summaryrefslogtreecommitdiff
path: root/jni/iconv/tools
diff options
context:
space:
mode:
Diffstat (limited to 'jni/iconv/tools')
-rw-r--r--jni/iconv/tools/8bit_tab_to_h.c570
-rw-r--r--jni/iconv/tools/JISX0213.TXT11233
-rw-r--r--jni/iconv/tools/Makefile532
-rw-r--r--jni/iconv/tools/cjk_tab_to_h.c2148
-rw-r--r--jni/iconv/tools/cjk_variants.c126
5 files changed, 14609 insertions, 0 deletions
diff --git a/jni/iconv/tools/8bit_tab_to_h.c b/jni/iconv/tools/8bit_tab_to_h.c
new file mode 100644
index 0000000..0380d5f
--- /dev/null
+++ b/jni/iconv/tools/8bit_tab_to_h.c
@@ -0,0 +1,570 @@
+/* Copyright (C) 1999-2002 Free Software Foundation, Inc.
+ This file is part of the GNU LIBICONV Tools.
+
+ 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 3 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., along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/*
+ * Generates an 8-bit character set table from a .TXT table as found on
+ * ftp.unicode.org or from a table containing the 256 Unicode values as
+ * hexadecimal integers.
+ * Examples:
+ *
+ * ./8bit_tab_to_h ISO-8859-1 iso8859_1 < tab8859_1
+ * ./8bit_tab_to_h ISO-8859-2 iso8859_2 < tab8859_2
+ * ./8bit_tab_to_h ISO-8859-3 iso8859_3 < tab8859_3
+ * ./8bit_tab_to_h ISO-8859-4 iso8859_4 < tab8859_4
+ * ./8bit_tab_to_h ISO-8859-5 iso8859_5 < tab8859_5
+ * ./8bit_tab_to_h ISO-8859-6 iso8859_6 < tab8859_6
+ * ./8bit_tab_to_h ISO-8859-7 iso8859_7 < tab8859_7
+ * ./8bit_tab_to_h ISO-8859-8 iso8859_8 < tab8859_8
+ * ./8bit_tab_to_h ISO-8859-9 iso8859_9 < tab8859_9
+ * ./8bit_tab_to_h ISO-8859-10 iso8859_10 < tab8859_10
+ * ./8bit_tab_to_h ISO-8859-14 iso8859_14 < tab8859_14
+ * ./8bit_tab_to_h ISO-8859-15 iso8859_15 < tab8859_15
+ * ./8bit_tab_to_h JISX0201.1976-0 jisx0201 < jis0201
+ * ./8bit_tab_to_h TIS620.2533-1 tis620 < tabtis620
+ * ./8bit_tab_to_h KOI8-R koi8_r < tabkoi8_r
+ * ./8bit_tab_to_h KOI8-U koi8_u < tabkoi8_u
+ * ./8bit_tab_to_h ARMSCII-8 armscii_8 < tabarmscii_8
+ * ./8bit_tab_to_h CP1133 cp1133 < tabibm_cp1133
+ * ./8bit_tab_to_h MULELAO-1 mulelao < tabmulelao_1
+ * ./8bit_tab_to_h VISCII1.1-1 viscii1 < tabviscii
+ * ./8bit_tab_to_h TCVN-5712 tcvn < tabtcvn
+ * ./8bit_tab_to_h GEORGIAN-ACADEMY georgian_ac < tabgeorgian_academy
+ * ./8bit_tab_to_h GEORGIAN-PS georgian_ps < tabgeorgian_ps
+ *
+ * ./8bit_tab_to_h ISO-8859-1 iso8859_1 < 8859-1.TXT
+ * ./8bit_tab_to_h ISO-8859-2 iso8859_2 < 8859-2.TXT
+ * ./8bit_tab_to_h ISO-8859-3 iso8859_3 < 8859-3.TXT
+ * ./8bit_tab_to_h ISO-8859-4 iso8859_4 < 8859-4.TXT
+ * ./8bit_tab_to_h ISO-8859-5 iso8859_5 < 8859-5.TXT
+ * ./8bit_tab_to_h ISO-8859-6 iso8859_6 < 8859-6.TXT
+ * ./8bit_tab_to_h ISO-8859-7 iso8859_7 < 8859-7.TXT
+ * ./8bit_tab_to_h ISO-8859-8 iso8859_8 < 8859-8.TXT
+ * ./8bit_tab_to_h ISO-8859-9 iso8859_9 < 8859-9.TXT
+ * ./8bit_tab_to_h ISO-8859-10 iso8859_10 < 8859-10.TXT
+ * ./8bit_tab_to_h ISO-8859-14 iso8859_14 < 8859-14.TXT
+ * ./8bit_tab_to_h ISO-8859-15 iso8859_15 < 8859-15.TXT
+ * ./8bit_tab_to_h JISX0201.1976-0 jisx0201 < JIS0201.TXT
+ * ./8bit_tab_to_h KOI8-R koi8_r < KOI8-R.TXT
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdbool.h>
+#include <string.h>
+
+int main (int argc, char *argv[])
+{
+ const char* charsetname;
+ const char* c_charsetname;
+ const char* filename;
+ const char* directory;
+ int charset2uni[0x100];
+
+ if (argc != 3 && argc != 4 && argc != 5)
+ exit(1);
+ charsetname = argv[1];
+ c_charsetname = argv[2];
+ if (argc > 3) {
+ filename = argv[3];
+ } else {
+ char* s = (char*) malloc(strlen(c_charsetname)+strlen(".h")+1);
+ strcpy(s,c_charsetname); strcat(s,".h");
+ filename = s;
+ }
+ directory = (argc > 4 ? argv[4] : "");
+
+ fprintf(stderr, "Creating %s%s\n", directory, filename);
+
+ {
+ int i, c;
+ c = getc(stdin);
+ ungetc(c,stdin);
+ if (c == '#') {
+ /* Read a unicode.org style .TXT file. */
+ for (i = 0; i < 0x100; i++)
+ charset2uni[i] = 0xfffd;
+ for (;;) {
+ c = getc(stdin);
+ if (c == EOF)
+ break;
+ if (c == '\n' || c == ' ' || c == '\t')
+ continue;
+ if (c == '#') {
+ do { c = getc(stdin); } while (!(c == EOF || c == '\n'));
+ continue;
+ }
+ ungetc(c,stdin);
+ if (scanf("0x%x", &i) != 1 || !(i >= 0 && i < 0x100))
+ exit(1);
+ do { c = getc(stdin); } while (c == ' ' || c == '\t');
+ if (c != EOF)
+ ungetc(c,stdin);
+ if (c == '\n' || c == '#')
+ continue;
+ if (scanf("0x%x", &charset2uni[i]) != 1)
+ exit(1);
+ }
+ } else {
+ /* Read a table of hexadecimal Unicode values. */
+ for (i = 0; i < 0x100; i++) {
+ if (scanf("%x", &charset2uni[i]) != 1)
+ exit(1);
+ if (charset2uni[i] < 0 || charset2uni[i] == 0xffff)
+ charset2uni[i] = 0xfffd;
+ }
+ if (scanf("%x", &i) != EOF)
+ exit(1);
+ }
+ }
+
+ /* Write the output file. */
+ {
+ FILE* f;
+
+ {
+ char* fname = malloc(strlen(directory)+strlen(filename)+1);
+ strcpy(fname,directory); strcat(fname,filename);
+ f = fopen(fname,"w");
+ if (f == NULL)
+ exit(1);
+ }
+
+ fprintf(f, "/*\n");
+ fprintf(f, " * Copyright (C) 1999-2002 Free Software Foundation, Inc.\n");
+ fprintf(f, " * This file is part of the GNU LIBICONV Library.\n");
+ fprintf(f, " *\n");
+ fprintf(f, " * The GNU LIBICONV Library is free software; you can redistribute it\n");
+ fprintf(f, " * and/or modify it under the terms of the GNU Library General Public\n");
+ fprintf(f, " * License as published by the Free Software Foundation; either version 2\n");
+ fprintf(f, " * of the License, or (at your option) any later version.\n");
+ fprintf(f, " *\n");
+ fprintf(f, " * The GNU LIBICONV Library is distributed in the hope that it will be\n");
+ fprintf(f, " * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of\n");
+ fprintf(f, " * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n");
+ fprintf(f, " * Library General Public License for more details.\n");
+ fprintf(f, " *\n");
+ fprintf(f, " * You should have received a copy of the GNU Library General Public\n");
+ fprintf(f, " * License along with the GNU LIBICONV Library; see the file COPYING.LIB.\n");
+ fprintf(f, " * If not, write to the Free Software Foundation, Inc., 51 Franklin Street,\n");
+ fprintf(f, " * Fifth Floor, Boston, MA 02110-1301, USA.\n");
+ fprintf(f, " */\n");
+ fprintf(f, "\n");
+ fprintf(f, "/*\n");
+ fprintf(f, " * %s\n", charsetname);
+ fprintf(f, " */\n");
+ fprintf(f, "\n");
+
+ {
+ int i, i1, i2, i3;
+ int line[16];
+ int tableno;
+ struct { int minline; int maxline; } tables[16];
+ bool some_invalid;
+ bool final_ret_reached;
+
+ for (i1 = 0; i1 < 16; i1++) {
+ bool all_invalid = true;
+ bool all_identity = true;
+ for (i2 = 0; i2 < 16; i2++) {
+ i = 16*i1+i2;
+ if (charset2uni[i] != 0xfffd)
+ all_invalid = false;
+ if (charset2uni[i] != i)
+ all_identity = false;
+ }
+ if (all_invalid)
+ line[i1] = -2;
+ else if (all_identity)
+ line[i1] = -1;
+ else
+ line[i1] = 0;
+ }
+ tableno = 0;
+ for (i1 = 0; i1 < 16; i1++) {
+ if (line[i1] >= 0) {
+ if (i1 > 0 && tableno > 0 && line[i1-1] == tableno-1) {
+ line[i1] = tableno-1;
+ tables[tableno-1].maxline = i1;
+ } else {
+ tableno++;
+ line[i1] = tableno-1;
+ tables[tableno-1].minline = tables[tableno-1].maxline = i1;
+ }
+ }
+ }
+ some_invalid = false;
+ for (i = 0; i < 0x100; i++)
+ if (charset2uni[i] == 0xfffd)
+ some_invalid = true;
+ if (tableno > 0) {
+ int t;
+ for (t = 0; t < tableno; t++) {
+ fprintf(f, "static const unsigned short %s_2uni", c_charsetname);
+ if (tableno > 1)
+ fprintf(f, "_%d", t+1);
+ fprintf(f, "[%d] = {\n", 16*(tables[t].maxline-tables[t].minline+1));
+ for (i1 = tables[t].minline; i1 <= tables[t].maxline; i1++) {
+ fprintf(f, " /* 0x%02x */\n", 16*i1);
+ for (i2 = 0; i2 < 2; i2++) {
+ fprintf(f, " ");
+ for (i3 = 0; i3 < 8; i3++) {
+ i = 16*i1+8*i2+i3;
+ fprintf(f, " 0x%04x,", charset2uni[i]);
+ }
+ fprintf(f, "\n");
+ }
+ }
+ fprintf(f, "};\n");
+ }
+ fprintf(f, "\n");
+ }
+ final_ret_reached = false;
+ fprintf(f, "static int\n%s_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)\n", c_charsetname);
+ fprintf(f, "{\n");
+ fprintf(f, " unsigned char c = *s;\n");
+ if (some_invalid) {
+ for (i1 = 0; i1 < 16;) {
+ int t = line[i1];
+ const char* indent;
+ for (i2 = i1; i2 < 16 && line[i2] == t; i2++);
+ indent = (i1 == 0 && i2 == 16 ? " " : " ");
+ if (i1 == 0) {
+ if (i2 == 16) {
+ } else {
+ fprintf(f, " if (c < 0x%02x) {\n", 16*i2);
+ }
+ } else {
+ if (i2 == 16) {
+ fprintf(f, " else {\n");
+ } else {
+ fprintf(f, " else if (c < 0x%02x) {\n", 16*i2);
+ }
+ }
+ if (t == -2) {
+ final_ret_reached = true;
+ } else if (t == -1) {
+ fprintf(f, "%s*pwc = (ucs4_t) c;\n", indent);
+ fprintf(f, "%sreturn 1;\n", indent);
+ } else {
+ fprintf(f, "%s", indent);
+ some_invalid = false;
+ for (i = 16*i1; i < 16*i2; i++)
+ if (charset2uni[i] == 0xfffd)
+ some_invalid = true;
+ if (some_invalid)
+ fprintf(f, "unsigned short wc = ");
+ else
+ fprintf(f, "*pwc = (ucs4_t) ");
+ fprintf(f, "%s_2uni", c_charsetname);
+ if (tableno > 1)
+ fprintf(f, "_%d", t+1);
+ fprintf(f, "[c");
+ if (tables[t].minline > 0)
+ fprintf(f, "-0x%02x", 16*tables[t].minline);
+ fprintf(f, "];\n");
+ if (some_invalid) {
+ fprintf(f, "%sif (wc != 0xfffd) {\n", indent);
+ fprintf(f, "%s *pwc = (ucs4_t) wc;\n", indent);
+ fprintf(f, "%s return 1;\n", indent);
+ fprintf(f, "%s}\n", indent);
+ final_ret_reached = true;
+ } else {
+ fprintf(f, "%sreturn 1;\n", indent);
+ }
+ }
+ if (!(i1 == 0 && i2 == 16))
+ fprintf(f, " }\n");
+ i1 = i2;
+ }
+ if (final_ret_reached)
+ fprintf(f, " return RET_ILSEQ;\n");
+ } else {
+ for (i1 = 0; i1 < 16;) {
+ int t = line[i1];
+ for (i2 = i1; i2 < 16 && line[i2] == t; i2++);
+ if (i1 == 0) {
+ if (i2 == 16) {
+ fprintf(f, " ");
+ } else {
+ fprintf(f, " if (c < 0x%02x)\n ", 16*i2);
+ }
+ } else {
+ if (i2 == 16) {
+ fprintf(f, " else\n ");
+ } else {
+ fprintf(f, " else if (c < 0x%02x)\n ", 16*i2);
+ }
+ }
+ if (t == -1)
+ fprintf(f, "*pwc = (ucs4_t) c;\n");
+ else {
+ fprintf(f, "*pwc = (ucs4_t) %s_2uni", c_charsetname);
+ if (tableno > 1)
+ fprintf(f, "_%d", t+1);
+ fprintf(f, "[c");
+ if (tables[t].minline > 0)
+ fprintf(f, "-0x%02x", 16*tables[t].minline);
+ fprintf(f, "];\n");
+ }
+ i1 = i2;
+ }
+ fprintf(f, " return 1;\n");
+ }
+ fprintf(f, "}\n");
+
+ }
+
+ fprintf(f, "\n");
+
+ {
+ int uni2charset[0x10000];
+ bool pages[0x100];
+ int line[0x2000];
+ int tableno;
+ struct { int minline; int maxline; int usecount; const char* suffix; } tables[0x2000];
+ bool need_c;
+ bool fix_0000;
+ int i, j, p, j1, j2, t;
+
+ for (j = 0; j < 0x10000; j++)
+ uni2charset[j] = 0;
+ for (p = 0; p < 0x100; p++)
+ pages[p] = false;
+ for (i = 0; i < 0x100; i++) {
+ j = charset2uni[i];
+ if (j != 0xfffd) {
+ uni2charset[j] = i;
+ pages[j>>8] = true;
+ }
+ }
+ for (j1 = 0; j1 < 0x2000; j1++) {
+ bool all_invalid = true;
+ bool all_identity = true;
+ for (j2 = 0; j2 < 8; j2++) {
+ j = 8*j1+j2;
+ if (uni2charset[j] != 0)
+ all_invalid = false;
+ if (uni2charset[j] != j)
+ all_identity = false;
+ }
+ if (all_invalid)
+ line[j1] = -2;
+ else if (all_identity)
+ line[j1] = -1;
+ else
+ line[j1] = 0;
+ }
+ tableno = 0;
+ for (j1 = 0; j1 < 0x2000; j1++) {
+ if (line[j1] >= 0) {
+ if (tableno > 0
+ && ((j1 > 0 && line[j1-1] == tableno-1)
+ || ((tables[tableno-1].maxline >> 5) == (j1 >> 5)
+ && j1 - tables[tableno-1].maxline <= 8))) {
+ line[j1] = tableno-1;
+ tables[tableno-1].maxline = j1;
+ } else {
+ tableno++;
+ line[j1] = tableno-1;
+ tables[tableno-1].minline = tables[tableno-1].maxline = j1;
+ }
+ }
+ }
+ for (t = 0; t < tableno; t++) {
+ tables[t].usecount = 0;
+ j1 = 8*tables[t].minline;
+ j2 = 8*(tables[t].maxline+1);
+ for (j = j1; j < j2; j++)
+ if (uni2charset[j] != 0)
+ tables[t].usecount++;
+ }
+ for (t = 0, p = -1, i = 0; t < tableno; t++) {
+ if (tables[t].usecount > 1) {
+ char* s;
+ if (p == tables[t].minline >> 5) {
+ s = (char*) malloc(5+1);
+ sprintf(s, "%02x_%d", p, ++i);
+ } else {
+ p = tables[t].minline >> 5;
+ s = (char*) malloc(2+1);
+ sprintf(s, "%02x", p);
+ }
+ tables[t].suffix = s;
+ } else
+ tables[t].suffix = NULL;
+ }
+ {
+ p = -1;
+ for (t = 0; t < tableno; t++)
+ if (tables[t].usecount > 1) {
+ p = 0;
+ fprintf(f, "static const unsigned char %s_page%s[%d] = {\n", c_charsetname, tables[t].suffix, 8*(tables[t].maxline-tables[t].minline+1));
+ for (j1 = tables[t].minline; j1 <= tables[t].maxline; j1++) {
+ if ((j1 % 0x20) == 0 && j1 > tables[t].minline)
+ fprintf(f, " /* 0x%04x */\n", 8*j1);
+ fprintf(f, " ");
+ for (j2 = 0; j2 < 8; j2++) {
+ j = 8*j1+j2;
+ fprintf(f, " 0x%02x,", uni2charset[j]);
+ }
+ fprintf(f, " /* 0x%02x-0x%02x */\n", 8*(j1 % 0x20), 8*(j1 % 0x20)+7);
+ }
+ fprintf(f, "};\n");
+ }
+ if (p >= 0)
+ fprintf(f, "\n");
+ }
+ need_c = false;
+ for (j1 = 0; j1 < 0x2000;) {
+ t = line[j1];
+ for (j2 = j1; j2 < 0x2000 && line[j2] == t; j2++);
+ if (t >= 0)
+ j2 = tables[t].maxline+1;
+ if (!(t == -2 || (t == -1 && j1 == 0)))
+ need_c = true;
+ j1 = j2;
+ }
+ fix_0000 = false;
+ fprintf(f, "static int\n%s_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)\n", c_charsetname);
+ fprintf(f, "{\n");
+ if (need_c)
+ fprintf(f, " unsigned char c = 0;\n");
+ for (j1 = 0; j1 < 0x2000;) {
+ t = line[j1];
+ for (j2 = j1; j2 < 0x2000 && line[j2] == t; j2++);
+ if (t >= 0) {
+ if (j1 != tables[t].minline) abort();
+ if (j2 > tables[t].maxline+1) abort();
+ j2 = tables[t].maxline+1;
+ }
+ if (t == -2) {
+ } else {
+ if (j1 == 0)
+ fprintf(f, " ");
+ else
+ fprintf(f, " else ");
+ if (t >= 0 && tables[t].usecount == 0) abort();
+ if (t >= 0 && tables[t].usecount == 1) {
+ if (j2 != j1+1) abort();
+ for (j = 8*j1; j < 8*j2; j++)
+ if (uni2charset[j] != 0) {
+ fprintf(f, "if (wc == 0x%04x)\n c = 0x%02x;\n", j, uni2charset[j]);
+ break;
+ }
+ } else {
+ if (j1 == 0) {
+ fprintf(f, "if (wc < 0x%04x)", 8*j2);
+ } else {
+ fprintf(f, "if (wc >= 0x%04x && wc < 0x%04x)", 8*j1, 8*j2);
+ }
+ if (t == -1) {
+ if (j1 == 0)
+ /* If wc == 0, the function must return 1, not -1. */
+ fprintf(f, " {\n *r = wc;\n return 1;\n }\n");
+ else
+ fprintf(f, "\n c = wc;\n");
+ } else {
+ fprintf(f, "\n c = %s_page%s[wc", c_charsetname, tables[t].suffix);
+ if (tables[t].minline > 0)
+ fprintf(f, "-0x%04x", 8*j1);
+ fprintf(f, "];\n");
+ if (j1 == 0 && uni2charset[0] == 0)
+ /* If wc == 0, the function must return 1, not -1. */
+ fix_0000 = true;
+ }
+ }
+ }
+ j1 = j2;
+ }
+ if (need_c) {
+ if (fix_0000)
+ fprintf(f, " if (c != 0 || wc == 0) {\n");
+ else
+ fprintf(f, " if (c != 0) {\n");
+ fprintf(f, " *r = c;\n");
+ fprintf(f, " return 1;\n");
+ fprintf(f, " }\n");
+ }
+ fprintf(f, " return RET_ILUNI;\n");
+ fprintf(f, "}\n");
+
+ }
+
+ if (ferror(f) || fclose(f))
+ exit(1);
+ }
+
+#if 0
+
+ int i1, i2, i3, i1_min, i1_max, j1, j2;
+
+ i1_min = 16;
+ i1_max = -1;
+ for (i1 = 0; i1 < 16; i1++)
+ for (i2 = 0; i2 < 16; i2++)
+ if (charset2uni[16*i1+i2] != 0xfffd) {
+ if (i1_min > i1) i1_min = i1;
+ if (i1_max < i1) i1_max = i1;
+ }
+ printf("static const unsigned short %s_2uni[%d] = {\n",
+ name, 16*(i1_max-i1_min+1));
+ for (i1 = i1_min; i1 <= i1_max; i1++) {
+ printf(" /""* 0x%02x *""/\n", 16*i1);
+ for (i2 = 0; i2 < 2; i2++) {
+ printf(" ");
+ for (i3 = 0; i3 < 8; i3++) {
+ if (i3 > 0) printf(" ");
+ printf("0x%04x,", charset2uni[16*i1+8*i2+i3]);
+ }
+ printf("\n");
+ }
+ }
+ printf("};\n");
+ printf("\n");
+
+ for (p = 0; p < 0x100; p++)
+ pages[p] = 0;
+ for (i = 0; i < 0x100; i++)
+ if (charset2uni[i] != 0xfffd)
+ pages[charset2uni[i]>>8] = 1;
+ for (p = 0; p < 0x100; p++)
+ if (pages[p]) {
+ int j1_min = 32;
+ int j1_max = -1;
+ for (j1 = 0; j1 < 32; j1++)
+ for (j2 = 0; j2 < 8; j2++)
+ if (uni2charset[256*p+8*j1+j2] != 0) {
+ if (j1_min > j1) j1_min = j1;
+ if (j1_max < j1) j1_max = j1;
+ }
+ printf("static const unsigned char %s_page%02x[%d] = {\n",
+ name, p, 8*(j1_max-j1_min+1));
+ for (j1 = j1_min; j1 <= j1_max; j1++) {
+ printf(" ");
+ for (j2 = 0; j2 < 8; j2++)
+ printf("0x%02x, ", uni2charset[256*p+8*j1+j2]);
+ printf("/""* 0x%02x-0x%02x *""/\n", 8*j1, 8*j1+7);
+ }
+ printf("};\n");
+ }
+ printf("\n");
+
+}
+#endif
+
+ exit(0);
+}
diff --git a/jni/iconv/tools/JISX0213.TXT b/jni/iconv/tools/JISX0213.TXT
new file mode 100644
index 0000000..31a94c6
--- /dev/null
+++ b/jni/iconv/tools/JISX0213.TXT
@@ -0,0 +1,11233 @@
+0x12121 0x3000
+0x12122 0x3001
+0x12123 0x3002
+0x12124 0xFF0C
+0x12125 0xFF0E
+0x12126 0x30FB
+0x12127 0xFF1A
+0x12128 0xFF1B
+0x12129 0xFF1F
+0x1212A 0xFF01
+0x1212B 0x309B
+0x1212C 0x309C
+0x1212D 0x00B4
+0x1212E 0xFF40
+0x1212F 0x00A8
+0x12130 0xFF3E
+0x12131 0xFFE3
+0x12132 0xFF3F
+0x12133 0x30FD
+0x12134 0x30FE
+0x12135 0x309D
+0x12136 0x309E
+0x12137 0x3003
+0x12138 0x4EDD
+0x12139 0x3005
+0x1213A 0x3006
+0x1213B 0x3007
+0x1213C 0x30FC
+0x1213D 0x2014
+0x1213E 0x2010
+0x1213F 0xFF0F
+0x12140 0xFF3C
+0x12141 0x301C
+0x12142 0x2016
+0x12143 0xFF5C
+0x12144 0x2026
+0x12145 0x2025
+0x12146 0x2018
+0x12147 0x2019
+0x12148 0x201C
+0x12149 0x201D
+0x1214A 0xFF08
+0x1214B 0xFF09
+0x1214C 0x3014
+0x1214D 0x3015
+0x1214E 0xFF3B
+0x1214F 0xFF3D
+0x12150 0xFF5B
+0x12151 0xFF5D
+0x12152 0x3008
+0x12153 0x3009
+0x12154 0x300A
+0x12155 0x300B
+0x12156 0x300C
+0x12157 0x300D
+0x12158 0x300E
+0x12159 0x300F
+0x1215A 0x3010
+0x1215B 0x3011
+0x1215C 0xFF0B
+0x1215D 0x2212
+0x1215E 0x00B1
+0x1215F 0x00D7
+0x12160 0x00F7
+0x12161 0xFF1D
+0x12162 0x2260
+0x12163 0xFF1C
+0x12164 0xFF1E
+0x12165 0x2266
+0x12166 0x2267
+0x12167 0x221E
+0x12168 0x2234
+0x12169 0x2642
+0x1216A 0x2640
+0x1216B 0x00B0
+0x1216C 0x2032
+0x1216D 0x2033
+0x1216E 0x2103
+0x1216F 0xFFE5
+0x12170 0xFF04
+0x12171 0x00A2
+0x12172 0x00A3
+0x12173 0xFF05
+0x12174 0xFF03
+0x12175 0xFF06
+0x12176 0xFF0A
+0x12177 0xFF20
+0x12178 0x00A7
+0x12179 0x2606
+0x1217A 0x2605
+0x1217B 0x25CB
+0x1217C 0x25CF
+0x1217D 0x25CE
+0x1217E 0x25C7
+0x12221 0x25C6
+0x12222 0x25A1
+0x12223 0x25A0
+0x12224 0x25B3
+0x12225 0x25B2
+0x12226 0x25BD
+0x12227 0x25BC
+0x12228 0x203B
+0x12229 0x3012
+0x1222A 0x2192
+0x1222B 0x2190
+0x1222C 0x2191
+0x1222D 0x2193
+0x1222E 0x3013
+0x1222F 0xFF07
+0x12230 0xFF02
+0x12231 0xFF0D
+0x12232 0xFF5E
+0x12233 0x3033
+0x12234 0x3034
+0x12235 0x3035
+0x12236 0x303B
+0x12237 0x303C
+0x12238 0x30FF
+0x12239 0x309F
+0x1223A 0x2208
+0x1223B 0x220B
+0x1223C 0x2286
+0x1223D 0x2287
+0x1223E 0x2282
+0x1223F 0x2283
+0x12240 0x222A
+0x12241 0x2229
+0x12242 0x2284
+0x12243 0x2285
+0x12244 0x228A
+0x12245 0x228B
+0x12246 0x2209
+0x12247 0x2205
+0x12248 0x2305
+0x12249 0x2306
+0x1224A 0x2227
+0x1224B 0x2228
+0x1224C 0x00AC
+0x1224D 0x21D2
+0x1224E 0x21D4
+0x1224F 0x2200
+0x12250 0x2203
+0x12251 0x2295
+0x12252 0x2296
+0x12253 0x2297
+0x12254 0x2225
+0x12255 0x2226
+0x12256 0xFF5F
+0x12257 0xFF60
+0x12258 0x3018
+0x12259 0x3019
+0x1225A 0x3016
+0x1225B 0x3017
+0x1225C 0x2220
+0x1225D 0x22A5
+0x1225E 0x2312
+0x1225F 0x2202
+0x12260 0x2207
+0x12261 0x2261
+0x12262 0x2252
+0x12263 0x226A
+0x12264 0x226B
+0x12265 0x221A
+0x12266 0x223D
+0x12267 0x221D
+0x12268 0x2235
+0x12269 0x222B
+0x1226A 0x222C
+0x1226B 0x2262
+0x1226C 0x2243
+0x1226D 0x2245
+0x1226E 0x2248
+0x1226F 0x2276
+0x12270 0x2277
+0x12271 0x2194
+0x12272 0x212B
+0x12273 0x2030
+0x12274 0x266F
+0x12275 0x266D
+0x12276 0x266A
+0x12277 0x2020
+0x12278 0x2021
+0x12279 0x00B6
+0x1227A 0x266E
+0x1227B 0x266B
+0x1227C 0x266C
+0x1227D 0x2669
+0x1227E 0x25EF
+0x12321 0x25B7
+0x12322 0x25B6
+0x12323 0x25C1
+0x12324 0x25C0
+0x12325 0x2197
+0x12326 0x2198
+0x12327 0x2196
+0x12328 0x2199
+0x12329 0x21C4
+0x1232A 0x21E8
+0x1232B 0x21E6
+0x1232C 0x21E7
+0x1232D 0x21E9
+0x1232E 0x2934
+0x1232F 0x2935
+0x12330 0xFF10
+0x12331 0xFF11
+0x12332 0xFF12
+0x12333 0xFF13
+0x12334 0xFF14
+0x12335 0xFF15
+0x12336 0xFF16
+0x12337 0xFF17
+0x12338 0xFF18
+0x12339 0xFF19
+0x1233A 0x29BF
+0x1233B 0x25C9
+0x1233C 0x303D
+0x1233D 0xFE46
+0x1233E 0xFE45
+0x1233F 0x25E6
+0x12340 0x2022
+0x12341 0xFF21
+0x12342 0xFF22
+0x12343 0xFF23
+0x12344 0xFF24
+0x12345 0xFF25
+0x12346 0xFF26
+0x12347 0xFF27
+0x12348 0xFF28
+0x12349 0xFF29
+0x1234A 0xFF2A
+0x1234B 0xFF2B
+0x1234C 0xFF2C
+0x1234D 0xFF2D
+0x1234E 0xFF2E
+0x1234F 0xFF2F
+0x12350 0xFF30
+0x12351 0xFF31
+0x12352 0xFF32
+0x12353 0xFF33
+0x12354 0xFF34
+0x12355 0xFF35
+0x12356 0xFF36
+0x12357 0xFF37
+0x12358 0xFF38
+0x12359 0xFF39
+0x1235A 0xFF3A
+0x1235B 0x2213
+0x1235C 0x2135
+0x1235D 0x210F
+0x1235E 0x33CB
+0x1235F 0x2113
+0x12360 0x2127
+0x12361 0xFF41
+0x12362 0xFF42
+0x12363 0xFF43
+0x12364 0xFF44
+0x12365 0xFF45
+0x12366 0xFF46
+0x12367 0xFF47
+0x12368 0xFF48
+0x12369 0xFF49
+0x1236A 0xFF4A
+0x1236B 0xFF4B
+0x1236C 0xFF4C
+0x1236D 0xFF4D
+0x1236E 0xFF4E
+0x1236F 0xFF4F
+0x12370 0xFF50
+0x12371 0xFF51
+0x12372 0xFF52
+0x12373 0xFF53
+0x12374 0xFF54
+0x12375 0xFF55
+0x12376 0xFF56
+0x12377 0xFF57
+0x12378 0xFF58
+0x12379 0xFF59
+0x1237A 0xFF5A
+0x1237B 0x30A0
+0x1237C 0x2013
+0x1237D 0x29FA
+0x1237E 0x29FB
+0x12421 0x3041
+0x12422 0x3042
+0x12423 0x3043
+0x12424 0x3044
+0x12425 0x3045
+0x12426 0x3046
+0x12427 0x3047
+0x12428 0x3048
+0x12429 0x3049
+0x1242A 0x304A
+0x1242B 0x304B
+0x1242C 0x304C
+0x1242D 0x304D
+0x1242E 0x304E
+0x1242F 0x304F
+0x12430 0x3050
+0x12431 0x3051
+0x12432 0x3052
+0x12433 0x3053
+0x12434 0x3054
+0x12435 0x3055
+0x12436 0x3056
+0x12437 0x3057
+0x12438 0x3058
+0x12439 0x3059
+0x1243A 0x305A
+0x1243B 0x305B
+0x1243C 0x305C
+0x1243D 0x305D
+0x1243E 0x305E
+0x1243F 0x305F
+0x12440 0x3060
+0x12441 0x3061
+0x12442 0x3062
+0x12443 0x3063
+0x12444 0x3064
+0x12445 0x3065
+0x12446 0x3066
+0x12447 0x3067
+0x12448 0x3068
+0x12449 0x3069
+0x1244A 0x306A
+0x1244B 0x306B
+0x1244C 0x306C
+0x1244D 0x306D
+0x1244E 0x306E
+0x1244F 0x306F
+0x12450 0x3070
+0x12451 0x3071
+0x12452 0x3072
+0x12453 0x3073
+0x12454 0x3074
+0x12455 0x3075
+0x12456 0x3076
+0x12457 0x3077
+0x12458 0x3078
+0x12459 0x3079
+0x1245A 0x307A
+0x1245B 0x307B
+0x1245C 0x307C
+0x1245D 0x307D
+0x1245E 0x307E
+0x1245F 0x307F
+0x12460 0x3080
+0x12461 0x3081
+0x12462 0x3082
+0x12463 0x3083
+0x12464 0x3084
+0x12465 0x3085
+0x12466 0x3086
+0x12467 0x3087
+0x12468 0x3088
+0x12469 0x3089
+0x1246A 0x308A
+0x1246B 0x308B
+0x1246C 0x308C
+0x1246D 0x308D
+0x1246E 0x308E
+0x1246F 0x308F
+0x12470 0x3090
+0x12471 0x3091
+0x12472 0x3092
+0x12473 0x3093
+0x12474 0x3094
+0x12475 0x3095
+0x12476 0x3096
+0x12477 0x304B 0x309A
+0x12478 0x304D 0x309A
+0x12479 0x304F 0x309A
+0x1247A 0x3051 0x309A
+0x1247B 0x3053 0x309A
+0x12521 0x30A1
+0x12522 0x30A2
+0x12523 0x30A3
+0x12524 0x30A4
+0x12525 0x30A5
+0x12526 0x30A6
+0x12527 0x30A7
+0x12528 0x30A8
+0x12529 0x30A9
+0x1252A 0x30AA
+0x1252B 0x30AB
+0x1252C 0x30AC
+0x1252D 0x30AD
+0x1252E 0x30AE
+0x1252F 0x30AF
+0x12530 0x30B0
+0x12531 0x30B1
+0x12532 0x30B2
+0x12533 0x30B3
+0x12534 0x30B4
+0x12535 0x30B5
+0x12536 0x30B6
+0x12537 0x30B7
+0x12538 0x30B8
+0x12539 0x30B9
+0x1253A 0x30BA
+0x1253B 0x30BB
+0x1253C 0x30BC
+0x1253D 0x30BD
+0x1253E 0x30BE
+0x1253F 0x30BF
+0x12540 0x30C0
+0x12541 0x30C1
+0x12542 0x30C2
+0x12543 0x30C3
+0x12544 0x30C4
+0x12545 0x30C5
+0x12546 0x30C6
+0x12547 0x30C7
+0x12548 0x30C8
+0x12549 0x30C9
+0x1254A 0x30CA
+0x1254B 0x30CB
+0x1254C 0x30CC
+0x1254D 0x30CD
+0x1254E 0x30CE
+0x1254F 0x30CF
+0x12550 0x30D0
+0x12551 0x30D1
+0x12552 0x30D2
+0x12553 0x30D3
+0x12554 0x30D4
+0x12555 0x30D5
+0x12556 0x30D6
+0x12557 0x30D7
+0x12558 0x30D8
+0x12559 0x30D9
+0x1255A 0x30DA
+0x1255B 0x30DB
+0x1255C 0x30DC
+0x1255D 0x30DD
+0x1255E 0x30DE
+0x1255F 0x30DF
+0x12560 0x30E0
+0x12561 0x30E1
+0x12562 0x30E2
+0x12563 0x30E3
+0x12564 0x30E4
+0x12565 0x30E5
+0x12566 0x30E6
+0x12567 0x30E7
+0x12568 0x30E8
+0x12569 0x30E9
+0x1256A 0x30EA
+0x1256B 0x30EB
+0x1256C 0x30EC
+0x1256D 0x30ED
+0x1256E 0x30EE
+0x1256F 0x30EF
+0x12570 0x30F0
+0x12571 0x30F1
+0x12572 0x30F2
+0x12573 0x30F3
+0x12574 0x30F4
+0x12575 0x30F5
+0x12576 0x30F6
+0x12577 0x30AB 0x309A
+0x12578 0x30AD 0x309A
+0x12579 0x30AF 0x309A
+0x1257A 0x30B1 0x309A
+0x1257B 0x30B3 0x309A
+0x1257C 0x30BB 0x309A
+0x1257D 0x30C4 0x309A
+0x1257E 0x30C8 0x309A
+0x12621 0x0391
+0x12622 0x0392
+0x12623 0x0393
+0x12624 0x0394
+0x12625 0x0395
+0x12626 0x0396
+0x12627 0x0397
+0x12628 0x0398
+0x12629 0x0399
+0x1262A 0x039A
+0x1262B 0x039B
+0x1262C 0x039C
+0x1262D 0x039D
+0x1262E 0x039E
+0x1262F 0x039F
+0x12630 0x03A0
+0x12631 0x03A1
+0x12632 0x03A3
+0x12633 0x03A4
+0x12634 0x03A5
+0x12635 0x03A6
+0x12636 0x03A7
+0x12637 0x03A8
+0x12638 0x03A9
+0x12639 0x2664
+0x1263A 0x2660
+0x1263B 0x2662
+0x1263C 0x2666
+0x1263D 0x2661
+0x1263E 0x2665
+0x1263F 0x2667
+0x12640 0x2663
+0x12641 0x03B1
+0x12642 0x03B2
+0x12643 0x03B3
+0x12644 0x03B4
+0x12645 0x03B5
+0x12646 0x03B6
+0x12647 0x03B7
+0x12648 0x03B8
+0x12649 0x03B9
+0x1264A 0x03BA
+0x1264B 0x03BB
+0x1264C 0x03BC
+0x1264D 0x03BD
+0x1264E 0x03BE
+0x1264F 0x03BF
+0x12650 0x03C0
+0x12651 0x03C1
+0x12652 0x03C3
+0x12653 0x03C4
+0x12654 0x03C5
+0x12655 0x03C6
+0x12656 0x03C7
+0x12657 0x03C8
+0x12658 0x03C9
+0x12659 0x03C2
+0x1265A 0x24F5
+0x1265B 0x24F6
+0x1265C 0x24F7
+0x1265D 0x24F8
+0x1265E 0x24F9
+0x1265F 0x24FA
+0x12660 0x24FB
+0x12661 0x24FC
+0x12662 0x24FD
+0x12663 0x24FE
+0x12664 0x2616
+0x12665 0x2617
+0x12666 0x3020
+0x12667 0x260E
+0x12668 0x2600
+0x12669 0x2601
+0x1266A 0x2602
+0x1266B 0x2603
+0x1266C 0x2668
+0x1266D 0x25B1
+0x1266E 0x31F0
+0x1266F 0x31F1
+0x12670 0x31F2
+0x12671 0x31F3
+0x12672 0x31F4
+0x12673 0x31F5
+0x12674 0x31F6
+0x12675 0x31F7
+0x12676 0x31F8
+0x12677 0x31F9
+0x12678 0x31F7 0x309A
+0x12679 0x31FA
+0x1267A 0x31FB
+0x1267B 0x31FC
+0x1267C 0x31FD
+0x1267D 0x31FE
+0x1267E 0x31FF
+0x12721 0x0410
+0x12722 0x0411
+0x12723 0x0412
+0x12724 0x0413
+0x12725 0x0414
+0x12726 0x0415
+0x12727 0x0401
+0x12728 0x0416
+0x12729 0x0417
+0x1272A 0x0418
+0x1272B 0x0419
+0x1272C 0x041A
+0x1272D 0x041B
+0x1272E 0x041C
+0x1272F 0x041D
+0x12730 0x041E
+0x12731 0x041F
+0x12732 0x0420
+0x12733 0x0421
+0x12734 0x0422
+0x12735 0x0423
+0x12736 0x0424
+0x12737 0x0425
+0x12738 0x0426
+0x12739 0x0427
+0x1273A 0x0428
+0x1273B 0x0429
+0x1273C 0x042A
+0x1273D 0x042B
+0x1273E 0x042C
+0x1273F 0x042D
+0x12740 0x042E
+0x12741 0x042F
+0x12742 0x23BE
+0x12743 0x23BF
+0x12744 0x23C0
+0x12745 0x23C1
+0x12746 0x23C2
+0x12747 0x23C3
+0x12748 0x23C4
+0x12749 0x23C5
+0x1274A 0x23C6
+0x1274B 0x23C7
+0x1274C 0x23C8
+0x1274D 0x23C9
+0x1274E 0x23CA
+0x1274F 0x23CB
+0x12750 0x23CC
+0x12751 0x0430
+0x12752 0x0431
+0x12753 0x0432
+0x12754 0x0433
+0x12755 0x0434
+0x12756 0x0435
+0x12757 0x0451
+0x12758 0x0436
+0x12759 0x0437
+0x1275A 0x0438
+0x1275B 0x0439
+0x1275C 0x043A
+0x1275D 0x043B
+0x1275E 0x043C
+0x1275F 0x043D
+0x12760 0x043E
+0x12761 0x043F
+0x12762 0x0440
+0x12763 0x0441
+0x12764 0x0442
+0x12765 0x0443
+0x12766 0x0444
+0x12767 0x0445
+0x12768 0x0446
+0x12769 0x0447
+0x1276A 0x0448
+0x1276B 0x0449
+0x1276C 0x044A
+0x1276D 0x044B
+0x1276E 0x044C
+0x1276F 0x044D
+0x12770 0x044E
+0x12771 0x044F
+0x12772 0x30F7
+0x12773 0x30F8
+0x12774 0x30F9
+0x12775 0x30FA
+0x12776 0x22DA
+0x12777 0x22DB
+0x12778 0x2153
+0x12779 0x2154
+0x1277A 0x2155
+0x1277B 0x2713
+0x1277C 0x2318
+0x1277D 0x2423
+0x1277E 0x23CE
+0x12821 0x2500
+0x12822 0x2502
+0x12823 0x250C
+0x12824 0x2510
+0x12825 0x2518
+0x12826 0x2514
+0x12827 0x251C
+0x12828 0x252C
+0x12829 0x2524
+0x1282A 0x2534
+0x1282B 0x253C
+0x1282C 0x2501
+0x1282D 0x2503
+0x1282E 0x250F
+0x1282F 0x2513
+0x12830 0x251B
+0x12831 0x2517
+0x12832 0x2523
+0x12833 0x2533
+0x12834 0x252B
+0x12835 0x253B
+0x12836 0x254B
+0x12837 0x2520
+0x12838 0x252F
+0x12839 0x2528
+0x1283A 0x2537
+0x1283B 0x253F
+0x1283C 0x251D
+0x1283D 0x2530
+0x1283E 0x2525
+0x1283F 0x2538
+0x12840 0x2542
+0x12841 0x3251
+0x12842 0x3252
+0x12843 0x3253
+0x12844 0x3254
+0x12845 0x3255
+0x12846 0x3256
+0x12847 0x3257
+0x12848 0x3258
+0x12849 0x3259
+0x1284A 0x325A
+0x1284B 0x325B
+0x1284C 0x325C
+0x1284D 0x325D
+0x1284E 0x325E
+0x1284F 0x325F
+0x12850 0x32B1
+0x12851 0x32B2
+0x12852 0x32B3
+0x12853 0x32B4
+0x12854 0x32B5
+0x12855 0x32B6
+0x12856 0x32B7
+0x12857 0x32B8
+0x12858 0x32B9
+0x12859 0x32BA
+0x1285A 0x32BB
+0x1285B 0x32BC
+0x1285C 0x32BD
+0x1285D 0x32BE
+0x1285E 0x32BF
+0x12867 0x25D0
+0x12868 0x25D1
+0x12869 0x25D2
+0x1286A 0x25D3
+0x1286B 0x203C
+0x1286C 0x2047
+0x1286D 0x2048
+0x1286E 0x2049
+0x1286F 0x01CD
+0x12870 0x01CE
+0x12871 0x01D0
+0x12872 0x1E3E
+0x12873 0x1E3F
+0x12874 0x01F8
+0x12875 0x01F9
+0x12876 0x01D1
+0x12877 0x01D2
+0x12878 0x01D4
+0x12879 0x01D6
+0x1287A 0x01D8
+0x1287B 0x01DA
+0x1287C 0x01DC
+0x12921 0x20AC
+0x12922 0x00A0
+0x12923 0x00A1
+0x12924 0x00A4
+0x12925 0x00A6
+0x12926 0x00A9
+0x12927 0x00AA
+0x12928 0x00AB
+0x12929 0x00AD
+0x1292A 0x00AE
+0x1292B 0x00AF
+0x1292C 0x00B2
+0x1292D 0x00B3
+0x1292E 0x00B7
+0x1292F 0x00B8
+0x12930 0x00B9
+0x12931 0x00BA
+0x12932 0x00BB
+0x12933 0x00BC
+0x12934 0x00BD
+0x12935 0x00BE
+0x12936 0x00BF
+0x12937 0x00C0
+0x12938 0x00C1
+0x12939 0x00C2
+0x1293A 0x00C3
+0x1293B 0x00C4
+0x1293C 0x00C5
+0x1293D 0x00C6
+0x1293E 0x00C7
+0x1293F 0x00C8
+0x12940 0x00C9
+0x12941 0x00CA
+0x12942 0x00CB
+0x12943 0x00CC
+0x12944 0x00CD
+0x12945 0x00CE
+0x12946 0x00CF
+0x12947 0x00D0
+0x12948 0x00D1
+0x12949 0x00D2
+0x1294A 0x00D3
+0x1294B 0x00D4
+0x1294C 0x00D5
+0x1294D 0x00D6
+0x1294E 0x00D8
+0x1294F 0x00D9
+0x12950 0x00DA
+0x12951 0x00DB
+0x12952 0x00DC
+0x12953 0x00DD
+0x12954 0x00DE
+0x12955 0x00DF
+0x12956 0x00E0
+0x12957 0x00E1
+0x12958 0x00E2
+0x12959 0x00E3
+0x1295A 0x00E4
+0x1295B 0x00E5
+0x1295C 0x00E6
+0x1295D 0x00E7
+0x1295E 0x00E8
+0x1295F 0x00E9
+0x12960 0x00EA
+0x12961 0x00EB
+0x12962 0x00EC
+0x12963 0x00ED
+0x12964 0x00EE
+0x12965 0x00EF
+0x12966 0x00F0
+0x12967 0x00F1
+0x12968 0x00F2
+0x12969 0x00F3
+0x1296A 0x00F4
+0x1296B 0x00F5
+0x1296C 0x00F6
+0x1296D 0x00F8
+0x1296E 0x00F9
+0x1296F 0x00FA
+0x12970 0x00FB
+0x12971 0x00FC
+0x12972 0x00FD
+0x12973 0x00FE
+0x12974 0x00FF
+0x12975 0x0100
+0x12976 0x012A
+0x12977 0x016A
+0x12978 0x0112
+0x12979 0x014C
+0x1297A 0x0101
+0x1297B 0x012B
+0x1297C 0x016B
+0x1297D 0x0113
+0x1297E 0x014D
+0x12A21 0x0104
+0x12A22 0x02D8
+0x12A23 0x0141
+0x12A24 0x013D
+0x12A25 0x015A
+0x12A26 0x0160
+0x12A27 0x015E
+0x12A28 0x0164
+0x12A29 0x0179
+0x12A2A 0x017D
+0x12A2B 0x017B
+0x12A2C 0x0105
+0x12A2D 0x02DB
+0x12A2E 0x0142
+0x12A2F 0x013E
+0x12A30 0x015B
+0x12A31 0x02C7
+0x12A32 0x0161
+0x12A33 0x015F
+0x12A34 0x0165
+0x12A35 0x017A
+0x12A36 0x02DD
+0x12A37 0x017E
+0x12A38 0x017C
+0x12A39 0x0154
+0x12A3A 0x0102
+0x12A3B 0x0139
+0x12A3C 0x0106
+0x12A3D 0x010C
+0x12A3E 0x0118
+0x12A3F 0x011A
+0x12A40 0x010E
+0x12A41 0x0143
+0x12A42 0x0147
+0x12A43 0x0150
+0x12A44 0x0158
+0x12A45 0x016E
+0x12A46 0x0170
+0x12A47 0x0162
+0x12A48 0x0155
+0x12A49 0x0103
+0x12A4A 0x013A
+0x12A4B 0x0107
+0x12A4C 0x010D
+0x12A4D 0x0119
+0x12A4E 0x011B
+0x12A4F 0x010F
+0x12A50 0x0111
+0x12A51 0x0144
+0x12A52 0x0148
+0x12A53 0x0151
+0x12A54 0x0159
+0x12A55 0x016F
+0x12A56 0x0171
+0x12A57 0x0163
+0x12A58 0x02D9
+0x12A59 0x0108
+0x12A5A 0x011C
+0x12A5B 0x0124
+0x12A5C 0x0134
+0x12A5D 0x015C
+0x12A5E 0x016C
+0x12A5F 0x0109
+0x12A60 0x011D
+0x12A61 0x0125
+0x12A62 0x0135
+0x12A63 0x015D
+0x12A64 0x016D
+0x12A65 0x0271
+0x12A66 0x028B
+0x12A67 0x027E
+0x12A68 0x0283
+0x12A69 0x0292
+0x12A6A 0x026C
+0x12A6B 0x026E
+0x12A6C 0x0279
+0x12A6D 0x0288
+0x12A6E 0x0256
+0x12A6F 0x0273
+0x12A70 0x027D
+0x12A71 0x0282
+0x12A72 0x0290
+0x12A73 0x027B
+0x12A74 0x026D
+0x12A75 0x025F
+0x12A76 0x0272
+0x12A77 0x029D
+0x12A78 0x028E
+0x12A79 0x0261
+0x12A7A 0x014B
+0x12A7B 0x0270
+0x12A7C 0x0281
+0x12A7D 0x0127
+0x12A7E 0x0295
+0x12B21 0x0294
+0x12B22 0x0266
+0x12B23 0x0298
+0x12B24 0x01C2
+0x12B25 0x0253
+0x12B26 0x0257
+0x12B27 0x0284
+0x12B28 0x0260
+0x12B29 0x0193
+0x12B2A 0x0153
+0x12B2B 0x0152
+0x12B2C 0x0268
+0x12B2D 0x0289
+0x12B2E 0x0258
+0x12B2F 0x0275
+0x12B30 0x0259
+0x12B31 0x025C
+0x12B32 0x025E
+0x12B33 0x0250
+0x12B34 0x026F
+0x12B35 0x028A
+0x12B36 0x0264
+0x12B37 0x028C
+0x12B38 0x0254
+0x12B39 0x0251
+0x12B3A 0x0252
+0x12B3B 0x028D
+0x12B3C 0x0265
+0x12B3D 0x02A2
+0x12B3E 0x02A1
+0x12B3F 0x0255
+0x12B40 0x0291
+0x12B41 0x027A
+0x12B42 0x0267
+0x12B43 0x025A
+0x12B44 0x00E6 0x0300
+0x12B45 0x01FD
+0x12B46 0x1F70
+0x12B47 0x1F71
+0x12B48 0x0254 0x0300
+0x12B49 0x0254 0x0301
+0x12B4A 0x028C 0x0300
+0x12B4B 0x028C 0x0301
+0x12B4C 0x0259 0x0300
+0x12B4D 0x0259 0x0301
+0x12B4E 0x025A 0x0300
+0x12B4F 0x025A 0x0301
+0x12B50 0x1F72
+0x12B51 0x1F73
+0x12B52 0x0361
+0x12B53 0x02C8
+0x12B54 0x02CC
+0x12B55 0x02D0
+0x12B56 0x02D1
+0x12B57 0x0306
+0x12B58 0x203F
+0x12B59 0x030B
+0x12B5A 0x0301
+0x12B5B 0x0304
+0x12B5C 0x0300
+0x12B5D 0x030F
+0x12B5E 0x030C
+0x12B5F 0x0302
+0x12B60 0x02E5
+0x12B61 0x02E6
+0x12B62 0x02E7
+0x12B63 0x02E8
+0x12B64 0x02E9
+0x12B65 0x02E9 0x02E5
+0x12B66 0x02E5 0x02E9
+0x12B67 0x0325
+0x12B68 0x032C
+0x12B69 0x0339
+0x12B6A 0x031C
+0x12B6B 0x031F
+0x12B6C 0x0320
+0x12B6D 0x0308
+0x12B6E 0x033D
+0x12B6F 0x0329
+0x12B70 0x032F
+0x12B71 0x02DE
+0x12B72 0x0324
+0x12B73 0x0330
+0x12B74 0x033C
+0x12B75 0x0334
+0x12B76 0x031D
+0x12B77 0x031E
+0x12B78 0x0318
+0x12B79 0x0319
+0x12B7A 0x032A
+0x12B7B 0x033A
+0x12B7C 0x033B
+0x12B7D 0x0303
+0x12B7E 0x031A
+0x12C21 0x2776
+0x12C22 0x2777
+0x12C23 0x2778
+0x12C24 0x2779
+0x12C25 0x277A
+0x12C26 0x277B
+0x12C27 0x277C
+0x12C28 0x277D
+0x12C29 0x277E
+0x12C2A 0x277F
+0x12C2B 0x24EB
+0x12C2C 0x24EC
+0x12C2D 0x24ED
+0x12C2E 0x24EE
+0x12C2F 0x24EF
+0x12C30 0x24F0
+0x12C31 0x24F1
+0x12C32 0x24F2
+0x12C33 0x24F3
+0x12C34 0x24F4
+0x12C35 0x2170
+0x12C36 0x2171
+0x12C37 0x2172
+0x12C38 0x2173
+0x12C39 0x2174
+0x12C3A 0x2175
+0x12C3B 0x2176
+0x12C3C 0x2177
+0x12C3D 0x2178
+0x12C3E 0x2179
+0x12C3F 0x217A
+0x12C40 0x217B
+0x12C41 0x24D0
+0x12C42 0x24D1
+0x12C43 0x24D2
+0x12C44 0x24D3
+0x12C45 0x24D4
+0x12C46 0x24D5
+0x12C47 0x24D6
+0x12C48 0x24D7
+0x12C49 0x24D8
+0x12C4A 0x24D9
+0x12C4B 0x24DA
+0x12C4C 0x24DB
+0x12C4D 0x24DC
+0x12C4E 0x24DD
+0x12C4F 0x24DE
+0x12C50 0x24DF
+0x12C51 0x24E0
+0x12C52 0x24E1
+0x12C53 0x24E2
+0x12C54 0x24E3
+0x12C55 0x24E4
+0x12C56 0x24E5
+0x12C57 0x24E6
+0x12C58 0x24E7
+0x12C59 0x24E8
+0x12C5A 0x24E9
+0x12C5B 0x32D0
+0x12C5C 0x32D1
+0x12C5D 0x32D2
+0x12C5E 0x32D3
+0x12C5F 0x32D4
+0x12C60 0x32D5
+0x12C61 0x32D6
+0x12C62 0x32D7
+0x12C63 0x32D8
+0x12C64 0x32D9
+0x12C65 0x32DA
+0x12C66 0x32DB
+0x12C67 0x32DC
+0x12C68 0x32DD
+0x12C69 0x32DE
+0x12C6A 0x32DF
+0x12C6B 0x32E0
+0x12C6C 0x32E1
+0x12C6D 0x32E2
+0x12C6E 0x32E3
+0x12C6F 0x32FA
+0x12C70 0x32E9
+0x12C71 0x32E5
+0x12C72 0x32ED
+0x12C73 0x32EC
+0x12C7D 0x2051
+0x12C7E 0x2042
+0x12D21 0x2460
+0x12D22 0x2461
+0x12D23 0x2462
+0x12D24 0x2463
+0x12D25 0x2464
+0x12D26 0x2465
+0x12D27 0x2466
+0x12D28 0x2467
+0x12D29 0x2468
+0x12D2A 0x2469
+0x12D2B 0x246A
+0x12D2C 0x246B
+0x12D2D 0x246C
+0x12D2E 0x246D
+0x12D2F 0x246E
+0x12D30 0x246F
+0x12D31 0x2470
+0x12D32 0x2471
+0x12D33 0x2472
+0x12D34 0x2473
+0x12D35 0x2160
+0x12D36 0x2161
+0x12D37 0x2162
+0x12D38 0x2163
+0x12D39 0x2164
+0x12D3A 0x2165
+0x12D3B 0x2166
+0x12D3C 0x2167
+0x12D3D 0x2168
+0x12D3E 0x2169
+0x12D3F 0x216A
+0x12D40 0x3349
+0x12D41 0x3314
+0x12D42 0x3322
+0x12D43 0x334D
+0x12D44 0x3318
+0x12D45 0x3327
+0x12D46 0x3303
+0x12D47 0x3336
+0x12D48 0x3351
+0x12D49 0x3357
+0x12D4A 0x330D
+0x12D4B 0x3326
+0x12D4C 0x3323
+0x12D4D 0x332B
+0x12D4E 0x334A
+0x12D4F 0x333B
+0x12D50 0x339C
+0x12D51 0x339D
+0x12D52 0x339E
+0x12D53 0x338E
+0x12D54 0x338F
+0x12D55 0x33C4
+0x12D56 0x33A1
+0x12D57 0x216B
+0x12D5F 0x337B
+0x12D60 0x301D
+0x12D61 0x301F
+0x12D62 0x2116
+0x12D63 0x33CD
+0x12D64 0x2121
+0x12D65 0x32A4
+0x12D66 0x32A5
+0x12D67 0x32A6
+0x12D68 0x32A7
+0x12D69 0x32A8
+0x12D6A 0x3231
+0x12D6B 0x3232
+0x12D6C 0x3239
+0x12D6D 0x337E
+0x12D6E 0x337D
+0x12D6F 0x337C
+0x12D73 0x222E
+0x12D78 0x221F
+0x12D79 0x22BF
+0x12D7D 0x2756
+0x12D7E 0x261E
+0x12E21 0x4FF1
+0x12E22 0x2000B
+0x12E23 0x3402
+0x12E24 0x4E28
+0x12E25 0x4E2F
+0x12E26 0x4E30
+0x12E27 0x4E8D
+0x12E28 0x4EE1
+0x12E29 0x4EFD
+0x12E2A 0x4EFF
+0x12E2B 0x4F03
+0x12E2C 0x4F0B
+0x12E2D 0x4F60
+0x12E2E 0x4F48
+0x12E2F 0x4F49
+0x12E30 0x4F56
+0x12E31 0x4F5F
+0x12E32 0x4F6A
+0x12E33 0x4F6C
+0x12E34 0x4F7E
+0x12E35 0x4F8A
+0x12E36 0x4F94
+0x12E37 0x4F97
+0x12E38 0xFA30
+0x12E39 0x4FC9
+0x12E3A 0x4FE0
+0x12E3B 0x5001
+0x12E3C 0x5002
+0x12E3D 0x500E
+0x12E3E 0x5018
+0x12E3F 0x5027
+0x12E40 0x502E
+0x12E41 0x5040
+0x12E42 0x503B
+0x12E43 0x5041
+0x12E44 0x5094
+0x12E45 0x50CC
+0x12E46 0x50F2
+0x12E47 0x50D0
+0x12E48 0x50E6
+0x12E49 0xFA31
+0x12E4A 0x5106
+0x12E4B 0x5103
+0x12E4C 0x510B
+0x12E4D 0x511E
+0x12E4E 0x5135
+0x12E4F 0x514A
+0x12E50 0xFA32
+0x12E51 0x5155
+0x12E52 0x5157
+0x12E53 0x34B5
+0x12E54 0x519D
+0x12E55 0x51C3
+0x12E56 0x51CA
+0x12E57 0x51DE
+0x12E58 0x51E2
+0x12E59 0x51EE
+0x12E5A 0x5201
+0x12E5B 0x34DB
+0x12E5C 0x5213
+0x12E5D 0x5215
+0x12E5E 0x5249
+0x12E5F 0x5257
+0x12E60 0x5261
+0x12E61 0x5293
+0x12E62 0x52C8
+0x12E63 0xFA33
+0x12E64 0x52CC
+0x12E65 0x52D0
+0x12E66 0x52D6
+0x12E67 0x52DB
+0x12E68 0xFA34
+0x12E69 0x52F0
+0x12E6A 0x52FB
+0x12E6B 0x5300
+0x12E6C 0x5307
+0x12E6D 0x531C
+0x12E6E 0xFA35
+0x12E6F 0x5361
+0x12E70 0x5363
+0x12E71 0x537D
+0x12E72 0x5393
+0x12E73 0x539D
+0x12E74 0x53B2
+0x12E75 0x5412
+0x12E76 0x5427
+0x12E77 0x544D
+0x12E78 0x549C
+0x12E79 0x546B
+0x12E7A 0x5474
+0x12E7B 0x547F
+0x12E7C 0x5488
+0x12E7D 0x5496
+0x12E7E 0x54A1
+0x12F21 0x54A9
+0x12F22 0x54C6
+0x12F23 0x54FF
+0x12F24 0x550E
+0x12F25 0x552B
+0x12F26 0x5535
+0x12F27 0x5550
+0x12F28 0x555E
+0x12F29 0x5581
+0x12F2A 0x5586
+0x12F2B 0x558E
+0x12F2C 0xFA36
+0x12F2D 0x55AD
+0x12F2E 0x55CE
+0x12F2F 0xFA37
+0x12F30 0x5608
+0x12F31 0x560E
+0x12F32 0x563B
+0x12F33 0x5649
+0x12F34 0x5676
+0x12F35 0x5666
+0x12F36 0xFA38
+0x12F37 0x566F
+0x12F38 0x5671
+0x12F39 0x5672
+0x12F3A 0x5699
+0x12F3B 0x569E
+0x12F3C 0x56A9
+0x12F3D 0x56AC
+0x12F3E 0x56B3
+0x12F3F 0x56C9
+0x12F40 0x56CA
+0x12F41 0x570A
+0x12F42 0x2123D
+0x12F43 0x5721
+0x12F44 0x572F
+0x12F45 0x5733
+0x12F46 0x5734
+0x12F47 0x5770
+0x12F48 0x5777
+0x12F49 0x577C
+0x12F4A 0x579C
+0x12F4B 0xFA0F
+0x12F4C 0x2131B
+0x12F4D 0x57B8
+0x12F4E 0x57C7
+0x12F4F 0x57C8
+0x12F50 0x57CF
+0x12F51 0x57E4
+0x12F52 0x57ED
+0x12F53 0x57F5
+0x12F54 0x57F6
+0x12F55 0x57FF
+0x12F56 0x5809
+0x12F57 0xFA10
+0x12F58 0x5861
+0x12F59 0x5864
+0x12F5A 0xFA39
+0x12F5B 0x587C
+0x12F5C 0x5889
+0x12F5D 0x589E
+0x12F5E 0xFA3A
+0x12F5F 0x58A9
+0x12F60 0x2146E
+0x12F61 0x58D2
+0x12F62 0x58CE
+0x12F63 0x58D4
+0x12F64 0x58DA
+0x12F65 0x58E0
+0x12F66 0x58E9
+0x12F67 0x590C
+0x12F68 0x8641
+0x12F69 0x595D
+0x12F6A 0x596D
+0x12F6B 0x598B
+0x12F6C 0x5992
+0x12F6D 0x59A4
+0x12F6E 0x59C3
+0x12F6F 0x59D2
+0x12F70 0x59DD
+0x12F71 0x5A13
+0x12F72 0x5A23
+0x12F73 0x5A67
+0x12F74 0x5A6D
+0x12F75 0x5A77
+0x12F76 0x5A7E
+0x12F77 0x5A84
+0x12F78 0x5A9E
+0x12F79 0x5AA7
+0x12F7A 0x5AC4
+0x12F7B 0x218BD
+0x12F7C 0x5B19
+0x12F7D 0x5B25
+0x12F7E 0x525D
+0x13021 0x4E9C
+0x13022 0x5516
+0x13023 0x5A03
+0x13024 0x963F
+0x13025 0x54C0
+0x13026 0x611B
+0x13027 0x6328
+0x13028 0x59F6
+0x13029 0x9022
+0x1302A 0x8475
+0x1302B 0x831C
+0x1302C 0x7A50
+0x1302D 0x60AA
+0x1302E 0x63E1
+0x1302F 0x6E25
+0x13030 0x65ED
+0x13031 0x8466
+0x13032 0x82A6
+0x13033 0x9BF5
+0x13034 0x6893
+0x13035 0x5727
+0x13036 0x65A1
+0x13037 0x6271
+0x13038 0x5B9B
+0x13039 0x59D0
+0x1303A 0x867B
+0x1303B 0x98F4
+0x1303C 0x7D62
+0x1303D 0x7DBE
+0x1303E 0x9B8E
+0x1303F 0x6216
+0x13040 0x7C9F
+0x13041 0x88B7
+0x13042 0x5B89
+0x13043 0x5EB5
+0x13044 0x6309
+0x13045 0x6697
+0x13046 0x6848
+0x13047 0x95C7
+0x13048 0x978D
+0x13049 0x674F
+0x1304A 0x4EE5
+0x1304B 0x4F0A
+0x1304C 0x4F4D
+0x1304D 0x4F9D
+0x1304E 0x5049
+0x1304F 0x56F2
+0x13050 0x5937
+0x13051 0x59D4
+0x13052 0x5A01
+0x13053 0x5C09
+0x13054 0x60DF
+0x13055 0x610F
+0x13056 0x6170
+0x13057 0x6613
+0x13058 0x6905
+0x13059 0x70BA
+0x1305A 0x754F
+0x1305B 0x7570
+0x1305C 0x79FB
+0x1305D 0x7DAD
+0x1305E 0x7DEF
+0x1305F 0x80C3
+0x13060 0x840E
+0x13061 0x8863
+0x13062 0x8B02
+0x13063 0x9055
+0x13064 0x907A
+0x13065 0x533B
+0x13066 0x4E95
+0x13067 0x4EA5
+0x13068 0x57DF
+0x13069 0x80B2
+0x1306A 0x90C1
+0x1306B 0x78EF
+0x1306C 0x4E00
+0x1306D 0x58F1
+0x1306E 0x6EA2
+0x1306F 0x9038
+0x13070 0x7A32
+0x13071 0x8328
+0x13072 0x828B
+0x13073 0x9C2F
+0x13074 0x5141
+0x13075 0x5370
+0x13076 0x54BD
+0x13077 0x54E1
+0x13078 0x56E0
+0x13079 0x59FB
+0x1307A 0x5F15
+0x1307B 0x98F2
+0x1307C 0x6DEB
+0x1307D 0x80E4
+0x1307E 0x852D
+0x13121 0x9662
+0x13122 0x9670
+0x13123 0x96A0
+0x13124 0x97FB
+0x13125 0x540B
+0x13126 0x53F3
+0x13127 0x5B87
+0x13128 0x70CF
+0x13129 0x7FBD
+0x1312A 0x8FC2
+0x1312B 0x96E8
+0x1312C 0x536F
+0x1312D 0x9D5C
+0x1312E 0x7ABA
+0x1312F 0x4E11
+0x13130 0x7893
+0x13131 0x81FC
+0x13132 0x6E26
+0x13133 0x5618
+0x13134 0x5504
+0x13135 0x6B1D
+0x13136 0x851A
+0x13137 0x9C3B
+0x13138 0x59E5
+0x13139 0x53A9
+0x1313A 0x6D66
+0x1313B 0x74DC
+0x1313C 0x958F
+0x1313D 0x5642
+0x1313E 0x4E91
+0x1313F 0x904B
+0x13140 0x96F2
+0x13141 0x834F
+0x13142 0x990C
+0x13143 0x53E1
+0x13144 0x55B6
+0x13145 0x5B30
+0x13146 0x5F71
+0x13147 0x6620
+0x13148 0x66F3
+0x13149 0x6804
+0x1314A 0x6C38
+0x1314B 0x6CF3
+0x1314C 0x6D29
+0x1314D 0x745B
+0x1314E 0x76C8
+0x1314F 0x7A4E
+0x13150 0x9834
+0x13151 0x82F1
+0x13152 0x885B
+0x13153 0x8A60
+0x13154 0x92ED
+0x13155 0x6DB2
+0x13156 0x75AB
+0x13157 0x76CA
+0x13158 0x99C5
+0x13159 0x60A6
+0x1315A 0x8B01
+0x1315B 0x8D8A
+0x1315C 0x95B2
+0x1315D 0x698E
+0x1315E 0x53AD
+0x1315F 0x5186
+0x13160 0x5712
+0x13161 0x5830
+0x13162 0x5944
+0x13163 0x5BB4
+0x13164 0x5EF6
+0x13165 0x6028
+0x13166 0x63A9
+0x13167 0x63F4
+0x13168 0x6CBF
+0x13169 0x6F14
+0x1316A 0x708E
+0x1316B 0x7114
+0x1316C 0x7159
+0x1316D 0x71D5
+0x1316E 0x733F
+0x1316F 0x7E01
+0x13170 0x8276
+0x13171 0x82D1
+0x13172 0x8597
+0x13173 0x9060
+0x13174 0x925B
+0x13175 0x9D1B
+0x13176 0x5869
+0x13177 0x65BC
+0x13178 0x6C5A
+0x13179 0x7525
+0x1317A 0x51F9
+0x1317B 0x592E
+0x1317C 0x5965
+0x1317D 0x5F80
+0x1317E 0x5FDC
+0x13221 0x62BC
+0x13222 0x65FA
+0x13223 0x6A2A
+0x13224 0x6B27
+0x13225 0x6BB4
+0x13226 0x738B
+0x13227 0x7FC1
+0x13228 0x8956
+0x13229 0x9D2C
+0x1322A 0x9D0E
+0x1322B 0x9EC4
+0x1322C 0x5CA1
+0x1322D 0x6C96
+0x1322E 0x837B
+0x1322F 0x5104
+0x13230 0x5C4B
+0x13231 0x61B6
+0x13232 0x81C6
+0x13233 0x6876
+0x13234 0x7261
+0x13235 0x4E59
+0x13236 0x4FFA
+0x13237 0x5378
+0x13238 0x6069
+0x13239 0x6E29
+0x1323A 0x7A4F
+0x1323B 0x97F3
+0x1323C 0x4E0B
+0x1323D 0x5316
+0x1323E 0x4EEE
+0x1323F 0x4F55
+0x13240 0x4F3D
+0x13241 0x4FA1
+0x13242 0x4F73
+0x13243 0x52A0
+0x13244 0x53EF
+0x13245 0x5609
+0x13246 0x590F
+0x13247 0x5AC1
+0x13248 0x5BB6
+0x13249 0x5BE1
+0x1324A 0x79D1
+0x1324B 0x6687
+0x1324C 0x679C
+0x1324D 0x67B6
+0x1324E 0x6B4C
+0x1324F 0x6CB3
+0x13250 0x706B
+0x13251 0x73C2
+0x13252 0x798D
+0x13253 0x79BE
+0x13254 0x7A3C
+0x13255 0x7B87
+0x13256 0x82B1
+0x13257 0x82DB
+0x13258 0x8304
+0x13259 0x8377
+0x1325A 0x83EF
+0x1325B 0x83D3
+0x1325C 0x8766
+0x1325D 0x8AB2
+0x1325E 0x5629
+0x1325F 0x8CA8
+0x13260 0x8FE6
+0x13261 0x904E
+0x13262 0x971E
+0x13263 0x868A
+0x13264 0x4FC4
+0x13265 0x5CE8
+0x13266 0x6211
+0x13267 0x7259
+0x13268 0x753B
+0x13269 0x81E5
+0x1326A 0x82BD
+0x1326B 0x86FE
+0x1326C 0x8CC0
+0x1326D 0x96C5
+0x1326E 0x9913
+0x1326F 0x99D5
+0x13270 0x4ECB
+0x13271 0x4F1A
+0x13272 0x89E3
+0x13273 0x56DE
+0x13274 0x584A
+0x13275 0x58CA
+0x13276 0x5EFB
+0x13277 0x5FEB
+0x13278 0x602A
+0x13279 0x6094
+0x1327A 0x6062
+0x1327B 0x61D0
+0x1327C 0x6212
+0x1327D 0x62D0
+0x1327E 0x6539
+0x13321 0x9B41
+0x13322 0x6666
+0x13323 0x68B0
+0x13324 0x6D77
+0x13325 0x7070
+0x13326 0x754C
+0x13327 0x7686
+0x13328 0x7D75
+0x13329 0x82A5
+0x1332A 0x87F9
+0x1332B 0x958B
+0x1332C 0x968E
+0x1332D 0x8C9D
+0x1332E 0x51F1
+0x1332F 0x52BE
+0x13330 0x5916
+0x13331 0x54B3
+0x13332 0x5BB3
+0x13333 0x5D16
+0x13334 0x6168
+0x13335 0x6982
+0x13336 0x6DAF
+0x13337 0x788D
+0x13338 0x84CB
+0x13339 0x8857
+0x1333A 0x8A72
+0x1333B 0x93A7
+0x1333C 0x9AB8
+0x1333D 0x6D6C
+0x1333E 0x99A8
+0x1333F 0x86D9
+0x13340 0x57A3
+0x13341 0x67FF
+0x13342 0x86CE
+0x13343 0x920E
+0x13344 0x5283
+0x13345 0x5687
+0x13346 0x5404
+0x13347 0x5ED3
+0x13348 0x62E1
+0x13349 0x64B9
+0x1334A 0x683C
+0x1334B 0x6838
+0x1334C 0x6BBB
+0x1334D 0x7372
+0x1334E 0x78BA
+0x1334F 0x7A6B
+0x13350 0x899A
+0x13351 0x89D2
+0x13352 0x8D6B
+0x13353 0x8F03
+0x13354 0x90ED
+0x13355 0x95A3
+0x13356 0x9694
+0x13357 0x9769
+0x13358 0x5B66
+0x13359 0x5CB3
+0x1335A 0x697D
+0x1335B 0x984D
+0x1335C 0x984E
+0x1335D 0x639B
+0x1335E 0x7B20
+0x1335F 0x6A2B
+0x13360 0x6A7F
+0x13361 0x68B6
+0x13362 0x9C0D
+0x13363 0x6F5F
+0x13364 0x5272
+0x13365 0x559D
+0x13366 0x6070
+0x13367 0x62EC
+0x13368 0x6D3B
+0x13369 0x6E07
+0x1336A 0x6ED1
+0x1336B 0x845B
+0x1336C 0x8910
+0x1336D 0x8F44
+0x1336E 0x4E14
+0x1336F 0x9C39
+0x13370 0x53F6
+0x13371 0x691B
+0x13372 0x6A3A
+0x13373 0x9784
+0x13374 0x682A
+0x13375 0x515C
+0x13376 0x7AC3
+0x13377 0x84B2
+0x13378 0x91DC
+0x13379 0x938C
+0x1337A 0x565B
+0x1337B 0x9D28
+0x1337C 0x6822
+0x1337D 0x8305
+0x1337E 0x8431
+0x13421 0x7CA5
+0x13422 0x5208
+0x13423 0x82C5
+0x13424 0x74E6
+0x13425 0x4E7E
+0x13426 0x4F83
+0x13427 0x51A0
+0x13428 0x5BD2
+0x13429 0x520A
+0x1342A 0x52D8
+0x1342B 0x52E7
+0x1342C 0x5DFB
+0x1342D 0x559A
+0x1342E 0x582A
+0x1342F 0x59E6
+0x13430 0x5B8C
+0x13431 0x5B98
+0x13432 0x5BDB
+0x13433 0x5E72
+0x13434 0x5E79
+0x13435 0x60A3
+0x13436 0x611F
+0x13437 0x6163
+0x13438 0x61BE
+0x13439 0x63DB
+0x1343A 0x6562
+0x1343B 0x67D1
+0x1343C 0x6853
+0x1343D 0x68FA
+0x1343E 0x6B3E
+0x1343F 0x6B53
+0x13440 0x6C57
+0x13441 0x6F22
+0x13442 0x6F97
+0x13443 0x6F45
+0x13444 0x74B0
+0x13445 0x7518
+0x13446 0x76E3
+0x13447 0x770B
+0x13448 0x7AFF
+0x13449 0x7BA1
+0x1344A 0x7C21
+0x1344B 0x7DE9
+0x1344C 0x7F36
+0x1344D 0x7FF0
+0x1344E 0x809D
+0x1344F 0x8266
+0x13450 0x839E
+0x13451 0x89B3
+0x13452 0x8ACC
+0x13453 0x8CAB
+0x13454 0x9084
+0x13455 0x9451
+0x13456 0x9593
+0x13457 0x9591
+0x13458 0x95A2
+0x13459 0x9665
+0x1345A 0x97D3
+0x1345B 0x9928
+0x1345C 0x8218
+0x1345D 0x4E38
+0x1345E 0x542B
+0x1345F 0x5CB8
+0x13460 0x5DCC
+0x13461 0x73A9
+0x13462 0x764C
+0x13463 0x773C
+0x13464 0x5CA9
+0x13465 0x7FEB
+0x13466 0x8D0B
+0x13467 0x96C1
+0x13468 0x9811
+0x13469 0x9854
+0x1346A 0x9858
+0x1346B 0x4F01
+0x1346C 0x4F0E
+0x1346D 0x5371
+0x1346E 0x559C
+0x1346F 0x5668
+0x13470 0x57FA
+0x13471 0x5947
+0x13472 0x5B09
+0x13473 0x5BC4
+0x13474 0x5C90
+0x13475 0x5E0C
+0x13476 0x5E7E
+0x13477 0x5FCC
+0x13478 0x63EE
+0x13479 0x673A
+0x1347A 0x65D7
+0x1347B 0x65E2
+0x1347C 0x671F
+0x1347D 0x68CB
+0x1347E 0x68C4
+0x13521 0x6A5F
+0x13522 0x5E30
+0x13523 0x6BC5
+0x13524 0x6C17
+0x13525 0x6C7D
+0x13526 0x757F
+0x13527 0x7948
+0x13528 0x5B63
+0x13529 0x7A00
+0x1352A 0x7D00
+0x1352B 0x5FBD
+0x1352C 0x898F
+0x1352D 0x8A18
+0x1352E 0x8CB4
+0x1352F 0x8D77
+0x13530 0x8ECC
+0x13531 0x8F1D
+0x13532 0x98E2
+0x13533 0x9A0E
+0x13534 0x9B3C
+0x13535 0x4E80
+0x13536 0x507D
+0x13537 0x5100
+0x13538 0x5993
+0x13539 0x5B9C
+0x1353A 0x622F
+0x1353B 0x6280
+0x1353C 0x64EC
+0x1353D 0x6B3A
+0x1353E 0x72A0
+0x1353F 0x7591
+0x13540 0x7947
+0x13541 0x7FA9
+0x13542 0x87FB
+0x13543 0x8ABC
+0x13544 0x8B70
+0x13545 0x63AC
+0x13546 0x83CA
+0x13547 0x97A0
+0x13548 0x5409
+0x13549 0x5403
+0x1354A 0x55AB
+0x1354B 0x6854
+0x1354C 0x6A58
+0x1354D 0x8A70
+0x1354E 0x7827
+0x1354F 0x6775
+0x13550 0x9ECD
+0x13551 0x5374
+0x13552 0x5BA2
+0x13553 0x811A
+0x13554 0x8650
+0x13555 0x9006
+0x13556 0x4E18
+0x13557 0x4E45
+0x13558 0x4EC7
+0x13559 0x4F11
+0x1355A 0x53CA
+0x1355B 0x5438
+0x1355C 0x5BAE
+0x1355D 0x5F13
+0x1355E 0x6025
+0x1355F 0x6551
+0x13560 0x673D
+0x13561 0x6C42
+0x13562 0x6C72
+0x13563 0x6CE3
+0x13564 0x7078
+0x13565 0x7403
+0x13566 0x7A76
+0x13567 0x7AAE
+0x13568 0x7B08
+0x13569 0x7D1A
+0x1356A 0x7CFE
+0x1356B 0x7D66
+0x1356C 0x65E7
+0x1356D 0x725B
+0x1356E 0x53BB
+0x1356F 0x5C45
+0x13570 0x5DE8
+0x13571 0x62D2
+0x13572 0x62E0
+0x13573 0x6319
+0x13574 0x6E20
+0x13575 0x865A
+0x13576 0x8A31
+0x13577 0x8DDD
+0x13578 0x92F8
+0x13579 0x6F01
+0x1357A 0x79A6
+0x1357B 0x9B5A
+0x1357C 0x4EA8
+0x1357D 0x4EAB
+0x1357E 0x4EAC
+0x13621 0x4F9B
+0x13622 0x4FA0
+0x13623 0x50D1
+0x13624 0x5147
+0x13625 0x7AF6
+0x13626 0x5171
+0x13627 0x51F6
+0x13628 0x5354
+0x13629 0x5321
+0x1362A 0x537F
+0x1362B 0x53EB
+0x1362C 0x55AC
+0x1362D 0x5883
+0x1362E 0x5CE1
+0x1362F 0x5F37
+0x13630 0x5F4A
+0x13631 0x602F
+0x13632 0x6050
+0x13633 0x606D
+0x13634 0x631F
+0x13635 0x6559
+0x13636 0x6A4B
+0x13637 0x6CC1
+0x13638 0x72C2
+0x13639 0x72ED
+0x1363A 0x77EF
+0x1363B 0x80F8
+0x1363C 0x8105
+0x1363D 0x8208
+0x1363E 0x854E
+0x1363F 0x90F7
+0x13640 0x93E1
+0x13641 0x97FF
+0x13642 0x9957
+0x13643 0x9A5A
+0x13644 0x4EF0
+0x13645 0x51DD
+0x13646 0x5C2D
+0x13647 0x6681
+0x13648 0x696D
+0x13649 0x5C40
+0x1364A 0x66F2
+0x1364B 0x6975
+0x1364C 0x7389
+0x1364D 0x6850
+0x1364E 0x7C81
+0x1364F 0x50C5
+0x13650 0x52E4
+0x13651 0x5747
+0x13652 0x5DFE
+0x13653 0x9326
+0x13654 0x65A4
+0x13655 0x6B23
+0x13656 0x6B3D
+0x13657 0x7434
+0x13658 0x7981
+0x13659 0x79BD
+0x1365A 0x7B4B
+0x1365B 0x7DCA
+0x1365C 0x82B9
+0x1365D 0x83CC
+0x1365E 0x887F
+0x1365F 0x895F
+0x13660 0x8B39
+0x13661 0x8FD1
+0x13662 0x91D1
+0x13663 0x541F
+0x13664 0x9280
+0x13665 0x4E5D
+0x13666 0x5036
+0x13667 0x53E5
+0x13668 0x533A
+0x13669 0x72D7
+0x1366A 0x7396
+0x1366B 0x77E9
+0x1366C 0x82E6
+0x1366D 0x8EAF
+0x1366E 0x99C6
+0x1366F 0x99C8
+0x13670 0x99D2
+0x13671 0x5177
+0x13672 0x611A
+0x13673 0x865E
+0x13674 0x55B0
+0x13675 0x7A7A
+0x13676 0x5076
+0x13677 0x5BD3
+0x13678 0x9047
+0x13679 0x9685
+0x1367A 0x4E32
+0x1367B 0x6ADB
+0x1367C 0x91E7
+0x1367D 0x5C51
+0x1367E 0x5C48
+0x13721 0x6398
+0x13722 0x7A9F
+0x13723 0x6C93
+0x13724 0x9774
+0x13725 0x8F61
+0x13726 0x7AAA
+0x13727 0x718A
+0x13728 0x9688
+0x13729 0x7C82
+0x1372A 0x6817
+0x1372B 0x7E70
+0x1372C 0x6851
+0x1372D 0x936C
+0x1372E 0x52F2
+0x1372F 0x541B
+0x13730 0x85AB
+0x13731 0x8A13
+0x13732 0x7FA4
+0x13733 0x8ECD
+0x13734 0x90E1
+0x13735 0x5366
+0x13736 0x8888
+0x13737 0x7941
+0x13738 0x4FC2
+0x13739 0x50BE
+0x1373A 0x5211
+0x1373B 0x5144
+0x1373C 0x5553
+0x1373D 0x572D
+0x1373E 0x73EA
+0x1373F 0x578B
+0x13740 0x5951
+0x13741 0x5F62
+0x13742 0x5F84
+0x13743 0x6075
+0x13744 0x6176
+0x13745 0x6167
+0x13746 0x61A9
+0x13747 0x63B2
+0x13748 0x643A
+0x13749 0x656C
+0x1374A 0x666F
+0x1374B 0x6842
+0x1374C 0x6E13
+0x1374D 0x7566
+0x1374E 0x7A3D
+0x1374F 0x7CFB
+0x13750 0x7D4C
+0x13751 0x7D99
+0x13752 0x7E4B
+0x13753 0x7F6B
+0x13754 0x830E
+0x13755 0x834A
+0x13756 0x86CD
+0x13757 0x8A08
+0x13758 0x8A63
+0x13759 0x8B66
+0x1375A 0x8EFD
+0x1375B 0x981A
+0x1375C 0x9D8F
+0x1375D 0x82B8
+0x1375E 0x8FCE
+0x1375F 0x9BE8
+0x13760 0x5287
+0x13761 0x621F
+0x13762 0x6483
+0x13763 0x6FC0
+0x13764 0x9699
+0x13765 0x6841
+0x13766 0x5091
+0x13767 0x6B20
+0x13768 0x6C7A
+0x13769 0x6F54
+0x1376A 0x7A74
+0x1376B 0x7D50
+0x1376C 0x8840
+0x1376D 0x8A23
+0x1376E 0x6708
+0x1376F 0x4EF6
+0x13770 0x5039
+0x13771 0x5026
+0x13772 0x5065
+0x13773 0x517C
+0x13774 0x5238
+0x13775 0x5263
+0x13776 0x55A7
+0x13777 0x570F
+0x13778 0x5805
+0x13779 0x5ACC
+0x1377A 0x5EFA
+0x1377B 0x61B2
+0x1377C 0x61F8
+0x1377D 0x62F3
+0x1377E 0x6372
+0x13821 0x691C
+0x13822 0x6A29
+0x13823 0x727D
+0x13824 0x72AC
+0x13825 0x732E
+0x13826 0x7814
+0x13827 0x786F
+0x13828 0x7D79
+0x13829 0x770C
+0x1382A 0x80A9
+0x1382B 0x898B
+0x1382C 0x8B19
+0x1382D 0x8CE2
+0x1382E 0x8ED2
+0x1382F 0x9063
+0x13830 0x9375
+0x13831 0x967A
+0x13832 0x9855
+0x13833 0x9A13
+0x13834 0x9E78
+0x13835 0x5143
+0x13836 0x539F
+0x13837 0x53B3
+0x13838 0x5E7B
+0x13839 0x5F26
+0x1383A 0x6E1B
+0x1383B 0x6E90
+0x1383C 0x7384
+0x1383D 0x73FE
+0x1383E 0x7D43
+0x1383F 0x8237
+0x13840 0x8A00
+0x13841 0x8AFA
+0x13842 0x9650
+0x13843 0x4E4E
+0x13844 0x500B
+0x13845 0x53E4
+0x13846 0x547C
+0x13847 0x56FA
+0x13848 0x59D1
+0x13849 0x5B64
+0x1384A 0x5DF1
+0x1384B 0x5EAB
+0x1384C 0x5F27
+0x1384D 0x6238
+0x1384E 0x6545
+0x1384F 0x67AF
+0x13850 0x6E56
+0x13851 0x72D0
+0x13852 0x7CCA
+0x13853 0x88B4
+0x13854 0x80A1
+0x13855 0x80E1
+0x13856 0x83F0
+0x13857 0x864E
+0x13858 0x8A87
+0x13859 0x8DE8
+0x1385A 0x9237
+0x1385B 0x96C7
+0x1385C 0x9867
+0x1385D 0x9F13
+0x1385E 0x4E94
+0x1385F 0x4E92
+0x13860 0x4F0D
+0x13861 0x5348
+0x13862 0x5449
+0x13863 0x543E
+0x13864 0x5A2F
+0x13865 0x5F8C
+0x13866 0x5FA1
+0x13867 0x609F
+0x13868 0x68A7
+0x13869 0x6A8E
+0x1386A 0x745A
+0x1386B 0x7881
+0x1386C 0x8A9E
+0x1386D 0x8AA4
+0x1386E 0x8B77
+0x1386F 0x9190
+0x13870 0x4E5E
+0x13871 0x9BC9
+0x13872 0x4EA4
+0x13873 0x4F7C
+0x13874 0x4FAF
+0x13875 0x5019
+0x13876 0x5016
+0x13877 0x5149
+0x13878 0x516C
+0x13879 0x529F
+0x1387A 0x52B9
+0x1387B 0x52FE
+0x1387C 0x539A
+0x1387D 0x53E3
+0x1387E 0x5411
+0x13921 0x540E
+0x13922 0x5589
+0x13923 0x5751
+0x13924 0x57A2
+0x13925 0x597D
+0x13926 0x5B54
+0x13927 0x5B5D
+0x13928 0x5B8F
+0x13929 0x5DE5
+0x1392A 0x5DE7
+0x1392B 0x5DF7
+0x1392C 0x5E78
+0x1392D 0x5E83
+0x1392E 0x5E9A
+0x1392F 0x5EB7
+0x13930 0x5F18
+0x13931 0x6052
+0x13932 0x614C
+0x13933 0x6297
+0x13934 0x62D8
+0x13935 0x63A7
+0x13936 0x653B
+0x13937 0x6602
+0x13938 0x6643
+0x13939 0x66F4
+0x1393A 0x676D
+0x1393B 0x6821
+0x1393C 0x6897
+0x1393D 0x69CB
+0x1393E 0x6C5F
+0x1393F 0x6D2A
+0x13940 0x6D69
+0x13941 0x6E2F
+0x13942 0x6E9D
+0x13943 0x7532
+0x13944 0x7687
+0x13945 0x786C
+0x13946 0x7A3F
+0x13947 0x7CE0
+0x13948 0x7D05
+0x13949 0x7D18
+0x1394A 0x7D5E
+0x1394B 0x7DB1
+0x1394C 0x8015
+0x1394D 0x8003
+0x1394E 0x80AF
+0x1394F 0x80B1
+0x13950 0x8154
+0x13951 0x818F
+0x13952 0x822A
+0x13953 0x8352
+0x13954 0x884C
+0x13955 0x8861
+0x13956 0x8B1B
+0x13957 0x8CA2
+0x13958 0x8CFC
+0x13959 0x90CA
+0x1395A 0x9175
+0x1395B 0x9271
+0x1395C 0x783F
+0x1395D 0x92FC
+0x1395E 0x95A4
+0x1395F 0x964D
+0x13960 0x9805
+0x13961 0x9999
+0x13962 0x9AD8
+0x13963 0x9D3B
+0x13964 0x525B
+0x13965 0x52AB
+0x13966 0x53F7
+0x13967 0x5408
+0x13968 0x58D5
+0x13969 0x62F7
+0x1396A 0x6FE0
+0x1396B 0x8C6A
+0x1396C 0x8F5F
+0x1396D 0x9EB9
+0x1396E 0x514B
+0x1396F 0x523B
+0x13970 0x544A
+0x13971 0x56FD
+0x13972 0x7A40
+0x13973 0x9177
+0x13974 0x9D60
+0x13975 0x9ED2
+0x13976 0x7344
+0x13977 0x6F09
+0x13978 0x8170
+0x13979 0x7511
+0x1397A 0x5FFD
+0x1397B 0x60DA
+0x1397C 0x9AA8
+0x1397D 0x72DB
+0x1397E 0x8FBC
+0x13A21 0x6B64
+0x13A22 0x9803
+0x13A23 0x4ECA
+0x13A24 0x56F0
+0x13A25 0x5764
+0x13A26 0x58BE
+0x13A27 0x5A5A
+0x13A28 0x6068
+0x13A29 0x61C7
+0x13A2A 0x660F
+0x13A2B 0x6606
+0x13A2C 0x6839
+0x13A2D 0x68B1
+0x13A2E 0x6DF7
+0x13A2F 0x75D5
+0x13A30 0x7D3A
+0x13A31 0x826E
+0x13A32 0x9B42
+0x13A33 0x4E9B
+0x13A34 0x4F50
+0x13A35 0x53C9
+0x13A36 0x5506
+0x13A37 0x5D6F
+0x13A38 0x5DE6
+0x13A39 0x5DEE
+0x13A3A 0x67FB
+0x13A3B 0x6C99
+0x13A3C 0x7473
+0x13A3D 0x7802
+0x13A3E 0x8A50
+0x13A3F 0x9396
+0x13A40 0x88DF
+0x13A41 0x5750
+0x13A42 0x5EA7
+0x13A43 0x632B
+0x13A44 0x50B5
+0x13A45 0x50AC
+0x13A46 0x518D
+0x13A47 0x6700
+0x13A48 0x54C9
+0x13A49 0x585E
+0x13A4A 0x59BB
+0x13A4B 0x5BB0
+0x13A4C 0x5F69
+0x13A4D 0x624D
+0x13A4E 0x63A1
+0x13A4F 0x683D
+0x13A50 0x6B73
+0x13A51 0x6E08
+0x13A52 0x707D
+0x13A53 0x91C7
+0x13A54 0x7280
+0x13A55 0x7815
+0x13A56 0x7826
+0x13A57 0x796D
+0x13A58 0x658E
+0x13A59 0x7D30
+0x13A5A 0x83DC
+0x13A5B 0x88C1
+0x13A5C 0x8F09
+0x13A5D 0x969B
+0x13A5E 0x5264
+0x13A5F 0x5728
+0x13A60 0x6750
+0x13A61 0x7F6A
+0x13A62 0x8CA1
+0x13A63 0x51B4
+0x13A64 0x5742
+0x13A65 0x962A
+0x13A66 0x583A
+0x13A67 0x698A
+0x13A68 0x80B4
+0x13A69 0x54B2
+0x13A6A 0x5D0E
+0x13A6B 0x57FC
+0x13A6C 0x7895
+0x13A6D 0x9DFA
+0x13A6E 0x4F5C
+0x13A6F 0x524A
+0x13A70 0x548B
+0x13A71 0x643E
+0x13A72 0x6628
+0x13A73 0x6714
+0x13A74 0x67F5
+0x13A75 0x7A84
+0x13A76 0x7B56
+0x13A77 0x7D22
+0x13A78 0x932F
+0x13A79 0x685C
+0x13A7A 0x9BAD
+0x13A7B 0x7B39
+0x13A7C 0x5319
+0x13A7D 0x518A
+0x13A7E 0x5237
+0x13B21 0x5BDF
+0x13B22 0x62F6
+0x13B23 0x64AE
+0x13B24 0x64E6
+0x13B25 0x672D
+0x13B26 0x6BBA
+0x13B27 0x85A9
+0x13B28 0x96D1
+0x13B29 0x7690
+0x13B2A 0x9BD6
+0x13B2B 0x634C
+0x13B2C 0x9306
+0x13B2D 0x9BAB
+0x13B2E 0x76BF
+0x13B2F 0x6652
+0x13B30 0x4E09
+0x13B31 0x5098
+0x13B32 0x53C2
+0x13B33 0x5C71
+0x13B34 0x60E8
+0x13B35 0x6492
+0x13B36 0x6563
+0x13B37 0x685F
+0x13B38 0x71E6
+0x13B39 0x73CA
+0x13B3A 0x7523
+0x13B3B 0x7B97
+0x13B3C 0x7E82
+0x13B3D 0x8695
+0x13B3E 0x8B83
+0x13B3F 0x8CDB
+0x13B40 0x9178
+0x13B41 0x9910
+0x13B42 0x65AC
+0x13B43 0x66AB
+0x13B44 0x6B8B
+0x13B45 0x4ED5
+0x13B46 0x4ED4
+0x13B47 0x4F3A
+0x13B48 0x4F7F
+0x13B49 0x523A
+0x13B4A 0x53F8
+0x13B4B 0x53F2
+0x13B4C 0x55E3
+0x13B4D 0x56DB
+0x13B4E 0x58EB
+0x13B4F 0x59CB
+0x13B50 0x59C9
+0x13B51 0x59FF
+0x13B52 0x5B50
+0x13B53 0x5C4D
+0x13B54 0x5E02
+0x13B55 0x5E2B
+0x13B56 0x5FD7
+0x13B57 0x601D
+0x13B58 0x6307
+0x13B59 0x652F
+0x13B5A 0x5B5C
+0x13B5B 0x65AF
+0x13B5C 0x65BD
+0x13B5D 0x65E8
+0x13B5E 0x679D
+0x13B5F 0x6B62
+0x13B60 0x6B7B
+0x13B61 0x6C0F
+0x13B62 0x7345
+0x13B63 0x7949
+0x13B64 0x79C1
+0x13B65 0x7CF8
+0x13B66 0x7D19
+0x13B67 0x7D2B
+0x13B68 0x80A2
+0x13B69 0x8102
+0x13B6A 0x81F3
+0x13B6B 0x8996
+0x13B6C 0x8A5E
+0x13B6D 0x8A69
+0x13B6E 0x8A66
+0x13B6F 0x8A8C
+0x13B70 0x8AEE
+0x13B71 0x8CC7
+0x13B72 0x8CDC
+0x13B73 0x96CC
+0x13B74 0x98FC
+0x13B75 0x6B6F
+0x13B76 0x4E8B
+0x13B77 0x4F3C
+0x13B78 0x4F8D
+0x13B79 0x5150
+0x13B7A 0x5B57
+0x13B7B 0x5BFA
+0x13B7C 0x6148
+0x13B7D 0x6301
+0x13B7E 0x6642
+0x13C21 0x6B21
+0x13C22 0x6ECB
+0x13C23 0x6CBB
+0x13C24 0x723E
+0x13C25 0x74BD
+0x13C26 0x75D4
+0x13C27 0x78C1
+0x13C28 0x793A
+0x13C29 0x800C
+0x13C2A 0x8033
+0x13C2B 0x81EA
+0x13C2C 0x8494
+0x13C2D 0x8F9E
+0x13C2E 0x6C50
+0x13C2F 0x9E7F
+0x13C30 0x5F0F
+0x13C31 0x8B58
+0x13C32 0x9D2B
+0x13C33 0x7AFA
+0x13C34 0x8EF8
+0x13C35 0x5B8D
+0x13C36 0x96EB
+0x13C37 0x4E03
+0x13C38 0x53F1
+0x13C39 0x57F7
+0x13C3A 0x5931
+0x13C3B 0x5AC9
+0x13C3C 0x5BA4
+0x13C3D 0x6089
+0x13C3E 0x6E7F
+0x13C3F 0x6F06
+0x13C40 0x75BE
+0x13C41 0x8CEA
+0x13C42 0x5B9F
+0x13C43 0x8500
+0x13C44 0x7BE0
+0x13C45 0x5072
+0x13C46 0x67F4
+0x13C47 0x829D
+0x13C48 0x5C61
+0x13C49 0x854A
+0x13C4A 0x7E1E
+0x13C4B 0x820E
+0x13C4C 0x5199
+0x13C4D 0x5C04
+0x13C4E 0x6368
+0x13C4F 0x8D66
+0x13C50 0x659C
+0x13C51 0x716E
+0x13C52 0x793E
+0x13C53 0x7D17
+0x13C54 0x8005
+0x13C55 0x8B1D
+0x13C56 0x8ECA
+0x13C57 0x906E
+0x13C58 0x86C7
+0x13C59 0x90AA
+0x13C5A 0x501F
+0x13C5B 0x52FA
+0x13C5C 0x5C3A
+0x13C5D 0x6753
+0x13C5E 0x707C
+0x13C5F 0x7235
+0x13C60 0x914C
+0x13C61 0x91C8
+0x13C62 0x932B
+0x13C63 0x82E5
+0x13C64 0x5BC2
+0x13C65 0x5F31
+0x13C66 0x60F9
+0x13C67 0x4E3B
+0x13C68 0x53D6
+0x13C69 0x5B88
+0x13C6A 0x624B
+0x13C6B 0x6731
+0x13C6C 0x6B8A
+0x13C6D 0x72E9
+0x13C6E 0x73E0
+0x13C6F 0x7A2E
+0x13C70 0x816B
+0x13C71 0x8DA3
+0x13C72 0x9152
+0x13C73 0x9996
+0x13C74 0x5112
+0x13C75 0x53D7
+0x13C76 0x546A
+0x13C77 0x5BFF
+0x13C78 0x6388
+0x13C79 0x6A39
+0x13C7A 0x7DAC
+0x13C7B 0x9700
+0x13C7C 0x56DA
+0x13C7D 0x53CE
+0x13C7E 0x5468
+0x13D21 0x5B97
+0x13D22 0x5C31
+0x13D23 0x5DDE
+0x13D24 0x4FEE
+0x13D25 0x6101
+0x13D26 0x62FE
+0x13D27 0x6D32
+0x13D28 0x79C0
+0x13D29 0x79CB
+0x13D2A 0x7D42
+0x13D2B 0x7E4D
+0x13D2C 0x7FD2
+0x13D2D 0x81ED
+0x13D2E 0x821F
+0x13D2F 0x8490
+0x13D30 0x8846
+0x13D31 0x8972
+0x13D32 0x8B90
+0x13D33 0x8E74
+0x13D34 0x8F2F
+0x13D35 0x9031
+0x13D36 0x914B
+0x13D37 0x916C
+0x13D38 0x96C6
+0x13D39 0x919C
+0x13D3A 0x4EC0
+0x13D3B 0x4F4F
+0x13D3C 0x5145
+0x13D3D 0x5341
+0x13D3E 0x5F93
+0x13D3F 0x620E
+0x13D40 0x67D4
+0x13D41 0x6C41
+0x13D42 0x6E0B
+0x13D43 0x7363
+0x13D44 0x7E26
+0x13D45 0x91CD
+0x13D46 0x9283
+0x13D47 0x53D4
+0x13D48 0x5919
+0x13D49 0x5BBF
+0x13D4A 0x6DD1
+0x13D4B 0x795D
+0x13D4C 0x7E2E
+0x13D4D 0x7C9B
+0x13D4E 0x587E
+0x13D4F 0x719F
+0x13D50 0x51FA
+0x13D51 0x8853
+0x13D52 0x8FF0
+0x13D53 0x4FCA
+0x13D54 0x5CFB
+0x13D55 0x6625
+0x13D56 0x77AC
+0x13D57 0x7AE3
+0x13D58 0x821C
+0x13D59 0x99FF
+0x13D5A 0x51C6
+0x13D5B 0x5FAA
+0x13D5C 0x65EC
+0x13D5D 0x696F
+0x13D5E 0x6B89
+0x13D5F 0x6DF3
+0x13D60 0x6E96
+0x13D61 0x6F64
+0x13D62 0x76FE
+0x13D63 0x7D14
+0x13D64 0x5DE1
+0x13D65 0x9075
+0x13D66 0x9187
+0x13D67 0x9806
+0x13D68 0x51E6
+0x13D69 0x521D
+0x13D6A 0x6240
+0x13D6B 0x6691
+0x13D6C 0x66D9
+0x13D6D 0x6E1A
+0x13D6E 0x5EB6
+0x13D6F 0x7DD2
+0x13D70 0x7F72
+0x13D71 0x66F8
+0x13D72 0x85AF
+0x13D73 0x85F7
+0x13D74 0x8AF8
+0x13D75 0x52A9
+0x13D76 0x53D9
+0x13D77 0x5973
+0x13D78 0x5E8F
+0x13D79 0x5F90
+0x13D7A 0x6055
+0x13D7B 0x92E4
+0x13D7C 0x9664
+0x13D7D 0x50B7
+0x13D7E 0x511F
+0x13E21 0x52DD
+0x13E22 0x5320
+0x13E23 0x5347
+0x13E24 0x53EC
+0x13E25 0x54E8
+0x13E26 0x5546
+0x13E27 0x5531
+0x13E28 0x5617
+0x13E29 0x5968
+0x13E2A 0x59BE
+0x13E2B 0x5A3C
+0x13E2C 0x5BB5
+0x13E2D 0x5C06
+0x13E2E 0x5C0F
+0x13E2F 0x5C11
+0x13E30 0x5C1A
+0x13E31 0x5E84
+0x13E32 0x5E8A
+0x13E33 0x5EE0
+0x13E34 0x5F70
+0x13E35 0x627F
+0x13E36 0x6284
+0x13E37 0x62DB
+0x13E38 0x638C
+0x13E39 0x6377
+0x13E3A 0x6607
+0x13E3B 0x660C
+0x13E3C 0x662D
+0x13E3D 0x6676
+0x13E3E 0x677E
+0x13E3F 0x68A2
+0x13E40 0x6A1F
+0x13E41 0x6A35
+0x13E42 0x6CBC
+0x13E43 0x6D88
+0x13E44 0x6E09
+0x13E45 0x6E58
+0x13E46 0x713C
+0x13E47 0x7126
+0x13E48 0x7167
+0x13E49 0x75C7
+0x13E4A 0x7701
+0x13E4B 0x785D
+0x13E4C 0x7901
+0x13E4D 0x7965
+0x13E4E 0x79F0
+0x13E4F 0x7AE0
+0x13E50 0x7B11
+0x13E51 0x7CA7
+0x13E52 0x7D39
+0x13E53 0x8096
+0x13E54 0x83D6
+0x13E55 0x848B
+0x13E56 0x8549
+0x13E57 0x885D
+0x13E58 0x88F3
+0x13E59 0x8A1F
+0x13E5A 0x8A3C
+0x13E5B 0x8A54
+0x13E5C 0x8A73
+0x13E5D 0x8C61
+0x13E5E 0x8CDE
+0x13E5F 0x91A4
+0x13E60 0x9266
+0x13E61 0x937E
+0x13E62 0x9418
+0x13E63 0x969C
+0x13E64 0x9798
+0x13E65 0x4E0A
+0x13E66 0x4E08
+0x13E67 0x4E1E
+0x13E68 0x4E57
+0x13E69 0x5197
+0x13E6A 0x5270
+0x13E6B 0x57CE
+0x13E6C 0x5834
+0x13E6D 0x58CC
+0x13E6E 0x5B22
+0x13E6F 0x5E38
+0x13E70 0x60C5
+0x13E71 0x64FE
+0x13E72 0x6761
+0x13E73 0x6756
+0x13E74 0x6D44
+0x13E75 0x72B6
+0x13E76 0x7573
+0x13E77 0x7A63
+0x13E78 0x84B8
+0x13E79 0x8B72
+0x13E7A 0x91B8
+0x13E7B 0x9320
+0x13E7C 0x5631
+0x13E7D 0x57F4
+0x13E7E 0x98FE
+0x13F21 0x62ED
+0x13F22 0x690D
+0x13F23 0x6B96
+0x13F24 0x71ED
+0x13F25 0x7E54
+0x13F26 0x8077
+0x13F27 0x8272
+0x13F28 0x89E6
+0x13F29 0x98DF
+0x13F2A 0x8755
+0x13F2B 0x8FB1
+0x13F2C 0x5C3B
+0x13F2D 0x4F38
+0x13F2E 0x4FE1
+0x13F2F 0x4FB5
+0x13F30 0x5507
+0x13F31 0x5A20
+0x13F32 0x5BDD
+0x13F33 0x5BE9
+0x13F34 0x5FC3
+0x13F35 0x614E
+0x13F36 0x632F
+0x13F37 0x65B0
+0x13F38 0x664B
+0x13F39 0x68EE
+0x13F3A 0x699B
+0x13F3B 0x6D78
+0x13F3C 0x6DF1
+0x13F3D 0x7533
+0x13F3E 0x75B9
+0x13F3F 0x771F
+0x13F40 0x795E
+0x13F41 0x79E6
+0x13F42 0x7D33
+0x13F43 0x81E3
+0x13F44 0x82AF
+0x13F45 0x85AA
+0x13F46 0x89AA
+0x13F47 0x8A3A
+0x13F48 0x8EAB
+0x13F49 0x8F9B
+0x13F4A 0x9032
+0x13F4B 0x91DD
+0x13F4C 0x9707
+0x13F4D 0x4EBA
+0x13F4E 0x4EC1
+0x13F4F 0x5203
+0x13F50 0x5875
+0x13F51 0x58EC
+0x13F52 0x5C0B
+0x13F53 0x751A
+0x13F54 0x5C3D
+0x13F55 0x814E
+0x13F56 0x8A0A
+0x13F57 0x8FC5
+0x13F58 0x9663
+0x13F59 0x976D
+0x13F5A 0x7B25
+0x13F5B 0x8ACF
+0x13F5C 0x9808
+0x13F5D 0x9162
+0x13F5E 0x56F3
+0x13F5F 0x53A8
+0x13F60 0x9017
+0x13F61 0x5439
+0x13F62 0x5782
+0x13F63 0x5E25
+0x13F64 0x63A8
+0x13F65 0x6C34
+0x13F66 0x708A
+0x13F67 0x7761
+0x13F68 0x7C8B
+0x13F69 0x7FE0
+0x13F6A 0x8870
+0x13F6B 0x9042
+0x13F6C 0x9154
+0x13F6D 0x9310
+0x13F6E 0x9318
+0x13F6F 0x968F
+0x13F70 0x745E
+0x13F71 0x9AC4
+0x13F72 0x5D07
+0x13F73 0x5D69
+0x13F74 0x6570
+0x13F75 0x67A2
+0x13F76 0x8DA8
+0x13F77 0x96DB
+0x13F78 0x636E
+0x13F79 0x6749
+0x13F7A 0x6919
+0x13F7B 0x83C5
+0x13F7C 0x9817
+0x13F7D 0x96C0
+0x13F7E 0x88FE
+0x14021 0x6F84
+0x14022 0x647A
+0x14023 0x5BF8
+0x14024 0x4E16
+0x14025 0x702C
+0x14026 0x755D
+0x14027 0x662F
+0x14028 0x51C4
+0x14029 0x5236
+0x1402A 0x52E2
+0x1402B 0x59D3
+0x1402C 0x5F81
+0x1402D 0x6027
+0x1402E 0x6210
+0x1402F 0x653F
+0x14030 0x6574
+0x14031 0x661F
+0x14032 0x6674
+0x14033 0x68F2
+0x14034 0x6816
+0x14035 0x6B63
+0x14036 0x6E05
+0x14037 0x7272
+0x14038 0x751F
+0x14039 0x76DB
+0x1403A 0x7CBE
+0x1403B 0x8056
+0x1403C 0x58F0
+0x1403D 0x88FD
+0x1403E 0x897F
+0x1403F 0x8AA0
+0x14040 0x8A93
+0x14041 0x8ACB
+0x14042 0x901D
+0x14043 0x9192
+0x14044 0x9752
+0x14045 0x9759
+0x14046 0x6589
+0x14047 0x7A0E
+0x14048 0x8106
+0x14049 0x96BB
+0x1404A 0x5E2D
+0x1404B 0x60DC
+0x1404C 0x621A
+0x1404D 0x65A5
+0x1404E 0x6614
+0x1404F 0x6790
+0x14050 0x77F3
+0x14051 0x7A4D
+0x14052 0x7C4D
+0x14053 0x7E3E
+0x14054 0x810A
+0x14055 0x8CAC
+0x14056 0x8D64
+0x14057 0x8DE1
+0x14058 0x8E5F
+0x14059 0x78A9
+0x1405A 0x5207
+0x1405B 0x62D9
+0x1405C 0x63A5
+0x1405D 0x6442
+0x1405E 0x6298
+0x1405F 0x8A2D
+0x14060 0x7A83
+0x14061 0x7BC0
+0x14062 0x8AAC
+0x14063 0x96EA
+0x14064 0x7D76
+0x14065 0x820C
+0x14066 0x8749
+0x14067 0x4ED9
+0x14068 0x5148
+0x14069 0x5343
+0x1406A 0x5360
+0x1406B 0x5BA3
+0x1406C 0x5C02
+0x1406D 0x5C16
+0x1406E 0x5DDD
+0x1406F 0x6226
+0x14070 0x6247
+0x14071 0x64B0
+0x14072 0x6813
+0x14073 0x6834
+0x14074 0x6CC9
+0x14075 0x6D45
+0x14076 0x6D17
+0x14077 0x67D3
+0x14078 0x6F5C
+0x14079 0x714E
+0x1407A 0x717D
+0x1407B 0x65CB
+0x1407C 0x7A7F
+0x1407D 0x7BAD
+0x1407E 0x7DDA
+0x14121 0x7E4A
+0x14122 0x7FA8
+0x14123 0x817A
+0x14124 0x821B
+0x14125 0x8239
+0x14126 0x85A6
+0x14127 0x8A6E
+0x14128 0x8CCE
+0x14129 0x8DF5
+0x1412A 0x9078
+0x1412B 0x9077
+0x1412C 0x92AD
+0x1412D 0x9291
+0x1412E 0x9583
+0x1412F 0x9BAE
+0x14130 0x524D
+0x14131 0x5584
+0x14132 0x6F38
+0x14133 0x7136
+0x14134 0x5168
+0x14135 0x7985
+0x14136 0x7E55
+0x14137 0x81B3
+0x14138 0x7CCE
+0x14139 0x564C
+0x1413A 0x5851
+0x1413B 0x5CA8
+0x1413C 0x63AA
+0x1413D 0x66FE
+0x1413E 0x66FD
+0x1413F 0x695A
+0x14140 0x72D9
+0x14141 0x758F
+0x14142 0x758E
+0x14143 0x790E
+0x14144 0x7956
+0x14145 0x79DF
+0x14146 0x7C97
+0x14147 0x7D20
+0x14148 0x7D44
+0x14149 0x8607
+0x1414A 0x8A34
+0x1414B 0x963B
+0x1414C 0x9061
+0x1414D 0x9F20
+0x1414E 0x50E7
+0x1414F 0x5275
+0x14150 0x53CC
+0x14151 0x53E2
+0x14152 0x5009
+0x14153 0x55AA
+0x14154 0x58EE
+0x14155 0x594F
+0x14156 0x723D
+0x14157 0x5B8B
+0x14158 0x5C64
+0x14159 0x531D
+0x1415A 0x60E3
+0x1415B 0x60F3
+0x1415C 0x635C
+0x1415D 0x6383
+0x1415E 0x633F
+0x1415F 0x63BB
+0x14160 0x64CD
+0x14161 0x65E9
+0x14162 0x66F9
+0x14163 0x5DE3
+0x14164 0x69CD
+0x14165 0x69FD
+0x14166 0x6F15
+0x14167 0x71E5
+0x14168 0x4E89
+0x14169 0x75E9
+0x1416A 0x76F8
+0x1416B 0x7A93
+0x1416C 0x7CDF
+0x1416D 0x7DCF
+0x1416E 0x7D9C
+0x1416F 0x8061
+0x14170 0x8349
+0x14171 0x8358
+0x14172 0x846C
+0x14173 0x84BC
+0x14174 0x85FB
+0x14175 0x88C5
+0x14176 0x8D70
+0x14177 0x9001
+0x14178 0x906D
+0x14179 0x9397
+0x1417A 0x971C
+0x1417B 0x9A12
+0x1417C 0x50CF
+0x1417D 0x5897
+0x1417E 0x618E
+0x14221 0x81D3
+0x14222 0x8535
+0x14223 0x8D08
+0x14224 0x9020
+0x14225 0x4FC3
+0x14226 0x5074
+0x14227 0x5247
+0x14228 0x5373
+0x14229 0x606F
+0x1422A 0x6349
+0x1422B 0x675F
+0x1422C 0x6E2C
+0x1422D 0x8DB3
+0x1422E 0x901F
+0x1422F 0x4FD7
+0x14230 0x5C5E
+0x14231 0x8CCA
+0x14232 0x65CF
+0x14233 0x7D9A
+0x14234 0x5352
+0x14235 0x8896
+0x14236 0x5176
+0x14237 0x63C3
+0x14238 0x5B58
+0x14239 0x5B6B
+0x1423A 0x5C0A
+0x1423B 0x640D
+0x1423C 0x6751
+0x1423D 0x905C
+0x1423E 0x4ED6
+0x1423F 0x591A
+0x14240 0x592A
+0x14241 0x6C70
+0x14242 0x8A51
+0x14243 0x553E
+0x14244 0x5815
+0x14245 0x59A5
+0x14246 0x60F0
+0x14247 0x6253
+0x14248 0x67C1
+0x14249 0x8235
+0x1424A 0x6955
+0x1424B 0x9640
+0x1424C 0x99C4
+0x1424D 0x9A28
+0x1424E 0x4F53
+0x1424F 0x5806
+0x14250 0x5BFE
+0x14251 0x8010
+0x14252 0x5CB1
+0x14253 0x5E2F
+0x14254 0x5F85
+0x14255 0x6020
+0x14256 0x614B
+0x14257 0x6234
+0x14258 0x66FF
+0x14259 0x6CF0
+0x1425A 0x6EDE
+0x1425B 0x80CE
+0x1425C 0x817F
+0x1425D 0x82D4
+0x1425E 0x888B
+0x1425F 0x8CB8
+0x14260 0x9000
+0x14261 0x902E
+0x14262 0x968A
+0x14263 0x9EDB
+0x14264 0x9BDB
+0x14265 0x4EE3
+0x14266 0x53F0
+0x14267 0x5927
+0x14268 0x7B2C
+0x14269 0x918D
+0x1426A 0x984C
+0x1426B 0x9DF9
+0x1426C 0x6EDD
+0x1426D 0x7027
+0x1426E 0x5353
+0x1426F 0x5544
+0x14270 0x5B85
+0x14271 0x6258
+0x14272 0x629E
+0x14273 0x62D3
+0x14274 0x6CA2
+0x14275 0x6FEF
+0x14276 0x7422
+0x14277 0x8A17
+0x14278 0x9438
+0x14279 0x6FC1
+0x1427A 0x8AFE
+0x1427B 0x8338
+0x1427C 0x51E7
+0x1427D 0x86F8
+0x1427E 0x53EA
+0x14321 0x53E9
+0x14322 0x4F46
+0x14323 0x9054
+0x14324 0x8FB0
+0x14325 0x596A
+0x14326 0x8131
+0x14327 0x5DFD
+0x14328 0x7AEA
+0x14329 0x8FBF
+0x1432A 0x68DA
+0x1432B 0x8C37
+0x1432C 0x72F8
+0x1432D 0x9C48
+0x1432E 0x6A3D
+0x1432F 0x8AB0
+0x14330 0x4E39
+0x14331 0x5358
+0x14332 0x5606
+0x14333 0x5766
+0x14334 0x62C5
+0x14335 0x63A2
+0x14336 0x65E6
+0x14337 0x6B4E
+0x14338 0x6DE1
+0x14339 0x6E5B
+0x1433A 0x70AD
+0x1433B 0x77ED
+0x1433C 0x7AEF
+0x1433D 0x7BAA
+0x1433E 0x7DBB
+0x1433F 0x803D
+0x14340 0x80C6
+0x14341 0x86CB
+0x14342 0x8A95
+0x14343 0x935B
+0x14344 0x56E3
+0x14345 0x58C7
+0x14346 0x5F3E
+0x14347 0x65AD
+0x14348 0x6696
+0x14349 0x6A80
+0x1434A 0x6BB5
+0x1434B 0x7537
+0x1434C 0x8AC7
+0x1434D 0x5024
+0x1434E 0x77E5
+0x1434F 0x5730
+0x14350 0x5F1B
+0x14351 0x6065
+0x14352 0x667A
+0x14353 0x6C60
+0x14354 0x75F4
+0x14355 0x7A1A
+0x14356 0x7F6E
+0x14357 0x81F4
+0x14358 0x8718
+0x14359 0x9045
+0x1435A 0x99B3
+0x1435B 0x7BC9
+0x1435C 0x755C
+0x1435D 0x7AF9
+0x1435E 0x7B51
+0x1435F 0x84C4
+0x14360 0x9010
+0x14361 0x79E9
+0x14362 0x7A92
+0x14363 0x8336
+0x14364 0x5AE1
+0x14365 0x7740
+0x14366 0x4E2D
+0x14367 0x4EF2
+0x14368 0x5B99
+0x14369 0x5FE0
+0x1436A 0x62BD
+0x1436B 0x663C
+0x1436C 0x67F1
+0x1436D 0x6CE8
+0x1436E 0x866B
+0x1436F 0x8877
+0x14370 0x8A3B
+0x14371 0x914E
+0x14372 0x92F3
+0x14373 0x99D0
+0x14374 0x6A17
+0x14375 0x7026
+0x14376 0x732A
+0x14377 0x82E7
+0x14378 0x8457
+0x14379 0x8CAF
+0x1437A 0x4E01
+0x1437B 0x5146
+0x1437C 0x51CB
+0x1437D 0x558B
+0x1437E 0x5BF5
+0x14421 0x5E16
+0x14422 0x5E33
+0x14423 0x5E81
+0x14424 0x5F14
+0x14425 0x5F35
+0x14426 0x5F6B
+0x14427 0x5FB4
+0x14428 0x61F2
+0x14429 0x6311
+0x1442A 0x66A2
+0x1442B 0x671D
+0x1442C 0x6F6E
+0x1442D 0x7252
+0x1442E 0x753A
+0x1442F 0x773A
+0x14430 0x8074
+0x14431 0x8139
+0x14432 0x8178
+0x14433 0x8776
+0x14434 0x8ABF
+0x14435 0x8ADC
+0x14436 0x8D85
+0x14437 0x8DF3
+0x14438 0x929A
+0x14439 0x9577
+0x1443A 0x9802
+0x1443B 0x9CE5
+0x1443C 0x52C5
+0x1443D 0x6357
+0x1443E 0x76F4
+0x1443F 0x6715
+0x14440 0x6C88
+0x14441 0x73CD
+0x14442 0x8CC3
+0x14443 0x93AE
+0x14444 0x9673
+0x14445 0x6D25
+0x14446 0x589C
+0x14447 0x690E
+0x14448 0x69CC
+0x14449 0x8FFD
+0x1444A 0x939A
+0x1444B 0x75DB
+0x1444C 0x901A
+0x1444D 0x585A
+0x1444E 0x6802
+0x1444F 0x63B4
+0x14450 0x69FB
+0x14451 0x4F43
+0x14452 0x6F2C
+0x14453 0x67D8
+0x14454 0x8FBB
+0x14455 0x8526
+0x14456 0x7DB4
+0x14457 0x9354
+0x14458 0x693F
+0x14459 0x6F70
+0x1445A 0x576A
+0x1445B 0x58F7
+0x1445C 0x5B2C
+0x1445D 0x7D2C
+0x1445E 0x722A
+0x1445F 0x540A
+0x14460 0x91E3
+0x14461 0x9DB4
+0x14462 0x4EAD
+0x14463 0x4F4E
+0x14464 0x505C
+0x14465 0x5075
+0x14466 0x5243
+0x14467 0x8C9E
+0x14468 0x5448
+0x14469 0x5824
+0x1446A 0x5B9A
+0x1446B 0x5E1D
+0x1446C 0x5E95
+0x1446D 0x5EAD
+0x1446E 0x5EF7
+0x1446F 0x5F1F
+0x14470 0x608C
+0x14471 0x62B5
+0x14472 0x633A
+0x14473 0x63D0
+0x14474 0x68AF
+0x14475 0x6C40
+0x14476 0x7887
+0x14477 0x798E
+0x14478 0x7A0B
+0x14479 0x7DE0
+0x1447A 0x8247
+0x1447B 0x8A02
+0x1447C 0x8AE6
+0x1447D 0x8E44
+0x1447E 0x9013
+0x14521 0x90B8
+0x14522 0x912D
+0x14523 0x91D8
+0x14524 0x9F0E
+0x14525 0x6CE5
+0x14526 0x6458
+0x14527 0x64E2
+0x14528 0x6575
+0x14529 0x6EF4
+0x1452A 0x7684
+0x1452B 0x7B1B
+0x1452C 0x9069
+0x1452D 0x93D1
+0x1452E 0x6EBA
+0x1452F 0x54F2
+0x14530 0x5FB9
+0x14531 0x64A4
+0x14532 0x8F4D
+0x14533 0x8FED
+0x14534 0x9244
+0x14535 0x5178
+0x14536 0x586B
+0x14537 0x5929
+0x14538 0x5C55
+0x14539 0x5E97
+0x1453A 0x6DFB
+0x1453B 0x7E8F
+0x1453C 0x751C
+0x1453D 0x8CBC
+0x1453E 0x8EE2
+0x1453F 0x985B
+0x14540 0x70B9
+0x14541 0x4F1D
+0x14542 0x6BBF
+0x14543 0x6FB1
+0x14544 0x7530
+0x14545 0x96FB
+0x14546 0x514E
+0x14547 0x5410
+0x14548 0x5835
+0x14549 0x5857
+0x1454A 0x59AC
+0x1454B 0x5C60
+0x1454C 0x5F92
+0x1454D 0x6597
+0x1454E 0x675C
+0x1454F 0x6E21
+0x14550 0x767B
+0x14551 0x83DF
+0x14552 0x8CED
+0x14553 0x9014
+0x14554 0x90FD
+0x14555 0x934D
+0x14556 0x7825
+0x14557 0x783A
+0x14558 0x52AA
+0x14559 0x5EA6
+0x1455A 0x571F
+0x1455B 0x5974
+0x1455C 0x6012
+0x1455D 0x5012
+0x1455E 0x515A
+0x1455F 0x51AC
+0x14560 0x51CD
+0x14561 0x5200
+0x14562 0x5510
+0x14563 0x5854
+0x14564 0x5858
+0x14565 0x5957
+0x14566 0x5B95
+0x14567 0x5CF6
+0x14568 0x5D8B
+0x14569 0x60BC
+0x1456A 0x6295
+0x1456B 0x642D
+0x1456C 0x6771
+0x1456D 0x6843
+0x1456E 0x68BC
+0x1456F 0x68DF
+0x14570 0x76D7
+0x14571 0x6DD8
+0x14572 0x6E6F
+0x14573 0x6D9B
+0x14574 0x706F
+0x14575 0x71C8
+0x14576 0x5F53
+0x14577 0x75D8
+0x14578 0x7977
+0x14579 0x7B49
+0x1457A 0x7B54
+0x1457B 0x7B52
+0x1457C 0x7CD6
+0x1457D 0x7D71
+0x1457E 0x5230
+0x14621 0x8463
+0x14622 0x8569
+0x14623 0x85E4
+0x14624 0x8A0E
+0x14625 0x8B04
+0x14626 0x8C46
+0x14627 0x8E0F
+0x14628 0x9003
+0x14629 0x900F
+0x1462A 0x9419
+0x1462B 0x9676
+0x1462C 0x982D
+0x1462D 0x9A30
+0x1462E 0x95D8
+0x1462F 0x50CD
+0x14630 0x52D5
+0x14631 0x540C
+0x14632 0x5802
+0x14633 0x5C0E
+0x14634 0x61A7
+0x14635 0x649E
+0x14636 0x6D1E
+0x14637 0x77B3
+0x14638 0x7AE5
+0x14639 0x80F4
+0x1463A 0x8404
+0x1463B 0x9053
+0x1463C 0x9285
+0x1463D 0x5CE0
+0x1463E 0x9D07
+0x1463F 0x533F
+0x14640 0x5F97
+0x14641 0x5FB3
+0x14642 0x6D9C
+0x14643 0x7279
+0x14644 0x7763
+0x14645 0x79BF
+0x14646 0x7BE4
+0x14647 0x6BD2
+0x14648 0x72EC
+0x14649 0x8AAD
+0x1464A 0x6803
+0x1464B 0x6A61
+0x1464C 0x51F8
+0x1464D 0x7A81
+0x1464E 0x6934
+0x1464F 0x5C4A
+0x14650 0x9CF6
+0x14651 0x82EB
+0x14652 0x5BC5
+0x14653 0x9149
+0x14654 0x701E
+0x14655 0x5678
+0x14656 0x5C6F
+0x14657 0x60C7
+0x14658 0x6566
+0x14659 0x6C8C
+0x1465A 0x8C5A
+0x1465B 0x9041
+0x1465C 0x9813
+0x1465D 0x5451
+0x1465E 0x66C7
+0x1465F 0x920D
+0x14660 0x5948
+0x14661 0x90A3
+0x14662 0x5185
+0x14663 0x4E4D
+0x14664 0x51EA
+0x14665 0x8599
+0x14666 0x8B0E
+0x14667 0x7058
+0x14668 0x637A
+0x14669 0x934B
+0x1466A 0x6962
+0x1466B 0x99B4
+0x1466C 0x7E04
+0x1466D 0x7577
+0x1466E 0x5357
+0x1466F 0x6960
+0x14670 0x8EDF
+0x14671 0x96E3
+0x14672 0x6C5D
+0x14673 0x4E8C
+0x14674 0x5C3C
+0x14675 0x5F10
+0x14676 0x8FE9
+0x14677 0x5302
+0x14678 0x8CD1
+0x14679 0x8089
+0x1467A 0x8679
+0x1467B 0x5EFF
+0x1467C 0x65E5
+0x1467D 0x4E73
+0x1467E 0x5165
+0x14721 0x5982
+0x14722 0x5C3F
+0x14723 0x97EE
+0x14724 0x4EFB
+0x14725 0x598A
+0x14726 0x5FCD
+0x14727 0x8A8D
+0x14728 0x6FE1
+0x14729 0x79B0
+0x1472A 0x7962
+0x1472B 0x5BE7
+0x1472C 0x8471
+0x1472D 0x732B
+0x1472E 0x71B1
+0x1472F 0x5E74
+0x14730 0x5FF5
+0x14731 0x637B
+0x14732 0x649A
+0x14733 0x71C3
+0x14734 0x7C98
+0x14735 0x4E43
+0x14736 0x5EFC
+0x14737 0x4E4B
+0x14738 0x57DC
+0x14739 0x56A2
+0x1473A 0x60A9
+0x1473B 0x6FC3
+0x1473C 0x7D0D
+0x1473D 0x80FD
+0x1473E 0x8133
+0x1473F 0x81BF
+0x14740 0x8FB2
+0x14741 0x8997
+0x14742 0x86A4
+0x14743 0x5DF4
+0x14744 0x628A
+0x14745 0x64AD
+0x14746 0x8987
+0x14747 0x6777
+0x14748 0x6CE2
+0x14749 0x6D3E
+0x1474A 0x7436
+0x1474B 0x7834
+0x1474C 0x5A46
+0x1474D 0x7F75
+0x1474E 0x82AD
+0x1474F 0x99AC
+0x14750 0x4FF3
+0x14751 0x5EC3
+0x14752 0x62DD
+0x14753 0x6392
+0x14754 0x6557
+0x14755 0x676F
+0x14756 0x76C3
+0x14757 0x724C
+0x14758 0x80CC
+0x14759 0x80BA
+0x1475A 0x8F29
+0x1475B 0x914D
+0x1475C 0x500D
+0x1475D 0x57F9
+0x1475E 0x5A92
+0x1475F 0x6885
+0x14760 0x6973
+0x14761 0x7164
+0x14762 0x72FD
+0x14763 0x8CB7
+0x14764 0x58F2
+0x14765 0x8CE0
+0x14766 0x966A
+0x14767 0x9019
+0x14768 0x877F
+0x14769 0x79E4
+0x1476A 0x77E7
+0x1476B 0x8429
+0x1476C 0x4F2F
+0x1476D 0x5265
+0x1476E 0x535A
+0x1476F 0x62CD
+0x14770 0x67CF
+0x14771 0x6CCA
+0x14772 0x767D
+0x14773 0x7B94
+0x14774 0x7C95
+0x14775 0x8236
+0x14776 0x8584
+0x14777 0x8FEB
+0x14778 0x66DD
+0x14779 0x6F20
+0x1477A 0x7206
+0x1477B 0x7E1B
+0x1477C 0x83AB
+0x1477D 0x99C1
+0x1477E 0x9EA6
+0x14821 0x51FD
+0x14822 0x7BB1
+0x14823 0x7872
+0x14824 0x7BB8
+0x14825 0x8087
+0x14826 0x7B48
+0x14827 0x6AE8
+0x14828 0x5E61
+0x14829 0x808C
+0x1482A 0x7551
+0x1482B 0x7560
+0x1482C 0x516B
+0x1482D 0x9262
+0x1482E 0x6E8C
+0x1482F 0x767A
+0x14830 0x9197
+0x14831 0x9AEA
+0x14832 0x4F10
+0x14833 0x7F70
+0x14834 0x629C
+0x14835 0x7B4F
+0x14836 0x95A5
+0x14837 0x9CE9
+0x14838 0x567A
+0x14839 0x5859
+0x1483A 0x86E4
+0x1483B 0x96BC
+0x1483C 0x4F34
+0x1483D 0x5224
+0x1483E 0x534A
+0x1483F 0x53CD
+0x14840 0x53DB
+0x14841 0x5E06
+0x14842 0x642C
+0x14843 0x6591
+0x14844 0x677F
+0x14845 0x6C3E
+0x14846 0x6C4E
+0x14847 0x7248
+0x14848 0x72AF
+0x14849 0x73ED
+0x1484A 0x7554
+0x1484B 0x7E41
+0x1484C 0x822C
+0x1484D 0x85E9
+0x1484E 0x8CA9
+0x1484F 0x7BC4
+0x14850 0x91C6
+0x14851 0x7169
+0x14852 0x9812
+0x14853 0x98EF
+0x14854 0x633D
+0x14855 0x6669
+0x14856 0x756A
+0x14857 0x76E4
+0x14858 0x78D0
+0x14859 0x8543
+0x1485A 0x86EE
+0x1485B 0x532A
+0x1485C 0x5351
+0x1485D 0x5426
+0x1485E 0x5983
+0x1485F 0x5E87
+0x14860 0x5F7C
+0x14861 0x60B2
+0x14862 0x6249
+0x14863 0x6279
+0x14864 0x62AB
+0x14865 0x6590
+0x14866 0x6BD4
+0x14867 0x6CCC
+0x14868 0x75B2
+0x14869 0x76AE
+0x1486A 0x7891
+0x1486B 0x79D8
+0x1486C 0x7DCB
+0x1486D 0x7F77
+0x1486E 0x80A5
+0x1486F 0x88AB
+0x14870 0x8AB9
+0x14871 0x8CBB
+0x14872 0x907F
+0x14873 0x975E
+0x14874 0x98DB
+0x14875 0x6A0B
+0x14876 0x7C38
+0x14877 0x5099
+0x14878 0x5C3E
+0x14879 0x5FAE
+0x1487A 0x6787
+0x1487B 0x6BD8
+0x1487C 0x7435
+0x1487D 0x7709
+0x1487E 0x7F8E
+0x14921 0x9F3B
+0x14922 0x67CA
+0x14923 0x7A17
+0x14924 0x5339
+0x14925 0x758B
+0x14926 0x9AED
+0x14927 0x5F66
+0x14928 0x819D
+0x14929 0x83F1
+0x1492A 0x8098
+0x1492B 0x5F3C
+0x1492C 0x5FC5
+0x1492D 0x7562
+0x1492E 0x7B46
+0x1492F 0x903C
+0x14930 0x6867
+0x14931 0x59EB
+0x14932 0x5A9B
+0x14933 0x7D10
+0x14934 0x767E
+0x14935 0x8B2C
+0x14936 0x4FF5
+0x14937 0x5F6A
+0x14938 0x6A19
+0x14939 0x6C37
+0x1493A 0x6F02
+0x1493B 0x74E2
+0x1493C 0x7968
+0x1493D 0x8868
+0x1493E 0x8A55
+0x1493F 0x8C79
+0x14940 0x5EDF
+0x14941 0x63CF
+0x14942 0x75C5
+0x14943 0x79D2
+0x14944 0x82D7
+0x14945 0x9328
+0x14946 0x92F2
+0x14947 0x849C
+0x14948 0x86ED
+0x14949 0x9C2D
+0x1494A 0x54C1
+0x1494B 0x5F6C
+0x1494C 0x658C
+0x1494D 0x6D5C
+0x1494E 0x7015
+0x1494F 0x8CA7
+0x14950 0x8CD3
+0x14951 0x983B
+0x14952 0x654F
+0x14953 0x74F6
+0x14954 0x4E0D
+0x14955 0x4ED8
+0x14956 0x57E0
+0x14957 0x592B
+0x14958 0x5A66
+0x14959 0x5BCC
+0x1495A 0x51A8
+0x1495B 0x5E03
+0x1495C 0x5E9C
+0x1495D 0x6016
+0x1495E 0x6276
+0x1495F 0x6577
+0x14960 0x65A7
+0x14961 0x666E
+0x14962 0x6D6E
+0x14963 0x7236
+0x14964 0x7B26
+0x14965 0x8150
+0x14966 0x819A
+0x14967 0x8299
+0x14968 0x8B5C
+0x14969 0x8CA0
+0x1496A 0x8CE6
+0x1496B 0x8D74
+0x1496C 0x961C
+0x1496D 0x9644
+0x1496E 0x4FAE
+0x1496F 0x64AB
+0x14970 0x6B66
+0x14971 0x821E
+0x14972 0x8461
+0x14973 0x856A
+0x14974 0x90E8
+0x14975 0x5C01
+0x14976 0x6953
+0x14977 0x98A8
+0x14978 0x847A
+0x14979 0x8557
+0x1497A 0x4F0F
+0x1497B 0x526F
+0x1497C 0x5FA9
+0x1497D 0x5E45
+0x1497E 0x670D
+0x14A21 0x798F
+0x14A22 0x8179
+0x14A23 0x8907
+0x14A24 0x8986
+0x14A25 0x6DF5
+0x14A26 0x5F17
+0x14A27 0x6255
+0x14A28 0x6CB8
+0x14A29 0x4ECF
+0x14A2A 0x7269
+0x14A2B 0x9B92
+0x14A2C 0x5206
+0x14A2D 0x543B
+0x14A2E 0x5674
+0x14A2F 0x58B3
+0x14A30 0x61A4
+0x14A31 0x626E
+0x14A32 0x711A
+0x14A33 0x596E
+0x14A34 0x7C89
+0x14A35 0x7CDE
+0x14A36 0x7D1B
+0x14A37 0x96F0
+0x14A38 0x6587
+0x14A39 0x805E
+0x14A3A 0x4E19
+0x14A3B 0x4F75
+0x14A3C 0x5175
+0x14A3D 0x5840
+0x14A3E 0x5E63
+0x14A3F 0x5E73
+0x14A40 0x5F0A
+0x14A41 0x67C4
+0x14A42 0x4E26
+0x14A43 0x853D
+0x14A44 0x9589
+0x14A45 0x965B
+0x14A46 0x7C73
+0x14A47 0x9801
+0x14A48 0x50FB
+0x14A49 0x58C1
+0x14A4A 0x7656
+0x14A4B 0x78A7
+0x14A4C 0x5225
+0x14A4D 0x77A5
+0x14A4E 0x8511
+0x14A4F 0x7B86
+0x14A50 0x504F
+0x14A51 0x5909
+0x14A52 0x7247
+0x14A53 0x7BC7
+0x14A54 0x7DE8
+0x14A55 0x8FBA
+0x14A56 0x8FD4
+0x14A57 0x904D
+0x14A58 0x4FBF
+0x14A59 0x52C9
+0x14A5A 0x5A29
+0x14A5B 0x5F01
+0x14A5C 0x97AD
+0x14A5D 0x4FDD
+0x14A5E 0x8217
+0x14A5F 0x92EA
+0x14A60 0x5703
+0x14A61 0x6355
+0x14A62 0x6B69
+0x14A63 0x752B
+0x14A64 0x88DC
+0x14A65 0x8F14
+0x14A66 0x7A42
+0x14A67 0x52DF
+0x14A68 0x5893
+0x14A69 0x6155
+0x14A6A 0x620A
+0x14A6B 0x66AE
+0x14A6C 0x6BCD
+0x14A6D 0x7C3F
+0x14A6E 0x83E9
+0x14A6F 0x5023
+0x14A70 0x4FF8
+0x14A71 0x5305
+0x14A72 0x5446
+0x14A73 0x5831
+0x14A74 0x5949
+0x14A75 0x5B9D
+0x14A76 0x5CF0
+0x14A77 0x5CEF
+0x14A78 0x5D29
+0x14A79 0x5E96
+0x14A7A 0x62B1
+0x14A7B 0x6367
+0x14A7C 0x653E
+0x14A7D 0x65B9
+0x14A7E 0x670B
+0x14B21 0x6CD5
+0x14B22 0x6CE1
+0x14B23 0x70F9
+0x14B24 0x7832
+0x14B25 0x7E2B
+0x14B26 0x80DE
+0x14B27 0x82B3
+0x14B28 0x840C
+0x14B29 0x84EC
+0x14B2A 0x8702
+0x14B2B 0x8912
+0x14B2C 0x8A2A
+0x14B2D 0x8C4A
+0x14B2E 0x90A6
+0x14B2F 0x92D2
+0x14B30 0x98FD
+0x14B31 0x9CF3
+0x14B32 0x9D6C
+0x14B33 0x4E4F
+0x14B34 0x4EA1
+0x14B35 0x508D
+0x14B36 0x5256
+0x14B37 0x574A
+0x14B38 0x59A8
+0x14B39 0x5E3D
+0x14B3A 0x5FD8
+0x14B3B 0x5FD9
+0x14B3C 0x623F
+0x14B3D 0x66B4
+0x14B3E 0x671B
+0x14B3F 0x67D0
+0x14B40 0x68D2
+0x14B41 0x5192
+0x14B42 0x7D21
+0x14B43 0x80AA
+0x14B44 0x81A8
+0x14B45 0x8B00
+0x14B46 0x8C8C
+0x14B47 0x8CBF
+0x14B48 0x927E
+0x14B49 0x9632
+0x14B4A 0x5420
+0x14B4B 0x982C
+0x14B4C 0x5317
+0x14B4D 0x50D5
+0x14B4E 0x535C
+0x14B4F 0x58A8
+0x14B50 0x64B2
+0x14B51 0x6734
+0x14B52 0x7267
+0x14B53 0x7766
+0x14B54 0x7A46
+0x14B55 0x91E6
+0x14B56 0x52C3
+0x14B57 0x6CA1
+0x14B58 0x6B86
+0x14B59 0x5800
+0x14B5A 0x5E4C
+0x14B5B 0x5954
+0x14B5C 0x672C
+0x14B5D 0x7FFB
+0x14B5E 0x51E1
+0x14B5F 0x76C6
+0x14B60 0x6469
+0x14B61 0x78E8
+0x14B62 0x9B54
+0x14B63 0x9EBB
+0x14B64 0x57CB
+0x14B65 0x59B9
+0x14B66 0x6627
+0x14B67 0x679A
+0x14B68 0x6BCE
+0x14B69 0x54E9
+0x14B6A 0x69D9
+0x14B6B 0x5E55
+0x14B6C 0x819C
+0x14B6D 0x6795
+0x14B6E 0x9BAA
+0x14B6F 0x67FE
+0x14B70 0x9C52
+0x14B71 0x685D
+0x14B72 0x4EA6
+0x14B73 0x4FE3
+0x14B74 0x53C8
+0x14B75 0x62B9
+0x14B76 0x672B
+0x14B77 0x6CAB
+0x14B78 0x8FC4
+0x14B79 0x4FAD
+0x14B7A 0x7E6D
+0x14B7B 0x9EBF
+0x14B7C 0x4E07
+0x14B7D 0x6162
+0x14B7E 0x6E80
+0x14C21 0x6F2B
+0x14C22 0x8513
+0x14C23 0x5473
+0x14C24 0x672A
+0x14C25 0x9B45
+0x14C26 0x5DF3
+0x14C27 0x7B95
+0x14C28 0x5CAC
+0x14C29 0x5BC6
+0x14C2A 0x871C
+0x14C2B 0x6E4A
+0x14C2C 0x84D1
+0x14C2D 0x7A14
+0x14C2E 0x8108
+0x14C2F 0x5999
+0x14C30 0x7C8D
+0x14C31 0x6C11
+0x14C32 0x7720
+0x14C33 0x52D9
+0x14C34 0x5922
+0x14C35 0x7121
+0x14C36 0x725F
+0x14C37 0x77DB
+0x14C38 0x9727
+0x14C39 0x9D61
+0x14C3A 0x690B
+0x14C3B 0x5A7F
+0x14C3C 0x5A18
+0x14C3D 0x51A5
+0x14C3E 0x540D
+0x14C3F 0x547D
+0x14C40 0x660E
+0x14C41 0x76DF
+0x14C42 0x8FF7
+0x14C43 0x9298
+0x14C44 0x9CF4
+0x14C45 0x59EA
+0x14C46 0x725D
+0x14C47 0x6EC5
+0x14C48 0x514D
+0x14C49 0x68C9
+0x14C4A 0x7DBF
+0x14C4B 0x7DEC
+0x14C4C 0x9762
+0x14C4D 0x9EBA
+0x14C4E 0x6478
+0x14C4F 0x6A21
+0x14C50 0x8302
+0x14C51 0x5984
+0x14C52 0x5B5F
+0x14C53 0x6BDB
+0x14C54 0x731B
+0x14C55 0x76F2
+0x14C56 0x7DB2
+0x14C57 0x8017
+0x14C58 0x8499
+0x14C59 0x5132
+0x14C5A 0x6728
+0x14C5B 0x9ED9
+0x14C5C 0x76EE
+0x14C5D 0x6762
+0x14C5E 0x52FF
+0x14C5F 0x9905
+0x14C60 0x5C24
+0x14C61 0x623B
+0x14C62 0x7C7E
+0x14C63 0x8CB0
+0x14C64 0x554F
+0x14C65 0x60B6
+0x14C66 0x7D0B
+0x14C67 0x9580
+0x14C68 0x5301
+0x14C69 0x4E5F
+0x14C6A 0x51B6
+0x14C6B 0x591C
+0x14C6C 0x723A
+0x14C6D 0x8036
+0x14C6E 0x91CE
+0x14C6F 0x5F25
+0x14C70 0x77E2
+0x14C71 0x5384
+0x14C72 0x5F79
+0x14C73 0x7D04
+0x14C74 0x85AC
+0x14C75 0x8A33
+0x14C76 0x8E8D
+0x14C77 0x9756
+0x14C78 0x67F3
+0x14C79 0x85AE
+0x14C7A 0x9453
+0x14C7B 0x6109
+0x14C7C 0x6108
+0x14C7D 0x6CB9
+0x14C7E 0x7652
+0x14D21 0x8AED
+0x14D22 0x8F38
+0x14D23 0x552F
+0x14D24 0x4F51
+0x14D25 0x512A
+0x14D26 0x52C7
+0x14D27 0x53CB
+0x14D28 0x5BA5
+0x14D29 0x5E7D
+0x14D2A 0x60A0
+0x14D2B 0x6182
+0x14D2C 0x63D6
+0x14D2D 0x6709
+0x14D2E 0x67DA
+0x14D2F 0x6E67
+0x14D30 0x6D8C
+0x14D31 0x7336
+0x14D32 0x7337
+0x14D33 0x7531
+0x14D34 0x7950
+0x14D35 0x88D5
+0x14D36 0x8A98
+0x14D37 0x904A
+0x14D38 0x9091
+0x14D39 0x90F5
+0x14D3A 0x96C4
+0x14D3B 0x878D
+0x14D3C 0x5915
+0x14D3D 0x4E88
+0x14D3E 0x4F59
+0x14D3F 0x4E0E
+0x14D40 0x8A89
+0x14D41 0x8F3F
+0x14D42 0x9810
+0x14D43 0x50AD
+0x14D44 0x5E7C
+0x14D45 0x5996
+0x14D46 0x5BB9
+0x14D47 0x5EB8
+0x14D48 0x63DA
+0x14D49 0x63FA
+0x14D4A 0x64C1
+0x14D4B 0x66DC
+0x14D4C 0x694A
+0x14D4D 0x69D8
+0x14D4E 0x6D0B
+0x14D4F 0x6EB6
+0x14D50 0x7194
+0x14D51 0x7528
+0x14D52 0x7AAF
+0x14D53 0x7F8A
+0x14D54 0x8000
+0x14D55 0x8449
+0x14D56 0x84C9
+0x14D57 0x8981
+0x14D58 0x8B21
+0x14D59 0x8E0A
+0x14D5A 0x9065
+0x14D5B 0x967D
+0x14D5C 0x990A
+0x14D5D 0x617E
+0x14D5E 0x6291
+0x14D5F 0x6B32
+0x14D60 0x6C83
+0x14D61 0x6D74
+0x14D62 0x7FCC
+0x14D63 0x7FFC
+0x14D64 0x6DC0
+0x14D65 0x7F85
+0x14D66 0x87BA
+0x14D67 0x88F8
+0x14D68 0x6765
+0x14D69 0x83B1
+0x14D6A 0x983C
+0x14D6B 0x96F7
+0x14D6C 0x6D1B
+0x14D6D 0x7D61
+0x14D6E 0x843D
+0x14D6F 0x916A
+0x14D70 0x4E71
+0x14D71 0x5375
+0x14D72 0x5D50
+0x14D73 0x6B04
+0x14D74 0x6FEB
+0x14D75 0x85CD
+0x14D76 0x862D
+0x14D77 0x89A7
+0x14D78 0x5229
+0x14D79 0x540F
+0x14D7A 0x5C65
+0x14D7B 0x674E
+0x14D7C 0x68A8
+0x14D7D 0x7406
+0x14D7E 0x7483
+0x14E21 0x75E2
+0x14E22 0x88CF
+0x14E23 0x88E1
+0x14E24 0x91CC
+0x14E25 0x96E2
+0x14E26 0x9678
+0x14E27 0x5F8B
+0x14E28 0x7387
+0x14E29 0x7ACB
+0x14E2A 0x844E
+0x14E2B 0x63A0
+0x14E2C 0x7565
+0x14E2D 0x5289
+0x14E2E 0x6D41
+0x14E2F 0x6E9C
+0x14E30 0x7409
+0x14E31 0x7559
+0x14E32 0x786B
+0x14E33 0x7C92
+0x14E34 0x9686
+0x14E35 0x7ADC
+0x14E36 0x9F8D
+0x14E37 0x4FB6
+0x14E38 0x616E
+0x14E39 0x65C5
+0x14E3A 0x865C
+0x14E3B 0x4E86
+0x14E3C 0x4EAE
+0x14E3D 0x50DA
+0x14E3E 0x4E21
+0x14E3F 0x51CC
+0x14E40 0x5BEE
+0x14E41 0x6599
+0x14E42 0x6881
+0x14E43 0x6DBC
+0x14E44 0x731F
+0x14E45 0x7642
+0x14E46 0x77AD
+0x14E47 0x7A1C
+0x14E48 0x7CE7
+0x14E49 0x826F
+0x14E4A 0x8AD2
+0x14E4B 0x907C
+0x14E4C 0x91CF
+0x14E4D 0x9675
+0x14E4E 0x9818
+0x14E4F 0x529B
+0x14E50 0x7DD1
+0x14E51 0x502B
+0x14E52 0x5398
+0x14E53 0x6797
+0x14E54 0x6DCB
+0x14E55 0x71D0
+0x14E56 0x7433
+0x14E57 0x81E8
+0x14E58 0x8F2A
+0x14E59 0x96A3
+0x14E5A 0x9C57
+0x14E5B 0x9E9F
+0x14E5C 0x7460
+0x14E5D 0x5841
+0x14E5E 0x6D99
+0x14E5F 0x7D2F
+0x14E60 0x985E
+0x14E61 0x4EE4
+0x14E62 0x4F36
+0x14E63 0x4F8B
+0x14E64 0x51B7
+0x14E65 0x52B1
+0x14E66 0x5DBA
+0x14E67 0x601C
+0x14E68 0x73B2
+0x14E69 0x793C
+0x14E6A 0x82D3
+0x14E6B 0x9234
+0x14E6C 0x96B7
+0x14E6D 0x96F6
+0x14E6E 0x970A
+0x14E6F 0x9E97
+0x14E70 0x9F62
+0x14E71 0x66A6
+0x14E72 0x6B74
+0x14E73 0x5217
+0x14E74 0x52A3
+0x14E75 0x70C8
+0x14E76 0x88C2
+0x14E77 0x5EC9
+0x14E78 0x604B
+0x14E79 0x6190
+0x14E7A 0x6F23
+0x14E7B 0x7149
+0x14E7C 0x7C3E
+0x14E7D 0x7DF4
+0x14E7E 0x806F
+0x14F21 0x84EE
+0x14F22 0x9023
+0x14F23 0x932C
+0x14F24 0x5442
+0x14F25 0x9B6F
+0x14F26 0x6AD3
+0x14F27 0x7089
+0x14F28 0x8CC2
+0x14F29 0x8DEF
+0x14F2A 0x9732
+0x14F2B 0x52B4
+0x14F2C 0x5A41
+0x14F2D 0x5ECA
+0x14F2E 0x5F04
+0x14F2F 0x6717
+0x14F30 0x697C
+0x14F31 0x6994
+0x14F32 0x6D6A
+0x14F33 0x6F0F
+0x14F34 0x7262
+0x14F35 0x72FC
+0x14F36 0x7BED
+0x14F37 0x8001
+0x14F38 0x807E
+0x14F39 0x874B
+0x14F3A 0x90CE
+0x14F3B 0x516D
+0x14F3C 0x9E93
+0x14F3D 0x7984
+0x14F3E 0x808B
+0x14F3F 0x9332
+0x14F40 0x8AD6
+0x14F41 0x502D
+0x14F42 0x548C
+0x14F43 0x8A71
+0x14F44 0x6B6A
+0x14F45 0x8CC4
+0x14F46 0x8107
+0x14F47 0x60D1
+0x14F48 0x67A0
+0x14F49 0x9DF2
+0x14F4A 0x4E99
+0x14F4B 0x4E98
+0x14F4C 0x9C10
+0x14F4D 0x8A6B
+0x14F4E 0x85C1
+0x14F4F 0x8568
+0x14F50 0x6900
+0x14F51 0x6E7E
+0x14F52 0x7897
+0x14F53 0x8155
+0x14F54 0x20B9F
+0x14F55 0x5B41
+0x14F56 0x5B56
+0x14F57 0x5B7D
+0x14F58 0x5B93
+0x14F59 0x5BD8
+0x14F5A 0x5BEC
+0x14F5B 0x5C12
+0x14F5C 0x5C1E
+0x14F5D 0x5C23
+0x14F5E 0x5C2B
+0x14F5F 0x378D
+0x14F60 0x5C62
+0x14F61 0xFA3B
+0x14F62 0xFA3C
+0x14F63 0x216B4
+0x14F64 0x5C7A
+0x14F65 0x5C8F
+0x14F66 0x5C9F
+0x14F67 0x5CA3
+0x14F68 0x5CAA
+0x14F69 0x5CBA
+0x14F6A 0x5CCB
+0x14F6B 0x5CD0
+0x14F6C 0x5CD2
+0x14F6D 0x5CF4
+0x14F6E 0x21E34
+0x14F6F 0x37E2
+0x14F70 0x5D0D
+0x14F71 0x5D27
+0x14F72 0xFA11
+0x14F73 0x5D46
+0x14F74 0x5D47
+0x14F75 0x5D53
+0x14F76 0x5D4A
+0x14F77 0x5D6D
+0x14F78 0x5D81
+0x14F79 0x5DA0
+0x14F7A 0x5DA4
+0x14F7B 0x5DA7
+0x14F7C 0x5DB8
+0x14F7D 0x5DCB
+0x14F7E 0x541E
+0x15021 0x5F0C
+0x15022 0x4E10
+0x15023 0x4E15
+0x15024 0x4E2A
+0x15025 0x4E31
+0x15026 0x4E36
+0x15027 0x4E3C
+0x15028 0x4E3F
+0x15029 0x4E42
+0x1502A 0x4E56
+0x1502B 0x4E58
+0x1502C 0x4E82
+0x1502D 0x4E85
+0x1502E 0x8C6B
+0x1502F 0x4E8A
+0x15030 0x8212
+0x15031 0x5F0D
+0x15032 0x4E8E
+0x15033 0x4E9E
+0x15034 0x4E9F
+0x15035 0x4EA0
+0x15036 0x4EA2
+0x15037 0x4EB0
+0x15038 0x4EB3
+0x15039 0x4EB6
+0x1503A 0x4ECE
+0x1503B 0x4ECD
+0x1503C 0x4EC4
+0x1503D 0x4EC6
+0x1503E 0x4EC2
+0x1503F 0x4ED7
+0x15040 0x4EDE
+0x15041 0x4EED
+0x15042 0x4EDF
+0x15043 0x4EF7
+0x15044 0x4F09
+0x15045 0x4F5A
+0x15046 0x4F30
+0x15047 0x4F5B
+0x15048 0x4F5D
+0x15049 0x4F57
+0x1504A 0x4F47
+0x1504B 0x4F76
+0x1504C 0x4F88
+0x1504D 0x4F8F
+0x1504E 0x4F98
+0x1504F 0x4F7B
+0x15050 0x4F69
+0x15051 0x4F70
+0x15052 0x4F91
+0x15053 0x4F6F
+0x15054 0x4F86
+0x15055 0x4F96
+0x15056 0x5118
+0x15057 0x4FD4
+0x15058 0x4FDF
+0x15059 0x4FCE
+0x1505A 0x4FD8
+0x1505B 0x4FDB
+0x1505C 0x4FD1
+0x1505D 0x4FDA
+0x1505E 0x4FD0
+0x1505F 0x4FE4
+0x15060 0x4FE5
+0x15061 0x501A
+0x15062 0x5028
+0x15063 0x5014
+0x15064 0x502A
+0x15065 0x5025
+0x15066 0x5005
+0x15067 0x4F1C
+0x15068 0x4FF6
+0x15069 0x5021
+0x1506A 0x5029
+0x1506B 0x502C
+0x1506C 0x4FFE
+0x1506D 0x4FEF
+0x1506E 0x5011
+0x1506F 0x5006
+0x15070 0x5043
+0x15071 0x5047
+0x15072 0x6703
+0x15073 0x5055
+0x15074 0x5050
+0x15075 0x5048
+0x15076 0x505A
+0x15077 0x5056
+0x15078 0x506C
+0x15079 0x5078
+0x1507A 0x5080
+0x1507B 0x509A
+0x1507C 0x5085
+0x1507D 0x50B4
+0x1507E 0x50B2
+0x15121 0x50C9
+0x15122 0x50CA
+0x15123 0x50B3
+0x15124 0x50C2
+0x15125 0x50D6
+0x15126 0x50DE
+0x15127 0x50E5
+0x15128 0x50ED
+0x15129 0x50E3
+0x1512A 0x50EE
+0x1512B 0x50F9
+0x1512C 0x50F5
+0x1512D 0x5109
+0x1512E 0x5101
+0x1512F 0x5102
+0x15130 0x5116
+0x15131 0x5115
+0x15132 0x5114
+0x15133 0x511A
+0x15134 0x5121
+0x15135 0x513A
+0x15136 0x5137
+0x15137 0x513C
+0x15138 0x513B
+0x15139 0x513F
+0x1513A 0x5140
+0x1513B 0x5152
+0x1513C 0x514C
+0x1513D 0x5154
+0x1513E 0x5162
+0x1513F 0x7AF8
+0x15140 0x5169
+0x15141 0x516A
+0x15142 0x516E
+0x15143 0x5180
+0x15144 0x5182
+0x15145 0x56D8
+0x15146 0x518C
+0x15147 0x5189
+0x15148 0x518F
+0x15149 0x5191
+0x1514A 0x5193
+0x1514B 0x5195
+0x1514C 0x5196
+0x1514D 0x51A4
+0x1514E 0x51A6
+0x1514F 0x51A2
+0x15150 0x51A9
+0x15151 0x51AA
+0x15152 0x51AB
+0x15153 0x51B3
+0x15154 0x51B1
+0x15155 0x51B2
+0x15156 0x51B0
+0x15157 0x51B5
+0x15158 0x51BD
+0x15159 0x51C5
+0x1515A 0x51C9
+0x1515B 0x51DB
+0x1515C 0x51E0
+0x1515D 0x8655
+0x1515E 0x51E9
+0x1515F 0x51ED
+0x15160 0x51F0
+0x15161 0x51F5
+0x15162 0x51FE
+0x15163 0x5204
+0x15164 0x520B
+0x15165 0x5214
+0x15166 0x520E
+0x15167 0x5227
+0x15168 0x522A
+0x15169 0x522E
+0x1516A 0x5233
+0x1516B 0x5239
+0x1516C 0x524F
+0x1516D 0x5244
+0x1516E 0x524B
+0x1516F 0x524C
+0x15170 0x525E
+0x15171 0x5254
+0x15172 0x526A
+0x15173 0x5274
+0x15174 0x5269
+0x15175 0x5273
+0x15176 0x527F
+0x15177 0x527D
+0x15178 0x528D
+0x15179 0x5294
+0x1517A 0x5292
+0x1517B 0x5271
+0x1517C 0x5288
+0x1517D 0x5291
+0x1517E 0x8FA8
+0x15221 0x8FA7
+0x15222 0x52AC
+0x15223 0x52AD
+0x15224 0x52BC
+0x15225 0x52B5
+0x15226 0x52C1
+0x15227 0x52CD
+0x15228 0x52D7
+0x15229 0x52DE
+0x1522A 0x52E3
+0x1522B 0x52E6
+0x1522C 0x98ED
+0x1522D 0x52E0
+0x1522E 0x52F3
+0x1522F 0x52F5
+0x15230 0x52F8
+0x15231 0x52F9
+0x15232 0x5306
+0x15233 0x5308
+0x15234 0x7538
+0x15235 0x530D
+0x15236 0x5310
+0x15237 0x530F
+0x15238 0x5315
+0x15239 0x531A
+0x1523A 0x5323
+0x1523B 0x532F
+0x1523C 0x5331
+0x1523D 0x5333
+0x1523E 0x5338
+0x1523F 0x5340
+0x15240 0x5346
+0x15241 0x5345
+0x15242 0x4E17
+0x15243 0x5349
+0x15244 0x534D
+0x15245 0x51D6
+0x15246 0x535E
+0x15247 0x5369
+0x15248 0x536E
+0x15249 0x5918
+0x1524A 0x537B
+0x1524B 0x5377
+0x1524C 0x5382
+0x1524D 0x5396
+0x1524E 0x53A0
+0x1524F 0x53A6
+0x15250 0x53A5
+0x15251 0x53AE
+0x15252 0x53B0
+0x15253 0x53B6
+0x15254 0x53C3
+0x15255 0x7C12
+0x15256 0x96D9
+0x15257 0x53DF
+0x15258 0x66FC
+0x15259 0x71EE
+0x1525A 0x53EE
+0x1525B 0x53E8
+0x1525C 0x53ED
+0x1525D 0x53FA
+0x1525E 0x5401
+0x1525F 0x543D
+0x15260 0x5440
+0x15261 0x542C
+0x15262 0x542D
+0x15263 0x543C
+0x15264 0x542E
+0x15265 0x5436
+0x15266 0x5429
+0x15267 0x541D
+0x15268 0x544E
+0x15269 0x548F
+0x1526A 0x5475
+0x1526B 0x548E
+0x1526C 0x545F
+0x1526D 0x5471
+0x1526E 0x5477
+0x1526F 0x5470
+0x15270 0x5492
+0x15271 0x547B
+0x15272 0x5480
+0x15273 0x5476
+0x15274 0x5484
+0x15275 0x5490
+0x15276 0x5486
+0x15277 0x54C7
+0x15278 0x54A2
+0x15279 0x54B8
+0x1527A 0x54A5
+0x1527B 0x54AC
+0x1527C 0x54C4
+0x1527D 0x54C8
+0x1527E 0x54A8
+0x15321 0x54AB
+0x15322 0x54C2
+0x15323 0x54A4
+0x15324 0x54BE
+0x15325 0x54BC
+0x15326 0x54D8
+0x15327 0x54E5
+0x15328 0x54E6
+0x15329 0x550F
+0x1532A 0x5514
+0x1532B 0x54FD
+0x1532C 0x54EE
+0x1532D 0x54ED
+0x1532E 0x54FA
+0x1532F 0x54E2
+0x15330 0x5539
+0x15331 0x5540
+0x15332 0x5563
+0x15333 0x554C
+0x15334 0x552E
+0x15335 0x555C
+0x15336 0x5545
+0x15337 0x5556
+0x15338 0x5557
+0x15339 0x5538
+0x1533A 0x5533
+0x1533B 0x555D
+0x1533C 0x5599
+0x1533D 0x5580
+0x1533E 0x54AF
+0x1533F 0x558A
+0x15340 0x559F
+0x15341 0x557B
+0x15342 0x557E
+0x15343 0x5598
+0x15344 0x559E
+0x15345 0x55AE
+0x15346 0x557C
+0x15347 0x5583
+0x15348 0x55A9
+0x15349 0x5587
+0x1534A 0x55A8
+0x1534B 0x55DA
+0x1534C 0x55C5
+0x1534D 0x55DF
+0x1534E 0x55C4
+0x1534F 0x55DC
+0x15350 0x55E4
+0x15351 0x55D4
+0x15352 0x5614
+0x15353 0x55F7
+0x15354 0x5616
+0x15355 0x55FE
+0x15356 0x55FD
+0x15357 0x561B
+0x15358 0x55F9
+0x15359 0x564E
+0x1535A 0x5650
+0x1535B 0x71DF
+0x1535C 0x5634
+0x1535D 0x5636
+0x1535E 0x5632
+0x1535F 0x5638
+0x15360 0x566B
+0x15361 0x5664
+0x15362 0x562F
+0x15363 0x566C
+0x15364 0x566A
+0x15365 0x5686
+0x15366 0x5680
+0x15367 0x568A
+0x15368 0x56A0
+0x15369 0x5694
+0x1536A 0x568F
+0x1536B 0x56A5
+0x1536C 0x56AE
+0x1536D 0x56B6
+0x1536E 0x56B4
+0x1536F 0x56C2
+0x15370 0x56BC
+0x15371 0x56C1
+0x15372 0x56C3
+0x15373 0x56C0
+0x15374 0x56C8
+0x15375 0x56CE
+0x15376 0x56D1
+0x15377 0x56D3
+0x15378 0x56D7
+0x15379 0x56EE
+0x1537A 0x56F9
+0x1537B 0x5700
+0x1537C 0x56FF
+0x1537D 0x5704
+0x1537E 0x5709
+0x15421 0x5708
+0x15422 0x570B
+0x15423 0x570D
+0x15424 0x5713
+0x15425 0x5718
+0x15426 0x5716
+0x15427 0x55C7
+0x15428 0x571C
+0x15429 0x5726
+0x1542A 0x5737
+0x1542B 0x5738
+0x1542C 0x574E
+0x1542D 0x573B
+0x1542E 0x5740
+0x1542F 0x574F
+0x15430 0x5769
+0x15431 0x57C0
+0x15432 0x5788
+0x15433 0x5761
+0x15434 0x577F
+0x15435 0x5789
+0x15436 0x5793
+0x15437 0x57A0
+0x15438 0x57B3
+0x15439 0x57A4
+0x1543A 0x57AA
+0x1543B 0x57B0
+0x1543C 0x57C3
+0x1543D 0x57C6
+0x1543E 0x57D4
+0x1543F 0x57D2
+0x15440 0x57D3
+0x15441 0x580A
+0x15442 0x57D6
+0x15443 0x57E3
+0x15444 0x580B
+0x15445 0x5819
+0x15446 0x581D
+0x15447 0x5872
+0x15448 0x5821
+0x15449 0x5862
+0x1544A 0x584B
+0x1544B 0x5870
+0x1544C 0x6BC0
+0x1544D 0x5852
+0x1544E 0x583D
+0x1544F 0x5879
+0x15450 0x5885
+0x15451 0x58B9
+0x15452 0x589F
+0x15453 0x58AB
+0x15454 0x58BA
+0x15455 0x58DE
+0x15456 0x58BB
+0x15457 0x58B8
+0x15458 0x58AE
+0x15459 0x58C5
+0x1545A 0x58D3
+0x1545B 0x58D1
+0x1545C 0x58D7
+0x1545D 0x58D9
+0x1545E 0x58D8
+0x1545F 0x58E5
+0x15460 0x58DC
+0x15461 0x58E4
+0x15462 0x58DF
+0x15463 0x58EF
+0x15464 0x58FA
+0x15465 0x58F9
+0x15466 0x58FB
+0x15467 0x58FC
+0x15468 0x58FD
+0x15469 0x5902
+0x1546A 0x590A
+0x1546B 0x5910
+0x1546C 0x591B
+0x1546D 0x68A6
+0x1546E 0x5925
+0x1546F 0x592C
+0x15470 0x592D
+0x15471 0x5932
+0x15472 0x5938
+0x15473 0x593E
+0x15474 0x7AD2
+0x15475 0x5955
+0x15476 0x5950
+0x15477 0x594E
+0x15478 0x595A
+0x15479 0x5958
+0x1547A 0x5962
+0x1547B 0x5960
+0x1547C 0x5967
+0x1547D 0x596C
+0x1547E 0x5969
+0x15521 0x5978
+0x15522 0x5981
+0x15523 0x599D
+0x15524 0x4F5E
+0x15525 0x4FAB
+0x15526 0x59A3
+0x15527 0x59B2
+0x15528 0x59C6
+0x15529 0x59E8
+0x1552A 0x59DC
+0x1552B 0x598D
+0x1552C 0x59D9
+0x1552D 0x59DA
+0x1552E 0x5A25
+0x1552F 0x5A1F
+0x15530 0x5A11
+0x15531 0x5A1C
+0x15532 0x5A09
+0x15533 0x5A1A
+0x15534 0x5A40
+0x15535 0x5A6C
+0x15536 0x5A49
+0x15537 0x5A35
+0x15538 0x5A36
+0x15539 0x5A62
+0x1553A 0x5A6A
+0x1553B 0x5A9A
+0x1553C 0x5ABC
+0x1553D 0x5ABE
+0x1553E 0x5ACB
+0x1553F 0x5AC2
+0x15540 0x5ABD
+0x15541 0x5AE3
+0x15542 0x5AD7
+0x15543 0x5AE6
+0x15544 0x5AE9
+0x15545 0x5AD6
+0x15546 0x5AFA
+0x15547 0x5AFB
+0x15548 0x5B0C
+0x15549 0x5B0B
+0x1554A 0x5B16
+0x1554B 0x5B32
+0x1554C 0x5AD0
+0x1554D 0x5B2A
+0x1554E 0x5B36
+0x1554F 0x5B3E
+0x15550 0x5B43
+0x15551 0x5B45
+0x15552 0x5B40
+0x15553 0x5B51
+0x15554 0x5B55
+0x15555 0x5B5A
+0x15556 0x5B5B
+0x15557 0x5B65
+0x15558 0x5B69
+0x15559 0x5B70
+0x1555A 0x5B73
+0x1555B 0x5B75
+0x1555C 0x5B78
+0x1555D 0x6588
+0x1555E 0x5B7A
+0x1555F 0x5B80
+0x15560 0x5B83
+0x15561 0x5BA6
+0x15562 0x5BB8
+0x15563 0x5BC3
+0x15564 0x5BC7
+0x15565 0x5BC9
+0x15566 0x5BD4
+0x15567 0x5BD0
+0x15568 0x5BE4
+0x15569 0x5BE6
+0x1556A 0x5BE2
+0x1556B 0x5BDE
+0x1556C 0x5BE5
+0x1556D 0x5BEB
+0x1556E 0x5BF0
+0x1556F 0x5BF6
+0x15570 0x5BF3
+0x15571 0x5C05
+0x15572 0x5C07
+0x15573 0x5C08
+0x15574 0x5C0D
+0x15575 0x5C13
+0x15576 0x5C20
+0x15577 0x5C22
+0x15578 0x5C28
+0x15579 0x5C38
+0x1557A 0x5C39
+0x1557B 0x5C41
+0x1557C 0x5C46
+0x1557D 0x5C4E
+0x1557E 0x5C53
+0x15621 0x5C50
+0x15622 0x5C4F
+0x15623 0x5B71
+0x15624 0x5C6C
+0x15625 0x5C6E
+0x15626 0x4E62
+0x15627 0x5C76
+0x15628 0x5C79
+0x15629 0x5C8C
+0x1562A 0x5C91
+0x1562B 0x5C94
+0x1562C 0x599B
+0x1562D 0x5CAB
+0x1562E 0x5CBB
+0x1562F 0x5CB6
+0x15630 0x5CBC
+0x15631 0x5CB7
+0x15632 0x5CC5
+0x15633 0x5CBE
+0x15634 0x5CC7
+0x15635 0x5CD9
+0x15636 0x5CE9
+0x15637 0x5CFD
+0x15638 0x5CFA
+0x15639 0x5CED
+0x1563A 0x5D8C
+0x1563B 0x5CEA
+0x1563C 0x5D0B
+0x1563D 0x5D15
+0x1563E 0x5D17
+0x1563F 0x5D5C
+0x15640 0x5D1F
+0x15641 0x5D1B
+0x15642 0x5D11
+0x15643 0x5D14
+0x15644 0x5D22
+0x15645 0x5D1A
+0x15646 0x5D19
+0x15647 0x5D18
+0x15648 0x5D4C
+0x15649 0x5D52
+0x1564A 0x5D4E
+0x1564B 0x5D4B
+0x1564C 0x5D6C
+0x1564D 0x5D73
+0x1564E 0x5D76
+0x1564F 0x5D87
+0x15650 0x5D84
+0x15651 0x5D82
+0x15652 0x5DA2
+0x15653 0x5D9D
+0x15654 0x5DAC
+0x15655 0x5DAE
+0x15656 0x5DBD
+0x15657 0x5D90
+0x15658 0x5DB7
+0x15659 0x5DBC
+0x1565A 0x5DC9
+0x1565B 0x5DCD
+0x1565C 0x5DD3
+0x1565D 0x5DD2
+0x1565E 0x5DD6
+0x1565F 0x5DDB
+0x15660 0x5DEB
+0x15661 0x5DF2
+0x15662 0x5DF5
+0x15663 0x5E0B
+0x15664 0x5E1A
+0x15665 0x5E19
+0x15666 0x5E11
+0x15667 0x5E1B
+0x15668 0x5E36
+0x15669 0x5E37
+0x1566A 0x5E44
+0x1566B 0x5E43
+0x1566C 0x5E40
+0x1566D 0x5E4E
+0x1566E 0x5E57
+0x1566F 0x5E54
+0x15670 0x5E5F
+0x15671 0x5E62
+0x15672 0x5E64
+0x15673 0x5E47
+0x15674 0x5E75
+0x15675 0x5E76
+0x15676 0x5E7A
+0x15677 0x9EBC
+0x15678 0x5E7F
+0x15679 0x5EA0
+0x1567A 0x5EC1
+0x1567B 0x5EC2
+0x1567C 0x5EC8
+0x1567D 0x5ED0
+0x1567E 0x5ECF
+0x15721 0x5ED6
+0x15722 0x5EE3
+0x15723 0x5EDD
+0x15724 0x5EDA
+0x15725 0x5EDB
+0x15726 0x5EE2
+0x15727 0x5EE1
+0x15728 0x5EE8
+0x15729 0x5EE9
+0x1572A 0x5EEC
+0x1572B 0x5EF1
+0x1572C 0x5EF3
+0x1572D 0x5EF0
+0x1572E 0x5EF4
+0x1572F 0x5EF8
+0x15730 0x5EFE
+0x15731 0x5F03
+0x15732 0x5F09
+0x15733 0x5F5D
+0x15734 0x5F5C
+0x15735 0x5F0B
+0x15736 0x5F11
+0x15737 0x5F16
+0x15738 0x5F29
+0x15739 0x5F2D
+0x1573A 0x5F38
+0x1573B 0x5F41
+0x1573C 0x5F48
+0x1573D 0x5F4C
+0x1573E 0x5F4E
+0x1573F 0x5F2F
+0x15740 0x5F51
+0x15741 0x5F56
+0x15742 0x5F57
+0x15743 0x5F59
+0x15744 0x5F61
+0x15745 0x5F6D
+0x15746 0x5F73
+0x15747 0x5F77
+0x15748 0x5F83
+0x15749 0x5F82
+0x1574A 0x5F7F
+0x1574B 0x5F8A
+0x1574C 0x5F88
+0x1574D 0x5F91
+0x1574E 0x5F87
+0x1574F 0x5F9E
+0x15750 0x5F99
+0x15751 0x5F98
+0x15752 0x5FA0
+0x15753 0x5FA8
+0x15754 0x5FAD
+0x15755 0x5FBC
+0x15756 0x5FD6
+0x15757 0x5FFB
+0x15758 0x5FE4
+0x15759 0x5FF8
+0x1575A 0x5FF1
+0x1575B 0x5FDD
+0x1575C 0x60B3
+0x1575D 0x5FFF
+0x1575E 0x6021
+0x1575F 0x6060
+0x15760 0x6019
+0x15761 0x6010
+0x15762 0x6029
+0x15763 0x600E
+0x15764 0x6031
+0x15765 0x601B
+0x15766 0x6015
+0x15767 0x602B
+0x15768 0x6026
+0x15769 0x600F
+0x1576A 0x603A
+0x1576B 0x605A
+0x1576C 0x6041
+0x1576D 0x606A
+0x1576E 0x6077
+0x1576F 0x605F
+0x15770 0x604A
+0x15771 0x6046
+0x15772 0x604D
+0x15773 0x6063
+0x15774 0x6043
+0x15775 0x6064
+0x15776 0x6042
+0x15777 0x606C
+0x15778 0x606B
+0x15779 0x6059
+0x1577A 0x6081
+0x1577B 0x608D
+0x1577C 0x60E7
+0x1577D 0x6083
+0x1577E 0x609A
+0x15821 0x6084
+0x15822 0x609B
+0x15823 0x6096
+0x15824 0x6097
+0x15825 0x6092
+0x15826 0x60A7
+0x15827 0x608B
+0x15828 0x60E1
+0x15829 0x60B8
+0x1582A 0x60E0
+0x1582B 0x60D3
+0x1582C 0x60B4
+0x1582D 0x5FF0
+0x1582E 0x60BD
+0x1582F 0x60C6
+0x15830 0x60B5
+0x15831 0x60D8
+0x15832 0x614D
+0x15833 0x6115
+0x15834 0x6106
+0x15835 0x60F6
+0x15836 0x60F7
+0x15837 0x6100
+0x15838 0x60F4
+0x15839 0x60FA
+0x1583A 0x6103
+0x1583B 0x6121
+0x1583C 0x60FB
+0x1583D 0x60F1
+0x1583E 0x610D
+0x1583F 0x610E
+0x15840 0x6147
+0x15841 0x613E
+0x15842 0x6128
+0x15843 0x6127
+0x15844 0x614A
+0x15845 0x613F
+0x15846 0x613C
+0x15847 0x612C
+0x15848 0x6134
+0x15849 0x613D
+0x1584A 0x6142
+0x1584B 0x6144
+0x1584C 0x6173
+0x1584D 0x6177
+0x1584E 0x6158
+0x1584F 0x6159
+0x15850 0x615A
+0x15851 0x616B
+0x15852 0x6174
+0x15853 0x616F
+0x15854 0x6165
+0x15855 0x6171
+0x15856 0x615F
+0x15857 0x615D
+0x15858 0x6153
+0x15859 0x6175
+0x1585A 0x6199
+0x1585B 0x6196
+0x1585C 0x6187
+0x1585D 0x61AC
+0x1585E 0x6194
+0x1585F 0x619A
+0x15860 0x618A
+0x15861 0x6191
+0x15862 0x61AB
+0x15863 0x61AE
+0x15864 0x61CC
+0x15865 0x61CA
+0x15866 0x61C9
+0x15867 0x61F7
+0x15868 0x61C8
+0x15869 0x61C3
+0x1586A 0x61C6
+0x1586B 0x61BA
+0x1586C 0x61CB
+0x1586D 0x7F79
+0x1586E 0x61CD
+0x1586F 0x61E6
+0x15870 0x61E3
+0x15871 0x61F6
+0x15872 0x61FA
+0x15873 0x61F4
+0x15874 0x61FF
+0x15875 0x61FD
+0x15876 0x61FC
+0x15877 0x61FE
+0x15878 0x6200
+0x15879 0x6208
+0x1587A 0x6209
+0x1587B 0x620D
+0x1587C 0x620C
+0x1587D 0x6214
+0x1587E 0x621B
+0x15921 0x621E
+0x15922 0x6221
+0x15923 0x622A
+0x15924 0x622E
+0x15925 0x6230
+0x15926 0x6232
+0x15927 0x6233
+0x15928 0x6241
+0x15929 0x624E
+0x1592A 0x625E
+0x1592B 0x6263
+0x1592C 0x625B
+0x1592D 0x6260
+0x1592E 0x6268
+0x1592F 0x627C
+0x15930 0x6282
+0x15931 0x6289
+0x15932 0x627E
+0x15933 0x6292
+0x15934 0x6293
+0x15935 0x6296
+0x15936 0x62D4
+0x15937 0x6283
+0x15938 0x6294
+0x15939 0x62D7
+0x1593A 0x62D1
+0x1593B 0x62BB
+0x1593C 0x62CF
+0x1593D 0x62FF
+0x1593E 0x62C6
+0x1593F 0x64D4
+0x15940 0x62C8
+0x15941 0x62DC
+0x15942 0x62CC
+0x15943 0x62CA
+0x15944 0x62C2
+0x15945 0x62C7
+0x15946 0x629B
+0x15947 0x62C9
+0x15948 0x630C
+0x15949 0x62EE
+0x1594A 0x62F1
+0x1594B 0x6327
+0x1594C 0x6302
+0x1594D 0x6308
+0x1594E 0x62EF
+0x1594F 0x62F5
+0x15950 0x6350
+0x15951 0x633E
+0x15952 0x634D
+0x15953 0x641C
+0x15954 0x634F
+0x15955 0x6396
+0x15956 0x638E
+0x15957 0x6380
+0x15958 0x63AB
+0x15959 0x6376
+0x1595A 0x63A3
+0x1595B 0x638F
+0x1595C 0x6389
+0x1595D 0x639F
+0x1595E 0x63B5
+0x1595F 0x636B
+0x15960 0x6369
+0x15961 0x63BE
+0x15962 0x63E9
+0x15963 0x63C0
+0x15964 0x63C6
+0x15965 0x63E3
+0x15966 0x63C9
+0x15967 0x63D2
+0x15968 0x63F6
+0x15969 0x63C4
+0x1596A 0x6416
+0x1596B 0x6434
+0x1596C 0x6406
+0x1596D 0x6413
+0x1596E 0x6426
+0x1596F 0x6436
+0x15970 0x651D
+0x15971 0x6417
+0x15972 0x6428
+0x15973 0x640F
+0x15974 0x6467
+0x15975 0x646F
+0x15976 0x6476
+0x15977 0x644E
+0x15978 0x652A
+0x15979 0x6495
+0x1597A 0x6493
+0x1597B 0x64A5
+0x1597C 0x64A9
+0x1597D 0x6488
+0x1597E 0x64BC
+0x15A21 0x64DA
+0x15A22 0x64D2
+0x15A23 0x64C5
+0x15A24 0x64C7
+0x15A25 0x64BB
+0x15A26 0x64D8
+0x15A27 0x64C2
+0x15A28 0x64F1
+0x15A29 0x64E7
+0x15A2A 0x8209
+0x15A2B 0x64E0
+0x15A2C 0x64E1
+0x15A2D 0x62AC
+0x15A2E 0x64E3
+0x15A2F 0x64EF
+0x15A30 0x652C
+0x15A31 0x64F6
+0x15A32 0x64F4
+0x15A33 0x64F2
+0x15A34 0x64FA
+0x15A35 0x6500
+0x15A36 0x64FD
+0x15A37 0x6518
+0x15A38 0x651C
+0x15A39 0x6505
+0x15A3A 0x6524
+0x15A3B 0x6523
+0x15A3C 0x652B
+0x15A3D 0x6534
+0x15A3E 0x6535
+0x15A3F 0x6537
+0x15A40 0x6536
+0x15A41 0x6538
+0x15A42 0x754B
+0x15A43 0x6548
+0x15A44 0x6556
+0x15A45 0x6555
+0x15A46 0x654D
+0x15A47 0x6558
+0x15A48 0x655E
+0x15A49 0x655D
+0x15A4A 0x6572
+0x15A4B 0x6578
+0x15A4C 0x6582
+0x15A4D 0x6583
+0x15A4E 0x8B8A
+0x15A4F 0x659B
+0x15A50 0x659F
+0x15A51 0x65AB
+0x15A52 0x65B7
+0x15A53 0x65C3
+0x15A54 0x65C6
+0x15A55 0x65C1
+0x15A56 0x65C4
+0x15A57 0x65CC
+0x15A58 0x65D2
+0x15A59 0x65DB
+0x15A5A 0x65D9
+0x15A5B 0x65E0
+0x15A5C 0x65E1
+0x15A5D 0x65F1
+0x15A5E 0x6772
+0x15A5F 0x660A
+0x15A60 0x6603
+0x15A61 0x65FB
+0x15A62 0x6773
+0x15A63 0x6635
+0x15A64 0x6636
+0x15A65 0x6634
+0x15A66 0x661C
+0x15A67 0x664F
+0x15A68 0x6644
+0x15A69 0x6649
+0x15A6A 0x6641
+0x15A6B 0x665E
+0x15A6C 0x665D
+0x15A6D 0x6664
+0x15A6E 0x6667
+0x15A6F 0x6668
+0x15A70 0x665F
+0x15A71 0x6662
+0x15A72 0x6670
+0x15A73 0x6683
+0x15A74 0x6688
+0x15A75 0x668E
+0x15A76 0x6689
+0x15A77 0x6684
+0x15A78 0x6698
+0x15A79 0x669D
+0x15A7A 0x66C1
+0x15A7B 0x66B9
+0x15A7C 0x66C9
+0x15A7D 0x66BE
+0x15A7E 0x66BC
+0x15B21 0x66C4
+0x15B22 0x66B8
+0x15B23 0x66D6
+0x15B24 0x66DA
+0x15B25 0x66E0
+0x15B26 0x663F
+0x15B27 0x66E6
+0x15B28 0x66E9
+0x15B29 0x66F0
+0x15B2A 0x66F5
+0x15B2B 0x66F7
+0x15B2C 0x670F
+0x15B2D 0x6716
+0x15B2E 0x671E
+0x15B2F 0x6726
+0x15B30 0x6727
+0x15B31 0x9738
+0x15B32 0x672E
+0x15B33 0x673F
+0x15B34 0x6736
+0x15B35 0x6741
+0x15B36 0x6738
+0x15B37 0x6737
+0x15B38 0x6746
+0x15B39 0x675E
+0x15B3A 0x6760
+0x15B3B 0x6759
+0x15B3C 0x6763
+0x15B3D 0x6764
+0x15B3E 0x6789
+0x15B3F 0x6770
+0x15B40 0x67A9
+0x15B41 0x677C
+0x15B42 0x676A
+0x15B43 0x678C
+0x15B44 0x678B
+0x15B45 0x67A6
+0x15B46 0x67A1
+0x15B47 0x6785
+0x15B48 0x67B7
+0x15B49 0x67EF
+0x15B4A 0x67B4
+0x15B4B 0x67EC
+0x15B4C 0x67B3
+0x15B4D 0x67E9
+0x15B4E 0x67B8
+0x15B4F 0x67E4
+0x15B50 0x67DE
+0x15B51 0x67DD
+0x15B52 0x67E2
+0x15B53 0x67EE
+0x15B54 0x67B9
+0x15B55 0x67CE
+0x15B56 0x67C6
+0x15B57 0x67E7
+0x15B58 0x6A9C
+0x15B59 0x681E
+0x15B5A 0x6846
+0x15B5B 0x6829
+0x15B5C 0x6840
+0x15B5D 0x684D
+0x15B5E 0x6832
+0x15B5F 0x684E
+0x15B60 0x68B3
+0x15B61 0x682B
+0x15B62 0x6859
+0x15B63 0x6863
+0x15B64 0x6877
+0x15B65 0x687F
+0x15B66 0x689F
+0x15B67 0x688F
+0x15B68 0x68AD
+0x15B69 0x6894
+0x15B6A 0x689D
+0x15B6B 0x689B
+0x15B6C 0x6883
+0x15B6D 0x6AAE
+0x15B6E 0x68B9
+0x15B6F 0x6874
+0x15B70 0x68B5
+0x15B71 0x68A0
+0x15B72 0x68BA
+0x15B73 0x690F
+0x15B74 0x688D
+0x15B75 0x687E
+0x15B76 0x6901
+0x15B77 0x68CA
+0x15B78 0x6908
+0x15B79 0x68D8
+0x15B7A 0x6922
+0x15B7B 0x6926
+0x15B7C 0x68E1
+0x15B7D 0x690C
+0x15B7E 0x68CD
+0x15C21 0x68D4
+0x15C22 0x68E7
+0x15C23 0x68D5
+0x15C24 0x6936
+0x15C25 0x6912
+0x15C26 0x6904
+0x15C27 0x68D7
+0x15C28 0x68E3
+0x15C29 0x6925
+0x15C2A 0x68F9
+0x15C2B 0x68E0
+0x15C2C 0x68EF
+0x15C2D 0x6928
+0x15C2E 0x692A
+0x15C2F 0x691A
+0x15C30 0x6923
+0x15C31 0x6921
+0x15C32 0x68C6
+0x15C33 0x6979
+0x15C34 0x6977
+0x15C35 0x695C
+0x15C36 0x6978
+0x15C37 0x696B
+0x15C38 0x6954
+0x15C39 0x697E
+0x15C3A 0x696E
+0x15C3B 0x6939
+0x15C3C 0x6974
+0x15C3D 0x693D
+0x15C3E 0x6959
+0x15C3F 0x6930
+0x15C40 0x6961
+0x15C41 0x695E
+0x15C42 0x695D
+0x15C43 0x6981
+0x15C44 0x696A
+0x15C45 0x69B2
+0x15C46 0x69AE
+0x15C47 0x69D0
+0x15C48 0x69BF
+0x15C49 0x69C1
+0x15C4A 0x69D3
+0x15C4B 0x69BE
+0x15C4C 0x69CE
+0x15C4D 0x5BE8
+0x15C4E 0x69CA
+0x15C4F 0x69DD
+0x15C50 0x69BB
+0x15C51 0x69C3
+0x15C52 0x69A7
+0x15C53 0x6A2E
+0x15C54 0x6991
+0x15C55 0x69A0
+0x15C56 0x699C
+0x15C57 0x6995
+0x15C58 0x69B4
+0x15C59 0x69DE
+0x15C5A 0x69E8
+0x15C5B 0x6A02
+0x15C5C 0x6A1B
+0x15C5D 0x69FF
+0x15C5E 0x6B0A
+0x15C5F 0x69F9
+0x15C60 0x69F2
+0x15C61 0x69E7
+0x15C62 0x6A05
+0x15C63 0x69B1
+0x15C64 0x6A1E
+0x15C65 0x69ED
+0x15C66 0x6A14
+0x15C67 0x69EB
+0x15C68 0x6A0A
+0x15C69 0x6A12
+0x15C6A 0x6AC1
+0x15C6B 0x6A23
+0x15C6C 0x6A13
+0x15C6D 0x6A44
+0x15C6E 0x6A0C
+0x15C6F 0x6A72
+0x15C70 0x6A36
+0x15C71 0x6A78
+0x15C72 0x6A47
+0x15C73 0x6A62
+0x15C74 0x6A59
+0x15C75 0x6A66
+0x15C76 0x6A48
+0x15C77 0x6A38
+0x15C78 0x6A22
+0x15C79 0x6A90
+0x15C7A 0x6A8D
+0x15C7B 0x6AA0
+0x15C7C 0x6A84
+0x15C7D 0x6AA2
+0x15C7E 0x6AA3
+0x15D21 0x6A97
+0x15D22 0x8617
+0x15D23 0x6ABB
+0x15D24 0x6AC3
+0x15D25 0x6AC2
+0x15D26 0x6AB8
+0x15D27 0x6AB3
+0x15D28 0x6AAC
+0x15D29 0x6ADE
+0x15D2A 0x6AD1
+0x15D2B 0x6ADF
+0x15D2C 0x6AAA
+0x15D2D 0x6ADA
+0x15D2E 0x6AEA
+0x15D2F 0x6AFB
+0x15D30 0x6B05
+0x15D31 0x8616
+0x15D32 0x6AFA
+0x15D33 0x6B12
+0x15D34 0x6B16
+0x15D35 0x9B31
+0x15D36 0x6B1F
+0x15D37 0x6B38
+0x15D38 0x6B37
+0x15D39 0x76DC
+0x15D3A 0x6B39
+0x15D3B 0x98EE
+0x15D3C 0x6B47
+0x15D3D 0x6B43
+0x15D3E 0x6B49
+0x15D3F 0x6B50
+0x15D40 0x6B59
+0x15D41 0x6B54
+0x15D42 0x6B5B
+0x15D43 0x6B5F
+0x15D44 0x6B61
+0x15D45 0x6B78
+0x15D46 0x6B79
+0x15D47 0x6B7F
+0x15D48 0x6B80
+0x15D49 0x6B84
+0x15D4A 0x6B83
+0x15D4B 0x6B8D
+0x15D4C 0x6B98
+0x15D4D 0x6B95
+0x15D4E 0x6B9E
+0x15D4F 0x6BA4
+0x15D50 0x6BAA
+0x15D51 0x6BAB
+0x15D52 0x6BAF
+0x15D53 0x6BB2
+0x15D54 0x6BB1
+0x15D55 0x6BB3
+0x15D56 0x6BB7
+0x15D57 0x6BBC
+0x15D58 0x6BC6
+0x15D59 0x6BCB
+0x15D5A 0x6BD3
+0x15D5B 0x6BDF
+0x15D5C 0x6BEC
+0x15D5D 0x6BEB
+0x15D5E 0x6BF3
+0x15D5F 0x6BEF
+0x15D60 0x9EBE
+0x15D61 0x6C08
+0x15D62 0x6C13
+0x15D63 0x6C14
+0x15D64 0x6C1B
+0x15D65 0x6C24
+0x15D66 0x6C23
+0x15D67 0x6C5E
+0x15D68 0x6C55
+0x15D69 0x6C62
+0x15D6A 0x6C6A
+0x15D6B 0x6C82
+0x15D6C 0x6C8D
+0x15D6D 0x6C9A
+0x15D6E 0x6C81
+0x15D6F 0x6C9B
+0x15D70 0x6C7E
+0x15D71 0x6C68
+0x15D72 0x6C73
+0x15D73 0x6C92
+0x15D74 0x6C90
+0x15D75 0x6CC4
+0x15D76 0x6CF1
+0x15D77 0x6CD3
+0x15D78 0x6CBD
+0x15D79 0x6CD7
+0x15D7A 0x6CC5
+0x15D7B 0x6CDD
+0x15D7C 0x6CAE
+0x15D7D 0x6CB1
+0x15D7E 0x6CBE
+0x15E21 0x6CBA
+0x15E22 0x6CDB
+0x15E23 0x6CEF
+0x15E24 0x6CD9
+0x15E25 0x6CEA
+0x15E26 0x6D1F
+0x15E27 0x884D
+0x15E28 0x6D36
+0x15E29 0x6D2B
+0x15E2A 0x6D3D
+0x15E2B 0x6D38
+0x15E2C 0x6D19
+0x15E2D 0x6D35
+0x15E2E 0x6D33
+0x15E2F 0x6D12
+0x15E30 0x6D0C
+0x15E31 0x6D63
+0x15E32 0x6D93
+0x15E33 0x6D64
+0x15E34 0x6D5A
+0x15E35 0x6D79
+0x15E36 0x6D59
+0x15E37 0x6D8E
+0x15E38 0x6D95
+0x15E39 0x6FE4
+0x15E3A 0x6D85
+0x15E3B 0x6DF9
+0x15E3C 0x6E15
+0x15E3D 0x6E0A
+0x15E3E 0x6DB5
+0x15E3F 0x6DC7
+0x15E40 0x6DE6
+0x15E41 0x6DB8
+0x15E42 0x6DC6
+0x15E43 0x6DEC
+0x15E44 0x6DDE
+0x15E45 0x6DCC
+0x15E46 0x6DE8
+0x15E47 0x6DD2
+0x15E48 0x6DC5
+0x15E49 0x6DFA
+0x15E4A 0x6DD9
+0x15E4B 0x6DE4
+0x15E4C 0x6DD5
+0x15E4D 0x6DEA
+0x15E4E 0x6DEE
+0x15E4F 0x6E2D
+0x15E50 0x6E6E
+0x15E51 0x6E2E
+0x15E52 0x6E19
+0x15E53 0x6E72
+0x15E54 0x6E5F
+0x15E55 0x6E3E
+0x15E56 0x6E23
+0x15E57 0x6E6B
+0x15E58 0x6E2B
+0x15E59 0x6E76
+0x15E5A 0x6E4D
+0x15E5B 0x6E1F
+0x15E5C 0x6E43
+0x15E5D 0x6E3A
+0x15E5E 0x6E4E
+0x15E5F 0x6E24
+0x15E60 0x6EFF
+0x15E61 0x6E1D
+0x15E62 0x6E38
+0x15E63 0x6E82
+0x15E64 0x6EAA
+0x15E65 0x6E98
+0x15E66 0x6EC9
+0x15E67 0x6EB7
+0x15E68 0x6ED3
+0x15E69 0x6EBD
+0x15E6A 0x6EAF
+0x15E6B 0x6EC4
+0x15E6C 0x6EB2
+0x15E6D 0x6ED4
+0x15E6E 0x6ED5
+0x15E6F 0x6E8F
+0x15E70 0x6EA5
+0x15E71 0x6EC2
+0x15E72 0x6E9F
+0x15E73 0x6F41
+0x15E74 0x6F11
+0x15E75 0x704C
+0x15E76 0x6EEC
+0x15E77 0x6EF8
+0x15E78 0x6EFE
+0x15E79 0x6F3F
+0x15E7A 0x6EF2
+0x15E7B 0x6F31
+0x15E7C 0x6EEF
+0x15E7D 0x6F32
+0x15E7E 0x6ECC
+0x15F21 0x6F3E
+0x15F22 0x6F13
+0x15F23 0x6EF7
+0x15F24 0x6F86
+0x15F25 0x6F7A
+0x15F26 0x6F78
+0x15F27 0x6F81
+0x15F28 0x6F80
+0x15F29 0x6F6F
+0x15F2A 0x6F5B
+0x15F2B 0x6FF3
+0x15F2C 0x6F6D
+0x15F2D 0x6F82
+0x15F2E 0x6F7C
+0x15F2F 0x6F58
+0x15F30 0x6F8E
+0x15F31 0x6F91
+0x15F32 0x6FC2
+0x15F33 0x6F66
+0x15F34 0x6FB3
+0x15F35 0x6FA3
+0x15F36 0x6FA1
+0x15F37 0x6FA4
+0x15F38 0x6FB9
+0x15F39 0x6FC6
+0x15F3A 0x6FAA
+0x15F3B 0x6FDF
+0x15F3C 0x6FD5
+0x15F3D 0x6FEC
+0x15F3E 0x6FD4
+0x15F3F 0x6FD8
+0x15F40 0x6FF1
+0x15F41 0x6FEE
+0x15F42 0x6FDB
+0x15F43 0x7009
+0x15F44 0x700B
+0x15F45 0x6FFA
+0x15F46 0x7011
+0x15F47 0x7001
+0x15F48 0x700F
+0x15F49 0x6FFE
+0x15F4A 0x701B
+0x15F4B 0x701A
+0x15F4C 0x6F74
+0x15F4D 0x701D
+0x15F4E 0x7018
+0x15F4F 0x701F
+0x15F50 0x7030
+0x15F51 0x703E
+0x15F52 0x7032
+0x15F53 0x7051
+0x15F54 0x7063
+0x15F55 0x7099
+0x15F56 0x7092
+0x15F57 0x70AF
+0x15F58 0x70F1
+0x15F59 0x70AC
+0x15F5A 0x70B8
+0x15F5B 0x70B3
+0x15F5C 0x70AE
+0x15F5D 0x70DF
+0x15F5E 0x70CB
+0x15F5F 0x70DD
+0x15F60 0x70D9
+0x15F61 0x7109
+0x15F62 0x70FD
+0x15F63 0x711C
+0x15F64 0x7119
+0x15F65 0x7165
+0x15F66 0x7155
+0x15F67 0x7188
+0x15F68 0x7166
+0x15F69 0x7162
+0x15F6A 0x714C
+0x15F6B 0x7156
+0x15F6C 0x716C
+0x15F6D 0x718F
+0x15F6E 0x71FB
+0x15F6F 0x7184
+0x15F70 0x7195
+0x15F71 0x71A8
+0x15F72 0x71AC
+0x15F73 0x71D7
+0x15F74 0x71B9
+0x15F75 0x71BE
+0x15F76 0x71D2
+0x15F77 0x71C9
+0x15F78 0x71D4
+0x15F79 0x71CE
+0x15F7A 0x71E0
+0x15F7B 0x71EC
+0x15F7C 0x71E7
+0x15F7D 0x71F5
+0x15F7E 0x71FC
+0x16021 0x71F9
+0x16022 0x71FF
+0x16023 0x720D
+0x16024 0x7210
+0x16025 0x721B
+0x16026 0x7228
+0x16027 0x722D
+0x16028 0x722C
+0x16029 0x7230
+0x1602A 0x7232
+0x1602B 0x723B
+0x1602C 0x723C
+0x1602D 0x723F
+0x1602E 0x7240
+0x1602F 0x7246
+0x16030 0x724B
+0x16031 0x7258
+0x16032 0x7274
+0x16033 0x727E
+0x16034 0x7282
+0x16035 0x7281
+0x16036 0x7287
+0x16037 0x7292
+0x16038 0x7296
+0x16039 0x72A2
+0x1603A 0x72A7
+0x1603B 0x72B9
+0x1603C 0x72B2
+0x1603D 0x72C3
+0x1603E 0x72C6
+0x1603F 0x72C4
+0x16040 0x72CE
+0x16041 0x72D2
+0x16042 0x72E2
+0x16043 0x72E0
+0x16044 0x72E1
+0x16045 0x72F9
+0x16046 0x72F7
+0x16047 0x500F
+0x16048 0x7317
+0x16049 0x730A
+0x1604A 0x731C
+0x1604B 0x7316
+0x1604C 0x731D
+0x1604D 0x7334
+0x1604E 0x732F
+0x1604F 0x7329
+0x16050 0x7325
+0x16051 0x733E
+0x16052 0x734E
+0x16053 0x734F
+0x16054 0x9ED8
+0x16055 0x7357
+0x16056 0x736A
+0x16057 0x7368
+0x16058 0x7370
+0x16059 0x7378
+0x1605A 0x7375
+0x1605B 0x737B
+0x1605C 0x737A
+0x1605D 0x73C8
+0x1605E 0x73B3
+0x1605F 0x73CE
+0x16060 0x73BB
+0x16061 0x73C0
+0x16062 0x73E5
+0x16063 0x73EE
+0x16064 0x73DE
+0x16065 0x74A2
+0x16066 0x7405
+0x16067 0x746F
+0x16068 0x7425
+0x16069 0x73F8
+0x1606A 0x7432
+0x1606B 0x743A
+0x1606C 0x7455
+0x1606D 0x743F
+0x1606E 0x745F
+0x1606F 0x7459
+0x16070 0x7441
+0x16071 0x745C
+0x16072 0x7469
+0x16073 0x7470
+0x16074 0x7463
+0x16075 0x746A
+0x16076 0x7476
+0x16077 0x747E
+0x16078 0x748B
+0x16079 0x749E
+0x1607A 0x74A7
+0x1607B 0x74CA
+0x1607C 0x74CF
+0x1607D 0x74D4
+0x1607E 0x73F1
+0x16121 0x74E0
+0x16122 0x74E3
+0x16123 0x74E7
+0x16124 0x74E9
+0x16125 0x74EE
+0x16126 0x74F2
+0x16127 0x74F0
+0x16128 0x74F1
+0x16129 0x74F8
+0x1612A 0x74F7
+0x1612B 0x7504
+0x1612C 0x7503
+0x1612D 0x7505
+0x1612E 0x750C
+0x1612F 0x750E
+0x16130 0x750D
+0x16131 0x7515
+0x16132 0x7513
+0x16133 0x751E
+0x16134 0x7526
+0x16135 0x752C
+0x16136 0x753C
+0x16137 0x7544
+0x16138 0x754D
+0x16139 0x754A
+0x1613A 0x7549
+0x1613B 0x755B
+0x1613C 0x7546
+0x1613D 0x755A
+0x1613E 0x7569
+0x1613F 0x7564
+0x16140 0x7567
+0x16141 0x756B
+0x16142 0x756D
+0x16143 0x7578
+0x16144 0x7576
+0x16145 0x7586
+0x16146 0x7587
+0x16147 0x7574
+0x16148 0x758A
+0x16149 0x7589
+0x1614A 0x7582
+0x1614B 0x7594
+0x1614C 0x759A
+0x1614D 0x759D
+0x1614E 0x75A5
+0x1614F 0x75A3
+0x16150 0x75C2
+0x16151 0x75B3
+0x16152 0x75C3
+0x16153 0x75B5
+0x16154 0x75BD
+0x16155 0x75B8
+0x16156 0x75BC
+0x16157 0x75B1
+0x16158 0x75CD
+0x16159 0x75CA
+0x1615A 0x75D2
+0x1615B 0x75D9
+0x1615C 0x75E3
+0x1615D 0x75DE
+0x1615E 0x75FE
+0x1615F 0x75FF
+0x16160 0x75FC
+0x16161 0x7601
+0x16162 0x75F0
+0x16163 0x75FA
+0x16164 0x75F2
+0x16165 0x75F3
+0x16166 0x760B
+0x16167 0x760D
+0x16168 0x7609
+0x16169 0x761F
+0x1616A 0x7627
+0x1616B 0x7620
+0x1616C 0x7621
+0x1616D 0x7622
+0x1616E 0x7624
+0x1616F 0x7634
+0x16170 0x7630
+0x16171 0x763B
+0x16172 0x7647
+0x16173 0x7648
+0x16174 0x7646
+0x16175 0x765C
+0x16176 0x7658
+0x16177 0x7661
+0x16178 0x7662
+0x16179 0x7668
+0x1617A 0x7669
+0x1617B 0x766A
+0x1617C 0x7667
+0x1617D 0x766C
+0x1617E 0x7670
+0x16221 0x7672
+0x16222 0x7676
+0x16223 0x7678
+0x16224 0x767C
+0x16225 0x7680
+0x16226 0x7683
+0x16227 0x7688
+0x16228 0x768B
+0x16229 0x768E
+0x1622A 0x7696
+0x1622B 0x7693
+0x1622C 0x7699
+0x1622D 0x769A
+0x1622E 0x76B0
+0x1622F 0x76B4
+0x16230 0x76B8
+0x16231 0x76B9
+0x16232 0x76BA
+0x16233 0x76C2
+0x16234 0x76CD
+0x16235 0x76D6
+0x16236 0x76D2
+0x16237 0x76DE
+0x16238 0x76E1
+0x16239 0x76E5
+0x1623A 0x76E7
+0x1623B 0x76EA
+0x1623C 0x862F
+0x1623D 0x76FB
+0x1623E 0x7708
+0x1623F 0x7707
+0x16240 0x7704
+0x16241 0x7729
+0x16242 0x7724
+0x16243 0x771E
+0x16244 0x7725
+0x16245 0x7726
+0x16246 0x771B
+0x16247 0x7737
+0x16248 0x7738
+0x16249 0x7747
+0x1624A 0x775A
+0x1624B 0x7768
+0x1624C 0x776B
+0x1624D 0x775B
+0x1624E 0x7765
+0x1624F 0x777F
+0x16250 0x777E
+0x16251 0x7779
+0x16252 0x778E
+0x16253 0x778B
+0x16254 0x7791
+0x16255 0x77A0
+0x16256 0x779E
+0x16257 0x77B0
+0x16258 0x77B6
+0x16259 0x77B9
+0x1625A 0x77BF
+0x1625B 0x77BC
+0x1625C 0x77BD
+0x1625D 0x77BB
+0x1625E 0x77C7
+0x1625F 0x77CD
+0x16260 0x77D7
+0x16261 0x77DA
+0x16262 0x77DC
+0x16263 0x77E3
+0x16264 0x77EE
+0x16265 0x77FC
+0x16266 0x780C
+0x16267 0x7812
+0x16268 0x7926
+0x16269 0x7820
+0x1626A 0x792A
+0x1626B 0x7845
+0x1626C 0x788E
+0x1626D 0x7874
+0x1626E 0x7886
+0x1626F 0x787C
+0x16270 0x789A
+0x16271 0x788C
+0x16272 0x78A3
+0x16273 0x78B5
+0x16274 0x78AA
+0x16275 0x78AF
+0x16276 0x78D1
+0x16277 0x78C6
+0x16278 0x78CB
+0x16279 0x78D4
+0x1627A 0x78BE
+0x1627B 0x78BC
+0x1627C 0x78C5
+0x1627D 0x78CA
+0x1627E 0x78EC
+0x16321 0x78E7
+0x16322 0x78DA
+0x16323 0x78FD
+0x16324 0x78F4
+0x16325 0x7907
+0x16326 0x7912
+0x16327 0x7911
+0x16328 0x7919
+0x16329 0x792C
+0x1632A 0x792B
+0x1632B 0x7940
+0x1632C 0x7960
+0x1632D 0x7957
+0x1632E 0x795F
+0x1632F 0x795A
+0x16330 0x7955
+0x16331 0x7953
+0x16332 0x797A
+0x16333 0x797F
+0x16334 0x798A
+0x16335 0x799D
+0x16336 0x79A7
+0x16337 0x9F4B
+0x16338 0x79AA
+0x16339 0x79AE
+0x1633A 0x79B3
+0x1633B 0x79B9
+0x1633C 0x79BA
+0x1633D 0x79C9
+0x1633E 0x79D5
+0x1633F 0x79E7
+0x16340 0x79EC
+0x16341 0x79E1
+0x16342 0x79E3
+0x16343 0x7A08
+0x16344 0x7A0D
+0x16345 0x7A18
+0x16346 0x7A19
+0x16347 0x7A20
+0x16348 0x7A1F
+0x16349 0x7980
+0x1634A 0x7A31
+0x1634B 0x7A3B
+0x1634C 0x7A3E
+0x1634D 0x7A37
+0x1634E 0x7A43
+0x1634F 0x7A57
+0x16350 0x7A49
+0x16351 0x7A61
+0x16352 0x7A62
+0x16353 0x7A69
+0x16354 0x9F9D
+0x16355 0x7A70
+0x16356 0x7A79
+0x16357 0x7A7D
+0x16358 0x7A88
+0x16359 0x7A97
+0x1635A 0x7A95
+0x1635B 0x7A98
+0x1635C 0x7A96
+0x1635D 0x7AA9
+0x1635E 0x7AC8
+0x1635F 0x7AB0
+0x16360 0x7AB6
+0x16361 0x7AC5
+0x16362 0x7AC4
+0x16363 0x7ABF
+0x16364 0x9083
+0x16365 0x7AC7
+0x16366 0x7ACA
+0x16367 0x7ACD
+0x16368 0x7ACF
+0x16369 0x7AD5
+0x1636A 0x7AD3
+0x1636B 0x7AD9
+0x1636C 0x7ADA
+0x1636D 0x7ADD
+0x1636E 0x7AE1
+0x1636F 0x7AE2
+0x16370 0x7AE6
+0x16371 0x7AED
+0x16372 0x7AF0
+0x16373 0x7B02
+0x16374 0x7B0F
+0x16375 0x7B0A
+0x16376 0x7B06
+0x16377 0x7B33
+0x16378 0x7B18
+0x16379 0x7B19
+0x1637A 0x7B1E
+0x1637B 0x7B35
+0x1637C 0x7B28
+0x1637D 0x7B36
+0x1637E 0x7B50
+0x16421 0x7B7A
+0x16422 0x7B04
+0x16423 0x7B4D
+0x16424 0x7B0B
+0x16425 0x7B4C
+0x16426 0x7B45
+0x16427 0x7B75
+0x16428 0x7B65
+0x16429 0x7B74
+0x1642A 0x7B67
+0x1642B 0x7B70
+0x1642C 0x7B71
+0x1642D 0x7B6C
+0x1642E 0x7B6E
+0x1642F 0x7B9D
+0x16430 0x7B98
+0x16431 0x7B9F
+0x16432 0x7B8D
+0x16433 0x7B9C
+0x16434 0x7B9A
+0x16435 0x7B8B
+0x16436 0x7B92
+0x16437 0x7B8F
+0x16438 0x7B5D
+0x16439 0x7B99
+0x1643A 0x7BCB
+0x1643B 0x7BC1
+0x1643C 0x7BCC
+0x1643D 0x7BCF
+0x1643E 0x7BB4
+0x1643F 0x7BC6
+0x16440 0x7BDD
+0x16441 0x7BE9
+0x16442 0x7C11
+0x16443 0x7C14
+0x16444 0x7BE6
+0x16445 0x7BE5
+0x16446 0x7C60
+0x16447 0x7C00
+0x16448 0x7C07
+0x16449 0x7C13
+0x1644A 0x7BF3
+0x1644B 0x7BF7
+0x1644C 0x7C17
+0x1644D 0x7C0D
+0x1644E 0x7BF6
+0x1644F 0x7C23
+0x16450 0x7C27
+0x16451 0x7C2A
+0x16452 0x7C1F
+0x16453 0x7C37
+0x16454 0x7C2B
+0x16455 0x7C3D
+0x16456 0x7C4C
+0x16457 0x7C43
+0x16458 0x7C54
+0x16459 0x7C4F
+0x1645A 0x7C40
+0x1645B 0x7C50
+0x1645C 0x7C58
+0x1645D 0x7C5F
+0x1645E 0x7C64
+0x1645F 0x7C56
+0x16460 0x7C65
+0x16461 0x7C6C
+0x16462 0x7C75
+0x16463 0x7C83
+0x16464 0x7C90
+0x16465 0x7CA4
+0x16466 0x7CAD
+0x16467 0x7CA2
+0x16468 0x7CAB
+0x16469 0x7CA1
+0x1646A 0x7CA8
+0x1646B 0x7CB3
+0x1646C 0x7CB2
+0x1646D 0x7CB1
+0x1646E 0x7CAE
+0x1646F 0x7CB9
+0x16470 0x7CBD
+0x16471 0x7CC0
+0x16472 0x7CC5
+0x16473 0x7CC2
+0x16474 0x7CD8
+0x16475 0x7CD2
+0x16476 0x7CDC
+0x16477 0x7CE2
+0x16478 0x9B3B
+0x16479 0x7CEF
+0x1647A 0x7CF2
+0x1647B 0x7CF4
+0x1647C 0x7CF6
+0x1647D 0x7CFA
+0x1647E 0x7D06
+0x16521 0x7D02
+0x16522 0x7D1C
+0x16523 0x7D15
+0x16524 0x7D0A
+0x16525 0x7D45
+0x16526 0x7D4B
+0x16527 0x7D2E
+0x16528 0x7D32
+0x16529 0x7D3F
+0x1652A 0x7D35
+0x1652B 0x7D46
+0x1652C 0x7D73
+0x1652D 0x7D56
+0x1652E 0x7D4E
+0x1652F 0x7D72
+0x16530 0x7D68
+0x16531 0x7D6E
+0x16532 0x7D4F
+0x16533 0x7D63
+0x16534 0x7D93
+0x16535 0x7D89
+0x16536 0x7D5B
+0x16537 0x7D8F
+0x16538 0x7D7D
+0x16539 0x7D9B
+0x1653A 0x7DBA
+0x1653B 0x7DAE
+0x1653C 0x7DA3
+0x1653D 0x7DB5
+0x1653E 0x7DC7
+0x1653F 0x7DBD
+0x16540 0x7DAB
+0x16541 0x7E3D
+0x16542 0x7DA2
+0x16543 0x7DAF
+0x16544 0x7DDC
+0x16545 0x7DB8
+0x16546 0x7D9F
+0x16547 0x7DB0
+0x16548 0x7DD8
+0x16549 0x7DDD
+0x1654A 0x7DE4
+0x1654B 0x7DDE
+0x1654C 0x7DFB
+0x1654D 0x7DF2
+0x1654E 0x7DE1
+0x1654F 0x7E05
+0x16550 0x7E0A
+0x16551 0x7E23
+0x16552 0x7E21
+0x16553 0x7E12
+0x16554 0x7E31
+0x16555 0x7E1F
+0x16556 0x7E09
+0x16557 0x7E0B
+0x16558 0x7E22
+0x16559 0x7E46
+0x1655A 0x7E66
+0x1655B 0x7E3B
+0x1655C 0x7E35
+0x1655D 0x7E39
+0x1655E 0x7E43
+0x1655F 0x7E37
+0x16560 0x7E32
+0x16561 0x7E3A
+0x16562 0x7E67
+0x16563 0x7E5D
+0x16564 0x7E56
+0x16565 0x7E5E
+0x16566 0x7E59
+0x16567 0x7E5A
+0x16568 0x7E79
+0x16569 0x7E6A
+0x1656A 0x7E69
+0x1656B 0x7E7C
+0x1656C 0x7E7B
+0x1656D 0x7E83
+0x1656E 0x7DD5
+0x1656F 0x7E7D
+0x16570 0x8FAE
+0x16571 0x7E7F
+0x16572 0x7E88
+0x16573 0x7E89
+0x16574 0x7E8C
+0x16575 0x7E92
+0x16576 0x7E90
+0x16577 0x7E93
+0x16578 0x7E94
+0x16579 0x7E96
+0x1657A 0x7E8E
+0x1657B 0x7E9B
+0x1657C 0x7E9C
+0x1657D 0x7F38
+0x1657E 0x7F3A
+0x16621 0x7F45
+0x16622 0x7F4C
+0x16623 0x7F4D
+0x16624 0x7F4E
+0x16625 0x7F50
+0x16626 0x7F51
+0x16627 0x7F55
+0x16628 0x7F54
+0x16629 0x7F58
+0x1662A 0x7F5F
+0x1662B 0x7F60
+0x1662C 0x7F68
+0x1662D 0x7F69
+0x1662E 0x7F67
+0x1662F 0x7F78
+0x16630 0x7F82
+0x16631 0x7F86
+0x16632 0x7F83
+0x16633 0x7F88
+0x16634 0x7F87
+0x16635 0x7F8C
+0x16636 0x7F94
+0x16637 0x7F9E
+0x16638 0x7F9D
+0x16639 0x7F9A
+0x1663A 0x7FA3
+0x1663B 0x7FAF
+0x1663C 0x7FB2
+0x1663D 0x7FB9
+0x1663E 0x7FAE
+0x1663F 0x7FB6
+0x16640 0x7FB8
+0x16641 0x8B71
+0x16642 0x7FC5
+0x16643 0x7FC6
+0x16644 0x7FCA
+0x16645 0x7FD5
+0x16646 0x7FD4
+0x16647 0x7FE1
+0x16648 0x7FE6
+0x16649 0x7FE9
+0x1664A 0x7FF3
+0x1664B 0x7FF9
+0x1664C 0x98DC
+0x1664D 0x8006
+0x1664E 0x8004
+0x1664F 0x800B
+0x16650 0x8012
+0x16651 0x8018
+0x16652 0x8019
+0x16653 0x801C
+0x16654 0x8021
+0x16655 0x8028
+0x16656 0x803F
+0x16657 0x803B
+0x16658 0x804A
+0x16659 0x8046
+0x1665A 0x8052
+0x1665B 0x8058
+0x1665C 0x805A
+0x1665D 0x805F
+0x1665E 0x8062
+0x1665F 0x8068
+0x16660 0x8073
+0x16661 0x8072
+0x16662 0x8070
+0x16663 0x8076
+0x16664 0x8079
+0x16665 0x807D
+0x16666 0x807F
+0x16667 0x8084
+0x16668 0x8086
+0x16669 0x8085
+0x1666A 0x809B
+0x1666B 0x8093
+0x1666C 0x809A
+0x1666D 0x80AD
+0x1666E 0x5190
+0x1666F 0x80AC
+0x16670 0x80DB
+0x16671 0x80E5
+0x16672 0x80D9
+0x16673 0x80DD
+0x16674 0x80C4
+0x16675 0x80DA
+0x16676 0x80D6
+0x16677 0x8109
+0x16678 0x80EF
+0x16679 0x80F1
+0x1667A 0x811B
+0x1667B 0x8129
+0x1667C 0x8123
+0x1667D 0x812F
+0x1667E 0x814B
+0x16721 0x968B
+0x16722 0x8146
+0x16723 0x813E
+0x16724 0x8153
+0x16725 0x8151
+0x16726 0x80FC
+0x16727 0x8171
+0x16728 0x816E
+0x16729 0x8165
+0x1672A 0x8166
+0x1672B 0x8174
+0x1672C 0x8183
+0x1672D 0x8188
+0x1672E 0x818A
+0x1672F 0x8180
+0x16730 0x8182
+0x16731 0x81A0
+0x16732 0x8195
+0x16733 0x81A4
+0x16734 0x81A3
+0x16735 0x815F
+0x16736 0x8193
+0x16737 0x81A9
+0x16738 0x81B0
+0x16739 0x81B5
+0x1673A 0x81BE
+0x1673B 0x81B8
+0x1673C 0x81BD
+0x1673D 0x81C0
+0x1673E 0x81C2
+0x1673F 0x81BA
+0x16740 0x81C9
+0x16741 0x81CD
+0x16742 0x81D1
+0x16743 0x81D9
+0x16744 0x81D8
+0x16745 0x81C8
+0x16746 0x81DA
+0x16747 0x81DF
+0x16748 0x81E0
+0x16749 0x81E7
+0x1674A 0x81FA
+0x1674B 0x81FB
+0x1674C 0x81FE
+0x1674D 0x8201
+0x1674E 0x8202
+0x1674F 0x8205
+0x16750 0x8207
+0x16751 0x820A
+0x16752 0x820D
+0x16753 0x8210
+0x16754 0x8216
+0x16755 0x8229
+0x16756 0x822B
+0x16757 0x8238
+0x16758 0x8233
+0x16759 0x8240
+0x1675A 0x8259
+0x1675B 0x8258
+0x1675C 0x825D
+0x1675D 0x825A
+0x1675E 0x825F
+0x1675F 0x8264
+0x16760 0x8262
+0x16761 0x8268
+0x16762 0x826A
+0x16763 0x826B
+0x16764 0x822E
+0x16765 0x8271
+0x16766 0x8277
+0x16767 0x8278
+0x16768 0x827E
+0x16769 0x828D
+0x1676A 0x8292
+0x1676B 0x82AB
+0x1676C 0x829F
+0x1676D 0x82BB
+0x1676E 0x82AC
+0x1676F 0x82E1
+0x16770 0x82E3
+0x16771 0x82DF
+0x16772 0x82D2
+0x16773 0x82F4
+0x16774 0x82F3
+0x16775 0x82FA
+0x16776 0x8393
+0x16777 0x8303
+0x16778 0x82FB
+0x16779 0x82F9
+0x1677A 0x82DE
+0x1677B 0x8306
+0x1677C 0x82DC
+0x1677D 0x8309
+0x1677E 0x82D9
+0x16821 0x8335
+0x16822 0x8334
+0x16823 0x8316
+0x16824 0x8332
+0x16825 0x8331
+0x16826 0x8340
+0x16827 0x8339
+0x16828 0x8350
+0x16829 0x8345
+0x1682A 0x832F
+0x1682B 0x832B
+0x1682C 0x8317
+0x1682D 0x8318
+0x1682E 0x8385
+0x1682F 0x839A
+0x16830 0x83AA
+0x16831 0x839F
+0x16832 0x83A2
+0x16833 0x8396
+0x16834 0x8323
+0x16835 0x838E
+0x16836 0x8387
+0x16837 0x838A
+0x16838 0x837C
+0x16839 0x83B5
+0x1683A 0x8373
+0x1683B 0x8375
+0x1683C 0x83A0
+0x1683D 0x8389
+0x1683E 0x83A8
+0x1683F 0x83F4
+0x16840 0x8413
+0x16841 0x83EB
+0x16842 0x83CE
+0x16843 0x83FD
+0x16844 0x8403
+0x16845 0x83D8
+0x16846 0x840B
+0x16847 0x83C1
+0x16848 0x83F7
+0x16849 0x8407
+0x1684A 0x83E0
+0x1684B 0x83F2
+0x1684C 0x840D
+0x1684D 0x8422
+0x1684E 0x8420
+0x1684F 0x83BD
+0x16850 0x8438
+0x16851 0x8506
+0x16852 0x83FB
+0x16853 0x846D
+0x16854 0x842A
+0x16855 0x843C
+0x16856 0x855A
+0x16857 0x8484
+0x16858 0x8477
+0x16859 0x846B
+0x1685A 0x84AD
+0x1685B 0x846E
+0x1685C 0x8482
+0x1685D 0x8469
+0x1685E 0x8446
+0x1685F 0x842C
+0x16860 0x846F
+0x16861 0x8479
+0x16862 0x8435
+0x16863 0x84CA
+0x16864 0x8462
+0x16865 0x84B9
+0x16866 0x84BF
+0x16867 0x849F
+0x16868 0x84D9
+0x16869 0x84CD
+0x1686A 0x84BB
+0x1686B 0x84DA
+0x1686C 0x84D0
+0x1686D 0x84C1
+0x1686E 0x84C6
+0x1686F 0x84D6
+0x16870 0x84A1
+0x16871 0x8521
+0x16872 0x84FF
+0x16873 0x84F4
+0x16874 0x8517
+0x16875 0x8518
+0x16876 0x852C
+0x16877 0x851F
+0x16878 0x8515
+0x16879 0x8514
+0x1687A 0x84FC
+0x1687B 0x8540
+0x1687C 0x8563
+0x1687D 0x8558
+0x1687E 0x8548
+0x16921 0x8541
+0x16922 0x8602
+0x16923 0x854B
+0x16924 0x8555
+0x16925 0x8580
+0x16926 0x85A4
+0x16927 0x8588
+0x16928 0x8591
+0x16929 0x858A
+0x1692A 0x85A8
+0x1692B 0x856D
+0x1692C 0x8594
+0x1692D 0x859B
+0x1692E 0x85EA
+0x1692F 0x8587
+0x16930 0x859C
+0x16931 0x8577
+0x16932 0x857E
+0x16933 0x8590
+0x16934 0x85C9
+0x16935 0x85BA
+0x16936 0x85CF
+0x16937 0x85B9
+0x16938 0x85D0
+0x16939 0x85D5
+0x1693A 0x85DD
+0x1693B 0x85E5
+0x1693C 0x85DC
+0x1693D 0x85F9
+0x1693E 0x860A
+0x1693F 0x8613
+0x16940 0x860B
+0x16941 0x85FE
+0x16942 0x85FA
+0x16943 0x8606
+0x16944 0x8622
+0x16945 0x861A
+0x16946 0x8630
+0x16947 0x863F
+0x16948 0x864D
+0x16949 0x4E55
+0x1694A 0x8654
+0x1694B 0x865F
+0x1694C 0x8667
+0x1694D 0x8671
+0x1694E 0x8693
+0x1694F 0x86A3
+0x16950 0x86A9
+0x16951 0x86AA
+0x16952 0x868B
+0x16953 0x868C
+0x16954 0x86B6
+0x16955 0x86AF
+0x16956 0x86C4
+0x16957 0x86C6
+0x16958 0x86B0
+0x16959 0x86C9
+0x1695A 0x8823
+0x1695B 0x86AB
+0x1695C 0x86D4
+0x1695D 0x86DE
+0x1695E 0x86E9
+0x1695F 0x86EC
+0x16960 0x86DF
+0x16961 0x86DB
+0x16962 0x86EF
+0x16963 0x8712
+0x16964 0x8706
+0x16965 0x8708
+0x16966 0x8700
+0x16967 0x8703
+0x16968 0x86FB
+0x16969 0x8711
+0x1696A 0x8709
+0x1696B 0x870D
+0x1696C 0x86F9
+0x1696D 0x870A
+0x1696E 0x8734
+0x1696F 0x873F
+0x16970 0x8737
+0x16971 0x873B
+0x16972 0x8725
+0x16973 0x8729
+0x16974 0x871A
+0x16975 0x8760
+0x16976 0x875F
+0x16977 0x8778
+0x16978 0x874C
+0x16979 0x874E
+0x1697A 0x8774
+0x1697B 0x8757
+0x1697C 0x8768
+0x1697D 0x876E
+0x1697E 0x8759
+0x16A21 0x8753
+0x16A22 0x8763
+0x16A23 0x876A
+0x16A24 0x8805
+0x16A25 0x87A2
+0x16A26 0x879F
+0x16A27 0x8782
+0x16A28 0x87AF
+0x16A29 0x87CB
+0x16A2A 0x87BD
+0x16A2B 0x87C0
+0x16A2C 0x87D0
+0x16A2D 0x96D6
+0x16A2E 0x87AB
+0x16A2F 0x87C4
+0x16A30 0x87B3
+0x16A31 0x87C7
+0x16A32 0x87C6
+0x16A33 0x87BB
+0x16A34 0x87EF
+0x16A35 0x87F2
+0x16A36 0x87E0
+0x16A37 0x880F
+0x16A38 0x880D
+0x16A39 0x87FE
+0x16A3A 0x87F6
+0x16A3B 0x87F7
+0x16A3C 0x880E
+0x16A3D 0x87D2
+0x16A3E 0x8811
+0x16A3F 0x8816
+0x16A40 0x8815
+0x16A41 0x8822
+0x16A42 0x8821
+0x16A43 0x8831
+0x16A44 0x8836
+0x16A45 0x8839
+0x16A46 0x8827
+0x16A47 0x883B
+0x16A48 0x8844
+0x16A49 0x8842
+0x16A4A 0x8852
+0x16A4B 0x8859
+0x16A4C 0x885E
+0x16A4D 0x8862
+0x16A4E 0x886B
+0x16A4F 0x8881
+0x16A50 0x887E
+0x16A51 0x889E
+0x16A52 0x8875
+0x16A53 0x887D
+0x16A54 0x88B5
+0x16A55 0x8872
+0x16A56 0x8882
+0x16A57 0x8897
+0x16A58 0x8892
+0x16A59 0x88AE
+0x16A5A 0x8899
+0x16A5B 0x88A2
+0x16A5C 0x888D
+0x16A5D 0x88A4
+0x16A5E 0x88B0
+0x16A5F 0x88BF
+0x16A60 0x88B1
+0x16A61 0x88C3
+0x16A62 0x88C4
+0x16A63 0x88D4
+0x16A64 0x88D8
+0x16A65 0x88D9
+0x16A66 0x88DD
+0x16A67 0x88F9
+0x16A68 0x8902
+0x16A69 0x88FC
+0x16A6A 0x88F4
+0x16A6B 0x88E8
+0x16A6C 0x88F2
+0x16A6D 0x8904
+0x16A6E 0x890C
+0x16A6F 0x890A
+0x16A70 0x8913
+0x16A71 0x8943
+0x16A72 0x891E
+0x16A73 0x8925
+0x16A74 0x892A
+0x16A75 0x892B
+0x16A76 0x8941
+0x16A77 0x8944
+0x16A78 0x893B
+0x16A79 0x8936
+0x16A7A 0x8938
+0x16A7B 0x894C
+0x16A7C 0x891D
+0x16A7D 0x8960
+0x16A7E 0x895E
+0x16B21 0x8966
+0x16B22 0x8964
+0x16B23 0x896D
+0x16B24 0x896A
+0x16B25 0x896F
+0x16B26 0x8974
+0x16B27 0x8977
+0x16B28 0x897E
+0x16B29 0x8983
+0x16B2A 0x8988
+0x16B2B 0x898A
+0x16B2C 0x8993
+0x16B2D 0x8998
+0x16B2E 0x89A1
+0x16B2F 0x89A9
+0x16B30 0x89A6
+0x16B31 0x89AC
+0x16B32 0x89AF
+0x16B33 0x89B2
+0x16B34 0x89BA
+0x16B35 0x89BD
+0x16B36 0x89BF
+0x16B37 0x89C0
+0x16B38 0x89DA
+0x16B39 0x89DC
+0x16B3A 0x89DD
+0x16B3B 0x89E7
+0x16B3C 0x89F4
+0x16B3D 0x89F8
+0x16B3E 0x8A03
+0x16B3F 0x8A16
+0x16B40 0x8A10
+0x16B41 0x8A0C
+0x16B42 0x8A1B
+0x16B43 0x8A1D
+0x16B44 0x8A25
+0x16B45 0x8A36
+0x16B46 0x8A41
+0x16B47 0x8A5B
+0x16B48 0x8A52
+0x16B49 0x8A46
+0x16B4A 0x8A48
+0x16B4B 0x8A7C
+0x16B4C 0x8A6D
+0x16B4D 0x8A6C
+0x16B4E 0x8A62
+0x16B4F 0x8A85
+0x16B50 0x8A82
+0x16B51 0x8A84
+0x16B52 0x8AA8
+0x16B53 0x8AA1
+0x16B54 0x8A91
+0x16B55 0x8AA5
+0x16B56 0x8AA6
+0x16B57 0x8A9A
+0x16B58 0x8AA3
+0x16B59 0x8AC4
+0x16B5A 0x8ACD
+0x16B5B 0x8AC2
+0x16B5C 0x8ADA
+0x16B5D 0x8AEB
+0x16B5E 0x8AF3
+0x16B5F 0x8AE7
+0x16B60 0x8AE4
+0x16B61 0x8AF1
+0x16B62 0x8B14
+0x16B63 0x8AE0
+0x16B64 0x8AE2
+0x16B65 0x8AF7
+0x16B66 0x8ADE
+0x16B67 0x8ADB
+0x16B68 0x8B0C
+0x16B69 0x8B07
+0x16B6A 0x8B1A
+0x16B6B 0x8AE1
+0x16B6C 0x8B16
+0x16B6D 0x8B10
+0x16B6E 0x8B17
+0x16B6F 0x8B20
+0x16B70 0x8B33
+0x16B71 0x97AB
+0x16B72 0x8B26
+0x16B73 0x8B2B
+0x16B74 0x8B3E
+0x16B75 0x8B28
+0x16B76 0x8B41
+0x16B77 0x8B4C
+0x16B78 0x8B4F
+0x16B79 0x8B4E
+0x16B7A 0x8B49
+0x16B7B 0x8B56
+0x16B7C 0x8B5B
+0x16B7D 0x8B5A
+0x16B7E 0x8B6B
+0x16C21 0x8B5F
+0x16C22 0x8B6C
+0x16C23 0x8B6F
+0x16C24 0x8B74
+0x16C25 0x8B7D
+0x16C26 0x8B80
+0x16C27 0x8B8C
+0x16C28 0x8B8E
+0x16C29 0x8B92
+0x16C2A 0x8B93
+0x16C2B 0x8B96
+0x16C2C 0x8B99
+0x16C2D 0x8B9A
+0x16C2E 0x8C3A
+0x16C2F 0x8C41
+0x16C30 0x8C3F
+0x16C31 0x8C48
+0x16C32 0x8C4C
+0x16C33 0x8C4E
+0x16C34 0x8C50
+0x16C35 0x8C55
+0x16C36 0x8C62
+0x16C37 0x8C6C
+0x16C38 0x8C78
+0x16C39 0x8C7A
+0x16C3A 0x8C82
+0x16C3B 0x8C89
+0x16C3C 0x8C85
+0x16C3D 0x8C8A
+0x16C3E 0x8C8D
+0x16C3F 0x8C8E
+0x16C40 0x8C94
+0x16C41 0x8C7C
+0x16C42 0x8C98
+0x16C43 0x621D
+0x16C44 0x8CAD
+0x16C45 0x8CAA
+0x16C46 0x8CBD
+0x16C47 0x8CB2
+0x16C48 0x8CB3
+0x16C49 0x8CAE
+0x16C4A 0x8CB6
+0x16C4B 0x8CC8
+0x16C4C 0x8CC1
+0x16C4D 0x8CE4
+0x16C4E 0x8CE3
+0x16C4F 0x8CDA
+0x16C50 0x8CFD
+0x16C51 0x8CFA
+0x16C52 0x8CFB
+0x16C53 0x8D04
+0x16C54 0x8D05
+0x16C55 0x8D0A
+0x16C56 0x8D07
+0x16C57 0x8D0F
+0x16C58 0x8D0D
+0x16C59 0x8D10
+0x16C5A 0x9F4E
+0x16C5B 0x8D13
+0x16C5C 0x8CCD
+0x16C5D 0x8D14
+0x16C5E 0x8D16
+0x16C5F 0x8D67
+0x16C60 0x8D6D
+0x16C61 0x8D71
+0x16C62 0x8D73
+0x16C63 0x8D81
+0x16C64 0x8D99
+0x16C65 0x8DC2
+0x16C66 0x8DBE
+0x16C67 0x8DBA
+0x16C68 0x8DCF
+0x16C69 0x8DDA
+0x16C6A 0x8DD6
+0x16C6B 0x8DCC
+0x16C6C 0x8DDB
+0x16C6D 0x8DCB
+0x16C6E 0x8DEA
+0x16C6F 0x8DEB
+0x16C70 0x8DDF
+0x16C71 0x8DE3
+0x16C72 0x8DFC
+0x16C73 0x8E08
+0x16C74 0x8E09
+0x16C75 0x8DFF
+0x16C76 0x8E1D
+0x16C77 0x8E1E
+0x16C78 0x8E10
+0x16C79 0x8E1F
+0x16C7A 0x8E42
+0x16C7B 0x8E35
+0x16C7C 0x8E30
+0x16C7D 0x8E34
+0x16C7E 0x8E4A
+0x16D21 0x8E47
+0x16D22 0x8E49
+0x16D23 0x8E4C
+0x16D24 0x8E50
+0x16D25 0x8E48
+0x16D26 0x8E59
+0x16D27 0x8E64
+0x16D28 0x8E60
+0x16D29 0x8E2A
+0x16D2A 0x8E63
+0x16D2B 0x8E55
+0x16D2C 0x8E76
+0x16D2D 0x8E72
+0x16D2E 0x8E7C
+0x16D2F 0x8E81
+0x16D30 0x8E87
+0x16D31 0x8E85
+0x16D32 0x8E84
+0x16D33 0x8E8B
+0x16D34 0x8E8A
+0x16D35 0x8E93
+0x16D36 0x8E91
+0x16D37 0x8E94
+0x16D38 0x8E99
+0x16D39 0x8EAA
+0x16D3A 0x8EA1
+0x16D3B 0x8EAC
+0x16D3C 0x8EB0
+0x16D3D 0x8EC6
+0x16D3E 0x8EB1
+0x16D3F 0x8EBE
+0x16D40 0x8EC5
+0x16D41 0x8EC8
+0x16D42 0x8ECB
+0x16D43 0x8EDB
+0x16D44 0x8EE3
+0x16D45 0x8EFC
+0x16D46 0x8EFB
+0x16D47 0x8EEB
+0x16D48 0x8EFE
+0x16D49 0x8F0A
+0x16D4A 0x8F05
+0x16D4B 0x8F15
+0x16D4C 0x8F12
+0x16D4D 0x8F19
+0x16D4E 0x8F13
+0x16D4F 0x8F1C
+0x16D50 0x8F1F
+0x16D51 0x8F1B
+0x16D52 0x8F0C
+0x16D53 0x8F26
+0x16D54 0x8F33
+0x16D55 0x8F3B
+0x16D56 0x8F39
+0x16D57 0x8F45
+0x16D58 0x8F42
+0x16D59 0x8F3E
+0x16D5A 0x8F4C
+0x16D5B 0x8F49
+0x16D5C 0x8F46
+0x16D5D 0x8F4E
+0x16D5E 0x8F57
+0x16D5F 0x8F5C
+0x16D60 0x8F62
+0x16D61 0x8F63
+0x16D62 0x8F64
+0x16D63 0x8F9C
+0x16D64 0x8F9F
+0x16D65 0x8FA3
+0x16D66 0x8FAD
+0x16D67 0x8FAF
+0x16D68 0x8FB7
+0x16D69 0x8FDA
+0x16D6A 0x8FE5
+0x16D6B 0x8FE2
+0x16D6C 0x8FEA
+0x16D6D 0x8FEF
+0x16D6E 0x9087
+0x16D6F 0x8FF4
+0x16D70 0x9005
+0x16D71 0x8FF9
+0x16D72 0x8FFA
+0x16D73 0x9011
+0x16D74 0x9015
+0x16D75 0x9021
+0x16D76 0x900D
+0x16D77 0x901E
+0x16D78 0x9016
+0x16D79 0x900B
+0x16D7A 0x9027
+0x16D7B 0x9036
+0x16D7C 0x9035
+0x16D7D 0x9039
+0x16D7E 0x8FF8
+0x16E21 0x904F
+0x16E22 0x9050
+0x16E23 0x9051
+0x16E24 0x9052
+0x16E25 0x900E
+0x16E26 0x9049
+0x16E27 0x903E
+0x16E28 0x9056
+0x16E29 0x9058
+0x16E2A 0x905E
+0x16E2B 0x9068
+0x16E2C 0x906F
+0x16E2D 0x9076
+0x16E2E 0x96A8
+0x16E2F 0x9072
+0x16E30 0x9082
+0x16E31 0x907D
+0x16E32 0x9081
+0x16E33 0x9080
+0x16E34 0x908A
+0x16E35 0x9089
+0x16E36 0x908F
+0x16E37 0x90A8
+0x16E38 0x90AF
+0x16E39 0x90B1
+0x16E3A 0x90B5
+0x16E3B 0x90E2
+0x16E3C 0x90E4
+0x16E3D 0x6248
+0x16E3E 0x90DB
+0x16E3F 0x9102
+0x16E40 0x9112
+0x16E41 0x9119
+0x16E42 0x9132
+0x16E43 0x9130
+0x16E44 0x914A
+0x16E45 0x9156
+0x16E46 0x9158
+0x16E47 0x9163
+0x16E48 0x9165
+0x16E49 0x9169
+0x16E4A 0x9173
+0x16E4B 0x9172
+0x16E4C 0x918B
+0x16E4D 0x9189
+0x16E4E 0x9182
+0x16E4F 0x91A2
+0x16E50 0x91AB
+0x16E51 0x91AF
+0x16E52 0x91AA
+0x16E53 0x91B5
+0x16E54 0x91B4
+0x16E55 0x91BA
+0x16E56 0x91C0
+0x16E57 0x91C1
+0x16E58 0x91C9
+0x16E59 0x91CB
+0x16E5A 0x91D0
+0x16E5B 0x91D6
+0x16E5C 0x91DF
+0x16E5D 0x91E1
+0x16E5E 0x91DB
+0x16E5F 0x91FC
+0x16E60 0x91F5
+0x16E61 0x91F6
+0x16E62 0x921E
+0x16E63 0x91FF
+0x16E64 0x9214
+0x16E65 0x922C
+0x16E66 0x9215
+0x16E67 0x9211
+0x16E68 0x925E
+0x16E69 0x9257
+0x16E6A 0x9245
+0x16E6B 0x9249
+0x16E6C 0x9264
+0x16E6D 0x9248
+0x16E6E 0x9295
+0x16E6F 0x923F
+0x16E70 0x924B
+0x16E71 0x9250
+0x16E72 0x929C
+0x16E73 0x9296
+0x16E74 0x9293
+0x16E75 0x929B
+0x16E76 0x925A
+0x16E77 0x92CF
+0x16E78 0x92B9
+0x16E79 0x92B7
+0x16E7A 0x92E9
+0x16E7B 0x930F
+0x16E7C 0x92FA
+0x16E7D 0x9344
+0x16E7E 0x932E
+0x16F21 0x9319
+0x16F22 0x9322
+0x16F23 0x931A
+0x16F24 0x9323
+0x16F25 0x933A
+0x16F26 0x9335
+0x16F27 0x933B
+0x16F28 0x935C
+0x16F29 0x9360
+0x16F2A 0x937C
+0x16F2B 0x936E
+0x16F2C 0x9356
+0x16F2D 0x93B0
+0x16F2E 0x93AC
+0x16F2F 0x93AD
+0x16F30 0x9394
+0x16F31 0x93B9
+0x16F32 0x93D6
+0x16F33 0x93D7
+0x16F34 0x93E8
+0x16F35 0x93E5
+0x16F36 0x93D8
+0x16F37 0x93C3
+0x16F38 0x93DD
+0x16F39 0x93D0
+0x16F3A 0x93C8
+0x16F3B 0x93E4
+0x16F3C 0x941A
+0x16F3D 0x9414
+0x16F3E 0x9413
+0x16F3F 0x9403
+0x16F40 0x9407
+0x16F41 0x9410
+0x16F42 0x9436
+0x16F43 0x942B
+0x16F44 0x9435
+0x16F45 0x9421
+0x16F46 0x943A
+0x16F47 0x9441
+0x16F48 0x9452
+0x16F49 0x9444
+0x16F4A 0x945B
+0x16F4B 0x9460
+0x16F4C 0x9462
+0x16F4D 0x945E
+0x16F4E 0x946A
+0x16F4F 0x9229
+0x16F50 0x9470
+0x16F51 0x9475
+0x16F52 0x9477
+0x16F53 0x947D
+0x16F54 0x945A
+0x16F55 0x947C
+0x16F56 0x947E
+0x16F57 0x9481
+0x16F58 0x947F
+0x16F59 0x9582
+0x16F5A 0x9587
+0x16F5B 0x958A
+0x16F5C 0x9594
+0x16F5D 0x9596
+0x16F5E 0x9598
+0x16F5F 0x9599
+0x16F60 0x95A0
+0x16F61 0x95A8
+0x16F62 0x95A7
+0x16F63 0x95AD
+0x16F64 0x95BC
+0x16F65 0x95BB
+0x16F66 0x95B9
+0x16F67 0x95BE
+0x16F68 0x95CA
+0x16F69 0x6FF6
+0x16F6A 0x95C3
+0x16F6B 0x95CD
+0x16F6C 0x95CC
+0x16F6D 0x95D5
+0x16F6E 0x95D4
+0x16F6F 0x95D6
+0x16F70 0x95DC
+0x16F71 0x95E1
+0x16F72 0x95E5
+0x16F73 0x95E2
+0x16F74 0x9621
+0x16F75 0x9628
+0x16F76 0x962E
+0x16F77 0x962F
+0x16F78 0x9642
+0x16F79 0x964C
+0x16F7A 0x964F
+0x16F7B 0x964B
+0x16F7C 0x9677
+0x16F7D 0x965C
+0x16F7E 0x965E
+0x17021 0x965D
+0x17022 0x965F
+0x17023 0x9666
+0x17024 0x9672
+0x17025 0x966C
+0x17026 0x968D
+0x17027 0x9698
+0x17028 0x9695
+0x17029 0x9697
+0x1702A 0x96AA
+0x1702B 0x96A7
+0x1702C 0x96B1
+0x1702D 0x96B2
+0x1702E 0x96B0
+0x1702F 0x96B4
+0x17030 0x96B6
+0x17031 0x96B8
+0x17032 0x96B9
+0x17033 0x96CE
+0x17034 0x96CB
+0x17035 0x96C9
+0x17036 0x96CD
+0x17037 0x894D
+0x17038 0x96DC
+0x17039 0x970D
+0x1703A 0x96D5
+0x1703B 0x96F9
+0x1703C 0x9704
+0x1703D 0x9706
+0x1703E 0x9708
+0x1703F 0x9713
+0x17040 0x970E
+0x17041 0x9711
+0x17042 0x970F
+0x17043 0x9716
+0x17044 0x9719
+0x17045 0x9724
+0x17046 0x972A
+0x17047 0x9730
+0x17048 0x9739
+0x17049 0x973D
+0x1704A 0x973E
+0x1704B 0x9744
+0x1704C 0x9746
+0x1704D 0x9748
+0x1704E 0x9742
+0x1704F 0x9749
+0x17050 0x975C
+0x17051 0x9760
+0x17052 0x9764
+0x17053 0x9766
+0x17054 0x9768
+0x17055 0x52D2
+0x17056 0x976B
+0x17057 0x9771
+0x17058 0x9779
+0x17059 0x9785
+0x1705A 0x977C
+0x1705B 0x9781
+0x1705C 0x977A
+0x1705D 0x9786
+0x1705E 0x978B
+0x1705F 0x978F
+0x17060 0x9790
+0x17061 0x979C
+0x17062 0x97A8
+0x17063 0x97A6
+0x17064 0x97A3
+0x17065 0x97B3
+0x17066 0x97B4
+0x17067 0x97C3
+0x17068 0x97C6
+0x17069 0x97C8
+0x1706A 0x97CB
+0x1706B 0x97DC
+0x1706C 0x97ED
+0x1706D 0x9F4F
+0x1706E 0x97F2
+0x1706F 0x7ADF
+0x17070 0x97F6
+0x17071 0x97F5
+0x17072 0x980F
+0x17073 0x980C
+0x17074 0x9838
+0x17075 0x9824
+0x17076 0x9821
+0x17077 0x9837
+0x17078 0x983D
+0x17079 0x9846
+0x1707A 0x984F
+0x1707B 0x984B
+0x1707C 0x986B
+0x1707D 0x986F
+0x1707E 0x9870
+0x17121 0x9871
+0x17122 0x9874
+0x17123 0x9873
+0x17124 0x98AA
+0x17125 0x98AF
+0x17126 0x98B1
+0x17127 0x98B6
+0x17128 0x98C4
+0x17129 0x98C3
+0x1712A 0x98C6
+0x1712B 0x98E9
+0x1712C 0x98EB
+0x1712D 0x9903
+0x1712E 0x9909
+0x1712F 0x9912
+0x17130 0x9914
+0x17131 0x9918
+0x17132 0x9921
+0x17133 0x991D
+0x17134 0x991E
+0x17135 0x9924
+0x17136 0x9920
+0x17137 0x992C
+0x17138 0x992E
+0x17139 0x993D
+0x1713A 0x993E
+0x1713B 0x9942
+0x1713C 0x9949
+0x1713D 0x9945
+0x1713E 0x9950
+0x1713F 0x994B
+0x17140 0x9951
+0x17141 0x9952
+0x17142 0x994C
+0x17143 0x9955
+0x17144 0x9997
+0x17145 0x9998
+0x17146 0x99A5
+0x17147 0x99AD
+0x17148 0x99AE
+0x17149 0x99BC
+0x1714A 0x99DF
+0x1714B 0x99DB
+0x1714C 0x99DD
+0x1714D 0x99D8
+0x1714E 0x99D1
+0x1714F 0x99ED
+0x17150 0x99EE
+0x17151 0x99F1
+0x17152 0x99F2
+0x17153 0x99FB
+0x17154 0x99F8
+0x17155 0x9A01
+0x17156 0x9A0F
+0x17157 0x9A05
+0x17158 0x99E2
+0x17159 0x9A19
+0x1715A 0x9A2B
+0x1715B 0x9A37
+0x1715C 0x9A45
+0x1715D 0x9A42
+0x1715E 0x9A40
+0x1715F 0x9A43
+0x17160 0x9A3E
+0x17161 0x9A55
+0x17162 0x9A4D
+0x17163 0x9A5B
+0x17164 0x9A57
+0x17165 0x9A5F
+0x17166 0x9A62
+0x17167 0x9A65
+0x17168 0x9A64
+0x17169 0x9A69
+0x1716A 0x9A6B
+0x1716B 0x9A6A
+0x1716C 0x9AAD
+0x1716D 0x9AB0
+0x1716E 0x9ABC
+0x1716F 0x9AC0
+0x17170 0x9ACF
+0x17171 0x9AD1
+0x17172 0x9AD3
+0x17173 0x9AD4
+0x17174 0x9ADE
+0x17175 0x9ADF
+0x17176 0x9AE2
+0x17177 0x9AE3
+0x17178 0x9AE6
+0x17179 0x9AEF
+0x1717A 0x9AEB
+0x1717B 0x9AEE
+0x1717C 0x9AF4
+0x1717D 0x9AF1
+0x1717E 0x9AF7
+0x17221 0x9AFB
+0x17222 0x9B06
+0x17223 0x9B18
+0x17224 0x9B1A
+0x17225 0x9B1F
+0x17226 0x9B22
+0x17227 0x9B23
+0x17228 0x9B25
+0x17229 0x9B27
+0x1722A 0x9B28
+0x1722B 0x9B29
+0x1722C 0x9B2A
+0x1722D 0x9B2E
+0x1722E 0x9B2F
+0x1722F 0x9B32
+0x17230 0x9B44
+0x17231 0x9B43
+0x17232 0x9B4F
+0x17233 0x9B4D
+0x17234 0x9B4E
+0x17235 0x9B51
+0x17236 0x9B58
+0x17237 0x9B74
+0x17238 0x9B93
+0x17239 0x9B83
+0x1723A 0x9B91
+0x1723B 0x9B96
+0x1723C 0x9B97
+0x1723D 0x9B9F
+0x1723E 0x9BA0
+0x1723F 0x9BA8
+0x17240 0x9BB4
+0x17241 0x9BC0
+0x17242 0x9BCA
+0x17243 0x9BB9
+0x17244 0x9BC6
+0x17245 0x9BCF
+0x17246 0x9BD1
+0x17247 0x9BD2
+0x17248 0x9BE3
+0x17249 0x9BE2
+0x1724A 0x9BE4
+0x1724B 0x9BD4
+0x1724C 0x9BE1
+0x1724D 0x9C3A
+0x1724E 0x9BF2
+0x1724F 0x9BF1
+0x17250 0x9BF0
+0x17251 0x9C15
+0x17252 0x9C14
+0x17253 0x9C09
+0x17254 0x9C13
+0x17255 0x9C0C
+0x17256 0x9C06
+0x17257 0x9C08
+0x17258 0x9C12
+0x17259 0x9C0A
+0x1725A 0x9C04
+0x1725B 0x9C2E
+0x1725C 0x9C1B
+0x1725D 0x9C25
+0x1725E 0x9C24
+0x1725F 0x9C21
+0x17260 0x9C30
+0x17261 0x9C47
+0x17262 0x9C32
+0x17263 0x9C46
+0x17264 0x9C3E
+0x17265 0x9C5A
+0x17266 0x9C60
+0x17267 0x9C67
+0x17268 0x9C76
+0x17269 0x9C78
+0x1726A 0x9CE7
+0x1726B 0x9CEC
+0x1726C 0x9CF0
+0x1726D 0x9D09
+0x1726E 0x9D08
+0x1726F 0x9CEB
+0x17270 0x9D03
+0x17271 0x9D06
+0x17272 0x9D2A
+0x17273 0x9D26
+0x17274 0x9DAF
+0x17275 0x9D23
+0x17276 0x9D1F
+0x17277 0x9D44
+0x17278 0x9D15
+0x17279 0x9D12
+0x1727A 0x9D41
+0x1727B 0x9D3F
+0x1727C 0x9D3E
+0x1727D 0x9D46
+0x1727E 0x9D48
+0x17321 0x9D5D
+0x17322 0x9D5E
+0x17323 0x9D64
+0x17324 0x9D51
+0x17325 0x9D50
+0x17326 0x9D59
+0x17327 0x9D72
+0x17328 0x9D89
+0x17329 0x9D87
+0x1732A 0x9DAB
+0x1732B 0x9D6F
+0x1732C 0x9D7A
+0x1732D 0x9D9A
+0x1732E 0x9DA4
+0x1732F 0x9DA9
+0x17330 0x9DB2
+0x17331 0x9DC4
+0x17332 0x9DC1
+0x17333 0x9DBB
+0x17334 0x9DB8
+0x17335 0x9DBA
+0x17336 0x9DC6
+0x17337 0x9DCF
+0x17338 0x9DC2
+0x17339 0x9DD9
+0x1733A 0x9DD3
+0x1733B 0x9DF8
+0x1733C 0x9DE6
+0x1733D 0x9DED
+0x1733E 0x9DEF
+0x1733F 0x9DFD
+0x17340 0x9E1A
+0x17341 0x9E1B
+0x17342 0x9E1E
+0x17343 0x9E75
+0x17344 0x9E79
+0x17345 0x9E7D
+0x17346 0x9E81
+0x17347 0x9E88
+0x17348 0x9E8B
+0x17349 0x9E8C
+0x1734A 0x9E92
+0x1734B 0x9E95
+0x1734C 0x9E91
+0x1734D 0x9E9D
+0x1734E 0x9EA5
+0x1734F 0x9EA9
+0x17350 0x9EB8
+0x17351 0x9EAA
+0x17352 0x9EAD
+0x17353 0x9761
+0x17354 0x9ECC
+0x17355 0x9ECE
+0x17356 0x9ECF
+0x17357 0x9ED0
+0x17358 0x9ED4
+0x17359 0x9EDC
+0x1735A 0x9EDE
+0x1735B 0x9EDD
+0x1735C 0x9EE0
+0x1735D 0x9EE5
+0x1735E 0x9EE8
+0x1735F 0x9EEF
+0x17360 0x9EF4
+0x17361 0x9EF6
+0x17362 0x9EF7
+0x17363 0x9EF9
+0x17364 0x9EFB
+0x17365 0x9EFC
+0x17366 0x9EFD
+0x17367 0x9F07
+0x17368 0x9F08
+0x17369 0x76B7
+0x1736A 0x9F15
+0x1736B 0x9F21
+0x1736C 0x9F2C
+0x1736D 0x9F3E
+0x1736E 0x9F4A
+0x1736F 0x9F52
+0x17370 0x9F54
+0x17371 0x9F63
+0x17372 0x9F5F
+0x17373 0x9F60
+0x17374 0x9F61
+0x17375 0x9F66
+0x17376 0x9F67
+0x17377 0x9F6C
+0x17378 0x9F6A
+0x17379 0x9F77
+0x1737A 0x9F72
+0x1737B 0x9F76
+0x1737C 0x9F95
+0x1737D 0x9F9C
+0x1737E 0x9FA0
+0x17421 0x582F
+0x17422 0x69C7
+0x17423 0x9059
+0x17424 0x7464
+0x17425 0x51DC
+0x17426 0x7199
+0x17427 0x5653
+0x17428 0x5DE2
+0x17429 0x5E14
+0x1742A 0x5E18
+0x1742B 0x5E58
+0x1742C 0x5E5E
+0x1742D 0x5EBE
+0x1742E 0xF928
+0x1742F 0x5ECB
+0x17430 0x5EF9
+0x17431 0x5F00
+0x17432 0x5F02
+0x17433 0x5F07
+0x17434 0x5F1D
+0x17435 0x5F23
+0x17436 0x5F34
+0x17437 0x5F36
+0x17438 0x5F3D
+0x17439 0x5F40
+0x1743A 0x5F45
+0x1743B 0x5F54
+0x1743C 0x5F58
+0x1743D 0x5F64
+0x1743E 0x5F67
+0x1743F 0x5F7D
+0x17440 0x5F89
+0x17441 0x5F9C
+0x17442 0x5FA7
+0x17443 0x5FAF
+0x17444 0x5FB5
+0x17445 0x5FB7
+0x17446 0x5FC9
+0x17447 0x5FDE
+0x17448 0x5FE1
+0x17449 0x5FE9
+0x1744A 0x600D
+0x1744B 0x6014
+0x1744C 0x6018
+0x1744D 0x6033
+0x1744E 0x6035
+0x1744F 0x6047
+0x17450 0xFA3D
+0x17451 0x609D
+0x17452 0x609E
+0x17453 0x60CB
+0x17454 0x60D4
+0x17455 0x60D5
+0x17456 0x60DD
+0x17457 0x60F8
+0x17458 0x611C
+0x17459 0x612B
+0x1745A 0x6130
+0x1745B 0x6137
+0x1745C 0xFA3E
+0x1745D 0x618D
+0x1745E 0xFA3F
+0x1745F 0x61BC
+0x17460 0x61B9
+0x17461 0xFA40
+0x17462 0x6222
+0x17463 0x623E
+0x17464 0x6243
+0x17465 0x6256
+0x17466 0x625A
+0x17467 0x626F
+0x17468 0x6285
+0x17469 0x62C4
+0x1746A 0x62D6
+0x1746B 0x62FC
+0x1746C 0x630A
+0x1746D 0x6318
+0x1746E 0x6339
+0x1746F 0x6343
+0x17470 0x6365
+0x17471 0x637C
+0x17472 0x63E5
+0x17473 0x63ED
+0x17474 0x63F5
+0x17475 0x6410
+0x17476 0x6414
+0x17477 0x6422
+0x17478 0x6479
+0x17479 0x6451
+0x1747A 0x6460
+0x1747B 0x646D
+0x1747C 0x64CE
+0x1747D 0x64BE
+0x1747E 0x64BF
+0x17521 0x64C4
+0x17522 0x64CA
+0x17523 0x64D0
+0x17524 0x64F7
+0x17525 0x64FB
+0x17526 0x6522
+0x17527 0x6529
+0x17528 0xFA41
+0x17529 0x6567
+0x1752A 0x659D
+0x1752B 0xFA42
+0x1752C 0x6600
+0x1752D 0x6609
+0x1752E 0x6615
+0x1752F 0x661E
+0x17530 0x663A
+0x17531 0x6622
+0x17532 0x6624
+0x17533 0x662B
+0x17534 0x6630
+0x17535 0x6631
+0x17536 0x6633
+0x17537 0x66FB
+0x17538 0x6648
+0x17539 0x664C
+0x1753A 0x231C4
+0x1753B 0x6659
+0x1753C 0x665A
+0x1753D 0x6661
+0x1753E 0x6665
+0x1753F 0x6673
+0x17540 0x6677
+0x17541 0x6678
+0x17542 0x668D
+0x17543 0xFA43
+0x17544 0x66A0
+0x17545 0x66B2
+0x17546 0x66BB
+0x17547 0x66C6
+0x17548 0x66C8
+0x17549 0x3B22
+0x1754A 0x66DB
+0x1754B 0x66E8
+0x1754C 0x66FA
+0x1754D 0x6713
+0x1754E 0xF929
+0x1754F 0x6733
+0x17550 0x6766
+0x17551 0x6747
+0x17552 0x6748
+0x17553 0x677B
+0x17554 0x6781
+0x17555 0x6793
+0x17556 0x6798
+0x17557 0x679B
+0x17558 0x67BB
+0x17559 0x67F9
+0x1755A 0x67C0
+0x1755B 0x67D7
+0x1755C 0x67FC
+0x1755D 0x6801
+0x1755E 0x6852
+0x1755F 0x681D
+0x17560 0x682C
+0x17561 0x6831
+0x17562 0x685B
+0x17563 0x6872
+0x17564 0x6875
+0x17565 0xFA44
+0x17566 0x68A3
+0x17567 0x68A5
+0x17568 0x68B2
+0x17569 0x68C8
+0x1756A 0x68D0
+0x1756B 0x68E8
+0x1756C 0x68ED
+0x1756D 0x68F0
+0x1756E 0x68F1
+0x1756F 0x68FC
+0x17570 0x690A
+0x17571 0x6949
+0x17572 0x235C4
+0x17573 0x6935
+0x17574 0x6942
+0x17575 0x6957
+0x17576 0x6963
+0x17577 0x6964
+0x17578 0x6968
+0x17579 0x6980
+0x1757A 0xFA14
+0x1757B 0x69A5
+0x1757C 0x69AD
+0x1757D 0x69CF
+0x1757E 0x3BB6
+0x17621 0x3BC3
+0x17622 0x69E2
+0x17623 0x69E9
+0x17624 0x69EA
+0x17625 0x69F5
+0x17626 0x69F6
+0x17627 0x6A0F
+0x17628 0x6A15
+0x17629 0x2373F
+0x1762A 0x6A3B
+0x1762B 0x6A3E
+0x1762C 0x6A45
+0x1762D 0x6A50
+0x1762E 0x6A56
+0x1762F 0x6A5B
+0x17630 0x6A6B
+0x17631 0x6A73
+0x17632 0x23763
+0x17633 0x6A89
+0x17634 0x6A94
+0x17635 0x6A9D
+0x17636 0x6A9E
+0x17637 0x6AA5
+0x17638 0x6AE4
+0x17639 0x6AE7
+0x1763A 0x3C0F
+0x1763B 0xF91D
+0x1763C 0x6B1B
+0x1763D 0x6B1E
+0x1763E 0x6B2C
+0x1763F 0x6B35
+0x17640 0x6B46
+0x17641 0x6B56
+0x17642 0x6B60
+0x17643 0x6B65
+0x17644 0x6B67
+0x17645 0x6B77
+0x17646 0x6B82
+0x17647 0x6BA9
+0x17648 0x6BAD
+0x17649 0xF970
+0x1764A 0x6BCF
+0x1764B 0x6BD6
+0x1764C 0x6BD7
+0x1764D 0x6BFF
+0x1764E 0x6C05
+0x1764F 0x6C10
+0x17650 0x6C33
+0x17651 0x6C59
+0x17652 0x6C5C
+0x17653 0x6CAA
+0x17654 0x6C74
+0x17655 0x6C76
+0x17656 0x6C85
+0x17657 0x6C86
+0x17658 0x6C98
+0x17659 0x6C9C
+0x1765A 0x6CFB
+0x1765B 0x6CC6
+0x1765C 0x6CD4
+0x1765D 0x6CE0
+0x1765E 0x6CEB
+0x1765F 0x6CEE
+0x17660 0x23CFE
+0x17661 0x6D04
+0x17662 0x6D0E
+0x17663 0x6D2E
+0x17664 0x6D31
+0x17665 0x6D39
+0x17666 0x6D3F
+0x17667 0x6D58
+0x17668 0x6D65
+0x17669 0xFA45
+0x1766A 0x6D82
+0x1766B 0x6D87
+0x1766C 0x6D89
+0x1766D 0x6D94
+0x1766E 0x6DAA
+0x1766F 0x6DAC
+0x17670 0x6DBF
+0x17671 0x6DC4
+0x17672 0x6DD6
+0x17673 0x6DDA
+0x17674 0x6DDB
+0x17675 0x6DDD
+0x17676 0x6DFC
+0x17677 0xFA46
+0x17678 0x6E34
+0x17679 0x6E44
+0x1767A 0x6E5C
+0x1767B 0x6E5E
+0x1767C 0x6EAB
+0x1767D 0x6EB1
+0x1767E 0x6EC1
+0x17721 0x6EC7
+0x17722 0x6ECE
+0x17723 0x6F10
+0x17724 0x6F1A
+0x17725 0xFA47
+0x17726 0x6F2A
+0x17727 0x6F2F
+0x17728 0x6F33
+0x17729 0x6F51
+0x1772A 0x6F59
+0x1772B 0x6F5E
+0x1772C 0x6F61
+0x1772D 0x6F62
+0x1772E 0x6F7E
+0x1772F 0x6F88
+0x17730 0x6F8C
+0x17731 0x6F8D
+0x17732 0x6F94
+0x17733 0x6FA0
+0x17734 0x6FA7
+0x17735 0x6FB6
+0x17736 0x6FBC
+0x17737 0x6FC7
+0x17738 0x6FCA
+0x17739 0x6FF9
+0x1773A 0x6FF0
+0x1773B 0x6FF5
+0x1773C 0x7005
+0x1773D 0x7006
+0x1773E 0x7028
+0x1773F 0x704A
+0x17740 0x705D
+0x17741 0x705E
+0x17742 0x704E
+0x17743 0x7064
+0x17744 0x7075
+0x17745 0x7085
+0x17746 0x70A4
+0x17747 0x70AB
+0x17748 0x70B7
+0x17749 0x70D4
+0x1774A 0x70D8
+0x1774B 0x70E4
+0x1774C 0x710F
+0x1774D 0x712B
+0x1774E 0x711E
+0x1774F 0x7120
+0x17750 0x712E
+0x17751 0x7130
+0x17752 0x7146
+0x17753 0x7147
+0x17754 0x7151
+0x17755 0xFA48
+0x17756 0x7152
+0x17757 0x715C
+0x17758 0x7160
+0x17759 0x7168
+0x1775A 0xFA15
+0x1775B 0x7185
+0x1775C 0x7187
+0x1775D 0x7192
+0x1775E 0x71C1
+0x1775F 0x71BA
+0x17760 0x71C4
+0x17761 0x71FE
+0x17762 0x7200
+0x17763 0x7215
+0x17764 0x7255
+0x17765 0x7256
+0x17766 0x3E3F
+0x17767 0x728D
+0x17768 0x729B
+0x17769 0x72BE
+0x1776A 0x72C0
+0x1776B 0x72FB
+0x1776C 0x247F1
+0x1776D 0x7327
+0x1776E 0x7328
+0x1776F 0xFA16
+0x17770 0x7350
+0x17771 0x7366
+0x17772 0x737C
+0x17773 0x7395
+0x17774 0x739F
+0x17775 0x73A0
+0x17776 0x73A2
+0x17777 0x73A6
+0x17778 0x73AB
+0x17779 0x73C9
+0x1777A 0x73CF
+0x1777B 0x73D6
+0x1777C 0x73D9
+0x1777D 0x73E3
+0x1777E 0x73E9
+0x17821 0x7407
+0x17822 0x740A
+0x17823 0x741A
+0x17824 0x741B
+0x17825 0xFA4A
+0x17826 0x7426
+0x17827 0x7428
+0x17828 0x742A
+0x17829 0x742B
+0x1782A 0x742C
+0x1782B 0x742E
+0x1782C 0x742F
+0x1782D 0x7430
+0x1782E 0x7444
+0x1782F 0x7446
+0x17830 0x7447
+0x17831 0x744B
+0x17832 0x7457
+0x17833 0x7462
+0x17834 0x746B
+0x17835 0x746D
+0x17836 0x7486
+0x17837 0x7487
+0x17838 0x7489
+0x17839 0x7498
+0x1783A 0x749C
+0x1783B 0x749F
+0x1783C 0x74A3
+0x1783D 0x7490
+0x1783E 0x74A6
+0x1783F 0x74A8
+0x17840 0x74A9
+0x17841 0x74B5
+0x17842 0x74BF
+0x17843 0x74C8
+0x17844 0x74C9
+0x17845 0x74DA
+0x17846 0x74FF
+0x17847 0x7501
+0x17848 0x7517
+0x17849 0x752F
+0x1784A 0x756F
+0x1784B 0x7579
+0x1784C 0x7592
+0x1784D 0x3F72
+0x1784E 0x75CE
+0x1784F 0x75E4
+0x17850 0x7600
+0x17851 0x7602
+0x17852 0x7608
+0x17853 0x7615
+0x17854 0x7616
+0x17855 0x7619
+0x17856 0x761E
+0x17857 0x762D
+0x17858 0x7635
+0x17859 0x7643
+0x1785A 0x764B
+0x1785B 0x7664
+0x1785C 0x7665
+0x1785D 0x766D
+0x1785E 0x766F
+0x1785F 0x7671
+0x17860 0x7681
+0x17861 0x769B
+0x17862 0x769D
+0x17863 0x769E
+0x17864 0x76A6
+0x17865 0x76AA
+0x17866 0x76B6
+0x17867 0x76C5
+0x17868 0x76CC
+0x17869 0x76CE
+0x1786A 0x76D4
+0x1786B 0x76E6
+0x1786C 0x76F1
+0x1786D 0x76FC
+0x1786E 0x770A
+0x1786F 0x7719
+0x17870 0x7734
+0x17871 0x7736
+0x17872 0x7746
+0x17873 0x774D
+0x17874 0x774E
+0x17875 0x775C
+0x17876 0x775F
+0x17877 0x7762
+0x17878 0x777A
+0x17879 0x7780
+0x1787A 0x7794
+0x1787B 0x77AA
+0x1787C 0x77E0
+0x1787D 0x782D
+0x1787E 0x2548E
+0x17921 0x7843
+0x17922 0x784E
+0x17923 0x784F
+0x17924 0x7851
+0x17925 0x7868
+0x17926 0x786E
+0x17927 0xFA4B
+0x17928 0x78B0
+0x17929 0x2550E
+0x1792A 0x78AD
+0x1792B 0x78E4
+0x1792C 0x78F2
+0x1792D 0x7900
+0x1792E 0x78F7
+0x1792F 0x791C
+0x17930 0x792E
+0x17931 0x7931
+0x17932 0x7934
+0x17933 0xFA4C
+0x17934 0xFA4D
+0x17935 0x7945
+0x17936 0x7946
+0x17937 0xFA4E
+0x17938 0xFA4F
+0x17939 0xFA50
+0x1793A 0x795C
+0x1793B 0xFA51
+0x1793C 0xFA19
+0x1793D 0xFA1A
+0x1793E 0x7979
+0x1793F 0xFA52
+0x17940 0xFA53
+0x17941 0xFA1B
+0x17942 0x7998
+0x17943 0x79B1
+0x17944 0x79B8
+0x17945 0x79C8
+0x17946 0x79CA
+0x17947 0x25771
+0x17948 0x79D4
+0x17949 0x79DE
+0x1794A 0x79EB
+0x1794B 0x79ED
+0x1794C 0x7A03
+0x1794D 0xFA54
+0x1794E 0x7A39
+0x1794F 0x7A5D
+0x17950 0x7A6D
+0x17951 0xFA55
+0x17952 0x7A85
+0x17953 0x7AA0
+0x17954 0x259C4
+0x17955 0x7AB3
+0x17956 0x7ABB
+0x17957 0x7ACE
+0x17958 0x7AEB
+0x17959 0x7AFD
+0x1795A 0x7B12
+0x1795B 0x7B2D
+0x1795C 0x7B3B
+0x1795D 0x7B47
+0x1795E 0x7B4E
+0x1795F 0x7B60
+0x17960 0x7B6D
+0x17961 0x7B6F
+0x17962 0x7B72
+0x17963 0x7B9E
+0x17964 0xFA56
+0x17965 0x7BD7
+0x17966 0x7BD9
+0x17967 0x7C01
+0x17968 0x7C31
+0x17969 0x7C1E
+0x1796A 0x7C20
+0x1796B 0x7C33
+0x1796C 0x7C36
+0x1796D 0x4264
+0x1796E 0x25DA1
+0x1796F 0x7C59
+0x17970 0x7C6D
+0x17971 0x7C79
+0x17972 0x7C8F
+0x17973 0x7C94
+0x17974 0x7CA0
+0x17975 0x7CBC
+0x17976 0x7CD5
+0x17977 0x7CD9
+0x17978 0x7CDD
+0x17979 0x7D07
+0x1797A 0x7D08
+0x1797B 0x7D13
+0x1797C 0x7D1D
+0x1797D 0x7D23
+0x1797E 0x7D31
+0x17A21 0x7D41
+0x17A22 0x7D48
+0x17A23 0x7D53
+0x17A24 0x7D5C
+0x17A25 0x7D7A
+0x17A26 0x7D83
+0x17A27 0x7D8B
+0x17A28 0x7DA0
+0x17A29 0x7DA6
+0x17A2A 0x7DC2
+0x17A2B 0x7DCC
+0x17A2C 0x7DD6
+0x17A2D 0x7DE3
+0x17A2E 0xFA57
+0x17A2F 0x7E28
+0x17A30 0x7E08
+0x17A31 0x7E11
+0x17A32 0x7E15
+0x17A33 0xFA59
+0x17A34 0x7E47
+0x17A35 0x7E52
+0x17A36 0x7E61
+0x17A37 0x7E8A
+0x17A38 0x7E8D
+0x17A39 0x7F47
+0x17A3A 0xFA5A
+0x17A3B 0x7F91
+0x17A3C 0x7F97
+0x17A3D 0x7FBF
+0x17A3E 0x7FCE
+0x17A3F 0x7FDB
+0x17A40 0x7FDF
+0x17A41 0x7FEC
+0x17A42 0x7FEE
+0x17A43 0x7FFA
+0x17A44 0xFA5B
+0x17A45 0x8014
+0x17A46 0x8026
+0x17A47 0x8035
+0x17A48 0x8037
+0x17A49 0x803C
+0x17A4A 0x80CA
+0x17A4B 0x80D7
+0x17A4C 0x80E0
+0x17A4D 0x80F3
+0x17A4E 0x8118
+0x17A4F 0x814A
+0x17A50 0x8160
+0x17A51 0x8167
+0x17A52 0x8168
+0x17A53 0x816D
+0x17A54 0x81BB
+0x17A55 0x81CA
+0x17A56 0x81CF
+0x17A57 0x81D7
+0x17A58 0xFA5C
+0x17A59 0x4453
+0x17A5A 0x445B
+0x17A5B 0x8260
+0x17A5C 0x8274
+0x17A5D 0x26AFF
+0x17A5E 0x828E
+0x17A5F 0x82A1
+0x17A60 0x82A3
+0x17A61 0x82A4
+0x17A62 0x82A9
+0x17A63 0x82AE
+0x17A64 0x82B7
+0x17A65 0x82BE
+0x17A66 0x82BF
+0x17A67 0x82C6
+0x17A68 0x82D5
+0x17A69 0x82FD
+0x17A6A 0x82FE
+0x17A6B 0x8300
+0x17A6C 0x8301
+0x17A6D 0x8362
+0x17A6E 0x8322
+0x17A6F 0x832D
+0x17A70 0x833A
+0x17A71 0x8343
+0x17A72 0x8347
+0x17A73 0x8351
+0x17A74 0x8355
+0x17A75 0x837D
+0x17A76 0x8386
+0x17A77 0x8392
+0x17A78 0x8398
+0x17A79 0x83A7
+0x17A7A 0x83A9
+0x17A7B 0x83BF
+0x17A7C 0x83C0
+0x17A7D 0x83C7
+0x17A7E 0x83CF
+0x17B21 0x83D1
+0x17B22 0x83E1
+0x17B23 0x83EA
+0x17B24 0x8401
+0x17B25 0x8406
+0x17B26 0x840A
+0x17B27 0xFA5F
+0x17B28 0x8448
+0x17B29 0x845F
+0x17B2A 0x8470
+0x17B2B 0x8473
+0x17B2C 0x8485
+0x17B2D 0x849E
+0x17B2E 0x84AF
+0x17B2F 0x84B4
+0x17B30 0x84BA
+0x17B31 0x84C0
+0x17B32 0x84C2
+0x17B33 0x26E40
+0x17B34 0x8532
+0x17B35 0x851E
+0x17B36 0x8523
+0x17B37 0x852F
+0x17B38 0x8559
+0x17B39 0x8564
+0x17B3A 0xFA1F
+0x17B3B 0x85AD
+0x17B3C 0x857A
+0x17B3D 0x858C
+0x17B3E 0x858F
+0x17B3F 0x85A2
+0x17B40 0x85B0
+0x17B41 0x85CB
+0x17B42 0x85CE
+0x17B43 0x85ED
+0x17B44 0x8612
+0x17B45 0x85FF
+0x17B46 0x8604
+0x17B47 0x8605
+0x17B48 0x8610
+0x17B49 0x270F4
+0x17B4A 0x8618
+0x17B4B 0x8629
+0x17B4C 0x8638
+0x17B4D 0x8657
+0x17B4E 0x865B
+0x17B4F 0xF936
+0x17B50 0x8662
+0x17B51 0x459D
+0x17B52 0x866C
+0x17B53 0x8675
+0x17B54 0x8698
+0x17B55 0x86B8
+0x17B56 0x86FA
+0x17B57 0x86FC
+0x17B58 0x86FD
+0x17B59 0x870B
+0x17B5A 0x8771
+0x17B5B 0x8787
+0x17B5C 0x8788
+0x17B5D 0x87AC
+0x17B5E 0x87AD
+0x17B5F 0x87B5
+0x17B60 0x45EA
+0x17B61 0x87D6
+0x17B62 0x87EC
+0x17B63 0x8806
+0x17B64 0x880A
+0x17B65 0x8810
+0x17B66 0x8814
+0x17B67 0x881F
+0x17B68 0x8898
+0x17B69 0x88AA
+0x17B6A 0x88CA
+0x17B6B 0x88CE
+0x17B6C 0x27684
+0x17B6D 0x88F5
+0x17B6E 0x891C
+0x17B6F 0xFA60
+0x17B70 0x8918
+0x17B71 0x8919
+0x17B72 0x891A
+0x17B73 0x8927
+0x17B74 0x8930
+0x17B75 0x8932
+0x17B76 0x8939
+0x17B77 0x8940
+0x17B78 0x8994
+0x17B79 0xFA61
+0x17B7A 0x89D4
+0x17B7B 0x89E5
+0x17B7C 0x89F6
+0x17B7D 0x8A12
+0x17B7E 0x8A15
+0x17C21 0x8A22
+0x17C22 0x8A37
+0x17C23 0x8A47
+0x17C24 0x8A4E
+0x17C25 0x8A5D
+0x17C26 0x8A61
+0x17C27 0x8A75
+0x17C28 0x8A79
+0x17C29 0x8AA7
+0x17C2A 0x8AD0
+0x17C2B 0x8ADF
+0x17C2C 0x8AF4
+0x17C2D 0x8AF6
+0x17C2E 0xFA22
+0x17C2F 0xFA62
+0x17C30 0xFA63
+0x17C31 0x8B46
+0x17C32 0x8B54
+0x17C33 0x8B59
+0x17C34 0x8B69
+0x17C35 0x8B9D
+0x17C36 0x8C49
+0x17C37 0x8C68
+0x17C38 0xFA64
+0x17C39 0x8CE1
+0x17C3A 0x8CF4
+0x17C3B 0x8CF8
+0x17C3C 0x8CFE
+0x17C3D 0xFA65
+0x17C3E 0x8D12
+0x17C3F 0x8D1B
+0x17C40 0x8DAF
+0x17C41 0x8DCE
+0x17C42 0x8DD1
+0x17C43 0x8DD7
+0x17C44 0x8E20
+0x17C45 0x8E23
+0x17C46 0x8E3D
+0x17C47 0x8E70
+0x17C48 0x8E7B
+0x17C49 0x28277
+0x17C4A 0x8EC0
+0x17C4B 0x4844
+0x17C4C 0x8EFA
+0x17C4D 0x8F1E
+0x17C4E 0x8F2D
+0x17C4F 0x8F36
+0x17C50 0x8F54
+0x17C51 0x283CD
+0x17C52 0x8FA6
+0x17C53 0x8FB5
+0x17C54 0x8FE4
+0x17C55 0x8FE8
+0x17C56 0x8FEE
+0x17C57 0x9008
+0x17C58 0x902D
+0x17C59 0xFA67
+0x17C5A 0x9088
+0x17C5B 0x9095
+0x17C5C 0x9097
+0x17C5D 0x9099
+0x17C5E 0x909B
+0x17C5F 0x90A2
+0x17C60 0x90B3
+0x17C61 0x90BE
+0x17C62 0x90C4
+0x17C63 0x90C5
+0x17C64 0x90C7
+0x17C65 0x90D7
+0x17C66 0x90DD
+0x17C67 0x90DE
+0x17C68 0x90EF
+0x17C69 0x90F4
+0x17C6A 0xFA26
+0x17C6B 0x9114
+0x17C6C 0x9115
+0x17C6D 0x9116
+0x17C6E 0x9122
+0x17C6F 0x9123
+0x17C70 0x9127
+0x17C71 0x912F
+0x17C72 0x9131
+0x17C73 0x9134
+0x17C74 0x913D
+0x17C75 0x9148
+0x17C76 0x915B
+0x17C77 0x9183
+0x17C78 0x919E
+0x17C79 0x91AC
+0x17C7A 0x91B1
+0x17C7B 0x91BC
+0x17C7C 0x91D7
+0x17C7D 0x91FB
+0x17C7E 0x91E4
+0x17D21 0x91E5
+0x17D22 0x91ED
+0x17D23 0x91F1
+0x17D24 0x9207
+0x17D25 0x9210
+0x17D26 0x9238
+0x17D27 0x9239
+0x17D28 0x923A
+0x17D29 0x923C
+0x17D2A 0x9240
+0x17D2B 0x9243
+0x17D2C 0x924F
+0x17D2D 0x9278
+0x17D2E 0x9288
+0x17D2F 0x92C2
+0x17D30 0x92CB
+0x17D31 0x92CC
+0x17D32 0x92D3
+0x17D33 0x92E0
+0x17D34 0x92FF
+0x17D35 0x9304
+0x17D36 0x931F
+0x17D37 0x9321
+0x17D38 0x9325
+0x17D39 0x9348
+0x17D3A 0x9349
+0x17D3B 0x934A
+0x17D3C 0x9364
+0x17D3D 0x9365
+0x17D3E 0x936A
+0x17D3F 0x9370
+0x17D40 0x939B
+0x17D41 0x93A3
+0x17D42 0x93BA
+0x17D43 0x93C6
+0x17D44 0x93DE
+0x17D45 0x93DF
+0x17D46 0x9404
+0x17D47 0x93FD
+0x17D48 0x9433
+0x17D49 0x944A
+0x17D4A 0x9463
+0x17D4B 0x946B
+0x17D4C 0x9471
+0x17D4D 0x9472
+0x17D4E 0x958E
+0x17D4F 0x959F
+0x17D50 0x95A6
+0x17D51 0x95A9
+0x17D52 0x95AC
+0x17D53 0x95B6
+0x17D54 0x95BD
+0x17D55 0x95CB
+0x17D56 0x95D0
+0x17D57 0x95D3
+0x17D58 0x49B0
+0x17D59 0x95DA
+0x17D5A 0x95DE
+0x17D5B 0x9658
+0x17D5C 0x9684
+0x17D5D 0xF9DC
+0x17D5E 0x969D
+0x17D5F 0x96A4
+0x17D60 0x96A5
+0x17D61 0x96D2
+0x17D62 0x96DE
+0x17D63 0xFA68
+0x17D64 0x96E9
+0x17D65 0x96EF
+0x17D66 0x9733
+0x17D67 0x973B
+0x17D68 0x974D
+0x17D69 0x974E
+0x17D6A 0x974F
+0x17D6B 0x975A
+0x17D6C 0x976E
+0x17D6D 0x9773
+0x17D6E 0x9795
+0x17D6F 0x97AE
+0x17D70 0x97BA
+0x17D71 0x97C1
+0x17D72 0x97C9
+0x17D73 0x97DE
+0x17D74 0x97DB
+0x17D75 0x97F4
+0x17D76 0xFA69
+0x17D77 0x980A
+0x17D78 0x981E
+0x17D79 0x982B
+0x17D7A 0x9830
+0x17D7B 0xFA6A
+0x17D7C 0x9852
+0x17D7D 0x9853
+0x17D7E 0x9856
+0x17E21 0x9857
+0x17E22 0x9859
+0x17E23 0x985A
+0x17E24 0xF9D0
+0x17E25 0x9865
+0x17E26 0x986C
+0x17E27 0x98BA
+0x17E28 0x98C8
+0x17E29 0x98E7
+0x17E2A 0x9958
+0x17E2B 0x999E
+0x17E2C 0x9A02
+0x17E2D 0x9A03
+0x17E2E 0x9A24
+0x17E2F 0x9A2D
+0x17E30 0x9A2E
+0x17E31 0x9A38
+0x17E32 0x9A4A
+0x17E33 0x9A4E
+0x17E34 0x9A52
+0x17E35 0x9AB6
+0x17E36 0x9AC1
+0x17E37 0x9AC3
+0x17E38 0x9ACE
+0x17E39 0x9AD6
+0x17E3A 0x9AF9
+0x17E3B 0x9B02
+0x17E3C 0x9B08
+0x17E3D 0x9B20
+0x17E3E 0x4C17
+0x17E3F 0x9B2D
+0x17E40 0x9B5E
+0x17E41 0x9B79
+0x17E42 0x9B66
+0x17E43 0x9B72
+0x17E44 0x9B75
+0x17E45 0x9B84
+0x17E46 0x9B8A
+0x17E47 0x9B8F
+0x17E48 0x9B9E
+0x17E49 0x9BA7
+0x17E4A 0x9BC1
+0x17E4B 0x9BCE
+0x17E4C 0x9BE5
+0x17E4D 0x9BF8
+0x17E4E 0x9BFD
+0x17E4F 0x9C00
+0x17E50 0x9C23
+0x17E51 0x9C41
+0x17E52 0x9C4F
+0x17E53 0x9C50
+0x17E54 0x9C53
+0x17E55 0x9C63
+0x17E56 0x9C65
+0x17E57 0x9C77
+0x17E58 0x9D1D
+0x17E59 0x9D1E
+0x17E5A 0x9D43
+0x17E5B 0x9D47
+0x17E5C 0x9D52
+0x17E5D 0x9D63
+0x17E5E 0x9D70
+0x17E5F 0x9D7C
+0x17E60 0x9D8A
+0x17E61 0x9D96
+0x17E62 0x9DC0
+0x17E63 0x9DAC
+0x17E64 0x9DBC
+0x17E65 0x9DD7
+0x17E66 0x2A190
+0x17E67 0x9DE7
+0x17E68 0x9E07
+0x17E69 0x9E15
+0x17E6A 0x9E7C
+0x17E6B 0x9E9E
+0x17E6C 0x9EA4
+0x17E6D 0x9EAC
+0x17E6E 0x9EAF
+0x17E6F 0x9EB4
+0x17E70 0x9EB5
+0x17E71 0x9EC3
+0x17E72 0x9ED1
+0x17E73 0x9F10
+0x17E74 0x9F39
+0x17E75 0x9F57
+0x17E76 0x9F90
+0x17E77 0x9F94
+0x17E78 0x9F97
+0x17E79 0x9FA2
+0x17E7A 0x59F8
+0x17E7B 0x5C5B
+0x17E7C 0x5E77
+0x17E7D 0x7626
+0x17E7E 0x7E6B
+0x22121 0x20089
+0x22122 0x4E02
+0x22123 0x4E0F
+0x22124 0x4E12
+0x22125 0x4E29
+0x22126 0x4E2B
+0x22127 0x4E2E
+0x22128 0x4E40
+0x22129 0x4E47
+0x2212A 0x4E48
+0x2212B 0x200A2
+0x2212C 0x4E51
+0x2212D 0x3406
+0x2212E 0x200A4
+0x2212F 0x4E5A
+0x22130 0x4E69
+0x22131 0x4E9D
+0x22132 0x342C
+0x22133 0x342E
+0x22134 0x4EB9
+0x22135 0x4EBB
+0x22136 0x201A2
+0x22137 0x4EBC
+0x22138 0x4EC3
+0x22139 0x4EC8
+0x2213A 0x4ED0
+0x2213B 0x4EEB
+0x2213C 0x4EDA
+0x2213D 0x4EF1
+0x2213E 0x4EF5
+0x2213F 0x4F00
+0x22140 0x4F16
+0x22141 0x4F64
+0x22142 0x4F37
+0x22143 0x4F3E
+0x22144 0x4F54
+0x22145 0x4F58
+0x22146 0x20213
+0x22147 0x4F77
+0x22148 0x4F78
+0x22149 0x4F7A
+0x2214A 0x4F7D
+0x2214B 0x4F82
+0x2214C 0x4F85
+0x2214D 0x4F92
+0x2214E 0x4F9A
+0x2214F 0x4FE6
+0x22150 0x4FB2
+0x22151 0x4FBE
+0x22152 0x4FC5
+0x22153 0x4FCB
+0x22154 0x4FCF
+0x22155 0x4FD2
+0x22156 0x346A
+0x22157 0x4FF2
+0x22158 0x5000
+0x22159 0x5010
+0x2215A 0x5013
+0x2215B 0x501C
+0x2215C 0x501E
+0x2215D 0x5022
+0x2215E 0x3468
+0x2215F 0x5042
+0x22160 0x5046
+0x22161 0x504E
+0x22162 0x5053
+0x22163 0x5057
+0x22164 0x5063
+0x22165 0x5066
+0x22166 0x506A
+0x22167 0x5070
+0x22168 0x50A3
+0x22169 0x5088
+0x2216A 0x5092
+0x2216B 0x5093
+0x2216C 0x5095
+0x2216D 0x5096
+0x2216E 0x509C
+0x2216F 0x50AA
+0x22170 0x2032B
+0x22171 0x50B1
+0x22172 0x50BA
+0x22173 0x50BB
+0x22174 0x50C4
+0x22175 0x50C7
+0x22176 0x50F3
+0x22177 0x20381
+0x22178 0x50CE
+0x22179 0x20371
+0x2217A 0x50D4
+0x2217B 0x50D9
+0x2217C 0x50E1
+0x2217D 0x50E9
+0x2217E 0x3492
+0x22321 0x5108
+0x22322 0x203F9
+0x22323 0x5117
+0x22324 0x511B
+0x22325 0x2044A
+0x22326 0x5160
+0x22327 0x20509
+0x22328 0x5173
+0x22329 0x5183
+0x2232A 0x518B
+0x2232B 0x34BC
+0x2232C 0x5198
+0x2232D 0x51A3
+0x2232E 0x51AD
+0x2232F 0x34C7
+0x22330 0x51BC
+0x22331 0x205D6
+0x22332 0x20628
+0x22333 0x51F3
+0x22334 0x51F4
+0x22335 0x5202
+0x22336 0x5212
+0x22337 0x5216
+0x22338 0x2074F
+0x22339 0x5255
+0x2233A 0x525C
+0x2233B 0x526C
+0x2233C 0x5277
+0x2233D 0x5284
+0x2233E 0x5282
+0x2233F 0x20807
+0x22340 0x5298
+0x22341 0x2083A
+0x22342 0x52A4
+0x22343 0x52A6
+0x22344 0x52AF
+0x22345 0x52BA
+0x22346 0x52BB
+0x22347 0x52CA
+0x22348 0x351F
+0x22349 0x52D1
+0x2234A 0x208B9
+0x2234B 0x52F7
+0x2234C 0x530A
+0x2234D 0x530B
+0x2234E 0x5324
+0x2234F 0x5335
+0x22350 0x533E
+0x22351 0x5342
+0x22352 0x2097C
+0x22353 0x2099D
+0x22354 0x5367
+0x22355 0x536C
+0x22356 0x537A
+0x22357 0x53A4
+0x22358 0x53B4
+0x22359 0x20AD3
+0x2235A 0x53B7
+0x2235B 0x53C0
+0x2235C 0x20B1D
+0x2235D 0x355D
+0x2235E 0x355E
+0x2235F 0x53D5
+0x22360 0x53DA
+0x22361 0x3563
+0x22362 0x53F4
+0x22363 0x53F5
+0x22364 0x5455
+0x22365 0x5424
+0x22366 0x5428
+0x22367 0x356E
+0x22368 0x5443
+0x22369 0x5462
+0x2236A 0x5466
+0x2236B 0x546C
+0x2236C 0x548A
+0x2236D 0x548D
+0x2236E 0x5495
+0x2236F 0x54A0
+0x22370 0x54A6
+0x22371 0x54AD
+0x22372 0x54AE
+0x22373 0x54B7
+0x22374 0x54BA
+0x22375 0x54BF
+0x22376 0x54C3
+0x22377 0x20D45
+0x22378 0x54EC
+0x22379 0x54EF
+0x2237A 0x54F1
+0x2237B 0x54F3
+0x2237C 0x5500
+0x2237D 0x5501
+0x2237E 0x5509
+0x22421 0x553C
+0x22422 0x5541
+0x22423 0x35A6
+0x22424 0x5547
+0x22425 0x554A
+0x22426 0x35A8
+0x22427 0x5560
+0x22428 0x5561
+0x22429 0x5564
+0x2242A 0x20DE1
+0x2242B 0x557D
+0x2242C 0x5582
+0x2242D 0x5588
+0x2242E 0x5591
+0x2242F 0x35C5
+0x22430 0x55D2
+0x22431 0x20E95
+0x22432 0x20E6D
+0x22433 0x55BF
+0x22434 0x55C9
+0x22435 0x55CC
+0x22436 0x55D1
+0x22437 0x55DD
+0x22438 0x35DA
+0x22439 0x55E2
+0x2243A 0x20E64
+0x2243B 0x55E9
+0x2243C 0x5628
+0x2243D 0x20F5F
+0x2243E 0x5607
+0x2243F 0x5610
+0x22440 0x5630
+0x22441 0x5637
+0x22442 0x35F4
+0x22443 0x563D
+0x22444 0x563F
+0x22445 0x5640
+0x22446 0x5647
+0x22447 0x565E
+0x22448 0x5660
+0x22449 0x566D
+0x2244A 0x3605
+0x2244B 0x5688
+0x2244C 0x568C
+0x2244D 0x5695
+0x2244E 0x569A
+0x2244F 0x569D
+0x22450 0x56A8
+0x22451 0x56AD
+0x22452 0x56B2
+0x22453 0x56C5
+0x22454 0x56CD
+0x22455 0x56DF
+0x22456 0x56E8
+0x22457 0x56F6
+0x22458 0x56F7
+0x22459 0x21201
+0x2245A 0x5715
+0x2245B 0x5723
+0x2245C 0x21255
+0x2245D 0x5729
+0x2245E 0x2127B
+0x2245F 0x5745
+0x22460 0x5746
+0x22461 0x574C
+0x22462 0x574D
+0x22463 0x21274
+0x22464 0x5768
+0x22465 0x576F
+0x22466 0x5773
+0x22467 0x5774
+0x22468 0x5775
+0x22469 0x577B
+0x2246A 0x212E4
+0x2246B 0x212D7
+0x2246C 0x57AC
+0x2246D 0x579A
+0x2246E 0x579D
+0x2246F 0x579E
+0x22470 0x57A8
+0x22471 0x57D7
+0x22472 0x212FD
+0x22473 0x57CC
+0x22474 0x21336
+0x22475 0x21344
+0x22476 0x57DE
+0x22477 0x57E6
+0x22478 0x57F0
+0x22479 0x364A
+0x2247A 0x57F8
+0x2247B 0x57FB
+0x2247C 0x57FD
+0x2247D 0x5804
+0x2247E 0x581E
+0x22521 0x5820
+0x22522 0x5827
+0x22523 0x5832
+0x22524 0x5839
+0x22525 0x213C4
+0x22526 0x5849
+0x22527 0x584C
+0x22528 0x5867
+0x22529 0x588A
+0x2252A 0x588B
+0x2252B 0x588D
+0x2252C 0x588F
+0x2252D 0x5890
+0x2252E 0x5894
+0x2252F 0x589D
+0x22530 0x58AA
+0x22531 0x58B1
+0x22532 0x2146D
+0x22533 0x58C3
+0x22534 0x58CD
+0x22535 0x58E2
+0x22536 0x58F3
+0x22537 0x58F4
+0x22538 0x5905
+0x22539 0x5906
+0x2253A 0x590B
+0x2253B 0x590D
+0x2253C 0x5914
+0x2253D 0x5924
+0x2253E 0x215D7
+0x2253F 0x3691
+0x22540 0x593D
+0x22541 0x3699
+0x22542 0x5946
+0x22543 0x3696
+0x22544 0x26C29
+0x22545 0x595B
+0x22546 0x595F
+0x22547 0x21647
+0x22548 0x5975
+0x22549 0x5976
+0x2254A 0x597C
+0x2254B 0x599F
+0x2254C 0x59AE
+0x2254D 0x59BC
+0x2254E 0x59C8
+0x2254F 0x59CD
+0x22550 0x59DE
+0x22551 0x59E3
+0x22552 0x59E4
+0x22553 0x59E7
+0x22554 0x59EE
+0x22555 0x21706
+0x22556 0x21742
+0x22557 0x36CF
+0x22558 0x5A0C
+0x22559 0x5A0D
+0x2255A 0x5A17
+0x2255B 0x5A27
+0x2255C 0x5A2D
+0x2255D 0x5A55
+0x2255E 0x5A65
+0x2255F 0x5A7A
+0x22560 0x5A8B
+0x22561 0x5A9C
+0x22562 0x5A9F
+0x22563 0x5AA0
+0x22564 0x5AA2
+0x22565 0x5AB1
+0x22566 0x5AB3
+0x22567 0x5AB5
+0x22568 0x5ABA
+0x22569 0x5ABF
+0x2256A 0x5ADA
+0x2256B 0x5ADC
+0x2256C 0x5AE0
+0x2256D 0x5AE5
+0x2256E 0x5AF0
+0x2256F 0x5AEE
+0x22570 0x5AF5
+0x22571 0x5B00
+0x22572 0x5B08
+0x22573 0x5B17
+0x22574 0x5B34
+0x22575 0x5B2D
+0x22576 0x5B4C
+0x22577 0x5B52
+0x22578 0x5B68
+0x22579 0x5B6F
+0x2257A 0x5B7C
+0x2257B 0x5B7F
+0x2257C 0x5B81
+0x2257D 0x5B84
+0x2257E 0x219C3
+0x22821 0x5B96
+0x22822 0x5BAC
+0x22823 0x3761
+0x22824 0x5BC0
+0x22825 0x3762
+0x22826 0x5BCE
+0x22827 0x5BD6
+0x22828 0x376C
+0x22829 0x376B
+0x2282A 0x5BF1
+0x2282B 0x5BFD
+0x2282C 0x3775
+0x2282D 0x5C03
+0x2282E 0x5C29
+0x2282F 0x5C30
+0x22830 0x21C56
+0x22831 0x5C5F
+0x22832 0x5C63
+0x22833 0x5C67
+0x22834 0x5C68
+0x22835 0x5C69
+0x22836 0x5C70
+0x22837 0x21D2D
+0x22838 0x21D45
+0x22839 0x5C7C
+0x2283A 0x21D78
+0x2283B 0x21D62
+0x2283C 0x5C88
+0x2283D 0x5C8A
+0x2283E 0x37C1
+0x2283F 0x21DA1
+0x22840 0x21D9C
+0x22841 0x5CA0
+0x22842 0x5CA2
+0x22843 0x5CA6
+0x22844 0x5CA7
+0x22845 0x21D92
+0x22846 0x5CAD
+0x22847 0x5CB5
+0x22848 0x21DB7
+0x22849 0x5CC9
+0x2284A 0x21DE0
+0x2284B 0x21E33
+0x2284C 0x5D06
+0x2284D 0x5D10
+0x2284E 0x5D2B
+0x2284F 0x5D1D
+0x22850 0x5D20
+0x22851 0x5D24
+0x22852 0x5D26
+0x22853 0x5D31
+0x22854 0x5D39
+0x22855 0x5D42
+0x22856 0x37E8
+0x22857 0x5D61
+0x22858 0x5D6A
+0x22859 0x37F4
+0x2285A 0x5D70
+0x2285B 0x21F1E
+0x2285C 0x37FD
+0x2285D 0x5D88
+0x2285E 0x3800
+0x2285F 0x5D92
+0x22860 0x5D94
+0x22861 0x5D97
+0x22862 0x5D99
+0x22863 0x5DB0
+0x22864 0x5DB2
+0x22865 0x5DB4
+0x22866 0x21F76
+0x22867 0x5DB9
+0x22868 0x5DD1
+0x22869 0x5DD7
+0x2286A 0x5DD8
+0x2286B 0x5DE0
+0x2286C 0x21FFA
+0x2286D 0x5DE4
+0x2286E 0x5DE9
+0x2286F 0x382F
+0x22870 0x5E00
+0x22871 0x3836
+0x22872 0x5E12
+0x22873 0x5E15
+0x22874 0x3840
+0x22875 0x5E1F
+0x22876 0x5E2E
+0x22877 0x5E3E
+0x22878 0x5E49
+0x22879 0x385C
+0x2287A 0x5E56
+0x2287B 0x3861
+0x2287C 0x5E6B
+0x2287D 0x5E6C
+0x2287E 0x5E6D
+0x22C21 0x5E6E
+0x22C22 0x2217B
+0x22C23 0x5EA5
+0x22C24 0x5EAA
+0x22C25 0x5EAC
+0x22C26 0x5EB9
+0x22C27 0x5EBF
+0x22C28 0x5EC6
+0x22C29 0x5ED2
+0x22C2A 0x5ED9
+0x22C2B 0x2231E
+0x22C2C 0x5EFD
+0x22C2D 0x5F08
+0x22C2E 0x5F0E
+0x22C2F 0x5F1C
+0x22C30 0x223AD
+0x22C31 0x5F1E
+0x22C32 0x5F47
+0x22C33 0x5F63
+0x22C34 0x5F72
+0x22C35 0x5F7E
+0x22C36 0x5F8F
+0x22C37 0x5FA2
+0x22C38 0x5FA4
+0x22C39 0x5FB8
+0x22C3A 0x5FC4
+0x22C3B 0x38FA
+0x22C3C 0x5FC7
+0x22C3D 0x5FCB
+0x22C3E 0x5FD2
+0x22C3F 0x5FD3
+0x22C40 0x5FD4
+0x22C41 0x5FE2
+0x22C42 0x5FEE
+0x22C43 0x5FEF
+0x22C44 0x5FF3
+0x22C45 0x5FFC
+0x22C46 0x3917
+0x22C47 0x6017
+0x22C48 0x6022
+0x22C49 0x6024
+0x22C4A 0x391A
+0x22C4B 0x604C
+0x22C4C 0x607F
+0x22C4D 0x608A
+0x22C4E 0x6095
+0x22C4F 0x60A8
+0x22C50 0x226F3
+0x22C51 0x60B0
+0x22C52 0x60B1
+0x22C53 0x60BE
+0x22C54 0x60C8
+0x22C55 0x60D9
+0x22C56 0x60DB
+0x22C57 0x60EE
+0x22C58 0x60F2
+0x22C59 0x60F5
+0x22C5A 0x6110
+0x22C5B 0x6112
+0x22C5C 0x6113
+0x22C5D 0x6119
+0x22C5E 0x611E
+0x22C5F 0x613A
+0x22C60 0x396F
+0x22C61 0x6141
+0x22C62 0x6146
+0x22C63 0x6160
+0x22C64 0x617C
+0x22C65 0x2285B
+0x22C66 0x6192
+0x22C67 0x6193
+0x22C68 0x6197
+0x22C69 0x6198
+0x22C6A 0x61A5
+0x22C6B 0x61A8
+0x22C6C 0x61AD
+0x22C6D 0x228AB
+0x22C6E 0x61D5
+0x22C6F 0x61DD
+0x22C70 0x61DF
+0x22C71 0x61F5
+0x22C72 0x2298F
+0x22C73 0x6215
+0x22C74 0x6223
+0x22C75 0x6229
+0x22C76 0x6246
+0x22C77 0x624C
+0x22C78 0x6251
+0x22C79 0x6252
+0x22C7A 0x6261
+0x22C7B 0x6264
+0x22C7C 0x627B
+0x22C7D 0x626D
+0x22C7E 0x6273
+0x22D21 0x6299
+0x22D22 0x62A6
+0x22D23 0x62D5
+0x22D24 0x22AB8
+0x22D25 0x62FD
+0x22D26 0x6303
+0x22D27 0x630D
+0x22D28 0x6310
+0x22D29 0x22B4F
+0x22D2A 0x22B50
+0x22D2B 0x6332
+0x22D2C 0x6335
+0x22D2D 0x633B
+0x22D2E 0x633C
+0x22D2F 0x6341
+0x22D30 0x6344
+0x22D31 0x634E
+0x22D32 0x22B46
+0x22D33 0x6359
+0x22D34 0x22C1D
+0x22D35 0x22BA6
+0x22D36 0x636C
+0x22D37 0x6384
+0x22D38 0x6399
+0x22D39 0x22C24
+0x22D3A 0x6394
+0x22D3B 0x63BD
+0x22D3C 0x63F7
+0x22D3D 0x63D4
+0x22D3E 0x63D5
+0x22D3F 0x63DC
+0x22D40 0x63E0
+0x22D41 0x63EB
+0x22D42 0x63EC
+0x22D43 0x63F2
+0x22D44 0x6409
+0x22D45 0x641E
+0x22D46 0x6425
+0x22D47 0x6429
+0x22D48 0x642F
+0x22D49 0x645A
+0x22D4A 0x645B
+0x22D4B 0x645D
+0x22D4C 0x6473
+0x22D4D 0x647D
+0x22D4E 0x6487
+0x22D4F 0x6491
+0x22D50 0x649D
+0x22D51 0x649F
+0x22D52 0x64CB
+0x22D53 0x64CC
+0x22D54 0x64D5
+0x22D55 0x64D7
+0x22D56 0x22DE1
+0x22D57 0x64E4
+0x22D58 0x64E5
+0x22D59 0x64FF
+0x22D5A 0x6504
+0x22D5B 0x3A6E
+0x22D5C 0x650F
+0x22D5D 0x6514
+0x22D5E 0x6516
+0x22D5F 0x3A73
+0x22D60 0x651E
+0x22D61 0x6532
+0x22D62 0x6544
+0x22D63 0x6554
+0x22D64 0x656B
+0x22D65 0x657A
+0x22D66 0x6581
+0x22D67 0x6584
+0x22D68 0x6585
+0x22D69 0x658A
+0x22D6A 0x65B2
+0x22D6B 0x65B5
+0x22D6C 0x65B8
+0x22D6D 0x65BF
+0x22D6E 0x65C2
+0x22D6F 0x65C9
+0x22D70 0x65D4
+0x22D71 0x3AD6
+0x22D72 0x65F2
+0x22D73 0x65F9
+0x22D74 0x65FC
+0x22D75 0x6604
+0x22D76 0x6608
+0x22D77 0x6621
+0x22D78 0x662A
+0x22D79 0x6645
+0x22D7A 0x6651
+0x22D7B 0x664E
+0x22D7C 0x3AEA
+0x22D7D 0x231C3
+0x22D7E 0x6657
+0x22E21 0x665B
+0x22E22 0x6663
+0x22E23 0x231F5
+0x22E24 0x231B6
+0x22E25 0x666A
+0x22E26 0x666B
+0x22E27 0x666C
+0x22E28 0x666D
+0x22E29 0x667B
+0x22E2A 0x6680
+0x22E2B 0x6690
+0x22E2C 0x6692
+0x22E2D 0x6699
+0x22E2E 0x3B0E
+0x22E2F 0x66AD
+0x22E30 0x66B1
+0x22E31 0x66B5
+0x22E32 0x3B1A
+0x22E33 0x66BF
+0x22E34 0x3B1C
+0x22E35 0x66EC
+0x22E36 0x3AD7
+0x22E37 0x6701
+0x22E38 0x6705
+0x22E39 0x6712
+0x22E3A 0x23372
+0x22E3B 0x6719
+0x22E3C 0x233D3
+0x22E3D 0x233D2
+0x22E3E 0x674C
+0x22E3F 0x674D
+0x22E40 0x6754
+0x22E41 0x675D
+0x22E42 0x233D0
+0x22E43 0x233E4
+0x22E44 0x233D5
+0x22E45 0x6774
+0x22E46 0x6776
+0x22E47 0x233DA
+0x22E48 0x6792
+0x22E49 0x233DF
+0x22E4A 0x8363
+0x22E4B 0x6810
+0x22E4C 0x67B0
+0x22E4D 0x67B2
+0x22E4E 0x67C3
+0x22E4F 0x67C8
+0x22E50 0x67D2
+0x22E51 0x67D9
+0x22E52 0x67DB
+0x22E53 0x67F0
+0x22E54 0x67F7
+0x22E55 0x2344A
+0x22E56 0x23451
+0x22E57 0x2344B
+0x22E58 0x6818
+0x22E59 0x681F
+0x22E5A 0x682D
+0x22E5B 0x23465
+0x22E5C 0x6833
+0x22E5D 0x683B
+0x22E5E 0x683E
+0x22E5F 0x6844
+0x22E60 0x6845
+0x22E61 0x6849
+0x22E62 0x684C
+0x22E63 0x6855
+0x22E64 0x6857
+0x22E65 0x3B77
+0x22E66 0x686B
+0x22E67 0x686E
+0x22E68 0x687A
+0x22E69 0x687C
+0x22E6A 0x6882
+0x22E6B 0x6890
+0x22E6C 0x6896
+0x22E6D 0x3B6D
+0x22E6E 0x6898
+0x22E6F 0x6899
+0x22E70 0x689A
+0x22E71 0x689C
+0x22E72 0x68AA
+0x22E73 0x68AB
+0x22E74 0x68B4
+0x22E75 0x68BB
+0x22E76 0x68FB
+0x22E77 0x234E4
+0x22E78 0x2355A
+0x22E79 0xFA13
+0x22E7A 0x68C3
+0x22E7B 0x68C5
+0x22E7C 0x68CC
+0x22E7D 0x68CF
+0x22E7E 0x68D6
+0x22F21 0x68D9
+0x22F22 0x68E4
+0x22F23 0x68E5
+0x22F24 0x68EC
+0x22F25 0x68F7
+0x22F26 0x6903
+0x22F27 0x6907
+0x22F28 0x3B87
+0x22F29 0x3B88
+0x22F2A 0x23594
+0x22F2B 0x693B
+0x22F2C 0x3B8D
+0x22F2D 0x6946
+0x22F2E 0x6969
+0x22F2F 0x696C
+0x22F30 0x6972
+0x22F31 0x697A
+0x22F32 0x697F
+0x22F33 0x6992
+0x22F34 0x3BA4
+0x22F35 0x6996
+0x22F36 0x6998
+0x22F37 0x69A6
+0x22F38 0x69B0
+0x22F39 0x69B7
+0x22F3A 0x69BA
+0x22F3B 0x69BC
+0x22F3C 0x69C0
+0x22F3D 0x69D1
+0x22F3E 0x69D6
+0x22F3F 0x23639
+0x22F40 0x23647
+0x22F41 0x6A30
+0x22F42 0x23638
+0x22F43 0x2363A
+0x22F44 0x69E3
+0x22F45 0x69EE
+0x22F46 0x69EF
+0x22F47 0x69F3
+0x22F48 0x3BCD
+0x22F49 0x69F4
+0x22F4A 0x69FE
+0x22F4B 0x6A11
+0x22F4C 0x6A1A
+0x22F4D 0x6A1D
+0x22F4E 0x2371C
+0x22F4F 0x6A32
+0x22F50 0x6A33
+0x22F51 0x6A34
+0x22F52 0x6A3F
+0x22F53 0x6A46
+0x22F54 0x6A49
+0x22F55 0x6A7A
+0x22F56 0x6A4E
+0x22F57 0x6A52
+0x22F58 0x6A64
+0x22F59 0x2370C
+0x22F5A 0x6A7E
+0x22F5B 0x6A83
+0x22F5C 0x6A8B
+0x22F5D 0x3BF0
+0x22F5E 0x6A91
+0x22F5F 0x6A9F
+0x22F60 0x6AA1
+0x22F61 0x23764
+0x22F62 0x6AAB
+0x22F63 0x6ABD
+0x22F64 0x6AC6
+0x22F65 0x6AD4
+0x22F66 0x6AD0
+0x22F67 0x6ADC
+0x22F68 0x6ADD
+0x22F69 0x237FF
+0x22F6A 0x237E7
+0x22F6B 0x6AEC
+0x22F6C 0x6AF1
+0x22F6D 0x6AF2
+0x22F6E 0x6AF3
+0x22F6F 0x6AFD
+0x22F70 0x23824
+0x22F71 0x6B0B
+0x22F72 0x6B0F
+0x22F73 0x6B10
+0x22F74 0x6B11
+0x22F75 0x2383D
+0x22F76 0x6B17
+0x22F77 0x3C26
+0x22F78 0x6B2F
+0x22F79 0x6B4A
+0x22F7A 0x6B58
+0x22F7B 0x6B6C
+0x22F7C 0x6B75
+0x22F7D 0x6B7A
+0x22F7E 0x6B81
+0x26E21 0x6B9B
+0x26E22 0x6BAE
+0x26E23 0x23A98
+0x26E24 0x6BBD
+0x26E25 0x6BBE
+0x26E26 0x6BC7
+0x26E27 0x6BC8
+0x26E28 0x6BC9
+0x26E29 0x6BDA
+0x26E2A 0x6BE6
+0x26E2B 0x6BE7
+0x26E2C 0x6BEE
+0x26E2D 0x6BF1
+0x26E2E 0x6C02
+0x26E2F 0x6C0A
+0x26E30 0x6C0E
+0x26E31 0x6C35
+0x26E32 0x6C36
+0x26E33 0x6C3A
+0x26E34 0x23C7F
+0x26E35 0x6C3F
+0x26E36 0x6C4D
+0x26E37 0x6C5B
+0x26E38 0x6C6D
+0x26E39 0x6C84
+0x26E3A 0x6C89
+0x26E3B 0x3CC3
+0x26E3C 0x6C94
+0x26E3D 0x6C95
+0x26E3E 0x6C97
+0x26E3F 0x6CAD
+0x26E40 0x6CC2
+0x26E41 0x6CD0
+0x26E42 0x3CD2
+0x26E43 0x6CD6
+0x26E44 0x6CDA
+0x26E45 0x6CDC
+0x26E46 0x6CE9
+0x26E47 0x6CEC
+0x26E48 0x6CED
+0x26E49 0x23D00
+0x26E4A 0x6D00
+0x26E4B 0x6D0A
+0x26E4C 0x6D24
+0x26E4D 0x6D26
+0x26E4E 0x6D27
+0x26E4F 0x6C67
+0x26E50 0x6D2F
+0x26E51 0x6D3C
+0x26E52 0x6D5B
+0x26E53 0x6D5E
+0x26E54 0x6D60
+0x26E55 0x6D70
+0x26E56 0x6D80
+0x26E57 0x6D81
+0x26E58 0x6D8A
+0x26E59 0x6D8D
+0x26E5A 0x6D91
+0x26E5B 0x6D98
+0x26E5C 0x23D40
+0x26E5D 0x6E17
+0x26E5E 0x23DFA
+0x26E5F 0x23DF9
+0x26E60 0x23DD3
+0x26E61 0x6DAB
+0x26E62 0x6DAE
+0x26E63 0x6DB4
+0x26E64 0x6DC2
+0x26E65 0x6D34
+0x26E66 0x6DC8
+0x26E67 0x6DCE
+0x26E68 0x6DCF
+0x26E69 0x6DD0
+0x26E6A 0x6DDF
+0x26E6B 0x6DE9
+0x26E6C 0x6DF6
+0x26E6D 0x6E36
+0x26E6E 0x6E1E
+0x26E6F 0x6E22
+0x26E70 0x6E27
+0x26E71 0x3D11
+0x26E72 0x6E32
+0x26E73 0x6E3C
+0x26E74 0x6E48
+0x26E75 0x6E49
+0x26E76 0x6E4B
+0x26E77 0x6E4C
+0x26E78 0x6E4F
+0x26E79 0x6E51
+0x26E7A 0x6E53
+0x26E7B 0x6E54
+0x26E7C 0x6E57
+0x26E7D 0x6E63
+0x26E7E 0x3D1E
+0x26F21 0x6E93
+0x26F22 0x6EA7
+0x26F23 0x6EB4
+0x26F24 0x6EBF
+0x26F25 0x6EC3
+0x26F26 0x6ECA
+0x26F27 0x6ED9
+0x26F28 0x6F35
+0x26F29 0x6EEB
+0x26F2A 0x6EF9
+0x26F2B 0x6EFB
+0x26F2C 0x6F0A
+0x26F2D 0x6F0C
+0x26F2E 0x6F18
+0x26F2F 0x6F25
+0x26F30 0x6F36
+0x26F31 0x6F3C
+0x26F32 0x23F7E
+0x26F33 0x6F52
+0x26F34 0x6F57
+0x26F35 0x6F5A
+0x26F36 0x6F60
+0x26F37 0x6F68
+0x26F38 0x6F98
+0x26F39 0x6F7D
+0x26F3A 0x6F90
+0x26F3B 0x6F96
+0x26F3C 0x6FBE
+0x26F3D 0x6F9F
+0x26F3E 0x6FA5
+0x26F3F 0x6FAF
+0x26F40 0x3D64
+0x26F41 0x6FB5
+0x26F42 0x6FC8
+0x26F43 0x6FC9
+0x26F44 0x6FDA
+0x26F45 0x6FDE
+0x26F46 0x6FE9
+0x26F47 0x24096
+0x26F48 0x6FFC
+0x26F49 0x7000
+0x26F4A 0x7007
+0x26F4B 0x700A
+0x26F4C 0x7023
+0x26F4D 0x24103
+0x26F4E 0x7039
+0x26F4F 0x703A
+0x26F50 0x703C
+0x26F51 0x7043
+0x26F52 0x7047
+0x26F53 0x704B
+0x26F54 0x3D9A
+0x26F55 0x7054
+0x26F56 0x7065
+0x26F57 0x7069
+0x26F58 0x706C
+0x26F59 0x706E
+0x26F5A 0x7076
+0x26F5B 0x707E
+0x26F5C 0x7081
+0x26F5D 0x7086
+0x26F5E 0x7095
+0x26F5F 0x7097
+0x26F60 0x70BB
+0x26F61 0x241C6
+0x26F62 0x709F
+0x26F63 0x70B1
+0x26F64 0x241FE
+0x26F65 0x70EC
+0x26F66 0x70CA
+0x26F67 0x70D1
+0x26F68 0x70D3
+0x26F69 0x70DC
+0x26F6A 0x7103
+0x26F6B 0x7104
+0x26F6C 0x7106
+0x26F6D 0x7107
+0x26F6E 0x7108
+0x26F6F 0x710C
+0x26F70 0x3DC0
+0x26F71 0x712F
+0x26F72 0x7131
+0x26F73 0x7150
+0x26F74 0x714A
+0x26F75 0x7153
+0x26F76 0x715E
+0x26F77 0x3DD4
+0x26F78 0x7196
+0x26F79 0x7180
+0x26F7A 0x719B
+0x26F7B 0x71A0
+0x26F7C 0x71A2
+0x26F7D 0x71AE
+0x26F7E 0x71AF
+0x27021 0x71B3
+0x27022 0x243BC
+0x27023 0x71CB
+0x27024 0x71D3
+0x27025 0x71D9
+0x27026 0x71DC
+0x27027 0x7207
+0x27028 0x3E05
+0x27029 0xFA49
+0x2702A 0x722B
+0x2702B 0x7234
+0x2702C 0x7238
+0x2702D 0x7239
+0x2702E 0x4E2C
+0x2702F 0x7242
+0x27030 0x7253
+0x27031 0x7257
+0x27032 0x7263
+0x27033 0x24629
+0x27034 0x726E
+0x27035 0x726F
+0x27036 0x7278
+0x27037 0x727F
+0x27038 0x728E
+0x27039 0x246A5
+0x2703A 0x72AD
+0x2703B 0x72AE
+0x2703C 0x72B0
+0x2703D 0x72B1
+0x2703E 0x72C1
+0x2703F 0x3E60
+0x27040 0x72CC
+0x27041 0x3E66
+0x27042 0x3E68
+0x27043 0x72F3
+0x27044 0x72FA
+0x27045 0x7307
+0x27046 0x7312
+0x27047 0x7318
+0x27048 0x7319
+0x27049 0x3E83
+0x2704A 0x7339
+0x2704B 0x732C
+0x2704C 0x7331
+0x2704D 0x7333
+0x2704E 0x733D
+0x2704F 0x7352
+0x27050 0x3E94
+0x27051 0x736B
+0x27052 0x736C
+0x27053 0x24896
+0x27054 0x736E
+0x27055 0x736F
+0x27056 0x7371
+0x27057 0x7377
+0x27058 0x7381
+0x27059 0x7385
+0x2705A 0x738A
+0x2705B 0x7394
+0x2705C 0x7398
+0x2705D 0x739C
+0x2705E 0x739E
+0x2705F 0x73A5
+0x27060 0x73A8
+0x27061 0x73B5
+0x27062 0x73B7
+0x27063 0x73B9
+0x27064 0x73BC
+0x27065 0x73BF
+0x27066 0x73C5
+0x27067 0x73CB
+0x27068 0x73E1
+0x27069 0x73E7
+0x2706A 0x73F9
+0x2706B 0x7413
+0x2706C 0x73FA
+0x2706D 0x7401
+0x2706E 0x7424
+0x2706F 0x7431
+0x27070 0x7439
+0x27071 0x7453
+0x27072 0x7440
+0x27073 0x7443
+0x27074 0x744D
+0x27075 0x7452
+0x27076 0x745D
+0x27077 0x7471
+0x27078 0x7481
+0x27079 0x7485
+0x2707A 0x7488
+0x2707B 0x24A4D
+0x2707C 0x7492
+0x2707D 0x7497
+0x2707E 0x7499
+0x27121 0x74A0
+0x27122 0x74A1
+0x27123 0x74A5
+0x27124 0x74AA
+0x27125 0x74AB
+0x27126 0x74B9
+0x27127 0x74BB
+0x27128 0x74BA
+0x27129 0x74D6
+0x2712A 0x74D8
+0x2712B 0x74DE
+0x2712C 0x74EF
+0x2712D 0x74EB
+0x2712E 0x24B56
+0x2712F 0x74FA
+0x27130 0x24B6F
+0x27131 0x7520
+0x27132 0x7524
+0x27133 0x752A
+0x27134 0x3F57
+0x27135 0x24C16
+0x27136 0x753D
+0x27137 0x753E
+0x27138 0x7540
+0x27139 0x7548
+0x2713A 0x754E
+0x2713B 0x7550
+0x2713C 0x7552
+0x2713D 0x756C
+0x2713E 0x7572
+0x2713F 0x7571
+0x27140 0x757A
+0x27141 0x757D
+0x27142 0x757E
+0x27143 0x7581
+0x27144 0x24D14
+0x27145 0x758C
+0x27146 0x3F75
+0x27147 0x75A2
+0x27148 0x3F77
+0x27149 0x75B0
+0x2714A 0x75B7
+0x2714B 0x75BF
+0x2714C 0x75C0
+0x2714D 0x75C6
+0x2714E 0x75CF
+0x2714F 0x75D3
+0x27150 0x75DD
+0x27151 0x75DF
+0x27152 0x75E0
+0x27153 0x75E7
+0x27154 0x75EC
+0x27155 0x75EE
+0x27156 0x75F1
+0x27157 0x75F9
+0x27158 0x7603
+0x27159 0x7618
+0x2715A 0x7607
+0x2715B 0x760F
+0x2715C 0x3FAE
+0x2715D 0x24E0E
+0x2715E 0x7613
+0x2715F 0x761B
+0x27160 0x761C
+0x27161 0x24E37
+0x27162 0x7625
+0x27163 0x7628
+0x27164 0x763C
+0x27165 0x7633
+0x27166 0x24E6A
+0x27167 0x3FC9
+0x27168 0x7641
+0x27169 0x24E8B
+0x2716A 0x7649
+0x2716B 0x7655
+0x2716C 0x3FD7
+0x2716D 0x766E
+0x2716E 0x7695
+0x2716F 0x769C
+0x27170 0x76A1
+0x27171 0x76A0
+0x27172 0x76A7
+0x27173 0x76A8
+0x27174 0x76AF
+0x27175 0x2504A
+0x27176 0x76C9
+0x27177 0x25055
+0x27178 0x76E8
+0x27179 0x76EC
+0x2717A 0x25122
+0x2717B 0x7717
+0x2717C 0x771A
+0x2717D 0x772D
+0x2717E 0x7735
+0x27221 0x251A9
+0x27222 0x4039
+0x27223 0x251E5
+0x27224 0x251CD
+0x27225 0x7758
+0x27226 0x7760
+0x27227 0x776A
+0x27228 0x2521E
+0x27229 0x7772
+0x2722A 0x777C
+0x2722B 0x777D
+0x2722C 0x2524C
+0x2722D 0x4058
+0x2722E 0x779A
+0x2722F 0x779F
+0x27230 0x77A2
+0x27231 0x77A4
+0x27232 0x77A9
+0x27233 0x77DE
+0x27234 0x77DF
+0x27235 0x77E4
+0x27236 0x77E6
+0x27237 0x77EA
+0x27238 0x77EC
+0x27239 0x4093
+0x2723A 0x77F0
+0x2723B 0x77F4
+0x2723C 0x77FB
+0x2723D 0x2542E
+0x2723E 0x7805
+0x2723F 0x7806
+0x27240 0x7809
+0x27241 0x780D
+0x27242 0x7819
+0x27243 0x7821
+0x27244 0x782C
+0x27245 0x7847
+0x27246 0x7864
+0x27247 0x786A
+0x27248 0x254D9
+0x27249 0x788A
+0x2724A 0x7894
+0x2724B 0x78A4
+0x2724C 0x789D
+0x2724D 0x789E
+0x2724E 0x789F
+0x2724F 0x78BB
+0x27250 0x78C8
+0x27251 0x78CC
+0x27252 0x78CE
+0x27253 0x78D5
+0x27254 0x78E0
+0x27255 0x78E1
+0x27256 0x78E6
+0x27257 0x78F9
+0x27258 0x78FA
+0x27259 0x78FB
+0x2725A 0x78FE
+0x2725B 0x255A7
+0x2725C 0x7910
+0x2725D 0x791B
+0x2725E 0x7930
+0x2725F 0x7925
+0x27260 0x793B
+0x27261 0x794A
+0x27262 0x7958
+0x27263 0x795B
+0x27264 0x4105
+0x27265 0x7967
+0x27266 0x7972
+0x27267 0x7994
+0x27268 0x7995
+0x27269 0x7996
+0x2726A 0x799B
+0x2726B 0x79A1
+0x2726C 0x79A9
+0x2726D 0x79B4
+0x2726E 0x79BB
+0x2726F 0x79C2
+0x27270 0x79C7
+0x27271 0x79CC
+0x27272 0x79CD
+0x27273 0x79D6
+0x27274 0x4148
+0x27275 0x257A9
+0x27276 0x257B4
+0x27277 0x414F
+0x27278 0x7A0A
+0x27279 0x7A11
+0x2727A 0x7A15
+0x2727B 0x7A1B
+0x2727C 0x7A1E
+0x2727D 0x4163
+0x2727E 0x7A2D
+0x27321 0x7A38
+0x27322 0x7A47
+0x27323 0x7A4C
+0x27324 0x7A56
+0x27325 0x7A59
+0x27326 0x7A5C
+0x27327 0x7A5F
+0x27328 0x7A60
+0x27329 0x7A67
+0x2732A 0x7A6A
+0x2732B 0x7A75
+0x2732C 0x7A78
+0x2732D 0x7A82
+0x2732E 0x7A8A
+0x2732F 0x7A90
+0x27330 0x7AA3
+0x27331 0x7AAC
+0x27332 0x259D4
+0x27333 0x41B4
+0x27334 0x7AB9
+0x27335 0x7ABC
+0x27336 0x7ABE
+0x27337 0x41BF
+0x27338 0x7ACC
+0x27339 0x7AD1
+0x2733A 0x7AE7
+0x2733B 0x7AE8
+0x2733C 0x7AF4
+0x2733D 0x25AE4
+0x2733E 0x25AE3
+0x2733F 0x7B07
+0x27340 0x25AF1
+0x27341 0x7B3D
+0x27342 0x7B27
+0x27343 0x7B2A
+0x27344 0x7B2E
+0x27345 0x7B2F
+0x27346 0x7B31
+0x27347 0x41E6
+0x27348 0x41F3
+0x27349 0x7B7F
+0x2734A 0x7B41
+0x2734B 0x41EE
+0x2734C 0x7B55
+0x2734D 0x7B79
+0x2734E 0x7B64
+0x2734F 0x7B66
+0x27350 0x7B69
+0x27351 0x7B73
+0x27352 0x25BB2
+0x27353 0x4207
+0x27354 0x7B90
+0x27355 0x7B91
+0x27356 0x7B9B
+0x27357 0x420E
+0x27358 0x7BAF
+0x27359 0x7BB5
+0x2735A 0x7BBC
+0x2735B 0x7BC5
+0x2735C 0x7BCA
+0x2735D 0x25C4B
+0x2735E 0x25C64
+0x2735F 0x7BD4
+0x27360 0x7BD6
+0x27361 0x7BDA
+0x27362 0x7BEA
+0x27363 0x7BF0
+0x27364 0x7C03
+0x27365 0x7C0B
+0x27366 0x7C0E
+0x27367 0x7C0F
+0x27368 0x7C26
+0x27369 0x7C45
+0x2736A 0x7C4A
+0x2736B 0x7C51
+0x2736C 0x7C57
+0x2736D 0x7C5E
+0x2736E 0x7C61
+0x2736F 0x7C69
+0x27370 0x7C6E
+0x27371 0x7C6F
+0x27372 0x7C70
+0x27373 0x25E2E
+0x27374 0x25E56
+0x27375 0x25E65
+0x27376 0x7CA6
+0x27377 0x25E62
+0x27378 0x7CB6
+0x27379 0x7CB7
+0x2737A 0x7CBF
+0x2737B 0x25ED8
+0x2737C 0x7CC4
+0x2737D 0x25EC2
+0x2737E 0x7CC8
+0x27421 0x7CCD
+0x27422 0x25EE8
+0x27423 0x7CD7
+0x27424 0x25F23
+0x27425 0x7CE6
+0x27426 0x7CEB
+0x27427 0x25F5C
+0x27428 0x7CF5
+0x27429 0x7D03
+0x2742A 0x7D09
+0x2742B 0x42C6
+0x2742C 0x7D12
+0x2742D 0x7D1E
+0x2742E 0x25FE0
+0x2742F 0x25FD4
+0x27430 0x7D3D
+0x27431 0x7D3E
+0x27432 0x7D40
+0x27433 0x7D47
+0x27434 0x2600C
+0x27435 0x25FFB
+0x27436 0x42D6
+0x27437 0x7D59
+0x27438 0x7D5A
+0x27439 0x7D6A
+0x2743A 0x7D70
+0x2743B 0x42DD
+0x2743C 0x7D7F
+0x2743D 0x26017
+0x2743E 0x7D86
+0x2743F 0x7D88
+0x27440 0x7D8C
+0x27441 0x7D97
+0x27442 0x26060
+0x27443 0x7D9D
+0x27444 0x7DA7
+0x27445 0x7DAA
+0x27446 0x7DB6
+0x27447 0x7DB7
+0x27448 0x7DC0
+0x27449 0x7DD7
+0x2744A 0x7DD9
+0x2744B 0x7DE6
+0x2744C 0x7DF1
+0x2744D 0x7DF9
+0x2744E 0x4302
+0x2744F 0x260ED
+0x27450 0xFA58
+0x27451 0x7E10
+0x27452 0x7E17
+0x27453 0x7E1D
+0x27454 0x7E20
+0x27455 0x7E27
+0x27456 0x7E2C
+0x27457 0x7E45
+0x27458 0x7E73
+0x27459 0x7E75
+0x2745A 0x7E7E
+0x2745B 0x7E86
+0x2745C 0x7E87
+0x2745D 0x432B
+0x2745E 0x7E91
+0x2745F 0x7E98
+0x27460 0x7E9A
+0x27461 0x4343
+0x27462 0x7F3C
+0x27463 0x7F3B
+0x27464 0x7F3E
+0x27465 0x7F43
+0x27466 0x7F44
+0x27467 0x7F4F
+0x27468 0x34C1
+0x27469 0x26270
+0x2746A 0x7F52
+0x2746B 0x26286
+0x2746C 0x7F61
+0x2746D 0x7F63
+0x2746E 0x7F64
+0x2746F 0x7F6D
+0x27470 0x7F7D
+0x27471 0x7F7E
+0x27472 0x2634C
+0x27473 0x7F90
+0x27474 0x517B
+0x27475 0x23D0E
+0x27476 0x7F96
+0x27477 0x7F9C
+0x27478 0x7FAD
+0x27479 0x26402
+0x2747A 0x7FC3
+0x2747B 0x7FCF
+0x2747C 0x7FE3
+0x2747D 0x7FE5
+0x2747E 0x7FEF
+0x27521 0x7FF2
+0x27522 0x8002
+0x27523 0x800A
+0x27524 0x8008
+0x27525 0x800E
+0x27526 0x8011
+0x27527 0x8016
+0x27528 0x8024
+0x27529 0x802C
+0x2752A 0x8030
+0x2752B 0x8043
+0x2752C 0x8066
+0x2752D 0x8071
+0x2752E 0x8075
+0x2752F 0x807B
+0x27530 0x8099
+0x27531 0x809C
+0x27532 0x80A4
+0x27533 0x80A7
+0x27534 0x80B8
+0x27535 0x2667E
+0x27536 0x80C5
+0x27537 0x80D5
+0x27538 0x80D8
+0x27539 0x80E6
+0x2753A 0x266B0
+0x2753B 0x810D
+0x2753C 0x80F5
+0x2753D 0x80FB
+0x2753E 0x43EE
+0x2753F 0x8135
+0x27540 0x8116
+0x27541 0x811E
+0x27542 0x43F0
+0x27543 0x8124
+0x27544 0x8127
+0x27545 0x812C
+0x27546 0x2671D
+0x27547 0x813D
+0x27548 0x4408
+0x27549 0x8169
+0x2754A 0x4417
+0x2754B 0x8181
+0x2754C 0x441C
+0x2754D 0x8184
+0x2754E 0x8185
+0x2754F 0x4422
+0x27550 0x8198
+0x27551 0x81B2
+0x27552 0x81C1
+0x27553 0x81C3
+0x27554 0x81D6
+0x27555 0x81DB
+0x27556 0x268DD
+0x27557 0x81E4
+0x27558 0x268EA
+0x27559 0x81EC
+0x2755A 0x26951
+0x2755B 0x81FD
+0x2755C 0x81FF
+0x2755D 0x2696F
+0x2755E 0x8204
+0x2755F 0x269DD
+0x27560 0x8219
+0x27561 0x8221
+0x27562 0x8222
+0x27563 0x26A1E
+0x27564 0x8232
+0x27565 0x8234
+0x27566 0x823C
+0x27567 0x8246
+0x27568 0x8249
+0x27569 0x8245
+0x2756A 0x26A58
+0x2756B 0x824B
+0x2756C 0x4476
+0x2756D 0x824F
+0x2756E 0x447A
+0x2756F 0x8257
+0x27570 0x26A8C
+0x27571 0x825C
+0x27572 0x8263
+0x27573 0x26AB7
+0x27574 0xFA5D
+0x27575 0xFA5E
+0x27576 0x8279
+0x27577 0x4491
+0x27578 0x827D
+0x27579 0x827F
+0x2757A 0x8283
+0x2757B 0x828A
+0x2757C 0x8293
+0x2757D 0x82A7
+0x2757E 0x82A8
+0x27621 0x82B2
+0x27622 0x82B4
+0x27623 0x82BA
+0x27624 0x82BC
+0x27625 0x82E2
+0x27626 0x82E8
+0x27627 0x82F7
+0x27628 0x8307
+0x27629 0x8308
+0x2762A 0x830C
+0x2762B 0x8354
+0x2762C 0x831B
+0x2762D 0x831D
+0x2762E 0x8330
+0x2762F 0x833C
+0x27630 0x8344
+0x27631 0x8357
+0x27632 0x44BE
+0x27633 0x837F
+0x27634 0x44D4
+0x27635 0x44B3
+0x27636 0x838D
+0x27637 0x8394
+0x27638 0x8395
+0x27639 0x839B
+0x2763A 0x839D
+0x2763B 0x83C9
+0x2763C 0x83D0
+0x2763D 0x83D4
+0x2763E 0x83DD
+0x2763F 0x83E5
+0x27640 0x83F9
+0x27641 0x840F
+0x27642 0x8411
+0x27643 0x8415
+0x27644 0x26C73
+0x27645 0x8417
+0x27646 0x8439
+0x27647 0x844A
+0x27648 0x844F
+0x27649 0x8451
+0x2764A 0x8452
+0x2764B 0x8459
+0x2764C 0x845A
+0x2764D 0x845C
+0x2764E 0x26CDD
+0x2764F 0x8465
+0x27650 0x8476
+0x27651 0x8478
+0x27652 0x847C
+0x27653 0x8481
+0x27654 0x450D
+0x27655 0x84DC
+0x27656 0x8497
+0x27657 0x84A6
+0x27658 0x84BE
+0x27659 0x4508
+0x2765A 0x84CE
+0x2765B 0x84CF
+0x2765C 0x84D3
+0x2765D 0x26E65
+0x2765E 0x84E7
+0x2765F 0x84EA
+0x27660 0x84EF
+0x27661 0x84F0
+0x27662 0x84F1
+0x27663 0x84FA
+0x27664 0x84FD
+0x27665 0x850C
+0x27666 0x851B
+0x27667 0x8524
+0x27668 0x8525
+0x27669 0x852B
+0x2766A 0x8534
+0x2766B 0x854F
+0x2766C 0x856F
+0x2766D 0x4525
+0x2766E 0x4543
+0x2766F 0x853E
+0x27670 0x8551
+0x27671 0x8553
+0x27672 0x855E
+0x27673 0x8561
+0x27674 0x8562
+0x27675 0x26F94
+0x27676 0x857B
+0x27677 0x857D
+0x27678 0x857F
+0x27679 0x8581
+0x2767A 0x8586
+0x2767B 0x8593
+0x2767C 0x859D
+0x2767D 0x859F
+0x2767E 0x26FF8
+0x27721 0x26FF6
+0x27722 0x26FF7
+0x27723 0x85B7
+0x27724 0x85BC
+0x27725 0x85C7
+0x27726 0x85CA
+0x27727 0x85D8
+0x27728 0x85D9
+0x27729 0x85DF
+0x2772A 0x85E1
+0x2772B 0x85E6
+0x2772C 0x85F6
+0x2772D 0x8600
+0x2772E 0x8611
+0x2772F 0x861E
+0x27730 0x8621
+0x27731 0x8624
+0x27732 0x8627
+0x27733 0x2710D
+0x27734 0x8639
+0x27735 0x863C
+0x27736 0x27139
+0x27737 0x8640
+0x27738 0xFA20
+0x27739 0x8653
+0x2773A 0x8656
+0x2773B 0x866F
+0x2773C 0x8677
+0x2773D 0x867A
+0x2773E 0x8687
+0x2773F 0x8689
+0x27740 0x868D
+0x27741 0x8691
+0x27742 0x869C
+0x27743 0x869D
+0x27744 0x86A8
+0x27745 0xFA21
+0x27746 0x86B1
+0x27747 0x86B3
+0x27748 0x86C1
+0x27749 0x86C3
+0x2774A 0x86D1
+0x2774B 0x86D5
+0x2774C 0x86D7
+0x2774D 0x86E3
+0x2774E 0x86E6
+0x2774F 0x45B8
+0x27750 0x8705
+0x27751 0x8707
+0x27752 0x870E
+0x27753 0x8710
+0x27754 0x8713
+0x27755 0x8719
+0x27756 0x871F
+0x27757 0x8721
+0x27758 0x8723
+0x27759 0x8731
+0x2775A 0x873A
+0x2775B 0x873E
+0x2775C 0x8740
+0x2775D 0x8743
+0x2775E 0x8751
+0x2775F 0x8758
+0x27760 0x8764
+0x27761 0x8765
+0x27762 0x8772
+0x27763 0x877C
+0x27764 0x273DB
+0x27765 0x273DA
+0x27766 0x87A7
+0x27767 0x8789
+0x27768 0x878B
+0x27769 0x8793
+0x2776A 0x87A0
+0x2776B 0x273FE
+0x2776C 0x45E5
+0x2776D 0x87BE
+0x2776E 0x27410
+0x2776F 0x87C1
+0x27770 0x87CE
+0x27771 0x87F5
+0x27772 0x87DF
+0x27773 0x27449
+0x27774 0x87E3
+0x27775 0x87E5
+0x27776 0x87E6
+0x27777 0x87EA
+0x27778 0x87EB
+0x27779 0x87ED
+0x2777A 0x8801
+0x2777B 0x8803
+0x2777C 0x880B
+0x2777D 0x8813
+0x2777E 0x8828
+0x27821 0x882E
+0x27822 0x8832
+0x27823 0x883C
+0x27824 0x460F
+0x27825 0x884A
+0x27826 0x8858
+0x27827 0x885F
+0x27828 0x8864
+0x27829 0x27615
+0x2782A 0x27614
+0x2782B 0x8869
+0x2782C 0x27631
+0x2782D 0x886F
+0x2782E 0x88A0
+0x2782F 0x88BC
+0x27830 0x88BD
+0x27831 0x88BE
+0x27832 0x88C0
+0x27833 0x88D2
+0x27834 0x27693
+0x27835 0x88D1
+0x27836 0x88D3
+0x27837 0x88DB
+0x27838 0x88F0
+0x27839 0x88F1
+0x2783A 0x4641
+0x2783B 0x8901
+0x2783C 0x2770E
+0x2783D 0x8937
+0x2783E 0x27723
+0x2783F 0x8942
+0x27840 0x8945
+0x27841 0x8949
+0x27842 0x27752
+0x27843 0x4665
+0x27844 0x8962
+0x27845 0x8980
+0x27846 0x8989
+0x27847 0x8990
+0x27848 0x899F
+0x27849 0x89B0
+0x2784A 0x89B7
+0x2784B 0x89D6
+0x2784C 0x89D8
+0x2784D 0x89EB
+0x2784E 0x46A1
+0x2784F 0x89F1
+0x27850 0x89F3
+0x27851 0x89FD
+0x27852 0x89FF
+0x27853 0x46AF
+0x27854 0x8A11
+0x27855 0x8A14
+0x27856 0x27985
+0x27857 0x8A21
+0x27858 0x8A35
+0x27859 0x8A3E
+0x2785A 0x8A45
+0x2785B 0x8A4D
+0x2785C 0x8A58
+0x2785D 0x8AAE
+0x2785E 0x8A90
+0x2785F 0x8AB7
+0x27860 0x8ABE
+0x27861 0x8AD7
+0x27862 0x8AFC
+0x27863 0x27A84
+0x27864 0x8B0A
+0x27865 0x8B05
+0x27866 0x8B0D
+0x27867 0x8B1C
+0x27868 0x8B1F
+0x27869 0x8B2D
+0x2786A 0x8B43
+0x2786B 0x470C
+0x2786C 0x8B51
+0x2786D 0x8B5E
+0x2786E 0x8B76
+0x2786F 0x8B7F
+0x27870 0x8B81
+0x27871 0x8B8B
+0x27872 0x8B94
+0x27873 0x8B95
+0x27874 0x8B9C
+0x27875 0x8B9E
+0x27876 0x8C39
+0x27877 0x27BB3
+0x27878 0x8C3D
+0x27879 0x27BBE
+0x2787A 0x27BC7
+0x2787B 0x8C45
+0x2787C 0x8C47
+0x2787D 0x8C4F
+0x2787E 0x8C54
+0x27921 0x8C57
+0x27922 0x8C69
+0x27923 0x8C6D
+0x27924 0x8C73
+0x27925 0x27CB8
+0x27926 0x8C93
+0x27927 0x8C92
+0x27928 0x8C99
+0x27929 0x4764
+0x2792A 0x8C9B
+0x2792B 0x8CA4
+0x2792C 0x8CD6
+0x2792D 0x8CD5
+0x2792E 0x8CD9
+0x2792F 0x27DA0
+0x27930 0x8CF0
+0x27931 0x8CF1
+0x27932 0x27E10
+0x27933 0x8D09
+0x27934 0x8D0E
+0x27935 0x8D6C
+0x27936 0x8D84
+0x27937 0x8D95
+0x27938 0x8DA6
+0x27939 0x27FB7
+0x2793A 0x8DC6
+0x2793B 0x8DC8
+0x2793C 0x8DD9
+0x2793D 0x8DEC
+0x2793E 0x8E0C
+0x2793F 0x47FD
+0x27940 0x8DFD
+0x27941 0x8E06
+0x27942 0x2808A
+0x27943 0x8E14
+0x27944 0x8E16
+0x27945 0x8E21
+0x27946 0x8E22
+0x27947 0x8E27
+0x27948 0x280BB
+0x27949 0x4816
+0x2794A 0x8E36
+0x2794B 0x8E39
+0x2794C 0x8E4B
+0x2794D 0x8E54
+0x2794E 0x8E62
+0x2794F 0x8E6C
+0x27950 0x8E6D
+0x27951 0x8E6F
+0x27952 0x8E98
+0x27953 0x8E9E
+0x27954 0x8EAE
+0x27955 0x8EB3
+0x27956 0x8EB5
+0x27957 0x8EB6
+0x27958 0x8EBB
+0x27959 0x28282
+0x2795A 0x8ED1
+0x2795B 0x8ED4
+0x2795C 0x484E
+0x2795D 0x8EF9
+0x2795E 0x282F3
+0x2795F 0x8F00
+0x27960 0x8F08
+0x27961 0x8F17
+0x27962 0x8F2B
+0x27963 0x8F40
+0x27964 0x8F4A
+0x27965 0x8F58
+0x27966 0x2840C
+0x27967 0x8FA4
+0x27968 0x8FB4
+0x27969 0xFA66
+0x2796A 0x8FB6
+0x2796B 0x28455
+0x2796C 0x8FC1
+0x2796D 0x8FC6
+0x2796E 0xFA24
+0x2796F 0x8FCA
+0x27970 0x8FCD
+0x27971 0x8FD3
+0x27972 0x8FD5
+0x27973 0x8FE0
+0x27974 0x8FF1
+0x27975 0x8FF5
+0x27976 0x8FFB
+0x27977 0x9002
+0x27978 0x900C
+0x27979 0x9037
+0x2797A 0x2856B
+0x2797B 0x9043
+0x2797C 0x9044
+0x2797D 0x905D
+0x2797E 0x285C8
+0x27A21 0x285C9
+0x27A22 0x9085
+0x27A23 0x908C
+0x27A24 0x9090
+0x27A25 0x961D
+0x27A26 0x90A1
+0x27A27 0x48B5
+0x27A28 0x90B0
+0x27A29 0x90B6
+0x27A2A 0x90C3
+0x27A2B 0x90C8
+0x27A2C 0x286D7
+0x27A2D 0x90DC
+0x27A2E 0x90DF
+0x27A2F 0x286FA
+0x27A30 0x90F6
+0x27A31 0x90F2
+0x27A32 0x9100
+0x27A33 0x90EB
+0x27A34 0x90FE
+0x27A35 0x90FF
+0x27A36 0x9104
+0x27A37 0x9106
+0x27A38 0x9118
+0x27A39 0x911C
+0x27A3A 0x911E
+0x27A3B 0x9137
+0x27A3C 0x9139
+0x27A3D 0x913A
+0x27A3E 0x9146
+0x27A3F 0x9147
+0x27A40 0x9157
+0x27A41 0x9159
+0x27A42 0x9161
+0x27A43 0x9164
+0x27A44 0x9174
+0x27A45 0x9179
+0x27A46 0x9185
+0x27A47 0x918E
+0x27A48 0x91A8
+0x27A49 0x91AE
+0x27A4A 0x91B3
+0x27A4B 0x91B6
+0x27A4C 0x91C3
+0x27A4D 0x91C4
+0x27A4E 0x91DA
+0x27A4F 0x28949
+0x27A50 0x28946
+0x27A51 0x91EC
+0x27A52 0x91EE
+0x27A53 0x9201
+0x27A54 0x920A
+0x27A55 0x9216
+0x27A56 0x9217
+0x27A57 0x2896B
+0x27A58 0x9233
+0x27A59 0x9242
+0x27A5A 0x9247
+0x27A5B 0x924A
+0x27A5C 0x924E
+0x27A5D 0x9251
+0x27A5E 0x9256
+0x27A5F 0x9259
+0x27A60 0x9260
+0x27A61 0x9261
+0x27A62 0x9265
+0x27A63 0x9267
+0x27A64 0x9268
+0x27A65 0x28987
+0x27A66 0x28988
+0x27A67 0x927C
+0x27A68 0x927D
+0x27A69 0x927F
+0x27A6A 0x9289
+0x27A6B 0x928D
+0x27A6C 0x9297
+0x27A6D 0x9299
+0x27A6E 0x929F
+0x27A6F 0x92A7
+0x27A70 0x92AB
+0x27A71 0x289BA
+0x27A72 0x289BB
+0x27A73 0x92B2
+0x27A74 0x92BF
+0x27A75 0x92C0
+0x27A76 0x92C6
+0x27A77 0x92CE
+0x27A78 0x92D0
+0x27A79 0x92D7
+0x27A7A 0x92D9
+0x27A7B 0x92E5
+0x27A7C 0x92E7
+0x27A7D 0x9311
+0x27A7E 0x28A1E
+0x27B21 0x28A29
+0x27B22 0x92F7
+0x27B23 0x92F9
+0x27B24 0x92FB
+0x27B25 0x9302
+0x27B26 0x930D
+0x27B27 0x9315
+0x27B28 0x931D
+0x27B29 0x931E
+0x27B2A 0x9327
+0x27B2B 0x9329
+0x27B2C 0x28A71
+0x27B2D 0x28A43
+0x27B2E 0x9347
+0x27B2F 0x9351
+0x27B30 0x9357
+0x27B31 0x935A
+0x27B32 0x936B
+0x27B33 0x9371
+0x27B34 0x9373
+0x27B35 0x93A1
+0x27B36 0x28A99
+0x27B37 0x28ACD
+0x27B38 0x9388
+0x27B39 0x938B
+0x27B3A 0x938F
+0x27B3B 0x939E
+0x27B3C 0x93F5
+0x27B3D 0x28AE4
+0x27B3E 0x28ADD
+0x27B3F 0x93F1
+0x27B40 0x93C1
+0x27B41 0x93C7
+0x27B42 0x93DC
+0x27B43 0x93E2
+0x27B44 0x93E7
+0x27B45 0x9409
+0x27B46 0x940F
+0x27B47 0x9416
+0x27B48 0x9417
+0x27B49 0x93FB
+0x27B4A 0x9432
+0x27B4B 0x9434
+0x27B4C 0x943B
+0x27B4D 0x9445
+0x27B4E 0x28BC1
+0x27B4F 0x28BEF
+0x27B50 0x946D
+0x27B51 0x946F
+0x27B52 0x9578
+0x27B53 0x9579
+0x27B54 0x9586
+0x27B55 0x958C
+0x27B56 0x958D
+0x27B57 0x28D10
+0x27B58 0x95AB
+0x27B59 0x95B4
+0x27B5A 0x28D71
+0x27B5B 0x95C8
+0x27B5C 0x28DFB
+0x27B5D 0x28E1F
+0x27B5E 0x962C
+0x27B5F 0x9633
+0x27B60 0x9634
+0x27B61 0x28E36
+0x27B62 0x963C
+0x27B63 0x9641
+0x27B64 0x9661
+0x27B65 0x28E89
+0x27B66 0x9682
+0x27B67 0x28EEB
+0x27B68 0x969A
+0x27B69 0x28F32
+0x27B6A 0x49E7
+0x27B6B 0x96A9
+0x27B6C 0x96AF
+0x27B6D 0x96B3
+0x27B6E 0x96BA
+0x27B6F 0x96BD
+0x27B70 0x49FA
+0x27B71 0x28FF8
+0x27B72 0x96D8
+0x27B73 0x96DA
+0x27B74 0x96DD
+0x27B75 0x4A04
+0x27B76 0x9714
+0x27B77 0x9723
+0x27B78 0x4A29
+0x27B79 0x9736
+0x27B7A 0x9741
+0x27B7B 0x9747
+0x27B7C 0x9755
+0x27B7D 0x9757
+0x27B7E 0x975B
+0x27C21 0x976A
+0x27C22 0x292A0
+0x27C23 0x292B1
+0x27C24 0x9796
+0x27C25 0x979A
+0x27C26 0x979E
+0x27C27 0x97A2
+0x27C28 0x97B1
+0x27C29 0x97B2
+0x27C2A 0x97BE
+0x27C2B 0x97CC
+0x27C2C 0x97D1
+0x27C2D 0x97D4
+0x27C2E 0x97D8
+0x27C2F 0x97D9
+0x27C30 0x97E1
+0x27C31 0x97F1
+0x27C32 0x9804
+0x27C33 0x980D
+0x27C34 0x980E
+0x27C35 0x9814
+0x27C36 0x9816
+0x27C37 0x4ABC
+0x27C38 0x29490
+0x27C39 0x9823
+0x27C3A 0x9832
+0x27C3B 0x9833
+0x27C3C 0x9825
+0x27C3D 0x9847
+0x27C3E 0x9866
+0x27C3F 0x98AB
+0x27C40 0x98AD
+0x27C41 0x98B0
+0x27C42 0x295CF
+0x27C43 0x98B7
+0x27C44 0x98B8
+0x27C45 0x98BB
+0x27C46 0x98BC
+0x27C47 0x98BF
+0x27C48 0x98C2
+0x27C49 0x98C7
+0x27C4A 0x98CB
+0x27C4B 0x98E0
+0x27C4C 0x2967F
+0x27C4D 0x98E1
+0x27C4E 0x98E3
+0x27C4F 0x98E5
+0x27C50 0x98EA
+0x27C51 0x98F0
+0x27C52 0x98F1
+0x27C53 0x98F3
+0x27C54 0x9908
+0x27C55 0x4B3B
+0x27C56 0x296F0
+0x27C57 0x9916
+0x27C58 0x9917
+0x27C59 0x29719
+0x27C5A 0x991A
+0x27C5B 0x991B
+0x27C5C 0x991C
+0x27C5D 0x29750
+0x27C5E 0x9931
+0x27C5F 0x9932
+0x27C60 0x9933
+0x27C61 0x993A
+0x27C62 0x993B
+0x27C63 0x993C
+0x27C64 0x9940
+0x27C65 0x9941
+0x27C66 0x9946
+0x27C67 0x994D
+0x27C68 0x994E
+0x27C69 0x995C
+0x27C6A 0x995F
+0x27C6B 0x9960
+0x27C6C 0x99A3
+0x27C6D 0x99A6
+0x27C6E 0x99B9
+0x27C6F 0x99BD
+0x27C70 0x99BF
+0x27C71 0x99C3
+0x27C72 0x99C9
+0x27C73 0x99D4
+0x27C74 0x99D9
+0x27C75 0x99DE
+0x27C76 0x298C6
+0x27C77 0x99F0
+0x27C78 0x99F9
+0x27C79 0x99FC
+0x27C7A 0x9A0A
+0x27C7B 0x9A11
+0x27C7C 0x9A16
+0x27C7D 0x9A1A
+0x27C7E 0x9A20
+0x27D21 0x9A31
+0x27D22 0x9A36
+0x27D23 0x9A44
+0x27D24 0x9A4C
+0x27D25 0x9A58
+0x27D26 0x4BC2
+0x27D27 0x9AAF
+0x27D28 0x4BCA
+0x27D29 0x9AB7
+0x27D2A 0x4BD2
+0x27D2B 0x9AB9
+0x27D2C 0x29A72
+0x27D2D 0x9AC6
+0x27D2E 0x9AD0
+0x27D2F 0x9AD2
+0x27D30 0x9AD5
+0x27D31 0x4BE8
+0x27D32 0x9ADC
+0x27D33 0x9AE0
+0x27D34 0x9AE5
+0x27D35 0x9AE9
+0x27D36 0x9B03
+0x27D37 0x9B0C
+0x27D38 0x9B10
+0x27D39 0x9B12
+0x27D3A 0x9B16
+0x27D3B 0x9B1C
+0x27D3C 0x9B2B
+0x27D3D 0x9B33
+0x27D3E 0x9B3D
+0x27D3F 0x4C20
+0x27D40 0x9B4B
+0x27D41 0x9B63
+0x27D42 0x9B65
+0x27D43 0x9B6B
+0x27D44 0x9B6C
+0x27D45 0x9B73
+0x27D46 0x9B76
+0x27D47 0x9B77
+0x27D48 0x9BA6
+0x27D49 0x9BAC
+0x27D4A 0x9BB1
+0x27D4B 0x29DDB
+0x27D4C 0x29E3D
+0x27D4D 0x9BB2
+0x27D4E 0x9BB8
+0x27D4F 0x9BBE
+0x27D50 0x9BC7
+0x27D51 0x9BF3
+0x27D52 0x9BD8
+0x27D53 0x9BDD
+0x27D54 0x9BE7
+0x27D55 0x9BEA
+0x27D56 0x9BEB
+0x27D57 0x9BEF
+0x27D58 0x9BEE
+0x27D59 0x29E15
+0x27D5A 0x9BFA
+0x27D5B 0x29E8A
+0x27D5C 0x9BF7
+0x27D5D 0x29E49
+0x27D5E 0x9C16
+0x27D5F 0x9C18
+0x27D60 0x9C19
+0x27D61 0x9C1A
+0x27D62 0x9C1D
+0x27D63 0x9C22
+0x27D64 0x9C27
+0x27D65 0x9C29
+0x27D66 0x9C2A
+0x27D67 0x29EC4
+0x27D68 0x9C31
+0x27D69 0x9C36
+0x27D6A 0x9C37
+0x27D6B 0x9C45
+0x27D6C 0x9C5C
+0x27D6D 0x29EE9
+0x27D6E 0x9C49
+0x27D6F 0x9C4A
+0x27D70 0x29EDB
+0x27D71 0x9C54
+0x27D72 0x9C58
+0x27D73 0x9C5B
+0x27D74 0x9C5D
+0x27D75 0x9C5F
+0x27D76 0x9C69
+0x27D77 0x9C6A
+0x27D78 0x9C6B
+0x27D79 0x9C6D
+0x27D7A 0x9C6E
+0x27D7B 0x9C70
+0x27D7C 0x9C72
+0x27D7D 0x9C75
+0x27D7E 0x9C7A
+0x27E21 0x9CE6
+0x27E22 0x9CF2
+0x27E23 0x9D0B
+0x27E24 0x9D02
+0x27E25 0x29FCE
+0x27E26 0x9D11
+0x27E27 0x9D17
+0x27E28 0x9D18
+0x27E29 0x2A02F
+0x27E2A 0x4CC4
+0x27E2B 0x2A01A
+0x27E2C 0x9D32
+0x27E2D 0x4CD1
+0x27E2E 0x9D42
+0x27E2F 0x9D4A
+0x27E30 0x9D5F
+0x27E31 0x9D62
+0x27E32 0x2A0F9
+0x27E33 0x9D69
+0x27E34 0x9D6B
+0x27E35 0x2A082
+0x27E36 0x9D73
+0x27E37 0x9D76
+0x27E38 0x9D77
+0x27E39 0x9D7E
+0x27E3A 0x9D84
+0x27E3B 0x9D8D
+0x27E3C 0x9D99
+0x27E3D 0x9DA1
+0x27E3E 0x9DBF
+0x27E3F 0x9DB5
+0x27E40 0x9DB9
+0x27E41 0x9DBD
+0x27E42 0x9DC3
+0x27E43 0x9DC7
+0x27E44 0x9DC9
+0x27E45 0x9DD6
+0x27E46 0x9DDA
+0x27E47 0x9DDF
+0x27E48 0x9DE0
+0x27E49 0x9DE3
+0x27E4A 0x9DF4
+0x27E4B 0x4D07
+0x27E4C 0x9E0A
+0x27E4D 0x9E02
+0x27E4E 0x9E0D
+0x27E4F 0x9E19
+0x27E50 0x9E1C
+0x27E51 0x9E1D
+0x27E52 0x9E7B
+0x27E53 0x22218
+0x27E54 0x9E80
+0x27E55 0x9E85
+0x27E56 0x9E9B
+0x27E57 0x9EA8
+0x27E58 0x2A38C
+0x27E59 0x9EBD
+0x27E5A 0x2A437
+0x27E5B 0x9EDF
+0x27E5C 0x9EE7
+0x27E5D 0x9EEE
+0x27E5E 0x9EFF
+0x27E5F 0x9F02
+0x27E60 0x4D77
+0x27E61 0x9F03
+0x27E62 0x9F17
+0x27E63 0x9F19
+0x27E64 0x9F2F
+0x27E65 0x9F37
+0x27E66 0x9F3A
+0x27E67 0x9F3D
+0x27E68 0x9F41
+0x27E69 0x9F45
+0x27E6A 0x9F46
+0x27E6B 0x9F53
+0x27E6C 0x9F55
+0x27E6D 0x9F58
+0x27E6E 0x2A5F1
+0x27E6F 0x9F5D
+0x27E70 0x2A602
+0x27E71 0x9F69
+0x27E72 0x2A61A
+0x27E73 0x9F6D
+0x27E74 0x9F70
+0x27E75 0x9F75
+0x27E76 0x2A6B2
diff --git a/jni/iconv/tools/Makefile b/jni/iconv/tools/Makefile
new file mode 100644
index 0000000..2bf7d84
--- /dev/null
+++ b/jni/iconv/tools/Makefile
@@ -0,0 +1,532 @@
+
+# Directory containing conversion tables.
+# You have to unpack the conversion-tables.tar.gz package.
+TABLESDIR = /home/bruno/chs/conversion-tables
+
+ALL = \
+ ascii.h \
+ iso8859_1.h \
+ iso8859_2.h \
+ iso8859_3.h \
+ iso8859_4.h \
+ iso8859_5.h \
+ iso8859_6.h \
+ iso8859_7.h \
+ iso8859_8.h \
+ iso8859_9.h \
+ iso8859_10.h \
+ iso8859_11.h \
+ iso8859_13.h \
+ iso8859_14.h \
+ iso8859_15.h \
+ iso8859_16.h \
+ koi8_r.h \
+ koi8_u.h \
+ koi8_ru.h \
+ cp1250.h \
+ cp1251.h \
+ cp1252.h \
+ cp1253.h \
+ cp1254.h \
+ cp1255.h \
+ cp1256.h \
+ cp1257.h \
+ cp1258.h \
+ cp850.h \
+ cp862.h \
+ cp866.h \
+ cp1131.h \
+ mac_roman.h \
+ mac_centraleurope.h \
+ mac_iceland.h \
+ mac_croatian.h \
+ mac_romania.h \
+ mac_cyrillic.h \
+ mac_ukraine.h \
+ mac_greek.h \
+ mac_turkish.h \
+ mac_hebrew.h \
+ mac_arabic.h \
+ mac_thai.h \
+ hp_roman8.h \
+ nextstep.h \
+ armscii_8.h \
+ georgian_academy.h \
+ georgian_ps.h \
+ koi8_t.h \
+ pt154.h \
+ rk1048.h \
+ mulelao.h \
+ cp1133.h \
+ tis620.h \
+ cp874.h \
+ viscii.h \
+ tcvn.h \
+ jisx0201.h \
+ jisx0208.h \
+ jisx0212.h \
+ cp932ext.h \
+ gb2312.h \
+ isoir165ext.h \
+ gb12345ext.h \
+ gbkext1.h \
+ gbkext2.h \
+ gbkext_inv.h \
+ cp936ext.h \
+ gb18030ext.h \
+ gb18030uni.h \
+ cns11643_1.h \
+ cns11643_2.h \
+ cns11643_3.h \
+ cns11643_4a.h \
+ cns11643_4b.h \
+ cns11643_5.h \
+ cns11643_6.h \
+ cns11643_7.h \
+ cns11643_15.h \
+ cns11643_inv.h \
+ big5.h \
+ cp950ext.h \
+ hkscs1999.h \
+ hkscs2001.h \
+ hkscs2004.h \
+ ksc5601.h \
+ uhc_1.h \
+ uhc_2.h \
+ johab_hangul.h \
+ cp856.h \
+ cp922.h \
+ cp1046.h \
+ cp1124.h \
+ cp1129.h \
+ cp1161.h \
+ cp1162.h \
+ cp1163.h \
+ cp437.h \
+ cp737.h \
+ cp775.h \
+ cp852.h \
+ cp853.h \
+ cp855.h \
+ cp857.h \
+ cp858.h \
+ cp860.h \
+ cp861.h \
+ cp863.h \
+ cp864.h \
+ cp865.h \
+ cp869.h \
+ cp1125.h \
+ jisx0213.h \
+ tds565.h \
+ atarist.h \
+ riscos1.h \
+ cjk_variants.h
+
+all : $(ALL)
+
+ascii.h : $(TABLESDIR)/glibc-2.1-iconv/ASCII.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h ASCII ascii < $<
+
+iso8859_1.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-1.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h ISO-8859-1 iso8859_1 < $<
+
+iso8859_2.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-2.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h ISO-8859-2 iso8859_2 < $<
+
+iso8859_3.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-3.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h ISO-8859-3 iso8859_3 < $<
+
+iso8859_4.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-4.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h ISO-8859-4 iso8859_4 < $<
+
+iso8859_5.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-5.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h ISO-8859-5 iso8859_5 < $<
+
+iso8859_6.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-6.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h ISO-8859-6 iso8859_6 < $<
+
+iso8859_7.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-7-2003.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h ISO-8859-7 iso8859_7 < $<
+
+iso8859_8.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-8.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h ISO-8859-8 iso8859_8 < $<
+
+iso8859_9.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-9.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h ISO-8859-9 iso8859_9 < $<
+
+iso8859_10.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-10.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h ISO-8859-10 iso8859_10 < $<
+
+iso8859_11.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-11.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h ISO-8859-11 iso8859_11 < $<
+
+iso8859_13.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-13.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h ISO-8859-13 iso8859_13 < $<
+
+iso8859_14.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-14.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h ISO-8859-14 iso8859_14 < $<
+
+iso8859_15.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-15.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h ISO-8859-15 iso8859_15 < $<
+
+iso8859_16.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-16.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h ISO-8859-16 iso8859_16 < $<
+
+koi8_r.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MISC/KOI8-R.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h KOI8-R koi8_r < $<
+
+koi8_u.h : $(TABLESDIR)/csets-new/KOI8-U.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h KOI8-U koi8_u < $<
+
+koi8_ru.h : $(TABLESDIR)/freebsd-iconv-0.4/KOI8-RU.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h KOI8-RU koi8_ru < $<
+
+cp1250.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1250.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h CP1250 cp1250 < $<
+
+cp1251.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1251.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h CP1251 cp1251 < $<
+
+cp1252.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1252.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h CP1252 cp1252 < $<
+
+cp1253.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1253.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h CP1253 cp1253 < $<
+
+cp1254.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1254.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h CP1254 cp1254 < $<
+
+cp1255.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1255.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h CP1255 cp1255 < $<
+
+cp1256.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1256.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h CP1256 cp1256 < $<
+
+cp1257.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1257.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h CP1257 cp1257 < $<
+
+cp1258.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1258.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h CP1258 cp1258 < $<
+
+cp850.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP850.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h CP850 cp850 < $<
+
+cp862.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP862.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h CP862 cp862 < $<
+
+cp866.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP866.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h CP866 cp866 < $<
+
+cp1131.h : $(TABLESDIR)/other/CP1131.TXT 8bit_tab_to_h
+ (echo '#' ; cat $<) | ./8bit_tab_to_h CP1131 cp1131
+
+mac_roman.h : $(TABLESDIR)/jdk-1.1.7b/MAC-ROMAN.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h MacRoman mac_roman < $<
+
+mac_centraleurope.h : $(TABLESDIR)/jdk-1.1.7b/MAC-CENTRAL-EUROPE.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h MacCentralEurope mac_centraleurope < $<
+
+mac_iceland.h : $(TABLESDIR)/jdk-1.1.7b/MAC-ICELAND.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h MacIceland mac_iceland < $<
+
+mac_croatian.h : $(TABLESDIR)/jdk-1.1.7b/MAC-CROATIAN.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h MacCroatian mac_croatian < $<
+
+mac_romania.h : $(TABLESDIR)/jdk-1.1.7b/MAC-ROMANIA.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h MacRomania mac_romania < $<
+
+mac_cyrillic.h : $(TABLESDIR)/jdk-1.1.7b/MAC-CYRILLIC.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h MacCyrillic mac_cyrillic < $<
+
+mac_ukraine.h : $(TABLESDIR)/jdk-1.1.7b/MAC-UKRAINE.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h MacUkraine mac_ukraine < $<
+
+mac_greek.h : $(TABLESDIR)/jdk-1.1.7b/MAC-GREEK.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h MacGreek mac_greek < $<
+
+mac_turkish.h : $(TABLESDIR)/jdk-1.1.7b/MAC-TURKISH.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h MacTurkish mac_turkish < $<
+
+mac_hebrew.h : $(TABLESDIR)/jdk-1.1.7b/MAC-HEBREW.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h MacHebrew mac_hebrew < $<
+
+mac_arabic.h : $(TABLESDIR)/jdk-1.1.7b/MAC-ARABIC.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h MacArabic mac_arabic < $<
+
+mac_thai.h : $(TABLESDIR)/jdk-1.1.7b/MAC-THAI.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h MacThai mac_thai < $<
+
+hp_roman8.h : $(TABLESDIR)/glibc-2.1-iconv/HP-ROMAN8.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h HP-ROMAN8 hp_roman8 < $<
+
+nextstep.h : $(TABLESDIR)/clisp/NEXTSTEP.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h NEXTSTEP nextstep < $<
+
+armscii_8.h : $(TABLESDIR)/glibc-2.2.90-iconv/ARMSCII-8.TXT 8bit_tab_to_h
+ (echo '#' ; cat $<) | ./8bit_tab_to_h ARMSCII-8 armscii_8
+
+georgian_academy.h : $(TABLESDIR)/csets-1.6/GEO-ITA.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h GEORGIAN-ACADEMY georgian_academy < $<
+
+georgian_ps.h : $(TABLESDIR)/csets-1.6/GEO-PS.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h GEORGIAN-PS georgian_ps < $<
+
+koi8_t.h : $(TABLESDIR)/glibc-2.2.90-iconv/KOI8-T.TXT
+ (echo '#' ; cat $<) | ./8bit_tab_to_h KOI8-T koi8_t
+
+pt154.h : $(TABLESDIR)/IANA/PTCP154.TXT
+ ./8bit_tab_to_h PT154 pt154 < $<
+
+rk1048.h : $(TABLESDIR)/IANA/KZ-1048.TXT
+ (echo '#' ; cat $<) | ./8bit_tab_to_h RK1048 rk1048
+
+mulelao.h : $(TABLESDIR)/csets-new/MULELAO1.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h MULELAO-1 mulelao < $<
+
+cp1133.h : $(TABLESDIR)/csets-new/CP1133.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h IBM-CP1133 cp1133 < $<
+
+tis620.h : $(TABLESDIR)/glibc-2.1-iconv/TIS-620.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h TIS620.2533-1 tis620 < $<
+
+cp874.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP874.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h CP874 cp874 < $<
+
+viscii.h : $(TABLESDIR)/csets-1.6/VISCII.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h VISCII1.1-1 viscii < $<
+
+tcvn.h : $(TABLESDIR)/csets-1.6/VN5712-1.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h TCVN-5712 tcvn < $<
+
+jisx0201.h : $(TABLESDIR)/clisp/JIS_X0201.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h JISX0201.1976-0 jisx0201 < $<
+
+# We use modified JISX0208 and JISX0212 tables. Why?
+# Hironori Sakamoto and Tomohiro Kubota explain that
+# - EUC-JP and SHIFT_JIS contain JISX0208 exactly,
+# - Their round-trip conversion to Unicode and back must be the identity,
+# - Conversions between EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP must behave
+# as if no Unicode conversion was involved,
+# - When JISX0208 is used as a CES (i.e. combined with ASCII) its mapping of
+# REVERSE SOLIDUS becomes a FULLWIDTH REVERSE SOLIDUS, apparently because
+# round-trip conversion stability is more important than a particular glyph.
+# Only with CCS the character is a REVERSE SOLIDUS.
+# As a consequence, we use FULLWIDTH REVERSE SOLIDUS in EUC-JP's JISX0208 part,
+# and for consistency also in SHIFT_JIS and ISO-2022-JP, i.e. everywhere.
+# JISX0208 never occurs as a CCS in practice. Similarly with JISX0212.
+
+# Unicode.org maps 0x2140 to U+005C. We map it to U+FF3C.
+jisx0208.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/JIS/JIS0208.TXT cjk_tab_to_h
+ sed -e 's,^0x....[ ]*\(0x....[ ]*0x.....*\)$$,\1,' < $< | sed -e 's,\([ ]\)0x005C,\10xFF3C,' | ./cjk_tab_to_h JISX0208.1990-0 jisx0208 > $@
+
+# Unicode.org maps 0x2237 to U+007E. We map it to U+FF5E.
+jisx0212.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/JIS/JIS0212.TXT cjk_tab_to_h
+ sed -e 's,\([ ]\)0x007E,\10xFF5E,' < $< | ./cjk_tab_to_h JISX0212.1990-0 jisx0212 > $@
+
+cp932ext.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP932.TXT cjk_tab_to_h
+ (echo '#' ; grep '^0x\(87\|E[D-F]\|F[0-9A-F]\)[0-9A-F][0-9A-F]' < $< ) | ./cjk_tab_to_h 'CP932 extensions' cp932ext > $@
+
+gb2312.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/GB/GB2312.TXT cjk_tab_to_h
+ ./cjk_tab_to_h GB2312.1980-0 gb2312 < $< > $@
+
+isoir165ext.h : $(TABLESDIR)/csets-new/ISO-IR-165-additions.TXT cjk_tab_to_h
+ (echo '#' ; grep -v '^0x2[8A]' < $<) | ./cjk_tab_to_h 'ISO-IR-165 extensions' isoir165ext > $@
+
+gb12345ext.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/GB/GB2312.TXT $(TABLESDIR)/unicode.org-mappings/EASTASIA/GB/GB12345-FIXED.TXT $(TABLESDIR)/csets-new/GB12345-more.TXT cjk_tab_to_h
+ (echo '#' ; sed -e '/^0x..[ ]*#UNDEFINED/d' -e 's/#.*$$//' -e '/^[ ]*$$/d' $(TABLESDIR)/unicode.org-mappings/EASTASIA/GB/GB2312.TXT > tmp1.TXT ; sed -e '/^0x..[ ]*#UNDEFINED/d' -e 's/#.*$$//' -e '/^[ ]*$$/d' $(TABLESDIR)/unicode.org-mappings/EASTASIA/GB/GB12345-FIXED.TXT > tmp2.TXT ; diff tmp1.TXT tmp2.TXT | grep '^> ' | sed -e 's,^> ,,' ; cat $(TABLESDIR)/csets-new/GB12345-more.TXT ) | ./cjk_tab_to_h 'GB/T 12345.1990-0 extensions' gb12345ext > $@ && rm -f tmp1.TXT tmp2.TXT
+
+gbkext1.h : GBKext.TXT cjk_tab_to_h
+ (echo '#' ; grep '^0x\([89].\|A0\)' < GBKext.TXT) | ./cjk_tab_to_h 'GBK/3 extensions' gbkext1 > $@
+
+gbkext2.h : GBKext.TXT cjk_tab_to_h
+ (echo '#' ; grep '^0x\(A[1-9A-F]\|[B-F][0-9A-F]\)\([4-9].\|A0\)' < GBKext.TXT) | ./cjk_tab_to_h 'GBK/4 and GBK/5 extensions' gbkext2 > $@
+
+gbkext_inv.h : GBKext.TXT cjk_tab_to_h
+ (echo '#' ; grep '^0x\([89].\|A0\)' < GBKext.TXT ; grep '^0x\(A[1-9A-F]\|[B-F][0-9A-F]\)\([4-9].\|A0\)' < GBKext.TXT) | ./cjk_tab_to_h 'GBK extensions' gbkext_inv > $@
+
+cp936ext.h : GBKext.TXT cjk_tab_to_h
+ (echo '#' ; grep '^0xA[1-9][B-F].' < GBKext.TXT) | ./cjk_tab_to_h 'CP936 extensions' cp936ext > $@
+
+GBKext.TXT : $(TABLESDIR)/unicode.org-mappings/EASTASIA/GB/GB2312.TXT $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP936.TXT
+ sed -e 's,^0x2,0xA,' -e 's,^0x3,0xB,' -e 's,^0x4,0xC,' -e 's,^0x5,0xD,' -e 's,^0x6,0xE,' -e 's,^0x7,0xF,' -e 's,^0x\(..\)2,0x\1A,' -e 's,^0x\(..\)3,0x\1B,' -e 's,^0x\(..\)4,0x\1C,' -e 's,^0x\(..\)5,0x\1D,' -e 's,^0x\(..\)6,0x\1E,' -e 's,^0x\(..\)7,0x\1F,' $(TABLESDIR)/unicode.org-mappings/EASTASIA/GB/GB2312.TXT > tmpEUCCN.TXT ; sed -e '/^0x..[ ]*#UNDEFINED/d' -e 's/#.*$$//' -e '/^[ ]*$$/d' tmpEUCCN.TXT > tmp1.TXT ; sed -e '/^0x..[ ]/d' -e 's/#.*$$//' -e '/^[ ]*$$/d' $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP936.TXT > tmp2.TXT ; diff -c1 tmp1.TXT tmp2.TXT | grep '^+ ' | sed -e 's,^+ ,,' > $@ && rm -f tmpEUCCN.TXT tmp1.TXT tmp2.TXT
+
+gb18030ext.h : GB18030ext.TXT cjk_tab_to_h
+ (echo '#' ; cat GB18030ext.TXT) | ./cjk_tab_to_h 'GB18030 two-byte extension' gb18030ext > $@
+
+GB18030ext.TXT : $(TABLESDIR)/glibc-2.2.2-iconv/GB18030.TXT $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP936.TXT
+ cat $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP936.TXT | sed -e 's/[ ]*#.*$$//' | grep '^0x[0-9A-F]* 0x....$$' > tmpGBK.TXT ; diff tmpGBK.TXT $(TABLESDIR)/glibc-2.2.2-iconv/GB18030.TXT | grep '^> 0x.... 0x....$$' | sed -e 's/^> //' > $@ && rm -f tmpGBK.TXT
+
+gb18030uni.h : GB18030uni.TXT cjk_tab_to_h
+ ./cjk_tab_to_h 'GB18030 four-byte extension' gb18030uni < GB18030uni.TXT > $@
+
+GB18030uni.TXT : $(TABLESDIR)/gb18030/filled-GB18030.TXT
+ grep '^0x........ 0x....$$' < $(TABLESDIR)/gb18030/filled-GB18030.TXT > $@
+
+cns11643_1.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h
+ grep '^\(#\|0x1\)' < $< | sed -e 's,^0x1,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 1' cns11643_1 > $@
+
+cns11643_2.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h
+ grep '^\(#\|0x2\)' < $< | sed -e 's,^0x2,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 2' cns11643_2 > $@
+
+cns11643_3.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h
+ grep '^\(#\|0x3\)' < $< | sed -e 's,^0x3,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 3' cns11643_3 > $@
+
+cns11643_4a.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h
+ grep '^\(#\|0x4[0-3]\)' < $< | sed -e 's,^0x4,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 4 part a' cns11643_4a > $@
+
+cns11643_4b.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h
+ grep '^\(#\|0x4[4-7]\)' < $< | sed -e 's,^0x4,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 4 part b' cns11643_4b > $@
+
+cns11643_5.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h
+ grep '^\(#\|0x5\)' < $< | sed -e 's,^0x5,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 5' cns11643_5 > $@
+
+cns11643_6.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h
+ grep '^\(#\|0x6\)' < $< | sed -e 's,^0x6,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 6' cns11643_6 > $@
+
+cns11643_7.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h
+ grep '^\(#\|0x7\)' < $< | sed -e 's,^0x7,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 7' cns11643_7 > $@
+
+cns11643_15.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h
+ grep '^\(#\|0xF\)' < $< | sed -e 's,^0xF,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 15' cns11643_15 > $@
+
+cns11643_inv.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h
+ ./cjk_tab_to_h 'CNS 11643-1992 planes 1-7, CNS 11643-1986 plane 15' cns11643_inv < $< > $@
+
+big5.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/OTHER/BIG5.TXT cjk_tab_to_h
+ ./cjk_tab_to_h BIG5 big5 < $< > $@
+
+cp950ext.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP950.TXT cjk_tab_to_h
+ (echo '#' ; grep '^0xF9\(D[6-9A-F]\|[EF][0-9A-F]\)' < $< ) | ./cjk_tab_to_h 'CP950 extensions' cp950ext > $@
+
+hkscs1999.h : $(TABLESDIR)/big5hkscs/HKSCS-1999_2006.TXT cjk_tab_to_h
+ (echo '#' ; grep -v , $<) | ./cjk_tab_to_h HKSCS:1999 hkscs1999 > $@
+
+hkscs2001.h : $(TABLESDIR)/big5hkscs/HKSCS-2001_2006-DELTA.TXT cjk_tab_to_h
+ (echo '#' ; grep -v , $<) | ./cjk_tab_to_h HKSCS:2001 hkscs2001 > $@
+
+hkscs2004.h : $(TABLESDIR)/big5hkscs/HKSCS-2004_2006-DELTA.TXT cjk_tab_to_h
+ (echo '#' ; grep -v , $<) | ./cjk_tab_to_h HKSCS:2004 hkscs2004 > $@
+
+# We use a modified KSC 5601 = KSX 1001 table. Jungshik Shin <jshin@mailaps.org>
+# reports that Prof. GIM Geongseog (KIM Keyongseok) <gimgs@asadal.cs.pusan.ac.kr>
+# (who represents South Korea in ISO/IEC JTC1 SC2/WG2 and SC22/WG20) says that
+# these two characters were added to KSX 1001 in December 1998. According to
+# http://std.dkuug.dk/jtc1/sc2/wg2/docs/N2815.doc, one more character
+# (Korean postal code sign) was added in 2002.
+ksc5601.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/KSC/KSC5601.TXT cjk_tab_to_h
+ (cat $< ; echo '0xA2E6 0x20AC'; echo '0xA2E7 0x00AE'; echo '0xA2E8 0x327E') | ./cjk_tab_to_h 'KSC5601.1987-0, now KS X 1001:2002' ksc5601 > $@
+
+uhc_1.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/KSC/KSC5601.TXT cjk_tab_to_h
+ (echo '#' ; grep '^0x\([8-9]\|A0\)' < $< ) | ./cjk_tab_to_h 'Unified Hangul Code part 1' uhc_1 > $@
+
+uhc_2.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/KSC/KSC5601.TXT cjk_tab_to_h
+ (echo '#' ; grep '^0x\(A[1-9A-F]\|[B-F][0-9A-F]\)\([0-9]\|A0\)' < $< ) | ./cjk_tab_to_h 'Unified Hangul Code part 2' uhc_2 > $@
+
+johab_hangul.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/KSC/JOHAB.TXT cjk_tab_to_h
+ (echo '#' ; grep '^0x\([8-C]...\|D[0-7]..\)' < $< ) | ./cjk_tab_to_h 'JOHAB Hangul' johab_hangul > $@
+
+
+cp856.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MISC/CP856.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h CP856 cp856 < $<
+
+cp922.h : $(TABLESDIR)/aix-4.3.2/IBM-922.TXT 8bit_tab_to_h
+ (echo '#' ; cat $<) | ./8bit_tab_to_h CP922 cp922
+
+cp1046.h : $(TABLESDIR)/aix-4.3.2/IBM-1046.TXT 8bit_tab_to_h
+ (echo '#' ; cat $<) | ./8bit_tab_to_h CP1046 cp1046
+
+cp1124.h : $(TABLESDIR)/aix-4.3.2/IBM-1124.TXT 8bit_tab_to_h
+ (echo '#' ; cat $<) | ./8bit_tab_to_h CP1124 cp1124
+
+cp1129.h : $(TABLESDIR)/aix-4.3.2/IBM-1129.TXT 8bit_tab_to_h
+ (echo '#' ; cat $<) | ./8bit_tab_to_h CP1129 cp1129
+
+cp1161.h : $(TABLESDIR)/glibc-2.2.90-iconv/IBM1161.TXT
+ (echo '#' ; cat $(TABLESDIR)/glibc-2.2-iconv/ASCII.TXT ; grep -v '^0x[0-7]' $<) | ./8bit_tab_to_h CP1161 cp1161
+
+cp1162.h : $(TABLESDIR)/glibc-2.2.90-iconv/IBM1162.TXT
+ (echo '#' ; cat $<) | ./8bit_tab_to_h CP1162 cp1162
+
+cp1163.h : $(TABLESDIR)/glibc-2.2.90-iconv/IBM1163.TXT
+ (echo '#' ; cat $<) | ./8bit_tab_to_h CP1163 cp1163
+
+
+cp437.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP437.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h CP437 cp437 < $<
+
+cp737.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP737.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h CP737 cp737 < $<
+
+cp775.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP775.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h CP775 cp775 < $<
+
+cp852.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP852.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h CP852 cp852 < $<
+
+cp853.h : $(TABLESDIR)/other/CP853.TXT 8bit_tab_to_h
+ (echo '#'; cat $<) | ./8bit_tab_to_h CP853 cp853
+
+cp855.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP855.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h CP855 cp855 < $<
+
+cp857.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP857.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h CP857 cp857 < $<
+
+cp858.h : $(TABLESDIR)/windows-2000/CP858.TXT 8bit_tab_to_h
+ (echo '#' ; cat $<) | ./8bit_tab_to_h CP858 cp858
+
+cp860.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP860.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h CP860 cp860 < $<
+
+cp861.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP861.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h CP861 cp861 < $<
+
+cp863.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP863.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h CP863 cp863 < $<
+
+cp864.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP864.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h CP864 cp864 < $<
+
+cp865.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP865.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h CP865 cp865 < $<
+
+cp869.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP869.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h CP869 cp869 < $<
+
+cp1125.h : $(TABLESDIR)/csets-new/CP1125.TXT 8bit_tab_to_h
+ ./8bit_tab_to_h CP1125 cp1125 < $<
+
+
+jisx0213.h : JISX0213.TXT cjk_tab_to_h
+ ./cjk_tab_to_h JISX0213:2004 jisx0213 < $< > $@
+
+tds565.h : $(TABLESDIR)/recode-cvs/TDS565.TXT 8bit_tab_to_h
+ (echo '#'; cat $<) | ./8bit_tab_to_h TDS565 tds565 > $@
+
+atarist.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MISC/ATARIST.TXT
+ ./8bit_tab_to_h 'Atari ST' atarist < $< > $@
+
+riscos1.h : $(TABLESDIR)/recode-cvs/RISCOS-LATIN1.TXT 8bit_tab_to_h
+ (echo '#'; cat $<) | ./8bit_tab_to_h RISCOS-LATIN1 riscos1 > $@
+
+
+cjk_variants.h : $(TABLESDIR)/yasuoka/UniVariants cjk_variants
+ ./cjk_variants < $< > $@
+
+
+8bit_tab_to_h : 8bit_tab_to_h.c
+ gcc -O -Wall -g $< -o $@
+
+cjk_tab_to_h : cjk_tab_to_h.c
+ gcc -O -Wall -g $< -o $@
+
+cjk_variants : cjk_variants.c
+ gcc -O -Wall -g $< -o $@
+
+
+clean : force
+ rm -f 8bit_tab_to_h cjk_tab_to_h cjk_variants $(ALL) GBKext.TXT
+
+force :
+
diff --git a/jni/iconv/tools/cjk_tab_to_h.c b/jni/iconv/tools/cjk_tab_to_h.c
new file mode 100644
index 0000000..a6a3fe4
--- /dev/null
+++ b/jni/iconv/tools/cjk_tab_to_h.c
@@ -0,0 +1,2148 @@
+/* Copyright (C) 1999-2004, 2006-2007 Free Software Foundation, Inc.
+ This file is part of the GNU LIBICONV Tools.
+
+ 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 3 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., along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/*
+ * Generates a CJK character set table from a .TXT table as found on
+ * ftp.unicode.org or in the X nls directory.
+ * Examples:
+ *
+ * ./cjk_tab_to_h GB2312.1980-0 gb2312 > gb2312.h < gb2312
+ * ./cjk_tab_to_h JISX0208.1983-0 jisx0208 > jisx0208.h < jis0208
+ * ./cjk_tab_to_h KSC5601.1987-0 ksc5601 > ksc5601.h < ksc5601
+ *
+ * ./cjk_tab_to_h GB2312.1980-0 gb2312 > gb2312.h < GB2312.TXT
+ * ./cjk_tab_to_h JISX0208.1983-0 jisx0208 > jisx0208.h < JIS0208.TXT
+ * ./cjk_tab_to_h JISX0212.1990-0 jisx0212 > jisx0212.h < JIS0212.TXT
+ * ./cjk_tab_to_h KSC5601.1987-0 ksc5601 > ksc5601.h < KSC5601.TXT
+ * ./cjk_tab_to_h KSX1001.1992-0 ksc5601 > ksc5601.h < KSX1001.TXT
+ *
+ * ./cjk_tab_to_h BIG5 big5 > big5.h < BIG5.TXT
+ *
+ * ./cjk_tab_to_h JOHAB johab > johab.h < JOHAB.TXT
+ *
+ * ./cjk_tab_to_h JISX0213:2004 jisx0213 > jisx0213.h < JISX0213.TXT
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdbool.h>
+#include <string.h>
+#include <ctype.h>
+#include <assert.h>
+
+typedef struct {
+ int start;
+ int end;
+} Block;
+
+typedef struct {
+ int rows; /* number of possible values for the 1st byte */
+ int cols; /* number of possible values for the 2nd byte */
+ int (*row_byte) (int row); /* returns the 1st byte value for a given row */
+ int (*col_byte) (int col); /* returns the 2nd byte value for a given col */
+ int (*byte_row) (int byte); /* converts a 1st byte value to a row, else -1 */
+ int (*byte_col) (int byte); /* converts a 2nd byte value to a col, else -1 */
+ const char* check_row_expr; /* format string for 1st byte value checking */
+ const char* check_col_expr; /* format string for 2nd byte value checking */
+ const char* byte_row_expr; /* format string for 1st byte value to row */
+ const char* byte_col_expr; /* format string for 2nd byte value to col */
+ int** charset2uni; /* charset2uni[0..rows-1][0..cols-1] is valid */
+ /* You'll understand the terms "row" and "col" when you buy Ken Lunde's book.
+ Once a row is fixed, choosing a "col" is the same as choosing a "cell". */
+ int* charsetpage; /* charsetpage[0..rows]: how large is a page for a row */
+ int ncharsetblocks;
+ Block* charsetblocks; /* blocks[0..nblocks-1] */
+ int* uni2charset; /* uni2charset[0x0000..0xffff] */
+ int fffd; /* uni representation of the invalid character */
+} Encoding;
+
+/*
+ * Outputs the file title.
+ */
+static void output_title (const char *charsetname)
+{
+ printf("/*\n");
+ printf(" * Copyright (C) 1999-2007 Free Software Foundation, Inc.\n");
+ printf(" * This file is part of the GNU LIBICONV Library.\n");
+ printf(" *\n");
+ printf(" * The GNU LIBICONV Library is free software; you can redistribute it\n");
+ printf(" * and/or modify it under the terms of the GNU Library General Public\n");
+ printf(" * License as published by the Free Software Foundation; either version 2\n");
+ printf(" * of the License, or (at your option) any later version.\n");
+ printf(" *\n");
+ printf(" * The GNU LIBICONV Library is distributed in the hope that it will be\n");
+ printf(" * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of\n");
+ printf(" * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n");
+ printf(" * Library General Public License for more details.\n");
+ printf(" *\n");
+ printf(" * You should have received a copy of the GNU Library General Public\n");
+ printf(" * License along with the GNU LIBICONV Library; see the file COPYING.LIB.\n");
+ printf(" * If not, write to the Free Software Foundation, Inc., 51 Franklin Street,\n");
+ printf(" * Fifth Floor, Boston, MA 02110-1301, USA.\n");
+ printf(" */\n");
+ printf("\n");
+ printf("/*\n");
+ printf(" * %s\n", charsetname);
+ printf(" */\n");
+ printf("\n");
+}
+
+/*
+ * Reads the charset2uni table from standard input.
+ */
+static void read_table (Encoding* enc)
+{
+ int row, col, i, i1, i2, c, j;
+
+ enc->charset2uni = (int**) malloc(enc->rows*sizeof(int*));
+ for (row = 0; row < enc->rows; row++)
+ enc->charset2uni[row] = (int*) malloc(enc->cols*sizeof(int));
+
+ for (row = 0; row < enc->rows; row++)
+ for (col = 0; col < enc->cols; col++)
+ enc->charset2uni[row][col] = 0xfffd;
+
+ c = getc(stdin);
+ ungetc(c,stdin);
+ if (c == '#') {
+ /* Read a unicode.org style .TXT file. */
+ for (;;) {
+ c = getc(stdin);
+ if (c == EOF)
+ break;
+ if (c == '\n' || c == ' ' || c == '\t')
+ continue;
+ if (c == '#') {
+ do { c = getc(stdin); } while (!(c == EOF || c == '\n'));
+ continue;
+ }
+ ungetc(c,stdin);
+ if (scanf("0x%x", &j) != 1)
+ exit(1);
+ i1 = j >> 8;
+ i2 = j & 0xff;
+ row = enc->byte_row(i1);
+ col = enc->byte_col(i2);
+ if (row < 0 || col < 0) {
+ fprintf(stderr, "lost entry for %02x %02x\n", i1, i2);
+ exit(1);
+ }
+ if (scanf(" 0x%x", &enc->charset2uni[row][col]) != 1)
+ exit(1);
+ }
+ } else {
+ /* Read a table of hexadecimal Unicode values. */
+ for (i1 = 32; i1 < 132; i1++)
+ for (i2 = 32; i2 < 132; i2++) {
+ i = scanf("%x", &j);
+ if (i == EOF)
+ goto read_done;
+ if (i != 1)
+ exit(1);
+ if (j < 0 || j == 0xffff)
+ j = 0xfffd;
+ if (j != 0xfffd) {
+ if (enc->byte_row(i1) < 0 || enc->byte_col(i2) < 0) {
+ fprintf(stderr, "lost entry at %02x %02x\n", i1, i2);
+ exit (1);
+ }
+ enc->charset2uni[enc->byte_row(i1)][enc->byte_col(i2)] = j;
+ }
+ }
+ read_done: ;
+ }
+}
+
+/*
+ * Determine whether the Unicode range goes outside the BMP.
+ */
+static bool is_charset2uni_large (Encoding* enc)
+{
+ int row, col;
+
+ for (row = 0; row < enc->rows; row++)
+ for (col = 0; col < enc->cols; col++)
+ if (enc->charset2uni[row][col] >= 0x10000)
+ return true;
+ return false;
+}
+
+/*
+ * Compactify the Unicode range by use of an auxiliary table,
+ * so 16 bits suffice to store each value.
+ */
+static int compact_large_charset2uni (Encoding* enc, unsigned int **urows, unsigned int *urowshift)
+{
+ unsigned int shift;
+
+ for (shift = 8; ; shift--) {
+ int *upages = (int *) malloc((0x110000>>shift) * sizeof(int));
+ int i, row, col, nurows;
+
+ for (i = 0; i < 0x110000>>shift; i++)
+ upages[i] = -1;
+
+ for (row = 0; row < enc->rows; row++)
+ for (col = 0; col < enc->cols; col++)
+ upages[enc->charset2uni[row][col] >> shift] = 0;
+
+ nurows = 0;
+ for (i = 0; i < 0x110000>>shift; i++)
+ if (upages[i] == 0)
+ nurows++;
+
+ /* We want all table entries to fit in an 'unsigned short'. */
+ if (nurows <= 1<<(16-shift)) {
+ int** old_charset2uni;
+
+ *urows = (unsigned int *) malloc(nurows * sizeof(unsigned int));
+ *urowshift = shift;
+
+ nurows = 0;
+ for (i = 0; i < 0x110000>>shift; i++)
+ if (upages[i] == 0) {
+ upages[i] = nurows;
+ (*urows)[nurows] = i;
+ nurows++;
+ }
+
+ old_charset2uni = enc->charset2uni;
+ enc->charset2uni = (int**) malloc(enc->rows*sizeof(int*));
+ for (row = 0; row < enc->rows; row++)
+ enc->charset2uni[row] = (int*) malloc(enc->cols*sizeof(int));
+ for (row = 0; row < enc->rows; row++)
+ for (col = 0; col < enc->cols; col++) {
+ int u = old_charset2uni[row][col];
+ enc->charset2uni[row][col] =
+ (upages[u >> shift] << shift) | (u & ((1 << shift) - 1));
+ }
+ enc->fffd =
+ (upages[0xfffd >> shift] << shift) | (0xfffd & ((1 << shift) - 1));
+
+ return nurows;
+ }
+ }
+ abort();
+}
+
+/*
+ * Computes the charsetpage[0..rows] array.
+ */
+static void find_charset2uni_pages (Encoding* enc)
+{
+ int row, col;
+
+ enc->charsetpage = (int*) malloc((enc->rows+1)*sizeof(int));
+
+ for (row = 0; row <= enc->rows; row++)
+ enc->charsetpage[row] = 0;
+
+ for (row = 0; row < enc->rows; row++) {
+ int used = 0;
+ for (col = 0; col < enc->cols; col++)
+ if (enc->charset2uni[row][col] != enc->fffd)
+ used = col+1;
+ enc->charsetpage[row] = used;
+ }
+}
+
+/*
+ * Fills in nblocks and blocks.
+ */
+static void find_charset2uni_blocks (Encoding* enc)
+{
+ int n, row, lastrow;
+
+ enc->charsetblocks = (Block*) malloc(enc->rows*sizeof(Block));
+
+ n = 0;
+ for (row = 0; row < enc->rows; row++)
+ if (enc->charsetpage[row] > 0 && (row == 0 || enc->charsetpage[row-1] == 0)) {
+ for (lastrow = row; enc->charsetpage[lastrow+1] > 0; lastrow++);
+ enc->charsetblocks[n].start = row * enc->cols;
+ enc->charsetblocks[n].end = lastrow * enc->cols + enc->charsetpage[lastrow];
+ n++;
+ }
+ enc->ncharsetblocks = n;
+}
+
+/*
+ * Outputs the charset to unicode table and function.
+ */
+static void output_charset2uni (const char* name, Encoding* enc)
+{
+ int nurows, row, col, lastrow, col_max, i, i1_min, i1_max;
+ bool is_large;
+ unsigned int* urows;
+ unsigned int urowshift;
+ Encoding tmpenc;
+
+ is_large = is_charset2uni_large(enc);
+ if (is_large) {
+ /* Use a temporary copy of enc. */
+ tmpenc = *enc;
+ enc = &tmpenc;
+ nurows = compact_large_charset2uni(enc,&urows,&urowshift);
+ } else {
+ nurows = 0; urows = NULL; urowshift = 0; enc->fffd = 0xfffd;
+ }
+
+ find_charset2uni_pages(enc);
+
+ find_charset2uni_blocks(enc);
+
+ for (row = 0; row < enc->rows; row++)
+ if (enc->charsetpage[row] > 0) {
+ if (row == 0 || enc->charsetpage[row-1] == 0) {
+ /* Start a new block. */
+ for (lastrow = row; enc->charsetpage[lastrow+1] > 0; lastrow++);
+ printf("static const unsigned short %s_2uni_page%02x[%d] = {\n",
+ name, enc->row_byte(row),
+ (lastrow-row) * enc->cols + enc->charsetpage[lastrow]);
+ }
+ printf(" /""* 0x%02x *""/\n ", enc->row_byte(row));
+ col_max = (enc->charsetpage[row+1] > 0 ? enc->cols : enc->charsetpage[row]);
+ for (col = 0; col < col_max; col++) {
+ printf(" 0x%04x,", enc->charset2uni[row][col]);
+ if ((col % 8) == 7 && (col+1 < col_max)) printf("\n ");
+ }
+ printf("\n");
+ if (enc->charsetpage[row+1] == 0) {
+ /* End a block. */
+ printf("};\n");
+ }
+ }
+ printf("\n");
+
+ if (is_large) {
+ printf("static const ucs4_t %s_2uni_upages[%d] = {\n ", name, nurows);
+ for (i = 0; i < nurows; i++) {
+ printf(" 0x%05x,", urows[i] << urowshift);
+ if ((i % 8) == 7 && (i+1 < nurows)) printf("\n ");
+ }
+ printf("\n");
+ printf("};\n");
+ printf("\n");
+ }
+
+ printf("static int\n");
+ printf("%s_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)\n", name);
+ printf("{\n");
+ printf(" unsigned char c1 = s[0];\n");
+ printf(" if (");
+ for (i = 0; i < enc->ncharsetblocks; i++) {
+ i1_min = enc->row_byte(enc->charsetblocks[i].start / enc->cols);
+ i1_max = enc->row_byte((enc->charsetblocks[i].end-1) / enc->cols);
+ if (i > 0)
+ printf(" || ");
+ if (i1_min == i1_max)
+ printf("(c1 == 0x%02x)", i1_min);
+ else
+ printf("(c1 >= 0x%02x && c1 <= 0x%02x)", i1_min, i1_max);
+ }
+ printf(") {\n");
+ printf(" if (n >= 2) {\n");
+ printf(" unsigned char c2 = s[1];\n");
+ printf(" if (");
+ printf(enc->check_col_expr, "c2");
+ printf(") {\n");
+ printf(" unsigned int i = %d * (", enc->cols);
+ printf(enc->byte_row_expr, "c1");
+ printf(") + (");
+ printf(enc->byte_col_expr, "c2");
+ printf(");\n");
+ printf(" %s wc = 0xfffd;\n", is_large ? "ucs4_t" : "unsigned short");
+ if (is_large) printf(" unsigned short swc;\n");
+ for (i = 0; i < enc->ncharsetblocks; i++) {
+ printf(" ");
+ if (i > 0)
+ printf("} else ");
+ if (i < enc->ncharsetblocks-1)
+ printf("if (i < %d) ", enc->charsetblocks[i+1].start);
+ printf("{\n");
+ printf(" if (i < %d)\n", enc->charsetblocks[i].end);
+ printf(" %s = ", is_large ? "swc" : "wc");
+ printf("%s_2uni_page%02x[i", name, enc->row_byte(enc->charsetblocks[i].start / enc->cols));
+ if (enc->charsetblocks[i].start > 0)
+ printf("-%d", enc->charsetblocks[i].start);
+ printf("]");
+ if (is_large) printf(",\n wc = %s_2uni_upages[swc>>%d] | (swc & 0x%x)", name, urowshift, (1 << urowshift) - 1);
+ printf(";\n");
+ }
+ printf(" }\n");
+ printf(" if (wc != 0xfffd) {\n");
+ printf(" *pwc = %swc;\n", is_large ? "" : "(ucs4_t) ");
+ printf(" return 2;\n");
+ printf(" }\n");
+ printf(" }\n");
+ printf(" return RET_ILSEQ;\n");
+ printf(" }\n");
+ printf(" return RET_TOOFEW(0);\n");
+ printf(" }\n");
+ printf(" return RET_ILSEQ;\n");
+ printf("}\n");
+ printf("\n");
+}
+
+/*
+ * Outputs the charset to unicode table and function.
+ * (Suitable if the mapping function is well defined, i.e. has no holes, and
+ * is monotonically increasing with small gaps only.)
+ */
+static void output_charset2uni_noholes_monotonic (const char* name, Encoding* enc)
+{
+ int row, col, lastrow, r, col_max, i, i1_min, i1_max;
+
+ /* Choose stepsize so that stepsize*steps_per_row >= enc->cols, and
+ enc->charset2uni[row][col] - enc->charset2uni[row][col/stepsize*stepsize]
+ is always < 0x100. */
+ int steps_per_row = 2;
+ int stepsize = (enc->cols + steps_per_row-1) / steps_per_row;
+
+ find_charset2uni_pages(enc);
+
+ find_charset2uni_blocks(enc);
+
+ for (row = 0; row < enc->rows; row++)
+ if (enc->charsetpage[row] > 0) {
+ if (row == 0 || enc->charsetpage[row-1] == 0) {
+ /* Start a new block. */
+ for (lastrow = row; enc->charsetpage[lastrow+1] > 0; lastrow++);
+ printf("static const unsigned short %s_2uni_main_page%02x[%d] = {\n ",
+ name, enc->row_byte(row),
+ steps_per_row*(lastrow-row+1));
+ for (r = row; r <= lastrow; r++) {
+ for (i = 0; i < steps_per_row; i++)
+ printf(" 0x%04x,", enc->charset2uni[r][i*stepsize]);
+ if (((r-row) % 4) == 3 && (r < lastrow)) printf("\n ");
+ }
+ printf("\n");
+ printf("};\n");
+ printf("static const unsigned char %s_2uni_page%02x[%d] = {\n",
+ name, enc->row_byte(row),
+ (lastrow-row) * enc->cols + enc->charsetpage[lastrow]);
+ }
+ printf(" /""* 0x%02x *""/\n ", enc->row_byte(row));
+ col_max = (enc->charsetpage[row+1] > 0 ? enc->cols : enc->charsetpage[row]);
+ for (col = 0; col < col_max; col++) {
+ printf(" 0x%02x,", enc->charset2uni[row][col] - enc->charset2uni[row][col/stepsize*stepsize]);
+ if ((col % 8) == 7 && (col+1 < col_max)) printf("\n ");
+ }
+ printf("\n");
+ if (enc->charsetpage[row+1] == 0) {
+ /* End a block. */
+ printf("};\n");
+ }
+ }
+ printf("\n");
+
+ printf("static int\n");
+ printf("%s_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)\n", name);
+ printf("{\n");
+ printf(" unsigned char c1 = s[0];\n");
+ printf(" if (");
+ for (i = 0; i < enc->ncharsetblocks; i++) {
+ i1_min = enc->row_byte(enc->charsetblocks[i].start / enc->cols);
+ i1_max = enc->row_byte((enc->charsetblocks[i].end-1) / enc->cols);
+ if (i > 0)
+ printf(" || ");
+ if (i1_min == i1_max)
+ printf("(c1 == 0x%02x)", i1_min);
+ else
+ printf("(c1 >= 0x%02x && c1 <= 0x%02x)", i1_min, i1_max);
+ }
+ printf(") {\n");
+ printf(" if (n >= 2) {\n");
+ printf(" unsigned char c2 = s[1];\n");
+ printf(" if (");
+ printf(enc->check_col_expr, "c2");
+ printf(") {\n");
+ printf(" unsigned int row = ");
+ printf(enc->byte_row_expr, "c1");
+ printf(";\n");
+ printf(" unsigned int col = ");
+ printf(enc->byte_col_expr, "c2");
+ printf(";\n");
+ printf(" unsigned int i = %d * row + col;\n", enc->cols);
+ printf(" unsigned short wc = 0xfffd;\n");
+ for (i = 0; i < enc->ncharsetblocks; i++) {
+ printf(" ");
+ if (i > 0)
+ printf("} else ");
+ if (i < enc->ncharsetblocks-1)
+ printf("if (i < %d) ", enc->charsetblocks[i+1].start);
+ printf("{\n");
+ printf(" if (i < %d)\n", enc->charsetblocks[i].end);
+ printf(" wc = %s_2uni_main_page%02x[%d*", name, enc->row_byte(enc->charsetblocks[i].start / enc->cols), steps_per_row);
+ if (enc->charsetblocks[i].start > 0)
+ printf("(row-%d)", enc->charsetblocks[i].start / enc->cols);
+ else
+ printf("row");
+ printf("+");
+ if (steps_per_row == 2)
+ printf("(col>=%d?1:0)", stepsize);
+ else
+ printf("col/%d", stepsize);
+ printf("] + %s_2uni_page%02x[i", name, enc->row_byte(enc->charsetblocks[i].start / enc->cols));
+ if (enc->charsetblocks[i].start > 0)
+ printf("-%d", enc->charsetblocks[i].start);
+ printf("];\n");
+ }
+ printf(" }\n");
+ printf(" if (wc != 0xfffd) {\n");
+ printf(" *pwc = (ucs4_t) wc;\n");
+ printf(" return 2;\n");
+ printf(" }\n");
+ printf(" }\n");
+ printf(" return RET_ILSEQ;\n");
+ printf(" }\n");
+ printf(" return RET_TOOFEW(0);\n");
+ printf(" }\n");
+ printf(" return RET_ILSEQ;\n");
+ printf("}\n");
+ printf("\n");
+}
+
+/*
+ * Computes the uni2charset[0x0000..0x2ffff] array.
+ */
+static void invert (Encoding* enc)
+{
+ int row, col, j;
+
+ enc->uni2charset = (int*) malloc(0x30000*sizeof(int));
+
+ for (j = 0; j < 0x30000; j++)
+ enc->uni2charset[j] = 0;
+
+ for (row = 0; row < enc->rows; row++)
+ for (col = 0; col < enc->cols; col++) {
+ j = enc->charset2uni[row][col];
+ if (j != 0xfffd)
+ enc->uni2charset[j] = 0x100 * enc->row_byte(row) + enc->col_byte(col);
+ }
+}
+
+/*
+ * Outputs the unicode to charset table and function, using a linear array.
+ * (Suitable if the table is dense.)
+ */
+static void output_uni2charset_dense (const char* name, Encoding* enc)
+{
+ /* Like in 8bit_tab_to_h.c */
+ bool pages[0x300];
+ int line[0x6000];
+ int tableno;
+ struct { int minline; int maxline; int usecount; } tables[0x6000];
+ bool first;
+ int row, col, j, p, j1, j2, t;
+
+ for (p = 0; p < 0x300; p++)
+ pages[p] = false;
+ for (row = 0; row < enc->rows; row++)
+ for (col = 0; col < enc->cols; col++) {
+ j = enc->charset2uni[row][col];
+ if (j != 0xfffd)
+ pages[j>>8] = true;
+ }
+ for (j1 = 0; j1 < 0x6000; j1++) {
+ bool all_invalid = true;
+ for (j2 = 0; j2 < 8; j2++) {
+ j = 8*j1+j2;
+ if (enc->uni2charset[j] != 0)
+ all_invalid = false;
+ }
+ if (all_invalid)
+ line[j1] = -1;
+ else
+ line[j1] = 0;
+ }
+ tableno = 0;
+ for (j1 = 0; j1 < 0x6000; j1++) {
+ if (line[j1] >= 0) {
+ if (tableno > 0
+ && ((j1 > 0 && line[j1-1] == tableno-1)
+ || ((tables[tableno-1].maxline >> 5) == (j1 >> 5)
+ && j1 - tables[tableno-1].maxline <= 8))) {
+ line[j1] = tableno-1;
+ tables[tableno-1].maxline = j1;
+ } else {
+ tableno++;
+ line[j1] = tableno-1;
+ tables[tableno-1].minline = tables[tableno-1].maxline = j1;
+ }
+ }
+ }
+ for (t = 0; t < tableno; t++) {
+ tables[t].usecount = 0;
+ j1 = 8*tables[t].minline;
+ j2 = 8*(tables[t].maxline+1);
+ for (j = j1; j < j2; j++)
+ if (enc->uni2charset[j] != 0)
+ tables[t].usecount++;
+ }
+ {
+ p = -1;
+ for (t = 0; t < tableno; t++)
+ if (tables[t].usecount > 1) {
+ p = tables[t].minline >> 5;
+ printf("static const unsigned short %s_page%02x[%d] = {\n", name, p, 8*(tables[t].maxline-tables[t].minline+1));
+ for (j1 = tables[t].minline; j1 <= tables[t].maxline; j1++) {
+ if ((j1 % 0x20) == 0 && j1 > tables[t].minline)
+ printf(" /* 0x%04x */\n", 8*j1);
+ printf(" ");
+ for (j2 = 0; j2 < 8; j2++) {
+ j = 8*j1+j2;
+ printf(" 0x%04x,", enc->uni2charset[j]);
+ }
+ printf(" /*0x%02x-0x%02x*/\n", 8*(j1 % 0x20), 8*(j1 % 0x20)+7);
+ }
+ printf("};\n");
+ }
+ if (p >= 0)
+ printf("\n");
+ }
+ printf("static int\n%s_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)\n", name);
+ printf("{\n");
+ printf(" if (n >= 2) {\n");
+ printf(" unsigned short c = 0;\n");
+ first = true;
+ for (j1 = 0; j1 < 0x6000;) {
+ t = line[j1];
+ for (j2 = j1; j2 < 0x6000 && line[j2] == t; j2++);
+ if (t >= 0) {
+ if (j1 != tables[t].minline) abort();
+ if (j2 > tables[t].maxline+1) abort();
+ j2 = tables[t].maxline+1;
+ if (first)
+ printf(" ");
+ else
+ printf(" else ");
+ first = false;
+ if (tables[t].usecount == 0) abort();
+ if (tables[t].usecount == 1) {
+ if (j2 != j1+1) abort();
+ for (j = 8*j1; j < 8*j2; j++)
+ if (enc->uni2charset[j] != 0) {
+ printf("if (wc == 0x%04x)\n c = 0x%02x;\n", j, enc->uni2charset[j]);
+ break;
+ }
+ } else {
+ if (j1 == 0) {
+ printf("if (wc < 0x%04x)", 8*j2);
+ } else {
+ printf("if (wc >= 0x%04x && wc < 0x%04x)", 8*j1, 8*j2);
+ }
+ printf("\n c = %s_page%02x[wc", name, j1 >> 5);
+ if (tables[t].minline > 0)
+ printf("-0x%04x", 8*j1);
+ printf("];\n");
+ }
+ }
+ j1 = j2;
+ }
+ printf(" if (c != 0) {\n");
+ printf(" r[0] = (c >> 8); r[1] = (c & 0xff);\n");
+ printf(" return 2;\n");
+ printf(" }\n");
+ printf(" return RET_ILUNI;\n");
+ printf(" }\n");
+ printf(" return RET_TOOSMALL;\n");
+ printf("}\n");
+}
+
+/*
+ * Outputs the unicode to charset table and function, using a packed array.
+ * (Suitable if the table is sparse.)
+ * The argument 'monotonic' may be set to true if the mapping is monotonically
+ * increasing with small gaps only.
+ */
+static void output_uni2charset_sparse (const char* name, Encoding* enc, bool monotonic)
+{
+ bool pages[0x300];
+ Block pageblocks[0x300]; int npageblocks;
+ int indx2charset[0x30000];
+ int summary_indx[0x3000];
+ int summary_used[0x3000];
+ int i, row, col, j, p, j1, j2, indx;
+ bool is_large;
+ /* for monotonic: */
+ int log2_stepsize = (!strcmp(name,"uhc_2") ? 6 : 7);
+ int stepsize = 1 << log2_stepsize;
+ int indxsteps;
+
+ /* Fill pages[0x300]. */
+ for (p = 0; p < 0x300; p++)
+ pages[p] = false;
+ for (row = 0; row < enc->rows; row++)
+ for (col = 0; col < enc->cols; col++) {
+ j = enc->charset2uni[row][col];
+ if (j != 0xfffd)
+ pages[j>>8] = true;
+ }
+
+ /* Determine whether two or three bytes are needed for each character. */
+ is_large = false;
+ for (j = 0; j < 0x30000; j++)
+ if (enc->uni2charset[j] >= 0x10000)
+ is_large = true;
+
+#if 0
+ for (p = 0; p < 0x300; p++)
+ if (pages[p]) {
+ printf("static const unsigned short %s_page%02x[256] = {\n", name, p);
+ for (j1 = 0; j1 < 32; j1++) {
+ printf(" ");
+ for (j2 = 0; j2 < 8; j2++)
+ printf("0x%04x, ", enc->uni2charset[256*p+8*j1+j2]);
+ printf("/""*0x%02x-0x%02x*""/\n", 8*j1, 8*j1+7);
+ }
+ printf("};\n");
+ }
+ printf("\n");
+#endif
+
+ /* Fill summary_indx[] and summary_used[]. */
+ indx = 0;
+ for (j1 = 0; j1 < 0x3000; j1++) {
+ summary_indx[j1] = indx;
+ summary_used[j1] = 0;
+ for (j2 = 0; j2 < 16; j2++) {
+ j = 16*j1+j2;
+ if (enc->uni2charset[j] != 0) {
+ indx2charset[indx++] = enc->uni2charset[j];
+ summary_used[j1] |= (1 << j2);
+ }
+ }
+ }
+
+ /* Fill npageblocks and pageblocks[]. */
+ npageblocks = 0;
+ for (p = 0; p < 0x300; ) {
+ if (pages[p] && (p == 0 || !pages[p-1])) {
+ pageblocks[npageblocks].start = 16*p;
+ do p++; while (p < 0x300 && pages[p]);
+ j1 = 16*p;
+ while (summary_used[j1-1] == 0) j1--;
+ pageblocks[npageblocks].end = j1;
+ npageblocks++;
+ } else
+ p++;
+ }
+
+ if (monotonic) {
+ indxsteps = (indx + stepsize-1) / stepsize;
+ printf("static const unsigned short %s_2charset_main[%d] = {\n", name, indxsteps);
+ for (i = 0; i < indxsteps; ) {
+ if ((i % 8) == 0) printf(" ");
+ printf(" 0x%04x,", indx2charset[i*stepsize]);
+ i++;
+ if ((i % 8) == 0 || i == indxsteps) printf("\n");
+ }
+ printf("};\n");
+ printf("static const unsigned char %s_2charset[%d] = {\n", name, indx);
+ for (i = 0; i < indx; ) {
+ if ((i % 8) == 0) printf(" ");
+ printf(" 0x%02x,", indx2charset[i] - indx2charset[i/stepsize*stepsize]);
+ i++;
+ if ((i % 8) == 0 || i == indx) printf("\n");
+ }
+ printf("};\n");
+ } else {
+ if (is_large) {
+ printf("static const unsigned char %s_2charset[3*%d] = {\n", name, indx);
+ for (i = 0; i < indx; ) {
+ if ((i % 4) == 0) printf(" ");
+ printf(" 0x%1x,0x%02x,0x%02x,", indx2charset[i] >> 16,
+ (indx2charset[i] >> 8) & 0xff, indx2charset[i] & 0xff);
+ i++;
+ if ((i % 4) == 0 || i == indx) printf("\n");
+ }
+ printf("};\n");
+ } else {
+ printf("static const unsigned short %s_2charset[%d] = {\n", name, indx);
+ for (i = 0; i < indx; ) {
+ if ((i % 8) == 0) printf(" ");
+ printf(" 0x%04x,", indx2charset[i]);
+ i++;
+ if ((i % 8) == 0 || i == indx) printf("\n");
+ }
+ printf("};\n");
+ }
+ }
+ printf("\n");
+ for (i = 0; i < npageblocks; i++) {
+ printf("static const Summary16 %s_uni2indx_page%02x[%d] = {\n", name,
+ pageblocks[i].start/16, pageblocks[i].end-pageblocks[i].start);
+ for (j1 = pageblocks[i].start; j1 < pageblocks[i].end; ) {
+ if (((16*j1) % 0x100) == 0) printf(" /""* 0x%04x *""/\n", 16*j1);
+ if ((j1 % 4) == 0) printf(" ");
+ printf(" { %4d, 0x%04x },", summary_indx[j1], summary_used[j1]);
+ j1++;
+ if ((j1 % 4) == 0 || j1 == pageblocks[i].end) printf("\n");
+ }
+ printf("};\n");
+ }
+ printf("\n");
+
+ printf("static int\n");
+ printf("%s_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)\n", name);
+ printf("{\n");
+ printf(" if (n >= 2) {\n");
+ printf(" const Summary16 *summary = NULL;\n");
+ for (i = 0; i < npageblocks; i++) {
+ printf(" ");
+ if (i > 0)
+ printf("else ");
+ printf("if (wc >= 0x%04x && wc < 0x%04x)\n",
+ 16*pageblocks[i].start, 16*pageblocks[i].end);
+ printf(" summary = &%s_uni2indx_page%02x[(wc>>4)", name,
+ pageblocks[i].start/16);
+ if (pageblocks[i].start > 0)
+ printf("-0x%03x", pageblocks[i].start);
+ printf("];\n");
+ }
+ printf(" if (summary) {\n");
+ printf(" unsigned short used = summary->used;\n");
+ printf(" unsigned int i = wc & 0x0f;\n");
+ printf(" if (used & ((unsigned short) 1 << i)) {\n");
+ if (monotonic || !is_large)
+ printf(" unsigned short c;\n");
+ printf(" /* Keep in `used' only the bits 0..i-1. */\n");
+ printf(" used &= ((unsigned short) 1 << i) - 1;\n");
+ printf(" /* Add `summary->indx' and the number of bits set in `used'. */\n");
+ printf(" used = (used & 0x5555) + ((used & 0xaaaa) >> 1);\n");
+ printf(" used = (used & 0x3333) + ((used & 0xcccc) >> 2);\n");
+ printf(" used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4);\n");
+ printf(" used = (used & 0x00ff) + (used >> 8);\n");
+ if (monotonic) {
+ printf(" used += summary->indx;\n");
+ printf(" c = %s_2charset_main[used>>%d] + %s_2charset[used];\n", name, log2_stepsize, name);
+ printf(" r[0] = (c >> 8); r[1] = (c & 0xff);\n");
+ printf(" return 2;\n");
+ } else {
+ if (is_large) {
+ printf(" used += summary->indx;\n");
+ printf(" r[0] = %s_2charset[3*used];\n", name);
+ printf(" r[1] = %s_2charset[3*used+1];\n", name);
+ printf(" r[2] = %s_2charset[3*used+2];\n", name);
+ printf(" return 3;\n");
+ } else {
+ printf(" c = %s_2charset[summary->indx + used];\n", name);
+ printf(" r[0] = (c >> 8); r[1] = (c & 0xff);\n");
+ printf(" return 2;\n");
+ }
+ }
+ printf(" }\n");
+ printf(" }\n");
+ printf(" return RET_ILUNI;\n");
+ printf(" }\n");
+ printf(" return RET_TOOSMALL;\n");
+ printf("}\n");
+}
+
+/* ISO-2022/EUC specifics */
+
+static int row_byte_normal (int row) { return 0x21+row; }
+static int col_byte_normal (int col) { return 0x21+col; }
+static int byte_row_normal (int byte) { return byte-0x21; }
+static int byte_col_normal (int byte) { return byte-0x21; }
+
+static void do_normal (const char* name)
+{
+ Encoding enc;
+
+ enc.rows = 94;
+ enc.cols = 94;
+ enc.row_byte = row_byte_normal;
+ enc.col_byte = col_byte_normal;
+ enc.byte_row = byte_row_normal;
+ enc.byte_col = byte_col_normal;
+ enc.check_row_expr = "%1$s >= 0x21 && %1$s < 0x7f";
+ enc.check_col_expr = "%1$s >= 0x21 && %1$s < 0x7f";
+ enc.byte_row_expr = "%1$s - 0x21";
+ enc.byte_col_expr = "%1$s - 0x21";
+
+ read_table(&enc);
+ output_charset2uni(name,&enc);
+ invert(&enc); output_uni2charset_sparse(name,&enc,false);
+}
+
+/* Note: On first sight, the jisx0212_2charset[] table seems to be in order,
+ starting from the charset=0x3021/uni=0x4e02 pair. But it's only mostly in
+ order. There are 75 out-of-order values, scattered all throughout the table.
+ */
+
+static void do_normal_only_charset2uni (const char* name)
+{
+ Encoding enc;
+
+ enc.rows = 94;
+ enc.cols = 94;
+ enc.row_byte = row_byte_normal;
+ enc.col_byte = col_byte_normal;
+ enc.byte_row = byte_row_normal;
+ enc.byte_col = byte_col_normal;
+ enc.check_row_expr = "%1$s >= 0x21 && %1$s < 0x7f";
+ enc.check_col_expr = "%1$s >= 0x21 && %1$s < 0x7f";
+ enc.byte_row_expr = "%1$s - 0x21";
+ enc.byte_col_expr = "%1$s - 0x21";
+
+ read_table(&enc);
+ output_charset2uni(name,&enc);
+}
+
+/* CNS 11643 specifics - trick to put two tables into one */
+
+static int row_byte_cns11643 (int row) {
+ return 0x100 * (row / 94) + (row % 94) + 0x21;
+}
+static int byte_row_cns11643 (int byte) {
+ return (byte >> 8) * 94 + (byte & 0xff) - 0x21;
+}
+
+static void do_cns11643_only_uni2charset (const char* name)
+{
+ Encoding enc;
+
+ enc.rows = 16*94;
+ enc.cols = 94;
+ enc.row_byte = row_byte_cns11643;
+ enc.col_byte = col_byte_normal;
+ enc.byte_row = byte_row_cns11643;
+ enc.byte_col = byte_col_normal;
+ enc.check_row_expr = "%1$s >= 0x21 && %1$s < 0x7f";
+ enc.check_col_expr = "%1$s >= 0x21 && %1$s < 0x7f";
+ enc.byte_row_expr = "%1$s - 0x21";
+ enc.byte_col_expr = "%1$s - 0x21";
+
+ read_table(&enc);
+ invert(&enc);
+ output_uni2charset_sparse(name,&enc,false);
+}
+
+/* GBK specifics */
+
+static int row_byte_gbk1 (int row) {
+ return 0x81+row;
+}
+static int col_byte_gbk1 (int col) {
+ return (col >= 0x3f ? 0x41 : 0x40) + col;
+}
+static int byte_row_gbk1 (int byte) {
+ if (byte >= 0x81 && byte < 0xff)
+ return byte-0x81;
+ else
+ return -1;
+}
+static int byte_col_gbk1 (int byte) {
+ if (byte >= 0x40 && byte < 0x7f)
+ return byte-0x40;
+ else if (byte >= 0x80 && byte < 0xff)
+ return byte-0x41;
+ else
+ return -1;
+}
+
+static void do_gbk1 (const char* name)
+{
+ Encoding enc;
+
+ enc.rows = 126;
+ enc.cols = 190;
+ enc.row_byte = row_byte_gbk1;
+ enc.col_byte = col_byte_gbk1;
+ enc.byte_row = byte_row_gbk1;
+ enc.byte_col = byte_col_gbk1;
+ enc.check_row_expr = "%1$s >= 0x81 && %1$s < 0xff";
+ enc.check_col_expr = "(%1$s >= 0x40 && %1$s < 0x7f) || (%1$s >= 0x80 && %1$s < 0xff)";
+ enc.byte_row_expr = "%1$s - 0x81";
+ enc.byte_col_expr = "%1$s - (%1$s >= 0x80 ? 0x41 : 0x40)";
+
+ read_table(&enc);
+ output_charset2uni(name,&enc);
+ invert(&enc); output_uni2charset_dense(name,&enc);
+}
+
+static void do_gbk1_only_charset2uni (const char* name)
+{
+ Encoding enc;
+
+ enc.rows = 126;
+ enc.cols = 190;
+ enc.row_byte = row_byte_gbk1;
+ enc.col_byte = col_byte_gbk1;
+ enc.byte_row = byte_row_gbk1;
+ enc.byte_col = byte_col_gbk1;
+ enc.check_row_expr = "%1$s >= 0x81 && %1$s < 0xff";
+ enc.check_col_expr = "(%1$s >= 0x40 && %1$s < 0x7f) || (%1$s >= 0x80 && %1$s < 0xff)";
+ enc.byte_row_expr = "%1$s - 0x81";
+ enc.byte_col_expr = "%1$s - (%1$s >= 0x80 ? 0x41 : 0x40)";
+
+ read_table(&enc);
+ output_charset2uni(name,&enc);
+}
+
+static int row_byte_gbk2 (int row) {
+ return 0x81+row;
+}
+static int col_byte_gbk2 (int col) {
+ return (col >= 0x3f ? 0x41 : 0x40) + col;
+}
+static int byte_row_gbk2 (int byte) {
+ if (byte >= 0x81 && byte < 0xff)
+ return byte-0x81;
+ else
+ return -1;
+}
+static int byte_col_gbk2 (int byte) {
+ if (byte >= 0x40 && byte < 0x7f)
+ return byte-0x40;
+ else if (byte >= 0x80 && byte < 0xa1)
+ return byte-0x41;
+ else
+ return -1;
+}
+
+static void do_gbk2_only_charset2uni (const char* name)
+{
+ Encoding enc;
+
+ enc.rows = 126;
+ enc.cols = 96;
+ enc.row_byte = row_byte_gbk2;
+ enc.col_byte = col_byte_gbk2;
+ enc.byte_row = byte_row_gbk2;
+ enc.byte_col = byte_col_gbk2;
+ enc.check_row_expr = "%1$s >= 0x81 && %1$s < 0xff";
+ enc.check_col_expr = "(%1$s >= 0x40 && %1$s < 0x7f) || (%1$s >= 0x80 && %1$s < 0xa1)";
+ enc.byte_row_expr = "%1$s - 0x81";
+ enc.byte_col_expr = "%1$s - (%1$s >= 0x80 ? 0x41 : 0x40)";
+
+ read_table(&enc);
+ output_charset2uni(name,&enc);
+}
+
+static void do_gbk1_only_uni2charset (const char* name)
+{
+ Encoding enc;
+
+ enc.rows = 126;
+ enc.cols = 190;
+ enc.row_byte = row_byte_gbk1;
+ enc.col_byte = col_byte_gbk1;
+ enc.byte_row = byte_row_gbk1;
+ enc.byte_col = byte_col_gbk1;
+ enc.check_row_expr = "%1$s >= 0x81 && %1$s < 0xff";
+ enc.check_col_expr = "(%1$s >= 0x40 && %1$s < 0x7f) || (%1$s >= 0x80 && %1$s < 0xff)";
+ enc.byte_row_expr = "%1$s - 0x81";
+ enc.byte_col_expr = "%1$s - (%1$s >= 0x80 ? 0x41 : 0x40)";
+
+ read_table(&enc);
+ invert(&enc); output_uni2charset_sparse(name,&enc,false);
+}
+
+/* KSC 5601 specifics */
+
+/*
+ * Reads the charset2uni table from standard input.
+ */
+static void read_table_ksc5601 (Encoding* enc)
+{
+ int row, col, i, i1, i2, c, j;
+
+ enc->charset2uni = (int**) malloc(enc->rows*sizeof(int*));
+ for (row = 0; row < enc->rows; row++)
+ enc->charset2uni[row] = (int*) malloc(enc->cols*sizeof(int));
+
+ for (row = 0; row < enc->rows; row++)
+ for (col = 0; col < enc->cols; col++)
+ enc->charset2uni[row][col] = 0xfffd;
+
+ c = getc(stdin);
+ ungetc(c,stdin);
+ if (c == '#') {
+ /* Read a unicode.org style .TXT file. */
+ for (;;) {
+ c = getc(stdin);
+ if (c == EOF)
+ break;
+ if (c == '\n' || c == ' ' || c == '\t')
+ continue;
+ if (c == '#') {
+ do { c = getc(stdin); } while (!(c == EOF || c == '\n'));
+ continue;
+ }
+ ungetc(c,stdin);
+ if (scanf("0x%x", &j) != 1)
+ exit(1);
+ i1 = j >> 8;
+ i2 = j & 0xff;
+ if (scanf(" 0x%x", &j) != 1)
+ exit(1);
+ /* Take only the range covered by KS C 5601.1987-0 = KS C 5601.1989-0
+ = KS X 1001.1992, ignore the rest. */
+ if (!(i1 >= 128+33 && i1 < 128+127 && i2 >= 128+33 && i2 < 128+127))
+ continue; /* KSC5601 specific */
+ i1 &= 0x7f; /* KSC5601 specific */
+ i2 &= 0x7f; /* KSC5601 specific */
+ row = enc->byte_row(i1);
+ col = enc->byte_col(i2);
+ if (row < 0 || col < 0) {
+ fprintf(stderr, "lost entry for %02x %02x\n", i1, i2);
+ exit(1);
+ }
+ enc->charset2uni[row][col] = j;
+ }
+ } else {
+ /* Read a table of hexadecimal Unicode values. */
+ for (i1 = 33; i1 < 127; i1++)
+ for (i2 = 33; i2 < 127; i2++) {
+ i = scanf("%x", &j);
+ if (i == EOF)
+ goto read_done;
+ if (i != 1)
+ exit(1);
+ if (j < 0 || j == 0xffff)
+ j = 0xfffd;
+ if (j != 0xfffd) {
+ if (enc->byte_row(i1) < 0 || enc->byte_col(i2) < 0) {
+ fprintf(stderr, "lost entry at %02x %02x\n", i1, i2);
+ exit (1);
+ }
+ enc->charset2uni[enc->byte_row(i1)][enc->byte_col(i2)] = j;
+ }
+ }
+ read_done: ;
+ }
+}
+
+static void do_ksc5601 (const char* name)
+{
+ Encoding enc;
+
+ enc.rows = 94;
+ enc.cols = 94;
+ enc.row_byte = row_byte_normal;
+ enc.col_byte = col_byte_normal;
+ enc.byte_row = byte_row_normal;
+ enc.byte_col = byte_col_normal;
+ enc.check_row_expr = "%1$s >= 0x21 && %1$s < 0x7f";
+ enc.check_col_expr = "%1$s >= 0x21 && %1$s < 0x7f";
+ enc.byte_row_expr = "%1$s - 0x21";
+ enc.byte_col_expr = "%1$s - 0x21";
+
+ read_table_ksc5601(&enc);
+ output_charset2uni(name,&enc);
+ invert(&enc); output_uni2charset_sparse(name,&enc,false);
+}
+
+/* UHC specifics */
+
+/* UHC part 1: 0x{81..A0}{41..5A,61..7A,81..FE} */
+
+static int row_byte_uhc_1 (int row) {
+ return 0x81 + row;
+}
+static int col_byte_uhc_1 (int col) {
+ return (col >= 0x34 ? 0x4d : col >= 0x1a ? 0x47 : 0x41) + col;
+}
+static int byte_row_uhc_1 (int byte) {
+ if (byte >= 0x81 && byte < 0xa1)
+ return byte-0x81;
+ else
+ return -1;
+}
+static int byte_col_uhc_1 (int byte) {
+ if (byte >= 0x41 && byte < 0x5b)
+ return byte-0x41;
+ else if (byte >= 0x61 && byte < 0x7b)
+ return byte-0x47;
+ else if (byte >= 0x81 && byte < 0xff)
+ return byte-0x4d;
+ else
+ return -1;
+}
+
+static void do_uhc_1 (const char* name)
+{
+ Encoding enc;
+
+ enc.rows = 32;
+ enc.cols = 178;
+ enc.row_byte = row_byte_uhc_1;
+ enc.col_byte = col_byte_uhc_1;
+ enc.byte_row = byte_row_uhc_1;
+ enc.byte_col = byte_col_uhc_1;
+ enc.check_row_expr = "(%1$s >= 0x81 && %1$s < 0xa1)";
+ enc.check_col_expr = "(%1$s >= 0x41 && %1$s < 0x5b) || (%1$s >= 0x61 && %1$s < 0x7b) || (%1$s >= 0x81 && %1$s < 0xff)";
+ enc.byte_row_expr = "%1$s - 0x81";
+ enc.byte_col_expr = "%1$s - (%1$s >= 0x81 ? 0x4d : %1$s >= 0x61 ? 0x47 : 0x41)";
+
+ read_table(&enc);
+ output_charset2uni_noholes_monotonic(name,&enc);
+ invert(&enc); output_uni2charset_sparse(name,&enc,true);
+}
+
+/* UHC part 2: 0x{A1..C6}{41..5A,61..7A,81..A0} */
+
+static int row_byte_uhc_2 (int row) {
+ return 0xa1 + row;
+}
+static int col_byte_uhc_2 (int col) {
+ return (col >= 0x34 ? 0x4d : col >= 0x1a ? 0x47 : 0x41) + col;
+}
+static int byte_row_uhc_2 (int byte) {
+ if (byte >= 0xa1 && byte < 0xff)
+ return byte-0xa1;
+ else
+ return -1;
+}
+static int byte_col_uhc_2 (int byte) {
+ if (byte >= 0x41 && byte < 0x5b)
+ return byte-0x41;
+ else if (byte >= 0x61 && byte < 0x7b)
+ return byte-0x47;
+ else if (byte >= 0x81 && byte < 0xa1)
+ return byte-0x4d;
+ else
+ return -1;
+}
+
+static void do_uhc_2 (const char* name)
+{
+ Encoding enc;
+
+ enc.rows = 94;
+ enc.cols = 84;
+ enc.row_byte = row_byte_uhc_2;
+ enc.col_byte = col_byte_uhc_2;
+ enc.byte_row = byte_row_uhc_2;
+ enc.byte_col = byte_col_uhc_2;
+ enc.check_row_expr = "(%1$s >= 0xa1 && %1$s < 0xff)";
+ enc.check_col_expr = "(%1$s >= 0x41 && %1$s < 0x5b) || (%1$s >= 0x61 && %1$s < 0x7b) || (%1$s >= 0x81 && %1$s < 0xa1)";
+ enc.byte_row_expr = "%1$s - 0xa1";
+ enc.byte_col_expr = "%1$s - (%1$s >= 0x81 ? 0x4d : %1$s >= 0x61 ? 0x47 : 0x41)";
+
+ read_table(&enc);
+ output_charset2uni_noholes_monotonic(name,&enc);
+ invert(&enc); output_uni2charset_sparse(name,&enc,true);
+}
+
+/* Big5 specifics */
+
+static int row_byte_big5 (int row) {
+ return 0xa1+row;
+}
+static int col_byte_big5 (int col) {
+ return (col >= 0x3f ? 0x62 : 0x40) + col;
+}
+static int byte_row_big5 (int byte) {
+ if (byte >= 0xa1 && byte < 0xff)
+ return byte-0xa1;
+ else
+ return -1;
+}
+static int byte_col_big5 (int byte) {
+ if (byte >= 0x40 && byte < 0x7f)
+ return byte-0x40;
+ else if (byte >= 0xa1 && byte < 0xff)
+ return byte-0x62;
+ else
+ return -1;
+}
+
+static void do_big5 (const char* name)
+{
+ Encoding enc;
+
+ enc.rows = 94;
+ enc.cols = 157;
+ enc.row_byte = row_byte_big5;
+ enc.col_byte = col_byte_big5;
+ enc.byte_row = byte_row_big5;
+ enc.byte_col = byte_col_big5;
+ enc.check_row_expr = "%1$s >= 0xa1 && %1$s < 0xff";
+ enc.check_col_expr = "(%1$s >= 0x40 && %1$s < 0x7f) || (%1$s >= 0xa1 && %1$s < 0xff)";
+ enc.byte_row_expr = "%1$s - 0xa1";
+ enc.byte_col_expr = "%1$s - (%1$s >= 0xa1 ? 0x62 : 0x40)";
+
+ read_table(&enc);
+ output_charset2uni(name,&enc);
+ invert(&enc); output_uni2charset_sparse(name,&enc,false);
+}
+
+/* HKSCS specifics */
+
+static int row_byte_hkscs (int row) {
+ return 0x80+row;
+}
+static int byte_row_hkscs (int byte) {
+ if (byte >= 0x80 && byte < 0xff)
+ return byte-0x80;
+ else
+ return -1;
+}
+
+static void do_hkscs (const char* name)
+{
+ Encoding enc;
+
+ enc.rows = 128;
+ enc.cols = 157;
+ enc.row_byte = row_byte_hkscs;
+ enc.col_byte = col_byte_big5;
+ enc.byte_row = byte_row_hkscs;
+ enc.byte_col = byte_col_big5;
+ enc.check_row_expr = "%1$s >= 0x80 && %1$s < 0xff";
+ enc.check_col_expr = "(%1$s >= 0x40 && %1$s < 0x7f) || (%1$s >= 0xa1 && %1$s < 0xff)";
+ enc.byte_row_expr = "%1$s - 0x80";
+ enc.byte_col_expr = "%1$s - (%1$s >= 0xa1 ? 0x62 : 0x40)";
+
+ read_table(&enc);
+ output_charset2uni(name,&enc);
+ invert(&enc); output_uni2charset_sparse(name,&enc,false);
+}
+
+/* Johab Hangul specifics */
+
+static int row_byte_johab_hangul (int row) {
+ return 0x84+row;
+}
+static int col_byte_johab_hangul (int col) {
+ return (col >= 0x3e ? 0x43 : 0x41) + col;
+}
+static int byte_row_johab_hangul (int byte) {
+ if (byte >= 0x84 && byte < 0xd4)
+ return byte-0x84;
+ else
+ return -1;
+}
+static int byte_col_johab_hangul (int byte) {
+ if (byte >= 0x41 && byte < 0x7f)
+ return byte-0x41;
+ else if (byte >= 0x81 && byte < 0xff)
+ return byte-0x43;
+ else
+ return -1;
+}
+
+static void do_johab_hangul (const char* name)
+{
+ Encoding enc;
+
+ enc.rows = 80;
+ enc.cols = 188;
+ enc.row_byte = row_byte_johab_hangul;
+ enc.col_byte = col_byte_johab_hangul;
+ enc.byte_row = byte_row_johab_hangul;
+ enc.byte_col = byte_col_johab_hangul;
+ enc.check_row_expr = "%1$s >= 0x84 && %1$s < 0xd4";
+ enc.check_col_expr = "(%1$s >= 0x41 && %1$s < 0x7f) || (%1$s >= 0x81 && %1$s < 0xff)";
+ enc.byte_row_expr = "%1$s - 0x84";
+ enc.byte_col_expr = "%1$s - (%1$s >= 0x81 ? 0x43 : 0x41)";
+
+ read_table(&enc);
+ output_charset2uni(name,&enc);
+ invert(&enc); output_uni2charset_dense(name,&enc);
+}
+
+/* SJIS specifics */
+
+static int row_byte_sjis (int row) {
+ return (row >= 0x1f ? 0xc1 : 0x81) + row;
+}
+static int col_byte_sjis (int col) {
+ return (col >= 0x3f ? 0x41 : 0x40) + col;
+}
+static int byte_row_sjis (int byte) {
+ if (byte >= 0x81 && byte < 0xa0)
+ return byte-0x81;
+ else if (byte >= 0xe0)
+ return byte-0xc1;
+ else
+ return -1;
+}
+static int byte_col_sjis (int byte) {
+ if (byte >= 0x40 && byte < 0x7f)
+ return byte-0x40;
+ else if (byte >= 0x80 && byte < 0xfd)
+ return byte-0x41;
+ else
+ return -1;
+}
+
+static void do_sjis (const char* name)
+{
+ Encoding enc;
+
+ enc.rows = 94;
+ enc.cols = 188;
+ enc.row_byte = row_byte_sjis;
+ enc.col_byte = col_byte_sjis;
+ enc.byte_row = byte_row_sjis;
+ enc.byte_col = byte_col_sjis;
+ enc.check_row_expr = "(%1$s >= 0x81 && %1$s < 0xa0) || (%1$s >= 0xe0)";
+ enc.check_col_expr = "(%1$s >= 0x40 && %1$s < 0x7f) || (%1$s >= 0x80 && %1$s < 0xfd)";
+ enc.byte_row_expr = "%1$s - (%1$s >= 0xe0 ? 0xc1 : 0x81)";
+ enc.byte_col_expr = "%1$s - (%1$s >= 0x80 ? 0x41 : 0x40)";
+
+ read_table(&enc);
+ output_charset2uni(name,&enc);
+ invert(&enc); output_uni2charset_sparse(name,&enc,false);
+}
+
+/* GB18030 Unicode specifics */
+
+static void do_gb18030uni (const char* name)
+{
+ int c;
+ unsigned int bytes;
+ int i1, i2, i3, i4, i, j, k;
+ int charset2uni[4*10*126*10];
+ int uni2charset[0x10000];
+ struct { int low; int high; int diff; int total; } ranges[256];
+ int ranges_count, ranges_total;
+
+ for (i = 0; i < 4*10*126*10; i++)
+ charset2uni[i] = 0;
+ for (j = 0; j < 0x10000; j++)
+ uni2charset[j] = 0;
+
+ /* Read a unicode.org style .TXT file. */
+ for (;;) {
+ c = getc(stdin);
+ if (c == EOF)
+ break;
+ if (c == '\n' || c == ' ' || c == '\t')
+ continue;
+ if (c == '#') {
+ do { c = getc(stdin); } while (!(c == EOF || c == '\n'));
+ continue;
+ }
+ ungetc(c,stdin);
+ if (scanf("0x%x", &bytes) != 1)
+ exit(1);
+ i1 = (bytes >> 24) & 0xff;
+ i2 = (bytes >> 16) & 0xff;
+ i3 = (bytes >> 8) & 0xff;
+ i4 = bytes & 0xff;
+ if (!(i1 >= 0x81 && i1 <= 0x84
+ && i2 >= 0x30 && i2 <= 0x39
+ && i3 >= 0x81 && i3 <= 0xfe
+ && i4 >= 0x30 && i4 <= 0x39)) {
+ fprintf(stderr, "lost entry for %02x %02x %02x %02x\n", i1, i2, i3, i4);
+ exit(1);
+ }
+ i = (((i1-0x81) * 10 + (i2-0x30)) * 126 + (i3-0x81)) * 10 + (i4-0x30);
+ if (scanf(" 0x%x", &j) != 1)
+ exit(1);
+ if (!(j >= 0 && j < 0x10000))
+ exit(1);
+ charset2uni[i] = j;
+ uni2charset[j] = i;
+ }
+
+ /* Verify that the mapping i -> j is monotonically increasing and
+ of the form
+ low[k] <= i <= high[k] => j = diff[k] + i
+ with a set of disjoint intervals (low[k], high[k]). */
+ ranges_count = 0;
+ for (i = 0; i < 4*10*126*10; i++)
+ if (charset2uni[i] != 0) {
+ int diff;
+ j = charset2uni[i];
+ diff = j - i;
+ if (ranges_count > 0) {
+ if (!(i > ranges[ranges_count-1].high))
+ exit(1);
+ if (!(j > ranges[ranges_count-1].high + ranges[ranges_count-1].diff))
+ exit(1);
+ /* Additional property: The diffs are also increasing. */
+ if (!(diff >= ranges[ranges_count-1].diff))
+ exit(1);
+ }
+ if (ranges_count > 0 && diff == ranges[ranges_count-1].diff)
+ ranges[ranges_count-1].high = i;
+ else {
+ if (ranges_count == 256)
+ exit(1);
+ ranges[ranges_count].low = i;
+ ranges[ranges_count].high = i;
+ ranges[ranges_count].diff = diff;
+ ranges_count++;
+ }
+ }
+
+ /* Determine size of bitmap. */
+ ranges_total = 0;
+ for (k = 0; k < ranges_count; k++) {
+ ranges[k].total = ranges_total;
+ ranges_total += ranges[k].high - ranges[k].low + 1;
+ }
+
+ printf("static const unsigned short %s_charset2uni_ranges[%d] = {\n", name, 2*ranges_count);
+ for (k = 0; k < ranges_count; k++) {
+ printf(" 0x%04x, 0x%04x", ranges[k].low, ranges[k].high);
+ if (k+1 < ranges_count) printf(",");
+ if ((k % 4) == 3 && k+1 < ranges_count) printf("\n");
+ }
+ printf("\n");
+ printf("};\n");
+
+ printf("\n");
+
+ printf("static const unsigned short %s_uni2charset_ranges[%d] = {\n", name, 2*ranges_count);
+ for (k = 0; k < ranges_count; k++) {
+ printf(" 0x%04x, 0x%04x", ranges[k].low + ranges[k].diff, ranges[k].high + ranges[k].diff);
+ if (k+1 < ranges_count) printf(",");
+ if ((k % 4) == 3 && k+1 < ranges_count) printf("\n");
+ }
+ printf("\n");
+ printf("};\n");
+
+ printf("\n");
+
+ printf("static const struct { unsigned short diff; unsigned short bitmap_offset; } %s_ranges[%d] = {\n ", name, ranges_count);
+ for (k = 0; k < ranges_count; k++) {
+ printf(" { %5d, 0x%04x }", ranges[k].diff, ranges[k].total);
+ if (k+1 < ranges_count) printf(",");
+ if ((k % 4) == 3 && k+1 < ranges_count) printf("\n ");
+ }
+ printf("\n");
+ printf("};\n");
+
+ printf("\n");
+
+ printf("static const unsigned char %s_bitmap[%d] = {\n ", name, (ranges_total + 7) / 8);
+ {
+ int accu = 0;
+ for (k = 0; k < ranges_count; k++) {
+ for (i = ranges[k].total; i <= ranges[k].total + (ranges[k].high - ranges[k].low);) {
+ if (charset2uni[i - ranges[k].total + ranges[k].low] != 0)
+ accu |= (1 << (i % 8));
+ i++;
+ if ((i % 8) == 0) {
+ printf(" 0x%02x", accu);
+ if ((i / 8) < (ranges_total + 7) / 8) printf(",");
+ if (((i / 8) % 12) == 0)
+ printf("\n ");
+ accu = 0;
+ }
+ }
+ if (i != (k+1 < ranges_count ? ranges[k+1].total : ranges_total)) abort();
+ }
+ if ((ranges_total % 8) != 0)
+ printf(" 0x%02x", accu);
+ printf("\n");
+ }
+ printf("};\n");
+
+ printf("\n");
+
+ printf("static int\n");
+ printf("%s_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)\n", name);
+ printf("{\n");
+ printf(" unsigned char c1 = s[0];\n");
+ printf(" if (c1 >= 0x81 && c1 <= 0x84) {\n");
+ printf(" if (n >= 2) {\n");
+ printf(" unsigned char c2 = s[1];\n");
+ printf(" if (c2 >= 0x30 && c2 <= 0x39) {\n");
+ printf(" if (n >= 3) {\n");
+ printf(" unsigned char c3 = s[2];\n");
+ printf(" if (c3 >= 0x81 && c3 <= 0xfe) {\n");
+ printf(" if (n >= 4) {\n");
+ printf(" unsigned char c4 = s[3];\n");
+ printf(" if (c4 >= 0x30 && c4 <= 0x39) {\n");
+ printf(" unsigned int i = (((c1 - 0x81) * 10 + (c2 - 0x30)) * 126 + (c3 - 0x81)) * 10 + (c4 - 0x30);\n");
+ printf(" if (i >= %d && i <= %d) {\n", ranges[0].low, ranges[ranges_count-1].high);
+ printf(" unsigned int k1 = 0;\n");
+ printf(" unsigned int k2 = %d;\n", ranges_count-1);
+ printf(" while (k1 < k2) {\n");
+ printf(" unsigned int k = (k1 + k2) / 2;\n");
+ printf(" if (i <= %s_charset2uni_ranges[2*k+1])\n", name);
+ printf(" k2 = k;\n");
+ printf(" else if (i >= %s_charset2uni_ranges[2*k+2])\n", name);
+ printf(" k1 = k + 1;\n");
+ printf(" else\n");
+ printf(" return RET_ILSEQ;\n");
+ printf(" }\n");
+ printf(" {\n");
+ printf(" unsigned int bitmap_index = i - %s_charset2uni_ranges[2*k1] + %s_ranges[k1].bitmap_offset;\n", name, name);
+ printf(" if ((%s_bitmap[bitmap_index >> 3] >> (bitmap_index & 7)) & 1) {\n", name);
+ printf(" unsigned int diff = %s_ranges[k1].diff;\n", name);
+ printf(" *pwc = (ucs4_t) (i + diff);\n");
+ printf(" return 4;\n");
+ printf(" }\n");
+ printf(" }\n");
+ printf(" }\n");
+ printf(" }\n");
+ printf(" return RET_ILSEQ;\n");
+ printf(" }\n");
+ printf(" return RET_TOOFEW(0);\n");
+ printf(" }\n");
+ printf(" return RET_ILSEQ;\n");
+ printf(" }\n");
+ printf(" return RET_TOOFEW(0);\n");
+ printf(" }\n");
+ printf(" return RET_ILSEQ;\n");
+ printf(" }\n");
+ printf(" return RET_TOOFEW(0);\n");
+ printf(" }\n");
+ printf(" return RET_ILSEQ;\n");
+ printf("}\n");
+
+ printf("\n");
+
+ printf("static int\n");
+ printf("%s_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)\n", name);
+ printf("{\n");
+ printf(" if (n >= 4) {\n");
+ printf(" unsigned int i = wc;\n");
+ printf(" if (i >= 0x%04x && i <= 0x%04x) {\n", ranges[0].low + ranges[0].diff, ranges[ranges_count-1].high + ranges[ranges_count-1].diff);
+ printf(" unsigned int k1 = 0;\n");
+ printf(" unsigned int k2 = %d;\n", ranges_count-1);
+ printf(" while (k1 < k2) {\n");
+ printf(" unsigned int k = (k1 + k2) / 2;\n");
+ printf(" if (i <= %s_uni2charset_ranges[2*k+1])\n", name);
+ printf(" k2 = k;\n");
+ printf(" else if (i >= %s_uni2charset_ranges[2*k+2])\n", name);
+ printf(" k1 = k + 1;\n");
+ printf(" else\n");
+ printf(" return RET_ILUNI;\n");
+ printf(" }\n");
+ printf(" {\n");
+ printf(" unsigned int bitmap_index = i - %s_uni2charset_ranges[2*k1] + %s_ranges[k1].bitmap_offset;\n", name, name);
+ printf(" if ((%s_bitmap[bitmap_index >> 3] >> (bitmap_index & 7)) & 1) {\n", name);
+ printf(" unsigned int diff = %s_ranges[k1].diff;\n", name);
+ printf(" i -= diff;\n");
+ printf(" r[3] = (i %% 10) + 0x30; i = i / 10;\n");
+ printf(" r[2] = (i %% 126) + 0x81; i = i / 126;\n");
+ printf(" r[1] = (i %% 10) + 0x30; i = i / 10;\n");
+ printf(" r[0] = i + 0x81;\n");
+ printf(" return 4;\n");
+ printf(" }\n");
+ printf(" }\n");
+ printf(" }\n");
+ printf(" return RET_ILUNI;\n");
+ printf(" }\n");
+ printf(" return RET_TOOSMALL;\n");
+ printf("}\n");
+}
+
+/* JISX0213 specifics */
+
+static void do_jisx0213 (const char* name)
+{
+ printf("#ifndef _JISX0213_H\n");
+ printf("#define _JISX0213_H\n");
+ printf("\n");
+ printf("/* JISX0213 plane 1 (= ISO-IR-233) characters are in the range\n");
+ printf(" 0x{21..7E}{21..7E}.\n");
+ printf(" JISX0213 plane 2 (= ISO-IR-229) characters are in the range\n");
+ printf(" 0x{21,23..25,28,2C..2F,6E..7E}{21..7E}.\n");
+ printf(" Together this makes 120 rows of 94 characters.\n");
+ printf("*/\n");
+ printf("\n");
+ {
+#define row_convert(row) \
+ ((row) >= 0x121 && (row) <= 0x17E ? row-289 : /* 0..93 */ \
+ (row) == 0x221 ? row-451 : /* 94 */ \
+ (row) >= 0x223 && (row) <= 0x225 ? row-452 : /* 95..97 */ \
+ (row) == 0x228 ? row-454 : /* 98 */ \
+ (row) >= 0x22C && (row) <= 0x22F ? row-457 : /* 99..102 */ \
+ (row) >= 0x26E && (row) <= 0x27E ? row-519 : /* 103..119 */ \
+ -1)
+ unsigned int table[120][94];
+ int pagemin[0x1100];
+ int pagemax[0x1100];
+ int pageidx[0x1100];
+ unsigned int pagestart[0x1100];
+ unsigned int pagestart_len = 0;
+ {
+ unsigned int rowc, colc;
+ for (rowc = 0; rowc < 120; rowc++)
+ for (colc = 0; colc < 94; colc++)
+ table[rowc][colc] = 0;
+ }
+ {
+ unsigned int page;
+ for (page = 0; page < 0x1100; page++)
+ pagemin[page] = -1;
+ for (page = 0; page < 0x1100; page++)
+ pagemax[page] = -1;
+ for (page = 0; page < 0x1100; page++)
+ pageidx[page] = -1;
+ }
+ printf("static const unsigned short jisx0213_to_ucs_combining[][2] = {\n");
+ {
+ int private_use = 0x0001;
+ for (;;) {
+ char line[30];
+ unsigned int row, col;
+ unsigned int ucs;
+ memset(line,0,sizeof(line));
+ if (scanf("%[^\n]\n",line) < 1)
+ break;
+ assert(line[0]=='0');
+ assert(line[1]=='x');
+ assert(isxdigit(line[2]));
+ assert(isxdigit(line[3]));
+ assert(isxdigit(line[4]));
+ assert(isxdigit(line[5]));
+ assert(isxdigit(line[6]));
+ assert(line[7]=='\t');
+ line[7] = '\0';
+ col = strtoul(&line[5],NULL,16);
+ line[5] = '\0';
+ row = strtoul(&line[2],NULL,16);
+ if (line[20] != '\0' && line[21] == '\0') {
+ unsigned int u1, u2;
+ assert(line[8]=='0');
+ assert(line[9]=='x');
+ assert(isxdigit(line[10]));
+ assert(isxdigit(line[11]));
+ assert(isxdigit(line[12]));
+ assert(isxdigit(line[13]));
+ assert(line[14]==' ');
+ assert(line[15]=='0');
+ assert(line[16]=='x');
+ assert(isxdigit(line[17]));
+ assert(isxdigit(line[18]));
+ assert(isxdigit(line[19]));
+ assert(isxdigit(line[20]));
+ u2 = strtoul(&line[17],NULL,16);
+ line[14] = '\0';
+ u1 = strtoul(&line[10],NULL,16);
+ printf(" { 0x%04x, 0x%04x },\n", u1, u2);
+ ucs = private_use++;
+ } else {
+ assert(line[8]=='0');
+ assert(line[9]=='x');
+ assert(isxdigit(line[10]));
+ assert(isxdigit(line[11]));
+ assert(isxdigit(line[12]));
+ assert(isxdigit(line[13]));
+ ucs = strtoul(&line[10],NULL,16);
+ }
+ assert((unsigned int) row_convert(row) < 120);
+ assert((unsigned int) (col-0x21) < 94);
+ table[row_convert(row)][col-0x21] = ucs;
+ }
+ }
+ printf("};\n");
+ printf("\n");
+ {
+ unsigned int rowc, colc;
+ for (rowc = 0; rowc < 120; rowc++) {
+ for (colc = 0; colc < 94; colc++) {
+ unsigned int value = table[rowc][colc];
+ unsigned int page = value >> 8;
+ unsigned int rest = value & 0xff;
+ if (pagemin[page] < 0 || pagemin[page] > rest) pagemin[page] = rest;
+ if (pagemax[page] < 0 || pagemax[page] < rest) pagemax[page] = rest;
+ }
+ }
+ }
+ {
+ unsigned int index = 0;
+ unsigned int i;
+ for (i = 0; i < 0x1100; ) {
+ if (pagemin[i] >= 0) {
+ if (pagemin[i+1] >= 0 && pagemin[i] >= 0x80 && pagemax[i+1] < 0x80) {
+ /* Combine two pages into a single one. */
+ assert(pagestart_len < sizeof(pagestart)/sizeof(pagestart[0]));
+ pagestart[pagestart_len++] = (i<<8)+0x80;
+ pageidx[i] = index;
+ pageidx[i+1] = index;
+ index++;
+ i += 2;
+ } else {
+ /* A single page. */
+ assert(pagestart_len < sizeof(pagestart)/sizeof(pagestart[0]));
+ pagestart[pagestart_len++] = i<<8;
+ pageidx[i] = index;
+ index++;
+ i += 1;
+ }
+ } else
+ i++;
+ }
+ }
+ printf("static const unsigned short jisx0213_to_ucs_main[120 * 94] = {\n");
+ {
+ unsigned int row;
+ for (row = 0; row < 0x300; row++) {
+ unsigned int rowc = row_convert(row);
+ if (rowc != (unsigned int) (-1)) {
+ printf(" /* 0x%X21..0x%X7E */\n",row,row);
+ {
+ unsigned int count = 0;
+ unsigned int colc;
+ for (colc = 0; colc < 94; colc++) {
+ if ((count % 8) == 0) printf(" ");
+ {
+ unsigned int value = table[rowc][colc];
+ unsigned int page = value >> 8;
+ unsigned int index = pageidx[page];
+ assert(value-pagestart[index] < 0x100);
+ printf(" 0x%04x,",(index<<8)|(value-pagestart[index]));
+ }
+ count++;
+ if ((count % 8) == 0) printf("\n");
+ }
+ }
+ printf("\n");
+ }
+ }
+ }
+ printf("};\n");
+ printf("\n");
+ printf("static const ucs4_t jisx0213_to_ucs_pagestart[] = {\n");
+ {
+ unsigned int count = 0;
+ unsigned int i;
+ for (i = 0; i < pagestart_len; i++) {
+ char buf[10];
+ if ((count % 8) == 0) printf(" ");
+ printf(" ");
+ sprintf(buf,"0x%04x",pagestart[i]);
+ if (strlen(buf) < 7) printf("%*s",7-strlen(buf),"");
+ printf("%s,",buf);
+ count++;
+ if ((count % 8) == 0) printf("\n");
+ }
+ }
+ printf("\n");
+ printf("};\n");
+#undef row_convert
+ }
+ rewind(stdin);
+ printf("\n");
+ {
+ int table[0x110000];
+ bool pages[0x4400];
+ int maxpage = -1;
+ unsigned int combining_prefixes[100];
+ unsigned int combining_prefixes_len = 0;
+ {
+ unsigned int i;
+ for (i = 0; i < 0x110000; i++)
+ table[i] = -1;
+ for (i = 0; i < 0x4400; i++)
+ pages[i] = false;
+ }
+ for (;;) {
+ char line[30];
+ unsigned int plane, row, col;
+ memset(line,0,sizeof(line));
+ if (scanf("%[^\n]\n",line) < 1)
+ break;
+ assert(line[0]=='0');
+ assert(line[1]=='x');
+ assert(isxdigit(line[2]));
+ assert(isxdigit(line[3]));
+ assert(isxdigit(line[4]));
+ assert(isxdigit(line[5]));
+ assert(isxdigit(line[6]));
+ assert(line[7]=='\t');
+ line[7] = '\0';
+ col = strtoul(&line[5],NULL,16);
+ line[5] = '\0';
+ row = strtoul(&line[3],NULL,16);
+ line[3] = '\0';
+ plane = strtoul(&line[2],NULL,16) - 1;
+ if (line[20] != '\0' && line[21] == '\0') {
+ unsigned int u1, u2;
+ assert(line[8]=='0');
+ assert(line[9]=='x');
+ assert(isxdigit(line[10]));
+ assert(isxdigit(line[11]));
+ assert(isxdigit(line[12]));
+ assert(isxdigit(line[13]));
+ assert(line[14]==' ');
+ assert(line[15]=='0');
+ assert(line[16]=='x');
+ assert(isxdigit(line[17]));
+ assert(isxdigit(line[18]));
+ assert(isxdigit(line[19]));
+ assert(isxdigit(line[20]));
+ u2 = strtoul(&line[17],NULL,16);
+ line[14] = '\0';
+ u1 = strtoul(&line[10],NULL,16);
+ assert(u2 == 0x02E5 || u2 == 0x02E9 || u2 == 0x0300 || u2 == 0x0301
+ || u2 == 0x309A);
+ assert(combining_prefixes_len < sizeof(combining_prefixes)/sizeof(combining_prefixes[0]));
+ combining_prefixes[combining_prefixes_len++] = u1;
+ } else {
+ unsigned int ucs;
+ assert(line[8]=='0');
+ assert(line[9]=='x');
+ assert(isxdigit(line[10]));
+ assert(isxdigit(line[11]));
+ assert(isxdigit(line[12]));
+ assert(isxdigit(line[13]));
+ ucs = strtoul(&line[10],NULL,16);
+ /* Add an entry. */
+ assert(plane <= 1);
+ assert(row <= 0x7f);
+ assert(col <= 0x7f);
+ table[ucs] = (plane << 15) | (row << 8) | col;
+ pages[ucs>>6] = true;
+ if (maxpage < 0 || (ucs>>6) > maxpage) maxpage = ucs>>6;
+ }
+ }
+ {
+ unsigned int i;
+ for (i = 0; i < combining_prefixes_len; i++) {
+ unsigned int u1 = combining_prefixes[i];
+ assert(table[u1] >= 0);
+ table[u1] |= 0x0080;
+ }
+ }
+ printf("static const short jisx0213_from_ucs_level1[%d] = {\n",maxpage+1);
+ {
+ unsigned int index = 0;
+ unsigned int i;
+ for (i = 0; i <= maxpage; i++) {
+ if ((i % 8) == 0) printf(" ");
+ if (pages[i]) {
+ printf(" %3u,",index);
+ index++;
+ } else {
+ printf(" %3d,",-1);
+ }
+ if (((i+1) % 8) == 0) printf("\n");
+ }
+ }
+ printf("\n");
+ printf("};\n");
+ printf("\n");
+ #if 0 /* Dense array */
+ printf("static const unsigned short jisx0213_from_ucs_level2[] = {\n");
+ {
+ unsigned int i;
+ for (i = 0; i <= maxpage; i++) {
+ if (pages[i]) {
+ printf(" /* 0x%04X */\n",i<<6);
+ {
+ unsigned int j;
+ for (j = 0; j < 0x40; ) {
+ unsigned int ucs = (i<<6)+j;
+ int value = table[ucs];
+ if (value < 0) value = 0;
+ if ((j % 8) == 0) printf(" ");
+ printf(" 0x%04x,",value);
+ j++;
+ if ((j % 8) == 0) printf("\n");
+ }
+ }
+ }
+ }
+ }
+ printf("};\n");
+ #else /* Sparse array */
+ {
+ int summary_indx[0x11000];
+ int summary_used[0x11000];
+ unsigned int i, k, indx;
+ printf("static const unsigned short jisx0213_from_ucs_level2_data[] = {\n");
+ /* Fill summary_indx[] and summary_used[]. */
+ indx = 0;
+ for (i = 0, k = 0; i <= maxpage; i++) {
+ if (pages[i]) {
+ unsigned int j1, j2;
+ unsigned int count = 0;
+ printf(" /* 0x%04X */\n",i<<6);
+ for (j1 = 0; j1 < 4; j1++) {
+ summary_indx[4*k+j1] = indx;
+ summary_used[4*k+j1] = 0;
+ for (j2 = 0; j2 < 16; j2++) {
+ unsigned int j = 16*j1+j2;
+ unsigned int ucs = (i<<6)+j;
+ int value = table[ucs];
+ if (value < 0) value = 0;
+ if (value > 0) {
+ summary_used[4*k+j1] |= (1 << j2);
+ if ((count % 8) == 0) printf(" ");
+ printf(" 0x%04x,",value);
+ count++;
+ if ((count % 8) == 0) printf("\n");
+ indx++;
+ }
+ }
+ }
+ if ((count % 8) > 0)
+ printf("\n");
+ k++;
+ }
+ }
+ printf("};\n");
+ printf("\n");
+ printf("static const Summary16 jisx0213_from_ucs_level2_2indx[] = {\n");
+ for (i = 0, k = 0; i <= maxpage; i++) {
+ if (pages[i]) {
+ unsigned int j1;
+ printf(" /* 0x%04X */\n",i<<6);
+ printf(" ");
+ for (j1 = 0; j1 < 4; j1++) {
+ printf(" { %4d, 0x%04x },", summary_indx[4*k+j1], summary_used[4*k+j1]);
+ }
+ printf("\n");
+ k++;
+ }
+ }
+ printf("};\n");
+ }
+ #endif
+ printf("\n");
+ }
+ printf("#ifdef __GNUC__\n");
+ printf("__inline\n");
+ printf("#else\n");
+ printf("#ifdef __cplusplus\n");
+ printf("inline\n");
+ printf("#endif\n");
+ printf("#endif\n");
+ printf("static ucs4_t jisx0213_to_ucs4 (unsigned int row, unsigned int col)\n");
+ printf("{\n");
+ printf(" ucs4_t val;\n");
+ printf("\n");
+ printf(" if (row >= 0x121 && row <= 0x17e)\n");
+ printf(" row -= 289;\n");
+ printf(" else if (row == 0x221)\n");
+ printf(" row -= 451;\n");
+ printf(" else if (row >= 0x223 && row <= 0x225)\n");
+ printf(" row -= 452;\n");
+ printf(" else if (row == 0x228)\n");
+ printf(" row -= 454;\n");
+ printf(" else if (row >= 0x22c && row <= 0x22f)\n");
+ printf(" row -= 457;\n");
+ printf(" else if (row >= 0x26e && row <= 0x27e)\n");
+ printf(" row -= 519;\n");
+ printf(" else\n");
+ printf(" return 0x0000;\n");
+ printf("\n");
+ printf(" if (col >= 0x21 && col <= 0x7e)\n");
+ printf(" col -= 0x21;\n");
+ printf(" else\n");
+ printf(" return 0x0000;\n");
+ printf("\n");
+ printf(" val = jisx0213_to_ucs_main[row * 94 + col];\n");
+ printf(" val = jisx0213_to_ucs_pagestart[val >> 8] + (val & 0xff);\n");
+ printf(" if (val == 0xfffd)\n");
+ printf(" val = 0x0000;\n");
+ printf(" return val;\n");
+ printf("}\n");
+ printf("\n");
+ printf("#ifdef __GNUC__\n");
+ printf("__inline\n");
+ printf("#else\n");
+ printf("#ifdef __cplusplus\n");
+ printf("inline\n");
+ printf("#endif\n");
+ printf("#endif\n");
+ printf("static unsigned short ucs4_to_jisx0213 (ucs4_t ucs)\n");
+ printf("{\n");
+ printf(" if (ucs < (sizeof(jisx0213_from_ucs_level1)/sizeof(jisx0213_from_ucs_level1[0])) << 6) {\n");
+ printf(" int index1 = jisx0213_from_ucs_level1[ucs >> 6];\n");
+ printf(" if (index1 >= 0)");
+ #if 0 /* Dense array */
+ printf("\n");
+ printf(" return jisx0213_from_ucs_level2[(index1 << 6) + (ucs & 0x3f)];\n");
+ #else /* Sparse array */
+ printf(" {\n");
+ printf(" const Summary16 *summary = &jisx0213_from_ucs_level2_2indx[((index1 << 6) + (ucs & 0x3f)) >> 4];\n");
+ printf(" unsigned short used = summary->used;\n");
+ printf(" unsigned int i = ucs & 0x0f;\n");
+ printf(" if (used & ((unsigned short) 1 << i)) {\n");
+ printf(" /* Keep in `used' only the bits 0..i-1. */\n");
+ printf(" used &= ((unsigned short) 1 << i) - 1;\n");
+ printf(" /* Add `summary->indx' and the number of bits set in `used'. */\n");
+ printf(" used = (used & 0x5555) + ((used & 0xaaaa) >> 1);\n");
+ printf(" used = (used & 0x3333) + ((used & 0xcccc) >> 2);\n");
+ printf(" used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4);\n");
+ printf(" used = (used & 0x00ff) + (used >> 8);\n");
+ printf(" return jisx0213_from_ucs_level2_data[summary->indx + used];\n");
+ printf(" };\n");
+ printf(" };\n");
+ #endif
+ printf(" }\n");
+ printf(" return 0x0000;\n");
+ printf("}\n");
+ printf("\n");
+ printf("#endif /* _JISX0213_H */\n");
+}
+
+/* Main program */
+
+int main (int argc, char *argv[])
+{
+ const char* charsetname;
+ const char* name;
+
+ if (argc != 3)
+ exit(1);
+ charsetname = argv[1];
+ name = argv[2];
+
+ output_title(charsetname);
+
+ if (!strcmp(name,"gb2312")
+ || !strcmp(name,"isoir165ext") || !strcmp(name,"gb12345ext")
+ || !strcmp(name,"jisx0208") || !strcmp(name,"jisx0212"))
+ do_normal(name);
+ else if (!strcmp(name,"cns11643_1") || !strcmp(name,"cns11643_2")
+ || !strcmp(name,"cns11643_3") || !strcmp(name,"cns11643_4a")
+ || !strcmp(name,"cns11643_4b") || !strcmp(name,"cns11643_5")
+ || !strcmp(name,"cns11643_6") || !strcmp(name,"cns11643_7")
+ || !strcmp(name,"cns11643_15"))
+ do_normal_only_charset2uni(name);
+ else if (!strcmp(name,"cns11643_inv"))
+ do_cns11643_only_uni2charset(name);
+ else if (!strcmp(name,"gbkext1"))
+ do_gbk1_only_charset2uni(name);
+ else if (!strcmp(name,"gbkext2"))
+ do_gbk2_only_charset2uni(name);
+ else if (!strcmp(name,"gbkext_inv"))
+ do_gbk1_only_uni2charset(name);
+ else if (!strcmp(name,"cp936ext") || !strcmp(name,"gb18030ext"))
+ do_gbk1(name);
+ else if (!strcmp(name,"ksc5601"))
+ do_ksc5601(name);
+ else if (!strcmp(name,"uhc_1"))
+ do_uhc_1(name);
+ else if (!strcmp(name,"uhc_2"))
+ do_uhc_2(name);
+ else if (!strcmp(name,"big5") || !strcmp(name,"cp950ext"))
+ do_big5(name);
+ else if (!strcmp(name,"hkscs1999") || !strcmp(name,"hkscs2001")
+ || !strcmp(name,"hkscs2004"))
+ do_hkscs(name);
+ else if (!strcmp(name,"johab_hangul"))
+ do_johab_hangul(name);
+ else if (!strcmp(name,"cp932ext"))
+ do_sjis(name);
+ else if (!strcmp(name,"gb18030uni"))
+ do_gb18030uni(name);
+ else if (!strcmp(name,"jisx0213"))
+ do_jisx0213(name);
+ else
+ exit(1);
+
+ return 0;
+}
diff --git a/jni/iconv/tools/cjk_variants.c b/jni/iconv/tools/cjk_variants.c
new file mode 100644
index 0000000..fa26276
--- /dev/null
+++ b/jni/iconv/tools/cjk_variants.c
@@ -0,0 +1,126 @@
+/* Copyright (C) 1999-2002 Free Software Foundation, Inc.
+ This file is part of the GNU LIBICONV Tools.
+
+ 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 3 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., along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/*
+ * Generates Unicode variants table from Koichi Yasuoka's UniVariants file.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define ENTRIES 8176 /* number of lines in UniVariants file */
+#define MAX_PER_ENTRY 10 /* max number of entries per line in file */
+
+int main (int argc, char *argv[])
+{
+ int variants[MAX_PER_ENTRY*ENTRIES];
+ int uni2index[0x10000];
+ int index;
+
+ if (argc != 1)
+ exit(1);
+
+ printf("/*\n");
+ printf(" * Copyright (C) 1999-2002 Free Software Foundation, Inc.\n");
+ printf(" * This file is part of the GNU LIBICONV Library.\n");
+ printf(" *\n");
+ printf(" * The GNU LIBICONV Library is free software; you can redistribute it\n");
+ printf(" * and/or modify it under the terms of the GNU Library General Public\n");
+ printf(" * License as published by the Free Software Foundation; either version 2\n");
+ printf(" * of the License, or (at your option) any later version.\n");
+ printf(" *\n");
+ printf(" * The GNU LIBICONV Library is distributed in the hope that it will be\n");
+ printf(" * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of\n");
+ printf(" * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n");
+ printf(" * Library General Public License for more details.\n");
+ printf(" *\n");
+ printf(" * You should have received a copy of the GNU Library General Public\n");
+ printf(" * License along with the GNU LIBICONV Library; see the file COPYING.LIB.\n");
+ printf(" * If not, write to the Free Software Foundation, Inc., 51 Franklin Street,\n");
+ printf(" * Fifth Floor, Boston, MA 02110-1301, USA.\n");
+ printf(" */\n");
+ printf("\n");
+ printf("/*\n");
+ printf(" * CJK variants table\n");
+ printf(" */\n");
+ printf("\n");
+ {
+ int c;
+ int j;
+ for (j = 0; j < 0x10000; j++)
+ uni2index[j] = -1;
+ index = 0;
+ for (;;) {
+ c = getc(stdin);
+ if (c == EOF)
+ break;
+ if (c == '#') {
+ do { c = getc(stdin); } while (!(c == EOF || c == '\n'));
+ continue;
+ }
+ ungetc(c,stdin);
+ if (scanf("%x",&j) != 1)
+ exit(1);
+ c = getc(stdin);
+ if (c != '\t')
+ exit(1);
+ uni2index[j] = index;
+ for (;;) {
+ int i;
+ if (scanf("%x",&i) != 1)
+ exit(1);
+ if (!(i >= 0x3000 && i < 0x3000+0x8000))
+ exit(1);
+ variants[index++] = i-0x3000;
+ c = getc(stdin);
+ if (c != ' ')
+ break;
+ }
+ variants[index-1] |= 0x8000; /* end of list marker */
+ if (c != '\n')
+ exit(1);
+ }
+ }
+ printf("static const unsigned short cjk_variants[%d] = {",index);
+ {
+ int i;
+ for (i = 0; i < index; i++) {
+ if ((i % 8) == 0)
+ printf("\n ");
+ printf(" 0x%04x,",variants[i]);
+ }
+ printf("\n};\n");
+ }
+ printf("\n");
+ printf("static const short cjk_variants_indx[0x5200] = {\n");
+ {
+ int j;
+ for (j = 0x4e00; j < 0xa000; j++) {
+ if ((j % 0x100) == 0)
+ printf(" /* 0x%04x */\n", j);
+ if ((j % 8) == 0)
+ printf(" ");
+ printf(" %5d,",uni2index[j]);
+ if ((j % 8) == 7)
+ printf("\n");
+ }
+ printf("};\n");
+ }
+ printf("\n");
+
+ return 0;
+}