From 2a393c134fe3fe8eb85bf818cb7ad6ae4396322a Mon Sep 17 00:00:00 2001 From: Martin Kretzschmar Date: Wed, 18 Sep 2002 22:20:42 +0000 Subject: [PATCH] Synched with Xpdf 1.01 --- pdf/goo/GHash.cc | 240 + pdf/goo/GHash.h | 67 + pdf/goo/GList.cc | 91 + pdf/goo/GList.h | 89 + pdf/goo/GString.cc | 40 +- pdf/goo/GString.h | 19 +- pdf/goo/Makefile.am | 4 +- pdf/goo/gfile.cc | 96 +- pdf/goo/gfile.h | 19 +- pdf/goo/gmem.c | 19 +- pdf/goo/gmem.h | 2 +- pdf/goo/gmempp.cc | 3 +- pdf/goo/gtypes.h | 2 +- pdf/goo/parseargs.c | 2 +- pdf/goo/parseargs.h | 2 +- pdf/goo/vms_make.com | 4 +- pdf/xpdf/{FormWidget.cc => Annot.cc} | 89 +- pdf/xpdf/{FormWidget.h => Annot.h} | 42 +- pdf/xpdf/Array.cc | 8 +- pdf/xpdf/Array.h | 7 +- pdf/xpdf/BuiltinFont.cc | 64 + pdf/xpdf/BuiltinFont.h | 55 + pdf/xpdf/BuiltinFontTables.cc | 3366 + pdf/xpdf/BuiltinFontTables.h | 23 + pdf/xpdf/CMap.cc | 359 + pdf/xpdf/CMap.h | 93 + pdf/xpdf/CNS13CMapInfo.h | 47771 --------------- pdf/xpdf/Catalog.cc | 72 +- pdf/xpdf/Catalog.h | 18 +- pdf/xpdf/ChangeLog | 18 + pdf/xpdf/CharCodeToUnicode.cc | 390 + pdf/xpdf/CharCodeToUnicode.h | 88 + pdf/xpdf/CharTypes.h | 24 + ...{CompactFontInfo.h => CompactFontTables.h} | 4 +- pdf/xpdf/Decrypt.cc | 133 +- pdf/xpdf/Decrypt.h | 26 +- pdf/xpdf/Dict.cc | 10 +- pdf/xpdf/Dict.h | 10 +- pdf/xpdf/DisplayFontTable.h | 29 + pdf/xpdf/Error.cc | 33 +- pdf/xpdf/Error.h | 7 +- pdf/xpdf/ErrorCodes.h | 24 + pdf/xpdf/FTFont.cc | 685 + pdf/xpdf/FTFont.h | 133 + pdf/xpdf/FontEncoding.cc | 143 - pdf/xpdf/FontEncoding.h | 64 - pdf/xpdf/FontEncodingTables.cc | 1824 + pdf/xpdf/FontEncodingTables.h | 20 + pdf/xpdf/FontFile.cc | 4522 +- pdf/xpdf/FontFile.h | 162 +- pdf/xpdf/FontInfo.h | 2068 - pdf/xpdf/Function.cc | 1520 + pdf/xpdf/Function.h | 181 + pdf/xpdf/GB12CMapInfo.h | 50880 ---------------- pdf/xpdf/Gfx.cc | 1217 +- pdf/xpdf/Gfx.h | 42 +- pdf/xpdf/GfxFont.cc | 1781 +- pdf/xpdf/GfxFont.h | 276 +- pdf/xpdf/GfxState.cc | 1015 +- pdf/xpdf/GfxState.h | 196 +- pdf/xpdf/GlobalParams.cc | 1065 + pdf/xpdf/GlobalParams.h | 273 + pdf/xpdf/ImageOutputDev.cc | 54 +- pdf/xpdf/ImageOutputDev.h | 13 +- pdf/xpdf/LTKOutputDev.cc | 33 +- pdf/xpdf/LTKOutputDev.h | 10 +- pdf/xpdf/Lexer.cc | 17 +- pdf/xpdf/Lexer.h | 17 +- pdf/xpdf/Link.cc | 52 +- pdf/xpdf/Link.h | 10 +- pdf/xpdf/Makefile.am | 69 +- pdf/xpdf/NameToCharCode.cc | 115 + pdf/xpdf/NameToCharCode.h | 40 + pdf/xpdf/NameToUnicodeTable.h | 1055 + pdf/xpdf/Object.cc | 21 +- pdf/xpdf/Object.h | 59 +- pdf/xpdf/OutputDev.cc | 41 +- pdf/xpdf/OutputDev.h | 36 +- pdf/xpdf/PBMOutputDev.cc | 87 +- pdf/xpdf/PBMOutputDev.h | 10 +- pdf/xpdf/PDFDoc.cc | 44 +- pdf/xpdf/PDFDoc.h | 39 +- pdf/xpdf/PSOutputDev.cc | 1657 +- pdf/xpdf/PSOutputDev.h | 92 +- pdf/xpdf/PSTokenizer.cc | 133 + pdf/xpdf/PSTokenizer.h | 39 + pdf/xpdf/Page.cc | 210 +- pdf/xpdf/Page.h | 87 +- pdf/xpdf/Parser.cc | 33 +- pdf/xpdf/Parser.h | 8 +- pdf/xpdf/SFont.cc | 43 +- pdf/xpdf/SFont.h | 33 +- pdf/xpdf/Stream-CCITT.h | 2 +- pdf/xpdf/Stream.cc | 397 +- pdf/xpdf/Stream.h | 155 +- pdf/xpdf/T1Font.cc | 161 +- pdf/xpdf/T1Font.h | 21 +- pdf/xpdf/TTFont.cc | 153 +- pdf/xpdf/TTFont.h | 39 +- pdf/xpdf/TextOutputDev.cc | 1156 +- pdf/xpdf/TextOutputDev.h | 79 +- pdf/xpdf/UTF8.h | 56 + pdf/xpdf/UnicodeMap.cc | 260 + pdf/xpdf/UnicodeMap.h | 110 + pdf/xpdf/UnicodeMapTables.h | 361 + pdf/xpdf/XOutputDev.cc | 3981 +- pdf/xpdf/XOutputDev.h | 449 +- pdf/xpdf/XRef.cc | 287 +- pdf/xpdf/XRef.h | 48 +- pdf/xpdf/gpdf.cc | 1 + pdf/xpdf/pdffonts.cc | 269 + pdf/xpdf/pdfimages.cc | 41 +- pdf/xpdf/pdfinfo.cc | 211 +- pdf/xpdf/pdftopbm.cc | 43 +- pdf/xpdf/pdftops.cc | 197 +- pdf/xpdf/pdftotext.cc | 224 +- pdf/xpdf/vms_make.com | 45 +- pdf/xpdf/xpdf-flip.ltk | 6 +- pdf/xpdf/xpdf-ltk.h | 49 +- pdf/xpdf/xpdf-top.ltk | 8 +- pdf/xpdf/xpdf.cc | 885 +- pdf/xpdf/xpdf.ltk | 55 +- pdf/xpdf/xpdfconfig.h | 51 +- 123 files changed, 26593 insertions(+), 108893 deletions(-) create mode 100644 pdf/goo/GHash.cc create mode 100644 pdf/goo/GHash.h create mode 100644 pdf/goo/GList.cc create mode 100644 pdf/goo/GList.h rename pdf/xpdf/{FormWidget.cc => Annot.cc} (54%) rename pdf/xpdf/{FormWidget.h => Annot.h} (55%) create mode 100644 pdf/xpdf/BuiltinFont.cc create mode 100644 pdf/xpdf/BuiltinFont.h create mode 100644 pdf/xpdf/BuiltinFontTables.cc create mode 100644 pdf/xpdf/BuiltinFontTables.h create mode 100644 pdf/xpdf/CMap.cc create mode 100644 pdf/xpdf/CMap.h delete mode 100644 pdf/xpdf/CNS13CMapInfo.h create mode 100644 pdf/xpdf/CharCodeToUnicode.cc create mode 100644 pdf/xpdf/CharCodeToUnicode.h create mode 100644 pdf/xpdf/CharTypes.h rename pdf/xpdf/{CompactFontInfo.h => CompactFontTables.h} (99%) create mode 100644 pdf/xpdf/DisplayFontTable.h create mode 100644 pdf/xpdf/ErrorCodes.h create mode 100644 pdf/xpdf/FTFont.cc create mode 100644 pdf/xpdf/FTFont.h delete mode 100644 pdf/xpdf/FontEncoding.cc delete mode 100644 pdf/xpdf/FontEncoding.h create mode 100644 pdf/xpdf/FontEncodingTables.cc create mode 100644 pdf/xpdf/FontEncodingTables.h delete mode 100644 pdf/xpdf/FontInfo.h create mode 100644 pdf/xpdf/Function.cc create mode 100644 pdf/xpdf/Function.h delete mode 100644 pdf/xpdf/GB12CMapInfo.h create mode 100644 pdf/xpdf/GlobalParams.cc create mode 100644 pdf/xpdf/GlobalParams.h create mode 100644 pdf/xpdf/NameToCharCode.cc create mode 100644 pdf/xpdf/NameToCharCode.h create mode 100644 pdf/xpdf/NameToUnicodeTable.h create mode 100644 pdf/xpdf/PSTokenizer.cc create mode 100644 pdf/xpdf/PSTokenizer.h create mode 100644 pdf/xpdf/UTF8.h create mode 100644 pdf/xpdf/UnicodeMap.cc create mode 100644 pdf/xpdf/UnicodeMap.h create mode 100644 pdf/xpdf/UnicodeMapTables.h create mode 100644 pdf/xpdf/pdffonts.cc diff --git a/pdf/goo/GHash.cc b/pdf/goo/GHash.cc new file mode 100644 index 00000000..dc09f717 --- /dev/null +++ b/pdf/goo/GHash.cc @@ -0,0 +1,240 @@ +//======================================================================== +// +// GHash.cc +// +// Copyright 2001-2002 Glyph & Cog, LLC +// +//======================================================================== + +#ifdef __GNUC__ +#pragma implementation +#endif + +#include +#include "gmem.h" +#include "GString.h" +#include "GHash.h" + +//------------------------------------------------------------------------ + +struct GHashBucket { + GString *key; + void *val; + GHashBucket *next; +}; + +struct GHashIter { + int h; + GHashBucket *p; +}; + +//------------------------------------------------------------------------ + +GHash::GHash(GBool deleteKeysA) { + int h; + + deleteKeys = deleteKeysA; + size = 7; + tab = (GHashBucket **)gmalloc(size * sizeof(GHashBucket *)); + for (h = 0; h < size; ++h) { + tab[h] = NULL; + } + len = 0; +} + +GHash::~GHash() { + GHashBucket *p; + int h; + + for (h = 0; h < size; ++h) { + while (tab[h]) { + p = tab[h]; + tab[h] = p->next; + if (deleteKeys) { + delete p->key; + } + delete p; + } + } + gfree(tab); +} + +void GHash::add(GString *key, void *val) { + GHashBucket **oldTab; + GHashBucket *p; + int oldSize, i, h; + + // expand the table if necessary + if (len >= size) { + oldSize = size; + oldTab = tab; + size = 2*size + 1; + tab = (GHashBucket **)gmalloc(size * sizeof(GHashBucket *)); + for (h = 0; h < size; ++h) { + tab[h] = NULL; + } + for (i = 0; i < oldSize; ++i) { + while (oldTab[i]) { + p = oldTab[i]; + oldTab[i] = oldTab[i]->next; + h = hash(p->key); + p->next = tab[h]; + tab[h] = p; + } + } + gfree(oldTab); + } + + // add the new symbol + p = new GHashBucket; + p->key = key; + p->val = val; + h = hash(key); + p->next = tab[h]; + tab[h] = p; + ++len; +} + +void *GHash::lookup(GString *key) { + GHashBucket *p; + int h; + + if (!(p = find(key, &h))) { + return NULL; + } + return p->val; +} + +void *GHash::lookup(char *key) { + GHashBucket *p; + int h; + + if (!(p = find(key, &h))) { + return NULL; + } + return p->val; +} + +void *GHash::remove(GString *key) { + GHashBucket *p; + GHashBucket **q; + void *val; + int h; + + if (!(p = find(key, &h))) { + return NULL; + } + q = &tab[h]; + while (*q != p) { + q = &((*q)->next); + } + *q = p->next; + if (deleteKeys) { + delete p->key; + } + val = p->val; + delete p; + --len; + return val; +} + +void *GHash::remove(char *key) { + GHashBucket *p; + GHashBucket **q; + void *val; + int h; + + if (!(p = find(key, &h))) { + return NULL; + } + q = &tab[h]; + while (*q != p) { + q = &((*q)->next); + } + *q = p->next; + if (deleteKeys) { + delete p->key; + } + val = p->val; + delete p; + --len; + return val; +} + +void GHash::startIter(GHashIter **iter) { + *iter = new GHashIter; + (*iter)->h = -1; + (*iter)->p = NULL; +} + +GBool GHash::getNext(GHashIter **iter, GString **key, void **val) { + if (!*iter) { + return gFalse; + } + if ((*iter)->p) { + (*iter)->p = (*iter)->p->next; + } + while (!(*iter)->p) { + if (++(*iter)->h == size) { + delete *iter; + *iter = NULL; + return gFalse; + } + (*iter)->p = tab[(*iter)->h]; + } + *key = (*iter)->p->key; + *val = (*iter)->p->val; + return gTrue; +} + +void GHash::killIter(GHashIter **iter) { + delete *iter; + *iter = NULL; +} + +GHashBucket *GHash::find(GString *key, int *h) { + GHashBucket *p; + + *h = hash(key); + for (p = tab[*h]; p; p = p->next) { + if (!p->key->cmp(key)) { + return p; + } + } + return NULL; +} + +GHashBucket *GHash::find(char *key, int *h) { + GHashBucket *p; + + *h = hash(key); + for (p = tab[*h]; p; p = p->next) { + if (!p->key->cmp(key)) { + return p; + } + } + return NULL; +} + +int GHash::hash(GString *key) { + char *p; + unsigned int h; + int i; + + h = 0; + for (p = key->getCString(), i = 0; i < key->getLength(); ++p, ++i) { + h = 17 * h + (int)(*p & 0xff); + } + return (int)(h % size); +} + +int GHash::hash(char *key) { + char *p; + unsigned int h; + + h = 0; + for (p = key; *p; ++p) { + h = 17 * h + (int)(*p & 0xff); + } + return (int)(h % size); +} diff --git a/pdf/goo/GHash.h b/pdf/goo/GHash.h new file mode 100644 index 00000000..91d97006 --- /dev/null +++ b/pdf/goo/GHash.h @@ -0,0 +1,67 @@ +//======================================================================== +// +// GHash.h +// +// Copyright 2001-2002 Glyph & Cog, LLC +// +//======================================================================== + +#ifndef GHASH_H +#define GHASH_H + +#ifdef __GNUC__ +#pragma interface +#endif + +#include "gtypes.h" + +class GString; +struct GHashBucket; +struct GHashIter; + +//------------------------------------------------------------------------ + +class GHash { +public: + + GHash(GBool deleteKeysA = gFalse); + ~GHash(); + void add(GString *key, void *val); + void *lookup(GString *key); + void *lookup(char *key); + void *remove(GString *key); + void *remove(char *key); + int getLength() { return len; } + void startIter(GHashIter **iter); + GBool getNext(GHashIter **iter, GString **key, void **val); + void killIter(GHashIter **iter); + +private: + + GHashBucket *find(GString *key, int *h); + GHashBucket *find(char *key, int *h); + int hash(GString *key); + int hash(char *key); + + GBool deleteKeys; // set if key strings should be deleted + int size; // number of buckets + int len; // number of entries + GHashBucket **tab; +}; + +#define deleteGHash(hash, T) \ + do { \ + GHash *_hash = (hash); \ + { \ + GHashIter *_iter; \ + GString *_key; \ + void *_p; \ + _hash->startIter(&_iter); \ + while (_hash->getNext(&_iter, &_key, &_p)) { \ + delete (T*)_p; \ + } \ + delete _hash; \ + } \ + } while(0) + +#endif diff --git a/pdf/goo/GList.cc b/pdf/goo/GList.cc new file mode 100644 index 00000000..f52bc262 --- /dev/null +++ b/pdf/goo/GList.cc @@ -0,0 +1,91 @@ +//======================================================================== +// +// GList.cc +// +// Copyright 2001-2002 Glyph & Cog, LLC +// +//======================================================================== + +#ifdef __GNUC__ +#pragma implementation +#endif + +#include +#include +#include "gmem.h" +#include "GList.h" + +//------------------------------------------------------------------------ +// GList +//------------------------------------------------------------------------ + +GList::GList() { + size = 8; + data = (void **)gmalloc(size * sizeof(void*)); + length = 0; + inc = 0; +} + +GList::GList(int sizeA) { + size = sizeA; + data = (void **)gmalloc(size * sizeof(void*)); + length = 0; + inc = 0; +} + +GList::~GList() { + gfree(data); +} + +void GList::append(void *p) { + if (length >= size) { + expand(); + } + data[length++] = p; +} + +void GList::append(GList *list) { + int i; + + while (length + list->length > size) { + expand(); + } + for (i = 0; i < list->length; ++i) { + data[length++] = list->data[i]; + } +} + +void GList::insert(int i, void *p) { + if (length >= size) { + expand(); + } + if (i < length) { + memmove(data+i+1, data+i, (length - i) * sizeof(void *)); + } + data[i] = p; + ++length; +} + +void *GList::del(int i) { + void *p; + + p = data[i]; + if (i < length - 1) { + memmove(data+i, data+i+1, (length - i - 1) * sizeof(void *)); + } + --length; + if (size - length >= ((inc > 0) ? inc : size/2)) { + shrink(); + } + return p; +} + +void GList::expand() { + size += (inc > 0) ? inc : size; + data = (void **)grealloc(data, size * sizeof(void*)); +} + +void GList::shrink() { + size -= (inc > 0) ? inc : size/2; + data = (void **)grealloc(data, size * sizeof(void*)); +} diff --git a/pdf/goo/GList.h b/pdf/goo/GList.h new file mode 100644 index 00000000..0ef4fd78 --- /dev/null +++ b/pdf/goo/GList.h @@ -0,0 +1,89 @@ +//======================================================================== +// +// GList.h +// +// Copyright 2001-2002 Glyph & Cog, LLC +// +//======================================================================== + +#ifndef GLIST_H +#define GLIST_H + +#ifdef __GNUC__ +#pragma interface +#endif + +#include "gtypes.h" + +//------------------------------------------------------------------------ +// GList +//------------------------------------------------------------------------ + +class GList { +public: + + // Create an empty list. + GList(); + + // Create an empty list with space for elements. + GList(int sizeA); + + // Destructor - does not free pointed-to objects. + ~GList(); + + //----- general + + // Get the number of elements. + int getLength() { return length; } + + //----- ordered list support + + // Return the th element. + // Assumes 0 <= i < length. + void *get(int i) { return data[i]; } + + // Append an element to the end of the list. + void append(void *p); + + // Append another list to the end of this one. + void append(GList *list); + + // Insert an element at index . + // Assumes 0 <= i <= length. + void insert(int i, void *p); + + // Deletes and returns the element at index . + // Assumes 0 <= i < length. + void *del(int i); + + //----- control + + // Set allocation increment to . If inc > 0, that many + // elements will be allocated every time the list is expanded. + // If inc <= 0, the list will be doubled in size. + void setAllocIncr(int incA) { inc = incA; } + +private: + + void expand(); + void shrink(); + + void **data; // the list elements + int size; // size of data array + int length; // number of elements on list + int inc; // allocation increment +}; + +#define deleteGList(list, T) \ + do { \ + GList *_list = (list); \ + { \ + int _i; \ + for (_i = 0; _i < _list->getLength(); ++_i) { \ + delete (T*)_list->get(_i); \ + } \ + delete _list; \ + } \ + } while (0) + +#endif diff --git a/pdf/goo/GString.cc b/pdf/goo/GString.cc index 7b8f2718..3bf626aa 100644 --- a/pdf/goo/GString.cc +++ b/pdf/goo/GString.cc @@ -4,7 +4,7 @@ // // Simple variable-length string type. // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -12,6 +12,7 @@ #pragma implementation #endif +#include #include #include #include @@ -45,18 +46,25 @@ GString::GString() { s[0] = '\0'; } -GString::GString(const char *s1) { - int n = strlen(s1); +GString::GString(const char *sA) { + int n = strlen(sA); s = NULL; resize(length = n); - memcpy(s, s1, n + 1); + memcpy(s, sA, n + 1); } -GString::GString(const char *s1, int length1) { +GString::GString(const char *sA, int lengthA) { s = NULL; - resize(length = length1); - memcpy(s, s1, length * sizeof(char)); + resize(length = lengthA); + memcpy(s, sA, length * sizeof(char)); + s[length] = '\0'; +} + +GString::GString(GString *str, int idx, int lengthA) { + s = NULL; + resize(length = lengthA); + memcpy(s, str->getCString() + idx, length); s[length] = '\0'; } @@ -137,10 +145,10 @@ GString *GString::append(const char *str) { return this; } -GString *GString::append(const char *str, int length1) { - resize(length + length1); - memcpy(s + length, str, length1); - length += length1; +GString *GString::append(const char *str, int lengthA) { + resize(length + lengthA); + memcpy(s + length, str, lengthA); + length += lengthA; s[length] = '\0'; return this; } @@ -180,14 +188,14 @@ GString *GString::insert(int i, const char *str) { return this; } -GString *GString::insert(int i, const char *str, int length1) { +GString *GString::insert(int i, const char *str, int lengthA) { int j; - resize(length + length1); + resize(length + lengthA); for (j = length; j >= i; --j) - s[j+length1] = s[j]; - memcpy(s+i, str, length1); - length += length1; + s[j+lengthA] = s[j]; + memcpy(s+i, str, lengthA); + length += lengthA; return this; } diff --git a/pdf/goo/GString.h b/pdf/goo/GString.h index 4c3b95f3..93796cb7 100644 --- a/pdf/goo/GString.h +++ b/pdf/goo/GString.h @@ -4,7 +4,7 @@ // // Simple variable-length string type. // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -24,11 +24,14 @@ public: GString(); // Create a string from a C string. - GString(const char *s1); + GString(const char *sA); - // Create a string from chars at . This string + // Create a string from chars at . This string // can contain null characters. - GString (const char *s1, int length1); + GString(const char *sA, int lengthA); + + // Create a string from chars at in . + GString(GString *str, int idx, int lengthA); // Copy a string. GString(GString *str); @@ -62,13 +65,13 @@ public: GString *append(char c); GString *append(GString *str); GString *append(const char *str); - GString *append(const char *str, int length1); + GString *append(const char *str, int lengthA); // Insert a character or string. GString *insert(int i, char c); GString *insert(int i, GString *str); GString *insert(int i, const char *str); - GString *insert(int i, const char *str, int length1); + GString *insert(int i, const char *str, int lengthA); // Delete a character or range of characters. GString *del(int i, int n = 1); @@ -81,8 +84,8 @@ public: // These functions assume the strings do not contain null characters. int cmp(GString *str) { return strcmp(s, str->getCString()); } int cmpN(GString *str, int n) { return strncmp(s, str->getCString(), n); } - int cmp(const char *s1) { return strcmp(s, s1); } - int cmpN(const char *s1, int n) { return strncmp(s, s1, n); } + int cmp(const char *sA) { return strcmp(s, sA); } + int cmpN(const char *sA, int n) { return strncmp(s, sA, n); } private: diff --git a/pdf/goo/Makefile.am b/pdf/goo/Makefile.am index a80aaef8..ef84b8ae 100644 --- a/pdf/goo/Makefile.am +++ b/pdf/goo/Makefile.am @@ -1,6 +1,8 @@ lib_LIBRARIES = libgoo.a libgoo_a_SOURCES = \ + GHash.cc \ + GList.cc \ GString.cc \ gmempp.cc \ gfile.cc \ @@ -11,7 +13,7 @@ libgoo_a_SOURCES = \ gmem.h \ gtypes.h \ parseargs.h - + EXTRA_DIST = \ vms_dirent.h \ vms_sys_dirent.h\ diff --git a/pdf/goo/gfile.cc b/pdf/goo/gfile.cc index 25fa1c9a..d6d2363e 100644 --- a/pdf/goo/gfile.cc +++ b/pdf/goo/gfile.cc @@ -4,15 +4,18 @@ // // Miscellaneous file and directory name manipulation. // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== -extern "C" { +#include + #ifdef WIN32 + extern "C" { # ifndef _MSC_VER # include # endif + } #else // !WIN32 # if defined(MACOS) # include @@ -30,7 +33,6 @@ extern "C" { # include # endif #endif // WIN32 -} #include "GString.h" #include "gfile.h" @@ -442,7 +444,26 @@ time_t getModTime(char *fileName) { } GBool openTempFile(GString **name, FILE **f, char *mode, char *ext) { -#if defined(VMS) || defined(__EMX__) || defined(WIN32) || defined(ACORN) || defined(MACOS) +#if defined(WIN32) + //---------- Win32 ---------- + char *s; + char buf[_MAX_PATH]; + char *fp; + + if (!(s = _tempnam(getenv("TEMP"), NULL))) { + return gFalse; + } + *name = new GString(s); + free(s); + if (ext) { + (*name)->append(ext); + } + if (!(*f = fopen((*name)->getCString(), mode))) { + delete (*name); + return gFalse; + } + return gTrue; +#elif defined(VMS) || defined(__EMX__) || defined(ACORN) || defined(MACOS) //---------- non-Unix ---------- char *s; @@ -464,20 +485,26 @@ GBool openTempFile(GString **name, FILE **f, char *mode, char *ext) { return gTrue; #else //---------- Unix ---------- - char *s, *p; + char *s; int fd; if (ext) { +#if HAVE_MKSTEMPS + if ((s = getenv("TMPDIR"))) { + *name = new GString(s); + } else { + *name = new GString("/tmp"); + } + (*name)->append("/XXXXXX")->append(ext); + fd = mkstemps((*name)->getCString(), strlen(ext)); +#else if (!(s = tmpnam(NULL))) { return gFalse; } *name = new GString(s); - s = (*name)->getCString(); - if ((p = strrchr(s, '.'))) { - (*name)->del(p - s, (*name)->getLength() - (p - s)); - } (*name)->append(ext); fd = open((*name)->getCString(), O_WRONLY | O_CREAT | O_EXCL, 0600); +#endif } else { #if HAVE_MKSTEMP if ((s = getenv("TMPDIR"))) { @@ -503,11 +530,48 @@ GBool openTempFile(GString **name, FILE **f, char *mode, char *ext) { #endif } +GBool executeCommand(char *cmd) { +#ifdef VMS + return system(cmd) ? gTrue : gFalse; +#else + return system(cmd) ? gFalse : gTrue; +#endif +} + +char *getLine(char *buf, int size, FILE *f) { + int c, i; + + i = 0; + while (i < size - 1) { + if ((c = fgetc(f)) == EOF) { + break; + } + buf[i++] = (char)c; + if (c == '\x0a') { + break; + } + if (c == '\x0d') { + c = fgetc(f); + if (c == '\x0a' && i < size - 1) { + buf[i++] = (char)c; + } else if (c != EOF) { + ungetc(c, f); + } + break; + } + } + buf[i] = '\0'; + if (i == 0) { + return NULL; + } + return buf; +} + //------------------------------------------------------------------------ // GDir and GDirEntry //------------------------------------------------------------------------ -GDirEntry::GDirEntry(char *dirPath, char *name1, GBool doStat) { +GDirEntry::GDirEntry(char *dirPath, char *nameA, GBool doStat) { #ifdef VMS char *p; #elif defined(WIN32) @@ -519,17 +583,17 @@ GDirEntry::GDirEntry(char *dirPath, char *name1, GBool doStat) { GString *s; #endif - name = new GString(name1); + name = new GString(nameA); dir = gFalse; if (doStat) { #ifdef VMS - if (!strcmp(name1, "-") || - ((p = strrchr(name1, '.')) && !strncmp(p, ".DIR;", 5))) + if (!strcmp(nameA, "-") || + ((p = strrchr(nameA, '.')) && !strncmp(p, ".DIR;", 5))) dir = gTrue; #elif defined(ACORN) #else s = new GString(dirPath); - appendToPath(s, name1); + appendToPath(s, nameA); #ifdef WIN32 fa = GetFileAttributes(s->getCString()); dir = (fa != 0xFFFFFFFF && (fa & FILE_ATTRIBUTE_DIRECTORY)); @@ -546,9 +610,9 @@ GDirEntry::~GDirEntry() { delete name; } -GDir::GDir(char *name, GBool doStat1) { +GDir::GDir(char *name, GBool doStatA) { path = new GString(name); - doStat = doStat1; + doStat = doStatA; #if defined(WIN32) GString *tmp; diff --git a/pdf/goo/gfile.h b/pdf/goo/gfile.h index 38b99985..193209cc 100644 --- a/pdf/goo/gfile.h +++ b/pdf/goo/gfile.h @@ -4,7 +4,7 @@ // // Miscellaneous file and directory name manipulation. // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -73,11 +73,11 @@ extern GBool isAbsolutePath(char *path); // Make this path absolute by prepending current directory (if path is // relative) or prepending user's directory (if path starts with '~'). -GString *makePathAbsolute(GString *path); +extern GString *makePathAbsolute(GString *path); // Get the modification time for . Returns 0 if there is an // error. -time_t getModTime(char *fileName); +extern time_t getModTime(char *fileName); // Create a temporary file and open it for writing. If is not // NULL, it will be used as the file name extension. Returns both the @@ -85,7 +85,14 @@ time_t getModTime(char *fileName); // should be done to the returned file pointer; the file may be // reopened later for reading, but not for writing. The string // should be "w" or "wb". Returns true on success. -GBool openTempFile(GString **name, FILE **f, char *mode, char *ext); +extern GBool openTempFile(GString **name, FILE **f, char *mode, char *ext); + +// Execute . Returns true on success. +extern GBool executeCommand(char *cmd); + +// Just like fgets, but handles Unix, Mac, and/or DOS end-of-line +// conventions. +extern char *getLine(char *buf, int size, FILE *f); //------------------------------------------------------------------------ // GDir and GDirEntry @@ -94,7 +101,7 @@ GBool openTempFile(GString **name, FILE **f, char *mode, char *ext); class GDirEntry { public: - GDirEntry(char *dirPath, char *name1, GBool doStat); + GDirEntry(char *dirPath, char *nameA, GBool doStat); ~GDirEntry(); GString *getName() { return name; } GBool isDir() { return dir; } @@ -108,7 +115,7 @@ private: class GDir { public: - GDir(char *name, GBool doStat1 = gTrue); + GDir(char *name, GBool doStatA = gTrue); ~GDir(); GDirEntry *getNextEntry(); void rewind(); diff --git a/pdf/goo/gmem.c b/pdf/goo/gmem.c index cac386bc..27ebb2b6 100644 --- a/pdf/goo/gmem.c +++ b/pdf/goo/gmem.c @@ -3,9 +3,10 @@ * * Memory routines with out-of-memory checking. * - * Copyright 1996 Derek B. Noonburg + * Copyright 1996-2002 Glyph & Cog, LLC */ +#include #include #include #include @@ -24,9 +25,9 @@ typedef struct _GMemHdr { #define gMemTrlSize (sizeof(long)) #if gmemTrlSize==8 -#define gMemDeadVal 0xdeadbeefdeadbeef +#define gMemDeadVal 0xdeadbeefdeadbeefUL #else -#define gMemDeadVal 0xdeadbeef +#define gMemDeadVal 0xdeadbeefUL #endif /* round data size so trailer will be aligned */ @@ -59,7 +60,7 @@ void *gmalloc(int size) { GMemHdr *hdr; void *data; int lst; - long *trl, *p; + unsigned long *trl, *p; if (size == 0) return NULL; @@ -70,14 +71,14 @@ void *gmalloc(int size) { } hdr = (GMemHdr *)mem; data = (void *)(mem + gMemHdrSize); - trl = (long *)(mem + gMemHdrSize + size1); + trl = (unsigned long *)(mem + gMemHdrSize + size1); hdr->size = size; hdr->index = gMemIndex++; lst = ((int)hdr >> gMemListShift) & gMemListMask; hdr->next = gMemList[lst]; gMemList[lst] = hdr; ++gMemAlloc; - for (p = (long *)data; p <= trl; ++p) + for (p = (unsigned long *)data; p <= trl; ++p) *p = gMemDeadVal; return data; #else @@ -140,7 +141,7 @@ void gfree(void *p) { GMemHdr *hdr; GMemHdr *prevHdr, *q; int lst; - long *trl, *clr; + unsigned long *trl, *clr; if (p) { hdr = (GMemHdr *)((char *)p - gMemHdrSize); @@ -156,12 +157,12 @@ void gfree(void *p) { gMemList[lst] = hdr->next; --gMemAlloc; size = gMemDataSize(hdr->size); - trl = (long *)((char *)hdr + gMemHdrSize + size); + trl = (unsigned long *)((char *)hdr + gMemHdrSize + size); if (*trl != gMemDeadVal) { fprintf(stderr, "Overwrite past end of block %d at address %p\n", hdr->index, p); } - for (clr = (long *)hdr; clr <= trl; ++clr) + for (clr = (unsigned long *)hdr; clr <= trl; ++clr) *clr = gMemDeadVal; free(hdr); } else { diff --git a/pdf/goo/gmem.h b/pdf/goo/gmem.h index 7ab5ddbe..93ccb94b 100644 --- a/pdf/goo/gmem.h +++ b/pdf/goo/gmem.h @@ -3,7 +3,7 @@ * * Memory routines with out-of-memory checking. * - * Copyright 1996 Derek B. Noonburg + * Copyright 1996-2002 Glyph & Cog, LLC */ #ifndef GMEM_H diff --git a/pdf/goo/gmempp.cc b/pdf/goo/gmempp.cc index 6eb64948..ed94f7a1 100644 --- a/pdf/goo/gmempp.cc +++ b/pdf/goo/gmempp.cc @@ -4,10 +4,11 @@ // // Use gmalloc/gfree for C++ new/delete operators. // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== +#include #include "gmem.h" #ifdef DEBUG_MEM diff --git a/pdf/goo/gtypes.h b/pdf/goo/gtypes.h index 65932674..1879b88b 100644 --- a/pdf/goo/gtypes.h +++ b/pdf/goo/gtypes.h @@ -3,7 +3,7 @@ * * Some useful simple types. * - * Copyright 1996 Derek B. Noonburg + * Copyright 1996-2002 Glyph & Cog, LLC */ #ifndef GTYPES_H diff --git a/pdf/goo/parseargs.c b/pdf/goo/parseargs.c index ceba8877..ad8460ae 100644 --- a/pdf/goo/parseargs.c +++ b/pdf/goo/parseargs.c @@ -3,7 +3,7 @@ * * Command line argument parser. * - * Copyright 1996 Derek B. Noonburg + * Copyright 1996-2002 Glyph & Cog, LLC */ #include diff --git a/pdf/goo/parseargs.h b/pdf/goo/parseargs.h index e0aa2be3..2cc2df7d 100644 --- a/pdf/goo/parseargs.h +++ b/pdf/goo/parseargs.h @@ -3,7 +3,7 @@ * * Command line argument parser. * - * Copyright 1996 Derek B. Noonburg + * Copyright 1996-2002 Glyph & Cog, LLC */ #ifndef PARSEARGS_H diff --git a/pdf/goo/vms_make.com b/pdf/goo/vms_make.com index 454c1ffc..e57c9602 100644 --- a/pdf/goo/vms_make.com +++ b/pdf/goo/vms_make.com @@ -4,11 +4,11 @@ $! Goo library compile script for VMS. $! $! Written by Patrick Moreau, Martin P.J. Zinser. $! -$! Copyright 1996 Derek B. Noonburg +$! Copyright 1996-2002 Glyph & Cog, LLC $! $!======================================================================== $! -$ GOO_CXXOBJS = "GString.obj,gmempp.obj,gfile.obj" +$ GOO_CXXOBJS = "GString.obj,gmempp.obj,gfile.obj,ghash.obj,glist.obj" $ GOO_CCOBJS = "gmem.obj,parseargs.obj,vms_directory.obj,vms_unix_times.obj" $! $ if f$extract(1,3,f$getsyi("Version")) .lts. "7.0" diff --git a/pdf/xpdf/FormWidget.cc b/pdf/xpdf/Annot.cc similarity index 54% rename from pdf/xpdf/FormWidget.cc rename to pdf/xpdf/Annot.cc index 76428d05..b9c606f4 100644 --- a/pdf/xpdf/FormWidget.cc +++ b/pdf/xpdf/Annot.cc @@ -1,8 +1,8 @@ //======================================================================== // -// FormWidget.cc +// Annot.cc // -// Copyright 2000 Derek B. Noonburg +// Copyright 2000-2002 Glyph & Cog, LLC // //======================================================================== @@ -10,33 +10,43 @@ #pragma implementation #endif +#include #include "gmem.h" #include "Object.h" #include "Gfx.h" -#include "FormWidget.h" +#include "Annot.h" //------------------------------------------------------------------------ -// FormWidget +// Annot //------------------------------------------------------------------------ -FormWidget::FormWidget(Dict *dict) { - Object obj1, obj2; +Annot::Annot(XRef *xrefA, Dict *dict) { + Object apObj, asObj, obj1, obj2; double t; ok = gFalse; - - if (dict->lookup("AP", &obj1)->isDict()) { - obj1.dictLookupNF("N", &obj2); - //~ this doesn't handle appearances with multiple states -- - //~ need to look at AS key to get state and then get the - //~ corresponding entry from the N dict - if (obj2.isRef()) { - obj2.copy(&appearance); - ok = gTrue; + xref = xrefA; + + if (dict->lookup("AP", &apObj)->isDict()) { + if (dict->lookup("AS", &asObj)->isName()) { + if (apObj.dictLookup("N", &obj1)->isDict()) { + if (obj1.dictLookupNF(asObj.getName(), &obj2)->isRef()) { + obj2.copy(&appearance); + ok = gTrue; + } + obj2.free(); + } + obj1.free(); + } else { + if (apObj.dictLookupNF("N", &obj1)->isRef()) { + obj1.copy(&appearance); + ok = gTrue; + } + obj1.free(); } - obj2.free(); + asObj.free(); } - obj1.free(); + apObj.free(); if (dict->lookup("Rect", &obj1)->isArray() && obj1.arrayGetLength() == 4) { @@ -67,49 +77,48 @@ FormWidget::FormWidget(Dict *dict) { obj1.free(); } -FormWidget::~FormWidget() { +Annot::~Annot() { appearance.free(); } -void FormWidget::draw(Gfx *gfx) { +void Annot::draw(Gfx *gfx) { Object obj; - if (appearance.fetch(&obj)->isStream()) { - gfx->doWidgetForm(&obj, xMin, yMin, xMax, yMax); + if (appearance.fetch(xref, &obj)->isStream()) { + gfx->doAnnot(&obj, xMin, yMin, xMax, yMax); } obj.free(); } //------------------------------------------------------------------------ -// FormWidgets +// Annots //------------------------------------------------------------------------ -FormWidgets::FormWidgets(Object *annots) { - FormWidget *widget; +Annots::Annots(XRef *xref, Object *annotsObj) { + Annot *annot; Object obj1, obj2; int size; int i; - widgets = NULL; + annots = NULL; size = 0; - nWidgets = 0; + nAnnots = 0; - if (annots->isArray()) { - for (i = 0; i < annots->arrayGetLength(); ++i) { - if (annots->arrayGet(i, &obj1)->isDict()) { + if (annotsObj->isArray()) { + for (i = 0; i < annotsObj->arrayGetLength(); ++i) { + if (annotsObj->arrayGet(i, &obj1)->isDict()) { obj1.dictLookup("Subtype", &obj2); if (obj2.isName("Widget") || obj2.isName("Stamp")) { - widget = new FormWidget(obj1.getDict()); - if (widget->isOk()) { - if (nWidgets >= size) { + annot = new Annot(xref, obj1.getDict()); + if (annot->isOk()) { + if (nAnnots >= size) { size += 16; - widgets = (FormWidget **)grealloc(widgets, - size * sizeof(FormWidget *)); + annots = (Annot **)grealloc(annots, size * sizeof(Annot *)); } - widgets[nWidgets++] = widget; + annots[nAnnots++] = annot; } else { - delete widget; + delete annot; } } obj2.free(); @@ -119,11 +128,11 @@ FormWidgets::FormWidgets(Object *annots) { } } -FormWidgets::~FormWidgets() { +Annots::~Annots() { int i; - for (i = 0; i < nWidgets; ++i) { - delete widgets[i]; + for (i = 0; i < nAnnots; ++i) { + delete annots[i]; } - gfree(widgets); + gfree(annots); } diff --git a/pdf/xpdf/FormWidget.h b/pdf/xpdf/Annot.h similarity index 55% rename from pdf/xpdf/FormWidget.h rename to pdf/xpdf/Annot.h index d746083b..4113a0bd 100644 --- a/pdf/xpdf/FormWidget.h +++ b/pdf/xpdf/Annot.h @@ -1,65 +1,67 @@ //======================================================================== // -// FormWidget.h +// Annot.h // -// Copyright 2000 Derek B. Noonburg +// Copyright 2000-2002 Glyph & Cog, LLC // //======================================================================== -#ifndef FORMWIDGET_H -#define FORMWIDGET_H +#ifndef ANNOT_H +#define ANNOT_H #ifdef __GNUC__ #pragma interface #endif +class XRef; class Gfx; //------------------------------------------------------------------------ -// FormWidget +// Annot //------------------------------------------------------------------------ -class FormWidget { +class Annot { public: - FormWidget(Dict *dict); - ~FormWidget(); + Annot(XRef *xrefA, Dict *dict); + ~Annot(); GBool isOk() { return ok; } void draw(Gfx *gfx); // Get appearance object. - Object *getAppearance(Object *obj) { return appearance.fetch(obj); } + Object *getAppearance(Object *obj) { return appearance.fetch(xref, obj); } private: + XRef *xref; // the xref table for this PDF file Object appearance; // a reference to the Form XObject stream // for the normal appearance - double xMin, yMin, // widget rectangle + double xMin, yMin, // annotation rectangle xMax, yMax; GBool ok; }; //------------------------------------------------------------------------ -// FormWidgets +// Annots //------------------------------------------------------------------------ -class FormWidgets { +class Annots { public: - // Extract widgets from array of annotations. - FormWidgets(Object *annots); + // Extract non-link annotations from array of annotations. + Annots(XRef *xref, Object *annotsObj); - ~FormWidgets(); + ~Annots(); - // Iterate through list of widgets. - int getNumWidgets() { return nWidgets; } - FormWidget *getWidget(int i) { return widgets[i]; } + // Iterate through list of annotations. + int getNumAnnots() { return nAnnots; } + Annot *getAnnot(int i) { return annots[i]; } private: - FormWidget **widgets; - int nWidgets; + Annot **annots; + int nAnnots; }; #endif diff --git a/pdf/xpdf/Array.cc b/pdf/xpdf/Array.cc index 9681b685..fbdde49d 100644 --- a/pdf/xpdf/Array.cc +++ b/pdf/xpdf/Array.cc @@ -2,7 +2,7 @@ // // Array.cc // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -10,6 +10,7 @@ #pragma implementation #endif +#include #include #include "gmem.h" #include "Object.h" @@ -19,7 +20,8 @@ // Array //------------------------------------------------------------------------ -Array::Array() { +Array::Array(XRef *xrefA) { + xref = xrefA; elems = NULL; size = length = 0; ref = 1; @@ -43,7 +45,7 @@ void Array::add(Object *elem) { } Object *Array::get(int i, Object *obj) { - return elems[i].fetch(obj); + return elems[i].fetch(xref, obj); } Object *Array::getNF(int i, Object *obj) { diff --git a/pdf/xpdf/Array.h b/pdf/xpdf/Array.h index ecf2eea6..a118f685 100644 --- a/pdf/xpdf/Array.h +++ b/pdf/xpdf/Array.h @@ -2,7 +2,7 @@ // // Array.h // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -15,6 +15,8 @@ #include "Object.h" +class XRef; + //------------------------------------------------------------------------ // Array //------------------------------------------------------------------------ @@ -23,7 +25,7 @@ class Array { public: // Constructor. - Array(); + Array(XRef *xrefA); // Destructor. ~Array(); @@ -44,6 +46,7 @@ public: private: + XRef *xref; // the xref table for this PDF file Object *elems; // array of elements int size; // size of array int length; // number of elements in array diff --git a/pdf/xpdf/BuiltinFont.cc b/pdf/xpdf/BuiltinFont.cc new file mode 100644 index 00000000..1b070646 --- /dev/null +++ b/pdf/xpdf/BuiltinFont.cc @@ -0,0 +1,64 @@ +//======================================================================== +// +// BuiltinFont.cc +// +// Copyright 2001-2002 Glyph & Cog, LLC +// +//======================================================================== + +#ifdef __GNUC__ +#pragma implementation +#endif + +#include +#include +#include +#include "gmem.h" +#include "FontEncodingTables.h" +#include "BuiltinFont.h" + +//------------------------------------------------------------------------ + +BuiltinFontWidths::BuiltinFontWidths(BuiltinFontWidth *widths, int sizeA) { + int i, h; + + size = sizeA; + tab = (BuiltinFontWidth **)gmalloc(size * sizeof(BuiltinFontWidth *)); + for (i = 0; i < size; ++i) { + tab[i] = NULL; + } + for (i = 0; i < sizeA; ++i) { + h = hash(widths[i].name); + widths[i].next = tab[h]; + tab[h] = &widths[i]; + } +} + +BuiltinFontWidths::~BuiltinFontWidths() { + gfree(tab); +} + +GBool BuiltinFontWidths::getWidth(char *name, Gushort *width) { + int h; + BuiltinFontWidth *p; + + h = hash(name); + for (p = tab[h]; p; p = p->next) { + if (!strcmp(p->name, name)) { + *width = p->width; + return gTrue; + } + } + return gFalse; +} + +int BuiltinFontWidths::hash(char *name) { + char *p; + unsigned int h; + + h = 0; + for (p = name; *p; ++p) { + h = 17 * h + (int)(*p & 0xff); + } + return (int)(h % size); +} diff --git a/pdf/xpdf/BuiltinFont.h b/pdf/xpdf/BuiltinFont.h new file mode 100644 index 00000000..a7953115 --- /dev/null +++ b/pdf/xpdf/BuiltinFont.h @@ -0,0 +1,55 @@ +//======================================================================== +// +// BuiltinFont.h +// +// Copyright 2001-2002 Glyph & Cog, LLC +// +//======================================================================== + +#ifndef BUILTINFONT_H +#define BUILTINFONT_H + +#ifdef __GNUC__ +#pragma interface +#endif + +#include "gtypes.h" + +struct BuiltinFont; +class BuiltinFontWidths; + +//------------------------------------------------------------------------ + +struct BuiltinFont { + char *name; + char **defaultBaseEnc; + short ascent; + short descent; + short bbox[4]; + BuiltinFontWidths *widths; +}; + +//------------------------------------------------------------------------ + +struct BuiltinFontWidth { + char *name; + Gushort width; + BuiltinFontWidth *next; +}; + +class BuiltinFontWidths { +public: + + BuiltinFontWidths(BuiltinFontWidth *widths, int sizeA); + ~BuiltinFontWidths(); + GBool getWidth(char *name, Gushort *width); + +private: + + int hash(char *name); + + BuiltinFontWidth **tab; + int size; +}; + +#endif diff --git a/pdf/xpdf/BuiltinFontTables.cc b/pdf/xpdf/BuiltinFontTables.cc new file mode 100644 index 00000000..845abcd3 --- /dev/null +++ b/pdf/xpdf/BuiltinFontTables.cc @@ -0,0 +1,3366 @@ +//======================================================================== +// +// BuiltinFontTables.cc +// +// Copyright 2001-2002 Glyph & Cog, LLC +// +//======================================================================== + +#include +#include +#include "FontEncodingTables.h" +#include "BuiltinFontTables.h" + +static BuiltinFontWidth courierWidthsTab[] = { + { "Ntilde", 600, NULL }, + { "comma", 600, NULL }, + { "cedilla", 600, NULL }, + { "plusminus", 600, NULL }, + { "arrowup", 600, NULL }, + { "circumflex", 600, NULL }, + { "dotaccent", 600, NULL }, + { "LL", 600, NULL }, + { "asciitilde", 600, NULL }, + { "colon", 600, NULL }, + { "onehalf", 600, NULL }, + { "dollar", 600, NULL }, + { "ntilde", 600, NULL }, + { "left", 600, NULL }, + { "minus", 600, NULL }, + { "yen", 600, NULL }, + { "space", 600, NULL }, + { "questiondown", 600, NULL }, + { "emdash", 600, NULL }, + { "Agrave", 600, NULL }, + { "three", 600, NULL }, + { "numbersign", 600, NULL }, + { "A", 600, NULL }, + { "B", 600, NULL }, + { "C", 600, NULL }, + { "D", 600, NULL }, + { "E", 600, NULL }, + { "onequarter", 600, NULL }, + { "F", 600, NULL }, + { "G", 600, NULL }, + { "H", 600, NULL }, + { "I", 600, NULL }, + { "J", 600, NULL }, + { "K", 600, NULL }, + { "L", 600, NULL }, + { "backslash", 600, NULL }, + { "periodcentered", 600, NULL }, + { "M", 600, NULL }, + { "N", 600, NULL }, + { "O", 600, NULL }, + { "P", 600, NULL }, + { "Q", 600, NULL }, + { "R", 600, NULL }, + { "Aacute", 600, NULL }, + { "caron", 600, NULL }, + { "S", 600, NULL }, + { "T", 600, NULL }, + { "U", 600, NULL }, + { "agrave", 600, NULL }, + { "V", 600, NULL }, + { "tab", 600, NULL }, + { "W", 600, NULL }, + { "ll", 600, NULL }, + { "equal", 600, NULL }, + { "question", 600, NULL }, + { "X", 600, NULL }, + { "Y", 600, NULL }, + { "Z", 600, NULL }, + { "four", 600, NULL }, + { "a", 600, NULL }, + { "b", 600, NULL }, + { "c", 600, NULL }, + { "d", 600, NULL }, + { "e", 600, NULL }, + { "f", 600, NULL }, + { "g", 600, NULL }, + { "bullet", 600, NULL }, + { "h", 600, NULL }, + { "i", 600, NULL }, + { "Oslash", 600, NULL }, + { "dagger", 600, NULL }, + { "j", 600, NULL }, + { "k", 600, NULL }, + { "l", 600, NULL }, + { "m", 600, NULL }, + { "n", 600, NULL }, + { "o", 600, NULL }, + { "ordfeminine", 600, NULL }, + { "ring", 600, NULL }, + { "p", 600, NULL }, + { "q", 600, NULL }, + { "r", 600, NULL }, + { "twosuperior", 600, NULL }, + { "largebullet", 600, NULL }, + { "aacute", 600, NULL }, + { "s", 600, NULL }, + { "OE", 600, NULL }, + { "t", 600, NULL }, + { "divide", 600, NULL }, + { "u", 600, NULL }, + { "v", 600, NULL }, + { "w", 600, NULL }, + { "x", 600, NULL }, + { "y", 600, NULL }, + { "z", 600, NULL }, + { "hungarumlaut", 600, NULL }, + { "quotedbl", 600, NULL }, + { "mu", 600, NULL }, + { "Scaron", 600, NULL }, + { "Lslash", 600, NULL }, + { "semicolon", 600, NULL }, + { "oslash", 600, NULL }, + { "parenright", 600, NULL }, + { "Ecircumflex", 600, NULL }, + { "trademark", 600, NULL }, + { "daggerdbl", 600, NULL }, + { "macron", 600, NULL }, + { "Otilde", 600, NULL }, + { "ellipsis", 600, NULL }, + { "scaron", 600, NULL }, + { "AE", 600, NULL }, + { "Ucircumflex", 600, NULL }, + { "lslash", 600, NULL }, + { "lira", 600, NULL }, + { "quotedblleft", 600, NULL }, + { "hyphen", 600, NULL }, + { "guilsinglright", 600, NULL }, + { "quotesingle", 600, NULL }, + { "eight", 600, NULL }, + { "exclamdown", 600, NULL }, + { "endash", 600, NULL }, + { "oe", 600, NULL }, + { "ecircumflex", 600, NULL }, + { "copyright", 600, NULL }, + { "Adieresis", 600, NULL }, + { "Egrave", 600, NULL }, + { "slash", 600, NULL }, + { "Edieresis", 600, NULL }, + { "otilde", 600, NULL }, + { "Idieresis", 600, NULL }, + { "parenleft", 600, NULL }, + { "one", 600, NULL }, + { "ucircumflex", 600, NULL }, + { "Odieresis", 600, NULL }, + { "bracketleft", 600, NULL }, + { "Ugrave", 600, NULL }, + { "quoteright", 600, NULL }, + { "Udieresis", 600, NULL }, + { "perthousand", 600, NULL }, + { "Ydieresis", 600, NULL }, + { "Eacute", 600, NULL }, + { "adieresis", 600, NULL }, + { "egrave", 600, NULL }, + { "edieresis", 600, NULL }, + { "idieresis", 600, NULL }, + { "Eth", 600, NULL }, + { "ae", 600, NULL }, + { "asterisk", 600, NULL }, + { "odieresis", 600, NULL }, + { "Uacute", 600, NULL }, + { "ugrave", 600, NULL }, + { "five", 600, NULL }, + { "nine", 600, NULL }, + { "udieresis", 600, NULL }, + { "Zcaron", 600, NULL }, + { "threequarters", 600, NULL }, + { "guillemotright", 600, NULL }, + { "ydieresis", 600, NULL }, + { "Ccedilla", 600, NULL }, + { "tilde", 600, NULL }, + { "at", 600, NULL }, + { "eacute", 600, NULL }, + { "Gcaron", 600, NULL }, + { "underscore", 600, NULL }, + { "zero", 600, NULL }, + { "multiply", 600, NULL }, + { "Scedilla", 600, NULL }, + { "eth", 600, NULL }, + { "Ograve", 600, NULL }, + { "uacute", 600, NULL }, + { "braceleft", 600, NULL }, + { "Thorn", 600, NULL }, + { "zcaron", 600, NULL }, + { "ccedilla", 600, NULL }, + { "gcaron", 600, NULL }, + { "Oacute", 600, NULL }, + { "Ocircumflex", 600, NULL }, + { "scedilla", 600, NULL }, + { "ogonek", 600, NULL }, + { "arrowdown", 600, NULL }, + { "ograve", 600, NULL }, + { "thorn", 600, NULL }, + { "degree", 600, NULL }, + { "registered", 600, NULL }, + { "percent", 600, NULL }, + { "Aring", 600, NULL }, + { "six", 600, NULL }, + { "paragraph", 600, NULL }, + { "two", 600, NULL }, + { "Igrave", 600, NULL }, + { "oacute", 600, NULL }, + { "ocircumflex", 600, NULL }, + { "asciicircum", 600, NULL }, + { "aring", 600, NULL }, + { "square", 600, NULL }, + { "grave", 600, NULL }, + { "bracketright", 600, NULL }, + { "ampersand", 600, NULL }, + { "Iacute", 600, NULL }, + { "igrave", 600, NULL }, + { "return", 600, NULL }, + { "plus", 600, NULL }, + { "quotesinglbase", 600, NULL }, + { "Yacute", 600, NULL }, + { "threesuperior", 600, NULL }, + { "acute", 600, NULL }, + { "notegraphic", 600, NULL }, + { "section", 600, NULL }, + { "arrowleft", 600, NULL }, + { "dieresis", 600, NULL }, + { "quotedblbase", 600, NULL }, + { "iacute", 600, NULL }, + { "up", 600, NULL }, + { "florin", 600, NULL }, + { "yacute", 600, NULL }, + { "fi", 600, NULL }, + { "fl", 600, NULL }, + { "Acircumflex", 600, NULL }, + { "Icircumflex", 600, NULL }, + { "guillemotleft", 600, NULL }, + { "germandbls", 600, NULL }, + { "seven", 600, NULL }, + { "indent", 600, NULL }, + { "prescription", 600, NULL }, + { "dectab", 600, NULL }, + { "ordmasculine", 600, NULL }, + { "dotlessi", 600, NULL }, + { "sterling", 600, NULL }, + { "IJ", 600, NULL }, + { "acircumflex", 600, NULL }, + { "overscore", 600, NULL }, + { "braceright", 600, NULL }, + { "icircumflex", 600, NULL }, + { "graybox", 600, NULL }, + { "quotedblright", 600, NULL }, + { "center", 600, NULL }, + { "stop", 600, NULL }, + { "cent", 600, NULL }, + { "currency", 600, NULL }, + { "logicalnot", 600, NULL }, + { "Idot", 600, NULL }, + { "merge", 600, NULL }, + { "Atilde", 600, NULL }, + { "breve", 600, NULL }, + { "bar", 600, NULL }, + { "fraction", 600, NULL }, + { "less", 600, NULL }, + { "down", 600, NULL }, + { "guilsinglleft", 600, NULL }, + { "exclam", 600, NULL }, + { "period", 600, NULL }, + { "arrowright", 600, NULL }, + { "format", 600, NULL }, + { "greater", 600, NULL }, + { "atilde", 600, NULL }, + { "ij", 600, NULL }, + { "brokenbar", 600, NULL }, + { "arrowboth", 600, NULL }, + { "quoteleft", 600, NULL }, + { "onesuperior", 600, NULL } +}; + +static BuiltinFontWidth courierBoldWidthsTab[] = { + { "Ntilde", 600, NULL }, + { "comma", 600, NULL }, + { "cedilla", 600, NULL }, + { "plusminus", 600, NULL }, + { "arrowup", 600, NULL }, + { "circumflex", 600, NULL }, + { "dotaccent", 600, NULL }, + { "LL", 600, NULL }, + { "asciitilde", 600, NULL }, + { "colon", 600, NULL }, + { "onehalf", 600, NULL }, + { "dollar", 600, NULL }, + { "ntilde", 600, NULL }, + { "left", 600, NULL }, + { "minus", 600, NULL }, + { "yen", 600, NULL }, + { "space", 600, NULL }, + { "questiondown", 600, NULL }, + { "emdash", 600, NULL }, + { "Agrave", 600, NULL }, + { "three", 600, NULL }, + { "numbersign", 600, NULL }, + { "A", 600, NULL }, + { "B", 600, NULL }, + { "C", 600, NULL }, + { "D", 600, NULL }, + { "E", 600, NULL }, + { "onequarter", 600, NULL }, + { "F", 600, NULL }, + { "G", 600, NULL }, + { "H", 600, NULL }, + { "I", 600, NULL }, + { "J", 600, NULL }, + { "K", 600, NULL }, + { "backslash", 600, NULL }, + { "L", 600, NULL }, + { "periodcentered", 600, NULL }, + { "M", 600, NULL }, + { "N", 600, NULL }, + { "O", 600, NULL }, + { "P", 600, NULL }, + { "Q", 600, NULL }, + { "R", 600, NULL }, + { "Aacute", 600, NULL }, + { "caron", 600, NULL }, + { "S", 600, NULL }, + { "T", 600, NULL }, + { "U", 600, NULL }, + { "agrave", 600, NULL }, + { "V", 600, NULL }, + { "tab", 600, NULL }, + { "W", 600, NULL }, + { "ll", 600, NULL }, + { "X", 600, NULL }, + { "question", 600, NULL }, + { "equal", 600, NULL }, + { "Y", 600, NULL }, + { "Z", 600, NULL }, + { "four", 600, NULL }, + { "a", 600, NULL }, + { "b", 600, NULL }, + { "c", 600, NULL }, + { "d", 600, NULL }, + { "e", 600, NULL }, + { "f", 600, NULL }, + { "g", 600, NULL }, + { "bullet", 600, NULL }, + { "h", 600, NULL }, + { "i", 600, NULL }, + { "Oslash", 600, NULL }, + { "dagger", 600, NULL }, + { "j", 600, NULL }, + { "k", 600, NULL }, + { "l", 600, NULL }, + { "m", 600, NULL }, + { "n", 600, NULL }, + { "o", 600, NULL }, + { "ordfeminine", 600, NULL }, + { "ring", 600, NULL }, + { "p", 600, NULL }, + { "q", 600, NULL }, + { "r", 600, NULL }, + { "twosuperior", 600, NULL }, + { "largebullet", 600, NULL }, + { "aacute", 600, NULL }, + { "s", 600, NULL }, + { "OE", 600, NULL }, + { "t", 600, NULL }, + { "divide", 600, NULL }, + { "u", 600, NULL }, + { "v", 600, NULL }, + { "w", 600, NULL }, + { "x", 600, NULL }, + { "y", 600, NULL }, + { "z", 600, NULL }, + { "hungarumlaut", 600, NULL }, + { "quotedbl", 600, NULL }, + { "mu", 600, NULL }, + { "Scaron", 600, NULL }, + { "Lslash", 600, NULL }, + { "semicolon", 600, NULL }, + { "oslash", 600, NULL }, + { "parenright", 600, NULL }, + { "Ecircumflex", 600, NULL }, + { "trademark", 600, NULL }, + { "daggerdbl", 600, NULL }, + { "macron", 600, NULL }, + { "Otilde", 600, NULL }, + { "ellipsis", 600, NULL }, + { "scaron", 600, NULL }, + { "AE", 600, NULL }, + { "Ucircumflex", 600, NULL }, + { "lslash", 600, NULL }, + { "lira", 600, NULL }, + { "quotedblleft", 600, NULL }, + { "guilsinglright", 600, NULL }, + { "hyphen", 600, NULL }, + { "quotesingle", 600, NULL }, + { "eight", 600, NULL }, + { "exclamdown", 600, NULL }, + { "endash", 600, NULL }, + { "oe", 600, NULL }, + { "ecircumflex", 600, NULL }, + { "copyright", 600, NULL }, + { "Adieresis", 600, NULL }, + { "Egrave", 600, NULL }, + { "slash", 600, NULL }, + { "Edieresis", 600, NULL }, + { "otilde", 600, NULL }, + { "Idieresis", 600, NULL }, + { "parenleft", 600, NULL }, + { "one", 600, NULL }, + { "ucircumflex", 600, NULL }, + { "Odieresis", 600, NULL }, + { "bracketleft", 600, NULL }, + { "Ugrave", 600, NULL }, + { "quoteright", 600, NULL }, + { "Udieresis", 600, NULL }, + { "perthousand", 600, NULL }, + { "Ydieresis", 600, NULL }, + { "Eacute", 600, NULL }, + { "adieresis", 600, NULL }, + { "egrave", 600, NULL }, + { "edieresis", 600, NULL }, + { "idieresis", 600, NULL }, + { "Eth", 600, NULL }, + { "ae", 600, NULL }, + { "asterisk", 600, NULL }, + { "odieresis", 600, NULL }, + { "Uacute", 600, NULL }, + { "ugrave", 600, NULL }, + { "nine", 600, NULL }, + { "five", 600, NULL }, + { "udieresis", 600, NULL }, + { "Zcaron", 600, NULL }, + { "threequarters", 600, NULL }, + { "guillemotright", 600, NULL }, + { "ydieresis", 600, NULL }, + { "Ccedilla", 600, NULL }, + { "tilde", 600, NULL }, + { "at", 600, NULL }, + { "eacute", 600, NULL }, + { "Gcaron", 600, NULL }, + { "underscore", 600, NULL }, + { "multiply", 600, NULL }, + { "zero", 600, NULL }, + { "eth", 600, NULL }, + { "Scedilla", 600, NULL }, + { "Ograve", 600, NULL }, + { "uacute", 600, NULL }, + { "braceleft", 600, NULL }, + { "Thorn", 600, NULL }, + { "zcaron", 600, NULL }, + { "ccedilla", 600, NULL }, + { "gcaron", 600, NULL }, + { "scedilla", 600, NULL }, + { "Ocircumflex", 600, NULL }, + { "Oacute", 600, NULL }, + { "arrowdown", 600, NULL }, + { "ogonek", 600, NULL }, + { "ograve", 600, NULL }, + { "thorn", 600, NULL }, + { "degree", 600, NULL }, + { "registered", 600, NULL }, + { "Aring", 600, NULL }, + { "percent", 600, NULL }, + { "six", 600, NULL }, + { "paragraph", 600, NULL }, + { "two", 600, NULL }, + { "Igrave", 600, NULL }, + { "ocircumflex", 600, NULL }, + { "oacute", 600, NULL }, + { "asciicircum", 600, NULL }, + { "square", 600, NULL }, + { "aring", 600, NULL }, + { "grave", 600, NULL }, + { "bracketright", 600, NULL }, + { "Iacute", 600, NULL }, + { "ampersand", 600, NULL }, + { "igrave", 600, NULL }, + { "return", 600, NULL }, + { "plus", 600, NULL }, + { "quotesinglbase", 600, NULL }, + { "Yacute", 600, NULL }, + { "threesuperior", 600, NULL }, + { "acute", 600, NULL }, + { "notegraphic", 600, NULL }, + { "section", 600, NULL }, + { "arrowleft", 600, NULL }, + { "dieresis", 600, NULL }, + { "iacute", 600, NULL }, + { "quotedblbase", 600, NULL }, + { "up", 600, NULL }, + { "florin", 600, NULL }, + { "yacute", 600, NULL }, + { "fi", 600, NULL }, + { "fl", 600, NULL }, + { "Acircumflex", 600, NULL }, + { "Icircumflex", 600, NULL }, + { "guillemotleft", 600, NULL }, + { "germandbls", 600, NULL }, + { "seven", 600, NULL }, + { "prescription", 600, NULL }, + { "indent", 600, NULL }, + { "dectab", 600, NULL }, + { "ordmasculine", 600, NULL }, + { "dotlessi", 600, NULL }, + { "sterling", 600, NULL }, + { "acircumflex", 600, NULL }, + { "IJ", 600, NULL }, + { "overscore", 600, NULL }, + { "icircumflex", 600, NULL }, + { "braceright", 600, NULL }, + { "graybox", 600, NULL }, + { "quotedblright", 600, NULL }, + { "center", 600, NULL }, + { "stop", 600, NULL }, + { "cent", 600, NULL }, + { "currency", 600, NULL }, + { "logicalnot", 600, NULL }, + { "merge", 600, NULL }, + { "Idot", 600, NULL }, + { "Atilde", 600, NULL }, + { "breve", 600, NULL }, + { "bar", 600, NULL }, + { "fraction", 600, NULL }, + { "less", 600, NULL }, + { "down", 600, NULL }, + { "guilsinglleft", 600, NULL }, + { "exclam", 600, NULL }, + { "period", 600, NULL }, + { "format", 600, NULL }, + { "arrowright", 600, NULL }, + { "greater", 600, NULL }, + { "ij", 600, NULL }, + { "atilde", 600, NULL }, + { "brokenbar", 600, NULL }, + { "arrowboth", 600, NULL }, + { "quoteleft", 600, NULL }, + { "onesuperior", 600, NULL } +}; + +static BuiltinFontWidth courierBoldObliqueWidthsTab[] = { + { "Ntilde", 600, NULL }, + { "comma", 600, NULL }, + { "cedilla", 600, NULL }, + { "plusminus", 600, NULL }, + { "arrowup", 600, NULL }, + { "circumflex", 600, NULL }, + { "dotaccent", 600, NULL }, + { "LL", 600, NULL }, + { "asciitilde", 600, NULL }, + { "colon", 600, NULL }, + { "onehalf", 600, NULL }, + { "dollar", 600, NULL }, + { "ntilde", 600, NULL }, + { "left", 600, NULL }, + { "minus", 600, NULL }, + { "yen", 600, NULL }, + { "space", 600, NULL }, + { "questiondown", 600, NULL }, + { "emdash", 600, NULL }, + { "Agrave", 600, NULL }, + { "three", 600, NULL }, + { "numbersign", 600, NULL }, + { "A", 600, NULL }, + { "B", 600, NULL }, + { "C", 600, NULL }, + { "D", 600, NULL }, + { "E", 600, NULL }, + { "onequarter", 600, NULL }, + { "F", 600, NULL }, + { "G", 600, NULL }, + { "H", 600, NULL }, + { "I", 600, NULL }, + { "J", 600, NULL }, + { "K", 600, NULL }, + { "backslash", 600, NULL }, + { "L", 600, NULL }, + { "periodcentered", 600, NULL }, + { "M", 600, NULL }, + { "N", 600, NULL }, + { "O", 600, NULL }, + { "P", 600, NULL }, + { "Q", 600, NULL }, + { "R", 600, NULL }, + { "Aacute", 600, NULL }, + { "caron", 600, NULL }, + { "S", 600, NULL }, + { "T", 600, NULL }, + { "U", 600, NULL }, + { "agrave", 600, NULL }, + { "V", 600, NULL }, + { "tab", 600, NULL }, + { "W", 600, NULL }, + { "ll", 600, NULL }, + { "X", 600, NULL }, + { "question", 600, NULL }, + { "equal", 600, NULL }, + { "Y", 600, NULL }, + { "Z", 600, NULL }, + { "four", 600, NULL }, + { "a", 600, NULL }, + { "b", 600, NULL }, + { "c", 600, NULL }, + { "d", 600, NULL }, + { "e", 600, NULL }, + { "f", 600, NULL }, + { "g", 600, NULL }, + { "bullet", 600, NULL }, + { "h", 600, NULL }, + { "i", 600, NULL }, + { "Oslash", 600, NULL }, + { "dagger", 600, NULL }, + { "j", 600, NULL }, + { "k", 600, NULL }, + { "l", 600, NULL }, + { "m", 600, NULL }, + { "n", 600, NULL }, + { "o", 600, NULL }, + { "ordfeminine", 600, NULL }, + { "ring", 600, NULL }, + { "p", 600, NULL }, + { "q", 600, NULL }, + { "r", 600, NULL }, + { "twosuperior", 600, NULL }, + { "largebullet", 600, NULL }, + { "aacute", 600, NULL }, + { "s", 600, NULL }, + { "OE", 600, NULL }, + { "t", 600, NULL }, + { "divide", 600, NULL }, + { "u", 600, NULL }, + { "v", 600, NULL }, + { "w", 600, NULL }, + { "x", 600, NULL }, + { "y", 600, NULL }, + { "z", 600, NULL }, + { "hungarumlaut", 600, NULL }, + { "quotedbl", 600, NULL }, + { "mu", 600, NULL }, + { "Scaron", 600, NULL }, + { "Lslash", 600, NULL }, + { "semicolon", 600, NULL }, + { "oslash", 600, NULL }, + { "parenright", 600, NULL }, + { "Ecircumflex", 600, NULL }, + { "trademark", 600, NULL }, + { "daggerdbl", 600, NULL }, + { "macron", 600, NULL }, + { "Otilde", 600, NULL }, + { "ellipsis", 600, NULL }, + { "scaron", 600, NULL }, + { "AE", 600, NULL }, + { "Ucircumflex", 600, NULL }, + { "lslash", 600, NULL }, + { "lira", 600, NULL }, + { "quotedblleft", 600, NULL }, + { "guilsinglright", 600, NULL }, + { "hyphen", 600, NULL }, + { "quotesingle", 600, NULL }, + { "eight", 600, NULL }, + { "exclamdown", 600, NULL }, + { "endash", 600, NULL }, + { "oe", 600, NULL }, + { "ecircumflex", 600, NULL }, + { "copyright", 600, NULL }, + { "Adieresis", 600, NULL }, + { "Egrave", 600, NULL }, + { "slash", 600, NULL }, + { "Edieresis", 600, NULL }, + { "otilde", 600, NULL }, + { "Idieresis", 600, NULL }, + { "parenleft", 600, NULL }, + { "one", 600, NULL }, + { "ucircumflex", 600, NULL }, + { "Odieresis", 600, NULL }, + { "bracketleft", 600, NULL }, + { "Ugrave", 600, NULL }, + { "quoteright", 600, NULL }, + { "Udieresis", 600, NULL }, + { "perthousand", 600, NULL }, + { "Ydieresis", 600, NULL }, + { "Eacute", 600, NULL }, + { "adieresis", 600, NULL }, + { "egrave", 600, NULL }, + { "edieresis", 600, NULL }, + { "idieresis", 600, NULL }, + { "Eth", 600, NULL }, + { "ae", 600, NULL }, + { "asterisk", 600, NULL }, + { "odieresis", 600, NULL }, + { "Uacute", 600, NULL }, + { "ugrave", 600, NULL }, + { "nine", 600, NULL }, + { "five", 600, NULL }, + { "udieresis", 600, NULL }, + { "Zcaron", 600, NULL }, + { "threequarters", 600, NULL }, + { "guillemotright", 600, NULL }, + { "ydieresis", 600, NULL }, + { "Ccedilla", 600, NULL }, + { "tilde", 600, NULL }, + { "at", 600, NULL }, + { "eacute", 600, NULL }, + { "Gcaron", 600, NULL }, + { "underscore", 600, NULL }, + { "multiply", 600, NULL }, + { "zero", 600, NULL }, + { "eth", 600, NULL }, + { "Scedilla", 600, NULL }, + { "Ograve", 600, NULL }, + { "uacute", 600, NULL }, + { "braceleft", 600, NULL }, + { "Thorn", 600, NULL }, + { "zcaron", 600, NULL }, + { "ccedilla", 600, NULL }, + { "gcaron", 600, NULL }, + { "scedilla", 600, NULL }, + { "Ocircumflex", 600, NULL }, + { "Oacute", 600, NULL }, + { "arrowdown", 600, NULL }, + { "ogonek", 600, NULL }, + { "ograve", 600, NULL }, + { "thorn", 600, NULL }, + { "degree", 600, NULL }, + { "registered", 600, NULL }, + { "Aring", 600, NULL }, + { "percent", 600, NULL }, + { "six", 600, NULL }, + { "paragraph", 600, NULL }, + { "two", 600, NULL }, + { "Igrave", 600, NULL }, + { "ocircumflex", 600, NULL }, + { "oacute", 600, NULL }, + { "asciicircum", 600, NULL }, + { "square", 600, NULL }, + { "aring", 600, NULL }, + { "grave", 600, NULL }, + { "bracketright", 600, NULL }, + { "Iacute", 600, NULL }, + { "ampersand", 600, NULL }, + { "igrave", 600, NULL }, + { "return", 600, NULL }, + { "plus", 600, NULL }, + { "quotesinglbase", 600, NULL }, + { "Yacute", 600, NULL }, + { "threesuperior", 600, NULL }, + { "acute", 600, NULL }, + { "notegraphic", 600, NULL }, + { "section", 600, NULL }, + { "arrowleft", 600, NULL }, + { "dieresis", 600, NULL }, + { "iacute", 600, NULL }, + { "quotedblbase", 600, NULL }, + { "up", 600, NULL }, + { "florin", 600, NULL }, + { "yacute", 600, NULL }, + { "fi", 600, NULL }, + { "fl", 600, NULL }, + { "Acircumflex", 600, NULL }, + { "Icircumflex", 600, NULL }, + { "guillemotleft", 600, NULL }, + { "germandbls", 600, NULL }, + { "seven", 600, NULL }, + { "prescription", 600, NULL }, + { "indent", 600, NULL }, + { "dectab", 600, NULL }, + { "ordmasculine", 600, NULL }, + { "dotlessi", 600, NULL }, + { "sterling", 600, NULL }, + { "acircumflex", 600, NULL }, + { "IJ", 600, NULL }, + { "overscore", 600, NULL }, + { "icircumflex", 600, NULL }, + { "braceright", 600, NULL }, + { "graybox", 600, NULL }, + { "quotedblright", 600, NULL }, + { "center", 600, NULL }, + { "stop", 600, NULL }, + { "cent", 600, NULL }, + { "currency", 600, NULL }, + { "logicalnot", 600, NULL }, + { "merge", 600, NULL }, + { "Idot", 600, NULL }, + { "Atilde", 600, NULL }, + { "breve", 600, NULL }, + { "bar", 600, NULL }, + { "fraction", 600, NULL }, + { "less", 600, NULL }, + { "down", 600, NULL }, + { "guilsinglleft", 600, NULL }, + { "exclam", 600, NULL }, + { "period", 600, NULL }, + { "format", 600, NULL }, + { "arrowright", 600, NULL }, + { "greater", 600, NULL }, + { "ij", 600, NULL }, + { "atilde", 600, NULL }, + { "brokenbar", 600, NULL }, + { "arrowboth", 600, NULL }, + { "quoteleft", 600, NULL }, + { "onesuperior", 600, NULL } +}; + +static BuiltinFontWidth courierObliqueWidthsTab[] = { + { "Ntilde", 600, NULL }, + { "comma", 600, NULL }, + { "cedilla", 600, NULL }, + { "plusminus", 600, NULL }, + { "arrowup", 600, NULL }, + { "circumflex", 600, NULL }, + { "dotaccent", 600, NULL }, + { "LL", 600, NULL }, + { "asciitilde", 600, NULL }, + { "colon", 600, NULL }, + { "onehalf", 600, NULL }, + { "dollar", 600, NULL }, + { "ntilde", 600, NULL }, + { "left", 600, NULL }, + { "minus", 600, NULL }, + { "yen", 600, NULL }, + { "space", 600, NULL }, + { "questiondown", 600, NULL }, + { "emdash", 600, NULL }, + { "Agrave", 600, NULL }, + { "three", 600, NULL }, + { "numbersign", 600, NULL }, + { "A", 600, NULL }, + { "B", 600, NULL }, + { "C", 600, NULL }, + { "D", 600, NULL }, + { "E", 600, NULL }, + { "onequarter", 600, NULL }, + { "F", 600, NULL }, + { "G", 600, NULL }, + { "H", 600, NULL }, + { "I", 600, NULL }, + { "J", 600, NULL }, + { "K", 600, NULL }, + { "backslash", 600, NULL }, + { "L", 600, NULL }, + { "periodcentered", 600, NULL }, + { "M", 600, NULL }, + { "N", 600, NULL }, + { "O", 600, NULL }, + { "P", 600, NULL }, + { "Q", 600, NULL }, + { "R", 600, NULL }, + { "Aacute", 600, NULL }, + { "caron", 600, NULL }, + { "S", 600, NULL }, + { "T", 600, NULL }, + { "U", 600, NULL }, + { "agrave", 600, NULL }, + { "V", 600, NULL }, + { "tab", 600, NULL }, + { "W", 600, NULL }, + { "ll", 600, NULL }, + { "X", 600, NULL }, + { "question", 600, NULL }, + { "equal", 600, NULL }, + { "Y", 600, NULL }, + { "Z", 600, NULL }, + { "four", 600, NULL }, + { "a", 600, NULL }, + { "b", 600, NULL }, + { "c", 600, NULL }, + { "d", 600, NULL }, + { "e", 600, NULL }, + { "f", 600, NULL }, + { "g", 600, NULL }, + { "bullet", 600, NULL }, + { "h", 600, NULL }, + { "i", 600, NULL }, + { "Oslash", 600, NULL }, + { "dagger", 600, NULL }, + { "j", 600, NULL }, + { "k", 600, NULL }, + { "l", 600, NULL }, + { "m", 600, NULL }, + { "n", 600, NULL }, + { "o", 600, NULL }, + { "ordfeminine", 600, NULL }, + { "ring", 600, NULL }, + { "p", 600, NULL }, + { "q", 600, NULL }, + { "r", 600, NULL }, + { "twosuperior", 600, NULL }, + { "largebullet", 600, NULL }, + { "aacute", 600, NULL }, + { "s", 600, NULL }, + { "OE", 600, NULL }, + { "t", 600, NULL }, + { "divide", 600, NULL }, + { "u", 600, NULL }, + { "v", 600, NULL }, + { "w", 600, NULL }, + { "x", 600, NULL }, + { "y", 600, NULL }, + { "z", 600, NULL }, + { "hungarumlaut", 600, NULL }, + { "quotedbl", 600, NULL }, + { "mu", 600, NULL }, + { "Scaron", 600, NULL }, + { "Lslash", 600, NULL }, + { "semicolon", 600, NULL }, + { "oslash", 600, NULL }, + { "parenright", 600, NULL }, + { "Ecircumflex", 600, NULL }, + { "trademark", 600, NULL }, + { "daggerdbl", 600, NULL }, + { "macron", 600, NULL }, + { "Otilde", 600, NULL }, + { "ellipsis", 600, NULL }, + { "scaron", 600, NULL }, + { "AE", 600, NULL }, + { "Ucircumflex", 600, NULL }, + { "lslash", 600, NULL }, + { "lira", 600, NULL }, + { "quotedblleft", 600, NULL }, + { "guilsinglright", 600, NULL }, + { "hyphen", 600, NULL }, + { "quotesingle", 600, NULL }, + { "eight", 600, NULL }, + { "exclamdown", 600, NULL }, + { "endash", 600, NULL }, + { "oe", 600, NULL }, + { "ecircumflex", 600, NULL }, + { "copyright", 600, NULL }, + { "Adieresis", 600, NULL }, + { "Egrave", 600, NULL }, + { "slash", 600, NULL }, + { "Edieresis", 600, NULL }, + { "otilde", 600, NULL }, + { "Idieresis", 600, NULL }, + { "parenleft", 600, NULL }, + { "one", 600, NULL }, + { "ucircumflex", 600, NULL }, + { "Odieresis", 600, NULL }, + { "bracketleft", 600, NULL }, + { "Ugrave", 600, NULL }, + { "quoteright", 600, NULL }, + { "Udieresis", 600, NULL }, + { "perthousand", 600, NULL }, + { "Ydieresis", 600, NULL }, + { "Eacute", 600, NULL }, + { "adieresis", 600, NULL }, + { "egrave", 600, NULL }, + { "edieresis", 600, NULL }, + { "idieresis", 600, NULL }, + { "Eth", 600, NULL }, + { "ae", 600, NULL }, + { "asterisk", 600, NULL }, + { "odieresis", 600, NULL }, + { "Uacute", 600, NULL }, + { "ugrave", 600, NULL }, + { "nine", 600, NULL }, + { "five", 600, NULL }, + { "udieresis", 600, NULL }, + { "Zcaron", 600, NULL }, + { "threequarters", 600, NULL }, + { "guillemotright", 600, NULL }, + { "ydieresis", 600, NULL }, + { "Ccedilla", 600, NULL }, + { "tilde", 600, NULL }, + { "at", 600, NULL }, + { "eacute", 600, NULL }, + { "Gcaron", 600, NULL }, + { "underscore", 600, NULL }, + { "multiply", 600, NULL }, + { "zero", 600, NULL }, + { "eth", 600, NULL }, + { "Scedilla", 600, NULL }, + { "Ograve", 600, NULL }, + { "uacute", 600, NULL }, + { "braceleft", 600, NULL }, + { "Thorn", 600, NULL }, + { "zcaron", 600, NULL }, + { "ccedilla", 600, NULL }, + { "gcaron", 600, NULL }, + { "scedilla", 600, NULL }, + { "Ocircumflex", 600, NULL }, + { "Oacute", 600, NULL }, + { "arrowdown", 600, NULL }, + { "ogonek", 600, NULL }, + { "ograve", 600, NULL }, + { "thorn", 600, NULL }, + { "degree", 600, NULL }, + { "registered", 600, NULL }, + { "Aring", 600, NULL }, + { "percent", 600, NULL }, + { "six", 600, NULL }, + { "paragraph", 600, NULL }, + { "two", 600, NULL }, + { "Igrave", 600, NULL }, + { "ocircumflex", 600, NULL }, + { "oacute", 600, NULL }, + { "asciicircum", 600, NULL }, + { "square", 600, NULL }, + { "aring", 600, NULL }, + { "grave", 600, NULL }, + { "bracketright", 600, NULL }, + { "Iacute", 600, NULL }, + { "ampersand", 600, NULL }, + { "igrave", 600, NULL }, + { "return", 600, NULL }, + { "plus", 600, NULL }, + { "quotesinglbase", 600, NULL }, + { "Yacute", 600, NULL }, + { "threesuperior", 600, NULL }, + { "acute", 600, NULL }, + { "notegraphic", 600, NULL }, + { "section", 600, NULL }, + { "arrowleft", 600, NULL }, + { "dieresis", 600, NULL }, + { "iacute", 600, NULL }, + { "quotedblbase", 600, NULL }, + { "up", 600, NULL }, + { "florin", 600, NULL }, + { "yacute", 600, NULL }, + { "fi", 600, NULL }, + { "fl", 600, NULL }, + { "Acircumflex", 600, NULL }, + { "Icircumflex", 600, NULL }, + { "guillemotleft", 600, NULL }, + { "germandbls", 600, NULL }, + { "seven", 600, NULL }, + { "prescription", 600, NULL }, + { "indent", 600, NULL }, + { "dectab", 600, NULL }, + { "ordmasculine", 600, NULL }, + { "dotlessi", 600, NULL }, + { "sterling", 600, NULL }, + { "acircumflex", 600, NULL }, + { "IJ", 600, NULL }, + { "overscore", 600, NULL }, + { "icircumflex", 600, NULL }, + { "braceright", 600, NULL }, + { "graybox", 600, NULL }, + { "quotedblright", 600, NULL }, + { "center", 600, NULL }, + { "stop", 600, NULL }, + { "cent", 600, NULL }, + { "currency", 600, NULL }, + { "logicalnot", 600, NULL }, + { "merge", 600, NULL }, + { "Idot", 600, NULL }, + { "Atilde", 600, NULL }, + { "breve", 600, NULL }, + { "bar", 600, NULL }, + { "fraction", 600, NULL }, + { "less", 600, NULL }, + { "down", 600, NULL }, + { "guilsinglleft", 600, NULL }, + { "exclam", 600, NULL }, + { "period", 600, NULL }, + { "format", 600, NULL }, + { "arrowright", 600, NULL }, + { "greater", 600, NULL }, + { "ij", 600, NULL }, + { "atilde", 600, NULL }, + { "brokenbar", 600, NULL }, + { "arrowboth", 600, NULL }, + { "quoteleft", 600, NULL }, + { "onesuperior", 600, NULL } +}; + +static BuiltinFontWidth helveticaWidthsTab[] = { + { "Ntilde", 722, NULL }, + { "comma", 278, NULL }, + { "cedilla", 333, NULL }, + { "plusminus", 584, NULL }, + { "circumflex", 333, NULL }, + { "dotaccent", 333, NULL }, + { "asciitilde", 584, NULL }, + { "colon", 278, NULL }, + { "onehalf", 834, NULL }, + { "dollar", 556, NULL }, + { "ntilde", 556, NULL }, + { "minus", 584, NULL }, + { "yen", 556, NULL }, + { "space", 278, NULL }, + { "questiondown", 611, NULL }, + { "emdash", 1000, NULL }, + { "Agrave", 667, NULL }, + { "three", 556, NULL }, + { "numbersign", 556, NULL }, + { "A", 667, NULL }, + { "B", 667, NULL }, + { "C", 722, NULL }, + { "D", 722, NULL }, + { "E", 667, NULL }, + { "onequarter", 834, NULL }, + { "F", 611, NULL }, + { "G", 778, NULL }, + { "H", 722, NULL }, + { "I", 278, NULL }, + { "J", 500, NULL }, + { "K", 667, NULL }, + { "backslash", 278, NULL }, + { "L", 556, NULL }, + { "periodcentered", 278, NULL }, + { "M", 833, NULL }, + { "N", 722, NULL }, + { "O", 778, NULL }, + { "P", 667, NULL }, + { "Q", 778, NULL }, + { "R", 722, NULL }, + { "Aacute", 667, NULL }, + { "caron", 333, NULL }, + { "S", 667, NULL }, + { "T", 611, NULL }, + { "U", 722, NULL }, + { "agrave", 556, NULL }, + { "V", 667, NULL }, + { "W", 944, NULL }, + { "X", 667, NULL }, + { "question", 556, NULL }, + { "equal", 584, NULL }, + { "Y", 667, NULL }, + { "Z", 611, NULL }, + { "four", 556, NULL }, + { "a", 556, NULL }, + { "b", 556, NULL }, + { "c", 500, NULL }, + { "d", 556, NULL }, + { "e", 556, NULL }, + { "f", 278, NULL }, + { "g", 556, NULL }, + { "bullet", 350, NULL }, + { "h", 556, NULL }, + { "i", 222, NULL }, + { "Oslash", 778, NULL }, + { "dagger", 556, NULL }, + { "j", 222, NULL }, + { "k", 500, NULL }, + { "l", 222, NULL }, + { "m", 833, NULL }, + { "n", 556, NULL }, + { "o", 556, NULL }, + { "ordfeminine", 370, NULL }, + { "ring", 333, NULL }, + { "p", 556, NULL }, + { "q", 556, NULL }, + { "r", 333, NULL }, + { "twosuperior", 333, NULL }, + { "aacute", 556, NULL }, + { "s", 500, NULL }, + { "OE", 1000, NULL }, + { "t", 278, NULL }, + { "divide", 584, NULL }, + { "u", 556, NULL }, + { "v", 500, NULL }, + { "w", 722, NULL }, + { "x", 500, NULL }, + { "y", 500, NULL }, + { "z", 500, NULL }, + { "hungarumlaut", 333, NULL }, + { "quotedbl", 355, NULL }, + { "mu", 556, NULL }, + { "Scaron", 667, NULL }, + { "Lslash", 556, NULL }, + { "semicolon", 278, NULL }, + { "oslash", 611, NULL }, + { "parenright", 333, NULL }, + { "Ecircumflex", 667, NULL }, + { "trademark", 1000, NULL }, + { "daggerdbl", 556, NULL }, + { "macron", 333, NULL }, + { "Otilde", 778, NULL }, + { "ellipsis", 1000, NULL }, + { "scaron", 500, NULL }, + { "AE", 1000, NULL }, + { "Ucircumflex", 722, NULL }, + { "lslash", 222, NULL }, + { "quotedblleft", 333, NULL }, + { "guilsinglright", 333, NULL }, + { "hyphen", 333, NULL }, + { "quotesingle", 191, NULL }, + { "eight", 556, NULL }, + { "exclamdown", 333, NULL }, + { "endash", 556, NULL }, + { "oe", 944, NULL }, + { "ecircumflex", 556, NULL }, + { "copyright", 737, NULL }, + { "Adieresis", 667, NULL }, + { "Egrave", 667, NULL }, + { "slash", 278, NULL }, + { "Edieresis", 667, NULL }, + { "otilde", 556, NULL }, + { "Idieresis", 278, NULL }, + { "parenleft", 333, NULL }, + { "one", 556, NULL }, + { "ucircumflex", 556, NULL }, + { "Odieresis", 778, NULL }, + { "bracketleft", 278, NULL }, + { "Ugrave", 722, NULL }, + { "quoteright", 222, NULL }, + { "Udieresis", 722, NULL }, + { "perthousand", 1000, NULL }, + { "Ydieresis", 667, NULL }, + { "Eacute", 667, NULL }, + { "adieresis", 556, NULL }, + { "egrave", 556, NULL }, + { "edieresis", 556, NULL }, + { "idieresis", 278, NULL }, + { "Eth", 722, NULL }, + { "ae", 889, NULL }, + { "asterisk", 389, NULL }, + { "odieresis", 556, NULL }, + { "Uacute", 722, NULL }, + { "ugrave", 556, NULL }, + { "nine", 556, NULL }, + { "five", 556, NULL }, + { "udieresis", 556, NULL }, + { "Zcaron", 611, NULL }, + { "threequarters", 834, NULL }, + { "guillemotright", 556, NULL }, + { "ydieresis", 500, NULL }, + { "Ccedilla", 722, NULL }, + { "tilde", 333, NULL }, + { "at", 1015, NULL }, + { "eacute", 556, NULL }, + { "underscore", 556, NULL }, + { "multiply", 584, NULL }, + { "zero", 556, NULL }, + { "eth", 556, NULL }, + { "Ograve", 778, NULL }, + { "uacute", 556, NULL }, + { "braceleft", 334, NULL }, + { "Thorn", 667, NULL }, + { "zcaron", 500, NULL }, + { "ccedilla", 500, NULL }, + { "Ocircumflex", 778, NULL }, + { "Oacute", 778, NULL }, + { "ogonek", 333, NULL }, + { "ograve", 556, NULL }, + { "thorn", 556, NULL }, + { "degree", 400, NULL }, + { "registered", 737, NULL }, + { "Aring", 667, NULL }, + { "percent", 889, NULL }, + { "six", 556, NULL }, + { "paragraph", 537, NULL }, + { "two", 556, NULL }, + { "Igrave", 278, NULL }, + { "ocircumflex", 556, NULL }, + { "oacute", 556, NULL }, + { "asciicircum", 469, NULL }, + { "aring", 556, NULL }, + { "grave", 333, NULL }, + { "bracketright", 278, NULL }, + { "Iacute", 278, NULL }, + { "ampersand", 667, NULL }, + { "igrave", 278, NULL }, + { "plus", 584, NULL }, + { "quotesinglbase", 222, NULL }, + { "Yacute", 667, NULL }, + { "threesuperior", 333, NULL }, + { "acute", 333, NULL }, + { "section", 556, NULL }, + { "dieresis", 333, NULL }, + { "iacute", 278, NULL }, + { "quotedblbase", 333, NULL }, + { "florin", 556, NULL }, + { "yacute", 500, NULL }, + { "fi", 500, NULL }, + { "fl", 500, NULL }, + { "Acircumflex", 667, NULL }, + { "Icircumflex", 278, NULL }, + { "guillemotleft", 556, NULL }, + { "germandbls", 611, NULL }, + { "seven", 556, NULL }, + { "ordmasculine", 365, NULL }, + { "dotlessi", 278, NULL }, + { "sterling", 556, NULL }, + { "acircumflex", 556, NULL }, + { "icircumflex", 278, NULL }, + { "braceright", 334, NULL }, + { "quotedblright", 333, NULL }, + { "cent", 556, NULL }, + { "currency", 556, NULL }, + { "logicalnot", 584, NULL }, + { "Atilde", 667, NULL }, + { "breve", 333, NULL }, + { "bar", 260, NULL }, + { "fraction", 167, NULL }, + { "less", 584, NULL }, + { "guilsinglleft", 333, NULL }, + { "exclam", 278, NULL }, + { "period", 278, NULL }, + { "greater", 584, NULL }, + { "atilde", 556, NULL }, + { "brokenbar", 260, NULL }, + { "quoteleft", 222, NULL }, + { "onesuperior", 333, NULL } +}; + +static BuiltinFontWidth helveticaBoldWidthsTab[] = { + { "Ntilde", 722, NULL }, + { "comma", 278, NULL }, + { "cedilla", 333, NULL }, + { "plusminus", 584, NULL }, + { "circumflex", 333, NULL }, + { "dotaccent", 333, NULL }, + { "asciitilde", 584, NULL }, + { "colon", 333, NULL }, + { "onehalf", 834, NULL }, + { "dollar", 556, NULL }, + { "ntilde", 611, NULL }, + { "minus", 584, NULL }, + { "yen", 556, NULL }, + { "space", 278, NULL }, + { "questiondown", 611, NULL }, + { "emdash", 1000, NULL }, + { "Agrave", 722, NULL }, + { "three", 556, NULL }, + { "numbersign", 556, NULL }, + { "A", 722, NULL }, + { "B", 722, NULL }, + { "C", 722, NULL }, + { "D", 722, NULL }, + { "E", 667, NULL }, + { "onequarter", 834, NULL }, + { "F", 611, NULL }, + { "G", 778, NULL }, + { "H", 722, NULL }, + { "I", 278, NULL }, + { "J", 556, NULL }, + { "K", 722, NULL }, + { "backslash", 278, NULL }, + { "L", 611, NULL }, + { "periodcentered", 278, NULL }, + { "M", 833, NULL }, + { "N", 722, NULL }, + { "O", 778, NULL }, + { "P", 667, NULL }, + { "Q", 778, NULL }, + { "R", 722, NULL }, + { "Aacute", 722, NULL }, + { "caron", 333, NULL }, + { "S", 667, NULL }, + { "T", 611, NULL }, + { "U", 722, NULL }, + { "agrave", 556, NULL }, + { "V", 667, NULL }, + { "W", 944, NULL }, + { "X", 667, NULL }, + { "question", 611, NULL }, + { "equal", 584, NULL }, + { "Y", 667, NULL }, + { "Z", 611, NULL }, + { "four", 556, NULL }, + { "a", 556, NULL }, + { "b", 611, NULL }, + { "c", 556, NULL }, + { "d", 611, NULL }, + { "e", 556, NULL }, + { "f", 333, NULL }, + { "g", 611, NULL }, + { "bullet", 350, NULL }, + { "h", 611, NULL }, + { "i", 278, NULL }, + { "Oslash", 778, NULL }, + { "dagger", 556, NULL }, + { "j", 278, NULL }, + { "k", 556, NULL }, + { "l", 278, NULL }, + { "m", 889, NULL }, + { "n", 611, NULL }, + { "o", 611, NULL }, + { "ordfeminine", 370, NULL }, + { "ring", 333, NULL }, + { "p", 611, NULL }, + { "q", 611, NULL }, + { "r", 389, NULL }, + { "twosuperior", 333, NULL }, + { "aacute", 556, NULL }, + { "s", 556, NULL }, + { "OE", 1000, NULL }, + { "t", 333, NULL }, + { "divide", 584, NULL }, + { "u", 611, NULL }, + { "v", 556, NULL }, + { "w", 778, NULL }, + { "x", 556, NULL }, + { "y", 556, NULL }, + { "z", 500, NULL }, + { "hungarumlaut", 333, NULL }, + { "quotedbl", 474, NULL }, + { "mu", 611, NULL }, + { "Scaron", 667, NULL }, + { "Lslash", 611, NULL }, + { "semicolon", 333, NULL }, + { "oslash", 611, NULL }, + { "parenright", 333, NULL }, + { "Ecircumflex", 667, NULL }, + { "trademark", 1000, NULL }, + { "daggerdbl", 556, NULL }, + { "macron", 333, NULL }, + { "Otilde", 778, NULL }, + { "ellipsis", 1000, NULL }, + { "scaron", 556, NULL }, + { "AE", 1000, NULL }, + { "Ucircumflex", 722, NULL }, + { "lslash", 278, NULL }, + { "quotedblleft", 500, NULL }, + { "guilsinglright", 333, NULL }, + { "hyphen", 333, NULL }, + { "quotesingle", 238, NULL }, + { "eight", 556, NULL }, + { "exclamdown", 333, NULL }, + { "endash", 556, NULL }, + { "oe", 944, NULL }, + { "ecircumflex", 556, NULL }, + { "copyright", 737, NULL }, + { "Adieresis", 722, NULL }, + { "Egrave", 667, NULL }, + { "slash", 278, NULL }, + { "Edieresis", 667, NULL }, + { "otilde", 611, NULL }, + { "Idieresis", 278, NULL }, + { "parenleft", 333, NULL }, + { "one", 556, NULL }, + { "ucircumflex", 611, NULL }, + { "Odieresis", 778, NULL }, + { "bracketleft", 333, NULL }, + { "Ugrave", 722, NULL }, + { "quoteright", 278, NULL }, + { "Udieresis", 722, NULL }, + { "perthousand", 1000, NULL }, + { "Ydieresis", 667, NULL }, + { "Eacute", 667, NULL }, + { "adieresis", 556, NULL }, + { "egrave", 556, NULL }, + { "edieresis", 556, NULL }, + { "idieresis", 278, NULL }, + { "Eth", 722, NULL }, + { "ae", 889, NULL }, + { "asterisk", 389, NULL }, + { "odieresis", 611, NULL }, + { "Uacute", 722, NULL }, + { "ugrave", 611, NULL }, + { "nine", 556, NULL }, + { "five", 556, NULL }, + { "udieresis", 611, NULL }, + { "Zcaron", 611, NULL }, + { "threequarters", 834, NULL }, + { "guillemotright", 556, NULL }, + { "ydieresis", 556, NULL }, + { "Ccedilla", 722, NULL }, + { "tilde", 333, NULL }, + { "at", 975, NULL }, + { "eacute", 556, NULL }, + { "underscore", 556, NULL }, + { "multiply", 584, NULL }, + { "zero", 556, NULL }, + { "eth", 611, NULL }, + { "Ograve", 778, NULL }, + { "uacute", 611, NULL }, + { "braceleft", 389, NULL }, + { "Thorn", 667, NULL }, + { "zcaron", 500, NULL }, + { "ccedilla", 556, NULL }, + { "Ocircumflex", 778, NULL }, + { "Oacute", 778, NULL }, + { "ogonek", 333, NULL }, + { "ograve", 611, NULL }, + { "thorn", 611, NULL }, + { "degree", 400, NULL }, + { "registered", 737, NULL }, + { "Aring", 722, NULL }, + { "percent", 889, NULL }, + { "six", 556, NULL }, + { "paragraph", 556, NULL }, + { "two", 556, NULL }, + { "Igrave", 278, NULL }, + { "ocircumflex", 611, NULL }, + { "oacute", 611, NULL }, + { "asciicircum", 584, NULL }, + { "aring", 556, NULL }, + { "grave", 333, NULL }, + { "bracketright", 333, NULL }, + { "Iacute", 278, NULL }, + { "ampersand", 722, NULL }, + { "igrave", 278, NULL }, + { "plus", 584, NULL }, + { "quotesinglbase", 278, NULL }, + { "Yacute", 667, NULL }, + { "threesuperior", 333, NULL }, + { "acute", 333, NULL }, + { "section", 556, NULL }, + { "dieresis", 333, NULL }, + { "iacute", 278, NULL }, + { "quotedblbase", 500, NULL }, + { "florin", 556, NULL }, + { "yacute", 556, NULL }, + { "fi", 611, NULL }, + { "fl", 611, NULL }, + { "Acircumflex", 722, NULL }, + { "Icircumflex", 278, NULL }, + { "guillemotleft", 556, NULL }, + { "germandbls", 611, NULL }, + { "seven", 556, NULL }, + { "ordmasculine", 365, NULL }, + { "dotlessi", 278, NULL }, + { "sterling", 556, NULL }, + { "acircumflex", 556, NULL }, + { "icircumflex", 278, NULL }, + { "braceright", 389, NULL }, + { "quotedblright", 500, NULL }, + { "cent", 556, NULL }, + { "currency", 556, NULL }, + { "logicalnot", 584, NULL }, + { "Atilde", 722, NULL }, + { "breve", 333, NULL }, + { "bar", 280, NULL }, + { "fraction", 167, NULL }, + { "less", 584, NULL }, + { "guilsinglleft", 333, NULL }, + { "exclam", 333, NULL }, + { "period", 278, NULL }, + { "greater", 584, NULL }, + { "atilde", 556, NULL }, + { "brokenbar", 280, NULL }, + { "quoteleft", 278, NULL }, + { "onesuperior", 333, NULL } +}; + +static BuiltinFontWidth helveticaBoldObliqueWidthsTab[] = { + { "Ntilde", 722, NULL }, + { "comma", 278, NULL }, + { "cedilla", 333, NULL }, + { "plusminus", 584, NULL }, + { "circumflex", 333, NULL }, + { "dotaccent", 333, NULL }, + { "asciitilde", 584, NULL }, + { "colon", 333, NULL }, + { "onehalf", 834, NULL }, + { "dollar", 556, NULL }, + { "ntilde", 611, NULL }, + { "minus", 584, NULL }, + { "yen", 556, NULL }, + { "space", 278, NULL }, + { "questiondown", 611, NULL }, + { "emdash", 1000, NULL }, + { "Agrave", 722, NULL }, + { "three", 556, NULL }, + { "numbersign", 556, NULL }, + { "A", 722, NULL }, + { "B", 722, NULL }, + { "C", 722, NULL }, + { "D", 722, NULL }, + { "E", 667, NULL }, + { "onequarter", 834, NULL }, + { "F", 611, NULL }, + { "G", 778, NULL }, + { "H", 722, NULL }, + { "I", 278, NULL }, + { "J", 556, NULL }, + { "K", 722, NULL }, + { "backslash", 278, NULL }, + { "L", 611, NULL }, + { "periodcentered", 278, NULL }, + { "M", 833, NULL }, + { "N", 722, NULL }, + { "O", 778, NULL }, + { "P", 667, NULL }, + { "Q", 778, NULL }, + { "R", 722, NULL }, + { "Aacute", 722, NULL }, + { "caron", 333, NULL }, + { "S", 667, NULL }, + { "T", 611, NULL }, + { "U", 722, NULL }, + { "agrave", 556, NULL }, + { "V", 667, NULL }, + { "W", 944, NULL }, + { "X", 667, NULL }, + { "question", 611, NULL }, + { "equal", 584, NULL }, + { "Y", 667, NULL }, + { "Z", 611, NULL }, + { "four", 556, NULL }, + { "a", 556, NULL }, + { "b", 611, NULL }, + { "c", 556, NULL }, + { "d", 611, NULL }, + { "e", 556, NULL }, + { "f", 333, NULL }, + { "g", 611, NULL }, + { "bullet", 350, NULL }, + { "h", 611, NULL }, + { "i", 278, NULL }, + { "Oslash", 778, NULL }, + { "dagger", 556, NULL }, + { "j", 278, NULL }, + { "k", 556, NULL }, + { "l", 278, NULL }, + { "m", 889, NULL }, + { "n", 611, NULL }, + { "o", 611, NULL }, + { "ordfeminine", 370, NULL }, + { "ring", 333, NULL }, + { "p", 611, NULL }, + { "q", 611, NULL }, + { "r", 389, NULL }, + { "twosuperior", 333, NULL }, + { "aacute", 556, NULL }, + { "s", 556, NULL }, + { "OE", 1000, NULL }, + { "t", 333, NULL }, + { "divide", 584, NULL }, + { "u", 611, NULL }, + { "v", 556, NULL }, + { "w", 778, NULL }, + { "x", 556, NULL }, + { "y", 556, NULL }, + { "z", 500, NULL }, + { "hungarumlaut", 333, NULL }, + { "quotedbl", 474, NULL }, + { "mu", 611, NULL }, + { "Scaron", 667, NULL }, + { "Lslash", 611, NULL }, + { "semicolon", 333, NULL }, + { "oslash", 611, NULL }, + { "parenright", 333, NULL }, + { "Ecircumflex", 667, NULL }, + { "trademark", 1000, NULL }, + { "daggerdbl", 556, NULL }, + { "macron", 333, NULL }, + { "Otilde", 778, NULL }, + { "ellipsis", 1000, NULL }, + { "scaron", 556, NULL }, + { "AE", 1000, NULL }, + { "Ucircumflex", 722, NULL }, + { "lslash", 278, NULL }, + { "quotedblleft", 500, NULL }, + { "guilsinglright", 333, NULL }, + { "hyphen", 333, NULL }, + { "quotesingle", 238, NULL }, + { "eight", 556, NULL }, + { "exclamdown", 333, NULL }, + { "endash", 556, NULL }, + { "oe", 944, NULL }, + { "ecircumflex", 556, NULL }, + { "copyright", 737, NULL }, + { "Adieresis", 722, NULL }, + { "Egrave", 667, NULL }, + { "slash", 278, NULL }, + { "Edieresis", 667, NULL }, + { "otilde", 611, NULL }, + { "Idieresis", 278, NULL }, + { "parenleft", 333, NULL }, + { "one", 556, NULL }, + { "ucircumflex", 611, NULL }, + { "Odieresis", 778, NULL }, + { "bracketleft", 333, NULL }, + { "Ugrave", 722, NULL }, + { "quoteright", 278, NULL }, + { "Udieresis", 722, NULL }, + { "perthousand", 1000, NULL }, + { "Ydieresis", 667, NULL }, + { "Eacute", 667, NULL }, + { "adieresis", 556, NULL }, + { "egrave", 556, NULL }, + { "edieresis", 556, NULL }, + { "idieresis", 278, NULL }, + { "Eth", 722, NULL }, + { "ae", 889, NULL }, + { "asterisk", 389, NULL }, + { "odieresis", 611, NULL }, + { "Uacute", 722, NULL }, + { "ugrave", 611, NULL }, + { "nine", 556, NULL }, + { "five", 556, NULL }, + { "udieresis", 611, NULL }, + { "Zcaron", 611, NULL }, + { "threequarters", 834, NULL }, + { "guillemotright", 556, NULL }, + { "ydieresis", 556, NULL }, + { "Ccedilla", 722, NULL }, + { "tilde", 333, NULL }, + { "at", 975, NULL }, + { "eacute", 556, NULL }, + { "underscore", 556, NULL }, + { "multiply", 584, NULL }, + { "zero", 556, NULL }, + { "eth", 611, NULL }, + { "Ograve", 778, NULL }, + { "uacute", 611, NULL }, + { "braceleft", 389, NULL }, + { "Thorn", 667, NULL }, + { "zcaron", 500, NULL }, + { "ccedilla", 556, NULL }, + { "Ocircumflex", 778, NULL }, + { "Oacute", 778, NULL }, + { "ogonek", 333, NULL }, + { "ograve", 611, NULL }, + { "thorn", 611, NULL }, + { "degree", 400, NULL }, + { "registered", 737, NULL }, + { "Aring", 722, NULL }, + { "percent", 889, NULL }, + { "six", 556, NULL }, + { "paragraph", 556, NULL }, + { "two", 556, NULL }, + { "Igrave", 278, NULL }, + { "ocircumflex", 611, NULL }, + { "oacute", 611, NULL }, + { "asciicircum", 584, NULL }, + { "aring", 556, NULL }, + { "grave", 333, NULL }, + { "bracketright", 333, NULL }, + { "Iacute", 278, NULL }, + { "ampersand", 722, NULL }, + { "igrave", 278, NULL }, + { "plus", 584, NULL }, + { "quotesinglbase", 278, NULL }, + { "Yacute", 667, NULL }, + { "threesuperior", 333, NULL }, + { "acute", 333, NULL }, + { "section", 556, NULL }, + { "dieresis", 333, NULL }, + { "iacute", 278, NULL }, + { "quotedblbase", 500, NULL }, + { "florin", 556, NULL }, + { "yacute", 556, NULL }, + { "fi", 611, NULL }, + { "fl", 611, NULL }, + { "Acircumflex", 722, NULL }, + { "Icircumflex", 278, NULL }, + { "guillemotleft", 556, NULL }, + { "germandbls", 611, NULL }, + { "seven", 556, NULL }, + { "ordmasculine", 365, NULL }, + { "dotlessi", 278, NULL }, + { "sterling", 556, NULL }, + { "acircumflex", 556, NULL }, + { "icircumflex", 278, NULL }, + { "braceright", 389, NULL }, + { "quotedblright", 500, NULL }, + { "cent", 556, NULL }, + { "currency", 556, NULL }, + { "logicalnot", 584, NULL }, + { "Atilde", 722, NULL }, + { "breve", 333, NULL }, + { "bar", 280, NULL }, + { "fraction", 167, NULL }, + { "less", 584, NULL }, + { "guilsinglleft", 333, NULL }, + { "exclam", 333, NULL }, + { "period", 278, NULL }, + { "greater", 584, NULL }, + { "atilde", 556, NULL }, + { "brokenbar", 280, NULL }, + { "quoteleft", 278, NULL }, + { "onesuperior", 333, NULL } +}; + +static BuiltinFontWidth helveticaObliqueWidthsTab[] = { + { "Ntilde", 722, NULL }, + { "comma", 278, NULL }, + { "cedilla", 333, NULL }, + { "plusminus", 584, NULL }, + { "circumflex", 333, NULL }, + { "dotaccent", 333, NULL }, + { "asciitilde", 584, NULL }, + { "colon", 278, NULL }, + { "onehalf", 834, NULL }, + { "dollar", 556, NULL }, + { "ntilde", 556, NULL }, + { "minus", 584, NULL }, + { "yen", 556, NULL }, + { "space", 278, NULL }, + { "questiondown", 611, NULL }, + { "emdash", 1000, NULL }, + { "Agrave", 667, NULL }, + { "three", 556, NULL }, + { "numbersign", 556, NULL }, + { "A", 667, NULL }, + { "B", 667, NULL }, + { "C", 722, NULL }, + { "D", 722, NULL }, + { "E", 667, NULL }, + { "onequarter", 834, NULL }, + { "F", 611, NULL }, + { "G", 778, NULL }, + { "H", 722, NULL }, + { "I", 278, NULL }, + { "J", 500, NULL }, + { "K", 667, NULL }, + { "backslash", 278, NULL }, + { "L", 556, NULL }, + { "periodcentered", 278, NULL }, + { "M", 833, NULL }, + { "N", 722, NULL }, + { "O", 778, NULL }, + { "P", 667, NULL }, + { "Q", 778, NULL }, + { "R", 722, NULL }, + { "Aacute", 667, NULL }, + { "caron", 333, NULL }, + { "S", 667, NULL }, + { "T", 611, NULL }, + { "U", 722, NULL }, + { "agrave", 556, NULL }, + { "V", 667, NULL }, + { "W", 944, NULL }, + { "X", 667, NULL }, + { "question", 556, NULL }, + { "equal", 584, NULL }, + { "Y", 667, NULL }, + { "Z", 611, NULL }, + { "four", 556, NULL }, + { "a", 556, NULL }, + { "b", 556, NULL }, + { "c", 500, NULL }, + { "d", 556, NULL }, + { "e", 556, NULL }, + { "f", 278, NULL }, + { "g", 556, NULL }, + { "bullet", 350, NULL }, + { "h", 556, NULL }, + { "i", 222, NULL }, + { "Oslash", 778, NULL }, + { "dagger", 556, NULL }, + { "j", 222, NULL }, + { "k", 500, NULL }, + { "l", 222, NULL }, + { "m", 833, NULL }, + { "n", 556, NULL }, + { "o", 556, NULL }, + { "ordfeminine", 370, NULL }, + { "ring", 333, NULL }, + { "p", 556, NULL }, + { "q", 556, NULL }, + { "r", 333, NULL }, + { "twosuperior", 333, NULL }, + { "aacute", 556, NULL }, + { "s", 500, NULL }, + { "OE", 1000, NULL }, + { "t", 278, NULL }, + { "divide", 584, NULL }, + { "u", 556, NULL }, + { "v", 500, NULL }, + { "w", 722, NULL }, + { "x", 500, NULL }, + { "y", 500, NULL }, + { "z", 500, NULL }, + { "hungarumlaut", 333, NULL }, + { "quotedbl", 355, NULL }, + { "mu", 556, NULL }, + { "Scaron", 667, NULL }, + { "Lslash", 556, NULL }, + { "semicolon", 278, NULL }, + { "oslash", 611, NULL }, + { "parenright", 333, NULL }, + { "Ecircumflex", 667, NULL }, + { "trademark", 1000, NULL }, + { "daggerdbl", 556, NULL }, + { "macron", 333, NULL }, + { "Otilde", 778, NULL }, + { "ellipsis", 1000, NULL }, + { "scaron", 500, NULL }, + { "AE", 1000, NULL }, + { "Ucircumflex", 722, NULL }, + { "lslash", 222, NULL }, + { "quotedblleft", 333, NULL }, + { "guilsinglright", 333, NULL }, + { "hyphen", 333, NULL }, + { "quotesingle", 191, NULL }, + { "eight", 556, NULL }, + { "exclamdown", 333, NULL }, + { "endash", 556, NULL }, + { "oe", 944, NULL }, + { "ecircumflex", 556, NULL }, + { "copyright", 737, NULL }, + { "Adieresis", 667, NULL }, + { "Egrave", 667, NULL }, + { "slash", 278, NULL }, + { "Edieresis", 667, NULL }, + { "otilde", 556, NULL }, + { "Idieresis", 278, NULL }, + { "parenleft", 333, NULL }, + { "one", 556, NULL }, + { "ucircumflex", 556, NULL }, + { "Odieresis", 778, NULL }, + { "bracketleft", 278, NULL }, + { "Ugrave", 722, NULL }, + { "quoteright", 222, NULL }, + { "Udieresis", 722, NULL }, + { "perthousand", 1000, NULL }, + { "Ydieresis", 667, NULL }, + { "Eacute", 667, NULL }, + { "adieresis", 556, NULL }, + { "egrave", 556, NULL }, + { "edieresis", 556, NULL }, + { "idieresis", 278, NULL }, + { "Eth", 722, NULL }, + { "ae", 889, NULL }, + { "asterisk", 389, NULL }, + { "odieresis", 556, NULL }, + { "Uacute", 722, NULL }, + { "ugrave", 556, NULL }, + { "nine", 556, NULL }, + { "five", 556, NULL }, + { "udieresis", 556, NULL }, + { "Zcaron", 611, NULL }, + { "threequarters", 834, NULL }, + { "guillemotright", 556, NULL }, + { "ydieresis", 500, NULL }, + { "Ccedilla", 722, NULL }, + { "tilde", 333, NULL }, + { "at", 1015, NULL }, + { "eacute", 556, NULL }, + { "underscore", 556, NULL }, + { "multiply", 584, NULL }, + { "zero", 556, NULL }, + { "eth", 556, NULL }, + { "Ograve", 778, NULL }, + { "uacute", 556, NULL }, + { "braceleft", 334, NULL }, + { "Thorn", 667, NULL }, + { "zcaron", 500, NULL }, + { "ccedilla", 500, NULL }, + { "Ocircumflex", 778, NULL }, + { "Oacute", 778, NULL }, + { "ogonek", 333, NULL }, + { "ograve", 556, NULL }, + { "thorn", 556, NULL }, + { "degree", 400, NULL }, + { "registered", 737, NULL }, + { "Aring", 667, NULL }, + { "percent", 889, NULL }, + { "six", 556, NULL }, + { "paragraph", 537, NULL }, + { "two", 556, NULL }, + { "Igrave", 278, NULL }, + { "ocircumflex", 556, NULL }, + { "oacute", 556, NULL }, + { "asciicircum", 469, NULL }, + { "aring", 556, NULL }, + { "grave", 333, NULL }, + { "bracketright", 278, NULL }, + { "Iacute", 278, NULL }, + { "ampersand", 667, NULL }, + { "igrave", 278, NULL }, + { "plus", 584, NULL }, + { "quotesinglbase", 222, NULL }, + { "Yacute", 667, NULL }, + { "threesuperior", 333, NULL }, + { "acute", 333, NULL }, + { "section", 556, NULL }, + { "dieresis", 333, NULL }, + { "iacute", 278, NULL }, + { "quotedblbase", 333, NULL }, + { "florin", 556, NULL }, + { "yacute", 500, NULL }, + { "fi", 500, NULL }, + { "fl", 500, NULL }, + { "Acircumflex", 667, NULL }, + { "Icircumflex", 278, NULL }, + { "guillemotleft", 556, NULL }, + { "germandbls", 611, NULL }, + { "seven", 556, NULL }, + { "ordmasculine", 365, NULL }, + { "dotlessi", 278, NULL }, + { "sterling", 556, NULL }, + { "acircumflex", 556, NULL }, + { "icircumflex", 278, NULL }, + { "braceright", 334, NULL }, + { "quotedblright", 333, NULL }, + { "cent", 556, NULL }, + { "currency", 556, NULL }, + { "logicalnot", 584, NULL }, + { "Atilde", 667, NULL }, + { "breve", 333, NULL }, + { "bar", 260, NULL }, + { "fraction", 167, NULL }, + { "less", 584, NULL }, + { "guilsinglleft", 333, NULL }, + { "exclam", 278, NULL }, + { "period", 278, NULL }, + { "greater", 584, NULL }, + { "atilde", 556, NULL }, + { "brokenbar", 260, NULL }, + { "quoteleft", 222, NULL }, + { "onesuperior", 333, NULL } +}; + +static BuiltinFontWidth symbolWidthsTab[] = { + { "bracketleftex", 384, NULL }, + { "alpha", 631, NULL }, + { "union", 768, NULL }, + { "infinity", 713, NULL }, + { "comma", 250, NULL }, + { "copyrightsans", 790, NULL }, + { "plusminus", 549, NULL }, + { "arrowup", 603, NULL }, + { "apple", 790, NULL }, + { "parenleftbt", 384, NULL }, + { "notelement", 713, NULL }, + { "colon", 278, NULL }, + { "beta", 549, NULL }, + { "braceleftbt", 494, NULL }, + { "Lambda", 686, NULL }, + { "Phi", 763, NULL }, + { "minus", 549, NULL }, + { "space", 250, NULL }, + { "Sigma", 592, NULL }, + { "approxequal", 549, NULL }, + { "minute", 247, NULL }, + { "circleplus", 768, NULL }, + { "Omicron", 722, NULL }, + { "three", 500, NULL }, + { "numbersign", 500, NULL }, + { "lambda", 549, NULL }, + { "phi", 521, NULL }, + { "aleph", 823, NULL }, + { "Tau", 611, NULL }, + { "spade", 753, NULL }, + { "logicaland", 603, NULL }, + { "sigma", 603, NULL }, + { "propersuperset", 713, NULL }, + { "omicron", 549, NULL }, + { "question", 444, NULL }, + { "equal", 549, NULL }, + { "Epsilon", 611, NULL }, + { "emptyset", 823, NULL }, + { "diamond", 753, NULL }, + { "four", 500, NULL }, + { "Mu", 889, NULL }, + { "parenlefttp", 384, NULL }, + { "club", 753, NULL }, + { "bullet", 460, NULL }, + { "Omega", 768, NULL }, + { "tau", 439, NULL }, + { "Upsilon", 690, NULL }, + { "bracelefttp", 494, NULL }, + { "heart", 753, NULL }, + { "divide", 549, NULL }, + { "epsilon", 439, NULL }, + { "logicalor", 603, NULL }, + { "parenleftex", 384, NULL }, + { "greaterequal", 549, NULL }, + { "mu", 576, NULL }, + { "Nu", 722, NULL }, + { "therefore", 863, NULL }, + { "notsubset", 713, NULL }, + { "omega", 686, NULL }, + { "semicolon", 278, NULL }, + { "element", 713, NULL }, + { "upsilon", 576, NULL }, + { "existential", 549, NULL }, + { "integralbt", 686, NULL }, + { "lessequal", 549, NULL }, + { "phi1", 603, NULL }, + { "lozenge", 494, NULL }, + { "trademarkserif", 890, NULL }, + { "parenright", 333, NULL }, + { "reflexsuperset", 713, NULL }, + { "sigma1", 439, NULL }, + { "nu", 521, NULL }, + { "Gamma", 603, NULL }, + { "angleright", 329, NULL }, + { "ellipsis", 1000, NULL }, + { "Rho", 556, NULL }, + { "parenrightbt", 384, NULL }, + { "radicalex", 500, NULL }, + { "eight", 500, NULL }, + { "angleleft", 329, NULL }, + { "arrowdbldown", 603, NULL }, + { "congruent", 549, NULL }, + { "Theta", 741, NULL }, + { "intersection", 768, NULL }, + { "Pi", 768, NULL }, + { "slash", 278, NULL }, + { "registerserif", 790, NULL }, + { "parenleft", 333, NULL }, + { "one", 500, NULL }, + { "gamma", 411, NULL }, + { "bracketleft", 333, NULL }, + { "rho", 549, NULL }, + { "circlemultiply", 768, NULL }, + { "Chi", 722, NULL }, + { "theta", 521, NULL }, + { "pi", 549, NULL }, + { "integraltp", 686, NULL }, + { "Eta", 722, NULL }, + { "product", 823, NULL }, + { "nine", 500, NULL }, + { "five", 500, NULL }, + { "propersubset", 713, NULL }, + { "bracketrightbt", 384, NULL }, + { "trademarksans", 786, NULL }, + { "dotmath", 250, NULL }, + { "integralex", 686, NULL }, + { "chi", 549, NULL }, + { "parenrighttp", 384, NULL }, + { "eta", 603, NULL }, + { "underscore", 500, NULL }, + { "multiply", 549, NULL }, + { "zero", 500, NULL }, + { "partialdiff", 494, NULL }, + { "angle", 768, NULL }, + { "arrowdblleft", 987, NULL }, + { "braceleft", 480, NULL }, + { "parenrightex", 384, NULL }, + { "Rfraktur", 795, NULL }, + { "Zeta", 611, NULL }, + { "braceex", 494, NULL }, + { "arrowdblup", 603, NULL }, + { "arrowdown", 603, NULL }, + { "Ifraktur", 686, NULL }, + { "degree", 400, NULL }, + { "Iota", 333, NULL }, + { "perpendicular", 658, NULL }, + { "radical", 549, NULL }, + { "asteriskmath", 500, NULL }, + { "percent", 833, NULL }, + { "zeta", 494, NULL }, + { "six", 500, NULL }, + { "two", 500, NULL }, + { "weierstrass", 987, NULL }, + { "summation", 713, NULL }, + { "bracketrighttp", 384, NULL }, + { "carriagereturn", 658, NULL }, + { "suchthat", 439, NULL }, + { "arrowvertex", 603, NULL }, + { "Delta", 612, NULL }, + { "iota", 329, NULL }, + { "arrowhorizex", 1000, NULL }, + { "bracketrightex", 384, NULL }, + { "bracketright", 333, NULL }, + { "ampersand", 778, NULL }, + { "plus", 549, NULL }, + { "proportional", 713, NULL }, + { "delta", 494, NULL }, + { "copyrightserif", 790, NULL }, + { "bracerightmid", 494, NULL }, + { "arrowleft", 987, NULL }, + { "second", 411, NULL }, + { "arrowdblboth", 1042, NULL }, + { "florin", 500, NULL }, + { "Psi", 795, NULL }, + { "bracerightbt", 494, NULL }, + { "bracketleftbt", 384, NULL }, + { "seven", 500, NULL }, + { "braceleftmid", 494, NULL }, + { "notequal", 549, NULL }, + { "psi", 686, NULL }, + { "equivalence", 549, NULL }, + { "universal", 713, NULL }, + { "arrowdblright", 987, NULL }, + { "braceright", 480, NULL }, + { "reflexsubset", 713, NULL }, + { "Xi", 645, NULL }, + { "theta1", 631, NULL }, + { "logicalnot", 713, NULL }, + { "Kappa", 722, NULL }, + { "similar", 549, NULL }, + { "bar", 200, NULL }, + { "fraction", 167, NULL }, + { "less", 549, NULL }, + { "registersans", 790, NULL }, + { "omega1", 713, NULL }, + { "exclam", 333, NULL }, + { "Upsilon1", 620, NULL }, + { "bracerighttp", 494, NULL }, + { "xi", 493, NULL }, + { "period", 250, NULL }, + { "Alpha", 722, NULL }, + { "arrowright", 987, NULL }, + { "greater", 549, NULL }, + { "bracketlefttp", 384, NULL }, + { "kappa", 549, NULL }, + { "gradient", 713, NULL }, + { "integral", 274, NULL }, + { "arrowboth", 1042, NULL }, + { "Beta", 667, NULL } +}; + +static BuiltinFontWidth timesBoldWidthsTab[] = { + { "Ntilde", 722, NULL }, + { "comma", 250, NULL }, + { "cedilla", 333, NULL }, + { "plusminus", 570, NULL }, + { "circumflex", 333, NULL }, + { "dotaccent", 333, NULL }, + { "asciitilde", 520, NULL }, + { "colon", 333, NULL }, + { "onehalf", 750, NULL }, + { "dollar", 500, NULL }, + { "ntilde", 556, NULL }, + { "minus", 570, NULL }, + { "yen", 500, NULL }, + { "space", 250, NULL }, + { "questiondown", 500, NULL }, + { "emdash", 1000, NULL }, + { "Agrave", 722, NULL }, + { "three", 500, NULL }, + { "numbersign", 500, NULL }, + { "A", 722, NULL }, + { "B", 667, NULL }, + { "C", 722, NULL }, + { "D", 722, NULL }, + { "E", 667, NULL }, + { "onequarter", 750, NULL }, + { "F", 611, NULL }, + { "G", 778, NULL }, + { "H", 778, NULL }, + { "I", 389, NULL }, + { "J", 500, NULL }, + { "K", 778, NULL }, + { "backslash", 278, NULL }, + { "L", 667, NULL }, + { "periodcentered", 250, NULL }, + { "M", 944, NULL }, + { "N", 722, NULL }, + { "O", 778, NULL }, + { "P", 611, NULL }, + { "Q", 778, NULL }, + { "R", 722, NULL }, + { "Aacute", 722, NULL }, + { "caron", 333, NULL }, + { "S", 556, NULL }, + { "T", 667, NULL }, + { "U", 722, NULL }, + { "agrave", 500, NULL }, + { "V", 722, NULL }, + { "W", 1000, NULL }, + { "X", 722, NULL }, + { "question", 500, NULL }, + { "equal", 570, NULL }, + { "Y", 722, NULL }, + { "Z", 667, NULL }, + { "four", 500, NULL }, + { "a", 500, NULL }, + { "b", 556, NULL }, + { "c", 444, NULL }, + { "d", 556, NULL }, + { "e", 444, NULL }, + { "f", 333, NULL }, + { "g", 500, NULL }, + { "bullet", 350, NULL }, + { "h", 556, NULL }, + { "i", 278, NULL }, + { "Oslash", 778, NULL }, + { "dagger", 500, NULL }, + { "j", 333, NULL }, + { "k", 556, NULL }, + { "l", 278, NULL }, + { "m", 833, NULL }, + { "n", 556, NULL }, + { "o", 500, NULL }, + { "ordfeminine", 300, NULL }, + { "ring", 333, NULL }, + { "p", 556, NULL }, + { "q", 556, NULL }, + { "r", 444, NULL }, + { "twosuperior", 300, NULL }, + { "aacute", 500, NULL }, + { "s", 389, NULL }, + { "OE", 1000, NULL }, + { "t", 333, NULL }, + { "divide", 570, NULL }, + { "u", 556, NULL }, + { "v", 500, NULL }, + { "w", 722, NULL }, + { "x", 500, NULL }, + { "y", 500, NULL }, + { "z", 444, NULL }, + { "hungarumlaut", 333, NULL }, + { "quotedbl", 555, NULL }, + { "mu", 556, NULL }, + { "Scaron", 556, NULL }, + { "Lslash", 667, NULL }, + { "semicolon", 333, NULL }, + { "oslash", 500, NULL }, + { "parenright", 333, NULL }, + { "Ecircumflex", 667, NULL }, + { "trademark", 1000, NULL }, + { "daggerdbl", 500, NULL }, + { "macron", 333, NULL }, + { "Otilde", 778, NULL }, + { "ellipsis", 1000, NULL }, + { "scaron", 389, NULL }, + { "AE", 1000, NULL }, + { "Ucircumflex", 722, NULL }, + { "lslash", 278, NULL }, + { "quotedblleft", 500, NULL }, + { "guilsinglright", 333, NULL }, + { "hyphen", 333, NULL }, + { "quotesingle", 278, NULL }, + { "eight", 500, NULL }, + { "exclamdown", 333, NULL }, + { "endash", 500, NULL }, + { "oe", 722, NULL }, + { "ecircumflex", 444, NULL }, + { "copyright", 747, NULL }, + { "Adieresis", 722, NULL }, + { "Egrave", 667, NULL }, + { "slash", 278, NULL }, + { "Edieresis", 667, NULL }, + { "otilde", 500, NULL }, + { "Idieresis", 389, NULL }, + { "parenleft", 333, NULL }, + { "one", 500, NULL }, + { "ucircumflex", 556, NULL }, + { "Odieresis", 778, NULL }, + { "bracketleft", 333, NULL }, + { "Ugrave", 722, NULL }, + { "quoteright", 333, NULL }, + { "Udieresis", 722, NULL }, + { "perthousand", 1000, NULL }, + { "Ydieresis", 722, NULL }, + { "Eacute", 667, NULL }, + { "adieresis", 500, NULL }, + { "egrave", 444, NULL }, + { "edieresis", 444, NULL }, + { "idieresis", 278, NULL }, + { "Eth", 722, NULL }, + { "ae", 722, NULL }, + { "asterisk", 500, NULL }, + { "odieresis", 500, NULL }, + { "Uacute", 722, NULL }, + { "ugrave", 556, NULL }, + { "nine", 500, NULL }, + { "five", 500, NULL }, + { "udieresis", 556, NULL }, + { "Zcaron", 667, NULL }, + { "threequarters", 750, NULL }, + { "guillemotright", 500, NULL }, + { "ydieresis", 500, NULL }, + { "Ccedilla", 722, NULL }, + { "tilde", 333, NULL }, + { "at", 930, NULL }, + { "eacute", 444, NULL }, + { "underscore", 500, NULL }, + { "multiply", 570, NULL }, + { "zero", 500, NULL }, + { "eth", 500, NULL }, + { "Ograve", 778, NULL }, + { "uacute", 556, NULL }, + { "braceleft", 394, NULL }, + { "Thorn", 611, NULL }, + { "zcaron", 444, NULL }, + { "ccedilla", 444, NULL }, + { "Ocircumflex", 778, NULL }, + { "Oacute", 778, NULL }, + { "ogonek", 333, NULL }, + { "ograve", 500, NULL }, + { "thorn", 556, NULL }, + { "degree", 400, NULL }, + { "registered", 747, NULL }, + { "Aring", 722, NULL }, + { "percent", 1000, NULL }, + { "six", 500, NULL }, + { "paragraph", 540, NULL }, + { "two", 500, NULL }, + { "Igrave", 389, NULL }, + { "ocircumflex", 500, NULL }, + { "oacute", 500, NULL }, + { "asciicircum", 581, NULL }, + { "aring", 500, NULL }, + { "grave", 333, NULL }, + { "bracketright", 333, NULL }, + { "Iacute", 389, NULL }, + { "ampersand", 833, NULL }, + { "igrave", 278, NULL }, + { "plus", 570, NULL }, + { "quotesinglbase", 333, NULL }, + { "Yacute", 722, NULL }, + { "threesuperior", 300, NULL }, + { "acute", 333, NULL }, + { "section", 500, NULL }, + { "dieresis", 333, NULL }, + { "iacute", 278, NULL }, + { "quotedblbase", 500, NULL }, + { "florin", 500, NULL }, + { "yacute", 500, NULL }, + { "fi", 556, NULL }, + { "fl", 556, NULL }, + { "Acircumflex", 722, NULL }, + { "Icircumflex", 389, NULL }, + { "guillemotleft", 500, NULL }, + { "germandbls", 556, NULL }, + { "seven", 500, NULL }, + { "ordmasculine", 330, NULL }, + { "dotlessi", 278, NULL }, + { "sterling", 500, NULL }, + { "acircumflex", 500, NULL }, + { "icircumflex", 278, NULL }, + { "braceright", 394, NULL }, + { "quotedblright", 500, NULL }, + { "cent", 500, NULL }, + { "currency", 500, NULL }, + { "logicalnot", 570, NULL }, + { "Atilde", 722, NULL }, + { "breve", 333, NULL }, + { "bar", 220, NULL }, + { "fraction", 167, NULL }, + { "less", 570, NULL }, + { "guilsinglleft", 333, NULL }, + { "exclam", 333, NULL }, + { "period", 250, NULL }, + { "greater", 570, NULL }, + { "atilde", 500, NULL }, + { "brokenbar", 220, NULL }, + { "quoteleft", 333, NULL }, + { "onesuperior", 300, NULL } +}; + +static BuiltinFontWidth timesBoldItalicWidthsTab[] = { + { "Ntilde", 722, NULL }, + { "comma", 250, NULL }, + { "cedilla", 333, NULL }, + { "plusminus", 570, NULL }, + { "circumflex", 333, NULL }, + { "dotaccent", 333, NULL }, + { "asciitilde", 570, NULL }, + { "colon", 333, NULL }, + { "onehalf", 750, NULL }, + { "dollar", 500, NULL }, + { "ntilde", 556, NULL }, + { "minus", 606, NULL }, + { "yen", 500, NULL }, + { "space", 250, NULL }, + { "questiondown", 500, NULL }, + { "emdash", 1000, NULL }, + { "Agrave", 667, NULL }, + { "three", 500, NULL }, + { "numbersign", 500, NULL }, + { "A", 667, NULL }, + { "B", 667, NULL }, + { "C", 667, NULL }, + { "D", 722, NULL }, + { "E", 667, NULL }, + { "onequarter", 750, NULL }, + { "F", 667, NULL }, + { "G", 722, NULL }, + { "H", 778, NULL }, + { "I", 389, NULL }, + { "J", 500, NULL }, + { "K", 667, NULL }, + { "backslash", 278, NULL }, + { "L", 611, NULL }, + { "periodcentered", 250, NULL }, + { "M", 889, NULL }, + { "N", 722, NULL }, + { "O", 722, NULL }, + { "P", 611, NULL }, + { "Q", 722, NULL }, + { "R", 667, NULL }, + { "Aacute", 667, NULL }, + { "caron", 333, NULL }, + { "S", 556, NULL }, + { "T", 611, NULL }, + { "U", 722, NULL }, + { "agrave", 500, NULL }, + { "V", 667, NULL }, + { "W", 889, NULL }, + { "X", 667, NULL }, + { "question", 500, NULL }, + { "equal", 570, NULL }, + { "Y", 611, NULL }, + { "Z", 611, NULL }, + { "four", 500, NULL }, + { "a", 500, NULL }, + { "b", 500, NULL }, + { "c", 444, NULL }, + { "d", 500, NULL }, + { "e", 444, NULL }, + { "f", 333, NULL }, + { "g", 500, NULL }, + { "bullet", 350, NULL }, + { "h", 556, NULL }, + { "i", 278, NULL }, + { "Oslash", 722, NULL }, + { "dagger", 500, NULL }, + { "j", 278, NULL }, + { "k", 500, NULL }, + { "l", 278, NULL }, + { "m", 778, NULL }, + { "n", 556, NULL }, + { "o", 500, NULL }, + { "ordfeminine", 266, NULL }, + { "ring", 333, NULL }, + { "p", 500, NULL }, + { "q", 500, NULL }, + { "r", 389, NULL }, + { "twosuperior", 300, NULL }, + { "aacute", 500, NULL }, + { "s", 389, NULL }, + { "OE", 944, NULL }, + { "t", 278, NULL }, + { "divide", 570, NULL }, + { "u", 556, NULL }, + { "v", 444, NULL }, + { "w", 667, NULL }, + { "x", 500, NULL }, + { "y", 444, NULL }, + { "z", 389, NULL }, + { "hungarumlaut", 333, NULL }, + { "quotedbl", 555, NULL }, + { "mu", 576, NULL }, + { "Scaron", 556, NULL }, + { "Lslash", 611, NULL }, + { "semicolon", 333, NULL }, + { "oslash", 500, NULL }, + { "parenright", 333, NULL }, + { "Ecircumflex", 667, NULL }, + { "trademark", 1000, NULL }, + { "daggerdbl", 500, NULL }, + { "macron", 333, NULL }, + { "Otilde", 722, NULL }, + { "ellipsis", 1000, NULL }, + { "scaron", 389, NULL }, + { "AE", 944, NULL }, + { "Ucircumflex", 722, NULL }, + { "lslash", 278, NULL }, + { "quotedblleft", 500, NULL }, + { "guilsinglright", 333, NULL }, + { "hyphen", 333, NULL }, + { "quotesingle", 278, NULL }, + { "eight", 500, NULL }, + { "exclamdown", 389, NULL }, + { "endash", 500, NULL }, + { "oe", 722, NULL }, + { "ecircumflex", 444, NULL }, + { "copyright", 747, NULL }, + { "Adieresis", 667, NULL }, + { "Egrave", 667, NULL }, + { "slash", 278, NULL }, + { "Edieresis", 667, NULL }, + { "otilde", 500, NULL }, + { "Idieresis", 389, NULL }, + { "parenleft", 333, NULL }, + { "one", 500, NULL }, + { "ucircumflex", 556, NULL }, + { "Odieresis", 722, NULL }, + { "bracketleft", 333, NULL }, + { "Ugrave", 722, NULL }, + { "quoteright", 333, NULL }, + { "Udieresis", 722, NULL }, + { "perthousand", 1000, NULL }, + { "Ydieresis", 611, NULL }, + { "Eacute", 667, NULL }, + { "adieresis", 500, NULL }, + { "egrave", 444, NULL }, + { "edieresis", 444, NULL }, + { "idieresis", 278, NULL }, + { "Eth", 722, NULL }, + { "ae", 722, NULL }, + { "asterisk", 500, NULL }, + { "odieresis", 500, NULL }, + { "Uacute", 722, NULL }, + { "ugrave", 556, NULL }, + { "nine", 500, NULL }, + { "five", 500, NULL }, + { "udieresis", 556, NULL }, + { "Zcaron", 611, NULL }, + { "threequarters", 750, NULL }, + { "guillemotright", 500, NULL }, + { "ydieresis", 444, NULL }, + { "Ccedilla", 667, NULL }, + { "tilde", 333, NULL }, + { "at", 832, NULL }, + { "eacute", 444, NULL }, + { "underscore", 500, NULL }, + { "multiply", 570, NULL }, + { "zero", 500, NULL }, + { "eth", 500, NULL }, + { "Ograve", 722, NULL }, + { "uacute", 556, NULL }, + { "braceleft", 348, NULL }, + { "Thorn", 611, NULL }, + { "zcaron", 389, NULL }, + { "ccedilla", 444, NULL }, + { "Ocircumflex", 722, NULL }, + { "Oacute", 722, NULL }, + { "ogonek", 333, NULL }, + { "ograve", 500, NULL }, + { "thorn", 500, NULL }, + { "degree", 400, NULL }, + { "registered", 747, NULL }, + { "Aring", 667, NULL }, + { "percent", 833, NULL }, + { "six", 500, NULL }, + { "paragraph", 500, NULL }, + { "two", 500, NULL }, + { "Igrave", 389, NULL }, + { "ocircumflex", 500, NULL }, + { "oacute", 500, NULL }, + { "asciicircum", 570, NULL }, + { "aring", 500, NULL }, + { "grave", 333, NULL }, + { "bracketright", 333, NULL }, + { "Iacute", 389, NULL }, + { "ampersand", 778, NULL }, + { "igrave", 278, NULL }, + { "plus", 570, NULL }, + { "quotesinglbase", 333, NULL }, + { "Yacute", 611, NULL }, + { "threesuperior", 300, NULL }, + { "acute", 333, NULL }, + { "section", 500, NULL }, + { "dieresis", 333, NULL }, + { "iacute", 278, NULL }, + { "quotedblbase", 500, NULL }, + { "florin", 500, NULL }, + { "yacute", 444, NULL }, + { "fi", 556, NULL }, + { "fl", 556, NULL }, + { "Acircumflex", 667, NULL }, + { "Icircumflex", 389, NULL }, + { "guillemotleft", 500, NULL }, + { "germandbls", 500, NULL }, + { "seven", 500, NULL }, + { "ordmasculine", 300, NULL }, + { "dotlessi", 278, NULL }, + { "sterling", 500, NULL }, + { "acircumflex", 500, NULL }, + { "icircumflex", 278, NULL }, + { "braceright", 348, NULL }, + { "quotedblright", 500, NULL }, + { "cent", 500, NULL }, + { "currency", 500, NULL }, + { "logicalnot", 606, NULL }, + { "Atilde", 667, NULL }, + { "breve", 333, NULL }, + { "bar", 220, NULL }, + { "fraction", 167, NULL }, + { "less", 570, NULL }, + { "guilsinglleft", 333, NULL }, + { "exclam", 389, NULL }, + { "period", 250, NULL }, + { "greater", 570, NULL }, + { "atilde", 500, NULL }, + { "brokenbar", 220, NULL }, + { "quoteleft", 333, NULL }, + { "onesuperior", 300, NULL } +}; + +static BuiltinFontWidth timesItalicWidthsTab[] = { + { "Ntilde", 667, NULL }, + { "comma", 250, NULL }, + { "cedilla", 333, NULL }, + { "plusminus", 675, NULL }, + { "circumflex", 333, NULL }, + { "dotaccent", 333, NULL }, + { "asciitilde", 541, NULL }, + { "colon", 333, NULL }, + { "onehalf", 750, NULL }, + { "dollar", 500, NULL }, + { "ntilde", 500, NULL }, + { "minus", 675, NULL }, + { "yen", 500, NULL }, + { "space", 250, NULL }, + { "questiondown", 500, NULL }, + { "emdash", 889, NULL }, + { "Agrave", 611, NULL }, + { "three", 500, NULL }, + { "numbersign", 500, NULL }, + { "A", 611, NULL }, + { "B", 611, NULL }, + { "C", 667, NULL }, + { "D", 722, NULL }, + { "E", 611, NULL }, + { "onequarter", 750, NULL }, + { "F", 611, NULL }, + { "G", 722, NULL }, + { "H", 722, NULL }, + { "I", 333, NULL }, + { "J", 444, NULL }, + { "K", 667, NULL }, + { "backslash", 278, NULL }, + { "L", 556, NULL }, + { "periodcentered", 250, NULL }, + { "M", 833, NULL }, + { "N", 667, NULL }, + { "O", 722, NULL }, + { "P", 611, NULL }, + { "Q", 722, NULL }, + { "R", 611, NULL }, + { "Aacute", 611, NULL }, + { "caron", 333, NULL }, + { "S", 500, NULL }, + { "T", 556, NULL }, + { "U", 722, NULL }, + { "agrave", 500, NULL }, + { "V", 611, NULL }, + { "W", 833, NULL }, + { "X", 611, NULL }, + { "question", 500, NULL }, + { "equal", 675, NULL }, + { "Y", 556, NULL }, + { "Z", 556, NULL }, + { "four", 500, NULL }, + { "a", 500, NULL }, + { "b", 500, NULL }, + { "c", 444, NULL }, + { "d", 500, NULL }, + { "e", 444, NULL }, + { "f", 278, NULL }, + { "g", 500, NULL }, + { "bullet", 350, NULL }, + { "h", 500, NULL }, + { "i", 278, NULL }, + { "Oslash", 722, NULL }, + { "dagger", 500, NULL }, + { "j", 278, NULL }, + { "k", 444, NULL }, + { "l", 278, NULL }, + { "m", 722, NULL }, + { "n", 500, NULL }, + { "o", 500, NULL }, + { "ordfeminine", 276, NULL }, + { "ring", 333, NULL }, + { "p", 500, NULL }, + { "q", 500, NULL }, + { "r", 389, NULL }, + { "twosuperior", 300, NULL }, + { "aacute", 500, NULL }, + { "s", 389, NULL }, + { "OE", 944, NULL }, + { "t", 278, NULL }, + { "divide", 675, NULL }, + { "u", 500, NULL }, + { "v", 444, NULL }, + { "w", 667, NULL }, + { "x", 444, NULL }, + { "y", 444, NULL }, + { "z", 389, NULL }, + { "hungarumlaut", 333, NULL }, + { "quotedbl", 420, NULL }, + { "mu", 500, NULL }, + { "Scaron", 500, NULL }, + { "Lslash", 556, NULL }, + { "semicolon", 333, NULL }, + { "oslash", 500, NULL }, + { "parenright", 333, NULL }, + { "Ecircumflex", 611, NULL }, + { "trademark", 980, NULL }, + { "daggerdbl", 500, NULL }, + { "macron", 333, NULL }, + { "Otilde", 722, NULL }, + { "ellipsis", 889, NULL }, + { "scaron", 389, NULL }, + { "AE", 889, NULL }, + { "Ucircumflex", 722, NULL }, + { "lslash", 278, NULL }, + { "quotedblleft", 556, NULL }, + { "guilsinglright", 333, NULL }, + { "hyphen", 333, NULL }, + { "quotesingle", 214, NULL }, + { "eight", 500, NULL }, + { "exclamdown", 389, NULL }, + { "endash", 500, NULL }, + { "oe", 667, NULL }, + { "ecircumflex", 444, NULL }, + { "copyright", 760, NULL }, + { "Adieresis", 611, NULL }, + { "Egrave", 611, NULL }, + { "slash", 278, NULL }, + { "Edieresis", 611, NULL }, + { "otilde", 500, NULL }, + { "Idieresis", 333, NULL }, + { "parenleft", 333, NULL }, + { "one", 500, NULL }, + { "ucircumflex", 500, NULL }, + { "Odieresis", 722, NULL }, + { "bracketleft", 389, NULL }, + { "Ugrave", 722, NULL }, + { "quoteright", 333, NULL }, + { "Udieresis", 722, NULL }, + { "perthousand", 1000, NULL }, + { "Ydieresis", 556, NULL }, + { "Eacute", 611, NULL }, + { "adieresis", 500, NULL }, + { "egrave", 444, NULL }, + { "edieresis", 444, NULL }, + { "idieresis", 278, NULL }, + { "Eth", 722, NULL }, + { "ae", 667, NULL }, + { "asterisk", 500, NULL }, + { "odieresis", 500, NULL }, + { "Uacute", 722, NULL }, + { "ugrave", 500, NULL }, + { "nine", 500, NULL }, + { "five", 500, NULL }, + { "udieresis", 500, NULL }, + { "Zcaron", 556, NULL }, + { "threequarters", 750, NULL }, + { "guillemotright", 500, NULL }, + { "ydieresis", 444, NULL }, + { "Ccedilla", 667, NULL }, + { "tilde", 333, NULL }, + { "at", 920, NULL }, + { "eacute", 444, NULL }, + { "underscore", 500, NULL }, + { "multiply", 675, NULL }, + { "zero", 500, NULL }, + { "eth", 500, NULL }, + { "Ograve", 722, NULL }, + { "uacute", 500, NULL }, + { "braceleft", 400, NULL }, + { "Thorn", 611, NULL }, + { "zcaron", 389, NULL }, + { "ccedilla", 444, NULL }, + { "Ocircumflex", 722, NULL }, + { "Oacute", 722, NULL }, + { "ogonek", 333, NULL }, + { "ograve", 500, NULL }, + { "thorn", 500, NULL }, + { "degree", 400, NULL }, + { "registered", 760, NULL }, + { "Aring", 611, NULL }, + { "percent", 833, NULL }, + { "six", 500, NULL }, + { "paragraph", 523, NULL }, + { "two", 500, NULL }, + { "Igrave", 333, NULL }, + { "ocircumflex", 500, NULL }, + { "oacute", 500, NULL }, + { "asciicircum", 422, NULL }, + { "aring", 500, NULL }, + { "grave", 333, NULL }, + { "bracketright", 389, NULL }, + { "Iacute", 333, NULL }, + { "ampersand", 778, NULL }, + { "igrave", 278, NULL }, + { "plus", 675, NULL }, + { "quotesinglbase", 333, NULL }, + { "Yacute", 556, NULL }, + { "threesuperior", 300, NULL }, + { "acute", 333, NULL }, + { "section", 500, NULL }, + { "dieresis", 333, NULL }, + { "iacute", 278, NULL }, + { "quotedblbase", 556, NULL }, + { "florin", 500, NULL }, + { "yacute", 444, NULL }, + { "fi", 500, NULL }, + { "fl", 500, NULL }, + { "Acircumflex", 611, NULL }, + { "Icircumflex", 333, NULL }, + { "guillemotleft", 500, NULL }, + { "germandbls", 500, NULL }, + { "seven", 500, NULL }, + { "ordmasculine", 310, NULL }, + { "dotlessi", 278, NULL }, + { "sterling", 500, NULL }, + { "acircumflex", 500, NULL }, + { "icircumflex", 278, NULL }, + { "braceright", 400, NULL }, + { "quotedblright", 556, NULL }, + { "cent", 500, NULL }, + { "currency", 500, NULL }, + { "logicalnot", 675, NULL }, + { "Atilde", 611, NULL }, + { "breve", 333, NULL }, + { "bar", 275, NULL }, + { "fraction", 167, NULL }, + { "less", 675, NULL }, + { "guilsinglleft", 333, NULL }, + { "exclam", 333, NULL }, + { "period", 250, NULL }, + { "greater", 675, NULL }, + { "atilde", 500, NULL }, + { "brokenbar", 275, NULL }, + { "quoteleft", 333, NULL }, + { "onesuperior", 300, NULL } +}; + +static BuiltinFontWidth timesRomanWidthsTab[] = { + { "Ntilde", 722, NULL }, + { "comma", 250, NULL }, + { "cedilla", 333, NULL }, + { "plusminus", 564, NULL }, + { "circumflex", 333, NULL }, + { "dotaccent", 333, NULL }, + { "asciitilde", 541, NULL }, + { "colon", 278, NULL }, + { "onehalf", 750, NULL }, + { "dollar", 500, NULL }, + { "ntilde", 500, NULL }, + { "minus", 564, NULL }, + { "yen", 500, NULL }, + { "space", 250, NULL }, + { "questiondown", 444, NULL }, + { "emdash", 1000, NULL }, + { "Agrave", 722, NULL }, + { "three", 500, NULL }, + { "numbersign", 500, NULL }, + { "A", 722, NULL }, + { "B", 667, NULL }, + { "C", 667, NULL }, + { "D", 722, NULL }, + { "E", 611, NULL }, + { "onequarter", 750, NULL }, + { "F", 556, NULL }, + { "G", 722, NULL }, + { "H", 722, NULL }, + { "I", 333, NULL }, + { "J", 389, NULL }, + { "K", 722, NULL }, + { "backslash", 278, NULL }, + { "L", 611, NULL }, + { "periodcentered", 250, NULL }, + { "M", 889, NULL }, + { "N", 722, NULL }, + { "O", 722, NULL }, + { "P", 556, NULL }, + { "Q", 722, NULL }, + { "R", 667, NULL }, + { "Aacute", 722, NULL }, + { "caron", 333, NULL }, + { "S", 556, NULL }, + { "T", 611, NULL }, + { "U", 722, NULL }, + { "agrave", 444, NULL }, + { "V", 722, NULL }, + { "W", 944, NULL }, + { "X", 722, NULL }, + { "question", 444, NULL }, + { "equal", 564, NULL }, + { "Y", 722, NULL }, + { "Z", 611, NULL }, + { "four", 500, NULL }, + { "a", 444, NULL }, + { "b", 500, NULL }, + { "c", 444, NULL }, + { "d", 500, NULL }, + { "e", 444, NULL }, + { "f", 333, NULL }, + { "g", 500, NULL }, + { "bullet", 350, NULL }, + { "h", 500, NULL }, + { "i", 278, NULL }, + { "Oslash", 722, NULL }, + { "dagger", 500, NULL }, + { "j", 278, NULL }, + { "k", 500, NULL }, + { "l", 278, NULL }, + { "m", 778, NULL }, + { "n", 500, NULL }, + { "o", 500, NULL }, + { "ordfeminine", 276, NULL }, + { "ring", 333, NULL }, + { "p", 500, NULL }, + { "q", 500, NULL }, + { "r", 333, NULL }, + { "twosuperior", 300, NULL }, + { "aacute", 444, NULL }, + { "s", 389, NULL }, + { "OE", 889, NULL }, + { "t", 278, NULL }, + { "divide", 564, NULL }, + { "u", 500, NULL }, + { "v", 500, NULL }, + { "w", 722, NULL }, + { "x", 500, NULL }, + { "y", 500, NULL }, + { "z", 444, NULL }, + { "hungarumlaut", 333, NULL }, + { "quotedbl", 408, NULL }, + { "mu", 500, NULL }, + { "Scaron", 556, NULL }, + { "Lslash", 611, NULL }, + { "semicolon", 278, NULL }, + { "oslash", 500, NULL }, + { "parenright", 333, NULL }, + { "Ecircumflex", 611, NULL }, + { "trademark", 980, NULL }, + { "daggerdbl", 500, NULL }, + { "macron", 333, NULL }, + { "Otilde", 722, NULL }, + { "ellipsis", 1000, NULL }, + { "scaron", 389, NULL }, + { "AE", 889, NULL }, + { "Ucircumflex", 722, NULL }, + { "lslash", 278, NULL }, + { "quotedblleft", 444, NULL }, + { "guilsinglright", 333, NULL }, + { "hyphen", 333, NULL }, + { "quotesingle", 180, NULL }, + { "eight", 500, NULL }, + { "exclamdown", 333, NULL }, + { "endash", 500, NULL }, + { "oe", 722, NULL }, + { "ecircumflex", 444, NULL }, + { "copyright", 760, NULL }, + { "Adieresis", 722, NULL }, + { "Egrave", 611, NULL }, + { "slash", 278, NULL }, + { "Edieresis", 611, NULL }, + { "otilde", 500, NULL }, + { "Idieresis", 333, NULL }, + { "parenleft", 333, NULL }, + { "one", 500, NULL }, + { "ucircumflex", 500, NULL }, + { "Odieresis", 722, NULL }, + { "bracketleft", 333, NULL }, + { "Ugrave", 722, NULL }, + { "quoteright", 333, NULL }, + { "Udieresis", 722, NULL }, + { "perthousand", 1000, NULL }, + { "Ydieresis", 722, NULL }, + { "Eacute", 611, NULL }, + { "adieresis", 444, NULL }, + { "egrave", 444, NULL }, + { "edieresis", 444, NULL }, + { "idieresis", 278, NULL }, + { "Eth", 722, NULL }, + { "ae", 667, NULL }, + { "asterisk", 500, NULL }, + { "odieresis", 500, NULL }, + { "Uacute", 722, NULL }, + { "ugrave", 500, NULL }, + { "nine", 500, NULL }, + { "five", 500, NULL }, + { "udieresis", 500, NULL }, + { "Zcaron", 611, NULL }, + { "threequarters", 750, NULL }, + { "guillemotright", 500, NULL }, + { "ydieresis", 500, NULL }, + { "Ccedilla", 667, NULL }, + { "tilde", 333, NULL }, + { "at", 921, NULL }, + { "eacute", 444, NULL }, + { "underscore", 500, NULL }, + { "multiply", 564, NULL }, + { "zero", 500, NULL }, + { "eth", 500, NULL }, + { "Ograve", 722, NULL }, + { "uacute", 500, NULL }, + { "braceleft", 480, NULL }, + { "Thorn", 556, NULL }, + { "zcaron", 444, NULL }, + { "ccedilla", 444, NULL }, + { "Ocircumflex", 722, NULL }, + { "Oacute", 722, NULL }, + { "ogonek", 333, NULL }, + { "ograve", 500, NULL }, + { "thorn", 500, NULL }, + { "degree", 400, NULL }, + { "registered", 760, NULL }, + { "Aring", 722, NULL }, + { "percent", 833, NULL }, + { "six", 500, NULL }, + { "paragraph", 453, NULL }, + { "two", 500, NULL }, + { "Igrave", 333, NULL }, + { "ocircumflex", 500, NULL }, + { "oacute", 500, NULL }, + { "asciicircum", 469, NULL }, + { "aring", 444, NULL }, + { "grave", 333, NULL }, + { "bracketright", 333, NULL }, + { "Iacute", 333, NULL }, + { "ampersand", 778, NULL }, + { "igrave", 278, NULL }, + { "plus", 564, NULL }, + { "quotesinglbase", 333, NULL }, + { "Yacute", 722, NULL }, + { "threesuperior", 300, NULL }, + { "acute", 333, NULL }, + { "section", 500, NULL }, + { "dieresis", 333, NULL }, + { "iacute", 278, NULL }, + { "quotedblbase", 444, NULL }, + { "florin", 500, NULL }, + { "yacute", 500, NULL }, + { "fi", 556, NULL }, + { "fl", 556, NULL }, + { "Acircumflex", 722, NULL }, + { "Icircumflex", 333, NULL }, + { "guillemotleft", 500, NULL }, + { "germandbls", 500, NULL }, + { "seven", 500, NULL }, + { "ordmasculine", 310, NULL }, + { "dotlessi", 278, NULL }, + { "sterling", 500, NULL }, + { "acircumflex", 444, NULL }, + { "icircumflex", 278, NULL }, + { "braceright", 480, NULL }, + { "quotedblright", 444, NULL }, + { "cent", 500, NULL }, + { "currency", 500, NULL }, + { "logicalnot", 564, NULL }, + { "Atilde", 722, NULL }, + { "breve", 333, NULL }, + { "bar", 200, NULL }, + { "fraction", 167, NULL }, + { "less", 564, NULL }, + { "guilsinglleft", 333, NULL }, + { "exclam", 333, NULL }, + { "period", 250, NULL }, + { "greater", 564, NULL }, + { "atilde", 444, NULL }, + { "brokenbar", 200, NULL }, + { "quoteleft", 333, NULL }, + { "onesuperior", 300, NULL } +}; + +static BuiltinFontWidth zapfDingbatsWidthsTab[] = { + { "a81", 438, NULL }, + { "a82", 138, NULL }, + { "a83", 277, NULL }, + { "a84", 415, NULL }, + { "a85", 509, NULL }, + { "a86", 410, NULL }, + { "a87", 234, NULL }, + { "a88", 234, NULL }, + { "a89", 390, NULL }, + { "a140", 788, NULL }, + { "a141", 788, NULL }, + { "a142", 788, NULL }, + { "a143", 788, NULL }, + { "a144", 788, NULL }, + { "a145", 788, NULL }, + { "a146", 788, NULL }, + { "a147", 788, NULL }, + { "a148", 788, NULL }, + { "a149", 788, NULL }, + { "a90", 390, NULL }, + { "a91", 276, NULL }, + { "a92", 276, NULL }, + { "space", 278, NULL }, + { "a93", 317, NULL }, + { "a94", 317, NULL }, + { "a95", 334, NULL }, + { "a96", 334, NULL }, + { "a97", 392, NULL }, + { "a98", 392, NULL }, + { "a99", 668, NULL }, + { "a150", 788, NULL }, + { "a151", 788, NULL }, + { "a152", 788, NULL }, + { "a153", 788, NULL }, + { "a154", 788, NULL }, + { "a155", 788, NULL }, + { "a156", 788, NULL }, + { "a157", 788, NULL }, + { "a158", 788, NULL }, + { "a159", 788, NULL }, + { "a160", 894, NULL }, + { "a161", 838, NULL }, + { "a162", 924, NULL }, + { "a163", 1016, NULL }, + { "a164", 458, NULL }, + { "a165", 924, NULL }, + { "a166", 918, NULL }, + { "a167", 927, NULL }, + { "a168", 928, NULL }, + { "a169", 928, NULL }, + { "a170", 834, NULL }, + { "a171", 873, NULL }, + { "a172", 828, NULL }, + { "a173", 924, NULL }, + { "a174", 917, NULL }, + { "a175", 930, NULL }, + { "a176", 931, NULL }, + { "a177", 463, NULL }, + { "a178", 883, NULL }, + { "a179", 836, NULL }, + { "a180", 867, NULL }, + { "a181", 696, NULL }, + { "a182", 874, NULL }, + { "a183", 760, NULL }, + { "a184", 946, NULL }, + { "a185", 865, NULL }, + { "a186", 967, NULL }, + { "a187", 831, NULL }, + { "a188", 873, NULL }, + { "a189", 927, NULL }, + { "a1", 974, NULL }, + { "a2", 961, NULL }, + { "a3", 980, NULL }, + { "a4", 719, NULL }, + { "a5", 789, NULL }, + { "a6", 494, NULL }, + { "a7", 552, NULL }, + { "a8", 537, NULL }, + { "a9", 577, NULL }, + { "a190", 970, NULL }, + { "a191", 918, NULL }, + { "a192", 748, NULL }, + { "a193", 836, NULL }, + { "a194", 771, NULL }, + { "a195", 888, NULL }, + { "a196", 748, NULL }, + { "a197", 771, NULL }, + { "a198", 888, NULL }, + { "a199", 867, NULL }, + { "a10", 692, NULL }, + { "a11", 960, NULL }, + { "a12", 939, NULL }, + { "a13", 549, NULL }, + { "a14", 855, NULL }, + { "a15", 911, NULL }, + { "a16", 933, NULL }, + { "a17", 945, NULL }, + { "a18", 974, NULL }, + { "a19", 755, NULL }, + { "a20", 846, NULL }, + { "a21", 762, NULL }, + { "a22", 761, NULL }, + { "a23", 571, NULL }, + { "a24", 677, NULL }, + { "a25", 763, NULL }, + { "a26", 760, NULL }, + { "a27", 759, NULL }, + { "a28", 754, NULL }, + { "a29", 786, NULL }, + { "a30", 788, NULL }, + { "a31", 788, NULL }, + { "a32", 790, NULL }, + { "a33", 793, NULL }, + { "a34", 794, NULL }, + { "a35", 816, NULL }, + { "a36", 823, NULL }, + { "a37", 789, NULL }, + { "a38", 841, NULL }, + { "a39", 823, NULL }, + { "a40", 833, NULL }, + { "a41", 816, NULL }, + { "a42", 831, NULL }, + { "a43", 923, NULL }, + { "a44", 744, NULL }, + { "a45", 723, NULL }, + { "a46", 749, NULL }, + { "a47", 790, NULL }, + { "a48", 792, NULL }, + { "a49", 695, NULL }, + { "a100", 668, NULL }, + { "a101", 732, NULL }, + { "a102", 544, NULL }, + { "a103", 544, NULL }, + { "a104", 910, NULL }, + { "a105", 911, NULL }, + { "a106", 667, NULL }, + { "a107", 760, NULL }, + { "a108", 760, NULL }, + { "a109", 626, NULL }, + { "a50", 776, NULL }, + { "a51", 768, NULL }, + { "a52", 792, NULL }, + { "a53", 759, NULL }, + { "a54", 707, NULL }, + { "a55", 708, NULL }, + { "a56", 682, NULL }, + { "a57", 701, NULL }, + { "a58", 826, NULL }, + { "a59", 815, NULL }, + { "a110", 694, NULL }, + { "a111", 595, NULL }, + { "a112", 776, NULL }, + { "a117", 690, NULL }, + { "a118", 791, NULL }, + { "a119", 790, NULL }, + { "a60", 789, NULL }, + { "a61", 789, NULL }, + { "a62", 707, NULL }, + { "a63", 687, NULL }, + { "a64", 696, NULL }, + { "a65", 689, NULL }, + { "a66", 786, NULL }, + { "a67", 787, NULL }, + { "a68", 713, NULL }, + { "a69", 791, NULL }, + { "a200", 696, NULL }, + { "a201", 874, NULL }, + { "a120", 788, NULL }, + { "a121", 788, NULL }, + { "a202", 974, NULL }, + { "a122", 788, NULL }, + { "a203", 762, NULL }, + { "a123", 788, NULL }, + { "a204", 759, NULL }, + { "a205", 509, NULL }, + { "a124", 788, NULL }, + { "a206", 410, NULL }, + { "a125", 788, NULL }, + { "a126", 788, NULL }, + { "a127", 788, NULL }, + { "a128", 788, NULL }, + { "a129", 788, NULL }, + { "a70", 785, NULL }, + { "a71", 791, NULL }, + { "a72", 873, NULL }, + { "a73", 761, NULL }, + { "a74", 762, NULL }, + { "a75", 759, NULL }, + { "a76", 892, NULL }, + { "a77", 892, NULL }, + { "a78", 788, NULL }, + { "a79", 784, NULL }, + { "a130", 788, NULL }, + { "a131", 788, NULL }, + { "a132", 788, NULL }, + { "a133", 788, NULL }, + { "a134", 788, NULL }, + { "a135", 788, NULL }, + { "a136", 788, NULL }, + { "a137", 788, NULL }, + { "a138", 788, NULL }, + { "a139", 788, NULL } +}; + +BuiltinFont builtinFonts[] = { + { "Courier", standardEncoding, 624, -207, { -40, -290, 640, 795}, NULL }, + { "Courier-Bold", standardEncoding, 674, -257, {-100, -350, 700, 855}, NULL }, + { "Courier-BoldOblique", standardEncoding, 674, -257, {-145, -350, 817, 855}, NULL }, + { "Courier-Oblique", standardEncoding, 624, -207, { -85, -290, 759, 795}, NULL }, + { "Helvetica", standardEncoding, 729, -219, {-174, -220, 1001, 944}, NULL }, + { "Helvetica-Bold", standardEncoding, 729, -219, {-173, -221, 1003, 936}, NULL }, + { "Helvetica-BoldOblique", standardEncoding, 729, -219, {-177, -221, 1107, 936}, NULL }, + { "Helvetica-Oblique", standardEncoding, 729, -219, {-178, -220, 1108, 944}, NULL }, + { "Symbol", symbolEncoding, 1010, -293, {-180, -293, 1090, 1010}, NULL }, + { "Times-Bold", standardEncoding, 670, -210, {-172, -256, 1008, 965}, NULL }, + { "Times-BoldItalic", standardEncoding, 682, -203, {-168, -232, 1014, 894}, NULL }, + { "Times-Italic", standardEncoding, 684, -206, {-176, -252, 990, 930}, NULL }, + { "Times-Roman", standardEncoding, 682, -217, {-170, -223, 1024, 896}, NULL }, + { "ZapfDingbats", zapfDingbatsEncoding, 820, -143, { -1, -143, 981, 820}, NULL } +}; + +BuiltinFont *builtinFontSubst[] = { + &builtinFonts[0], + &builtinFonts[3], + &builtinFonts[1], + &builtinFonts[2], + &builtinFonts[4], + &builtinFonts[7], + &builtinFonts[5], + &builtinFonts[6], + &builtinFonts[12], + &builtinFonts[11], + &builtinFonts[9], + &builtinFonts[10] +}; + +void initBuiltinFontTables() { + builtinFonts[0].widths = new BuiltinFontWidths(courierWidthsTab, 260); + builtinFonts[1].widths = new BuiltinFontWidths(courierBoldWidthsTab, 260); + builtinFonts[2].widths = new BuiltinFontWidths(courierBoldObliqueWidthsTab, 260); + builtinFonts[3].widths = new BuiltinFontWidths(courierObliqueWidthsTab, 260); + builtinFonts[4].widths = new BuiltinFontWidths(helveticaWidthsTab, 228); + builtinFonts[5].widths = new BuiltinFontWidths(helveticaBoldWidthsTab, 228); + builtinFonts[6].widths = new BuiltinFontWidths(helveticaBoldObliqueWidthsTab, 228); + builtinFonts[7].widths = new BuiltinFontWidths(helveticaObliqueWidthsTab, 228); + builtinFonts[8].widths = new BuiltinFontWidths(symbolWidthsTab, 189); + builtinFonts[9].widths = new BuiltinFontWidths(timesBoldWidthsTab, 228); + builtinFonts[10].widths = new BuiltinFontWidths(timesBoldItalicWidthsTab, 228); + builtinFonts[11].widths = new BuiltinFontWidths(timesItalicWidthsTab, 228); + builtinFonts[12].widths = new BuiltinFontWidths(timesRomanWidthsTab, 228); + builtinFonts[13].widths = new BuiltinFontWidths(zapfDingbatsWidthsTab, 202); +} + +void freeBuiltinFontTables() { + int i; + + for (i = 0; i < 14; ++i) { + delete builtinFonts[i].widths; + } +} diff --git a/pdf/xpdf/BuiltinFontTables.h b/pdf/xpdf/BuiltinFontTables.h new file mode 100644 index 00000000..3a8892e5 --- /dev/null +++ b/pdf/xpdf/BuiltinFontTables.h @@ -0,0 +1,23 @@ +//======================================================================== +// +// BuiltinFontTables.h +// +// Copyright 2001-2002 Glyph & Cog, LLC +// +//======================================================================== + +#ifndef BUILTINFONTTABLES_H +#define BUILTINFONTTABLES_H + +#include "BuiltinFont.h" + +#define nBuiltinFonts 14 +#define nBuiltinFontSubsts 12 + +extern BuiltinFont builtinFonts[nBuiltinFonts]; +extern BuiltinFont *builtinFontSubst[nBuiltinFontSubsts]; + +extern void initBuiltinFontTables(); +extern void freeBuiltinFontTables(); + +#endif diff --git a/pdf/xpdf/CMap.cc b/pdf/xpdf/CMap.cc new file mode 100644 index 00000000..b49cffdc --- /dev/null +++ b/pdf/xpdf/CMap.cc @@ -0,0 +1,359 @@ +//======================================================================== +// +// CMap.cc +// +// Copyright 2001-2002 Glyph & Cog, LLC +// +//======================================================================== + +#ifdef __GNUC__ +#pragma implementation +#endif + +#include +#include +#include +#include +#include +#include "gmem.h" +#include "gfile.h" +#include "GString.h" +#include "Error.h" +#include "GlobalParams.h" +#include "PSTokenizer.h" +#include "CMap.h" + +//------------------------------------------------------------------------ + +struct CMapVectorEntry { + GBool isVector; + union { + CMapVectorEntry *vector; + CID cid; + }; +}; + +//------------------------------------------------------------------------ + +static int getCharFromFile(void *data) { + return fgetc((FILE *)data); +} + +//------------------------------------------------------------------------ + +CMap *CMap::parse(CMapCache *cache, GString *collectionA, + GString *cMapNameA) { + FILE *f; + CMap *cmap; + PSTokenizer *pst; + char tok1[256], tok2[256], tok3[256]; + int n1, n2, n3; + Guint start, end; + + if (!(f = globalParams->findCMapFile(collectionA, cMapNameA))) { + + // Check for an identity CMap. + if (!cMapNameA->cmp("Identity") || !cMapNameA->cmp("Identity-H")) { + return new CMap(collectionA->copy(), cMapNameA->copy(), 0); + } + if (!cMapNameA->cmp("Identity-V")) { + return new CMap(collectionA->copy(), cMapNameA->copy(), 1); + } + + error(-1, "Couldn't find '%s' CMap file for '%s' collection", + cMapNameA->getCString(), collectionA->getCString()); + return NULL; + } + + cmap = new CMap(collectionA->copy(), cMapNameA->copy()); + + pst = new PSTokenizer(&getCharFromFile, f); + pst->getToken(tok1, sizeof(tok1), &n1); + while (pst->getToken(tok2, sizeof(tok2), &n2)) { + if (!strcmp(tok2, "usecmap")) { + if (tok1[0] == '/') { + cmap->useCMap(cache, tok1 + 1); + } + pst->getToken(tok1, sizeof(tok1), &n1); + } else if (!strcmp(tok1, "/WMode")) { + cmap->wMode = atoi(tok2); + pst->getToken(tok1, sizeof(tok1), &n1); + } else if (!strcmp(tok2, "begincodespacerange")) { + while (pst->getToken(tok1, sizeof(tok1), &n1)) { + if (!strcmp(tok1, "endcodespacerange")) { + break; + } + if (!pst->getToken(tok2, sizeof(tok2), &n2) || + !strcmp(tok2, "endcodespacerange")) { + error(-1, "Illegal entry in codespacerange block in CMap"); + break; + } + if (tok1[0] == '<' && tok2[0] == '<' && + n1 == n2 && n1 >= 4 && (n1 & 1) == 0) { + tok1[n1 - 1] = tok2[n1 - 1] = '\0'; + sscanf(tok1 + 1, "%x", &start); + sscanf(tok2 + 1, "%x", &end); + n1 = (n1 - 2) / 2; + cmap->addCodeSpace(cmap->vector, start, end, n1); + } + } + pst->getToken(tok1, sizeof(tok1), &n1); + } else if (!strcmp(tok2, "begincidrange")) { + while (pst->getToken(tok1, sizeof(tok1), &n1)) { + if (!strcmp(tok1, "endcidrange")) { + break; + } + if (!pst->getToken(tok2, sizeof(tok2), &n2) || + !strcmp(tok2, "endcidrange") || + !pst->getToken(tok3, sizeof(tok3), &n3) || + !strcmp(tok3, "endcidrange")) { + error(-1, "Illegal entry in cidrange block in CMap"); + break; + } + if (tok1[0] == '<' && tok2[0] == '<' && + n1 == n2 && n1 >= 4 && (n1 & 1) == 0) { + tok1[n1 - 1] = tok2[n1 - 1] = '\0'; + sscanf(tok1 + 1, "%x", &start); + sscanf(tok2 + 1, "%x", &end); + n1 = (n1 - 2) / 2; + cmap->addCIDs(start, end, n1, (CID)atoi(tok3)); + } + } + pst->getToken(tok1, sizeof(tok1), &n1); + } else { + strcpy(tok1, tok2); + } + } + delete pst; + + fclose(f); + + return cmap; +} + +CMap::CMap(GString *collectionA, GString *cMapNameA) { + int i; + + collection = collectionA; + cMapName = cMapNameA; + wMode = 0; + vector = (CMapVectorEntry *)gmalloc(256 * sizeof(CMapVectorEntry)); + for (i = 0; i < 256; ++i) { + vector[i].isVector = gFalse; + vector[i].cid = 0; + } + refCnt = 1; +} + +CMap::CMap(GString *collectionA, GString *cMapNameA, int wModeA) { + collection = collectionA; + cMapName = cMapNameA; + wMode = wModeA; + vector = NULL; + refCnt = 1; +} + +void CMap::useCMap(CMapCache *cache, char *useName) { + GString *useNameStr; + CMap *subCMap; + + useNameStr = new GString(useName); + subCMap = cache->getCMap(collection, useNameStr); + delete useNameStr; + if (!subCMap) { + return; + } + copyVector(vector, subCMap->vector); + subCMap->decRefCnt(); +} + +void CMap::copyVector(CMapVectorEntry *dest, CMapVectorEntry *src) { + int i, j; + + for (i = 0; i < 256; ++i) { + if (src[i].isVector) { + if (!dest[i].isVector) { + dest[i].isVector = gTrue; + dest[i].vector = + (CMapVectorEntry *)gmalloc(256 * sizeof(CMapVectorEntry)); + for (j = 0; j < 256; ++j) { + dest[i].vector[j].isVector = gFalse; + dest[i].vector[j].cid = 0; + } + } + copyVector(dest[i].vector, src[i].vector); + } else { + if (dest[i].isVector) { + error(-1, "Collision in usecmap"); + } else { + dest[i].cid = src[i].cid; + } + } + } +} + +void CMap::addCodeSpace(CMapVectorEntry *vec, Guint start, Guint end, + Guint nBytes) { + Guint start2, end2; + int startByte, endByte, i, j; + + if (nBytes > 1) { + startByte = (start >> (8 * (nBytes - 1))) & 0xff; + endByte = (end >> (8 * (nBytes - 1))) & 0xff; + start2 = start & ((1 << (8 * (nBytes - 1))) - 1); + end2 = end & ((1 << (8 * (nBytes - 1))) - 1); + for (i = startByte; i <= endByte; ++i) { + if (!vec[i].isVector) { + vec[i].isVector = gTrue; + vec[i].vector = + (CMapVectorEntry *)gmalloc(256 * sizeof(CMapVectorEntry)); + for (j = 0; j < 256; ++j) { + vec[i].vector[j].isVector = gFalse; + vec[i].vector[j].cid = 0; + } + } + addCodeSpace(vec[i].vector, start2, end2, nBytes - 1); + } + } +} + +void CMap::addCIDs(Guint start, Guint end, Guint nBytes, CID firstCID) { + CMapVectorEntry *vec; + CID cid; + int byte; + Guint i; + + vec = vector; + for (i = nBytes - 1; i >= 1; --i) { + byte = (start >> (8 * i)) & 0xff; + if (!vec[byte].isVector) { + error(-1, "Invalid CID (%*x - %*x) in CMap", + 2*nBytes, start, 2*nBytes, end); + return; + } + vec = vec[byte].vector; + } + cid = firstCID; + for (byte = (int)(start & 0xff); byte <= (int)(end & 0xff); ++byte) { + if (vec[byte].isVector) { + error(-1, "Invalid CID (%*x - %*x) in CMap", + 2*nBytes, start, 2*nBytes, end); + } else { + vec[byte].cid = cid; + } + ++cid; + } +} + +CMap::~CMap() { + delete collection; + delete cMapName; + if (vector) { + freeCMapVector(vector); + } +} + +void CMap::freeCMapVector(CMapVectorEntry *vec) { + int i; + + for (i = 0; i < 256; ++i) { + if (vec[i].isVector) { + freeCMapVector(vec[i].vector); + } + } + gfree(vec); +} + +void CMap::incRefCnt() { + ++refCnt; +} + +void CMap::decRefCnt() { + if (--refCnt == 0) { + delete this; + } +} + +GBool CMap::match(GString *collectionA, GString *cMapNameA) { + return !collection->cmp(collectionA) && !cMapName->cmp(cMapNameA); +} + +CID CMap::getCID(char *s, int len, int *nUsed) { + CMapVectorEntry *vec; + int n, i; + + if (!(vec = vector)) { + // identity CMap + *nUsed = 2; + if (len < 2) { + return 0; + } + return ((s[0] & 0xff) << 8) + (s[1] & 0xff); + } + n = 0; + while (1) { + if (n >= len) { + *nUsed = n; + return 0; + } + i = s[n++] & 0xff; + if (!vec[i].isVector) { + *nUsed = n; + return vec[i].cid; + } + vec = vec[i].vector; + } +} + +//------------------------------------------------------------------------ + +CMapCache::CMapCache() { + int i; + + for (i = 0; i < cMapCacheSize; ++i) { + cache[i] = NULL; + } +} + +CMapCache::~CMapCache() { + int i; + + for (i = 0; i < cMapCacheSize; ++i) { + if (cache[i]) { + cache[i]->decRefCnt(); + } + } +} + +CMap *CMapCache::getCMap(GString *collection, GString *cMapName) { + CMap *cmap; + int i, j; + + if (cache[0] && cache[0]->match(collection, cMapName)) { + cache[0]->incRefCnt(); + return cache[0]; + } + for (i = 1; i < cMapCacheSize; ++i) { + if (cache[i] && cache[i]->match(collection, cMapName)) { + cmap = cache[i]; + for (j = i; j >= 1; --j) { + cache[j] = cache[j - 1]; + } + cache[0] = cmap; + cmap->incRefCnt(); + return cmap; + } + } + if ((cmap = CMap::parse(this, collection, cMapName))) { + if (cache[cMapCacheSize - 1]) { + cache[cMapCacheSize - 1]->decRefCnt(); + } + for (j = cMapCacheSize - 1; j >= 1; --j) { + cache[j] = cache[j - 1]; + } + cache[0] = cmap; + cmap->incRefCnt(); + return cmap; + } + return NULL; +} diff --git a/pdf/xpdf/CMap.h b/pdf/xpdf/CMap.h new file mode 100644 index 00000000..fe49acf7 --- /dev/null +++ b/pdf/xpdf/CMap.h @@ -0,0 +1,93 @@ +//======================================================================== +// +// CMap.h +// +// Copyright 2001-2002 Glyph & Cog, LLC +// +//======================================================================== + +#ifndef CMAP_H +#define CMAP_H + +#ifdef __GNUC__ +#pragma interface +#endif + +#include "gtypes.h" +#include "CharTypes.h" + +class GString; +struct CMapVectorEntry; +class CMapCache; + +//------------------------------------------------------------------------ + +class CMap { +public: + + // Create the CMap specified by and . Sets + // the initial reference count to 1. Returns NULL on failure. + static CMap *parse(CMapCache *cache, GString *collectionA, + GString *cMapNameA); + + ~CMap(); + + void incRefCnt(); + void decRefCnt(); + + // Return collection name (-). + GString *getCollection() { return collection; } + + // Return true if this CMap matches the specified , and + // . + GBool match(GString *collectionA, GString *cMapNameA); + + // Return the CID corresponding to the character code starting at + // , which contains bytes. Sets * to the number of + // bytes used by the char code. + CID getCID(char *s, int len, int *nUsed); + + // Return the writing mode (0=horizontal, 1=vertical). + int getWMode() { return wMode; } + +private: + + CMap(GString *collectionA, GString *cMapNameA); + CMap(GString *collectionA, GString *cMapNameA, int wModeA); + void useCMap(CMapCache *cache, char *useName); + void copyVector(CMapVectorEntry *dest, CMapVectorEntry *src); + void addCodeSpace(CMapVectorEntry *vec, Guint start, Guint end, + Guint nBytes); + void addCIDs(Guint start, Guint end, Guint nBytes, CID firstCID); + void freeCMapVector(CMapVectorEntry *vec); + + GString *collection; + GString *cMapName; + int wMode; // writing mode (0=horizontal, 1=vertical) + CMapVectorEntry *vector; // vector for first byte (NULL for + // identity CMap) + int refCnt; +}; + +//------------------------------------------------------------------------ + +#define cMapCacheSize 4 + +class CMapCache { +public: + + CMapCache(); + ~CMapCache(); + + // Get the CMap for the specified character collection. + // Increments its reference count; there will be one reference for + // the cache plus one for the caller of this function. Returns NULL + // on failure. + CMap *getCMap(GString *collection, GString *cMapName); + +private: + + CMap *cache[cMapCacheSize]; +}; + +#endif diff --git a/pdf/xpdf/CNS13CMapInfo.h b/pdf/xpdf/CNS13CMapInfo.h deleted file mode 100644 index 284e6036..00000000 --- a/pdf/xpdf/CNS13CMapInfo.h +++ /dev/null @@ -1,47771 +0,0 @@ -//======================================================================== -// -// CNS13CMapInfo.h -// -// This file was automatically generated by makeCMapInfo. -// -// Copyright 1998 Derek B. Noonburg -// -//======================================================================== - -#ifndef CNS13CMAPINFO_H -#define CNS13CMAPINFO_H - -static Gushort cns13AdobeCNS10Map2[116] = { - 0x0000, 0x0000, - 0x0000, 0x0000, - 0x0100, 0x0100, - 0x0200, 0x0200, - 0x0300, 0x0300, - 0x0400, 0x0400, - 0x0500, 0x0500, - 0x0600, 0x0600, - 0x0700, 0x0700, - 0x0800, 0x0800, - 0x0900, 0x0900, - 0x0a00, 0x0a00, - 0x0b00, 0x0b00, - 0x0c00, 0x0c00, - 0x0d00, 0x0d00, - 0x0e00, 0x0e00, - 0x0f00, 0x0f00, - 0x1000, 0x1000, - 0x1100, 0x1100, - 0x1200, 0x1200, - 0x1300, 0x1300, - 0x1400, 0x1400, - 0x1500, 0x1500, - 0x1600, 0x1600, - 0x1700, 0x1700, - 0x1800, 0x1800, - 0x1900, 0x1900, - 0x1a00, 0x1a00, - 0x1b00, 0x1b00, - 0x1c00, 0x1c00, - 0x1d00, 0x1d00, - 0x1e00, 0x1e00, - 0x1f00, 0x1f00, - 0x2000, 0x2000, - 0x2100, 0x2100, - 0x2200, 0x2200, - 0x2300, 0x2300, - 0x2400, 0x2400, - 0x2500, 0x2500, - 0x2600, 0x2600, - 0x2700, 0x2700, - 0x2800, 0x2800, - 0x2900, 0x2900, - 0x2a00, 0x2a00, - 0x2b00, 0x2b00, - 0x2c00, 0x2c00, - 0x2d00, 0x2d00, - 0x2e00, 0x2e00, - 0x2f00, 0x2f00, - 0x3000, 0x3000, - 0x3100, 0x3100, - 0x3200, 0x3200, - 0x3300, 0x3300, - 0x3400, 0x3400, - 0x3500, 0x3500, - 0x3600, 0x3600, - 0x3700, 0x3700, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 cns13AdobeCNS10Enc16 = { - 0, - { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - cns13AdobeCNS10Map2, 58 -}; - -static Gushort cns13AdobeCNS11Map2[140] = { - 0x0000, 0x0000, - 0x0000, 0x0000, - 0x0100, 0x0100, - 0x0200, 0x0200, - 0x0300, 0x0300, - 0x0400, 0x0400, - 0x0500, 0x0500, - 0x0600, 0x0600, - 0x0700, 0x0700, - 0x0800, 0x0800, - 0x0900, 0x0900, - 0x0a00, 0x0a00, - 0x0b00, 0x0b00, - 0x0c00, 0x0c00, - 0x0d00, 0x0d00, - 0x0e00, 0x0e00, - 0x0f00, 0x0f00, - 0x1000, 0x1000, - 0x1100, 0x1100, - 0x1200, 0x1200, - 0x1300, 0x1300, - 0x1400, 0x1400, - 0x1500, 0x1500, - 0x1600, 0x1600, - 0x1700, 0x1700, - 0x1800, 0x1800, - 0x1900, 0x1900, - 0x1a00, 0x1a00, - 0x1b00, 0x1b00, - 0x1c00, 0x1c00, - 0x1d00, 0x1d00, - 0x1e00, 0x1e00, - 0x1f00, 0x1f00, - 0x2000, 0x2000, - 0x2100, 0x2100, - 0x2200, 0x2200, - 0x2300, 0x2300, - 0x2400, 0x2400, - 0x2500, 0x2500, - 0x2600, 0x2600, - 0x2700, 0x2700, - 0x2800, 0x2800, - 0x2900, 0x2900, - 0x2a00, 0x2a00, - 0x2b00, 0x2b00, - 0x2c00, 0x2c00, - 0x2d00, 0x2d00, - 0x2e00, 0x2e00, - 0x2f00, 0x2f00, - 0x3000, 0x3000, - 0x3100, 0x3100, - 0x3200, 0x3200, - 0x3300, 0x3300, - 0x3400, 0x3400, - 0x3500, 0x3500, - 0x3600, 0x3600, - 0x3700, 0x3700, - 0x3800, 0x3800, - 0x3900, 0x3900, - 0x3a00, 0x3a00, - 0x3b00, 0x3b00, - 0x3c00, 0x3c00, - 0x3d00, 0x3d00, - 0x3e00, 0x3e00, - 0x3f00, 0x3f00, - 0x4000, 0x4000, - 0x4100, 0x4100, - 0x4200, 0x4200, - 0x4300, 0x4300, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 cns13AdobeCNS11Enc16 = { - 0, - { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - cns13AdobeCNS11Map2, 70 -}; - -static Gushort cns13AdobeCNS12Map2[142] = { - 0x0000, 0x0000, - 0x0000, 0x0000, - 0x0100, 0x0100, - 0x0200, 0x0200, - 0x0300, 0x0300, - 0x0400, 0x0400, - 0x0500, 0x0500, - 0x0600, 0x0600, - 0x0700, 0x0700, - 0x0800, 0x0800, - 0x0900, 0x0900, - 0x0a00, 0x0a00, - 0x0b00, 0x0b00, - 0x0c00, 0x0c00, - 0x0d00, 0x0d00, - 0x0e00, 0x0e00, - 0x0f00, 0x0f00, - 0x1000, 0x1000, - 0x1100, 0x1100, - 0x1200, 0x1200, - 0x1300, 0x1300, - 0x1400, 0x1400, - 0x1500, 0x1500, - 0x1600, 0x1600, - 0x1700, 0x1700, - 0x1800, 0x1800, - 0x1900, 0x1900, - 0x1a00, 0x1a00, - 0x1b00, 0x1b00, - 0x1c00, 0x1c00, - 0x1d00, 0x1d00, - 0x1e00, 0x1e00, - 0x1f00, 0x1f00, - 0x2000, 0x2000, - 0x2100, 0x2100, - 0x2200, 0x2200, - 0x2300, 0x2300, - 0x2400, 0x2400, - 0x2500, 0x2500, - 0x2600, 0x2600, - 0x2700, 0x2700, - 0x2800, 0x2800, - 0x2900, 0x2900, - 0x2a00, 0x2a00, - 0x2b00, 0x2b00, - 0x2c00, 0x2c00, - 0x2d00, 0x2d00, - 0x2e00, 0x2e00, - 0x2f00, 0x2f00, - 0x3000, 0x3000, - 0x3100, 0x3100, - 0x3200, 0x3200, - 0x3300, 0x3300, - 0x3400, 0x3400, - 0x3500, 0x3500, - 0x3600, 0x3600, - 0x3700, 0x3700, - 0x3800, 0x3800, - 0x3900, 0x3900, - 0x3a00, 0x3a00, - 0x3b00, 0x3b00, - 0x3c00, 0x3c00, - 0x3d00, 0x3d00, - 0x3e00, 0x3e00, - 0x3f00, 0x3f00, - 0x4000, 0x4000, - 0x4100, 0x4100, - 0x4200, 0x4200, - 0x4300, 0x4300, - 0x4400, 0x4400, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 cns13AdobeCNS12Enc16 = { - 0, - { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - cns13AdobeCNS12Map2, 71 -}; - -static Gushort cns13AdobeCNS13Map2[152] = { - 0x0000, 0x0000, - 0x0000, 0x0000, - 0x0100, 0x0100, - 0x0200, 0x0200, - 0x0300, 0x0300, - 0x0400, 0x0400, - 0x0500, 0x0500, - 0x0600, 0x0600, - 0x0700, 0x0700, - 0x0800, 0x0800, - 0x0900, 0x0900, - 0x0a00, 0x0a00, - 0x0b00, 0x0b00, - 0x0c00, 0x0c00, - 0x0d00, 0x0d00, - 0x0e00, 0x0e00, - 0x0f00, 0x0f00, - 0x1000, 0x1000, - 0x1100, 0x1100, - 0x1200, 0x1200, - 0x1300, 0x1300, - 0x1400, 0x1400, - 0x1500, 0x1500, - 0x1600, 0x1600, - 0x1700, 0x1700, - 0x1800, 0x1800, - 0x1900, 0x1900, - 0x1a00, 0x1a00, - 0x1b00, 0x1b00, - 0x1c00, 0x1c00, - 0x1d00, 0x1d00, - 0x1e00, 0x1e00, - 0x1f00, 0x1f00, - 0x2000, 0x2000, - 0x2100, 0x2100, - 0x2200, 0x2200, - 0x2300, 0x2300, - 0x2400, 0x2400, - 0x2500, 0x2500, - 0x2600, 0x2600, - 0x2700, 0x2700, - 0x2800, 0x2800, - 0x2900, 0x2900, - 0x2a00, 0x2a00, - 0x2b00, 0x2b00, - 0x2c00, 0x2c00, - 0x2d00, 0x2d00, - 0x2e00, 0x2e00, - 0x2f00, 0x2f00, - 0x3000, 0x3000, - 0x3100, 0x3100, - 0x3200, 0x3200, - 0x3300, 0x3300, - 0x3400, 0x3400, - 0x3500, 0x3500, - 0x3600, 0x3600, - 0x3700, 0x3700, - 0x3800, 0x3800, - 0x3900, 0x3900, - 0x3a00, 0x3a00, - 0x3b00, 0x3b00, - 0x3c00, 0x3c00, - 0x3d00, 0x3d00, - 0x3e00, 0x3e00, - 0x3f00, 0x3f00, - 0x4000, 0x4000, - 0x4100, 0x4100, - 0x4200, 0x4200, - 0x4300, 0x4300, - 0x4400, 0x4400, - 0x4500, 0x4500, - 0x4600, 0x4600, - 0x4700, 0x4700, - 0x4800, 0x4800, - 0x4900, 0x4900, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 cns13AdobeCNS13Enc16 = { - 0, - { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - cns13AdobeCNS13Map2, 76 -}; - -static Gushort cns13B5HMap2[490] = { - 0x0000, 0x0000, - 0xa140, 0x0063, - 0xa159, 0x35af, - 0xa15d, 0x0080, - 0xa1a1, 0x00a2, - 0xa1f6, 0x00f8, - 0xa1f7, 0x00f7, - 0xa1f8, 0x00f9, - 0xa240, 0x0100, - 0xa2a1, 0x013f, - 0xa340, 0x019d, - 0xa3a1, 0x01dc, - 0xa3bd, 0x01f7, - 0xa440, 0x0253, - 0xa4a1, 0x0292, - 0xa540, 0x02f0, - 0xa5a1, 0x032f, - 0xa640, 0x038d, - 0xa6a1, 0x03cc, - 0xa740, 0x042a, - 0xa7a1, 0x0469, - 0xa840, 0x04c7, - 0xa8a1, 0x0506, - 0xa940, 0x0564, - 0xa9a1, 0x05a3, - 0xaa40, 0x0601, - 0xaaa1, 0x0640, - 0xab40, 0x069e, - 0xaba1, 0x06dd, - 0xac40, 0x073b, - 0xaca1, 0x077a, - 0xacfe, 0x097f, - 0xad40, 0x07d7, - 0xada1, 0x0816, - 0xae40, 0x0874, - 0xaea1, 0x08b3, - 0xaf40, 0x0911, - 0xafa1, 0x0950, - 0xafd0, 0x0980, - 0xb040, 0x09af, - 0xb0a1, 0x09ee, - 0xb140, 0x0a4c, - 0xb1a1, 0x0a8b, - 0xb240, 0x0ae9, - 0xb2a1, 0x0b28, - 0xb340, 0x0b86, - 0xb3a1, 0x0bc5, - 0xb440, 0x0c23, - 0xb4a1, 0x0c62, - 0xb540, 0x0cc0, - 0xb5a1, 0x0cff, - 0xb640, 0x0d5d, - 0xb6a1, 0x0d9c, - 0xb740, 0x0dfa, - 0xb7a1, 0x0e39, - 0xb840, 0x0e97, - 0xb8a1, 0x0ed6, - 0xb940, 0x0f34, - 0xb9a1, 0x0f73, - 0xba40, 0x0fd1, - 0xbaa1, 0x1010, - 0xbb40, 0x106e, - 0xbba1, 0x10ad, - 0xbbc8, 0x10d5, - 0xbc40, 0x110c, - 0xbca1, 0x114b, - 0xbd40, 0x11a9, - 0xbda1, 0x11e8, - 0xbe40, 0x1246, - 0xbe52, 0x10d4, - 0xbe53, 0x1258, - 0xbea1, 0x1284, - 0xbf40, 0x12e2, - 0xbfa1, 0x1321, - 0xc040, 0x137f, - 0xc0a1, 0x13be, - 0xc140, 0x141c, - 0xc1a1, 0x145b, - 0xc1ab, 0x1466, - 0xc240, 0x14ba, - 0xc2a1, 0x14f9, - 0xc2cb, 0x1465, - 0xc2cc, 0x1523, - 0xc340, 0x1556, - 0xc361, 0x1578, - 0xc3a1, 0x1596, - 0xc3b9, 0x15af, - 0xc3ba, 0x15ae, - 0xc3bb, 0x15b0, - 0xc440, 0x15f4, - 0xc456, 0x1577, - 0xc457, 0x160a, - 0xc4a1, 0x1632, - 0xc540, 0x1690, - 0xc5a1, 0x16cf, - 0xc640, 0x172d, - 0xc940, 0x176c, - 0xc94a, 0x0274, - 0xc94b, 0x1776, - 0xc96c, 0x1798, - 0xc9a1, 0x17ab, - 0xc9be, 0x1797, - 0xc9bf, 0x17c8, - 0xc9ed, 0x17f7, - 0xca40, 0x1809, - 0xcaa1, 0x1848, - 0xcaf7, 0x17f6, - 0xcaf8, 0x189e, - 0xcb40, 0x18a5, - 0xcba1, 0x18e4, - 0xcc40, 0x1942, - 0xcca1, 0x1981, - 0xcd40, 0x19df, - 0xcda1, 0x1a1e, - 0xce40, 0x1a7c, - 0xcea1, 0x1abb, - 0xcf40, 0x1b19, - 0xcfa1, 0x1b58, - 0xd040, 0x1bb6, - 0xd0a1, 0x1bf5, - 0xd140, 0x1c53, - 0xd1a1, 0x1c92, - 0xd240, 0x1cf0, - 0xd2a1, 0x1d2f, - 0xd340, 0x1d8d, - 0xd3a1, 0x1dcc, - 0xd440, 0x1e2a, - 0xd4a1, 0x1e69, - 0xd540, 0x1ec7, - 0xd5a1, 0x1f06, - 0xd640, 0x1f64, - 0xd6a1, 0x1fa3, - 0xd6cc, 0x2254, - 0xd6cd, 0x1fcf, - 0xd740, 0x2001, - 0xd77a, 0x22b9, - 0xd77b, 0x203b, - 0xd7a1, 0x203f, - 0xd840, 0x209d, - 0xd8a1, 0x20dc, - 0xd940, 0x213a, - 0xd9a1, 0x2179, - 0xda40, 0x21d7, - 0xdaa1, 0x2216, - 0xdadf, 0x1fce, - 0xdae0, 0x2255, - 0xdb40, 0x2274, - 0xdba1, 0x22b3, - 0xdba7, 0x22ba, - 0xdc40, 0x2312, - 0xdca1, 0x2351, - 0xdd40, 0x23af, - 0xdda1, 0x23ee, - 0xddfc, 0x2381, - 0xddfd, 0x2449, - 0xde40, 0x244b, - 0xdea1, 0x248a, - 0xdf40, 0x24e8, - 0xdfa1, 0x2527, - 0xe040, 0x2585, - 0xe0a1, 0x25c4, - 0xe140, 0x2622, - 0xe1a1, 0x2661, - 0xe240, 0x26bf, - 0xe2a1, 0x26fe, - 0xe340, 0x275c, - 0xe3a1, 0x279b, - 0xe440, 0x27f9, - 0xe4a1, 0x2838, - 0xe540, 0x2896, - 0xe5a1, 0x28d5, - 0xe640, 0x2933, - 0xe6a1, 0x2972, - 0xe740, 0x29d0, - 0xe7a1, 0x2a0f, - 0xe840, 0x2a6d, - 0xe8a1, 0x2aac, - 0xe8a3, 0x2aaf, - 0xe940, 0x2b0b, - 0xe976, 0x2b42, - 0xe9a1, 0x2b4b, - 0xea40, 0x2ba9, - 0xeaa1, 0x2be8, - 0xeb40, 0x2c46, - 0xeb5b, 0x2c62, - 0xeba1, 0x2c86, - 0xebf1, 0x2aae, - 0xebf2, 0x2cd6, - 0xec40, 0x2ce3, - 0xeca1, 0x2d22, - 0xecde, 0x2b41, - 0xecdf, 0x2d5f, - 0xed40, 0x2d7f, - 0xeda1, 0x2dbe, - 0xedaa, 0x2dc8, - 0xee40, 0x2e1d, - 0xeea1, 0x2e5c, - 0xeeeb, 0x3014, - 0xeeec, 0x2ea6, - 0xef40, 0x2eb9, - 0xefa1, 0x2ef8, - 0xf040, 0x2f56, - 0xf056, 0x2dc7, - 0xf057, 0x2f6c, - 0xf0a1, 0x2f94, - 0xf0cb, 0x2c61, - 0xf0cc, 0x2fbe, - 0xf140, 0x2ff1, - 0xf163, 0x3015, - 0xf16b, 0x3160, - 0xf16c, 0x301d, - 0xf1a1, 0x3030, - 0xf240, 0x308e, - 0xf268, 0x31ef, - 0xf269, 0x30b6, - 0xf2a1, 0x30cc, - 0xf2c3, 0x30ef, - 0xf340, 0x312b, - 0xf375, 0x3161, - 0xf3a1, 0x316b, - 0xf440, 0x31c9, - 0xf466, 0x31f0, - 0xf4a1, 0x3209, - 0xf4b5, 0x30ee, - 0xf4b6, 0x321d, - 0xf4fd, 0x3265, - 0xf540, 0x3267, - 0xf5a1, 0x32a6, - 0xf640, 0x3304, - 0xf663, 0x3264, - 0xf664, 0x3327, - 0xf6a1, 0x3342, - 0xf740, 0x33a0, - 0xf7a1, 0x33df, - 0xf840, 0x343d, - 0xf8a1, 0x347c, - 0xf940, 0x34da, - 0xf977, 0x3512, - 0xf9a1, 0x351a, - 0xf9c4, 0x3511, - 0xf9c5, 0x353d, - 0xf9c6, 0x3549, - 0xf9c7, 0x353e, - 0xf9d2, 0x354a, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 cns13B5HEnc16 = { - 0, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x3550, 0x3551, 0x3552, 0x3553, 0x3554, 0x3555, 0x3556, 0x3557, - 0x3558, 0x3559, 0x355a, 0x355b, 0x355c, 0x355d, 0x355e, 0x355f, - 0x3560, 0x3561, 0x3562, 0x3563, 0x3564, 0x3565, 0x3566, 0x3567, - 0x3568, 0x3569, 0x356a, 0x356b, 0x356c, 0x356d, 0x356e, 0x356f, - 0x3570, 0x3571, 0x3572, 0x3573, 0x3574, 0x3575, 0x3576, 0x3577, - 0x3578, 0x3579, 0x357a, 0x357b, 0x357c, 0x357d, 0x357e, 0x357f, - 0x3580, 0x3581, 0x3582, 0x3583, 0x3584, 0x3585, 0x3586, 0x3587, - 0x3588, 0x3589, 0x358a, 0x358b, 0x358c, 0x358d, 0x358e, 0x358f, - 0x3590, 0x3591, 0x3592, 0x3593, 0x3594, 0x3595, 0x3596, 0x3597, - 0x3598, 0x3599, 0x359a, 0x359b, 0x359c, 0x359d, 0x359e, 0x359f, - 0x35a0, 0x35a1, 0x35a2, 0x35a3, 0x35a4, 0x35a5, 0x35a6, 0x35a7, - 0x35a8, 0x35a9, 0x35aa, 0x35ab, 0x35ac, 0x35ad, 0x35ae, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - cns13B5HMap2, 245 -}; - -static Gushort cns13B5VMap2[514] = { - 0x0000, 0x0000, - 0xa140, 0x0063, - 0xa159, 0x35af, - 0xa15d, 0x0080, - 0xa1a1, 0x00a2, - 0xa1f6, 0x00f8, - 0xa1f7, 0x00f7, - 0xa1f8, 0x00f9, - 0xa240, 0x0100, - 0xa2a1, 0x013f, - 0xa340, 0x019d, - 0xa3a1, 0x01dc, - 0xa3bd, 0x01f7, - 0xa440, 0x0253, - 0xa4a1, 0x0292, - 0xa540, 0x02f0, - 0xa5a1, 0x032f, - 0xa640, 0x038d, - 0xa6a1, 0x03cc, - 0xa740, 0x042a, - 0xa7a1, 0x0469, - 0xa840, 0x04c7, - 0xa8a1, 0x0506, - 0xa940, 0x0564, - 0xa9a1, 0x05a3, - 0xaa40, 0x0601, - 0xaaa1, 0x0640, - 0xab40, 0x069e, - 0xaba1, 0x06dd, - 0xac40, 0x073b, - 0xaca1, 0x077a, - 0xacfe, 0x097f, - 0xad40, 0x07d7, - 0xada1, 0x0816, - 0xae40, 0x0874, - 0xaea1, 0x08b3, - 0xaf40, 0x0911, - 0xafa1, 0x0950, - 0xafd0, 0x0980, - 0xb040, 0x09af, - 0xb0a1, 0x09ee, - 0xb140, 0x0a4c, - 0xb1a1, 0x0a8b, - 0xb240, 0x0ae9, - 0xb2a1, 0x0b28, - 0xb340, 0x0b86, - 0xb3a1, 0x0bc5, - 0xb440, 0x0c23, - 0xb4a1, 0x0c62, - 0xb540, 0x0cc0, - 0xb5a1, 0x0cff, - 0xb640, 0x0d5d, - 0xb6a1, 0x0d9c, - 0xb740, 0x0dfa, - 0xb7a1, 0x0e39, - 0xb840, 0x0e97, - 0xb8a1, 0x0ed6, - 0xb940, 0x0f34, - 0xb9a1, 0x0f73, - 0xba40, 0x0fd1, - 0xbaa1, 0x1010, - 0xbb40, 0x106e, - 0xbba1, 0x10ad, - 0xbbc8, 0x10d5, - 0xbc40, 0x110c, - 0xbca1, 0x114b, - 0xbd40, 0x11a9, - 0xbda1, 0x11e8, - 0xbe40, 0x1246, - 0xbe52, 0x10d4, - 0xbe53, 0x1258, - 0xbea1, 0x1284, - 0xbf40, 0x12e2, - 0xbfa1, 0x1321, - 0xc040, 0x137f, - 0xc0a1, 0x13be, - 0xc140, 0x141c, - 0xc1a1, 0x145b, - 0xc1ab, 0x1466, - 0xc240, 0x14ba, - 0xc2a1, 0x14f9, - 0xc2cb, 0x1465, - 0xc2cc, 0x1523, - 0xc340, 0x1556, - 0xc361, 0x1578, - 0xc3a1, 0x1596, - 0xc3b9, 0x15af, - 0xc3ba, 0x15ae, - 0xc3bb, 0x15b0, - 0xc440, 0x15f4, - 0xc456, 0x1577, - 0xc457, 0x160a, - 0xc4a1, 0x1632, - 0xc540, 0x1690, - 0xc5a1, 0x16cf, - 0xc640, 0x172d, - 0xc940, 0x176c, - 0xc94a, 0x0274, - 0xc94b, 0x1776, - 0xc96c, 0x1798, - 0xc9a1, 0x17ab, - 0xc9be, 0x1797, - 0xc9bf, 0x17c8, - 0xc9ed, 0x17f7, - 0xca40, 0x1809, - 0xcaa1, 0x1848, - 0xcaf7, 0x17f6, - 0xcaf8, 0x189e, - 0xcb40, 0x18a5, - 0xcba1, 0x18e4, - 0xcc40, 0x1942, - 0xcca1, 0x1981, - 0xcd40, 0x19df, - 0xcda1, 0x1a1e, - 0xce40, 0x1a7c, - 0xcea1, 0x1abb, - 0xcf40, 0x1b19, - 0xcfa1, 0x1b58, - 0xd040, 0x1bb6, - 0xd0a1, 0x1bf5, - 0xd140, 0x1c53, - 0xd1a1, 0x1c92, - 0xd240, 0x1cf0, - 0xd2a1, 0x1d2f, - 0xd340, 0x1d8d, - 0xd3a1, 0x1dcc, - 0xd440, 0x1e2a, - 0xd4a1, 0x1e69, - 0xd540, 0x1ec7, - 0xd5a1, 0x1f06, - 0xd640, 0x1f64, - 0xd6a1, 0x1fa3, - 0xd6cc, 0x2254, - 0xd6cd, 0x1fcf, - 0xd740, 0x2001, - 0xd77a, 0x22b9, - 0xd77b, 0x203b, - 0xd7a1, 0x203f, - 0xd840, 0x209d, - 0xd8a1, 0x20dc, - 0xd940, 0x213a, - 0xd9a1, 0x2179, - 0xda40, 0x21d7, - 0xdaa1, 0x2216, - 0xdadf, 0x1fce, - 0xdae0, 0x2255, - 0xdb40, 0x2274, - 0xdba1, 0x22b3, - 0xdba7, 0x22ba, - 0xdc40, 0x2312, - 0xdca1, 0x2351, - 0xdd40, 0x23af, - 0xdda1, 0x23ee, - 0xddfc, 0x2381, - 0xddfd, 0x2449, - 0xde40, 0x244b, - 0xdea1, 0x248a, - 0xdf40, 0x24e8, - 0xdfa1, 0x2527, - 0xe040, 0x2585, - 0xe0a1, 0x25c4, - 0xe140, 0x2622, - 0xe1a1, 0x2661, - 0xe240, 0x26bf, - 0xe2a1, 0x26fe, - 0xe340, 0x275c, - 0xe3a1, 0x279b, - 0xe440, 0x27f9, - 0xe4a1, 0x2838, - 0xe540, 0x2896, - 0xe5a1, 0x28d5, - 0xe640, 0x2933, - 0xe6a1, 0x2972, - 0xe740, 0x29d0, - 0xe7a1, 0x2a0f, - 0xe840, 0x2a6d, - 0xe8a1, 0x2aac, - 0xe8a3, 0x2aaf, - 0xe940, 0x2b0b, - 0xe976, 0x2b42, - 0xe9a1, 0x2b4b, - 0xea40, 0x2ba9, - 0xeaa1, 0x2be8, - 0xeb40, 0x2c46, - 0xeb5b, 0x2c62, - 0xeba1, 0x2c86, - 0xebf1, 0x2aae, - 0xebf2, 0x2cd6, - 0xec40, 0x2ce3, - 0xeca1, 0x2d22, - 0xecde, 0x2b41, - 0xecdf, 0x2d5f, - 0xed40, 0x2d7f, - 0xeda1, 0x2dbe, - 0xedaa, 0x2dc8, - 0xee40, 0x2e1d, - 0xeea1, 0x2e5c, - 0xeeeb, 0x3014, - 0xeeec, 0x2ea6, - 0xef40, 0x2eb9, - 0xefa1, 0x2ef8, - 0xf040, 0x2f56, - 0xf056, 0x2dc7, - 0xf057, 0x2f6c, - 0xf0a1, 0x2f94, - 0xf0cb, 0x2c61, - 0xf0cc, 0x2fbe, - 0xf140, 0x2ff1, - 0xf163, 0x3015, - 0xf16b, 0x3160, - 0xf16c, 0x301d, - 0xf1a1, 0x3030, - 0xf240, 0x308e, - 0xf268, 0x31ef, - 0xf269, 0x30b6, - 0xf2a1, 0x30cc, - 0xf2c3, 0x30ef, - 0xf340, 0x312b, - 0xf375, 0x3161, - 0xf3a1, 0x316b, - 0xf440, 0x31c9, - 0xf466, 0x31f0, - 0xf4a1, 0x3209, - 0xf4b5, 0x30ee, - 0xf4b6, 0x321d, - 0xf4fd, 0x3265, - 0xf540, 0x3267, - 0xf5a1, 0x32a6, - 0xf640, 0x3304, - 0xf663, 0x3264, - 0xf664, 0x3327, - 0xf6a1, 0x3342, - 0xf740, 0x33a0, - 0xf7a1, 0x33df, - 0xf840, 0x343d, - 0xf8a1, 0x347c, - 0xf940, 0x34da, - 0xf977, 0x3512, - 0xf9a1, 0x351a, - 0xf9c4, 0x3511, - 0xf9c5, 0x353d, - 0xf9c6, 0x3549, - 0xf9c7, 0x353e, - 0xf9d2, 0x354a, - 0xa14b, 0x354e, - 0xa15a, 0x35af, - 0xa15c, 0x35b1, - 0xa15d, 0x0082, - 0xa161, 0x0086, - 0xa165, 0x008a, - 0xa169, 0x008e, - 0xa16d, 0x0092, - 0xa171, 0x0096, - 0xa175, 0x009a, - 0xa179, 0x009e, - 0xa1e3, 0x354f, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 cns13B5VEnc16 = { - 1, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x3550, 0x3551, 0x3552, 0x3553, 0x3554, 0x3555, 0x3556, 0x3557, - 0x3558, 0x3559, 0x355a, 0x355b, 0x355c, 0x355d, 0x355e, 0x355f, - 0x3560, 0x3561, 0x3562, 0x3563, 0x3564, 0x3565, 0x3566, 0x3567, - 0x3568, 0x3569, 0x356a, 0x356b, 0x356c, 0x356d, 0x356e, 0x356f, - 0x3570, 0x3571, 0x3572, 0x3573, 0x3574, 0x3575, 0x3576, 0x3577, - 0x3578, 0x3579, 0x357a, 0x357b, 0x357c, 0x357d, 0x357e, 0x357f, - 0x3580, 0x3581, 0x3582, 0x3583, 0x3584, 0x3585, 0x3586, 0x3587, - 0x3588, 0x3589, 0x358a, 0x358b, 0x358c, 0x358d, 0x358e, 0x358f, - 0x3590, 0x3591, 0x3592, 0x3593, 0x3594, 0x3595, 0x3596, 0x3597, - 0x3598, 0x3599, 0x359a, 0x359b, 0x359c, 0x359d, 0x359e, 0x359f, - 0x35a0, 0x35a1, 0x35a2, 0x35a3, 0x35a4, 0x35a5, 0x35a6, 0x35a7, - 0x35a8, 0x35a9, 0x35aa, 0x35ab, 0x35ac, 0x35ad, 0x35ae, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - cns13B5VMap2, 257 -}; - -static Gushort cns13B5pcHMap2[492] = { - 0x0000, 0x0000, - 0xa140, 0x0063, - 0xa159, 0x35af, - 0xa15d, 0x0080, - 0xa1a1, 0x00a2, - 0xa1f6, 0x00f8, - 0xa1f7, 0x00f7, - 0xa1f8, 0x00f9, - 0xa240, 0x0100, - 0xa2a1, 0x013f, - 0xa340, 0x019d, - 0xa3a1, 0x01dc, - 0xa3bd, 0x01f7, - 0xa3c0, 0x0232, - 0xa440, 0x0253, - 0xa4a1, 0x0292, - 0xa540, 0x02f0, - 0xa5a1, 0x032f, - 0xa640, 0x038d, - 0xa6a1, 0x03cc, - 0xa740, 0x042a, - 0xa7a1, 0x0469, - 0xa840, 0x04c7, - 0xa8a1, 0x0506, - 0xa940, 0x0564, - 0xa9a1, 0x05a3, - 0xaa40, 0x0601, - 0xaaa1, 0x0640, - 0xab40, 0x069e, - 0xaba1, 0x06dd, - 0xac40, 0x073b, - 0xaca1, 0x077a, - 0xacfe, 0x097f, - 0xad40, 0x07d7, - 0xada1, 0x0816, - 0xae40, 0x0874, - 0xaea1, 0x08b3, - 0xaf40, 0x0911, - 0xafa1, 0x0950, - 0xafd0, 0x0980, - 0xb040, 0x09af, - 0xb0a1, 0x09ee, - 0xb140, 0x0a4c, - 0xb1a1, 0x0a8b, - 0xb240, 0x0ae9, - 0xb2a1, 0x0b28, - 0xb340, 0x0b86, - 0xb3a1, 0x0bc5, - 0xb440, 0x0c23, - 0xb4a1, 0x0c62, - 0xb540, 0x0cc0, - 0xb5a1, 0x0cff, - 0xb640, 0x0d5d, - 0xb6a1, 0x0d9c, - 0xb740, 0x0dfa, - 0xb7a1, 0x0e39, - 0xb840, 0x0e97, - 0xb8a1, 0x0ed6, - 0xb940, 0x0f34, - 0xb9a1, 0x0f73, - 0xba40, 0x0fd1, - 0xbaa1, 0x1010, - 0xbb40, 0x106e, - 0xbba1, 0x10ad, - 0xbbc8, 0x10d5, - 0xbc40, 0x110c, - 0xbca1, 0x114b, - 0xbd40, 0x11a9, - 0xbda1, 0x11e8, - 0xbe40, 0x1246, - 0xbe52, 0x10d4, - 0xbe53, 0x1258, - 0xbea1, 0x1284, - 0xbf40, 0x12e2, - 0xbfa1, 0x1321, - 0xc040, 0x137f, - 0xc0a1, 0x13be, - 0xc140, 0x141c, - 0xc1a1, 0x145b, - 0xc1ab, 0x1466, - 0xc240, 0x14ba, - 0xc2a1, 0x14f9, - 0xc2cb, 0x1465, - 0xc2cc, 0x1523, - 0xc340, 0x1556, - 0xc361, 0x1578, - 0xc3a1, 0x1596, - 0xc3b9, 0x15af, - 0xc3ba, 0x15ae, - 0xc3bb, 0x15b0, - 0xc440, 0x15f4, - 0xc456, 0x1577, - 0xc457, 0x160a, - 0xc4a1, 0x1632, - 0xc540, 0x1690, - 0xc5a1, 0x16cf, - 0xc640, 0x172d, - 0xc940, 0x176c, - 0xc94a, 0x0274, - 0xc94b, 0x1776, - 0xc96c, 0x1798, - 0xc9a1, 0x17ab, - 0xc9be, 0x1797, - 0xc9bf, 0x17c8, - 0xc9ed, 0x17f7, - 0xca40, 0x1809, - 0xcaa1, 0x1848, - 0xcaf7, 0x17f6, - 0xcaf8, 0x189e, - 0xcb40, 0x18a5, - 0xcba1, 0x18e4, - 0xcc40, 0x1942, - 0xcca1, 0x1981, - 0xcd40, 0x19df, - 0xcda1, 0x1a1e, - 0xce40, 0x1a7c, - 0xcea1, 0x1abb, - 0xcf40, 0x1b19, - 0xcfa1, 0x1b58, - 0xd040, 0x1bb6, - 0xd0a1, 0x1bf5, - 0xd140, 0x1c53, - 0xd1a1, 0x1c92, - 0xd240, 0x1cf0, - 0xd2a1, 0x1d2f, - 0xd340, 0x1d8d, - 0xd3a1, 0x1dcc, - 0xd440, 0x1e2a, - 0xd4a1, 0x1e69, - 0xd540, 0x1ec7, - 0xd5a1, 0x1f06, - 0xd640, 0x1f64, - 0xd6a1, 0x1fa3, - 0xd6cc, 0x2254, - 0xd6cd, 0x1fcf, - 0xd740, 0x2001, - 0xd77a, 0x22b9, - 0xd77b, 0x203b, - 0xd7a1, 0x203f, - 0xd840, 0x209d, - 0xd8a1, 0x20dc, - 0xd940, 0x213a, - 0xd9a1, 0x2179, - 0xda40, 0x21d7, - 0xdaa1, 0x2216, - 0xdadf, 0x1fce, - 0xdae0, 0x2255, - 0xdb40, 0x2274, - 0xdba1, 0x22b3, - 0xdba7, 0x22ba, - 0xdc40, 0x2312, - 0xdca1, 0x2351, - 0xdd40, 0x23af, - 0xdda1, 0x23ee, - 0xddfc, 0x2381, - 0xddfd, 0x2449, - 0xde40, 0x244b, - 0xdea1, 0x248a, - 0xdf40, 0x24e8, - 0xdfa1, 0x2527, - 0xe040, 0x2585, - 0xe0a1, 0x25c4, - 0xe140, 0x2622, - 0xe1a1, 0x2661, - 0xe240, 0x26bf, - 0xe2a1, 0x26fe, - 0xe340, 0x275c, - 0xe3a1, 0x279b, - 0xe440, 0x27f9, - 0xe4a1, 0x2838, - 0xe540, 0x2896, - 0xe5a1, 0x28d5, - 0xe640, 0x2933, - 0xe6a1, 0x2972, - 0xe740, 0x29d0, - 0xe7a1, 0x2a0f, - 0xe840, 0x2a6d, - 0xe8a1, 0x2aac, - 0xe8a3, 0x2aaf, - 0xe940, 0x2b0b, - 0xe976, 0x2b42, - 0xe9a1, 0x2b4b, - 0xea40, 0x2ba9, - 0xeaa1, 0x2be8, - 0xeb40, 0x2c46, - 0xeb5b, 0x2c62, - 0xeba1, 0x2c86, - 0xebf1, 0x2aae, - 0xebf2, 0x2cd6, - 0xec40, 0x2ce3, - 0xeca1, 0x2d22, - 0xecde, 0x2b41, - 0xecdf, 0x2d5f, - 0xed40, 0x2d7f, - 0xeda1, 0x2dbe, - 0xedaa, 0x2dc8, - 0xee40, 0x2e1d, - 0xeea1, 0x2e5c, - 0xeeeb, 0x3014, - 0xeeec, 0x2ea6, - 0xef40, 0x2eb9, - 0xefa1, 0x2ef8, - 0xf040, 0x2f56, - 0xf056, 0x2dc7, - 0xf057, 0x2f6c, - 0xf0a1, 0x2f94, - 0xf0cb, 0x2c61, - 0xf0cc, 0x2fbe, - 0xf140, 0x2ff1, - 0xf163, 0x3015, - 0xf16b, 0x3160, - 0xf16c, 0x301d, - 0xf1a1, 0x3030, - 0xf240, 0x308e, - 0xf268, 0x31ef, - 0xf269, 0x30b6, - 0xf2a1, 0x30cc, - 0xf2c3, 0x30ef, - 0xf340, 0x312b, - 0xf375, 0x3161, - 0xf3a1, 0x316b, - 0xf440, 0x31c9, - 0xf466, 0x31f0, - 0xf4a1, 0x3209, - 0xf4b5, 0x30ee, - 0xf4b6, 0x321d, - 0xf4fd, 0x3265, - 0xf540, 0x3267, - 0xf5a1, 0x32a6, - 0xf640, 0x3304, - 0xf663, 0x3264, - 0xf664, 0x3327, - 0xf6a1, 0x3342, - 0xf740, 0x33a0, - 0xf7a1, 0x33df, - 0xf840, 0x343d, - 0xf8a1, 0x347c, - 0xf940, 0x34da, - 0xf977, 0x3512, - 0xf9a1, 0x351a, - 0xf9c4, 0x3511, - 0xf9c5, 0x353d, - 0xf9c6, 0x3549, - 0xf9c7, 0x353e, - 0xf9d2, 0x354a, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 cns13B5pcHEnc16 = { - 0, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, - 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, - 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, - 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, - 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, - 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, - 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, - 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, - 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, - 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0000, - 0x003d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0060, 0x0061, 0x0062 }, - cns13B5pcHMap2, 246 -}; - -static Gushort cns13B5pcVMap2[516] = { - 0x0000, 0x0000, - 0xa140, 0x0063, - 0xa159, 0x35af, - 0xa15d, 0x0080, - 0xa1a1, 0x00a2, - 0xa1f6, 0x00f8, - 0xa1f7, 0x00f7, - 0xa1f8, 0x00f9, - 0xa240, 0x0100, - 0xa2a1, 0x013f, - 0xa340, 0x019d, - 0xa3a1, 0x01dc, - 0xa3bd, 0x01f7, - 0xa3c0, 0x0232, - 0xa440, 0x0253, - 0xa4a1, 0x0292, - 0xa540, 0x02f0, - 0xa5a1, 0x032f, - 0xa640, 0x038d, - 0xa6a1, 0x03cc, - 0xa740, 0x042a, - 0xa7a1, 0x0469, - 0xa840, 0x04c7, - 0xa8a1, 0x0506, - 0xa940, 0x0564, - 0xa9a1, 0x05a3, - 0xaa40, 0x0601, - 0xaaa1, 0x0640, - 0xab40, 0x069e, - 0xaba1, 0x06dd, - 0xac40, 0x073b, - 0xaca1, 0x077a, - 0xacfe, 0x097f, - 0xad40, 0x07d7, - 0xada1, 0x0816, - 0xae40, 0x0874, - 0xaea1, 0x08b3, - 0xaf40, 0x0911, - 0xafa1, 0x0950, - 0xafd0, 0x0980, - 0xb040, 0x09af, - 0xb0a1, 0x09ee, - 0xb140, 0x0a4c, - 0xb1a1, 0x0a8b, - 0xb240, 0x0ae9, - 0xb2a1, 0x0b28, - 0xb340, 0x0b86, - 0xb3a1, 0x0bc5, - 0xb440, 0x0c23, - 0xb4a1, 0x0c62, - 0xb540, 0x0cc0, - 0xb5a1, 0x0cff, - 0xb640, 0x0d5d, - 0xb6a1, 0x0d9c, - 0xb740, 0x0dfa, - 0xb7a1, 0x0e39, - 0xb840, 0x0e97, - 0xb8a1, 0x0ed6, - 0xb940, 0x0f34, - 0xb9a1, 0x0f73, - 0xba40, 0x0fd1, - 0xbaa1, 0x1010, - 0xbb40, 0x106e, - 0xbba1, 0x10ad, - 0xbbc8, 0x10d5, - 0xbc40, 0x110c, - 0xbca1, 0x114b, - 0xbd40, 0x11a9, - 0xbda1, 0x11e8, - 0xbe40, 0x1246, - 0xbe52, 0x10d4, - 0xbe53, 0x1258, - 0xbea1, 0x1284, - 0xbf40, 0x12e2, - 0xbfa1, 0x1321, - 0xc040, 0x137f, - 0xc0a1, 0x13be, - 0xc140, 0x141c, - 0xc1a1, 0x145b, - 0xc1ab, 0x1466, - 0xc240, 0x14ba, - 0xc2a1, 0x14f9, - 0xc2cb, 0x1465, - 0xc2cc, 0x1523, - 0xc340, 0x1556, - 0xc361, 0x1578, - 0xc3a1, 0x1596, - 0xc3b9, 0x15af, - 0xc3ba, 0x15ae, - 0xc3bb, 0x15b0, - 0xc440, 0x15f4, - 0xc456, 0x1577, - 0xc457, 0x160a, - 0xc4a1, 0x1632, - 0xc540, 0x1690, - 0xc5a1, 0x16cf, - 0xc640, 0x172d, - 0xc940, 0x176c, - 0xc94a, 0x0274, - 0xc94b, 0x1776, - 0xc96c, 0x1798, - 0xc9a1, 0x17ab, - 0xc9be, 0x1797, - 0xc9bf, 0x17c8, - 0xc9ed, 0x17f7, - 0xca40, 0x1809, - 0xcaa1, 0x1848, - 0xcaf7, 0x17f6, - 0xcaf8, 0x189e, - 0xcb40, 0x18a5, - 0xcba1, 0x18e4, - 0xcc40, 0x1942, - 0xcca1, 0x1981, - 0xcd40, 0x19df, - 0xcda1, 0x1a1e, - 0xce40, 0x1a7c, - 0xcea1, 0x1abb, - 0xcf40, 0x1b19, - 0xcfa1, 0x1b58, - 0xd040, 0x1bb6, - 0xd0a1, 0x1bf5, - 0xd140, 0x1c53, - 0xd1a1, 0x1c92, - 0xd240, 0x1cf0, - 0xd2a1, 0x1d2f, - 0xd340, 0x1d8d, - 0xd3a1, 0x1dcc, - 0xd440, 0x1e2a, - 0xd4a1, 0x1e69, - 0xd540, 0x1ec7, - 0xd5a1, 0x1f06, - 0xd640, 0x1f64, - 0xd6a1, 0x1fa3, - 0xd6cc, 0x2254, - 0xd6cd, 0x1fcf, - 0xd740, 0x2001, - 0xd77a, 0x22b9, - 0xd77b, 0x203b, - 0xd7a1, 0x203f, - 0xd840, 0x209d, - 0xd8a1, 0x20dc, - 0xd940, 0x213a, - 0xd9a1, 0x2179, - 0xda40, 0x21d7, - 0xdaa1, 0x2216, - 0xdadf, 0x1fce, - 0xdae0, 0x2255, - 0xdb40, 0x2274, - 0xdba1, 0x22b3, - 0xdba7, 0x22ba, - 0xdc40, 0x2312, - 0xdca1, 0x2351, - 0xdd40, 0x23af, - 0xdda1, 0x23ee, - 0xddfc, 0x2381, - 0xddfd, 0x2449, - 0xde40, 0x244b, - 0xdea1, 0x248a, - 0xdf40, 0x24e8, - 0xdfa1, 0x2527, - 0xe040, 0x2585, - 0xe0a1, 0x25c4, - 0xe140, 0x2622, - 0xe1a1, 0x2661, - 0xe240, 0x26bf, - 0xe2a1, 0x26fe, - 0xe340, 0x275c, - 0xe3a1, 0x279b, - 0xe440, 0x27f9, - 0xe4a1, 0x2838, - 0xe540, 0x2896, - 0xe5a1, 0x28d5, - 0xe640, 0x2933, - 0xe6a1, 0x2972, - 0xe740, 0x29d0, - 0xe7a1, 0x2a0f, - 0xe840, 0x2a6d, - 0xe8a1, 0x2aac, - 0xe8a3, 0x2aaf, - 0xe940, 0x2b0b, - 0xe976, 0x2b42, - 0xe9a1, 0x2b4b, - 0xea40, 0x2ba9, - 0xeaa1, 0x2be8, - 0xeb40, 0x2c46, - 0xeb5b, 0x2c62, - 0xeba1, 0x2c86, - 0xebf1, 0x2aae, - 0xebf2, 0x2cd6, - 0xec40, 0x2ce3, - 0xeca1, 0x2d22, - 0xecde, 0x2b41, - 0xecdf, 0x2d5f, - 0xed40, 0x2d7f, - 0xeda1, 0x2dbe, - 0xedaa, 0x2dc8, - 0xee40, 0x2e1d, - 0xeea1, 0x2e5c, - 0xeeeb, 0x3014, - 0xeeec, 0x2ea6, - 0xef40, 0x2eb9, - 0xefa1, 0x2ef8, - 0xf040, 0x2f56, - 0xf056, 0x2dc7, - 0xf057, 0x2f6c, - 0xf0a1, 0x2f94, - 0xf0cb, 0x2c61, - 0xf0cc, 0x2fbe, - 0xf140, 0x2ff1, - 0xf163, 0x3015, - 0xf16b, 0x3160, - 0xf16c, 0x301d, - 0xf1a1, 0x3030, - 0xf240, 0x308e, - 0xf268, 0x31ef, - 0xf269, 0x30b6, - 0xf2a1, 0x30cc, - 0xf2c3, 0x30ef, - 0xf340, 0x312b, - 0xf375, 0x3161, - 0xf3a1, 0x316b, - 0xf440, 0x31c9, - 0xf466, 0x31f0, - 0xf4a1, 0x3209, - 0xf4b5, 0x30ee, - 0xf4b6, 0x321d, - 0xf4fd, 0x3265, - 0xf540, 0x3267, - 0xf5a1, 0x32a6, - 0xf640, 0x3304, - 0xf663, 0x3264, - 0xf664, 0x3327, - 0xf6a1, 0x3342, - 0xf740, 0x33a0, - 0xf7a1, 0x33df, - 0xf840, 0x343d, - 0xf8a1, 0x347c, - 0xf940, 0x34da, - 0xf977, 0x3512, - 0xf9a1, 0x351a, - 0xf9c4, 0x3511, - 0xf9c5, 0x353d, - 0xf9c6, 0x3549, - 0xf9c7, 0x353e, - 0xf9d2, 0x354a, - 0xa14b, 0x354e, - 0xa15a, 0x35af, - 0xa15c, 0x35b1, - 0xa15d, 0x0082, - 0xa161, 0x0086, - 0xa165, 0x008a, - 0xa169, 0x008e, - 0xa16d, 0x0092, - 0xa171, 0x0096, - 0xa175, 0x009a, - 0xa179, 0x009e, - 0xa1e3, 0x354f, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 cns13B5pcVEnc16 = { - 1, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, - 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, - 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, - 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, - 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, - 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, - 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, - 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, - 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, - 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0000, - 0x003d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0060, 0x0061, 0x0062 }, - cns13B5pcVMap2, 258 -}; - -static Gushort cns13CNS1HMap2[316] = { - 0x0000, 0x0000, - 0x2121, 0x0063, - 0x2221, 0x00c1, - 0x2321, 0x011f, - 0x2421, 0x014d, - 0x2521, 0x01ab, - 0x256e, 0x01f7, - 0x2621, 0x01fa, - 0x2721, 0x0253, - 0x2722, 0x0218, - 0x2725, 0x0254, - 0x2726, 0x021b, - 0x2727, 0x025a, - 0x2728, 0x021c, - 0x2729, 0x025b, - 0x272d, 0x021d, - 0x2730, 0x025f, - 0x2731, 0x176e, - 0x2732, 0x0260, - 0x2733, 0x0262, - 0x2734, 0x0220, - 0x2735, 0x0263, - 0x2736, 0x176f, - 0x2737, 0x0221, - 0x2738, 0x0264, - 0x273a, 0x0222, - 0x273b, 0x1770, - 0x273c, 0x0223, - 0x273d, 0x0266, - 0x273e, 0x0279, - 0x273f, 0x1775, - 0x2740, 0x027a, - 0x2742, 0x0224, - 0x2743, 0x027c, - 0x2747, 0x0225, - 0x2748, 0x0282, - 0x274c, 0x1776, - 0x274d, 0x0286, - 0x274e, 0x0226, - 0x274f, 0x0288, - 0x2751, 0x028c, - 0x2753, 0x0227, - 0x2756, 0x028e, - 0x2759, 0x022a, - 0x275b, 0x1777, - 0x275c, 0x02d0, - 0x2760, 0x02d5, - 0x2761, 0x022c, - 0x2762, 0x02d6, - 0x2766, 0x022d, - 0x2767, 0x02da, - 0x276e, 0x178a, - 0x276f, 0x02e1, - 0x2773, 0x178c, - 0x2774, 0x02e5, - 0x2779, 0x178d, - 0x277a, 0x02ea, - 0x277e, 0x0356, - 0x2821, 0x0357, - 0x2827, 0x035e, - 0x2828, 0x0362, - 0x2829, 0x022e, - 0x282b, 0x0363, - 0x2833, 0x17b2, - 0x2834, 0x036b, - 0x2837, 0x03f6, - 0x283b, 0x1812, - 0x283c, 0x03fa, - 0x283f, 0x03fe, - 0x2844, 0x0405, - 0x284d, 0x1813, - 0x284e, 0x1818, - 0x284f, 0x040f, - 0x2853, 0x1819, - 0x2854, 0x0508, - 0x285a, 0x18e7, - 0x285b, 0x050e, - 0x2863, 0x0230, - 0x2864, 0x051b, - 0x2865, 0x0520, - 0x2868, 0x0696, - 0x286c, 0x0231, - 0x286d, 0x069f, - 0x2871, 0x0826, - 0x287c, 0x09f5, - 0x2921, 0x1e33, - 0x2922, 0x09f8, - 0x2923, 0x1e34, - 0x2924, 0x09f9, - 0x2926, 0x0be1, - 0x292c, 0x0dbb, - 0x292f, 0x2360, - 0x2930, 0x2612, - 0x2931, 0x0f7b, - 0x2934, 0x1100, - 0x2936, 0x1289, - 0x2937, 0x13b2, - 0x2939, 0x2f0d, - 0x4221, 0x0232, - 0x4421, 0x0253, - 0x4521, 0x02b1, - 0x4621, 0x030f, - 0x4721, 0x036d, - 0x4821, 0x03cb, - 0x4921, 0x0429, - 0x4a21, 0x0487, - 0x4b21, 0x04e5, - 0x4c21, 0x0543, - 0x4d21, 0x05a1, - 0x4e21, 0x05ff, - 0x4f21, 0x065d, - 0x5021, 0x06bb, - 0x5121, 0x0719, - 0x5221, 0x0777, - 0x5321, 0x07d5, - 0x5421, 0x0833, - 0x5521, 0x0891, - 0x5621, 0x08ef, - 0x5721, 0x094d, - 0x5821, 0x09ab, - 0x5921, 0x0a09, - 0x5a21, 0x0a67, - 0x5b21, 0x0ac5, - 0x5c21, 0x0b23, - 0x5d21, 0x0b81, - 0x5e21, 0x0bdf, - 0x5f21, 0x0c3d, - 0x6021, 0x0c9b, - 0x6121, 0x0cf9, - 0x6221, 0x0d57, - 0x6321, 0x0db5, - 0x6421, 0x0e13, - 0x6521, 0x0e71, - 0x6621, 0x0ecf, - 0x6721, 0x0f2d, - 0x6821, 0x0f8b, - 0x6921, 0x0fe9, - 0x6a21, 0x1047, - 0x6b21, 0x10a5, - 0x6c21, 0x1103, - 0x6d21, 0x1161, - 0x6e21, 0x11bf, - 0x6f21, 0x121d, - 0x7021, 0x127b, - 0x7121, 0x12d9, - 0x7221, 0x1337, - 0x7321, 0x1395, - 0x7421, 0x13f3, - 0x7521, 0x1451, - 0x7621, 0x14af, - 0x7721, 0x150d, - 0x7821, 0x156b, - 0x7921, 0x15c9, - 0x7a21, 0x1627, - 0x7b21, 0x1685, - 0x7c21, 0x16e3, - 0x7d21, 0x1741, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 cns13CNS1HEnc16 = { - 0, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - cns13CNS1HMap2, 158 -}; - -static Gushort cns13CNS1VMap2[340] = { - 0x0000, 0x0000, - 0x2121, 0x0063, - 0x2221, 0x00c1, - 0x2321, 0x011f, - 0x2421, 0x014d, - 0x2521, 0x01ab, - 0x256e, 0x01f7, - 0x2621, 0x01fa, - 0x2721, 0x0253, - 0x2722, 0x0218, - 0x2725, 0x0254, - 0x2726, 0x021b, - 0x2727, 0x025a, - 0x2728, 0x021c, - 0x2729, 0x025b, - 0x272d, 0x021d, - 0x2730, 0x025f, - 0x2731, 0x176e, - 0x2732, 0x0260, - 0x2733, 0x0262, - 0x2734, 0x0220, - 0x2735, 0x0263, - 0x2736, 0x176f, - 0x2737, 0x0221, - 0x2738, 0x0264, - 0x273a, 0x0222, - 0x273b, 0x1770, - 0x273c, 0x0223, - 0x273d, 0x0266, - 0x273e, 0x0279, - 0x273f, 0x1775, - 0x2740, 0x027a, - 0x2742, 0x0224, - 0x2743, 0x027c, - 0x2747, 0x0225, - 0x2748, 0x0282, - 0x274c, 0x1776, - 0x274d, 0x0286, - 0x274e, 0x0226, - 0x274f, 0x0288, - 0x2751, 0x028c, - 0x2753, 0x0227, - 0x2756, 0x028e, - 0x2759, 0x022a, - 0x275b, 0x1777, - 0x275c, 0x02d0, - 0x2760, 0x02d5, - 0x2761, 0x022c, - 0x2762, 0x02d6, - 0x2766, 0x022d, - 0x2767, 0x02da, - 0x276e, 0x178a, - 0x276f, 0x02e1, - 0x2773, 0x178c, - 0x2774, 0x02e5, - 0x2779, 0x178d, - 0x277a, 0x02ea, - 0x277e, 0x0356, - 0x2821, 0x0357, - 0x2827, 0x035e, - 0x2828, 0x0362, - 0x2829, 0x022e, - 0x282b, 0x0363, - 0x2833, 0x17b2, - 0x2834, 0x036b, - 0x2837, 0x03f6, - 0x283b, 0x1812, - 0x283c, 0x03fa, - 0x283f, 0x03fe, - 0x2844, 0x0405, - 0x284d, 0x1813, - 0x284e, 0x1818, - 0x284f, 0x040f, - 0x2853, 0x1819, - 0x2854, 0x0508, - 0x285a, 0x18e7, - 0x285b, 0x050e, - 0x2863, 0x0230, - 0x2864, 0x051b, - 0x2865, 0x0520, - 0x2868, 0x0696, - 0x286c, 0x0231, - 0x286d, 0x069f, - 0x2871, 0x0826, - 0x287c, 0x09f5, - 0x2921, 0x1e33, - 0x2922, 0x09f8, - 0x2923, 0x1e34, - 0x2924, 0x09f9, - 0x2926, 0x0be1, - 0x292c, 0x0dbb, - 0x292f, 0x2360, - 0x2930, 0x2612, - 0x2931, 0x0f7b, - 0x2934, 0x1100, - 0x2936, 0x1289, - 0x2937, 0x13b2, - 0x2939, 0x2f0d, - 0x4221, 0x0232, - 0x4421, 0x0253, - 0x4521, 0x02b1, - 0x4621, 0x030f, - 0x4721, 0x036d, - 0x4821, 0x03cb, - 0x4921, 0x0429, - 0x4a21, 0x0487, - 0x4b21, 0x04e5, - 0x4c21, 0x0543, - 0x4d21, 0x05a1, - 0x4e21, 0x05ff, - 0x4f21, 0x065d, - 0x5021, 0x06bb, - 0x5121, 0x0719, - 0x5221, 0x0777, - 0x5321, 0x07d5, - 0x5421, 0x0833, - 0x5521, 0x0891, - 0x5621, 0x08ef, - 0x5721, 0x094d, - 0x5821, 0x09ab, - 0x5921, 0x0a09, - 0x5a21, 0x0a67, - 0x5b21, 0x0ac5, - 0x5c21, 0x0b23, - 0x5d21, 0x0b81, - 0x5e21, 0x0bdf, - 0x5f21, 0x0c3d, - 0x6021, 0x0c9b, - 0x6121, 0x0cf9, - 0x6221, 0x0d57, - 0x6321, 0x0db5, - 0x6421, 0x0e13, - 0x6521, 0x0e71, - 0x6621, 0x0ecf, - 0x6721, 0x0f2d, - 0x6821, 0x0f8b, - 0x6921, 0x0fe9, - 0x6a21, 0x1047, - 0x6b21, 0x10a5, - 0x6c21, 0x1103, - 0x6d21, 0x1161, - 0x6e21, 0x11bf, - 0x6f21, 0x121d, - 0x7021, 0x127b, - 0x7121, 0x12d9, - 0x7221, 0x1337, - 0x7321, 0x1395, - 0x7421, 0x13f3, - 0x7521, 0x1451, - 0x7621, 0x14af, - 0x7721, 0x150d, - 0x7821, 0x156b, - 0x7921, 0x15c9, - 0x7a21, 0x1627, - 0x7b21, 0x1685, - 0x7c21, 0x16e3, - 0x7d21, 0x1741, - 0x212c, 0x354e, - 0x213b, 0x007c, - 0x213d, 0x007e, - 0x213e, 0x0082, - 0x2142, 0x0086, - 0x2146, 0x008a, - 0x214a, 0x008e, - 0x214e, 0x0092, - 0x2152, 0x0096, - 0x2156, 0x009a, - 0x215a, 0x009e, - 0x2244, 0x354f, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 cns13CNS1VEnc16 = { - 1, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - cns13CNS1VMap2, 170 -}; - -static Gushort cns13CNS2HMap2[168] = { - 0x0000, 0x0000, - 0x2121, 0x176c, - 0x2221, 0x17ca, - 0x2321, 0x1828, - 0x2421, 0x1886, - 0x2521, 0x18e4, - 0x2621, 0x1942, - 0x2721, 0x19a0, - 0x2821, 0x19fe, - 0x2921, 0x1a5c, - 0x2a21, 0x1aba, - 0x2b21, 0x1b18, - 0x2c21, 0x1b76, - 0x2d21, 0x1bd4, - 0x2e21, 0x1c32, - 0x2f21, 0x1c90, - 0x3021, 0x1cee, - 0x3121, 0x1d4c, - 0x3221, 0x1daa, - 0x3321, 0x1e08, - 0x3421, 0x1e66, - 0x3521, 0x1ec4, - 0x3621, 0x1f22, - 0x3721, 0x1f80, - 0x3821, 0x1fde, - 0x3921, 0x203c, - 0x3a21, 0x209a, - 0x3b21, 0x20f8, - 0x3c21, 0x2156, - 0x3d21, 0x21b4, - 0x3e21, 0x2212, - 0x3f21, 0x2270, - 0x4021, 0x22ce, - 0x4121, 0x232c, - 0x4221, 0x238a, - 0x4321, 0x23e8, - 0x4421, 0x2446, - 0x4521, 0x24a4, - 0x4621, 0x2502, - 0x4721, 0x2560, - 0x4821, 0x25be, - 0x4921, 0x261c, - 0x4a21, 0x267a, - 0x4b21, 0x26d8, - 0x4c21, 0x2736, - 0x4d21, 0x2794, - 0x4e21, 0x27f2, - 0x4f21, 0x2850, - 0x5021, 0x28ae, - 0x5121, 0x290c, - 0x5221, 0x296a, - 0x5321, 0x29c8, - 0x5421, 0x2a26, - 0x5521, 0x2a84, - 0x5621, 0x2ae2, - 0x5721, 0x2b40, - 0x5821, 0x2b9e, - 0x5921, 0x2bfc, - 0x5a21, 0x2c5a, - 0x5b21, 0x2cb8, - 0x5c21, 0x2d16, - 0x5d21, 0x2d74, - 0x5e21, 0x2dd2, - 0x5f21, 0x2e30, - 0x6021, 0x2e8e, - 0x6121, 0x2eec, - 0x6221, 0x2f4a, - 0x6321, 0x2fa8, - 0x6421, 0x3006, - 0x6521, 0x3064, - 0x6621, 0x30c2, - 0x6721, 0x3120, - 0x6821, 0x317e, - 0x6921, 0x31dc, - 0x6a21, 0x323a, - 0x6b21, 0x3298, - 0x6c21, 0x32f6, - 0x6d21, 0x3354, - 0x6e21, 0x33b2, - 0x6f21, 0x3410, - 0x7021, 0x346e, - 0x7121, 0x34cc, - 0x7221, 0x352a, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 cns13CNS2HEnc16 = { - 0, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - cns13CNS2HMap2, 84 -}; - -static Gushort cns13CNS2VMap2[168] = { - 0x0000, 0x0000, - 0x2121, 0x176c, - 0x2221, 0x17ca, - 0x2321, 0x1828, - 0x2421, 0x1886, - 0x2521, 0x18e4, - 0x2621, 0x1942, - 0x2721, 0x19a0, - 0x2821, 0x19fe, - 0x2921, 0x1a5c, - 0x2a21, 0x1aba, - 0x2b21, 0x1b18, - 0x2c21, 0x1b76, - 0x2d21, 0x1bd4, - 0x2e21, 0x1c32, - 0x2f21, 0x1c90, - 0x3021, 0x1cee, - 0x3121, 0x1d4c, - 0x3221, 0x1daa, - 0x3321, 0x1e08, - 0x3421, 0x1e66, - 0x3521, 0x1ec4, - 0x3621, 0x1f22, - 0x3721, 0x1f80, - 0x3821, 0x1fde, - 0x3921, 0x203c, - 0x3a21, 0x209a, - 0x3b21, 0x20f8, - 0x3c21, 0x2156, - 0x3d21, 0x21b4, - 0x3e21, 0x2212, - 0x3f21, 0x2270, - 0x4021, 0x22ce, - 0x4121, 0x232c, - 0x4221, 0x238a, - 0x4321, 0x23e8, - 0x4421, 0x2446, - 0x4521, 0x24a4, - 0x4621, 0x2502, - 0x4721, 0x2560, - 0x4821, 0x25be, - 0x4921, 0x261c, - 0x4a21, 0x267a, - 0x4b21, 0x26d8, - 0x4c21, 0x2736, - 0x4d21, 0x2794, - 0x4e21, 0x27f2, - 0x4f21, 0x2850, - 0x5021, 0x28ae, - 0x5121, 0x290c, - 0x5221, 0x296a, - 0x5321, 0x29c8, - 0x5421, 0x2a26, - 0x5521, 0x2a84, - 0x5621, 0x2ae2, - 0x5721, 0x2b40, - 0x5821, 0x2b9e, - 0x5921, 0x2bfc, - 0x5a21, 0x2c5a, - 0x5b21, 0x2cb8, - 0x5c21, 0x2d16, - 0x5d21, 0x2d74, - 0x5e21, 0x2dd2, - 0x5f21, 0x2e30, - 0x6021, 0x2e8e, - 0x6121, 0x2eec, - 0x6221, 0x2f4a, - 0x6321, 0x2fa8, - 0x6421, 0x3006, - 0x6521, 0x3064, - 0x6621, 0x30c2, - 0x6721, 0x3120, - 0x6821, 0x317e, - 0x6921, 0x31dc, - 0x6a21, 0x323a, - 0x6b21, 0x3298, - 0x6c21, 0x32f6, - 0x6d21, 0x3354, - 0x6e21, 0x33b2, - 0x6f21, 0x3410, - 0x7021, 0x346e, - 0x7121, 0x34cc, - 0x7221, 0x352a, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 cns13CNS2VEnc16 = { - 1, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - cns13CNS2VMap2, 84 -}; - -static Gushort cns13ETHKB5HMap2[2252] = { - 0x0000, 0x0000, - 0x8840, 0x44c9, - 0x8856, 0x4961, - 0x88a1, 0x498a, - 0x88a9, 0x499c, - 0x8940, 0x4534, - 0x8943, 0x4536, - 0x8946, 0x4537, - 0x894c, 0x453b, - 0x894d, 0x43c3, - 0x894e, 0x453c, - 0x8951, 0x439a, - 0x8952, 0x453f, - 0x89a1, 0x456c, - 0x89a6, 0x43a2, - 0x89ab, 0x43ec, - 0x89ac, 0x4571, - 0x89ad, 0x43eb, - 0x89ae, 0x4572, - 0x89b0, 0x4573, - 0x89b5, 0x4576, - 0x89c1, 0x4581, - 0x89c5, 0x4584, - 0x89cf, 0x43bc, - 0x89d0, 0x458e, - 0x89d9, 0x439c, - 0x89da, 0x4597, - 0x89db, 0x439e, - 0x89dc, 0x4598, - 0x89dd, 0x439f, - 0x89de, 0x4599, - 0x89e1, 0x43a1, - 0x89e2, 0x459c, - 0x89e3, 0x43a3, - 0x89e4, 0x459d, - 0x89ea, 0x43a5, - 0x89ec, 0x45a3, - 0x89fa, 0x43a9, - 0x89fb, 0x45b1, - 0x8a40, 0x45b5, - 0x8a41, 0x4309, - 0x8a43, 0x430b, - 0x8a4d, 0x45b6, - 0x8a4e, 0x4316, - 0x8a5a, 0x45b7, - 0x8a5b, 0x4323, - 0x8a5e, 0x45b8, - 0x8a5f, 0x4327, - 0x8a64, 0x432c, - 0x8a71, 0x45b9, - 0x8a72, 0x433a, - 0x8a76, 0x433e, - 0x8a77, 0x45ba, - 0x8a78, 0x4340, - 0x8a7a, 0x45bb, - 0x8a7b, 0x4343, - 0x8a7c, 0x45bc, - 0x8a7d, 0x4345, - 0x8a7e, 0x45bd, - 0x8aa1, 0x4347, - 0x8aa8, 0x45be, - 0x8aa9, 0x434f, - 0x8aac, 0x4352, - 0x8ab2, 0x4358, - 0x8ab6, 0x45bf, - 0x8ab7, 0x435d, - 0x8ab8, 0x45c0, - 0x8ab9, 0x435f, - 0x8abb, 0x4361, - 0x8ac9, 0x436f, - 0x8acc, 0x45c1, - 0x8ace, 0x4374, - 0x8ad6, 0x45c2, - 0x8ad8, 0x437e, - 0x8adf, 0x4385, - 0x8ae6, 0x45c4, - 0x8ae7, 0x43db, - 0x8ae8, 0x45c5, - 0x8af6, 0x45d2, - 0x8b40, 0x45db, - 0x8b41, 0x438c, - 0x8b43, 0x45dc, - 0x8b45, 0x438e, - 0x8b46, 0x45de, - 0x8b47, 0x438f, - 0x8b48, 0x45df, - 0x8b49, 0x4390, - 0x8b4a, 0x45e0, - 0x8b4b, 0x4391, - 0x8b4c, 0x45e1, - 0x8b4d, 0x4392, - 0x8b51, 0x45e2, - 0x8b55, 0x45e5, - 0x8b58, 0x4397, - 0x8b59, 0x45e8, - 0x8b5a, 0x4398, - 0x8b5b, 0x43c4, - 0x8b5c, 0x45e9, - 0x8b61, 0x43a7, - 0x8b62, 0x45ee, - 0x8b68, 0x43ac, - 0x8b69, 0x45f4, - 0x8ba1, 0x460a, - 0x8bc0, 0x44df, - 0x8bde, 0x44fc, - 0x8d60, 0x4629, - 0x8d62, 0x43ba, - 0x8d63, 0x462b, - 0x8d68, 0x43bb, - 0x8d69, 0x43a0, - 0x8d6a, 0x43bd, - 0x8d6b, 0x4630, - 0x8d6e, 0x43be, - 0x8d6f, 0x4633, - 0x8d76, 0x43bf, - 0x8d77, 0x463a, - 0x8d7a, 0x43c0, - 0x8d7b, 0x463d, - 0x8d7c, 0x43c1, - 0x8d7d, 0x463e, - 0x8da1, 0x4640, - 0x8da5, 0x43c2, - 0x8da6, 0x4644, - 0x8da8, 0x43b9, - 0x8da9, 0x43ad, - 0x8daa, 0x4646, - 0x8db6, 0x43c7, - 0x8db7, 0x4652, - 0x8dc3, 0x43c8, - 0x8dc4, 0x465e, - 0x8dfa, 0x43f9, - 0x8dfb, 0x4694, - 0x8e40, 0x372b, - 0x8e45, 0x4698, - 0x8e46, 0x3730, - 0x8e6a, 0x3754, - 0x8e6b, 0x4699, - 0x8e6d, 0x3756, - 0x8e70, 0x3759, - 0x8e76, 0x469b, - 0x8e77, 0x375f, - 0x8e7b, 0x469c, - 0x8e7c, 0x3764, - 0x8ea1, 0x3766, - 0x8ea6, 0x469d, - 0x8ea7, 0x376b, - 0x8eac, 0x3770, - 0x8eb5, 0x3779, - 0x8eb8, 0x469e, - 0x8eb9, 0x377d, - 0x8ec9, 0x469f, - 0x8eca, 0x378d, - 0x8ece, 0x3791, - 0x8ed1, 0x3794, - 0x8ee5, 0x46a0, - 0x8ee6, 0x37a8, - 0x8eef, 0x46a1, - 0x8ef0, 0x37b1, - 0x8ef6, 0x46a2, - 0x8ef7, 0x37b8, - 0x8f40, 0x37c0, - 0x8f58, 0x37d8, - 0x8f59, 0x46a3, - 0x8f5a, 0x37d9, - 0x8f5f, 0x46a4, - 0x8f60, 0x37de, - 0x8f67, 0x46a5, - 0x8f68, 0x37e5, - 0x8f6a, 0x37e7, - 0x8f6f, 0x37ec, - 0x8f79, 0x46a6, - 0x8f7a, 0x37f7, - 0x8fa1, 0x37fc, - 0x8fb0, 0x46a7, - 0x8fb1, 0x380c, - 0x8fc5, 0x46a8, - 0x8fc6, 0x3820, - 0x8fc7, 0x46a9, - 0x8fc8, 0x3821, - 0x8fca, 0x46aa, - 0x8fcd, 0x3826, - 0x8fda, 0x46ab, - 0x8fdb, 0x3833, - 0x8fe3, 0x46ac, - 0x8fe4, 0x383c, - 0x8ffc, 0x46ad, - 0x8ffd, 0x3854, - 0x9040, 0x3856, - 0x9055, 0x46ae, - 0x9056, 0x386c, - 0x905c, 0x46af, - 0x905f, 0x3873, - 0x906e, 0x3882, - 0x906f, 0x46b2, - 0x9070, 0x3883, - 0x907b, 0x388d, - 0x90a1, 0x3891, - 0x90a6, 0x46b3, - 0x90a7, 0x3896, - 0x90b8, 0x46b4, - 0x90b9, 0x38a7, - 0x90dd, 0x38cb, - 0x90f2, 0x38e0, - 0x9140, 0x38ed, - 0x9165, 0x46b5, - 0x9166, 0x3912, - 0x916e, 0x46b6, - 0x916f, 0x391a, - 0x917e, 0x46b7, - 0x91a1, 0x3929, - 0x91a2, 0x46b8, - 0x91a3, 0x392a, - 0x91c0, 0x3947, - 0x91c8, 0x46b9, - 0x91c9, 0x3950, - 0x9240, 0x3986, - 0x9245, 0x398b, - 0x9264, 0x46ba, - 0x9265, 0x39ab, - 0x926d, 0x46bb, - 0x926e, 0x39b4, - 0x92a1, 0x39c5, - 0x92b3, 0x39d3, - 0x92c9, 0x39e9, - 0x92d2, 0x39f2, - 0x92e5, 0x46bc, - 0x92e6, 0x3a05, - 0x92f2, 0x46bd, - 0x92f3, 0x3a11, - 0x9340, 0x3a1d, - 0x9368, 0x46be, - 0x9369, 0x3a45, - 0x93a1, 0x3a5b, - 0x93aa, 0x46bf, - 0x93ab, 0x3a64, - 0x93c2, 0x46c0, - 0x93c3, 0x3a7b, - 0x93e5, 0x46c1, - 0x93e6, 0x3a9d, - 0x93e8, 0x46c2, - 0x93e9, 0x3aa0, - 0x93eb, 0x46c3, - 0x93ec, 0x3aa2, - 0x9440, 0x3ab5, - 0x9446, 0x46c4, - 0x9448, 0x3abc, - 0x9479, 0x46c5, - 0x947a, 0x3aee, - 0x94a1, 0x3af3, - 0x94cb, 0x46c6, - 0x94cc, 0x3b1e, - 0x9540, 0x3b51, - 0x954d, 0x46c7, - 0x954e, 0x3b5e, - 0x955a, 0x46c8, - 0x955b, 0x3b6a, - 0x955f, 0x46c9, - 0x9560, 0x3b6f, - 0x95a1, 0x3b8e, - 0x95c6, 0x46ca, - 0x95c7, 0x3bb3, - 0x95da, 0x3bc6, - 0x9640, 0x3beb, - 0x9645, 0x3bf0, - 0x9651, 0x46cb, - 0x9652, 0x3bfd, - 0x966a, 0x46cc, - 0x966b, 0x3c16, - 0x96a1, 0x3c2a, - 0x96d4, 0x46cd, - 0x96d5, 0x3c5d, - 0x96ee, 0x3c76, - 0x96fd, 0x3c85, - 0x9740, 0x3c87, - 0x97a1, 0x3cc6, - 0x9840, 0x3d24, - 0x9844, 0x46ce, - 0x9846, 0x3d2a, - 0x986f, 0x46d0, - 0x9870, 0x3d54, - 0x9875, 0x46d1, - 0x9877, 0x3d59, - 0x9878, 0x46d3, - 0x987a, 0x3d5a, - 0x987b, 0x46d5, - 0x98a1, 0x46d9, - 0x98a3, 0x3d5b, - 0x98a4, 0x46db, - 0x98af, 0x3d5c, - 0x98b0, 0x46e6, - 0x98b4, 0x43ca, - 0x98b5, 0x46ea, - 0x98b6, 0x3d5d, - 0x98b7, 0x46eb, - 0x98b8, 0x43cc, - 0x98b9, 0x3d5e, - 0x98ba, 0x46ec, - 0x98bb, 0x43fa, - 0x98bc, 0x46ed, - 0x98bd, 0x3d5f, - 0x98bf, 0x46ee, - 0x98c2, 0x3d61, - 0x98c3, 0x46f1, - 0x98c4, 0x3d62, - 0x98c5, 0x46f2, - 0x98c6, 0x3d63, - 0x98c8, 0x46f3, - 0x98d2, 0x43cd, - 0x98d3, 0x46fd, - 0x98d8, 0x43ce, - 0x98da, 0x4702, - 0x98db, 0x43d1, - 0x98dc, 0x4703, - 0x98df, 0x43d4, - 0x98e0, 0x4706, - 0x98e3, 0x3d65, - 0x98e4, 0x4709, - 0x98e7, 0x3d66, - 0x98e8, 0x470c, - 0x98ed, 0x3d67, - 0x98ee, 0x4711, - 0x98f0, 0x3d68, - 0x98f1, 0x4713, - 0x98f2, 0x3d69, - 0x98f3, 0x4714, - 0x98f4, 0x43d5, - 0x98f6, 0x4715, - 0x98fc, 0x3d6a, - 0x98fd, 0x471b, - 0x98fe, 0x43d7, - 0x9940, 0x471c, - 0x9942, 0x43fc, - 0x9943, 0x3d6b, - 0x9944, 0x471e, - 0x9945, 0x3d6c, - 0x9946, 0x471f, - 0x9947, 0x43d8, - 0x9948, 0x4720, - 0x994f, 0x3d6d, - 0x9950, 0x4727, - 0x9954, 0x43d9, - 0x9955, 0x472b, - 0x995c, 0x43da, - 0x995d, 0x4732, - 0x9964, 0x43dc, - 0x9965, 0x4739, - 0x996a, 0x3d6e, - 0x996b, 0x473e, - 0x996e, 0x3d6f, - 0x996f, 0x4741, - 0x9975, 0x3d70, - 0x9976, 0x4747, - 0x9978, 0x3d71, - 0x9979, 0x4749, - 0x99a1, 0x474f, - 0x99a2, 0x3d72, - 0x99a3, 0x4750, - 0x99a4, 0x43c5, - 0x99a5, 0x4751, - 0x99a6, 0x43c6, - 0x99a7, 0x4752, - 0x99ae, 0x3d73, - 0x99af, 0x4759, - 0x99b2, 0x43de, - 0x99b3, 0x475c, - 0x99b6, 0x3d74, - 0x99b7, 0x475f, - 0x99ba, 0x3d75, - 0x99bb, 0x4762, - 0x99ca, 0x43e0, - 0x99cb, 0x4771, - 0x99cd, 0x43e2, - 0x99ce, 0x4773, - 0x99d3, 0x43e3, - 0x99d4, 0x4778, - 0x99d6, 0x43e5, - 0x99d7, 0x477a, - 0x99df, 0x43df, - 0x99e0, 0x4782, - 0x99e2, 0x3d76, - 0x99e3, 0x4784, - 0x99e4, 0x43ab, - 0x99e5, 0x4785, - 0x99e6, 0x43e7, - 0x99e7, 0x4786, - 0x99e8, 0x43e9, - 0x99e9, 0x4787, - 0x99ef, 0x43fd, - 0x99f0, 0x478d, - 0x99f4, 0x3d77, - 0x99f5, 0x4791, - 0x9a40, 0x479b, - 0x9a4a, 0x3d78, - 0x9a4b, 0x47a5, - 0x9a4c, 0x3d79, - 0x9a4d, 0x47a6, - 0x9a59, 0x3d7a, - 0x9a5a, 0x47b2, - 0x9a5f, 0x43af, - 0x9a60, 0x47b7, - 0x9a61, 0x3d7b, - 0x9a62, 0x47b8, - 0x9a66, 0x43ed, - 0x9a67, 0x47bc, - 0x9a68, 0x3d7c, - 0x9a69, 0x43ee, - 0x9a6a, 0x47bd, - 0x9a6b, 0x43ff, - 0x9a6c, 0x47be, - 0x9a73, 0x3d7d, - 0x9a74, 0x47c5, - 0x9a75, 0x43f1, - 0x9a76, 0x47c6, - 0x9a7e, 0x3d7e, - 0x9aa1, 0x47ce, - 0x9aa3, 0x43f3, - 0x9aa4, 0x47d0, - 0x9aa5, 0x43f2, - 0x9aa6, 0x47d1, - 0x9aa9, 0x43f8, - 0x9aaa, 0x43f4, - 0x9aab, 0x47d4, - 0x9ab2, 0x3d7f, - 0x9ab3, 0x47db, - 0x9ab7, 0x3d80, - 0x9ab8, 0x47df, - 0x9ab9, 0x3d81, - 0x9aba, 0x47e0, - 0x9abb, 0x3d82, - 0x9abc, 0x47e1, - 0x9abd, 0x43b7, - 0x9abe, 0x47e2, - 0x9ac7, 0x3d83, - 0x9ac8, 0x47eb, - 0x9ad0, 0x3d84, - 0x9ad1, 0x47f3, - 0x9ad2, 0x3d85, - 0x9ad3, 0x47f4, - 0x9ad9, 0x3d86, - 0x9adc, 0x47fa, - 0x9ae2, 0x3d89, - 0x9ae3, 0x4800, - 0x9ae4, 0x3d8a, - 0x9ae5, 0x4801, - 0x9ae8, 0x3d8b, - 0x9ae9, 0x43b0, - 0x9aea, 0x4804, - 0x9aee, 0x43b2, - 0x9aef, 0x4808, - 0x9af2, 0x3d8c, - 0x9af3, 0x480b, - 0x9af6, 0x3d8d, - 0x9af7, 0x480e, - 0x9afb, 0x3d8e, - 0x9afc, 0x4812, - 0x9b40, 0x4815, - 0x9b46, 0x3d8f, - 0x9b47, 0x481b, - 0x9b4a, 0x3d90, - 0x9b4b, 0x481e, - 0x9b54, 0x3d92, - 0x9b55, 0x4827, - 0x9b58, 0x3d93, - 0x9b59, 0x482a, - 0x9b5a, 0x3d94, - 0x9b5b, 0x482b, - 0x9b5c, 0x3d95, - 0x9b5d, 0x482c, - 0x9b5e, 0x3d96, - 0x9b60, 0x482d, - 0x9b62, 0x482e, - 0x9b70, 0x3d98, - 0x9b74, 0x483c, - 0x9b77, 0x3d9d, - 0x9b79, 0x483e, - 0x9b7c, 0x3da0, - 0x9b7d, 0x4840, - 0x9b7e, 0x3da1, - 0x9ba1, 0x3da2, - 0x9ba2, 0x4841, - 0x9ba3, 0x3da3, - 0x9ba5, 0x4842, - 0x9ba7, 0x3da5, - 0x9bab, 0x4844, - 0x9bac, 0x3da9, - 0x9bad, 0x4845, - 0x9baf, 0x3daa, - 0x9bb0, 0x4847, - 0x9bb2, 0x3dab, - 0x9bba, 0x4849, - 0x9bbe, 0x3db3, - 0x9bbf, 0x484d, - 0x9bc0, 0x3db4, - 0x9bc7, 0x484e, - 0x9bca, 0x3dbb, - 0x9bcb, 0x4851, - 0x9bcc, 0x3dbc, - 0x9bcd, 0x4852, - 0x9bce, 0x43d0, - 0x9bcf, 0x4853, - 0x9bd0, 0x3dbd, - 0x9bd2, 0x4854, - 0x9bd3, 0x3dbf, - 0x9bd4, 0x4855, - 0x9bd5, 0x3dc0, - 0x9bd6, 0x4856, - 0x9bd8, 0x3dc1, - 0x9bdb, 0x4858, - 0x9bdd, 0x3dc4, - 0x9bdf, 0x3dc5, - 0x9be0, 0x485a, - 0x9be1, 0x3dc6, - 0x9be2, 0x485b, - 0x9be3, 0x3dc7, - 0x9be4, 0x485c, - 0x9be7, 0x3dc8, - 0x9be8, 0x485f, - 0x9be9, 0x3dc9, - 0x9bed, 0x4860, - 0x9bee, 0x3dcd, - 0x9bf0, 0x4861, - 0x9bf3, 0x3dcf, - 0x9bf4, 0x4864, - 0x9bf7, 0x4866, - 0x9bf8, 0x3dd1, - 0x9bfa, 0x4867, - 0x9bfb, 0x3dd3, - 0x9bfd, 0x4868, - 0x9c40, 0x3dd5, - 0x9c43, 0x486a, - 0x9c44, 0x3dd8, - 0x9c47, 0x486b, - 0x9c48, 0x3ddb, - 0x9c49, 0x486c, - 0x9c4a, 0x3ddc, - 0x9c4b, 0x486d, - 0x9c4d, 0x3ddd, - 0x9c54, 0x486f, - 0x9c55, 0x3de4, - 0x9c56, 0x4870, - 0x9c57, 0x3de5, - 0x9c5c, 0x4871, - 0x9c5d, 0x3dea, - 0x9c5e, 0x4872, - 0x9c60, 0x3deb, - 0x9c61, 0x4874, - 0x9c63, 0x4875, - 0x9c64, 0x3ded, - 0x9c67, 0x4876, - 0x9c69, 0x4877, - 0x9c6a, 0x3df1, - 0x9c6c, 0x4878, - 0x9c6d, 0x3df2, - 0x9c6e, 0x4879, - 0x9c6f, 0x3df3, - 0x9c73, 0x487a, - 0x9c75, 0x3df7, - 0x9c78, 0x487c, - 0x9c79, 0x3dfa, - 0x9c7a, 0x487d, - 0x9c7b, 0x3dfb, - 0x9c7d, 0x487e, - 0x9c7e, 0x3dfd, - 0x9ca1, 0x3dfe, - 0x9ca3, 0x487f, - 0x9ca5, 0x3e00, - 0x9ca6, 0x4881, - 0x9ca8, 0x3e01, - 0x9caa, 0x4883, - 0x9cab, 0x3e03, - 0x9cac, 0x4884, - 0x9cad, 0x3e04, - 0x9caf, 0x4885, - 0x9cb1, 0x3e06, - 0x9cbb, 0x4887, - 0x9cbe, 0x3e12, - 0x9cc3, 0x4888, - 0x9cc6, 0x3e17, - 0x9cce, 0x488b, - 0x9ccf, 0x3e1f, - 0x9cd1, 0x3e21, - 0x9cd4, 0x488c, - 0x9cd8, 0x3e24, - 0x9cdb, 0x4890, - 0x9cdc, 0x3e27, - 0x9ce6, 0x4891, - 0x9ce7, 0x3e31, - 0x9cea, 0x4892, - 0x9ceb, 0x3e34, - 0x9ced, 0x4893, - 0x9cee, 0x3e36, - 0x9cfa, 0x4894, - 0x9cfd, 0x3e42, - 0x9cfe, 0x4897, - 0x9d40, 0x43e8, - 0x9d41, 0x4898, - 0x9d46, 0x3e43, - 0x9d47, 0x489d, - 0x9d49, 0x3e44, - 0x9d4a, 0x489f, - 0x9d4c, 0x3e46, - 0x9d4e, 0x48a1, - 0x9d4f, 0x3e48, - 0x9d50, 0x48a2, - 0x9d51, 0x3e49, - 0x9d52, 0x48a3, - 0x9d55, 0x3e4a, - 0x9d56, 0x48a6, - 0x9d58, 0x48a7, - 0x9d5b, 0x48a9, - 0x9d61, 0x43c9, - 0x9d62, 0x3e4c, - 0x9d63, 0x48af, - 0x9d64, 0x3e4d, - 0x9d65, 0x48b0, - 0x9d78, 0x43f5, - 0x9d79, 0x3e4e, - 0x9d7a, 0x48c3, - 0x9d7e, 0x3e4f, - 0x9da1, 0x48c7, - 0x9da5, 0x3e50, - 0x9da9, 0x48cb, - 0x9daa, 0x3e54, - 0x9dab, 0x48cc, - 0x9dac, 0x3e55, - 0x9dae, 0x48cd, - 0x9db0, 0x3e58, - 0x9db1, 0x48cf, - 0x9db3, 0x3e59, - 0x9db4, 0x48d1, - 0x9db5, 0x3e5a, - 0x9db6, 0x48d2, - 0x9db7, 0x3e5b, - 0x9db8, 0x48d3, - 0x9dbc, 0x3e5c, - 0x9dbe, 0x48d7, - 0x9dbf, 0x3e5e, - 0x9dc1, 0x48d8, - 0x9dc3, 0x3e60, - 0x9dc5, 0x48da, - 0x9dc7, 0x3e62, - 0x9dc9, 0x48dc, - 0x9dca, 0x3e64, - 0x9dcb, 0x48dd, - 0x9dcd, 0x3e65, - 0x9dd2, 0x48df, - 0x9dd3, 0x3e6a, - 0x9dd6, 0x48e0, - 0x9dda, 0x3e6d, - 0x9dfc, 0x48e4, - 0x9dfd, 0x3e8f, - 0x9e40, 0x3e91, - 0x9e43, 0x48e5, - 0x9e44, 0x3e95, - 0x9e5f, 0x48e6, - 0x9e60, 0x3eb1, - 0x9e63, 0x48e7, - 0x9e64, 0x3eb4, - 0x9e66, 0x48e8, - 0x9e68, 0x3eb6, - 0x9e69, 0x48ea, - 0x9e6a, 0x3eb7, - 0x9e6b, 0x48eb, - 0x9e71, 0x3eb8, - 0x9e72, 0x48f1, - 0x9e73, 0x3eb9, - 0x9e74, 0x48f2, - 0x9e77, 0x3eba, - 0x9e79, 0x48f5, - 0x9e7a, 0x3ebc, - 0x9e7b, 0x48f6, - 0x9e7c, 0x3ebd, - 0x9e7d, 0x48f7, - 0x9e7e, 0x3ebe, - 0x9ea1, 0x3ebf, - 0x9ea3, 0x48f8, - 0x9ea4, 0x3ec1, - 0x9ea7, 0x48f9, - 0x9eaa, 0x3ec5, - 0x9eab, 0x48fb, - 0x9ead, 0x3ec7, - 0x9eae, 0x48fc, - 0x9eaf, 0x3ec8, - 0x9eb2, 0x48fd, - 0x9eb4, 0x3ecb, - 0x9eb5, 0x48ff, - 0x9eb6, 0x3ecc, - 0x9eb8, 0x4900, - 0x9eb9, 0x3ece, - 0x9eba, 0x4901, - 0x9ebc, 0x3ecf, - 0x9ebd, 0x4903, - 0x9ebf, 0x3ed0, - 0x9ec1, 0x4905, - 0x9ec5, 0x3ed3, - 0x9ec6, 0x4908, - 0x9ec7, 0x3ed4, - 0x9ecb, 0x4909, - 0x9ecd, 0x3ed9, - 0x9ece, 0x490b, - 0x9ed0, 0x3eda, - 0x9ed2, 0x490d, - 0x9ed3, 0x3edc, - 0x9ed4, 0x490e, - 0x9ed6, 0x3edd, - 0x9ed8, 0x4910, - 0x9eda, 0x3edf, - 0x9ef0, 0x3ef5, - 0x9ef2, 0x4912, - 0x9ef3, 0x3ef7, - 0x9ef5, 0x3ef9, - 0x9ef6, 0x4913, - 0x9ef9, 0x3efa, - 0x9efb, 0x4916, - 0x9efc, 0x3efc, - 0x9efe, 0x3efe, - 0x9f40, 0x3eff, - 0x9f43, 0x4917, - 0x9f44, 0x3f02, - 0x9f48, 0x4918, - 0x9f49, 0x3f06, - 0x9f4b, 0x4919, - 0x9f4d, 0x3f08, - 0x9f4f, 0x3f0a, - 0x9f61, 0x3f1c, - 0x9f67, 0x491b, - 0x9f69, 0x3f23, - 0x9f70, 0x491d, - 0x9f71, 0x3f2a, - 0x9fa1, 0x3f38, - 0x9fae, 0x3f45, - 0x9fb2, 0x3f49, - 0x9fb5, 0x491e, - 0x9fb6, 0x3f4c, - 0x9fbb, 0x491f, - 0x9fbc, 0x3f51, - 0x9fbf, 0x4920, - 0x9fc1, 0x4921, - 0x9fc2, 0x3f55, - 0x9fc9, 0x3f5c, - 0x9fcc, 0x4922, - 0x9fcd, 0x3f60, - 0x9fd4, 0x4923, - 0x9fd5, 0x3f68, - 0x9fd9, 0x3f6c, - 0x9fdb, 0x3f6e, - 0x9fe4, 0x4924, - 0x9fe5, 0x3f77, - 0x9fe7, 0x3f79, - 0x9feb, 0x3f7d, - 0x9ff0, 0x3f82, - 0x9ff9, 0x4925, - 0x9ffa, 0x3f8b, - 0xa040, 0x4926, - 0xa041, 0x3f90, - 0xa047, 0x4927, - 0xa048, 0x3f96, - 0xa055, 0x4928, - 0xa056, 0x3fa3, - 0xa058, 0x3fa5, - 0xa05b, 0x3fa8, - 0xa064, 0x3fb1, - 0xa06d, 0x4929, - 0xa06e, 0x3fba, - 0xa073, 0x3fbf, - 0xa078, 0x3fc4, - 0xa07b, 0x492a, - 0xa07c, 0x3fc7, - 0xa0a1, 0x3fca, - 0xa0a2, 0x492b, - 0xa0a3, 0x3fcb, - 0xa0a6, 0x3fce, - 0xa0a7, 0x492c, - 0xa0a8, 0x3fcf, - 0xa0ae, 0x3fd5, - 0xa0b0, 0x3fd7, - 0xa0c5, 0x492d, - 0xa0c6, 0x3fec, - 0xa0d0, 0x492e, - 0xa0d1, 0x3ff6, - 0xa0d4, 0x3ff9, - 0xa0d6, 0x3ffb, - 0xa0e0, 0x4005, - 0xa0e2, 0x4007, - 0xa0e3, 0x492f, - 0xa0e5, 0x4009, - 0xa0e7, 0x4930, - 0xa0ee, 0x43b4, - 0xa0ef, 0x4937, - 0xa0f2, 0x43b8, - 0xa0f3, 0x493a, - 0xa140, 0x0063, - 0xa159, 0x35af, - 0xa15d, 0x0080, - 0xa1a1, 0x00a2, - 0xa1f6, 0x00f8, - 0xa1f7, 0x00f7, - 0xa1f8, 0x00f9, - 0xa240, 0x0100, - 0xa2a1, 0x013f, - 0xa340, 0x019d, - 0xa3a1, 0x01dc, - 0xa3bd, 0x01f7, - 0xa440, 0x0253, - 0xa4a1, 0x0292, - 0xa540, 0x02f0, - 0xa5a1, 0x032f, - 0xa640, 0x038d, - 0xa6a1, 0x03cc, - 0xa740, 0x042a, - 0xa7a1, 0x0469, - 0xa840, 0x04c7, - 0xa8a1, 0x0506, - 0xa940, 0x0564, - 0xa9a1, 0x05a3, - 0xaa40, 0x0601, - 0xaaa1, 0x0640, - 0xab40, 0x069e, - 0xaba1, 0x06dd, - 0xac40, 0x073b, - 0xaca1, 0x077a, - 0xacfe, 0x097f, - 0xad40, 0x07d7, - 0xada1, 0x0816, - 0xae40, 0x0874, - 0xaea1, 0x08b3, - 0xaf40, 0x0911, - 0xafa1, 0x0950, - 0xafd0, 0x0980, - 0xb040, 0x09af, - 0xb0a1, 0x09ee, - 0xb140, 0x0a4c, - 0xb1a1, 0x0a8b, - 0xb240, 0x0ae9, - 0xb2a1, 0x0b28, - 0xb340, 0x0b86, - 0xb3a1, 0x0bc5, - 0xb440, 0x0c23, - 0xb4a1, 0x0c62, - 0xb540, 0x0cc0, - 0xb5a1, 0x0cff, - 0xb640, 0x0d5d, - 0xb6a1, 0x0d9c, - 0xb740, 0x0dfa, - 0xb7a1, 0x0e39, - 0xb840, 0x0e97, - 0xb8a1, 0x0ed6, - 0xb940, 0x0f34, - 0xb9a1, 0x0f73, - 0xba40, 0x0fd1, - 0xbaa1, 0x1010, - 0xbb40, 0x106e, - 0xbba1, 0x10ad, - 0xbbc8, 0x10d5, - 0xbc40, 0x110c, - 0xbca1, 0x114b, - 0xbd40, 0x11a9, - 0xbda1, 0x11e8, - 0xbe40, 0x1246, - 0xbe52, 0x10d4, - 0xbe53, 0x1258, - 0xbea1, 0x1284, - 0xbf40, 0x12e2, - 0xbfa1, 0x1321, - 0xc040, 0x137f, - 0xc0a1, 0x13be, - 0xc140, 0x141c, - 0xc1a1, 0x145b, - 0xc1ab, 0x1466, - 0xc240, 0x14ba, - 0xc2a1, 0x14f9, - 0xc2cb, 0x1465, - 0xc2cc, 0x1523, - 0xc340, 0x1556, - 0xc361, 0x1578, - 0xc3a1, 0x1596, - 0xc3b9, 0x15af, - 0xc3ba, 0x15ae, - 0xc3bb, 0x15b0, - 0xc440, 0x15f4, - 0xc456, 0x1577, - 0xc457, 0x160a, - 0xc4a1, 0x1632, - 0xc540, 0x1690, - 0xc5a1, 0x16cf, - 0xc640, 0x172d, - 0xc6a1, 0x01fa, - 0xc6bf, 0x0219, - 0xc6d8, 0x35b3, - 0xc6df, 0x1794, - 0xc6e0, 0x35ba, - 0xc740, 0x35d9, - 0xc7a1, 0x3618, - 0xc840, 0x3676, - 0xc8a1, 0x36b5, - 0xc8d4, 0x44c6, - 0xc8d7, 0x451c, - 0xc8e0, 0x02dc, - 0xc8e1, 0x4525, - 0xc8e9, 0x0509, - 0xc8ea, 0x452d, - 0xc8f1, 0x09f6, - 0xc8f5, 0x4992, - 0xc940, 0x176c, - 0xc94a, 0x0274, - 0xc94b, 0x1776, - 0xc96c, 0x1798, - 0xc9a1, 0x17ab, - 0xc9be, 0x1797, - 0xc9bf, 0x17c8, - 0xc9ed, 0x17f7, - 0xca40, 0x1809, - 0xcaa1, 0x1848, - 0xcaf7, 0x17f6, - 0xcaf8, 0x189e, - 0xcb40, 0x18a5, - 0xcba1, 0x18e4, - 0xcc40, 0x1942, - 0xcca1, 0x1981, - 0xcd40, 0x19df, - 0xcda1, 0x1a1e, - 0xce40, 0x1a7c, - 0xcea1, 0x1abb, - 0xcf40, 0x1b19, - 0xcfa1, 0x1b58, - 0xd040, 0x1bb6, - 0xd0a1, 0x1bf5, - 0xd140, 0x1c53, - 0xd1a1, 0x1c92, - 0xd240, 0x1cf0, - 0xd2a1, 0x1d2f, - 0xd340, 0x1d8d, - 0xd3a1, 0x1dcc, - 0xd440, 0x1e2a, - 0xd4a1, 0x1e69, - 0xd540, 0x1ec7, - 0xd5a1, 0x1f06, - 0xd640, 0x1f64, - 0xd6a1, 0x1fa3, - 0xd6cc, 0x2254, - 0xd6cd, 0x1fcf, - 0xd740, 0x2001, - 0xd77a, 0x22b9, - 0xd77b, 0x203b, - 0xd7a1, 0x203f, - 0xd840, 0x209d, - 0xd8a1, 0x20dc, - 0xd940, 0x213a, - 0xd9a1, 0x2179, - 0xda40, 0x21d7, - 0xdaa1, 0x2216, - 0xdadf, 0x1fce, - 0xdae0, 0x2255, - 0xdb40, 0x2274, - 0xdba1, 0x22b3, - 0xdba7, 0x22ba, - 0xdc40, 0x2312, - 0xdca1, 0x2351, - 0xdd40, 0x23af, - 0xdda1, 0x23ee, - 0xddfc, 0x2381, - 0xddfd, 0x2449, - 0xde40, 0x244b, - 0xdea1, 0x248a, - 0xdf40, 0x24e8, - 0xdfa1, 0x2527, - 0xe040, 0x2585, - 0xe0a1, 0x25c4, - 0xe140, 0x2622, - 0xe1a1, 0x2661, - 0xe240, 0x26bf, - 0xe2a1, 0x26fe, - 0xe340, 0x275c, - 0xe3a1, 0x279b, - 0xe440, 0x27f9, - 0xe4a1, 0x2838, - 0xe540, 0x2896, - 0xe5a1, 0x28d5, - 0xe640, 0x2933, - 0xe6a1, 0x2972, - 0xe740, 0x29d0, - 0xe7a1, 0x2a0f, - 0xe840, 0x2a6d, - 0xe8a1, 0x2aac, - 0xe8a3, 0x2aaf, - 0xe940, 0x2b0b, - 0xe976, 0x2b42, - 0xe9a1, 0x2b4b, - 0xea40, 0x2ba9, - 0xeaa1, 0x2be8, - 0xeb40, 0x2c46, - 0xeb5b, 0x2c62, - 0xeba1, 0x2c86, - 0xebf1, 0x2aae, - 0xebf2, 0x2cd6, - 0xec40, 0x2ce3, - 0xeca1, 0x2d22, - 0xecde, 0x2b41, - 0xecdf, 0x2d5f, - 0xed40, 0x2d7f, - 0xeda1, 0x2dbe, - 0xedaa, 0x2dc8, - 0xee40, 0x2e1d, - 0xeea1, 0x2e5c, - 0xeeeb, 0x3014, - 0xeeec, 0x2ea6, - 0xef40, 0x2eb9, - 0xefa1, 0x2ef8, - 0xf040, 0x2f56, - 0xf056, 0x2dc7, - 0xf057, 0x2f6c, - 0xf0a1, 0x2f94, - 0xf0cb, 0x2c61, - 0xf0cc, 0x2fbe, - 0xf140, 0x2ff1, - 0xf163, 0x3015, - 0xf16b, 0x3160, - 0xf16c, 0x301d, - 0xf1a1, 0x3030, - 0xf240, 0x308e, - 0xf268, 0x31ef, - 0xf269, 0x30b6, - 0xf2a1, 0x30cc, - 0xf2c3, 0x30ef, - 0xf340, 0x312b, - 0xf375, 0x3161, - 0xf3a1, 0x316b, - 0xf440, 0x31c9, - 0xf466, 0x31f0, - 0xf4a1, 0x3209, - 0xf4b5, 0x30ee, - 0xf4b6, 0x321d, - 0xf4fd, 0x3265, - 0xf540, 0x3267, - 0xf5a1, 0x32a6, - 0xf640, 0x3304, - 0xf663, 0x3264, - 0xf664, 0x3327, - 0xf6a1, 0x3342, - 0xf740, 0x33a0, - 0xf7a1, 0x33df, - 0xf840, 0x343d, - 0xf8a1, 0x347c, - 0xf940, 0x34da, - 0xf977, 0x3512, - 0xf9a1, 0x351a, - 0xf9c4, 0x3511, - 0xf9c5, 0x353d, - 0xf9c6, 0x3549, - 0xf9c7, 0x353e, - 0xf9d2, 0x354a, - 0xf9d6, 0x36e8, - 0xfa40, 0x400b, - 0xfa60, 0x402b, - 0xfa67, 0x4032, - 0xfaa1, 0x404a, - 0xfaa9, 0x4946, - 0xfaab, 0x4054, - 0xfabe, 0x4067, - 0xfac6, 0x406f, - 0xfad6, 0x407f, - 0xfb40, 0x40a8, - 0xfb49, 0x40b1, - 0xfb53, 0x4948, - 0xfb54, 0x40bc, - 0xfb6e, 0x4949, - 0xfb6f, 0x40d7, - 0xfba1, 0x40e7, - 0xfba3, 0x494a, - 0xfba4, 0x40ea, - 0xfbb9, 0x40ff, - 0xfbbf, 0x494b, - 0xfbc0, 0x4105, - 0xfbcd, 0x494c, - 0xfbce, 0x4112, - 0xfbf4, 0x4138, - 0xfbfa, 0x413e, - 0xfc40, 0x4143, - 0xfc4a, 0x494d, - 0xfc4b, 0x414d, - 0xfc50, 0x4151, - 0xfc52, 0x494e, - 0xfc53, 0x4153, - 0xfc63, 0x494f, - 0xfc64, 0x4163, - 0xfc6d, 0x4950, - 0xfc6e, 0x416d, - 0xfc75, 0x4951, - 0xfc76, 0x4174, - 0xfca1, 0x417d, - 0xfcba, 0x4195, - 0xfcbc, 0x4952, - 0xfcbe, 0x4198, - 0xfccc, 0x4954, - 0xfccd, 0x41a7, - 0xfce3, 0x4955, - 0xfce4, 0x41bd, - 0xfcee, 0x4956, - 0xfcef, 0x41c7, - 0xfcf2, 0x41ca, - 0xfd40, 0x41d7, - 0xfd49, 0x4957, - 0xfd4a, 0x41e0, - 0xfd6a, 0x4958, - 0xfd6b, 0x4201, - 0xfda1, 0x4215, - 0xfdb9, 0x422d, - 0xfdbc, 0x4230, - 0xfde3, 0x4959, - 0xfde4, 0x4258, - 0xfdf2, 0x495a, - 0xfdf3, 0x4266, - 0xfe40, 0x4272, - 0xfe53, 0x4285, - 0xfe6d, 0x495b, - 0xfe6e, 0x429f, - 0xfe70, 0x42a1, - 0xfe78, 0x495c, - 0xfe79, 0x42a9, - 0xfea1, 0x42af, - 0xfeab, 0x42b8, - 0xfede, 0x495d, - 0xfee0, 0x42eb, - 0xfeed, 0x495f, - 0xfeef, 0x42f8, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 cns13ETHKB5HEnc16 = { - 0, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, - 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, - 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, - 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, - 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, - 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, - 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, - 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, - 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, - 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - cns13ETHKB5HMap2, 1126 -}; - -static Gushort cns13ETHKB5VMap2[2278] = { - 0x0000, 0x0000, - 0x8840, 0x44c9, - 0x8856, 0x4961, - 0x88a1, 0x498a, - 0x88a9, 0x499c, - 0x8940, 0x4534, - 0x8943, 0x4536, - 0x8946, 0x4537, - 0x894c, 0x453b, - 0x894d, 0x43c3, - 0x894e, 0x453c, - 0x8951, 0x439a, - 0x8952, 0x453f, - 0x89a1, 0x456c, - 0x89a6, 0x43a2, - 0x89ab, 0x43ec, - 0x89ac, 0x4571, - 0x89ad, 0x43eb, - 0x89ae, 0x4572, - 0x89b0, 0x4573, - 0x89b5, 0x4576, - 0x89c1, 0x4581, - 0x89c5, 0x4584, - 0x89cf, 0x43bc, - 0x89d0, 0x458e, - 0x89d9, 0x439c, - 0x89da, 0x4597, - 0x89db, 0x439e, - 0x89dc, 0x4598, - 0x89dd, 0x439f, - 0x89de, 0x4599, - 0x89e1, 0x43a1, - 0x89e2, 0x459c, - 0x89e3, 0x43a3, - 0x89e4, 0x459d, - 0x89ea, 0x43a5, - 0x89ec, 0x45a3, - 0x89fa, 0x43a9, - 0x89fb, 0x45b1, - 0x8a40, 0x45b5, - 0x8a41, 0x4309, - 0x8a43, 0x430b, - 0x8a4d, 0x45b6, - 0x8a4e, 0x4316, - 0x8a5a, 0x45b7, - 0x8a5b, 0x4323, - 0x8a5e, 0x45b8, - 0x8a5f, 0x4327, - 0x8a64, 0x432c, - 0x8a71, 0x45b9, - 0x8a72, 0x433a, - 0x8a76, 0x433e, - 0x8a77, 0x45ba, - 0x8a78, 0x4340, - 0x8a7a, 0x45bb, - 0x8a7b, 0x4343, - 0x8a7c, 0x45bc, - 0x8a7d, 0x4345, - 0x8a7e, 0x45bd, - 0x8aa1, 0x4347, - 0x8aa8, 0x45be, - 0x8aa9, 0x434f, - 0x8aac, 0x4352, - 0x8ab2, 0x4358, - 0x8ab6, 0x45bf, - 0x8ab7, 0x435d, - 0x8ab8, 0x45c0, - 0x8ab9, 0x435f, - 0x8abb, 0x4361, - 0x8ac9, 0x436f, - 0x8acc, 0x45c1, - 0x8ace, 0x4374, - 0x8ad6, 0x45c2, - 0x8ad8, 0x437e, - 0x8adf, 0x4385, - 0x8ae6, 0x45c4, - 0x8ae7, 0x43db, - 0x8ae8, 0x45c5, - 0x8af6, 0x45d2, - 0x8b40, 0x45db, - 0x8b41, 0x438c, - 0x8b43, 0x45dc, - 0x8b45, 0x438e, - 0x8b46, 0x45de, - 0x8b47, 0x438f, - 0x8b48, 0x45df, - 0x8b49, 0x4390, - 0x8b4a, 0x45e0, - 0x8b4b, 0x4391, - 0x8b4c, 0x45e1, - 0x8b4d, 0x4392, - 0x8b51, 0x45e2, - 0x8b55, 0x45e5, - 0x8b58, 0x4397, - 0x8b59, 0x45e8, - 0x8b5a, 0x4398, - 0x8b5b, 0x43c4, - 0x8b5c, 0x45e9, - 0x8b61, 0x43a7, - 0x8b62, 0x45ee, - 0x8b68, 0x43ac, - 0x8b69, 0x45f4, - 0x8ba1, 0x460a, - 0x8bc0, 0x44df, - 0x8bde, 0x44fc, - 0x8d60, 0x4629, - 0x8d62, 0x43ba, - 0x8d63, 0x462b, - 0x8d68, 0x43bb, - 0x8d69, 0x43a0, - 0x8d6a, 0x43bd, - 0x8d6b, 0x4630, - 0x8d6e, 0x43be, - 0x8d6f, 0x4633, - 0x8d76, 0x43bf, - 0x8d77, 0x463a, - 0x8d7a, 0x43c0, - 0x8d7b, 0x463d, - 0x8d7c, 0x43c1, - 0x8d7d, 0x463e, - 0x8da1, 0x4640, - 0x8da5, 0x43c2, - 0x8da6, 0x4644, - 0x8da8, 0x43b9, - 0x8da9, 0x43ad, - 0x8daa, 0x4646, - 0x8db6, 0x43c7, - 0x8db7, 0x4652, - 0x8dc3, 0x43c8, - 0x8dc4, 0x465e, - 0x8dfa, 0x43f9, - 0x8dfb, 0x4694, - 0x8e40, 0x372b, - 0x8e45, 0x4698, - 0x8e46, 0x3730, - 0x8e6a, 0x3754, - 0x8e6b, 0x4699, - 0x8e6d, 0x3756, - 0x8e70, 0x3759, - 0x8e76, 0x469b, - 0x8e77, 0x375f, - 0x8e7b, 0x469c, - 0x8e7c, 0x3764, - 0x8ea1, 0x3766, - 0x8ea6, 0x469d, - 0x8ea7, 0x376b, - 0x8eac, 0x3770, - 0x8eb5, 0x3779, - 0x8eb8, 0x469e, - 0x8eb9, 0x377d, - 0x8ec9, 0x469f, - 0x8eca, 0x378d, - 0x8ece, 0x3791, - 0x8ed1, 0x3794, - 0x8ee5, 0x46a0, - 0x8ee6, 0x37a8, - 0x8eef, 0x46a1, - 0x8ef0, 0x37b1, - 0x8ef6, 0x46a2, - 0x8ef7, 0x37b8, - 0x8f40, 0x37c0, - 0x8f58, 0x37d8, - 0x8f59, 0x46a3, - 0x8f5a, 0x37d9, - 0x8f5f, 0x46a4, - 0x8f60, 0x37de, - 0x8f67, 0x46a5, - 0x8f68, 0x37e5, - 0x8f6a, 0x37e7, - 0x8f6f, 0x37ec, - 0x8f79, 0x46a6, - 0x8f7a, 0x37f7, - 0x8fa1, 0x37fc, - 0x8fb0, 0x46a7, - 0x8fb1, 0x380c, - 0x8fc5, 0x46a8, - 0x8fc6, 0x3820, - 0x8fc7, 0x46a9, - 0x8fc8, 0x3821, - 0x8fca, 0x46aa, - 0x8fcd, 0x3826, - 0x8fda, 0x46ab, - 0x8fdb, 0x3833, - 0x8fe3, 0x46ac, - 0x8fe4, 0x383c, - 0x8ffc, 0x46ad, - 0x8ffd, 0x3854, - 0x9040, 0x3856, - 0x9055, 0x46ae, - 0x9056, 0x386c, - 0x905c, 0x46af, - 0x905f, 0x3873, - 0x906e, 0x3882, - 0x906f, 0x46b2, - 0x9070, 0x3883, - 0x907b, 0x388d, - 0x90a1, 0x3891, - 0x90a6, 0x46b3, - 0x90a7, 0x3896, - 0x90b8, 0x46b4, - 0x90b9, 0x38a7, - 0x90dd, 0x38cb, - 0x90f2, 0x38e0, - 0x9140, 0x38ed, - 0x9165, 0x46b5, - 0x9166, 0x3912, - 0x916e, 0x46b6, - 0x916f, 0x391a, - 0x917e, 0x46b7, - 0x91a1, 0x3929, - 0x91a2, 0x46b8, - 0x91a3, 0x392a, - 0x91c0, 0x3947, - 0x91c8, 0x46b9, - 0x91c9, 0x3950, - 0x9240, 0x3986, - 0x9245, 0x398b, - 0x9264, 0x46ba, - 0x9265, 0x39ab, - 0x926d, 0x46bb, - 0x926e, 0x39b4, - 0x92a1, 0x39c5, - 0x92b3, 0x39d3, - 0x92c9, 0x39e9, - 0x92d2, 0x39f2, - 0x92e5, 0x46bc, - 0x92e6, 0x3a05, - 0x92f2, 0x46bd, - 0x92f3, 0x3a11, - 0x9340, 0x3a1d, - 0x9368, 0x46be, - 0x9369, 0x3a45, - 0x93a1, 0x3a5b, - 0x93aa, 0x46bf, - 0x93ab, 0x3a64, - 0x93c2, 0x46c0, - 0x93c3, 0x3a7b, - 0x93e5, 0x46c1, - 0x93e6, 0x3a9d, - 0x93e8, 0x46c2, - 0x93e9, 0x3aa0, - 0x93eb, 0x46c3, - 0x93ec, 0x3aa2, - 0x9440, 0x3ab5, - 0x9446, 0x46c4, - 0x9448, 0x3abc, - 0x9479, 0x46c5, - 0x947a, 0x3aee, - 0x94a1, 0x3af3, - 0x94cb, 0x46c6, - 0x94cc, 0x3b1e, - 0x9540, 0x3b51, - 0x954d, 0x46c7, - 0x954e, 0x3b5e, - 0x955a, 0x46c8, - 0x955b, 0x3b6a, - 0x955f, 0x46c9, - 0x9560, 0x3b6f, - 0x95a1, 0x3b8e, - 0x95c6, 0x46ca, - 0x95c7, 0x3bb3, - 0x95da, 0x3bc6, - 0x9640, 0x3beb, - 0x9645, 0x3bf0, - 0x9651, 0x46cb, - 0x9652, 0x3bfd, - 0x966a, 0x46cc, - 0x966b, 0x3c16, - 0x96a1, 0x3c2a, - 0x96d4, 0x46cd, - 0x96d5, 0x3c5d, - 0x96ee, 0x3c76, - 0x96fd, 0x3c85, - 0x9740, 0x3c87, - 0x97a1, 0x3cc6, - 0x9840, 0x3d24, - 0x9844, 0x46ce, - 0x9846, 0x3d2a, - 0x986f, 0x46d0, - 0x9870, 0x3d54, - 0x9875, 0x46d1, - 0x9877, 0x3d59, - 0x9878, 0x46d3, - 0x987a, 0x3d5a, - 0x987b, 0x46d5, - 0x98a1, 0x46d9, - 0x98a3, 0x3d5b, - 0x98a4, 0x46db, - 0x98af, 0x3d5c, - 0x98b0, 0x46e6, - 0x98b4, 0x43ca, - 0x98b5, 0x46ea, - 0x98b6, 0x3d5d, - 0x98b7, 0x46eb, - 0x98b8, 0x43cc, - 0x98b9, 0x3d5e, - 0x98ba, 0x46ec, - 0x98bb, 0x43fa, - 0x98bc, 0x46ed, - 0x98bd, 0x3d5f, - 0x98bf, 0x46ee, - 0x98c2, 0x3d61, - 0x98c3, 0x46f1, - 0x98c4, 0x3d62, - 0x98c5, 0x46f2, - 0x98c6, 0x3d63, - 0x98c8, 0x46f3, - 0x98d2, 0x43cd, - 0x98d3, 0x46fd, - 0x98d8, 0x43ce, - 0x98da, 0x4702, - 0x98db, 0x43d1, - 0x98dc, 0x4703, - 0x98df, 0x43d4, - 0x98e0, 0x4706, - 0x98e3, 0x3d65, - 0x98e4, 0x4709, - 0x98e7, 0x3d66, - 0x98e8, 0x470c, - 0x98ed, 0x3d67, - 0x98ee, 0x4711, - 0x98f0, 0x3d68, - 0x98f1, 0x4713, - 0x98f2, 0x3d69, - 0x98f3, 0x4714, - 0x98f4, 0x43d5, - 0x98f6, 0x4715, - 0x98fc, 0x3d6a, - 0x98fd, 0x471b, - 0x98fe, 0x43d7, - 0x9940, 0x471c, - 0x9942, 0x43fc, - 0x9943, 0x3d6b, - 0x9944, 0x471e, - 0x9945, 0x3d6c, - 0x9946, 0x471f, - 0x9947, 0x43d8, - 0x9948, 0x4720, - 0x994f, 0x3d6d, - 0x9950, 0x4727, - 0x9954, 0x43d9, - 0x9955, 0x472b, - 0x995c, 0x43da, - 0x995d, 0x4732, - 0x9964, 0x43dc, - 0x9965, 0x4739, - 0x996a, 0x3d6e, - 0x996b, 0x473e, - 0x996e, 0x3d6f, - 0x996f, 0x4741, - 0x9975, 0x3d70, - 0x9976, 0x4747, - 0x9978, 0x3d71, - 0x9979, 0x4749, - 0x99a1, 0x474f, - 0x99a2, 0x3d72, - 0x99a3, 0x4750, - 0x99a4, 0x43c5, - 0x99a5, 0x4751, - 0x99a6, 0x43c6, - 0x99a7, 0x4752, - 0x99ae, 0x3d73, - 0x99af, 0x4759, - 0x99b2, 0x43de, - 0x99b3, 0x475c, - 0x99b6, 0x3d74, - 0x99b7, 0x475f, - 0x99ba, 0x3d75, - 0x99bb, 0x4762, - 0x99ca, 0x43e0, - 0x99cb, 0x4771, - 0x99cd, 0x43e2, - 0x99ce, 0x4773, - 0x99d3, 0x43e3, - 0x99d4, 0x4778, - 0x99d6, 0x43e5, - 0x99d7, 0x477a, - 0x99df, 0x43df, - 0x99e0, 0x4782, - 0x99e2, 0x3d76, - 0x99e3, 0x4784, - 0x99e4, 0x43ab, - 0x99e5, 0x4785, - 0x99e6, 0x43e7, - 0x99e7, 0x4786, - 0x99e8, 0x43e9, - 0x99e9, 0x4787, - 0x99ef, 0x43fd, - 0x99f0, 0x478d, - 0x99f4, 0x3d77, - 0x99f5, 0x4791, - 0x9a40, 0x479b, - 0x9a4a, 0x3d78, - 0x9a4b, 0x47a5, - 0x9a4c, 0x3d79, - 0x9a4d, 0x47a6, - 0x9a59, 0x3d7a, - 0x9a5a, 0x47b2, - 0x9a5f, 0x43af, - 0x9a60, 0x47b7, - 0x9a61, 0x3d7b, - 0x9a62, 0x47b8, - 0x9a66, 0x43ed, - 0x9a67, 0x47bc, - 0x9a68, 0x3d7c, - 0x9a69, 0x43ee, - 0x9a6a, 0x47bd, - 0x9a6b, 0x43ff, - 0x9a6c, 0x47be, - 0x9a73, 0x3d7d, - 0x9a74, 0x47c5, - 0x9a75, 0x43f1, - 0x9a76, 0x47c6, - 0x9a7e, 0x3d7e, - 0x9aa1, 0x47ce, - 0x9aa3, 0x43f3, - 0x9aa4, 0x47d0, - 0x9aa5, 0x43f2, - 0x9aa6, 0x47d1, - 0x9aa9, 0x43f8, - 0x9aaa, 0x43f4, - 0x9aab, 0x47d4, - 0x9ab2, 0x3d7f, - 0x9ab3, 0x47db, - 0x9ab7, 0x3d80, - 0x9ab8, 0x47df, - 0x9ab9, 0x3d81, - 0x9aba, 0x47e0, - 0x9abb, 0x3d82, - 0x9abc, 0x47e1, - 0x9abd, 0x43b7, - 0x9abe, 0x47e2, - 0x9ac7, 0x3d83, - 0x9ac8, 0x47eb, - 0x9ad0, 0x3d84, - 0x9ad1, 0x47f3, - 0x9ad2, 0x3d85, - 0x9ad3, 0x47f4, - 0x9ad9, 0x3d86, - 0x9adc, 0x47fa, - 0x9ae2, 0x3d89, - 0x9ae3, 0x4800, - 0x9ae4, 0x3d8a, - 0x9ae5, 0x4801, - 0x9ae8, 0x3d8b, - 0x9ae9, 0x43b0, - 0x9aea, 0x4804, - 0x9aee, 0x43b2, - 0x9aef, 0x4808, - 0x9af2, 0x3d8c, - 0x9af3, 0x480b, - 0x9af6, 0x3d8d, - 0x9af7, 0x480e, - 0x9afb, 0x3d8e, - 0x9afc, 0x4812, - 0x9b40, 0x4815, - 0x9b46, 0x3d8f, - 0x9b47, 0x481b, - 0x9b4a, 0x3d90, - 0x9b4b, 0x481e, - 0x9b54, 0x3d92, - 0x9b55, 0x4827, - 0x9b58, 0x3d93, - 0x9b59, 0x482a, - 0x9b5a, 0x3d94, - 0x9b5b, 0x482b, - 0x9b5c, 0x3d95, - 0x9b5d, 0x482c, - 0x9b5e, 0x3d96, - 0x9b60, 0x482d, - 0x9b62, 0x482e, - 0x9b70, 0x3d98, - 0x9b74, 0x483c, - 0x9b77, 0x3d9d, - 0x9b79, 0x483e, - 0x9b7c, 0x3da0, - 0x9b7d, 0x4840, - 0x9b7e, 0x3da1, - 0x9ba1, 0x3da2, - 0x9ba2, 0x4841, - 0x9ba3, 0x3da3, - 0x9ba5, 0x4842, - 0x9ba7, 0x3da5, - 0x9bab, 0x4844, - 0x9bac, 0x3da9, - 0x9bad, 0x4845, - 0x9baf, 0x3daa, - 0x9bb0, 0x4847, - 0x9bb2, 0x3dab, - 0x9bba, 0x4849, - 0x9bbe, 0x3db3, - 0x9bbf, 0x484d, - 0x9bc0, 0x3db4, - 0x9bc7, 0x484e, - 0x9bca, 0x3dbb, - 0x9bcb, 0x4851, - 0x9bcc, 0x3dbc, - 0x9bcd, 0x4852, - 0x9bce, 0x43d0, - 0x9bcf, 0x4853, - 0x9bd0, 0x3dbd, - 0x9bd2, 0x4854, - 0x9bd3, 0x3dbf, - 0x9bd4, 0x4855, - 0x9bd5, 0x3dc0, - 0x9bd6, 0x4856, - 0x9bd8, 0x3dc1, - 0x9bdb, 0x4858, - 0x9bdd, 0x3dc4, - 0x9bdf, 0x3dc5, - 0x9be0, 0x485a, - 0x9be1, 0x3dc6, - 0x9be2, 0x485b, - 0x9be3, 0x3dc7, - 0x9be4, 0x485c, - 0x9be7, 0x3dc8, - 0x9be8, 0x485f, - 0x9be9, 0x3dc9, - 0x9bed, 0x4860, - 0x9bee, 0x3dcd, - 0x9bf0, 0x4861, - 0x9bf3, 0x3dcf, - 0x9bf4, 0x4864, - 0x9bf7, 0x4866, - 0x9bf8, 0x3dd1, - 0x9bfa, 0x4867, - 0x9bfb, 0x3dd3, - 0x9bfd, 0x4868, - 0x9c40, 0x3dd5, - 0x9c43, 0x486a, - 0x9c44, 0x3dd8, - 0x9c47, 0x486b, - 0x9c48, 0x3ddb, - 0x9c49, 0x486c, - 0x9c4a, 0x3ddc, - 0x9c4b, 0x486d, - 0x9c4d, 0x3ddd, - 0x9c54, 0x486f, - 0x9c55, 0x3de4, - 0x9c56, 0x4870, - 0x9c57, 0x3de5, - 0x9c5c, 0x4871, - 0x9c5d, 0x3dea, - 0x9c5e, 0x4872, - 0x9c60, 0x3deb, - 0x9c61, 0x4874, - 0x9c63, 0x4875, - 0x9c64, 0x3ded, - 0x9c67, 0x4876, - 0x9c69, 0x4877, - 0x9c6a, 0x3df1, - 0x9c6c, 0x4878, - 0x9c6d, 0x3df2, - 0x9c6e, 0x4879, - 0x9c6f, 0x3df3, - 0x9c73, 0x487a, - 0x9c75, 0x3df7, - 0x9c78, 0x487c, - 0x9c79, 0x3dfa, - 0x9c7a, 0x487d, - 0x9c7b, 0x3dfb, - 0x9c7d, 0x487e, - 0x9c7e, 0x3dfd, - 0x9ca1, 0x3dfe, - 0x9ca3, 0x487f, - 0x9ca5, 0x3e00, - 0x9ca6, 0x4881, - 0x9ca8, 0x3e01, - 0x9caa, 0x4883, - 0x9cab, 0x3e03, - 0x9cac, 0x4884, - 0x9cad, 0x3e04, - 0x9caf, 0x4885, - 0x9cb1, 0x3e06, - 0x9cbb, 0x4887, - 0x9cbe, 0x3e12, - 0x9cc3, 0x4888, - 0x9cc6, 0x3e17, - 0x9cce, 0x488b, - 0x9ccf, 0x3e1f, - 0x9cd1, 0x3e21, - 0x9cd4, 0x488c, - 0x9cd8, 0x3e24, - 0x9cdb, 0x4890, - 0x9cdc, 0x3e27, - 0x9ce6, 0x4891, - 0x9ce7, 0x3e31, - 0x9cea, 0x4892, - 0x9ceb, 0x3e34, - 0x9ced, 0x4893, - 0x9cee, 0x3e36, - 0x9cfa, 0x4894, - 0x9cfd, 0x3e42, - 0x9cfe, 0x4897, - 0x9d40, 0x43e8, - 0x9d41, 0x4898, - 0x9d46, 0x3e43, - 0x9d47, 0x489d, - 0x9d49, 0x3e44, - 0x9d4a, 0x489f, - 0x9d4c, 0x3e46, - 0x9d4e, 0x48a1, - 0x9d4f, 0x3e48, - 0x9d50, 0x48a2, - 0x9d51, 0x3e49, - 0x9d52, 0x48a3, - 0x9d55, 0x3e4a, - 0x9d56, 0x48a6, - 0x9d58, 0x48a7, - 0x9d5b, 0x48a9, - 0x9d61, 0x43c9, - 0x9d62, 0x3e4c, - 0x9d63, 0x48af, - 0x9d64, 0x3e4d, - 0x9d65, 0x48b0, - 0x9d78, 0x43f5, - 0x9d79, 0x3e4e, - 0x9d7a, 0x48c3, - 0x9d7e, 0x3e4f, - 0x9da1, 0x48c7, - 0x9da5, 0x3e50, - 0x9da9, 0x48cb, - 0x9daa, 0x3e54, - 0x9dab, 0x48cc, - 0x9dac, 0x3e55, - 0x9dae, 0x48cd, - 0x9db0, 0x3e58, - 0x9db1, 0x48cf, - 0x9db3, 0x3e59, - 0x9db4, 0x48d1, - 0x9db5, 0x3e5a, - 0x9db6, 0x48d2, - 0x9db7, 0x3e5b, - 0x9db8, 0x48d3, - 0x9dbc, 0x3e5c, - 0x9dbe, 0x48d7, - 0x9dbf, 0x3e5e, - 0x9dc1, 0x48d8, - 0x9dc3, 0x3e60, - 0x9dc5, 0x48da, - 0x9dc7, 0x3e62, - 0x9dc9, 0x48dc, - 0x9dca, 0x3e64, - 0x9dcb, 0x48dd, - 0x9dcd, 0x3e65, - 0x9dd2, 0x48df, - 0x9dd3, 0x3e6a, - 0x9dd6, 0x48e0, - 0x9dda, 0x3e6d, - 0x9dfc, 0x48e4, - 0x9dfd, 0x3e8f, - 0x9e40, 0x3e91, - 0x9e43, 0x48e5, - 0x9e44, 0x3e95, - 0x9e5f, 0x48e6, - 0x9e60, 0x3eb1, - 0x9e63, 0x48e7, - 0x9e64, 0x3eb4, - 0x9e66, 0x48e8, - 0x9e68, 0x3eb6, - 0x9e69, 0x48ea, - 0x9e6a, 0x3eb7, - 0x9e6b, 0x48eb, - 0x9e71, 0x3eb8, - 0x9e72, 0x48f1, - 0x9e73, 0x3eb9, - 0x9e74, 0x48f2, - 0x9e77, 0x3eba, - 0x9e79, 0x48f5, - 0x9e7a, 0x3ebc, - 0x9e7b, 0x48f6, - 0x9e7c, 0x3ebd, - 0x9e7d, 0x48f7, - 0x9e7e, 0x3ebe, - 0x9ea1, 0x3ebf, - 0x9ea3, 0x48f8, - 0x9ea4, 0x3ec1, - 0x9ea7, 0x48f9, - 0x9eaa, 0x3ec5, - 0x9eab, 0x48fb, - 0x9ead, 0x3ec7, - 0x9eae, 0x48fc, - 0x9eaf, 0x3ec8, - 0x9eb2, 0x48fd, - 0x9eb4, 0x3ecb, - 0x9eb5, 0x48ff, - 0x9eb6, 0x3ecc, - 0x9eb8, 0x4900, - 0x9eb9, 0x3ece, - 0x9eba, 0x4901, - 0x9ebc, 0x3ecf, - 0x9ebd, 0x4903, - 0x9ebf, 0x3ed0, - 0x9ec1, 0x4905, - 0x9ec5, 0x3ed3, - 0x9ec6, 0x4908, - 0x9ec7, 0x3ed4, - 0x9ecb, 0x4909, - 0x9ecd, 0x3ed9, - 0x9ece, 0x490b, - 0x9ed0, 0x3eda, - 0x9ed2, 0x490d, - 0x9ed3, 0x3edc, - 0x9ed4, 0x490e, - 0x9ed6, 0x3edd, - 0x9ed8, 0x4910, - 0x9eda, 0x3edf, - 0x9ef0, 0x3ef5, - 0x9ef2, 0x4912, - 0x9ef3, 0x3ef7, - 0x9ef5, 0x3ef9, - 0x9ef6, 0x4913, - 0x9ef9, 0x3efa, - 0x9efb, 0x4916, - 0x9efc, 0x3efc, - 0x9efe, 0x3efe, - 0x9f40, 0x3eff, - 0x9f43, 0x4917, - 0x9f44, 0x3f02, - 0x9f48, 0x4918, - 0x9f49, 0x3f06, - 0x9f4b, 0x4919, - 0x9f4d, 0x3f08, - 0x9f4f, 0x3f0a, - 0x9f61, 0x3f1c, - 0x9f67, 0x491b, - 0x9f69, 0x3f23, - 0x9f70, 0x491d, - 0x9f71, 0x3f2a, - 0x9fa1, 0x3f38, - 0x9fae, 0x3f45, - 0x9fb2, 0x3f49, - 0x9fb5, 0x491e, - 0x9fb6, 0x3f4c, - 0x9fbb, 0x491f, - 0x9fbc, 0x3f51, - 0x9fbf, 0x4920, - 0x9fc1, 0x4921, - 0x9fc2, 0x3f55, - 0x9fc9, 0x3f5c, - 0x9fcc, 0x4922, - 0x9fcd, 0x3f60, - 0x9fd4, 0x4923, - 0x9fd5, 0x3f68, - 0x9fd9, 0x3f6c, - 0x9fdb, 0x3f6e, - 0x9fe4, 0x4924, - 0x9fe5, 0x3f77, - 0x9fe7, 0x3f79, - 0x9feb, 0x3f7d, - 0x9ff0, 0x3f82, - 0x9ff9, 0x4925, - 0x9ffa, 0x3f8b, - 0xa040, 0x4926, - 0xa041, 0x3f90, - 0xa047, 0x4927, - 0xa048, 0x3f96, - 0xa055, 0x4928, - 0xa056, 0x3fa3, - 0xa058, 0x3fa5, - 0xa05b, 0x3fa8, - 0xa064, 0x3fb1, - 0xa06d, 0x4929, - 0xa06e, 0x3fba, - 0xa073, 0x3fbf, - 0xa078, 0x3fc4, - 0xa07b, 0x492a, - 0xa07c, 0x3fc7, - 0xa0a1, 0x3fca, - 0xa0a2, 0x492b, - 0xa0a3, 0x3fcb, - 0xa0a6, 0x3fce, - 0xa0a7, 0x492c, - 0xa0a8, 0x3fcf, - 0xa0ae, 0x3fd5, - 0xa0b0, 0x3fd7, - 0xa0c5, 0x492d, - 0xa0c6, 0x3fec, - 0xa0d0, 0x492e, - 0xa0d1, 0x3ff6, - 0xa0d4, 0x3ff9, - 0xa0d6, 0x3ffb, - 0xa0e0, 0x4005, - 0xa0e2, 0x4007, - 0xa0e3, 0x492f, - 0xa0e5, 0x4009, - 0xa0e7, 0x4930, - 0xa0ee, 0x43b4, - 0xa0ef, 0x4937, - 0xa0f2, 0x43b8, - 0xa0f3, 0x493a, - 0xa140, 0x0063, - 0xa159, 0x35af, - 0xa15d, 0x0080, - 0xa1a1, 0x00a2, - 0xa1f6, 0x00f8, - 0xa1f7, 0x00f7, - 0xa1f8, 0x00f9, - 0xa240, 0x0100, - 0xa2a1, 0x013f, - 0xa340, 0x019d, - 0xa3a1, 0x01dc, - 0xa3bd, 0x01f7, - 0xa440, 0x0253, - 0xa4a1, 0x0292, - 0xa540, 0x02f0, - 0xa5a1, 0x032f, - 0xa640, 0x038d, - 0xa6a1, 0x03cc, - 0xa740, 0x042a, - 0xa7a1, 0x0469, - 0xa840, 0x04c7, - 0xa8a1, 0x0506, - 0xa940, 0x0564, - 0xa9a1, 0x05a3, - 0xaa40, 0x0601, - 0xaaa1, 0x0640, - 0xab40, 0x069e, - 0xaba1, 0x06dd, - 0xac40, 0x073b, - 0xaca1, 0x077a, - 0xacfe, 0x097f, - 0xad40, 0x07d7, - 0xada1, 0x0816, - 0xae40, 0x0874, - 0xaea1, 0x08b3, - 0xaf40, 0x0911, - 0xafa1, 0x0950, - 0xafd0, 0x0980, - 0xb040, 0x09af, - 0xb0a1, 0x09ee, - 0xb140, 0x0a4c, - 0xb1a1, 0x0a8b, - 0xb240, 0x0ae9, - 0xb2a1, 0x0b28, - 0xb340, 0x0b86, - 0xb3a1, 0x0bc5, - 0xb440, 0x0c23, - 0xb4a1, 0x0c62, - 0xb540, 0x0cc0, - 0xb5a1, 0x0cff, - 0xb640, 0x0d5d, - 0xb6a1, 0x0d9c, - 0xb740, 0x0dfa, - 0xb7a1, 0x0e39, - 0xb840, 0x0e97, - 0xb8a1, 0x0ed6, - 0xb940, 0x0f34, - 0xb9a1, 0x0f73, - 0xba40, 0x0fd1, - 0xbaa1, 0x1010, - 0xbb40, 0x106e, - 0xbba1, 0x10ad, - 0xbbc8, 0x10d5, - 0xbc40, 0x110c, - 0xbca1, 0x114b, - 0xbd40, 0x11a9, - 0xbda1, 0x11e8, - 0xbe40, 0x1246, - 0xbe52, 0x10d4, - 0xbe53, 0x1258, - 0xbea1, 0x1284, - 0xbf40, 0x12e2, - 0xbfa1, 0x1321, - 0xc040, 0x137f, - 0xc0a1, 0x13be, - 0xc140, 0x141c, - 0xc1a1, 0x145b, - 0xc1ab, 0x1466, - 0xc240, 0x14ba, - 0xc2a1, 0x14f9, - 0xc2cb, 0x1465, - 0xc2cc, 0x1523, - 0xc340, 0x1556, - 0xc361, 0x1578, - 0xc3a1, 0x1596, - 0xc3b9, 0x15af, - 0xc3ba, 0x15ae, - 0xc3bb, 0x15b0, - 0xc440, 0x15f4, - 0xc456, 0x1577, - 0xc457, 0x160a, - 0xc4a1, 0x1632, - 0xc540, 0x1690, - 0xc5a1, 0x16cf, - 0xc640, 0x172d, - 0xc6a1, 0x01fa, - 0xc6bf, 0x0219, - 0xc6d8, 0x35b3, - 0xc6df, 0x1794, - 0xc6e0, 0x35ba, - 0xc740, 0x35d9, - 0xc7a1, 0x3618, - 0xc840, 0x3676, - 0xc8a1, 0x36b5, - 0xc8d4, 0x44c6, - 0xc8d7, 0x451c, - 0xc8e0, 0x02dc, - 0xc8e1, 0x4525, - 0xc8e9, 0x0509, - 0xc8ea, 0x452d, - 0xc8f1, 0x09f6, - 0xc8f5, 0x4992, - 0xc940, 0x176c, - 0xc94a, 0x0274, - 0xc94b, 0x1776, - 0xc96c, 0x1798, - 0xc9a1, 0x17ab, - 0xc9be, 0x1797, - 0xc9bf, 0x17c8, - 0xc9ed, 0x17f7, - 0xca40, 0x1809, - 0xcaa1, 0x1848, - 0xcaf7, 0x17f6, - 0xcaf8, 0x189e, - 0xcb40, 0x18a5, - 0xcba1, 0x18e4, - 0xcc40, 0x1942, - 0xcca1, 0x1981, - 0xcd40, 0x19df, - 0xcda1, 0x1a1e, - 0xce40, 0x1a7c, - 0xcea1, 0x1abb, - 0xcf40, 0x1b19, - 0xcfa1, 0x1b58, - 0xd040, 0x1bb6, - 0xd0a1, 0x1bf5, - 0xd140, 0x1c53, - 0xd1a1, 0x1c92, - 0xd240, 0x1cf0, - 0xd2a1, 0x1d2f, - 0xd340, 0x1d8d, - 0xd3a1, 0x1dcc, - 0xd440, 0x1e2a, - 0xd4a1, 0x1e69, - 0xd540, 0x1ec7, - 0xd5a1, 0x1f06, - 0xd640, 0x1f64, - 0xd6a1, 0x1fa3, - 0xd6cc, 0x2254, - 0xd6cd, 0x1fcf, - 0xd740, 0x2001, - 0xd77a, 0x22b9, - 0xd77b, 0x203b, - 0xd7a1, 0x203f, - 0xd840, 0x209d, - 0xd8a1, 0x20dc, - 0xd940, 0x213a, - 0xd9a1, 0x2179, - 0xda40, 0x21d7, - 0xdaa1, 0x2216, - 0xdadf, 0x1fce, - 0xdae0, 0x2255, - 0xdb40, 0x2274, - 0xdba1, 0x22b3, - 0xdba7, 0x22ba, - 0xdc40, 0x2312, - 0xdca1, 0x2351, - 0xdd40, 0x23af, - 0xdda1, 0x23ee, - 0xddfc, 0x2381, - 0xddfd, 0x2449, - 0xde40, 0x244b, - 0xdea1, 0x248a, - 0xdf40, 0x24e8, - 0xdfa1, 0x2527, - 0xe040, 0x2585, - 0xe0a1, 0x25c4, - 0xe140, 0x2622, - 0xe1a1, 0x2661, - 0xe240, 0x26bf, - 0xe2a1, 0x26fe, - 0xe340, 0x275c, - 0xe3a1, 0x279b, - 0xe440, 0x27f9, - 0xe4a1, 0x2838, - 0xe540, 0x2896, - 0xe5a1, 0x28d5, - 0xe640, 0x2933, - 0xe6a1, 0x2972, - 0xe740, 0x29d0, - 0xe7a1, 0x2a0f, - 0xe840, 0x2a6d, - 0xe8a1, 0x2aac, - 0xe8a3, 0x2aaf, - 0xe940, 0x2b0b, - 0xe976, 0x2b42, - 0xe9a1, 0x2b4b, - 0xea40, 0x2ba9, - 0xeaa1, 0x2be8, - 0xeb40, 0x2c46, - 0xeb5b, 0x2c62, - 0xeba1, 0x2c86, - 0xebf1, 0x2aae, - 0xebf2, 0x2cd6, - 0xec40, 0x2ce3, - 0xeca1, 0x2d22, - 0xecde, 0x2b41, - 0xecdf, 0x2d5f, - 0xed40, 0x2d7f, - 0xeda1, 0x2dbe, - 0xedaa, 0x2dc8, - 0xee40, 0x2e1d, - 0xeea1, 0x2e5c, - 0xeeeb, 0x3014, - 0xeeec, 0x2ea6, - 0xef40, 0x2eb9, - 0xefa1, 0x2ef8, - 0xf040, 0x2f56, - 0xf056, 0x2dc7, - 0xf057, 0x2f6c, - 0xf0a1, 0x2f94, - 0xf0cb, 0x2c61, - 0xf0cc, 0x2fbe, - 0xf140, 0x2ff1, - 0xf163, 0x3015, - 0xf16b, 0x3160, - 0xf16c, 0x301d, - 0xf1a1, 0x3030, - 0xf240, 0x308e, - 0xf268, 0x31ef, - 0xf269, 0x30b6, - 0xf2a1, 0x30cc, - 0xf2c3, 0x30ef, - 0xf340, 0x312b, - 0xf375, 0x3161, - 0xf3a1, 0x316b, - 0xf440, 0x31c9, - 0xf466, 0x31f0, - 0xf4a1, 0x3209, - 0xf4b5, 0x30ee, - 0xf4b6, 0x321d, - 0xf4fd, 0x3265, - 0xf540, 0x3267, - 0xf5a1, 0x32a6, - 0xf640, 0x3304, - 0xf663, 0x3264, - 0xf664, 0x3327, - 0xf6a1, 0x3342, - 0xf740, 0x33a0, - 0xf7a1, 0x33df, - 0xf840, 0x343d, - 0xf8a1, 0x347c, - 0xf940, 0x34da, - 0xf977, 0x3512, - 0xf9a1, 0x351a, - 0xf9c4, 0x3511, - 0xf9c5, 0x353d, - 0xf9c6, 0x3549, - 0xf9c7, 0x353e, - 0xf9d2, 0x354a, - 0xf9d6, 0x36e8, - 0xfa40, 0x400b, - 0xfa60, 0x402b, - 0xfa67, 0x4032, - 0xfaa1, 0x404a, - 0xfaa9, 0x4946, - 0xfaab, 0x4054, - 0xfabe, 0x4067, - 0xfac6, 0x406f, - 0xfad6, 0x407f, - 0xfb40, 0x40a8, - 0xfb49, 0x40b1, - 0xfb53, 0x4948, - 0xfb54, 0x40bc, - 0xfb6e, 0x4949, - 0xfb6f, 0x40d7, - 0xfba1, 0x40e7, - 0xfba3, 0x494a, - 0xfba4, 0x40ea, - 0xfbb9, 0x40ff, - 0xfbbf, 0x494b, - 0xfbc0, 0x4105, - 0xfbcd, 0x494c, - 0xfbce, 0x4112, - 0xfbf4, 0x4138, - 0xfbfa, 0x413e, - 0xfc40, 0x4143, - 0xfc4a, 0x494d, - 0xfc4b, 0x414d, - 0xfc50, 0x4151, - 0xfc52, 0x494e, - 0xfc53, 0x4153, - 0xfc63, 0x494f, - 0xfc64, 0x4163, - 0xfc6d, 0x4950, - 0xfc6e, 0x416d, - 0xfc75, 0x4951, - 0xfc76, 0x4174, - 0xfca1, 0x417d, - 0xfcba, 0x4195, - 0xfcbc, 0x4952, - 0xfcbe, 0x4198, - 0xfccc, 0x4954, - 0xfccd, 0x41a7, - 0xfce3, 0x4955, - 0xfce4, 0x41bd, - 0xfcee, 0x4956, - 0xfcef, 0x41c7, - 0xfcf2, 0x41ca, - 0xfd40, 0x41d7, - 0xfd49, 0x4957, - 0xfd4a, 0x41e0, - 0xfd6a, 0x4958, - 0xfd6b, 0x4201, - 0xfda1, 0x4215, - 0xfdb9, 0x422d, - 0xfdbc, 0x4230, - 0xfde3, 0x4959, - 0xfde4, 0x4258, - 0xfdf2, 0x495a, - 0xfdf3, 0x4266, - 0xfe40, 0x4272, - 0xfe53, 0x4285, - 0xfe6d, 0x495b, - 0xfe6e, 0x429f, - 0xfe70, 0x42a1, - 0xfe78, 0x495c, - 0xfe79, 0x42a9, - 0xfea1, 0x42af, - 0xfeab, 0x42b8, - 0xfede, 0x495d, - 0xfee0, 0x42eb, - 0xfeed, 0x495f, - 0xfeef, 0x42f8, - 0xa14b, 0x354e, - 0xa15a, 0x35af, - 0xa15c, 0x35b1, - 0xa15d, 0x0082, - 0xa161, 0x0086, - 0xa165, 0x008a, - 0xa169, 0x008e, - 0xa16d, 0x0092, - 0xa171, 0x0096, - 0xa175, 0x009a, - 0xa179, 0x009e, - 0xa1e3, 0x354f, - 0xc6e4, 0x3711, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 cns13ETHKB5VEnc16 = { - 1, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, - 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, - 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, - 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, - 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, - 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, - 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, - 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, - 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, - 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - cns13ETHKB5VMap2, 1139 -}; - -static Gushort cns13ETenB5HMap2[510] = { - 0x0000, 0x0000, - 0xa140, 0x0063, - 0xa159, 0x35af, - 0xa15d, 0x0080, - 0xa1a1, 0x00a2, - 0xa1f6, 0x00f8, - 0xa1f7, 0x00f7, - 0xa1f8, 0x00f9, - 0xa240, 0x0100, - 0xa2a1, 0x013f, - 0xa340, 0x019d, - 0xa3a1, 0x01dc, - 0xa3bd, 0x01f7, - 0xa440, 0x0253, - 0xa4a1, 0x0292, - 0xa540, 0x02f0, - 0xa5a1, 0x032f, - 0xa640, 0x038d, - 0xa6a1, 0x03cc, - 0xa740, 0x042a, - 0xa7a1, 0x0469, - 0xa840, 0x04c7, - 0xa8a1, 0x0506, - 0xa940, 0x0564, - 0xa9a1, 0x05a3, - 0xaa40, 0x0601, - 0xaaa1, 0x0640, - 0xab40, 0x069e, - 0xaba1, 0x06dd, - 0xac40, 0x073b, - 0xaca1, 0x077a, - 0xacfe, 0x097f, - 0xad40, 0x07d7, - 0xada1, 0x0816, - 0xae40, 0x0874, - 0xaea1, 0x08b3, - 0xaf40, 0x0911, - 0xafa1, 0x0950, - 0xafd0, 0x0980, - 0xb040, 0x09af, - 0xb0a1, 0x09ee, - 0xb140, 0x0a4c, - 0xb1a1, 0x0a8b, - 0xb240, 0x0ae9, - 0xb2a1, 0x0b28, - 0xb340, 0x0b86, - 0xb3a1, 0x0bc5, - 0xb440, 0x0c23, - 0xb4a1, 0x0c62, - 0xb540, 0x0cc0, - 0xb5a1, 0x0cff, - 0xb640, 0x0d5d, - 0xb6a1, 0x0d9c, - 0xb740, 0x0dfa, - 0xb7a1, 0x0e39, - 0xb840, 0x0e97, - 0xb8a1, 0x0ed6, - 0xb940, 0x0f34, - 0xb9a1, 0x0f73, - 0xba40, 0x0fd1, - 0xbaa1, 0x1010, - 0xbb40, 0x106e, - 0xbba1, 0x10ad, - 0xbbc8, 0x10d5, - 0xbc40, 0x110c, - 0xbca1, 0x114b, - 0xbd40, 0x11a9, - 0xbda1, 0x11e8, - 0xbe40, 0x1246, - 0xbe52, 0x10d4, - 0xbe53, 0x1258, - 0xbea1, 0x1284, - 0xbf40, 0x12e2, - 0xbfa1, 0x1321, - 0xc040, 0x137f, - 0xc0a1, 0x13be, - 0xc140, 0x141c, - 0xc1a1, 0x145b, - 0xc1ab, 0x1466, - 0xc240, 0x14ba, - 0xc2a1, 0x14f9, - 0xc2cb, 0x1465, - 0xc2cc, 0x1523, - 0xc340, 0x1556, - 0xc361, 0x1578, - 0xc3a1, 0x1596, - 0xc3b9, 0x15af, - 0xc3ba, 0x15ae, - 0xc3bb, 0x15b0, - 0xc440, 0x15f4, - 0xc456, 0x1577, - 0xc457, 0x160a, - 0xc4a1, 0x1632, - 0xc540, 0x1690, - 0xc5a1, 0x16cf, - 0xc640, 0x172d, - 0xc6a1, 0x01fa, - 0xc6bf, 0x0219, - 0xc6d8, 0x35b3, - 0xc6df, 0x1794, - 0xc6e0, 0x35ba, - 0xc740, 0x35d9, - 0xc7a1, 0x3618, - 0xc840, 0x3676, - 0xc8a1, 0x36b5, - 0xc940, 0x176c, - 0xc94a, 0x0274, - 0xc94b, 0x1776, - 0xc96c, 0x1798, - 0xc9a1, 0x17ab, - 0xc9be, 0x1797, - 0xc9bf, 0x17c8, - 0xc9ed, 0x17f7, - 0xca40, 0x1809, - 0xcaa1, 0x1848, - 0xcaf7, 0x17f6, - 0xcaf8, 0x189e, - 0xcb40, 0x18a5, - 0xcba1, 0x18e4, - 0xcc40, 0x1942, - 0xcca1, 0x1981, - 0xcd40, 0x19df, - 0xcda1, 0x1a1e, - 0xce40, 0x1a7c, - 0xcea1, 0x1abb, - 0xcf40, 0x1b19, - 0xcfa1, 0x1b58, - 0xd040, 0x1bb6, - 0xd0a1, 0x1bf5, - 0xd140, 0x1c53, - 0xd1a1, 0x1c92, - 0xd240, 0x1cf0, - 0xd2a1, 0x1d2f, - 0xd340, 0x1d8d, - 0xd3a1, 0x1dcc, - 0xd440, 0x1e2a, - 0xd4a1, 0x1e69, - 0xd540, 0x1ec7, - 0xd5a1, 0x1f06, - 0xd640, 0x1f64, - 0xd6a1, 0x1fa3, - 0xd6cc, 0x2254, - 0xd6cd, 0x1fcf, - 0xd740, 0x2001, - 0xd77a, 0x22b9, - 0xd77b, 0x203b, - 0xd7a1, 0x203f, - 0xd840, 0x209d, - 0xd8a1, 0x20dc, - 0xd940, 0x213a, - 0xd9a1, 0x2179, - 0xda40, 0x21d7, - 0xdaa1, 0x2216, - 0xdadf, 0x1fce, - 0xdae0, 0x2255, - 0xdb40, 0x2274, - 0xdba1, 0x22b3, - 0xdba7, 0x22ba, - 0xdc40, 0x2312, - 0xdca1, 0x2351, - 0xdd40, 0x23af, - 0xdda1, 0x23ee, - 0xddfc, 0x2381, - 0xddfd, 0x2449, - 0xde40, 0x244b, - 0xdea1, 0x248a, - 0xdf40, 0x24e8, - 0xdfa1, 0x2527, - 0xe040, 0x2585, - 0xe0a1, 0x25c4, - 0xe140, 0x2622, - 0xe1a1, 0x2661, - 0xe240, 0x26bf, - 0xe2a1, 0x26fe, - 0xe340, 0x275c, - 0xe3a1, 0x279b, - 0xe440, 0x27f9, - 0xe4a1, 0x2838, - 0xe540, 0x2896, - 0xe5a1, 0x28d5, - 0xe640, 0x2933, - 0xe6a1, 0x2972, - 0xe740, 0x29d0, - 0xe7a1, 0x2a0f, - 0xe840, 0x2a6d, - 0xe8a1, 0x2aac, - 0xe8a3, 0x2aaf, - 0xe940, 0x2b0b, - 0xe976, 0x2b42, - 0xe9a1, 0x2b4b, - 0xea40, 0x2ba9, - 0xeaa1, 0x2be8, - 0xeb40, 0x2c46, - 0xeb5b, 0x2c62, - 0xeba1, 0x2c86, - 0xebf1, 0x2aae, - 0xebf2, 0x2cd6, - 0xec40, 0x2ce3, - 0xeca1, 0x2d22, - 0xecde, 0x2b41, - 0xecdf, 0x2d5f, - 0xed40, 0x2d7f, - 0xeda1, 0x2dbe, - 0xedaa, 0x2dc8, - 0xee40, 0x2e1d, - 0xeea1, 0x2e5c, - 0xeeeb, 0x3014, - 0xeeec, 0x2ea6, - 0xef40, 0x2eb9, - 0xefa1, 0x2ef8, - 0xf040, 0x2f56, - 0xf056, 0x2dc7, - 0xf057, 0x2f6c, - 0xf0a1, 0x2f94, - 0xf0cb, 0x2c61, - 0xf0cc, 0x2fbe, - 0xf140, 0x2ff1, - 0xf163, 0x3015, - 0xf16b, 0x3160, - 0xf16c, 0x301d, - 0xf1a1, 0x3030, - 0xf240, 0x308e, - 0xf268, 0x31ef, - 0xf269, 0x30b6, - 0xf2a1, 0x30cc, - 0xf2c3, 0x30ef, - 0xf340, 0x312b, - 0xf375, 0x3161, - 0xf3a1, 0x316b, - 0xf440, 0x31c9, - 0xf466, 0x31f0, - 0xf4a1, 0x3209, - 0xf4b5, 0x30ee, - 0xf4b6, 0x321d, - 0xf4fd, 0x3265, - 0xf540, 0x3267, - 0xf5a1, 0x32a6, - 0xf640, 0x3304, - 0xf663, 0x3264, - 0xf664, 0x3327, - 0xf6a1, 0x3342, - 0xf740, 0x33a0, - 0xf7a1, 0x33df, - 0xf840, 0x343d, - 0xf8a1, 0x347c, - 0xf940, 0x34da, - 0xf977, 0x3512, - 0xf9a1, 0x351a, - 0xf9c4, 0x3511, - 0xf9c5, 0x353d, - 0xf9c6, 0x3549, - 0xf9c7, 0x353e, - 0xf9d2, 0x354a, - 0xf9d6, 0x36e8, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 cns13ETenB5HEnc16 = { - 0, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x3550, 0x3551, 0x3552, 0x3553, 0x3554, 0x3555, 0x3556, 0x3557, - 0x3558, 0x3559, 0x355a, 0x355b, 0x355c, 0x355d, 0x355e, 0x355f, - 0x3560, 0x3561, 0x3562, 0x3563, 0x3564, 0x3565, 0x3566, 0x3567, - 0x3568, 0x3569, 0x356a, 0x356b, 0x356c, 0x356d, 0x356e, 0x356f, - 0x3570, 0x3571, 0x3572, 0x3573, 0x3574, 0x3575, 0x3576, 0x3577, - 0x3578, 0x3579, 0x357a, 0x357b, 0x357c, 0x357d, 0x357e, 0x357f, - 0x3580, 0x3581, 0x3582, 0x3583, 0x3584, 0x3585, 0x3586, 0x3587, - 0x3588, 0x3589, 0x358a, 0x358b, 0x358c, 0x358d, 0x358e, 0x358f, - 0x3590, 0x3591, 0x3592, 0x3593, 0x3594, 0x3595, 0x3596, 0x3597, - 0x3598, 0x3599, 0x359a, 0x359b, 0x359c, 0x359d, 0x359e, 0x359f, - 0x35a0, 0x35a1, 0x35a2, 0x35a3, 0x35a4, 0x35a5, 0x35a6, 0x35a7, - 0x35a8, 0x35a9, 0x35aa, 0x35ab, 0x35ac, 0x35ad, 0x35ae, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - cns13ETenB5HMap2, 255 -}; - -static Gushort cns13ETenB5VMap2[536] = { - 0x0000, 0x0000, - 0xa140, 0x0063, - 0xa159, 0x35af, - 0xa15d, 0x0080, - 0xa1a1, 0x00a2, - 0xa1f6, 0x00f8, - 0xa1f7, 0x00f7, - 0xa1f8, 0x00f9, - 0xa240, 0x0100, - 0xa2a1, 0x013f, - 0xa340, 0x019d, - 0xa3a1, 0x01dc, - 0xa3bd, 0x01f7, - 0xa440, 0x0253, - 0xa4a1, 0x0292, - 0xa540, 0x02f0, - 0xa5a1, 0x032f, - 0xa640, 0x038d, - 0xa6a1, 0x03cc, - 0xa740, 0x042a, - 0xa7a1, 0x0469, - 0xa840, 0x04c7, - 0xa8a1, 0x0506, - 0xa940, 0x0564, - 0xa9a1, 0x05a3, - 0xaa40, 0x0601, - 0xaaa1, 0x0640, - 0xab40, 0x069e, - 0xaba1, 0x06dd, - 0xac40, 0x073b, - 0xaca1, 0x077a, - 0xacfe, 0x097f, - 0xad40, 0x07d7, - 0xada1, 0x0816, - 0xae40, 0x0874, - 0xaea1, 0x08b3, - 0xaf40, 0x0911, - 0xafa1, 0x0950, - 0xafd0, 0x0980, - 0xb040, 0x09af, - 0xb0a1, 0x09ee, - 0xb140, 0x0a4c, - 0xb1a1, 0x0a8b, - 0xb240, 0x0ae9, - 0xb2a1, 0x0b28, - 0xb340, 0x0b86, - 0xb3a1, 0x0bc5, - 0xb440, 0x0c23, - 0xb4a1, 0x0c62, - 0xb540, 0x0cc0, - 0xb5a1, 0x0cff, - 0xb640, 0x0d5d, - 0xb6a1, 0x0d9c, - 0xb740, 0x0dfa, - 0xb7a1, 0x0e39, - 0xb840, 0x0e97, - 0xb8a1, 0x0ed6, - 0xb940, 0x0f34, - 0xb9a1, 0x0f73, - 0xba40, 0x0fd1, - 0xbaa1, 0x1010, - 0xbb40, 0x106e, - 0xbba1, 0x10ad, - 0xbbc8, 0x10d5, - 0xbc40, 0x110c, - 0xbca1, 0x114b, - 0xbd40, 0x11a9, - 0xbda1, 0x11e8, - 0xbe40, 0x1246, - 0xbe52, 0x10d4, - 0xbe53, 0x1258, - 0xbea1, 0x1284, - 0xbf40, 0x12e2, - 0xbfa1, 0x1321, - 0xc040, 0x137f, - 0xc0a1, 0x13be, - 0xc140, 0x141c, - 0xc1a1, 0x145b, - 0xc1ab, 0x1466, - 0xc240, 0x14ba, - 0xc2a1, 0x14f9, - 0xc2cb, 0x1465, - 0xc2cc, 0x1523, - 0xc340, 0x1556, - 0xc361, 0x1578, - 0xc3a1, 0x1596, - 0xc3b9, 0x15af, - 0xc3ba, 0x15ae, - 0xc3bb, 0x15b0, - 0xc440, 0x15f4, - 0xc456, 0x1577, - 0xc457, 0x160a, - 0xc4a1, 0x1632, - 0xc540, 0x1690, - 0xc5a1, 0x16cf, - 0xc640, 0x172d, - 0xc6a1, 0x01fa, - 0xc6bf, 0x0219, - 0xc6d8, 0x35b3, - 0xc6df, 0x1794, - 0xc6e0, 0x35ba, - 0xc740, 0x35d9, - 0xc7a1, 0x3618, - 0xc840, 0x3676, - 0xc8a1, 0x36b5, - 0xc940, 0x176c, - 0xc94a, 0x0274, - 0xc94b, 0x1776, - 0xc96c, 0x1798, - 0xc9a1, 0x17ab, - 0xc9be, 0x1797, - 0xc9bf, 0x17c8, - 0xc9ed, 0x17f7, - 0xca40, 0x1809, - 0xcaa1, 0x1848, - 0xcaf7, 0x17f6, - 0xcaf8, 0x189e, - 0xcb40, 0x18a5, - 0xcba1, 0x18e4, - 0xcc40, 0x1942, - 0xcca1, 0x1981, - 0xcd40, 0x19df, - 0xcda1, 0x1a1e, - 0xce40, 0x1a7c, - 0xcea1, 0x1abb, - 0xcf40, 0x1b19, - 0xcfa1, 0x1b58, - 0xd040, 0x1bb6, - 0xd0a1, 0x1bf5, - 0xd140, 0x1c53, - 0xd1a1, 0x1c92, - 0xd240, 0x1cf0, - 0xd2a1, 0x1d2f, - 0xd340, 0x1d8d, - 0xd3a1, 0x1dcc, - 0xd440, 0x1e2a, - 0xd4a1, 0x1e69, - 0xd540, 0x1ec7, - 0xd5a1, 0x1f06, - 0xd640, 0x1f64, - 0xd6a1, 0x1fa3, - 0xd6cc, 0x2254, - 0xd6cd, 0x1fcf, - 0xd740, 0x2001, - 0xd77a, 0x22b9, - 0xd77b, 0x203b, - 0xd7a1, 0x203f, - 0xd840, 0x209d, - 0xd8a1, 0x20dc, - 0xd940, 0x213a, - 0xd9a1, 0x2179, - 0xda40, 0x21d7, - 0xdaa1, 0x2216, - 0xdadf, 0x1fce, - 0xdae0, 0x2255, - 0xdb40, 0x2274, - 0xdba1, 0x22b3, - 0xdba7, 0x22ba, - 0xdc40, 0x2312, - 0xdca1, 0x2351, - 0xdd40, 0x23af, - 0xdda1, 0x23ee, - 0xddfc, 0x2381, - 0xddfd, 0x2449, - 0xde40, 0x244b, - 0xdea1, 0x248a, - 0xdf40, 0x24e8, - 0xdfa1, 0x2527, - 0xe040, 0x2585, - 0xe0a1, 0x25c4, - 0xe140, 0x2622, - 0xe1a1, 0x2661, - 0xe240, 0x26bf, - 0xe2a1, 0x26fe, - 0xe340, 0x275c, - 0xe3a1, 0x279b, - 0xe440, 0x27f9, - 0xe4a1, 0x2838, - 0xe540, 0x2896, - 0xe5a1, 0x28d5, - 0xe640, 0x2933, - 0xe6a1, 0x2972, - 0xe740, 0x29d0, - 0xe7a1, 0x2a0f, - 0xe840, 0x2a6d, - 0xe8a1, 0x2aac, - 0xe8a3, 0x2aaf, - 0xe940, 0x2b0b, - 0xe976, 0x2b42, - 0xe9a1, 0x2b4b, - 0xea40, 0x2ba9, - 0xeaa1, 0x2be8, - 0xeb40, 0x2c46, - 0xeb5b, 0x2c62, - 0xeba1, 0x2c86, - 0xebf1, 0x2aae, - 0xebf2, 0x2cd6, - 0xec40, 0x2ce3, - 0xeca1, 0x2d22, - 0xecde, 0x2b41, - 0xecdf, 0x2d5f, - 0xed40, 0x2d7f, - 0xeda1, 0x2dbe, - 0xedaa, 0x2dc8, - 0xee40, 0x2e1d, - 0xeea1, 0x2e5c, - 0xeeeb, 0x3014, - 0xeeec, 0x2ea6, - 0xef40, 0x2eb9, - 0xefa1, 0x2ef8, - 0xf040, 0x2f56, - 0xf056, 0x2dc7, - 0xf057, 0x2f6c, - 0xf0a1, 0x2f94, - 0xf0cb, 0x2c61, - 0xf0cc, 0x2fbe, - 0xf140, 0x2ff1, - 0xf163, 0x3015, - 0xf16b, 0x3160, - 0xf16c, 0x301d, - 0xf1a1, 0x3030, - 0xf240, 0x308e, - 0xf268, 0x31ef, - 0xf269, 0x30b6, - 0xf2a1, 0x30cc, - 0xf2c3, 0x30ef, - 0xf340, 0x312b, - 0xf375, 0x3161, - 0xf3a1, 0x316b, - 0xf440, 0x31c9, - 0xf466, 0x31f0, - 0xf4a1, 0x3209, - 0xf4b5, 0x30ee, - 0xf4b6, 0x321d, - 0xf4fd, 0x3265, - 0xf540, 0x3267, - 0xf5a1, 0x32a6, - 0xf640, 0x3304, - 0xf663, 0x3264, - 0xf664, 0x3327, - 0xf6a1, 0x3342, - 0xf740, 0x33a0, - 0xf7a1, 0x33df, - 0xf840, 0x343d, - 0xf8a1, 0x347c, - 0xf940, 0x34da, - 0xf977, 0x3512, - 0xf9a1, 0x351a, - 0xf9c4, 0x3511, - 0xf9c5, 0x353d, - 0xf9c6, 0x3549, - 0xf9c7, 0x353e, - 0xf9d2, 0x354a, - 0xf9d6, 0x36e8, - 0xa14b, 0x354e, - 0xa15a, 0x35af, - 0xa15c, 0x35b1, - 0xa15d, 0x0082, - 0xa161, 0x0086, - 0xa165, 0x008a, - 0xa169, 0x008e, - 0xa16d, 0x0092, - 0xa171, 0x0096, - 0xa175, 0x009a, - 0xa179, 0x009e, - 0xa1e3, 0x354f, - 0xc6e4, 0x3711, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 cns13ETenB5VEnc16 = { - 1, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x3550, 0x3551, 0x3552, 0x3553, 0x3554, 0x3555, 0x3556, 0x3557, - 0x3558, 0x3559, 0x355a, 0x355b, 0x355c, 0x355d, 0x355e, 0x355f, - 0x3560, 0x3561, 0x3562, 0x3563, 0x3564, 0x3565, 0x3566, 0x3567, - 0x3568, 0x3569, 0x356a, 0x356b, 0x356c, 0x356d, 0x356e, 0x356f, - 0x3570, 0x3571, 0x3572, 0x3573, 0x3574, 0x3575, 0x3576, 0x3577, - 0x3578, 0x3579, 0x357a, 0x357b, 0x357c, 0x357d, 0x357e, 0x357f, - 0x3580, 0x3581, 0x3582, 0x3583, 0x3584, 0x3585, 0x3586, 0x3587, - 0x3588, 0x3589, 0x358a, 0x358b, 0x358c, 0x358d, 0x358e, 0x358f, - 0x3590, 0x3591, 0x3592, 0x3593, 0x3594, 0x3595, 0x3596, 0x3597, - 0x3598, 0x3599, 0x359a, 0x359b, 0x359c, 0x359d, 0x359e, 0x359f, - 0x35a0, 0x35a1, 0x35a2, 0x35a3, 0x35a4, 0x35a5, 0x35a6, 0x35a7, - 0x35a8, 0x35a9, 0x35aa, 0x35ab, 0x35ac, 0x35ad, 0x35ae, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - cns13ETenB5VMap2, 268 -}; - -static Gushort cns13ETenmsB5HMap2[510] = { - 0x0000, 0x0000, - 0xa140, 0x0063, - 0xa159, 0x35af, - 0xa15d, 0x0080, - 0xa1a1, 0x00a2, - 0xa1f6, 0x00f8, - 0xa1f7, 0x00f7, - 0xa1f8, 0x00f9, - 0xa240, 0x0100, - 0xa2a1, 0x013f, - 0xa340, 0x019d, - 0xa3a1, 0x01dc, - 0xa3bd, 0x01f7, - 0xa440, 0x0253, - 0xa4a1, 0x0292, - 0xa540, 0x02f0, - 0xa5a1, 0x032f, - 0xa640, 0x038d, - 0xa6a1, 0x03cc, - 0xa740, 0x042a, - 0xa7a1, 0x0469, - 0xa840, 0x04c7, - 0xa8a1, 0x0506, - 0xa940, 0x0564, - 0xa9a1, 0x05a3, - 0xaa40, 0x0601, - 0xaaa1, 0x0640, - 0xab40, 0x069e, - 0xaba1, 0x06dd, - 0xac40, 0x073b, - 0xaca1, 0x077a, - 0xacfe, 0x097f, - 0xad40, 0x07d7, - 0xada1, 0x0816, - 0xae40, 0x0874, - 0xaea1, 0x08b3, - 0xaf40, 0x0911, - 0xafa1, 0x0950, - 0xafd0, 0x0980, - 0xb040, 0x09af, - 0xb0a1, 0x09ee, - 0xb140, 0x0a4c, - 0xb1a1, 0x0a8b, - 0xb240, 0x0ae9, - 0xb2a1, 0x0b28, - 0xb340, 0x0b86, - 0xb3a1, 0x0bc5, - 0xb440, 0x0c23, - 0xb4a1, 0x0c62, - 0xb540, 0x0cc0, - 0xb5a1, 0x0cff, - 0xb640, 0x0d5d, - 0xb6a1, 0x0d9c, - 0xb740, 0x0dfa, - 0xb7a1, 0x0e39, - 0xb840, 0x0e97, - 0xb8a1, 0x0ed6, - 0xb940, 0x0f34, - 0xb9a1, 0x0f73, - 0xba40, 0x0fd1, - 0xbaa1, 0x1010, - 0xbb40, 0x106e, - 0xbba1, 0x10ad, - 0xbbc8, 0x10d5, - 0xbc40, 0x110c, - 0xbca1, 0x114b, - 0xbd40, 0x11a9, - 0xbda1, 0x11e8, - 0xbe40, 0x1246, - 0xbe52, 0x10d4, - 0xbe53, 0x1258, - 0xbea1, 0x1284, - 0xbf40, 0x12e2, - 0xbfa1, 0x1321, - 0xc040, 0x137f, - 0xc0a1, 0x13be, - 0xc140, 0x141c, - 0xc1a1, 0x145b, - 0xc1ab, 0x1466, - 0xc240, 0x14ba, - 0xc2a1, 0x14f9, - 0xc2cb, 0x1465, - 0xc2cc, 0x1523, - 0xc340, 0x1556, - 0xc361, 0x1578, - 0xc3a1, 0x1596, - 0xc3b9, 0x15af, - 0xc3ba, 0x15ae, - 0xc3bb, 0x15b0, - 0xc440, 0x15f4, - 0xc456, 0x1577, - 0xc457, 0x160a, - 0xc4a1, 0x1632, - 0xc540, 0x1690, - 0xc5a1, 0x16cf, - 0xc640, 0x172d, - 0xc6a1, 0x01fa, - 0xc6bf, 0x0219, - 0xc6d8, 0x35b3, - 0xc6df, 0x1794, - 0xc6e0, 0x35ba, - 0xc740, 0x35d9, - 0xc7a1, 0x3618, - 0xc840, 0x3676, - 0xc8a1, 0x36b5, - 0xc940, 0x176c, - 0xc94a, 0x0274, - 0xc94b, 0x1776, - 0xc96c, 0x1798, - 0xc9a1, 0x17ab, - 0xc9be, 0x1797, - 0xc9bf, 0x17c8, - 0xc9ed, 0x17f7, - 0xca40, 0x1809, - 0xcaa1, 0x1848, - 0xcaf7, 0x17f6, - 0xcaf8, 0x189e, - 0xcb40, 0x18a5, - 0xcba1, 0x18e4, - 0xcc40, 0x1942, - 0xcca1, 0x1981, - 0xcd40, 0x19df, - 0xcda1, 0x1a1e, - 0xce40, 0x1a7c, - 0xcea1, 0x1abb, - 0xcf40, 0x1b19, - 0xcfa1, 0x1b58, - 0xd040, 0x1bb6, - 0xd0a1, 0x1bf5, - 0xd140, 0x1c53, - 0xd1a1, 0x1c92, - 0xd240, 0x1cf0, - 0xd2a1, 0x1d2f, - 0xd340, 0x1d8d, - 0xd3a1, 0x1dcc, - 0xd440, 0x1e2a, - 0xd4a1, 0x1e69, - 0xd540, 0x1ec7, - 0xd5a1, 0x1f06, - 0xd640, 0x1f64, - 0xd6a1, 0x1fa3, - 0xd6cc, 0x2254, - 0xd6cd, 0x1fcf, - 0xd740, 0x2001, - 0xd77a, 0x22b9, - 0xd77b, 0x203b, - 0xd7a1, 0x203f, - 0xd840, 0x209d, - 0xd8a1, 0x20dc, - 0xd940, 0x213a, - 0xd9a1, 0x2179, - 0xda40, 0x21d7, - 0xdaa1, 0x2216, - 0xdadf, 0x1fce, - 0xdae0, 0x2255, - 0xdb40, 0x2274, - 0xdba1, 0x22b3, - 0xdba7, 0x22ba, - 0xdc40, 0x2312, - 0xdca1, 0x2351, - 0xdd40, 0x23af, - 0xdda1, 0x23ee, - 0xddfc, 0x2381, - 0xddfd, 0x2449, - 0xde40, 0x244b, - 0xdea1, 0x248a, - 0xdf40, 0x24e8, - 0xdfa1, 0x2527, - 0xe040, 0x2585, - 0xe0a1, 0x25c4, - 0xe140, 0x2622, - 0xe1a1, 0x2661, - 0xe240, 0x26bf, - 0xe2a1, 0x26fe, - 0xe340, 0x275c, - 0xe3a1, 0x279b, - 0xe440, 0x27f9, - 0xe4a1, 0x2838, - 0xe540, 0x2896, - 0xe5a1, 0x28d5, - 0xe640, 0x2933, - 0xe6a1, 0x2972, - 0xe740, 0x29d0, - 0xe7a1, 0x2a0f, - 0xe840, 0x2a6d, - 0xe8a1, 0x2aac, - 0xe8a3, 0x2aaf, - 0xe940, 0x2b0b, - 0xe976, 0x2b42, - 0xe9a1, 0x2b4b, - 0xea40, 0x2ba9, - 0xeaa1, 0x2be8, - 0xeb40, 0x2c46, - 0xeb5b, 0x2c62, - 0xeba1, 0x2c86, - 0xebf1, 0x2aae, - 0xebf2, 0x2cd6, - 0xec40, 0x2ce3, - 0xeca1, 0x2d22, - 0xecde, 0x2b41, - 0xecdf, 0x2d5f, - 0xed40, 0x2d7f, - 0xeda1, 0x2dbe, - 0xedaa, 0x2dc8, - 0xee40, 0x2e1d, - 0xeea1, 0x2e5c, - 0xeeeb, 0x3014, - 0xeeec, 0x2ea6, - 0xef40, 0x2eb9, - 0xefa1, 0x2ef8, - 0xf040, 0x2f56, - 0xf056, 0x2dc7, - 0xf057, 0x2f6c, - 0xf0a1, 0x2f94, - 0xf0cb, 0x2c61, - 0xf0cc, 0x2fbe, - 0xf140, 0x2ff1, - 0xf163, 0x3015, - 0xf16b, 0x3160, - 0xf16c, 0x301d, - 0xf1a1, 0x3030, - 0xf240, 0x308e, - 0xf268, 0x31ef, - 0xf269, 0x30b6, - 0xf2a1, 0x30cc, - 0xf2c3, 0x30ef, - 0xf340, 0x312b, - 0xf375, 0x3161, - 0xf3a1, 0x316b, - 0xf440, 0x31c9, - 0xf466, 0x31f0, - 0xf4a1, 0x3209, - 0xf4b5, 0x30ee, - 0xf4b6, 0x321d, - 0xf4fd, 0x3265, - 0xf540, 0x3267, - 0xf5a1, 0x32a6, - 0xf640, 0x3304, - 0xf663, 0x3264, - 0xf664, 0x3327, - 0xf6a1, 0x3342, - 0xf740, 0x33a0, - 0xf7a1, 0x33df, - 0xf840, 0x343d, - 0xf8a1, 0x347c, - 0xf940, 0x34da, - 0xf977, 0x3512, - 0xf9a1, 0x351a, - 0xf9c4, 0x3511, - 0xf9c5, 0x353d, - 0xf9c6, 0x3549, - 0xf9c7, 0x353e, - 0xf9d2, 0x354a, - 0xf9d6, 0x36e8, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 cns13ETenmsB5HEnc16 = { - 0, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, - 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, - 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, - 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, - 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, - 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, - 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, - 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, - 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, - 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - cns13ETenmsB5HMap2, 255 -}; - -static Gushort cns13ETenmsB5VMap2[568] = { - 0x0000, 0x0000, - 0xa140, 0x0063, - 0xa14b, 0x354e, - 0xa14c, 0x006d, - 0xa14d, 0x0070, - 0xa156, 0x0138, - 0xa157, 0x007a, - 0xa158, 0x007a, - 0xa159, 0x35af, - 0xa15a, 0x35af, - 0xa15b, 0x35b1, - 0xa15c, 0x35b1, - 0xa15d, 0x0082, - 0xa15f, 0x0082, - 0xa161, 0x0086, - 0xa163, 0x0086, - 0xa165, 0x008a, - 0xa167, 0x008a, - 0xa169, 0x008e, - 0xa16b, 0x008e, - 0xa16d, 0x0092, - 0xa16f, 0x0092, - 0xa171, 0x0096, - 0xa173, 0x0096, - 0xa175, 0x009a, - 0xa177, 0x009a, - 0xa179, 0x009e, - 0xa17b, 0x009e, - 0xa17d, 0x0082, - 0xa1a1, 0x0086, - 0xa1a3, 0x008a, - 0xa1a5, 0x00a6, - 0xa1f6, 0x00f8, - 0xa1f7, 0x00f7, - 0xa1f8, 0x00f9, - 0xa240, 0x0100, - 0xa2a1, 0x013f, - 0xa340, 0x019d, - 0xa3a1, 0x01dc, - 0xa3bd, 0x01f7, - 0xa440, 0x0253, - 0xa4a1, 0x0292, - 0xa540, 0x02f0, - 0xa5a1, 0x032f, - 0xa640, 0x038d, - 0xa6a1, 0x03cc, - 0xa740, 0x042a, - 0xa7a1, 0x0469, - 0xa840, 0x04c7, - 0xa8a1, 0x0506, - 0xa940, 0x0564, - 0xa9a1, 0x05a3, - 0xaa40, 0x0601, - 0xaaa1, 0x0640, - 0xab40, 0x069e, - 0xaba1, 0x06dd, - 0xac40, 0x073b, - 0xaca1, 0x077a, - 0xacfe, 0x097f, - 0xad40, 0x07d7, - 0xada1, 0x0816, - 0xae40, 0x0874, - 0xaea1, 0x08b3, - 0xaf40, 0x0911, - 0xafa1, 0x0950, - 0xafd0, 0x0980, - 0xb040, 0x09af, - 0xb0a1, 0x09ee, - 0xb140, 0x0a4c, - 0xb1a1, 0x0a8b, - 0xb240, 0x0ae9, - 0xb2a1, 0x0b28, - 0xb340, 0x0b86, - 0xb3a1, 0x0bc5, - 0xb440, 0x0c23, - 0xb4a1, 0x0c62, - 0xb540, 0x0cc0, - 0xb5a1, 0x0cff, - 0xb640, 0x0d5d, - 0xb6a1, 0x0d9c, - 0xb740, 0x0dfa, - 0xb7a1, 0x0e39, - 0xb840, 0x0e97, - 0xb8a1, 0x0ed6, - 0xb940, 0x0f34, - 0xb9a1, 0x0f73, - 0xba40, 0x0fd1, - 0xbaa1, 0x1010, - 0xbb40, 0x106e, - 0xbba1, 0x10ad, - 0xbbc8, 0x10d5, - 0xbc40, 0x110c, - 0xbca1, 0x114b, - 0xbd40, 0x11a9, - 0xbda1, 0x11e8, - 0xbe40, 0x1246, - 0xbe52, 0x10d4, - 0xbe53, 0x1258, - 0xbea1, 0x1284, - 0xbf40, 0x12e2, - 0xbfa1, 0x1321, - 0xc040, 0x137f, - 0xc0a1, 0x13be, - 0xc140, 0x141c, - 0xc1a1, 0x145b, - 0xc1ab, 0x1466, - 0xc240, 0x14ba, - 0xc2a1, 0x14f9, - 0xc2cb, 0x1465, - 0xc2cc, 0x1523, - 0xc340, 0x1556, - 0xc361, 0x1578, - 0xc3a1, 0x1596, - 0xc3b9, 0x15af, - 0xc3ba, 0x15ae, - 0xc3bb, 0x15b0, - 0xc440, 0x15f4, - 0xc456, 0x1577, - 0xc457, 0x160a, - 0xc4a1, 0x1632, - 0xc540, 0x1690, - 0xc5a1, 0x16cf, - 0xc640, 0x172d, - 0xc6a1, 0x01fa, - 0xc6bf, 0x0219, - 0xc6d8, 0x35b3, - 0xc6df, 0x1794, - 0xc6e0, 0x35ba, - 0xc6e4, 0x3711, - 0xc6e6, 0x35c0, - 0xc740, 0x35d9, - 0xc7a1, 0x3618, - 0xc840, 0x3676, - 0xc8a1, 0x36b5, - 0xc940, 0x176c, - 0xc94a, 0x0274, - 0xc94b, 0x1776, - 0xc96c, 0x1798, - 0xc9a1, 0x17ab, - 0xc9be, 0x1797, - 0xc9bf, 0x17c8, - 0xc9ed, 0x17f7, - 0xca40, 0x1809, - 0xcaa1, 0x1848, - 0xcaf7, 0x17f6, - 0xcaf8, 0x189e, - 0xcb40, 0x18a5, - 0xcba1, 0x18e4, - 0xcc40, 0x1942, - 0xcca1, 0x1981, - 0xcd40, 0x19df, - 0xcda1, 0x1a1e, - 0xce40, 0x1a7c, - 0xcea1, 0x1abb, - 0xcf40, 0x1b19, - 0xcfa1, 0x1b58, - 0xd040, 0x1bb6, - 0xd0a1, 0x1bf5, - 0xd140, 0x1c53, - 0xd1a1, 0x1c92, - 0xd240, 0x1cf0, - 0xd2a1, 0x1d2f, - 0xd340, 0x1d8d, - 0xd3a1, 0x1dcc, - 0xd440, 0x1e2a, - 0xd4a1, 0x1e69, - 0xd540, 0x1ec7, - 0xd5a1, 0x1f06, - 0xd640, 0x1f64, - 0xd6a1, 0x1fa3, - 0xd6cc, 0x2254, - 0xd6cd, 0x1fcf, - 0xd740, 0x2001, - 0xd77a, 0x22b9, - 0xd77b, 0x203b, - 0xd7a1, 0x203f, - 0xd840, 0x209d, - 0xd8a1, 0x20dc, - 0xd940, 0x213a, - 0xd9a1, 0x2179, - 0xda40, 0x21d7, - 0xdaa1, 0x2216, - 0xdadf, 0x1fce, - 0xdae0, 0x2255, - 0xdb40, 0x2274, - 0xdba1, 0x22b3, - 0xdba7, 0x22ba, - 0xdc40, 0x2312, - 0xdca1, 0x2351, - 0xdd40, 0x23af, - 0xdda1, 0x23ee, - 0xddfc, 0x2381, - 0xddfd, 0x2449, - 0xde40, 0x244b, - 0xdea1, 0x248a, - 0xdf40, 0x24e8, - 0xdfa1, 0x2527, - 0xe040, 0x2585, - 0xe0a1, 0x25c4, - 0xe140, 0x2622, - 0xe1a1, 0x2661, - 0xe240, 0x26bf, - 0xe2a1, 0x26fe, - 0xe340, 0x275c, - 0xe3a1, 0x279b, - 0xe440, 0x27f9, - 0xe4a1, 0x2838, - 0xe540, 0x2896, - 0xe5a1, 0x28d5, - 0xe640, 0x2933, - 0xe6a1, 0x2972, - 0xe740, 0x29d0, - 0xe7a1, 0x2a0f, - 0xe840, 0x2a6d, - 0xe8a1, 0x2aac, - 0xe8a3, 0x2aaf, - 0xe940, 0x2b0b, - 0xe976, 0x2b42, - 0xe9a1, 0x2b4b, - 0xea40, 0x2ba9, - 0xeaa1, 0x2be8, - 0xeb40, 0x2c46, - 0xeb5b, 0x2c62, - 0xeba1, 0x2c86, - 0xebf1, 0x2aae, - 0xebf2, 0x2cd6, - 0xec40, 0x2ce3, - 0xeca1, 0x2d22, - 0xecde, 0x2b41, - 0xecdf, 0x2d5f, - 0xed40, 0x2d7f, - 0xeda1, 0x2dbe, - 0xedaa, 0x2dc8, - 0xee40, 0x2e1d, - 0xeea1, 0x2e5c, - 0xeeeb, 0x3014, - 0xeeec, 0x2ea6, - 0xef40, 0x2eb9, - 0xefa1, 0x2ef8, - 0xf040, 0x2f56, - 0xf056, 0x2dc7, - 0xf057, 0x2f6c, - 0xf0a1, 0x2f94, - 0xf0cb, 0x2c61, - 0xf0cc, 0x2fbe, - 0xf140, 0x2ff1, - 0xf163, 0x3015, - 0xf16b, 0x3160, - 0xf16c, 0x301d, - 0xf1a1, 0x3030, - 0xf240, 0x308e, - 0xf268, 0x31ef, - 0xf269, 0x30b6, - 0xf2a1, 0x30cc, - 0xf2c3, 0x30ef, - 0xf340, 0x312b, - 0xf375, 0x3161, - 0xf3a1, 0x316b, - 0xf440, 0x31c9, - 0xf466, 0x31f0, - 0xf4a1, 0x3209, - 0xf4b5, 0x30ee, - 0xf4b6, 0x321d, - 0xf4fd, 0x3265, - 0xf540, 0x3267, - 0xf5a1, 0x32a6, - 0xf640, 0x3304, - 0xf663, 0x3264, - 0xf664, 0x3327, - 0xf6a1, 0x3342, - 0xf740, 0x33a0, - 0xf7a1, 0x33df, - 0xf840, 0x343d, - 0xf8a1, 0x347c, - 0xf940, 0x34da, - 0xf977, 0x3512, - 0xf9a1, 0x351a, - 0xf9c4, 0x3511, - 0xf9c5, 0x353d, - 0xf9c6, 0x3549, - 0xf9c7, 0x353e, - 0xf9d2, 0x354a, - 0xf9d6, 0x36e8, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 cns13ETenmsB5VEnc16 = { - 1, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, - 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, - 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, - 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, - 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, - 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, - 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, - 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, - 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, - 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - cns13ETenmsB5VMap2, 284 -}; - -static Gushort cns13HKdlaB5HMap2[2046] = { - 0x0000, 0x0000, - 0xa140, 0x0063, - 0xa159, 0x35af, - 0xa15d, 0x0080, - 0xa1a1, 0x00a2, - 0xa1f6, 0x00f8, - 0xa1f7, 0x00f7, - 0xa1f8, 0x00f9, - 0xa240, 0x0100, - 0xa2a1, 0x013f, - 0xa340, 0x019d, - 0xa3a1, 0x01dc, - 0xa3bd, 0x01f7, - 0xa440, 0x0253, - 0xa4a1, 0x0292, - 0xa540, 0x02f0, - 0xa5a1, 0x032f, - 0xa640, 0x038d, - 0xa6a1, 0x03cc, - 0xa740, 0x042a, - 0xa7a1, 0x0469, - 0xa840, 0x04c7, - 0xa8a1, 0x0506, - 0xa940, 0x0564, - 0xa9a1, 0x05a3, - 0xaa40, 0x0601, - 0xaaa1, 0x0640, - 0xab40, 0x069e, - 0xaba1, 0x06dd, - 0xac40, 0x073b, - 0xaca1, 0x077a, - 0xacfe, 0x097f, - 0xad40, 0x07d7, - 0xada1, 0x0816, - 0xae40, 0x0874, - 0xaea1, 0x08b3, - 0xaf40, 0x0911, - 0xafa1, 0x0950, - 0xafd0, 0x0980, - 0xb040, 0x09af, - 0xb0a1, 0x09ee, - 0xb140, 0x0a4c, - 0xb1a1, 0x0a8b, - 0xb240, 0x0ae9, - 0xb2a1, 0x0b28, - 0xb340, 0x0b86, - 0xb3a1, 0x0bc5, - 0xb440, 0x0c23, - 0xb4a1, 0x0c62, - 0xb540, 0x0cc0, - 0xb5a1, 0x0cff, - 0xb640, 0x0d5d, - 0xb6a1, 0x0d9c, - 0xb740, 0x0dfa, - 0xb7a1, 0x0e39, - 0xb840, 0x0e97, - 0xb8a1, 0x0ed6, - 0xb940, 0x0f34, - 0xb9a1, 0x0f73, - 0xba40, 0x0fd1, - 0xbaa1, 0x1010, - 0xbb40, 0x106e, - 0xbba1, 0x10ad, - 0xbbc8, 0x10d5, - 0xbc40, 0x110c, - 0xbca1, 0x114b, - 0xbd40, 0x11a9, - 0xbda1, 0x11e8, - 0xbe40, 0x1246, - 0xbe52, 0x10d4, - 0xbe53, 0x1258, - 0xbea1, 0x1284, - 0xbf40, 0x12e2, - 0xbfa1, 0x1321, - 0xc040, 0x137f, - 0xc0a1, 0x13be, - 0xc140, 0x141c, - 0xc1a1, 0x145b, - 0xc1ab, 0x1466, - 0xc240, 0x14ba, - 0xc2a1, 0x14f9, - 0xc2cb, 0x1465, - 0xc2cc, 0x1523, - 0xc340, 0x1556, - 0xc361, 0x1578, - 0xc3a1, 0x1596, - 0xc3b9, 0x15af, - 0xc3ba, 0x15ae, - 0xc3bb, 0x15b0, - 0xc440, 0x15f4, - 0xc456, 0x1577, - 0xc457, 0x160a, - 0xc4a1, 0x1632, - 0xc540, 0x1690, - 0xc5a1, 0x16cf, - 0xc640, 0x172d, - 0xc940, 0x176c, - 0xc94a, 0x0274, - 0xc94b, 0x1776, - 0xc96c, 0x1798, - 0xc9a1, 0x17ab, - 0xc9be, 0x1797, - 0xc9bf, 0x17c8, - 0xc9ed, 0x17f7, - 0xca40, 0x1809, - 0xcaa1, 0x1848, - 0xcaf7, 0x17f6, - 0xcaf8, 0x189e, - 0xcb40, 0x18a5, - 0xcba1, 0x18e4, - 0xcc40, 0x1942, - 0xcca1, 0x1981, - 0xcd40, 0x19df, - 0xcda1, 0x1a1e, - 0xce40, 0x1a7c, - 0xcea1, 0x1abb, - 0xcf40, 0x1b19, - 0xcfa1, 0x1b58, - 0xd040, 0x1bb6, - 0xd0a1, 0x1bf5, - 0xd140, 0x1c53, - 0xd1a1, 0x1c92, - 0xd240, 0x1cf0, - 0xd2a1, 0x1d2f, - 0xd340, 0x1d8d, - 0xd3a1, 0x1dcc, - 0xd440, 0x1e2a, - 0xd4a1, 0x1e69, - 0xd540, 0x1ec7, - 0xd5a1, 0x1f06, - 0xd640, 0x1f64, - 0xd6a1, 0x1fa3, - 0xd6cc, 0x2254, - 0xd6cd, 0x1fcf, - 0xd740, 0x2001, - 0xd77a, 0x22b9, - 0xd77b, 0x203b, - 0xd7a1, 0x203f, - 0xd840, 0x209d, - 0xd8a1, 0x20dc, - 0xd940, 0x213a, - 0xd9a1, 0x2179, - 0xda40, 0x21d7, - 0xdaa1, 0x2216, - 0xdadf, 0x1fce, - 0xdae0, 0x2255, - 0xdb40, 0x2274, - 0xdba1, 0x22b3, - 0xdba7, 0x22ba, - 0xdc40, 0x2312, - 0xdca1, 0x2351, - 0xdd40, 0x23af, - 0xdda1, 0x23ee, - 0xddfc, 0x2381, - 0xddfd, 0x2449, - 0xde40, 0x244b, - 0xdea1, 0x248a, - 0xdf40, 0x24e8, - 0xdfa1, 0x2527, - 0xe040, 0x2585, - 0xe0a1, 0x25c4, - 0xe140, 0x2622, - 0xe1a1, 0x2661, - 0xe240, 0x26bf, - 0xe2a1, 0x26fe, - 0xe340, 0x275c, - 0xe3a1, 0x279b, - 0xe440, 0x27f9, - 0xe4a1, 0x2838, - 0xe540, 0x2896, - 0xe5a1, 0x28d5, - 0xe640, 0x2933, - 0xe6a1, 0x2972, - 0xe740, 0x29d0, - 0xe7a1, 0x2a0f, - 0xe840, 0x2a6d, - 0xe8a1, 0x2aac, - 0xe8a3, 0x2aaf, - 0xe940, 0x2b0b, - 0xe976, 0x2b42, - 0xe9a1, 0x2b4b, - 0xea40, 0x2ba9, - 0xeaa1, 0x2be8, - 0xeb40, 0x2c46, - 0xeb5b, 0x2c62, - 0xeba1, 0x2c86, - 0xebf1, 0x2aae, - 0xebf2, 0x2cd6, - 0xec40, 0x2ce3, - 0xeca1, 0x2d22, - 0xecde, 0x2b41, - 0xecdf, 0x2d5f, - 0xed40, 0x2d7f, - 0xeda1, 0x2dbe, - 0xedaa, 0x2dc8, - 0xee40, 0x2e1d, - 0xeea1, 0x2e5c, - 0xeeeb, 0x3014, - 0xeeec, 0x2ea6, - 0xef40, 0x2eb9, - 0xefa1, 0x2ef8, - 0xf040, 0x2f56, - 0xf056, 0x2dc7, - 0xf057, 0x2f6c, - 0xf0a1, 0x2f94, - 0xf0cb, 0x2c61, - 0xf0cc, 0x2fbe, - 0xf140, 0x2ff1, - 0xf163, 0x3015, - 0xf16b, 0x3160, - 0xf16c, 0x301d, - 0xf1a1, 0x3030, - 0xf240, 0x308e, - 0xf268, 0x31ef, - 0xf269, 0x30b6, - 0xf2a1, 0x30cc, - 0xf2c3, 0x30ef, - 0xf340, 0x312b, - 0xf375, 0x3161, - 0xf3a1, 0x316b, - 0xf440, 0x31c9, - 0xf466, 0x31f0, - 0xf4a1, 0x3209, - 0xf4b5, 0x30ee, - 0xf4b6, 0x321d, - 0xf4fd, 0x3265, - 0xf540, 0x3267, - 0xf5a1, 0x32a6, - 0xf640, 0x3304, - 0xf663, 0x3264, - 0xf664, 0x3327, - 0xf6a1, 0x3342, - 0xf740, 0x33a0, - 0xf7a1, 0x33df, - 0xf840, 0x343d, - 0xf8a1, 0x347c, - 0xf940, 0x34da, - 0xf977, 0x3512, - 0xf9a1, 0x351a, - 0xf9c4, 0x3511, - 0xf9c5, 0x353d, - 0xf9c6, 0x3549, - 0xf9c7, 0x353e, - 0xf9d2, 0x354a, - 0xfa41, 0x4149, - 0xfa42, 0x3ea3, - 0xfa43, 0x3e84, - 0xfa44, 0x3e87, - 0xfa45, 0x3e05, - 0xfa46, 0x4096, - 0xfa47, 0x39c4, - 0xfa48, 0x3d6d, - 0xfa49, 0x3e7f, - 0xfa4a, 0x3c77, - 0xfa4b, 0x3e86, - 0xfa4c, 0x387c, - 0xfa4d, 0x3ea7, - 0xfa4e, 0x420e, - 0xfa4f, 0x3ea4, - 0xfa50, 0x418a, - 0xfa51, 0x405f, - 0xfa52, 0x4116, - 0xfa53, 0x408b, - 0xfa54, 0x3e66, - 0xfa55, 0x3e65, - 0xfa56, 0x3d8f, - 0xfa57, 0x419e, - 0xfa58, 0x3a66, - 0xfa59, 0x4161, - 0xfa5a, 0x3e8a, - 0xfa5b, 0x3d8e, - 0xfa5c, 0x3e8d, - 0xfa5d, 0x3dbc, - 0xfa5e, 0x3e95, - 0xfa5f, 0x39a3, - 0xfa60, 0x41f4, - 0xfa61, 0x3e91, - 0xfa62, 0x3bc6, - 0xfa63, 0x3dc3, - 0xfa64, 0x3eae, - 0xfa65, 0x3746, - 0xfa66, 0x3871, - 0xfa67, 0x3a00, - 0xfa68, 0x428c, - 0xfa69, 0x425b, - 0xfa6a, 0x3ead, - 0xfa6b, 0x4123, - 0xfa6c, 0x3ea6, - 0xfa6d, 0x3ea0, - 0xfa6e, 0x3b2e, - 0xfa6f, 0x3dbd, - 0xfa70, 0x3864, - 0xfa71, 0x3c7d, - 0xfa72, 0x3ea9, - 0xfa73, 0x420d, - 0xfa74, 0x3f58, - 0xfa75, 0x3e98, - 0xfa76, 0x3d70, - 0xfa77, 0x3ea8, - 0xfa78, 0x3e94, - 0xfa79, 0x3e9d, - 0xfa7a, 0x3aaa, - 0xfa7b, 0x3ea5, - 0xfa7c, 0x3ccc, - 0xfa7d, 0x4098, - 0xfa7e, 0x3e9f, - 0xfaa1, 0x41f5, - 0xfaa2, 0x3e8b, - 0xfaa3, 0x3b72, - 0xfaa4, 0x37e0, - 0xfaa5, 0x3adf, - 0xfaa6, 0x42e0, - 0xfaa7, 0x3e97, - 0xfaa8, 0x4192, - 0xfaa9, 0x3888, - 0xfaaa, 0x42c8, - 0xfaab, 0x3e90, - 0xfaac, 0x386f, - 0xfaad, 0x3e9c, - 0xfaae, 0x4144, - 0xfaaf, 0x4146, - 0xfab0, 0x3e9e, - 0xfab1, 0x3e89, - 0xfab2, 0x4093, - 0xfab3, 0x3e81, - 0xfab5, 0x3c0e, - 0xfab6, 0x3e85, - 0xfab7, 0x38dc, - 0xfab8, 0x4069, - 0xfab9, 0x37d8, - 0xfaba, 0x3e99, - 0xfabb, 0x3e83, - 0xfabc, 0x3e88, - 0xfabd, 0x3e80, - 0xfabe, 0x3eb1, - 0xfabf, 0x416a, - 0xfac0, 0x376b, - 0xfac1, 0x3e67, - 0xfac2, 0x3e78, - 0xfac3, 0x4262, - 0xfac4, 0x37f5, - 0xfac5, 0x37f4, - 0xfac6, 0x3b45, - 0xfac7, 0x3e59, - 0xfac8, 0x2abc, - 0xfac9, 0x3dbf, - 0xfaca, 0x40bd, - 0xfacb, 0x3e7e, - 0xfacc, 0x382d, - 0xfacd, 0x3eb0, - 0xface, 0x3eab, - 0xfacf, 0x3eb2, - 0xfad0, 0x4221, - 0xfad1, 0x3f6a, - 0xfad2, 0x381b, - 0xfad3, 0x3e9a, - 0xfad4, 0x4223, - 0xfad5, 0x3e8e, - 0xfad6, 0x3bfd, - 0xfad7, 0x405a, - 0xfad8, 0x3eaf, - 0xfad9, 0x3cc8, - 0xfada, 0x3948, - 0xfadb, 0x42bd, - 0xfadc, 0x40cc, - 0xfadd, 0x3e5c, - 0xfade, 0x3eac, - 0xfadf, 0x391a, - 0xfae0, 0x3eaa, - 0xfae1, 0x4399, - 0xfae2, 0x389a, - 0xfae3, 0x3e8c, - 0xfae4, 0x389f, - 0xfae5, 0x3ea1, - 0xfae6, 0x4187, - 0xfae7, 0x3e8f, - 0xfae8, 0x3fc3, - 0xfae9, 0x3ea2, - 0xfaea, 0x3e9b, - 0xfaeb, 0x3e7d, - 0xfaec, 0x4051, - 0xfaed, 0x3fbc, - 0xfaee, 0x3fd5, - 0xfaef, 0x3b14, - 0xfaf0, 0x4222, - 0xfaf1, 0x379b, - 0xfaf2, 0x407b, - 0xfaf3, 0x3788, - 0xfaf4, 0x3bb4, - 0xfaf5, 0x41d0, - 0xfaf6, 0x4264, - 0xfaf7, 0x385e, - 0xfaf8, 0x376c, - 0xfaf9, 0x3dbe, - 0xfafa, 0x3813, - 0xfafb, 0x3fff, - 0xfafc, 0x3d63, - 0xfafd, 0x3786, - 0xfafe, 0x3b4a, - 0xfb40, 0x373a, - 0xfb41, 0x427a, - 0xfb42, 0x3c7a, - 0xfb43, 0x4205, - 0xfb44, 0x3c26, - 0xfb45, 0x38af, - 0xfb46, 0x3936, - 0xfb47, 0x37a8, - 0xfb48, 0x3b74, - 0xfb49, 0x3f6d, - 0xfb4a, 0x3e96, - 0xfb4b, 0x37bc, - 0xfb4c, 0x3e7b, - 0xfb4d, 0x3fea, - 0xfb4e, 0x41ca, - 0xfb4f, 0x39d7, - 0xfb50, 0x40d1, - 0xfb51, 0x3b71, - 0xfb52, 0x3fcf, - 0xfb53, 0x07c2, - 0xfb54, 0x42fe, - 0xfb55, 0x3ccd, - 0xfb56, 0x3e70, - 0xfb57, 0x3e72, - 0xfb58, 0x374c, - 0xfb59, 0x3769, - 0xfb5a, 0x3b4f, - 0xfb5b, 0x379f, - 0xfb5c, 0x2e45, - 0xfb5d, 0x380d, - 0xfb5e, 0x3fa2, - 0xfb5f, 0x381c, - 0xfb60, 0x3f7c, - 0xfb61, 0x3f59, - 0xfb62, 0x3f9e, - 0xfb63, 0x3d93, - 0xfb64, 0x3815, - 0xfb65, 0x388b, - 0xfb66, 0x3c60, - 0xfb67, 0x38f0, - 0xfb68, 0x37aa, - 0xfb69, 0x3f34, - 0xfb6a, 0x3c12, - 0xfb6b, 0x3900, - 0xfb6c, 0x3faa, - 0xfb6d, 0x390b, - 0xfb6e, 0x3929, - 0xfb6f, 0x3f27, - 0xfb70, 0x3f90, - 0xfb71, 0x3f57, - 0xfb72, 0x3f5b, - 0xfb73, 0x3f62, - 0xfb74, 0x3d76, - 0xfb75, 0x39c8, - 0xfb76, 0x3f64, - 0xfb78, 0x393d, - 0xfb79, 0x3c66, - 0xfb7a, 0x39d0, - 0xfb7b, 0x4022, - 0xfb7c, 0x3f2c, - 0xfb7d, 0x3f28, - 0xfb7e, 0x39cc, - 0xfba1, 0x3f26, - 0xfba2, 0x39cd, - 0xfba3, 0x3f3f, - 0xfba4, 0x39c5, - 0xfba5, 0x3fce, - 0xfba6, 0x4034, - 0xfba7, 0x3f5e, - 0xfba8, 0x4032, - 0xfba9, 0x4054, - 0xfbaa, 0x4178, - 0xfbab, 0x3f60, - 0xfbac, 0x3f29, - 0xfbad, 0x405d, - 0xfbae, 0x3f43, - 0xfbaf, 0x3f68, - 0xfbb0, 0x4060, - 0xfbb1, 0x3f2a, - 0xfbb2, 0x4063, - 0xfbb3, 0x39e7, - 0xfbb4, 0x38b6, - 0xfbb5, 0x4090, - 0xfbb6, 0x4048, - 0xfbb7, 0x4012, - 0xfbb8, 0x3d7c, - 0xfbb9, 0x404b, - 0xfbba, 0x404d, - 0xfbbb, 0x404f, - 0xfbbc, 0x424f, - 0xfbbd, 0x3d79, - 0xfbbe, 0x3f40, - 0xfbbf, 0x3f0a, - 0xfbc0, 0x3fd0, - 0xfbc1, 0x3f36, - 0xfbc2, 0x406d, - 0xfbc3, 0x4085, - 0xfbc4, 0x4084, - 0xfbc5, 0x413e, - 0xfbc6, 0x413b, - 0xfbc7, 0x3fc6, - 0xfbc8, 0x4086, - 0xfbc9, 0x3952, - 0xfbca, 0x40a1, - 0xfbcb, 0x3f32, - 0xfbcc, 0x4203, - 0xfbcd, 0x3f66, - 0xfbce, 0x3d83, - 0xfbcf, 0x3e75, - 0xfbd0, 0x40a2, - 0xfbd1, 0x0570, - 0xfbd2, 0x3f39, - 0xfbd3, 0x0871, - 0xfbd4, 0x3f24, - 0xfbd5, 0x40ae, - 0xfbd6, 0x3f44, - 0xfbd7, 0x38f5, - 0xfbd8, 0x3fc9, - 0xfbd9, 0x3fcd, - 0xfbda, 0x3fb5, - 0xfbdb, 0x3e7c, - 0xfbdc, 0x3fd2, - 0xfbdd, 0x3f4d, - 0xfbde, 0x40bc, - 0xfbdf, 0x40b7, - 0xfbe0, 0x3858, - 0xfbe1, 0x43af, - 0xfbe2, 0x3f6c, - 0xfbe3, 0x3d85, - 0xfbe4, 0x4396, - 0xfbe5, 0x39a6, - 0xfbe6, 0x3f7d, - 0xfbe7, 0x3fbf, - 0xfbe8, 0x40c8, - 0xfbe9, 0x3f5f, - 0xfbea, 0x3f2b, - 0xfbeb, 0x3d72, - 0xfbec, 0x40cf, - 0xfbed, 0x3a05, - 0xfbee, 0x3d82, - 0xfbef, 0x40dc, - 0xfbf0, 0x3d65, - 0xfbf1, 0x40d4, - 0xfbf2, 0x40da, - 0xfbf3, 0x3f2d, - 0xfbf4, 0x0595, - 0xfbf5, 0x3d81, - 0xfbf6, 0x40f1, - 0xfbf7, 0x06f5, - 0xfbf8, 0x40f8, - 0xfbf9, 0x40fb, - 0xfbfa, 0x3f41, - 0xfbfb, 0x4118, - 0xfbfc, 0x3d89, - 0xfbfd, 0x3f5c, - 0xfbfe, 0x3d67, - 0xfc40, 0x3f0e, - 0xfc41, 0x3f13, - 0xfc42, 0x4122, - 0xfc43, 0x3fca, - 0xfc44, 0x4129, - 0xfc45, 0x3f0c, - 0xfc46, 0x3f0b, - 0xfc47, 0x3f61, - 0xfc48, 0x3d8a, - 0xfc49, 0x3f2e, - 0xfc4a, 0x1971, - 0xfc4b, 0x4135, - 0xfc4c, 0x3a2b, - 0xfc4d, 0x3f6b, - 0xfc4e, 0x3ba5, - 0xfc4f, 0x4044, - 0xfc50, 0x4255, - 0xfc51, 0x3737, - 0xfc52, 0x3f25, - 0xfc53, 0x3739, - 0xfc54, 0x3a30, - 0xfc55, 0x4143, - 0xfc56, 0x40c4, - 0xfc57, 0x3d64, - 0xfc58, 0x3fbe, - 0xfc59, 0x3fa6, - 0xfc5a, 0x402c, - 0xfc5b, 0x4157, - 0xfc5c, 0x3f9f, - 0xfc5d, 0x2b40, - 0xfc5e, 0x3fa7, - 0xfc5f, 0x4005, - 0xfc60, 0x4001, - 0xfc61, 0x1c9b, - 0xfc62, 0x3d84, - 0xfc63, 0x0a95, - 0xfc64, 0x416c, - 0xfc65, 0x4009, - 0xfc66, 0x3d75, - 0xfc67, 0x3adc, - 0xfc68, 0x3fa8, - 0xfc69, 0x3f37, - 0xfc6a, 0x4174, - 0xfc6b, 0x4006, - 0xfc6c, 0x4002, - 0xfc6d, 0x3fba, - 0xfc6e, 0x3fc0, - 0xfc6f, 0x12b0, - 0xfc70, 0x3fbd, - 0xfc71, 0x4173, - 0xfc72, 0x4186, - 0xfc73, 0x3a54, - 0xfc74, 0x3fc5, - 0xfc75, 0x4259, - 0xfc76, 0x3fc2, - 0xfc77, 0x3f15, - 0xfc78, 0x3f50, - 0xfc79, 0x3f86, - 0xfc7a, 0x3fc1, - 0xfc7b, 0x418c, - 0xfc7c, 0x3fc7, - 0xfc7d, 0x3f16, - 0xfc7e, 0x418e, - 0xfca1, 0x3f4b, - 0xfca2, 0x419d, - 0xfca3, 0x115f, - 0xfca4, 0x3fc4, - 0xfca5, 0x3384, - 0xfca6, 0x3d99, - 0xfca7, 0x41b9, - 0xfca8, 0x3a89, - 0xfca9, 0x41b7, - 0xfcaa, 0x3d8b, - 0xfcab, 0x3d66, - 0xfcac, 0x03e2, - 0xfcad, 0x3d6a, - 0xfcae, 0x3d7a, - 0xfcaf, 0x41e3, - 0xfcb0, 0x0619, - 0xfcb1, 0x3996, - 0xfcb2, 0x3fc8, - 0xfcb3, 0x3a9e, - 0xfcb4, 0x3f38, - 0xfcb5, 0x3d80, - 0xfcb6, 0x41de, - 0xfcb8, 0x42eb, - 0xfcb9, 0x3d86, - 0xfcba, 0x41db, - 0xfcbb, 0x3f3e, - 0xfcbc, 0x4056, - 0xfcbd, 0x41d9, - 0xfcbe, 0x3ff6, - 0xfcbf, 0x3f5d, - 0xfcc0, 0x3d74, - 0xfcc1, 0x41e8, - 0xfcc2, 0x41c7, - 0xfcc3, 0x3d91, - 0xfcc4, 0x3b4b, - 0xfcc5, 0x3d42, - 0xfcc6, 0x3aad, - 0xfcc7, 0x3aa5, - 0xfcc8, 0x41f2, - 0xfcc9, 0x3f4c, - 0xfcca, 0x41f8, - 0xfccb, 0x3f6e, - 0xfccc, 0x3f79, - 0xfccd, 0x3f8d, - 0xfcce, 0x4003, - 0xfccf, 0x3f91, - 0xfcd0, 0x3ac3, - 0xfcd1, 0x091a, - 0xfcd2, 0x4234, - 0xfcd3, 0x3ffb, - 0xfcd4, 0x4240, - 0xfcd6, 0x3ffd, - 0xfcd7, 0x3f78, - 0xfcd8, 0x3c75, - 0xfcd9, 0x3c73, - 0xfcda, 0x38a5, - 0xfcdb, 0x43f9, - 0xfcdc, 0x3cfe, - 0xfcdd, 0x4257, - 0xfcde, 0x4233, - 0xfcdf, 0x3d69, - 0xfce0, 0x3c7e, - 0xfce1, 0x3d6f, - 0xfce2, 0x4000, - 0xfce3, 0x3dc0, - 0xfce4, 0x4004, - 0xfce5, 0x0e72, - 0xfce6, 0x3938, - 0xfce7, 0x3fa4, - 0xfce8, 0x295a, - 0xfce9, 0x4273, - 0xfcea, 0x3ac9, - 0xfceb, 0x427d, - 0xfcec, 0x3aca, - 0xfced, 0x3fb2, - 0xfcee, 0x3fb6, - 0xfcef, 0x3f97, - 0xfcf0, 0x3f9a, - 0xfcf1, 0x428b, - 0xfcf2, 0x43fa, - 0xfcf3, 0x428a, - 0xfcf4, 0x3f51, - 0xfcf5, 0x3f98, - 0xfcf6, 0x41a3, - 0xfcf7, 0x3d5c, - 0xfcf8, 0x3f63, - 0xfcf9, 0x4290, - 0xfcfa, 0x1f94, - 0xfcfb, 0x42c6, - 0xfcfc, 0x42a2, - 0xfcfd, 0x3ffa, - 0xfcfe, 0x3f9d, - 0xfd40, 0x3ffe, - 0xfd41, 0x3f9b, - 0xfd42, 0x3fdf, - 0xfd43, 0x3fe6, - 0xfd44, 0x3fde, - 0xfd45, 0x42b7, - 0xfd46, 0x3ff4, - 0xfd47, 0x42b8, - 0xfd48, 0x3feb, - 0xfd49, 0x42bf, - 0xfd4a, 0x3d71, - 0xfd4b, 0x3f4f, - 0xfd4c, 0x42c5, - 0xfd4d, 0x42d5, - 0xfd4e, 0x42d0, - 0xfd4f, 0x42d8, - 0xfd50, 0x3f55, - 0xfd51, 0x3fe8, - 0xfd52, 0x3ff3, - 0xfd53, 0x42df, - 0xfd54, 0x3fd3, - 0xfd55, 0x3e73, - 0xfd56, 0x3f95, - 0xfd57, 0x42ee, - 0xfd58, 0x42f4, - 0xfd59, 0x3f8c, - 0xfd5a, 0x3fcf, - 0xfd5b, 0x42ec, - 0xfd5c, 0x3fd4, - 0xfd5d, 0x42f0, - 0xfd5e, 0x07c2, - 0xfd5f, 0x0955, - 0xfd60, 0x42fe, - 0xfd61, 0x4301, - 0xfd62, 0x3ccd, - 0xfd63, 0x4307, - 0xfd64, 0x43fb, - 0xfd65, 0x3fda, - 0xfd66, 0x3f8b, - 0xfd67, 0x3733, - 0xfd68, 0x3f8a, - 0xfd69, 0x3741, - 0xfd6a, 0x3740, - 0xfd6b, 0x3742, - 0xfd6c, 0x3f93, - 0xfd6d, 0x3f8f, - 0xfd6e, 0x3e70, - 0xfd6f, 0x42c9, - 0xfd70, 0x3e72, - 0xfd71, 0x3fa9, - 0xfd72, 0x42cd, - 0xfd73, 0x43d2, - 0xfd74, 0x3f8e, - 0xfd75, 0x3f77, - 0xfd76, 0x3d6e, - 0xfd77, 0x0d0a, - 0xfd78, 0x3f11, - 0xfd79, 0x3752, - 0xfd7a, 0x3f14, - 0xfd7b, 0x3f18, - 0xfd7c, 0x3f53, - 0xfd7d, 0x3f1f, - 0xfd7e, 0x3f1c, - 0xfda1, 0x3fb8, - 0xfda2, 0x339d, - 0xfda3, 0x3b3f, - 0xfda4, 0x3f52, - 0xfda5, 0x3f1a, - 0xfda6, 0x3f1d, - 0xfda7, 0x375c, - 0xfda8, 0x3885, - 0xfda9, 0x3761, - 0xfdaa, 0x3fd7, - 0xfdab, 0x3fd6, - 0xfdac, 0x3fd9, - 0xfdad, 0x3fd8, - 0xfdae, 0x3fdd, - 0xfdaf, 0x3e93, - 0xfdb0, 0x3769, - 0xfdb1, 0x376e, - 0xfdb2, 0x3b4c, - 0xfdb3, 0x3774, - 0xfdb4, 0x377f, - 0xfdb5, 0x377b, - 0xfdb6, 0x3782, - 0xfdb7, 0x3b4f, - 0xfdb8, 0x3792, - 0xfdb9, 0x3fe3, - 0xfdba, 0x3fdc, - 0xfdbb, 0x3fdb, - 0xfdbc, 0x3fe5, - 0xfdbd, 0x3b75, - 0xfdbe, 0x37a2, - 0xfdbf, 0x3fe2, - 0xfdc0, 0x3fe7, - 0xfdc1, 0x3e6d, - 0xfdc2, 0x0d2a, - 0xfdc3, 0x3e79, - 0xfdc4, 0x3e76, - 0xfdc5, 0x379f, - 0xfdc6, 0x3fee, - 0xfdc7, 0x42d4, - 0xfdc8, 0x3d94, - 0xfdc9, 0x3d61, - 0xfdca, 0x3fe1, - 0xfdcb, 0x375e, - 0xfdcc, 0x3b7a, - 0xfdcd, 0x380b, - 0xfdce, 0x3fec, - 0xfdcf, 0x3fef, - 0xfdd0, 0x2e45, - 0xfdd1, 0x3ffc, - 0xfdd2, 0x3fed, - 0xfdd3, 0x380d, - 0xfdd4, 0x3fe4, - 0xfdd5, 0x3f92, - 0xfdd6, 0x3fae, - 0xfdd7, 0x3811, - 0xfdd8, 0x3f7a, - 0xfdd9, 0x3b8b, - 0xfdda, 0x3f5a, - 0xfddb, 0x3816, - 0xfddc, 0x3fa2, - 0xfddd, 0x3b8e, - 0xfdde, 0x381c, - 0xfddf, 0x2054, - 0xfde0, 0x381f, - 0xfde1, 0x3fa0, - 0xfde2, 0x43fc, - 0xfde3, 0x3e16, - 0xfde4, 0x3b94, - 0xfde5, 0x3f7c, - 0xfde6, 0x4007, - 0xfde7, 0x3f7b, - 0xfde8, 0x3d73, - 0xfde9, 0x3e77, - 0xfdea, 0x3d92, - 0xfdeb, 0x3fa1, - 0xfdec, 0x37c1, - 0xfded, 0x37d3, - 0xfdee, 0x3e7a, - 0xfdef, 0x3f59, - 0xfdf0, 0x3c55, - 0xfdf1, 0x3ff8, - 0xfdf2, 0x3ff5, - 0xfdf3, 0x3c4c, - 0xfdf4, 0x3d8c, - 0xfdf5, 0x3fa3, - 0xfdf6, 0x37c0, - 0xfdf7, 0x3f54, - 0xfdf8, 0x3800, - 0xfdf9, 0x3b7f, - 0xfdfa, 0x3f9e, - 0xfdfb, 0x3822, - 0xfdfc, 0x3fe9, - 0xfdfd, 0x3823, - 0xfdfe, 0x3fe0, - 0xfe40, 0x3d93, - 0xfe41, 0x3ff9, - 0xfe42, 0x3827, - 0xfe43, 0x3fa5, - 0xfe44, 0x3ff0, - 0xfe45, 0x3836, - 0xfe46, 0x3f99, - 0xfe47, 0x3ff2, - 0xfe48, 0x3d8d, - 0xfe49, 0x43e6, - 0xfe4a, 0x3522, - 0xfe4b, 0x3ff1, - 0xfe4c, 0x3f9c, - 0xfe4d, 0x3fb1, - 0xfe4e, 0x3f96, - 0xfe4f, 0x3e6f, - 0xfe50, 0x3f69, - 0xfe51, 0x3ff7, - 0xfe52, 0x3f82, - 0xfe53, 0x3f88, - 0xfe54, 0x3f85, - 0xfe55, 0x3f83, - 0xfe56, 0x3f7f, - 0xfe57, 0x3f89, - 0xfe58, 0x3bb5, - 0xfe59, 0x3862, - 0xfe5a, 0x3f87, - 0xfe5b, 0x3f31, - 0xfe5c, 0x3815, - 0xfe5d, 0x387e, - 0xfe5e, 0x3f49, - 0xfe5f, 0x3f48, - 0xfe60, 0x3f47, - 0xfe61, 0x3f45, - 0xfe62, 0x43eb, - 0xfe63, 0x3882, - 0xfe64, 0x3f6f, - 0xfe65, 0x3f4e, - 0xfe66, 0x3bc8, - 0xfe67, 0x43fd, - 0xfe68, 0x3d6b, - 0xfe6a, 0x43fe, - 0xfe6b, 0x3fcb, - 0xfe6c, 0x3dd2, - 0xfe6d, 0x3879, - 0xfe6e, 0x3f10, - 0xfe6f, 0x382e, - 0xfe70, 0x388b, - 0xfe71, 0x3c60, - 0xfe72, 0x2a9f, - 0xfe73, 0x3c61, - 0xfe74, 0x3893, - 0xfe75, 0x3e74, - 0xfe76, 0x3fac, - 0xfe77, 0x3f81, - 0xfe78, 0x3bcd, - 0xfe79, 0x3bd4, - 0xfe7a, 0x3bd3, - 0xfe7b, 0x3fcc, - 0xfe7c, 0x3fd1, - 0xfe7d, 0x3f3d, - 0xfe7e, 0x3f4a, - 0xfea1, 0x2352, - 0xfea2, 0x38ad, - 0xfea3, 0x3f46, - 0xfea4, 0x38b5, - 0xfea5, 0x3f0d, - 0xfea6, 0x3fb3, - 0xfea7, 0x38c0, - 0xfea8, 0x3e2f, - 0xfea9, 0x38cf, - 0xfeaa, 0x38d5, - 0xfeab, 0x3f33, - 0xfeac, 0x3d95, - 0xfead, 0x3f35, - 0xfeae, 0x38d7, - 0xfeaf, 0x3f2f, - 0xfeb0, 0x38e0, - 0xfeb1, 0x3c02, - 0xfeb2, 0x3f72, - 0xfeb3, 0x3f70, - 0xfeb4, 0x3d96, - 0xfeb5, 0x38e6, - 0xfeb7, 0x4035, - 0xfeb8, 0x3f73, - 0xfeb9, 0x38f0, - 0xfeba, 0x3c0b, - 0xfebb, 0x38f7, - 0xfebc, 0x37aa, - 0xfebd, 0x43ff, - 0xfebe, 0x38fa, - 0xfebf, 0x3c11, - 0xfec0, 0x3f34, - 0xfec1, 0x3fb9, - 0xfec2, 0x3c12, - 0xfec3, 0x400a, - 0xfec4, 0x3d77, - 0xfec5, 0x3f42, - 0xfec6, 0x3900, - 0xfec7, 0x3902, - 0xfec8, 0x3f74, - 0xfec9, 0x3d97, - 0xfeca, 0x3faa, - 0xfecb, 0x3f19, - 0xfecc, 0x3f1b, - 0xfecd, 0x390e, - 0xfece, 0x3909, - 0xfecf, 0x390b, - 0xfed0, 0x3f12, - 0xfed1, 0x3f17, - 0xfed2, 0x3fb7, - 0xfed3, 0x3f20, - 0xfed4, 0x3fbb, - 0xfed5, 0x3f3c, - 0xfed6, 0x3fad, - 0xfed7, 0x3919, - 0xfed8, 0x3f56, - 0xfed9, 0x3f71, - 0xfeda, 0x3fb4, - 0xfedb, 0x391c, - 0xfedc, 0x3f1e, - 0xfedd, 0x3f3a, - 0xfede, 0x391b, - 0xfedf, 0x3d87, - 0xfee0, 0x3c3a, - 0xfee1, 0x3f22, - 0xfee2, 0x3e71, - 0xfee3, 0x3c39, - 0xfee4, 0x3d7e, - 0xfee5, 0x4124, - 0xfee6, 0x3f3b, - 0xfee7, 0x3e6e, - 0xfee8, 0x3fab, - 0xfee9, 0x3925, - 0xfeea, 0x3f30, - 0xfeeb, 0x3929, - 0xfeec, 0x3f84, - 0xfeed, 0x3f0f, - 0xfeee, 0x3f76, - 0xfeef, 0x3f94, - 0xfef0, 0x3932, - 0xfef1, 0x3f27, - 0xfef2, 0x3933, - 0xfef3, 0x3f75, - 0xfef4, 0x3937, - 0xfef5, 0x3d78, - 0xfef6, 0x3f21, - 0xfef7, 0x3f90, - 0xfef8, 0x3940, - 0xfef9, 0x3d7f, - 0xfefa, 0x394a, - 0xfefb, 0x3f80, - 0xfefc, 0x3f23, - 0xfefd, 0x3950, - 0xfefe, 0x3f7e, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 cns13HKdlaB5HEnc16 = { - 0, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, - 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, - 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, - 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, - 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, - 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, - 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, - 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, - 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, - 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - cns13HKdlaB5HMap2, 1023 -}; - -static Gushort cns13HKdlaB5VMap2[2070] = { - 0x0000, 0x0000, - 0xa140, 0x0063, - 0xa159, 0x35af, - 0xa15d, 0x0080, - 0xa1a1, 0x00a2, - 0xa1f6, 0x00f8, - 0xa1f7, 0x00f7, - 0xa1f8, 0x00f9, - 0xa240, 0x0100, - 0xa2a1, 0x013f, - 0xa340, 0x019d, - 0xa3a1, 0x01dc, - 0xa3bd, 0x01f7, - 0xa440, 0x0253, - 0xa4a1, 0x0292, - 0xa540, 0x02f0, - 0xa5a1, 0x032f, - 0xa640, 0x038d, - 0xa6a1, 0x03cc, - 0xa740, 0x042a, - 0xa7a1, 0x0469, - 0xa840, 0x04c7, - 0xa8a1, 0x0506, - 0xa940, 0x0564, - 0xa9a1, 0x05a3, - 0xaa40, 0x0601, - 0xaaa1, 0x0640, - 0xab40, 0x069e, - 0xaba1, 0x06dd, - 0xac40, 0x073b, - 0xaca1, 0x077a, - 0xacfe, 0x097f, - 0xad40, 0x07d7, - 0xada1, 0x0816, - 0xae40, 0x0874, - 0xaea1, 0x08b3, - 0xaf40, 0x0911, - 0xafa1, 0x0950, - 0xafd0, 0x0980, - 0xb040, 0x09af, - 0xb0a1, 0x09ee, - 0xb140, 0x0a4c, - 0xb1a1, 0x0a8b, - 0xb240, 0x0ae9, - 0xb2a1, 0x0b28, - 0xb340, 0x0b86, - 0xb3a1, 0x0bc5, - 0xb440, 0x0c23, - 0xb4a1, 0x0c62, - 0xb540, 0x0cc0, - 0xb5a1, 0x0cff, - 0xb640, 0x0d5d, - 0xb6a1, 0x0d9c, - 0xb740, 0x0dfa, - 0xb7a1, 0x0e39, - 0xb840, 0x0e97, - 0xb8a1, 0x0ed6, - 0xb940, 0x0f34, - 0xb9a1, 0x0f73, - 0xba40, 0x0fd1, - 0xbaa1, 0x1010, - 0xbb40, 0x106e, - 0xbba1, 0x10ad, - 0xbbc8, 0x10d5, - 0xbc40, 0x110c, - 0xbca1, 0x114b, - 0xbd40, 0x11a9, - 0xbda1, 0x11e8, - 0xbe40, 0x1246, - 0xbe52, 0x10d4, - 0xbe53, 0x1258, - 0xbea1, 0x1284, - 0xbf40, 0x12e2, - 0xbfa1, 0x1321, - 0xc040, 0x137f, - 0xc0a1, 0x13be, - 0xc140, 0x141c, - 0xc1a1, 0x145b, - 0xc1ab, 0x1466, - 0xc240, 0x14ba, - 0xc2a1, 0x14f9, - 0xc2cb, 0x1465, - 0xc2cc, 0x1523, - 0xc340, 0x1556, - 0xc361, 0x1578, - 0xc3a1, 0x1596, - 0xc3b9, 0x15af, - 0xc3ba, 0x15ae, - 0xc3bb, 0x15b0, - 0xc440, 0x15f4, - 0xc456, 0x1577, - 0xc457, 0x160a, - 0xc4a1, 0x1632, - 0xc540, 0x1690, - 0xc5a1, 0x16cf, - 0xc640, 0x172d, - 0xc940, 0x176c, - 0xc94a, 0x0274, - 0xc94b, 0x1776, - 0xc96c, 0x1798, - 0xc9a1, 0x17ab, - 0xc9be, 0x1797, - 0xc9bf, 0x17c8, - 0xc9ed, 0x17f7, - 0xca40, 0x1809, - 0xcaa1, 0x1848, - 0xcaf7, 0x17f6, - 0xcaf8, 0x189e, - 0xcb40, 0x18a5, - 0xcba1, 0x18e4, - 0xcc40, 0x1942, - 0xcca1, 0x1981, - 0xcd40, 0x19df, - 0xcda1, 0x1a1e, - 0xce40, 0x1a7c, - 0xcea1, 0x1abb, - 0xcf40, 0x1b19, - 0xcfa1, 0x1b58, - 0xd040, 0x1bb6, - 0xd0a1, 0x1bf5, - 0xd140, 0x1c53, - 0xd1a1, 0x1c92, - 0xd240, 0x1cf0, - 0xd2a1, 0x1d2f, - 0xd340, 0x1d8d, - 0xd3a1, 0x1dcc, - 0xd440, 0x1e2a, - 0xd4a1, 0x1e69, - 0xd540, 0x1ec7, - 0xd5a1, 0x1f06, - 0xd640, 0x1f64, - 0xd6a1, 0x1fa3, - 0xd6cc, 0x2254, - 0xd6cd, 0x1fcf, - 0xd740, 0x2001, - 0xd77a, 0x22b9, - 0xd77b, 0x203b, - 0xd7a1, 0x203f, - 0xd840, 0x209d, - 0xd8a1, 0x20dc, - 0xd940, 0x213a, - 0xd9a1, 0x2179, - 0xda40, 0x21d7, - 0xdaa1, 0x2216, - 0xdadf, 0x1fce, - 0xdae0, 0x2255, - 0xdb40, 0x2274, - 0xdba1, 0x22b3, - 0xdba7, 0x22ba, - 0xdc40, 0x2312, - 0xdca1, 0x2351, - 0xdd40, 0x23af, - 0xdda1, 0x23ee, - 0xddfc, 0x2381, - 0xddfd, 0x2449, - 0xde40, 0x244b, - 0xdea1, 0x248a, - 0xdf40, 0x24e8, - 0xdfa1, 0x2527, - 0xe040, 0x2585, - 0xe0a1, 0x25c4, - 0xe140, 0x2622, - 0xe1a1, 0x2661, - 0xe240, 0x26bf, - 0xe2a1, 0x26fe, - 0xe340, 0x275c, - 0xe3a1, 0x279b, - 0xe440, 0x27f9, - 0xe4a1, 0x2838, - 0xe540, 0x2896, - 0xe5a1, 0x28d5, - 0xe640, 0x2933, - 0xe6a1, 0x2972, - 0xe740, 0x29d0, - 0xe7a1, 0x2a0f, - 0xe840, 0x2a6d, - 0xe8a1, 0x2aac, - 0xe8a3, 0x2aaf, - 0xe940, 0x2b0b, - 0xe976, 0x2b42, - 0xe9a1, 0x2b4b, - 0xea40, 0x2ba9, - 0xeaa1, 0x2be8, - 0xeb40, 0x2c46, - 0xeb5b, 0x2c62, - 0xeba1, 0x2c86, - 0xebf1, 0x2aae, - 0xebf2, 0x2cd6, - 0xec40, 0x2ce3, - 0xeca1, 0x2d22, - 0xecde, 0x2b41, - 0xecdf, 0x2d5f, - 0xed40, 0x2d7f, - 0xeda1, 0x2dbe, - 0xedaa, 0x2dc8, - 0xee40, 0x2e1d, - 0xeea1, 0x2e5c, - 0xeeeb, 0x3014, - 0xeeec, 0x2ea6, - 0xef40, 0x2eb9, - 0xefa1, 0x2ef8, - 0xf040, 0x2f56, - 0xf056, 0x2dc7, - 0xf057, 0x2f6c, - 0xf0a1, 0x2f94, - 0xf0cb, 0x2c61, - 0xf0cc, 0x2fbe, - 0xf140, 0x2ff1, - 0xf163, 0x3015, - 0xf16b, 0x3160, - 0xf16c, 0x301d, - 0xf1a1, 0x3030, - 0xf240, 0x308e, - 0xf268, 0x31ef, - 0xf269, 0x30b6, - 0xf2a1, 0x30cc, - 0xf2c3, 0x30ef, - 0xf340, 0x312b, - 0xf375, 0x3161, - 0xf3a1, 0x316b, - 0xf440, 0x31c9, - 0xf466, 0x31f0, - 0xf4a1, 0x3209, - 0xf4b5, 0x30ee, - 0xf4b6, 0x321d, - 0xf4fd, 0x3265, - 0xf540, 0x3267, - 0xf5a1, 0x32a6, - 0xf640, 0x3304, - 0xf663, 0x3264, - 0xf664, 0x3327, - 0xf6a1, 0x3342, - 0xf740, 0x33a0, - 0xf7a1, 0x33df, - 0xf840, 0x343d, - 0xf8a1, 0x347c, - 0xf940, 0x34da, - 0xf977, 0x3512, - 0xf9a1, 0x351a, - 0xf9c4, 0x3511, - 0xf9c5, 0x353d, - 0xf9c6, 0x3549, - 0xf9c7, 0x353e, - 0xf9d2, 0x354a, - 0xfa41, 0x4149, - 0xfa42, 0x3ea3, - 0xfa43, 0x3e84, - 0xfa44, 0x3e87, - 0xfa45, 0x3e05, - 0xfa46, 0x4096, - 0xfa47, 0x39c4, - 0xfa48, 0x3d6d, - 0xfa49, 0x3e7f, - 0xfa4a, 0x3c77, - 0xfa4b, 0x3e86, - 0xfa4c, 0x387c, - 0xfa4d, 0x3ea7, - 0xfa4e, 0x420e, - 0xfa4f, 0x3ea4, - 0xfa50, 0x418a, - 0xfa51, 0x405f, - 0xfa52, 0x4116, - 0xfa53, 0x408b, - 0xfa54, 0x3e66, - 0xfa55, 0x3e65, - 0xfa56, 0x3d8f, - 0xfa57, 0x419e, - 0xfa58, 0x3a66, - 0xfa59, 0x4161, - 0xfa5a, 0x3e8a, - 0xfa5b, 0x3d8e, - 0xfa5c, 0x3e8d, - 0xfa5d, 0x3dbc, - 0xfa5e, 0x3e95, - 0xfa5f, 0x39a3, - 0xfa60, 0x41f4, - 0xfa61, 0x3e91, - 0xfa62, 0x3bc6, - 0xfa63, 0x3dc3, - 0xfa64, 0x3eae, - 0xfa65, 0x3746, - 0xfa66, 0x3871, - 0xfa67, 0x3a00, - 0xfa68, 0x428c, - 0xfa69, 0x425b, - 0xfa6a, 0x3ead, - 0xfa6b, 0x4123, - 0xfa6c, 0x3ea6, - 0xfa6d, 0x3ea0, - 0xfa6e, 0x3b2e, - 0xfa6f, 0x3dbd, - 0xfa70, 0x3864, - 0xfa71, 0x3c7d, - 0xfa72, 0x3ea9, - 0xfa73, 0x420d, - 0xfa74, 0x3f58, - 0xfa75, 0x3e98, - 0xfa76, 0x3d70, - 0xfa77, 0x3ea8, - 0xfa78, 0x3e94, - 0xfa79, 0x3e9d, - 0xfa7a, 0x3aaa, - 0xfa7b, 0x3ea5, - 0xfa7c, 0x3ccc, - 0xfa7d, 0x4098, - 0xfa7e, 0x3e9f, - 0xfaa1, 0x41f5, - 0xfaa2, 0x3e8b, - 0xfaa3, 0x3b72, - 0xfaa4, 0x37e0, - 0xfaa5, 0x3adf, - 0xfaa6, 0x42e0, - 0xfaa7, 0x3e97, - 0xfaa8, 0x4192, - 0xfaa9, 0x3888, - 0xfaaa, 0x42c8, - 0xfaab, 0x3e90, - 0xfaac, 0x386f, - 0xfaad, 0x3e9c, - 0xfaae, 0x4144, - 0xfaaf, 0x4146, - 0xfab0, 0x3e9e, - 0xfab1, 0x3e89, - 0xfab2, 0x4093, - 0xfab3, 0x3e81, - 0xfab5, 0x3c0e, - 0xfab6, 0x3e85, - 0xfab7, 0x38dc, - 0xfab8, 0x4069, - 0xfab9, 0x37d8, - 0xfaba, 0x3e99, - 0xfabb, 0x3e83, - 0xfabc, 0x3e88, - 0xfabd, 0x3e80, - 0xfabe, 0x3eb1, - 0xfabf, 0x416a, - 0xfac0, 0x376b, - 0xfac1, 0x3e67, - 0xfac2, 0x3e78, - 0xfac3, 0x4262, - 0xfac4, 0x37f5, - 0xfac5, 0x37f4, - 0xfac6, 0x3b45, - 0xfac7, 0x3e59, - 0xfac8, 0x2abc, - 0xfac9, 0x3dbf, - 0xfaca, 0x40bd, - 0xfacb, 0x3e7e, - 0xfacc, 0x382d, - 0xfacd, 0x3eb0, - 0xface, 0x3eab, - 0xfacf, 0x3eb2, - 0xfad0, 0x4221, - 0xfad1, 0x3f6a, - 0xfad2, 0x381b, - 0xfad3, 0x3e9a, - 0xfad4, 0x4223, - 0xfad5, 0x3e8e, - 0xfad6, 0x3bfd, - 0xfad7, 0x405a, - 0xfad8, 0x3eaf, - 0xfad9, 0x3cc8, - 0xfada, 0x3948, - 0xfadb, 0x42bd, - 0xfadc, 0x40cc, - 0xfadd, 0x3e5c, - 0xfade, 0x3eac, - 0xfadf, 0x391a, - 0xfae0, 0x3eaa, - 0xfae1, 0x4399, - 0xfae2, 0x389a, - 0xfae3, 0x3e8c, - 0xfae4, 0x389f, - 0xfae5, 0x3ea1, - 0xfae6, 0x4187, - 0xfae7, 0x3e8f, - 0xfae8, 0x3fc3, - 0xfae9, 0x3ea2, - 0xfaea, 0x3e9b, - 0xfaeb, 0x3e7d, - 0xfaec, 0x4051, - 0xfaed, 0x3fbc, - 0xfaee, 0x3fd5, - 0xfaef, 0x3b14, - 0xfaf0, 0x4222, - 0xfaf1, 0x379b, - 0xfaf2, 0x407b, - 0xfaf3, 0x3788, - 0xfaf4, 0x3bb4, - 0xfaf5, 0x41d0, - 0xfaf6, 0x4264, - 0xfaf7, 0x385e, - 0xfaf8, 0x376c, - 0xfaf9, 0x3dbe, - 0xfafa, 0x3813, - 0xfafb, 0x3fff, - 0xfafc, 0x3d63, - 0xfafd, 0x3786, - 0xfafe, 0x3b4a, - 0xfb40, 0x373a, - 0xfb41, 0x427a, - 0xfb42, 0x3c7a, - 0xfb43, 0x4205, - 0xfb44, 0x3c26, - 0xfb45, 0x38af, - 0xfb46, 0x3936, - 0xfb47, 0x37a8, - 0xfb48, 0x3b74, - 0xfb49, 0x3f6d, - 0xfb4a, 0x3e96, - 0xfb4b, 0x37bc, - 0xfb4c, 0x3e7b, - 0xfb4d, 0x3fea, - 0xfb4e, 0x41ca, - 0xfb4f, 0x39d7, - 0xfb50, 0x40d1, - 0xfb51, 0x3b71, - 0xfb52, 0x3fcf, - 0xfb53, 0x07c2, - 0xfb54, 0x42fe, - 0xfb55, 0x3ccd, - 0xfb56, 0x3e70, - 0xfb57, 0x3e72, - 0xfb58, 0x374c, - 0xfb59, 0x3769, - 0xfb5a, 0x3b4f, - 0xfb5b, 0x379f, - 0xfb5c, 0x2e45, - 0xfb5d, 0x380d, - 0xfb5e, 0x3fa2, - 0xfb5f, 0x381c, - 0xfb60, 0x3f7c, - 0xfb61, 0x3f59, - 0xfb62, 0x3f9e, - 0xfb63, 0x3d93, - 0xfb64, 0x3815, - 0xfb65, 0x388b, - 0xfb66, 0x3c60, - 0xfb67, 0x38f0, - 0xfb68, 0x37aa, - 0xfb69, 0x3f34, - 0xfb6a, 0x3c12, - 0xfb6b, 0x3900, - 0xfb6c, 0x3faa, - 0xfb6d, 0x390b, - 0xfb6e, 0x3929, - 0xfb6f, 0x3f27, - 0xfb70, 0x3f90, - 0xfb71, 0x3f57, - 0xfb72, 0x3f5b, - 0xfb73, 0x3f62, - 0xfb74, 0x3d76, - 0xfb75, 0x39c8, - 0xfb76, 0x3f64, - 0xfb78, 0x393d, - 0xfb79, 0x3c66, - 0xfb7a, 0x39d0, - 0xfb7b, 0x4022, - 0xfb7c, 0x3f2c, - 0xfb7d, 0x3f28, - 0xfb7e, 0x39cc, - 0xfba1, 0x3f26, - 0xfba2, 0x39cd, - 0xfba3, 0x3f3f, - 0xfba4, 0x39c5, - 0xfba5, 0x3fce, - 0xfba6, 0x4034, - 0xfba7, 0x3f5e, - 0xfba8, 0x4032, - 0xfba9, 0x4054, - 0xfbaa, 0x4178, - 0xfbab, 0x3f60, - 0xfbac, 0x3f29, - 0xfbad, 0x405d, - 0xfbae, 0x3f43, - 0xfbaf, 0x3f68, - 0xfbb0, 0x4060, - 0xfbb1, 0x3f2a, - 0xfbb2, 0x4063, - 0xfbb3, 0x39e7, - 0xfbb4, 0x38b6, - 0xfbb5, 0x4090, - 0xfbb6, 0x4048, - 0xfbb7, 0x4012, - 0xfbb8, 0x3d7c, - 0xfbb9, 0x404b, - 0xfbba, 0x404d, - 0xfbbb, 0x404f, - 0xfbbc, 0x424f, - 0xfbbd, 0x3d79, - 0xfbbe, 0x3f40, - 0xfbbf, 0x3f0a, - 0xfbc0, 0x3fd0, - 0xfbc1, 0x3f36, - 0xfbc2, 0x406d, - 0xfbc3, 0x4085, - 0xfbc4, 0x4084, - 0xfbc5, 0x413e, - 0xfbc6, 0x413b, - 0xfbc7, 0x3fc6, - 0xfbc8, 0x4086, - 0xfbc9, 0x3952, - 0xfbca, 0x40a1, - 0xfbcb, 0x3f32, - 0xfbcc, 0x4203, - 0xfbcd, 0x3f66, - 0xfbce, 0x3d83, - 0xfbcf, 0x3e75, - 0xfbd0, 0x40a2, - 0xfbd1, 0x0570, - 0xfbd2, 0x3f39, - 0xfbd3, 0x0871, - 0xfbd4, 0x3f24, - 0xfbd5, 0x40ae, - 0xfbd6, 0x3f44, - 0xfbd7, 0x38f5, - 0xfbd8, 0x3fc9, - 0xfbd9, 0x3fcd, - 0xfbda, 0x3fb5, - 0xfbdb, 0x3e7c, - 0xfbdc, 0x3fd2, - 0xfbdd, 0x3f4d, - 0xfbde, 0x40bc, - 0xfbdf, 0x40b7, - 0xfbe0, 0x3858, - 0xfbe1, 0x43af, - 0xfbe2, 0x3f6c, - 0xfbe3, 0x3d85, - 0xfbe4, 0x4396, - 0xfbe5, 0x39a6, - 0xfbe6, 0x3f7d, - 0xfbe7, 0x3fbf, - 0xfbe8, 0x40c8, - 0xfbe9, 0x3f5f, - 0xfbea, 0x3f2b, - 0xfbeb, 0x3d72, - 0xfbec, 0x40cf, - 0xfbed, 0x3a05, - 0xfbee, 0x3d82, - 0xfbef, 0x40dc, - 0xfbf0, 0x3d65, - 0xfbf1, 0x40d4, - 0xfbf2, 0x40da, - 0xfbf3, 0x3f2d, - 0xfbf4, 0x0595, - 0xfbf5, 0x3d81, - 0xfbf6, 0x40f1, - 0xfbf7, 0x06f5, - 0xfbf8, 0x40f8, - 0xfbf9, 0x40fb, - 0xfbfa, 0x3f41, - 0xfbfb, 0x4118, - 0xfbfc, 0x3d89, - 0xfbfd, 0x3f5c, - 0xfbfe, 0x3d67, - 0xfc40, 0x3f0e, - 0xfc41, 0x3f13, - 0xfc42, 0x4122, - 0xfc43, 0x3fca, - 0xfc44, 0x4129, - 0xfc45, 0x3f0c, - 0xfc46, 0x3f0b, - 0xfc47, 0x3f61, - 0xfc48, 0x3d8a, - 0xfc49, 0x3f2e, - 0xfc4a, 0x1971, - 0xfc4b, 0x4135, - 0xfc4c, 0x3a2b, - 0xfc4d, 0x3f6b, - 0xfc4e, 0x3ba5, - 0xfc4f, 0x4044, - 0xfc50, 0x4255, - 0xfc51, 0x3737, - 0xfc52, 0x3f25, - 0xfc53, 0x3739, - 0xfc54, 0x3a30, - 0xfc55, 0x4143, - 0xfc56, 0x40c4, - 0xfc57, 0x3d64, - 0xfc58, 0x3fbe, - 0xfc59, 0x3fa6, - 0xfc5a, 0x402c, - 0xfc5b, 0x4157, - 0xfc5c, 0x3f9f, - 0xfc5d, 0x2b40, - 0xfc5e, 0x3fa7, - 0xfc5f, 0x4005, - 0xfc60, 0x4001, - 0xfc61, 0x1c9b, - 0xfc62, 0x3d84, - 0xfc63, 0x0a95, - 0xfc64, 0x416c, - 0xfc65, 0x4009, - 0xfc66, 0x3d75, - 0xfc67, 0x3adc, - 0xfc68, 0x3fa8, - 0xfc69, 0x3f37, - 0xfc6a, 0x4174, - 0xfc6b, 0x4006, - 0xfc6c, 0x4002, - 0xfc6d, 0x3fba, - 0xfc6e, 0x3fc0, - 0xfc6f, 0x12b0, - 0xfc70, 0x3fbd, - 0xfc71, 0x4173, - 0xfc72, 0x4186, - 0xfc73, 0x3a54, - 0xfc74, 0x3fc5, - 0xfc75, 0x4259, - 0xfc76, 0x3fc2, - 0xfc77, 0x3f15, - 0xfc78, 0x3f50, - 0xfc79, 0x3f86, - 0xfc7a, 0x3fc1, - 0xfc7b, 0x418c, - 0xfc7c, 0x3fc7, - 0xfc7d, 0x3f16, - 0xfc7e, 0x418e, - 0xfca1, 0x3f4b, - 0xfca2, 0x419d, - 0xfca3, 0x115f, - 0xfca4, 0x3fc4, - 0xfca5, 0x3384, - 0xfca6, 0x3d99, - 0xfca7, 0x41b9, - 0xfca8, 0x3a89, - 0xfca9, 0x41b7, - 0xfcaa, 0x3d8b, - 0xfcab, 0x3d66, - 0xfcac, 0x03e2, - 0xfcad, 0x3d6a, - 0xfcae, 0x3d7a, - 0xfcaf, 0x41e3, - 0xfcb0, 0x0619, - 0xfcb1, 0x3996, - 0xfcb2, 0x3fc8, - 0xfcb3, 0x3a9e, - 0xfcb4, 0x3f38, - 0xfcb5, 0x3d80, - 0xfcb6, 0x41de, - 0xfcb8, 0x42eb, - 0xfcb9, 0x3d86, - 0xfcba, 0x41db, - 0xfcbb, 0x3f3e, - 0xfcbc, 0x4056, - 0xfcbd, 0x41d9, - 0xfcbe, 0x3ff6, - 0xfcbf, 0x3f5d, - 0xfcc0, 0x3d74, - 0xfcc1, 0x41e8, - 0xfcc2, 0x41c7, - 0xfcc3, 0x3d91, - 0xfcc4, 0x3b4b, - 0xfcc5, 0x3d42, - 0xfcc6, 0x3aad, - 0xfcc7, 0x3aa5, - 0xfcc8, 0x41f2, - 0xfcc9, 0x3f4c, - 0xfcca, 0x41f8, - 0xfccb, 0x3f6e, - 0xfccc, 0x3f79, - 0xfccd, 0x3f8d, - 0xfcce, 0x4003, - 0xfccf, 0x3f91, - 0xfcd0, 0x3ac3, - 0xfcd1, 0x091a, - 0xfcd2, 0x4234, - 0xfcd3, 0x3ffb, - 0xfcd4, 0x4240, - 0xfcd6, 0x3ffd, - 0xfcd7, 0x3f78, - 0xfcd8, 0x3c75, - 0xfcd9, 0x3c73, - 0xfcda, 0x38a5, - 0xfcdb, 0x43f9, - 0xfcdc, 0x3cfe, - 0xfcdd, 0x4257, - 0xfcde, 0x4233, - 0xfcdf, 0x3d69, - 0xfce0, 0x3c7e, - 0xfce1, 0x3d6f, - 0xfce2, 0x4000, - 0xfce3, 0x3dc0, - 0xfce4, 0x4004, - 0xfce5, 0x0e72, - 0xfce6, 0x3938, - 0xfce7, 0x3fa4, - 0xfce8, 0x295a, - 0xfce9, 0x4273, - 0xfcea, 0x3ac9, - 0xfceb, 0x427d, - 0xfcec, 0x3aca, - 0xfced, 0x3fb2, - 0xfcee, 0x3fb6, - 0xfcef, 0x3f97, - 0xfcf0, 0x3f9a, - 0xfcf1, 0x428b, - 0xfcf2, 0x43fa, - 0xfcf3, 0x428a, - 0xfcf4, 0x3f51, - 0xfcf5, 0x3f98, - 0xfcf6, 0x41a3, - 0xfcf7, 0x3d5c, - 0xfcf8, 0x3f63, - 0xfcf9, 0x4290, - 0xfcfa, 0x1f94, - 0xfcfb, 0x42c6, - 0xfcfc, 0x42a2, - 0xfcfd, 0x3ffa, - 0xfcfe, 0x3f9d, - 0xfd40, 0x3ffe, - 0xfd41, 0x3f9b, - 0xfd42, 0x3fdf, - 0xfd43, 0x3fe6, - 0xfd44, 0x3fde, - 0xfd45, 0x42b7, - 0xfd46, 0x3ff4, - 0xfd47, 0x42b8, - 0xfd48, 0x3feb, - 0xfd49, 0x42bf, - 0xfd4a, 0x3d71, - 0xfd4b, 0x3f4f, - 0xfd4c, 0x42c5, - 0xfd4d, 0x42d5, - 0xfd4e, 0x42d0, - 0xfd4f, 0x42d8, - 0xfd50, 0x3f55, - 0xfd51, 0x3fe8, - 0xfd52, 0x3ff3, - 0xfd53, 0x42df, - 0xfd54, 0x3fd3, - 0xfd55, 0x3e73, - 0xfd56, 0x3f95, - 0xfd57, 0x42ee, - 0xfd58, 0x42f4, - 0xfd59, 0x3f8c, - 0xfd5a, 0x3fcf, - 0xfd5b, 0x42ec, - 0xfd5c, 0x3fd4, - 0xfd5d, 0x42f0, - 0xfd5e, 0x07c2, - 0xfd5f, 0x0955, - 0xfd60, 0x42fe, - 0xfd61, 0x4301, - 0xfd62, 0x3ccd, - 0xfd63, 0x4307, - 0xfd64, 0x43fb, - 0xfd65, 0x3fda, - 0xfd66, 0x3f8b, - 0xfd67, 0x3733, - 0xfd68, 0x3f8a, - 0xfd69, 0x3741, - 0xfd6a, 0x3740, - 0xfd6b, 0x3742, - 0xfd6c, 0x3f93, - 0xfd6d, 0x3f8f, - 0xfd6e, 0x3e70, - 0xfd6f, 0x42c9, - 0xfd70, 0x3e72, - 0xfd71, 0x3fa9, - 0xfd72, 0x42cd, - 0xfd73, 0x43d2, - 0xfd74, 0x3f8e, - 0xfd75, 0x3f77, - 0xfd76, 0x3d6e, - 0xfd77, 0x0d0a, - 0xfd78, 0x3f11, - 0xfd79, 0x3752, - 0xfd7a, 0x3f14, - 0xfd7b, 0x3f18, - 0xfd7c, 0x3f53, - 0xfd7d, 0x3f1f, - 0xfd7e, 0x3f1c, - 0xfda1, 0x3fb8, - 0xfda2, 0x339d, - 0xfda3, 0x3b3f, - 0xfda4, 0x3f52, - 0xfda5, 0x3f1a, - 0xfda6, 0x3f1d, - 0xfda7, 0x375c, - 0xfda8, 0x3885, - 0xfda9, 0x3761, - 0xfdaa, 0x3fd7, - 0xfdab, 0x3fd6, - 0xfdac, 0x3fd9, - 0xfdad, 0x3fd8, - 0xfdae, 0x3fdd, - 0xfdaf, 0x3e93, - 0xfdb0, 0x3769, - 0xfdb1, 0x376e, - 0xfdb2, 0x3b4c, - 0xfdb3, 0x3774, - 0xfdb4, 0x377f, - 0xfdb5, 0x377b, - 0xfdb6, 0x3782, - 0xfdb7, 0x3b4f, - 0xfdb8, 0x3792, - 0xfdb9, 0x3fe3, - 0xfdba, 0x3fdc, - 0xfdbb, 0x3fdb, - 0xfdbc, 0x3fe5, - 0xfdbd, 0x3b75, - 0xfdbe, 0x37a2, - 0xfdbf, 0x3fe2, - 0xfdc0, 0x3fe7, - 0xfdc1, 0x3e6d, - 0xfdc2, 0x0d2a, - 0xfdc3, 0x3e79, - 0xfdc4, 0x3e76, - 0xfdc5, 0x379f, - 0xfdc6, 0x3fee, - 0xfdc7, 0x42d4, - 0xfdc8, 0x3d94, - 0xfdc9, 0x3d61, - 0xfdca, 0x3fe1, - 0xfdcb, 0x375e, - 0xfdcc, 0x3b7a, - 0xfdcd, 0x380b, - 0xfdce, 0x3fec, - 0xfdcf, 0x3fef, - 0xfdd0, 0x2e45, - 0xfdd1, 0x3ffc, - 0xfdd2, 0x3fed, - 0xfdd3, 0x380d, - 0xfdd4, 0x3fe4, - 0xfdd5, 0x3f92, - 0xfdd6, 0x3fae, - 0xfdd7, 0x3811, - 0xfdd8, 0x3f7a, - 0xfdd9, 0x3b8b, - 0xfdda, 0x3f5a, - 0xfddb, 0x3816, - 0xfddc, 0x3fa2, - 0xfddd, 0x3b8e, - 0xfdde, 0x381c, - 0xfddf, 0x2054, - 0xfde0, 0x381f, - 0xfde1, 0x3fa0, - 0xfde2, 0x43fc, - 0xfde3, 0x3e16, - 0xfde4, 0x3b94, - 0xfde5, 0x3f7c, - 0xfde6, 0x4007, - 0xfde7, 0x3f7b, - 0xfde8, 0x3d73, - 0xfde9, 0x3e77, - 0xfdea, 0x3d92, - 0xfdeb, 0x3fa1, - 0xfdec, 0x37c1, - 0xfded, 0x37d3, - 0xfdee, 0x3e7a, - 0xfdef, 0x3f59, - 0xfdf0, 0x3c55, - 0xfdf1, 0x3ff8, - 0xfdf2, 0x3ff5, - 0xfdf3, 0x3c4c, - 0xfdf4, 0x3d8c, - 0xfdf5, 0x3fa3, - 0xfdf6, 0x37c0, - 0xfdf7, 0x3f54, - 0xfdf8, 0x3800, - 0xfdf9, 0x3b7f, - 0xfdfa, 0x3f9e, - 0xfdfb, 0x3822, - 0xfdfc, 0x3fe9, - 0xfdfd, 0x3823, - 0xfdfe, 0x3fe0, - 0xfe40, 0x3d93, - 0xfe41, 0x3ff9, - 0xfe42, 0x3827, - 0xfe43, 0x3fa5, - 0xfe44, 0x3ff0, - 0xfe45, 0x3836, - 0xfe46, 0x3f99, - 0xfe47, 0x3ff2, - 0xfe48, 0x3d8d, - 0xfe49, 0x43e6, - 0xfe4a, 0x3522, - 0xfe4b, 0x3ff1, - 0xfe4c, 0x3f9c, - 0xfe4d, 0x3fb1, - 0xfe4e, 0x3f96, - 0xfe4f, 0x3e6f, - 0xfe50, 0x3f69, - 0xfe51, 0x3ff7, - 0xfe52, 0x3f82, - 0xfe53, 0x3f88, - 0xfe54, 0x3f85, - 0xfe55, 0x3f83, - 0xfe56, 0x3f7f, - 0xfe57, 0x3f89, - 0xfe58, 0x3bb5, - 0xfe59, 0x3862, - 0xfe5a, 0x3f87, - 0xfe5b, 0x3f31, - 0xfe5c, 0x3815, - 0xfe5d, 0x387e, - 0xfe5e, 0x3f49, - 0xfe5f, 0x3f48, - 0xfe60, 0x3f47, - 0xfe61, 0x3f45, - 0xfe62, 0x43eb, - 0xfe63, 0x3882, - 0xfe64, 0x3f6f, - 0xfe65, 0x3f4e, - 0xfe66, 0x3bc8, - 0xfe67, 0x43fd, - 0xfe68, 0x3d6b, - 0xfe6a, 0x43fe, - 0xfe6b, 0x3fcb, - 0xfe6c, 0x3dd2, - 0xfe6d, 0x3879, - 0xfe6e, 0x3f10, - 0xfe6f, 0x382e, - 0xfe70, 0x388b, - 0xfe71, 0x3c60, - 0xfe72, 0x2a9f, - 0xfe73, 0x3c61, - 0xfe74, 0x3893, - 0xfe75, 0x3e74, - 0xfe76, 0x3fac, - 0xfe77, 0x3f81, - 0xfe78, 0x3bcd, - 0xfe79, 0x3bd4, - 0xfe7a, 0x3bd3, - 0xfe7b, 0x3fcc, - 0xfe7c, 0x3fd1, - 0xfe7d, 0x3f3d, - 0xfe7e, 0x3f4a, - 0xfea1, 0x2352, - 0xfea2, 0x38ad, - 0xfea3, 0x3f46, - 0xfea4, 0x38b5, - 0xfea5, 0x3f0d, - 0xfea6, 0x3fb3, - 0xfea7, 0x38c0, - 0xfea8, 0x3e2f, - 0xfea9, 0x38cf, - 0xfeaa, 0x38d5, - 0xfeab, 0x3f33, - 0xfeac, 0x3d95, - 0xfead, 0x3f35, - 0xfeae, 0x38d7, - 0xfeaf, 0x3f2f, - 0xfeb0, 0x38e0, - 0xfeb1, 0x3c02, - 0xfeb2, 0x3f72, - 0xfeb3, 0x3f70, - 0xfeb4, 0x3d96, - 0xfeb5, 0x38e6, - 0xfeb7, 0x4035, - 0xfeb8, 0x3f73, - 0xfeb9, 0x38f0, - 0xfeba, 0x3c0b, - 0xfebb, 0x38f7, - 0xfebc, 0x37aa, - 0xfebd, 0x43ff, - 0xfebe, 0x38fa, - 0xfebf, 0x3c11, - 0xfec0, 0x3f34, - 0xfec1, 0x3fb9, - 0xfec2, 0x3c12, - 0xfec3, 0x400a, - 0xfec4, 0x3d77, - 0xfec5, 0x3f42, - 0xfec6, 0x3900, - 0xfec7, 0x3902, - 0xfec8, 0x3f74, - 0xfec9, 0x3d97, - 0xfeca, 0x3faa, - 0xfecb, 0x3f19, - 0xfecc, 0x3f1b, - 0xfecd, 0x390e, - 0xfece, 0x3909, - 0xfecf, 0x390b, - 0xfed0, 0x3f12, - 0xfed1, 0x3f17, - 0xfed2, 0x3fb7, - 0xfed3, 0x3f20, - 0xfed4, 0x3fbb, - 0xfed5, 0x3f3c, - 0xfed6, 0x3fad, - 0xfed7, 0x3919, - 0xfed8, 0x3f56, - 0xfed9, 0x3f71, - 0xfeda, 0x3fb4, - 0xfedb, 0x391c, - 0xfedc, 0x3f1e, - 0xfedd, 0x3f3a, - 0xfede, 0x391b, - 0xfedf, 0x3d87, - 0xfee0, 0x3c3a, - 0xfee1, 0x3f22, - 0xfee2, 0x3e71, - 0xfee3, 0x3c39, - 0xfee4, 0x3d7e, - 0xfee5, 0x4124, - 0xfee6, 0x3f3b, - 0xfee7, 0x3e6e, - 0xfee8, 0x3fab, - 0xfee9, 0x3925, - 0xfeea, 0x3f30, - 0xfeeb, 0x3929, - 0xfeec, 0x3f84, - 0xfeed, 0x3f0f, - 0xfeee, 0x3f76, - 0xfeef, 0x3f94, - 0xfef0, 0x3932, - 0xfef1, 0x3f27, - 0xfef2, 0x3933, - 0xfef3, 0x3f75, - 0xfef4, 0x3937, - 0xfef5, 0x3d78, - 0xfef6, 0x3f21, - 0xfef7, 0x3f90, - 0xfef8, 0x3940, - 0xfef9, 0x3d7f, - 0xfefa, 0x394a, - 0xfefb, 0x3f80, - 0xfefc, 0x3f23, - 0xfefd, 0x3950, - 0xfefe, 0x3f7e, - 0xa14b, 0x354e, - 0xa15a, 0x35af, - 0xa15c, 0x35b1, - 0xa15d, 0x0082, - 0xa161, 0x0086, - 0xa165, 0x008a, - 0xa169, 0x008e, - 0xa16d, 0x0092, - 0xa171, 0x0096, - 0xa175, 0x009a, - 0xa179, 0x009e, - 0xa1e3, 0x354f, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 cns13HKdlaB5VEnc16 = { - 1, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, - 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, - 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, - 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, - 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, - 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, - 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, - 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, - 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, - 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - cns13HKdlaB5VMap2, 1035 -}; - -static Gushort cns13HKdlbB5HMap2[1816] = { - 0x0000, 0x0000, - 0x8e40, 0x3d77, - 0x8e41, 0x3d6c, - 0x8e42, 0x3f59, - 0x8e43, 0x3919, - 0x8e44, 0x3e70, - 0x8e45, 0x3752, - 0x8e46, 0x38af, - 0x8e47, 0x3786, - 0x8e48, 0x3f1b, - 0x8e49, 0x3d5c, - 0x8e4a, 0x3f99, - 0x8e4b, 0x3fe8, - 0x8e4c, 0x388b, - 0x8e4d, 0x38dc, - 0x8e4e, 0x3faa, - 0x8e4f, 0x42c8, - 0x8e50, 0x3741, - 0x8e51, 0x3d7f, - 0x8e52, 0x42ec, - 0x8e53, 0x3f93, - 0x8e54, 0x389a, - 0x8e55, 0x3879, - 0x8e56, 0x373a, - 0x8e57, 0x42d0, - 0x8e58, 0x3e6f, - 0x8e59, 0x3f18, - 0x8e5a, 0x36e8, - 0x8e5b, 0x3739, - 0x8e5c, 0x3e99, - 0x8e5d, 0x3b4c, - 0x8e5e, 0x3dd2, - 0x8e5f, 0x3fa9, - 0x8e60, 0x3fac, - 0x8e61, 0x3fcb, - 0x8e62, 0x3733, - 0x8e63, 0x3f9f, - 0x8e64, 0x40da, - 0x8e65, 0x3f29, - 0x8e66, 0x3c66, - 0x8e67, 0x4222, - 0x8e68, 0x40ae, - 0x8e69, 0x3d7a, - 0x8e6a, 0x3f8d, - 0x8e6b, 0x39d0, - 0x8e6c, 0x4264, - 0x8e6d, 0x3d82, - 0x8e6e, 0x4203, - 0x8e6f, 0x41db, - 0x8e70, 0x3fde, - 0x8e71, 0x3ff4, - 0x8e72, 0x4004, - 0x8e73, 0x3f66, - 0x8e74, 0x3f9b, - 0x8e75, 0x3d66, - 0x8e76, 0x404b, - 0x8e77, 0x3fdf, - 0x8e78, 0x40fb, - 0x8e79, 0x4012, - 0x8e7a, 0x3fe6, - 0x8e7b, 0x42eb, - 0x8e7c, 0x4124, - 0x8e7d, 0x3d7c, - 0x8e7e, 0x3d69, - 0x8ea1, 0x3ffe, - 0x8ea2, 0x3d72, - 0x8ea3, 0x3fc6, - 0x8ea4, 0x3cfe, - 0x8ea5, 0x43f9, - 0x8ea6, 0x3d42, - 0x8ea7, 0x3f15, - 0x8ea8, 0x3fce, - 0x8ea9, 0x428b, - 0x8eaa, 0x40cf, - 0x8eab, 0x43f6, - 0x8eac, 0x4005, - 0x8ead, 0x3f2d, - 0x8eae, 0x4161, - 0x8eaf, 0x3f2c, - 0x8eb0, 0x3aca, - 0x8eb1, 0x3d6a, - 0x8eb2, 0x4063, - 0x8eb3, 0x3fc5, - 0x8eb4, 0x39e7, - 0x8eb5, 0x3f2a, - 0x8eb6, 0x4060, - 0x8eb7, 0x4273, - 0x8eb8, 0x4221, - 0x8eb9, 0x40a2, - 0x8eba, 0x3f68, - 0x8ebb, 0x40a1, - 0x8ebc, 0x3f57, - 0x8ebd, 0x3f70, - 0x8ebe, 0x3fb7, - 0x8ebf, 0x3746, - 0x8ec0, 0x3fab, - 0x8ec1, 0x3ff2, - 0x8ec2, 0x3f8c, - 0x8ec3, 0x3f88, - 0x8ec4, 0x37d3, - 0x8ec5, 0x3b74, - 0x8ec7, 0x42f4, - 0x8ec8, 0x3c4c, - 0x8ec9, 0x3b7a, - 0x8eca, 0x3885, - 0x8ecb, 0x3737, - 0x8ecc, 0x3fdb, - 0x8ecd, 0x3f1d, - 0x8ece, 0x3fec, - 0x8ecf, 0x3fe5, - 0x8ed0, 0x375e, - 0x8ed1, 0x3ff7, - 0x8ed2, 0x3813, - 0x8ed3, 0x3fe3, - 0x8ed4, 0x3f1a, - 0x8ed5, 0x38e6, - 0x8ed6, 0x3fdc, - 0x8ed7, 0x377f, - 0x8ed8, 0x3d87, - 0x8ed9, 0x3bd3, - 0x8eda, 0x3d78, - 0x8edb, 0x3bd4, - 0x8edc, 0x3f96, - 0x8edd, 0x3f95, - 0x8ede, 0x3d8c, - 0x8edf, 0x3937, - 0x8ee0, 0x3f1c, - 0x8ee1, 0x3932, - 0x8ee2, 0x3d6b, - 0x8ee3, 0x3800, - 0x8ee4, 0x3ff8, - 0x8ee5, 0x3c3a, - 0x8ee6, 0x3f42, - 0x8ee7, 0x43fd, - 0x8ee8, 0x3fb1, - 0x8ee9, 0x3792, - 0x8eea, 0x3f94, - 0x8eeb, 0x3f1e, - 0x8eec, 0x400a, - 0x8eed, 0x3882, - 0x8eee, 0x3f9c, - 0x8eef, 0x3d61, - 0x8ef0, 0x3f22, - 0x8ef1, 0x3fe9, - 0x8ef2, 0x3d92, - 0x8ef3, 0x377f, - 0x8ef4, 0x3b94, - 0x8ef5, 0x376e, - 0x8ef6, 0x4301, - 0x8ef7, 0x3f3a, - 0x8ef8, 0x3863, - 0x8ef9, 0x3ff1, - 0x8efa, 0x42fe, - 0x8efb, 0x3bfc, - 0x8efc, 0x3f45, - 0x8efd, 0x379f, - 0x8efe, 0x376b, - 0x8f40, 0x3f14, - 0x8f41, 0x3f47, - 0x8f42, 0x3862, - 0x8f43, 0x3769, - 0x8f44, 0x3c12, - 0x8f45, 0x3f49, - 0x8f46, 0x381f, - 0x8f47, 0x3929, - 0x8f48, 0x3f56, - 0x8f49, 0x3f34, - 0x8f4a, 0x3fdd, - 0x8f4b, 0x38fa, - 0x8f4c, 0x3f7b, - 0x8f4d, 0x3c11, - 0x8f4e, 0x3f7c, - 0x8f4f, 0x43ff, - 0x8f50, 0x3e73, - 0x8f51, 0x3f71, - 0x8f52, 0x3925, - 0x8f53, 0x3c55, - 0x8f54, 0x38b5, - 0x8f55, 0x3f5a, - 0x8f56, 0x3816, - 0x8f57, 0x3e6d, - 0x8f58, 0x3782, - 0x8f59, 0x3f11, - 0x8f5a, 0x3b8b, - 0x8f5b, 0x37c0, - 0x8f5c, 0x3815, - 0x8f5d, 0x383b, - 0x8f5e, 0x3d73, - 0x8f5f, 0x3d6e, - 0x8f60, 0x3f8a, - 0x8f61, 0x3f3e, - 0x8f62, 0x4234, - 0x8f63, 0x41e3, - 0x8f64, 0x3fc7, - 0x8f65, 0x3ff3, - 0x8f66, 0x4003, - 0x8f67, 0x4032, - 0x8f68, 0x3f6e, - 0x8f69, 0x41a3, - 0x8f6a, 0x4006, - 0x8f6b, 0x3f2b, - 0x8f6c, 0x3f7d, - 0x8f6d, 0x3c73, - 0x8f6e, 0x3f16, - 0x8f6f, 0x4002, - 0x8f70, 0x4056, - 0x8f71, 0x3fba, - 0x8f72, 0x3f6b, - 0x8f73, 0x3f91, - 0x8f74, 0x3fbe, - 0x8f75, 0x405a, - 0x8f76, 0x3adf, - 0x8f77, 0x3e41, - 0x8f78, 0x3d67, - 0x8f79, 0x3f60, - 0x8f7a, 0x41e8, - 0x8f7b, 0x3fc0, - 0x8f7c, 0x3d83, - 0x8f7d, 0x4173, - 0x8f7e, 0x3f5c, - 0x8fa1, 0x3f32, - 0x8fa2, 0x3f3f, - 0x8fa3, 0x3d63, - 0x8fa4, 0x4146, - 0x8fa5, 0x3fcd, - 0x8fa6, 0x3d79, - 0x8fa7, 0x3f28, - 0x8fa8, 0x3fc1, - 0x8fa9, 0x40bc, - 0x8faa, 0x3d71, - 0x8fab, 0x3f37, - 0x8fac, 0x42d8, - 0x8fad, 0x3feb, - 0x8fae, 0x4241, - 0x8faf, 0x3a30, - 0x8fb0, 0x39cd, - 0x8fb1, 0x42bf, - 0x8fb2, 0x420e, - 0x8fb3, 0x3f0a, - 0x8fb4, 0x39cc, - 0x8fb5, 0x4044, - 0x8fb6, 0x4098, - 0x8fb7, 0x418c, - 0x8fb8, 0x3d64, - 0x8fb9, 0x3f44, - 0x8fba, 0x404f, - 0x8fbb, 0x42d5, - 0x8fbc, 0x4290, - 0x8fbd, 0x4000, - 0x8fbe, 0x3a89, - 0x8fbf, 0x416c, - 0x8fc0, 0x40c4, - 0x8fc1, 0x404d, - 0x8fc2, 0x3dc0, - 0x8fc3, 0x3f50, - 0x8fc4, 0x4009, - 0x8fc5, 0x3faf, - 0x8fc6, 0x3f86, - 0x8fc7, 0x4093, - 0x8fc8, 0x3aad, - 0x8fc9, 0x3f38, - 0x8fca, 0x3d75, - 0x8fcb, 0x3f39, - 0x8fcc, 0x42cd, - 0x8fcd, 0x3f78, - 0x8fce, 0x3f9d, - 0x8fcf, 0x4090, - 0x8fd0, 0x3d80, - 0x8fd1, 0x3f2e, - 0x8fd2, 0x38b6, - 0x8fd3, 0x41b9, - 0x8fd4, 0x3d8a, - 0x8fd5, 0x3f24, - 0x8fd6, 0x3a9e, - 0x8fd7, 0x3adc, - 0x8fd8, 0x3d65, - 0x8fd9, 0x4085, - 0x8fda, 0x3f51, - 0x8fdb, 0x43fa, - 0x8fdc, 0x3f63, - 0x8fdd, 0x4178, - 0x8fde, 0x41b7, - 0x8fdf, 0x3e72, - 0x8fe0, 0x41d9, - 0x8fe1, 0x418e, - 0x8fe2, 0x3d76, - 0x8fe3, 0x42d4, - 0x8fe4, 0x42a2, - 0x8fe5, 0x4257, - 0x8fe6, 0x3f0c, - 0x8fe7, 0x3996, - 0x8fe8, 0x4255, - 0x8fe9, 0x40b7, - 0x8fea, 0x3f9a, - 0x8feb, 0x3fca, - 0x8fec, 0x3f5e, - 0x8fed, 0x3d85, - 0x8fee, 0x3ffa, - 0x8fef, 0x3fb6, - 0x8ff0, 0x3ac3, - 0x8ff1, 0x3fc8, - 0x8ff2, 0x3f4b, - 0x8ff3, 0x40f1, - 0x8ff4, 0x4034, - 0x8ff5, 0x3f5b, - 0x8ff6, 0x42c9, - 0x8ff7, 0x3c75, - 0x8ff8, 0x3f79, - 0x8ff9, 0x42c6, - 0x8ffa, 0x38cf, - 0x8ffb, 0x41f4, - 0x8ffc, 0x3f41, - 0x8ffd, 0x390b, - 0x8ffe, 0x38e0, - 0x9040, 0x427d, - 0x9041, 0x42f0, - 0x9042, 0x3f27, - 0x9043, 0x3822, - 0x9044, 0x37d8, - 0x9045, 0x37a2, - 0x9046, 0x3f73, - 0x9047, 0x42b8, - 0x9048, 0x3f19, - 0x9049, 0x42b7, - 0x904a, 0x3d8b, - 0x904b, 0x4129, - 0x904c, 0x40d4, - 0x904d, 0x38f5, - 0x904e, 0x4143, - 0x904f, 0x4022, - 0x9050, 0x41d0, - 0x9051, 0x41f5, - 0x9052, 0x3f43, - 0x9053, 0x40c8, - 0x9054, 0x4096, - 0x9055, 0x405d, - 0x9056, 0x4174, - 0x9057, 0x413e, - 0x9058, 0x413b, - 0x9059, 0x39c4, - 0x905a, 0x3d89, - 0x905b, 0x4205, - 0x905c, 0x36eb, - 0x905d, 0x39c5, - 0x905e, 0x3d84, - 0x905f, 0x4054, - 0x9060, 0x193f, - 0x9061, 0x0619, - 0x9062, 0x0871, - 0x9063, 0x115f, - 0x9064, 0x3f53, - 0x9065, 0x3f1f, - 0x9066, 0x339d, - 0x9067, 0x3fb8, - 0x9068, 0x3b3f, - 0x9069, 0x3f52, - 0x906a, 0x3761, - 0x906b, 0x375c, - 0x906c, 0x3fd9, - 0x906d, 0x3fd7, - 0x906e, 0x3fd6, - 0x906f, 0x3e93, - 0x9070, 0x3774, - 0x9071, 0x377b, - 0x9072, 0x3b4f, - 0x9073, 0x4007, - 0x9074, 0x3fe2, - 0x9075, 0x3e79, - 0x9076, 0x3e76, - 0x9077, 0x3fe7, - 0x9078, 0x0d2a, - 0x9079, 0x3fee, - 0x907a, 0x3fe1, - 0x907b, 0x3e77, - 0x907c, 0x3fa3, - 0x907d, 0x3f54, - 0x907e, 0x37bc, - 0x90a1, 0x3e7a, - 0x90a2, 0x3fa1, - 0x90a3, 0x37c1, - 0x90a4, 0x3ff5, - 0x90a5, 0x3f9e, - 0x90a6, 0x3b7f, - 0x90a7, 0x380b, - 0x90a8, 0x3fef, - 0x90a9, 0x3ffc, - 0x90aa, 0x380d, - 0x90ab, 0x3fed, - 0x90ac, 0x3fe4, - 0x90ad, 0x3811, - 0x90ae, 0x3f7a, - 0x90af, 0x3fa2, - 0x90b0, 0x3b8e, - 0x90b1, 0x381c, - 0x90b2, 0x3fa0, - 0x90b3, 0x3fe0, - 0x90b4, 0x3d93, - 0x90b5, 0x3827, - 0x90b6, 0x3ff0, - 0x90b7, 0x3fa5, - 0x90b8, 0x3836, - 0x90b9, 0x3d8d, - 0x90ba, 0x3f69, - 0x90bb, 0x3f82, - 0x90bc, 0x3f85, - 0x90bd, 0x3f83, - 0x90be, 0x3f89, - 0x90bf, 0x3f7f, - 0x90c0, 0x3bb5, - 0x90c1, 0x3f87, - 0x90c2, 0x3f31, - 0x90c3, 0x3d94, - 0x90c4, 0x0230, - 0x90c5, 0x43fe, - 0x90c6, 0x3f10, - 0x90c7, 0x387e, - 0x90c8, 0x43eb, - 0x90c9, 0x3f6f, - 0x90ca, 0x3e9b, - 0x90cb, 0x3f4e, - 0x90cc, 0x3bc8, - 0x90cd, 0x1e29, - 0x90ce, 0x3f48, - 0x90cf, 0x382e, - 0x90d0, 0x3c60, - 0x90d1, 0x2a9f, - 0x90d2, 0x3893, - 0x90d3, 0x43f7, - 0x90d4, 0x3e74, - 0x90d5, 0x3bcd, - 0x90d6, 0x3ac9, - 0x90d7, 0x3fcc, - 0x90d8, 0x3fd1, - 0x90d9, 0x3f3d, - 0x90da, 0x3f4a, - 0x90db, 0x38ad, - 0x90dc, 0x2352, - 0x90dd, 0x3f46, - 0x90de, 0x38b2, - 0x90df, 0x3fb3, - 0x90e0, 0x3f0d, - 0x90e1, 0x38c0, - 0x90e2, 0x3e2f, - 0x90e3, 0x38d5, - 0x90e4, 0x3f35, - 0x90e5, 0x38d7, - 0x90e6, 0x3f2f, - 0x90e7, 0x3f33, - 0x90e8, 0x3d95, - 0x90e9, 0x3c02, - 0x90ea, 0x3f72, - 0x90eb, 0x3d96, - 0x90ec, 0x38e7, - 0x90ed, 0x4035, - 0x90ee, 0x3c0b, - 0x90ef, 0x38f0, - 0x90f0, 0x38f7, - 0x90f1, 0x3fb9, - 0x90f2, 0x3900, - 0x90f3, 0x3f74, - 0x90f4, 0x3909, - 0x90f5, 0x3f12, - 0x90f6, 0x3f17, - 0x90f7, 0x3f20, - 0x90f8, 0x3fbb, - 0x90f9, 0x3f3c, - 0x90fa, 0x3fb4, - 0x90fb, 0x3fad, - 0x90fc, 0x391a, - 0x90fd, 0x391c, - 0x90fe, 0x391b, - 0x9140, 0x3c39, - 0x9141, 0x3e71, - 0x9142, 0x3d7e, - 0x9143, 0x3f3b, - 0x9144, 0x3f30, - 0x9145, 0x3f84, - 0x9146, 0x43f8, - 0x9147, 0x3f0f, - 0x9148, 0x3f76, - 0x9149, 0x3933, - 0x914a, 0x3f75, - 0x914b, 0x3940, - 0x914c, 0x3f21, - 0x914d, 0x3f90, - 0x914e, 0x394a, - 0x914f, 0x3f80, - 0x9150, 0x3f23, - 0x9151, 0x3950, - 0x9152, 0x3d97, - 0x9153, 0x2e45, - 0x9154, 0x0570, - 0x9155, 0x3ead, - 0x9156, 0x3522, - 0x9157, 0x0be3, - 0x9158, 0x0595, - 0x9159, 0x0228, - 0x915a, 0x0a95, - 0x915b, 0x12b0, - 0x915c, 0x091a, - 0x915d, 0x43fc, - 0x915e, 0x3f92, - 0x915f, 0x3fae, - 0x9160, 0x07c2, - 0x9161, 0x0955, - 0x9162, 0x3785, - 0x9163, 0x3e6e, - 0x9164, 0x3d6d, - 0x9165, 0x3f62, - 0x9166, 0x39c8, - 0x9167, 0x3f65, - 0x9168, 0x393d, - 0x9169, 0x3f26, - 0x916a, 0x406d, - 0x916b, 0x3fd0, - 0x916c, 0x3f36, - 0x916d, 0x4086, - 0x916e, 0x3952, - 0x916f, 0x3fd2, - 0x9170, 0x3858, - 0x9171, 0x3ffb, - 0x9172, 0x3f67, - 0x9173, 0x3e81, - 0x9174, 0x3fc9, - 0x9175, 0x3fb5, - 0x9176, 0x3e7c, - 0x9177, 0x3e75, - 0x9178, 0x3c77, - 0x9179, 0x3b2e, - 0x917a, 0x3f4d, - 0x917b, 0x43af, - 0x917c, 0x3e67, - 0x917d, 0x40bd, - 0x917e, 0x3f6c, - 0x91a1, 0x39a6, - 0x91a2, 0x3948, - 0x91a3, 0x3fbf, - 0x91a4, 0x3f5f, - 0x91a5, 0x3a05, - 0x91a6, 0x06f5, - 0x91a7, 0x40f8, - 0x91a8, 0x41ad, - 0x91a9, 0x3f0e, - 0x91aa, 0x4122, - 0x91ab, 0x3f13, - 0x91ac, 0x3f0b, - 0x91ad, 0x4135, - 0x91ae, 0x3a2b, - 0x91af, 0x4138, - 0x91b0, 0x0226, - 0x91b1, 0x4149, - 0x91b2, 0x3ba5, - 0x91b3, 0x4001, - 0x91b4, 0x3fbd, - 0x91b5, 0x3fa8, - 0x91b6, 0x4186, - 0x91b7, 0x3a54, - 0x91b8, 0x3fc2, - 0x91b9, 0x4192, - 0x91ba, 0x4187, - 0x91bb, 0x3384, - 0x91bc, 0x3fc4, - 0x91bd, 0x3d99, - 0x91be, 0x3aaa, - 0x91bf, 0x41de, - 0x91c1, 0x3ff6, - 0x91c2, 0x3f5d, - 0x91c3, 0x41c7, - 0x91c4, 0x3d91, - 0x91c5, 0x3d74, - 0x91c6, 0x3f4c, - 0x91c7, 0x41f2, - 0x91c8, 0x3aa5, - 0x91c9, 0x3b4b, - 0x91ca, 0x3d86, - 0x91cb, 0x41f8, - 0x91cc, 0x4240, - 0x91cd, 0x3ffd, - 0x91ce, 0x3fa7, - 0x91cf, 0x4259, - 0x91d0, 0x0e72, - 0x91d1, 0x4262, - 0x91d2, 0x3c7e, - 0x91d3, 0x3938, - 0x91d4, 0x4233, - 0x91d5, 0x295a, - 0x91d7, 0x3f97, - 0x91d8, 0x3fb2, - 0x91d9, 0x428a, - 0x91da, 0x3f98, - 0x91db, 0x1f94, - 0x91dc, 0x3f40, - 0x91dd, 0x3f4f, - 0x91de, 0x3f8f, - 0x91df, 0x3d6f, - 0x91e0, 0x42df, - 0x91e1, 0x3f55, - 0x91e2, 0x3fd3, - 0x91e3, 0x42ee, - 0x91e4, 0x3fcf, - 0x91e5, 0x3fd4, - 0x91e6, 0x3e7d, - 0x91e7, 0x4307, - 0x91e8, 0x43fb, - 0x91e9, 0x3fda, - 0x91ea, 0x0d0a, - 0x91eb, 0x3f77, - 0x91ec, 0x3dbf, - 0x91ed, 0x402c, - 0x91ee, 0x3fa4, - 0x91ef, 0x3d6f, - 0x91f0, 0x3ccd, - 0x91f1, 0x3f64, - 0x91f2, 0x3f8b, - 0x91f3, 0x386f, - 0x91f4, 0x1971, - 0x91f5, 0x1c9b, - 0x91f6, 0x0745, - 0x91f7, 0x1d75, - 0x91f8, 0x3888, - 0x91f9, 0x3742, - 0x91fa, 0x2b40, - 0x91fb, 0x36e9, - 0x91fc, 0x37e0, - 0x91fd, 0x3e16, - 0x91fe, 0x387c, - 0x9240, 0x37aa, - 0x9241, 0x3f8e, - 0x9242, 0x40dc, - 0x9243, 0x3c7a, - 0x9244, 0x3fa6, - 0x9245, 0x405f, - 0x9246, 0x3c26, - 0x9247, 0x385e, - 0x9248, 0x3f25, - 0x9249, 0x4048, - 0x924a, 0x3d81, - 0x924b, 0x390e, - 0x924c, 0x4084, - 0x924d, 0x4118, - 0x924e, 0x4157, - 0x924f, 0x3902, - 0x9250, 0x389f, - 0x9251, 0x3ff9, - 0x9252, 0x3823, - 0x9253, 0x3871, - 0x9254, 0x36ea, - 0x9255, 0x376c, - 0x9256, 0x3740, - 0x9257, 0x37f4, - 0x9258, 0x42e0, - 0x9259, 0x425b, - 0x925a, 0x36ed, - 0x925b, 0x3b14, - 0x925c, 0x42c5, - 0x925d, 0x408b, - 0x925e, 0x38a5, - 0x925f, 0x416a, - 0x9260, 0x419d, - 0x9261, 0x4144, - 0x9262, 0x424f, - 0x9263, 0x3f61, - 0x9264, 0x3fd8, - 0x9265, 0x061c, - 0xa140, 0x0063, - 0xa159, 0x35af, - 0xa15d, 0x0080, - 0xa1a1, 0x00a2, - 0xa1f6, 0x00f8, - 0xa1f7, 0x00f7, - 0xa1f8, 0x00f9, - 0xa240, 0x0100, - 0xa2a1, 0x013f, - 0xa340, 0x019d, - 0xa3a1, 0x01dc, - 0xa3bd, 0x01f7, - 0xa440, 0x0253, - 0xa4a1, 0x0292, - 0xa540, 0x02f0, - 0xa5a1, 0x032f, - 0xa640, 0x038d, - 0xa6a1, 0x03cc, - 0xa740, 0x042a, - 0xa7a1, 0x0469, - 0xa840, 0x04c7, - 0xa8a1, 0x0506, - 0xa940, 0x0564, - 0xa9a1, 0x05a3, - 0xaa40, 0x0601, - 0xaaa1, 0x0640, - 0xab40, 0x069e, - 0xaba1, 0x06dd, - 0xac40, 0x073b, - 0xaca1, 0x077a, - 0xacfe, 0x097f, - 0xad40, 0x07d7, - 0xada1, 0x0816, - 0xae40, 0x0874, - 0xaea1, 0x08b3, - 0xaf40, 0x0911, - 0xafa1, 0x0950, - 0xafd0, 0x0980, - 0xb040, 0x09af, - 0xb0a1, 0x09ee, - 0xb140, 0x0a4c, - 0xb1a1, 0x0a8b, - 0xb240, 0x0ae9, - 0xb2a1, 0x0b28, - 0xb340, 0x0b86, - 0xb3a1, 0x0bc5, - 0xb440, 0x0c23, - 0xb4a1, 0x0c62, - 0xb540, 0x0cc0, - 0xb5a1, 0x0cff, - 0xb640, 0x0d5d, - 0xb6a1, 0x0d9c, - 0xb740, 0x0dfa, - 0xb7a1, 0x0e39, - 0xb840, 0x0e97, - 0xb8a1, 0x0ed6, - 0xb940, 0x0f34, - 0xb9a1, 0x0f73, - 0xba40, 0x0fd1, - 0xbaa1, 0x1010, - 0xbb40, 0x106e, - 0xbba1, 0x10ad, - 0xbbc8, 0x10d5, - 0xbc40, 0x110c, - 0xbca1, 0x114b, - 0xbd40, 0x11a9, - 0xbda1, 0x11e8, - 0xbe40, 0x1246, - 0xbe52, 0x10d4, - 0xbe53, 0x1258, - 0xbea1, 0x1284, - 0xbf40, 0x12e2, - 0xbfa1, 0x1321, - 0xc040, 0x137f, - 0xc0a1, 0x13be, - 0xc140, 0x141c, - 0xc1a1, 0x145b, - 0xc1ab, 0x1466, - 0xc240, 0x14ba, - 0xc2a1, 0x14f9, - 0xc2cb, 0x1465, - 0xc2cc, 0x1523, - 0xc340, 0x1556, - 0xc361, 0x1578, - 0xc3a1, 0x1596, - 0xc3b9, 0x15af, - 0xc3ba, 0x15ae, - 0xc3bb, 0x15b0, - 0xc440, 0x15f4, - 0xc456, 0x1577, - 0xc457, 0x160a, - 0xc4a1, 0x1632, - 0xc540, 0x1690, - 0xc5a1, 0x16cf, - 0xc640, 0x172d, - 0xc940, 0x176c, - 0xc94a, 0x0274, - 0xc94b, 0x1776, - 0xc96c, 0x1798, - 0xc9a1, 0x17ab, - 0xc9be, 0x1797, - 0xc9bf, 0x17c8, - 0xc9ed, 0x17f7, - 0xca40, 0x1809, - 0xcaa1, 0x1848, - 0xcaf7, 0x17f6, - 0xcaf8, 0x189e, - 0xcb40, 0x18a5, - 0xcba1, 0x18e4, - 0xcc40, 0x1942, - 0xcca1, 0x1981, - 0xcd40, 0x19df, - 0xcda1, 0x1a1e, - 0xce40, 0x1a7c, - 0xcea1, 0x1abb, - 0xcf40, 0x1b19, - 0xcfa1, 0x1b58, - 0xd040, 0x1bb6, - 0xd0a1, 0x1bf5, - 0xd140, 0x1c53, - 0xd1a1, 0x1c92, - 0xd240, 0x1cf0, - 0xd2a1, 0x1d2f, - 0xd340, 0x1d8d, - 0xd3a1, 0x1dcc, - 0xd440, 0x1e2a, - 0xd4a1, 0x1e69, - 0xd540, 0x1ec7, - 0xd5a1, 0x1f06, - 0xd640, 0x1f64, - 0xd6a1, 0x1fa3, - 0xd6cc, 0x2254, - 0xd6cd, 0x1fcf, - 0xd740, 0x2001, - 0xd77a, 0x22b9, - 0xd77b, 0x203b, - 0xd7a1, 0x203f, - 0xd840, 0x209d, - 0xd8a1, 0x20dc, - 0xd940, 0x213a, - 0xd9a1, 0x2179, - 0xda40, 0x21d7, - 0xdaa1, 0x2216, - 0xdadf, 0x1fce, - 0xdae0, 0x2255, - 0xdb40, 0x2274, - 0xdba1, 0x22b3, - 0xdba7, 0x22ba, - 0xdc40, 0x2312, - 0xdca1, 0x2351, - 0xdd40, 0x23af, - 0xdda1, 0x23ee, - 0xddfc, 0x2381, - 0xddfd, 0x2449, - 0xde40, 0x244b, - 0xdea1, 0x248a, - 0xdf40, 0x24e8, - 0xdfa1, 0x2527, - 0xe040, 0x2585, - 0xe0a1, 0x25c4, - 0xe140, 0x2622, - 0xe1a1, 0x2661, - 0xe240, 0x26bf, - 0xe2a1, 0x26fe, - 0xe340, 0x275c, - 0xe3a1, 0x279b, - 0xe440, 0x27f9, - 0xe4a1, 0x2838, - 0xe540, 0x2896, - 0xe5a1, 0x28d5, - 0xe640, 0x2933, - 0xe6a1, 0x2972, - 0xe740, 0x29d0, - 0xe7a1, 0x2a0f, - 0xe840, 0x2a6d, - 0xe8a1, 0x2aac, - 0xe8a3, 0x2aaf, - 0xe940, 0x2b0b, - 0xe976, 0x2b42, - 0xe9a1, 0x2b4b, - 0xea40, 0x2ba9, - 0xeaa1, 0x2be8, - 0xeb40, 0x2c46, - 0xeb5b, 0x2c62, - 0xeba1, 0x2c86, - 0xebf1, 0x2aae, - 0xebf2, 0x2cd6, - 0xec40, 0x2ce3, - 0xeca1, 0x2d22, - 0xecde, 0x2b41, - 0xecdf, 0x2d5f, - 0xed40, 0x2d7f, - 0xeda1, 0x2dbe, - 0xedaa, 0x2dc8, - 0xee40, 0x2e1d, - 0xeea1, 0x2e5c, - 0xeeeb, 0x3014, - 0xeeec, 0x2ea6, - 0xef40, 0x2eb9, - 0xefa1, 0x2ef8, - 0xf040, 0x2f56, - 0xf056, 0x2dc7, - 0xf057, 0x2f6c, - 0xf0a1, 0x2f94, - 0xf0cb, 0x2c61, - 0xf0cc, 0x2fbe, - 0xf140, 0x2ff1, - 0xf163, 0x3015, - 0xf16b, 0x3160, - 0xf16c, 0x301d, - 0xf1a1, 0x3030, - 0xf240, 0x308e, - 0xf268, 0x31ef, - 0xf269, 0x30b6, - 0xf2a1, 0x30cc, - 0xf2c3, 0x30ef, - 0xf340, 0x312b, - 0xf375, 0x3161, - 0xf3a1, 0x316b, - 0xf440, 0x31c9, - 0xf466, 0x31f0, - 0xf4a1, 0x3209, - 0xf4b5, 0x30ee, - 0xf4b6, 0x321d, - 0xf4fd, 0x3265, - 0xf540, 0x3267, - 0xf5a1, 0x32a6, - 0xf640, 0x3304, - 0xf663, 0x3264, - 0xf664, 0x3327, - 0xf6a1, 0x3342, - 0xf740, 0x33a0, - 0xf7a1, 0x33df, - 0xf840, 0x343d, - 0xf8a1, 0x347c, - 0xf940, 0x34da, - 0xf977, 0x3512, - 0xf9a1, 0x351a, - 0xf9c4, 0x3511, - 0xf9c5, 0x353d, - 0xf9c6, 0x3549, - 0xf9c7, 0x353e, - 0xf9d2, 0x354a, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 cns13HKdlbB5HEnc16 = { - 0, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, - 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, - 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, - 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, - 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, - 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, - 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, - 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, - 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, - 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - cns13HKdlbB5HMap2, 908 -}; - -static Gushort cns13HKdlbB5VMap2[1840] = { - 0x0000, 0x0000, - 0x8e40, 0x3d77, - 0x8e41, 0x3d6c, - 0x8e42, 0x3f59, - 0x8e43, 0x3919, - 0x8e44, 0x3e70, - 0x8e45, 0x3752, - 0x8e46, 0x38af, - 0x8e47, 0x3786, - 0x8e48, 0x3f1b, - 0x8e49, 0x3d5c, - 0x8e4a, 0x3f99, - 0x8e4b, 0x3fe8, - 0x8e4c, 0x388b, - 0x8e4d, 0x38dc, - 0x8e4e, 0x3faa, - 0x8e4f, 0x42c8, - 0x8e50, 0x3741, - 0x8e51, 0x3d7f, - 0x8e52, 0x42ec, - 0x8e53, 0x3f93, - 0x8e54, 0x389a, - 0x8e55, 0x3879, - 0x8e56, 0x373a, - 0x8e57, 0x42d0, - 0x8e58, 0x3e6f, - 0x8e59, 0x3f18, - 0x8e5a, 0x36e8, - 0x8e5b, 0x3739, - 0x8e5c, 0x3e99, - 0x8e5d, 0x3b4c, - 0x8e5e, 0x3dd2, - 0x8e5f, 0x3fa9, - 0x8e60, 0x3fac, - 0x8e61, 0x3fcb, - 0x8e62, 0x3733, - 0x8e63, 0x3f9f, - 0x8e64, 0x40da, - 0x8e65, 0x3f29, - 0x8e66, 0x3c66, - 0x8e67, 0x4222, - 0x8e68, 0x40ae, - 0x8e69, 0x3d7a, - 0x8e6a, 0x3f8d, - 0x8e6b, 0x39d0, - 0x8e6c, 0x4264, - 0x8e6d, 0x3d82, - 0x8e6e, 0x4203, - 0x8e6f, 0x41db, - 0x8e70, 0x3fde, - 0x8e71, 0x3ff4, - 0x8e72, 0x4004, - 0x8e73, 0x3f66, - 0x8e74, 0x3f9b, - 0x8e75, 0x3d66, - 0x8e76, 0x404b, - 0x8e77, 0x3fdf, - 0x8e78, 0x40fb, - 0x8e79, 0x4012, - 0x8e7a, 0x3fe6, - 0x8e7b, 0x42eb, - 0x8e7c, 0x4124, - 0x8e7d, 0x3d7c, - 0x8e7e, 0x3d69, - 0x8ea1, 0x3ffe, - 0x8ea2, 0x3d72, - 0x8ea3, 0x3fc6, - 0x8ea4, 0x3cfe, - 0x8ea5, 0x43f9, - 0x8ea6, 0x3d42, - 0x8ea7, 0x3f15, - 0x8ea8, 0x3fce, - 0x8ea9, 0x428b, - 0x8eaa, 0x40cf, - 0x8eab, 0x43f6, - 0x8eac, 0x4005, - 0x8ead, 0x3f2d, - 0x8eae, 0x4161, - 0x8eaf, 0x3f2c, - 0x8eb0, 0x3aca, - 0x8eb1, 0x3d6a, - 0x8eb2, 0x4063, - 0x8eb3, 0x3fc5, - 0x8eb4, 0x39e7, - 0x8eb5, 0x3f2a, - 0x8eb6, 0x4060, - 0x8eb7, 0x4273, - 0x8eb8, 0x4221, - 0x8eb9, 0x40a2, - 0x8eba, 0x3f68, - 0x8ebb, 0x40a1, - 0x8ebc, 0x3f57, - 0x8ebd, 0x3f70, - 0x8ebe, 0x3fb7, - 0x8ebf, 0x3746, - 0x8ec0, 0x3fab, - 0x8ec1, 0x3ff2, - 0x8ec2, 0x3f8c, - 0x8ec3, 0x3f88, - 0x8ec4, 0x37d3, - 0x8ec5, 0x3b74, - 0x8ec7, 0x42f4, - 0x8ec8, 0x3c4c, - 0x8ec9, 0x3b7a, - 0x8eca, 0x3885, - 0x8ecb, 0x3737, - 0x8ecc, 0x3fdb, - 0x8ecd, 0x3f1d, - 0x8ece, 0x3fec, - 0x8ecf, 0x3fe5, - 0x8ed0, 0x375e, - 0x8ed1, 0x3ff7, - 0x8ed2, 0x3813, - 0x8ed3, 0x3fe3, - 0x8ed4, 0x3f1a, - 0x8ed5, 0x38e6, - 0x8ed6, 0x3fdc, - 0x8ed7, 0x377f, - 0x8ed8, 0x3d87, - 0x8ed9, 0x3bd3, - 0x8eda, 0x3d78, - 0x8edb, 0x3bd4, - 0x8edc, 0x3f96, - 0x8edd, 0x3f95, - 0x8ede, 0x3d8c, - 0x8edf, 0x3937, - 0x8ee0, 0x3f1c, - 0x8ee1, 0x3932, - 0x8ee2, 0x3d6b, - 0x8ee3, 0x3800, - 0x8ee4, 0x3ff8, - 0x8ee5, 0x3c3a, - 0x8ee6, 0x3f42, - 0x8ee7, 0x43fd, - 0x8ee8, 0x3fb1, - 0x8ee9, 0x3792, - 0x8eea, 0x3f94, - 0x8eeb, 0x3f1e, - 0x8eec, 0x400a, - 0x8eed, 0x3882, - 0x8eee, 0x3f9c, - 0x8eef, 0x3d61, - 0x8ef0, 0x3f22, - 0x8ef1, 0x3fe9, - 0x8ef2, 0x3d92, - 0x8ef3, 0x377f, - 0x8ef4, 0x3b94, - 0x8ef5, 0x376e, - 0x8ef6, 0x4301, - 0x8ef7, 0x3f3a, - 0x8ef8, 0x3863, - 0x8ef9, 0x3ff1, - 0x8efa, 0x42fe, - 0x8efb, 0x3bfc, - 0x8efc, 0x3f45, - 0x8efd, 0x379f, - 0x8efe, 0x376b, - 0x8f40, 0x3f14, - 0x8f41, 0x3f47, - 0x8f42, 0x3862, - 0x8f43, 0x3769, - 0x8f44, 0x3c12, - 0x8f45, 0x3f49, - 0x8f46, 0x381f, - 0x8f47, 0x3929, - 0x8f48, 0x3f56, - 0x8f49, 0x3f34, - 0x8f4a, 0x3fdd, - 0x8f4b, 0x38fa, - 0x8f4c, 0x3f7b, - 0x8f4d, 0x3c11, - 0x8f4e, 0x3f7c, - 0x8f4f, 0x43ff, - 0x8f50, 0x3e73, - 0x8f51, 0x3f71, - 0x8f52, 0x3925, - 0x8f53, 0x3c55, - 0x8f54, 0x38b5, - 0x8f55, 0x3f5a, - 0x8f56, 0x3816, - 0x8f57, 0x3e6d, - 0x8f58, 0x3782, - 0x8f59, 0x3f11, - 0x8f5a, 0x3b8b, - 0x8f5b, 0x37c0, - 0x8f5c, 0x3815, - 0x8f5d, 0x383b, - 0x8f5e, 0x3d73, - 0x8f5f, 0x3d6e, - 0x8f60, 0x3f8a, - 0x8f61, 0x3f3e, - 0x8f62, 0x4234, - 0x8f63, 0x41e3, - 0x8f64, 0x3fc7, - 0x8f65, 0x3ff3, - 0x8f66, 0x4003, - 0x8f67, 0x4032, - 0x8f68, 0x3f6e, - 0x8f69, 0x41a3, - 0x8f6a, 0x4006, - 0x8f6b, 0x3f2b, - 0x8f6c, 0x3f7d, - 0x8f6d, 0x3c73, - 0x8f6e, 0x3f16, - 0x8f6f, 0x4002, - 0x8f70, 0x4056, - 0x8f71, 0x3fba, - 0x8f72, 0x3f6b, - 0x8f73, 0x3f91, - 0x8f74, 0x3fbe, - 0x8f75, 0x405a, - 0x8f76, 0x3adf, - 0x8f77, 0x3e41, - 0x8f78, 0x3d67, - 0x8f79, 0x3f60, - 0x8f7a, 0x41e8, - 0x8f7b, 0x3fc0, - 0x8f7c, 0x3d83, - 0x8f7d, 0x4173, - 0x8f7e, 0x3f5c, - 0x8fa1, 0x3f32, - 0x8fa2, 0x3f3f, - 0x8fa3, 0x3d63, - 0x8fa4, 0x4146, - 0x8fa5, 0x3fcd, - 0x8fa6, 0x3d79, - 0x8fa7, 0x3f28, - 0x8fa8, 0x3fc1, - 0x8fa9, 0x40bc, - 0x8faa, 0x3d71, - 0x8fab, 0x3f37, - 0x8fac, 0x42d8, - 0x8fad, 0x3feb, - 0x8fae, 0x4241, - 0x8faf, 0x3a30, - 0x8fb0, 0x39cd, - 0x8fb1, 0x42bf, - 0x8fb2, 0x420e, - 0x8fb3, 0x3f0a, - 0x8fb4, 0x39cc, - 0x8fb5, 0x4044, - 0x8fb6, 0x4098, - 0x8fb7, 0x418c, - 0x8fb8, 0x3d64, - 0x8fb9, 0x3f44, - 0x8fba, 0x404f, - 0x8fbb, 0x42d5, - 0x8fbc, 0x4290, - 0x8fbd, 0x4000, - 0x8fbe, 0x3a89, - 0x8fbf, 0x416c, - 0x8fc0, 0x40c4, - 0x8fc1, 0x404d, - 0x8fc2, 0x3dc0, - 0x8fc3, 0x3f50, - 0x8fc4, 0x4009, - 0x8fc5, 0x3faf, - 0x8fc6, 0x3f86, - 0x8fc7, 0x4093, - 0x8fc8, 0x3aad, - 0x8fc9, 0x3f38, - 0x8fca, 0x3d75, - 0x8fcb, 0x3f39, - 0x8fcc, 0x42cd, - 0x8fcd, 0x3f78, - 0x8fce, 0x3f9d, - 0x8fcf, 0x4090, - 0x8fd0, 0x3d80, - 0x8fd1, 0x3f2e, - 0x8fd2, 0x38b6, - 0x8fd3, 0x41b9, - 0x8fd4, 0x3d8a, - 0x8fd5, 0x3f24, - 0x8fd6, 0x3a9e, - 0x8fd7, 0x3adc, - 0x8fd8, 0x3d65, - 0x8fd9, 0x4085, - 0x8fda, 0x3f51, - 0x8fdb, 0x43fa, - 0x8fdc, 0x3f63, - 0x8fdd, 0x4178, - 0x8fde, 0x41b7, - 0x8fdf, 0x3e72, - 0x8fe0, 0x41d9, - 0x8fe1, 0x418e, - 0x8fe2, 0x3d76, - 0x8fe3, 0x42d4, - 0x8fe4, 0x42a2, - 0x8fe5, 0x4257, - 0x8fe6, 0x3f0c, - 0x8fe7, 0x3996, - 0x8fe8, 0x4255, - 0x8fe9, 0x40b7, - 0x8fea, 0x3f9a, - 0x8feb, 0x3fca, - 0x8fec, 0x3f5e, - 0x8fed, 0x3d85, - 0x8fee, 0x3ffa, - 0x8fef, 0x3fb6, - 0x8ff0, 0x3ac3, - 0x8ff1, 0x3fc8, - 0x8ff2, 0x3f4b, - 0x8ff3, 0x40f1, - 0x8ff4, 0x4034, - 0x8ff5, 0x3f5b, - 0x8ff6, 0x42c9, - 0x8ff7, 0x3c75, - 0x8ff8, 0x3f79, - 0x8ff9, 0x42c6, - 0x8ffa, 0x38cf, - 0x8ffb, 0x41f4, - 0x8ffc, 0x3f41, - 0x8ffd, 0x390b, - 0x8ffe, 0x38e0, - 0x9040, 0x427d, - 0x9041, 0x42f0, - 0x9042, 0x3f27, - 0x9043, 0x3822, - 0x9044, 0x37d8, - 0x9045, 0x37a2, - 0x9046, 0x3f73, - 0x9047, 0x42b8, - 0x9048, 0x3f19, - 0x9049, 0x42b7, - 0x904a, 0x3d8b, - 0x904b, 0x4129, - 0x904c, 0x40d4, - 0x904d, 0x38f5, - 0x904e, 0x4143, - 0x904f, 0x4022, - 0x9050, 0x41d0, - 0x9051, 0x41f5, - 0x9052, 0x3f43, - 0x9053, 0x40c8, - 0x9054, 0x4096, - 0x9055, 0x405d, - 0x9056, 0x4174, - 0x9057, 0x413e, - 0x9058, 0x413b, - 0x9059, 0x39c4, - 0x905a, 0x3d89, - 0x905b, 0x4205, - 0x905c, 0x36eb, - 0x905d, 0x39c5, - 0x905e, 0x3d84, - 0x905f, 0x4054, - 0x9060, 0x193f, - 0x9061, 0x0619, - 0x9062, 0x0871, - 0x9063, 0x115f, - 0x9064, 0x3f53, - 0x9065, 0x3f1f, - 0x9066, 0x339d, - 0x9067, 0x3fb8, - 0x9068, 0x3b3f, - 0x9069, 0x3f52, - 0x906a, 0x3761, - 0x906b, 0x375c, - 0x906c, 0x3fd9, - 0x906d, 0x3fd7, - 0x906e, 0x3fd6, - 0x906f, 0x3e93, - 0x9070, 0x3774, - 0x9071, 0x377b, - 0x9072, 0x3b4f, - 0x9073, 0x4007, - 0x9074, 0x3fe2, - 0x9075, 0x3e79, - 0x9076, 0x3e76, - 0x9077, 0x3fe7, - 0x9078, 0x0d2a, - 0x9079, 0x3fee, - 0x907a, 0x3fe1, - 0x907b, 0x3e77, - 0x907c, 0x3fa3, - 0x907d, 0x3f54, - 0x907e, 0x37bc, - 0x90a1, 0x3e7a, - 0x90a2, 0x3fa1, - 0x90a3, 0x37c1, - 0x90a4, 0x3ff5, - 0x90a5, 0x3f9e, - 0x90a6, 0x3b7f, - 0x90a7, 0x380b, - 0x90a8, 0x3fef, - 0x90a9, 0x3ffc, - 0x90aa, 0x380d, - 0x90ab, 0x3fed, - 0x90ac, 0x3fe4, - 0x90ad, 0x3811, - 0x90ae, 0x3f7a, - 0x90af, 0x3fa2, - 0x90b0, 0x3b8e, - 0x90b1, 0x381c, - 0x90b2, 0x3fa0, - 0x90b3, 0x3fe0, - 0x90b4, 0x3d93, - 0x90b5, 0x3827, - 0x90b6, 0x3ff0, - 0x90b7, 0x3fa5, - 0x90b8, 0x3836, - 0x90b9, 0x3d8d, - 0x90ba, 0x3f69, - 0x90bb, 0x3f82, - 0x90bc, 0x3f85, - 0x90bd, 0x3f83, - 0x90be, 0x3f89, - 0x90bf, 0x3f7f, - 0x90c0, 0x3bb5, - 0x90c1, 0x3f87, - 0x90c2, 0x3f31, - 0x90c3, 0x3d94, - 0x90c4, 0x0230, - 0x90c5, 0x43fe, - 0x90c6, 0x3f10, - 0x90c7, 0x387e, - 0x90c8, 0x43eb, - 0x90c9, 0x3f6f, - 0x90ca, 0x3e9b, - 0x90cb, 0x3f4e, - 0x90cc, 0x3bc8, - 0x90cd, 0x1e29, - 0x90ce, 0x3f48, - 0x90cf, 0x382e, - 0x90d0, 0x3c60, - 0x90d1, 0x2a9f, - 0x90d2, 0x3893, - 0x90d3, 0x43f7, - 0x90d4, 0x3e74, - 0x90d5, 0x3bcd, - 0x90d6, 0x3ac9, - 0x90d7, 0x3fcc, - 0x90d8, 0x3fd1, - 0x90d9, 0x3f3d, - 0x90da, 0x3f4a, - 0x90db, 0x38ad, - 0x90dc, 0x2352, - 0x90dd, 0x3f46, - 0x90de, 0x38b2, - 0x90df, 0x3fb3, - 0x90e0, 0x3f0d, - 0x90e1, 0x38c0, - 0x90e2, 0x3e2f, - 0x90e3, 0x38d5, - 0x90e4, 0x3f35, - 0x90e5, 0x38d7, - 0x90e6, 0x3f2f, - 0x90e7, 0x3f33, - 0x90e8, 0x3d95, - 0x90e9, 0x3c02, - 0x90ea, 0x3f72, - 0x90eb, 0x3d96, - 0x90ec, 0x38e7, - 0x90ed, 0x4035, - 0x90ee, 0x3c0b, - 0x90ef, 0x38f0, - 0x90f0, 0x38f7, - 0x90f1, 0x3fb9, - 0x90f2, 0x3900, - 0x90f3, 0x3f74, - 0x90f4, 0x3909, - 0x90f5, 0x3f12, - 0x90f6, 0x3f17, - 0x90f7, 0x3f20, - 0x90f8, 0x3fbb, - 0x90f9, 0x3f3c, - 0x90fa, 0x3fb4, - 0x90fb, 0x3fad, - 0x90fc, 0x391a, - 0x90fd, 0x391c, - 0x90fe, 0x391b, - 0x9140, 0x3c39, - 0x9141, 0x3e71, - 0x9142, 0x3d7e, - 0x9143, 0x3f3b, - 0x9144, 0x3f30, - 0x9145, 0x3f84, - 0x9146, 0x43f8, - 0x9147, 0x3f0f, - 0x9148, 0x3f76, - 0x9149, 0x3933, - 0x914a, 0x3f75, - 0x914b, 0x3940, - 0x914c, 0x3f21, - 0x914d, 0x3f90, - 0x914e, 0x394a, - 0x914f, 0x3f80, - 0x9150, 0x3f23, - 0x9151, 0x3950, - 0x9152, 0x3d97, - 0x9153, 0x2e45, - 0x9154, 0x0570, - 0x9155, 0x3ead, - 0x9156, 0x3522, - 0x9157, 0x0be3, - 0x9158, 0x0595, - 0x9159, 0x0228, - 0x915a, 0x0a95, - 0x915b, 0x12b0, - 0x915c, 0x091a, - 0x915d, 0x43fc, - 0x915e, 0x3f92, - 0x915f, 0x3fae, - 0x9160, 0x07c2, - 0x9161, 0x0955, - 0x9162, 0x3785, - 0x9163, 0x3e6e, - 0x9164, 0x3d6d, - 0x9165, 0x3f62, - 0x9166, 0x39c8, - 0x9167, 0x3f65, - 0x9168, 0x393d, - 0x9169, 0x3f26, - 0x916a, 0x406d, - 0x916b, 0x3fd0, - 0x916c, 0x3f36, - 0x916d, 0x4086, - 0x916e, 0x3952, - 0x916f, 0x3fd2, - 0x9170, 0x3858, - 0x9171, 0x3ffb, - 0x9172, 0x3f67, - 0x9173, 0x3e81, - 0x9174, 0x3fc9, - 0x9175, 0x3fb5, - 0x9176, 0x3e7c, - 0x9177, 0x3e75, - 0x9178, 0x3c77, - 0x9179, 0x3b2e, - 0x917a, 0x3f4d, - 0x917b, 0x43af, - 0x917c, 0x3e67, - 0x917d, 0x40bd, - 0x917e, 0x3f6c, - 0x91a1, 0x39a6, - 0x91a2, 0x3948, - 0x91a3, 0x3fbf, - 0x91a4, 0x3f5f, - 0x91a5, 0x3a05, - 0x91a6, 0x06f5, - 0x91a7, 0x40f8, - 0x91a8, 0x41ad, - 0x91a9, 0x3f0e, - 0x91aa, 0x4122, - 0x91ab, 0x3f13, - 0x91ac, 0x3f0b, - 0x91ad, 0x4135, - 0x91ae, 0x3a2b, - 0x91af, 0x4138, - 0x91b0, 0x0226, - 0x91b1, 0x4149, - 0x91b2, 0x3ba5, - 0x91b3, 0x4001, - 0x91b4, 0x3fbd, - 0x91b5, 0x3fa8, - 0x91b6, 0x4186, - 0x91b7, 0x3a54, - 0x91b8, 0x3fc2, - 0x91b9, 0x4192, - 0x91ba, 0x4187, - 0x91bb, 0x3384, - 0x91bc, 0x3fc4, - 0x91bd, 0x3d99, - 0x91be, 0x3aaa, - 0x91bf, 0x41de, - 0x91c1, 0x3ff6, - 0x91c2, 0x3f5d, - 0x91c3, 0x41c7, - 0x91c4, 0x3d91, - 0x91c5, 0x3d74, - 0x91c6, 0x3f4c, - 0x91c7, 0x41f2, - 0x91c8, 0x3aa5, - 0x91c9, 0x3b4b, - 0x91ca, 0x3d86, - 0x91cb, 0x41f8, - 0x91cc, 0x4240, - 0x91cd, 0x3ffd, - 0x91ce, 0x3fa7, - 0x91cf, 0x4259, - 0x91d0, 0x0e72, - 0x91d1, 0x4262, - 0x91d2, 0x3c7e, - 0x91d3, 0x3938, - 0x91d4, 0x4233, - 0x91d5, 0x295a, - 0x91d7, 0x3f97, - 0x91d8, 0x3fb2, - 0x91d9, 0x428a, - 0x91da, 0x3f98, - 0x91db, 0x1f94, - 0x91dc, 0x3f40, - 0x91dd, 0x3f4f, - 0x91de, 0x3f8f, - 0x91df, 0x3d6f, - 0x91e0, 0x42df, - 0x91e1, 0x3f55, - 0x91e2, 0x3fd3, - 0x91e3, 0x42ee, - 0x91e4, 0x3fcf, - 0x91e5, 0x3fd4, - 0x91e6, 0x3e7d, - 0x91e7, 0x4307, - 0x91e8, 0x43fb, - 0x91e9, 0x3fda, - 0x91ea, 0x0d0a, - 0x91eb, 0x3f77, - 0x91ec, 0x3dbf, - 0x91ed, 0x402c, - 0x91ee, 0x3fa4, - 0x91ef, 0x3d6f, - 0x91f0, 0x3ccd, - 0x91f1, 0x3f64, - 0x91f2, 0x3f8b, - 0x91f3, 0x386f, - 0x91f4, 0x1971, - 0x91f5, 0x1c9b, - 0x91f6, 0x0745, - 0x91f7, 0x1d75, - 0x91f8, 0x3888, - 0x91f9, 0x3742, - 0x91fa, 0x2b40, - 0x91fb, 0x36e9, - 0x91fc, 0x37e0, - 0x91fd, 0x3e16, - 0x91fe, 0x387c, - 0x9240, 0x37aa, - 0x9241, 0x3f8e, - 0x9242, 0x40dc, - 0x9243, 0x3c7a, - 0x9244, 0x3fa6, - 0x9245, 0x405f, - 0x9246, 0x3c26, - 0x9247, 0x385e, - 0x9248, 0x3f25, - 0x9249, 0x4048, - 0x924a, 0x3d81, - 0x924b, 0x390e, - 0x924c, 0x4084, - 0x924d, 0x4118, - 0x924e, 0x4157, - 0x924f, 0x3902, - 0x9250, 0x389f, - 0x9251, 0x3ff9, - 0x9252, 0x3823, - 0x9253, 0x3871, - 0x9254, 0x36ea, - 0x9255, 0x376c, - 0x9256, 0x3740, - 0x9257, 0x37f4, - 0x9258, 0x42e0, - 0x9259, 0x425b, - 0x925a, 0x36ed, - 0x925b, 0x3b14, - 0x925c, 0x42c5, - 0x925d, 0x408b, - 0x925e, 0x38a5, - 0x925f, 0x416a, - 0x9260, 0x419d, - 0x9261, 0x4144, - 0x9262, 0x424f, - 0x9263, 0x3f61, - 0x9264, 0x3fd8, - 0x9265, 0x061c, - 0xa140, 0x0063, - 0xa159, 0x35af, - 0xa15d, 0x0080, - 0xa1a1, 0x00a2, - 0xa1f6, 0x00f8, - 0xa1f7, 0x00f7, - 0xa1f8, 0x00f9, - 0xa240, 0x0100, - 0xa2a1, 0x013f, - 0xa340, 0x019d, - 0xa3a1, 0x01dc, - 0xa3bd, 0x01f7, - 0xa440, 0x0253, - 0xa4a1, 0x0292, - 0xa540, 0x02f0, - 0xa5a1, 0x032f, - 0xa640, 0x038d, - 0xa6a1, 0x03cc, - 0xa740, 0x042a, - 0xa7a1, 0x0469, - 0xa840, 0x04c7, - 0xa8a1, 0x0506, - 0xa940, 0x0564, - 0xa9a1, 0x05a3, - 0xaa40, 0x0601, - 0xaaa1, 0x0640, - 0xab40, 0x069e, - 0xaba1, 0x06dd, - 0xac40, 0x073b, - 0xaca1, 0x077a, - 0xacfe, 0x097f, - 0xad40, 0x07d7, - 0xada1, 0x0816, - 0xae40, 0x0874, - 0xaea1, 0x08b3, - 0xaf40, 0x0911, - 0xafa1, 0x0950, - 0xafd0, 0x0980, - 0xb040, 0x09af, - 0xb0a1, 0x09ee, - 0xb140, 0x0a4c, - 0xb1a1, 0x0a8b, - 0xb240, 0x0ae9, - 0xb2a1, 0x0b28, - 0xb340, 0x0b86, - 0xb3a1, 0x0bc5, - 0xb440, 0x0c23, - 0xb4a1, 0x0c62, - 0xb540, 0x0cc0, - 0xb5a1, 0x0cff, - 0xb640, 0x0d5d, - 0xb6a1, 0x0d9c, - 0xb740, 0x0dfa, - 0xb7a1, 0x0e39, - 0xb840, 0x0e97, - 0xb8a1, 0x0ed6, - 0xb940, 0x0f34, - 0xb9a1, 0x0f73, - 0xba40, 0x0fd1, - 0xbaa1, 0x1010, - 0xbb40, 0x106e, - 0xbba1, 0x10ad, - 0xbbc8, 0x10d5, - 0xbc40, 0x110c, - 0xbca1, 0x114b, - 0xbd40, 0x11a9, - 0xbda1, 0x11e8, - 0xbe40, 0x1246, - 0xbe52, 0x10d4, - 0xbe53, 0x1258, - 0xbea1, 0x1284, - 0xbf40, 0x12e2, - 0xbfa1, 0x1321, - 0xc040, 0x137f, - 0xc0a1, 0x13be, - 0xc140, 0x141c, - 0xc1a1, 0x145b, - 0xc1ab, 0x1466, - 0xc240, 0x14ba, - 0xc2a1, 0x14f9, - 0xc2cb, 0x1465, - 0xc2cc, 0x1523, - 0xc340, 0x1556, - 0xc361, 0x1578, - 0xc3a1, 0x1596, - 0xc3b9, 0x15af, - 0xc3ba, 0x15ae, - 0xc3bb, 0x15b0, - 0xc440, 0x15f4, - 0xc456, 0x1577, - 0xc457, 0x160a, - 0xc4a1, 0x1632, - 0xc540, 0x1690, - 0xc5a1, 0x16cf, - 0xc640, 0x172d, - 0xc940, 0x176c, - 0xc94a, 0x0274, - 0xc94b, 0x1776, - 0xc96c, 0x1798, - 0xc9a1, 0x17ab, - 0xc9be, 0x1797, - 0xc9bf, 0x17c8, - 0xc9ed, 0x17f7, - 0xca40, 0x1809, - 0xcaa1, 0x1848, - 0xcaf7, 0x17f6, - 0xcaf8, 0x189e, - 0xcb40, 0x18a5, - 0xcba1, 0x18e4, - 0xcc40, 0x1942, - 0xcca1, 0x1981, - 0xcd40, 0x19df, - 0xcda1, 0x1a1e, - 0xce40, 0x1a7c, - 0xcea1, 0x1abb, - 0xcf40, 0x1b19, - 0xcfa1, 0x1b58, - 0xd040, 0x1bb6, - 0xd0a1, 0x1bf5, - 0xd140, 0x1c53, - 0xd1a1, 0x1c92, - 0xd240, 0x1cf0, - 0xd2a1, 0x1d2f, - 0xd340, 0x1d8d, - 0xd3a1, 0x1dcc, - 0xd440, 0x1e2a, - 0xd4a1, 0x1e69, - 0xd540, 0x1ec7, - 0xd5a1, 0x1f06, - 0xd640, 0x1f64, - 0xd6a1, 0x1fa3, - 0xd6cc, 0x2254, - 0xd6cd, 0x1fcf, - 0xd740, 0x2001, - 0xd77a, 0x22b9, - 0xd77b, 0x203b, - 0xd7a1, 0x203f, - 0xd840, 0x209d, - 0xd8a1, 0x20dc, - 0xd940, 0x213a, - 0xd9a1, 0x2179, - 0xda40, 0x21d7, - 0xdaa1, 0x2216, - 0xdadf, 0x1fce, - 0xdae0, 0x2255, - 0xdb40, 0x2274, - 0xdba1, 0x22b3, - 0xdba7, 0x22ba, - 0xdc40, 0x2312, - 0xdca1, 0x2351, - 0xdd40, 0x23af, - 0xdda1, 0x23ee, - 0xddfc, 0x2381, - 0xddfd, 0x2449, - 0xde40, 0x244b, - 0xdea1, 0x248a, - 0xdf40, 0x24e8, - 0xdfa1, 0x2527, - 0xe040, 0x2585, - 0xe0a1, 0x25c4, - 0xe140, 0x2622, - 0xe1a1, 0x2661, - 0xe240, 0x26bf, - 0xe2a1, 0x26fe, - 0xe340, 0x275c, - 0xe3a1, 0x279b, - 0xe440, 0x27f9, - 0xe4a1, 0x2838, - 0xe540, 0x2896, - 0xe5a1, 0x28d5, - 0xe640, 0x2933, - 0xe6a1, 0x2972, - 0xe740, 0x29d0, - 0xe7a1, 0x2a0f, - 0xe840, 0x2a6d, - 0xe8a1, 0x2aac, - 0xe8a3, 0x2aaf, - 0xe940, 0x2b0b, - 0xe976, 0x2b42, - 0xe9a1, 0x2b4b, - 0xea40, 0x2ba9, - 0xeaa1, 0x2be8, - 0xeb40, 0x2c46, - 0xeb5b, 0x2c62, - 0xeba1, 0x2c86, - 0xebf1, 0x2aae, - 0xebf2, 0x2cd6, - 0xec40, 0x2ce3, - 0xeca1, 0x2d22, - 0xecde, 0x2b41, - 0xecdf, 0x2d5f, - 0xed40, 0x2d7f, - 0xeda1, 0x2dbe, - 0xedaa, 0x2dc8, - 0xee40, 0x2e1d, - 0xeea1, 0x2e5c, - 0xeeeb, 0x3014, - 0xeeec, 0x2ea6, - 0xef40, 0x2eb9, - 0xefa1, 0x2ef8, - 0xf040, 0x2f56, - 0xf056, 0x2dc7, - 0xf057, 0x2f6c, - 0xf0a1, 0x2f94, - 0xf0cb, 0x2c61, - 0xf0cc, 0x2fbe, - 0xf140, 0x2ff1, - 0xf163, 0x3015, - 0xf16b, 0x3160, - 0xf16c, 0x301d, - 0xf1a1, 0x3030, - 0xf240, 0x308e, - 0xf268, 0x31ef, - 0xf269, 0x30b6, - 0xf2a1, 0x30cc, - 0xf2c3, 0x30ef, - 0xf340, 0x312b, - 0xf375, 0x3161, - 0xf3a1, 0x316b, - 0xf440, 0x31c9, - 0xf466, 0x31f0, - 0xf4a1, 0x3209, - 0xf4b5, 0x30ee, - 0xf4b6, 0x321d, - 0xf4fd, 0x3265, - 0xf540, 0x3267, - 0xf5a1, 0x32a6, - 0xf640, 0x3304, - 0xf663, 0x3264, - 0xf664, 0x3327, - 0xf6a1, 0x3342, - 0xf740, 0x33a0, - 0xf7a1, 0x33df, - 0xf840, 0x343d, - 0xf8a1, 0x347c, - 0xf940, 0x34da, - 0xf977, 0x3512, - 0xf9a1, 0x351a, - 0xf9c4, 0x3511, - 0xf9c5, 0x353d, - 0xf9c6, 0x3549, - 0xf9c7, 0x353e, - 0xf9d2, 0x354a, - 0xa14b, 0x354e, - 0xa15a, 0x35af, - 0xa15c, 0x35b1, - 0xa15d, 0x0082, - 0xa161, 0x0086, - 0xa165, 0x008a, - 0xa169, 0x008e, - 0xa16d, 0x0092, - 0xa171, 0x0096, - 0xa175, 0x009a, - 0xa179, 0x009e, - 0xa1e3, 0x354f, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 cns13HKdlbB5VEnc16 = { - 1, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, - 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, - 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, - 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, - 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, - 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, - 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, - 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, - 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, - 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - cns13HKdlbB5VMap2, 920 -}; - -static Gushort cns13HKgccsB5HMap2[1106] = { - 0x0000, 0x0000, - 0x8a40, 0x4308, - 0x8aa1, 0x4347, - 0x8b41, 0x438c, - 0x8b45, 0x438e, - 0x8b47, 0x438f, - 0x8b49, 0x4390, - 0x8b4b, 0x4391, - 0x8b4d, 0x4392, - 0x8b54, 0x4396, - 0x8b58, 0x4397, - 0x8b5a, 0x4398, - 0x8e40, 0x372b, - 0x8e46, 0x3730, - 0x8e6c, 0x3755, - 0x8e77, 0x375f, - 0x8e7e, 0x0121, - 0x8ea1, 0x3766, - 0x8ea7, 0x376b, - 0x8eca, 0x378d, - 0x8ee6, 0x37a8, - 0x8ef0, 0x37b1, - 0x8f40, 0x37c0, - 0x8f5a, 0x37d9, - 0x8f60, 0x37de, - 0x8f68, 0x37e5, - 0x8fa1, 0x37fc, - 0x8fc6, 0x3820, - 0x8fc8, 0x3821, - 0x8fdb, 0x3833, - 0x8ffd, 0x3854, - 0x9040, 0x3856, - 0x905e, 0x3872, - 0x9070, 0x3883, - 0x907a, 0x36e9, - 0x907b, 0x388d, - 0x90a1, 0x3891, - 0x90a7, 0x3896, - 0x90b9, 0x38a7, - 0x9140, 0x38ed, - 0x9166, 0x3912, - 0x916f, 0x391a, - 0x91a1, 0x3929, - 0x91a3, 0x392a, - 0x9240, 0x3986, - 0x92a1, 0x39c5, - 0x92af, 0x0119, - 0x92b1, 0x011c, - 0x92b2, 0x011b, - 0x92b3, 0x39d3, - 0x92e6, 0x3a05, - 0x92f3, 0x3a11, - 0x9340, 0x3a1d, - 0x9369, 0x3a45, - 0x93a1, 0x3a5b, - 0x93ab, 0x3a64, - 0x93c3, 0x3a7b, - 0x93e6, 0x3a9d, - 0x93ec, 0x3aa2, - 0x9440, 0x3ab5, - 0x9447, 0x3abb, - 0x94a1, 0x3af3, - 0x9540, 0x3b51, - 0x954e, 0x3b5e, - 0x955b, 0x3b6a, - 0x95a1, 0x3b8e, - 0x95c7, 0x3bb3, - 0x9640, 0x3beb, - 0x96a1, 0x3c2a, - 0x96d5, 0x3c5d, - 0x9740, 0x3c87, - 0x97a1, 0x3cc6, - 0x9840, 0x3d24, - 0x9877, 0x3d59, - 0x987a, 0x3d5a, - 0x98a3, 0x3d5b, - 0x98af, 0x3d5c, - 0x98b6, 0x3d5d, - 0x98b9, 0x3d5e, - 0x98bd, 0x3d5f, - 0x98c2, 0x3d61, - 0x98c4, 0x3d62, - 0x98c6, 0x3d63, - 0x98e3, 0x3d65, - 0x98e7, 0x3d66, - 0x98ed, 0x3d67, - 0x98f0, 0x3d68, - 0x98f2, 0x3d69, - 0x98fc, 0x3d6a, - 0x9943, 0x3d6b, - 0x9945, 0x3d6c, - 0x994f, 0x3d6d, - 0x996a, 0x3d6e, - 0x996e, 0x3d6f, - 0x9975, 0x3d70, - 0x9978, 0x3d71, - 0x99a2, 0x3d72, - 0x99ae, 0x3d73, - 0x99b6, 0x3d74, - 0x99ba, 0x3d75, - 0x99e2, 0x3d76, - 0x99f4, 0x3d77, - 0x9a4a, 0x3d78, - 0x9a4c, 0x3d79, - 0x9a59, 0x3d7a, - 0x9a61, 0x3d7b, - 0x9a68, 0x3d7c, - 0x9a73, 0x3d7d, - 0x9a7e, 0x3d7e, - 0x9ab2, 0x3d7f, - 0x9ab7, 0x3d80, - 0x9ab9, 0x3d81, - 0x9abb, 0x3d82, - 0x9ac7, 0x3d83, - 0x9ad0, 0x3d84, - 0x9ad2, 0x3d85, - 0x9ad9, 0x3d86, - 0x9ae2, 0x3d89, - 0x9ae4, 0x3d8a, - 0x9ae8, 0x3d8b, - 0x9af2, 0x3d8c, - 0x9af6, 0x3d8d, - 0x9afb, 0x3d8e, - 0x9b46, 0x3d8f, - 0x9b4a, 0x3d90, - 0x9b4c, 0x3d91, - 0x9b54, 0x3d92, - 0x9b58, 0x3d93, - 0x9b5a, 0x3d94, - 0x9b5c, 0x3d95, - 0x9b5e, 0x3d96, - 0x9b70, 0x3d98, - 0x9b76, 0x3d9c, - 0x9b7b, 0x3d9f, - 0x9b7e, 0x3da1, - 0x9ba1, 0x3da2, - 0x9ba3, 0x3da3, - 0x9ba7, 0x3da5, - 0x9bac, 0x3da9, - 0x9baf, 0x3daa, - 0x9bb2, 0x3dab, - 0x9bbe, 0x3db3, - 0x9bc0, 0x3db4, - 0x9bca, 0x3dbb, - 0x9bcc, 0x3dbc, - 0x9bd0, 0x3dbd, - 0x9bd3, 0x3dbf, - 0x9bd5, 0x3dc0, - 0x9bd8, 0x3dc1, - 0x9bdd, 0x3dc4, - 0x9bde, 0x1c14, - 0x9bdf, 0x3dc5, - 0x9be1, 0x3dc6, - 0x9be3, 0x3dc7, - 0x9be7, 0x3dc8, - 0x9be9, 0x3dc9, - 0x9bee, 0x3dcd, - 0x9bf3, 0x3dcf, - 0x9bf6, 0x3dd0, - 0x9bf8, 0x3dd1, - 0x9bfb, 0x3dd3, - 0x9c40, 0x3dd5, - 0x9c44, 0x3dd8, - 0x9c48, 0x3ddb, - 0x9c4a, 0x3ddc, - 0x9c4d, 0x3ddd, - 0x9c55, 0x3de4, - 0x9c57, 0x3de5, - 0x9c5d, 0x3dea, - 0x9c60, 0x3deb, - 0x9c62, 0x3dec, - 0x9c64, 0x3ded, - 0x9c68, 0x3df0, - 0x9c6a, 0x3df1, - 0x9c6b, 0x346a, - 0x9c6d, 0x3df2, - 0x9c6f, 0x3df3, - 0x9c75, 0x3df7, - 0x9c79, 0x3dfa, - 0x9c7b, 0x3dfb, - 0x9c7e, 0x3dfd, - 0x9ca1, 0x3dfe, - 0x9ca5, 0x3e00, - 0x9ca8, 0x3e01, - 0x9cab, 0x3e03, - 0x9cad, 0x3e04, - 0x9cb1, 0x3e06, - 0x9cbc, 0x3e10, - 0x9cc6, 0x3e17, - 0x9ccf, 0x3e1f, - 0x9cd8, 0x3e24, - 0x9cdc, 0x3e27, - 0x9ce7, 0x3e31, - 0x9ceb, 0x3e34, - 0x9cee, 0x3e36, - 0x9cfd, 0x3e42, - 0x9d46, 0x3e43, - 0x9d49, 0x3e44, - 0x9d4c, 0x3e46, - 0x9d4f, 0x3e48, - 0x9d51, 0x3e49, - 0x9d55, 0x3e4a, - 0x9d57, 0x25c1, - 0x9d5a, 0x3e4b, - 0x9d62, 0x3e4c, - 0x9d64, 0x3e4d, - 0x9d79, 0x3e4e, - 0x9d7e, 0x3e4f, - 0x9da5, 0x3e50, - 0x9daa, 0x3e54, - 0x9dac, 0x3e55, - 0x9db0, 0x3e58, - 0x9db3, 0x3e59, - 0x9db5, 0x3e5a, - 0x9db7, 0x3e5b, - 0x9dbc, 0x3e5c, - 0x9dbf, 0x3e5e, - 0x9dc3, 0x3e60, - 0x9dc7, 0x3e62, - 0x9dca, 0x3e64, - 0x9dcd, 0x3e65, - 0x9dd3, 0x3e6a, - 0x9dda, 0x3e6d, - 0x9dfd, 0x3e8f, - 0x9e40, 0x3e91, - 0x9e64, 0x3eb4, - 0x9e68, 0x3eb6, - 0x9e6a, 0x3eb7, - 0x9e71, 0x3eb8, - 0x9e73, 0x3eb9, - 0x9e77, 0x3eba, - 0x9e7a, 0x3ebc, - 0x9e7c, 0x3ebd, - 0x9e7e, 0x3ebe, - 0x9ea1, 0x3ebf, - 0x9ea4, 0x3ec1, - 0x9ea9, 0x3ec4, - 0x9eac, 0x3ec6, - 0x9eaf, 0x3ec8, - 0x9eb4, 0x3ecb, - 0x9eb6, 0x3ecc, - 0x9eb9, 0x3ece, - 0x9ebc, 0x3ecf, - 0x9ebf, 0x3ed0, - 0x9ec4, 0x3ed2, - 0x9ec7, 0x3ed4, - 0x9ecc, 0x3ed8, - 0x9ed0, 0x3eda, - 0x9ed3, 0x3edc, - 0x9ed6, 0x3edd, - 0x9eda, 0x3edf, - 0x9ef3, 0x3ef7, - 0x9ef9, 0x3efa, - 0x9efc, 0x3efc, - 0x9f40, 0x3eff, - 0x9f44, 0x3f02, - 0x9f49, 0x3f06, - 0x9f4d, 0x3f08, - 0x9f69, 0x3f23, - 0x9f71, 0x3f2a, - 0x9fa1, 0x3f38, - 0x9fb6, 0x3f4c, - 0x9fbc, 0x3f51, - 0x9fc0, 0x3f54, - 0x9fc2, 0x3f55, - 0x9fe5, 0x3f77, - 0x9ffa, 0x3f8b, - 0xa041, 0x3f90, - 0xa048, 0x3f96, - 0xa056, 0x3fa3, - 0xa06e, 0x3fba, - 0xa07c, 0x3fc7, - 0xa0a1, 0x3fca, - 0xa0a3, 0x3fcb, - 0xa0a8, 0x3fcf, - 0xa0c6, 0x3fec, - 0xa0d1, 0x3ff6, - 0xa0e4, 0x4008, - 0xa140, 0x0063, - 0xa159, 0x35af, - 0xa15d, 0x0080, - 0xa1a1, 0x00a2, - 0xa1f6, 0x00f8, - 0xa1f7, 0x00f7, - 0xa1f8, 0x00f9, - 0xa240, 0x0100, - 0xa2a1, 0x013f, - 0xa340, 0x019d, - 0xa3a1, 0x01dc, - 0xa3bd, 0x01f7, - 0xa440, 0x0253, - 0xa4a1, 0x0292, - 0xa540, 0x02f0, - 0xa5a1, 0x032f, - 0xa640, 0x038d, - 0xa6a1, 0x03cc, - 0xa740, 0x042a, - 0xa7a1, 0x0469, - 0xa840, 0x04c7, - 0xa8a1, 0x0506, - 0xa940, 0x0564, - 0xa9a1, 0x05a3, - 0xaa40, 0x0601, - 0xaaa1, 0x0640, - 0xab40, 0x069e, - 0xaba1, 0x06dd, - 0xac40, 0x073b, - 0xaca1, 0x077a, - 0xacfe, 0x097f, - 0xad40, 0x07d7, - 0xada1, 0x0816, - 0xae40, 0x0874, - 0xaea1, 0x08b3, - 0xaf40, 0x0911, - 0xafa1, 0x0950, - 0xafd0, 0x0980, - 0xb040, 0x09af, - 0xb0a1, 0x09ee, - 0xb140, 0x0a4c, - 0xb1a1, 0x0a8b, - 0xb240, 0x0ae9, - 0xb2a1, 0x0b28, - 0xb340, 0x0b86, - 0xb3a1, 0x0bc5, - 0xb440, 0x0c23, - 0xb4a1, 0x0c62, - 0xb540, 0x0cc0, - 0xb5a1, 0x0cff, - 0xb640, 0x0d5d, - 0xb6a1, 0x0d9c, - 0xb740, 0x0dfa, - 0xb7a1, 0x0e39, - 0xb840, 0x0e97, - 0xb8a1, 0x0ed6, - 0xb940, 0x0f34, - 0xb9a1, 0x0f73, - 0xba40, 0x0fd1, - 0xbaa1, 0x1010, - 0xbb40, 0x106e, - 0xbba1, 0x10ad, - 0xbbc8, 0x10d5, - 0xbc40, 0x110c, - 0xbca1, 0x114b, - 0xbd40, 0x11a9, - 0xbda1, 0x11e8, - 0xbe40, 0x1246, - 0xbe52, 0x10d4, - 0xbe53, 0x1258, - 0xbea1, 0x1284, - 0xbf40, 0x12e2, - 0xbfa1, 0x1321, - 0xc040, 0x137f, - 0xc0a1, 0x13be, - 0xc140, 0x141c, - 0xc1a1, 0x145b, - 0xc1ab, 0x1466, - 0xc240, 0x14ba, - 0xc2a1, 0x14f9, - 0xc2cb, 0x1465, - 0xc2cc, 0x1523, - 0xc340, 0x1556, - 0xc361, 0x1578, - 0xc3a1, 0x1596, - 0xc3b9, 0x15af, - 0xc3ba, 0x15ae, - 0xc3bb, 0x15b0, - 0xc440, 0x15f4, - 0xc456, 0x1577, - 0xc457, 0x160a, - 0xc4a1, 0x1632, - 0xc540, 0x1690, - 0xc5a1, 0x16cf, - 0xc640, 0x172d, - 0xc940, 0x176c, - 0xc94a, 0x0274, - 0xc94b, 0x1776, - 0xc96c, 0x1798, - 0xc9a1, 0x17ab, - 0xc9be, 0x1797, - 0xc9bf, 0x17c8, - 0xc9ed, 0x17f7, - 0xca40, 0x1809, - 0xcaa1, 0x1848, - 0xcaf7, 0x17f6, - 0xcaf8, 0x189e, - 0xcb40, 0x18a5, - 0xcba1, 0x18e4, - 0xcc40, 0x1942, - 0xcca1, 0x1981, - 0xcd40, 0x19df, - 0xcda1, 0x1a1e, - 0xce40, 0x1a7c, - 0xcea1, 0x1abb, - 0xcf40, 0x1b19, - 0xcfa1, 0x1b58, - 0xd040, 0x1bb6, - 0xd0a1, 0x1bf5, - 0xd140, 0x1c53, - 0xd1a1, 0x1c92, - 0xd240, 0x1cf0, - 0xd2a1, 0x1d2f, - 0xd340, 0x1d8d, - 0xd3a1, 0x1dcc, - 0xd440, 0x1e2a, - 0xd4a1, 0x1e69, - 0xd540, 0x1ec7, - 0xd5a1, 0x1f06, - 0xd640, 0x1f64, - 0xd6a1, 0x1fa3, - 0xd6cc, 0x2254, - 0xd6cd, 0x1fcf, - 0xd740, 0x2001, - 0xd77a, 0x22b9, - 0xd77b, 0x203b, - 0xd7a1, 0x203f, - 0xd840, 0x209d, - 0xd8a1, 0x20dc, - 0xd940, 0x213a, - 0xd9a1, 0x2179, - 0xda40, 0x21d7, - 0xdaa1, 0x2216, - 0xdadf, 0x1fce, - 0xdae0, 0x2255, - 0xdb40, 0x2274, - 0xdba1, 0x22b3, - 0xdba7, 0x22ba, - 0xdc40, 0x2312, - 0xdca1, 0x2351, - 0xdd40, 0x23af, - 0xdda1, 0x23ee, - 0xddfc, 0x2381, - 0xddfd, 0x2449, - 0xde40, 0x244b, - 0xdea1, 0x248a, - 0xdf40, 0x24e8, - 0xdfa1, 0x2527, - 0xe040, 0x2585, - 0xe0a1, 0x25c4, - 0xe140, 0x2622, - 0xe1a1, 0x2661, - 0xe240, 0x26bf, - 0xe2a1, 0x26fe, - 0xe340, 0x275c, - 0xe3a1, 0x279b, - 0xe440, 0x27f9, - 0xe4a1, 0x2838, - 0xe540, 0x2896, - 0xe5a1, 0x28d5, - 0xe640, 0x2933, - 0xe6a1, 0x2972, - 0xe740, 0x29d0, - 0xe7a1, 0x2a0f, - 0xe840, 0x2a6d, - 0xe8a1, 0x2aac, - 0xe8a3, 0x2aaf, - 0xe940, 0x2b0b, - 0xe976, 0x2b42, - 0xe9a1, 0x2b4b, - 0xea40, 0x2ba9, - 0xeaa1, 0x2be8, - 0xeb40, 0x2c46, - 0xeb5b, 0x2c62, - 0xeba1, 0x2c86, - 0xebf1, 0x2aae, - 0xebf2, 0x2cd6, - 0xec40, 0x2ce3, - 0xeca1, 0x2d22, - 0xecde, 0x2b41, - 0xecdf, 0x2d5f, - 0xed40, 0x2d7f, - 0xeda1, 0x2dbe, - 0xedaa, 0x2dc8, - 0xee40, 0x2e1d, - 0xeea1, 0x2e5c, - 0xeeeb, 0x3014, - 0xeeec, 0x2ea6, - 0xef40, 0x2eb9, - 0xefa1, 0x2ef8, - 0xf040, 0x2f56, - 0xf056, 0x2dc7, - 0xf057, 0x2f6c, - 0xf0a1, 0x2f94, - 0xf0cb, 0x2c61, - 0xf0cc, 0x2fbe, - 0xf140, 0x2ff1, - 0xf163, 0x3015, - 0xf16b, 0x3160, - 0xf16c, 0x301d, - 0xf1a1, 0x3030, - 0xf240, 0x308e, - 0xf268, 0x31ef, - 0xf269, 0x30b6, - 0xf2a1, 0x30cc, - 0xf2c3, 0x30ef, - 0xf340, 0x312b, - 0xf375, 0x3161, - 0xf3a1, 0x316b, - 0xf440, 0x31c9, - 0xf466, 0x31f0, - 0xf4a1, 0x3209, - 0xf4b5, 0x30ee, - 0xf4b6, 0x321d, - 0xf4fd, 0x3265, - 0xf540, 0x3267, - 0xf5a1, 0x32a6, - 0xf640, 0x3304, - 0xf663, 0x3264, - 0xf664, 0x3327, - 0xf6a1, 0x3342, - 0xf740, 0x33a0, - 0xf7a1, 0x33df, - 0xf840, 0x343d, - 0xf8a1, 0x347c, - 0xf940, 0x34da, - 0xf977, 0x3512, - 0xf9a1, 0x351a, - 0xf9c4, 0x3511, - 0xf9c5, 0x353d, - 0xf9c6, 0x3549, - 0xf9c7, 0x353e, - 0xf9d2, 0x354a, - 0xfa40, 0x400b, - 0xfaa1, 0x404a, - 0xfb40, 0x40a8, - 0xfba1, 0x40e7, - 0xfbc0, 0x4105, - 0xfbce, 0x4112, - 0xfc40, 0x4143, - 0xfc4b, 0x414d, - 0xfc4f, 0x212f, - 0xfc50, 0x4151, - 0xfc53, 0x4153, - 0xfc64, 0x4163, - 0xfc76, 0x4174, - 0xfca1, 0x417d, - 0xfcb9, 0x115f, - 0xfcba, 0x4195, - 0xfcbd, 0x4197, - 0xfce4, 0x41bd, - 0xfcef, 0x41c7, - 0xfd40, 0x41d7, - 0xfd4a, 0x41e0, - 0xfda1, 0x4215, - 0xfdf3, 0x4266, - 0xfe40, 0x4272, - 0xfe6e, 0x429f, - 0xfe79, 0x42a9, - 0xfea1, 0x42af, - 0xfeaa, 0x0120, - 0xfeab, 0x42b8, - 0xfee0, 0x42eb, - 0xfeef, 0x42f8, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 cns13HKgccsB5HEnc16 = { - 0, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, - 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, - 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, - 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, - 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, - 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, - 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, - 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, - 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, - 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - cns13HKgccsB5HMap2, 553 -}; - -static Gushort cns13HKgccsB5VMap2[1130] = { - 0x0000, 0x0000, - 0x8a40, 0x4308, - 0x8aa1, 0x4347, - 0x8b41, 0x438c, - 0x8b45, 0x438e, - 0x8b47, 0x438f, - 0x8b49, 0x4390, - 0x8b4b, 0x4391, - 0x8b4d, 0x4392, - 0x8b54, 0x4396, - 0x8b58, 0x4397, - 0x8b5a, 0x4398, - 0x8e40, 0x372b, - 0x8e46, 0x3730, - 0x8e6c, 0x3755, - 0x8e77, 0x375f, - 0x8e7e, 0x0121, - 0x8ea1, 0x3766, - 0x8ea7, 0x376b, - 0x8eca, 0x378d, - 0x8ee6, 0x37a8, - 0x8ef0, 0x37b1, - 0x8f40, 0x37c0, - 0x8f5a, 0x37d9, - 0x8f60, 0x37de, - 0x8f68, 0x37e5, - 0x8fa1, 0x37fc, - 0x8fc6, 0x3820, - 0x8fc8, 0x3821, - 0x8fdb, 0x3833, - 0x8ffd, 0x3854, - 0x9040, 0x3856, - 0x905e, 0x3872, - 0x9070, 0x3883, - 0x907a, 0x36e9, - 0x907b, 0x388d, - 0x90a1, 0x3891, - 0x90a7, 0x3896, - 0x90b9, 0x38a7, - 0x9140, 0x38ed, - 0x9166, 0x3912, - 0x916f, 0x391a, - 0x91a1, 0x3929, - 0x91a3, 0x392a, - 0x9240, 0x3986, - 0x92a1, 0x39c5, - 0x92af, 0x0119, - 0x92b1, 0x011c, - 0x92b2, 0x011b, - 0x92b3, 0x39d3, - 0x92e6, 0x3a05, - 0x92f3, 0x3a11, - 0x9340, 0x3a1d, - 0x9369, 0x3a45, - 0x93a1, 0x3a5b, - 0x93ab, 0x3a64, - 0x93c3, 0x3a7b, - 0x93e6, 0x3a9d, - 0x93ec, 0x3aa2, - 0x9440, 0x3ab5, - 0x9447, 0x3abb, - 0x94a1, 0x3af3, - 0x9540, 0x3b51, - 0x954e, 0x3b5e, - 0x955b, 0x3b6a, - 0x95a1, 0x3b8e, - 0x95c7, 0x3bb3, - 0x9640, 0x3beb, - 0x96a1, 0x3c2a, - 0x96d5, 0x3c5d, - 0x9740, 0x3c87, - 0x97a1, 0x3cc6, - 0x9840, 0x3d24, - 0x9877, 0x3d59, - 0x987a, 0x3d5a, - 0x98a3, 0x3d5b, - 0x98af, 0x3d5c, - 0x98b6, 0x3d5d, - 0x98b9, 0x3d5e, - 0x98bd, 0x3d5f, - 0x98c2, 0x3d61, - 0x98c4, 0x3d62, - 0x98c6, 0x3d63, - 0x98e3, 0x3d65, - 0x98e7, 0x3d66, - 0x98ed, 0x3d67, - 0x98f0, 0x3d68, - 0x98f2, 0x3d69, - 0x98fc, 0x3d6a, - 0x9943, 0x3d6b, - 0x9945, 0x3d6c, - 0x994f, 0x3d6d, - 0x996a, 0x3d6e, - 0x996e, 0x3d6f, - 0x9975, 0x3d70, - 0x9978, 0x3d71, - 0x99a2, 0x3d72, - 0x99ae, 0x3d73, - 0x99b6, 0x3d74, - 0x99ba, 0x3d75, - 0x99e2, 0x3d76, - 0x99f4, 0x3d77, - 0x9a4a, 0x3d78, - 0x9a4c, 0x3d79, - 0x9a59, 0x3d7a, - 0x9a61, 0x3d7b, - 0x9a68, 0x3d7c, - 0x9a73, 0x3d7d, - 0x9a7e, 0x3d7e, - 0x9ab2, 0x3d7f, - 0x9ab7, 0x3d80, - 0x9ab9, 0x3d81, - 0x9abb, 0x3d82, - 0x9ac7, 0x3d83, - 0x9ad0, 0x3d84, - 0x9ad2, 0x3d85, - 0x9ad9, 0x3d86, - 0x9ae2, 0x3d89, - 0x9ae4, 0x3d8a, - 0x9ae8, 0x3d8b, - 0x9af2, 0x3d8c, - 0x9af6, 0x3d8d, - 0x9afb, 0x3d8e, - 0x9b46, 0x3d8f, - 0x9b4a, 0x3d90, - 0x9b4c, 0x3d91, - 0x9b54, 0x3d92, - 0x9b58, 0x3d93, - 0x9b5a, 0x3d94, - 0x9b5c, 0x3d95, - 0x9b5e, 0x3d96, - 0x9b70, 0x3d98, - 0x9b76, 0x3d9c, - 0x9b7b, 0x3d9f, - 0x9b7e, 0x3da1, - 0x9ba1, 0x3da2, - 0x9ba3, 0x3da3, - 0x9ba7, 0x3da5, - 0x9bac, 0x3da9, - 0x9baf, 0x3daa, - 0x9bb2, 0x3dab, - 0x9bbe, 0x3db3, - 0x9bc0, 0x3db4, - 0x9bca, 0x3dbb, - 0x9bcc, 0x3dbc, - 0x9bd0, 0x3dbd, - 0x9bd3, 0x3dbf, - 0x9bd5, 0x3dc0, - 0x9bd8, 0x3dc1, - 0x9bdd, 0x3dc4, - 0x9bde, 0x1c14, - 0x9bdf, 0x3dc5, - 0x9be1, 0x3dc6, - 0x9be3, 0x3dc7, - 0x9be7, 0x3dc8, - 0x9be9, 0x3dc9, - 0x9bee, 0x3dcd, - 0x9bf3, 0x3dcf, - 0x9bf6, 0x3dd0, - 0x9bf8, 0x3dd1, - 0x9bfb, 0x3dd3, - 0x9c40, 0x3dd5, - 0x9c44, 0x3dd8, - 0x9c48, 0x3ddb, - 0x9c4a, 0x3ddc, - 0x9c4d, 0x3ddd, - 0x9c55, 0x3de4, - 0x9c57, 0x3de5, - 0x9c5d, 0x3dea, - 0x9c60, 0x3deb, - 0x9c62, 0x3dec, - 0x9c64, 0x3ded, - 0x9c68, 0x3df0, - 0x9c6a, 0x3df1, - 0x9c6b, 0x346a, - 0x9c6d, 0x3df2, - 0x9c6f, 0x3df3, - 0x9c75, 0x3df7, - 0x9c79, 0x3dfa, - 0x9c7b, 0x3dfb, - 0x9c7e, 0x3dfd, - 0x9ca1, 0x3dfe, - 0x9ca5, 0x3e00, - 0x9ca8, 0x3e01, - 0x9cab, 0x3e03, - 0x9cad, 0x3e04, - 0x9cb1, 0x3e06, - 0x9cbc, 0x3e10, - 0x9cc6, 0x3e17, - 0x9ccf, 0x3e1f, - 0x9cd8, 0x3e24, - 0x9cdc, 0x3e27, - 0x9ce7, 0x3e31, - 0x9ceb, 0x3e34, - 0x9cee, 0x3e36, - 0x9cfd, 0x3e42, - 0x9d46, 0x3e43, - 0x9d49, 0x3e44, - 0x9d4c, 0x3e46, - 0x9d4f, 0x3e48, - 0x9d51, 0x3e49, - 0x9d55, 0x3e4a, - 0x9d57, 0x25c1, - 0x9d5a, 0x3e4b, - 0x9d62, 0x3e4c, - 0x9d64, 0x3e4d, - 0x9d79, 0x3e4e, - 0x9d7e, 0x3e4f, - 0x9da5, 0x3e50, - 0x9daa, 0x3e54, - 0x9dac, 0x3e55, - 0x9db0, 0x3e58, - 0x9db3, 0x3e59, - 0x9db5, 0x3e5a, - 0x9db7, 0x3e5b, - 0x9dbc, 0x3e5c, - 0x9dbf, 0x3e5e, - 0x9dc3, 0x3e60, - 0x9dc7, 0x3e62, - 0x9dca, 0x3e64, - 0x9dcd, 0x3e65, - 0x9dd3, 0x3e6a, - 0x9dda, 0x3e6d, - 0x9dfd, 0x3e8f, - 0x9e40, 0x3e91, - 0x9e64, 0x3eb4, - 0x9e68, 0x3eb6, - 0x9e6a, 0x3eb7, - 0x9e71, 0x3eb8, - 0x9e73, 0x3eb9, - 0x9e77, 0x3eba, - 0x9e7a, 0x3ebc, - 0x9e7c, 0x3ebd, - 0x9e7e, 0x3ebe, - 0x9ea1, 0x3ebf, - 0x9ea4, 0x3ec1, - 0x9ea9, 0x3ec4, - 0x9eac, 0x3ec6, - 0x9eaf, 0x3ec8, - 0x9eb4, 0x3ecb, - 0x9eb6, 0x3ecc, - 0x9eb9, 0x3ece, - 0x9ebc, 0x3ecf, - 0x9ebf, 0x3ed0, - 0x9ec4, 0x3ed2, - 0x9ec7, 0x3ed4, - 0x9ecc, 0x3ed8, - 0x9ed0, 0x3eda, - 0x9ed3, 0x3edc, - 0x9ed6, 0x3edd, - 0x9eda, 0x3edf, - 0x9ef3, 0x3ef7, - 0x9ef9, 0x3efa, - 0x9efc, 0x3efc, - 0x9f40, 0x3eff, - 0x9f44, 0x3f02, - 0x9f49, 0x3f06, - 0x9f4d, 0x3f08, - 0x9f69, 0x3f23, - 0x9f71, 0x3f2a, - 0x9fa1, 0x3f38, - 0x9fb6, 0x3f4c, - 0x9fbc, 0x3f51, - 0x9fc0, 0x3f54, - 0x9fc2, 0x3f55, - 0x9fe5, 0x3f77, - 0x9ffa, 0x3f8b, - 0xa041, 0x3f90, - 0xa048, 0x3f96, - 0xa056, 0x3fa3, - 0xa06e, 0x3fba, - 0xa07c, 0x3fc7, - 0xa0a1, 0x3fca, - 0xa0a3, 0x3fcb, - 0xa0a8, 0x3fcf, - 0xa0c6, 0x3fec, - 0xa0d1, 0x3ff6, - 0xa0e4, 0x4008, - 0xa140, 0x0063, - 0xa159, 0x35af, - 0xa15d, 0x0080, - 0xa1a1, 0x00a2, - 0xa1f6, 0x00f8, - 0xa1f7, 0x00f7, - 0xa1f8, 0x00f9, - 0xa240, 0x0100, - 0xa2a1, 0x013f, - 0xa340, 0x019d, - 0xa3a1, 0x01dc, - 0xa3bd, 0x01f7, - 0xa440, 0x0253, - 0xa4a1, 0x0292, - 0xa540, 0x02f0, - 0xa5a1, 0x032f, - 0xa640, 0x038d, - 0xa6a1, 0x03cc, - 0xa740, 0x042a, - 0xa7a1, 0x0469, - 0xa840, 0x04c7, - 0xa8a1, 0x0506, - 0xa940, 0x0564, - 0xa9a1, 0x05a3, - 0xaa40, 0x0601, - 0xaaa1, 0x0640, - 0xab40, 0x069e, - 0xaba1, 0x06dd, - 0xac40, 0x073b, - 0xaca1, 0x077a, - 0xacfe, 0x097f, - 0xad40, 0x07d7, - 0xada1, 0x0816, - 0xae40, 0x0874, - 0xaea1, 0x08b3, - 0xaf40, 0x0911, - 0xafa1, 0x0950, - 0xafd0, 0x0980, - 0xb040, 0x09af, - 0xb0a1, 0x09ee, - 0xb140, 0x0a4c, - 0xb1a1, 0x0a8b, - 0xb240, 0x0ae9, - 0xb2a1, 0x0b28, - 0xb340, 0x0b86, - 0xb3a1, 0x0bc5, - 0xb440, 0x0c23, - 0xb4a1, 0x0c62, - 0xb540, 0x0cc0, - 0xb5a1, 0x0cff, - 0xb640, 0x0d5d, - 0xb6a1, 0x0d9c, - 0xb740, 0x0dfa, - 0xb7a1, 0x0e39, - 0xb840, 0x0e97, - 0xb8a1, 0x0ed6, - 0xb940, 0x0f34, - 0xb9a1, 0x0f73, - 0xba40, 0x0fd1, - 0xbaa1, 0x1010, - 0xbb40, 0x106e, - 0xbba1, 0x10ad, - 0xbbc8, 0x10d5, - 0xbc40, 0x110c, - 0xbca1, 0x114b, - 0xbd40, 0x11a9, - 0xbda1, 0x11e8, - 0xbe40, 0x1246, - 0xbe52, 0x10d4, - 0xbe53, 0x1258, - 0xbea1, 0x1284, - 0xbf40, 0x12e2, - 0xbfa1, 0x1321, - 0xc040, 0x137f, - 0xc0a1, 0x13be, - 0xc140, 0x141c, - 0xc1a1, 0x145b, - 0xc1ab, 0x1466, - 0xc240, 0x14ba, - 0xc2a1, 0x14f9, - 0xc2cb, 0x1465, - 0xc2cc, 0x1523, - 0xc340, 0x1556, - 0xc361, 0x1578, - 0xc3a1, 0x1596, - 0xc3b9, 0x15af, - 0xc3ba, 0x15ae, - 0xc3bb, 0x15b0, - 0xc440, 0x15f4, - 0xc456, 0x1577, - 0xc457, 0x160a, - 0xc4a1, 0x1632, - 0xc540, 0x1690, - 0xc5a1, 0x16cf, - 0xc640, 0x172d, - 0xc940, 0x176c, - 0xc94a, 0x0274, - 0xc94b, 0x1776, - 0xc96c, 0x1798, - 0xc9a1, 0x17ab, - 0xc9be, 0x1797, - 0xc9bf, 0x17c8, - 0xc9ed, 0x17f7, - 0xca40, 0x1809, - 0xcaa1, 0x1848, - 0xcaf7, 0x17f6, - 0xcaf8, 0x189e, - 0xcb40, 0x18a5, - 0xcba1, 0x18e4, - 0xcc40, 0x1942, - 0xcca1, 0x1981, - 0xcd40, 0x19df, - 0xcda1, 0x1a1e, - 0xce40, 0x1a7c, - 0xcea1, 0x1abb, - 0xcf40, 0x1b19, - 0xcfa1, 0x1b58, - 0xd040, 0x1bb6, - 0xd0a1, 0x1bf5, - 0xd140, 0x1c53, - 0xd1a1, 0x1c92, - 0xd240, 0x1cf0, - 0xd2a1, 0x1d2f, - 0xd340, 0x1d8d, - 0xd3a1, 0x1dcc, - 0xd440, 0x1e2a, - 0xd4a1, 0x1e69, - 0xd540, 0x1ec7, - 0xd5a1, 0x1f06, - 0xd640, 0x1f64, - 0xd6a1, 0x1fa3, - 0xd6cc, 0x2254, - 0xd6cd, 0x1fcf, - 0xd740, 0x2001, - 0xd77a, 0x22b9, - 0xd77b, 0x203b, - 0xd7a1, 0x203f, - 0xd840, 0x209d, - 0xd8a1, 0x20dc, - 0xd940, 0x213a, - 0xd9a1, 0x2179, - 0xda40, 0x21d7, - 0xdaa1, 0x2216, - 0xdadf, 0x1fce, - 0xdae0, 0x2255, - 0xdb40, 0x2274, - 0xdba1, 0x22b3, - 0xdba7, 0x22ba, - 0xdc40, 0x2312, - 0xdca1, 0x2351, - 0xdd40, 0x23af, - 0xdda1, 0x23ee, - 0xddfc, 0x2381, - 0xddfd, 0x2449, - 0xde40, 0x244b, - 0xdea1, 0x248a, - 0xdf40, 0x24e8, - 0xdfa1, 0x2527, - 0xe040, 0x2585, - 0xe0a1, 0x25c4, - 0xe140, 0x2622, - 0xe1a1, 0x2661, - 0xe240, 0x26bf, - 0xe2a1, 0x26fe, - 0xe340, 0x275c, - 0xe3a1, 0x279b, - 0xe440, 0x27f9, - 0xe4a1, 0x2838, - 0xe540, 0x2896, - 0xe5a1, 0x28d5, - 0xe640, 0x2933, - 0xe6a1, 0x2972, - 0xe740, 0x29d0, - 0xe7a1, 0x2a0f, - 0xe840, 0x2a6d, - 0xe8a1, 0x2aac, - 0xe8a3, 0x2aaf, - 0xe940, 0x2b0b, - 0xe976, 0x2b42, - 0xe9a1, 0x2b4b, - 0xea40, 0x2ba9, - 0xeaa1, 0x2be8, - 0xeb40, 0x2c46, - 0xeb5b, 0x2c62, - 0xeba1, 0x2c86, - 0xebf1, 0x2aae, - 0xebf2, 0x2cd6, - 0xec40, 0x2ce3, - 0xeca1, 0x2d22, - 0xecde, 0x2b41, - 0xecdf, 0x2d5f, - 0xed40, 0x2d7f, - 0xeda1, 0x2dbe, - 0xedaa, 0x2dc8, - 0xee40, 0x2e1d, - 0xeea1, 0x2e5c, - 0xeeeb, 0x3014, - 0xeeec, 0x2ea6, - 0xef40, 0x2eb9, - 0xefa1, 0x2ef8, - 0xf040, 0x2f56, - 0xf056, 0x2dc7, - 0xf057, 0x2f6c, - 0xf0a1, 0x2f94, - 0xf0cb, 0x2c61, - 0xf0cc, 0x2fbe, - 0xf140, 0x2ff1, - 0xf163, 0x3015, - 0xf16b, 0x3160, - 0xf16c, 0x301d, - 0xf1a1, 0x3030, - 0xf240, 0x308e, - 0xf268, 0x31ef, - 0xf269, 0x30b6, - 0xf2a1, 0x30cc, - 0xf2c3, 0x30ef, - 0xf340, 0x312b, - 0xf375, 0x3161, - 0xf3a1, 0x316b, - 0xf440, 0x31c9, - 0xf466, 0x31f0, - 0xf4a1, 0x3209, - 0xf4b5, 0x30ee, - 0xf4b6, 0x321d, - 0xf4fd, 0x3265, - 0xf540, 0x3267, - 0xf5a1, 0x32a6, - 0xf640, 0x3304, - 0xf663, 0x3264, - 0xf664, 0x3327, - 0xf6a1, 0x3342, - 0xf740, 0x33a0, - 0xf7a1, 0x33df, - 0xf840, 0x343d, - 0xf8a1, 0x347c, - 0xf940, 0x34da, - 0xf977, 0x3512, - 0xf9a1, 0x351a, - 0xf9c4, 0x3511, - 0xf9c5, 0x353d, - 0xf9c6, 0x3549, - 0xf9c7, 0x353e, - 0xf9d2, 0x354a, - 0xfa40, 0x400b, - 0xfaa1, 0x404a, - 0xfb40, 0x40a8, - 0xfba1, 0x40e7, - 0xfbc0, 0x4105, - 0xfbce, 0x4112, - 0xfc40, 0x4143, - 0xfc4b, 0x414d, - 0xfc4f, 0x212f, - 0xfc50, 0x4151, - 0xfc53, 0x4153, - 0xfc64, 0x4163, - 0xfc76, 0x4174, - 0xfca1, 0x417d, - 0xfcb9, 0x115f, - 0xfcba, 0x4195, - 0xfcbd, 0x4197, - 0xfce4, 0x41bd, - 0xfcef, 0x41c7, - 0xfd40, 0x41d7, - 0xfd4a, 0x41e0, - 0xfda1, 0x4215, - 0xfdf3, 0x4266, - 0xfe40, 0x4272, - 0xfe6e, 0x429f, - 0xfe79, 0x42a9, - 0xfea1, 0x42af, - 0xfeaa, 0x0120, - 0xfeab, 0x42b8, - 0xfee0, 0x42eb, - 0xfeef, 0x42f8, - 0xa14b, 0x354e, - 0xa15a, 0x35af, - 0xa15c, 0x35b1, - 0xa15d, 0x0082, - 0xa161, 0x0086, - 0xa165, 0x008a, - 0xa169, 0x008e, - 0xa16d, 0x0092, - 0xa171, 0x0096, - 0xa175, 0x009a, - 0xa179, 0x009e, - 0xa1e3, 0x354f, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 cns13HKgccsB5VEnc16 = { - 1, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, - 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, - 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, - 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, - 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, - 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, - 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, - 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, - 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, - 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - cns13HKgccsB5VMap2, 565 -}; - -static Gushort cns13HKm314B5HMap2[1086] = { - 0x0000, 0x0000, - 0xa140, 0x0063, - 0xa159, 0x35af, - 0xa15d, 0x0080, - 0xa1a1, 0x00a2, - 0xa1f6, 0x00f8, - 0xa1f7, 0x00f7, - 0xa1f8, 0x00f9, - 0xa240, 0x0100, - 0xa2a1, 0x013f, - 0xa340, 0x019d, - 0xa3a1, 0x01dc, - 0xa3bd, 0x01f7, - 0xa440, 0x0253, - 0xa4a1, 0x0292, - 0xa540, 0x02f0, - 0xa5a1, 0x032f, - 0xa640, 0x038d, - 0xa6a1, 0x03cc, - 0xa740, 0x042a, - 0xa7a1, 0x0469, - 0xa840, 0x04c7, - 0xa8a1, 0x0506, - 0xa940, 0x0564, - 0xa9a1, 0x05a3, - 0xaa40, 0x0601, - 0xaaa1, 0x0640, - 0xab40, 0x069e, - 0xaba1, 0x06dd, - 0xac40, 0x073b, - 0xaca1, 0x077a, - 0xacfe, 0x097f, - 0xad40, 0x07d7, - 0xada1, 0x0816, - 0xae40, 0x0874, - 0xaea1, 0x08b3, - 0xaf40, 0x0911, - 0xafa1, 0x0950, - 0xafd0, 0x0980, - 0xb040, 0x09af, - 0xb0a1, 0x09ee, - 0xb140, 0x0a4c, - 0xb1a1, 0x0a8b, - 0xb240, 0x0ae9, - 0xb2a1, 0x0b28, - 0xb340, 0x0b86, - 0xb3a1, 0x0bc5, - 0xb440, 0x0c23, - 0xb4a1, 0x0c62, - 0xb540, 0x0cc0, - 0xb5a1, 0x0cff, - 0xb640, 0x0d5d, - 0xb6a1, 0x0d9c, - 0xb740, 0x0dfa, - 0xb7a1, 0x0e39, - 0xb840, 0x0e97, - 0xb8a1, 0x0ed6, - 0xb940, 0x0f34, - 0xb9a1, 0x0f73, - 0xba40, 0x0fd1, - 0xbaa1, 0x1010, - 0xbb40, 0x106e, - 0xbba1, 0x10ad, - 0xbbc8, 0x10d5, - 0xbc40, 0x110c, - 0xbca1, 0x114b, - 0xbd40, 0x11a9, - 0xbda1, 0x11e8, - 0xbe40, 0x1246, - 0xbe52, 0x10d4, - 0xbe53, 0x1258, - 0xbea1, 0x1284, - 0xbf40, 0x12e2, - 0xbfa1, 0x1321, - 0xc040, 0x137f, - 0xc0a1, 0x13be, - 0xc140, 0x141c, - 0xc1a1, 0x145b, - 0xc1ab, 0x1466, - 0xc240, 0x14ba, - 0xc2a1, 0x14f9, - 0xc2cb, 0x1465, - 0xc2cc, 0x1523, - 0xc340, 0x1556, - 0xc361, 0x1578, - 0xc3a1, 0x1596, - 0xc3b9, 0x15af, - 0xc3ba, 0x15ae, - 0xc3bb, 0x15b0, - 0xc440, 0x15f4, - 0xc456, 0x1577, - 0xc457, 0x160a, - 0xc4a1, 0x1632, - 0xc540, 0x1690, - 0xc5a1, 0x16cf, - 0xc640, 0x172d, - 0xc740, 0x3d6d, - 0xc741, 0x39c4, - 0xc742, 0x4399, - 0xc743, 0x3e05, - 0xc744, 0x36ea, - 0xc745, 0x39c8, - 0xc746, 0x393d, - 0xc747, 0x439b, - 0xc748, 0x4022, - 0xc749, 0x439d, - 0xc74a, 0x4034, - 0xc74b, 0x439f, - 0xc74c, 0x3ea3, - 0xc74d, 0x3ea6, - 0xc74e, 0x4051, - 0xc74f, 0x4048, - 0xc751, 0x404b, - 0xc752, 0x404f, - 0xc753, 0x43a2, - 0xc754, 0x405a, - 0xc755, 0x3ea4, - 0xc756, 0x3dbd, - 0xc757, 0x3dbf, - 0xc758, 0x405c, - 0xc759, 0x405f, - 0xc75a, 0x43a4, - 0xc75b, 0x407b, - 0xc75c, 0x4082, - 0xc75d, 0x3f6d, - 0xc75e, 0x408b, - 0xc75f, 0x43a6, - 0xc760, 0x4093, - 0xc761, 0x4096, - 0xc762, 0x43a7, - 0xc763, 0x4098, - 0xc764, 0x3e7f, - 0xc765, 0x3c77, - 0xc766, 0x3ea7, - 0xc767, 0x3e8a, - 0xc768, 0x3e98, - 0xc769, 0x3e8c, - 0xc76a, 0x40a1, - 0xc76b, 0x3a00, - 0xc76c, 0x39a3, - 0xc76d, 0x3e8d, - 0xc76e, 0x43a8, - 0xc76f, 0x3f58, - 0xc770, 0x3dbc, - 0xc771, 0x3ccc, - 0xc772, 0x3ea8, - 0xc774, 0x3b2e, - 0xc775, 0x3bc6, - 0xc776, 0x3e8b, - 0xc777, 0x3e9f, - 0xc778, 0x432c, - 0xc779, 0x43a9, - 0xc77a, 0x3f08, - 0xc77b, 0x3ea5, - 0xc77c, 0x3e89, - 0xc77d, 0x3dc3, - 0xc77e, 0x3e82, - 0xc7a1, 0x3e81, - 0xc7a2, 0x3e94, - 0xc7a3, 0x3e83, - 0xc7a4, 0x3e88, - 0xc7a5, 0x43ab, - 0xc7a6, 0x3e91, - 0xc7a7, 0x43ac, - 0xc7a8, 0x3e7c, - 0xc7a9, 0x3e80, - 0xc7aa, 0x3e8f, - 0xc7ab, 0x3e67, - 0xc7ac, 0x3e78, - 0xc7ad, 0x3e68, - 0xc7ae, 0x43ad, - 0xc7af, 0x37d2, - 0xc7b0, 0x3f4d, - 0xc7b1, 0x43ae, - 0xc7b2, 0x3e7e, - 0xc7b3, 0x40bc, - 0xc7b4, 0x3e63, - 0xc7b5, 0x40bd, - 0xc7b6, 0x43af, - 0xc7b7, 0x40b7, - 0xc7b8, 0x3eb7, - 0xc7b9, 0x3eed, - 0xc7ba, 0x3f6a, - 0xc7bb, 0x3e95, - 0xc7bc, 0x3948, - 0xc7bd, 0x3cc8, - 0xc7be, 0x43b1, - 0xc7c0, 0x40cc, - 0xc7c1, 0x3e86, - 0xc7c2, 0x3c7a, - 0xc7c3, 0x3c7d, - 0xc7c4, 0x43b4, - 0xc7c5, 0x40d1, - 0xc7c6, 0x3d72, - 0xc7c7, 0x3c26, - 0xc7c8, 0x36eb, - 0xc7c9, 0x40bf, - 0xc7ca, 0x4100, - 0xc7cb, 0x3c85, - 0xc7cc, 0x43b5, - 0xc7cd, 0x3a1d, - 0xc7ce, 0x37f5, - 0xc7cf, 0x36ee, - 0xc7d0, 0x3e5f, - 0xc7d1, 0x4116, - 0xc7d2, 0x411f, - 0xc7d3, 0x4118, - 0xc7d4, 0x4123, - 0xc7d5, 0x4127, - 0xc7d6, 0x4129, - 0xc7d7, 0x43bc, - 0xc7d9, 0x3e8e, - 0xc7da, 0x386f, - 0xc7db, 0x4143, - 0xc7dc, 0x4146, - 0xc7dd, 0x4144, - 0xc7de, 0x4149, - 0xc7df, 0x3ba5, - 0xc7e0, 0x4157, - 0xc7e1, 0x4161, - 0xc7e2, 0x36ec, - 0xc7e3, 0x416a, - 0xc7e4, 0x4002, - 0xc7e5, 0x4186, - 0xc7e6, 0x3fba, - 0xc7e7, 0x3f50, - 0xc7e8, 0x3e96, - 0xc7e9, 0x418a, - 0xc7ea, 0x3fc1, - 0xc7eb, 0x3d8f, - 0xc7ec, 0x43c1, - 0xc7ed, 0x3ea0, - 0xc7ee, 0x3f16, - 0xc7ef, 0x3e9d, - 0xc7f0, 0x4192, - 0xc7f1, 0x3a66, - 0xc7f2, 0x3e9c, - 0xc7f3, 0x3e90, - 0xc7f4, 0x419d, - 0xc7f5, 0x43c2, - 0xc7f7, 0x37a8, - 0xc7f8, 0x419e, - 0xc7f9, 0x4187, - 0xc7fa, 0x3ea2, - 0xc7fb, 0x3e87, - 0xc7fc, 0x3e84, - 0xc7fd, 0x3eae, - 0xc7fe, 0x3b74, - 0xc840, 0x3b75, - 0xc841, 0x3b72, - 0xc842, 0x3eb2, - 0xc843, 0x3eac, - 0xc844, 0x41ca, - 0xc845, 0x41f4, - 0xc846, 0x41d0, - 0xc847, 0x3aaa, - 0xc848, 0x41f5, - 0xc849, 0x41f8, - 0xc84a, 0x41fb, - 0xc84b, 0x4205, - 0xc84c, 0x3d8e, - 0xc84d, 0x420e, - 0xc84e, 0x3d63, - 0xc84f, 0x4222, - 0xc850, 0x4221, - 0xc851, 0x4223, - 0xc852, 0x4069, - 0xc853, 0x402f, - 0xc854, 0x38a5, - 0xc855, 0x3cf5, - 0xc856, 0x3d69, - 0xc857, 0x425b, - 0xc858, 0x3ac8, - 0xc859, 0x3dc0, - 0xc85a, 0x39ea, - 0xc85b, 0x4000, - 0xc85c, 0x4264, - 0xc85d, 0x4262, - 0xc85e, 0x3fff, - 0xc85f, 0x3e9a, - 0xc860, 0x4273, - 0xc861, 0x3969, - 0xc862, 0x427a, - 0xc863, 0x43ca, - 0xc864, 0x3f9a, - 0xc865, 0x3eb5, - 0xc866, 0x43cb, - 0xc868, 0x3fb2, - 0xc869, 0x428a, - 0xc86c, 0x3adf, - 0xc86d, 0x42c8, - 0xc86e, 0x3ead, - 0xc86f, 0x43ce, - 0xc870, 0x3f8f, - 0xc871, 0x43cf, - 0xc872, 0x3e72, - 0xc873, 0x3eaa, - 0xc874, 0x43d3, - 0xc875, 0x42e0, - 0xc876, 0x382d, - 0xc877, 0x3fd5, - 0xc878, 0x3b14, - 0xc879, 0x36e8, - 0xc87a, 0x42f0, - 0xc87b, 0x3e7d, - 0xc87c, 0x42fe, - 0xc87d, 0x4305, - 0xc87e, 0x373a, - 0xc8a1, 0x3746, - 0xc8a2, 0x3752, - 0xc8a3, 0x36ed, - 0xc8a4, 0x3b4a, - 0xc8a5, 0x3b45, - 0xc8a6, 0x43da, - 0xc8a7, 0x3ede, - 0xc8a8, 0x376c, - 0xc8a9, 0x376b, - 0xc8aa, 0x3782, - 0xc8ab, 0x3e69, - 0xc8ac, 0x3b4f, - 0xc8ad, 0x3786, - 0xc8ae, 0x43db, - 0xc8af, 0x3788, - 0xc8b0, 0x43dc, - 0xc8b1, 0x3ecd, - 0xc8b2, 0x3797, - 0xc8b3, 0x420d, - 0xc8b4, 0x37d8, - 0xc8b5, 0x3b71, - 0xc8b6, 0x38dc, - 0xc8b7, 0x37e0, - 0xc8b8, 0x37f4, - 0xc8b9, 0x3813, - 0xc8ba, 0x3eb0, - 0xc8bb, 0x380d, - 0xc8bc, 0x3eaf, - 0xc8bd, 0x381b, - 0xc8bf, 0x381e, - 0xc8c1, 0x3eb1, - 0xc8c2, 0x3fe9, - 0xc8c3, 0x43e4, - 0xc8c4, 0x3ff9, - 0xc8c5, 0x3e59, - 0xc8c6, 0x3e99, - 0xc8c7, 0x3e5e, - 0xc8c8, 0x3bb4, - 0xc8c9, 0x3eab, - 0xc8ca, 0x43e7, - 0xc8cc, 0x385e, - 0xc8cd, 0x43e9, - 0xc8ce, 0x3dbe, - 0xc8cf, 0x3e85, - 0xc8d0, 0x3863, - 0xc8d2, 0x3d6c, - 0xc8d3, 0x3871, - 0xc8d4, 0x387c, - 0xc8d5, 0x3882, - 0xc8d6, 0x3e9b, - 0xc8d7, 0x3888, - 0xc8d8, 0x3c0e, - 0xc8d9, 0x382e, - 0xc8da, 0x389a, - 0xc8db, 0x388b, - 0xc8dc, 0x3c04, - 0xc8dd, 0x36e9, - 0xc8de, 0x42bd, - 0xc8df, 0x3bcd, - 0xc8e0, 0x389f, - 0xc8e1, 0x379b, - 0xc8e2, 0x38af, - 0xc8e3, 0x3e97, - 0xc8e4, 0x38f0, - 0xc8e5, 0x3bfd, - 0xc8e6, 0x3c11, - 0xc8e8, 0x43ef, - 0xc8e9, 0x3785, - 0xc8ea, 0x3902, - 0xc8eb, 0x3faa, - 0xc8ec, 0x3f19, - 0xc8ed, 0x3919, - 0xc8ee, 0x43f1, - 0xc8ef, 0x391a, - 0xc8f1, 0x3e66, - 0xc8f2, 0x3f22, - 0xc8f3, 0x3d7e, - 0xc8f4, 0x3c39, - 0xc8f5, 0x3ea1, - 0xc8f6, 0x43f2, - 0xc8f8, 0x3f30, - 0xc8f9, 0x3929, - 0xc8fa, 0x3fbc, - 0xc8fb, 0x3936, - 0xc8fd, 0x3f90, - 0xc8fe, 0x0aba, - 0xc940, 0x176c, - 0xc94a, 0x0274, - 0xc94b, 0x1776, - 0xc96c, 0x1798, - 0xc9a1, 0x17ab, - 0xc9be, 0x1797, - 0xc9bf, 0x17c8, - 0xc9ed, 0x17f7, - 0xca40, 0x1809, - 0xcaa1, 0x1848, - 0xcaf7, 0x17f6, - 0xcaf8, 0x189e, - 0xcb40, 0x18a5, - 0xcba1, 0x18e4, - 0xcc40, 0x1942, - 0xcca1, 0x1981, - 0xcd40, 0x19df, - 0xcda1, 0x1a1e, - 0xce40, 0x1a7c, - 0xcea1, 0x1abb, - 0xcf40, 0x1b19, - 0xcfa1, 0x1b58, - 0xd040, 0x1bb6, - 0xd0a1, 0x1bf5, - 0xd140, 0x1c53, - 0xd1a1, 0x1c92, - 0xd240, 0x1cf0, - 0xd2a1, 0x1d2f, - 0xd340, 0x1d8d, - 0xd3a1, 0x1dcc, - 0xd440, 0x1e2a, - 0xd4a1, 0x1e69, - 0xd540, 0x1ec7, - 0xd5a1, 0x1f06, - 0xd640, 0x1f64, - 0xd6a1, 0x1fa3, - 0xd6cc, 0x2254, - 0xd6cd, 0x1fcf, - 0xd740, 0x2001, - 0xd77a, 0x22b9, - 0xd77b, 0x203b, - 0xd7a1, 0x203f, - 0xd840, 0x209d, - 0xd8a1, 0x20dc, - 0xd940, 0x213a, - 0xd9a1, 0x2179, - 0xda40, 0x21d7, - 0xdaa1, 0x2216, - 0xdadf, 0x1fce, - 0xdae0, 0x2255, - 0xdb40, 0x2274, - 0xdba1, 0x22b3, - 0xdba7, 0x22ba, - 0xdc40, 0x2312, - 0xdca1, 0x2351, - 0xdd40, 0x23af, - 0xdda1, 0x23ee, - 0xddfc, 0x2381, - 0xddfd, 0x2449, - 0xde40, 0x244b, - 0xdea1, 0x248a, - 0xdf40, 0x24e8, - 0xdfa1, 0x2527, - 0xe040, 0x2585, - 0xe0a1, 0x25c4, - 0xe140, 0x2622, - 0xe1a1, 0x2661, - 0xe240, 0x26bf, - 0xe2a1, 0x26fe, - 0xe340, 0x275c, - 0xe3a1, 0x279b, - 0xe440, 0x27f9, - 0xe4a1, 0x2838, - 0xe540, 0x2896, - 0xe5a1, 0x28d5, - 0xe640, 0x2933, - 0xe6a1, 0x2972, - 0xe740, 0x29d0, - 0xe7a1, 0x2a0f, - 0xe840, 0x2a6d, - 0xe8a1, 0x2aac, - 0xe8a3, 0x2aaf, - 0xe940, 0x2b0b, - 0xe976, 0x2b42, - 0xe9a1, 0x2b4b, - 0xea40, 0x2ba9, - 0xeaa1, 0x2be8, - 0xeb40, 0x2c46, - 0xeb5b, 0x2c62, - 0xeba1, 0x2c86, - 0xebf1, 0x2aae, - 0xebf2, 0x2cd6, - 0xec40, 0x2ce3, - 0xeca1, 0x2d22, - 0xecde, 0x2b41, - 0xecdf, 0x2d5f, - 0xed40, 0x2d7f, - 0xeda1, 0x2dbe, - 0xedaa, 0x2dc8, - 0xee40, 0x2e1d, - 0xeea1, 0x2e5c, - 0xeeeb, 0x3014, - 0xeeec, 0x2ea6, - 0xef40, 0x2eb9, - 0xefa1, 0x2ef8, - 0xf040, 0x2f56, - 0xf056, 0x2dc7, - 0xf057, 0x2f6c, - 0xf0a1, 0x2f94, - 0xf0cb, 0x2c61, - 0xf0cc, 0x2fbe, - 0xf140, 0x2ff1, - 0xf163, 0x3015, - 0xf16b, 0x3160, - 0xf16c, 0x301d, - 0xf1a1, 0x3030, - 0xf240, 0x308e, - 0xf268, 0x31ef, - 0xf269, 0x30b6, - 0xf2a1, 0x30cc, - 0xf2c3, 0x30ef, - 0xf340, 0x312b, - 0xf375, 0x3161, - 0xf3a1, 0x316b, - 0xf440, 0x31c9, - 0xf466, 0x31f0, - 0xf4a1, 0x3209, - 0xf4b5, 0x30ee, - 0xf4b6, 0x321d, - 0xf4fd, 0x3265, - 0xf540, 0x3267, - 0xf5a1, 0x32a6, - 0xf640, 0x3304, - 0xf663, 0x3264, - 0xf664, 0x3327, - 0xf6a1, 0x3342, - 0xf740, 0x33a0, - 0xf7a1, 0x33df, - 0xf840, 0x343d, - 0xf8a1, 0x347c, - 0xf940, 0x34da, - 0xf977, 0x3512, - 0xf9a1, 0x351a, - 0xf9c4, 0x3511, - 0xf9c5, 0x353d, - 0xf9c6, 0x3549, - 0xf9c7, 0x353e, - 0xf9d2, 0x354a, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 cns13HKm314B5HEnc16 = { - 0, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, - 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, - 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, - 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, - 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, - 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, - 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, - 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, - 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, - 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - cns13HKm314B5HMap2, 543 -}; - -static Gushort cns13HKm314B5VMap2[1110] = { - 0x0000, 0x0000, - 0xa140, 0x0063, - 0xa159, 0x35af, - 0xa15d, 0x0080, - 0xa1a1, 0x00a2, - 0xa1f6, 0x00f8, - 0xa1f7, 0x00f7, - 0xa1f8, 0x00f9, - 0xa240, 0x0100, - 0xa2a1, 0x013f, - 0xa340, 0x019d, - 0xa3a1, 0x01dc, - 0xa3bd, 0x01f7, - 0xa440, 0x0253, - 0xa4a1, 0x0292, - 0xa540, 0x02f0, - 0xa5a1, 0x032f, - 0xa640, 0x038d, - 0xa6a1, 0x03cc, - 0xa740, 0x042a, - 0xa7a1, 0x0469, - 0xa840, 0x04c7, - 0xa8a1, 0x0506, - 0xa940, 0x0564, - 0xa9a1, 0x05a3, - 0xaa40, 0x0601, - 0xaaa1, 0x0640, - 0xab40, 0x069e, - 0xaba1, 0x06dd, - 0xac40, 0x073b, - 0xaca1, 0x077a, - 0xacfe, 0x097f, - 0xad40, 0x07d7, - 0xada1, 0x0816, - 0xae40, 0x0874, - 0xaea1, 0x08b3, - 0xaf40, 0x0911, - 0xafa1, 0x0950, - 0xafd0, 0x0980, - 0xb040, 0x09af, - 0xb0a1, 0x09ee, - 0xb140, 0x0a4c, - 0xb1a1, 0x0a8b, - 0xb240, 0x0ae9, - 0xb2a1, 0x0b28, - 0xb340, 0x0b86, - 0xb3a1, 0x0bc5, - 0xb440, 0x0c23, - 0xb4a1, 0x0c62, - 0xb540, 0x0cc0, - 0xb5a1, 0x0cff, - 0xb640, 0x0d5d, - 0xb6a1, 0x0d9c, - 0xb740, 0x0dfa, - 0xb7a1, 0x0e39, - 0xb840, 0x0e97, - 0xb8a1, 0x0ed6, - 0xb940, 0x0f34, - 0xb9a1, 0x0f73, - 0xba40, 0x0fd1, - 0xbaa1, 0x1010, - 0xbb40, 0x106e, - 0xbba1, 0x10ad, - 0xbbc8, 0x10d5, - 0xbc40, 0x110c, - 0xbca1, 0x114b, - 0xbd40, 0x11a9, - 0xbda1, 0x11e8, - 0xbe40, 0x1246, - 0xbe52, 0x10d4, - 0xbe53, 0x1258, - 0xbea1, 0x1284, - 0xbf40, 0x12e2, - 0xbfa1, 0x1321, - 0xc040, 0x137f, - 0xc0a1, 0x13be, - 0xc140, 0x141c, - 0xc1a1, 0x145b, - 0xc1ab, 0x1466, - 0xc240, 0x14ba, - 0xc2a1, 0x14f9, - 0xc2cb, 0x1465, - 0xc2cc, 0x1523, - 0xc340, 0x1556, - 0xc361, 0x1578, - 0xc3a1, 0x1596, - 0xc3b9, 0x15af, - 0xc3ba, 0x15ae, - 0xc3bb, 0x15b0, - 0xc440, 0x15f4, - 0xc456, 0x1577, - 0xc457, 0x160a, - 0xc4a1, 0x1632, - 0xc540, 0x1690, - 0xc5a1, 0x16cf, - 0xc640, 0x172d, - 0xc740, 0x3d6d, - 0xc741, 0x39c4, - 0xc742, 0x4399, - 0xc743, 0x3e05, - 0xc744, 0x36ea, - 0xc745, 0x39c8, - 0xc746, 0x393d, - 0xc747, 0x439b, - 0xc748, 0x4022, - 0xc749, 0x439d, - 0xc74a, 0x4034, - 0xc74b, 0x439f, - 0xc74c, 0x3ea3, - 0xc74d, 0x3ea6, - 0xc74e, 0x4051, - 0xc74f, 0x4048, - 0xc751, 0x404b, - 0xc752, 0x404f, - 0xc753, 0x43a2, - 0xc754, 0x405a, - 0xc755, 0x3ea4, - 0xc756, 0x3dbd, - 0xc757, 0x3dbf, - 0xc758, 0x405c, - 0xc759, 0x405f, - 0xc75a, 0x43a4, - 0xc75b, 0x407b, - 0xc75c, 0x4082, - 0xc75d, 0x3f6d, - 0xc75e, 0x408b, - 0xc75f, 0x43a6, - 0xc760, 0x4093, - 0xc761, 0x4096, - 0xc762, 0x43a7, - 0xc763, 0x4098, - 0xc764, 0x3e7f, - 0xc765, 0x3c77, - 0xc766, 0x3ea7, - 0xc767, 0x3e8a, - 0xc768, 0x3e98, - 0xc769, 0x3e8c, - 0xc76a, 0x40a1, - 0xc76b, 0x3a00, - 0xc76c, 0x39a3, - 0xc76d, 0x3e8d, - 0xc76e, 0x43a8, - 0xc76f, 0x3f58, - 0xc770, 0x3dbc, - 0xc771, 0x3ccc, - 0xc772, 0x3ea8, - 0xc774, 0x3b2e, - 0xc775, 0x3bc6, - 0xc776, 0x3e8b, - 0xc777, 0x3e9f, - 0xc778, 0x432c, - 0xc779, 0x43a9, - 0xc77a, 0x3f08, - 0xc77b, 0x3ea5, - 0xc77c, 0x3e89, - 0xc77d, 0x3dc3, - 0xc77e, 0x3e82, - 0xc7a1, 0x3e81, - 0xc7a2, 0x3e94, - 0xc7a3, 0x3e83, - 0xc7a4, 0x3e88, - 0xc7a5, 0x43ab, - 0xc7a6, 0x3e91, - 0xc7a7, 0x43ac, - 0xc7a8, 0x3e7c, - 0xc7a9, 0x3e80, - 0xc7aa, 0x3e8f, - 0xc7ab, 0x3e67, - 0xc7ac, 0x3e78, - 0xc7ad, 0x3e68, - 0xc7ae, 0x43ad, - 0xc7af, 0x37d2, - 0xc7b0, 0x3f4d, - 0xc7b1, 0x43ae, - 0xc7b2, 0x3e7e, - 0xc7b3, 0x40bc, - 0xc7b4, 0x3e63, - 0xc7b5, 0x40bd, - 0xc7b6, 0x43af, - 0xc7b7, 0x40b7, - 0xc7b8, 0x3eb7, - 0xc7b9, 0x3eed, - 0xc7ba, 0x3f6a, - 0xc7bb, 0x3e95, - 0xc7bc, 0x3948, - 0xc7bd, 0x3cc8, - 0xc7be, 0x43b1, - 0xc7c0, 0x40cc, - 0xc7c1, 0x3e86, - 0xc7c2, 0x3c7a, - 0xc7c3, 0x3c7d, - 0xc7c4, 0x43b4, - 0xc7c5, 0x40d1, - 0xc7c6, 0x3d72, - 0xc7c7, 0x3c26, - 0xc7c8, 0x36eb, - 0xc7c9, 0x40bf, - 0xc7ca, 0x4100, - 0xc7cb, 0x3c85, - 0xc7cc, 0x43b5, - 0xc7cd, 0x3a1d, - 0xc7ce, 0x37f5, - 0xc7cf, 0x36ee, - 0xc7d0, 0x3e5f, - 0xc7d1, 0x4116, - 0xc7d2, 0x411f, - 0xc7d3, 0x4118, - 0xc7d4, 0x4123, - 0xc7d5, 0x4127, - 0xc7d6, 0x4129, - 0xc7d7, 0x43bc, - 0xc7d9, 0x3e8e, - 0xc7da, 0x386f, - 0xc7db, 0x4143, - 0xc7dc, 0x4146, - 0xc7dd, 0x4144, - 0xc7de, 0x4149, - 0xc7df, 0x3ba5, - 0xc7e0, 0x4157, - 0xc7e1, 0x4161, - 0xc7e2, 0x36ec, - 0xc7e3, 0x416a, - 0xc7e4, 0x4002, - 0xc7e5, 0x4186, - 0xc7e6, 0x3fba, - 0xc7e7, 0x3f50, - 0xc7e8, 0x3e96, - 0xc7e9, 0x418a, - 0xc7ea, 0x3fc1, - 0xc7eb, 0x3d8f, - 0xc7ec, 0x43c1, - 0xc7ed, 0x3ea0, - 0xc7ee, 0x3f16, - 0xc7ef, 0x3e9d, - 0xc7f0, 0x4192, - 0xc7f1, 0x3a66, - 0xc7f2, 0x3e9c, - 0xc7f3, 0x3e90, - 0xc7f4, 0x419d, - 0xc7f5, 0x43c2, - 0xc7f7, 0x37a8, - 0xc7f8, 0x419e, - 0xc7f9, 0x4187, - 0xc7fa, 0x3ea2, - 0xc7fb, 0x3e87, - 0xc7fc, 0x3e84, - 0xc7fd, 0x3eae, - 0xc7fe, 0x3b74, - 0xc840, 0x3b75, - 0xc841, 0x3b72, - 0xc842, 0x3eb2, - 0xc843, 0x3eac, - 0xc844, 0x41ca, - 0xc845, 0x41f4, - 0xc846, 0x41d0, - 0xc847, 0x3aaa, - 0xc848, 0x41f5, - 0xc849, 0x41f8, - 0xc84a, 0x41fb, - 0xc84b, 0x4205, - 0xc84c, 0x3d8e, - 0xc84d, 0x420e, - 0xc84e, 0x3d63, - 0xc84f, 0x4222, - 0xc850, 0x4221, - 0xc851, 0x4223, - 0xc852, 0x4069, - 0xc853, 0x402f, - 0xc854, 0x38a5, - 0xc855, 0x3cf5, - 0xc856, 0x3d69, - 0xc857, 0x425b, - 0xc858, 0x3ac8, - 0xc859, 0x3dc0, - 0xc85a, 0x39ea, - 0xc85b, 0x4000, - 0xc85c, 0x4264, - 0xc85d, 0x4262, - 0xc85e, 0x3fff, - 0xc85f, 0x3e9a, - 0xc860, 0x4273, - 0xc861, 0x3969, - 0xc862, 0x427a, - 0xc863, 0x43ca, - 0xc864, 0x3f9a, - 0xc865, 0x3eb5, - 0xc866, 0x43cb, - 0xc868, 0x3fb2, - 0xc869, 0x428a, - 0xc86c, 0x3adf, - 0xc86d, 0x42c8, - 0xc86e, 0x3ead, - 0xc86f, 0x43ce, - 0xc870, 0x3f8f, - 0xc871, 0x43cf, - 0xc872, 0x3e72, - 0xc873, 0x3eaa, - 0xc874, 0x43d3, - 0xc875, 0x42e0, - 0xc876, 0x382d, - 0xc877, 0x3fd5, - 0xc878, 0x3b14, - 0xc879, 0x36e8, - 0xc87a, 0x42f0, - 0xc87b, 0x3e7d, - 0xc87c, 0x42fe, - 0xc87d, 0x4305, - 0xc87e, 0x373a, - 0xc8a1, 0x3746, - 0xc8a2, 0x3752, - 0xc8a3, 0x36ed, - 0xc8a4, 0x3b4a, - 0xc8a5, 0x3b45, - 0xc8a6, 0x43da, - 0xc8a7, 0x3ede, - 0xc8a8, 0x376c, - 0xc8a9, 0x376b, - 0xc8aa, 0x3782, - 0xc8ab, 0x3e69, - 0xc8ac, 0x3b4f, - 0xc8ad, 0x3786, - 0xc8ae, 0x43db, - 0xc8af, 0x3788, - 0xc8b0, 0x43dc, - 0xc8b1, 0x3ecd, - 0xc8b2, 0x3797, - 0xc8b3, 0x420d, - 0xc8b4, 0x37d8, - 0xc8b5, 0x3b71, - 0xc8b6, 0x38dc, - 0xc8b7, 0x37e0, - 0xc8b8, 0x37f4, - 0xc8b9, 0x3813, - 0xc8ba, 0x3eb0, - 0xc8bb, 0x380d, - 0xc8bc, 0x3eaf, - 0xc8bd, 0x381b, - 0xc8bf, 0x381e, - 0xc8c1, 0x3eb1, - 0xc8c2, 0x3fe9, - 0xc8c3, 0x43e4, - 0xc8c4, 0x3ff9, - 0xc8c5, 0x3e59, - 0xc8c6, 0x3e99, - 0xc8c7, 0x3e5e, - 0xc8c8, 0x3bb4, - 0xc8c9, 0x3eab, - 0xc8ca, 0x43e7, - 0xc8cc, 0x385e, - 0xc8cd, 0x43e9, - 0xc8ce, 0x3dbe, - 0xc8cf, 0x3e85, - 0xc8d0, 0x3863, - 0xc8d2, 0x3d6c, - 0xc8d3, 0x3871, - 0xc8d4, 0x387c, - 0xc8d5, 0x3882, - 0xc8d6, 0x3e9b, - 0xc8d7, 0x3888, - 0xc8d8, 0x3c0e, - 0xc8d9, 0x382e, - 0xc8da, 0x389a, - 0xc8db, 0x388b, - 0xc8dc, 0x3c04, - 0xc8dd, 0x36e9, - 0xc8de, 0x42bd, - 0xc8df, 0x3bcd, - 0xc8e0, 0x389f, - 0xc8e1, 0x379b, - 0xc8e2, 0x38af, - 0xc8e3, 0x3e97, - 0xc8e4, 0x38f0, - 0xc8e5, 0x3bfd, - 0xc8e6, 0x3c11, - 0xc8e8, 0x43ef, - 0xc8e9, 0x3785, - 0xc8ea, 0x3902, - 0xc8eb, 0x3faa, - 0xc8ec, 0x3f19, - 0xc8ed, 0x3919, - 0xc8ee, 0x43f1, - 0xc8ef, 0x391a, - 0xc8f1, 0x3e66, - 0xc8f2, 0x3f22, - 0xc8f3, 0x3d7e, - 0xc8f4, 0x3c39, - 0xc8f5, 0x3ea1, - 0xc8f6, 0x43f2, - 0xc8f8, 0x3f30, - 0xc8f9, 0x3929, - 0xc8fa, 0x3fbc, - 0xc8fb, 0x3936, - 0xc8fd, 0x3f90, - 0xc8fe, 0x0aba, - 0xc940, 0x176c, - 0xc94a, 0x0274, - 0xc94b, 0x1776, - 0xc96c, 0x1798, - 0xc9a1, 0x17ab, - 0xc9be, 0x1797, - 0xc9bf, 0x17c8, - 0xc9ed, 0x17f7, - 0xca40, 0x1809, - 0xcaa1, 0x1848, - 0xcaf7, 0x17f6, - 0xcaf8, 0x189e, - 0xcb40, 0x18a5, - 0xcba1, 0x18e4, - 0xcc40, 0x1942, - 0xcca1, 0x1981, - 0xcd40, 0x19df, - 0xcda1, 0x1a1e, - 0xce40, 0x1a7c, - 0xcea1, 0x1abb, - 0xcf40, 0x1b19, - 0xcfa1, 0x1b58, - 0xd040, 0x1bb6, - 0xd0a1, 0x1bf5, - 0xd140, 0x1c53, - 0xd1a1, 0x1c92, - 0xd240, 0x1cf0, - 0xd2a1, 0x1d2f, - 0xd340, 0x1d8d, - 0xd3a1, 0x1dcc, - 0xd440, 0x1e2a, - 0xd4a1, 0x1e69, - 0xd540, 0x1ec7, - 0xd5a1, 0x1f06, - 0xd640, 0x1f64, - 0xd6a1, 0x1fa3, - 0xd6cc, 0x2254, - 0xd6cd, 0x1fcf, - 0xd740, 0x2001, - 0xd77a, 0x22b9, - 0xd77b, 0x203b, - 0xd7a1, 0x203f, - 0xd840, 0x209d, - 0xd8a1, 0x20dc, - 0xd940, 0x213a, - 0xd9a1, 0x2179, - 0xda40, 0x21d7, - 0xdaa1, 0x2216, - 0xdadf, 0x1fce, - 0xdae0, 0x2255, - 0xdb40, 0x2274, - 0xdba1, 0x22b3, - 0xdba7, 0x22ba, - 0xdc40, 0x2312, - 0xdca1, 0x2351, - 0xdd40, 0x23af, - 0xdda1, 0x23ee, - 0xddfc, 0x2381, - 0xddfd, 0x2449, - 0xde40, 0x244b, - 0xdea1, 0x248a, - 0xdf40, 0x24e8, - 0xdfa1, 0x2527, - 0xe040, 0x2585, - 0xe0a1, 0x25c4, - 0xe140, 0x2622, - 0xe1a1, 0x2661, - 0xe240, 0x26bf, - 0xe2a1, 0x26fe, - 0xe340, 0x275c, - 0xe3a1, 0x279b, - 0xe440, 0x27f9, - 0xe4a1, 0x2838, - 0xe540, 0x2896, - 0xe5a1, 0x28d5, - 0xe640, 0x2933, - 0xe6a1, 0x2972, - 0xe740, 0x29d0, - 0xe7a1, 0x2a0f, - 0xe840, 0x2a6d, - 0xe8a1, 0x2aac, - 0xe8a3, 0x2aaf, - 0xe940, 0x2b0b, - 0xe976, 0x2b42, - 0xe9a1, 0x2b4b, - 0xea40, 0x2ba9, - 0xeaa1, 0x2be8, - 0xeb40, 0x2c46, - 0xeb5b, 0x2c62, - 0xeba1, 0x2c86, - 0xebf1, 0x2aae, - 0xebf2, 0x2cd6, - 0xec40, 0x2ce3, - 0xeca1, 0x2d22, - 0xecde, 0x2b41, - 0xecdf, 0x2d5f, - 0xed40, 0x2d7f, - 0xeda1, 0x2dbe, - 0xedaa, 0x2dc8, - 0xee40, 0x2e1d, - 0xeea1, 0x2e5c, - 0xeeeb, 0x3014, - 0xeeec, 0x2ea6, - 0xef40, 0x2eb9, - 0xefa1, 0x2ef8, - 0xf040, 0x2f56, - 0xf056, 0x2dc7, - 0xf057, 0x2f6c, - 0xf0a1, 0x2f94, - 0xf0cb, 0x2c61, - 0xf0cc, 0x2fbe, - 0xf140, 0x2ff1, - 0xf163, 0x3015, - 0xf16b, 0x3160, - 0xf16c, 0x301d, - 0xf1a1, 0x3030, - 0xf240, 0x308e, - 0xf268, 0x31ef, - 0xf269, 0x30b6, - 0xf2a1, 0x30cc, - 0xf2c3, 0x30ef, - 0xf340, 0x312b, - 0xf375, 0x3161, - 0xf3a1, 0x316b, - 0xf440, 0x31c9, - 0xf466, 0x31f0, - 0xf4a1, 0x3209, - 0xf4b5, 0x30ee, - 0xf4b6, 0x321d, - 0xf4fd, 0x3265, - 0xf540, 0x3267, - 0xf5a1, 0x32a6, - 0xf640, 0x3304, - 0xf663, 0x3264, - 0xf664, 0x3327, - 0xf6a1, 0x3342, - 0xf740, 0x33a0, - 0xf7a1, 0x33df, - 0xf840, 0x343d, - 0xf8a1, 0x347c, - 0xf940, 0x34da, - 0xf977, 0x3512, - 0xf9a1, 0x351a, - 0xf9c4, 0x3511, - 0xf9c5, 0x353d, - 0xf9c6, 0x3549, - 0xf9c7, 0x353e, - 0xf9d2, 0x354a, - 0xa14b, 0x354e, - 0xa15a, 0x35af, - 0xa15c, 0x35b1, - 0xa15d, 0x0082, - 0xa161, 0x0086, - 0xa165, 0x008a, - 0xa169, 0x008e, - 0xa16d, 0x0092, - 0xa171, 0x0096, - 0xa175, 0x009a, - 0xa179, 0x009e, - 0xa1e3, 0x354f, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 cns13HKm314B5VEnc16 = { - 1, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, - 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, - 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, - 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, - 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, - 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, - 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, - 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, - 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, - 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - cns13HKm314B5VMap2, 555 -}; - -static Gushort cns13HKm471B5HMap2[1380] = { - 0x0000, 0x0000, - 0xa140, 0x0063, - 0xa159, 0x35af, - 0xa15d, 0x0080, - 0xa1a1, 0x00a2, - 0xa1f6, 0x00f8, - 0xa1f7, 0x00f7, - 0xa1f8, 0x00f9, - 0xa240, 0x0100, - 0xa2a1, 0x013f, - 0xa340, 0x019d, - 0xa3a1, 0x01dc, - 0xa3bd, 0x01f7, - 0xa440, 0x0253, - 0xa4a1, 0x0292, - 0xa540, 0x02f0, - 0xa5a1, 0x032f, - 0xa640, 0x038d, - 0xa6a1, 0x03cc, - 0xa740, 0x042a, - 0xa7a1, 0x0469, - 0xa840, 0x04c7, - 0xa8a1, 0x0506, - 0xa940, 0x0564, - 0xa9a1, 0x05a3, - 0xaa40, 0x0601, - 0xaaa1, 0x0640, - 0xab40, 0x069e, - 0xaba1, 0x06dd, - 0xac40, 0x073b, - 0xaca1, 0x077a, - 0xacfe, 0x097f, - 0xad40, 0x07d7, - 0xada1, 0x0816, - 0xae40, 0x0874, - 0xaea1, 0x08b3, - 0xaf40, 0x0911, - 0xafa1, 0x0950, - 0xafd0, 0x0980, - 0xb040, 0x09af, - 0xb0a1, 0x09ee, - 0xb140, 0x0a4c, - 0xb1a1, 0x0a8b, - 0xb240, 0x0ae9, - 0xb2a1, 0x0b28, - 0xb340, 0x0b86, - 0xb3a1, 0x0bc5, - 0xb440, 0x0c23, - 0xb4a1, 0x0c62, - 0xb540, 0x0cc0, - 0xb5a1, 0x0cff, - 0xb640, 0x0d5d, - 0xb6a1, 0x0d9c, - 0xb740, 0x0dfa, - 0xb7a1, 0x0e39, - 0xb840, 0x0e97, - 0xb8a1, 0x0ed6, - 0xb940, 0x0f34, - 0xb9a1, 0x0f73, - 0xba40, 0x0fd1, - 0xbaa1, 0x1010, - 0xbb40, 0x106e, - 0xbba1, 0x10ad, - 0xbbc8, 0x10d5, - 0xbc40, 0x110c, - 0xbca1, 0x114b, - 0xbd40, 0x11a9, - 0xbda1, 0x11e8, - 0xbe40, 0x1246, - 0xbe52, 0x10d4, - 0xbe53, 0x1258, - 0xbea1, 0x1284, - 0xbf40, 0x12e2, - 0xbfa1, 0x1321, - 0xc040, 0x137f, - 0xc0a1, 0x13be, - 0xc140, 0x141c, - 0xc1a1, 0x145b, - 0xc1ab, 0x1466, - 0xc240, 0x14ba, - 0xc2a1, 0x14f9, - 0xc2cb, 0x1465, - 0xc2cc, 0x1523, - 0xc340, 0x1556, - 0xc361, 0x1578, - 0xc3a1, 0x1596, - 0xc3b9, 0x15af, - 0xc3ba, 0x15ae, - 0xc3bb, 0x15b0, - 0xc440, 0x15f4, - 0xc456, 0x1577, - 0xc457, 0x160a, - 0xc4a1, 0x1632, - 0xc540, 0x1690, - 0xc5a1, 0x16cf, - 0xc640, 0x172d, - 0xc940, 0x176c, - 0xc94a, 0x0274, - 0xc94b, 0x1776, - 0xc96c, 0x1798, - 0xc9a1, 0x17ab, - 0xc9be, 0x1797, - 0xc9bf, 0x17c8, - 0xc9ed, 0x17f7, - 0xca40, 0x1809, - 0xcaa1, 0x1848, - 0xcaf7, 0x17f6, - 0xcaf8, 0x189e, - 0xcb40, 0x18a5, - 0xcba1, 0x18e4, - 0xcc40, 0x1942, - 0xcca1, 0x1981, - 0xcd40, 0x19df, - 0xcda1, 0x1a1e, - 0xce40, 0x1a7c, - 0xcea1, 0x1abb, - 0xcf40, 0x1b19, - 0xcfa1, 0x1b58, - 0xd040, 0x1bb6, - 0xd0a1, 0x1bf5, - 0xd140, 0x1c53, - 0xd1a1, 0x1c92, - 0xd240, 0x1cf0, - 0xd2a1, 0x1d2f, - 0xd340, 0x1d8d, - 0xd3a1, 0x1dcc, - 0xd440, 0x1e2a, - 0xd4a1, 0x1e69, - 0xd540, 0x1ec7, - 0xd5a1, 0x1f06, - 0xd640, 0x1f64, - 0xd6a1, 0x1fa3, - 0xd6cc, 0x2254, - 0xd6cd, 0x1fcf, - 0xd740, 0x2001, - 0xd77a, 0x22b9, - 0xd77b, 0x203b, - 0xd7a1, 0x203f, - 0xd840, 0x209d, - 0xd8a1, 0x20dc, - 0xd940, 0x213a, - 0xd9a1, 0x2179, - 0xda40, 0x21d7, - 0xdaa1, 0x2216, - 0xdadf, 0x1fce, - 0xdae0, 0x2255, - 0xdb40, 0x2274, - 0xdba1, 0x22b3, - 0xdba7, 0x22ba, - 0xdc40, 0x2312, - 0xdca1, 0x2351, - 0xdd40, 0x23af, - 0xdda1, 0x23ee, - 0xddfc, 0x2381, - 0xddfd, 0x2449, - 0xde40, 0x244b, - 0xdea1, 0x248a, - 0xdf40, 0x24e8, - 0xdfa1, 0x2527, - 0xe040, 0x2585, - 0xe0a1, 0x25c4, - 0xe140, 0x2622, - 0xe1a1, 0x2661, - 0xe240, 0x26bf, - 0xe2a1, 0x26fe, - 0xe340, 0x275c, - 0xe3a1, 0x279b, - 0xe440, 0x27f9, - 0xe4a1, 0x2838, - 0xe540, 0x2896, - 0xe5a1, 0x28d5, - 0xe640, 0x2933, - 0xe6a1, 0x2972, - 0xe740, 0x29d0, - 0xe7a1, 0x2a0f, - 0xe840, 0x2a6d, - 0xe8a1, 0x2aac, - 0xe8a3, 0x2aaf, - 0xe940, 0x2b0b, - 0xe976, 0x2b42, - 0xe9a1, 0x2b4b, - 0xea40, 0x2ba9, - 0xeaa1, 0x2be8, - 0xeb40, 0x2c46, - 0xeb5b, 0x2c62, - 0xeba1, 0x2c86, - 0xebf1, 0x2aae, - 0xebf2, 0x2cd6, - 0xec40, 0x2ce3, - 0xeca1, 0x2d22, - 0xecde, 0x2b41, - 0xecdf, 0x2d5f, - 0xed40, 0x2d7f, - 0xeda1, 0x2dbe, - 0xedaa, 0x2dc8, - 0xee40, 0x2e1d, - 0xeea1, 0x2e5c, - 0xeeeb, 0x3014, - 0xeeec, 0x2ea6, - 0xef40, 0x2eb9, - 0xefa1, 0x2ef8, - 0xf040, 0x2f56, - 0xf056, 0x2dc7, - 0xf057, 0x2f6c, - 0xf0a1, 0x2f94, - 0xf0cb, 0x2c61, - 0xf0cc, 0x2fbe, - 0xf140, 0x2ff1, - 0xf163, 0x3015, - 0xf16b, 0x3160, - 0xf16c, 0x301d, - 0xf1a1, 0x3030, - 0xf240, 0x308e, - 0xf268, 0x31ef, - 0xf269, 0x30b6, - 0xf2a1, 0x30cc, - 0xf2c3, 0x30ef, - 0xf340, 0x312b, - 0xf375, 0x3161, - 0xf3a1, 0x316b, - 0xf440, 0x31c9, - 0xf466, 0x31f0, - 0xf4a1, 0x3209, - 0xf4b5, 0x30ee, - 0xf4b6, 0x321d, - 0xf4fd, 0x3265, - 0xf540, 0x3267, - 0xf5a1, 0x32a6, - 0xf640, 0x3304, - 0xf663, 0x3264, - 0xf664, 0x3327, - 0xf6a1, 0x3342, - 0xf740, 0x33a0, - 0xf7a1, 0x33df, - 0xf840, 0x343d, - 0xf8a1, 0x347c, - 0xf940, 0x34da, - 0xf977, 0x3512, - 0xf9a1, 0x351a, - 0xf9c4, 0x3511, - 0xf9c5, 0x353d, - 0xf9c6, 0x3549, - 0xf9c7, 0x353e, - 0xf9d2, 0x354a, - 0xfa40, 0x3d6d, - 0xfa41, 0x39c4, - 0xfa42, 0x4399, - 0xfa43, 0x3f4f, - 0xfa44, 0x3e05, - 0xfa45, 0x439a, - 0xfa46, 0x3b8e, - 0xfa47, 0x36ea, - 0xfa48, 0x39c8, - 0xfa49, 0x393d, - 0xfa4a, 0x439b, - 0xfa4b, 0x4022, - 0xfa4c, 0x39cc, - 0xfa4e, 0x439c, - 0xfa4f, 0x39c5, - 0xfa50, 0x439d, - 0xfa51, 0x4034, - 0xfa52, 0x439e, - 0xfa54, 0x3ea3, - 0xfa55, 0x3ea6, - 0xfa56, 0x43a0, - 0xfa57, 0x4051, - 0xfa58, 0x4048, - 0xfa5a, 0x404b, - 0xfa5b, 0x404f, - 0xfa5c, 0x4054, - 0xfa5d, 0x4178, - 0xfa5e, 0x3f0a, - 0xfa5f, 0x43a1, - 0xfa61, 0x405a, - 0xfa62, 0x3ea4, - 0xfa63, 0x3dbd, - 0xfa64, 0x43a3, - 0xfa65, 0x3dbf, - 0xfa66, 0x405c, - 0xfa67, 0x405f, - 0xfa69, 0x4063, - 0xfa6a, 0x43a4, - 0xfa6b, 0x407a, - 0xfa6d, 0x407d, - 0xfa6e, 0x4082, - 0xfa6f, 0x3f6d, - 0xfa70, 0x43a5, - 0xfa71, 0x408b, - 0xfa72, 0x43a6, - 0xfa73, 0x3f39, - 0xfa74, 0x4093, - 0xfa75, 0x4096, - 0xfa76, 0x43a7, - 0xfa77, 0x4098, - 0xfa78, 0x3e7f, - 0xfa79, 0x3c77, - 0xfa7a, 0x3ea7, - 0xfa7b, 0x4203, - 0xfa7c, 0x3ed1, - 0xfa7d, 0x3e8a, - 0xfa7e, 0x3e98, - 0xfaa1, 0x3e8c, - 0xfaa2, 0x40a1, - 0xfaa3, 0x3d83, - 0xfaa4, 0x3a00, - 0xfaa5, 0x39a3, - 0xfaa6, 0x3e8d, - 0xfaa7, 0x43a8, - 0xfaa8, 0x3f58, - 0xfaa9, 0x3dbc, - 0xfaaa, 0x40a2, - 0xfaab, 0x3ccc, - 0xfaac, 0x3ea8, - 0xfaae, 0x3b2e, - 0xfaaf, 0x3bc6, - 0xfab0, 0x3e8b, - 0xfab1, 0x3e9f, - 0xfab2, 0x432c, - 0xfab3, 0x43a9, - 0xfab4, 0x3f08, - 0xfab5, 0x3ea5, - 0xfab6, 0x3e89, - 0xfab7, 0x3dc3, - 0xfab8, 0x3e82, - 0xfab9, 0x3e81, - 0xfaba, 0x3e94, - 0xfabb, 0x43aa, - 0xfabc, 0x3e83, - 0xfabd, 0x3e88, - 0xfabe, 0x43ab, - 0xfabf, 0x3e91, - 0xfac0, 0x43ac, - 0xfac1, 0x3e7c, - 0xfac2, 0x3e80, - 0xfac3, 0x3e8f, - 0xfac4, 0x4325, - 0xfac5, 0x3e67, - 0xfac6, 0x3e78, - 0xfac7, 0x3e68, - 0xfac8, 0x43ad, - 0xfac9, 0x37d2, - 0xfaca, 0x3f4d, - 0xfacb, 0x43ae, - 0xfacc, 0x3e7e, - 0xfacd, 0x40bc, - 0xface, 0x3e63, - 0xfacf, 0x40bd, - 0xfad0, 0x43af, - 0xfad1, 0x3f6c, - 0xfad2, 0x3ef9, - 0xfad3, 0x40b7, - 0xfad4, 0x3eb7, - 0xfad5, 0x3eed, - 0xfad6, 0x3f6a, - 0xfad7, 0x39a6, - 0xfad8, 0x43b0, - 0xfad9, 0x3e95, - 0xfada, 0x3948, - 0xfadb, 0x3cc8, - 0xfadc, 0x43b1, - 0xfadf, 0x40cc, - 0xfae0, 0x3e86, - 0xfae1, 0x40c8, - 0xfae2, 0x3c7a, - 0xfae3, 0x3c7d, - 0xfae4, 0x43b4, - 0xfae5, 0x40d1, - 0xfae6, 0x3d72, - 0xfae7, 0x40d4, - 0xfae8, 0x3c26, - 0xfae9, 0x36eb, - 0xfaea, 0x40da, - 0xfaeb, 0x40d9, - 0xfaec, 0x40bf, - 0xfaed, 0x3d81, - 0xfaee, 0x40f1, - 0xfaef, 0x4100, - 0xfaf0, 0x3c85, - 0xfaf1, 0x43b5, - 0xfaf2, 0x3a1d, - 0xfaf3, 0x37f5, - 0xfaf4, 0x36ee, - 0xfaf5, 0x3e5f, - 0xfaf6, 0x4116, - 0xfaf7, 0x42bb, - 0xfaf8, 0x411f, - 0xfaf9, 0x43b6, - 0xfafa, 0x4118, - 0xfafb, 0x43b7, - 0xfafd, 0x4123, - 0xfafe, 0x4122, - 0xfb40, 0x4127, - 0xfb41, 0x43b9, - 0xfb42, 0x4129, - 0xfb43, 0x43ba, - 0xfb44, 0x3dd5, - 0xfb45, 0x3eef, - 0xfb46, 0x3d8a, - 0xfb47, 0x43bb, - 0xfb48, 0x3a2b, - 0xfb49, 0x43bc, - 0xfb4a, 0x4138, - 0xfb4b, 0x43bd, - 0xfb4c, 0x3e8e, - 0xfb4d, 0x3a30, - 0xfb4e, 0x386f, - 0xfb4f, 0x4143, - 0xfb50, 0x4146, - 0xfb51, 0x4144, - 0xfb52, 0x4149, - 0xfb53, 0x3ba5, - 0xfb54, 0x4157, - 0xfb55, 0x43be, - 0xfb56, 0x4161, - 0xfb57, 0x36ec, - 0xfb58, 0x416a, - 0xfb59, 0x3d84, - 0xfb5a, 0x4002, - 0xfb5b, 0x4186, - 0xfb5c, 0x3fba, - 0xfb5d, 0x43bf, - 0xfb5e, 0x3fc5, - 0xfb5f, 0x3f50, - 0xfb60, 0x3e96, - 0xfb61, 0x43c0, - 0xfb62, 0x418a, - 0xfb63, 0x3fc1, - 0xfb64, 0x3d8f, - 0xfb65, 0x43c1, - 0xfb66, 0x3ea0, - 0xfb67, 0x3f16, - 0xfb68, 0x3e9d, - 0xfb69, 0x418e, - 0xfb6a, 0x4192, - 0xfb6b, 0x3a66, - 0xfb6c, 0x3e9c, - 0xfb6d, 0x438f, - 0xfb6e, 0x3e90, - 0xfb6f, 0x419d, - 0xfb70, 0x43c2, - 0xfb72, 0x4356, - 0xfb73, 0x37a8, - 0xfb74, 0x419e, - 0xfb75, 0x4199, - 0xfb76, 0x4187, - 0xfb77, 0x3ea2, - 0xfb78, 0x419f, - 0xfb79, 0x3e87, - 0xfb7a, 0x3e84, - 0xfb7b, 0x3eae, - 0xfb7c, 0x3b74, - 0xfb7e, 0x37a2, - 0xfba1, 0x3b72, - 0xfba2, 0x3e79, - 0xfba3, 0x3e6d, - 0xfba4, 0x43c4, - 0xfba6, 0x3eb2, - 0xfba7, 0x43c6, - 0xfba8, 0x3eac, - 0xfba9, 0x41ca, - 0xfbaa, 0x41f4, - 0xfbab, 0x43c7, - 0xfbac, 0x41d0, - 0xfbad, 0x3aaa, - 0xfbae, 0x41de, - 0xfbaf, 0x41db, - 0xfbb0, 0x41e8, - 0xfbb1, 0x43c8, - 0xfbb2, 0x3ff6, - 0xfbb3, 0x41d9, - 0xfbb4, 0x3d42, - 0xfbb5, 0x41f5, - 0xfbb6, 0x41f8, - 0xfbb7, 0x41fb, - 0xfbb8, 0x4205, - 0xfbb9, 0x3d8e, - 0xfbba, 0x420e, - 0xfbbb, 0x3d63, - 0xfbbc, 0x4222, - 0xfbbd, 0x4221, - 0xfbbe, 0x4223, - 0xfbbf, 0x4069, - 0xfbc0, 0x402f, - 0xfbc1, 0x4242, - 0xfbc2, 0x38a5, - 0xfbc3, 0x4246, - 0xfbc4, 0x3cf5, - 0xfbc5, 0x3d69, - 0xfbc6, 0x3cfe, - 0xfbc7, 0x425b, - 0xfbc8, 0x3ac8, - 0xfbc9, 0x3dc0, - 0xfbca, 0x39ea, - 0xfbcb, 0x4000, - 0xfbcc, 0x4264, - 0xfbcd, 0x4262, - 0xfbce, 0x3fff, - 0xfbcf, 0x3e9a, - 0xfbd0, 0x4273, - 0xfbd1, 0x3969, - 0xfbd2, 0x427a, - 0xfbd3, 0x4283, - 0xfbd4, 0x43c9, - 0xfbd6, 0x3f9a, - 0xfbd7, 0x3eb5, - 0xfbd8, 0x43cb, - 0xfbda, 0x3fb2, - 0xfbdb, 0x428a, - 0xfbdd, 0x3b17, - 0xfbde, 0x428c, - 0xfbdf, 0x4290, - 0xfbe0, 0x3adf, - 0xfbe1, 0x43cd, - 0xfbe2, 0x42c5, - 0xfbe3, 0x42c8, - 0xfbe4, 0x3ead, - 0xfbe5, 0x43ce, - 0xfbe6, 0x3f8f, - 0xfbe7, 0x43cf, - 0xfbe8, 0x3e72, - 0xfbe9, 0x3e70, - 0xfbea, 0x43d0, - 0xfbeb, 0x3eaa, - 0xfbec, 0x43d1, - 0xfbed, 0x3fa9, - 0xfbee, 0x43d2, - 0xfbf1, 0x42d8, - 0xfbf2, 0x3ff3, - 0xfbf3, 0x42e0, - 0xfbf4, 0x3b00, - 0xfbf5, 0x4317, - 0xfbf6, 0x382d, - 0xfbf7, 0x3e73, - 0xfbf8, 0x3fd5, - 0xfbf9, 0x43d5, - 0xfbfb, 0x3b14, - 0xfbfc, 0x36e8, - 0xfbfd, 0x42f4, - 0xfbfe, 0x3b0e, - 0xfc40, 0x42ec, - 0xfc41, 0x42f0, - 0xfc42, 0x3e7d, - 0xfc43, 0x43d7, - 0xfc44, 0x42fe, - 0xfc45, 0x4305, - 0xfc46, 0x3fda, - 0xfc47, 0x3df1, - 0xfc48, 0x3733, - 0xfc49, 0x3d7d, - 0xfc4a, 0x43d8, - 0xfc4b, 0x373a, - 0xfc4c, 0x3740, - 0xfc4d, 0x3742, - 0xfc4e, 0x3746, - 0xfc4f, 0x3752, - 0xfc50, 0x3f1f, - 0xfc51, 0x43d9, - 0xfc52, 0x36ed, - 0xfc53, 0x3b4a, - 0xfc54, 0x375e, - 0xfc55, 0x3b45, - 0xfc56, 0x43da, - 0xfc57, 0x3ede, - 0xfc58, 0x3769, - 0xfc59, 0x376c, - 0xfc5a, 0x376b, - 0xfc5b, 0x376e, - 0xfc5c, 0x377f, - 0xfc5d, 0x377b, - 0xfc5e, 0x3782, - 0xfc5f, 0x3e69, - 0xfc60, 0x3b4f, - 0xfc61, 0x3786, - 0xfc62, 0x43db, - 0xfc63, 0x3788, - 0xfc64, 0x43dc, - 0xfc65, 0x3ecd, - 0xfc66, 0x3797, - 0xfc67, 0x420d, - 0xfc68, 0x43dd, - 0xfc69, 0x37bc, - 0xfc6a, 0x43de, - 0xfc6b, 0x37d8, - 0xfc6c, 0x3b71, - 0xfc6d, 0x3e7a, - 0xfc6e, 0x43df, - 0xfc6f, 0x38dc, - 0xfc70, 0x37e0, - 0xfc71, 0x37ee, - 0xfc72, 0x37f4, - 0xfc73, 0x3813, - 0xfc74, 0x43e0, - 0xfc76, 0x3eb0, - 0xfc77, 0x43e2, - 0xfc78, 0x3fed, - 0xfc79, 0x380d, - 0xfc7a, 0x3eaf, - 0xfc7b, 0x3f92, - 0xfc7c, 0x3816, - 0xfc7d, 0x381b, - 0xfc7e, 0x3fa2, - 0xfca1, 0x381c, - 0xfca2, 0x381e, - 0xfca4, 0x3eb1, - 0xfca5, 0x134a, - 0xfca6, 0x43e3, - 0xfca7, 0x3fe9, - 0xfca8, 0x43e4, - 0xfca9, 0x3ff9, - 0xfcaa, 0x3d93, - 0xfcab, 0x43e5, - 0xfcac, 0x3e59, - 0xfcad, 0x43e6, - 0xfcae, 0x3837, - 0xfcaf, 0x3f99, - 0xfcb0, 0x3e99, - 0xfcb1, 0x3e5e, - 0xfcb2, 0x3bb4, - 0xfcb3, 0x3eab, - 0xfcb4, 0x43e7, - 0xfcb6, 0x385e, - 0xfcb7, 0x43e9, - 0xfcb8, 0x3dbe, - 0xfcb9, 0x3e85, - 0xfcba, 0x3863, - 0xfcbc, 0x3d6c, - 0xfcbd, 0x3871, - 0xfcbe, 0x3ee0, - 0xfcbf, 0x43ea, - 0xfcc0, 0x387c, - 0xfcc1, 0x43eb, - 0xfcc2, 0x3eb8, - 0xfcc3, 0x3882, - 0xfcc4, 0x3e9b, - 0xfcc5, 0x43ec, - 0xfcc6, 0x3888, - 0xfcc7, 0x3c0e, - 0xfcc8, 0x382e, - 0xfcc9, 0x389a, - 0xfcca, 0x388b, - 0xfccb, 0x3c04, - 0xfccc, 0x36e9, - 0xfccd, 0x42bd, - 0xfcce, 0x3bcd, - 0xfccf, 0x389f, - 0xfcd0, 0x3dde, - 0xfcd1, 0x379b, - 0xfcd2, 0x3bd3, - 0xfcd3, 0x38af, - 0xfcd4, 0x3e97, - 0xfcd5, 0x38d6, - 0xfcd6, 0x3f35, - 0xfcd7, 0x38e0, - 0xfcd8, 0x4035, - 0xfcd9, 0x38f0, - 0xfcda, 0x43ed, - 0xfcdc, 0x3bfd, - 0xfcdd, 0x3c11, - 0xfcdf, 0x43ef, - 0xfce0, 0x3785, - 0xfce1, 0x3902, - 0xfce2, 0x3ddc, - 0xfce3, 0x43f0, - 0xfce4, 0x3faa, - 0xfce5, 0x390b, - 0xfce6, 0x3f19, - 0xfce7, 0x390e, - 0xfce8, 0x3919, - 0xfce9, 0x43f1, - 0xfcea, 0x3c3c, - 0xfceb, 0x391a, - 0xfcec, 0x3c3a, - 0xfced, 0x391b, - 0xfcee, 0x3e66, - 0xfcef, 0x3f22, - 0xfcf0, 0x3d7e, - 0xfcf1, 0x3e71, - 0xfcf2, 0x3c39, - 0xfcf3, 0x3ea1, - 0xfcf4, 0x43f2, - 0xfcf6, 0x3f30, - 0xfcf7, 0x3929, - 0xfcf8, 0x3fbc, - 0xfcf9, 0x3936, - 0xfcfa, 0x43f4, - 0xfcfb, 0x3937, - 0xfcfc, 0x3f90, - 0xfcfd, 0x43f5, - 0xfcfe, 0x0aba, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 cns13HKm471B5HEnc16 = { - 0, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, - 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, - 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, - 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, - 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, - 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, - 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, - 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, - 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, - 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - cns13HKm471B5HMap2, 690 -}; - -static Gushort cns13HKm471B5VMap2[1404] = { - 0x0000, 0x0000, - 0xa140, 0x0063, - 0xa159, 0x35af, - 0xa15d, 0x0080, - 0xa1a1, 0x00a2, - 0xa1f6, 0x00f8, - 0xa1f7, 0x00f7, - 0xa1f8, 0x00f9, - 0xa240, 0x0100, - 0xa2a1, 0x013f, - 0xa340, 0x019d, - 0xa3a1, 0x01dc, - 0xa3bd, 0x01f7, - 0xa440, 0x0253, - 0xa4a1, 0x0292, - 0xa540, 0x02f0, - 0xa5a1, 0x032f, - 0xa640, 0x038d, - 0xa6a1, 0x03cc, - 0xa740, 0x042a, - 0xa7a1, 0x0469, - 0xa840, 0x04c7, - 0xa8a1, 0x0506, - 0xa940, 0x0564, - 0xa9a1, 0x05a3, - 0xaa40, 0x0601, - 0xaaa1, 0x0640, - 0xab40, 0x069e, - 0xaba1, 0x06dd, - 0xac40, 0x073b, - 0xaca1, 0x077a, - 0xacfe, 0x097f, - 0xad40, 0x07d7, - 0xada1, 0x0816, - 0xae40, 0x0874, - 0xaea1, 0x08b3, - 0xaf40, 0x0911, - 0xafa1, 0x0950, - 0xafd0, 0x0980, - 0xb040, 0x09af, - 0xb0a1, 0x09ee, - 0xb140, 0x0a4c, - 0xb1a1, 0x0a8b, - 0xb240, 0x0ae9, - 0xb2a1, 0x0b28, - 0xb340, 0x0b86, - 0xb3a1, 0x0bc5, - 0xb440, 0x0c23, - 0xb4a1, 0x0c62, - 0xb540, 0x0cc0, - 0xb5a1, 0x0cff, - 0xb640, 0x0d5d, - 0xb6a1, 0x0d9c, - 0xb740, 0x0dfa, - 0xb7a1, 0x0e39, - 0xb840, 0x0e97, - 0xb8a1, 0x0ed6, - 0xb940, 0x0f34, - 0xb9a1, 0x0f73, - 0xba40, 0x0fd1, - 0xbaa1, 0x1010, - 0xbb40, 0x106e, - 0xbba1, 0x10ad, - 0xbbc8, 0x10d5, - 0xbc40, 0x110c, - 0xbca1, 0x114b, - 0xbd40, 0x11a9, - 0xbda1, 0x11e8, - 0xbe40, 0x1246, - 0xbe52, 0x10d4, - 0xbe53, 0x1258, - 0xbea1, 0x1284, - 0xbf40, 0x12e2, - 0xbfa1, 0x1321, - 0xc040, 0x137f, - 0xc0a1, 0x13be, - 0xc140, 0x141c, - 0xc1a1, 0x145b, - 0xc1ab, 0x1466, - 0xc240, 0x14ba, - 0xc2a1, 0x14f9, - 0xc2cb, 0x1465, - 0xc2cc, 0x1523, - 0xc340, 0x1556, - 0xc361, 0x1578, - 0xc3a1, 0x1596, - 0xc3b9, 0x15af, - 0xc3ba, 0x15ae, - 0xc3bb, 0x15b0, - 0xc440, 0x15f4, - 0xc456, 0x1577, - 0xc457, 0x160a, - 0xc4a1, 0x1632, - 0xc540, 0x1690, - 0xc5a1, 0x16cf, - 0xc640, 0x172d, - 0xc940, 0x176c, - 0xc94a, 0x0274, - 0xc94b, 0x1776, - 0xc96c, 0x1798, - 0xc9a1, 0x17ab, - 0xc9be, 0x1797, - 0xc9bf, 0x17c8, - 0xc9ed, 0x17f7, - 0xca40, 0x1809, - 0xcaa1, 0x1848, - 0xcaf7, 0x17f6, - 0xcaf8, 0x189e, - 0xcb40, 0x18a5, - 0xcba1, 0x18e4, - 0xcc40, 0x1942, - 0xcca1, 0x1981, - 0xcd40, 0x19df, - 0xcda1, 0x1a1e, - 0xce40, 0x1a7c, - 0xcea1, 0x1abb, - 0xcf40, 0x1b19, - 0xcfa1, 0x1b58, - 0xd040, 0x1bb6, - 0xd0a1, 0x1bf5, - 0xd140, 0x1c53, - 0xd1a1, 0x1c92, - 0xd240, 0x1cf0, - 0xd2a1, 0x1d2f, - 0xd340, 0x1d8d, - 0xd3a1, 0x1dcc, - 0xd440, 0x1e2a, - 0xd4a1, 0x1e69, - 0xd540, 0x1ec7, - 0xd5a1, 0x1f06, - 0xd640, 0x1f64, - 0xd6a1, 0x1fa3, - 0xd6cc, 0x2254, - 0xd6cd, 0x1fcf, - 0xd740, 0x2001, - 0xd77a, 0x22b9, - 0xd77b, 0x203b, - 0xd7a1, 0x203f, - 0xd840, 0x209d, - 0xd8a1, 0x20dc, - 0xd940, 0x213a, - 0xd9a1, 0x2179, - 0xda40, 0x21d7, - 0xdaa1, 0x2216, - 0xdadf, 0x1fce, - 0xdae0, 0x2255, - 0xdb40, 0x2274, - 0xdba1, 0x22b3, - 0xdba7, 0x22ba, - 0xdc40, 0x2312, - 0xdca1, 0x2351, - 0xdd40, 0x23af, - 0xdda1, 0x23ee, - 0xddfc, 0x2381, - 0xddfd, 0x2449, - 0xde40, 0x244b, - 0xdea1, 0x248a, - 0xdf40, 0x24e8, - 0xdfa1, 0x2527, - 0xe040, 0x2585, - 0xe0a1, 0x25c4, - 0xe140, 0x2622, - 0xe1a1, 0x2661, - 0xe240, 0x26bf, - 0xe2a1, 0x26fe, - 0xe340, 0x275c, - 0xe3a1, 0x279b, - 0xe440, 0x27f9, - 0xe4a1, 0x2838, - 0xe540, 0x2896, - 0xe5a1, 0x28d5, - 0xe640, 0x2933, - 0xe6a1, 0x2972, - 0xe740, 0x29d0, - 0xe7a1, 0x2a0f, - 0xe840, 0x2a6d, - 0xe8a1, 0x2aac, - 0xe8a3, 0x2aaf, - 0xe940, 0x2b0b, - 0xe976, 0x2b42, - 0xe9a1, 0x2b4b, - 0xea40, 0x2ba9, - 0xeaa1, 0x2be8, - 0xeb40, 0x2c46, - 0xeb5b, 0x2c62, - 0xeba1, 0x2c86, - 0xebf1, 0x2aae, - 0xebf2, 0x2cd6, - 0xec40, 0x2ce3, - 0xeca1, 0x2d22, - 0xecde, 0x2b41, - 0xecdf, 0x2d5f, - 0xed40, 0x2d7f, - 0xeda1, 0x2dbe, - 0xedaa, 0x2dc8, - 0xee40, 0x2e1d, - 0xeea1, 0x2e5c, - 0xeeeb, 0x3014, - 0xeeec, 0x2ea6, - 0xef40, 0x2eb9, - 0xefa1, 0x2ef8, - 0xf040, 0x2f56, - 0xf056, 0x2dc7, - 0xf057, 0x2f6c, - 0xf0a1, 0x2f94, - 0xf0cb, 0x2c61, - 0xf0cc, 0x2fbe, - 0xf140, 0x2ff1, - 0xf163, 0x3015, - 0xf16b, 0x3160, - 0xf16c, 0x301d, - 0xf1a1, 0x3030, - 0xf240, 0x308e, - 0xf268, 0x31ef, - 0xf269, 0x30b6, - 0xf2a1, 0x30cc, - 0xf2c3, 0x30ef, - 0xf340, 0x312b, - 0xf375, 0x3161, - 0xf3a1, 0x316b, - 0xf440, 0x31c9, - 0xf466, 0x31f0, - 0xf4a1, 0x3209, - 0xf4b5, 0x30ee, - 0xf4b6, 0x321d, - 0xf4fd, 0x3265, - 0xf540, 0x3267, - 0xf5a1, 0x32a6, - 0xf640, 0x3304, - 0xf663, 0x3264, - 0xf664, 0x3327, - 0xf6a1, 0x3342, - 0xf740, 0x33a0, - 0xf7a1, 0x33df, - 0xf840, 0x343d, - 0xf8a1, 0x347c, - 0xf940, 0x34da, - 0xf977, 0x3512, - 0xf9a1, 0x351a, - 0xf9c4, 0x3511, - 0xf9c5, 0x353d, - 0xf9c6, 0x3549, - 0xf9c7, 0x353e, - 0xf9d2, 0x354a, - 0xfa40, 0x3d6d, - 0xfa41, 0x39c4, - 0xfa42, 0x4399, - 0xfa43, 0x3f4f, - 0xfa44, 0x3e05, - 0xfa45, 0x439a, - 0xfa46, 0x3b8e, - 0xfa47, 0x36ea, - 0xfa48, 0x39c8, - 0xfa49, 0x393d, - 0xfa4a, 0x439b, - 0xfa4b, 0x4022, - 0xfa4c, 0x39cc, - 0xfa4e, 0x439c, - 0xfa4f, 0x39c5, - 0xfa50, 0x439d, - 0xfa51, 0x4034, - 0xfa52, 0x439e, - 0xfa54, 0x3ea3, - 0xfa55, 0x3ea6, - 0xfa56, 0x43a0, - 0xfa57, 0x4051, - 0xfa58, 0x4048, - 0xfa5a, 0x404b, - 0xfa5b, 0x404f, - 0xfa5c, 0x4054, - 0xfa5d, 0x4178, - 0xfa5e, 0x3f0a, - 0xfa5f, 0x43a1, - 0xfa61, 0x405a, - 0xfa62, 0x3ea4, - 0xfa63, 0x3dbd, - 0xfa64, 0x43a3, - 0xfa65, 0x3dbf, - 0xfa66, 0x405c, - 0xfa67, 0x405f, - 0xfa69, 0x4063, - 0xfa6a, 0x43a4, - 0xfa6b, 0x407a, - 0xfa6d, 0x407d, - 0xfa6e, 0x4082, - 0xfa6f, 0x3f6d, - 0xfa70, 0x43a5, - 0xfa71, 0x408b, - 0xfa72, 0x43a6, - 0xfa73, 0x3f39, - 0xfa74, 0x4093, - 0xfa75, 0x4096, - 0xfa76, 0x43a7, - 0xfa77, 0x4098, - 0xfa78, 0x3e7f, - 0xfa79, 0x3c77, - 0xfa7a, 0x3ea7, - 0xfa7b, 0x4203, - 0xfa7c, 0x3ed1, - 0xfa7d, 0x3e8a, - 0xfa7e, 0x3e98, - 0xfaa1, 0x3e8c, - 0xfaa2, 0x40a1, - 0xfaa3, 0x3d83, - 0xfaa4, 0x3a00, - 0xfaa5, 0x39a3, - 0xfaa6, 0x3e8d, - 0xfaa7, 0x43a8, - 0xfaa8, 0x3f58, - 0xfaa9, 0x3dbc, - 0xfaaa, 0x40a2, - 0xfaab, 0x3ccc, - 0xfaac, 0x3ea8, - 0xfaae, 0x3b2e, - 0xfaaf, 0x3bc6, - 0xfab0, 0x3e8b, - 0xfab1, 0x3e9f, - 0xfab2, 0x432c, - 0xfab3, 0x43a9, - 0xfab4, 0x3f08, - 0xfab5, 0x3ea5, - 0xfab6, 0x3e89, - 0xfab7, 0x3dc3, - 0xfab8, 0x3e82, - 0xfab9, 0x3e81, - 0xfaba, 0x3e94, - 0xfabb, 0x43aa, - 0xfabc, 0x3e83, - 0xfabd, 0x3e88, - 0xfabe, 0x43ab, - 0xfabf, 0x3e91, - 0xfac0, 0x43ac, - 0xfac1, 0x3e7c, - 0xfac2, 0x3e80, - 0xfac3, 0x3e8f, - 0xfac4, 0x4325, - 0xfac5, 0x3e67, - 0xfac6, 0x3e78, - 0xfac7, 0x3e68, - 0xfac8, 0x43ad, - 0xfac9, 0x37d2, - 0xfaca, 0x3f4d, - 0xfacb, 0x43ae, - 0xfacc, 0x3e7e, - 0xfacd, 0x40bc, - 0xface, 0x3e63, - 0xfacf, 0x40bd, - 0xfad0, 0x43af, - 0xfad1, 0x3f6c, - 0xfad2, 0x3ef9, - 0xfad3, 0x40b7, - 0xfad4, 0x3eb7, - 0xfad5, 0x3eed, - 0xfad6, 0x3f6a, - 0xfad7, 0x39a6, - 0xfad8, 0x43b0, - 0xfad9, 0x3e95, - 0xfada, 0x3948, - 0xfadb, 0x3cc8, - 0xfadc, 0x43b1, - 0xfadf, 0x40cc, - 0xfae0, 0x3e86, - 0xfae1, 0x40c8, - 0xfae2, 0x3c7a, - 0xfae3, 0x3c7d, - 0xfae4, 0x43b4, - 0xfae5, 0x40d1, - 0xfae6, 0x3d72, - 0xfae7, 0x40d4, - 0xfae8, 0x3c26, - 0xfae9, 0x36eb, - 0xfaea, 0x40da, - 0xfaeb, 0x40d9, - 0xfaec, 0x40bf, - 0xfaed, 0x3d81, - 0xfaee, 0x40f1, - 0xfaef, 0x4100, - 0xfaf0, 0x3c85, - 0xfaf1, 0x43b5, - 0xfaf2, 0x3a1d, - 0xfaf3, 0x37f5, - 0xfaf4, 0x36ee, - 0xfaf5, 0x3e5f, - 0xfaf6, 0x4116, - 0xfaf7, 0x42bb, - 0xfaf8, 0x411f, - 0xfaf9, 0x43b6, - 0xfafa, 0x4118, - 0xfafb, 0x43b7, - 0xfafd, 0x4123, - 0xfafe, 0x4122, - 0xfb40, 0x4127, - 0xfb41, 0x43b9, - 0xfb42, 0x4129, - 0xfb43, 0x43ba, - 0xfb44, 0x3dd5, - 0xfb45, 0x3eef, - 0xfb46, 0x3d8a, - 0xfb47, 0x43bb, - 0xfb48, 0x3a2b, - 0xfb49, 0x43bc, - 0xfb4a, 0x4138, - 0xfb4b, 0x43bd, - 0xfb4c, 0x3e8e, - 0xfb4d, 0x3a30, - 0xfb4e, 0x386f, - 0xfb4f, 0x4143, - 0xfb50, 0x4146, - 0xfb51, 0x4144, - 0xfb52, 0x4149, - 0xfb53, 0x3ba5, - 0xfb54, 0x4157, - 0xfb55, 0x43be, - 0xfb56, 0x4161, - 0xfb57, 0x36ec, - 0xfb58, 0x416a, - 0xfb59, 0x3d84, - 0xfb5a, 0x4002, - 0xfb5b, 0x4186, - 0xfb5c, 0x3fba, - 0xfb5d, 0x43bf, - 0xfb5e, 0x3fc5, - 0xfb5f, 0x3f50, - 0xfb60, 0x3e96, - 0xfb61, 0x43c0, - 0xfb62, 0x418a, - 0xfb63, 0x3fc1, - 0xfb64, 0x3d8f, - 0xfb65, 0x43c1, - 0xfb66, 0x3ea0, - 0xfb67, 0x3f16, - 0xfb68, 0x3e9d, - 0xfb69, 0x418e, - 0xfb6a, 0x4192, - 0xfb6b, 0x3a66, - 0xfb6c, 0x3e9c, - 0xfb6d, 0x438f, - 0xfb6e, 0x3e90, - 0xfb6f, 0x419d, - 0xfb70, 0x43c2, - 0xfb72, 0x4356, - 0xfb73, 0x37a8, - 0xfb74, 0x419e, - 0xfb75, 0x4199, - 0xfb76, 0x4187, - 0xfb77, 0x3ea2, - 0xfb78, 0x419f, - 0xfb79, 0x3e87, - 0xfb7a, 0x3e84, - 0xfb7b, 0x3eae, - 0xfb7c, 0x3b74, - 0xfb7e, 0x37a2, - 0xfba1, 0x3b72, - 0xfba2, 0x3e79, - 0xfba3, 0x3e6d, - 0xfba4, 0x43c4, - 0xfba6, 0x3eb2, - 0xfba7, 0x43c6, - 0xfba8, 0x3eac, - 0xfba9, 0x41ca, - 0xfbaa, 0x41f4, - 0xfbab, 0x43c7, - 0xfbac, 0x41d0, - 0xfbad, 0x3aaa, - 0xfbae, 0x41de, - 0xfbaf, 0x41db, - 0xfbb0, 0x41e8, - 0xfbb1, 0x43c8, - 0xfbb2, 0x3ff6, - 0xfbb3, 0x41d9, - 0xfbb4, 0x3d42, - 0xfbb5, 0x41f5, - 0xfbb6, 0x41f8, - 0xfbb7, 0x41fb, - 0xfbb8, 0x4205, - 0xfbb9, 0x3d8e, - 0xfbba, 0x420e, - 0xfbbb, 0x3d63, - 0xfbbc, 0x4222, - 0xfbbd, 0x4221, - 0xfbbe, 0x4223, - 0xfbbf, 0x4069, - 0xfbc0, 0x402f, - 0xfbc1, 0x4242, - 0xfbc2, 0x38a5, - 0xfbc3, 0x4246, - 0xfbc4, 0x3cf5, - 0xfbc5, 0x3d69, - 0xfbc6, 0x3cfe, - 0xfbc7, 0x425b, - 0xfbc8, 0x3ac8, - 0xfbc9, 0x3dc0, - 0xfbca, 0x39ea, - 0xfbcb, 0x4000, - 0xfbcc, 0x4264, - 0xfbcd, 0x4262, - 0xfbce, 0x3fff, - 0xfbcf, 0x3e9a, - 0xfbd0, 0x4273, - 0xfbd1, 0x3969, - 0xfbd2, 0x427a, - 0xfbd3, 0x4283, - 0xfbd4, 0x43c9, - 0xfbd6, 0x3f9a, - 0xfbd7, 0x3eb5, - 0xfbd8, 0x43cb, - 0xfbda, 0x3fb2, - 0xfbdb, 0x428a, - 0xfbdd, 0x3b17, - 0xfbde, 0x428c, - 0xfbdf, 0x4290, - 0xfbe0, 0x3adf, - 0xfbe1, 0x43cd, - 0xfbe2, 0x42c5, - 0xfbe3, 0x42c8, - 0xfbe4, 0x3ead, - 0xfbe5, 0x43ce, - 0xfbe6, 0x3f8f, - 0xfbe7, 0x43cf, - 0xfbe8, 0x3e72, - 0xfbe9, 0x3e70, - 0xfbea, 0x43d0, - 0xfbeb, 0x3eaa, - 0xfbec, 0x43d1, - 0xfbed, 0x3fa9, - 0xfbee, 0x43d2, - 0xfbf1, 0x42d8, - 0xfbf2, 0x3ff3, - 0xfbf3, 0x42e0, - 0xfbf4, 0x3b00, - 0xfbf5, 0x4317, - 0xfbf6, 0x382d, - 0xfbf7, 0x3e73, - 0xfbf8, 0x3fd5, - 0xfbf9, 0x43d5, - 0xfbfb, 0x3b14, - 0xfbfc, 0x36e8, - 0xfbfd, 0x42f4, - 0xfbfe, 0x3b0e, - 0xfc40, 0x42ec, - 0xfc41, 0x42f0, - 0xfc42, 0x3e7d, - 0xfc43, 0x43d7, - 0xfc44, 0x42fe, - 0xfc45, 0x4305, - 0xfc46, 0x3fda, - 0xfc47, 0x3df1, - 0xfc48, 0x3733, - 0xfc49, 0x3d7d, - 0xfc4a, 0x43d8, - 0xfc4b, 0x373a, - 0xfc4c, 0x3740, - 0xfc4d, 0x3742, - 0xfc4e, 0x3746, - 0xfc4f, 0x3752, - 0xfc50, 0x3f1f, - 0xfc51, 0x43d9, - 0xfc52, 0x36ed, - 0xfc53, 0x3b4a, - 0xfc54, 0x375e, - 0xfc55, 0x3b45, - 0xfc56, 0x43da, - 0xfc57, 0x3ede, - 0xfc58, 0x3769, - 0xfc59, 0x376c, - 0xfc5a, 0x376b, - 0xfc5b, 0x376e, - 0xfc5c, 0x377f, - 0xfc5d, 0x377b, - 0xfc5e, 0x3782, - 0xfc5f, 0x3e69, - 0xfc60, 0x3b4f, - 0xfc61, 0x3786, - 0xfc62, 0x43db, - 0xfc63, 0x3788, - 0xfc64, 0x43dc, - 0xfc65, 0x3ecd, - 0xfc66, 0x3797, - 0xfc67, 0x420d, - 0xfc68, 0x43dd, - 0xfc69, 0x37bc, - 0xfc6a, 0x43de, - 0xfc6b, 0x37d8, - 0xfc6c, 0x3b71, - 0xfc6d, 0x3e7a, - 0xfc6e, 0x43df, - 0xfc6f, 0x38dc, - 0xfc70, 0x37e0, - 0xfc71, 0x37ee, - 0xfc72, 0x37f4, - 0xfc73, 0x3813, - 0xfc74, 0x43e0, - 0xfc76, 0x3eb0, - 0xfc77, 0x43e2, - 0xfc78, 0x3fed, - 0xfc79, 0x380d, - 0xfc7a, 0x3eaf, - 0xfc7b, 0x3f92, - 0xfc7c, 0x3816, - 0xfc7d, 0x381b, - 0xfc7e, 0x3fa2, - 0xfca1, 0x381c, - 0xfca2, 0x381e, - 0xfca4, 0x3eb1, - 0xfca5, 0x134a, - 0xfca6, 0x43e3, - 0xfca7, 0x3fe9, - 0xfca8, 0x43e4, - 0xfca9, 0x3ff9, - 0xfcaa, 0x3d93, - 0xfcab, 0x43e5, - 0xfcac, 0x3e59, - 0xfcad, 0x43e6, - 0xfcae, 0x3837, - 0xfcaf, 0x3f99, - 0xfcb0, 0x3e99, - 0xfcb1, 0x3e5e, - 0xfcb2, 0x3bb4, - 0xfcb3, 0x3eab, - 0xfcb4, 0x43e7, - 0xfcb6, 0x385e, - 0xfcb7, 0x43e9, - 0xfcb8, 0x3dbe, - 0xfcb9, 0x3e85, - 0xfcba, 0x3863, - 0xfcbc, 0x3d6c, - 0xfcbd, 0x3871, - 0xfcbe, 0x3ee0, - 0xfcbf, 0x43ea, - 0xfcc0, 0x387c, - 0xfcc1, 0x43eb, - 0xfcc2, 0x3eb8, - 0xfcc3, 0x3882, - 0xfcc4, 0x3e9b, - 0xfcc5, 0x43ec, - 0xfcc6, 0x3888, - 0xfcc7, 0x3c0e, - 0xfcc8, 0x382e, - 0xfcc9, 0x389a, - 0xfcca, 0x388b, - 0xfccb, 0x3c04, - 0xfccc, 0x36e9, - 0xfccd, 0x42bd, - 0xfcce, 0x3bcd, - 0xfccf, 0x389f, - 0xfcd0, 0x3dde, - 0xfcd1, 0x379b, - 0xfcd2, 0x3bd3, - 0xfcd3, 0x38af, - 0xfcd4, 0x3e97, - 0xfcd5, 0x38d6, - 0xfcd6, 0x3f35, - 0xfcd7, 0x38e0, - 0xfcd8, 0x4035, - 0xfcd9, 0x38f0, - 0xfcda, 0x43ed, - 0xfcdc, 0x3bfd, - 0xfcdd, 0x3c11, - 0xfcdf, 0x43ef, - 0xfce0, 0x3785, - 0xfce1, 0x3902, - 0xfce2, 0x3ddc, - 0xfce3, 0x43f0, - 0xfce4, 0x3faa, - 0xfce5, 0x390b, - 0xfce6, 0x3f19, - 0xfce7, 0x390e, - 0xfce8, 0x3919, - 0xfce9, 0x43f1, - 0xfcea, 0x3c3c, - 0xfceb, 0x391a, - 0xfcec, 0x3c3a, - 0xfced, 0x391b, - 0xfcee, 0x3e66, - 0xfcef, 0x3f22, - 0xfcf0, 0x3d7e, - 0xfcf1, 0x3e71, - 0xfcf2, 0x3c39, - 0xfcf3, 0x3ea1, - 0xfcf4, 0x43f2, - 0xfcf6, 0x3f30, - 0xfcf7, 0x3929, - 0xfcf8, 0x3fbc, - 0xfcf9, 0x3936, - 0xfcfa, 0x43f4, - 0xfcfb, 0x3937, - 0xfcfc, 0x3f90, - 0xfcfd, 0x43f5, - 0xfcfe, 0x0aba, - 0xa14b, 0x354e, - 0xa15a, 0x35af, - 0xa15c, 0x35b1, - 0xa15d, 0x0082, - 0xa161, 0x0086, - 0xa165, 0x008a, - 0xa169, 0x008e, - 0xa16d, 0x0092, - 0xa171, 0x0096, - 0xa175, 0x009a, - 0xa179, 0x009e, - 0xa1e3, 0x354f, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 cns13HKm471B5VEnc16 = { - 1, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, - 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, - 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, - 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, - 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, - 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, - 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, - 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, - 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, - 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - cns13HKm471B5VMap2, 702 -}; - -static Gushort cns13HKscsB5HMap2[2258] = { - 0x0000, 0x0000, - 0x8840, 0x44c9, - 0x8856, 0x4961, - 0x88a1, 0x498a, - 0x88a9, 0x499c, - 0x8940, 0x4534, - 0x8943, 0x4536, - 0x8946, 0x4537, - 0x894c, 0x453b, - 0x894d, 0x43c3, - 0x894e, 0x453c, - 0x8951, 0x439a, - 0x8952, 0x453f, - 0x89a1, 0x456c, - 0x89a6, 0x43a2, - 0x89ab, 0x43ec, - 0x89ac, 0x4571, - 0x89ad, 0x43eb, - 0x89ae, 0x4572, - 0x89b0, 0x4573, - 0x89b5, 0x4576, - 0x89c1, 0x4581, - 0x89c5, 0x4584, - 0x89cf, 0x43bc, - 0x89d0, 0x458e, - 0x89d9, 0x439c, - 0x89da, 0x4597, - 0x89db, 0x439e, - 0x89dc, 0x4598, - 0x89dd, 0x439f, - 0x89de, 0x4599, - 0x89e1, 0x43a1, - 0x89e2, 0x459c, - 0x89e3, 0x43a3, - 0x89e4, 0x459d, - 0x89ea, 0x43a5, - 0x89ec, 0x45a3, - 0x89fa, 0x43a9, - 0x89fb, 0x45b1, - 0x8a40, 0x45b5, - 0x8a41, 0x4309, - 0x8a43, 0x430b, - 0x8a4d, 0x45b6, - 0x8a4e, 0x4316, - 0x8a5a, 0x45b7, - 0x8a5b, 0x4323, - 0x8a5e, 0x45b8, - 0x8a5f, 0x4327, - 0x8a64, 0x432c, - 0x8a71, 0x45b9, - 0x8a72, 0x433a, - 0x8a76, 0x433e, - 0x8a77, 0x45ba, - 0x8a78, 0x4340, - 0x8a7a, 0x45bb, - 0x8a7b, 0x4343, - 0x8a7c, 0x45bc, - 0x8a7d, 0x4345, - 0x8a7e, 0x45bd, - 0x8aa1, 0x4347, - 0x8aa8, 0x45be, - 0x8aa9, 0x434f, - 0x8aac, 0x4352, - 0x8ab2, 0x4358, - 0x8ab6, 0x45bf, - 0x8ab7, 0x435d, - 0x8ab8, 0x45c0, - 0x8ab9, 0x435f, - 0x8abb, 0x4361, - 0x8ac9, 0x436f, - 0x8acc, 0x45c1, - 0x8ace, 0x4374, - 0x8ad6, 0x45c2, - 0x8ad8, 0x437e, - 0x8adf, 0x4385, - 0x8ae6, 0x45c4, - 0x8ae7, 0x43db, - 0x8ae8, 0x45c5, - 0x8af6, 0x45d2, - 0x8b40, 0x45db, - 0x8b41, 0x438c, - 0x8b43, 0x45dc, - 0x8b45, 0x438e, - 0x8b46, 0x45de, - 0x8b47, 0x438f, - 0x8b48, 0x45df, - 0x8b49, 0x4390, - 0x8b4a, 0x45e0, - 0x8b4b, 0x4391, - 0x8b4c, 0x45e1, - 0x8b4d, 0x4392, - 0x8b51, 0x45e2, - 0x8b55, 0x45e5, - 0x8b58, 0x4397, - 0x8b59, 0x45e8, - 0x8b5a, 0x4398, - 0x8b5b, 0x43c4, - 0x8b5c, 0x45e9, - 0x8b61, 0x43a7, - 0x8b62, 0x45ee, - 0x8b68, 0x43ac, - 0x8b69, 0x45f4, - 0x8ba1, 0x460a, - 0x8bc0, 0x44df, - 0x8bde, 0x44fc, - 0x8d60, 0x4629, - 0x8d62, 0x43ba, - 0x8d63, 0x462b, - 0x8d68, 0x43bb, - 0x8d69, 0x43a0, - 0x8d6a, 0x43bd, - 0x8d6b, 0x4630, - 0x8d6e, 0x43be, - 0x8d6f, 0x4633, - 0x8d76, 0x43bf, - 0x8d77, 0x463a, - 0x8d7a, 0x43c0, - 0x8d7b, 0x463d, - 0x8d7c, 0x43c1, - 0x8d7d, 0x463e, - 0x8da1, 0x4640, - 0x8da5, 0x43c2, - 0x8da6, 0x4644, - 0x8da8, 0x43b9, - 0x8da9, 0x43ad, - 0x8daa, 0x4646, - 0x8db6, 0x43c7, - 0x8db7, 0x4652, - 0x8dc3, 0x43c8, - 0x8dc4, 0x465e, - 0x8dfa, 0x43f9, - 0x8dfb, 0x4694, - 0x8e40, 0x372b, - 0x8e45, 0x4698, - 0x8e46, 0x3730, - 0x8e6a, 0x3754, - 0x8e6b, 0x4699, - 0x8e6d, 0x3756, - 0x8e70, 0x3759, - 0x8e76, 0x469b, - 0x8e77, 0x375f, - 0x8e7b, 0x469c, - 0x8e7c, 0x3764, - 0x8ea1, 0x3766, - 0x8ea6, 0x469d, - 0x8ea7, 0x376b, - 0x8eac, 0x3770, - 0x8eb5, 0x3779, - 0x8eb8, 0x469e, - 0x8eb9, 0x377d, - 0x8ec9, 0x469f, - 0x8eca, 0x378d, - 0x8ece, 0x3791, - 0x8ed1, 0x3794, - 0x8ee5, 0x46a0, - 0x8ee6, 0x37a8, - 0x8eef, 0x46a1, - 0x8ef0, 0x37b1, - 0x8ef6, 0x46a2, - 0x8ef7, 0x37b8, - 0x8f40, 0x37c0, - 0x8f58, 0x37d8, - 0x8f59, 0x46a3, - 0x8f5a, 0x37d9, - 0x8f5f, 0x46a4, - 0x8f60, 0x37de, - 0x8f67, 0x46a5, - 0x8f68, 0x37e5, - 0x8f6a, 0x37e7, - 0x8f6f, 0x37ec, - 0x8f79, 0x46a6, - 0x8f7a, 0x37f7, - 0x8fa1, 0x37fc, - 0x8fb0, 0x46a7, - 0x8fb1, 0x380c, - 0x8fc5, 0x46a8, - 0x8fc6, 0x3820, - 0x8fc7, 0x46a9, - 0x8fc8, 0x3821, - 0x8fca, 0x46aa, - 0x8fcd, 0x3826, - 0x8fda, 0x46ab, - 0x8fdb, 0x3833, - 0x8fe3, 0x46ac, - 0x8fe4, 0x383c, - 0x8ffc, 0x46ad, - 0x8ffd, 0x3854, - 0x9040, 0x3856, - 0x9055, 0x46ae, - 0x9056, 0x386c, - 0x905c, 0x46af, - 0x905f, 0x3873, - 0x906e, 0x3882, - 0x906f, 0x46b2, - 0x9070, 0x3883, - 0x907b, 0x388d, - 0x90a1, 0x3891, - 0x90a6, 0x46b3, - 0x90a7, 0x3896, - 0x90b8, 0x46b4, - 0x90b9, 0x38a7, - 0x90dd, 0x38cb, - 0x90f2, 0x38e0, - 0x9140, 0x38ed, - 0x9165, 0x46b5, - 0x9166, 0x3912, - 0x916e, 0x46b6, - 0x916f, 0x391a, - 0x917e, 0x46b7, - 0x91a1, 0x3929, - 0x91a2, 0x46b8, - 0x91a3, 0x392a, - 0x91c0, 0x3947, - 0x91c8, 0x46b9, - 0x91c9, 0x3950, - 0x9240, 0x3986, - 0x9245, 0x398b, - 0x9264, 0x46ba, - 0x9265, 0x39ab, - 0x926d, 0x46bb, - 0x926e, 0x39b4, - 0x92a1, 0x39c5, - 0x92b3, 0x39d3, - 0x92c9, 0x39e9, - 0x92d2, 0x39f2, - 0x92e5, 0x46bc, - 0x92e6, 0x3a05, - 0x92f2, 0x46bd, - 0x92f3, 0x3a11, - 0x9340, 0x3a1d, - 0x9368, 0x46be, - 0x9369, 0x3a45, - 0x93a1, 0x3a5b, - 0x93aa, 0x46bf, - 0x93ab, 0x3a64, - 0x93c2, 0x46c0, - 0x93c3, 0x3a7b, - 0x93e5, 0x46c1, - 0x93e6, 0x3a9d, - 0x93e8, 0x46c2, - 0x93e9, 0x3aa0, - 0x93eb, 0x46c3, - 0x93ec, 0x3aa2, - 0x9440, 0x3ab5, - 0x9446, 0x46c4, - 0x9448, 0x3abc, - 0x9479, 0x46c5, - 0x947a, 0x3aee, - 0x94a1, 0x3af3, - 0x94cb, 0x46c6, - 0x94cc, 0x3b1e, - 0x9540, 0x3b51, - 0x954d, 0x46c7, - 0x954e, 0x3b5e, - 0x955a, 0x46c8, - 0x955b, 0x3b6a, - 0x955f, 0x46c9, - 0x9560, 0x3b6f, - 0x95a1, 0x3b8e, - 0x95c6, 0x46ca, - 0x95c7, 0x3bb3, - 0x95da, 0x3bc6, - 0x9640, 0x3beb, - 0x9645, 0x3bf0, - 0x9651, 0x46cb, - 0x9652, 0x3bfd, - 0x966a, 0x46cc, - 0x966b, 0x3c16, - 0x96a1, 0x3c2a, - 0x96d4, 0x46cd, - 0x96d5, 0x3c5d, - 0x96ee, 0x3c76, - 0x96fd, 0x3c85, - 0x9740, 0x3c87, - 0x97a1, 0x3cc6, - 0x9840, 0x3d24, - 0x9844, 0x46ce, - 0x9846, 0x3d2a, - 0x986f, 0x46d0, - 0x9870, 0x3d54, - 0x9875, 0x46d1, - 0x9877, 0x3d59, - 0x9878, 0x46d3, - 0x987a, 0x3d5a, - 0x987b, 0x46d5, - 0x98a1, 0x46d9, - 0x98a3, 0x3d5b, - 0x98a4, 0x46db, - 0x98af, 0x3d5c, - 0x98b0, 0x46e6, - 0x98b4, 0x43ca, - 0x98b5, 0x46ea, - 0x98b6, 0x3d5d, - 0x98b7, 0x46eb, - 0x98b8, 0x43cc, - 0x98b9, 0x3d5e, - 0x98ba, 0x46ec, - 0x98bb, 0x43fa, - 0x98bc, 0x46ed, - 0x98bd, 0x3d5f, - 0x98bf, 0x46ee, - 0x98c2, 0x3d61, - 0x98c3, 0x46f1, - 0x98c4, 0x3d62, - 0x98c5, 0x46f2, - 0x98c6, 0x3d63, - 0x98c8, 0x46f3, - 0x98d2, 0x43cd, - 0x98d3, 0x46fd, - 0x98d8, 0x43ce, - 0x98da, 0x4702, - 0x98db, 0x43d1, - 0x98dc, 0x4703, - 0x98df, 0x43d4, - 0x98e0, 0x4706, - 0x98e3, 0x3d65, - 0x98e4, 0x4709, - 0x98e7, 0x3d66, - 0x98e8, 0x470c, - 0x98ed, 0x3d67, - 0x98ee, 0x4711, - 0x98f0, 0x3d68, - 0x98f1, 0x4713, - 0x98f2, 0x3d69, - 0x98f3, 0x4714, - 0x98f4, 0x43d5, - 0x98f6, 0x4715, - 0x98fc, 0x3d6a, - 0x98fd, 0x471b, - 0x98fe, 0x43d7, - 0x9940, 0x471c, - 0x9942, 0x43fc, - 0x9943, 0x3d6b, - 0x9944, 0x471e, - 0x9945, 0x3d6c, - 0x9946, 0x471f, - 0x9947, 0x43d8, - 0x9948, 0x4720, - 0x994f, 0x3d6d, - 0x9950, 0x4727, - 0x9954, 0x43d9, - 0x9955, 0x472b, - 0x995c, 0x43da, - 0x995d, 0x4732, - 0x9964, 0x43dc, - 0x9965, 0x4739, - 0x996a, 0x3d6e, - 0x996b, 0x473e, - 0x996e, 0x3d6f, - 0x996f, 0x4741, - 0x9975, 0x3d70, - 0x9976, 0x4747, - 0x9978, 0x3d71, - 0x9979, 0x4749, - 0x99a1, 0x474f, - 0x99a2, 0x3d72, - 0x99a3, 0x4750, - 0x99a4, 0x43c5, - 0x99a5, 0x4751, - 0x99a6, 0x43c6, - 0x99a7, 0x4752, - 0x99ae, 0x3d73, - 0x99af, 0x4759, - 0x99b2, 0x43de, - 0x99b3, 0x475c, - 0x99b6, 0x3d74, - 0x99b7, 0x475f, - 0x99ba, 0x3d75, - 0x99bb, 0x4762, - 0x99ca, 0x43e0, - 0x99cb, 0x4771, - 0x99cd, 0x43e2, - 0x99ce, 0x4773, - 0x99d3, 0x43e3, - 0x99d4, 0x4778, - 0x99d6, 0x43e5, - 0x99d7, 0x477a, - 0x99df, 0x43df, - 0x99e0, 0x4782, - 0x99e2, 0x3d76, - 0x99e3, 0x4784, - 0x99e4, 0x43ab, - 0x99e5, 0x4785, - 0x99e6, 0x43e7, - 0x99e7, 0x4786, - 0x99e8, 0x43e9, - 0x99e9, 0x4787, - 0x99ef, 0x43fd, - 0x99f0, 0x478d, - 0x99f4, 0x3d77, - 0x99f5, 0x4791, - 0x9a40, 0x479b, - 0x9a4a, 0x3d78, - 0x9a4b, 0x47a5, - 0x9a4c, 0x3d79, - 0x9a4d, 0x47a6, - 0x9a59, 0x3d7a, - 0x9a5a, 0x47b2, - 0x9a5f, 0x43af, - 0x9a60, 0x47b7, - 0x9a61, 0x3d7b, - 0x9a62, 0x47b8, - 0x9a66, 0x43ed, - 0x9a67, 0x47bc, - 0x9a68, 0x3d7c, - 0x9a69, 0x43ee, - 0x9a6a, 0x47bd, - 0x9a6b, 0x43ff, - 0x9a6c, 0x47be, - 0x9a73, 0x3d7d, - 0x9a74, 0x47c5, - 0x9a75, 0x43f1, - 0x9a76, 0x47c6, - 0x9a7e, 0x3d7e, - 0x9aa1, 0x47ce, - 0x9aa3, 0x43f3, - 0x9aa4, 0x47d0, - 0x9aa5, 0x43f2, - 0x9aa6, 0x47d1, - 0x9aa9, 0x43f8, - 0x9aaa, 0x43f4, - 0x9aab, 0x47d4, - 0x9ab2, 0x3d7f, - 0x9ab3, 0x47db, - 0x9ab7, 0x3d80, - 0x9ab8, 0x47df, - 0x9ab9, 0x3d81, - 0x9aba, 0x47e0, - 0x9abb, 0x3d82, - 0x9abc, 0x47e1, - 0x9abd, 0x43b7, - 0x9abe, 0x47e2, - 0x9ac7, 0x3d83, - 0x9ac8, 0x47eb, - 0x9ad0, 0x3d84, - 0x9ad1, 0x47f3, - 0x9ad2, 0x3d85, - 0x9ad3, 0x47f4, - 0x9ad9, 0x3d86, - 0x9adc, 0x47fa, - 0x9ae2, 0x3d89, - 0x9ae3, 0x4800, - 0x9ae4, 0x3d8a, - 0x9ae5, 0x4801, - 0x9ae8, 0x3d8b, - 0x9ae9, 0x43b0, - 0x9aea, 0x4804, - 0x9aee, 0x43b2, - 0x9aef, 0x4808, - 0x9af2, 0x3d8c, - 0x9af3, 0x480b, - 0x9af6, 0x3d8d, - 0x9af7, 0x480e, - 0x9afb, 0x3d8e, - 0x9afc, 0x4812, - 0x9b40, 0x4815, - 0x9b46, 0x3d8f, - 0x9b47, 0x481b, - 0x9b4a, 0x3d90, - 0x9b4b, 0x481e, - 0x9b54, 0x3d92, - 0x9b55, 0x4827, - 0x9b58, 0x3d93, - 0x9b59, 0x482a, - 0x9b5a, 0x3d94, - 0x9b5b, 0x482b, - 0x9b5c, 0x3d95, - 0x9b5d, 0x482c, - 0x9b5e, 0x3d96, - 0x9b60, 0x482d, - 0x9b62, 0x482e, - 0x9b70, 0x3d98, - 0x9b74, 0x483c, - 0x9b77, 0x3d9d, - 0x9b79, 0x483e, - 0x9b7c, 0x3da0, - 0x9b7d, 0x4840, - 0x9b7e, 0x3da1, - 0x9ba1, 0x3da2, - 0x9ba2, 0x4841, - 0x9ba3, 0x3da3, - 0x9ba5, 0x4842, - 0x9ba7, 0x3da5, - 0x9bab, 0x4844, - 0x9bac, 0x3da9, - 0x9bad, 0x4845, - 0x9baf, 0x3daa, - 0x9bb0, 0x4847, - 0x9bb2, 0x3dab, - 0x9bba, 0x4849, - 0x9bbe, 0x3db3, - 0x9bbf, 0x484d, - 0x9bc0, 0x3db4, - 0x9bc7, 0x484e, - 0x9bca, 0x3dbb, - 0x9bcb, 0x4851, - 0x9bcc, 0x3dbc, - 0x9bcd, 0x4852, - 0x9bce, 0x43d0, - 0x9bcf, 0x4853, - 0x9bd0, 0x3dbd, - 0x9bd2, 0x4854, - 0x9bd3, 0x3dbf, - 0x9bd4, 0x4855, - 0x9bd5, 0x3dc0, - 0x9bd6, 0x4856, - 0x9bd8, 0x3dc1, - 0x9bdb, 0x4858, - 0x9bdd, 0x3dc4, - 0x9bdf, 0x3dc5, - 0x9be0, 0x485a, - 0x9be1, 0x3dc6, - 0x9be2, 0x485b, - 0x9be3, 0x3dc7, - 0x9be4, 0x485c, - 0x9be7, 0x3dc8, - 0x9be8, 0x485f, - 0x9be9, 0x3dc9, - 0x9bed, 0x4860, - 0x9bee, 0x3dcd, - 0x9bf0, 0x4861, - 0x9bf3, 0x3dcf, - 0x9bf4, 0x4864, - 0x9bf7, 0x4866, - 0x9bf8, 0x3dd1, - 0x9bfa, 0x4867, - 0x9bfb, 0x3dd3, - 0x9bfd, 0x4868, - 0x9c40, 0x3dd5, - 0x9c43, 0x486a, - 0x9c44, 0x3dd8, - 0x9c47, 0x486b, - 0x9c48, 0x3ddb, - 0x9c49, 0x486c, - 0x9c4a, 0x3ddc, - 0x9c4b, 0x486d, - 0x9c4d, 0x3ddd, - 0x9c54, 0x486f, - 0x9c55, 0x3de4, - 0x9c56, 0x4870, - 0x9c57, 0x3de5, - 0x9c5c, 0x4871, - 0x9c5d, 0x3dea, - 0x9c5e, 0x4872, - 0x9c60, 0x3deb, - 0x9c61, 0x4874, - 0x9c63, 0x4875, - 0x9c64, 0x3ded, - 0x9c67, 0x4876, - 0x9c69, 0x4877, - 0x9c6a, 0x3df1, - 0x9c6c, 0x4878, - 0x9c6d, 0x3df2, - 0x9c6e, 0x4879, - 0x9c6f, 0x3df3, - 0x9c73, 0x487a, - 0x9c75, 0x3df7, - 0x9c78, 0x487c, - 0x9c79, 0x3dfa, - 0x9c7a, 0x487d, - 0x9c7b, 0x3dfb, - 0x9c7d, 0x487e, - 0x9c7e, 0x3dfd, - 0x9ca1, 0x3dfe, - 0x9ca3, 0x487f, - 0x9ca5, 0x3e00, - 0x9ca6, 0x4881, - 0x9ca8, 0x3e01, - 0x9caa, 0x4883, - 0x9cab, 0x3e03, - 0x9cac, 0x4884, - 0x9cad, 0x3e04, - 0x9caf, 0x4885, - 0x9cb1, 0x3e06, - 0x9cbb, 0x4887, - 0x9cbe, 0x3e12, - 0x9cc3, 0x4888, - 0x9cc6, 0x3e17, - 0x9cce, 0x488b, - 0x9ccf, 0x3e1f, - 0x9cd1, 0x3e21, - 0x9cd4, 0x488c, - 0x9cd8, 0x3e24, - 0x9cdb, 0x4890, - 0x9cdc, 0x3e27, - 0x9ce6, 0x4891, - 0x9ce7, 0x3e31, - 0x9cea, 0x4892, - 0x9ceb, 0x3e34, - 0x9ced, 0x4893, - 0x9cee, 0x3e36, - 0x9cfa, 0x4894, - 0x9cfd, 0x3e42, - 0x9cfe, 0x4897, - 0x9d40, 0x43e8, - 0x9d41, 0x4898, - 0x9d46, 0x3e43, - 0x9d47, 0x489d, - 0x9d49, 0x3e44, - 0x9d4a, 0x489f, - 0x9d4c, 0x3e46, - 0x9d4e, 0x48a1, - 0x9d4f, 0x3e48, - 0x9d50, 0x48a2, - 0x9d51, 0x3e49, - 0x9d52, 0x48a3, - 0x9d55, 0x3e4a, - 0x9d56, 0x48a6, - 0x9d58, 0x48a7, - 0x9d5b, 0x48a9, - 0x9d61, 0x43c9, - 0x9d62, 0x3e4c, - 0x9d63, 0x48af, - 0x9d64, 0x3e4d, - 0x9d65, 0x48b0, - 0x9d78, 0x43f5, - 0x9d79, 0x3e4e, - 0x9d7a, 0x48c3, - 0x9d7e, 0x3e4f, - 0x9da1, 0x48c7, - 0x9da5, 0x3e50, - 0x9da9, 0x48cb, - 0x9daa, 0x3e54, - 0x9dab, 0x48cc, - 0x9dac, 0x3e55, - 0x9dae, 0x48cd, - 0x9db0, 0x3e58, - 0x9db1, 0x48cf, - 0x9db3, 0x3e59, - 0x9db4, 0x48d1, - 0x9db5, 0x3e5a, - 0x9db6, 0x48d2, - 0x9db7, 0x3e5b, - 0x9db8, 0x48d3, - 0x9dbc, 0x3e5c, - 0x9dbe, 0x48d7, - 0x9dbf, 0x3e5e, - 0x9dc1, 0x48d8, - 0x9dc3, 0x3e60, - 0x9dc5, 0x48da, - 0x9dc7, 0x3e62, - 0x9dc9, 0x48dc, - 0x9dca, 0x3e64, - 0x9dcb, 0x48dd, - 0x9dcd, 0x3e65, - 0x9dd2, 0x48df, - 0x9dd3, 0x3e6a, - 0x9dd6, 0x48e0, - 0x9dda, 0x3e6d, - 0x9dfc, 0x48e4, - 0x9dfd, 0x3e8f, - 0x9e40, 0x3e91, - 0x9e43, 0x48e5, - 0x9e44, 0x3e95, - 0x9e5f, 0x48e6, - 0x9e60, 0x3eb1, - 0x9e63, 0x48e7, - 0x9e64, 0x3eb4, - 0x9e66, 0x48e8, - 0x9e68, 0x3eb6, - 0x9e69, 0x48ea, - 0x9e6a, 0x3eb7, - 0x9e6b, 0x48eb, - 0x9e71, 0x3eb8, - 0x9e72, 0x48f1, - 0x9e73, 0x3eb9, - 0x9e74, 0x48f2, - 0x9e77, 0x3eba, - 0x9e79, 0x48f5, - 0x9e7a, 0x3ebc, - 0x9e7b, 0x48f6, - 0x9e7c, 0x3ebd, - 0x9e7d, 0x48f7, - 0x9e7e, 0x3ebe, - 0x9ea1, 0x3ebf, - 0x9ea3, 0x48f8, - 0x9ea4, 0x3ec1, - 0x9ea7, 0x48f9, - 0x9eaa, 0x3ec5, - 0x9eab, 0x48fb, - 0x9ead, 0x3ec7, - 0x9eae, 0x48fc, - 0x9eaf, 0x3ec8, - 0x9eb2, 0x48fd, - 0x9eb4, 0x3ecb, - 0x9eb5, 0x48ff, - 0x9eb6, 0x3ecc, - 0x9eb8, 0x4900, - 0x9eb9, 0x3ece, - 0x9eba, 0x4901, - 0x9ebc, 0x3ecf, - 0x9ebd, 0x4903, - 0x9ebf, 0x3ed0, - 0x9ec1, 0x4905, - 0x9ec5, 0x3ed3, - 0x9ec6, 0x4908, - 0x9ec7, 0x3ed4, - 0x9ecb, 0x4909, - 0x9ecd, 0x3ed9, - 0x9ece, 0x490b, - 0x9ed0, 0x3eda, - 0x9ed2, 0x490d, - 0x9ed3, 0x3edc, - 0x9ed4, 0x490e, - 0x9ed6, 0x3edd, - 0x9ed8, 0x4910, - 0x9eda, 0x3edf, - 0x9ef0, 0x3ef5, - 0x9ef2, 0x4912, - 0x9ef3, 0x3ef7, - 0x9ef5, 0x3ef9, - 0x9ef6, 0x4913, - 0x9ef9, 0x3efa, - 0x9efb, 0x4916, - 0x9efc, 0x3efc, - 0x9efe, 0x3efe, - 0x9f40, 0x3eff, - 0x9f43, 0x4917, - 0x9f44, 0x3f02, - 0x9f48, 0x4918, - 0x9f49, 0x3f06, - 0x9f4b, 0x4919, - 0x9f4d, 0x3f08, - 0x9f4f, 0x3f0a, - 0x9f61, 0x3f1c, - 0x9f67, 0x491b, - 0x9f69, 0x3f23, - 0x9f70, 0x491d, - 0x9f71, 0x3f2a, - 0x9fa1, 0x3f38, - 0x9fae, 0x3f45, - 0x9fb2, 0x3f49, - 0x9fb5, 0x491e, - 0x9fb6, 0x3f4c, - 0x9fbb, 0x491f, - 0x9fbc, 0x3f51, - 0x9fbf, 0x4920, - 0x9fc1, 0x4921, - 0x9fc2, 0x3f55, - 0x9fc9, 0x3f5c, - 0x9fcc, 0x4922, - 0x9fcd, 0x3f60, - 0x9fd4, 0x4923, - 0x9fd5, 0x3f68, - 0x9fd9, 0x3f6c, - 0x9fdb, 0x3f6e, - 0x9fe4, 0x4924, - 0x9fe5, 0x3f77, - 0x9fe7, 0x3f79, - 0x9feb, 0x3f7d, - 0x9ff0, 0x3f82, - 0x9ff9, 0x4925, - 0x9ffa, 0x3f8b, - 0xa040, 0x4926, - 0xa041, 0x3f90, - 0xa047, 0x4927, - 0xa048, 0x3f96, - 0xa055, 0x4928, - 0xa056, 0x3fa3, - 0xa058, 0x3fa5, - 0xa05b, 0x3fa8, - 0xa064, 0x3fb1, - 0xa06d, 0x4929, - 0xa06e, 0x3fba, - 0xa073, 0x3fbf, - 0xa078, 0x3fc4, - 0xa07b, 0x492a, - 0xa07c, 0x3fc7, - 0xa0a1, 0x3fca, - 0xa0a2, 0x492b, - 0xa0a3, 0x3fcb, - 0xa0a6, 0x3fce, - 0xa0a7, 0x492c, - 0xa0a8, 0x3fcf, - 0xa0ae, 0x3fd5, - 0xa0b0, 0x3fd7, - 0xa0c5, 0x492d, - 0xa0c6, 0x3fec, - 0xa0d0, 0x492e, - 0xa0d1, 0x3ff6, - 0xa0d4, 0x3ff9, - 0xa0d6, 0x3ffb, - 0xa0e0, 0x4005, - 0xa0e2, 0x4007, - 0xa0e3, 0x492f, - 0xa0e5, 0x4009, - 0xa0e7, 0x4930, - 0xa0ee, 0x43b4, - 0xa0ef, 0x4937, - 0xa0f2, 0x43b8, - 0xa0f3, 0x493a, - 0xa140, 0x0063, - 0xa159, 0x35af, - 0xa15d, 0x0080, - 0xa1a1, 0x00a2, - 0xa1f6, 0x00f8, - 0xa1f7, 0x00f7, - 0xa1f8, 0x00f9, - 0xa240, 0x0100, - 0xa2a1, 0x013f, - 0xa340, 0x019d, - 0xa3a1, 0x01dc, - 0xa3bd, 0x01f7, - 0xa440, 0x0253, - 0xa4a1, 0x0292, - 0xa540, 0x02f0, - 0xa5a1, 0x032f, - 0xa640, 0x038d, - 0xa6a1, 0x03cc, - 0xa740, 0x042a, - 0xa7a1, 0x0469, - 0xa840, 0x04c7, - 0xa8a1, 0x0506, - 0xa940, 0x0564, - 0xa9a1, 0x05a3, - 0xaa40, 0x0601, - 0xaaa1, 0x0640, - 0xab40, 0x069e, - 0xaba1, 0x06dd, - 0xac40, 0x073b, - 0xaca1, 0x077a, - 0xacfe, 0x097f, - 0xad40, 0x07d7, - 0xada1, 0x0816, - 0xae40, 0x0874, - 0xaea1, 0x08b3, - 0xaf40, 0x0911, - 0xafa1, 0x0950, - 0xafd0, 0x0980, - 0xb040, 0x09af, - 0xb0a1, 0x09ee, - 0xb140, 0x0a4c, - 0xb1a1, 0x0a8b, - 0xb240, 0x0ae9, - 0xb2a1, 0x0b28, - 0xb340, 0x0b86, - 0xb3a1, 0x0bc5, - 0xb440, 0x0c23, - 0xb4a1, 0x0c62, - 0xb540, 0x0cc0, - 0xb5a1, 0x0cff, - 0xb640, 0x0d5d, - 0xb6a1, 0x0d9c, - 0xb740, 0x0dfa, - 0xb7a1, 0x0e39, - 0xb840, 0x0e97, - 0xb8a1, 0x0ed6, - 0xb940, 0x0f34, - 0xb9a1, 0x0f73, - 0xba40, 0x0fd1, - 0xbaa1, 0x1010, - 0xbb40, 0x106e, - 0xbba1, 0x10ad, - 0xbbc8, 0x10d5, - 0xbc40, 0x110c, - 0xbca1, 0x114b, - 0xbd40, 0x11a9, - 0xbda1, 0x11e8, - 0xbe40, 0x1246, - 0xbe52, 0x10d4, - 0xbe53, 0x1258, - 0xbea1, 0x1284, - 0xbf40, 0x12e2, - 0xbfa1, 0x1321, - 0xc040, 0x137f, - 0xc0a1, 0x13be, - 0xc140, 0x141c, - 0xc1a1, 0x145b, - 0xc1ab, 0x1466, - 0xc240, 0x14ba, - 0xc2a1, 0x14f9, - 0xc2cb, 0x1465, - 0xc2cc, 0x1523, - 0xc340, 0x1556, - 0xc361, 0x1578, - 0xc3a1, 0x1596, - 0xc3b9, 0x15af, - 0xc3ba, 0x15ae, - 0xc3bb, 0x15b0, - 0xc440, 0x15f4, - 0xc456, 0x1577, - 0xc457, 0x160a, - 0xc4a1, 0x1632, - 0xc540, 0x1690, - 0xc5a1, 0x16cf, - 0xc640, 0x172d, - 0xc6a1, 0x01fa, - 0xc6bf, 0x0219, - 0xc6d0, 0x022a, - 0xc6d4, 0x022e, - 0xc6d6, 0x0230, - 0xc6d8, 0x35b3, - 0xc6e0, 0x35ba, - 0xc740, 0x35d9, - 0xc7a1, 0x3618, - 0xc840, 0x3676, - 0xc8a1, 0x36b5, - 0xc8cd, 0x36e1, - 0xc8d4, 0x44c6, - 0xc8d7, 0x451c, - 0xc8e0, 0x02dc, - 0xc8e1, 0x4525, - 0xc8e9, 0x0509, - 0xc8ea, 0x452d, - 0xc8f1, 0x09f6, - 0xc8f5, 0x4992, - 0xc940, 0x176c, - 0xc94a, 0x0274, - 0xc94b, 0x1776, - 0xc96c, 0x1798, - 0xc9a1, 0x17ab, - 0xc9be, 0x1797, - 0xc9bf, 0x17c8, - 0xc9ed, 0x17f7, - 0xca40, 0x1809, - 0xcaa1, 0x1848, - 0xcaf7, 0x17f6, - 0xcaf8, 0x189e, - 0xcb40, 0x18a5, - 0xcba1, 0x18e4, - 0xcc40, 0x1942, - 0xcca1, 0x1981, - 0xcd40, 0x19df, - 0xcda1, 0x1a1e, - 0xce40, 0x1a7c, - 0xcea1, 0x1abb, - 0xcf40, 0x1b19, - 0xcfa1, 0x1b58, - 0xd040, 0x1bb6, - 0xd0a1, 0x1bf5, - 0xd140, 0x1c53, - 0xd1a1, 0x1c92, - 0xd240, 0x1cf0, - 0xd2a1, 0x1d2f, - 0xd340, 0x1d8d, - 0xd3a1, 0x1dcc, - 0xd440, 0x1e2a, - 0xd4a1, 0x1e69, - 0xd540, 0x1ec7, - 0xd5a1, 0x1f06, - 0xd640, 0x1f64, - 0xd6a1, 0x1fa3, - 0xd6cc, 0x2254, - 0xd6cd, 0x1fcf, - 0xd740, 0x2001, - 0xd77a, 0x22b9, - 0xd77b, 0x203b, - 0xd7a1, 0x203f, - 0xd840, 0x209d, - 0xd8a1, 0x20dc, - 0xd940, 0x213a, - 0xd9a1, 0x2179, - 0xda40, 0x21d7, - 0xdaa1, 0x2216, - 0xdadf, 0x1fce, - 0xdae0, 0x2255, - 0xdb40, 0x2274, - 0xdba1, 0x22b3, - 0xdba7, 0x22ba, - 0xdc40, 0x2312, - 0xdca1, 0x2351, - 0xdd40, 0x23af, - 0xdda1, 0x23ee, - 0xddfc, 0x2381, - 0xddfd, 0x2449, - 0xde40, 0x244b, - 0xdea1, 0x248a, - 0xdf40, 0x24e8, - 0xdfa1, 0x2527, - 0xe040, 0x2585, - 0xe0a1, 0x25c4, - 0xe140, 0x2622, - 0xe1a1, 0x2661, - 0xe240, 0x26bf, - 0xe2a1, 0x26fe, - 0xe340, 0x275c, - 0xe3a1, 0x279b, - 0xe440, 0x27f9, - 0xe4a1, 0x2838, - 0xe540, 0x2896, - 0xe5a1, 0x28d5, - 0xe640, 0x2933, - 0xe6a1, 0x2972, - 0xe740, 0x29d0, - 0xe7a1, 0x2a0f, - 0xe840, 0x2a6d, - 0xe8a1, 0x2aac, - 0xe8a3, 0x2aaf, - 0xe940, 0x2b0b, - 0xe976, 0x2b42, - 0xe9a1, 0x2b4b, - 0xea40, 0x2ba9, - 0xeaa1, 0x2be8, - 0xeb40, 0x2c46, - 0xeb5b, 0x2c62, - 0xeba1, 0x2c86, - 0xebf1, 0x2aae, - 0xebf2, 0x2cd6, - 0xec40, 0x2ce3, - 0xeca1, 0x2d22, - 0xecde, 0x2b41, - 0xecdf, 0x2d5f, - 0xed40, 0x2d7f, - 0xeda1, 0x2dbe, - 0xedaa, 0x2dc8, - 0xee40, 0x2e1d, - 0xeea1, 0x2e5c, - 0xeeeb, 0x3014, - 0xeeec, 0x2ea6, - 0xef40, 0x2eb9, - 0xefa1, 0x2ef8, - 0xf040, 0x2f56, - 0xf056, 0x2dc7, - 0xf057, 0x2f6c, - 0xf0a1, 0x2f94, - 0xf0cb, 0x2c61, - 0xf0cc, 0x2fbe, - 0xf140, 0x2ff1, - 0xf163, 0x3015, - 0xf16b, 0x3160, - 0xf16c, 0x301d, - 0xf1a1, 0x3030, - 0xf240, 0x308e, - 0xf268, 0x31ef, - 0xf269, 0x30b6, - 0xf2a1, 0x30cc, - 0xf2c3, 0x30ef, - 0xf340, 0x312b, - 0xf375, 0x3161, - 0xf3a1, 0x316b, - 0xf440, 0x31c9, - 0xf466, 0x31f0, - 0xf4a1, 0x3209, - 0xf4b5, 0x30ee, - 0xf4b6, 0x321d, - 0xf4fd, 0x3265, - 0xf540, 0x3267, - 0xf5a1, 0x32a6, - 0xf640, 0x3304, - 0xf663, 0x3264, - 0xf664, 0x3327, - 0xf6a1, 0x3342, - 0xf740, 0x33a0, - 0xf7a1, 0x33df, - 0xf840, 0x343d, - 0xf8a1, 0x347c, - 0xf940, 0x34da, - 0xf977, 0x3512, - 0xf9a1, 0x351a, - 0xf9c4, 0x3511, - 0xf9c5, 0x353d, - 0xf9c6, 0x3549, - 0xf9c7, 0x353e, - 0xf9d2, 0x354a, - 0xf9d6, 0x36e8, - 0xfa40, 0x400b, - 0xfa60, 0x402b, - 0xfa67, 0x4032, - 0xfaa1, 0x404a, - 0xfaa9, 0x4946, - 0xfaab, 0x4054, - 0xfabe, 0x4067, - 0xfac6, 0x406f, - 0xfad6, 0x407f, - 0xfb40, 0x40a8, - 0xfb49, 0x40b1, - 0xfb53, 0x4948, - 0xfb54, 0x40bc, - 0xfb6e, 0x4949, - 0xfb6f, 0x40d7, - 0xfba1, 0x40e7, - 0xfba3, 0x494a, - 0xfba4, 0x40ea, - 0xfbb9, 0x40ff, - 0xfbbf, 0x494b, - 0xfbc0, 0x4105, - 0xfbcd, 0x494c, - 0xfbce, 0x4112, - 0xfbf4, 0x4138, - 0xfbfa, 0x413e, - 0xfc40, 0x4143, - 0xfc4a, 0x494d, - 0xfc4b, 0x414d, - 0xfc50, 0x4151, - 0xfc52, 0x494e, - 0xfc53, 0x4153, - 0xfc63, 0x494f, - 0xfc64, 0x4163, - 0xfc6d, 0x4950, - 0xfc6e, 0x416d, - 0xfc75, 0x4951, - 0xfc76, 0x4174, - 0xfca1, 0x417d, - 0xfcba, 0x4195, - 0xfcbc, 0x4952, - 0xfcbe, 0x4198, - 0xfccc, 0x4954, - 0xfccd, 0x41a7, - 0xfce3, 0x4955, - 0xfce4, 0x41bd, - 0xfcee, 0x4956, - 0xfcef, 0x41c7, - 0xfcf2, 0x41ca, - 0xfd40, 0x41d7, - 0xfd49, 0x4957, - 0xfd4a, 0x41e0, - 0xfd6a, 0x4958, - 0xfd6b, 0x4201, - 0xfda1, 0x4215, - 0xfdb9, 0x422d, - 0xfdbc, 0x4230, - 0xfde3, 0x4959, - 0xfde4, 0x4258, - 0xfdf2, 0x495a, - 0xfdf3, 0x4266, - 0xfe40, 0x4272, - 0xfe53, 0x4285, - 0xfe6d, 0x495b, - 0xfe6e, 0x429f, - 0xfe70, 0x42a1, - 0xfe78, 0x495c, - 0xfe79, 0x42a9, - 0xfea1, 0x42af, - 0xfeab, 0x42b8, - 0xfede, 0x495d, - 0xfee0, 0x42eb, - 0xfeed, 0x495f, - 0xfeef, 0x42f8, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 cns13HKscsB5HEnc16 = { - 0, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, - 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, - 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, - 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, - 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, - 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, - 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, - 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, - 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, - 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - cns13HKscsB5HMap2, 1129 -}; - -static Gushort cns13HKscsB5VMap2[2284] = { - 0x0000, 0x0000, - 0x8840, 0x44c9, - 0x8856, 0x4961, - 0x88a1, 0x498a, - 0x88a9, 0x499c, - 0x8940, 0x4534, - 0x8943, 0x4536, - 0x8946, 0x4537, - 0x894c, 0x453b, - 0x894d, 0x43c3, - 0x894e, 0x453c, - 0x8951, 0x439a, - 0x8952, 0x453f, - 0x89a1, 0x456c, - 0x89a6, 0x43a2, - 0x89ab, 0x43ec, - 0x89ac, 0x4571, - 0x89ad, 0x43eb, - 0x89ae, 0x4572, - 0x89b0, 0x4573, - 0x89b5, 0x4576, - 0x89c1, 0x4581, - 0x89c5, 0x4584, - 0x89cf, 0x43bc, - 0x89d0, 0x458e, - 0x89d9, 0x439c, - 0x89da, 0x4597, - 0x89db, 0x439e, - 0x89dc, 0x4598, - 0x89dd, 0x439f, - 0x89de, 0x4599, - 0x89e1, 0x43a1, - 0x89e2, 0x459c, - 0x89e3, 0x43a3, - 0x89e4, 0x459d, - 0x89ea, 0x43a5, - 0x89ec, 0x45a3, - 0x89fa, 0x43a9, - 0x89fb, 0x45b1, - 0x8a40, 0x45b5, - 0x8a41, 0x4309, - 0x8a43, 0x430b, - 0x8a4d, 0x45b6, - 0x8a4e, 0x4316, - 0x8a5a, 0x45b7, - 0x8a5b, 0x4323, - 0x8a5e, 0x45b8, - 0x8a5f, 0x4327, - 0x8a64, 0x432c, - 0x8a71, 0x45b9, - 0x8a72, 0x433a, - 0x8a76, 0x433e, - 0x8a77, 0x45ba, - 0x8a78, 0x4340, - 0x8a7a, 0x45bb, - 0x8a7b, 0x4343, - 0x8a7c, 0x45bc, - 0x8a7d, 0x4345, - 0x8a7e, 0x45bd, - 0x8aa1, 0x4347, - 0x8aa8, 0x45be, - 0x8aa9, 0x434f, - 0x8aac, 0x4352, - 0x8ab2, 0x4358, - 0x8ab6, 0x45bf, - 0x8ab7, 0x435d, - 0x8ab8, 0x45c0, - 0x8ab9, 0x435f, - 0x8abb, 0x4361, - 0x8ac9, 0x436f, - 0x8acc, 0x45c1, - 0x8ace, 0x4374, - 0x8ad6, 0x45c2, - 0x8ad8, 0x437e, - 0x8adf, 0x4385, - 0x8ae6, 0x45c4, - 0x8ae7, 0x43db, - 0x8ae8, 0x45c5, - 0x8af6, 0x45d2, - 0x8b40, 0x45db, - 0x8b41, 0x438c, - 0x8b43, 0x45dc, - 0x8b45, 0x438e, - 0x8b46, 0x45de, - 0x8b47, 0x438f, - 0x8b48, 0x45df, - 0x8b49, 0x4390, - 0x8b4a, 0x45e0, - 0x8b4b, 0x4391, - 0x8b4c, 0x45e1, - 0x8b4d, 0x4392, - 0x8b51, 0x45e2, - 0x8b55, 0x45e5, - 0x8b58, 0x4397, - 0x8b59, 0x45e8, - 0x8b5a, 0x4398, - 0x8b5b, 0x43c4, - 0x8b5c, 0x45e9, - 0x8b61, 0x43a7, - 0x8b62, 0x45ee, - 0x8b68, 0x43ac, - 0x8b69, 0x45f4, - 0x8ba1, 0x460a, - 0x8bc0, 0x44df, - 0x8bde, 0x44fc, - 0x8d60, 0x4629, - 0x8d62, 0x43ba, - 0x8d63, 0x462b, - 0x8d68, 0x43bb, - 0x8d69, 0x43a0, - 0x8d6a, 0x43bd, - 0x8d6b, 0x4630, - 0x8d6e, 0x43be, - 0x8d6f, 0x4633, - 0x8d76, 0x43bf, - 0x8d77, 0x463a, - 0x8d7a, 0x43c0, - 0x8d7b, 0x463d, - 0x8d7c, 0x43c1, - 0x8d7d, 0x463e, - 0x8da1, 0x4640, - 0x8da5, 0x43c2, - 0x8da6, 0x4644, - 0x8da8, 0x43b9, - 0x8da9, 0x43ad, - 0x8daa, 0x4646, - 0x8db6, 0x43c7, - 0x8db7, 0x4652, - 0x8dc3, 0x43c8, - 0x8dc4, 0x465e, - 0x8dfa, 0x43f9, - 0x8dfb, 0x4694, - 0x8e40, 0x372b, - 0x8e45, 0x4698, - 0x8e46, 0x3730, - 0x8e6a, 0x3754, - 0x8e6b, 0x4699, - 0x8e6d, 0x3756, - 0x8e70, 0x3759, - 0x8e76, 0x469b, - 0x8e77, 0x375f, - 0x8e7b, 0x469c, - 0x8e7c, 0x3764, - 0x8ea1, 0x3766, - 0x8ea6, 0x469d, - 0x8ea7, 0x376b, - 0x8eac, 0x3770, - 0x8eb5, 0x3779, - 0x8eb8, 0x469e, - 0x8eb9, 0x377d, - 0x8ec9, 0x469f, - 0x8eca, 0x378d, - 0x8ece, 0x3791, - 0x8ed1, 0x3794, - 0x8ee5, 0x46a0, - 0x8ee6, 0x37a8, - 0x8eef, 0x46a1, - 0x8ef0, 0x37b1, - 0x8ef6, 0x46a2, - 0x8ef7, 0x37b8, - 0x8f40, 0x37c0, - 0x8f58, 0x37d8, - 0x8f59, 0x46a3, - 0x8f5a, 0x37d9, - 0x8f5f, 0x46a4, - 0x8f60, 0x37de, - 0x8f67, 0x46a5, - 0x8f68, 0x37e5, - 0x8f6a, 0x37e7, - 0x8f6f, 0x37ec, - 0x8f79, 0x46a6, - 0x8f7a, 0x37f7, - 0x8fa1, 0x37fc, - 0x8fb0, 0x46a7, - 0x8fb1, 0x380c, - 0x8fc5, 0x46a8, - 0x8fc6, 0x3820, - 0x8fc7, 0x46a9, - 0x8fc8, 0x3821, - 0x8fca, 0x46aa, - 0x8fcd, 0x3826, - 0x8fda, 0x46ab, - 0x8fdb, 0x3833, - 0x8fe3, 0x46ac, - 0x8fe4, 0x383c, - 0x8ffc, 0x46ad, - 0x8ffd, 0x3854, - 0x9040, 0x3856, - 0x9055, 0x46ae, - 0x9056, 0x386c, - 0x905c, 0x46af, - 0x905f, 0x3873, - 0x906e, 0x3882, - 0x906f, 0x46b2, - 0x9070, 0x3883, - 0x907b, 0x388d, - 0x90a1, 0x3891, - 0x90a6, 0x46b3, - 0x90a7, 0x3896, - 0x90b8, 0x46b4, - 0x90b9, 0x38a7, - 0x90dd, 0x38cb, - 0x90f2, 0x38e0, - 0x9140, 0x38ed, - 0x9165, 0x46b5, - 0x9166, 0x3912, - 0x916e, 0x46b6, - 0x916f, 0x391a, - 0x917e, 0x46b7, - 0x91a1, 0x3929, - 0x91a2, 0x46b8, - 0x91a3, 0x392a, - 0x91c0, 0x3947, - 0x91c8, 0x46b9, - 0x91c9, 0x3950, - 0x9240, 0x3986, - 0x9245, 0x398b, - 0x9264, 0x46ba, - 0x9265, 0x39ab, - 0x926d, 0x46bb, - 0x926e, 0x39b4, - 0x92a1, 0x39c5, - 0x92b3, 0x39d3, - 0x92c9, 0x39e9, - 0x92d2, 0x39f2, - 0x92e5, 0x46bc, - 0x92e6, 0x3a05, - 0x92f2, 0x46bd, - 0x92f3, 0x3a11, - 0x9340, 0x3a1d, - 0x9368, 0x46be, - 0x9369, 0x3a45, - 0x93a1, 0x3a5b, - 0x93aa, 0x46bf, - 0x93ab, 0x3a64, - 0x93c2, 0x46c0, - 0x93c3, 0x3a7b, - 0x93e5, 0x46c1, - 0x93e6, 0x3a9d, - 0x93e8, 0x46c2, - 0x93e9, 0x3aa0, - 0x93eb, 0x46c3, - 0x93ec, 0x3aa2, - 0x9440, 0x3ab5, - 0x9446, 0x46c4, - 0x9448, 0x3abc, - 0x9479, 0x46c5, - 0x947a, 0x3aee, - 0x94a1, 0x3af3, - 0x94cb, 0x46c6, - 0x94cc, 0x3b1e, - 0x9540, 0x3b51, - 0x954d, 0x46c7, - 0x954e, 0x3b5e, - 0x955a, 0x46c8, - 0x955b, 0x3b6a, - 0x955f, 0x46c9, - 0x9560, 0x3b6f, - 0x95a1, 0x3b8e, - 0x95c6, 0x46ca, - 0x95c7, 0x3bb3, - 0x95da, 0x3bc6, - 0x9640, 0x3beb, - 0x9645, 0x3bf0, - 0x9651, 0x46cb, - 0x9652, 0x3bfd, - 0x966a, 0x46cc, - 0x966b, 0x3c16, - 0x96a1, 0x3c2a, - 0x96d4, 0x46cd, - 0x96d5, 0x3c5d, - 0x96ee, 0x3c76, - 0x96fd, 0x3c85, - 0x9740, 0x3c87, - 0x97a1, 0x3cc6, - 0x9840, 0x3d24, - 0x9844, 0x46ce, - 0x9846, 0x3d2a, - 0x986f, 0x46d0, - 0x9870, 0x3d54, - 0x9875, 0x46d1, - 0x9877, 0x3d59, - 0x9878, 0x46d3, - 0x987a, 0x3d5a, - 0x987b, 0x46d5, - 0x98a1, 0x46d9, - 0x98a3, 0x3d5b, - 0x98a4, 0x46db, - 0x98af, 0x3d5c, - 0x98b0, 0x46e6, - 0x98b4, 0x43ca, - 0x98b5, 0x46ea, - 0x98b6, 0x3d5d, - 0x98b7, 0x46eb, - 0x98b8, 0x43cc, - 0x98b9, 0x3d5e, - 0x98ba, 0x46ec, - 0x98bb, 0x43fa, - 0x98bc, 0x46ed, - 0x98bd, 0x3d5f, - 0x98bf, 0x46ee, - 0x98c2, 0x3d61, - 0x98c3, 0x46f1, - 0x98c4, 0x3d62, - 0x98c5, 0x46f2, - 0x98c6, 0x3d63, - 0x98c8, 0x46f3, - 0x98d2, 0x43cd, - 0x98d3, 0x46fd, - 0x98d8, 0x43ce, - 0x98da, 0x4702, - 0x98db, 0x43d1, - 0x98dc, 0x4703, - 0x98df, 0x43d4, - 0x98e0, 0x4706, - 0x98e3, 0x3d65, - 0x98e4, 0x4709, - 0x98e7, 0x3d66, - 0x98e8, 0x470c, - 0x98ed, 0x3d67, - 0x98ee, 0x4711, - 0x98f0, 0x3d68, - 0x98f1, 0x4713, - 0x98f2, 0x3d69, - 0x98f3, 0x4714, - 0x98f4, 0x43d5, - 0x98f6, 0x4715, - 0x98fc, 0x3d6a, - 0x98fd, 0x471b, - 0x98fe, 0x43d7, - 0x9940, 0x471c, - 0x9942, 0x43fc, - 0x9943, 0x3d6b, - 0x9944, 0x471e, - 0x9945, 0x3d6c, - 0x9946, 0x471f, - 0x9947, 0x43d8, - 0x9948, 0x4720, - 0x994f, 0x3d6d, - 0x9950, 0x4727, - 0x9954, 0x43d9, - 0x9955, 0x472b, - 0x995c, 0x43da, - 0x995d, 0x4732, - 0x9964, 0x43dc, - 0x9965, 0x4739, - 0x996a, 0x3d6e, - 0x996b, 0x473e, - 0x996e, 0x3d6f, - 0x996f, 0x4741, - 0x9975, 0x3d70, - 0x9976, 0x4747, - 0x9978, 0x3d71, - 0x9979, 0x4749, - 0x99a1, 0x474f, - 0x99a2, 0x3d72, - 0x99a3, 0x4750, - 0x99a4, 0x43c5, - 0x99a5, 0x4751, - 0x99a6, 0x43c6, - 0x99a7, 0x4752, - 0x99ae, 0x3d73, - 0x99af, 0x4759, - 0x99b2, 0x43de, - 0x99b3, 0x475c, - 0x99b6, 0x3d74, - 0x99b7, 0x475f, - 0x99ba, 0x3d75, - 0x99bb, 0x4762, - 0x99ca, 0x43e0, - 0x99cb, 0x4771, - 0x99cd, 0x43e2, - 0x99ce, 0x4773, - 0x99d3, 0x43e3, - 0x99d4, 0x4778, - 0x99d6, 0x43e5, - 0x99d7, 0x477a, - 0x99df, 0x43df, - 0x99e0, 0x4782, - 0x99e2, 0x3d76, - 0x99e3, 0x4784, - 0x99e4, 0x43ab, - 0x99e5, 0x4785, - 0x99e6, 0x43e7, - 0x99e7, 0x4786, - 0x99e8, 0x43e9, - 0x99e9, 0x4787, - 0x99ef, 0x43fd, - 0x99f0, 0x478d, - 0x99f4, 0x3d77, - 0x99f5, 0x4791, - 0x9a40, 0x479b, - 0x9a4a, 0x3d78, - 0x9a4b, 0x47a5, - 0x9a4c, 0x3d79, - 0x9a4d, 0x47a6, - 0x9a59, 0x3d7a, - 0x9a5a, 0x47b2, - 0x9a5f, 0x43af, - 0x9a60, 0x47b7, - 0x9a61, 0x3d7b, - 0x9a62, 0x47b8, - 0x9a66, 0x43ed, - 0x9a67, 0x47bc, - 0x9a68, 0x3d7c, - 0x9a69, 0x43ee, - 0x9a6a, 0x47bd, - 0x9a6b, 0x43ff, - 0x9a6c, 0x47be, - 0x9a73, 0x3d7d, - 0x9a74, 0x47c5, - 0x9a75, 0x43f1, - 0x9a76, 0x47c6, - 0x9a7e, 0x3d7e, - 0x9aa1, 0x47ce, - 0x9aa3, 0x43f3, - 0x9aa4, 0x47d0, - 0x9aa5, 0x43f2, - 0x9aa6, 0x47d1, - 0x9aa9, 0x43f8, - 0x9aaa, 0x43f4, - 0x9aab, 0x47d4, - 0x9ab2, 0x3d7f, - 0x9ab3, 0x47db, - 0x9ab7, 0x3d80, - 0x9ab8, 0x47df, - 0x9ab9, 0x3d81, - 0x9aba, 0x47e0, - 0x9abb, 0x3d82, - 0x9abc, 0x47e1, - 0x9abd, 0x43b7, - 0x9abe, 0x47e2, - 0x9ac7, 0x3d83, - 0x9ac8, 0x47eb, - 0x9ad0, 0x3d84, - 0x9ad1, 0x47f3, - 0x9ad2, 0x3d85, - 0x9ad3, 0x47f4, - 0x9ad9, 0x3d86, - 0x9adc, 0x47fa, - 0x9ae2, 0x3d89, - 0x9ae3, 0x4800, - 0x9ae4, 0x3d8a, - 0x9ae5, 0x4801, - 0x9ae8, 0x3d8b, - 0x9ae9, 0x43b0, - 0x9aea, 0x4804, - 0x9aee, 0x43b2, - 0x9aef, 0x4808, - 0x9af2, 0x3d8c, - 0x9af3, 0x480b, - 0x9af6, 0x3d8d, - 0x9af7, 0x480e, - 0x9afb, 0x3d8e, - 0x9afc, 0x4812, - 0x9b40, 0x4815, - 0x9b46, 0x3d8f, - 0x9b47, 0x481b, - 0x9b4a, 0x3d90, - 0x9b4b, 0x481e, - 0x9b54, 0x3d92, - 0x9b55, 0x4827, - 0x9b58, 0x3d93, - 0x9b59, 0x482a, - 0x9b5a, 0x3d94, - 0x9b5b, 0x482b, - 0x9b5c, 0x3d95, - 0x9b5d, 0x482c, - 0x9b5e, 0x3d96, - 0x9b60, 0x482d, - 0x9b62, 0x482e, - 0x9b70, 0x3d98, - 0x9b74, 0x483c, - 0x9b77, 0x3d9d, - 0x9b79, 0x483e, - 0x9b7c, 0x3da0, - 0x9b7d, 0x4840, - 0x9b7e, 0x3da1, - 0x9ba1, 0x3da2, - 0x9ba2, 0x4841, - 0x9ba3, 0x3da3, - 0x9ba5, 0x4842, - 0x9ba7, 0x3da5, - 0x9bab, 0x4844, - 0x9bac, 0x3da9, - 0x9bad, 0x4845, - 0x9baf, 0x3daa, - 0x9bb0, 0x4847, - 0x9bb2, 0x3dab, - 0x9bba, 0x4849, - 0x9bbe, 0x3db3, - 0x9bbf, 0x484d, - 0x9bc0, 0x3db4, - 0x9bc7, 0x484e, - 0x9bca, 0x3dbb, - 0x9bcb, 0x4851, - 0x9bcc, 0x3dbc, - 0x9bcd, 0x4852, - 0x9bce, 0x43d0, - 0x9bcf, 0x4853, - 0x9bd0, 0x3dbd, - 0x9bd2, 0x4854, - 0x9bd3, 0x3dbf, - 0x9bd4, 0x4855, - 0x9bd5, 0x3dc0, - 0x9bd6, 0x4856, - 0x9bd8, 0x3dc1, - 0x9bdb, 0x4858, - 0x9bdd, 0x3dc4, - 0x9bdf, 0x3dc5, - 0x9be0, 0x485a, - 0x9be1, 0x3dc6, - 0x9be2, 0x485b, - 0x9be3, 0x3dc7, - 0x9be4, 0x485c, - 0x9be7, 0x3dc8, - 0x9be8, 0x485f, - 0x9be9, 0x3dc9, - 0x9bed, 0x4860, - 0x9bee, 0x3dcd, - 0x9bf0, 0x4861, - 0x9bf3, 0x3dcf, - 0x9bf4, 0x4864, - 0x9bf7, 0x4866, - 0x9bf8, 0x3dd1, - 0x9bfa, 0x4867, - 0x9bfb, 0x3dd3, - 0x9bfd, 0x4868, - 0x9c40, 0x3dd5, - 0x9c43, 0x486a, - 0x9c44, 0x3dd8, - 0x9c47, 0x486b, - 0x9c48, 0x3ddb, - 0x9c49, 0x486c, - 0x9c4a, 0x3ddc, - 0x9c4b, 0x486d, - 0x9c4d, 0x3ddd, - 0x9c54, 0x486f, - 0x9c55, 0x3de4, - 0x9c56, 0x4870, - 0x9c57, 0x3de5, - 0x9c5c, 0x4871, - 0x9c5d, 0x3dea, - 0x9c5e, 0x4872, - 0x9c60, 0x3deb, - 0x9c61, 0x4874, - 0x9c63, 0x4875, - 0x9c64, 0x3ded, - 0x9c67, 0x4876, - 0x9c69, 0x4877, - 0x9c6a, 0x3df1, - 0x9c6c, 0x4878, - 0x9c6d, 0x3df2, - 0x9c6e, 0x4879, - 0x9c6f, 0x3df3, - 0x9c73, 0x487a, - 0x9c75, 0x3df7, - 0x9c78, 0x487c, - 0x9c79, 0x3dfa, - 0x9c7a, 0x487d, - 0x9c7b, 0x3dfb, - 0x9c7d, 0x487e, - 0x9c7e, 0x3dfd, - 0x9ca1, 0x3dfe, - 0x9ca3, 0x487f, - 0x9ca5, 0x3e00, - 0x9ca6, 0x4881, - 0x9ca8, 0x3e01, - 0x9caa, 0x4883, - 0x9cab, 0x3e03, - 0x9cac, 0x4884, - 0x9cad, 0x3e04, - 0x9caf, 0x4885, - 0x9cb1, 0x3e06, - 0x9cbb, 0x4887, - 0x9cbe, 0x3e12, - 0x9cc3, 0x4888, - 0x9cc6, 0x3e17, - 0x9cce, 0x488b, - 0x9ccf, 0x3e1f, - 0x9cd1, 0x3e21, - 0x9cd4, 0x488c, - 0x9cd8, 0x3e24, - 0x9cdb, 0x4890, - 0x9cdc, 0x3e27, - 0x9ce6, 0x4891, - 0x9ce7, 0x3e31, - 0x9cea, 0x4892, - 0x9ceb, 0x3e34, - 0x9ced, 0x4893, - 0x9cee, 0x3e36, - 0x9cfa, 0x4894, - 0x9cfd, 0x3e42, - 0x9cfe, 0x4897, - 0x9d40, 0x43e8, - 0x9d41, 0x4898, - 0x9d46, 0x3e43, - 0x9d47, 0x489d, - 0x9d49, 0x3e44, - 0x9d4a, 0x489f, - 0x9d4c, 0x3e46, - 0x9d4e, 0x48a1, - 0x9d4f, 0x3e48, - 0x9d50, 0x48a2, - 0x9d51, 0x3e49, - 0x9d52, 0x48a3, - 0x9d55, 0x3e4a, - 0x9d56, 0x48a6, - 0x9d58, 0x48a7, - 0x9d5b, 0x48a9, - 0x9d61, 0x43c9, - 0x9d62, 0x3e4c, - 0x9d63, 0x48af, - 0x9d64, 0x3e4d, - 0x9d65, 0x48b0, - 0x9d78, 0x43f5, - 0x9d79, 0x3e4e, - 0x9d7a, 0x48c3, - 0x9d7e, 0x3e4f, - 0x9da1, 0x48c7, - 0x9da5, 0x3e50, - 0x9da9, 0x48cb, - 0x9daa, 0x3e54, - 0x9dab, 0x48cc, - 0x9dac, 0x3e55, - 0x9dae, 0x48cd, - 0x9db0, 0x3e58, - 0x9db1, 0x48cf, - 0x9db3, 0x3e59, - 0x9db4, 0x48d1, - 0x9db5, 0x3e5a, - 0x9db6, 0x48d2, - 0x9db7, 0x3e5b, - 0x9db8, 0x48d3, - 0x9dbc, 0x3e5c, - 0x9dbe, 0x48d7, - 0x9dbf, 0x3e5e, - 0x9dc1, 0x48d8, - 0x9dc3, 0x3e60, - 0x9dc5, 0x48da, - 0x9dc7, 0x3e62, - 0x9dc9, 0x48dc, - 0x9dca, 0x3e64, - 0x9dcb, 0x48dd, - 0x9dcd, 0x3e65, - 0x9dd2, 0x48df, - 0x9dd3, 0x3e6a, - 0x9dd6, 0x48e0, - 0x9dda, 0x3e6d, - 0x9dfc, 0x48e4, - 0x9dfd, 0x3e8f, - 0x9e40, 0x3e91, - 0x9e43, 0x48e5, - 0x9e44, 0x3e95, - 0x9e5f, 0x48e6, - 0x9e60, 0x3eb1, - 0x9e63, 0x48e7, - 0x9e64, 0x3eb4, - 0x9e66, 0x48e8, - 0x9e68, 0x3eb6, - 0x9e69, 0x48ea, - 0x9e6a, 0x3eb7, - 0x9e6b, 0x48eb, - 0x9e71, 0x3eb8, - 0x9e72, 0x48f1, - 0x9e73, 0x3eb9, - 0x9e74, 0x48f2, - 0x9e77, 0x3eba, - 0x9e79, 0x48f5, - 0x9e7a, 0x3ebc, - 0x9e7b, 0x48f6, - 0x9e7c, 0x3ebd, - 0x9e7d, 0x48f7, - 0x9e7e, 0x3ebe, - 0x9ea1, 0x3ebf, - 0x9ea3, 0x48f8, - 0x9ea4, 0x3ec1, - 0x9ea7, 0x48f9, - 0x9eaa, 0x3ec5, - 0x9eab, 0x48fb, - 0x9ead, 0x3ec7, - 0x9eae, 0x48fc, - 0x9eaf, 0x3ec8, - 0x9eb2, 0x48fd, - 0x9eb4, 0x3ecb, - 0x9eb5, 0x48ff, - 0x9eb6, 0x3ecc, - 0x9eb8, 0x4900, - 0x9eb9, 0x3ece, - 0x9eba, 0x4901, - 0x9ebc, 0x3ecf, - 0x9ebd, 0x4903, - 0x9ebf, 0x3ed0, - 0x9ec1, 0x4905, - 0x9ec5, 0x3ed3, - 0x9ec6, 0x4908, - 0x9ec7, 0x3ed4, - 0x9ecb, 0x4909, - 0x9ecd, 0x3ed9, - 0x9ece, 0x490b, - 0x9ed0, 0x3eda, - 0x9ed2, 0x490d, - 0x9ed3, 0x3edc, - 0x9ed4, 0x490e, - 0x9ed6, 0x3edd, - 0x9ed8, 0x4910, - 0x9eda, 0x3edf, - 0x9ef0, 0x3ef5, - 0x9ef2, 0x4912, - 0x9ef3, 0x3ef7, - 0x9ef5, 0x3ef9, - 0x9ef6, 0x4913, - 0x9ef9, 0x3efa, - 0x9efb, 0x4916, - 0x9efc, 0x3efc, - 0x9efe, 0x3efe, - 0x9f40, 0x3eff, - 0x9f43, 0x4917, - 0x9f44, 0x3f02, - 0x9f48, 0x4918, - 0x9f49, 0x3f06, - 0x9f4b, 0x4919, - 0x9f4d, 0x3f08, - 0x9f4f, 0x3f0a, - 0x9f61, 0x3f1c, - 0x9f67, 0x491b, - 0x9f69, 0x3f23, - 0x9f70, 0x491d, - 0x9f71, 0x3f2a, - 0x9fa1, 0x3f38, - 0x9fae, 0x3f45, - 0x9fb2, 0x3f49, - 0x9fb5, 0x491e, - 0x9fb6, 0x3f4c, - 0x9fbb, 0x491f, - 0x9fbc, 0x3f51, - 0x9fbf, 0x4920, - 0x9fc1, 0x4921, - 0x9fc2, 0x3f55, - 0x9fc9, 0x3f5c, - 0x9fcc, 0x4922, - 0x9fcd, 0x3f60, - 0x9fd4, 0x4923, - 0x9fd5, 0x3f68, - 0x9fd9, 0x3f6c, - 0x9fdb, 0x3f6e, - 0x9fe4, 0x4924, - 0x9fe5, 0x3f77, - 0x9fe7, 0x3f79, - 0x9feb, 0x3f7d, - 0x9ff0, 0x3f82, - 0x9ff9, 0x4925, - 0x9ffa, 0x3f8b, - 0xa040, 0x4926, - 0xa041, 0x3f90, - 0xa047, 0x4927, - 0xa048, 0x3f96, - 0xa055, 0x4928, - 0xa056, 0x3fa3, - 0xa058, 0x3fa5, - 0xa05b, 0x3fa8, - 0xa064, 0x3fb1, - 0xa06d, 0x4929, - 0xa06e, 0x3fba, - 0xa073, 0x3fbf, - 0xa078, 0x3fc4, - 0xa07b, 0x492a, - 0xa07c, 0x3fc7, - 0xa0a1, 0x3fca, - 0xa0a2, 0x492b, - 0xa0a3, 0x3fcb, - 0xa0a6, 0x3fce, - 0xa0a7, 0x492c, - 0xa0a8, 0x3fcf, - 0xa0ae, 0x3fd5, - 0xa0b0, 0x3fd7, - 0xa0c5, 0x492d, - 0xa0c6, 0x3fec, - 0xa0d0, 0x492e, - 0xa0d1, 0x3ff6, - 0xa0d4, 0x3ff9, - 0xa0d6, 0x3ffb, - 0xa0e0, 0x4005, - 0xa0e2, 0x4007, - 0xa0e3, 0x492f, - 0xa0e5, 0x4009, - 0xa0e7, 0x4930, - 0xa0ee, 0x43b4, - 0xa0ef, 0x4937, - 0xa0f2, 0x43b8, - 0xa0f3, 0x493a, - 0xa140, 0x0063, - 0xa159, 0x35af, - 0xa15d, 0x0080, - 0xa1a1, 0x00a2, - 0xa1f6, 0x00f8, - 0xa1f7, 0x00f7, - 0xa1f8, 0x00f9, - 0xa240, 0x0100, - 0xa2a1, 0x013f, - 0xa340, 0x019d, - 0xa3a1, 0x01dc, - 0xa3bd, 0x01f7, - 0xa440, 0x0253, - 0xa4a1, 0x0292, - 0xa540, 0x02f0, - 0xa5a1, 0x032f, - 0xa640, 0x038d, - 0xa6a1, 0x03cc, - 0xa740, 0x042a, - 0xa7a1, 0x0469, - 0xa840, 0x04c7, - 0xa8a1, 0x0506, - 0xa940, 0x0564, - 0xa9a1, 0x05a3, - 0xaa40, 0x0601, - 0xaaa1, 0x0640, - 0xab40, 0x069e, - 0xaba1, 0x06dd, - 0xac40, 0x073b, - 0xaca1, 0x077a, - 0xacfe, 0x097f, - 0xad40, 0x07d7, - 0xada1, 0x0816, - 0xae40, 0x0874, - 0xaea1, 0x08b3, - 0xaf40, 0x0911, - 0xafa1, 0x0950, - 0xafd0, 0x0980, - 0xb040, 0x09af, - 0xb0a1, 0x09ee, - 0xb140, 0x0a4c, - 0xb1a1, 0x0a8b, - 0xb240, 0x0ae9, - 0xb2a1, 0x0b28, - 0xb340, 0x0b86, - 0xb3a1, 0x0bc5, - 0xb440, 0x0c23, - 0xb4a1, 0x0c62, - 0xb540, 0x0cc0, - 0xb5a1, 0x0cff, - 0xb640, 0x0d5d, - 0xb6a1, 0x0d9c, - 0xb740, 0x0dfa, - 0xb7a1, 0x0e39, - 0xb840, 0x0e97, - 0xb8a1, 0x0ed6, - 0xb940, 0x0f34, - 0xb9a1, 0x0f73, - 0xba40, 0x0fd1, - 0xbaa1, 0x1010, - 0xbb40, 0x106e, - 0xbba1, 0x10ad, - 0xbbc8, 0x10d5, - 0xbc40, 0x110c, - 0xbca1, 0x114b, - 0xbd40, 0x11a9, - 0xbda1, 0x11e8, - 0xbe40, 0x1246, - 0xbe52, 0x10d4, - 0xbe53, 0x1258, - 0xbea1, 0x1284, - 0xbf40, 0x12e2, - 0xbfa1, 0x1321, - 0xc040, 0x137f, - 0xc0a1, 0x13be, - 0xc140, 0x141c, - 0xc1a1, 0x145b, - 0xc1ab, 0x1466, - 0xc240, 0x14ba, - 0xc2a1, 0x14f9, - 0xc2cb, 0x1465, - 0xc2cc, 0x1523, - 0xc340, 0x1556, - 0xc361, 0x1578, - 0xc3a1, 0x1596, - 0xc3b9, 0x15af, - 0xc3ba, 0x15ae, - 0xc3bb, 0x15b0, - 0xc440, 0x15f4, - 0xc456, 0x1577, - 0xc457, 0x160a, - 0xc4a1, 0x1632, - 0xc540, 0x1690, - 0xc5a1, 0x16cf, - 0xc640, 0x172d, - 0xc6a1, 0x01fa, - 0xc6bf, 0x0219, - 0xc6d0, 0x022a, - 0xc6d4, 0x022e, - 0xc6d6, 0x0230, - 0xc6d8, 0x35b3, - 0xc6e0, 0x35ba, - 0xc740, 0x35d9, - 0xc7a1, 0x3618, - 0xc840, 0x3676, - 0xc8a1, 0x36b5, - 0xc8cd, 0x36e1, - 0xc8d4, 0x44c6, - 0xc8d7, 0x451c, - 0xc8e0, 0x02dc, - 0xc8e1, 0x4525, - 0xc8e9, 0x0509, - 0xc8ea, 0x452d, - 0xc8f1, 0x09f6, - 0xc8f5, 0x4992, - 0xc940, 0x176c, - 0xc94a, 0x0274, - 0xc94b, 0x1776, - 0xc96c, 0x1798, - 0xc9a1, 0x17ab, - 0xc9be, 0x1797, - 0xc9bf, 0x17c8, - 0xc9ed, 0x17f7, - 0xca40, 0x1809, - 0xcaa1, 0x1848, - 0xcaf7, 0x17f6, - 0xcaf8, 0x189e, - 0xcb40, 0x18a5, - 0xcba1, 0x18e4, - 0xcc40, 0x1942, - 0xcca1, 0x1981, - 0xcd40, 0x19df, - 0xcda1, 0x1a1e, - 0xce40, 0x1a7c, - 0xcea1, 0x1abb, - 0xcf40, 0x1b19, - 0xcfa1, 0x1b58, - 0xd040, 0x1bb6, - 0xd0a1, 0x1bf5, - 0xd140, 0x1c53, - 0xd1a1, 0x1c92, - 0xd240, 0x1cf0, - 0xd2a1, 0x1d2f, - 0xd340, 0x1d8d, - 0xd3a1, 0x1dcc, - 0xd440, 0x1e2a, - 0xd4a1, 0x1e69, - 0xd540, 0x1ec7, - 0xd5a1, 0x1f06, - 0xd640, 0x1f64, - 0xd6a1, 0x1fa3, - 0xd6cc, 0x2254, - 0xd6cd, 0x1fcf, - 0xd740, 0x2001, - 0xd77a, 0x22b9, - 0xd77b, 0x203b, - 0xd7a1, 0x203f, - 0xd840, 0x209d, - 0xd8a1, 0x20dc, - 0xd940, 0x213a, - 0xd9a1, 0x2179, - 0xda40, 0x21d7, - 0xdaa1, 0x2216, - 0xdadf, 0x1fce, - 0xdae0, 0x2255, - 0xdb40, 0x2274, - 0xdba1, 0x22b3, - 0xdba7, 0x22ba, - 0xdc40, 0x2312, - 0xdca1, 0x2351, - 0xdd40, 0x23af, - 0xdda1, 0x23ee, - 0xddfc, 0x2381, - 0xddfd, 0x2449, - 0xde40, 0x244b, - 0xdea1, 0x248a, - 0xdf40, 0x24e8, - 0xdfa1, 0x2527, - 0xe040, 0x2585, - 0xe0a1, 0x25c4, - 0xe140, 0x2622, - 0xe1a1, 0x2661, - 0xe240, 0x26bf, - 0xe2a1, 0x26fe, - 0xe340, 0x275c, - 0xe3a1, 0x279b, - 0xe440, 0x27f9, - 0xe4a1, 0x2838, - 0xe540, 0x2896, - 0xe5a1, 0x28d5, - 0xe640, 0x2933, - 0xe6a1, 0x2972, - 0xe740, 0x29d0, - 0xe7a1, 0x2a0f, - 0xe840, 0x2a6d, - 0xe8a1, 0x2aac, - 0xe8a3, 0x2aaf, - 0xe940, 0x2b0b, - 0xe976, 0x2b42, - 0xe9a1, 0x2b4b, - 0xea40, 0x2ba9, - 0xeaa1, 0x2be8, - 0xeb40, 0x2c46, - 0xeb5b, 0x2c62, - 0xeba1, 0x2c86, - 0xebf1, 0x2aae, - 0xebf2, 0x2cd6, - 0xec40, 0x2ce3, - 0xeca1, 0x2d22, - 0xecde, 0x2b41, - 0xecdf, 0x2d5f, - 0xed40, 0x2d7f, - 0xeda1, 0x2dbe, - 0xedaa, 0x2dc8, - 0xee40, 0x2e1d, - 0xeea1, 0x2e5c, - 0xeeeb, 0x3014, - 0xeeec, 0x2ea6, - 0xef40, 0x2eb9, - 0xefa1, 0x2ef8, - 0xf040, 0x2f56, - 0xf056, 0x2dc7, - 0xf057, 0x2f6c, - 0xf0a1, 0x2f94, - 0xf0cb, 0x2c61, - 0xf0cc, 0x2fbe, - 0xf140, 0x2ff1, - 0xf163, 0x3015, - 0xf16b, 0x3160, - 0xf16c, 0x301d, - 0xf1a1, 0x3030, - 0xf240, 0x308e, - 0xf268, 0x31ef, - 0xf269, 0x30b6, - 0xf2a1, 0x30cc, - 0xf2c3, 0x30ef, - 0xf340, 0x312b, - 0xf375, 0x3161, - 0xf3a1, 0x316b, - 0xf440, 0x31c9, - 0xf466, 0x31f0, - 0xf4a1, 0x3209, - 0xf4b5, 0x30ee, - 0xf4b6, 0x321d, - 0xf4fd, 0x3265, - 0xf540, 0x3267, - 0xf5a1, 0x32a6, - 0xf640, 0x3304, - 0xf663, 0x3264, - 0xf664, 0x3327, - 0xf6a1, 0x3342, - 0xf740, 0x33a0, - 0xf7a1, 0x33df, - 0xf840, 0x343d, - 0xf8a1, 0x347c, - 0xf940, 0x34da, - 0xf977, 0x3512, - 0xf9a1, 0x351a, - 0xf9c4, 0x3511, - 0xf9c5, 0x353d, - 0xf9c6, 0x3549, - 0xf9c7, 0x353e, - 0xf9d2, 0x354a, - 0xf9d6, 0x36e8, - 0xfa40, 0x400b, - 0xfa60, 0x402b, - 0xfa67, 0x4032, - 0xfaa1, 0x404a, - 0xfaa9, 0x4946, - 0xfaab, 0x4054, - 0xfabe, 0x4067, - 0xfac6, 0x406f, - 0xfad6, 0x407f, - 0xfb40, 0x40a8, - 0xfb49, 0x40b1, - 0xfb53, 0x4948, - 0xfb54, 0x40bc, - 0xfb6e, 0x4949, - 0xfb6f, 0x40d7, - 0xfba1, 0x40e7, - 0xfba3, 0x494a, - 0xfba4, 0x40ea, - 0xfbb9, 0x40ff, - 0xfbbf, 0x494b, - 0xfbc0, 0x4105, - 0xfbcd, 0x494c, - 0xfbce, 0x4112, - 0xfbf4, 0x4138, - 0xfbfa, 0x413e, - 0xfc40, 0x4143, - 0xfc4a, 0x494d, - 0xfc4b, 0x414d, - 0xfc50, 0x4151, - 0xfc52, 0x494e, - 0xfc53, 0x4153, - 0xfc63, 0x494f, - 0xfc64, 0x4163, - 0xfc6d, 0x4950, - 0xfc6e, 0x416d, - 0xfc75, 0x4951, - 0xfc76, 0x4174, - 0xfca1, 0x417d, - 0xfcba, 0x4195, - 0xfcbc, 0x4952, - 0xfcbe, 0x4198, - 0xfccc, 0x4954, - 0xfccd, 0x41a7, - 0xfce3, 0x4955, - 0xfce4, 0x41bd, - 0xfcee, 0x4956, - 0xfcef, 0x41c7, - 0xfcf2, 0x41ca, - 0xfd40, 0x41d7, - 0xfd49, 0x4957, - 0xfd4a, 0x41e0, - 0xfd6a, 0x4958, - 0xfd6b, 0x4201, - 0xfda1, 0x4215, - 0xfdb9, 0x422d, - 0xfdbc, 0x4230, - 0xfde3, 0x4959, - 0xfde4, 0x4258, - 0xfdf2, 0x495a, - 0xfdf3, 0x4266, - 0xfe40, 0x4272, - 0xfe53, 0x4285, - 0xfe6d, 0x495b, - 0xfe6e, 0x429f, - 0xfe70, 0x42a1, - 0xfe78, 0x495c, - 0xfe79, 0x42a9, - 0xfea1, 0x42af, - 0xfeab, 0x42b8, - 0xfede, 0x495d, - 0xfee0, 0x42eb, - 0xfeed, 0x495f, - 0xfeef, 0x42f8, - 0xa14b, 0x354e, - 0xa15a, 0x35af, - 0xa15c, 0x35b1, - 0xa15d, 0x0082, - 0xa161, 0x0086, - 0xa165, 0x008a, - 0xa169, 0x008e, - 0xa16d, 0x0092, - 0xa171, 0x0096, - 0xa175, 0x009a, - 0xa179, 0x009e, - 0xa1e3, 0x354f, - 0xc6e4, 0x3711, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 cns13HKscsB5VEnc16 = { - 1, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, - 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, - 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, - 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, - 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, - 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, - 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, - 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, - 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, - 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - cns13HKscsB5VMap2, 1142 -}; - -static Gushort cns13UniCNSUCS2HMap2[30910] = { - 0x0000, 0x0000, - 0x0020, 0x0001, - 0x00a2, 0x0106, - 0x00a5, 0x0104, - 0x00a7, 0x00b2, - 0x00a8, 0x35b3, - 0x00ac, 0x36e1, - 0x00b0, 0x0118, - 0x00b1, 0x00d4, - 0x00b7, 0x0073, - 0x00c0, 0x4964, - 0x00c1, 0x4962, - 0x00c8, 0x4968, - 0x00c9, 0x4966, - 0x00ca, 0x4971, - 0x00d2, 0x496c, - 0x00d3, 0x496a, - 0x00d7, 0x00d2, - 0x00e0, 0x4975, - 0x00e1, 0x4973, - 0x00e8, 0x497a, - 0x00e9, 0x4978, - 0x00ea, 0x4990, - 0x00ec, 0x497e, - 0x00ed, 0x497c, - 0x00f2, 0x4982, - 0x00f3, 0x4980, - 0x00f7, 0x00d3, - 0x00f8, 0x4998, - 0x00f9, 0x4986, - 0x00fa, 0x4984, - 0x00fc, 0x498b, - 0x0100, 0x4961, - 0x0101, 0x4972, - 0x0112, 0x4965, - 0x0113, 0x4977, - 0x011a, 0x4967, - 0x011b, 0x4979, - 0x012b, 0x497b, - 0x014b, 0x4999, - 0x014c, 0x4969, - 0x014d, 0x497f, - 0x0153, 0x4997, - 0x016b, 0x4983, - 0x01cd, 0x4963, - 0x01ce, 0x4974, - 0x01d0, 0x497d, - 0x01d1, 0x496b, - 0x01d2, 0x4981, - 0x01d4, 0x4985, - 0x01d6, 0x4987, - 0x01d8, 0x4988, - 0x01da, 0x4989, - 0x01dc, 0x498a, - 0x0250, 0x4993, - 0x0251, 0x4976, - 0x0254, 0x4995, - 0x025b, 0x4994, - 0x0261, 0x4991, - 0x026a, 0x499b, - 0x0275, 0x4996, - 0x0283, 0x4992, - 0x028a, 0x499a, - 0x02c6, 0x35b4, - 0x02c7, 0x01f8, - 0x02ca, 0x01f7, - 0x02cb, 0x01f9, - 0x02d9, 0x01f6, - 0x0308, 0x35b3, - 0x0391, 0x01a1, - 0x03a3, 0x01b2, - 0x03b1, 0x01b9, - 0x03c3, 0x01ca, - 0x0401, 0x3670, - 0x0410, 0x366a, - 0x0416, 0x3671, - 0x0436, 0x3692, - 0x0451, 0x3691, - 0x1ebe, 0x496e, - 0x1ebf, 0x498d, - 0x1ec0, 0x4970, - 0x1ec1, 0x498f, - 0x2013, 0x0079, - 0x2014, 0x007b, - 0x2018, 0x00a6, - 0x201c, 0x00a8, - 0x2022, 0x0068, - 0x2025, 0x006f, - 0x2026, 0x006e, - 0x2032, 0x00ad, - 0x2035, 0x00ac, - 0x203b, 0x00b1, - 0x203e, 0x00c3, - 0x20ac, 0x44c1, - 0x2103, 0x010a, - 0x2105, 0x00c2, - 0x2109, 0x010b, - 0x2116, 0x36e6, - 0x2121, 0x36e7, - 0x2160, 0x0157, - 0x2170, 0x020e, - 0x2190, 0x00f8, - 0x2191, 0x00f5, - 0x2192, 0x00f7, - 0x2193, 0x00f6, - 0x2196, 0x00f9, - 0x2198, 0x00fc, - 0x2199, 0x00fb, - 0x21b8, 0x36ad, - 0x21e7, 0x36ac, - 0x221a, 0x00d5, - 0x221e, 0x00dc, - 0x221f, 0x00e9, - 0x2220, 0x00e8, - 0x2223, 0x00fe, - 0x2225, 0x00fd, - 0x2229, 0x00e5, - 0x222b, 0x00ed, - 0x222e, 0x00ee, - 0x2234, 0x00f0, - 0x2235, 0x00ef, - 0x223c, 0x00e4, - 0x2252, 0x00dd, - 0x2260, 0x00db, - 0x2261, 0x00de, - 0x2266, 0x00d9, - 0x22a5, 0x00e7, - 0x22bf, 0x00ea, - 0x2400, 0x0232, - 0x2421, 0x0252, - 0x2460, 0x01fa, - 0x2474, 0x0204, - 0x2500, 0x0137, - 0x2502, 0x0138, - 0x250c, 0x013a, - 0x2510, 0x013b, - 0x2514, 0x013c, - 0x2518, 0x013d, - 0x251c, 0x0135, - 0x2524, 0x0134, - 0x252c, 0x0133, - 0x2534, 0x0132, - 0x253c, 0x0131, - 0x2550, 0x0142, - 0x2551, 0x370a, - 0x2552, 0x36f8, - 0x2553, 0x3701, - 0x2554, 0x36ef, - 0x2555, 0x36fa, - 0x2556, 0x3703, - 0x2557, 0x36f1, - 0x2558, 0x36fe, - 0x2559, 0x3707, - 0x255a, 0x36f5, - 0x255b, 0x3700, - 0x255c, 0x3709, - 0x255d, 0x36f7, - 0x255e, 0x0143, - 0x255f, 0x3704, - 0x2560, 0x36f2, - 0x2561, 0x0145, - 0x2562, 0x3706, - 0x2563, 0x36f4, - 0x2564, 0x36f9, - 0x2565, 0x3702, - 0x2566, 0x36f0, - 0x2567, 0x36ff, - 0x2568, 0x3708, - 0x2569, 0x36f6, - 0x256a, 0x0144, - 0x256b, 0x3705, - 0x256c, 0x36f3, - 0x256d, 0x013e, - 0x256f, 0x0141, - 0x2570, 0x0140, - 0x2571, 0x014a, - 0x2581, 0x0122, - 0x2589, 0x0130, - 0x258a, 0x012f, - 0x258b, 0x012e, - 0x258c, 0x012d, - 0x258d, 0x012c, - 0x258e, 0x012b, - 0x258f, 0x012a, - 0x2593, 0x3710, - 0x2594, 0x0136, - 0x2595, 0x0139, - 0x25a0, 0x00be, - 0x25a1, 0x00bd, - 0x25b2, 0x00b7, - 0x25b3, 0x00b6, - 0x25bc, 0x00c0, - 0x25bd, 0x00bf, - 0x25c6, 0x00bc, - 0x25c7, 0x00bb, - 0x25cb, 0x00b4, - 0x25ce, 0x00b8, - 0x25cf, 0x00b5, - 0x25e2, 0x0146, - 0x25e4, 0x0149, - 0x25e5, 0x0148, - 0x2605, 0x00ba, - 0x2606, 0x00b9, - 0x2609, 0x00f4, - 0x2640, 0x00f1, - 0x2641, 0x00f3, - 0x2642, 0x00f2, - 0x273d, 0x35c0, - 0x2e80, 0x44c8, - 0x2e84, 0x451c, - 0x2e86, 0x451d, - 0x2e8a, 0x4520, - 0x2e8c, 0x4521, - 0x2e95, 0x4523, - 0x2e9c, 0x4524, - 0x2e9d, 0x02dc, - 0x2ea5, 0x4525, - 0x2ea7, 0x4526, - 0x2eaa, 0x4527, - 0x2eac, 0x4528, - 0x2eae, 0x4529, - 0x2eb6, 0x452a, - 0x2ebc, 0x452b, - 0x2ebe, 0x452c, - 0x2ec6, 0x0509, - 0x2eca, 0x452d, - 0x2ecc, 0x452e, - 0x2ecf, 0x4530, - 0x2ed6, 0x4531, - 0x2ede, 0x4533, - 0x2ee3, 0x09f6, - 0x2f33, 0x0227, - 0x3000, 0x0063, - 0x3001, 0x0065, - 0x3003, 0x00b3, - 0x3005, 0x35ba, - 0x3008, 0x0094, - 0x300a, 0x0090, - 0x300c, 0x0098, - 0x300e, 0x009c, - 0x3010, 0x008c, - 0x3012, 0x0105, - 0x3014, 0x0088, - 0x301d, 0x00aa, - 0x3021, 0x0161, - 0x3041, 0x35c1, - 0x309b, 0x44c6, - 0x309d, 0x35b7, - 0x30a1, 0x3614, - 0x30fc, 0x35bd, - 0x30fd, 0x35b5, - 0x3105, 0x01d1, - 0x3231, 0x36e5, - 0x32a3, 0x00c1, - 0x338e, 0x0115, - 0x339c, 0x0110, - 0x33a1, 0x0114, - 0x33c4, 0x0117, - 0x33ce, 0x0113, - 0x33d1, 0x00ec, - 0x33d2, 0x00eb, - 0x33d5, 0x010f, - 0x3435, 0x39bd, - 0x3440, 0x3c67, - 0x344c, 0x4593, - 0x3464, 0x3a85, - 0x3473, 0x3dc5, - 0x347a, 0x4033, - 0x347d, 0x4597, - 0x347e, 0x46a3, - 0x3493, 0x439e, - 0x3496, 0x37dc, - 0x34a5, 0x4598, - 0x34af, 0x3c7f, - 0x34bc, 0x4380, - 0x34c1, 0x44fb, - 0x34c8, 0x3d00, - 0x34df, 0x3ea4, - 0x34e4, 0x3e54, - 0x34fb, 0x3dca, - 0x3506, 0x4336, - 0x353e, 0x44e7, - 0x3551, 0x45a1, - 0x3553, 0x43a5, - 0x3561, 0x40d8, - 0x356d, 0x45a4, - 0x3570, 0x3b2f, - 0x3572, 0x45a5, - 0x3577, 0x3ecb, - 0x3578, 0x4379, - 0x3584, 0x39fb, - 0x3597, 0x3b2d, - 0x3598, 0x45b0, - 0x35a1, 0x40e2, - 0x35a5, 0x45b1, - 0x35ad, 0x3efc, - 0x35bf, 0x45b2, - 0x35c1, 0x4580, - 0x35c5, 0x45b4, - 0x35c7, 0x459f, - 0x35ca, 0x3e43, - 0x35ce, 0x3e81, - 0x35d2, 0x3fc9, - 0x35d6, 0x3fb5, - 0x35db, 0x470d, - 0x35dd, 0x43ac, - 0x35f1, 0x4696, - 0x35f2, 0x4627, - 0x35f3, 0x3f6c, - 0x35fb, 0x45c8, - 0x35fe, 0x3f6a, - 0x3609, 0x45f5, - 0x3618, 0x4871, - 0x361a, 0x461a, - 0x3623, 0x40c6, - 0x362d, 0x3e86, - 0x3635, 0x492e, - 0x3639, 0x4165, - 0x363e, 0x3a08, - 0x3647, 0x4806, - 0x3648, 0x3806, - 0x3649, 0x4013, - 0x364e, 0x4698, - 0x365f, 0x3df3, - 0x367a, 0x3ee3, - 0x3681, 0x45a6, - 0x369a, 0x3c71, - 0x36a5, 0x4902, - 0x36aa, 0x3b30, - 0x36ac, 0x4900, - 0x36b0, 0x3cdf, - 0x36b1, 0x40cd, - 0x36b5, 0x3bc2, - 0x36b9, 0x4887, - 0x36bc, 0x3cff, - 0x36c1, 0x37c5, - 0x36c3, 0x40e5, - 0x36c4, 0x3905, - 0x36c5, 0x4296, - 0x36c7, 0x3d3a, - 0x36c8, 0x4820, - 0x36d3, 0x3a38, - 0x36d4, 0x3bb3, - 0x36d6, 0x3d0c, - 0x36dd, 0x3a36, - 0x36e1, 0x397c, - 0x36e2, 0x3cdd, - 0x36e5, 0x4216, - 0x36e6, 0x40fc, - 0x36f5, 0x3a18, - 0x3701, 0x3a34, - 0x3703, 0x460f, - 0x3708, 0x40ff, - 0x370a, 0x3cd5, - 0x370d, 0x4238, - 0x371c, 0x3dfe, - 0x3722, 0x3979, - 0x3723, 0x3980, - 0x3725, 0x3849, - 0x372c, 0x3c8c, - 0x372d, 0x3d37, - 0x3730, 0x495c, - 0x3732, 0x4106, - 0x3733, 0x3997, - 0x373a, 0x3e56, - 0x3740, 0x4202, - 0x3743, 0x4036, - 0x3762, 0x3db6, - 0x376f, 0x47cb, - 0x3797, 0x45ed, - 0x37a0, 0x3a28, - 0x37b9, 0x43b7, - 0x37be, 0x393e, - 0x37f2, 0x3ba1, - 0x37f8, 0x42d2, - 0x37fb, 0x3ef5, - 0x380f, 0x462c, - 0x3819, 0x39af, - 0x3820, 0x462f, - 0x382d, 0x412e, - 0x3836, 0x4133, - 0x3838, 0x43bb, - 0x3863, 0x46c3, - 0x38a0, 0x4145, - 0x38c3, 0x3912, - 0x38cc, 0x4076, - 0x38d1, 0x3a95, - 0x38fa, 0x44eb, - 0x3908, 0x4632, - 0x3914, 0x43be, - 0x3927, 0x3c31, - 0x3932, 0x4182, - 0x393f, 0x4633, - 0x394d, 0x4634, - 0x3963, 0x4163, - 0x3980, 0x3874, - 0x3989, 0x4638, - 0x398a, 0x3ce8, - 0x3992, 0x4376, - 0x3999, 0x39ba, - 0x399b, 0x3db3, - 0x39a1, 0x3e19, - 0x39a4, 0x3e0f, - 0x39b8, 0x463b, - 0x39dc, 0x3ece, - 0x39e2, 0x46c8, - 0x39e5, 0x393b, - 0x39ec, 0x4310, - 0x39f8, 0x463e, - 0x39fb, 0x4345, - 0x39fe, 0x4368, - 0x3a01, 0x41e0, - 0x3a03, 0x4640, - 0x3a06, 0x4377, - 0x3a17, 0x4190, - 0x3a18, 0x438f, - 0x3a29, 0x3a5e, - 0x3a2a, 0x3edf, - 0x3a34, 0x4319, - 0x3a4b, 0x4644, - 0x3a52, 0x3ed3, - 0x3a57, 0x419e, - 0x3a5c, 0x3fc4, - 0x3a5e, 0x3b07, - 0x3a66, 0x419c, - 0x3a67, 0x4333, - 0x3a97, 0x4647, - 0x3aab, 0x4091, - 0x3abd, 0x4649, - 0x3ade, 0x414c, - 0x3ae0, 0x3a7a, - 0x3af0, 0x46b2, - 0x3af2, 0x464c, - 0x3afb, 0x3af2, - 0x3b0e, 0x38e8, - 0x3b19, 0x46c5, - 0x3b22, 0x464e, - 0x3b2b, 0x4956, - 0x3b39, 0x474b, - 0x3b42, 0x4650, - 0x3b58, 0x4652, - 0x3b60, 0x393a, - 0x3b71, 0x4656, - 0x3b72, 0x4655, - 0x3b7b, 0x4657, - 0x3b7c, 0x385a, - 0x3b80, 0x41e2, - 0x3b96, 0x3a9c, - 0x3b99, 0x3a98, - 0x3ba1, 0x41e9, - 0x3bbc, 0x43c8, - 0x3bbe, 0x3db1, - 0x3bc2, 0x4134, - 0x3bc4, 0x3aa0, - 0x3bd7, 0x3aac, - 0x3bdd, 0x465f, - 0x3bec, 0x4664, - 0x3bf2, 0x4666, - 0x3bf3, 0x41f3, - 0x3bf4, 0x3a6e, - 0x3c0d, 0x41f7, - 0x3c11, 0x3e40, - 0x3c15, 0x3998, - 0x3c54, 0x3e00, - 0x3ccb, 0x4670, - 0x3ccd, 0x3ce5, - 0x3cd1, 0x4003, - 0x3cd6, 0x3cf7, - 0x3cdc, 0x404e, - 0x3ceb, 0x4217, - 0x3cef, 0x4675, - 0x3d13, 0x3773, - 0x3d1d, 0x393c, - 0x3d32, 0x4957, - 0x3d3b, 0x4245, - 0x3d46, 0x4685, - 0x3d4c, 0x3ceb, - 0x3d4e, 0x4242, - 0x3d51, 0x38ea, - 0x3d5f, 0x4159, - 0x3d62, 0x3c5e, - 0x3d69, 0x3cea, - 0x3d6a, 0x4689, - 0x3d6f, 0x3cfc, - 0x3d75, 0x468a, - 0x3d7d, 0x3c2f, - 0x3d85, 0x494b, - 0x3d8a, 0x468d, - 0x3d8f, 0x3abd, - 0x3d91, 0x468f, - 0x3da5, 0x3d56, - 0x3dad, 0x4699, - 0x3db4, 0x40a6, - 0x3dbf, 0x37d0, - 0x3dc6, 0x48de, - 0x3dc7, 0x4164, - 0x3dcc, 0x3d6f, - 0x3dcd, 0x3af3, - 0x3dd3, 0x37e1, - 0x3ddb, 0x3fff, - 0x3de7, 0x3999, - 0x3de8, 0x425d, - 0x3deb, 0x3e5a, - 0x3df3, 0x46d4, - 0x3df7, 0x48ab, - 0x3dfc, 0x462b, - 0x3dfd, 0x3c14, - 0x3e06, 0x491d, - 0x3e40, 0x4169, - 0x3e43, 0x436d, - 0x3e48, 0x4595, - 0x3e55, 0x427f, - 0x3e74, 0x3ee2, - 0x3ea8, 0x4304, - 0x3ea9, 0x46ed, - 0x3eaa, 0x4075, - 0x3ead, 0x3b9d, - 0x3eb1, 0x3ad8, - 0x3eb8, 0x3a4b, - 0x3ebf, 0x3b0b, - 0x3ec2, 0x3bd8, - 0x3ec7, 0x3975, - 0x3eca, 0x46f1, - 0x3ecc, 0x3be2, - 0x3ed0, 0x3854, - 0x3ed1, 0x46f2, - 0x3ed6, 0x3cad, - 0x3ed7, 0x429f, - 0x3eda, 0x3d02, - 0x3ede, 0x39f2, - 0x3ee1, 0x3ca8, - 0x3ee2, 0x46f6, - 0x3ee7, 0x3bdc, - 0x3ee9, 0x3ca4, - 0x3eeb, 0x396a, - 0x3ef0, 0x46f7, - 0x3ef3, 0x3add, - 0x3ef4, 0x46f8, - 0x3efa, 0x46f9, - 0x3efc, 0x3be8, - 0x3eff, 0x3af5, - 0x3f00, 0x3c0d, - 0x3f04, 0x42c3, - 0x3f06, 0x3ad7, - 0x3f0e, 0x46fb, - 0x3f53, 0x46fc, - 0x3f58, 0x3ae9, - 0x3f59, 0x4089, - 0x3f63, 0x3ae6, - 0x3f7c, 0x4700, - 0x3f93, 0x45cd, - 0x3fc0, 0x43cf, - 0x3fd7, 0x43d1, - 0x3fdc, 0x4704, - 0x3fe5, 0x46df, - 0x3fed, 0x4335, - 0x3ff9, 0x45d7, - 0x3ffa, 0x4354, - 0x4004, 0x410e, - 0x401d, 0x4709, - 0x4039, 0x470b, - 0x4045, 0x470c, - 0x4053, 0x45b6, - 0x4057, 0x399d, - 0x4062, 0x3bcb, - 0x4065, 0x3fd3, - 0x406a, 0x470f, - 0x406f, 0x4710, - 0x40a8, 0x43d5, - 0x40bb, 0x45c0, - 0x40bf, 0x3eec, - 0x40c8, 0x3b0e, - 0x40d8, 0x41ab, - 0x40df, 0x3e17, - 0x40fa, 0x3ebe, - 0x4103, 0x43d7, - 0x4104, 0x425c, - 0x4109, 0x471c, - 0x410e, 0x3b1b, - 0x4132, 0x3b25, - 0x4167, 0x471f, - 0x416c, 0x38ae, - 0x416e, 0x3b23, - 0x417f, 0x3b82, - 0x4190, 0x46c0, - 0x41b2, 0x4720, - 0x41c4, 0x4723, - 0x41ca, 0x373f, - 0x41cf, 0x4726, - 0x41db, 0x37bf, - 0x41ef, 0x3743, - 0x41f9, 0x3b3e, - 0x4211, 0x3b41, - 0x4240, 0x37f1, - 0x4260, 0x472b, - 0x426a, 0x3b55, - 0x427a, 0x472c, - 0x428c, 0x472f, - 0x4294, 0x4731, - 0x42b5, 0x4010, - 0x42b9, 0x38a6, - 0x42bc, 0x3c8a, - 0x42f4, 0x3bb9, - 0x42fb, 0x3cee, - 0x42fc, 0x41e6, - 0x432b, 0x377d, - 0x436e, 0x46ca, - 0x4397, 0x473b, - 0x43ba, 0x435f, - 0x43c1, 0x4695, - 0x43d9, 0x433e, - 0x43df, 0x3e49, - 0x43ed, 0x4745, - 0x43f2, 0x3e48, - 0x4401, 0x474a, - 0x4402, 0x3b73, - 0x4413, 0x474f, - 0x4425, 0x4751, - 0x442d, 0x4752, - 0x447a, 0x37af, - 0x448f, 0x4758, - 0x449f, 0x3ae2, - 0x44a0, 0x37ed, - 0x44a2, 0x4079, - 0x44b0, 0x475c, - 0x44b7, 0x3fa1, - 0x44c0, 0x3c07, - 0x44c5, 0x4210, - 0x44ce, 0x3d23, - 0x44dd, 0x39dd, - 0x44df, 0x3d22, - 0x44e4, 0x37e2, - 0x44e9, 0x41cf, - 0x44ea, 0x3b71, - 0x44eb, 0x3cf2, - 0x44ec, 0x3eb4, - 0x44f4, 0x3992, - 0x4503, 0x469f, - 0x4504, 0x4763, - 0x4509, 0x3e50, - 0x450b, 0x37d4, - 0x4516, 0x37f9, - 0x451d, 0x3767, - 0x4527, 0x37f7, - 0x452e, 0x3cd3, - 0x4533, 0x3c51, - 0x453b, 0x476a, - 0x453d, 0x38c4, - 0x453f, 0x3e12, - 0x4543, 0x37f3, - 0x4551, 0x3ae4, - 0x4552, 0x40b3, - 0x4555, 0x423e, - 0x455c, 0x378b, - 0x4562, 0x4940, - 0x456a, 0x3804, - 0x4577, 0x476e, - 0x4585, 0x38c5, - 0x45e9, 0x3ee4, - 0x4606, 0x4773, - 0x460f, 0x3815, - 0x4615, 0x3843, - 0x4617, 0x4774, - 0x465b, 0x381d, - 0x467a, 0x39e9, - 0x4680, 0x3d01, - 0x46cf, 0x3ba0, - 0x46d0, 0x3dfa, - 0x46f5, 0x3b9f, - 0x4713, 0x3833, - 0x4718, 0x3dc7, - 0x474e, 0x3ebc, - 0x477c, 0x3dcd, - 0x4798, 0x4781, - 0x47a6, 0x40a3, - 0x47b6, 0x3eea, - 0x47d5, 0x431a, - 0x47ed, 0x4783, - 0x47f4, 0x432f, - 0x4800, 0x461e, - 0x480b, 0x4352, - 0x4837, 0x4787, - 0x485d, 0x410f, - 0x4871, 0x3d03, - 0x489b, 0x3bbd, - 0x48ad, 0x4791, - 0x48ae, 0x494d, - 0x48d0, 0x3da7, - 0x48dd, 0x4120, - 0x48ed, 0x4288, - 0x48f3, 0x3ec1, - 0x48fa, 0x3e44, - 0x4906, 0x3bc7, - 0x4911, 0x4584, - 0x491e, 0x4794, - 0x4925, 0x3c0f, - 0x492a, 0x46ae, - 0x492d, 0x46cd, - 0x4935, 0x3cc3, - 0x493c, 0x3bf8, - 0x493e, 0x3d06, - 0x4945, 0x47a3, - 0x4951, 0x47a4, - 0x4953, 0x42ad, - 0x4965, 0x3899, - 0x496a, 0x47a9, - 0x4972, 0x3a24, - 0x4989, 0x379b, - 0x49a1, 0x38b7, - 0x49a7, 0x47ae, - 0x49df, 0x38aa, - 0x49e5, 0x47b1, - 0x49e7, 0x4621, - 0x4a0f, 0x38c3, - 0x4a1d, 0x3bec, - 0x4a24, 0x47b2, - 0x4a35, 0x47b4, - 0x4a96, 0x3ce7, - 0x4ab4, 0x4361, - 0x4ab8, 0x3da8, - 0x4ad1, 0x38e3, - 0x4ae4, 0x47b7, - 0x4aff, 0x38f2, - 0x4b19, 0x47b9, - 0x4b2c, 0x461f, - 0x4b37, 0x41a9, - 0x4b6f, 0x3c16, - 0x4b70, 0x47c0, - 0x4b72, 0x38fc, - 0x4b7b, 0x3c8d, - 0x4b7e, 0x400a, - 0x4b8e, 0x39f7, - 0x4b90, 0x3c20, - 0x4b93, 0x3a8c, - 0x4b96, 0x3942, - 0x4b97, 0x3c24, - 0x4b9d, 0x47c2, - 0x4bbd, 0x3c23, - 0x4bbe, 0x3954, - 0x4bc0, 0x3ddc, - 0x4c04, 0x3fbb, - 0x4c07, 0x3fb7, - 0x4c0e, 0x390c, - 0x4c3b, 0x3f3c, - 0x4c3e, 0x457b, - 0x4c5b, 0x3ed9, - 0x4c6d, 0x47c9, - 0x4c7d, 0x3e66, - 0x4ca4, 0x48be, - 0x4cae, 0x3c42, - 0x4cb0, 0x3c45, - 0x4cb7, 0x3e21, - 0x4ccd, 0x4578, - 0x4ce1, 0x3ef3, - 0x4ced, 0x40ab, - 0x4d09, 0x3ed6, - 0x4d10, 0x4117, - 0x4d34, 0x3935, - 0x4d91, 0x43f5, - 0x4d9c, 0x48c4, - 0x4e00, 0x0253, - 0x4e01, 0x0255, - 0x4e03, 0x0256, - 0x4e04, 0x48fe, - 0x4e07, 0x1771, - 0x4e08, 0x0269, - 0x4e09, 0x0267, - 0x4e0a, 0x026a, - 0x4e0b, 0x0268, - 0x4e0c, 0x1772, - 0x4e0d, 0x0294, - 0x4e0e, 0x177a, - 0x4e0f, 0x1778, - 0x4e10, 0x0293, - 0x4e11, 0x0292, - 0x4e14, 0x02f2, - 0x4e15, 0x02f1, - 0x4e16, 0x02f0, - 0x4e18, 0x02f3, - 0x4e19, 0x02ef, - 0x4e1a, 0x48fd, - 0x4e1c, 0x48e0, - 0x4e1e, 0x036e, - 0x4e21, 0x3d6d, - 0x4e24, 0x458d, - 0x4e26, 0x0528, - 0x4e28, 0x0218, - 0x4e2a, 0x3f57, - 0x4e2b, 0x026b, - 0x4e2c, 0x44f3, - 0x4e2d, 0x0295, - 0x4e2e, 0x177b, - 0x4e30, 0x0296, - 0x4e31, 0x178e, - 0x4e32, 0x0415, - 0x4e33, 0x18f4, - 0x4e36, 0x0219, - 0x4e37, 0x4517, - 0x4e38, 0x026c, - 0x4e39, 0x0297, - 0x4e3b, 0x02f4, - 0x4e3c, 0x178f, - 0x4e3d, 0x4537, - 0x4e3f, 0x021a, - 0x4e41, 0x36af, - 0x4e42, 0x176c, - 0x4e43, 0x0257, - 0x4e45, 0x026e, - 0x4e47, 0x1773, - 0x4e48, 0x026f, - 0x4e49, 0x408e, - 0x4e4b, 0x0298, - 0x4e4d, 0x02f5, - 0x4e4e, 0x02f7, - 0x4e4f, 0x02f6, - 0x4e52, 0x0370, - 0x4e56, 0x0529, - 0x4e58, 0x0831, - 0x4e59, 0x0254, - 0x4e5a, 0x36b1, - 0x4e5b, 0x44e5, - 0x4e5c, 0x176d, - 0x4e5d, 0x0258, - 0x4e5e, 0x0271, - 0x4e5f, 0x0270, - 0x4e69, 0x0372, - 0x4e6a, 0x3de5, - 0x4e73, 0x052a, - 0x4e78, 0x3d8e, - 0x4e7e, 0x09fb, - 0x4e7f, 0x1e35, - 0x4e80, 0x458e, - 0x4e81, 0x43bc, - 0x4e82, 0x0dbe, - 0x4e83, 0x2361, - 0x4e85, 0x021b, - 0x4e86, 0x0259, - 0x4e87, 0x458f, - 0x4e88, 0x029a, - 0x4e89, 0x459c, - 0x4e8b, 0x052b, - 0x4e8c, 0x025a, - 0x4e8d, 0x1774, - 0x4e8e, 0x0272, - 0x4e91, 0x029b, - 0x4e92, 0x029d, - 0x4e93, 0x177c, - 0x4e94, 0x029e, - 0x4e95, 0x029c, - 0x4e98, 0x39c4, - 0x4e99, 0x0373, - 0x4e9a, 0x48d5, - 0x4e9b, 0x052c, - 0x4e9e, 0x052d, - 0x4e9f, 0x06a3, - 0x4ea0, 0x021c, - 0x4ea1, 0x0273, - 0x4ea2, 0x029f, - 0x4ea4, 0x0374, - 0x4ea5, 0x0376, - 0x4ea6, 0x0375, - 0x4ea8, 0x0416, - 0x4eab, 0x052e, - 0x4ead, 0x06a4, - 0x4eb3, 0x0832, - 0x4eb6, 0x2363, - 0x4eb7, 0x413c, - 0x4eb9, 0x3377, - 0x4eba, 0x025b, - 0x4ebb, 0x44e6, - 0x4ebc, 0x39b1, - 0x4ebf, 0x4590, - 0x4ec0, 0x02a1, - 0x4ec1, 0x02a0, - 0x4ec2, 0x177d, - 0x4ec3, 0x02a2, - 0x4ec4, 0x02a8, - 0x4ec6, 0x02a3, - 0x4ec8, 0x177f, - 0x4ec9, 0x177e, - 0x4eca, 0x02a6, - 0x4ecd, 0x02a5, - 0x4ece, 0x3f62, - 0x4ed4, 0x02fa, - 0x4ed8, 0x02f9, - 0x4ed9, 0x0300, - 0x4eda, 0x1795, - 0x4edc, 0x1791, - 0x4edd, 0x1794, - 0x4ede, 0x0301, - 0x4edf, 0x0311, - 0x4ee1, 0x1793, - 0x4ee3, 0x02fe, - 0x4ee5, 0x02f8, - 0x4ee8, 0x1790, - 0x4ee9, 0x1792, - 0x4eea, 0x48cb, - 0x4eeb, 0x4591, - 0x4eee, 0x3d76, - 0x4ef0, 0x0383, - 0x4ef1, 0x17ba, - 0x4ef2, 0x0380, - 0x4ef3, 0x0384, - 0x4ef4, 0x17c4, - 0x4ef5, 0x17b8, - 0x4ef6, 0x0381, - 0x4ef7, 0x17bc, - 0x4ef8, 0x39ad, - 0x4efb, 0x0382, - 0x4efd, 0x0385, - 0x4eff, 0x0377, - 0x4f00, 0x17bb, - 0x4f01, 0x0386, - 0x4f02, 0x17bf, - 0x4f03, 0x39c8, - 0x4f04, 0x17c3, - 0x4f05, 0x17c0, - 0x4f08, 0x17bd, - 0x4f09, 0x0378, - 0x4f0a, 0x037a, - 0x4f0b, 0x0387, - 0x4f0d, 0x037c, - 0x4f0e, 0x17b5, - 0x4f0f, 0x037f, - 0x4f10, 0x037d, - 0x4f12, 0x17c5, - 0x4f13, 0x17c2, - 0x4f14, 0x17b9, - 0x4f15, 0x037b, - 0x4f18, 0x17b6, - 0x4f19, 0x0379, - 0x4f1a, 0x453c, - 0x4f1d, 0x17be, - 0x4f22, 0x17c1, - 0x4f28, 0x453d, - 0x4f29, 0x39be, - 0x4f2c, 0x17b7, - 0x4f2d, 0x182f, - 0x4f2f, 0x042c, - 0x4f30, 0x041f, - 0x4f32, 0x393d, - 0x4f33, 0x1830, - 0x4f34, 0x041c, - 0x4f36, 0x042e, - 0x4f37, 0x4592, - 0x4f38, 0x0424, - 0x4f39, 0x3f65, - 0x4f3a, 0x0423, - 0x4f3b, 0x1824, - 0x4f3c, 0x0427, - 0x4f3d, 0x0422, - 0x4f3e, 0x1829, - 0x4f3f, 0x1831, - 0x4f41, 0x182d, - 0x4f42, 0x39cb, - 0x4f43, 0x0425, - 0x4f45, 0x3b8f, - 0x4f46, 0x0428, - 0x4f47, 0x0419, - 0x4f48, 0x0431, - 0x4f49, 0x1826, - 0x4f4b, 0x39b4, - 0x4f4c, 0x1900, - 0x4f4d, 0x0417, - 0x4f4e, 0x042d, - 0x4f4f, 0x0418, - 0x4f50, 0x0420, - 0x4f52, 0x182b, - 0x4f53, 0x1827, - 0x4f54, 0x0426, - 0x4f55, 0x041e, - 0x4f56, 0x1823, - 0x4f57, 0x041a, - 0x4f58, 0x182e, - 0x4f59, 0x042f, - 0x4f5a, 0x0432, - 0x4f5b, 0x041d, - 0x4f5c, 0x042a, - 0x4f5d, 0x0430, - 0x4f5e, 0x041b, - 0x4f5f, 0x182c, - 0x4f60, 0x042b, - 0x4f61, 0x1832, - 0x4f62, 0x1825, - 0x4f63, 0x0429, - 0x4f64, 0x1828, - 0x4f67, 0x182a, - 0x4f69, 0x053d, - 0x4f6a, 0x1902, - 0x4f6b, 0x190e, - 0x4f6c, 0x0535, - 0x4f6e, 0x190f, - 0x4f6f, 0x0530, - 0x4f70, 0x053a, - 0x4f72, 0x3c72, - 0x4f73, 0x0533, - 0x4f74, 0x18fc, - 0x4f75, 0x053b, - 0x4f76, 0x18fb, - 0x4f77, 0x18ff, - 0x4f78, 0x1906, - 0x4f79, 0x1904, - 0x4f7a, 0x0543, - 0x4f7b, 0x053e, - 0x4f7c, 0x18f6, - 0x4f7d, 0x18f8, - 0x4f7e, 0x0540, - 0x4f7f, 0x0534, - 0x4f80, 0x18f9, - 0x4f81, 0x1905, - 0x4f82, 0x190c, - 0x4f83, 0x0539, - 0x4f84, 0x18fe, - 0x4f85, 0x18f7, - 0x4f86, 0x0538, - 0x4f87, 0x18fa, - 0x4f88, 0x053c, - 0x4f89, 0x18fd, - 0x4f8a, 0x39b5, - 0x4f8b, 0x0537, - 0x4f8d, 0x0532, - 0x4f8f, 0x0541, - 0x4f90, 0x1907, - 0x4f91, 0x0542, - 0x4f92, 0x190b, - 0x4f94, 0x1909, - 0x4f95, 0x190d, - 0x4f96, 0x053f, - 0x4f97, 0x1901, - 0x4f98, 0x18f5, - 0x4f9a, 0x1903, - 0x4f9b, 0x0536, - 0x4f9c, 0x1908, - 0x4f9d, 0x0531, - 0x4f9e, 0x190a, - 0x4fa2, 0x39c7, - 0x4fa8, 0x453e, - 0x4fab, 0x4022, - 0x4fae, 0x06b4, - 0x4faf, 0x06a8, - 0x4fb0, 0x3d4a, - 0x4fb2, 0x1a5d, - 0x4fb3, 0x1a65, - 0x4fb5, 0x06a7, - 0x4fb6, 0x06af, - 0x4fb7, 0x06bb, - 0x4fb9, 0x1a6b, - 0x4fba, 0x1a69, - 0x4fbb, 0x1a64, - 0x4fbd, 0x4594, - 0x4fbf, 0x06a9, - 0x4fc0, 0x1a6a, - 0x4fc1, 0x1a60, - 0x4fc2, 0x06b7, - 0x4fc3, 0x06ae, - 0x4fc4, 0x06b6, - 0x4fc5, 0x1a5b, - 0x4fc7, 0x1a67, - 0x4fc8, 0x46e8, - 0x4fc9, 0x1a5e, - 0x4fca, 0x06b2, - 0x4fcb, 0x1a5f, - 0x4fcc, 0x39cf, - 0x4fcd, 0x1a5a, - 0x4fce, 0x06b9, - 0x4fcf, 0x06ac, - 0x4fd0, 0x06b5, - 0x4fd1, 0x06ab, - 0x4fd3, 0x1a5c, - 0x4fd4, 0x1a61, - 0x4fd6, 0x1a68, - 0x4fd7, 0x06b3, - 0x4fd8, 0x06b0, - 0x4fd9, 0x1a63, - 0x4fda, 0x06b8, - 0x4fdb, 0x1a66, - 0x4fdc, 0x1a62, - 0x4fdd, 0x06ad, - 0x4fde, 0x06ba, - 0x4fdf, 0x06b1, - 0x4fe0, 0x06aa, - 0x4fe1, 0x06a6, - 0x4fe4, 0x3c66, - 0x4fe5, 0x39d0, - 0x4fec, 0x1a6c, - 0x4fee, 0x084c, - 0x4fef, 0x0836, - 0x4ff1, 0x0846, - 0x4ff2, 0x3f28, - 0x4ff3, 0x084b, - 0x4ff4, 0x1c24, - 0x4ff5, 0x1c23, - 0x4ff6, 0x1c28, - 0x4ff8, 0x0839, - 0x4ff9, 0x37b3, - 0x4ffa, 0x0842, - 0x4ffd, 0x3f26, - 0x4ffe, 0x084f, - 0x5000, 0x0843, - 0x5003, 0x4596, - 0x5005, 0x1c1d, - 0x5006, 0x083c, - 0x5007, 0x1c1e, - 0x5008, 0x4024, - 0x5009, 0x0851, - 0x500b, 0x0848, - 0x500c, 0x0833, - 0x500e, 0x1c31, - 0x500f, 0x0a0c, - 0x5011, 0x0841, - 0x5012, 0x0840, - 0x5013, 0x1c1f, - 0x5014, 0x0844, - 0x5015, 0x1e45, - 0x5016, 0x083b, - 0x5017, 0x1c2a, - 0x5018, 0x084a, - 0x5019, 0x0849, - 0x501a, 0x083f, - 0x501b, 0x1c22, - 0x501c, 0x1c2b, - 0x501e, 0x1c1c, - 0x501f, 0x083e, - 0x5020, 0x1c2c, - 0x5021, 0x0847, - 0x5022, 0x1c20, - 0x5023, 0x0835, - 0x5025, 0x0838, - 0x5026, 0x0837, - 0x5027, 0x1c2d, - 0x5028, 0x0845, - 0x5029, 0x083a, - 0x502a, 0x084e, - 0x502b, 0x0850, - 0x502c, 0x1c27, - 0x502d, 0x084d, - 0x502e, 0x39cc, - 0x502f, 0x1c2f, - 0x5030, 0x1c21, - 0x5031, 0x1c30, - 0x5033, 0x1c25, - 0x5034, 0x3910, - 0x5035, 0x1c2e, - 0x5037, 0x1c26, - 0x503c, 0x083d, - 0x5040, 0x1e4d, - 0x5041, 0x1e41, - 0x5043, 0x0a00, - 0x5045, 0x1e46, - 0x5046, 0x1e4c, - 0x5047, 0x09ff, - 0x5048, 0x1e3f, - 0x5049, 0x0a03, - 0x504a, 0x1e43, - 0x504b, 0x1e3c, - 0x504c, 0x0a01, - 0x504d, 0x1e40, - 0x504e, 0x0a06, - 0x504f, 0x0a0b, - 0x5051, 0x1e51, - 0x5053, 0x1e3b, - 0x5055, 0x0a07, - 0x5056, 0x3f2c, - 0x5057, 0x1e50, - 0x5058, 0x39d1, - 0x505a, 0x0a02, - 0x505b, 0x1e42, - 0x505c, 0x09fe, - 0x505d, 0x1e3d, - 0x505e, 0x1e39, - 0x505f, 0x1e47, - 0x5060, 0x1e3a, - 0x5061, 0x1e38, - 0x5062, 0x1e44, - 0x5063, 0x1e4a, - 0x5065, 0x0a04, - 0x5066, 0x3dc9, - 0x5068, 0x20b8, - 0x5069, 0x1e48, - 0x506a, 0x1e37, - 0x506b, 0x1e49, - 0x506c, 0x39cd, - 0x506d, 0x0a0e, - 0x506e, 0x1e4e, - 0x506f, 0x0a0d, - 0x5070, 0x1e36, - 0x5072, 0x1e3e, - 0x5073, 0x1e4f, - 0x5074, 0x0a09, - 0x5075, 0x0a08, - 0x5076, 0x0a05, - 0x5077, 0x0a0a, - 0x507a, 0x09fc, - 0x507d, 0x09fd, - 0x5080, 0x0bec, - 0x5081, 0x39ce, - 0x5082, 0x20bb, - 0x5083, 0x20b4, - 0x5085, 0x0be9, - 0x5087, 0x20bc, - 0x5088, 0x439c, - 0x508b, 0x20b2, - 0x508c, 0x20b5, - 0x508d, 0x0be8, - 0x508e, 0x20b6, - 0x5090, 0x41ec, - 0x5091, 0x0beb, - 0x5092, 0x20ba, - 0x5094, 0x20b0, - 0x5095, 0x20af, - 0x5096, 0x0bed, - 0x5098, 0x0bee, - 0x5099, 0x0bea, - 0x509a, 0x0bef, - 0x509b, 0x20ae, - 0x509c, 0x20b9, - 0x509d, 0x20b7, - 0x509e, 0x20b1, - 0x50a2, 0x0be7, - 0x50a3, 0x20b3, - 0x50a6, 0x3f3f, - 0x50ac, 0x0dc5, - 0x50ad, 0x0dbf, - 0x50ae, 0x2367, - 0x50af, 0x0dc8, - 0x50b0, 0x236d, - 0x50b1, 0x2370, - 0x50b2, 0x0dc1, - 0x50b4, 0x236a, - 0x50b5, 0x0dc0, - 0x50b6, 0x2373, - 0x50b7, 0x0dc6, - 0x50b8, 0x2374, - 0x50ba, 0x236f, - 0x50bb, 0x0dc7, - 0x50bd, 0x2364, - 0x50be, 0x0dc4, - 0x50bf, 0x2365, - 0x50c1, 0x236e, - 0x50c2, 0x236c, - 0x50c4, 0x2368, - 0x50c5, 0x0dc3, - 0x50c6, 0x2366, - 0x50c7, 0x0dc9, - 0x50c8, 0x236b, - 0x50c9, 0x2372, - 0x50ca, 0x2369, - 0x50cb, 0x2371, - 0x50cd, 0x39c5, - 0x50ce, 0x0f88, - 0x50cf, 0x0f85, - 0x50d0, 0x38d1, - 0x50d1, 0x0f86, - 0x50d3, 0x261c, - 0x50d4, 0x2614, - 0x50d5, 0x0f84, - 0x50d6, 0x0f81, - 0x50d7, 0x2615, - 0x50d9, 0x3fce, - 0x50da, 0x0f83, - 0x50db, 0x2618, - 0x50dd, 0x261a, - 0x50de, 0x4031, - 0x50df, 0x3afd, - 0x50e0, 0x2621, - 0x50e1, 0x4171, - 0x50e3, 0x2620, - 0x50e4, 0x261b, - 0x50e5, 0x0f80, - 0x50e6, 0x2613, - 0x50e7, 0x0f7e, - 0x50e8, 0x2616, - 0x50e9, 0x0f89, - 0x50ea, 0x2619, - 0x50ec, 0x261d, - 0x50ed, 0x0f82, - 0x50ee, 0x0f7f, - 0x50ef, 0x261f, - 0x50f0, 0x261e, - 0x50f1, 0x0f87, - 0x50f3, 0x2617, - 0x50f4, 0x3ce9, - 0x50f5, 0x1105, - 0x50f6, 0x2883, - 0x50f8, 0x2880, - 0x50f9, 0x1106, - 0x50fb, 0x1104, - 0x50fc, 0x39d2, - 0x50fd, 0x2887, - 0x50fe, 0x2884, - 0x50ff, 0x287d, - 0x5100, 0x1103, - 0x5101, 0x4032, - 0x5102, 0x1107, - 0x5103, 0x287e, - 0x5104, 0x1102, - 0x5105, 0x110a, - 0x5106, 0x2881, - 0x5108, 0x1108, - 0x510a, 0x2888, - 0x510b, 0x2885, - 0x510d, 0x39c6, - 0x510e, 0x4034, - 0x5110, 0x128d, - 0x5111, 0x2b04, - 0x5112, 0x128a, - 0x5113, 0x2b01, - 0x5114, 0x128c, - 0x5115, 0x128e, - 0x5117, 0x2b02, - 0x5118, 0x128b, - 0x511a, 0x2b03, - 0x511c, 0x2b00, - 0x511f, 0x13b5, - 0x5120, 0x2d3e, - 0x5121, 0x13b6, - 0x5122, 0x2d3c, - 0x5124, 0x2d3d, - 0x5125, 0x2d3b, - 0x5126, 0x2d3a, - 0x5129, 0x2d3f, - 0x512a, 0x13b4, - 0x512b, 0x39ae, - 0x512d, 0x2f0f, - 0x5130, 0x287f, - 0x5131, 0x2f0e, - 0x5132, 0x13b7, - 0x5133, 0x1575, - 0x5134, 0x307a, - 0x5137, 0x1668, - 0x5139, 0x32c6, - 0x513a, 0x32c5, - 0x513b, 0x16bc, - 0x513c, 0x16bb, - 0x513d, 0x340e, - 0x513f, 0x025c, - 0x5140, 0x0274, - 0x5141, 0x02aa, - 0x5143, 0x02a9, - 0x5144, 0x0303, - 0x5145, 0x0302, - 0x5146, 0x038a, - 0x5147, 0x0389, - 0x5148, 0x038b, - 0x5149, 0x0388, - 0x514b, 0x0434, - 0x514c, 0x0433, - 0x514d, 0x0435, - 0x5152, 0x0545, - 0x5154, 0x0544, - 0x5155, 0x0546, - 0x5156, 0x439a, - 0x5157, 0x06bc, - 0x5159, 0x0119, - 0x515a, 0x1c32, - 0x515b, 0x011a, - 0x515c, 0x0a0f, - 0x515d, 0x011c, - 0x515e, 0x011b, - 0x515f, 0x20bd, - 0x5160, 0x403a, - 0x5161, 0x011d, - 0x5162, 0x0f8a, - 0x5163, 0x011e, - 0x5165, 0x025d, - 0x5167, 0x02ab, - 0x5168, 0x038c, - 0x5169, 0x0547, - 0x516a, 0x403c, - 0x516b, 0x025e, - 0x516c, 0x02ae, - 0x516d, 0x02ac, - 0x5171, 0x038d, - 0x5174, 0x453f, - 0x5175, 0x0436, - 0x5176, 0x0549, - 0x5177, 0x0548, - 0x5178, 0x054a, - 0x5179, 0x3ace, - 0x517c, 0x0852, - 0x5180, 0x128f, - 0x5182, 0x021d, - 0x5186, 0x439f, - 0x5187, 0x1779, - 0x5188, 0x36b6, - 0x5189, 0x0304, - 0x518d, 0x038e, - 0x518f, 0x1833, - 0x5191, 0x06be, - 0x5192, 0x06bd, - 0x5193, 0x1c34, - 0x5194, 0x1c33, - 0x5195, 0x0a10, - 0x5196, 0x021e, - 0x5197, 0x02af, - 0x5198, 0x1780, - 0x519a, 0x3ea3, - 0x519c, 0x4540, - 0x519e, 0x1910, - 0x51a0, 0x06bf, - 0x51a2, 0x0855, - 0x51a4, 0x0853, - 0x51a7, 0x3ea6, - 0x51a8, 0x39da, - 0x51aa, 0x1290, - 0x51ab, 0x021f, - 0x51ac, 0x0306, - 0x51b0, 0x038f, - 0x51b1, 0x17c6, - 0x51b2, 0x4048, - 0x51b3, 0x4051, - 0x51b4, 0x3d7c, - 0x51b5, 0x4012, - 0x51b6, 0x0437, - 0x51b8, 0x4049, - 0x51b9, 0x1834, - 0x51bc, 0x1911, - 0x51bd, 0x054b, - 0x51be, 0x1912, - 0x51c3, 0x39db, - 0x51c4, 0x1c36, - 0x51c6, 0x0858, - 0x51c7, 0x422a, - 0x51c8, 0x1c38, - 0x51c9, 0x404b, - 0x51ca, 0x1c35, - 0x51cb, 0x0859, - 0x51cc, 0x0857, - 0x51cd, 0x0856, - 0x51ce, 0x1c39, - 0x51cf, 0x404c, - 0x51d0, 0x1e52, - 0x51d1, 0x404d, - 0x51d2, 0x3dad, - 0x51d3, 0x404f, - 0x51d4, 0x20be, - 0x51d7, 0x2375, - 0x51d8, 0x2622, - 0x51db, 0x459a, - 0x51dc, 0x110b, - 0x51dd, 0x1291, - 0x51de, 0x2b05, - 0x51df, 0x424f, - 0x51e0, 0x025f, - 0x51e1, 0x026d, - 0x51e2, 0x4052, - 0x51e4, 0x4541, - 0x51ed, 0x4054, - 0x51f0, 0x0a11, - 0x51f1, 0x0bf1, - 0x51f3, 0x0f8b, - 0x51f4, 0x4178, - 0x51f5, 0x176e, - 0x51f6, 0x02b0, - 0x51f8, 0x0309, - 0x51f9, 0x0307, - 0x51fc, 0x459b, - 0x51fd, 0x054c, - 0x51fe, 0x3f0a, - 0x5200, 0x0260, - 0x5202, 0x36b3, - 0x5203, 0x0275, - 0x5205, 0x43a1, - 0x5206, 0x02b1, - 0x5209, 0x1797, - 0x520a, 0x030a, - 0x520b, 0x4059, - 0x520c, 0x1796, - 0x520e, 0x0393, - 0x5210, 0x17c8, - 0x5211, 0x0391, - 0x5213, 0x17c7, - 0x5216, 0x0394, - 0x5217, 0x0390, - 0x521c, 0x1835, - 0x521d, 0x068b, - 0x521e, 0x1836, - 0x521f, 0x3f60, - 0x5220, 0x4930, - 0x5221, 0x1837, - 0x5224, 0x043a, - 0x5225, 0x0439, - 0x5226, 0x405a, - 0x5227, 0x43a2, - 0x5228, 0x043d, - 0x5229, 0x043b, - 0x522e, 0x0552, - 0x5230, 0x0551, - 0x5231, 0x1917, - 0x5232, 0x1914, - 0x5234, 0x3efb, - 0x5235, 0x1913, - 0x5236, 0x0553, - 0x5237, 0x054f, - 0x5238, 0x054e, - 0x523a, 0x0550, - 0x523b, 0x054d, - 0x523c, 0x405b, - 0x5241, 0x0554, - 0x5243, 0x06c1, - 0x5244, 0x1a6d, - 0x5246, 0x1916, - 0x5247, 0x06c6, - 0x5249, 0x1a6e, - 0x524a, 0x06c2, - 0x524b, 0x06c5, - 0x524c, 0x06c4, - 0x524d, 0x06c3, - 0x524e, 0x06c0, - 0x5252, 0x1c3c, - 0x5254, 0x085c, - 0x5255, 0x1c3f, - 0x5256, 0x085a, - 0x5257, 0x405d, - 0x5259, 0x39e4, - 0x525a, 0x1c3b, - 0x525b, 0x085d, - 0x525c, 0x085b, - 0x525d, 0x085e, - 0x525e, 0x1c3d, - 0x5260, 0x3f29, - 0x5261, 0x1c3a, - 0x5262, 0x1c40, - 0x5268, 0x4619, - 0x5269, 0x0bf5, - 0x526a, 0x0a12, - 0x526b, 0x1e53, - 0x526c, 0x1e55, - 0x526d, 0x1e54, - 0x526e, 0x1e56, - 0x526f, 0x0a13, - 0x5272, 0x0bf2, - 0x5273, 0x3f43, - 0x5274, 0x0bf3, - 0x5277, 0x0dcb, - 0x5278, 0x2377, - 0x5279, 0x43a3, - 0x527a, 0x2376, - 0x527b, 0x2378, - 0x527d, 0x0dcc, - 0x527f, 0x0dca, - 0x5280, 0x2623, - 0x5282, 0x0f8d, - 0x5283, 0x0f8c, - 0x5284, 0x2776, - 0x5287, 0x110c, - 0x528a, 0x1110, - 0x528b, 0x2889, - 0x528d, 0x110f, - 0x528f, 0x3dbf, - 0x5290, 0x459d, - 0x5291, 0x1292, - 0x5293, 0x1293, - 0x5294, 0x405e, - 0x5296, 0x307c, - 0x5297, 0x32c8, - 0x5298, 0x32c7, - 0x5299, 0x340f, - 0x529a, 0x3f68, - 0x529b, 0x0262, - 0x529f, 0x030c, - 0x52a0, 0x030b, - 0x52a1, 0x4542, - 0x52a3, 0x0395, - 0x52a4, 0x39e5, - 0x52a6, 0x17c9, - 0x52a8, 0x4543, - 0x52a9, 0x043f, - 0x52ab, 0x043e, - 0x52ac, 0x0441, - 0x52ad, 0x1838, - 0x52b5, 0x405c, - 0x52b9, 0x405f, - 0x52bb, 0x0556, - 0x52bc, 0x1918, - 0x52be, 0x0555, - 0x52c0, 0x1a6f, - 0x52c1, 0x06ca, - 0x52c2, 0x1a70, - 0x52c3, 0x06c9, - 0x52c5, 0x4060, - 0x52c7, 0x06c7, - 0x52c9, 0x06c8, - 0x52cc, 0x3ee1, - 0x52cd, 0x1c41, - 0x52d0, 0x4109, - 0x52d1, 0x3f2a, - 0x52d2, 0x0a14, - 0x52d3, 0x1e58, - 0x52d5, 0x0a17, - 0x52d6, 0x1e57, - 0x52d7, 0x0acf, - 0x52d8, 0x0a16, - 0x52d9, 0x0a15, - 0x52db, 0x0bf8, - 0x52dd, 0x0bf7, - 0x52de, 0x0bf6, - 0x52df, 0x0dcd, - 0x52e0, 0x4063, - 0x52e1, 0x39e7, - 0x52e2, 0x0dd0, - 0x52e4, 0x0dcf, - 0x52e6, 0x0dce, - 0x52e9, 0x2625, - 0x52eb, 0x2626, - 0x52ef, 0x288c, - 0x52f0, 0x1111, - 0x52f1, 0x288b, - 0x52f3, 0x1294, - 0x52f4, 0x2d40, - 0x52f5, 0x13b8, - 0x52f7, 0x307d, - 0x52f8, 0x1609, - 0x52f9, 0x0220, - 0x52fa, 0x0276, - 0x52fb, 0x02b4, - 0x52fc, 0x1781, - 0x52fe, 0x02b5, - 0x5301, 0x3d79, - 0x5305, 0x030d, - 0x5308, 0x0396, - 0x5309, 0x183a, - 0x530a, 0x1919, - 0x530d, 0x06cb, - 0x530e, 0x1c42, - 0x530f, 0x0a19, - 0x5310, 0x0a18, - 0x5311, 0x20c0, - 0x5312, 0x20bf, - 0x5315, 0x0263, - 0x5316, 0x02b7, - 0x5317, 0x030f, - 0x5319, 0x0a1a, - 0x531a, 0x176f, - 0x531c, 0x1798, - 0x531d, 0x0310, - 0x531f, 0x17cb, - 0x5320, 0x0398, - 0x5321, 0x0397, - 0x5322, 0x17ca, - 0x5323, 0x0442, - 0x5327, 0x459e, - 0x532a, 0x085f, - 0x532c, 0x3f36, - 0x532d, 0x1e59, - 0x532f, 0x0dd2, - 0x5330, 0x2627, - 0x5331, 0x0f8e, - 0x5332, 0x3fd0, - 0x5333, 0x406d, - 0x5334, 0x2b06, - 0x5337, 0x31c7, - 0x5338, 0x0221, - 0x5339, 0x02b8, - 0x533b, 0x4544, - 0x533c, 0x191b, - 0x533d, 0x1a71, - 0x533e, 0x0a1d, - 0x533f, 0x0a1b, - 0x5341, 0x0264, - 0x5342, 0x4947, - 0x5343, 0x0277, - 0x5344, 0x016b, - 0x5345, 0x02bb, - 0x5347, 0x02ba, - 0x5348, 0x02b9, - 0x5349, 0x0313, - 0x534a, 0x0312, - 0x534c, 0x1799, - 0x534d, 0x17cc, - 0x534e, 0x4545, - 0x5351, 0x055a, - 0x5352, 0x0557, - 0x5353, 0x0559, - 0x5354, 0x0558, - 0x5357, 0x06cc, - 0x535a, 0x0bf9, - 0x535c, 0x0265, - 0x535d, 0x4501, - 0x535e, 0x02bc, - 0x535f, 0x43a7, - 0x5360, 0x0315, - 0x5361, 0x0314, - 0x5363, 0x183b, - 0x5364, 0x480a, - 0x5366, 0x055b, - 0x5367, 0x3ecd, - 0x5369, 0x0222, - 0x536c, 0x1782, - 0x536d, 0x407a, - 0x536e, 0x0317, - 0x536f, 0x0316, - 0x5370, 0x0399, - 0x5372, 0x183c, - 0x5373, 0x0443, - 0x5374, 0x407b, - 0x5375, 0x0444, - 0x5377, 0x055c, - 0x537b, 0x06cd, - 0x537c, 0x1a72, - 0x537d, 0x4901, - 0x537e, 0x407d, - 0x537f, 0x0860, - 0x5382, 0x1770, - 0x5384, 0x02bd, - 0x538a, 0x17cd, - 0x538e, 0x183d, - 0x5392, 0x191c, - 0x5393, 0x4082, - 0x5394, 0x191d, - 0x5396, 0x1a74, - 0x5397, 0x1a73, - 0x5398, 0x1a76, - 0x5399, 0x1a75, - 0x539a, 0x06ce, - 0x539c, 0x1e5a, - 0x539d, 0x0862, - 0x539e, 0x1c43, - 0x539f, 0x0861, - 0x53a0, 0x4084, - 0x53a2, 0x3e2b, - 0x53a4, 0x20c1, - 0x53a5, 0x0bfa, - 0x53a6, 0x413b, - 0x53a7, 0x20c2, - 0x53a8, 0x413e, - 0x53a9, 0x45a0, - 0x53aa, 0x3fc6, - 0x53ab, 0x4085, - 0x53ac, 0x2628, - 0x53ad, 0x0f8f, - 0x53ae, 0x4086, - 0x53b0, 0x45a2, - 0x53b2, 0x1112, - 0x53b4, 0x307e, - 0x53b6, 0x0223, - 0x53b9, 0x1783, - 0x53bb, 0x0318, - 0x53c1, 0x408b, - 0x53c2, 0x43a6, - 0x53c3, 0x0a1e, - 0x53c5, 0x408c, - 0x53c8, 0x0266, - 0x53c9, 0x0278, - 0x53ca, 0x02bf, - 0x53cb, 0x02be, - 0x53cc, 0x38b6, - 0x53cd, 0x02c0, - 0x53d0, 0x39fa, - 0x53d1, 0x4546, - 0x53d2, 0x3e3d, - 0x53d4, 0x0560, - 0x53d6, 0x055f, - 0x53d7, 0x0561, - 0x53d8, 0x4547, - 0x53d9, 0x4090, - 0x53da, 0x3f39, - 0x53db, 0x06cf, - 0x53df, 0x0863, - 0x53e0, 0x4093, - 0x53e1, 0x2b07, - 0x53e2, 0x14c9, - 0x53e3, 0x0279, - 0x53e4, 0x031a, - 0x53e5, 0x0329, - 0x53e6, 0x0324, - 0x53e8, 0x031f, - 0x53e9, 0x031e, - 0x53ea, 0x0325, - 0x53eb, 0x0323, - 0x53ec, 0x031c, - 0x53ed, 0x032a, - 0x53ee, 0x031d, - 0x53ef, 0x0319, - 0x53f0, 0x0328, - 0x53f1, 0x0327, - 0x53f2, 0x0326, - 0x53f3, 0x031b, - 0x53f5, 0x0322, - 0x53f6, 0x4096, - 0x53f7, 0x3808, - 0x53f8, 0x0321, - 0x53fb, 0x032b, - 0x53fc, 0x0320, - 0x53fe, 0x40c1, - 0x5401, 0x03a0, - 0x5403, 0x03a6, - 0x5404, 0x03a2, - 0x5406, 0x03a8, - 0x5407, 0x17ce, - 0x5408, 0x03a5, - 0x5409, 0x039b, - 0x540a, 0x039e, - 0x540b, 0x03a1, - 0x540c, 0x039d, - 0x540d, 0x03a4, - 0x540e, 0x03a7, - 0x540f, 0x039c, - 0x5410, 0x039f, - 0x5411, 0x03a3, - 0x5412, 0x03a9, - 0x5413, 0x4098, - 0x5414, 0x3c77, - 0x5416, 0x3e7f, - 0x5418, 0x1847, - 0x5419, 0x1844, - 0x541a, 0x3e64, - 0x541b, 0x0451, - 0x541c, 0x1845, - 0x541d, 0x0445, - 0x541e, 0x0447, - 0x541f, 0x045f, - 0x5420, 0x045a, - 0x5421, 0x4203, - 0x5423, 0x45a3, - 0x5424, 0x184c, - 0x5425, 0x1846, - 0x5426, 0x0449, - 0x5427, 0x044b, - 0x5428, 0x184b, - 0x5429, 0x0452, - 0x542a, 0x1841, - 0x542b, 0x045e, - 0x542c, 0x0460, - 0x542d, 0x0446, - 0x542e, 0x0457, - 0x542f, 0x40ac, - 0x5430, 0x183f, - 0x5431, 0x045d, - 0x5432, 0x3e75, - 0x5433, 0x044e, - 0x5435, 0x0458, - 0x5437, 0x1840, - 0x5438, 0x0456, - 0x5439, 0x0454, - 0x543b, 0x0455, - 0x543c, 0x045b, - 0x543d, 0x1848, - 0x543e, 0x0448, - 0x5440, 0x045c, - 0x5441, 0x184a, - 0x5442, 0x0450, - 0x5443, 0x044d, - 0x5445, 0x1843, - 0x5446, 0x044c, - 0x5447, 0x184d, - 0x5448, 0x044f, - 0x544a, 0x0453, - 0x544b, 0x3ed1, - 0x544d, 0x3ea7, - 0x544e, 0x044a, - 0x544f, 0x1849, - 0x5454, 0x1842, - 0x5460, 0x192e, - 0x5461, 0x192d, - 0x5462, 0x0573, - 0x5463, 0x1930, - 0x5464, 0x1932, - 0x5465, 0x1927, - 0x5466, 0x192a, - 0x5467, 0x1931, - 0x5468, 0x0574, - 0x5469, 0x3f32, - 0x546a, 0x3d83, - 0x546b, 0x1924, - 0x546c, 0x1928, - 0x546d, 0x409d, - 0x546f, 0x192c, - 0x5470, 0x1a85, - 0x5471, 0x056f, - 0x5472, 0x1a89, - 0x5473, 0x0562, - 0x5474, 0x1929, - 0x5475, 0x0563, - 0x5476, 0x0570, - 0x5477, 0x0569, - 0x5478, 0x0565, - 0x547a, 0x1925, - 0x547b, 0x0568, - 0x547c, 0x056d, - 0x547d, 0x0576, - 0x547e, 0x1926, - 0x547f, 0x191f, - 0x5480, 0x0567, - 0x5481, 0x1920, - 0x5482, 0x1922, - 0x5484, 0x056a, - 0x5485, 0x46d9, - 0x5486, 0x056c, - 0x5487, 0x191e, - 0x5488, 0x1923, - 0x548b, 0x0575, - 0x548c, 0x0571, - 0x548d, 0x192b, - 0x548e, 0x0577, - 0x548f, 0x40a1, - 0x5490, 0x056e, - 0x5491, 0x1921, - 0x5492, 0x056b, - 0x5493, 0x45a7, - 0x5494, 0x3e98, - 0x5495, 0x0566, - 0x5496, 0x0564, - 0x5497, 0x3e8a, - 0x5498, 0x192f, - 0x549a, 0x0572, - 0x549c, 0x3f66, - 0x549e, 0x47ed, - 0x54a0, 0x1a84, - 0x54a1, 0x1a78, - 0x54a2, 0x1a87, - 0x54a3, 0x45a8, - 0x54a4, 0x40a2, - 0x54a5, 0x1a7a, - 0x54a6, 0x06d6, - 0x54a7, 0x06e4, - 0x54a8, 0x06d2, - 0x54a9, 0x06e3, - 0x54aa, 0x06db, - 0x54ab, 0x06e0, - 0x54ac, 0x06d0, - 0x54ad, 0x1a79, - 0x54ae, 0x1a7f, - 0x54af, 0x06df, - 0x54b0, 0x1a8b, - 0x54b1, 0x06e1, - 0x54b2, 0x3744, - 0x54b3, 0x06d7, - 0x54b4, 0x45a9, - 0x54b6, 0x1a81, - 0x54b7, 0x1a7e, - 0x54b8, 0x06d5, - 0x54b9, 0x45aa, - 0x54ba, 0x1a77, - 0x54bb, 0x06e2, - 0x54bc, 0x1a86, - 0x54bd, 0x06da, - 0x54be, 0x1a88, - 0x54bf, 0x06e5, - 0x54c0, 0x06d1, - 0x54c1, 0x06dc, - 0x54c2, 0x06d9, - 0x54c3, 0x1a7c, - 0x54c4, 0x06dd, - 0x54c5, 0x1a82, - 0x54c7, 0x06d8, - 0x54c8, 0x06de, - 0x54c9, 0x06d4, - 0x54cb, 0x39a3, - 0x54cc, 0x43a8, - 0x54cd, 0x3a00, - 0x54ce, 0x06d3, - 0x54cf, 0x1a7b, - 0x54d0, 0x45ab, - 0x54d6, 0x1a80, - 0x54da, 0x4923, - 0x54de, 0x1a8a, - 0x54e0, 0x1c57, - 0x54e1, 0x0870, - 0x54e2, 0x1c45, - 0x54e3, 0x4341, - 0x54e4, 0x1c4a, - 0x54e5, 0x0869, - 0x54e6, 0x0874, - 0x54e7, 0x1c48, - 0x54e8, 0x0864, - 0x54e9, 0x086e, - 0x54ea, 0x0873, - 0x54eb, 0x1c4f, - 0x54ed, 0x086f, - 0x54ee, 0x0872, - 0x54ef, 0x45ac, - 0x54f1, 0x1c52, - 0x54f2, 0x086a, - 0x54f3, 0x1c49, - 0x54f7, 0x1c55, - 0x54fa, 0x086c, - 0x54fb, 0x1c54, - 0x54fc, 0x0868, - 0x54fd, 0x0877, - 0x54ff, 0x1c4c, - 0x5501, 0x0866, - 0x5502, 0x3ccc, - 0x5503, 0x1c59, - 0x5504, 0x1c4d, - 0x5505, 0x1c51, - 0x5506, 0x086b, - 0x5507, 0x0876, - 0x5508, 0x1c4e, - 0x5509, 0x0871, - 0x550a, 0x1c53, - 0x550b, 0x1c5a, - 0x550c, 0x1e69, - 0x550d, 0x3a73, - 0x550e, 0x1c58, - 0x550f, 0x0878, - 0x5510, 0x0865, - 0x5511, 0x1c50, - 0x5512, 0x1c47, - 0x5513, 0x3ea9, - 0x5514, 0x086d, - 0x5517, 0x1c46, - 0x5518, 0x45ad, - 0x551a, 0x1c4b, - 0x551e, 0x3ea8, - 0x5523, 0x45ae, - 0x5525, 0x4309, - 0x5526, 0x1c44, - 0x5527, 0x0875, - 0x5528, 0x45af, - 0x552a, 0x1e61, - 0x552b, 0x409a, - 0x552c, 0x0a31, - 0x552d, 0x1e6f, - 0x552e, 0x0a2f, - 0x552f, 0x0a2c, - 0x5530, 0x1e66, - 0x5531, 0x0a28, - 0x5532, 0x1e6a, - 0x5533, 0x0a33, - 0x5534, 0x1e60, - 0x5535, 0x1e65, - 0x5536, 0x1e64, - 0x5537, 0x0867, - 0x5538, 0x0a2e, - 0x5539, 0x1e6d, - 0x553b, 0x1e70, - 0x553c, 0x1e5d, - 0x553e, 0x0c0c, - 0x553f, 0x43a9, - 0x5540, 0x1e71, - 0x5541, 0x0a34, - 0x5543, 0x0a26, - 0x5544, 0x0a23, - 0x5545, 0x1e68, - 0x5546, 0x0a20, - 0x5547, 0x40aa, - 0x5548, 0x1e6e, - 0x5549, 0x4068, - 0x554a, 0x0a27, - 0x554b, 0x1e72, - 0x554d, 0x1e5e, - 0x554e, 0x1e6c, - 0x554f, 0x0a2a, - 0x5550, 0x1e5f, - 0x5551, 0x1e62, - 0x5552, 0x1e67, - 0x5553, 0x43ae, - 0x5555, 0x0a2b, - 0x5556, 0x0a29, - 0x5557, 0x0a35, - 0x555c, 0x0a30, - 0x555d, 0x40a0, - 0x555e, 0x0a24, - 0x555f, 0x0abc, - 0x5561, 0x0a25, - 0x5562, 0x1e63, - 0x5563, 0x0a32, - 0x5564, 0x0a2d, - 0x5565, 0x1e6b, - 0x5566, 0x0a22, - 0x5569, 0x3e9f, - 0x556a, 0x0a21, - 0x556b, 0x3b2e, - 0x5571, 0x3bc6, - 0x5572, 0x3e8b, - 0x5573, 0x3f24, - 0x5575, 0x1e5b, - 0x5577, 0x20c7, - 0x5579, 0x435d, - 0x557b, 0x0bfb, - 0x557c, 0x0bfe, - 0x557d, 0x20d2, - 0x557e, 0x0c12, - 0x557f, 0x20d5, - 0x5580, 0x0bfc, - 0x5581, 0x20ce, - 0x5582, 0x0c02, - 0x5583, 0x0c08, - 0x5584, 0x0d1b, - 0x5586, 0x40ae, - 0x5587, 0x0c06, - 0x5588, 0x20cb, - 0x5589, 0x0c13, - 0x558a, 0x0bff, - 0x558b, 0x0c07, - 0x558c, 0x20d3, - 0x558d, 0x2387, - 0x558e, 0x20d8, - 0x558f, 0x20cc, - 0x5590, 0x430e, - 0x5591, 0x20c3, - 0x5592, 0x20d0, - 0x5593, 0x20ca, - 0x5594, 0x0c05, - 0x5595, 0x20d6, - 0x5598, 0x0c01, - 0x5599, 0x0c15, - 0x559a, 0x0c0e, - 0x559c, 0x0c03, - 0x559d, 0x0c00, - 0x559f, 0x0c0b, - 0x55a1, 0x20d7, - 0x55a2, 0x20c9, - 0x55a3, 0x20cf, - 0x55a4, 0x20d1, - 0x55a5, 0x20c5, - 0x55a6, 0x20d4, - 0x55a7, 0x0bfd, - 0x55a8, 0x20c4, - 0x55a9, 0x40af, - 0x55aa, 0x0c04, - 0x55ab, 0x0c14, - 0x55ac, 0x0c10, - 0x55ad, 0x20c6, - 0x55ae, 0x0c0a, - 0x55b0, 0x38f5, - 0x55b1, 0x0c11, - 0x55b2, 0x0c0d, - 0x55b3, 0x0c09, - 0x55b4, 0x39fe, - 0x55b5, 0x20cd, - 0x55b9, 0x43aa, - 0x55ba, 0x3e89, - 0x55bb, 0x0c0f, - 0x55bc, 0x3dc3, - 0x55bf, 0x2385, - 0x55c0, 0x2381, - 0x55c1, 0x3e4f, - 0x55c2, 0x2390, - 0x55c3, 0x237a, - 0x55c4, 0x2383, - 0x55c5, 0x0de0, - 0x55c7, 0x0dd9, - 0x55c8, 0x238c, - 0x55c9, 0x0de3, - 0x55ca, 0x237f, - 0x55cb, 0x237e, - 0x55cc, 0x237c, - 0x55cd, 0x238e, - 0x55ce, 0x0dd7, - 0x55cf, 0x2388, - 0x55d0, 0x237d, - 0x55d1, 0x0dda, - 0x55d2, 0x2386, - 0x55d3, 0x0dd5, - 0x55d4, 0x2382, - 0x55d5, 0x2389, - 0x55d6, 0x238b, - 0x55d7, 0x45b3, - 0x55d8, 0x43ab, - 0x55d9, 0x238f, - 0x55da, 0x0dde, - 0x55db, 0x237b, - 0x55dc, 0x0dd8, - 0x55dd, 0x2380, - 0x55de, 0x3e94, - 0x55df, 0x0dd3, - 0x55e1, 0x0ddf, - 0x55e2, 0x238a, - 0x55e3, 0x0ddb, - 0x55e5, 0x0de2, - 0x55e6, 0x0dd6, - 0x55e7, 0x011f, - 0x55e8, 0x0dd4, - 0x55e9, 0x2384, - 0x55ea, 0x3e7c, - 0x55ec, 0x37d2, - 0x55ef, 0x0ddd, - 0x55f0, 0x3e88, - 0x55f1, 0x3e83, - 0x55f2, 0x238d, - 0x55f5, 0x4786, - 0x55f6, 0x0f9f, - 0x55f7, 0x0f9a, - 0x55f9, 0x2637, - 0x55fa, 0x2633, - 0x55fb, 0x4626, - 0x55fc, 0x262d, - 0x55fd, 0x0f94, - 0x55fe, 0x0f90, - 0x55ff, 0x2636, - 0x5600, 0x0f91, - 0x5601, 0x2630, - 0x5602, 0x2632, - 0x5604, 0x2635, - 0x5605, 0x3e82, - 0x5606, 0x0f96, - 0x5608, 0x0f9d, - 0x5609, 0x0f97, - 0x560c, 0x262b, - 0x560d, 0x0f98, - 0x560f, 0x262e, - 0x5610, 0x0f9e, - 0x5611, 0x3f4d, - 0x5612, 0x262c, - 0x5613, 0x2631, - 0x5614, 0x0f95, - 0x5615, 0x262a, - 0x5616, 0x0f9b, - 0x5617, 0x0f93, - 0x561b, 0x0f92, - 0x561c, 0x262f, - 0x561d, 0x2634, - 0x561e, 0x3e68, - 0x561f, 0x0f9c, - 0x5620, 0x3f7d, - 0x5621, 0x43ad, - 0x5622, 0x3e67, - 0x5623, 0x4707, - 0x5625, 0x3e78, - 0x5627, 0x2629, - 0x5629, 0x1119, - 0x562a, 0x289d, - 0x562c, 0x289a, - 0x562d, 0x3e63, - 0x562e, 0x1113, - 0x562f, 0x111f, - 0x5632, 0x1116, - 0x5633, 0x2898, - 0x5634, 0x1118, - 0x5635, 0x2890, - 0x5636, 0x111e, - 0x5637, 0x40b7, - 0x5638, 0x289c, - 0x5639, 0x1115, - 0x563a, 0x289e, - 0x563b, 0x1114, - 0x563d, 0x2899, - 0x563e, 0x289b, - 0x563f, 0x1117, - 0x5640, 0x2897, - 0x5641, 0x2891, - 0x5642, 0x288e, - 0x5643, 0x3e7e, - 0x5645, 0x20c8, - 0x5646, 0x2894, - 0x5648, 0x288d, - 0x5649, 0x2893, - 0x564a, 0x2892, - 0x564c, 0x288f, - 0x564d, 0x40bc, - 0x564e, 0x111b, - 0x564f, 0x40bd, - 0x5650, 0x47cf, - 0x5652, 0x45c2, - 0x5653, 0x111a, - 0x5654, 0x43af, - 0x5657, 0x111c, - 0x5658, 0x2895, - 0x5659, 0x1295, - 0x565a, 0x2896, - 0x565d, 0x3ef9, - 0x565e, 0x2b10, - 0x5660, 0x2b09, - 0x5661, 0x3812, - 0x5662, 0x12a1, - 0x5663, 0x2b0d, - 0x5664, 0x1299, - 0x5665, 0x129d, - 0x5666, 0x2b0c, - 0x5668, 0x129c, - 0x5669, 0x1298, - 0x566a, 0x129b, - 0x566b, 0x1296, - 0x566c, 0x12a0, - 0x566d, 0x2b0e, - 0x566e, 0x2b0a, - 0x566f, 0x129f, - 0x5670, 0x2b08, - 0x5671, 0x129e, - 0x5672, 0x2b0f, - 0x5673, 0x2b0b, - 0x5674, 0x111d, - 0x5676, 0x12a2, - 0x5677, 0x2b11, - 0x5678, 0x129a, - 0x5679, 0x1297, - 0x567a, 0x3d85, - 0x567b, 0x3eb7, - 0x567c, 0x3eed, - 0x567e, 0x2d47, - 0x567f, 0x2d49, - 0x5680, 0x13ba, - 0x5681, 0x2d4a, - 0x5682, 0x2d48, - 0x5683, 0x2d46, - 0x5684, 0x2d45, - 0x5685, 0x13bc, - 0x5686, 0x2d44, - 0x5687, 0x13bd, - 0x5689, 0x4628, - 0x568a, 0x3949, - 0x568b, 0x3e4c, - 0x568c, 0x2d42, - 0x568e, 0x13b9, - 0x568f, 0x13be, - 0x5690, 0x13bb, - 0x5692, 0x39a6, - 0x5693, 0x2d41, - 0x5695, 0x14ca, - 0x5697, 0x2f13, - 0x5698, 0x2f11, - 0x5699, 0x2f16, - 0x569a, 0x2f14, - 0x569c, 0x2f12, - 0x569d, 0x2f15, - 0x569e, 0x39a4, - 0x569f, 0x3948, - 0x56a1, 0x436b, - 0x56a4, 0x3cc8, - 0x56a5, 0x1576, - 0x56a6, 0x3081, - 0x56a8, 0x1577, - 0x56aa, 0x3083, - 0x56ab, 0x307f, - 0x56ac, 0x3084, - 0x56ad, 0x3080, - 0x56ae, 0x14cb, - 0x56af, 0x45f7, - 0x56b1, 0x463f, - 0x56b2, 0x31c8, - 0x56b3, 0x31ca, - 0x56b4, 0x160c, - 0x56b5, 0x31c9, - 0x56b6, 0x160b, - 0x56b7, 0x160a, - 0x56b9, 0x486f, - 0x56bc, 0x160d, - 0x56bd, 0x32ca, - 0x56bf, 0x3e5d, - 0x56c0, 0x166b, - 0x56c1, 0x166a, - 0x56c2, 0x166c, - 0x56c3, 0x32c9, - 0x56c5, 0x3379, - 0x56c6, 0x3378, - 0x56c8, 0x16bd, - 0x56c9, 0x16bf, - 0x56ca, 0x16be, - 0x56cb, 0x337a, - 0x56cc, 0x16f6, - 0x56cd, 0x3481, - 0x56d1, 0x171f, - 0x56d3, 0x3480, - 0x56d4, 0x34c9, - 0x56d6, 0x488a, - 0x56d7, 0x1775, - 0x56da, 0x032d, - 0x56db, 0x032c, - 0x56dd, 0x03ac, - 0x56de, 0x03ab, - 0x56df, 0x17d0, - 0x56e0, 0x03aa, - 0x56e1, 0x17cf, - 0x56e2, 0x4548, - 0x56e4, 0x0463, - 0x56e5, 0x1850, - 0x56e7, 0x184f, - 0x56ea, 0x0461, - 0x56eb, 0x0464, - 0x56ed, 0x40c4, - 0x56ee, 0x184e, - 0x56ef, 0x40c3, - 0x56f0, 0x0462, - 0x56f1, 0x40bf, - 0x56f7, 0x1933, - 0x56f9, 0x1934, - 0x56fa, 0x0578, - 0x56fd, 0x3d64, - 0x56ff, 0x06e6, - 0x5700, 0x40c2, - 0x5701, 0x1c5b, - 0x5703, 0x0879, - 0x5707, 0x1e74, - 0x5708, 0x0a36, - 0x5709, 0x0a38, - 0x570a, 0x1e73, - 0x570b, 0x0a37, - 0x570c, 0x20d9, - 0x570d, 0x0c16, - 0x5712, 0x0de4, - 0x5714, 0x2391, - 0x5715, 0x3e36, - 0x5716, 0x0fa1, - 0x5718, 0x0fa0, - 0x571a, 0x289f, - 0x571b, 0x2b13, - 0x571c, 0x2b12, - 0x571d, 0x3a02, - 0x571e, 0x3505, - 0x571f, 0x027a, - 0x5720, 0x1784, - 0x5722, 0x179a, - 0x5728, 0x03af, - 0x5729, 0x03b3, - 0x572a, 0x17d2, - 0x572c, 0x03b1, - 0x572d, 0x03b0, - 0x572e, 0x17d1, - 0x572f, 0x03b2, - 0x5730, 0x03ae, - 0x5732, 0x3af9, - 0x5733, 0x03ad, - 0x5734, 0x17d3, - 0x573b, 0x046e, - 0x573e, 0x046b, - 0x573f, 0x4855, - 0x5740, 0x0467, - 0x5741, 0x1851, - 0x5742, 0x40cc, - 0x5743, 0x40de, - 0x5745, 0x1852, - 0x5746, 0x40c8, - 0x5747, 0x0469, - 0x5749, 0x1854, - 0x574a, 0x0465, - 0x574b, 0x1855, - 0x574c, 0x1853, - 0x574d, 0x0468, - 0x574e, 0x046a, - 0x574f, 0x046d, - 0x5750, 0x046c, - 0x5751, 0x0466, - 0x5752, 0x1856, - 0x5754, 0x4785, - 0x5757, 0x47e6, - 0x575b, 0x3982, - 0x575f, 0x3fbf, - 0x5761, 0x057d, - 0x5762, 0x1941, - 0x5764, 0x057f, - 0x5766, 0x057e, - 0x5767, 0x3f2b, - 0x5768, 0x1942, - 0x5769, 0x057c, - 0x576a, 0x057b, - 0x576b, 0x1938, - 0x576d, 0x1937, - 0x576f, 0x1935, - 0x5770, 0x193a, - 0x5771, 0x1939, - 0x5772, 0x1936, - 0x5773, 0x193f, - 0x5775, 0x193d, - 0x5776, 0x193b, - 0x5777, 0x057a, - 0x577a, 0x3f5f, - 0x577b, 0x193e, - 0x577c, 0x0580, - 0x577d, 0x1943, - 0x577e, 0x46dc, - 0x577f, 0x3a07, - 0x5780, 0x193c, - 0x5782, 0x06e7, - 0x5783, 0x0579, - 0x5788, 0x484b, - 0x578a, 0x3c7b, - 0x578b, 0x06e8, - 0x578c, 0x1a90, - 0x578d, 0x3a06, - 0x578f, 0x1a96, - 0x5790, 0x4166, - 0x5793, 0x06ee, - 0x5794, 0x1a94, - 0x5795, 0x1a9a, - 0x5797, 0x1a91, - 0x5798, 0x1a95, - 0x5799, 0x1a97, - 0x579a, 0x1a99, - 0x579b, 0x1a93, - 0x579c, 0x4608, - 0x579d, 0x1a92, - 0x579e, 0x1a8d, - 0x57a0, 0x06e9, - 0x57a1, 0x4864, - 0x57a2, 0x06eb, - 0x57a3, 0x06ea, - 0x57a4, 0x1a8f, - 0x57a5, 0x1a98, - 0x57a7, 0x4914, - 0x57aa, 0x4905, - 0x57ae, 0x06ed, - 0x57b4, 0x4741, - 0x57b5, 0x1a8c, - 0x57b6, 0x1c66, - 0x57b8, 0x1c65, - 0x57b9, 0x1c6a, - 0x57ba, 0x1c61, - 0x57bb, 0x3c79, - 0x57bc, 0x1c64, - 0x57bd, 0x1c63, - 0x57be, 0x372c, - 0x57bf, 0x1c67, - 0x57c1, 0x1c6b, - 0x57c2, 0x087b, - 0x57c3, 0x087e, - 0x57c4, 0x3b5b, - 0x57c6, 0x1c62, - 0x57c7, 0x1c68, - 0x57c8, 0x3d0b, - 0x57cb, 0x087d, - 0x57cc, 0x1c5d, - 0x57ce, 0x06ec, - 0x57cf, 0x1e82, - 0x57d0, 0x1c69, - 0x57d2, 0x1c60, - 0x57d4, 0x087c, - 0x57d5, 0x1c5f, - 0x57d7, 0x3c7d, - 0x57dc, 0x1e79, - 0x57dd, 0x3a05, - 0x57de, 0x3f01, - 0x57df, 0x0a39, - 0x57e0, 0x0a3d, - 0x57e1, 0x1e89, - 0x57e2, 0x1e77, - 0x57e3, 0x1e85, - 0x57e4, 0x0a3e, - 0x57e5, 0x1e87, - 0x57e6, 0x40cf, - 0x57e7, 0x1e8d, - 0x57e9, 0x1e91, - 0x57ec, 0x1e88, - 0x57ed, 0x1e7c, - 0x57ee, 0x1e84, - 0x57ef, 0x4754, - 0x57f0, 0x1e92, - 0x57f1, 0x1e90, - 0x57f2, 0x1e86, - 0x57f3, 0x1e81, - 0x57f4, 0x1e7a, - 0x57f5, 0x20e1, - 0x57f6, 0x1e78, - 0x57f7, 0x0a42, - 0x57f8, 0x1e7f, - 0x57f9, 0x0a43, - 0x57fa, 0x0a3f, - 0x57fb, 0x1e75, - 0x57fc, 0x1e8b, - 0x57fd, 0x1e7d, - 0x57fe, 0x408f, - 0x5800, 0x1e7b, - 0x5801, 0x1e8e, - 0x5802, 0x0a40, - 0x5803, 0x40d1, - 0x5804, 0x1e94, - 0x5805, 0x0a3a, - 0x5806, 0x0a3c, - 0x5807, 0x1e83, - 0x5808, 0x1e7e, - 0x5809, 0x087f, - 0x580a, 0x0a3b, - 0x580b, 0x1e80, - 0x580c, 0x1e8f, - 0x580d, 0x1e93, - 0x580e, 0x1e8a, - 0x5810, 0x1e8c, - 0x5812, 0x3d0a, - 0x5814, 0x1e76, - 0x5819, 0x20dc, - 0x581b, 0x20e5, - 0x581c, 0x20e4, - 0x581d, 0x0c1e, - 0x581e, 0x20dd, - 0x5820, 0x0c1f, - 0x5821, 0x0c1d, - 0x5822, 0x3c28, - 0x5823, 0x20df, - 0x5824, 0x0c1a, - 0x5825, 0x20e3, - 0x5826, 0x40d4, - 0x5827, 0x20de, - 0x5828, 0x20e0, - 0x5829, 0x20da, - 0x582a, 0x0c18, - 0x582c, 0x20ed, - 0x582d, 0x20ec, - 0x582e, 0x20e9, - 0x582f, 0x0c17, - 0x5830, 0x0c1b, - 0x5832, 0x1c5e, - 0x5833, 0x20e6, - 0x5834, 0x0c19, - 0x5835, 0x0a41, - 0x5836, 0x20e8, - 0x5837, 0x20db, - 0x5838, 0x20eb, - 0x5839, 0x20ea, - 0x583a, 0x3d72, - 0x583b, 0x20ee, - 0x583d, 0x239f, - 0x583f, 0x20e7, - 0x5840, 0x3d82, - 0x5844, 0x47bb, - 0x5847, 0x3ac2, - 0x5848, 0x20e2, - 0x5849, 0x2397, - 0x584a, 0x0def, - 0x584b, 0x0df2, - 0x584c, 0x0ded, - 0x584d, 0x2396, - 0x584e, 0x239a, - 0x584f, 0x2395, - 0x5851, 0x0de7, - 0x5852, 0x0df1, - 0x5853, 0x2392, - 0x5854, 0x0deb, - 0x5855, 0x2399, - 0x5857, 0x0de9, - 0x5858, 0x0de8, - 0x5859, 0x239c, - 0x585a, 0x0dea, - 0x585b, 0x239e, - 0x585c, 0x4949, - 0x585d, 0x239b, - 0x585e, 0x0de6, - 0x585f, 0x43df, - 0x5862, 0x0df0, - 0x5863, 0x23a0, - 0x5864, 0x2394, - 0x5865, 0x239d, - 0x5868, 0x2393, - 0x5869, 0x3d65, - 0x586b, 0x0dec, - 0x586c, 0x399a, - 0x586d, 0x0dee, - 0x586f, 0x2398, - 0x5871, 0x23a1, - 0x5872, 0x3c26, - 0x5873, 0x4355, - 0x5874, 0x263f, - 0x5875, 0x0fa2, - 0x5876, 0x2645, - 0x5879, 0x0fa7, - 0x587a, 0x2641, - 0x587b, 0x2648, - 0x587c, 0x2639, - 0x587d, 0x0fa9, - 0x587e, 0x0fa3, - 0x587f, 0x263e, - 0x5880, 0x1121, - 0x5881, 0x263d, - 0x5882, 0x2646, - 0x5883, 0x0fa4, - 0x5885, 0x0fa8, - 0x5886, 0x263c, - 0x5887, 0x2642, - 0x5888, 0x2647, - 0x5889, 0x2638, - 0x588a, 0x0fa6, - 0x588b, 0x2640, - 0x588e, 0x2644, - 0x588f, 0x264a, - 0x5890, 0x263a, - 0x5891, 0x2643, - 0x5893, 0x0fa5, - 0x5894, 0x2649, - 0x5898, 0x263b, - 0x5899, 0x4618, - 0x589a, 0x4903, - 0x589c, 0x1125, - 0x589d, 0x28a1, - 0x589e, 0x1123, - 0x589f, 0x1122, - 0x58a0, 0x28a3, - 0x58a1, 0x28a8, - 0x58a3, 0x28a4, - 0x58a5, 0x28a7, - 0x58a6, 0x1128, - 0x58a7, 0x3eeb, - 0x58a8, 0x1288, - 0x58a9, 0x1127, - 0x58aa, 0x40d7, - 0x58ab, 0x28a0, - 0x58ac, 0x28a6, - 0x58ae, 0x1126, - 0x58af, 0x28a5, - 0x58b0, 0x37a4, - 0x58b1, 0x28a2, - 0x58b3, 0x1124, - 0x58b5, 0x4840, - 0x58b6, 0x3dfd, - 0x58ba, 0x2b18, - 0x58bb, 0x36eb, - 0x58bc, 0x2b1a, - 0x58bd, 0x2b15, - 0x58be, 0x12a4, - 0x58bf, 0x2b17, - 0x58c1, 0x12a3, - 0x58c2, 0x2b19, - 0x58c5, 0x12a6, - 0x58c6, 0x2b1b, - 0x58c7, 0x12a5, - 0x58c8, 0x2b14, - 0x58c9, 0x2b16, - 0x58cb, 0x3a09, - 0x58ce, 0x13c2, - 0x58cf, 0x2d4d, - 0x58d1, 0x13c1, - 0x58d2, 0x2d4e, - 0x58d3, 0x13c0, - 0x58d4, 0x2d4c, - 0x58d5, 0x13bf, - 0x58d6, 0x2d4b, - 0x58d8, 0x14cd, - 0x58d9, 0x14cc, - 0x58da, 0x3085, - 0x58db, 0x3087, - 0x58dc, 0x40da, - 0x58dd, 0x3086, - 0x58de, 0x1578, - 0x58e0, 0x40d9, - 0x58e2, 0x157a, - 0x58e3, 0x31cb, - 0x58e4, 0x160e, - 0x58e7, 0x3411, - 0x58e8, 0x3410, - 0x58e9, 0x1720, - 0x58eb, 0x027b, - 0x58ec, 0x02c1, - 0x58ef, 0x046f, - 0x58f0, 0x4549, - 0x58f2, 0x3d68, - 0x58f3, 0x3c7a, - 0x58f4, 0x1a9b, - 0x58f9, 0x0c20, - 0x58fb, 0x40dc, - 0x58fc, 0x23a2, - 0x58fd, 0x0faa, - 0x58fe, 0x264b, - 0x58ff, 0x28a9, - 0x5902, 0x0224, - 0x5903, 0x1785, - 0x5904, 0x454a, - 0x5905, 0x4599, - 0x5906, 0x1857, - 0x5907, 0x454b, - 0x590a, 0x0224, - 0x590c, 0x1944, - 0x590d, 0x1a9c, - 0x590e, 0x1c6c, - 0x590f, 0x0880, - 0x5911, 0x4274, - 0x5912, 0x3088, - 0x5914, 0x166d, - 0x5915, 0x027c, - 0x5916, 0x032e, - 0x5917, 0x179c, - 0x5919, 0x03b4, - 0x591c, 0x0581, - 0x591f, 0x40e3, - 0x5920, 0x0a44, - 0x5922, 0x0fac, - 0x5924, 0x0fad, - 0x5925, 0x0fab, - 0x5927, 0x027d, - 0x5929, 0x02c2, - 0x592a, 0x02c4, - 0x592b, 0x02c3, - 0x592c, 0x1786, - 0x592d, 0x02c5, - 0x592e, 0x032f, - 0x592f, 0x179d, - 0x5931, 0x0330, - 0x5932, 0x454c, - 0x5934, 0x454d, - 0x5937, 0x03b6, - 0x593c, 0x17d4, - 0x593e, 0x0470, - 0x5940, 0x1858, - 0x5944, 0x0585, - 0x5945, 0x1945, - 0x5947, 0x0583, - 0x5949, 0x0582, - 0x594a, 0x1c6d, - 0x594e, 0x06f2, - 0x594f, 0x06f1, - 0x5950, 0x06f3, - 0x5951, 0x06f0, - 0x5953, 0x1a9d, - 0x5954, 0x0586, - 0x5955, 0x06ef, - 0x5957, 0x0881, - 0x595a, 0x0883, - 0x595c, 0x1e95, - 0x5960, 0x0c22, - 0x5961, 0x20ef, - 0x5962, 0x0a45, - 0x5965, 0x4852, - 0x5967, 0x0df3, - 0x5969, 0x0faf, - 0x596a, 0x0fae, - 0x596b, 0x264c, - 0x596d, 0x1129, - 0x596e, 0x12a7, - 0x5970, 0x2f17, - 0x5971, 0x337b, - 0x5972, 0x3412, - 0x5973, 0x027e, - 0x5974, 0x0331, - 0x5975, 0x3e6a, - 0x5976, 0x0332, - 0x5977, 0x17da, - 0x5978, 0x03b9, - 0x5979, 0x03bc, - 0x597b, 0x17d8, - 0x597c, 0x17d6, - 0x597d, 0x03bb, - 0x597e, 0x17d9, - 0x597f, 0x17db, - 0x5980, 0x17d5, - 0x5981, 0x03be, - 0x5982, 0x03bd, - 0x5983, 0x03ba, - 0x5984, 0x03b8, - 0x5985, 0x17d7, - 0x5989, 0x3d30, - 0x598a, 0x047b, - 0x598d, 0x0478, - 0x598e, 0x185d, - 0x598f, 0x1860, - 0x5990, 0x185f, - 0x5992, 0x0472, - 0x5993, 0x047a, - 0x5994, 0x3c99, - 0x5996, 0x0477, - 0x5997, 0x185c, - 0x5998, 0x185a, - 0x5999, 0x0476, - 0x599a, 0x3bb0, - 0x599d, 0x0471, - 0x599e, 0x0474, - 0x599f, 0x3daf, - 0x59a0, 0x185b, - 0x59a1, 0x1862, - 0x59a2, 0x185e, - 0x59a3, 0x0475, - 0x59a4, 0x0479, - 0x59a5, 0x047c, - 0x59a6, 0x1859, - 0x59a7, 0x1861, - 0x59a8, 0x0473, - 0x59ac, 0x3d81, - 0x59ae, 0x058b, - 0x59af, 0x0593, - 0x59b0, 0x3cd8, - 0x59b1, 0x1951, - 0x59b2, 0x194a, - 0x59b3, 0x0594, - 0x59b4, 0x1955, - 0x59b5, 0x1946, - 0x59b6, 0x194d, - 0x59b7, 0x3f2d, - 0x59b8, 0x3a10, - 0x59b9, 0x058a, - 0x59ba, 0x1947, - 0x59bb, 0x0588, - 0x59bc, 0x194e, - 0x59bd, 0x1952, - 0x59be, 0x0587, - 0x59c0, 0x1953, - 0x59c1, 0x194c, - 0x59c3, 0x194f, - 0x59c4, 0x3d04, - 0x59c5, 0x0596, - 0x59c6, 0x058d, - 0x59c7, 0x1956, - 0x59c8, 0x1954, - 0x59c9, 0x40ec, - 0x59ca, 0x0592, - 0x59cb, 0x0590, - 0x59cc, 0x194b, - 0x59cd, 0x058f, - 0x59ce, 0x1949, - 0x59cf, 0x1948, - 0x59d0, 0x058e, - 0x59d1, 0x058c, - 0x59d2, 0x0595, - 0x59d3, 0x0591, - 0x59d4, 0x0589, - 0x59d6, 0x1950, - 0x59d8, 0x06f5, - 0x59d9, 0x40f1, - 0x59da, 0x06fc, - 0x59db, 0x1aab, - 0x59dc, 0x06f4, - 0x59dd, 0x1aa3, - 0x59de, 0x1a9f, - 0x59e0, 0x1aaf, - 0x59e1, 0x1a9e, - 0x59e3, 0x06f7, - 0x59e4, 0x1aa8, - 0x59e5, 0x06fa, - 0x59e6, 0x06fd, - 0x59e8, 0x06f8, - 0x59e9, 0x1aac, - 0x59ea, 0x06fb, - 0x59eb, 0x3d59, - 0x59ec, 0x088a, - 0x59ed, 0x1ab2, - 0x59ee, 0x1aa0, - 0x59ef, 0x3d38, - 0x59f0, 0x3bb2, - 0x59f1, 0x1aa2, - 0x59f2, 0x1aa9, - 0x59f3, 0x1aad, - 0x59f4, 0x1ab1, - 0x59f5, 0x1aae, - 0x59f6, 0x1aa7, - 0x59f7, 0x1aaa, - 0x59f8, 0x3e4a, - 0x59f9, 0x40f8, - 0x59fa, 0x1aa4, - 0x59fb, 0x06ff, - 0x59fc, 0x1aa6, - 0x59fd, 0x1aa5, - 0x59fe, 0x1ab0, - 0x59ff, 0x06f6, - 0x5a00, 0x1aa1, - 0x5a01, 0x06fe, - 0x5a02, 0x3b8d, - 0x5a03, 0x06f9, - 0x5a09, 0x0890, - 0x5a0a, 0x1c75, - 0x5a0b, 0x3c89, - 0x5a0c, 0x088f, - 0x5a0d, 0x3b38, - 0x5a0f, 0x1c73, - 0x5a11, 0x0884, - 0x5a12, 0x3a13, - 0x5a13, 0x0889, - 0x5a15, 0x1c72, - 0x5a16, 0x1c6f, - 0x5a17, 0x1c74, - 0x5a18, 0x0885, - 0x5a19, 0x1c6e, - 0x5a1b, 0x0888, - 0x5a1c, 0x0886, - 0x5a1e, 0x1c76, - 0x5a1f, 0x0887, - 0x5a20, 0x088b, - 0x5a21, 0x3a1b, - 0x5a23, 0x088c, - 0x5a24, 0x40e8, - 0x5a25, 0x088e, - 0x5a27, 0x3de1, - 0x5a29, 0x088d, - 0x5a2a, 0x3b3b, - 0x5a2b, 0x3d40, - 0x5a2c, 0x3a0f, - 0x5a2d, 0x1c70, - 0x5a33, 0x1c77, - 0x5a35, 0x1e9c, - 0x5a36, 0x0a46, - 0x5a37, 0x20fd, - 0x5a38, 0x1e9b, - 0x5a39, 0x1eae, - 0x5a3c, 0x0a4c, - 0x5a3d, 0x3ac0, - 0x5a3e, 0x1eac, - 0x5a40, 0x0a4b, - 0x5a41, 0x0a47, - 0x5a42, 0x1eb5, - 0x5a43, 0x1ea5, - 0x5a44, 0x1ea8, - 0x5a45, 0x3917, - 0x5a46, 0x0a4f, - 0x5a47, 0x1eb2, - 0x5a48, 0x1eaa, - 0x5a49, 0x0a48, - 0x5a4a, 0x0a50, - 0x5a4c, 0x1eaf, - 0x5a4d, 0x1ead, - 0x5a50, 0x1e9e, - 0x5a51, 0x1eb3, - 0x5a52, 0x1ea7, - 0x5a53, 0x1ea2, - 0x5a54, 0x4603, - 0x5a55, 0x1e98, - 0x5a56, 0x1eb4, - 0x5a57, 0x1ea4, - 0x5a58, 0x1e97, - 0x5a59, 0x3b34, - 0x5a5a, 0x0a4e, - 0x5a5b, 0x1ea9, - 0x5a5c, 0x1eb6, - 0x5a5d, 0x1ea6, - 0x5a5e, 0x1e9a, - 0x5a5f, 0x1e9f, - 0x5a60, 0x1e96, - 0x5a61, 0x3d33, - 0x5a62, 0x0a4d, - 0x5a63, 0x40fb, - 0x5a64, 0x1ea3, - 0x5a65, 0x1ea0, - 0x5a66, 0x0a49, - 0x5a67, 0x1e99, - 0x5a68, 0x39b7, - 0x5a69, 0x1eb1, - 0x5a6a, 0x0a4a, - 0x5a6b, 0x3a42, - 0x5a6c, 0x1ea1, - 0x5a6d, 0x1e9d, - 0x5a6e, 0x3d3f, - 0x5a70, 0x1eb0, - 0x5a71, 0x3d34, - 0x5a77, 0x0c23, - 0x5a78, 0x20f6, - 0x5a79, 0x3ce1, - 0x5a7a, 0x20f3, - 0x5a7b, 0x2104, - 0x5a7c, 0x20f8, - 0x5a7d, 0x2105, - 0x5a7e, 0x3a11, - 0x5a7f, 0x0c25, - 0x5a81, 0x3a1d, - 0x5a82, 0x3d31, - 0x5a83, 0x2101, - 0x5a84, 0x20fe, - 0x5a86, 0x3b81, - 0x5a88, 0x4263, - 0x5a8a, 0x20ff, - 0x5a8b, 0x2102, - 0x5a8c, 0x2106, - 0x5a8e, 0x1eab, - 0x5a8f, 0x2108, - 0x5a90, 0x23b6, - 0x5a91, 0x4235, - 0x5a92, 0x0c26, - 0x5a93, 0x2109, - 0x5a94, 0x20f1, - 0x5a95, 0x20fb, - 0x5a96, 0x4100, - 0x5a97, 0x2100, - 0x5a99, 0x3a0a, - 0x5a9a, 0x0c24, - 0x5a9b, 0x0c27, - 0x5a9c, 0x2107, - 0x5a9d, 0x210a, - 0x5a9e, 0x20f5, - 0x5a9f, 0x20f2, - 0x5aa0, 0x4172, - 0x5aa1, 0x3cdc, - 0x5aa2, 0x20f4, - 0x5aa5, 0x20f9, - 0x5aa6, 0x20f7, - 0x5aa7, 0x0c28, - 0x5aa9, 0x2103, - 0x5aab, 0x40fa, - 0x5aac, 0x20fa, - 0x5aae, 0x20fc, - 0x5aaf, 0x20f0, - 0x5ab0, 0x23aa, - 0x5ab1, 0x23a8, - 0x5ab2, 0x0dfc, - 0x5ab3, 0x0dfa, - 0x5ab4, 0x23b2, - 0x5ab5, 0x23a9, - 0x5ab6, 0x23b3, - 0x5ab7, 0x23af, - 0x5ab8, 0x23a7, - 0x5ab9, 0x23b5, - 0x5aba, 0x23a6, - 0x5abb, 0x23ad, - 0x5abc, 0x0df9, - 0x5abd, 0x0df8, - 0x5abe, 0x0df7, - 0x5abf, 0x23ab, - 0x5ac0, 0x23b0, - 0x5ac1, 0x0df4, - 0x5ac2, 0x0dfb, - 0x5ac3, 0x3896, - 0x5ac4, 0x23a4, - 0x5ac6, 0x23ae, - 0x5ac7, 0x23a3, - 0x5ac8, 0x23ac, - 0x5ac9, 0x0df5, - 0x5aca, 0x23b1, - 0x5acb, 0x23a5, - 0x5acc, 0x0df6, - 0x5acd, 0x23b4, - 0x5ace, 0x3c88, - 0x5acf, 0x43b5, - 0x5ad3, 0x4102, - 0x5ad5, 0x2650, - 0x5ad6, 0x0fb4, - 0x5ad7, 0x0fb3, - 0x5ad8, 0x0fb5, - 0x5ad9, 0x265c, - 0x5ada, 0x2652, - 0x5adb, 0x2658, - 0x5adc, 0x264d, - 0x5add, 0x265b, - 0x5ade, 0x265a, - 0x5adf, 0x265e, - 0x5ae0, 0x2657, - 0x5ae1, 0x0fb0, - 0x5ae2, 0x2656, - 0x5ae3, 0x0fb6, - 0x5ae4, 0x3b86, - 0x5ae5, 0x264f, - 0x5ae6, 0x0fb1, - 0x5ae8, 0x265d, - 0x5ae9, 0x0fb2, - 0x5aea, 0x2651, - 0x5aeb, 0x2654, - 0x5aec, 0x2659, - 0x5aed, 0x2653, - 0x5aee, 0x264e, - 0x5af0, 0x3ee7, - 0x5af2, 0x37f5, - 0x5af3, 0x2655, - 0x5af4, 0x28ab, - 0x5af5, 0x112d, - 0x5af6, 0x28ae, - 0x5af7, 0x28ad, - 0x5af8, 0x28b0, - 0x5af9, 0x28b2, - 0x5afa, 0x36ee, - 0x5afb, 0x112b, - 0x5afd, 0x28ac, - 0x5afe, 0x3c1d, - 0x5aff, 0x28aa, - 0x5b01, 0x28b3, - 0x5b02, 0x28b1, - 0x5b03, 0x28af, - 0x5b05, 0x28b5, - 0x5b07, 0x28b4, - 0x5b08, 0x112f, - 0x5b09, 0x112a, - 0x5b0b, 0x112c, - 0x5b0c, 0x112e, - 0x5b0d, 0x48ff, - 0x5b0f, 0x28b6, - 0x5b10, 0x2b22, - 0x5b11, 0x3bf6, - 0x5b13, 0x2b21, - 0x5b14, 0x2b20, - 0x5b16, 0x2b23, - 0x5b17, 0x2b1c, - 0x5b19, 0x2b1d, - 0x5b1a, 0x2b25, - 0x5b1b, 0x2b1e, - 0x5b1d, 0x12a8, - 0x5b1e, 0x2b27, - 0x5b1f, 0x4941, - 0x5b20, 0x2b26, - 0x5b21, 0x2b1f, - 0x5b23, 0x2d52, - 0x5b24, 0x13c5, - 0x5b25, 0x2d50, - 0x5b26, 0x2d55, - 0x5b27, 0x2d54, - 0x5b28, 0x2b24, - 0x5b2a, 0x13c4, - 0x5b2b, 0x3b84, - 0x5b2c, 0x2d53, - 0x5b2d, 0x2d4f, - 0x5b2e, 0x2d57, - 0x5b2f, 0x2d56, - 0x5b30, 0x13c3, - 0x5b32, 0x2d51, - 0x5b34, 0x12a9, - 0x5b38, 0x14ce, - 0x5b3c, 0x2f18, - 0x5b3d, 0x3089, - 0x5b40, 0x160f, - 0x5b41, 0x38c8, - 0x5b43, 0x1610, - 0x5b44, 0x3a44, - 0x5b45, 0x31cc, - 0x5b46, 0x42b2, - 0x5b47, 0x32cd, - 0x5b48, 0x32cc, - 0x5b4a, 0x38cd, - 0x5b4b, 0x337c, - 0x5b4d, 0x3413, - 0x5b4e, 0x3482, - 0x5b4f, 0x3a31, - 0x5b50, 0x027f, - 0x5b53, 0x0281, - 0x5b54, 0x02c6, - 0x5b55, 0x0333, - 0x5b56, 0x17dc, - 0x5b57, 0x03bf, - 0x5b5a, 0x047f, - 0x5b5c, 0x047e, - 0x5b5d, 0x047d, - 0x5b5f, 0x0597, - 0x5b62, 0x1957, - 0x5b63, 0x0599, - 0x5b64, 0x0598, - 0x5b65, 0x1958, - 0x5b66, 0x454e, - 0x5b68, 0x461d, - 0x5b69, 0x0700, - 0x5b6b, 0x0891, - 0x5b6c, 0x1c78, - 0x5b6d, 0x3e5f, - 0x5b6e, 0x1eb8, - 0x5b70, 0x0a51, - 0x5b71, 0x0c2a, - 0x5b72, 0x1eb7, - 0x5b73, 0x0c29, - 0x5b74, 0x3732, - 0x5b75, 0x0fb7, - 0x5b76, 0x410a, - 0x5b77, 0x265f, - 0x5b78, 0x12aa, - 0x5b7a, 0x13c6, - 0x5b7b, 0x2d58, - 0x5b7c, 0x410c, - 0x5b7d, 0x1611, - 0x5b7f, 0x16c0, - 0x5b80, 0x0225, - 0x5b81, 0x179e, - 0x5b82, 0x4044, - 0x5b83, 0x0334, - 0x5b84, 0x179f, - 0x5b85, 0x03c3, - 0x5b87, 0x03c1, - 0x5b89, 0x03c4, - 0x5b8b, 0x0482, - 0x5b8c, 0x0481, - 0x5b8e, 0x1863, - 0x5b8f, 0x0483, - 0x5b90, 0x48e9, - 0x5b92, 0x1864, - 0x5b93, 0x1959, - 0x5b95, 0x195a, - 0x5b97, 0x059a, - 0x5b98, 0x059c, - 0x5b99, 0x059e, - 0x5b9a, 0x059b, - 0x5b9b, 0x059f, - 0x5b9c, 0x059d, - 0x5b9d, 0x4116, - 0x5b9e, 0x454f, - 0x5ba2, 0x0704, - 0x5ba3, 0x0701, - 0x5ba4, 0x0703, - 0x5ba5, 0x0705, - 0x5ba6, 0x0702, - 0x5ba7, 0x1c79, - 0x5ba8, 0x1ab3, - 0x5baa, 0x417b, - 0x5bac, 0x1c7b, - 0x5bad, 0x1c7a, - 0x5bae, 0x0897, - 0x5bb0, 0x0893, - 0x5bb3, 0x0894, - 0x5bb4, 0x0896, - 0x5bb5, 0x0898, - 0x5bb6, 0x0895, - 0x5bb8, 0x089a, - 0x5bb9, 0x0899, - 0x5bbf, 0x0a56, - 0x5bc0, 0x1eba, - 0x5bc1, 0x1eb9, - 0x5bc2, 0x0a55, - 0x5bc3, 0x3f25, - 0x5bc4, 0x0a54, - 0x5bc5, 0x0a53, - 0x5bc6, 0x0a57, - 0x5bc7, 0x0a52, - 0x5bca, 0x2110, - 0x5bcb, 0x210d, - 0x5bcc, 0x0c2c, - 0x5bcd, 0x210c, - 0x5bce, 0x2111, - 0x5bd0, 0x0c2e, - 0x5bd1, 0x210f, - 0x5bd2, 0x0c2b, - 0x5bd3, 0x0c2d, - 0x5bd4, 0x210e, - 0x5bd5, 0x4111, - 0x5bd6, 0x23b7, - 0x5bd7, 0x42bb, - 0x5bd8, 0x23b8, - 0x5bde, 0x0fb8, - 0x5bdf, 0x0fc0, - 0x5be0, 0x2660, - 0x5be1, 0x0fba, - 0x5be2, 0x0fbe, - 0x5be3, 0x2661, - 0x5be4, 0x0fbf, - 0x5be5, 0x0fbb, - 0x5be7, 0x0fb9, - 0x5be8, 0x0fbd, - 0x5be9, 0x1132, - 0x5bea, 0x210b, - 0x5beb, 0x1133, - 0x5bec, 0x1131, - 0x5bee, 0x1130, - 0x5bef, 0x2b28, - 0x5bf0, 0x12ab, - 0x5bf1, 0x2d59, - 0x5bf3, 0x4115, - 0x5bf5, 0x157b, - 0x5bf6, 0x1612, - 0x5bf8, 0x0282, - 0x5bfa, 0x03c5, - 0x5bff, 0x40dd, - 0x5c01, 0x0706, - 0x5c03, 0x1c7c, - 0x5c04, 0x089b, - 0x5c05, 0x4118, - 0x5c07, 0x0a5a, - 0x5c08, 0x0a59, - 0x5c09, 0x0a58, - 0x5c0a, 0x0c2f, - 0x5c0c, 0x2112, - 0x5c0d, 0x0fc1, - 0x5c0e, 0x12ac, - 0x5c0f, 0x0283, - 0x5c10, 0x1787, - 0x5c11, 0x02c7, - 0x5c12, 0x17a0, - 0x5c13, 0x411a, - 0x5c14, 0x411c, - 0x5c15, 0x17dd, - 0x5c16, 0x03c6, - 0x5c1a, 0x05a0, - 0x5c1c, 0x45ea, - 0x5c1e, 0x3a29, - 0x5c1f, 0x23ba, - 0x5c20, 0x3d89, - 0x5c22, 0x0284, - 0x5c23, 0x44e8, - 0x5c24, 0x02c8, - 0x5c25, 0x17de, - 0x5c28, 0x1865, - 0x5c2a, 0x1866, - 0x5c2c, 0x0484, - 0x5c30, 0x2113, - 0x5c31, 0x0c31, - 0x5c33, 0x23bb, - 0x5c37, 0x13c7, - 0x5c38, 0x0285, - 0x5c39, 0x0299, - 0x5c3a, 0x02c9, - 0x5c3b, 0x17a1, - 0x5c3c, 0x0335, - 0x5c3e, 0x0488, - 0x5c3f, 0x0487, - 0x5c40, 0x0485, - 0x5c44, 0x195b, - 0x5c45, 0x05a2, - 0x5c47, 0x195c, - 0x5c48, 0x05a1, - 0x5c49, 0x411f, - 0x5c4a, 0x3f5c, - 0x5c4b, 0x070a, - 0x5c4c, 0x1ab4, - 0x5c4d, 0x0709, - 0x5c4e, 0x0707, - 0x5c50, 0x089e, - 0x5c51, 0x089c, - 0x5c53, 0x3f02, - 0x5c54, 0x1c7e, - 0x5c55, 0x089d, - 0x5c56, 0x1c7d, - 0x5c58, 0x0892, - 0x5c59, 0x1ebb, - 0x5c5c, 0x0a5c, - 0x5c5e, 0x3d67, - 0x5c60, 0x0a5b, - 0x5c62, 0x0fc2, - 0x5c63, 0x2662, - 0x5c64, 0x1134, - 0x5c67, 0x28b7, - 0x5c68, 0x13c8, - 0x5c69, 0x2f19, - 0x5c6c, 0x166e, - 0x5c6d, 0x3483, - 0x5c6e, 0x1776, - 0x5c6f, 0x02ca, - 0x5c71, 0x0286, - 0x5c73, 0x17a3, - 0x5c74, 0x17a2, - 0x5c79, 0x03c7, - 0x5c7a, 0x17e0, - 0x5c7c, 0x17df, - 0x5c7e, 0x17e2, - 0x5c85, 0x4121, - 0x5c86, 0x186e, - 0x5c88, 0x1869, - 0x5c89, 0x186b, - 0x5c8a, 0x186d, - 0x5c8b, 0x186a, - 0x5c8c, 0x048c, - 0x5c8d, 0x1867, - 0x5c8f, 0x1868, - 0x5c90, 0x0489, - 0x5c92, 0x186c, - 0x5c93, 0x186f, - 0x5c94, 0x048b, - 0x5c95, 0x1870, - 0x5c99, 0x468c, - 0x5c9a, 0x4551, - 0x5c9c, 0x495a, - 0x5c9d, 0x196a, - 0x5c9e, 0x3a2a, - 0x5c9f, 0x1964, - 0x5ca0, 0x195f, - 0x5ca1, 0x05a5, - 0x5ca2, 0x1967, - 0x5ca3, 0x1965, - 0x5ca4, 0x195e, - 0x5ca5, 0x196b, - 0x5ca6, 0x196e, - 0x5ca7, 0x1969, - 0x5ca8, 0x1962, - 0x5ca9, 0x05a7, - 0x5caa, 0x1968, - 0x5cab, 0x05a8, - 0x5cac, 0x1963, - 0x5cad, 0x1966, - 0x5cae, 0x195d, - 0x5caf, 0x1961, - 0x5cb0, 0x196d, - 0x5cb1, 0x05a9, - 0x5cb3, 0x05aa, - 0x5cb5, 0x1960, - 0x5cb6, 0x196c, - 0x5cb7, 0x05a4, - 0x5cb8, 0x05a6, - 0x5cba, 0x412b, - 0x5cc1, 0x43b8, - 0x5cc2, 0x3d4c, - 0x5cc6, 0x1ac5, - 0x5cc7, 0x1abe, - 0x5cc8, 0x1ac4, - 0x5cc9, 0x1abd, - 0x5cca, 0x1abf, - 0x5ccb, 0x1ab9, - 0x5ccc, 0x1ab7, - 0x5cce, 0x1ac6, - 0x5ccf, 0x1ac3, - 0x5cd0, 0x1ab5, - 0x5cd1, 0x3f13, - 0x5cd2, 0x070c, - 0x5cd3, 0x1ac1, - 0x5cd6, 0x1ac0, - 0x5cd7, 0x1ab8, - 0x5cd8, 0x1ab6, - 0x5cd9, 0x070b, - 0x5cda, 0x1abc, - 0x5cdb, 0x1aba, - 0x5cde, 0x1abb, - 0x5cdf, 0x1ac7, - 0x5ce5, 0x4637, - 0x5ce8, 0x08a3, - 0x5ce9, 0x4122, - 0x5cea, 0x08a2, - 0x5cec, 0x1c7f, - 0x5ced, 0x089f, - 0x5cee, 0x1c81, - 0x5cef, 0x4123, - 0x5cf0, 0x08a4, - 0x5cf1, 0x1c82, - 0x5cf4, 0x08a7, - 0x5cf6, 0x08a5, - 0x5cf7, 0x1c83, - 0x5cf8, 0x1ac8, - 0x5cf9, 0x1c85, - 0x5cfb, 0x08a1, - 0x5cfd, 0x08a0, - 0x5cff, 0x1c80, - 0x5d00, 0x1c84, - 0x5d01, 0x08a6, - 0x5d06, 0x0a5f, - 0x5d07, 0x0a5e, - 0x5d0b, 0x1ebd, - 0x5d0c, 0x1ec1, - 0x5d0d, 0x1ec3, - 0x5d0e, 0x0a60, - 0x5d0f, 0x1ec6, - 0x5d10, 0x4127, - 0x5d11, 0x0a64, - 0x5d12, 0x1ec8, - 0x5d14, 0x0a66, - 0x5d15, 0x43b9, - 0x5d16, 0x0a62, - 0x5d17, 0x0a6a, - 0x5d18, 0x4128, - 0x5d19, 0x0a67, - 0x5d1a, 0x1ebf, - 0x5d1b, 0x0a61, - 0x5d1d, 0x1ebe, - 0x5d1e, 0x1ebc, - 0x5d1f, 0x1eca, - 0x5d20, 0x1ec0, - 0x5d22, 0x0a63, - 0x5d23, 0x1ec9, - 0x5d24, 0x0a68, - 0x5d25, 0x1ec5, - 0x5d26, 0x1ec4, - 0x5d27, 0x0a69, - 0x5d28, 0x1ec2, - 0x5d29, 0x0a65, - 0x5d2c, 0x3df7, - 0x5d2e, 0x1ecb, - 0x5d2f, 0x46d3, - 0x5d30, 0x1ec7, - 0x5d31, 0x2122, - 0x5d32, 0x2129, - 0x5d33, 0x211e, - 0x5d34, 0x0c34, - 0x5d35, 0x211a, - 0x5d36, 0x212a, - 0x5d37, 0x2114, - 0x5d38, 0x2127, - 0x5d39, 0x2125, - 0x5d3a, 0x211f, - 0x5d3c, 0x2128, - 0x5d3d, 0x2121, - 0x5d3e, 0x4629, - 0x5d3f, 0x2119, - 0x5d40, 0x212b, - 0x5d41, 0x2117, - 0x5d42, 0x2124, - 0x5d43, 0x2115, - 0x5d45, 0x212c, - 0x5d46, 0x4129, - 0x5d47, 0x0c35, - 0x5d48, 0x462a, - 0x5d49, 0x2126, - 0x5d4a, 0x23be, - 0x5d4b, 0x2118, - 0x5d4c, 0x0c32, - 0x5d4e, 0x211c, - 0x5d50, 0x0c33, - 0x5d51, 0x211b, - 0x5d52, 0x2120, - 0x5d55, 0x211d, - 0x5d56, 0x43ba, - 0x5d57, 0x3fca, - 0x5d59, 0x2123, - 0x5d5b, 0x3dd5, - 0x5d5e, 0x23c2, - 0x5d62, 0x23c5, - 0x5d63, 0x23bd, - 0x5d65, 0x23bf, - 0x5d67, 0x23c4, - 0x5d68, 0x23c3, - 0x5d69, 0x0dfd, - 0x5d6b, 0x2116, - 0x5d6c, 0x23c1, - 0x5d6f, 0x0dfe, - 0x5d70, 0x46e4, - 0x5d71, 0x23bc, - 0x5d72, 0x23c0, - 0x5d74, 0x3eef, - 0x5d77, 0x2669, - 0x5d79, 0x2670, - 0x5d7a, 0x2667, - 0x5d7c, 0x266e, - 0x5d7d, 0x2665, - 0x5d7e, 0x266d, - 0x5d7f, 0x2671, - 0x5d80, 0x2664, - 0x5d81, 0x2668, - 0x5d82, 0x2663, - 0x5d84, 0x0fc3, - 0x5d85, 0x3e34, - 0x5d86, 0x2666, - 0x5d87, 0x0fc4, - 0x5d88, 0x266c, - 0x5d89, 0x266b, - 0x5d8a, 0x266a, - 0x5d8b, 0x4124, - 0x5d8d, 0x266f, - 0x5d8e, 0x3f0c, - 0x5d92, 0x28bb, - 0x5d93, 0x28bd, - 0x5d94, 0x1137, - 0x5d95, 0x28be, - 0x5d97, 0x28b9, - 0x5d99, 0x28b8, - 0x5d9a, 0x28c2, - 0x5d9c, 0x28c0, - 0x5d9d, 0x1136, - 0x5d9e, 0x28c3, - 0x5d9f, 0x28ba, - 0x5da0, 0x28bf, - 0x5da1, 0x28c1, - 0x5da2, 0x28bc, - 0x5da4, 0x462d, - 0x5da7, 0x2b2c, - 0x5da8, 0x2b31, - 0x5da9, 0x2b2b, - 0x5daa, 0x2b30, - 0x5dab, 0x3e39, - 0x5dac, 0x2b29, - 0x5dad, 0x2b33, - 0x5dae, 0x2b2f, - 0x5daf, 0x2b34, - 0x5db0, 0x2b2e, - 0x5db1, 0x2b2a, - 0x5db2, 0x2b32, - 0x5db4, 0x2b35, - 0x5db5, 0x2b2d, - 0x5db6, 0x4158, - 0x5db7, 0x2d5b, - 0x5db8, 0x13cc, - 0x5db9, 0x462e, - 0x5dba, 0x13ca, - 0x5dbc, 0x13c9, - 0x5dbd, 0x13cb, - 0x5dc0, 0x2f1b, - 0x5dc1, 0x3bff, - 0x5dc2, 0x3023, - 0x5dc3, 0x308c, - 0x5dc6, 0x31cd, - 0x5dc9, 0x1613, - 0x5dcb, 0x32ce, - 0x5dcd, 0x166f, - 0x5dcf, 0x32cf, - 0x5dd1, 0x337f, - 0x5dd2, 0x16c2, - 0x5dd4, 0x16c1, - 0x5dd5, 0x337e, - 0x5dd6, 0x16f7, - 0x5dd7, 0x412c, - 0x5dd8, 0x3414, - 0x5ddb, 0x0226, - 0x5ddd, 0x0287, - 0x5dde, 0x03c8, - 0x5ddf, 0x17e3, - 0x5de0, 0x1871, - 0x5de1, 0x051a, - 0x5de2, 0x0a6b, - 0x5de5, 0x0288, - 0x5de6, 0x0338, - 0x5de7, 0x0337, - 0x5de8, 0x0336, - 0x5deb, 0x048d, - 0x5dee, 0x08a8, - 0x5df0, 0x23c6, - 0x5df1, 0x0289, - 0x5df4, 0x02cb, - 0x5df5, 0x3f61, - 0x5df7, 0x070d, - 0x5df9, 0x1ac9, - 0x5dfd, 0x0c36, - 0x5dfe, 0x028c, - 0x5dff, 0x1788, - 0x5e02, 0x0339, - 0x5e04, 0x17a4, - 0x5e06, 0x03c9, - 0x5e09, 0x4140, - 0x5e0a, 0x1872, - 0x5e0b, 0x3d8a, - 0x5e0c, 0x048e, - 0x5e0e, 0x1873, - 0x5e11, 0x05b0, - 0x5e12, 0x3f2e, - 0x5e14, 0x1970, - 0x5e15, 0x05ae, - 0x5e16, 0x05ad, - 0x5e17, 0x196f, - 0x5e18, 0x05ab, - 0x5e19, 0x1971, - 0x5e1a, 0x05ac, - 0x5e1b, 0x05af, - 0x5e1d, 0x070e, - 0x5e1f, 0x0710, - 0x5e20, 0x1acd, - 0x5e21, 0x1aca, - 0x5e24, 0x1ace, - 0x5e25, 0x070f, - 0x5e28, 0x1c87, - 0x5e29, 0x1c86, - 0x5e2b, 0x08aa, - 0x5e2d, 0x08a9, - 0x5e2e, 0x4135, - 0x5e33, 0x0a6e, - 0x5e34, 0x1ecd, - 0x5e36, 0x0a6d, - 0x5e37, 0x0a6f, - 0x5e38, 0x0a6c, - 0x5e3d, 0x0c38, - 0x5e3e, 0x1ecc, - 0x5e40, 0x0c39, - 0x5e41, 0x212e, - 0x5e42, 0x43a0, - 0x5e43, 0x0c3a, - 0x5e44, 0x212d, - 0x5e45, 0x0c37, - 0x5e48, 0x3a2c, - 0x5e4a, 0x23c9, - 0x5e4b, 0x23cb, - 0x5e4c, 0x0dff, - 0x5e4d, 0x23ca, - 0x5e4e, 0x23c8, - 0x5e4f, 0x23c7, - 0x5e53, 0x2674, - 0x5e54, 0x0fc9, - 0x5e55, 0x0fc7, - 0x5e57, 0x0fc8, - 0x5e58, 0x2672, - 0x5e5b, 0x0fc5, - 0x5e5c, 0x28c7, - 0x5e5d, 0x28c5, - 0x5e5e, 0x3a2b, - 0x5e5f, 0x1139, - 0x5e60, 0x28c6, - 0x5e61, 0x113a, - 0x5e62, 0x1138, - 0x5e63, 0x0fc6, - 0x5e66, 0x2b38, - 0x5e67, 0x2b36, - 0x5e69, 0x28c4, - 0x5e6a, 0x2d5d, - 0x5e6b, 0x13cd, - 0x5e6c, 0x2d5c, - 0x5e6d, 0x2f1c, - 0x5e6f, 0x2b39, - 0x5e70, 0x308d, - 0x5e72, 0x028d, - 0x5e73, 0x033b, - 0x5e74, 0x03cb, - 0x5e75, 0x17e4, - 0x5e76, 0x03ca, - 0x5e78, 0x05b1, - 0x5e79, 0x0e00, - 0x5e7a, 0x0227, - 0x5e7b, 0x02cc, - 0x5e7c, 0x033c, - 0x5e7d, 0x0711, - 0x5e7e, 0x0c3b, - 0x5e7f, 0x0228, - 0x5e80, 0x17a5, - 0x5e82, 0x17a6, - 0x5e83, 0x4108, - 0x5e84, 0x17e5, - 0x5e86, 0x4552, - 0x5e87, 0x0490, - 0x5e88, 0x1877, - 0x5e89, 0x1875, - 0x5e8a, 0x0491, - 0x5e8b, 0x1874, - 0x5e8c, 0x1876, - 0x5e8d, 0x1878, - 0x5e8f, 0x048f, - 0x5e95, 0x05b5, - 0x5e97, 0x05b3, - 0x5e9a, 0x05b2, - 0x5e9b, 0x1ad2, - 0x5e9c, 0x05b4, - 0x5ea0, 0x0712, - 0x5ea2, 0x1ad1, - 0x5ea3, 0x1ad3, - 0x5ea4, 0x1ad0, - 0x5ea5, 0x1ad4, - 0x5ea6, 0x0713, - 0x5ea7, 0x08ad, - 0x5ea8, 0x1c88, - 0x5eaa, 0x1c8a, - 0x5eab, 0x08ab, - 0x5eac, 0x1c8b, - 0x5ead, 0x08ac, - 0x5eae, 0x1c89, - 0x5eb0, 0x1acf, - 0x5eb1, 0x1ece, - 0x5eb2, 0x1ed1, - 0x5eb4, 0x1ecf, - 0x5eb5, 0x0a73, - 0x5eb6, 0x0a72, - 0x5eb7, 0x0a70, - 0x5eb9, 0x1ed0, - 0x5ebd, 0x43bd, - 0x5ebe, 0x0a74, - 0x5ec1, 0x0c3d, - 0x5ec4, 0x0c3f, - 0x5ec5, 0x23cc, - 0x5ec6, 0x23ce, - 0x5ec7, 0x23d0, - 0x5ec8, 0x0e02, - 0x5ec9, 0x0e01, - 0x5eca, 0x0c3c, - 0x5ecb, 0x23cf, - 0x5ecc, 0x23cd, - 0x5ecd, 0x3a30, - 0x5ece, 0x2678, - 0x5ed0, 0x413d, - 0x5ed1, 0x2676, - 0x5ed2, 0x267c, - 0x5ed3, 0x0fca, - 0x5ed4, 0x267d, - 0x5ed5, 0x267a, - 0x5ed6, 0x0fcb, - 0x5ed7, 0x2677, - 0x5ed8, 0x2675, - 0x5ed9, 0x267b, - 0x5eda, 0x113c, - 0x5edb, 0x28c9, - 0x5edc, 0x2679, - 0x5edd, 0x113e, - 0x5ede, 0x28ca, - 0x5edf, 0x113d, - 0x5ee0, 0x1140, - 0x5ee1, 0x28cb, - 0x5ee2, 0x113b, - 0x5ee3, 0x113f, - 0x5ee5, 0x2b3e, - 0x5ee6, 0x2b3c, - 0x5ee7, 0x2b3b, - 0x5ee8, 0x2b3d, - 0x5ee9, 0x2b3a, - 0x5eec, 0x157d, - 0x5eee, 0x31cf, - 0x5ef1, 0x32d0, - 0x5ef2, 0x3380, - 0x5ef3, 0x1742, - 0x5ef4, 0x0229, - 0x5ef6, 0x05b7, - 0x5ef7, 0x0492, - 0x5ef8, 0x386f, - 0x5ef9, 0x4143, - 0x5efa, 0x0714, - 0x5efb, 0x4144, - 0x5efc, 0x4146, - 0x5efe, 0x028e, - 0x5eff, 0x02cd, - 0x5f01, 0x033d, - 0x5f02, 0x17e6, - 0x5f04, 0x0493, - 0x5f05, 0x1879, - 0x5f07, 0x1ad5, - 0x5f08, 0x0715, - 0x5f0a, 0x0fcc, - 0x5f0b, 0x028f, - 0x5f0c, 0x3a3e, - 0x5f0d, 0x4149, - 0x5f0e, 0x3a3f, - 0x5f0f, 0x03cc, - 0x5f12, 0x0e03, - 0x5f13, 0x0290, - 0x5f14, 0x02ce, - 0x5f17, 0x033f, - 0x5f18, 0x033e, - 0x5f1a, 0x17e7, - 0x5f1b, 0x03cd, - 0x5f1d, 0x187a, - 0x5f1f, 0x0494, - 0x5f22, 0x1973, - 0x5f25, 0x4630, - 0x5f26, 0x05b8, - 0x5f28, 0x1972, - 0x5f29, 0x05ba, - 0x5f2d, 0x0716, - 0x5f2e, 0x1ad6, - 0x5f30, 0x1c8d, - 0x5f31, 0x08ae, - 0x5f33, 0x1c8c, - 0x5f35, 0x0a75, - 0x5f36, 0x1ed3, - 0x5f37, 0x0a76, - 0x5f38, 0x1ed4, - 0x5f3a, 0x414e, - 0x5f3c, 0x0c40, - 0x5f40, 0x23d1, - 0x5f43, 0x267f, - 0x5f44, 0x267e, - 0x5f46, 0x0fcd, - 0x5f48, 0x1141, - 0x5f49, 0x28cc, - 0x5f4a, 0x12ad, - 0x5f4b, 0x2b3f, - 0x5f4c, 0x13ce, - 0x5f4d, 0x3ba5, - 0x5f4e, 0x16c3, - 0x5f4f, 0x3416, - 0x5f50, 0x022a, - 0x5f51, 0x44e9, - 0x5f54, 0x1976, - 0x5f56, 0x1ad7, - 0x5f57, 0x0a77, - 0x5f58, 0x212f, - 0x5f59, 0x0e04, - 0x5f5c, 0x3d5a, - 0x5f5d, 0x14cf, - 0x5f61, 0x022b, - 0x5f62, 0x0496, - 0x5f63, 0x4152, - 0x5f64, 0x0495, - 0x5f65, 0x0717, - 0x5f67, 0x1c8e, - 0x5f69, 0x0a79, - 0x5f6a, 0x0b89, - 0x5f6b, 0x0a7a, - 0x5f6c, 0x0a78, - 0x5f6d, 0x0c41, - 0x5f6f, 0x2680, - 0x5f70, 0x0fce, - 0x5f71, 0x1142, - 0x5f72, 0x4154, - 0x5f73, 0x1777, - 0x5f74, 0x17e8, - 0x5f76, 0x187c, - 0x5f77, 0x0497, - 0x5f78, 0x187b, - 0x5f79, 0x0498, - 0x5f7b, 0x4058, - 0x5f7c, 0x05be, - 0x5f7d, 0x1979, - 0x5f7e, 0x1978, - 0x5f7f, 0x05bd, - 0x5f80, 0x05bb, - 0x5f82, 0x1977, - 0x5f83, 0x4631, - 0x5f85, 0x0719, - 0x5f86, 0x1ad8, - 0x5f87, 0x071c, - 0x5f88, 0x0718, - 0x5f89, 0x071e, - 0x5f8a, 0x071a, - 0x5f8c, 0x071d, - 0x5f90, 0x08b1, - 0x5f91, 0x08b0, - 0x5f92, 0x08af, - 0x5f96, 0x1ed6, - 0x5f97, 0x0a7b, - 0x5f98, 0x0a7e, - 0x5f99, 0x0a7c, - 0x5f9b, 0x1ed5, - 0x5f9c, 0x0a81, - 0x5f9e, 0x0a7d, - 0x5f9f, 0x1ed7, - 0x5fa0, 0x0a80, - 0x5fa1, 0x0a7f, - 0x5fa4, 0x402c, - 0x5fa5, 0x2131, - 0x5fa6, 0x2130, - 0x5fa7, 0x4157, - 0x5fa8, 0x0c44, - 0x5fa9, 0x0c42, - 0x5fab, 0x2132, - 0x5fac, 0x0e05, - 0x5fad, 0x23d3, - 0x5fae, 0x0e06, - 0x5faf, 0x23d2, - 0x5fb1, 0x3d98, - 0x5fb2, 0x28cd, - 0x5fb5, 0x1144, - 0x5fb6, 0x2681, - 0x5fb7, 0x1143, - 0x5fb9, 0x0fcf, - 0x5fba, 0x3f9f, - 0x5fbb, 0x2b41, - 0x5fbc, 0x2b40, - 0x5fbd, 0x13cf, - 0x5fbe, 0x2d5e, - 0x5fbf, 0x308e, - 0x5fc0, 0x31d1, - 0x5fc3, 0x02d0, - 0x5fc4, 0x44ea, - 0x5fc5, 0x0340, - 0x5fc9, 0x17a7, - 0x5fcc, 0x049a, - 0x5fcd, 0x049c, - 0x5fcf, 0x17eb, - 0x5fd0, 0x187f, - 0x5fd1, 0x187e, - 0x5fd2, 0x187d, - 0x5fd4, 0x17ea, - 0x5fd5, 0x17e9, - 0x5fd6, 0x03cf, - 0x5fd7, 0x049b, - 0x5fd8, 0x0499, - 0x5fd9, 0x03ce, - 0x5fdb, 0x3a4a, - 0x5fdd, 0x05bf, - 0x5fde, 0x197a, - 0x5fdf, 0x41af, - 0x5fe0, 0x05c0, - 0x5fe1, 0x1884, - 0x5fe3, 0x1886, - 0x5fe4, 0x1885, - 0x5fe5, 0x197b, - 0x5fe8, 0x1881, - 0x5fea, 0x04a0, - 0x5feb, 0x049e, - 0x5fed, 0x1880, - 0x5fee, 0x1882, - 0x5fef, 0x1888, - 0x5ff1, 0x049d, - 0x5ff3, 0x1883, - 0x5ff4, 0x188c, - 0x5ff5, 0x05c2, - 0x5ff7, 0x1889, - 0x5ff8, 0x049f, - 0x5ffa, 0x1887, - 0x5ffb, 0x188a, - 0x5ffd, 0x05c1, - 0x5fff, 0x05c3, - 0x6000, 0x188b, - 0x6009, 0x198f, - 0x600a, 0x1982, - 0x600b, 0x1980, - 0x600c, 0x198e, - 0x600d, 0x1989, - 0x600e, 0x0723, - 0x600f, 0x05c4, - 0x6010, 0x198a, - 0x6011, 0x198d, - 0x6012, 0x071f, - 0x6013, 0x198c, - 0x6014, 0x05c5, - 0x6015, 0x05ca, - 0x6016, 0x05c8, - 0x6017, 0x1983, - 0x6019, 0x197e, - 0x601a, 0x1985, - 0x601b, 0x05cf, - 0x601c, 0x1990, - 0x601d, 0x0720, - 0x601e, 0x1986, - 0x6020, 0x0721, - 0x6021, 0x05cb, - 0x6022, 0x1988, - 0x6023, 0x4185, - 0x6024, 0x1ae7, - 0x6025, 0x0722, - 0x6026, 0x197d, - 0x6027, 0x05cc, - 0x6028, 0x0724, - 0x6029, 0x05cd, - 0x602a, 0x05c9, - 0x602b, 0x05ce, - 0x602c, 0x1987, - 0x602d, 0x197c, - 0x602e, 0x198b, - 0x602f, 0x05c6, - 0x6031, 0x4161, - 0x6032, 0x197f, - 0x6033, 0x1984, - 0x6034, 0x1981, - 0x6035, 0x05c7, - 0x6037, 0x1ad9, - 0x6039, 0x1ada, - 0x603b, 0x4553, - 0x6040, 0x1ae4, - 0x6041, 0x1c92, - 0x6042, 0x1ae5, - 0x6043, 0x072a, - 0x6044, 0x1ae8, - 0x6045, 0x1ade, - 0x6046, 0x0729, - 0x6047, 0x1ae0, - 0x6049, 0x1ae1, - 0x604a, 0x4074, - 0x604c, 0x1ae3, - 0x604d, 0x0725, - 0x6050, 0x08b5, - 0x6052, 0x36ec, - 0x6053, 0x1adf, - 0x6054, 0x1adb, - 0x6055, 0x08b6, - 0x6058, 0x1ae9, - 0x6059, 0x08b2, - 0x605a, 0x1c90, - 0x605b, 0x1ae2, - 0x605d, 0x1c8f, - 0x605e, 0x1add, - 0x605f, 0x1ae6, - 0x6062, 0x0728, - 0x6063, 0x08b3, - 0x6064, 0x072e, - 0x6065, 0x08b4, - 0x6066, 0x1aea, - 0x6067, 0x1c91, - 0x6068, 0x0727, - 0x6069, 0x08b8, - 0x606a, 0x072d, - 0x606b, 0x072c, - 0x606c, 0x072b, - 0x606d, 0x08b7, - 0x606e, 0x1aeb, - 0x606f, 0x08b9, - 0x6070, 0x0726, - 0x6072, 0x1adc, - 0x6075, 0x3a56, - 0x6077, 0x4005, - 0x607e, 0x3a47, - 0x607f, 0x0a82, - 0x6080, 0x1c95, - 0x6081, 0x1c97, - 0x6083, 0x1c99, - 0x6084, 0x08ba, - 0x6085, 0x08c0, - 0x6086, 0x1eda, - 0x6087, 0x1c9d, - 0x6088, 0x1c94, - 0x6089, 0x0a84, - 0x608a, 0x1ed8, - 0x608c, 0x08bf, - 0x608d, 0x08bd, - 0x608e, 0x1c9f, - 0x6090, 0x1ed9, - 0x6092, 0x1c96, - 0x6094, 0x08be, - 0x6095, 0x1c9a, - 0x6096, 0x08c1, - 0x6097, 0x1c9c, - 0x609a, 0x08bc, - 0x609b, 0x1c9b, - 0x609c, 0x1c9e, - 0x609d, 0x1c98, - 0x609e, 0x416a, - 0x609f, 0x08bb, - 0x60a0, 0x0a85, - 0x60a2, 0x1c93, - 0x60a3, 0x0a83, - 0x60a4, 0x4001, - 0x60a7, 0x3adc, - 0x60a8, 0x0a86, - 0x60b0, 0x1edc, - 0x60b1, 0x1ee5, - 0x60b2, 0x0c47, - 0x60b3, 0x416c, - 0x60b4, 0x0a88, - 0x60b5, 0x0a8d, - 0x60b6, 0x0c48, - 0x60b7, 0x1ee7, - 0x60b8, 0x0a94, - 0x60b9, 0x2134, - 0x60ba, 0x1edd, - 0x60bb, 0x0a8c, - 0x60bc, 0x0a8f, - 0x60bd, 0x0a8a, - 0x60be, 0x1edb, - 0x60bf, 0x1ee9, - 0x60c0, 0x1eec, - 0x60c1, 0x2143, - 0x60c3, 0x1eea, - 0x60c4, 0x2138, - 0x60c5, 0x0a8b, - 0x60c6, 0x0a92, - 0x60c7, 0x0a96, - 0x60c8, 0x1ee4, - 0x60c9, 0x2133, - 0x60ca, 0x1ee8, - 0x60cb, 0x0a87, - 0x60cc, 0x2135, - 0x60cd, 0x1eeb, - 0x60ce, 0x2137, - 0x60cf, 0x1ee0, - 0x60d1, 0x0c45, - 0x60d3, 0x1ede, - 0x60d5, 0x0a91, - 0x60d7, 0x4635, - 0x60d8, 0x0a90, - 0x60d9, 0x1ee2, - 0x60da, 0x0a95, - 0x60db, 0x1ee6, - 0x60dc, 0x0a8e, - 0x60dd, 0x1ee3, - 0x60de, 0x3dcc, - 0x60df, 0x0a93, - 0x60e0, 0x0c49, - 0x60e1, 0x0c46, - 0x60e2, 0x2136, - 0x60e3, 0x3d75, - 0x60e4, 0x1ee1, - 0x60e6, 0x0a89, - 0x60e7, 0x3d84, - 0x60e8, 0x3d7b, - 0x60e9, 0x4009, - 0x60f0, 0x0c4e, - 0x60f1, 0x0c52, - 0x60f2, 0x213a, - 0x60f3, 0x0e0b, - 0x60f4, 0x0c50, - 0x60f5, 0x213e, - 0x60f6, 0x0c54, - 0x60f7, 0x23d4, - 0x60f8, 0x2140, - 0x60f9, 0x0e0d, - 0x60fa, 0x0c4c, - 0x60fb, 0x0c4f, - 0x60fc, 0x2141, - 0x60fd, 0x3fa8, - 0x60fe, 0x2142, - 0x60ff, 0x2148, - 0x6100, 0x0c56, - 0x6101, 0x0e0e, - 0x6103, 0x2144, - 0x6104, 0x2149, - 0x6105, 0x213d, - 0x6106, 0x0e18, - 0x6107, 0x3c35, - 0x6108, 0x0e0f, - 0x6109, 0x0c55, - 0x610a, 0x213b, - 0x610b, 0x214a, - 0x610c, 0x3c87, - 0x610d, 0x0e17, - 0x610e, 0x0c53, - 0x610f, 0x0e08, - 0x6110, 0x2147, - 0x6112, 0x0c57, - 0x6113, 0x213f, - 0x6114, 0x2139, - 0x6115, 0x0c4d, - 0x6116, 0x213c, - 0x6118, 0x2145, - 0x6119, 0x3ef6, - 0x611a, 0x0e07, - 0x611b, 0x0e0c, - 0x611c, 0x0c4a, - 0x611d, 0x2146, - 0x611f, 0x0e0a, - 0x6123, 0x0c4b, - 0x6127, 0x0e16, - 0x6128, 0x2683, - 0x6129, 0x23df, - 0x612b, 0x23d7, - 0x612c, 0x2682, - 0x612e, 0x23db, - 0x612f, 0x23dd, - 0x6130, 0x3f37, - 0x6132, 0x23da, - 0x6134, 0x0e15, - 0x6136, 0x23d9, - 0x6137, 0x0e19, - 0x613b, 0x2692, - 0x613d, 0x4636, - 0x613e, 0x0e14, - 0x613f, 0x0fd1, - 0x6140, 0x23e0, - 0x6141, 0x2684, - 0x6142, 0x4174, - 0x6144, 0x0e12, - 0x6145, 0x23d8, - 0x6146, 0x23dc, - 0x6147, 0x0fd0, - 0x6148, 0x0e09, - 0x6149, 0x23d5, - 0x614b, 0x0fd2, - 0x614c, 0x0e11, - 0x614d, 0x0e13, - 0x614e, 0x0e10, - 0x614f, 0x23de, - 0x6150, 0x3c32, - 0x6152, 0x2688, - 0x6154, 0x268e, - 0x6155, 0x1149, - 0x6156, 0x2695, - 0x6158, 0x0fd8, - 0x6159, 0x3fba, - 0x615a, 0x0fd7, - 0x615b, 0x2690, - 0x615c, 0x4186, - 0x615d, 0x1148, - 0x615e, 0x2685, - 0x615f, 0x0fd6, - 0x6160, 0x494c, - 0x6161, 0x2694, - 0x6162, 0x0fd4, - 0x6164, 0x4173, - 0x6165, 0x2691, - 0x6166, 0x28de, - 0x6167, 0x1146, - 0x6168, 0x0c51, - 0x616a, 0x2693, - 0x616b, 0x114d, - 0x616c, 0x268b, - 0x616e, 0x1147, - 0x616f, 0x3fc0, - 0x6170, 0x114c, - 0x6171, 0x2686, - 0x6172, 0x268a, - 0x6173, 0x2687, - 0x6174, 0x268d, - 0x6175, 0x0fd9, - 0x6176, 0x1145, - 0x6177, 0x0fd3, - 0x6179, 0x28d0, - 0x617a, 0x268f, - 0x617c, 0x114b, - 0x617d, 0x3fbd, - 0x617e, 0x114e, - 0x6180, 0x268c, - 0x6181, 0x4177, - 0x6182, 0x114a, - 0x6183, 0x28cf, - 0x6187, 0x417a, - 0x6189, 0x28d4, - 0x618a, 0x12b1, - 0x618b, 0x28ce, - 0x618c, 0x2b4d, - 0x618d, 0x28dd, - 0x618e, 0x1152, - 0x6190, 0x1150, - 0x6191, 0x12af, - 0x6192, 0x28da, - 0x6193, 0x28d6, - 0x6194, 0x1156, - 0x6195, 0x3de0, - 0x6196, 0x2b44, - 0x6198, 0x3a55, - 0x6199, 0x3a54, - 0x619a, 0x1154, - 0x619b, 0x28d5, - 0x619c, 0x4002, - 0x619d, 0x2b42, - 0x619f, 0x28d9, - 0x61a1, 0x28dc, - 0x61a2, 0x28d3, - 0x61a4, 0x1155, - 0x61a7, 0x114f, - 0x61a8, 0x2b43, - 0x61a9, 0x12b0, - 0x61aa, 0x28db, - 0x61ab, 0x1151, - 0x61ac, 0x1153, - 0x61ad, 0x28d8, - 0x61ae, 0x1157, - 0x61af, 0x28d7, - 0x61b0, 0x28d2, - 0x61b1, 0x28d1, - 0x61b2, 0x12ae, - 0x61b3, 0x28df, - 0x61b4, 0x2b46, - 0x61b5, 0x2d60, - 0x61b6, 0x12b3, - 0x61b7, 0x4639, - 0x61b8, 0x2b4c, - 0x61b9, 0x43bf, - 0x61ba, 0x2b4a, - 0x61bc, 0x2d61, - 0x61be, 0x12b4, - 0x61bf, 0x2b4b, - 0x61c0, 0x3a50, - 0x61c1, 0x2b48, - 0x61c2, 0x13d1, - 0x61c3, 0x2d5f, - 0x61c5, 0x2b45, - 0x61c6, 0x2b47, - 0x61c7, 0x13d2, - 0x61c8, 0x12b6, - 0x61c9, 0x13d0, - 0x61ca, 0x12b5, - 0x61cb, 0x13d4, - 0x61cc, 0x2b49, - 0x61cd, 0x12b2, - 0x61cf, 0x463a, - 0x61d0, 0x4181, - 0x61d3, 0x417e, - 0x61d6, 0x2f26, - 0x61d8, 0x2f1e, - 0x61da, 0x38b1, - 0x61de, 0x2d67, - 0x61df, 0x2f1f, - 0x61e0, 0x2d63, - 0x61e2, 0x3fc5, - 0x61e3, 0x14d0, - 0x61e4, 0x2d65, - 0x61e5, 0x2d64, - 0x61e6, 0x13d3, - 0x61e7, 0x2d62, - 0x61e8, 0x2d66, - 0x61e9, 0x2f27, - 0x61ea, 0x2f23, - 0x61eb, 0x2f25, - 0x61ed, 0x2f20, - 0x61f0, 0x2f24, - 0x61f1, 0x2f22, - 0x61f2, 0x157e, - 0x61f5, 0x1581, - 0x61f6, 0x1580, - 0x61f7, 0x157f, - 0x61f8, 0x1614, - 0x61f9, 0x31d3, - 0x61fa, 0x1615, - 0x61fb, 0x308f, - 0x61fc, 0x1670, - 0x61fd, 0x32d1, - 0x61fe, 0x1671, - 0x61ff, 0x16c4, - 0x6200, 0x16f8, - 0x6201, 0x3417, - 0x6203, 0x3418, - 0x6207, 0x3533, - 0x6208, 0x02d1, - 0x6209, 0x17a8, - 0x620a, 0x0341, - 0x620c, 0x03d1, - 0x620e, 0x03d0, - 0x6210, 0x03d3, - 0x6211, 0x04a2, - 0x6212, 0x04a1, - 0x6214, 0x1991, - 0x6215, 0x05d1, - 0x6216, 0x05d0, - 0x6219, 0x1ca0, - 0x621a, 0x0a97, - 0x621f, 0x0c58, - 0x6220, 0x23e1, - 0x6221, 0x0e1a, - 0x6223, 0x23e3, - 0x6224, 0x23e5, - 0x6225, 0x23e4, - 0x6227, 0x2697, - 0x6229, 0x2696, - 0x622a, 0x0fda, - 0x622b, 0x2698, - 0x622c, 0x463c, - 0x622d, 0x28e0, - 0x622e, 0x1158, - 0x6230, 0x12b7, - 0x6232, 0x13d5, - 0x6233, 0x14d1, - 0x6234, 0x13d6, - 0x6236, 0x02d2, - 0x6237, 0x451a, - 0x6239, 0x3fc2, - 0x623a, 0x188d, - 0x623d, 0x1992, - 0x623e, 0x05d3, - 0x623f, 0x05d2, - 0x6240, 0x05d4, - 0x6241, 0x072f, - 0x6242, 0x1aec, - 0x6246, 0x1ca1, - 0x6247, 0x08c2, - 0x6248, 0x0a99, - 0x6249, 0x0c59, - 0x624a, 0x214b, - 0x624b, 0x02d3, - 0x624c, 0x44ec, - 0x624d, 0x0291, - 0x624e, 0x02d4, - 0x6250, 0x17a9, - 0x6251, 0x0345, - 0x6252, 0x0344, - 0x6253, 0x0342, - 0x6258, 0x03d6, - 0x6259, 0x17f2, - 0x625a, 0x17f4, - 0x625b, 0x03d5, - 0x625c, 0x17ec, - 0x625e, 0x17ed, - 0x6260, 0x17f3, - 0x6261, 0x17ef, - 0x6262, 0x17f1, - 0x6263, 0x03d4, - 0x6264, 0x17ee, - 0x6265, 0x17f5, - 0x6266, 0x17f0, - 0x6268, 0x3f15, - 0x626d, 0x04a9, - 0x626e, 0x04b2, - 0x626f, 0x04b0, - 0x6270, 0x1897, - 0x6271, 0x1894, - 0x6272, 0x189c, - 0x6273, 0x04ae, - 0x6274, 0x189d, - 0x6276, 0x04a7, - 0x6277, 0x189a, - 0x6279, 0x04ad, - 0x627a, 0x1896, - 0x627b, 0x1895, - 0x627c, 0x04ab, - 0x627d, 0x189b, - 0x627e, 0x04ac, - 0x627f, 0x05d5, - 0x6280, 0x04a6, - 0x6281, 0x1898, - 0x6282, 0x3f86, - 0x6283, 0x188e, - 0x6284, 0x04a3, - 0x6285, 0x3f50, - 0x6286, 0x04b6, - 0x6287, 0x1893, - 0x6288, 0x1899, - 0x6289, 0x04a8, - 0x628a, 0x04aa, - 0x628c, 0x188f, - 0x628e, 0x1890, - 0x6290, 0x43c0, - 0x6291, 0x04b5, - 0x6292, 0x04af, - 0x6293, 0x04b4, - 0x6294, 0x1892, - 0x6295, 0x04b3, - 0x6296, 0x04a5, - 0x6297, 0x04a4, - 0x6298, 0x04b1, - 0x629d, 0x3e96, - 0x62a4, 0x3a69, - 0x62a6, 0x3fc1, - 0x62a8, 0x05e3, - 0x62a9, 0x199e, - 0x62aa, 0x1997, - 0x62ab, 0x05de, - 0x62ac, 0x05f1, - 0x62ad, 0x1993, - 0x62ae, 0x199a, - 0x62af, 0x199c, - 0x62b0, 0x199f, - 0x62b1, 0x05ec, - 0x62b3, 0x199b, - 0x62b4, 0x1994, - 0x62b5, 0x05ea, - 0x62b6, 0x1998, - 0x62b8, 0x19a0, - 0x62b9, 0x05db, - 0x62bb, 0x199d, - 0x62bc, 0x05e5, - 0x62bd, 0x05e4, - 0x62be, 0x1996, - 0x62bf, 0x05d9, - 0x62c2, 0x05da, - 0x62c3, 0x3d8f, - 0x62c4, 0x05d8, - 0x62c5, 0x418a, - 0x62c6, 0x05f0, - 0x62c7, 0x05e8, - 0x62c8, 0x05e2, - 0x62c9, 0x05d6, - 0x62ca, 0x1999, - 0x62cb, 0x05e1, - 0x62cc, 0x05d7, - 0x62cd, 0x05e9, - 0x62ce, 0x05f2, - 0x62cf, 0x1aee, - 0x62d0, 0x05e6, - 0x62d1, 0x1995, - 0x62d2, 0x05dc, - 0x62d3, 0x05df, - 0x62d5, 0x418c, - 0x62d6, 0x05ee, - 0x62d8, 0x05ed, - 0x62d9, 0x05e7, - 0x62da, 0x05eb, - 0x62db, 0x05dd, - 0x62dc, 0x0730, - 0x62df, 0x401c, - 0x62e5, 0x463d, - 0x62eb, 0x1af4, - 0x62ec, 0x073c, - 0x62ed, 0x0734, - 0x62ee, 0x0736, - 0x62ef, 0x073b, - 0x62f0, 0x1b00, - 0x62f1, 0x0739, - 0x62f2, 0x1ca2, - 0x62f3, 0x08c3, - 0x62f4, 0x073e, - 0x62f5, 0x1af1, - 0x62f6, 0x1af9, - 0x62f7, 0x073a, - 0x62f8, 0x1af8, - 0x62f9, 0x1af5, - 0x62fa, 0x1afd, - 0x62fb, 0x1aff, - 0x62fc, 0x0733, - 0x62fd, 0x0737, - 0x62fe, 0x073d, - 0x62ff, 0x08c5, - 0x6300, 0x1afa, - 0x6301, 0x0735, - 0x6302, 0x0740, - 0x6303, 0x1af3, - 0x6307, 0x0738, - 0x6308, 0x08c4, - 0x6309, 0x0732, - 0x630b, 0x1af0, - 0x630c, 0x1af7, - 0x630d, 0x1aef, - 0x630e, 0x1af2, - 0x630f, 0x1af6, - 0x6310, 0x1ca3, - 0x6311, 0x073f, - 0x6313, 0x1afb, - 0x6315, 0x1afe, - 0x6316, 0x0731, - 0x6318, 0x43c1, - 0x6328, 0x08d3, - 0x6329, 0x1caf, - 0x632a, 0x08d1, - 0x632c, 0x1ca5, - 0x632d, 0x1cb5, - 0x632e, 0x3edd, - 0x632f, 0x08c8, - 0x6331, 0x3a65, - 0x6332, 0x1eed, - 0x6333, 0x1cb7, - 0x6334, 0x1cb1, - 0x6335, 0x3f16, - 0x6336, 0x1ca8, - 0x6337, 0x3a63, - 0x6338, 0x1cba, - 0x6339, 0x1cab, - 0x633a, 0x08ce, - 0x633b, 0x1f04, - 0x633c, 0x1cae, - 0x633d, 0x08d0, - 0x633e, 0x08c7, - 0x6340, 0x1cbc, - 0x6341, 0x1cb0, - 0x6342, 0x08ca, - 0x6343, 0x1ca9, - 0x6344, 0x1ca6, - 0x6346, 0x08cb, - 0x6347, 0x1cb6, - 0x6348, 0x1cbd, - 0x6349, 0x08cd, - 0x634a, 0x1cad, - 0x634b, 0x1cac, - 0x634c, 0x08d5, - 0x634d, 0x08d4, - 0x634e, 0x08c6, - 0x634f, 0x08cc, - 0x6350, 0x08cf, - 0x6351, 0x1cb9, - 0x6354, 0x1cb3, - 0x6355, 0x08c9, - 0x6356, 0x1ca4, - 0x6357, 0x1cbb, - 0x6358, 0x1cb2, - 0x6359, 0x1cb4, - 0x635a, 0x1cb8, - 0x6364, 0x3fc7, - 0x6365, 0x1eee, - 0x6367, 0x0aa1, - 0x6368, 0x0ab5, - 0x6369, 0x0ab4, - 0x636b, 0x0aa9, - 0x636c, 0x418e, - 0x636d, 0x1f00, - 0x636e, 0x1efc, - 0x636f, 0x1ef9, - 0x6370, 0x1f0b, - 0x6371, 0x0aa4, - 0x6372, 0x0a9c, - 0x6375, 0x1efe, - 0x6376, 0x0c69, - 0x6377, 0x0aa0, - 0x6378, 0x1f06, - 0x6379, 0x4367, - 0x637a, 0x0ab6, - 0x637b, 0x0ab3, - 0x637c, 0x1f02, - 0x637d, 0x1ef1, - 0x637f, 0x3f4b, - 0x6380, 0x0ab2, - 0x6381, 0x1f08, - 0x6382, 0x1ef0, - 0x6383, 0x0aa7, - 0x6384, 0x0aab, - 0x6385, 0x1f07, - 0x6387, 0x1efa, - 0x6388, 0x0aac, - 0x6389, 0x0aa6, - 0x638a, 0x1eef, - 0x638b, 0x4188, - 0x638c, 0x0c5b, - 0x638d, 0x1f0a, - 0x638e, 0x1ef8, - 0x638f, 0x0ab1, - 0x6390, 0x1efb, - 0x6391, 0x1f09, - 0x6392, 0x0ab0, - 0x6394, 0x214c, - 0x6396, 0x0a9d, - 0x6397, 0x1ef6, - 0x6398, 0x0aa2, - 0x6399, 0x0aad, - 0x639b, 0x0aa8, - 0x639c, 0x1eff, - 0x639d, 0x1ef5, - 0x639e, 0x1ef3, - 0x639f, 0x1f05, - 0x63a0, 0x0a9a, - 0x63a1, 0x0aae, - 0x63a2, 0x0a9e, - 0x63a3, 0x0c5a, - 0x63a4, 0x1f03, - 0x63a5, 0x0a9f, - 0x63a7, 0x0a9b, - 0x63a8, 0x0aaa, - 0x63a9, 0x0aa5, - 0x63aa, 0x0aa3, - 0x63ab, 0x1ef7, - 0x63ac, 0x0aaf, - 0x63ad, 0x1ef4, - 0x63ae, 0x1f01, - 0x63af, 0x1efd, - 0x63b0, 0x214e, - 0x63b1, 0x214d, - 0x63b9, 0x3e9d, - 0x63bd, 0x1ef2, - 0x63be, 0x215e, - 0x63c0, 0x0c5d, - 0x63c1, 0x46a8, - 0x63c2, 0x2164, - 0x63c3, 0x2153, - 0x63c4, 0x2161, - 0x63c5, 0x23e6, - 0x63c6, 0x0c60, - 0x63c7, 0x2165, - 0x63c8, 0x2168, - 0x63c9, 0x0c5f, - 0x63ca, 0x2156, - 0x63cb, 0x2167, - 0x63cc, 0x2166, - 0x63cd, 0x0c61, - 0x63ce, 0x214f, - 0x63cf, 0x0c5c, - 0x63d0, 0x0c64, - 0x63d1, 0x3a66, - 0x63d2, 0x0c62, - 0x63d3, 0x2163, - 0x63d5, 0x2159, - 0x63d6, 0x0c66, - 0x63d7, 0x216a, - 0x63d8, 0x2162, - 0x63d9, 0x216b, - 0x63da, 0x0c6e, - 0x63db, 0x0c6c, - 0x63dc, 0x2160, - 0x63dd, 0x215f, - 0x63de, 0x3e60, - 0x63df, 0x215d, - 0x63e0, 0x2157, - 0x63e1, 0x0c65, - 0x63e2, 0x4641, - 0x63e3, 0x0c63, - 0x63e4, 0x1caa, - 0x63e5, 0x2150, - 0x63e6, 0x489f, - 0x63e7, 0x2404, - 0x63e8, 0x2151, - 0x63e9, 0x0c5e, - 0x63ea, 0x0c6b, - 0x63eb, 0x23e8, - 0x63ed, 0x0c67, - 0x63ef, 0x2152, - 0x63f0, 0x2169, - 0x63f1, 0x23e7, - 0x63f2, 0x215a, - 0x63f3, 0x2155, - 0x63f4, 0x0c6a, - 0x63f5, 0x215b, - 0x63f6, 0x2158, - 0x63f8, 0x4192, - 0x63f9, 0x0c6f, - 0x63fb, 0x4642, - 0x63fc, 0x3e9c, - 0x63fe, 0x3e9e, - 0x6406, 0x0e2a, - 0x6407, 0x4643, - 0x6409, 0x23eb, - 0x640a, 0x23fe, - 0x640b, 0x2403, - 0x640c, 0x23f7, - 0x640d, 0x0e26, - 0x640e, 0x2408, - 0x640f, 0x0e23, - 0x6410, 0x23e9, - 0x6412, 0x23ea, - 0x6413, 0x0e1c, - 0x6414, 0x0e25, - 0x6415, 0x23f1, - 0x6416, 0x0e28, - 0x6418, 0x23f2, - 0x641a, 0x23ff, - 0x641b, 0x2405, - 0x641c, 0x0e24, - 0x641e, 0x0e1e, - 0x641f, 0x23f0, - 0x6420, 0x23ec, - 0x6421, 0x2407, - 0x6422, 0x23f5, - 0x6424, 0x23ed, - 0x6425, 0x2401, - 0x6426, 0x23f8, - 0x6427, 0x2402, - 0x6428, 0x23fa, - 0x642a, 0x0e1f, - 0x642b, 0x2699, - 0x642c, 0x0e22, - 0x642d, 0x0e20, - 0x642e, 0x2406, - 0x642f, 0x23fd, - 0x6430, 0x23f9, - 0x6432, 0x45d9, - 0x6433, 0x23ee, - 0x6434, 0x0fe4, - 0x6435, 0x23fc, - 0x6436, 0x0e27, - 0x6437, 0x23f4, - 0x6438, 0x4191, - 0x6439, 0x23f3, - 0x643a, 0x419d, - 0x643b, 0x3a6b, - 0x643d, 0x0e21, - 0x643e, 0x0e1d, - 0x643f, 0x26ae, - 0x6440, 0x2400, - 0x6441, 0x23fb, - 0x6443, 0x23ef, - 0x644b, 0x26a9, - 0x644d, 0x269a, - 0x644e, 0x26a5, - 0x6450, 0x26ac, - 0x6451, 0x0fe2, - 0x6452, 0x0c6d, - 0x6453, 0x26aa, - 0x6454, 0x0fdd, - 0x6458, 0x0fdc, - 0x6459, 0x26b1, - 0x645a, 0x43c2, - 0x645b, 0x269b, - 0x645c, 0x26a8, - 0x645d, 0x269c, - 0x645e, 0x26a7, - 0x645f, 0x0fe0, - 0x6460, 0x26ab, - 0x6461, 0x215c, - 0x6465, 0x26b2, - 0x6466, 0x26a3, - 0x6467, 0x0fe3, - 0x6468, 0x28ee, - 0x6469, 0x1159, - 0x646b, 0x26b0, - 0x646c, 0x26af, - 0x646d, 0x0fe5, - 0x646e, 0x28e1, - 0x646f, 0x115a, - 0x6470, 0x28e2, - 0x6471, 0x3a5b, - 0x6472, 0x269f, - 0x6474, 0x269d, - 0x6475, 0x26a2, - 0x6476, 0x269e, - 0x6477, 0x26b3, - 0x6478, 0x0fdf, - 0x6479, 0x115b, - 0x647a, 0x0fe1, - 0x647b, 0x0fe6, - 0x647c, 0x436c, - 0x647d, 0x26a1, - 0x647f, 0x26ad, - 0x6482, 0x26a6, - 0x6485, 0x28e5, - 0x6487, 0x0fdb, - 0x6488, 0x115e, - 0x6489, 0x2b54, - 0x648a, 0x28ea, - 0x648b, 0x28e9, - 0x648c, 0x28eb, - 0x648d, 0x4323, - 0x648f, 0x28e8, - 0x6490, 0x115f, - 0x6491, 0x43c3, - 0x6492, 0x1165, - 0x6493, 0x1162, - 0x6495, 0x1163, - 0x6496, 0x28e3, - 0x6497, 0x28e6, - 0x6498, 0x28f0, - 0x6499, 0x116b, - 0x649a, 0x1169, - 0x649c, 0x28e7, - 0x649d, 0x2154, - 0x649e, 0x115c, - 0x649f, 0x28ed, - 0x64a0, 0x28e4, - 0x64a2, 0x116c, - 0x64a3, 0x28ec, - 0x64a4, 0x0fde, - 0x64a5, 0x1161, - 0x64a6, 0x26a4, - 0x64a9, 0x1164, - 0x64ab, 0x1168, - 0x64ac, 0x116a, - 0x64ad, 0x1167, - 0x64ae, 0x1166, - 0x64af, 0x42e1, - 0x64b0, 0x1160, - 0x64b1, 0x28ef, - 0x64b2, 0x115d, - 0x64b3, 0x116d, - 0x64b4, 0x4340, - 0x64b6, 0x3a64, - 0x64bb, 0x12bb, - 0x64bd, 0x2b53, - 0x64be, 0x12c5, - 0x64bf, 0x12c2, - 0x64c0, 0x4645, - 0x64c1, 0x12b9, - 0x64c2, 0x12c0, - 0x64c3, 0x2b55, - 0x64c4, 0x12be, - 0x64c5, 0x12b8, - 0x64c7, 0x12bf, - 0x64c9, 0x2b52, - 0x64ca, 0x13d8, - 0x64cb, 0x12ba, - 0x64cd, 0x12c1, - 0x64ce, 0x13d7, - 0x64cf, 0x2b51, - 0x64d0, 0x2b50, - 0x64d2, 0x12c3, - 0x64d3, 0x3f03, - 0x64d4, 0x12c4, - 0x64d6, 0x2b4f, - 0x64d7, 0x2b4e, - 0x64d8, 0x13d9, - 0x64d9, 0x2b58, - 0x64da, 0x12bd, - 0x64db, 0x2b56, - 0x64dd, 0x431e, - 0x64e0, 0x13da, - 0x64e1, 0x4199, - 0x64e2, 0x13df, - 0x64e3, 0x2d6a, - 0x64e4, 0x2d6c, - 0x64e5, 0x419a, - 0x64e6, 0x13dc, - 0x64e7, 0x37a8, - 0x64e8, 0x2d6d, - 0x64e9, 0x2d69, - 0x64ea, 0x434a, - 0x64eb, 0x2d6b, - 0x64ec, 0x13dd, - 0x64ed, 0x13e0, - 0x64ef, 0x2d68, - 0x64f0, 0x13db, - 0x64f1, 0x13de, - 0x64f2, 0x14d3, - 0x64f3, 0x2b57, - 0x64f4, 0x14d2, - 0x64f7, 0x14d8, - 0x64f8, 0x2f2b, - 0x64fa, 0x14d6, - 0x64fc, 0x2f2e, - 0x64fd, 0x2f2a, - 0x64fe, 0x14d4, - 0x64ff, 0x2f28, - 0x6500, 0x1582, - 0x6501, 0x2f2c, - 0x6503, 0x2f2d, - 0x6504, 0x2f29, - 0x6506, 0x14d5, - 0x6507, 0x3090, - 0x6509, 0x3093, - 0x650a, 0x4536, - 0x650c, 0x3094, - 0x650d, 0x3092, - 0x650e, 0x3095, - 0x650f, 0x1583, - 0x6510, 0x3091, - 0x6511, 0x3aa9, - 0x6513, 0x31d7, - 0x6514, 0x1617, - 0x6515, 0x31d6, - 0x6516, 0x31d5, - 0x6517, 0x31d4, - 0x6518, 0x1616, - 0x6519, 0x1618, - 0x651b, 0x32d2, - 0x651c, 0x1673, - 0x651d, 0x1672, - 0x651e, 0x4187, - 0x651f, 0x3ec0, - 0x6520, 0x3382, - 0x6521, 0x3381, - 0x6522, 0x3384, - 0x6523, 0x16f9, - 0x6524, 0x16c5, - 0x6525, 0x341b, - 0x6526, 0x3383, - 0x6529, 0x341a, - 0x652a, 0x16fb, - 0x652b, 0x16fa, - 0x652c, 0x1721, - 0x652d, 0x3484, - 0x652e, 0x34ca, - 0x652f, 0x02d5, - 0x6530, 0x3e62, - 0x6532, 0x216c, - 0x6533, 0x2b59, - 0x6534, 0x022c, - 0x6535, 0x44ed, - 0x6536, 0x03d7, - 0x6537, 0x17f6, - 0x6538, 0x04b9, - 0x6539, 0x04b7, - 0x653b, 0x04b8, - 0x653d, 0x19a1, - 0x653e, 0x05f3, - 0x653f, 0x0741, - 0x6541, 0x1b01, - 0x6543, 0x1b02, - 0x6545, 0x0742, - 0x6546, 0x1cbf, - 0x6548, 0x08d6, - 0x654a, 0x1cbe, - 0x654d, 0x419f, - 0x654f, 0x0abd, - 0x6551, 0x0ab9, - 0x6553, 0x1f0c, - 0x6554, 0x0ac0, - 0x6555, 0x0abf, - 0x6556, 0x0ab8, - 0x6557, 0x0abb, - 0x6558, 0x0abe, - 0x6559, 0x0aba, - 0x655c, 0x2170, - 0x655d, 0x0ab7, - 0x655e, 0x0c70, - 0x655f, 0x41a5, - 0x6562, 0x0c72, - 0x6564, 0x216f, - 0x6565, 0x2172, - 0x6566, 0x0c71, - 0x6567, 0x216d, - 0x6568, 0x2171, - 0x656a, 0x216e, - 0x656b, 0x3a6c, - 0x656c, 0x0e2b, - 0x656d, 0x41a4, - 0x656f, 0x2409, - 0x6572, 0x0fe7, - 0x6573, 0x26b4, - 0x6574, 0x12c6, - 0x6575, 0x116e, - 0x6576, 0x28f1, - 0x6577, 0x116f, - 0x6579, 0x28f3, - 0x657a, 0x28f2, - 0x657b, 0x28f4, - 0x657c, 0x2b5b, - 0x657f, 0x2b5a, - 0x6580, 0x2d6f, - 0x6581, 0x2d6e, - 0x6582, 0x13e1, - 0x6584, 0x3096, - 0x6585, 0x41a3, - 0x6586, 0x4648, - 0x6587, 0x02d6, - 0x6588, 0x410b, - 0x6589, 0x4554, - 0x658c, 0x2173, - 0x6590, 0x0c75, - 0x6591, 0x0c74, - 0x6592, 0x240a, - 0x6594, 0x2f2f, - 0x6595, 0x1674, - 0x6596, 0x341c, - 0x6597, 0x02d7, - 0x6599, 0x08d8, - 0x659b, 0x0ac2, - 0x659c, 0x0ac1, - 0x659d, 0x2174, - 0x659f, 0x0e2c, - 0x65a0, 0x26b5, - 0x65a1, 0x0fe8, - 0x65a2, 0x2b5c, - 0x65a4, 0x02d8, - 0x65a5, 0x0346, - 0x65a7, 0x05f4, - 0x65a8, 0x19a2, - 0x65aa, 0x1b03, - 0x65ab, 0x0743, - 0x65ac, 0x0ac3, - 0x65ae, 0x2176, - 0x65af, 0x0c76, - 0x65b0, 0x0e2d, - 0x65b2, 0x28f5, - 0x65b5, 0x41a7, - 0x65b6, 0x2d70, - 0x65b7, 0x14d9, - 0x65b8, 0x34cb, - 0x65b9, 0x02d9, - 0x65bb, 0x19a3, - 0x65bc, 0x05f5, - 0x65bd, 0x0744, - 0x65be, 0x3e3b, - 0x65bf, 0x1b04, - 0x65c1, 0x08d9, - 0x65c2, 0x1cc3, - 0x65c3, 0x1cc1, - 0x65c5, 0x08da, - 0x65c6, 0x1cc0, - 0x65cb, 0x0ac5, - 0x65cd, 0x1f0d, - 0x65ce, 0x0ac7, - 0x65cf, 0x0ac4, - 0x65d0, 0x2177, - 0x65d1, 0x41aa, - 0x65d2, 0x2178, - 0x65d3, 0x240b, - 0x65d4, 0x3ba8, - 0x65d6, 0x0fea, - 0x65d7, 0x0fe9, - 0x65da, 0x2d71, - 0x65db, 0x2f30, - 0x65dd, 0x3098, - 0x65de, 0x3097, - 0x65df, 0x31d8, - 0x65e0, 0x022d, - 0x65e1, 0x1789, - 0x65e2, 0x0745, - 0x65e3, 0x41ae, - 0x65e5, 0x02da, - 0x65e6, 0x0347, - 0x65e8, 0x03d9, - 0x65e9, 0x03d8, - 0x65ec, 0x03da, - 0x65ee, 0x17f8, - 0x65ef, 0x17f7, - 0x65f0, 0x189e, - 0x65f1, 0x04ba, - 0x65f2, 0x18a1, - 0x65f3, 0x18a0, - 0x65f4, 0x189f, - 0x65f5, 0x18a2, - 0x65fa, 0x05f6, - 0x65fb, 0x19a9, - 0x65fc, 0x19a5, - 0x65fd, 0x19ae, - 0x65ff, 0x464a, - 0x6600, 0x05fd, - 0x6602, 0x05fb, - 0x6603, 0x19aa, - 0x6604, 0x19a6, - 0x6605, 0x19ad, - 0x6606, 0x05fa, - 0x6607, 0x0601, - 0x6608, 0x19a8, - 0x6609, 0x19a4, - 0x660a, 0x0600, - 0x660b, 0x19ab, - 0x660c, 0x05f9, - 0x660d, 0x19ac, - 0x660e, 0x05fc, - 0x660f, 0x05fe, - 0x6610, 0x19b0, - 0x6611, 0x19af, - 0x6612, 0x19a7, - 0x6613, 0x05f8, - 0x6614, 0x05f7, - 0x6615, 0x05ff, - 0x6618, 0x41b1, - 0x661c, 0x1b09, - 0x661d, 0x1b0f, - 0x661e, 0x3a93, - 0x661f, 0x074b, - 0x6620, 0x0748, - 0x6621, 0x1b06, - 0x6622, 0x1b0b, - 0x6623, 0x4295, - 0x6624, 0x074e, - 0x6625, 0x0746, - 0x6626, 0x1b0a, - 0x6627, 0x0749, - 0x6628, 0x074c, - 0x662b, 0x1b0d, - 0x662d, 0x0747, - 0x662e, 0x1b12, - 0x662f, 0x074a, - 0x6630, 0x3a8d, - 0x6631, 0x074d, - 0x6632, 0x1b07, - 0x6633, 0x1b0c, - 0x6634, 0x1b10, - 0x6635, 0x1b08, - 0x6636, 0x1b05, - 0x6639, 0x1b11, - 0x663a, 0x1b0e, - 0x6641, 0x08e2, - 0x6642, 0x08db, - 0x6643, 0x08de, - 0x6644, 0x41b4, - 0x6645, 0x08e1, - 0x6647, 0x1cc6, - 0x6648, 0x3d99, - 0x6649, 0x08dc, - 0x664a, 0x1cc4, - 0x664b, 0x41b7, - 0x664c, 0x08e0, - 0x664f, 0x08dd, - 0x6651, 0x1cc7, - 0x6652, 0x08df, - 0x6653, 0x464b, - 0x6657, 0x409b, - 0x6659, 0x1f11, - 0x665a, 0x0ac9, - 0x665b, 0x1f10, - 0x665c, 0x1f12, - 0x665d, 0x0ac8, - 0x665e, 0x0acd, - 0x665f, 0x1cc5, - 0x6661, 0x1f0f, - 0x6662, 0x1f13, - 0x6663, 0x3a90, - 0x6664, 0x0aca, - 0x6665, 0x1f0e, - 0x6666, 0x0acc, - 0x6667, 0x41b9, - 0x6668, 0x0acb, - 0x666a, 0x217f, - 0x666b, 0x3a8b, - 0x666c, 0x217a, - 0x666e, 0x0c77, - 0x666f, 0x0c7b, - 0x6670, 0x0c78, - 0x6671, 0x217d, - 0x6672, 0x2180, - 0x6673, 0x41bb, - 0x6674, 0x0c79, - 0x6676, 0x0c7a, - 0x6677, 0x0c7f, - 0x6678, 0x2414, - 0x6679, 0x217e, - 0x667a, 0x0c7d, - 0x667b, 0x217b, - 0x667c, 0x2179, - 0x667d, 0x469b, - 0x667e, 0x0c7e, - 0x6680, 0x217c, - 0x6684, 0x0e33, - 0x6685, 0x4162, - 0x6686, 0x240c, - 0x6687, 0x0e30, - 0x6689, 0x0e2f, - 0x668a, 0x2411, - 0x668b, 0x2410, - 0x668c, 0x240d, - 0x668d, 0x0e35, - 0x668e, 0x3a89, - 0x6690, 0x240f, - 0x6691, 0x0c7c, - 0x6692, 0x464d, - 0x6694, 0x2413, - 0x6695, 0x240e, - 0x6696, 0x0e32, - 0x6697, 0x0e2e, - 0x6698, 0x0e34, - 0x6699, 0x2412, - 0x669a, 0x3d3d, - 0x669d, 0x0fed, - 0x669f, 0x26b8, - 0x66a0, 0x26b7, - 0x66a1, 0x26b6, - 0x66a2, 0x0feb, - 0x66a4, 0x40ba, - 0x66a8, 0x0fec, - 0x66a9, 0x28f9, - 0x66aa, 0x28fc, - 0x66ab, 0x1172, - 0x66ad, 0x4948, - 0x66ae, 0x1171, - 0x66af, 0x28fd, - 0x66b0, 0x28f8, - 0x66b1, 0x1174, - 0x66b2, 0x28fa, - 0x66b3, 0x40b5, - 0x66b4, 0x1173, - 0x66b5, 0x28f7, - 0x66b6, 0x3e13, - 0x66b7, 0x28fb, - 0x66b8, 0x12cc, - 0x66b9, 0x12c9, - 0x66ba, 0x2b65, - 0x66bb, 0x2b64, - 0x66bd, 0x2b63, - 0x66be, 0x2b5e, - 0x66bf, 0x3d9a, - 0x66c0, 0x2b5f, - 0x66c4, 0x12ca, - 0x66c6, 0x12c7, - 0x66c7, 0x12cb, - 0x66c8, 0x2b5d, - 0x66c9, 0x12c8, - 0x66ca, 0x2b60, - 0x66cc, 0x2b66, - 0x66cd, 0x40b8, - 0x66ce, 0x3a77, - 0x66cf, 0x2b62, - 0x66d2, 0x2d72, - 0x66d6, 0x13e4, - 0x66d8, 0x2f33, - 0x66d9, 0x13e3, - 0x66da, 0x2f31, - 0x66dc, 0x14da, - 0x66dd, 0x1585, - 0x66de, 0x3099, - 0x66e0, 0x1584, - 0x66e3, 0x31da, - 0x66e6, 0x1619, - 0x66e8, 0x31d9, - 0x66e9, 0x1675, - 0x66eb, 0x341d, - 0x66ec, 0x16fc, - 0x66ed, 0x3485, - 0x66f0, 0x02db, - 0x66f1, 0x3e84, - 0x66f2, 0x03dc, - 0x66f4, 0x04bb, - 0x66f6, 0x19b1, - 0x66f7, 0x074f, - 0x66f8, 0x08e3, - 0x66f9, 0x0ace, - 0x66fc, 0x0a1f, - 0x66fe, 0x0c80, - 0x6700, 0x0bf0, - 0x6701, 0x2181, - 0x6702, 0x41c4, - 0x6703, 0x0e36, - 0x6704, 0x26ba, - 0x6705, 0x26b9, - 0x6708, 0x02dc, - 0x6709, 0x03de, - 0x670a, 0x19b2, - 0x670b, 0x0603, - 0x670c, 0x3fe2, - 0x670d, 0x0602, - 0x670e, 0x3da1, - 0x670f, 0x1b13, - 0x6712, 0x1cc8, - 0x6714, 0x08e4, - 0x6716, 0x464f, - 0x6717, 0x08e6, - 0x6718, 0x1f14, - 0x671b, 0x0ad0, - 0x671d, 0x0c83, - 0x671e, 0x3d8b, - 0x671f, 0x0c82, - 0x6720, 0x2415, - 0x6721, 0x2522, - 0x6722, 0x26bb, - 0x6723, 0x2b67, - 0x6725, 0x379f, - 0x6726, 0x14db, - 0x6727, 0x161a, - 0x6728, 0x02dd, - 0x672a, 0x034a, - 0x672c, 0x0349, - 0x672d, 0x034c, - 0x672e, 0x0348, - 0x6731, 0x03e1, - 0x6733, 0x1800, - 0x6734, 0x03e0, - 0x6735, 0x03e2, - 0x6736, 0x3e41, - 0x6738, 0x17fb, - 0x6739, 0x17fa, - 0x673a, 0x17fd, - 0x673b, 0x17fc, - 0x673c, 0x17ff, - 0x673d, 0x03df, - 0x673e, 0x17f9, - 0x673f, 0x17fe, - 0x6744, 0x401b, - 0x6745, 0x18a3, - 0x6746, 0x04c5, - 0x6747, 0x18a4, - 0x6748, 0x18a8, - 0x6749, 0x04c4, - 0x674b, 0x18ac, - 0x674c, 0x18a7, - 0x674d, 0x18aa, - 0x674e, 0x04bd, - 0x6753, 0x04c7, - 0x6755, 0x18a6, - 0x6756, 0x04c2, - 0x6757, 0x04c8, - 0x6759, 0x18a5, - 0x675a, 0x18ab, - 0x675c, 0x04c1, - 0x675d, 0x18a9, - 0x675e, 0x04c3, - 0x675f, 0x04bc, - 0x6760, 0x04c6, - 0x6761, 0x3d66, - 0x6762, 0x41cb, - 0x6767, 0x41ca, - 0x676a, 0x0618, - 0x676c, 0x19b4, - 0x676d, 0x0604, - 0x676f, 0x060e, - 0x6771, 0x0607, - 0x6772, 0x0619, - 0x6773, 0x0609, - 0x6774, 0x19bc, - 0x6775, 0x0614, - 0x6776, 0x19b7, - 0x6777, 0x060a, - 0x6778, 0x19c6, - 0x677a, 0x19bf, - 0x677b, 0x19b8, - 0x677c, 0x0617, - 0x677d, 0x19c4, - 0x677e, 0x0612, - 0x677f, 0x0610, - 0x6781, 0x19c5, - 0x6783, 0x19c3, - 0x6784, 0x19bb, - 0x6785, 0x19b3, - 0x6786, 0x19ba, - 0x6787, 0x060b, - 0x6789, 0x0611, - 0x678b, 0x0605, - 0x678c, 0x19be, - 0x678d, 0x19bd, - 0x678e, 0x19b5, - 0x678f, 0x46c1, - 0x6790, 0x0613, - 0x6791, 0x19c1, - 0x6792, 0x19b6, - 0x6793, 0x0616, - 0x6794, 0x19c8, - 0x6795, 0x0606, - 0x6797, 0x060d, - 0x6798, 0x19b9, - 0x6799, 0x19c2, - 0x679a, 0x0615, - 0x679c, 0x0608, - 0x679d, 0x060c, - 0x679f, 0x19c0, - 0x67a0, 0x3d7a, - 0x67a4, 0x4651, - 0x67ac, 0x41e3, - 0x67ae, 0x1b34, - 0x67af, 0x0757, - 0x67b0, 0x0764, - 0x67b1, 0x41f4, - 0x67b2, 0x1b2f, - 0x67b3, 0x1b25, - 0x67b4, 0x075d, - 0x67b5, 0x1b23, - 0x67b6, 0x0756, - 0x67b7, 0x1b1e, - 0x67b8, 0x0760, - 0x67b9, 0x1b2b, - 0x67ba, 0x1b18, - 0x67bb, 0x1b1a, - 0x67bf, 0x37fa, - 0x67c0, 0x1b1d, - 0x67c1, 0x1b15, - 0x67c2, 0x1b2a, - 0x67c3, 0x1b3a, - 0x67c4, 0x075b, - 0x67c5, 0x1b1f, - 0x67c6, 0x1b31, - 0x67c8, 0x1b17, - 0x67c9, 0x1b38, - 0x67cb, 0x1b3c, - 0x67cc, 0x1b33, - 0x67cd, 0x1b24, - 0x67ce, 0x1b2c, - 0x67cf, 0x0761, - 0x67d0, 0x0754, - 0x67d1, 0x075c, - 0x67d2, 0x0768, - 0x67d3, 0x0751, - 0x67d4, 0x0753, - 0x67d6, 0x3b58, - 0x67d7, 0x41ce, - 0x67d8, 0x1b1c, - 0x67d9, 0x0765, - 0x67da, 0x075e, - 0x67db, 0x1b36, - 0x67dc, 0x1b19, - 0x67dd, 0x0767, - 0x67de, 0x0762, - 0x67df, 0x1b22, - 0x67e2, 0x0766, - 0x67e3, 0x1b29, - 0x67e4, 0x1b21, - 0x67e5, 0x075f, - 0x67e6, 0x1b35, - 0x67e7, 0x1b2d, - 0x67e9, 0x0759, - 0x67ea, 0x1b3b, - 0x67eb, 0x1b20, - 0x67ec, 0x0755, - 0x67ed, 0x1b32, - 0x67ee, 0x1b28, - 0x67ef, 0x075a, - 0x67f0, 0x1b2e, - 0x67f1, 0x0752, - 0x67f2, 0x1b16, - 0x67f3, 0x0763, - 0x67f4, 0x08f5, - 0x67f5, 0x0758, - 0x67f6, 0x1b27, - 0x67f7, 0x1b26, - 0x67f8, 0x1b1b, - 0x67f9, 0x3996, - 0x67fa, 0x1b37, - 0x67fc, 0x1b30, - 0x67fe, 0x4555, - 0x67ff, 0x0750, - 0x6800, 0x43c7, - 0x6801, 0x41d3, - 0x6802, 0x3fc8, - 0x6803, 0x3d6a, - 0x6804, 0x4556, - 0x680d, 0x4281, - 0x6810, 0x399c, - 0x6812, 0x1cdd, - 0x6813, 0x08fc, - 0x6814, 0x1cde, - 0x6816, 0x1cd2, - 0x6817, 0x08f1, - 0x6818, 0x08fd, - 0x681a, 0x1ccb, - 0x681b, 0x4072, - 0x681c, 0x1cd4, - 0x681d, 0x1cdc, - 0x681e, 0x46c2, - 0x681f, 0x1cca, - 0x6820, 0x1ce5, - 0x6821, 0x08e7, - 0x6822, 0x41d0, - 0x6825, 0x1ce4, - 0x6826, 0x1cdf, - 0x6828, 0x1ce0, - 0x6829, 0x08ef, - 0x682a, 0x08fa, - 0x682b, 0x1cd6, - 0x682d, 0x1cd7, - 0x682e, 0x1ce1, - 0x682f, 0x1cd8, - 0x6831, 0x1cd3, - 0x6832, 0x1ccd, - 0x6834, 0x1cdb, - 0x6835, 0x1cd5, - 0x6836, 0x3e2e, - 0x6837, 0x421d, - 0x6838, 0x08e8, - 0x6839, 0x08ec, - 0x683a, 0x1ce3, - 0x683b, 0x1ccf, - 0x683c, 0x08f8, - 0x683d, 0x08f4, - 0x683e, 0x4147, - 0x6840, 0x08f7, - 0x6841, 0x08fe, - 0x6842, 0x08ed, - 0x6843, 0x08f9, - 0x6844, 0x1cda, - 0x6845, 0x08fb, - 0x6846, 0x08ea, - 0x6847, 0x3beb, - 0x6848, 0x08e9, - 0x6849, 0x1ccc, - 0x684a, 0x4653, - 0x684b, 0x1cd0, - 0x684c, 0x08f2, - 0x684d, 0x1ce2, - 0x684e, 0x1cd9, - 0x684f, 0x1cd1, - 0x6850, 0x08f6, - 0x6851, 0x08f3, - 0x6853, 0x08eb, - 0x6854, 0x08ee, - 0x6855, 0x3d90, - 0x6856, 0x3814, - 0x685d, 0x41d6, - 0x6865, 0x4557, - 0x686b, 0x1f29, - 0x686d, 0x1f19, - 0x686f, 0x1f1e, - 0x6871, 0x1f2d, - 0x6872, 0x1f2a, - 0x6874, 0x1f23, - 0x6875, 0x1f22, - 0x6876, 0x0ad7, - 0x6877, 0x1f26, - 0x6878, 0x1f35, - 0x6879, 0x1f15, - 0x687b, 0x1f36, - 0x687c, 0x1f28, - 0x687d, 0x1f3a, - 0x687e, 0x1f2e, - 0x687f, 0x0ad6, - 0x6880, 0x1f2c, - 0x6881, 0x0ad1, - 0x6882, 0x0ae6, - 0x6883, 0x0adc, - 0x6884, 0x4654, - 0x6885, 0x0ae0, - 0x6886, 0x0adf, - 0x6887, 0x1f16, - 0x6888, 0x46b7, - 0x6889, 0x1f33, - 0x688a, 0x1f39, - 0x688b, 0x1f31, - 0x688c, 0x1f38, - 0x688f, 0x1f25, - 0x6890, 0x1f17, - 0x6891, 0x1f37, - 0x6892, 0x1f27, - 0x6893, 0x0ad4, - 0x6894, 0x0ae1, - 0x6896, 0x1f30, - 0x6897, 0x0ada, - 0x6898, 0x3aaa, - 0x689b, 0x1f2f, - 0x689c, 0x1f18, - 0x689d, 0x0ae2, - 0x689f, 0x0ae4, - 0x68a0, 0x1f32, - 0x68a1, 0x0ae5, - 0x68a2, 0x0ad3, - 0x68a3, 0x1f1f, - 0x68a4, 0x1f34, - 0x68a6, 0x40e4, - 0x68a7, 0x0ad9, - 0x68a8, 0x0ae3, - 0x68a9, 0x1f21, - 0x68aa, 0x1f2b, - 0x68ab, 0x1f1c, - 0x68ac, 0x1f20, - 0x68ad, 0x0ade, - 0x68ae, 0x1f1b, - 0x68af, 0x0ad2, - 0x68b0, 0x0adb, - 0x68b1, 0x0ad8, - 0x68b2, 0x1f24, - 0x68b3, 0x08f0, - 0x68b4, 0x2198, - 0x68b5, 0x0ad5, - 0x68b6, 0x3a9e, - 0x68b9, 0x3d14, - 0x68bd, 0x427c, - 0x68c3, 0x41dc, - 0x68c4, 0x0add, - 0x68c5, 0x3c2e, - 0x68c6, 0x219b, - 0x68c7, 0x21b1, - 0x68c8, 0x21a6, - 0x68c9, 0x0c97, - 0x68ca, 0x42eb, - 0x68cb, 0x0c92, - 0x68cc, 0x2195, - 0x68cd, 0x0c93, - 0x68ce, 0x21a5, - 0x68d0, 0x219e, - 0x68d1, 0x21ab, - 0x68d2, 0x0c8f, - 0x68d3, 0x2183, - 0x68d4, 0x21ad, - 0x68d5, 0x0c85, - 0x68d6, 0x218b, - 0x68d7, 0x0c88, - 0x68d8, 0x0c87, - 0x68da, 0x0c98, - 0x68dc, 0x2185, - 0x68dd, 0x21a7, - 0x68df, 0x0c8a, - 0x68e0, 0x0c86, - 0x68e1, 0x2193, - 0x68e3, 0x0c91, - 0x68e4, 0x218e, - 0x68e6, 0x21a9, - 0x68e7, 0x0c8d, - 0x68e8, 0x21a1, - 0x68e9, 0x21ae, - 0x68ea, 0x2188, - 0x68eb, 0x218d, - 0x68ec, 0x2187, - 0x68ee, 0x0c8c, - 0x68ef, 0x219a, - 0x68f0, 0x242b, - 0x68f1, 0x2189, - 0x68f2, 0x0c90, - 0x68f3, 0x2192, - 0x68f4, 0x21aa, - 0x68f5, 0x0c8b, - 0x68f6, 0x218f, - 0x68f7, 0x218c, - 0x68f8, 0x219d, - 0x68f9, 0x0c8e, - 0x68fa, 0x0c84, - 0x68fb, 0x0c9a, - 0x68fc, 0x21a0, - 0x68fd, 0x219f, - 0x6900, 0x41df, - 0x6901, 0x41de, - 0x6902, 0x42fb, - 0x6903, 0x429c, - 0x6904, 0x2184, - 0x6905, 0x0c89, - 0x6906, 0x21ac, - 0x6907, 0x2194, - 0x6908, 0x2196, - 0x6909, 0x4658, - 0x690a, 0x21a3, - 0x690b, 0x21a2, - 0x690c, 0x2182, - 0x690d, 0x0c94, - 0x690e, 0x0c96, - 0x690f, 0x218a, - 0x6910, 0x2191, - 0x6911, 0x2199, - 0x6912, 0x0c95, - 0x6913, 0x2190, - 0x6914, 0x219c, - 0x6915, 0x21af, - 0x6917, 0x21a4, - 0x6918, 0x3da2, - 0x691a, 0x3d80, - 0x691b, 0x37bd, - 0x6925, 0x21b0, - 0x692a, 0x2186, - 0x692c, 0x3f38, - 0x692f, 0x243f, - 0x6930, 0x0e3e, - 0x6932, 0x243d, - 0x6933, 0x2428, - 0x6934, 0x242d, - 0x6935, 0x2426, - 0x6936, 0x41e7, - 0x6937, 0x2439, - 0x6938, 0x2418, - 0x6939, 0x241f, - 0x693b, 0x2437, - 0x693c, 0x2441, - 0x693d, 0x2429, - 0x693e, 0x4056, - 0x693f, 0x241c, - 0x6940, 0x242f, - 0x6941, 0x2434, - 0x6942, 0x2420, - 0x6943, 0x4659, - 0x6944, 0x2431, - 0x6945, 0x241d, - 0x6946, 0x456f, - 0x6948, 0x2424, - 0x694a, 0x0e40, - 0x694b, 0x2438, - 0x694c, 0x2436, - 0x694e, 0x2419, - 0x694f, 0x243b, - 0x6951, 0x243c, - 0x6952, 0x243e, - 0x6953, 0x0e44, - 0x6954, 0x0e3c, - 0x6955, 0x3d86, - 0x6956, 0x1f1d, - 0x6957, 0x2421, - 0x6958, 0x2433, - 0x6959, 0x2422, - 0x695a, 0x0e39, - 0x695b, 0x0e49, - 0x695c, 0x243a, - 0x695d, 0x0e47, - 0x695e, 0x0e43, - 0x695f, 0x2417, - 0x6960, 0x0e3b, - 0x6961, 0x41e4, - 0x6962, 0x241a, - 0x6963, 0x0e48, - 0x6964, 0x465b, - 0x6965, 0x242a, - 0x6966, 0x2416, - 0x6967, 0x3d15, - 0x6968, 0x0e41, - 0x6969, 0x242e, - 0x696a, 0x241e, - 0x696b, 0x0e42, - 0x696c, 0x2427, - 0x696d, 0x0e38, - 0x696e, 0x0c99, - 0x696f, 0x2430, - 0x6970, 0x2197, - 0x6971, 0x241b, - 0x6972, 0x3a6d, - 0x6973, 0x41db, - 0x6974, 0x2435, - 0x6975, 0x0e3d, - 0x6976, 0x2432, - 0x6977, 0x0e3a, - 0x6978, 0x242c, - 0x6979, 0x0e45, - 0x697a, 0x2423, - 0x697b, 0x2440, - 0x6980, 0x3f3e, - 0x6982, 0x0e3f, - 0x6983, 0x24af, - 0x6985, 0x465d, - 0x6986, 0x0e46, - 0x698a, 0x3d74, - 0x698d, 0x26c9, - 0x698e, 0x26c7, - 0x6990, 0x26dd, - 0x6991, 0x26c5, - 0x6993, 0x26d7, - 0x6994, 0x0e37, - 0x6995, 0x0ff0, - 0x6996, 0x26c1, - 0x6997, 0x26dc, - 0x6998, 0x41e8, - 0x6999, 0x26c6, - 0x699a, 0x26d4, - 0x699b, 0x0ff5, - 0x699c, 0x0fee, - 0x699e, 0x26da, - 0x699f, 0x465c, - 0x69a0, 0x26bf, - 0x69a1, 0x26d9, - 0x69a2, 0x3730, - 0x69a3, 0x1000, - 0x69a4, 0x26d0, - 0x69a5, 0x26e0, - 0x69a6, 0x0ffe, - 0x69a7, 0x26c8, - 0x69a8, 0x0fef, - 0x69a9, 0x26ca, - 0x69aa, 0x26d8, - 0x69ab, 0x0ff8, - 0x69ac, 0x26c3, - 0x69ad, 0x0ffc, - 0x69ae, 0x0ff2, - 0x69af, 0x26cc, - 0x69b0, 0x26c2, - 0x69b1, 0x26bc, - 0x69b2, 0x3ff6, - 0x69b3, 0x26d6, - 0x69b4, 0x0ff9, - 0x69b5, 0x26df, - 0x69b6, 0x26bd, - 0x69b7, 0x0ff6, - 0x69b9, 0x26d2, - 0x69bb, 0x0ff7, - 0x69bc, 0x26c4, - 0x69bd, 0x26cf, - 0x69be, 0x26cb, - 0x69bf, 0x26cd, - 0x69c0, 0x3f5d, - 0x69c1, 0x0ff1, - 0x69c2, 0x26de, - 0x69c3, 0x0fff, - 0x69c4, 0x26ce, - 0x69c6, 0x26e1, - 0x69c9, 0x26be, - 0x69ca, 0x26d3, - 0x69cb, 0x0ff4, - 0x69cc, 0x0ffd, - 0x69cd, 0x0ffb, - 0x69ce, 0x26c0, - 0x69cf, 0x26d5, - 0x69d0, 0x0ffa, - 0x69d1, 0x39ef, - 0x69d3, 0x0ff3, - 0x69d4, 0x26d1, - 0x69d5, 0x3e3c, - 0x69d6, 0x465e, - 0x69d9, 0x26db, - 0x69e1, 0x41d8, - 0x69e2, 0x2909, - 0x69e4, 0x2905, - 0x69e5, 0x2901, - 0x69e6, 0x2915, - 0x69e7, 0x2912, - 0x69e8, 0x1177, - 0x69e9, 0x3d91, - 0x69eb, 0x2919, - 0x69ec, 0x2908, - 0x69ed, 0x1182, - 0x69ee, 0x290f, - 0x69f1, 0x2904, - 0x69f2, 0x290e, - 0x69f3, 0x117f, - 0x69f4, 0x2922, - 0x69f6, 0x291f, - 0x69f7, 0x2911, - 0x69f8, 0x2902, - 0x69f9, 0x41ed, - 0x69fa, 0x41c7, - 0x69fb, 0x2916, - 0x69fc, 0x2918, - 0x69fd, 0x117b, - 0x69fe, 0x290c, - 0x69ff, 0x2907, - 0x6a00, 0x28fe, - 0x6a01, 0x1178, - 0x6a02, 0x1180, - 0x6a03, 0x3e29, - 0x6a04, 0x291b, - 0x6a05, 0x1181, - 0x6a06, 0x28ff, - 0x6a07, 0x2921, - 0x6a08, 0x2914, - 0x6a09, 0x291a, - 0x6a0a, 0x117e, - 0x6a0b, 0x41d9, - 0x6a0c, 0x3d50, - 0x6a0d, 0x2917, - 0x6a0f, 0x291e, - 0x6a11, 0x1183, - 0x6a13, 0x117d, - 0x6a14, 0x2910, - 0x6a15, 0x2903, - 0x6a16, 0x2923, - 0x6a17, 0x2900, - 0x6a18, 0x291c, - 0x6a19, 0x117a, - 0x6a1a, 0x3d1e, - 0x6a1b, 0x290a, - 0x6a1c, 0x3b68, - 0x6a1d, 0x290b, - 0x6a1e, 0x1179, - 0x6a1f, 0x1176, - 0x6a20, 0x2906, - 0x6a21, 0x117c, - 0x6a23, 0x1175, - 0x6a25, 0x291d, - 0x6a26, 0x2920, - 0x6a27, 0x290d, - 0x6a28, 0x2b74, - 0x6a2b, 0x3d42, - 0x6a2c, 0x42ab, - 0x6a2d, 0x3b1f, - 0x6a32, 0x2b6c, - 0x6a33, 0x3aa4, - 0x6a34, 0x2b68, - 0x6a35, 0x12d9, - 0x6a38, 0x12ce, - 0x6a39, 0x12d3, - 0x6a3a, 0x12cf, - 0x6a3b, 0x2b76, - 0x6a3c, 0x2b81, - 0x6a3d, 0x12cd, - 0x6a3e, 0x2b6e, - 0x6a3f, 0x2b77, - 0x6a40, 0x2913, - 0x6a41, 0x2b78, - 0x6a44, 0x12d4, - 0x6a45, 0x41f0, - 0x6a46, 0x2b87, - 0x6a47, 0x12d8, - 0x6a48, 0x12db, - 0x6a49, 0x2b6a, - 0x6a4b, 0x12d7, - 0x6a4c, 0x3aab, - 0x6a4d, 0x2b85, - 0x6a4f, 0x2b7c, - 0x6a50, 0x2b7b, - 0x6a51, 0x2b73, - 0x6a52, 0x3aa5, - 0x6a53, 0x37ac, - 0x6a54, 0x2b7d, - 0x6a55, 0x2b84, - 0x6a56, 0x2b83, - 0x6a57, 0x37da, - 0x6a58, 0x12d2, - 0x6a59, 0x12d0, - 0x6a5a, 0x2b75, - 0x6a5b, 0x2b72, - 0x6a5d, 0x2b6f, - 0x6a5e, 0x2b82, - 0x6a5f, 0x12da, - 0x6a60, 0x2b80, - 0x6a61, 0x12d6, - 0x6a62, 0x12d5, - 0x6a64, 0x2b7a, - 0x6a65, 0x4660, - 0x6a66, 0x2b69, - 0x6a67, 0x2b6b, - 0x6a68, 0x2b6d, - 0x6a69, 0x2b7f, - 0x6a6a, 0x2b79, - 0x6a6b, 0x12d1, - 0x6a6d, 0x2b70, - 0x6a6f, 0x2b7e, - 0x6a71, 0x4662, - 0x6a74, 0x4661, - 0x6a76, 0x2b71, - 0x6a7a, 0x3aad, - 0x6a7e, 0x13ec, - 0x6a7f, 0x2d84, - 0x6a80, 0x13e5, - 0x6a81, 0x2d75, - 0x6a82, 0x4663, - 0x6a83, 0x2d80, - 0x6a84, 0x13e7, - 0x6a85, 0x2d87, - 0x6a87, 0x2d7c, - 0x6a89, 0x2d77, - 0x6a8a, 0x4136, - 0x6a8c, 0x2d88, - 0x6a8d, 0x2d73, - 0x6a8e, 0x2d7e, - 0x6a8f, 0x3c1b, - 0x6a90, 0x13ee, - 0x6a91, 0x2d83, - 0x6a92, 0x2d89, - 0x6a93, 0x2d7d, - 0x6a94, 0x13e6, - 0x6a95, 0x2d7f, - 0x6a96, 0x2d74, - 0x6a97, 0x13ed, - 0x6a99, 0x4665, - 0x6a9a, 0x2d86, - 0x6a9b, 0x2d79, - 0x6a9c, 0x13e9, - 0x6a9d, 0x41f2, - 0x6a9e, 0x2d7b, - 0x6a9f, 0x2d78, - 0x6aa0, 0x13ef, - 0x6aa1, 0x2d7a, - 0x6aa2, 0x13e8, - 0x6aa3, 0x13eb, - 0x6aa4, 0x2d82, - 0x6aa5, 0x2d76, - 0x6aa6, 0x2d85, - 0x6aa7, 0x37e3, - 0x6aa8, 0x2d81, - 0x6aab, 0x4667, - 0x6aac, 0x14dd, - 0x6aad, 0x2f3e, - 0x6aae, 0x14e2, - 0x6ab1, 0x3e53, - 0x6ab2, 0x3b4b, - 0x6ab3, 0x14dc, - 0x6ab4, 0x2f3d, - 0x6ab5, 0x4668, - 0x6ab6, 0x2f3a, - 0x6ab8, 0x14e0, - 0x6ab9, 0x2f35, - 0x6aba, 0x2f39, - 0x6abb, 0x14df, - 0x6abd, 0x2f36, - 0x6abe, 0x3aa1, - 0x6ac2, 0x14e1, - 0x6ac3, 0x14de, - 0x6ac5, 0x2f34, - 0x6ac6, 0x2f38, - 0x6ac7, 0x2f3c, - 0x6ac8, 0x41f5, - 0x6ac9, 0x3aa6, - 0x6aca, 0x3f4c, - 0x6acb, 0x309f, - 0x6acc, 0x309c, - 0x6acd, 0x30a5, - 0x6acf, 0x30a4, - 0x6ad0, 0x30a2, - 0x6ad1, 0x309d, - 0x6ad3, 0x1589, - 0x6ad4, 0x4669, - 0x6ad8, 0x3caa, - 0x6ad9, 0x309e, - 0x6ada, 0x1588, - 0x6adb, 0x13ea, - 0x6adc, 0x30a1, - 0x6add, 0x1587, - 0x6ade, 0x30a6, - 0x6adf, 0x30a0, - 0x6ae0, 0x309b, - 0x6ae1, 0x2f37, - 0x6ae5, 0x1586, - 0x6ae7, 0x309a, - 0x6ae8, 0x31df, - 0x6aea, 0x31de, - 0x6aeb, 0x30a3, - 0x6aec, 0x161b, - 0x6aee, 0x31e2, - 0x6af0, 0x31dd, - 0x6af1, 0x31e1, - 0x6af3, 0x31dc, - 0x6af6, 0x466a, - 0x6af8, 0x32d6, - 0x6af9, 0x31e0, - 0x6afa, 0x1678, - 0x6afb, 0x1676, - 0x6afc, 0x32d4, - 0x6b00, 0x32d7, - 0x6b02, 0x32d3, - 0x6b03, 0x32d5, - 0x6b04, 0x1677, - 0x6b05, 0x3aa7, - 0x6b08, 0x3386, - 0x6b0a, 0x16c6, - 0x6b0b, 0x3385, - 0x6b0f, 0x3420, - 0x6b10, 0x16fd, - 0x6b11, 0x341e, - 0x6b13, 0x3487, - 0x6b16, 0x1743, - 0x6b17, 0x34ce, - 0x6b18, 0x34cc, - 0x6b1a, 0x34cf, - 0x6b1d, 0x41f8, - 0x6b1e, 0x3534, - 0x6b20, 0x02de, - 0x6b21, 0x03e3, - 0x6b23, 0x061a, - 0x6b25, 0x19c9, - 0x6b28, 0x1b3d, - 0x6b2c, 0x1ce6, - 0x6b2d, 0x1ce8, - 0x6b2f, 0x1ce7, - 0x6b31, 0x1ce9, - 0x6b32, 0x0ae7, - 0x6b33, 0x1f3c, - 0x6b34, 0x1cea, - 0x6b35, 0x41fb, - 0x6b36, 0x1f3b, - 0x6b37, 0x1f3d, - 0x6b39, 0x21b2, - 0x6b3a, 0x0c9c, - 0x6b3b, 0x21b3, - 0x6b3c, 0x21b5, - 0x6b3d, 0x0c9d, - 0x6b3e, 0x0c9b, - 0x6b3f, 0x21b4, - 0x6b41, 0x2447, - 0x6b42, 0x2445, - 0x6b43, 0x2444, - 0x6b45, 0x2443, - 0x6b46, 0x2442, - 0x6b47, 0x0e4a, - 0x6b48, 0x2446, - 0x6b49, 0x1001, - 0x6b4a, 0x26e2, - 0x6b4b, 0x26e4, - 0x6b4c, 0x1002, - 0x6b4d, 0x26e3, - 0x6b4e, 0x1185, - 0x6b50, 0x1184, - 0x6b51, 0x2924, - 0x6b52, 0x3f6e, - 0x6b54, 0x2b89, - 0x6b55, 0x2b88, - 0x6b56, 0x2b8a, - 0x6b57, 0x3aae, - 0x6b59, 0x12dc, - 0x6b5b, 0x2d8a, - 0x6b5c, 0x13f0, - 0x6b5e, 0x2f3f, - 0x6b5f, 0x14e4, - 0x6b60, 0x30a7, - 0x6b61, 0x16c7, - 0x6b62, 0x02df, - 0x6b63, 0x034d, - 0x6b64, 0x03e4, - 0x6b65, 0x04c9, - 0x6b66, 0x061b, - 0x6b6a, 0x0769, - 0x6b6d, 0x1ceb, - 0x6b6f, 0x4515, - 0x6b72, 0x0e4b, - 0x6b74, 0x41fc, - 0x6b76, 0x29a2, - 0x6b77, 0x12dd, - 0x6b78, 0x14e5, - 0x6b79, 0x02e0, - 0x6b7a, 0x44ee, - 0x6b7b, 0x03e5, - 0x6b7e, 0x19cb, - 0x6b7f, 0x061d, - 0x6b80, 0x19ca, - 0x6b81, 0x466b, - 0x6b82, 0x1b3e, - 0x6b83, 0x076a, - 0x6b84, 0x1b3f, - 0x6b86, 0x076b, - 0x6b88, 0x1ced, - 0x6b89, 0x0900, - 0x6b8a, 0x08ff, - 0x6b8c, 0x1f43, - 0x6b8d, 0x1f41, - 0x6b8f, 0x1f40, - 0x6b91, 0x1f3f, - 0x6b94, 0x21b6, - 0x6b95, 0x21b9, - 0x6b96, 0x0c9f, - 0x6b97, 0x21b7, - 0x6b98, 0x0c9e, - 0x6b99, 0x21b8, - 0x6b9b, 0x2448, - 0x6b9e, 0x26e5, - 0x6ba2, 0x2927, - 0x6ba3, 0x2926, - 0x6ba4, 0x1186, - 0x6ba5, 0x2925, - 0x6ba6, 0x2928, - 0x6ba7, 0x2b8b, - 0x6baa, 0x2b8c, - 0x6bad, 0x2d8b, - 0x6bae, 0x13f1, - 0x6baf, 0x14e6, - 0x6bb0, 0x30a8, - 0x6bb2, 0x1679, - 0x6bb3, 0x178a, - 0x6bb5, 0x076c, - 0x6bb6, 0x1b40, - 0x6bb7, 0x0901, - 0x6bba, 0x0ae8, - 0x6bbc, 0x0ca0, - 0x6bbd, 0x21ba, - 0x6bbf, 0x0e4d, - 0x6bc0, 0x0e4c, - 0x6bc1, 0x466c, - 0x6bc3, 0x26e8, - 0x6bc5, 0x1187, - 0x6bc7, 0x2b8f, - 0x6bc8, 0x2b8e, - 0x6bc9, 0x2f40, - 0x6bca, 0x3421, - 0x6bcb, 0x02e1, - 0x6bcc, 0x178b, - 0x6bcd, 0x034e, - 0x6bcf, 0x04ca, - 0x6bd0, 0x18ad, - 0x6bd2, 0x076d, - 0x6bd3, 0x0e4e, - 0x6bd4, 0x02e2, - 0x6bd6, 0x1b41, - 0x6bd7, 0x076e, - 0x6bd8, 0x1b42, - 0x6bda, 0x13f2, - 0x6bdb, 0x02e3, - 0x6bdc, 0x4207, - 0x6bde, 0x19cc, - 0x6be0, 0x1b43, - 0x6be1, 0x4205, - 0x6be2, 0x1cf2, - 0x6be3, 0x1cf1, - 0x6be4, 0x1cef, - 0x6be6, 0x1cee, - 0x6be7, 0x1cf3, - 0x6be8, 0x1cf0, - 0x6bea, 0x466d, - 0x6beb, 0x0ae9, - 0x6bef, 0x0ca1, - 0x6bf0, 0x21bb, - 0x6bf2, 0x21bc, - 0x6bf7, 0x244c, - 0x6bf9, 0x244b, - 0x6bfa, 0x3f79, - 0x6bfb, 0x2449, - 0x6bfd, 0x0e4f, - 0x6bfe, 0x26ea, - 0x6bff, 0x292b, - 0x6c00, 0x292a, - 0x6c01, 0x2929, - 0x6c02, 0x292c, - 0x6c03, 0x2b91, - 0x6c04, 0x2b90, - 0x6c05, 0x12de, - 0x6c06, 0x2b92, - 0x6c08, 0x13f3, - 0x6c09, 0x2d8c, - 0x6c0b, 0x2f41, - 0x6c0c, 0x30a9, - 0x6c0d, 0x3388, - 0x6c0f, 0x02e4, - 0x6c10, 0x0350, - 0x6c11, 0x034f, - 0x6c13, 0x061e, - 0x6c14, 0x178c, - 0x6c15, 0x17aa, - 0x6c16, 0x03e6, - 0x6c18, 0x1801, - 0x6c19, 0x18ae, - 0x6c1b, 0x061f, - 0x6c1c, 0x38ab, - 0x6c1d, 0x19cd, - 0x6c1f, 0x076f, - 0x6c20, 0x1b44, - 0x6c23, 0x0902, - 0x6c24, 0x0906, - 0x6c25, 0x1cf4, - 0x6c26, 0x0905, - 0x6c27, 0x0903, - 0x6c2a, 0x1f44, - 0x6c2b, 0x0aeb, - 0x6c2c, 0x0ca4, - 0x6c2e, 0x0ca2, - 0x6c30, 0x21be, - 0x6c31, 0x3f63, - 0x6c33, 0x1003, - 0x6c34, 0x02e5, - 0x6c35, 0x44ef, - 0x6c36, 0x17ab, - 0x6c37, 0x4208, - 0x6c38, 0x0351, - 0x6c39, 0x3e05, - 0x6c3a, 0x44f0, - 0x6c3b, 0x17ae, - 0x6c3d, 0x4381, - 0x6c3e, 0x0354, - 0x6c3f, 0x17ad, - 0x6c40, 0x0353, - 0x6c41, 0x0352, - 0x6c42, 0x04cb, - 0x6c43, 0x17ac, - 0x6c46, 0x1802, - 0x6c49, 0x408d, - 0x6c4a, 0x1806, - 0x6c4b, 0x1808, - 0x6c4d, 0x03f0, - 0x6c4f, 0x1805, - 0x6c50, 0x03ec, - 0x6c52, 0x1803, - 0x6c54, 0x1807, - 0x6c55, 0x03ed, - 0x6c57, 0x03e8, - 0x6c58, 0x3bba, - 0x6c59, 0x03e9, - 0x6c5a, 0x420c, - 0x6c5b, 0x03ef, - 0x6c5c, 0x1804, - 0x6c5d, 0x03e7, - 0x6c5e, 0x04cc, - 0x6c5f, 0x03ea, - 0x6c61, 0x03ee, - 0x6c65, 0x18c0, - 0x6c66, 0x18be, - 0x6c67, 0x18b1, - 0x6c68, 0x04d8, - 0x6c69, 0x18b8, - 0x6c6a, 0x04d3, - 0x6c6b, 0x18b2, - 0x6c6d, 0x18ba, - 0x6c6e, 0x40ca, - 0x6c6f, 0x18b7, - 0x6c70, 0x04d6, - 0x6c71, 0x18b6, - 0x6c72, 0x04dd, - 0x6c73, 0x18bf, - 0x6c74, 0x04df, - 0x6c75, 0x466e, - 0x6c76, 0x04e1, - 0x6c78, 0x18b0, - 0x6c79, 0x420e, - 0x6c7a, 0x04d4, - 0x6c7b, 0x18c1, - 0x6c7d, 0x04db, - 0x6c7e, 0x04de, - 0x6c7f, 0x37a6, - 0x6c80, 0x19e4, - 0x6c81, 0x04ce, - 0x6c82, 0x04e5, - 0x6c83, 0x04dc, - 0x6c84, 0x18b3, - 0x6c85, 0x04d1, - 0x6c86, 0x04e0, - 0x6c87, 0x18bb, - 0x6c88, 0x04cf, - 0x6c8a, 0x19e2, - 0x6c8b, 0x18b4, - 0x6c8c, 0x04d7, - 0x6c8d, 0x04e2, - 0x6c8e, 0x18c2, - 0x6c8f, 0x18b5, - 0x6c90, 0x04d5, - 0x6c92, 0x04da, - 0x6c93, 0x19ce, - 0x6c94, 0x04e3, - 0x6c95, 0x18bc, - 0x6c96, 0x04d9, - 0x6c98, 0x04e4, - 0x6c99, 0x04cd, - 0x6c9a, 0x18b9, - 0x6c9b, 0x04d2, - 0x6c9c, 0x18bd, - 0x6c9d, 0x19e3, - 0x6c9f, 0x3889, - 0x6ca2, 0x3d63, - 0x6caa, 0x466f, - 0x6cab, 0x062b, - 0x6cac, 0x063b, - 0x6cad, 0x19d5, - 0x6cae, 0x0632, - 0x6caf, 0x3cf6, - 0x6cb0, 0x19ea, - 0x6cb1, 0x0623, - 0x6cb2, 0x3ecc, - 0x6cb3, 0x0626, - 0x6cb4, 0x19e1, - 0x6cb6, 0x19d3, - 0x6cb7, 0x19d7, - 0x6cb8, 0x062e, - 0x6cb9, 0x0630, - 0x6cba, 0x19da, - 0x6cbb, 0x0637, - 0x6cbc, 0x0629, - 0x6cbd, 0x0627, - 0x6cbf, 0x0636, - 0x6cc0, 0x19e6, - 0x6cc1, 0x0631, - 0x6cc2, 0x19d9, - 0x6cc3, 0x19db, - 0x6cc4, 0x062f, - 0x6cc5, 0x0634, - 0x6cc6, 0x19dc, - 0x6cc7, 0x19e9, - 0x6cc9, 0x0770, - 0x6cca, 0x063a, - 0x6ccb, 0x4070, - 0x6ccc, 0x0624, - 0x6ccd, 0x19e8, - 0x6cce, 0x3f91, - 0x6ccf, 0x19ec, - 0x6cd0, 0x19d8, - 0x6cd1, 0x19ee, - 0x6cd2, 0x19df, - 0x6cd3, 0x062d, - 0x6cd4, 0x19d4, - 0x6cd5, 0x062c, - 0x6cd6, 0x063e, - 0x6cd7, 0x0633, - 0x6cd9, 0x19d2, - 0x6cda, 0x1b4e, - 0x6cdb, 0x0639, - 0x6cdc, 0x063d, - 0x6cdd, 0x19e0, - 0x6cde, 0x19e5, - 0x6cdf, 0x3d57, - 0x6ce0, 0x063f, - 0x6ce1, 0x0638, - 0x6ce2, 0x062a, - 0x6ce3, 0x0620, - 0x6ce5, 0x0625, - 0x6ce7, 0x19d6, - 0x6ce8, 0x0621, - 0x6ce9, 0x19ed, - 0x6cea, 0x3f8d, - 0x6ceb, 0x19d0, - 0x6cec, 0x19cf, - 0x6ced, 0x19dd, - 0x6cee, 0x19d1, - 0x6cef, 0x063c, - 0x6cf0, 0x0907, - 0x6cf1, 0x0635, - 0x6cf2, 0x19de, - 0x6cf3, 0x0622, - 0x6cf5, 0x077f, - 0x6cf9, 0x19eb, - 0x6d00, 0x1b55, - 0x6d01, 0x1b58, - 0x6d02, 0x4671, - 0x6d03, 0x1b5b, - 0x6d04, 0x1b50, - 0x6d05, 0x3a19, - 0x6d06, 0x4672, - 0x6d07, 0x1b5e, - 0x6d08, 0x1b61, - 0x6d09, 0x1b63, - 0x6d0a, 0x1b4d, - 0x6d0b, 0x0771, - 0x6d0c, 0x0776, - 0x6d0d, 0x1cf9, - 0x6d0e, 0x0786, - 0x6d0f, 0x1b5c, - 0x6d10, 0x1b64, - 0x6d11, 0x1b54, - 0x6d12, 0x1b4c, - 0x6d16, 0x1d14, - 0x6d17, 0x0779, - 0x6d18, 0x1b59, - 0x6d19, 0x1b51, - 0x6d1a, 0x1b53, - 0x6d1b, 0x077e, - 0x6d1d, 0x1b56, - 0x6d1e, 0x0778, - 0x6d1f, 0x1b49, - 0x6d20, 0x1b5f, - 0x6d22, 0x1b62, - 0x6d24, 0x3ac3, - 0x6d25, 0x0775, - 0x6d26, 0x4673, - 0x6d27, 0x0781, - 0x6d28, 0x1b46, - 0x6d29, 0x0783, - 0x6d2a, 0x0773, - 0x6d2b, 0x0787, - 0x6d2c, 0x1b60, - 0x6d2d, 0x1b48, - 0x6d2e, 0x0784, - 0x6d2f, 0x1d0e, - 0x6d30, 0x19e7, - 0x6d31, 0x0777, - 0x6d32, 0x0772, - 0x6d33, 0x1b4f, - 0x6d34, 0x1b47, - 0x6d35, 0x0785, - 0x6d36, 0x077d, - 0x6d37, 0x1b5a, - 0x6d38, 0x0782, - 0x6d39, 0x0780, - 0x6d3a, 0x1b52, - 0x6d3b, 0x077a, - 0x6d3c, 0x1b4a, - 0x6d3d, 0x077b, - 0x6d3f, 0x1b4b, - 0x6d40, 0x1b5d, - 0x6d41, 0x0774, - 0x6d42, 0x1b57, - 0x6d4e, 0x4558, - 0x6d57, 0x3cf3, - 0x6d58, 0x1cfc, - 0x6d59, 0x090f, - 0x6d5a, 0x0914, - 0x6d5b, 0x409c, - 0x6d5c, 0x4222, - 0x6d5e, 0x1d05, - 0x6d5f, 0x1d0b, - 0x6d60, 0x1d07, - 0x6d61, 0x1cfa, - 0x6d62, 0x1cfd, - 0x6d63, 0x1cf6, - 0x6d65, 0x091b, - 0x6d66, 0x090c, - 0x6d67, 0x1d06, - 0x6d68, 0x1d0f, - 0x6d69, 0x0916, - 0x6d6a, 0x0908, - 0x6d6c, 0x0911, - 0x6d6d, 0x1cfe, - 0x6d6e, 0x0913, - 0x6d6f, 0x1cff, - 0x6d70, 0x1d09, - 0x6d71, 0x40f5, - 0x6d72, 0x39d7, - 0x6d74, 0x0915, - 0x6d75, 0x1d18, - 0x6d76, 0x1cf8, - 0x6d77, 0x090e, - 0x6d78, 0x090d, - 0x6d79, 0x0919, - 0x6d7a, 0x1cf5, - 0x6d7b, 0x1d16, - 0x6d7c, 0x1d0a, - 0x6d7d, 0x1d17, - 0x6d7e, 0x1d11, - 0x6d7f, 0x1d03, - 0x6d80, 0x1d12, - 0x6d81, 0x4674, - 0x6d82, 0x1d0c, - 0x6d83, 0x1d15, - 0x6d84, 0x1d13, - 0x6d85, 0x091a, - 0x6d86, 0x1d04, - 0x6d87, 0x090b, - 0x6d88, 0x090a, - 0x6d89, 0x0912, - 0x6d8a, 0x0918, - 0x6d8b, 0x1d10, - 0x6d8c, 0x0917, - 0x6d8d, 0x1d01, - 0x6d8e, 0x0aec, - 0x6d8f, 0x3de8, - 0x6d90, 0x1d19, - 0x6d91, 0x1d00, - 0x6d92, 0x1cfb, - 0x6d93, 0x0910, - 0x6d94, 0x091c, - 0x6d95, 0x0909, - 0x6d96, 0x4221, - 0x6d97, 0x1d08, - 0x6d98, 0x1d0d, - 0x6da4, 0x4676, - 0x6da5, 0x3ab9, - 0x6daa, 0x0b0e, - 0x6dab, 0x1f46, - 0x6dac, 0x1f4a, - 0x6dae, 0x0afb, - 0x6daf, 0x0af9, - 0x6db1, 0x4677, - 0x6db2, 0x0af0, - 0x6db3, 0x1f48, - 0x6db4, 0x1f47, - 0x6db5, 0x0b04, - 0x6db7, 0x1f4d, - 0x6db8, 0x0afe, - 0x6db9, 0x3ffb, - 0x6dba, 0x1f5f, - 0x6dbb, 0x1f6b, - 0x6dbc, 0x0aed, - 0x6dbd, 0x1f5c, - 0x6dbe, 0x1f55, - 0x6dbf, 0x0b10, - 0x6dc0, 0x1f45, - 0x6dc2, 0x1f61, - 0x6dc4, 0x0b0d, - 0x6dc5, 0x0b01, - 0x6dc6, 0x0b0c, - 0x6dc7, 0x0af7, - 0x6dc8, 0x1f51, - 0x6dc9, 0x1f63, - 0x6dca, 0x1f5b, - 0x6dcb, 0x0af8, - 0x6dcc, 0x0af2, - 0x6dcd, 0x1f69, - 0x6dcf, 0x1f62, - 0x6dd0, 0x1f64, - 0x6dd1, 0x0afa, - 0x6dd2, 0x0b02, - 0x6dd3, 0x1f66, - 0x6dd4, 0x1f4f, - 0x6dd5, 0x1f60, - 0x6dd6, 0x1f54, - 0x6dd7, 0x1f68, - 0x6dd8, 0x0b07, - 0x6dd9, 0x0aef, - 0x6dda, 0x0b05, - 0x6ddb, 0x1f59, - 0x6ddc, 0x1f57, - 0x6dde, 0x0afc, - 0x6ddf, 0x1f53, - 0x6de0, 0x1f52, - 0x6de1, 0x0af1, - 0x6de2, 0x1f4c, - 0x6de3, 0x1f6a, - 0x6de4, 0x0af3, - 0x6de5, 0x1f56, - 0x6de6, 0x0b11, - 0x6de8, 0x0b0b, - 0x6de9, 0x1f4b, - 0x6dea, 0x0b08, - 0x6deb, 0x0b06, - 0x6dec, 0x0b0f, - 0x6ded, 0x1f5d, - 0x6dee, 0x0b0a, - 0x6def, 0x1d02, - 0x6df0, 0x1f5e, - 0x6df1, 0x0b09, - 0x6df2, 0x1f65, - 0x6df3, 0x0aee, - 0x6df4, 0x1f5a, - 0x6df5, 0x0b00, - 0x6df6, 0x1f4e, - 0x6df7, 0x0aff, - 0x6df9, 0x0afd, - 0x6dfa, 0x0af5, - 0x6dfb, 0x0af4, - 0x6dfc, 0x21bf, - 0x6dfd, 0x1f67, - 0x6e00, 0x1f50, - 0x6e02, 0x3cfa, - 0x6e03, 0x21d4, - 0x6e04, 0x3abe, - 0x6e05, 0x0af6, - 0x6e0a, 0x3ac1, - 0x6e0f, 0x3cf0, - 0x6e15, 0x4678, - 0x6e18, 0x4679, - 0x6e19, 0x0cc1, - 0x6e1a, 0x0b03, - 0x6e1b, 0x0caf, - 0x6e1c, 0x21ce, - 0x6e1d, 0x0cbd, - 0x6e1f, 0x21c2, - 0x6e20, 0x0cac, - 0x6e21, 0x0ca8, - 0x6e22, 0x21e0, - 0x6e23, 0x0cae, - 0x6e24, 0x0cb2, - 0x6e25, 0x0cad, - 0x6e26, 0x0cb6, - 0x6e27, 0x21e4, - 0x6e28, 0x21db, - 0x6e29, 0x467a, - 0x6e2a, 0x4302, - 0x6e2b, 0x21c9, - 0x6e2c, 0x0cbb, - 0x6e2d, 0x0cb5, - 0x6e2e, 0x21d5, - 0x6e2f, 0x0ca5, - 0x6e30, 0x21e1, - 0x6e31, 0x21da, - 0x6e32, 0x0ca9, - 0x6e33, 0x21cf, - 0x6e34, 0x0cb8, - 0x6e35, 0x21ec, - 0x6e38, 0x0ca6, - 0x6e39, 0x21df, - 0x6e3a, 0x0cba, - 0x6e3b, 0x21d3, - 0x6e3c, 0x21c5, - 0x6e3e, 0x0cbe, - 0x6e3f, 0x21ca, - 0x6e40, 0x21d1, - 0x6e41, 0x21cb, - 0x6e43, 0x0cbc, - 0x6e44, 0x0cc4, - 0x6e45, 0x21c7, - 0x6e46, 0x21c0, - 0x6e49, 0x21c3, - 0x6e4a, 0x0cab, - 0x6e4b, 0x21d0, - 0x6e4d, 0x0cb9, - 0x6e4e, 0x0cc2, - 0x6e4f, 0x4234, - 0x6e50, 0x41d1, - 0x6e51, 0x21d2, - 0x6e52, 0x21ea, - 0x6e53, 0x21e2, - 0x6e54, 0x0ca7, - 0x6e55, 0x21e8, - 0x6e56, 0x0cb3, - 0x6e58, 0x0cb1, - 0x6e59, 0x40e6, - 0x6e5a, 0x21ee, - 0x6e5b, 0x0cb0, - 0x6e5c, 0x21d8, - 0x6e5d, 0x21cc, - 0x6e5e, 0x21d6, - 0x6e5f, 0x0cc7, - 0x6e60, 0x21dc, - 0x6e61, 0x21d9, - 0x6e62, 0x21c8, - 0x6e63, 0x0cc3, - 0x6e64, 0x21e6, - 0x6e65, 0x21e3, - 0x6e66, 0x21eb, - 0x6e67, 0x0caa, - 0x6e68, 0x21d7, - 0x6e69, 0x0cc6, - 0x6e6b, 0x21de, - 0x6e6e, 0x0cb4, - 0x6e6f, 0x0cb7, - 0x6e71, 0x21dd, - 0x6e72, 0x0cc5, - 0x6e73, 0x21cd, - 0x6e74, 0x1f49, - 0x6e76, 0x39d3, - 0x6e77, 0x21e7, - 0x6e78, 0x21e5, - 0x6e79, 0x21e9, - 0x6e7c, 0x4223, - 0x6e86, 0x467b, - 0x6e88, 0x21c4, - 0x6e89, 0x0cc0, - 0x6e8b, 0x3bbf, - 0x6e8d, 0x246c, - 0x6e8e, 0x246b, - 0x6e8f, 0x2451, - 0x6e90, 0x0e55, - 0x6e92, 0x246a, - 0x6e93, 0x2454, - 0x6e96, 0x0e5f, - 0x6e97, 0x2473, - 0x6e98, 0x0e5a, - 0x6e99, 0x2469, - 0x6e9a, 0x4581, - 0x6e9b, 0x244e, - 0x6e9c, 0x0e60, - 0x6e9d, 0x0e56, - 0x6e9e, 0x245d, - 0x6e9f, 0x2453, - 0x6ea0, 0x2456, - 0x6ea1, 0x246e, - 0x6ea2, 0x0e50, - 0x6ea3, 0x2475, - 0x6ea4, 0x246d, - 0x6ea5, 0x0e59, - 0x6ea6, 0x2462, - 0x6ea7, 0x0e64, - 0x6eaa, 0x0e63, - 0x6eab, 0x0e5d, - 0x6eae, 0x2474, - 0x6eaf, 0x0e51, - 0x6eb0, 0x2460, - 0x6eb1, 0x2457, - 0x6eb2, 0x2464, - 0x6eb3, 0x2470, - 0x6eb4, 0x0e65, - 0x6eb5, 0x41fe, - 0x6eb6, 0x0e53, - 0x6eb7, 0x245f, - 0x6eb8, 0x3e0c, - 0x6eb9, 0x2458, - 0x6eba, 0x0e5c, - 0x6ebb, 0x467d, - 0x6ebc, 0x0e5b, - 0x6ebd, 0x245b, - 0x6ebe, 0x2465, - 0x6ebf, 0x246f, - 0x6ec0, 0x2452, - 0x6ec1, 0x245c, - 0x6ec2, 0x0e54, - 0x6ec3, 0x2466, - 0x6ec4, 0x0e61, - 0x6ec5, 0x0e58, - 0x6ec6, 0x2459, - 0x6ec7, 0x0e57, - 0x6ec8, 0x2450, - 0x6ec9, 0x245e, - 0x6eca, 0x2472, - 0x6ecb, 0x0cbf, - 0x6ecc, 0x101f, - 0x6ecd, 0x2461, - 0x6ece, 0x26eb, - 0x6ecf, 0x2463, - 0x6ed0, 0x2471, - 0x6ed1, 0x0e5e, - 0x6ed2, 0x245a, - 0x6ed3, 0x0e52, - 0x6ed4, 0x0e62, - 0x6ed5, 0x119a, - 0x6ed6, 0x244f, - 0x6ed8, 0x2468, - 0x6ed9, 0x4069, - 0x6eda, 0x467f, - 0x6edb, 0x402f, - 0x6edc, 0x2467, - 0x6edd, 0x4538, - 0x6ee2, 0x467e, - 0x6ee8, 0x4681, - 0x6eeb, 0x2707, - 0x6eec, 0x101c, - 0x6eed, 0x26fc, - 0x6eee, 0x2701, - 0x6eef, 0x1011, - 0x6ef1, 0x26ed, - 0x6ef2, 0x101e, - 0x6ef4, 0x1008, - 0x6ef5, 0x26ec, - 0x6ef6, 0x270d, - 0x6ef7, 0x1020, - 0x6ef8, 0x26f0, - 0x6ef9, 0x2700, - 0x6efa, 0x423b, - 0x6efb, 0x26f2, - 0x6efc, 0x2710, - 0x6efd, 0x270c, - 0x6efe, 0x1006, - 0x6eff, 0x1010, - 0x6f00, 0x2946, - 0x6f01, 0x101d, - 0x6f02, 0x100e, - 0x6f03, 0x26ee, - 0x6f04, 0x4224, - 0x6f05, 0x270b, - 0x6f06, 0x1012, - 0x6f07, 0x2708, - 0x6f08, 0x2715, - 0x6f09, 0x26f4, - 0x6f0a, 0x26fd, - 0x6f0b, 0x3aba, - 0x6f0c, 0x3cfb, - 0x6f0d, 0x2713, - 0x6f0e, 0x2709, - 0x6f0f, 0x100d, - 0x6f12, 0x26fb, - 0x6f13, 0x1007, - 0x6f14, 0x1005, - 0x6f15, 0x1017, - 0x6f16, 0x41a0, - 0x6f17, 0x46ce, - 0x6f18, 0x26f9, - 0x6f19, 0x26f6, - 0x6f1c, 0x270f, - 0x6f1e, 0x2714, - 0x6f1f, 0x2712, - 0x6f20, 0x100b, - 0x6f21, 0x2716, - 0x6f22, 0x100f, - 0x6f23, 0x1016, - 0x6f24, 0x4683, - 0x6f25, 0x26ef, - 0x6f26, 0x292e, - 0x6f27, 0x26f8, - 0x6f29, 0x1009, - 0x6f2a, 0x101b, - 0x6f2b, 0x1018, - 0x6f2c, 0x100c, - 0x6f2d, 0x2702, - 0x6f2e, 0x26f3, - 0x6f2f, 0x1019, - 0x6f30, 0x2704, - 0x6f31, 0x1013, - 0x6f32, 0x1015, - 0x6f33, 0x1004, - 0x6f34, 0x4684, - 0x6f35, 0x2706, - 0x6f36, 0x26fe, - 0x6f37, 0x26f1, - 0x6f38, 0x1014, - 0x6f39, 0x270e, - 0x6f3a, 0x2711, - 0x6f3b, 0x26fa, - 0x6f3c, 0x2705, - 0x6f3d, 0x4282, - 0x6f3e, 0x100a, - 0x6f3f, 0x1189, - 0x6f40, 0x2703, - 0x6f41, 0x292d, - 0x6f43, 0x270a, - 0x6f44, 0x4240, - 0x6f4e, 0x26f5, - 0x6f4f, 0x2937, - 0x6f50, 0x2941, - 0x6f51, 0x118c, - 0x6f52, 0x2940, - 0x6f53, 0x294c, - 0x6f54, 0x118e, - 0x6f55, 0x293e, - 0x6f56, 0x3e52, - 0x6f57, 0x2942, - 0x6f58, 0x1199, - 0x6f5a, 0x2939, - 0x6f5b, 0x1191, - 0x6f5c, 0x4241, - 0x6f5d, 0x2945, - 0x6f5e, 0x2b9a, - 0x6f5f, 0x119d, - 0x6f60, 0x119c, - 0x6f61, 0x2947, - 0x6f62, 0x2936, - 0x6f63, 0x2951, - 0x6f64, 0x1197, - 0x6f66, 0x118d, - 0x6f67, 0x294a, - 0x6f69, 0x294e, - 0x6f6a, 0x2953, - 0x6f6b, 0x2948, - 0x6f6c, 0x293c, - 0x6f6d, 0x1190, - 0x6f6e, 0x1193, - 0x6f6f, 0x119b, - 0x6f70, 0x1196, - 0x6f72, 0x293f, - 0x6f73, 0x26ff, - 0x6f74, 0x4243, - 0x6f76, 0x293b, - 0x6f77, 0x2952, - 0x6f78, 0x1192, - 0x6f79, 0x3bbe, - 0x6f7a, 0x1195, - 0x6f7b, 0x2954, - 0x6f7c, 0x118a, - 0x6f7d, 0x2949, - 0x6f7e, 0x292f, - 0x6f7f, 0x294f, - 0x6f80, 0x13fc, - 0x6f81, 0x4687, - 0x6f82, 0x293d, - 0x6f84, 0x118b, - 0x6f85, 0x2938, - 0x6f86, 0x118f, - 0x6f87, 0x2930, - 0x6f88, 0x101a, - 0x6f89, 0x2934, - 0x6f8a, 0x4195, - 0x6f8b, 0x294d, - 0x6f8c, 0x2935, - 0x6f8d, 0x2933, - 0x6f8e, 0x1194, - 0x6f90, 0x294b, - 0x6f92, 0x2932, - 0x6f93, 0x2944, - 0x6f94, 0x2943, - 0x6f95, 0x2950, - 0x6f96, 0x293a, - 0x6f97, 0x1198, - 0x6f9d, 0x4239, - 0x6f9e, 0x2b9d, - 0x6f9f, 0x4246, - 0x6fa0, 0x12eb, - 0x6fa1, 0x12e1, - 0x6fa2, 0x2ba9, - 0x6fa3, 0x2b95, - 0x6fa4, 0x12e3, - 0x6fa5, 0x2ba1, - 0x6fa6, 0x12ea, - 0x6fa7, 0x12e5, - 0x6fa8, 0x2b9f, - 0x6fa9, 0x2d8e, - 0x6faa, 0x2ba5, - 0x6fab, 0x2bab, - 0x6fac, 0x2ba4, - 0x6fad, 0x2b93, - 0x6fae, 0x2ba2, - 0x6faf, 0x2bad, - 0x6fb0, 0x2baf, - 0x6fb1, 0x12e0, - 0x6fb2, 0x2bae, - 0x6fb3, 0x12e6, - 0x6fb4, 0x12ec, - 0x6fb5, 0x3e27, - 0x6fb6, 0x12e9, - 0x6fb8, 0x2ba8, - 0x6fb9, 0x12e8, - 0x6fba, 0x2ba3, - 0x6fbb, 0x3bbb, - 0x6fbc, 0x2b97, - 0x6fbd, 0x2b9c, - 0x6fbe, 0x4688, - 0x6fbf, 0x2ba7, - 0x6fc0, 0x12e7, - 0x6fc1, 0x12e4, - 0x6fc2, 0x12df, - 0x6fc3, 0x12e2, - 0x6fc4, 0x2b9b, - 0x6fc6, 0x2931, - 0x6fc7, 0x2b96, - 0x6fc8, 0x2b99, - 0x6fc9, 0x2baa, - 0x6fca, 0x2b9e, - 0x6fcb, 0x2b94, - 0x6fcc, 0x2d8d, - 0x6fcd, 0x2bac, - 0x6fce, 0x2b98, - 0x6fcf, 0x2ba6, - 0x6fd3, 0x4248, - 0x6fd4, 0x2d90, - 0x6fd5, 0x1400, - 0x6fd8, 0x13f4, - 0x6fd9, 0x3c74, - 0x6fda, 0x3c73, - 0x6fdb, 0x13f8, - 0x6fdc, 0x2d92, - 0x6fdd, 0x2d98, - 0x6fde, 0x2d96, - 0x6fdf, 0x13f6, - 0x6fe1, 0x13fe, - 0x6fe2, 0x2d99, - 0x6fe3, 0x2d91, - 0x6fe4, 0x13f9, - 0x6fe6, 0x2d95, - 0x6fe7, 0x2d94, - 0x6fe8, 0x2d9a, - 0x6fe9, 0x13ff, - 0x6feb, 0x13fa, - 0x6fec, 0x13fd, - 0x6fed, 0x2d93, - 0x6fee, 0x1401, - 0x6fef, 0x13fb, - 0x6ff0, 0x1402, - 0x6ff1, 0x13f5, - 0x6ff2, 0x2d97, - 0x6ff4, 0x2d8f, - 0x6ff6, 0x38a5, - 0x6ff7, 0x2f4e, - 0x6ff8, 0x4237, - 0x6ffa, 0x14eb, - 0x6ffb, 0x2f4b, - 0x6ffc, 0x2f4d, - 0x6ffe, 0x14e9, - 0x6fff, 0x2f49, - 0x7000, 0x2f4a, - 0x7001, 0x2f45, - 0x7003, 0x46e2, - 0x7004, 0x2ba0, - 0x7005, 0x2f46, - 0x7006, 0x14ea, - 0x7007, 0x2f42, - 0x7009, 0x14e7, - 0x700a, 0x2f4f, - 0x700b, 0x14e8, - 0x700c, 0x2f43, - 0x700e, 0x2f48, - 0x700f, 0x14ed, - 0x7011, 0x14ec, - 0x7014, 0x2f47, - 0x7015, 0x158f, - 0x7016, 0x30ad, - 0x7017, 0x30b3, - 0x7018, 0x1590, - 0x7019, 0x30aa, - 0x701a, 0x158d, - 0x701b, 0x158a, - 0x701c, 0x30b5, - 0x701d, 0x158e, - 0x701e, 0x3c76, - 0x701f, 0x158b, - 0x7020, 0x30ac, - 0x7021, 0x30af, - 0x7024, 0x30b4, - 0x7026, 0x2f4c, - 0x7027, 0x30ab, - 0x7028, 0x158c, - 0x7029, 0x30b2, - 0x702a, 0x31ef, - 0x702b, 0x30ae, - 0x702c, 0x468e, - 0x702f, 0x31e6, - 0x7030, 0x161d, - 0x7031, 0x31e9, - 0x7032, 0x161e, - 0x7033, 0x31f2, - 0x7034, 0x31e8, - 0x7035, 0x31e5, - 0x7037, 0x31e7, - 0x7038, 0x31eb, - 0x7039, 0x31ee, - 0x703a, 0x31ed, - 0x703b, 0x31f1, - 0x703c, 0x31e4, - 0x703e, 0x161c, - 0x703f, 0x31ec, - 0x7040, 0x31f0, - 0x7041, 0x31f3, - 0x7042, 0x31ea, - 0x7043, 0x32d8, - 0x7045, 0x32dd, - 0x7048, 0x32db, - 0x704a, 0x32da, - 0x704b, 0x4254, - 0x704c, 0x167a, - 0x7050, 0x4690, - 0x7051, 0x16c8, - 0x7052, 0x338c, - 0x7054, 0x4691, - 0x7055, 0x3389, - 0x7058, 0x16c9, - 0x705a, 0x3423, - 0x705b, 0x3422, - 0x705c, 0x3852, - 0x705d, 0x348a, - 0x705e, 0x1722, - 0x705f, 0x3488, - 0x7060, 0x348b, - 0x7061, 0x3489, - 0x7062, 0x34d0, - 0x7063, 0x1744, - 0x7064, 0x1752, - 0x7065, 0x351c, - 0x7066, 0x3506, - 0x7067, 0x3cf5, - 0x7068, 0x351b, - 0x7069, 0x3547, - 0x706b, 0x02e6, - 0x706c, 0x44f1, - 0x706f, 0x4692, - 0x7070, 0x03f2, - 0x7071, 0x180a, - 0x7074, 0x18c3, - 0x7075, 0x38c7, - 0x7076, 0x04e6, - 0x7078, 0x04e9, - 0x7079, 0x4099, - 0x707a, 0x18c4, - 0x707c, 0x04e7, - 0x707e, 0x4255, - 0x707f, 0x4693, - 0x7081, 0x4959, - 0x7082, 0x19f7, - 0x7083, 0x19f9, - 0x7084, 0x19f4, - 0x7085, 0x19f1, - 0x7086, 0x19f3, - 0x7089, 0x43f9, - 0x708a, 0x0643, - 0x708b, 0x40cb, - 0x708e, 0x0641, - 0x708f, 0x46b3, - 0x7091, 0x19f5, - 0x7092, 0x0642, - 0x7093, 0x19f2, - 0x7094, 0x19ef, - 0x7095, 0x0640, - 0x7096, 0x19f6, - 0x7098, 0x19f0, - 0x7099, 0x0644, - 0x709a, 0x19f8, - 0x709f, 0x1b66, - 0x70a0, 0x4742, - 0x70a1, 0x1b6a, - 0x70a3, 0x3972, - 0x70a4, 0x0790, - 0x70a5, 0x3cb7, - 0x70a6, 0x3d53, - 0x70a7, 0x4256, - 0x70a9, 0x1b6d, - 0x70ab, 0x0788, - 0x70ac, 0x078b, - 0x70ad, 0x078d, - 0x70ae, 0x078f, - 0x70af, 0x078c, - 0x70b0, 0x1b69, - 0x70b1, 0x1b68, - 0x70b3, 0x078a, - 0x70b4, 0x1b6b, - 0x70b7, 0x1b65, - 0x70b8, 0x078e, - 0x70b9, 0x3d69, - 0x70ba, 0x0789, - 0x70bb, 0x4812, - 0x70bc, 0x4559, - 0x70bd, 0x4270, - 0x70be, 0x1b67, - 0x70c0, 0x4733, - 0x70c4, 0x3baa, - 0x70c5, 0x1d27, - 0x70c8, 0x0921, - 0x70ca, 0x091d, - 0x70cb, 0x1d1e, - 0x70cc, 0x4258, - 0x70cd, 0x1d26, - 0x70ce, 0x1d2b, - 0x70cf, 0x0922, - 0x70d0, 0x396d, - 0x70d1, 0x1d1c, - 0x70d2, 0x1d22, - 0x70d3, 0x1d1b, - 0x70d4, 0x1d25, - 0x70d5, 0x4259, - 0x70d7, 0x1d21, - 0x70d8, 0x091e, - 0x70d9, 0x0920, - 0x70da, 0x1d2a, - 0x70dc, 0x1d1a, - 0x70dd, 0x1d1d, - 0x70de, 0x1d23, - 0x70df, 0x425b, - 0x70e0, 0x1d24, - 0x70e1, 0x1d2c, - 0x70e2, 0x1d20, - 0x70e4, 0x091f, - 0x70ef, 0x0b16, - 0x70f0, 0x1f72, - 0x70f1, 0x3ac8, - 0x70f3, 0x1f74, - 0x70f4, 0x1f70, - 0x70f5, 0x4760, - 0x70f6, 0x1f7c, - 0x70f7, 0x1f6e, - 0x70f8, 0x1f7b, - 0x70f9, 0x0b12, - 0x70fa, 0x1f6c, - 0x70fb, 0x21f2, - 0x70fc, 0x1f76, - 0x70fd, 0x0b15, - 0x70fe, 0x3d0e, - 0x70ff, 0x1f77, - 0x7100, 0x1f7a, - 0x7102, 0x1f7e, - 0x7104, 0x1f73, - 0x7105, 0x3a23, - 0x7106, 0x1f78, - 0x7109, 0x0b13, - 0x710b, 0x1f7d, - 0x710c, 0x1f71, - 0x710d, 0x1f6d, - 0x710e, 0x1f7f, - 0x7110, 0x1f75, - 0x7113, 0x1f79, - 0x7117, 0x1f6f, - 0x7119, 0x0cc8, - 0x711b, 0x21fc, - 0x711c, 0x0ccf, - 0x711d, 0x3d47, - 0x711e, 0x21f0, - 0x711f, 0x21f9, - 0x7120, 0x21ef, - 0x7121, 0x0ccc, - 0x7122, 0x21f7, - 0x7123, 0x21f5, - 0x7125, 0x21f6, - 0x7126, 0x0cca, - 0x7128, 0x21fa, - 0x7129, 0x3ba9, - 0x712b, 0x4261, - 0x712c, 0x426a, - 0x712e, 0x21f3, - 0x712f, 0x21f1, - 0x7130, 0x0ccb, - 0x7131, 0x21f4, - 0x7132, 0x21f8, - 0x7133, 0x3d54, - 0x7134, 0x3c7e, - 0x7135, 0x376d, - 0x7136, 0x0ccd, - 0x713a, 0x21fb, - 0x713b, 0x3ac5, - 0x713e, 0x372e, - 0x7140, 0x4398, - 0x7141, 0x247b, - 0x7142, 0x2482, - 0x7143, 0x2484, - 0x7144, 0x248a, - 0x7145, 0x4262, - 0x7146, 0x0e72, - 0x7147, 0x2476, - 0x7149, 0x0e6a, - 0x714a, 0x4264, - 0x714b, 0x2485, - 0x714c, 0x0e6f, - 0x714d, 0x248b, - 0x714e, 0x0e66, - 0x714f, 0x4267, - 0x7150, 0x2488, - 0x7151, 0x4865, - 0x7152, 0x2478, - 0x7153, 0x2489, - 0x7154, 0x2477, - 0x7156, 0x0e74, - 0x7158, 0x2483, - 0x7159, 0x0e67, - 0x715a, 0x248c, - 0x715c, 0x0e6c, - 0x715d, 0x247c, - 0x715e, 0x0e71, - 0x715f, 0x2487, - 0x7160, 0x247a, - 0x7161, 0x2481, - 0x7162, 0x247d, - 0x7163, 0x2479, - 0x7164, 0x0e69, - 0x7165, 0x0e70, - 0x7166, 0x0e6e, - 0x7167, 0x0e6b, - 0x7168, 0x0e73, - 0x7169, 0x0e68, - 0x716a, 0x2480, - 0x716b, 0x3cc5, - 0x716c, 0x0e6d, - 0x716e, 0x0cce, - 0x7170, 0x2486, - 0x7171, 0x3dc0, - 0x7172, 0x247e, - 0x7173, 0x47e7, - 0x7175, 0x3ced, - 0x7176, 0x4000, - 0x7177, 0x3957, - 0x7178, 0x247f, - 0x717a, 0x4924, - 0x717b, 0x271e, - 0x717c, 0x3835, - 0x717d, 0x1023, - 0x717e, 0x3970, - 0x7180, 0x271a, - 0x7181, 0x2720, - 0x7182, 0x271c, - 0x7184, 0x1025, - 0x7185, 0x271b, - 0x7186, 0x271f, - 0x7187, 0x2717, - 0x7188, 0x4706, - 0x7189, 0x2719, - 0x718a, 0x1024, - 0x718c, 0x39ea, - 0x718e, 0x3d3b, - 0x718f, 0x271d, - 0x7190, 0x2718, - 0x7192, 0x1026, - 0x7194, 0x1021, - 0x7196, 0x425f, - 0x7197, 0x2721, - 0x7198, 0x481d, - 0x7199, 0x1022, - 0x719a, 0x295a, - 0x719b, 0x2957, - 0x719c, 0x2963, - 0x719d, 0x295d, - 0x719e, 0x295f, - 0x719f, 0x119e, - 0x71a0, 0x2959, - 0x71a1, 0x2961, - 0x71a2, 0x48c1, - 0x71a3, 0x3ec8, - 0x71a4, 0x2960, - 0x71a5, 0x295e, - 0x71a7, 0x2964, - 0x71a8, 0x11a1, - 0x71a9, 0x295b, - 0x71aa, 0x2962, - 0x71ac, 0x119f, - 0x71ad, 0x3e1d, - 0x71af, 0x2956, - 0x71b0, 0x2958, - 0x71b1, 0x11a0, - 0x71b2, 0x2955, - 0x71b3, 0x2965, - 0x71b4, 0x425e, - 0x71b5, 0x295c, - 0x71b7, 0x468b, - 0x71b8, 0x2bb3, - 0x71b9, 0x12f3, - 0x71ba, 0x426e, - 0x71bc, 0x2bbe, - 0x71bd, 0x2bbc, - 0x71be, 0x12ed, - 0x71bf, 0x2bb2, - 0x71c0, 0x2bb5, - 0x71c2, 0x2bb1, - 0x71c3, 0x12f7, - 0x71c5, 0x2bb0, - 0x71c6, 0x2bbf, - 0x71c7, 0x2bba, - 0x71c8, 0x12f1, - 0x71c9, 0x12ee, - 0x71ca, 0x2bb9, - 0x71cb, 0x2bb7, - 0x71ce, 0x12f4, - 0x71cf, 0x2bbb, - 0x71d0, 0x12ef, - 0x71d1, 0x373d, - 0x71d2, 0x12f0, - 0x71d4, 0x2bb8, - 0x71d5, 0x12f2, - 0x71d6, 0x2bb4, - 0x71d8, 0x2bbd, - 0x71d9, 0x12f5, - 0x71da, 0x2bc0, - 0x71dc, 0x12f6, - 0x71dd, 0x4078, - 0x71df, 0x1404, - 0x71e0, 0x140b, - 0x71e1, 0x2d9b, - 0x71e2, 0x2da1, - 0x71e4, 0x2d9f, - 0x71e5, 0x1407, - 0x71e6, 0x1406, - 0x71e7, 0x1403, - 0x71e8, 0x2d9d, - 0x71eb, 0x3c81, - 0x71ec, 0x1409, - 0x71ed, 0x1408, - 0x71ee, 0x1405, - 0x71f0, 0x2da0, - 0x71f1, 0x2d9c, - 0x71f2, 0x2d9e, - 0x71f4, 0x140a, - 0x71f5, 0x46ee, - 0x71f6, 0x3e9a, - 0x71f8, 0x14f1, - 0x71f9, 0x2f52, - 0x71fb, 0x14ee, - 0x71fd, 0x2f54, - 0x71fe, 0x14f0, - 0x71ff, 0x2f51, - 0x7201, 0x2f50, - 0x7202, 0x30b9, - 0x7203, 0x2f53, - 0x7205, 0x30ba, - 0x7206, 0x1591, - 0x7207, 0x30b8, - 0x7209, 0x3dbb, - 0x720a, 0x30b7, - 0x720c, 0x30b6, - 0x720d, 0x1592, - 0x720e, 0x4271, - 0x720f, 0x39fc, - 0x7210, 0x161f, - 0x7213, 0x31f4, - 0x7215, 0x4273, - 0x7216, 0x3953, - 0x7217, 0x3969, - 0x7219, 0x32e1, - 0x721a, 0x32e0, - 0x721b, 0x167b, - 0x721d, 0x32df, - 0x721e, 0x338d, - 0x7222, 0x3424, - 0x7223, 0x348c, - 0x7224, 0x4276, - 0x7226, 0x34d1, - 0x7227, 0x3535, - 0x7228, 0x1766, - 0x7229, 0x3549, - 0x722a, 0x02e7, - 0x722b, 0x44f2, - 0x722c, 0x0645, - 0x722e, 0x4279, - 0x7230, 0x0791, - 0x7235, 0x140c, - 0x7236, 0x02e8, - 0x7238, 0x0647, - 0x7239, 0x0923, - 0x723a, 0x0e75, - 0x723b, 0x02e9, - 0x723d, 0x0b17, - 0x723e, 0x1027, - 0x723f, 0x178d, - 0x7240, 0x427a, - 0x7241, 0x1b6e, - 0x7242, 0x1d2d, - 0x7244, 0x2722, - 0x7246, 0x140d, - 0x7247, 0x02ea, - 0x7248, 0x0648, - 0x7249, 0x1b6f, - 0x724b, 0x21fd, - 0x724c, 0x0cd0, - 0x724f, 0x248d, - 0x7250, 0x3ac9, - 0x7252, 0x0e76, - 0x7253, 0x2723, - 0x7255, 0x427d, - 0x7256, 0x11a2, - 0x7257, 0x427e, - 0x7258, 0x1593, - 0x7259, 0x02eb, - 0x725a, 0x21fe, - 0x725b, 0x02ec, - 0x725c, 0x465a, - 0x725d, 0x03f4, - 0x725e, 0x180b, - 0x725f, 0x03f3, - 0x7260, 0x04ec, - 0x7261, 0x04eb, - 0x7262, 0x04ea, - 0x7263, 0x18c5, - 0x7266, 0x3ebb, - 0x7267, 0x0649, - 0x7269, 0x064a, - 0x726a, 0x19fa, - 0x726c, 0x1b71, - 0x726e, 0x1b74, - 0x726f, 0x0793, - 0x7270, 0x1b72, - 0x7272, 0x0792, - 0x7273, 0x1b73, - 0x7274, 0x0794, - 0x7276, 0x1d30, - 0x7277, 0x1d2f, - 0x7278, 0x1d2e, - 0x7279, 0x0924, - 0x727b, 0x1f81, - 0x727d, 0x0b18, - 0x727e, 0x1f80, - 0x727f, 0x1f83, - 0x7280, 0x0cd2, - 0x7281, 0x0b19, - 0x7282, 0x4283, - 0x7284, 0x0cd1, - 0x7285, 0x2202, - 0x7286, 0x2201, - 0x7287, 0x3aca, - 0x7288, 0x21ff, - 0x728b, 0x2203, - 0x728c, 0x248f, - 0x728d, 0x248e, - 0x728e, 0x2492, - 0x728f, 0x43c9, - 0x7290, 0x2491, - 0x7291, 0x2490, - 0x7292, 0x1028, - 0x7293, 0x2726, - 0x7294, 0x3acb, - 0x7295, 0x2725, - 0x7296, 0x1029, - 0x7297, 0x2724, - 0x7298, 0x2966, - 0x729a, 0x2967, - 0x729b, 0x11a3, - 0x729d, 0x2bc2, - 0x729f, 0x473a, - 0x72a1, 0x30bf, - 0x72a2, 0x1594, - 0x72a3, 0x30be, - 0x72a4, 0x30bd, - 0x72a5, 0x30bb, - 0x72a7, 0x167c, - 0x72a8, 0x31f6, - 0x72a9, 0x338f, - 0x72aa, 0x34d2, - 0x72ac, 0x02ed, - 0x72ad, 0x44f4, - 0x72ae, 0x17af, - 0x72af, 0x0355, - 0x72b0, 0x17b0, - 0x72b2, 0x3fb6, - 0x72b4, 0x180c, - 0x72ba, 0x18cb, - 0x72bd, 0x18c7, - 0x72bf, 0x18c6, - 0x72c0, 0x064b, - 0x72c1, 0x18ca, - 0x72c2, 0x04ee, - 0x72c3, 0x18c8, - 0x72c4, 0x04ed, - 0x72c5, 0x18cc, - 0x72c6, 0x18c9, - 0x72c9, 0x19fe, - 0x72ca, 0x1b75, - 0x72cb, 0x19fc, - 0x72cc, 0x1a03, - 0x72cd, 0x43ca, - 0x72ce, 0x064c, - 0x72d0, 0x064f, - 0x72d1, 0x1a04, - 0x72d2, 0x1a00, - 0x72d4, 0x1a01, - 0x72d6, 0x19fb, - 0x72d7, 0x064e, - 0x72d8, 0x19fd, - 0x72d9, 0x064d, - 0x72da, 0x1a02, - 0x72dc, 0x19ff, - 0x72df, 0x1b79, - 0x72e0, 0x0796, - 0x72e2, 0x3f97, - 0x72e3, 0x1b7c, - 0x72e4, 0x1b76, - 0x72e6, 0x1b7b, - 0x72e8, 0x1b77, - 0x72e9, 0x0795, - 0x72ea, 0x1b7a, - 0x72eb, 0x1b78, - 0x72f3, 0x1d36, - 0x72f4, 0x1d33, - 0x72f6, 0x1d35, - 0x72f7, 0x0929, - 0x72f8, 0x0928, - 0x72f9, 0x0926, - 0x72fa, 0x1d32, - 0x72fb, 0x1d37, - 0x72fc, 0x0925, - 0x72fd, 0x0927, - 0x72fe, 0x1d34, - 0x72ff, 0x1f8b, - 0x7300, 0x1d31, - 0x7301, 0x1d38, - 0x7302, 0x3f9a, - 0x7304, 0x3eb5, - 0x7307, 0x1f86, - 0x7308, 0x1f8a, - 0x730a, 0x1f89, - 0x730b, 0x2205, - 0x730c, 0x2210, - 0x730f, 0x1f8c, - 0x7310, 0x46ea, - 0x7311, 0x1f87, - 0x7312, 0x2204, - 0x7313, 0x0b1d, - 0x7316, 0x0b1c, - 0x7317, 0x1f85, - 0x7318, 0x1f88, - 0x7319, 0x0b1e, - 0x731b, 0x0b1b, - 0x731c, 0x0b1a, - 0x731d, 0x1f84, - 0x731e, 0x1f8d, - 0x7322, 0x2207, - 0x7323, 0x220e, - 0x7325, 0x0cd4, - 0x7326, 0x220d, - 0x7327, 0x220a, - 0x7328, 0x428a, - 0x7329, 0x0cd6, - 0x732a, 0x3d70, - 0x732b, 0x4285, - 0x732c, 0x3fb2, - 0x732d, 0x220c, - 0x732e, 0x428b, - 0x7330, 0x2206, - 0x7331, 0x2208, - 0x7332, 0x220b, - 0x7333, 0x2209, - 0x7334, 0x0cd5, - 0x7335, 0x220f, - 0x7336, 0x0cd3, - 0x7337, 0x0e77, - 0x7338, 0x46eb, - 0x7339, 0x43cc, - 0x733a, 0x2496, - 0x733b, 0x2495, - 0x733c, 0x2493, - 0x733e, 0x0e7a, - 0x733f, 0x0e79, - 0x7340, 0x2497, - 0x7341, 0x46ec, - 0x7342, 0x2494, - 0x7343, 0x2727, - 0x7344, 0x102a, - 0x7345, 0x0e78, - 0x7348, 0x43fa, - 0x7349, 0x2499, - 0x734a, 0x2498, - 0x734c, 0x272a, - 0x734d, 0x2728, - 0x734e, 0x11a4, - 0x734f, 0x3f51, - 0x7350, 0x102b, - 0x7351, 0x2729, - 0x7352, 0x2969, - 0x7357, 0x11a5, - 0x7358, 0x2968, - 0x7359, 0x2971, - 0x735a, 0x2970, - 0x735b, 0x296e, - 0x735d, 0x296d, - 0x735e, 0x296a, - 0x7361, 0x296f, - 0x7362, 0x2972, - 0x7365, 0x2bc8, - 0x7366, 0x2bc5, - 0x7368, 0x12f9, - 0x7369, 0x2bc4, - 0x736a, 0x2bca, - 0x736b, 0x2bc9, - 0x736c, 0x2bc7, - 0x736e, 0x2da3, - 0x7370, 0x140e, - 0x7371, 0x3f98, - 0x7372, 0x140f, - 0x7373, 0x2da2, - 0x7374, 0x3ed4, - 0x7375, 0x14f3, - 0x7376, 0x2f55, - 0x7377, 0x14f2, - 0x7378, 0x1595, - 0x737a, 0x1596, - 0x737b, 0x1620, - 0x737c, 0x31f8, - 0x737d, 0x31f7, - 0x737e, 0x32e2, - 0x737f, 0x3390, - 0x7380, 0x16ca, - 0x7381, 0x3426, - 0x7382, 0x3425, - 0x7383, 0x3427, - 0x7384, 0x0356, - 0x7385, 0x1b7d, - 0x7386, 0x092a, - 0x7387, 0x0b1f, - 0x7388, 0x1f8e, - 0x7389, 0x0357, - 0x738a, 0x17b1, - 0x738b, 0x02ee, - 0x738e, 0x180e, - 0x738f, 0x46e5, - 0x7392, 0x18d1, - 0x7393, 0x18cf, - 0x7395, 0x18cd, - 0x7396, 0x04ef, - 0x7397, 0x18ce, - 0x7398, 0x39f6, - 0x739c, 0x408a, - 0x739d, 0x1a0c, - 0x739e, 0x395b, - 0x739f, 0x0652, - 0x73a0, 0x1a0a, - 0x73a1, 0x1a06, - 0x73a2, 0x1a09, - 0x73a4, 0x1a05, - 0x73a5, 0x0654, - 0x73a6, 0x1a08, - 0x73a7, 0x4087, - 0x73a8, 0x0651, - 0x73a9, 0x0650, - 0x73aa, 0x428d, - 0x73ab, 0x0653, - 0x73ac, 0x1a0b, - 0x73ad, 0x1a07, - 0x73b2, 0x079b, - 0x73b3, 0x079e, - 0x73b4, 0x1b85, - 0x73b5, 0x1b84, - 0x73b6, 0x1b83, - 0x73b7, 0x0798, - 0x73b8, 0x1b8c, - 0x73b9, 0x1b82, - 0x73bb, 0x079a, - 0x73bc, 0x1d3d, - 0x73be, 0x1b89, - 0x73bf, 0x1b87, - 0x73c0, 0x079d, - 0x73c2, 0x1b7f, - 0x73c3, 0x1b8a, - 0x73c5, 0x1b81, - 0x73c6, 0x1b8b, - 0x73c7, 0x1b88, - 0x73c8, 0x1b80, - 0x73c9, 0x4290, - 0x73ca, 0x0799, - 0x73cb, 0x1b8d, - 0x73cc, 0x1b7e, - 0x73cd, 0x079c, - 0x73ce, 0x411b, - 0x73cf, 0x428c, - 0x73d0, 0x3b17, - 0x73d2, 0x1d42, - 0x73d3, 0x1d39, - 0x73d4, 0x1d44, - 0x73d5, 0x4073, - 0x73d6, 0x1d3c, - 0x73d7, 0x1d47, - 0x73d9, 0x1d3a, - 0x73da, 0x1d46, - 0x73db, 0x1d43, - 0x73dc, 0x1d41, - 0x73dd, 0x1d45, - 0x73de, 0x0930, - 0x73e0, 0x092e, - 0x73e1, 0x46f0, - 0x73e2, 0x3ca3, - 0x73e3, 0x1d3f, - 0x73e4, 0x42a5, - 0x73e5, 0x1d3b, - 0x73e6, 0x3cba, - 0x73e7, 0x1d3e, - 0x73e8, 0x1d49, - 0x73e9, 0x1d40, - 0x73ea, 0x092f, - 0x73eb, 0x1b86, - 0x73ed, 0x092b, - 0x73ee, 0x092d, - 0x73ef, 0x4011, - 0x73f3, 0x3cab, - 0x73f4, 0x1f9c, - 0x73f5, 0x1f91, - 0x73f6, 0x1f8f, - 0x73f7, 0x429a, - 0x73f8, 0x1f90, - 0x73f9, 0x3bf9, - 0x73fa, 0x1f97, - 0x73fb, 0x3cac, - 0x73fc, 0x1f98, - 0x73fd, 0x1f94, - 0x73fe, 0x0b24, - 0x73ff, 0x1f99, - 0x7400, 0x1f96, - 0x7401, 0x1f93, - 0x7403, 0x0b22, - 0x7404, 0x1f92, - 0x7405, 0x0b20, - 0x7406, 0x0b23, - 0x7407, 0x1f95, - 0x7408, 0x1f9d, - 0x7409, 0x092c, - 0x740a, 0x0b21, - 0x740b, 0x1f9b, - 0x740c, 0x1f9a, - 0x740d, 0x0b25, - 0x7411, 0x456c, - 0x7412, 0x3be6, - 0x7414, 0x39f4, - 0x7415, 0x429b, - 0x7416, 0x2215, - 0x7417, 0x40ad, - 0x7419, 0x46f3, - 0x741a, 0x2216, - 0x741b, 0x0ce0, - 0x741c, 0x38dd, - 0x741d, 0x221c, - 0x741e, 0x46f4, - 0x7420, 0x221e, - 0x7421, 0x2217, - 0x7422, 0x0cda, - 0x7423, 0x221b, - 0x7424, 0x221a, - 0x7425, 0x0cdb, - 0x7426, 0x0ce1, - 0x7428, 0x0ce2, - 0x7429, 0x221d, - 0x742a, 0x0cd8, - 0x742b, 0x2214, - 0x742c, 0x2212, - 0x742d, 0x2218, - 0x742e, 0x2211, - 0x742f, 0x0cdf, - 0x7430, 0x2213, - 0x7431, 0x2219, - 0x7432, 0x221f, - 0x7433, 0x0cd9, - 0x7434, 0x0cde, - 0x7435, 0x0cdc, - 0x7437, 0x3ae1, - 0x7438, 0x3b09, - 0x7439, 0x429e, - 0x743a, 0x0cd7, - 0x743c, 0x3adf, - 0x743f, 0x0e81, - 0x7440, 0x24a0, - 0x7441, 0x0e80, - 0x7442, 0x24a4, - 0x7443, 0x3a1a, - 0x7444, 0x249a, - 0x7445, 0x3bd7, - 0x7446, 0x24a5, - 0x7447, 0x42a4, - 0x7448, 0x3cb5, - 0x7449, 0x4291, - 0x744a, 0x249b, - 0x744d, 0x24a6, - 0x744e, 0x24a3, - 0x744f, 0x24a1, - 0x7451, 0x249e, - 0x7452, 0x249d, - 0x7453, 0x4231, - 0x7454, 0x24a7, - 0x7455, 0x0e7d, - 0x7456, 0x39f5, - 0x7457, 0x249f, - 0x7459, 0x0e82, - 0x745a, 0x0e7c, - 0x745b, 0x0e83, - 0x745d, 0x42c6, - 0x745e, 0x0e7f, - 0x745f, 0x0e7e, - 0x7460, 0x42a2, - 0x7462, 0x272b, - 0x7463, 0x102d, - 0x7464, 0x102c, - 0x7465, 0x4101, - 0x7467, 0x2730, - 0x7468, 0x3aee, - 0x7469, 0x11a6, - 0x746a, 0x102e, - 0x746b, 0x3be7, - 0x746c, 0x42a8, - 0x746d, 0x1030, - 0x746e, 0x2731, - 0x746f, 0x0e7b, - 0x7470, 0x102f, - 0x7471, 0x272d, - 0x7472, 0x272f, - 0x7473, 0x272c, - 0x7474, 0x42a9, - 0x7475, 0x272e, - 0x7476, 0x42a6, - 0x7479, 0x297c, - 0x747a, 0x3ad1, - 0x747c, 0x297b, - 0x747d, 0x2978, - 0x747e, 0x11a9, - 0x747f, 0x2bcb, - 0x7480, 0x11aa, - 0x7481, 0x2977, - 0x7482, 0x42ac, - 0x7483, 0x11a8, - 0x7485, 0x2979, - 0x7486, 0x2976, - 0x7487, 0x2973, - 0x7488, 0x297a, - 0x7489, 0x2974, - 0x748b, 0x11a7, - 0x748c, 0x3a21, - 0x748d, 0x469d, - 0x7490, 0x2da8, - 0x7492, 0x2bcf, - 0x7494, 0x2bce, - 0x7495, 0x2bd0, - 0x7497, 0x2da5, - 0x7498, 0x12fc, - 0x7499, 0x39f3, - 0x749a, 0x2bcc, - 0x749b, 0x3b0a, - 0x749c, 0x12fa, - 0x749e, 0x12fe, - 0x749f, 0x12fd, - 0x74a0, 0x2bcd, - 0x74a1, 0x2bd1, - 0x74a3, 0x12fb, - 0x74a4, 0x4170, - 0x74a5, 0x2dac, - 0x74a6, 0x1412, - 0x74a7, 0x14f4, - 0x74a8, 0x1413, - 0x74a9, 0x1410, - 0x74aa, 0x2da9, - 0x74ab, 0x2da7, - 0x74ad, 0x2daa, - 0x74af, 0x2dad, - 0x74b0, 0x1411, - 0x74b1, 0x2dab, - 0x74b2, 0x2da6, - 0x74b4, 0x3ca5, - 0x74b5, 0x2f58, - 0x74b6, 0x2f5b, - 0x74b7, 0x30c2, - 0x74b8, 0x2f56, - 0x74ba, 0x31f9, - 0x74bb, 0x2f5c, - 0x74bd, 0x1597, - 0x74be, 0x2f5a, - 0x74bf, 0x14f5, - 0x74c0, 0x2f57, - 0x74c1, 0x2f59, - 0x74c2, 0x2f5d, - 0x74c3, 0x30c3, - 0x74c5, 0x30c1, - 0x74c8, 0x42b5, - 0x74ca, 0x1598, - 0x74cb, 0x30c0, - 0x74cc, 0x3ade, - 0x74cf, 0x1621, - 0x74d0, 0x3a9b, - 0x74d3, 0x46fa, - 0x74d4, 0x167e, - 0x74d5, 0x3392, - 0x74d6, 0x167d, - 0x74d7, 0x3394, - 0x74d8, 0x3391, - 0x74d9, 0x3393, - 0x74da, 0x16fe, - 0x74db, 0x348d, - 0x74dc, 0x0358, - 0x74dd, 0x1a0d, - 0x74de, 0x1d4a, - 0x74e0, 0x0b26, - 0x74e1, 0x24a8, - 0x74e2, 0x12ff, - 0x74e3, 0x1599, - 0x74e4, 0x16cb, - 0x74e5, 0x348e, - 0x74e6, 0x0359, - 0x74e7, 0x3ffe, - 0x74e8, 0x1a0e, - 0x74e9, 0x0120, - 0x74ec, 0x1b8e, - 0x74ee, 0x1b8f, - 0x74f0, 0x3fe6, - 0x74f1, 0x3f9b, - 0x74f2, 0x3fdf, - 0x74f4, 0x1d4c, - 0x74f6, 0x0b27, - 0x74f8, 0x3ff4, - 0x74fb, 0x2220, - 0x74fd, 0x24ab, - 0x74fe, 0x24aa, - 0x74ff, 0x24a9, - 0x7500, 0x2732, - 0x7502, 0x2733, - 0x7504, 0x1031, - 0x7505, 0x3fde, - 0x7507, 0x297e, - 0x7508, 0x297d, - 0x750b, 0x2bd2, - 0x750c, 0x1300, - 0x750e, 0x42b7, - 0x750f, 0x2db1, - 0x7510, 0x2dae, - 0x7513, 0x2f5f, - 0x7514, 0x2f5e, - 0x7515, 0x14f6, - 0x7516, 0x30c4, - 0x7517, 0x32e3, - 0x7518, 0x035a, - 0x7519, 0x4583, - 0x751a, 0x079f, - 0x751c, 0x0b29, - 0x751d, 0x24ac, - 0x751e, 0x42b8, - 0x751f, 0x035b, - 0x7521, 0x1d4e, - 0x7522, 0x0b2a, - 0x7525, 0x0ce3, - 0x7528, 0x035c, - 0x752a, 0x180f, - 0x752b, 0x04f1, - 0x752c, 0x04f0, - 0x752d, 0x07a0, - 0x752e, 0x1b90, - 0x752f, 0x2221, - 0x7530, 0x035e, - 0x7534, 0x3e87, - 0x7535, 0x455a, - 0x7537, 0x04f2, - 0x7539, 0x18d3, - 0x753a, 0x18d2, - 0x753b, 0x3dfb, - 0x753d, 0x0655, - 0x753e, 0x1a11, - 0x753f, 0x1a0f, - 0x7542, 0x43cd, - 0x7546, 0x3f40, - 0x7547, 0x1b91, - 0x754a, 0x42bf, - 0x754b, 0x07a4, - 0x754c, 0x07a2, - 0x754d, 0x42be, - 0x754e, 0x07a3, - 0x754f, 0x07a1, - 0x7551, 0x3cfe, - 0x7553, 0x3feb, - 0x7554, 0x0931, - 0x7555, 0x3aea, - 0x7559, 0x0935, - 0x755a, 0x0934, - 0x755b, 0x1d4f, - 0x755c, 0x0933, - 0x755d, 0x0932, - 0x755f, 0x1d50, - 0x7560, 0x3d71, - 0x7562, 0x0b2d, - 0x7563, 0x1f9f, - 0x7564, 0x1f9e, - 0x7565, 0x0b2b, - 0x7567, 0x42c0, - 0x756a, 0x0ce6, - 0x756b, 0x0ce5, - 0x756c, 0x2223, - 0x756d, 0x46fd, - 0x756e, 0x42c1, - 0x756f, 0x2222, - 0x7570, 0x0b2e, - 0x7572, 0x46fe, - 0x7576, 0x0e85, - 0x7577, 0x24ae, - 0x7578, 0x0e86, - 0x7579, 0x24ad, - 0x757a, 0x3f4f, - 0x757d, 0x2735, - 0x757e, 0x297f, - 0x757f, 0x11ab, - 0x7580, 0x2bd3, - 0x7583, 0x3ae5, - 0x7584, 0x2db2, - 0x7586, 0x159b, - 0x7587, 0x159a, - 0x758a, 0x16cc, - 0x758b, 0x0362, - 0x758c, 0x1a12, - 0x758d, 0x46ff, - 0x758e, 0x42c5, - 0x758f, 0x0b2f, - 0x7590, 0x2736, - 0x7591, 0x1032, - 0x7592, 0x022e, - 0x7594, 0x18d4, - 0x7598, 0x1a13, - 0x7599, 0x0657, - 0x759d, 0x0656, - 0x759e, 0x42c7, - 0x75a2, 0x07a8, - 0x75a4, 0x07a6, - 0x75a7, 0x1b93, - 0x75aa, 0x1b94, - 0x75ab, 0x07a5, - 0x75b0, 0x1d51, - 0x75b1, 0x3ead, - 0x75b2, 0x0939, - 0x75b4, 0x42c8, - 0x75b5, 0x0b32, - 0x75b6, 0x1d57, - 0x75b8, 0x093f, - 0x75b9, 0x093d, - 0x75ba, 0x1d58, - 0x75bb, 0x1d53, - 0x75bc, 0x093c, - 0x75bd, 0x093b, - 0x75be, 0x0936, - 0x75bf, 0x1d56, - 0x75c0, 0x1d55, - 0x75c1, 0x1d52, - 0x75c2, 0x093e, - 0x75c3, 0x3f93, - 0x75c4, 0x1d54, - 0x75c5, 0x0937, - 0x75c7, 0x0938, - 0x75c8, 0x4701, - 0x75ca, 0x0b33, - 0x75cb, 0x1fa3, - 0x75cd, 0x0b34, - 0x75ce, 0x1fa0, - 0x75cf, 0x1fa2, - 0x75d0, 0x1fa6, - 0x75d1, 0x1fa5, - 0x75d2, 0x1fa1, - 0x75d4, 0x0b30, - 0x75d7, 0x222b, - 0x75d8, 0x0ceb, - 0x75d9, 0x0cea, - 0x75da, 0x2225, - 0x75db, 0x0ce8, - 0x75dc, 0x43ce, - 0x75dd, 0x2228, - 0x75de, 0x0cec, - 0x75df, 0x2229, - 0x75e0, 0x0ced, - 0x75e1, 0x2226, - 0x75e2, 0x0ce7, - 0x75e3, 0x0ce9, - 0x75e4, 0x222a, - 0x75e6, 0x2227, - 0x75e7, 0x2224, - 0x75ed, 0x24bb, - 0x75ef, 0x24b0, - 0x75f0, 0x0e88, - 0x75f1, 0x0e8b, - 0x75f2, 0x0e8a, - 0x75f3, 0x0e8f, - 0x75f4, 0x0e8e, - 0x75f5, 0x24bc, - 0x75f6, 0x24ba, - 0x75f7, 0x24b3, - 0x75f8, 0x24b7, - 0x75f9, 0x24b6, - 0x75fa, 0x0e8c, - 0x75fb, 0x24b9, - 0x75fc, 0x24b5, - 0x75fd, 0x24bd, - 0x75fe, 0x24b4, - 0x75ff, 0x0e8d, - 0x7600, 0x0e87, - 0x7601, 0x0e89, - 0x7602, 0x42c9, - 0x7603, 0x24b2, - 0x7607, 0x3f8f, - 0x7608, 0x2738, - 0x7609, 0x1036, - 0x760a, 0x273c, - 0x760b, 0x1035, - 0x760c, 0x2739, - 0x760d, 0x1034, - 0x760f, 0x24b1, - 0x7610, 0x24b8, - 0x7611, 0x273b, - 0x7613, 0x1037, - 0x7614, 0x273d, - 0x7615, 0x273a, - 0x7616, 0x2737, - 0x7619, 0x2982, - 0x761a, 0x2986, - 0x761b, 0x2988, - 0x761c, 0x2984, - 0x761d, 0x2983, - 0x761e, 0x2981, - 0x761f, 0x11ae, - 0x7620, 0x11ac, - 0x7621, 0x11b1, - 0x7623, 0x2985, - 0x7624, 0x11af, - 0x7625, 0x2980, - 0x7626, 0x11b0, - 0x7627, 0x1033, - 0x7628, 0x2987, - 0x7629, 0x11ad, - 0x762c, 0x42ca, - 0x762d, 0x2bd5, - 0x762f, 0x2bd4, - 0x7630, 0x2bdc, - 0x7631, 0x2bd6, - 0x7632, 0x2bdb, - 0x7633, 0x2bd8, - 0x7634, 0x1302, - 0x7635, 0x2bda, - 0x7638, 0x1303, - 0x763a, 0x1304, - 0x763b, 0x3e70, - 0x763c, 0x2bd9, - 0x763d, 0x2bd7, - 0x7640, 0x3ee6, - 0x7642, 0x1415, - 0x7643, 0x2db3, - 0x7646, 0x1414, - 0x7647, 0x2db6, - 0x7648, 0x2db4, - 0x764c, 0x1416, - 0x764d, 0x4702, - 0x764e, 0x3e72, - 0x764f, 0x42cc, - 0x7650, 0x2f63, - 0x7651, 0x42cb, - 0x7652, 0x14f9, - 0x7653, 0x2f64, - 0x7654, 0x3ef0, - 0x7656, 0x14f7, - 0x7657, 0x2f65, - 0x7658, 0x14f8, - 0x7659, 0x2f62, - 0x765a, 0x2f66, - 0x765c, 0x2f60, - 0x765f, 0x159c, - 0x7660, 0x30c5, - 0x7661, 0x159d, - 0x7662, 0x1622, - 0x7664, 0x2f61, - 0x7665, 0x1623, - 0x7666, 0x3eaa, - 0x7667, 0x3fa9, - 0x7669, 0x167f, - 0x766a, 0x32e4, - 0x766c, 0x16ce, - 0x766d, 0x3395, - 0x766e, 0x16cd, - 0x766f, 0x42cd, - 0x7670, 0x3428, - 0x7671, 0x1723, - 0x7673, 0x3aeb, - 0x7674, 0x4703, - 0x7675, 0x3543, - 0x7676, 0x022f, - 0x7678, 0x07aa, - 0x7679, 0x1b95, - 0x767a, 0x4705, - 0x767b, 0x0cee, - 0x767d, 0x0363, - 0x767e, 0x03f5, - 0x767f, 0x1810, - 0x7680, 0x43d3, - 0x7681, 0x18d6, - 0x7682, 0x04f4, - 0x7684, 0x0659, - 0x7686, 0x07ab, - 0x7689, 0x1fa8, - 0x768a, 0x1d59, - 0x768b, 0x0940, - 0x768c, 0x43d4, - 0x768e, 0x0b35, - 0x768f, 0x1fa7, - 0x7690, 0x42d0, - 0x7692, 0x222d, - 0x7693, 0x0cf1, - 0x7695, 0x222c, - 0x7696, 0x0cf0, - 0x7699, 0x24be, - 0x769a, 0x11b3, - 0x769b, 0x298c, - 0x769c, 0x2989, - 0x76a1, 0x42d5, - 0x76a4, 0x2db7, - 0x76a5, 0x42d6, - 0x76a6, 0x2f67, - 0x76aa, 0x31fb, - 0x76ab, 0x31fa, - 0x76ad, 0x3396, - 0x76ae, 0x0364, - 0x76af, 0x1a14, - 0x76b0, 0x0941, - 0x76b4, 0x0cf2, - 0x76b5, 0x24bf, - 0x76b7, 0x42d7, - 0x76b8, 0x273e, - 0x76ba, 0x11b4, - 0x76bb, 0x2bdd, - 0x76bd, 0x2f68, - 0x76be, 0x31fc, - 0x76bf, 0x0365, - 0x76c2, 0x065a, - 0x76c3, 0x07b0, - 0x76c4, 0x1b96, - 0x76c5, 0x07b1, - 0x76c6, 0x07af, - 0x76c8, 0x07ae, - 0x76c9, 0x1d5a, - 0x76ca, 0x0942, - 0x76cc, 0x42d8, - 0x76cd, 0x0943, - 0x76d2, 0x0b37, - 0x76d3, 0x1fa9, - 0x76d4, 0x0b36, - 0x76d6, 0x3f55, - 0x76da, 0x222e, - 0x76db, 0x0b38, - 0x76dc, 0x0cf3, - 0x76dd, 0x24c0, - 0x76de, 0x0e90, - 0x76e1, 0x1038, - 0x76e3, 0x1039, - 0x76e4, 0x11b5, - 0x76e5, 0x1306, - 0x76e6, 0x2bde, - 0x76e7, 0x1305, - 0x76e9, 0x2db8, - 0x76ea, 0x1417, - 0x76ec, 0x2f69, - 0x76ed, 0x31fd, - 0x76ee, 0x0366, - 0x76ef, 0x04f5, - 0x76f0, 0x1a17, - 0x76f1, 0x1a16, - 0x76f2, 0x065b, - 0x76f3, 0x1a15, - 0x76f4, 0x065c, - 0x76f5, 0x1a18, - 0x76f7, 0x1b9c, - 0x76f8, 0x07b4, - 0x76f9, 0x07b3, - 0x76fa, 0x1b9e, - 0x76fb, 0x1b9d, - 0x76fc, 0x07b8, - 0x76fe, 0x07b7, - 0x7701, 0x07b2, - 0x7703, 0x1b98, - 0x7707, 0x07b9, - 0x7708, 0x1b97, - 0x7709, 0x07b5, - 0x770a, 0x1b9b, - 0x770b, 0x07b6, - 0x770c, 0x3d62, - 0x770e, 0x3b02, - 0x7710, 0x1d5d, - 0x7711, 0x1d61, - 0x7712, 0x1d5f, - 0x7713, 0x1d5e, - 0x7715, 0x1d62, - 0x7719, 0x1d63, - 0x771b, 0x1d5c, - 0x771d, 0x1d5b, - 0x771e, 0x42de, - 0x771f, 0x0946, - 0x7722, 0x1d65, - 0x7723, 0x1d60, - 0x7724, 0x3fe8, - 0x7725, 0x1fb2, - 0x7726, 0x42df, - 0x7727, 0x1d66, - 0x7728, 0x0948, - 0x7729, 0x0945, - 0x772b, 0x3ff3, - 0x772d, 0x1fac, - 0x772f, 0x1fab, - 0x7731, 0x1fad, - 0x7733, 0x1fb0, - 0x7734, 0x1faf, - 0x7735, 0x1fb4, - 0x7736, 0x0b3c, - 0x7737, 0x0b39, - 0x7738, 0x0b3d, - 0x7739, 0x1faa, - 0x773a, 0x0b3e, - 0x773b, 0x1fb3, - 0x773c, 0x0b3b, - 0x773d, 0x1fb1, - 0x773e, 0x0b3a, - 0x7740, 0x42e0, - 0x7743, 0x470a, - 0x7744, 0x2231, - 0x7745, 0x2233, - 0x7746, 0x222f, - 0x774a, 0x2234, - 0x774b, 0x2236, - 0x774d, 0x2232, - 0x774e, 0x2235, - 0x774f, 0x0cf4, - 0x7752, 0x24c4, - 0x7754, 0x24c9, - 0x7755, 0x24c1, - 0x7756, 0x24c5, - 0x7758, 0x42e3, - 0x7759, 0x24ca, - 0x775a, 0x24c6, - 0x775b, 0x0e92, - 0x775c, 0x0e9a, - 0x775e, 0x0e95, - 0x775f, 0x24c2, - 0x7761, 0x103d, - 0x7762, 0x0e9d, - 0x7763, 0x0e96, - 0x7765, 0x0e9b, - 0x7766, 0x0e94, - 0x7767, 0x24c8, - 0x7768, 0x0e9c, - 0x7769, 0x24c7, - 0x776a, 0x0e98, - 0x776b, 0x0e93, - 0x776c, 0x0e99, - 0x776d, 0x24cb, - 0x776e, 0x2743, - 0x776f, 0x2745, - 0x7772, 0x396b, - 0x7777, 0x46a9, - 0x7778, 0x3b00, - 0x7779, 0x0e97, - 0x777a, 0x4317, - 0x777b, 0x3b04, - 0x777c, 0x2740, - 0x777d, 0x103b, - 0x777e, 0x2746, - 0x777f, 0x103c, - 0x7780, 0x2744, - 0x7781, 0x273f, - 0x7782, 0x2742, - 0x7783, 0x2747, - 0x7784, 0x103a, - 0x7785, 0x2741, - 0x7787, 0x11b7, - 0x7788, 0x2990, - 0x7789, 0x298f, - 0x778b, 0x11ba, - 0x778c, 0x11b8, - 0x778d, 0x298d, - 0x778e, 0x11b6, - 0x778f, 0x298e, - 0x7791, 0x11b9, - 0x7793, 0x382d, - 0x7795, 0x2be6, - 0x7797, 0x2be8, - 0x7798, 0x470e, - 0x7799, 0x2be7, - 0x779a, 0x2bdf, - 0x779b, 0x2be3, - 0x779c, 0x2be2, - 0x779d, 0x2be0, - 0x779e, 0x1308, - 0x77a0, 0x1307, - 0x77a1, 0x2be1, - 0x77a2, 0x2be4, - 0x77a5, 0x130a, - 0x77a7, 0x141c, - 0x77a8, 0x2dc0, - 0x77aa, 0x1419, - 0x77ab, 0x2dba, - 0x77ac, 0x141b, - 0x77ad, 0x141d, - 0x77af, 0x42e5, - 0x77b0, 0x141a, - 0x77b1, 0x2dbf, - 0x77b2, 0x2dbb, - 0x77b3, 0x1418, - 0x77b4, 0x2dbe, - 0x77b5, 0x2db9, - 0x77b6, 0x2dbd, - 0x77b7, 0x2dbc, - 0x77b9, 0x3e73, - 0x77ba, 0x2f6b, - 0x77bb, 0x14fc, - 0x77bd, 0x14fa, - 0x77be, 0x4711, - 0x77bf, 0x14fb, - 0x77c2, 0x2f6a, - 0x77c3, 0x3bb1, - 0x77c4, 0x30c8, - 0x77c5, 0x41c1, - 0x77c7, 0x159e, - 0x77c9, 0x30c6, - 0x77cb, 0x4712, - 0x77cc, 0x31fe, - 0x77cd, 0x3201, - 0x77ce, 0x31ff, - 0x77d0, 0x32e5, - 0x77d3, 0x1680, - 0x77d4, 0x3429, - 0x77d5, 0x348f, - 0x77d7, 0x1725, - 0x77d8, 0x34d3, - 0x77da, 0x1753, - 0x77db, 0x0367, - 0x77dc, 0x07ba, - 0x77de, 0x2238, - 0x77e0, 0x24cc, - 0x77e2, 0x0368, - 0x77e3, 0x04f6, - 0x77e5, 0x065d, - 0x77e6, 0x4081, - 0x77e7, 0x1b9f, - 0x77e9, 0x0949, - 0x77ec, 0x2239, - 0x77ed, 0x0cf5, - 0x77ee, 0x0e9e, - 0x77ef, 0x141e, - 0x77f0, 0x2dc1, - 0x77f1, 0x30c9, - 0x77f2, 0x3202, - 0x77f3, 0x0369, - 0x77f4, 0x42e9, - 0x77f7, 0x1a1e, - 0x77f8, 0x1a19, - 0x77f9, 0x1a1b, - 0x77fa, 0x1a1d, - 0x77fb, 0x1a1c, - 0x77fc, 0x1a1a, - 0x77fd, 0x065e, - 0x77fe, 0x3fd5, - 0x7802, 0x07bb, - 0x7803, 0x1ba9, - 0x7805, 0x1ba4, - 0x7806, 0x1ba1, - 0x7808, 0x3e46, - 0x7809, 0x1ba8, - 0x780c, 0x07bd, - 0x780e, 0x1ba7, - 0x780f, 0x1ba6, - 0x7810, 0x1ba5, - 0x7811, 0x1ba2, - 0x7813, 0x1baa, - 0x7814, 0x07bc, - 0x7818, 0x4713, - 0x781c, 0x4714, - 0x781d, 0x094d, - 0x781e, 0x3b13, - 0x781f, 0x0953, - 0x7820, 0x0952, - 0x7821, 0x1d6f, - 0x7822, 0x1d69, - 0x7823, 0x1d67, - 0x7825, 0x0950, - 0x7826, 0x1fbb, - 0x7827, 0x094b, - 0x7828, 0x1d6c, - 0x7829, 0x1d70, - 0x782a, 0x1d72, - 0x782b, 0x1d6e, - 0x782c, 0x1d68, - 0x782d, 0x0951, - 0x782e, 0x1d6d, - 0x782f, 0x1d6b, - 0x7830, 0x094a, - 0x7831, 0x1d73, - 0x7832, 0x0954, - 0x7833, 0x1d71, - 0x7834, 0x094e, - 0x7835, 0x1d6a, - 0x7837, 0x094f, - 0x7838, 0x094c, - 0x7839, 0x43d6, - 0x783c, 0x401a, - 0x783d, 0x3c6a, - 0x7842, 0x3ac4, - 0x7843, 0x0b40, - 0x7844, 0x3c2b, - 0x7845, 0x1fbc, - 0x7847, 0x4715, - 0x7848, 0x1fb5, - 0x7849, 0x1fb7, - 0x784a, 0x1fb9, - 0x784b, 0x3c6d, - 0x784c, 0x1fba, - 0x784d, 0x1fb8, - 0x784e, 0x0b41, - 0x7850, 0x1fbd, - 0x7851, 0x4716, - 0x7852, 0x1fb6, - 0x7853, 0x3f95, - 0x7854, 0x3c6b, - 0x785c, 0x223d, - 0x785d, 0x0cf6, - 0x785e, 0x2245, - 0x7860, 0x223a, - 0x7862, 0x2246, - 0x7864, 0x223b, - 0x7866, 0x4717, - 0x7868, 0x2244, - 0x7869, 0x2243, - 0x786a, 0x2240, - 0x786b, 0x0b3f, - 0x786c, 0x0cf7, - 0x786d, 0x223e, - 0x786e, 0x2241, - 0x786f, 0x0cf8, - 0x7870, 0x2242, - 0x7871, 0x223f, - 0x7879, 0x24d7, - 0x787a, 0x3ee9, - 0x787b, 0x24db, - 0x787c, 0x0ea5, - 0x787e, 0x274d, - 0x787f, 0x0ea8, - 0x7880, 0x24d9, - 0x7881, 0x36e8, - 0x7883, 0x24d6, - 0x7884, 0x24d1, - 0x7885, 0x24d3, - 0x7887, 0x24cd, - 0x7888, 0x3b15, - 0x7889, 0x0ea4, - 0x788c, 0x0ea3, - 0x788d, 0x3b14, - 0x788e, 0x0e9f, - 0x788f, 0x24d0, - 0x7891, 0x0ea6, - 0x7893, 0x0ea7, - 0x7894, 0x24cf, - 0x7895, 0x24d2, - 0x7896, 0x24da, - 0x7897, 0x0ea1, - 0x7899, 0x24d8, - 0x789a, 0x24ce, - 0x789e, 0x274f, - 0x789f, 0x103f, - 0x78a0, 0x2751, - 0x78a1, 0x24d5, - 0x78a2, 0x2753, - 0x78a3, 0x1043, - 0x78a4, 0x2754, - 0x78a5, 0x2750, - 0x78a7, 0x1040, - 0x78a8, 0x274c, - 0x78a9, 0x1042, - 0x78aa, 0x2749, - 0x78ab, 0x274e, - 0x78ac, 0x2752, - 0x78ad, 0x274b, - 0x78af, 0x42ec, - 0x78b0, 0x0ea0, - 0x78b1, 0x42f4, - 0x78b2, 0x2748, - 0x78b3, 0x1041, - 0x78b4, 0x274a, - 0x78b6, 0x3c6c, - 0x78b8, 0x4571, - 0x78b9, 0x3c63, - 0x78ba, 0x11bd, - 0x78bb, 0x2992, - 0x78bc, 0x11c1, - 0x78be, 0x11bf, - 0x78c1, 0x103e, - 0x78c3, 0x2999, - 0x78c5, 0x11bc, - 0x78c7, 0x42ed, - 0x78c8, 0x2998, - 0x78c9, 0x299b, - 0x78ca, 0x11be, - 0x78cb, 0x11bb, - 0x78cc, 0x2994, - 0x78cd, 0x2991, - 0x78ce, 0x2996, - 0x78cf, 0x2993, - 0x78d0, 0x11c2, - 0x78d1, 0x2995, - 0x78d2, 0x3b16, - 0x78d3, 0x42ee, - 0x78d4, 0x2997, - 0x78d5, 0x11c0, - 0x78d7, 0x42f2, - 0x78d8, 0x3f8c, - 0x78da, 0x130c, - 0x78db, 0x2bef, - 0x78dd, 0x2be9, - 0x78de, 0x2bed, - 0x78df, 0x2bf3, - 0x78e1, 0x2bf0, - 0x78e3, 0x2bee, - 0x78e5, 0x2beb, - 0x78e7, 0x130e, - 0x78e8, 0x130b, - 0x78e9, 0x2bea, - 0x78ea, 0x2bec, - 0x78ec, 0x130d, - 0x78ed, 0x2bf2, - 0x78ee, 0x3a81, - 0x78ef, 0x1422, - 0x78f0, 0x3b3a, - 0x78f1, 0x40be, - 0x78f2, 0x2dc8, - 0x78f3, 0x2dc2, - 0x78f4, 0x1421, - 0x78f5, 0x38b3, - 0x78f7, 0x141f, - 0x78f9, 0x2dca, - 0x78fa, 0x1420, - 0x78fb, 0x2dc5, - 0x78fd, 0x2dc3, - 0x78fe, 0x2dcb, - 0x78ff, 0x2dc7, - 0x7901, 0x1423, - 0x7902, 0x2dc4, - 0x7904, 0x2dcc, - 0x7905, 0x2dc9, - 0x7906, 0x3fcf, - 0x7909, 0x2f6f, - 0x790c, 0x2f6c, - 0x790e, 0x14fe, - 0x7910, 0x2f70, - 0x7911, 0x2f72, - 0x7912, 0x2f71, - 0x7913, 0x2f6d, - 0x7917, 0x30ce, - 0x7919, 0x159f, - 0x791b, 0x30cb, - 0x791c, 0x30cd, - 0x791d, 0x30ca, - 0x791e, 0x30cf, - 0x7921, 0x30cc, - 0x7923, 0x3204, - 0x7924, 0x3207, - 0x7925, 0x3203, - 0x7926, 0x1624, - 0x7927, 0x3205, - 0x7929, 0x3208, - 0x792a, 0x1625, - 0x792b, 0x1627, - 0x792c, 0x1626, - 0x792d, 0x32e6, - 0x792e, 0x42f0, - 0x792f, 0x32e8, - 0x7931, 0x32e7, - 0x7932, 0x471b, - 0x7933, 0x471a, - 0x7934, 0x42f3, - 0x7935, 0x3397, - 0x7936, 0x3783, - 0x7938, 0x3490, - 0x7939, 0x34d5, - 0x793a, 0x036a, - 0x793b, 0x44f7, - 0x793c, 0x4300, - 0x793d, 0x18d7, - 0x793e, 0x065f, - 0x793f, 0x1a20, - 0x7940, 0x0660, - 0x7942, 0x1a1f, - 0x7944, 0x1baf, - 0x7945, 0x1bae, - 0x7946, 0x07bf, - 0x7947, 0x07c2, - 0x7948, 0x07c1, - 0x7949, 0x07c0, - 0x794a, 0x1bab, - 0x794b, 0x1bad, - 0x794c, 0x1bac, - 0x794f, 0x1d76, - 0x7950, 0x0956, - 0x7951, 0x1d7a, - 0x7952, 0x1d79, - 0x7953, 0x1d78, - 0x7954, 0x1d74, - 0x7955, 0x0955, - 0x7956, 0x0959, - 0x7957, 0x095c, - 0x7958, 0x37e5, - 0x7959, 0x3b18, - 0x795a, 0x095d, - 0x795b, 0x1d75, - 0x795c, 0x1d77, - 0x795d, 0x095b, - 0x795e, 0x095a, - 0x795f, 0x0958, - 0x7960, 0x0957, - 0x7961, 0x1fc4, - 0x7962, 0x3e7d, - 0x7963, 0x1fc2, - 0x7964, 0x1fbe, - 0x7965, 0x0b42, - 0x7967, 0x1fbf, - 0x7968, 0x0b43, - 0x7969, 0x1fc0, - 0x796b, 0x1fc3, - 0x796d, 0x0b44, - 0x7970, 0x224a, - 0x7971, 0x4168, - 0x7972, 0x2249, - 0x7973, 0x2248, - 0x7974, 0x2247, - 0x7979, 0x24df, - 0x797a, 0x0ea9, - 0x797c, 0x24dc, - 0x797d, 0x24de, - 0x797e, 0x3e26, - 0x797f, 0x0eaa, - 0x7980, 0x42fc, - 0x7981, 0x0eab, - 0x7982, 0x24dd, - 0x7983, 0x3df6, - 0x7986, 0x42f9, - 0x7987, 0x4588, - 0x7988, 0x275d, - 0x798a, 0x2756, - 0x798d, 0x1046, - 0x798e, 0x1044, - 0x7990, 0x275f, - 0x7991, 0x471d, - 0x7992, 0x275e, - 0x7993, 0x275b, - 0x7994, 0x275a, - 0x7995, 0x2759, - 0x7996, 0x2758, - 0x7997, 0x275c, - 0x7998, 0x2755, - 0x7999, 0x43fc, - 0x799a, 0x299c, - 0x799b, 0x29a1, - 0x799c, 0x299f, - 0x799d, 0x42fe, - 0x799f, 0x395e, - 0x79a0, 0x299e, - 0x79a1, 0x299d, - 0x79a2, 0x29a0, - 0x79a4, 0x2bf5, - 0x79a5, 0x3b1e, - 0x79a6, 0x130f, - 0x79a7, 0x1424, - 0x79a8, 0x2dce, - 0x79a9, 0x4301, - 0x79aa, 0x1425, - 0x79ab, 0x2dcd, - 0x79ac, 0x2f74, - 0x79ad, 0x2f73, - 0x79ae, 0x14ff, - 0x79b0, 0x30d0, - 0x79b1, 0x15a0, - 0x79b2, 0x3209, - 0x79b3, 0x16cf, - 0x79b4, 0x3398, - 0x79b6, 0x3492, - 0x79b7, 0x3491, - 0x79b8, 0x17b2, - 0x79b9, 0x07c3, - 0x79bb, 0x1fc5, - 0x79bd, 0x0ead, - 0x79be, 0x036b, - 0x79bf, 0x04f9, - 0x79c0, 0x04f8, - 0x79c1, 0x04f7, - 0x79c4, 0x3ccd, - 0x79c5, 0x1a21, - 0x79c6, 0x4305, - 0x79c8, 0x0663, - 0x79c9, 0x0662, - 0x79cb, 0x07c7, - 0x79cc, 0x4233, - 0x79cd, 0x1bb1, - 0x79ce, 0x1bb4, - 0x79cf, 0x1bb2, - 0x79d1, 0x07c5, - 0x79d4, 0x4307, - 0x79d5, 0x1bb0, - 0x79d6, 0x1bb3, - 0x79d8, 0x0964, - 0x79dc, 0x1d81, - 0x79dd, 0x1d83, - 0x79de, 0x1d82, - 0x79df, 0x0961, - 0x79e0, 0x1d7d, - 0x79e2, 0x3c5a, - 0x79e3, 0x095f, - 0x79e4, 0x095e, - 0x79e6, 0x0962, - 0x79e7, 0x0960, - 0x79e9, 0x0963, - 0x79ea, 0x1d80, - 0x79eb, 0x1d7b, - 0x79ed, 0x1d7f, - 0x79ee, 0x1d7e, - 0x79f1, 0x3b27, - 0x79f4, 0x3b22, - 0x79f6, 0x1fc8, - 0x79f8, 0x1fc7, - 0x79fa, 0x1fc6, - 0x79fb, 0x0b45, - 0x7a00, 0x0cfd, - 0x7a02, 0x224b, - 0x7a03, 0x224d, - 0x7a04, 0x224f, - 0x7a05, 0x0cfc, - 0x7a06, 0x471e, - 0x7a08, 0x0cfa, - 0x7a0a, 0x224c, - 0x7a0b, 0x0cfb, - 0x7a0c, 0x224e, - 0x7a0d, 0x0cf9, - 0x7a10, 0x24e9, - 0x7a11, 0x24e0, - 0x7a12, 0x24e3, - 0x7a13, 0x24e7, - 0x7a14, 0x0eb1, - 0x7a15, 0x24e5, - 0x7a17, 0x24e4, - 0x7a18, 0x24e1, - 0x7a1a, 0x0eaf, - 0x7a1b, 0x24e8, - 0x7a1c, 0x0eae, - 0x7a1e, 0x0eb3, - 0x7a1f, 0x0eb2, - 0x7a20, 0x0eb0, - 0x7a22, 0x24e6, - 0x7a26, 0x2765, - 0x7a28, 0x2764, - 0x7a2b, 0x2760, - 0x7a2d, 0x3fda, - 0x7a2e, 0x1047, - 0x7a2f, 0x2763, - 0x7a30, 0x2762, - 0x7a31, 0x1048, - 0x7a37, 0x11c7, - 0x7a39, 0x29a3, - 0x7a3a, 0x3b21, - 0x7a3b, 0x11c8, - 0x7a3c, 0x11c4, - 0x7a3d, 0x11c6, - 0x7a3e, 0x3f8b, - 0x7a3f, 0x11c3, - 0x7a40, 0x11c5, - 0x7a43, 0x396c, - 0x7a44, 0x2bf6, - 0x7a45, 0x3df1, - 0x7a46, 0x1312, - 0x7a47, 0x2bf8, - 0x7a48, 0x2bf7, - 0x7a49, 0x3733, - 0x7a4a, 0x2761, - 0x7a4b, 0x1314, - 0x7a4c, 0x1313, - 0x7a4d, 0x1310, - 0x7a54, 0x2dd3, - 0x7a56, 0x2dd1, - 0x7a57, 0x1426, - 0x7a58, 0x2dd2, - 0x7a5a, 0x2dd4, - 0x7a5b, 0x2dd0, - 0x7a5c, 0x2dcf, - 0x7a5f, 0x2f75, - 0x7a60, 0x1502, - 0x7a61, 0x1500, - 0x7a65, 0x3736, - 0x7a67, 0x30d1, - 0x7a69, 0x15a2, - 0x7a6b, 0x15a1, - 0x7a6c, 0x320b, - 0x7a6e, 0x320a, - 0x7a70, 0x3399, - 0x7a74, 0x036c, - 0x7a75, 0x1811, - 0x7a76, 0x04fa, - 0x7a78, 0x1a22, - 0x7a79, 0x0665, - 0x7a7a, 0x0664, - 0x7a7b, 0x1a23, - 0x7a7d, 0x3737, - 0x7a7e, 0x1bb6, - 0x7a7f, 0x07c8, - 0x7a80, 0x1bb5, - 0x7a81, 0x07c9, - 0x7a83, 0x3d7d, - 0x7a84, 0x0965, - 0x7a85, 0x1d86, - 0x7a86, 0x1d84, - 0x7a87, 0x1d8a, - 0x7a88, 0x0966, - 0x7a89, 0x1d85, - 0x7a8a, 0x1d89, - 0x7a8b, 0x1d87, - 0x7a8f, 0x1fca, - 0x7a90, 0x1fcc, - 0x7a91, 0x43d8, - 0x7a92, 0x0b46, - 0x7a94, 0x1fcb, - 0x7a95, 0x0b47, - 0x7a96, 0x0d00, - 0x7a97, 0x0cff, - 0x7a98, 0x0cfe, - 0x7a99, 0x2250, - 0x7a9e, 0x24ec, - 0x7a9f, 0x0eb4, - 0x7aa2, 0x24eb, - 0x7aa3, 0x24ea, - 0x7aa8, 0x2766, - 0x7aa9, 0x104a, - 0x7aaa, 0x1049, - 0x7aab, 0x2767, - 0x7aae, 0x11ca, - 0x7aaf, 0x11c9, - 0x7ab0, 0x373a, - 0x7ab1, 0x2bfc, - 0x7ab2, 0x29a4, - 0x7ab3, 0x29a6, - 0x7ab4, 0x29a5, - 0x7ab5, 0x2bfb, - 0x7ab6, 0x2bf9, - 0x7ab7, 0x2bfd, - 0x7ab8, 0x2bfa, - 0x7aba, 0x1315, - 0x7abb, 0x3739, - 0x7abc, 0x4721, - 0x7abe, 0x2dd5, - 0x7abf, 0x1427, - 0x7ac0, 0x2dd6, - 0x7ac2, 0x373b, - 0x7ac4, 0x1503, - 0x7ac7, 0x1628, - 0x7ac8, 0x3d7f, - 0x7ac9, 0x4570, - 0x7aca, 0x16ff, - 0x7acb, 0x036d, - 0x7acf, 0x4724, - 0x7ad1, 0x1bb7, - 0x7ad3, 0x3f8a, - 0x7ad8, 0x1d8b, - 0x7ad9, 0x0967, - 0x7ada, 0x3740, - 0x7adb, 0x4725, - 0x7adc, 0x3951, - 0x7add, 0x3741, - 0x7adf, 0x0bde, - 0x7ae0, 0x0bdd, - 0x7ae2, 0x3b33, - 0x7ae3, 0x0d02, - 0x7ae4, 0x2252, - 0x7ae5, 0x0d01, - 0x7ae6, 0x2251, - 0x7ae7, 0x385d, - 0x7ae9, 0x3831, - 0x7aea, 0x3742, - 0x7aeb, 0x24ed, - 0x7aed, 0x104b, - 0x7aee, 0x2769, - 0x7aef, 0x104c, - 0x7af6, 0x1629, - 0x7af7, 0x320d, - 0x7af9, 0x03f6, - 0x7afa, 0x0666, - 0x7afb, 0x1a24, - 0x7afd, 0x07cb, - 0x7afe, 0x3b3d, - 0x7aff, 0x07ca, - 0x7b00, 0x1bb8, - 0x7b04, 0x1d8d, - 0x7b05, 0x1d8f, - 0x7b06, 0x0968, - 0x7b08, 0x1d91, - 0x7b09, 0x1d94, - 0x7b0a, 0x1d92, - 0x7b0b, 0x3746, - 0x7b0c, 0x3b63, - 0x7b0e, 0x1d93, - 0x7b0f, 0x1d90, - 0x7b10, 0x1d8c, - 0x7b11, 0x0969, - 0x7b12, 0x1d95, - 0x7b13, 0x1d8e, - 0x7b14, 0x3f77, - 0x7b18, 0x1fd5, - 0x7b19, 0x0b4d, - 0x7b1a, 0x1fde, - 0x7b1b, 0x0b4a, - 0x7b1d, 0x1fd7, - 0x7b1e, 0x0b4e, - 0x7b1f, 0x3f11, - 0x7b20, 0x0b48, - 0x7b22, 0x1fd2, - 0x7b23, 0x1fdf, - 0x7b24, 0x1fd3, - 0x7b25, 0x1fd0, - 0x7b26, 0x0b4c, - 0x7b27, 0x3b5f, - 0x7b28, 0x0b49, - 0x7b29, 0x3748, - 0x7b2a, 0x1fd6, - 0x7b2b, 0x1fd9, - 0x7b2c, 0x0b4b, - 0x7b2d, 0x1fda, - 0x7b2e, 0x0b4f, - 0x7b2f, 0x1fdb, - 0x7b30, 0x1fd1, - 0x7b31, 0x1fd8, - 0x7b32, 0x1fdc, - 0x7b33, 0x1fd4, - 0x7b34, 0x1fcf, - 0x7b35, 0x1fcd, - 0x7b38, 0x1fdd, - 0x7b39, 0x3d6e, - 0x7b3b, 0x1fce, - 0x7b40, 0x2259, - 0x7b42, 0x3ded, - 0x7b43, 0x3e25, - 0x7b44, 0x2255, - 0x7b45, 0x225b, - 0x7b46, 0x0d05, - 0x7b47, 0x2254, - 0x7b48, 0x2256, - 0x7b49, 0x0d03, - 0x7b4a, 0x2253, - 0x7b4b, 0x0d0a, - 0x7b4c, 0x2257, - 0x7b4d, 0x0d09, - 0x7b4e, 0x2258, - 0x7b4f, 0x0d0b, - 0x7b50, 0x0d06, - 0x7b51, 0x0d0c, - 0x7b52, 0x0d07, - 0x7b54, 0x0d08, - 0x7b55, 0x3747, - 0x7b56, 0x0d04, - 0x7b58, 0x225a, - 0x7b60, 0x0eb8, - 0x7b61, 0x24f8, - 0x7b62, 0x4727, - 0x7b63, 0x24fb, - 0x7b64, 0x24ef, - 0x7b65, 0x24f4, - 0x7b66, 0x24ee, - 0x7b67, 0x0eba, - 0x7b69, 0x24f2, - 0x7b6c, 0x4728, - 0x7b6d, 0x24f0, - 0x7b6e, 0x0eb9, - 0x7b6f, 0x374c, - 0x7b70, 0x24f7, - 0x7b71, 0x24f6, - 0x7b72, 0x24f3, - 0x7b73, 0x24f5, - 0x7b74, 0x24f1, - 0x7b75, 0x1050, - 0x7b76, 0x24fa, - 0x7b77, 0x0eb6, - 0x7b78, 0x24f9, - 0x7b7b, 0x4729, - 0x7b82, 0x2779, - 0x7b84, 0x1057, - 0x7b85, 0x2774, - 0x7b87, 0x1056, - 0x7b88, 0x276a, - 0x7b8a, 0x276c, - 0x7b8b, 0x104f, - 0x7b8c, 0x2771, - 0x7b8d, 0x2770, - 0x7b8e, 0x2773, - 0x7b8f, 0x1054, - 0x7b90, 0x276e, - 0x7b91, 0x276d, - 0x7b92, 0x3752, - 0x7b94, 0x1053, - 0x7b95, 0x104e, - 0x7b96, 0x276f, - 0x7b97, 0x1051, - 0x7b98, 0x2775, - 0x7b99, 0x2777, - 0x7b9b, 0x2772, - 0x7b9c, 0x276b, - 0x7b9d, 0x1052, - 0x7ba0, 0x11d2, - 0x7ba1, 0x104d, - 0x7ba2, 0x374b, - 0x7ba3, 0x3f14, - 0x7ba4, 0x2778, - 0x7bac, 0x29aa, - 0x7bad, 0x11cb, - 0x7baf, 0x29ac, - 0x7bb1, 0x11cc, - 0x7bb2, 0x461c, - 0x7bb4, 0x11ce, - 0x7bb5, 0x29af, - 0x7bb7, 0x29a7, - 0x7bb8, 0x1055, - 0x7bb9, 0x29ad, - 0x7bbe, 0x29a9, - 0x7bc0, 0x0eb7, - 0x7bc1, 0x11d1, - 0x7bc4, 0x11cd, - 0x7bc6, 0x11cf, - 0x7bc9, 0x1318, - 0x7bca, 0x29ae, - 0x7bcb, 0x29a8, - 0x7bcc, 0x11d3, - 0x7bce, 0x29ab, - 0x7bcf, 0x3f18, - 0x7bd0, 0x3750, - 0x7bd4, 0x2c07, - 0x7bd5, 0x2c02, - 0x7bd8, 0x2c0c, - 0x7bd9, 0x1316, - 0x7bda, 0x2c04, - 0x7bdb, 0x131a, - 0x7bdc, 0x2c0a, - 0x7bdd, 0x2c01, - 0x7bde, 0x2bfe, - 0x7bdf, 0x2c0d, - 0x7be0, 0x142d, - 0x7be1, 0x131b, - 0x7be2, 0x2c09, - 0x7be3, 0x2bff, - 0x7be4, 0x1319, - 0x7be5, 0x2c03, - 0x7be6, 0x131d, - 0x7be7, 0x2c00, - 0x7be8, 0x2c05, - 0x7be9, 0x131c, - 0x7bea, 0x2c08, - 0x7beb, 0x2c0b, - 0x7bf0, 0x2de9, - 0x7bf2, 0x2dda, - 0x7bf3, 0x2de1, - 0x7bf4, 0x2ddf, - 0x7bf7, 0x142b, - 0x7bf8, 0x2de6, - 0x7bf9, 0x2c06, - 0x7bfa, 0x3757, - 0x7bfb, 0x2ddd, - 0x7bfc, 0x3f1f, - 0x7bfd, 0x2de7, - 0x7bfe, 0x142a, - 0x7bff, 0x2ddc, - 0x7c00, 0x2ddb, - 0x7c01, 0x2de5, - 0x7c02, 0x2de2, - 0x7c03, 0x2de4, - 0x7c05, 0x2dd8, - 0x7c06, 0x2de8, - 0x7c07, 0x1428, - 0x7c09, 0x2de3, - 0x7c0a, 0x2dec, - 0x7c0b, 0x2de0, - 0x7c0c, 0x142c, - 0x7c0d, 0x1429, - 0x7c0e, 0x2dde, - 0x7c0f, 0x2dd9, - 0x7c10, 0x2deb, - 0x7c11, 0x1317, - 0x7c12, 0x472a, - 0x7c15, 0x4061, - 0x7c19, 0x2f78, - 0x7c1b, 0x43d9, - 0x7c1c, 0x2f76, - 0x7c1d, 0x2f7c, - 0x7c1e, 0x1508, - 0x7c1f, 0x2f7a, - 0x7c20, 0x2f79, - 0x7c21, 0x150a, - 0x7c22, 0x2f7f, - 0x7c23, 0x1509, - 0x7c25, 0x2f80, - 0x7c26, 0x2f7d, - 0x7c27, 0x1506, - 0x7c28, 0x2f7e, - 0x7c29, 0x2f77, - 0x7c2a, 0x1507, - 0x7c2b, 0x1505, - 0x7c2c, 0x30d6, - 0x7c2d, 0x2f7b, - 0x7c30, 0x2f81, - 0x7c33, 0x30d3, - 0x7c35, 0x3759, - 0x7c37, 0x15a7, - 0x7c38, 0x15a5, - 0x7c39, 0x30d5, - 0x7c3b, 0x30d7, - 0x7c3c, 0x30d4, - 0x7c3d, 0x15a6, - 0x7c3e, 0x15a3, - 0x7c40, 0x15a8, - 0x7c42, 0x3f1c, - 0x7c43, 0x162b, - 0x7c44, 0x375b, - 0x7c45, 0x3212, - 0x7c47, 0x3211, - 0x7c48, 0x320f, - 0x7c49, 0x320e, - 0x7c4a, 0x3210, - 0x7c4c, 0x162a, - 0x7c4d, 0x162c, - 0x7c50, 0x1681, - 0x7c51, 0x3fb8, - 0x7c53, 0x32ea, - 0x7c54, 0x32e9, - 0x7c56, 0x3eff, - 0x7c57, 0x339b, - 0x7c59, 0x339d, - 0x7c5a, 0x339f, - 0x7c5b, 0x339e, - 0x7c5c, 0x339c, - 0x7c5d, 0x3b3f, - 0x7c5f, 0x16d1, - 0x7c60, 0x16d0, - 0x7c63, 0x1701, - 0x7c64, 0x1700, - 0x7c65, 0x1702, - 0x7c66, 0x342b, - 0x7c67, 0x342a, - 0x7c69, 0x34d6, - 0x7c6a, 0x3493, - 0x7c6b, 0x34d7, - 0x7c6c, 0x1745, - 0x7c6d, 0x3b40, - 0x7c6e, 0x1746, - 0x7c6f, 0x3507, - 0x7c70, 0x3f52, - 0x7c72, 0x176b, - 0x7c73, 0x03f7, - 0x7c74, 0x469c, - 0x7c75, 0x1a25, - 0x7c78, 0x1bbb, - 0x7c7a, 0x1bba, - 0x7c7b, 0x472d, - 0x7c7c, 0x3b49, - 0x7c7d, 0x07cc, - 0x7c7e, 0x3f1a, - 0x7c7f, 0x1bbd, - 0x7c83, 0x375c, - 0x7c84, 0x1d96, - 0x7c85, 0x1d9c, - 0x7c86, 0x3f1d, - 0x7c88, 0x1d9a, - 0x7c89, 0x096a, - 0x7c8a, 0x1d98, - 0x7c8c, 0x1d99, - 0x7c8d, 0x1d9b, - 0x7c8e, 0x3b48, - 0x7c91, 0x1d97, - 0x7c92, 0x0b50, - 0x7c94, 0x1fe0, - 0x7c95, 0x0b52, - 0x7c96, 0x1fe2, - 0x7c97, 0x0b51, - 0x7c98, 0x1fe1, - 0x7c9c, 0x472e, - 0x7c9e, 0x225d, - 0x7c9f, 0x0d0d, - 0x7ca1, 0x225f, - 0x7ca2, 0x225c, - 0x7ca3, 0x1fe3, - 0x7ca5, 0x0d0e, - 0x7ca6, 0x375e, - 0x7ca7, 0x36ed, - 0x7ca8, 0x225e, - 0x7cac, 0x3885, - 0x7cae, 0x3b4a, - 0x7caf, 0x24fe, - 0x7cb1, 0x0ebb, - 0x7cb2, 0x24fc, - 0x7cb3, 0x0ebc, - 0x7cb4, 0x24fd, - 0x7cb5, 0x0ebd, - 0x7cb8, 0x4730, - 0x7cb9, 0x1058, - 0x7cba, 0x277d, - 0x7cbb, 0x277a, - 0x7cbc, 0x277c, - 0x7cbd, 0x1059, - 0x7cbf, 0x277b, - 0x7cc2, 0x3fd7, - 0x7cc5, 0x29b0, - 0x7cc7, 0x3761, - 0x7cc8, 0x29b1, - 0x7cc9, 0x3760, - 0x7cca, 0x11d4, - 0x7ccb, 0x29b3, - 0x7ccc, 0x29b2, - 0x7ccd, 0x3b45, - 0x7cce, 0x0121, - 0x7cd0, 0x2c11, - 0x7cd2, 0x2c0e, - 0x7cd3, 0x3d5c, - 0x7cd4, 0x2c0f, - 0x7cd5, 0x131e, - 0x7cd7, 0x2c10, - 0x7cd9, 0x1433, - 0x7cda, 0x3fd9, - 0x7cdc, 0x142f, - 0x7cdd, 0x1434, - 0x7cde, 0x1430, - 0x7cdf, 0x1432, - 0x7ce0, 0x142e, - 0x7ce2, 0x1431, - 0x7ce6, 0x3762, - 0x7ce7, 0x150b, - 0x7ce8, 0x2ded, - 0x7cea, 0x30d9, - 0x7cec, 0x30d8, - 0x7ced, 0x43da, - 0x7cee, 0x3213, - 0x7cef, 0x162d, - 0x7cf1, 0x33a1, - 0x7cf2, 0x32eb, - 0x7cf3, 0x3764, - 0x7cf4, 0x33a0, - 0x7cf5, 0x3765, - 0x7cf6, 0x34d8, - 0x7cf7, 0x351d, - 0x7cf8, 0x03f8, - 0x7cf9, 0x44f8, - 0x7cfb, 0x04fb, - 0x7cfc, 0x456d, - 0x7cfd, 0x1a26, - 0x7cfe, 0x0667, - 0x7d00, 0x07cf, - 0x7d01, 0x1bc2, - 0x7d02, 0x07cd, - 0x7d03, 0x1bc0, - 0x7d04, 0x07d2, - 0x7d05, 0x07ce, - 0x7d06, 0x07d3, - 0x7d07, 0x07d1, - 0x7d08, 0x1bc1, - 0x7d09, 0x07d0, - 0x7d0a, 0x096e, - 0x7d0b, 0x096d, - 0x7d0c, 0x1da7, - 0x7d0d, 0x0976, - 0x7d0e, 0x1da0, - 0x7d0f, 0x1da6, - 0x7d10, 0x0972, - 0x7d11, 0x1d9f, - 0x7d12, 0x1da5, - 0x7d13, 0x1da3, - 0x7d14, 0x0971, - 0x7d15, 0x0973, - 0x7d16, 0x1da2, - 0x7d17, 0x096c, - 0x7d18, 0x1da1, - 0x7d19, 0x0977, - 0x7d1a, 0x0974, - 0x7d1b, 0x0978, - 0x7d1c, 0x0975, - 0x7d1d, 0x1d9e, - 0x7d1e, 0x1d9d, - 0x7d1f, 0x1da4, - 0x7d20, 0x096f, - 0x7d21, 0x096b, - 0x7d22, 0x0970, - 0x7d25, 0x3ede, - 0x7d28, 0x1ff2, - 0x7d29, 0x1feb, - 0x7d2b, 0x0d13, - 0x7d2c, 0x1fea, - 0x7d2e, 0x0b56, - 0x7d2f, 0x0b5d, - 0x7d30, 0x0b5a, - 0x7d31, 0x0b60, - 0x7d32, 0x0b5f, - 0x7d33, 0x0b5b, - 0x7d35, 0x1fe4, - 0x7d36, 0x1fe7, - 0x7d38, 0x1fe6, - 0x7d39, 0x0b57, - 0x7d3a, 0x1fe8, - 0x7d3b, 0x1ff1, - 0x7d3c, 0x0b58, - 0x7d3d, 0x1fe5, - 0x7d3e, 0x1fee, - 0x7d40, 0x0b59, - 0x7d41, 0x1fec, - 0x7d42, 0x0b5e, - 0x7d43, 0x0b54, - 0x7d44, 0x0b5c, - 0x7d45, 0x1fe9, - 0x7d46, 0x0b53, - 0x7d47, 0x1fed, - 0x7d4a, 0x1ff0, - 0x7d4d, 0x3fdd, - 0x7d4e, 0x2270, - 0x7d4f, 0x2267, - 0x7d50, 0x0d10, - 0x7d51, 0x226e, - 0x7d52, 0x226b, - 0x7d53, 0x2263, - 0x7d54, 0x226c, - 0x7d55, 0x0d12, - 0x7d56, 0x2264, - 0x7d58, 0x2260, - 0x7d5a, 0x3e93, - 0x7d5b, 0x0ec3, - 0x7d5c, 0x2269, - 0x7d5d, 0x3769, - 0x7d5e, 0x0d0f, - 0x7d5f, 0x226f, - 0x7d61, 0x0d16, - 0x7d62, 0x0d18, - 0x7d63, 0x2262, - 0x7d66, 0x0d17, - 0x7d67, 0x2265, - 0x7d68, 0x0d11, - 0x7d69, 0x226d, - 0x7d6a, 0x2266, - 0x7d6b, 0x226a, - 0x7d6d, 0x2268, - 0x7d6e, 0x0d14, - 0x7d6f, 0x2261, - 0x7d70, 0x0d19, - 0x7d71, 0x0b55, - 0x7d72, 0x0d15, - 0x7d73, 0x0d1a, - 0x7d79, 0x0ebf, - 0x7d7a, 0x2505, - 0x7d7b, 0x2507, - 0x7d7c, 0x2509, - 0x7d7d, 0x250d, - 0x7d7f, 0x2503, - 0x7d80, 0x2501, - 0x7d81, 0x0ec1, - 0x7d83, 0x2508, - 0x7d84, 0x250c, - 0x7d85, 0x2504, - 0x7d86, 0x2500, - 0x7d88, 0x24ff, - 0x7d89, 0x376b, - 0x7d8c, 0x250a, - 0x7d8d, 0x2502, - 0x7d8e, 0x2506, - 0x7d8f, 0x0ec2, - 0x7d91, 0x0ec0, - 0x7d92, 0x250e, - 0x7d93, 0x0ebe, - 0x7d94, 0x250b, - 0x7d96, 0x278e, - 0x7d97, 0x3b53, - 0x7d9c, 0x105d, - 0x7d9d, 0x2786, - 0x7d9e, 0x11e1, - 0x7d9f, 0x2790, - 0x7da0, 0x1060, - 0x7da1, 0x2794, - 0x7da2, 0x1066, - 0x7da3, 0x2781, - 0x7da4, 0x46d7, - 0x7da6, 0x2791, - 0x7da7, 0x277e, - 0x7da8, 0x3c9c, - 0x7da9, 0x2793, - 0x7daa, 0x2782, - 0x7dab, 0x376c, - 0x7dac, 0x106d, - 0x7dad, 0x106a, - 0x7dae, 0x2792, - 0x7daf, 0x278c, - 0x7db0, 0x105c, - 0x7db1, 0x1064, - 0x7db2, 0x1063, - 0x7db3, 0x376e, - 0x7db4, 0x1062, - 0x7db5, 0x1068, - 0x7db7, 0x277f, - 0x7db8, 0x1069, - 0x7db9, 0x278d, - 0x7dba, 0x1065, - 0x7dbb, 0x105b, - 0x7dbc, 0x278f, - 0x7dbd, 0x105e, - 0x7dbf, 0x1067, - 0x7dc0, 0x2784, - 0x7dc1, 0x2783, - 0x7dc2, 0x2780, - 0x7dc4, 0x2788, - 0x7dc5, 0x2785, - 0x7dc6, 0x2789, - 0x7dc7, 0x106c, - 0x7dc9, 0x2795, - 0x7dca, 0x1061, - 0x7dcb, 0x278a, - 0x7dcd, 0x456e, - 0x7dce, 0x2787, - 0x7dcf, 0x4735, - 0x7dd0, 0x4737, - 0x7dd2, 0x106b, - 0x7dd3, 0x3b4e, - 0x7dd4, 0x4736, - 0x7dd6, 0x376f, - 0x7dd7, 0x29b8, - 0x7dd8, 0x11d9, - 0x7dd9, 0x11e2, - 0x7dda, 0x11de, - 0x7ddb, 0x29b5, - 0x7ddc, 0x3b4c, - 0x7ddd, 0x11db, - 0x7dde, 0x11df, - 0x7ddf, 0x29c1, - 0x7de0, 0x11d5, - 0x7de1, 0x29b9, - 0x7de3, 0x11dd, - 0x7de4, 0x3772, - 0x7de5, 0x3776, - 0x7de6, 0x29bc, - 0x7de7, 0x29b7, - 0x7de8, 0x11dc, - 0x7de9, 0x11e0, - 0x7dea, 0x29b6, - 0x7dec, 0x11da, - 0x7dee, 0x29c0, - 0x7def, 0x11d7, - 0x7df0, 0x29bf, - 0x7df1, 0x29be, - 0x7df2, 0x11e3, - 0x7df3, 0x28c8, - 0x7df4, 0x11d6, - 0x7df5, 0x3774, - 0x7df6, 0x29bd, - 0x7df7, 0x29b4, - 0x7df9, 0x11e4, - 0x7dfa, 0x29bb, - 0x7dfb, 0x11d8, - 0x7dfd, 0x4738, - 0x7dfe, 0x3ccf, - 0x7e03, 0x29ba, - 0x7e07, 0x3b4d, - 0x7e08, 0x1322, - 0x7e09, 0x1327, - 0x7e0a, 0x1320, - 0x7e0b, 0x2c1f, - 0x7e0c, 0x2c16, - 0x7e0d, 0x2c22, - 0x7e0e, 0x2c1a, - 0x7e0f, 0x2c20, - 0x7e10, 0x1328, - 0x7e11, 0x1321, - 0x7e12, 0x2c13, - 0x7e13, 0x2c19, - 0x7e14, 0x2c23, - 0x7e15, 0x2c1c, - 0x7e16, 0x2c21, - 0x7e17, 0x2c15, - 0x7e1a, 0x2c1d, - 0x7e1b, 0x1323, - 0x7e1c, 0x2c1b, - 0x7e1d, 0x1326, - 0x7e1e, 0x1325, - 0x7e1f, 0x2c17, - 0x7e21, 0x2c14, - 0x7e22, 0x2c1e, - 0x7e23, 0x1324, - 0x7e24, 0x2c25, - 0x7e25, 0x2c24, - 0x7e27, 0x377f, - 0x7e29, 0x2df8, - 0x7e2a, 0x2df4, - 0x7e2b, 0x143b, - 0x7e2d, 0x2dee, - 0x7e2e, 0x1435, - 0x7e2f, 0x1445, - 0x7e30, 0x2dfa, - 0x7e31, 0x143d, - 0x7e32, 0x1439, - 0x7e33, 0x2df1, - 0x7e34, 0x1440, - 0x7e35, 0x1443, - 0x7e36, 0x2dfc, - 0x7e37, 0x1438, - 0x7e38, 0x2df3, - 0x7e39, 0x1441, - 0x7e3a, 0x2dfe, - 0x7e3b, 0x2dfb, - 0x7e3c, 0x2def, - 0x7e3d, 0x143c, - 0x7e3e, 0x1436, - 0x7e3f, 0x1444, - 0x7e40, 0x2df6, - 0x7e41, 0x143f, - 0x7e42, 0x2df0, - 0x7e43, 0x143a, - 0x7e44, 0x2dfd, - 0x7e45, 0x143e, - 0x7e46, 0x1437, - 0x7e47, 0x2df7, - 0x7e48, 0x1442, - 0x7e49, 0x2df5, - 0x7e4c, 0x2df9, - 0x7e50, 0x2f83, - 0x7e51, 0x2f89, - 0x7e52, 0x1511, - 0x7e53, 0x2f8c, - 0x7e54, 0x150c, - 0x7e56, 0x2f84, - 0x7e57, 0x2f8b, - 0x7e58, 0x2f86, - 0x7e59, 0x1512, - 0x7e5a, 0x150f, - 0x7e5c, 0x2f82, - 0x7e5e, 0x150e, - 0x7e5f, 0x2f88, - 0x7e60, 0x2f8a, - 0x7e61, 0x1510, - 0x7e62, 0x2f87, - 0x7e63, 0x2f85, - 0x7e65, 0x46d2, - 0x7e67, 0x3766, - 0x7e68, 0x30e3, - 0x7e69, 0x15ac, - 0x7e6b, 0x15a9, - 0x7e6d, 0x15aa, - 0x7e6e, 0x377b, - 0x7e6f, 0x30df, - 0x7e70, 0x30dd, - 0x7e72, 0x30e1, - 0x7e73, 0x15ae, - 0x7e74, 0x30e2, - 0x7e75, 0x30db, - 0x7e76, 0x30da, - 0x7e77, 0x30de, - 0x7e78, 0x30dc, - 0x7e79, 0x15ab, - 0x7e7a, 0x30e0, - 0x7e7b, 0x3214, - 0x7e7c, 0x1631, - 0x7e7d, 0x1630, - 0x7e7e, 0x3215, - 0x7e7f, 0x3e51, - 0x7e80, 0x3217, - 0x7e81, 0x3216, - 0x7e82, 0x1632, - 0x7e86, 0x32f0, - 0x7e87, 0x32ed, - 0x7e8a, 0x32ec, - 0x7e8b, 0x32ef, - 0x7e8c, 0x1683, - 0x7e8d, 0x32f1, - 0x7e8e, 0x3ec9, - 0x7e8f, 0x1682, - 0x7e91, 0x33a2, - 0x7e92, 0x469e, - 0x7e93, 0x1703, - 0x7e94, 0x1705, - 0x7e95, 0x342c, - 0x7e96, 0x1704, - 0x7e97, 0x3494, - 0x7e98, 0x34da, - 0x7e99, 0x34dc, - 0x7e9a, 0x34d9, - 0x7e9b, 0x34db, - 0x7e9c, 0x1759, - 0x7e9f, 0x48bb, - 0x7ea4, 0x455b, - 0x7eac, 0x455c, - 0x7eba, 0x455d, - 0x7ec7, 0x455e, - 0x7ecf, 0x455f, - 0x7edf, 0x4560, - 0x7f06, 0x4561, - 0x7f36, 0x03f9, - 0x7f37, 0x4562, - 0x7f38, 0x07d4, - 0x7f39, 0x1d1f, - 0x7f3a, 0x0979, - 0x7f3d, 0x0b61, - 0x7f3e, 0x2271, - 0x7f40, 0x3780, - 0x7f43, 0x2c26, - 0x7f44, 0x1446, - 0x7f45, 0x2dff, - 0x7f47, 0x3782, - 0x7f48, 0x1513, - 0x7f49, 0x3e69, - 0x7f4a, 0x30e5, - 0x7f4b, 0x30e4, - 0x7f4c, 0x1633, - 0x7f4d, 0x32f2, - 0x7f4e, 0x3b4f, - 0x7f4f, 0x33a3, - 0x7f50, 0x1726, - 0x7f51, 0x1812, - 0x7f52, 0x44f6, - 0x7f53, 0x44f9, - 0x7f54, 0x0668, - 0x7f55, 0x04fc, - 0x7f58, 0x1bc3, - 0x7f5b, 0x1dad, - 0x7f5c, 0x1da8, - 0x7f5d, 0x1dac, - 0x7f5e, 0x1daa, - 0x7f5f, 0x097a, - 0x7f60, 0x1dab, - 0x7f61, 0x1da9, - 0x7f63, 0x1ff3, - 0x7f65, 0x2273, - 0x7f67, 0x2511, - 0x7f69, 0x0ec5, - 0x7f6b, 0x2510, - 0x7f6c, 0x2513, - 0x7f6d, 0x250f, - 0x7f6e, 0x0ec4, - 0x7f70, 0x106e, - 0x7f71, 0x4007, - 0x7f72, 0x0ec7, - 0x7f73, 0x2796, - 0x7f75, 0x11e5, - 0x7f76, 0x29c2, - 0x7f77, 0x11e6, - 0x7f78, 0x3f7b, - 0x7f79, 0x1329, - 0x7f7a, 0x2c29, - 0x7f7b, 0x2c27, - 0x7f7d, 0x2e02, - 0x7f7e, 0x2e01, - 0x7f7f, 0x2e00, - 0x7f83, 0x30e6, - 0x7f85, 0x15af, - 0x7f86, 0x30e7, - 0x7f87, 0x33a4, - 0x7f88, 0x1727, - 0x7f89, 0x3495, - 0x7f8a, 0x03fa, - 0x7f8b, 0x066a, - 0x7f8c, 0x0669, - 0x7f8d, 0x1bc5, - 0x7f8e, 0x07d5, - 0x7f8f, 0x421c, - 0x7f91, 0x1bc4, - 0x7f92, 0x1daf, - 0x7f93, 0x43db, - 0x7f94, 0x097b, - 0x7f95, 0x1ff4, - 0x7f96, 0x1dae, - 0x7f97, 0x3786, - 0x7f9a, 0x0b63, - 0x7f9b, 0x1ff7, - 0x7f9c, 0x1ff5, - 0x7f9e, 0x0b62, - 0x7fa0, 0x2276, - 0x7fa2, 0x2275, - 0x7fa3, 0x3788, - 0x7fa4, 0x0eca, - 0x7fa5, 0x2515, - 0x7fa6, 0x2514, - 0x7fa7, 0x2516, - 0x7fa8, 0x0ec9, - 0x7fa9, 0x0ec8, - 0x7fac, 0x29c3, - 0x7fad, 0x29c5, - 0x7fae, 0x43dc, - 0x7faf, 0x11e7, - 0x7fb0, 0x29c4, - 0x7fb1, 0x2c2a, - 0x7fb2, 0x132a, - 0x7fb3, 0x2f8e, - 0x7fb4, 0x4739, - 0x7fb5, 0x2f8d, - 0x7fb6, 0x15b0, - 0x7fb7, 0x30e8, - 0x7fb8, 0x15b2, - 0x7fb9, 0x15b1, - 0x7fba, 0x3218, - 0x7fbb, 0x32f3, - 0x7fbc, 0x1684, - 0x7fbd, 0x03fb, - 0x7fbe, 0x1bc6, - 0x7fbf, 0x07d6, - 0x7fc0, 0x1db2, - 0x7fc1, 0x097d, - 0x7fc2, 0x1db1, - 0x7fc3, 0x1db0, - 0x7fc5, 0x097c, - 0x7fc7, 0x1ffd, - 0x7fc9, 0x1fff, - 0x7fca, 0x1ff8, - 0x7fcc, 0x0b64, - 0x7fcd, 0x1ffa, - 0x7fce, 0x0b65, - 0x7fcf, 0x1ffe, - 0x7fd0, 0x1ffb, - 0x7fd2, 0x0b66, - 0x7fd4, 0x0d1c, - 0x7fd7, 0x2278, - 0x7fdb, 0x2517, - 0x7fdd, 0x3b5e, - 0x7fde, 0x279a, - 0x7fdf, 0x1071, - 0x7fe0, 0x106f, - 0x7fe2, 0x2797, - 0x7fe5, 0x2799, - 0x7fe6, 0x29ca, - 0x7fe7, 0x46e9, - 0x7fe8, 0x29cb, - 0x7fe9, 0x11e8, - 0x7fea, 0x29c8, - 0x7feb, 0x29c7, - 0x7fec, 0x29c9, - 0x7fed, 0x29c6, - 0x7fee, 0x132d, - 0x7fef, 0x2c2b, - 0x7ff0, 0x132b, - 0x7ff2, 0x2e04, - 0x7ff3, 0x1447, - 0x7ff4, 0x2e03, - 0x7ff5, 0x2eff, - 0x7ff7, 0x2f8f, - 0x7ff9, 0x1514, - 0x7ffa, 0x378e, - 0x7ffb, 0x1515, - 0x7ffc, 0x1448, - 0x7ffd, 0x30e9, - 0x7fff, 0x3219, - 0x8000, 0x1634, - 0x8001, 0x03fc, - 0x8002, 0x44fd, - 0x8003, 0x03fd, - 0x8004, 0x097f, - 0x8005, 0x066b, - 0x8006, 0x097e, - 0x8007, 0x1bc7, - 0x8008, 0x3791, - 0x800b, 0x0d1e, - 0x800c, 0x03fe, - 0x800d, 0x07d8, - 0x800e, 0x1bc8, - 0x8010, 0x07d7, - 0x8011, 0x07d9, - 0x8012, 0x03ff, - 0x8014, 0x1bca, - 0x8015, 0x0981, - 0x8016, 0x1db3, - 0x8017, 0x0983, - 0x8018, 0x0980, - 0x8019, 0x0982, - 0x801b, 0x2002, - 0x801c, 0x0b67, - 0x801d, 0x3792, - 0x801e, 0x2001, - 0x801f, 0x2000, - 0x8020, 0x473c, - 0x8021, 0x2519, - 0x8024, 0x279b, - 0x8025, 0x473d, - 0x8026, 0x11e9, - 0x8028, 0x132e, - 0x8029, 0x2c2d, - 0x802a, 0x2c2c, - 0x802c, 0x2e05, - 0x802e, 0x473e, - 0x802f, 0x3794, - 0x8030, 0x32f4, - 0x8031, 0x473f, - 0x8033, 0x0400, - 0x8034, 0x18d8, - 0x8035, 0x1a27, - 0x8036, 0x07da, - 0x8037, 0x1bcb, - 0x8039, 0x1db5, - 0x803b, 0x3797, - 0x803d, 0x0984, - 0x803e, 0x1db4, - 0x803f, 0x0985, - 0x8043, 0x2004, - 0x8046, 0x0b69, - 0x8047, 0x2003, - 0x8048, 0x2005, - 0x804a, 0x0b68, - 0x804f, 0x227a, - 0x8051, 0x2279, - 0x8052, 0x0d1f, - 0x8054, 0x4740, - 0x8056, 0x0ecb, - 0x8058, 0x0ecc, - 0x805a, 0x1073, - 0x805b, 0x3fe5, - 0x805c, 0x279d, - 0x805d, 0x279c, - 0x805e, 0x1072, - 0x8061, 0x3799, - 0x8062, 0x3fe3, - 0x8063, 0x3fdc, - 0x8064, 0x29cc, - 0x8066, 0x3fdb, - 0x8067, 0x29cd, - 0x806c, 0x2c2e, - 0x806f, 0x144c, - 0x8070, 0x144b, - 0x8071, 0x1449, - 0x8073, 0x144d, - 0x8075, 0x2f91, - 0x8076, 0x1517, - 0x8077, 0x1516, - 0x8078, 0x30eb, - 0x8079, 0x321a, - 0x807d, 0x16d3, - 0x807e, 0x16d2, - 0x807f, 0x0401, - 0x8080, 0x44fe, - 0x8082, 0x1cec, - 0x8084, 0x0ece, - 0x8085, 0x0d20, - 0x8086, 0x0ecd, - 0x8087, 0x1074, - 0x8089, 0x0402, - 0x808a, 0x17b3, - 0x808b, 0x0403, - 0x808f, 0x1a28, - 0x8090, 0x18db, - 0x8092, 0x18dc, - 0x8093, 0x04fe, - 0x8095, 0x18d9, - 0x8096, 0x04fd, - 0x8098, 0x0500, - 0x8099, 0x18da, - 0x809a, 0x0502, - 0x809b, 0x0501, - 0x809c, 0x18dd, - 0x809d, 0x04ff, - 0x809f, 0x4576, - 0x80a1, 0x0670, - 0x80a2, 0x066e, - 0x80a3, 0x1a2a, - 0x80a5, 0x066d, - 0x80a7, 0x37a0, - 0x80a9, 0x0672, - 0x80aa, 0x0674, - 0x80ab, 0x0671, - 0x80ad, 0x1a2d, - 0x80ae, 0x1a29, - 0x80af, 0x0675, - 0x80b1, 0x066f, - 0x80b2, 0x0503, - 0x80b4, 0x0673, - 0x80b5, 0x1a2c, - 0x80b6, 0x3eae, - 0x80b7, 0x4743, - 0x80b8, 0x1a2b, - 0x80ba, 0x066c, - 0x80bc, 0x4572, - 0x80bd, 0x3e7b, - 0x80c2, 0x1bd1, - 0x80c3, 0x07de, - 0x80c5, 0x1bd3, - 0x80c6, 0x3b74, - 0x80c7, 0x1bcd, - 0x80c8, 0x1bd0, - 0x80c9, 0x1bd9, - 0x80ca, 0x1bd7, - 0x80cc, 0x07e0, - 0x80cd, 0x1bdd, - 0x80ce, 0x07e3, - 0x80cf, 0x1bda, - 0x80d0, 0x1bd2, - 0x80d1, 0x1bcf, - 0x80d4, 0x227d, - 0x80d5, 0x1bd8, - 0x80d6, 0x07db, - 0x80d7, 0x1bdb, - 0x80d8, 0x1bcc, - 0x80d9, 0x1bd5, - 0x80da, 0x07dd, - 0x80db, 0x07e2, - 0x80dc, 0x1bd6, - 0x80dd, 0x07e6, - 0x80de, 0x07e4, - 0x80e0, 0x1bce, - 0x80e1, 0x07e1, - 0x80e3, 0x1bd4, - 0x80e4, 0x07e5, - 0x80e5, 0x07dc, - 0x80e6, 0x1bdc, - 0x80e9, 0x4744, - 0x80ec, 0x45e9, - 0x80ed, 0x098a, - 0x80ef, 0x0993, - 0x80f0, 0x0988, - 0x80f1, 0x0986, - 0x80f2, 0x1db7, - 0x80f3, 0x098e, - 0x80f4, 0x098b, - 0x80f5, 0x1db9, - 0x80f6, 0x4574, - 0x80f8, 0x098d, - 0x80f9, 0x1db8, - 0x80fa, 0x1db6, - 0x80fb, 0x1dbb, - 0x80fc, 0x0992, - 0x80fd, 0x0990, - 0x80fe, 0x227c, - 0x8100, 0x1dbc, - 0x8101, 0x1dba, - 0x8102, 0x0987, - 0x8103, 0x3fe7, - 0x8105, 0x0989, - 0x8106, 0x098c, - 0x8107, 0x37a2, - 0x8108, 0x098f, - 0x8109, 0x3b75, - 0x810a, 0x0991, - 0x810c, 0x4746, - 0x810e, 0x4747, - 0x8112, 0x4748, - 0x8114, 0x4749, - 0x8115, 0x200f, - 0x8116, 0x0b6b, - 0x8117, 0x3e6d, - 0x8118, 0x2006, - 0x8119, 0x2008, - 0x811a, 0x37a3, - 0x811b, 0x2009, - 0x811d, 0x2011, - 0x811e, 0x200d, - 0x811f, 0x200b, - 0x8121, 0x200e, - 0x8122, 0x2012, - 0x8123, 0x0b6c, - 0x8124, 0x0b70, - 0x8125, 0x2007, - 0x8127, 0x2010, - 0x8129, 0x0b6e, - 0x812a, 0x3a39, - 0x812b, 0x0b6d, - 0x812c, 0x200c, - 0x812d, 0x200a, - 0x812f, 0x0b6a, - 0x8130, 0x0b6f, - 0x8132, 0x3e79, - 0x8134, 0x45ec, - 0x8137, 0x3b72, - 0x8139, 0x0d26, - 0x813a, 0x2285, - 0x813d, 0x2283, - 0x813e, 0x0d28, - 0x8142, 0x3b76, - 0x8143, 0x227e, - 0x8144, 0x2527, - 0x8146, 0x0d27, - 0x8147, 0x2282, - 0x8148, 0x3e76, - 0x814a, 0x227f, - 0x814b, 0x0d23, - 0x814c, 0x0d29, - 0x814d, 0x2284, - 0x814e, 0x0d25, - 0x814f, 0x2281, - 0x8150, 0x1075, - 0x8151, 0x0d24, - 0x8152, 0x2280, - 0x8153, 0x0d2a, - 0x8154, 0x0d22, - 0x8155, 0x0d21, - 0x8156, 0x474c, - 0x8159, 0x474d, - 0x815b, 0x251f, - 0x815c, 0x251d, - 0x815e, 0x2523, - 0x8160, 0x251b, - 0x8161, 0x2528, - 0x8162, 0x2520, - 0x8164, 0x251a, - 0x8165, 0x0ed2, - 0x8166, 0x0ed8, - 0x8167, 0x2525, - 0x8169, 0x251e, - 0x816b, 0x0ed5, - 0x816d, 0x43c4, - 0x816e, 0x0ed3, - 0x816f, 0x2526, - 0x8170, 0x0ed0, - 0x8171, 0x0ecf, - 0x8172, 0x2521, - 0x8173, 0x0ed4, - 0x8174, 0x0d2b, - 0x8176, 0x2524, - 0x8177, 0x251c, - 0x8178, 0x0ed1, - 0x8179, 0x0ed6, - 0x817c, 0x4750, - 0x817f, 0x107a, - 0x8180, 0x1076, - 0x8182, 0x107b, - 0x8183, 0x27a0, - 0x8184, 0x43c5, - 0x8186, 0x279f, - 0x8187, 0x27a1, - 0x8188, 0x1078, - 0x8189, 0x279e, - 0x818a, 0x1079, - 0x818b, 0x27a4, - 0x818c, 0x27a3, - 0x818d, 0x27a2, - 0x818f, 0x1077, - 0x8193, 0x43c6, - 0x8195, 0x29d1, - 0x8197, 0x29d4, - 0x8198, 0x11ef, - 0x8199, 0x29d3, - 0x819a, 0x11ee, - 0x819b, 0x11ea, - 0x819e, 0x29d0, - 0x819f, 0x29cf, - 0x81a0, 0x11ed, - 0x81a2, 0x29d2, - 0x81a3, 0x29ce, - 0x81a5, 0x4753, - 0x81a6, 0x2c30, - 0x81a7, 0x2c3a, - 0x81a8, 0x1331, - 0x81a9, 0x1330, - 0x81aa, 0x4364, - 0x81ab, 0x2c34, - 0x81ac, 0x2c36, - 0x81ae, 0x2c31, - 0x81b0, 0x2c35, - 0x81b1, 0x2c2f, - 0x81b2, 0x2c38, - 0x81b3, 0x132f, - 0x81b4, 0x2c37, - 0x81b5, 0x2c33, - 0x81b6, 0x3eb2, - 0x81b7, 0x2c39, - 0x81b9, 0x2c32, - 0x81ba, 0x1450, - 0x81bb, 0x2e06, - 0x81bc, 0x2e0c, - 0x81bd, 0x1454, - 0x81be, 0x1456, - 0x81bf, 0x1453, - 0x81c0, 0x1452, - 0x81c1, 0x4755, - 0x81c2, 0x1451, - 0x81c3, 0x144f, - 0x81c4, 0x2e07, - 0x81c5, 0x2e0a, - 0x81c6, 0x144e, - 0x81c7, 0x2e0b, - 0x81c8, 0x3fee, - 0x81c9, 0x1455, - 0x81ca, 0x2e09, - 0x81cc, 0x2e08, - 0x81cd, 0x1518, - 0x81cf, 0x1519, - 0x81d0, 0x2f94, - 0x81d1, 0x2f92, - 0x81d5, 0x30ed, - 0x81d7, 0x30ec, - 0x81d8, 0x15b3, - 0x81d9, 0x321c, - 0x81da, 0x1635, - 0x81db, 0x321b, - 0x81dd, 0x32f5, - 0x81de, 0x33a5, - 0x81df, 0x16d4, - 0x81e0, 0x34dd, - 0x81e2, 0x1706, - 0x81e3, 0x0405, - 0x81e4, 0x4756, - 0x81e5, 0x0676, - 0x81e6, 0x2286, - 0x81e7, 0x107c, - 0x81e8, 0x1457, - 0x81e9, 0x2e0d, - 0x81ea, 0x0406, - 0x81ec, 0x0995, - 0x81ed, 0x0994, - 0x81ee, 0x2287, - 0x81ef, 0x42d1, - 0x81f2, 0x2c3b, - 0x81f3, 0x0407, - 0x81f4, 0x07e7, - 0x81f6, 0x3d61, - 0x81f7, 0x2288, - 0x81fa, 0x107d, - 0x81fb, 0x1332, - 0x81fc, 0x0408, - 0x81fe, 0x0677, - 0x81ff, 0x1bde, - 0x8200, 0x0996, - 0x8201, 0x1dbd, - 0x8202, 0x0b71, - 0x8204, 0x228b, - 0x8205, 0x0ed9, - 0x8207, 0x107e, - 0x8208, 0x1333, - 0x8209, 0x1458, - 0x820a, 0x151a, - 0x820b, 0x30ee, - 0x820c, 0x0409, - 0x820d, 0x0678, - 0x8210, 0x0997, - 0x8211, 0x2013, - 0x8212, 0x0d2c, - 0x8214, 0x107f, - 0x8215, 0x27a5, - 0x8216, 0x29d5, - 0x8218, 0x37aa, - 0x821a, 0x3fe1, - 0x821b, 0x040a, - 0x821c, 0x0d2d, - 0x821d, 0x2529, - 0x821e, 0x1080, - 0x821f, 0x040b, - 0x8220, 0x1a2e, - 0x8221, 0x1bdf, - 0x8222, 0x07e8, - 0x8225, 0x1dbf, - 0x8226, 0x420d, - 0x8228, 0x099a, - 0x8229, 0x37b0, - 0x822a, 0x0998, - 0x822c, 0x099b, - 0x822d, 0x3ed0, - 0x822f, 0x1dbe, - 0x8232, 0x2018, - 0x8233, 0x2015, - 0x8234, 0x2017, - 0x8235, 0x0b72, - 0x8236, 0x0b74, - 0x8237, 0x0b73, - 0x8238, 0x2014, - 0x8239, 0x0b75, - 0x823a, 0x2016, - 0x823c, 0x228c, - 0x823e, 0x4582, - 0x823f, 0x228e, - 0x8240, 0x252c, - 0x8242, 0x252d, - 0x8244, 0x252b, - 0x8245, 0x252e, - 0x8247, 0x0eda, - 0x8249, 0x252a, - 0x824b, 0x1081, - 0x824e, 0x29da, - 0x824f, 0x29d6, - 0x8250, 0x29d9, - 0x8251, 0x29db, - 0x8252, 0x29d8, - 0x8253, 0x29d7, - 0x8254, 0x4757, - 0x8255, 0x2c3c, - 0x8258, 0x1334, - 0x825a, 0x2e0f, - 0x825b, 0x2e0e, - 0x825c, 0x2e10, - 0x825e, 0x2f96, - 0x825f, 0x2f95, - 0x8261, 0x30f0, - 0x8262, 0x3b7a, - 0x8263, 0x30f1, - 0x8264, 0x30ef, - 0x8265, 0x3b7b, - 0x8266, 0x1636, - 0x8268, 0x321d, - 0x826b, 0x33a6, - 0x826c, 0x342d, - 0x826d, 0x3496, - 0x826e, 0x040c, - 0x826f, 0x0504, - 0x8271, 0x1459, - 0x8272, 0x040d, - 0x8274, 0x2019, - 0x8275, 0x228f, - 0x8276, 0x4759, - 0x8277, 0x172e, - 0x8278, 0x1813, - 0x8279, 0x4722, - 0x827a, 0x4563, - 0x827b, 0x37c8, - 0x827c, 0x1814, - 0x827d, 0x1816, - 0x827e, 0x040e, - 0x827f, 0x1817, - 0x8280, 0x1815, - 0x8283, 0x18e5, - 0x8285, 0x18e0, - 0x8287, 0x4132, - 0x828a, 0x18e4, - 0x828b, 0x0506, - 0x828d, 0x0507, - 0x828e, 0x18e1, - 0x828f, 0x18df, - 0x8290, 0x18de, - 0x8291, 0x18e2, - 0x8292, 0x0505, - 0x8293, 0x18e3, - 0x8294, 0x1be0, - 0x8298, 0x1a33, - 0x8299, 0x067b, - 0x829a, 0x1a32, - 0x829b, 0x1a34, - 0x829d, 0x067a, - 0x829e, 0x1a39, - 0x829f, 0x067e, - 0x82a0, 0x1a2f, - 0x82a1, 0x1a3d, - 0x82a2, 0x1a43, - 0x82a3, 0x0685, - 0x82a4, 0x1a40, - 0x82a5, 0x0682, - 0x82a6, 0x3d73, - 0x82a7, 0x1a36, - 0x82a8, 0x1a3c, - 0x82a9, 0x1a3e, - 0x82aa, 0x37bc, - 0x82ab, 0x1a31, - 0x82ac, 0x0681, - 0x82ad, 0x067c, - 0x82ae, 0x1a37, - 0x82af, 0x0683, - 0x82b0, 0x0686, - 0x82b1, 0x0680, - 0x82b3, 0x0679, - 0x82b4, 0x1a3b, - 0x82b5, 0x1a35, - 0x82b6, 0x1a42, - 0x82b7, 0x0688, - 0x82b8, 0x0684, - 0x82b9, 0x067f, - 0x82ba, 0x1a3a, - 0x82bb, 0x099c, - 0x82bc, 0x1a38, - 0x82bd, 0x067d, - 0x82be, 0x0687, - 0x82c0, 0x1a30, - 0x82c2, 0x1a3f, - 0x82c3, 0x1a41, - 0x82c4, 0x45e3, - 0x82ca, 0x475a, - 0x82cf, 0x4564, - 0x82d0, 0x37c1, - 0x82d1, 0x07f9, - 0x82d2, 0x07f3, - 0x82d3, 0x07fb, - 0x82d4, 0x07f8, - 0x82d5, 0x1be7, - 0x82d6, 0x1bea, - 0x82d7, 0x07f4, - 0x82d8, 0x475b, - 0x82d9, 0x1be1, - 0x82db, 0x07ed, - 0x82dc, 0x07f7, - 0x82de, 0x07fa, - 0x82df, 0x07fc, - 0x82e0, 0x1bf6, - 0x82e1, 0x1bed, - 0x82e2, 0x37c9, - 0x82e3, 0x07ec, - 0x82e4, 0x1bf5, - 0x82e5, 0x07f0, - 0x82e6, 0x07ee, - 0x82e7, 0x07e9, - 0x82e8, 0x1be5, - 0x82ea, 0x1bf4, - 0x82eb, 0x1be9, - 0x82ec, 0x1bec, - 0x82ed, 0x1bf9, - 0x82ee, 0x4018, - 0x82ef, 0x07fd, - 0x82f0, 0x1bf3, - 0x82f1, 0x07f5, - 0x82f2, 0x1bee, - 0x82f3, 0x1bf8, - 0x82f4, 0x1beb, - 0x82f5, 0x1bef, - 0x82f6, 0x1bf2, - 0x82f7, 0x3e77, - 0x82f9, 0x1be3, - 0x82fa, 0x1bf7, - 0x82fb, 0x1bf1, - 0x82fc, 0x412d, - 0x82fd, 0x3d92, - 0x82fe, 0x1be2, - 0x82ff, 0x43de, - 0x8300, 0x1be6, - 0x8301, 0x07f6, - 0x8302, 0x07f1, - 0x8303, 0x07ea, - 0x8304, 0x07ef, - 0x8305, 0x07eb, - 0x8306, 0x07fe, - 0x8307, 0x1be4, - 0x8308, 0x1dd0, - 0x8309, 0x07f2, - 0x830b, 0x3eb6, - 0x830c, 0x1bf0, - 0x830d, 0x1a7d, - 0x8316, 0x1dd3, - 0x8317, 0x09aa, - 0x8318, 0x37ca, - 0x8319, 0x1dc3, - 0x831a, 0x37c2, - 0x831b, 0x1dce, - 0x831c, 0x1dca, - 0x831d, 0x37d1, - 0x831e, 0x1ddd, - 0x8320, 0x1dd5, - 0x8322, 0x1dcb, - 0x8324, 0x1dd4, - 0x8325, 0x1dc5, - 0x8326, 0x1dc9, - 0x8327, 0x1de0, - 0x8328, 0x09ad, - 0x8329, 0x1dd8, - 0x832a, 0x1dcf, - 0x832b, 0x099d, - 0x832c, 0x1dde, - 0x832d, 0x1dc1, - 0x832f, 0x1dd7, - 0x8331, 0x09ac, - 0x8332, 0x09a7, - 0x8333, 0x1dc0, - 0x8334, 0x09a5, - 0x8335, 0x09a4, - 0x8336, 0x09a9, - 0x8337, 0x1dd6, - 0x8338, 0x09a1, - 0x8339, 0x09a8, - 0x833a, 0x1be8, - 0x833b, 0x2290, - 0x833c, 0x1dd1, - 0x833d, 0x3d2a, - 0x833f, 0x1dc7, - 0x8340, 0x09ab, - 0x8341, 0x1dc8, - 0x8342, 0x1dcc, - 0x8343, 0x09ae, - 0x8344, 0x1dc2, - 0x8345, 0x1dda, - 0x8347, 0x1dd9, - 0x8348, 0x1de1, - 0x8349, 0x09a3, - 0x834a, 0x09a0, - 0x834b, 0x1ddf, - 0x834c, 0x1ddb, - 0x834d, 0x1dd2, - 0x834e, 0x1dcd, - 0x834f, 0x09a6, - 0x8350, 0x09a2, - 0x8351, 0x1dc4, - 0x8352, 0x099e, - 0x8353, 0x1ddc, - 0x8354, 0x099f, - 0x8356, 0x1dc6, - 0x8357, 0x475d, - 0x8362, 0x37b6, - 0x8363, 0x41eb, - 0x8366, 0x3e1e, - 0x836f, 0x4565, - 0x8373, 0x201f, - 0x8374, 0x2021, - 0x8375, 0x2026, - 0x8376, 0x203a, - 0x8377, 0x0b83, - 0x8378, 0x0b79, - 0x837a, 0x201e, - 0x837b, 0x0b84, - 0x837d, 0x2029, - 0x837e, 0x2030, - 0x837f, 0x2036, - 0x8381, 0x2023, - 0x8383, 0x202a, - 0x8385, 0x37d3, - 0x8386, 0x0b86, - 0x8387, 0x2038, - 0x8388, 0x2033, - 0x8389, 0x0b81, - 0x838a, 0x0b7f, - 0x838b, 0x202f, - 0x838c, 0x202b, - 0x838d, 0x201d, - 0x838e, 0x0b76, - 0x838f, 0x2022, - 0x8390, 0x201a, - 0x8391, 0x37ec, - 0x8392, 0x0b7e, - 0x8393, 0x0b80, - 0x8394, 0x2027, - 0x8395, 0x2024, - 0x8396, 0x0b7b, - 0x8397, 0x2034, - 0x8398, 0x0b78, - 0x8399, 0x2025, - 0x839a, 0x22b9, - 0x839b, 0x202d, - 0x839c, 0x374d, - 0x839d, 0x202c, - 0x839e, 0x0b77, - 0x83a0, 0x0b82, - 0x83a2, 0x0b7a, - 0x83a3, 0x201b, - 0x83a4, 0x2020, - 0x83a5, 0x2031, - 0x83a6, 0x2037, - 0x83a7, 0x0b87, - 0x83a8, 0x201c, - 0x83a9, 0x2028, - 0x83aa, 0x202e, - 0x83ab, 0x0b7d, - 0x83ac, 0x37d6, - 0x83ae, 0x2039, - 0x83af, 0x2032, - 0x83b0, 0x2035, - 0x83b9, 0x42a7, - 0x83bd, 0x0b7c, - 0x83be, 0x3f59, - 0x83bf, 0x22a0, - 0x83c0, 0x2294, - 0x83c1, 0x0d35, - 0x83c2, 0x22b1, - 0x83c3, 0x22ba, - 0x83c4, 0x22bd, - 0x83c5, 0x0d33, - 0x83c6, 0x229c, - 0x83c7, 0x22b5, - 0x83c8, 0x229d, - 0x83c9, 0x22ab, - 0x83ca, 0x0d40, - 0x83cb, 0x22a7, - 0x83cc, 0x0d3d, - 0x83cd, 0x4055, - 0x83ce, 0x22a8, - 0x83cf, 0x2291, - 0x83d1, 0x22b6, - 0x83d3, 0x37d8, - 0x83d4, 0x0d46, - 0x83d5, 0x22b3, - 0x83d6, 0x22a9, - 0x83d7, 0x22bf, - 0x83d8, 0x22a4, - 0x83d9, 0x254e, - 0x83db, 0x22c2, - 0x83dc, 0x0d44, - 0x83dd, 0x22a2, - 0x83de, 0x22ae, - 0x83df, 0x0d47, - 0x83e0, 0x0d32, - 0x83e1, 0x22a6, - 0x83e2, 0x22c0, - 0x83e3, 0x229f, - 0x83e4, 0x2298, - 0x83e5, 0x22a3, - 0x83e7, 0x2297, - 0x83e8, 0x2295, - 0x83e9, 0x0d2e, - 0x83ea, 0x22b7, - 0x83eb, 0x229e, - 0x83ec, 0x22bb, - 0x83ed, 0x3d2c, - 0x83ee, 0x22bc, - 0x83ef, 0x0d36, - 0x83f0, 0x0d3b, - 0x83f1, 0x0d37, - 0x83f2, 0x0d3f, - 0x83f3, 0x22b2, - 0x83f4, 0x0d38, - 0x83f5, 0x22aa, - 0x83f6, 0x229a, - 0x83f8, 0x0d30, - 0x83f9, 0x2292, - 0x83fa, 0x22b4, - 0x83fb, 0x22be, - 0x83fc, 0x2299, - 0x83fd, 0x0d3e, - 0x83fe, 0x22c3, - 0x83ff, 0x22a5, - 0x8401, 0x22a1, - 0x8403, 0x0d2f, - 0x8404, 0x0d43, - 0x8405, 0x475f, - 0x8406, 0x22b0, - 0x8407, 0x0d45, - 0x8409, 0x22ac, - 0x840a, 0x0d3a, - 0x840b, 0x0d34, - 0x840c, 0x0d3c, - 0x840d, 0x0d31, - 0x840e, 0x0d42, - 0x840f, 0x22ad, - 0x8410, 0x229b, - 0x8411, 0x22af, - 0x8412, 0x2296, - 0x8413, 0x22b8, - 0x8414, 0x3c10, - 0x8416, 0x4037, - 0x8418, 0x3e7a, - 0x841b, 0x22c1, - 0x841c, 0x3eb3, - 0x8420, 0x3c55, - 0x8421, 0x3751, - 0x8423, 0x2293, - 0x8424, 0x4951, - 0x8426, 0x46d8, - 0x8429, 0x254d, - 0x842b, 0x2563, - 0x842c, 0x0eac, - 0x842d, 0x2552, - 0x842e, 0x422d, - 0x842f, 0x2550, - 0x8430, 0x253b, - 0x8431, 0x0ede, - 0x8432, 0x254b, - 0x8433, 0x255f, - 0x8434, 0x2547, - 0x8435, 0x0ee6, - 0x8436, 0x255e, - 0x8437, 0x2545, - 0x8438, 0x0d41, - 0x8439, 0x2555, - 0x843a, 0x2546, - 0x843b, 0x255c, - 0x843c, 0x0ee5, - 0x843d, 0x0edd, - 0x843e, 0x3d21, - 0x843f, 0x2530, - 0x8440, 0x2538, - 0x8442, 0x2551, - 0x8443, 0x2549, - 0x8444, 0x2562, - 0x8445, 0x254c, - 0x8446, 0x0eeb, - 0x8447, 0x255d, - 0x8448, 0x4718, - 0x8449, 0x0ee2, - 0x844a, 0x37e4, - 0x844b, 0x254f, - 0x844c, 0x2557, - 0x844d, 0x253c, - 0x844e, 0x2556, - 0x8450, 0x2567, - 0x8451, 0x2537, - 0x8452, 0x2558, - 0x8453, 0x3b7d, - 0x8454, 0x2565, - 0x8455, 0x398b, - 0x8456, 0x2531, - 0x8457, 0x0d39, - 0x8458, 0x37de, - 0x8459, 0x253f, - 0x845a, 0x253e, - 0x845b, 0x0ee4, - 0x845c, 0x3edb, - 0x845d, 0x2542, - 0x845e, 0x2544, - 0x845f, 0x2553, - 0x8460, 0x2564, - 0x8461, 0x0ee7, - 0x8462, 0x42da, - 0x8463, 0x0ee8, - 0x8464, 0x4761, - 0x8465, 0x2536, - 0x8466, 0x0ee0, - 0x8467, 0x253a, - 0x8468, 0x2560, - 0x8469, 0x0ee9, - 0x846b, 0x0ee1, - 0x846c, 0x0ee3, - 0x846d, 0x0eea, - 0x846e, 0x2566, - 0x846f, 0x2559, - 0x8470, 0x2554, - 0x8471, 0x37e0, - 0x8472, 0x3c93, - 0x8473, 0x2541, - 0x8474, 0x2540, - 0x8475, 0x0edf, - 0x8476, 0x2532, - 0x8477, 0x0edc, - 0x8478, 0x254a, - 0x8479, 0x2533, - 0x847a, 0x2548, - 0x847d, 0x253d, - 0x847e, 0x2561, - 0x847f, 0x394e, - 0x8480, 0x3b6e, - 0x8482, 0x0edb, - 0x8486, 0x2539, - 0x8488, 0x4762, - 0x848d, 0x2535, - 0x848e, 0x255b, - 0x848f, 0x2534, - 0x8490, 0x108e, - 0x8491, 0x27cd, - 0x8492, 0x3756, - 0x8493, 0x37ee, - 0x8494, 0x27bc, - 0x8496, 0x3b1d, - 0x8497, 0x27a6, - 0x8498, 0x27c4, - 0x8499, 0x1086, - 0x849a, 0x27b5, - 0x849b, 0x27bf, - 0x849c, 0x1089, - 0x849d, 0x27b8, - 0x849e, 0x1087, - 0x849f, 0x27a9, - 0x84a0, 0x27c7, - 0x84a1, 0x27a8, - 0x84a2, 0x27bb, - 0x84a3, 0x3b9e, - 0x84a4, 0x27a7, - 0x84a7, 0x27b9, - 0x84a8, 0x27c2, - 0x84a9, 0x27c0, - 0x84aa, 0x27b4, - 0x84ab, 0x27af, - 0x84ac, 0x27ad, - 0x84ad, 0x3d8c, - 0x84ae, 0x27ae, - 0x84af, 0x27c1, - 0x84b0, 0x27cc, - 0x84b1, 0x27b6, - 0x84b2, 0x1088, - 0x84b4, 0x27b1, - 0x84b6, 0x27c5, - 0x84b8, 0x108b, - 0x84b9, 0x27b0, - 0x84ba, 0x27aa, - 0x84bb, 0x27ba, - 0x84bc, 0x108f, - 0x84bd, 0x3c4c, - 0x84be, 0x4764, - 0x84bf, 0x1083, - 0x84c0, 0x108c, - 0x84c1, 0x27b2, - 0x84c2, 0x27ac, - 0x84c4, 0x1085, - 0x84c5, 0x255a, - 0x84c6, 0x1084, - 0x84c7, 0x27bd, - 0x84c9, 0x1082, - 0x84ca, 0x1091, - 0x84cb, 0x108a, - 0x84cc, 0x27be, - 0x84cd, 0x27b3, - 0x84ce, 0x27ab, - 0x84cf, 0x27c6, - 0x84d0, 0x27b7, - 0x84d1, 0x1090, - 0x84d2, 0x27ca, - 0x84d3, 0x108d, - 0x84d4, 0x27c9, - 0x84d6, 0x27c3, - 0x84d7, 0x27c8, - 0x84da, 0x3ff5, - 0x84db, 0x27cb, - 0x84de, 0x37ea, - 0x84e1, 0x4765, - 0x84e2, 0x37b5, - 0x84e4, 0x37ef, - 0x84e5, 0x3bd0, - 0x84e7, 0x2a03, - 0x84e9, 0x29f7, - 0x84ea, 0x29f6, - 0x84eb, 0x29f2, - 0x84ec, 0x11fb, - 0x84ee, 0x11f3, - 0x84ef, 0x2a06, - 0x84f0, 0x2a05, - 0x84f1, 0x252f, - 0x84f2, 0x29ef, - 0x84f3, 0x29f3, - 0x84f4, 0x29ed, - 0x84f6, 0x2a00, - 0x84f7, 0x29f1, - 0x84f8, 0x4766, - 0x84f9, 0x2a07, - 0x84fa, 0x29ea, - 0x84fb, 0x29e8, - 0x84fc, 0x29f4, - 0x84fd, 0x29fe, - 0x84fe, 0x29f9, - 0x84ff, 0x11fd, - 0x8500, 0x29df, - 0x8502, 0x29fd, - 0x8503, 0x398a, - 0x8505, 0x40eb, - 0x8506, 0x11fe, - 0x8507, 0x2543, - 0x8508, 0x29eb, - 0x8509, 0x29e2, - 0x850a, 0x29e5, - 0x850b, 0x2a0b, - 0x850c, 0x29ec, - 0x850d, 0x29e3, - 0x850e, 0x29e1, - 0x850f, 0x29de, - 0x8510, 0x4767, - 0x8511, 0x11f7, - 0x8512, 0x29f5, - 0x8513, 0x11f6, - 0x8514, 0x11fa, - 0x8515, 0x29f0, - 0x8516, 0x29f8, - 0x8517, 0x11f0, - 0x8518, 0x2a08, - 0x8519, 0x2a0c, - 0x851a, 0x11f2, - 0x851c, 0x29e7, - 0x851d, 0x29fb, - 0x851e, 0x29ff, - 0x851f, 0x29e4, - 0x8520, 0x2a09, - 0x8521, 0x11f9, - 0x8523, 0x11f8, - 0x8524, 0x29dc, - 0x8525, 0x11fc, - 0x8526, 0x2a02, - 0x8527, 0x29e6, - 0x8528, 0x29fa, - 0x8529, 0x29e0, - 0x852a, 0x29ee, - 0x852b, 0x29e9, - 0x852c, 0x11f4, - 0x852e, 0x29fc, - 0x852f, 0x2a0d, - 0x8530, 0x2a0a, - 0x8531, 0x2a01, - 0x8533, 0x4228, - 0x8534, 0x37f4, - 0x8538, 0x4768, - 0x853b, 0x29dd, - 0x853d, 0x11f1, - 0x853e, 0x2c4f, - 0x8540, 0x2c46, - 0x8541, 0x2c49, - 0x8542, 0x4062, - 0x8543, 0x133b, - 0x8544, 0x2c4b, - 0x8545, 0x2c40, - 0x8546, 0x2c47, - 0x8547, 0x2c4d, - 0x8548, 0x1338, - 0x8549, 0x133c, - 0x854a, 0x1336, - 0x854b, 0x37c0, - 0x854c, 0x400f, - 0x854d, 0x2c42, - 0x854e, 0x2c52, - 0x8551, 0x2c4c, - 0x8552, 0x4769, - 0x8553, 0x2c43, - 0x8554, 0x2c5b, - 0x8555, 0x2c55, - 0x8556, 0x2c3f, - 0x8557, 0x2e23, - 0x8558, 0x2c45, - 0x8559, 0x1337, - 0x855a, 0x37db, - 0x855b, 0x2c50, - 0x855d, 0x2c5a, - 0x855e, 0x133f, - 0x8560, 0x2c57, - 0x8561, 0x2c44, - 0x8562, 0x2c4a, - 0x8563, 0x2c4e, - 0x8564, 0x2c48, - 0x8565, 0x2c5c, - 0x8566, 0x2c59, - 0x8567, 0x2c56, - 0x8568, 0x1339, - 0x856a, 0x133e, - 0x856b, 0x2c41, - 0x856c, 0x2c5d, - 0x856d, 0x133d, - 0x856e, 0x2c53, - 0x856f, 0x476b, - 0x8571, 0x2c51, - 0x8573, 0x37f8, - 0x8575, 0x2c54, - 0x8576, 0x2e30, - 0x8577, 0x2e1d, - 0x8578, 0x2e22, - 0x8579, 0x2e2f, - 0x857a, 0x2e21, - 0x857b, 0x2e19, - 0x857c, 0x2e1e, - 0x857e, 0x145c, - 0x8580, 0x2e12, - 0x8581, 0x2e2a, - 0x8582, 0x2e2c, - 0x8583, 0x2e11, - 0x8584, 0x145b, - 0x8585, 0x2e2e, - 0x8586, 0x2e26, - 0x8587, 0x1462, - 0x8588, 0x2e2d, - 0x8589, 0x2e1f, - 0x858a, 0x1464, - 0x858b, 0x2e17, - 0x858c, 0x2c58, - 0x858d, 0x2e27, - 0x858e, 0x2e24, - 0x858f, 0x2e13, - 0x8590, 0x2e32, - 0x8591, 0x145e, - 0x8594, 0x145f, - 0x8595, 0x2e15, - 0x8596, 0x2e25, - 0x8598, 0x2e31, - 0x8599, 0x2e28, - 0x859a, 0x2e1b, - 0x859b, 0x1461, - 0x859c, 0x145d, - 0x859d, 0x2e29, - 0x859e, 0x2e1c, - 0x859f, 0x2e33, - 0x85a0, 0x2e16, - 0x85a1, 0x2e20, - 0x85a2, 0x2e2b, - 0x85a3, 0x2e18, - 0x85a4, 0x2e1a, - 0x85a6, 0x1465, - 0x85a7, 0x2e14, - 0x85a8, 0x1463, - 0x85a9, 0x151c, - 0x85aa, 0x145a, - 0x85af, 0x1460, - 0x85b0, 0x1520, - 0x85b1, 0x2fa6, - 0x85b3, 0x2f9c, - 0x85b4, 0x2f97, - 0x85b5, 0x2f9d, - 0x85b6, 0x2fa7, - 0x85b7, 0x2fab, - 0x85b8, 0x2faa, - 0x85b9, 0x1522, - 0x85ba, 0x1521, - 0x85bd, 0x2f9e, - 0x85be, 0x2fac, - 0x85bf, 0x2fa1, - 0x85c0, 0x2f99, - 0x85c1, 0x37fe, - 0x85c2, 0x2f9b, - 0x85c3, 0x2f9a, - 0x85c4, 0x2fa0, - 0x85c5, 0x2fa5, - 0x85c6, 0x2f98, - 0x85c7, 0x2f9f, - 0x85c8, 0x2fa4, - 0x85c9, 0x151f, - 0x85cb, 0x2fa2, - 0x85cd, 0x151d, - 0x85ce, 0x2fa3, - 0x85cf, 0x151b, - 0x85d0, 0x151e, - 0x85d1, 0x3101, - 0x85d2, 0x2fa8, - 0x85d5, 0x15b7, - 0x85d7, 0x30f9, - 0x85d8, 0x30fd, - 0x85d9, 0x30f5, - 0x85da, 0x30f8, - 0x85dc, 0x3100, - 0x85dd, 0x15b5, - 0x85de, 0x3105, - 0x85df, 0x30fe, - 0x85e0, 0x476d, - 0x85e1, 0x30f6, - 0x85e2, 0x3106, - 0x85e3, 0x30ff, - 0x85e4, 0x15b8, - 0x85e6, 0x3103, - 0x85e8, 0x30f7, - 0x85e9, 0x15b4, - 0x85ea, 0x15b6, - 0x85eb, 0x30f2, - 0x85ec, 0x30fa, - 0x85ed, 0x30f4, - 0x85ee, 0x3c56, - 0x85ef, 0x3104, - 0x85f0, 0x3102, - 0x85f1, 0x30f3, - 0x85f2, 0x30fb, - 0x85f6, 0x3225, - 0x85f7, 0x15ba, - 0x85f8, 0x30fc, - 0x85f9, 0x1638, - 0x85fa, 0x163a, - 0x85fb, 0x1637, - 0x85fc, 0x3c50, - 0x85fd, 0x322a, - 0x85fe, 0x3222, - 0x85ff, 0x3220, - 0x8600, 0x3224, - 0x8601, 0x3221, - 0x8602, 0x3800, - 0x8604, 0x3226, - 0x8605, 0x3228, - 0x8606, 0x163b, - 0x8607, 0x163d, - 0x8609, 0x3227, - 0x860a, 0x163e, - 0x860b, 0x163c, - 0x860c, 0x3229, - 0x860d, 0x4064, - 0x8610, 0x3b7f, - 0x8611, 0x1639, - 0x8614, 0x46be, - 0x8616, 0x37fb, - 0x8617, 0x1685, - 0x8618, 0x32f6, - 0x8619, 0x32fc, - 0x861a, 0x1687, - 0x861b, 0x3223, - 0x861c, 0x32fb, - 0x861e, 0x3302, - 0x861f, 0x32f9, - 0x8620, 0x3300, - 0x8621, 0x32ff, - 0x8622, 0x321f, - 0x8623, 0x32fa, - 0x8624, 0x2fa9, - 0x8625, 0x3303, - 0x8626, 0x32f8, - 0x8627, 0x32fd, - 0x8628, 0x3805, - 0x8629, 0x3301, - 0x862a, 0x32f7, - 0x862c, 0x33aa, - 0x862d, 0x1686, - 0x862e, 0x32fe, - 0x862f, 0x3f9e, - 0x8631, 0x3432, - 0x8632, 0x33ab, - 0x8633, 0x33a9, - 0x8634, 0x33a7, - 0x8636, 0x33ac, - 0x8638, 0x1707, - 0x8639, 0x3430, - 0x863a, 0x342e, - 0x863b, 0x3433, - 0x863c, 0x3431, - 0x863e, 0x3434, - 0x863f, 0x1708, - 0x8640, 0x342f, - 0x8642, 0x38c1, - 0x8643, 0x3497, - 0x8645, 0x3b66, - 0x8646, 0x34df, - 0x864b, 0x353e, - 0x864c, 0x3536, - 0x864d, 0x1818, - 0x864e, 0x0689, - 0x8650, 0x07ff, - 0x8652, 0x1de3, - 0x8653, 0x1de2, - 0x8654, 0x09af, - 0x8655, 0x0b88, - 0x8656, 0x203c, - 0x8659, 0x203b, - 0x865b, 0x0d48, - 0x865c, 0x0eed, - 0x865e, 0x0eec, - 0x865f, 0x0eee, - 0x8661, 0x27ce, - 0x8662, 0x2a0e, - 0x8663, 0x2c5e, - 0x8664, 0x2c60, - 0x8665, 0x2c5f, - 0x8667, 0x1466, - 0x8668, 0x2e34, - 0x8669, 0x2fad, - 0x866a, 0x351e, - 0x866b, 0x040f, - 0x866c, 0x3813, - 0x866d, 0x1a46, - 0x866f, 0x1a45, - 0x8670, 0x1a44, - 0x8671, 0x068a, - 0x8672, 0x476f, - 0x8673, 0x1bfd, - 0x8674, 0x1bfb, - 0x8677, 0x1bfa, - 0x8679, 0x0800, - 0x867a, 0x0802, - 0x867b, 0x0801, - 0x867c, 0x1bfc, - 0x867e, 0x380a, - 0x8685, 0x1def, - 0x8686, 0x1dec, - 0x8687, 0x1dea, - 0x868a, 0x09b0, - 0x868b, 0x1ded, - 0x868c, 0x09b5, - 0x868d, 0x1de7, - 0x868e, 0x1df6, - 0x8690, 0x1df8, - 0x8691, 0x1de8, - 0x8692, 0x4770, - 0x8693, 0x09b2, - 0x8694, 0x1df9, - 0x8695, 0x1df4, - 0x8696, 0x1de6, - 0x8697, 0x1deb, - 0x8698, 0x1df5, - 0x8699, 0x1df1, - 0x869a, 0x1dee, - 0x869c, 0x09b7, - 0x869d, 0x1df7, - 0x869e, 0x1de9, - 0x86a0, 0x3b88, - 0x86a1, 0x1df2, - 0x86a2, 0x1de4, - 0x86a3, 0x09b6, - 0x86a4, 0x09b3, - 0x86a5, 0x1df0, - 0x86a7, 0x1df3, - 0x86a8, 0x1de5, - 0x86a9, 0x09b4, - 0x86aa, 0x09b1, - 0x86ad, 0x3f06, - 0x86af, 0x0b92, - 0x86b0, 0x2043, - 0x86b1, 0x0b91, - 0x86b2, 0x43e0, - 0x86b3, 0x2046, - 0x86b4, 0x2049, - 0x86b5, 0x0b8e, - 0x86b6, 0x0b8c, - 0x86b7, 0x203e, - 0x86b8, 0x2047, - 0x86b9, 0x2045, - 0x86ba, 0x2042, - 0x86bb, 0x204a, - 0x86bd, 0x204d, - 0x86bf, 0x203d, - 0x86c0, 0x0b8b, - 0x86c1, 0x2040, - 0x86c2, 0x203f, - 0x86c3, 0x204c, - 0x86c4, 0x0b8d, - 0x86c5, 0x2041, - 0x86c6, 0x0b8f, - 0x86c7, 0x0b8a, - 0x86c8, 0x2044, - 0x86c9, 0x0b93, - 0x86cb, 0x0b90, - 0x86cc, 0x2048, - 0x86d0, 0x0d4f, - 0x86d1, 0x22d2, - 0x86d3, 0x22c7, - 0x86d4, 0x0d4c, - 0x86d6, 0x256d, - 0x86d7, 0x22d0, - 0x86d8, 0x22c4, - 0x86d9, 0x0d4a, - 0x86da, 0x22c9, - 0x86db, 0x0d4d, - 0x86dc, 0x22cd, - 0x86dd, 0x22cb, - 0x86de, 0x0d50, - 0x86df, 0x0d49, - 0x86e2, 0x22c5, - 0x86e3, 0x22c8, - 0x86e4, 0x0d4e, - 0x86e6, 0x22c6, - 0x86e8, 0x22d1, - 0x86e9, 0x22cf, - 0x86ea, 0x22ca, - 0x86eb, 0x22cc, - 0x86ec, 0x22ce, - 0x86ed, 0x0d4b, - 0x86ef, 0x4771, - 0x86f5, 0x256e, - 0x86f6, 0x2574, - 0x86f7, 0x256a, - 0x86f8, 0x2570, - 0x86f9, 0x0eef, - 0x86fa, 0x256c, - 0x86fb, 0x0ef5, - 0x86fe, 0x0ef4, - 0x8700, 0x0ef3, - 0x8701, 0x2573, - 0x8702, 0x0ef6, - 0x8704, 0x2569, - 0x8705, 0x2576, - 0x8706, 0x0ef8, - 0x8707, 0x0ef2, - 0x8708, 0x0ef1, - 0x8709, 0x2572, - 0x870a, 0x0ef9, - 0x870b, 0x2568, - 0x870c, 0x256b, - 0x870d, 0x2575, - 0x870e, 0x2571, - 0x8711, 0x27ee, - 0x8712, 0x27e3, - 0x8713, 0x0ef0, - 0x8718, 0x1098, - 0x8719, 0x27d7, - 0x871a, 0x27ec, - 0x871b, 0x27d8, - 0x871c, 0x1093, - 0x871e, 0x27d5, - 0x8720, 0x27de, - 0x8721, 0x27d6, - 0x8722, 0x1095, - 0x8723, 0x27d0, - 0x8724, 0x27eb, - 0x8725, 0x1096, - 0x8726, 0x27e8, - 0x8728, 0x27d1, - 0x8729, 0x109b, - 0x872a, 0x27e0, - 0x872c, 0x27da, - 0x872d, 0x27e1, - 0x872e, 0x27d4, - 0x8730, 0x27ed, - 0x8731, 0x27e5, - 0x8732, 0x27df, - 0x8733, 0x27cf, - 0x8734, 0x1097, - 0x8735, 0x27e6, - 0x8737, 0x109a, - 0x8738, 0x27ea, - 0x873a, 0x27e4, - 0x873b, 0x1094, - 0x873c, 0x27e2, - 0x873e, 0x27dc, - 0x873f, 0x1092, - 0x8740, 0x27d3, - 0x8741, 0x27db, - 0x8742, 0x27e7, - 0x8743, 0x27d9, - 0x8746, 0x27dd, - 0x874c, 0x1208, - 0x874d, 0x256f, - 0x874e, 0x2a20, - 0x874f, 0x2a29, - 0x8750, 0x2a1f, - 0x8751, 0x2a1b, - 0x8752, 0x2a18, - 0x8753, 0x1209, - 0x8754, 0x2a16, - 0x8755, 0x1099, - 0x8756, 0x2a0f, - 0x8757, 0x1207, - 0x8758, 0x2a15, - 0x8759, 0x1206, - 0x875a, 0x2a1a, - 0x875b, 0x2a17, - 0x875c, 0x2a27, - 0x875d, 0x2a22, - 0x875e, 0x2a1c, - 0x875f, 0x2a21, - 0x8760, 0x1202, - 0x8761, 0x2a19, - 0x8762, 0x2a2c, - 0x8763, 0x2a10, - 0x8765, 0x2a28, - 0x8766, 0x1203, - 0x8767, 0x2a2d, - 0x8768, 0x1205, - 0x8769, 0x2a2e, - 0x876a, 0x2a1e, - 0x876b, 0x27d2, - 0x876c, 0x2a24, - 0x876d, 0x2a1d, - 0x876e, 0x2a26, - 0x876f, 0x2a23, - 0x8770, 0x3e6c, - 0x8771, 0x380b, - 0x8773, 0x2a14, - 0x8774, 0x1200, - 0x8775, 0x2a2b, - 0x8776, 0x1201, - 0x8777, 0x2a12, - 0x8778, 0x1204, - 0x8779, 0x2c6b, - 0x877a, 0x2a25, - 0x877b, 0x2a2a, - 0x877d, 0x4045, - 0x8781, 0x2c68, - 0x8782, 0x11ff, - 0x8783, 0x1340, - 0x8784, 0x2c72, - 0x8785, 0x2c6e, - 0x8786, 0x3eb0, - 0x8787, 0x2c6c, - 0x8788, 0x2c67, - 0x8789, 0x2c76, - 0x878b, 0x43e2, - 0x878c, 0x3fef, - 0x878d, 0x1344, - 0x878f, 0x2c63, - 0x8790, 0x2c6f, - 0x8792, 0x2c66, - 0x8793, 0x2c65, - 0x8794, 0x2c73, - 0x8796, 0x2c69, - 0x8797, 0x2c64, - 0x8798, 0x2c6a, - 0x879a, 0x2c75, - 0x879b, 0x2c62, - 0x879c, 0x2c74, - 0x879d, 0x2c71, - 0x879e, 0x1342, - 0x879f, 0x1341, - 0x87a2, 0x1343, - 0x87a3, 0x2c6d, - 0x87a4, 0x2c61, - 0x87a5, 0x3d88, - 0x87a9, 0x3fec, - 0x87aa, 0x2e36, - 0x87ab, 0x146c, - 0x87ac, 0x2e3a, - 0x87ad, 0x2e37, - 0x87ae, 0x2e3e, - 0x87af, 0x2e44, - 0x87b0, 0x2e39, - 0x87b1, 0x380f, - 0x87b2, 0x2e4d, - 0x87b3, 0x1469, - 0x87b4, 0x2e47, - 0x87b5, 0x2e3c, - 0x87b6, 0x2e48, - 0x87b7, 0x2e43, - 0x87b8, 0x2e4a, - 0x87b9, 0x2e3b, - 0x87ba, 0x146e, - 0x87bb, 0x146d, - 0x87bc, 0x2e3d, - 0x87bd, 0x2e4b, - 0x87be, 0x2e35, - 0x87bf, 0x2e49, - 0x87c0, 0x1467, - 0x87c1, 0x3ffc, - 0x87c2, 0x2e41, - 0x87c3, 0x2e40, - 0x87c4, 0x2e45, - 0x87c5, 0x2e38, - 0x87c6, 0x146b, - 0x87c8, 0x146f, - 0x87c9, 0x2e3f, - 0x87ca, 0x2e46, - 0x87cb, 0x1470, - 0x87cc, 0x2e42, - 0x87ce, 0x3fed, - 0x87d1, 0x1468, - 0x87d2, 0x146a, - 0x87d3, 0x2fba, - 0x87d4, 0x2fb8, - 0x87d6, 0x3f92, - 0x87d7, 0x2fbe, - 0x87d8, 0x2fbc, - 0x87d9, 0x2fbf, - 0x87da, 0x3810, - 0x87db, 0x2fb1, - 0x87dc, 0x2fb9, - 0x87dd, 0x2fc3, - 0x87de, 0x2e4c, - 0x87df, 0x2fb5, - 0x87e0, 0x1526, - 0x87e1, 0x2a13, - 0x87e2, 0x2fb0, - 0x87e3, 0x2fbd, - 0x87e4, 0x2fb7, - 0x87e5, 0x2fb4, - 0x87e6, 0x2faf, - 0x87e7, 0x2fae, - 0x87e8, 0x2fc2, - 0x87ea, 0x2fb3, - 0x87eb, 0x2fb2, - 0x87ec, 0x1524, - 0x87ed, 0x2fbb, - 0x87ee, 0x380d, - 0x87ef, 0x1523, - 0x87f2, 0x1525, - 0x87f3, 0x2fb6, - 0x87f4, 0x2fc1, - 0x87f5, 0x3fae, - 0x87f6, 0x310a, - 0x87f9, 0x15be, - 0x87fa, 0x3108, - 0x87fb, 0x15bb, - 0x87fc, 0x3110, - 0x87fe, 0x15bf, - 0x87ff, 0x3112, - 0x8800, 0x3107, - 0x8801, 0x2fc0, - 0x8802, 0x3114, - 0x8803, 0x3109, - 0x8804, 0x3eaf, - 0x8805, 0x15bc, - 0x8806, 0x310f, - 0x8808, 0x3111, - 0x8809, 0x310c, - 0x880a, 0x3113, - 0x880b, 0x310e, - 0x880c, 0x310d, - 0x880d, 0x15bd, - 0x880f, 0x3811, - 0x8810, 0x322c, - 0x8813, 0x322f, - 0x8814, 0x163f, - 0x8816, 0x3230, - 0x8817, 0x322e, - 0x8818, 0x3f7a, - 0x8819, 0x322b, - 0x881b, 0x3306, - 0x881c, 0x3309, - 0x881d, 0x3305, - 0x881f, 0x168b, - 0x8820, 0x3307, - 0x8821, 0x168a, - 0x8822, 0x1689, - 0x8823, 0x1688, - 0x8824, 0x3308, - 0x8825, 0x33b1, - 0x8826, 0x33af, - 0x8827, 0x3e07, - 0x8828, 0x33ae, - 0x8829, 0x3304, - 0x882a, 0x33b0, - 0x882b, 0x330a, - 0x882c, 0x33ad, - 0x882d, 0x3b8b, - 0x882e, 0x3437, - 0x882f, 0x3415, - 0x8830, 0x3435, - 0x8831, 0x1709, - 0x8832, 0x3436, - 0x8833, 0x3438, - 0x8835, 0x349a, - 0x8836, 0x1728, - 0x8837, 0x3499, - 0x8838, 0x3498, - 0x8839, 0x1729, - 0x883b, 0x1747, - 0x883c, 0x3508, - 0x883d, 0x3520, - 0x883e, 0x351f, - 0x883f, 0x3521, - 0x8840, 0x0410, - 0x8841, 0x1bfe, - 0x8842, 0x3f5a, - 0x8843, 0x1dfa, - 0x8845, 0x3816, - 0x8848, 0x22d3, - 0x884a, 0x330b, - 0x884b, 0x349b, - 0x884c, 0x0411, - 0x884d, 0x0803, - 0x884e, 0x1bff, - 0x884f, 0x3844, - 0x8852, 0x204f, - 0x8853, 0x0b94, - 0x8855, 0x22d5, - 0x8856, 0x22d4, - 0x8857, 0x0d51, - 0x8859, 0x0efa, - 0x885a, 0x2a2f, - 0x885b, 0x120a, - 0x885d, 0x120b, - 0x885e, 0x381b, - 0x8860, 0x3a46, - 0x8861, 0x1345, - 0x8862, 0x172a, - 0x8863, 0x0412, - 0x8864, 0x4502, - 0x8865, 0x3dfc, - 0x8867, 0x1c00, - 0x8868, 0x068c, - 0x8869, 0x1c02, - 0x886a, 0x1c01, - 0x886b, 0x0804, - 0x886d, 0x1dfc, - 0x886e, 0x3b8e, - 0x886f, 0x1e03, - 0x8870, 0x09b8, - 0x8871, 0x1e01, - 0x8872, 0x1dff, - 0x8874, 0x1e06, - 0x8875, 0x1dfd, - 0x8877, 0x09b9, - 0x8879, 0x09bd, - 0x887c, 0x1e07, - 0x887d, 0x09bc, - 0x887e, 0x1e05, - 0x887f, 0x1e02, - 0x8880, 0x1e00, - 0x8881, 0x09ba, - 0x8883, 0x1e04, - 0x8884, 0x42f7, - 0x8887, 0x3b90, - 0x8888, 0x0b96, - 0x8889, 0x2050, - 0x888b, 0x0b9b, - 0x888c, 0x2060, - 0x888d, 0x0b9a, - 0x888e, 0x2062, - 0x8891, 0x2056, - 0x8892, 0x0b98, - 0x8893, 0x2061, - 0x8895, 0x2051, - 0x8896, 0x0b99, - 0x8897, 0x205d, - 0x8898, 0x2059, - 0x8899, 0x205b, - 0x889a, 0x2055, - 0x889b, 0x205c, - 0x889c, 0x381c, - 0x889e, 0x0b95, - 0x889f, 0x2058, - 0x88a0, 0x3fa0, - 0x88a1, 0x2057, - 0x88a2, 0x2053, - 0x88a4, 0x205e, - 0x88a7, 0x205a, - 0x88a8, 0x2052, - 0x88aa, 0x2054, - 0x88ab, 0x0b97, - 0x88ac, 0x205f, - 0x88ae, 0x4775, - 0x88b1, 0x0d54, - 0x88b2, 0x22e0, - 0x88b4, 0x381e, - 0x88b6, 0x22dc, - 0x88b7, 0x22de, - 0x88b8, 0x22d9, - 0x88b9, 0x22d8, - 0x88ba, 0x22d6, - 0x88bc, 0x22dd, - 0x88bd, 0x22df, - 0x88be, 0x22db, - 0x88bf, 0x3b91, - 0x88c0, 0x22da, - 0x88c1, 0x0d52, - 0x88c5, 0x3820, - 0x88c7, 0x3eb1, - 0x88c9, 0x22e2, - 0x88ca, 0x0f02, - 0x88cb, 0x2578, - 0x88cc, 0x257e, - 0x88cd, 0x2579, - 0x88cf, 0x36ea, - 0x88d0, 0x257f, - 0x88d2, 0x0f04, - 0x88d4, 0x0efc, - 0x88d5, 0x0f03, - 0x88d6, 0x2577, - 0x88d7, 0x22d7, - 0x88d8, 0x0eff, - 0x88d9, 0x0efd, - 0x88da, 0x257d, - 0x88db, 0x257c, - 0x88dc, 0x0efe, - 0x88dd, 0x0f00, - 0x88de, 0x257b, - 0x88df, 0x0efb, - 0x88e1, 0x0f01, - 0x88e6, 0x3b92, - 0x88e7, 0x27f0, - 0x88e8, 0x10a2, - 0x88eb, 0x27fb, - 0x88ec, 0x27fa, - 0x88ee, 0x27f5, - 0x88ef, 0x10a4, - 0x88f0, 0x27f9, - 0x88f1, 0x27f1, - 0x88f3, 0x109c, - 0x88f4, 0x109e, - 0x88f5, 0x3e08, - 0x88f6, 0x27f7, - 0x88f7, 0x27ef, - 0x88f8, 0x10a0, - 0x88f9, 0x109f, - 0x88fa, 0x27f3, - 0x88fb, 0x27f8, - 0x88fc, 0x27f6, - 0x88fd, 0x10a1, - 0x88fe, 0x27f4, - 0x88ff, 0x4776, - 0x8900, 0x42fa, - 0x8901, 0x22e1, - 0x8902, 0x109d, - 0x8905, 0x2a30, - 0x8906, 0x2a37, - 0x8907, 0x120d, - 0x8909, 0x2a3b, - 0x890a, 0x1211, - 0x890b, 0x2a33, - 0x890c, 0x2a31, - 0x890e, 0x2a3a, - 0x8910, 0x120c, - 0x8911, 0x2a39, - 0x8912, 0x120e, - 0x8914, 0x2a32, - 0x8915, 0x1210, - 0x8916, 0x2a38, - 0x8917, 0x2a34, - 0x891a, 0x10a3, - 0x891e, 0x2c77, - 0x891f, 0x2c83, - 0x8921, 0x134a, - 0x8922, 0x2c7e, - 0x8923, 0x2c80, - 0x8924, 0x4777, - 0x8925, 0x1348, - 0x8926, 0x2c78, - 0x8927, 0x2c7c, - 0x8929, 0x2c7f, - 0x892a, 0x1346, - 0x892b, 0x1349, - 0x892c, 0x2c82, - 0x892d, 0x2c7a, - 0x892f, 0x2c81, - 0x8930, 0x2c79, - 0x8931, 0x2c7d, - 0x8932, 0x1347, - 0x8933, 0x2e4f, - 0x8935, 0x2e4e, - 0x8936, 0x1472, - 0x8937, 0x2e54, - 0x8938, 0x1474, - 0x893b, 0x1471, - 0x893c, 0x2e50, - 0x893d, 0x1475, - 0x893e, 0x2e51, - 0x8941, 0x2e52, - 0x8942, 0x2e55, - 0x8943, 0x3e16, - 0x8944, 0x1473, - 0x8946, 0x2fc8, - 0x8947, 0x43e3, - 0x8949, 0x2fcb, - 0x894b, 0x2fc5, - 0x894c, 0x2fc7, - 0x894d, 0x3b94, - 0x894f, 0x2fc6, - 0x8950, 0x2fc9, - 0x8952, 0x2e53, - 0x8953, 0x2fc4, - 0x8954, 0x3b96, - 0x8956, 0x15c2, - 0x8957, 0x3118, - 0x8958, 0x311b, - 0x8959, 0x311d, - 0x895a, 0x3116, - 0x895c, 0x311a, - 0x895d, 0x311c, - 0x895e, 0x15c3, - 0x895f, 0x15c1, - 0x8960, 0x15c0, - 0x8961, 0x3119, - 0x8962, 0x3115, - 0x8963, 0x3231, - 0x8964, 0x1641, - 0x8965, 0x3b93, - 0x8966, 0x3232, - 0x8969, 0x330d, - 0x896a, 0x168c, - 0x896b, 0x330f, - 0x896c, 0x168d, - 0x896d, 0x330c, - 0x896e, 0x330e, - 0x896f, 0x16d6, - 0x8971, 0x33b2, - 0x8972, 0x16d5, - 0x8973, 0x343b, - 0x8974, 0x343a, - 0x8976, 0x3439, - 0x8977, 0x3dea, - 0x8979, 0x34e2, - 0x897b, 0x34e5, - 0x897c, 0x34e4, - 0x897e, 0x1819, - 0x897f, 0x0413, - 0x8980, 0x4708, - 0x8981, 0x0805, - 0x8982, 0x2063, - 0x8983, 0x0d55, - 0x8985, 0x2580, - 0x8986, 0x1527, - 0x8987, 0x3822, - 0x8988, 0x311e, - 0x8989, 0x3fe9, - 0x898a, 0x3823, - 0x898b, 0x0508, - 0x898f, 0x0b9d, - 0x8991, 0x4778, - 0x8993, 0x0b9c, - 0x8994, 0x3fe0, - 0x8995, 0x22e3, - 0x8996, 0x0d56, - 0x8997, 0x22e5, - 0x8998, 0x22e4, - 0x899b, 0x2581, - 0x899c, 0x0f05, - 0x899d, 0x27fc, - 0x899e, 0x27ff, - 0x899f, 0x27fe, - 0x89a1, 0x27fd, - 0x89a2, 0x2a3c, - 0x89a3, 0x2a3e, - 0x89a4, 0x2a3d, - 0x89a5, 0x3d93, - 0x89a6, 0x134c, - 0x89a7, 0x3826, - 0x89a9, 0x3825, - 0x89aa, 0x134b, - 0x89ac, 0x1476, - 0x89ad, 0x2e56, - 0x89ae, 0x2e58, - 0x89af, 0x2e57, - 0x89b2, 0x1528, - 0x89b6, 0x3120, - 0x89b7, 0x311f, - 0x89b9, 0x3233, - 0x89ba, 0x1642, - 0x89bc, 0x3827, - 0x89bd, 0x168e, - 0x89be, 0x33b4, - 0x89bf, 0x33b3, - 0x89c0, 0x1748, - 0x89c1, 0x4503, - 0x89c6, 0x4566, - 0x89d2, 0x0509, - 0x89d3, 0x1c03, - 0x89d4, 0x0806, - 0x89d5, 0x2066, - 0x89d6, 0x2064, - 0x89d9, 0x2065, - 0x89da, 0x22e7, - 0x89dc, 0x2588, - 0x89dd, 0x22e6, - 0x89df, 0x2582, - 0x89e0, 0x2586, - 0x89e1, 0x2585, - 0x89e2, 0x2587, - 0x89e3, 0x0f06, - 0x89e4, 0x2584, - 0x89e5, 0x2583, - 0x89e6, 0x2589, - 0x89e7, 0x3829, - 0x89e8, 0x2802, - 0x89e9, 0x2800, - 0x89eb, 0x2801, - 0x89ec, 0x2a41, - 0x89ed, 0x2a3f, - 0x89f0, 0x2a40, - 0x89f1, 0x2c84, - 0x89f2, 0x2e59, - 0x89f4, 0x1529, - 0x89f6, 0x3121, - 0x89f7, 0x3234, - 0x89f8, 0x1643, - 0x89fa, 0x3310, - 0x89fb, 0x33b5, - 0x89fc, 0x16d7, - 0x89fe, 0x343c, - 0x89ff, 0x34e6, - 0x8a00, 0x050a, - 0x8a02, 0x0808, - 0x8a04, 0x1c04, - 0x8a07, 0x1c05, - 0x8a08, 0x0807, - 0x8a0a, 0x09c3, - 0x8a0c, 0x09c1, - 0x8a0e, 0x09c0, - 0x8a0f, 0x09c7, - 0x8a10, 0x09bf, - 0x8a11, 0x09c8, - 0x8a12, 0x1e08, - 0x8a13, 0x09c5, - 0x8a15, 0x09c2, - 0x8a16, 0x09c6, - 0x8a17, 0x09c4, - 0x8a18, 0x09be, - 0x8a1b, 0x0ba5, - 0x8a1c, 0x3ba3, - 0x8a1d, 0x0b9f, - 0x8a1e, 0x206a, - 0x8a1f, 0x0ba4, - 0x8a22, 0x0ba6, - 0x8a23, 0x0ba0, - 0x8a25, 0x0ba1, - 0x8a27, 0x2068, - 0x8a29, 0x43e5, - 0x8a2a, 0x0b9e, - 0x8a2b, 0x3bd1, - 0x8a2c, 0x2069, - 0x8a2d, 0x0ba3, - 0x8a30, 0x2067, - 0x8a31, 0x0ba2, - 0x8a34, 0x0d61, - 0x8a36, 0x0d63, - 0x8a38, 0x477a, - 0x8a39, 0x22eb, - 0x8a3a, 0x0d62, - 0x8a3b, 0x0d57, - 0x8a3c, 0x0d5b, - 0x8a3d, 0x3ba2, - 0x8a3e, 0x0f19, - 0x8a3f, 0x258e, - 0x8a40, 0x22ed, - 0x8a41, 0x0d5c, - 0x8a44, 0x22f0, - 0x8a46, 0x0d60, - 0x8a48, 0x22f3, - 0x8a49, 0x3ff0, - 0x8a4a, 0x22f5, - 0x8a4c, 0x22f6, - 0x8a4d, 0x22ea, - 0x8a4e, 0x22e9, - 0x8a4f, 0x22f7, - 0x8a50, 0x0d5f, - 0x8a51, 0x22f4, - 0x8a52, 0x22f2, - 0x8a54, 0x0d5d, - 0x8a55, 0x0d59, - 0x8a56, 0x0d64, - 0x8a57, 0x22ee, - 0x8a59, 0x22ec, - 0x8a5b, 0x0d5e, - 0x8a5e, 0x0d5a, - 0x8a60, 0x0d58, - 0x8a61, 0x258d, - 0x8a62, 0x0f14, - 0x8a63, 0x0f0f, - 0x8a66, 0x0f0a, - 0x8a67, 0x3f8e, - 0x8a68, 0x0f1a, - 0x8a69, 0x0f0b, - 0x8a6b, 0x0f07, - 0x8a6c, 0x0f16, - 0x8a6d, 0x0f13, - 0x8a6e, 0x0f15, - 0x8a70, 0x0f0c, - 0x8a71, 0x0f11, - 0x8a72, 0x0f08, - 0x8a74, 0x2595, - 0x8a75, 0x2592, - 0x8a76, 0x258a, - 0x8a77, 0x258f, - 0x8a79, 0x0f17, - 0x8a7a, 0x2596, - 0x8a7b, 0x0f18, - 0x8a7c, 0x0f0e, - 0x8a7e, 0x3fa5, - 0x8a7f, 0x258c, - 0x8a81, 0x2594, - 0x8a82, 0x2590, - 0x8a83, 0x2593, - 0x8a84, 0x2591, - 0x8a85, 0x0f12, - 0x8a86, 0x258b, - 0x8a87, 0x0f0d, - 0x8a8b, 0x2805, - 0x8a8c, 0x10a6, - 0x8a8d, 0x10a9, - 0x8a8f, 0x2807, - 0x8a90, 0x382f, - 0x8a91, 0x10b1, - 0x8a92, 0x2806, - 0x8a93, 0x10ab, - 0x8a94, 0x477b, - 0x8a95, 0x1216, - 0x8a96, 0x2808, - 0x8a98, 0x10b0, - 0x8a99, 0x2804, - 0x8a9a, 0x10b2, - 0x8a9c, 0x382c, - 0x8a9e, 0x10a7, - 0x8aa0, 0x0f10, - 0x8aa1, 0x10aa, - 0x8aa3, 0x10a8, - 0x8aa4, 0x10ac, - 0x8aa5, 0x10ae, - 0x8aa6, 0x10a5, - 0x8aa7, 0x10b3, - 0x8aa8, 0x10af, - 0x8aa9, 0x383d, - 0x8aaa, 0x10ad, - 0x8aab, 0x2803, - 0x8aaf, 0x3841, - 0x8ab0, 0x121d, - 0x8ab2, 0x1219, - 0x8ab4, 0x477c, - 0x8ab6, 0x1220, - 0x8ab8, 0x2a44, - 0x8ab9, 0x1221, - 0x8aba, 0x2a50, - 0x8abb, 0x2a49, - 0x8abc, 0x1212, - 0x8abd, 0x2a51, - 0x8abe, 0x2a4b, - 0x8abf, 0x121c, - 0x8ac0, 0x2a4c, - 0x8ac2, 0x121b, - 0x8ac3, 0x2a4f, - 0x8ac4, 0x1215, - 0x8ac5, 0x2a4d, - 0x8ac6, 0x2a43, - 0x8ac7, 0x1214, - 0x8ac8, 0x2c8f, - 0x8ac9, 0x121a, - 0x8acb, 0x1217, - 0x8acd, 0x121f, - 0x8acf, 0x2a42, - 0x8ad1, 0x2a46, - 0x8ad2, 0x1213, - 0x8ad3, 0x2a45, - 0x8ad4, 0x2a47, - 0x8ad6, 0x121e, - 0x8ad7, 0x2a4a, - 0x8ad8, 0x2a4e, - 0x8ad9, 0x2a52, - 0x8ada, 0x39c2, - 0x8adb, 0x1222, - 0x8adc, 0x1352, - 0x8add, 0x2c8a, - 0x8ade, 0x2c90, - 0x8adf, 0x2c8d, - 0x8ae0, 0x2c85, - 0x8ae1, 0x2c91, - 0x8ae2, 0x2c86, - 0x8ae4, 0x2c8c, - 0x8ae6, 0x134d, - 0x8ae7, 0x1353, - 0x8ae8, 0x2c92, - 0x8aea, 0x3dd9, - 0x8aeb, 0x134f, - 0x8aed, 0x1359, - 0x8aee, 0x1354, - 0x8aef, 0x2c94, - 0x8af0, 0x2c8e, - 0x8af1, 0x1350, - 0x8af2, 0x2c87, - 0x8af3, 0x135a, - 0x8af4, 0x2c88, - 0x8af6, 0x135b, - 0x8af7, 0x1358, - 0x8af8, 0x1218, - 0x8afa, 0x134e, - 0x8afb, 0x2c95, - 0x8afc, 0x135c, - 0x8afe, 0x1355, - 0x8aff, 0x2c93, - 0x8b00, 0x1351, - 0x8b01, 0x1356, - 0x8b04, 0x147e, - 0x8b05, 0x2e5f, - 0x8b06, 0x2e68, - 0x8b07, 0x2e65, - 0x8b08, 0x2e67, - 0x8b0a, 0x147b, - 0x8b0b, 0x2e60, - 0x8b0c, 0x3836, - 0x8b0d, 0x2e66, - 0x8b0e, 0x1477, - 0x8b0f, 0x2e62, - 0x8b10, 0x147f, - 0x8b11, 0x2e5e, - 0x8b12, 0x2e63, - 0x8b13, 0x2e6a, - 0x8b14, 0x2c8b, - 0x8b15, 0x2e64, - 0x8b16, 0x2e5d, - 0x8b17, 0x1478, - 0x8b18, 0x2e5c, - 0x8b19, 0x1479, - 0x8b1a, 0x2e6b, - 0x8b1b, 0x147a, - 0x8b1c, 0x2e69, - 0x8b1d, 0x147d, - 0x8b1e, 0x2e5b, - 0x8b1f, 0x3837, - 0x8b20, 0x147c, - 0x8b22, 0x2e61, - 0x8b23, 0x2fce, - 0x8b24, 0x2fdc, - 0x8b25, 0x2fd7, - 0x8b26, 0x2fd9, - 0x8b27, 0x2fcd, - 0x8b28, 0x152a, - 0x8b2a, 0x2fcc, - 0x8b2b, 0x152d, - 0x8b2c, 0x152c, - 0x8b2d, 0x3f99, - 0x8b2e, 0x2fdb, - 0x8b2f, 0x2fd3, - 0x8b30, 0x2fd0, - 0x8b31, 0x2fd6, - 0x8b33, 0x2fcf, - 0x8b35, 0x2fd1, - 0x8b36, 0x2fda, - 0x8b37, 0x2fd8, - 0x8b39, 0x152b, - 0x8b3a, 0x2fdf, - 0x8b3b, 0x2fdd, - 0x8b3c, 0x2fd4, - 0x8b3d, 0x2fde, - 0x8b3e, 0x2fd5, - 0x8b3f, 0x383a, - 0x8b40, 0x3125, - 0x8b41, 0x15c4, - 0x8b42, 0x312c, - 0x8b43, 0x3ff2, - 0x8b45, 0x3313, - 0x8b46, 0x15cb, - 0x8b47, 0x2fd2, - 0x8b48, 0x3123, - 0x8b49, 0x15c7, - 0x8b4a, 0x3124, - 0x8b4b, 0x3129, - 0x8b4c, 0x383b, - 0x8b4e, 0x15c9, - 0x8b50, 0x3122, - 0x8b51, 0x312b, - 0x8b52, 0x312d, - 0x8b53, 0x3126, - 0x8b54, 0x3128, - 0x8b55, 0x312a, - 0x8b56, 0x3127, - 0x8b57, 0x312e, - 0x8b58, 0x15c6, - 0x8b59, 0x15cc, - 0x8b5a, 0x15c8, - 0x8b5c, 0x15c5, - 0x8b5d, 0x3237, - 0x8b5e, 0x3db8, - 0x8b5f, 0x1648, - 0x8b60, 0x3235, - 0x8b62, 0x3dd4, - 0x8b63, 0x3239, - 0x8b65, 0x323a, - 0x8b66, 0x1646, - 0x8b67, 0x323b, - 0x8b68, 0x3238, - 0x8b69, 0x3bf7, - 0x8b6a, 0x3236, - 0x8b6b, 0x1649, - 0x8b6c, 0x1645, - 0x8b6d, 0x323c, - 0x8b6f, 0x1647, - 0x8b70, 0x1644, - 0x8b74, 0x168f, - 0x8b77, 0x1690, - 0x8b78, 0x3312, - 0x8b79, 0x3311, - 0x8b7a, 0x3314, - 0x8b7d, 0x1691, - 0x8b7e, 0x33b6, - 0x8b7f, 0x33bb, - 0x8b80, 0x16d8, - 0x8b81, 0x3d8d, - 0x8b82, 0x33b8, - 0x8b84, 0x33b7, - 0x8b85, 0x33ba, - 0x8b86, 0x33b9, - 0x8b88, 0x3440, - 0x8b8a, 0x170a, - 0x8b8b, 0x343f, - 0x8b8c, 0x343d, - 0x8b8e, 0x343e, - 0x8b90, 0x383f, - 0x8b92, 0x172c, - 0x8b93, 0x172b, - 0x8b94, 0x349c, - 0x8b96, 0x172d, - 0x8b98, 0x34e7, - 0x8b9a, 0x1754, - 0x8b9b, 0x3840, - 0x8b9c, 0x175a, - 0x8b9e, 0x3522, - 0x8b9f, 0x353f, - 0x8ba0, 0x4505, - 0x8bbe, 0x4567, - 0x8be2, 0x4568, - 0x8c37, 0x050b, - 0x8c39, 0x206b, - 0x8c3b, 0x206c, - 0x8c3c, 0x2597, - 0x8c3d, 0x2809, - 0x8c3e, 0x2a53, - 0x8c3f, 0x1481, - 0x8c41, 0x1480, - 0x8c42, 0x2fe0, - 0x8c43, 0x312f, - 0x8c45, 0x3441, - 0x8c46, 0x050c, - 0x8c47, 0x1e09, - 0x8c48, 0x09c9, - 0x8c49, 0x0ba7, - 0x8c4a, 0x2599, - 0x8c4b, 0x2598, - 0x8c4c, 0x1223, - 0x8c4d, 0x2a54, - 0x8c4e, 0x1224, - 0x8c4f, 0x2e6c, - 0x8c50, 0x152e, - 0x8c51, 0x477d, - 0x8c54, 0x1763, - 0x8c55, 0x050d, - 0x8c56, 0x1a48, - 0x8c57, 0x1e0a, - 0x8c5a, 0x0ba8, - 0x8c5c, 0x206d, - 0x8c5f, 0x22f8, - 0x8c61, 0x0d65, - 0x8c62, 0x0f1b, - 0x8c64, 0x259b, - 0x8c65, 0x259a, - 0x8c66, 0x259c, - 0x8c68, 0x280a, - 0x8c6a, 0x10b4, - 0x8c6b, 0x135d, - 0x8c6c, 0x1225, - 0x8c6d, 0x135e, - 0x8c6f, 0x2e70, - 0x8c70, 0x2e6d, - 0x8c71, 0x2e6f, - 0x8c72, 0x2e6e, - 0x8c73, 0x1482, - 0x8c75, 0x2fe1, - 0x8c76, 0x3131, - 0x8c77, 0x3130, - 0x8c78, 0x18e7, - 0x8c79, 0x09cb, - 0x8c7a, 0x09ca, - 0x8c7b, 0x1e0b, - 0x8c7d, 0x206f, - 0x8c80, 0x22fa, - 0x8c81, 0x22f9, - 0x8c82, 0x0d66, - 0x8c84, 0x259e, - 0x8c86, 0x259d, - 0x8c89, 0x0f1d, - 0x8c8a, 0x0f1c, - 0x8c8c, 0x10b6, - 0x8c8d, 0x10b5, - 0x8c8f, 0x2a55, - 0x8c90, 0x2c98, - 0x8c91, 0x2c96, - 0x8c93, 0x135f, - 0x8c94, 0x2e72, - 0x8c95, 0x2e71, - 0x8c97, 0x2fe4, - 0x8c98, 0x2fe3, - 0x8c99, 0x2fe2, - 0x8c9a, 0x3132, - 0x8c9b, 0x3845, - 0x8c9c, 0x3523, - 0x8c9d, 0x050e, - 0x8c9e, 0x080a, - 0x8c9f, 0x3bad, - 0x8ca0, 0x080b, - 0x8ca1, 0x09cc, - 0x8ca3, 0x1e0d, - 0x8ca4, 0x1e0c, - 0x8ca5, 0x2070, - 0x8ca7, 0x0bae, - 0x8ca8, 0x0bac, - 0x8ca9, 0x0ba9, - 0x8caa, 0x0bad, - 0x8cab, 0x0bab, - 0x8cac, 0x0baa, - 0x8cad, 0x3ff1, - 0x8caf, 0x0d67, - 0x8cb0, 0x22fd, - 0x8cb2, 0x0f22, - 0x8cb3, 0x0d69, - 0x8cb4, 0x0d6e, - 0x8cb5, 0x22ff, - 0x8cb6, 0x0d70, - 0x8cb7, 0x0d6f, - 0x8cb8, 0x0d72, - 0x8cb9, 0x22fe, - 0x8cba, 0x22fb, - 0x8cbb, 0x0d6c, - 0x8cbc, 0x0d68, - 0x8cbd, 0x0d6a, - 0x8cbe, 0x22fc, - 0x8cbf, 0x0d71, - 0x8cc0, 0x0d6d, - 0x8cc1, 0x0d6b, - 0x8cc2, 0x0f24, - 0x8cc3, 0x0f23, - 0x8cc4, 0x0f21, - 0x8cc5, 0x0f25, - 0x8cc7, 0x0f1f, - 0x8cca, 0x0f1e, - 0x8ccc, 0x25a0, - 0x8ccd, 0x3e99, - 0x8ccf, 0x280d, - 0x8cd1, 0x10b8, - 0x8cd3, 0x10b7, - 0x8cd4, 0x477e, - 0x8cd5, 0x280c, - 0x8cd6, 0x384b, - 0x8cd7, 0x280e, - 0x8cd9, 0x2a58, - 0x8cda, 0x2a5a, - 0x8cdb, 0x3851, - 0x8cdc, 0x122e, - 0x8cdd, 0x2a5b, - 0x8cde, 0x1227, - 0x8cdf, 0x2a57, - 0x8ce0, 0x1226, - 0x8ce1, 0x1230, - 0x8ce2, 0x122c, - 0x8ce4, 0x1229, - 0x8ce5, 0x2a56, - 0x8ce6, 0x1228, - 0x8ce7, 0x2a5c, - 0x8ce8, 0x2a59, - 0x8ce9, 0x3bae, - 0x8cea, 0x122f, - 0x8ceb, 0x3f9c, - 0x8cec, 0x122a, - 0x8cee, 0x2c9a, - 0x8cf0, 0x2c9c, - 0x8cf1, 0x2c9b, - 0x8cf2, 0x477f, - 0x8cf3, 0x2c9d, - 0x8cf4, 0x1360, - 0x8cf5, 0x2c99, - 0x8cf7, 0x3fb1, - 0x8cf8, 0x1486, - 0x8cf9, 0x2e73, - 0x8cfa, 0x1483, - 0x8cfb, 0x1487, - 0x8cfc, 0x1485, - 0x8cfd, 0x1484, - 0x8cfe, 0x2fe5, - 0x8d00, 0x2fe8, - 0x8d02, 0x2fe7, - 0x8d03, 0x384f, - 0x8d04, 0x2fe6, - 0x8d05, 0x152f, - 0x8d06, 0x3133, - 0x8d08, 0x15cd, - 0x8d09, 0x3135, - 0x8d0a, 0x15ce, - 0x8d0b, 0x4573, - 0x8d0c, 0x3f96, - 0x8d0d, 0x164b, - 0x8d0f, 0x164a, - 0x8d10, 0x3316, - 0x8d11, 0x3853, - 0x8d12, 0x384e, - 0x8d13, 0x1692, - 0x8d14, 0x3317, - 0x8d15, 0x33bc, - 0x8d16, 0x16d9, - 0x8d18, 0x3e6f, - 0x8d19, 0x3442, - 0x8d1b, 0x172f, - 0x8d1c, 0x4780, - 0x8d1d, 0x4506, - 0x8d64, 0x050f, - 0x8d66, 0x0bb0, - 0x8d67, 0x0baf, - 0x8d68, 0x25a1, - 0x8d6b, 0x10ba, - 0x8d6c, 0x2c9e, - 0x8d6d, 0x1231, - 0x8d6e, 0x2c9f, - 0x8d6f, 0x2e74, - 0x8d70, 0x0510, - 0x8d72, 0x1c06, - 0x8d73, 0x080d, - 0x8d74, 0x080c, - 0x8d76, 0x1e0e, - 0x8d77, 0x09ce, - 0x8d78, 0x1e0f, - 0x8d79, 0x2073, - 0x8d7a, 0x39e1, - 0x8d7b, 0x2072, - 0x8d7d, 0x2071, - 0x8d80, 0x2301, - 0x8d81, 0x0d75, - 0x8d82, 0x3f69, - 0x8d84, 0x2300, - 0x8d85, 0x0d74, - 0x8d89, 0x2302, - 0x8d8a, 0x0d73, - 0x8d8c, 0x25a4, - 0x8d8d, 0x25a7, - 0x8d8e, 0x25a5, - 0x8d90, 0x25aa, - 0x8d91, 0x25a3, - 0x8d92, 0x25ab, - 0x8d93, 0x25a8, - 0x8d95, 0x10bc, - 0x8d96, 0x280f, - 0x8d99, 0x10bb, - 0x8d9b, 0x2a60, - 0x8d9c, 0x2a5e, - 0x8d9f, 0x1232, - 0x8da0, 0x2a5d, - 0x8da1, 0x2a5f, - 0x8da3, 0x1233, - 0x8da5, 0x2ca0, - 0x8da6, 0x3ff7, - 0x8da7, 0x2ca1, - 0x8da8, 0x1488, - 0x8da9, 0x3856, - 0x8daa, 0x3137, - 0x8dab, 0x3139, - 0x8dac, 0x3136, - 0x8dad, 0x3138, - 0x8dae, 0x323d, - 0x8daf, 0x3318, - 0x8db2, 0x3509, - 0x8db3, 0x0511, - 0x8db4, 0x080e, - 0x8db5, 0x1e10, - 0x8db6, 0x1e12, - 0x8db7, 0x1e11, - 0x8db9, 0x2076, - 0x8dba, 0x0bb2, - 0x8dbc, 0x2074, - 0x8dbe, 0x0bb1, - 0x8dbf, 0x2077, - 0x8dc0, 0x436a, - 0x8dc1, 0x2078, - 0x8dc2, 0x2075, - 0x8dc3, 0x4782, - 0x8dc5, 0x230e, - 0x8dc6, 0x0d7d, - 0x8dc7, 0x2306, - 0x8dc8, 0x230c, - 0x8dcb, 0x0d78, - 0x8dcc, 0x0d7b, - 0x8dcd, 0x2305, - 0x8dce, 0x0d76, - 0x8dcf, 0x2309, - 0x8dd0, 0x25b1, - 0x8dd1, 0x0d7a, - 0x8dd3, 0x2304, - 0x8dd4, 0x3f82, - 0x8dd5, 0x230a, - 0x8dd6, 0x2307, - 0x8dd7, 0x230d, - 0x8dd8, 0x2303, - 0x8dd9, 0x230b, - 0x8dda, 0x0d79, - 0x8ddb, 0x0d7c, - 0x8ddc, 0x2308, - 0x8ddd, 0x0d77, - 0x8ddf, 0x0f27, - 0x8de0, 0x25ad, - 0x8de1, 0x0f26, - 0x8de2, 0x25b4, - 0x8de3, 0x25b3, - 0x8de4, 0x0f2d, - 0x8de6, 0x0f2e, - 0x8de7, 0x25b5, - 0x8de8, 0x0f28, - 0x8de9, 0x25b2, - 0x8dea, 0x0f2c, - 0x8deb, 0x25b7, - 0x8dec, 0x25ae, - 0x8dee, 0x25b0, - 0x8def, 0x0f29, - 0x8df0, 0x25ac, - 0x8df1, 0x25af, - 0x8df2, 0x25b6, - 0x8df3, 0x0f2a, - 0x8df4, 0x25b8, - 0x8dfa, 0x0f2b, - 0x8dfc, 0x10bd, - 0x8dfd, 0x2814, - 0x8dfe, 0x281a, - 0x8dff, 0x2812, - 0x8e00, 0x281b, - 0x8e01, 0x3f85, - 0x8e02, 0x2811, - 0x8e03, 0x2816, - 0x8e04, 0x281c, - 0x8e05, 0x2819, - 0x8e06, 0x2818, - 0x8e07, 0x2817, - 0x8e09, 0x2810, - 0x8e0a, 0x2815, - 0x8e0d, 0x2813, - 0x8e0e, 0x3e5e, - 0x8e0f, 0x1238, - 0x8e10, 0x1235, - 0x8e11, 0x2a69, - 0x8e12, 0x2a6e, - 0x8e13, 0x2a70, - 0x8e14, 0x2a6d, - 0x8e15, 0x2a66, - 0x8e16, 0x2a68, - 0x8e17, 0x2a72, - 0x8e18, 0x2a6f, - 0x8e19, 0x2a6a, - 0x8e1a, 0x2a73, - 0x8e1b, 0x2a67, - 0x8e1c, 0x2a71, - 0x8e1d, 0x1236, - 0x8e1e, 0x123c, - 0x8e1f, 0x123a, - 0x8e20, 0x2a61, - 0x8e21, 0x123b, - 0x8e22, 0x1237, - 0x8e23, 0x2a62, - 0x8e24, 0x2a64, - 0x8e25, 0x2a63, - 0x8e26, 0x2a6b, - 0x8e28, 0x3f88, - 0x8e29, 0x1239, - 0x8e2a, 0x3bb4, - 0x8e2b, 0x1234, - 0x8e2d, 0x3eab, - 0x8e2e, 0x2a65, - 0x8e30, 0x2cab, - 0x8e31, 0x1362, - 0x8e33, 0x2ca2, - 0x8e34, 0x1363, - 0x8e35, 0x1366, - 0x8e36, 0x2ca7, - 0x8e38, 0x2ca4, - 0x8e39, 0x1365, - 0x8e3a, 0x4784, - 0x8e3c, 0x2ca8, - 0x8e3e, 0x2ca3, - 0x8e3f, 0x2cac, - 0x8e40, 0x2ca5, - 0x8e41, 0x2caa, - 0x8e42, 0x1364, - 0x8e44, 0x1361, - 0x8e45, 0x2ca6, - 0x8e46, 0x4312, - 0x8e47, 0x2e7a, - 0x8e48, 0x148b, - 0x8e49, 0x1489, - 0x8e4a, 0x148c, - 0x8e4b, 0x148a, - 0x8e4c, 0x2e79, - 0x8e4d, 0x2e76, - 0x8e4e, 0x2e75, - 0x8e4f, 0x3f83, - 0x8e50, 0x2e78, - 0x8e53, 0x2e77, - 0x8e54, 0x2ff6, - 0x8e55, 0x1535, - 0x8e56, 0x2fed, - 0x8e57, 0x2fec, - 0x8e59, 0x1530, - 0x8e5a, 0x2ff2, - 0x8e5b, 0x2ff1, - 0x8e5c, 0x2fe9, - 0x8e5d, 0x2ff4, - 0x8e5e, 0x2fee, - 0x8e5f, 0x1534, - 0x8e60, 0x2feb, - 0x8e61, 0x2ff3, - 0x8e62, 0x2fea, - 0x8e63, 0x1531, - 0x8e64, 0x1533, - 0x8e65, 0x2fef, - 0x8e66, 0x1532, - 0x8e67, 0x2ff0, - 0x8e68, 0x434d, - 0x8e69, 0x2ff5, - 0x8e6a, 0x313d, - 0x8e6c, 0x15d3, - 0x8e6d, 0x313a, - 0x8e6f, 0x313e, - 0x8e71, 0x43e7, - 0x8e72, 0x15d0, - 0x8e73, 0x313c, - 0x8e74, 0x15d5, - 0x8e75, 0x3f89, - 0x8e76, 0x15d2, - 0x8e77, 0x3f7f, - 0x8e78, 0x313b, - 0x8e7a, 0x15d4, - 0x8e7b, 0x313f, - 0x8e7c, 0x15cf, - 0x8e7e, 0x4324, - 0x8e80, 0x3e57, - 0x8e81, 0x164d, - 0x8e82, 0x164f, - 0x8e84, 0x3240, - 0x8e85, 0x164e, - 0x8e86, 0x323e, - 0x8e87, 0x15d1, - 0x8e88, 0x323f, - 0x8e89, 0x164c, - 0x8e8a, 0x1693, - 0x8e8b, 0x1695, - 0x8e8c, 0x331a, - 0x8e8d, 0x1694, - 0x8e8e, 0x3319, - 0x8e90, 0x33c1, - 0x8e91, 0x16db, - 0x8e92, 0x33c0, - 0x8e93, 0x16dc, - 0x8e94, 0x33be, - 0x8e95, 0x33bd, - 0x8e96, 0x33c2, - 0x8e98, 0x3443, - 0x8e9a, 0x33bf, - 0x8e9d, 0x34a1, - 0x8e9e, 0x349e, - 0x8ea1, 0x1749, - 0x8ea3, 0x34eb, - 0x8ea4, 0x34ea, - 0x8ea5, 0x34e9, - 0x8ea6, 0x350a, - 0x8ea7, 0x3bb5, - 0x8ea8, 0x3537, - 0x8ea9, 0x3524, - 0x8eaa, 0x175b, - 0x8eab, 0x0512, - 0x8eac, 0x09cf, - 0x8ead, 0x385e, - 0x8eb0, 0x43e9, - 0x8eb2, 0x0f2f, - 0x8eb6, 0x385f, - 0x8eba, 0x123d, - 0x8ebc, 0x38a0, - 0x8ebd, 0x2cad, - 0x8ec0, 0x1536, - 0x8ec2, 0x3140, - 0x8ec3, 0x3860, - 0x8ec9, 0x3525, - 0x8eca, 0x0513, - 0x8ecb, 0x068d, - 0x8ecc, 0x0810, - 0x8ecd, 0x080f, - 0x8ece, 0x4788, - 0x8ecf, 0x09d2, - 0x8ed1, 0x1e13, - 0x8ed2, 0x09d0, - 0x8ed3, 0x1e14, - 0x8ed4, 0x09d1, - 0x8ed7, 0x207d, - 0x8ed8, 0x2079, - 0x8eda, 0x3dbe, - 0x8edb, 0x0bb3, - 0x8edc, 0x207c, - 0x8edd, 0x207b, - 0x8ede, 0x207a, - 0x8edf, 0x0bb4, - 0x8ee0, 0x207e, - 0x8ee2, 0x4789, - 0x8ee4, 0x478a, - 0x8ee5, 0x2315, - 0x8ee6, 0x2313, - 0x8ee7, 0x2317, - 0x8ee9, 0x231e, - 0x8eeb, 0x231a, - 0x8eec, 0x231c, - 0x8eed, 0x478b, - 0x8eee, 0x2314, - 0x8eef, 0x230f, - 0x8ef1, 0x231b, - 0x8ef2, 0x478c, - 0x8ef4, 0x231d, - 0x8ef5, 0x2316, - 0x8ef6, 0x2319, - 0x8ef7, 0x2310, - 0x8ef8, 0x0d7f, - 0x8ef9, 0x2312, - 0x8efa, 0x2311, - 0x8efb, 0x0d7e, - 0x8efc, 0x0d80, - 0x8efe, 0x0f32, - 0x8eff, 0x25ba, - 0x8f00, 0x25bc, - 0x8f01, 0x25bb, - 0x8f02, 0x25c0, - 0x8f03, 0x0f30, - 0x8f05, 0x25bd, - 0x8f06, 0x25b9, - 0x8f07, 0x25be, - 0x8f09, 0x0f31, - 0x8f0a, 0x0f33, - 0x8f0b, 0x25c1, - 0x8f0d, 0x2820, - 0x8f0e, 0x281f, - 0x8f10, 0x281d, - 0x8f12, 0x10bf, - 0x8f13, 0x10c1, - 0x8f14, 0x10be, - 0x8f15, 0x10c0, - 0x8f16, 0x2a7a, - 0x8f18, 0x2a76, - 0x8f19, 0x3862, - 0x8f1a, 0x2a77, - 0x8f1b, 0x123f, - 0x8f1c, 0x1244, - 0x8f1d, 0x123e, - 0x8f1e, 0x1245, - 0x8f1f, 0x1240, - 0x8f20, 0x2a78, - 0x8f23, 0x2a79, - 0x8f24, 0x2a75, - 0x8f25, 0x1246, - 0x8f26, 0x1242, - 0x8f29, 0x1241, - 0x8f2a, 0x1243, - 0x8f2c, 0x2a74, - 0x8f2d, 0x3863, - 0x8f2e, 0x2caf, - 0x8f2f, 0x1368, - 0x8f30, 0x3bb7, - 0x8f32, 0x2cb1, - 0x8f33, 0x136a, - 0x8f34, 0x2cb4, - 0x8f35, 0x2cb0, - 0x8f36, 0x2cae, - 0x8f37, 0x2cb3, - 0x8f38, 0x1369, - 0x8f39, 0x2cb2, - 0x8f3b, 0x1367, - 0x8f3e, 0x148e, - 0x8f3f, 0x1491, - 0x8f40, 0x2e7c, - 0x8f41, 0x3d07, - 0x8f42, 0x148f, - 0x8f43, 0x2e7b, - 0x8f44, 0x148d, - 0x8f45, 0x1490, - 0x8f46, 0x2ff7, - 0x8f49, 0x1537, - 0x8f4a, 0x3bb8, - 0x8f4b, 0x2ffa, - 0x8f4d, 0x1538, - 0x8f4e, 0x15d7, - 0x8f4f, 0x3143, - 0x8f51, 0x3142, - 0x8f52, 0x3141, - 0x8f53, 0x3145, - 0x8f54, 0x15d6, - 0x8f55, 0x3244, - 0x8f56, 0x3242, - 0x8f58, 0x3245, - 0x8f59, 0x3241, - 0x8f5a, 0x3246, - 0x8f5b, 0x331c, - 0x8f5c, 0x3f31, - 0x8f5d, 0x331d, - 0x8f5e, 0x331b, - 0x8f5f, 0x1696, - 0x8f60, 0x33c4, - 0x8f61, 0x16dd, - 0x8f62, 0x33c5, - 0x8f63, 0x3445, - 0x8f64, 0x3444, - 0x8f66, 0x4569, - 0x8f6e, 0x456b, - 0x8f93, 0x4732, - 0x8f9b, 0x0514, - 0x8f9c, 0x0d81, - 0x8f9f, 0x0f34, - 0x8fa0, 0x3d94, - 0x8fa3, 0x10c2, - 0x8fa5, 0x3866, - 0x8fa6, 0x136c, - 0x8fa8, 0x136b, - 0x8fad, 0x15d8, - 0x8fae, 0x162f, - 0x8faf, 0x1697, - 0x8fb0, 0x0515, - 0x8fb1, 0x09d3, - 0x8fb2, 0x0f35, - 0x8fb3, 0x386a, - 0x8fb4, 0x3146, - 0x8fb5, 0x0230, - 0x8fb6, 0x47d3, - 0x8fb7, 0x43fd, - 0x8fb8, 0x42f6, - 0x8fb9, 0x48c9, - 0x8fba, 0x48c7, - 0x8fbb, 0x3d6b, - 0x8fbe, 0x48c6, - 0x8fbf, 0x18e9, - 0x8fc1, 0x478d, - 0x8fc2, 0x0516, - 0x8fc4, 0x0519, - 0x8fc5, 0x0518, - 0x8fc6, 0x0517, - 0x8fc9, 0x18e8, - 0x8fca, 0x478e, - 0x8fcb, 0x1a4a, - 0x8fcc, 0x478f, - 0x8fcd, 0x1a4c, - 0x8fce, 0x068e, - 0x8fd0, 0x48ae, - 0x8fd1, 0x0690, - 0x8fd2, 0x1a49, - 0x8fd3, 0x1a4b, - 0x8fd4, 0x068f, - 0x8fd5, 0x1a4e, - 0x8fd6, 0x1a4d, - 0x8fd7, 0x1a4f, - 0x8fda, 0x3fcb, - 0x8fe0, 0x1c0a, - 0x8fe1, 0x1c08, - 0x8fe2, 0x0813, - 0x8fe3, 0x1c07, - 0x8fe4, 0x0818, - 0x8fe5, 0x0815, - 0x8fe6, 0x0812, - 0x8fe8, 0x0819, - 0x8fea, 0x0814, - 0x8feb, 0x0817, - 0x8fed, 0x0816, - 0x8fee, 0x1c09, - 0x8ff0, 0x0811, - 0x8ff4, 0x09d9, - 0x8ff5, 0x1e16, - 0x8ff6, 0x1e1c, - 0x8ff7, 0x09d6, - 0x8ff8, 0x09dd, - 0x8ff9, 0x3871, - 0x8ffa, 0x09d8, - 0x8ffb, 0x1e19, - 0x8ffc, 0x1e1b, - 0x8ffd, 0x09db, - 0x8ffe, 0x1e15, - 0x8fff, 0x1e18, - 0x9000, 0x09d7, - 0x9001, 0x09d4, - 0x9002, 0x1e17, - 0x9003, 0x09da, - 0x9004, 0x1e1a, - 0x9005, 0x09dc, - 0x9006, 0x09d5, - 0x9008, 0x3ee0, - 0x900b, 0x2081, - 0x900c, 0x2084, - 0x900d, 0x0bb6, - 0x900f, 0x0bc0, - 0x9010, 0x0bbc, - 0x9011, 0x2082, - 0x9012, 0x3e4e, - 0x9014, 0x0bc4, - 0x9015, 0x0bbd, - 0x9016, 0x0bc2, - 0x9017, 0x0bb8, - 0x9019, 0x0bb5, - 0x901a, 0x0bb7, - 0x901b, 0x0bc3, - 0x901c, 0x2083, - 0x901d, 0x0bbb, - 0x901e, 0x0bbe, - 0x901f, 0x0bba, - 0x9020, 0x0bbf, - 0x9021, 0x2085, - 0x9022, 0x0bc1, - 0x9023, 0x0bb9, - 0x9024, 0x2080, - 0x902d, 0x231f, - 0x902e, 0x0d82, - 0x902f, 0x2321, - 0x9031, 0x0d84, - 0x9032, 0x0d86, - 0x9033, 0x4790, - 0x9034, 0x2320, - 0x9035, 0x0d83, - 0x9036, 0x0d87, - 0x9037, 0x3876, - 0x9038, 0x0d85, - 0x903c, 0x0f3b, - 0x903d, 0x25c6, - 0x903e, 0x0f43, - 0x903f, 0x25c3, - 0x9041, 0x0f44, - 0x9042, 0x0f39, - 0x9044, 0x25c4, - 0x9047, 0x0f3e, - 0x9049, 0x25c5, - 0x904a, 0x0f37, - 0x904b, 0x0f36, - 0x904c, 0x3f10, - 0x904d, 0x0f41, - 0x904e, 0x0f40, - 0x904f, 0x0f3f, - 0x9050, 0x0f3d, - 0x9051, 0x0f42, - 0x9052, 0x25c2, - 0x9053, 0x0f38, - 0x9054, 0x0f3a, - 0x9055, 0x0f3c, - 0x9056, 0x3dd2, - 0x9058, 0x10c4, - 0x9059, 0x10c7, - 0x905b, 0x10cb, - 0x905c, 0x10c5, - 0x905d, 0x10ca, - 0x905e, 0x10c8, - 0x9060, 0x10c3, - 0x9061, 0x3879, - 0x9062, 0x10c9, - 0x9063, 0x10c6, - 0x9064, 0x3c68, - 0x9067, 0x2a7f, - 0x9068, 0x1249, - 0x9069, 0x1247, - 0x906b, 0x2a80, - 0x906c, 0x3d60, - 0x906d, 0x124a, - 0x906e, 0x1248, - 0x906f, 0x2a7e, - 0x9070, 0x2a7d, - 0x9072, 0x1370, - 0x9073, 0x2a7c, - 0x9074, 0x136e, - 0x9075, 0x136d, - 0x9076, 0x2cb5, - 0x9077, 0x124b, - 0x9078, 0x136f, - 0x9079, 0x2cb6, - 0x907a, 0x1372, - 0x907b, 0x2cb7, - 0x907c, 0x1371, - 0x907d, 0x1493, - 0x907e, 0x2e7e, - 0x907f, 0x1492, - 0x9080, 0x1497, - 0x9081, 0x1495, - 0x9083, 0x153a, - 0x9084, 0x1494, - 0x9085, 0x2e7d, - 0x9086, 0x2cb8, - 0x9087, 0x1539, - 0x9088, 0x153b, - 0x908a, 0x15d9, - 0x908d, 0x3247, - 0x908f, 0x170c, - 0x9090, 0x170b, - 0x9091, 0x051b, - 0x9094, 0x181e, - 0x9095, 0x09de, - 0x9097, 0x181b, - 0x9099, 0x181a, - 0x909b, 0x181d, - 0x909e, 0x18ed, - 0x909f, 0x18ea, - 0x90a0, 0x18ef, - 0x90a1, 0x18eb, - 0x90a2, 0x051c, - 0x90a3, 0x051f, - 0x90a5, 0x18ec, - 0x90a6, 0x051e, - 0x90a7, 0x18ee, - 0x90a8, 0x387c, - 0x90aa, 0x051d, - 0x90ae, 0x3880, - 0x90af, 0x1a52, - 0x90b0, 0x1a54, - 0x90b1, 0x0693, - 0x90b2, 0x1a50, - 0x90b3, 0x1a53, - 0x90b4, 0x1a51, - 0x90b5, 0x0691, - 0x90b6, 0x0694, - 0x90b8, 0x0692, - 0x90bb, 0x3bc4, - 0x90bd, 0x1c0c, - 0x90be, 0x1c10, - 0x90bf, 0x1c0d, - 0x90c1, 0x081c, - 0x90c3, 0x081d, - 0x90c4, 0x387e, - 0x90c5, 0x1c0f, - 0x90c7, 0x1c11, - 0x90c8, 0x1c13, - 0x90ca, 0x081a, - 0x90cb, 0x1c12, - 0x90ce, 0x081b, - 0x90d4, 0x208c, - 0x90d5, 0x1c0e, - 0x90d6, 0x1e1d, - 0x90d7, 0x1e26, - 0x90d8, 0x1e24, - 0x90d9, 0x1e1f, - 0x90db, 0x1e25, - 0x90dc, 0x1e27, - 0x90dd, 0x09e0, - 0x90df, 0x1e22, - 0x90e0, 0x1e1e, - 0x90e1, 0x09df, - 0x90e2, 0x09e1, - 0x90e3, 0x1e21, - 0x90e4, 0x1e28, - 0x90e5, 0x1e23, - 0x90e8, 0x0bc5, - 0x90e9, 0x208f, - 0x90ea, 0x2087, - 0x90eb, 0x208d, - 0x90ed, 0x0bc6, - 0x90ef, 0x2086, - 0x90f0, 0x2088, - 0x90f1, 0x1c0b, - 0x90f2, 0x208a, - 0x90f4, 0x2089, - 0x90f5, 0x0d89, - 0x90f9, 0x2328, - 0x90fa, 0x2cb9, - 0x90fb, 0x2329, - 0x90fc, 0x2326, - 0x90fd, 0x0bc7, - 0x90fe, 0x0d8b, - 0x90ff, 0x2325, - 0x9100, 0x232b, - 0x9101, 0x232a, - 0x9102, 0x0d88, - 0x9103, 0x232e, - 0x9104, 0x2324, - 0x9105, 0x232d, - 0x9106, 0x2322, - 0x9107, 0x232c, - 0x9108, 0x2327, - 0x9109, 0x0d8a, - 0x910b, 0x25cd, - 0x910d, 0x25c8, - 0x910e, 0x25ce, - 0x910f, 0x25c9, - 0x9110, 0x25c7, - 0x9111, 0x25ca, - 0x9112, 0x0f45, - 0x9114, 0x25cc, - 0x9116, 0x25cb, - 0x9117, 0x0f46, - 0x9118, 0x10cd, - 0x9119, 0x10cc, - 0x911a, 0x2827, - 0x911b, 0x282a, - 0x911c, 0x2822, - 0x911d, 0x2826, - 0x911e, 0x10ce, - 0x911f, 0x2825, - 0x9120, 0x2823, - 0x9121, 0x2829, - 0x9122, 0x2824, - 0x9123, 0x2821, - 0x9124, 0x2828, - 0x9126, 0x2a86, - 0x9127, 0x124e, - 0x9128, 0x2ffb, - 0x9129, 0x2a83, - 0x912b, 0x2a82, - 0x912c, 0x2323, - 0x912d, 0x124d, - 0x912e, 0x2a87, - 0x912f, 0x2a81, - 0x9130, 0x124c, - 0x9131, 0x124f, - 0x9132, 0x2a85, - 0x9133, 0x2cba, - 0x9134, 0x1373, - 0x9135, 0x2cbb, - 0x9138, 0x2e7f, - 0x9139, 0x1498, - 0x913a, 0x2ffc, - 0x913e, 0x2ffe, - 0x913f, 0x3148, - 0x9140, 0x3147, - 0x9141, 0x3249, - 0x9143, 0x3248, - 0x9144, 0x331f, - 0x9146, 0x331e, - 0x9147, 0x33c6, - 0x9148, 0x16de, - 0x9149, 0x0520, - 0x914a, 0x081f, - 0x914b, 0x081e, - 0x914c, 0x09e4, - 0x914d, 0x09e3, - 0x914e, 0x1e2a, - 0x9150, 0x1e29, - 0x9151, 0x3f49, - 0x9152, 0x09e2, - 0x9153, 0x2093, - 0x9155, 0x2094, - 0x9156, 0x2090, - 0x9157, 0x0bc8, - 0x9158, 0x2091, - 0x9159, 0x3f45, - 0x915a, 0x2092, - 0x915c, 0x3f47, - 0x915e, 0x43eb, - 0x915f, 0x2331, - 0x9160, 0x2333, - 0x9161, 0x232f, - 0x9162, 0x2332, - 0x9163, 0x0d8c, - 0x9164, 0x2330, - 0x9165, 0x0d8d, - 0x9167, 0x3882, - 0x9168, 0x23e2, - 0x9169, 0x0f49, - 0x916a, 0x0f48, - 0x916c, 0x0f47, - 0x916e, 0x25cf, - 0x9170, 0x3eb8, - 0x9172, 0x282c, - 0x9173, 0x282e, - 0x9174, 0x10d2, - 0x9175, 0x10cf, - 0x9176, 0x3e9b, - 0x9177, 0x10d1, - 0x9178, 0x10d0, - 0x9179, 0x282d, - 0x917a, 0x282b, - 0x917c, 0x3f6f, - 0x9180, 0x2a8e, - 0x9181, 0x2a8b, - 0x9183, 0x1253, - 0x9184, 0x2a8d, - 0x9185, 0x2a88, - 0x9187, 0x1250, - 0x9189, 0x1251, - 0x918a, 0x2a8a, - 0x918b, 0x1252, - 0x918c, 0x43ec, - 0x918d, 0x2cc0, - 0x918e, 0x3f4e, - 0x918f, 0x2cc1, - 0x9190, 0x2cbe, - 0x9192, 0x1374, - 0x9193, 0x2cbd, - 0x9199, 0x2e83, - 0x919a, 0x2e80, - 0x919b, 0x2e82, - 0x919c, 0x149b, - 0x919d, 0x2e86, - 0x919e, 0x149a, - 0x919f, 0x2e84, - 0x91a0, 0x2e87, - 0x91a1, 0x2e85, - 0x91a2, 0x2e81, - 0x91a3, 0x1499, - 0x91a5, 0x3000, - 0x91a7, 0x3001, - 0x91a8, 0x2fff, - 0x91a9, 0x3883, - 0x91aa, 0x3003, - 0x91ab, 0x153c, - 0x91ad, 0x314a, - 0x91ae, 0x15dc, - 0x91af, 0x3002, - 0x91b0, 0x3149, - 0x91b1, 0x15db, - 0x91b2, 0x324c, - 0x91b4, 0x1650, - 0x91b5, 0x324b, - 0x91b6, 0x45ef, - 0x91b7, 0x324a, - 0x91b9, 0x3321, - 0x91ba, 0x1698, - 0x91bb, 0x3bc8, - 0x91bc, 0x3446, - 0x91bd, 0x34a3, - 0x91be, 0x34a2, - 0x91c0, 0x1730, - 0x91c1, 0x174a, - 0x91c2, 0x34a4, - 0x91c3, 0x350b, - 0x91c4, 0x3884, - 0x91c5, 0x175c, - 0x91c6, 0x0521, - 0x91c7, 0x0695, - 0x91c9, 0x0f4a, - 0x91cb, 0x1651, - 0x91cc, 0x0522, - 0x91cd, 0x0820, - 0x91ce, 0x0bc9, - 0x91cf, 0x0d8e, - 0x91d0, 0x153e, - 0x91d1, 0x0696, - 0x91d3, 0x1c15, - 0x91d4, 0x1c14, - 0x91d5, 0x1e2c, - 0x91d6, 0x415e, - 0x91d7, 0x09e7, - 0x91d8, 0x09e5, - 0x91d9, 0x09e9, - 0x91da, 0x1e2e, - 0x91dc, 0x09e8, - 0x91dd, 0x09e6, - 0x91df, 0x453a, - 0x91e2, 0x1e2d, - 0x91e3, 0x0bcc, - 0x91e4, 0x209a, - 0x91e5, 0x3c06, - 0x91e6, 0x0bcb, - 0x91e7, 0x0bcd, - 0x91e8, 0x209f, - 0x91e9, 0x0bcf, - 0x91ea, 0x209c, - 0x91ec, 0x2095, - 0x91ed, 0x0bce, - 0x91ee, 0x20a0, - 0x91f1, 0x2097, - 0x91f3, 0x2098, - 0x91f4, 0x2096, - 0x91f5, 0x0bca, - 0x91f7, 0x209e, - 0x91f8, 0x2099, - 0x91f9, 0x209b, - 0x91fa, 0x3af8, - 0x91fd, 0x233f, - 0x91fe, 0x382e, - 0x91ff, 0x233e, - 0x9200, 0x233c, - 0x9201, 0x2334, - 0x9202, 0x2343, - 0x9203, 0x2337, - 0x9204, 0x2341, - 0x9205, 0x2348, - 0x9206, 0x2340, - 0x9207, 0x0d96, - 0x9208, 0x3eb9, - 0x9209, 0x0d92, - 0x920a, 0x2335, - 0x920c, 0x233b, - 0x920d, 0x0d94, - 0x920e, 0x3888, - 0x920f, 0x233a, - 0x9210, 0x0d95, - 0x9211, 0x0d97, - 0x9212, 0x233d, - 0x9213, 0x4793, - 0x9214, 0x0d8f, - 0x9216, 0x2349, - 0x9217, 0x2347, - 0x9219, 0x2346, - 0x921a, 0x2338, - 0x921c, 0x2344, - 0x921e, 0x0d93, - 0x9223, 0x0d91, - 0x9224, 0x2345, - 0x9225, 0x2336, - 0x9226, 0x2339, - 0x9227, 0x2342, - 0x9228, 0x4795, - 0x922a, 0x3c0e, - 0x922b, 0x3ba6, - 0x922d, 0x2851, - 0x922e, 0x25da, - 0x9230, 0x25d3, - 0x9231, 0x25e6, - 0x9232, 0x25ef, - 0x9233, 0x25d6, - 0x9234, 0x0f55, - 0x9235, 0x3b26, - 0x9236, 0x25e3, - 0x9237, 0x0f4b, - 0x9238, 0x0f4d, - 0x9239, 0x0f59, - 0x923a, 0x25d4, - 0x923c, 0x41d2, - 0x923d, 0x0f4e, - 0x923e, 0x0f50, - 0x923f, 0x0f5a, - 0x9240, 0x0f4f, - 0x9241, 0x388a, - 0x9244, 0x389a, - 0x9245, 0x0f58, - 0x9246, 0x25dc, - 0x9248, 0x25d1, - 0x9249, 0x0f56, - 0x924a, 0x25db, - 0x924b, 0x0f52, - 0x924c, 0x25ed, - 0x924d, 0x0f57, - 0x924e, 0x25eb, - 0x924f, 0x25df, - 0x9250, 0x25e9, - 0x9251, 0x0f54, - 0x9252, 0x25d2, - 0x9253, 0x25ec, - 0x9254, 0x25e7, - 0x9255, 0x3e47, - 0x9256, 0x25ee, - 0x9257, 0x0f4c, - 0x9258, 0x4796, - 0x925a, 0x0f5b, - 0x925b, 0x0f51, - 0x925d, 0x3a03, - 0x925e, 0x25d8, - 0x925f, 0x3ce0, - 0x9260, 0x25e0, - 0x9261, 0x25e4, - 0x9262, 0x388b, - 0x9263, 0x25e8, - 0x9264, 0x0f53, - 0x9265, 0x25d7, - 0x9266, 0x25d5, - 0x9267, 0x25e1, - 0x926b, 0x4797, - 0x926c, 0x25de, - 0x926d, 0x25dd, - 0x926e, 0x3d05, - 0x926f, 0x25e2, - 0x9270, 0x25e5, - 0x9272, 0x25ea, - 0x9276, 0x2831, - 0x9277, 0x3c64, - 0x9278, 0x10d3, - 0x9279, 0x283b, - 0x927a, 0x2833, - 0x927b, 0x10d9, - 0x927c, 0x10dd, - 0x927d, 0x2844, - 0x927e, 0x284c, - 0x927f, 0x283d, - 0x9280, 0x10d5, - 0x9281, 0x3e01, - 0x9282, 0x2841, - 0x9283, 0x25d9, - 0x9284, 0x3cb9, - 0x9285, 0x10d6, - 0x9286, 0x2848, - 0x9287, 0x284d, - 0x9288, 0x2845, - 0x9289, 0x3ab5, - 0x928a, 0x2847, - 0x928b, 0x2850, - 0x928c, 0x2849, - 0x928d, 0x2837, - 0x928e, 0x2840, - 0x928f, 0x46bd, - 0x9291, 0x10de, - 0x9293, 0x10da, - 0x9294, 0x2835, - 0x9295, 0x2842, - 0x9296, 0x10d8, - 0x9297, 0x283c, - 0x9298, 0x10d7, - 0x9299, 0x284a, - 0x929a, 0x2839, - 0x929b, 0x2832, - 0x929c, 0x10db, - 0x929d, 0x284f, - 0x92a0, 0x2834, - 0x92a1, 0x2846, - 0x92a2, 0x2843, - 0x92a3, 0x283e, - 0x92a4, 0x2830, - 0x92a5, 0x282f, - 0x92a6, 0x2838, - 0x92a7, 0x284b, - 0x92a8, 0x10dc, - 0x92a9, 0x284e, - 0x92aa, 0x2836, - 0x92ab, 0x283a, - 0x92ac, 0x10d4, - 0x92ae, 0x4799, - 0x92b1, 0x4798, - 0x92b2, 0x125f, - 0x92b3, 0x125a, - 0x92b4, 0x2ab0, - 0x92b5, 0x2aac, - 0x92b6, 0x2a94, - 0x92b7, 0x1256, - 0x92b9, 0x36e9, - 0x92ba, 0x3bf5, - 0x92bb, 0x1255, - 0x92bc, 0x125b, - 0x92be, 0x3c60, - 0x92bf, 0x479a, - 0x92c0, 0x2a92, - 0x92c1, 0x1259, - 0x92c2, 0x2a9e, - 0x92c3, 0x2a90, - 0x92c5, 0x1254, - 0x92c6, 0x2aaf, - 0x92c7, 0x125d, - 0x92c8, 0x2aa1, - 0x92c9, 0x2aa6, - 0x92ca, 0x2aa0, - 0x92cb, 0x2cd3, - 0x92cc, 0x2a9c, - 0x92cd, 0x2aa4, - 0x92ce, 0x2aa2, - 0x92cf, 0x2a95, - 0x92d0, 0x2a8f, - 0x92d1, 0x2aaa, - 0x92d2, 0x125c, - 0x92d3, 0x2aab, - 0x92d4, 0x3861, - 0x92d5, 0x2aa5, - 0x92d7, 0x2a9a, - 0x92d8, 0x2a98, - 0x92d9, 0x2a93, - 0x92db, 0x400c, - 0x92dd, 0x2a9b, - 0x92de, 0x2aa8, - 0x92df, 0x2a97, - 0x92e0, 0x2aa7, - 0x92e1, 0x2aad, - 0x92e3, 0x479b, - 0x92e4, 0x1258, - 0x92e5, 0x3ca2, - 0x92e6, 0x2aa3, - 0x92e7, 0x2aa9, - 0x92e8, 0x2a9f, - 0x92e9, 0x2a99, - 0x92ea, 0x1257, - 0x92eb, 0x479c, - 0x92ec, 0x3964, - 0x92ee, 0x283f, - 0x92ef, 0x2a9d, - 0x92f0, 0x125e, - 0x92f1, 0x2a96, - 0x92f2, 0x3ab2, - 0x92f3, 0x479d, - 0x92f6, 0x3c04, - 0x92f7, 0x2cd8, - 0x92f8, 0x1377, - 0x92f9, 0x2cd7, - 0x92fa, 0x2cd5, - 0x92fb, 0x2ce7, - 0x92fc, 0x137b, - 0x92fd, 0x479f, - 0x92fe, 0x2ce4, - 0x92ff, 0x2cdc, - 0x9300, 0x2ce6, - 0x9301, 0x2cce, - 0x9302, 0x2cda, - 0x9303, 0x3867, - 0x9304, 0x137d, - 0x9306, 0x2cc6, - 0x9307, 0x3b11, - 0x9308, 0x2cc4, - 0x9309, 0x2ce5, - 0x930b, 0x2ce3, - 0x930c, 0x2ce2, - 0x930d, 0x2cd2, - 0x930e, 0x2cd1, - 0x930f, 0x2cc7, - 0x9310, 0x137f, - 0x9312, 0x2ccd, - 0x9313, 0x2cd6, - 0x9314, 0x2ce1, - 0x9315, 0x1382, - 0x9316, 0x2ce8, - 0x9318, 0x14a3, - 0x9319, 0x1384, - 0x931a, 0x137e, - 0x931b, 0x2ccb, - 0x931d, 0x2cd4, - 0x931e, 0x2cc3, - 0x931f, 0x2cc5, - 0x9320, 0x1375, - 0x9321, 0x1381, - 0x9322, 0x137a, - 0x9323, 0x2ccc, - 0x9324, 0x2cdb, - 0x9325, 0x2aae, - 0x9326, 0x1380, - 0x9327, 0x2cc2, - 0x9328, 0x149e, - 0x9329, 0x2cdd, - 0x932a, 0x2ce0, - 0x932b, 0x137c, - 0x932c, 0x3892, - 0x932d, 0x2cd0, - 0x932e, 0x1383, - 0x932f, 0x1379, - 0x9330, 0x3e03, - 0x9331, 0x3cbd, - 0x9333, 0x1378, - 0x9334, 0x2cd9, - 0x9335, 0x2cdf, - 0x9336, 0x1376, - 0x9338, 0x2cc9, - 0x9339, 0x2cde, - 0x933c, 0x2cca, - 0x9340, 0x4155, - 0x9341, 0x4277, - 0x9342, 0x3afa, - 0x9343, 0x47a0, - 0x9344, 0x4016, - 0x9345, 0x3e74, - 0x9346, 0x2ccf, - 0x9347, 0x2e8d, - 0x9348, 0x3c61, - 0x9349, 0x2e92, - 0x934a, 0x14a0, - 0x934b, 0x14a2, - 0x934c, 0x2e98, - 0x934d, 0x149c, - 0x934e, 0x2ea6, - 0x934f, 0x2e9e, - 0x9350, 0x2e93, - 0x9352, 0x2e9d, - 0x9354, 0x14a9, - 0x9355, 0x2e9c, - 0x9356, 0x2e8c, - 0x9357, 0x2e9b, - 0x9358, 0x2e8f, - 0x9359, 0x2ea7, - 0x935a, 0x14a8, - 0x935b, 0x14a6, - 0x935c, 0x2e90, - 0x935e, 0x2ea3, - 0x935f, 0x3cbb, - 0x9360, 0x2e95, - 0x9361, 0x2ea2, - 0x9362, 0x4268, - 0x9363, 0x2ea4, - 0x9364, 0x2e8b, - 0x9365, 0x14a1, - 0x9366, 0x46bc, - 0x9367, 0x2ea5, - 0x9368, 0x3bf0, - 0x9369, 0x3961, - 0x936a, 0x2e99, - 0x936b, 0x3893, - 0x936c, 0x14a5, - 0x936d, 0x2e96, - 0x936e, 0x39e8, - 0x9370, 0x14a7, - 0x9371, 0x2e9f, - 0x9373, 0x389e, - 0x9374, 0x3ce4, - 0x9375, 0x149f, - 0x9376, 0x2e91, - 0x9377, 0x2ea0, - 0x9378, 0x38f9, - 0x9379, 0x2e9a, - 0x937a, 0x2cc8, - 0x937b, 0x2ea1, - 0x937c, 0x2e8e, - 0x937d, 0x3c25, - 0x937e, 0x14a4, - 0x9380, 0x3014, - 0x9381, 0x3965, - 0x9382, 0x149d, - 0x9383, 0x2e89, - 0x9384, 0x47a1, - 0x9385, 0x42bd, - 0x9386, 0x3cc0, - 0x9387, 0x3ae0, - 0x9388, 0x3011, - 0x9389, 0x300a, - 0x938a, 0x1540, - 0x938c, 0x3005, - 0x938d, 0x3015, - 0x938e, 0x300c, - 0x938f, 0x2e97, - 0x9390, 0x3d3c, - 0x9391, 0x3017, - 0x9392, 0x3006, - 0x9394, 0x153f, - 0x9395, 0x3010, - 0x9396, 0x1541, - 0x9397, 0x1549, - 0x9398, 0x1547, - 0x9399, 0x3012, - 0x939a, 0x1548, - 0x939b, 0x3008, - 0x939c, 0x39ac, - 0x939d, 0x3009, - 0x939e, 0x300e, - 0x939f, 0x3013, - 0x93a0, 0x3ab1, - 0x93a1, 0x2e88, - 0x93a2, 0x1542, - 0x93a3, 0x301c, - 0x93a4, 0x3019, - 0x93a5, 0x3160, - 0x93a6, 0x300f, - 0x93a7, 0x300b, - 0x93a8, 0x301a, - 0x93a9, 0x3155, - 0x93aa, 0x300d, - 0x93ac, 0x1545, - 0x93ad, 0x47a2, - 0x93ae, 0x1544, - 0x93af, 0x2e8a, - 0x93b0, 0x1546, - 0x93b1, 0x3016, - 0x93b2, 0x3018, - 0x93b3, 0x1543, - 0x93b4, 0x301b, - 0x93b5, 0x3004, - 0x93b7, 0x3007, - 0x93b8, 0x3c90, - 0x93ba, 0x43f7, - 0x93bb, 0x3c8f, - 0x93bd, 0x3a27, - 0x93bf, 0x3e2d, - 0x93c0, 0x315e, - 0x93c2, 0x314e, - 0x93c3, 0x15e0, - 0x93c4, 0x315c, - 0x93c6, 0x39aa, - 0x93c7, 0x314c, - 0x93c8, 0x15e1, - 0x93ca, 0x3157, - 0x93cb, 0x3966, - 0x93cc, 0x3153, - 0x93cd, 0x15e6, - 0x93ce, 0x315d, - 0x93cf, 0x314d, - 0x93d0, 0x3150, - 0x93d1, 0x15de, - 0x93d2, 0x315f, - 0x93d3, 0x40e1, - 0x93d4, 0x3158, - 0x93d5, 0x315b, - 0x93d6, 0x15e4, - 0x93d7, 0x15e9, - 0x93d8, 0x15e7, - 0x93d9, 0x3154, - 0x93da, 0x314f, - 0x93db, 0x3c5f, - 0x93dc, 0x15e2, - 0x93de, 0x314b, - 0x93df, 0x15df, - 0x93e0, 0x3a20, - 0x93e1, 0x15dd, - 0x93e2, 0x15e5, - 0x93e3, 0x315a, - 0x93e4, 0x15e8, - 0x93e6, 0x3156, - 0x93e7, 0x3161, - 0x93e8, 0x15ea, - 0x93ec, 0x3152, - 0x93ee, 0x3159, - 0x93f0, 0x423f, - 0x93f1, 0x42aa, - 0x93f3, 0x3962, - 0x93f5, 0x325a, - 0x93f6, 0x3269, - 0x93f7, 0x325c, - 0x93f8, 0x3263, - 0x93f9, 0x3151, - 0x93fa, 0x3261, - 0x93fb, 0x3250, - 0x93fc, 0x3267, - 0x93fd, 0x1654, - 0x93fe, 0x3254, - 0x93ff, 0x3266, - 0x9400, 0x325b, - 0x9401, 0x3cd4, - 0x9403, 0x1653, - 0x9404, 0x3bc9, - 0x9406, 0x326b, - 0x9407, 0x325d, - 0x9408, 0x3a25, - 0x9409, 0x3262, - 0x940a, 0x3265, - 0x940b, 0x324e, - 0x940c, 0x3268, - 0x940d, 0x3259, - 0x940e, 0x325e, - 0x940f, 0x3252, - 0x9410, 0x3256, - 0x9411, 0x326a, - 0x9412, 0x3260, - 0x9413, 0x324f, - 0x9414, 0x3253, - 0x9415, 0x3255, - 0x9416, 0x325f, - 0x9417, 0x47a5, - 0x9418, 0x1652, - 0x9419, 0x3258, - 0x941b, 0x4148, - 0x941d, 0x47a6, - 0x9420, 0x3251, - 0x9424, 0x3943, - 0x9425, 0x38d0, - 0x9426, 0x38a3, - 0x9427, 0x3bcd, - 0x9428, 0x3257, - 0x9429, 0x3325, - 0x942a, 0x3329, - 0x942b, 0x169f, - 0x942c, 0x332b, - 0x942d, 0x47a7, - 0x942e, 0x1699, - 0x9430, 0x3327, - 0x9431, 0x332d, - 0x9432, 0x169e, - 0x9433, 0x169a, - 0x9435, 0x169b, - 0x9436, 0x3324, - 0x9437, 0x332a, - 0x9438, 0x169d, - 0x9439, 0x3328, - 0x943a, 0x169c, - 0x943b, 0x3323, - 0x943c, 0x3264, - 0x943d, 0x3326, - 0x943e, 0x47a8, - 0x943f, 0x3322, - 0x9440, 0x332c, - 0x9442, 0x4272, - 0x9443, 0x4275, - 0x9444, 0x16df, - 0x9445, 0x33cd, - 0x9446, 0x33d0, - 0x9447, 0x33cc, - 0x9448, 0x33ce, - 0x944a, 0x33c9, - 0x944c, 0x33c7, - 0x944d, 0x3c65, - 0x944f, 0x33cb, - 0x9450, 0x33c8, - 0x9451, 0x16e0, - 0x9454, 0x47aa, - 0x9455, 0x3448, - 0x9457, 0x344a, - 0x9458, 0x3c30, - 0x945b, 0x389f, - 0x945d, 0x3449, - 0x945e, 0x344b, - 0x9460, 0x170e, - 0x9462, 0x3447, - 0x9463, 0x170d, - 0x9464, 0x170f, - 0x9465, 0x3dde, - 0x9467, 0x3ab8, - 0x9468, 0x34a6, - 0x946a, 0x1731, - 0x946b, 0x34a5, - 0x946c, 0x377e, - 0x946d, 0x34ed, - 0x946e, 0x34ec, - 0x946f, 0x34ee, - 0x9470, 0x174c, - 0x9471, 0x34ef, - 0x9472, 0x174b, - 0x9473, 0x34f0, - 0x9474, 0x350c, - 0x9475, 0x350f, - 0x9476, 0x350e, - 0x9477, 0x1755, - 0x9478, 0x350d, - 0x9479, 0x47ab, - 0x947b, 0x419b, - 0x947c, 0x175f, - 0x947d, 0x175d, - 0x947f, 0x1764, - 0x9480, 0x3539, - 0x9482, 0x3538, - 0x9483, 0x3540, - 0x9485, 0x4507, - 0x949f, 0x4885, - 0x94a2, 0x451b, - 0x94c1, 0x47e1, - 0x94c3, 0x47df, - 0x94dc, 0x47d7, - 0x94f6, 0x47d2, - 0x952d, 0x47ac, - 0x9547, 0x48bf, - 0x9577, 0x0697, - 0x9578, 0x4508, - 0x957a, 0x20a1, - 0x957b, 0x234a, - 0x957c, 0x2ab1, - 0x957d, 0x3162, - 0x957f, 0x4509, - 0x9580, 0x0698, - 0x9582, 0x0821, - 0x9583, 0x09ea, - 0x9585, 0x38a1, - 0x9586, 0x20a2, - 0x9588, 0x20a3, - 0x9589, 0x0bd0, - 0x958b, 0x0d9a, - 0x958c, 0x234c, - 0x958d, 0x234b, - 0x958e, 0x0d9e, - 0x958f, 0x0d99, - 0x9590, 0x234d, - 0x9591, 0x0d9b, - 0x9592, 0x0d9d, - 0x9593, 0x0d9c, - 0x9594, 0x0d98, - 0x9596, 0x3bd5, - 0x9597, 0x3bd4, - 0x9598, 0x0f5c, - 0x9599, 0x3bd2, - 0x959b, 0x25f3, - 0x959c, 0x25f1, - 0x959e, 0x25f2, - 0x959f, 0x25f0, - 0x95a0, 0x38a4, - 0x95a1, 0x10df, - 0x95a2, 0x47ad, - 0x95a3, 0x10e2, - 0x95a4, 0x10e4, - 0x95a5, 0x10e3, - 0x95a6, 0x38a2, - 0x95a7, 0x3bd3, - 0x95a8, 0x10e0, - 0x95aa, 0x4395, - 0x95ab, 0x2ab3, - 0x95ac, 0x2ab2, - 0x95ad, 0x1260, - 0x95ae, 0x2ab4, - 0x95b0, 0x2ab5, - 0x95b1, 0x1261, - 0x95b5, 0x2cf0, - 0x95b6, 0x2cee, - 0x95b7, 0x2ead, - 0x95b9, 0x2cec, - 0x95bb, 0x1385, - 0x95bc, 0x2ce9, - 0x95bd, 0x2cf1, - 0x95be, 0x2ceb, - 0x95bf, 0x2cef, - 0x95c0, 0x2ea9, - 0x95c3, 0x2eab, - 0x95c5, 0x2eac, - 0x95c6, 0x14ae, - 0x95c7, 0x2ea8, - 0x95c8, 0x14ad, - 0x95c9, 0x2eaa, - 0x95ca, 0x14aa, - 0x95cd, 0x2cea, - 0x95d0, 0x154c, - 0x95d1, 0x301f, - 0x95d2, 0x301d, - 0x95d4, 0x154a, - 0x95d5, 0x154d, - 0x95d6, 0x154b, - 0x95da, 0x3163, - 0x95dc, 0x15eb, - 0x95de, 0x326c, - 0x95df, 0x326e, - 0x95e0, 0x326d, - 0x95e1, 0x1655, - 0x95e2, 0x16a0, - 0x95e3, 0x3330, - 0x95e4, 0x332f, - 0x95e5, 0x332e, - 0x95e8, 0x450a, - 0x95f4, 0x47af, - 0x961c, 0x0699, - 0x961d, 0x4519, - 0x961e, 0x17b4, - 0x9620, 0x1821, - 0x9621, 0x0414, - 0x9622, 0x181f, - 0x9623, 0x1822, - 0x9624, 0x1820, - 0x9628, 0x18f1, - 0x962a, 0x0526, - 0x962c, 0x0527, - 0x962d, 0x18f3, - 0x962e, 0x0524, - 0x962f, 0x18f2, - 0x9630, 0x18f0, - 0x9631, 0x0525, - 0x9632, 0x0523, - 0x9633, 0x47b0, - 0x9638, 0x3fd1, - 0x9639, 0x1a55, - 0x963a, 0x1a58, - 0x963b, 0x069c, - 0x963c, 0x1a57, - 0x963d, 0x1a56, - 0x963f, 0x069b, - 0x9640, 0x069a, - 0x9641, 0x3f3d, - 0x9642, 0x069e, - 0x9643, 0x1a59, - 0x9644, 0x069d, - 0x9645, 0x4772, - 0x964a, 0x1c1a, - 0x964b, 0x0823, - 0x964e, 0x1c1b, - 0x964f, 0x1c17, - 0x9650, 0x0822, - 0x9651, 0x1c18, - 0x9653, 0x1c19, - 0x9654, 0x1c16, - 0x9656, 0x3de7, - 0x9658, 0x09f1, - 0x965b, 0x09ee, - 0x965c, 0x1e2f, - 0x965d, 0x09ef, - 0x965e, 0x09f2, - 0x965f, 0x1e30, - 0x9661, 0x09ed, - 0x9662, 0x09eb, - 0x9664, 0x09f0, - 0x9669, 0x475e, - 0x966a, 0x0bd1, - 0x966b, 0x20a6, - 0x966c, 0x0bd9, - 0x966d, 0x20a5, - 0x966f, 0x20a8, - 0x9670, 0x0bd5, - 0x9671, 0x20a7, - 0x9672, 0x0da6, - 0x9673, 0x0bd3, - 0x9674, 0x0bd6, - 0x9675, 0x0bd2, - 0x9676, 0x0bd7, - 0x9678, 0x0bd4, - 0x967b, 0x38ac, - 0x967c, 0x20a4, - 0x967d, 0x0da2, - 0x967e, 0x234f, - 0x9680, 0x2353, - 0x9681, 0x3f46, - 0x9683, 0x2352, - 0x9684, 0x0da7, - 0x9685, 0x0da3, - 0x9687, 0x234e, - 0x9688, 0x2350, - 0x968a, 0x0d9f, - 0x968b, 0x0da1, - 0x968d, 0x0da5, - 0x968e, 0x0da0, - 0x968f, 0x3bde, - 0x9691, 0x25f6, - 0x9692, 0x25f4, - 0x9694, 0x0f5e, - 0x9696, 0x38ad, - 0x9697, 0x25f7, - 0x9698, 0x0f5d, - 0x9699, 0x10e5, - 0x969b, 0x10e7, - 0x969c, 0x10e6, - 0x969e, 0x2852, - 0x96a1, 0x2853, - 0x96a2, 0x2ab7, - 0x96a3, 0x38af, - 0x96a4, 0x2ab6, - 0x96a5, 0x42ef, - 0x96a7, 0x1386, - 0x96a9, 0x2cf2, - 0x96aa, 0x1388, - 0x96ac, 0x2eb0, - 0x96ae, 0x2eae, - 0x96b0, 0x2eaf, - 0x96b1, 0x14af, - 0x96b3, 0x3020, - 0x96b4, 0x15ec, - 0x96b6, 0x0231, - 0x96b8, 0x14b0, - 0x96b9, 0x069f, - 0x96bb, 0x09f3, - 0x96bc, 0x1e31, - 0x96bd, 0x38b5, - 0x96bf, 0x20a9, - 0x96c0, 0x0bda, - 0x96c1, 0x0da8, - 0x96c2, 0x2354, - 0x96c3, 0x2356, - 0x96c4, 0x0daa, - 0x96c5, 0x0da9, - 0x96c6, 0x0dab, - 0x96c8, 0x2355, - 0x96c9, 0x0f62, - 0x96cb, 0x0f61, - 0x96cc, 0x10e8, - 0x96cd, 0x0f60, - 0x96ce, 0x25f8, - 0x96d2, 0x10e9, - 0x96d3, 0x2ab8, - 0x96d4, 0x2cf3, - 0x96d5, 0x1389, - 0x96d6, 0x14b1, - 0x96d7, 0x3021, - 0x96d8, 0x3025, - 0x96d9, 0x1550, - 0x96da, 0x3022, - 0x96db, 0x1551, - 0x96dc, 0x154f, - 0x96dd, 0x3026, - 0x96de, 0x1552, - 0x96df, 0x3024, - 0x96e1, 0x3165, - 0x96e2, 0x154e, - 0x96e3, 0x15ed, - 0x96e5, 0x34a8, - 0x96e8, 0x06a0, - 0x96e9, 0x0bdc, - 0x96ea, 0x0bdb, - 0x96ef, 0x0dad, - 0x96f0, 0x2358, - 0x96f1, 0x2357, - 0x96f2, 0x0dae, - 0x96f4, 0x3a04, - 0x96f5, 0x25fc, - 0x96f6, 0x0f67, - 0x96f7, 0x0f64, - 0x96f8, 0x25fb, - 0x96f9, 0x0f66, - 0x96fa, 0x25f9, - 0x96fb, 0x0f65, - 0x96fd, 0x25fa, - 0x96ff, 0x2854, - 0x9700, 0x10ea, - 0x9702, 0x2abb, - 0x9703, 0x3f0d, - 0x9704, 0x1262, - 0x9705, 0x2ab9, - 0x9706, 0x1263, - 0x9708, 0x2aba, - 0x9709, 0x1265, - 0x970b, 0x2cf4, - 0x970d, 0x138d, - 0x970e, 0x138a, - 0x970f, 0x138f, - 0x9710, 0x2cf6, - 0x9711, 0x138b, - 0x9712, 0x2cf5, - 0x9713, 0x138e, - 0x9716, 0x138c, - 0x9718, 0x2eb3, - 0x9719, 0x2eb5, - 0x971b, 0x38c9, - 0x971c, 0x14b2, - 0x971d, 0x2eb4, - 0x971e, 0x14b3, - 0x971f, 0x2eb2, - 0x9720, 0x2eb1, - 0x9721, 0x3fb3, - 0x9722, 0x3028, - 0x9723, 0x3027, - 0x9724, 0x1553, - 0x9725, 0x3029, - 0x9726, 0x316a, - 0x9727, 0x15ef, - 0x9728, 0x3169, - 0x9729, 0x3166, - 0x972a, 0x15ee, - 0x972b, 0x3167, - 0x972e, 0x326f, - 0x9730, 0x1656, - 0x9731, 0x38c0, - 0x9732, 0x16a3, - 0x9735, 0x3331, - 0x9736, 0x38c2, - 0x9738, 0x16a1, - 0x973a, 0x3332, - 0x973d, 0x16e2, - 0x973f, 0x33d1, - 0x9740, 0x47b3, - 0x9741, 0x3be9, - 0x9742, 0x1732, - 0x9743, 0x34aa, - 0x9744, 0x1734, - 0x9746, 0x34a9, - 0x9747, 0x34ab, - 0x9748, 0x1733, - 0x9749, 0x34f1, - 0x974b, 0x3526, - 0x9751, 0x44e3, - 0x9752, 0x06a1, - 0x9756, 0x0f68, - 0x9757, 0x38cc, - 0x9758, 0x2855, - 0x975a, 0x2abc, - 0x975b, 0x1390, - 0x975d, 0x3bef, - 0x975e, 0x06a2, - 0x975f, 0x38cf, - 0x9760, 0x1266, - 0x9761, 0x15f0, - 0x9762, 0x0826, - 0x9766, 0x1392, - 0x9768, 0x1710, - 0x9769, 0x0827, - 0x976a, 0x20aa, - 0x976c, 0x2359, - 0x976d, 0x3e97, - 0x976e, 0x235b, - 0x9770, 0x235a, - 0x9771, 0x3bfc, - 0x9772, 0x2600, - 0x9773, 0x25fd, - 0x9774, 0x0f69, - 0x9776, 0x0f6a, - 0x9777, 0x25fe, - 0x977a, 0x2857, - 0x977b, 0x285c, - 0x977c, 0x10eb, - 0x977d, 0x2856, - 0x977e, 0x2858, - 0x977f, 0x285f, - 0x9780, 0x285a, - 0x9781, 0x285e, - 0x9782, 0x285b, - 0x9783, 0x2859, - 0x9784, 0x285d, - 0x9785, 0x10ec, - 0x9787, 0x40c0, - 0x9788, 0x2abf, - 0x9789, 0x38d4, - 0x978a, 0x2abd, - 0x978b, 0x1268, - 0x978d, 0x1267, - 0x978e, 0x2abe, - 0x978f, 0x1269, - 0x9794, 0x2cf9, - 0x9797, 0x2cf8, - 0x9798, 0x1393, - 0x9799, 0x2cf7, - 0x979a, 0x2eb6, - 0x979b, 0x3bfb, - 0x979c, 0x2eb8, - 0x979d, 0x2eba, - 0x979e, 0x2eb9, - 0x979f, 0x38d5, - 0x97a0, 0x14b4, - 0x97a1, 0x2eb7, - 0x97a2, 0x3030, - 0x97a3, 0x1554, - 0x97a4, 0x302e, - 0x97a5, 0x3031, - 0x97a6, 0x1555, - 0x97a8, 0x302c, - 0x97aa, 0x302f, - 0x97ab, 0x302d, - 0x97ac, 0x302a, - 0x97ad, 0x1556, - 0x97ae, 0x302b, - 0x97b1, 0x38d6, - 0x97b2, 0x47b5, - 0x97b3, 0x316b, - 0x97b4, 0x3f33, - 0x97b6, 0x316d, - 0x97b7, 0x316c, - 0x97b8, 0x3d95, - 0x97b9, 0x3271, - 0x97ba, 0x3f35, - 0x97bb, 0x3272, - 0x97bd, 0x494e, - 0x97be, 0x38d7, - 0x97bf, 0x3333, - 0x97c0, 0x38d8, - 0x97c1, 0x16e5, - 0x97c2, 0x47b6, - 0x97c3, 0x16e4, - 0x97c4, 0x344c, - 0x97c6, 0x1735, - 0x97c7, 0x34ac, - 0x97c8, 0x3f2f, - 0x97c9, 0x1756, - 0x97cb, 0x0828, - 0x97cc, 0x0daf, - 0x97cd, 0x2861, - 0x97ce, 0x2860, - 0x97cf, 0x2ac1, - 0x97d0, 0x2ac0, - 0x97d2, 0x38d9, - 0x97d3, 0x14b5, - 0x97d4, 0x2ebc, - 0x97d5, 0x2ebb, - 0x97d6, 0x3034, - 0x97d7, 0x3032, - 0x97d8, 0x3035, - 0x97d9, 0x3033, - 0x97dc, 0x15f1, - 0x97dd, 0x316e, - 0x97e0, 0x38da, - 0x97e1, 0x3334, - 0x97e3, 0x33d2, - 0x97e5, 0x34ad, - 0x97e6, 0x450c, - 0x97ed, 0x0829, - 0x97ee, 0x38dc, - 0x97f0, 0x2cfa, - 0x97f1, 0x2ebd, - 0x97f2, 0x394d, - 0x97f3, 0x082a, - 0x97f5, 0x38e0, - 0x97f6, 0x10ed, - 0x97f8, 0x2cfb, - 0x97f9, 0x1557, - 0x97fa, 0x3036, - 0x97fb, 0x15f2, - 0x97fd, 0x3273, - 0x97ff, 0x16a4, - 0x9800, 0x344e, - 0x9801, 0x082b, - 0x9802, 0x0bdf, - 0x9804, 0x20ab, - 0x9805, 0x0db0, - 0x9807, 0x235c, - 0x9808, 0x0db2, - 0x980a, 0x0f6e, - 0x980c, 0x0f70, - 0x980d, 0x2602, - 0x980f, 0x2601, - 0x9810, 0x0f6b, - 0x9812, 0x0f6f, - 0x9813, 0x0f6d, - 0x9814, 0x4952, - 0x9815, 0x433c, - 0x9816, 0x2862, - 0x9817, 0x10ee, - 0x981b, 0x2ac8, - 0x981c, 0x126c, - 0x981d, 0x2ac3, - 0x981e, 0x2ac2, - 0x981f, 0x3c02, - 0x9820, 0x2ac7, - 0x9821, 0x126a, - 0x9823, 0x3e37, - 0x9824, 0x139a, - 0x9826, 0x2ac4, - 0x9827, 0x2ac9, - 0x9828, 0x2ac6, - 0x9829, 0x2ac5, - 0x982b, 0x126b, - 0x982d, 0x1398, - 0x982e, 0x3f72, - 0x982f, 0x2cfd, - 0x9830, 0x1394, - 0x9832, 0x2cfe, - 0x9833, 0x38e5, - 0x9834, 0x38e4, - 0x9835, 0x2cfc, - 0x9837, 0x1397, - 0x9838, 0x1395, - 0x9839, 0x1399, - 0x983b, 0x1396, - 0x9841, 0x2ebe, - 0x9843, 0x2ec3, - 0x9844, 0x2ebf, - 0x9845, 0x2ec2, - 0x9846, 0x14b6, - 0x9847, 0x3d96, - 0x9848, 0x2df2, - 0x9849, 0x2ec1, - 0x984a, 0x2ec0, - 0x984b, 0x38e6, - 0x984c, 0x155a, - 0x984d, 0x1558, - 0x984e, 0x155b, - 0x984f, 0x1559, - 0x9850, 0x3037, - 0x9853, 0x155c, - 0x9857, 0x3174, - 0x9858, 0x15f4, - 0x9859, 0x3172, - 0x985b, 0x15f5, - 0x985c, 0x3171, - 0x985d, 0x3173, - 0x985e, 0x15f3, - 0x985f, 0x3278, - 0x9860, 0x3275, - 0x9862, 0x3276, - 0x9864, 0x3335, - 0x9865, 0x16a6, - 0x9866, 0x38e7, - 0x9867, 0x16a5, - 0x9869, 0x33d4, - 0x986a, 0x33d3, - 0x986b, 0x16e6, - 0x986c, 0x4035, - 0x986f, 0x1711, - 0x9870, 0x1736, - 0x9871, 0x174d, - 0x9872, 0x34f2, - 0x9873, 0x3527, - 0x9875, 0x450d, - 0x98a8, 0x082c, - 0x98a9, 0x235d, - 0x98ac, 0x2604, - 0x98ad, 0x2863, - 0x98af, 0x10f0, - 0x98b1, 0x10f1, - 0x98b2, 0x2aca, - 0x98b3, 0x126d, - 0x98b4, 0x3f73, - 0x98b6, 0x14b7, - 0x98b7, 0x38ef, - 0x98b8, 0x303a, - 0x98b9, 0x47b8, - 0x98ba, 0x155d, - 0x98bb, 0x3177, - 0x98bc, 0x15f6, - 0x98bd, 0x3176, - 0x98be, 0x3178, - 0x98bf, 0x3175, - 0x98c0, 0x3338, - 0x98c1, 0x3279, - 0x98c3, 0x3b78, - 0x98c4, 0x1657, - 0x98c6, 0x3337, - 0x98c7, 0x38f1, - 0x98c8, 0x38f0, - 0x98c9, 0x3336, - 0x98ca, 0x38ee, - 0x98cb, 0x33d5, - 0x98cc, 0x3529, - 0x98ce, 0x450e, - 0x98db, 0x082d, - 0x98dc, 0x3c0b, - 0x98de, 0x450f, - 0x98df, 0x082e, - 0x98e0, 0x4792, - 0x98e1, 0x38f6, - 0x98e2, 0x09f4, - 0x98e3, 0x1e32, - 0x98e5, 0x20ac, - 0x98e6, 0x38f7, - 0x98e7, 0x0db3, - 0x98e9, 0x0db6, - 0x98ea, 0x0db4, - 0x98eb, 0x235e, - 0x98ec, 0x38f8, - 0x98ed, 0x0db8, - 0x98ef, 0x0db5, - 0x98f1, 0x47ba, - 0x98f2, 0x0db7, - 0x98f4, 0x0f72, - 0x98f5, 0x4365, - 0x98f6, 0x2605, - 0x98f9, 0x2606, - 0x98fa, 0x2acc, - 0x98fc, 0x0f71, - 0x98fd, 0x0f73, - 0x9900, 0x2866, - 0x9902, 0x2865, - 0x9903, 0x10f2, - 0x9905, 0x10f3, - 0x9907, 0x2867, - 0x9908, 0x2acb, - 0x9909, 0x10f5, - 0x990a, 0x126e, - 0x990c, 0x10f4, - 0x990e, 0x43ed, - 0x9910, 0x139b, - 0x9911, 0x2acd, - 0x9912, 0x1270, - 0x9913, 0x126f, - 0x9914, 0x2ace, - 0x9915, 0x2ad1, - 0x9916, 0x2acf, - 0x9918, 0x1271, - 0x9919, 0x47bc, - 0x991a, 0x13a0, - 0x991b, 0x139e, - 0x991c, 0x43ee, - 0x991e, 0x139d, - 0x991f, 0x2d00, - 0x9921, 0x139f, - 0x9924, 0x2cff, - 0x9925, 0x2ec4, - 0x9927, 0x2d01, - 0x9928, 0x139c, - 0x9929, 0x2d02, - 0x992a, 0x2ec7, - 0x992b, 0x2ec5, - 0x992d, 0x2ecb, - 0x992e, 0x1561, - 0x992f, 0x2eca, - 0x9930, 0x2ecd, - 0x9931, 0x2ecc, - 0x9932, 0x2ec9, - 0x9933, 0x2ec8, - 0x9935, 0x14b8, - 0x9937, 0x47bd, - 0x9938, 0x3bfd, - 0x9939, 0x38fa, - 0x993a, 0x303d, - 0x993b, 0x3c11, - 0x993c, 0x303c, - 0x993d, 0x1560, - 0x993e, 0x155e, - 0x9940, 0x3f34, - 0x9941, 0x303b, - 0x9942, 0x43ff, - 0x9943, 0x317b, - 0x9945, 0x15f7, - 0x9947, 0x317a, - 0x9948, 0x3179, - 0x9949, 0x15f8, - 0x994a, 0x3fb9, - 0x994b, 0x327f, - 0x994c, 0x327e, - 0x994d, 0x3c12, - 0x994e, 0x327c, - 0x9950, 0x327b, - 0x9951, 0x1659, - 0x9952, 0x1658, - 0x9953, 0x3280, - 0x9954, 0x33d6, - 0x9955, 0x16e7, - 0x9956, 0x333a, - 0x9957, 0x16a7, - 0x9958, 0x3339, - 0x9959, 0x327d, - 0x995b, 0x33d7, - 0x995c, 0x1712, - 0x995d, 0x47be, - 0x995e, 0x174e, - 0x995f, 0x34f3, - 0x9961, 0x352a, - 0x9962, 0x43ef, - 0x9963, 0x4510, - 0x9996, 0x082f, - 0x9997, 0x20ad, - 0x9998, 0x2ece, - 0x9999, 0x0830, - 0x999b, 0x3c15, - 0x999c, 0x2869, - 0x999d, 0x2868, - 0x999e, 0x2d03, - 0x99a1, 0x2ed0, - 0x99a3, 0x2ecf, - 0x99a4, 0x41c3, - 0x99a5, 0x1562, - 0x99a6, 0x317c, - 0x99a8, 0x165a, - 0x99aa, 0x3c17, - 0x99ab, 0x352b, - 0x99ac, 0x09f5, - 0x99ad, 0x0dba, - 0x99ae, 0x0db9, - 0x99af, 0x2607, - 0x99b0, 0x2609, - 0x99b1, 0x0f76, - 0x99b2, 0x2608, - 0x99b3, 0x0f75, - 0x99b4, 0x0f77, - 0x99b5, 0x260a, - 0x99b8, 0x394b, - 0x99b9, 0x286b, - 0x99ba, 0x286d, - 0x99bb, 0x286c, - 0x99bc, 0x3c22, - 0x99bd, 0x286f, - 0x99c1, 0x10f6, - 0x99c2, 0x286e, - 0x99c3, 0x286a, - 0x99c4, 0x3d77, - 0x99c5, 0x47c1, - 0x99c7, 0x2870, - 0x99c9, 0x2ad8, - 0x99cb, 0x2adb, - 0x99cc, 0x2add, - 0x99cd, 0x2ad3, - 0x99ce, 0x2ad7, - 0x99cf, 0x2ad4, - 0x99d0, 0x1273, - 0x99d1, 0x1276, - 0x99d2, 0x1278, - 0x99d3, 0x2ad5, - 0x99d5, 0x1277, - 0x99d6, 0x2ad9, - 0x99d7, 0x2adc, - 0x99d8, 0x2ada, - 0x99d9, 0x1279, - 0x99da, 0x3f42, - 0x99db, 0x1275, - 0x99dc, 0x2ad2, - 0x99dd, 0x1272, - 0x99df, 0x1274, - 0x99e1, 0x3785, - 0x99e2, 0x13a2, - 0x99e3, 0x2d09, - 0x99e4, 0x2d07, - 0x99e5, 0x2d06, - 0x99e6, 0x3b65, - 0x99e7, 0x2d0c, - 0x99e9, 0x2d0b, - 0x99ea, 0x2d0a, - 0x99ec, 0x2d05, - 0x99ed, 0x13a1, - 0x99ee, 0x2d04, - 0x99f0, 0x2d08, - 0x99f1, 0x13a3, - 0x99f4, 0x2ed3, - 0x99f5, 0x38ff, - 0x99f6, 0x2ed7, - 0x99f7, 0x2ed4, - 0x99f8, 0x2ed6, - 0x99f9, 0x2ed5, - 0x99fa, 0x2ed2, - 0x99fb, 0x2ed8, - 0x99fc, 0x2edb, - 0x99fd, 0x2ed9, - 0x99ff, 0x14ba, - 0x9a01, 0x14b9, - 0x9a02, 0x2ed1, - 0x9a03, 0x2edc, - 0x9a04, 0x3042, - 0x9a05, 0x3045, - 0x9a06, 0x3047, - 0x9a07, 0x3046, - 0x9a09, 0x3040, - 0x9a0a, 0x3044, - 0x9a0b, 0x303f, - 0x9a0c, 0x3900, - 0x9a0d, 0x3041, - 0x9a0e, 0x1563, - 0x9a0f, 0x303e, - 0x9a10, 0x3902, - 0x9a11, 0x3043, - 0x9a14, 0x318a, - 0x9a15, 0x317f, - 0x9a16, 0x15f9, - 0x9a19, 0x15fa, - 0x9a1a, 0x317e, - 0x9a1b, 0x3183, - 0x9a1c, 0x3189, - 0x9a1d, 0x3181, - 0x9a1e, 0x3188, - 0x9a1f, 0x3b6c, - 0x9a20, 0x3185, - 0x9a21, 0x3c1c, - 0x9a22, 0x3184, - 0x9a23, 0x3187, - 0x9a24, 0x3182, - 0x9a25, 0x3180, - 0x9a26, 0x3df2, - 0x9a27, 0x3186, - 0x9a29, 0x3287, - 0x9a2a, 0x3285, - 0x9a2b, 0x165b, - 0x9a2c, 0x3284, - 0x9a2d, 0x328a, - 0x9a2e, 0x3288, - 0x9a2f, 0x3c1e, - 0x9a30, 0x165c, - 0x9a31, 0x3283, - 0x9a32, 0x3281, - 0x9a34, 0x3282, - 0x9a35, 0x165e, - 0x9a36, 0x3286, - 0x9a37, 0x165d, - 0x9a38, 0x3289, - 0x9a39, 0x333b, - 0x9a3a, 0x3341, - 0x9a3b, 0x3901, - 0x9a3c, 0x47c3, - 0x9a3d, 0x333c, - 0x9a3e, 0x16ab, - 0x9a3f, 0x3342, - 0x9a40, 0x16aa, - 0x9a41, 0x3340, - 0x9a42, 0x333f, - 0x9a43, 0x16a9, - 0x9a44, 0x333e, - 0x9a45, 0x16a8, - 0x9a46, 0x333d, - 0x9a48, 0x33dd, - 0x9a49, 0x33df, - 0x9a4a, 0x33de, - 0x9a4c, 0x33db, - 0x9a4d, 0x16e9, - 0x9a4e, 0x33d8, - 0x9a4f, 0x33dc, - 0x9a50, 0x33e1, - 0x9a52, 0x33e0, - 0x9a53, 0x33d9, - 0x9a55, 0x16e8, - 0x9a56, 0x344f, - 0x9a57, 0x1715, - 0x9a58, 0x3903, - 0x9a59, 0x3450, - 0x9a5a, 0x1713, - 0x9a5c, 0x3c18, - 0x9a5e, 0x34ae, - 0x9a5f, 0x1737, - 0x9a60, 0x3510, - 0x9a62, 0x1757, - 0x9a63, 0x3b67, - 0x9a64, 0x352c, - 0x9a65, 0x1758, - 0x9a66, 0x352d, - 0x9a68, 0x353c, - 0x9a69, 0x353b, - 0x9a6a, 0x1767, - 0x9a6b, 0x3544, - 0x9a6c, 0x4585, - 0x9a8f, 0x4586, - 0x9aa8, 0x09f6, - 0x9aab, 0x260c, - 0x9aad, 0x260b, - 0x9aaf, 0x10f7, - 0x9ab1, 0x2871, - 0x9ab2, 0x4332, - 0x9ab3, 0x2ade, - 0x9ab4, 0x2d0f, - 0x9ab6, 0x43f0, - 0x9ab7, 0x127a, - 0x9ab8, 0x13a4, - 0x9ab9, 0x2d0d, - 0x9aba, 0x3f74, - 0x9abb, 0x2d10, - 0x9abc, 0x13a5, - 0x9abd, 0x3d97, - 0x9abe, 0x2edd, - 0x9abf, 0x2d0e, - 0x9ac0, 0x3048, - 0x9ac1, 0x1564, - 0x9ac2, 0x318b, - 0x9ac6, 0x328d, - 0x9ac7, 0x328b, - 0x9aca, 0x328c, - 0x9acd, 0x3343, - 0x9acf, 0x16ac, - 0x9ad0, 0x33e2, - 0x9ad1, 0x1718, - 0x9ad2, 0x16ea, - 0x9ad3, 0x1716, - 0x9ad5, 0x34af, - 0x9ad6, 0x174f, - 0x9ad7, 0x3faa, - 0x9ad8, 0x09f7, - 0x9adc, 0x3049, - 0x9adf, 0x1e33, - 0x9ae0, 0x3908, - 0x9ae1, 0x0f78, - 0x9ae2, 0x3909, - 0x9ae3, 0x2872, - 0x9ae6, 0x10f9, - 0x9ae7, 0x2873, - 0x9aeb, 0x2ae0, - 0x9aec, 0x2adf, - 0x9aed, 0x13a7, - 0x9aee, 0x127b, - 0x9af1, 0x2ae3, - 0x9af2, 0x2ae2, - 0x9af3, 0x2ae1, - 0x9af4, 0x390b, - 0x9af6, 0x2d11, - 0x9af7, 0x2d14, - 0x9af9, 0x2d13, - 0x9afa, 0x2d12, - 0x9afb, 0x13a6, - 0x9afc, 0x2ee1, - 0x9afd, 0x2edf, - 0x9afe, 0x2ede, - 0x9aff, 0x3f17, - 0x9b01, 0x2ee0, - 0x9b02, 0x3f12, - 0x9b03, 0x1565, - 0x9b04, 0x304b, - 0x9b06, 0x1566, - 0x9b08, 0x304a, - 0x9b09, 0x3f20, - 0x9b0a, 0x318d, - 0x9b0b, 0x318c, - 0x9b0c, 0x318f, - 0x9b0d, 0x15fb, - 0x9b0e, 0x318e, - 0x9b0f, 0x47c4, - 0x9b10, 0x328e, - 0x9b11, 0x3290, - 0x9b12, 0x328f, - 0x9b14, 0x390d, - 0x9b15, 0x3344, - 0x9b16, 0x3347, - 0x9b17, 0x3345, - 0x9b19, 0x33e3, - 0x9b1a, 0x16eb, - 0x9b1e, 0x3451, - 0x9b22, 0x1738, - 0x9b23, 0x1750, - 0x9b24, 0x352f, - 0x9b25, 0x09f8, - 0x9b27, 0x127d, - 0x9b28, 0x13a8, - 0x9b29, 0x304d, - 0x9b2a, 0x3f19, - 0x9b2b, 0x33e4, - 0x9b2d, 0x390e, - 0x9b2e, 0x3511, - 0x9b2f, 0x1e34, - 0x9b31, 0x1768, - 0x9b32, 0x09f9, - 0x9b33, 0x2d15, - 0x9b34, 0x3911, - 0x9b35, 0x304e, - 0x9b37, 0x3190, - 0x9b39, 0x3f00, - 0x9b3a, 0x3348, - 0x9b3b, 0x33e5, - 0x9b3c, 0x09fa, - 0x9b3e, 0x2874, - 0x9b40, 0x3915, - 0x9b41, 0x10fa, - 0x9b43, 0x2ae5, - 0x9b44, 0x127f, - 0x9b45, 0x127e, - 0x9b46, 0x2ae4, - 0x9b48, 0x2ee2, - 0x9b4a, 0x304f, - 0x9b4b, 0x3051, - 0x9b4c, 0x3050, - 0x9b4d, 0x1569, - 0x9b4e, 0x1568, - 0x9b4f, 0x1567, - 0x9b50, 0x3914, - 0x9b51, 0x16ae, - 0x9b52, 0x3349, - 0x9b54, 0x16ad, - 0x9b55, 0x33e7, - 0x9b56, 0x33e6, - 0x9b58, 0x1739, - 0x9b59, 0x34b0, - 0x9b5a, 0x0be1, - 0x9b5b, 0x260d, - 0x9b5f, 0x2878, - 0x9b60, 0x2876, - 0x9b64, 0x2aee, - 0x9b66, 0x2ae9, - 0x9b67, 0x2ae6, - 0x9b68, 0x2aed, - 0x9b69, 0x47c5, - 0x9b6c, 0x2aef, - 0x9b6f, 0x1281, - 0x9b70, 0x2aec, - 0x9b71, 0x2ae8, - 0x9b74, 0x2ae7, - 0x9b75, 0x2aeb, - 0x9b76, 0x2aea, - 0x9b77, 0x1280, - 0x9b7a, 0x2d20, - 0x9b7b, 0x2d1b, - 0x9b7c, 0x2d19, - 0x9b7d, 0x2d22, - 0x9b7e, 0x2d1a, - 0x9b7f, 0x3c3b, - 0x9b80, 0x2d16, - 0x9b81, 0x43f1, - 0x9b82, 0x2d1c, - 0x9b83, 0x4219, - 0x9b85, 0x2d17, - 0x9b86, 0x2eeb, - 0x9b87, 0x2d18, - 0x9b88, 0x2d23, - 0x9b8b, 0x3eee, - 0x9b8d, 0x4623, - 0x9b8e, 0x3919, - 0x9b8f, 0x3fad, - 0x9b90, 0x2d1f, - 0x9b91, 0x13a9, - 0x9b92, 0x2d1e, - 0x9b93, 0x2d1d, - 0x9b95, 0x2d21, - 0x9b97, 0x3f71, - 0x9b9a, 0x2ee3, - 0x9b9b, 0x2ee6, - 0x9b9d, 0x3f56, - 0x9b9e, 0x2ee5, - 0x9b9f, 0x3c3e, - 0x9ba0, 0x2eed, - 0x9ba1, 0x2ee8, - 0x9ba2, 0x2eec, - 0x9ba4, 0x2eea, - 0x9ba5, 0x2ee9, - 0x9ba6, 0x2ee7, - 0x9ba8, 0x2ee4, - 0x9baa, 0x14bd, - 0x9bab, 0x14bc, - 0x9bad, 0x14be, - 0x9bae, 0x14bb, - 0x9baf, 0x2eee, - 0x9bb0, 0x3fb4, - 0x9bb5, 0x3057, - 0x9bb6, 0x305a, - 0x9bb8, 0x3058, - 0x9bb9, 0x305c, - 0x9bbd, 0x305d, - 0x9bbf, 0x3055, - 0x9bc0, 0x156e, - 0x9bc1, 0x3056, - 0x9bc3, 0x3054, - 0x9bc4, 0x305b, - 0x9bc6, 0x3053, - 0x9bc7, 0x3052, - 0x9bc8, 0x156d, - 0x9bc9, 0x156b, - 0x9bca, 0x156a, - 0x9bcf, 0x3c3c, - 0x9bd3, 0x3059, - 0x9bd4, 0x3199, - 0x9bd5, 0x319f, - 0x9bd6, 0x15fe, - 0x9bd7, 0x319a, - 0x9bd9, 0x319d, - 0x9bda, 0x31a1, - 0x9bdb, 0x15ff, - 0x9bdc, 0x319c, - 0x9bdd, 0x47c6, - 0x9bde, 0x3194, - 0x9be0, 0x3193, - 0x9be1, 0x31a0, - 0x9be2, 0x3197, - 0x9be4, 0x3195, - 0x9be5, 0x319e, - 0x9be6, 0x3196, - 0x9be7, 0x15fd, - 0x9be8, 0x15fc, - 0x9be9, 0x3bc1, - 0x9bea, 0x3191, - 0x9bec, 0x319b, - 0x9bed, 0x3ed7, - 0x9bf0, 0x3198, - 0x9bf1, 0x47c7, - 0x9bf4, 0x47c8, - 0x9bf7, 0x3293, - 0x9bf8, 0x3296, - 0x9bfd, 0x156c, - 0x9bff, 0x391b, - 0x9c02, 0x391a, - 0x9c05, 0x3294, - 0x9c06, 0x329a, - 0x9c07, 0x3298, - 0x9c08, 0x3292, - 0x9c09, 0x329d, - 0x9c0a, 0x3f3a, - 0x9c0b, 0x3291, - 0x9c0c, 0x391c, - 0x9c0d, 0x1660, - 0x9c0e, 0x3299, - 0x9c10, 0x3c3a, - 0x9c12, 0x3295, - 0x9c13, 0x165f, - 0x9c14, 0x329c, - 0x9c15, 0x3f1e, - 0x9c17, 0x329b, - 0x9c1b, 0x491b, - 0x9c1c, 0x334c, - 0x9c1d, 0x334b, - 0x9c1f, 0x4622, - 0x9c20, 0x47ca, - 0x9c21, 0x3352, - 0x9c23, 0x334e, - 0x9c24, 0x3351, - 0x9c25, 0x16b0, - 0x9c26, 0x45e6, - 0x9c28, 0x334f, - 0x9c2b, 0x334a, - 0x9c2c, 0x334d, - 0x9c2d, 0x16af, - 0x9c2e, 0x3f22, - 0x9c2f, 0x3d87, - 0x9c31, 0x16ed, - 0x9c32, 0x33f2, - 0x9c33, 0x33ed, - 0x9c34, 0x33f1, - 0x9c35, 0x3c39, - 0x9c36, 0x33f4, - 0x9c37, 0x33f0, - 0x9c39, 0x33ec, - 0x9c3a, 0x3d7e, - 0x9c3b, 0x16ef, - 0x9c3c, 0x33ef, - 0x9c3d, 0x33f3, - 0x9c3e, 0x16ee, - 0x9c3f, 0x33ea, - 0x9c40, 0x3297, - 0x9c41, 0x33ee, - 0x9c44, 0x33eb, - 0x9c45, 0x3e71, - 0x9c46, 0x33e8, - 0x9c48, 0x33e9, - 0x9c49, 0x16ec, - 0x9c4a, 0x3457, - 0x9c4b, 0x3459, - 0x9c4c, 0x345c, - 0x9c4d, 0x3458, - 0x9c4e, 0x345d, - 0x9c4f, 0x3c36, - 0x9c50, 0x3456, - 0x9c52, 0x3454, - 0x9c53, 0x3c37, - 0x9c54, 0x1719, - 0x9c55, 0x345a, - 0x9c56, 0x171b, - 0x9c57, 0x171a, - 0x9c58, 0x3455, - 0x9c59, 0x345b, - 0x9c5d, 0x3ebf, - 0x9c5e, 0x34b5, - 0x9c5f, 0x173a, - 0x9c60, 0x34b6, - 0x9c62, 0x34b4, - 0x9c63, 0x34b1, - 0x9c66, 0x34b3, - 0x9c67, 0x34b2, - 0x9c68, 0x34f4, - 0x9c6d, 0x34f6, - 0x9c6e, 0x34f5, - 0x9c71, 0x3514, - 0x9c72, 0x3ea1, - 0x9c73, 0x3513, - 0x9c74, 0x3512, - 0x9c75, 0x3515, - 0x9c77, 0x1760, - 0x9c79, 0x3541, - 0x9c7a, 0x3545, - 0x9c7b, 0x3c38, - 0x9c7c, 0x4512, - 0x9ce5, 0x0be2, - 0x9ce6, 0x235f, - 0x9ce7, 0x2610, - 0x9ce9, 0x0f79, - 0x9cea, 0x260e, - 0x9ced, 0x260f, - 0x9cf1, 0x2879, - 0x9cf3, 0x10fe, - 0x9cf4, 0x10fc, - 0x9cf5, 0x287b, - 0x9cf6, 0x10fd, - 0x9cf7, 0x2af4, - 0x9cf9, 0x2af7, - 0x9cfa, 0x2af1, - 0x9cfb, 0x2af8, - 0x9cfc, 0x2af0, - 0x9cfd, 0x2af2, - 0x9cff, 0x2af3, - 0x9d00, 0x2af6, - 0x9d02, 0x3f3b, - 0x9d03, 0x1284, - 0x9d04, 0x2afb, - 0x9d05, 0x2afa, - 0x9d06, 0x1282, - 0x9d07, 0x2af5, - 0x9d08, 0x2af9, - 0x9d09, 0x1283, - 0x9d0c, 0x3c46, - 0x9d10, 0x2d2d, - 0x9d12, 0x13ae, - 0x9d14, 0x2d28, - 0x9d15, 0x13aa, - 0x9d16, 0x3c7c, - 0x9d17, 0x2d25, - 0x9d18, 0x2d2b, - 0x9d19, 0x2d2e, - 0x9d1b, 0x13af, - 0x9d1d, 0x2d2a, - 0x9d1e, 0x2d27, - 0x9d1f, 0x2d2f, - 0x9d20, 0x2d26, - 0x9d21, 0x3c41, - 0x9d22, 0x2d2c, - 0x9d23, 0x13ab, - 0x9d25, 0x2d24, - 0x9d26, 0x13ac, - 0x9d28, 0x13ad, - 0x9d29, 0x2d29, - 0x9d2d, 0x2f00, - 0x9d2e, 0x2ef3, - 0x9d30, 0x2ef7, - 0x9d31, 0x2ef5, - 0x9d33, 0x2eef, - 0x9d34, 0x404a, - 0x9d36, 0x2ef2, - 0x9d37, 0x2efc, - 0x9d38, 0x2ef6, - 0x9d39, 0x392e, - 0x9d3b, 0x14bf, - 0x9d3d, 0x2efe, - 0x9d3e, 0x2efb, - 0x9d3f, 0x14c0, - 0x9d40, 0x2efd, - 0x9d41, 0x2ef0, - 0x9d42, 0x2ef9, - 0x9d44, 0x3fab, - 0x9d45, 0x2ef8, - 0x9d49, 0x47cd, - 0x9d4a, 0x3061, - 0x9d4b, 0x3063, - 0x9d4c, 0x3066, - 0x9d4e, 0x4539, - 0x9d4f, 0x3060, - 0x9d50, 0x3eca, - 0x9d51, 0x156f, - 0x9d52, 0x3068, - 0x9d53, 0x305f, - 0x9d54, 0x3069, - 0x9d56, 0x3065, - 0x9d57, 0x3067, - 0x9d58, 0x306b, - 0x9d59, 0x3064, - 0x9d5a, 0x306c, - 0x9d5b, 0x3062, - 0x9d5c, 0x305e, - 0x9d5d, 0x1570, - 0x9d5e, 0x3e6e, - 0x9d5f, 0x306a, - 0x9d60, 0x1571, - 0x9d61, 0x1601, - 0x9d67, 0x2ef1, - 0x9d68, 0x31bb, - 0x9d69, 0x31b2, - 0x9d6a, 0x1603, - 0x9d6b, 0x31ae, - 0x9d6c, 0x1604, - 0x9d6d, 0x3bac, - 0x9d6e, 0x433b, - 0x9d6f, 0x31b7, - 0x9d70, 0x31b1, - 0x9d71, 0x31a7, - 0x9d72, 0x1602, - 0x9d73, 0x31b4, - 0x9d74, 0x31af, - 0x9d77, 0x31a2, - 0x9d78, 0x31a9, - 0x9d79, 0x31b8, - 0x9d7b, 0x31b5, - 0x9d7c, 0x3efe, - 0x9d7d, 0x31ad, - 0x9d7e, 0x3925, - 0x9d7f, 0x31b9, - 0x9d80, 0x31a8, - 0x9d81, 0x31a3, - 0x9d82, 0x31b6, - 0x9d83, 0x3926, - 0x9d84, 0x31a5, - 0x9d85, 0x31b3, - 0x9d86, 0x31aa, - 0x9d87, 0x31ba, - 0x9d88, 0x31a6, - 0x9d89, 0x1600, - 0x9d8a, 0x31a4, - 0x9d8b, 0x31ab, - 0x9d90, 0x32a4, - 0x9d92, 0x32a2, - 0x9d93, 0x43f3, - 0x9d94, 0x32a7, - 0x9d96, 0x32b3, - 0x9d97, 0x32aa, - 0x9d98, 0x32a3, - 0x9d99, 0x329f, - 0x9d9a, 0x32ac, - 0x9d9b, 0x32a5, - 0x9d9c, 0x32a8, - 0x9d9d, 0x32a1, - 0x9d9e, 0x32af, - 0x9d9f, 0x329e, - 0x9da0, 0x32a6, - 0x9da1, 0x32ab, - 0x9da2, 0x32ad, - 0x9da3, 0x32b0, - 0x9da4, 0x32a0, - 0x9da5, 0x3c4b, - 0x9da6, 0x32b4, - 0x9da8, 0x32ae, - 0x9da9, 0x32b2, - 0x9daa, 0x32a9, - 0x9dab, 0x3f30, - 0x9dac, 0x3362, - 0x9dad, 0x3365, - 0x9daf, 0x16b1, - 0x9db1, 0x3364, - 0x9db2, 0x3369, - 0x9db3, 0x3367, - 0x9db4, 0x16b2, - 0x9db5, 0x335e, - 0x9db6, 0x3354, - 0x9db7, 0x3353, - 0x9db8, 0x16b4, - 0x9db9, 0x3360, - 0x9dbb, 0x335d, - 0x9dbc, 0x3355, - 0x9dbd, 0x47d0, - 0x9dbe, 0x335a, - 0x9dbf, 0x32b1, - 0x9dc0, 0x43f2, - 0x9dc1, 0x3356, - 0x9dc2, 0x16b3, - 0x9dc3, 0x335c, - 0x9dc4, 0x3929, - 0x9dc5, 0x335b, - 0x9dc7, 0x3357, - 0x9dc8, 0x3363, - 0x9dc9, 0x4579, - 0x9dca, 0x3358, - 0x9dcb, 0x33f9, - 0x9dcc, 0x3366, - 0x9dcd, 0x3368, - 0x9dce, 0x335f, - 0x9dcf, 0x3359, - 0x9dd0, 0x33fa, - 0x9dd1, 0x33fc, - 0x9dd2, 0x33f6, - 0x9dd3, 0x16f0, - 0x9dd4, 0x391e, - 0x9dd5, 0x3403, - 0x9dd6, 0x3401, - 0x9dd7, 0x16f1, - 0x9dd8, 0x3400, - 0x9dd9, 0x33ff, - 0x9dda, 0x33f8, - 0x9ddb, 0x33f5, - 0x9ddc, 0x33fb, - 0x9ddd, 0x3404, - 0x9dde, 0x33f7, - 0x9ddf, 0x33fd, - 0x9de1, 0x3466, - 0x9de2, 0x346b, - 0x9de3, 0x3461, - 0x9de4, 0x3464, - 0x9de5, 0x171c, - 0x9de6, 0x3468, - 0x9de8, 0x346f, - 0x9de9, 0x33fe, - 0x9deb, 0x3462, - 0x9dec, 0x346c, - 0x9ded, 0x3470, - 0x9dee, 0x3467, - 0x9def, 0x3460, - 0x9df0, 0x346a, - 0x9df2, 0x3469, - 0x9df3, 0x346e, - 0x9df4, 0x346d, - 0x9df5, 0x3402, - 0x9df6, 0x3465, - 0x9df7, 0x345f, - 0x9df8, 0x3463, - 0x9df9, 0x173b, - 0x9dfb, 0x345e, - 0x9dfc, 0x47d1, - 0x9dfd, 0x34c1, - 0x9dfe, 0x34b8, - 0x9dff, 0x34c0, - 0x9e00, 0x34bd, - 0x9e02, 0x34b7, - 0x9e03, 0x34ba, - 0x9e04, 0x34c2, - 0x9e05, 0x34bc, - 0x9e06, 0x34bb, - 0x9e07, 0x34b9, - 0x9e09, 0x34bf, - 0x9e0a, 0x457e, - 0x9e0b, 0x34f7, - 0x9e0c, 0x457a, - 0x9e0d, 0x34f8, - 0x9e0e, 0x3928, - 0x9e0f, 0x34fa, - 0x9e10, 0x34f9, - 0x9e11, 0x34fc, - 0x9e12, 0x34fb, - 0x9e13, 0x3517, - 0x9e14, 0x3516, - 0x9e15, 0x3530, - 0x9e17, 0x3531, - 0x9e18, 0x3c44, - 0x9e19, 0x353d, - 0x9e1a, 0x1765, - 0x9e1b, 0x1769, - 0x9e1c, 0x3f84, - 0x9e1d, 0x3546, - 0x9e1e, 0x176a, - 0x9e1f, 0x4513, - 0x9e75, 0x0be3, - 0x9e79, 0x1661, - 0x9e7a, 0x336a, - 0x9e7b, 0x43f8, - 0x9e7c, 0x173d, - 0x9e7f, 0x0be4, - 0x9e80, 0x2611, - 0x9e81, 0x3f0f, - 0x9e82, 0x0f7a, - 0x9e83, 0x2afc, - 0x9e84, 0x3f76, - 0x9e85, 0x3ef2, - 0x9e86, 0x2d31, - 0x9e88, 0x2d30, - 0x9e89, 0x2f02, - 0x9e8a, 0x2f01, - 0x9e8b, 0x14c1, - 0x9e8c, 0x306e, - 0x9e8d, 0x2f03, - 0x9e8e, 0x306d, - 0x9e90, 0x3931, - 0x9e91, 0x31bd, - 0x9e92, 0x1605, - 0x9e93, 0x1607, - 0x9e94, 0x31bc, - 0x9e95, 0x3932, - 0x9e96, 0x3fbc, - 0x9e97, 0x1606, - 0x9e98, 0x3f27, - 0x9e99, 0x32b6, - 0x9e9a, 0x32b8, - 0x9e9b, 0x32b7, - 0x9e9c, 0x336b, - 0x9e9d, 0x16b5, - 0x9e9e, 0x3933, - 0x9e9f, 0x171d, - 0x9ea0, 0x34c3, - 0x9ea1, 0x34fd, - 0x9ea2, 0x3934, - 0x9ea4, 0x354a, - 0x9ea5, 0x0be5, - 0x9ea6, 0x4944, - 0x9ea7, 0x287c, - 0x9ea8, 0x3f75, - 0x9ea9, 0x1285, - 0x9eaa, 0x3936, - 0x9eab, 0x3e92, - 0x9eac, 0x43f4, - 0x9ead, 0x2d34, - 0x9eae, 0x2d33, - 0x9eaf, 0x3937, - 0x9eb0, 0x2f04, - 0x9eb1, 0x47d4, - 0x9eb4, 0x1608, - 0x9eb5, 0x1662, - 0x9eb6, 0x3405, - 0x9eb7, 0x3542, - 0x9ebb, 0x0be6, - 0x9ebc, 0x10ff, - 0x9ebd, 0x47d5, - 0x9ebe, 0x1286, - 0x9ebf, 0x3d78, - 0x9ec0, 0x31be, - 0x9ec1, 0x3939, - 0x9ec2, 0x3471, - 0x9ec3, 0x0dbb, - 0x9ec4, 0x4514, - 0x9ec6, 0x47d6, - 0x9ec7, 0x4577, - 0x9ec8, 0x2f05, - 0x9ecc, 0x1751, - 0x9ecd, 0x0dbc, - 0x9ece, 0x1287, - 0x9ecf, 0x14c2, - 0x9ed0, 0x3472, - 0x9ed1, 0x0dbd, - 0x9ed3, 0x2afd, - 0x9ed4, 0x13b1, - 0x9ed5, 0x2d35, - 0x9ed8, 0x13b0, - 0x9eda, 0x2f06, - 0x9edb, 0x14c6, - 0x9edc, 0x14c4, - 0x9ede, 0x14c3, - 0x9edf, 0x306f, - 0x9ee0, 0x1572, - 0x9ee2, 0x47d8, - 0x9ee4, 0x32ba, - 0x9ee5, 0x32b9, - 0x9ee6, 0x32bc, - 0x9ee7, 0x32bb, - 0x9ee8, 0x1663, - 0x9eeb, 0x336c, - 0x9eed, 0x336e, - 0x9eee, 0x336d, - 0x9eef, 0x16b6, - 0x9ef0, 0x3406, - 0x9ef1, 0x47d9, - 0x9ef2, 0x3473, - 0x9ef4, 0x171e, - 0x9ef5, 0x34fe, - 0x9ef6, 0x3518, - 0x9ef7, 0x1762, - 0x9ef8, 0x47da, - 0x9ef9, 0x2360, - 0x9efa, 0x2d37, - 0x9efb, 0x2f07, - 0x9efc, 0x31bf, - 0x9efd, 0x2612, - 0x9efe, 0x47ce, - 0x9eff, 0x2f08, - 0x9f00, 0x3071, - 0x9f01, 0x3070, - 0x9f02, 0x3940, - 0x9f06, 0x3475, - 0x9f07, 0x173f, - 0x9f08, 0x3941, - 0x9f09, 0x34ff, - 0x9f0a, 0x3519, - 0x9f0e, 0x0f7b, - 0x9f0f, 0x2afe, - 0x9f12, 0x2d38, - 0x9f13, 0x0f7c, - 0x9f15, 0x1573, - 0x9f16, 0x3072, - 0x9f17, 0x3945, - 0x9f18, 0x3370, - 0x9f19, 0x16b7, - 0x9f1a, 0x3371, - 0x9f1b, 0x336f, - 0x9f1c, 0x3476, - 0x9f1e, 0x34c4, - 0x9f20, 0x0f7d, - 0x9f22, 0x2f0b, - 0x9f23, 0x2f0a, - 0x9f24, 0x2f09, - 0x9f25, 0x3073, - 0x9f26, 0x3f90, - 0x9f27, 0x4620, - 0x9f28, 0x3077, - 0x9f29, 0x3076, - 0x9f2a, 0x3075, - 0x9f2b, 0x3074, - 0x9f2c, 0x1574, - 0x9f2d, 0x31c0, - 0x9f2e, 0x32be, - 0x9f2f, 0x1664, - 0x9f30, 0x32bd, - 0x9f31, 0x3372, - 0x9f32, 0x3409, - 0x9f33, 0x3408, - 0x9f34, 0x16f2, - 0x9f35, 0x3407, - 0x9f36, 0x3479, - 0x9f37, 0x3478, - 0x9f38, 0x3477, - 0x9f39, 0x3947, - 0x9f3b, 0x1100, - 0x9f3d, 0x2d39, - 0x9f3e, 0x14c7, - 0x9f40, 0x31c1, - 0x9f42, 0x340a, - 0x9f43, 0x347a, - 0x9f44, 0x47db, - 0x9f45, 0x394a, - 0x9f46, 0x34c5, - 0x9f47, 0x3500, - 0x9f48, 0x3532, - 0x9f49, 0x354c, - 0x9f4a, 0x1101, - 0x9f4b, 0x14c8, - 0x9f4c, 0x3078, - 0x9f4d, 0x31c3, - 0x9f4e, 0x3373, - 0x9f4f, 0x347b, - 0x9f50, 0x4943, - 0x9f52, 0x1289, - 0x9f53, 0x3f80, - 0x9f54, 0x2f0c, - 0x9f55, 0x3079, - 0x9f56, 0x31c4, - 0x9f59, 0x32c3, - 0x9f5a, 0x3f23, - 0x9f5b, 0x32bf, - 0x9f5c, 0x16b8, - 0x9f5d, 0x32c2, - 0x9f5e, 0x32c1, - 0x9f5f, 0x1665, - 0x9f60, 0x32c0, - 0x9f61, 0x1667, - 0x9f62, 0x394f, - 0x9f63, 0x1666, - 0x9f64, 0x3375, - 0x9f65, 0x3374, - 0x9f66, 0x16b9, - 0x9f69, 0x3950, - 0x9f6a, 0x16f4, - 0x9f6b, 0x340b, - 0x9f6c, 0x16f3, - 0x9f6e, 0x347e, - 0x9f70, 0x347d, - 0x9f71, 0x347c, - 0x9f72, 0x1741, - 0x9f74, 0x34c6, - 0x9f77, 0x1740, - 0x9f78, 0x3501, - 0x9f79, 0x3504, - 0x9f7a, 0x3503, - 0x9f7b, 0x3502, - 0x9f7e, 0x354b, - 0x9f7f, 0x4680, - 0x9f8d, 0x13b2, - 0x9f8e, 0x3952, - 0x9f90, 0x157c, - 0x9f91, 0x32c4, - 0x9f92, 0x3376, - 0x9f94, 0x16f5, - 0x9f95, 0x340c, - 0x9f98, 0x354d, - 0x9f99, 0x4587, - 0x9f9c, 0x13b3, - 0x9f9f, 0x4646, - 0x9fa0, 0x2f0d, - 0x9fa2, 0x340d, - 0x9fa4, 0x351a, - 0x9fa5, 0x3f70, - 0xfa0c, 0x0274, - 0xfa0d, 0x2381, - 0xfe30, 0x006d, - 0xfe31, 0x007a, - 0xfe33, 0x35af, - 0xfe34, 0x35b1, - 0xfe35, 0x0082, - 0xfe37, 0x0086, - 0xfe39, 0x008a, - 0xfe3b, 0x008e, - 0xfe3d, 0x0092, - 0xfe3f, 0x0096, - 0xfe41, 0x009a, - 0xfe43, 0x009e, - 0xfe49, 0x00c7, - 0xfe4b, 0x00cb, - 0xfe4d, 0x00c9, - 0xfe4f, 0x35b2, - 0xfe50, 0x0070, - 0xfe52, 0x0072, - 0xfe54, 0x0074, - 0xfe59, 0x00a0, - 0xfe5f, 0x00cd, - 0xfe62, 0x00df, - 0xfe69, 0x010c, - 0xff01, 0x006c, - 0xff02, 0x36e4, - 0xff03, 0x00ae, - 0xff04, 0x0103, - 0xff05, 0x0108, - 0xff06, 0x00af, - 0xff07, 0x36e3, - 0xff08, 0x0080, - 0xff0a, 0x00b0, - 0xff0b, 0x00d0, - 0xff0c, 0x0064, - 0xff0d, 0x00d1, - 0xff0e, 0x0067, - 0xff0f, 0x0101, - 0xff10, 0x014d, - 0xff1a, 0x006a, - 0xff1b, 0x0069, - 0xff1c, 0x00d6, - 0xff1d, 0x00d8, - 0xff1e, 0x00d7, - 0xff1f, 0x006b, - 0xff20, 0x0109, - 0xff21, 0x016d, - 0xff3b, 0x35be, - 0xff3c, 0x0102, - 0xff3d, 0x35bf, - 0xff3e, 0x35b4, - 0xff3f, 0x00c5, - 0xff41, 0x0187, - 0xff5b, 0x0084, - 0xff5c, 0x0078, - 0xff5d, 0x0085, - 0xff64, 0x0071, - 0xffe2, 0x36e1, - 0xffe4, 0x36e2, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 cns13UniCNSUCS2HEnc16 = { - 0, - { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - cns13UniCNSUCS2HMap2, 15455 -}; - -static Gushort cns13UniCNSUCS2VMap2[30936] = { - 0x0000, 0x0000, - 0x0020, 0x0001, - 0x00a2, 0x0106, - 0x00a5, 0x0104, - 0x00a7, 0x00b2, - 0x00a8, 0x35b3, - 0x00ac, 0x36e1, - 0x00b0, 0x0118, - 0x00b1, 0x00d4, - 0x00b7, 0x0073, - 0x00c0, 0x4964, - 0x00c1, 0x4962, - 0x00c8, 0x4968, - 0x00c9, 0x4966, - 0x00ca, 0x4971, - 0x00d2, 0x496c, - 0x00d3, 0x496a, - 0x00d7, 0x00d2, - 0x00e0, 0x4975, - 0x00e1, 0x4973, - 0x00e8, 0x497a, - 0x00e9, 0x4978, - 0x00ea, 0x4990, - 0x00ec, 0x497e, - 0x00ed, 0x497c, - 0x00f2, 0x4982, - 0x00f3, 0x4980, - 0x00f7, 0x00d3, - 0x00f8, 0x4998, - 0x00f9, 0x4986, - 0x00fa, 0x4984, - 0x00fc, 0x498b, - 0x0100, 0x4961, - 0x0101, 0x4972, - 0x0112, 0x4965, - 0x0113, 0x4977, - 0x011a, 0x4967, - 0x011b, 0x4979, - 0x012b, 0x497b, - 0x014b, 0x4999, - 0x014c, 0x4969, - 0x014d, 0x497f, - 0x0153, 0x4997, - 0x016b, 0x4983, - 0x01cd, 0x4963, - 0x01ce, 0x4974, - 0x01d0, 0x497d, - 0x01d1, 0x496b, - 0x01d2, 0x4981, - 0x01d4, 0x4985, - 0x01d6, 0x4987, - 0x01d8, 0x4988, - 0x01da, 0x4989, - 0x01dc, 0x498a, - 0x0250, 0x4993, - 0x0251, 0x4976, - 0x0254, 0x4995, - 0x025b, 0x4994, - 0x0261, 0x4991, - 0x026a, 0x499b, - 0x0275, 0x4996, - 0x0283, 0x4992, - 0x028a, 0x499a, - 0x02c6, 0x35b4, - 0x02c7, 0x01f8, - 0x02ca, 0x01f7, - 0x02cb, 0x01f9, - 0x02d9, 0x01f6, - 0x0308, 0x35b3, - 0x0391, 0x01a1, - 0x03a3, 0x01b2, - 0x03b1, 0x01b9, - 0x03c3, 0x01ca, - 0x0401, 0x3670, - 0x0410, 0x366a, - 0x0416, 0x3671, - 0x0436, 0x3692, - 0x0451, 0x3691, - 0x1ebe, 0x496e, - 0x1ebf, 0x498d, - 0x1ec0, 0x4970, - 0x1ec1, 0x498f, - 0x2013, 0x0079, - 0x2014, 0x007b, - 0x2018, 0x00a6, - 0x201c, 0x00a8, - 0x2022, 0x0068, - 0x2025, 0x006f, - 0x2026, 0x006e, - 0x2032, 0x00ad, - 0x2035, 0x00ac, - 0x203b, 0x00b1, - 0x203e, 0x00c3, - 0x20ac, 0x44c1, - 0x2103, 0x010a, - 0x2105, 0x00c2, - 0x2109, 0x010b, - 0x2116, 0x36e6, - 0x2121, 0x36e7, - 0x2160, 0x0157, - 0x2170, 0x020e, - 0x2190, 0x00f8, - 0x2191, 0x00f5, - 0x2192, 0x00f7, - 0x2193, 0x00f6, - 0x2196, 0x00f9, - 0x2198, 0x00fc, - 0x2199, 0x00fb, - 0x21b8, 0x36ad, - 0x21e7, 0x36ac, - 0x221a, 0x00d5, - 0x221e, 0x00dc, - 0x221f, 0x00e9, - 0x2220, 0x00e8, - 0x2223, 0x00fe, - 0x2225, 0x00fd, - 0x2229, 0x00e5, - 0x222b, 0x00ed, - 0x222e, 0x00ee, - 0x2234, 0x00f0, - 0x2235, 0x00ef, - 0x223c, 0x00e4, - 0x2252, 0x00dd, - 0x2260, 0x00db, - 0x2261, 0x00de, - 0x2266, 0x00d9, - 0x22a5, 0x00e7, - 0x22bf, 0x00ea, - 0x2400, 0x0232, - 0x2421, 0x0252, - 0x2460, 0x01fa, - 0x2474, 0x0204, - 0x2500, 0x0137, - 0x2502, 0x0138, - 0x250c, 0x013a, - 0x2510, 0x013b, - 0x2514, 0x013c, - 0x2518, 0x013d, - 0x251c, 0x0135, - 0x2524, 0x0134, - 0x252c, 0x0133, - 0x2534, 0x0132, - 0x253c, 0x0131, - 0x2550, 0x0142, - 0x2551, 0x370a, - 0x2552, 0x36f8, - 0x2553, 0x3701, - 0x2554, 0x36ef, - 0x2555, 0x36fa, - 0x2556, 0x3703, - 0x2557, 0x36f1, - 0x2558, 0x36fe, - 0x2559, 0x3707, - 0x255a, 0x36f5, - 0x255b, 0x3700, - 0x255c, 0x3709, - 0x255d, 0x36f7, - 0x255e, 0x0143, - 0x255f, 0x3704, - 0x2560, 0x36f2, - 0x2561, 0x0145, - 0x2562, 0x3706, - 0x2563, 0x36f4, - 0x2564, 0x36f9, - 0x2565, 0x3702, - 0x2566, 0x36f0, - 0x2567, 0x36ff, - 0x2568, 0x3708, - 0x2569, 0x36f6, - 0x256a, 0x0144, - 0x256b, 0x3705, - 0x256c, 0x36f3, - 0x256d, 0x013e, - 0x256f, 0x0141, - 0x2570, 0x0140, - 0x2571, 0x014a, - 0x2581, 0x0122, - 0x2589, 0x0130, - 0x258a, 0x012f, - 0x258b, 0x012e, - 0x258c, 0x012d, - 0x258d, 0x012c, - 0x258e, 0x012b, - 0x258f, 0x012a, - 0x2593, 0x3710, - 0x2594, 0x0136, - 0x2595, 0x0139, - 0x25a0, 0x00be, - 0x25a1, 0x00bd, - 0x25b2, 0x00b7, - 0x25b3, 0x00b6, - 0x25bc, 0x00c0, - 0x25bd, 0x00bf, - 0x25c6, 0x00bc, - 0x25c7, 0x00bb, - 0x25cb, 0x00b4, - 0x25ce, 0x00b8, - 0x25cf, 0x00b5, - 0x25e2, 0x0146, - 0x25e4, 0x0149, - 0x25e5, 0x0148, - 0x2605, 0x00ba, - 0x2606, 0x00b9, - 0x2609, 0x00f4, - 0x2640, 0x00f1, - 0x2641, 0x00f3, - 0x2642, 0x00f2, - 0x273d, 0x35c0, - 0x2e80, 0x44c8, - 0x2e84, 0x451c, - 0x2e86, 0x451d, - 0x2e8a, 0x4520, - 0x2e8c, 0x4521, - 0x2e95, 0x4523, - 0x2e9c, 0x4524, - 0x2e9d, 0x02dc, - 0x2ea5, 0x4525, - 0x2ea7, 0x4526, - 0x2eaa, 0x4527, - 0x2eac, 0x4528, - 0x2eae, 0x4529, - 0x2eb6, 0x452a, - 0x2ebc, 0x452b, - 0x2ebe, 0x452c, - 0x2ec6, 0x0509, - 0x2eca, 0x452d, - 0x2ecc, 0x452e, - 0x2ecf, 0x4530, - 0x2ed6, 0x4531, - 0x2ede, 0x4533, - 0x2ee3, 0x09f6, - 0x2f33, 0x0227, - 0x3000, 0x0063, - 0x3001, 0x0065, - 0x3003, 0x00b3, - 0x3005, 0x35ba, - 0x3008, 0x0094, - 0x300a, 0x0090, - 0x300c, 0x0098, - 0x300e, 0x009c, - 0x3010, 0x008c, - 0x3012, 0x0105, - 0x3014, 0x0088, - 0x301d, 0x00aa, - 0x3021, 0x0161, - 0x3041, 0x35c1, - 0x309b, 0x44c6, - 0x309d, 0x35b7, - 0x30a1, 0x3614, - 0x30fc, 0x35bd, - 0x30fd, 0x35b5, - 0x3105, 0x01d1, - 0x3231, 0x36e5, - 0x32a3, 0x00c1, - 0x338e, 0x0115, - 0x339c, 0x0110, - 0x33a1, 0x0114, - 0x33c4, 0x0117, - 0x33ce, 0x0113, - 0x33d1, 0x00ec, - 0x33d2, 0x00eb, - 0x33d5, 0x010f, - 0x3435, 0x39bd, - 0x3440, 0x3c67, - 0x344c, 0x4593, - 0x3464, 0x3a85, - 0x3473, 0x3dc5, - 0x347a, 0x4033, - 0x347d, 0x4597, - 0x347e, 0x46a3, - 0x3493, 0x439e, - 0x3496, 0x37dc, - 0x34a5, 0x4598, - 0x34af, 0x3c7f, - 0x34bc, 0x4380, - 0x34c1, 0x44fb, - 0x34c8, 0x3d00, - 0x34df, 0x3ea4, - 0x34e4, 0x3e54, - 0x34fb, 0x3dca, - 0x3506, 0x4336, - 0x353e, 0x44e7, - 0x3551, 0x45a1, - 0x3553, 0x43a5, - 0x3561, 0x40d8, - 0x356d, 0x45a4, - 0x3570, 0x3b2f, - 0x3572, 0x45a5, - 0x3577, 0x3ecb, - 0x3578, 0x4379, - 0x3584, 0x39fb, - 0x3597, 0x3b2d, - 0x3598, 0x45b0, - 0x35a1, 0x40e2, - 0x35a5, 0x45b1, - 0x35ad, 0x3efc, - 0x35bf, 0x45b2, - 0x35c1, 0x4580, - 0x35c5, 0x45b4, - 0x35c7, 0x459f, - 0x35ca, 0x3e43, - 0x35ce, 0x3e81, - 0x35d2, 0x3fc9, - 0x35d6, 0x3fb5, - 0x35db, 0x470d, - 0x35dd, 0x43ac, - 0x35f1, 0x4696, - 0x35f2, 0x4627, - 0x35f3, 0x3f6c, - 0x35fb, 0x45c8, - 0x35fe, 0x3f6a, - 0x3609, 0x45f5, - 0x3618, 0x4871, - 0x361a, 0x461a, - 0x3623, 0x40c6, - 0x362d, 0x3e86, - 0x3635, 0x492e, - 0x3639, 0x4165, - 0x363e, 0x3a08, - 0x3647, 0x4806, - 0x3648, 0x3806, - 0x3649, 0x4013, - 0x364e, 0x4698, - 0x365f, 0x3df3, - 0x367a, 0x3ee3, - 0x3681, 0x45a6, - 0x369a, 0x3c71, - 0x36a5, 0x4902, - 0x36aa, 0x3b30, - 0x36ac, 0x4900, - 0x36b0, 0x3cdf, - 0x36b1, 0x40cd, - 0x36b5, 0x3bc2, - 0x36b9, 0x4887, - 0x36bc, 0x3cff, - 0x36c1, 0x37c5, - 0x36c3, 0x40e5, - 0x36c4, 0x3905, - 0x36c5, 0x4296, - 0x36c7, 0x3d3a, - 0x36c8, 0x4820, - 0x36d3, 0x3a38, - 0x36d4, 0x3bb3, - 0x36d6, 0x3d0c, - 0x36dd, 0x3a36, - 0x36e1, 0x397c, - 0x36e2, 0x3cdd, - 0x36e5, 0x4216, - 0x36e6, 0x40fc, - 0x36f5, 0x3a18, - 0x3701, 0x3a34, - 0x3703, 0x460f, - 0x3708, 0x40ff, - 0x370a, 0x3cd5, - 0x370d, 0x4238, - 0x371c, 0x3dfe, - 0x3722, 0x3979, - 0x3723, 0x3980, - 0x3725, 0x3849, - 0x372c, 0x3c8c, - 0x372d, 0x3d37, - 0x3730, 0x495c, - 0x3732, 0x4106, - 0x3733, 0x3997, - 0x373a, 0x3e56, - 0x3740, 0x4202, - 0x3743, 0x4036, - 0x3762, 0x3db6, - 0x376f, 0x47cb, - 0x3797, 0x45ed, - 0x37a0, 0x3a28, - 0x37b9, 0x43b7, - 0x37be, 0x393e, - 0x37f2, 0x3ba1, - 0x37f8, 0x42d2, - 0x37fb, 0x3ef5, - 0x380f, 0x462c, - 0x3819, 0x39af, - 0x3820, 0x462f, - 0x382d, 0x412e, - 0x3836, 0x4133, - 0x3838, 0x43bb, - 0x3863, 0x46c3, - 0x38a0, 0x4145, - 0x38c3, 0x3912, - 0x38cc, 0x4076, - 0x38d1, 0x3a95, - 0x38fa, 0x44eb, - 0x3908, 0x4632, - 0x3914, 0x43be, - 0x3927, 0x3c31, - 0x3932, 0x4182, - 0x393f, 0x4633, - 0x394d, 0x4634, - 0x3963, 0x4163, - 0x3980, 0x3874, - 0x3989, 0x4638, - 0x398a, 0x3ce8, - 0x3992, 0x4376, - 0x3999, 0x39ba, - 0x399b, 0x3db3, - 0x39a1, 0x3e19, - 0x39a4, 0x3e0f, - 0x39b8, 0x463b, - 0x39dc, 0x3ece, - 0x39e2, 0x46c8, - 0x39e5, 0x393b, - 0x39ec, 0x4310, - 0x39f8, 0x463e, - 0x39fb, 0x4345, - 0x39fe, 0x4368, - 0x3a01, 0x41e0, - 0x3a03, 0x4640, - 0x3a06, 0x4377, - 0x3a17, 0x4190, - 0x3a18, 0x438f, - 0x3a29, 0x3a5e, - 0x3a2a, 0x3edf, - 0x3a34, 0x4319, - 0x3a4b, 0x4644, - 0x3a52, 0x3ed3, - 0x3a57, 0x419e, - 0x3a5c, 0x3fc4, - 0x3a5e, 0x3b07, - 0x3a66, 0x419c, - 0x3a67, 0x4333, - 0x3a97, 0x4647, - 0x3aab, 0x4091, - 0x3abd, 0x4649, - 0x3ade, 0x414c, - 0x3ae0, 0x3a7a, - 0x3af0, 0x46b2, - 0x3af2, 0x464c, - 0x3afb, 0x3af2, - 0x3b0e, 0x38e8, - 0x3b19, 0x46c5, - 0x3b22, 0x464e, - 0x3b2b, 0x4956, - 0x3b39, 0x474b, - 0x3b42, 0x4650, - 0x3b58, 0x4652, - 0x3b60, 0x393a, - 0x3b71, 0x4656, - 0x3b72, 0x4655, - 0x3b7b, 0x4657, - 0x3b7c, 0x385a, - 0x3b80, 0x41e2, - 0x3b96, 0x3a9c, - 0x3b99, 0x3a98, - 0x3ba1, 0x41e9, - 0x3bbc, 0x43c8, - 0x3bbe, 0x3db1, - 0x3bc2, 0x4134, - 0x3bc4, 0x3aa0, - 0x3bd7, 0x3aac, - 0x3bdd, 0x465f, - 0x3bec, 0x4664, - 0x3bf2, 0x4666, - 0x3bf3, 0x41f3, - 0x3bf4, 0x3a6e, - 0x3c0d, 0x41f7, - 0x3c11, 0x3e40, - 0x3c15, 0x3998, - 0x3c54, 0x3e00, - 0x3ccb, 0x4670, - 0x3ccd, 0x3ce5, - 0x3cd1, 0x4003, - 0x3cd6, 0x3cf7, - 0x3cdc, 0x404e, - 0x3ceb, 0x4217, - 0x3cef, 0x4675, - 0x3d13, 0x3773, - 0x3d1d, 0x393c, - 0x3d32, 0x4957, - 0x3d3b, 0x4245, - 0x3d46, 0x4685, - 0x3d4c, 0x3ceb, - 0x3d4e, 0x4242, - 0x3d51, 0x38ea, - 0x3d5f, 0x4159, - 0x3d62, 0x3c5e, - 0x3d69, 0x3cea, - 0x3d6a, 0x4689, - 0x3d6f, 0x3cfc, - 0x3d75, 0x468a, - 0x3d7d, 0x3c2f, - 0x3d85, 0x494b, - 0x3d8a, 0x468d, - 0x3d8f, 0x3abd, - 0x3d91, 0x468f, - 0x3da5, 0x3d56, - 0x3dad, 0x4699, - 0x3db4, 0x40a6, - 0x3dbf, 0x37d0, - 0x3dc6, 0x48de, - 0x3dc7, 0x4164, - 0x3dcc, 0x3d6f, - 0x3dcd, 0x3af3, - 0x3dd3, 0x37e1, - 0x3ddb, 0x3fff, - 0x3de7, 0x3999, - 0x3de8, 0x425d, - 0x3deb, 0x3e5a, - 0x3df3, 0x46d4, - 0x3df7, 0x48ab, - 0x3dfc, 0x462b, - 0x3dfd, 0x3c14, - 0x3e06, 0x491d, - 0x3e40, 0x4169, - 0x3e43, 0x436d, - 0x3e48, 0x4595, - 0x3e55, 0x427f, - 0x3e74, 0x3ee2, - 0x3ea8, 0x4304, - 0x3ea9, 0x46ed, - 0x3eaa, 0x4075, - 0x3ead, 0x3b9d, - 0x3eb1, 0x3ad8, - 0x3eb8, 0x3a4b, - 0x3ebf, 0x3b0b, - 0x3ec2, 0x3bd8, - 0x3ec7, 0x3975, - 0x3eca, 0x46f1, - 0x3ecc, 0x3be2, - 0x3ed0, 0x3854, - 0x3ed1, 0x46f2, - 0x3ed6, 0x3cad, - 0x3ed7, 0x429f, - 0x3eda, 0x3d02, - 0x3ede, 0x39f2, - 0x3ee1, 0x3ca8, - 0x3ee2, 0x46f6, - 0x3ee7, 0x3bdc, - 0x3ee9, 0x3ca4, - 0x3eeb, 0x396a, - 0x3ef0, 0x46f7, - 0x3ef3, 0x3add, - 0x3ef4, 0x46f8, - 0x3efa, 0x46f9, - 0x3efc, 0x3be8, - 0x3eff, 0x3af5, - 0x3f00, 0x3c0d, - 0x3f04, 0x42c3, - 0x3f06, 0x3ad7, - 0x3f0e, 0x46fb, - 0x3f53, 0x46fc, - 0x3f58, 0x3ae9, - 0x3f59, 0x4089, - 0x3f63, 0x3ae6, - 0x3f7c, 0x4700, - 0x3f93, 0x45cd, - 0x3fc0, 0x43cf, - 0x3fd7, 0x43d1, - 0x3fdc, 0x4704, - 0x3fe5, 0x46df, - 0x3fed, 0x4335, - 0x3ff9, 0x45d7, - 0x3ffa, 0x4354, - 0x4004, 0x410e, - 0x401d, 0x4709, - 0x4039, 0x470b, - 0x4045, 0x470c, - 0x4053, 0x45b6, - 0x4057, 0x399d, - 0x4062, 0x3bcb, - 0x4065, 0x3fd3, - 0x406a, 0x470f, - 0x406f, 0x4710, - 0x40a8, 0x43d5, - 0x40bb, 0x45c0, - 0x40bf, 0x3eec, - 0x40c8, 0x3b0e, - 0x40d8, 0x41ab, - 0x40df, 0x3e17, - 0x40fa, 0x3ebe, - 0x4103, 0x43d7, - 0x4104, 0x425c, - 0x4109, 0x471c, - 0x410e, 0x3b1b, - 0x4132, 0x3b25, - 0x4167, 0x471f, - 0x416c, 0x38ae, - 0x416e, 0x3b23, - 0x417f, 0x3b82, - 0x4190, 0x46c0, - 0x41b2, 0x4720, - 0x41c4, 0x4723, - 0x41ca, 0x373f, - 0x41cf, 0x4726, - 0x41db, 0x37bf, - 0x41ef, 0x3743, - 0x41f9, 0x3b3e, - 0x4211, 0x3b41, - 0x4240, 0x37f1, - 0x4260, 0x472b, - 0x426a, 0x3b55, - 0x427a, 0x472c, - 0x428c, 0x472f, - 0x4294, 0x4731, - 0x42b5, 0x4010, - 0x42b9, 0x38a6, - 0x42bc, 0x3c8a, - 0x42f4, 0x3bb9, - 0x42fb, 0x3cee, - 0x42fc, 0x41e6, - 0x432b, 0x377d, - 0x436e, 0x46ca, - 0x4397, 0x473b, - 0x43ba, 0x435f, - 0x43c1, 0x4695, - 0x43d9, 0x433e, - 0x43df, 0x3e49, - 0x43ed, 0x4745, - 0x43f2, 0x3e48, - 0x4401, 0x474a, - 0x4402, 0x3b73, - 0x4413, 0x474f, - 0x4425, 0x4751, - 0x442d, 0x4752, - 0x447a, 0x37af, - 0x448f, 0x4758, - 0x449f, 0x3ae2, - 0x44a0, 0x37ed, - 0x44a2, 0x4079, - 0x44b0, 0x475c, - 0x44b7, 0x3fa1, - 0x44c0, 0x3c07, - 0x44c5, 0x4210, - 0x44ce, 0x3d23, - 0x44dd, 0x39dd, - 0x44df, 0x3d22, - 0x44e4, 0x37e2, - 0x44e9, 0x41cf, - 0x44ea, 0x3b71, - 0x44eb, 0x3cf2, - 0x44ec, 0x3eb4, - 0x44f4, 0x3992, - 0x4503, 0x469f, - 0x4504, 0x4763, - 0x4509, 0x3e50, - 0x450b, 0x37d4, - 0x4516, 0x37f9, - 0x451d, 0x3767, - 0x4527, 0x37f7, - 0x452e, 0x3cd3, - 0x4533, 0x3c51, - 0x453b, 0x476a, - 0x453d, 0x38c4, - 0x453f, 0x3e12, - 0x4543, 0x37f3, - 0x4551, 0x3ae4, - 0x4552, 0x40b3, - 0x4555, 0x423e, - 0x455c, 0x378b, - 0x4562, 0x4940, - 0x456a, 0x3804, - 0x4577, 0x476e, - 0x4585, 0x38c5, - 0x45e9, 0x3ee4, - 0x4606, 0x4773, - 0x460f, 0x3815, - 0x4615, 0x3843, - 0x4617, 0x4774, - 0x465b, 0x381d, - 0x467a, 0x39e9, - 0x4680, 0x3d01, - 0x46cf, 0x3ba0, - 0x46d0, 0x3dfa, - 0x46f5, 0x3b9f, - 0x4713, 0x3833, - 0x4718, 0x3dc7, - 0x474e, 0x3ebc, - 0x477c, 0x3dcd, - 0x4798, 0x4781, - 0x47a6, 0x40a3, - 0x47b6, 0x3eea, - 0x47d5, 0x431a, - 0x47ed, 0x4783, - 0x47f4, 0x432f, - 0x4800, 0x461e, - 0x480b, 0x4352, - 0x4837, 0x4787, - 0x485d, 0x410f, - 0x4871, 0x3d03, - 0x489b, 0x3bbd, - 0x48ad, 0x4791, - 0x48ae, 0x494d, - 0x48d0, 0x3da7, - 0x48dd, 0x4120, - 0x48ed, 0x4288, - 0x48f3, 0x3ec1, - 0x48fa, 0x3e44, - 0x4906, 0x3bc7, - 0x4911, 0x4584, - 0x491e, 0x4794, - 0x4925, 0x3c0f, - 0x492a, 0x46ae, - 0x492d, 0x46cd, - 0x4935, 0x3cc3, - 0x493c, 0x3bf8, - 0x493e, 0x3d06, - 0x4945, 0x47a3, - 0x4951, 0x47a4, - 0x4953, 0x42ad, - 0x4965, 0x3899, - 0x496a, 0x47a9, - 0x4972, 0x3a24, - 0x4989, 0x379b, - 0x49a1, 0x38b7, - 0x49a7, 0x47ae, - 0x49df, 0x38aa, - 0x49e5, 0x47b1, - 0x49e7, 0x4621, - 0x4a0f, 0x38c3, - 0x4a1d, 0x3bec, - 0x4a24, 0x47b2, - 0x4a35, 0x47b4, - 0x4a96, 0x3ce7, - 0x4ab4, 0x4361, - 0x4ab8, 0x3da8, - 0x4ad1, 0x38e3, - 0x4ae4, 0x47b7, - 0x4aff, 0x38f2, - 0x4b19, 0x47b9, - 0x4b2c, 0x461f, - 0x4b37, 0x41a9, - 0x4b6f, 0x3c16, - 0x4b70, 0x47c0, - 0x4b72, 0x38fc, - 0x4b7b, 0x3c8d, - 0x4b7e, 0x400a, - 0x4b8e, 0x39f7, - 0x4b90, 0x3c20, - 0x4b93, 0x3a8c, - 0x4b96, 0x3942, - 0x4b97, 0x3c24, - 0x4b9d, 0x47c2, - 0x4bbd, 0x3c23, - 0x4bbe, 0x3954, - 0x4bc0, 0x3ddc, - 0x4c04, 0x3fbb, - 0x4c07, 0x3fb7, - 0x4c0e, 0x390c, - 0x4c3b, 0x3f3c, - 0x4c3e, 0x457b, - 0x4c5b, 0x3ed9, - 0x4c6d, 0x47c9, - 0x4c7d, 0x3e66, - 0x4ca4, 0x48be, - 0x4cae, 0x3c42, - 0x4cb0, 0x3c45, - 0x4cb7, 0x3e21, - 0x4ccd, 0x4578, - 0x4ce1, 0x3ef3, - 0x4ced, 0x40ab, - 0x4d09, 0x3ed6, - 0x4d10, 0x4117, - 0x4d34, 0x3935, - 0x4d91, 0x43f5, - 0x4d9c, 0x48c4, - 0x4e00, 0x0253, - 0x4e01, 0x0255, - 0x4e03, 0x0256, - 0x4e04, 0x48fe, - 0x4e07, 0x1771, - 0x4e08, 0x0269, - 0x4e09, 0x0267, - 0x4e0a, 0x026a, - 0x4e0b, 0x0268, - 0x4e0c, 0x1772, - 0x4e0d, 0x0294, - 0x4e0e, 0x177a, - 0x4e0f, 0x1778, - 0x4e10, 0x0293, - 0x4e11, 0x0292, - 0x4e14, 0x02f2, - 0x4e15, 0x02f1, - 0x4e16, 0x02f0, - 0x4e18, 0x02f3, - 0x4e19, 0x02ef, - 0x4e1a, 0x48fd, - 0x4e1c, 0x48e0, - 0x4e1e, 0x036e, - 0x4e21, 0x3d6d, - 0x4e24, 0x458d, - 0x4e26, 0x0528, - 0x4e28, 0x0218, - 0x4e2a, 0x3f57, - 0x4e2b, 0x026b, - 0x4e2c, 0x44f3, - 0x4e2d, 0x0295, - 0x4e2e, 0x177b, - 0x4e30, 0x0296, - 0x4e31, 0x178e, - 0x4e32, 0x0415, - 0x4e33, 0x18f4, - 0x4e36, 0x0219, - 0x4e37, 0x4517, - 0x4e38, 0x026c, - 0x4e39, 0x0297, - 0x4e3b, 0x02f4, - 0x4e3c, 0x178f, - 0x4e3d, 0x4537, - 0x4e3f, 0x021a, - 0x4e41, 0x36af, - 0x4e42, 0x176c, - 0x4e43, 0x0257, - 0x4e45, 0x026e, - 0x4e47, 0x1773, - 0x4e48, 0x026f, - 0x4e49, 0x408e, - 0x4e4b, 0x0298, - 0x4e4d, 0x02f5, - 0x4e4e, 0x02f7, - 0x4e4f, 0x02f6, - 0x4e52, 0x0370, - 0x4e56, 0x0529, - 0x4e58, 0x0831, - 0x4e59, 0x0254, - 0x4e5a, 0x36b1, - 0x4e5b, 0x44e5, - 0x4e5c, 0x176d, - 0x4e5d, 0x0258, - 0x4e5e, 0x0271, - 0x4e5f, 0x0270, - 0x4e69, 0x0372, - 0x4e6a, 0x3de5, - 0x4e73, 0x052a, - 0x4e78, 0x3d8e, - 0x4e7e, 0x09fb, - 0x4e7f, 0x1e35, - 0x4e80, 0x458e, - 0x4e81, 0x43bc, - 0x4e82, 0x0dbe, - 0x4e83, 0x2361, - 0x4e85, 0x021b, - 0x4e86, 0x0259, - 0x4e87, 0x458f, - 0x4e88, 0x029a, - 0x4e89, 0x459c, - 0x4e8b, 0x052b, - 0x4e8c, 0x025a, - 0x4e8d, 0x1774, - 0x4e8e, 0x0272, - 0x4e91, 0x029b, - 0x4e92, 0x029d, - 0x4e93, 0x177c, - 0x4e94, 0x029e, - 0x4e95, 0x029c, - 0x4e98, 0x39c4, - 0x4e99, 0x0373, - 0x4e9a, 0x48d5, - 0x4e9b, 0x052c, - 0x4e9e, 0x052d, - 0x4e9f, 0x06a3, - 0x4ea0, 0x021c, - 0x4ea1, 0x0273, - 0x4ea2, 0x029f, - 0x4ea4, 0x0374, - 0x4ea5, 0x0376, - 0x4ea6, 0x0375, - 0x4ea8, 0x0416, - 0x4eab, 0x052e, - 0x4ead, 0x06a4, - 0x4eb3, 0x0832, - 0x4eb6, 0x2363, - 0x4eb7, 0x413c, - 0x4eb9, 0x3377, - 0x4eba, 0x025b, - 0x4ebb, 0x44e6, - 0x4ebc, 0x39b1, - 0x4ebf, 0x4590, - 0x4ec0, 0x02a1, - 0x4ec1, 0x02a0, - 0x4ec2, 0x177d, - 0x4ec3, 0x02a2, - 0x4ec4, 0x02a8, - 0x4ec6, 0x02a3, - 0x4ec8, 0x177f, - 0x4ec9, 0x177e, - 0x4eca, 0x02a6, - 0x4ecd, 0x02a5, - 0x4ece, 0x3f62, - 0x4ed4, 0x02fa, - 0x4ed8, 0x02f9, - 0x4ed9, 0x0300, - 0x4eda, 0x1795, - 0x4edc, 0x1791, - 0x4edd, 0x1794, - 0x4ede, 0x0301, - 0x4edf, 0x0311, - 0x4ee1, 0x1793, - 0x4ee3, 0x02fe, - 0x4ee5, 0x02f8, - 0x4ee8, 0x1790, - 0x4ee9, 0x1792, - 0x4eea, 0x48cb, - 0x4eeb, 0x4591, - 0x4eee, 0x3d76, - 0x4ef0, 0x0383, - 0x4ef1, 0x17ba, - 0x4ef2, 0x0380, - 0x4ef3, 0x0384, - 0x4ef4, 0x17c4, - 0x4ef5, 0x17b8, - 0x4ef6, 0x0381, - 0x4ef7, 0x17bc, - 0x4ef8, 0x39ad, - 0x4efb, 0x0382, - 0x4efd, 0x0385, - 0x4eff, 0x0377, - 0x4f00, 0x17bb, - 0x4f01, 0x0386, - 0x4f02, 0x17bf, - 0x4f03, 0x39c8, - 0x4f04, 0x17c3, - 0x4f05, 0x17c0, - 0x4f08, 0x17bd, - 0x4f09, 0x0378, - 0x4f0a, 0x037a, - 0x4f0b, 0x0387, - 0x4f0d, 0x037c, - 0x4f0e, 0x17b5, - 0x4f0f, 0x037f, - 0x4f10, 0x037d, - 0x4f12, 0x17c5, - 0x4f13, 0x17c2, - 0x4f14, 0x17b9, - 0x4f15, 0x037b, - 0x4f18, 0x17b6, - 0x4f19, 0x0379, - 0x4f1a, 0x453c, - 0x4f1d, 0x17be, - 0x4f22, 0x17c1, - 0x4f28, 0x453d, - 0x4f29, 0x39be, - 0x4f2c, 0x17b7, - 0x4f2d, 0x182f, - 0x4f2f, 0x042c, - 0x4f30, 0x041f, - 0x4f32, 0x393d, - 0x4f33, 0x1830, - 0x4f34, 0x041c, - 0x4f36, 0x042e, - 0x4f37, 0x4592, - 0x4f38, 0x0424, - 0x4f39, 0x3f65, - 0x4f3a, 0x0423, - 0x4f3b, 0x1824, - 0x4f3c, 0x0427, - 0x4f3d, 0x0422, - 0x4f3e, 0x1829, - 0x4f3f, 0x1831, - 0x4f41, 0x182d, - 0x4f42, 0x39cb, - 0x4f43, 0x0425, - 0x4f45, 0x3b8f, - 0x4f46, 0x0428, - 0x4f47, 0x0419, - 0x4f48, 0x0431, - 0x4f49, 0x1826, - 0x4f4b, 0x39b4, - 0x4f4c, 0x1900, - 0x4f4d, 0x0417, - 0x4f4e, 0x042d, - 0x4f4f, 0x0418, - 0x4f50, 0x0420, - 0x4f52, 0x182b, - 0x4f53, 0x1827, - 0x4f54, 0x0426, - 0x4f55, 0x041e, - 0x4f56, 0x1823, - 0x4f57, 0x041a, - 0x4f58, 0x182e, - 0x4f59, 0x042f, - 0x4f5a, 0x0432, - 0x4f5b, 0x041d, - 0x4f5c, 0x042a, - 0x4f5d, 0x0430, - 0x4f5e, 0x041b, - 0x4f5f, 0x182c, - 0x4f60, 0x042b, - 0x4f61, 0x1832, - 0x4f62, 0x1825, - 0x4f63, 0x0429, - 0x4f64, 0x1828, - 0x4f67, 0x182a, - 0x4f69, 0x053d, - 0x4f6a, 0x1902, - 0x4f6b, 0x190e, - 0x4f6c, 0x0535, - 0x4f6e, 0x190f, - 0x4f6f, 0x0530, - 0x4f70, 0x053a, - 0x4f72, 0x3c72, - 0x4f73, 0x0533, - 0x4f74, 0x18fc, - 0x4f75, 0x053b, - 0x4f76, 0x18fb, - 0x4f77, 0x18ff, - 0x4f78, 0x1906, - 0x4f79, 0x1904, - 0x4f7a, 0x0543, - 0x4f7b, 0x053e, - 0x4f7c, 0x18f6, - 0x4f7d, 0x18f8, - 0x4f7e, 0x0540, - 0x4f7f, 0x0534, - 0x4f80, 0x18f9, - 0x4f81, 0x1905, - 0x4f82, 0x190c, - 0x4f83, 0x0539, - 0x4f84, 0x18fe, - 0x4f85, 0x18f7, - 0x4f86, 0x0538, - 0x4f87, 0x18fa, - 0x4f88, 0x053c, - 0x4f89, 0x18fd, - 0x4f8a, 0x39b5, - 0x4f8b, 0x0537, - 0x4f8d, 0x0532, - 0x4f8f, 0x0541, - 0x4f90, 0x1907, - 0x4f91, 0x0542, - 0x4f92, 0x190b, - 0x4f94, 0x1909, - 0x4f95, 0x190d, - 0x4f96, 0x053f, - 0x4f97, 0x1901, - 0x4f98, 0x18f5, - 0x4f9a, 0x1903, - 0x4f9b, 0x0536, - 0x4f9c, 0x1908, - 0x4f9d, 0x0531, - 0x4f9e, 0x190a, - 0x4fa2, 0x39c7, - 0x4fa8, 0x453e, - 0x4fab, 0x4022, - 0x4fae, 0x06b4, - 0x4faf, 0x06a8, - 0x4fb0, 0x3d4a, - 0x4fb2, 0x1a5d, - 0x4fb3, 0x1a65, - 0x4fb5, 0x06a7, - 0x4fb6, 0x06af, - 0x4fb7, 0x06bb, - 0x4fb9, 0x1a6b, - 0x4fba, 0x1a69, - 0x4fbb, 0x1a64, - 0x4fbd, 0x4594, - 0x4fbf, 0x06a9, - 0x4fc0, 0x1a6a, - 0x4fc1, 0x1a60, - 0x4fc2, 0x06b7, - 0x4fc3, 0x06ae, - 0x4fc4, 0x06b6, - 0x4fc5, 0x1a5b, - 0x4fc7, 0x1a67, - 0x4fc8, 0x46e8, - 0x4fc9, 0x1a5e, - 0x4fca, 0x06b2, - 0x4fcb, 0x1a5f, - 0x4fcc, 0x39cf, - 0x4fcd, 0x1a5a, - 0x4fce, 0x06b9, - 0x4fcf, 0x06ac, - 0x4fd0, 0x06b5, - 0x4fd1, 0x06ab, - 0x4fd3, 0x1a5c, - 0x4fd4, 0x1a61, - 0x4fd6, 0x1a68, - 0x4fd7, 0x06b3, - 0x4fd8, 0x06b0, - 0x4fd9, 0x1a63, - 0x4fda, 0x06b8, - 0x4fdb, 0x1a66, - 0x4fdc, 0x1a62, - 0x4fdd, 0x06ad, - 0x4fde, 0x06ba, - 0x4fdf, 0x06b1, - 0x4fe0, 0x06aa, - 0x4fe1, 0x06a6, - 0x4fe4, 0x3c66, - 0x4fe5, 0x39d0, - 0x4fec, 0x1a6c, - 0x4fee, 0x084c, - 0x4fef, 0x0836, - 0x4ff1, 0x0846, - 0x4ff2, 0x3f28, - 0x4ff3, 0x084b, - 0x4ff4, 0x1c24, - 0x4ff5, 0x1c23, - 0x4ff6, 0x1c28, - 0x4ff8, 0x0839, - 0x4ff9, 0x37b3, - 0x4ffa, 0x0842, - 0x4ffd, 0x3f26, - 0x4ffe, 0x084f, - 0x5000, 0x0843, - 0x5003, 0x4596, - 0x5005, 0x1c1d, - 0x5006, 0x083c, - 0x5007, 0x1c1e, - 0x5008, 0x4024, - 0x5009, 0x0851, - 0x500b, 0x0848, - 0x500c, 0x0833, - 0x500e, 0x1c31, - 0x500f, 0x0a0c, - 0x5011, 0x0841, - 0x5012, 0x0840, - 0x5013, 0x1c1f, - 0x5014, 0x0844, - 0x5015, 0x1e45, - 0x5016, 0x083b, - 0x5017, 0x1c2a, - 0x5018, 0x084a, - 0x5019, 0x0849, - 0x501a, 0x083f, - 0x501b, 0x1c22, - 0x501c, 0x1c2b, - 0x501e, 0x1c1c, - 0x501f, 0x083e, - 0x5020, 0x1c2c, - 0x5021, 0x0847, - 0x5022, 0x1c20, - 0x5023, 0x0835, - 0x5025, 0x0838, - 0x5026, 0x0837, - 0x5027, 0x1c2d, - 0x5028, 0x0845, - 0x5029, 0x083a, - 0x502a, 0x084e, - 0x502b, 0x0850, - 0x502c, 0x1c27, - 0x502d, 0x084d, - 0x502e, 0x39cc, - 0x502f, 0x1c2f, - 0x5030, 0x1c21, - 0x5031, 0x1c30, - 0x5033, 0x1c25, - 0x5034, 0x3910, - 0x5035, 0x1c2e, - 0x5037, 0x1c26, - 0x503c, 0x083d, - 0x5040, 0x1e4d, - 0x5041, 0x1e41, - 0x5043, 0x0a00, - 0x5045, 0x1e46, - 0x5046, 0x1e4c, - 0x5047, 0x09ff, - 0x5048, 0x1e3f, - 0x5049, 0x0a03, - 0x504a, 0x1e43, - 0x504b, 0x1e3c, - 0x504c, 0x0a01, - 0x504d, 0x1e40, - 0x504e, 0x0a06, - 0x504f, 0x0a0b, - 0x5051, 0x1e51, - 0x5053, 0x1e3b, - 0x5055, 0x0a07, - 0x5056, 0x3f2c, - 0x5057, 0x1e50, - 0x5058, 0x39d1, - 0x505a, 0x0a02, - 0x505b, 0x1e42, - 0x505c, 0x09fe, - 0x505d, 0x1e3d, - 0x505e, 0x1e39, - 0x505f, 0x1e47, - 0x5060, 0x1e3a, - 0x5061, 0x1e38, - 0x5062, 0x1e44, - 0x5063, 0x1e4a, - 0x5065, 0x0a04, - 0x5066, 0x3dc9, - 0x5068, 0x20b8, - 0x5069, 0x1e48, - 0x506a, 0x1e37, - 0x506b, 0x1e49, - 0x506c, 0x39cd, - 0x506d, 0x0a0e, - 0x506e, 0x1e4e, - 0x506f, 0x0a0d, - 0x5070, 0x1e36, - 0x5072, 0x1e3e, - 0x5073, 0x1e4f, - 0x5074, 0x0a09, - 0x5075, 0x0a08, - 0x5076, 0x0a05, - 0x5077, 0x0a0a, - 0x507a, 0x09fc, - 0x507d, 0x09fd, - 0x5080, 0x0bec, - 0x5081, 0x39ce, - 0x5082, 0x20bb, - 0x5083, 0x20b4, - 0x5085, 0x0be9, - 0x5087, 0x20bc, - 0x5088, 0x439c, - 0x508b, 0x20b2, - 0x508c, 0x20b5, - 0x508d, 0x0be8, - 0x508e, 0x20b6, - 0x5090, 0x41ec, - 0x5091, 0x0beb, - 0x5092, 0x20ba, - 0x5094, 0x20b0, - 0x5095, 0x20af, - 0x5096, 0x0bed, - 0x5098, 0x0bee, - 0x5099, 0x0bea, - 0x509a, 0x0bef, - 0x509b, 0x20ae, - 0x509c, 0x20b9, - 0x509d, 0x20b7, - 0x509e, 0x20b1, - 0x50a2, 0x0be7, - 0x50a3, 0x20b3, - 0x50a6, 0x3f3f, - 0x50ac, 0x0dc5, - 0x50ad, 0x0dbf, - 0x50ae, 0x2367, - 0x50af, 0x0dc8, - 0x50b0, 0x236d, - 0x50b1, 0x2370, - 0x50b2, 0x0dc1, - 0x50b4, 0x236a, - 0x50b5, 0x0dc0, - 0x50b6, 0x2373, - 0x50b7, 0x0dc6, - 0x50b8, 0x2374, - 0x50ba, 0x236f, - 0x50bb, 0x0dc7, - 0x50bd, 0x2364, - 0x50be, 0x0dc4, - 0x50bf, 0x2365, - 0x50c1, 0x236e, - 0x50c2, 0x236c, - 0x50c4, 0x2368, - 0x50c5, 0x0dc3, - 0x50c6, 0x2366, - 0x50c7, 0x0dc9, - 0x50c8, 0x236b, - 0x50c9, 0x2372, - 0x50ca, 0x2369, - 0x50cb, 0x2371, - 0x50cd, 0x39c5, - 0x50ce, 0x0f88, - 0x50cf, 0x0f85, - 0x50d0, 0x38d1, - 0x50d1, 0x0f86, - 0x50d3, 0x261c, - 0x50d4, 0x2614, - 0x50d5, 0x0f84, - 0x50d6, 0x0f81, - 0x50d7, 0x2615, - 0x50d9, 0x3fce, - 0x50da, 0x0f83, - 0x50db, 0x2618, - 0x50dd, 0x261a, - 0x50de, 0x4031, - 0x50df, 0x3afd, - 0x50e0, 0x2621, - 0x50e1, 0x4171, - 0x50e3, 0x2620, - 0x50e4, 0x261b, - 0x50e5, 0x0f80, - 0x50e6, 0x2613, - 0x50e7, 0x0f7e, - 0x50e8, 0x2616, - 0x50e9, 0x0f89, - 0x50ea, 0x2619, - 0x50ec, 0x261d, - 0x50ed, 0x0f82, - 0x50ee, 0x0f7f, - 0x50ef, 0x261f, - 0x50f0, 0x261e, - 0x50f1, 0x0f87, - 0x50f3, 0x2617, - 0x50f4, 0x3ce9, - 0x50f5, 0x1105, - 0x50f6, 0x2883, - 0x50f8, 0x2880, - 0x50f9, 0x1106, - 0x50fb, 0x1104, - 0x50fc, 0x39d2, - 0x50fd, 0x2887, - 0x50fe, 0x2884, - 0x50ff, 0x287d, - 0x5100, 0x1103, - 0x5101, 0x4032, - 0x5102, 0x1107, - 0x5103, 0x287e, - 0x5104, 0x1102, - 0x5105, 0x110a, - 0x5106, 0x2881, - 0x5108, 0x1108, - 0x510a, 0x2888, - 0x510b, 0x2885, - 0x510d, 0x39c6, - 0x510e, 0x4034, - 0x5110, 0x128d, - 0x5111, 0x2b04, - 0x5112, 0x128a, - 0x5113, 0x2b01, - 0x5114, 0x128c, - 0x5115, 0x128e, - 0x5117, 0x2b02, - 0x5118, 0x128b, - 0x511a, 0x2b03, - 0x511c, 0x2b00, - 0x511f, 0x13b5, - 0x5120, 0x2d3e, - 0x5121, 0x13b6, - 0x5122, 0x2d3c, - 0x5124, 0x2d3d, - 0x5125, 0x2d3b, - 0x5126, 0x2d3a, - 0x5129, 0x2d3f, - 0x512a, 0x13b4, - 0x512b, 0x39ae, - 0x512d, 0x2f0f, - 0x5130, 0x287f, - 0x5131, 0x2f0e, - 0x5132, 0x13b7, - 0x5133, 0x1575, - 0x5134, 0x307a, - 0x5137, 0x1668, - 0x5139, 0x32c6, - 0x513a, 0x32c5, - 0x513b, 0x16bc, - 0x513c, 0x16bb, - 0x513d, 0x340e, - 0x513f, 0x025c, - 0x5140, 0x0274, - 0x5141, 0x02aa, - 0x5143, 0x02a9, - 0x5144, 0x0303, - 0x5145, 0x0302, - 0x5146, 0x038a, - 0x5147, 0x0389, - 0x5148, 0x038b, - 0x5149, 0x0388, - 0x514b, 0x0434, - 0x514c, 0x0433, - 0x514d, 0x0435, - 0x5152, 0x0545, - 0x5154, 0x0544, - 0x5155, 0x0546, - 0x5156, 0x439a, - 0x5157, 0x06bc, - 0x5159, 0x0119, - 0x515a, 0x1c32, - 0x515b, 0x011a, - 0x515c, 0x0a0f, - 0x515d, 0x011c, - 0x515e, 0x011b, - 0x515f, 0x20bd, - 0x5160, 0x403a, - 0x5161, 0x011d, - 0x5162, 0x0f8a, - 0x5163, 0x011e, - 0x5165, 0x025d, - 0x5167, 0x02ab, - 0x5168, 0x038c, - 0x5169, 0x0547, - 0x516a, 0x403c, - 0x516b, 0x025e, - 0x516c, 0x02ae, - 0x516d, 0x02ac, - 0x5171, 0x038d, - 0x5174, 0x453f, - 0x5175, 0x0436, - 0x5176, 0x0549, - 0x5177, 0x0548, - 0x5178, 0x054a, - 0x5179, 0x3ace, - 0x517c, 0x0852, - 0x5180, 0x128f, - 0x5182, 0x021d, - 0x5186, 0x439f, - 0x5187, 0x1779, - 0x5188, 0x36b6, - 0x5189, 0x0304, - 0x518d, 0x038e, - 0x518f, 0x1833, - 0x5191, 0x06be, - 0x5192, 0x06bd, - 0x5193, 0x1c34, - 0x5194, 0x1c33, - 0x5195, 0x0a10, - 0x5196, 0x021e, - 0x5197, 0x02af, - 0x5198, 0x1780, - 0x519a, 0x3ea3, - 0x519c, 0x4540, - 0x519e, 0x1910, - 0x51a0, 0x06bf, - 0x51a2, 0x0855, - 0x51a4, 0x0853, - 0x51a7, 0x3ea6, - 0x51a8, 0x39da, - 0x51aa, 0x1290, - 0x51ab, 0x021f, - 0x51ac, 0x0306, - 0x51b0, 0x038f, - 0x51b1, 0x17c6, - 0x51b2, 0x4048, - 0x51b3, 0x4051, - 0x51b4, 0x3d7c, - 0x51b5, 0x4012, - 0x51b6, 0x0437, - 0x51b8, 0x4049, - 0x51b9, 0x1834, - 0x51bc, 0x1911, - 0x51bd, 0x054b, - 0x51be, 0x1912, - 0x51c3, 0x39db, - 0x51c4, 0x1c36, - 0x51c6, 0x0858, - 0x51c7, 0x422a, - 0x51c8, 0x1c38, - 0x51c9, 0x404b, - 0x51ca, 0x1c35, - 0x51cb, 0x0859, - 0x51cc, 0x0857, - 0x51cd, 0x0856, - 0x51ce, 0x1c39, - 0x51cf, 0x404c, - 0x51d0, 0x1e52, - 0x51d1, 0x404d, - 0x51d2, 0x3dad, - 0x51d3, 0x404f, - 0x51d4, 0x20be, - 0x51d7, 0x2375, - 0x51d8, 0x2622, - 0x51db, 0x459a, - 0x51dc, 0x110b, - 0x51dd, 0x1291, - 0x51de, 0x2b05, - 0x51df, 0x424f, - 0x51e0, 0x025f, - 0x51e1, 0x026d, - 0x51e2, 0x4052, - 0x51e4, 0x4541, - 0x51ed, 0x4054, - 0x51f0, 0x0a11, - 0x51f1, 0x0bf1, - 0x51f3, 0x0f8b, - 0x51f4, 0x4178, - 0x51f5, 0x176e, - 0x51f6, 0x02b0, - 0x51f8, 0x0309, - 0x51f9, 0x0307, - 0x51fc, 0x459b, - 0x51fd, 0x054c, - 0x51fe, 0x3f0a, - 0x5200, 0x0260, - 0x5202, 0x36b3, - 0x5203, 0x0275, - 0x5205, 0x43a1, - 0x5206, 0x02b1, - 0x5209, 0x1797, - 0x520a, 0x030a, - 0x520b, 0x4059, - 0x520c, 0x1796, - 0x520e, 0x0393, - 0x5210, 0x17c8, - 0x5211, 0x0391, - 0x5213, 0x17c7, - 0x5216, 0x0394, - 0x5217, 0x0390, - 0x521c, 0x1835, - 0x521d, 0x068b, - 0x521e, 0x1836, - 0x521f, 0x3f60, - 0x5220, 0x4930, - 0x5221, 0x1837, - 0x5224, 0x043a, - 0x5225, 0x0439, - 0x5226, 0x405a, - 0x5227, 0x43a2, - 0x5228, 0x043d, - 0x5229, 0x043b, - 0x522e, 0x0552, - 0x5230, 0x0551, - 0x5231, 0x1917, - 0x5232, 0x1914, - 0x5234, 0x3efb, - 0x5235, 0x1913, - 0x5236, 0x0553, - 0x5237, 0x054f, - 0x5238, 0x054e, - 0x523a, 0x0550, - 0x523b, 0x054d, - 0x523c, 0x405b, - 0x5241, 0x0554, - 0x5243, 0x06c1, - 0x5244, 0x1a6d, - 0x5246, 0x1916, - 0x5247, 0x06c6, - 0x5249, 0x1a6e, - 0x524a, 0x06c2, - 0x524b, 0x06c5, - 0x524c, 0x06c4, - 0x524d, 0x06c3, - 0x524e, 0x06c0, - 0x5252, 0x1c3c, - 0x5254, 0x085c, - 0x5255, 0x1c3f, - 0x5256, 0x085a, - 0x5257, 0x405d, - 0x5259, 0x39e4, - 0x525a, 0x1c3b, - 0x525b, 0x085d, - 0x525c, 0x085b, - 0x525d, 0x085e, - 0x525e, 0x1c3d, - 0x5260, 0x3f29, - 0x5261, 0x1c3a, - 0x5262, 0x1c40, - 0x5268, 0x4619, - 0x5269, 0x0bf5, - 0x526a, 0x0a12, - 0x526b, 0x1e53, - 0x526c, 0x1e55, - 0x526d, 0x1e54, - 0x526e, 0x1e56, - 0x526f, 0x0a13, - 0x5272, 0x0bf2, - 0x5273, 0x3f43, - 0x5274, 0x0bf3, - 0x5277, 0x0dcb, - 0x5278, 0x2377, - 0x5279, 0x43a3, - 0x527a, 0x2376, - 0x527b, 0x2378, - 0x527d, 0x0dcc, - 0x527f, 0x0dca, - 0x5280, 0x2623, - 0x5282, 0x0f8d, - 0x5283, 0x0f8c, - 0x5284, 0x2776, - 0x5287, 0x110c, - 0x528a, 0x1110, - 0x528b, 0x2889, - 0x528d, 0x110f, - 0x528f, 0x3dbf, - 0x5290, 0x459d, - 0x5291, 0x1292, - 0x5293, 0x1293, - 0x5294, 0x405e, - 0x5296, 0x307c, - 0x5297, 0x32c8, - 0x5298, 0x32c7, - 0x5299, 0x340f, - 0x529a, 0x3f68, - 0x529b, 0x0262, - 0x529f, 0x030c, - 0x52a0, 0x030b, - 0x52a1, 0x4542, - 0x52a3, 0x0395, - 0x52a4, 0x39e5, - 0x52a6, 0x17c9, - 0x52a8, 0x4543, - 0x52a9, 0x043f, - 0x52ab, 0x043e, - 0x52ac, 0x0441, - 0x52ad, 0x1838, - 0x52b5, 0x405c, - 0x52b9, 0x405f, - 0x52bb, 0x0556, - 0x52bc, 0x1918, - 0x52be, 0x0555, - 0x52c0, 0x1a6f, - 0x52c1, 0x06ca, - 0x52c2, 0x1a70, - 0x52c3, 0x06c9, - 0x52c5, 0x4060, - 0x52c7, 0x06c7, - 0x52c9, 0x06c8, - 0x52cc, 0x3ee1, - 0x52cd, 0x1c41, - 0x52d0, 0x4109, - 0x52d1, 0x3f2a, - 0x52d2, 0x0a14, - 0x52d3, 0x1e58, - 0x52d5, 0x0a17, - 0x52d6, 0x1e57, - 0x52d7, 0x0acf, - 0x52d8, 0x0a16, - 0x52d9, 0x0a15, - 0x52db, 0x0bf8, - 0x52dd, 0x0bf7, - 0x52de, 0x0bf6, - 0x52df, 0x0dcd, - 0x52e0, 0x4063, - 0x52e1, 0x39e7, - 0x52e2, 0x0dd0, - 0x52e4, 0x0dcf, - 0x52e6, 0x0dce, - 0x52e9, 0x2625, - 0x52eb, 0x2626, - 0x52ef, 0x288c, - 0x52f0, 0x1111, - 0x52f1, 0x288b, - 0x52f3, 0x1294, - 0x52f4, 0x2d40, - 0x52f5, 0x13b8, - 0x52f7, 0x307d, - 0x52f8, 0x1609, - 0x52f9, 0x0220, - 0x52fa, 0x0276, - 0x52fb, 0x02b4, - 0x52fc, 0x1781, - 0x52fe, 0x02b5, - 0x5301, 0x3d79, - 0x5305, 0x030d, - 0x5308, 0x0396, - 0x5309, 0x183a, - 0x530a, 0x1919, - 0x530d, 0x06cb, - 0x530e, 0x1c42, - 0x530f, 0x0a19, - 0x5310, 0x0a18, - 0x5311, 0x20c0, - 0x5312, 0x20bf, - 0x5315, 0x0263, - 0x5316, 0x02b7, - 0x5317, 0x030f, - 0x5319, 0x0a1a, - 0x531a, 0x176f, - 0x531c, 0x1798, - 0x531d, 0x0310, - 0x531f, 0x17cb, - 0x5320, 0x0398, - 0x5321, 0x0397, - 0x5322, 0x17ca, - 0x5323, 0x0442, - 0x5327, 0x459e, - 0x532a, 0x085f, - 0x532c, 0x3f36, - 0x532d, 0x1e59, - 0x532f, 0x0dd2, - 0x5330, 0x2627, - 0x5331, 0x0f8e, - 0x5332, 0x3fd0, - 0x5333, 0x406d, - 0x5334, 0x2b06, - 0x5337, 0x31c7, - 0x5338, 0x0221, - 0x5339, 0x02b8, - 0x533b, 0x4544, - 0x533c, 0x191b, - 0x533d, 0x1a71, - 0x533e, 0x0a1d, - 0x533f, 0x0a1b, - 0x5341, 0x0264, - 0x5342, 0x4947, - 0x5343, 0x0277, - 0x5344, 0x016b, - 0x5345, 0x02bb, - 0x5347, 0x02ba, - 0x5348, 0x02b9, - 0x5349, 0x0313, - 0x534a, 0x0312, - 0x534c, 0x1799, - 0x534d, 0x17cc, - 0x534e, 0x4545, - 0x5351, 0x055a, - 0x5352, 0x0557, - 0x5353, 0x0559, - 0x5354, 0x0558, - 0x5357, 0x06cc, - 0x535a, 0x0bf9, - 0x535c, 0x0265, - 0x535d, 0x4501, - 0x535e, 0x02bc, - 0x535f, 0x43a7, - 0x5360, 0x0315, - 0x5361, 0x0314, - 0x5363, 0x183b, - 0x5364, 0x480a, - 0x5366, 0x055b, - 0x5367, 0x3ecd, - 0x5369, 0x0222, - 0x536c, 0x1782, - 0x536d, 0x407a, - 0x536e, 0x0317, - 0x536f, 0x0316, - 0x5370, 0x0399, - 0x5372, 0x183c, - 0x5373, 0x0443, - 0x5374, 0x407b, - 0x5375, 0x0444, - 0x5377, 0x055c, - 0x537b, 0x06cd, - 0x537c, 0x1a72, - 0x537d, 0x4901, - 0x537e, 0x407d, - 0x537f, 0x0860, - 0x5382, 0x1770, - 0x5384, 0x02bd, - 0x538a, 0x17cd, - 0x538e, 0x183d, - 0x5392, 0x191c, - 0x5393, 0x4082, - 0x5394, 0x191d, - 0x5396, 0x1a74, - 0x5397, 0x1a73, - 0x5398, 0x1a76, - 0x5399, 0x1a75, - 0x539a, 0x06ce, - 0x539c, 0x1e5a, - 0x539d, 0x0862, - 0x539e, 0x1c43, - 0x539f, 0x0861, - 0x53a0, 0x4084, - 0x53a2, 0x3e2b, - 0x53a4, 0x20c1, - 0x53a5, 0x0bfa, - 0x53a6, 0x413b, - 0x53a7, 0x20c2, - 0x53a8, 0x413e, - 0x53a9, 0x45a0, - 0x53aa, 0x3fc6, - 0x53ab, 0x4085, - 0x53ac, 0x2628, - 0x53ad, 0x0f8f, - 0x53ae, 0x4086, - 0x53b0, 0x45a2, - 0x53b2, 0x1112, - 0x53b4, 0x307e, - 0x53b6, 0x0223, - 0x53b9, 0x1783, - 0x53bb, 0x0318, - 0x53c1, 0x408b, - 0x53c2, 0x43a6, - 0x53c3, 0x0a1e, - 0x53c5, 0x408c, - 0x53c8, 0x0266, - 0x53c9, 0x0278, - 0x53ca, 0x02bf, - 0x53cb, 0x02be, - 0x53cc, 0x38b6, - 0x53cd, 0x02c0, - 0x53d0, 0x39fa, - 0x53d1, 0x4546, - 0x53d2, 0x3e3d, - 0x53d4, 0x0560, - 0x53d6, 0x055f, - 0x53d7, 0x0561, - 0x53d8, 0x4547, - 0x53d9, 0x4090, - 0x53da, 0x3f39, - 0x53db, 0x06cf, - 0x53df, 0x0863, - 0x53e0, 0x4093, - 0x53e1, 0x2b07, - 0x53e2, 0x14c9, - 0x53e3, 0x0279, - 0x53e4, 0x031a, - 0x53e5, 0x0329, - 0x53e6, 0x0324, - 0x53e8, 0x031f, - 0x53e9, 0x031e, - 0x53ea, 0x0325, - 0x53eb, 0x0323, - 0x53ec, 0x031c, - 0x53ed, 0x032a, - 0x53ee, 0x031d, - 0x53ef, 0x0319, - 0x53f0, 0x0328, - 0x53f1, 0x0327, - 0x53f2, 0x0326, - 0x53f3, 0x031b, - 0x53f5, 0x0322, - 0x53f6, 0x4096, - 0x53f7, 0x3808, - 0x53f8, 0x0321, - 0x53fb, 0x032b, - 0x53fc, 0x0320, - 0x53fe, 0x40c1, - 0x5401, 0x03a0, - 0x5403, 0x03a6, - 0x5404, 0x03a2, - 0x5406, 0x03a8, - 0x5407, 0x17ce, - 0x5408, 0x03a5, - 0x5409, 0x039b, - 0x540a, 0x039e, - 0x540b, 0x03a1, - 0x540c, 0x039d, - 0x540d, 0x03a4, - 0x540e, 0x03a7, - 0x540f, 0x039c, - 0x5410, 0x039f, - 0x5411, 0x03a3, - 0x5412, 0x03a9, - 0x5413, 0x4098, - 0x5414, 0x3c77, - 0x5416, 0x3e7f, - 0x5418, 0x1847, - 0x5419, 0x1844, - 0x541a, 0x3e64, - 0x541b, 0x0451, - 0x541c, 0x1845, - 0x541d, 0x0445, - 0x541e, 0x0447, - 0x541f, 0x045f, - 0x5420, 0x045a, - 0x5421, 0x4203, - 0x5423, 0x45a3, - 0x5424, 0x184c, - 0x5425, 0x1846, - 0x5426, 0x0449, - 0x5427, 0x044b, - 0x5428, 0x184b, - 0x5429, 0x0452, - 0x542a, 0x1841, - 0x542b, 0x045e, - 0x542c, 0x0460, - 0x542d, 0x0446, - 0x542e, 0x0457, - 0x542f, 0x40ac, - 0x5430, 0x183f, - 0x5431, 0x045d, - 0x5432, 0x3e75, - 0x5433, 0x044e, - 0x5435, 0x0458, - 0x5437, 0x1840, - 0x5438, 0x0456, - 0x5439, 0x0454, - 0x543b, 0x0455, - 0x543c, 0x045b, - 0x543d, 0x1848, - 0x543e, 0x0448, - 0x5440, 0x045c, - 0x5441, 0x184a, - 0x5442, 0x0450, - 0x5443, 0x044d, - 0x5445, 0x1843, - 0x5446, 0x044c, - 0x5447, 0x184d, - 0x5448, 0x044f, - 0x544a, 0x0453, - 0x544b, 0x3ed1, - 0x544d, 0x3ea7, - 0x544e, 0x044a, - 0x544f, 0x1849, - 0x5454, 0x1842, - 0x5460, 0x192e, - 0x5461, 0x192d, - 0x5462, 0x0573, - 0x5463, 0x1930, - 0x5464, 0x1932, - 0x5465, 0x1927, - 0x5466, 0x192a, - 0x5467, 0x1931, - 0x5468, 0x0574, - 0x5469, 0x3f32, - 0x546a, 0x3d83, - 0x546b, 0x1924, - 0x546c, 0x1928, - 0x546d, 0x409d, - 0x546f, 0x192c, - 0x5470, 0x1a85, - 0x5471, 0x056f, - 0x5472, 0x1a89, - 0x5473, 0x0562, - 0x5474, 0x1929, - 0x5475, 0x0563, - 0x5476, 0x0570, - 0x5477, 0x0569, - 0x5478, 0x0565, - 0x547a, 0x1925, - 0x547b, 0x0568, - 0x547c, 0x056d, - 0x547d, 0x0576, - 0x547e, 0x1926, - 0x547f, 0x191f, - 0x5480, 0x0567, - 0x5481, 0x1920, - 0x5482, 0x1922, - 0x5484, 0x056a, - 0x5485, 0x46d9, - 0x5486, 0x056c, - 0x5487, 0x191e, - 0x5488, 0x1923, - 0x548b, 0x0575, - 0x548c, 0x0571, - 0x548d, 0x192b, - 0x548e, 0x0577, - 0x548f, 0x40a1, - 0x5490, 0x056e, - 0x5491, 0x1921, - 0x5492, 0x056b, - 0x5493, 0x45a7, - 0x5494, 0x3e98, - 0x5495, 0x0566, - 0x5496, 0x0564, - 0x5497, 0x3e8a, - 0x5498, 0x192f, - 0x549a, 0x0572, - 0x549c, 0x3f66, - 0x549e, 0x47ed, - 0x54a0, 0x1a84, - 0x54a1, 0x1a78, - 0x54a2, 0x1a87, - 0x54a3, 0x45a8, - 0x54a4, 0x40a2, - 0x54a5, 0x1a7a, - 0x54a6, 0x06d6, - 0x54a7, 0x06e4, - 0x54a8, 0x06d2, - 0x54a9, 0x06e3, - 0x54aa, 0x06db, - 0x54ab, 0x06e0, - 0x54ac, 0x06d0, - 0x54ad, 0x1a79, - 0x54ae, 0x1a7f, - 0x54af, 0x06df, - 0x54b0, 0x1a8b, - 0x54b1, 0x06e1, - 0x54b2, 0x3744, - 0x54b3, 0x06d7, - 0x54b4, 0x45a9, - 0x54b6, 0x1a81, - 0x54b7, 0x1a7e, - 0x54b8, 0x06d5, - 0x54b9, 0x45aa, - 0x54ba, 0x1a77, - 0x54bb, 0x06e2, - 0x54bc, 0x1a86, - 0x54bd, 0x06da, - 0x54be, 0x1a88, - 0x54bf, 0x06e5, - 0x54c0, 0x06d1, - 0x54c1, 0x06dc, - 0x54c2, 0x06d9, - 0x54c3, 0x1a7c, - 0x54c4, 0x06dd, - 0x54c5, 0x1a82, - 0x54c7, 0x06d8, - 0x54c8, 0x06de, - 0x54c9, 0x06d4, - 0x54cb, 0x39a3, - 0x54cc, 0x43a8, - 0x54cd, 0x3a00, - 0x54ce, 0x06d3, - 0x54cf, 0x1a7b, - 0x54d0, 0x45ab, - 0x54d6, 0x1a80, - 0x54da, 0x4923, - 0x54de, 0x1a8a, - 0x54e0, 0x1c57, - 0x54e1, 0x0870, - 0x54e2, 0x1c45, - 0x54e3, 0x4341, - 0x54e4, 0x1c4a, - 0x54e5, 0x0869, - 0x54e6, 0x0874, - 0x54e7, 0x1c48, - 0x54e8, 0x0864, - 0x54e9, 0x086e, - 0x54ea, 0x0873, - 0x54eb, 0x1c4f, - 0x54ed, 0x086f, - 0x54ee, 0x0872, - 0x54ef, 0x45ac, - 0x54f1, 0x1c52, - 0x54f2, 0x086a, - 0x54f3, 0x1c49, - 0x54f7, 0x1c55, - 0x54fa, 0x086c, - 0x54fb, 0x1c54, - 0x54fc, 0x0868, - 0x54fd, 0x0877, - 0x54ff, 0x1c4c, - 0x5501, 0x0866, - 0x5502, 0x3ccc, - 0x5503, 0x1c59, - 0x5504, 0x1c4d, - 0x5505, 0x1c51, - 0x5506, 0x086b, - 0x5507, 0x0876, - 0x5508, 0x1c4e, - 0x5509, 0x0871, - 0x550a, 0x1c53, - 0x550b, 0x1c5a, - 0x550c, 0x1e69, - 0x550d, 0x3a73, - 0x550e, 0x1c58, - 0x550f, 0x0878, - 0x5510, 0x0865, - 0x5511, 0x1c50, - 0x5512, 0x1c47, - 0x5513, 0x3ea9, - 0x5514, 0x086d, - 0x5517, 0x1c46, - 0x5518, 0x45ad, - 0x551a, 0x1c4b, - 0x551e, 0x3ea8, - 0x5523, 0x45ae, - 0x5525, 0x4309, - 0x5526, 0x1c44, - 0x5527, 0x0875, - 0x5528, 0x45af, - 0x552a, 0x1e61, - 0x552b, 0x409a, - 0x552c, 0x0a31, - 0x552d, 0x1e6f, - 0x552e, 0x0a2f, - 0x552f, 0x0a2c, - 0x5530, 0x1e66, - 0x5531, 0x0a28, - 0x5532, 0x1e6a, - 0x5533, 0x0a33, - 0x5534, 0x1e60, - 0x5535, 0x1e65, - 0x5536, 0x1e64, - 0x5537, 0x0867, - 0x5538, 0x0a2e, - 0x5539, 0x1e6d, - 0x553b, 0x1e70, - 0x553c, 0x1e5d, - 0x553e, 0x0c0c, - 0x553f, 0x43a9, - 0x5540, 0x1e71, - 0x5541, 0x0a34, - 0x5543, 0x0a26, - 0x5544, 0x0a23, - 0x5545, 0x1e68, - 0x5546, 0x0a20, - 0x5547, 0x40aa, - 0x5548, 0x1e6e, - 0x5549, 0x4068, - 0x554a, 0x0a27, - 0x554b, 0x1e72, - 0x554d, 0x1e5e, - 0x554e, 0x1e6c, - 0x554f, 0x0a2a, - 0x5550, 0x1e5f, - 0x5551, 0x1e62, - 0x5552, 0x1e67, - 0x5553, 0x43ae, - 0x5555, 0x0a2b, - 0x5556, 0x0a29, - 0x5557, 0x0a35, - 0x555c, 0x0a30, - 0x555d, 0x40a0, - 0x555e, 0x0a24, - 0x555f, 0x0abc, - 0x5561, 0x0a25, - 0x5562, 0x1e63, - 0x5563, 0x0a32, - 0x5564, 0x0a2d, - 0x5565, 0x1e6b, - 0x5566, 0x0a22, - 0x5569, 0x3e9f, - 0x556a, 0x0a21, - 0x556b, 0x3b2e, - 0x5571, 0x3bc6, - 0x5572, 0x3e8b, - 0x5573, 0x3f24, - 0x5575, 0x1e5b, - 0x5577, 0x20c7, - 0x5579, 0x435d, - 0x557b, 0x0bfb, - 0x557c, 0x0bfe, - 0x557d, 0x20d2, - 0x557e, 0x0c12, - 0x557f, 0x20d5, - 0x5580, 0x0bfc, - 0x5581, 0x20ce, - 0x5582, 0x0c02, - 0x5583, 0x0c08, - 0x5584, 0x0d1b, - 0x5586, 0x40ae, - 0x5587, 0x0c06, - 0x5588, 0x20cb, - 0x5589, 0x0c13, - 0x558a, 0x0bff, - 0x558b, 0x0c07, - 0x558c, 0x20d3, - 0x558d, 0x2387, - 0x558e, 0x20d8, - 0x558f, 0x20cc, - 0x5590, 0x430e, - 0x5591, 0x20c3, - 0x5592, 0x20d0, - 0x5593, 0x20ca, - 0x5594, 0x0c05, - 0x5595, 0x20d6, - 0x5598, 0x0c01, - 0x5599, 0x0c15, - 0x559a, 0x0c0e, - 0x559c, 0x0c03, - 0x559d, 0x0c00, - 0x559f, 0x0c0b, - 0x55a1, 0x20d7, - 0x55a2, 0x20c9, - 0x55a3, 0x20cf, - 0x55a4, 0x20d1, - 0x55a5, 0x20c5, - 0x55a6, 0x20d4, - 0x55a7, 0x0bfd, - 0x55a8, 0x20c4, - 0x55a9, 0x40af, - 0x55aa, 0x0c04, - 0x55ab, 0x0c14, - 0x55ac, 0x0c10, - 0x55ad, 0x20c6, - 0x55ae, 0x0c0a, - 0x55b0, 0x38f5, - 0x55b1, 0x0c11, - 0x55b2, 0x0c0d, - 0x55b3, 0x0c09, - 0x55b4, 0x39fe, - 0x55b5, 0x20cd, - 0x55b9, 0x43aa, - 0x55ba, 0x3e89, - 0x55bb, 0x0c0f, - 0x55bc, 0x3dc3, - 0x55bf, 0x2385, - 0x55c0, 0x2381, - 0x55c1, 0x3e4f, - 0x55c2, 0x2390, - 0x55c3, 0x237a, - 0x55c4, 0x2383, - 0x55c5, 0x0de0, - 0x55c7, 0x0dd9, - 0x55c8, 0x238c, - 0x55c9, 0x0de3, - 0x55ca, 0x237f, - 0x55cb, 0x237e, - 0x55cc, 0x237c, - 0x55cd, 0x238e, - 0x55ce, 0x0dd7, - 0x55cf, 0x2388, - 0x55d0, 0x237d, - 0x55d1, 0x0dda, - 0x55d2, 0x2386, - 0x55d3, 0x0dd5, - 0x55d4, 0x2382, - 0x55d5, 0x2389, - 0x55d6, 0x238b, - 0x55d7, 0x45b3, - 0x55d8, 0x43ab, - 0x55d9, 0x238f, - 0x55da, 0x0dde, - 0x55db, 0x237b, - 0x55dc, 0x0dd8, - 0x55dd, 0x2380, - 0x55de, 0x3e94, - 0x55df, 0x0dd3, - 0x55e1, 0x0ddf, - 0x55e2, 0x238a, - 0x55e3, 0x0ddb, - 0x55e5, 0x0de2, - 0x55e6, 0x0dd6, - 0x55e7, 0x011f, - 0x55e8, 0x0dd4, - 0x55e9, 0x2384, - 0x55ea, 0x3e7c, - 0x55ec, 0x37d2, - 0x55ef, 0x0ddd, - 0x55f0, 0x3e88, - 0x55f1, 0x3e83, - 0x55f2, 0x238d, - 0x55f5, 0x4786, - 0x55f6, 0x0f9f, - 0x55f7, 0x0f9a, - 0x55f9, 0x2637, - 0x55fa, 0x2633, - 0x55fb, 0x4626, - 0x55fc, 0x262d, - 0x55fd, 0x0f94, - 0x55fe, 0x0f90, - 0x55ff, 0x2636, - 0x5600, 0x0f91, - 0x5601, 0x2630, - 0x5602, 0x2632, - 0x5604, 0x2635, - 0x5605, 0x3e82, - 0x5606, 0x0f96, - 0x5608, 0x0f9d, - 0x5609, 0x0f97, - 0x560c, 0x262b, - 0x560d, 0x0f98, - 0x560f, 0x262e, - 0x5610, 0x0f9e, - 0x5611, 0x3f4d, - 0x5612, 0x262c, - 0x5613, 0x2631, - 0x5614, 0x0f95, - 0x5615, 0x262a, - 0x5616, 0x0f9b, - 0x5617, 0x0f93, - 0x561b, 0x0f92, - 0x561c, 0x262f, - 0x561d, 0x2634, - 0x561e, 0x3e68, - 0x561f, 0x0f9c, - 0x5620, 0x3f7d, - 0x5621, 0x43ad, - 0x5622, 0x3e67, - 0x5623, 0x4707, - 0x5625, 0x3e78, - 0x5627, 0x2629, - 0x5629, 0x1119, - 0x562a, 0x289d, - 0x562c, 0x289a, - 0x562d, 0x3e63, - 0x562e, 0x1113, - 0x562f, 0x111f, - 0x5632, 0x1116, - 0x5633, 0x2898, - 0x5634, 0x1118, - 0x5635, 0x2890, - 0x5636, 0x111e, - 0x5637, 0x40b7, - 0x5638, 0x289c, - 0x5639, 0x1115, - 0x563a, 0x289e, - 0x563b, 0x1114, - 0x563d, 0x2899, - 0x563e, 0x289b, - 0x563f, 0x1117, - 0x5640, 0x2897, - 0x5641, 0x2891, - 0x5642, 0x288e, - 0x5643, 0x3e7e, - 0x5645, 0x20c8, - 0x5646, 0x2894, - 0x5648, 0x288d, - 0x5649, 0x2893, - 0x564a, 0x2892, - 0x564c, 0x288f, - 0x564d, 0x40bc, - 0x564e, 0x111b, - 0x564f, 0x40bd, - 0x5650, 0x47cf, - 0x5652, 0x45c2, - 0x5653, 0x111a, - 0x5654, 0x43af, - 0x5657, 0x111c, - 0x5658, 0x2895, - 0x5659, 0x1295, - 0x565a, 0x2896, - 0x565d, 0x3ef9, - 0x565e, 0x2b10, - 0x5660, 0x2b09, - 0x5661, 0x3812, - 0x5662, 0x12a1, - 0x5663, 0x2b0d, - 0x5664, 0x1299, - 0x5665, 0x129d, - 0x5666, 0x2b0c, - 0x5668, 0x129c, - 0x5669, 0x1298, - 0x566a, 0x129b, - 0x566b, 0x1296, - 0x566c, 0x12a0, - 0x566d, 0x2b0e, - 0x566e, 0x2b0a, - 0x566f, 0x129f, - 0x5670, 0x2b08, - 0x5671, 0x129e, - 0x5672, 0x2b0f, - 0x5673, 0x2b0b, - 0x5674, 0x111d, - 0x5676, 0x12a2, - 0x5677, 0x2b11, - 0x5678, 0x129a, - 0x5679, 0x1297, - 0x567a, 0x3d85, - 0x567b, 0x3eb7, - 0x567c, 0x3eed, - 0x567e, 0x2d47, - 0x567f, 0x2d49, - 0x5680, 0x13ba, - 0x5681, 0x2d4a, - 0x5682, 0x2d48, - 0x5683, 0x2d46, - 0x5684, 0x2d45, - 0x5685, 0x13bc, - 0x5686, 0x2d44, - 0x5687, 0x13bd, - 0x5689, 0x4628, - 0x568a, 0x3949, - 0x568b, 0x3e4c, - 0x568c, 0x2d42, - 0x568e, 0x13b9, - 0x568f, 0x13be, - 0x5690, 0x13bb, - 0x5692, 0x39a6, - 0x5693, 0x2d41, - 0x5695, 0x14ca, - 0x5697, 0x2f13, - 0x5698, 0x2f11, - 0x5699, 0x2f16, - 0x569a, 0x2f14, - 0x569c, 0x2f12, - 0x569d, 0x2f15, - 0x569e, 0x39a4, - 0x569f, 0x3948, - 0x56a1, 0x436b, - 0x56a4, 0x3cc8, - 0x56a5, 0x1576, - 0x56a6, 0x3081, - 0x56a8, 0x1577, - 0x56aa, 0x3083, - 0x56ab, 0x307f, - 0x56ac, 0x3084, - 0x56ad, 0x3080, - 0x56ae, 0x14cb, - 0x56af, 0x45f7, - 0x56b1, 0x463f, - 0x56b2, 0x31c8, - 0x56b3, 0x31ca, - 0x56b4, 0x160c, - 0x56b5, 0x31c9, - 0x56b6, 0x160b, - 0x56b7, 0x160a, - 0x56b9, 0x486f, - 0x56bc, 0x160d, - 0x56bd, 0x32ca, - 0x56bf, 0x3e5d, - 0x56c0, 0x166b, - 0x56c1, 0x166a, - 0x56c2, 0x166c, - 0x56c3, 0x32c9, - 0x56c5, 0x3379, - 0x56c6, 0x3378, - 0x56c8, 0x16bd, - 0x56c9, 0x16bf, - 0x56ca, 0x16be, - 0x56cb, 0x337a, - 0x56cc, 0x16f6, - 0x56cd, 0x3481, - 0x56d1, 0x171f, - 0x56d3, 0x3480, - 0x56d4, 0x34c9, - 0x56d6, 0x488a, - 0x56d7, 0x1775, - 0x56da, 0x032d, - 0x56db, 0x032c, - 0x56dd, 0x03ac, - 0x56de, 0x03ab, - 0x56df, 0x17d0, - 0x56e0, 0x03aa, - 0x56e1, 0x17cf, - 0x56e2, 0x4548, - 0x56e4, 0x0463, - 0x56e5, 0x1850, - 0x56e7, 0x184f, - 0x56ea, 0x0461, - 0x56eb, 0x0464, - 0x56ed, 0x40c4, - 0x56ee, 0x184e, - 0x56ef, 0x40c3, - 0x56f0, 0x0462, - 0x56f1, 0x40bf, - 0x56f7, 0x1933, - 0x56f9, 0x1934, - 0x56fa, 0x0578, - 0x56fd, 0x3d64, - 0x56ff, 0x06e6, - 0x5700, 0x40c2, - 0x5701, 0x1c5b, - 0x5703, 0x0879, - 0x5707, 0x1e74, - 0x5708, 0x0a36, - 0x5709, 0x0a38, - 0x570a, 0x1e73, - 0x570b, 0x0a37, - 0x570c, 0x20d9, - 0x570d, 0x0c16, - 0x5712, 0x0de4, - 0x5714, 0x2391, - 0x5715, 0x3e36, - 0x5716, 0x0fa1, - 0x5718, 0x0fa0, - 0x571a, 0x289f, - 0x571b, 0x2b13, - 0x571c, 0x2b12, - 0x571d, 0x3a02, - 0x571e, 0x3505, - 0x571f, 0x027a, - 0x5720, 0x1784, - 0x5722, 0x179a, - 0x5728, 0x03af, - 0x5729, 0x03b3, - 0x572a, 0x17d2, - 0x572c, 0x03b1, - 0x572d, 0x03b0, - 0x572e, 0x17d1, - 0x572f, 0x03b2, - 0x5730, 0x03ae, - 0x5732, 0x3af9, - 0x5733, 0x03ad, - 0x5734, 0x17d3, - 0x573b, 0x046e, - 0x573e, 0x046b, - 0x573f, 0x4855, - 0x5740, 0x0467, - 0x5741, 0x1851, - 0x5742, 0x40cc, - 0x5743, 0x40de, - 0x5745, 0x1852, - 0x5746, 0x40c8, - 0x5747, 0x0469, - 0x5749, 0x1854, - 0x574a, 0x0465, - 0x574b, 0x1855, - 0x574c, 0x1853, - 0x574d, 0x0468, - 0x574e, 0x046a, - 0x574f, 0x046d, - 0x5750, 0x046c, - 0x5751, 0x0466, - 0x5752, 0x1856, - 0x5754, 0x4785, - 0x5757, 0x47e6, - 0x575b, 0x3982, - 0x575f, 0x3fbf, - 0x5761, 0x057d, - 0x5762, 0x1941, - 0x5764, 0x057f, - 0x5766, 0x057e, - 0x5767, 0x3f2b, - 0x5768, 0x1942, - 0x5769, 0x057c, - 0x576a, 0x057b, - 0x576b, 0x1938, - 0x576d, 0x1937, - 0x576f, 0x1935, - 0x5770, 0x193a, - 0x5771, 0x1939, - 0x5772, 0x1936, - 0x5773, 0x193f, - 0x5775, 0x193d, - 0x5776, 0x193b, - 0x5777, 0x057a, - 0x577a, 0x3f5f, - 0x577b, 0x193e, - 0x577c, 0x0580, - 0x577d, 0x1943, - 0x577e, 0x46dc, - 0x577f, 0x3a07, - 0x5780, 0x193c, - 0x5782, 0x06e7, - 0x5783, 0x0579, - 0x5788, 0x484b, - 0x578a, 0x3c7b, - 0x578b, 0x06e8, - 0x578c, 0x1a90, - 0x578d, 0x3a06, - 0x578f, 0x1a96, - 0x5790, 0x4166, - 0x5793, 0x06ee, - 0x5794, 0x1a94, - 0x5795, 0x1a9a, - 0x5797, 0x1a91, - 0x5798, 0x1a95, - 0x5799, 0x1a97, - 0x579a, 0x1a99, - 0x579b, 0x1a93, - 0x579c, 0x4608, - 0x579d, 0x1a92, - 0x579e, 0x1a8d, - 0x57a0, 0x06e9, - 0x57a1, 0x4864, - 0x57a2, 0x06eb, - 0x57a3, 0x06ea, - 0x57a4, 0x1a8f, - 0x57a5, 0x1a98, - 0x57a7, 0x4914, - 0x57aa, 0x4905, - 0x57ae, 0x06ed, - 0x57b4, 0x4741, - 0x57b5, 0x1a8c, - 0x57b6, 0x1c66, - 0x57b8, 0x1c65, - 0x57b9, 0x1c6a, - 0x57ba, 0x1c61, - 0x57bb, 0x3c79, - 0x57bc, 0x1c64, - 0x57bd, 0x1c63, - 0x57be, 0x372c, - 0x57bf, 0x1c67, - 0x57c1, 0x1c6b, - 0x57c2, 0x087b, - 0x57c3, 0x087e, - 0x57c4, 0x3b5b, - 0x57c6, 0x1c62, - 0x57c7, 0x1c68, - 0x57c8, 0x3d0b, - 0x57cb, 0x087d, - 0x57cc, 0x1c5d, - 0x57ce, 0x06ec, - 0x57cf, 0x1e82, - 0x57d0, 0x1c69, - 0x57d2, 0x1c60, - 0x57d4, 0x087c, - 0x57d5, 0x1c5f, - 0x57d7, 0x3c7d, - 0x57dc, 0x1e79, - 0x57dd, 0x3a05, - 0x57de, 0x3f01, - 0x57df, 0x0a39, - 0x57e0, 0x0a3d, - 0x57e1, 0x1e89, - 0x57e2, 0x1e77, - 0x57e3, 0x1e85, - 0x57e4, 0x0a3e, - 0x57e5, 0x1e87, - 0x57e6, 0x40cf, - 0x57e7, 0x1e8d, - 0x57e9, 0x1e91, - 0x57ec, 0x1e88, - 0x57ed, 0x1e7c, - 0x57ee, 0x1e84, - 0x57ef, 0x4754, - 0x57f0, 0x1e92, - 0x57f1, 0x1e90, - 0x57f2, 0x1e86, - 0x57f3, 0x1e81, - 0x57f4, 0x1e7a, - 0x57f5, 0x20e1, - 0x57f6, 0x1e78, - 0x57f7, 0x0a42, - 0x57f8, 0x1e7f, - 0x57f9, 0x0a43, - 0x57fa, 0x0a3f, - 0x57fb, 0x1e75, - 0x57fc, 0x1e8b, - 0x57fd, 0x1e7d, - 0x57fe, 0x408f, - 0x5800, 0x1e7b, - 0x5801, 0x1e8e, - 0x5802, 0x0a40, - 0x5803, 0x40d1, - 0x5804, 0x1e94, - 0x5805, 0x0a3a, - 0x5806, 0x0a3c, - 0x5807, 0x1e83, - 0x5808, 0x1e7e, - 0x5809, 0x087f, - 0x580a, 0x0a3b, - 0x580b, 0x1e80, - 0x580c, 0x1e8f, - 0x580d, 0x1e93, - 0x580e, 0x1e8a, - 0x5810, 0x1e8c, - 0x5812, 0x3d0a, - 0x5814, 0x1e76, - 0x5819, 0x20dc, - 0x581b, 0x20e5, - 0x581c, 0x20e4, - 0x581d, 0x0c1e, - 0x581e, 0x20dd, - 0x5820, 0x0c1f, - 0x5821, 0x0c1d, - 0x5822, 0x3c28, - 0x5823, 0x20df, - 0x5824, 0x0c1a, - 0x5825, 0x20e3, - 0x5826, 0x40d4, - 0x5827, 0x20de, - 0x5828, 0x20e0, - 0x5829, 0x20da, - 0x582a, 0x0c18, - 0x582c, 0x20ed, - 0x582d, 0x20ec, - 0x582e, 0x20e9, - 0x582f, 0x0c17, - 0x5830, 0x0c1b, - 0x5832, 0x1c5e, - 0x5833, 0x20e6, - 0x5834, 0x0c19, - 0x5835, 0x0a41, - 0x5836, 0x20e8, - 0x5837, 0x20db, - 0x5838, 0x20eb, - 0x5839, 0x20ea, - 0x583a, 0x3d72, - 0x583b, 0x20ee, - 0x583d, 0x239f, - 0x583f, 0x20e7, - 0x5840, 0x3d82, - 0x5844, 0x47bb, - 0x5847, 0x3ac2, - 0x5848, 0x20e2, - 0x5849, 0x2397, - 0x584a, 0x0def, - 0x584b, 0x0df2, - 0x584c, 0x0ded, - 0x584d, 0x2396, - 0x584e, 0x239a, - 0x584f, 0x2395, - 0x5851, 0x0de7, - 0x5852, 0x0df1, - 0x5853, 0x2392, - 0x5854, 0x0deb, - 0x5855, 0x2399, - 0x5857, 0x0de9, - 0x5858, 0x0de8, - 0x5859, 0x239c, - 0x585a, 0x0dea, - 0x585b, 0x239e, - 0x585c, 0x4949, - 0x585d, 0x239b, - 0x585e, 0x0de6, - 0x585f, 0x43df, - 0x5862, 0x0df0, - 0x5863, 0x23a0, - 0x5864, 0x2394, - 0x5865, 0x239d, - 0x5868, 0x2393, - 0x5869, 0x3d65, - 0x586b, 0x0dec, - 0x586c, 0x399a, - 0x586d, 0x0dee, - 0x586f, 0x2398, - 0x5871, 0x23a1, - 0x5872, 0x3c26, - 0x5873, 0x4355, - 0x5874, 0x263f, - 0x5875, 0x0fa2, - 0x5876, 0x2645, - 0x5879, 0x0fa7, - 0x587a, 0x2641, - 0x587b, 0x2648, - 0x587c, 0x2639, - 0x587d, 0x0fa9, - 0x587e, 0x0fa3, - 0x587f, 0x263e, - 0x5880, 0x1121, - 0x5881, 0x263d, - 0x5882, 0x2646, - 0x5883, 0x0fa4, - 0x5885, 0x0fa8, - 0x5886, 0x263c, - 0x5887, 0x2642, - 0x5888, 0x2647, - 0x5889, 0x2638, - 0x588a, 0x0fa6, - 0x588b, 0x2640, - 0x588e, 0x2644, - 0x588f, 0x264a, - 0x5890, 0x263a, - 0x5891, 0x2643, - 0x5893, 0x0fa5, - 0x5894, 0x2649, - 0x5898, 0x263b, - 0x5899, 0x4618, - 0x589a, 0x4903, - 0x589c, 0x1125, - 0x589d, 0x28a1, - 0x589e, 0x1123, - 0x589f, 0x1122, - 0x58a0, 0x28a3, - 0x58a1, 0x28a8, - 0x58a3, 0x28a4, - 0x58a5, 0x28a7, - 0x58a6, 0x1128, - 0x58a7, 0x3eeb, - 0x58a8, 0x1288, - 0x58a9, 0x1127, - 0x58aa, 0x40d7, - 0x58ab, 0x28a0, - 0x58ac, 0x28a6, - 0x58ae, 0x1126, - 0x58af, 0x28a5, - 0x58b0, 0x37a4, - 0x58b1, 0x28a2, - 0x58b3, 0x1124, - 0x58b5, 0x4840, - 0x58b6, 0x3dfd, - 0x58ba, 0x2b18, - 0x58bb, 0x36eb, - 0x58bc, 0x2b1a, - 0x58bd, 0x2b15, - 0x58be, 0x12a4, - 0x58bf, 0x2b17, - 0x58c1, 0x12a3, - 0x58c2, 0x2b19, - 0x58c5, 0x12a6, - 0x58c6, 0x2b1b, - 0x58c7, 0x12a5, - 0x58c8, 0x2b14, - 0x58c9, 0x2b16, - 0x58cb, 0x3a09, - 0x58ce, 0x13c2, - 0x58cf, 0x2d4d, - 0x58d1, 0x13c1, - 0x58d2, 0x2d4e, - 0x58d3, 0x13c0, - 0x58d4, 0x2d4c, - 0x58d5, 0x13bf, - 0x58d6, 0x2d4b, - 0x58d8, 0x14cd, - 0x58d9, 0x14cc, - 0x58da, 0x3085, - 0x58db, 0x3087, - 0x58dc, 0x40da, - 0x58dd, 0x3086, - 0x58de, 0x1578, - 0x58e0, 0x40d9, - 0x58e2, 0x157a, - 0x58e3, 0x31cb, - 0x58e4, 0x160e, - 0x58e7, 0x3411, - 0x58e8, 0x3410, - 0x58e9, 0x1720, - 0x58eb, 0x027b, - 0x58ec, 0x02c1, - 0x58ef, 0x046f, - 0x58f0, 0x4549, - 0x58f2, 0x3d68, - 0x58f3, 0x3c7a, - 0x58f4, 0x1a9b, - 0x58f9, 0x0c20, - 0x58fb, 0x40dc, - 0x58fc, 0x23a2, - 0x58fd, 0x0faa, - 0x58fe, 0x264b, - 0x58ff, 0x28a9, - 0x5902, 0x0224, - 0x5903, 0x1785, - 0x5904, 0x454a, - 0x5905, 0x4599, - 0x5906, 0x1857, - 0x5907, 0x454b, - 0x590a, 0x0224, - 0x590c, 0x1944, - 0x590d, 0x1a9c, - 0x590e, 0x1c6c, - 0x590f, 0x0880, - 0x5911, 0x4274, - 0x5912, 0x3088, - 0x5914, 0x166d, - 0x5915, 0x027c, - 0x5916, 0x032e, - 0x5917, 0x179c, - 0x5919, 0x03b4, - 0x591c, 0x0581, - 0x591f, 0x40e3, - 0x5920, 0x0a44, - 0x5922, 0x0fac, - 0x5924, 0x0fad, - 0x5925, 0x0fab, - 0x5927, 0x027d, - 0x5929, 0x02c2, - 0x592a, 0x02c4, - 0x592b, 0x02c3, - 0x592c, 0x1786, - 0x592d, 0x02c5, - 0x592e, 0x032f, - 0x592f, 0x179d, - 0x5931, 0x0330, - 0x5932, 0x454c, - 0x5934, 0x454d, - 0x5937, 0x03b6, - 0x593c, 0x17d4, - 0x593e, 0x0470, - 0x5940, 0x1858, - 0x5944, 0x0585, - 0x5945, 0x1945, - 0x5947, 0x0583, - 0x5949, 0x0582, - 0x594a, 0x1c6d, - 0x594e, 0x06f2, - 0x594f, 0x06f1, - 0x5950, 0x06f3, - 0x5951, 0x06f0, - 0x5953, 0x1a9d, - 0x5954, 0x0586, - 0x5955, 0x06ef, - 0x5957, 0x0881, - 0x595a, 0x0883, - 0x595c, 0x1e95, - 0x5960, 0x0c22, - 0x5961, 0x20ef, - 0x5962, 0x0a45, - 0x5965, 0x4852, - 0x5967, 0x0df3, - 0x5969, 0x0faf, - 0x596a, 0x0fae, - 0x596b, 0x264c, - 0x596d, 0x1129, - 0x596e, 0x12a7, - 0x5970, 0x2f17, - 0x5971, 0x337b, - 0x5972, 0x3412, - 0x5973, 0x027e, - 0x5974, 0x0331, - 0x5975, 0x3e6a, - 0x5976, 0x0332, - 0x5977, 0x17da, - 0x5978, 0x03b9, - 0x5979, 0x03bc, - 0x597b, 0x17d8, - 0x597c, 0x17d6, - 0x597d, 0x03bb, - 0x597e, 0x17d9, - 0x597f, 0x17db, - 0x5980, 0x17d5, - 0x5981, 0x03be, - 0x5982, 0x03bd, - 0x5983, 0x03ba, - 0x5984, 0x03b8, - 0x5985, 0x17d7, - 0x5989, 0x3d30, - 0x598a, 0x047b, - 0x598d, 0x0478, - 0x598e, 0x185d, - 0x598f, 0x1860, - 0x5990, 0x185f, - 0x5992, 0x0472, - 0x5993, 0x047a, - 0x5994, 0x3c99, - 0x5996, 0x0477, - 0x5997, 0x185c, - 0x5998, 0x185a, - 0x5999, 0x0476, - 0x599a, 0x3bb0, - 0x599d, 0x0471, - 0x599e, 0x0474, - 0x599f, 0x3daf, - 0x59a0, 0x185b, - 0x59a1, 0x1862, - 0x59a2, 0x185e, - 0x59a3, 0x0475, - 0x59a4, 0x0479, - 0x59a5, 0x047c, - 0x59a6, 0x1859, - 0x59a7, 0x1861, - 0x59a8, 0x0473, - 0x59ac, 0x3d81, - 0x59ae, 0x058b, - 0x59af, 0x0593, - 0x59b0, 0x3cd8, - 0x59b1, 0x1951, - 0x59b2, 0x194a, - 0x59b3, 0x0594, - 0x59b4, 0x1955, - 0x59b5, 0x1946, - 0x59b6, 0x194d, - 0x59b7, 0x3f2d, - 0x59b8, 0x3a10, - 0x59b9, 0x058a, - 0x59ba, 0x1947, - 0x59bb, 0x0588, - 0x59bc, 0x194e, - 0x59bd, 0x1952, - 0x59be, 0x0587, - 0x59c0, 0x1953, - 0x59c1, 0x194c, - 0x59c3, 0x194f, - 0x59c4, 0x3d04, - 0x59c5, 0x0596, - 0x59c6, 0x058d, - 0x59c7, 0x1956, - 0x59c8, 0x1954, - 0x59c9, 0x40ec, - 0x59ca, 0x0592, - 0x59cb, 0x0590, - 0x59cc, 0x194b, - 0x59cd, 0x058f, - 0x59ce, 0x1949, - 0x59cf, 0x1948, - 0x59d0, 0x058e, - 0x59d1, 0x058c, - 0x59d2, 0x0595, - 0x59d3, 0x0591, - 0x59d4, 0x0589, - 0x59d6, 0x1950, - 0x59d8, 0x06f5, - 0x59d9, 0x40f1, - 0x59da, 0x06fc, - 0x59db, 0x1aab, - 0x59dc, 0x06f4, - 0x59dd, 0x1aa3, - 0x59de, 0x1a9f, - 0x59e0, 0x1aaf, - 0x59e1, 0x1a9e, - 0x59e3, 0x06f7, - 0x59e4, 0x1aa8, - 0x59e5, 0x06fa, - 0x59e6, 0x06fd, - 0x59e8, 0x06f8, - 0x59e9, 0x1aac, - 0x59ea, 0x06fb, - 0x59eb, 0x3d59, - 0x59ec, 0x088a, - 0x59ed, 0x1ab2, - 0x59ee, 0x1aa0, - 0x59ef, 0x3d38, - 0x59f0, 0x3bb2, - 0x59f1, 0x1aa2, - 0x59f2, 0x1aa9, - 0x59f3, 0x1aad, - 0x59f4, 0x1ab1, - 0x59f5, 0x1aae, - 0x59f6, 0x1aa7, - 0x59f7, 0x1aaa, - 0x59f8, 0x3e4a, - 0x59f9, 0x40f8, - 0x59fa, 0x1aa4, - 0x59fb, 0x06ff, - 0x59fc, 0x1aa6, - 0x59fd, 0x1aa5, - 0x59fe, 0x1ab0, - 0x59ff, 0x06f6, - 0x5a00, 0x1aa1, - 0x5a01, 0x06fe, - 0x5a02, 0x3b8d, - 0x5a03, 0x06f9, - 0x5a09, 0x0890, - 0x5a0a, 0x1c75, - 0x5a0b, 0x3c89, - 0x5a0c, 0x088f, - 0x5a0d, 0x3b38, - 0x5a0f, 0x1c73, - 0x5a11, 0x0884, - 0x5a12, 0x3a13, - 0x5a13, 0x0889, - 0x5a15, 0x1c72, - 0x5a16, 0x1c6f, - 0x5a17, 0x1c74, - 0x5a18, 0x0885, - 0x5a19, 0x1c6e, - 0x5a1b, 0x0888, - 0x5a1c, 0x0886, - 0x5a1e, 0x1c76, - 0x5a1f, 0x0887, - 0x5a20, 0x088b, - 0x5a21, 0x3a1b, - 0x5a23, 0x088c, - 0x5a24, 0x40e8, - 0x5a25, 0x088e, - 0x5a27, 0x3de1, - 0x5a29, 0x088d, - 0x5a2a, 0x3b3b, - 0x5a2b, 0x3d40, - 0x5a2c, 0x3a0f, - 0x5a2d, 0x1c70, - 0x5a33, 0x1c77, - 0x5a35, 0x1e9c, - 0x5a36, 0x0a46, - 0x5a37, 0x20fd, - 0x5a38, 0x1e9b, - 0x5a39, 0x1eae, - 0x5a3c, 0x0a4c, - 0x5a3d, 0x3ac0, - 0x5a3e, 0x1eac, - 0x5a40, 0x0a4b, - 0x5a41, 0x0a47, - 0x5a42, 0x1eb5, - 0x5a43, 0x1ea5, - 0x5a44, 0x1ea8, - 0x5a45, 0x3917, - 0x5a46, 0x0a4f, - 0x5a47, 0x1eb2, - 0x5a48, 0x1eaa, - 0x5a49, 0x0a48, - 0x5a4a, 0x0a50, - 0x5a4c, 0x1eaf, - 0x5a4d, 0x1ead, - 0x5a50, 0x1e9e, - 0x5a51, 0x1eb3, - 0x5a52, 0x1ea7, - 0x5a53, 0x1ea2, - 0x5a54, 0x4603, - 0x5a55, 0x1e98, - 0x5a56, 0x1eb4, - 0x5a57, 0x1ea4, - 0x5a58, 0x1e97, - 0x5a59, 0x3b34, - 0x5a5a, 0x0a4e, - 0x5a5b, 0x1ea9, - 0x5a5c, 0x1eb6, - 0x5a5d, 0x1ea6, - 0x5a5e, 0x1e9a, - 0x5a5f, 0x1e9f, - 0x5a60, 0x1e96, - 0x5a61, 0x3d33, - 0x5a62, 0x0a4d, - 0x5a63, 0x40fb, - 0x5a64, 0x1ea3, - 0x5a65, 0x1ea0, - 0x5a66, 0x0a49, - 0x5a67, 0x1e99, - 0x5a68, 0x39b7, - 0x5a69, 0x1eb1, - 0x5a6a, 0x0a4a, - 0x5a6b, 0x3a42, - 0x5a6c, 0x1ea1, - 0x5a6d, 0x1e9d, - 0x5a6e, 0x3d3f, - 0x5a70, 0x1eb0, - 0x5a71, 0x3d34, - 0x5a77, 0x0c23, - 0x5a78, 0x20f6, - 0x5a79, 0x3ce1, - 0x5a7a, 0x20f3, - 0x5a7b, 0x2104, - 0x5a7c, 0x20f8, - 0x5a7d, 0x2105, - 0x5a7e, 0x3a11, - 0x5a7f, 0x0c25, - 0x5a81, 0x3a1d, - 0x5a82, 0x3d31, - 0x5a83, 0x2101, - 0x5a84, 0x20fe, - 0x5a86, 0x3b81, - 0x5a88, 0x4263, - 0x5a8a, 0x20ff, - 0x5a8b, 0x2102, - 0x5a8c, 0x2106, - 0x5a8e, 0x1eab, - 0x5a8f, 0x2108, - 0x5a90, 0x23b6, - 0x5a91, 0x4235, - 0x5a92, 0x0c26, - 0x5a93, 0x2109, - 0x5a94, 0x20f1, - 0x5a95, 0x20fb, - 0x5a96, 0x4100, - 0x5a97, 0x2100, - 0x5a99, 0x3a0a, - 0x5a9a, 0x0c24, - 0x5a9b, 0x0c27, - 0x5a9c, 0x2107, - 0x5a9d, 0x210a, - 0x5a9e, 0x20f5, - 0x5a9f, 0x20f2, - 0x5aa0, 0x4172, - 0x5aa1, 0x3cdc, - 0x5aa2, 0x20f4, - 0x5aa5, 0x20f9, - 0x5aa6, 0x20f7, - 0x5aa7, 0x0c28, - 0x5aa9, 0x2103, - 0x5aab, 0x40fa, - 0x5aac, 0x20fa, - 0x5aae, 0x20fc, - 0x5aaf, 0x20f0, - 0x5ab0, 0x23aa, - 0x5ab1, 0x23a8, - 0x5ab2, 0x0dfc, - 0x5ab3, 0x0dfa, - 0x5ab4, 0x23b2, - 0x5ab5, 0x23a9, - 0x5ab6, 0x23b3, - 0x5ab7, 0x23af, - 0x5ab8, 0x23a7, - 0x5ab9, 0x23b5, - 0x5aba, 0x23a6, - 0x5abb, 0x23ad, - 0x5abc, 0x0df9, - 0x5abd, 0x0df8, - 0x5abe, 0x0df7, - 0x5abf, 0x23ab, - 0x5ac0, 0x23b0, - 0x5ac1, 0x0df4, - 0x5ac2, 0x0dfb, - 0x5ac3, 0x3896, - 0x5ac4, 0x23a4, - 0x5ac6, 0x23ae, - 0x5ac7, 0x23a3, - 0x5ac8, 0x23ac, - 0x5ac9, 0x0df5, - 0x5aca, 0x23b1, - 0x5acb, 0x23a5, - 0x5acc, 0x0df6, - 0x5acd, 0x23b4, - 0x5ace, 0x3c88, - 0x5acf, 0x43b5, - 0x5ad3, 0x4102, - 0x5ad5, 0x2650, - 0x5ad6, 0x0fb4, - 0x5ad7, 0x0fb3, - 0x5ad8, 0x0fb5, - 0x5ad9, 0x265c, - 0x5ada, 0x2652, - 0x5adb, 0x2658, - 0x5adc, 0x264d, - 0x5add, 0x265b, - 0x5ade, 0x265a, - 0x5adf, 0x265e, - 0x5ae0, 0x2657, - 0x5ae1, 0x0fb0, - 0x5ae2, 0x2656, - 0x5ae3, 0x0fb6, - 0x5ae4, 0x3b86, - 0x5ae5, 0x264f, - 0x5ae6, 0x0fb1, - 0x5ae8, 0x265d, - 0x5ae9, 0x0fb2, - 0x5aea, 0x2651, - 0x5aeb, 0x2654, - 0x5aec, 0x2659, - 0x5aed, 0x2653, - 0x5aee, 0x264e, - 0x5af0, 0x3ee7, - 0x5af2, 0x37f5, - 0x5af3, 0x2655, - 0x5af4, 0x28ab, - 0x5af5, 0x112d, - 0x5af6, 0x28ae, - 0x5af7, 0x28ad, - 0x5af8, 0x28b0, - 0x5af9, 0x28b2, - 0x5afa, 0x36ee, - 0x5afb, 0x112b, - 0x5afd, 0x28ac, - 0x5afe, 0x3c1d, - 0x5aff, 0x28aa, - 0x5b01, 0x28b3, - 0x5b02, 0x28b1, - 0x5b03, 0x28af, - 0x5b05, 0x28b5, - 0x5b07, 0x28b4, - 0x5b08, 0x112f, - 0x5b09, 0x112a, - 0x5b0b, 0x112c, - 0x5b0c, 0x112e, - 0x5b0d, 0x48ff, - 0x5b0f, 0x28b6, - 0x5b10, 0x2b22, - 0x5b11, 0x3bf6, - 0x5b13, 0x2b21, - 0x5b14, 0x2b20, - 0x5b16, 0x2b23, - 0x5b17, 0x2b1c, - 0x5b19, 0x2b1d, - 0x5b1a, 0x2b25, - 0x5b1b, 0x2b1e, - 0x5b1d, 0x12a8, - 0x5b1e, 0x2b27, - 0x5b1f, 0x4941, - 0x5b20, 0x2b26, - 0x5b21, 0x2b1f, - 0x5b23, 0x2d52, - 0x5b24, 0x13c5, - 0x5b25, 0x2d50, - 0x5b26, 0x2d55, - 0x5b27, 0x2d54, - 0x5b28, 0x2b24, - 0x5b2a, 0x13c4, - 0x5b2b, 0x3b84, - 0x5b2c, 0x2d53, - 0x5b2d, 0x2d4f, - 0x5b2e, 0x2d57, - 0x5b2f, 0x2d56, - 0x5b30, 0x13c3, - 0x5b32, 0x2d51, - 0x5b34, 0x12a9, - 0x5b38, 0x14ce, - 0x5b3c, 0x2f18, - 0x5b3d, 0x3089, - 0x5b40, 0x160f, - 0x5b41, 0x38c8, - 0x5b43, 0x1610, - 0x5b44, 0x3a44, - 0x5b45, 0x31cc, - 0x5b46, 0x42b2, - 0x5b47, 0x32cd, - 0x5b48, 0x32cc, - 0x5b4a, 0x38cd, - 0x5b4b, 0x337c, - 0x5b4d, 0x3413, - 0x5b4e, 0x3482, - 0x5b4f, 0x3a31, - 0x5b50, 0x027f, - 0x5b53, 0x0281, - 0x5b54, 0x02c6, - 0x5b55, 0x0333, - 0x5b56, 0x17dc, - 0x5b57, 0x03bf, - 0x5b5a, 0x047f, - 0x5b5c, 0x047e, - 0x5b5d, 0x047d, - 0x5b5f, 0x0597, - 0x5b62, 0x1957, - 0x5b63, 0x0599, - 0x5b64, 0x0598, - 0x5b65, 0x1958, - 0x5b66, 0x454e, - 0x5b68, 0x461d, - 0x5b69, 0x0700, - 0x5b6b, 0x0891, - 0x5b6c, 0x1c78, - 0x5b6d, 0x3e5f, - 0x5b6e, 0x1eb8, - 0x5b70, 0x0a51, - 0x5b71, 0x0c2a, - 0x5b72, 0x1eb7, - 0x5b73, 0x0c29, - 0x5b74, 0x3732, - 0x5b75, 0x0fb7, - 0x5b76, 0x410a, - 0x5b77, 0x265f, - 0x5b78, 0x12aa, - 0x5b7a, 0x13c6, - 0x5b7b, 0x2d58, - 0x5b7c, 0x410c, - 0x5b7d, 0x1611, - 0x5b7f, 0x16c0, - 0x5b80, 0x0225, - 0x5b81, 0x179e, - 0x5b82, 0x4044, - 0x5b83, 0x0334, - 0x5b84, 0x179f, - 0x5b85, 0x03c3, - 0x5b87, 0x03c1, - 0x5b89, 0x03c4, - 0x5b8b, 0x0482, - 0x5b8c, 0x0481, - 0x5b8e, 0x1863, - 0x5b8f, 0x0483, - 0x5b90, 0x48e9, - 0x5b92, 0x1864, - 0x5b93, 0x1959, - 0x5b95, 0x195a, - 0x5b97, 0x059a, - 0x5b98, 0x059c, - 0x5b99, 0x059e, - 0x5b9a, 0x059b, - 0x5b9b, 0x059f, - 0x5b9c, 0x059d, - 0x5b9d, 0x4116, - 0x5b9e, 0x454f, - 0x5ba2, 0x0704, - 0x5ba3, 0x0701, - 0x5ba4, 0x0703, - 0x5ba5, 0x0705, - 0x5ba6, 0x0702, - 0x5ba7, 0x1c79, - 0x5ba8, 0x1ab3, - 0x5baa, 0x417b, - 0x5bac, 0x1c7b, - 0x5bad, 0x1c7a, - 0x5bae, 0x0897, - 0x5bb0, 0x0893, - 0x5bb3, 0x0894, - 0x5bb4, 0x0896, - 0x5bb5, 0x0898, - 0x5bb6, 0x0895, - 0x5bb8, 0x089a, - 0x5bb9, 0x0899, - 0x5bbf, 0x0a56, - 0x5bc0, 0x1eba, - 0x5bc1, 0x1eb9, - 0x5bc2, 0x0a55, - 0x5bc3, 0x3f25, - 0x5bc4, 0x0a54, - 0x5bc5, 0x0a53, - 0x5bc6, 0x0a57, - 0x5bc7, 0x0a52, - 0x5bca, 0x2110, - 0x5bcb, 0x210d, - 0x5bcc, 0x0c2c, - 0x5bcd, 0x210c, - 0x5bce, 0x2111, - 0x5bd0, 0x0c2e, - 0x5bd1, 0x210f, - 0x5bd2, 0x0c2b, - 0x5bd3, 0x0c2d, - 0x5bd4, 0x210e, - 0x5bd5, 0x4111, - 0x5bd6, 0x23b7, - 0x5bd7, 0x42bb, - 0x5bd8, 0x23b8, - 0x5bde, 0x0fb8, - 0x5bdf, 0x0fc0, - 0x5be0, 0x2660, - 0x5be1, 0x0fba, - 0x5be2, 0x0fbe, - 0x5be3, 0x2661, - 0x5be4, 0x0fbf, - 0x5be5, 0x0fbb, - 0x5be7, 0x0fb9, - 0x5be8, 0x0fbd, - 0x5be9, 0x1132, - 0x5bea, 0x210b, - 0x5beb, 0x1133, - 0x5bec, 0x1131, - 0x5bee, 0x1130, - 0x5bef, 0x2b28, - 0x5bf0, 0x12ab, - 0x5bf1, 0x2d59, - 0x5bf3, 0x4115, - 0x5bf5, 0x157b, - 0x5bf6, 0x1612, - 0x5bf8, 0x0282, - 0x5bfa, 0x03c5, - 0x5bff, 0x40dd, - 0x5c01, 0x0706, - 0x5c03, 0x1c7c, - 0x5c04, 0x089b, - 0x5c05, 0x4118, - 0x5c07, 0x0a5a, - 0x5c08, 0x0a59, - 0x5c09, 0x0a58, - 0x5c0a, 0x0c2f, - 0x5c0c, 0x2112, - 0x5c0d, 0x0fc1, - 0x5c0e, 0x12ac, - 0x5c0f, 0x0283, - 0x5c10, 0x1787, - 0x5c11, 0x02c7, - 0x5c12, 0x17a0, - 0x5c13, 0x411a, - 0x5c14, 0x411c, - 0x5c15, 0x17dd, - 0x5c16, 0x03c6, - 0x5c1a, 0x05a0, - 0x5c1c, 0x45ea, - 0x5c1e, 0x3a29, - 0x5c1f, 0x23ba, - 0x5c20, 0x3d89, - 0x5c22, 0x0284, - 0x5c23, 0x44e8, - 0x5c24, 0x02c8, - 0x5c25, 0x17de, - 0x5c28, 0x1865, - 0x5c2a, 0x1866, - 0x5c2c, 0x0484, - 0x5c30, 0x2113, - 0x5c31, 0x0c31, - 0x5c33, 0x23bb, - 0x5c37, 0x13c7, - 0x5c38, 0x0285, - 0x5c39, 0x0299, - 0x5c3a, 0x02c9, - 0x5c3b, 0x17a1, - 0x5c3c, 0x0335, - 0x5c3e, 0x0488, - 0x5c3f, 0x0487, - 0x5c40, 0x0485, - 0x5c44, 0x195b, - 0x5c45, 0x05a2, - 0x5c47, 0x195c, - 0x5c48, 0x05a1, - 0x5c49, 0x411f, - 0x5c4a, 0x3f5c, - 0x5c4b, 0x070a, - 0x5c4c, 0x1ab4, - 0x5c4d, 0x0709, - 0x5c4e, 0x0707, - 0x5c50, 0x089e, - 0x5c51, 0x089c, - 0x5c53, 0x3f02, - 0x5c54, 0x1c7e, - 0x5c55, 0x089d, - 0x5c56, 0x1c7d, - 0x5c58, 0x0892, - 0x5c59, 0x1ebb, - 0x5c5c, 0x0a5c, - 0x5c5e, 0x3d67, - 0x5c60, 0x0a5b, - 0x5c62, 0x0fc2, - 0x5c63, 0x2662, - 0x5c64, 0x1134, - 0x5c67, 0x28b7, - 0x5c68, 0x13c8, - 0x5c69, 0x2f19, - 0x5c6c, 0x166e, - 0x5c6d, 0x3483, - 0x5c6e, 0x1776, - 0x5c6f, 0x02ca, - 0x5c71, 0x0286, - 0x5c73, 0x17a3, - 0x5c74, 0x17a2, - 0x5c79, 0x03c7, - 0x5c7a, 0x17e0, - 0x5c7c, 0x17df, - 0x5c7e, 0x17e2, - 0x5c85, 0x4121, - 0x5c86, 0x186e, - 0x5c88, 0x1869, - 0x5c89, 0x186b, - 0x5c8a, 0x186d, - 0x5c8b, 0x186a, - 0x5c8c, 0x048c, - 0x5c8d, 0x1867, - 0x5c8f, 0x1868, - 0x5c90, 0x0489, - 0x5c92, 0x186c, - 0x5c93, 0x186f, - 0x5c94, 0x048b, - 0x5c95, 0x1870, - 0x5c99, 0x468c, - 0x5c9a, 0x4551, - 0x5c9c, 0x495a, - 0x5c9d, 0x196a, - 0x5c9e, 0x3a2a, - 0x5c9f, 0x1964, - 0x5ca0, 0x195f, - 0x5ca1, 0x05a5, - 0x5ca2, 0x1967, - 0x5ca3, 0x1965, - 0x5ca4, 0x195e, - 0x5ca5, 0x196b, - 0x5ca6, 0x196e, - 0x5ca7, 0x1969, - 0x5ca8, 0x1962, - 0x5ca9, 0x05a7, - 0x5caa, 0x1968, - 0x5cab, 0x05a8, - 0x5cac, 0x1963, - 0x5cad, 0x1966, - 0x5cae, 0x195d, - 0x5caf, 0x1961, - 0x5cb0, 0x196d, - 0x5cb1, 0x05a9, - 0x5cb3, 0x05aa, - 0x5cb5, 0x1960, - 0x5cb6, 0x196c, - 0x5cb7, 0x05a4, - 0x5cb8, 0x05a6, - 0x5cba, 0x412b, - 0x5cc1, 0x43b8, - 0x5cc2, 0x3d4c, - 0x5cc6, 0x1ac5, - 0x5cc7, 0x1abe, - 0x5cc8, 0x1ac4, - 0x5cc9, 0x1abd, - 0x5cca, 0x1abf, - 0x5ccb, 0x1ab9, - 0x5ccc, 0x1ab7, - 0x5cce, 0x1ac6, - 0x5ccf, 0x1ac3, - 0x5cd0, 0x1ab5, - 0x5cd1, 0x3f13, - 0x5cd2, 0x070c, - 0x5cd3, 0x1ac1, - 0x5cd6, 0x1ac0, - 0x5cd7, 0x1ab8, - 0x5cd8, 0x1ab6, - 0x5cd9, 0x070b, - 0x5cda, 0x1abc, - 0x5cdb, 0x1aba, - 0x5cde, 0x1abb, - 0x5cdf, 0x1ac7, - 0x5ce5, 0x4637, - 0x5ce8, 0x08a3, - 0x5ce9, 0x4122, - 0x5cea, 0x08a2, - 0x5cec, 0x1c7f, - 0x5ced, 0x089f, - 0x5cee, 0x1c81, - 0x5cef, 0x4123, - 0x5cf0, 0x08a4, - 0x5cf1, 0x1c82, - 0x5cf4, 0x08a7, - 0x5cf6, 0x08a5, - 0x5cf7, 0x1c83, - 0x5cf8, 0x1ac8, - 0x5cf9, 0x1c85, - 0x5cfb, 0x08a1, - 0x5cfd, 0x08a0, - 0x5cff, 0x1c80, - 0x5d00, 0x1c84, - 0x5d01, 0x08a6, - 0x5d06, 0x0a5f, - 0x5d07, 0x0a5e, - 0x5d0b, 0x1ebd, - 0x5d0c, 0x1ec1, - 0x5d0d, 0x1ec3, - 0x5d0e, 0x0a60, - 0x5d0f, 0x1ec6, - 0x5d10, 0x4127, - 0x5d11, 0x0a64, - 0x5d12, 0x1ec8, - 0x5d14, 0x0a66, - 0x5d15, 0x43b9, - 0x5d16, 0x0a62, - 0x5d17, 0x0a6a, - 0x5d18, 0x4128, - 0x5d19, 0x0a67, - 0x5d1a, 0x1ebf, - 0x5d1b, 0x0a61, - 0x5d1d, 0x1ebe, - 0x5d1e, 0x1ebc, - 0x5d1f, 0x1eca, - 0x5d20, 0x1ec0, - 0x5d22, 0x0a63, - 0x5d23, 0x1ec9, - 0x5d24, 0x0a68, - 0x5d25, 0x1ec5, - 0x5d26, 0x1ec4, - 0x5d27, 0x0a69, - 0x5d28, 0x1ec2, - 0x5d29, 0x0a65, - 0x5d2c, 0x3df7, - 0x5d2e, 0x1ecb, - 0x5d2f, 0x46d3, - 0x5d30, 0x1ec7, - 0x5d31, 0x2122, - 0x5d32, 0x2129, - 0x5d33, 0x211e, - 0x5d34, 0x0c34, - 0x5d35, 0x211a, - 0x5d36, 0x212a, - 0x5d37, 0x2114, - 0x5d38, 0x2127, - 0x5d39, 0x2125, - 0x5d3a, 0x211f, - 0x5d3c, 0x2128, - 0x5d3d, 0x2121, - 0x5d3e, 0x4629, - 0x5d3f, 0x2119, - 0x5d40, 0x212b, - 0x5d41, 0x2117, - 0x5d42, 0x2124, - 0x5d43, 0x2115, - 0x5d45, 0x212c, - 0x5d46, 0x4129, - 0x5d47, 0x0c35, - 0x5d48, 0x462a, - 0x5d49, 0x2126, - 0x5d4a, 0x23be, - 0x5d4b, 0x2118, - 0x5d4c, 0x0c32, - 0x5d4e, 0x211c, - 0x5d50, 0x0c33, - 0x5d51, 0x211b, - 0x5d52, 0x2120, - 0x5d55, 0x211d, - 0x5d56, 0x43ba, - 0x5d57, 0x3fca, - 0x5d59, 0x2123, - 0x5d5b, 0x3dd5, - 0x5d5e, 0x23c2, - 0x5d62, 0x23c5, - 0x5d63, 0x23bd, - 0x5d65, 0x23bf, - 0x5d67, 0x23c4, - 0x5d68, 0x23c3, - 0x5d69, 0x0dfd, - 0x5d6b, 0x2116, - 0x5d6c, 0x23c1, - 0x5d6f, 0x0dfe, - 0x5d70, 0x46e4, - 0x5d71, 0x23bc, - 0x5d72, 0x23c0, - 0x5d74, 0x3eef, - 0x5d77, 0x2669, - 0x5d79, 0x2670, - 0x5d7a, 0x2667, - 0x5d7c, 0x266e, - 0x5d7d, 0x2665, - 0x5d7e, 0x266d, - 0x5d7f, 0x2671, - 0x5d80, 0x2664, - 0x5d81, 0x2668, - 0x5d82, 0x2663, - 0x5d84, 0x0fc3, - 0x5d85, 0x3e34, - 0x5d86, 0x2666, - 0x5d87, 0x0fc4, - 0x5d88, 0x266c, - 0x5d89, 0x266b, - 0x5d8a, 0x266a, - 0x5d8b, 0x4124, - 0x5d8d, 0x266f, - 0x5d8e, 0x3f0c, - 0x5d92, 0x28bb, - 0x5d93, 0x28bd, - 0x5d94, 0x1137, - 0x5d95, 0x28be, - 0x5d97, 0x28b9, - 0x5d99, 0x28b8, - 0x5d9a, 0x28c2, - 0x5d9c, 0x28c0, - 0x5d9d, 0x1136, - 0x5d9e, 0x28c3, - 0x5d9f, 0x28ba, - 0x5da0, 0x28bf, - 0x5da1, 0x28c1, - 0x5da2, 0x28bc, - 0x5da4, 0x462d, - 0x5da7, 0x2b2c, - 0x5da8, 0x2b31, - 0x5da9, 0x2b2b, - 0x5daa, 0x2b30, - 0x5dab, 0x3e39, - 0x5dac, 0x2b29, - 0x5dad, 0x2b33, - 0x5dae, 0x2b2f, - 0x5daf, 0x2b34, - 0x5db0, 0x2b2e, - 0x5db1, 0x2b2a, - 0x5db2, 0x2b32, - 0x5db4, 0x2b35, - 0x5db5, 0x2b2d, - 0x5db6, 0x4158, - 0x5db7, 0x2d5b, - 0x5db8, 0x13cc, - 0x5db9, 0x462e, - 0x5dba, 0x13ca, - 0x5dbc, 0x13c9, - 0x5dbd, 0x13cb, - 0x5dc0, 0x2f1b, - 0x5dc1, 0x3bff, - 0x5dc2, 0x3023, - 0x5dc3, 0x308c, - 0x5dc6, 0x31cd, - 0x5dc9, 0x1613, - 0x5dcb, 0x32ce, - 0x5dcd, 0x166f, - 0x5dcf, 0x32cf, - 0x5dd1, 0x337f, - 0x5dd2, 0x16c2, - 0x5dd4, 0x16c1, - 0x5dd5, 0x337e, - 0x5dd6, 0x16f7, - 0x5dd7, 0x412c, - 0x5dd8, 0x3414, - 0x5ddb, 0x0226, - 0x5ddd, 0x0287, - 0x5dde, 0x03c8, - 0x5ddf, 0x17e3, - 0x5de0, 0x1871, - 0x5de1, 0x051a, - 0x5de2, 0x0a6b, - 0x5de5, 0x0288, - 0x5de6, 0x0338, - 0x5de7, 0x0337, - 0x5de8, 0x0336, - 0x5deb, 0x048d, - 0x5dee, 0x08a8, - 0x5df0, 0x23c6, - 0x5df1, 0x0289, - 0x5df4, 0x02cb, - 0x5df5, 0x3f61, - 0x5df7, 0x070d, - 0x5df9, 0x1ac9, - 0x5dfd, 0x0c36, - 0x5dfe, 0x028c, - 0x5dff, 0x1788, - 0x5e02, 0x0339, - 0x5e04, 0x17a4, - 0x5e06, 0x03c9, - 0x5e09, 0x4140, - 0x5e0a, 0x1872, - 0x5e0b, 0x3d8a, - 0x5e0c, 0x048e, - 0x5e0e, 0x1873, - 0x5e11, 0x05b0, - 0x5e12, 0x3f2e, - 0x5e14, 0x1970, - 0x5e15, 0x05ae, - 0x5e16, 0x05ad, - 0x5e17, 0x196f, - 0x5e18, 0x05ab, - 0x5e19, 0x1971, - 0x5e1a, 0x05ac, - 0x5e1b, 0x05af, - 0x5e1d, 0x070e, - 0x5e1f, 0x0710, - 0x5e20, 0x1acd, - 0x5e21, 0x1aca, - 0x5e24, 0x1ace, - 0x5e25, 0x070f, - 0x5e28, 0x1c87, - 0x5e29, 0x1c86, - 0x5e2b, 0x08aa, - 0x5e2d, 0x08a9, - 0x5e2e, 0x4135, - 0x5e33, 0x0a6e, - 0x5e34, 0x1ecd, - 0x5e36, 0x0a6d, - 0x5e37, 0x0a6f, - 0x5e38, 0x0a6c, - 0x5e3d, 0x0c38, - 0x5e3e, 0x1ecc, - 0x5e40, 0x0c39, - 0x5e41, 0x212e, - 0x5e42, 0x43a0, - 0x5e43, 0x0c3a, - 0x5e44, 0x212d, - 0x5e45, 0x0c37, - 0x5e48, 0x3a2c, - 0x5e4a, 0x23c9, - 0x5e4b, 0x23cb, - 0x5e4c, 0x0dff, - 0x5e4d, 0x23ca, - 0x5e4e, 0x23c8, - 0x5e4f, 0x23c7, - 0x5e53, 0x2674, - 0x5e54, 0x0fc9, - 0x5e55, 0x0fc7, - 0x5e57, 0x0fc8, - 0x5e58, 0x2672, - 0x5e5b, 0x0fc5, - 0x5e5c, 0x28c7, - 0x5e5d, 0x28c5, - 0x5e5e, 0x3a2b, - 0x5e5f, 0x1139, - 0x5e60, 0x28c6, - 0x5e61, 0x113a, - 0x5e62, 0x1138, - 0x5e63, 0x0fc6, - 0x5e66, 0x2b38, - 0x5e67, 0x2b36, - 0x5e69, 0x28c4, - 0x5e6a, 0x2d5d, - 0x5e6b, 0x13cd, - 0x5e6c, 0x2d5c, - 0x5e6d, 0x2f1c, - 0x5e6f, 0x2b39, - 0x5e70, 0x308d, - 0x5e72, 0x028d, - 0x5e73, 0x033b, - 0x5e74, 0x03cb, - 0x5e75, 0x17e4, - 0x5e76, 0x03ca, - 0x5e78, 0x05b1, - 0x5e79, 0x0e00, - 0x5e7a, 0x0227, - 0x5e7b, 0x02cc, - 0x5e7c, 0x033c, - 0x5e7d, 0x0711, - 0x5e7e, 0x0c3b, - 0x5e7f, 0x0228, - 0x5e80, 0x17a5, - 0x5e82, 0x17a6, - 0x5e83, 0x4108, - 0x5e84, 0x17e5, - 0x5e86, 0x4552, - 0x5e87, 0x0490, - 0x5e88, 0x1877, - 0x5e89, 0x1875, - 0x5e8a, 0x0491, - 0x5e8b, 0x1874, - 0x5e8c, 0x1876, - 0x5e8d, 0x1878, - 0x5e8f, 0x048f, - 0x5e95, 0x05b5, - 0x5e97, 0x05b3, - 0x5e9a, 0x05b2, - 0x5e9b, 0x1ad2, - 0x5e9c, 0x05b4, - 0x5ea0, 0x0712, - 0x5ea2, 0x1ad1, - 0x5ea3, 0x1ad3, - 0x5ea4, 0x1ad0, - 0x5ea5, 0x1ad4, - 0x5ea6, 0x0713, - 0x5ea7, 0x08ad, - 0x5ea8, 0x1c88, - 0x5eaa, 0x1c8a, - 0x5eab, 0x08ab, - 0x5eac, 0x1c8b, - 0x5ead, 0x08ac, - 0x5eae, 0x1c89, - 0x5eb0, 0x1acf, - 0x5eb1, 0x1ece, - 0x5eb2, 0x1ed1, - 0x5eb4, 0x1ecf, - 0x5eb5, 0x0a73, - 0x5eb6, 0x0a72, - 0x5eb7, 0x0a70, - 0x5eb9, 0x1ed0, - 0x5ebd, 0x43bd, - 0x5ebe, 0x0a74, - 0x5ec1, 0x0c3d, - 0x5ec4, 0x0c3f, - 0x5ec5, 0x23cc, - 0x5ec6, 0x23ce, - 0x5ec7, 0x23d0, - 0x5ec8, 0x0e02, - 0x5ec9, 0x0e01, - 0x5eca, 0x0c3c, - 0x5ecb, 0x23cf, - 0x5ecc, 0x23cd, - 0x5ecd, 0x3a30, - 0x5ece, 0x2678, - 0x5ed0, 0x413d, - 0x5ed1, 0x2676, - 0x5ed2, 0x267c, - 0x5ed3, 0x0fca, - 0x5ed4, 0x267d, - 0x5ed5, 0x267a, - 0x5ed6, 0x0fcb, - 0x5ed7, 0x2677, - 0x5ed8, 0x2675, - 0x5ed9, 0x267b, - 0x5eda, 0x113c, - 0x5edb, 0x28c9, - 0x5edc, 0x2679, - 0x5edd, 0x113e, - 0x5ede, 0x28ca, - 0x5edf, 0x113d, - 0x5ee0, 0x1140, - 0x5ee1, 0x28cb, - 0x5ee2, 0x113b, - 0x5ee3, 0x113f, - 0x5ee5, 0x2b3e, - 0x5ee6, 0x2b3c, - 0x5ee7, 0x2b3b, - 0x5ee8, 0x2b3d, - 0x5ee9, 0x2b3a, - 0x5eec, 0x157d, - 0x5eee, 0x31cf, - 0x5ef1, 0x32d0, - 0x5ef2, 0x3380, - 0x5ef3, 0x1742, - 0x5ef4, 0x0229, - 0x5ef6, 0x05b7, - 0x5ef7, 0x0492, - 0x5ef8, 0x386f, - 0x5ef9, 0x4143, - 0x5efa, 0x0714, - 0x5efb, 0x4144, - 0x5efc, 0x4146, - 0x5efe, 0x028e, - 0x5eff, 0x02cd, - 0x5f01, 0x033d, - 0x5f02, 0x17e6, - 0x5f04, 0x0493, - 0x5f05, 0x1879, - 0x5f07, 0x1ad5, - 0x5f08, 0x0715, - 0x5f0a, 0x0fcc, - 0x5f0b, 0x028f, - 0x5f0c, 0x3a3e, - 0x5f0d, 0x4149, - 0x5f0e, 0x3a3f, - 0x5f0f, 0x03cc, - 0x5f12, 0x0e03, - 0x5f13, 0x0290, - 0x5f14, 0x02ce, - 0x5f17, 0x033f, - 0x5f18, 0x033e, - 0x5f1a, 0x17e7, - 0x5f1b, 0x03cd, - 0x5f1d, 0x187a, - 0x5f1f, 0x0494, - 0x5f22, 0x1973, - 0x5f25, 0x4630, - 0x5f26, 0x05b8, - 0x5f28, 0x1972, - 0x5f29, 0x05ba, - 0x5f2d, 0x0716, - 0x5f2e, 0x1ad6, - 0x5f30, 0x1c8d, - 0x5f31, 0x08ae, - 0x5f33, 0x1c8c, - 0x5f35, 0x0a75, - 0x5f36, 0x1ed3, - 0x5f37, 0x0a76, - 0x5f38, 0x1ed4, - 0x5f3a, 0x414e, - 0x5f3c, 0x0c40, - 0x5f40, 0x23d1, - 0x5f43, 0x267f, - 0x5f44, 0x267e, - 0x5f46, 0x0fcd, - 0x5f48, 0x1141, - 0x5f49, 0x28cc, - 0x5f4a, 0x12ad, - 0x5f4b, 0x2b3f, - 0x5f4c, 0x13ce, - 0x5f4d, 0x3ba5, - 0x5f4e, 0x16c3, - 0x5f4f, 0x3416, - 0x5f50, 0x022a, - 0x5f51, 0x44e9, - 0x5f54, 0x1976, - 0x5f56, 0x1ad7, - 0x5f57, 0x0a77, - 0x5f58, 0x212f, - 0x5f59, 0x0e04, - 0x5f5c, 0x3d5a, - 0x5f5d, 0x14cf, - 0x5f61, 0x022b, - 0x5f62, 0x0496, - 0x5f63, 0x4152, - 0x5f64, 0x0495, - 0x5f65, 0x0717, - 0x5f67, 0x1c8e, - 0x5f69, 0x0a79, - 0x5f6a, 0x0b89, - 0x5f6b, 0x0a7a, - 0x5f6c, 0x0a78, - 0x5f6d, 0x0c41, - 0x5f6f, 0x2680, - 0x5f70, 0x0fce, - 0x5f71, 0x1142, - 0x5f72, 0x4154, - 0x5f73, 0x1777, - 0x5f74, 0x17e8, - 0x5f76, 0x187c, - 0x5f77, 0x0497, - 0x5f78, 0x187b, - 0x5f79, 0x0498, - 0x5f7b, 0x4058, - 0x5f7c, 0x05be, - 0x5f7d, 0x1979, - 0x5f7e, 0x1978, - 0x5f7f, 0x05bd, - 0x5f80, 0x05bb, - 0x5f82, 0x1977, - 0x5f83, 0x4631, - 0x5f85, 0x0719, - 0x5f86, 0x1ad8, - 0x5f87, 0x071c, - 0x5f88, 0x0718, - 0x5f89, 0x071e, - 0x5f8a, 0x071a, - 0x5f8c, 0x071d, - 0x5f90, 0x08b1, - 0x5f91, 0x08b0, - 0x5f92, 0x08af, - 0x5f96, 0x1ed6, - 0x5f97, 0x0a7b, - 0x5f98, 0x0a7e, - 0x5f99, 0x0a7c, - 0x5f9b, 0x1ed5, - 0x5f9c, 0x0a81, - 0x5f9e, 0x0a7d, - 0x5f9f, 0x1ed7, - 0x5fa0, 0x0a80, - 0x5fa1, 0x0a7f, - 0x5fa4, 0x402c, - 0x5fa5, 0x2131, - 0x5fa6, 0x2130, - 0x5fa7, 0x4157, - 0x5fa8, 0x0c44, - 0x5fa9, 0x0c42, - 0x5fab, 0x2132, - 0x5fac, 0x0e05, - 0x5fad, 0x23d3, - 0x5fae, 0x0e06, - 0x5faf, 0x23d2, - 0x5fb1, 0x3d98, - 0x5fb2, 0x28cd, - 0x5fb5, 0x1144, - 0x5fb6, 0x2681, - 0x5fb7, 0x1143, - 0x5fb9, 0x0fcf, - 0x5fba, 0x3f9f, - 0x5fbb, 0x2b41, - 0x5fbc, 0x2b40, - 0x5fbd, 0x13cf, - 0x5fbe, 0x2d5e, - 0x5fbf, 0x308e, - 0x5fc0, 0x31d1, - 0x5fc3, 0x02d0, - 0x5fc4, 0x44ea, - 0x5fc5, 0x0340, - 0x5fc9, 0x17a7, - 0x5fcc, 0x049a, - 0x5fcd, 0x049c, - 0x5fcf, 0x17eb, - 0x5fd0, 0x187f, - 0x5fd1, 0x187e, - 0x5fd2, 0x187d, - 0x5fd4, 0x17ea, - 0x5fd5, 0x17e9, - 0x5fd6, 0x03cf, - 0x5fd7, 0x049b, - 0x5fd8, 0x0499, - 0x5fd9, 0x03ce, - 0x5fdb, 0x3a4a, - 0x5fdd, 0x05bf, - 0x5fde, 0x197a, - 0x5fdf, 0x41af, - 0x5fe0, 0x05c0, - 0x5fe1, 0x1884, - 0x5fe3, 0x1886, - 0x5fe4, 0x1885, - 0x5fe5, 0x197b, - 0x5fe8, 0x1881, - 0x5fea, 0x04a0, - 0x5feb, 0x049e, - 0x5fed, 0x1880, - 0x5fee, 0x1882, - 0x5fef, 0x1888, - 0x5ff1, 0x049d, - 0x5ff3, 0x1883, - 0x5ff4, 0x188c, - 0x5ff5, 0x05c2, - 0x5ff7, 0x1889, - 0x5ff8, 0x049f, - 0x5ffa, 0x1887, - 0x5ffb, 0x188a, - 0x5ffd, 0x05c1, - 0x5fff, 0x05c3, - 0x6000, 0x188b, - 0x6009, 0x198f, - 0x600a, 0x1982, - 0x600b, 0x1980, - 0x600c, 0x198e, - 0x600d, 0x1989, - 0x600e, 0x0723, - 0x600f, 0x05c4, - 0x6010, 0x198a, - 0x6011, 0x198d, - 0x6012, 0x071f, - 0x6013, 0x198c, - 0x6014, 0x05c5, - 0x6015, 0x05ca, - 0x6016, 0x05c8, - 0x6017, 0x1983, - 0x6019, 0x197e, - 0x601a, 0x1985, - 0x601b, 0x05cf, - 0x601c, 0x1990, - 0x601d, 0x0720, - 0x601e, 0x1986, - 0x6020, 0x0721, - 0x6021, 0x05cb, - 0x6022, 0x1988, - 0x6023, 0x4185, - 0x6024, 0x1ae7, - 0x6025, 0x0722, - 0x6026, 0x197d, - 0x6027, 0x05cc, - 0x6028, 0x0724, - 0x6029, 0x05cd, - 0x602a, 0x05c9, - 0x602b, 0x05ce, - 0x602c, 0x1987, - 0x602d, 0x197c, - 0x602e, 0x198b, - 0x602f, 0x05c6, - 0x6031, 0x4161, - 0x6032, 0x197f, - 0x6033, 0x1984, - 0x6034, 0x1981, - 0x6035, 0x05c7, - 0x6037, 0x1ad9, - 0x6039, 0x1ada, - 0x603b, 0x4553, - 0x6040, 0x1ae4, - 0x6041, 0x1c92, - 0x6042, 0x1ae5, - 0x6043, 0x072a, - 0x6044, 0x1ae8, - 0x6045, 0x1ade, - 0x6046, 0x0729, - 0x6047, 0x1ae0, - 0x6049, 0x1ae1, - 0x604a, 0x4074, - 0x604c, 0x1ae3, - 0x604d, 0x0725, - 0x6050, 0x08b5, - 0x6052, 0x36ec, - 0x6053, 0x1adf, - 0x6054, 0x1adb, - 0x6055, 0x08b6, - 0x6058, 0x1ae9, - 0x6059, 0x08b2, - 0x605a, 0x1c90, - 0x605b, 0x1ae2, - 0x605d, 0x1c8f, - 0x605e, 0x1add, - 0x605f, 0x1ae6, - 0x6062, 0x0728, - 0x6063, 0x08b3, - 0x6064, 0x072e, - 0x6065, 0x08b4, - 0x6066, 0x1aea, - 0x6067, 0x1c91, - 0x6068, 0x0727, - 0x6069, 0x08b8, - 0x606a, 0x072d, - 0x606b, 0x072c, - 0x606c, 0x072b, - 0x606d, 0x08b7, - 0x606e, 0x1aeb, - 0x606f, 0x08b9, - 0x6070, 0x0726, - 0x6072, 0x1adc, - 0x6075, 0x3a56, - 0x6077, 0x4005, - 0x607e, 0x3a47, - 0x607f, 0x0a82, - 0x6080, 0x1c95, - 0x6081, 0x1c97, - 0x6083, 0x1c99, - 0x6084, 0x08ba, - 0x6085, 0x08c0, - 0x6086, 0x1eda, - 0x6087, 0x1c9d, - 0x6088, 0x1c94, - 0x6089, 0x0a84, - 0x608a, 0x1ed8, - 0x608c, 0x08bf, - 0x608d, 0x08bd, - 0x608e, 0x1c9f, - 0x6090, 0x1ed9, - 0x6092, 0x1c96, - 0x6094, 0x08be, - 0x6095, 0x1c9a, - 0x6096, 0x08c1, - 0x6097, 0x1c9c, - 0x609a, 0x08bc, - 0x609b, 0x1c9b, - 0x609c, 0x1c9e, - 0x609d, 0x1c98, - 0x609e, 0x416a, - 0x609f, 0x08bb, - 0x60a0, 0x0a85, - 0x60a2, 0x1c93, - 0x60a3, 0x0a83, - 0x60a4, 0x4001, - 0x60a7, 0x3adc, - 0x60a8, 0x0a86, - 0x60b0, 0x1edc, - 0x60b1, 0x1ee5, - 0x60b2, 0x0c47, - 0x60b3, 0x416c, - 0x60b4, 0x0a88, - 0x60b5, 0x0a8d, - 0x60b6, 0x0c48, - 0x60b7, 0x1ee7, - 0x60b8, 0x0a94, - 0x60b9, 0x2134, - 0x60ba, 0x1edd, - 0x60bb, 0x0a8c, - 0x60bc, 0x0a8f, - 0x60bd, 0x0a8a, - 0x60be, 0x1edb, - 0x60bf, 0x1ee9, - 0x60c0, 0x1eec, - 0x60c1, 0x2143, - 0x60c3, 0x1eea, - 0x60c4, 0x2138, - 0x60c5, 0x0a8b, - 0x60c6, 0x0a92, - 0x60c7, 0x0a96, - 0x60c8, 0x1ee4, - 0x60c9, 0x2133, - 0x60ca, 0x1ee8, - 0x60cb, 0x0a87, - 0x60cc, 0x2135, - 0x60cd, 0x1eeb, - 0x60ce, 0x2137, - 0x60cf, 0x1ee0, - 0x60d1, 0x0c45, - 0x60d3, 0x1ede, - 0x60d5, 0x0a91, - 0x60d7, 0x4635, - 0x60d8, 0x0a90, - 0x60d9, 0x1ee2, - 0x60da, 0x0a95, - 0x60db, 0x1ee6, - 0x60dc, 0x0a8e, - 0x60dd, 0x1ee3, - 0x60de, 0x3dcc, - 0x60df, 0x0a93, - 0x60e0, 0x0c49, - 0x60e1, 0x0c46, - 0x60e2, 0x2136, - 0x60e3, 0x3d75, - 0x60e4, 0x1ee1, - 0x60e6, 0x0a89, - 0x60e7, 0x3d84, - 0x60e8, 0x3d7b, - 0x60e9, 0x4009, - 0x60f0, 0x0c4e, - 0x60f1, 0x0c52, - 0x60f2, 0x213a, - 0x60f3, 0x0e0b, - 0x60f4, 0x0c50, - 0x60f5, 0x213e, - 0x60f6, 0x0c54, - 0x60f7, 0x23d4, - 0x60f8, 0x2140, - 0x60f9, 0x0e0d, - 0x60fa, 0x0c4c, - 0x60fb, 0x0c4f, - 0x60fc, 0x2141, - 0x60fd, 0x3fa8, - 0x60fe, 0x2142, - 0x60ff, 0x2148, - 0x6100, 0x0c56, - 0x6101, 0x0e0e, - 0x6103, 0x2144, - 0x6104, 0x2149, - 0x6105, 0x213d, - 0x6106, 0x0e18, - 0x6107, 0x3c35, - 0x6108, 0x0e0f, - 0x6109, 0x0c55, - 0x610a, 0x213b, - 0x610b, 0x214a, - 0x610c, 0x3c87, - 0x610d, 0x0e17, - 0x610e, 0x0c53, - 0x610f, 0x0e08, - 0x6110, 0x2147, - 0x6112, 0x0c57, - 0x6113, 0x213f, - 0x6114, 0x2139, - 0x6115, 0x0c4d, - 0x6116, 0x213c, - 0x6118, 0x2145, - 0x6119, 0x3ef6, - 0x611a, 0x0e07, - 0x611b, 0x0e0c, - 0x611c, 0x0c4a, - 0x611d, 0x2146, - 0x611f, 0x0e0a, - 0x6123, 0x0c4b, - 0x6127, 0x0e16, - 0x6128, 0x2683, - 0x6129, 0x23df, - 0x612b, 0x23d7, - 0x612c, 0x2682, - 0x612e, 0x23db, - 0x612f, 0x23dd, - 0x6130, 0x3f37, - 0x6132, 0x23da, - 0x6134, 0x0e15, - 0x6136, 0x23d9, - 0x6137, 0x0e19, - 0x613b, 0x2692, - 0x613d, 0x4636, - 0x613e, 0x0e14, - 0x613f, 0x0fd1, - 0x6140, 0x23e0, - 0x6141, 0x2684, - 0x6142, 0x4174, - 0x6144, 0x0e12, - 0x6145, 0x23d8, - 0x6146, 0x23dc, - 0x6147, 0x0fd0, - 0x6148, 0x0e09, - 0x6149, 0x23d5, - 0x614b, 0x0fd2, - 0x614c, 0x0e11, - 0x614d, 0x0e13, - 0x614e, 0x0e10, - 0x614f, 0x23de, - 0x6150, 0x3c32, - 0x6152, 0x2688, - 0x6154, 0x268e, - 0x6155, 0x1149, - 0x6156, 0x2695, - 0x6158, 0x0fd8, - 0x6159, 0x3fba, - 0x615a, 0x0fd7, - 0x615b, 0x2690, - 0x615c, 0x4186, - 0x615d, 0x1148, - 0x615e, 0x2685, - 0x615f, 0x0fd6, - 0x6160, 0x494c, - 0x6161, 0x2694, - 0x6162, 0x0fd4, - 0x6164, 0x4173, - 0x6165, 0x2691, - 0x6166, 0x28de, - 0x6167, 0x1146, - 0x6168, 0x0c51, - 0x616a, 0x2693, - 0x616b, 0x114d, - 0x616c, 0x268b, - 0x616e, 0x1147, - 0x616f, 0x3fc0, - 0x6170, 0x114c, - 0x6171, 0x2686, - 0x6172, 0x268a, - 0x6173, 0x2687, - 0x6174, 0x268d, - 0x6175, 0x0fd9, - 0x6176, 0x1145, - 0x6177, 0x0fd3, - 0x6179, 0x28d0, - 0x617a, 0x268f, - 0x617c, 0x114b, - 0x617d, 0x3fbd, - 0x617e, 0x114e, - 0x6180, 0x268c, - 0x6181, 0x4177, - 0x6182, 0x114a, - 0x6183, 0x28cf, - 0x6187, 0x417a, - 0x6189, 0x28d4, - 0x618a, 0x12b1, - 0x618b, 0x28ce, - 0x618c, 0x2b4d, - 0x618d, 0x28dd, - 0x618e, 0x1152, - 0x6190, 0x1150, - 0x6191, 0x12af, - 0x6192, 0x28da, - 0x6193, 0x28d6, - 0x6194, 0x1156, - 0x6195, 0x3de0, - 0x6196, 0x2b44, - 0x6198, 0x3a55, - 0x6199, 0x3a54, - 0x619a, 0x1154, - 0x619b, 0x28d5, - 0x619c, 0x4002, - 0x619d, 0x2b42, - 0x619f, 0x28d9, - 0x61a1, 0x28dc, - 0x61a2, 0x28d3, - 0x61a4, 0x1155, - 0x61a7, 0x114f, - 0x61a8, 0x2b43, - 0x61a9, 0x12b0, - 0x61aa, 0x28db, - 0x61ab, 0x1151, - 0x61ac, 0x1153, - 0x61ad, 0x28d8, - 0x61ae, 0x1157, - 0x61af, 0x28d7, - 0x61b0, 0x28d2, - 0x61b1, 0x28d1, - 0x61b2, 0x12ae, - 0x61b3, 0x28df, - 0x61b4, 0x2b46, - 0x61b5, 0x2d60, - 0x61b6, 0x12b3, - 0x61b7, 0x4639, - 0x61b8, 0x2b4c, - 0x61b9, 0x43bf, - 0x61ba, 0x2b4a, - 0x61bc, 0x2d61, - 0x61be, 0x12b4, - 0x61bf, 0x2b4b, - 0x61c0, 0x3a50, - 0x61c1, 0x2b48, - 0x61c2, 0x13d1, - 0x61c3, 0x2d5f, - 0x61c5, 0x2b45, - 0x61c6, 0x2b47, - 0x61c7, 0x13d2, - 0x61c8, 0x12b6, - 0x61c9, 0x13d0, - 0x61ca, 0x12b5, - 0x61cb, 0x13d4, - 0x61cc, 0x2b49, - 0x61cd, 0x12b2, - 0x61cf, 0x463a, - 0x61d0, 0x4181, - 0x61d3, 0x417e, - 0x61d6, 0x2f26, - 0x61d8, 0x2f1e, - 0x61da, 0x38b1, - 0x61de, 0x2d67, - 0x61df, 0x2f1f, - 0x61e0, 0x2d63, - 0x61e2, 0x3fc5, - 0x61e3, 0x14d0, - 0x61e4, 0x2d65, - 0x61e5, 0x2d64, - 0x61e6, 0x13d3, - 0x61e7, 0x2d62, - 0x61e8, 0x2d66, - 0x61e9, 0x2f27, - 0x61ea, 0x2f23, - 0x61eb, 0x2f25, - 0x61ed, 0x2f20, - 0x61f0, 0x2f24, - 0x61f1, 0x2f22, - 0x61f2, 0x157e, - 0x61f5, 0x1581, - 0x61f6, 0x1580, - 0x61f7, 0x157f, - 0x61f8, 0x1614, - 0x61f9, 0x31d3, - 0x61fa, 0x1615, - 0x61fb, 0x308f, - 0x61fc, 0x1670, - 0x61fd, 0x32d1, - 0x61fe, 0x1671, - 0x61ff, 0x16c4, - 0x6200, 0x16f8, - 0x6201, 0x3417, - 0x6203, 0x3418, - 0x6207, 0x3533, - 0x6208, 0x02d1, - 0x6209, 0x17a8, - 0x620a, 0x0341, - 0x620c, 0x03d1, - 0x620e, 0x03d0, - 0x6210, 0x03d3, - 0x6211, 0x04a2, - 0x6212, 0x04a1, - 0x6214, 0x1991, - 0x6215, 0x05d1, - 0x6216, 0x05d0, - 0x6219, 0x1ca0, - 0x621a, 0x0a97, - 0x621f, 0x0c58, - 0x6220, 0x23e1, - 0x6221, 0x0e1a, - 0x6223, 0x23e3, - 0x6224, 0x23e5, - 0x6225, 0x23e4, - 0x6227, 0x2697, - 0x6229, 0x2696, - 0x622a, 0x0fda, - 0x622b, 0x2698, - 0x622c, 0x463c, - 0x622d, 0x28e0, - 0x622e, 0x1158, - 0x6230, 0x12b7, - 0x6232, 0x13d5, - 0x6233, 0x14d1, - 0x6234, 0x13d6, - 0x6236, 0x02d2, - 0x6237, 0x451a, - 0x6239, 0x3fc2, - 0x623a, 0x188d, - 0x623d, 0x1992, - 0x623e, 0x05d3, - 0x623f, 0x05d2, - 0x6240, 0x05d4, - 0x6241, 0x072f, - 0x6242, 0x1aec, - 0x6246, 0x1ca1, - 0x6247, 0x08c2, - 0x6248, 0x0a99, - 0x6249, 0x0c59, - 0x624a, 0x214b, - 0x624b, 0x02d3, - 0x624c, 0x44ec, - 0x624d, 0x0291, - 0x624e, 0x02d4, - 0x6250, 0x17a9, - 0x6251, 0x0345, - 0x6252, 0x0344, - 0x6253, 0x0342, - 0x6258, 0x03d6, - 0x6259, 0x17f2, - 0x625a, 0x17f4, - 0x625b, 0x03d5, - 0x625c, 0x17ec, - 0x625e, 0x17ed, - 0x6260, 0x17f3, - 0x6261, 0x17ef, - 0x6262, 0x17f1, - 0x6263, 0x03d4, - 0x6264, 0x17ee, - 0x6265, 0x17f5, - 0x6266, 0x17f0, - 0x6268, 0x3f15, - 0x626d, 0x04a9, - 0x626e, 0x04b2, - 0x626f, 0x04b0, - 0x6270, 0x1897, - 0x6271, 0x1894, - 0x6272, 0x189c, - 0x6273, 0x04ae, - 0x6274, 0x189d, - 0x6276, 0x04a7, - 0x6277, 0x189a, - 0x6279, 0x04ad, - 0x627a, 0x1896, - 0x627b, 0x1895, - 0x627c, 0x04ab, - 0x627d, 0x189b, - 0x627e, 0x04ac, - 0x627f, 0x05d5, - 0x6280, 0x04a6, - 0x6281, 0x1898, - 0x6282, 0x3f86, - 0x6283, 0x188e, - 0x6284, 0x04a3, - 0x6285, 0x3f50, - 0x6286, 0x04b6, - 0x6287, 0x1893, - 0x6288, 0x1899, - 0x6289, 0x04a8, - 0x628a, 0x04aa, - 0x628c, 0x188f, - 0x628e, 0x1890, - 0x6290, 0x43c0, - 0x6291, 0x04b5, - 0x6292, 0x04af, - 0x6293, 0x04b4, - 0x6294, 0x1892, - 0x6295, 0x04b3, - 0x6296, 0x04a5, - 0x6297, 0x04a4, - 0x6298, 0x04b1, - 0x629d, 0x3e96, - 0x62a4, 0x3a69, - 0x62a6, 0x3fc1, - 0x62a8, 0x05e3, - 0x62a9, 0x199e, - 0x62aa, 0x1997, - 0x62ab, 0x05de, - 0x62ac, 0x05f1, - 0x62ad, 0x1993, - 0x62ae, 0x199a, - 0x62af, 0x199c, - 0x62b0, 0x199f, - 0x62b1, 0x05ec, - 0x62b3, 0x199b, - 0x62b4, 0x1994, - 0x62b5, 0x05ea, - 0x62b6, 0x1998, - 0x62b8, 0x19a0, - 0x62b9, 0x05db, - 0x62bb, 0x199d, - 0x62bc, 0x05e5, - 0x62bd, 0x05e4, - 0x62be, 0x1996, - 0x62bf, 0x05d9, - 0x62c2, 0x05da, - 0x62c3, 0x3d8f, - 0x62c4, 0x05d8, - 0x62c5, 0x418a, - 0x62c6, 0x05f0, - 0x62c7, 0x05e8, - 0x62c8, 0x05e2, - 0x62c9, 0x05d6, - 0x62ca, 0x1999, - 0x62cb, 0x05e1, - 0x62cc, 0x05d7, - 0x62cd, 0x05e9, - 0x62ce, 0x05f2, - 0x62cf, 0x1aee, - 0x62d0, 0x05e6, - 0x62d1, 0x1995, - 0x62d2, 0x05dc, - 0x62d3, 0x05df, - 0x62d5, 0x418c, - 0x62d6, 0x05ee, - 0x62d8, 0x05ed, - 0x62d9, 0x05e7, - 0x62da, 0x05eb, - 0x62db, 0x05dd, - 0x62dc, 0x0730, - 0x62df, 0x401c, - 0x62e5, 0x463d, - 0x62eb, 0x1af4, - 0x62ec, 0x073c, - 0x62ed, 0x0734, - 0x62ee, 0x0736, - 0x62ef, 0x073b, - 0x62f0, 0x1b00, - 0x62f1, 0x0739, - 0x62f2, 0x1ca2, - 0x62f3, 0x08c3, - 0x62f4, 0x073e, - 0x62f5, 0x1af1, - 0x62f6, 0x1af9, - 0x62f7, 0x073a, - 0x62f8, 0x1af8, - 0x62f9, 0x1af5, - 0x62fa, 0x1afd, - 0x62fb, 0x1aff, - 0x62fc, 0x0733, - 0x62fd, 0x0737, - 0x62fe, 0x073d, - 0x62ff, 0x08c5, - 0x6300, 0x1afa, - 0x6301, 0x0735, - 0x6302, 0x0740, - 0x6303, 0x1af3, - 0x6307, 0x0738, - 0x6308, 0x08c4, - 0x6309, 0x0732, - 0x630b, 0x1af0, - 0x630c, 0x1af7, - 0x630d, 0x1aef, - 0x630e, 0x1af2, - 0x630f, 0x1af6, - 0x6310, 0x1ca3, - 0x6311, 0x073f, - 0x6313, 0x1afb, - 0x6315, 0x1afe, - 0x6316, 0x0731, - 0x6318, 0x43c1, - 0x6328, 0x08d3, - 0x6329, 0x1caf, - 0x632a, 0x08d1, - 0x632c, 0x1ca5, - 0x632d, 0x1cb5, - 0x632e, 0x3edd, - 0x632f, 0x08c8, - 0x6331, 0x3a65, - 0x6332, 0x1eed, - 0x6333, 0x1cb7, - 0x6334, 0x1cb1, - 0x6335, 0x3f16, - 0x6336, 0x1ca8, - 0x6337, 0x3a63, - 0x6338, 0x1cba, - 0x6339, 0x1cab, - 0x633a, 0x08ce, - 0x633b, 0x1f04, - 0x633c, 0x1cae, - 0x633d, 0x08d0, - 0x633e, 0x08c7, - 0x6340, 0x1cbc, - 0x6341, 0x1cb0, - 0x6342, 0x08ca, - 0x6343, 0x1ca9, - 0x6344, 0x1ca6, - 0x6346, 0x08cb, - 0x6347, 0x1cb6, - 0x6348, 0x1cbd, - 0x6349, 0x08cd, - 0x634a, 0x1cad, - 0x634b, 0x1cac, - 0x634c, 0x08d5, - 0x634d, 0x08d4, - 0x634e, 0x08c6, - 0x634f, 0x08cc, - 0x6350, 0x08cf, - 0x6351, 0x1cb9, - 0x6354, 0x1cb3, - 0x6355, 0x08c9, - 0x6356, 0x1ca4, - 0x6357, 0x1cbb, - 0x6358, 0x1cb2, - 0x6359, 0x1cb4, - 0x635a, 0x1cb8, - 0x6364, 0x3fc7, - 0x6365, 0x1eee, - 0x6367, 0x0aa1, - 0x6368, 0x0ab5, - 0x6369, 0x0ab4, - 0x636b, 0x0aa9, - 0x636c, 0x418e, - 0x636d, 0x1f00, - 0x636e, 0x1efc, - 0x636f, 0x1ef9, - 0x6370, 0x1f0b, - 0x6371, 0x0aa4, - 0x6372, 0x0a9c, - 0x6375, 0x1efe, - 0x6376, 0x0c69, - 0x6377, 0x0aa0, - 0x6378, 0x1f06, - 0x6379, 0x4367, - 0x637a, 0x0ab6, - 0x637b, 0x0ab3, - 0x637c, 0x1f02, - 0x637d, 0x1ef1, - 0x637f, 0x3f4b, - 0x6380, 0x0ab2, - 0x6381, 0x1f08, - 0x6382, 0x1ef0, - 0x6383, 0x0aa7, - 0x6384, 0x0aab, - 0x6385, 0x1f07, - 0x6387, 0x1efa, - 0x6388, 0x0aac, - 0x6389, 0x0aa6, - 0x638a, 0x1eef, - 0x638b, 0x4188, - 0x638c, 0x0c5b, - 0x638d, 0x1f0a, - 0x638e, 0x1ef8, - 0x638f, 0x0ab1, - 0x6390, 0x1efb, - 0x6391, 0x1f09, - 0x6392, 0x0ab0, - 0x6394, 0x214c, - 0x6396, 0x0a9d, - 0x6397, 0x1ef6, - 0x6398, 0x0aa2, - 0x6399, 0x0aad, - 0x639b, 0x0aa8, - 0x639c, 0x1eff, - 0x639d, 0x1ef5, - 0x639e, 0x1ef3, - 0x639f, 0x1f05, - 0x63a0, 0x0a9a, - 0x63a1, 0x0aae, - 0x63a2, 0x0a9e, - 0x63a3, 0x0c5a, - 0x63a4, 0x1f03, - 0x63a5, 0x0a9f, - 0x63a7, 0x0a9b, - 0x63a8, 0x0aaa, - 0x63a9, 0x0aa5, - 0x63aa, 0x0aa3, - 0x63ab, 0x1ef7, - 0x63ac, 0x0aaf, - 0x63ad, 0x1ef4, - 0x63ae, 0x1f01, - 0x63af, 0x1efd, - 0x63b0, 0x214e, - 0x63b1, 0x214d, - 0x63b9, 0x3e9d, - 0x63bd, 0x1ef2, - 0x63be, 0x215e, - 0x63c0, 0x0c5d, - 0x63c1, 0x46a8, - 0x63c2, 0x2164, - 0x63c3, 0x2153, - 0x63c4, 0x2161, - 0x63c5, 0x23e6, - 0x63c6, 0x0c60, - 0x63c7, 0x2165, - 0x63c8, 0x2168, - 0x63c9, 0x0c5f, - 0x63ca, 0x2156, - 0x63cb, 0x2167, - 0x63cc, 0x2166, - 0x63cd, 0x0c61, - 0x63ce, 0x214f, - 0x63cf, 0x0c5c, - 0x63d0, 0x0c64, - 0x63d1, 0x3a66, - 0x63d2, 0x0c62, - 0x63d3, 0x2163, - 0x63d5, 0x2159, - 0x63d6, 0x0c66, - 0x63d7, 0x216a, - 0x63d8, 0x2162, - 0x63d9, 0x216b, - 0x63da, 0x0c6e, - 0x63db, 0x0c6c, - 0x63dc, 0x2160, - 0x63dd, 0x215f, - 0x63de, 0x3e60, - 0x63df, 0x215d, - 0x63e0, 0x2157, - 0x63e1, 0x0c65, - 0x63e2, 0x4641, - 0x63e3, 0x0c63, - 0x63e4, 0x1caa, - 0x63e5, 0x2150, - 0x63e6, 0x489f, - 0x63e7, 0x2404, - 0x63e8, 0x2151, - 0x63e9, 0x0c5e, - 0x63ea, 0x0c6b, - 0x63eb, 0x23e8, - 0x63ed, 0x0c67, - 0x63ef, 0x2152, - 0x63f0, 0x2169, - 0x63f1, 0x23e7, - 0x63f2, 0x215a, - 0x63f3, 0x2155, - 0x63f4, 0x0c6a, - 0x63f5, 0x215b, - 0x63f6, 0x2158, - 0x63f8, 0x4192, - 0x63f9, 0x0c6f, - 0x63fb, 0x4642, - 0x63fc, 0x3e9c, - 0x63fe, 0x3e9e, - 0x6406, 0x0e2a, - 0x6407, 0x4643, - 0x6409, 0x23eb, - 0x640a, 0x23fe, - 0x640b, 0x2403, - 0x640c, 0x23f7, - 0x640d, 0x0e26, - 0x640e, 0x2408, - 0x640f, 0x0e23, - 0x6410, 0x23e9, - 0x6412, 0x23ea, - 0x6413, 0x0e1c, - 0x6414, 0x0e25, - 0x6415, 0x23f1, - 0x6416, 0x0e28, - 0x6418, 0x23f2, - 0x641a, 0x23ff, - 0x641b, 0x2405, - 0x641c, 0x0e24, - 0x641e, 0x0e1e, - 0x641f, 0x23f0, - 0x6420, 0x23ec, - 0x6421, 0x2407, - 0x6422, 0x23f5, - 0x6424, 0x23ed, - 0x6425, 0x2401, - 0x6426, 0x23f8, - 0x6427, 0x2402, - 0x6428, 0x23fa, - 0x642a, 0x0e1f, - 0x642b, 0x2699, - 0x642c, 0x0e22, - 0x642d, 0x0e20, - 0x642e, 0x2406, - 0x642f, 0x23fd, - 0x6430, 0x23f9, - 0x6432, 0x45d9, - 0x6433, 0x23ee, - 0x6434, 0x0fe4, - 0x6435, 0x23fc, - 0x6436, 0x0e27, - 0x6437, 0x23f4, - 0x6438, 0x4191, - 0x6439, 0x23f3, - 0x643a, 0x419d, - 0x643b, 0x3a6b, - 0x643d, 0x0e21, - 0x643e, 0x0e1d, - 0x643f, 0x26ae, - 0x6440, 0x2400, - 0x6441, 0x23fb, - 0x6443, 0x23ef, - 0x644b, 0x26a9, - 0x644d, 0x269a, - 0x644e, 0x26a5, - 0x6450, 0x26ac, - 0x6451, 0x0fe2, - 0x6452, 0x0c6d, - 0x6453, 0x26aa, - 0x6454, 0x0fdd, - 0x6458, 0x0fdc, - 0x6459, 0x26b1, - 0x645a, 0x43c2, - 0x645b, 0x269b, - 0x645c, 0x26a8, - 0x645d, 0x269c, - 0x645e, 0x26a7, - 0x645f, 0x0fe0, - 0x6460, 0x26ab, - 0x6461, 0x215c, - 0x6465, 0x26b2, - 0x6466, 0x26a3, - 0x6467, 0x0fe3, - 0x6468, 0x28ee, - 0x6469, 0x1159, - 0x646b, 0x26b0, - 0x646c, 0x26af, - 0x646d, 0x0fe5, - 0x646e, 0x28e1, - 0x646f, 0x115a, - 0x6470, 0x28e2, - 0x6471, 0x3a5b, - 0x6472, 0x269f, - 0x6474, 0x269d, - 0x6475, 0x26a2, - 0x6476, 0x269e, - 0x6477, 0x26b3, - 0x6478, 0x0fdf, - 0x6479, 0x115b, - 0x647a, 0x0fe1, - 0x647b, 0x0fe6, - 0x647c, 0x436c, - 0x647d, 0x26a1, - 0x647f, 0x26ad, - 0x6482, 0x26a6, - 0x6485, 0x28e5, - 0x6487, 0x0fdb, - 0x6488, 0x115e, - 0x6489, 0x2b54, - 0x648a, 0x28ea, - 0x648b, 0x28e9, - 0x648c, 0x28eb, - 0x648d, 0x4323, - 0x648f, 0x28e8, - 0x6490, 0x115f, - 0x6491, 0x43c3, - 0x6492, 0x1165, - 0x6493, 0x1162, - 0x6495, 0x1163, - 0x6496, 0x28e3, - 0x6497, 0x28e6, - 0x6498, 0x28f0, - 0x6499, 0x116b, - 0x649a, 0x1169, - 0x649c, 0x28e7, - 0x649d, 0x2154, - 0x649e, 0x115c, - 0x649f, 0x28ed, - 0x64a0, 0x28e4, - 0x64a2, 0x116c, - 0x64a3, 0x28ec, - 0x64a4, 0x0fde, - 0x64a5, 0x1161, - 0x64a6, 0x26a4, - 0x64a9, 0x1164, - 0x64ab, 0x1168, - 0x64ac, 0x116a, - 0x64ad, 0x1167, - 0x64ae, 0x1166, - 0x64af, 0x42e1, - 0x64b0, 0x1160, - 0x64b1, 0x28ef, - 0x64b2, 0x115d, - 0x64b3, 0x116d, - 0x64b4, 0x4340, - 0x64b6, 0x3a64, - 0x64bb, 0x12bb, - 0x64bd, 0x2b53, - 0x64be, 0x12c5, - 0x64bf, 0x12c2, - 0x64c0, 0x4645, - 0x64c1, 0x12b9, - 0x64c2, 0x12c0, - 0x64c3, 0x2b55, - 0x64c4, 0x12be, - 0x64c5, 0x12b8, - 0x64c7, 0x12bf, - 0x64c9, 0x2b52, - 0x64ca, 0x13d8, - 0x64cb, 0x12ba, - 0x64cd, 0x12c1, - 0x64ce, 0x13d7, - 0x64cf, 0x2b51, - 0x64d0, 0x2b50, - 0x64d2, 0x12c3, - 0x64d3, 0x3f03, - 0x64d4, 0x12c4, - 0x64d6, 0x2b4f, - 0x64d7, 0x2b4e, - 0x64d8, 0x13d9, - 0x64d9, 0x2b58, - 0x64da, 0x12bd, - 0x64db, 0x2b56, - 0x64dd, 0x431e, - 0x64e0, 0x13da, - 0x64e1, 0x4199, - 0x64e2, 0x13df, - 0x64e3, 0x2d6a, - 0x64e4, 0x2d6c, - 0x64e5, 0x419a, - 0x64e6, 0x13dc, - 0x64e7, 0x37a8, - 0x64e8, 0x2d6d, - 0x64e9, 0x2d69, - 0x64ea, 0x434a, - 0x64eb, 0x2d6b, - 0x64ec, 0x13dd, - 0x64ed, 0x13e0, - 0x64ef, 0x2d68, - 0x64f0, 0x13db, - 0x64f1, 0x13de, - 0x64f2, 0x14d3, - 0x64f3, 0x2b57, - 0x64f4, 0x14d2, - 0x64f7, 0x14d8, - 0x64f8, 0x2f2b, - 0x64fa, 0x14d6, - 0x64fc, 0x2f2e, - 0x64fd, 0x2f2a, - 0x64fe, 0x14d4, - 0x64ff, 0x2f28, - 0x6500, 0x1582, - 0x6501, 0x2f2c, - 0x6503, 0x2f2d, - 0x6504, 0x2f29, - 0x6506, 0x14d5, - 0x6507, 0x3090, - 0x6509, 0x3093, - 0x650a, 0x4536, - 0x650c, 0x3094, - 0x650d, 0x3092, - 0x650e, 0x3095, - 0x650f, 0x1583, - 0x6510, 0x3091, - 0x6511, 0x3aa9, - 0x6513, 0x31d7, - 0x6514, 0x1617, - 0x6515, 0x31d6, - 0x6516, 0x31d5, - 0x6517, 0x31d4, - 0x6518, 0x1616, - 0x6519, 0x1618, - 0x651b, 0x32d2, - 0x651c, 0x1673, - 0x651d, 0x1672, - 0x651e, 0x4187, - 0x651f, 0x3ec0, - 0x6520, 0x3382, - 0x6521, 0x3381, - 0x6522, 0x3384, - 0x6523, 0x16f9, - 0x6524, 0x16c5, - 0x6525, 0x341b, - 0x6526, 0x3383, - 0x6529, 0x341a, - 0x652a, 0x16fb, - 0x652b, 0x16fa, - 0x652c, 0x1721, - 0x652d, 0x3484, - 0x652e, 0x34ca, - 0x652f, 0x02d5, - 0x6530, 0x3e62, - 0x6532, 0x216c, - 0x6533, 0x2b59, - 0x6534, 0x022c, - 0x6535, 0x44ed, - 0x6536, 0x03d7, - 0x6537, 0x17f6, - 0x6538, 0x04b9, - 0x6539, 0x04b7, - 0x653b, 0x04b8, - 0x653d, 0x19a1, - 0x653e, 0x05f3, - 0x653f, 0x0741, - 0x6541, 0x1b01, - 0x6543, 0x1b02, - 0x6545, 0x0742, - 0x6546, 0x1cbf, - 0x6548, 0x08d6, - 0x654a, 0x1cbe, - 0x654d, 0x419f, - 0x654f, 0x0abd, - 0x6551, 0x0ab9, - 0x6553, 0x1f0c, - 0x6554, 0x0ac0, - 0x6555, 0x0abf, - 0x6556, 0x0ab8, - 0x6557, 0x0abb, - 0x6558, 0x0abe, - 0x6559, 0x0aba, - 0x655c, 0x2170, - 0x655d, 0x0ab7, - 0x655e, 0x0c70, - 0x655f, 0x41a5, - 0x6562, 0x0c72, - 0x6564, 0x216f, - 0x6565, 0x2172, - 0x6566, 0x0c71, - 0x6567, 0x216d, - 0x6568, 0x2171, - 0x656a, 0x216e, - 0x656b, 0x3a6c, - 0x656c, 0x0e2b, - 0x656d, 0x41a4, - 0x656f, 0x2409, - 0x6572, 0x0fe7, - 0x6573, 0x26b4, - 0x6574, 0x12c6, - 0x6575, 0x116e, - 0x6576, 0x28f1, - 0x6577, 0x116f, - 0x6579, 0x28f3, - 0x657a, 0x28f2, - 0x657b, 0x28f4, - 0x657c, 0x2b5b, - 0x657f, 0x2b5a, - 0x6580, 0x2d6f, - 0x6581, 0x2d6e, - 0x6582, 0x13e1, - 0x6584, 0x3096, - 0x6585, 0x41a3, - 0x6586, 0x4648, - 0x6587, 0x02d6, - 0x6588, 0x410b, - 0x6589, 0x4554, - 0x658c, 0x2173, - 0x6590, 0x0c75, - 0x6591, 0x0c74, - 0x6592, 0x240a, - 0x6594, 0x2f2f, - 0x6595, 0x1674, - 0x6596, 0x341c, - 0x6597, 0x02d7, - 0x6599, 0x08d8, - 0x659b, 0x0ac2, - 0x659c, 0x0ac1, - 0x659d, 0x2174, - 0x659f, 0x0e2c, - 0x65a0, 0x26b5, - 0x65a1, 0x0fe8, - 0x65a2, 0x2b5c, - 0x65a4, 0x02d8, - 0x65a5, 0x0346, - 0x65a7, 0x05f4, - 0x65a8, 0x19a2, - 0x65aa, 0x1b03, - 0x65ab, 0x0743, - 0x65ac, 0x0ac3, - 0x65ae, 0x2176, - 0x65af, 0x0c76, - 0x65b0, 0x0e2d, - 0x65b2, 0x28f5, - 0x65b5, 0x41a7, - 0x65b6, 0x2d70, - 0x65b7, 0x14d9, - 0x65b8, 0x34cb, - 0x65b9, 0x02d9, - 0x65bb, 0x19a3, - 0x65bc, 0x05f5, - 0x65bd, 0x0744, - 0x65be, 0x3e3b, - 0x65bf, 0x1b04, - 0x65c1, 0x08d9, - 0x65c2, 0x1cc3, - 0x65c3, 0x1cc1, - 0x65c5, 0x08da, - 0x65c6, 0x1cc0, - 0x65cb, 0x0ac5, - 0x65cd, 0x1f0d, - 0x65ce, 0x0ac7, - 0x65cf, 0x0ac4, - 0x65d0, 0x2177, - 0x65d1, 0x41aa, - 0x65d2, 0x2178, - 0x65d3, 0x240b, - 0x65d4, 0x3ba8, - 0x65d6, 0x0fea, - 0x65d7, 0x0fe9, - 0x65da, 0x2d71, - 0x65db, 0x2f30, - 0x65dd, 0x3098, - 0x65de, 0x3097, - 0x65df, 0x31d8, - 0x65e0, 0x022d, - 0x65e1, 0x1789, - 0x65e2, 0x0745, - 0x65e3, 0x41ae, - 0x65e5, 0x02da, - 0x65e6, 0x0347, - 0x65e8, 0x03d9, - 0x65e9, 0x03d8, - 0x65ec, 0x03da, - 0x65ee, 0x17f8, - 0x65ef, 0x17f7, - 0x65f0, 0x189e, - 0x65f1, 0x04ba, - 0x65f2, 0x18a1, - 0x65f3, 0x18a0, - 0x65f4, 0x189f, - 0x65f5, 0x18a2, - 0x65fa, 0x05f6, - 0x65fb, 0x19a9, - 0x65fc, 0x19a5, - 0x65fd, 0x19ae, - 0x65ff, 0x464a, - 0x6600, 0x05fd, - 0x6602, 0x05fb, - 0x6603, 0x19aa, - 0x6604, 0x19a6, - 0x6605, 0x19ad, - 0x6606, 0x05fa, - 0x6607, 0x0601, - 0x6608, 0x19a8, - 0x6609, 0x19a4, - 0x660a, 0x0600, - 0x660b, 0x19ab, - 0x660c, 0x05f9, - 0x660d, 0x19ac, - 0x660e, 0x05fc, - 0x660f, 0x05fe, - 0x6610, 0x19b0, - 0x6611, 0x19af, - 0x6612, 0x19a7, - 0x6613, 0x05f8, - 0x6614, 0x05f7, - 0x6615, 0x05ff, - 0x6618, 0x41b1, - 0x661c, 0x1b09, - 0x661d, 0x1b0f, - 0x661e, 0x3a93, - 0x661f, 0x074b, - 0x6620, 0x0748, - 0x6621, 0x1b06, - 0x6622, 0x1b0b, - 0x6623, 0x4295, - 0x6624, 0x074e, - 0x6625, 0x0746, - 0x6626, 0x1b0a, - 0x6627, 0x0749, - 0x6628, 0x074c, - 0x662b, 0x1b0d, - 0x662d, 0x0747, - 0x662e, 0x1b12, - 0x662f, 0x074a, - 0x6630, 0x3a8d, - 0x6631, 0x074d, - 0x6632, 0x1b07, - 0x6633, 0x1b0c, - 0x6634, 0x1b10, - 0x6635, 0x1b08, - 0x6636, 0x1b05, - 0x6639, 0x1b11, - 0x663a, 0x1b0e, - 0x6641, 0x08e2, - 0x6642, 0x08db, - 0x6643, 0x08de, - 0x6644, 0x41b4, - 0x6645, 0x08e1, - 0x6647, 0x1cc6, - 0x6648, 0x3d99, - 0x6649, 0x08dc, - 0x664a, 0x1cc4, - 0x664b, 0x41b7, - 0x664c, 0x08e0, - 0x664f, 0x08dd, - 0x6651, 0x1cc7, - 0x6652, 0x08df, - 0x6653, 0x464b, - 0x6657, 0x409b, - 0x6659, 0x1f11, - 0x665a, 0x0ac9, - 0x665b, 0x1f10, - 0x665c, 0x1f12, - 0x665d, 0x0ac8, - 0x665e, 0x0acd, - 0x665f, 0x1cc5, - 0x6661, 0x1f0f, - 0x6662, 0x1f13, - 0x6663, 0x3a90, - 0x6664, 0x0aca, - 0x6665, 0x1f0e, - 0x6666, 0x0acc, - 0x6667, 0x41b9, - 0x6668, 0x0acb, - 0x666a, 0x217f, - 0x666b, 0x3a8b, - 0x666c, 0x217a, - 0x666e, 0x0c77, - 0x666f, 0x0c7b, - 0x6670, 0x0c78, - 0x6671, 0x217d, - 0x6672, 0x2180, - 0x6673, 0x41bb, - 0x6674, 0x0c79, - 0x6676, 0x0c7a, - 0x6677, 0x0c7f, - 0x6678, 0x2414, - 0x6679, 0x217e, - 0x667a, 0x0c7d, - 0x667b, 0x217b, - 0x667c, 0x2179, - 0x667d, 0x469b, - 0x667e, 0x0c7e, - 0x6680, 0x217c, - 0x6684, 0x0e33, - 0x6685, 0x4162, - 0x6686, 0x240c, - 0x6687, 0x0e30, - 0x6689, 0x0e2f, - 0x668a, 0x2411, - 0x668b, 0x2410, - 0x668c, 0x240d, - 0x668d, 0x0e35, - 0x668e, 0x3a89, - 0x6690, 0x240f, - 0x6691, 0x0c7c, - 0x6692, 0x464d, - 0x6694, 0x2413, - 0x6695, 0x240e, - 0x6696, 0x0e32, - 0x6697, 0x0e2e, - 0x6698, 0x0e34, - 0x6699, 0x2412, - 0x669a, 0x3d3d, - 0x669d, 0x0fed, - 0x669f, 0x26b8, - 0x66a0, 0x26b7, - 0x66a1, 0x26b6, - 0x66a2, 0x0feb, - 0x66a4, 0x40ba, - 0x66a8, 0x0fec, - 0x66a9, 0x28f9, - 0x66aa, 0x28fc, - 0x66ab, 0x1172, - 0x66ad, 0x4948, - 0x66ae, 0x1171, - 0x66af, 0x28fd, - 0x66b0, 0x28f8, - 0x66b1, 0x1174, - 0x66b2, 0x28fa, - 0x66b3, 0x40b5, - 0x66b4, 0x1173, - 0x66b5, 0x28f7, - 0x66b6, 0x3e13, - 0x66b7, 0x28fb, - 0x66b8, 0x12cc, - 0x66b9, 0x12c9, - 0x66ba, 0x2b65, - 0x66bb, 0x2b64, - 0x66bd, 0x2b63, - 0x66be, 0x2b5e, - 0x66bf, 0x3d9a, - 0x66c0, 0x2b5f, - 0x66c4, 0x12ca, - 0x66c6, 0x12c7, - 0x66c7, 0x12cb, - 0x66c8, 0x2b5d, - 0x66c9, 0x12c8, - 0x66ca, 0x2b60, - 0x66cc, 0x2b66, - 0x66cd, 0x40b8, - 0x66ce, 0x3a77, - 0x66cf, 0x2b62, - 0x66d2, 0x2d72, - 0x66d6, 0x13e4, - 0x66d8, 0x2f33, - 0x66d9, 0x13e3, - 0x66da, 0x2f31, - 0x66dc, 0x14da, - 0x66dd, 0x1585, - 0x66de, 0x3099, - 0x66e0, 0x1584, - 0x66e3, 0x31da, - 0x66e6, 0x1619, - 0x66e8, 0x31d9, - 0x66e9, 0x1675, - 0x66eb, 0x341d, - 0x66ec, 0x16fc, - 0x66ed, 0x3485, - 0x66f0, 0x02db, - 0x66f1, 0x3e84, - 0x66f2, 0x03dc, - 0x66f4, 0x04bb, - 0x66f6, 0x19b1, - 0x66f7, 0x074f, - 0x66f8, 0x08e3, - 0x66f9, 0x0ace, - 0x66fc, 0x0a1f, - 0x66fe, 0x0c80, - 0x6700, 0x0bf0, - 0x6701, 0x2181, - 0x6702, 0x41c4, - 0x6703, 0x0e36, - 0x6704, 0x26ba, - 0x6705, 0x26b9, - 0x6708, 0x02dc, - 0x6709, 0x03de, - 0x670a, 0x19b2, - 0x670b, 0x0603, - 0x670c, 0x3fe2, - 0x670d, 0x0602, - 0x670e, 0x3da1, - 0x670f, 0x1b13, - 0x6712, 0x1cc8, - 0x6714, 0x08e4, - 0x6716, 0x464f, - 0x6717, 0x08e6, - 0x6718, 0x1f14, - 0x671b, 0x0ad0, - 0x671d, 0x0c83, - 0x671e, 0x3d8b, - 0x671f, 0x0c82, - 0x6720, 0x2415, - 0x6721, 0x2522, - 0x6722, 0x26bb, - 0x6723, 0x2b67, - 0x6725, 0x379f, - 0x6726, 0x14db, - 0x6727, 0x161a, - 0x6728, 0x02dd, - 0x672a, 0x034a, - 0x672c, 0x0349, - 0x672d, 0x034c, - 0x672e, 0x0348, - 0x6731, 0x03e1, - 0x6733, 0x1800, - 0x6734, 0x03e0, - 0x6735, 0x03e2, - 0x6736, 0x3e41, - 0x6738, 0x17fb, - 0x6739, 0x17fa, - 0x673a, 0x17fd, - 0x673b, 0x17fc, - 0x673c, 0x17ff, - 0x673d, 0x03df, - 0x673e, 0x17f9, - 0x673f, 0x17fe, - 0x6744, 0x401b, - 0x6745, 0x18a3, - 0x6746, 0x04c5, - 0x6747, 0x18a4, - 0x6748, 0x18a8, - 0x6749, 0x04c4, - 0x674b, 0x18ac, - 0x674c, 0x18a7, - 0x674d, 0x18aa, - 0x674e, 0x04bd, - 0x6753, 0x04c7, - 0x6755, 0x18a6, - 0x6756, 0x04c2, - 0x6757, 0x04c8, - 0x6759, 0x18a5, - 0x675a, 0x18ab, - 0x675c, 0x04c1, - 0x675d, 0x18a9, - 0x675e, 0x04c3, - 0x675f, 0x04bc, - 0x6760, 0x04c6, - 0x6761, 0x3d66, - 0x6762, 0x41cb, - 0x6767, 0x41ca, - 0x676a, 0x0618, - 0x676c, 0x19b4, - 0x676d, 0x0604, - 0x676f, 0x060e, - 0x6771, 0x0607, - 0x6772, 0x0619, - 0x6773, 0x0609, - 0x6774, 0x19bc, - 0x6775, 0x0614, - 0x6776, 0x19b7, - 0x6777, 0x060a, - 0x6778, 0x19c6, - 0x677a, 0x19bf, - 0x677b, 0x19b8, - 0x677c, 0x0617, - 0x677d, 0x19c4, - 0x677e, 0x0612, - 0x677f, 0x0610, - 0x6781, 0x19c5, - 0x6783, 0x19c3, - 0x6784, 0x19bb, - 0x6785, 0x19b3, - 0x6786, 0x19ba, - 0x6787, 0x060b, - 0x6789, 0x0611, - 0x678b, 0x0605, - 0x678c, 0x19be, - 0x678d, 0x19bd, - 0x678e, 0x19b5, - 0x678f, 0x46c1, - 0x6790, 0x0613, - 0x6791, 0x19c1, - 0x6792, 0x19b6, - 0x6793, 0x0616, - 0x6794, 0x19c8, - 0x6795, 0x0606, - 0x6797, 0x060d, - 0x6798, 0x19b9, - 0x6799, 0x19c2, - 0x679a, 0x0615, - 0x679c, 0x0608, - 0x679d, 0x060c, - 0x679f, 0x19c0, - 0x67a0, 0x3d7a, - 0x67a4, 0x4651, - 0x67ac, 0x41e3, - 0x67ae, 0x1b34, - 0x67af, 0x0757, - 0x67b0, 0x0764, - 0x67b1, 0x41f4, - 0x67b2, 0x1b2f, - 0x67b3, 0x1b25, - 0x67b4, 0x075d, - 0x67b5, 0x1b23, - 0x67b6, 0x0756, - 0x67b7, 0x1b1e, - 0x67b8, 0x0760, - 0x67b9, 0x1b2b, - 0x67ba, 0x1b18, - 0x67bb, 0x1b1a, - 0x67bf, 0x37fa, - 0x67c0, 0x1b1d, - 0x67c1, 0x1b15, - 0x67c2, 0x1b2a, - 0x67c3, 0x1b3a, - 0x67c4, 0x075b, - 0x67c5, 0x1b1f, - 0x67c6, 0x1b31, - 0x67c8, 0x1b17, - 0x67c9, 0x1b38, - 0x67cb, 0x1b3c, - 0x67cc, 0x1b33, - 0x67cd, 0x1b24, - 0x67ce, 0x1b2c, - 0x67cf, 0x0761, - 0x67d0, 0x0754, - 0x67d1, 0x075c, - 0x67d2, 0x0768, - 0x67d3, 0x0751, - 0x67d4, 0x0753, - 0x67d6, 0x3b58, - 0x67d7, 0x41ce, - 0x67d8, 0x1b1c, - 0x67d9, 0x0765, - 0x67da, 0x075e, - 0x67db, 0x1b36, - 0x67dc, 0x1b19, - 0x67dd, 0x0767, - 0x67de, 0x0762, - 0x67df, 0x1b22, - 0x67e2, 0x0766, - 0x67e3, 0x1b29, - 0x67e4, 0x1b21, - 0x67e5, 0x075f, - 0x67e6, 0x1b35, - 0x67e7, 0x1b2d, - 0x67e9, 0x0759, - 0x67ea, 0x1b3b, - 0x67eb, 0x1b20, - 0x67ec, 0x0755, - 0x67ed, 0x1b32, - 0x67ee, 0x1b28, - 0x67ef, 0x075a, - 0x67f0, 0x1b2e, - 0x67f1, 0x0752, - 0x67f2, 0x1b16, - 0x67f3, 0x0763, - 0x67f4, 0x08f5, - 0x67f5, 0x0758, - 0x67f6, 0x1b27, - 0x67f7, 0x1b26, - 0x67f8, 0x1b1b, - 0x67f9, 0x3996, - 0x67fa, 0x1b37, - 0x67fc, 0x1b30, - 0x67fe, 0x4555, - 0x67ff, 0x0750, - 0x6800, 0x43c7, - 0x6801, 0x41d3, - 0x6802, 0x3fc8, - 0x6803, 0x3d6a, - 0x6804, 0x4556, - 0x680d, 0x4281, - 0x6810, 0x399c, - 0x6812, 0x1cdd, - 0x6813, 0x08fc, - 0x6814, 0x1cde, - 0x6816, 0x1cd2, - 0x6817, 0x08f1, - 0x6818, 0x08fd, - 0x681a, 0x1ccb, - 0x681b, 0x4072, - 0x681c, 0x1cd4, - 0x681d, 0x1cdc, - 0x681e, 0x46c2, - 0x681f, 0x1cca, - 0x6820, 0x1ce5, - 0x6821, 0x08e7, - 0x6822, 0x41d0, - 0x6825, 0x1ce4, - 0x6826, 0x1cdf, - 0x6828, 0x1ce0, - 0x6829, 0x08ef, - 0x682a, 0x08fa, - 0x682b, 0x1cd6, - 0x682d, 0x1cd7, - 0x682e, 0x1ce1, - 0x682f, 0x1cd8, - 0x6831, 0x1cd3, - 0x6832, 0x1ccd, - 0x6834, 0x1cdb, - 0x6835, 0x1cd5, - 0x6836, 0x3e2e, - 0x6837, 0x421d, - 0x6838, 0x08e8, - 0x6839, 0x08ec, - 0x683a, 0x1ce3, - 0x683b, 0x1ccf, - 0x683c, 0x08f8, - 0x683d, 0x08f4, - 0x683e, 0x4147, - 0x6840, 0x08f7, - 0x6841, 0x08fe, - 0x6842, 0x08ed, - 0x6843, 0x08f9, - 0x6844, 0x1cda, - 0x6845, 0x08fb, - 0x6846, 0x08ea, - 0x6847, 0x3beb, - 0x6848, 0x08e9, - 0x6849, 0x1ccc, - 0x684a, 0x4653, - 0x684b, 0x1cd0, - 0x684c, 0x08f2, - 0x684d, 0x1ce2, - 0x684e, 0x1cd9, - 0x684f, 0x1cd1, - 0x6850, 0x08f6, - 0x6851, 0x08f3, - 0x6853, 0x08eb, - 0x6854, 0x08ee, - 0x6855, 0x3d90, - 0x6856, 0x3814, - 0x685d, 0x41d6, - 0x6865, 0x4557, - 0x686b, 0x1f29, - 0x686d, 0x1f19, - 0x686f, 0x1f1e, - 0x6871, 0x1f2d, - 0x6872, 0x1f2a, - 0x6874, 0x1f23, - 0x6875, 0x1f22, - 0x6876, 0x0ad7, - 0x6877, 0x1f26, - 0x6878, 0x1f35, - 0x6879, 0x1f15, - 0x687b, 0x1f36, - 0x687c, 0x1f28, - 0x687d, 0x1f3a, - 0x687e, 0x1f2e, - 0x687f, 0x0ad6, - 0x6880, 0x1f2c, - 0x6881, 0x0ad1, - 0x6882, 0x0ae6, - 0x6883, 0x0adc, - 0x6884, 0x4654, - 0x6885, 0x0ae0, - 0x6886, 0x0adf, - 0x6887, 0x1f16, - 0x6888, 0x46b7, - 0x6889, 0x1f33, - 0x688a, 0x1f39, - 0x688b, 0x1f31, - 0x688c, 0x1f38, - 0x688f, 0x1f25, - 0x6890, 0x1f17, - 0x6891, 0x1f37, - 0x6892, 0x1f27, - 0x6893, 0x0ad4, - 0x6894, 0x0ae1, - 0x6896, 0x1f30, - 0x6897, 0x0ada, - 0x6898, 0x3aaa, - 0x689b, 0x1f2f, - 0x689c, 0x1f18, - 0x689d, 0x0ae2, - 0x689f, 0x0ae4, - 0x68a0, 0x1f32, - 0x68a1, 0x0ae5, - 0x68a2, 0x0ad3, - 0x68a3, 0x1f1f, - 0x68a4, 0x1f34, - 0x68a6, 0x40e4, - 0x68a7, 0x0ad9, - 0x68a8, 0x0ae3, - 0x68a9, 0x1f21, - 0x68aa, 0x1f2b, - 0x68ab, 0x1f1c, - 0x68ac, 0x1f20, - 0x68ad, 0x0ade, - 0x68ae, 0x1f1b, - 0x68af, 0x0ad2, - 0x68b0, 0x0adb, - 0x68b1, 0x0ad8, - 0x68b2, 0x1f24, - 0x68b3, 0x08f0, - 0x68b4, 0x2198, - 0x68b5, 0x0ad5, - 0x68b6, 0x3a9e, - 0x68b9, 0x3d14, - 0x68bd, 0x427c, - 0x68c3, 0x41dc, - 0x68c4, 0x0add, - 0x68c5, 0x3c2e, - 0x68c6, 0x219b, - 0x68c7, 0x21b1, - 0x68c8, 0x21a6, - 0x68c9, 0x0c97, - 0x68ca, 0x42eb, - 0x68cb, 0x0c92, - 0x68cc, 0x2195, - 0x68cd, 0x0c93, - 0x68ce, 0x21a5, - 0x68d0, 0x219e, - 0x68d1, 0x21ab, - 0x68d2, 0x0c8f, - 0x68d3, 0x2183, - 0x68d4, 0x21ad, - 0x68d5, 0x0c85, - 0x68d6, 0x218b, - 0x68d7, 0x0c88, - 0x68d8, 0x0c87, - 0x68da, 0x0c98, - 0x68dc, 0x2185, - 0x68dd, 0x21a7, - 0x68df, 0x0c8a, - 0x68e0, 0x0c86, - 0x68e1, 0x2193, - 0x68e3, 0x0c91, - 0x68e4, 0x218e, - 0x68e6, 0x21a9, - 0x68e7, 0x0c8d, - 0x68e8, 0x21a1, - 0x68e9, 0x21ae, - 0x68ea, 0x2188, - 0x68eb, 0x218d, - 0x68ec, 0x2187, - 0x68ee, 0x0c8c, - 0x68ef, 0x219a, - 0x68f0, 0x242b, - 0x68f1, 0x2189, - 0x68f2, 0x0c90, - 0x68f3, 0x2192, - 0x68f4, 0x21aa, - 0x68f5, 0x0c8b, - 0x68f6, 0x218f, - 0x68f7, 0x218c, - 0x68f8, 0x219d, - 0x68f9, 0x0c8e, - 0x68fa, 0x0c84, - 0x68fb, 0x0c9a, - 0x68fc, 0x21a0, - 0x68fd, 0x219f, - 0x6900, 0x41df, - 0x6901, 0x41de, - 0x6902, 0x42fb, - 0x6903, 0x429c, - 0x6904, 0x2184, - 0x6905, 0x0c89, - 0x6906, 0x21ac, - 0x6907, 0x2194, - 0x6908, 0x2196, - 0x6909, 0x4658, - 0x690a, 0x21a3, - 0x690b, 0x21a2, - 0x690c, 0x2182, - 0x690d, 0x0c94, - 0x690e, 0x0c96, - 0x690f, 0x218a, - 0x6910, 0x2191, - 0x6911, 0x2199, - 0x6912, 0x0c95, - 0x6913, 0x2190, - 0x6914, 0x219c, - 0x6915, 0x21af, - 0x6917, 0x21a4, - 0x6918, 0x3da2, - 0x691a, 0x3d80, - 0x691b, 0x37bd, - 0x6925, 0x21b0, - 0x692a, 0x2186, - 0x692c, 0x3f38, - 0x692f, 0x243f, - 0x6930, 0x0e3e, - 0x6932, 0x243d, - 0x6933, 0x2428, - 0x6934, 0x242d, - 0x6935, 0x2426, - 0x6936, 0x41e7, - 0x6937, 0x2439, - 0x6938, 0x2418, - 0x6939, 0x241f, - 0x693b, 0x2437, - 0x693c, 0x2441, - 0x693d, 0x2429, - 0x693e, 0x4056, - 0x693f, 0x241c, - 0x6940, 0x242f, - 0x6941, 0x2434, - 0x6942, 0x2420, - 0x6943, 0x4659, - 0x6944, 0x2431, - 0x6945, 0x241d, - 0x6946, 0x456f, - 0x6948, 0x2424, - 0x694a, 0x0e40, - 0x694b, 0x2438, - 0x694c, 0x2436, - 0x694e, 0x2419, - 0x694f, 0x243b, - 0x6951, 0x243c, - 0x6952, 0x243e, - 0x6953, 0x0e44, - 0x6954, 0x0e3c, - 0x6955, 0x3d86, - 0x6956, 0x1f1d, - 0x6957, 0x2421, - 0x6958, 0x2433, - 0x6959, 0x2422, - 0x695a, 0x0e39, - 0x695b, 0x0e49, - 0x695c, 0x243a, - 0x695d, 0x0e47, - 0x695e, 0x0e43, - 0x695f, 0x2417, - 0x6960, 0x0e3b, - 0x6961, 0x41e4, - 0x6962, 0x241a, - 0x6963, 0x0e48, - 0x6964, 0x465b, - 0x6965, 0x242a, - 0x6966, 0x2416, - 0x6967, 0x3d15, - 0x6968, 0x0e41, - 0x6969, 0x242e, - 0x696a, 0x241e, - 0x696b, 0x0e42, - 0x696c, 0x2427, - 0x696d, 0x0e38, - 0x696e, 0x0c99, - 0x696f, 0x2430, - 0x6970, 0x2197, - 0x6971, 0x241b, - 0x6972, 0x3a6d, - 0x6973, 0x41db, - 0x6974, 0x2435, - 0x6975, 0x0e3d, - 0x6976, 0x2432, - 0x6977, 0x0e3a, - 0x6978, 0x242c, - 0x6979, 0x0e45, - 0x697a, 0x2423, - 0x697b, 0x2440, - 0x6980, 0x3f3e, - 0x6982, 0x0e3f, - 0x6983, 0x24af, - 0x6985, 0x465d, - 0x6986, 0x0e46, - 0x698a, 0x3d74, - 0x698d, 0x26c9, - 0x698e, 0x26c7, - 0x6990, 0x26dd, - 0x6991, 0x26c5, - 0x6993, 0x26d7, - 0x6994, 0x0e37, - 0x6995, 0x0ff0, - 0x6996, 0x26c1, - 0x6997, 0x26dc, - 0x6998, 0x41e8, - 0x6999, 0x26c6, - 0x699a, 0x26d4, - 0x699b, 0x0ff5, - 0x699c, 0x0fee, - 0x699e, 0x26da, - 0x699f, 0x465c, - 0x69a0, 0x26bf, - 0x69a1, 0x26d9, - 0x69a2, 0x3730, - 0x69a3, 0x1000, - 0x69a4, 0x26d0, - 0x69a5, 0x26e0, - 0x69a6, 0x0ffe, - 0x69a7, 0x26c8, - 0x69a8, 0x0fef, - 0x69a9, 0x26ca, - 0x69aa, 0x26d8, - 0x69ab, 0x0ff8, - 0x69ac, 0x26c3, - 0x69ad, 0x0ffc, - 0x69ae, 0x0ff2, - 0x69af, 0x26cc, - 0x69b0, 0x26c2, - 0x69b1, 0x26bc, - 0x69b2, 0x3ff6, - 0x69b3, 0x26d6, - 0x69b4, 0x0ff9, - 0x69b5, 0x26df, - 0x69b6, 0x26bd, - 0x69b7, 0x0ff6, - 0x69b9, 0x26d2, - 0x69bb, 0x0ff7, - 0x69bc, 0x26c4, - 0x69bd, 0x26cf, - 0x69be, 0x26cb, - 0x69bf, 0x26cd, - 0x69c0, 0x3f5d, - 0x69c1, 0x0ff1, - 0x69c2, 0x26de, - 0x69c3, 0x0fff, - 0x69c4, 0x26ce, - 0x69c6, 0x26e1, - 0x69c9, 0x26be, - 0x69ca, 0x26d3, - 0x69cb, 0x0ff4, - 0x69cc, 0x0ffd, - 0x69cd, 0x0ffb, - 0x69ce, 0x26c0, - 0x69cf, 0x26d5, - 0x69d0, 0x0ffa, - 0x69d1, 0x39ef, - 0x69d3, 0x0ff3, - 0x69d4, 0x26d1, - 0x69d5, 0x3e3c, - 0x69d6, 0x465e, - 0x69d9, 0x26db, - 0x69e1, 0x41d8, - 0x69e2, 0x2909, - 0x69e4, 0x2905, - 0x69e5, 0x2901, - 0x69e6, 0x2915, - 0x69e7, 0x2912, - 0x69e8, 0x1177, - 0x69e9, 0x3d91, - 0x69eb, 0x2919, - 0x69ec, 0x2908, - 0x69ed, 0x1182, - 0x69ee, 0x290f, - 0x69f1, 0x2904, - 0x69f2, 0x290e, - 0x69f3, 0x117f, - 0x69f4, 0x2922, - 0x69f6, 0x291f, - 0x69f7, 0x2911, - 0x69f8, 0x2902, - 0x69f9, 0x41ed, - 0x69fa, 0x41c7, - 0x69fb, 0x2916, - 0x69fc, 0x2918, - 0x69fd, 0x117b, - 0x69fe, 0x290c, - 0x69ff, 0x2907, - 0x6a00, 0x28fe, - 0x6a01, 0x1178, - 0x6a02, 0x1180, - 0x6a03, 0x3e29, - 0x6a04, 0x291b, - 0x6a05, 0x1181, - 0x6a06, 0x28ff, - 0x6a07, 0x2921, - 0x6a08, 0x2914, - 0x6a09, 0x291a, - 0x6a0a, 0x117e, - 0x6a0b, 0x41d9, - 0x6a0c, 0x3d50, - 0x6a0d, 0x2917, - 0x6a0f, 0x291e, - 0x6a11, 0x1183, - 0x6a13, 0x117d, - 0x6a14, 0x2910, - 0x6a15, 0x2903, - 0x6a16, 0x2923, - 0x6a17, 0x2900, - 0x6a18, 0x291c, - 0x6a19, 0x117a, - 0x6a1a, 0x3d1e, - 0x6a1b, 0x290a, - 0x6a1c, 0x3b68, - 0x6a1d, 0x290b, - 0x6a1e, 0x1179, - 0x6a1f, 0x1176, - 0x6a20, 0x2906, - 0x6a21, 0x117c, - 0x6a23, 0x1175, - 0x6a25, 0x291d, - 0x6a26, 0x2920, - 0x6a27, 0x290d, - 0x6a28, 0x2b74, - 0x6a2b, 0x3d42, - 0x6a2c, 0x42ab, - 0x6a2d, 0x3b1f, - 0x6a32, 0x2b6c, - 0x6a33, 0x3aa4, - 0x6a34, 0x2b68, - 0x6a35, 0x12d9, - 0x6a38, 0x12ce, - 0x6a39, 0x12d3, - 0x6a3a, 0x12cf, - 0x6a3b, 0x2b76, - 0x6a3c, 0x2b81, - 0x6a3d, 0x12cd, - 0x6a3e, 0x2b6e, - 0x6a3f, 0x2b77, - 0x6a40, 0x2913, - 0x6a41, 0x2b78, - 0x6a44, 0x12d4, - 0x6a45, 0x41f0, - 0x6a46, 0x2b87, - 0x6a47, 0x12d8, - 0x6a48, 0x12db, - 0x6a49, 0x2b6a, - 0x6a4b, 0x12d7, - 0x6a4c, 0x3aab, - 0x6a4d, 0x2b85, - 0x6a4f, 0x2b7c, - 0x6a50, 0x2b7b, - 0x6a51, 0x2b73, - 0x6a52, 0x3aa5, - 0x6a53, 0x37ac, - 0x6a54, 0x2b7d, - 0x6a55, 0x2b84, - 0x6a56, 0x2b83, - 0x6a57, 0x37da, - 0x6a58, 0x12d2, - 0x6a59, 0x12d0, - 0x6a5a, 0x2b75, - 0x6a5b, 0x2b72, - 0x6a5d, 0x2b6f, - 0x6a5e, 0x2b82, - 0x6a5f, 0x12da, - 0x6a60, 0x2b80, - 0x6a61, 0x12d6, - 0x6a62, 0x12d5, - 0x6a64, 0x2b7a, - 0x6a65, 0x4660, - 0x6a66, 0x2b69, - 0x6a67, 0x2b6b, - 0x6a68, 0x2b6d, - 0x6a69, 0x2b7f, - 0x6a6a, 0x2b79, - 0x6a6b, 0x12d1, - 0x6a6d, 0x2b70, - 0x6a6f, 0x2b7e, - 0x6a71, 0x4662, - 0x6a74, 0x4661, - 0x6a76, 0x2b71, - 0x6a7a, 0x3aad, - 0x6a7e, 0x13ec, - 0x6a7f, 0x2d84, - 0x6a80, 0x13e5, - 0x6a81, 0x2d75, - 0x6a82, 0x4663, - 0x6a83, 0x2d80, - 0x6a84, 0x13e7, - 0x6a85, 0x2d87, - 0x6a87, 0x2d7c, - 0x6a89, 0x2d77, - 0x6a8a, 0x4136, - 0x6a8c, 0x2d88, - 0x6a8d, 0x2d73, - 0x6a8e, 0x2d7e, - 0x6a8f, 0x3c1b, - 0x6a90, 0x13ee, - 0x6a91, 0x2d83, - 0x6a92, 0x2d89, - 0x6a93, 0x2d7d, - 0x6a94, 0x13e6, - 0x6a95, 0x2d7f, - 0x6a96, 0x2d74, - 0x6a97, 0x13ed, - 0x6a99, 0x4665, - 0x6a9a, 0x2d86, - 0x6a9b, 0x2d79, - 0x6a9c, 0x13e9, - 0x6a9d, 0x41f2, - 0x6a9e, 0x2d7b, - 0x6a9f, 0x2d78, - 0x6aa0, 0x13ef, - 0x6aa1, 0x2d7a, - 0x6aa2, 0x13e8, - 0x6aa3, 0x13eb, - 0x6aa4, 0x2d82, - 0x6aa5, 0x2d76, - 0x6aa6, 0x2d85, - 0x6aa7, 0x37e3, - 0x6aa8, 0x2d81, - 0x6aab, 0x4667, - 0x6aac, 0x14dd, - 0x6aad, 0x2f3e, - 0x6aae, 0x14e2, - 0x6ab1, 0x3e53, - 0x6ab2, 0x3b4b, - 0x6ab3, 0x14dc, - 0x6ab4, 0x2f3d, - 0x6ab5, 0x4668, - 0x6ab6, 0x2f3a, - 0x6ab8, 0x14e0, - 0x6ab9, 0x2f35, - 0x6aba, 0x2f39, - 0x6abb, 0x14df, - 0x6abd, 0x2f36, - 0x6abe, 0x3aa1, - 0x6ac2, 0x14e1, - 0x6ac3, 0x14de, - 0x6ac5, 0x2f34, - 0x6ac6, 0x2f38, - 0x6ac7, 0x2f3c, - 0x6ac8, 0x41f5, - 0x6ac9, 0x3aa6, - 0x6aca, 0x3f4c, - 0x6acb, 0x309f, - 0x6acc, 0x309c, - 0x6acd, 0x30a5, - 0x6acf, 0x30a4, - 0x6ad0, 0x30a2, - 0x6ad1, 0x309d, - 0x6ad3, 0x1589, - 0x6ad4, 0x4669, - 0x6ad8, 0x3caa, - 0x6ad9, 0x309e, - 0x6ada, 0x1588, - 0x6adb, 0x13ea, - 0x6adc, 0x30a1, - 0x6add, 0x1587, - 0x6ade, 0x30a6, - 0x6adf, 0x30a0, - 0x6ae0, 0x309b, - 0x6ae1, 0x2f37, - 0x6ae5, 0x1586, - 0x6ae7, 0x309a, - 0x6ae8, 0x31df, - 0x6aea, 0x31de, - 0x6aeb, 0x30a3, - 0x6aec, 0x161b, - 0x6aee, 0x31e2, - 0x6af0, 0x31dd, - 0x6af1, 0x31e1, - 0x6af3, 0x31dc, - 0x6af6, 0x466a, - 0x6af8, 0x32d6, - 0x6af9, 0x31e0, - 0x6afa, 0x1678, - 0x6afb, 0x1676, - 0x6afc, 0x32d4, - 0x6b00, 0x32d7, - 0x6b02, 0x32d3, - 0x6b03, 0x32d5, - 0x6b04, 0x1677, - 0x6b05, 0x3aa7, - 0x6b08, 0x3386, - 0x6b0a, 0x16c6, - 0x6b0b, 0x3385, - 0x6b0f, 0x3420, - 0x6b10, 0x16fd, - 0x6b11, 0x341e, - 0x6b13, 0x3487, - 0x6b16, 0x1743, - 0x6b17, 0x34ce, - 0x6b18, 0x34cc, - 0x6b1a, 0x34cf, - 0x6b1d, 0x41f8, - 0x6b1e, 0x3534, - 0x6b20, 0x02de, - 0x6b21, 0x03e3, - 0x6b23, 0x061a, - 0x6b25, 0x19c9, - 0x6b28, 0x1b3d, - 0x6b2c, 0x1ce6, - 0x6b2d, 0x1ce8, - 0x6b2f, 0x1ce7, - 0x6b31, 0x1ce9, - 0x6b32, 0x0ae7, - 0x6b33, 0x1f3c, - 0x6b34, 0x1cea, - 0x6b35, 0x41fb, - 0x6b36, 0x1f3b, - 0x6b37, 0x1f3d, - 0x6b39, 0x21b2, - 0x6b3a, 0x0c9c, - 0x6b3b, 0x21b3, - 0x6b3c, 0x21b5, - 0x6b3d, 0x0c9d, - 0x6b3e, 0x0c9b, - 0x6b3f, 0x21b4, - 0x6b41, 0x2447, - 0x6b42, 0x2445, - 0x6b43, 0x2444, - 0x6b45, 0x2443, - 0x6b46, 0x2442, - 0x6b47, 0x0e4a, - 0x6b48, 0x2446, - 0x6b49, 0x1001, - 0x6b4a, 0x26e2, - 0x6b4b, 0x26e4, - 0x6b4c, 0x1002, - 0x6b4d, 0x26e3, - 0x6b4e, 0x1185, - 0x6b50, 0x1184, - 0x6b51, 0x2924, - 0x6b52, 0x3f6e, - 0x6b54, 0x2b89, - 0x6b55, 0x2b88, - 0x6b56, 0x2b8a, - 0x6b57, 0x3aae, - 0x6b59, 0x12dc, - 0x6b5b, 0x2d8a, - 0x6b5c, 0x13f0, - 0x6b5e, 0x2f3f, - 0x6b5f, 0x14e4, - 0x6b60, 0x30a7, - 0x6b61, 0x16c7, - 0x6b62, 0x02df, - 0x6b63, 0x034d, - 0x6b64, 0x03e4, - 0x6b65, 0x04c9, - 0x6b66, 0x061b, - 0x6b6a, 0x0769, - 0x6b6d, 0x1ceb, - 0x6b6f, 0x4515, - 0x6b72, 0x0e4b, - 0x6b74, 0x41fc, - 0x6b76, 0x29a2, - 0x6b77, 0x12dd, - 0x6b78, 0x14e5, - 0x6b79, 0x02e0, - 0x6b7a, 0x44ee, - 0x6b7b, 0x03e5, - 0x6b7e, 0x19cb, - 0x6b7f, 0x061d, - 0x6b80, 0x19ca, - 0x6b81, 0x466b, - 0x6b82, 0x1b3e, - 0x6b83, 0x076a, - 0x6b84, 0x1b3f, - 0x6b86, 0x076b, - 0x6b88, 0x1ced, - 0x6b89, 0x0900, - 0x6b8a, 0x08ff, - 0x6b8c, 0x1f43, - 0x6b8d, 0x1f41, - 0x6b8f, 0x1f40, - 0x6b91, 0x1f3f, - 0x6b94, 0x21b6, - 0x6b95, 0x21b9, - 0x6b96, 0x0c9f, - 0x6b97, 0x21b7, - 0x6b98, 0x0c9e, - 0x6b99, 0x21b8, - 0x6b9b, 0x2448, - 0x6b9e, 0x26e5, - 0x6ba2, 0x2927, - 0x6ba3, 0x2926, - 0x6ba4, 0x1186, - 0x6ba5, 0x2925, - 0x6ba6, 0x2928, - 0x6ba7, 0x2b8b, - 0x6baa, 0x2b8c, - 0x6bad, 0x2d8b, - 0x6bae, 0x13f1, - 0x6baf, 0x14e6, - 0x6bb0, 0x30a8, - 0x6bb2, 0x1679, - 0x6bb3, 0x178a, - 0x6bb5, 0x076c, - 0x6bb6, 0x1b40, - 0x6bb7, 0x0901, - 0x6bba, 0x0ae8, - 0x6bbc, 0x0ca0, - 0x6bbd, 0x21ba, - 0x6bbf, 0x0e4d, - 0x6bc0, 0x0e4c, - 0x6bc1, 0x466c, - 0x6bc3, 0x26e8, - 0x6bc5, 0x1187, - 0x6bc7, 0x2b8f, - 0x6bc8, 0x2b8e, - 0x6bc9, 0x2f40, - 0x6bca, 0x3421, - 0x6bcb, 0x02e1, - 0x6bcc, 0x178b, - 0x6bcd, 0x034e, - 0x6bcf, 0x04ca, - 0x6bd0, 0x18ad, - 0x6bd2, 0x076d, - 0x6bd3, 0x0e4e, - 0x6bd4, 0x02e2, - 0x6bd6, 0x1b41, - 0x6bd7, 0x076e, - 0x6bd8, 0x1b42, - 0x6bda, 0x13f2, - 0x6bdb, 0x02e3, - 0x6bdc, 0x4207, - 0x6bde, 0x19cc, - 0x6be0, 0x1b43, - 0x6be1, 0x4205, - 0x6be2, 0x1cf2, - 0x6be3, 0x1cf1, - 0x6be4, 0x1cef, - 0x6be6, 0x1cee, - 0x6be7, 0x1cf3, - 0x6be8, 0x1cf0, - 0x6bea, 0x466d, - 0x6beb, 0x0ae9, - 0x6bef, 0x0ca1, - 0x6bf0, 0x21bb, - 0x6bf2, 0x21bc, - 0x6bf7, 0x244c, - 0x6bf9, 0x244b, - 0x6bfa, 0x3f79, - 0x6bfb, 0x2449, - 0x6bfd, 0x0e4f, - 0x6bfe, 0x26ea, - 0x6bff, 0x292b, - 0x6c00, 0x292a, - 0x6c01, 0x2929, - 0x6c02, 0x292c, - 0x6c03, 0x2b91, - 0x6c04, 0x2b90, - 0x6c05, 0x12de, - 0x6c06, 0x2b92, - 0x6c08, 0x13f3, - 0x6c09, 0x2d8c, - 0x6c0b, 0x2f41, - 0x6c0c, 0x30a9, - 0x6c0d, 0x3388, - 0x6c0f, 0x02e4, - 0x6c10, 0x0350, - 0x6c11, 0x034f, - 0x6c13, 0x061e, - 0x6c14, 0x178c, - 0x6c15, 0x17aa, - 0x6c16, 0x03e6, - 0x6c18, 0x1801, - 0x6c19, 0x18ae, - 0x6c1b, 0x061f, - 0x6c1c, 0x38ab, - 0x6c1d, 0x19cd, - 0x6c1f, 0x076f, - 0x6c20, 0x1b44, - 0x6c23, 0x0902, - 0x6c24, 0x0906, - 0x6c25, 0x1cf4, - 0x6c26, 0x0905, - 0x6c27, 0x0903, - 0x6c2a, 0x1f44, - 0x6c2b, 0x0aeb, - 0x6c2c, 0x0ca4, - 0x6c2e, 0x0ca2, - 0x6c30, 0x21be, - 0x6c31, 0x3f63, - 0x6c33, 0x1003, - 0x6c34, 0x02e5, - 0x6c35, 0x44ef, - 0x6c36, 0x17ab, - 0x6c37, 0x4208, - 0x6c38, 0x0351, - 0x6c39, 0x3e05, - 0x6c3a, 0x44f0, - 0x6c3b, 0x17ae, - 0x6c3d, 0x4381, - 0x6c3e, 0x0354, - 0x6c3f, 0x17ad, - 0x6c40, 0x0353, - 0x6c41, 0x0352, - 0x6c42, 0x04cb, - 0x6c43, 0x17ac, - 0x6c46, 0x1802, - 0x6c49, 0x408d, - 0x6c4a, 0x1806, - 0x6c4b, 0x1808, - 0x6c4d, 0x03f0, - 0x6c4f, 0x1805, - 0x6c50, 0x03ec, - 0x6c52, 0x1803, - 0x6c54, 0x1807, - 0x6c55, 0x03ed, - 0x6c57, 0x03e8, - 0x6c58, 0x3bba, - 0x6c59, 0x03e9, - 0x6c5a, 0x420c, - 0x6c5b, 0x03ef, - 0x6c5c, 0x1804, - 0x6c5d, 0x03e7, - 0x6c5e, 0x04cc, - 0x6c5f, 0x03ea, - 0x6c61, 0x03ee, - 0x6c65, 0x18c0, - 0x6c66, 0x18be, - 0x6c67, 0x18b1, - 0x6c68, 0x04d8, - 0x6c69, 0x18b8, - 0x6c6a, 0x04d3, - 0x6c6b, 0x18b2, - 0x6c6d, 0x18ba, - 0x6c6e, 0x40ca, - 0x6c6f, 0x18b7, - 0x6c70, 0x04d6, - 0x6c71, 0x18b6, - 0x6c72, 0x04dd, - 0x6c73, 0x18bf, - 0x6c74, 0x04df, - 0x6c75, 0x466e, - 0x6c76, 0x04e1, - 0x6c78, 0x18b0, - 0x6c79, 0x420e, - 0x6c7a, 0x04d4, - 0x6c7b, 0x18c1, - 0x6c7d, 0x04db, - 0x6c7e, 0x04de, - 0x6c7f, 0x37a6, - 0x6c80, 0x19e4, - 0x6c81, 0x04ce, - 0x6c82, 0x04e5, - 0x6c83, 0x04dc, - 0x6c84, 0x18b3, - 0x6c85, 0x04d1, - 0x6c86, 0x04e0, - 0x6c87, 0x18bb, - 0x6c88, 0x04cf, - 0x6c8a, 0x19e2, - 0x6c8b, 0x18b4, - 0x6c8c, 0x04d7, - 0x6c8d, 0x04e2, - 0x6c8e, 0x18c2, - 0x6c8f, 0x18b5, - 0x6c90, 0x04d5, - 0x6c92, 0x04da, - 0x6c93, 0x19ce, - 0x6c94, 0x04e3, - 0x6c95, 0x18bc, - 0x6c96, 0x04d9, - 0x6c98, 0x04e4, - 0x6c99, 0x04cd, - 0x6c9a, 0x18b9, - 0x6c9b, 0x04d2, - 0x6c9c, 0x18bd, - 0x6c9d, 0x19e3, - 0x6c9f, 0x3889, - 0x6ca2, 0x3d63, - 0x6caa, 0x466f, - 0x6cab, 0x062b, - 0x6cac, 0x063b, - 0x6cad, 0x19d5, - 0x6cae, 0x0632, - 0x6caf, 0x3cf6, - 0x6cb0, 0x19ea, - 0x6cb1, 0x0623, - 0x6cb2, 0x3ecc, - 0x6cb3, 0x0626, - 0x6cb4, 0x19e1, - 0x6cb6, 0x19d3, - 0x6cb7, 0x19d7, - 0x6cb8, 0x062e, - 0x6cb9, 0x0630, - 0x6cba, 0x19da, - 0x6cbb, 0x0637, - 0x6cbc, 0x0629, - 0x6cbd, 0x0627, - 0x6cbf, 0x0636, - 0x6cc0, 0x19e6, - 0x6cc1, 0x0631, - 0x6cc2, 0x19d9, - 0x6cc3, 0x19db, - 0x6cc4, 0x062f, - 0x6cc5, 0x0634, - 0x6cc6, 0x19dc, - 0x6cc7, 0x19e9, - 0x6cc9, 0x0770, - 0x6cca, 0x063a, - 0x6ccb, 0x4070, - 0x6ccc, 0x0624, - 0x6ccd, 0x19e8, - 0x6cce, 0x3f91, - 0x6ccf, 0x19ec, - 0x6cd0, 0x19d8, - 0x6cd1, 0x19ee, - 0x6cd2, 0x19df, - 0x6cd3, 0x062d, - 0x6cd4, 0x19d4, - 0x6cd5, 0x062c, - 0x6cd6, 0x063e, - 0x6cd7, 0x0633, - 0x6cd9, 0x19d2, - 0x6cda, 0x1b4e, - 0x6cdb, 0x0639, - 0x6cdc, 0x063d, - 0x6cdd, 0x19e0, - 0x6cde, 0x19e5, - 0x6cdf, 0x3d57, - 0x6ce0, 0x063f, - 0x6ce1, 0x0638, - 0x6ce2, 0x062a, - 0x6ce3, 0x0620, - 0x6ce5, 0x0625, - 0x6ce7, 0x19d6, - 0x6ce8, 0x0621, - 0x6ce9, 0x19ed, - 0x6cea, 0x3f8d, - 0x6ceb, 0x19d0, - 0x6cec, 0x19cf, - 0x6ced, 0x19dd, - 0x6cee, 0x19d1, - 0x6cef, 0x063c, - 0x6cf0, 0x0907, - 0x6cf1, 0x0635, - 0x6cf2, 0x19de, - 0x6cf3, 0x0622, - 0x6cf5, 0x077f, - 0x6cf9, 0x19eb, - 0x6d00, 0x1b55, - 0x6d01, 0x1b58, - 0x6d02, 0x4671, - 0x6d03, 0x1b5b, - 0x6d04, 0x1b50, - 0x6d05, 0x3a19, - 0x6d06, 0x4672, - 0x6d07, 0x1b5e, - 0x6d08, 0x1b61, - 0x6d09, 0x1b63, - 0x6d0a, 0x1b4d, - 0x6d0b, 0x0771, - 0x6d0c, 0x0776, - 0x6d0d, 0x1cf9, - 0x6d0e, 0x0786, - 0x6d0f, 0x1b5c, - 0x6d10, 0x1b64, - 0x6d11, 0x1b54, - 0x6d12, 0x1b4c, - 0x6d16, 0x1d14, - 0x6d17, 0x0779, - 0x6d18, 0x1b59, - 0x6d19, 0x1b51, - 0x6d1a, 0x1b53, - 0x6d1b, 0x077e, - 0x6d1d, 0x1b56, - 0x6d1e, 0x0778, - 0x6d1f, 0x1b49, - 0x6d20, 0x1b5f, - 0x6d22, 0x1b62, - 0x6d24, 0x3ac3, - 0x6d25, 0x0775, - 0x6d26, 0x4673, - 0x6d27, 0x0781, - 0x6d28, 0x1b46, - 0x6d29, 0x0783, - 0x6d2a, 0x0773, - 0x6d2b, 0x0787, - 0x6d2c, 0x1b60, - 0x6d2d, 0x1b48, - 0x6d2e, 0x0784, - 0x6d2f, 0x1d0e, - 0x6d30, 0x19e7, - 0x6d31, 0x0777, - 0x6d32, 0x0772, - 0x6d33, 0x1b4f, - 0x6d34, 0x1b47, - 0x6d35, 0x0785, - 0x6d36, 0x077d, - 0x6d37, 0x1b5a, - 0x6d38, 0x0782, - 0x6d39, 0x0780, - 0x6d3a, 0x1b52, - 0x6d3b, 0x077a, - 0x6d3c, 0x1b4a, - 0x6d3d, 0x077b, - 0x6d3f, 0x1b4b, - 0x6d40, 0x1b5d, - 0x6d41, 0x0774, - 0x6d42, 0x1b57, - 0x6d4e, 0x4558, - 0x6d57, 0x3cf3, - 0x6d58, 0x1cfc, - 0x6d59, 0x090f, - 0x6d5a, 0x0914, - 0x6d5b, 0x409c, - 0x6d5c, 0x4222, - 0x6d5e, 0x1d05, - 0x6d5f, 0x1d0b, - 0x6d60, 0x1d07, - 0x6d61, 0x1cfa, - 0x6d62, 0x1cfd, - 0x6d63, 0x1cf6, - 0x6d65, 0x091b, - 0x6d66, 0x090c, - 0x6d67, 0x1d06, - 0x6d68, 0x1d0f, - 0x6d69, 0x0916, - 0x6d6a, 0x0908, - 0x6d6c, 0x0911, - 0x6d6d, 0x1cfe, - 0x6d6e, 0x0913, - 0x6d6f, 0x1cff, - 0x6d70, 0x1d09, - 0x6d71, 0x40f5, - 0x6d72, 0x39d7, - 0x6d74, 0x0915, - 0x6d75, 0x1d18, - 0x6d76, 0x1cf8, - 0x6d77, 0x090e, - 0x6d78, 0x090d, - 0x6d79, 0x0919, - 0x6d7a, 0x1cf5, - 0x6d7b, 0x1d16, - 0x6d7c, 0x1d0a, - 0x6d7d, 0x1d17, - 0x6d7e, 0x1d11, - 0x6d7f, 0x1d03, - 0x6d80, 0x1d12, - 0x6d81, 0x4674, - 0x6d82, 0x1d0c, - 0x6d83, 0x1d15, - 0x6d84, 0x1d13, - 0x6d85, 0x091a, - 0x6d86, 0x1d04, - 0x6d87, 0x090b, - 0x6d88, 0x090a, - 0x6d89, 0x0912, - 0x6d8a, 0x0918, - 0x6d8b, 0x1d10, - 0x6d8c, 0x0917, - 0x6d8d, 0x1d01, - 0x6d8e, 0x0aec, - 0x6d8f, 0x3de8, - 0x6d90, 0x1d19, - 0x6d91, 0x1d00, - 0x6d92, 0x1cfb, - 0x6d93, 0x0910, - 0x6d94, 0x091c, - 0x6d95, 0x0909, - 0x6d96, 0x4221, - 0x6d97, 0x1d08, - 0x6d98, 0x1d0d, - 0x6da4, 0x4676, - 0x6da5, 0x3ab9, - 0x6daa, 0x0b0e, - 0x6dab, 0x1f46, - 0x6dac, 0x1f4a, - 0x6dae, 0x0afb, - 0x6daf, 0x0af9, - 0x6db1, 0x4677, - 0x6db2, 0x0af0, - 0x6db3, 0x1f48, - 0x6db4, 0x1f47, - 0x6db5, 0x0b04, - 0x6db7, 0x1f4d, - 0x6db8, 0x0afe, - 0x6db9, 0x3ffb, - 0x6dba, 0x1f5f, - 0x6dbb, 0x1f6b, - 0x6dbc, 0x0aed, - 0x6dbd, 0x1f5c, - 0x6dbe, 0x1f55, - 0x6dbf, 0x0b10, - 0x6dc0, 0x1f45, - 0x6dc2, 0x1f61, - 0x6dc4, 0x0b0d, - 0x6dc5, 0x0b01, - 0x6dc6, 0x0b0c, - 0x6dc7, 0x0af7, - 0x6dc8, 0x1f51, - 0x6dc9, 0x1f63, - 0x6dca, 0x1f5b, - 0x6dcb, 0x0af8, - 0x6dcc, 0x0af2, - 0x6dcd, 0x1f69, - 0x6dcf, 0x1f62, - 0x6dd0, 0x1f64, - 0x6dd1, 0x0afa, - 0x6dd2, 0x0b02, - 0x6dd3, 0x1f66, - 0x6dd4, 0x1f4f, - 0x6dd5, 0x1f60, - 0x6dd6, 0x1f54, - 0x6dd7, 0x1f68, - 0x6dd8, 0x0b07, - 0x6dd9, 0x0aef, - 0x6dda, 0x0b05, - 0x6ddb, 0x1f59, - 0x6ddc, 0x1f57, - 0x6dde, 0x0afc, - 0x6ddf, 0x1f53, - 0x6de0, 0x1f52, - 0x6de1, 0x0af1, - 0x6de2, 0x1f4c, - 0x6de3, 0x1f6a, - 0x6de4, 0x0af3, - 0x6de5, 0x1f56, - 0x6de6, 0x0b11, - 0x6de8, 0x0b0b, - 0x6de9, 0x1f4b, - 0x6dea, 0x0b08, - 0x6deb, 0x0b06, - 0x6dec, 0x0b0f, - 0x6ded, 0x1f5d, - 0x6dee, 0x0b0a, - 0x6def, 0x1d02, - 0x6df0, 0x1f5e, - 0x6df1, 0x0b09, - 0x6df2, 0x1f65, - 0x6df3, 0x0aee, - 0x6df4, 0x1f5a, - 0x6df5, 0x0b00, - 0x6df6, 0x1f4e, - 0x6df7, 0x0aff, - 0x6df9, 0x0afd, - 0x6dfa, 0x0af5, - 0x6dfb, 0x0af4, - 0x6dfc, 0x21bf, - 0x6dfd, 0x1f67, - 0x6e00, 0x1f50, - 0x6e02, 0x3cfa, - 0x6e03, 0x21d4, - 0x6e04, 0x3abe, - 0x6e05, 0x0af6, - 0x6e0a, 0x3ac1, - 0x6e0f, 0x3cf0, - 0x6e15, 0x4678, - 0x6e18, 0x4679, - 0x6e19, 0x0cc1, - 0x6e1a, 0x0b03, - 0x6e1b, 0x0caf, - 0x6e1c, 0x21ce, - 0x6e1d, 0x0cbd, - 0x6e1f, 0x21c2, - 0x6e20, 0x0cac, - 0x6e21, 0x0ca8, - 0x6e22, 0x21e0, - 0x6e23, 0x0cae, - 0x6e24, 0x0cb2, - 0x6e25, 0x0cad, - 0x6e26, 0x0cb6, - 0x6e27, 0x21e4, - 0x6e28, 0x21db, - 0x6e29, 0x467a, - 0x6e2a, 0x4302, - 0x6e2b, 0x21c9, - 0x6e2c, 0x0cbb, - 0x6e2d, 0x0cb5, - 0x6e2e, 0x21d5, - 0x6e2f, 0x0ca5, - 0x6e30, 0x21e1, - 0x6e31, 0x21da, - 0x6e32, 0x0ca9, - 0x6e33, 0x21cf, - 0x6e34, 0x0cb8, - 0x6e35, 0x21ec, - 0x6e38, 0x0ca6, - 0x6e39, 0x21df, - 0x6e3a, 0x0cba, - 0x6e3b, 0x21d3, - 0x6e3c, 0x21c5, - 0x6e3e, 0x0cbe, - 0x6e3f, 0x21ca, - 0x6e40, 0x21d1, - 0x6e41, 0x21cb, - 0x6e43, 0x0cbc, - 0x6e44, 0x0cc4, - 0x6e45, 0x21c7, - 0x6e46, 0x21c0, - 0x6e49, 0x21c3, - 0x6e4a, 0x0cab, - 0x6e4b, 0x21d0, - 0x6e4d, 0x0cb9, - 0x6e4e, 0x0cc2, - 0x6e4f, 0x4234, - 0x6e50, 0x41d1, - 0x6e51, 0x21d2, - 0x6e52, 0x21ea, - 0x6e53, 0x21e2, - 0x6e54, 0x0ca7, - 0x6e55, 0x21e8, - 0x6e56, 0x0cb3, - 0x6e58, 0x0cb1, - 0x6e59, 0x40e6, - 0x6e5a, 0x21ee, - 0x6e5b, 0x0cb0, - 0x6e5c, 0x21d8, - 0x6e5d, 0x21cc, - 0x6e5e, 0x21d6, - 0x6e5f, 0x0cc7, - 0x6e60, 0x21dc, - 0x6e61, 0x21d9, - 0x6e62, 0x21c8, - 0x6e63, 0x0cc3, - 0x6e64, 0x21e6, - 0x6e65, 0x21e3, - 0x6e66, 0x21eb, - 0x6e67, 0x0caa, - 0x6e68, 0x21d7, - 0x6e69, 0x0cc6, - 0x6e6b, 0x21de, - 0x6e6e, 0x0cb4, - 0x6e6f, 0x0cb7, - 0x6e71, 0x21dd, - 0x6e72, 0x0cc5, - 0x6e73, 0x21cd, - 0x6e74, 0x1f49, - 0x6e76, 0x39d3, - 0x6e77, 0x21e7, - 0x6e78, 0x21e5, - 0x6e79, 0x21e9, - 0x6e7c, 0x4223, - 0x6e86, 0x467b, - 0x6e88, 0x21c4, - 0x6e89, 0x0cc0, - 0x6e8b, 0x3bbf, - 0x6e8d, 0x246c, - 0x6e8e, 0x246b, - 0x6e8f, 0x2451, - 0x6e90, 0x0e55, - 0x6e92, 0x246a, - 0x6e93, 0x2454, - 0x6e96, 0x0e5f, - 0x6e97, 0x2473, - 0x6e98, 0x0e5a, - 0x6e99, 0x2469, - 0x6e9a, 0x4581, - 0x6e9b, 0x244e, - 0x6e9c, 0x0e60, - 0x6e9d, 0x0e56, - 0x6e9e, 0x245d, - 0x6e9f, 0x2453, - 0x6ea0, 0x2456, - 0x6ea1, 0x246e, - 0x6ea2, 0x0e50, - 0x6ea3, 0x2475, - 0x6ea4, 0x246d, - 0x6ea5, 0x0e59, - 0x6ea6, 0x2462, - 0x6ea7, 0x0e64, - 0x6eaa, 0x0e63, - 0x6eab, 0x0e5d, - 0x6eae, 0x2474, - 0x6eaf, 0x0e51, - 0x6eb0, 0x2460, - 0x6eb1, 0x2457, - 0x6eb2, 0x2464, - 0x6eb3, 0x2470, - 0x6eb4, 0x0e65, - 0x6eb5, 0x41fe, - 0x6eb6, 0x0e53, - 0x6eb7, 0x245f, - 0x6eb8, 0x3e0c, - 0x6eb9, 0x2458, - 0x6eba, 0x0e5c, - 0x6ebb, 0x467d, - 0x6ebc, 0x0e5b, - 0x6ebd, 0x245b, - 0x6ebe, 0x2465, - 0x6ebf, 0x246f, - 0x6ec0, 0x2452, - 0x6ec1, 0x245c, - 0x6ec2, 0x0e54, - 0x6ec3, 0x2466, - 0x6ec4, 0x0e61, - 0x6ec5, 0x0e58, - 0x6ec6, 0x2459, - 0x6ec7, 0x0e57, - 0x6ec8, 0x2450, - 0x6ec9, 0x245e, - 0x6eca, 0x2472, - 0x6ecb, 0x0cbf, - 0x6ecc, 0x101f, - 0x6ecd, 0x2461, - 0x6ece, 0x26eb, - 0x6ecf, 0x2463, - 0x6ed0, 0x2471, - 0x6ed1, 0x0e5e, - 0x6ed2, 0x245a, - 0x6ed3, 0x0e52, - 0x6ed4, 0x0e62, - 0x6ed5, 0x119a, - 0x6ed6, 0x244f, - 0x6ed8, 0x2468, - 0x6ed9, 0x4069, - 0x6eda, 0x467f, - 0x6edb, 0x402f, - 0x6edc, 0x2467, - 0x6edd, 0x4538, - 0x6ee2, 0x467e, - 0x6ee8, 0x4681, - 0x6eeb, 0x2707, - 0x6eec, 0x101c, - 0x6eed, 0x26fc, - 0x6eee, 0x2701, - 0x6eef, 0x1011, - 0x6ef1, 0x26ed, - 0x6ef2, 0x101e, - 0x6ef4, 0x1008, - 0x6ef5, 0x26ec, - 0x6ef6, 0x270d, - 0x6ef7, 0x1020, - 0x6ef8, 0x26f0, - 0x6ef9, 0x2700, - 0x6efa, 0x423b, - 0x6efb, 0x26f2, - 0x6efc, 0x2710, - 0x6efd, 0x270c, - 0x6efe, 0x1006, - 0x6eff, 0x1010, - 0x6f00, 0x2946, - 0x6f01, 0x101d, - 0x6f02, 0x100e, - 0x6f03, 0x26ee, - 0x6f04, 0x4224, - 0x6f05, 0x270b, - 0x6f06, 0x1012, - 0x6f07, 0x2708, - 0x6f08, 0x2715, - 0x6f09, 0x26f4, - 0x6f0a, 0x26fd, - 0x6f0b, 0x3aba, - 0x6f0c, 0x3cfb, - 0x6f0d, 0x2713, - 0x6f0e, 0x2709, - 0x6f0f, 0x100d, - 0x6f12, 0x26fb, - 0x6f13, 0x1007, - 0x6f14, 0x1005, - 0x6f15, 0x1017, - 0x6f16, 0x41a0, - 0x6f17, 0x46ce, - 0x6f18, 0x26f9, - 0x6f19, 0x26f6, - 0x6f1c, 0x270f, - 0x6f1e, 0x2714, - 0x6f1f, 0x2712, - 0x6f20, 0x100b, - 0x6f21, 0x2716, - 0x6f22, 0x100f, - 0x6f23, 0x1016, - 0x6f24, 0x4683, - 0x6f25, 0x26ef, - 0x6f26, 0x292e, - 0x6f27, 0x26f8, - 0x6f29, 0x1009, - 0x6f2a, 0x101b, - 0x6f2b, 0x1018, - 0x6f2c, 0x100c, - 0x6f2d, 0x2702, - 0x6f2e, 0x26f3, - 0x6f2f, 0x1019, - 0x6f30, 0x2704, - 0x6f31, 0x1013, - 0x6f32, 0x1015, - 0x6f33, 0x1004, - 0x6f34, 0x4684, - 0x6f35, 0x2706, - 0x6f36, 0x26fe, - 0x6f37, 0x26f1, - 0x6f38, 0x1014, - 0x6f39, 0x270e, - 0x6f3a, 0x2711, - 0x6f3b, 0x26fa, - 0x6f3c, 0x2705, - 0x6f3d, 0x4282, - 0x6f3e, 0x100a, - 0x6f3f, 0x1189, - 0x6f40, 0x2703, - 0x6f41, 0x292d, - 0x6f43, 0x270a, - 0x6f44, 0x4240, - 0x6f4e, 0x26f5, - 0x6f4f, 0x2937, - 0x6f50, 0x2941, - 0x6f51, 0x118c, - 0x6f52, 0x2940, - 0x6f53, 0x294c, - 0x6f54, 0x118e, - 0x6f55, 0x293e, - 0x6f56, 0x3e52, - 0x6f57, 0x2942, - 0x6f58, 0x1199, - 0x6f5a, 0x2939, - 0x6f5b, 0x1191, - 0x6f5c, 0x4241, - 0x6f5d, 0x2945, - 0x6f5e, 0x2b9a, - 0x6f5f, 0x119d, - 0x6f60, 0x119c, - 0x6f61, 0x2947, - 0x6f62, 0x2936, - 0x6f63, 0x2951, - 0x6f64, 0x1197, - 0x6f66, 0x118d, - 0x6f67, 0x294a, - 0x6f69, 0x294e, - 0x6f6a, 0x2953, - 0x6f6b, 0x2948, - 0x6f6c, 0x293c, - 0x6f6d, 0x1190, - 0x6f6e, 0x1193, - 0x6f6f, 0x119b, - 0x6f70, 0x1196, - 0x6f72, 0x293f, - 0x6f73, 0x26ff, - 0x6f74, 0x4243, - 0x6f76, 0x293b, - 0x6f77, 0x2952, - 0x6f78, 0x1192, - 0x6f79, 0x3bbe, - 0x6f7a, 0x1195, - 0x6f7b, 0x2954, - 0x6f7c, 0x118a, - 0x6f7d, 0x2949, - 0x6f7e, 0x292f, - 0x6f7f, 0x294f, - 0x6f80, 0x13fc, - 0x6f81, 0x4687, - 0x6f82, 0x293d, - 0x6f84, 0x118b, - 0x6f85, 0x2938, - 0x6f86, 0x118f, - 0x6f87, 0x2930, - 0x6f88, 0x101a, - 0x6f89, 0x2934, - 0x6f8a, 0x4195, - 0x6f8b, 0x294d, - 0x6f8c, 0x2935, - 0x6f8d, 0x2933, - 0x6f8e, 0x1194, - 0x6f90, 0x294b, - 0x6f92, 0x2932, - 0x6f93, 0x2944, - 0x6f94, 0x2943, - 0x6f95, 0x2950, - 0x6f96, 0x293a, - 0x6f97, 0x1198, - 0x6f9d, 0x4239, - 0x6f9e, 0x2b9d, - 0x6f9f, 0x4246, - 0x6fa0, 0x12eb, - 0x6fa1, 0x12e1, - 0x6fa2, 0x2ba9, - 0x6fa3, 0x2b95, - 0x6fa4, 0x12e3, - 0x6fa5, 0x2ba1, - 0x6fa6, 0x12ea, - 0x6fa7, 0x12e5, - 0x6fa8, 0x2b9f, - 0x6fa9, 0x2d8e, - 0x6faa, 0x2ba5, - 0x6fab, 0x2bab, - 0x6fac, 0x2ba4, - 0x6fad, 0x2b93, - 0x6fae, 0x2ba2, - 0x6faf, 0x2bad, - 0x6fb0, 0x2baf, - 0x6fb1, 0x12e0, - 0x6fb2, 0x2bae, - 0x6fb3, 0x12e6, - 0x6fb4, 0x12ec, - 0x6fb5, 0x3e27, - 0x6fb6, 0x12e9, - 0x6fb8, 0x2ba8, - 0x6fb9, 0x12e8, - 0x6fba, 0x2ba3, - 0x6fbb, 0x3bbb, - 0x6fbc, 0x2b97, - 0x6fbd, 0x2b9c, - 0x6fbe, 0x4688, - 0x6fbf, 0x2ba7, - 0x6fc0, 0x12e7, - 0x6fc1, 0x12e4, - 0x6fc2, 0x12df, - 0x6fc3, 0x12e2, - 0x6fc4, 0x2b9b, - 0x6fc6, 0x2931, - 0x6fc7, 0x2b96, - 0x6fc8, 0x2b99, - 0x6fc9, 0x2baa, - 0x6fca, 0x2b9e, - 0x6fcb, 0x2b94, - 0x6fcc, 0x2d8d, - 0x6fcd, 0x2bac, - 0x6fce, 0x2b98, - 0x6fcf, 0x2ba6, - 0x6fd3, 0x4248, - 0x6fd4, 0x2d90, - 0x6fd5, 0x1400, - 0x6fd8, 0x13f4, - 0x6fd9, 0x3c74, - 0x6fda, 0x3c73, - 0x6fdb, 0x13f8, - 0x6fdc, 0x2d92, - 0x6fdd, 0x2d98, - 0x6fde, 0x2d96, - 0x6fdf, 0x13f6, - 0x6fe1, 0x13fe, - 0x6fe2, 0x2d99, - 0x6fe3, 0x2d91, - 0x6fe4, 0x13f9, - 0x6fe6, 0x2d95, - 0x6fe7, 0x2d94, - 0x6fe8, 0x2d9a, - 0x6fe9, 0x13ff, - 0x6feb, 0x13fa, - 0x6fec, 0x13fd, - 0x6fed, 0x2d93, - 0x6fee, 0x1401, - 0x6fef, 0x13fb, - 0x6ff0, 0x1402, - 0x6ff1, 0x13f5, - 0x6ff2, 0x2d97, - 0x6ff4, 0x2d8f, - 0x6ff6, 0x38a5, - 0x6ff7, 0x2f4e, - 0x6ff8, 0x4237, - 0x6ffa, 0x14eb, - 0x6ffb, 0x2f4b, - 0x6ffc, 0x2f4d, - 0x6ffe, 0x14e9, - 0x6fff, 0x2f49, - 0x7000, 0x2f4a, - 0x7001, 0x2f45, - 0x7003, 0x46e2, - 0x7004, 0x2ba0, - 0x7005, 0x2f46, - 0x7006, 0x14ea, - 0x7007, 0x2f42, - 0x7009, 0x14e7, - 0x700a, 0x2f4f, - 0x700b, 0x14e8, - 0x700c, 0x2f43, - 0x700e, 0x2f48, - 0x700f, 0x14ed, - 0x7011, 0x14ec, - 0x7014, 0x2f47, - 0x7015, 0x158f, - 0x7016, 0x30ad, - 0x7017, 0x30b3, - 0x7018, 0x1590, - 0x7019, 0x30aa, - 0x701a, 0x158d, - 0x701b, 0x158a, - 0x701c, 0x30b5, - 0x701d, 0x158e, - 0x701e, 0x3c76, - 0x701f, 0x158b, - 0x7020, 0x30ac, - 0x7021, 0x30af, - 0x7024, 0x30b4, - 0x7026, 0x2f4c, - 0x7027, 0x30ab, - 0x7028, 0x158c, - 0x7029, 0x30b2, - 0x702a, 0x31ef, - 0x702b, 0x30ae, - 0x702c, 0x468e, - 0x702f, 0x31e6, - 0x7030, 0x161d, - 0x7031, 0x31e9, - 0x7032, 0x161e, - 0x7033, 0x31f2, - 0x7034, 0x31e8, - 0x7035, 0x31e5, - 0x7037, 0x31e7, - 0x7038, 0x31eb, - 0x7039, 0x31ee, - 0x703a, 0x31ed, - 0x703b, 0x31f1, - 0x703c, 0x31e4, - 0x703e, 0x161c, - 0x703f, 0x31ec, - 0x7040, 0x31f0, - 0x7041, 0x31f3, - 0x7042, 0x31ea, - 0x7043, 0x32d8, - 0x7045, 0x32dd, - 0x7048, 0x32db, - 0x704a, 0x32da, - 0x704b, 0x4254, - 0x704c, 0x167a, - 0x7050, 0x4690, - 0x7051, 0x16c8, - 0x7052, 0x338c, - 0x7054, 0x4691, - 0x7055, 0x3389, - 0x7058, 0x16c9, - 0x705a, 0x3423, - 0x705b, 0x3422, - 0x705c, 0x3852, - 0x705d, 0x348a, - 0x705e, 0x1722, - 0x705f, 0x3488, - 0x7060, 0x348b, - 0x7061, 0x3489, - 0x7062, 0x34d0, - 0x7063, 0x1744, - 0x7064, 0x1752, - 0x7065, 0x351c, - 0x7066, 0x3506, - 0x7067, 0x3cf5, - 0x7068, 0x351b, - 0x7069, 0x3547, - 0x706b, 0x02e6, - 0x706c, 0x44f1, - 0x706f, 0x4692, - 0x7070, 0x03f2, - 0x7071, 0x180a, - 0x7074, 0x18c3, - 0x7075, 0x38c7, - 0x7076, 0x04e6, - 0x7078, 0x04e9, - 0x7079, 0x4099, - 0x707a, 0x18c4, - 0x707c, 0x04e7, - 0x707e, 0x4255, - 0x707f, 0x4693, - 0x7081, 0x4959, - 0x7082, 0x19f7, - 0x7083, 0x19f9, - 0x7084, 0x19f4, - 0x7085, 0x19f1, - 0x7086, 0x19f3, - 0x7089, 0x43f9, - 0x708a, 0x0643, - 0x708b, 0x40cb, - 0x708e, 0x0641, - 0x708f, 0x46b3, - 0x7091, 0x19f5, - 0x7092, 0x0642, - 0x7093, 0x19f2, - 0x7094, 0x19ef, - 0x7095, 0x0640, - 0x7096, 0x19f6, - 0x7098, 0x19f0, - 0x7099, 0x0644, - 0x709a, 0x19f8, - 0x709f, 0x1b66, - 0x70a0, 0x4742, - 0x70a1, 0x1b6a, - 0x70a3, 0x3972, - 0x70a4, 0x0790, - 0x70a5, 0x3cb7, - 0x70a6, 0x3d53, - 0x70a7, 0x4256, - 0x70a9, 0x1b6d, - 0x70ab, 0x0788, - 0x70ac, 0x078b, - 0x70ad, 0x078d, - 0x70ae, 0x078f, - 0x70af, 0x078c, - 0x70b0, 0x1b69, - 0x70b1, 0x1b68, - 0x70b3, 0x078a, - 0x70b4, 0x1b6b, - 0x70b7, 0x1b65, - 0x70b8, 0x078e, - 0x70b9, 0x3d69, - 0x70ba, 0x0789, - 0x70bb, 0x4812, - 0x70bc, 0x4559, - 0x70bd, 0x4270, - 0x70be, 0x1b67, - 0x70c0, 0x4733, - 0x70c4, 0x3baa, - 0x70c5, 0x1d27, - 0x70c8, 0x0921, - 0x70ca, 0x091d, - 0x70cb, 0x1d1e, - 0x70cc, 0x4258, - 0x70cd, 0x1d26, - 0x70ce, 0x1d2b, - 0x70cf, 0x0922, - 0x70d0, 0x396d, - 0x70d1, 0x1d1c, - 0x70d2, 0x1d22, - 0x70d3, 0x1d1b, - 0x70d4, 0x1d25, - 0x70d5, 0x4259, - 0x70d7, 0x1d21, - 0x70d8, 0x091e, - 0x70d9, 0x0920, - 0x70da, 0x1d2a, - 0x70dc, 0x1d1a, - 0x70dd, 0x1d1d, - 0x70de, 0x1d23, - 0x70df, 0x425b, - 0x70e0, 0x1d24, - 0x70e1, 0x1d2c, - 0x70e2, 0x1d20, - 0x70e4, 0x091f, - 0x70ef, 0x0b16, - 0x70f0, 0x1f72, - 0x70f1, 0x3ac8, - 0x70f3, 0x1f74, - 0x70f4, 0x1f70, - 0x70f5, 0x4760, - 0x70f6, 0x1f7c, - 0x70f7, 0x1f6e, - 0x70f8, 0x1f7b, - 0x70f9, 0x0b12, - 0x70fa, 0x1f6c, - 0x70fb, 0x21f2, - 0x70fc, 0x1f76, - 0x70fd, 0x0b15, - 0x70fe, 0x3d0e, - 0x70ff, 0x1f77, - 0x7100, 0x1f7a, - 0x7102, 0x1f7e, - 0x7104, 0x1f73, - 0x7105, 0x3a23, - 0x7106, 0x1f78, - 0x7109, 0x0b13, - 0x710b, 0x1f7d, - 0x710c, 0x1f71, - 0x710d, 0x1f6d, - 0x710e, 0x1f7f, - 0x7110, 0x1f75, - 0x7113, 0x1f79, - 0x7117, 0x1f6f, - 0x7119, 0x0cc8, - 0x711b, 0x21fc, - 0x711c, 0x0ccf, - 0x711d, 0x3d47, - 0x711e, 0x21f0, - 0x711f, 0x21f9, - 0x7120, 0x21ef, - 0x7121, 0x0ccc, - 0x7122, 0x21f7, - 0x7123, 0x21f5, - 0x7125, 0x21f6, - 0x7126, 0x0cca, - 0x7128, 0x21fa, - 0x7129, 0x3ba9, - 0x712b, 0x4261, - 0x712c, 0x426a, - 0x712e, 0x21f3, - 0x712f, 0x21f1, - 0x7130, 0x0ccb, - 0x7131, 0x21f4, - 0x7132, 0x21f8, - 0x7133, 0x3d54, - 0x7134, 0x3c7e, - 0x7135, 0x376d, - 0x7136, 0x0ccd, - 0x713a, 0x21fb, - 0x713b, 0x3ac5, - 0x713e, 0x372e, - 0x7140, 0x4398, - 0x7141, 0x247b, - 0x7142, 0x2482, - 0x7143, 0x2484, - 0x7144, 0x248a, - 0x7145, 0x4262, - 0x7146, 0x0e72, - 0x7147, 0x2476, - 0x7149, 0x0e6a, - 0x714a, 0x4264, - 0x714b, 0x2485, - 0x714c, 0x0e6f, - 0x714d, 0x248b, - 0x714e, 0x0e66, - 0x714f, 0x4267, - 0x7150, 0x2488, - 0x7151, 0x4865, - 0x7152, 0x2478, - 0x7153, 0x2489, - 0x7154, 0x2477, - 0x7156, 0x0e74, - 0x7158, 0x2483, - 0x7159, 0x0e67, - 0x715a, 0x248c, - 0x715c, 0x0e6c, - 0x715d, 0x247c, - 0x715e, 0x0e71, - 0x715f, 0x2487, - 0x7160, 0x247a, - 0x7161, 0x2481, - 0x7162, 0x247d, - 0x7163, 0x2479, - 0x7164, 0x0e69, - 0x7165, 0x0e70, - 0x7166, 0x0e6e, - 0x7167, 0x0e6b, - 0x7168, 0x0e73, - 0x7169, 0x0e68, - 0x716a, 0x2480, - 0x716b, 0x3cc5, - 0x716c, 0x0e6d, - 0x716e, 0x0cce, - 0x7170, 0x2486, - 0x7171, 0x3dc0, - 0x7172, 0x247e, - 0x7173, 0x47e7, - 0x7175, 0x3ced, - 0x7176, 0x4000, - 0x7177, 0x3957, - 0x7178, 0x247f, - 0x717a, 0x4924, - 0x717b, 0x271e, - 0x717c, 0x3835, - 0x717d, 0x1023, - 0x717e, 0x3970, - 0x7180, 0x271a, - 0x7181, 0x2720, - 0x7182, 0x271c, - 0x7184, 0x1025, - 0x7185, 0x271b, - 0x7186, 0x271f, - 0x7187, 0x2717, - 0x7188, 0x4706, - 0x7189, 0x2719, - 0x718a, 0x1024, - 0x718c, 0x39ea, - 0x718e, 0x3d3b, - 0x718f, 0x271d, - 0x7190, 0x2718, - 0x7192, 0x1026, - 0x7194, 0x1021, - 0x7196, 0x425f, - 0x7197, 0x2721, - 0x7198, 0x481d, - 0x7199, 0x1022, - 0x719a, 0x295a, - 0x719b, 0x2957, - 0x719c, 0x2963, - 0x719d, 0x295d, - 0x719e, 0x295f, - 0x719f, 0x119e, - 0x71a0, 0x2959, - 0x71a1, 0x2961, - 0x71a2, 0x48c1, - 0x71a3, 0x3ec8, - 0x71a4, 0x2960, - 0x71a5, 0x295e, - 0x71a7, 0x2964, - 0x71a8, 0x11a1, - 0x71a9, 0x295b, - 0x71aa, 0x2962, - 0x71ac, 0x119f, - 0x71ad, 0x3e1d, - 0x71af, 0x2956, - 0x71b0, 0x2958, - 0x71b1, 0x11a0, - 0x71b2, 0x2955, - 0x71b3, 0x2965, - 0x71b4, 0x425e, - 0x71b5, 0x295c, - 0x71b7, 0x468b, - 0x71b8, 0x2bb3, - 0x71b9, 0x12f3, - 0x71ba, 0x426e, - 0x71bc, 0x2bbe, - 0x71bd, 0x2bbc, - 0x71be, 0x12ed, - 0x71bf, 0x2bb2, - 0x71c0, 0x2bb5, - 0x71c2, 0x2bb1, - 0x71c3, 0x12f7, - 0x71c5, 0x2bb0, - 0x71c6, 0x2bbf, - 0x71c7, 0x2bba, - 0x71c8, 0x12f1, - 0x71c9, 0x12ee, - 0x71ca, 0x2bb9, - 0x71cb, 0x2bb7, - 0x71ce, 0x12f4, - 0x71cf, 0x2bbb, - 0x71d0, 0x12ef, - 0x71d1, 0x373d, - 0x71d2, 0x12f0, - 0x71d4, 0x2bb8, - 0x71d5, 0x12f2, - 0x71d6, 0x2bb4, - 0x71d8, 0x2bbd, - 0x71d9, 0x12f5, - 0x71da, 0x2bc0, - 0x71dc, 0x12f6, - 0x71dd, 0x4078, - 0x71df, 0x1404, - 0x71e0, 0x140b, - 0x71e1, 0x2d9b, - 0x71e2, 0x2da1, - 0x71e4, 0x2d9f, - 0x71e5, 0x1407, - 0x71e6, 0x1406, - 0x71e7, 0x1403, - 0x71e8, 0x2d9d, - 0x71eb, 0x3c81, - 0x71ec, 0x1409, - 0x71ed, 0x1408, - 0x71ee, 0x1405, - 0x71f0, 0x2da0, - 0x71f1, 0x2d9c, - 0x71f2, 0x2d9e, - 0x71f4, 0x140a, - 0x71f5, 0x46ee, - 0x71f6, 0x3e9a, - 0x71f8, 0x14f1, - 0x71f9, 0x2f52, - 0x71fb, 0x14ee, - 0x71fd, 0x2f54, - 0x71fe, 0x14f0, - 0x71ff, 0x2f51, - 0x7201, 0x2f50, - 0x7202, 0x30b9, - 0x7203, 0x2f53, - 0x7205, 0x30ba, - 0x7206, 0x1591, - 0x7207, 0x30b8, - 0x7209, 0x3dbb, - 0x720a, 0x30b7, - 0x720c, 0x30b6, - 0x720d, 0x1592, - 0x720e, 0x4271, - 0x720f, 0x39fc, - 0x7210, 0x161f, - 0x7213, 0x31f4, - 0x7215, 0x4273, - 0x7216, 0x3953, - 0x7217, 0x3969, - 0x7219, 0x32e1, - 0x721a, 0x32e0, - 0x721b, 0x167b, - 0x721d, 0x32df, - 0x721e, 0x338d, - 0x7222, 0x3424, - 0x7223, 0x348c, - 0x7224, 0x4276, - 0x7226, 0x34d1, - 0x7227, 0x3535, - 0x7228, 0x1766, - 0x7229, 0x3549, - 0x722a, 0x02e7, - 0x722b, 0x44f2, - 0x722c, 0x0645, - 0x722e, 0x4279, - 0x7230, 0x0791, - 0x7235, 0x140c, - 0x7236, 0x02e8, - 0x7238, 0x0647, - 0x7239, 0x0923, - 0x723a, 0x0e75, - 0x723b, 0x02e9, - 0x723d, 0x0b17, - 0x723e, 0x1027, - 0x723f, 0x178d, - 0x7240, 0x427a, - 0x7241, 0x1b6e, - 0x7242, 0x1d2d, - 0x7244, 0x2722, - 0x7246, 0x140d, - 0x7247, 0x02ea, - 0x7248, 0x0648, - 0x7249, 0x1b6f, - 0x724b, 0x21fd, - 0x724c, 0x0cd0, - 0x724f, 0x248d, - 0x7250, 0x3ac9, - 0x7252, 0x0e76, - 0x7253, 0x2723, - 0x7255, 0x427d, - 0x7256, 0x11a2, - 0x7257, 0x427e, - 0x7258, 0x1593, - 0x7259, 0x02eb, - 0x725a, 0x21fe, - 0x725b, 0x02ec, - 0x725c, 0x465a, - 0x725d, 0x03f4, - 0x725e, 0x180b, - 0x725f, 0x03f3, - 0x7260, 0x04ec, - 0x7261, 0x04eb, - 0x7262, 0x04ea, - 0x7263, 0x18c5, - 0x7266, 0x3ebb, - 0x7267, 0x0649, - 0x7269, 0x064a, - 0x726a, 0x19fa, - 0x726c, 0x1b71, - 0x726e, 0x1b74, - 0x726f, 0x0793, - 0x7270, 0x1b72, - 0x7272, 0x0792, - 0x7273, 0x1b73, - 0x7274, 0x0794, - 0x7276, 0x1d30, - 0x7277, 0x1d2f, - 0x7278, 0x1d2e, - 0x7279, 0x0924, - 0x727b, 0x1f81, - 0x727d, 0x0b18, - 0x727e, 0x1f80, - 0x727f, 0x1f83, - 0x7280, 0x0cd2, - 0x7281, 0x0b19, - 0x7282, 0x4283, - 0x7284, 0x0cd1, - 0x7285, 0x2202, - 0x7286, 0x2201, - 0x7287, 0x3aca, - 0x7288, 0x21ff, - 0x728b, 0x2203, - 0x728c, 0x248f, - 0x728d, 0x248e, - 0x728e, 0x2492, - 0x728f, 0x43c9, - 0x7290, 0x2491, - 0x7291, 0x2490, - 0x7292, 0x1028, - 0x7293, 0x2726, - 0x7294, 0x3acb, - 0x7295, 0x2725, - 0x7296, 0x1029, - 0x7297, 0x2724, - 0x7298, 0x2966, - 0x729a, 0x2967, - 0x729b, 0x11a3, - 0x729d, 0x2bc2, - 0x729f, 0x473a, - 0x72a1, 0x30bf, - 0x72a2, 0x1594, - 0x72a3, 0x30be, - 0x72a4, 0x30bd, - 0x72a5, 0x30bb, - 0x72a7, 0x167c, - 0x72a8, 0x31f6, - 0x72a9, 0x338f, - 0x72aa, 0x34d2, - 0x72ac, 0x02ed, - 0x72ad, 0x44f4, - 0x72ae, 0x17af, - 0x72af, 0x0355, - 0x72b0, 0x17b0, - 0x72b2, 0x3fb6, - 0x72b4, 0x180c, - 0x72ba, 0x18cb, - 0x72bd, 0x18c7, - 0x72bf, 0x18c6, - 0x72c0, 0x064b, - 0x72c1, 0x18ca, - 0x72c2, 0x04ee, - 0x72c3, 0x18c8, - 0x72c4, 0x04ed, - 0x72c5, 0x18cc, - 0x72c6, 0x18c9, - 0x72c9, 0x19fe, - 0x72ca, 0x1b75, - 0x72cb, 0x19fc, - 0x72cc, 0x1a03, - 0x72cd, 0x43ca, - 0x72ce, 0x064c, - 0x72d0, 0x064f, - 0x72d1, 0x1a04, - 0x72d2, 0x1a00, - 0x72d4, 0x1a01, - 0x72d6, 0x19fb, - 0x72d7, 0x064e, - 0x72d8, 0x19fd, - 0x72d9, 0x064d, - 0x72da, 0x1a02, - 0x72dc, 0x19ff, - 0x72df, 0x1b79, - 0x72e0, 0x0796, - 0x72e2, 0x3f97, - 0x72e3, 0x1b7c, - 0x72e4, 0x1b76, - 0x72e6, 0x1b7b, - 0x72e8, 0x1b77, - 0x72e9, 0x0795, - 0x72ea, 0x1b7a, - 0x72eb, 0x1b78, - 0x72f3, 0x1d36, - 0x72f4, 0x1d33, - 0x72f6, 0x1d35, - 0x72f7, 0x0929, - 0x72f8, 0x0928, - 0x72f9, 0x0926, - 0x72fa, 0x1d32, - 0x72fb, 0x1d37, - 0x72fc, 0x0925, - 0x72fd, 0x0927, - 0x72fe, 0x1d34, - 0x72ff, 0x1f8b, - 0x7300, 0x1d31, - 0x7301, 0x1d38, - 0x7302, 0x3f9a, - 0x7304, 0x3eb5, - 0x7307, 0x1f86, - 0x7308, 0x1f8a, - 0x730a, 0x1f89, - 0x730b, 0x2205, - 0x730c, 0x2210, - 0x730f, 0x1f8c, - 0x7310, 0x46ea, - 0x7311, 0x1f87, - 0x7312, 0x2204, - 0x7313, 0x0b1d, - 0x7316, 0x0b1c, - 0x7317, 0x1f85, - 0x7318, 0x1f88, - 0x7319, 0x0b1e, - 0x731b, 0x0b1b, - 0x731c, 0x0b1a, - 0x731d, 0x1f84, - 0x731e, 0x1f8d, - 0x7322, 0x2207, - 0x7323, 0x220e, - 0x7325, 0x0cd4, - 0x7326, 0x220d, - 0x7327, 0x220a, - 0x7328, 0x428a, - 0x7329, 0x0cd6, - 0x732a, 0x3d70, - 0x732b, 0x4285, - 0x732c, 0x3fb2, - 0x732d, 0x220c, - 0x732e, 0x428b, - 0x7330, 0x2206, - 0x7331, 0x2208, - 0x7332, 0x220b, - 0x7333, 0x2209, - 0x7334, 0x0cd5, - 0x7335, 0x220f, - 0x7336, 0x0cd3, - 0x7337, 0x0e77, - 0x7338, 0x46eb, - 0x7339, 0x43cc, - 0x733a, 0x2496, - 0x733b, 0x2495, - 0x733c, 0x2493, - 0x733e, 0x0e7a, - 0x733f, 0x0e79, - 0x7340, 0x2497, - 0x7341, 0x46ec, - 0x7342, 0x2494, - 0x7343, 0x2727, - 0x7344, 0x102a, - 0x7345, 0x0e78, - 0x7348, 0x43fa, - 0x7349, 0x2499, - 0x734a, 0x2498, - 0x734c, 0x272a, - 0x734d, 0x2728, - 0x734e, 0x11a4, - 0x734f, 0x3f51, - 0x7350, 0x102b, - 0x7351, 0x2729, - 0x7352, 0x2969, - 0x7357, 0x11a5, - 0x7358, 0x2968, - 0x7359, 0x2971, - 0x735a, 0x2970, - 0x735b, 0x296e, - 0x735d, 0x296d, - 0x735e, 0x296a, - 0x7361, 0x296f, - 0x7362, 0x2972, - 0x7365, 0x2bc8, - 0x7366, 0x2bc5, - 0x7368, 0x12f9, - 0x7369, 0x2bc4, - 0x736a, 0x2bca, - 0x736b, 0x2bc9, - 0x736c, 0x2bc7, - 0x736e, 0x2da3, - 0x7370, 0x140e, - 0x7371, 0x3f98, - 0x7372, 0x140f, - 0x7373, 0x2da2, - 0x7374, 0x3ed4, - 0x7375, 0x14f3, - 0x7376, 0x2f55, - 0x7377, 0x14f2, - 0x7378, 0x1595, - 0x737a, 0x1596, - 0x737b, 0x1620, - 0x737c, 0x31f8, - 0x737d, 0x31f7, - 0x737e, 0x32e2, - 0x737f, 0x3390, - 0x7380, 0x16ca, - 0x7381, 0x3426, - 0x7382, 0x3425, - 0x7383, 0x3427, - 0x7384, 0x0356, - 0x7385, 0x1b7d, - 0x7386, 0x092a, - 0x7387, 0x0b1f, - 0x7388, 0x1f8e, - 0x7389, 0x0357, - 0x738a, 0x17b1, - 0x738b, 0x02ee, - 0x738e, 0x180e, - 0x738f, 0x46e5, - 0x7392, 0x18d1, - 0x7393, 0x18cf, - 0x7395, 0x18cd, - 0x7396, 0x04ef, - 0x7397, 0x18ce, - 0x7398, 0x39f6, - 0x739c, 0x408a, - 0x739d, 0x1a0c, - 0x739e, 0x395b, - 0x739f, 0x0652, - 0x73a0, 0x1a0a, - 0x73a1, 0x1a06, - 0x73a2, 0x1a09, - 0x73a4, 0x1a05, - 0x73a5, 0x0654, - 0x73a6, 0x1a08, - 0x73a7, 0x4087, - 0x73a8, 0x0651, - 0x73a9, 0x0650, - 0x73aa, 0x428d, - 0x73ab, 0x0653, - 0x73ac, 0x1a0b, - 0x73ad, 0x1a07, - 0x73b2, 0x079b, - 0x73b3, 0x079e, - 0x73b4, 0x1b85, - 0x73b5, 0x1b84, - 0x73b6, 0x1b83, - 0x73b7, 0x0798, - 0x73b8, 0x1b8c, - 0x73b9, 0x1b82, - 0x73bb, 0x079a, - 0x73bc, 0x1d3d, - 0x73be, 0x1b89, - 0x73bf, 0x1b87, - 0x73c0, 0x079d, - 0x73c2, 0x1b7f, - 0x73c3, 0x1b8a, - 0x73c5, 0x1b81, - 0x73c6, 0x1b8b, - 0x73c7, 0x1b88, - 0x73c8, 0x1b80, - 0x73c9, 0x4290, - 0x73ca, 0x0799, - 0x73cb, 0x1b8d, - 0x73cc, 0x1b7e, - 0x73cd, 0x079c, - 0x73ce, 0x411b, - 0x73cf, 0x428c, - 0x73d0, 0x3b17, - 0x73d2, 0x1d42, - 0x73d3, 0x1d39, - 0x73d4, 0x1d44, - 0x73d5, 0x4073, - 0x73d6, 0x1d3c, - 0x73d7, 0x1d47, - 0x73d9, 0x1d3a, - 0x73da, 0x1d46, - 0x73db, 0x1d43, - 0x73dc, 0x1d41, - 0x73dd, 0x1d45, - 0x73de, 0x0930, - 0x73e0, 0x092e, - 0x73e1, 0x46f0, - 0x73e2, 0x3ca3, - 0x73e3, 0x1d3f, - 0x73e4, 0x42a5, - 0x73e5, 0x1d3b, - 0x73e6, 0x3cba, - 0x73e7, 0x1d3e, - 0x73e8, 0x1d49, - 0x73e9, 0x1d40, - 0x73ea, 0x092f, - 0x73eb, 0x1b86, - 0x73ed, 0x092b, - 0x73ee, 0x092d, - 0x73ef, 0x4011, - 0x73f3, 0x3cab, - 0x73f4, 0x1f9c, - 0x73f5, 0x1f91, - 0x73f6, 0x1f8f, - 0x73f7, 0x429a, - 0x73f8, 0x1f90, - 0x73f9, 0x3bf9, - 0x73fa, 0x1f97, - 0x73fb, 0x3cac, - 0x73fc, 0x1f98, - 0x73fd, 0x1f94, - 0x73fe, 0x0b24, - 0x73ff, 0x1f99, - 0x7400, 0x1f96, - 0x7401, 0x1f93, - 0x7403, 0x0b22, - 0x7404, 0x1f92, - 0x7405, 0x0b20, - 0x7406, 0x0b23, - 0x7407, 0x1f95, - 0x7408, 0x1f9d, - 0x7409, 0x092c, - 0x740a, 0x0b21, - 0x740b, 0x1f9b, - 0x740c, 0x1f9a, - 0x740d, 0x0b25, - 0x7411, 0x456c, - 0x7412, 0x3be6, - 0x7414, 0x39f4, - 0x7415, 0x429b, - 0x7416, 0x2215, - 0x7417, 0x40ad, - 0x7419, 0x46f3, - 0x741a, 0x2216, - 0x741b, 0x0ce0, - 0x741c, 0x38dd, - 0x741d, 0x221c, - 0x741e, 0x46f4, - 0x7420, 0x221e, - 0x7421, 0x2217, - 0x7422, 0x0cda, - 0x7423, 0x221b, - 0x7424, 0x221a, - 0x7425, 0x0cdb, - 0x7426, 0x0ce1, - 0x7428, 0x0ce2, - 0x7429, 0x221d, - 0x742a, 0x0cd8, - 0x742b, 0x2214, - 0x742c, 0x2212, - 0x742d, 0x2218, - 0x742e, 0x2211, - 0x742f, 0x0cdf, - 0x7430, 0x2213, - 0x7431, 0x2219, - 0x7432, 0x221f, - 0x7433, 0x0cd9, - 0x7434, 0x0cde, - 0x7435, 0x0cdc, - 0x7437, 0x3ae1, - 0x7438, 0x3b09, - 0x7439, 0x429e, - 0x743a, 0x0cd7, - 0x743c, 0x3adf, - 0x743f, 0x0e81, - 0x7440, 0x24a0, - 0x7441, 0x0e80, - 0x7442, 0x24a4, - 0x7443, 0x3a1a, - 0x7444, 0x249a, - 0x7445, 0x3bd7, - 0x7446, 0x24a5, - 0x7447, 0x42a4, - 0x7448, 0x3cb5, - 0x7449, 0x4291, - 0x744a, 0x249b, - 0x744d, 0x24a6, - 0x744e, 0x24a3, - 0x744f, 0x24a1, - 0x7451, 0x249e, - 0x7452, 0x249d, - 0x7453, 0x4231, - 0x7454, 0x24a7, - 0x7455, 0x0e7d, - 0x7456, 0x39f5, - 0x7457, 0x249f, - 0x7459, 0x0e82, - 0x745a, 0x0e7c, - 0x745b, 0x0e83, - 0x745d, 0x42c6, - 0x745e, 0x0e7f, - 0x745f, 0x0e7e, - 0x7460, 0x42a2, - 0x7462, 0x272b, - 0x7463, 0x102d, - 0x7464, 0x102c, - 0x7465, 0x4101, - 0x7467, 0x2730, - 0x7468, 0x3aee, - 0x7469, 0x11a6, - 0x746a, 0x102e, - 0x746b, 0x3be7, - 0x746c, 0x42a8, - 0x746d, 0x1030, - 0x746e, 0x2731, - 0x746f, 0x0e7b, - 0x7470, 0x102f, - 0x7471, 0x272d, - 0x7472, 0x272f, - 0x7473, 0x272c, - 0x7474, 0x42a9, - 0x7475, 0x272e, - 0x7476, 0x42a6, - 0x7479, 0x297c, - 0x747a, 0x3ad1, - 0x747c, 0x297b, - 0x747d, 0x2978, - 0x747e, 0x11a9, - 0x747f, 0x2bcb, - 0x7480, 0x11aa, - 0x7481, 0x2977, - 0x7482, 0x42ac, - 0x7483, 0x11a8, - 0x7485, 0x2979, - 0x7486, 0x2976, - 0x7487, 0x2973, - 0x7488, 0x297a, - 0x7489, 0x2974, - 0x748b, 0x11a7, - 0x748c, 0x3a21, - 0x748d, 0x469d, - 0x7490, 0x2da8, - 0x7492, 0x2bcf, - 0x7494, 0x2bce, - 0x7495, 0x2bd0, - 0x7497, 0x2da5, - 0x7498, 0x12fc, - 0x7499, 0x39f3, - 0x749a, 0x2bcc, - 0x749b, 0x3b0a, - 0x749c, 0x12fa, - 0x749e, 0x12fe, - 0x749f, 0x12fd, - 0x74a0, 0x2bcd, - 0x74a1, 0x2bd1, - 0x74a3, 0x12fb, - 0x74a4, 0x4170, - 0x74a5, 0x2dac, - 0x74a6, 0x1412, - 0x74a7, 0x14f4, - 0x74a8, 0x1413, - 0x74a9, 0x1410, - 0x74aa, 0x2da9, - 0x74ab, 0x2da7, - 0x74ad, 0x2daa, - 0x74af, 0x2dad, - 0x74b0, 0x1411, - 0x74b1, 0x2dab, - 0x74b2, 0x2da6, - 0x74b4, 0x3ca5, - 0x74b5, 0x2f58, - 0x74b6, 0x2f5b, - 0x74b7, 0x30c2, - 0x74b8, 0x2f56, - 0x74ba, 0x31f9, - 0x74bb, 0x2f5c, - 0x74bd, 0x1597, - 0x74be, 0x2f5a, - 0x74bf, 0x14f5, - 0x74c0, 0x2f57, - 0x74c1, 0x2f59, - 0x74c2, 0x2f5d, - 0x74c3, 0x30c3, - 0x74c5, 0x30c1, - 0x74c8, 0x42b5, - 0x74ca, 0x1598, - 0x74cb, 0x30c0, - 0x74cc, 0x3ade, - 0x74cf, 0x1621, - 0x74d0, 0x3a9b, - 0x74d3, 0x46fa, - 0x74d4, 0x167e, - 0x74d5, 0x3392, - 0x74d6, 0x167d, - 0x74d7, 0x3394, - 0x74d8, 0x3391, - 0x74d9, 0x3393, - 0x74da, 0x16fe, - 0x74db, 0x348d, - 0x74dc, 0x0358, - 0x74dd, 0x1a0d, - 0x74de, 0x1d4a, - 0x74e0, 0x0b26, - 0x74e1, 0x24a8, - 0x74e2, 0x12ff, - 0x74e3, 0x1599, - 0x74e4, 0x16cb, - 0x74e5, 0x348e, - 0x74e6, 0x0359, - 0x74e7, 0x3ffe, - 0x74e8, 0x1a0e, - 0x74e9, 0x0120, - 0x74ec, 0x1b8e, - 0x74ee, 0x1b8f, - 0x74f0, 0x3fe6, - 0x74f1, 0x3f9b, - 0x74f2, 0x3fdf, - 0x74f4, 0x1d4c, - 0x74f6, 0x0b27, - 0x74f8, 0x3ff4, - 0x74fb, 0x2220, - 0x74fd, 0x24ab, - 0x74fe, 0x24aa, - 0x74ff, 0x24a9, - 0x7500, 0x2732, - 0x7502, 0x2733, - 0x7504, 0x1031, - 0x7505, 0x3fde, - 0x7507, 0x297e, - 0x7508, 0x297d, - 0x750b, 0x2bd2, - 0x750c, 0x1300, - 0x750e, 0x42b7, - 0x750f, 0x2db1, - 0x7510, 0x2dae, - 0x7513, 0x2f5f, - 0x7514, 0x2f5e, - 0x7515, 0x14f6, - 0x7516, 0x30c4, - 0x7517, 0x32e3, - 0x7518, 0x035a, - 0x7519, 0x4583, - 0x751a, 0x079f, - 0x751c, 0x0b29, - 0x751d, 0x24ac, - 0x751e, 0x42b8, - 0x751f, 0x035b, - 0x7521, 0x1d4e, - 0x7522, 0x0b2a, - 0x7525, 0x0ce3, - 0x7528, 0x035c, - 0x752a, 0x180f, - 0x752b, 0x04f1, - 0x752c, 0x04f0, - 0x752d, 0x07a0, - 0x752e, 0x1b90, - 0x752f, 0x2221, - 0x7530, 0x035e, - 0x7534, 0x3e87, - 0x7535, 0x455a, - 0x7537, 0x04f2, - 0x7539, 0x18d3, - 0x753a, 0x18d2, - 0x753b, 0x3dfb, - 0x753d, 0x0655, - 0x753e, 0x1a11, - 0x753f, 0x1a0f, - 0x7542, 0x43cd, - 0x7546, 0x3f40, - 0x7547, 0x1b91, - 0x754a, 0x42bf, - 0x754b, 0x07a4, - 0x754c, 0x07a2, - 0x754d, 0x42be, - 0x754e, 0x07a3, - 0x754f, 0x07a1, - 0x7551, 0x3cfe, - 0x7553, 0x3feb, - 0x7554, 0x0931, - 0x7555, 0x3aea, - 0x7559, 0x0935, - 0x755a, 0x0934, - 0x755b, 0x1d4f, - 0x755c, 0x0933, - 0x755d, 0x0932, - 0x755f, 0x1d50, - 0x7560, 0x3d71, - 0x7562, 0x0b2d, - 0x7563, 0x1f9f, - 0x7564, 0x1f9e, - 0x7565, 0x0b2b, - 0x7567, 0x42c0, - 0x756a, 0x0ce6, - 0x756b, 0x0ce5, - 0x756c, 0x2223, - 0x756d, 0x46fd, - 0x756e, 0x42c1, - 0x756f, 0x2222, - 0x7570, 0x0b2e, - 0x7572, 0x46fe, - 0x7576, 0x0e85, - 0x7577, 0x24ae, - 0x7578, 0x0e86, - 0x7579, 0x24ad, - 0x757a, 0x3f4f, - 0x757d, 0x2735, - 0x757e, 0x297f, - 0x757f, 0x11ab, - 0x7580, 0x2bd3, - 0x7583, 0x3ae5, - 0x7584, 0x2db2, - 0x7586, 0x159b, - 0x7587, 0x159a, - 0x758a, 0x16cc, - 0x758b, 0x0362, - 0x758c, 0x1a12, - 0x758d, 0x46ff, - 0x758e, 0x42c5, - 0x758f, 0x0b2f, - 0x7590, 0x2736, - 0x7591, 0x1032, - 0x7592, 0x022e, - 0x7594, 0x18d4, - 0x7598, 0x1a13, - 0x7599, 0x0657, - 0x759d, 0x0656, - 0x759e, 0x42c7, - 0x75a2, 0x07a8, - 0x75a4, 0x07a6, - 0x75a7, 0x1b93, - 0x75aa, 0x1b94, - 0x75ab, 0x07a5, - 0x75b0, 0x1d51, - 0x75b1, 0x3ead, - 0x75b2, 0x0939, - 0x75b4, 0x42c8, - 0x75b5, 0x0b32, - 0x75b6, 0x1d57, - 0x75b8, 0x093f, - 0x75b9, 0x093d, - 0x75ba, 0x1d58, - 0x75bb, 0x1d53, - 0x75bc, 0x093c, - 0x75bd, 0x093b, - 0x75be, 0x0936, - 0x75bf, 0x1d56, - 0x75c0, 0x1d55, - 0x75c1, 0x1d52, - 0x75c2, 0x093e, - 0x75c3, 0x3f93, - 0x75c4, 0x1d54, - 0x75c5, 0x0937, - 0x75c7, 0x0938, - 0x75c8, 0x4701, - 0x75ca, 0x0b33, - 0x75cb, 0x1fa3, - 0x75cd, 0x0b34, - 0x75ce, 0x1fa0, - 0x75cf, 0x1fa2, - 0x75d0, 0x1fa6, - 0x75d1, 0x1fa5, - 0x75d2, 0x1fa1, - 0x75d4, 0x0b30, - 0x75d7, 0x222b, - 0x75d8, 0x0ceb, - 0x75d9, 0x0cea, - 0x75da, 0x2225, - 0x75db, 0x0ce8, - 0x75dc, 0x43ce, - 0x75dd, 0x2228, - 0x75de, 0x0cec, - 0x75df, 0x2229, - 0x75e0, 0x0ced, - 0x75e1, 0x2226, - 0x75e2, 0x0ce7, - 0x75e3, 0x0ce9, - 0x75e4, 0x222a, - 0x75e6, 0x2227, - 0x75e7, 0x2224, - 0x75ed, 0x24bb, - 0x75ef, 0x24b0, - 0x75f0, 0x0e88, - 0x75f1, 0x0e8b, - 0x75f2, 0x0e8a, - 0x75f3, 0x0e8f, - 0x75f4, 0x0e8e, - 0x75f5, 0x24bc, - 0x75f6, 0x24ba, - 0x75f7, 0x24b3, - 0x75f8, 0x24b7, - 0x75f9, 0x24b6, - 0x75fa, 0x0e8c, - 0x75fb, 0x24b9, - 0x75fc, 0x24b5, - 0x75fd, 0x24bd, - 0x75fe, 0x24b4, - 0x75ff, 0x0e8d, - 0x7600, 0x0e87, - 0x7601, 0x0e89, - 0x7602, 0x42c9, - 0x7603, 0x24b2, - 0x7607, 0x3f8f, - 0x7608, 0x2738, - 0x7609, 0x1036, - 0x760a, 0x273c, - 0x760b, 0x1035, - 0x760c, 0x2739, - 0x760d, 0x1034, - 0x760f, 0x24b1, - 0x7610, 0x24b8, - 0x7611, 0x273b, - 0x7613, 0x1037, - 0x7614, 0x273d, - 0x7615, 0x273a, - 0x7616, 0x2737, - 0x7619, 0x2982, - 0x761a, 0x2986, - 0x761b, 0x2988, - 0x761c, 0x2984, - 0x761d, 0x2983, - 0x761e, 0x2981, - 0x761f, 0x11ae, - 0x7620, 0x11ac, - 0x7621, 0x11b1, - 0x7623, 0x2985, - 0x7624, 0x11af, - 0x7625, 0x2980, - 0x7626, 0x11b0, - 0x7627, 0x1033, - 0x7628, 0x2987, - 0x7629, 0x11ad, - 0x762c, 0x42ca, - 0x762d, 0x2bd5, - 0x762f, 0x2bd4, - 0x7630, 0x2bdc, - 0x7631, 0x2bd6, - 0x7632, 0x2bdb, - 0x7633, 0x2bd8, - 0x7634, 0x1302, - 0x7635, 0x2bda, - 0x7638, 0x1303, - 0x763a, 0x1304, - 0x763b, 0x3e70, - 0x763c, 0x2bd9, - 0x763d, 0x2bd7, - 0x7640, 0x3ee6, - 0x7642, 0x1415, - 0x7643, 0x2db3, - 0x7646, 0x1414, - 0x7647, 0x2db6, - 0x7648, 0x2db4, - 0x764c, 0x1416, - 0x764d, 0x4702, - 0x764e, 0x3e72, - 0x764f, 0x42cc, - 0x7650, 0x2f63, - 0x7651, 0x42cb, - 0x7652, 0x14f9, - 0x7653, 0x2f64, - 0x7654, 0x3ef0, - 0x7656, 0x14f7, - 0x7657, 0x2f65, - 0x7658, 0x14f8, - 0x7659, 0x2f62, - 0x765a, 0x2f66, - 0x765c, 0x2f60, - 0x765f, 0x159c, - 0x7660, 0x30c5, - 0x7661, 0x159d, - 0x7662, 0x1622, - 0x7664, 0x2f61, - 0x7665, 0x1623, - 0x7666, 0x3eaa, - 0x7667, 0x3fa9, - 0x7669, 0x167f, - 0x766a, 0x32e4, - 0x766c, 0x16ce, - 0x766d, 0x3395, - 0x766e, 0x16cd, - 0x766f, 0x42cd, - 0x7670, 0x3428, - 0x7671, 0x1723, - 0x7673, 0x3aeb, - 0x7674, 0x4703, - 0x7675, 0x3543, - 0x7676, 0x022f, - 0x7678, 0x07aa, - 0x7679, 0x1b95, - 0x767a, 0x4705, - 0x767b, 0x0cee, - 0x767d, 0x0363, - 0x767e, 0x03f5, - 0x767f, 0x1810, - 0x7680, 0x43d3, - 0x7681, 0x18d6, - 0x7682, 0x04f4, - 0x7684, 0x0659, - 0x7686, 0x07ab, - 0x7689, 0x1fa8, - 0x768a, 0x1d59, - 0x768b, 0x0940, - 0x768c, 0x43d4, - 0x768e, 0x0b35, - 0x768f, 0x1fa7, - 0x7690, 0x42d0, - 0x7692, 0x222d, - 0x7693, 0x0cf1, - 0x7695, 0x222c, - 0x7696, 0x0cf0, - 0x7699, 0x24be, - 0x769a, 0x11b3, - 0x769b, 0x298c, - 0x769c, 0x2989, - 0x76a1, 0x42d5, - 0x76a4, 0x2db7, - 0x76a5, 0x42d6, - 0x76a6, 0x2f67, - 0x76aa, 0x31fb, - 0x76ab, 0x31fa, - 0x76ad, 0x3396, - 0x76ae, 0x0364, - 0x76af, 0x1a14, - 0x76b0, 0x0941, - 0x76b4, 0x0cf2, - 0x76b5, 0x24bf, - 0x76b7, 0x42d7, - 0x76b8, 0x273e, - 0x76ba, 0x11b4, - 0x76bb, 0x2bdd, - 0x76bd, 0x2f68, - 0x76be, 0x31fc, - 0x76bf, 0x0365, - 0x76c2, 0x065a, - 0x76c3, 0x07b0, - 0x76c4, 0x1b96, - 0x76c5, 0x07b1, - 0x76c6, 0x07af, - 0x76c8, 0x07ae, - 0x76c9, 0x1d5a, - 0x76ca, 0x0942, - 0x76cc, 0x42d8, - 0x76cd, 0x0943, - 0x76d2, 0x0b37, - 0x76d3, 0x1fa9, - 0x76d4, 0x0b36, - 0x76d6, 0x3f55, - 0x76da, 0x222e, - 0x76db, 0x0b38, - 0x76dc, 0x0cf3, - 0x76dd, 0x24c0, - 0x76de, 0x0e90, - 0x76e1, 0x1038, - 0x76e3, 0x1039, - 0x76e4, 0x11b5, - 0x76e5, 0x1306, - 0x76e6, 0x2bde, - 0x76e7, 0x1305, - 0x76e9, 0x2db8, - 0x76ea, 0x1417, - 0x76ec, 0x2f69, - 0x76ed, 0x31fd, - 0x76ee, 0x0366, - 0x76ef, 0x04f5, - 0x76f0, 0x1a17, - 0x76f1, 0x1a16, - 0x76f2, 0x065b, - 0x76f3, 0x1a15, - 0x76f4, 0x065c, - 0x76f5, 0x1a18, - 0x76f7, 0x1b9c, - 0x76f8, 0x07b4, - 0x76f9, 0x07b3, - 0x76fa, 0x1b9e, - 0x76fb, 0x1b9d, - 0x76fc, 0x07b8, - 0x76fe, 0x07b7, - 0x7701, 0x07b2, - 0x7703, 0x1b98, - 0x7707, 0x07b9, - 0x7708, 0x1b97, - 0x7709, 0x07b5, - 0x770a, 0x1b9b, - 0x770b, 0x07b6, - 0x770c, 0x3d62, - 0x770e, 0x3b02, - 0x7710, 0x1d5d, - 0x7711, 0x1d61, - 0x7712, 0x1d5f, - 0x7713, 0x1d5e, - 0x7715, 0x1d62, - 0x7719, 0x1d63, - 0x771b, 0x1d5c, - 0x771d, 0x1d5b, - 0x771e, 0x42de, - 0x771f, 0x0946, - 0x7722, 0x1d65, - 0x7723, 0x1d60, - 0x7724, 0x3fe8, - 0x7725, 0x1fb2, - 0x7726, 0x42df, - 0x7727, 0x1d66, - 0x7728, 0x0948, - 0x7729, 0x0945, - 0x772b, 0x3ff3, - 0x772d, 0x1fac, - 0x772f, 0x1fab, - 0x7731, 0x1fad, - 0x7733, 0x1fb0, - 0x7734, 0x1faf, - 0x7735, 0x1fb4, - 0x7736, 0x0b3c, - 0x7737, 0x0b39, - 0x7738, 0x0b3d, - 0x7739, 0x1faa, - 0x773a, 0x0b3e, - 0x773b, 0x1fb3, - 0x773c, 0x0b3b, - 0x773d, 0x1fb1, - 0x773e, 0x0b3a, - 0x7740, 0x42e0, - 0x7743, 0x470a, - 0x7744, 0x2231, - 0x7745, 0x2233, - 0x7746, 0x222f, - 0x774a, 0x2234, - 0x774b, 0x2236, - 0x774d, 0x2232, - 0x774e, 0x2235, - 0x774f, 0x0cf4, - 0x7752, 0x24c4, - 0x7754, 0x24c9, - 0x7755, 0x24c1, - 0x7756, 0x24c5, - 0x7758, 0x42e3, - 0x7759, 0x24ca, - 0x775a, 0x24c6, - 0x775b, 0x0e92, - 0x775c, 0x0e9a, - 0x775e, 0x0e95, - 0x775f, 0x24c2, - 0x7761, 0x103d, - 0x7762, 0x0e9d, - 0x7763, 0x0e96, - 0x7765, 0x0e9b, - 0x7766, 0x0e94, - 0x7767, 0x24c8, - 0x7768, 0x0e9c, - 0x7769, 0x24c7, - 0x776a, 0x0e98, - 0x776b, 0x0e93, - 0x776c, 0x0e99, - 0x776d, 0x24cb, - 0x776e, 0x2743, - 0x776f, 0x2745, - 0x7772, 0x396b, - 0x7777, 0x46a9, - 0x7778, 0x3b00, - 0x7779, 0x0e97, - 0x777a, 0x4317, - 0x777b, 0x3b04, - 0x777c, 0x2740, - 0x777d, 0x103b, - 0x777e, 0x2746, - 0x777f, 0x103c, - 0x7780, 0x2744, - 0x7781, 0x273f, - 0x7782, 0x2742, - 0x7783, 0x2747, - 0x7784, 0x103a, - 0x7785, 0x2741, - 0x7787, 0x11b7, - 0x7788, 0x2990, - 0x7789, 0x298f, - 0x778b, 0x11ba, - 0x778c, 0x11b8, - 0x778d, 0x298d, - 0x778e, 0x11b6, - 0x778f, 0x298e, - 0x7791, 0x11b9, - 0x7793, 0x382d, - 0x7795, 0x2be6, - 0x7797, 0x2be8, - 0x7798, 0x470e, - 0x7799, 0x2be7, - 0x779a, 0x2bdf, - 0x779b, 0x2be3, - 0x779c, 0x2be2, - 0x779d, 0x2be0, - 0x779e, 0x1308, - 0x77a0, 0x1307, - 0x77a1, 0x2be1, - 0x77a2, 0x2be4, - 0x77a5, 0x130a, - 0x77a7, 0x141c, - 0x77a8, 0x2dc0, - 0x77aa, 0x1419, - 0x77ab, 0x2dba, - 0x77ac, 0x141b, - 0x77ad, 0x141d, - 0x77af, 0x42e5, - 0x77b0, 0x141a, - 0x77b1, 0x2dbf, - 0x77b2, 0x2dbb, - 0x77b3, 0x1418, - 0x77b4, 0x2dbe, - 0x77b5, 0x2db9, - 0x77b6, 0x2dbd, - 0x77b7, 0x2dbc, - 0x77b9, 0x3e73, - 0x77ba, 0x2f6b, - 0x77bb, 0x14fc, - 0x77bd, 0x14fa, - 0x77be, 0x4711, - 0x77bf, 0x14fb, - 0x77c2, 0x2f6a, - 0x77c3, 0x3bb1, - 0x77c4, 0x30c8, - 0x77c5, 0x41c1, - 0x77c7, 0x159e, - 0x77c9, 0x30c6, - 0x77cb, 0x4712, - 0x77cc, 0x31fe, - 0x77cd, 0x3201, - 0x77ce, 0x31ff, - 0x77d0, 0x32e5, - 0x77d3, 0x1680, - 0x77d4, 0x3429, - 0x77d5, 0x348f, - 0x77d7, 0x1725, - 0x77d8, 0x34d3, - 0x77da, 0x1753, - 0x77db, 0x0367, - 0x77dc, 0x07ba, - 0x77de, 0x2238, - 0x77e0, 0x24cc, - 0x77e2, 0x0368, - 0x77e3, 0x04f6, - 0x77e5, 0x065d, - 0x77e6, 0x4081, - 0x77e7, 0x1b9f, - 0x77e9, 0x0949, - 0x77ec, 0x2239, - 0x77ed, 0x0cf5, - 0x77ee, 0x0e9e, - 0x77ef, 0x141e, - 0x77f0, 0x2dc1, - 0x77f1, 0x30c9, - 0x77f2, 0x3202, - 0x77f3, 0x0369, - 0x77f4, 0x42e9, - 0x77f7, 0x1a1e, - 0x77f8, 0x1a19, - 0x77f9, 0x1a1b, - 0x77fa, 0x1a1d, - 0x77fb, 0x1a1c, - 0x77fc, 0x1a1a, - 0x77fd, 0x065e, - 0x77fe, 0x3fd5, - 0x7802, 0x07bb, - 0x7803, 0x1ba9, - 0x7805, 0x1ba4, - 0x7806, 0x1ba1, - 0x7808, 0x3e46, - 0x7809, 0x1ba8, - 0x780c, 0x07bd, - 0x780e, 0x1ba7, - 0x780f, 0x1ba6, - 0x7810, 0x1ba5, - 0x7811, 0x1ba2, - 0x7813, 0x1baa, - 0x7814, 0x07bc, - 0x7818, 0x4713, - 0x781c, 0x4714, - 0x781d, 0x094d, - 0x781e, 0x3b13, - 0x781f, 0x0953, - 0x7820, 0x0952, - 0x7821, 0x1d6f, - 0x7822, 0x1d69, - 0x7823, 0x1d67, - 0x7825, 0x0950, - 0x7826, 0x1fbb, - 0x7827, 0x094b, - 0x7828, 0x1d6c, - 0x7829, 0x1d70, - 0x782a, 0x1d72, - 0x782b, 0x1d6e, - 0x782c, 0x1d68, - 0x782d, 0x0951, - 0x782e, 0x1d6d, - 0x782f, 0x1d6b, - 0x7830, 0x094a, - 0x7831, 0x1d73, - 0x7832, 0x0954, - 0x7833, 0x1d71, - 0x7834, 0x094e, - 0x7835, 0x1d6a, - 0x7837, 0x094f, - 0x7838, 0x094c, - 0x7839, 0x43d6, - 0x783c, 0x401a, - 0x783d, 0x3c6a, - 0x7842, 0x3ac4, - 0x7843, 0x0b40, - 0x7844, 0x3c2b, - 0x7845, 0x1fbc, - 0x7847, 0x4715, - 0x7848, 0x1fb5, - 0x7849, 0x1fb7, - 0x784a, 0x1fb9, - 0x784b, 0x3c6d, - 0x784c, 0x1fba, - 0x784d, 0x1fb8, - 0x784e, 0x0b41, - 0x7850, 0x1fbd, - 0x7851, 0x4716, - 0x7852, 0x1fb6, - 0x7853, 0x3f95, - 0x7854, 0x3c6b, - 0x785c, 0x223d, - 0x785d, 0x0cf6, - 0x785e, 0x2245, - 0x7860, 0x223a, - 0x7862, 0x2246, - 0x7864, 0x223b, - 0x7866, 0x4717, - 0x7868, 0x2244, - 0x7869, 0x2243, - 0x786a, 0x2240, - 0x786b, 0x0b3f, - 0x786c, 0x0cf7, - 0x786d, 0x223e, - 0x786e, 0x2241, - 0x786f, 0x0cf8, - 0x7870, 0x2242, - 0x7871, 0x223f, - 0x7879, 0x24d7, - 0x787a, 0x3ee9, - 0x787b, 0x24db, - 0x787c, 0x0ea5, - 0x787e, 0x274d, - 0x787f, 0x0ea8, - 0x7880, 0x24d9, - 0x7881, 0x36e8, - 0x7883, 0x24d6, - 0x7884, 0x24d1, - 0x7885, 0x24d3, - 0x7887, 0x24cd, - 0x7888, 0x3b15, - 0x7889, 0x0ea4, - 0x788c, 0x0ea3, - 0x788d, 0x3b14, - 0x788e, 0x0e9f, - 0x788f, 0x24d0, - 0x7891, 0x0ea6, - 0x7893, 0x0ea7, - 0x7894, 0x24cf, - 0x7895, 0x24d2, - 0x7896, 0x24da, - 0x7897, 0x0ea1, - 0x7899, 0x24d8, - 0x789a, 0x24ce, - 0x789e, 0x274f, - 0x789f, 0x103f, - 0x78a0, 0x2751, - 0x78a1, 0x24d5, - 0x78a2, 0x2753, - 0x78a3, 0x1043, - 0x78a4, 0x2754, - 0x78a5, 0x2750, - 0x78a7, 0x1040, - 0x78a8, 0x274c, - 0x78a9, 0x1042, - 0x78aa, 0x2749, - 0x78ab, 0x274e, - 0x78ac, 0x2752, - 0x78ad, 0x274b, - 0x78af, 0x42ec, - 0x78b0, 0x0ea0, - 0x78b1, 0x42f4, - 0x78b2, 0x2748, - 0x78b3, 0x1041, - 0x78b4, 0x274a, - 0x78b6, 0x3c6c, - 0x78b8, 0x4571, - 0x78b9, 0x3c63, - 0x78ba, 0x11bd, - 0x78bb, 0x2992, - 0x78bc, 0x11c1, - 0x78be, 0x11bf, - 0x78c1, 0x103e, - 0x78c3, 0x2999, - 0x78c5, 0x11bc, - 0x78c7, 0x42ed, - 0x78c8, 0x2998, - 0x78c9, 0x299b, - 0x78ca, 0x11be, - 0x78cb, 0x11bb, - 0x78cc, 0x2994, - 0x78cd, 0x2991, - 0x78ce, 0x2996, - 0x78cf, 0x2993, - 0x78d0, 0x11c2, - 0x78d1, 0x2995, - 0x78d2, 0x3b16, - 0x78d3, 0x42ee, - 0x78d4, 0x2997, - 0x78d5, 0x11c0, - 0x78d7, 0x42f2, - 0x78d8, 0x3f8c, - 0x78da, 0x130c, - 0x78db, 0x2bef, - 0x78dd, 0x2be9, - 0x78de, 0x2bed, - 0x78df, 0x2bf3, - 0x78e1, 0x2bf0, - 0x78e3, 0x2bee, - 0x78e5, 0x2beb, - 0x78e7, 0x130e, - 0x78e8, 0x130b, - 0x78e9, 0x2bea, - 0x78ea, 0x2bec, - 0x78ec, 0x130d, - 0x78ed, 0x2bf2, - 0x78ee, 0x3a81, - 0x78ef, 0x1422, - 0x78f0, 0x3b3a, - 0x78f1, 0x40be, - 0x78f2, 0x2dc8, - 0x78f3, 0x2dc2, - 0x78f4, 0x1421, - 0x78f5, 0x38b3, - 0x78f7, 0x141f, - 0x78f9, 0x2dca, - 0x78fa, 0x1420, - 0x78fb, 0x2dc5, - 0x78fd, 0x2dc3, - 0x78fe, 0x2dcb, - 0x78ff, 0x2dc7, - 0x7901, 0x1423, - 0x7902, 0x2dc4, - 0x7904, 0x2dcc, - 0x7905, 0x2dc9, - 0x7906, 0x3fcf, - 0x7909, 0x2f6f, - 0x790c, 0x2f6c, - 0x790e, 0x14fe, - 0x7910, 0x2f70, - 0x7911, 0x2f72, - 0x7912, 0x2f71, - 0x7913, 0x2f6d, - 0x7917, 0x30ce, - 0x7919, 0x159f, - 0x791b, 0x30cb, - 0x791c, 0x30cd, - 0x791d, 0x30ca, - 0x791e, 0x30cf, - 0x7921, 0x30cc, - 0x7923, 0x3204, - 0x7924, 0x3207, - 0x7925, 0x3203, - 0x7926, 0x1624, - 0x7927, 0x3205, - 0x7929, 0x3208, - 0x792a, 0x1625, - 0x792b, 0x1627, - 0x792c, 0x1626, - 0x792d, 0x32e6, - 0x792e, 0x42f0, - 0x792f, 0x32e8, - 0x7931, 0x32e7, - 0x7932, 0x471b, - 0x7933, 0x471a, - 0x7934, 0x42f3, - 0x7935, 0x3397, - 0x7936, 0x3783, - 0x7938, 0x3490, - 0x7939, 0x34d5, - 0x793a, 0x036a, - 0x793b, 0x44f7, - 0x793c, 0x4300, - 0x793d, 0x18d7, - 0x793e, 0x065f, - 0x793f, 0x1a20, - 0x7940, 0x0660, - 0x7942, 0x1a1f, - 0x7944, 0x1baf, - 0x7945, 0x1bae, - 0x7946, 0x07bf, - 0x7947, 0x07c2, - 0x7948, 0x07c1, - 0x7949, 0x07c0, - 0x794a, 0x1bab, - 0x794b, 0x1bad, - 0x794c, 0x1bac, - 0x794f, 0x1d76, - 0x7950, 0x0956, - 0x7951, 0x1d7a, - 0x7952, 0x1d79, - 0x7953, 0x1d78, - 0x7954, 0x1d74, - 0x7955, 0x0955, - 0x7956, 0x0959, - 0x7957, 0x095c, - 0x7958, 0x37e5, - 0x7959, 0x3b18, - 0x795a, 0x095d, - 0x795b, 0x1d75, - 0x795c, 0x1d77, - 0x795d, 0x095b, - 0x795e, 0x095a, - 0x795f, 0x0958, - 0x7960, 0x0957, - 0x7961, 0x1fc4, - 0x7962, 0x3e7d, - 0x7963, 0x1fc2, - 0x7964, 0x1fbe, - 0x7965, 0x0b42, - 0x7967, 0x1fbf, - 0x7968, 0x0b43, - 0x7969, 0x1fc0, - 0x796b, 0x1fc3, - 0x796d, 0x0b44, - 0x7970, 0x224a, - 0x7971, 0x4168, - 0x7972, 0x2249, - 0x7973, 0x2248, - 0x7974, 0x2247, - 0x7979, 0x24df, - 0x797a, 0x0ea9, - 0x797c, 0x24dc, - 0x797d, 0x24de, - 0x797e, 0x3e26, - 0x797f, 0x0eaa, - 0x7980, 0x42fc, - 0x7981, 0x0eab, - 0x7982, 0x24dd, - 0x7983, 0x3df6, - 0x7986, 0x42f9, - 0x7987, 0x4588, - 0x7988, 0x275d, - 0x798a, 0x2756, - 0x798d, 0x1046, - 0x798e, 0x1044, - 0x7990, 0x275f, - 0x7991, 0x471d, - 0x7992, 0x275e, - 0x7993, 0x275b, - 0x7994, 0x275a, - 0x7995, 0x2759, - 0x7996, 0x2758, - 0x7997, 0x275c, - 0x7998, 0x2755, - 0x7999, 0x43fc, - 0x799a, 0x299c, - 0x799b, 0x29a1, - 0x799c, 0x299f, - 0x799d, 0x42fe, - 0x799f, 0x395e, - 0x79a0, 0x299e, - 0x79a1, 0x299d, - 0x79a2, 0x29a0, - 0x79a4, 0x2bf5, - 0x79a5, 0x3b1e, - 0x79a6, 0x130f, - 0x79a7, 0x1424, - 0x79a8, 0x2dce, - 0x79a9, 0x4301, - 0x79aa, 0x1425, - 0x79ab, 0x2dcd, - 0x79ac, 0x2f74, - 0x79ad, 0x2f73, - 0x79ae, 0x14ff, - 0x79b0, 0x30d0, - 0x79b1, 0x15a0, - 0x79b2, 0x3209, - 0x79b3, 0x16cf, - 0x79b4, 0x3398, - 0x79b6, 0x3492, - 0x79b7, 0x3491, - 0x79b8, 0x17b2, - 0x79b9, 0x07c3, - 0x79bb, 0x1fc5, - 0x79bd, 0x0ead, - 0x79be, 0x036b, - 0x79bf, 0x04f9, - 0x79c0, 0x04f8, - 0x79c1, 0x04f7, - 0x79c4, 0x3ccd, - 0x79c5, 0x1a21, - 0x79c6, 0x4305, - 0x79c8, 0x0663, - 0x79c9, 0x0662, - 0x79cb, 0x07c7, - 0x79cc, 0x4233, - 0x79cd, 0x1bb1, - 0x79ce, 0x1bb4, - 0x79cf, 0x1bb2, - 0x79d1, 0x07c5, - 0x79d4, 0x4307, - 0x79d5, 0x1bb0, - 0x79d6, 0x1bb3, - 0x79d8, 0x0964, - 0x79dc, 0x1d81, - 0x79dd, 0x1d83, - 0x79de, 0x1d82, - 0x79df, 0x0961, - 0x79e0, 0x1d7d, - 0x79e2, 0x3c5a, - 0x79e3, 0x095f, - 0x79e4, 0x095e, - 0x79e6, 0x0962, - 0x79e7, 0x0960, - 0x79e9, 0x0963, - 0x79ea, 0x1d80, - 0x79eb, 0x1d7b, - 0x79ed, 0x1d7f, - 0x79ee, 0x1d7e, - 0x79f1, 0x3b27, - 0x79f4, 0x3b22, - 0x79f6, 0x1fc8, - 0x79f8, 0x1fc7, - 0x79fa, 0x1fc6, - 0x79fb, 0x0b45, - 0x7a00, 0x0cfd, - 0x7a02, 0x224b, - 0x7a03, 0x224d, - 0x7a04, 0x224f, - 0x7a05, 0x0cfc, - 0x7a06, 0x471e, - 0x7a08, 0x0cfa, - 0x7a0a, 0x224c, - 0x7a0b, 0x0cfb, - 0x7a0c, 0x224e, - 0x7a0d, 0x0cf9, - 0x7a10, 0x24e9, - 0x7a11, 0x24e0, - 0x7a12, 0x24e3, - 0x7a13, 0x24e7, - 0x7a14, 0x0eb1, - 0x7a15, 0x24e5, - 0x7a17, 0x24e4, - 0x7a18, 0x24e1, - 0x7a1a, 0x0eaf, - 0x7a1b, 0x24e8, - 0x7a1c, 0x0eae, - 0x7a1e, 0x0eb3, - 0x7a1f, 0x0eb2, - 0x7a20, 0x0eb0, - 0x7a22, 0x24e6, - 0x7a26, 0x2765, - 0x7a28, 0x2764, - 0x7a2b, 0x2760, - 0x7a2d, 0x3fda, - 0x7a2e, 0x1047, - 0x7a2f, 0x2763, - 0x7a30, 0x2762, - 0x7a31, 0x1048, - 0x7a37, 0x11c7, - 0x7a39, 0x29a3, - 0x7a3a, 0x3b21, - 0x7a3b, 0x11c8, - 0x7a3c, 0x11c4, - 0x7a3d, 0x11c6, - 0x7a3e, 0x3f8b, - 0x7a3f, 0x11c3, - 0x7a40, 0x11c5, - 0x7a43, 0x396c, - 0x7a44, 0x2bf6, - 0x7a45, 0x3df1, - 0x7a46, 0x1312, - 0x7a47, 0x2bf8, - 0x7a48, 0x2bf7, - 0x7a49, 0x3733, - 0x7a4a, 0x2761, - 0x7a4b, 0x1314, - 0x7a4c, 0x1313, - 0x7a4d, 0x1310, - 0x7a54, 0x2dd3, - 0x7a56, 0x2dd1, - 0x7a57, 0x1426, - 0x7a58, 0x2dd2, - 0x7a5a, 0x2dd4, - 0x7a5b, 0x2dd0, - 0x7a5c, 0x2dcf, - 0x7a5f, 0x2f75, - 0x7a60, 0x1502, - 0x7a61, 0x1500, - 0x7a65, 0x3736, - 0x7a67, 0x30d1, - 0x7a69, 0x15a2, - 0x7a6b, 0x15a1, - 0x7a6c, 0x320b, - 0x7a6e, 0x320a, - 0x7a70, 0x3399, - 0x7a74, 0x036c, - 0x7a75, 0x1811, - 0x7a76, 0x04fa, - 0x7a78, 0x1a22, - 0x7a79, 0x0665, - 0x7a7a, 0x0664, - 0x7a7b, 0x1a23, - 0x7a7d, 0x3737, - 0x7a7e, 0x1bb6, - 0x7a7f, 0x07c8, - 0x7a80, 0x1bb5, - 0x7a81, 0x07c9, - 0x7a83, 0x3d7d, - 0x7a84, 0x0965, - 0x7a85, 0x1d86, - 0x7a86, 0x1d84, - 0x7a87, 0x1d8a, - 0x7a88, 0x0966, - 0x7a89, 0x1d85, - 0x7a8a, 0x1d89, - 0x7a8b, 0x1d87, - 0x7a8f, 0x1fca, - 0x7a90, 0x1fcc, - 0x7a91, 0x43d8, - 0x7a92, 0x0b46, - 0x7a94, 0x1fcb, - 0x7a95, 0x0b47, - 0x7a96, 0x0d00, - 0x7a97, 0x0cff, - 0x7a98, 0x0cfe, - 0x7a99, 0x2250, - 0x7a9e, 0x24ec, - 0x7a9f, 0x0eb4, - 0x7aa2, 0x24eb, - 0x7aa3, 0x24ea, - 0x7aa8, 0x2766, - 0x7aa9, 0x104a, - 0x7aaa, 0x1049, - 0x7aab, 0x2767, - 0x7aae, 0x11ca, - 0x7aaf, 0x11c9, - 0x7ab0, 0x373a, - 0x7ab1, 0x2bfc, - 0x7ab2, 0x29a4, - 0x7ab3, 0x29a6, - 0x7ab4, 0x29a5, - 0x7ab5, 0x2bfb, - 0x7ab6, 0x2bf9, - 0x7ab7, 0x2bfd, - 0x7ab8, 0x2bfa, - 0x7aba, 0x1315, - 0x7abb, 0x3739, - 0x7abc, 0x4721, - 0x7abe, 0x2dd5, - 0x7abf, 0x1427, - 0x7ac0, 0x2dd6, - 0x7ac2, 0x373b, - 0x7ac4, 0x1503, - 0x7ac7, 0x1628, - 0x7ac8, 0x3d7f, - 0x7ac9, 0x4570, - 0x7aca, 0x16ff, - 0x7acb, 0x036d, - 0x7acf, 0x4724, - 0x7ad1, 0x1bb7, - 0x7ad3, 0x3f8a, - 0x7ad8, 0x1d8b, - 0x7ad9, 0x0967, - 0x7ada, 0x3740, - 0x7adb, 0x4725, - 0x7adc, 0x3951, - 0x7add, 0x3741, - 0x7adf, 0x0bde, - 0x7ae0, 0x0bdd, - 0x7ae2, 0x3b33, - 0x7ae3, 0x0d02, - 0x7ae4, 0x2252, - 0x7ae5, 0x0d01, - 0x7ae6, 0x2251, - 0x7ae7, 0x385d, - 0x7ae9, 0x3831, - 0x7aea, 0x3742, - 0x7aeb, 0x24ed, - 0x7aed, 0x104b, - 0x7aee, 0x2769, - 0x7aef, 0x104c, - 0x7af6, 0x1629, - 0x7af7, 0x320d, - 0x7af9, 0x03f6, - 0x7afa, 0x0666, - 0x7afb, 0x1a24, - 0x7afd, 0x07cb, - 0x7afe, 0x3b3d, - 0x7aff, 0x07ca, - 0x7b00, 0x1bb8, - 0x7b04, 0x1d8d, - 0x7b05, 0x1d8f, - 0x7b06, 0x0968, - 0x7b08, 0x1d91, - 0x7b09, 0x1d94, - 0x7b0a, 0x1d92, - 0x7b0b, 0x3746, - 0x7b0c, 0x3b63, - 0x7b0e, 0x1d93, - 0x7b0f, 0x1d90, - 0x7b10, 0x1d8c, - 0x7b11, 0x0969, - 0x7b12, 0x1d95, - 0x7b13, 0x1d8e, - 0x7b14, 0x3f77, - 0x7b18, 0x1fd5, - 0x7b19, 0x0b4d, - 0x7b1a, 0x1fde, - 0x7b1b, 0x0b4a, - 0x7b1d, 0x1fd7, - 0x7b1e, 0x0b4e, - 0x7b1f, 0x3f11, - 0x7b20, 0x0b48, - 0x7b22, 0x1fd2, - 0x7b23, 0x1fdf, - 0x7b24, 0x1fd3, - 0x7b25, 0x1fd0, - 0x7b26, 0x0b4c, - 0x7b27, 0x3b5f, - 0x7b28, 0x0b49, - 0x7b29, 0x3748, - 0x7b2a, 0x1fd6, - 0x7b2b, 0x1fd9, - 0x7b2c, 0x0b4b, - 0x7b2d, 0x1fda, - 0x7b2e, 0x0b4f, - 0x7b2f, 0x1fdb, - 0x7b30, 0x1fd1, - 0x7b31, 0x1fd8, - 0x7b32, 0x1fdc, - 0x7b33, 0x1fd4, - 0x7b34, 0x1fcf, - 0x7b35, 0x1fcd, - 0x7b38, 0x1fdd, - 0x7b39, 0x3d6e, - 0x7b3b, 0x1fce, - 0x7b40, 0x2259, - 0x7b42, 0x3ded, - 0x7b43, 0x3e25, - 0x7b44, 0x2255, - 0x7b45, 0x225b, - 0x7b46, 0x0d05, - 0x7b47, 0x2254, - 0x7b48, 0x2256, - 0x7b49, 0x0d03, - 0x7b4a, 0x2253, - 0x7b4b, 0x0d0a, - 0x7b4c, 0x2257, - 0x7b4d, 0x0d09, - 0x7b4e, 0x2258, - 0x7b4f, 0x0d0b, - 0x7b50, 0x0d06, - 0x7b51, 0x0d0c, - 0x7b52, 0x0d07, - 0x7b54, 0x0d08, - 0x7b55, 0x3747, - 0x7b56, 0x0d04, - 0x7b58, 0x225a, - 0x7b60, 0x0eb8, - 0x7b61, 0x24f8, - 0x7b62, 0x4727, - 0x7b63, 0x24fb, - 0x7b64, 0x24ef, - 0x7b65, 0x24f4, - 0x7b66, 0x24ee, - 0x7b67, 0x0eba, - 0x7b69, 0x24f2, - 0x7b6c, 0x4728, - 0x7b6d, 0x24f0, - 0x7b6e, 0x0eb9, - 0x7b6f, 0x374c, - 0x7b70, 0x24f7, - 0x7b71, 0x24f6, - 0x7b72, 0x24f3, - 0x7b73, 0x24f5, - 0x7b74, 0x24f1, - 0x7b75, 0x1050, - 0x7b76, 0x24fa, - 0x7b77, 0x0eb6, - 0x7b78, 0x24f9, - 0x7b7b, 0x4729, - 0x7b82, 0x2779, - 0x7b84, 0x1057, - 0x7b85, 0x2774, - 0x7b87, 0x1056, - 0x7b88, 0x276a, - 0x7b8a, 0x276c, - 0x7b8b, 0x104f, - 0x7b8c, 0x2771, - 0x7b8d, 0x2770, - 0x7b8e, 0x2773, - 0x7b8f, 0x1054, - 0x7b90, 0x276e, - 0x7b91, 0x276d, - 0x7b92, 0x3752, - 0x7b94, 0x1053, - 0x7b95, 0x104e, - 0x7b96, 0x276f, - 0x7b97, 0x1051, - 0x7b98, 0x2775, - 0x7b99, 0x2777, - 0x7b9b, 0x2772, - 0x7b9c, 0x276b, - 0x7b9d, 0x1052, - 0x7ba0, 0x11d2, - 0x7ba1, 0x104d, - 0x7ba2, 0x374b, - 0x7ba3, 0x3f14, - 0x7ba4, 0x2778, - 0x7bac, 0x29aa, - 0x7bad, 0x11cb, - 0x7baf, 0x29ac, - 0x7bb1, 0x11cc, - 0x7bb2, 0x461c, - 0x7bb4, 0x11ce, - 0x7bb5, 0x29af, - 0x7bb7, 0x29a7, - 0x7bb8, 0x1055, - 0x7bb9, 0x29ad, - 0x7bbe, 0x29a9, - 0x7bc0, 0x0eb7, - 0x7bc1, 0x11d1, - 0x7bc4, 0x11cd, - 0x7bc6, 0x11cf, - 0x7bc9, 0x1318, - 0x7bca, 0x29ae, - 0x7bcb, 0x29a8, - 0x7bcc, 0x11d3, - 0x7bce, 0x29ab, - 0x7bcf, 0x3f18, - 0x7bd0, 0x3750, - 0x7bd4, 0x2c07, - 0x7bd5, 0x2c02, - 0x7bd8, 0x2c0c, - 0x7bd9, 0x1316, - 0x7bda, 0x2c04, - 0x7bdb, 0x131a, - 0x7bdc, 0x2c0a, - 0x7bdd, 0x2c01, - 0x7bde, 0x2bfe, - 0x7bdf, 0x2c0d, - 0x7be0, 0x142d, - 0x7be1, 0x131b, - 0x7be2, 0x2c09, - 0x7be3, 0x2bff, - 0x7be4, 0x1319, - 0x7be5, 0x2c03, - 0x7be6, 0x131d, - 0x7be7, 0x2c00, - 0x7be8, 0x2c05, - 0x7be9, 0x131c, - 0x7bea, 0x2c08, - 0x7beb, 0x2c0b, - 0x7bf0, 0x2de9, - 0x7bf2, 0x2dda, - 0x7bf3, 0x2de1, - 0x7bf4, 0x2ddf, - 0x7bf7, 0x142b, - 0x7bf8, 0x2de6, - 0x7bf9, 0x2c06, - 0x7bfa, 0x3757, - 0x7bfb, 0x2ddd, - 0x7bfc, 0x3f1f, - 0x7bfd, 0x2de7, - 0x7bfe, 0x142a, - 0x7bff, 0x2ddc, - 0x7c00, 0x2ddb, - 0x7c01, 0x2de5, - 0x7c02, 0x2de2, - 0x7c03, 0x2de4, - 0x7c05, 0x2dd8, - 0x7c06, 0x2de8, - 0x7c07, 0x1428, - 0x7c09, 0x2de3, - 0x7c0a, 0x2dec, - 0x7c0b, 0x2de0, - 0x7c0c, 0x142c, - 0x7c0d, 0x1429, - 0x7c0e, 0x2dde, - 0x7c0f, 0x2dd9, - 0x7c10, 0x2deb, - 0x7c11, 0x1317, - 0x7c12, 0x472a, - 0x7c15, 0x4061, - 0x7c19, 0x2f78, - 0x7c1b, 0x43d9, - 0x7c1c, 0x2f76, - 0x7c1d, 0x2f7c, - 0x7c1e, 0x1508, - 0x7c1f, 0x2f7a, - 0x7c20, 0x2f79, - 0x7c21, 0x150a, - 0x7c22, 0x2f7f, - 0x7c23, 0x1509, - 0x7c25, 0x2f80, - 0x7c26, 0x2f7d, - 0x7c27, 0x1506, - 0x7c28, 0x2f7e, - 0x7c29, 0x2f77, - 0x7c2a, 0x1507, - 0x7c2b, 0x1505, - 0x7c2c, 0x30d6, - 0x7c2d, 0x2f7b, - 0x7c30, 0x2f81, - 0x7c33, 0x30d3, - 0x7c35, 0x3759, - 0x7c37, 0x15a7, - 0x7c38, 0x15a5, - 0x7c39, 0x30d5, - 0x7c3b, 0x30d7, - 0x7c3c, 0x30d4, - 0x7c3d, 0x15a6, - 0x7c3e, 0x15a3, - 0x7c40, 0x15a8, - 0x7c42, 0x3f1c, - 0x7c43, 0x162b, - 0x7c44, 0x375b, - 0x7c45, 0x3212, - 0x7c47, 0x3211, - 0x7c48, 0x320f, - 0x7c49, 0x320e, - 0x7c4a, 0x3210, - 0x7c4c, 0x162a, - 0x7c4d, 0x162c, - 0x7c50, 0x1681, - 0x7c51, 0x3fb8, - 0x7c53, 0x32ea, - 0x7c54, 0x32e9, - 0x7c56, 0x3eff, - 0x7c57, 0x339b, - 0x7c59, 0x339d, - 0x7c5a, 0x339f, - 0x7c5b, 0x339e, - 0x7c5c, 0x339c, - 0x7c5d, 0x3b3f, - 0x7c5f, 0x16d1, - 0x7c60, 0x16d0, - 0x7c63, 0x1701, - 0x7c64, 0x1700, - 0x7c65, 0x1702, - 0x7c66, 0x342b, - 0x7c67, 0x342a, - 0x7c69, 0x34d6, - 0x7c6a, 0x3493, - 0x7c6b, 0x34d7, - 0x7c6c, 0x1745, - 0x7c6d, 0x3b40, - 0x7c6e, 0x1746, - 0x7c6f, 0x3507, - 0x7c70, 0x3f52, - 0x7c72, 0x176b, - 0x7c73, 0x03f7, - 0x7c74, 0x469c, - 0x7c75, 0x1a25, - 0x7c78, 0x1bbb, - 0x7c7a, 0x1bba, - 0x7c7b, 0x472d, - 0x7c7c, 0x3b49, - 0x7c7d, 0x07cc, - 0x7c7e, 0x3f1a, - 0x7c7f, 0x1bbd, - 0x7c83, 0x375c, - 0x7c84, 0x1d96, - 0x7c85, 0x1d9c, - 0x7c86, 0x3f1d, - 0x7c88, 0x1d9a, - 0x7c89, 0x096a, - 0x7c8a, 0x1d98, - 0x7c8c, 0x1d99, - 0x7c8d, 0x1d9b, - 0x7c8e, 0x3b48, - 0x7c91, 0x1d97, - 0x7c92, 0x0b50, - 0x7c94, 0x1fe0, - 0x7c95, 0x0b52, - 0x7c96, 0x1fe2, - 0x7c97, 0x0b51, - 0x7c98, 0x1fe1, - 0x7c9c, 0x472e, - 0x7c9e, 0x225d, - 0x7c9f, 0x0d0d, - 0x7ca1, 0x225f, - 0x7ca2, 0x225c, - 0x7ca3, 0x1fe3, - 0x7ca5, 0x0d0e, - 0x7ca6, 0x375e, - 0x7ca7, 0x36ed, - 0x7ca8, 0x225e, - 0x7cac, 0x3885, - 0x7cae, 0x3b4a, - 0x7caf, 0x24fe, - 0x7cb1, 0x0ebb, - 0x7cb2, 0x24fc, - 0x7cb3, 0x0ebc, - 0x7cb4, 0x24fd, - 0x7cb5, 0x0ebd, - 0x7cb8, 0x4730, - 0x7cb9, 0x1058, - 0x7cba, 0x277d, - 0x7cbb, 0x277a, - 0x7cbc, 0x277c, - 0x7cbd, 0x1059, - 0x7cbf, 0x277b, - 0x7cc2, 0x3fd7, - 0x7cc5, 0x29b0, - 0x7cc7, 0x3761, - 0x7cc8, 0x29b1, - 0x7cc9, 0x3760, - 0x7cca, 0x11d4, - 0x7ccb, 0x29b3, - 0x7ccc, 0x29b2, - 0x7ccd, 0x3b45, - 0x7cce, 0x0121, - 0x7cd0, 0x2c11, - 0x7cd2, 0x2c0e, - 0x7cd3, 0x3d5c, - 0x7cd4, 0x2c0f, - 0x7cd5, 0x131e, - 0x7cd7, 0x2c10, - 0x7cd9, 0x1433, - 0x7cda, 0x3fd9, - 0x7cdc, 0x142f, - 0x7cdd, 0x1434, - 0x7cde, 0x1430, - 0x7cdf, 0x1432, - 0x7ce0, 0x142e, - 0x7ce2, 0x1431, - 0x7ce6, 0x3762, - 0x7ce7, 0x150b, - 0x7ce8, 0x2ded, - 0x7cea, 0x30d9, - 0x7cec, 0x30d8, - 0x7ced, 0x43da, - 0x7cee, 0x3213, - 0x7cef, 0x162d, - 0x7cf1, 0x33a1, - 0x7cf2, 0x32eb, - 0x7cf3, 0x3764, - 0x7cf4, 0x33a0, - 0x7cf5, 0x3765, - 0x7cf6, 0x34d8, - 0x7cf7, 0x351d, - 0x7cf8, 0x03f8, - 0x7cf9, 0x44f8, - 0x7cfb, 0x04fb, - 0x7cfc, 0x456d, - 0x7cfd, 0x1a26, - 0x7cfe, 0x0667, - 0x7d00, 0x07cf, - 0x7d01, 0x1bc2, - 0x7d02, 0x07cd, - 0x7d03, 0x1bc0, - 0x7d04, 0x07d2, - 0x7d05, 0x07ce, - 0x7d06, 0x07d3, - 0x7d07, 0x07d1, - 0x7d08, 0x1bc1, - 0x7d09, 0x07d0, - 0x7d0a, 0x096e, - 0x7d0b, 0x096d, - 0x7d0c, 0x1da7, - 0x7d0d, 0x0976, - 0x7d0e, 0x1da0, - 0x7d0f, 0x1da6, - 0x7d10, 0x0972, - 0x7d11, 0x1d9f, - 0x7d12, 0x1da5, - 0x7d13, 0x1da3, - 0x7d14, 0x0971, - 0x7d15, 0x0973, - 0x7d16, 0x1da2, - 0x7d17, 0x096c, - 0x7d18, 0x1da1, - 0x7d19, 0x0977, - 0x7d1a, 0x0974, - 0x7d1b, 0x0978, - 0x7d1c, 0x0975, - 0x7d1d, 0x1d9e, - 0x7d1e, 0x1d9d, - 0x7d1f, 0x1da4, - 0x7d20, 0x096f, - 0x7d21, 0x096b, - 0x7d22, 0x0970, - 0x7d25, 0x3ede, - 0x7d28, 0x1ff2, - 0x7d29, 0x1feb, - 0x7d2b, 0x0d13, - 0x7d2c, 0x1fea, - 0x7d2e, 0x0b56, - 0x7d2f, 0x0b5d, - 0x7d30, 0x0b5a, - 0x7d31, 0x0b60, - 0x7d32, 0x0b5f, - 0x7d33, 0x0b5b, - 0x7d35, 0x1fe4, - 0x7d36, 0x1fe7, - 0x7d38, 0x1fe6, - 0x7d39, 0x0b57, - 0x7d3a, 0x1fe8, - 0x7d3b, 0x1ff1, - 0x7d3c, 0x0b58, - 0x7d3d, 0x1fe5, - 0x7d3e, 0x1fee, - 0x7d40, 0x0b59, - 0x7d41, 0x1fec, - 0x7d42, 0x0b5e, - 0x7d43, 0x0b54, - 0x7d44, 0x0b5c, - 0x7d45, 0x1fe9, - 0x7d46, 0x0b53, - 0x7d47, 0x1fed, - 0x7d4a, 0x1ff0, - 0x7d4d, 0x3fdd, - 0x7d4e, 0x2270, - 0x7d4f, 0x2267, - 0x7d50, 0x0d10, - 0x7d51, 0x226e, - 0x7d52, 0x226b, - 0x7d53, 0x2263, - 0x7d54, 0x226c, - 0x7d55, 0x0d12, - 0x7d56, 0x2264, - 0x7d58, 0x2260, - 0x7d5a, 0x3e93, - 0x7d5b, 0x0ec3, - 0x7d5c, 0x2269, - 0x7d5d, 0x3769, - 0x7d5e, 0x0d0f, - 0x7d5f, 0x226f, - 0x7d61, 0x0d16, - 0x7d62, 0x0d18, - 0x7d63, 0x2262, - 0x7d66, 0x0d17, - 0x7d67, 0x2265, - 0x7d68, 0x0d11, - 0x7d69, 0x226d, - 0x7d6a, 0x2266, - 0x7d6b, 0x226a, - 0x7d6d, 0x2268, - 0x7d6e, 0x0d14, - 0x7d6f, 0x2261, - 0x7d70, 0x0d19, - 0x7d71, 0x0b55, - 0x7d72, 0x0d15, - 0x7d73, 0x0d1a, - 0x7d79, 0x0ebf, - 0x7d7a, 0x2505, - 0x7d7b, 0x2507, - 0x7d7c, 0x2509, - 0x7d7d, 0x250d, - 0x7d7f, 0x2503, - 0x7d80, 0x2501, - 0x7d81, 0x0ec1, - 0x7d83, 0x2508, - 0x7d84, 0x250c, - 0x7d85, 0x2504, - 0x7d86, 0x2500, - 0x7d88, 0x24ff, - 0x7d89, 0x376b, - 0x7d8c, 0x250a, - 0x7d8d, 0x2502, - 0x7d8e, 0x2506, - 0x7d8f, 0x0ec2, - 0x7d91, 0x0ec0, - 0x7d92, 0x250e, - 0x7d93, 0x0ebe, - 0x7d94, 0x250b, - 0x7d96, 0x278e, - 0x7d97, 0x3b53, - 0x7d9c, 0x105d, - 0x7d9d, 0x2786, - 0x7d9e, 0x11e1, - 0x7d9f, 0x2790, - 0x7da0, 0x1060, - 0x7da1, 0x2794, - 0x7da2, 0x1066, - 0x7da3, 0x2781, - 0x7da4, 0x46d7, - 0x7da6, 0x2791, - 0x7da7, 0x277e, - 0x7da8, 0x3c9c, - 0x7da9, 0x2793, - 0x7daa, 0x2782, - 0x7dab, 0x376c, - 0x7dac, 0x106d, - 0x7dad, 0x106a, - 0x7dae, 0x2792, - 0x7daf, 0x278c, - 0x7db0, 0x105c, - 0x7db1, 0x1064, - 0x7db2, 0x1063, - 0x7db3, 0x376e, - 0x7db4, 0x1062, - 0x7db5, 0x1068, - 0x7db7, 0x277f, - 0x7db8, 0x1069, - 0x7db9, 0x278d, - 0x7dba, 0x1065, - 0x7dbb, 0x105b, - 0x7dbc, 0x278f, - 0x7dbd, 0x105e, - 0x7dbf, 0x1067, - 0x7dc0, 0x2784, - 0x7dc1, 0x2783, - 0x7dc2, 0x2780, - 0x7dc4, 0x2788, - 0x7dc5, 0x2785, - 0x7dc6, 0x2789, - 0x7dc7, 0x106c, - 0x7dc9, 0x2795, - 0x7dca, 0x1061, - 0x7dcb, 0x278a, - 0x7dcd, 0x456e, - 0x7dce, 0x2787, - 0x7dcf, 0x4735, - 0x7dd0, 0x4737, - 0x7dd2, 0x106b, - 0x7dd3, 0x3b4e, - 0x7dd4, 0x4736, - 0x7dd6, 0x376f, - 0x7dd7, 0x29b8, - 0x7dd8, 0x11d9, - 0x7dd9, 0x11e2, - 0x7dda, 0x11de, - 0x7ddb, 0x29b5, - 0x7ddc, 0x3b4c, - 0x7ddd, 0x11db, - 0x7dde, 0x11df, - 0x7ddf, 0x29c1, - 0x7de0, 0x11d5, - 0x7de1, 0x29b9, - 0x7de3, 0x11dd, - 0x7de4, 0x3772, - 0x7de5, 0x3776, - 0x7de6, 0x29bc, - 0x7de7, 0x29b7, - 0x7de8, 0x11dc, - 0x7de9, 0x11e0, - 0x7dea, 0x29b6, - 0x7dec, 0x11da, - 0x7dee, 0x29c0, - 0x7def, 0x11d7, - 0x7df0, 0x29bf, - 0x7df1, 0x29be, - 0x7df2, 0x11e3, - 0x7df3, 0x28c8, - 0x7df4, 0x11d6, - 0x7df5, 0x3774, - 0x7df6, 0x29bd, - 0x7df7, 0x29b4, - 0x7df9, 0x11e4, - 0x7dfa, 0x29bb, - 0x7dfb, 0x11d8, - 0x7dfd, 0x4738, - 0x7dfe, 0x3ccf, - 0x7e03, 0x29ba, - 0x7e07, 0x3b4d, - 0x7e08, 0x1322, - 0x7e09, 0x1327, - 0x7e0a, 0x1320, - 0x7e0b, 0x2c1f, - 0x7e0c, 0x2c16, - 0x7e0d, 0x2c22, - 0x7e0e, 0x2c1a, - 0x7e0f, 0x2c20, - 0x7e10, 0x1328, - 0x7e11, 0x1321, - 0x7e12, 0x2c13, - 0x7e13, 0x2c19, - 0x7e14, 0x2c23, - 0x7e15, 0x2c1c, - 0x7e16, 0x2c21, - 0x7e17, 0x2c15, - 0x7e1a, 0x2c1d, - 0x7e1b, 0x1323, - 0x7e1c, 0x2c1b, - 0x7e1d, 0x1326, - 0x7e1e, 0x1325, - 0x7e1f, 0x2c17, - 0x7e21, 0x2c14, - 0x7e22, 0x2c1e, - 0x7e23, 0x1324, - 0x7e24, 0x2c25, - 0x7e25, 0x2c24, - 0x7e27, 0x377f, - 0x7e29, 0x2df8, - 0x7e2a, 0x2df4, - 0x7e2b, 0x143b, - 0x7e2d, 0x2dee, - 0x7e2e, 0x1435, - 0x7e2f, 0x1445, - 0x7e30, 0x2dfa, - 0x7e31, 0x143d, - 0x7e32, 0x1439, - 0x7e33, 0x2df1, - 0x7e34, 0x1440, - 0x7e35, 0x1443, - 0x7e36, 0x2dfc, - 0x7e37, 0x1438, - 0x7e38, 0x2df3, - 0x7e39, 0x1441, - 0x7e3a, 0x2dfe, - 0x7e3b, 0x2dfb, - 0x7e3c, 0x2def, - 0x7e3d, 0x143c, - 0x7e3e, 0x1436, - 0x7e3f, 0x1444, - 0x7e40, 0x2df6, - 0x7e41, 0x143f, - 0x7e42, 0x2df0, - 0x7e43, 0x143a, - 0x7e44, 0x2dfd, - 0x7e45, 0x143e, - 0x7e46, 0x1437, - 0x7e47, 0x2df7, - 0x7e48, 0x1442, - 0x7e49, 0x2df5, - 0x7e4c, 0x2df9, - 0x7e50, 0x2f83, - 0x7e51, 0x2f89, - 0x7e52, 0x1511, - 0x7e53, 0x2f8c, - 0x7e54, 0x150c, - 0x7e56, 0x2f84, - 0x7e57, 0x2f8b, - 0x7e58, 0x2f86, - 0x7e59, 0x1512, - 0x7e5a, 0x150f, - 0x7e5c, 0x2f82, - 0x7e5e, 0x150e, - 0x7e5f, 0x2f88, - 0x7e60, 0x2f8a, - 0x7e61, 0x1510, - 0x7e62, 0x2f87, - 0x7e63, 0x2f85, - 0x7e65, 0x46d2, - 0x7e67, 0x3766, - 0x7e68, 0x30e3, - 0x7e69, 0x15ac, - 0x7e6b, 0x15a9, - 0x7e6d, 0x15aa, - 0x7e6e, 0x377b, - 0x7e6f, 0x30df, - 0x7e70, 0x30dd, - 0x7e72, 0x30e1, - 0x7e73, 0x15ae, - 0x7e74, 0x30e2, - 0x7e75, 0x30db, - 0x7e76, 0x30da, - 0x7e77, 0x30de, - 0x7e78, 0x30dc, - 0x7e79, 0x15ab, - 0x7e7a, 0x30e0, - 0x7e7b, 0x3214, - 0x7e7c, 0x1631, - 0x7e7d, 0x1630, - 0x7e7e, 0x3215, - 0x7e7f, 0x3e51, - 0x7e80, 0x3217, - 0x7e81, 0x3216, - 0x7e82, 0x1632, - 0x7e86, 0x32f0, - 0x7e87, 0x32ed, - 0x7e8a, 0x32ec, - 0x7e8b, 0x32ef, - 0x7e8c, 0x1683, - 0x7e8d, 0x32f1, - 0x7e8e, 0x3ec9, - 0x7e8f, 0x1682, - 0x7e91, 0x33a2, - 0x7e92, 0x469e, - 0x7e93, 0x1703, - 0x7e94, 0x1705, - 0x7e95, 0x342c, - 0x7e96, 0x1704, - 0x7e97, 0x3494, - 0x7e98, 0x34da, - 0x7e99, 0x34dc, - 0x7e9a, 0x34d9, - 0x7e9b, 0x34db, - 0x7e9c, 0x1759, - 0x7e9f, 0x48bb, - 0x7ea4, 0x455b, - 0x7eac, 0x455c, - 0x7eba, 0x455d, - 0x7ec7, 0x455e, - 0x7ecf, 0x455f, - 0x7edf, 0x4560, - 0x7f06, 0x4561, - 0x7f36, 0x03f9, - 0x7f37, 0x4562, - 0x7f38, 0x07d4, - 0x7f39, 0x1d1f, - 0x7f3a, 0x0979, - 0x7f3d, 0x0b61, - 0x7f3e, 0x2271, - 0x7f40, 0x3780, - 0x7f43, 0x2c26, - 0x7f44, 0x1446, - 0x7f45, 0x2dff, - 0x7f47, 0x3782, - 0x7f48, 0x1513, - 0x7f49, 0x3e69, - 0x7f4a, 0x30e5, - 0x7f4b, 0x30e4, - 0x7f4c, 0x1633, - 0x7f4d, 0x32f2, - 0x7f4e, 0x3b4f, - 0x7f4f, 0x33a3, - 0x7f50, 0x1726, - 0x7f51, 0x1812, - 0x7f52, 0x44f6, - 0x7f53, 0x44f9, - 0x7f54, 0x0668, - 0x7f55, 0x04fc, - 0x7f58, 0x1bc3, - 0x7f5b, 0x1dad, - 0x7f5c, 0x1da8, - 0x7f5d, 0x1dac, - 0x7f5e, 0x1daa, - 0x7f5f, 0x097a, - 0x7f60, 0x1dab, - 0x7f61, 0x1da9, - 0x7f63, 0x1ff3, - 0x7f65, 0x2273, - 0x7f67, 0x2511, - 0x7f69, 0x0ec5, - 0x7f6b, 0x2510, - 0x7f6c, 0x2513, - 0x7f6d, 0x250f, - 0x7f6e, 0x0ec4, - 0x7f70, 0x106e, - 0x7f71, 0x4007, - 0x7f72, 0x0ec7, - 0x7f73, 0x2796, - 0x7f75, 0x11e5, - 0x7f76, 0x29c2, - 0x7f77, 0x11e6, - 0x7f78, 0x3f7b, - 0x7f79, 0x1329, - 0x7f7a, 0x2c29, - 0x7f7b, 0x2c27, - 0x7f7d, 0x2e02, - 0x7f7e, 0x2e01, - 0x7f7f, 0x2e00, - 0x7f83, 0x30e6, - 0x7f85, 0x15af, - 0x7f86, 0x30e7, - 0x7f87, 0x33a4, - 0x7f88, 0x1727, - 0x7f89, 0x3495, - 0x7f8a, 0x03fa, - 0x7f8b, 0x066a, - 0x7f8c, 0x0669, - 0x7f8d, 0x1bc5, - 0x7f8e, 0x07d5, - 0x7f8f, 0x421c, - 0x7f91, 0x1bc4, - 0x7f92, 0x1daf, - 0x7f93, 0x43db, - 0x7f94, 0x097b, - 0x7f95, 0x1ff4, - 0x7f96, 0x1dae, - 0x7f97, 0x3786, - 0x7f9a, 0x0b63, - 0x7f9b, 0x1ff7, - 0x7f9c, 0x1ff5, - 0x7f9e, 0x0b62, - 0x7fa0, 0x2276, - 0x7fa2, 0x2275, - 0x7fa3, 0x3788, - 0x7fa4, 0x0eca, - 0x7fa5, 0x2515, - 0x7fa6, 0x2514, - 0x7fa7, 0x2516, - 0x7fa8, 0x0ec9, - 0x7fa9, 0x0ec8, - 0x7fac, 0x29c3, - 0x7fad, 0x29c5, - 0x7fae, 0x43dc, - 0x7faf, 0x11e7, - 0x7fb0, 0x29c4, - 0x7fb1, 0x2c2a, - 0x7fb2, 0x132a, - 0x7fb3, 0x2f8e, - 0x7fb4, 0x4739, - 0x7fb5, 0x2f8d, - 0x7fb6, 0x15b0, - 0x7fb7, 0x30e8, - 0x7fb8, 0x15b2, - 0x7fb9, 0x15b1, - 0x7fba, 0x3218, - 0x7fbb, 0x32f3, - 0x7fbc, 0x1684, - 0x7fbd, 0x03fb, - 0x7fbe, 0x1bc6, - 0x7fbf, 0x07d6, - 0x7fc0, 0x1db2, - 0x7fc1, 0x097d, - 0x7fc2, 0x1db1, - 0x7fc3, 0x1db0, - 0x7fc5, 0x097c, - 0x7fc7, 0x1ffd, - 0x7fc9, 0x1fff, - 0x7fca, 0x1ff8, - 0x7fcc, 0x0b64, - 0x7fcd, 0x1ffa, - 0x7fce, 0x0b65, - 0x7fcf, 0x1ffe, - 0x7fd0, 0x1ffb, - 0x7fd2, 0x0b66, - 0x7fd4, 0x0d1c, - 0x7fd7, 0x2278, - 0x7fdb, 0x2517, - 0x7fdd, 0x3b5e, - 0x7fde, 0x279a, - 0x7fdf, 0x1071, - 0x7fe0, 0x106f, - 0x7fe2, 0x2797, - 0x7fe5, 0x2799, - 0x7fe6, 0x29ca, - 0x7fe7, 0x46e9, - 0x7fe8, 0x29cb, - 0x7fe9, 0x11e8, - 0x7fea, 0x29c8, - 0x7feb, 0x29c7, - 0x7fec, 0x29c9, - 0x7fed, 0x29c6, - 0x7fee, 0x132d, - 0x7fef, 0x2c2b, - 0x7ff0, 0x132b, - 0x7ff2, 0x2e04, - 0x7ff3, 0x1447, - 0x7ff4, 0x2e03, - 0x7ff5, 0x2eff, - 0x7ff7, 0x2f8f, - 0x7ff9, 0x1514, - 0x7ffa, 0x378e, - 0x7ffb, 0x1515, - 0x7ffc, 0x1448, - 0x7ffd, 0x30e9, - 0x7fff, 0x3219, - 0x8000, 0x1634, - 0x8001, 0x03fc, - 0x8002, 0x44fd, - 0x8003, 0x03fd, - 0x8004, 0x097f, - 0x8005, 0x066b, - 0x8006, 0x097e, - 0x8007, 0x1bc7, - 0x8008, 0x3791, - 0x800b, 0x0d1e, - 0x800c, 0x03fe, - 0x800d, 0x07d8, - 0x800e, 0x1bc8, - 0x8010, 0x07d7, - 0x8011, 0x07d9, - 0x8012, 0x03ff, - 0x8014, 0x1bca, - 0x8015, 0x0981, - 0x8016, 0x1db3, - 0x8017, 0x0983, - 0x8018, 0x0980, - 0x8019, 0x0982, - 0x801b, 0x2002, - 0x801c, 0x0b67, - 0x801d, 0x3792, - 0x801e, 0x2001, - 0x801f, 0x2000, - 0x8020, 0x473c, - 0x8021, 0x2519, - 0x8024, 0x279b, - 0x8025, 0x473d, - 0x8026, 0x11e9, - 0x8028, 0x132e, - 0x8029, 0x2c2d, - 0x802a, 0x2c2c, - 0x802c, 0x2e05, - 0x802e, 0x473e, - 0x802f, 0x3794, - 0x8030, 0x32f4, - 0x8031, 0x473f, - 0x8033, 0x0400, - 0x8034, 0x18d8, - 0x8035, 0x1a27, - 0x8036, 0x07da, - 0x8037, 0x1bcb, - 0x8039, 0x1db5, - 0x803b, 0x3797, - 0x803d, 0x0984, - 0x803e, 0x1db4, - 0x803f, 0x0985, - 0x8043, 0x2004, - 0x8046, 0x0b69, - 0x8047, 0x2003, - 0x8048, 0x2005, - 0x804a, 0x0b68, - 0x804f, 0x227a, - 0x8051, 0x2279, - 0x8052, 0x0d1f, - 0x8054, 0x4740, - 0x8056, 0x0ecb, - 0x8058, 0x0ecc, - 0x805a, 0x1073, - 0x805b, 0x3fe5, - 0x805c, 0x279d, - 0x805d, 0x279c, - 0x805e, 0x1072, - 0x8061, 0x3799, - 0x8062, 0x3fe3, - 0x8063, 0x3fdc, - 0x8064, 0x29cc, - 0x8066, 0x3fdb, - 0x8067, 0x29cd, - 0x806c, 0x2c2e, - 0x806f, 0x144c, - 0x8070, 0x144b, - 0x8071, 0x1449, - 0x8073, 0x144d, - 0x8075, 0x2f91, - 0x8076, 0x1517, - 0x8077, 0x1516, - 0x8078, 0x30eb, - 0x8079, 0x321a, - 0x807d, 0x16d3, - 0x807e, 0x16d2, - 0x807f, 0x0401, - 0x8080, 0x44fe, - 0x8082, 0x1cec, - 0x8084, 0x0ece, - 0x8085, 0x0d20, - 0x8086, 0x0ecd, - 0x8087, 0x1074, - 0x8089, 0x0402, - 0x808a, 0x17b3, - 0x808b, 0x0403, - 0x808f, 0x1a28, - 0x8090, 0x18db, - 0x8092, 0x18dc, - 0x8093, 0x04fe, - 0x8095, 0x18d9, - 0x8096, 0x04fd, - 0x8098, 0x0500, - 0x8099, 0x18da, - 0x809a, 0x0502, - 0x809b, 0x0501, - 0x809c, 0x18dd, - 0x809d, 0x04ff, - 0x809f, 0x4576, - 0x80a1, 0x0670, - 0x80a2, 0x066e, - 0x80a3, 0x1a2a, - 0x80a5, 0x066d, - 0x80a7, 0x37a0, - 0x80a9, 0x0672, - 0x80aa, 0x0674, - 0x80ab, 0x0671, - 0x80ad, 0x1a2d, - 0x80ae, 0x1a29, - 0x80af, 0x0675, - 0x80b1, 0x066f, - 0x80b2, 0x0503, - 0x80b4, 0x0673, - 0x80b5, 0x1a2c, - 0x80b6, 0x3eae, - 0x80b7, 0x4743, - 0x80b8, 0x1a2b, - 0x80ba, 0x066c, - 0x80bc, 0x4572, - 0x80bd, 0x3e7b, - 0x80c2, 0x1bd1, - 0x80c3, 0x07de, - 0x80c5, 0x1bd3, - 0x80c6, 0x3b74, - 0x80c7, 0x1bcd, - 0x80c8, 0x1bd0, - 0x80c9, 0x1bd9, - 0x80ca, 0x1bd7, - 0x80cc, 0x07e0, - 0x80cd, 0x1bdd, - 0x80ce, 0x07e3, - 0x80cf, 0x1bda, - 0x80d0, 0x1bd2, - 0x80d1, 0x1bcf, - 0x80d4, 0x227d, - 0x80d5, 0x1bd8, - 0x80d6, 0x07db, - 0x80d7, 0x1bdb, - 0x80d8, 0x1bcc, - 0x80d9, 0x1bd5, - 0x80da, 0x07dd, - 0x80db, 0x07e2, - 0x80dc, 0x1bd6, - 0x80dd, 0x07e6, - 0x80de, 0x07e4, - 0x80e0, 0x1bce, - 0x80e1, 0x07e1, - 0x80e3, 0x1bd4, - 0x80e4, 0x07e5, - 0x80e5, 0x07dc, - 0x80e6, 0x1bdc, - 0x80e9, 0x4744, - 0x80ec, 0x45e9, - 0x80ed, 0x098a, - 0x80ef, 0x0993, - 0x80f0, 0x0988, - 0x80f1, 0x0986, - 0x80f2, 0x1db7, - 0x80f3, 0x098e, - 0x80f4, 0x098b, - 0x80f5, 0x1db9, - 0x80f6, 0x4574, - 0x80f8, 0x098d, - 0x80f9, 0x1db8, - 0x80fa, 0x1db6, - 0x80fb, 0x1dbb, - 0x80fc, 0x0992, - 0x80fd, 0x0990, - 0x80fe, 0x227c, - 0x8100, 0x1dbc, - 0x8101, 0x1dba, - 0x8102, 0x0987, - 0x8103, 0x3fe7, - 0x8105, 0x0989, - 0x8106, 0x098c, - 0x8107, 0x37a2, - 0x8108, 0x098f, - 0x8109, 0x3b75, - 0x810a, 0x0991, - 0x810c, 0x4746, - 0x810e, 0x4747, - 0x8112, 0x4748, - 0x8114, 0x4749, - 0x8115, 0x200f, - 0x8116, 0x0b6b, - 0x8117, 0x3e6d, - 0x8118, 0x2006, - 0x8119, 0x2008, - 0x811a, 0x37a3, - 0x811b, 0x2009, - 0x811d, 0x2011, - 0x811e, 0x200d, - 0x811f, 0x200b, - 0x8121, 0x200e, - 0x8122, 0x2012, - 0x8123, 0x0b6c, - 0x8124, 0x0b70, - 0x8125, 0x2007, - 0x8127, 0x2010, - 0x8129, 0x0b6e, - 0x812a, 0x3a39, - 0x812b, 0x0b6d, - 0x812c, 0x200c, - 0x812d, 0x200a, - 0x812f, 0x0b6a, - 0x8130, 0x0b6f, - 0x8132, 0x3e79, - 0x8134, 0x45ec, - 0x8137, 0x3b72, - 0x8139, 0x0d26, - 0x813a, 0x2285, - 0x813d, 0x2283, - 0x813e, 0x0d28, - 0x8142, 0x3b76, - 0x8143, 0x227e, - 0x8144, 0x2527, - 0x8146, 0x0d27, - 0x8147, 0x2282, - 0x8148, 0x3e76, - 0x814a, 0x227f, - 0x814b, 0x0d23, - 0x814c, 0x0d29, - 0x814d, 0x2284, - 0x814e, 0x0d25, - 0x814f, 0x2281, - 0x8150, 0x1075, - 0x8151, 0x0d24, - 0x8152, 0x2280, - 0x8153, 0x0d2a, - 0x8154, 0x0d22, - 0x8155, 0x0d21, - 0x8156, 0x474c, - 0x8159, 0x474d, - 0x815b, 0x251f, - 0x815c, 0x251d, - 0x815e, 0x2523, - 0x8160, 0x251b, - 0x8161, 0x2528, - 0x8162, 0x2520, - 0x8164, 0x251a, - 0x8165, 0x0ed2, - 0x8166, 0x0ed8, - 0x8167, 0x2525, - 0x8169, 0x251e, - 0x816b, 0x0ed5, - 0x816d, 0x43c4, - 0x816e, 0x0ed3, - 0x816f, 0x2526, - 0x8170, 0x0ed0, - 0x8171, 0x0ecf, - 0x8172, 0x2521, - 0x8173, 0x0ed4, - 0x8174, 0x0d2b, - 0x8176, 0x2524, - 0x8177, 0x251c, - 0x8178, 0x0ed1, - 0x8179, 0x0ed6, - 0x817c, 0x4750, - 0x817f, 0x107a, - 0x8180, 0x1076, - 0x8182, 0x107b, - 0x8183, 0x27a0, - 0x8184, 0x43c5, - 0x8186, 0x279f, - 0x8187, 0x27a1, - 0x8188, 0x1078, - 0x8189, 0x279e, - 0x818a, 0x1079, - 0x818b, 0x27a4, - 0x818c, 0x27a3, - 0x818d, 0x27a2, - 0x818f, 0x1077, - 0x8193, 0x43c6, - 0x8195, 0x29d1, - 0x8197, 0x29d4, - 0x8198, 0x11ef, - 0x8199, 0x29d3, - 0x819a, 0x11ee, - 0x819b, 0x11ea, - 0x819e, 0x29d0, - 0x819f, 0x29cf, - 0x81a0, 0x11ed, - 0x81a2, 0x29d2, - 0x81a3, 0x29ce, - 0x81a5, 0x4753, - 0x81a6, 0x2c30, - 0x81a7, 0x2c3a, - 0x81a8, 0x1331, - 0x81a9, 0x1330, - 0x81aa, 0x4364, - 0x81ab, 0x2c34, - 0x81ac, 0x2c36, - 0x81ae, 0x2c31, - 0x81b0, 0x2c35, - 0x81b1, 0x2c2f, - 0x81b2, 0x2c38, - 0x81b3, 0x132f, - 0x81b4, 0x2c37, - 0x81b5, 0x2c33, - 0x81b6, 0x3eb2, - 0x81b7, 0x2c39, - 0x81b9, 0x2c32, - 0x81ba, 0x1450, - 0x81bb, 0x2e06, - 0x81bc, 0x2e0c, - 0x81bd, 0x1454, - 0x81be, 0x1456, - 0x81bf, 0x1453, - 0x81c0, 0x1452, - 0x81c1, 0x4755, - 0x81c2, 0x1451, - 0x81c3, 0x144f, - 0x81c4, 0x2e07, - 0x81c5, 0x2e0a, - 0x81c6, 0x144e, - 0x81c7, 0x2e0b, - 0x81c8, 0x3fee, - 0x81c9, 0x1455, - 0x81ca, 0x2e09, - 0x81cc, 0x2e08, - 0x81cd, 0x1518, - 0x81cf, 0x1519, - 0x81d0, 0x2f94, - 0x81d1, 0x2f92, - 0x81d5, 0x30ed, - 0x81d7, 0x30ec, - 0x81d8, 0x15b3, - 0x81d9, 0x321c, - 0x81da, 0x1635, - 0x81db, 0x321b, - 0x81dd, 0x32f5, - 0x81de, 0x33a5, - 0x81df, 0x16d4, - 0x81e0, 0x34dd, - 0x81e2, 0x1706, - 0x81e3, 0x0405, - 0x81e4, 0x4756, - 0x81e5, 0x0676, - 0x81e6, 0x2286, - 0x81e7, 0x107c, - 0x81e8, 0x1457, - 0x81e9, 0x2e0d, - 0x81ea, 0x0406, - 0x81ec, 0x0995, - 0x81ed, 0x0994, - 0x81ee, 0x2287, - 0x81ef, 0x42d1, - 0x81f2, 0x2c3b, - 0x81f3, 0x0407, - 0x81f4, 0x07e7, - 0x81f6, 0x3d61, - 0x81f7, 0x2288, - 0x81fa, 0x107d, - 0x81fb, 0x1332, - 0x81fc, 0x0408, - 0x81fe, 0x0677, - 0x81ff, 0x1bde, - 0x8200, 0x0996, - 0x8201, 0x1dbd, - 0x8202, 0x0b71, - 0x8204, 0x228b, - 0x8205, 0x0ed9, - 0x8207, 0x107e, - 0x8208, 0x1333, - 0x8209, 0x1458, - 0x820a, 0x151a, - 0x820b, 0x30ee, - 0x820c, 0x0409, - 0x820d, 0x0678, - 0x8210, 0x0997, - 0x8211, 0x2013, - 0x8212, 0x0d2c, - 0x8214, 0x107f, - 0x8215, 0x27a5, - 0x8216, 0x29d5, - 0x8218, 0x37aa, - 0x821a, 0x3fe1, - 0x821b, 0x040a, - 0x821c, 0x0d2d, - 0x821d, 0x2529, - 0x821e, 0x1080, - 0x821f, 0x040b, - 0x8220, 0x1a2e, - 0x8221, 0x1bdf, - 0x8222, 0x07e8, - 0x8225, 0x1dbf, - 0x8226, 0x420d, - 0x8228, 0x099a, - 0x8229, 0x37b0, - 0x822a, 0x0998, - 0x822c, 0x099b, - 0x822d, 0x3ed0, - 0x822f, 0x1dbe, - 0x8232, 0x2018, - 0x8233, 0x2015, - 0x8234, 0x2017, - 0x8235, 0x0b72, - 0x8236, 0x0b74, - 0x8237, 0x0b73, - 0x8238, 0x2014, - 0x8239, 0x0b75, - 0x823a, 0x2016, - 0x823c, 0x228c, - 0x823e, 0x4582, - 0x823f, 0x228e, - 0x8240, 0x252c, - 0x8242, 0x252d, - 0x8244, 0x252b, - 0x8245, 0x252e, - 0x8247, 0x0eda, - 0x8249, 0x252a, - 0x824b, 0x1081, - 0x824e, 0x29da, - 0x824f, 0x29d6, - 0x8250, 0x29d9, - 0x8251, 0x29db, - 0x8252, 0x29d8, - 0x8253, 0x29d7, - 0x8254, 0x4757, - 0x8255, 0x2c3c, - 0x8258, 0x1334, - 0x825a, 0x2e0f, - 0x825b, 0x2e0e, - 0x825c, 0x2e10, - 0x825e, 0x2f96, - 0x825f, 0x2f95, - 0x8261, 0x30f0, - 0x8262, 0x3b7a, - 0x8263, 0x30f1, - 0x8264, 0x30ef, - 0x8265, 0x3b7b, - 0x8266, 0x1636, - 0x8268, 0x321d, - 0x826b, 0x33a6, - 0x826c, 0x342d, - 0x826d, 0x3496, - 0x826e, 0x040c, - 0x826f, 0x0504, - 0x8271, 0x1459, - 0x8272, 0x040d, - 0x8274, 0x2019, - 0x8275, 0x228f, - 0x8276, 0x4759, - 0x8277, 0x172e, - 0x8278, 0x1813, - 0x8279, 0x4722, - 0x827a, 0x4563, - 0x827b, 0x37c8, - 0x827c, 0x1814, - 0x827d, 0x1816, - 0x827e, 0x040e, - 0x827f, 0x1817, - 0x8280, 0x1815, - 0x8283, 0x18e5, - 0x8285, 0x18e0, - 0x8287, 0x4132, - 0x828a, 0x18e4, - 0x828b, 0x0506, - 0x828d, 0x0507, - 0x828e, 0x18e1, - 0x828f, 0x18df, - 0x8290, 0x18de, - 0x8291, 0x18e2, - 0x8292, 0x0505, - 0x8293, 0x18e3, - 0x8294, 0x1be0, - 0x8298, 0x1a33, - 0x8299, 0x067b, - 0x829a, 0x1a32, - 0x829b, 0x1a34, - 0x829d, 0x067a, - 0x829e, 0x1a39, - 0x829f, 0x067e, - 0x82a0, 0x1a2f, - 0x82a1, 0x1a3d, - 0x82a2, 0x1a43, - 0x82a3, 0x0685, - 0x82a4, 0x1a40, - 0x82a5, 0x0682, - 0x82a6, 0x3d73, - 0x82a7, 0x1a36, - 0x82a8, 0x1a3c, - 0x82a9, 0x1a3e, - 0x82aa, 0x37bc, - 0x82ab, 0x1a31, - 0x82ac, 0x0681, - 0x82ad, 0x067c, - 0x82ae, 0x1a37, - 0x82af, 0x0683, - 0x82b0, 0x0686, - 0x82b1, 0x0680, - 0x82b3, 0x0679, - 0x82b4, 0x1a3b, - 0x82b5, 0x1a35, - 0x82b6, 0x1a42, - 0x82b7, 0x0688, - 0x82b8, 0x0684, - 0x82b9, 0x067f, - 0x82ba, 0x1a3a, - 0x82bb, 0x099c, - 0x82bc, 0x1a38, - 0x82bd, 0x067d, - 0x82be, 0x0687, - 0x82c0, 0x1a30, - 0x82c2, 0x1a3f, - 0x82c3, 0x1a41, - 0x82c4, 0x45e3, - 0x82ca, 0x475a, - 0x82cf, 0x4564, - 0x82d0, 0x37c1, - 0x82d1, 0x07f9, - 0x82d2, 0x07f3, - 0x82d3, 0x07fb, - 0x82d4, 0x07f8, - 0x82d5, 0x1be7, - 0x82d6, 0x1bea, - 0x82d7, 0x07f4, - 0x82d8, 0x475b, - 0x82d9, 0x1be1, - 0x82db, 0x07ed, - 0x82dc, 0x07f7, - 0x82de, 0x07fa, - 0x82df, 0x07fc, - 0x82e0, 0x1bf6, - 0x82e1, 0x1bed, - 0x82e2, 0x37c9, - 0x82e3, 0x07ec, - 0x82e4, 0x1bf5, - 0x82e5, 0x07f0, - 0x82e6, 0x07ee, - 0x82e7, 0x07e9, - 0x82e8, 0x1be5, - 0x82ea, 0x1bf4, - 0x82eb, 0x1be9, - 0x82ec, 0x1bec, - 0x82ed, 0x1bf9, - 0x82ee, 0x4018, - 0x82ef, 0x07fd, - 0x82f0, 0x1bf3, - 0x82f1, 0x07f5, - 0x82f2, 0x1bee, - 0x82f3, 0x1bf8, - 0x82f4, 0x1beb, - 0x82f5, 0x1bef, - 0x82f6, 0x1bf2, - 0x82f7, 0x3e77, - 0x82f9, 0x1be3, - 0x82fa, 0x1bf7, - 0x82fb, 0x1bf1, - 0x82fc, 0x412d, - 0x82fd, 0x3d92, - 0x82fe, 0x1be2, - 0x82ff, 0x43de, - 0x8300, 0x1be6, - 0x8301, 0x07f6, - 0x8302, 0x07f1, - 0x8303, 0x07ea, - 0x8304, 0x07ef, - 0x8305, 0x07eb, - 0x8306, 0x07fe, - 0x8307, 0x1be4, - 0x8308, 0x1dd0, - 0x8309, 0x07f2, - 0x830b, 0x3eb6, - 0x830c, 0x1bf0, - 0x830d, 0x1a7d, - 0x8316, 0x1dd3, - 0x8317, 0x09aa, - 0x8318, 0x37ca, - 0x8319, 0x1dc3, - 0x831a, 0x37c2, - 0x831b, 0x1dce, - 0x831c, 0x1dca, - 0x831d, 0x37d1, - 0x831e, 0x1ddd, - 0x8320, 0x1dd5, - 0x8322, 0x1dcb, - 0x8324, 0x1dd4, - 0x8325, 0x1dc5, - 0x8326, 0x1dc9, - 0x8327, 0x1de0, - 0x8328, 0x09ad, - 0x8329, 0x1dd8, - 0x832a, 0x1dcf, - 0x832b, 0x099d, - 0x832c, 0x1dde, - 0x832d, 0x1dc1, - 0x832f, 0x1dd7, - 0x8331, 0x09ac, - 0x8332, 0x09a7, - 0x8333, 0x1dc0, - 0x8334, 0x09a5, - 0x8335, 0x09a4, - 0x8336, 0x09a9, - 0x8337, 0x1dd6, - 0x8338, 0x09a1, - 0x8339, 0x09a8, - 0x833a, 0x1be8, - 0x833b, 0x2290, - 0x833c, 0x1dd1, - 0x833d, 0x3d2a, - 0x833f, 0x1dc7, - 0x8340, 0x09ab, - 0x8341, 0x1dc8, - 0x8342, 0x1dcc, - 0x8343, 0x09ae, - 0x8344, 0x1dc2, - 0x8345, 0x1dda, - 0x8347, 0x1dd9, - 0x8348, 0x1de1, - 0x8349, 0x09a3, - 0x834a, 0x09a0, - 0x834b, 0x1ddf, - 0x834c, 0x1ddb, - 0x834d, 0x1dd2, - 0x834e, 0x1dcd, - 0x834f, 0x09a6, - 0x8350, 0x09a2, - 0x8351, 0x1dc4, - 0x8352, 0x099e, - 0x8353, 0x1ddc, - 0x8354, 0x099f, - 0x8356, 0x1dc6, - 0x8357, 0x475d, - 0x8362, 0x37b6, - 0x8363, 0x41eb, - 0x8366, 0x3e1e, - 0x836f, 0x4565, - 0x8373, 0x201f, - 0x8374, 0x2021, - 0x8375, 0x2026, - 0x8376, 0x203a, - 0x8377, 0x0b83, - 0x8378, 0x0b79, - 0x837a, 0x201e, - 0x837b, 0x0b84, - 0x837d, 0x2029, - 0x837e, 0x2030, - 0x837f, 0x2036, - 0x8381, 0x2023, - 0x8383, 0x202a, - 0x8385, 0x37d3, - 0x8386, 0x0b86, - 0x8387, 0x2038, - 0x8388, 0x2033, - 0x8389, 0x0b81, - 0x838a, 0x0b7f, - 0x838b, 0x202f, - 0x838c, 0x202b, - 0x838d, 0x201d, - 0x838e, 0x0b76, - 0x838f, 0x2022, - 0x8390, 0x201a, - 0x8391, 0x37ec, - 0x8392, 0x0b7e, - 0x8393, 0x0b80, - 0x8394, 0x2027, - 0x8395, 0x2024, - 0x8396, 0x0b7b, - 0x8397, 0x2034, - 0x8398, 0x0b78, - 0x8399, 0x2025, - 0x839a, 0x22b9, - 0x839b, 0x202d, - 0x839c, 0x374d, - 0x839d, 0x202c, - 0x839e, 0x0b77, - 0x83a0, 0x0b82, - 0x83a2, 0x0b7a, - 0x83a3, 0x201b, - 0x83a4, 0x2020, - 0x83a5, 0x2031, - 0x83a6, 0x2037, - 0x83a7, 0x0b87, - 0x83a8, 0x201c, - 0x83a9, 0x2028, - 0x83aa, 0x202e, - 0x83ab, 0x0b7d, - 0x83ac, 0x37d6, - 0x83ae, 0x2039, - 0x83af, 0x2032, - 0x83b0, 0x2035, - 0x83b9, 0x42a7, - 0x83bd, 0x0b7c, - 0x83be, 0x3f59, - 0x83bf, 0x22a0, - 0x83c0, 0x2294, - 0x83c1, 0x0d35, - 0x83c2, 0x22b1, - 0x83c3, 0x22ba, - 0x83c4, 0x22bd, - 0x83c5, 0x0d33, - 0x83c6, 0x229c, - 0x83c7, 0x22b5, - 0x83c8, 0x229d, - 0x83c9, 0x22ab, - 0x83ca, 0x0d40, - 0x83cb, 0x22a7, - 0x83cc, 0x0d3d, - 0x83cd, 0x4055, - 0x83ce, 0x22a8, - 0x83cf, 0x2291, - 0x83d1, 0x22b6, - 0x83d3, 0x37d8, - 0x83d4, 0x0d46, - 0x83d5, 0x22b3, - 0x83d6, 0x22a9, - 0x83d7, 0x22bf, - 0x83d8, 0x22a4, - 0x83d9, 0x254e, - 0x83db, 0x22c2, - 0x83dc, 0x0d44, - 0x83dd, 0x22a2, - 0x83de, 0x22ae, - 0x83df, 0x0d47, - 0x83e0, 0x0d32, - 0x83e1, 0x22a6, - 0x83e2, 0x22c0, - 0x83e3, 0x229f, - 0x83e4, 0x2298, - 0x83e5, 0x22a3, - 0x83e7, 0x2297, - 0x83e8, 0x2295, - 0x83e9, 0x0d2e, - 0x83ea, 0x22b7, - 0x83eb, 0x229e, - 0x83ec, 0x22bb, - 0x83ed, 0x3d2c, - 0x83ee, 0x22bc, - 0x83ef, 0x0d36, - 0x83f0, 0x0d3b, - 0x83f1, 0x0d37, - 0x83f2, 0x0d3f, - 0x83f3, 0x22b2, - 0x83f4, 0x0d38, - 0x83f5, 0x22aa, - 0x83f6, 0x229a, - 0x83f8, 0x0d30, - 0x83f9, 0x2292, - 0x83fa, 0x22b4, - 0x83fb, 0x22be, - 0x83fc, 0x2299, - 0x83fd, 0x0d3e, - 0x83fe, 0x22c3, - 0x83ff, 0x22a5, - 0x8401, 0x22a1, - 0x8403, 0x0d2f, - 0x8404, 0x0d43, - 0x8405, 0x475f, - 0x8406, 0x22b0, - 0x8407, 0x0d45, - 0x8409, 0x22ac, - 0x840a, 0x0d3a, - 0x840b, 0x0d34, - 0x840c, 0x0d3c, - 0x840d, 0x0d31, - 0x840e, 0x0d42, - 0x840f, 0x22ad, - 0x8410, 0x229b, - 0x8411, 0x22af, - 0x8412, 0x2296, - 0x8413, 0x22b8, - 0x8414, 0x3c10, - 0x8416, 0x4037, - 0x8418, 0x3e7a, - 0x841b, 0x22c1, - 0x841c, 0x3eb3, - 0x8420, 0x3c55, - 0x8421, 0x3751, - 0x8423, 0x2293, - 0x8424, 0x4951, - 0x8426, 0x46d8, - 0x8429, 0x254d, - 0x842b, 0x2563, - 0x842c, 0x0eac, - 0x842d, 0x2552, - 0x842e, 0x422d, - 0x842f, 0x2550, - 0x8430, 0x253b, - 0x8431, 0x0ede, - 0x8432, 0x254b, - 0x8433, 0x255f, - 0x8434, 0x2547, - 0x8435, 0x0ee6, - 0x8436, 0x255e, - 0x8437, 0x2545, - 0x8438, 0x0d41, - 0x8439, 0x2555, - 0x843a, 0x2546, - 0x843b, 0x255c, - 0x843c, 0x0ee5, - 0x843d, 0x0edd, - 0x843e, 0x3d21, - 0x843f, 0x2530, - 0x8440, 0x2538, - 0x8442, 0x2551, - 0x8443, 0x2549, - 0x8444, 0x2562, - 0x8445, 0x254c, - 0x8446, 0x0eeb, - 0x8447, 0x255d, - 0x8448, 0x4718, - 0x8449, 0x0ee2, - 0x844a, 0x37e4, - 0x844b, 0x254f, - 0x844c, 0x2557, - 0x844d, 0x253c, - 0x844e, 0x2556, - 0x8450, 0x2567, - 0x8451, 0x2537, - 0x8452, 0x2558, - 0x8453, 0x3b7d, - 0x8454, 0x2565, - 0x8455, 0x398b, - 0x8456, 0x2531, - 0x8457, 0x0d39, - 0x8458, 0x37de, - 0x8459, 0x253f, - 0x845a, 0x253e, - 0x845b, 0x0ee4, - 0x845c, 0x3edb, - 0x845d, 0x2542, - 0x845e, 0x2544, - 0x845f, 0x2553, - 0x8460, 0x2564, - 0x8461, 0x0ee7, - 0x8462, 0x42da, - 0x8463, 0x0ee8, - 0x8464, 0x4761, - 0x8465, 0x2536, - 0x8466, 0x0ee0, - 0x8467, 0x253a, - 0x8468, 0x2560, - 0x8469, 0x0ee9, - 0x846b, 0x0ee1, - 0x846c, 0x0ee3, - 0x846d, 0x0eea, - 0x846e, 0x2566, - 0x846f, 0x2559, - 0x8470, 0x2554, - 0x8471, 0x37e0, - 0x8472, 0x3c93, - 0x8473, 0x2541, - 0x8474, 0x2540, - 0x8475, 0x0edf, - 0x8476, 0x2532, - 0x8477, 0x0edc, - 0x8478, 0x254a, - 0x8479, 0x2533, - 0x847a, 0x2548, - 0x847d, 0x253d, - 0x847e, 0x2561, - 0x847f, 0x394e, - 0x8480, 0x3b6e, - 0x8482, 0x0edb, - 0x8486, 0x2539, - 0x8488, 0x4762, - 0x848d, 0x2535, - 0x848e, 0x255b, - 0x848f, 0x2534, - 0x8490, 0x108e, - 0x8491, 0x27cd, - 0x8492, 0x3756, - 0x8493, 0x37ee, - 0x8494, 0x27bc, - 0x8496, 0x3b1d, - 0x8497, 0x27a6, - 0x8498, 0x27c4, - 0x8499, 0x1086, - 0x849a, 0x27b5, - 0x849b, 0x27bf, - 0x849c, 0x1089, - 0x849d, 0x27b8, - 0x849e, 0x1087, - 0x849f, 0x27a9, - 0x84a0, 0x27c7, - 0x84a1, 0x27a8, - 0x84a2, 0x27bb, - 0x84a3, 0x3b9e, - 0x84a4, 0x27a7, - 0x84a7, 0x27b9, - 0x84a8, 0x27c2, - 0x84a9, 0x27c0, - 0x84aa, 0x27b4, - 0x84ab, 0x27af, - 0x84ac, 0x27ad, - 0x84ad, 0x3d8c, - 0x84ae, 0x27ae, - 0x84af, 0x27c1, - 0x84b0, 0x27cc, - 0x84b1, 0x27b6, - 0x84b2, 0x1088, - 0x84b4, 0x27b1, - 0x84b6, 0x27c5, - 0x84b8, 0x108b, - 0x84b9, 0x27b0, - 0x84ba, 0x27aa, - 0x84bb, 0x27ba, - 0x84bc, 0x108f, - 0x84bd, 0x3c4c, - 0x84be, 0x4764, - 0x84bf, 0x1083, - 0x84c0, 0x108c, - 0x84c1, 0x27b2, - 0x84c2, 0x27ac, - 0x84c4, 0x1085, - 0x84c5, 0x255a, - 0x84c6, 0x1084, - 0x84c7, 0x27bd, - 0x84c9, 0x1082, - 0x84ca, 0x1091, - 0x84cb, 0x108a, - 0x84cc, 0x27be, - 0x84cd, 0x27b3, - 0x84ce, 0x27ab, - 0x84cf, 0x27c6, - 0x84d0, 0x27b7, - 0x84d1, 0x1090, - 0x84d2, 0x27ca, - 0x84d3, 0x108d, - 0x84d4, 0x27c9, - 0x84d6, 0x27c3, - 0x84d7, 0x27c8, - 0x84da, 0x3ff5, - 0x84db, 0x27cb, - 0x84de, 0x37ea, - 0x84e1, 0x4765, - 0x84e2, 0x37b5, - 0x84e4, 0x37ef, - 0x84e5, 0x3bd0, - 0x84e7, 0x2a03, - 0x84e9, 0x29f7, - 0x84ea, 0x29f6, - 0x84eb, 0x29f2, - 0x84ec, 0x11fb, - 0x84ee, 0x11f3, - 0x84ef, 0x2a06, - 0x84f0, 0x2a05, - 0x84f1, 0x252f, - 0x84f2, 0x29ef, - 0x84f3, 0x29f3, - 0x84f4, 0x29ed, - 0x84f6, 0x2a00, - 0x84f7, 0x29f1, - 0x84f8, 0x4766, - 0x84f9, 0x2a07, - 0x84fa, 0x29ea, - 0x84fb, 0x29e8, - 0x84fc, 0x29f4, - 0x84fd, 0x29fe, - 0x84fe, 0x29f9, - 0x84ff, 0x11fd, - 0x8500, 0x29df, - 0x8502, 0x29fd, - 0x8503, 0x398a, - 0x8505, 0x40eb, - 0x8506, 0x11fe, - 0x8507, 0x2543, - 0x8508, 0x29eb, - 0x8509, 0x29e2, - 0x850a, 0x29e5, - 0x850b, 0x2a0b, - 0x850c, 0x29ec, - 0x850d, 0x29e3, - 0x850e, 0x29e1, - 0x850f, 0x29de, - 0x8510, 0x4767, - 0x8511, 0x11f7, - 0x8512, 0x29f5, - 0x8513, 0x11f6, - 0x8514, 0x11fa, - 0x8515, 0x29f0, - 0x8516, 0x29f8, - 0x8517, 0x11f0, - 0x8518, 0x2a08, - 0x8519, 0x2a0c, - 0x851a, 0x11f2, - 0x851c, 0x29e7, - 0x851d, 0x29fb, - 0x851e, 0x29ff, - 0x851f, 0x29e4, - 0x8520, 0x2a09, - 0x8521, 0x11f9, - 0x8523, 0x11f8, - 0x8524, 0x29dc, - 0x8525, 0x11fc, - 0x8526, 0x2a02, - 0x8527, 0x29e6, - 0x8528, 0x29fa, - 0x8529, 0x29e0, - 0x852a, 0x29ee, - 0x852b, 0x29e9, - 0x852c, 0x11f4, - 0x852e, 0x29fc, - 0x852f, 0x2a0d, - 0x8530, 0x2a0a, - 0x8531, 0x2a01, - 0x8533, 0x4228, - 0x8534, 0x37f4, - 0x8538, 0x4768, - 0x853b, 0x29dd, - 0x853d, 0x11f1, - 0x853e, 0x2c4f, - 0x8540, 0x2c46, - 0x8541, 0x2c49, - 0x8542, 0x4062, - 0x8543, 0x133b, - 0x8544, 0x2c4b, - 0x8545, 0x2c40, - 0x8546, 0x2c47, - 0x8547, 0x2c4d, - 0x8548, 0x1338, - 0x8549, 0x133c, - 0x854a, 0x1336, - 0x854b, 0x37c0, - 0x854c, 0x400f, - 0x854d, 0x2c42, - 0x854e, 0x2c52, - 0x8551, 0x2c4c, - 0x8552, 0x4769, - 0x8553, 0x2c43, - 0x8554, 0x2c5b, - 0x8555, 0x2c55, - 0x8556, 0x2c3f, - 0x8557, 0x2e23, - 0x8558, 0x2c45, - 0x8559, 0x1337, - 0x855a, 0x37db, - 0x855b, 0x2c50, - 0x855d, 0x2c5a, - 0x855e, 0x133f, - 0x8560, 0x2c57, - 0x8561, 0x2c44, - 0x8562, 0x2c4a, - 0x8563, 0x2c4e, - 0x8564, 0x2c48, - 0x8565, 0x2c5c, - 0x8566, 0x2c59, - 0x8567, 0x2c56, - 0x8568, 0x1339, - 0x856a, 0x133e, - 0x856b, 0x2c41, - 0x856c, 0x2c5d, - 0x856d, 0x133d, - 0x856e, 0x2c53, - 0x856f, 0x476b, - 0x8571, 0x2c51, - 0x8573, 0x37f8, - 0x8575, 0x2c54, - 0x8576, 0x2e30, - 0x8577, 0x2e1d, - 0x8578, 0x2e22, - 0x8579, 0x2e2f, - 0x857a, 0x2e21, - 0x857b, 0x2e19, - 0x857c, 0x2e1e, - 0x857e, 0x145c, - 0x8580, 0x2e12, - 0x8581, 0x2e2a, - 0x8582, 0x2e2c, - 0x8583, 0x2e11, - 0x8584, 0x145b, - 0x8585, 0x2e2e, - 0x8586, 0x2e26, - 0x8587, 0x1462, - 0x8588, 0x2e2d, - 0x8589, 0x2e1f, - 0x858a, 0x1464, - 0x858b, 0x2e17, - 0x858c, 0x2c58, - 0x858d, 0x2e27, - 0x858e, 0x2e24, - 0x858f, 0x2e13, - 0x8590, 0x2e32, - 0x8591, 0x145e, - 0x8594, 0x145f, - 0x8595, 0x2e15, - 0x8596, 0x2e25, - 0x8598, 0x2e31, - 0x8599, 0x2e28, - 0x859a, 0x2e1b, - 0x859b, 0x1461, - 0x859c, 0x145d, - 0x859d, 0x2e29, - 0x859e, 0x2e1c, - 0x859f, 0x2e33, - 0x85a0, 0x2e16, - 0x85a1, 0x2e20, - 0x85a2, 0x2e2b, - 0x85a3, 0x2e18, - 0x85a4, 0x2e1a, - 0x85a6, 0x1465, - 0x85a7, 0x2e14, - 0x85a8, 0x1463, - 0x85a9, 0x151c, - 0x85aa, 0x145a, - 0x85af, 0x1460, - 0x85b0, 0x1520, - 0x85b1, 0x2fa6, - 0x85b3, 0x2f9c, - 0x85b4, 0x2f97, - 0x85b5, 0x2f9d, - 0x85b6, 0x2fa7, - 0x85b7, 0x2fab, - 0x85b8, 0x2faa, - 0x85b9, 0x1522, - 0x85ba, 0x1521, - 0x85bd, 0x2f9e, - 0x85be, 0x2fac, - 0x85bf, 0x2fa1, - 0x85c0, 0x2f99, - 0x85c1, 0x37fe, - 0x85c2, 0x2f9b, - 0x85c3, 0x2f9a, - 0x85c4, 0x2fa0, - 0x85c5, 0x2fa5, - 0x85c6, 0x2f98, - 0x85c7, 0x2f9f, - 0x85c8, 0x2fa4, - 0x85c9, 0x151f, - 0x85cb, 0x2fa2, - 0x85cd, 0x151d, - 0x85ce, 0x2fa3, - 0x85cf, 0x151b, - 0x85d0, 0x151e, - 0x85d1, 0x3101, - 0x85d2, 0x2fa8, - 0x85d5, 0x15b7, - 0x85d7, 0x30f9, - 0x85d8, 0x30fd, - 0x85d9, 0x30f5, - 0x85da, 0x30f8, - 0x85dc, 0x3100, - 0x85dd, 0x15b5, - 0x85de, 0x3105, - 0x85df, 0x30fe, - 0x85e0, 0x476d, - 0x85e1, 0x30f6, - 0x85e2, 0x3106, - 0x85e3, 0x30ff, - 0x85e4, 0x15b8, - 0x85e6, 0x3103, - 0x85e8, 0x30f7, - 0x85e9, 0x15b4, - 0x85ea, 0x15b6, - 0x85eb, 0x30f2, - 0x85ec, 0x30fa, - 0x85ed, 0x30f4, - 0x85ee, 0x3c56, - 0x85ef, 0x3104, - 0x85f0, 0x3102, - 0x85f1, 0x30f3, - 0x85f2, 0x30fb, - 0x85f6, 0x3225, - 0x85f7, 0x15ba, - 0x85f8, 0x30fc, - 0x85f9, 0x1638, - 0x85fa, 0x163a, - 0x85fb, 0x1637, - 0x85fc, 0x3c50, - 0x85fd, 0x322a, - 0x85fe, 0x3222, - 0x85ff, 0x3220, - 0x8600, 0x3224, - 0x8601, 0x3221, - 0x8602, 0x3800, - 0x8604, 0x3226, - 0x8605, 0x3228, - 0x8606, 0x163b, - 0x8607, 0x163d, - 0x8609, 0x3227, - 0x860a, 0x163e, - 0x860b, 0x163c, - 0x860c, 0x3229, - 0x860d, 0x4064, - 0x8610, 0x3b7f, - 0x8611, 0x1639, - 0x8614, 0x46be, - 0x8616, 0x37fb, - 0x8617, 0x1685, - 0x8618, 0x32f6, - 0x8619, 0x32fc, - 0x861a, 0x1687, - 0x861b, 0x3223, - 0x861c, 0x32fb, - 0x861e, 0x3302, - 0x861f, 0x32f9, - 0x8620, 0x3300, - 0x8621, 0x32ff, - 0x8622, 0x321f, - 0x8623, 0x32fa, - 0x8624, 0x2fa9, - 0x8625, 0x3303, - 0x8626, 0x32f8, - 0x8627, 0x32fd, - 0x8628, 0x3805, - 0x8629, 0x3301, - 0x862a, 0x32f7, - 0x862c, 0x33aa, - 0x862d, 0x1686, - 0x862e, 0x32fe, - 0x862f, 0x3f9e, - 0x8631, 0x3432, - 0x8632, 0x33ab, - 0x8633, 0x33a9, - 0x8634, 0x33a7, - 0x8636, 0x33ac, - 0x8638, 0x1707, - 0x8639, 0x3430, - 0x863a, 0x342e, - 0x863b, 0x3433, - 0x863c, 0x3431, - 0x863e, 0x3434, - 0x863f, 0x1708, - 0x8640, 0x342f, - 0x8642, 0x38c1, - 0x8643, 0x3497, - 0x8645, 0x3b66, - 0x8646, 0x34df, - 0x864b, 0x353e, - 0x864c, 0x3536, - 0x864d, 0x1818, - 0x864e, 0x0689, - 0x8650, 0x07ff, - 0x8652, 0x1de3, - 0x8653, 0x1de2, - 0x8654, 0x09af, - 0x8655, 0x0b88, - 0x8656, 0x203c, - 0x8659, 0x203b, - 0x865b, 0x0d48, - 0x865c, 0x0eed, - 0x865e, 0x0eec, - 0x865f, 0x0eee, - 0x8661, 0x27ce, - 0x8662, 0x2a0e, - 0x8663, 0x2c5e, - 0x8664, 0x2c60, - 0x8665, 0x2c5f, - 0x8667, 0x1466, - 0x8668, 0x2e34, - 0x8669, 0x2fad, - 0x866a, 0x351e, - 0x866b, 0x040f, - 0x866c, 0x3813, - 0x866d, 0x1a46, - 0x866f, 0x1a45, - 0x8670, 0x1a44, - 0x8671, 0x068a, - 0x8672, 0x476f, - 0x8673, 0x1bfd, - 0x8674, 0x1bfb, - 0x8677, 0x1bfa, - 0x8679, 0x0800, - 0x867a, 0x0802, - 0x867b, 0x0801, - 0x867c, 0x1bfc, - 0x867e, 0x380a, - 0x8685, 0x1def, - 0x8686, 0x1dec, - 0x8687, 0x1dea, - 0x868a, 0x09b0, - 0x868b, 0x1ded, - 0x868c, 0x09b5, - 0x868d, 0x1de7, - 0x868e, 0x1df6, - 0x8690, 0x1df8, - 0x8691, 0x1de8, - 0x8692, 0x4770, - 0x8693, 0x09b2, - 0x8694, 0x1df9, - 0x8695, 0x1df4, - 0x8696, 0x1de6, - 0x8697, 0x1deb, - 0x8698, 0x1df5, - 0x8699, 0x1df1, - 0x869a, 0x1dee, - 0x869c, 0x09b7, - 0x869d, 0x1df7, - 0x869e, 0x1de9, - 0x86a0, 0x3b88, - 0x86a1, 0x1df2, - 0x86a2, 0x1de4, - 0x86a3, 0x09b6, - 0x86a4, 0x09b3, - 0x86a5, 0x1df0, - 0x86a7, 0x1df3, - 0x86a8, 0x1de5, - 0x86a9, 0x09b4, - 0x86aa, 0x09b1, - 0x86ad, 0x3f06, - 0x86af, 0x0b92, - 0x86b0, 0x2043, - 0x86b1, 0x0b91, - 0x86b2, 0x43e0, - 0x86b3, 0x2046, - 0x86b4, 0x2049, - 0x86b5, 0x0b8e, - 0x86b6, 0x0b8c, - 0x86b7, 0x203e, - 0x86b8, 0x2047, - 0x86b9, 0x2045, - 0x86ba, 0x2042, - 0x86bb, 0x204a, - 0x86bd, 0x204d, - 0x86bf, 0x203d, - 0x86c0, 0x0b8b, - 0x86c1, 0x2040, - 0x86c2, 0x203f, - 0x86c3, 0x204c, - 0x86c4, 0x0b8d, - 0x86c5, 0x2041, - 0x86c6, 0x0b8f, - 0x86c7, 0x0b8a, - 0x86c8, 0x2044, - 0x86c9, 0x0b93, - 0x86cb, 0x0b90, - 0x86cc, 0x2048, - 0x86d0, 0x0d4f, - 0x86d1, 0x22d2, - 0x86d3, 0x22c7, - 0x86d4, 0x0d4c, - 0x86d6, 0x256d, - 0x86d7, 0x22d0, - 0x86d8, 0x22c4, - 0x86d9, 0x0d4a, - 0x86da, 0x22c9, - 0x86db, 0x0d4d, - 0x86dc, 0x22cd, - 0x86dd, 0x22cb, - 0x86de, 0x0d50, - 0x86df, 0x0d49, - 0x86e2, 0x22c5, - 0x86e3, 0x22c8, - 0x86e4, 0x0d4e, - 0x86e6, 0x22c6, - 0x86e8, 0x22d1, - 0x86e9, 0x22cf, - 0x86ea, 0x22ca, - 0x86eb, 0x22cc, - 0x86ec, 0x22ce, - 0x86ed, 0x0d4b, - 0x86ef, 0x4771, - 0x86f5, 0x256e, - 0x86f6, 0x2574, - 0x86f7, 0x256a, - 0x86f8, 0x2570, - 0x86f9, 0x0eef, - 0x86fa, 0x256c, - 0x86fb, 0x0ef5, - 0x86fe, 0x0ef4, - 0x8700, 0x0ef3, - 0x8701, 0x2573, - 0x8702, 0x0ef6, - 0x8704, 0x2569, - 0x8705, 0x2576, - 0x8706, 0x0ef8, - 0x8707, 0x0ef2, - 0x8708, 0x0ef1, - 0x8709, 0x2572, - 0x870a, 0x0ef9, - 0x870b, 0x2568, - 0x870c, 0x256b, - 0x870d, 0x2575, - 0x870e, 0x2571, - 0x8711, 0x27ee, - 0x8712, 0x27e3, - 0x8713, 0x0ef0, - 0x8718, 0x1098, - 0x8719, 0x27d7, - 0x871a, 0x27ec, - 0x871b, 0x27d8, - 0x871c, 0x1093, - 0x871e, 0x27d5, - 0x8720, 0x27de, - 0x8721, 0x27d6, - 0x8722, 0x1095, - 0x8723, 0x27d0, - 0x8724, 0x27eb, - 0x8725, 0x1096, - 0x8726, 0x27e8, - 0x8728, 0x27d1, - 0x8729, 0x109b, - 0x872a, 0x27e0, - 0x872c, 0x27da, - 0x872d, 0x27e1, - 0x872e, 0x27d4, - 0x8730, 0x27ed, - 0x8731, 0x27e5, - 0x8732, 0x27df, - 0x8733, 0x27cf, - 0x8734, 0x1097, - 0x8735, 0x27e6, - 0x8737, 0x109a, - 0x8738, 0x27ea, - 0x873a, 0x27e4, - 0x873b, 0x1094, - 0x873c, 0x27e2, - 0x873e, 0x27dc, - 0x873f, 0x1092, - 0x8740, 0x27d3, - 0x8741, 0x27db, - 0x8742, 0x27e7, - 0x8743, 0x27d9, - 0x8746, 0x27dd, - 0x874c, 0x1208, - 0x874d, 0x256f, - 0x874e, 0x2a20, - 0x874f, 0x2a29, - 0x8750, 0x2a1f, - 0x8751, 0x2a1b, - 0x8752, 0x2a18, - 0x8753, 0x1209, - 0x8754, 0x2a16, - 0x8755, 0x1099, - 0x8756, 0x2a0f, - 0x8757, 0x1207, - 0x8758, 0x2a15, - 0x8759, 0x1206, - 0x875a, 0x2a1a, - 0x875b, 0x2a17, - 0x875c, 0x2a27, - 0x875d, 0x2a22, - 0x875e, 0x2a1c, - 0x875f, 0x2a21, - 0x8760, 0x1202, - 0x8761, 0x2a19, - 0x8762, 0x2a2c, - 0x8763, 0x2a10, - 0x8765, 0x2a28, - 0x8766, 0x1203, - 0x8767, 0x2a2d, - 0x8768, 0x1205, - 0x8769, 0x2a2e, - 0x876a, 0x2a1e, - 0x876b, 0x27d2, - 0x876c, 0x2a24, - 0x876d, 0x2a1d, - 0x876e, 0x2a26, - 0x876f, 0x2a23, - 0x8770, 0x3e6c, - 0x8771, 0x380b, - 0x8773, 0x2a14, - 0x8774, 0x1200, - 0x8775, 0x2a2b, - 0x8776, 0x1201, - 0x8777, 0x2a12, - 0x8778, 0x1204, - 0x8779, 0x2c6b, - 0x877a, 0x2a25, - 0x877b, 0x2a2a, - 0x877d, 0x4045, - 0x8781, 0x2c68, - 0x8782, 0x11ff, - 0x8783, 0x1340, - 0x8784, 0x2c72, - 0x8785, 0x2c6e, - 0x8786, 0x3eb0, - 0x8787, 0x2c6c, - 0x8788, 0x2c67, - 0x8789, 0x2c76, - 0x878b, 0x43e2, - 0x878c, 0x3fef, - 0x878d, 0x1344, - 0x878f, 0x2c63, - 0x8790, 0x2c6f, - 0x8792, 0x2c66, - 0x8793, 0x2c65, - 0x8794, 0x2c73, - 0x8796, 0x2c69, - 0x8797, 0x2c64, - 0x8798, 0x2c6a, - 0x879a, 0x2c75, - 0x879b, 0x2c62, - 0x879c, 0x2c74, - 0x879d, 0x2c71, - 0x879e, 0x1342, - 0x879f, 0x1341, - 0x87a2, 0x1343, - 0x87a3, 0x2c6d, - 0x87a4, 0x2c61, - 0x87a5, 0x3d88, - 0x87a9, 0x3fec, - 0x87aa, 0x2e36, - 0x87ab, 0x146c, - 0x87ac, 0x2e3a, - 0x87ad, 0x2e37, - 0x87ae, 0x2e3e, - 0x87af, 0x2e44, - 0x87b0, 0x2e39, - 0x87b1, 0x380f, - 0x87b2, 0x2e4d, - 0x87b3, 0x1469, - 0x87b4, 0x2e47, - 0x87b5, 0x2e3c, - 0x87b6, 0x2e48, - 0x87b7, 0x2e43, - 0x87b8, 0x2e4a, - 0x87b9, 0x2e3b, - 0x87ba, 0x146e, - 0x87bb, 0x146d, - 0x87bc, 0x2e3d, - 0x87bd, 0x2e4b, - 0x87be, 0x2e35, - 0x87bf, 0x2e49, - 0x87c0, 0x1467, - 0x87c1, 0x3ffc, - 0x87c2, 0x2e41, - 0x87c3, 0x2e40, - 0x87c4, 0x2e45, - 0x87c5, 0x2e38, - 0x87c6, 0x146b, - 0x87c8, 0x146f, - 0x87c9, 0x2e3f, - 0x87ca, 0x2e46, - 0x87cb, 0x1470, - 0x87cc, 0x2e42, - 0x87ce, 0x3fed, - 0x87d1, 0x1468, - 0x87d2, 0x146a, - 0x87d3, 0x2fba, - 0x87d4, 0x2fb8, - 0x87d6, 0x3f92, - 0x87d7, 0x2fbe, - 0x87d8, 0x2fbc, - 0x87d9, 0x2fbf, - 0x87da, 0x3810, - 0x87db, 0x2fb1, - 0x87dc, 0x2fb9, - 0x87dd, 0x2fc3, - 0x87de, 0x2e4c, - 0x87df, 0x2fb5, - 0x87e0, 0x1526, - 0x87e1, 0x2a13, - 0x87e2, 0x2fb0, - 0x87e3, 0x2fbd, - 0x87e4, 0x2fb7, - 0x87e5, 0x2fb4, - 0x87e6, 0x2faf, - 0x87e7, 0x2fae, - 0x87e8, 0x2fc2, - 0x87ea, 0x2fb3, - 0x87eb, 0x2fb2, - 0x87ec, 0x1524, - 0x87ed, 0x2fbb, - 0x87ee, 0x380d, - 0x87ef, 0x1523, - 0x87f2, 0x1525, - 0x87f3, 0x2fb6, - 0x87f4, 0x2fc1, - 0x87f5, 0x3fae, - 0x87f6, 0x310a, - 0x87f9, 0x15be, - 0x87fa, 0x3108, - 0x87fb, 0x15bb, - 0x87fc, 0x3110, - 0x87fe, 0x15bf, - 0x87ff, 0x3112, - 0x8800, 0x3107, - 0x8801, 0x2fc0, - 0x8802, 0x3114, - 0x8803, 0x3109, - 0x8804, 0x3eaf, - 0x8805, 0x15bc, - 0x8806, 0x310f, - 0x8808, 0x3111, - 0x8809, 0x310c, - 0x880a, 0x3113, - 0x880b, 0x310e, - 0x880c, 0x310d, - 0x880d, 0x15bd, - 0x880f, 0x3811, - 0x8810, 0x322c, - 0x8813, 0x322f, - 0x8814, 0x163f, - 0x8816, 0x3230, - 0x8817, 0x322e, - 0x8818, 0x3f7a, - 0x8819, 0x322b, - 0x881b, 0x3306, - 0x881c, 0x3309, - 0x881d, 0x3305, - 0x881f, 0x168b, - 0x8820, 0x3307, - 0x8821, 0x168a, - 0x8822, 0x1689, - 0x8823, 0x1688, - 0x8824, 0x3308, - 0x8825, 0x33b1, - 0x8826, 0x33af, - 0x8827, 0x3e07, - 0x8828, 0x33ae, - 0x8829, 0x3304, - 0x882a, 0x33b0, - 0x882b, 0x330a, - 0x882c, 0x33ad, - 0x882d, 0x3b8b, - 0x882e, 0x3437, - 0x882f, 0x3415, - 0x8830, 0x3435, - 0x8831, 0x1709, - 0x8832, 0x3436, - 0x8833, 0x3438, - 0x8835, 0x349a, - 0x8836, 0x1728, - 0x8837, 0x3499, - 0x8838, 0x3498, - 0x8839, 0x1729, - 0x883b, 0x1747, - 0x883c, 0x3508, - 0x883d, 0x3520, - 0x883e, 0x351f, - 0x883f, 0x3521, - 0x8840, 0x0410, - 0x8841, 0x1bfe, - 0x8842, 0x3f5a, - 0x8843, 0x1dfa, - 0x8845, 0x3816, - 0x8848, 0x22d3, - 0x884a, 0x330b, - 0x884b, 0x349b, - 0x884c, 0x0411, - 0x884d, 0x0803, - 0x884e, 0x1bff, - 0x884f, 0x3844, - 0x8852, 0x204f, - 0x8853, 0x0b94, - 0x8855, 0x22d5, - 0x8856, 0x22d4, - 0x8857, 0x0d51, - 0x8859, 0x0efa, - 0x885a, 0x2a2f, - 0x885b, 0x120a, - 0x885d, 0x120b, - 0x885e, 0x381b, - 0x8860, 0x3a46, - 0x8861, 0x1345, - 0x8862, 0x172a, - 0x8863, 0x0412, - 0x8864, 0x4502, - 0x8865, 0x3dfc, - 0x8867, 0x1c00, - 0x8868, 0x068c, - 0x8869, 0x1c02, - 0x886a, 0x1c01, - 0x886b, 0x0804, - 0x886d, 0x1dfc, - 0x886e, 0x3b8e, - 0x886f, 0x1e03, - 0x8870, 0x09b8, - 0x8871, 0x1e01, - 0x8872, 0x1dff, - 0x8874, 0x1e06, - 0x8875, 0x1dfd, - 0x8877, 0x09b9, - 0x8879, 0x09bd, - 0x887c, 0x1e07, - 0x887d, 0x09bc, - 0x887e, 0x1e05, - 0x887f, 0x1e02, - 0x8880, 0x1e00, - 0x8881, 0x09ba, - 0x8883, 0x1e04, - 0x8884, 0x42f7, - 0x8887, 0x3b90, - 0x8888, 0x0b96, - 0x8889, 0x2050, - 0x888b, 0x0b9b, - 0x888c, 0x2060, - 0x888d, 0x0b9a, - 0x888e, 0x2062, - 0x8891, 0x2056, - 0x8892, 0x0b98, - 0x8893, 0x2061, - 0x8895, 0x2051, - 0x8896, 0x0b99, - 0x8897, 0x205d, - 0x8898, 0x2059, - 0x8899, 0x205b, - 0x889a, 0x2055, - 0x889b, 0x205c, - 0x889c, 0x381c, - 0x889e, 0x0b95, - 0x889f, 0x2058, - 0x88a0, 0x3fa0, - 0x88a1, 0x2057, - 0x88a2, 0x2053, - 0x88a4, 0x205e, - 0x88a7, 0x205a, - 0x88a8, 0x2052, - 0x88aa, 0x2054, - 0x88ab, 0x0b97, - 0x88ac, 0x205f, - 0x88ae, 0x4775, - 0x88b1, 0x0d54, - 0x88b2, 0x22e0, - 0x88b4, 0x381e, - 0x88b6, 0x22dc, - 0x88b7, 0x22de, - 0x88b8, 0x22d9, - 0x88b9, 0x22d8, - 0x88ba, 0x22d6, - 0x88bc, 0x22dd, - 0x88bd, 0x22df, - 0x88be, 0x22db, - 0x88bf, 0x3b91, - 0x88c0, 0x22da, - 0x88c1, 0x0d52, - 0x88c5, 0x3820, - 0x88c7, 0x3eb1, - 0x88c9, 0x22e2, - 0x88ca, 0x0f02, - 0x88cb, 0x2578, - 0x88cc, 0x257e, - 0x88cd, 0x2579, - 0x88cf, 0x36ea, - 0x88d0, 0x257f, - 0x88d2, 0x0f04, - 0x88d4, 0x0efc, - 0x88d5, 0x0f03, - 0x88d6, 0x2577, - 0x88d7, 0x22d7, - 0x88d8, 0x0eff, - 0x88d9, 0x0efd, - 0x88da, 0x257d, - 0x88db, 0x257c, - 0x88dc, 0x0efe, - 0x88dd, 0x0f00, - 0x88de, 0x257b, - 0x88df, 0x0efb, - 0x88e1, 0x0f01, - 0x88e6, 0x3b92, - 0x88e7, 0x27f0, - 0x88e8, 0x10a2, - 0x88eb, 0x27fb, - 0x88ec, 0x27fa, - 0x88ee, 0x27f5, - 0x88ef, 0x10a4, - 0x88f0, 0x27f9, - 0x88f1, 0x27f1, - 0x88f3, 0x109c, - 0x88f4, 0x109e, - 0x88f5, 0x3e08, - 0x88f6, 0x27f7, - 0x88f7, 0x27ef, - 0x88f8, 0x10a0, - 0x88f9, 0x109f, - 0x88fa, 0x27f3, - 0x88fb, 0x27f8, - 0x88fc, 0x27f6, - 0x88fd, 0x10a1, - 0x88fe, 0x27f4, - 0x88ff, 0x4776, - 0x8900, 0x42fa, - 0x8901, 0x22e1, - 0x8902, 0x109d, - 0x8905, 0x2a30, - 0x8906, 0x2a37, - 0x8907, 0x120d, - 0x8909, 0x2a3b, - 0x890a, 0x1211, - 0x890b, 0x2a33, - 0x890c, 0x2a31, - 0x890e, 0x2a3a, - 0x8910, 0x120c, - 0x8911, 0x2a39, - 0x8912, 0x120e, - 0x8914, 0x2a32, - 0x8915, 0x1210, - 0x8916, 0x2a38, - 0x8917, 0x2a34, - 0x891a, 0x10a3, - 0x891e, 0x2c77, - 0x891f, 0x2c83, - 0x8921, 0x134a, - 0x8922, 0x2c7e, - 0x8923, 0x2c80, - 0x8924, 0x4777, - 0x8925, 0x1348, - 0x8926, 0x2c78, - 0x8927, 0x2c7c, - 0x8929, 0x2c7f, - 0x892a, 0x1346, - 0x892b, 0x1349, - 0x892c, 0x2c82, - 0x892d, 0x2c7a, - 0x892f, 0x2c81, - 0x8930, 0x2c79, - 0x8931, 0x2c7d, - 0x8932, 0x1347, - 0x8933, 0x2e4f, - 0x8935, 0x2e4e, - 0x8936, 0x1472, - 0x8937, 0x2e54, - 0x8938, 0x1474, - 0x893b, 0x1471, - 0x893c, 0x2e50, - 0x893d, 0x1475, - 0x893e, 0x2e51, - 0x8941, 0x2e52, - 0x8942, 0x2e55, - 0x8943, 0x3e16, - 0x8944, 0x1473, - 0x8946, 0x2fc8, - 0x8947, 0x43e3, - 0x8949, 0x2fcb, - 0x894b, 0x2fc5, - 0x894c, 0x2fc7, - 0x894d, 0x3b94, - 0x894f, 0x2fc6, - 0x8950, 0x2fc9, - 0x8952, 0x2e53, - 0x8953, 0x2fc4, - 0x8954, 0x3b96, - 0x8956, 0x15c2, - 0x8957, 0x3118, - 0x8958, 0x311b, - 0x8959, 0x311d, - 0x895a, 0x3116, - 0x895c, 0x311a, - 0x895d, 0x311c, - 0x895e, 0x15c3, - 0x895f, 0x15c1, - 0x8960, 0x15c0, - 0x8961, 0x3119, - 0x8962, 0x3115, - 0x8963, 0x3231, - 0x8964, 0x1641, - 0x8965, 0x3b93, - 0x8966, 0x3232, - 0x8969, 0x330d, - 0x896a, 0x168c, - 0x896b, 0x330f, - 0x896c, 0x168d, - 0x896d, 0x330c, - 0x896e, 0x330e, - 0x896f, 0x16d6, - 0x8971, 0x33b2, - 0x8972, 0x16d5, - 0x8973, 0x343b, - 0x8974, 0x343a, - 0x8976, 0x3439, - 0x8977, 0x3dea, - 0x8979, 0x34e2, - 0x897b, 0x34e5, - 0x897c, 0x34e4, - 0x897e, 0x1819, - 0x897f, 0x0413, - 0x8980, 0x4708, - 0x8981, 0x0805, - 0x8982, 0x2063, - 0x8983, 0x0d55, - 0x8985, 0x2580, - 0x8986, 0x1527, - 0x8987, 0x3822, - 0x8988, 0x311e, - 0x8989, 0x3fe9, - 0x898a, 0x3823, - 0x898b, 0x0508, - 0x898f, 0x0b9d, - 0x8991, 0x4778, - 0x8993, 0x0b9c, - 0x8994, 0x3fe0, - 0x8995, 0x22e3, - 0x8996, 0x0d56, - 0x8997, 0x22e5, - 0x8998, 0x22e4, - 0x899b, 0x2581, - 0x899c, 0x0f05, - 0x899d, 0x27fc, - 0x899e, 0x27ff, - 0x899f, 0x27fe, - 0x89a1, 0x27fd, - 0x89a2, 0x2a3c, - 0x89a3, 0x2a3e, - 0x89a4, 0x2a3d, - 0x89a5, 0x3d93, - 0x89a6, 0x134c, - 0x89a7, 0x3826, - 0x89a9, 0x3825, - 0x89aa, 0x134b, - 0x89ac, 0x1476, - 0x89ad, 0x2e56, - 0x89ae, 0x2e58, - 0x89af, 0x2e57, - 0x89b2, 0x1528, - 0x89b6, 0x3120, - 0x89b7, 0x311f, - 0x89b9, 0x3233, - 0x89ba, 0x1642, - 0x89bc, 0x3827, - 0x89bd, 0x168e, - 0x89be, 0x33b4, - 0x89bf, 0x33b3, - 0x89c0, 0x1748, - 0x89c1, 0x4503, - 0x89c6, 0x4566, - 0x89d2, 0x0509, - 0x89d3, 0x1c03, - 0x89d4, 0x0806, - 0x89d5, 0x2066, - 0x89d6, 0x2064, - 0x89d9, 0x2065, - 0x89da, 0x22e7, - 0x89dc, 0x2588, - 0x89dd, 0x22e6, - 0x89df, 0x2582, - 0x89e0, 0x2586, - 0x89e1, 0x2585, - 0x89e2, 0x2587, - 0x89e3, 0x0f06, - 0x89e4, 0x2584, - 0x89e5, 0x2583, - 0x89e6, 0x2589, - 0x89e7, 0x3829, - 0x89e8, 0x2802, - 0x89e9, 0x2800, - 0x89eb, 0x2801, - 0x89ec, 0x2a41, - 0x89ed, 0x2a3f, - 0x89f0, 0x2a40, - 0x89f1, 0x2c84, - 0x89f2, 0x2e59, - 0x89f4, 0x1529, - 0x89f6, 0x3121, - 0x89f7, 0x3234, - 0x89f8, 0x1643, - 0x89fa, 0x3310, - 0x89fb, 0x33b5, - 0x89fc, 0x16d7, - 0x89fe, 0x343c, - 0x89ff, 0x34e6, - 0x8a00, 0x050a, - 0x8a02, 0x0808, - 0x8a04, 0x1c04, - 0x8a07, 0x1c05, - 0x8a08, 0x0807, - 0x8a0a, 0x09c3, - 0x8a0c, 0x09c1, - 0x8a0e, 0x09c0, - 0x8a0f, 0x09c7, - 0x8a10, 0x09bf, - 0x8a11, 0x09c8, - 0x8a12, 0x1e08, - 0x8a13, 0x09c5, - 0x8a15, 0x09c2, - 0x8a16, 0x09c6, - 0x8a17, 0x09c4, - 0x8a18, 0x09be, - 0x8a1b, 0x0ba5, - 0x8a1c, 0x3ba3, - 0x8a1d, 0x0b9f, - 0x8a1e, 0x206a, - 0x8a1f, 0x0ba4, - 0x8a22, 0x0ba6, - 0x8a23, 0x0ba0, - 0x8a25, 0x0ba1, - 0x8a27, 0x2068, - 0x8a29, 0x43e5, - 0x8a2a, 0x0b9e, - 0x8a2b, 0x3bd1, - 0x8a2c, 0x2069, - 0x8a2d, 0x0ba3, - 0x8a30, 0x2067, - 0x8a31, 0x0ba2, - 0x8a34, 0x0d61, - 0x8a36, 0x0d63, - 0x8a38, 0x477a, - 0x8a39, 0x22eb, - 0x8a3a, 0x0d62, - 0x8a3b, 0x0d57, - 0x8a3c, 0x0d5b, - 0x8a3d, 0x3ba2, - 0x8a3e, 0x0f19, - 0x8a3f, 0x258e, - 0x8a40, 0x22ed, - 0x8a41, 0x0d5c, - 0x8a44, 0x22f0, - 0x8a46, 0x0d60, - 0x8a48, 0x22f3, - 0x8a49, 0x3ff0, - 0x8a4a, 0x22f5, - 0x8a4c, 0x22f6, - 0x8a4d, 0x22ea, - 0x8a4e, 0x22e9, - 0x8a4f, 0x22f7, - 0x8a50, 0x0d5f, - 0x8a51, 0x22f4, - 0x8a52, 0x22f2, - 0x8a54, 0x0d5d, - 0x8a55, 0x0d59, - 0x8a56, 0x0d64, - 0x8a57, 0x22ee, - 0x8a59, 0x22ec, - 0x8a5b, 0x0d5e, - 0x8a5e, 0x0d5a, - 0x8a60, 0x0d58, - 0x8a61, 0x258d, - 0x8a62, 0x0f14, - 0x8a63, 0x0f0f, - 0x8a66, 0x0f0a, - 0x8a67, 0x3f8e, - 0x8a68, 0x0f1a, - 0x8a69, 0x0f0b, - 0x8a6b, 0x0f07, - 0x8a6c, 0x0f16, - 0x8a6d, 0x0f13, - 0x8a6e, 0x0f15, - 0x8a70, 0x0f0c, - 0x8a71, 0x0f11, - 0x8a72, 0x0f08, - 0x8a74, 0x2595, - 0x8a75, 0x2592, - 0x8a76, 0x258a, - 0x8a77, 0x258f, - 0x8a79, 0x0f17, - 0x8a7a, 0x2596, - 0x8a7b, 0x0f18, - 0x8a7c, 0x0f0e, - 0x8a7e, 0x3fa5, - 0x8a7f, 0x258c, - 0x8a81, 0x2594, - 0x8a82, 0x2590, - 0x8a83, 0x2593, - 0x8a84, 0x2591, - 0x8a85, 0x0f12, - 0x8a86, 0x258b, - 0x8a87, 0x0f0d, - 0x8a8b, 0x2805, - 0x8a8c, 0x10a6, - 0x8a8d, 0x10a9, - 0x8a8f, 0x2807, - 0x8a90, 0x382f, - 0x8a91, 0x10b1, - 0x8a92, 0x2806, - 0x8a93, 0x10ab, - 0x8a94, 0x477b, - 0x8a95, 0x1216, - 0x8a96, 0x2808, - 0x8a98, 0x10b0, - 0x8a99, 0x2804, - 0x8a9a, 0x10b2, - 0x8a9c, 0x382c, - 0x8a9e, 0x10a7, - 0x8aa0, 0x0f10, - 0x8aa1, 0x10aa, - 0x8aa3, 0x10a8, - 0x8aa4, 0x10ac, - 0x8aa5, 0x10ae, - 0x8aa6, 0x10a5, - 0x8aa7, 0x10b3, - 0x8aa8, 0x10af, - 0x8aa9, 0x383d, - 0x8aaa, 0x10ad, - 0x8aab, 0x2803, - 0x8aaf, 0x3841, - 0x8ab0, 0x121d, - 0x8ab2, 0x1219, - 0x8ab4, 0x477c, - 0x8ab6, 0x1220, - 0x8ab8, 0x2a44, - 0x8ab9, 0x1221, - 0x8aba, 0x2a50, - 0x8abb, 0x2a49, - 0x8abc, 0x1212, - 0x8abd, 0x2a51, - 0x8abe, 0x2a4b, - 0x8abf, 0x121c, - 0x8ac0, 0x2a4c, - 0x8ac2, 0x121b, - 0x8ac3, 0x2a4f, - 0x8ac4, 0x1215, - 0x8ac5, 0x2a4d, - 0x8ac6, 0x2a43, - 0x8ac7, 0x1214, - 0x8ac8, 0x2c8f, - 0x8ac9, 0x121a, - 0x8acb, 0x1217, - 0x8acd, 0x121f, - 0x8acf, 0x2a42, - 0x8ad1, 0x2a46, - 0x8ad2, 0x1213, - 0x8ad3, 0x2a45, - 0x8ad4, 0x2a47, - 0x8ad6, 0x121e, - 0x8ad7, 0x2a4a, - 0x8ad8, 0x2a4e, - 0x8ad9, 0x2a52, - 0x8ada, 0x39c2, - 0x8adb, 0x1222, - 0x8adc, 0x1352, - 0x8add, 0x2c8a, - 0x8ade, 0x2c90, - 0x8adf, 0x2c8d, - 0x8ae0, 0x2c85, - 0x8ae1, 0x2c91, - 0x8ae2, 0x2c86, - 0x8ae4, 0x2c8c, - 0x8ae6, 0x134d, - 0x8ae7, 0x1353, - 0x8ae8, 0x2c92, - 0x8aea, 0x3dd9, - 0x8aeb, 0x134f, - 0x8aed, 0x1359, - 0x8aee, 0x1354, - 0x8aef, 0x2c94, - 0x8af0, 0x2c8e, - 0x8af1, 0x1350, - 0x8af2, 0x2c87, - 0x8af3, 0x135a, - 0x8af4, 0x2c88, - 0x8af6, 0x135b, - 0x8af7, 0x1358, - 0x8af8, 0x1218, - 0x8afa, 0x134e, - 0x8afb, 0x2c95, - 0x8afc, 0x135c, - 0x8afe, 0x1355, - 0x8aff, 0x2c93, - 0x8b00, 0x1351, - 0x8b01, 0x1356, - 0x8b04, 0x147e, - 0x8b05, 0x2e5f, - 0x8b06, 0x2e68, - 0x8b07, 0x2e65, - 0x8b08, 0x2e67, - 0x8b0a, 0x147b, - 0x8b0b, 0x2e60, - 0x8b0c, 0x3836, - 0x8b0d, 0x2e66, - 0x8b0e, 0x1477, - 0x8b0f, 0x2e62, - 0x8b10, 0x147f, - 0x8b11, 0x2e5e, - 0x8b12, 0x2e63, - 0x8b13, 0x2e6a, - 0x8b14, 0x2c8b, - 0x8b15, 0x2e64, - 0x8b16, 0x2e5d, - 0x8b17, 0x1478, - 0x8b18, 0x2e5c, - 0x8b19, 0x1479, - 0x8b1a, 0x2e6b, - 0x8b1b, 0x147a, - 0x8b1c, 0x2e69, - 0x8b1d, 0x147d, - 0x8b1e, 0x2e5b, - 0x8b1f, 0x3837, - 0x8b20, 0x147c, - 0x8b22, 0x2e61, - 0x8b23, 0x2fce, - 0x8b24, 0x2fdc, - 0x8b25, 0x2fd7, - 0x8b26, 0x2fd9, - 0x8b27, 0x2fcd, - 0x8b28, 0x152a, - 0x8b2a, 0x2fcc, - 0x8b2b, 0x152d, - 0x8b2c, 0x152c, - 0x8b2d, 0x3f99, - 0x8b2e, 0x2fdb, - 0x8b2f, 0x2fd3, - 0x8b30, 0x2fd0, - 0x8b31, 0x2fd6, - 0x8b33, 0x2fcf, - 0x8b35, 0x2fd1, - 0x8b36, 0x2fda, - 0x8b37, 0x2fd8, - 0x8b39, 0x152b, - 0x8b3a, 0x2fdf, - 0x8b3b, 0x2fdd, - 0x8b3c, 0x2fd4, - 0x8b3d, 0x2fde, - 0x8b3e, 0x2fd5, - 0x8b3f, 0x383a, - 0x8b40, 0x3125, - 0x8b41, 0x15c4, - 0x8b42, 0x312c, - 0x8b43, 0x3ff2, - 0x8b45, 0x3313, - 0x8b46, 0x15cb, - 0x8b47, 0x2fd2, - 0x8b48, 0x3123, - 0x8b49, 0x15c7, - 0x8b4a, 0x3124, - 0x8b4b, 0x3129, - 0x8b4c, 0x383b, - 0x8b4e, 0x15c9, - 0x8b50, 0x3122, - 0x8b51, 0x312b, - 0x8b52, 0x312d, - 0x8b53, 0x3126, - 0x8b54, 0x3128, - 0x8b55, 0x312a, - 0x8b56, 0x3127, - 0x8b57, 0x312e, - 0x8b58, 0x15c6, - 0x8b59, 0x15cc, - 0x8b5a, 0x15c8, - 0x8b5c, 0x15c5, - 0x8b5d, 0x3237, - 0x8b5e, 0x3db8, - 0x8b5f, 0x1648, - 0x8b60, 0x3235, - 0x8b62, 0x3dd4, - 0x8b63, 0x3239, - 0x8b65, 0x323a, - 0x8b66, 0x1646, - 0x8b67, 0x323b, - 0x8b68, 0x3238, - 0x8b69, 0x3bf7, - 0x8b6a, 0x3236, - 0x8b6b, 0x1649, - 0x8b6c, 0x1645, - 0x8b6d, 0x323c, - 0x8b6f, 0x1647, - 0x8b70, 0x1644, - 0x8b74, 0x168f, - 0x8b77, 0x1690, - 0x8b78, 0x3312, - 0x8b79, 0x3311, - 0x8b7a, 0x3314, - 0x8b7d, 0x1691, - 0x8b7e, 0x33b6, - 0x8b7f, 0x33bb, - 0x8b80, 0x16d8, - 0x8b81, 0x3d8d, - 0x8b82, 0x33b8, - 0x8b84, 0x33b7, - 0x8b85, 0x33ba, - 0x8b86, 0x33b9, - 0x8b88, 0x3440, - 0x8b8a, 0x170a, - 0x8b8b, 0x343f, - 0x8b8c, 0x343d, - 0x8b8e, 0x343e, - 0x8b90, 0x383f, - 0x8b92, 0x172c, - 0x8b93, 0x172b, - 0x8b94, 0x349c, - 0x8b96, 0x172d, - 0x8b98, 0x34e7, - 0x8b9a, 0x1754, - 0x8b9b, 0x3840, - 0x8b9c, 0x175a, - 0x8b9e, 0x3522, - 0x8b9f, 0x353f, - 0x8ba0, 0x4505, - 0x8bbe, 0x4567, - 0x8be2, 0x4568, - 0x8c37, 0x050b, - 0x8c39, 0x206b, - 0x8c3b, 0x206c, - 0x8c3c, 0x2597, - 0x8c3d, 0x2809, - 0x8c3e, 0x2a53, - 0x8c3f, 0x1481, - 0x8c41, 0x1480, - 0x8c42, 0x2fe0, - 0x8c43, 0x312f, - 0x8c45, 0x3441, - 0x8c46, 0x050c, - 0x8c47, 0x1e09, - 0x8c48, 0x09c9, - 0x8c49, 0x0ba7, - 0x8c4a, 0x2599, - 0x8c4b, 0x2598, - 0x8c4c, 0x1223, - 0x8c4d, 0x2a54, - 0x8c4e, 0x1224, - 0x8c4f, 0x2e6c, - 0x8c50, 0x152e, - 0x8c51, 0x477d, - 0x8c54, 0x1763, - 0x8c55, 0x050d, - 0x8c56, 0x1a48, - 0x8c57, 0x1e0a, - 0x8c5a, 0x0ba8, - 0x8c5c, 0x206d, - 0x8c5f, 0x22f8, - 0x8c61, 0x0d65, - 0x8c62, 0x0f1b, - 0x8c64, 0x259b, - 0x8c65, 0x259a, - 0x8c66, 0x259c, - 0x8c68, 0x280a, - 0x8c6a, 0x10b4, - 0x8c6b, 0x135d, - 0x8c6c, 0x1225, - 0x8c6d, 0x135e, - 0x8c6f, 0x2e70, - 0x8c70, 0x2e6d, - 0x8c71, 0x2e6f, - 0x8c72, 0x2e6e, - 0x8c73, 0x1482, - 0x8c75, 0x2fe1, - 0x8c76, 0x3131, - 0x8c77, 0x3130, - 0x8c78, 0x18e7, - 0x8c79, 0x09cb, - 0x8c7a, 0x09ca, - 0x8c7b, 0x1e0b, - 0x8c7d, 0x206f, - 0x8c80, 0x22fa, - 0x8c81, 0x22f9, - 0x8c82, 0x0d66, - 0x8c84, 0x259e, - 0x8c86, 0x259d, - 0x8c89, 0x0f1d, - 0x8c8a, 0x0f1c, - 0x8c8c, 0x10b6, - 0x8c8d, 0x10b5, - 0x8c8f, 0x2a55, - 0x8c90, 0x2c98, - 0x8c91, 0x2c96, - 0x8c93, 0x135f, - 0x8c94, 0x2e72, - 0x8c95, 0x2e71, - 0x8c97, 0x2fe4, - 0x8c98, 0x2fe3, - 0x8c99, 0x2fe2, - 0x8c9a, 0x3132, - 0x8c9b, 0x3845, - 0x8c9c, 0x3523, - 0x8c9d, 0x050e, - 0x8c9e, 0x080a, - 0x8c9f, 0x3bad, - 0x8ca0, 0x080b, - 0x8ca1, 0x09cc, - 0x8ca3, 0x1e0d, - 0x8ca4, 0x1e0c, - 0x8ca5, 0x2070, - 0x8ca7, 0x0bae, - 0x8ca8, 0x0bac, - 0x8ca9, 0x0ba9, - 0x8caa, 0x0bad, - 0x8cab, 0x0bab, - 0x8cac, 0x0baa, - 0x8cad, 0x3ff1, - 0x8caf, 0x0d67, - 0x8cb0, 0x22fd, - 0x8cb2, 0x0f22, - 0x8cb3, 0x0d69, - 0x8cb4, 0x0d6e, - 0x8cb5, 0x22ff, - 0x8cb6, 0x0d70, - 0x8cb7, 0x0d6f, - 0x8cb8, 0x0d72, - 0x8cb9, 0x22fe, - 0x8cba, 0x22fb, - 0x8cbb, 0x0d6c, - 0x8cbc, 0x0d68, - 0x8cbd, 0x0d6a, - 0x8cbe, 0x22fc, - 0x8cbf, 0x0d71, - 0x8cc0, 0x0d6d, - 0x8cc1, 0x0d6b, - 0x8cc2, 0x0f24, - 0x8cc3, 0x0f23, - 0x8cc4, 0x0f21, - 0x8cc5, 0x0f25, - 0x8cc7, 0x0f1f, - 0x8cca, 0x0f1e, - 0x8ccc, 0x25a0, - 0x8ccd, 0x3e99, - 0x8ccf, 0x280d, - 0x8cd1, 0x10b8, - 0x8cd3, 0x10b7, - 0x8cd4, 0x477e, - 0x8cd5, 0x280c, - 0x8cd6, 0x384b, - 0x8cd7, 0x280e, - 0x8cd9, 0x2a58, - 0x8cda, 0x2a5a, - 0x8cdb, 0x3851, - 0x8cdc, 0x122e, - 0x8cdd, 0x2a5b, - 0x8cde, 0x1227, - 0x8cdf, 0x2a57, - 0x8ce0, 0x1226, - 0x8ce1, 0x1230, - 0x8ce2, 0x122c, - 0x8ce4, 0x1229, - 0x8ce5, 0x2a56, - 0x8ce6, 0x1228, - 0x8ce7, 0x2a5c, - 0x8ce8, 0x2a59, - 0x8ce9, 0x3bae, - 0x8cea, 0x122f, - 0x8ceb, 0x3f9c, - 0x8cec, 0x122a, - 0x8cee, 0x2c9a, - 0x8cf0, 0x2c9c, - 0x8cf1, 0x2c9b, - 0x8cf2, 0x477f, - 0x8cf3, 0x2c9d, - 0x8cf4, 0x1360, - 0x8cf5, 0x2c99, - 0x8cf7, 0x3fb1, - 0x8cf8, 0x1486, - 0x8cf9, 0x2e73, - 0x8cfa, 0x1483, - 0x8cfb, 0x1487, - 0x8cfc, 0x1485, - 0x8cfd, 0x1484, - 0x8cfe, 0x2fe5, - 0x8d00, 0x2fe8, - 0x8d02, 0x2fe7, - 0x8d03, 0x384f, - 0x8d04, 0x2fe6, - 0x8d05, 0x152f, - 0x8d06, 0x3133, - 0x8d08, 0x15cd, - 0x8d09, 0x3135, - 0x8d0a, 0x15ce, - 0x8d0b, 0x4573, - 0x8d0c, 0x3f96, - 0x8d0d, 0x164b, - 0x8d0f, 0x164a, - 0x8d10, 0x3316, - 0x8d11, 0x3853, - 0x8d12, 0x384e, - 0x8d13, 0x1692, - 0x8d14, 0x3317, - 0x8d15, 0x33bc, - 0x8d16, 0x16d9, - 0x8d18, 0x3e6f, - 0x8d19, 0x3442, - 0x8d1b, 0x172f, - 0x8d1c, 0x4780, - 0x8d1d, 0x4506, - 0x8d64, 0x050f, - 0x8d66, 0x0bb0, - 0x8d67, 0x0baf, - 0x8d68, 0x25a1, - 0x8d6b, 0x10ba, - 0x8d6c, 0x2c9e, - 0x8d6d, 0x1231, - 0x8d6e, 0x2c9f, - 0x8d6f, 0x2e74, - 0x8d70, 0x0510, - 0x8d72, 0x1c06, - 0x8d73, 0x080d, - 0x8d74, 0x080c, - 0x8d76, 0x1e0e, - 0x8d77, 0x09ce, - 0x8d78, 0x1e0f, - 0x8d79, 0x2073, - 0x8d7a, 0x39e1, - 0x8d7b, 0x2072, - 0x8d7d, 0x2071, - 0x8d80, 0x2301, - 0x8d81, 0x0d75, - 0x8d82, 0x3f69, - 0x8d84, 0x2300, - 0x8d85, 0x0d74, - 0x8d89, 0x2302, - 0x8d8a, 0x0d73, - 0x8d8c, 0x25a4, - 0x8d8d, 0x25a7, - 0x8d8e, 0x25a5, - 0x8d90, 0x25aa, - 0x8d91, 0x25a3, - 0x8d92, 0x25ab, - 0x8d93, 0x25a8, - 0x8d95, 0x10bc, - 0x8d96, 0x280f, - 0x8d99, 0x10bb, - 0x8d9b, 0x2a60, - 0x8d9c, 0x2a5e, - 0x8d9f, 0x1232, - 0x8da0, 0x2a5d, - 0x8da1, 0x2a5f, - 0x8da3, 0x1233, - 0x8da5, 0x2ca0, - 0x8da6, 0x3ff7, - 0x8da7, 0x2ca1, - 0x8da8, 0x1488, - 0x8da9, 0x3856, - 0x8daa, 0x3137, - 0x8dab, 0x3139, - 0x8dac, 0x3136, - 0x8dad, 0x3138, - 0x8dae, 0x323d, - 0x8daf, 0x3318, - 0x8db2, 0x3509, - 0x8db3, 0x0511, - 0x8db4, 0x080e, - 0x8db5, 0x1e10, - 0x8db6, 0x1e12, - 0x8db7, 0x1e11, - 0x8db9, 0x2076, - 0x8dba, 0x0bb2, - 0x8dbc, 0x2074, - 0x8dbe, 0x0bb1, - 0x8dbf, 0x2077, - 0x8dc0, 0x436a, - 0x8dc1, 0x2078, - 0x8dc2, 0x2075, - 0x8dc3, 0x4782, - 0x8dc5, 0x230e, - 0x8dc6, 0x0d7d, - 0x8dc7, 0x2306, - 0x8dc8, 0x230c, - 0x8dcb, 0x0d78, - 0x8dcc, 0x0d7b, - 0x8dcd, 0x2305, - 0x8dce, 0x0d76, - 0x8dcf, 0x2309, - 0x8dd0, 0x25b1, - 0x8dd1, 0x0d7a, - 0x8dd3, 0x2304, - 0x8dd4, 0x3f82, - 0x8dd5, 0x230a, - 0x8dd6, 0x2307, - 0x8dd7, 0x230d, - 0x8dd8, 0x2303, - 0x8dd9, 0x230b, - 0x8dda, 0x0d79, - 0x8ddb, 0x0d7c, - 0x8ddc, 0x2308, - 0x8ddd, 0x0d77, - 0x8ddf, 0x0f27, - 0x8de0, 0x25ad, - 0x8de1, 0x0f26, - 0x8de2, 0x25b4, - 0x8de3, 0x25b3, - 0x8de4, 0x0f2d, - 0x8de6, 0x0f2e, - 0x8de7, 0x25b5, - 0x8de8, 0x0f28, - 0x8de9, 0x25b2, - 0x8dea, 0x0f2c, - 0x8deb, 0x25b7, - 0x8dec, 0x25ae, - 0x8dee, 0x25b0, - 0x8def, 0x0f29, - 0x8df0, 0x25ac, - 0x8df1, 0x25af, - 0x8df2, 0x25b6, - 0x8df3, 0x0f2a, - 0x8df4, 0x25b8, - 0x8dfa, 0x0f2b, - 0x8dfc, 0x10bd, - 0x8dfd, 0x2814, - 0x8dfe, 0x281a, - 0x8dff, 0x2812, - 0x8e00, 0x281b, - 0x8e01, 0x3f85, - 0x8e02, 0x2811, - 0x8e03, 0x2816, - 0x8e04, 0x281c, - 0x8e05, 0x2819, - 0x8e06, 0x2818, - 0x8e07, 0x2817, - 0x8e09, 0x2810, - 0x8e0a, 0x2815, - 0x8e0d, 0x2813, - 0x8e0e, 0x3e5e, - 0x8e0f, 0x1238, - 0x8e10, 0x1235, - 0x8e11, 0x2a69, - 0x8e12, 0x2a6e, - 0x8e13, 0x2a70, - 0x8e14, 0x2a6d, - 0x8e15, 0x2a66, - 0x8e16, 0x2a68, - 0x8e17, 0x2a72, - 0x8e18, 0x2a6f, - 0x8e19, 0x2a6a, - 0x8e1a, 0x2a73, - 0x8e1b, 0x2a67, - 0x8e1c, 0x2a71, - 0x8e1d, 0x1236, - 0x8e1e, 0x123c, - 0x8e1f, 0x123a, - 0x8e20, 0x2a61, - 0x8e21, 0x123b, - 0x8e22, 0x1237, - 0x8e23, 0x2a62, - 0x8e24, 0x2a64, - 0x8e25, 0x2a63, - 0x8e26, 0x2a6b, - 0x8e28, 0x3f88, - 0x8e29, 0x1239, - 0x8e2a, 0x3bb4, - 0x8e2b, 0x1234, - 0x8e2d, 0x3eab, - 0x8e2e, 0x2a65, - 0x8e30, 0x2cab, - 0x8e31, 0x1362, - 0x8e33, 0x2ca2, - 0x8e34, 0x1363, - 0x8e35, 0x1366, - 0x8e36, 0x2ca7, - 0x8e38, 0x2ca4, - 0x8e39, 0x1365, - 0x8e3a, 0x4784, - 0x8e3c, 0x2ca8, - 0x8e3e, 0x2ca3, - 0x8e3f, 0x2cac, - 0x8e40, 0x2ca5, - 0x8e41, 0x2caa, - 0x8e42, 0x1364, - 0x8e44, 0x1361, - 0x8e45, 0x2ca6, - 0x8e46, 0x4312, - 0x8e47, 0x2e7a, - 0x8e48, 0x148b, - 0x8e49, 0x1489, - 0x8e4a, 0x148c, - 0x8e4b, 0x148a, - 0x8e4c, 0x2e79, - 0x8e4d, 0x2e76, - 0x8e4e, 0x2e75, - 0x8e4f, 0x3f83, - 0x8e50, 0x2e78, - 0x8e53, 0x2e77, - 0x8e54, 0x2ff6, - 0x8e55, 0x1535, - 0x8e56, 0x2fed, - 0x8e57, 0x2fec, - 0x8e59, 0x1530, - 0x8e5a, 0x2ff2, - 0x8e5b, 0x2ff1, - 0x8e5c, 0x2fe9, - 0x8e5d, 0x2ff4, - 0x8e5e, 0x2fee, - 0x8e5f, 0x1534, - 0x8e60, 0x2feb, - 0x8e61, 0x2ff3, - 0x8e62, 0x2fea, - 0x8e63, 0x1531, - 0x8e64, 0x1533, - 0x8e65, 0x2fef, - 0x8e66, 0x1532, - 0x8e67, 0x2ff0, - 0x8e68, 0x434d, - 0x8e69, 0x2ff5, - 0x8e6a, 0x313d, - 0x8e6c, 0x15d3, - 0x8e6d, 0x313a, - 0x8e6f, 0x313e, - 0x8e71, 0x43e7, - 0x8e72, 0x15d0, - 0x8e73, 0x313c, - 0x8e74, 0x15d5, - 0x8e75, 0x3f89, - 0x8e76, 0x15d2, - 0x8e77, 0x3f7f, - 0x8e78, 0x313b, - 0x8e7a, 0x15d4, - 0x8e7b, 0x313f, - 0x8e7c, 0x15cf, - 0x8e7e, 0x4324, - 0x8e80, 0x3e57, - 0x8e81, 0x164d, - 0x8e82, 0x164f, - 0x8e84, 0x3240, - 0x8e85, 0x164e, - 0x8e86, 0x323e, - 0x8e87, 0x15d1, - 0x8e88, 0x323f, - 0x8e89, 0x164c, - 0x8e8a, 0x1693, - 0x8e8b, 0x1695, - 0x8e8c, 0x331a, - 0x8e8d, 0x1694, - 0x8e8e, 0x3319, - 0x8e90, 0x33c1, - 0x8e91, 0x16db, - 0x8e92, 0x33c0, - 0x8e93, 0x16dc, - 0x8e94, 0x33be, - 0x8e95, 0x33bd, - 0x8e96, 0x33c2, - 0x8e98, 0x3443, - 0x8e9a, 0x33bf, - 0x8e9d, 0x34a1, - 0x8e9e, 0x349e, - 0x8ea1, 0x1749, - 0x8ea3, 0x34eb, - 0x8ea4, 0x34ea, - 0x8ea5, 0x34e9, - 0x8ea6, 0x350a, - 0x8ea7, 0x3bb5, - 0x8ea8, 0x3537, - 0x8ea9, 0x3524, - 0x8eaa, 0x175b, - 0x8eab, 0x0512, - 0x8eac, 0x09cf, - 0x8ead, 0x385e, - 0x8eb0, 0x43e9, - 0x8eb2, 0x0f2f, - 0x8eb6, 0x385f, - 0x8eba, 0x123d, - 0x8ebc, 0x38a0, - 0x8ebd, 0x2cad, - 0x8ec0, 0x1536, - 0x8ec2, 0x3140, - 0x8ec3, 0x3860, - 0x8ec9, 0x3525, - 0x8eca, 0x0513, - 0x8ecb, 0x068d, - 0x8ecc, 0x0810, - 0x8ecd, 0x080f, - 0x8ece, 0x4788, - 0x8ecf, 0x09d2, - 0x8ed1, 0x1e13, - 0x8ed2, 0x09d0, - 0x8ed3, 0x1e14, - 0x8ed4, 0x09d1, - 0x8ed7, 0x207d, - 0x8ed8, 0x2079, - 0x8eda, 0x3dbe, - 0x8edb, 0x0bb3, - 0x8edc, 0x207c, - 0x8edd, 0x207b, - 0x8ede, 0x207a, - 0x8edf, 0x0bb4, - 0x8ee0, 0x207e, - 0x8ee2, 0x4789, - 0x8ee4, 0x478a, - 0x8ee5, 0x2315, - 0x8ee6, 0x2313, - 0x8ee7, 0x2317, - 0x8ee9, 0x231e, - 0x8eeb, 0x231a, - 0x8eec, 0x231c, - 0x8eed, 0x478b, - 0x8eee, 0x2314, - 0x8eef, 0x230f, - 0x8ef1, 0x231b, - 0x8ef2, 0x478c, - 0x8ef4, 0x231d, - 0x8ef5, 0x2316, - 0x8ef6, 0x2319, - 0x8ef7, 0x2310, - 0x8ef8, 0x0d7f, - 0x8ef9, 0x2312, - 0x8efa, 0x2311, - 0x8efb, 0x0d7e, - 0x8efc, 0x0d80, - 0x8efe, 0x0f32, - 0x8eff, 0x25ba, - 0x8f00, 0x25bc, - 0x8f01, 0x25bb, - 0x8f02, 0x25c0, - 0x8f03, 0x0f30, - 0x8f05, 0x25bd, - 0x8f06, 0x25b9, - 0x8f07, 0x25be, - 0x8f09, 0x0f31, - 0x8f0a, 0x0f33, - 0x8f0b, 0x25c1, - 0x8f0d, 0x2820, - 0x8f0e, 0x281f, - 0x8f10, 0x281d, - 0x8f12, 0x10bf, - 0x8f13, 0x10c1, - 0x8f14, 0x10be, - 0x8f15, 0x10c0, - 0x8f16, 0x2a7a, - 0x8f18, 0x2a76, - 0x8f19, 0x3862, - 0x8f1a, 0x2a77, - 0x8f1b, 0x123f, - 0x8f1c, 0x1244, - 0x8f1d, 0x123e, - 0x8f1e, 0x1245, - 0x8f1f, 0x1240, - 0x8f20, 0x2a78, - 0x8f23, 0x2a79, - 0x8f24, 0x2a75, - 0x8f25, 0x1246, - 0x8f26, 0x1242, - 0x8f29, 0x1241, - 0x8f2a, 0x1243, - 0x8f2c, 0x2a74, - 0x8f2d, 0x3863, - 0x8f2e, 0x2caf, - 0x8f2f, 0x1368, - 0x8f30, 0x3bb7, - 0x8f32, 0x2cb1, - 0x8f33, 0x136a, - 0x8f34, 0x2cb4, - 0x8f35, 0x2cb0, - 0x8f36, 0x2cae, - 0x8f37, 0x2cb3, - 0x8f38, 0x1369, - 0x8f39, 0x2cb2, - 0x8f3b, 0x1367, - 0x8f3e, 0x148e, - 0x8f3f, 0x1491, - 0x8f40, 0x2e7c, - 0x8f41, 0x3d07, - 0x8f42, 0x148f, - 0x8f43, 0x2e7b, - 0x8f44, 0x148d, - 0x8f45, 0x1490, - 0x8f46, 0x2ff7, - 0x8f49, 0x1537, - 0x8f4a, 0x3bb8, - 0x8f4b, 0x2ffa, - 0x8f4d, 0x1538, - 0x8f4e, 0x15d7, - 0x8f4f, 0x3143, - 0x8f51, 0x3142, - 0x8f52, 0x3141, - 0x8f53, 0x3145, - 0x8f54, 0x15d6, - 0x8f55, 0x3244, - 0x8f56, 0x3242, - 0x8f58, 0x3245, - 0x8f59, 0x3241, - 0x8f5a, 0x3246, - 0x8f5b, 0x331c, - 0x8f5c, 0x3f31, - 0x8f5d, 0x331d, - 0x8f5e, 0x331b, - 0x8f5f, 0x1696, - 0x8f60, 0x33c4, - 0x8f61, 0x16dd, - 0x8f62, 0x33c5, - 0x8f63, 0x3445, - 0x8f64, 0x3444, - 0x8f66, 0x4569, - 0x8f6e, 0x456b, - 0x8f93, 0x4732, - 0x8f9b, 0x0514, - 0x8f9c, 0x0d81, - 0x8f9f, 0x0f34, - 0x8fa0, 0x3d94, - 0x8fa3, 0x10c2, - 0x8fa5, 0x3866, - 0x8fa6, 0x136c, - 0x8fa8, 0x136b, - 0x8fad, 0x15d8, - 0x8fae, 0x162f, - 0x8faf, 0x1697, - 0x8fb0, 0x0515, - 0x8fb1, 0x09d3, - 0x8fb2, 0x0f35, - 0x8fb3, 0x386a, - 0x8fb4, 0x3146, - 0x8fb5, 0x0230, - 0x8fb6, 0x47d3, - 0x8fb7, 0x43fd, - 0x8fb8, 0x42f6, - 0x8fb9, 0x48c9, - 0x8fba, 0x48c7, - 0x8fbb, 0x3d6b, - 0x8fbe, 0x48c6, - 0x8fbf, 0x18e9, - 0x8fc1, 0x478d, - 0x8fc2, 0x0516, - 0x8fc4, 0x0519, - 0x8fc5, 0x0518, - 0x8fc6, 0x0517, - 0x8fc9, 0x18e8, - 0x8fca, 0x478e, - 0x8fcb, 0x1a4a, - 0x8fcc, 0x478f, - 0x8fcd, 0x1a4c, - 0x8fce, 0x068e, - 0x8fd0, 0x48ae, - 0x8fd1, 0x0690, - 0x8fd2, 0x1a49, - 0x8fd3, 0x1a4b, - 0x8fd4, 0x068f, - 0x8fd5, 0x1a4e, - 0x8fd6, 0x1a4d, - 0x8fd7, 0x1a4f, - 0x8fda, 0x3fcb, - 0x8fe0, 0x1c0a, - 0x8fe1, 0x1c08, - 0x8fe2, 0x0813, - 0x8fe3, 0x1c07, - 0x8fe4, 0x0818, - 0x8fe5, 0x0815, - 0x8fe6, 0x0812, - 0x8fe8, 0x0819, - 0x8fea, 0x0814, - 0x8feb, 0x0817, - 0x8fed, 0x0816, - 0x8fee, 0x1c09, - 0x8ff0, 0x0811, - 0x8ff4, 0x09d9, - 0x8ff5, 0x1e16, - 0x8ff6, 0x1e1c, - 0x8ff7, 0x09d6, - 0x8ff8, 0x09dd, - 0x8ff9, 0x3871, - 0x8ffa, 0x09d8, - 0x8ffb, 0x1e19, - 0x8ffc, 0x1e1b, - 0x8ffd, 0x09db, - 0x8ffe, 0x1e15, - 0x8fff, 0x1e18, - 0x9000, 0x09d7, - 0x9001, 0x09d4, - 0x9002, 0x1e17, - 0x9003, 0x09da, - 0x9004, 0x1e1a, - 0x9005, 0x09dc, - 0x9006, 0x09d5, - 0x9008, 0x3ee0, - 0x900b, 0x2081, - 0x900c, 0x2084, - 0x900d, 0x0bb6, - 0x900f, 0x0bc0, - 0x9010, 0x0bbc, - 0x9011, 0x2082, - 0x9012, 0x3e4e, - 0x9014, 0x0bc4, - 0x9015, 0x0bbd, - 0x9016, 0x0bc2, - 0x9017, 0x0bb8, - 0x9019, 0x0bb5, - 0x901a, 0x0bb7, - 0x901b, 0x0bc3, - 0x901c, 0x2083, - 0x901d, 0x0bbb, - 0x901e, 0x0bbe, - 0x901f, 0x0bba, - 0x9020, 0x0bbf, - 0x9021, 0x2085, - 0x9022, 0x0bc1, - 0x9023, 0x0bb9, - 0x9024, 0x2080, - 0x902d, 0x231f, - 0x902e, 0x0d82, - 0x902f, 0x2321, - 0x9031, 0x0d84, - 0x9032, 0x0d86, - 0x9033, 0x4790, - 0x9034, 0x2320, - 0x9035, 0x0d83, - 0x9036, 0x0d87, - 0x9037, 0x3876, - 0x9038, 0x0d85, - 0x903c, 0x0f3b, - 0x903d, 0x25c6, - 0x903e, 0x0f43, - 0x903f, 0x25c3, - 0x9041, 0x0f44, - 0x9042, 0x0f39, - 0x9044, 0x25c4, - 0x9047, 0x0f3e, - 0x9049, 0x25c5, - 0x904a, 0x0f37, - 0x904b, 0x0f36, - 0x904c, 0x3f10, - 0x904d, 0x0f41, - 0x904e, 0x0f40, - 0x904f, 0x0f3f, - 0x9050, 0x0f3d, - 0x9051, 0x0f42, - 0x9052, 0x25c2, - 0x9053, 0x0f38, - 0x9054, 0x0f3a, - 0x9055, 0x0f3c, - 0x9056, 0x3dd2, - 0x9058, 0x10c4, - 0x9059, 0x10c7, - 0x905b, 0x10cb, - 0x905c, 0x10c5, - 0x905d, 0x10ca, - 0x905e, 0x10c8, - 0x9060, 0x10c3, - 0x9061, 0x3879, - 0x9062, 0x10c9, - 0x9063, 0x10c6, - 0x9064, 0x3c68, - 0x9067, 0x2a7f, - 0x9068, 0x1249, - 0x9069, 0x1247, - 0x906b, 0x2a80, - 0x906c, 0x3d60, - 0x906d, 0x124a, - 0x906e, 0x1248, - 0x906f, 0x2a7e, - 0x9070, 0x2a7d, - 0x9072, 0x1370, - 0x9073, 0x2a7c, - 0x9074, 0x136e, - 0x9075, 0x136d, - 0x9076, 0x2cb5, - 0x9077, 0x124b, - 0x9078, 0x136f, - 0x9079, 0x2cb6, - 0x907a, 0x1372, - 0x907b, 0x2cb7, - 0x907c, 0x1371, - 0x907d, 0x1493, - 0x907e, 0x2e7e, - 0x907f, 0x1492, - 0x9080, 0x1497, - 0x9081, 0x1495, - 0x9083, 0x153a, - 0x9084, 0x1494, - 0x9085, 0x2e7d, - 0x9086, 0x2cb8, - 0x9087, 0x1539, - 0x9088, 0x153b, - 0x908a, 0x15d9, - 0x908d, 0x3247, - 0x908f, 0x170c, - 0x9090, 0x170b, - 0x9091, 0x051b, - 0x9094, 0x181e, - 0x9095, 0x09de, - 0x9097, 0x181b, - 0x9099, 0x181a, - 0x909b, 0x181d, - 0x909e, 0x18ed, - 0x909f, 0x18ea, - 0x90a0, 0x18ef, - 0x90a1, 0x18eb, - 0x90a2, 0x051c, - 0x90a3, 0x051f, - 0x90a5, 0x18ec, - 0x90a6, 0x051e, - 0x90a7, 0x18ee, - 0x90a8, 0x387c, - 0x90aa, 0x051d, - 0x90ae, 0x3880, - 0x90af, 0x1a52, - 0x90b0, 0x1a54, - 0x90b1, 0x0693, - 0x90b2, 0x1a50, - 0x90b3, 0x1a53, - 0x90b4, 0x1a51, - 0x90b5, 0x0691, - 0x90b6, 0x0694, - 0x90b8, 0x0692, - 0x90bb, 0x3bc4, - 0x90bd, 0x1c0c, - 0x90be, 0x1c10, - 0x90bf, 0x1c0d, - 0x90c1, 0x081c, - 0x90c3, 0x081d, - 0x90c4, 0x387e, - 0x90c5, 0x1c0f, - 0x90c7, 0x1c11, - 0x90c8, 0x1c13, - 0x90ca, 0x081a, - 0x90cb, 0x1c12, - 0x90ce, 0x081b, - 0x90d4, 0x208c, - 0x90d5, 0x1c0e, - 0x90d6, 0x1e1d, - 0x90d7, 0x1e26, - 0x90d8, 0x1e24, - 0x90d9, 0x1e1f, - 0x90db, 0x1e25, - 0x90dc, 0x1e27, - 0x90dd, 0x09e0, - 0x90df, 0x1e22, - 0x90e0, 0x1e1e, - 0x90e1, 0x09df, - 0x90e2, 0x09e1, - 0x90e3, 0x1e21, - 0x90e4, 0x1e28, - 0x90e5, 0x1e23, - 0x90e8, 0x0bc5, - 0x90e9, 0x208f, - 0x90ea, 0x2087, - 0x90eb, 0x208d, - 0x90ed, 0x0bc6, - 0x90ef, 0x2086, - 0x90f0, 0x2088, - 0x90f1, 0x1c0b, - 0x90f2, 0x208a, - 0x90f4, 0x2089, - 0x90f5, 0x0d89, - 0x90f9, 0x2328, - 0x90fa, 0x2cb9, - 0x90fb, 0x2329, - 0x90fc, 0x2326, - 0x90fd, 0x0bc7, - 0x90fe, 0x0d8b, - 0x90ff, 0x2325, - 0x9100, 0x232b, - 0x9101, 0x232a, - 0x9102, 0x0d88, - 0x9103, 0x232e, - 0x9104, 0x2324, - 0x9105, 0x232d, - 0x9106, 0x2322, - 0x9107, 0x232c, - 0x9108, 0x2327, - 0x9109, 0x0d8a, - 0x910b, 0x25cd, - 0x910d, 0x25c8, - 0x910e, 0x25ce, - 0x910f, 0x25c9, - 0x9110, 0x25c7, - 0x9111, 0x25ca, - 0x9112, 0x0f45, - 0x9114, 0x25cc, - 0x9116, 0x25cb, - 0x9117, 0x0f46, - 0x9118, 0x10cd, - 0x9119, 0x10cc, - 0x911a, 0x2827, - 0x911b, 0x282a, - 0x911c, 0x2822, - 0x911d, 0x2826, - 0x911e, 0x10ce, - 0x911f, 0x2825, - 0x9120, 0x2823, - 0x9121, 0x2829, - 0x9122, 0x2824, - 0x9123, 0x2821, - 0x9124, 0x2828, - 0x9126, 0x2a86, - 0x9127, 0x124e, - 0x9128, 0x2ffb, - 0x9129, 0x2a83, - 0x912b, 0x2a82, - 0x912c, 0x2323, - 0x912d, 0x124d, - 0x912e, 0x2a87, - 0x912f, 0x2a81, - 0x9130, 0x124c, - 0x9131, 0x124f, - 0x9132, 0x2a85, - 0x9133, 0x2cba, - 0x9134, 0x1373, - 0x9135, 0x2cbb, - 0x9138, 0x2e7f, - 0x9139, 0x1498, - 0x913a, 0x2ffc, - 0x913e, 0x2ffe, - 0x913f, 0x3148, - 0x9140, 0x3147, - 0x9141, 0x3249, - 0x9143, 0x3248, - 0x9144, 0x331f, - 0x9146, 0x331e, - 0x9147, 0x33c6, - 0x9148, 0x16de, - 0x9149, 0x0520, - 0x914a, 0x081f, - 0x914b, 0x081e, - 0x914c, 0x09e4, - 0x914d, 0x09e3, - 0x914e, 0x1e2a, - 0x9150, 0x1e29, - 0x9151, 0x3f49, - 0x9152, 0x09e2, - 0x9153, 0x2093, - 0x9155, 0x2094, - 0x9156, 0x2090, - 0x9157, 0x0bc8, - 0x9158, 0x2091, - 0x9159, 0x3f45, - 0x915a, 0x2092, - 0x915c, 0x3f47, - 0x915e, 0x43eb, - 0x915f, 0x2331, - 0x9160, 0x2333, - 0x9161, 0x232f, - 0x9162, 0x2332, - 0x9163, 0x0d8c, - 0x9164, 0x2330, - 0x9165, 0x0d8d, - 0x9167, 0x3882, - 0x9168, 0x23e2, - 0x9169, 0x0f49, - 0x916a, 0x0f48, - 0x916c, 0x0f47, - 0x916e, 0x25cf, - 0x9170, 0x3eb8, - 0x9172, 0x282c, - 0x9173, 0x282e, - 0x9174, 0x10d2, - 0x9175, 0x10cf, - 0x9176, 0x3e9b, - 0x9177, 0x10d1, - 0x9178, 0x10d0, - 0x9179, 0x282d, - 0x917a, 0x282b, - 0x917c, 0x3f6f, - 0x9180, 0x2a8e, - 0x9181, 0x2a8b, - 0x9183, 0x1253, - 0x9184, 0x2a8d, - 0x9185, 0x2a88, - 0x9187, 0x1250, - 0x9189, 0x1251, - 0x918a, 0x2a8a, - 0x918b, 0x1252, - 0x918c, 0x43ec, - 0x918d, 0x2cc0, - 0x918e, 0x3f4e, - 0x918f, 0x2cc1, - 0x9190, 0x2cbe, - 0x9192, 0x1374, - 0x9193, 0x2cbd, - 0x9199, 0x2e83, - 0x919a, 0x2e80, - 0x919b, 0x2e82, - 0x919c, 0x149b, - 0x919d, 0x2e86, - 0x919e, 0x149a, - 0x919f, 0x2e84, - 0x91a0, 0x2e87, - 0x91a1, 0x2e85, - 0x91a2, 0x2e81, - 0x91a3, 0x1499, - 0x91a5, 0x3000, - 0x91a7, 0x3001, - 0x91a8, 0x2fff, - 0x91a9, 0x3883, - 0x91aa, 0x3003, - 0x91ab, 0x153c, - 0x91ad, 0x314a, - 0x91ae, 0x15dc, - 0x91af, 0x3002, - 0x91b0, 0x3149, - 0x91b1, 0x15db, - 0x91b2, 0x324c, - 0x91b4, 0x1650, - 0x91b5, 0x324b, - 0x91b6, 0x45ef, - 0x91b7, 0x324a, - 0x91b9, 0x3321, - 0x91ba, 0x1698, - 0x91bb, 0x3bc8, - 0x91bc, 0x3446, - 0x91bd, 0x34a3, - 0x91be, 0x34a2, - 0x91c0, 0x1730, - 0x91c1, 0x174a, - 0x91c2, 0x34a4, - 0x91c3, 0x350b, - 0x91c4, 0x3884, - 0x91c5, 0x175c, - 0x91c6, 0x0521, - 0x91c7, 0x0695, - 0x91c9, 0x0f4a, - 0x91cb, 0x1651, - 0x91cc, 0x0522, - 0x91cd, 0x0820, - 0x91ce, 0x0bc9, - 0x91cf, 0x0d8e, - 0x91d0, 0x153e, - 0x91d1, 0x0696, - 0x91d3, 0x1c15, - 0x91d4, 0x1c14, - 0x91d5, 0x1e2c, - 0x91d6, 0x415e, - 0x91d7, 0x09e7, - 0x91d8, 0x09e5, - 0x91d9, 0x09e9, - 0x91da, 0x1e2e, - 0x91dc, 0x09e8, - 0x91dd, 0x09e6, - 0x91df, 0x453a, - 0x91e2, 0x1e2d, - 0x91e3, 0x0bcc, - 0x91e4, 0x209a, - 0x91e5, 0x3c06, - 0x91e6, 0x0bcb, - 0x91e7, 0x0bcd, - 0x91e8, 0x209f, - 0x91e9, 0x0bcf, - 0x91ea, 0x209c, - 0x91ec, 0x2095, - 0x91ed, 0x0bce, - 0x91ee, 0x20a0, - 0x91f1, 0x2097, - 0x91f3, 0x2098, - 0x91f4, 0x2096, - 0x91f5, 0x0bca, - 0x91f7, 0x209e, - 0x91f8, 0x2099, - 0x91f9, 0x209b, - 0x91fa, 0x3af8, - 0x91fd, 0x233f, - 0x91fe, 0x382e, - 0x91ff, 0x233e, - 0x9200, 0x233c, - 0x9201, 0x2334, - 0x9202, 0x2343, - 0x9203, 0x2337, - 0x9204, 0x2341, - 0x9205, 0x2348, - 0x9206, 0x2340, - 0x9207, 0x0d96, - 0x9208, 0x3eb9, - 0x9209, 0x0d92, - 0x920a, 0x2335, - 0x920c, 0x233b, - 0x920d, 0x0d94, - 0x920e, 0x3888, - 0x920f, 0x233a, - 0x9210, 0x0d95, - 0x9211, 0x0d97, - 0x9212, 0x233d, - 0x9213, 0x4793, - 0x9214, 0x0d8f, - 0x9216, 0x2349, - 0x9217, 0x2347, - 0x9219, 0x2346, - 0x921a, 0x2338, - 0x921c, 0x2344, - 0x921e, 0x0d93, - 0x9223, 0x0d91, - 0x9224, 0x2345, - 0x9225, 0x2336, - 0x9226, 0x2339, - 0x9227, 0x2342, - 0x9228, 0x4795, - 0x922a, 0x3c0e, - 0x922b, 0x3ba6, - 0x922d, 0x2851, - 0x922e, 0x25da, - 0x9230, 0x25d3, - 0x9231, 0x25e6, - 0x9232, 0x25ef, - 0x9233, 0x25d6, - 0x9234, 0x0f55, - 0x9235, 0x3b26, - 0x9236, 0x25e3, - 0x9237, 0x0f4b, - 0x9238, 0x0f4d, - 0x9239, 0x0f59, - 0x923a, 0x25d4, - 0x923c, 0x41d2, - 0x923d, 0x0f4e, - 0x923e, 0x0f50, - 0x923f, 0x0f5a, - 0x9240, 0x0f4f, - 0x9241, 0x388a, - 0x9244, 0x389a, - 0x9245, 0x0f58, - 0x9246, 0x25dc, - 0x9248, 0x25d1, - 0x9249, 0x0f56, - 0x924a, 0x25db, - 0x924b, 0x0f52, - 0x924c, 0x25ed, - 0x924d, 0x0f57, - 0x924e, 0x25eb, - 0x924f, 0x25df, - 0x9250, 0x25e9, - 0x9251, 0x0f54, - 0x9252, 0x25d2, - 0x9253, 0x25ec, - 0x9254, 0x25e7, - 0x9255, 0x3e47, - 0x9256, 0x25ee, - 0x9257, 0x0f4c, - 0x9258, 0x4796, - 0x925a, 0x0f5b, - 0x925b, 0x0f51, - 0x925d, 0x3a03, - 0x925e, 0x25d8, - 0x925f, 0x3ce0, - 0x9260, 0x25e0, - 0x9261, 0x25e4, - 0x9262, 0x388b, - 0x9263, 0x25e8, - 0x9264, 0x0f53, - 0x9265, 0x25d7, - 0x9266, 0x25d5, - 0x9267, 0x25e1, - 0x926b, 0x4797, - 0x926c, 0x25de, - 0x926d, 0x25dd, - 0x926e, 0x3d05, - 0x926f, 0x25e2, - 0x9270, 0x25e5, - 0x9272, 0x25ea, - 0x9276, 0x2831, - 0x9277, 0x3c64, - 0x9278, 0x10d3, - 0x9279, 0x283b, - 0x927a, 0x2833, - 0x927b, 0x10d9, - 0x927c, 0x10dd, - 0x927d, 0x2844, - 0x927e, 0x284c, - 0x927f, 0x283d, - 0x9280, 0x10d5, - 0x9281, 0x3e01, - 0x9282, 0x2841, - 0x9283, 0x25d9, - 0x9284, 0x3cb9, - 0x9285, 0x10d6, - 0x9286, 0x2848, - 0x9287, 0x284d, - 0x9288, 0x2845, - 0x9289, 0x3ab5, - 0x928a, 0x2847, - 0x928b, 0x2850, - 0x928c, 0x2849, - 0x928d, 0x2837, - 0x928e, 0x2840, - 0x928f, 0x46bd, - 0x9291, 0x10de, - 0x9293, 0x10da, - 0x9294, 0x2835, - 0x9295, 0x2842, - 0x9296, 0x10d8, - 0x9297, 0x283c, - 0x9298, 0x10d7, - 0x9299, 0x284a, - 0x929a, 0x2839, - 0x929b, 0x2832, - 0x929c, 0x10db, - 0x929d, 0x284f, - 0x92a0, 0x2834, - 0x92a1, 0x2846, - 0x92a2, 0x2843, - 0x92a3, 0x283e, - 0x92a4, 0x2830, - 0x92a5, 0x282f, - 0x92a6, 0x2838, - 0x92a7, 0x284b, - 0x92a8, 0x10dc, - 0x92a9, 0x284e, - 0x92aa, 0x2836, - 0x92ab, 0x283a, - 0x92ac, 0x10d4, - 0x92ae, 0x4799, - 0x92b1, 0x4798, - 0x92b2, 0x125f, - 0x92b3, 0x125a, - 0x92b4, 0x2ab0, - 0x92b5, 0x2aac, - 0x92b6, 0x2a94, - 0x92b7, 0x1256, - 0x92b9, 0x36e9, - 0x92ba, 0x3bf5, - 0x92bb, 0x1255, - 0x92bc, 0x125b, - 0x92be, 0x3c60, - 0x92bf, 0x479a, - 0x92c0, 0x2a92, - 0x92c1, 0x1259, - 0x92c2, 0x2a9e, - 0x92c3, 0x2a90, - 0x92c5, 0x1254, - 0x92c6, 0x2aaf, - 0x92c7, 0x125d, - 0x92c8, 0x2aa1, - 0x92c9, 0x2aa6, - 0x92ca, 0x2aa0, - 0x92cb, 0x2cd3, - 0x92cc, 0x2a9c, - 0x92cd, 0x2aa4, - 0x92ce, 0x2aa2, - 0x92cf, 0x2a95, - 0x92d0, 0x2a8f, - 0x92d1, 0x2aaa, - 0x92d2, 0x125c, - 0x92d3, 0x2aab, - 0x92d4, 0x3861, - 0x92d5, 0x2aa5, - 0x92d7, 0x2a9a, - 0x92d8, 0x2a98, - 0x92d9, 0x2a93, - 0x92db, 0x400c, - 0x92dd, 0x2a9b, - 0x92de, 0x2aa8, - 0x92df, 0x2a97, - 0x92e0, 0x2aa7, - 0x92e1, 0x2aad, - 0x92e3, 0x479b, - 0x92e4, 0x1258, - 0x92e5, 0x3ca2, - 0x92e6, 0x2aa3, - 0x92e7, 0x2aa9, - 0x92e8, 0x2a9f, - 0x92e9, 0x2a99, - 0x92ea, 0x1257, - 0x92eb, 0x479c, - 0x92ec, 0x3964, - 0x92ee, 0x283f, - 0x92ef, 0x2a9d, - 0x92f0, 0x125e, - 0x92f1, 0x2a96, - 0x92f2, 0x3ab2, - 0x92f3, 0x479d, - 0x92f6, 0x3c04, - 0x92f7, 0x2cd8, - 0x92f8, 0x1377, - 0x92f9, 0x2cd7, - 0x92fa, 0x2cd5, - 0x92fb, 0x2ce7, - 0x92fc, 0x137b, - 0x92fd, 0x479f, - 0x92fe, 0x2ce4, - 0x92ff, 0x2cdc, - 0x9300, 0x2ce6, - 0x9301, 0x2cce, - 0x9302, 0x2cda, - 0x9303, 0x3867, - 0x9304, 0x137d, - 0x9306, 0x2cc6, - 0x9307, 0x3b11, - 0x9308, 0x2cc4, - 0x9309, 0x2ce5, - 0x930b, 0x2ce3, - 0x930c, 0x2ce2, - 0x930d, 0x2cd2, - 0x930e, 0x2cd1, - 0x930f, 0x2cc7, - 0x9310, 0x137f, - 0x9312, 0x2ccd, - 0x9313, 0x2cd6, - 0x9314, 0x2ce1, - 0x9315, 0x1382, - 0x9316, 0x2ce8, - 0x9318, 0x14a3, - 0x9319, 0x1384, - 0x931a, 0x137e, - 0x931b, 0x2ccb, - 0x931d, 0x2cd4, - 0x931e, 0x2cc3, - 0x931f, 0x2cc5, - 0x9320, 0x1375, - 0x9321, 0x1381, - 0x9322, 0x137a, - 0x9323, 0x2ccc, - 0x9324, 0x2cdb, - 0x9325, 0x2aae, - 0x9326, 0x1380, - 0x9327, 0x2cc2, - 0x9328, 0x149e, - 0x9329, 0x2cdd, - 0x932a, 0x2ce0, - 0x932b, 0x137c, - 0x932c, 0x3892, - 0x932d, 0x2cd0, - 0x932e, 0x1383, - 0x932f, 0x1379, - 0x9330, 0x3e03, - 0x9331, 0x3cbd, - 0x9333, 0x1378, - 0x9334, 0x2cd9, - 0x9335, 0x2cdf, - 0x9336, 0x1376, - 0x9338, 0x2cc9, - 0x9339, 0x2cde, - 0x933c, 0x2cca, - 0x9340, 0x4155, - 0x9341, 0x4277, - 0x9342, 0x3afa, - 0x9343, 0x47a0, - 0x9344, 0x4016, - 0x9345, 0x3e74, - 0x9346, 0x2ccf, - 0x9347, 0x2e8d, - 0x9348, 0x3c61, - 0x9349, 0x2e92, - 0x934a, 0x14a0, - 0x934b, 0x14a2, - 0x934c, 0x2e98, - 0x934d, 0x149c, - 0x934e, 0x2ea6, - 0x934f, 0x2e9e, - 0x9350, 0x2e93, - 0x9352, 0x2e9d, - 0x9354, 0x14a9, - 0x9355, 0x2e9c, - 0x9356, 0x2e8c, - 0x9357, 0x2e9b, - 0x9358, 0x2e8f, - 0x9359, 0x2ea7, - 0x935a, 0x14a8, - 0x935b, 0x14a6, - 0x935c, 0x2e90, - 0x935e, 0x2ea3, - 0x935f, 0x3cbb, - 0x9360, 0x2e95, - 0x9361, 0x2ea2, - 0x9362, 0x4268, - 0x9363, 0x2ea4, - 0x9364, 0x2e8b, - 0x9365, 0x14a1, - 0x9366, 0x46bc, - 0x9367, 0x2ea5, - 0x9368, 0x3bf0, - 0x9369, 0x3961, - 0x936a, 0x2e99, - 0x936b, 0x3893, - 0x936c, 0x14a5, - 0x936d, 0x2e96, - 0x936e, 0x39e8, - 0x9370, 0x14a7, - 0x9371, 0x2e9f, - 0x9373, 0x389e, - 0x9374, 0x3ce4, - 0x9375, 0x149f, - 0x9376, 0x2e91, - 0x9377, 0x2ea0, - 0x9378, 0x38f9, - 0x9379, 0x2e9a, - 0x937a, 0x2cc8, - 0x937b, 0x2ea1, - 0x937c, 0x2e8e, - 0x937d, 0x3c25, - 0x937e, 0x14a4, - 0x9380, 0x3014, - 0x9381, 0x3965, - 0x9382, 0x149d, - 0x9383, 0x2e89, - 0x9384, 0x47a1, - 0x9385, 0x42bd, - 0x9386, 0x3cc0, - 0x9387, 0x3ae0, - 0x9388, 0x3011, - 0x9389, 0x300a, - 0x938a, 0x1540, - 0x938c, 0x3005, - 0x938d, 0x3015, - 0x938e, 0x300c, - 0x938f, 0x2e97, - 0x9390, 0x3d3c, - 0x9391, 0x3017, - 0x9392, 0x3006, - 0x9394, 0x153f, - 0x9395, 0x3010, - 0x9396, 0x1541, - 0x9397, 0x1549, - 0x9398, 0x1547, - 0x9399, 0x3012, - 0x939a, 0x1548, - 0x939b, 0x3008, - 0x939c, 0x39ac, - 0x939d, 0x3009, - 0x939e, 0x300e, - 0x939f, 0x3013, - 0x93a0, 0x3ab1, - 0x93a1, 0x2e88, - 0x93a2, 0x1542, - 0x93a3, 0x301c, - 0x93a4, 0x3019, - 0x93a5, 0x3160, - 0x93a6, 0x300f, - 0x93a7, 0x300b, - 0x93a8, 0x301a, - 0x93a9, 0x3155, - 0x93aa, 0x300d, - 0x93ac, 0x1545, - 0x93ad, 0x47a2, - 0x93ae, 0x1544, - 0x93af, 0x2e8a, - 0x93b0, 0x1546, - 0x93b1, 0x3016, - 0x93b2, 0x3018, - 0x93b3, 0x1543, - 0x93b4, 0x301b, - 0x93b5, 0x3004, - 0x93b7, 0x3007, - 0x93b8, 0x3c90, - 0x93ba, 0x43f7, - 0x93bb, 0x3c8f, - 0x93bd, 0x3a27, - 0x93bf, 0x3e2d, - 0x93c0, 0x315e, - 0x93c2, 0x314e, - 0x93c3, 0x15e0, - 0x93c4, 0x315c, - 0x93c6, 0x39aa, - 0x93c7, 0x314c, - 0x93c8, 0x15e1, - 0x93ca, 0x3157, - 0x93cb, 0x3966, - 0x93cc, 0x3153, - 0x93cd, 0x15e6, - 0x93ce, 0x315d, - 0x93cf, 0x314d, - 0x93d0, 0x3150, - 0x93d1, 0x15de, - 0x93d2, 0x315f, - 0x93d3, 0x40e1, - 0x93d4, 0x3158, - 0x93d5, 0x315b, - 0x93d6, 0x15e4, - 0x93d7, 0x15e9, - 0x93d8, 0x15e7, - 0x93d9, 0x3154, - 0x93da, 0x314f, - 0x93db, 0x3c5f, - 0x93dc, 0x15e2, - 0x93de, 0x314b, - 0x93df, 0x15df, - 0x93e0, 0x3a20, - 0x93e1, 0x15dd, - 0x93e2, 0x15e5, - 0x93e3, 0x315a, - 0x93e4, 0x15e8, - 0x93e6, 0x3156, - 0x93e7, 0x3161, - 0x93e8, 0x15ea, - 0x93ec, 0x3152, - 0x93ee, 0x3159, - 0x93f0, 0x423f, - 0x93f1, 0x42aa, - 0x93f3, 0x3962, - 0x93f5, 0x325a, - 0x93f6, 0x3269, - 0x93f7, 0x325c, - 0x93f8, 0x3263, - 0x93f9, 0x3151, - 0x93fa, 0x3261, - 0x93fb, 0x3250, - 0x93fc, 0x3267, - 0x93fd, 0x1654, - 0x93fe, 0x3254, - 0x93ff, 0x3266, - 0x9400, 0x325b, - 0x9401, 0x3cd4, - 0x9403, 0x1653, - 0x9404, 0x3bc9, - 0x9406, 0x326b, - 0x9407, 0x325d, - 0x9408, 0x3a25, - 0x9409, 0x3262, - 0x940a, 0x3265, - 0x940b, 0x324e, - 0x940c, 0x3268, - 0x940d, 0x3259, - 0x940e, 0x325e, - 0x940f, 0x3252, - 0x9410, 0x3256, - 0x9411, 0x326a, - 0x9412, 0x3260, - 0x9413, 0x324f, - 0x9414, 0x3253, - 0x9415, 0x3255, - 0x9416, 0x325f, - 0x9417, 0x47a5, - 0x9418, 0x1652, - 0x9419, 0x3258, - 0x941b, 0x4148, - 0x941d, 0x47a6, - 0x9420, 0x3251, - 0x9424, 0x3943, - 0x9425, 0x38d0, - 0x9426, 0x38a3, - 0x9427, 0x3bcd, - 0x9428, 0x3257, - 0x9429, 0x3325, - 0x942a, 0x3329, - 0x942b, 0x169f, - 0x942c, 0x332b, - 0x942d, 0x47a7, - 0x942e, 0x1699, - 0x9430, 0x3327, - 0x9431, 0x332d, - 0x9432, 0x169e, - 0x9433, 0x169a, - 0x9435, 0x169b, - 0x9436, 0x3324, - 0x9437, 0x332a, - 0x9438, 0x169d, - 0x9439, 0x3328, - 0x943a, 0x169c, - 0x943b, 0x3323, - 0x943c, 0x3264, - 0x943d, 0x3326, - 0x943e, 0x47a8, - 0x943f, 0x3322, - 0x9440, 0x332c, - 0x9442, 0x4272, - 0x9443, 0x4275, - 0x9444, 0x16df, - 0x9445, 0x33cd, - 0x9446, 0x33d0, - 0x9447, 0x33cc, - 0x9448, 0x33ce, - 0x944a, 0x33c9, - 0x944c, 0x33c7, - 0x944d, 0x3c65, - 0x944f, 0x33cb, - 0x9450, 0x33c8, - 0x9451, 0x16e0, - 0x9454, 0x47aa, - 0x9455, 0x3448, - 0x9457, 0x344a, - 0x9458, 0x3c30, - 0x945b, 0x389f, - 0x945d, 0x3449, - 0x945e, 0x344b, - 0x9460, 0x170e, - 0x9462, 0x3447, - 0x9463, 0x170d, - 0x9464, 0x170f, - 0x9465, 0x3dde, - 0x9467, 0x3ab8, - 0x9468, 0x34a6, - 0x946a, 0x1731, - 0x946b, 0x34a5, - 0x946c, 0x377e, - 0x946d, 0x34ed, - 0x946e, 0x34ec, - 0x946f, 0x34ee, - 0x9470, 0x174c, - 0x9471, 0x34ef, - 0x9472, 0x174b, - 0x9473, 0x34f0, - 0x9474, 0x350c, - 0x9475, 0x350f, - 0x9476, 0x350e, - 0x9477, 0x1755, - 0x9478, 0x350d, - 0x9479, 0x47ab, - 0x947b, 0x419b, - 0x947c, 0x175f, - 0x947d, 0x175d, - 0x947f, 0x1764, - 0x9480, 0x3539, - 0x9482, 0x3538, - 0x9483, 0x3540, - 0x9485, 0x4507, - 0x949f, 0x4885, - 0x94a2, 0x451b, - 0x94c1, 0x47e1, - 0x94c3, 0x47df, - 0x94dc, 0x47d7, - 0x94f6, 0x47d2, - 0x952d, 0x47ac, - 0x9547, 0x48bf, - 0x9577, 0x0697, - 0x9578, 0x4508, - 0x957a, 0x20a1, - 0x957b, 0x234a, - 0x957c, 0x2ab1, - 0x957d, 0x3162, - 0x957f, 0x4509, - 0x9580, 0x0698, - 0x9582, 0x0821, - 0x9583, 0x09ea, - 0x9585, 0x38a1, - 0x9586, 0x20a2, - 0x9588, 0x20a3, - 0x9589, 0x0bd0, - 0x958b, 0x0d9a, - 0x958c, 0x234c, - 0x958d, 0x234b, - 0x958e, 0x0d9e, - 0x958f, 0x0d99, - 0x9590, 0x234d, - 0x9591, 0x0d9b, - 0x9592, 0x0d9d, - 0x9593, 0x0d9c, - 0x9594, 0x0d98, - 0x9596, 0x3bd5, - 0x9597, 0x3bd4, - 0x9598, 0x0f5c, - 0x9599, 0x3bd2, - 0x959b, 0x25f3, - 0x959c, 0x25f1, - 0x959e, 0x25f2, - 0x959f, 0x25f0, - 0x95a0, 0x38a4, - 0x95a1, 0x10df, - 0x95a2, 0x47ad, - 0x95a3, 0x10e2, - 0x95a4, 0x10e4, - 0x95a5, 0x10e3, - 0x95a6, 0x38a2, - 0x95a7, 0x3bd3, - 0x95a8, 0x10e0, - 0x95aa, 0x4395, - 0x95ab, 0x2ab3, - 0x95ac, 0x2ab2, - 0x95ad, 0x1260, - 0x95ae, 0x2ab4, - 0x95b0, 0x2ab5, - 0x95b1, 0x1261, - 0x95b5, 0x2cf0, - 0x95b6, 0x2cee, - 0x95b7, 0x2ead, - 0x95b9, 0x2cec, - 0x95bb, 0x1385, - 0x95bc, 0x2ce9, - 0x95bd, 0x2cf1, - 0x95be, 0x2ceb, - 0x95bf, 0x2cef, - 0x95c0, 0x2ea9, - 0x95c3, 0x2eab, - 0x95c5, 0x2eac, - 0x95c6, 0x14ae, - 0x95c7, 0x2ea8, - 0x95c8, 0x14ad, - 0x95c9, 0x2eaa, - 0x95ca, 0x14aa, - 0x95cd, 0x2cea, - 0x95d0, 0x154c, - 0x95d1, 0x301f, - 0x95d2, 0x301d, - 0x95d4, 0x154a, - 0x95d5, 0x154d, - 0x95d6, 0x154b, - 0x95da, 0x3163, - 0x95dc, 0x15eb, - 0x95de, 0x326c, - 0x95df, 0x326e, - 0x95e0, 0x326d, - 0x95e1, 0x1655, - 0x95e2, 0x16a0, - 0x95e3, 0x3330, - 0x95e4, 0x332f, - 0x95e5, 0x332e, - 0x95e8, 0x450a, - 0x95f4, 0x47af, - 0x961c, 0x0699, - 0x961d, 0x4519, - 0x961e, 0x17b4, - 0x9620, 0x1821, - 0x9621, 0x0414, - 0x9622, 0x181f, - 0x9623, 0x1822, - 0x9624, 0x1820, - 0x9628, 0x18f1, - 0x962a, 0x0526, - 0x962c, 0x0527, - 0x962d, 0x18f3, - 0x962e, 0x0524, - 0x962f, 0x18f2, - 0x9630, 0x18f0, - 0x9631, 0x0525, - 0x9632, 0x0523, - 0x9633, 0x47b0, - 0x9638, 0x3fd1, - 0x9639, 0x1a55, - 0x963a, 0x1a58, - 0x963b, 0x069c, - 0x963c, 0x1a57, - 0x963d, 0x1a56, - 0x963f, 0x069b, - 0x9640, 0x069a, - 0x9641, 0x3f3d, - 0x9642, 0x069e, - 0x9643, 0x1a59, - 0x9644, 0x069d, - 0x9645, 0x4772, - 0x964a, 0x1c1a, - 0x964b, 0x0823, - 0x964e, 0x1c1b, - 0x964f, 0x1c17, - 0x9650, 0x0822, - 0x9651, 0x1c18, - 0x9653, 0x1c19, - 0x9654, 0x1c16, - 0x9656, 0x3de7, - 0x9658, 0x09f1, - 0x965b, 0x09ee, - 0x965c, 0x1e2f, - 0x965d, 0x09ef, - 0x965e, 0x09f2, - 0x965f, 0x1e30, - 0x9661, 0x09ed, - 0x9662, 0x09eb, - 0x9664, 0x09f0, - 0x9669, 0x475e, - 0x966a, 0x0bd1, - 0x966b, 0x20a6, - 0x966c, 0x0bd9, - 0x966d, 0x20a5, - 0x966f, 0x20a8, - 0x9670, 0x0bd5, - 0x9671, 0x20a7, - 0x9672, 0x0da6, - 0x9673, 0x0bd3, - 0x9674, 0x0bd6, - 0x9675, 0x0bd2, - 0x9676, 0x0bd7, - 0x9678, 0x0bd4, - 0x967b, 0x38ac, - 0x967c, 0x20a4, - 0x967d, 0x0da2, - 0x967e, 0x234f, - 0x9680, 0x2353, - 0x9681, 0x3f46, - 0x9683, 0x2352, - 0x9684, 0x0da7, - 0x9685, 0x0da3, - 0x9687, 0x234e, - 0x9688, 0x2350, - 0x968a, 0x0d9f, - 0x968b, 0x0da1, - 0x968d, 0x0da5, - 0x968e, 0x0da0, - 0x968f, 0x3bde, - 0x9691, 0x25f6, - 0x9692, 0x25f4, - 0x9694, 0x0f5e, - 0x9696, 0x38ad, - 0x9697, 0x25f7, - 0x9698, 0x0f5d, - 0x9699, 0x10e5, - 0x969b, 0x10e7, - 0x969c, 0x10e6, - 0x969e, 0x2852, - 0x96a1, 0x2853, - 0x96a2, 0x2ab7, - 0x96a3, 0x38af, - 0x96a4, 0x2ab6, - 0x96a5, 0x42ef, - 0x96a7, 0x1386, - 0x96a9, 0x2cf2, - 0x96aa, 0x1388, - 0x96ac, 0x2eb0, - 0x96ae, 0x2eae, - 0x96b0, 0x2eaf, - 0x96b1, 0x14af, - 0x96b3, 0x3020, - 0x96b4, 0x15ec, - 0x96b6, 0x0231, - 0x96b8, 0x14b0, - 0x96b9, 0x069f, - 0x96bb, 0x09f3, - 0x96bc, 0x1e31, - 0x96bd, 0x38b5, - 0x96bf, 0x20a9, - 0x96c0, 0x0bda, - 0x96c1, 0x0da8, - 0x96c2, 0x2354, - 0x96c3, 0x2356, - 0x96c4, 0x0daa, - 0x96c5, 0x0da9, - 0x96c6, 0x0dab, - 0x96c8, 0x2355, - 0x96c9, 0x0f62, - 0x96cb, 0x0f61, - 0x96cc, 0x10e8, - 0x96cd, 0x0f60, - 0x96ce, 0x25f8, - 0x96d2, 0x10e9, - 0x96d3, 0x2ab8, - 0x96d4, 0x2cf3, - 0x96d5, 0x1389, - 0x96d6, 0x14b1, - 0x96d7, 0x3021, - 0x96d8, 0x3025, - 0x96d9, 0x1550, - 0x96da, 0x3022, - 0x96db, 0x1551, - 0x96dc, 0x154f, - 0x96dd, 0x3026, - 0x96de, 0x1552, - 0x96df, 0x3024, - 0x96e1, 0x3165, - 0x96e2, 0x154e, - 0x96e3, 0x15ed, - 0x96e5, 0x34a8, - 0x96e8, 0x06a0, - 0x96e9, 0x0bdc, - 0x96ea, 0x0bdb, - 0x96ef, 0x0dad, - 0x96f0, 0x2358, - 0x96f1, 0x2357, - 0x96f2, 0x0dae, - 0x96f4, 0x3a04, - 0x96f5, 0x25fc, - 0x96f6, 0x0f67, - 0x96f7, 0x0f64, - 0x96f8, 0x25fb, - 0x96f9, 0x0f66, - 0x96fa, 0x25f9, - 0x96fb, 0x0f65, - 0x96fd, 0x25fa, - 0x96ff, 0x2854, - 0x9700, 0x10ea, - 0x9702, 0x2abb, - 0x9703, 0x3f0d, - 0x9704, 0x1262, - 0x9705, 0x2ab9, - 0x9706, 0x1263, - 0x9708, 0x2aba, - 0x9709, 0x1265, - 0x970b, 0x2cf4, - 0x970d, 0x138d, - 0x970e, 0x138a, - 0x970f, 0x138f, - 0x9710, 0x2cf6, - 0x9711, 0x138b, - 0x9712, 0x2cf5, - 0x9713, 0x138e, - 0x9716, 0x138c, - 0x9718, 0x2eb3, - 0x9719, 0x2eb5, - 0x971b, 0x38c9, - 0x971c, 0x14b2, - 0x971d, 0x2eb4, - 0x971e, 0x14b3, - 0x971f, 0x2eb2, - 0x9720, 0x2eb1, - 0x9721, 0x3fb3, - 0x9722, 0x3028, - 0x9723, 0x3027, - 0x9724, 0x1553, - 0x9725, 0x3029, - 0x9726, 0x316a, - 0x9727, 0x15ef, - 0x9728, 0x3169, - 0x9729, 0x3166, - 0x972a, 0x15ee, - 0x972b, 0x3167, - 0x972e, 0x326f, - 0x9730, 0x1656, - 0x9731, 0x38c0, - 0x9732, 0x16a3, - 0x9735, 0x3331, - 0x9736, 0x38c2, - 0x9738, 0x16a1, - 0x973a, 0x3332, - 0x973d, 0x16e2, - 0x973f, 0x33d1, - 0x9740, 0x47b3, - 0x9741, 0x3be9, - 0x9742, 0x1732, - 0x9743, 0x34aa, - 0x9744, 0x1734, - 0x9746, 0x34a9, - 0x9747, 0x34ab, - 0x9748, 0x1733, - 0x9749, 0x34f1, - 0x974b, 0x3526, - 0x9751, 0x44e3, - 0x9752, 0x06a1, - 0x9756, 0x0f68, - 0x9757, 0x38cc, - 0x9758, 0x2855, - 0x975a, 0x2abc, - 0x975b, 0x1390, - 0x975d, 0x3bef, - 0x975e, 0x06a2, - 0x975f, 0x38cf, - 0x9760, 0x1266, - 0x9761, 0x15f0, - 0x9762, 0x0826, - 0x9766, 0x1392, - 0x9768, 0x1710, - 0x9769, 0x0827, - 0x976a, 0x20aa, - 0x976c, 0x2359, - 0x976d, 0x3e97, - 0x976e, 0x235b, - 0x9770, 0x235a, - 0x9771, 0x3bfc, - 0x9772, 0x2600, - 0x9773, 0x25fd, - 0x9774, 0x0f69, - 0x9776, 0x0f6a, - 0x9777, 0x25fe, - 0x977a, 0x2857, - 0x977b, 0x285c, - 0x977c, 0x10eb, - 0x977d, 0x2856, - 0x977e, 0x2858, - 0x977f, 0x285f, - 0x9780, 0x285a, - 0x9781, 0x285e, - 0x9782, 0x285b, - 0x9783, 0x2859, - 0x9784, 0x285d, - 0x9785, 0x10ec, - 0x9787, 0x40c0, - 0x9788, 0x2abf, - 0x9789, 0x38d4, - 0x978a, 0x2abd, - 0x978b, 0x1268, - 0x978d, 0x1267, - 0x978e, 0x2abe, - 0x978f, 0x1269, - 0x9794, 0x2cf9, - 0x9797, 0x2cf8, - 0x9798, 0x1393, - 0x9799, 0x2cf7, - 0x979a, 0x2eb6, - 0x979b, 0x3bfb, - 0x979c, 0x2eb8, - 0x979d, 0x2eba, - 0x979e, 0x2eb9, - 0x979f, 0x38d5, - 0x97a0, 0x14b4, - 0x97a1, 0x2eb7, - 0x97a2, 0x3030, - 0x97a3, 0x1554, - 0x97a4, 0x302e, - 0x97a5, 0x3031, - 0x97a6, 0x1555, - 0x97a8, 0x302c, - 0x97aa, 0x302f, - 0x97ab, 0x302d, - 0x97ac, 0x302a, - 0x97ad, 0x1556, - 0x97ae, 0x302b, - 0x97b1, 0x38d6, - 0x97b2, 0x47b5, - 0x97b3, 0x316b, - 0x97b4, 0x3f33, - 0x97b6, 0x316d, - 0x97b7, 0x316c, - 0x97b8, 0x3d95, - 0x97b9, 0x3271, - 0x97ba, 0x3f35, - 0x97bb, 0x3272, - 0x97bd, 0x494e, - 0x97be, 0x38d7, - 0x97bf, 0x3333, - 0x97c0, 0x38d8, - 0x97c1, 0x16e5, - 0x97c2, 0x47b6, - 0x97c3, 0x16e4, - 0x97c4, 0x344c, - 0x97c6, 0x1735, - 0x97c7, 0x34ac, - 0x97c8, 0x3f2f, - 0x97c9, 0x1756, - 0x97cb, 0x0828, - 0x97cc, 0x0daf, - 0x97cd, 0x2861, - 0x97ce, 0x2860, - 0x97cf, 0x2ac1, - 0x97d0, 0x2ac0, - 0x97d2, 0x38d9, - 0x97d3, 0x14b5, - 0x97d4, 0x2ebc, - 0x97d5, 0x2ebb, - 0x97d6, 0x3034, - 0x97d7, 0x3032, - 0x97d8, 0x3035, - 0x97d9, 0x3033, - 0x97dc, 0x15f1, - 0x97dd, 0x316e, - 0x97e0, 0x38da, - 0x97e1, 0x3334, - 0x97e3, 0x33d2, - 0x97e5, 0x34ad, - 0x97e6, 0x450c, - 0x97ed, 0x0829, - 0x97ee, 0x38dc, - 0x97f0, 0x2cfa, - 0x97f1, 0x2ebd, - 0x97f2, 0x394d, - 0x97f3, 0x082a, - 0x97f5, 0x38e0, - 0x97f6, 0x10ed, - 0x97f8, 0x2cfb, - 0x97f9, 0x1557, - 0x97fa, 0x3036, - 0x97fb, 0x15f2, - 0x97fd, 0x3273, - 0x97ff, 0x16a4, - 0x9800, 0x344e, - 0x9801, 0x082b, - 0x9802, 0x0bdf, - 0x9804, 0x20ab, - 0x9805, 0x0db0, - 0x9807, 0x235c, - 0x9808, 0x0db2, - 0x980a, 0x0f6e, - 0x980c, 0x0f70, - 0x980d, 0x2602, - 0x980f, 0x2601, - 0x9810, 0x0f6b, - 0x9812, 0x0f6f, - 0x9813, 0x0f6d, - 0x9814, 0x4952, - 0x9815, 0x433c, - 0x9816, 0x2862, - 0x9817, 0x10ee, - 0x981b, 0x2ac8, - 0x981c, 0x126c, - 0x981d, 0x2ac3, - 0x981e, 0x2ac2, - 0x981f, 0x3c02, - 0x9820, 0x2ac7, - 0x9821, 0x126a, - 0x9823, 0x3e37, - 0x9824, 0x139a, - 0x9826, 0x2ac4, - 0x9827, 0x2ac9, - 0x9828, 0x2ac6, - 0x9829, 0x2ac5, - 0x982b, 0x126b, - 0x982d, 0x1398, - 0x982e, 0x3f72, - 0x982f, 0x2cfd, - 0x9830, 0x1394, - 0x9832, 0x2cfe, - 0x9833, 0x38e5, - 0x9834, 0x38e4, - 0x9835, 0x2cfc, - 0x9837, 0x1397, - 0x9838, 0x1395, - 0x9839, 0x1399, - 0x983b, 0x1396, - 0x9841, 0x2ebe, - 0x9843, 0x2ec3, - 0x9844, 0x2ebf, - 0x9845, 0x2ec2, - 0x9846, 0x14b6, - 0x9847, 0x3d96, - 0x9848, 0x2df2, - 0x9849, 0x2ec1, - 0x984a, 0x2ec0, - 0x984b, 0x38e6, - 0x984c, 0x155a, - 0x984d, 0x1558, - 0x984e, 0x155b, - 0x984f, 0x1559, - 0x9850, 0x3037, - 0x9853, 0x155c, - 0x9857, 0x3174, - 0x9858, 0x15f4, - 0x9859, 0x3172, - 0x985b, 0x15f5, - 0x985c, 0x3171, - 0x985d, 0x3173, - 0x985e, 0x15f3, - 0x985f, 0x3278, - 0x9860, 0x3275, - 0x9862, 0x3276, - 0x9864, 0x3335, - 0x9865, 0x16a6, - 0x9866, 0x38e7, - 0x9867, 0x16a5, - 0x9869, 0x33d4, - 0x986a, 0x33d3, - 0x986b, 0x16e6, - 0x986c, 0x4035, - 0x986f, 0x1711, - 0x9870, 0x1736, - 0x9871, 0x174d, - 0x9872, 0x34f2, - 0x9873, 0x3527, - 0x9875, 0x450d, - 0x98a8, 0x082c, - 0x98a9, 0x235d, - 0x98ac, 0x2604, - 0x98ad, 0x2863, - 0x98af, 0x10f0, - 0x98b1, 0x10f1, - 0x98b2, 0x2aca, - 0x98b3, 0x126d, - 0x98b4, 0x3f73, - 0x98b6, 0x14b7, - 0x98b7, 0x38ef, - 0x98b8, 0x303a, - 0x98b9, 0x47b8, - 0x98ba, 0x155d, - 0x98bb, 0x3177, - 0x98bc, 0x15f6, - 0x98bd, 0x3176, - 0x98be, 0x3178, - 0x98bf, 0x3175, - 0x98c0, 0x3338, - 0x98c1, 0x3279, - 0x98c3, 0x3b78, - 0x98c4, 0x1657, - 0x98c6, 0x3337, - 0x98c7, 0x38f1, - 0x98c8, 0x38f0, - 0x98c9, 0x3336, - 0x98ca, 0x38ee, - 0x98cb, 0x33d5, - 0x98cc, 0x3529, - 0x98ce, 0x450e, - 0x98db, 0x082d, - 0x98dc, 0x3c0b, - 0x98de, 0x450f, - 0x98df, 0x082e, - 0x98e0, 0x4792, - 0x98e1, 0x38f6, - 0x98e2, 0x09f4, - 0x98e3, 0x1e32, - 0x98e5, 0x20ac, - 0x98e6, 0x38f7, - 0x98e7, 0x0db3, - 0x98e9, 0x0db6, - 0x98ea, 0x0db4, - 0x98eb, 0x235e, - 0x98ec, 0x38f8, - 0x98ed, 0x0db8, - 0x98ef, 0x0db5, - 0x98f1, 0x47ba, - 0x98f2, 0x0db7, - 0x98f4, 0x0f72, - 0x98f5, 0x4365, - 0x98f6, 0x2605, - 0x98f9, 0x2606, - 0x98fa, 0x2acc, - 0x98fc, 0x0f71, - 0x98fd, 0x0f73, - 0x9900, 0x2866, - 0x9902, 0x2865, - 0x9903, 0x10f2, - 0x9905, 0x10f3, - 0x9907, 0x2867, - 0x9908, 0x2acb, - 0x9909, 0x10f5, - 0x990a, 0x126e, - 0x990c, 0x10f4, - 0x990e, 0x43ed, - 0x9910, 0x139b, - 0x9911, 0x2acd, - 0x9912, 0x1270, - 0x9913, 0x126f, - 0x9914, 0x2ace, - 0x9915, 0x2ad1, - 0x9916, 0x2acf, - 0x9918, 0x1271, - 0x9919, 0x47bc, - 0x991a, 0x13a0, - 0x991b, 0x139e, - 0x991c, 0x43ee, - 0x991e, 0x139d, - 0x991f, 0x2d00, - 0x9921, 0x139f, - 0x9924, 0x2cff, - 0x9925, 0x2ec4, - 0x9927, 0x2d01, - 0x9928, 0x139c, - 0x9929, 0x2d02, - 0x992a, 0x2ec7, - 0x992b, 0x2ec5, - 0x992d, 0x2ecb, - 0x992e, 0x1561, - 0x992f, 0x2eca, - 0x9930, 0x2ecd, - 0x9931, 0x2ecc, - 0x9932, 0x2ec9, - 0x9933, 0x2ec8, - 0x9935, 0x14b8, - 0x9937, 0x47bd, - 0x9938, 0x3bfd, - 0x9939, 0x38fa, - 0x993a, 0x303d, - 0x993b, 0x3c11, - 0x993c, 0x303c, - 0x993d, 0x1560, - 0x993e, 0x155e, - 0x9940, 0x3f34, - 0x9941, 0x303b, - 0x9942, 0x43ff, - 0x9943, 0x317b, - 0x9945, 0x15f7, - 0x9947, 0x317a, - 0x9948, 0x3179, - 0x9949, 0x15f8, - 0x994a, 0x3fb9, - 0x994b, 0x327f, - 0x994c, 0x327e, - 0x994d, 0x3c12, - 0x994e, 0x327c, - 0x9950, 0x327b, - 0x9951, 0x1659, - 0x9952, 0x1658, - 0x9953, 0x3280, - 0x9954, 0x33d6, - 0x9955, 0x16e7, - 0x9956, 0x333a, - 0x9957, 0x16a7, - 0x9958, 0x3339, - 0x9959, 0x327d, - 0x995b, 0x33d7, - 0x995c, 0x1712, - 0x995d, 0x47be, - 0x995e, 0x174e, - 0x995f, 0x34f3, - 0x9961, 0x352a, - 0x9962, 0x43ef, - 0x9963, 0x4510, - 0x9996, 0x082f, - 0x9997, 0x20ad, - 0x9998, 0x2ece, - 0x9999, 0x0830, - 0x999b, 0x3c15, - 0x999c, 0x2869, - 0x999d, 0x2868, - 0x999e, 0x2d03, - 0x99a1, 0x2ed0, - 0x99a3, 0x2ecf, - 0x99a4, 0x41c3, - 0x99a5, 0x1562, - 0x99a6, 0x317c, - 0x99a8, 0x165a, - 0x99aa, 0x3c17, - 0x99ab, 0x352b, - 0x99ac, 0x09f5, - 0x99ad, 0x0dba, - 0x99ae, 0x0db9, - 0x99af, 0x2607, - 0x99b0, 0x2609, - 0x99b1, 0x0f76, - 0x99b2, 0x2608, - 0x99b3, 0x0f75, - 0x99b4, 0x0f77, - 0x99b5, 0x260a, - 0x99b8, 0x394b, - 0x99b9, 0x286b, - 0x99ba, 0x286d, - 0x99bb, 0x286c, - 0x99bc, 0x3c22, - 0x99bd, 0x286f, - 0x99c1, 0x10f6, - 0x99c2, 0x286e, - 0x99c3, 0x286a, - 0x99c4, 0x3d77, - 0x99c5, 0x47c1, - 0x99c7, 0x2870, - 0x99c9, 0x2ad8, - 0x99cb, 0x2adb, - 0x99cc, 0x2add, - 0x99cd, 0x2ad3, - 0x99ce, 0x2ad7, - 0x99cf, 0x2ad4, - 0x99d0, 0x1273, - 0x99d1, 0x1276, - 0x99d2, 0x1278, - 0x99d3, 0x2ad5, - 0x99d5, 0x1277, - 0x99d6, 0x2ad9, - 0x99d7, 0x2adc, - 0x99d8, 0x2ada, - 0x99d9, 0x1279, - 0x99da, 0x3f42, - 0x99db, 0x1275, - 0x99dc, 0x2ad2, - 0x99dd, 0x1272, - 0x99df, 0x1274, - 0x99e1, 0x3785, - 0x99e2, 0x13a2, - 0x99e3, 0x2d09, - 0x99e4, 0x2d07, - 0x99e5, 0x2d06, - 0x99e6, 0x3b65, - 0x99e7, 0x2d0c, - 0x99e9, 0x2d0b, - 0x99ea, 0x2d0a, - 0x99ec, 0x2d05, - 0x99ed, 0x13a1, - 0x99ee, 0x2d04, - 0x99f0, 0x2d08, - 0x99f1, 0x13a3, - 0x99f4, 0x2ed3, - 0x99f5, 0x38ff, - 0x99f6, 0x2ed7, - 0x99f7, 0x2ed4, - 0x99f8, 0x2ed6, - 0x99f9, 0x2ed5, - 0x99fa, 0x2ed2, - 0x99fb, 0x2ed8, - 0x99fc, 0x2edb, - 0x99fd, 0x2ed9, - 0x99ff, 0x14ba, - 0x9a01, 0x14b9, - 0x9a02, 0x2ed1, - 0x9a03, 0x2edc, - 0x9a04, 0x3042, - 0x9a05, 0x3045, - 0x9a06, 0x3047, - 0x9a07, 0x3046, - 0x9a09, 0x3040, - 0x9a0a, 0x3044, - 0x9a0b, 0x303f, - 0x9a0c, 0x3900, - 0x9a0d, 0x3041, - 0x9a0e, 0x1563, - 0x9a0f, 0x303e, - 0x9a10, 0x3902, - 0x9a11, 0x3043, - 0x9a14, 0x318a, - 0x9a15, 0x317f, - 0x9a16, 0x15f9, - 0x9a19, 0x15fa, - 0x9a1a, 0x317e, - 0x9a1b, 0x3183, - 0x9a1c, 0x3189, - 0x9a1d, 0x3181, - 0x9a1e, 0x3188, - 0x9a1f, 0x3b6c, - 0x9a20, 0x3185, - 0x9a21, 0x3c1c, - 0x9a22, 0x3184, - 0x9a23, 0x3187, - 0x9a24, 0x3182, - 0x9a25, 0x3180, - 0x9a26, 0x3df2, - 0x9a27, 0x3186, - 0x9a29, 0x3287, - 0x9a2a, 0x3285, - 0x9a2b, 0x165b, - 0x9a2c, 0x3284, - 0x9a2d, 0x328a, - 0x9a2e, 0x3288, - 0x9a2f, 0x3c1e, - 0x9a30, 0x165c, - 0x9a31, 0x3283, - 0x9a32, 0x3281, - 0x9a34, 0x3282, - 0x9a35, 0x165e, - 0x9a36, 0x3286, - 0x9a37, 0x165d, - 0x9a38, 0x3289, - 0x9a39, 0x333b, - 0x9a3a, 0x3341, - 0x9a3b, 0x3901, - 0x9a3c, 0x47c3, - 0x9a3d, 0x333c, - 0x9a3e, 0x16ab, - 0x9a3f, 0x3342, - 0x9a40, 0x16aa, - 0x9a41, 0x3340, - 0x9a42, 0x333f, - 0x9a43, 0x16a9, - 0x9a44, 0x333e, - 0x9a45, 0x16a8, - 0x9a46, 0x333d, - 0x9a48, 0x33dd, - 0x9a49, 0x33df, - 0x9a4a, 0x33de, - 0x9a4c, 0x33db, - 0x9a4d, 0x16e9, - 0x9a4e, 0x33d8, - 0x9a4f, 0x33dc, - 0x9a50, 0x33e1, - 0x9a52, 0x33e0, - 0x9a53, 0x33d9, - 0x9a55, 0x16e8, - 0x9a56, 0x344f, - 0x9a57, 0x1715, - 0x9a58, 0x3903, - 0x9a59, 0x3450, - 0x9a5a, 0x1713, - 0x9a5c, 0x3c18, - 0x9a5e, 0x34ae, - 0x9a5f, 0x1737, - 0x9a60, 0x3510, - 0x9a62, 0x1757, - 0x9a63, 0x3b67, - 0x9a64, 0x352c, - 0x9a65, 0x1758, - 0x9a66, 0x352d, - 0x9a68, 0x353c, - 0x9a69, 0x353b, - 0x9a6a, 0x1767, - 0x9a6b, 0x3544, - 0x9a6c, 0x4585, - 0x9a8f, 0x4586, - 0x9aa8, 0x09f6, - 0x9aab, 0x260c, - 0x9aad, 0x260b, - 0x9aaf, 0x10f7, - 0x9ab1, 0x2871, - 0x9ab2, 0x4332, - 0x9ab3, 0x2ade, - 0x9ab4, 0x2d0f, - 0x9ab6, 0x43f0, - 0x9ab7, 0x127a, - 0x9ab8, 0x13a4, - 0x9ab9, 0x2d0d, - 0x9aba, 0x3f74, - 0x9abb, 0x2d10, - 0x9abc, 0x13a5, - 0x9abd, 0x3d97, - 0x9abe, 0x2edd, - 0x9abf, 0x2d0e, - 0x9ac0, 0x3048, - 0x9ac1, 0x1564, - 0x9ac2, 0x318b, - 0x9ac6, 0x328d, - 0x9ac7, 0x328b, - 0x9aca, 0x328c, - 0x9acd, 0x3343, - 0x9acf, 0x16ac, - 0x9ad0, 0x33e2, - 0x9ad1, 0x1718, - 0x9ad2, 0x16ea, - 0x9ad3, 0x1716, - 0x9ad5, 0x34af, - 0x9ad6, 0x174f, - 0x9ad7, 0x3faa, - 0x9ad8, 0x09f7, - 0x9adc, 0x3049, - 0x9adf, 0x1e33, - 0x9ae0, 0x3908, - 0x9ae1, 0x0f78, - 0x9ae2, 0x3909, - 0x9ae3, 0x2872, - 0x9ae6, 0x10f9, - 0x9ae7, 0x2873, - 0x9aeb, 0x2ae0, - 0x9aec, 0x2adf, - 0x9aed, 0x13a7, - 0x9aee, 0x127b, - 0x9af1, 0x2ae3, - 0x9af2, 0x2ae2, - 0x9af3, 0x2ae1, - 0x9af4, 0x390b, - 0x9af6, 0x2d11, - 0x9af7, 0x2d14, - 0x9af9, 0x2d13, - 0x9afa, 0x2d12, - 0x9afb, 0x13a6, - 0x9afc, 0x2ee1, - 0x9afd, 0x2edf, - 0x9afe, 0x2ede, - 0x9aff, 0x3f17, - 0x9b01, 0x2ee0, - 0x9b02, 0x3f12, - 0x9b03, 0x1565, - 0x9b04, 0x304b, - 0x9b06, 0x1566, - 0x9b08, 0x304a, - 0x9b09, 0x3f20, - 0x9b0a, 0x318d, - 0x9b0b, 0x318c, - 0x9b0c, 0x318f, - 0x9b0d, 0x15fb, - 0x9b0e, 0x318e, - 0x9b0f, 0x47c4, - 0x9b10, 0x328e, - 0x9b11, 0x3290, - 0x9b12, 0x328f, - 0x9b14, 0x390d, - 0x9b15, 0x3344, - 0x9b16, 0x3347, - 0x9b17, 0x3345, - 0x9b19, 0x33e3, - 0x9b1a, 0x16eb, - 0x9b1e, 0x3451, - 0x9b22, 0x1738, - 0x9b23, 0x1750, - 0x9b24, 0x352f, - 0x9b25, 0x09f8, - 0x9b27, 0x127d, - 0x9b28, 0x13a8, - 0x9b29, 0x304d, - 0x9b2a, 0x3f19, - 0x9b2b, 0x33e4, - 0x9b2d, 0x390e, - 0x9b2e, 0x3511, - 0x9b2f, 0x1e34, - 0x9b31, 0x1768, - 0x9b32, 0x09f9, - 0x9b33, 0x2d15, - 0x9b34, 0x3911, - 0x9b35, 0x304e, - 0x9b37, 0x3190, - 0x9b39, 0x3f00, - 0x9b3a, 0x3348, - 0x9b3b, 0x33e5, - 0x9b3c, 0x09fa, - 0x9b3e, 0x2874, - 0x9b40, 0x3915, - 0x9b41, 0x10fa, - 0x9b43, 0x2ae5, - 0x9b44, 0x127f, - 0x9b45, 0x127e, - 0x9b46, 0x2ae4, - 0x9b48, 0x2ee2, - 0x9b4a, 0x304f, - 0x9b4b, 0x3051, - 0x9b4c, 0x3050, - 0x9b4d, 0x1569, - 0x9b4e, 0x1568, - 0x9b4f, 0x1567, - 0x9b50, 0x3914, - 0x9b51, 0x16ae, - 0x9b52, 0x3349, - 0x9b54, 0x16ad, - 0x9b55, 0x33e7, - 0x9b56, 0x33e6, - 0x9b58, 0x1739, - 0x9b59, 0x34b0, - 0x9b5a, 0x0be1, - 0x9b5b, 0x260d, - 0x9b5f, 0x2878, - 0x9b60, 0x2876, - 0x9b64, 0x2aee, - 0x9b66, 0x2ae9, - 0x9b67, 0x2ae6, - 0x9b68, 0x2aed, - 0x9b69, 0x47c5, - 0x9b6c, 0x2aef, - 0x9b6f, 0x1281, - 0x9b70, 0x2aec, - 0x9b71, 0x2ae8, - 0x9b74, 0x2ae7, - 0x9b75, 0x2aeb, - 0x9b76, 0x2aea, - 0x9b77, 0x1280, - 0x9b7a, 0x2d20, - 0x9b7b, 0x2d1b, - 0x9b7c, 0x2d19, - 0x9b7d, 0x2d22, - 0x9b7e, 0x2d1a, - 0x9b7f, 0x3c3b, - 0x9b80, 0x2d16, - 0x9b81, 0x43f1, - 0x9b82, 0x2d1c, - 0x9b83, 0x4219, - 0x9b85, 0x2d17, - 0x9b86, 0x2eeb, - 0x9b87, 0x2d18, - 0x9b88, 0x2d23, - 0x9b8b, 0x3eee, - 0x9b8d, 0x4623, - 0x9b8e, 0x3919, - 0x9b8f, 0x3fad, - 0x9b90, 0x2d1f, - 0x9b91, 0x13a9, - 0x9b92, 0x2d1e, - 0x9b93, 0x2d1d, - 0x9b95, 0x2d21, - 0x9b97, 0x3f71, - 0x9b9a, 0x2ee3, - 0x9b9b, 0x2ee6, - 0x9b9d, 0x3f56, - 0x9b9e, 0x2ee5, - 0x9b9f, 0x3c3e, - 0x9ba0, 0x2eed, - 0x9ba1, 0x2ee8, - 0x9ba2, 0x2eec, - 0x9ba4, 0x2eea, - 0x9ba5, 0x2ee9, - 0x9ba6, 0x2ee7, - 0x9ba8, 0x2ee4, - 0x9baa, 0x14bd, - 0x9bab, 0x14bc, - 0x9bad, 0x14be, - 0x9bae, 0x14bb, - 0x9baf, 0x2eee, - 0x9bb0, 0x3fb4, - 0x9bb5, 0x3057, - 0x9bb6, 0x305a, - 0x9bb8, 0x3058, - 0x9bb9, 0x305c, - 0x9bbd, 0x305d, - 0x9bbf, 0x3055, - 0x9bc0, 0x156e, - 0x9bc1, 0x3056, - 0x9bc3, 0x3054, - 0x9bc4, 0x305b, - 0x9bc6, 0x3053, - 0x9bc7, 0x3052, - 0x9bc8, 0x156d, - 0x9bc9, 0x156b, - 0x9bca, 0x156a, - 0x9bcf, 0x3c3c, - 0x9bd3, 0x3059, - 0x9bd4, 0x3199, - 0x9bd5, 0x319f, - 0x9bd6, 0x15fe, - 0x9bd7, 0x319a, - 0x9bd9, 0x319d, - 0x9bda, 0x31a1, - 0x9bdb, 0x15ff, - 0x9bdc, 0x319c, - 0x9bdd, 0x47c6, - 0x9bde, 0x3194, - 0x9be0, 0x3193, - 0x9be1, 0x31a0, - 0x9be2, 0x3197, - 0x9be4, 0x3195, - 0x9be5, 0x319e, - 0x9be6, 0x3196, - 0x9be7, 0x15fd, - 0x9be8, 0x15fc, - 0x9be9, 0x3bc1, - 0x9bea, 0x3191, - 0x9bec, 0x319b, - 0x9bed, 0x3ed7, - 0x9bf0, 0x3198, - 0x9bf1, 0x47c7, - 0x9bf4, 0x47c8, - 0x9bf7, 0x3293, - 0x9bf8, 0x3296, - 0x9bfd, 0x156c, - 0x9bff, 0x391b, - 0x9c02, 0x391a, - 0x9c05, 0x3294, - 0x9c06, 0x329a, - 0x9c07, 0x3298, - 0x9c08, 0x3292, - 0x9c09, 0x329d, - 0x9c0a, 0x3f3a, - 0x9c0b, 0x3291, - 0x9c0c, 0x391c, - 0x9c0d, 0x1660, - 0x9c0e, 0x3299, - 0x9c10, 0x3c3a, - 0x9c12, 0x3295, - 0x9c13, 0x165f, - 0x9c14, 0x329c, - 0x9c15, 0x3f1e, - 0x9c17, 0x329b, - 0x9c1b, 0x491b, - 0x9c1c, 0x334c, - 0x9c1d, 0x334b, - 0x9c1f, 0x4622, - 0x9c20, 0x47ca, - 0x9c21, 0x3352, - 0x9c23, 0x334e, - 0x9c24, 0x3351, - 0x9c25, 0x16b0, - 0x9c26, 0x45e6, - 0x9c28, 0x334f, - 0x9c2b, 0x334a, - 0x9c2c, 0x334d, - 0x9c2d, 0x16af, - 0x9c2e, 0x3f22, - 0x9c2f, 0x3d87, - 0x9c31, 0x16ed, - 0x9c32, 0x33f2, - 0x9c33, 0x33ed, - 0x9c34, 0x33f1, - 0x9c35, 0x3c39, - 0x9c36, 0x33f4, - 0x9c37, 0x33f0, - 0x9c39, 0x33ec, - 0x9c3a, 0x3d7e, - 0x9c3b, 0x16ef, - 0x9c3c, 0x33ef, - 0x9c3d, 0x33f3, - 0x9c3e, 0x16ee, - 0x9c3f, 0x33ea, - 0x9c40, 0x3297, - 0x9c41, 0x33ee, - 0x9c44, 0x33eb, - 0x9c45, 0x3e71, - 0x9c46, 0x33e8, - 0x9c48, 0x33e9, - 0x9c49, 0x16ec, - 0x9c4a, 0x3457, - 0x9c4b, 0x3459, - 0x9c4c, 0x345c, - 0x9c4d, 0x3458, - 0x9c4e, 0x345d, - 0x9c4f, 0x3c36, - 0x9c50, 0x3456, - 0x9c52, 0x3454, - 0x9c53, 0x3c37, - 0x9c54, 0x1719, - 0x9c55, 0x345a, - 0x9c56, 0x171b, - 0x9c57, 0x171a, - 0x9c58, 0x3455, - 0x9c59, 0x345b, - 0x9c5d, 0x3ebf, - 0x9c5e, 0x34b5, - 0x9c5f, 0x173a, - 0x9c60, 0x34b6, - 0x9c62, 0x34b4, - 0x9c63, 0x34b1, - 0x9c66, 0x34b3, - 0x9c67, 0x34b2, - 0x9c68, 0x34f4, - 0x9c6d, 0x34f6, - 0x9c6e, 0x34f5, - 0x9c71, 0x3514, - 0x9c72, 0x3ea1, - 0x9c73, 0x3513, - 0x9c74, 0x3512, - 0x9c75, 0x3515, - 0x9c77, 0x1760, - 0x9c79, 0x3541, - 0x9c7a, 0x3545, - 0x9c7b, 0x3c38, - 0x9c7c, 0x4512, - 0x9ce5, 0x0be2, - 0x9ce6, 0x235f, - 0x9ce7, 0x2610, - 0x9ce9, 0x0f79, - 0x9cea, 0x260e, - 0x9ced, 0x260f, - 0x9cf1, 0x2879, - 0x9cf3, 0x10fe, - 0x9cf4, 0x10fc, - 0x9cf5, 0x287b, - 0x9cf6, 0x10fd, - 0x9cf7, 0x2af4, - 0x9cf9, 0x2af7, - 0x9cfa, 0x2af1, - 0x9cfb, 0x2af8, - 0x9cfc, 0x2af0, - 0x9cfd, 0x2af2, - 0x9cff, 0x2af3, - 0x9d00, 0x2af6, - 0x9d02, 0x3f3b, - 0x9d03, 0x1284, - 0x9d04, 0x2afb, - 0x9d05, 0x2afa, - 0x9d06, 0x1282, - 0x9d07, 0x2af5, - 0x9d08, 0x2af9, - 0x9d09, 0x1283, - 0x9d0c, 0x3c46, - 0x9d10, 0x2d2d, - 0x9d12, 0x13ae, - 0x9d14, 0x2d28, - 0x9d15, 0x13aa, - 0x9d16, 0x3c7c, - 0x9d17, 0x2d25, - 0x9d18, 0x2d2b, - 0x9d19, 0x2d2e, - 0x9d1b, 0x13af, - 0x9d1d, 0x2d2a, - 0x9d1e, 0x2d27, - 0x9d1f, 0x2d2f, - 0x9d20, 0x2d26, - 0x9d21, 0x3c41, - 0x9d22, 0x2d2c, - 0x9d23, 0x13ab, - 0x9d25, 0x2d24, - 0x9d26, 0x13ac, - 0x9d28, 0x13ad, - 0x9d29, 0x2d29, - 0x9d2d, 0x2f00, - 0x9d2e, 0x2ef3, - 0x9d30, 0x2ef7, - 0x9d31, 0x2ef5, - 0x9d33, 0x2eef, - 0x9d34, 0x404a, - 0x9d36, 0x2ef2, - 0x9d37, 0x2efc, - 0x9d38, 0x2ef6, - 0x9d39, 0x392e, - 0x9d3b, 0x14bf, - 0x9d3d, 0x2efe, - 0x9d3e, 0x2efb, - 0x9d3f, 0x14c0, - 0x9d40, 0x2efd, - 0x9d41, 0x2ef0, - 0x9d42, 0x2ef9, - 0x9d44, 0x3fab, - 0x9d45, 0x2ef8, - 0x9d49, 0x47cd, - 0x9d4a, 0x3061, - 0x9d4b, 0x3063, - 0x9d4c, 0x3066, - 0x9d4e, 0x4539, - 0x9d4f, 0x3060, - 0x9d50, 0x3eca, - 0x9d51, 0x156f, - 0x9d52, 0x3068, - 0x9d53, 0x305f, - 0x9d54, 0x3069, - 0x9d56, 0x3065, - 0x9d57, 0x3067, - 0x9d58, 0x306b, - 0x9d59, 0x3064, - 0x9d5a, 0x306c, - 0x9d5b, 0x3062, - 0x9d5c, 0x305e, - 0x9d5d, 0x1570, - 0x9d5e, 0x3e6e, - 0x9d5f, 0x306a, - 0x9d60, 0x1571, - 0x9d61, 0x1601, - 0x9d67, 0x2ef1, - 0x9d68, 0x31bb, - 0x9d69, 0x31b2, - 0x9d6a, 0x1603, - 0x9d6b, 0x31ae, - 0x9d6c, 0x1604, - 0x9d6d, 0x3bac, - 0x9d6e, 0x433b, - 0x9d6f, 0x31b7, - 0x9d70, 0x31b1, - 0x9d71, 0x31a7, - 0x9d72, 0x1602, - 0x9d73, 0x31b4, - 0x9d74, 0x31af, - 0x9d77, 0x31a2, - 0x9d78, 0x31a9, - 0x9d79, 0x31b8, - 0x9d7b, 0x31b5, - 0x9d7c, 0x3efe, - 0x9d7d, 0x31ad, - 0x9d7e, 0x3925, - 0x9d7f, 0x31b9, - 0x9d80, 0x31a8, - 0x9d81, 0x31a3, - 0x9d82, 0x31b6, - 0x9d83, 0x3926, - 0x9d84, 0x31a5, - 0x9d85, 0x31b3, - 0x9d86, 0x31aa, - 0x9d87, 0x31ba, - 0x9d88, 0x31a6, - 0x9d89, 0x1600, - 0x9d8a, 0x31a4, - 0x9d8b, 0x31ab, - 0x9d90, 0x32a4, - 0x9d92, 0x32a2, - 0x9d93, 0x43f3, - 0x9d94, 0x32a7, - 0x9d96, 0x32b3, - 0x9d97, 0x32aa, - 0x9d98, 0x32a3, - 0x9d99, 0x329f, - 0x9d9a, 0x32ac, - 0x9d9b, 0x32a5, - 0x9d9c, 0x32a8, - 0x9d9d, 0x32a1, - 0x9d9e, 0x32af, - 0x9d9f, 0x329e, - 0x9da0, 0x32a6, - 0x9da1, 0x32ab, - 0x9da2, 0x32ad, - 0x9da3, 0x32b0, - 0x9da4, 0x32a0, - 0x9da5, 0x3c4b, - 0x9da6, 0x32b4, - 0x9da8, 0x32ae, - 0x9da9, 0x32b2, - 0x9daa, 0x32a9, - 0x9dab, 0x3f30, - 0x9dac, 0x3362, - 0x9dad, 0x3365, - 0x9daf, 0x16b1, - 0x9db1, 0x3364, - 0x9db2, 0x3369, - 0x9db3, 0x3367, - 0x9db4, 0x16b2, - 0x9db5, 0x335e, - 0x9db6, 0x3354, - 0x9db7, 0x3353, - 0x9db8, 0x16b4, - 0x9db9, 0x3360, - 0x9dbb, 0x335d, - 0x9dbc, 0x3355, - 0x9dbd, 0x47d0, - 0x9dbe, 0x335a, - 0x9dbf, 0x32b1, - 0x9dc0, 0x43f2, - 0x9dc1, 0x3356, - 0x9dc2, 0x16b3, - 0x9dc3, 0x335c, - 0x9dc4, 0x3929, - 0x9dc5, 0x335b, - 0x9dc7, 0x3357, - 0x9dc8, 0x3363, - 0x9dc9, 0x4579, - 0x9dca, 0x3358, - 0x9dcb, 0x33f9, - 0x9dcc, 0x3366, - 0x9dcd, 0x3368, - 0x9dce, 0x335f, - 0x9dcf, 0x3359, - 0x9dd0, 0x33fa, - 0x9dd1, 0x33fc, - 0x9dd2, 0x33f6, - 0x9dd3, 0x16f0, - 0x9dd4, 0x391e, - 0x9dd5, 0x3403, - 0x9dd6, 0x3401, - 0x9dd7, 0x16f1, - 0x9dd8, 0x3400, - 0x9dd9, 0x33ff, - 0x9dda, 0x33f8, - 0x9ddb, 0x33f5, - 0x9ddc, 0x33fb, - 0x9ddd, 0x3404, - 0x9dde, 0x33f7, - 0x9ddf, 0x33fd, - 0x9de1, 0x3466, - 0x9de2, 0x346b, - 0x9de3, 0x3461, - 0x9de4, 0x3464, - 0x9de5, 0x171c, - 0x9de6, 0x3468, - 0x9de8, 0x346f, - 0x9de9, 0x33fe, - 0x9deb, 0x3462, - 0x9dec, 0x346c, - 0x9ded, 0x3470, - 0x9dee, 0x3467, - 0x9def, 0x3460, - 0x9df0, 0x346a, - 0x9df2, 0x3469, - 0x9df3, 0x346e, - 0x9df4, 0x346d, - 0x9df5, 0x3402, - 0x9df6, 0x3465, - 0x9df7, 0x345f, - 0x9df8, 0x3463, - 0x9df9, 0x173b, - 0x9dfb, 0x345e, - 0x9dfc, 0x47d1, - 0x9dfd, 0x34c1, - 0x9dfe, 0x34b8, - 0x9dff, 0x34c0, - 0x9e00, 0x34bd, - 0x9e02, 0x34b7, - 0x9e03, 0x34ba, - 0x9e04, 0x34c2, - 0x9e05, 0x34bc, - 0x9e06, 0x34bb, - 0x9e07, 0x34b9, - 0x9e09, 0x34bf, - 0x9e0a, 0x457e, - 0x9e0b, 0x34f7, - 0x9e0c, 0x457a, - 0x9e0d, 0x34f8, - 0x9e0e, 0x3928, - 0x9e0f, 0x34fa, - 0x9e10, 0x34f9, - 0x9e11, 0x34fc, - 0x9e12, 0x34fb, - 0x9e13, 0x3517, - 0x9e14, 0x3516, - 0x9e15, 0x3530, - 0x9e17, 0x3531, - 0x9e18, 0x3c44, - 0x9e19, 0x353d, - 0x9e1a, 0x1765, - 0x9e1b, 0x1769, - 0x9e1c, 0x3f84, - 0x9e1d, 0x3546, - 0x9e1e, 0x176a, - 0x9e1f, 0x4513, - 0x9e75, 0x0be3, - 0x9e79, 0x1661, - 0x9e7a, 0x336a, - 0x9e7b, 0x43f8, - 0x9e7c, 0x173d, - 0x9e7f, 0x0be4, - 0x9e80, 0x2611, - 0x9e81, 0x3f0f, - 0x9e82, 0x0f7a, - 0x9e83, 0x2afc, - 0x9e84, 0x3f76, - 0x9e85, 0x3ef2, - 0x9e86, 0x2d31, - 0x9e88, 0x2d30, - 0x9e89, 0x2f02, - 0x9e8a, 0x2f01, - 0x9e8b, 0x14c1, - 0x9e8c, 0x306e, - 0x9e8d, 0x2f03, - 0x9e8e, 0x306d, - 0x9e90, 0x3931, - 0x9e91, 0x31bd, - 0x9e92, 0x1605, - 0x9e93, 0x1607, - 0x9e94, 0x31bc, - 0x9e95, 0x3932, - 0x9e96, 0x3fbc, - 0x9e97, 0x1606, - 0x9e98, 0x3f27, - 0x9e99, 0x32b6, - 0x9e9a, 0x32b8, - 0x9e9b, 0x32b7, - 0x9e9c, 0x336b, - 0x9e9d, 0x16b5, - 0x9e9e, 0x3933, - 0x9e9f, 0x171d, - 0x9ea0, 0x34c3, - 0x9ea1, 0x34fd, - 0x9ea2, 0x3934, - 0x9ea4, 0x354a, - 0x9ea5, 0x0be5, - 0x9ea6, 0x4944, - 0x9ea7, 0x287c, - 0x9ea8, 0x3f75, - 0x9ea9, 0x1285, - 0x9eaa, 0x3936, - 0x9eab, 0x3e92, - 0x9eac, 0x43f4, - 0x9ead, 0x2d34, - 0x9eae, 0x2d33, - 0x9eaf, 0x3937, - 0x9eb0, 0x2f04, - 0x9eb1, 0x47d4, - 0x9eb4, 0x1608, - 0x9eb5, 0x1662, - 0x9eb6, 0x3405, - 0x9eb7, 0x3542, - 0x9ebb, 0x0be6, - 0x9ebc, 0x10ff, - 0x9ebd, 0x47d5, - 0x9ebe, 0x1286, - 0x9ebf, 0x3d78, - 0x9ec0, 0x31be, - 0x9ec1, 0x3939, - 0x9ec2, 0x3471, - 0x9ec3, 0x0dbb, - 0x9ec4, 0x4514, - 0x9ec6, 0x47d6, - 0x9ec7, 0x4577, - 0x9ec8, 0x2f05, - 0x9ecc, 0x1751, - 0x9ecd, 0x0dbc, - 0x9ece, 0x1287, - 0x9ecf, 0x14c2, - 0x9ed0, 0x3472, - 0x9ed1, 0x0dbd, - 0x9ed3, 0x2afd, - 0x9ed4, 0x13b1, - 0x9ed5, 0x2d35, - 0x9ed8, 0x13b0, - 0x9eda, 0x2f06, - 0x9edb, 0x14c6, - 0x9edc, 0x14c4, - 0x9ede, 0x14c3, - 0x9edf, 0x306f, - 0x9ee0, 0x1572, - 0x9ee2, 0x47d8, - 0x9ee4, 0x32ba, - 0x9ee5, 0x32b9, - 0x9ee6, 0x32bc, - 0x9ee7, 0x32bb, - 0x9ee8, 0x1663, - 0x9eeb, 0x336c, - 0x9eed, 0x336e, - 0x9eee, 0x336d, - 0x9eef, 0x16b6, - 0x9ef0, 0x3406, - 0x9ef1, 0x47d9, - 0x9ef2, 0x3473, - 0x9ef4, 0x171e, - 0x9ef5, 0x34fe, - 0x9ef6, 0x3518, - 0x9ef7, 0x1762, - 0x9ef8, 0x47da, - 0x9ef9, 0x2360, - 0x9efa, 0x2d37, - 0x9efb, 0x2f07, - 0x9efc, 0x31bf, - 0x9efd, 0x2612, - 0x9efe, 0x47ce, - 0x9eff, 0x2f08, - 0x9f00, 0x3071, - 0x9f01, 0x3070, - 0x9f02, 0x3940, - 0x9f06, 0x3475, - 0x9f07, 0x173f, - 0x9f08, 0x3941, - 0x9f09, 0x34ff, - 0x9f0a, 0x3519, - 0x9f0e, 0x0f7b, - 0x9f0f, 0x2afe, - 0x9f12, 0x2d38, - 0x9f13, 0x0f7c, - 0x9f15, 0x1573, - 0x9f16, 0x3072, - 0x9f17, 0x3945, - 0x9f18, 0x3370, - 0x9f19, 0x16b7, - 0x9f1a, 0x3371, - 0x9f1b, 0x336f, - 0x9f1c, 0x3476, - 0x9f1e, 0x34c4, - 0x9f20, 0x0f7d, - 0x9f22, 0x2f0b, - 0x9f23, 0x2f0a, - 0x9f24, 0x2f09, - 0x9f25, 0x3073, - 0x9f26, 0x3f90, - 0x9f27, 0x4620, - 0x9f28, 0x3077, - 0x9f29, 0x3076, - 0x9f2a, 0x3075, - 0x9f2b, 0x3074, - 0x9f2c, 0x1574, - 0x9f2d, 0x31c0, - 0x9f2e, 0x32be, - 0x9f2f, 0x1664, - 0x9f30, 0x32bd, - 0x9f31, 0x3372, - 0x9f32, 0x3409, - 0x9f33, 0x3408, - 0x9f34, 0x16f2, - 0x9f35, 0x3407, - 0x9f36, 0x3479, - 0x9f37, 0x3478, - 0x9f38, 0x3477, - 0x9f39, 0x3947, - 0x9f3b, 0x1100, - 0x9f3d, 0x2d39, - 0x9f3e, 0x14c7, - 0x9f40, 0x31c1, - 0x9f42, 0x340a, - 0x9f43, 0x347a, - 0x9f44, 0x47db, - 0x9f45, 0x394a, - 0x9f46, 0x34c5, - 0x9f47, 0x3500, - 0x9f48, 0x3532, - 0x9f49, 0x354c, - 0x9f4a, 0x1101, - 0x9f4b, 0x14c8, - 0x9f4c, 0x3078, - 0x9f4d, 0x31c3, - 0x9f4e, 0x3373, - 0x9f4f, 0x347b, - 0x9f50, 0x4943, - 0x9f52, 0x1289, - 0x9f53, 0x3f80, - 0x9f54, 0x2f0c, - 0x9f55, 0x3079, - 0x9f56, 0x31c4, - 0x9f59, 0x32c3, - 0x9f5a, 0x3f23, - 0x9f5b, 0x32bf, - 0x9f5c, 0x16b8, - 0x9f5d, 0x32c2, - 0x9f5e, 0x32c1, - 0x9f5f, 0x1665, - 0x9f60, 0x32c0, - 0x9f61, 0x1667, - 0x9f62, 0x394f, - 0x9f63, 0x1666, - 0x9f64, 0x3375, - 0x9f65, 0x3374, - 0x9f66, 0x16b9, - 0x9f69, 0x3950, - 0x9f6a, 0x16f4, - 0x9f6b, 0x340b, - 0x9f6c, 0x16f3, - 0x9f6e, 0x347e, - 0x9f70, 0x347d, - 0x9f71, 0x347c, - 0x9f72, 0x1741, - 0x9f74, 0x34c6, - 0x9f77, 0x1740, - 0x9f78, 0x3501, - 0x9f79, 0x3504, - 0x9f7a, 0x3503, - 0x9f7b, 0x3502, - 0x9f7e, 0x354b, - 0x9f7f, 0x4680, - 0x9f8d, 0x13b2, - 0x9f8e, 0x3952, - 0x9f90, 0x157c, - 0x9f91, 0x32c4, - 0x9f92, 0x3376, - 0x9f94, 0x16f5, - 0x9f95, 0x340c, - 0x9f98, 0x354d, - 0x9f99, 0x4587, - 0x9f9c, 0x13b3, - 0x9f9f, 0x4646, - 0x9fa0, 0x2f0d, - 0x9fa2, 0x340d, - 0x9fa4, 0x351a, - 0x9fa5, 0x3f70, - 0xfa0c, 0x0274, - 0xfa0d, 0x2381, - 0xfe30, 0x006d, - 0xfe31, 0x007a, - 0xfe33, 0x35af, - 0xfe34, 0x35b1, - 0xfe35, 0x0082, - 0xfe37, 0x0086, - 0xfe39, 0x008a, - 0xfe3b, 0x008e, - 0xfe3d, 0x0092, - 0xfe3f, 0x0096, - 0xfe41, 0x009a, - 0xfe43, 0x009e, - 0xfe49, 0x00c7, - 0xfe4b, 0x00cb, - 0xfe4d, 0x00c9, - 0xfe4f, 0x35b2, - 0xfe50, 0x0070, - 0xfe52, 0x0072, - 0xfe54, 0x0074, - 0xfe59, 0x00a0, - 0xfe5f, 0x00cd, - 0xfe62, 0x00df, - 0xfe69, 0x010c, - 0xff01, 0x006c, - 0xff02, 0x36e4, - 0xff03, 0x00ae, - 0xff04, 0x0103, - 0xff05, 0x0108, - 0xff06, 0x00af, - 0xff07, 0x36e3, - 0xff08, 0x0080, - 0xff0a, 0x00b0, - 0xff0b, 0x00d0, - 0xff0c, 0x0064, - 0xff0d, 0x00d1, - 0xff0e, 0x0067, - 0xff0f, 0x0101, - 0xff10, 0x014d, - 0xff1a, 0x006a, - 0xff1b, 0x0069, - 0xff1c, 0x00d6, - 0xff1d, 0x00d8, - 0xff1e, 0x00d7, - 0xff1f, 0x006b, - 0xff20, 0x0109, - 0xff21, 0x016d, - 0xff3b, 0x35be, - 0xff3c, 0x0102, - 0xff3d, 0x35bf, - 0xff3e, 0x35b4, - 0xff3f, 0x00c5, - 0xff41, 0x0187, - 0xff5b, 0x0084, - 0xff5c, 0x0078, - 0xff5d, 0x0085, - 0xff64, 0x0071, - 0xffe2, 0x36e1, - 0xffe4, 0x36e2, - 0x2013, 0x0078, - 0x2014, 0x007a, - 0x2025, 0x006d, - 0x300a, 0x0092, - 0x3008, 0x0096, - 0x300c, 0x009a, - 0x300e, 0x009e, - 0x3010, 0x008e, - 0x3014, 0x008a, - 0xfe4f, 0x35b1, - 0xff08, 0x0082, - 0xff5b, 0x0086, - 0xff5d, 0x0087, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 cns13UniCNSUCS2VEnc16 = { - 1, - { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - cns13UniCNSUCS2VMap2, 15468 -}; - -static Gushort cns13AdobeCNS13VMap2[152] = { - 0x0000, 0x0000, - 0x0000, 0x0000, - 0x0100, 0x0100, - 0x0200, 0x0200, - 0x0300, 0x0300, - 0x0400, 0x0400, - 0x0500, 0x0500, - 0x0600, 0x0600, - 0x0700, 0x0700, - 0x0800, 0x0800, - 0x0900, 0x0900, - 0x0a00, 0x0a00, - 0x0b00, 0x0b00, - 0x0c00, 0x0c00, - 0x0d00, 0x0d00, - 0x0e00, 0x0e00, - 0x0f00, 0x0f00, - 0x1000, 0x1000, - 0x1100, 0x1100, - 0x1200, 0x1200, - 0x1300, 0x1300, - 0x1400, 0x1400, - 0x1500, 0x1500, - 0x1600, 0x1600, - 0x1700, 0x1700, - 0x1800, 0x1800, - 0x1900, 0x1900, - 0x1a00, 0x1a00, - 0x1b00, 0x1b00, - 0x1c00, 0x1c00, - 0x1d00, 0x1d00, - 0x1e00, 0x1e00, - 0x1f00, 0x1f00, - 0x2000, 0x2000, - 0x2100, 0x2100, - 0x2200, 0x2200, - 0x2300, 0x2300, - 0x2400, 0x2400, - 0x2500, 0x2500, - 0x2600, 0x2600, - 0x2700, 0x2700, - 0x2800, 0x2800, - 0x2900, 0x2900, - 0x2a00, 0x2a00, - 0x2b00, 0x2b00, - 0x2c00, 0x2c00, - 0x2d00, 0x2d00, - 0x2e00, 0x2e00, - 0x2f00, 0x2f00, - 0x3000, 0x3000, - 0x3100, 0x3100, - 0x3200, 0x3200, - 0x3300, 0x3300, - 0x3400, 0x3400, - 0x3500, 0x3500, - 0x3600, 0x3600, - 0x3700, 0x3700, - 0x3800, 0x3800, - 0x3900, 0x3900, - 0x3a00, 0x3a00, - 0x3b00, 0x3b00, - 0x3c00, 0x3c00, - 0x3d00, 0x3d00, - 0x3e00, 0x3e00, - 0x3f00, 0x3f00, - 0x4000, 0x4000, - 0x4100, 0x4100, - 0x4200, 0x4200, - 0x4300, 0x4300, - 0x4400, 0x4400, - 0x4500, 0x4500, - 0x4600, 0x4600, - 0x4700, 0x4700, - 0x4800, 0x4800, - 0x4900, 0x4900, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 cns13AdobeCNS13VEnc16 = { - 1, - { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - cns13AdobeCNS13VMap2, 76 -}; - -static struct { - char *name; - GfxFontEncoding16 *enc; -} gfxCNS13Tab[] = { - { "Adobe-CNS1-0", &cns13AdobeCNS10Enc16 }, - { "Adobe-CNS1-1", &cns13AdobeCNS11Enc16 }, - { "Adobe-CNS1-2", &cns13AdobeCNS12Enc16 }, - { "Adobe-CNS1-3", &cns13AdobeCNS13Enc16 }, - { "B5-H", &cns13B5HEnc16 }, - { "B5-V", &cns13B5VEnc16 }, - { "B5pc-H", &cns13B5pcHEnc16 }, - { "B5pc-V", &cns13B5pcVEnc16 }, - { "CNS1-H", &cns13CNS1HEnc16 }, - { "CNS1-V", &cns13CNS1VEnc16 }, - { "CNS2-H", &cns13CNS2HEnc16 }, - { "CNS2-V", &cns13CNS2VEnc16 }, - { "ETHK-B5-H", &cns13ETHKB5HEnc16 }, - { "ETHK-B5-V", &cns13ETHKB5VEnc16 }, - { "ETen-B5-H", &cns13ETenB5HEnc16 }, - { "ETen-B5-V", &cns13ETenB5VEnc16 }, - { "ETenms-B5-H", &cns13ETenmsB5HEnc16 }, - { "ETenms-B5-V", &cns13ETenmsB5VEnc16 }, - { "HKdla-B5-H", &cns13HKdlaB5HEnc16 }, - { "HKdla-B5-V", &cns13HKdlaB5VEnc16 }, - { "HKdlb-B5-H", &cns13HKdlbB5HEnc16 }, - { "HKdlb-B5-V", &cns13HKdlbB5VEnc16 }, - { "HKgccs-B5-H", &cns13HKgccsB5HEnc16 }, - { "HKgccs-B5-V", &cns13HKgccsB5VEnc16 }, - { "HKm314-B5-H", &cns13HKm314B5HEnc16 }, - { "HKm314-B5-V", &cns13HKm314B5VEnc16 }, - { "HKm471-B5-H", &cns13HKm471B5HEnc16 }, - { "HKm471-B5-V", &cns13HKm471B5VEnc16 }, - { "HKscs-B5-H", &cns13HKscsB5HEnc16 }, - { "HKscs-B5-V", &cns13HKscsB5VEnc16 }, - { "UniCNS-UCS2-H", &cns13UniCNSUCS2HEnc16 }, - { "UniCNS-UCS2-V", &cns13UniCNSUCS2VEnc16 }, - { "Identity-H", &cns13AdobeCNS13Enc16 }, - { "Identity-V", &cns13AdobeCNS13VEnc16 }, - { NULL, NULL } -}; - -#endif diff --git a/pdf/xpdf/Catalog.cc b/pdf/xpdf/Catalog.cc index 815cca3a..1212e2eb 100644 --- a/pdf/xpdf/Catalog.cc +++ b/pdf/xpdf/Catalog.cc @@ -2,7 +2,7 @@ // // Catalog.cc // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -10,9 +10,11 @@ #pragma implementation #endif +#include #include #include "gmem.h" #include "Object.h" +#include "XRef.h" #include "Array.h" #include "Dict.h" #include "Page.h" @@ -24,24 +26,27 @@ // Catalog //------------------------------------------------------------------------ -Catalog::Catalog(Object *catDict) { - Object pagesDict; +Catalog::Catalog(XRef *xrefA, GBool printCommands) { + Object catDict, pagesDict; Object obj, obj2; int numPages0; int i; ok = gTrue; + xref = xrefA; pages = NULL; pageRefs = NULL; numPages = pagesSize = 0; + baseURI = NULL; - if (!catDict->isDict()) { - error(-1, "Catalog object is wrong type (%s)", catDict->getTypeName()); + xref->getCatalog(&catDict); + if (!catDict.isDict()) { + error(-1, "Catalog object is wrong type (%s)", catDict.getTypeName()); goto err1; } // read page tree - catDict->dictLookup("Pages", &pagesDict); + catDict.dictLookup("Pages", &pagesDict); // This should really be isDict("Pages"), but I've seen at least one // PDF file where the /Type entry is missing. if (!pagesDict.isDict()) { @@ -64,25 +69,24 @@ Catalog::Catalog(Object *catDict) { pageRefs[i].num = -1; pageRefs[i].gen = -1; } - numPages = readPageTree(pagesDict.getDict(), NULL, 0); + numPages = readPageTree(pagesDict.getDict(), NULL, 0, printCommands); if (numPages != numPages0) { error(-1, "Page count in top-level pages object is incorrect"); } pagesDict.free(); // read named destination dictionary - catDict->dictLookup("Dests", &dests); + catDict.dictLookup("Dests", &dests); // read root of named destination tree - if (catDict->dictLookup("Names", &obj)->isDict()) + if (catDict.dictLookup("Names", &obj)->isDict()) obj.dictLookup("Dests", &nameTree); else nameTree.initNull(); obj.free(); // read base URI - baseURI = NULL; - if (catDict->dictLookup("URI", &obj)->isDict()) { + if (catDict.dictLookup("URI", &obj)->isDict()) { if (obj.dictLookup("Base", &obj2)->isString()) { baseURI = obj2.getString()->copy(); } @@ -90,6 +94,13 @@ Catalog::Catalog(Object *catDict) { } obj.free(); + // get the metadata stream + catDict.dictLookup("Metadata", &metadata); + + // get the structure tree root + catDict.dictLookup("StructTreeRoot", &structTreeRoot); + + catDict.free(); return; err3: @@ -97,6 +108,7 @@ Catalog::Catalog(Object *catDict) { err2: pagesDict.free(); err1: + catDict.free(); dests.initNull(); nameTree.initNull(); ok = gFalse; @@ -119,9 +131,36 @@ Catalog::~Catalog() { if (baseURI) { delete baseURI; } + metadata.free(); + structTreeRoot.free(); +} + +GString *Catalog::readMetadata() { + GString *s; + Dict *dict; + Object obj; + int c; + + if (!metadata.isStream()) { + return NULL; + } + dict = metadata.streamGetDict(); + if (!dict->lookup("Subtype", &obj)->isName("XML")) { + error(-1, "Unknown Metadata type: '%s'", + obj.isName() ? obj.getName() : "???"); + } + obj.free(); + s = new GString(); + metadata.streamReset(); + while ((c = metadata.streamGetChar()) != EOF) { + s->append(c); + } + metadata.streamClose(); + return s; } -int Catalog::readPageTree(Dict *pagesDict, PageAttrs *attrs, int start) { +int Catalog::readPageTree(Dict *pagesDict, PageAttrs *attrs, int start, + GBool printCommands) { Object kids; Object kid; Object kidRef; @@ -140,7 +179,7 @@ int Catalog::readPageTree(Dict *pagesDict, PageAttrs *attrs, int start) { kids.arrayGet(i, &kid); if (kid.isDict("Page")) { attrs2 = new PageAttrs(attrs1, kid.getDict()); - page = new Page(start+1, kid.getDict(), attrs2); + page = new Page(xref, start+1, kid.getDict(), attrs2, printCommands); if (!page->isOk()) { ++start; goto err3; @@ -166,7 +205,8 @@ int Catalog::readPageTree(Dict *pagesDict, PageAttrs *attrs, int start) { // This should really be isDict("Pages"), but I've seen at least one // PDF file where the /Type entry is missing. } else if (kid.isDict()) { - if ((start = readPageTree(kid.getDict(), attrs1, start)) < 0) + if ((start = readPageTree(kid.getDict(), attrs1, start, printCommands)) + < 0) goto err2; } else { error(-1, "Kid object (page %d) is wrong type (%s)", @@ -225,10 +265,10 @@ LinkDest *Catalog::findDest(GString *name) { // construct LinkDest dest = NULL; if (obj1.isArray()) { - dest = new LinkDest(obj1.getArray(), gTrue); + dest = new LinkDest(obj1.getArray()); } else if (obj1.isDict()) { if (obj1.dictLookup("D", &obj2)->isArray()) - dest = new LinkDest(obj2.getArray(), gTrue); + dest = new LinkDest(obj2.getArray()); else error(-1, "Bad named destination value"); obj2.free(); diff --git a/pdf/xpdf/Catalog.h b/pdf/xpdf/Catalog.h index b0f31432..afad803f 100644 --- a/pdf/xpdf/Catalog.h +++ b/pdf/xpdf/Catalog.h @@ -2,7 +2,7 @@ // // Catalog.h // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -13,6 +13,7 @@ #pragma interface #endif +class XRef; class Object; class Page; class PageAttrs; @@ -27,7 +28,7 @@ class Catalog { public: // Constructor. - Catalog(Object *catDict); + Catalog(XRef *xrefA, GBool printCommands = gFalse); // Destructor. ~Catalog(); @@ -47,6 +48,13 @@ public: // Return base URI, or NULL if none. GString *getBaseURI() { return baseURI; } + // Return the contents of the metadata stream, or NULL if there is + // no metadata. + GString *readMetadata(); + + // Return the structure tree root object. + Object *getStructTreeRoot() { return &structTreeRoot; } + // Find a page, given its object ID. Returns page number, or 0 if // not found. int findPage(int num, int gen); @@ -57,6 +65,7 @@ public: private: + XRef *xref; // the xref table for this PDF file Page **pages; // array of pages Ref *pageRefs; // object ID for each page int numPages; // number of pages @@ -64,9 +73,12 @@ private: Object dests; // named destination dictionary Object nameTree; // name tree GString *baseURI; // base URI for URI-type links + Object metadata; // metadata stream + Object structTreeRoot; // structure tree root dictionary GBool ok; // true if catalog is valid - int readPageTree(Dict *pages, PageAttrs *attrs, int start); + int readPageTree(Dict *pages, PageAttrs *attrs, int start, + GBool printCommands); Object *findDestInTree(Object *tree, GString *name, Object *obj); }; diff --git a/pdf/xpdf/ChangeLog b/pdf/xpdf/ChangeLog index e202bc7a..f0f6fe11 100644 --- a/pdf/xpdf/ChangeLog +++ b/pdf/xpdf/ChangeLog @@ -1,3 +1,21 @@ +2002-08-12 Martin Kretzschmar + + * GOutputDev.cc: make it compile (without Type 3 support for now) + + * bonobo-application-x-pdf.cc: Derek has removed the global xref + variable. Remove the ``Ugly global xref fix'' + +2002-08-09 Martin Kretzschmar + + * BonoboStream.h: ditto. + + * BonoboStream.cc: sync with FileStream. + + Merge in Xpdf 1.01 files + + * GOutputDev.cc (drawImage), (drawImageMask): use gdk_image_get + as XGetSubImage + 2002-08-05 Martin Kretzschmar * GOutputDev.h: ditto. diff --git a/pdf/xpdf/CharCodeToUnicode.cc b/pdf/xpdf/CharCodeToUnicode.cc new file mode 100644 index 00000000..912981e9 --- /dev/null +++ b/pdf/xpdf/CharCodeToUnicode.cc @@ -0,0 +1,390 @@ +//======================================================================== +// +// CharCodeToUnicode.cc +// +// Copyright 2001-2002 Glyph & Cog, LLC +// +//======================================================================== + +#ifdef __GNUC__ +#pragma implementation +#endif + +#include +#include +#include +#include "gmem.h" +#include "gfile.h" +#include "GString.h" +#include "Error.h" +#include "GlobalParams.h" +#include "PSTokenizer.h" +#include "CharCodeToUnicode.h" + +//------------------------------------------------------------------------ + +#define maxUnicodeString 8 + +struct CharCodeToUnicodeString { + CharCode c; + Unicode u[maxUnicodeString]; + int len; +}; + +//------------------------------------------------------------------------ + +static int getCharFromString(void *data) { + char *p; + int c; + + p = *(char **)data; + if (*p) { + c = *p++; + *(char **)data = p; + } else { + c = EOF; + } + return c; +} + +static int getCharFromFile(void *data) { + return fgetc((FILE *)data); +} + +//------------------------------------------------------------------------ + +CharCodeToUnicode *CharCodeToUnicode::parseCIDToUnicode(GString *collectionA) { + FILE *f; + Unicode *mapA; + CharCode size, mapLenA; + char buf[64]; + Unicode u; + CharCodeToUnicode *ctu; + + if (!(f = globalParams->getCIDToUnicodeFile(collectionA))) { + error(-1, "Couldn't find cidToUnicode file for the '%s' collection", + collectionA->getCString()); + return NULL; + } + + size = 32768; + mapA = (Unicode *)gmalloc(size * sizeof(Unicode)); + mapLenA = 0; + + while (getLine(buf, sizeof(buf), f)) { + if (mapLenA == size) { + size *= 2; + mapA = (Unicode *)grealloc(mapA, size * sizeof(Unicode)); + } + if (sscanf(buf, "%x", &u) == 1) { + mapA[mapLenA] = u; + } else { + error(-1, "Bad line (%d) in cidToUnicode file for the '%s' collection", + (int)(mapLenA + 1), collectionA->getCString()); + mapA[mapLenA] = 0; + } + ++mapLenA; + } + + ctu = new CharCodeToUnicode(collectionA->copy(), mapA, mapLenA, gTrue, + NULL, 0); + gfree(mapA); + return ctu; +} + +CharCodeToUnicode *CharCodeToUnicode::make8BitToUnicode(Unicode *toUnicode) { + return new CharCodeToUnicode(NULL, toUnicode, 256, gTrue, NULL, 0); +} + +CharCodeToUnicode *CharCodeToUnicode::parseCMap(GString *buf, int nBits) { + CharCodeToUnicode *ctu; + char *p; + + ctu = new CharCodeToUnicode(NULL); + p = buf->getCString(); + ctu->parseCMap1(&getCharFromString, &p, nBits); + return ctu; +} + +void CharCodeToUnicode::parseCMap1(int (*getCharFunc)(void *), void *data, + int nBits) { + PSTokenizer *pst; + char tok1[256], tok2[256], tok3[256]; + int nDigits, n1, n2, n3; + CharCode oldLen, i; + CharCode code1, code2; + Unicode u; + char uHex[5]; + int j; + GString *name; + FILE *f; + + nDigits = nBits / 4; + pst = new PSTokenizer(getCharFunc, data); + pst->getToken(tok1, sizeof(tok1), &n1); + while (pst->getToken(tok2, sizeof(tok2), &n2)) { + if (!strcmp(tok2, "usecmap")) { + if (tok1[0] == '/') { + name = new GString(tok1 + 1); + if ((f = globalParams->findToUnicodeFile(name))) { + parseCMap1(&getCharFromFile, f, nBits); + fclose(f); + } else { + error(-1, "Couldn't find ToUnicode CMap file for '%s'", + name->getCString()); + } + delete name; + } + pst->getToken(tok1, sizeof(tok1), &n1); + } else if (!strcmp(tok2, "beginbfchar")) { + while (pst->getToken(tok1, sizeof(tok1), &n1)) { + if (!strcmp(tok1, "endbfchar")) { + break; + } + if (!pst->getToken(tok2, sizeof(tok2), &n2) || + !strcmp(tok2, "endbfchar")) { + error(-1, "Illegal entry in bfchar block in ToUnicode CMap"); + break; + } + if (!(n1 == 2 + nDigits && tok1[0] == '<' && tok1[n1 - 1] == '>' && + tok2[0] == '<' && tok2[n2 - 1] == '>')) { + error(-1, "Illegal entry in bfchar block in ToUnicode CMap"); + continue; + } + tok1[n1 - 1] = tok2[n2 - 1] = '\0'; + if (sscanf(tok1 + 1, "%x", &code1) != 1) { + error(-1, "Illegal entry in bfchar block in ToUnicode CMap"); + continue; + } + if (code1 >= mapLen) { + oldLen = mapLen; + mapLen = (code1 + 256) & ~255; + map = (Unicode *)grealloc(map, mapLen * sizeof(Unicode)); + for (i = oldLen; i < mapLen; ++i) { + map[i] = 0; + } + } + if (n2 == 6) { + if (sscanf(tok2 + 1, "%x", &u) != 1) { + error(-1, "Illegal entry in bfchar block in ToUnicode CMap"); + continue; + } + map[code1] = u; + } else { + map[code1] = 0; + if (sMapLen == sMapSize) { + sMapSize += 8; + sMap = (CharCodeToUnicodeString *) + grealloc(sMap, sMapSize * sizeof(CharCodeToUnicodeString)); + } + sMap[sMapLen].c = code1; + sMap[sMapLen].len = (n2 - 2) / 4; + for (j = 0; j < sMap[sMapLen].len && j < maxUnicodeString; ++j) { + strncpy(uHex, tok2 + 1 + j*4, 4); + uHex[4] = '\0'; + if (sscanf(uHex, "%x", &sMap[sMapLen].u[j]) != 1) { + error(-1, "Illegal entry in bfchar block in ToUnicode CMap"); + } + } + ++sMapLen; + } + } + pst->getToken(tok1, sizeof(tok1), &n1); + } else if (!strcmp(tok2, "beginbfrange")) { + while (pst->getToken(tok1, sizeof(tok1), &n1)) { + if (!strcmp(tok1, "endbfrange")) { + break; + } + if (!pst->getToken(tok2, sizeof(tok2), &n2) || + !strcmp(tok2, "endbfrange") || + !pst->getToken(tok3, sizeof(tok3), &n3) || + !strcmp(tok3, "endbfrange")) { + error(-1, "Illegal entry in bfrange block in ToUnicode CMap"); + break; + } + if (!(n1 == 2 + nDigits && tok1[0] == '<' && tok1[n1 - 1] == '>' && + n2 == 2 + nDigits && tok2[0] == '<' && tok2[n2 - 1] == '>' && + tok3[0] == '<' && tok3[n3 - 1] == '>')) { + error(-1, "Illegal entry in bfrange block in ToUnicode CMap"); + continue; + } + tok1[n1 - 1] = tok2[n2 - 1] = tok3[n3 - 1] = '\0'; + if (sscanf(tok1 + 1, "%x", &code1) != 1 || + sscanf(tok2 + 1, "%x", &code2) != 1) { + error(-1, "Illegal entry in bfrange block in ToUnicode CMap"); + continue; + } + if (code2 >= mapLen) { + oldLen = mapLen; + mapLen = (code2 + 256) & ~255; + map = (Unicode *)grealloc(map, mapLen * sizeof(Unicode)); + for (i = oldLen; i < mapLen; ++i) { + map[i] = 0; + } + } + if (n3 == 6) { + if (sscanf(tok3 + 1, "%x", &u) != 1) { + error(-1, "Illegal entry in bfrange block in ToUnicode CMap"); + continue; + } + for (; code1 <= code2; ++code1) { + map[code1] = u++; + } + } else { + if (sMapLen + (int)(code2 - code1 + 1) > sMapSize) { + sMapSize = (sMapSize + (code2 - code1 + 1) + 7) & ~7; + sMap = (CharCodeToUnicodeString *) + grealloc(sMap, sMapSize * sizeof(CharCodeToUnicodeString)); + } + for (i = 0; code1 <= code2; ++code1, ++i) { + map[code1] = 0; + sMap[sMapLen].c = code1; + sMap[sMapLen].len = (n3 - 2) / 4; + for (j = 0; j < sMap[sMapLen].len && j < maxUnicodeString; ++j) { + strncpy(uHex, tok3 + 1 + j*4, 4); + uHex[4] = '\0'; + if (sscanf(uHex, "%x", &sMap[sMapLen].u[j]) != 1) { + error(-1, "Illegal entry in bfrange block in ToUnicode CMap"); + } + } + sMap[sMapLen].u[sMap[sMapLen].len - 1] += i; + ++sMapLen; + } + } + } + pst->getToken(tok1, sizeof(tok1), &n1); + } else { + strcpy(tok1, tok2); + } + } + delete pst; +} + +CharCodeToUnicode::CharCodeToUnicode(GString *collectionA) { + CharCode i; + + collection = collectionA; + mapLen = 256; + map = (Unicode *)gmalloc(mapLen * sizeof(Unicode)); + for (i = 0; i < mapLen; ++i) { + map[i] = 0; + } + sMap = NULL; + sMapLen = sMapSize = 0; + refCnt = 1; +} + +CharCodeToUnicode::CharCodeToUnicode(GString *collectionA, Unicode *mapA, + CharCode mapLenA, GBool copyMap, + CharCodeToUnicodeString *sMapA, + int sMapLenA) { + collection = collectionA; + mapLen = mapLenA; + if (copyMap) { + map = (Unicode *)gmalloc(mapLen * sizeof(Unicode)); + memcpy(map, mapA, mapLen * sizeof(Unicode)); + } else { + map = mapA; + } + sMap = sMapA; + sMapLen = sMapSize = sMapLenA; + refCnt = 1; +} + +CharCodeToUnicode::~CharCodeToUnicode() { + if (collection) { + delete collection; + } + gfree(map); + if (sMap) { + gfree(sMap); + } +} + +void CharCodeToUnicode::incRefCnt() { + ++refCnt; +} + +void CharCodeToUnicode::decRefCnt() { + if (--refCnt == 0) { + delete this; + } +} + +GBool CharCodeToUnicode::match(GString *collectionA) { + return collection && !collection->cmp(collectionA); +} + +int CharCodeToUnicode::mapToUnicode(CharCode c, Unicode *u, int size) { + int i, j; + + if (c >= mapLen) { + return 0; + } + if (map[c]) { + u[0] = map[c]; + return 1; + } + for (i = 0; i < sMapLen; ++i) { + if (sMap[i].c == c) { + for (j = 0; j < sMap[i].len && j < size; ++j) { + u[j] = sMap[i].u[j]; + } + return j; + } + } + return 0; +} + +//------------------------------------------------------------------------ + +CIDToUnicodeCache::CIDToUnicodeCache() { + int i; + + for (i = 0; i < cidToUnicodeCacheSize; ++i) { + cache[i] = NULL; + } +} + +CIDToUnicodeCache::~CIDToUnicodeCache() { + int i; + + for (i = 0; i < cidToUnicodeCacheSize; ++i) { + if (cache[i]) { + cache[i]->decRefCnt(); + } + } +} + +CharCodeToUnicode *CIDToUnicodeCache::getCIDToUnicode(GString *collection) { + CharCodeToUnicode *ctu; + int i, j; + + if (cache[0] && cache[0]->match(collection)) { + cache[0]->incRefCnt(); + return cache[0]; + } + for (i = 1; i < cidToUnicodeCacheSize; ++i) { + if (cache[i] && cache[i]->match(collection)) { + ctu = cache[i]; + for (j = i; j >= 1; --j) { + cache[j] = cache[j - 1]; + } + cache[0] = ctu; + ctu->incRefCnt(); + return ctu; + } + } + if ((ctu = CharCodeToUnicode::parseCIDToUnicode(collection))) { + if (cache[cidToUnicodeCacheSize - 1]) { + cache[cidToUnicodeCacheSize - 1]->decRefCnt(); + } + for (j = cidToUnicodeCacheSize - 1; j >= 1; --j) { + cache[j] = cache[j - 1]; + } + cache[0] = ctu; + ctu->incRefCnt(); + return ctu; + } + return NULL; +} diff --git a/pdf/xpdf/CharCodeToUnicode.h b/pdf/xpdf/CharCodeToUnicode.h new file mode 100644 index 00000000..06916c8f --- /dev/null +++ b/pdf/xpdf/CharCodeToUnicode.h @@ -0,0 +1,88 @@ +//======================================================================== +// +// CharCodeToUnicode.h +// +// Mapping from character codes to Unicode. +// +// Copyright 2001-2002 Glyph & Cog, LLC +// +//======================================================================== + +#ifndef CHARCODETOUNICODE_H +#define CHARCODETOUNICODE_H + +#ifdef __GNUC__ +#pragma interface +#endif + +#include "CharTypes.h" + +struct CharCodeToUnicodeString; + +//------------------------------------------------------------------------ + +class CharCodeToUnicode { +public: + + // Create the CID-to-Unicode mapping specified by . + // This reads a .cidToUnicode file from disk. Sets the initial + // reference count to 1. Returns NULL on failure. + static CharCodeToUnicode *parseCIDToUnicode(GString *collectionA); + + // Create the CharCode-to-Unicode mapping for an 8-bit font. + // is an array of 256 Unicode indexes. Sets the initial + // reference count to 1. + static CharCodeToUnicode *make8BitToUnicode(Unicode *toUnicode); + + // Parse a ToUnicode CMap for an 8- or 16-bit font. + static CharCodeToUnicode *parseCMap(GString *buf, int nBits); + + ~CharCodeToUnicode(); + + void incRefCnt(); + void decRefCnt(); + + // Return true if this mapping matches the specified . + GBool match(GString *collectionA); + + // Map a CharCode to Unicode. + int mapToUnicode(CharCode c, Unicode *u, int size); + +private: + + void parseCMap1(int (*getCharFunc)(void *), void *data, int nBits); + CharCodeToUnicode(GString *collectionA); + CharCodeToUnicode(GString *collectionA, Unicode *mapA, + CharCode mapLenA, GBool copyMap, + CharCodeToUnicodeString *sMapA, int sMapLenA); + + GString *collection; + Unicode *map; + CharCode mapLen; + CharCodeToUnicodeString *sMap; + int sMapLen, sMapSize; + int refCnt; +}; + +//------------------------------------------------------------------------ + +#define cidToUnicodeCacheSize 4 + +class CIDToUnicodeCache { +public: + + CIDToUnicodeCache(); + ~CIDToUnicodeCache(); + + // Get the CharCodeToUnicode object for . Increments + // its reference count; there will be one reference for the cache + // plus one for the caller of this function. Returns NULL on + // failure. + CharCodeToUnicode *getCIDToUnicode(GString *collection); + +private: + + CharCodeToUnicode *cache[cidToUnicodeCacheSize]; +}; + +#endif diff --git a/pdf/xpdf/CharTypes.h b/pdf/xpdf/CharTypes.h new file mode 100644 index 00000000..bae2f267 --- /dev/null +++ b/pdf/xpdf/CharTypes.h @@ -0,0 +1,24 @@ +//======================================================================== +// +// CharTypes.h +// +// Copyright 2001-2002 Glyph & Cog, LLC +// +//======================================================================== + +#ifndef CHARTYPES_H +#define CHARTYPES_H + +// Unicode character. +typedef unsigned int Unicode; + +// Character ID for CID character collections. +typedef unsigned int CID; + +// This is large enough to hold any of the following: +// - 8-bit char code +// - 16-bit CID +// - Unicode +typedef unsigned int CharCode; + +#endif diff --git a/pdf/xpdf/CompactFontInfo.h b/pdf/xpdf/CompactFontTables.h similarity index 99% rename from pdf/xpdf/CompactFontInfo.h rename to pdf/xpdf/CompactFontTables.h index c6426602..62d6f5a3 100644 --- a/pdf/xpdf/CompactFontInfo.h +++ b/pdf/xpdf/CompactFontTables.h @@ -1,8 +1,8 @@ //======================================================================== // -// CompactFontInfo.h +// CompactFontTables.h // -// Copyright 1999 Derek B. Noonburg +// Copyright 1999-2002 Glyph & Cog, LLC // //======================================================================== diff --git a/pdf/xpdf/Decrypt.cc b/pdf/xpdf/Decrypt.cc index ae9b7323..8de40911 100644 --- a/pdf/xpdf/Decrypt.cc +++ b/pdf/xpdf/Decrypt.cc @@ -2,7 +2,7 @@ // // Decrypt.cc // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -10,6 +10,7 @@ #pragma implementation #endif +#include #include "gmem.h" #include "Decrypt.h" @@ -28,42 +29,96 @@ static Guchar passwordPad[32] = { // Decrypt //------------------------------------------------------------------------ -Decrypt::Decrypt(Guchar *fileKey, int objNum, int objGen) { +Decrypt::Decrypt(Guchar *fileKey, int keyLength, int objNum, int objGen) { + int i; + // construct object key - objKey[0] = fileKey[0]; - objKey[1] = fileKey[1]; - objKey[2] = fileKey[2]; - objKey[3] = fileKey[3]; - objKey[4] = fileKey[4]; - objKey[5] = objNum & 0xff; - objKey[6] = (objNum >> 8) & 0xff; - objKey[7] = (objNum >> 16) & 0xff; - objKey[8] = objGen & 0xff; - objKey[9] = (objGen >> 8) & 0xff; - md5(objKey, 10, objKey); + for (i = 0; i < keyLength; ++i) { + objKey[i] = fileKey[i]; + } + objKey[keyLength] = objNum & 0xff; + objKey[keyLength + 1] = (objNum >> 8) & 0xff; + objKey[keyLength + 2] = (objNum >> 16) & 0xff; + objKey[keyLength + 3] = objGen & 0xff; + objKey[keyLength + 4] = (objGen >> 8) & 0xff; + md5(objKey, keyLength + 5, objKey); // set up for decryption x = y = 0; - rc4InitKey(objKey, 10, state); + if ((objKeyLength = keyLength + 5) > 16) { + objKeyLength = 16; + } + rc4InitKey(objKey, objKeyLength, state); } void Decrypt::reset() { x = y = 0; - rc4InitKey(objKey, 10, state); + rc4InitKey(objKey, objKeyLength, state); } Guchar Decrypt::decryptByte(Guchar c) { return rc4DecryptByte(state, &x, &y, c); } -GBool Decrypt::makeFileKey(GString *ownerKey, GString *userKey, +GBool Decrypt::makeFileKey(int encVersion, int encRevision, int keyLength, + GString *ownerKey, GString *userKey, int permissions, GString *fileID, - GString *userPassword, Guchar *fileKey) { - Guchar *buf; - Guchar userTest[32]; + GString *ownerPassword, GString *userPassword, + Guchar *fileKey, GBool *ownerPasswordOk) { + Guchar test[32]; + GString *userPassword2; Guchar fState[256]; Guchar fx, fy; int len, i; + + // try using the supplied owner password to generate the user password + if (ownerPassword) { + len = ownerPassword->getLength(); + if (len < 32) { + memcpy(test, ownerPassword->getCString(), len); + memcpy(test + len, passwordPad, 32 - len); + } else { + memcpy(test, ownerPassword->getCString(), 32); + } + } else { + memcpy(test, passwordPad, 32); + } + md5(test, 32, test); + if (encRevision == 3) { + for (i = 0; i < 50; ++i) { + md5(test, 16, test); + } + } + rc4InitKey(test, keyLength, fState); + fx = fy = 0; + for (i = 0; i < 32; ++i) { + test[i] = rc4DecryptByte(fState, &fx, &fy, ownerKey->getChar(i)); + } + userPassword2 = new GString((char *)test, 32); + if (makeFileKey2(encVersion, encRevision, keyLength, ownerKey, userKey, + permissions, fileID, userPassword2, fileKey)) { + *ownerPasswordOk = gTrue; + delete userPassword2; + return gTrue; + } + *ownerPasswordOk = gFalse; + delete userPassword2; + + // try using the supplied user password + return makeFileKey2(encVersion, encRevision, keyLength, ownerKey, userKey, + permissions, fileID, userPassword, fileKey); +} + +GBool Decrypt::makeFileKey2(int encVersion, int encRevision, int keyLength, + GString *ownerKey, GString *userKey, + int permissions, GString *fileID, + GString *userPassword, Guchar *fileKey) { + Guchar *buf; + Guchar test[32]; + Guchar fState[256]; + Guchar tmpKey[16]; + Guchar fx, fy; + int len, i, j; GBool ok; // generate file key @@ -86,16 +141,41 @@ GBool Decrypt::makeFileKey(GString *ownerKey, GString *userKey, buf[67] = (permissions >> 24) & 0xff; memcpy(buf + 68, fileID->getCString(), fileID->getLength()); md5(buf, 68 + fileID->getLength(), fileKey); + if (encRevision == 3) { + for (i = 0; i < 50; ++i) { + md5(fileKey, 16, fileKey); + } + } - // test user key - fx = fy = 0; - rc4InitKey(fileKey, 5, fState); - for (i = 0; i < 32; ++i) { - userTest[i] = rc4DecryptByte(fState, &fx, &fy, userKey->getChar(i)); + // test user password + if (encRevision == 2) { + rc4InitKey(fileKey, keyLength, fState); + fx = fy = 0; + for (i = 0; i < 32; ++i) { + test[i] = rc4DecryptByte(fState, &fx, &fy, userKey->getChar(i)); + } + ok = memcmp(test, passwordPad, 32) == 0; + } else if (encRevision == 3) { + memcpy(test, userKey->getCString(), 32); + for (i = 19; i >= 0; --i) { + for (j = 0; j < keyLength; ++j) { + tmpKey[j] = fileKey[j] ^ i; + } + rc4InitKey(tmpKey, keyLength, fState); + fx = fy = 0; + for (j = 0; j < 32; ++j) { + test[j] = rc4DecryptByte(fState, &fx, &fy, test[j]); + } + } + memcpy(buf, passwordPad, 32); + memcpy(buf + 32, fileID->getCString(), fileID->getLength()); + md5(buf, 32 + fileID->getLength(), buf); + ok = memcmp(test, buf, 16) == 0; + } else { + ok = gFalse; } - ok = memcmp(userTest, passwordPad, 32) == 0; - gfree(buf); + gfree(buf); return ok; } @@ -136,6 +216,7 @@ static Guchar rc4DecryptByte(Guchar *state, Guchar *x, Guchar *y, Guchar c) { // MD5 message digest //------------------------------------------------------------------------ +// this works around a bug in older Sun compilers static inline Gulong rotateLeft(Gulong x, int r) { x &= 0xffffffff; return ((x << r) | (x >> (32 - r))) & 0xffffffff; diff --git a/pdf/xpdf/Decrypt.h b/pdf/xpdf/Decrypt.h index 3ea43741..52afb2f6 100644 --- a/pdf/xpdf/Decrypt.h +++ b/pdf/xpdf/Decrypt.h @@ -2,7 +2,7 @@ // // Decrypt.h // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -24,7 +24,7 @@ class Decrypt { public: // Initialize the decryptor object. - Decrypt(Guchar *fileKey, int objNum, int objGen); + Decrypt(Guchar *fileKey, int keyLength, int objNum, int objGen); // Reset decryption. void reset(); @@ -32,16 +32,26 @@ public: // Decrypt one byte. Guchar decryptByte(Guchar c); - // Generate a file key. The buffer must have space for - // at least 16 bytes. Checks user key and returns gTrue if okay. - // may be NULL. - static GBool makeFileKey(GString *ownerKey, GString *userKey, + // Generate a file key. The buffer must have space for at + // least 16 bytes. Checks and then + // and returns true if either is correct. Sets if + // the owner password was correct. Either or both of the passwords + // may be NULL, which is treated as an empty string. + static GBool makeFileKey(int encVersion, int encRevision, int keyLength, + GString *ownerKey, GString *userKey, int permissions, GString *fileID, - GString *userPassword, Guchar *fileKey); + GString *ownerPassword, GString *userPassword, + Guchar *fileKey, GBool *ownerPasswordOk); private: - Guchar objKey[16]; + static GBool makeFileKey2(int encVersion, int encRevision, int keyLength, + GString *ownerKey, GString *userKey, + int permissions, GString *fileID, + GString *userPassword, Guchar *fileKey); + + int objKeyLength; + Guchar objKey[21]; Guchar state[256]; Guchar x, y; }; diff --git a/pdf/xpdf/Dict.cc b/pdf/xpdf/Dict.cc index c9f4feca..5eb077e0 100644 --- a/pdf/xpdf/Dict.cc +++ b/pdf/xpdf/Dict.cc @@ -2,7 +2,7 @@ // // Dict.cc // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -10,6 +10,7 @@ #pragma implementation #endif +#include #include #include #include "gmem.h" @@ -21,7 +22,8 @@ // Dict //------------------------------------------------------------------------ -Dict::Dict() { +Dict::Dict(XRef *xrefA) { + xref = xrefA; entries = NULL; size = length = 0; ref = 1; @@ -66,7 +68,7 @@ GBool Dict::is(char *type) { Object *Dict::lookup(char *key, Object *obj) { DictEntry *e; - return (e = find(key)) ? e->val.fetch(obj) : obj->initNull(); + return (e = find(key)) ? e->val.fetch(xref, obj) : obj->initNull(); } Object *Dict::lookupNF(char *key, Object *obj) { @@ -80,7 +82,7 @@ char *Dict::getKey(int i) { } Object *Dict::getVal(int i, Object *obj) { - return entries[i].val.fetch(obj); + return entries[i].val.fetch(xref, obj); } Object *Dict::getValNF(int i, Object *obj) { diff --git a/pdf/xpdf/Dict.h b/pdf/xpdf/Dict.h index cfc64d3b..b9945144 100644 --- a/pdf/xpdf/Dict.h +++ b/pdf/xpdf/Dict.h @@ -2,7 +2,7 @@ // // Dict.h // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -28,7 +28,7 @@ class Dict { public: // Constructor. - Dict(); + Dict(XRef *xrefA); // Destructor. ~Dict(); @@ -56,8 +56,14 @@ public: Object *getVal(int i, Object *obj); Object *getValNF(int i, Object *obj); + // Set the xref pointer. This is only used in one special case: the + // trailer dictionary, which is read before the xref table is + // parsed. + void setXRef(XRef *xrefA) { xref = xrefA; } + private: + XRef *xref; // the xref table for this PDF file DictEntry *entries; // array of entries int size; // size of array int length; // number of entries in dictionary diff --git a/pdf/xpdf/DisplayFontTable.h b/pdf/xpdf/DisplayFontTable.h new file mode 100644 index 00000000..4606031a --- /dev/null +++ b/pdf/xpdf/DisplayFontTable.h @@ -0,0 +1,29 @@ +//======================================================================== +// +// DisplayFontTable.h +// +// Copyright 2001-2002 Glyph & Cog, LLC +// +//======================================================================== + +static struct { + char *name; + char *xlfd; + char *encoding; +} displayFontTab[] = { + {"Courier", "-*-courier-medium-r-normal-*-%s-*-*-*-*-*-iso8859-1", "Latin1"}, + {"Courier-Bold", "-*-courier-bold-r-normal-*-%s-*-*-*-*-*-iso8859-1", "Latin1"}, + {"Courier-BoldOblique", "-*-courier-bold-o-normal-*-%s-*-*-*-*-*-iso8859-1", "Latin1"}, + {"Courier-Oblique", "-*-courier-medium-o-normal-*-%s-*-*-*-*-*-iso8859-1", "Latin1"}, + {"Helvetica", "-*-helvetica-medium-r-normal-*-%s-*-*-*-*-*-iso8859-1", "Latin1"}, + {"Helvetica-Bold", "-*-helvetica-bold-r-normal-*-%s-*-*-*-*-*-iso8859-1", "Latin1"}, + {"Helvetica-BoldOblique", "-*-helvetica-bold-o-normal-*-%s-*-*-*-*-*-iso8859-1", "Latin1"}, + {"Helvetica-Oblique", "-*-helvetica-medium-o-normal-*-%s-*-*-*-*-*-iso8859-1", "Latin1"}, + {"Symbol", "-*-symbol-medium-r-normal-*-%s-*-*-*-*-*-adobe-fontspecific", "Symbol"}, + {"Times-Bold", "-*-times-bold-r-normal-*-%s-*-*-*-*-*-iso8859-1", "Latin1"}, + {"Times-BoldItalic", "-*-times-bold-i-normal-*-%s-*-*-*-*-*-iso8859-1", "Latin1"}, + {"Times-Italic", "-*-times-medium-i-normal-*-%s-*-*-*-*-*-iso8859-1", "Latin1"}, + {"Times-Roman", "-*-times-medium-r-normal-*-%s-*-*-*-*-*-iso8859-1", "Latin1"}, + {"ZapfDingbats", "-*-zapfdingbats-medium-r-normal-*-%s-*-*-*-*-*-*-*", "ZapfDingbats"}, + {NULL} +}; diff --git a/pdf/xpdf/Error.cc b/pdf/xpdf/Error.cc index 485a7cb4..3eae5c9c 100644 --- a/pdf/xpdf/Error.cc +++ b/pdf/xpdf/Error.cc @@ -2,7 +2,7 @@ // // Error.cc // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -10,41 +10,28 @@ #pragma implementation #endif +#include #include #include #include -#include "gtypes.h" -#include "Params.h" +#include "GlobalParams.h" #include "Error.h" -FILE *errFile; -GBool errQuiet; - -void errorInit() { - if (errQuiet) { - errFile = NULL; - } else { - errFile = stderr; - } -} - void CDECL error(int pos, char *msg, ...) { va_list args; - if (errQuiet) { + // NB: this can be called before the globalParams object is created + if (globalParams && globalParams->getErrQuiet()) { return; } - if (printCommands) { - fflush(stdout); - } if (pos >= 0) { - fprintf(errFile, "Error (%d): ", pos); + fprintf(stderr, "Error (%d): ", pos); } else { - fprintf(errFile, "Error: "); + fprintf(stderr, "Error: "); } va_start(args, msg); - vfprintf(errFile, msg, args); + vfprintf(stderr, msg, args); va_end(args); - fprintf(errFile, "\n"); - fflush(errFile); + fprintf(stderr, "\n"); + fflush(stderr); } diff --git a/pdf/xpdf/Error.h b/pdf/xpdf/Error.h index f651678c..77801c59 100644 --- a/pdf/xpdf/Error.h +++ b/pdf/xpdf/Error.h @@ -2,7 +2,7 @@ // // Error.h // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -16,11 +16,6 @@ #include #include "config.h" -// File to send error (and other) messages to. -extern FILE *errFile; - -extern void errorInit(); - extern void CDECL error(int pos, char *msg, ...); #endif diff --git a/pdf/xpdf/ErrorCodes.h b/pdf/xpdf/ErrorCodes.h new file mode 100644 index 00000000..4e0d38a6 --- /dev/null +++ b/pdf/xpdf/ErrorCodes.h @@ -0,0 +1,24 @@ +//======================================================================== +// +// ErrorCodes.h +// +// Copyright 2002 Glyph & Cog, LLC +// +//======================================================================== + +#ifndef ERRORCODES_H +#define ERRORCODES_H + +#define errNone 0 // no error + +#define errOpenFile 1 // couldn't open the PDF file + +#define errBadCatalog 2 // couldn't read the page catalog + +#define errDamaged 3 // PDF file was damaged and couldn't be + // repaired + +#define errEncrypted 4 // file was encrypted and password was + // incorrect or not supplied + +#endif diff --git a/pdf/xpdf/FTFont.cc b/pdf/xpdf/FTFont.cc new file mode 100644 index 00000000..0524c7ed --- /dev/null +++ b/pdf/xpdf/FTFont.cc @@ -0,0 +1,685 @@ +//======================================================================== +// +// FTFont.cc +// +// Copyright 2001-2002 Glyph & Cog, LLC +// +//======================================================================== + +#ifdef __GNUC__ +#pragma implementation +#endif + +#include + +#if FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) + +#include +#include +#include "gmem.h" +#include "freetype/ftoutln.h" +#include "freetype/internal/ftobjs.h" +#if 1 //~ cff cid->gid map +#include "freetype/internal/cfftypes.h" +#include "freetype/internal/tttypes.h" +#endif +#include "GlobalParams.h" +#include "GfxState.h" +#include "FTFont.h" + +//------------------------------------------------------------------------ + +FTFontEngine::FTFontEngine(Display *displayA, Visual *visualA, int depthA, + Colormap colormapA, GBool aaA): + SFontEngine(displayA, visualA, depthA, colormapA) { + + ok = gFalse; + if (FT_Init_FreeType(&lib)) { + return; + } + aa = aaA; + ok = gTrue; +} + +FTFontEngine::~FTFontEngine() { + FT_Done_FreeType(lib); +} + +//------------------------------------------------------------------------ + +FTFontFile::FTFontFile(FTFontEngine *engineA, char *fontFileName, + char **fontEnc, GBool pdfFontHasEncoding) { + char *name; + int unicodeCmap, macRomanCmap, msSymbolCmap; + int i, j; + + ok = gFalse; + engine = engineA; + codeMap = NULL; + if (FT_New_Face(engine->lib, fontFileName, 0, &face)) { + return; + } + + if (!strcmp(face->driver->root.clazz->module_name, "type1") || + !strcmp(face->driver->root.clazz->module_name, "cff")) { + + mode = ftFontModeCodeMapDirect; + codeMap = (Guint *)gmalloc(256 * sizeof(Guint)); + for (i = 0; i < 256; ++i) { + codeMap[i] = 0; + if ((name = fontEnc[i])) { + codeMap[i] = FT_Get_Name_Index(face, name); + } + } + + } else { + + // To match up with the Adobe-defined behaviour, we choose a cmap + // like this: + // 1. If the PDF font has an encoding: + // 1a. If the TrueType font has a Microsoft Unicode cmap, use it, + // and use the Unicode indexes, not the char codes. + // 1b. If the TrueType font has a Macintosh Roman cmap, use it, + // and reverse map the char names through MacRomanEncoding to + // get char codes. + // 2. If the PDF font does not have an encoding: + // 2a. If the TrueType font has a Macintosh Roman cmap, use it, + // and use char codes directly. + // 2b. If the TrueType font has a Microsoft Symbol cmap, use it, + // and use (0xf000 + char code). + // 3. If none of these rules apply, use the first cmap and hope for + // the best (this shouldn't happen). + unicodeCmap = macRomanCmap = msSymbolCmap = 0xffff; + for (i = 0; i < face->num_charmaps; ++i) { + if (face->charmaps[i]->platform_id == 3 && + face->charmaps[i]->encoding_id == 1) { + unicodeCmap = i; + } else if (face->charmaps[i]->platform_id == 1 && + face->charmaps[i]->encoding_id == 0) { + macRomanCmap = i; + } else if (face->charmaps[i]->platform_id == 3 && + face->charmaps[i]->encoding_id == 0) { + msSymbolCmap = i; + } + } + i = 0; + mode = ftFontModeCharCode; + charMapOffset = 0; + if (pdfFontHasEncoding) { + if (unicodeCmap != 0xffff) { + i = unicodeCmap; + mode = ftFontModeUnicode; + } else if (macRomanCmap != 0xffff) { + i = macRomanCmap; + mode = ftFontModeCodeMap; + codeMap = (Guint *)gmalloc(256 * sizeof(Guint)); + for (j = 0; j < 256; ++j) { + if (fontEnc[j]) { + codeMap[j] = globalParams->getMacRomanCharCode(fontEnc[j]); + } else { + codeMap[j] = 0; + } + } + } + } else { + if (macRomanCmap != 0xffff) { + i = macRomanCmap; + mode = ftFontModeCharCode; + } else if (msSymbolCmap != 0xffff) { + i = msSymbolCmap; + mode = ftFontModeCharCodeOffset; + charMapOffset = 0xf000; + } + } + if (FT_Set_Charmap(face, face->charmaps[i])) { + return; + } + } + + ok = gTrue; +} + +FTFontFile::FTFontFile(FTFontEngine *engineA, char *fontFileName, + Gushort *cidToGIDA, int cidToGIDLenA) { + ok = gFalse; + engine = engineA; + codeMap = NULL; + if (FT_New_Face(engine->lib, fontFileName, 0, &face)) { + return; + } + cidToGID = cidToGIDA; + cidToGIDLen = cidToGIDLenA; + mode = ftFontModeCIDToGIDMap; + ok = gTrue; +} + +FTFontFile::FTFontFile(FTFontEngine *engineA, char *fontFileName) { + ok = gFalse; + engine = engineA; + codeMap = NULL; + if (FT_New_Face(engine->lib, fontFileName, 0, &face)) { + return; + } + cidToGID = NULL; + cidToGIDLen = 0; + mode = ftFontModeCFFCharset; + ok = gTrue; +} + +FTFontFile::~FTFontFile() { + if (face) { + FT_Done_Face(face); + } + if (codeMap) { + gfree(codeMap); + } +} + +//------------------------------------------------------------------------ + +FTFont::FTFont(FTFontFile *fontFileA, double *m) { + FTFontEngine *engine; + FT_Face face; + double size, div; + int x, xMin, xMax; + int y, yMin, yMax; + int i; + + ok = gFalse; + fontFile = fontFileA; + engine = fontFile->engine; + face = fontFile->face; + if (FT_New_Size(face, &sizeObj)) { + return; + } + face->size = sizeObj; + size = sqrt(m[2]*m[2] + m[3]*m[3]); + if (FT_Set_Pixel_Sizes(face, 0, (int)size)) { + return; + } + + div = face->bbox.xMax > 20000 ? 65536 : 1; + + // transform the four corners of the font bounding box -- the min + // and max values form the bounding box of the transformed font + x = (int)((m[0] * face->bbox.xMin + m[2] * face->bbox.yMin) / + (div * face->units_per_EM)); + xMin = xMax = x; + y = (int)((m[1] * face->bbox.xMin + m[3] * face->bbox.yMin) / + (div * face->units_per_EM)); + yMin = yMax = y; + x = (int)((m[0] * face->bbox.xMin + m[2] * face->bbox.yMax) / + (div * face->units_per_EM)); + if (x < xMin) { + xMin = x; + } else if (x > xMax) { + xMax = x; + } + y = (int)((m[1] * face->bbox.xMin + m[3] * face->bbox.yMax) / + (div * face->units_per_EM)); + if (y < yMin) { + yMin = y; + } else if (y > yMax) { + yMax = y; + } + x = (int)((m[0] * face->bbox.xMax + m[2] * face->bbox.yMin) / + (div * face->units_per_EM)); + if (x < xMin) { + xMin = x; + } else if (x > xMax) { + xMax = x; + } + y = (int)((m[1] * face->bbox.xMax + m[3] * face->bbox.yMin) / + (div * face->units_per_EM)); + if (y < yMin) { + yMin = y; + } else if (y > yMax) { + yMax = y; + } + x = (int)((m[0] * face->bbox.xMax + m[2] * face->bbox.yMax) / + (div * face->units_per_EM)); + if (x < xMin) { + xMin = x; + } else if (x > xMax) { + xMax = x; + } + y = (int)((m[1] * face->bbox.xMax + m[3] * face->bbox.yMax) / + (div * face->units_per_EM)); + if (y < yMin) { + yMin = y; + } else if (y > yMax) { + yMax = y; + } + // This is a kludge: some buggy PDF generators embed fonts with + // zero bounding boxes. + if (xMax == xMin) { + xMin = 0; + xMax = (int)size; + } + if (yMax == yMin) { + yMin = 0; + yMax = (int)(1.2 * size); + } + // this should be (max - min + 1), but we add some padding to + // deal with rounding errors + glyphW = xMax - xMin + 3; + glyphH = yMax - yMin + 3; + // another kludge: some CJK TT fonts have bogus bboxes, so add more + // padding + if (face->num_glyphs > 1000) { + glyphW += glyphW >> 1; + glyphH += glyphH >> 1; + } + if (engine->aa) { + glyphSize = glyphW * glyphH; + } else { + glyphSize = ((glyphW + 7) >> 3) * glyphH; + } + + // set up the glyph pixmap cache + cacheAssoc = 8; + if (glyphSize <= 256) { + cacheSets = 8; + } else if (glyphSize <= 512) { + cacheSets = 4; + } else if (glyphSize <= 1024) { + cacheSets = 2; + } else { + cacheSets = 1; + } + cache = (Guchar *)gmalloc(cacheSets * cacheAssoc * glyphSize); + cacheTags = (FTFontCacheTag *)gmalloc(cacheSets * cacheAssoc * + sizeof(FTFontCacheTag)); + for (i = 0; i < cacheSets * cacheAssoc; ++i) { + cacheTags[i].mru = i & (cacheAssoc - 1); + } + + // create the XImage + if (!(image = XCreateImage(engine->display, engine->visual, engine->depth, + ZPixmap, 0, NULL, glyphW, glyphH, 8, 0))) { + return; + } + image->data = (char *)gmalloc(glyphH * image->bytes_per_line); + + // compute the transform matrix + matrix.xx = (FT_Fixed)((m[0] / size) * 65536); + matrix.yx = (FT_Fixed)((m[1] / size) * 65536); + matrix.xy = (FT_Fixed)((m[2] / size) * 65536); + matrix.yy = (FT_Fixed)((m[3] / size) * 65536); + + ok = gTrue; +} + +FTFont::~FTFont() { + gfree(cacheTags); + gfree(cache); + gfree(image->data); + image->data = NULL; + XDestroyImage(image); +} + +GBool FTFont::drawChar(Drawable d, int w, int h, GC gc, + int x, int y, int r, int g, int b, + CharCode c, Unicode u) { + FTFontEngine *engine; + XColor xcolor; + int bgR, bgG, bgB; + Gulong colors[5]; + Guchar *p; + int pix; + int xOffset, yOffset, x0, y0, x1, y1, gw, gh, w0, h0; + int xx, yy, xx1; + + engine = fontFile->engine; + + // no Unicode index for this char - don't draw anything + if (fontFile->mode == ftFontModeUnicode && u == 0) { + return gFalse; + } + + // generate the glyph pixmap + if (!(p = getGlyphPixmap(c, u, &xOffset, &yOffset, &gw, &gh))) { + return gFalse; + } + + // compute: (x0,y0) = position in destination drawable + // (x1,y1) = position in glyph image + // (w0,h0) = size of image transfer + x0 = x - xOffset; + y0 = y - yOffset; + x1 = 0; + y1 = 0; + w0 = gw; + h0 = gh; + if (x0 < 0) { + x1 = -x0; + w0 += x0; + x0 = 0; + } + if (x0 + w0 > w) { + w0 = w - x0; + } + if (w0 < 0) { + return gTrue; + } + if (y0 < 0) { + y1 = -y0; + h0 += y0; + y0 = 0; + } + if (y0 + h0 > h) { + h0 = h - y0; + } + if (h0 < 0) { + return gTrue; + } + + // read the X image + XGetSubImage(engine->display, d, x0, y0, w0, h0, (1 << engine->depth) - 1, + ZPixmap, image, x1, y1); + + if (engine->aa) { + + // compute the colors + xcolor.pixel = XGetPixel(image, x1 + w0/2, y1 + h0/2); + XQueryColor(engine->display, engine->colormap, &xcolor); + bgR = xcolor.red; + bgG = xcolor.green; + bgB = xcolor.blue; + colors[1] = engine->findColor((r + 3*bgR) / 4, + (g + 3*bgG) / 4, + (b + 3*bgB) / 4); + colors[2] = engine->findColor((r + bgR) / 2, + (g + bgG) / 2, + (b + bgB) / 2); + colors[3] = engine->findColor((3*r + bgR) / 4, + (3*g + bgG) / 4, + (3*b + bgB) / 4); + colors[4] = engine->findColor(r, g, b); + + // stuff the glyph pixmap into the X image + for (yy = 0; yy < gh; ++yy) { + for (xx = 0; xx < gw; ++xx) { + pix = *p++ & 0xff; + // this is a heuristic which seems to produce decent + // results -- the linear mapping would be: + // pix = (pix * 5) / 256; + pix = ((pix + 10) * 5) / 256; + if (pix > 4) { + pix = 4; + } + if (pix > 0) { + XPutPixel(image, xx, yy, colors[pix]); + } + } + } + + } else { + + // one color + colors[1] = engine->findColor(r, g, b); + + // stuff the glyph bitmap into the X image + for (yy = 0; yy < gh; ++yy) { + for (xx = 0; xx < gw; xx += 8) { + pix = *p++; + for (xx1 = xx; xx1 < xx + 8 && xx1 < gw; ++xx1) { + if (pix & 0x80) { + XPutPixel(image, xx1, yy, colors[1]); + } + pix <<= 1; + } + } + } + + } + + // draw the X image + XPutImage(engine->display, d, gc, image, x1, y1, x0, y0, w0, h0); + + return gTrue; +} + +Guchar *FTFont::getGlyphPixmap(CharCode c, Unicode u, + int *x, int *y, int *w, int *h) { + FT_GlyphSlot slot; + FT_UInt idx; + int gSize; + int i, j, k; + Guchar *ret; + + // check the cache + i = (c & (cacheSets - 1)) * cacheAssoc; + for (j = 0; j < cacheAssoc; ++j) { + if ((cacheTags[i+j].mru & 0x8000) && cacheTags[i+j].code == c) { + *x = cacheTags[i+j].x; + *y = cacheTags[i+j].y; + *w = cacheTags[i+j].w; + *h = cacheTags[i+j].h; + for (k = 0; k < cacheAssoc; ++k) { + if (k != j && + (cacheTags[i+k].mru & 0x7fff) < (cacheTags[i+j].mru & 0x7fff)) { + ++cacheTags[i+k].mru; + } + } + cacheTags[i+j].mru = 0x8000; + return cache + (i+j) * glyphSize; + } + } + + // generate the glyph pixmap or bitmap + fontFile->face->size = sizeObj; + FT_Set_Transform(fontFile->face, &matrix, NULL); + slot = fontFile->face->glyph; + idx = getGlyphIndex(c, u); + // if we have the FT2 bytecode interpreter, autohinting won't be used +#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER + if (FT_Load_Glyph(fontFile->face, idx, FT_LOAD_DEFAULT)) { + return gFalse; + } +#else + // FT2's autohinting doesn't always work very well (especially with + // font subsets), so turn it off if anti-aliasing is enabled; if + // anti-aliasing is disabled, this seems to be a tossup - some fonts + // look better with hinting, some without, so leave hinting on + if (FT_Load_Glyph(fontFile->face, idx, + fontFile->engine->aa ? FT_LOAD_NO_HINTING + : FT_LOAD_DEFAULT)) { + return gFalse; + } +#endif + if (FT_Render_Glyph(slot, + fontFile->engine->aa ? ft_render_mode_normal : + ft_render_mode_mono)) { + return gFalse; + } + *x = -slot->bitmap_left; + *y = slot->bitmap_top; + *w = slot->bitmap.width; + *h = slot->bitmap.rows; + if (*w > glyphW || *h > glyphH) { +#if 1 //~ debug + fprintf(stderr, "Weird FreeType glyph size: %d > %d or %d > %d\n", + *w, glyphW, *h, glyphH); +#endif + return NULL; + } + + // store glyph pixmap in cache + ret = NULL; + for (j = 0; j < cacheAssoc; ++j) { + if ((cacheTags[i+j].mru & 0x7fff) == cacheAssoc - 1) { + cacheTags[i+j].mru = 0x8000; + cacheTags[i+j].code = c; + cacheTags[i+j].x = *x; + cacheTags[i+j].y = *y; + cacheTags[i+j].w = *w; + cacheTags[i+j].h = *h; + if (fontFile->engine->aa) { + gSize = *w * *h; + } else { + gSize = ((*w + 7) >> 3) * *h; + } + ret = cache + (i+j) * glyphSize; + memcpy(ret, slot->bitmap.buffer, gSize); + } else { + ++cacheTags[i+j].mru; + } + } + return ret; +} + +GBool FTFont::getCharPath(CharCode c, Unicode u, GfxState *state) { + static FT_Outline_Funcs outlineFuncs = { + &charPathMoveTo, + &charPathLineTo, + &charPathConicTo, + &charPathCubicTo, + 0, 0 + }; + FT_GlyphSlot slot; + FT_UInt idx; + FT_Glyph glyph; + + fontFile->face->size = sizeObj; + FT_Set_Transform(fontFile->face, &matrix, NULL); + slot = fontFile->face->glyph; + idx = getGlyphIndex(c, u); +#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER + if (FT_Load_Glyph(fontFile->face, idx, FT_LOAD_DEFAULT)) { + return gFalse; + } +#else + // FT2's autohinting doesn't always work very well (especially with + // font subsets), so turn it off if anti-aliasing is enabled; if + // anti-aliasing is disabled, this seems to be a tossup - some fonts + // look better with hinting, some without, so leave hinting on + if (FT_Load_Glyph(fontFile->face, idx, + fontFile->engine->aa ? FT_LOAD_NO_HINTING + : FT_LOAD_DEFAULT)) { + return gFalse; + } +#endif + if (FT_Get_Glyph(slot, &glyph)) { + return gFalse; + } + FT_Outline_Decompose(&((FT_OutlineGlyph)glyph)->outline, + &outlineFuncs, state); + return gTrue; +} + +int FTFont::charPathMoveTo(FT_Vector *pt, void *state) { + ((GfxState *)state)->moveTo(pt->x / 64.0, -pt->y / 64.0); + return 0; +} + +int FTFont::charPathLineTo(FT_Vector *pt, void *state) { + ((GfxState *)state)->lineTo(pt->x / 64.0, -pt->y / 64.0); + return 0; +} + +int FTFont::charPathConicTo(FT_Vector *ctrl, FT_Vector *pt, void *state) { + double x0, y0, x1, y1, x2, y2, x3, y3, xc, yc; + + x0 = ((GfxState *)state)->getCurX(); + y0 = ((GfxState *)state)->getCurY(); + xc = ctrl->x / 64.0; + yc = -ctrl->y / 64.0; + x3 = pt->x / 64.0; + y3 = -pt->y / 64.0; + + // A second-order Bezier curve is defined by two endpoints, p0 and + // p3, and one control point, pc: + // + // p(t) = (1-t)^2*p0 + t*(1-t)*pc + t^2*p3 + // + // A third-order Bezier curve is defined by the same two endpoints, + // p0 and p3, and two control points, p1 and p2: + // + // p(t) = (1-t)^3*p0 + 3t*(1-t)^2*p1 + 3t^2*(1-t)*p2 + t^3*p3 + // + // Applying some algebra, we can convert a second-order curve to a + // third-order curve: + // + // p1 = (1/3) * (p0 + 2pc) + // p2 = (1/3) * (2pc + p3) + + x1 = (1.0 / 3.0) * (x0 + 2 * xc); + y1 = (1.0 / 3.0) * (y0 + 2 * yc); + x2 = (1.0 / 3.0) * (2 * xc + x3); + y2 = (1.0 / 3.0) * (2 * yc + y3); + + ((GfxState *)state)->curveTo(x1, y1, x2, y2, x3, y3); + return 0; +} + +int FTFont::charPathCubicTo(FT_Vector *ctrl1, FT_Vector *ctrl2, + FT_Vector *pt, void *state) { + ((GfxState *)state)->curveTo(ctrl1->x / 64.0, -ctrl1->y / 64.0, + ctrl2->x / 64.0, -ctrl2->y / 64.0, + pt->x / 64.0, -pt->y / 64.0); + return 0; +} + +FT_UInt FTFont::getGlyphIndex(CharCode c, Unicode u) { + FT_UInt idx; + int j; + + idx = 0; // make gcc happy + switch (fontFile->mode) { + case ftFontModeUnicode: + idx = FT_Get_Char_Index(fontFile->face, (FT_ULong)u); + break; + case ftFontModeCharCode: + idx = FT_Get_Char_Index(fontFile->face, (FT_ULong)c); + break; + case ftFontModeCharCodeOffset: + idx = FT_Get_Char_Index(fontFile->face, + (FT_ULong)(c + fontFile->charMapOffset)); + break; + case ftFontModeCodeMap: + if (c <= 0xff) { + idx = FT_Get_Char_Index(fontFile->face, (FT_ULong)fontFile->codeMap[c]); + } else { + idx = 0; + } + break; + case ftFontModeCodeMapDirect: + if (c <= 0xff) { + idx = (FT_UInt)fontFile->codeMap[c]; + } else { + idx = 0; + } + break; + case ftFontModeCIDToGIDMap: + if (fontFile->cidToGIDLen) { + if ((int)c < fontFile->cidToGIDLen) { + idx = (FT_UInt)fontFile->cidToGID[c]; + } else { + idx = (FT_UInt)0; + } + } else { + idx = (FT_UInt)c; + } + break; + case ftFontModeCFFCharset: +#if 1 //~ cff cid->gid map +#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR == 0 + CFF_Font *cff = (CFF_Font *)((TT_Face)fontFile->face)->extra.data; +#else + CFF_Font cff = (CFF_Font)((TT_Face)fontFile->face)->extra.data; +#endif + idx = 0; + for (j = 0; j < (int)cff->num_glyphs; ++j) { + if (cff->charset.sids[j] == c) { + idx = j; + break; + } + } +#endif + break; + } + return idx; +} + +#endif // FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) diff --git a/pdf/xpdf/FTFont.h b/pdf/xpdf/FTFont.h new file mode 100644 index 00000000..4894a316 --- /dev/null +++ b/pdf/xpdf/FTFont.h @@ -0,0 +1,133 @@ +//======================================================================== +// +// FTFont.h +// +// An X wrapper for the FreeType font rasterizer. +// +// Copyright 2001-2002 Glyph & Cog, LLC +// +//======================================================================== + +#ifndef FTFONT_H +#define FTFONT_H + +#if FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) + +#ifdef __GNUC__ +#pragma interface +#endif + +#include +#include "CharTypes.h" +#include "SFont.h" + +//------------------------------------------------------------------------ + +class FTFontEngine: public SFontEngine { +public: + + FTFontEngine(Display *displayA, Visual *visualA, int depthA, + Colormap colormapA, GBool aaA); + GBool isOk() { return ok; } + virtual ~FTFontEngine(); + +private: + + FT_Library lib; + GBool aa; + Gulong palette[5]; + GBool ok; + + friend class FTFontFile; + friend class FTFont; +}; + +//------------------------------------------------------------------------ + +enum FTFontIndexMode { + ftFontModeUnicode, + ftFontModeCharCode, + ftFontModeCharCodeOffset, + ftFontModeCodeMap, + ftFontModeCodeMapDirect, + ftFontModeCIDToGIDMap, + ftFontModeCFFCharset +}; + +class FTFontFile: public SFontFile { +public: + + // 8-bit font, TrueType or Type 1/1C + FTFontFile(FTFontEngine *engineA, char *fontFileName, + char **fontEnc, GBool pdfFontHasEncoding); + + // CID font, TrueType + FTFontFile(FTFontEngine *engineA, char *fontFileName, + Gushort *cidToGIDA, int cidToGIDLenA); + + // CID font, Type 0C (CFF) + FTFontFile(FTFontEngine *engineA, char *fontFileName); + + GBool isOk() { return ok; } + virtual ~FTFontFile(); + +private: + + FTFontEngine *engine; + FT_Face face; + FTFontIndexMode mode; + int charMapOffset; + Guint *codeMap; + Gushort *cidToGID; + int cidToGIDLen; + GBool ok; + + friend class FTFont; +}; + +//------------------------------------------------------------------------ + +struct FTFontCacheTag { + Gushort code; + Gushort mru; // valid bit (0x8000) and MRU index + int x, y, w, h; // offset and size of glyph +}; + +class FTFont: public SFont { +public: + + FTFont(FTFontFile *fontFileA, double *m); + GBool isOk() { return ok; } + virtual ~FTFont(); + virtual GBool drawChar(Drawable d, int w, int h, GC gc, + int x, int y, int r, int g, int b, + CharCode c, Unicode u); + virtual GBool getCharPath(CharCode c, Unicode u, GfxState *state); + +private: + + Guchar *getGlyphPixmap(CharCode c, Unicode u, + int *x, int *y, int *w, int *h); + static int charPathMoveTo(FT_Vector *pt, void *state); + static int charPathLineTo(FT_Vector *pt, void *state); + static int charPathConicTo(FT_Vector *ctrl, FT_Vector *pt, void *state); + static int charPathCubicTo(FT_Vector *ctrl1, FT_Vector *ctrl2, + FT_Vector *pt, void *state); + FT_UInt getGlyphIndex(CharCode c, Unicode u); + + FTFontFile *fontFile; + FT_Size sizeObj; + XImage *image; + FT_Matrix matrix; + int glyphW, glyphH; // size of glyph pixmaps + int glyphSize; // size of glyph pixmaps, in bytes + Guchar *cache; // glyph pixmap cache + FTFontCacheTag *cacheTags; // cache tags, i.e., char codes + int cacheSets; // number of sets in cache + int cacheAssoc; // cache associativity (glyphs per set) + GBool ok; +}; + +#endif // FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) + +#endif diff --git a/pdf/xpdf/FontEncoding.cc b/pdf/xpdf/FontEncoding.cc deleted file mode 100644 index bf12577e..00000000 --- a/pdf/xpdf/FontEncoding.cc +++ /dev/null @@ -1,143 +0,0 @@ -//======================================================================== -// -// FontEncoding.cc -// -// Copyright 1999 Derek B. Noonburg -// -//======================================================================== - -#ifdef __GNUC__ -#pragma implementation -#endif - -#include -#include -#include -#include -#include "gmem.h" -#include "FontEncoding.h" - -//------------------------------------------------------------------------ -// FontEncoding -//------------------------------------------------------------------------ - -inline int FontEncoding::hash(char *name) { - Guint h; - - h = (Guint)name[0] & 0xff; - if (h && name[1]) - h = h * 61 + ((Guint)name[1] & 0xff); - return (int)(h % (Guint)fontEncHashSize); -} - -FontEncoding::FontEncoding() { - int i; - - encoding = (char **)gmalloc(256 * sizeof(char *)); - size = 256; - freeEnc = gTrue; - for (i = 0; i < 256; ++i) - encoding[i] = NULL; - for (i = 0; i < fontEncHashSize; ++i) - hashTab[i] = -1; -} - -FontEncoding::FontEncoding(char **encoding, int size) { - int i; - - this->encoding = encoding; - this->size = size; - freeEnc = gFalse; - for (i = 0; i < fontEncHashSize; ++i) - hashTab[i] = -1; - for (i = 0; i < size; ++i) { - if (encoding[i]) - addChar1(i, encoding[i]); - } -} - -FontEncoding::FontEncoding(FontEncoding *fontEnc) { - int i; - - encoding = (char **)gmalloc(fontEnc->size * sizeof(char *)); - size = fontEnc->size; - freeEnc = gTrue; - for (i = 0; i < size; ++i) { - encoding[i] = - fontEnc->encoding[i] ? copyString(fontEnc->encoding[i]) : (char *)NULL; - } - memcpy(hashTab, fontEnc->hashTab, fontEncHashSize * sizeof(short)); -} - -void FontEncoding::addChar(int code, char *name) { - int h, i; - - // replace character associated with code - if (encoding[code]) { - h = hash(encoding[code]); - for (i = 0; i < fontEncHashSize; ++i) { - if (hashTab[h] == code) { - hashTab[h] = -2; - break; - } - if (++h == fontEncHashSize) - h = 0; - } - gfree(encoding[code]); - } - - // associate name with code - encoding[code] = name; - - // insert name in hash table - addChar1(code, name); -} - -void FontEncoding::addChar1(int code, char *name) { - int h, i, code2; - - // insert name in hash table - h = hash(name); - for (i = 0; i < fontEncHashSize; ++i) { - code2 = hashTab[h]; - if (code2 < 0) { - hashTab[h] = code; - break; - } else if (encoding[code2] && !strcmp(encoding[code2], name)) { - // keep the highest code for each char -- this is needed because - // X won't display chars with codes < 32 - if (code > code2) - hashTab[h] = code; - break; - } - if (++h == fontEncHashSize) - h = 0; - } -} - -FontEncoding::~FontEncoding() { - int i; - - if (freeEnc) { - for (i = 0; i < size; ++i) { - if (encoding[i]) - gfree(encoding[i]); - } - gfree(encoding); - } -} - -int FontEncoding::getCharCode(char *name) { - int h, i, code; - - h = hash(name); - for (i = 0; i < fontEncHashSize; ++i) { - code = hashTab[h]; - if (code == -1 || - (code >= 0 && encoding[code] && !strcmp(encoding[code], name))) - return code; - if (++h >= fontEncHashSize) - h = 0; - } - return -1; -} diff --git a/pdf/xpdf/FontEncoding.h b/pdf/xpdf/FontEncoding.h deleted file mode 100644 index 7c811536..00000000 --- a/pdf/xpdf/FontEncoding.h +++ /dev/null @@ -1,64 +0,0 @@ -//======================================================================== -// -// FontEncoding.h -// -// Copyright 1999 Derek B. Noonburg -// -//======================================================================== - -#ifndef FONTENCODING_H -#define FONTENCODING_H - -#ifdef __GNUC__ -#pragma interface -#endif - -#include "gtypes.h" - -//------------------------------------------------------------------------ -// FontEncoding -//------------------------------------------------------------------------ - -#define fontEncHashSize 419 - -class FontEncoding { -public: - - // Construct an empty encoding. - FontEncoding(); - - // Construct an encoding from an array of char names. - FontEncoding(char **encoding, int size); - - // Destructor. - ~FontEncoding(); - - // Create a copy of the encoding. - FontEncoding *copy() { return new FontEncoding(this); } - - // Return number of codes in encoding, i.e., max code + 1. - int getSize() { return size; } - - // Add a char to the encoding. - void addChar(int code, char *name); - - // Return the character name associated with . - char *getCharName(int code) { return encoding[code]; } - - // Return the code associated with . - int getCharCode(char *name); - -private: - - FontEncoding(FontEncoding *fontEnc); - int hash(char *name); - void addChar1(int code, char *name); - - char **encoding; // code --> name mapping - int size; // number of codes - GBool freeEnc; // should we free the encoding array? - short // name --> code hash table - hashTab[fontEncHashSize]; -}; - -#endif diff --git a/pdf/xpdf/FontEncodingTables.cc b/pdf/xpdf/FontEncodingTables.cc new file mode 100644 index 00000000..bd5f9cff --- /dev/null +++ b/pdf/xpdf/FontEncodingTables.cc @@ -0,0 +1,1824 @@ +//======================================================================== +// +// FontEncodingTables.cc +// +// Copyright 2001-2002 Glyph & Cog, LLC +// +//======================================================================== + +#include +#include +#include "FontEncodingTables.h" + +char *macRomanEncoding[256] = { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + "space", + "exclam", + "quotedbl", + "numbersign", + "dollar", + "percent", + "ampersand", + "quotesingle", + "parenleft", + "parenright", + "asterisk", + "plus", + "comma", + "hyphen", + "period", + "slash", + "zero", + "one", + "two", + "three", + "four", + "five", + "six", + "seven", + "eight", + "nine", + "colon", + "semicolon", + "less", + "equal", + "greater", + "question", + "at", + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "Q", + "R", + "S", + "T", + "U", + "V", + "W", + "X", + "Y", + "Z", + "bracketleft", + "backslash", + "bracketright", + "asciicircum", + "underscore", + "grave", + "a", + "b", + "c", + "d", + "e", + "f", + "g", + "h", + "i", + "j", + "k", + "l", + "m", + "n", + "o", + "p", + "q", + "r", + "s", + "t", + "u", + "v", + "w", + "x", + "y", + "z", + "braceleft", + "bar", + "braceright", + "asciitilde", + NULL, + "Adieresis", + "Aring", + "Ccedilla", + "Eacute", + "Ntilde", + "Odieresis", + "Udieresis", + "aacute", + "agrave", + "acircumflex", + "adieresis", + "atilde", + "aring", + "ccedilla", + "eacute", + "egrave", + "ecircumflex", + "edieresis", + "iacute", + "igrave", + "icircumflex", + "idieresis", + "ntilde", + "oacute", + "ograve", + "ocircumflex", + "odieresis", + "otilde", + "uacute", + "ugrave", + "ucircumflex", + "udieresis", + "dagger", + "degree", + "cent", + "sterling", + "section", + "bullet", + "paragraph", + "germandbls", + "registered", + "copyright", + "trademark", + "acute", + "dieresis", + NULL, + "AE", + "Oslash", + NULL, + "plusminus", + NULL, + NULL, + "yen", + "mu", + NULL, + NULL, + NULL, + NULL, + NULL, + "ordfeminine", + "ordmasculine", + NULL, + "ae", + "oslash", + "questiondown", + "exclamdown", + "logicalnot", + NULL, + "florin", + NULL, + NULL, + "guillemotleft", + "guillemotright", + "ellipsis", + "space", + "Agrave", + "Atilde", + "Otilde", + "OE", + "oe", + "endash", + "emdash", + "quotedblleft", + "quotedblright", + "quoteleft", + "quoteright", + "divide", + NULL, + "ydieresis", + "Ydieresis", + "fraction", + "currency", + "guilsinglleft", + "guilsinglright", + "fi", + "fl", + "daggerdbl", + "periodcentered", + "quotesinglbase", + "quotedblbase", + "perthousand", + "Acircumflex", + "Ecircumflex", + "Aacute", + "Edieresis", + "Egrave", + "Iacute", + "Icircumflex", + "Idieresis", + "Igrave", + "Oacute", + "Ocircumflex", + NULL, + "Ograve", + "Uacute", + "Ucircumflex", + "Ugrave", + "dotlessi", + "circumflex", + "tilde", + "macron", + "breve", + "dotaccent", + "ring", + "cedilla", + "hungarumlaut", + "ogonek", + "caron" +}; + +char *macExpertEncoding[256] = { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + "space", + "exclamsmall", + "Hungarumlautsmall", + "centoldstyle", + "dollaroldstyle", + "dollarsuperior", + "ampersandsmall", + "Acutesmall", + "parenleftsuperior", + "parenrightsuperior", + "twodotenleader", + "onedotenleader", + "comma", + "hyphen", + "period", + "fraction", + "zerooldstyle", + "oneoldstyle", + "twooldstyle", + "threeoldstyle", + "fouroldstyle", + "fiveoldstyle", + "sixoldstyle", + "sevenoldstyle", + "eightoldstyle", + "nineoldstyle", + "colon", + "semicolon", + NULL, + "threequartersemdash", + NULL, + "questionsmall", + NULL, + NULL, + NULL, + NULL, + "Ethsmall", + NULL, + NULL, + "onequarter", + "onehalf", + "threequarters", + "oneeighth", + "threeeighths", + "fiveeighths", + "seveneighths", + "onethird", + "twothirds", + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + "ff", + "fi", + "fl", + "ffi", + "ffl", + "parenleftinferior", + NULL, + "parenrightinferior", + "Circumflexsmall", + "hypheninferior", + "Gravesmall", + "Asmall", + "Bsmall", + "Csmall", + "Dsmall", + "Esmall", + "Fsmall", + "Gsmall", + "Hsmall", + "Ismall", + "Jsmall", + "Ksmall", + "Lsmall", + "Msmall", + "Nsmall", + "Osmall", + "Psmall", + "Qsmall", + "Rsmall", + "Ssmall", + "Tsmall", + "Usmall", + "Vsmall", + "Wsmall", + "Xsmall", + "Ysmall", + "Zsmall", + "colonmonetary", + "onefitted", + "rupiah", + "Tildesmall", + NULL, + NULL, + "asuperior", + "centsuperior", + NULL, + NULL, + NULL, + NULL, + "Aacutesmall", + "Agravesmall", + "Acircumflexsmall", + "Adieresissmall", + "Atildesmall", + "Aringsmall", + "Ccedillasmall", + "Eacutesmall", + "Egravesmall", + "Ecircumflexsmall", + "Edieresissmall", + "Iacutesmall", + "Igravesmall", + "Icircumflexsmall", + "Idieresissmall", + "Ntildesmall", + "Oacutesmall", + "Ogravesmall", + "Ocircumflexsmall", + "Odieresissmall", + "Otildesmall", + "Uacutesmall", + "Ugravesmall", + "Ucircumflexsmall", + "Udieresissmall", + NULL, + "eightsuperior", + "fourinferior", + "threeinferior", + "sixinferior", + "eightinferior", + "seveninferior", + "Scaronsmall", + NULL, + "centinferior", + "twoinferior", + NULL, + "Dieresissmall", + NULL, + "Caronsmall", + "osuperior", + "fiveinferior", + NULL, + "commainferior", + "periodinferior", + "Yacutesmall", + NULL, + "dollarinferior", + NULL, + NULL, + "Thornsmall", + NULL, + "nineinferior", + "zeroinferior", + "Zcaronsmall", + "AEsmall", + "Oslashsmall", + "questiondownsmall", + "oneinferior", + "Lslashsmall", + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + "Cedillasmall", + NULL, + NULL, + NULL, + NULL, + NULL, + "OEsmall", + "figuredash", + "hyphensuperior", + NULL, + NULL, + NULL, + NULL, + "exclamdownsmall", + NULL, + "Ydieresissmall", + NULL, + "onesuperior", + "twosuperior", + "threesuperior", + "foursuperior", + "fivesuperior", + "sixsuperior", + "sevensuperior", + "ninesuperior", + "zerosuperior", + NULL, + "esuperior", + "rsuperior", + "tsuperior", + NULL, + NULL, + "isuperior", + "ssuperior", + "dsuperior", + NULL, + NULL, + NULL, + NULL, + NULL, + "lsuperior", + "Ogoneksmall", + "Brevesmall", + "Macronsmall", + "bsuperior", + "nsuperior", + "msuperior", + "commasuperior", + "periodsuperior", + "Dotaccentsmall", + "Ringsmall", + NULL, + NULL, + NULL, + NULL +}; + +char *winAnsiEncoding[256] = { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + "space", + "exclam", + "quotedbl", + "numbersign", + "dollar", + "percent", + "ampersand", + "quotesingle", + "parenleft", + "parenright", + "asterisk", + "plus", + "comma", + "hyphen", + "period", + "slash", + "zero", + "one", + "two", + "three", + "four", + "five", + "six", + "seven", + "eight", + "nine", + "colon", + "semicolon", + "less", + "equal", + "greater", + "question", + "at", + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "Q", + "R", + "S", + "T", + "U", + "V", + "W", + "X", + "Y", + "Z", + "bracketleft", + "backslash", + "bracketright", + "asciicircum", + "underscore", + "grave", + "a", + "b", + "c", + "d", + "e", + "f", + "g", + "h", + "i", + "j", + "k", + "l", + "m", + "n", + "o", + "p", + "q", + "r", + "s", + "t", + "u", + "v", + "w", + "x", + "y", + "z", + "braceleft", + "bar", + "braceright", + "asciitilde", + "bullet", + "Euro", + "bullet", + "quotesinglbase", + "florin", + "quotedblbase", + "ellipsis", + "dagger", + "daggerdbl", + "circumflex", + "perthousand", + "Scaron", + "guilsinglleft", + "OE", + "bullet", + "Zcaron", + "bullet", + "bullet", + "quoteleft", + "quoteright", + "quotedblleft", + "quotedblright", + "bullet", + "endash", + "emdash", + "tilde", + "trademark", + "scaron", + "guilsinglright", + "oe", + "bullet", + "zcaron", + "Ydieresis", + "space", + "exclamdown", + "cent", + "sterling", + "currency", + "yen", + "brokenbar", + "section", + "dieresis", + "copyright", + "ordfeminine", + "guillemotleft", + "logicalnot", + "hyphen", + "registered", + "macron", + "degree", + "plusminus", + "twosuperior", + "threesuperior", + "acute", + "mu", + "paragraph", + "periodcentered", + "cedilla", + "onesuperior", + "ordmasculine", + "guillemotright", + "onequarter", + "onehalf", + "threequarters", + "questiondown", + "Agrave", + "Aacute", + "Acircumflex", + "Atilde", + "Adieresis", + "Aring", + "AE", + "Ccedilla", + "Egrave", + "Eacute", + "Ecircumflex", + "Edieresis", + "Igrave", + "Iacute", + "Icircumflex", + "Idieresis", + "Eth", + "Ntilde", + "Ograve", + "Oacute", + "Ocircumflex", + "Otilde", + "Odieresis", + "multiply", + "Oslash", + "Ugrave", + "Uacute", + "Ucircumflex", + "Udieresis", + "Yacute", + "Thorn", + "germandbls", + "agrave", + "aacute", + "acircumflex", + "atilde", + "adieresis", + "aring", + "ae", + "ccedilla", + "egrave", + "eacute", + "ecircumflex", + "edieresis", + "igrave", + "iacute", + "icircumflex", + "idieresis", + "eth", + "ntilde", + "ograve", + "oacute", + "ocircumflex", + "otilde", + "odieresis", + "divide", + "oslash", + "ugrave", + "uacute", + "ucircumflex", + "udieresis", + "yacute", + "thorn", + "ydieresis" +}; + +char *standardEncoding[256] = { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + "space", + "exclam", + "quotedbl", + "numbersign", + "dollar", + "percent", + "ampersand", + "quoteright", + "parenleft", + "parenright", + "asterisk", + "plus", + "comma", + "hyphen", + "period", + "slash", + "zero", + "one", + "two", + "three", + "four", + "five", + "six", + "seven", + "eight", + "nine", + "colon", + "semicolon", + "less", + "equal", + "greater", + "question", + "at", + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "Q", + "R", + "S", + "T", + "U", + "V", + "W", + "X", + "Y", + "Z", + "bracketleft", + "backslash", + "bracketright", + "asciicircum", + "underscore", + "quoteleft", + "a", + "b", + "c", + "d", + "e", + "f", + "g", + "h", + "i", + "j", + "k", + "l", + "m", + "n", + "o", + "p", + "q", + "r", + "s", + "t", + "u", + "v", + "w", + "x", + "y", + "z", + "braceleft", + "bar", + "braceright", + "asciitilde", + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + "exclamdown", + "cent", + "sterling", + "fraction", + "yen", + "florin", + "section", + "currency", + "quotesingle", + "quotedblleft", + "guillemotleft", + "guilsinglleft", + "guilsinglright", + "fi", + "fl", + NULL, + "endash", + "dagger", + "daggerdbl", + "periodcentered", + NULL, + "paragraph", + "bullet", + "quotesinglbase", + "quotedblbase", + "quotedblright", + "guillemotright", + "ellipsis", + "perthousand", + NULL, + "questiondown", + NULL, + "grave", + "acute", + "circumflex", + "tilde", + "macron", + "breve", + "dotaccent", + "dieresis", + NULL, + "ring", + "cedilla", + NULL, + "hungarumlaut", + "ogonek", + "caron", + "emdash", + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + "AE", + NULL, + "ordfeminine", + NULL, + NULL, + NULL, + NULL, + "Lslash", + "Oslash", + "OE", + "ordmasculine", + NULL, + NULL, + NULL, + NULL, + NULL, + "ae", + NULL, + NULL, + NULL, + "dotlessi", + NULL, + NULL, + "lslash", + "oslash", + "oe", + "germandbls", + NULL, + NULL, + NULL, + NULL +}; + +char *expertEncoding[256] = { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + "space", + "exclamsmall", + "Hungarumlautsmall", + NULL, + "dollaroldstyle", + "dollarsuperior", + "ampersandsmall", + "Acutesmall", + "parenleftsuperior", + "parenrightsuperior", + "twodotenleader", + "onedotenleader", + "comma", + "hyphen", + "period", + "fraction", + "zerooldstyle", + "oneoldstyle", + "twooldstyle", + "threeoldstyle", + "fouroldstyle", + "fiveoldstyle", + "sixoldstyle", + "sevenoldstyle", + "eightoldstyle", + "nineoldstyle", + "colon", + "semicolon", + "commasuperior", + "threequartersemdash", + "periodsuperior", + "questionsmall", + NULL, + "asuperior", + "bsuperior", + "centsuperior", + "dsuperior", + "esuperior", + NULL, + NULL, + NULL, + "isuperior", + NULL, + NULL, + "lsuperior", + "msuperior", + "nsuperior", + "osuperior", + NULL, + NULL, + "rsuperior", + "ssuperior", + "tsuperior", + NULL, + "ff", + "fi", + "fl", + "ffi", + "ffl", + "parenleftinferior", + NULL, + "parenrightinferior", + "Circumflexsmall", + "hyphensuperior", + "Gravesmall", + "Asmall", + "Bsmall", + "Csmall", + "Dsmall", + "Esmall", + "Fsmall", + "Gsmall", + "Hsmall", + "Ismall", + "Jsmall", + "Ksmall", + "Lsmall", + "Msmall", + "Nsmall", + "Osmall", + "Psmall", + "Qsmall", + "Rsmall", + "Ssmall", + "Tsmall", + "Usmall", + "Vsmall", + "Wsmall", + "Xsmall", + "Ysmall", + "Zsmall", + "colonmonetary", + "onefitted", + "rupiah", + "Tildesmall", + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + "exclamdownsmall", + "centoldstyle", + "Lslashsmall", + NULL, + NULL, + "Scaronsmall", + "Zcaronsmall", + "Dieresissmall", + "Brevesmall", + "Caronsmall", + NULL, + "Dotaccentsmall", + NULL, + NULL, + "Macronsmall", + NULL, + NULL, + "figuredash", + "hypheninferior", + NULL, + NULL, + "Ogoneksmall", + "Ringsmall", + "Cedillasmall", + NULL, + NULL, + NULL, + "onequarter", + "onehalf", + "threequarters", + "questiondownsmall", + "oneeighth", + "threeeighths", + "fiveeighths", + "seveneighths", + "onethird", + "twothirds", + NULL, + NULL, + "zerosuperior", + "onesuperior", + "twosuperior", + "threesuperior", + "foursuperior", + "fivesuperior", + "sixsuperior", + "sevensuperior", + "eightsuperior", + "ninesuperior", + "zeroinferior", + "oneinferior", + "twoinferior", + "threeinferior", + "fourinferior", + "fiveinferior", + "sixinferior", + "seveninferior", + "eightinferior", + "nineinferior", + "centinferior", + "dollarinferior", + "periodinferior", + "commainferior", + "Agravesmall", + "Aacutesmall", + "Acircumflexsmall", + "Atildesmall", + "Adieresissmall", + "Aringsmall", + "AEsmall", + "Ccedillasmall", + "Egravesmall", + "Eacutesmall", + "Ecircumflexsmall", + "Edieresissmall", + "Igravesmall", + "Iacutesmall", + "Icircumflexsmall", + "Idieresissmall", + "Ethsmall", + "Ntildesmall", + "Ogravesmall", + "Oacutesmall", + "Ocircumflexsmall", + "Otildesmall", + "Odieresissmall", + "OEsmall", + "Oslashsmall", + "Ugravesmall", + "Uacutesmall", + "Ucircumflexsmall", + "Udieresissmall", + "Yacutesmall", + "Thornsmall", + "Ydieresissmall" +}; + +char *symbolEncoding[256] = { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + "space", + "exclam", + "universal", + "numbersign", + "existential", + "percent", + "ampersand", + "suchthat", + "parenleft", + "parenright", + "asteriskmath", + "plus", + "comma", + "minus", + "period", + "slash", + "zero", + "one", + "two", + "three", + "four", + "five", + "six", + "seven", + "eight", + "nine", + "colon", + "semicolon", + "less", + "equal", + "greater", + "question", + "congruent", + "Alpha", + "Beta", + "Chi", + "Delta", + "Epsilon", + "Phi", + "Gamma", + "Eta", + "Iota", + "theta1", + "Kappa", + "Lambda", + "Mu", + "Nu", + "Omicron", + "Pi", + "Theta", + "Rho", + "Sigma", + "Tau", + "Upsilon", + "sigma1", + "Omega", + "Xi", + "Psi", + "Zeta", + "bracketleft", + "therefore", + "bracketright", + "perpendicular", + "underscore", + "radicalex", + "alpha", + "beta", + "chi", + "delta", + "epsilon", + "phi", + "gamma", + "eta", + "iota", + "phi1", + "kappa", + "lambda", + "mu", + "nu", + "omicron", + "pi", + "theta", + "rho", + "sigma", + "tau", + "upsilon", + "omega1", + "omega", + "xi", + "psi", + "zeta", + "braceleft", + "bar", + "braceright", + "similar", + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + "Upsilon1", + "minute", + "lessequal", + "fraction", + "infinity", + "florin", + "club", + "diamond", + "heart", + "spade", + "arrowboth", + "arrowleft", + "arrowup", + "arrowright", + "arrowdown", + "degree", + "plusminus", + "second", + "greaterequal", + "multiply", + "proportional", + "partialdiff", + "bullet", + "divide", + "notequal", + "equivalence", + "approxequal", + "ellipsis", + "arrowvertex", + "arrowhorizex", + "carriagereturn", + "aleph", + "Ifraktur", + "Rfraktur", + "weierstrass", + "circlemultiply", + "circleplus", + "emptyset", + "intersection", + "union", + "propersuperset", + "reflexsuperset", + "notsubset", + "propersubset", + "reflexsubset", + "element", + "notelement", + "angle", + "gradient", + "registerserif", + "copyrightserif", + "trademarkserif", + "product", + "radical", + "dotmath", + "logicalnot", + "logicaland", + "logicalor", + "arrowdblboth", + "arrowdblleft", + "arrowdblup", + "arrowdblright", + "arrowdbldown", + "lozenge", + "angleleft", + "registersans", + "copyrightsans", + "trademarksans", + "summation", + "parenlefttp", + "parenleftex", + "parenleftbt", + "bracketlefttp", + "bracketleftex", + "bracketleftbt", + "bracelefttp", + "braceleftmid", + "braceleftbt", + "braceex", + NULL, + "angleright", + "integral", + "integraltp", + "integralex", + "integralbt", + "parenrighttp", + "parenrightex", + "parenrightbt", + "bracketrighttp", + "bracketrightex", + "bracketrightbt", + "bracerighttp", + "bracerightmid", + "bracerightbt", + NULL +}; + +char *zapfDingbatsEncoding[256] = { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + "space", + "a1", + "a2", + "a202", + "a3", + "a4", + "a5", + "a119", + "a118", + "a117", + "a11", + "a12", + "a13", + "a14", + "a15", + "a16", + "a105", + "a17", + "a18", + "a19", + "a20", + "a21", + "a22", + "a23", + "a24", + "a25", + "a26", + "a27", + "a28", + "a6", + "a7", + "a8", + "a9", + "a10", + "a29", + "a30", + "a31", + "a32", + "a33", + "a34", + "a35", + "a36", + "a37", + "a38", + "a39", + "a40", + "a41", + "a42", + "a43", + "a44", + "a45", + "a46", + "a47", + "a48", + "a49", + "a50", + "a51", + "a52", + "a53", + "a54", + "a55", + "a56", + "a57", + "a58", + "a59", + "a60", + "a61", + "a62", + "a63", + "a64", + "a65", + "a66", + "a67", + "a68", + "a69", + "a70", + "a71", + "a72", + "a73", + "a74", + "a203", + "a75", + "a204", + "a76", + "a77", + "a78", + "a79", + "a81", + "a82", + "a83", + "a84", + "a97", + "a98", + "a99", + "a100", + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + "a101", + "a102", + "a103", + "a104", + "a106", + "a107", + "a108", + "a112", + "a111", + "a110", + "a109", + "a120", + "a121", + "a122", + "a123", + "a124", + "a125", + "a126", + "a127", + "a128", + "a129", + "a130", + "a131", + "a132", + "a133", + "a134", + "a135", + "a136", + "a137", + "a138", + "a139", + "a140", + "a141", + "a142", + "a143", + "a144", + "a145", + "a146", + "a147", + "a148", + "a149", + "a150", + "a151", + "a152", + "a153", + "a154", + "a155", + "a156", + "a157", + "a158", + "a159", + "a160", + "a161", + "a163", + "a164", + "a196", + "a165", + "a192", + "a166", + "a167", + "a168", + "a169", + "a170", + "a171", + "a172", + "a173", + "a162", + "a174", + "a175", + "a176", + "a177", + "a178", + "a179", + "a193", + "a180", + "a199", + "a181", + "a200", + "a182", + NULL, + "a201", + "a183", + "a184", + "a197", + "a185", + "a194", + "a198", + "a186", + "a195", + "a187", + "a188", + "a189", + "a190", + "a191", + NULL +}; diff --git a/pdf/xpdf/FontEncodingTables.h b/pdf/xpdf/FontEncodingTables.h new file mode 100644 index 00000000..deee0a87 --- /dev/null +++ b/pdf/xpdf/FontEncodingTables.h @@ -0,0 +1,20 @@ +//======================================================================== +// +// FontEncodingTables.h +// +// Copyright 2001-2002 Glyph & Cog, LLC +// +//======================================================================== + +#ifndef FONTENCODINGTABLES_H +#define FONTENCODINGTABLES_H + +extern char *macRomanEncoding[]; +extern char *macExpertEncoding[]; +extern char *winAnsiEncoding[]; +extern char *standardEncoding[]; +extern char *expertEncoding[]; +extern char *symbolEncoding[]; +extern char *zapfDingbatsEncoding[]; + +#endif diff --git a/pdf/xpdf/FontFile.cc b/pdf/xpdf/FontFile.cc index 777b56a3..ae585470 100644 --- a/pdf/xpdf/FontFile.cc +++ b/pdf/xpdf/FontFile.cc @@ -2,7 +2,7 @@ // // FontFile.cc // -// Copyright 1999 Derek B. Noonburg +// Copyright 1999-2002 Glyph & Cog, LLC // //======================================================================== @@ -10,6 +10,7 @@ #pragma implementation #endif +#include #include #include #include @@ -17,18 +18,12 @@ #include #include "gmem.h" #include "Error.h" +#include "GlobalParams.h" +#include "CharCodeToUnicode.h" +#include "FontEncodingTables.h" #include "FontFile.h" -#include "StdFontInfo.h" -#include "CompactFontInfo.h" - -//------------------------------------------------------------------------ - -static Guint getWord(Guchar *ptr, int size); -static double getNum(Guchar **ptr, GBool *fp); -static char *getString(int sid, Guchar *stringIdxPtr, - Guchar *stringStartPtr, int stringOffSize, - char *buf); +#include "CompactFontTables.h" //------------------------------------------------------------------------ @@ -58,34 +53,46 @@ FontFile::~FontFile() { Type1FontFile::Type1FontFile(char *file, int len) { char *line, *line1, *p, *p2; + GBool haveEncoding; char buf[256]; char c; - int n, code, i; + int n, code, i, j; name = NULL; - encoding = NULL; - freeEnc = gTrue; + encoding = (char **)gmalloc(256 * sizeof(char *)); + for (i = 0; i < 256; ++i) { + encoding[i] = NULL; + } + haveEncoding = gFalse; - for (i = 1, line = file; i <= 100 && line < file + len && !encoding; ++i) { + for (i = 1, line = file; + i <= 100 && line < file + len && !haveEncoding; + ++i) { // get font name if (!strncmp(line, "/FontName", 9)) { strncpy(buf, line, 255); buf[255] = '\0'; if ((p = strchr(buf+9, '/')) && - (p = strtok(p+1, " \t\n\r"))) + (p = strtok(p+1, " \t\n\r"))) { name = copyString(p); + } line = nextLine(line, file + len); // get encoding } else if (!strncmp(line, "/Encoding StandardEncoding def", 30)) { - encoding = type1StdEncoding.copy(); + for (j = 0; j < 256; ++j) { + if (standardEncoding[j]) { + encoding[j] = copyString(standardEncoding[j]); + } + } + haveEncoding = gTrue; } else if (!strncmp(line, "/Encoding 256 array", 19)) { - encoding = new FontEncoding(); - for (i = 0; i < 300; ++i) { + for (j = 0; j < 300; ++j) { line1 = nextLine(line, file + len); - if ((n = line1 - line) > 255) + if ((n = line1 - line) > 255) { n = 255; + } strncpy(buf, line, n); buf[n] = '\0'; for (p = buf; *p == ' ' || *p == '\t'; ++p) ; @@ -102,7 +109,7 @@ Type1FontFile::Type1FontFile(char *file, int len) { ++p; for (p2 = p; *p2 && *p2 != ' ' && *p2 != '\t'; ++p2) ; *p2 = '\0'; - encoding->addChar(code, copyString(p)); + encoding[code] = copyString(p); } } } @@ -115,6 +122,7 @@ Type1FontFile::Type1FontFile(char *file, int len) { line = line1; } //~ check for getinterval/putinterval junk + haveEncoding = gTrue; } else { line = nextLine(line, file + len); @@ -123,77 +131,143 @@ Type1FontFile::Type1FontFile(char *file, int len) { } Type1FontFile::~Type1FontFile() { - if (name) - gfree(name); - if (encoding && freeEnc) - delete encoding; -} + int i; -FontEncoding *Type1FontFile::getEncoding(GBool taken) { - if (taken) - freeEnc = gFalse; - return encoding; + if (name) { + gfree(name); + } + for (i = 0; i < 256; ++i) { + gfree(encoding[i]); + } + gfree(encoding); } //------------------------------------------------------------------------ // Type1CFontFile //------------------------------------------------------------------------ -Type1CFontFile::Type1CFontFile(char *file, int len) { +struct Type1CTopDict { + int version; + int notice; + int copyright; + int fullName; + int familyName; + int weight; + int isFixedPitch; + double italicAngle; + double underlinePosition; + double underlineThickness; + int paintType; + int charstringType; + double fontMatrix[6]; + int uniqueID; + double fontBBox[4]; + double strokeWidth; + int charset; + int encoding; + int charStrings; + int privateSize; + int privateOffset; + + //----- CIDFont entries + int registry; + int ordering; + int supplement; + int fdArrayOffset; + int fdSelectOffset; +}; + +struct Type1CPrivateDict { + GString *dictData; + int subrsOffset; + double defaultWidthX; + GBool defaultWidthXFP; + double nominalWidthX; + GBool nominalWidthXFP; +}; + +Type1CFontFile::Type1CFontFile(char *fileA, int lenA) { + Guchar *nameIdxPtr, *idxPtr0, *idxPtr1; + + file = fileA; + len = lenA; + name = NULL; + encoding = NULL; + + // some tools embed Type 1C fonts with an extra whitespace char at + // the beginning + if (file[0] != '\x01') { + ++file; + } + + // read header + topOffSize = file[3] & 0xff; + + // read name index (first font only) + nameIdxPtr = (Guchar *)file + (file[2] & 0xff); + idxPtr0 = getIndexValPtr(nameIdxPtr, 0); + idxPtr1 = getIndexValPtr(nameIdxPtr, 1); + name = new GString((char *)idxPtr0, idxPtr1 - idxPtr0); + + topDictIdxPtr = getIndexEnd(nameIdxPtr); + stringIdxPtr = getIndexEnd(topDictIdxPtr); + gsubrIdxPtr = getIndexEnd(stringIdxPtr); +} + +Type1CFontFile::~Type1CFontFile() { + int i; + + delete name; + if (encoding) { + for (i = 0; i < 256; ++i) { + gfree(encoding[i]); + } + gfree(encoding); + } +} + +char *Type1CFontFile::getName() { + return name->getCString(); +} + +char **Type1CFontFile::getEncoding() { + if (!encoding) { + readNameAndEncoding(); + } + return encoding; +} + +void Type1CFontFile::readNameAndEncoding() { char buf[256]; - Guchar *topPtr, *idxStartPtr, *idxPtr0, *idxPtr1; - Guchar *stringIdxPtr, *stringStartPtr; - int topOffSize, idxOffSize, stringOffSize; - int nFonts, nStrings, nGlyphs; + Guchar *idxPtr0, *idxPtr1, *ptr; + int nGlyphs; int nCodes, nRanges, nLeft, nSups; Gushort *glyphNames; int charset, enc, charstrings; - int charsetFormat, encFormat; + int encFormat; int c, sid; - double op[48]; double x; GBool isFP; int key; - int i, j, n; - - name = NULL; - encoding = NULL; - freeEnc = gTrue; + int i, j; - // read header - topPtr = (Guchar *)file + (file[2] & 0xff); - topOffSize = file[3] & 0xff; + encoding = (char **)gmalloc(256 * sizeof(char *)); + for (i = 0; i < 256; ++i) { + encoding[i] = NULL; + } - // read name index (first font only) - nFonts = getWord(topPtr, 2); - idxOffSize = topPtr[2]; - topPtr += 3; - idxStartPtr = topPtr + (nFonts + 1) * idxOffSize - 1; - idxPtr0 = idxStartPtr + getWord(topPtr, idxOffSize); - idxPtr1 = idxStartPtr + getWord(topPtr + idxOffSize, idxOffSize); - if ((n = idxPtr1 - idxPtr0) > 255) - n = 255; - strncpy(buf, (char *)idxPtr0, n); - buf[n] = '\0'; - name = copyString(buf); - topPtr = idxStartPtr + getWord(topPtr + nFonts * idxOffSize, idxOffSize); - - // read top dict index (first font only) - nFonts = getWord(topPtr, 2); - idxOffSize = topPtr[2]; - topPtr += 3; - idxStartPtr = topPtr + (nFonts + 1) * idxOffSize - 1; - idxPtr0 = idxStartPtr + getWord(topPtr, idxOffSize); - idxPtr1 = idxStartPtr + getWord(topPtr + idxOffSize, idxOffSize); - charset = 0; - enc = 0; - charstrings = 0; + // read top dict (first font only) + idxPtr0 = getIndexValPtr(topDictIdxPtr, 0); + idxPtr1 = getIndexValPtr(topDictIdxPtr, 1); + charset = enc = charstrings = 0; i = 0; - while (idxPtr0 < idxPtr1) { - if (*idxPtr0 <= 27 || *idxPtr0 == 31) { - key = *idxPtr0++; - if (key == 0x0c) - key = (key << 8) | *idxPtr0++; + ptr = idxPtr0; + while (ptr < idxPtr1) { + if (*ptr <= 27 || *ptr == 31) { + key = *ptr++; + if (key == 0x0c) { + key = (key << 8) | *ptr++; + } if (key == 0x0f) { // charset charset = (int)op[0]; } else if (key == 0x10) { // encoding @@ -203,445 +277,130 @@ Type1CFontFile::Type1CFontFile(char *file, int len) { } i = 0; } else { - x = getNum(&idxPtr0, &isFP); - if (i < 48) + x = getNum(&ptr, &isFP); + if (i < 48) { op[i++] = x; + } } } - topPtr = idxStartPtr + getWord(topPtr + nFonts * idxOffSize, idxOffSize); - - // read string index - nStrings = getWord(topPtr, 2); - stringOffSize = topPtr[2]; - topPtr += 3; - stringIdxPtr = topPtr; - stringStartPtr = topPtr + (nStrings + 1) * stringOffSize - 1; - topPtr = stringStartPtr + getWord(topPtr + nStrings * stringOffSize, - stringOffSize); // get number of glyphs from charstrings index - topPtr = (Guchar *)file + charstrings; - nGlyphs = getWord(topPtr, 2); + nGlyphs = getIndexLen((Guchar *)file + charstrings); - // read charset - if (charset == 0) { - glyphNames = type1CISOAdobeCharset; - } else if (charset == 1) { - glyphNames = type1CExpertCharset; - } else if (charset == 2) { - glyphNames = type1CExpertSubsetCharset; - } else { - glyphNames = (Gushort *)gmalloc(nGlyphs * sizeof(Gushort)); - glyphNames[0] = 0; - topPtr = (Guchar *)file + charset; - charsetFormat = *topPtr++; - if (charsetFormat == 0) { - for (i = 1; i < nGlyphs; ++i) { - glyphNames[i] = getWord(topPtr, 2); - topPtr += 2; - } - } else if (charsetFormat == 1) { - i = 1; - while (i < nGlyphs) { - c = getWord(topPtr, 2); - topPtr += 2; - nLeft = *topPtr++; - for (j = 0; j <= nLeft; ++j) - glyphNames[i++] = c++; - } - } else if (charsetFormat == 2) { - i = 1; - while (i < nGlyphs) { - c = getWord(topPtr, 2); - topPtr += 2; - nLeft = getWord(topPtr, 2); - topPtr += 2; - for (j = 0; j <= nLeft; ++j) - glyphNames[i++] = c++; - } - } - } + // read charset (GID -> name mapping) + glyphNames = readCharset(charset, nGlyphs); - // read encoding (glyph -> code mapping) + // read encoding (GID -> code mapping) if (enc == 0) { - encoding = type1StdEncoding.copy(); + for (i = 0; i < 256; ++i) { + if (standardEncoding[i]) { + encoding[i] = copyString(standardEncoding[i]); + } + } } else if (enc == 1) { - encoding = type1ExpertEncoding.copy(); + for (i = 0; i < 256; ++i) { + if (expertEncoding[i]) { + encoding[i] = copyString(expertEncoding[i]); + } + } } else { - encoding = new FontEncoding(); - topPtr = (Guchar *)file + enc; - encFormat = *topPtr++; + ptr = (Guchar *)file + enc; + encFormat = *ptr++; if ((encFormat & 0x7f) == 0) { - nCodes = 1 + *topPtr++; + nCodes = 1 + *ptr++; if (nCodes > nGlyphs) { nCodes = nGlyphs; } for (i = 1; i < nCodes; ++i) { - c = *topPtr++; - getString(glyphNames[i], stringIdxPtr, stringStartPtr, - stringOffSize, buf); - encoding->addChar(c, copyString(buf)); + c = *ptr++; + encoding[c] = copyString(getString(glyphNames[i], buf)); } } else if ((encFormat & 0x7f) == 1) { - nRanges = *topPtr++; + nRanges = *ptr++; nCodes = 1; for (i = 0; i < nRanges; ++i) { - c = *topPtr++; - nLeft = *topPtr++; + c = *ptr++; + nLeft = *ptr++; for (j = 0; j <= nLeft && nCodes < nGlyphs; ++j) { - getString(glyphNames[nCodes], stringIdxPtr, stringStartPtr, - stringOffSize, buf); - encoding->addChar(c, copyString(buf)); + encoding[c] = copyString(getString(glyphNames[nCodes], buf)); ++nCodes; ++c; } } } if (encFormat & 0x80) { - nSups = *topPtr++; + nSups = *ptr++; for (i = 0; i < nSups; ++i) { - c = *topPtr++; - sid = getWord(topPtr, 2); - topPtr += 2; - getString(sid, stringIdxPtr, stringStartPtr, - stringOffSize, buf); - encoding->addChar(c, copyString(buf)); + c = *ptr++; + sid = getWord(ptr, 2); + ptr += 2; + encoding[c] = copyString(getString(sid, buf)); } } } - if (charset > 2) + if (charset > 2) { gfree(glyphNames); -} - -Type1CFontFile::~Type1CFontFile() { - if (name) - gfree(name); - if (encoding && freeEnc) - delete encoding; -} - -FontEncoding *Type1CFontFile::getEncoding(GBool taken) { - if (taken) - freeEnc = gFalse; - return encoding; -} - -static Guint getWord(Guchar *ptr, int size) { - Guint x; - int i; - - x = 0; - for (i = 0; i < size; ++i) - x = (x << 8) + *ptr++; - return x; -} - -static double getNum(Guchar **ptr, GBool *fp) { - static char nybChars[16] = "0123456789.ee -"; - int b0, b, nyb0, nyb1; - double x; - char buf[65]; - int i; - - x = 0; - *fp = gFalse; - b0 = (*ptr)[0]; - if (b0 < 28) { - x = 0; - } else if (b0 == 28) { - x = ((*ptr)[1] << 8) + (*ptr)[2]; - *ptr += 3; - } else if (b0 == 29) { - x = ((*ptr)[1] << 24) + ((*ptr)[2] << 16) + ((*ptr)[3] << 8) + (*ptr)[4]; - *ptr += 5; - } else if (b0 == 30) { - *ptr += 1; - i = 0; - do { - b = *(*ptr)++; - nyb0 = b >> 4; - nyb1 = b & 0x0f; - if (nyb0 == 0xf) - break; - buf[i++] = nybChars[nyb0]; - if (i == 64) - break; - if (nyb0 == 0xc) - buf[i++] = '-'; - if (i == 64) - break; - if (nyb1 == 0xf) - break; - buf[i++] = nybChars[nyb1]; - if (i == 64) - break; - if (nyb1 == 0xc) - buf[i++] = '-'; - } while (i < 64); - buf[i] = '\0'; - x = atof(buf); - *fp = gTrue; - } else if (b0 == 31) { - x = 0; - } else if (b0 < 247) { - x = b0 - 139; - *ptr += 1; - } else if (b0 < 251) { - x = ((b0 - 247) << 8) + (*ptr)[1] + 108; - *ptr += 2; - } else { - x = -((b0 - 251) << 8) - (*ptr)[1] - 108; - *ptr += 2; - } - return x; -} - -static char *getString(int sid, Guchar *stringIdxPtr, - Guchar *stringStartPtr, int stringOffSize, - char *buf) { - Guchar *idxPtr0, *idxPtr1; - int len; - - if (sid < 391) { - strcpy(buf, type1CStdStrings[sid]); - } else { - sid -= 391; - idxPtr0 = stringStartPtr + getWord(stringIdxPtr + sid * stringOffSize, - stringOffSize); - idxPtr1 = stringStartPtr + getWord(stringIdxPtr + (sid+1) * stringOffSize, - stringOffSize); - if ((len = idxPtr1 - idxPtr0) > 255) - len = 255; - strncpy(buf, (char *)idxPtr0, len); - buf[len] = '\0'; } - return buf; -} - -//------------------------------------------------------------------------ -// Type1CFontConverter -//------------------------------------------------------------------------ - -Type1CFontConverter::Type1CFontConverter(char *file, int len, FILE *out) { - this->file = file; - this->len = len; - this->out = out; - r1 = 55665; - line = 0; -} - -Type1CFontConverter::~Type1CFontConverter() { } -void Type1CFontConverter::convert() { - char *fontName; - struct { - int version; - int notice; - int copyright; - int fullName; - int familyName; - int weight; - int isFixedPitch; - double italicAngle; - double underlinePosition; - double underlineThickness; - int paintType; - int charstringType; //~ ??? - double fontMatrix[6]; - int uniqueID; - double fontBBox[4]; - double strokeWidth; //~ ??? - int charset; - int encoding; - int charStrings; - int privateSize; - int privateOffset; - } dict; +void Type1CFontFile::convertToType1(FILE *outA) { + Type1CTopDict dict; + Type1CPrivateDict privateDict; char buf[256], eBuf[256]; - Guchar *topPtr, *idxStartPtr, *idxPtr0, *idxPtr1; - Guchar *stringIdxPtr, *stringStartPtr; - int topOffSize, idxOffSize, stringOffSize; - int nFonts, nStrings, nGlyphs; - int nCodes, nRanges, nLeft, nSups; + Guchar *idxPtr0, *idxPtr1, *subrsIdxPtr, *charStringsIdxPtr, *ptr; + int nGlyphs, nCodes, nRanges, nLeft, nSups; Gushort *glyphNames; - int charsetFormat, encFormat; - int subrsOffset, nSubrs; - int nCharStrings; + int encFormat, nSubrs, nCharStrings; int c, sid; - double x; - GBool isFP; - int key; int i, j, n; - // read header - topPtr = (Guchar *)file + (file[2] & 0xff); - topOffSize = file[3] & 0xff; - - // read name (first font only) - nFonts = getWord(topPtr, 2); - idxOffSize = topPtr[2]; - topPtr += 3; - idxStartPtr = topPtr + (nFonts + 1) * idxOffSize - 1; - idxPtr0 = idxStartPtr + getWord(topPtr, idxOffSize); - idxPtr1 = idxStartPtr + getWord(topPtr + idxOffSize, idxOffSize); - if ((n = idxPtr1 - idxPtr0) > 255) - n = 255; - strncpy(buf, (char *)idxPtr0, n); - buf[n] = '\0'; - fontName = copyString(buf); - topPtr = idxStartPtr + getWord(topPtr + nFonts * idxOffSize, idxOffSize); + out = outA; // read top dict (first font only) - nFonts = getWord(topPtr, 2); - idxOffSize = topPtr[2]; - topPtr += 3; - idxStartPtr = topPtr + (nFonts + 1) * idxOffSize - 1; - idxPtr0 = idxStartPtr + getWord(topPtr, idxOffSize); - idxPtr1 = idxStartPtr + getWord(topPtr + idxOffSize, idxOffSize); - dict.version = 0; - dict.notice = 0; - dict.copyright = 0; - dict.fullName = 0; - dict.familyName = 0; - dict.weight = 0; - dict.isFixedPitch = 0; - dict.italicAngle = 0; - dict.underlinePosition = -100; - dict.underlineThickness = 50; - dict.paintType = 0; - dict.charstringType = 2; - dict.fontMatrix[0] = 0.001; - dict.fontMatrix[1] = 0; - dict.fontMatrix[2] = 0; - dict.fontMatrix[3] = 0.001; - dict.fontMatrix[4] = 0; - dict.fontMatrix[5] = 0; - dict.uniqueID = 0; - dict.fontBBox[0] = 0; - dict.fontBBox[1] = 0; - dict.fontBBox[2] = 0; - dict.fontBBox[3] = 0; - dict.strokeWidth = 0; - dict.charset = 0; - dict.encoding = 0; - dict.charStrings = 0; - dict.privateSize = 0; - dict.privateOffset = 0; - i = 0; - while (idxPtr0 < idxPtr1) { - if (*idxPtr0 <= 27 || *idxPtr0 == 31) { - key = *idxPtr0++; - if (key == 0x0c) - key = (key << 8) | *idxPtr0++; - switch (key) { - case 0x0000: dict.version = (int)op[0]; break; - case 0x0001: dict.notice = (int)op[0]; break; - case 0x0c00: dict.copyright = (int)op[0]; break; - case 0x0002: dict.fullName = (int)op[0]; break; - case 0x0003: dict.familyName = (int)op[0]; break; - case 0x0004: dict.weight = (int)op[0]; break; - case 0x0c01: dict.isFixedPitch = (int)op[0]; break; - case 0x0c02: dict.italicAngle = op[0]; break; - case 0x0c03: dict.underlinePosition = op[0]; break; - case 0x0c04: dict.underlineThickness = op[0]; break; - case 0x0c05: dict.paintType = (int)op[0]; break; - case 0x0c06: dict.charstringType = (int)op[0]; break; - case 0x0c07: dict.fontMatrix[0] = op[0]; - dict.fontMatrix[1] = op[1]; - dict.fontMatrix[2] = op[2]; - dict.fontMatrix[3] = op[3]; - dict.fontMatrix[4] = op[4]; - dict.fontMatrix[5] = op[5]; break; - case 0x000d: dict.uniqueID = (int)op[0]; break; - case 0x0005: dict.fontBBox[0] = op[0]; - dict.fontBBox[1] = op[1]; - dict.fontBBox[2] = op[2]; - dict.fontBBox[3] = op[3]; break; - case 0x0c08: dict.strokeWidth = op[0]; break; - case 0x000f: dict.charset = (int)op[0]; break; - case 0x0010: dict.encoding = (int)op[0]; break; - case 0x0011: dict.charStrings = (int)op[0]; break; - case 0x0012: dict.privateSize = (int)op[0]; - dict.privateOffset = (int)op[1]; break; - } - i = 0; - } else { - x = getNum(&idxPtr0, &isFP); - if (i < 48) { - op[i] = x; - fp[i++] = isFP; - } - } - } - topPtr = idxStartPtr + getWord(topPtr + nFonts * idxOffSize, idxOffSize); - - // read string index - nStrings = getWord(topPtr, 2); - stringOffSize = topPtr[2]; - topPtr += 3; - stringIdxPtr = topPtr; - stringStartPtr = topPtr + (nStrings + 1) * stringOffSize - 1; - topPtr = stringStartPtr + getWord(topPtr + nStrings * stringOffSize, - stringOffSize); + readTopDict(&dict); -#if 1 //~ // get global subrs - int nGSubrs; - int gSubrOffSize; - - nGSubrs = getWord(topPtr, 2); - gSubrOffSize = topPtr[2]; - topPtr += 3; -#endif + //~ ... global subrs are unimplemented // write header and font dictionary, up to encoding - fprintf(out, "%%!FontType1-1.0: %s", fontName); + fprintf(out, "%%!FontType1-1.0: %s", name->getCString()); if (dict.version != 0) { - fprintf(out, "%s", - getString(dict.version, stringIdxPtr, stringStartPtr, - stringOffSize, buf)); + fprintf(out, "%s", getString(dict.version, buf)); } fprintf(out, "\n"); fprintf(out, "11 dict begin\n"); fprintf(out, "/FontInfo 10 dict dup begin\n"); if (dict.version != 0) { fprintf(out, "/version (%s) readonly def\n", - getString(dict.version, stringIdxPtr, stringStartPtr, - stringOffSize, buf)); + getString(dict.version, buf)); } if (dict.notice != 0) { fprintf(out, "/Notice (%s) readonly def\n", - getString(dict.notice, stringIdxPtr, stringStartPtr, - stringOffSize, buf)); + getString(dict.notice, buf)); } if (dict.copyright != 0) { fprintf(out, "/Copyright (%s) readonly def\n", - getString(dict.copyright, stringIdxPtr, stringStartPtr, - stringOffSize, buf)); + getString(dict.copyright, buf)); } if (dict.fullName != 0) { fprintf(out, "/FullName (%s) readonly def\n", - getString(dict.fullName, stringIdxPtr, stringStartPtr, - stringOffSize, buf)); + getString(dict.fullName, buf)); } if (dict.familyName != 0) { fprintf(out, "/FamilyName (%s) readonly def\n", - getString(dict.familyName, stringIdxPtr, stringStartPtr, - stringOffSize, buf)); + getString(dict.familyName, buf)); } if (dict.weight != 0) { fprintf(out, "/Weight (%s) readonly def\n", - getString(dict.weight, stringIdxPtr, stringStartPtr, - stringOffSize, buf)); + getString(dict.weight, buf)); } fprintf(out, "/isFixedPitch %s def\n", dict.isFixedPitch ? "true" : "false"); fprintf(out, "/ItalicAngle %g def\n", dict.italicAngle); fprintf(out, "/UnderlinePosition %g def\n", dict.underlinePosition); fprintf(out, "/UnderlineThickness %g def\n", dict.underlineThickness); fprintf(out, "end readonly def\n"); - fprintf(out, "/FontName /%s def\n", fontName); + fprintf(out, "/FontName /%s def\n", name->getCString()); fprintf(out, "/PaintType %d def\n", dict.paintType); fprintf(out, "/FontType 1 def\n"); fprintf(out, "/FontMatrix [%g %g %g %g %g %g] readonly def\n", @@ -650,52 +409,16 @@ void Type1CFontConverter::convert() { fprintf(out, "/FontBBox [%g %g %g %g] readonly def\n", dict.fontBBox[0], dict.fontBBox[1], dict.fontBBox[2], dict.fontBBox[3]); + fprintf(out, "/StrokeWidth %g def\n", dict.strokeWidth); if (dict.uniqueID != 0) { fprintf(out, "/UniqueID %d def\n", dict.uniqueID); } // get number of glyphs from charstrings index - topPtr = (Guchar *)file + dict.charStrings; - nGlyphs = getWord(topPtr, 2); + nGlyphs = getIndexLen((Guchar *)file + dict.charStrings); // read charset - if (dict.charset == 0) { - glyphNames = type1CISOAdobeCharset; - } else if (dict.charset == 1) { - glyphNames = type1CExpertCharset; - } else if (dict.charset == 2) { - glyphNames = type1CExpertSubsetCharset; - } else { - glyphNames = (Gushort *)gmalloc(nGlyphs * sizeof(Gushort)); - glyphNames[0] = 0; - topPtr = (Guchar *)file + dict.charset; - charsetFormat = *topPtr++; - if (charsetFormat == 0) { - for (i = 1; i < nGlyphs; ++i) { - glyphNames[i] = getWord(topPtr, 2); - topPtr += 2; - } - } else if (charsetFormat == 1) { - i = 1; - while (i < nGlyphs) { - c = getWord(topPtr, 2); - topPtr += 2; - nLeft = *topPtr++; - for (j = 0; j <= nLeft; ++j) - glyphNames[i++] = c++; - } - } else if (charsetFormat == 2) { - i = 1; - while (i < nGlyphs) { - c = getWord(topPtr, 2); - topPtr += 2; - nLeft = getWord(topPtr, 2); - topPtr += 2; - for (j = 0; j <= nLeft; ++j) - glyphNames[i++] = c++; - } - } - } + glyphNames = readCharset(dict.charset, nGlyphs); // read encoding (glyph -> code mapping), write Type 1 encoding fprintf(out, "/Encoding "); @@ -706,54 +429,55 @@ void Type1CFontConverter::convert() { fprintf(out, "0 1 255 {1 index exch /.notdef put} for\n"); if (dict.encoding == 1) { for (i = 0; i < 256; ++i) { - if (type1ExpertEncodingNames[i]) - fprintf(out, "dup %d /%s put\n", i, type1ExpertEncodingNames[i]); + if (expertEncoding[i]) { + fprintf(out, "dup %d /%s put\n", i, expertEncoding[i]); + } } } else { - topPtr = (Guchar *)file + dict.encoding; - encFormat = *topPtr++; + ptr = (Guchar *)file + dict.encoding; + encFormat = *ptr++; if ((encFormat & 0x7f) == 0) { - nCodes = 1 + *topPtr++; + nCodes = 1 + *ptr++; if (nCodes > nGlyphs) { nCodes = nGlyphs; } for (i = 1; i < nCodes; ++i) { - c = *topPtr++; - fprintf(out, "dup %d /%s put\n", c, - getString(glyphNames[i], stringIdxPtr, stringStartPtr, - stringOffSize, buf)); + c = *ptr++; + fprintf(out, "dup %d /%s put\n", + c, getString(glyphNames[i], buf)); } } else if ((encFormat & 0x7f) == 1) { - nRanges = *topPtr++; + nRanges = *ptr++; nCodes = 1; for (i = 0; i < nRanges; ++i) { - c = *topPtr++; - nLeft = *topPtr++; + c = *ptr++; + nLeft = *ptr++; for (j = 0; j <= nLeft && nCodes < nGlyphs; ++j) { - fprintf(out, "dup %d /%s put\n", c, - getString(glyphNames[nCodes], stringIdxPtr, stringStartPtr, - stringOffSize, buf)); + fprintf(out, "dup %d /%s put\n", + c, getString(glyphNames[nCodes], buf)); ++nCodes; ++c; } } } if (encFormat & 0x80) { - nSups = *topPtr++; + nSups = *ptr++; for (i = 0; i < nSups; ++i) { - c = *topPtr++; - sid = getWord(topPtr, 2); - topPtr += 2; - fprintf(out, "dup %d /%s put\n", c, - getString(sid, stringIdxPtr, stringStartPtr, - stringOffSize, buf)); + c = *ptr++; + sid = getWord(ptr, 2); + ptr += 2; + fprintf(out, "dup %d /%s put\n", c, getString(sid, buf)); } } } fprintf(out, "readonly def\n"); } fprintf(out, "currentdict end\n"); + + // start the binary section fprintf(out, "currentfile eexec\n"); + r1 = 55665; + line = 0; // get private dictionary eexecWrite("\x83\xca\x73\xd5"); @@ -762,128 +486,31 @@ void Type1CFontConverter::convert() { eexecWrite("/ND {noaccess def} executeonly def\n"); eexecWrite("/NP {noaccess put} executeonly def\n"); eexecWrite("/MinFeature {16 16} ND\n"); - eexecWrite("/password 5839 def\n"); - subrsOffset = 0; - defaultWidthX = 0; - nominalWidthX = 0; - topPtr = (Guchar *)file + dict.privateOffset; - idxPtr0 = topPtr; - idxPtr1 = idxPtr0 + dict.privateSize; - i = 0; - while (idxPtr0 < idxPtr1) { - if (*idxPtr0 <= 27 || *idxPtr0 == 31) { - key = *idxPtr0++; - if (key == 0x0c) - key = (key << 8) | *idxPtr0++; - switch (key) { - case 0x0006: - getDeltaInt(eBuf, "BlueValues", op, i); - eexecWrite(eBuf); - break; - case 0x0007: - getDeltaInt(eBuf, "OtherBlues", op, i); - eexecWrite(eBuf); - break; - case 0x0008: - getDeltaInt(eBuf, "FamilyBlues", op, i); - eexecWrite(eBuf); - break; - case 0x0009: - getDeltaInt(eBuf, "FamilyOtherBlues", op, i); - eexecWrite(eBuf); - break; - case 0x0c09: - sprintf(eBuf, "/BlueScale %g def\n", op[0]); - eexecWrite(eBuf); - break; - case 0x0c0a: - sprintf(eBuf, "/BlueShift %d def\n", (int)op[0]); - eexecWrite(eBuf); - break; - case 0x0c0b: - sprintf(eBuf, "/BlueFuzz %d def\n", (int)op[0]); - eexecWrite(eBuf); - break; - case 0x000a: - sprintf(eBuf, "/StdHW [%g] def\n", op[0]); - eexecWrite(eBuf); - break; - case 0x000b: - sprintf(eBuf, "/StdVW [%g] def\n", op[0]); - eexecWrite(eBuf); - break; - case 0x0c0c: - getDeltaReal(eBuf, "StemSnapH", op, i); - eexecWrite(eBuf); - break; - case 0x0c0d: - getDeltaReal(eBuf, "StemSnapV", op, i); - eexecWrite(eBuf); - break; - case 0x0c0e: - sprintf(eBuf, "/ForceBold %s def\n", op[0] ? "true" : "false"); - eexecWrite(eBuf); - break; - case 0x0c0f: - sprintf(eBuf, "/ForceBoldThreshold %g def\n", op[0]); - eexecWrite(eBuf); - break; - case 0x0c11: - sprintf(eBuf, "/LanguageGroup %d def\n", (int)op[0]); - eexecWrite(eBuf); - break; - case 0x0c12: - sprintf(eBuf, "/ExpansionFactor %g def\n", op[0]); - eexecWrite(eBuf); - break; - case 0x0c13: - error(-1, "Got Type 1C InitialRandomSeed"); - break; - case 0x0013: - subrsOffset = (int)op[0]; - break; - case 0x0014: - defaultWidthX = op[0]; - defaultWidthXFP = fp[0]; - break; - case 0x0015: - nominalWidthX = op[0]; - nominalWidthXFP = fp[0]; - break; - default: - error(-1, "Uknown Type 1C private dict entry %04x", key); - break; - } - i = 0; - } else { - x = getNum(&idxPtr0, &isFP); - if (i < 48) { - op[i] = x; - fp[i++] = isFP; - } - } - } + readPrivateDict(&privateDict, dict.privateOffset, dict.privateSize); + eexecWrite(privateDict.dictData->getCString()); + defaultWidthX = privateDict.defaultWidthX; + defaultWidthXFP = privateDict.defaultWidthXFP; + nominalWidthX = privateDict.nominalWidthX; + nominalWidthXFP = privateDict.nominalWidthXFP; // get subrs - if (subrsOffset != 0) { - topPtr += subrsOffset; - nSubrs = getWord(topPtr, 2); - idxOffSize = topPtr[2]; - topPtr += 3; + if (privateDict.subrsOffset != 0) { + subrsIdxPtr = (Guchar *)file + dict.privateOffset + + privateDict.subrsOffset; + nSubrs = getIndexLen(subrsIdxPtr); sprintf(eBuf, "/Subrs %d array\n", nSubrs); eexecWrite(eBuf); - idxStartPtr = topPtr + (nSubrs + 1) * idxOffSize - 1; - idxPtr1 = idxStartPtr + getWord(topPtr, idxOffSize); + idxPtr1 = getIndexValPtr(subrsIdxPtr, 0); for (i = 0; i < nSubrs; ++i) { idxPtr0 = idxPtr1; - idxPtr1 = idxStartPtr + getWord(topPtr + (i+1)*idxOffSize, idxOffSize); + idxPtr1 = getIndexValPtr(subrsIdxPtr, i+1); n = idxPtr1 - idxPtr0; -#if 1 //~ +#if 1 //~ Type 2 subrs are unimplemented error(-1, "Unimplemented Type 2 subrs"); #else sprintf(eBuf, "dup %d %d RD ", i, n); eexecWrite(eBuf); - cvtGlyph(idxPtr0, n); + eexecCvtGlyph(idxPtr0, n); eexecWrite(" NP\n"); #endif } @@ -891,21 +518,16 @@ void Type1CFontConverter::convert() { } // get CharStrings - topPtr = (Guchar *)file + dict.charStrings; - nCharStrings = getWord(topPtr, 2); - idxOffSize = topPtr[2]; - topPtr += 3; + charStringsIdxPtr = (Guchar *)file + dict.charStrings; + nCharStrings = getIndexLen(charStringsIdxPtr); sprintf(eBuf, "2 index /CharStrings %d dict dup begin\n", nCharStrings); eexecWrite(eBuf); - idxStartPtr = topPtr + (nCharStrings + 1) * idxOffSize - 1; - idxPtr1 = idxStartPtr + getWord(topPtr, idxOffSize); + idxPtr1 = getIndexValPtr(charStringsIdxPtr, 0); for (i = 0; i < nCharStrings; ++i) { idxPtr0 = idxPtr1; - idxPtr1 = idxStartPtr + getWord(topPtr + (i+1)*idxOffSize, idxOffSize); + idxPtr1 = getIndexValPtr(charStringsIdxPtr, i+1); n = idxPtr1 - idxPtr0; - cvtGlyph(getString(glyphNames[i], stringIdxPtr, stringStartPtr, - stringOffSize, buf), - idxPtr0, n); + eexecCvtGlyph(getString(glyphNames[i], buf), idxPtr0, n); } eexecWrite("end\n"); eexecWrite("end\n"); @@ -915,719 +537,3145 @@ void Type1CFontConverter::convert() { eexecWrite("mark currentfile closefile\n"); // trailer - if (line > 0) + if (line > 0) { fputc('\n', out); + } for (i = 0; i < 8; ++i) { fprintf(out, "0000000000000000000000000000000000000000000000000000000000000000\n"); } fprintf(out, "cleartomark\n"); // clean up - if (dict.charset > 2) + delete privateDict.dictData; + if (dict.charset > 2) { gfree(glyphNames); - gfree(fontName); + } } -void Type1CFontConverter::eexecWrite(char *s) { - Guchar *p; - Guchar x; +void Type1CFontFile::convertToCIDType0(char *psName, FILE *outA) { + Type1CTopDict dict; + Type1CPrivateDict *privateDicts; + GString *charStrings; + int *charStringOffsets; + Gushort *charset; + int *cidMap; + Guchar *fdSelect; + Guchar *charStringsIdxPtr, *fdArrayIdx, *idxPtr0, *idxPtr1, *ptr; + char buf[256]; + int nGlyphs, nCIDs, gdBytes, nFDs; + int fdSelectFmt, nRanges, gid0, gid1, fd, offset; + int key; + double x; + GBool isFP; + int i, j, k, n; - for (p = (Guchar *)s; *p; ++p) { - x = *p ^ (r1 >> 8); - r1 = (x + r1) * 52845 + 22719; - fputc(hexChars[x >> 4], out); - fputc(hexChars[x & 0x0f], out); - line += 2; - if (line == 64) { - fputc('\n', out); - line = 0; + out = outA; + + fprintf(out, "/CIDInit /ProcSet findresource begin\n"); + + // read top dict (first font only) + readTopDict(&dict); + + // read the FDArray dictionaries and Private dictionaries + if (dict.fdArrayOffset == 0) { + nFDs = 1; + privateDicts = (Type1CPrivateDict *) + gmalloc(nFDs * sizeof(Type1CPrivateDict)); + privateDicts[0].dictData = new GString(); + privateDicts[0].subrsOffset = 0; + privateDicts[0].defaultWidthX = 0; + privateDicts[0].defaultWidthXFP = gFalse; + privateDicts[0].nominalWidthX = 0; + privateDicts[0].nominalWidthXFP = gFalse; + } else { + fdArrayIdx = (Guchar *)file + dict.fdArrayOffset; + nFDs = getIndexLen(fdArrayIdx); + privateDicts = (Type1CPrivateDict *) + gmalloc(nFDs * sizeof(Type1CPrivateDict)); + idxPtr1 = getIndexValPtr(fdArrayIdx, 0); + for (i = 0; i < nFDs; ++i) { + privateDicts[i].dictData = NULL; + idxPtr0 = idxPtr1; + idxPtr1 = getIndexValPtr(fdArrayIdx, i + 1); + ptr = idxPtr0; + j = 0; + while (ptr < idxPtr1) { + if (*ptr <= 27 || *ptr == 31) { + key = *ptr++; + if (key == 0x0c) { + key = (key << 8) | *ptr++; + } + if (key == 0x0012) { + readPrivateDict(&privateDicts[i], (int)op[1], (int)op[0]); + } + j = 0; + } else { + x = getNum(&ptr, &isFP); + if (j < 48) { + op[j] = x; + fp[j++] = isFP; + } + } + } + if (!privateDicts[i].dictData) { + privateDicts[i].dictData = new GString(); + privateDicts[i].subrsOffset = 0; + privateDicts[i].defaultWidthX = 0; + privateDicts[i].defaultWidthXFP = gFalse; + privateDicts[i].nominalWidthX = 0; + privateDicts[i].nominalWidthXFP = gFalse; + } + } + } + + // get the glyph count + charStringsIdxPtr = (Guchar *)file + dict.charStrings; + nGlyphs = getIndexLen(charStringsIdxPtr); + + // read the FDSelect table + fdSelect = (Guchar *)gmalloc(nGlyphs); + if (dict.fdSelectOffset == 0) { + for (i = 0; i < nGlyphs; ++i) { + fdSelect[i] = 0; + } + } else { + ptr = (Guchar *)file + dict.fdSelectOffset; + fdSelectFmt = *ptr++; + if (fdSelectFmt == 0) { + memcpy(fdSelect, ptr, nGlyphs); + } else if (fdSelectFmt == 3) { + nRanges = getWord(ptr, 2); + ptr += 2; + gid0 = getWord(ptr, 2); + ptr += 2; + for (i = 1; i <= nRanges; ++i) { + fd = *ptr++; + gid1 = getWord(ptr, 2); + ptr += 2; + for (j = gid0; j < gid1; ++j) { + fdSelect[j] = fd; + } + gid0 = gid1; + } + } else { + error(-1, "Unknown FDSelect table format in CID font"); + for (i = 0; i < nGlyphs; ++i) { + fdSelect[i] = 0; + } + } + } + + // read the charset, compute the CID-to-GID mapping + charset = readCharset(dict.charset, nGlyphs); + nCIDs = 0; + for (i = 0; i < nGlyphs; ++i) { + if (charset[i] >= nCIDs) { + nCIDs = charset[i] + 1; + } + } + cidMap = (int *)gmalloc(nCIDs * sizeof(int)); + for (i = 0; i < nCIDs; ++i) { + cidMap[i] = -1; + } + for (i = 0; i < nGlyphs; ++i) { + cidMap[charset[i]] = i; + } + + // build the charstrings + charStrings = new GString(); + charStringOffsets = (int *)gmalloc((nCIDs + 1) * sizeof(int)); + for (i = 0; i < nCIDs; ++i) { + charStringOffsets[i] = charStrings->getLength(); + if (cidMap[i] >= 0) { + idxPtr0 = getIndexValPtr(charStringsIdxPtr, cidMap[i]); + idxPtr1 = getIndexValPtr(charStringsIdxPtr, cidMap[i]+1); + n = idxPtr1 - idxPtr0; + j = fdSelect[cidMap[i]]; + defaultWidthX = privateDicts[j].defaultWidthX; + defaultWidthXFP = privateDicts[j].defaultWidthXFP; + nominalWidthX = privateDicts[j].nominalWidthX; + nominalWidthXFP = privateDicts[j].nominalWidthXFP; + cvtGlyph(idxPtr0, n); + charStrings->append(charBuf); + delete charBuf; + } + } + charStringOffsets[nCIDs] = charStrings->getLength(); + + // compute gdBytes = number of bytes needed for charstring offsets + // (offset size needs to account for the charstring offset table, + // with a worst case of five bytes per entry, plus the charstrings + // themselves) + i = (nCIDs + 1) * 5 + charStrings->getLength(); + if (i < 0x100) { + gdBytes = 1; + } else if (i < 0x10000) { + gdBytes = 2; + } else if (i < 0x1000000) { + gdBytes = 3; + } else { + gdBytes = 4; + } + + // begin the font dictionary + fprintf(out, "20 dict begin\n"); + fprintf(out, "/CIDFontName /%s def\n", psName); + fprintf(out, "/CIDFontType 0 def\n"); + fprintf(out, "/CIDSystemInfo 3 dict dup begin\n"); + if (dict.registry > 0 && dict.ordering > 0) { + fprintf(out, " /Registry (%s) def\n", getString(dict.registry, buf)); + fprintf(out, " /Ordering (%s) def\n", getString(dict.ordering, buf)); + } else { + fprintf(out, " /Registry (Adobe) def\n"); + fprintf(out, " /Ordering (Identity) def\n"); + } + fprintf(out, " /Supplement %d def\n", dict.supplement); + fprintf(out, "end def\n"); + fprintf(out, "/FontMatrix [%g %g %g %g %g %g] def\n", + dict.fontMatrix[0], dict.fontMatrix[1], dict.fontMatrix[2], + dict.fontMatrix[3], dict.fontMatrix[4], dict.fontMatrix[5]); + fprintf(out, "/FontBBox [%g %g %g %g] def\n", + dict.fontBBox[0], dict.fontBBox[1], + dict.fontBBox[2], dict.fontBBox[3]); + fprintf(out, "/FontInfo 1 dict dup begin\n"); + fprintf(out, " /FSType 8 def\n"); + fprintf(out, "end def\n"); + + // CIDFont-specific entries + fprintf(out, "/CIDCount %d def\n", nCIDs); + fprintf(out, "/FDBytes 1 def\n"); + fprintf(out, "/GDBytes %d def\n", gdBytes); + fprintf(out, "/CIDMapOffset 0 def\n"); + if (dict.paintType != 0) { + fprintf(out, "/PaintType %d def\n", dict.paintType); + fprintf(out, "/StrokeWidth %g def\n", dict.strokeWidth); + } + + // FDArray entry + fprintf(out, "/FDArray %d array\n", nFDs); + for (i = 0; i < nFDs; ++i) { + fprintf(out, "dup %d 10 dict begin\n", i); + fprintf(out, "/FontType 1 def\n"); + fprintf(out, "/FontMatrix [1 0 0 1 0 0] def\n"); + fprintf(out, "/PaintType %d def\n", dict.paintType); + fprintf(out, "/Private 32 dict begin\n"); + fwrite(privateDicts[i].dictData->getCString(), 1, + privateDicts[i].dictData->getLength(), out); + fprintf(out, "currentdict end def\n"); + fprintf(out, "currentdict end put\n"); + } + fprintf(out, "def\n"); + + //~ need to deal with subrs + + // start the binary section + offset = (nCIDs + 1) * (1 + gdBytes); + fprintf(out, "(Hex) %d StartData\n", + offset + charStrings->getLength()); + + // write the charstring offset (CIDMap) table + for (i = 0; i <= nCIDs; i += 6) { + for (j = 0; j < 6 && i+j <= nCIDs; ++j) { + if (cidMap[i+j] >= 0) { + buf[0] = (char)fdSelect[cidMap[i+j]]; + } else { + buf[0] = (char)0; + } + n = offset + charStringOffsets[i+j]; + for (k = gdBytes; k >= 1; --k) { + buf[k] = (char)(n & 0xff); + n >>= 8; + } + for (k = 0; k <= gdBytes; ++k) { + fprintf(out, "%02x", buf[k] & 0xff); + } + } + fputc('\n', out); + } + + // write the charstring data + n = charStrings->getLength(); + for (i = 0; i < n; i += 32) { + for (j = 0; j < 32 && i+j < n; ++j) { + fprintf(out, "%02x", charStrings->getChar(i+j) & 0xff); + } + if (i + 32 >= n) { + fputc('>', out); } + fputc('\n', out); + } + + for (i = 0; i < nFDs; ++i) { + delete privateDicts[i].dictData; } + gfree(privateDicts); + gfree(cidMap); + gfree(charset); + gfree(charStringOffsets); + delete charStrings; + gfree(fdSelect); } -void Type1CFontConverter::cvtGlyph(char *name, Guchar *s, int n) { - int nHints; - int x; - GBool first = gTrue; +void Type1CFontFile::convertToType0(char *psName, FILE *outA) { + Type1CTopDict dict; + Type1CPrivateDict *privateDicts; + Gushort *charset; + int *cidMap; + Guchar *fdSelect; + Guchar *charStringsIdxPtr, *fdArrayIdx, *idxPtr0, *idxPtr1, *ptr; + char buf[256]; char eBuf[256]; - double d, dx, dy; - GBool dFP; - int i, k; + int nGlyphs, nCIDs, nFDs; + int fdSelectFmt, nRanges, gid0, gid1, fd; + int key; + double x; + GBool isFP; + int i, j, n; - charBuf = new GString(); - charBuf->append((char)73); - charBuf->append((char)58); - charBuf->append((char)147); - charBuf->append((char)134); + out = outA; - i = 0; - nOps = 0; - nHints = 0; - while (i < n) { - if (s[i] == 12) { - switch (s[i+1]) { - case 0: // dotsection (should be Type 1 only?) - //~ ignored - break; - case 34: // hflex - if (nOps != 7) { - error(-1, "Wrong number of args (%d) to Type 2 hflex", nOps); - } - eexecDumpNum(op[0], fp[0]); - eexecDumpNum(0, gFalse); - eexecDumpNum(op[1], fp[1]); - eexecDumpNum(op[2], fp[2]); - eexecDumpNum(op[3], fp[3]); - eexecDumpNum(0, gFalse); - eexecDumpOp1(8); - eexecDumpNum(op[4], fp[4]); - eexecDumpNum(0, gFalse); - eexecDumpNum(op[5], fp[5]); - eexecDumpNum(-op[2], fp[2]); - eexecDumpNum(op[6], fp[6]); - eexecDumpNum(0, gFalse); - eexecDumpOp1(8); - break; - case 35: // flex - if (nOps != 13) { - error(-1, "Wrong number of args (%d) to Type 2 flex", nOps); - } - eexecDumpNum(op[0], fp[0]); - eexecDumpNum(op[1], fp[1]); - eexecDumpNum(op[2], fp[2]); - eexecDumpNum(op[3], fp[3]); - eexecDumpNum(op[4], fp[4]); - eexecDumpNum(op[5], fp[5]); - eexecDumpOp1(8); - eexecDumpNum(op[6], fp[6]); - eexecDumpNum(op[7], fp[7]); - eexecDumpNum(op[8], fp[8]); - eexecDumpNum(op[9], fp[9]); - eexecDumpNum(op[10], fp[10]); - eexecDumpNum(op[11], fp[11]); - eexecDumpOp1(8); - break; - case 36: // hflex1 - if (nOps != 9) { - error(-1, "Wrong number of args (%d) to Type 2 hflex1", nOps); - } - eexecDumpNum(op[0], fp[0]); - eexecDumpNum(op[1], fp[1]); - eexecDumpNum(op[2], fp[2]); - eexecDumpNum(op[3], fp[3]); - eexecDumpNum(op[4], fp[4]); - eexecDumpNum(0, gFalse); - eexecDumpOp1(8); - eexecDumpNum(op[5], fp[5]); - eexecDumpNum(0, gFalse); - eexecDumpNum(op[6], fp[6]); - eexecDumpNum(op[7], fp[7]); - eexecDumpNum(op[8], fp[8]); - eexecDumpNum(-(op[1] + op[3] + op[7]), fp[1] | fp[3] | fp[7]); - eexecDumpOp1(8); - break; - case 37: // flex1 - if (nOps != 11) { - error(-1, "Wrong number of args (%d) to Type 2 flex1", nOps); - } - eexecDumpNum(op[0], fp[0]); - eexecDumpNum(op[1], fp[1]); - eexecDumpNum(op[2], fp[2]); - eexecDumpNum(op[3], fp[3]); - eexecDumpNum(op[4], fp[4]); - eexecDumpNum(op[5], fp[5]); - eexecDumpOp1(8); - eexecDumpNum(op[6], fp[6]); - eexecDumpNum(op[7], fp[7]); - eexecDumpNum(op[8], fp[8]); - eexecDumpNum(op[9], fp[9]); - dx = op[0] + op[2] + op[4] + op[6] + op[8]; - dy = op[1] + op[3] + op[5] + op[7] + op[9]; - if (fabs(dx) > fabs(dy)) { - eexecDumpNum(op[10], fp[10]); - eexecDumpNum(-dy, fp[1] | fp[3] | fp[5] | fp[7] | fp[9]); + // read top dict (first font only) + readTopDict(&dict); + + // read the FDArray dictionaries and Private dictionaries + if (dict.fdArrayOffset == 0) { + nFDs = 1; + privateDicts = (Type1CPrivateDict *) + gmalloc(nFDs * sizeof(Type1CPrivateDict)); + privateDicts[0].dictData = new GString(); + privateDicts[0].subrsOffset = 0; + privateDicts[0].defaultWidthX = 0; + privateDicts[0].defaultWidthXFP = gFalse; + privateDicts[0].nominalWidthX = 0; + privateDicts[0].nominalWidthXFP = gFalse; + } else { + fdArrayIdx = (Guchar *)file + dict.fdArrayOffset; + nFDs = getIndexLen(fdArrayIdx); + privateDicts = (Type1CPrivateDict *) + gmalloc(nFDs * sizeof(Type1CPrivateDict)); + idxPtr1 = getIndexValPtr(fdArrayIdx, 0); + for (i = 0; i < nFDs; ++i) { + privateDicts[i].dictData = NULL; + idxPtr0 = idxPtr1; + idxPtr1 = getIndexValPtr(fdArrayIdx, i + 1); + ptr = idxPtr0; + j = 0; + while (ptr < idxPtr1) { + if (*ptr <= 27 || *ptr == 31) { + key = *ptr++; + if (key == 0x0c) { + key = (key << 8) | *ptr++; + } + if (key == 0x0012) { + readPrivateDict(&privateDicts[i], (int)op[1], (int)op[0]); + } + j = 0; } else { - eexecDumpNum(-dx, fp[0] | fp[2] | fp[4] | fp[6] | fp[8]); - eexecDumpNum(op[10], fp[10]); + x = getNum(&ptr, &isFP); + if (j < 48) { + op[j] = x; + fp[j++] = isFP; + } } - eexecDumpOp1(8); - break; - case 3: // and - case 4: // or - case 5: // not - case 8: // store - case 9: // abs - case 10: // add - case 11: // sub - case 12: // div - case 13: // load - case 14: // neg - case 15: // eq - case 18: // drop - case 20: // put - case 21: // get - case 22: // ifelse - case 23: // random - case 24: // mul - case 26: // sqrt - case 27: // dup - case 28: // exch - case 29: // index - case 30: // roll - error(-1, "Unimplemented Type 2 charstring op: 12.%d", s[i+1]); - break; - default: - error(-1, "Illegal Type 2 charstring op: 12.%d", s[i+1]); - break; } - i += 2; - nOps = 0; - } else if (s[i] == 19) { // hintmask - //~ ignored - if (first) { - cvtGlyphWidth(nOps == 1); - first = gFalse; + if (!privateDicts[i].dictData) { + privateDicts[i].dictData = new GString(); + privateDicts[i].subrsOffset = 0; + privateDicts[i].defaultWidthX = 0; + privateDicts[i].defaultWidthXFP = gFalse; + privateDicts[i].nominalWidthX = 0; + privateDicts[i].nominalWidthXFP = gFalse; } - if (nOps > 0) { - if (nOps & 1) { - error(-1, "Wrong number of args (%d) to Type 2 hintmask/vstemhm", - nOps); + } + } + + // get the glyph count + charStringsIdxPtr = (Guchar *)file + dict.charStrings; + nGlyphs = getIndexLen(charStringsIdxPtr); + + // read the FDSelect table + fdSelect = (Guchar *)gmalloc(nGlyphs); + if (dict.fdSelectOffset == 0) { + for (i = 0; i < nGlyphs; ++i) { + fdSelect[i] = 0; + } + } else { + ptr = (Guchar *)file + dict.fdSelectOffset; + fdSelectFmt = *ptr++; + if (fdSelectFmt == 0) { + memcpy(fdSelect, ptr, nGlyphs); + } else if (fdSelectFmt == 3) { + nRanges = getWord(ptr, 2); + ptr += 2; + gid0 = getWord(ptr, 2); + ptr += 2; + for (i = 1; i <= nRanges; ++i) { + fd = *ptr++; + gid1 = getWord(ptr, 2); + ptr += 2; + for (j = gid0; j < gid1; ++j) { + fdSelect[j] = fd; } - nHints += nOps / 2; + gid0 = gid1; } - i += 1 + ((nHints + 7) >> 3); - nOps = 0; - } else if (s[i] == 20) { // cntrmask - //~ ignored - if (first) { - cvtGlyphWidth(nOps == 1); - first = gFalse; + } else { + error(-1, "Unknown FDSelect table format in CID font"); + for (i = 0; i < nGlyphs; ++i) { + fdSelect[i] = 0; } - if (nOps > 0) { - if (nOps & 1) { - error(-1, "Wrong number of args (%d) to Type 2 cntrmask/vstemhm", - nOps); - } - nHints += nOps / 2; + } + } + + // read the charset, compute the CID-to-GID mapping + charset = readCharset(dict.charset, nGlyphs); + nCIDs = 0; + for (i = 0; i < nGlyphs; ++i) { + if (charset[i] >= nCIDs) { + nCIDs = charset[i] + 1; + } + } + cidMap = (int *)gmalloc(nCIDs * sizeof(int)); + for (i = 0; i < nCIDs; ++i) { + cidMap[i] = -1; + } + for (i = 0; i < nGlyphs; ++i) { + cidMap[charset[i]] = i; + } + + // write the descendant Type 1 fonts + for (i = 0; i < nCIDs; i += 256) { + + //~ this assumes that all CIDs in this block have the same FD -- + //~ to handle multiple FDs correctly, need to somehow divide the + //~ font up by FD + fd = 0; + for (j = 0; j < 256 && i+j < nCIDs; ++j) { + if (cidMap[i+j] >= 0) { + fd = fdSelect[cidMap[i+j]]; + break; } - i += 1 + ((nHints + 7) >> 3); - nOps = 0; - } else if (s[i] == 28) { - x = (s[i+1] << 8) + s[i+2]; - if (x & 0x8000) - x |= -1 << 15; - if (nOps < 48) { - fp[nOps] = gFalse; - op[nOps++] = x; + } + + // font dictionary (unencrypted section) + fprintf(out, "16 dict begin\n"); + fprintf(out, "/FontName /%s_%02x def\n", psName, i >> 8); + fprintf(out, "/FontType 1 def\n"); + fprintf(out, "/FontMatrix [%g %g %g %g %g %g] def\n", + dict.fontMatrix[0], dict.fontMatrix[1], dict.fontMatrix[2], + dict.fontMatrix[3], dict.fontMatrix[4], dict.fontMatrix[5]); + fprintf(out, "/FontBBox [%g %g %g %g] def\n", + dict.fontBBox[0], dict.fontBBox[1], + dict.fontBBox[2], dict.fontBBox[3]); + fprintf(out, "/PaintType %d def\n", dict.paintType); + if (dict.paintType != 0) { + fprintf(out, "/StrokeWidth %g def\n", dict.strokeWidth); + } + fprintf(out, "/Encoding 256 array\n"); + for (j = 0; j < 256 && i+j < nCIDs; ++j) { + fprintf(out, "dup %d /c%02x put\n", j, j); + } + fprintf(out, "readonly def\n"); + fprintf(out, "currentdict end\n"); + + // start the binary section + fprintf(out, "currentfile eexec\n"); + r1 = 55665; + line = 0; + + // start the private dictionary + eexecWrite("\x83\xca\x73\xd5"); + eexecWrite("dup /Private 32 dict dup begin\n"); + eexecWrite("/RD {string currentfile exch readstring pop} executeonly def\n"); + eexecWrite("/ND {noaccess def} executeonly def\n"); + eexecWrite("/NP {noaccess put} executeonly def\n"); + eexecWrite("/MinFeature {16 16} ND\n"); + eexecWrite(privateDicts[fd].dictData->getCString()); + defaultWidthX = privateDicts[fd].defaultWidthX; + defaultWidthXFP = privateDicts[fd].defaultWidthXFP; + nominalWidthX = privateDicts[fd].nominalWidthX; + nominalWidthXFP = privateDicts[fd].nominalWidthXFP; + + // start the CharStrings + sprintf(eBuf, "2 index /CharStrings 256 dict dup begin\n"); + eexecWrite(eBuf); + + // write the .notdef CharString + idxPtr0 = getIndexValPtr(charStringsIdxPtr, 0); + idxPtr1 = getIndexValPtr(charStringsIdxPtr, 1); + n = idxPtr1 - idxPtr0; + eexecCvtGlyph(".notdef", idxPtr0, n); + + // write the CharStrings + for (j = 0; j < 256 && i+j < nCIDs; ++j) { + if (cidMap[i+j] >= 0) { + idxPtr0 = getIndexValPtr(charStringsIdxPtr, cidMap[i+j]); + idxPtr1 = getIndexValPtr(charStringsIdxPtr, cidMap[i+j]+1); + n = idxPtr1 - idxPtr0; + sprintf(buf, "c%02x", j); + eexecCvtGlyph(buf, idxPtr0, n); } - i += 3; - } else if (s[i] <= 31) { - switch (s[i]) { - case 4: // vmoveto - if (first) { - cvtGlyphWidth(nOps == 2); - first = gFalse; - } - if (nOps != 1) - error(-1, "Wrong number of args (%d) to Type 2 vmoveto", nOps); - eexecDumpNum(op[0], fp[0]); - eexecDumpOp1(4); + } + eexecWrite("end\n"); + eexecWrite("end\n"); + eexecWrite("readonly put\n"); + eexecWrite("noaccess put\n"); + eexecWrite("dup /FontName get exch definefont pop\n"); + eexecWrite("mark currentfile closefile\n"); + + // trailer + if (line > 0) { + fputc('\n', out); + } + for (j = 0; j < 8; ++j) { + fprintf(out, "0000000000000000000000000000000000000000000000000000000000000000\n"); + } + fprintf(out, "cleartomark\n"); + } + + // write the Type 0 parent font + fprintf(out, "16 dict begin\n"); + fprintf(out, "/FontName /%s def\n", psName); + fprintf(out, "/FontType 0 def\n"); + fprintf(out, "/FontMatrix [1 0 0 1 0 0] def\n"); + fprintf(out, "/FMapType 2 def\n"); + fprintf(out, "/Encoding [\n"); + for (i = 0; i < nCIDs; i += 256) { + fprintf(out, "%d\n", i >> 8); + } + fprintf(out, "] def\n"); + fprintf(out, "/FDepVector [\n"); + for (i = 0; i < nCIDs; i += 256) { + fprintf(out, "/%s_%02x findfont\n", psName, i >> 8); + } + fprintf(out, "] def\n"); + fprintf(out, "FontName currentdict end definefont pop\n"); + + // clean up + for (i = 0; i < nFDs; ++i) { + delete privateDicts[i].dictData; + } + gfree(privateDicts); + gfree(cidMap); + gfree(charset); + gfree(fdSelect); +} + +void Type1CFontFile::readTopDict(Type1CTopDict *dict) { + Guchar *idxPtr0, *idxPtr1, *ptr; + double x; + GBool isFP; + int key; + int i; + + idxPtr0 = getIndexValPtr(topDictIdxPtr, 0); + idxPtr1 = getIndexValPtr(topDictIdxPtr, 1); + dict->version = 0; + dict->notice = 0; + dict->copyright = 0; + dict->fullName = 0; + dict->familyName = 0; + dict->weight = 0; + dict->isFixedPitch = 0; + dict->italicAngle = 0; + dict->underlinePosition = -100; + dict->underlineThickness = 50; + dict->paintType = 0; + dict->charstringType = 2; + dict->fontMatrix[0] = 0.001; + dict->fontMatrix[1] = 0; + dict->fontMatrix[2] = 0; + dict->fontMatrix[3] = 0.001; + dict->fontMatrix[4] = 0; + dict->fontMatrix[5] = 0; + dict->uniqueID = 0; + dict->fontBBox[0] = 0; + dict->fontBBox[1] = 0; + dict->fontBBox[2] = 0; + dict->fontBBox[3] = 0; + dict->strokeWidth = 0; + dict->charset = 0; + dict->encoding = 0; + dict->charStrings = 0; + dict->privateSize = 0; + dict->privateOffset = 0; + dict->registry = 0; + dict->ordering = 0; + dict->supplement = 0; + dict->fdArrayOffset = 0; + dict->fdSelectOffset = 0; + i = 0; + ptr = idxPtr0; + while (ptr < idxPtr1) { + if (*ptr <= 27 || *ptr == 31) { + key = *ptr++; + if (key == 0x0c) { + key = (key << 8) | *ptr++; + } + switch (key) { + case 0x0000: dict->version = (int)op[0]; break; + case 0x0001: dict->notice = (int)op[0]; break; + case 0x0c00: dict->copyright = (int)op[0]; break; + case 0x0002: dict->fullName = (int)op[0]; break; + case 0x0003: dict->familyName = (int)op[0]; break; + case 0x0004: dict->weight = (int)op[0]; break; + case 0x0c01: dict->isFixedPitch = (int)op[0]; break; + case 0x0c02: dict->italicAngle = op[0]; break; + case 0x0c03: dict->underlinePosition = op[0]; break; + case 0x0c04: dict->underlineThickness = op[0]; break; + case 0x0c05: dict->paintType = (int)op[0]; break; + case 0x0c06: dict->charstringType = (int)op[0]; break; + case 0x0c07: dict->fontMatrix[0] = op[0]; + dict->fontMatrix[1] = op[1]; + dict->fontMatrix[2] = op[2]; + dict->fontMatrix[3] = op[3]; + dict->fontMatrix[4] = op[4]; + dict->fontMatrix[5] = op[5]; break; + case 0x000d: dict->uniqueID = (int)op[0]; break; + case 0x0005: dict->fontBBox[0] = op[0]; + dict->fontBBox[1] = op[1]; + dict->fontBBox[2] = op[2]; + dict->fontBBox[3] = op[3]; break; + case 0x0c08: dict->strokeWidth = op[0]; break; + case 0x000f: dict->charset = (int)op[0]; break; + case 0x0010: dict->encoding = (int)op[0]; break; + case 0x0011: dict->charStrings = (int)op[0]; break; + case 0x0012: dict->privateSize = (int)op[0]; + dict->privateOffset = (int)op[1]; break; + case 0x0c1e: dict->registry = (int)op[0]; + dict->ordering = (int)op[1]; + dict->supplement = (int)op[2]; break; + case 0x0c24: dict->fdArrayOffset = (int)op[0]; break; + case 0x0c25: dict->fdSelectOffset = (int)op[0]; break; + } + i = 0; + } else { + x = getNum(&ptr, &isFP); + if (i < 48) { + op[i] = x; + fp[i++] = isFP; + } + } + } +} + +void Type1CFontFile::readPrivateDict(Type1CPrivateDict *privateDict, + int offset, int size) { + Guchar *idxPtr0, *idxPtr1, *ptr; + char eBuf[256]; + int key; + double x; + GBool isFP; + int i; + + privateDict->dictData = new GString(); + privateDict->subrsOffset = 0; + privateDict->defaultWidthX = 0; + privateDict->defaultWidthXFP = gFalse; + privateDict->nominalWidthX = 0; + privateDict->nominalWidthXFP = gFalse; + idxPtr0 = (Guchar *)file + offset; + idxPtr1 = idxPtr0 + size; + ptr = idxPtr0; + i = 0; + while (ptr < idxPtr1) { + if (*ptr <= 27 || *ptr == 31) { + key = *ptr++; + if (key == 0x0c) { + key = (key << 8) | *ptr++; + } + switch (key) { + case 0x0006: + getDeltaInt(eBuf, "BlueValues", op, i); + privateDict->dictData->append(eBuf); break; - case 5: // rlineto - if (nOps < 2 || nOps % 2 != 0) - error(-1, "Wrong number of args (%d) to Type 2 rlineto", nOps); - for (k = 0; k < nOps; k += 2) { - eexecDumpNum(op[k], fp[k]); - eexecDumpNum(op[k+1], fp[k+1]); - eexecDumpOp1(5); - } + case 0x0007: + getDeltaInt(eBuf, "OtherBlues", op, i); + privateDict->dictData->append(eBuf); break; - case 6: // hlineto - if (nOps < 1) - error(-1, "Wrong number of args (%d) to Type 2 hlineto", nOps); - for (k = 0; k < nOps; ++k) { - eexecDumpNum(op[k], fp[k]); - eexecDumpOp1((k & 1) ? 7 : 6); - } + case 0x0008: + getDeltaInt(eBuf, "FamilyBlues", op, i); + privateDict->dictData->append(eBuf); break; - case 7: // vlineto - if (nOps < 1) - error(-1, "Wrong number of args (%d) to Type 2 vlineto", nOps); - for (k = 0; k < nOps; ++k) { - eexecDumpNum(op[k], fp[k]); - eexecDumpOp1((k & 1) ? 6 : 7); - } + case 0x0009: + getDeltaInt(eBuf, "FamilyOtherBlues", op, i); + privateDict->dictData->append(eBuf); break; - case 8: // rrcurveto - if (nOps < 6 || nOps % 6 != 0) - error(-1, "Wrong number of args (%d) to Type 2 rrcurveto", nOps); - for (k = 0; k < nOps; k += 6) { - eexecDumpNum(op[k], fp[k]); - eexecDumpNum(op[k+1], fp[k+1]); - eexecDumpNum(op[k+2], fp[k+2]); - eexecDumpNum(op[k+3], fp[k+3]); - eexecDumpNum(op[k+4], fp[k+4]); - eexecDumpNum(op[k+5], fp[k+5]); - eexecDumpOp1(8); - } + case 0x0c09: + sprintf(eBuf, "/BlueScale %g def\n", op[0]); + privateDict->dictData->append(eBuf); break; - case 14: // endchar / seac - if (first) { - cvtGlyphWidth(nOps == 1 || nOps == 5); - first = gFalse; - } - if (nOps == 4) { - eexecDumpNum(0, 0); - eexecDumpNum(op[0], fp[0]); - eexecDumpNum(op[1], fp[1]); - eexecDumpNum(op[2], fp[2]); - eexecDumpNum(op[3], fp[3]); - eexecDumpOp2(6); - } else if (nOps == 0) { - eexecDumpOp1(14); - } else { - error(-1, "Wrong number of args (%d) to Type 2 endchar", nOps); - } + case 0x0c0a: + sprintf(eBuf, "/BlueShift %d def\n", (int)op[0]); + privateDict->dictData->append(eBuf); break; - case 21: // rmoveto - if (first) { - cvtGlyphWidth(nOps == 3); - first = gFalse; - } - if (nOps != 2) - error(-1, "Wrong number of args (%d) to Type 2 rmoveto", nOps); - eexecDumpNum(op[0], fp[0]); - eexecDumpNum(op[1], fp[1]); - eexecDumpOp1(21); + case 0x0c0b: + sprintf(eBuf, "/BlueFuzz %d def\n", (int)op[0]); + privateDict->dictData->append(eBuf); break; - case 22: // hmoveto - if (first) { - cvtGlyphWidth(nOps == 2); - first = gFalse; - } - if (nOps != 1) - error(-1, "Wrong number of args (%d) to Type 2 hmoveto", nOps); - eexecDumpNum(op[0], fp[0]); - eexecDumpOp1(22); + case 0x000a: + sprintf(eBuf, "/StdHW [%g] def\n", op[0]); + privateDict->dictData->append(eBuf); break; - case 24: // rcurveline - if (nOps < 8 || (nOps - 2) % 6 != 0) - error(-1, "Wrong number of args (%d) to Type 2 rcurveline", nOps); - for (k = 0; k < nOps - 2; k += 6) { - eexecDumpNum(op[k], fp[k]); - eexecDumpNum(op[k+1], fp[k+1]); - eexecDumpNum(op[k+2], fp[k+2]); - eexecDumpNum(op[k+3], fp[k+3]); - eexecDumpNum(op[k+4], fp[k+4]); - eexecDumpNum(op[k+5], fp[k+5]); - eexecDumpOp1(8); - } - eexecDumpNum(op[k], fp[k]); - eexecDumpNum(op[k+1], fp[k]); - eexecDumpOp1(5); + case 0x000b: + sprintf(eBuf, "/StdVW [%g] def\n", op[0]); + privateDict->dictData->append(eBuf); break; - case 25: // rlinecurve - if (nOps < 8 || (nOps - 6) % 2 != 0) - error(-1, "Wrong number of args (%d) to Type 2 rlinecurve", nOps); - for (k = 0; k < nOps - 6; k += 2) { - eexecDumpNum(op[k], fp[k]); - eexecDumpNum(op[k+1], fp[k]); - eexecDumpOp1(5); - } - eexecDumpNum(op[k], fp[k]); - eexecDumpNum(op[k+1], fp[k+1]); - eexecDumpNum(op[k+2], fp[k+2]); - eexecDumpNum(op[k+3], fp[k+3]); - eexecDumpNum(op[k+4], fp[k+4]); - eexecDumpNum(op[k+5], fp[k+5]); - eexecDumpOp1(8); + case 0x0c0c: + getDeltaReal(eBuf, "StemSnapH", op, i); + privateDict->dictData->append(eBuf); break; - case 26: // vvcurveto - if (nOps < 4 || !(nOps % 4 == 0 || (nOps-1) % 4 == 0)) - error(-1, "Wrong number of args (%d) to Type 2 vvcurveto", nOps); - if (nOps % 2 == 1) { - eexecDumpNum(op[0], fp[0]); - eexecDumpNum(op[1], fp[1]); - eexecDumpNum(op[2], fp[2]); - eexecDumpNum(op[3], fp[3]); - eexecDumpNum(0, gFalse); - eexecDumpNum(op[4], fp[4]); - eexecDumpOp1(8); - k = 5; - } else { - k = 0; - } - for (; k < nOps; k += 4) { - eexecDumpNum(0, gFalse); - eexecDumpNum(op[k], fp[k]); - eexecDumpNum(op[k+1], fp[k+1]); - eexecDumpNum(op[k+2], fp[k+2]); - eexecDumpNum(0, gFalse); - eexecDumpNum(op[k+3], fp[k+3]); - eexecDumpOp1(8); - } + case 0x0c0d: + getDeltaReal(eBuf, "StemSnapV", op, i); + privateDict->dictData->append(eBuf); break; - case 27: // hhcurveto - if (nOps < 4 || !(nOps % 4 == 0 || (nOps-1) % 4 == 0)) - error(-1, "Wrong number of args (%d) to Type 2 hhcurveto", nOps); - if (nOps % 2 == 1) { - eexecDumpNum(op[1], fp[1]); - eexecDumpNum(op[0], fp[0]); - eexecDumpNum(op[2], fp[2]); - eexecDumpNum(op[3], fp[3]); - eexecDumpNum(op[4], fp[4]); - eexecDumpNum(0, gFalse); - eexecDumpOp1(8); - k = 5; - } else { - k = 0; - } - for (; k < nOps; k += 4) { - eexecDumpNum(op[k], fp[k]); - eexecDumpNum(0, gFalse); - eexecDumpNum(op[k+1], fp[k+1]); - eexecDumpNum(op[k+2], fp[k+2]); - eexecDumpNum(op[k+3], fp[k+3]); - eexecDumpNum(0, gFalse); - eexecDumpOp1(8); - } + case 0x0c0e: + sprintf(eBuf, "/ForceBold %s def\n", op[0] ? "true" : "false"); + privateDict->dictData->append(eBuf); break; - case 30: // vhcurveto - if (nOps < 4 || !(nOps % 4 == 0 || (nOps-1) % 4 == 0)) - error(-1, "Wrong number of args (%d) to Type 2 vhcurveto", nOps); - for (k = 0; k < nOps && k != nOps-5; k += 4) { - if (k % 8 == 0) { - eexecDumpNum(op[k], fp[k]); - eexecDumpNum(op[k+1], fp[k+1]); - eexecDumpNum(op[k+2], fp[k+2]); + case 0x0c0f: + sprintf(eBuf, "/ForceBoldThreshold %g def\n", op[0]); + privateDict->dictData->append(eBuf); + break; + case 0x0c11: + sprintf(eBuf, "/LanguageGroup %d def\n", (int)op[0]); + privateDict->dictData->append(eBuf); + break; + case 0x0c12: + sprintf(eBuf, "/ExpansionFactor %g def\n", op[0]); + privateDict->dictData->append(eBuf); + break; + case 0x0c13: + error(-1, "Got Type 1C InitialRandomSeed"); + break; + case 0x0013: + privateDict->subrsOffset = (int)op[0]; + break; + case 0x0014: + privateDict->defaultWidthX = op[0]; + privateDict->defaultWidthXFP = fp[0]; + break; + case 0x0015: + privateDict->nominalWidthX = op[0]; + privateDict->nominalWidthXFP = fp[0]; + break; + default: + error(-1, "Unknown Type 1C private dict entry %04x", key); + break; + } + i = 0; + } else { + x = getNum(&ptr, &isFP); + if (i < 48) { + op[i] = x; + fp[i++] = isFP; + } + } + } +} + +Gushort *Type1CFontFile::readCharset(int charset, int nGlyphs) { + Gushort *glyphNames; + Guchar *ptr; + int charsetFormat, c; + int nLeft, i, j; + + if (charset == 0) { + glyphNames = type1CISOAdobeCharset; + } else if (charset == 1) { + glyphNames = type1CExpertCharset; + } else if (charset == 2) { + glyphNames = type1CExpertSubsetCharset; + } else { + glyphNames = (Gushort *)gmalloc(nGlyphs * sizeof(Gushort)); + glyphNames[0] = 0; + ptr = (Guchar *)file + charset; + charsetFormat = *ptr++; + if (charsetFormat == 0) { + for (i = 1; i < nGlyphs; ++i) { + glyphNames[i] = getWord(ptr, 2); + ptr += 2; + } + } else if (charsetFormat == 1) { + i = 1; + while (i < nGlyphs) { + c = getWord(ptr, 2); + ptr += 2; + nLeft = *ptr++; + for (j = 0; j <= nLeft && i < nGlyphs; ++j) { + glyphNames[i++] = c++; + } + } + } else if (charsetFormat == 2) { + i = 1; + while (i < nGlyphs) { + c = getWord(ptr, 2); + ptr += 2; + nLeft = getWord(ptr, 2); + ptr += 2; + for (j = 0; j <= nLeft && i < nGlyphs; ++j) { + glyphNames[i++] = c++; + } + } + } + } + return glyphNames; +} + +void Type1CFontFile::eexecWrite(char *s) { + Guchar *p; + Guchar x; + + for (p = (Guchar *)s; *p; ++p) { + x = *p ^ (r1 >> 8); + r1 = (x + r1) * 52845 + 22719; + fputc(hexChars[x >> 4], out); + fputc(hexChars[x & 0x0f], out); + line += 2; + if (line == 64) { + fputc('\n', out); + line = 0; + } + } +} + +void Type1CFontFile::eexecCvtGlyph(char *glyphName, Guchar *s, int n) { + char eBuf[256]; + + cvtGlyph(s, n); + sprintf(eBuf, "/%s %d RD ", glyphName, charBuf->getLength()); + eexecWrite(eBuf); + eexecWriteCharstring((Guchar *)charBuf->getCString(), charBuf->getLength()); + eexecWrite(" ND\n"); + delete charBuf; +} + +void Type1CFontFile::cvtGlyph(Guchar *s, int n) { + int nHints; + int x; + GBool first = gTrue; + double d, dx, dy; + GBool dFP; + Gushort r2; + Guchar byte; + int i, k; + + charBuf = new GString(); + charBuf->append((char)73); + charBuf->append((char)58); + charBuf->append((char)147); + charBuf->append((char)134); + + i = 0; + nOps = 0; + nHints = 0; + while (i < n) { + if (s[i] == 12) { + switch (s[i+1]) { + case 0: // dotsection (should be Type 1 only?) + // ignored + break; + case 34: // hflex + if (nOps != 7) { + error(-1, "Wrong number of args (%d) to Type 2 hflex", nOps); + } + eexecDumpNum(op[0], fp[0]); + eexecDumpNum(0, gFalse); + eexecDumpNum(op[1], fp[1]); + eexecDumpNum(op[2], fp[2]); + eexecDumpNum(op[3], fp[3]); + eexecDumpNum(0, gFalse); + eexecDumpOp1(8); + eexecDumpNum(op[4], fp[4]); + eexecDumpNum(0, gFalse); + eexecDumpNum(op[5], fp[5]); + eexecDumpNum(-op[2], fp[2]); + eexecDumpNum(op[6], fp[6]); + eexecDumpNum(0, gFalse); + eexecDumpOp1(8); + break; + case 35: // flex + if (nOps != 13) { + error(-1, "Wrong number of args (%d) to Type 2 flex", nOps); + } + eexecDumpNum(op[0], fp[0]); + eexecDumpNum(op[1], fp[1]); + eexecDumpNum(op[2], fp[2]); + eexecDumpNum(op[3], fp[3]); + eexecDumpNum(op[4], fp[4]); + eexecDumpNum(op[5], fp[5]); + eexecDumpOp1(8); + eexecDumpNum(op[6], fp[6]); + eexecDumpNum(op[7], fp[7]); + eexecDumpNum(op[8], fp[8]); + eexecDumpNum(op[9], fp[9]); + eexecDumpNum(op[10], fp[10]); + eexecDumpNum(op[11], fp[11]); + eexecDumpOp1(8); + break; + case 36: // hflex1 + if (nOps != 9) { + error(-1, "Wrong number of args (%d) to Type 2 hflex1", nOps); + } + eexecDumpNum(op[0], fp[0]); + eexecDumpNum(op[1], fp[1]); + eexecDumpNum(op[2], fp[2]); + eexecDumpNum(op[3], fp[3]); + eexecDumpNum(op[4], fp[4]); + eexecDumpNum(0, gFalse); + eexecDumpOp1(8); + eexecDumpNum(op[5], fp[5]); + eexecDumpNum(0, gFalse); + eexecDumpNum(op[6], fp[6]); + eexecDumpNum(op[7], fp[7]); + eexecDumpNum(op[8], fp[8]); + eexecDumpNum(-(op[1] + op[3] + op[7]), fp[1] | fp[3] | fp[7]); + eexecDumpOp1(8); + break; + case 37: // flex1 + if (nOps != 11) { + error(-1, "Wrong number of args (%d) to Type 2 flex1", nOps); + } + eexecDumpNum(op[0], fp[0]); + eexecDumpNum(op[1], fp[1]); + eexecDumpNum(op[2], fp[2]); + eexecDumpNum(op[3], fp[3]); + eexecDumpNum(op[4], fp[4]); + eexecDumpNum(op[5], fp[5]); + eexecDumpOp1(8); + eexecDumpNum(op[6], fp[6]); + eexecDumpNum(op[7], fp[7]); + eexecDumpNum(op[8], fp[8]); + eexecDumpNum(op[9], fp[9]); + dx = op[0] + op[2] + op[4] + op[6] + op[8]; + dy = op[1] + op[3] + op[5] + op[7] + op[9]; + if (fabs(dx) > fabs(dy)) { + eexecDumpNum(op[10], fp[10]); + eexecDumpNum(-dy, fp[1] | fp[3] | fp[5] | fp[7] | fp[9]); + } else { + eexecDumpNum(-dx, fp[0] | fp[2] | fp[4] | fp[6] | fp[8]); + eexecDumpNum(op[10], fp[10]); + } + eexecDumpOp1(8); + break; + case 3: // and + case 4: // or + case 5: // not + case 8: // store + case 9: // abs + case 10: // add + case 11: // sub + case 12: // div + case 13: // load + case 14: // neg + case 15: // eq + case 18: // drop + case 20: // put + case 21: // get + case 22: // ifelse + case 23: // random + case 24: // mul + case 26: // sqrt + case 27: // dup + case 28: // exch + case 29: // index + case 30: // roll + error(-1, "Unimplemented Type 2 charstring op: 12.%d", s[i+1]); + break; + default: + error(-1, "Illegal Type 2 charstring op: 12.%d", s[i+1]); + break; + } + i += 2; + nOps = 0; + } else if (s[i] == 19) { // hintmask + // ignored + if (first) { + cvtGlyphWidth(nOps == 1); + first = gFalse; + } + if (nOps > 0) { + if (nOps & 1) { + error(-1, "Wrong number of args (%d) to Type 2 hintmask/vstemhm", + nOps); + } + nHints += nOps / 2; + } + i += 1 + ((nHints + 7) >> 3); + nOps = 0; + } else if (s[i] == 20) { // cntrmask + // ignored + if (first) { + cvtGlyphWidth(nOps == 1); + first = gFalse; + } + if (nOps > 0) { + if (nOps & 1) { + error(-1, "Wrong number of args (%d) to Type 2 cntrmask/vstemhm", + nOps); + } + nHints += nOps / 2; + } + i += 1 + ((nHints + 7) >> 3); + nOps = 0; + } else if (s[i] == 28) { + x = (s[i+1] << 8) + s[i+2]; + if (x & 0x8000) { + x |= -1 << 15; + } + if (nOps < 48) { + fp[nOps] = gFalse; + op[nOps++] = x; + } + i += 3; + } else if (s[i] <= 31) { + switch (s[i]) { + case 4: // vmoveto + if (first) { + cvtGlyphWidth(nOps == 2); + first = gFalse; + } + if (nOps != 1) { + error(-1, "Wrong number of args (%d) to Type 2 vmoveto", nOps); + } + eexecDumpNum(op[0], fp[0]); + eexecDumpOp1(4); + break; + case 5: // rlineto + if (nOps < 2 || nOps % 2 != 0) { + error(-1, "Wrong number of args (%d) to Type 2 rlineto", nOps); + } + for (k = 0; k < nOps; k += 2) { + eexecDumpNum(op[k], fp[k]); + eexecDumpNum(op[k+1], fp[k+1]); + eexecDumpOp1(5); + } + break; + case 6: // hlineto + if (nOps < 1) { + error(-1, "Wrong number of args (%d) to Type 2 hlineto", nOps); + } + for (k = 0; k < nOps; ++k) { + eexecDumpNum(op[k], fp[k]); + eexecDumpOp1((k & 1) ? 7 : 6); + } + break; + case 7: // vlineto + if (nOps < 1) { + error(-1, "Wrong number of args (%d) to Type 2 vlineto", nOps); + } + for (k = 0; k < nOps; ++k) { + eexecDumpNum(op[k], fp[k]); + eexecDumpOp1((k & 1) ? 6 : 7); + } + break; + case 8: // rrcurveto + if (nOps < 6 || nOps % 6 != 0) { + error(-1, "Wrong number of args (%d) to Type 2 rrcurveto", nOps); + } + for (k = 0; k < nOps; k += 6) { + eexecDumpNum(op[k], fp[k]); + eexecDumpNum(op[k+1], fp[k+1]); + eexecDumpNum(op[k+2], fp[k+2]); + eexecDumpNum(op[k+3], fp[k+3]); + eexecDumpNum(op[k+4], fp[k+4]); + eexecDumpNum(op[k+5], fp[k+5]); + eexecDumpOp1(8); + } + break; + case 14: // endchar / seac + if (first) { + cvtGlyphWidth(nOps == 1 || nOps == 5); + first = gFalse; + } + if (nOps == 4) { + eexecDumpNum(0, 0); + eexecDumpNum(op[0], fp[0]); + eexecDumpNum(op[1], fp[1]); + eexecDumpNum(op[2], fp[2]); + eexecDumpNum(op[3], fp[3]); + eexecDumpOp2(6); + } else if (nOps == 0) { + eexecDumpOp1(14); + } else { + error(-1, "Wrong number of args (%d) to Type 2 endchar", nOps); + } + break; + case 21: // rmoveto + if (first) { + cvtGlyphWidth(nOps == 3); + first = gFalse; + } + if (nOps != 2) { + error(-1, "Wrong number of args (%d) to Type 2 rmoveto", nOps); + } + eexecDumpNum(op[0], fp[0]); + eexecDumpNum(op[1], fp[1]); + eexecDumpOp1(21); + break; + case 22: // hmoveto + if (first) { + cvtGlyphWidth(nOps == 2); + first = gFalse; + } + if (nOps != 1) { + error(-1, "Wrong number of args (%d) to Type 2 hmoveto", nOps); + } + eexecDumpNum(op[0], fp[0]); + eexecDumpOp1(22); + break; + case 24: // rcurveline + if (nOps < 8 || (nOps - 2) % 6 != 0) { + error(-1, "Wrong number of args (%d) to Type 2 rcurveline", nOps); + } + for (k = 0; k < nOps - 2; k += 6) { + eexecDumpNum(op[k], fp[k]); + eexecDumpNum(op[k+1], fp[k+1]); + eexecDumpNum(op[k+2], fp[k+2]); + eexecDumpNum(op[k+3], fp[k+3]); + eexecDumpNum(op[k+4], fp[k+4]); + eexecDumpNum(op[k+5], fp[k+5]); + eexecDumpOp1(8); + } + eexecDumpNum(op[k], fp[k]); + eexecDumpNum(op[k+1], fp[k]); + eexecDumpOp1(5); + break; + case 25: // rlinecurve + if (nOps < 8 || (nOps - 6) % 2 != 0) { + error(-1, "Wrong number of args (%d) to Type 2 rlinecurve", nOps); + } + for (k = 0; k < nOps - 6; k += 2) { + eexecDumpNum(op[k], fp[k]); + eexecDumpNum(op[k+1], fp[k]); + eexecDumpOp1(5); + } + eexecDumpNum(op[k], fp[k]); + eexecDumpNum(op[k+1], fp[k+1]); + eexecDumpNum(op[k+2], fp[k+2]); + eexecDumpNum(op[k+3], fp[k+3]); + eexecDumpNum(op[k+4], fp[k+4]); + eexecDumpNum(op[k+5], fp[k+5]); + eexecDumpOp1(8); + break; + case 26: // vvcurveto + if (nOps < 4 || !(nOps % 4 == 0 || (nOps-1) % 4 == 0)) { + error(-1, "Wrong number of args (%d) to Type 2 vvcurveto", nOps); + } + if (nOps % 2 == 1) { + eexecDumpNum(op[0], fp[0]); + eexecDumpNum(op[1], fp[1]); + eexecDumpNum(op[2], fp[2]); + eexecDumpNum(op[3], fp[3]); + eexecDumpNum(0, gFalse); + eexecDumpNum(op[4], fp[4]); + eexecDumpOp1(8); + k = 5; + } else { + k = 0; + } + for (; k < nOps; k += 4) { + eexecDumpNum(0, gFalse); + eexecDumpNum(op[k], fp[k]); + eexecDumpNum(op[k+1], fp[k+1]); + eexecDumpNum(op[k+2], fp[k+2]); + eexecDumpNum(0, gFalse); + eexecDumpNum(op[k+3], fp[k+3]); + eexecDumpOp1(8); + } + break; + case 27: // hhcurveto + if (nOps < 4 || !(nOps % 4 == 0 || (nOps-1) % 4 == 0)) { + error(-1, "Wrong number of args (%d) to Type 2 hhcurveto", nOps); + } + if (nOps % 2 == 1) { + eexecDumpNum(op[1], fp[1]); + eexecDumpNum(op[0], fp[0]); + eexecDumpNum(op[2], fp[2]); + eexecDumpNum(op[3], fp[3]); + eexecDumpNum(op[4], fp[4]); + eexecDumpNum(0, gFalse); + eexecDumpOp1(8); + k = 5; + } else { + k = 0; + } + for (; k < nOps; k += 4) { + eexecDumpNum(op[k], fp[k]); + eexecDumpNum(0, gFalse); + eexecDumpNum(op[k+1], fp[k+1]); + eexecDumpNum(op[k+2], fp[k+2]); + eexecDumpNum(op[k+3], fp[k+3]); + eexecDumpNum(0, gFalse); + eexecDumpOp1(8); + } + break; + case 30: // vhcurveto + if (nOps < 4 || !(nOps % 4 == 0 || (nOps-1) % 4 == 0)) { + error(-1, "Wrong number of args (%d) to Type 2 vhcurveto", nOps); + } + for (k = 0; k < nOps && k != nOps-5; k += 4) { + if (k % 8 == 0) { + eexecDumpNum(op[k], fp[k]); + eexecDumpNum(op[k+1], fp[k+1]); + eexecDumpNum(op[k+2], fp[k+2]); + eexecDumpNum(op[k+3], fp[k+3]); + eexecDumpOp1(30); + } else { + eexecDumpNum(op[k], fp[k]); + eexecDumpNum(op[k+1], fp[k+1]); + eexecDumpNum(op[k+2], fp[k+2]); + eexecDumpNum(op[k+3], fp[k+3]); + eexecDumpOp1(31); + } + } + if (k == nOps-5) { + if (k % 8 == 0) { + eexecDumpNum(0, gFalse); + eexecDumpNum(op[k], fp[k]); + eexecDumpNum(op[k+1], fp[k+1]); + eexecDumpNum(op[k+2], fp[k+2]); + eexecDumpNum(op[k+3], fp[k+3]); + eexecDumpNum(op[k+4], fp[k+4]); + } else { + eexecDumpNum(op[k], fp[k]); + eexecDumpNum(0, gFalse); + eexecDumpNum(op[k+1], fp[k+1]); + eexecDumpNum(op[k+2], fp[k+2]); + eexecDumpNum(op[k+4], fp[k+4]); + eexecDumpNum(op[k+3], fp[k+3]); + } + eexecDumpOp1(8); + } + break; + case 31: // hvcurveto + if (nOps < 4 || !(nOps % 4 == 0 || (nOps-1) % 4 == 0)) { + error(-1, "Wrong number of args (%d) to Type 2 hvcurveto", nOps); + } + for (k = 0; k < nOps && k != nOps-5; k += 4) { + if (k % 8 == 0) { + eexecDumpNum(op[k], fp[k]); + eexecDumpNum(op[k+1], fp[k+1]); + eexecDumpNum(op[k+2], fp[k+2]); + eexecDumpNum(op[k+3], fp[k+3]); + eexecDumpOp1(31); + } else { + eexecDumpNum(op[k], fp[k]); + eexecDumpNum(op[k+1], fp[k+1]); + eexecDumpNum(op[k+2], fp[k+2]); eexecDumpNum(op[k+3], fp[k+3]); eexecDumpOp1(30); + } + } + if (k == nOps-5) { + if (k % 8 == 0) { + eexecDumpNum(op[k], fp[k]); + eexecDumpNum(0, gFalse); + eexecDumpNum(op[k+1], fp[k+1]); + eexecDumpNum(op[k+2], fp[k+2]); + eexecDumpNum(op[k+4], fp[k+4]); + eexecDumpNum(op[k+3], fp[k+3]); + } else { + eexecDumpNum(0, gFalse); + eexecDumpNum(op[k], fp[k]); + eexecDumpNum(op[k+1], fp[k+1]); + eexecDumpNum(op[k+2], fp[k+2]); + eexecDumpNum(op[k+3], fp[k+3]); + eexecDumpNum(op[k+4], fp[k+4]); + } + eexecDumpOp1(8); + } + break; + case 1: // hstem + if (first) { + cvtGlyphWidth(nOps & 1); + first = gFalse; + } + if (nOps & 1) { + error(-1, "Wrong number of args (%d) to Type 2 hstem", nOps); + } + d = 0; + dFP = gFalse; + for (k = 0; k < nOps; k += 2) { + if (op[k+1] < 0) { + d += op[k] + op[k+1]; + dFP |= fp[k] | fp[k+1]; + eexecDumpNum(d, dFP); + eexecDumpNum(-op[k+1], fp[k+1]); } else { - eexecDumpNum(op[k], fp[k]); + d += op[k]; + dFP |= fp[k]; + eexecDumpNum(d, dFP); eexecDumpNum(op[k+1], fp[k+1]); - eexecDumpNum(op[k+2], fp[k+2]); - eexecDumpNum(op[k+3], fp[k+3]); - eexecDumpOp1(31); + d += op[k+1]; + dFP |= fp[k+1]; } + eexecDumpOp1(1); } - if (k == nOps-5) { - if (k % 8 == 0) { - eexecDumpNum(0, gFalse); - eexecDumpNum(op[k], fp[k]); - eexecDumpNum(op[k+1], fp[k+1]); - eexecDumpNum(op[k+2], fp[k+2]); - eexecDumpNum(op[k+3], fp[k+3]); - eexecDumpNum(op[k+4], fp[k+4]); + nHints += nOps / 2; + break; + case 3: // vstem + if (first) { + cvtGlyphWidth(nOps & 1); + first = gFalse; + } + if (nOps & 1) { + error(-1, "Wrong number of args (%d) to Type 2 vstem", nOps); + } + d = 0; + dFP = gFalse; + for (k = 0; k < nOps; k += 2) { + if (op[k+1] < 0) { + d += op[k] + op[k+1]; + dFP |= fp[k] | fp[k+1]; + eexecDumpNum(d, dFP); + eexecDumpNum(-op[k+1], fp[k+1]); } else { - eexecDumpNum(op[k], fp[k]); - eexecDumpNum(0, gFalse); + d += op[k]; + dFP |= fp[k]; + eexecDumpNum(d, dFP); eexecDumpNum(op[k+1], fp[k+1]); - eexecDumpNum(op[k+2], fp[k+2]); - eexecDumpNum(op[k+4], fp[k+4]); - eexecDumpNum(op[k+3], fp[k+3]); + d += op[k+1]; + dFP |= fp[k+1]; } - eexecDumpOp1(8); + eexecDumpOp1(3); + } + nHints += nOps / 2; + break; + case 18: // hstemhm + // ignored + if (first) { + cvtGlyphWidth(nOps & 1); + first = gFalse; + } + if (nOps & 1) { + error(-1, "Wrong number of args (%d) to Type 2 hstemhm", nOps); + } + nHints += nOps / 2; + break; + case 23: // vstemhm + // ignored + if (first) { + cvtGlyphWidth(nOps & 1); + first = gFalse; + } + if (nOps & 1) { + error(-1, "Wrong number of args (%d) to Type 2 vstemhm", nOps); } + nHints += nOps / 2; + break; + case 10: // callsubr + case 11: // return + case 16: // blend + case 29: // callgsubr + error(-1, "Unimplemented Type 2 charstring op: %d", s[i]); + break; + default: + error(-1, "Illegal Type 2 charstring op: %d", s[i]); + break; + } + ++i; + nOps = 0; + } else if (s[i] <= 246) { + if (nOps < 48) { + fp[nOps] = gFalse; + op[nOps++] = (int)s[i] - 139; + } + ++i; + } else if (s[i] <= 250) { + if (nOps < 48) { + fp[nOps] = gFalse; + op[nOps++] = (((int)s[i] - 247) << 8) + (int)s[i+1] + 108; + } + i += 2; + } else if (s[i] <= 254) { + if (nOps < 48) { + fp[nOps] = gFalse; + op[nOps++] = -(((int)s[i] - 251) << 8) - (int)s[i+1] - 108; + } + i += 2; + } else { + x = (s[i+1] << 24) | (s[i+2] << 16) | (s[i+3] << 8) | s[i+4]; + if (x & 0x80000000) + x |= -1 << 31; + if (nOps < 48) { + fp[nOps] = gTrue; + op[nOps++] = (double)x / 65536.0; + } + i += 5; + } + } + + // charstring encryption + r2 = 4330; + for (i = 0; i < charBuf->getLength(); ++i) { + byte = charBuf->getChar(i) ^ (r2 >> 8); + charBuf->setChar(i, byte); + r2 = (byte + r2) * 52845 + 22719; + } +} + +void Type1CFontFile::cvtGlyphWidth(GBool useOp) { + double w; + GBool wFP; + int i; + + if (useOp) { + w = nominalWidthX + op[0]; + wFP = nominalWidthXFP | fp[0]; + for (i = 1; i < nOps; ++i) { + op[i-1] = op[i]; + fp[i-1] = fp[i]; + } + --nOps; + } else { + w = defaultWidthX; + wFP = defaultWidthXFP; + } + eexecDumpNum(0, gFalse); + eexecDumpNum(w, wFP); + eexecDumpOp1(13); +} + +void Type1CFontFile::eexecDumpNum(double x, GBool fpA) { + Guchar buf[12]; + int y, n; + + n = 0; + if (fpA) { + if (x >= -32768 && x < 32768) { + y = (int)(x * 256.0); + buf[0] = 255; + buf[1] = (Guchar)(y >> 24); + buf[2] = (Guchar)(y >> 16); + buf[3] = (Guchar)(y >> 8); + buf[4] = (Guchar)y; + buf[5] = 255; + buf[6] = 0; + buf[7] = 0; + buf[8] = 1; + buf[9] = 0; + buf[10] = 12; + buf[11] = 12; + n = 12; + } else { + error(-1, "Type 2 fixed point constant out of range"); + } + } else { + y = (int)x; + if (y >= -107 && y <= 107) { + buf[0] = (Guchar)(y + 139); + n = 1; + } else if (y > 107 && y <= 1131) { + y -= 108; + buf[0] = (Guchar)((y >> 8) + 247); + buf[1] = (Guchar)(y & 0xff); + n = 2; + } else if (y < -107 && y >= -1131) { + y = -y - 108; + buf[0] = (Guchar)((y >> 8) + 251); + buf[1] = (Guchar)(y & 0xff); + n = 2; + } else { + buf[0] = 255; + buf[1] = (Guchar)(y >> 24); + buf[2] = (Guchar)(y >> 16); + buf[3] = (Guchar)(y >> 8); + buf[4] = (Guchar)y; + n = 5; + } + } + charBuf->append((char *)buf, n); +} + +void Type1CFontFile::eexecDumpOp1(int opA) { + charBuf->append((char)opA); +} + +void Type1CFontFile::eexecDumpOp2(int opA) { + charBuf->append((char)12); + charBuf->append((char)opA); +} + +void Type1CFontFile::eexecWriteCharstring(Guchar *s, int n) { + Guchar x; + int i; + + // eexec encryption + for (i = 0; i < n; ++i) { + x = s[i] ^ (r1 >> 8); + r1 = (x + r1) * 52845 + 22719; + fputc(hexChars[x >> 4], out); + fputc(hexChars[x & 0x0f], out); + line += 2; + if (line == 64) { + fputc('\n', out); + line = 0; + } + } +} + +void Type1CFontFile::getDeltaInt(char *buf, char *key, double *opA, + int n) { + int x, i; + + sprintf(buf, "/%s [", key); + buf += strlen(buf); + x = 0; + for (i = 0; i < n; ++i) { + x += (int)opA[i]; + sprintf(buf, "%s%d", i > 0 ? " " : "", x); + buf += strlen(buf); + } + sprintf(buf, "] def\n"); +} + +void Type1CFontFile::getDeltaReal(char *buf, char *key, double *opA, + int n) { + double x; + int i; + + sprintf(buf, "/%s [", key); + buf += strlen(buf); + x = 0; + for (i = 0; i < n; ++i) { + x += opA[i]; + sprintf(buf, "%s%g", i > 0 ? " " : "", x); + buf += strlen(buf); + } + sprintf(buf, "] def\n"); +} + +int Type1CFontFile::getIndexLen(Guchar *indexPtr) { + return (int)getWord(indexPtr, 2); +} + +Guchar *Type1CFontFile::getIndexValPtr(Guchar *indexPtr, int i) { + int n, offSize; + Guchar *idxStartPtr; + + n = (int)getWord(indexPtr, 2); + offSize = indexPtr[2]; + idxStartPtr = indexPtr + 3 + (n + 1) * offSize - 1; + return idxStartPtr + getWord(indexPtr + 3 + i * offSize, offSize); +} + +Guchar *Type1CFontFile::getIndexEnd(Guchar *indexPtr) { + int n, offSize; + Guchar *idxStartPtr; + + n = (int)getWord(indexPtr, 2); + offSize = indexPtr[2]; + idxStartPtr = indexPtr + 3 + (n + 1) * offSize - 1; + return idxStartPtr + getWord(indexPtr + 3 + n * offSize, offSize); +} + +Guint Type1CFontFile::getWord(Guchar *ptr, int size) { + Guint x; + int i; + + x = 0; + for (i = 0; i < size; ++i) { + x = (x << 8) + *ptr++; + } + return x; +} + +double Type1CFontFile::getNum(Guchar **ptr, GBool *isFP) { + static char nybChars[16] = "0123456789.ee -"; + int b0, b, nyb0, nyb1; + double x; + char buf[65]; + int i; + + x = 0; + *isFP = gFalse; + b0 = (*ptr)[0]; + if (b0 < 28) { + x = 0; + } else if (b0 == 28) { + x = ((*ptr)[1] << 8) + (*ptr)[2]; + *ptr += 3; + } else if (b0 == 29) { + x = ((*ptr)[1] << 24) + ((*ptr)[2] << 16) + ((*ptr)[3] << 8) + (*ptr)[4]; + *ptr += 5; + } else if (b0 == 30) { + *ptr += 1; + i = 0; + do { + b = *(*ptr)++; + nyb0 = b >> 4; + nyb1 = b & 0x0f; + if (nyb0 == 0xf) { break; - case 31: // hvcurveto - if (nOps < 4 || !(nOps % 4 == 0 || (nOps-1) % 4 == 0)) - error(-1, "Wrong number of args (%d) to Type 2 hvcurveto", nOps); - for (k = 0; k < nOps && k != nOps-5; k += 4) { - if (k % 8 == 0) { - eexecDumpNum(op[k], fp[k]); - eexecDumpNum(op[k+1], fp[k+1]); - eexecDumpNum(op[k+2], fp[k+2]); - eexecDumpNum(op[k+3], fp[k+3]); - eexecDumpOp1(31); - } else { - eexecDumpNum(op[k], fp[k]); - eexecDumpNum(op[k+1], fp[k+1]); - eexecDumpNum(op[k+2], fp[k+2]); - eexecDumpNum(op[k+3], fp[k+3]); - eexecDumpOp1(30); - } - } - if (k == nOps-5) { - if (k % 8 == 0) { - eexecDumpNum(op[k], fp[k]); - eexecDumpNum(0, gFalse); - eexecDumpNum(op[k+1], fp[k+1]); - eexecDumpNum(op[k+2], fp[k+2]); - eexecDumpNum(op[k+4], fp[k+4]); - eexecDumpNum(op[k+3], fp[k+3]); - } else { - eexecDumpNum(0, gFalse); - eexecDumpNum(op[k], fp[k]); - eexecDumpNum(op[k+1], fp[k+1]); - eexecDumpNum(op[k+2], fp[k+2]); - eexecDumpNum(op[k+3], fp[k+3]); - eexecDumpNum(op[k+4], fp[k+4]); - } - eexecDumpOp1(8); - } + } + buf[i++] = nybChars[nyb0]; + if (i == 64) { break; - case 1: // hstem - if (first) { - cvtGlyphWidth(nOps & 1); - first = gFalse; - } - if (nOps & 1) { - error(-1, "Wrong number of args (%d) to Type 2 hstem", nOps); + } + if (nyb0 == 0xc) { + buf[i++] = '-'; + } + if (i == 64) { + break; + } + if (nyb1 == 0xf) { + break; + } + buf[i++] = nybChars[nyb1]; + if (i == 64) { + break; + } + if (nyb1 == 0xc) { + buf[i++] = '-'; + } + } while (i < 64); + buf[i] = '\0'; + x = atof(buf); + *isFP = gTrue; + } else if (b0 == 31) { + x = 0; + } else if (b0 < 247) { + x = b0 - 139; + *ptr += 1; + } else if (b0 < 251) { + x = ((b0 - 247) << 8) + (*ptr)[1] + 108; + *ptr += 2; + } else { + x = -((b0 - 251) << 8) - (*ptr)[1] - 108; + *ptr += 2; + } + return x; +} + +char *Type1CFontFile::getString(int sid, char *buf) { + Guchar *idxPtr0, *idxPtr1; + int n; + + if (sid < 391) { + strcpy(buf, type1CStdStrings[sid]); + } else { + sid -= 391; + idxPtr0 = getIndexValPtr(stringIdxPtr, sid); + idxPtr1 = getIndexValPtr(stringIdxPtr, sid + 1); + if ((n = idxPtr1 - idxPtr0) > 255) { + n = 255; + } + strncpy(buf, (char *)idxPtr0, n); + buf[n] = '\0'; + } + return buf; +} + +//------------------------------------------------------------------------ +// TrueTypeFontFile +//------------------------------------------------------------------------ + +// +// Terminology +// ----------- +// +// character code = number used as an element of a text string +// +// character name = glyph name = name for a particular glyph within a +// font +// +// glyph index = position (within some internal table in the font) +// where the instructions to draw a particular glyph are +// stored +// +// Type 1 fonts +// ------------ +// +// Type 1 fonts contain: +// +// Encoding: array of glyph names, maps char codes to glyph names +// +// Encoding[charCode] = charName +// +// CharStrings: dictionary of instructions, keyed by character names, +// maps character name to glyph data +// +// CharStrings[charName] = glyphData +// +// TrueType fonts +// -------------- +// +// TrueType fonts contain: +// +// 'cmap' table: mapping from character code to glyph index; there may +// be multiple cmaps in a TrueType font +// +// cmap[charCode] = glyphIdx +// +// 'post' table: mapping from glyph index to glyph name +// +// post[glyphIdx] = glyphName +// +// Type 42 fonts +// ------------- +// +// Type 42 fonts contain: +// +// Encoding: array of glyph names, maps char codes to glyph names +// +// Encoding[charCode] = charName +// +// CharStrings: dictionary of glyph indexes, keyed by character names, +// maps character name to glyph index +// +// CharStrings[charName] = glyphIdx +// + +struct TTFontTableHdr { + char tag[4]; + Guint checksum; + Guint offset; + Guint length; +}; + +struct T42Table { + char *tag; // 4-byte tag + GBool required; // required by the TrueType spec? +}; + +// TrueType tables to be embedded in Type 42 fonts. +// NB: the table names must be in alphabetical order here. +#define nT42Tables 11 +static T42Table t42Tables[nT42Tables] = { + { "cvt ", gTrue }, + { "fpgm", gTrue }, + { "glyf", gTrue }, + { "head", gTrue }, + { "hhea", gTrue }, + { "hmtx", gTrue }, + { "loca", gTrue }, + { "maxp", gTrue }, + { "prep", gTrue }, + { "vhea", gFalse }, + { "vmtx", gFalse } +}; +#define t42HeadTable 3 +#define t42LocaTable 6 +#define t42GlyfTable 2 + +// Glyph names in some arbitrary standard that Apple uses for their +// TrueType fonts. +static char *macGlyphNames[258] = { + ".notdef", + "null", + "CR", + "space", + "exclam", + "quotedbl", + "numbersign", + "dollar", + "percent", + "ampersand", + "quotesingle", + "parenleft", + "parenright", + "asterisk", + "plus", + "comma", + "hyphen", + "period", + "slash", + "zero", + "one", + "two", + "three", + "four", + "five", + "six", + "seven", + "eight", + "nine", + "colon", + "semicolon", + "less", + "equal", + "greater", + "question", + "at", + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "I", + "J", + "K", + "L", + "M", + "N", + "O", + "P", + "Q", + "R", + "S", + "T", + "U", + "V", + "W", + "X", + "Y", + "Z", + "bracketleft", + "backslash", + "bracketright", + "asciicircum", + "underscore", + "grave", + "a", + "b", + "c", + "d", + "e", + "f", + "g", + "h", + "i", + "j", + "k", + "l", + "m", + "n", + "o", + "p", + "q", + "r", + "s", + "t", + "u", + "v", + "w", + "x", + "y", + "z", + "braceleft", + "bar", + "braceright", + "asciitilde", + "Adieresis", + "Aring", + "Ccedilla", + "Eacute", + "Ntilde", + "Odieresis", + "Udieresis", + "aacute", + "agrave", + "acircumflex", + "adieresis", + "atilde", + "aring", + "ccedilla", + "eacute", + "egrave", + "ecircumflex", + "edieresis", + "iacute", + "igrave", + "icircumflex", + "idieresis", + "ntilde", + "oacute", + "ograve", + "ocircumflex", + "odieresis", + "otilde", + "uacute", + "ugrave", + "ucircumflex", + "udieresis", + "dagger", + "degree", + "cent", + "sterling", + "section", + "bullet", + "paragraph", + "germandbls", + "registered", + "copyright", + "trademark", + "acute", + "dieresis", + "notequal", + "AE", + "Oslash", + "infinity", + "plusminus", + "lessequal", + "greaterequal", + "yen", + "mu1", + "partialdiff", + "summation", + "product", + "pi", + "integral", + "ordfeminine", + "ordmasculine", + "Ohm", + "ae", + "oslash", + "questiondown", + "exclamdown", + "logicalnot", + "radical", + "florin", + "approxequal", + "increment", + "guillemotleft", + "guillemotright", + "ellipsis", + "nbspace", + "Agrave", + "Atilde", + "Otilde", + "OE", + "oe", + "endash", + "emdash", + "quotedblleft", + "quotedblright", + "quoteleft", + "quoteright", + "divide", + "lozenge", + "ydieresis", + "Ydieresis", + "fraction", + "currency", + "guilsinglleft", + "guilsinglright", + "fi", + "fl", + "daggerdbl", + "periodcentered", + "quotesinglbase", + "quotedblbase", + "perthousand", + "Acircumflex", + "Ecircumflex", + "Aacute", + "Edieresis", + "Egrave", + "Iacute", + "Icircumflex", + "Idieresis", + "Igrave", + "Oacute", + "Ocircumflex", + "applelogo", + "Ograve", + "Uacute", + "Ucircumflex", + "Ugrave", + "dotlessi", + "circumflex", + "tilde", + "overscore", + "breve", + "dotaccent", + "ring", + "cedilla", + "hungarumlaut", + "ogonek", + "caron", + "Lslash", + "lslash", + "Scaron", + "scaron", + "Zcaron", + "zcaron", + "brokenbar", + "Eth", + "eth", + "Yacute", + "yacute", + "Thorn", + "thorn", + "minus", + "multiply", + "onesuperior", + "twosuperior", + "threesuperior", + "onehalf", + "onequarter", + "threequarters", + "franc", + "Gbreve", + "gbreve", + "Idot", + "Scedilla", + "scedilla", + "Cacute", + "cacute", + "Ccaron", + "ccaron", + "dmacron" +}; + +enum T42FontIndexMode { + t42FontModeUnicode, + t42FontModeCharCode, + t42FontModeCharCodeOffset, + t42FontModeMacRoman +}; + +TrueTypeFontFile::TrueTypeFontFile(char *fileA, int lenA) { + int pos, i; + + file = fileA; + len = lenA; + + encoding = NULL; + + // read table directory + nTables = getUShort(4); + tableHdrs = (TTFontTableHdr *)gmalloc(nTables * sizeof(TTFontTableHdr)); + pos = 12; + for (i = 0; i < nTables; ++i) { + tableHdrs[i].tag[0] = getByte(pos+0); + tableHdrs[i].tag[1] = getByte(pos+1); + tableHdrs[i].tag[2] = getByte(pos+2); + tableHdrs[i].tag[3] = getByte(pos+3); + tableHdrs[i].checksum = getULong(pos+4); + tableHdrs[i].offset = getULong(pos+8); + tableHdrs[i].length = getULong(pos+12); + pos += 16; + } + + // check for tables that are required by both the TrueType spec + // and the Type 42 spec + if (seekTable("head") < 0 || + seekTable("hhea") < 0 || + seekTable("loca") < 0 || + seekTable("maxp") < 0 || + seekTable("glyf") < 0 || + seekTable("hmtx") < 0) { + error(-1, "TrueType font file is missing a required table"); + return; + } + + // read the 'head' table + pos = seekTable("head"); + bbox[0] = getShort(pos + 36); + bbox[1] = getShort(pos + 38); + bbox[2] = getShort(pos + 40); + bbox[3] = getShort(pos + 42); + locaFmt = getShort(pos + 50); + + // read the 'maxp' table + pos = seekTable("maxp"); + nGlyphs = getUShort(pos + 4); +} + +TrueTypeFontFile::~TrueTypeFontFile() { + int i; + + if (encoding) { + for (i = 0; i < 256; ++i) { + gfree(encoding[i]); + } + gfree(encoding); + } + gfree(tableHdrs); +} + +char *TrueTypeFontFile::getName() { + return NULL; +} + +char **TrueTypeFontFile::getEncoding() { + int cmap[256]; + int nCmaps, cmapPlatform, cmapEncoding, cmapFmt; + int cmapLen, cmapOffset, cmapFirst; + int segCnt, segStart, segEnd, segDelta, segOffset; + int pos, i, j, k; + Guint fmt; + GString *s; + int stringIdx, stringPos, n; + + if (encoding) { + return encoding; + } + + //----- construct the (char code) -> (glyph idx) mapping + + // map everything to the missing glyph + for (i = 0; i < 256; ++i) { + cmap[i] = 0; + } + + // look for the 'cmap' table + if ((pos = seekTable("cmap")) >= 0) { + nCmaps = getUShort(pos+2); + + // if the font has a Windows-symbol cmap, use it; + // otherwise, use the first cmap in the table + for (i = 0; i < nCmaps; ++i) { + cmapPlatform = getUShort(pos + 4 + 8*i); + cmapEncoding = getUShort(pos + 4 + 8*i + 2); + if (cmapPlatform == 3 && cmapEncoding == 0) { + break; + } + } + if (i >= nCmaps) { + i = 0; + cmapPlatform = getUShort(pos + 4); + cmapEncoding = getUShort(pos + 4 + 2); + } + pos += getULong(pos + 4 + 8*i + 4); + + // read the cmap + cmapFmt = getUShort(pos); + switch (cmapFmt) { + case 0: // byte encoding table (Apple standard) + cmapLen = getUShort(pos + 2); + for (i = 0; i < cmapLen && i < 256; ++i) { + cmap[i] = getByte(pos + 6 + i); + } + break; + case 4: // segment mapping to delta values (Microsoft standard) + if (cmapPlatform == 3 && cmapEncoding == 0) { + // Windows-symbol uses char codes 0xf000 - 0xf0ff + cmapOffset = 0xf000; + } else { + cmapOffset = 0; + } + segCnt = getUShort(pos + 6) / 2; + for (i = 0; i < segCnt; ++i) { + segEnd = getUShort(pos + 14 + 2*i); + segStart = getUShort(pos + 16 + 2*segCnt + 2*i); + segDelta = getUShort(pos + 16 + 4*segCnt + 2*i); + segOffset = getUShort(pos + 16 + 6*segCnt + 2*i); + if (segStart - cmapOffset <= 0xff && + segEnd - cmapOffset >= 0) { + for (j = (segStart - cmapOffset >= 0) ? segStart : cmapOffset; + j <= segEnd && j - cmapOffset <= 0xff; + ++j) { + if (segOffset == 0) { + k = (j + segDelta) & 0xffff; + } else { + k = getUShort(pos + 16 + 6*segCnt + 2*i + + segOffset + 2 * (j - segStart)); + if (k != 0) { + k = (k + segDelta) & 0xffff; + } + } + cmap[j - cmapOffset] = k; + } } - d = 0; - dFP = gFalse; - for (k = 0; k < nOps; k += 2) { - if (op[k+1] < 0) { - d += op[k] + op[k+1]; - dFP |= fp[k] | fp[k+1]; - eexecDumpNum(d, dFP); - eexecDumpNum(-op[k+1], fp[k+1]); + } + break; + case 6: // trimmed table mapping + cmapFirst = getUShort(pos + 6); + cmapLen = getUShort(pos + 8); + for (i = cmapFirst; i < 256 && i < cmapFirst + cmapLen; ++i) { + cmap[i] = getUShort(pos + 10 + 2*i); + } + break; + default: + error(-1, "Unimplemented cmap format (%d) in TrueType font file", + cmapFmt); + break; + } + } + + //----- construct the (glyph idx) -> (glyph name) mapping + //----- and compute the (char code) -> (glyph name) mapping + + encoding = (char **)gmalloc(256 * sizeof(char *)); + for (i = 0; i < 256; ++i) { + encoding[i] = NULL; + } + + if ((pos = seekTable("post")) >= 0) { + fmt = getULong(pos); + + // Apple font + if (fmt == 0x00010000) { + for (i = 0; i < 256; ++i) { + j = (cmap[i] < 258) ? cmap[i] : 0; + encoding[i] = copyString(macGlyphNames[j]); + } + + // Microsoft font + } else if (fmt == 0x00020000) { + stringIdx = 0; + stringPos = pos + 34 + 2*nGlyphs; + for (i = 0; i < 256; ++i) { + if (cmap[i] < nGlyphs) { + j = getUShort(pos + 34 + 2 * cmap[i]); + if (j < 258) { + encoding[i] = copyString(macGlyphNames[j]); } else { - d += op[k]; - dFP |= fp[k]; - eexecDumpNum(d, dFP); - eexecDumpNum(op[k+1], fp[k+1]); - d += op[k+1]; - dFP |= fp[k+1]; + j -= 258; + if (j != stringIdx) { + for (stringIdx = 0, stringPos = pos + 34 + 2*nGlyphs; + stringIdx < j; + ++stringIdx, stringPos += 1 + getByte(stringPos)) ; + } + n = getByte(stringPos); + s = new GString(file + stringPos + 1, n); + encoding[i] = copyString(s->getCString()); + delete s; + ++stringIdx; + stringPos += 1 + n; } - eexecDumpOp1(1); - } - nHints += nOps / 2; - break; - case 3: // vstem - if (first) { - cvtGlyphWidth(nOps & 1); - first = gFalse; + } else { + encoding[i] = copyString(macGlyphNames[0]); } - if (nOps & 1) { - error(-1, "Wrong number of args (%d) to Type 2 vstem", nOps); + } + + // Apple subset + } else if (fmt == 0x000280000) { + for (i = 0; i < 256; ++i) { + if (cmap[i] < nGlyphs) { + j = i + getChar(pos + 32 + cmap[i]); + } else { + j = 0; } - d = 0; - dFP = gFalse; - for (k = 0; k < nOps; k += 2) { - if (op[k+1] < 0) { - d += op[k] + op[k+1]; - dFP |= fp[k] | fp[k+1]; - eexecDumpNum(d, dFP); - eexecDumpNum(-op[k+1], fp[k+1]); - } else { - d += op[k]; - dFP |= fp[k]; - eexecDumpNum(d, dFP); - eexecDumpNum(op[k+1], fp[k+1]); - d += op[k+1]; - dFP |= fp[k+1]; + encoding[i] = copyString(macGlyphNames[j]); + } + + // Ugh, just assume the Apple glyph set + } else { + for (i = 0; i < 256; ++i) { + j = (cmap[i] < 258) ? cmap[i] : 0; + encoding[i] = copyString(macGlyphNames[j]); + } + } + + // no "post" table: assume the Apple glyph set + } else { + for (i = 0; i < 256; ++i) { + j = (cmap[i] < 258) ? cmap[i] : 0; + encoding[i] = copyString(macGlyphNames[j]); + } + } + + return encoding; +} + +void TrueTypeFontFile::convertToType42(char *name, char **encodingA, + CharCodeToUnicode *toUnicode, + GBool pdfFontHasEncoding, FILE *out) { + // write the header + fprintf(out, "%%!PS-TrueTypeFont-%g\n", getFixed(0)); + + // begin the font dictionary + fprintf(out, "10 dict begin\n"); + fprintf(out, "/FontName /%s def\n", name); + fprintf(out, "/FontType 42 def\n"); + fprintf(out, "/FontMatrix [1 0 0 1 0 0] def\n"); + fprintf(out, "/FontBBox [%d %d %d %d] def\n", + bbox[0], bbox[1], bbox[2], bbox[3]); + fprintf(out, "/PaintType 0 def\n"); + + // write the guts of the dictionary + cvtEncoding(encodingA, out); + cvtCharStrings(encodingA, toUnicode, pdfFontHasEncoding, out); + cvtSfnts(out, NULL); + + // end the dictionary and define the font + fprintf(out, "FontName currentdict end definefont pop\n"); +} + +void TrueTypeFontFile::convertToCIDType2(char *name, Gushort *cidMap, + int nCIDs, FILE *out) { + Gushort cid; + int i, j, k; + + // write the header + fprintf(out, "%%!PS-TrueTypeFont-%g\n", getFixed(0)); + + // begin the font dictionary + fprintf(out, "20 dict begin\n"); + fprintf(out, "/CIDFontName /%s def\n", name); + fprintf(out, "/CIDFontType 2 def\n"); + fprintf(out, "/FontType 42 def\n"); + fprintf(out, "/CIDSystemInfo 3 dict dup begin\n"); + fprintf(out, " /Registry (Adobe) def\n"); + fprintf(out, " /Ordering (Identity) def\n"); + fprintf(out, " /Supplement 0 def\n"); + fprintf(out, " end def\n"); + fprintf(out, "/GDBytes 2 def\n"); + if (cidMap) { + fprintf(out, "/CIDCount %d def\n", nCIDs); + if (nCIDs > 32767) { + fprintf(out, "/CIDMap ["); + for (i = 0; i < nCIDs; i += 32768 - 16) { + fprintf(out, "<\n"); + for (j = 0; j < 32768 - 16 && i+j < nCIDs; j += 16) { + fprintf(out, " "); + for (k = 0; k < 16 && i+j+k < nCIDs; ++k) { + cid = cidMap[i+j+k]; + fprintf(out, "%02x%02x", (cid >> 8) & 0xff, cid & 0xff); } - eexecDumpOp1(3); - } - nHints += nOps / 2; - break; - case 18: // hstemhm - //~ ignored - if (first) { - cvtGlyphWidth(nOps & 1); - first = gFalse; + fprintf(out, "\n"); } - if (nOps & 1) { - error(-1, "Wrong number of args (%d) to Type 2 hstemhm", nOps); + fprintf(out, " >"); + } + fprintf(out, "\n"); + fprintf(out, "] def\n"); + } else { + fprintf(out, "/CIDMap <\n"); + for (i = 0; i < nCIDs; i += 16) { + fprintf(out, " "); + for (j = 0; j < 16 && i+j < nCIDs; ++j) { + cid = cidMap[i+j]; + fprintf(out, "%02x%02x", (cid >> 8) & 0xff, cid & 0xff); } - nHints += nOps / 2; + fprintf(out, "\n"); + } + fprintf(out, "> def\n"); + } + } else { + // direct mapping - just fill the string(s) with s[i]=i + fprintf(out, "/CIDCount %d def\n", nGlyphs); + if (nGlyphs > 32767) { + fprintf(out, "/CIDMap [\n"); + for (i = 0; i < nGlyphs; i += 32767) { + j = nGlyphs - i < 32767 ? nGlyphs - i : 32767; + fprintf(out, " %d string 0 1 %d {\n", 2 * j, j - 1); + fprintf(out, " 2 copy dup 2 mul exch %d add -8 bitshift put\n", i); + fprintf(out, " 1 index exch dup 2 mul 1 add exch %d add" + " 255 and put\n", i); + fprintf(out, " } for\n"); + } + fprintf(out, "] def\n"); + } else { + fprintf(out, "/CIDMap %d string\n", 2 * nGlyphs); + fprintf(out, " 0 1 %d {\n", nGlyphs - 1); + fprintf(out, " 2 copy dup 2 mul exch -8 bitshift put\n"); + fprintf(out, " 1 index exch dup 2 mul 1 add exch 255 and put\n"); + fprintf(out, " } for\n"); + fprintf(out, "def\n"); + } + } + fprintf(out, "/FontMatrix [1 0 0 1 0 0] def\n"); + fprintf(out, "/FontBBox [%d %d %d %d] def\n", + bbox[0], bbox[1], bbox[2], bbox[3]); + fprintf(out, "/PaintType 0 def\n"); + fprintf(out, "/Encoding [] readonly def\n"); + fprintf(out, "/CharStrings 1 dict dup begin\n"); + fprintf(out, " /.notdef 0 def\n"); + fprintf(out, " end readonly def\n"); + + // write the guts of the dictionary + cvtSfnts(out, NULL); + + // end the dictionary and define the font + fprintf(out, "CIDFontName currentdict end /CIDFont defineresource pop\n"); +} + +void TrueTypeFontFile::convertToType0(char *name, Gushort *cidMap, + int nCIDs, FILE *out) { + GString *sfntsName; + int n, i, j; + + // write the Type 42 sfnts array + sfntsName = (new GString(name))->append("_sfnts"); + cvtSfnts(out, sfntsName); + delete sfntsName; + + // write the descendant Type 42 fonts + n = cidMap ? nCIDs : nGlyphs; + for (i = 0; i < n; i += 256) { + fprintf(out, "10 dict begin\n"); + fprintf(out, "/FontName /%s_%02x def\n", name, i >> 8); + fprintf(out, "/FontType 42 def\n"); + fprintf(out, "/FontMatrix [1 0 0 1 0 0] def\n"); + fprintf(out, "/FontBBox [%d %d %d %d] def\n", + bbox[0], bbox[1], bbox[2], bbox[3]); + fprintf(out, "/PaintType 0 def\n"); + fprintf(out, "/sfnts %s_sfnts def\n", name); + fprintf(out, "/Encoding 256 array\n"); + for (j = 0; j < 256 && i+j < n; ++j) { + fprintf(out, "dup %d /c%02x put\n", j, j); + } + fprintf(out, "readonly def\n"); + fprintf(out, "/CharStrings 257 dict dup begin\n"); + fprintf(out, "/.notdef 0 def\n"); + for (j = 0; j < 256 && i+j < n; ++j) { + fprintf(out, "/c%02x %d def\n", j, cidMap ? cidMap[i+j] : i+j); + } + fprintf(out, "end readonly def\n"); + fprintf(out, "FontName currentdict end definefont pop\n"); + } + + // write the Type 0 parent font + fprintf(out, "16 dict begin\n"); + fprintf(out, "/FontName /%s def\n", name); + fprintf(out, "/FontType 0 def\n"); + fprintf(out, "/FontMatrix [1 0 0 1 0 0] def\n"); + fprintf(out, "/FMapType 2 def\n"); + fprintf(out, "/Encoding [\n"); + for (i = 0; i < n; i += 256) { + fprintf(out, "%d\n", i >> 8); + } + fprintf(out, "] def\n"); + fprintf(out, "/FDepVector [\n"); + for (i = 0; i < n; i += 256) { + fprintf(out, "/%s_%02x findfont\n", name, i >> 8); + } + fprintf(out, "] def\n"); + fprintf(out, "FontName currentdict end definefont pop\n"); +} + +int TrueTypeFontFile::getByte(int pos) { + if (pos < 0 || pos >= len) { + return 0; + } + return file[pos] & 0xff; +} + +int TrueTypeFontFile::getChar(int pos) { + int x; + + if (pos < 0 || pos >= len) { + return 0; + } + x = file[pos] & 0xff; + if (x & 0x80) + x |= 0xffffff00; + return x; +} + +int TrueTypeFontFile::getUShort(int pos) { + int x; + + if (pos < 0 || pos+1 >= len) { + return 0; + } + x = file[pos] & 0xff; + x = (x << 8) + (file[pos+1] & 0xff); + return x; +} + +int TrueTypeFontFile::getShort(int pos) { + int x; + + if (pos < 0 || pos+1 >= len) { + return 0; + } + x = file[pos] & 0xff; + x = (x << 8) + (file[pos+1] & 0xff); + if (x & 0x8000) + x |= 0xffff0000; + return x; +} + +Guint TrueTypeFontFile::getULong(int pos) { + int x; + + if (pos < 0 || pos+3 >= len) { + return 0; + } + x = file[pos] & 0xff; + x = (x << 8) + (file[pos+1] & 0xff); + x = (x << 8) + (file[pos+2] & 0xff); + x = (x << 8) + (file[pos+3] & 0xff); + return x; +} + +double TrueTypeFontFile::getFixed(int pos) { + int x, y; + + x = getShort(pos); + y = getUShort(pos+2); + return (double)x + (double)y / 65536; +} + +int TrueTypeFontFile::seekTable(char *tag) { + int i; + + for (i = 0; i < nTables; ++i) { + if (!strncmp(tableHdrs[i].tag, tag, 4)) { + return tableHdrs[i].offset; + } + } + return -1; +} + +int TrueTypeFontFile::seekTableIdx(char *tag) { + int i; + + for (i = 0; i < nTables; ++i) { + if (!strncmp(tableHdrs[i].tag, tag, 4)) { + return i; + } + } + return -1; +} + +void TrueTypeFontFile::cvtEncoding(char **encodingA, FILE *out) { + char *name; + int i; + + fprintf(out, "/Encoding 256 array\n"); + for (i = 0; i < 256; ++i) { + if (!(name = encodingA[i])) { + name = ".notdef"; + } + fprintf(out, "dup %d /%s put\n", i, name); + } + fprintf(out, "readonly def\n"); +} + +void TrueTypeFontFile::cvtCharStrings(char **encodingA, + CharCodeToUnicode *toUnicode, + GBool pdfFontHasEncoding, FILE *out) { + int unicodeCmap, macRomanCmap, msSymbolCmap; + int nCmaps, cmapPlatform, cmapEncoding, cmapFmt, cmapOffset; + T42FontIndexMode mode; + char *name; + Unicode u; + int pos, i, j, k; + + // always define '.notdef' + fprintf(out, "/CharStrings 256 dict dup begin\n"); + fprintf(out, "/.notdef 0 def\n"); + + // if there's no 'cmap' table, punt + if ((pos = seekTable("cmap")) < 0) { + goto err; + } + + // To match up with the Adobe-defined behaviour, we choose a cmap + // like this: + // 1. If the PDF font has an encoding: + // 1a. If the TrueType font has a Microsoft Unicode cmap, use it, + // and use the Unicode indexes, not the char codes. + // 1b. If the TrueType font has a Macintosh Roman cmap, use it, + // and reverse map the char names through MacRomanEncoding to + // get char codes. + // 2. If the PDF font does not have an encoding: + // 2a. If the TrueType font has a Macintosh Roman cmap, use it, + // and use char codes directly. + // 2b. If the TrueType font has a Microsoft Symbol cmap, use it, + // and use (0xf000 + char code). + // 3. If none of these rules apply, use the first cmap and hope for + // the best (this shouldn't happen). + nCmaps = getUShort(pos+2); + unicodeCmap = macRomanCmap = msSymbolCmap = -1; + cmapOffset = 0; + for (i = 0; i < nCmaps; ++i) { + cmapPlatform = getUShort(pos + 4 + 8*i); + cmapEncoding = getUShort(pos + 4 + 8*i + 2); + if (cmapPlatform == 3 && cmapEncoding == 1) { + unicodeCmap = i; + } else if (cmapPlatform == 1 && cmapEncoding == 0) { + macRomanCmap = i; + } else if (cmapPlatform == 3 && cmapEncoding == 0) { + msSymbolCmap = i; + } + } + i = 0; + mode = t42FontModeCharCode; + if (pdfFontHasEncoding) { + if (unicodeCmap >= 0) { + i = unicodeCmap; + mode = t42FontModeUnicode; + } else if (macRomanCmap >= 0) { + i = macRomanCmap; + mode = t42FontModeMacRoman; + } + } else { + if (macRomanCmap >= 0) { + i = macRomanCmap; + mode = t42FontModeCharCode; + } else if (msSymbolCmap >= 0) { + i = msSymbolCmap; + mode = t42FontModeCharCodeOffset; + cmapOffset = 0xf000; + } + } + cmapPlatform = getUShort(pos + 4 + 8*i); + cmapEncoding = getUShort(pos + 4 + 8*i + 2); + pos += getULong(pos + 4 + 8*i + 4); + cmapFmt = getUShort(pos); + if (cmapFmt != 0 && cmapFmt != 4 && cmapFmt != 6) { + error(-1, "Unimplemented cmap format (%d) in TrueType font file", + cmapFmt); + goto err; + } + + // map char name to glyph index: + // 1. use encoding to map name to char code + // 2. use cmap to map char code to glyph index + j = 0; // make gcc happy + for (i = 0; i < 256; ++i) { + name = encodingA[i]; + if (name && strcmp(name, ".notdef")) { + switch (mode) { + case t42FontModeUnicode: + toUnicode->mapToUnicode((CharCode)i, &u, 1); + j = (int)u; break; - case 23: // vstemhm - //~ ignored - if (first) { - cvtGlyphWidth(nOps & 1); - first = gFalse; - } - if (nOps & 1) { - error(-1, "Wrong number of args (%d) to Type 2 vstemhm", nOps); - } - nHints += nOps / 2; + case t42FontModeCharCode: + j = i; break; - case 10: // callsubr - case 11: // return - case 16: // blend - case 29: // callgsubr - error(-1, "Unimplemented Type 2 charstring op: %d", s[i]); + case t42FontModeCharCodeOffset: + j = cmapOffset + i; break; - default: - error(-1, "Illegal Type 2 charstring op: %d", s[i]); + case t42FontModeMacRoman: + j = globalParams->getMacRomanCharCode(name); break; } - ++i; - nOps = 0; - } else if (s[i] <= 246) { - if (nOps < 48) { - fp[nOps] = gFalse; - op[nOps++] = (int)s[i] - 139; - } - ++i; - } else if (s[i] <= 250) { - if (nOps < 48) { - fp[nOps] = gFalse; - op[nOps++] = (((int)s[i] - 247) << 8) + (int)s[i+1] + 108; + // note: Distiller (maybe Adobe's PS interpreter in general) + // doesn't like TrueType fonts that have CharStrings entries + // which point to nonexistent glyphs, hence the (k < nGlyphs) + // test + if ((k = getCmapEntry(cmapFmt, pos, j)) > 0 && + k < nGlyphs) { + fprintf(out, "/%s %d def\n", name, k); } - i += 2; - } else if (s[i] <= 254) { - if (nOps < 48) { - fp[nOps] = gFalse; - op[nOps++] = -(((int)s[i] - 251) << 8) - (int)s[i+1] - 108; + } + } + + err: + fprintf(out, "end readonly def\n"); +} + +int TrueTypeFontFile::getCmapEntry(int cmapFmt, int pos, int code) { + int cmapLen, cmapFirst; + int segCnt, segEnd, segStart, segDelta, segOffset; + int a, b, m, i; + + switch (cmapFmt) { + case 0: // byte encoding table (Apple standard) + cmapLen = getUShort(pos + 2); + if (code >= cmapLen) { + return 0; + } + return getByte(pos + 6 + code); + + case 4: // segment mapping to delta values (Microsoft standard) + segCnt = getUShort(pos + 6) / 2; + a = -1; + b = segCnt - 1; + segEnd = getUShort(pos + 14 + 2*b); + if (code > segEnd) { + // malformed font -- the TrueType spec requires the last segEnd + // to be 0xffff + return 0; + } + // invariant: seg[a].end < code <= seg[b].end + while (b - a > 1) { + m = (a + b) / 2; + segEnd = getUShort(pos + 14 + 2*m); + if (segEnd < code) { + a = m; + } else { + b = m; } - i += 2; + } + segStart = getUShort(pos + 16 + 2*segCnt + 2*b); + segDelta = getUShort(pos + 16 + 4*segCnt + 2*b); + segOffset = getUShort(pos + 16 + 6*segCnt + 2*b); + if (segOffset == 0) { + i = (code + segDelta) & 0xffff; } else { - x = (s[i+1] << 24) | (s[i+2] << 16) | (s[i+3] << 8) | s[i+4]; - if (x & 0x80000000) - x |= -1 << 31; - if (nOps < 48) { - fp[nOps] = gTrue; - op[nOps++] = (double)x / 65536.0; + i = getUShort(pos + 16 + 6*segCnt + 2*b + + segOffset + 2 * (code - segStart)); + if (i != 0) { + i = (i + segDelta) & 0xffff; } - i += 5; } - } + return i; - sprintf(eBuf, "/%s %d RD ", name, charBuf->getLength()); - eexecWrite(eBuf); - eexecWriteCharstring((Guchar *)charBuf->getCString(), charBuf->getLength()); - eexecWrite(" ND\n"); - delete charBuf; -} + case 6: // trimmed table mapping + cmapFirst = getUShort(pos + 6); + cmapLen = getUShort(pos + 8); + if (code < cmapFirst || code >= cmapFirst + cmapLen) { + return 0; + } + return getUShort(pos + 10 + 2*(code - cmapFirst)); -void Type1CFontConverter::cvtGlyphWidth(GBool useOp) { - double w; - GBool wFP; - int i; + default: + // shouldn't happen - this is checked earlier + break; + } + return 0; +} - if (useOp) { - w = nominalWidthX + op[0]; - wFP = nominalWidthXFP | fp[0]; - for (i = 1; i < nOps; ++i) { - op[i-1] = op[i]; - fp[i-1] = fp[i]; +void TrueTypeFontFile::cvtSfnts(FILE *out, GString *name) { + TTFontTableHdr newTableHdrs[nT42Tables]; + char tableDir[12 + nT42Tables*16]; + char headTable[54]; + int *origLocaTable; + char *locaTable; + int nNewTables; + Guint checksum; + int pos, glyfPos, length, glyphLength, pad; + int i, j, k; + + // construct the 'head' table, zero out the font checksum + memcpy(headTable, file + seekTable("head"), 54); + headTable[8] = headTable[9] = headTable[10] = headTable[11] = (char)0; + + // read the original 'loca' table and construct the new one + // (pad each glyph out to a multiple of 4 bytes) + origLocaTable = (int *)gmalloc((nGlyphs + 1) * sizeof(int)); + pos = seekTable("loca"); + for (i = 0; i <= nGlyphs; ++i) { + if (locaFmt) { + origLocaTable[i] = getULong(pos + 4*i); + } else { + origLocaTable[i] = 2 * getUShort(pos + 2*i); } - --nOps; + } + locaTable = (char *)gmalloc((nGlyphs + 1) * (locaFmt ? 4 : 2)); + if (locaFmt) { + locaTable[0] = locaTable[1] = locaTable[2] = locaTable[3] = 0; } else { - w = defaultWidthX; - wFP = defaultWidthXFP; + locaTable[0] = locaTable[1] = 0; + } + pos = 0; + for (i = 1; i <= nGlyphs; ++i) { + length = origLocaTable[i] - origLocaTable[i-1]; + if (length & 3) { + length += 4 - (length & 3); + } + pos += length; + if (locaFmt) { + locaTable[4*i ] = (char)(pos >> 24); + locaTable[4*i+1] = (char)(pos >> 16); + locaTable[4*i+2] = (char)(pos >> 8); + locaTable[4*i+3] = (char) pos; + } else { + locaTable[2*i ] = (char)(pos >> 9); + locaTable[2*i+1] = (char)(pos >> 1); + } } - eexecDumpNum(0, gFalse); - eexecDumpNum(w, wFP); - eexecDumpOp1(13); -} -void Type1CFontConverter::eexecDumpNum(double x, GBool fp) { - Guchar buf[12]; - int y, n; + // count the number of tables + nNewTables = 0; + for (i = 0; i < nT42Tables; ++i) { + if (t42Tables[i].required || + seekTable(t42Tables[i].tag) >= 0) { + ++nNewTables; + } + } - n = 0; - if (fp) { - if (x >= -32768 && x < 32768) { - y = (int)(x * 256.0); - buf[0] = 255; - buf[1] = (Guchar)(y >> 24); - buf[2] = (Guchar)(y >> 16); - buf[3] = (Guchar)(y >> 8); - buf[4] = (Guchar)y; - buf[5] = 255; - buf[6] = 0; - buf[7] = 0; - buf[8] = 1; - buf[9] = 0; - buf[10] = 12; - buf[11] = 12; - n = 12; + // construct the new table headers, including table checksums + // (pad each table out to a multiple of 4 bytes) + pos = 12 + nNewTables*16; + k = 0; + for (i = 0; i < nT42Tables; ++i) { + length = -1; + checksum = 0; // make gcc happy + if (i == t42HeadTable) { + length = 54; + checksum = computeTableChecksum(headTable, 54); + } else if (i == t42LocaTable) { + length = (nGlyphs + 1) * (locaFmt ? 4 : 2); + checksum = computeTableChecksum(locaTable, length); + } else if (i == t42GlyfTable) { + length = 0; + checksum = 0; + glyfPos = seekTable("glyf"); + for (j = 0; j < nGlyphs; ++j) { + glyphLength = origLocaTable[j+1] - origLocaTable[j]; + pad = (glyphLength & 3) ? 4 - (glyphLength & 3) : 0; + length += glyphLength + pad; + checksum += computeTableChecksum(file + glyfPos + origLocaTable[j], + glyphLength); + } } else { - error(-1, "Type 2 fixed point constant out of range"); + if ((j = seekTableIdx(t42Tables[i].tag)) >= 0) { + length = tableHdrs[j].length; + checksum = computeTableChecksum(file + tableHdrs[j].offset, length); + } else if (t42Tables[i].required) { + error(-1, "Embedded TrueType font is missing a required table ('%s')", + t42Tables[i].tag); + length = 0; + checksum = 0; + } + } + if (length >= 0) { + strncpy(newTableHdrs[k].tag, t42Tables[i].tag, 4); + newTableHdrs[k].checksum = checksum; + newTableHdrs[k].offset = pos; + newTableHdrs[k].length = length; + pad = (length & 3) ? 4 - (length & 3) : 0; + pos += length + pad; + ++k; } + } + + // construct the table directory + tableDir[0] = 0x00; // sfnt version + tableDir[1] = 0x01; + tableDir[2] = 0x00; + tableDir[3] = 0x00; + tableDir[4] = 0; // numTables + tableDir[5] = nNewTables; + tableDir[6] = 0; // searchRange + tableDir[7] = (char)128; + tableDir[8] = 0; // entrySelector + tableDir[9] = 3; + tableDir[10] = 0; // rangeShift + tableDir[11] = (char)(16 * nNewTables - 128); + pos = 12; + for (i = 0; i < nNewTables; ++i) { + tableDir[pos ] = newTableHdrs[i].tag[0]; + tableDir[pos+ 1] = newTableHdrs[i].tag[1]; + tableDir[pos+ 2] = newTableHdrs[i].tag[2]; + tableDir[pos+ 3] = newTableHdrs[i].tag[3]; + tableDir[pos+ 4] = (char)(newTableHdrs[i].checksum >> 24); + tableDir[pos+ 5] = (char)(newTableHdrs[i].checksum >> 16); + tableDir[pos+ 6] = (char)(newTableHdrs[i].checksum >> 8); + tableDir[pos+ 7] = (char) newTableHdrs[i].checksum; + tableDir[pos+ 8] = (char)(newTableHdrs[i].offset >> 24); + tableDir[pos+ 9] = (char)(newTableHdrs[i].offset >> 16); + tableDir[pos+10] = (char)(newTableHdrs[i].offset >> 8); + tableDir[pos+11] = (char) newTableHdrs[i].offset; + tableDir[pos+12] = (char)(newTableHdrs[i].length >> 24); + tableDir[pos+13] = (char)(newTableHdrs[i].length >> 16); + tableDir[pos+14] = (char)(newTableHdrs[i].length >> 8); + tableDir[pos+15] = (char) newTableHdrs[i].length; + pos += 16; + } + + // compute the font checksum and store it in the head table + checksum = computeTableChecksum(tableDir, 12 + nNewTables*16); + for (i = 0; i < nNewTables; ++i) { + checksum += newTableHdrs[i].checksum; + } + checksum = 0xb1b0afba - checksum; // because the TrueType spec says so + headTable[ 8] = (char)(checksum >> 24); + headTable[ 9] = (char)(checksum >> 16); + headTable[10] = (char)(checksum >> 8); + headTable[11] = (char) checksum; + + // start the sfnts array + if (name) { + fprintf(out, "/%s [\n", name->getCString()); } else { - y = (int)x; - if (y >= -107 && y <= 107) { - buf[0] = (Guchar)(y + 139); - n = 1; - } else if (y > 107 && y <= 1131) { - y -= 108; - buf[0] = (Guchar)((y >> 8) + 247); - buf[1] = (Guchar)(y & 0xff); - n = 2; - } else if (y < -107 && y >= -1131) { - y = -y - 108; - buf[0] = (Guchar)((y >> 8) + 251); - buf[1] = (Guchar)(y & 0xff); - n = 2; + fprintf(out, "/sfnts [\n"); + } + + // write the table directory + dumpString(tableDir, 12 + nNewTables*16, out); + + // write the tables + for (i = 0; i < nNewTables; ++i) { + if (i == t42HeadTable) { + dumpString(headTable, 54, out); + } else if (i == t42LocaTable) { + length = (nGlyphs + 1) * (locaFmt ? 4 : 2); + dumpString(locaTable, length, out); + } else if (i == t42GlyfTable) { + glyfPos = seekTable("glyf"); + for (j = 0; j < nGlyphs; ++j) { + length = origLocaTable[j+1] - origLocaTable[j]; + if (length > 0) { + dumpString(file + glyfPos + origLocaTable[j], length, out); + } + } } else { - buf[0] = 255; - buf[1] = (Guchar)(y >> 24); - buf[2] = (Guchar)(y >> 16); - buf[3] = (Guchar)(y >> 8); - buf[4] = (Guchar)y; - n = 5; + // length == 0 means the table is missing and the error was + // already reported during the construction of the table + // headers + if ((length = newTableHdrs[i].length) > 0) { + dumpString(file + seekTable(t42Tables[i].tag), length, out); + } } } - charBuf->append((char *)buf, n); -} -void Type1CFontConverter::eexecDumpOp1(int op) { - charBuf->append((char)op); -} + // end the sfnts array + fprintf(out, "] def\n"); -void Type1CFontConverter::eexecDumpOp2(int op) { - charBuf->append((char)12); - charBuf->append((char)op); + gfree(origLocaTable); + gfree(locaTable); } -void Type1CFontConverter::eexecWriteCharstring(Guchar *s, int n) { - Gushort r2; - Guchar x; - int i; +void TrueTypeFontFile::dumpString(char *s, int length, FILE *out) { + int pad, i, j; - r2 = 4330; + fprintf(out, "<"); + for (i = 0; i < length; i += 32) { + for (j = 0; j < 32 && i+j < length; ++j) { + fprintf(out, "%02X", s[i+j] & 0xff); + } + if (i % (65536 - 32) == 65536 - 64) { + fprintf(out, ">\n<"); + } else if (i+32 < length) { + fprintf(out, "\n"); + } + } + if (length & 3) { + pad = 4 - (length & 3); + for (i = 0; i < pad; ++i) { + fprintf(out, "00"); + } + } + // add an extra zero byte because the Adobe Type 42 spec says so + fprintf(out, "00>\n"); +} - for (i = 0; i < n; ++i) { - // charstring encryption - x = s[i]; - x ^= (r2 >> 8); - r2 = (x + r2) * 52845 + 22719; +Guint TrueTypeFontFile::computeTableChecksum(char *data, int length) { + Guint checksum, word; + int i; - // eexec encryption - x ^= (r1 >> 8); - r1 = (x + r1) * 52845 + 22719; - fputc(hexChars[x >> 4], out); - fputc(hexChars[x & 0x0f], out); - line += 2; - if (line == 64) { - fputc('\n', out); - line = 0; + checksum = 0; + for (i = 0; i+3 < length; i += 4) { + word = ((data[i ] & 0xff) << 24) + + ((data[i+1] & 0xff) << 16) + + ((data[i+2] & 0xff) << 8) + + (data[i+3] & 0xff); + checksum += word; + } + if (length & 3) { + word = 0; + i = length & ~3; + switch (length & 3) { + case 3: + word |= (data[i+2] & 0xff) << 8; + case 2: + word |= (data[i+1] & 0xff) << 16; + case 1: + word |= (data[i ] & 0xff) << 24; + break; } + checksum += word; } + return checksum; } -void Type1CFontConverter::getDeltaInt(char *buf, char *name, double *op, - int n) { - int x, i; +void TrueTypeFontFile::writeTTF(FILE *out) { + static char cmapTab[20] = { + 0, 0, // table version number + 0, 1, // number of encoding tables + 0, 1, // platform ID + 0, 0, // encoding ID + 0, 0, 0, 12, // offset of subtable + 0, 0, // subtable format + 0, 1, // subtable length + 0, 1, // subtable version + 0, // map char 0 -> glyph 0 + 0 // pad to multiple of four bytes + }; + static char nameTab[8] = { + 0, 0, // format + 0, 0, // number of name records + 0, 6, // offset to start of string storage + 0, 0 // pad to multiple of four bytes + }; + static char postTab[32] = { + 0, 1, 0, 0, // format + 0, 0, 0, 0, // italic angle + 0, 0, // underline position + 0, 0, // underline thickness + 0, 0, 0, 0, // fixed pitch + 0, 0, 0, 0, // min Type 42 memory + 0, 0, 0, 0, // max Type 42 memory + 0, 0, 0, 0, // min Type 1 memory + 0, 0, 0, 0 // max Type 1 memory + }; + GBool haveCmap, haveName, havePost; + GBool dirCmap, dirName, dirPost; + int nNewTables, nAllTables, pad; + char *tableDir; + Guint t, pos; + int i, j; + + // check for missing tables + haveCmap = seekTable("cmap") >= 0; + haveName = seekTable("name") >= 0; + havePost = seekTable("post") >= 0; + nNewTables = (haveCmap ? 0 : 1) + (haveName ? 0 : 1) + (havePost ? 0 : 1); + if (!nNewTables) { + // none are missing - write the TTF file as is + fwrite(file, 1, len, out); + return; + } - sprintf(buf, "/%s [", name); - buf += strlen(buf); - x = 0; - for (i = 0; i < n; ++i) { - x += (int)op[i]; - sprintf(buf, "%s%d", i > 0 ? " " : "", x); - buf += strlen(buf); + // construct the new table directory + nAllTables = nTables + nNewTables; + tableDir = (char *)gmalloc(12 + nAllTables * 16); + memcpy(tableDir, file, 12 + nTables * 16); + tableDir[4] = (char)((nAllTables >> 8) & 0xff); + tableDir[5] = (char)(nAllTables & 0xff); + for (i = -1, t = (Guint)nAllTables; t; ++i, t >>= 1) ; + t = 1 << (4 + i); + tableDir[6] = (char)((t >> 8) & 0xff); + tableDir[7] = (char)(t & 0xff); + tableDir[8] = (char)((i >> 8) & 0xff); + tableDir[9] = (char)(i & 0xff); + t = nAllTables * 16 - t; + tableDir[10] = (char)((t >> 8) & 0xff); + tableDir[11] = (char)(t & 0xff); + dirCmap = haveCmap; + dirName = haveName; + dirPost = havePost; + j = 0; + pad = (len & 3) ? 4 - (len & 3) : 0; + pos = len + pad + 16 * nNewTables; + for (i = 0; i < nTables; ++i) { + if (!dirCmap && strncmp(tableHdrs[i].tag, "cmap", 4) > 0) { + tableDir[12 + 16*j ] = 'c'; + tableDir[12 + 16*j + 1] = 'm'; + tableDir[12 + 16*j + 2] = 'a'; + tableDir[12 + 16*j + 3] = 'p'; + tableDir[12 + 16*j + 4] = (char)0; //~ should compute the checksum + tableDir[12 + 16*j + 5] = (char)0; + tableDir[12 + 16*j + 6] = (char)0; + tableDir[12 + 16*j + 7] = (char)0; + tableDir[12 + 16*j + 8] = (char)((pos >> 24) & 0xff); + tableDir[12 + 16*j + 9] = (char)((pos >> 16) & 0xff); + tableDir[12 + 16*j + 10] = (char)((pos >> 8) & 0xff); + tableDir[12 + 16*j + 11] = (char)( pos & 0xff); + tableDir[12 + 16*j + 12] = (char)((sizeof(cmapTab) >> 24) & 0xff); + tableDir[12 + 16*j + 13] = (char)((sizeof(cmapTab) >> 16) & 0xff); + tableDir[12 + 16*j + 14] = (char)((sizeof(cmapTab) >> 8) & 0xff); + tableDir[12 + 16*j + 15] = (char)( sizeof(cmapTab) & 0xff); + pos += sizeof(cmapTab); + ++j; + dirCmap = gTrue; + } + if (!dirName && strncmp(tableHdrs[i].tag, "name", 4) > 0) { + tableDir[12 + 16*j ] = 'n'; + tableDir[12 + 16*j + 1] = 'a'; + tableDir[12 + 16*j + 2] = 'm'; + tableDir[12 + 16*j + 3] = 'e'; + tableDir[12 + 16*j + 4] = (char)0; //~ should compute the checksum + tableDir[12 + 16*j + 5] = (char)0; + tableDir[12 + 16*j + 6] = (char)0; + tableDir[12 + 16*j + 7] = (char)0; + tableDir[12 + 16*j + 8] = (char)((pos >> 24) & 0xff); + tableDir[12 + 16*j + 9] = (char)((pos >> 16) & 0xff); + tableDir[12 + 16*j + 10] = (char)((pos >> 8) & 0xff); + tableDir[12 + 16*j + 11] = (char)( pos & 0xff); + tableDir[12 + 16*j + 12] = (char)((sizeof(nameTab) >> 24) & 0xff); + tableDir[12 + 16*j + 13] = (char)((sizeof(nameTab) >> 16) & 0xff); + tableDir[12 + 16*j + 14] = (char)((sizeof(nameTab) >> 8) & 0xff); + tableDir[12 + 16*j + 15] = (char)( sizeof(nameTab) & 0xff); + pos += sizeof(nameTab); + ++j; + dirName = gTrue; + } + if (!dirName && strncmp(tableHdrs[i].tag, "post", 4) > 0) { + tableDir[12 + 16*j ] = 'p'; + tableDir[12 + 16*j + 1] = 'o'; + tableDir[12 + 16*j + 2] = 's'; + tableDir[12 + 16*j + 3] = 't'; + tableDir[12 + 16*j + 4] = (char)0; //~ should compute the checksum + tableDir[12 + 16*j + 5] = (char)0; + tableDir[12 + 16*j + 6] = (char)0; + tableDir[12 + 16*j + 7] = (char)0; + tableDir[12 + 16*j + 8] = (char)((pos >> 24) & 0xff); + tableDir[12 + 16*j + 9] = (char)((pos >> 16) & 0xff); + tableDir[12 + 16*j + 10] = (char)((pos >> 8) & 0xff); + tableDir[12 + 16*j + 11] = (char)( pos & 0xff); + tableDir[12 + 16*j + 12] = (char)((sizeof(postTab) >> 24) & 0xff); + tableDir[12 + 16*j + 13] = (char)((sizeof(postTab) >> 16) & 0xff); + tableDir[12 + 16*j + 14] = (char)((sizeof(postTab) >> 8) & 0xff); + tableDir[12 + 16*j + 15] = (char)( sizeof(postTab) & 0xff); + pos += sizeof(postTab); + ++j; + dirPost = gTrue; + } + memcpy(&tableDir[12 + 16*j], file + 12 + 16*i, 16); + t = tableHdrs[i].offset + nNewTables * 16; + tableDir[12 + 16*j + 8] = (char)((t >> 24) & 0xff); + tableDir[12 + 16*j + 9] = (char)((t >> 16) & 0xff); + tableDir[12 + 16*j + 10] = (char)((t >> 8) & 0xff); + tableDir[12 + 16*j + 11] = (char)( t & 0xff); + ++j; + } + if (!dirCmap) { + tableDir[12 + 16*j ] = 'c'; + tableDir[12 + 16*j + 1] = 'm'; + tableDir[12 + 16*j + 2] = 'a'; + tableDir[12 + 16*j + 3] = 'p'; + tableDir[12 + 16*j + 4] = (char)0; //~ should compute the checksum + tableDir[12 + 16*j + 5] = (char)0; + tableDir[12 + 16*j + 6] = (char)0; + tableDir[12 + 16*j + 7] = (char)0; + tableDir[12 + 16*j + 8] = (char)((pos >> 24) & 0xff); + tableDir[12 + 16*j + 9] = (char)((pos >> 16) & 0xff); + tableDir[12 + 16*j + 10] = (char)((pos >> 8) & 0xff); + tableDir[12 + 16*j + 11] = (char)( pos & 0xff); + tableDir[12 + 16*j + 12] = (char)((sizeof(cmapTab) >> 24) & 0xff); + tableDir[12 + 16*j + 13] = (char)((sizeof(cmapTab) >> 16) & 0xff); + tableDir[12 + 16*j + 14] = (char)((sizeof(cmapTab) >> 8) & 0xff); + tableDir[12 + 16*j + 15] = (char)( sizeof(cmapTab) & 0xff); + pos += sizeof(cmapTab); + ++j; + dirCmap = gTrue; + } + if (!dirName) { + tableDir[12 + 16*j ] = 'n'; + tableDir[12 + 16*j + 1] = 'a'; + tableDir[12 + 16*j + 2] = 'm'; + tableDir[12 + 16*j + 3] = 'e'; + tableDir[12 + 16*j + 4] = (char)0; //~ should compute the checksum + tableDir[12 + 16*j + 5] = (char)0; + tableDir[12 + 16*j + 6] = (char)0; + tableDir[12 + 16*j + 7] = (char)0; + tableDir[12 + 16*j + 8] = (char)((pos >> 24) & 0xff); + tableDir[12 + 16*j + 9] = (char)((pos >> 16) & 0xff); + tableDir[12 + 16*j + 10] = (char)((pos >> 8) & 0xff); + tableDir[12 + 16*j + 11] = (char)( pos & 0xff); + tableDir[12 + 16*j + 12] = (char)((sizeof(nameTab) >> 24) & 0xff); + tableDir[12 + 16*j + 13] = (char)((sizeof(nameTab) >> 16) & 0xff); + tableDir[12 + 16*j + 14] = (char)((sizeof(nameTab) >> 8) & 0xff); + tableDir[12 + 16*j + 15] = (char)( sizeof(nameTab) & 0xff); + pos += sizeof(nameTab); + ++j; + dirName = gTrue; + } + if (!dirPost) { + tableDir[12 + 16*j ] = 'p'; + tableDir[12 + 16*j + 1] = 'o'; + tableDir[12 + 16*j + 2] = 's'; + tableDir[12 + 16*j + 3] = 't'; + tableDir[12 + 16*j + 4] = (char)0; //~ should compute the checksum + tableDir[12 + 16*j + 5] = (char)0; + tableDir[12 + 16*j + 6] = (char)0; + tableDir[12 + 16*j + 7] = (char)0; + tableDir[12 + 16*j + 8] = (char)((pos >> 24) & 0xff); + tableDir[12 + 16*j + 9] = (char)((pos >> 16) & 0xff); + tableDir[12 + 16*j + 10] = (char)((pos >> 8) & 0xff); + tableDir[12 + 16*j + 11] = (char)( pos & 0xff); + tableDir[12 + 16*j + 12] = (char)((sizeof(postTab) >> 24) & 0xff); + tableDir[12 + 16*j + 13] = (char)((sizeof(postTab) >> 16) & 0xff); + tableDir[12 + 16*j + 14] = (char)((sizeof(postTab) >> 8) & 0xff); + tableDir[12 + 16*j + 15] = (char)( sizeof(postTab) & 0xff); + pos += sizeof(postTab); + ++j; + dirPost = gTrue; } - sprintf(buf, "] def\n"); -} -void Type1CFontConverter::getDeltaReal(char *buf, char *name, double *op, - int n) { - double x; - int i; + // write the table directory + fwrite(tableDir, 1, 12 + 16 * nAllTables, out); - sprintf(buf, "/%s [", name); - buf += strlen(buf); - x = 0; - for (i = 0; i < n; ++i) { - x += op[i]; - sprintf(buf, "%s%g", i > 0 ? " " : "", x); - buf += strlen(buf); + // write the original tables + fwrite(file + 12 + 16*nTables, 1, len - (12 + 16*nTables), out); + + // write the new tables + for (i = 0; i < pad; ++i) { + fputc((char)0, out); } - sprintf(buf, "] def\n"); + if (!haveCmap) { + fwrite(cmapTab, 1, sizeof(cmapTab), out); + } + if (!haveName) { + fwrite(nameTab, 1, sizeof(nameTab), out); + } + if (!havePost) { + fwrite(postTab, 1, sizeof(postTab), out); + } + + gfree(tableDir); } diff --git a/pdf/xpdf/FontFile.h b/pdf/xpdf/FontFile.h index ec625ef2..d5de25c5 100644 --- a/pdf/xpdf/FontFile.h +++ b/pdf/xpdf/FontFile.h @@ -2,7 +2,7 @@ // // FontFile.h // -// Copyright 1999 Derek B. Noonburg +// Copyright 1999-2002 Glyph & Cog, LLC // //======================================================================== @@ -16,7 +16,9 @@ #include #include "gtypes.h" #include "GString.h" -#include "FontEncoding.h" +#include "CharTypes.h" + +class CharCodeToUnicode; //------------------------------------------------------------------------ // FontFile @@ -32,10 +34,9 @@ public: // Returns NULL if no name is available. virtual char *getName() = 0; - // Returns the custom font encoding, or NULL if the encoding is - // not available. If is set, the caller of this function - // will be responsible for freeing the encoding object. - virtual FontEncoding *getEncoding(GBool taken) = 0; + // Returns the custom font encoding, or NULL if the encoding is not + // available. + virtual char **getEncoding() = 0; }; //------------------------------------------------------------------------ @@ -48,59 +49,79 @@ public: Type1FontFile(char *file, int len); virtual ~Type1FontFile(); virtual char *getName() { return name; } - virtual FontEncoding *getEncoding(GBool taken); + virtual char **getEncoding() { return encoding; } private: char *name; - FontEncoding *encoding; - GBool freeEnc; + char **encoding; }; //------------------------------------------------------------------------ // Type1CFontFile //------------------------------------------------------------------------ +struct Type1CTopDict; +struct Type1CPrivateDict; + class Type1CFontFile: public FontFile { public: - Type1CFontFile(char *file, int len); + Type1CFontFile(char *fileA, int lenA); virtual ~Type1CFontFile(); - virtual char *getName() { return name; } - virtual FontEncoding *getEncoding(GBool taken); -private: - - char *name; - FontEncoding *encoding; - GBool freeEnc; -}; + virtual char *getName(); + virtual char **getEncoding(); -//------------------------------------------------------------------------ -// Type1CFontConverter -//------------------------------------------------------------------------ + // Convert to a Type 1 font, suitable for embedding in a PostScript + // file. The name will be used as the PostScript font name. + void convertToType1(FILE *outA); -class Type1CFontConverter { -public: + // Convert to a Type 0 CIDFont, suitable for embedding in a + // PostScript file. The name will be used as the PostScript font + // name. + void convertToCIDType0(char *psName, FILE *outA); - Type1CFontConverter(char *file, int len, FILE *out); - ~Type1CFontConverter(); - void convert(); + // Convert to a Type 0 (but non-CID) composite font, suitable for + // embedding in a PostScript file. The name will be used as the + // PostScript font name. + void convertToType0(char *psName, FILE *outA); private: + void readNameAndEncoding(); + void readTopDict(Type1CTopDict *dict); + void readPrivateDict(Type1CPrivateDict *privateDict, + int offset, int size); + Gushort *readCharset(int charset, int nGlyphs); void eexecWrite(char *s); - void cvtGlyph(char *name, Guchar *s, int n); + void eexecCvtGlyph(char *glyphName, Guchar *s, int n); + void cvtGlyph(Guchar *s, int n); void cvtGlyphWidth(GBool useOp); - void eexecDumpNum(double x, GBool fp); - void eexecDumpOp1(int op); - void eexecDumpOp2(int op); + void eexecDumpNum(double x, GBool fpA); + void eexecDumpOp1(int opA); + void eexecDumpOp2(int opA); void eexecWriteCharstring(Guchar *s, int n); - void getDeltaInt(char *buf, char *name, double *op, int n); - void getDeltaReal(char *buf, char *name, double *op, int n); + void getDeltaInt(char *buf, char *key, double *opA, int n); + void getDeltaReal(char *buf, char *key, double *opA, int n); + int getIndexLen(Guchar *indexPtr); + Guchar *getIndexValPtr(Guchar *indexPtr, int i); + Guchar *getIndexEnd(Guchar *indexPtr); + Guint getWord(Guchar *ptr, int size); + double getNum(Guchar **ptr, GBool *fp); + char *getString(int sid, char *buf); char *file; int len; + + GString *name; + char **encoding; + + int topOffSize; + Guchar *topDictIdxPtr; + Guchar *stringIdxPtr; + Guchar *gsubrIdxPtr; + FILE *out; double op[48]; // operands GBool fp[48]; // true if operand is fixed point @@ -114,4 +135,81 @@ private: int line; // number of eexec chars on current line }; +//------------------------------------------------------------------------ +// TrueTypeFontFile +//------------------------------------------------------------------------ + +struct TTFontTableHdr; + +class TrueTypeFontFile: public FontFile { +public: + + TrueTypeFontFile(char *fileA, int lenA); + ~TrueTypeFontFile(); + + // This always returns NULL, since it's probably better to trust the + // font name in the PDF file rather than the one in the TrueType + // font file. + virtual char *getName(); + + virtual char **getEncoding(); + + // Convert to a Type 42 font, suitable for embedding in a PostScript + // file. The name will be used as the PostScript font name (so we + // don't need to depend on the 'name' table in the font). The + // encoding is needed because the PDF Font object can modify the + // encoding. + void convertToType42(char *name, char **encodingA, + CharCodeToUnicode *toUnicode, + GBool pdfFontHasEncoding, FILE *out); + + // Convert to a Type 2 CIDFont, suitable for embedding in a + // PostScript file. The name will be used as the PostScript font + // name (so we don't need to depend on the 'name' table in the + // font). + void convertToCIDType2(char *name, Gushort *cidMap, + int nCIDs, FILE *out); + + // Convert to a Type 0 (but non-CID) composite font, suitable for + // embedding in a PostScript file. The name will be used as the + // PostScript font name (so we don't need to depend on the 'name' + // table in the font). + void convertToType0(char *name, Gushort *cidMap, + int nCIDs, FILE *out); + + // Write a TTF file, filling in any missing tables that are required + // by the TrueType spec. If the font already has all the required + // tables, it will be written unmodified. + void writeTTF(FILE *out); + +private: + + char *file; + int len; + + char **encoding; + + TTFontTableHdr *tableHdrs; + int nTables; + int bbox[4]; + int locaFmt; + int nGlyphs; + + int getByte(int pos); + int getChar(int pos); + int getUShort(int pos); + int getShort(int pos); + Guint getULong(int pos); + double getFixed(int pos); + int seekTable(char *tag); + int seekTableIdx(char *tag); + void cvtEncoding(char **encodingA, FILE *out); + void cvtCharStrings(char **encodingA, CharCodeToUnicode *toUnicode, + GBool pdfFontHasEncoding, FILE *out); + int getCmapEntry(int cmapFmt, int pos, int code); + void cvtSfnts(FILE *out, GString *name); + void dumpString(char *s, int length, FILE *out); + Guint computeTableChecksum(char *data, int length); +}; + #endif diff --git a/pdf/xpdf/FontInfo.h b/pdf/xpdf/FontInfo.h deleted file mode 100644 index ee85b95b..00000000 --- a/pdf/xpdf/FontInfo.h +++ /dev/null @@ -1,2068 +0,0 @@ -//======================================================================== -// -// FontInfo.h -// -// This file was automatically generated by makeFontInfo. -// -// Copyright 1996 Derek B. Noonburg -// -//======================================================================== - -#ifndef FONTINFO_H -#define FONTINFO_H - -//------------------------------------------------------------------------ -// Character encodings. -//------------------------------------------------------------------------ - -#define standardEncodingSize 335 -static char *standardEncodingNames[standardEncodingSize] = { - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - "space", - "exclam", - "quotedbl", - "numbersign", - "dollar", - "percent", - "ampersand", - "quoteright", - "parenleft", - "parenright", - "asterisk", - "plus", - "comma", - "hyphen", - "period", - "slash", - "zero", - "one", - "two", - "three", - "four", - "five", - "six", - "seven", - "eight", - "nine", - "colon", - "semicolon", - "less", - "equal", - "greater", - "question", - "at", - "A", - "B", - "C", - "D", - "E", - "F", - "G", - "H", - "I", - "J", - "K", - "L", - "M", - "N", - "O", - "P", - "Q", - "R", - "S", - "T", - "U", - "V", - "W", - "X", - "Y", - "Z", - "bracketleft", - "backslash", - "bracketright", - "asciicircum", - "underscore", - "quoteleft", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "braceleft", - "bar", - "braceright", - "asciitilde", - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - "exclamdown", - "cent", - "sterling", - "fraction", - "yen", - "florin", - "section", - "currency", - "quotesingle", - "quotedblleft", - "guillemotleft", - "guilsinglleft", - "guilsinglright", - "fi", - "fl", - NULL, - "endash", - "dagger", - "daggerdbl", - "periodcentered", - NULL, - "paragraph", - "bullet", - "quotesinglbase", - "quotedblbase", - "quotedblright", - "guillemotright", - "ellipsis", - "perthousand", - NULL, - "questiondown", - NULL, - "grave", - "acute", - "circumflex", - "tilde", - "macron", - "breve", - "dotaccent", - "dieresis", - NULL, - "ring", - "cedilla", - NULL, - "hungarumlaut", - "ogonek", - "caron", - "emdash", - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - "AE", - NULL, - "ordfeminine", - NULL, - NULL, - NULL, - NULL, - "Lslash", - "Oslash", - "OE", - "ordmasculine", - NULL, - NULL, - NULL, - NULL, - NULL, - "ae", - NULL, - NULL, - NULL, - "dotlessi", - NULL, - NULL, - "lslash", - "oslash", - "oe", - "germandbls", - NULL, - NULL, - NULL, - NULL, - "Aacute", - "Acircumflex", - "Adieresis", - "Agrave", - "Aring", - "Atilde", - "Ccedilla", - "Eacute", - "Ecircumflex", - "Edieresis", - "Egrave", - "Eth", - "Iacute", - "Icircumflex", - "Idieresis", - "Igrave", - "Ntilde", - "Oacute", - "Ocircumflex", - "Odieresis", - "Ograve", - "Otilde", - "Scaron", - "Thorn", - "Uacute", - "Ucircumflex", - "Udieresis", - "Ugrave", - "Yacute", - "Ydieresis", - "Zcaron", - "aacute", - "acircumflex", - "adieresis", - "agrave", - "aring", - "atilde", - "brokenbar", - "ccedilla", - "copyright", - "degree", - "divide", - "eacute", - "ecircumflex", - "edieresis", - "egrave", - "eth", - "iacute", - "icircumflex", - "idieresis", - "igrave", - "logicalnot", - "minus", - "mu", - "multiply", - "ntilde", - "oacute", - "ocircumflex", - "odieresis", - "ograve", - "onehalf", - "onequarter", - "onesuperior", - "otilde", - "plusminus", - "registered", - "scaron", - "thorn", - "threequarters", - "threesuperior", - "trademark", - "twosuperior", - "uacute", - "ucircumflex", - "udieresis", - "ugrave", - "yacute", - "ydieresis", - "zcaron" -}; -static FontEncoding standardEncoding(standardEncodingNames, - standardEncodingSize); - -#define symbolEncodingSize 257 -static char *symbolEncodingNames[symbolEncodingSize] = { - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - "space", - "exclam", - "universal", - "numbersign", - "existential", - "percent", - "ampersand", - "suchthat", - "parenleft", - "parenright", - "asteriskmath", - "plus", - "comma", - "minus", - "period", - "slash", - "zero", - "one", - "two", - "three", - "four", - "five", - "six", - "seven", - "eight", - "nine", - "colon", - "semicolon", - "less", - "equal", - "greater", - "question", - "congruent", - "Alpha", - "Beta", - "Chi", - "Delta", - "Epsilon", - "Phi", - "Gamma", - "Eta", - "Iota", - "theta1", - "Kappa", - "Lambda", - "Mu", - "Nu", - "Omicron", - "Pi", - "Theta", - "Rho", - "Sigma", - "Tau", - "Upsilon", - "sigma1", - "Omega", - "Xi", - "Psi", - "Zeta", - "bracketleft", - "therefore", - "bracketright", - "perpendicular", - "underscore", - "radicalex", - "alpha", - "beta", - "chi", - "delta", - "epsilon", - "phi", - "gamma", - "eta", - "iota", - "phi1", - "kappa", - "lambda", - "mu", - "nu", - "omicron", - "pi", - "theta", - "rho", - "sigma", - "tau", - "upsilon", - "omega1", - "omega", - "xi", - "psi", - "zeta", - "braceleft", - "bar", - "braceright", - "similar", - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - "Upsilon1", - "minute", - "lessequal", - "fraction", - "infinity", - "florin", - "club", - "diamond", - "heart", - "spade", - "arrowboth", - "arrowleft", - "arrowup", - "arrowright", - "arrowdown", - "degree", - "plusminus", - "second", - "greaterequal", - "multiply", - "proportional", - "partialdiff", - "bullet", - "divide", - "notequal", - "equivalence", - "approxequal", - "ellipsis", - "arrowvertex", - "arrowhorizex", - "carriagereturn", - "aleph", - "Ifraktur", - "Rfraktur", - "weierstrass", - "circlemultiply", - "circleplus", - "emptyset", - "intersection", - "union", - "propersuperset", - "reflexsuperset", - "notsubset", - "propersubset", - "reflexsubset", - "element", - "notelement", - "angle", - "gradient", - "registerserif", - "copyrightserif", - "trademarkserif", - "product", - "radical", - "dotmath", - "logicalnot", - "logicaland", - "logicalor", - "arrowdblboth", - "arrowdblleft", - "arrowdblup", - "arrowdblright", - "arrowdbldown", - "lozenge", - "angleleft", - "registersans", - "copyrightsans", - "trademarksans", - "summation", - "parenlefttp", - "parenleftex", - "parenleftbt", - "bracketlefttp", - "bracketleftex", - "bracketleftbt", - "bracelefttp", - "braceleftmid", - "braceleftbt", - "braceex", - NULL, - "angleright", - "integral", - "integraltp", - "integralex", - "integralbt", - "parenrighttp", - "parenrightex", - "parenrightbt", - "bracketrighttp", - "bracketrightex", - "bracketrightbt", - "bracerighttp", - "bracerightmid", - "bracerightbt", - NULL, - "apple" -}; -static FontEncoding symbolEncoding(symbolEncodingNames, - symbolEncodingSize); - -#define zapfDingbatsEncodingSize 270 -static char *zapfDingbatsEncodingNames[zapfDingbatsEncodingSize] = { - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - "space", - "a1", - "a2", - "a202", - "a3", - "a4", - "a5", - "a119", - "a118", - "a117", - "a11", - "a12", - "a13", - "a14", - "a15", - "a16", - "a105", - "a17", - "a18", - "a19", - "a20", - "a21", - "a22", - "a23", - "a24", - "a25", - "a26", - "a27", - "a28", - "a6", - "a7", - "a8", - "a9", - "a10", - "a29", - "a30", - "a31", - "a32", - "a33", - "a34", - "a35", - "a36", - "a37", - "a38", - "a39", - "a40", - "a41", - "a42", - "a43", - "a44", - "a45", - "a46", - "a47", - "a48", - "a49", - "a50", - "a51", - "a52", - "a53", - "a54", - "a55", - "a56", - "a57", - "a58", - "a59", - "a60", - "a61", - "a62", - "a63", - "a64", - "a65", - "a66", - "a67", - "a68", - "a69", - "a70", - "a71", - "a72", - "a73", - "a74", - "a203", - "a75", - "a204", - "a76", - "a77", - "a78", - "a79", - "a81", - "a82", - "a83", - "a84", - "a97", - "a98", - "a99", - "a100", - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - "a101", - "a102", - "a103", - "a104", - "a106", - "a107", - "a108", - "a112", - "a111", - "a110", - "a109", - "a120", - "a121", - "a122", - "a123", - "a124", - "a125", - "a126", - "a127", - "a128", - "a129", - "a130", - "a131", - "a132", - "a133", - "a134", - "a135", - "a136", - "a137", - "a138", - "a139", - "a140", - "a141", - "a142", - "a143", - "a144", - "a145", - "a146", - "a147", - "a148", - "a149", - "a150", - "a151", - "a152", - "a153", - "a154", - "a155", - "a156", - "a157", - "a158", - "a159", - "a160", - "a161", - "a163", - "a164", - "a196", - "a165", - "a192", - "a166", - "a167", - "a168", - "a169", - "a170", - "a171", - "a172", - "a173", - "a162", - "a174", - "a175", - "a176", - "a177", - "a178", - "a179", - "a193", - "a180", - "a199", - "a181", - "a200", - "a182", - NULL, - "a201", - "a183", - "a184", - "a197", - "a185", - "a194", - "a198", - "a186", - "a195", - "a187", - "a188", - "a189", - "a190", - "a191", - NULL, - "a205", - "a206", - "a85", - "a86", - "a87", - "a88", - "a89", - "a90", - "a91", - "a92", - "a93", - "a94", - "a95", - "a96" -}; -static FontEncoding zapfDingbatsEncoding(zapfDingbatsEncodingNames, - zapfDingbatsEncodingSize); - -#define macRomanEncodingSize 256 -static char *macRomanEncodingNames[macRomanEncodingSize] = { - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - "space", - "exclam", - "quotedbl", - "numbersign", - "dollar", - "percent", - "ampersand", - "quotesingle", - "parenleft", - "parenright", - "asterisk", - "plus", - "comma", - "hyphen", - "period", - "slash", - "zero", - "one", - "two", - "three", - "four", - "five", - "six", - "seven", - "eight", - "nine", - "colon", - "semicolon", - "less", - "equal", - "greater", - "question", - "at", - "A", - "B", - "C", - "D", - "E", - "F", - "G", - "H", - "I", - "J", - "K", - "L", - "M", - "N", - "O", - "P", - "Q", - "R", - "S", - "T", - "U", - "V", - "W", - "X", - "Y", - "Z", - "bracketleft", - "backslash", - "bracketright", - "asciicircum", - "underscore", - "grave", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "braceleft", - "bar", - "braceright", - "asciitilde", - NULL, - "Adieresis", - "Aring", - "Ccedilla", - "Eacute", - "Ntilde", - "Odieresis", - "Udieresis", - "aacute", - "agrave", - "acircumflex", - "adieresis", - "atilde", - "aring", - "ccedilla", - "eacute", - "egrave", - "ecircumflex", - "edieresis", - "iacute", - "igrave", - "icircumflex", - "idieresis", - "ntilde", - "oacute", - "ograve", - "ocircumflex", - "odieresis", - "otilde", - "uacute", - "ugrave", - "ucircumflex", - "udieresis", - "dagger", - "degree", - "cent", - "sterling", - "section", - "bullet", - "paragraph", - "germandbls", - "registered", - "copyright", - "trademark", - "acute", - "dieresis", - NULL, - "AE", - "Oslash", - NULL, - "plusminus", - NULL, - NULL, - "yen", - "mu", - NULL, - NULL, - NULL, - NULL, - NULL, - "ordfeminine", - "ordmasculine", - NULL, - "ae", - "oslash", - "questiondown", - "exclamdown", - "logicalnot", - NULL, - "florin", - NULL, - NULL, - "guillemotleft", - "guillemotright", - "ellipsis", - "space", - "Agrave", - "Atilde", - "Otilde", - "OE", - "oe", - "endash", - "emdash", - "quotedblleft", - "quotedblright", - "quoteleft", - "quoteright", - "divide", - NULL, - "ydieresis", - "Ydieresis", - "fraction", - "currency", - "guilsinglleft", - "guilsinglright", - "fi", - "fl", - "daggerdbl", - "periodcentered", - "quotesinglbase", - "quotedblbase", - "perthousand", - "Acircumflex", - "Ecircumflex", - "Aacute", - "Edieresis", - "Egrave", - "Iacute", - "Icircumflex", - "Idieresis", - "Igrave", - "Oacute", - "Ocircumflex", - NULL, - "Ograve", - "Uacute", - "Ucircumflex", - "Ugrave", - "dotlessi", - "circumflex", - "tilde", - "macron", - "breve", - "dotaccent", - "ring", - "cedilla", - "hungarumlaut", - "ogonek", - "caron" -}; -static FontEncoding macRomanEncoding(macRomanEncodingNames, - macRomanEncodingSize); - -#define winAnsiEncodingSize 256 -static char *winAnsiEncodingNames[winAnsiEncodingSize] = { - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - "space", - "exclam", - "quotedbl", - "numbersign", - "dollar", - "percent", - "ampersand", - "quotesingle", - "parenleft", - "parenright", - "asterisk", - "plus", - "comma", - "hyphen", - "period", - "slash", - "zero", - "one", - "two", - "three", - "four", - "five", - "six", - "seven", - "eight", - "nine", - "colon", - "semicolon", - "less", - "equal", - "greater", - "question", - "at", - "A", - "B", - "C", - "D", - "E", - "F", - "G", - "H", - "I", - "J", - "K", - "L", - "M", - "N", - "O", - "P", - "Q", - "R", - "S", - "T", - "U", - "V", - "W", - "X", - "Y", - "Z", - "bracketleft", - "backslash", - "bracketright", - "asciicircum", - "underscore", - "grave", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "braceleft", - "bar", - "braceright", - "asciitilde", - "bullet", - "bullet", - "bullet", - "quotesinglbase", - "florin", - "quotedblbase", - "ellipsis", - "dagger", - "daggerdbl", - "circumflex", - "perthousand", - "Scaron", - "guilsinglleft", - "OE", - "bullet", - "bullet", - "bullet", - "bullet", - "quoteleft", - "quoteright", - "quotedblleft", - "quotedblright", - "bullet", - "endash", - "emdash", - "tilde", - "trademark", - "scaron", - "guilsinglright", - "oe", - "bullet", - "bullet", - "Ydieresis", - "space", - "exclamdown", - "cent", - "sterling", - "currency", - "yen", - "brokenbar", - "section", - "dieresis", - "copyright", - "ordfeminine", - "guillemotleft", - "logicalnot", - "hyphen", - "registered", - "macron", - "degree", - "plusminus", - "twosuperior", - "threesuperior", - "acute", - "mu", - "paragraph", - "periodcentered", - "cedilla", - "onesuperior", - "ordmasculine", - "guillemotright", - "onequarter", - "onehalf", - "threequarters", - "questiondown", - "Agrave", - "Aacute", - "Acircumflex", - "Atilde", - "Adieresis", - "Aring", - "AE", - "Ccedilla", - "Egrave", - "Eacute", - "Ecircumflex", - "Edieresis", - "Igrave", - "Iacute", - "Icircumflex", - "Idieresis", - "Eth", - "Ntilde", - "Ograve", - "Oacute", - "Ocircumflex", - "Otilde", - "Odieresis", - "multiply", - "Oslash", - "Ugrave", - "Uacute", - "Ucircumflex", - "Udieresis", - "Yacute", - "Thorn", - "germandbls", - "agrave", - "aacute", - "acircumflex", - "atilde", - "adieresis", - "aring", - "ae", - "ccedilla", - "egrave", - "eacute", - "ecircumflex", - "edieresis", - "igrave", - "iacute", - "icircumflex", - "idieresis", - "eth", - "ntilde", - "ograve", - "oacute", - "ocircumflex", - "otilde", - "odieresis", - "divide", - "oslash", - "ugrave", - "uacute", - "ucircumflex", - "udieresis", - "yacute", - "thorn", - "ydieresis" -}; -static FontEncoding winAnsiEncoding(winAnsiEncodingNames, - winAnsiEncodingSize); - -//------------------------------------------------------------------------ -// Character widths for built-in fonts. -//------------------------------------------------------------------------ - -static Gushort courierWidths[335] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 0, 600, 600, 600, 600, 0, 600, 600, - 600, 600, 600, 600, 600, 600, 0, 600, - 0, 600, 600, 600, 600, 600, 600, 600, - 600, 0, 600, 600, 0, 600, 600, 600, - 600, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 600, 0, 600, 0, 0, 0, 0, - 600, 600, 600, 600, 0, 0, 0, 0, - 0, 600, 0, 0, 0, 600, 0, 0, - 600, 600, 600, 600, 0, 0, 0, 0, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600 -}; - -static Gushort courierBoldWidths[335] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 0, 600, 600, 600, 600, 0, 600, 600, - 600, 600, 600, 600, 600, 600, 0, 600, - 0, 600, 600, 600, 600, 600, 600, 600, - 600, 0, 600, 600, 0, 600, 600, 600, - 600, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 600, 0, 600, 0, 0, 0, 0, - 600, 600, 600, 600, 0, 0, 0, 0, - 0, 600, 0, 0, 0, 600, 0, 0, - 600, 600, 600, 600, 0, 0, 0, 0, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600 -}; - -static Gushort courierBoldObliqueWidths[335] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 0, 600, 600, 600, 600, 0, 600, 600, - 600, 600, 600, 600, 600, 600, 0, 600, - 0, 600, 600, 600, 600, 600, 600, 600, - 600, 0, 600, 600, 0, 600, 600, 600, - 600, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 600, 0, 600, 0, 0, 0, 0, - 600, 600, 600, 600, 0, 0, 0, 0, - 0, 600, 0, 0, 0, 600, 0, 0, - 600, 600, 600, 600, 0, 0, 0, 0, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600 -}; - -static Gushort courierObliqueWidths[335] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 0, 600, 600, 600, 600, 0, 600, 600, - 600, 600, 600, 600, 600, 600, 0, 600, - 0, 600, 600, 600, 600, 600, 600, 600, - 600, 0, 600, 600, 0, 600, 600, 600, - 600, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 600, 0, 600, 0, 0, 0, 0, - 600, 600, 600, 600, 0, 0, 0, 0, - 0, 600, 0, 0, 0, 600, 0, 0, - 600, 600, 600, 600, 0, 0, 0, 0, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600, 600, - 600, 600, 600, 600, 600, 600, 600 -}; - -static Gushort helveticaWidths[335] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 278, 278, 355, 556, 556, 889, 667, 222, - 333, 333, 389, 584, 278, 333, 278, 278, - 556, 556, 556, 556, 556, 556, 556, 556, - 556, 556, 278, 278, 584, 584, 584, 556, - 1015, 667, 667, 722, 722, 667, 611, 778, - 722, 278, 500, 667, 556, 833, 722, 778, - 667, 778, 722, 667, 611, 722, 667, 944, - 667, 667, 611, 278, 278, 278, 469, 556, - 222, 556, 556, 500, 556, 556, 278, 556, - 556, 222, 222, 500, 222, 833, 556, 556, - 556, 556, 333, 500, 278, 556, 500, 722, - 500, 500, 500, 334, 260, 334, 584, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 333, 556, 556, 167, 556, 556, 556, - 556, 191, 333, 556, 333, 333, 500, 500, - 0, 556, 556, 556, 278, 0, 537, 350, - 222, 333, 333, 556, 1000, 1000, 0, 611, - 0, 333, 333, 333, 333, 333, 333, 333, - 333, 0, 333, 333, 0, 333, 333, 333, - 1000, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1000, 0, 370, 0, 0, 0, 0, - 556, 778, 1000, 365, 0, 0, 0, 0, - 0, 889, 0, 0, 0, 278, 0, 0, - 222, 611, 944, 611, 0, 0, 0, 0, - 667, 667, 667, 667, 667, 667, 722, 667, - 667, 667, 667, 722, 278, 278, 278, 278, - 722, 778, 778, 778, 778, 778, 667, 667, - 722, 722, 722, 722, 667, 667, 611, 556, - 556, 556, 556, 556, 556, 260, 500, 737, - 400, 584, 556, 556, 556, 556, 556, 278, - 278, 278, 278, 584, 584, 556, 584, 556, - 556, 556, 556, 556, 834, 834, 333, 556, - 584, 737, 500, 556, 834, 333, 1000, 333, - 556, 556, 556, 556, 500, 500, 500 -}; - -static Gushort helveticaBoldWidths[335] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 278, 333, 474, 556, 556, 889, 722, 278, - 333, 333, 389, 584, 278, 333, 278, 278, - 556, 556, 556, 556, 556, 556, 556, 556, - 556, 556, 333, 333, 584, 584, 584, 611, - 975, 722, 722, 722, 722, 667, 611, 778, - 722, 278, 556, 722, 611, 833, 722, 778, - 667, 778, 722, 667, 611, 722, 667, 944, - 667, 667, 611, 333, 278, 333, 584, 556, - 278, 556, 611, 556, 611, 556, 333, 611, - 611, 278, 278, 556, 278, 889, 611, 611, - 611, 611, 389, 556, 333, 611, 556, 778, - 556, 556, 500, 389, 280, 389, 584, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 333, 556, 556, 167, 556, 556, 556, - 556, 238, 500, 556, 333, 333, 611, 611, - 0, 556, 556, 556, 278, 0, 556, 350, - 278, 500, 500, 556, 1000, 1000, 0, 611, - 0, 333, 333, 333, 333, 333, 333, 333, - 333, 0, 333, 333, 0, 333, 333, 333, - 1000, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1000, 0, 370, 0, 0, 0, 0, - 611, 778, 1000, 365, 0, 0, 0, 0, - 0, 889, 0, 0, 0, 278, 0, 0, - 278, 611, 944, 611, 0, 0, 0, 0, - 722, 722, 722, 722, 722, 722, 722, 667, - 667, 667, 667, 722, 278, 278, 278, 278, - 722, 778, 778, 778, 778, 778, 667, 667, - 722, 722, 722, 722, 667, 667, 611, 556, - 556, 556, 556, 556, 556, 280, 556, 737, - 400, 584, 556, 556, 556, 556, 611, 278, - 278, 278, 278, 584, 584, 611, 584, 611, - 611, 611, 611, 611, 834, 834, 333, 611, - 584, 737, 556, 611, 834, 333, 1000, 333, - 611, 611, 611, 611, 556, 556, 500 -}; - -static Gushort helveticaBoldObliqueWidths[335] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 278, 333, 474, 556, 556, 889, 722, 278, - 333, 333, 389, 584, 278, 333, 278, 278, - 556, 556, 556, 556, 556, 556, 556, 556, - 556, 556, 333, 333, 584, 584, 584, 611, - 975, 722, 722, 722, 722, 667, 611, 778, - 722, 278, 556, 722, 611, 833, 722, 778, - 667, 778, 722, 667, 611, 722, 667, 944, - 667, 667, 611, 333, 278, 333, 584, 556, - 278, 556, 611, 556, 611, 556, 333, 611, - 611, 278, 278, 556, 278, 889, 611, 611, - 611, 611, 389, 556, 333, 611, 556, 778, - 556, 556, 500, 389, 280, 389, 584, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 333, 556, 556, 167, 556, 556, 556, - 556, 238, 500, 556, 333, 333, 611, 611, - 0, 556, 556, 556, 278, 0, 556, 350, - 278, 500, 500, 556, 1000, 1000, 0, 611, - 0, 333, 333, 333, 333, 333, 333, 333, - 333, 0, 333, 333, 0, 333, 333, 333, - 1000, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1000, 0, 370, 0, 0, 0, 0, - 611, 778, 1000, 365, 0, 0, 0, 0, - 0, 889, 0, 0, 0, 278, 0, 0, - 278, 611, 944, 611, 0, 0, 0, 0, - 722, 722, 722, 722, 722, 722, 722, 667, - 667, 667, 667, 722, 278, 278, 278, 278, - 722, 778, 778, 778, 778, 778, 667, 667, - 722, 722, 722, 722, 667, 667, 611, 556, - 556, 556, 556, 556, 556, 280, 556, 737, - 400, 584, 556, 556, 556, 556, 611, 278, - 278, 278, 278, 584, 584, 611, 584, 611, - 611, 611, 611, 611, 834, 834, 333, 611, - 584, 737, 556, 611, 834, 333, 1000, 333, - 611, 611, 611, 611, 556, 556, 500 -}; - -static Gushort helveticaObliqueWidths[335] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 278, 278, 355, 556, 556, 889, 667, 222, - 333, 333, 389, 584, 278, 333, 278, 278, - 556, 556, 556, 556, 556, 556, 556, 556, - 556, 556, 278, 278, 584, 584, 584, 556, - 1015, 667, 667, 722, 722, 667, 611, 778, - 722, 278, 500, 667, 556, 833, 722, 778, - 667, 778, 722, 667, 611, 722, 667, 944, - 667, 667, 611, 278, 278, 278, 469, 556, - 222, 556, 556, 500, 556, 556, 278, 556, - 556, 222, 222, 500, 222, 833, 556, 556, - 556, 556, 333, 500, 278, 556, 500, 722, - 500, 500, 500, 334, 260, 334, 584, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 333, 556, 556, 167, 556, 556, 556, - 556, 191, 333, 556, 333, 333, 500, 500, - 0, 556, 556, 556, 278, 0, 537, 350, - 222, 333, 333, 556, 1000, 1000, 0, 611, - 0, 333, 333, 333, 333, 333, 333, 333, - 333, 0, 333, 333, 0, 333, 333, 333, - 1000, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1000, 0, 370, 0, 0, 0, 0, - 556, 778, 1000, 365, 0, 0, 0, 0, - 0, 889, 0, 0, 0, 278, 0, 0, - 222, 611, 944, 611, 0, 0, 0, 0, - 667, 667, 667, 667, 667, 667, 722, 667, - 667, 667, 667, 722, 278, 278, 278, 278, - 722, 778, 778, 778, 778, 778, 667, 667, - 722, 722, 722, 722, 667, 667, 611, 556, - 556, 556, 556, 556, 556, 260, 500, 737, - 400, 584, 556, 556, 556, 556, 556, 278, - 278, 278, 278, 584, 584, 556, 584, 556, - 556, 556, 556, 556, 834, 834, 333, 556, - 584, 737, 500, 556, 834, 333, 1000, 333, - 556, 556, 556, 556, 500, 500, 500 -}; - -static Gushort symbolWidths[257] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 250, 333, 713, 500, 549, 833, 778, 439, - 333, 333, 500, 549, 250, 549, 250, 278, - 500, 500, 500, 500, 500, 500, 500, 500, - 500, 500, 278, 278, 549, 549, 549, 444, - 549, 722, 667, 722, 612, 611, 763, 603, - 722, 333, 631, 722, 686, 889, 722, 722, - 768, 741, 556, 592, 611, 690, 439, 768, - 645, 795, 611, 333, 863, 333, 658, 500, - 500, 631, 549, 549, 494, 439, 521, 411, - 603, 329, 603, 549, 549, 576, 521, 549, - 549, 521, 549, 603, 439, 576, 713, 686, - 493, 686, 494, 480, 200, 480, 549, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 620, 247, 549, 167, 713, 500, 753, - 753, 753, 753, 1042, 987, 603, 987, 603, - 400, 549, 411, 549, 549, 713, 494, 460, - 549, 549, 549, 549, 1000, 603, 1000, 658, - 823, 686, 795, 987, 768, 768, 823, 768, - 768, 713, 713, 713, 713, 713, 713, 713, - 768, 713, 790, 790, 890, 823, 549, 250, - 713, 603, 603, 1042, 987, 603, 987, 603, - 494, 329, 790, 790, 786, 713, 384, 384, - 384, 384, 384, 384, 494, 494, 494, 494, - 0, 329, 274, 686, 686, 686, 384, 384, - 384, 384, 384, 384, 494, 494, 494, 0, - 790 -}; - -static Gushort timesBoldWidths[335] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 250, 333, 555, 500, 500, 1000, 833, 333, - 333, 333, 500, 570, 250, 333, 250, 278, - 500, 500, 500, 500, 500, 500, 500, 500, - 500, 500, 333, 333, 570, 570, 570, 500, - 930, 722, 667, 722, 722, 667, 611, 778, - 778, 389, 500, 778, 667, 944, 722, 778, - 611, 778, 722, 556, 667, 722, 722, 1000, - 722, 722, 667, 333, 278, 333, 581, 500, - 333, 500, 556, 444, 556, 444, 333, 500, - 556, 278, 333, 556, 278, 833, 556, 500, - 556, 556, 444, 389, 333, 556, 500, 722, - 500, 500, 444, 394, 220, 394, 520, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 333, 500, 500, 167, 500, 500, 500, - 500, 278, 500, 500, 333, 333, 556, 556, - 0, 500, 500, 500, 250, 0, 540, 350, - 333, 500, 500, 500, 1000, 1000, 0, 500, - 0, 333, 333, 333, 333, 333, 333, 333, - 333, 0, 333, 333, 0, 333, 333, 333, - 1000, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1000, 0, 300, 0, 0, 0, 0, - 667, 778, 1000, 330, 0, 0, 0, 0, - 0, 722, 0, 0, 0, 278, 0, 0, - 278, 500, 722, 556, 0, 0, 0, 0, - 722, 722, 722, 722, 722, 722, 722, 667, - 667, 667, 667, 722, 389, 389, 389, 389, - 722, 778, 778, 778, 778, 778, 556, 611, - 722, 722, 722, 722, 722, 722, 667, 500, - 500, 500, 500, 500, 500, 220, 444, 747, - 400, 570, 444, 444, 444, 444, 500, 278, - 278, 278, 278, 570, 570, 556, 570, 556, - 500, 500, 500, 500, 750, 750, 300, 500, - 570, 747, 389, 556, 750, 300, 1000, 300, - 556, 556, 556, 556, 500, 500, 444 -}; - -static Gushort timesBoldItalicWidths[335] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 250, 389, 555, 500, 500, 833, 778, 333, - 333, 333, 500, 570, 250, 333, 250, 278, - 500, 500, 500, 500, 500, 500, 500, 500, - 500, 500, 333, 333, 570, 570, 570, 500, - 832, 667, 667, 667, 722, 667, 667, 722, - 778, 389, 500, 667, 611, 889, 722, 722, - 611, 722, 667, 556, 611, 722, 667, 889, - 667, 611, 611, 333, 278, 333, 570, 500, - 333, 500, 500, 444, 500, 444, 333, 500, - 556, 278, 278, 500, 278, 778, 556, 500, - 500, 500, 389, 389, 278, 556, 444, 667, - 500, 444, 389, 348, 220, 348, 570, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 389, 500, 500, 167, 500, 500, 500, - 500, 278, 500, 500, 333, 333, 556, 556, - 0, 500, 500, 500, 250, 0, 500, 350, - 333, 500, 500, 500, 1000, 1000, 0, 500, - 0, 333, 333, 333, 333, 333, 333, 333, - 333, 0, 333, 333, 0, 333, 333, 333, - 1000, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 944, 0, 266, 0, 0, 0, 0, - 611, 722, 944, 300, 0, 0, 0, 0, - 0, 722, 0, 0, 0, 278, 0, 0, - 278, 500, 722, 500, 0, 0, 0, 0, - 667, 667, 667, 667, 667, 667, 667, 667, - 667, 667, 667, 722, 389, 389, 389, 389, - 722, 722, 722, 722, 722, 722, 556, 611, - 722, 722, 722, 722, 611, 611, 611, 500, - 500, 500, 500, 500, 500, 220, 444, 747, - 400, 570, 444, 444, 444, 444, 500, 278, - 278, 278, 278, 606, 606, 576, 570, 556, - 500, 500, 500, 500, 750, 750, 300, 500, - 570, 747, 389, 500, 750, 300, 1000, 300, - 556, 556, 556, 556, 444, 444, 389 -}; - -static Gushort timesItalicWidths[335] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 250, 333, 420, 500, 500, 833, 778, 333, - 333, 333, 500, 675, 250, 333, 250, 278, - 500, 500, 500, 500, 500, 500, 500, 500, - 500, 500, 333, 333, 675, 675, 675, 500, - 920, 611, 611, 667, 722, 611, 611, 722, - 722, 333, 444, 667, 556, 833, 667, 722, - 611, 722, 611, 500, 556, 722, 611, 833, - 611, 556, 556, 389, 278, 389, 422, 500, - 333, 500, 500, 444, 500, 444, 278, 500, - 500, 278, 278, 444, 278, 722, 500, 500, - 500, 500, 389, 389, 278, 500, 444, 667, - 444, 444, 389, 400, 275, 400, 541, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 389, 500, 500, 167, 500, 500, 500, - 500, 214, 556, 500, 333, 333, 500, 500, - 0, 500, 500, 500, 250, 0, 523, 350, - 333, 556, 556, 500, 889, 1000, 0, 500, - 0, 333, 333, 333, 333, 333, 333, 333, - 333, 0, 333, 333, 0, 333, 333, 333, - 889, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 889, 0, 276, 0, 0, 0, 0, - 556, 722, 944, 310, 0, 0, 0, 0, - 0, 667, 0, 0, 0, 278, 0, 0, - 278, 500, 667, 500, 0, 0, 0, 0, - 611, 611, 611, 611, 611, 611, 667, 611, - 611, 611, 611, 722, 333, 333, 333, 333, - 667, 722, 722, 722, 722, 722, 500, 611, - 722, 722, 722, 722, 556, 556, 556, 500, - 500, 500, 500, 500, 500, 275, 444, 760, - 400, 675, 444, 444, 444, 444, 500, 278, - 278, 278, 278, 675, 675, 500, 675, 500, - 500, 500, 500, 500, 750, 750, 300, 500, - 675, 760, 389, 500, 750, 300, 980, 300, - 500, 500, 500, 500, 444, 444, 389 -}; - -static Gushort timesRomanWidths[335] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 250, 333, 408, 500, 500, 833, 778, 333, - 333, 333, 500, 564, 250, 333, 250, 278, - 500, 500, 500, 500, 500, 500, 500, 500, - 500, 500, 278, 278, 564, 564, 564, 444, - 921, 722, 667, 667, 722, 611, 556, 722, - 722, 333, 389, 722, 611, 889, 722, 722, - 556, 722, 667, 556, 611, 722, 722, 944, - 722, 722, 611, 333, 278, 333, 469, 500, - 333, 444, 500, 444, 500, 444, 333, 500, - 500, 278, 278, 500, 278, 778, 500, 500, - 500, 500, 333, 389, 278, 500, 500, 722, - 500, 500, 444, 480, 200, 480, 541, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 333, 500, 500, 167, 500, 500, 500, - 500, 180, 444, 500, 333, 333, 556, 556, - 0, 500, 500, 500, 250, 0, 453, 350, - 333, 444, 444, 500, 1000, 1000, 0, 444, - 0, 333, 333, 333, 333, 333, 333, 333, - 333, 0, 333, 333, 0, 333, 333, 333, - 1000, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 889, 0, 276, 0, 0, 0, 0, - 611, 722, 889, 310, 0, 0, 0, 0, - 0, 667, 0, 0, 0, 278, 0, 0, - 278, 500, 722, 500, 0, 0, 0, 0, - 722, 722, 722, 722, 722, 722, 667, 611, - 611, 611, 611, 722, 333, 333, 333, 333, - 722, 722, 722, 722, 722, 722, 556, 556, - 722, 722, 722, 722, 722, 722, 611, 444, - 444, 444, 444, 444, 444, 200, 444, 760, - 400, 564, 444, 444, 444, 444, 500, 278, - 278, 278, 278, 564, 564, 500, 564, 500, - 500, 500, 500, 500, 750, 750, 300, 500, - 564, 760, 389, 500, 750, 300, 980, 300, - 500, 500, 500, 500, 500, 500, 444 -}; - -static Gushort zapfDingbatsWidths[270] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 278, 974, 961, 974, 980, 719, 789, 790, - 791, 690, 960, 939, 549, 855, 911, 933, - 911, 945, 974, 755, 846, 762, 761, 571, - 677, 763, 760, 759, 754, 494, 552, 537, - 577, 692, 786, 788, 788, 790, 793, 794, - 816, 823, 789, 841, 823, 833, 816, 831, - 923, 744, 723, 749, 790, 792, 695, 776, - 768, 792, 759, 707, 708, 682, 701, 826, - 815, 789, 789, 707, 687, 696, 689, 786, - 787, 713, 791, 785, 791, 873, 761, 762, - 762, 759, 759, 892, 892, 788, 784, 438, - 138, 277, 415, 392, 392, 668, 668, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 732, 544, 544, 910, 667, 760, 760, - 776, 595, 694, 626, 788, 788, 788, 788, - 788, 788, 788, 788, 788, 788, 788, 788, - 788, 788, 788, 788, 788, 788, 788, 788, - 788, 788, 788, 788, 788, 788, 788, 788, - 788, 788, 788, 788, 788, 788, 788, 788, - 788, 788, 788, 788, 894, 838, 1016, 458, - 748, 924, 748, 918, 927, 928, 928, 834, - 873, 828, 924, 924, 917, 930, 931, 463, - 883, 836, 836, 867, 867, 696, 696, 874, - 0, 874, 760, 946, 771, 865, 771, 888, - 967, 888, 831, 873, 927, 970, 918, 0, - 509, 410, 509, 410, 234, 234, 390, 390, - 276, 276, 317, 317, 334, 334 -}; - -//------------------------------------------------------------------------ -// Built-in font table. -//------------------------------------------------------------------------ - -struct BuiltinFont { - char *name; - Gushort *widths; - FontEncoding *encoding; -}; - -#define numBuiltinFonts ((int)(sizeof(builtinFonts)/sizeof(BuiltinFont))) - -static BuiltinFont builtinFonts[] = { - {"Courier", courierWidths, &standardEncoding}, - {"Courier-Bold", courierBoldWidths, &standardEncoding}, - {"Courier-BoldOblique", courierBoldObliqueWidths, &standardEncoding}, - {"Courier-Oblique", courierObliqueWidths, &standardEncoding}, - {"Helvetica", helveticaWidths, &standardEncoding}, - {"Helvetica-Bold", helveticaBoldWidths, &standardEncoding}, - {"Helvetica-BoldOblique", helveticaBoldObliqueWidths, &standardEncoding}, - {"Helvetica-Oblique", helveticaObliqueWidths, &standardEncoding}, - {"Symbol", symbolWidths, &symbolEncoding}, - {"Times-Bold", timesBoldWidths, &standardEncoding}, - {"Times-BoldItalic", timesBoldItalicWidths, &standardEncoding}, - {"Times-Italic", timesItalicWidths, &standardEncoding}, - {"Times-Roman", timesRomanWidths, &standardEncoding}, - {"ZapfDingbats", zapfDingbatsWidths, &zapfDingbatsEncoding} -}; - -#endif diff --git a/pdf/xpdf/Function.cc b/pdf/xpdf/Function.cc new file mode 100644 index 00000000..64ea60c1 --- /dev/null +++ b/pdf/xpdf/Function.cc @@ -0,0 +1,1520 @@ +//======================================================================== +// +// Function.cc +// +// Copyright 2001-2002 Glyph & Cog, LLC +// +//======================================================================== + +#ifdef __GNUC__ +#pragma implementation +#endif + +#include +#include +#include +#include +#include +#include "gmem.h" +#include "Object.h" +#include "Dict.h" +#include "Stream.h" +#include "Error.h" +#include "Function.h" + +//------------------------------------------------------------------------ +// Function +//------------------------------------------------------------------------ + +Function::Function() { +} + +Function::~Function() { +} + +Function *Function::parse(Object *funcObj) { + Function *func; + Dict *dict; + int funcType; + Object obj1; + + if (funcObj->isStream()) { + dict = funcObj->streamGetDict(); + } else if (funcObj->isDict()) { + dict = funcObj->getDict(); + } else if (funcObj->isName("Identity")) { + return new IdentityFunction(); + } else { + error(-1, "Expected function dictionary or stream"); + return NULL; + } + + if (!dict->lookup("FunctionType", &obj1)->isInt()) { + error(-1, "Function type is missing or wrong type"); + obj1.free(); + return NULL; + } + funcType = obj1.getInt(); + obj1.free(); + + if (funcType == 0) { + func = new SampledFunction(funcObj, dict); + } else if (funcType == 2) { + func = new ExponentialFunction(funcObj, dict); + } else if (funcType == 3) { + func = new StitchingFunction(funcObj, dict); + } else if (funcType == 4) { + func = new PostScriptFunction(funcObj, dict); + } else { + error(-1, "Unimplemented function type (%d)", funcType); + return NULL; + } + if (!func->isOk()) { + delete func; + return NULL; + } + + return func; +} + +GBool Function::init(Dict *dict) { + Object obj1, obj2; + int i; + + //----- Domain + if (!dict->lookup("Domain", &obj1)->isArray()) { + error(-1, "Function is missing domain"); + goto err2; + } + m = obj1.arrayGetLength() / 2; + if (m > funcMaxInputs) { + error(-1, "Functions with more than %d inputs are unsupported", + funcMaxInputs); + goto err2; + } + for (i = 0; i < m; ++i) { + obj1.arrayGet(2*i, &obj2); + if (!obj2.isNum()) { + error(-1, "Illegal value in function domain array"); + goto err1; + } + domain[i][0] = obj2.getNum(); + obj2.free(); + obj1.arrayGet(2*i+1, &obj2); + if (!obj2.isNum()) { + error(-1, "Illegal value in function domain array"); + goto err1; + } + domain[i][1] = obj2.getNum(); + obj2.free(); + } + obj1.free(); + + //----- Range + hasRange = gFalse; + n = 0; + if (dict->lookup("Range", &obj1)->isArray()) { + hasRange = gTrue; + n = obj1.arrayGetLength() / 2; + if (n > funcMaxOutputs) { + error(-1, "Functions with more than %d outputs are unsupported", + funcMaxOutputs); + goto err2; + } + for (i = 0; i < n; ++i) { + obj1.arrayGet(2*i, &obj2); + if (!obj2.isNum()) { + error(-1, "Illegal value in function range array"); + goto err1; + } + range[i][0] = obj2.getNum(); + obj2.free(); + obj1.arrayGet(2*i+1, &obj2); + if (!obj2.isNum()) { + error(-1, "Illegal value in function range array"); + goto err1; + } + range[i][1] = obj2.getNum(); + obj2.free(); + } + } + obj1.free(); + + return gTrue; + + err1: + obj2.free(); + err2: + obj1.free(); + return gFalse; +} + +//------------------------------------------------------------------------ +// IdentityFunction +//------------------------------------------------------------------------ + +IdentityFunction::IdentityFunction() { + int i; + + // fill these in with arbitrary values just in case they get used + // somewhere + m = funcMaxInputs; + n = funcMaxOutputs; + for (i = 0; i < funcMaxInputs; ++i) { + domain[i][0] = 0; + domain[i][1] = 1; + } + hasRange = gFalse; +} + +IdentityFunction::~IdentityFunction() { +} + +void IdentityFunction::transform(double *in, double *out) { + int i; + + for (i = 0; i < funcMaxOutputs; ++i) { + out[i] = in[i]; + } +} + +//------------------------------------------------------------------------ +// SampledFunction +//------------------------------------------------------------------------ + +SampledFunction::SampledFunction(Object *funcObj, Dict *dict) { + Stream *str; + int nSamples, sampleBits; + double sampleMul; + Object obj1, obj2; + Guint buf, bitMask; + int bits; + int s; + int i; + + samples = NULL; + ok = gFalse; + + //----- initialize the generic stuff + if (!init(dict)) { + goto err1; + } + if (!hasRange) { + error(-1, "Type 0 function is missing range"); + goto err1; + } + + //----- get the stream + if (!funcObj->isStream()) { + error(-1, "Type 0 function isn't a stream"); + goto err1; + } + str = funcObj->getStream(); + + //----- Size + if (!dict->lookup("Size", &obj1)->isArray() || + obj1.arrayGetLength() != m) { + error(-1, "Function has missing or invalid size array"); + goto err2; + } + for (i = 0; i < m; ++i) { + obj1.arrayGet(i, &obj2); + if (!obj2.isInt()) { + error(-1, "Illegal value in function size array"); + goto err3; + } + sampleSize[i] = obj2.getInt(); + obj2.free(); + } + obj1.free(); + + //----- BitsPerSample + if (!dict->lookup("BitsPerSample", &obj1)->isInt()) { + error(-1, "Function has missing or invalid BitsPerSample"); + goto err2; + } + sampleBits = obj1.getInt(); + sampleMul = 1.0 / (double)((1 << sampleBits) - 1); + obj1.free(); + + //----- Encode + if (dict->lookup("Encode", &obj1)->isArray() && + obj1.arrayGetLength() == 2*m) { + for (i = 0; i < m; ++i) { + obj1.arrayGet(2*i, &obj2); + if (!obj2.isNum()) { + error(-1, "Illegal value in function encode array"); + goto err3; + } + encode[i][0] = obj2.getNum(); + obj2.free(); + obj1.arrayGet(2*i+1, &obj2); + if (!obj2.isNum()) { + error(-1, "Illegal value in function encode array"); + goto err3; + } + encode[i][1] = obj2.getNum(); + obj2.free(); + } + } else { + for (i = 0; i < m; ++i) { + encode[i][0] = 0; + encode[i][1] = sampleSize[i] - 1; + } + } + obj1.free(); + + //----- Decode + if (dict->lookup("Decode", &obj1)->isArray() && + obj1.arrayGetLength() == 2*n) { + for (i = 0; i < n; ++i) { + obj1.arrayGet(2*i, &obj2); + if (!obj2.isNum()) { + error(-1, "Illegal value in function decode array"); + goto err3; + } + decode[i][0] = obj2.getNum(); + obj2.free(); + obj1.arrayGet(2*i+1, &obj2); + if (!obj2.isNum()) { + error(-1, "Illegal value in function decode array"); + goto err3; + } + decode[i][1] = obj2.getNum(); + obj2.free(); + } + } else { + for (i = 0; i < n; ++i) { + decode[i][0] = range[i][0]; + decode[i][1] = range[i][1]; + } + } + obj1.free(); + + //----- samples + nSamples = n; + for (i = 0; i < m; ++i) + nSamples *= sampleSize[i]; + samples = (double *)gmalloc(nSamples * sizeof(double)); + buf = 0; + bits = 0; + bitMask = (1 << sampleBits) - 1; + str->reset(); + for (i = 0; i < nSamples; ++i) { + if (sampleBits == 8) { + s = str->getChar(); + } else if (sampleBits == 16) { + s = str->getChar(); + s = (s << 8) + str->getChar(); + } else if (sampleBits == 32) { + s = str->getChar(); + s = (s << 8) + str->getChar(); + s = (s << 8) + str->getChar(); + s = (s << 8) + str->getChar(); + } else { + while (bits < sampleBits) { + buf = (buf << 8) | (str->getChar() & 0xff); + bits += 8; + } + s = (buf >> (bits - sampleBits)) & bitMask; + bits -= sampleBits; + } + samples[i] = (double)s * sampleMul; + } + str->close(); + + ok = gTrue; + return; + + err3: + obj2.free(); + err2: + obj1.free(); + err1: + return; +} + +SampledFunction::~SampledFunction() { + if (samples) { + gfree(samples); + } +} + +SampledFunction::SampledFunction(SampledFunction *func) { + int nSamples, i; + + memcpy(this, func, sizeof(SampledFunction)); + + nSamples = n; + for (i = 0; i < m; ++i) { + nSamples *= sampleSize[i]; + } + samples = (double *)gmalloc(nSamples * sizeof(double)); + memcpy(samples, func->samples, nSamples * sizeof(double)); +} + +void SampledFunction::transform(double *in, double *out) { + double x; + int e[2][funcMaxInputs]; + double efrac[funcMaxInputs]; + double s0[1 << funcMaxInputs], s1[1 << funcMaxInputs]; + int i, j, k, idx; + + // map input values into sample array + for (i = 0; i < m; ++i) { + x = ((in[i] - domain[i][0]) / (domain[i][1] - domain[i][0])) * + (encode[i][1] - encode[i][0]) + encode[i][0]; + if (x < 0) { + x = 0; + } else if (x > sampleSize[i] - 1) { + x = sampleSize[i] - 1; + } + e[0][i] = (int)floor(x); + e[1][i] = (int)ceil(x); + efrac[i] = x - e[0][i]; + } + + // for each output, do m-linear interpolation + for (i = 0; i < n; ++i) { + + // pull 2^m values out of the sample array + for (j = 0; j < (1<= 0; --k) { + idx = idx * sampleSize[k] + e[(j >> k) & 1][k]; + } + idx = idx * n + i; + s0[j] = samples[idx]; + } + + // do m sets of interpolations + for (j = 0; j < m; ++j) { + for (k = 0; k < (1 << (m - j)); k += 2) { + s1[k >> 1] = (1 - efrac[j]) * s0[k] + efrac[j] * s0[k+1]; + } + memcpy(s0, s1, (1 << (m - j - 1)) * sizeof(double)); + } + + // map output value to range + out[i] = s0[0] * (decode[i][1] - decode[i][0]) + decode[i][0]; + if (out[i] < range[i][0]) { + out[i] = range[i][0]; + } else if (out[i] > range[i][1]) { + out[i] = range[i][1]; + } + } +} + +//------------------------------------------------------------------------ +// ExponentialFunction +//------------------------------------------------------------------------ + +ExponentialFunction::ExponentialFunction(Object *funcObj, Dict *dict) { + Object obj1, obj2; + GBool hasN; + int i; + + ok = gFalse; + + //----- initialize the generic stuff + if (!init(dict)) { + goto err1; + } + if (m != 1) { + error(-1, "Exponential function with more than one input"); + goto err1; + } + hasN = hasRange; + + //----- default values + for (i = 0; i < funcMaxOutputs; ++i) { + c0[i] = 0; + c1[i] = 1; + } + + //----- C0 + if (dict->lookup("C0", &obj1)->isArray()) { + if (!hasN) { + n = obj1.arrayGetLength(); + hasN = gTrue; + } else if (obj1.arrayGetLength() != n) { + error(-1, "Function's C0 array is wrong length"); + goto err2; + } + for (i = 0; i < n; ++i) { + obj1.arrayGet(i, &obj2); + if (!obj2.isNum()) { + error(-1, "Illegal value in function C0 array"); + goto err3; + } + c0[i] = obj2.getNum(); + obj2.free(); + } + } + obj1.free(); + + //----- C1 + if (dict->lookup("C1", &obj1)->isArray()) { + if (!hasN) { + n = obj1.arrayGetLength(); + hasN = gTrue; + } else if (obj1.arrayGetLength() != n) { + error(-1, "Function's C1 array is wrong length"); + goto err2; + } + for (i = 0; i < n; ++i) { + obj1.arrayGet(i, &obj2); + if (!obj2.isNum()) { + error(-1, "Illegal value in function C1 array"); + goto err3; + } + c1[i] = obj2.getNum(); + obj2.free(); + } + } + obj1.free(); + + //----- N (exponent) + if (!dict->lookup("N", &obj1)->isNum()) { + error(-1, "Function has missing or invalid N"); + goto err2; + } + e = obj1.getNum(); + obj1.free(); + + // this isn't supposed to happen, but I've run into (broken) PDF + // files where it does + if (!hasN) { + error(-1, "Exponential function does not define number of output values"); + n = 1; + } + + ok = gTrue; + return; + + err3: + obj2.free(); + err2: + obj1.free(); + err1: + return; +} + +ExponentialFunction::~ExponentialFunction() { +} + +ExponentialFunction::ExponentialFunction(ExponentialFunction *func) { + memcpy(this, func, sizeof(ExponentialFunction)); +} + +void ExponentialFunction::transform(double *in, double *out) { + double x; + int i; + + if (in[0] < domain[0][0]) { + x = domain[0][0]; + } else if (in[0] > domain[0][1]) { + x = domain[0][1]; + } else { + x = in[0]; + } + for (i = 0; i < n; ++i) { + out[i] = c0[i] + pow(x, e) * (c1[i] - c0[i]); + if (hasRange) { + if (out[i] < range[i][0]) { + out[i] = range[i][0]; + } else if (out[i] > range[i][1]) { + out[i] = range[i][1]; + } + } + } + return; +} + +//------------------------------------------------------------------------ +// StitchingFunction +//------------------------------------------------------------------------ + +StitchingFunction::StitchingFunction(Object *funcObj, Dict *dict) { + Object obj1, obj2; + int i; + + ok = gFalse; + funcs = NULL; + bounds = NULL; + encode = NULL; + + //----- initialize the generic stuff + if (!init(dict)) { + goto err1; + } + if (m != 1) { + error(-1, "Stitching function with more than one input"); + goto err1; + } + + //----- Functions + if (!dict->lookup("Functions", &obj1)->isArray()) { + error(-1, "Missing 'Functions' entry in stitching function"); + goto err1; + } + k = obj1.arrayGetLength(); + funcs = (Function **)gmalloc(k * sizeof(Function *)); + bounds = (double *)gmalloc((k + 1) * sizeof(double)); + encode = (double *)gmalloc(2 * k * sizeof(double)); + for (i = 0; i < k; ++i) { + funcs[i] = NULL; + } + for (i = 0; i < k; ++i) { + if (!(funcs[i] = Function::parse(obj1.arrayGet(i, &obj2)))) { + goto err2; + } + if (i > 0 && (funcs[i]->getInputSize() != 1 || + funcs[i]->getOutputSize() != funcs[0]->getOutputSize())) { + error(-1, "Incompatible subfunctions in stitching function"); + goto err2; + } + obj2.free(); + } + obj1.free(); + + //----- Bounds + if (!dict->lookup("Bounds", &obj1)->isArray() || + obj1.arrayGetLength() != k - 1) { + error(-1, "Missing or invalid 'Bounds' entry in stitching function"); + goto err1; + } + bounds[0] = domain[0][0]; + for (i = 1; i < k; ++i) { + if (!obj1.arrayGet(i - 1, &obj2)->isNum()) { + error(-1, "Invalid type in 'Bounds' array in stitching function"); + goto err2; + } + bounds[i] = obj2.getNum(); + obj2.free(); + } + bounds[k] = domain[0][1]; + obj1.free(); + + //----- Encode + if (!dict->lookup("Encode", &obj1)->isArray() || + obj1.arrayGetLength() != 2 * k) { + error(-1, "Missing or invalid 'Encode' entry in stitching function"); + goto err1; + } + for (i = 0; i < 2 * k; ++i) { + if (!obj1.arrayGet(i, &obj2)->isNum()) { + error(-1, "Invalid type in 'Encode' array in stitching function"); + goto err2; + } + encode[i] = obj2.getNum(); + obj2.free(); + } + obj1.free(); + + ok = gTrue; + return; + + err2: + obj2.free(); + err1: + obj1.free(); +} + +StitchingFunction::StitchingFunction(StitchingFunction *func) { + k = func->k; + funcs = (Function **)gmalloc(k * sizeof(Function *)); + memcpy(funcs, func->funcs, k * sizeof(Function *)); + bounds = (double *)gmalloc((k + 1) * sizeof(double)); + memcpy(bounds, func->bounds, (k + 1) * sizeof(double)); + encode = (double *)gmalloc(2 * k * sizeof(double)); + memcpy(encode, func->encode, 2 * k * sizeof(double)); + ok = gTrue; +} + +StitchingFunction::~StitchingFunction() { + int i; + + for (i = 0; i < k; ++i) { + if (funcs[i]) { + delete funcs[i]; + } + } + gfree(funcs); + gfree(bounds); + gfree(encode); +} + +void StitchingFunction::transform(double *in, double *out) { + double x; + int i; + + if (in[0] < domain[0][0]) { + x = domain[0][0]; + } else if (in[0] > domain[0][1]) { + x = domain[0][1]; + } else { + x = in[0]; + } + for (i = 0; i < k - 1; ++i) { + if (x < bounds[i+1]) { + break; + } + } + x = encode[2*i] + ((x - bounds[i]) / (bounds[i+1] - bounds[i])) * + (encode[2*i+1] - encode[2*i]); + funcs[i]->transform(&x, out); +} + +//------------------------------------------------------------------------ +// PostScriptFunction +//------------------------------------------------------------------------ + +enum PSOp { + psOpAbs, + psOpAdd, + psOpAnd, + psOpAtan, + psOpBitshift, + psOpCeiling, + psOpCopy, + psOpCos, + psOpCvi, + psOpCvr, + psOpDiv, + psOpDup, + psOpEq, + psOpExch, + psOpExp, + psOpFalse, + psOpFloor, + psOpGe, + psOpGt, + psOpIdiv, + psOpIndex, + psOpLe, + psOpLn, + psOpLog, + psOpLt, + psOpMod, + psOpMul, + psOpNe, + psOpNeg, + psOpNot, + psOpOr, + psOpPop, + psOpRoll, + psOpRound, + psOpSin, + psOpSqrt, + psOpSub, + psOpTrue, + psOpTruncate, + psOpXor, + psOpIf, + psOpIfelse, + psOpReturn +}; + +// Note: 'if' and 'ifelse' are parsed separately. +// The rest are listed here in alphabetical order. +// The index in this table is equivalent to the entry in PSOp. +char *psOpNames[] = { + "abs", + "add", + "and", + "atan", + "bitshift", + "ceiling", + "copy", + "cos", + "cvi", + "cvr", + "div", + "dup", + "eq", + "exch", + "exp", + "false", + "floor", + "ge", + "gt", + "idiv", + "index", + "le", + "ln", + "log", + "lt", + "mod", + "mul", + "ne", + "neg", + "not", + "or", + "pop", + "roll", + "round", + "sin", + "sqrt", + "sub", + "true", + "truncate", + "xor" +}; + +#define nPSOps (sizeof(psOpNames) / sizeof(char *)) + +enum PSObjectType { + psBool, + psInt, + psReal, + psOperator, + psBlock +}; + +// In the code array, 'if'/'ifelse' operators take up three slots +// plus space for the code in the subclause(s). +// +// +---------------------------------+ +// | psOperator: psOpIf / psOpIfelse | +// +---------------------------------+ +// | psBlock: ptr= | +// +---------------------------------+ +// | psBlock: ptr= | +// +---------------------------------+ +// | if clause | +// | ... | +// | psOperator: psOpReturn | +// +---------------------------------+ +// | else clause | +// | ... | +// | psOperator: psOpReturn | +// +---------------------------------+ +// | ... | +// +// For 'if', pointer is present in the code stream but unused. + +struct PSObject { + PSObjectType type; + union { + GBool booln; // boolean (stack only) + int intg; // integer (stack and code) + double real; // real (stack and code) + PSOp op; // operator (code only) + int blk; // if/ifelse block pointer (code only) + }; +}; + +#define psStackSize 100 + +class PSStack { +public: + + PSStack() { sp = psStackSize; } + void pushBool(GBool booln); + void pushInt(int intg); + void pushReal(double real); + GBool popBool(); + int popInt(); + double popNum(); + GBool empty() { return sp == psStackSize; } + GBool topIsInt() { return sp < psStackSize && stack[sp].type == psInt; } + GBool topTwoAreInts() + { return sp < psStackSize - 1 && + stack[sp].type == psInt && + stack[sp+1].type == psInt; } + GBool topIsReal() { return sp < psStackSize && stack[sp].type == psReal; } + GBool topTwoAreNums() + { return sp < psStackSize - 1 && + (stack[sp].type == psInt || stack[sp].type == psReal) && + (stack[sp+1].type == psInt || stack[sp+1].type == psReal); } + void copy(int n); + void roll(int n, int j); + void index(int i); + void pop(); + +private: + + GBool checkOverflow(int n = 1); + GBool checkUnderflow(); + GBool checkType(PSObjectType t1, PSObjectType t2); + + PSObject stack[psStackSize]; + int sp; +}; + +GBool PSStack::checkOverflow(int n) { + if (sp - n < 0) { + error(-1, "Stack overflow in PostScript function"); + return gFalse; + } + return gTrue; +} + +GBool PSStack::checkUnderflow() { + if (sp == psStackSize) { + error(-1, "Stack underflow in PostScript function"); + return gFalse; + } + return gTrue; +} + +GBool PSStack::checkType(PSObjectType t1, PSObjectType t2) { + if (stack[sp].type != t1 && stack[sp].type != t2) { + error(-1, "Type mismatch in PostScript function"); + return gFalse; + } + return gTrue; +} + +void PSStack::pushBool(GBool booln) { + if (checkOverflow()) { + stack[--sp].type = psBool; + stack[sp].booln = booln; + } +} + +void PSStack::pushInt(int intg) { + if (checkOverflow()) { + stack[--sp].type = psInt; + stack[sp].intg = intg; + } +} + +void PSStack::pushReal(double real) { + if (checkOverflow()) { + stack[--sp].type = psReal; + stack[sp].real = real; + } +} + +GBool PSStack::popBool() { + if (checkUnderflow() && checkType(psBool, psBool)) { + return stack[sp++].booln; + } + return gFalse; +} + +int PSStack::popInt() { + if (checkUnderflow() && checkType(psInt, psInt)) { + return stack[sp++].intg; + } + return 0; +} + +double PSStack::popNum() { + double ret; + + if (checkUnderflow() && checkType(psInt, psReal)) { + ret = (stack[sp].type == psInt) ? (double)stack[sp].intg : stack[sp].real; + ++sp; + return ret; + } + return 0; +} + +void PSStack::copy(int n) { + int i; + + if (!checkOverflow(n)) { + return; + } + for (i = sp + n - 1; i <= sp; ++i) { + stack[i - n] = stack[i]; + } + sp -= n; +} + +void PSStack::roll(int n, int j) { + PSObject obj; + int i, k; + + if (j >= 0) { + j %= n; + } else { + j = -j % n; + if (j != 0) { + j = n - j; + } + } + if (n <= 0 || j == 0) { + return; + } + for (i = 0; i < j; ++i) { + obj = stack[sp]; + for (k = sp; k < sp + n - 1; ++k) { + stack[k] = stack[k+1]; + } + stack[sp + n - 1] = obj; + } +} + +void PSStack::index(int i) { + if (!checkOverflow()) { + return; + } + --sp; + stack[sp] = stack[sp + 1 + i]; +} + +void PSStack::pop() { + if (!checkUnderflow()) { + return; + } + ++sp; +} + +PostScriptFunction::PostScriptFunction(Object *funcObj, Dict *dict) { + Stream *str; + int codePtr; + GString *tok; + + code = NULL; + codeSize = 0; + ok = gFalse; + + //----- initialize the generic stuff + if (!init(dict)) { + goto err1; + } + if (!hasRange) { + error(-1, "Type 4 function is missing range"); + goto err1; + } + + //----- get the stream + if (!funcObj->isStream()) { + error(-1, "Type 4 function isn't a stream"); + goto err1; + } + str = funcObj->getStream(); + + //----- parse the function + str->reset(); + if (!(tok = getToken(str)) || tok->cmp("{")) { + error(-1, "Expected '{' at start of PostScript function"); + if (tok) { + delete tok; + } + goto err1; + } + delete tok; + codePtr = 0; + if (!parseCode(str, &codePtr)) { + goto err2; + } + str->close(); + + ok = gTrue; + + err2: + str->close(); + err1: + return; +} + +PostScriptFunction::PostScriptFunction(PostScriptFunction *func) { + memcpy(this, func, sizeof(PostScriptFunction)); + code = (PSObject *)gmalloc(codeSize * sizeof(PSObject)); + memcpy(code, func->code, codeSize * sizeof(PSObject)); +} + +PostScriptFunction::~PostScriptFunction() { + gfree(code); +} + +void PostScriptFunction::transform(double *in, double *out) { + PSStack *stack; + int i; + + stack = new PSStack(); + for (i = 0; i < m; ++i) { + //~ may need to check for integers here + stack->pushReal(in[i]); + } + exec(stack, 0); + for (i = n - 1; i >= 0; --i) { + out[i] = stack->popNum(); + if (out[i] < range[i][0]) { + out[i] = range[i][0]; + } else if (out[i] > range[i][1]) { + out[i] = range[i][1]; + } + } + // if (!stack->empty()) { + // error(-1, "Extra values on stack at end of PostScript function"); + // } + delete stack; +} + +GBool PostScriptFunction::parseCode(Stream *str, int *codePtr) { + GString *tok; + char *p; + GBool isReal; + int opPtr, elsePtr; + int a, b, mid, cmp; + + while (1) { + if (!(tok = getToken(str))) { + error(-1, "Unexpected end of PostScript function stream"); + return gFalse; + } + p = tok->getCString(); + if (isdigit(*p) || *p == '.' || *p == '-') { + isReal = gFalse; + for (++p; *p; ++p) { + if (*p == '.') { + isReal = gTrue; + break; + } + } + resizeCode(*codePtr); + if (isReal) { + code[*codePtr].type = psReal; + code[*codePtr].real = atof(tok->getCString()); + } else { + code[*codePtr].type = psInt; + code[*codePtr].intg = atoi(tok->getCString()); + } + ++*codePtr; + delete tok; + } else if (!tok->cmp("{")) { + delete tok; + opPtr = *codePtr; + *codePtr += 3; + resizeCode(opPtr + 2); + if (!parseCode(str, codePtr)) { + return gFalse; + } + if (!(tok = getToken(str))) { + error(-1, "Unexpected end of PostScript function stream"); + return gFalse; + } + if (!tok->cmp("{")) { + elsePtr = *codePtr; + if (!parseCode(str, codePtr)) { + return gFalse; + } + } else { + elsePtr = -1; + } + delete tok; + if (!(tok = getToken(str))) { + error(-1, "Unexpected end of PostScript function stream"); + return gFalse; + } + if (!tok->cmp("if")) { + if (elsePtr >= 0) { + error(-1, "Got 'if' operator with two blocks in PostScript function"); + return gFalse; + } + code[opPtr].type = psOperator; + code[opPtr].op = psOpIf; + code[opPtr+2].type = psBlock; + code[opPtr+2].blk = *codePtr; + } else if (!tok->cmp("ifelse")) { + if (elsePtr < 0) { + error(-1, "Got 'ifelse' operator with one blocks in PostScript function"); + return gFalse; + } + code[opPtr].type = psOperator; + code[opPtr].op = psOpIfelse; + code[opPtr+1].type = psBlock; + code[opPtr+1].blk = elsePtr; + code[opPtr+2].type = psBlock; + code[opPtr+2].blk = *codePtr; + } else { + error(-1, "Expected if/ifelse operator in PostScript function"); + delete tok; + return gFalse; + } + delete tok; + } else if (!tok->cmp("}")) { + delete tok; + resizeCode(*codePtr); + code[*codePtr].type = psOperator; + code[*codePtr].op = psOpReturn; + ++*codePtr; + break; + } else { + a = -1; + b = nPSOps; + // invariant: psOpNames[a] < tok < psOpNames[b] + while (b - a > 1) { + mid = (a + b) / 2; + cmp = tok->cmp(psOpNames[mid]); + if (cmp > 0) { + a = mid; + } else if (cmp < 0) { + b = mid; + } else { + a = b = mid; + } + } + if (cmp != 0) { + error(-1, "Unknown operator '%s' in PostScript function", + tok->getCString()); + delete tok; + return gFalse; + } + delete tok; + resizeCode(*codePtr); + code[*codePtr].type = psOperator; + code[*codePtr].op = (PSOp)a; + ++*codePtr; + } + } + return gTrue; +} + +GString *PostScriptFunction::getToken(Stream *str) { + GString *s; + int c; + + s = new GString(); + do { + c = str->getChar(); + } while (c != EOF && isspace(c)); + if (c == '{' || c == '}') { + s->append((char)c); + } else if (isdigit(c) || c == '.' || c == '-') { + while (1) { + s->append((char)c); + c = str->lookChar(); + if (c == EOF || !(isdigit(c) || c == '.' || c == '-')) { + break; + } + str->getChar(); + } + } else { + while (1) { + s->append((char)c); + c = str->lookChar(); + if (c == EOF || !isalnum(c)) { + break; + } + str->getChar(); + } + } + return s; +} + +void PostScriptFunction::resizeCode(int newSize) { + if (newSize >= codeSize) { + codeSize += 64; + code = (PSObject *)grealloc(code, codeSize * sizeof(PSObject)); + } +} + +void PostScriptFunction::exec(PSStack *stack, int codePtr) { + int i1, i2; + double r1, r2; + GBool b1, b2; + + while (1) { + switch (code[codePtr].type) { + case psInt: + stack->pushInt(code[codePtr++].intg); + break; + case psReal: + stack->pushReal(code[codePtr++].real); + break; + case psOperator: + switch (code[codePtr++].op) { + case psOpAbs: + if (stack->topIsInt()) { + stack->pushInt(abs(stack->popInt())); + } else { + stack->pushReal(fabs(stack->popNum())); + } + break; + case psOpAdd: + if (stack->topTwoAreInts()) { + i2 = stack->popInt(); + i1 = stack->popInt(); + stack->pushInt(i1 + i2); + } else { + r2 = stack->popNum(); + r1 = stack->popNum(); + stack->pushReal(r1 + r2); + } + break; + case psOpAnd: + if (stack->topTwoAreInts()) { + i2 = stack->popInt(); + i1 = stack->popInt(); + stack->pushInt(i1 & i2); + } else { + b2 = stack->popBool(); + b1 = stack->popBool(); + stack->pushReal(b1 && b2); + } + break; + case psOpAtan: + r2 = stack->popNum(); + r1 = stack->popNum(); + stack->pushReal(atan2(r1, r2)); + break; + case psOpBitshift: + i2 = stack->popInt(); + i1 = stack->popInt(); + if (i2 > 0) { + stack->pushInt(i1 << i2); + } else if (i2 < 0) { + stack->pushInt((int)((Guint)i1 >> i2)); + } else { + stack->pushInt(i1); + } + break; + case psOpCeiling: + if (!stack->topIsInt()) { + stack->pushReal(ceil(stack->popNum())); + } + break; + case psOpCopy: + stack->copy(stack->popInt()); + break; + case psOpCos: + stack->pushReal(cos(stack->popNum())); + break; + case psOpCvi: + if (!stack->topIsInt()) { + stack->pushInt((int)stack->popNum()); + } + break; + case psOpCvr: + if (!stack->topIsReal()) { + stack->pushReal(stack->popNum()); + } + break; + case psOpDiv: + r2 = stack->popNum(); + r1 = stack->popNum(); + stack->pushReal(r1 / r2); + break; + case psOpDup: + stack->copy(1); + break; + case psOpEq: + if (stack->topTwoAreInts()) { + i2 = stack->popInt(); + i1 = stack->popInt(); + stack->pushBool(i1 == i2); + } else if (stack->topTwoAreNums()) { + r2 = stack->popNum(); + r1 = stack->popNum(); + stack->pushBool(r1 == r2); + } else { + b2 = stack->popBool(); + b1 = stack->popBool(); + stack->pushBool(b1 == b2); + } + break; + case psOpExch: + stack->roll(2, 1); + break; + case psOpExp: + r2 = stack->popInt(); + r1 = stack->popInt(); + stack->pushReal(pow(r1, r2)); + break; + case psOpFalse: + stack->pushBool(gFalse); + break; + case psOpFloor: + if (!stack->topIsInt()) { + stack->pushReal(floor(stack->popNum())); + } + break; + case psOpGe: + if (stack->topTwoAreInts()) { + i2 = stack->popInt(); + i1 = stack->popInt(); + stack->pushBool(i1 >= i2); + } else { + r2 = stack->popNum(); + r1 = stack->popNum(); + stack->pushBool(r1 >= r2); + } + break; + case psOpGt: + if (stack->topTwoAreInts()) { + i2 = stack->popInt(); + i1 = stack->popInt(); + stack->pushBool(i1 > i2); + } else { + r2 = stack->popNum(); + r1 = stack->popNum(); + stack->pushBool(r1 > r2); + } + break; + case psOpIdiv: + i2 = stack->popInt(); + i1 = stack->popInt(); + stack->pushInt(i1 / i2); + break; + case psOpIndex: + stack->index(stack->popInt()); + break; + case psOpLe: + if (stack->topTwoAreInts()) { + i2 = stack->popInt(); + i1 = stack->popInt(); + stack->pushBool(i1 <= i2); + } else { + r2 = stack->popNum(); + r1 = stack->popNum(); + stack->pushBool(r1 <= r2); + } + break; + case psOpLn: + stack->pushReal(log(stack->popNum())); + break; + case psOpLog: + stack->pushReal(log10(stack->popNum())); + break; + case psOpLt: + if (stack->topTwoAreInts()) { + i2 = stack->popInt(); + i1 = stack->popInt(); + stack->pushBool(i1 < i2); + } else { + r2 = stack->popNum(); + r1 = stack->popNum(); + stack->pushBool(r1 < r2); + } + break; + case psOpMod: + i2 = stack->popInt(); + i1 = stack->popInt(); + stack->pushInt(i1 % i2); + break; + case psOpMul: + if (stack->topTwoAreInts()) { + i2 = stack->popInt(); + i1 = stack->popInt(); + //~ should check for out-of-range, and push a real instead + stack->pushInt(i1 * i2); + } else { + r2 = stack->popNum(); + r1 = stack->popNum(); + stack->pushReal(r1 * r2); + } + break; + case psOpNe: + if (stack->topTwoAreInts()) { + i2 = stack->popInt(); + i1 = stack->popInt(); + stack->pushBool(i1 != i2); + } else if (stack->topTwoAreNums()) { + r2 = stack->popNum(); + r1 = stack->popNum(); + stack->pushBool(r1 != r2); + } else { + b2 = stack->popBool(); + b1 = stack->popBool(); + stack->pushBool(b1 != b2); + } + break; + case psOpNeg: + if (stack->topIsInt()) { + stack->pushInt(-stack->popInt()); + } else { + stack->pushReal(-stack->popNum()); + } + break; + case psOpNot: + if (stack->topIsInt()) { + stack->pushInt(~stack->popInt()); + } else { + stack->pushReal(!stack->popBool()); + } + break; + case psOpOr: + if (stack->topTwoAreInts()) { + i2 = stack->popInt(); + i1 = stack->popInt(); + stack->pushInt(i1 | i2); + } else { + b2 = stack->popBool(); + b1 = stack->popBool(); + stack->pushReal(b1 || b2); + } + break; + case psOpPop: + stack->pop(); + break; + case psOpRoll: + i2 = stack->popInt(); + i1 = stack->popInt(); + stack->roll(i1, i2); + break; + case psOpRound: + if (!stack->topIsInt()) { + r1 = stack->popNum(); + stack->pushReal((r1 >= 0) ? floor(r1 + 0.5) : ceil(r1 - 0.5)); + } + break; + case psOpSin: + stack->pushReal(cos(stack->popNum())); + break; + case psOpSqrt: + stack->pushReal(sqrt(stack->popNum())); + break; + case psOpSub: + if (stack->topTwoAreInts()) { + i2 = stack->popInt(); + i1 = stack->popInt(); + stack->pushInt(i1 - i2); + } else { + r2 = stack->popNum(); + r1 = stack->popNum(); + stack->pushReal(r1 - r2); + } + break; + case psOpTrue: + stack->pushBool(gTrue); + break; + case psOpTruncate: + if (!stack->topIsInt()) { + r1 = stack->popNum(); + stack->pushReal((r1 >= 0) ? floor(r1) : ceil(r1)); + } + break; + case psOpXor: + if (stack->topTwoAreInts()) { + i2 = stack->popInt(); + i1 = stack->popInt(); + stack->pushInt(i1 ^ i2); + } else { + b2 = stack->popBool(); + b1 = stack->popBool(); + stack->pushReal(b1 ^ b2); + } + break; + case psOpIf: + b1 = stack->popBool(); + if (b1) { + exec(stack, codePtr + 2); + } + codePtr = code[codePtr + 1].blk; + break; + case psOpIfelse: + b1 = stack->popBool(); + if (b1) { + exec(stack, codePtr + 2); + } else { + exec(stack, code[codePtr].blk); + } + codePtr = code[codePtr + 1].blk; + break; + case psOpReturn: + return; + } + break; + default: + error(-1, "Internal: bad object in PostScript function code"); + break; + } + } +} diff --git a/pdf/xpdf/Function.h b/pdf/xpdf/Function.h new file mode 100644 index 00000000..9b0879f3 --- /dev/null +++ b/pdf/xpdf/Function.h @@ -0,0 +1,181 @@ +//======================================================================== +// +// Function.h +// +// Copyright 2001-2002 Glyph & Cog, LLC +// +//======================================================================== + +#ifndef FUNCTION_H +#define FUNCTION_H + +#ifdef __GNUC__ +#pragma interface +#endif + +#include "gtypes.h" +#include "Object.h" + +class Dict; +class Stream; +struct PSObject; +class PSStack; + +//------------------------------------------------------------------------ +// Function +//------------------------------------------------------------------------ + +#define funcMaxInputs 8 +#define funcMaxOutputs 8 + +class Function { +public: + + Function(); + + virtual ~Function(); + + // Construct a function. Returns NULL if unsuccessful. + static Function *parse(Object *funcObj); + + // Initialize the entries common to all function types. + GBool init(Dict *dict); + + virtual Function *copy() = 0; + + // Return size of input and output tuples. + int getInputSize() { return m; } + int getOutputSize() { return n; } + + // Transform an input tuple into an output tuple. + virtual void transform(double *in, double *out) = 0; + + virtual GBool isOk() = 0; + +protected: + + int m, n; // size of input and output tuples + double // min and max values for function domain + domain[funcMaxInputs][2]; + double // min and max values for function range + range[funcMaxOutputs][2]; + GBool hasRange; // set if range is defined +}; + +//------------------------------------------------------------------------ +// IdentityFunction +//------------------------------------------------------------------------ + +class IdentityFunction: public Function { +public: + + IdentityFunction(); + virtual ~IdentityFunction(); + virtual Function *copy() { return new IdentityFunction(); } + virtual void transform(double *in, double *out); + virtual GBool isOk() { return gTrue; } + +private: +}; + +//------------------------------------------------------------------------ +// SampledFunction +//------------------------------------------------------------------------ + +class SampledFunction: public Function { +public: + + SampledFunction(Object *funcObj, Dict *dict); + virtual ~SampledFunction(); + virtual Function *copy() { return new SampledFunction(this); } + virtual void transform(double *in, double *out); + virtual GBool isOk() { return ok; } + +private: + + SampledFunction(SampledFunction *func); + + int // number of samples for each domain element + sampleSize[funcMaxInputs]; + double // min and max values for domain encoder + encode[funcMaxInputs][2]; + double // min and max values for range decoder + decode[funcMaxOutputs][2]; + double *samples; // the samples + GBool ok; +}; + +//------------------------------------------------------------------------ +// ExponentialFunction +//------------------------------------------------------------------------ + +class ExponentialFunction: public Function { +public: + + ExponentialFunction(Object *funcObj, Dict *dict); + virtual ~ExponentialFunction(); + virtual Function *copy() { return new ExponentialFunction(this); } + virtual void transform(double *in, double *out); + virtual GBool isOk() { return ok; } + +private: + + ExponentialFunction(ExponentialFunction *func); + + double c0[funcMaxOutputs]; + double c1[funcMaxOutputs]; + double e; + GBool ok; +}; + +//------------------------------------------------------------------------ +// StitchingFunction +//------------------------------------------------------------------------ + +class StitchingFunction: public Function { +public: + + StitchingFunction(Object *funcObj, Dict *dict); + virtual ~StitchingFunction(); + virtual Function *copy() { return new StitchingFunction(this); } + virtual void transform(double *in, double *out); + virtual GBool isOk() { return ok; } + +private: + + StitchingFunction(StitchingFunction *func); + + int k; + Function **funcs; + double *bounds; + double *encode; + GBool ok; +}; + +//------------------------------------------------------------------------ +// PostScriptFunction +//------------------------------------------------------------------------ + +class PostScriptFunction: public Function { +public: + + PostScriptFunction(Object *funcObj, Dict *dict); + virtual ~PostScriptFunction(); + virtual Function *copy() { return new PostScriptFunction(this); } + virtual void transform(double *in, double *out); + virtual GBool isOk() { return ok; } + +private: + + PostScriptFunction(PostScriptFunction *func); + GBool parseCode(Stream *str, int *codePtr); + GString *getToken(Stream *str); + void resizeCode(int newSize); + void exec(PSStack *stack, int codePtr); + + PSObject *code; + int codeSize; + GBool ok; +}; + +#endif diff --git a/pdf/xpdf/GB12CMapInfo.h b/pdf/xpdf/GB12CMapInfo.h deleted file mode 100644 index 88037573..00000000 --- a/pdf/xpdf/GB12CMapInfo.h +++ /dev/null @@ -1,50880 +0,0 @@ -//======================================================================== -// -// GB12CMapInfo.h -// -// This file was automatically generated by makeCMapInfo. -// -// Copyright 1998 Derek B. Noonburg -// -//======================================================================== - -#ifndef GB12CMAPINFO_H -#define GB12CMAPINFO_H - -static Gushort gb12AdobeGB10Map2[66] = { - 0x0000, 0x0000, - 0x0000, 0x0000, - 0x0100, 0x0100, - 0x0200, 0x0200, - 0x0300, 0x0300, - 0x0400, 0x0400, - 0x0500, 0x0500, - 0x0600, 0x0600, - 0x0700, 0x0700, - 0x0800, 0x0800, - 0x0900, 0x0900, - 0x0a00, 0x0a00, - 0x0b00, 0x0b00, - 0x0c00, 0x0c00, - 0x0d00, 0x0d00, - 0x0e00, 0x0e00, - 0x0f00, 0x0f00, - 0x1000, 0x1000, - 0x1100, 0x1100, - 0x1200, 0x1200, - 0x1300, 0x1300, - 0x1400, 0x1400, - 0x1500, 0x1500, - 0x1600, 0x1600, - 0x1700, 0x1700, - 0x1800, 0x1800, - 0x1900, 0x1900, - 0x1a00, 0x1a00, - 0x1b00, 0x1b00, - 0x1c00, 0x1c00, - 0x1d00, 0x1d00, - 0x1e00, 0x1e00, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 gb12AdobeGB10Enc16 = { - 0, - { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - gb12AdobeGB10Map2, 33 -}; - -static Gushort gb12AdobeGB11Map2[82] = { - 0x0000, 0x0000, - 0x0000, 0x0000, - 0x0100, 0x0100, - 0x0200, 0x0200, - 0x0300, 0x0300, - 0x0400, 0x0400, - 0x0500, 0x0500, - 0x0600, 0x0600, - 0x0700, 0x0700, - 0x0800, 0x0800, - 0x0900, 0x0900, - 0x0a00, 0x0a00, - 0x0b00, 0x0b00, - 0x0c00, 0x0c00, - 0x0d00, 0x0d00, - 0x0e00, 0x0e00, - 0x0f00, 0x0f00, - 0x1000, 0x1000, - 0x1100, 0x1100, - 0x1200, 0x1200, - 0x1300, 0x1300, - 0x1400, 0x1400, - 0x1500, 0x1500, - 0x1600, 0x1600, - 0x1700, 0x1700, - 0x1800, 0x1800, - 0x1900, 0x1900, - 0x1a00, 0x1a00, - 0x1b00, 0x1b00, - 0x1c00, 0x1c00, - 0x1d00, 0x1d00, - 0x1e00, 0x1e00, - 0x1f00, 0x1f00, - 0x2000, 0x2000, - 0x2100, 0x2100, - 0x2200, 0x2200, - 0x2300, 0x2300, - 0x2400, 0x2400, - 0x2500, 0x2500, - 0x2600, 0x2600, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 gb12AdobeGB11Enc16 = { - 0, - { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - gb12AdobeGB11Map2, 41 -}; - -static Gushort gb12AdobeGB12Map2[178] = { - 0x0000, 0x0000, - 0x0000, 0x0000, - 0x0100, 0x0100, - 0x0200, 0x0200, - 0x0300, 0x0300, - 0x0400, 0x0400, - 0x0500, 0x0500, - 0x0600, 0x0600, - 0x0700, 0x0700, - 0x0800, 0x0800, - 0x0900, 0x0900, - 0x0a00, 0x0a00, - 0x0b00, 0x0b00, - 0x0c00, 0x0c00, - 0x0d00, 0x0d00, - 0x0e00, 0x0e00, - 0x0f00, 0x0f00, - 0x1000, 0x1000, - 0x1100, 0x1100, - 0x1200, 0x1200, - 0x1300, 0x1300, - 0x1400, 0x1400, - 0x1500, 0x1500, - 0x1600, 0x1600, - 0x1700, 0x1700, - 0x1800, 0x1800, - 0x1900, 0x1900, - 0x1a00, 0x1a00, - 0x1b00, 0x1b00, - 0x1c00, 0x1c00, - 0x1d00, 0x1d00, - 0x1e00, 0x1e00, - 0x1f00, 0x1f00, - 0x2000, 0x2000, - 0x2100, 0x2100, - 0x2200, 0x2200, - 0x2300, 0x2300, - 0x2400, 0x2400, - 0x2500, 0x2500, - 0x2600, 0x2600, - 0x2700, 0x2700, - 0x2800, 0x2800, - 0x2900, 0x2900, - 0x2a00, 0x2a00, - 0x2b00, 0x2b00, - 0x2c00, 0x2c00, - 0x2d00, 0x2d00, - 0x2e00, 0x2e00, - 0x2f00, 0x2f00, - 0x3000, 0x3000, - 0x3100, 0x3100, - 0x3200, 0x3200, - 0x3300, 0x3300, - 0x3400, 0x3400, - 0x3500, 0x3500, - 0x3600, 0x3600, - 0x3700, 0x3700, - 0x3800, 0x3800, - 0x3900, 0x3900, - 0x3a00, 0x3a00, - 0x3b00, 0x3b00, - 0x3c00, 0x3c00, - 0x3d00, 0x3d00, - 0x3e00, 0x3e00, - 0x3f00, 0x3f00, - 0x4000, 0x4000, - 0x4100, 0x4100, - 0x4200, 0x4200, - 0x4300, 0x4300, - 0x4400, 0x4400, - 0x4500, 0x4500, - 0x4600, 0x4600, - 0x4700, 0x4700, - 0x4800, 0x4800, - 0x4900, 0x4900, - 0x4a00, 0x4a00, - 0x4b00, 0x4b00, - 0x4c00, 0x4c00, - 0x4d00, 0x4d00, - 0x4e00, 0x4e00, - 0x4f00, 0x4f00, - 0x5000, 0x5000, - 0x5100, 0x5100, - 0x5200, 0x5200, - 0x5300, 0x5300, - 0x5400, 0x5400, - 0x5500, 0x5500, - 0x5600, 0x5600, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 gb12AdobeGB12Enc16 = { - 0, - { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - gb12AdobeGB12Map2, 89 -}; - -static Gushort gb12GBEUCHMap2[180] = { - 0x0000, 0x0000, - 0xa1a1, 0x0060, - 0xa2b1, 0x00be, - 0xa2e5, 0x00f0, - 0xa2f1, 0x00fa, - 0xa3a1, 0x0106, - 0xa4a1, 0x0164, - 0xa5a1, 0x01b7, - 0xa6a1, 0x020d, - 0xa6c1, 0x0225, - 0xa7a1, 0x025a, - 0xa7d1, 0x027b, - 0xa8a1, 0x029c, - 0xa8c5, 0x02bc, - 0xa9a4, 0x02e2, - 0xaaa1, 0x032e, - 0xaba1, 0x038c, - 0xb0a1, 0x03ac, - 0xb1a1, 0x040a, - 0xb2a1, 0x0468, - 0xb3a1, 0x04c6, - 0xb4a1, 0x0524, - 0xb5a1, 0x0582, - 0xb6a1, 0x05e0, - 0xb7a1, 0x063e, - 0xb8a1, 0x069c, - 0xb9a1, 0x06fa, - 0xbaa1, 0x0758, - 0xbba1, 0x07b6, - 0xbca1, 0x0814, - 0xbda1, 0x0872, - 0xbea1, 0x08d0, - 0xbfa1, 0x092e, - 0xc0a1, 0x098c, - 0xc1a1, 0x09ea, - 0xc2a1, 0x0a48, - 0xc3a1, 0x0aa6, - 0xc4a1, 0x0b04, - 0xc5a1, 0x0b62, - 0xc6a1, 0x0bc0, - 0xc7a1, 0x0c1e, - 0xc8a1, 0x0c7c, - 0xc9a1, 0x0cda, - 0xcaa1, 0x0d38, - 0xcba1, 0x0d96, - 0xcca1, 0x0df4, - 0xcda1, 0x0e52, - 0xcea1, 0x0eb0, - 0xcfa1, 0x0f0e, - 0xd0a1, 0x0f6c, - 0xd1a1, 0x0fca, - 0xd2a1, 0x1028, - 0xd3a1, 0x1086, - 0xd4a1, 0x10e4, - 0xd5a1, 0x1142, - 0xd6a1, 0x11a0, - 0xd7a1, 0x11fe, - 0xd8a1, 0x1257, - 0xd9a1, 0x12b5, - 0xdaa1, 0x1313, - 0xdba1, 0x1371, - 0xdca1, 0x13cf, - 0xdda1, 0x142d, - 0xdea1, 0x148b, - 0xdfa1, 0x14e9, - 0xe0a1, 0x1547, - 0xe1a1, 0x15a5, - 0xe2a1, 0x1603, - 0xe3a1, 0x1661, - 0xe4a1, 0x16bf, - 0xe5a1, 0x171d, - 0xe6a1, 0x177b, - 0xe7a1, 0x17d9, - 0xe8a1, 0x1837, - 0xe9a1, 0x1895, - 0xeaa1, 0x18f3, - 0xeba1, 0x1951, - 0xeca1, 0x19af, - 0xeda1, 0x1a0d, - 0xeea1, 0x1a6b, - 0xefa1, 0x1ac9, - 0xf0a1, 0x1b27, - 0xf1a1, 0x1b85, - 0xf2a1, 0x1be3, - 0xf3a1, 0x1c41, - 0xf4a1, 0x1c9f, - 0xf5a1, 0x1cfd, - 0xf6a1, 0x1d5b, - 0xf7a1, 0x1db9, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 gb12GBEUCHEnc16 = { - 0, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1e24, 0x032e, 0x032f, 0x0330, 0x0331, 0x0332, 0x0333, 0x0334, - 0x0335, 0x0336, 0x0337, 0x0338, 0x0339, 0x033a, 0x033b, 0x033c, - 0x033d, 0x033e, 0x033f, 0x0340, 0x0341, 0x0342, 0x0343, 0x0344, - 0x0345, 0x0346, 0x0347, 0x0348, 0x0349, 0x034a, 0x034b, 0x034c, - 0x034d, 0x034e, 0x034f, 0x0350, 0x0351, 0x0352, 0x0353, 0x0354, - 0x0355, 0x0356, 0x0357, 0x0358, 0x0359, 0x035a, 0x035b, 0x035c, - 0x035d, 0x035e, 0x035f, 0x0360, 0x0361, 0x0362, 0x0363, 0x0364, - 0x0365, 0x0366, 0x0367, 0x0368, 0x0369, 0x036a, 0x036b, 0x036c, - 0x036d, 0x036e, 0x036f, 0x0370, 0x0371, 0x0372, 0x0373, 0x0374, - 0x0375, 0x0376, 0x0377, 0x0378, 0x0379, 0x037a, 0x037b, 0x037c, - 0x037d, 0x037e, 0x037f, 0x0380, 0x0381, 0x0382, 0x0383, 0x0384, - 0x0385, 0x0386, 0x0387, 0x0388, 0x0389, 0x038a, 0x038b, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - gb12GBEUCHMap2, 90 -}; - -static Gushort gb12GBEUCVMap2[220] = { - 0x0000, 0x0000, - 0xa1a1, 0x0060, - 0xa2b1, 0x00be, - 0xa2e5, 0x00f0, - 0xa2f1, 0x00fa, - 0xa3a1, 0x0106, - 0xa4a1, 0x0164, - 0xa5a1, 0x01b7, - 0xa6a1, 0x020d, - 0xa6c1, 0x0225, - 0xa7a1, 0x025a, - 0xa7d1, 0x027b, - 0xa8a1, 0x029c, - 0xa8c5, 0x02bc, - 0xa9a4, 0x02e2, - 0xaaa1, 0x032e, - 0xaba1, 0x038c, - 0xb0a1, 0x03ac, - 0xb1a1, 0x040a, - 0xb2a1, 0x0468, - 0xb3a1, 0x04c6, - 0xb4a1, 0x0524, - 0xb5a1, 0x0582, - 0xb6a1, 0x05e0, - 0xb7a1, 0x063e, - 0xb8a1, 0x069c, - 0xb9a1, 0x06fa, - 0xbaa1, 0x0758, - 0xbba1, 0x07b6, - 0xbca1, 0x0814, - 0xbda1, 0x0872, - 0xbea1, 0x08d0, - 0xbfa1, 0x092e, - 0xc0a1, 0x098c, - 0xc1a1, 0x09ea, - 0xc2a1, 0x0a48, - 0xc3a1, 0x0aa6, - 0xc4a1, 0x0b04, - 0xc5a1, 0x0b62, - 0xc6a1, 0x0bc0, - 0xc7a1, 0x0c1e, - 0xc8a1, 0x0c7c, - 0xc9a1, 0x0cda, - 0xcaa1, 0x0d38, - 0xcba1, 0x0d96, - 0xcca1, 0x0df4, - 0xcda1, 0x0e52, - 0xcea1, 0x0eb0, - 0xcfa1, 0x0f0e, - 0xd0a1, 0x0f6c, - 0xd1a1, 0x0fca, - 0xd2a1, 0x1028, - 0xd3a1, 0x1086, - 0xd4a1, 0x10e4, - 0xd5a1, 0x1142, - 0xd6a1, 0x11a0, - 0xd7a1, 0x11fe, - 0xd8a1, 0x1257, - 0xd9a1, 0x12b5, - 0xdaa1, 0x1313, - 0xdba1, 0x1371, - 0xdca1, 0x13cf, - 0xdda1, 0x142d, - 0xdea1, 0x148b, - 0xdfa1, 0x14e9, - 0xe0a1, 0x1547, - 0xe1a1, 0x15a5, - 0xe2a1, 0x1603, - 0xe3a1, 0x1661, - 0xe4a1, 0x16bf, - 0xe5a1, 0x171d, - 0xe6a1, 0x177b, - 0xe7a1, 0x17d9, - 0xe8a1, 0x1837, - 0xe9a1, 0x1895, - 0xeaa1, 0x18f3, - 0xeba1, 0x1951, - 0xeca1, 0x19af, - 0xeda1, 0x1a0d, - 0xeea1, 0x1a6b, - 0xefa1, 0x1ac9, - 0xf0a1, 0x1b27, - 0xf1a1, 0x1b85, - 0xf2a1, 0x1be3, - 0xf3a1, 0x1c41, - 0xf4a1, 0x1c9f, - 0xf5a1, 0x1cfd, - 0xf6a1, 0x1d5b, - 0xf7a1, 0x1db9, - 0xa1a2, 0x023f, - 0xa1a3, 0x023e, - 0xa1aa, 0x0256, - 0xa1ab, 0x1e18, - 0xa1ad, 0x0257, - 0xa1b2, 0x0246, - 0xa1fe, 0x1e1a, - 0xa3a1, 0x0242, - 0xa3a8, 0x0244, - 0xa3ac, 0x023d, - 0xa3ae, 0x1e1b, - 0xa3ba, 0x0240, - 0xa3bd, 0x1e1c, - 0xa3bf, 0x0243, - 0xa3db, 0x1e1d, - 0xa3dd, 0x1e1e, - 0xa3df, 0x0258, - 0xa3fb, 0x0254, - 0xa3fd, 0x0255, - 0xa3fe, 0x1e1f, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 gb12GBEUCVEnc16 = { - 1, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1e24, 0x032e, 0x032f, 0x0330, 0x0331, 0x0332, 0x0333, 0x0334, - 0x0335, 0x0336, 0x0337, 0x0338, 0x0339, 0x033a, 0x033b, 0x033c, - 0x033d, 0x033e, 0x033f, 0x0340, 0x0341, 0x0342, 0x0343, 0x0344, - 0x0345, 0x0346, 0x0347, 0x0348, 0x0349, 0x034a, 0x034b, 0x034c, - 0x034d, 0x034e, 0x034f, 0x0350, 0x0351, 0x0352, 0x0353, 0x0354, - 0x0355, 0x0356, 0x0357, 0x0358, 0x0359, 0x035a, 0x035b, 0x035c, - 0x035d, 0x035e, 0x035f, 0x0360, 0x0361, 0x0362, 0x0363, 0x0364, - 0x0365, 0x0366, 0x0367, 0x0368, 0x0369, 0x036a, 0x036b, 0x036c, - 0x036d, 0x036e, 0x036f, 0x0370, 0x0371, 0x0372, 0x0373, 0x0374, - 0x0375, 0x0376, 0x0377, 0x0378, 0x0379, 0x037a, 0x037b, 0x037c, - 0x037d, 0x037e, 0x037f, 0x0380, 0x0381, 0x0382, 0x0383, 0x0384, - 0x0385, 0x0386, 0x0387, 0x0388, 0x0389, 0x038a, 0x038b, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - gb12GBEUCVMap2, 110 -}; - -static Gushort gb12GBHMap2[180] = { - 0x0000, 0x0000, - 0x2121, 0x0060, - 0x2231, 0x00be, - 0x2265, 0x00f0, - 0x2271, 0x00fa, - 0x2321, 0x0106, - 0x2421, 0x0164, - 0x2521, 0x01b7, - 0x2621, 0x020d, - 0x2641, 0x0225, - 0x2721, 0x025a, - 0x2751, 0x027b, - 0x2821, 0x029c, - 0x2845, 0x02bc, - 0x2924, 0x02e2, - 0x2a21, 0x032e, - 0x2b21, 0x038c, - 0x3021, 0x03ac, - 0x3121, 0x040a, - 0x3221, 0x0468, - 0x3321, 0x04c6, - 0x3421, 0x0524, - 0x3521, 0x0582, - 0x3621, 0x05e0, - 0x3721, 0x063e, - 0x3821, 0x069c, - 0x3921, 0x06fa, - 0x3a21, 0x0758, - 0x3b21, 0x07b6, - 0x3c21, 0x0814, - 0x3d21, 0x0872, - 0x3e21, 0x08d0, - 0x3f21, 0x092e, - 0x4021, 0x098c, - 0x4121, 0x09ea, - 0x4221, 0x0a48, - 0x4321, 0x0aa6, - 0x4421, 0x0b04, - 0x4521, 0x0b62, - 0x4621, 0x0bc0, - 0x4721, 0x0c1e, - 0x4821, 0x0c7c, - 0x4921, 0x0cda, - 0x4a21, 0x0d38, - 0x4b21, 0x0d96, - 0x4c21, 0x0df4, - 0x4d21, 0x0e52, - 0x4e21, 0x0eb0, - 0x4f21, 0x0f0e, - 0x5021, 0x0f6c, - 0x5121, 0x0fca, - 0x5221, 0x1028, - 0x5321, 0x1086, - 0x5421, 0x10e4, - 0x5521, 0x1142, - 0x5621, 0x11a0, - 0x5721, 0x11fe, - 0x5821, 0x1257, - 0x5921, 0x12b5, - 0x5a21, 0x1313, - 0x5b21, 0x1371, - 0x5c21, 0x13cf, - 0x5d21, 0x142d, - 0x5e21, 0x148b, - 0x5f21, 0x14e9, - 0x6021, 0x1547, - 0x6121, 0x15a5, - 0x6221, 0x1603, - 0x6321, 0x1661, - 0x6421, 0x16bf, - 0x6521, 0x171d, - 0x6621, 0x177b, - 0x6721, 0x17d9, - 0x6821, 0x1837, - 0x6921, 0x1895, - 0x6a21, 0x18f3, - 0x6b21, 0x1951, - 0x6c21, 0x19af, - 0x6d21, 0x1a0d, - 0x6e21, 0x1a6b, - 0x6f21, 0x1ac9, - 0x7021, 0x1b27, - 0x7121, 0x1b85, - 0x7221, 0x1be3, - 0x7321, 0x1c41, - 0x7421, 0x1c9f, - 0x7521, 0x1cfd, - 0x7621, 0x1d5b, - 0x7721, 0x1db9, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 gb12GBHEnc16 = { - 0, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - gb12GBHMap2, 90 -}; - -static Gushort gb12GBVMap2[220] = { - 0x0000, 0x0000, - 0x2121, 0x0060, - 0x2231, 0x00be, - 0x2265, 0x00f0, - 0x2271, 0x00fa, - 0x2321, 0x0106, - 0x2421, 0x0164, - 0x2521, 0x01b7, - 0x2621, 0x020d, - 0x2641, 0x0225, - 0x2721, 0x025a, - 0x2751, 0x027b, - 0x2821, 0x029c, - 0x2845, 0x02bc, - 0x2924, 0x02e2, - 0x2a21, 0x032e, - 0x2b21, 0x038c, - 0x3021, 0x03ac, - 0x3121, 0x040a, - 0x3221, 0x0468, - 0x3321, 0x04c6, - 0x3421, 0x0524, - 0x3521, 0x0582, - 0x3621, 0x05e0, - 0x3721, 0x063e, - 0x3821, 0x069c, - 0x3921, 0x06fa, - 0x3a21, 0x0758, - 0x3b21, 0x07b6, - 0x3c21, 0x0814, - 0x3d21, 0x0872, - 0x3e21, 0x08d0, - 0x3f21, 0x092e, - 0x4021, 0x098c, - 0x4121, 0x09ea, - 0x4221, 0x0a48, - 0x4321, 0x0aa6, - 0x4421, 0x0b04, - 0x4521, 0x0b62, - 0x4621, 0x0bc0, - 0x4721, 0x0c1e, - 0x4821, 0x0c7c, - 0x4921, 0x0cda, - 0x4a21, 0x0d38, - 0x4b21, 0x0d96, - 0x4c21, 0x0df4, - 0x4d21, 0x0e52, - 0x4e21, 0x0eb0, - 0x4f21, 0x0f0e, - 0x5021, 0x0f6c, - 0x5121, 0x0fca, - 0x5221, 0x1028, - 0x5321, 0x1086, - 0x5421, 0x10e4, - 0x5521, 0x1142, - 0x5621, 0x11a0, - 0x5721, 0x11fe, - 0x5821, 0x1257, - 0x5921, 0x12b5, - 0x5a21, 0x1313, - 0x5b21, 0x1371, - 0x5c21, 0x13cf, - 0x5d21, 0x142d, - 0x5e21, 0x148b, - 0x5f21, 0x14e9, - 0x6021, 0x1547, - 0x6121, 0x15a5, - 0x6221, 0x1603, - 0x6321, 0x1661, - 0x6421, 0x16bf, - 0x6521, 0x171d, - 0x6621, 0x177b, - 0x6721, 0x17d9, - 0x6821, 0x1837, - 0x6921, 0x1895, - 0x6a21, 0x18f3, - 0x6b21, 0x1951, - 0x6c21, 0x19af, - 0x6d21, 0x1a0d, - 0x6e21, 0x1a6b, - 0x6f21, 0x1ac9, - 0x7021, 0x1b27, - 0x7121, 0x1b85, - 0x7221, 0x1be3, - 0x7321, 0x1c41, - 0x7421, 0x1c9f, - 0x7521, 0x1cfd, - 0x7621, 0x1d5b, - 0x7721, 0x1db9, - 0x2122, 0x023f, - 0x2123, 0x023e, - 0x212a, 0x0256, - 0x212b, 0x1e18, - 0x212d, 0x0257, - 0x2132, 0x0246, - 0x217e, 0x1e1a, - 0x2321, 0x0242, - 0x2328, 0x0244, - 0x232c, 0x023d, - 0x232e, 0x1e1b, - 0x233a, 0x0240, - 0x233d, 0x1e1c, - 0x233f, 0x0243, - 0x235b, 0x1e1d, - 0x235d, 0x1e1e, - 0x235f, 0x0258, - 0x237b, 0x0254, - 0x237d, 0x0255, - 0x237e, 0x1e1f, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 gb12GBVEnc16 = { - 1, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - gb12GBVMap2, 110 -}; - -static Gushort gb12GBKEUCHMap2[8142] = { - 0x0000, 0x0000, - 0x8140, 0x2758, - 0x8179, 0x2059, - 0x817a, 0x2791, - 0x8180, 0x2796, - 0x8186, 0x21f1, - 0x8187, 0x279c, - 0x81ed, 0x1ff2, - 0x81ee, 0x2802, - 0x81f6, 0x205d, - 0x81f7, 0x280a, - 0x8240, 0x2812, - 0x8253, 0x269c, - 0x8254, 0x2825, - 0x8262, 0x21b5, - 0x8263, 0x2833, - 0x8274, 0x22cc, - 0x8275, 0x2844, - 0x827a, 0x2016, - 0x827b, 0x2849, - 0x827d, 0x1e62, - 0x827e, 0x284b, - 0x8280, 0x1f20, - 0x8281, 0x284c, - 0x8283, 0x207f, - 0x8284, 0x284e, - 0x8290, 0x205c, - 0x8291, 0x285a, - 0x82a5, 0x2194, - 0x82a6, 0x286e, - 0x82c8, 0x1e65, - 0x82c9, 0x2281, - 0x82ca, 0x2890, - 0x82e1, 0x22cd, - 0x82e2, 0x28a7, - 0x82e3, 0x210a, - 0x82e4, 0x1e3e, - 0x82e5, 0x28a8, - 0x82ed, 0x267f, - 0x82ee, 0x28b0, - 0x82f2, 0x222e, - 0x82f3, 0x28b4, - 0x82f7, 0x1e96, - 0x82f8, 0x22cb, - 0x82f9, 0x226c, - 0x82fa, 0x28b8, - 0x82fb, 0x2117, - 0x82fc, 0x28b9, - 0x8340, 0x28bc, - 0x8341, 0x20e8, - 0x8342, 0x28bd, - 0x8345, 0x22d4, - 0x8346, 0x28c0, - 0x8348, 0x1fb9, - 0x8349, 0x28c2, - 0x834c, 0x22d8, - 0x834d, 0x28c5, - 0x8353, 0x20df, - 0x8354, 0x28cb, - 0x8357, 0x20c2, - 0x8358, 0x28ce, - 0x835e, 0x2195, - 0x835f, 0x28d4, - 0x8365, 0x1fac, - 0x8366, 0x22d3, - 0x8367, 0x28da, - 0x8372, 0x1f81, - 0x8373, 0x28e5, - 0x8378, 0x2210, - 0x8379, 0x28ea, - 0x837a, 0x22cf, - 0x837b, 0x28eb, - 0x837c, 0x2213, - 0x837d, 0x28ec, - 0x837e, 0x1fe4, - 0x8380, 0x1f90, - 0x8381, 0x28ed, - 0x8386, 0x22d6, - 0x8387, 0x28f2, - 0x8389, 0x22d0, - 0x838a, 0x22ce, - 0x838b, 0x28f4, - 0x838d, 0x2681, - 0x838e, 0x28f6, - 0x8394, 0x1e76, - 0x8395, 0x28fc, - 0x839e, 0x2231, - 0x839f, 0x2905, - 0x83a6, 0x1e93, - 0x83a7, 0x290c, - 0x83ab, 0x22d2, - 0x83ac, 0x2910, - 0x83ae, 0x22d7, - 0x83af, 0x22d5, - 0x83b0, 0x22d1, - 0x83b1, 0x2912, - 0x83ba, 0x1ee5, - 0x83bb, 0x291b, - 0x83c9, 0x2025, - 0x83ca, 0x2929, - 0x83f6, 0x1ecf, - 0x83f7, 0x2955, - 0x8440, 0x295d, - 0x8450, 0x1fd9, - 0x8451, 0x296d, - 0x8471, 0x22c8, - 0x8472, 0x298d, - 0x8474, 0x2263, - 0x8475, 0x298f, - 0x8477, 0x2683, - 0x8478, 0x2991, - 0x8480, 0x2998, - 0x8482, 0x1f17, - 0x8483, 0x299a, - 0x848e, 0x1f2b, - 0x848f, 0x29a5, - 0x8492, 0x22ca, - 0x8493, 0x1e99, - 0x8494, 0x29a8, - 0x849d, 0x1f4f, - 0x849e, 0x29b1, - 0x84a1, 0x1fcf, - 0x84a2, 0x2036, - 0x84a3, 0x1f3a, - 0x84a4, 0x29b4, - 0x84a5, 0x22c9, - 0x84a6, 0x1f99, - 0x84a7, 0x29b5, - 0x84a9, 0x1f75, - 0x84aa, 0x29b7, - 0x84c5, 0x1fbe, - 0x84c6, 0x29d2, - 0x84d3, 0x1ecd, - 0x84d4, 0x29df, - 0x84d5, 0x21a9, - 0x84d6, 0x29e0, - 0x84d7, 0x21e6, - 0x84d8, 0x29e1, - 0x84d9, 0x2127, - 0x84da, 0x2003, - 0x84db, 0x29e2, - 0x84dd, 0x2132, - 0x84de, 0x29e4, - 0x84ea, 0x2323, - 0x84eb, 0x29f0, - 0x84ee, 0x2011, - 0x84ef, 0x29f3, - 0x84f1, 0x20f5, - 0x84f2, 0x29f5, - 0x8540, 0x2a02, - 0x8551, 0x22c5, - 0x8552, 0x1f5e, - 0x8553, 0x2a13, - 0x8554, 0x22c6, - 0x8555, 0x2a14, - 0x855e, 0x20ef, - 0x855f, 0x2a1d, - 0x8566, 0x21d0, - 0x8567, 0x2a24, - 0x8580, 0x2a3c, - 0x8587, 0x22c1, - 0x8588, 0x2a43, - 0x858b, 0x1e64, - 0x858c, 0x2a46, - 0x8592, 0x21f9, - 0x8593, 0x2a4c, - 0x8596, 0x2010, - 0x8597, 0x2a4f, - 0x8598, 0x22c2, - 0x8599, 0x2a50, - 0x85a2, 0x1e5a, - 0x85a3, 0x2a59, - 0x85b2, 0x1ea2, - 0x85b3, 0x2a68, - 0x8640, 0x2ab4, - 0x864a, 0x236d, - 0x864b, 0x2abe, - 0x8654, 0x2247, - 0x8655, 0x2ac7, - 0x8668, 0x236c, - 0x8669, 0x2ada, - 0x8680, 0x2af0, - 0x8696, 0x219c, - 0x8697, 0x2b06, - 0x8699, 0x20c9, - 0x869a, 0x2b08, - 0x86a1, 0x21f0, - 0x86a2, 0x2b0f, - 0x86ca, 0x210b, - 0x86cb, 0x2b37, - 0x86cc, 0x20de, - 0x86cd, 0x2b38, - 0x86ce, 0x1eaa, - 0x86cf, 0x2b39, - 0x86d1, 0x222c, - 0x86d2, 0x2b3b, - 0x86dc, 0x20d8, - 0x86dd, 0x22c0, - 0x86de, 0x2b45, - 0x86e1, 0x206f, - 0x86e2, 0x2b48, - 0x86e8, 0x21a1, - 0x86e9, 0x2b4e, - 0x86ee, 0x2379, - 0x86ef, 0x2b53, - 0x86f4, 0x2372, - 0x86f5, 0x2b58, - 0x8740, 0x216a, - 0x8741, 0x2b62, - 0x8744, 0x237c, - 0x8745, 0x2b65, - 0x8749, 0x20b0, - 0x874a, 0x2b69, - 0x874b, 0x237a, - 0x874c, 0x1e74, - 0x874d, 0x2b6a, - 0x874f, 0x2377, - 0x8750, 0x2b6c, - 0x8757, 0x1f4c, - 0x8758, 0x2b73, - 0x875a, 0x2378, - 0x875b, 0x21cf, - 0x875c, 0x2368, - 0x875d, 0x2b75, - 0x875e, 0x2371, - 0x875f, 0x2b76, - 0x8760, 0x2369, - 0x8761, 0x2b77, - 0x8766, 0x2674, - 0x8767, 0x2b7c, - 0x877a, 0x236f, - 0x877b, 0x2b8f, - 0x877d, 0x2370, - 0x877e, 0x2b91, - 0x8780, 0x2b92, - 0x8781, 0x2376, - 0x8782, 0x2373, - 0x8783, 0x2b93, - 0x8786, 0x237f, - 0x8787, 0x2b96, - 0x8788, 0x2374, - 0x8789, 0x2b97, - 0x878a, 0x20b5, - 0x878b, 0x2b98, - 0x878d, 0x1edb, - 0x878e, 0x2672, - 0x878f, 0x2b9a, - 0x8793, 0x236e, - 0x8794, 0x2b9e, - 0x8798, 0x21b7, - 0x8799, 0x2ba2, - 0x879d, 0x2375, - 0x879e, 0x2ba6, - 0x87a3, 0x2382, - 0x87a4, 0x2bab, - 0x87a7, 0x209e, - 0x87a8, 0x2bae, - 0x87b3, 0x236b, - 0x87b4, 0x2bb9, - 0x87b5, 0x2039, - 0x87b6, 0x2bba, - 0x87bb, 0x269f, - 0x87bc, 0x2bbf, - 0x87bf, 0x237d, - 0x87c0, 0x21f5, - 0x87c1, 0x2bc2, - 0x87c2, 0x2381, - 0x87c3, 0x2bc3, - 0x87ca, 0x237b, - 0x87cb, 0x237e, - 0x87cc, 0x21cc, - 0x87cd, 0x2bca, - 0x87cf, 0x22db, - 0x87d0, 0x2bcc, - 0x87d2, 0x236a, - 0x87d3, 0x2689, - 0x87d4, 0x2bce, - 0x87d5, 0x2697, - 0x87d6, 0x2bcf, - 0x87da, 0x22a1, - 0x87db, 0x2bd3, - 0x87f7, 0x2383, - 0x87f8, 0x1f3d, - 0x87f9, 0x2bef, - 0x87fa, 0x218f, - 0x87fb, 0x2bf0, - 0x8840, 0x2246, - 0x8841, 0x2248, - 0x8842, 0x2bf4, - 0x8844, 0x217e, - 0x8845, 0x2bf6, - 0x8846, 0x2180, - 0x8847, 0x2bf7, - 0x8880, 0x2c2f, - 0x88ba, 0x232a, - 0x88bb, 0x2c69, - 0x88cc, 0x228b, - 0x88cd, 0x2c7a, - 0x88d4, 0x1f85, - 0x88d5, 0x2c81, - 0x88d7, 0x2325, - 0x88d8, 0x2c83, - 0x88df, 0x232c, - 0x88e0, 0x2c8a, - 0x88e5, 0x232e, - 0x88e6, 0x2c8f, - 0x88f2, 0x2205, - 0x88f3, 0x1e38, - 0x88f4, 0x2c9b, - 0x88f6, 0x1e73, - 0x88f7, 0x2c9d, - 0x8940, 0x2ca5, - 0x894b, 0x1fe3, - 0x894c, 0x2339, - 0x894d, 0x2cb0, - 0x894e, 0x232b, - 0x894f, 0x2cb1, - 0x8950, 0x232d, - 0x8951, 0x2cb2, - 0x8954, 0x217f, - 0x8955, 0x2cb5, - 0x895d, 0x21a7, - 0x895e, 0x2cbd, - 0x895f, 0x232f, - 0x8960, 0x2cbe, - 0x896d, 0x1e7d, - 0x896e, 0x2ccb, - 0x8971, 0x20d6, - 0x8972, 0x2cce, - 0x897c, 0x1ec2, - 0x897d, 0x2cd8, - 0x8980, 0x2cda, - 0x898b, 0x22b2, - 0x898c, 0x2ce5, - 0x8999, 0x1edf, - 0x899a, 0x2cf2, - 0x899e, 0x1ef9, - 0x899f, 0x2cf6, - 0x89a6, 0x20d9, - 0x89a7, 0x2cfd, - 0x89a8, 0x1fdd, - 0x89a9, 0x2cfe, - 0x89af, 0x2167, - 0x89b0, 0x2d04, - 0x89ba, 0x21ed, - 0x89bb, 0x2d0e, - 0x89be, 0x2007, - 0x89bf, 0x2326, - 0x89c0, 0x2329, - 0x89c1, 0x2d11, - 0x89c4, 0x1f52, - 0x89c5, 0x203b, - 0x89c6, 0x2328, - 0x89c7, 0x2d14, - 0x89c8, 0x2327, - 0x89c9, 0x2d15, - 0x89ce, 0x1e2b, - 0x89cf, 0x2d1a, - 0x89d1, 0x22ae, - 0x89d2, 0x2d1c, - 0x89d8, 0x1f49, - 0x89d9, 0x2d22, - 0x89db, 0x2138, - 0x89dc, 0x2d24, - 0x89f4, 0x2081, - 0x89f5, 0x2d3c, - 0x8a40, 0x2d46, - 0x8a41, 0x1f7c, - 0x8a42, 0x2d47, - 0x8a59, 0x235b, - 0x8a5a, 0x1ede, - 0x8a5b, 0x2d5e, - 0x8a5c, 0x1fa2, - 0x8a5d, 0x2d5f, - 0x8a5e, 0x1efa, - 0x8a5f, 0x2d60, - 0x8a79, 0x22ad, - 0x8a7a, 0x2d7a, - 0x8a80, 0x2d7f, - 0x8ae4, 0x203f, - 0x8ae5, 0x2de3, - 0x8b40, 0x2dfd, - 0x8b44, 0x1f0e, - 0x8b45, 0x2e01, - 0x8b49, 0x23f9, - 0x8b4a, 0x2e05, - 0x8b7a, 0x23fc, - 0x8b7b, 0x2e35, - 0x8b80, 0x2e39, - 0x8b8c, 0x2069, - 0x8b8d, 0x2e45, - 0x8b9e, 0x23f7, - 0x8b9f, 0x2e56, - 0x8bb3, 0x23f6, - 0x8bb4, 0x2e6a, - 0x8bb9, 0x23fd, - 0x8bba, 0x2e6f, - 0x8bbe, 0x23f8, - 0x8bbf, 0x2e73, - 0x8bc6, 0x23fa, - 0x8bc7, 0x2e7a, - 0x8bc8, 0x23fe, - 0x8bc9, 0x1fa8, - 0x8bca, 0x2e7b, - 0x8bd4, 0x2401, - 0x8bd5, 0x2e85, - 0x8bdc, 0x23ff, - 0x8bdd, 0x2e8c, - 0x8be5, 0x2400, - 0x8be6, 0x2e94, - 0x8beb, 0x2221, - 0x8bec, 0x2e99, - 0x8bf0, 0x2122, - 0x8bf1, 0x2e9d, - 0x8c40, 0x2eab, - 0x8c44, 0x23fb, - 0x8c45, 0x2eaf, - 0x8c4f, 0x215a, - 0x8c50, 0x2eb9, - 0x8c57, 0x21e5, - 0x8c58, 0x2ec0, - 0x8c5c, 0x2057, - 0x8c5d, 0x2ec4, - 0x8c80, 0x2ee6, - 0x8c8b, 0x20e5, - 0x8c8c, 0x2ef1, - 0x8c8d, 0x212f, - 0x8c8e, 0x20a3, - 0x8c8f, 0x2121, - 0x8c90, 0x2ef2, - 0x8c91, 0x21d4, - 0x8c92, 0x1fe5, - 0x8c93, 0x2ef3, - 0x8c99, 0x1e8a, - 0x8c9a, 0x1e37, - 0x8c9b, 0x2ef9, - 0x8ca2, 0x1f9e, - 0x8ca3, 0x22a6, - 0x8ca4, 0x21e8, - 0x8ca5, 0x2f00, - 0x8ca6, 0x1eda, - 0x8ca7, 0x1eb9, - 0x8ca8, 0x2f01, - 0x8cc0, 0x235c, - 0x8cc1, 0x2f19, - 0x8cd2, 0x2050, - 0x8cd3, 0x1e67, - 0x8cd4, 0x2f2a, - 0x8cd5, 0x23f4, - 0x8cd6, 0x2f2b, - 0x8cd9, 0x213e, - 0x8cda, 0x2f2e, - 0x8cf9, 0x1f16, - 0x8cfa, 0x2f4d, - 0x8d40, 0x2f52, - 0x8d73, 0x2389, - 0x8d74, 0x2f85, - 0x8d75, 0x1eb7, - 0x8d76, 0x2f86, - 0x8d7b, 0x21b4, - 0x8d7c, 0x2f8b, - 0x8d80, 0x2f8e, - 0x8d88, 0x238f, - 0x8d89, 0x2f96, - 0x8d8f, 0x1f1a, - 0x8d90, 0x2f9c, - 0x8d9e, 0x238b, - 0x8d9f, 0x2faa, - 0x8db9, 0x238a, - 0x8dba, 0x2fc4, - 0x8de2, 0x2391, - 0x8de3, 0x2fec, - 0x8de4, 0x2271, - 0x8de5, 0x2fed, - 0x8de7, 0x2388, - 0x8de8, 0x2fef, - 0x8df7, 0x238e, - 0x8df8, 0x2ffe, - 0x8dfe, 0x238d, - 0x8e40, 0x3004, - 0x8e46, 0x238c, - 0x8e47, 0x300a, - 0x8e56, 0x2390, - 0x8e57, 0x3019, - 0x8e58, 0x2033, - 0x8e59, 0x301a, - 0x8e5a, 0x223c, - 0x8e5b, 0x301b, - 0x8e68, 0x1fe9, - 0x8e69, 0x3028, - 0x8e6e, 0x2055, - 0x8e6f, 0x302d, - 0x8e70, 0x2392, - 0x8e71, 0x302e, - 0x8e80, 0x2324, - 0x8e81, 0x303c, - 0x8e9b, 0x2143, - 0x8e9c, 0x3056, - 0x8e9f, 0x2129, - 0x8ea0, 0x3059, - 0x8ea4, 0x2277, - 0x8ea5, 0x305d, - 0x8ea7, 0x1ea7, - 0x8ea8, 0x305f, - 0x8eac, 0x2285, - 0x8ead, 0x3063, - 0x8eae, 0x2384, - 0x8eaf, 0x3064, - 0x8ebd, 0x2387, - 0x8ebe, 0x2386, - 0x8ebf, 0x3072, - 0x8ec3, 0x2290, - 0x8ec4, 0x3076, - 0x8ec5, 0x1e44, - 0x8ec6, 0x3077, - 0x8ecd, 0x1e32, - 0x8ece, 0x2385, - 0x8ecf, 0x307e, - 0x8ed6, 0x1f13, - 0x8ed7, 0x1f73, - 0x8ed8, 0x3085, - 0x8eec, 0x1fe0, - 0x8eed, 0x3099, - 0x8f40, 0x30ab, - 0x8f52, 0x2087, - 0x8f53, 0x1e78, - 0x8f54, 0x23ae, - 0x8f55, 0x1ef6, - 0x8f56, 0x1f31, - 0x8f57, 0x30bd, - 0x8f5d, 0x2045, - 0x8f5e, 0x30c3, - 0x8f64, 0x2178, - 0x8f65, 0x30c9, - 0x8f80, 0x30e3, - 0x8f86, 0x23f5, - 0x8f87, 0x30e9, - 0x8f88, 0x2275, - 0x8f89, 0x30ea, - 0x8f95, 0x266e, - 0x8f96, 0x30f6, - 0x8f97, 0x1eb0, - 0x8f98, 0x30f7, - 0x8f9b, 0x2083, - 0x8f9c, 0x30fa, - 0x8f9d, 0x2188, - 0x8f9e, 0x30fb, - 0x8fa1, 0x267c, - 0x8fa2, 0x30fe, - 0x8fbd, 0x1fc5, - 0x8fbe, 0x3119, - 0x8fc4, 0x1ea1, - 0x8fc5, 0x311f, - 0x8fc6, 0x2393, - 0x8fc7, 0x3120, - 0x8fcd, 0x1f0b, - 0x8fce, 0x3126, - 0x8fd8, 0x1e7c, - 0x8fd9, 0x3130, - 0x9040, 0x3156, - 0x9080, 0x3195, - 0x909d, 0x23b4, - 0x909e, 0x207e, - 0x909f, 0x31b2, - 0x90ba, 0x1ee3, - 0x90bb, 0x31cd, - 0x90c0, 0x2095, - 0x90c1, 0x23bb, - 0x90c2, 0x31d2, - 0x90c5, 0x23b9, - 0x90c6, 0x31d5, - 0x90db, 0x1e28, - 0x90dc, 0x23bd, - 0x90dd, 0x31ea, - 0x90ed, 0x23b5, - 0x90ee, 0x31fa, - 0x90f0, 0x23ba, - 0x90f1, 0x31fc, - 0x90f7, 0x23b3, - 0x90f8, 0x3202, - 0x9140, 0x3209, - 0x9142, 0x2162, - 0x9143, 0x320b, - 0x914b, 0x1e5e, - 0x914c, 0x3213, - 0x914d, 0x1e5d, - 0x914e, 0x3214, - 0x9151, 0x23b7, - 0x9152, 0x3217, - 0x9154, 0x1f2f, - 0x9155, 0x24df, - 0x9156, 0x3219, - 0x9159, 0x23b2, - 0x915a, 0x214e, - 0x915b, 0x321c, - 0x915d, 0x2052, - 0x915e, 0x321e, - 0x9161, 0x23bc, - 0x9162, 0x3221, - 0x9163, 0x20eb, - 0x9164, 0x3222, - 0x916e, 0x2232, - 0x916f, 0x322c, - 0x9176, 0x1e3f, - 0x9177, 0x3233, - 0x917a, 0x201b, - 0x917b, 0x20bc, - 0x917c, 0x23be, - 0x917d, 0x3236, - 0x9180, 0x3238, - 0x9184, 0x1eae, - 0x9185, 0x323c, - 0x918d, 0x1efb, - 0x918e, 0x3244, - 0x9191, 0x2089, - 0x9192, 0x3247, - 0x9193, 0x23b1, - 0x9194, 0x3248, - 0x9197, 0x21c4, - 0x9198, 0x324b, - 0x919b, 0x2214, - 0x919c, 0x324e, - 0x91a9, 0x1fde, - 0x91aa, 0x2223, - 0x91ab, 0x23b6, - 0x91ac, 0x325b, - 0x91ba, 0x268c, - 0x91bb, 0x24de, - 0x91bc, 0x3269, - 0x91bf, 0x24e0, - 0x91c0, 0x326c, - 0x91c3, 0x23b8, - 0x91c4, 0x326f, - 0x91cd, 0x1e81, - 0x91ce, 0x3278, - 0x91d0, 0x1ffe, - 0x91d1, 0x1f51, - 0x91d2, 0x21e1, - 0x91d3, 0x327a, - 0x91d4, 0x23b0, - 0x91d5, 0x327b, - 0x91d6, 0x1fce, - 0x91d7, 0x327c, - 0x91d8, 0x211e, - 0x91d9, 0x2021, - 0x91da, 0x327d, - 0x91df, 0x24e1, - 0x91e0, 0x3282, - 0x91e2, 0x24a3, - 0x91e3, 0x3284, - 0x91ea, 0x24a4, - 0x91eb, 0x328b, - 0x91f0, 0x2273, - 0x91f1, 0x3290, - 0x91f2, 0x21b0, - 0x91f3, 0x3291, - 0x9240, 0x329d, - 0x9280, 0x32dc, - 0x92b6, 0x21d1, - 0x92b7, 0x3312, - 0x92ce, 0x211c, - 0x92cf, 0x3329, - 0x92d0, 0x235d, - 0x92d1, 0x332a, - 0x92d4, 0x2682, - 0x92d5, 0x332d, - 0x92df, 0x210d, - 0x92e0, 0x205a, - 0x92e1, 0x3337, - 0x92fe, 0x1f8d, - 0x9340, 0x3354, - 0x9350, 0x21ff, - 0x9351, 0x3364, - 0x935d, 0x1f58, - 0x935e, 0x3370, - 0x9370, 0x215b, - 0x9371, 0x3382, - 0x9376, 0x1eb6, - 0x9377, 0x3387, - 0x9380, 0x338f, - 0x938c, 0x20db, - 0x938d, 0x339b, - 0x939d, 0x2360, - 0x939e, 0x33ab, - 0x93a5, 0x2361, - 0x93a6, 0x33b2, - 0x93a7, 0x2040, - 0x93a8, 0x33b3, - 0x93b4, 0x228e, - 0x93b5, 0x33bf, - 0x93b8, 0x1fdf, - 0x93b9, 0x33c2, - 0x93bb, 0x235e, - 0x93bc, 0x33c4, - 0x93bd, 0x1e6a, - 0x93be, 0x33c5, - 0x93c6, 0x2002, - 0x93c7, 0x33cd, - 0x93cf, 0x2093, - 0x93d0, 0x33d5, - 0x93d7, 0x235f, - 0x93d8, 0x33dc, - 0x93db, 0x1eac, - 0x93dc, 0x1e54, - 0x93dd, 0x33df, - 0x93e1, 0x1f08, - 0x93e2, 0x33e3, - 0x93e4, 0x20c0, - 0x93e5, 0x2362, - 0x93e6, 0x33e5, - 0x93e9, 0x2160, - 0x93ea, 0x33e8, - 0x93eb, 0x219d, - 0x93ec, 0x1f8e, - 0x93ed, 0x222d, - 0x93ee, 0x33e9, - 0x93ef, 0x2047, - 0x93f0, 0x33ea, - 0x93f1, 0x2262, - 0x93f2, 0x33eb, - 0x93f4, 0x1f67, - 0x93f5, 0x1eb2, - 0x93f6, 0x33ed, - 0x93fa, 0x1ea9, - 0x93fb, 0x33f1, - 0x93fe, 0x1fcc, - 0x9440, 0x33f4, - 0x9444, 0x1f72, - 0x9445, 0x33f8, - 0x944d, 0x2098, - 0x944e, 0x3400, - 0x9450, 0x1e52, - 0x9451, 0x20a4, - 0x9452, 0x1f1c, - 0x9453, 0x228f, - 0x9454, 0x3402, - 0x9455, 0x1fed, - 0x9456, 0x3403, - 0x9458, 0x2365, - 0x9459, 0x3405, - 0x945b, 0x1e2d, - 0x945c, 0x2152, - 0x945d, 0x2366, - 0x945e, 0x3407, - 0x945f, 0x20fa, - 0x9460, 0x3408, - 0x9464, 0x2363, - 0x9465, 0x340c, - 0x9466, 0x209a, - 0x9467, 0x340d, - 0x946e, 0x203c, - 0x946f, 0x3414, - 0x9472, 0x1ff6, - 0x9473, 0x3417, - 0x9474, 0x2364, - 0x9475, 0x3418, - 0x9476, 0x1e69, - 0x9477, 0x3419, - 0x9478, 0x2367, - 0x9479, 0x341a, - 0x947a, 0x211d, - 0x947b, 0x341b, - 0x9480, 0x2259, - 0x9481, 0x2056, - 0x9482, 0x2163, - 0x9483, 0x341f, - 0x9487, 0x1fa9, - 0x9488, 0x1ffc, - 0x9489, 0x3423, - 0x94a1, 0x1e2e, - 0x94a2, 0x343b, - 0x94b3, 0x1ebc, - 0x94b4, 0x344c, - 0x94b5, 0x2142, - 0x94b6, 0x344d, - 0x94bf, 0x201e, - 0x94c0, 0x1e43, - 0x94c1, 0x3456, - 0x94cc, 0x24d4, - 0x94cd, 0x3461, - 0x94d8, 0x226f, - 0x94d9, 0x346c, - 0x94e0, 0x1ed7, - 0x94e1, 0x3473, - 0x9540, 0x3491, - 0x9572, 0x212d, - 0x9573, 0x34c3, - 0x9580, 0x34cf, - 0x9583, 0x229b, - 0x9584, 0x34d2, - 0x959e, 0x2256, - 0x959f, 0x24a8, - 0x95a0, 0x34ec, - 0x95b3, 0x1e79, - 0x95b4, 0x34ff, - 0x95ba, 0x225a, - 0x95bb, 0x3505, - 0x95cf, 0x24a7, - 0x95d0, 0x3519, - 0x95d1, 0x2686, - 0x95d2, 0x24a6, - 0x95d3, 0x351a, - 0x95d4, 0x21ce, - 0x95d5, 0x351b, - 0x95e1, 0x24a9, - 0x95e2, 0x3527, - 0x95e7, 0x1fe7, - 0x95e8, 0x352c, - 0x95f1, 0x2112, - 0x95f2, 0x3535, - 0x95f8, 0x213c, - 0x95f9, 0x353b, - 0x95fe, 0x1f5c, - 0x9640, 0x3540, - 0x9656, 0x24c4, - 0x9657, 0x3556, - 0x967c, 0x1ecc, - 0x967d, 0x357b, - 0x9680, 0x357d, - 0x9740, 0x35fc, - 0x9767, 0x246a, - 0x9768, 0x3623, - 0x976c, 0x2175, - 0x976d, 0x3627, - 0x976e, 0x246d, - 0x976f, 0x3628, - 0x9780, 0x3638, - 0x9796, 0x246b, - 0x9797, 0x225f, - 0x9798, 0x364e, - 0x979d, 0x1ece, - 0x979e, 0x3653, - 0x97a3, 0x2272, - 0x97a4, 0x3658, - 0x97bf, 0x2473, - 0x97c0, 0x3673, - 0x97ee, 0x21fe, - 0x97ef, 0x36a1, - 0x97f7, 0x1efe, - 0x97f8, 0x36a9, - 0x9840, 0x36b0, - 0x9845, 0x2475, - 0x9846, 0x36b5, - 0x9849, 0x220a, - 0x984a, 0x36b8, - 0x984f, 0x1f6f, - 0x9850, 0x36bd, - 0x9871, 0x2468, - 0x9872, 0x36de, - 0x9873, 0x2100, - 0x9874, 0x36df, - 0x9880, 0x36ea, - 0x9881, 0x2476, - 0x9882, 0x36eb, - 0x988b, 0x1f27, - 0x988c, 0x20d7, - 0x988d, 0x36f4, - 0x98a0, 0x247c, - 0x98a1, 0x3707, - 0x98aa, 0x1fa1, - 0x98ab, 0x3710, - 0x98b6, 0x22aa, - 0x98b7, 0x2005, - 0x98b8, 0x371b, - 0x98ba, 0x246c, - 0x98bb, 0x371d, - 0x98c7, 0x203e, - 0x98c8, 0x3729, - 0x98cb, 0x1e4c, - 0x98cc, 0x372c, - 0x98d0, 0x213a, - 0x98d1, 0x3730, - 0x98d3, 0x2204, - 0x98d4, 0x3732, - 0x98e3, 0x20c3, - 0x98e4, 0x2140, - 0x98e5, 0x2477, - 0x98e6, 0x3741, - 0x98ef, 0x2474, - 0x98f0, 0x374a, - 0x98f2, 0x20dd, - 0x98f3, 0x374c, - 0x9940, 0x3758, - 0x9943, 0x1f68, - 0x9944, 0x375b, - 0x9945, 0x2185, - 0x9946, 0x375c, - 0x9966, 0x2472, - 0x9967, 0x377c, - 0x996e, 0x1eb5, - 0x996f, 0x3783, - 0x9975, 0x2478, - 0x9976, 0x3789, - 0x997a, 0x1f8b, - 0x997b, 0x2484, - 0x997c, 0x378d, - 0x9980, 0x3790, - 0x9985, 0x2699, - 0x9986, 0x3795, - 0x9989, 0x2482, - 0x998a, 0x3798, - 0x998e, 0x20a1, - 0x998f, 0x379c, - 0x9991, 0x1f92, - 0x9992, 0x379e, - 0x9999, 0x1f38, - 0x999a, 0x37a5, - 0x99a9, 0x2485, - 0x99aa, 0x37b4, - 0x99b0, 0x2480, - 0x99b1, 0x246e, - 0x99b2, 0x37ba, - 0x99b3, 0x247b, - 0x99b4, 0x2486, - 0x99b5, 0x2471, - 0x99b6, 0x37bb, - 0x99bd, 0x2483, - 0x99be, 0x2470, - 0x99bf, 0x37c2, - 0x99c0, 0x2469, - 0x99c1, 0x37c3, - 0x99c2, 0x247f, - 0x99c3, 0x37c4, - 0x99c9, 0x246f, - 0x99ca, 0x37ca, - 0x99ce, 0x2481, - 0x99cf, 0x37ce, - 0x99d1, 0x2220, - 0x99d2, 0x37d0, - 0x99da, 0x1ff5, - 0x99db, 0x37d8, - 0x99e0, 0x20f4, - 0x99e1, 0x37dd, - 0x99e5, 0x247d, - 0x99e6, 0x37e1, - 0x99e8, 0x2479, - 0x99e9, 0x37e3, - 0x99ec, 0x247e, - 0x99ed, 0x37e6, - 0x99f4, 0x247a, - 0x99f5, 0x37ed, - 0x9a40, 0x37f7, - 0x9a4a, 0x20e3, - 0x9a4b, 0x3801, - 0x9a57, 0x20ad, - 0x9a58, 0x380d, - 0x9a65, 0x24cb, - 0x9a66, 0x381a, - 0x9a67, 0x1f53, - 0x9a68, 0x381b, - 0x9a71, 0x2159, - 0x9a72, 0x3824, - 0x9a76, 0x2013, - 0x9a77, 0x1f33, - 0x9a78, 0x3828, - 0x9a80, 0x382f, - 0x9a88, 0x1e5c, - 0x9a89, 0x3837, - 0x9a8c, 0x2488, - 0x9a8d, 0x383a, - 0x9a91, 0x2487, - 0x9a92, 0x383e, - 0x9a97, 0x248a, - 0x9a98, 0x3843, - 0x9a9a, 0x2489, - 0x9a9b, 0x248b, - 0x9a9c, 0x3845, - 0x9a9e, 0x1f83, - 0x9a9f, 0x3847, - 0x9aa2, 0x210f, - 0x9aa3, 0x1fdb, - 0x9aa4, 0x384a, - 0x9aaa, 0x20af, - 0x9aab, 0x3850, - 0x9ad0, 0x24c0, - 0x9ad1, 0x3875, - 0x9ad6, 0x226d, - 0x9ad7, 0x387a, - 0x9ada, 0x24c1, - 0x9adb, 0x387d, - 0x9ae2, 0x20ca, - 0x9ae3, 0x3884, - 0x9ae4, 0x20e7, - 0x9ae5, 0x24c2, - 0x9ae6, 0x3885, - 0x9b40, 0x389e, - 0x9b80, 0x38dd, - 0x9bd1, 0x23dc, - 0x9bd2, 0x392e, - 0x9bdc, 0x23db, - 0x9bdd, 0x3938, - 0x9c40, 0x395a, - 0x9c53, 0x205e, - 0x9c54, 0x396d, - 0x9c59, 0x2244, - 0x9c5a, 0x23e2, - 0x9c5b, 0x3972, - 0x9c5c, 0x20d4, - 0x9c5d, 0x3973, - 0x9c75, 0x219f, - 0x9c76, 0x398b, - 0x9c79, 0x1e66, - 0x9c7a, 0x398e, - 0x9c80, 0x3993, - 0x9c86, 0x1f63, - 0x9c87, 0x3999, - 0x9c9d, 0x23dd, - 0x9c9e, 0x39af, - 0x9cab, 0x216b, - 0x9cac, 0x39bc, - 0x9cca, 0x22b5, - 0x9ccb, 0x39da, - 0x9ccf, 0x1f26, - 0x9cd0, 0x39de, - 0x9ce6, 0x1e63, - 0x9ce7, 0x2088, - 0x9ce8, 0x39f4, - 0x9cec, 0x1ebd, - 0x9ced, 0x39f8, - 0x9cee, 0x2341, - 0x9cef, 0x39f9, - 0x9cfb, 0x1f4b, - 0x9cfc, 0x3a05, - 0x9cfe, 0x2292, - 0x9d40, 0x3a07, - 0x9d42, 0x2124, - 0x9d43, 0x3a09, - 0x9d46, 0x2048, - 0x9d47, 0x23e0, - 0x9d48, 0x3a0c, - 0x9d4d, 0x2077, - 0x9d4e, 0x3a11, - 0x9d4f, 0x223a, - 0x9d50, 0x3a12, - 0x9d61, 0x20b1, - 0x9d62, 0x3a23, - 0x9d68, 0x1f41, - 0x9d69, 0x201c, - 0x9d6a, 0x3a29, - 0x9d6e, 0x22b8, - 0x9d6f, 0x3a2d, - 0x9d71, 0x2276, - 0x9d72, 0x3a2f, - 0x9d75, 0x1f9b, - 0x9d76, 0x3a32, - 0x9d7b, 0x1f9f, - 0x9d7c, 0x3a37, - 0x9d7d, 0x25ca, - 0x9d7e, 0x3a38, - 0x9d80, 0x3a39, - 0x9d8a, 0x20be, - 0x9d8b, 0x3a43, - 0x9d8d, 0x1fb4, - 0x9d8e, 0x3a45, - 0x9d91, 0x23d7, - 0x9d92, 0x3a48, - 0x9d99, 0x2105, - 0x9d9a, 0x3a4f, - 0x9da1, 0x23e1, - 0x9da2, 0x1fec, - 0x9da3, 0x3a56, - 0x9da7, 0x23ea, - 0x9da8, 0x3a5a, - 0x9dac, 0x23e3, - 0x9dad, 0x210e, - 0x9dae, 0x3a5e, - 0x9db2, 0x1fa6, - 0x9db3, 0x2004, - 0x9db4, 0x3a62, - 0x9dbe, 0x1f9d, - 0x9dbf, 0x3a6c, - 0x9dc6, 0x23e5, - 0x9dc7, 0x3a73, - 0x9dc9, 0x2264, - 0x9dca, 0x3a75, - 0x9dcd, 0x24e2, - 0x9dce, 0x3a78, - 0x9dd2, 0x23de, - 0x9dd3, 0x3a7c, - 0x9dd5, 0x1ec4, - 0x9dd6, 0x3a7e, - 0x9de1, 0x22b6, - 0x9de2, 0x20a9, - 0x9de3, 0x3a89, - 0x9df1, 0x212b, - 0x9df2, 0x3a97, - 0x9df4, 0x20a5, - 0x9df5, 0x3a99, - 0x9df7, 0x268b, - 0x9df8, 0x3a9b, - 0x9dfa, 0x1f76, - 0x9dfb, 0x3a9d, - 0x9dfd, 0x216d, - 0x9dfe, 0x3a9f, - 0x9e40, 0x3aa0, - 0x9e45, 0x2001, - 0x9e46, 0x3aa5, - 0x9e48, 0x2191, - 0x9e49, 0x1e50, - 0x9e4a, 0x3aa7, - 0x9e52, 0x1f9c, - 0x9e53, 0x3aaf, - 0x9e54, 0x23da, - 0x9e55, 0x3ab0, - 0x9e56, 0x2053, - 0x9e57, 0x3ab1, - 0x9e5d, 0x23e9, - 0x9e5e, 0x23e4, - 0x9e5f, 0x3ab7, - 0x9e61, 0x21d5, - 0x9e62, 0x3ab9, - 0x9e63, 0x23e6, - 0x9e64, 0x3aba, - 0x9e67, 0x23df, - 0x9e68, 0x3abd, - 0x9e6c, 0x1e4f, - 0x9e6d, 0x3ac1, - 0x9e6f, 0x23d9, - 0x9e70, 0x3ac3, - 0x9e72, 0x2014, - 0x9e73, 0x3ac5, - 0x9e74, 0x23ec, - 0x9e75, 0x23eb, - 0x9e76, 0x3ac6, - 0x9e7b, 0x23d8, - 0x9e7c, 0x23ee, - 0x9e7d, 0x3acb, - 0x9e80, 0x3acd, - 0x9e85, 0x268e, - 0x9e86, 0x3ad2, - 0x9e87, 0x23ed, - 0x9e88, 0x3ad3, - 0x9e91, 0x1ffa, - 0x9e92, 0x3adc, - 0x9e96, 0x23d6, - 0x9e97, 0x23e8, - 0x9e98, 0x3ae0, - 0x9ea2, 0x2106, - 0x9ea3, 0x3aea, - 0x9ea6, 0x200b, - 0x9ea7, 0x3aed, - 0x9ea9, 0x2166, - 0x9eaa, 0x3aef, - 0x9eae, 0x23ef, - 0x9eaf, 0x3af3, - 0x9eb3, 0x2189, - 0x9eb4, 0x2058, - 0x9eb5, 0x3af7, - 0x9eb7, 0x23e7, - 0x9eb8, 0x3af9, - 0x9ef5, 0x21a3, - 0x9ef6, 0x3b36, - 0x9f40, 0x3b3f, - 0x9f4e, 0x217a, - 0x9f4f, 0x3b4d, - 0x9f6f, 0x21a5, - 0x9f70, 0x3b6d, - 0x9f80, 0x3b7c, - 0x9f92, 0x2022, - 0x9f93, 0x3b8e, - 0x9f98, 0x24d6, - 0x9f99, 0x3b93, - 0x9fa6, 0x233a, - 0x9fa7, 0x3ba0, - 0x9fa9, 0x1eee, - 0x9faa, 0x3ba2, - 0x9fac, 0x24d5, - 0x9fad, 0x3ba4, - 0x9fc9, 0x2228, - 0x9fca, 0x3bc0, - 0x9fcd, 0x24d7, - 0x9fce, 0x3bc3, - 0x9fe1, 0x20fc, - 0x9fe2, 0x3bd6, - 0x9feb, 0x1e87, - 0x9fec, 0x3bdf, - 0x9fee, 0x24d8, - 0x9fef, 0x3be1, - 0x9ff4, 0x1eba, - 0x9ff5, 0x3be6, - 0x9ffd, 0x2119, - 0x9ffe, 0x3bee, - 0xa040, 0x3bef, - 0xa043, 0x216c, - 0xa044, 0x3bf2, - 0xa046, 0x24d9, - 0xa047, 0x3bf4, - 0xa049, 0x2227, - 0xa04a, 0x3bf6, - 0xa04e, 0x1e5f, - 0xa04f, 0x3bfa, - 0xa054, 0x229f, - 0xa055, 0x3bff, - 0xa05a, 0x1f5d, - 0xa05b, 0x3c04, - 0xa061, 0x1fbc, - 0xa062, 0x3c0a, - 0xa063, 0x24da, - 0xa064, 0x3c0b, - 0xa071, 0x2149, - 0xa072, 0x3c18, - 0xa074, 0x2046, - 0xa075, 0x3c1a, - 0xa080, 0x2000, - 0xa081, 0x3c24, - 0xa091, 0x2190, - 0xa092, 0x3c34, - 0xa094, 0x2208, - 0xa095, 0x3c36, - 0xa096, 0x1ee6, - 0xa097, 0x3c37, - 0xa0a9, 0x24c3, - 0xa0aa, 0x3c49, - 0xa0bf, 0x20cc, - 0xa0c0, 0x3c5e, - 0xa0ce, 0x2340, - 0xa0cf, 0x3c6c, - 0xa0d9, 0x1ed1, - 0xa0da, 0x3c76, - 0xa0de, 0x21ac, - 0xa0df, 0x3c7a, - 0xa0ee, 0x22af, - 0xa0ef, 0x3c89, - 0xa1a1, 0x0060, - 0xa2a1, 0x26a9, - 0xa2b1, 0x00be, - 0xa2e5, 0x00f0, - 0xa2f1, 0x00fa, - 0xa3a1, 0x0106, - 0xa4a1, 0x0164, - 0xa5a1, 0x01b7, - 0xa6a1, 0x020d, - 0xa6c1, 0x0225, - 0xa7a1, 0x025a, - 0xa7d1, 0x027b, - 0xa840, 0x26b3, - 0xa880, 0x26f2, - 0xa8a1, 0x029c, - 0xa8c5, 0x02bc, - 0xa940, 0x2708, - 0xa959, 0x2720, - 0xa95c, 0x2722, - 0xa960, 0x2723, - 0xa980, 0x2742, - 0xa996, 0x1e17, - 0xa9a4, 0x02e2, - 0xaa40, 0x3c99, - 0xaa4d, 0x21b6, - 0xaa4e, 0x1e3d, - 0xaa4f, 0x3ca6, - 0xaa71, 0x2235, - 0xaa72, 0x3cc8, - 0xaa73, 0x2397, - 0xaa74, 0x3cc9, - 0xaa77, 0x2395, - 0xaa78, 0x3ccc, - 0xaa7a, 0x223f, - 0xaa7b, 0x212a, - 0xaa7c, 0x3cce, - 0xaa80, 0x3cd1, - 0xaa9a, 0x1ed2, - 0xaa9b, 0x3ceb, - 0xaa9c, 0x2396, - 0xaa9d, 0x2398, - 0xaa9e, 0x3cec, - 0xaa9f, 0x20a2, - 0xaaa0, 0x3ced, - 0xaaa1, 0x032e, - 0xab40, 0x1f64, - 0xab41, 0x3cee, - 0xab43, 0x202b, - 0xab44, 0x3cf0, - 0xab45, 0x2394, - 0xab46, 0x2139, - 0xab47, 0x3cf1, - 0xab48, 0x215f, - 0xab49, 0x21c1, - 0xab4a, 0x239a, - 0xab4b, 0x3cf2, - 0xab4d, 0x2399, - 0xab4e, 0x3cf4, - 0xab80, 0x3d25, - 0xaba1, 0x038c, - 0xac40, 0x3d46, - 0xac46, 0x21c0, - 0xac47, 0x3d4c, - 0xac71, 0x2460, - 0xac72, 0x3d76, - 0xac7c, 0x245c, - 0xac7d, 0x3d80, - 0xac80, 0x3d82, - 0xac8d, 0x215d, - 0xac8e, 0x3d8f, - 0xac93, 0x2225, - 0xac94, 0x206a, - 0xac95, 0x3d94, - 0xad40, 0x3da0, - 0xad49, 0x2461, - 0xad4a, 0x3da9, - 0xad5e, 0x245b, - 0xad5f, 0x3dbd, - 0xad61, 0x2462, - 0xad62, 0x3dbf, - 0xad68, 0x1f54, - 0xad69, 0x3dc5, - 0xad74, 0x245f, - 0xad75, 0x3dd0, - 0xad80, 0x3dda, - 0xad82, 0x20ec, - 0xad83, 0x3ddc, - 0xad87, 0x245d, - 0xad88, 0x3de0, - 0xad8b, 0x2463, - 0xad8c, 0x3de3, - 0xad91, 0x2464, - 0xad92, 0x3de8, - 0xae40, 0x3df7, - 0xae54, 0x24a5, - 0xae55, 0x3e0b, - 0xae62, 0x1e70, - 0xae63, 0x3e18, - 0xae80, 0x208f, - 0xae81, 0x3e34, - 0xae85, 0x1e42, - 0xae86, 0x3e38, - 0xae8b, 0x1f4e, - 0xae8c, 0x3e3d, - 0xae94, 0x1eb1, - 0xae95, 0x3e45, - 0xaea0, 0x1e8b, - 0xaf40, 0x3e50, - 0xaf64, 0x1fc6, - 0xaf65, 0x3e74, - 0xaf7b, 0x25ae, - 0xaf7c, 0x3e8a, - 0xaf80, 0x3e8d, - 0xaf82, 0x1f01, - 0xaf83, 0x2200, - 0xaf84, 0x3e8f, - 0xaf8e, 0x25b2, - 0xaf8f, 0x1e97, - 0xaf90, 0x3e99, - 0xaf91, 0x20ab, - 0xaf92, 0x3e9a, - 0xaf9c, 0x25b3, - 0xaf9d, 0x3ea4, - 0xaf9f, 0x2028, - 0xafa0, 0x3ea6, - 0xb040, 0x3ea7, - 0xb041, 0x25af, - 0xb043, 0x3ea8, - 0xb044, 0x25b1, - 0xb045, 0x3ea9, - 0xb04f, 0x25ac, - 0xb050, 0x3eb3, - 0xb054, 0x1e4e, - 0xb055, 0x3eb7, - 0xb057, 0x2202, - 0xb058, 0x25ab, - 0xb059, 0x2286, - 0xb05a, 0x3eb9, - 0xb05b, 0x25ad, - 0xb05c, 0x3eba, - 0xb05d, 0x25b6, - 0xb05e, 0x3ebb, - 0xb05f, 0x21e3, - 0xb060, 0x25b4, - 0xb062, 0x222f, - 0xb063, 0x2165, - 0xb064, 0x25b7, - 0xb065, 0x3ebc, - 0xb06c, 0x1ee9, - 0xb06d, 0x3ec3, - 0xb07d, 0x1e25, - 0xb07e, 0x3ed3, - 0xb080, 0x3ed4, - 0xb097, 0x25c0, - 0xb098, 0x3eeb, - 0xb099, 0x229a, - 0xb09a, 0x3eec, - 0xb0a1, 0x03ac, - 0xb140, 0x3ef3, - 0xb14b, 0x226e, - 0xb14c, 0x3efe, - 0xb14d, 0x1fbd, - 0xb14e, 0x3eff, - 0xb14f, 0x1f84, - 0xb150, 0x20b2, - 0xb151, 0x3f00, - 0xb152, 0x2043, - 0xb153, 0x3f01, - 0xb180, 0x3f2d, - 0xb197, 0x2684, - 0xb198, 0x3f44, - 0xb1a1, 0x040a, - 0xb240, 0x3f4d, - 0xb241, 0x24ef, - 0xb242, 0x3f4e, - 0xb267, 0x24ee, - 0xb268, 0x3f73, - 0xb26d, 0x2074, - 0xb26e, 0x3f78, - 0xb274, 0x2687, - 0xb275, 0x3f7e, - 0xb280, 0x24f0, - 0xb281, 0x3f88, - 0xb289, 0x268d, - 0xb28a, 0x3f90, - 0xb29a, 0x22a0, - 0xb29b, 0x3fa0, - 0xb2a1, 0x0468, - 0xb340, 0x3fa6, - 0xb343, 0x1fab, - 0xb344, 0x3fa9, - 0xb370, 0x26a8, - 0xb371, 0x3fd5, - 0xb380, 0x3fe3, - 0xb388, 0x24e9, - 0xb389, 0x3feb, - 0xb38c, 0x24e5, - 0xb38d, 0x3fee, - 0xb38e, 0x21fa, - 0xb38f, 0x3fef, - 0xb3a1, 0x04c6, - 0xb440, 0x4001, - 0xb454, 0x2148, - 0xb455, 0x4015, - 0xb458, 0x24e4, - 0xb459, 0x4018, - 0xb45e, 0x24e6, - 0xb45f, 0x20f7, - 0xb460, 0x401d, - 0xb461, 0x206b, - 0xb462, 0x401e, - 0xb475, 0x22a7, - 0xb476, 0x4031, - 0xb47e, 0x24ec, - 0xb480, 0x4039, - 0xb483, 0x24eb, - 0xb484, 0x403c, - 0xb489, 0x24e3, - 0xb48a, 0x4041, - 0xb493, 0x24ea, - 0xb494, 0x404a, - 0xb4a1, 0x0524, - 0xb540, 0x4057, - 0xb541, 0x1e92, - 0xb542, 0x4058, - 0xb54b, 0x1e27, - 0xb54c, 0x4061, - 0xb556, 0x1fe6, - 0xb557, 0x406b, - 0xb55a, 0x24e7, - 0xb55b, 0x2012, - 0xb55c, 0x1eec, - 0xb55d, 0x406e, - 0xb561, 0x24e8, - 0xb562, 0x4072, - 0xb580, 0x408f, - 0xb59c, 0x1f66, - 0xb59d, 0x24dc, - 0xb59e, 0x40ab, - 0xb5a1, 0x0582, - 0xb640, 0x40ae, - 0xb652, 0x26a2, - 0xb653, 0x40c0, - 0xb655, 0x24dd, - 0xb656, 0x40c2, - 0xb659, 0x200e, - 0xb65a, 0x40c5, - 0xb65b, 0x24db, - 0xb65c, 0x1eb8, - 0xb65d, 0x40c6, - 0xb680, 0x40e8, - 0xb6a1, 0x05e0, - 0xb740, 0x4109, - 0xb74e, 0x2295, - 0xb74f, 0x4117, - 0xb751, 0x1e80, - 0xb752, 0x4119, - 0xb759, 0x2677, - 0xb75a, 0x4120, - 0xb764, 0x2624, - 0xb765, 0x1f69, - 0xb766, 0x222b, - 0xb767, 0x412a, - 0xb777, 0x257f, - 0xb778, 0x1f5b, - 0xb779, 0x413a, - 0xb780, 0x219b, - 0xb781, 0x4140, - 0xb782, 0x267d, - 0xb783, 0x4141, - 0xb7a1, 0x063e, - 0xb840, 0x415f, - 0xb843, 0x21a0, - 0xb844, 0x2186, - 0xb845, 0x4162, - 0xb846, 0x20ed, - 0xb847, 0x4163, - 0xb84d, 0x25b9, - 0xb84e, 0x4169, - 0xb851, 0x1fea, - 0xb852, 0x416c, - 0xb85a, 0x1ea4, - 0xb85b, 0x20e1, - 0xb85c, 0x4174, - 0xb85d, 0x25b8, - 0xb85e, 0x2260, - 0xb85f, 0x4175, - 0xb860, 0x20e2, - 0xb861, 0x4176, - 0xb877, 0x2141, - 0xb878, 0x418c, - 0xb880, 0x4193, - 0xb882, 0x1fc7, - 0xb883, 0x4195, - 0xb8a1, 0x069c, - 0xb940, 0x41b3, - 0xb950, 0x1e41, - 0xb951, 0x41c3, - 0xb961, 0x25e4, - 0xb962, 0x41d3, - 0xb97b, 0x1f86, - 0xb97c, 0x41ec, - 0xb980, 0x41ef, - 0xb99d, 0x1fb3, - 0xb99e, 0x420c, - 0xb9a0, 0x1eef, - 0xb9a1, 0x06fa, - 0xba40, 0x420e, - 0xba42, 0x22a4, - 0xba43, 0x4210, - 0xba44, 0x25e8, - 0xba45, 0x4211, - 0xba56, 0x25e3, - 0xba57, 0x4222, - 0xba59, 0x2111, - 0xba5a, 0x4224, - 0xba60, 0x25e6, - 0xba61, 0x422a, - 0xba6a, 0x25e7, - 0xba6b, 0x4233, - 0xba74, 0x2041, - 0xba75, 0x423c, - 0xba80, 0x4246, - 0xba84, 0x25ea, - 0xba85, 0x424a, - 0xba86, 0x1f8f, - 0xba87, 0x424b, - 0xba88, 0x25ec, - 0xba89, 0x424c, - 0xba8d, 0x25eb, - 0xba8e, 0x4250, - 0xba9e, 0x20d0, - 0xba9f, 0x201d, - 0xbaa0, 0x4260, - 0xbaa1, 0x0758, - 0xbb40, 0x1ff7, - 0xbb41, 0x4261, - 0xbb49, 0x1e8d, - 0xbb4a, 0x4269, - 0xbb58, 0x25e9, - 0xbb59, 0x4277, - 0xbb5b, 0x25ee, - 0xbb5c, 0x203a, - 0xbb5d, 0x4279, - 0xbb60, 0x2693, - 0xbb61, 0x427c, - 0xbb65, 0x25e5, - 0xbb66, 0x25ed, - 0xbb67, 0x4280, - 0xbb68, 0x2009, - 0xbb69, 0x4281, - 0xbb6a, 0x2065, - 0xbb6b, 0x4282, - 0xbb6e, 0x26a3, - 0xbb6f, 0x4285, - 0xbb80, 0x4295, - 0xbba1, 0x07b6, - 0xbc40, 0x42b6, - 0xbc52, 0x25f5, - 0xbc53, 0x1efc, - 0xbc54, 0x42c8, - 0xbc5a, 0x2024, - 0xbc5b, 0x42ce, - 0xbc61, 0x269b, - 0xbc62, 0x42d4, - 0xbc63, 0x25f3, - 0xbc64, 0x42d5, - 0xbc65, 0x22d9, - 0xbc66, 0x42d6, - 0xbc67, 0x25f4, - 0xbc68, 0x42d7, - 0xbc69, 0x241b, - 0xbc6a, 0x42d8, - 0xbc6d, 0x1fc8, - 0xbc6e, 0x42db, - 0xbc6f, 0x1f7b, - 0xbc70, 0x42dc, - 0xbc71, 0x241d, - 0xbc72, 0x42dd, - 0xbc73, 0x224c, - 0xbc74, 0x1f48, - 0xbc75, 0x241c, - 0xbc76, 0x241e, - 0xbc78, 0x20ff, - 0xbc79, 0x219a, - 0xbc7a, 0x42de, - 0xbc7b, 0x2091, - 0xbc7c, 0x42df, - 0xbc7e, 0x20a7, - 0xbc80, 0x42e1, - 0xbc82, 0x2423, - 0xbc83, 0x1e9b, - 0xbc84, 0x2422, - 0xbc85, 0x42e3, - 0xbc86, 0x2110, - 0xbc87, 0x42e4, - 0xbc88, 0x228d, - 0xbc89, 0x1f71, - 0xbc8a, 0x1ef8, - 0xbc8b, 0x2421, - 0xbc8c, 0x42e5, - 0xbc8f, 0x1ef3, - 0xbc90, 0x42e8, - 0xbc9a, 0x21b1, - 0xbc9b, 0x2426, - 0xbc9c, 0x2425, - 0xbc9d, 0x2120, - 0xbc9e, 0x42f2, - 0xbca1, 0x0814, - 0xbd40, 0x42f5, - 0xbd42, 0x211a, - 0xbd43, 0x2424, - 0xbd44, 0x42f7, - 0xbd45, 0x2428, - 0xbd46, 0x42f8, - 0xbd48, 0x242a, - 0xbd49, 0x2429, - 0xbd4a, 0x42fa, - 0xbd4b, 0x2294, - 0xbd4c, 0x42fb, - 0xbd4d, 0x22be, - 0xbd4e, 0x42fc, - 0xbd4f, 0x1e31, - 0xbd50, 0x42fd, - 0xbd57, 0x242c, - 0xbd58, 0x4304, - 0xbd59, 0x1fb5, - 0xbd5a, 0x4305, - 0xbd66, 0x242b, - 0xbd67, 0x1faf, - 0xbd68, 0x4311, - 0xbd6a, 0x2068, - 0xbd6b, 0x21e4, - 0xbd6c, 0x4313, - 0xbd6f, 0x1f21, - 0xbd70, 0x4316, - 0xbd71, 0x2101, - 0xbd72, 0x4317, - 0xbd79, 0x217c, - 0xbd7a, 0x214a, - 0xbd7b, 0x242d, - 0xbd7c, 0x431e, - 0xbd7e, 0x1fd4, - 0xbd80, 0x4320, - 0xbd81, 0x1fd1, - 0xbd82, 0x4321, - 0xbd89, 0x1e33, - 0xbd8a, 0x4328, - 0xbd8b, 0x242f, - 0xbd8c, 0x4329, - 0xbd8e, 0x242e, - 0xbd8f, 0x432b, - 0xbd90, 0x2430, - 0xbd91, 0x21db, - 0xbd92, 0x432c, - 0xbd97, 0x2158, - 0xbd98, 0x4331, - 0xbd9b, 0x1fc2, - 0xbd9c, 0x4334, - 0xbda1, 0x0872, - 0xbe40, 0x4339, - 0xbe43, 0x22b9, - 0xbe44, 0x433c, - 0xbe45, 0x2436, - 0xbe46, 0x433d, - 0xbe49, 0x1e8e, - 0xbe4a, 0x2439, - 0xbe4b, 0x4340, - 0xbe51, 0x21c5, - 0xbe52, 0x2437, - 0xbe53, 0x2192, - 0xbe54, 0x4346, - 0xbe55, 0x243a, - 0xbe56, 0x1f19, - 0xbe57, 0x218c, - 0xbe58, 0x1e40, - 0xbe59, 0x22b3, - 0xbe5a, 0x4347, - 0xbe5d, 0x205f, - 0xbe5e, 0x2438, - 0xbe5f, 0x2432, - 0xbe60, 0x2274, - 0xbe61, 0x434a, - 0xbe62, 0x1e9c, - 0xbe63, 0x2431, - 0xbe64, 0x2085, - 0xbe65, 0x434b, - 0xbe69, 0x2435, - 0xbe6a, 0x434f, - 0xbe6c, 0x243b, - 0xbe6d, 0x4351, - 0xbe6f, 0x1fb7, - 0xbe70, 0x2433, - 0xbe71, 0x4353, - 0xbe76, 0x2054, - 0xbe77, 0x21de, - 0xbe78, 0x4358, - 0xbe79, 0x2434, - 0xbe7a, 0x4359, - 0xbe7c, 0x243d, - 0xbe7d, 0x1f89, - 0xbe7e, 0x243c, - 0xbe80, 0x435b, - 0xbe83, 0x1f6e, - 0xbe84, 0x1ed8, - 0xbe85, 0x435e, - 0xbe86, 0x1ebf, - 0xbe87, 0x2445, - 0xbe88, 0x435f, - 0xbe89, 0x2249, - 0xbe8a, 0x4360, - 0xbe8c, 0x2441, - 0xbe8d, 0x4362, - 0xbe8e, 0x1e47, - 0xbe8f, 0x1f56, - 0xbe90, 0x4363, - 0xbe92, 0x2086, - 0xbe93, 0x4365, - 0xbe95, 0x2196, - 0xbe96, 0x4367, - 0xbe97, 0x2443, - 0xbe98, 0x243f, - 0xbe99, 0x4368, - 0xbe9a, 0x2023, - 0xbe9b, 0x4369, - 0xbe9c, 0x2442, - 0xbe9d, 0x436a, - 0xbe9f, 0x243e, - 0xbea0, 0x436c, - 0xbea1, 0x08d0, - 0xbf40, 0x26a6, - 0xbf41, 0x436d, - 0xbf4d, 0x234e, - 0xbf4e, 0x2446, - 0xbf4f, 0x244b, - 0xbf50, 0x2444, - 0xbf51, 0x4379, - 0xbf55, 0x2427, - 0xbf56, 0x244c, - 0xbf57, 0x437d, - 0xbf60, 0x1f0f, - 0xbf61, 0x4386, - 0xbf62, 0x2447, - 0xbf63, 0x2449, - 0xbf64, 0x2448, - 0xbf65, 0x4387, - 0xbf68, 0x21c2, - 0xbf69, 0x438a, - 0xbf6c, 0x216e, - 0xbf6d, 0x438d, - 0xbf70, 0x1f03, - 0xbf71, 0x4390, - 0xbf72, 0x244a, - 0xbf73, 0x215c, - 0xbf74, 0x4391, - 0xbf76, 0x22bb, - 0xbf77, 0x2450, - 0xbf78, 0x4393, - 0xbf79, 0x2694, - 0xbf7a, 0x244f, - 0xbf7b, 0x25f6, - 0xbf7c, 0x2051, - 0xbf7d, 0x4394, - 0xbf7e, 0x244e, - 0xbf80, 0x4395, - 0xbf82, 0x22ba, - 0xbf83, 0x1f6d, - 0xbf84, 0x4397, - 0xbf89, 0x2452, - 0xbf8a, 0x2451, - 0xbf8b, 0x439c, - 0xbf95, 0x2455, - 0xbf96, 0x43a6, - 0xbf97, 0x2289, - 0xbf98, 0x2116, - 0xbf99, 0x43a7, - 0xbf9d, 0x2454, - 0xbf9e, 0x43ab, - 0xbfa1, 0x092e, - 0xc040, 0x20fb, - 0xc041, 0x43ae, - 0xc044, 0x2440, - 0xc045, 0x43b1, - 0xc04b, 0x2126, - 0xc04c, 0x1f61, - 0xc04d, 0x269d, - 0xc04e, 0x43b7, - 0xc04f, 0x1f8a, - 0xc050, 0x2456, - 0xc051, 0x2459, - 0xc052, 0x2458, - 0xc053, 0x43b8, - 0xc055, 0x1fae, - 0xc056, 0x43ba, - 0xc05b, 0x221a, - 0xc05c, 0x43bf, - 0xc05e, 0x1f7a, - 0xc05f, 0x244d, - 0xc060, 0x2457, - 0xc061, 0x43c1, - 0xc069, 0x2453, - 0xc06a, 0x43c9, - 0xc06b, 0x2420, - 0xc06c, 0x43ca, - 0xc06d, 0x21df, - 0xc06e, 0x2685, - 0xc06f, 0x43cb, - 0xc070, 0x1e6e, - 0xc071, 0x43cc, - 0xc074, 0x2224, - 0xc075, 0x2670, - 0xc076, 0x43cf, - 0xc077, 0x21ba, - 0xc078, 0x43d0, - 0xc079, 0x245a, - 0xc07a, 0x43d1, - 0xc07c, 0x1fff, - 0xc07d, 0x43d3, - 0xc080, 0x43d5, - 0xc09b, 0x25e2, - 0xc09c, 0x43f0, - 0xc09d, 0x269a, - 0xc09e, 0x43f1, - 0xc0a1, 0x098c, - 0xc140, 0x43f4, - 0xc150, 0x1eea, - 0xc151, 0x4404, - 0xc154, 0x1e2c, - 0xc155, 0x4407, - 0xc15f, 0x2062, - 0xc160, 0x24f1, - 0xc161, 0x4411, - 0xc162, 0x24f2, - 0xc163, 0x4412, - 0xc175, 0x25f2, - 0xc176, 0x4424, - 0xc178, 0x2215, - 0xc179, 0x4426, - 0xc180, 0x442c, - 0xc195, 0x21ae, - 0xc196, 0x4441, - 0xc1a1, 0x09ea, - 0xc240, 0x444c, - 0xc24e, 0x20e0, - 0xc24f, 0x445a, - 0xc265, 0x25c2, - 0xc266, 0x4470, - 0xc267, 0x25c1, - 0xc268, 0x4471, - 0xc27d, 0x2128, - 0xc27e, 0x4486, - 0xc280, 0x4487, - 0xc284, 0x2199, - 0xc285, 0x448b, - 0xc293, 0x2017, - 0xc294, 0x1ea0, - 0xc295, 0x2125, - 0xc296, 0x214d, - 0xc297, 0x4499, - 0xc298, 0x25c4, - 0xc299, 0x209d, - 0xc29a, 0x228a, - 0xc29b, 0x449a, - 0xc29c, 0x25c3, - 0xc29d, 0x449b, - 0xc2a0, 0x2179, - 0xc2a1, 0x0a48, - 0xc340, 0x2038, - 0xc341, 0x449e, - 0xc343, 0x2155, - 0xc344, 0x44a0, - 0xc37b, 0x21d2, - 0xc37c, 0x44d7, - 0xc380, 0x44da, - 0xc384, 0x24c7, - 0xc385, 0x44de, - 0xc39b, 0x2279, - 0xc39c, 0x44f4, - 0xc3a1, 0x0aa6, - 0xc440, 0x44f9, - 0xc449, 0x2123, - 0xc44a, 0x4502, - 0xc44c, 0x24c5, - 0xc44d, 0x4504, - 0xc454, 0x24c9, - 0xc455, 0x450b, - 0xc458, 0x2094, - 0xc459, 0x450e, - 0xc45b, 0x2296, - 0xc45c, 0x4510, - 0xc463, 0x1e77, - 0xc464, 0x4517, - 0xc477, 0x1f06, - 0xc478, 0x452a, - 0xc47a, 0x1fa5, - 0xc47b, 0x452c, - 0xc480, 0x4530, - 0xc481, 0x2099, - 0xc482, 0x4531, - 0xc491, 0x1ead, - 0xc492, 0x24c8, - 0xc493, 0x20a8, - 0xc494, 0x4540, - 0xc498, 0x201f, - 0xc499, 0x4544, - 0xc49a, 0x20c5, - 0xc49b, 0x4545, - 0xc49c, 0x24ca, - 0xc49d, 0x4546, - 0xc4a1, 0x0b04, - 0xc540, 0x454a, - 0xc544, 0x1ff0, - 0xc545, 0x454e, - 0xc546, 0x24c6, - 0xc547, 0x454f, - 0xc54b, 0x225d, - 0xc54c, 0x22de, - 0xc54d, 0x4553, - 0xc552, 0x202c, - 0xc553, 0x4558, - 0xc55f, 0x2161, - 0xc560, 0x4564, - 0xc563, 0x223b, - 0xc564, 0x21d9, - 0xc565, 0x1fcb, - 0xc566, 0x1fc9, - 0xc567, 0x4567, - 0xc580, 0x457f, - 0xc593, 0x1e61, - 0xc594, 0x4592, - 0xc59c, 0x25ef, - 0xc59d, 0x459a, - 0xc59e, 0x1f98, - 0xc59f, 0x459b, - 0xc5a1, 0x0b62, - 0xc640, 0x459d, - 0xc641, 0x25f0, - 0xc642, 0x459e, - 0xc644, 0x1f88, - 0xc645, 0x45a0, - 0xc647, 0x21f8, - 0xc648, 0x45a2, - 0xc663, 0x2322, - 0xc664, 0x45bd, - 0xc672, 0x2336, - 0xc673, 0x45cb, - 0xc680, 0x45d7, - 0xc6a1, 0x0bc0, - 0xc740, 0x45f8, - 0xc766, 0x22ab, - 0xc767, 0x461e, - 0xc76f, 0x1fbf, - 0xc770, 0x4626, - 0xc776, 0x1f7d, - 0xc777, 0x462c, - 0xc77b, 0x2333, - 0xc77c, 0x4630, - 0xc780, 0x4633, - 0xc7a1, 0x0c1e, - 0xc840, 0x4654, - 0xc841, 0x1f4d, - 0xc842, 0x4655, - 0xc84f, 0x2334, - 0xc850, 0x4662, - 0xc852, 0x1ff1, - 0xc853, 0x4664, - 0xc866, 0x218b, - 0xc867, 0x4677, - 0xc86e, 0x2349, - 0xc86f, 0x467e, - 0xc87e, 0x220b, - 0xc880, 0x468d, - 0xc887, 0x2346, - 0xc888, 0x4694, - 0xc892, 0x2347, - 0xc893, 0x469e, - 0xc894, 0x2193, - 0xc895, 0x469f, - 0xc899, 0x26a1, - 0xc89a, 0x46a3, - 0xc89d, 0x1f62, - 0xc89e, 0x46a6, - 0xc8a1, 0x0c7c, - 0xc940, 0x46a9, - 0xc94f, 0x234d, - 0xc950, 0x2348, - 0xc951, 0x46b8, - 0xc96e, 0x1e60, - 0xc96f, 0x46d5, - 0xc970, 0x2345, - 0xc971, 0x46d6, - 0xc977, 0x1f12, - 0xc978, 0x46dc, - 0xc980, 0x46e3, - 0xc98f, 0x2018, - 0xc990, 0x2335, - 0xc991, 0x46f2, - 0xc99c, 0x233c, - 0xc99d, 0x46fd, - 0xc9a1, 0x0cda, - 0xca40, 0x4701, - 0xca4e, 0x266f, - 0xca4f, 0x470f, - 0xca56, 0x2351, - 0xca57, 0x4716, - 0xca59, 0x1fa0, - 0xca5a, 0x4718, - 0xca5c, 0x2338, - 0xca5d, 0x471a, - 0xca61, 0x221b, - 0xca62, 0x471e, - 0xca6e, 0x2342, - 0xca6f, 0x472a, - 0xca72, 0x234f, - 0xca73, 0x472d, - 0xca77, 0x233d, - 0xca78, 0x4731, - 0xca7b, 0x2344, - 0xca7c, 0x2331, - 0xca7d, 0x4734, - 0xca7e, 0x234b, - 0xca80, 0x4735, - 0xca81, 0x233b, - 0xca82, 0x4736, - 0xca89, 0x2350, - 0xca8a, 0x473d, - 0xca8e, 0x1eb4, - 0xca8f, 0x21a6, - 0xca90, 0x4741, - 0xca92, 0x21cb, - 0xca93, 0x4743, - 0xca9a, 0x2355, - 0xca9b, 0x474a, - 0xcaa1, 0x0d38, - 0xcb40, 0x4750, - 0xcb43, 0x233e, - 0xcb44, 0x4753, - 0xcb45, 0x1f74, - 0xcb46, 0x4754, - 0xcb47, 0x2330, - 0xcb48, 0x4755, - 0xcb4b, 0x2680, - 0xcb4c, 0x4758, - 0xcb4e, 0x20da, - 0xcb4f, 0x475a, - 0xcb57, 0x234a, - 0xcb58, 0x4762, - 0xcb5d, 0x1f91, - 0xcb5e, 0x4767, - 0xcb5f, 0x2107, - 0xcb60, 0x4768, - 0xcb6a, 0x233f, - 0xcb6b, 0x4772, - 0xcb7b, 0x1ff4, - 0xcb7c, 0x2343, - 0xcb7d, 0x4782, - 0xcb80, 0x4784, - 0xcb87, 0x2212, - 0xcb88, 0x478b, - 0xcb8e, 0x2207, - 0xcb8f, 0x4791, - 0xcb92, 0x2359, - 0xcb93, 0x4794, - 0xcb9c, 0x2254, - 0xcb9d, 0x479d, - 0xcb9e, 0x2332, - 0xcb9f, 0x479e, - 0xcba1, 0x0d96, - 0xcc40, 0x1e26, - 0xcc41, 0x2357, - 0xcc42, 0x47a0, - 0xcc49, 0x2358, - 0xcc4a, 0x2042, - 0xcc4b, 0x2153, - 0xcc4c, 0x47a7, - 0xcc4f, 0x20bb, - 0xcc50, 0x47aa, - 0xcc5c, 0x235a, - 0xcc5d, 0x47b6, - 0xcc60, 0x2356, - 0xcc61, 0x47b9, - 0xcc64, 0x2337, - 0xcc65, 0x47bc, - 0xcc6d, 0x1ff9, - 0xcc6e, 0x47c4, - 0xcc79, 0x2353, - 0xcc7a, 0x47cf, - 0xcc7d, 0x2061, - 0xcc7e, 0x47d2, - 0xcc80, 0x47d3, - 0xcc8e, 0x1e95, - 0xcc8f, 0x47e1, - 0xcc94, 0x2049, - 0xcc95, 0x47e6, - 0xcc96, 0x1f42, - 0xcc97, 0x47e7, - 0xcc9d, 0x1fe8, - 0xcc9e, 0x47ed, - 0xcca1, 0x0df4, - 0xcd40, 0x47f0, - 0xcd80, 0x482f, - 0xcd90, 0x25da, - 0xcd91, 0x483f, - 0xcd98, 0x25d7, - 0xcd99, 0x4846, - 0xcda1, 0x0e52, - 0xce40, 0x484e, - 0xce67, 0x212e, - 0xce68, 0x4875, - 0xce72, 0x21b2, - 0xce73, 0x487f, - 0xce80, 0x488b, - 0xce81, 0x219e, - 0xce82, 0x488c, - 0xce87, 0x25dc, - 0xce88, 0x4891, - 0xce9b, 0x206c, - 0xce9c, 0x48a4, - 0xce9e, 0x2226, - 0xce9f, 0x48a6, - 0xcea1, 0x0eb0, - 0xcf40, 0x48a8, - 0xcf4e, 0x25e0, - 0xcf4f, 0x48b6, - 0xcf55, 0x227b, - 0xcf56, 0x48bc, - 0xcf58, 0x25de, - 0xcf59, 0x48be, - 0xcf5c, 0x25e1, - 0xcf5d, 0x48c1, - 0xcf6c, 0x25d5, - 0xcf6d, 0x48d0, - 0xcf73, 0x1e6b, - 0xcf74, 0x48d6, - 0xcf75, 0x25db, - 0xcf76, 0x48d7, - 0xcf78, 0x1e89, - 0xcf79, 0x48d9, - 0xcf7c, 0x25d9, - 0xcf7d, 0x48dc, - 0xcf80, 0x48de, - 0xcf81, 0x2211, - 0xcf82, 0x48df, - 0xcf89, 0x2229, - 0xcf8a, 0x25d6, - 0xcf8b, 0x48e6, - 0xcf93, 0x25dd, - 0xcf94, 0x25df, - 0xcf95, 0x48ee, - 0xcf9e, 0x1fef, - 0xcf9f, 0x48f7, - 0xcfa0, 0x25d8, - 0xcfa1, 0x0f0e, - 0xd040, 0x48f8, - 0xd04d, 0x1f29, - 0xd04e, 0x4905, - 0xd051, 0x1e5b, - 0xd052, 0x4908, - 0xd055, 0x2076, - 0xd056, 0x490b, - 0xd05c, 0x2297, - 0xd05d, 0x4911, - 0xd060, 0x2690, - 0xd061, 0x4914, - 0xd067, 0x213f, - 0xd068, 0x491a, - 0xd06c, 0x2198, - 0xd06d, 0x491e, - 0xd06e, 0x1e88, - 0xd06f, 0x491f, - 0xd07d, 0x228c, - 0xd07e, 0x492d, - 0xd080, 0x492e, - 0xd0a1, 0x0f6c, - 0xd140, 0x494f, - 0xd155, 0x25f1, - 0xd156, 0x4964, - 0xd159, 0x200c, - 0xd15a, 0x4967, - 0xd161, 0x1e58, - 0xd162, 0x22ac, - 0xd163, 0x496e, - 0xd175, 0x26a7, - 0xd176, 0x4980, - 0xd17d, 0x2676, - 0xd17e, 0x4987, - 0xd180, 0x4988, - 0xd19d, 0x1fe1, - 0xd19e, 0x25bb, - 0xd19f, 0x49a5, - 0xd1a1, 0x0fca, - 0xd240, 0x25be, - 0xd241, 0x49a7, - 0xd243, 0x22dd, - 0xd244, 0x49a9, - 0xd24d, 0x25bd, - 0xd24e, 0x49b2, - 0xd25c, 0x1e2a, - 0xd25d, 0x49c0, - 0xd263, 0x25bc, - 0xd264, 0x25ba, - 0xd265, 0x49c6, - 0xd268, 0x25bf, - 0xd269, 0x49c9, - 0xd26d, 0x2187, - 0xd26e, 0x49cd, - 0xd26f, 0x266b, - 0xd270, 0x49ce, - 0xd272, 0x1e7f, - 0xd273, 0x49d0, - 0xd275, 0x21ad, - 0xd276, 0x49d2, - 0xd280, 0x49db, - 0xd28a, 0x1f96, - 0xd28b, 0x49e5, - 0xd28e, 0x1f32, - 0xd28f, 0x49e8, - 0xd292, 0x2084, - 0xd293, 0x49eb, - 0xd295, 0x2136, - 0xd296, 0x49ed, - 0xd297, 0x24b8, - 0xd298, 0x49ee, - 0xd2a0, 0x24ba, - 0xd2a1, 0x1028, - 0xd340, 0x49f6, - 0xd344, 0x24bc, - 0xd345, 0x49fa, - 0xd348, 0x20e4, - 0xd349, 0x49fd, - 0xd34a, 0x24b9, - 0xd34b, 0x49fe, - 0xd34d, 0x24bd, - 0xd34e, 0x4a00, - 0xd350, 0x24be, - 0xd351, 0x4a02, - 0xd355, 0x24bf, - 0xd356, 0x4a06, - 0xd358, 0x1fd2, - 0xd359, 0x4a08, - 0xd35b, 0x1ffd, - 0xd35c, 0x4a0a, - 0xd35d, 0x24bb, - 0xd35e, 0x1f2d, - 0xd35f, 0x4a0b, - 0xd378, 0x2609, - 0xd379, 0x4a24, - 0xd37a, 0x260a, - 0xd37b, 0x4a25, - 0xd37c, 0x1e94, - 0xd37d, 0x4a26, - 0xd380, 0x4a28, - 0xd385, 0x22df, - 0xd386, 0x1ecb, - 0xd387, 0x1f0d, - 0xd388, 0x4a2d, - 0xd38b, 0x1f77, - 0xd38c, 0x4a30, - 0xd38d, 0x21eb, - 0xd38e, 0x4a31, - 0xd38f, 0x22e1, - 0xd390, 0x4a32, - 0xd391, 0x216f, - 0xd392, 0x4a33, - 0xd393, 0x22e0, - 0xd394, 0x4a34, - 0xd396, 0x21ea, - 0xd397, 0x4a36, - 0xd398, 0x22e2, - 0xd399, 0x20cb, - 0xd39a, 0x4a37, - 0xd39b, 0x1f78, - 0xd39c, 0x4a38, - 0xd39e, 0x1ee2, - 0xd39f, 0x4a3a, - 0xd3a0, 0x21f2, - 0xd3a1, 0x1086, - 0xd440, 0x4a3b, - 0xd441, 0x2150, - 0xd442, 0x4a3c, - 0xd445, 0x1fd3, - 0xd446, 0x4a3f, - 0xd447, 0x22e5, - 0xd448, 0x4a40, - 0xd44c, 0x1ef2, - 0xd44d, 0x4a44, - 0xd44f, 0x211f, - 0xd450, 0x4a46, - 0xd453, 0x21dd, - 0xd454, 0x4a49, - 0xd456, 0x2154, - 0xd457, 0x4a4b, - 0xd458, 0x22e7, - 0xd459, 0x4a4c, - 0xd45c, 0x2282, - 0xd45d, 0x4a4f, - 0xd462, 0x22e6, - 0xd463, 0x4a54, - 0xd467, 0x22e8, - 0xd468, 0x4a58, - 0xd46e, 0x22e4, - 0xd46f, 0x4a5e, - 0xd470, 0x226a, - 0xd471, 0x4a5f, - 0xd472, 0x22eb, - 0xd473, 0x4a60, - 0xd474, 0x22e9, - 0xd475, 0x20bd, - 0xd476, 0x4a61, - 0xd478, 0x22ea, - 0xd479, 0x4a63, - 0xd47b, 0x22bd, - 0xd47c, 0x4a65, - 0xd47e, 0x1e9e, - 0xd480, 0x4a67, - 0xd482, 0x22f6, - 0xd483, 0x21e7, - 0xd484, 0x2216, - 0xd485, 0x4a69, - 0xd487, 0x2137, - 0xd488, 0x4a6b, - 0xd48a, 0x212c, - 0xd48b, 0x4a6d, - 0xd48c, 0x1e68, - 0xd48d, 0x22f2, - 0xd48e, 0x1f37, - 0xd48f, 0x22f3, - 0xd490, 0x4a6e, - 0xd491, 0x22ef, - 0xd492, 0x1f50, - 0xd493, 0x1f10, - 0xd494, 0x21c8, - 0xd495, 0x4a6f, - 0xd496, 0x22f1, - 0xd497, 0x4a70, - 0xd49c, 0x22f0, - 0xd49d, 0x4a75, - 0xd49f, 0x22ee, - 0xd4a0, 0x4a77, - 0xd4a1, 0x10e4, - 0xd540, 0x4a78, - 0xd543, 0x22ed, - 0xd544, 0x229e, - 0xd545, 0x22ec, - 0xd546, 0x1fe2, - 0xd547, 0x4a7b, - 0xd54a, 0x20fe, - 0xd54b, 0x4a7e, - 0xd54e, 0x22f9, - 0xd550, 0x4a81, - 0xd551, 0x1eaf, - 0xd552, 0x4a82, - 0xd554, 0x2236, - 0xd555, 0x4a84, - 0xd556, 0x22f7, - 0xd557, 0x4a85, - 0xd55a, 0x223d, - 0xd55b, 0x4a88, - 0xd55c, 0x1e82, - 0xd55d, 0x1fb6, - 0xd55e, 0x4a89, - 0xd55f, 0x21a4, - 0xd560, 0x21aa, - 0xd561, 0x22f8, - 0xd562, 0x2151, - 0xd563, 0x4a8a, - 0xd564, 0x1f60, - 0xd565, 0x4a8b, - 0xd568, 0x2147, - 0xd569, 0x4a8e, - 0xd56c, 0x2145, - 0xd56d, 0x4a91, - 0xd56e, 0x1fdc, - 0xd56f, 0x4a92, - 0xd572, 0x2301, - 0xd573, 0x4a95, - 0xd575, 0x1ef5, - 0xd576, 0x4a97, - 0xd578, 0x2218, - 0xd579, 0x4a99, - 0xd57b, 0x1ec6, - 0xd57c, 0x4a9b, - 0xd57e, 0x2300, - 0xd580, 0x4a9d, - 0xd581, 0x22b4, - 0xd582, 0x4a9e, - 0xd584, 0x2169, - 0xd585, 0x4aa0, - 0xd586, 0x22fd, - 0xd587, 0x4aa1, - 0xd588, 0x20ea, - 0xd589, 0x4aa2, - 0xd58a, 0x22f4, - 0xd58b, 0x4aa3, - 0xd58c, 0x22fb, - 0xd58d, 0x4aa4, - 0xd58e, 0x22fc, - 0xd58f, 0x2027, - 0xd590, 0x4aa5, - 0xd593, 0x2060, - 0xd594, 0x22ff, - 0xd595, 0x4aa8, - 0xd598, 0x22fe, - 0xd599, 0x1ec7, - 0xd59a, 0x4aab, - 0xd59b, 0x230c, - 0xd59c, 0x4aac, - 0xd59f, 0x22f5, - 0xd5a0, 0x4aaf, - 0xd5a1, 0x1142, - 0xd640, 0x2306, - 0xd641, 0x4ab0, - 0xd642, 0x230a, - 0xd643, 0x21d3, - 0xd644, 0x4ab1, - 0xd647, 0x2303, - 0xd648, 0x4ab4, - 0xd649, 0x2307, - 0xd64a, 0x230b, - 0xd64b, 0x4ab5, - 0xd64d, 0x1f5f, - 0xd64e, 0x4ab7, - 0xd64f, 0x2309, - 0xd650, 0x4ab8, - 0xd652, 0x2302, - 0xd653, 0x1f04, - 0xd654, 0x229d, - 0xd655, 0x4aba, - 0xd656, 0x21fb, - 0xd657, 0x4abb, - 0xd658, 0x2308, - 0xd659, 0x4abc, - 0xd65a, 0x20ac, - 0xd65b, 0x4abd, - 0xd65c, 0x208e, - 0xd65d, 0x2305, - 0xd65e, 0x2197, - 0xd65f, 0x4abe, - 0xd660, 0x2171, - 0xd661, 0x2298, - 0xd662, 0x4abf, - 0xd665, 0x1f57, - 0xd666, 0x4ac2, - 0xd669, 0x2082, - 0xd66a, 0x4ac5, - 0xd66b, 0x2311, - 0xd66c, 0x4ac6, - 0xd66f, 0x2304, - 0xd670, 0x4ac9, - 0xd671, 0x230f, - 0xd672, 0x1e35, - 0xd673, 0x4aca, - 0xd674, 0x20d1, - 0xd675, 0x2310, - 0xd676, 0x1fa3, - 0xd677, 0x4acb, - 0xd678, 0x21d6, - 0xd679, 0x4acc, - 0xd67c, 0x2206, - 0xd67d, 0x4acf, - 0xd680, 0x4ad1, - 0xd683, 0x230d, - 0xd684, 0x4ad4, - 0xd686, 0x2312, - 0xd687, 0x208d, - 0xd688, 0x2313, - 0xd689, 0x4ad6, - 0xd68e, 0x22e3, - 0xd68f, 0x4adb, - 0xd694, 0x1fba, - 0xd695, 0x4ae0, - 0xd699, 0x2078, - 0xd69a, 0x4ae4, - 0xd6a1, 0x11a0, - 0xd740, 0x4aeb, - 0xd743, 0x2288, - 0xd744, 0x4aee, - 0xd748, 0x2316, - 0xd749, 0x1f6b, - 0xd74a, 0x4af2, - 0xd750, 0x2314, - 0xd751, 0x4af8, - 0xd752, 0x2130, - 0xd753, 0x2315, - 0xd754, 0x2168, - 0xd755, 0x4af9, - 0xd756, 0x20c4, - 0xd757, 0x4afa, - 0xd764, 0x2318, - 0xd765, 0x4b07, - 0xd767, 0x2219, - 0xd768, 0x2217, - 0xd769, 0x4b09, - 0xd76c, 0x20d5, - 0xd76d, 0x4b0c, - 0xd76f, 0x1f4a, - 0xd770, 0x4b0e, - 0xd775, 0x2240, - 0xd776, 0x4b13, - 0xd778, 0x1ed3, - 0xd779, 0x4b15, - 0xd780, 0x4b1b, - 0xd783, 0x1e49, - 0xd784, 0x4b1e, - 0xd787, 0x261b, - 0xd788, 0x4b21, - 0xd78b, 0x1e6d, - 0xd78c, 0x20f8, - 0xd78d, 0x4b24, - 0xd78e, 0x1ffb, - 0xd78f, 0x2319, - 0xd790, 0x4b25, - 0xd795, 0x230e, - 0xd796, 0x4b2a, - 0xd797, 0x2317, - 0xd798, 0x4b2b, - 0xd7a1, 0x11fe, - 0xd840, 0x4b34, - 0xd84d, 0x20c8, - 0xd84e, 0x4b41, - 0xd853, 0x1efd, - 0xd854, 0x4b46, - 0xd880, 0x4b71, - 0xd890, 0x1e3b, - 0xd891, 0x227f, - 0xd892, 0x4b81, - 0xd893, 0x1f0c, - 0xd894, 0x1e59, - 0xd895, 0x1f24, - 0xd896, 0x4b82, - 0xd89a, 0x20ba, - 0xd89b, 0x1f65, - 0xd89c, 0x1ef0, - 0xd89d, 0x2164, - 0xd89e, 0x1f30, - 0xd89f, 0x2261, - 0xd8a0, 0x4b86, - 0xd8a1, 0x1257, - 0xd940, 0x4b87, - 0xd941, 0x22a2, - 0xd942, 0x24ab, - 0xd943, 0x4b88, - 0xd944, 0x24af, - 0xd945, 0x1ee8, - 0xd946, 0x1f39, - 0xd947, 0x4b89, - 0xd948, 0x1e48, - 0xd949, 0x2070, - 0xd94a, 0x1ea8, - 0xd94b, 0x4b8a, - 0xd94c, 0x24ac, - 0xd94d, 0x1ef7, - 0xd94e, 0x2176, - 0xd94f, 0x24ad, - 0xd950, 0x4b8b, - 0xd951, 0x207b, - 0xd952, 0x1f45, - 0xd953, 0x24aa, - 0xd954, 0x204b, - 0xd955, 0x202f, - 0xd956, 0x1f5a, - 0xd957, 0x24b0, - 0xd958, 0x4b8c, - 0xd959, 0x22b7, - 0xd95a, 0x1f7f, - 0xd95b, 0x4b8d, - 0xd95c, 0x2265, - 0xd95d, 0x4b8e, - 0xd963, 0x24b2, - 0xd964, 0x211b, - 0xd965, 0x1e51, - 0xd966, 0x4b94, - 0xd967, 0x24b4, - 0xd968, 0x4b95, - 0xd96c, 0x24b3, - 0xd96d, 0x4b99, - 0xd96e, 0x1e9f, - 0xd96f, 0x4b9a, - 0xd970, 0x2118, - 0xd971, 0x4b9b, - 0xd972, 0x20b4, - 0xd973, 0x23af, - 0xd974, 0x21bb, - 0xd975, 0x2072, - 0xd976, 0x1f95, - 0xd977, 0x4b9c, - 0xd978, 0x1f0a, - 0xd979, 0x24b6, - 0xd97a, 0x4b9d, - 0xd97c, 0x2291, - 0xd97d, 0x24b5, - 0xd97e, 0x2278, - 0xd980, 0x1ed4, - 0xd981, 0x4b9f, - 0xd987, 0x1ff3, - 0xd988, 0x4ba5, - 0xd98d, 0x22a9, - 0xd98e, 0x24b7, - 0xd98f, 0x1f28, - 0xd990, 0x2109, - 0xd991, 0x22c7, - 0xd992, 0x4baa, - 0xd997, 0x24ae, - 0xd998, 0x22b1, - 0xd999, 0x4baf, - 0xd99b, 0x2266, - 0xd99c, 0x4bb1, - 0xd99d, 0x225b, - 0xd99e, 0x22c4, - 0xd99f, 0x4bb2, - 0xd9a0, 0x2115, - 0xd9a1, 0x12b5, - 0xda40, 0x4bb3, - 0xda41, 0x222a, - 0xda42, 0x24b1, - 0xda43, 0x4bb4, - 0xda48, 0x213d, - 0xda49, 0x4bb9, - 0xda4d, 0x1f15, - 0xda4e, 0x225c, - 0xda4f, 0x4bbd, - 0xda73, 0x1f14, - 0xda74, 0x4be1, - 0xda77, 0x227a, - 0xda78, 0x4be4, - 0xda80, 0x4beb, - 0xda85, 0x20ee, - 0xda86, 0x4bf0, - 0xda8e, 0x25f8, - 0xda8f, 0x4bf8, - 0xdaa1, 0x1313, - 0xdb40, 0x4c0a, - 0xdb60, 0x1f94, - 0xdb61, 0x4c2a, - 0xdb78, 0x2230, - 0xdb79, 0x4c41, - 0xdb80, 0x4c47, - 0xdb84, 0x25fd, - 0xdb85, 0x4c4b, - 0xdb8b, 0x2600, - 0xdb8c, 0x4c51, - 0xdb98, 0x2606, - 0xdb99, 0x4c5d, - 0xdba1, 0x1371, - 0xdc40, 0x4c65, - 0xdc45, 0x25ff, - 0xdc46, 0x4c6a, - 0xdc4f, 0x25fc, - 0xdc50, 0x1e8c, - 0xdc51, 0x2602, - 0xdc52, 0x4c73, - 0xdc53, 0x224d, - 0xdc54, 0x4c74, - 0xdc55, 0x2604, - 0xdc56, 0x25fe, - 0xdc57, 0x2603, - 0xdc58, 0x4c75, - 0xdc5d, 0x2601, - 0xdc5e, 0x4c7a, - 0xdc62, 0x2605, - 0xdc63, 0x4c7e, - 0xdc66, 0x1ea3, - 0xdc67, 0x2608, - 0xdc68, 0x4c81, - 0xdc6b, 0x2607, - 0xdc6c, 0x4c84, - 0xdc7c, 0x20f0, - 0xdc7d, 0x4c94, - 0xdc80, 0x4c96, - 0xdc87, 0x1e7b, - 0xdc88, 0x2267, - 0xdc89, 0x1f36, - 0xdc8a, 0x1fd6, - 0xdc8b, 0x4c9d, - 0xdc8e, 0x21e0, - 0xdc8f, 0x4ca0, - 0xdc90, 0x248c, - 0xdc91, 0x4ca1, - 0xdc97, 0x248d, - 0xdc98, 0x4ca7, - 0xdc9b, 0x2102, - 0xdc9c, 0x4caa, - 0xdca0, 0x2494, - 0xdca1, 0x13cf, - 0xdd40, 0x4cae, - 0xdd46, 0x2493, - 0xdd47, 0x4cb4, - 0xdd4d, 0x248e, - 0xdd4e, 0x4cba, - 0xdd53, 0x2299, - 0xdd54, 0x2491, - 0xdd55, 0x2496, - 0xdd56, 0x248f, - 0xdd57, 0x2492, - 0xdd58, 0x4cbf, - 0xdd59, 0x2497, - 0xdd5a, 0x4cc0, - 0xdd5e, 0x1fb1, - 0xdd5f, 0x4cc4, - 0xdd60, 0x249a, - 0xdd61, 0x4cc5, - 0xdd62, 0x2499, - 0xdd63, 0x4cc6, - 0xdd64, 0x2258, - 0xdd65, 0x2498, - 0xdd66, 0x4cc7, - 0xdd6d, 0x249b, - 0xdd6e, 0x4cce, - 0xdd6f, 0x1f09, - 0xdd70, 0x20e6, - 0xdd71, 0x4ccf, - 0xdd76, 0x2026, - 0xdd77, 0x249f, - 0xdd78, 0x1f59, - 0xdd79, 0x249d, - 0xdd7b, 0x4cd4, - 0xdd80, 0x4cd8, - 0xdd81, 0x1f3b, - 0xdd82, 0x249c, - 0xdd83, 0x4cd9, - 0xdd85, 0x1e3a, - 0xdd86, 0x205b, - 0xdd87, 0x4cdb, - 0xdd8b, 0x1f70, - 0xdd8c, 0x4cdf, - 0xdd8f, 0x24a0, - 0xdd90, 0x4ce2, - 0xdd94, 0x213b, - 0xdd95, 0x4ce6, - 0xdd97, 0x1f07, - 0xdd98, 0x4ce8, - 0xdd9a, 0x2270, - 0xdd9b, 0x2237, - 0xdd9c, 0x4cea, - 0xdd9e, 0x24d2, - 0xdd9f, 0x4cec, - 0xdda0, 0x21b3, - 0xdda1, 0x142d, - 0xde40, 0x2245, - 0xde41, 0x24a1, - 0xde42, 0x4ced, - 0xde44, 0x22a8, - 0xde45, 0x4cef, - 0xde48, 0x227c, - 0xde49, 0x1fb0, - 0xde4a, 0x4cf2, - 0xde4f, 0x24a2, - 0xde50, 0x4cf7, - 0xde5a, 0x1f46, - 0xde5b, 0x4d01, - 0xde5c, 0x2380, - 0xde5d, 0x2495, - 0xde5e, 0x4d02, - 0xde5f, 0x2490, - 0xde60, 0x4d03, - 0xde6b, 0x1e30, - 0xde6c, 0x4d0e, - 0xde6f, 0x1e9d, - 0xde70, 0x1e4b, - 0xde71, 0x1e4a, - 0xde72, 0x20aa, - 0xde73, 0x4d11, - 0xde80, 0x4d1d, - 0xde92, 0x267b, - 0xde93, 0x4d2f, - 0xde9f, 0x23f2, - 0xdea0, 0x4d3b, - 0xdea1, 0x148b, - 0xdf40, 0x227e, - 0xdf41, 0x4d3c, - 0xdf42, 0x2019, - 0xdf43, 0x4d3d, - 0xdf4d, 0x1fbb, - 0xdf4e, 0x4d47, - 0xdf5c, 0x2253, - 0xdf5d, 0x4d55, - 0xdf5e, 0x1f3e, - 0xdf5f, 0x1ea6, - 0xdf60, 0x218e, - 0xdf61, 0x4d56, - 0xdf64, 0x21ec, - 0xdf65, 0x4d59, - 0xdf66, 0x1ebe, - 0xdf67, 0x4d5a, - 0xdf68, 0x224a, - 0xdf69, 0x4d5b, - 0xdf6d, 0x2133, - 0xdf6e, 0x4d5f, - 0xdf74, 0x1e84, - 0xdf75, 0x4d65, - 0xdf77, 0x20cf, - 0xdf78, 0x21e2, - 0xdf79, 0x4d67, - 0xdf7a, 0x220f, - 0xdf7b, 0x4d68, - 0xdf7c, 0x2029, - 0xdf7d, 0x4d69, - 0xdf7e, 0x2073, - 0xdf80, 0x1f55, - 0xdf81, 0x4d6a, - 0xdf83, 0x23f1, - 0xdf84, 0x4d6c, - 0xdf85, 0x1e46, - 0xdf86, 0x4d6d, - 0xdf89, 0x2063, - 0xdf8a, 0x23f3, - 0xdf8b, 0x4d70, - 0xdfa1, 0x14e9, - 0xe040, 0x4d86, - 0xe050, 0x231e, - 0xe051, 0x4d96, - 0xe05d, 0x2233, - 0xe05e, 0x4da2, - 0xe069, 0x2320, - 0xe06a, 0x4dad, - 0xe06c, 0x21c7, - 0xe06d, 0x4daf, - 0xe075, 0x22bc, - 0xe076, 0x4db7, - 0xe077, 0x231c, - 0xe078, 0x4db8, - 0xe079, 0x2251, - 0xe07a, 0x4db9, - 0xe080, 0x4dbe, - 0xe087, 0x1ebb, - 0xe088, 0x4dc5, - 0xe08d, 0x2287, - 0xe08e, 0x4dca, - 0xe08f, 0x202d, - 0xe090, 0x1eab, - 0xe091, 0x4dcb, - 0xe092, 0x231d, - 0xe093, 0x4dcc, - 0xe094, 0x231f, - 0xe095, 0x4dcd, - 0xe097, 0x231b, - 0xe098, 0x4dcf, - 0xe0a1, 0x1547, - 0xe140, 0x4dd8, - 0xe142, 0x2321, - 0xe143, 0x4dda, - 0xe164, 0x2255, - 0xe165, 0x4dfb, - 0xe168, 0x1e8f, - 0xe169, 0x4dfe, - 0xe174, 0x220c, - 0xe175, 0x1fa4, - 0xe176, 0x4e09, - 0xe180, 0x4e12, - 0xe184, 0x209b, - 0xe185, 0x21d8, - 0xe186, 0x4e16, - 0xe187, 0x25fa, - 0xe188, 0x4e17, - 0xe189, 0x25f9, - 0xe18a, 0x4e18, - 0xe18c, 0x2134, - 0xe18d, 0x4e1a, - 0xe18e, 0x24f3, - 0xe191, 0x24f8, - 0xe192, 0x4e1b, - 0xe193, 0x24f7, - 0xe194, 0x1ec8, - 0xe195, 0x24f6, - 0xe196, 0x4e1c, - 0xe198, 0x2280, - 0xe199, 0x4e1e, - 0xe19e, 0x1ec5, - 0xe19f, 0x24fb, - 0xe1a0, 0x4e23, - 0xe1a1, 0x15a5, - 0xe240, 0x4e24, - 0xe241, 0x24fa, - 0xe242, 0x4e25, - 0xe243, 0x1eed, - 0xe244, 0x4e26, - 0xe24f, 0x24fd, - 0xe250, 0x4e31, - 0xe251, 0x24f9, - 0xe252, 0x4e32, - 0xe253, 0x24fe, - 0xe254, 0x20cd, - 0xe255, 0x4e33, - 0xe25a, 0x2508, - 0xe25b, 0x2504, - 0xe25c, 0x4e38, - 0xe25e, 0x2506, - 0xe25f, 0x4e3a, - 0xe262, 0x24ff, - 0xe263, 0x2090, - 0xe264, 0x4e3d, - 0xe267, 0x1edd, - 0xe268, 0x1f25, - 0xe269, 0x4e40, - 0xe26a, 0x2503, - 0xe26b, 0x2502, - 0xe26c, 0x4e41, - 0xe26e, 0x1e7a, - 0xe26f, 0x20a6, - 0xe270, 0x4e43, - 0xe278, 0x1fd5, - 0xe279, 0x4e4b, - 0xe27d, 0x1f11, - 0xe27e, 0x4e4f, - 0xe280, 0x2507, - 0xe281, 0x2500, - 0xe282, 0x2505, - 0xe283, 0x4e50, - 0xe289, 0x2519, - 0xe28a, 0x4e56, - 0xe28b, 0x2515, - 0xe28c, 0x4e57, - 0xe28e, 0x250c, - 0xe28f, 0x2031, - 0xe290, 0x4e59, - 0xe292, 0x250b, - 0xe293, 0x250f, - 0xe294, 0x251a, - 0xe295, 0x2509, - 0xe296, 0x4e5b, - 0xe298, 0x250e, - 0xe299, 0x2234, - 0xe29a, 0x2513, - 0xe29b, 0x1f80, - 0xe29c, 0x4e5d, - 0xe2a0, 0x2501, - 0xe2a1, 0x1603, - 0xe340, 0x4e61, - 0xe342, 0x2517, - 0xe343, 0x2516, - 0xe344, 0x4e63, - 0xe347, 0x2518, - 0xe348, 0x4e66, - 0xe34b, 0x1e56, - 0xe34c, 0x4e69, - 0xe34f, 0x250d, - 0xe350, 0x4e6c, - 0xe351, 0x20d3, - 0xe352, 0x4e6d, - 0xe354, 0x207a, - 0xe355, 0x20ce, - 0xe356, 0x4e6f, - 0xe358, 0x2510, - 0xe359, 0x4e71, - 0xe35c, 0x1e55, - 0xe35d, 0x4e74, - 0xe360, 0x250a, - 0xe361, 0x4e77, - 0xe366, 0x2511, - 0xe368, 0x4e7c, - 0xe371, 0x1faa, - 0xe372, 0x4e85, - 0xe373, 0x251e, - 0xe374, 0x1f1f, - 0xe375, 0x4e86, - 0xe378, 0x252d, - 0xe379, 0x221d, - 0xe37a, 0x4e89, - 0xe37c, 0x2532, - 0xe37d, 0x4e8b, - 0xe37e, 0x217b, - 0xe380, 0x4e8c, - 0xe38a, 0x21af, - 0xe38b, 0x4e96, - 0xe38c, 0x252c, - 0xe38d, 0x4e97, - 0xe38f, 0x2528, - 0xe390, 0x4e99, - 0xe391, 0x208c, - 0xe392, 0x4e9a, - 0xe393, 0x252f, - 0xe394, 0x4e9b, - 0xe395, 0x21bc, - 0xe396, 0x4e9c, - 0xe399, 0x251d, - 0xe39a, 0x4e9f, - 0xe39c, 0x2535, - 0xe39d, 0x4ea1, - 0xe39e, 0x220d, - 0xe39f, 0x2526, - 0xe3a0, 0x4ea2, - 0xe3a1, 0x1661, - 0xe440, 0x2534, - 0xe441, 0x252a, - 0xe442, 0x251f, - 0xe443, 0x2531, - 0xe444, 0x251c, - 0xe445, 0x4ea3, - 0xe448, 0x2525, - 0xe449, 0x4ea6, - 0xe44e, 0x21cd, - 0xe44f, 0x4eab, - 0xe450, 0x21da, - 0xe451, 0x4eac, - 0xe452, 0x2172, - 0xe453, 0x253e, - 0xe454, 0x4ead, - 0xe458, 0x204f, - 0xe459, 0x4eb1, - 0xe45a, 0x2543, - 0xe45b, 0x4eb2, - 0xe45c, 0x21d7, - 0xe45d, 0x4eb3, - 0xe45e, 0x1e3c, - 0xe45f, 0x4eb4, - 0xe462, 0x2529, - 0xe463, 0x4eb7, - 0xe465, 0x2521, - 0xe466, 0x4eb9, - 0xe468, 0x1eff, - 0xe469, 0x4ebb, - 0xe473, 0x253f, - 0xe474, 0x4ec5, - 0xe475, 0x2544, - 0xe476, 0x4ec6, - 0xe479, 0x2523, - 0xe47a, 0x1e90, - 0xe47b, 0x253a, - 0xe47c, 0x2545, - 0xe47d, 0x4ec9, - 0xe47e, 0x253d, - 0xe480, 0x4eca, - 0xe481, 0x20c1, - 0xe482, 0x4ecb, - 0xe484, 0x2103, - 0xe485, 0x2520, - 0xe486, 0x253c, - 0xe487, 0x253b, - 0xe488, 0x2538, - 0xe489, 0x4ecd, - 0xe48d, 0x2540, - 0xe48e, 0x4ed1, - 0xe48f, 0x1fcd, - 0xe490, 0x4ed2, - 0xe493, 0x1f18, - 0xe494, 0x4ed5, - 0xe498, 0x254b, - 0xe499, 0x4ed9, - 0xe49d, 0x2547, - 0xe49e, 0x254f, - 0xe4a0, 0x4edd, - 0xe4a1, 0x16bf, - 0xe540, 0x4ede, - 0xe546, 0x22b0, - 0xe547, 0x4ee4, - 0xe548, 0x2546, - 0xe549, 0x4ee5, - 0xe54b, 0x254c, - 0xe54c, 0x4ee7, - 0xe54e, 0x1e9a, - 0xe54f, 0x2552, - 0xe550, 0x2530, - 0xe551, 0x2549, - 0xe552, 0x4ee9, - 0xe555, 0x2551, - 0xe556, 0x1eca, - 0xe557, 0x4eec, - 0xe558, 0x20d2, - 0xe559, 0x4eed, - 0xe55c, 0x1fb8, - 0xe55d, 0x4ef0, - 0xe55e, 0x2079, - 0xe55f, 0x4ef1, - 0xe561, 0x21ab, - 0xe562, 0x4ef3, - 0xe564, 0x254d, - 0xe565, 0x1ea5, - 0xe566, 0x4ef5, - 0xe568, 0x204c, - 0xe569, 0x2080, - 0xe56a, 0x4ef7, - 0xe56c, 0x266d, - 0xe56d, 0x4ef9, - 0xe56e, 0x2537, - 0xe56f, 0x4efa, - 0xe575, 0x254a, - 0xe576, 0x21b8, - 0xe577, 0x4f00, - 0xe578, 0x254e, - 0xe579, 0x4f01, - 0xe57b, 0x24fc, - 0xe57c, 0x2554, - 0xe57d, 0x4f03, - 0xe580, 0x4f05, - 0xe581, 0x1f3c, - 0xe582, 0x4f06, - 0xe583, 0x1ed5, - 0xe584, 0x4f07, - 0xe58a, 0x2556, - 0xe58b, 0x4f0d, - 0xe58e, 0x2268, - 0xe58f, 0x4f10, - 0xe591, 0x1ed6, - 0xe592, 0x4f12, - 0xe59a, 0x2557, - 0xe59b, 0x2553, - 0xe59c, 0x4f1a, - 0xe59f, 0x2548, - 0xe5a0, 0x4f1d, - 0xe5a1, 0x171d, - 0xe640, 0x20dc, - 0xe641, 0x4f1e, - 0xe644, 0x2559, - 0xe645, 0x4f21, - 0xe649, 0x1f97, - 0xe64a, 0x2555, - 0xe64b, 0x4f25, - 0xe64e, 0x227d, - 0xe64f, 0x4f28, - 0xe652, 0x257e, - 0xe653, 0x4f2b, - 0xe656, 0x207c, - 0xe657, 0x4f2e, - 0xe658, 0x255a, - 0xe659, 0x4f2f, - 0xe65b, 0x255e, - 0xe65c, 0x4f31, - 0xe65e, 0x1e34, - 0xe65f, 0x4f33, - 0xe669, 0x215e, - 0xe66a, 0x4f3d, - 0xe66b, 0x2560, - 0xe66c, 0x4f3e, - 0xe675, 0x21a2, - 0xe676, 0x2354, - 0xe677, 0x4f47, - 0xe679, 0x2563, - 0xe67a, 0x2527, - 0xe67b, 0x4f49, - 0xe67c, 0x252e, - 0xe67d, 0x2558, - 0xe67e, 0x4f4a, - 0xe680, 0x1f1b, - 0xe681, 0x4f4b, - 0xe682, 0x2283, - 0xe683, 0x4f4c, - 0xe684, 0x2564, - 0xe685, 0x4f4d, - 0xe687, 0x20a0, - 0xe688, 0x4f4f, - 0xe689, 0x2565, - 0xe68a, 0x4f50, - 0xe68c, 0x2561, - 0xe68d, 0x4f52, - 0xe693, 0x2562, - 0xe694, 0x4f58, - 0xe697, 0x256c, - 0xe698, 0x4f5b, - 0xe69b, 0x256d, - 0xe69c, 0x2020, - 0xe69d, 0x4f5e, - 0xe69f, 0x255f, - 0xe6a0, 0x256a, - 0xe6a1, 0x177b, - 0xe740, 0x4f60, - 0xe743, 0x256e, - 0xe744, 0x4f63, - 0xe748, 0x2539, - 0xe749, 0x255c, - 0xe74a, 0x4f67, - 0xe74d, 0x2568, - 0xe74f, 0x256b, - 0xe750, 0x1e6f, - 0xe751, 0x4f6a, - 0xe752, 0x1fc4, - 0xe753, 0x2567, - 0xe754, 0x4f6b, - 0xe755, 0x255b, - 0xe756, 0x4f6c, - 0xe759, 0x261d, - 0xe75a, 0x4f6f, - 0xe766, 0x252b, - 0xe767, 0x4f7b, - 0xe768, 0x2571, - 0xe769, 0x4f7c, - 0xe76a, 0x2577, - 0xe76b, 0x4f7d, - 0xe774, 0x2522, - 0xe775, 0x4f86, - 0xe77c, 0x2533, - 0xe77d, 0x4f8d, - 0xe780, 0x4f8f, - 0xe782, 0x202a, - 0xe783, 0x4f91, - 0xe784, 0x2536, - 0xe785, 0x2573, - 0xe786, 0x256f, - 0xe787, 0x4f92, - 0xe78a, 0x2293, - 0xe78b, 0x2578, - 0xe78c, 0x4f95, - 0xe78f, 0x2570, - 0xe790, 0x4f98, - 0xe792, 0x2575, - 0xe793, 0x4f9a, - 0xe798, 0x2541, - 0xe79a, 0x255d, - 0xe79b, 0x4f9f, - 0xe7a0, 0x201a, - 0xe7a1, 0x17d9, - 0xe840, 0x4fa4, - 0xe843, 0x257a, - 0xe844, 0x2006, - 0xe845, 0x4fa7, - 0xe846, 0x2177, - 0xe847, 0x4fa8, - 0xe849, 0x251b, - 0xe84a, 0x4faa, - 0xe84b, 0x2524, - 0xe84c, 0x4fab, - 0xe84f, 0x257b, - 0xe850, 0x4fae, - 0xe854, 0x22a3, - 0xe855, 0x4fb2, - 0xe85a, 0x2579, - 0xe85b, 0x4fb7, - 0xe85c, 0x2566, - 0xe85d, 0x4fb8, - 0xe862, 0x1f93, - 0xe863, 0x4fbd, - 0xe864, 0x257c, - 0xe865, 0x4fbe, - 0xe870, 0x2514, - 0xe871, 0x4fc9, - 0xe873, 0x257d, - 0xe874, 0x4fcb, - 0xe875, 0x2572, - 0xe876, 0x4fcc, - 0xe87c, 0x2574, - 0xe87d, 0x4fd2, - 0xe880, 0x224e, - 0xe881, 0x4fd4, - 0xe882, 0x21c6, - 0xe883, 0x4fd5, - 0xe887, 0x209f, - 0xe888, 0x4fd9, - 0xe889, 0x2576, - 0xe88a, 0x4fda, - 0xe88c, 0x2064, - 0xe88d, 0x22bf, - 0xe88e, 0x261c, - 0xe88f, 0x225e, - 0xe890, 0x4fdc, - 0xe8a1, 0x1837, - 0xe940, 0x4fed, - 0xe94c, 0x1e75, - 0xe94d, 0x4ff9, - 0xe954, 0x207d, - 0xe955, 0x5000, - 0xe956, 0x23bf, - 0xe957, 0x2113, - 0xe958, 0x5001, - 0xe95a, 0x23c0, - 0xe95b, 0x5003, - 0xe95d, 0x1e45, - 0xe95e, 0x5005, - 0xe95f, 0x1fd8, - 0xe960, 0x23c4, - 0xe961, 0x5006, - 0xe962, 0x23c2, - 0xe963, 0x2104, - 0xe964, 0x5007, - 0xe965, 0x21bd, - 0xe966, 0x5008, - 0xe967, 0x1f87, - 0xe968, 0x23c3, - 0xe969, 0x5009, - 0xe96c, 0x2269, - 0xe96d, 0x500c, - 0xe975, 0x1f43, - 0xe976, 0x5014, - 0xe977, 0x1f1e, - 0xe978, 0x2679, - 0xe979, 0x1eeb, - 0xe97a, 0x5015, - 0xe97c, 0x1f35, - 0xe97d, 0x208a, - 0xe97e, 0x5017, - 0xe980, 0x23c7, - 0xe981, 0x23c9, - 0xe982, 0x23c6, - 0xe983, 0x5018, - 0xe987, 0x224f, - 0xe988, 0x501c, - 0xe98b, 0x23cb, - 0xe98c, 0x501f, - 0xe98e, 0x21f3, - 0xe98f, 0x5021, - 0xe990, 0x21f7, - 0xe991, 0x23cf, - 0xe992, 0x23ce, - 0xe993, 0x23ca, - 0xe994, 0x23cd, - 0xe995, 0x5022, - 0xe998, 0x23d0, - 0xe999, 0x5025, - 0xe99b, 0x266c, - 0xe99c, 0x5027, - 0xe99d, 0x23c1, - 0xe99e, 0x5028, - 0xe99f, 0x1fee, - 0xe9a0, 0x23d1, - 0xe9a1, 0x1895, - 0xea40, 0x1ff8, - 0xea41, 0x5029, - 0xea44, 0x23d3, - 0xea45, 0x502c, - 0xea48, 0x23d2, - 0xea49, 0x23d4, - 0xea4a, 0x1e98, - 0xea4b, 0x502f, - 0xea50, 0x1f2c, - 0xea51, 0x5034, - 0xea52, 0x23d5, - 0xea53, 0x5035, - 0xea55, 0x1e71, - 0xea56, 0x2691, - 0xea57, 0x5037, - 0xea59, 0x23c5, - 0xea5a, 0x5039, - 0xea80, 0x231a, - 0xea81, 0x505e, - 0xea84, 0x2114, - 0xea85, 0x5061, - 0xea87, 0x2284, - 0xea88, 0x5063, - 0xea8e, 0x221c, - 0xea8f, 0x5069, - 0xea90, 0x1e7e, - 0xea91, 0x204d, - 0xea92, 0x506a, - 0xea96, 0x2201, - 0xea97, 0x506e, - 0xeaa0, 0x1ed9, - 0xeaa1, 0x18f3, - 0xeb40, 0x5077, - 0xeb41, 0x1fb2, - 0xeb42, 0x5078, - 0xeb45, 0x2252, - 0xeb46, 0x507b, - 0xeb48, 0x1f79, - 0xeb49, 0x507d, - 0xeb53, 0x2157, - 0xeb54, 0x5087, - 0xeb55, 0x21bf, - 0xeb56, 0x5088, - 0xeb5b, 0x221f, - 0xeb5c, 0x508d, - 0xeb5d, 0x203d, - 0xeb5e, 0x508e, - 0xeb60, 0x2015, - 0xeb61, 0x5090, - 0xeb62, 0x26a5, - 0xeb63, 0x5091, - 0xeb6d, 0x2156, - 0xeb6e, 0x509b, - 0xeb70, 0x2144, - 0xeb71, 0x509d, - 0xeb72, 0x1e91, - 0xeb73, 0x2257, - 0xeb74, 0x509e, - 0xeb78, 0x200a, - 0xeb79, 0x2092, - 0xeb7a, 0x50a2, - 0xeb80, 0x50a7, - 0xeb85, 0x2250, - 0xeb86, 0x50ac, - 0xeb8a, 0x1ec3, - 0xeb8b, 0x50b0, - 0xeba1, 0x1951, - 0xec40, 0x50c6, - 0xec46, 0x21a8, - 0xec47, 0x50cc, - 0xec56, 0x260d, - 0xec57, 0x50db, - 0xec5a, 0x260c, - 0xec5b, 0x50de, - 0xec5c, 0x260e, - 0xec5d, 0x50df, - 0xec60, 0x2032, - 0xec61, 0x50e2, - 0xec6e, 0x260b, - 0xec6f, 0x50ef, - 0xec76, 0x22c3, - 0xec77, 0x50f6, - 0xec80, 0x50fe, - 0xec96, 0x1f23, - 0xec97, 0x5114, - 0xeca1, 0x19af, - 0xed40, 0x511e, - 0xed46, 0x2695, - 0xed47, 0x5124, - 0xed58, 0x265e, - 0xed59, 0x5135, - 0xed5e, 0x265d, - 0xed5f, 0x513a, - 0xed61, 0x2692, - 0xed62, 0x513c, - 0xed64, 0x265f, - 0xed65, 0x513e, - 0xed66, 0x218d, - 0xed67, 0x20fd, - 0xed68, 0x513f, - 0xed6e, 0x1f40, - 0xed6f, 0x5145, - 0xed74, 0x2465, - 0xed75, 0x514a, - 0xed77, 0x2467, - 0xed78, 0x514c, - 0xed79, 0x2466, - 0xed7a, 0x514d, - 0xed80, 0x5152, - 0xed91, 0x21c9, - 0xed92, 0x5163, - 0xed93, 0x2209, - 0xed94, 0x1ec9, - 0xed95, 0x20e9, - 0xed96, 0x5164, - 0xed97, 0x21ca, - 0xed98, 0x2146, - 0xed99, 0x25c5, - 0xed9a, 0x21dc, - 0xed9b, 0x5165, - 0xed9c, 0x245e, - 0xed9d, 0x5166, - 0xed9e, 0x214f, - 0xed9f, 0x5167, - 0xeda0, 0x25c6, - 0xeda1, 0x1a0d, - 0xee40, 0x25c7, - 0xee41, 0x2241, - 0xee42, 0x218a, - 0xee43, 0x1e2f, - 0xee44, 0x1edc, - 0xee45, 0x5168, - 0xee48, 0x20bf, - 0xee49, 0x2034, - 0xee4a, 0x516b, - 0xee4d, 0x25c9, - 0xee4e, 0x516e, - 0xee52, 0x25c8, - 0xee53, 0x5172, - 0xee55, 0x220e, - 0xee56, 0x5174, - 0xee57, 0x25cb, - 0xee58, 0x5175, - 0xee5e, 0x217d, - 0xee5f, 0x517b, - 0xee61, 0x1f7e, - 0xee62, 0x517d, - 0xee68, 0x25cc, - 0xee69, 0x1fc3, - 0xee6a, 0x5183, - 0xee6c, 0x20b9, - 0xee6d, 0x5185, - 0xee6e, 0x2181, - 0xee6f, 0x5186, - 0xee77, 0x1fda, - 0xee78, 0x518e, - 0xee7d, 0x2173, - 0xee7e, 0x1ee1, - 0xee80, 0x25cd, - 0xee81, 0x5193, - 0xee85, 0x25ce, - 0xee86, 0x21f6, - 0xee87, 0x5197, - 0xee8a, 0x224b, - 0xee8b, 0x25d1, - 0xee8c, 0x519a, - 0xee8d, 0x1ec0, - 0xee8e, 0x519b, - 0xee90, 0x2008, - 0xee91, 0x519d, - 0xee94, 0x25d0, - 0xee95, 0x51a0, - 0xee97, 0x25d2, - 0xee98, 0x51a2, - 0xee99, 0x1f2a, - 0xee9a, 0x51a3, - 0xee9d, 0x1e72, - 0xee9e, 0x25d3, - 0xee9f, 0x51a6, - 0xeea1, 0x1a6b, - 0xef40, 0x21be, - 0xef41, 0x25d4, - 0xef42, 0x2044, - 0xef43, 0x51a8, - 0xef44, 0x25cf, - 0xef45, 0x20f3, - 0xef46, 0x51a9, - 0xef4c, 0x1f00, - 0xef4d, 0x51af, - 0xef52, 0x24cc, - 0xef54, 0x51b4, - 0xef55, 0x2698, - 0xef56, 0x51b5, - 0xef57, 0x2678, - 0xef58, 0x51b6, - 0xef5a, 0x24ce, - 0xef5b, 0x51b8, - 0xef60, 0x24cf, - 0xef61, 0x51bd, - 0xef68, 0x20b8, - 0xef69, 0x51c4, - 0xef6a, 0x24d0, - 0xef6b, 0x51c5, - 0xef6c, 0x24d1, - 0xef6d, 0x51c6, - 0xef77, 0x1ef4, - 0xef78, 0x51d0, - 0xef7a, 0x239b, - 0xef7b, 0x51d2, - 0xef7c, 0x267e, - 0xef7d, 0x51d3, - 0xef80, 0x51d5, - 0xef82, 0x239d, - 0xef83, 0x239f, - 0xef85, 0x51d7, - 0xef86, 0x23a1, - 0xef87, 0x51d8, - 0xef88, 0x1ef1, - 0xef89, 0x51d9, - 0xef8b, 0x221e, - 0xef8c, 0x51db, - 0xef8d, 0x23a2, - 0xef8e, 0x51dc, - 0xef95, 0x214b, - 0xef96, 0x1e36, - 0xef97, 0x2135, - 0xef98, 0x51e3, - 0xef9c, 0x1fad, - 0xef9d, 0x51e7, - 0xef9e, 0x1e53, - 0xef9f, 0x51e8, - 0xefa1, 0x1ac9, - 0xf040, 0x51ea, - 0xf041, 0x23a3, - 0xf042, 0x2203, - 0xf043, 0x51eb, - 0xf044, 0x1ee7, - 0xf045, 0x51ec, - 0xf047, 0x23a4, - 0xf048, 0x2097, - 0xf049, 0x1ee4, - 0xf04a, 0x51ee, - 0xf04e, 0x2238, - 0xf04f, 0x51f2, - 0xf051, 0x23a5, - 0xf052, 0x51f4, - 0xf054, 0x1f9a, - 0xf055, 0x51f6, - 0xf057, 0x21c3, - 0xf058, 0x51f8, - 0xf05e, 0x1f2e, - 0xf05f, 0x51fe, - 0xf068, 0x239c, - 0xf069, 0x5207, - 0xf06c, 0x23a6, - 0xf06d, 0x520a, - 0xf071, 0x239e, - 0xf072, 0x520e, - 0xf073, 0x2035, - 0xf074, 0x23a7, - 0xf075, 0x520f, - 0xf078, 0x23a8, - 0xf079, 0x5212, - 0xf07a, 0x2075, - 0xf07b, 0x5213, - 0xf07d, 0x23a9, - 0xf080, 0x23ab, - 0xf081, 0x1feb, - 0xf082, 0x23ac, - 0xf083, 0x5215, - 0xf087, 0x1f6a, - 0xf088, 0x20f9, - 0xf089, 0x5219, - 0xf08b, 0x2666, - 0xf08c, 0x521b, - 0xf090, 0x2667, - 0xf091, 0x521f, - 0xf092, 0x1e6c, - 0xf093, 0x5220, - 0xf096, 0x23ad, - 0xf097, 0x5223, - 0xf0a1, 0x1b27, - 0xf140, 0x522d, - 0xf152, 0x206d, - 0xf153, 0x2242, - 0xf154, 0x1f02, - 0xf155, 0x523f, - 0xf157, 0x2183, - 0xf158, 0x5241, - 0xf159, 0x1e85, - 0xf15a, 0x21e9, - 0xf15b, 0x5242, - 0xf167, 0x1e57, - 0xf168, 0x524e, - 0xf176, 0x22a5, - 0xf177, 0x2407, - 0xf178, 0x1fca, - 0xf179, 0x525c, - 0xf17a, 0x2402, - 0xf17b, 0x1f82, - 0xf17c, 0x525d, - 0xf17e, 0x2408, - 0xf180, 0x2404, - 0xf181, 0x525f, - 0xf182, 0x2131, - 0xf183, 0x5260, - 0xf184, 0x2184, - 0xf185, 0x5261, - 0xf186, 0x2403, - 0xf187, 0x5262, - 0xf188, 0x206e, - 0xf189, 0x240b, - 0xf18a, 0x5263, - 0xf194, 0x1f3f, - 0xf195, 0x526d, - 0xf198, 0x2067, - 0xf199, 0x5270, - 0xf1a1, 0x1b85, - 0xf240, 0x5278, - 0xf245, 0x1fd7, - 0xf246, 0x527d, - 0xf247, 0x1e83, - 0xf248, 0x527e, - 0xf24b, 0x240f, - 0xf24c, 0x5281, - 0xf253, 0x240e, - 0xf254, 0x20c7, - 0xf255, 0x240d, - 0xf256, 0x5288, - 0xf25c, 0x2412, - 0xf25d, 0x528e, - 0xf25f, 0x20b7, - 0xf260, 0x5290, - 0xf271, 0x23f0, - 0xf272, 0x52a1, - 0xf273, 0x2411, - 0xf274, 0x2414, - 0xf275, 0x52a2, - 0xf276, 0x2170, - 0xf277, 0x52a3, - 0xf27c, 0x2405, - 0xf27d, 0x210c, - 0xf27e, 0x2415, - 0xf280, 0x52a8, - 0xf285, 0x2066, - 0xf286, 0x52ad, - 0xf287, 0x2352, - 0xf288, 0x2413, - 0xf289, 0x2410, - 0xf28a, 0x2416, - 0xf28c, 0x20f1, - 0xf28d, 0x52ae, - 0xf291, 0x240a, - 0xf292, 0x52b2, - 0xf294, 0x2409, - 0xf295, 0x52b4, - 0xf296, 0x2418, - 0xf297, 0x52b5, - 0xf29c, 0x1fa7, - 0xf29d, 0x52ba, - 0xf29e, 0x21fc, - 0xf29f, 0x52bb, - 0xf2a1, 0x1be3, - 0xf340, 0x1fc1, - 0xf341, 0x2406, - 0xf342, 0x52bd, - 0xf345, 0x229c, - 0xf346, 0x52c0, - 0xf348, 0x204e, - 0xf349, 0x52c2, - 0xf34a, 0x241a, - 0xf34b, 0x2419, - 0xf34c, 0x52c3, - 0xf350, 0x240c, - 0xf351, 0x52c7, - 0xf361, 0x1e29, - 0xf362, 0x52d7, - 0xf374, 0x2661, - 0xf375, 0x52e9, - 0xf376, 0x26a4, - 0xf377, 0x2174, - 0xf378, 0x2663, - 0xf379, 0x2662, - 0xf37a, 0x52ea, - 0xf380, 0x52ef, - 0xf38c, 0x2675, - 0xf38d, 0x52fb, - 0xf3a0, 0x214c, - 0xf3a1, 0x1c41, - 0xf440, 0x530e, - 0xf445, 0x267a, - 0xf446, 0x5313, - 0xf450, 0x26a0, - 0xf451, 0x531d, - 0xf457, 0x2668, - 0xf458, 0x5323, - 0xf459, 0x1ed0, - 0xf45a, 0x5324, - 0xf45b, 0x2096, - 0xf45c, 0x5325, - 0xf45d, 0x23cc, - 0xf45e, 0x5326, - 0xf462, 0x23c8, - 0xf463, 0x532a, - 0xf464, 0x223e, - 0xf465, 0x532b, - 0xf475, 0x2665, - 0xf476, 0x533b, - 0xf47c, 0x2664, - 0xf47d, 0x5341, - 0xf47e, 0x2239, - 0xf480, 0x5342, - 0xf494, 0x204a, - 0xf495, 0x5356, - 0xf499, 0x261f, - 0xf49a, 0x535a, - 0xf49c, 0x261e, - 0xf49d, 0x535c, - 0xf4a1, 0x1c9f, - 0xf540, 0x5360, - 0xf545, 0x2620, - 0xf546, 0x5365, - 0xf547, 0x2621, - 0xf548, 0x5366, - 0xf552, 0x2622, - 0xf553, 0x5370, - 0xf554, 0x2627, - 0xf555, 0x1e39, - 0xf556, 0x2625, - 0xf557, 0x5371, - 0xf55e, 0x2629, - 0xf55f, 0x5378, - 0xf561, 0x262e, - 0xf562, 0x262b, - 0xf563, 0x537a, - 0xf56e, 0x262a, - 0xf56f, 0x262d, - 0xf570, 0x5385, - 0xf571, 0x2628, - 0xf572, 0x21b9, - 0xf573, 0x5386, - 0xf580, 0x5392, - 0xf585, 0x2636, - 0xf586, 0x2630, - 0xf587, 0x5397, - 0xf58c, 0x2638, - 0xf58d, 0x539c, - 0xf58e, 0x200d, - 0xf58f, 0x2637, - 0xf590, 0x539d, - 0xf599, 0x2645, - 0xf59a, 0x53a6, - 0xf59b, 0x263a, - 0xf59c, 0x53a7, - 0xf5a0, 0x2643, - 0xf5a1, 0x1cfd, - 0xf640, 0x53ab, - 0xf641, 0x2640, - 0xf642, 0x53ac, - 0xf645, 0x263d, - 0xf646, 0x2641, - 0xf647, 0x53af, - 0xf648, 0x263e, - 0xf649, 0x53b0, - 0xf64b, 0x263f, - 0xf64c, 0x1fc0, - 0xf64d, 0x53b2, - 0xf64e, 0x263b, - 0xf650, 0x53b3, - 0xf654, 0x2642, - 0xf655, 0x53b7, - 0xf658, 0x2644, - 0xf659, 0x53ba, - 0xf661, 0x2639, - 0xf662, 0x53c2, - 0xf663, 0x264c, - 0xf664, 0x53c3, - 0xf66c, 0x2647, - 0xf66d, 0x264b, - 0xf66e, 0x53cb, - 0xf671, 0x2649, - 0xf672, 0x53ce, - 0xf674, 0x2648, - 0xf675, 0x53d0, - 0xf676, 0x264a, - 0xf677, 0x2108, - 0xf678, 0x53d1, - 0xf680, 0x53d8, - 0xf685, 0x264d, - 0xf686, 0x53dd, - 0xf688, 0x2634, - 0xf689, 0x53df, - 0xf68a, 0x2651, - 0xf68b, 0x53e0, - 0xf68d, 0x2650, - 0xf68e, 0x2652, - 0xf68f, 0x53e2, - 0xf692, 0x264f, - 0xf693, 0x53e5, - 0xf696, 0x2632, - 0xf697, 0x264e, - 0xf698, 0x2653, - 0xf699, 0x53e8, - 0xf69a, 0x2657, - 0xf69b, 0x53e9, - 0xf69c, 0x2635, - 0xf69d, 0x53ea, - 0xf69e, 0x2633, - 0xf69f, 0x53eb, - 0xf6a0, 0x2656, - 0xf6a1, 0x1d5b, - 0xf740, 0x53ec, - 0xf742, 0x2654, - 0xf743, 0x53ee, - 0xf749, 0x2658, - 0xf74a, 0x53f4, - 0xf74c, 0x2655, - 0xf74d, 0x1e4d, - 0xf74e, 0x53f6, - 0xf756, 0x265b, - 0xf757, 0x53fe, - 0xf758, 0x265a, - 0xf759, 0x53ff, - 0xf75a, 0x2659, - 0xf75b, 0x202e, - 0xf75c, 0x262f, - 0xf75d, 0x5400, - 0xf761, 0x2646, - 0xf762, 0x5404, - 0xf763, 0x2626, - 0xf764, 0x5405, - 0xf76b, 0x265c, - 0xf76c, 0x540c, - 0xf771, 0x262c, - 0xf772, 0x5411, - 0xf77c, 0x2623, - 0xf77d, 0x541b, - 0xf77e, 0x2631, - 0xf780, 0x541c, - 0xf7a1, 0x1db9, - 0xf840, 0x543d, - 0xf842, 0x209c, - 0xf843, 0x543f, - 0xf846, 0x2580, - 0xf847, 0x5442, - 0xf849, 0x22dc, - 0xf84a, 0x5444, - 0xf850, 0x1f05, - 0xf851, 0x208b, - 0xf852, 0x544a, - 0xf853, 0x2581, - 0xf854, 0x544b, - 0xf863, 0x2583, - 0xf864, 0x2582, - 0xf865, 0x545a, - 0xf866, 0x21ee, - 0xf867, 0x545b, - 0xf872, 0x2182, - 0xf873, 0x5466, - 0xf878, 0x2243, - 0xf879, 0x546b, - 0xf87a, 0x2587, - 0xf87b, 0x546c, - 0xf87c, 0x2588, - 0xf87d, 0x546d, - 0xf880, 0x546f, - 0xf881, 0x2584, - 0xf882, 0x5470, - 0xf884, 0x21fd, - 0xf885, 0x5472, - 0xf886, 0x21ef, - 0xf887, 0x5473, - 0xf88d, 0x258a, - 0xf88e, 0x258c, - 0xf88f, 0x5479, - 0xf899, 0x1f47, - 0xf89a, 0x5483, - 0xf89d, 0x1f1d, - 0xf89e, 0x5486, - 0xf8a0, 0x258d, - 0xf940, 0x5488, - 0xf94e, 0x1fd0, - 0xf94f, 0x2592, - 0xf950, 0x258f, - 0xf951, 0x5496, - 0xf959, 0x2594, - 0xf95a, 0x1ee0, - 0xf95b, 0x549e, - 0xf95d, 0x2591, - 0xf95e, 0x2595, - 0xf95f, 0x54a0, - 0xf967, 0x2597, - 0xf968, 0x54a8, - 0xf969, 0x20b6, - 0xf96a, 0x54a9, - 0xf96c, 0x2598, - 0xf96d, 0x54ab, - 0xf96f, 0x20f6, - 0xf970, 0x54ad, - 0xf980, 0x54bc, - 0xf985, 0x2585, - 0xf986, 0x54c1, - 0xf987, 0x2599, - 0xf988, 0x54c2, - 0xf991, 0x2596, - 0xf992, 0x54cb, - 0xf996, 0x259a, - 0xf997, 0x54cf, - 0xf998, 0x259b, - 0xf999, 0x54d0, - 0xfa40, 0x54d8, - 0xfa42, 0x259d, - 0xfa43, 0x54da, - 0xfa46, 0x259e, - 0xfa47, 0x54dd, - 0xfa4c, 0x234c, - 0xfa4d, 0x54e2, - 0xfa51, 0x1f44, - 0xfa52, 0x54e6, - 0xfa58, 0x2660, - 0xfa59, 0x25a0, - 0xfa5a, 0x54ec, - 0xfa5d, 0x259c, - 0xfa5e, 0x54ef, - 0xfa5f, 0x259f, - 0xfa60, 0x54f0, - 0xfa61, 0x1f6c, - 0xfa62, 0x54f1, - 0xfa70, 0x25a2, - 0xfa71, 0x54ff, - 0xfa74, 0x20ae, - 0xfa75, 0x5502, - 0xfa76, 0x258b, - 0xfa77, 0x25a3, - 0xfa78, 0x5503, - 0xfa80, 0x550a, - 0xfa83, 0x2589, - 0xfa84, 0x25a5, - 0xfa85, 0x550d, - 0xfa8d, 0x25a4, - 0xfa8e, 0x5515, - 0xfa90, 0x25a6, - 0xfa91, 0x2593, - 0xfa92, 0x5517, - 0xfa96, 0x25a7, - 0xfa97, 0x2222, - 0xfa98, 0x25a9, - 0xfa99, 0x551b, - 0xfb40, 0x5523, - 0xfb49, 0x25a8, - 0xfb4a, 0x552c, - 0xfb52, 0x2586, - 0xfb53, 0x5534, - 0xfb57, 0x25a1, - 0xfb58, 0x25aa, - 0xfb59, 0x5538, - 0xfb5a, 0x2590, - 0xfb5b, 0x258e, - 0xfb5c, 0x5539, - 0xfb75, 0x2688, - 0xfb76, 0x5552, - 0xfb79, 0x269e, - 0xfb7a, 0x25fb, - 0xfb7b, 0x5555, - 0xfb7c, 0x1f8c, - 0xfb7d, 0x21f4, - 0xfb7e, 0x5556, - 0xfb80, 0x5557, - 0xfb90, 0x200f, - 0xfb91, 0x5567, - 0xfb9c, 0x2071, - 0xfb9d, 0x5572, - 0xfb9f, 0x25f7, - 0xfba0, 0x5574, - 0xfc40, 0x5575, - 0xfc44, 0x2696, - 0xfc45, 0x5579, - 0xfc49, 0x268f, - 0xfc4a, 0x557d, - 0xfc5a, 0x22da, - 0xfc5b, 0x558d, - 0xfc63, 0x1ec1, - 0xfc64, 0x5595, - 0xfc68, 0x1eb3, - 0xfc69, 0x5599, - 0xfc6f, 0x266a, - 0xfc70, 0x559f, - 0xfc71, 0x268a, - 0xfc72, 0x55a0, - 0xfc74, 0x2669, - 0xfc75, 0x55a2, - 0xfc77, 0x2618, - 0xfc79, 0x55a4, - 0xfc80, 0x55aa, - 0xfc83, 0x261a, - 0xfc84, 0x55ad, - 0xfc8a, 0x2673, - 0xfc8b, 0x55b3, - 0xfd40, 0x55c9, - 0xfd52, 0x20c6, - 0xfd53, 0x226b, - 0xfd54, 0x55db, - 0xfd57, 0x24d3, - 0xfd58, 0x1e86, - 0xfd59, 0x55de, - 0xfd5a, 0x260f, - 0xfd5b, 0x55df, - 0xfd5f, 0x2611, - 0xfd60, 0x55e3, - 0xfd62, 0x2613, - 0xfd63, 0x55e5, - 0xfd65, 0x2610, - 0xfd66, 0x2612, - 0xfd67, 0x2030, - 0xfd68, 0x55e7, - 0xfd69, 0x2671, - 0xfd6a, 0x55e8, - 0xfd6c, 0x2614, - 0xfd6d, 0x55ea, - 0xfd70, 0x2616, - 0xfd71, 0x55ed, - 0xfd72, 0x2615, - 0xfd73, 0x55ee, - 0xfd78, 0x20f2, - 0xfd79, 0x55f3, - 0xfd7d, 0x2617, - 0xfd7e, 0x55f7, - 0xfd80, 0x55f8, - 0xfd88, 0x2037, - 0xfd89, 0x5600, - 0xfd8b, 0x20b3, - 0xfd8c, 0x5602, - 0xfd8f, 0x1f22, - 0xfd90, 0x24ed, - 0xfd91, 0x5605, - 0xfd94, 0x1f34, - 0xfd95, 0x5608, - 0xfd9d, 0x0a02, - 0xfd9e, 0x40d3, - 0xfd9f, 0x200c, - 0xfda0, 0x5083, - 0xfe40, 0x1259, - 0xfe41, 0x5610, - 0xfe80, 0x564e, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 gb12GBKEUCHEnc16 = { - 0, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1e24, 0x032e, 0x032f, 0x0330, 0x0331, 0x0332, 0x0333, 0x0334, - 0x0335, 0x0336, 0x0337, 0x0338, 0x0339, 0x033a, 0x033b, 0x033c, - 0x033d, 0x033e, 0x033f, 0x0340, 0x0341, 0x0342, 0x0343, 0x0344, - 0x0345, 0x0346, 0x0347, 0x0348, 0x0349, 0x034a, 0x034b, 0x034c, - 0x034d, 0x034e, 0x034f, 0x0350, 0x0351, 0x0352, 0x0353, 0x0354, - 0x0355, 0x0356, 0x0357, 0x0358, 0x0359, 0x035a, 0x035b, 0x035c, - 0x035d, 0x035e, 0x035f, 0x0360, 0x0361, 0x0362, 0x0363, 0x0364, - 0x0365, 0x0366, 0x0367, 0x0368, 0x0369, 0x036a, 0x036b, 0x036c, - 0x036d, 0x036e, 0x036f, 0x0370, 0x0371, 0x0372, 0x0373, 0x0374, - 0x0375, 0x0376, 0x0377, 0x0378, 0x0379, 0x037a, 0x037b, 0x037c, - 0x037d, 0x037e, 0x037f, 0x0380, 0x0381, 0x0382, 0x0383, 0x0384, - 0x0385, 0x0386, 0x0387, 0x0388, 0x0389, 0x038a, 0x038b, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - gb12GBKEUCHMap2, 4071 -}; - -static Gushort gb12GBKEUCVMap2[8182] = { - 0x0000, 0x0000, - 0x8140, 0x2758, - 0x8179, 0x2059, - 0x817a, 0x2791, - 0x8180, 0x2796, - 0x8186, 0x21f1, - 0x8187, 0x279c, - 0x81ed, 0x1ff2, - 0x81ee, 0x2802, - 0x81f6, 0x205d, - 0x81f7, 0x280a, - 0x8240, 0x2812, - 0x8253, 0x269c, - 0x8254, 0x2825, - 0x8262, 0x21b5, - 0x8263, 0x2833, - 0x8274, 0x22cc, - 0x8275, 0x2844, - 0x827a, 0x2016, - 0x827b, 0x2849, - 0x827d, 0x1e62, - 0x827e, 0x284b, - 0x8280, 0x1f20, - 0x8281, 0x284c, - 0x8283, 0x207f, - 0x8284, 0x284e, - 0x8290, 0x205c, - 0x8291, 0x285a, - 0x82a5, 0x2194, - 0x82a6, 0x286e, - 0x82c8, 0x1e65, - 0x82c9, 0x2281, - 0x82ca, 0x2890, - 0x82e1, 0x22cd, - 0x82e2, 0x28a7, - 0x82e3, 0x210a, - 0x82e4, 0x1e3e, - 0x82e5, 0x28a8, - 0x82ed, 0x267f, - 0x82ee, 0x28b0, - 0x82f2, 0x222e, - 0x82f3, 0x28b4, - 0x82f7, 0x1e96, - 0x82f8, 0x22cb, - 0x82f9, 0x226c, - 0x82fa, 0x28b8, - 0x82fb, 0x2117, - 0x82fc, 0x28b9, - 0x8340, 0x28bc, - 0x8341, 0x20e8, - 0x8342, 0x28bd, - 0x8345, 0x22d4, - 0x8346, 0x28c0, - 0x8348, 0x1fb9, - 0x8349, 0x28c2, - 0x834c, 0x22d8, - 0x834d, 0x28c5, - 0x8353, 0x20df, - 0x8354, 0x28cb, - 0x8357, 0x20c2, - 0x8358, 0x28ce, - 0x835e, 0x2195, - 0x835f, 0x28d4, - 0x8365, 0x1fac, - 0x8366, 0x22d3, - 0x8367, 0x28da, - 0x8372, 0x1f81, - 0x8373, 0x28e5, - 0x8378, 0x2210, - 0x8379, 0x28ea, - 0x837a, 0x22cf, - 0x837b, 0x28eb, - 0x837c, 0x2213, - 0x837d, 0x28ec, - 0x837e, 0x1fe4, - 0x8380, 0x1f90, - 0x8381, 0x28ed, - 0x8386, 0x22d6, - 0x8387, 0x28f2, - 0x8389, 0x22d0, - 0x838a, 0x22ce, - 0x838b, 0x28f4, - 0x838d, 0x2681, - 0x838e, 0x28f6, - 0x8394, 0x1e76, - 0x8395, 0x28fc, - 0x839e, 0x2231, - 0x839f, 0x2905, - 0x83a6, 0x1e93, - 0x83a7, 0x290c, - 0x83ab, 0x22d2, - 0x83ac, 0x2910, - 0x83ae, 0x22d7, - 0x83af, 0x22d5, - 0x83b0, 0x22d1, - 0x83b1, 0x2912, - 0x83ba, 0x1ee5, - 0x83bb, 0x291b, - 0x83c9, 0x2025, - 0x83ca, 0x2929, - 0x83f6, 0x1ecf, - 0x83f7, 0x2955, - 0x8440, 0x295d, - 0x8450, 0x1fd9, - 0x8451, 0x296d, - 0x8471, 0x22c8, - 0x8472, 0x298d, - 0x8474, 0x2263, - 0x8475, 0x298f, - 0x8477, 0x2683, - 0x8478, 0x2991, - 0x8480, 0x2998, - 0x8482, 0x1f17, - 0x8483, 0x299a, - 0x848e, 0x1f2b, - 0x848f, 0x29a5, - 0x8492, 0x22ca, - 0x8493, 0x1e99, - 0x8494, 0x29a8, - 0x849d, 0x1f4f, - 0x849e, 0x29b1, - 0x84a1, 0x1fcf, - 0x84a2, 0x2036, - 0x84a3, 0x1f3a, - 0x84a4, 0x29b4, - 0x84a5, 0x22c9, - 0x84a6, 0x1f99, - 0x84a7, 0x29b5, - 0x84a9, 0x1f75, - 0x84aa, 0x29b7, - 0x84c5, 0x1fbe, - 0x84c6, 0x29d2, - 0x84d3, 0x1ecd, - 0x84d4, 0x29df, - 0x84d5, 0x21a9, - 0x84d6, 0x29e0, - 0x84d7, 0x21e6, - 0x84d8, 0x29e1, - 0x84d9, 0x2127, - 0x84da, 0x2003, - 0x84db, 0x29e2, - 0x84dd, 0x2132, - 0x84de, 0x29e4, - 0x84ea, 0x2323, - 0x84eb, 0x29f0, - 0x84ee, 0x2011, - 0x84ef, 0x29f3, - 0x84f1, 0x20f5, - 0x84f2, 0x29f5, - 0x8540, 0x2a02, - 0x8551, 0x22c5, - 0x8552, 0x1f5e, - 0x8553, 0x2a13, - 0x8554, 0x22c6, - 0x8555, 0x2a14, - 0x855e, 0x20ef, - 0x855f, 0x2a1d, - 0x8566, 0x21d0, - 0x8567, 0x2a24, - 0x8580, 0x2a3c, - 0x8587, 0x22c1, - 0x8588, 0x2a43, - 0x858b, 0x1e64, - 0x858c, 0x2a46, - 0x8592, 0x21f9, - 0x8593, 0x2a4c, - 0x8596, 0x2010, - 0x8597, 0x2a4f, - 0x8598, 0x22c2, - 0x8599, 0x2a50, - 0x85a2, 0x1e5a, - 0x85a3, 0x2a59, - 0x85b2, 0x1ea2, - 0x85b3, 0x2a68, - 0x8640, 0x2ab4, - 0x864a, 0x236d, - 0x864b, 0x2abe, - 0x8654, 0x2247, - 0x8655, 0x2ac7, - 0x8668, 0x236c, - 0x8669, 0x2ada, - 0x8680, 0x2af0, - 0x8696, 0x219c, - 0x8697, 0x2b06, - 0x8699, 0x20c9, - 0x869a, 0x2b08, - 0x86a1, 0x21f0, - 0x86a2, 0x2b0f, - 0x86ca, 0x210b, - 0x86cb, 0x2b37, - 0x86cc, 0x20de, - 0x86cd, 0x2b38, - 0x86ce, 0x1eaa, - 0x86cf, 0x2b39, - 0x86d1, 0x222c, - 0x86d2, 0x2b3b, - 0x86dc, 0x20d8, - 0x86dd, 0x22c0, - 0x86de, 0x2b45, - 0x86e1, 0x206f, - 0x86e2, 0x2b48, - 0x86e8, 0x21a1, - 0x86e9, 0x2b4e, - 0x86ee, 0x2379, - 0x86ef, 0x2b53, - 0x86f4, 0x2372, - 0x86f5, 0x2b58, - 0x8740, 0x216a, - 0x8741, 0x2b62, - 0x8744, 0x237c, - 0x8745, 0x2b65, - 0x8749, 0x20b0, - 0x874a, 0x2b69, - 0x874b, 0x237a, - 0x874c, 0x1e74, - 0x874d, 0x2b6a, - 0x874f, 0x2377, - 0x8750, 0x2b6c, - 0x8757, 0x1f4c, - 0x8758, 0x2b73, - 0x875a, 0x2378, - 0x875b, 0x21cf, - 0x875c, 0x2368, - 0x875d, 0x2b75, - 0x875e, 0x2371, - 0x875f, 0x2b76, - 0x8760, 0x2369, - 0x8761, 0x2b77, - 0x8766, 0x2674, - 0x8767, 0x2b7c, - 0x877a, 0x236f, - 0x877b, 0x2b8f, - 0x877d, 0x2370, - 0x877e, 0x2b91, - 0x8780, 0x2b92, - 0x8781, 0x2376, - 0x8782, 0x2373, - 0x8783, 0x2b93, - 0x8786, 0x237f, - 0x8787, 0x2b96, - 0x8788, 0x2374, - 0x8789, 0x2b97, - 0x878a, 0x20b5, - 0x878b, 0x2b98, - 0x878d, 0x1edb, - 0x878e, 0x2672, - 0x878f, 0x2b9a, - 0x8793, 0x236e, - 0x8794, 0x2b9e, - 0x8798, 0x21b7, - 0x8799, 0x2ba2, - 0x879d, 0x2375, - 0x879e, 0x2ba6, - 0x87a3, 0x2382, - 0x87a4, 0x2bab, - 0x87a7, 0x209e, - 0x87a8, 0x2bae, - 0x87b3, 0x236b, - 0x87b4, 0x2bb9, - 0x87b5, 0x2039, - 0x87b6, 0x2bba, - 0x87bb, 0x269f, - 0x87bc, 0x2bbf, - 0x87bf, 0x237d, - 0x87c0, 0x21f5, - 0x87c1, 0x2bc2, - 0x87c2, 0x2381, - 0x87c3, 0x2bc3, - 0x87ca, 0x237b, - 0x87cb, 0x237e, - 0x87cc, 0x21cc, - 0x87cd, 0x2bca, - 0x87cf, 0x22db, - 0x87d0, 0x2bcc, - 0x87d2, 0x236a, - 0x87d3, 0x2689, - 0x87d4, 0x2bce, - 0x87d5, 0x2697, - 0x87d6, 0x2bcf, - 0x87da, 0x22a1, - 0x87db, 0x2bd3, - 0x87f7, 0x2383, - 0x87f8, 0x1f3d, - 0x87f9, 0x2bef, - 0x87fa, 0x218f, - 0x87fb, 0x2bf0, - 0x8840, 0x2246, - 0x8841, 0x2248, - 0x8842, 0x2bf4, - 0x8844, 0x217e, - 0x8845, 0x2bf6, - 0x8846, 0x2180, - 0x8847, 0x2bf7, - 0x8880, 0x2c2f, - 0x88ba, 0x232a, - 0x88bb, 0x2c69, - 0x88cc, 0x228b, - 0x88cd, 0x2c7a, - 0x88d4, 0x1f85, - 0x88d5, 0x2c81, - 0x88d7, 0x2325, - 0x88d8, 0x2c83, - 0x88df, 0x232c, - 0x88e0, 0x2c8a, - 0x88e5, 0x232e, - 0x88e6, 0x2c8f, - 0x88f2, 0x2205, - 0x88f3, 0x1e38, - 0x88f4, 0x2c9b, - 0x88f6, 0x1e73, - 0x88f7, 0x2c9d, - 0x8940, 0x2ca5, - 0x894b, 0x1fe3, - 0x894c, 0x2339, - 0x894d, 0x2cb0, - 0x894e, 0x232b, - 0x894f, 0x2cb1, - 0x8950, 0x232d, - 0x8951, 0x2cb2, - 0x8954, 0x217f, - 0x8955, 0x2cb5, - 0x895d, 0x21a7, - 0x895e, 0x2cbd, - 0x895f, 0x232f, - 0x8960, 0x2cbe, - 0x896d, 0x1e7d, - 0x896e, 0x2ccb, - 0x8971, 0x20d6, - 0x8972, 0x2cce, - 0x897c, 0x1ec2, - 0x897d, 0x2cd8, - 0x8980, 0x2cda, - 0x898b, 0x22b2, - 0x898c, 0x2ce5, - 0x8999, 0x1edf, - 0x899a, 0x2cf2, - 0x899e, 0x1ef9, - 0x899f, 0x2cf6, - 0x89a6, 0x20d9, - 0x89a7, 0x2cfd, - 0x89a8, 0x1fdd, - 0x89a9, 0x2cfe, - 0x89af, 0x2167, - 0x89b0, 0x2d04, - 0x89ba, 0x21ed, - 0x89bb, 0x2d0e, - 0x89be, 0x2007, - 0x89bf, 0x2326, - 0x89c0, 0x2329, - 0x89c1, 0x2d11, - 0x89c4, 0x1f52, - 0x89c5, 0x203b, - 0x89c6, 0x2328, - 0x89c7, 0x2d14, - 0x89c8, 0x2327, - 0x89c9, 0x2d15, - 0x89ce, 0x1e2b, - 0x89cf, 0x2d1a, - 0x89d1, 0x22ae, - 0x89d2, 0x2d1c, - 0x89d8, 0x1f49, - 0x89d9, 0x2d22, - 0x89db, 0x2138, - 0x89dc, 0x2d24, - 0x89f4, 0x2081, - 0x89f5, 0x2d3c, - 0x8a40, 0x2d46, - 0x8a41, 0x1f7c, - 0x8a42, 0x2d47, - 0x8a59, 0x235b, - 0x8a5a, 0x1ede, - 0x8a5b, 0x2d5e, - 0x8a5c, 0x1fa2, - 0x8a5d, 0x2d5f, - 0x8a5e, 0x1efa, - 0x8a5f, 0x2d60, - 0x8a79, 0x22ad, - 0x8a7a, 0x2d7a, - 0x8a80, 0x2d7f, - 0x8ae4, 0x203f, - 0x8ae5, 0x2de3, - 0x8b40, 0x2dfd, - 0x8b44, 0x1f0e, - 0x8b45, 0x2e01, - 0x8b49, 0x23f9, - 0x8b4a, 0x2e05, - 0x8b7a, 0x23fc, - 0x8b7b, 0x2e35, - 0x8b80, 0x2e39, - 0x8b8c, 0x2069, - 0x8b8d, 0x2e45, - 0x8b9e, 0x23f7, - 0x8b9f, 0x2e56, - 0x8bb3, 0x23f6, - 0x8bb4, 0x2e6a, - 0x8bb9, 0x23fd, - 0x8bba, 0x2e6f, - 0x8bbe, 0x23f8, - 0x8bbf, 0x2e73, - 0x8bc6, 0x23fa, - 0x8bc7, 0x2e7a, - 0x8bc8, 0x23fe, - 0x8bc9, 0x1fa8, - 0x8bca, 0x2e7b, - 0x8bd4, 0x2401, - 0x8bd5, 0x2e85, - 0x8bdc, 0x23ff, - 0x8bdd, 0x2e8c, - 0x8be5, 0x2400, - 0x8be6, 0x2e94, - 0x8beb, 0x2221, - 0x8bec, 0x2e99, - 0x8bf0, 0x2122, - 0x8bf1, 0x2e9d, - 0x8c40, 0x2eab, - 0x8c44, 0x23fb, - 0x8c45, 0x2eaf, - 0x8c4f, 0x215a, - 0x8c50, 0x2eb9, - 0x8c57, 0x21e5, - 0x8c58, 0x2ec0, - 0x8c5c, 0x2057, - 0x8c5d, 0x2ec4, - 0x8c80, 0x2ee6, - 0x8c8b, 0x20e5, - 0x8c8c, 0x2ef1, - 0x8c8d, 0x212f, - 0x8c8e, 0x20a3, - 0x8c8f, 0x2121, - 0x8c90, 0x2ef2, - 0x8c91, 0x21d4, - 0x8c92, 0x1fe5, - 0x8c93, 0x2ef3, - 0x8c99, 0x1e8a, - 0x8c9a, 0x1e37, - 0x8c9b, 0x2ef9, - 0x8ca2, 0x1f9e, - 0x8ca3, 0x22a6, - 0x8ca4, 0x21e8, - 0x8ca5, 0x2f00, - 0x8ca6, 0x1eda, - 0x8ca7, 0x1eb9, - 0x8ca8, 0x2f01, - 0x8cc0, 0x235c, - 0x8cc1, 0x2f19, - 0x8cd2, 0x2050, - 0x8cd3, 0x1e67, - 0x8cd4, 0x2f2a, - 0x8cd5, 0x23f4, - 0x8cd6, 0x2f2b, - 0x8cd9, 0x213e, - 0x8cda, 0x2f2e, - 0x8cf9, 0x1f16, - 0x8cfa, 0x2f4d, - 0x8d40, 0x2f52, - 0x8d73, 0x2389, - 0x8d74, 0x2f85, - 0x8d75, 0x1eb7, - 0x8d76, 0x2f86, - 0x8d7b, 0x21b4, - 0x8d7c, 0x2f8b, - 0x8d80, 0x2f8e, - 0x8d88, 0x238f, - 0x8d89, 0x2f96, - 0x8d8f, 0x1f1a, - 0x8d90, 0x2f9c, - 0x8d9e, 0x238b, - 0x8d9f, 0x2faa, - 0x8db9, 0x238a, - 0x8dba, 0x2fc4, - 0x8de2, 0x2391, - 0x8de3, 0x2fec, - 0x8de4, 0x2271, - 0x8de5, 0x2fed, - 0x8de7, 0x2388, - 0x8de8, 0x2fef, - 0x8df7, 0x238e, - 0x8df8, 0x2ffe, - 0x8dfe, 0x238d, - 0x8e40, 0x3004, - 0x8e46, 0x238c, - 0x8e47, 0x300a, - 0x8e56, 0x2390, - 0x8e57, 0x3019, - 0x8e58, 0x2033, - 0x8e59, 0x301a, - 0x8e5a, 0x223c, - 0x8e5b, 0x301b, - 0x8e68, 0x1fe9, - 0x8e69, 0x3028, - 0x8e6e, 0x2055, - 0x8e6f, 0x302d, - 0x8e70, 0x2392, - 0x8e71, 0x302e, - 0x8e80, 0x2324, - 0x8e81, 0x303c, - 0x8e9b, 0x2143, - 0x8e9c, 0x3056, - 0x8e9f, 0x2129, - 0x8ea0, 0x3059, - 0x8ea4, 0x2277, - 0x8ea5, 0x305d, - 0x8ea7, 0x1ea7, - 0x8ea8, 0x305f, - 0x8eac, 0x2285, - 0x8ead, 0x3063, - 0x8eae, 0x2384, - 0x8eaf, 0x3064, - 0x8ebd, 0x2387, - 0x8ebe, 0x2386, - 0x8ebf, 0x3072, - 0x8ec3, 0x2290, - 0x8ec4, 0x3076, - 0x8ec5, 0x1e44, - 0x8ec6, 0x3077, - 0x8ecd, 0x1e32, - 0x8ece, 0x2385, - 0x8ecf, 0x307e, - 0x8ed6, 0x1f13, - 0x8ed7, 0x1f73, - 0x8ed8, 0x3085, - 0x8eec, 0x1fe0, - 0x8eed, 0x3099, - 0x8f40, 0x30ab, - 0x8f52, 0x2087, - 0x8f53, 0x1e78, - 0x8f54, 0x23ae, - 0x8f55, 0x1ef6, - 0x8f56, 0x1f31, - 0x8f57, 0x30bd, - 0x8f5d, 0x2045, - 0x8f5e, 0x30c3, - 0x8f64, 0x2178, - 0x8f65, 0x30c9, - 0x8f80, 0x30e3, - 0x8f86, 0x23f5, - 0x8f87, 0x30e9, - 0x8f88, 0x2275, - 0x8f89, 0x30ea, - 0x8f95, 0x266e, - 0x8f96, 0x30f6, - 0x8f97, 0x1eb0, - 0x8f98, 0x30f7, - 0x8f9b, 0x2083, - 0x8f9c, 0x30fa, - 0x8f9d, 0x2188, - 0x8f9e, 0x30fb, - 0x8fa1, 0x267c, - 0x8fa2, 0x30fe, - 0x8fbd, 0x1fc5, - 0x8fbe, 0x3119, - 0x8fc4, 0x1ea1, - 0x8fc5, 0x311f, - 0x8fc6, 0x2393, - 0x8fc7, 0x3120, - 0x8fcd, 0x1f0b, - 0x8fce, 0x3126, - 0x8fd8, 0x1e7c, - 0x8fd9, 0x3130, - 0x9040, 0x3156, - 0x9080, 0x3195, - 0x909d, 0x23b4, - 0x909e, 0x207e, - 0x909f, 0x31b2, - 0x90ba, 0x1ee3, - 0x90bb, 0x31cd, - 0x90c0, 0x2095, - 0x90c1, 0x23bb, - 0x90c2, 0x31d2, - 0x90c5, 0x23b9, - 0x90c6, 0x31d5, - 0x90db, 0x1e28, - 0x90dc, 0x23bd, - 0x90dd, 0x31ea, - 0x90ed, 0x23b5, - 0x90ee, 0x31fa, - 0x90f0, 0x23ba, - 0x90f1, 0x31fc, - 0x90f7, 0x23b3, - 0x90f8, 0x3202, - 0x9140, 0x3209, - 0x9142, 0x2162, - 0x9143, 0x320b, - 0x914b, 0x1e5e, - 0x914c, 0x3213, - 0x914d, 0x1e5d, - 0x914e, 0x3214, - 0x9151, 0x23b7, - 0x9152, 0x3217, - 0x9154, 0x1f2f, - 0x9155, 0x24df, - 0x9156, 0x3219, - 0x9159, 0x23b2, - 0x915a, 0x214e, - 0x915b, 0x321c, - 0x915d, 0x2052, - 0x915e, 0x321e, - 0x9161, 0x23bc, - 0x9162, 0x3221, - 0x9163, 0x20eb, - 0x9164, 0x3222, - 0x916e, 0x2232, - 0x916f, 0x322c, - 0x9176, 0x1e3f, - 0x9177, 0x3233, - 0x917a, 0x201b, - 0x917b, 0x20bc, - 0x917c, 0x23be, - 0x917d, 0x3236, - 0x9180, 0x3238, - 0x9184, 0x1eae, - 0x9185, 0x323c, - 0x918d, 0x1efb, - 0x918e, 0x3244, - 0x9191, 0x2089, - 0x9192, 0x3247, - 0x9193, 0x23b1, - 0x9194, 0x3248, - 0x9197, 0x21c4, - 0x9198, 0x324b, - 0x919b, 0x2214, - 0x919c, 0x324e, - 0x91a9, 0x1fde, - 0x91aa, 0x2223, - 0x91ab, 0x23b6, - 0x91ac, 0x325b, - 0x91ba, 0x268c, - 0x91bb, 0x24de, - 0x91bc, 0x3269, - 0x91bf, 0x24e0, - 0x91c0, 0x326c, - 0x91c3, 0x23b8, - 0x91c4, 0x326f, - 0x91cd, 0x1e81, - 0x91ce, 0x3278, - 0x91d0, 0x1ffe, - 0x91d1, 0x1f51, - 0x91d2, 0x21e1, - 0x91d3, 0x327a, - 0x91d4, 0x23b0, - 0x91d5, 0x327b, - 0x91d6, 0x1fce, - 0x91d7, 0x327c, - 0x91d8, 0x211e, - 0x91d9, 0x2021, - 0x91da, 0x327d, - 0x91df, 0x24e1, - 0x91e0, 0x3282, - 0x91e2, 0x24a3, - 0x91e3, 0x3284, - 0x91ea, 0x24a4, - 0x91eb, 0x328b, - 0x91f0, 0x2273, - 0x91f1, 0x3290, - 0x91f2, 0x21b0, - 0x91f3, 0x3291, - 0x9240, 0x329d, - 0x9280, 0x32dc, - 0x92b6, 0x21d1, - 0x92b7, 0x3312, - 0x92ce, 0x211c, - 0x92cf, 0x3329, - 0x92d0, 0x235d, - 0x92d1, 0x332a, - 0x92d4, 0x2682, - 0x92d5, 0x332d, - 0x92df, 0x210d, - 0x92e0, 0x205a, - 0x92e1, 0x3337, - 0x92fe, 0x1f8d, - 0x9340, 0x3354, - 0x9350, 0x21ff, - 0x9351, 0x3364, - 0x935d, 0x1f58, - 0x935e, 0x3370, - 0x9370, 0x215b, - 0x9371, 0x3382, - 0x9376, 0x1eb6, - 0x9377, 0x3387, - 0x9380, 0x338f, - 0x938c, 0x20db, - 0x938d, 0x339b, - 0x939d, 0x2360, - 0x939e, 0x33ab, - 0x93a5, 0x2361, - 0x93a6, 0x33b2, - 0x93a7, 0x2040, - 0x93a8, 0x33b3, - 0x93b4, 0x228e, - 0x93b5, 0x33bf, - 0x93b8, 0x1fdf, - 0x93b9, 0x33c2, - 0x93bb, 0x235e, - 0x93bc, 0x33c4, - 0x93bd, 0x1e6a, - 0x93be, 0x33c5, - 0x93c6, 0x2002, - 0x93c7, 0x33cd, - 0x93cf, 0x2093, - 0x93d0, 0x33d5, - 0x93d7, 0x235f, - 0x93d8, 0x33dc, - 0x93db, 0x1eac, - 0x93dc, 0x1e54, - 0x93dd, 0x33df, - 0x93e1, 0x1f08, - 0x93e2, 0x33e3, - 0x93e4, 0x20c0, - 0x93e5, 0x2362, - 0x93e6, 0x33e5, - 0x93e9, 0x2160, - 0x93ea, 0x33e8, - 0x93eb, 0x219d, - 0x93ec, 0x1f8e, - 0x93ed, 0x222d, - 0x93ee, 0x33e9, - 0x93ef, 0x2047, - 0x93f0, 0x33ea, - 0x93f1, 0x2262, - 0x93f2, 0x33eb, - 0x93f4, 0x1f67, - 0x93f5, 0x1eb2, - 0x93f6, 0x33ed, - 0x93fa, 0x1ea9, - 0x93fb, 0x33f1, - 0x93fe, 0x1fcc, - 0x9440, 0x33f4, - 0x9444, 0x1f72, - 0x9445, 0x33f8, - 0x944d, 0x2098, - 0x944e, 0x3400, - 0x9450, 0x1e52, - 0x9451, 0x20a4, - 0x9452, 0x1f1c, - 0x9453, 0x228f, - 0x9454, 0x3402, - 0x9455, 0x1fed, - 0x9456, 0x3403, - 0x9458, 0x2365, - 0x9459, 0x3405, - 0x945b, 0x1e2d, - 0x945c, 0x2152, - 0x945d, 0x2366, - 0x945e, 0x3407, - 0x945f, 0x20fa, - 0x9460, 0x3408, - 0x9464, 0x2363, - 0x9465, 0x340c, - 0x9466, 0x209a, - 0x9467, 0x340d, - 0x946e, 0x203c, - 0x946f, 0x3414, - 0x9472, 0x1ff6, - 0x9473, 0x3417, - 0x9474, 0x2364, - 0x9475, 0x3418, - 0x9476, 0x1e69, - 0x9477, 0x3419, - 0x9478, 0x2367, - 0x9479, 0x341a, - 0x947a, 0x211d, - 0x947b, 0x341b, - 0x9480, 0x2259, - 0x9481, 0x2056, - 0x9482, 0x2163, - 0x9483, 0x341f, - 0x9487, 0x1fa9, - 0x9488, 0x1ffc, - 0x9489, 0x3423, - 0x94a1, 0x1e2e, - 0x94a2, 0x343b, - 0x94b3, 0x1ebc, - 0x94b4, 0x344c, - 0x94b5, 0x2142, - 0x94b6, 0x344d, - 0x94bf, 0x201e, - 0x94c0, 0x1e43, - 0x94c1, 0x3456, - 0x94cc, 0x24d4, - 0x94cd, 0x3461, - 0x94d8, 0x226f, - 0x94d9, 0x346c, - 0x94e0, 0x1ed7, - 0x94e1, 0x3473, - 0x9540, 0x3491, - 0x9572, 0x212d, - 0x9573, 0x34c3, - 0x9580, 0x34cf, - 0x9583, 0x229b, - 0x9584, 0x34d2, - 0x959e, 0x2256, - 0x959f, 0x24a8, - 0x95a0, 0x34ec, - 0x95b3, 0x1e79, - 0x95b4, 0x34ff, - 0x95ba, 0x225a, - 0x95bb, 0x3505, - 0x95cf, 0x24a7, - 0x95d0, 0x3519, - 0x95d1, 0x2686, - 0x95d2, 0x24a6, - 0x95d3, 0x351a, - 0x95d4, 0x21ce, - 0x95d5, 0x351b, - 0x95e1, 0x24a9, - 0x95e2, 0x3527, - 0x95e7, 0x1fe7, - 0x95e8, 0x352c, - 0x95f1, 0x2112, - 0x95f2, 0x3535, - 0x95f8, 0x213c, - 0x95f9, 0x353b, - 0x95fe, 0x1f5c, - 0x9640, 0x3540, - 0x9656, 0x24c4, - 0x9657, 0x3556, - 0x967c, 0x1ecc, - 0x967d, 0x357b, - 0x9680, 0x357d, - 0x9740, 0x35fc, - 0x9767, 0x246a, - 0x9768, 0x3623, - 0x976c, 0x2175, - 0x976d, 0x3627, - 0x976e, 0x246d, - 0x976f, 0x3628, - 0x9780, 0x3638, - 0x9796, 0x246b, - 0x9797, 0x225f, - 0x9798, 0x364e, - 0x979d, 0x1ece, - 0x979e, 0x3653, - 0x97a3, 0x2272, - 0x97a4, 0x3658, - 0x97bf, 0x2473, - 0x97c0, 0x3673, - 0x97ee, 0x21fe, - 0x97ef, 0x36a1, - 0x97f7, 0x1efe, - 0x97f8, 0x36a9, - 0x9840, 0x36b0, - 0x9845, 0x2475, - 0x9846, 0x36b5, - 0x9849, 0x220a, - 0x984a, 0x36b8, - 0x984f, 0x1f6f, - 0x9850, 0x36bd, - 0x9871, 0x2468, - 0x9872, 0x36de, - 0x9873, 0x2100, - 0x9874, 0x36df, - 0x9880, 0x36ea, - 0x9881, 0x2476, - 0x9882, 0x36eb, - 0x988b, 0x1f27, - 0x988c, 0x20d7, - 0x988d, 0x36f4, - 0x98a0, 0x247c, - 0x98a1, 0x3707, - 0x98aa, 0x1fa1, - 0x98ab, 0x3710, - 0x98b6, 0x22aa, - 0x98b7, 0x2005, - 0x98b8, 0x371b, - 0x98ba, 0x246c, - 0x98bb, 0x371d, - 0x98c7, 0x203e, - 0x98c8, 0x3729, - 0x98cb, 0x1e4c, - 0x98cc, 0x372c, - 0x98d0, 0x213a, - 0x98d1, 0x3730, - 0x98d3, 0x2204, - 0x98d4, 0x3732, - 0x98e3, 0x20c3, - 0x98e4, 0x2140, - 0x98e5, 0x2477, - 0x98e6, 0x3741, - 0x98ef, 0x2474, - 0x98f0, 0x374a, - 0x98f2, 0x20dd, - 0x98f3, 0x374c, - 0x9940, 0x3758, - 0x9943, 0x1f68, - 0x9944, 0x375b, - 0x9945, 0x2185, - 0x9946, 0x375c, - 0x9966, 0x2472, - 0x9967, 0x377c, - 0x996e, 0x1eb5, - 0x996f, 0x3783, - 0x9975, 0x2478, - 0x9976, 0x3789, - 0x997a, 0x1f8b, - 0x997b, 0x2484, - 0x997c, 0x378d, - 0x9980, 0x3790, - 0x9985, 0x2699, - 0x9986, 0x3795, - 0x9989, 0x2482, - 0x998a, 0x3798, - 0x998e, 0x20a1, - 0x998f, 0x379c, - 0x9991, 0x1f92, - 0x9992, 0x379e, - 0x9999, 0x1f38, - 0x999a, 0x37a5, - 0x99a9, 0x2485, - 0x99aa, 0x37b4, - 0x99b0, 0x2480, - 0x99b1, 0x246e, - 0x99b2, 0x37ba, - 0x99b3, 0x247b, - 0x99b4, 0x2486, - 0x99b5, 0x2471, - 0x99b6, 0x37bb, - 0x99bd, 0x2483, - 0x99be, 0x2470, - 0x99bf, 0x37c2, - 0x99c0, 0x2469, - 0x99c1, 0x37c3, - 0x99c2, 0x247f, - 0x99c3, 0x37c4, - 0x99c9, 0x246f, - 0x99ca, 0x37ca, - 0x99ce, 0x2481, - 0x99cf, 0x37ce, - 0x99d1, 0x2220, - 0x99d2, 0x37d0, - 0x99da, 0x1ff5, - 0x99db, 0x37d8, - 0x99e0, 0x20f4, - 0x99e1, 0x37dd, - 0x99e5, 0x247d, - 0x99e6, 0x37e1, - 0x99e8, 0x2479, - 0x99e9, 0x37e3, - 0x99ec, 0x247e, - 0x99ed, 0x37e6, - 0x99f4, 0x247a, - 0x99f5, 0x37ed, - 0x9a40, 0x37f7, - 0x9a4a, 0x20e3, - 0x9a4b, 0x3801, - 0x9a57, 0x20ad, - 0x9a58, 0x380d, - 0x9a65, 0x24cb, - 0x9a66, 0x381a, - 0x9a67, 0x1f53, - 0x9a68, 0x381b, - 0x9a71, 0x2159, - 0x9a72, 0x3824, - 0x9a76, 0x2013, - 0x9a77, 0x1f33, - 0x9a78, 0x3828, - 0x9a80, 0x382f, - 0x9a88, 0x1e5c, - 0x9a89, 0x3837, - 0x9a8c, 0x2488, - 0x9a8d, 0x383a, - 0x9a91, 0x2487, - 0x9a92, 0x383e, - 0x9a97, 0x248a, - 0x9a98, 0x3843, - 0x9a9a, 0x2489, - 0x9a9b, 0x248b, - 0x9a9c, 0x3845, - 0x9a9e, 0x1f83, - 0x9a9f, 0x3847, - 0x9aa2, 0x210f, - 0x9aa3, 0x1fdb, - 0x9aa4, 0x384a, - 0x9aaa, 0x20af, - 0x9aab, 0x3850, - 0x9ad0, 0x24c0, - 0x9ad1, 0x3875, - 0x9ad6, 0x226d, - 0x9ad7, 0x387a, - 0x9ada, 0x24c1, - 0x9adb, 0x387d, - 0x9ae2, 0x20ca, - 0x9ae3, 0x3884, - 0x9ae4, 0x20e7, - 0x9ae5, 0x24c2, - 0x9ae6, 0x3885, - 0x9b40, 0x389e, - 0x9b80, 0x38dd, - 0x9bd1, 0x23dc, - 0x9bd2, 0x392e, - 0x9bdc, 0x23db, - 0x9bdd, 0x3938, - 0x9c40, 0x395a, - 0x9c53, 0x205e, - 0x9c54, 0x396d, - 0x9c59, 0x2244, - 0x9c5a, 0x23e2, - 0x9c5b, 0x3972, - 0x9c5c, 0x20d4, - 0x9c5d, 0x3973, - 0x9c75, 0x219f, - 0x9c76, 0x398b, - 0x9c79, 0x1e66, - 0x9c7a, 0x398e, - 0x9c80, 0x3993, - 0x9c86, 0x1f63, - 0x9c87, 0x3999, - 0x9c9d, 0x23dd, - 0x9c9e, 0x39af, - 0x9cab, 0x216b, - 0x9cac, 0x39bc, - 0x9cca, 0x22b5, - 0x9ccb, 0x39da, - 0x9ccf, 0x1f26, - 0x9cd0, 0x39de, - 0x9ce6, 0x1e63, - 0x9ce7, 0x2088, - 0x9ce8, 0x39f4, - 0x9cec, 0x1ebd, - 0x9ced, 0x39f8, - 0x9cee, 0x2341, - 0x9cef, 0x39f9, - 0x9cfb, 0x1f4b, - 0x9cfc, 0x3a05, - 0x9cfe, 0x2292, - 0x9d40, 0x3a07, - 0x9d42, 0x2124, - 0x9d43, 0x3a09, - 0x9d46, 0x2048, - 0x9d47, 0x23e0, - 0x9d48, 0x3a0c, - 0x9d4d, 0x2077, - 0x9d4e, 0x3a11, - 0x9d4f, 0x223a, - 0x9d50, 0x3a12, - 0x9d61, 0x20b1, - 0x9d62, 0x3a23, - 0x9d68, 0x1f41, - 0x9d69, 0x201c, - 0x9d6a, 0x3a29, - 0x9d6e, 0x22b8, - 0x9d6f, 0x3a2d, - 0x9d71, 0x2276, - 0x9d72, 0x3a2f, - 0x9d75, 0x1f9b, - 0x9d76, 0x3a32, - 0x9d7b, 0x1f9f, - 0x9d7c, 0x3a37, - 0x9d7d, 0x25ca, - 0x9d7e, 0x3a38, - 0x9d80, 0x3a39, - 0x9d8a, 0x20be, - 0x9d8b, 0x3a43, - 0x9d8d, 0x1fb4, - 0x9d8e, 0x3a45, - 0x9d91, 0x23d7, - 0x9d92, 0x3a48, - 0x9d99, 0x2105, - 0x9d9a, 0x3a4f, - 0x9da1, 0x23e1, - 0x9da2, 0x1fec, - 0x9da3, 0x3a56, - 0x9da7, 0x23ea, - 0x9da8, 0x3a5a, - 0x9dac, 0x23e3, - 0x9dad, 0x210e, - 0x9dae, 0x3a5e, - 0x9db2, 0x1fa6, - 0x9db3, 0x2004, - 0x9db4, 0x3a62, - 0x9dbe, 0x1f9d, - 0x9dbf, 0x3a6c, - 0x9dc6, 0x23e5, - 0x9dc7, 0x3a73, - 0x9dc9, 0x2264, - 0x9dca, 0x3a75, - 0x9dcd, 0x24e2, - 0x9dce, 0x3a78, - 0x9dd2, 0x23de, - 0x9dd3, 0x3a7c, - 0x9dd5, 0x1ec4, - 0x9dd6, 0x3a7e, - 0x9de1, 0x22b6, - 0x9de2, 0x20a9, - 0x9de3, 0x3a89, - 0x9df1, 0x212b, - 0x9df2, 0x3a97, - 0x9df4, 0x20a5, - 0x9df5, 0x3a99, - 0x9df7, 0x268b, - 0x9df8, 0x3a9b, - 0x9dfa, 0x1f76, - 0x9dfb, 0x3a9d, - 0x9dfd, 0x216d, - 0x9dfe, 0x3a9f, - 0x9e40, 0x3aa0, - 0x9e45, 0x2001, - 0x9e46, 0x3aa5, - 0x9e48, 0x2191, - 0x9e49, 0x1e50, - 0x9e4a, 0x3aa7, - 0x9e52, 0x1f9c, - 0x9e53, 0x3aaf, - 0x9e54, 0x23da, - 0x9e55, 0x3ab0, - 0x9e56, 0x2053, - 0x9e57, 0x3ab1, - 0x9e5d, 0x23e9, - 0x9e5e, 0x23e4, - 0x9e5f, 0x3ab7, - 0x9e61, 0x21d5, - 0x9e62, 0x3ab9, - 0x9e63, 0x23e6, - 0x9e64, 0x3aba, - 0x9e67, 0x23df, - 0x9e68, 0x3abd, - 0x9e6c, 0x1e4f, - 0x9e6d, 0x3ac1, - 0x9e6f, 0x23d9, - 0x9e70, 0x3ac3, - 0x9e72, 0x2014, - 0x9e73, 0x3ac5, - 0x9e74, 0x23ec, - 0x9e75, 0x23eb, - 0x9e76, 0x3ac6, - 0x9e7b, 0x23d8, - 0x9e7c, 0x23ee, - 0x9e7d, 0x3acb, - 0x9e80, 0x3acd, - 0x9e85, 0x268e, - 0x9e86, 0x3ad2, - 0x9e87, 0x23ed, - 0x9e88, 0x3ad3, - 0x9e91, 0x1ffa, - 0x9e92, 0x3adc, - 0x9e96, 0x23d6, - 0x9e97, 0x23e8, - 0x9e98, 0x3ae0, - 0x9ea2, 0x2106, - 0x9ea3, 0x3aea, - 0x9ea6, 0x200b, - 0x9ea7, 0x3aed, - 0x9ea9, 0x2166, - 0x9eaa, 0x3aef, - 0x9eae, 0x23ef, - 0x9eaf, 0x3af3, - 0x9eb3, 0x2189, - 0x9eb4, 0x2058, - 0x9eb5, 0x3af7, - 0x9eb7, 0x23e7, - 0x9eb8, 0x3af9, - 0x9ef5, 0x21a3, - 0x9ef6, 0x3b36, - 0x9f40, 0x3b3f, - 0x9f4e, 0x217a, - 0x9f4f, 0x3b4d, - 0x9f6f, 0x21a5, - 0x9f70, 0x3b6d, - 0x9f80, 0x3b7c, - 0x9f92, 0x2022, - 0x9f93, 0x3b8e, - 0x9f98, 0x24d6, - 0x9f99, 0x3b93, - 0x9fa6, 0x233a, - 0x9fa7, 0x3ba0, - 0x9fa9, 0x1eee, - 0x9faa, 0x3ba2, - 0x9fac, 0x24d5, - 0x9fad, 0x3ba4, - 0x9fc9, 0x2228, - 0x9fca, 0x3bc0, - 0x9fcd, 0x24d7, - 0x9fce, 0x3bc3, - 0x9fe1, 0x20fc, - 0x9fe2, 0x3bd6, - 0x9feb, 0x1e87, - 0x9fec, 0x3bdf, - 0x9fee, 0x24d8, - 0x9fef, 0x3be1, - 0x9ff4, 0x1eba, - 0x9ff5, 0x3be6, - 0x9ffd, 0x2119, - 0x9ffe, 0x3bee, - 0xa040, 0x3bef, - 0xa043, 0x216c, - 0xa044, 0x3bf2, - 0xa046, 0x24d9, - 0xa047, 0x3bf4, - 0xa049, 0x2227, - 0xa04a, 0x3bf6, - 0xa04e, 0x1e5f, - 0xa04f, 0x3bfa, - 0xa054, 0x229f, - 0xa055, 0x3bff, - 0xa05a, 0x1f5d, - 0xa05b, 0x3c04, - 0xa061, 0x1fbc, - 0xa062, 0x3c0a, - 0xa063, 0x24da, - 0xa064, 0x3c0b, - 0xa071, 0x2149, - 0xa072, 0x3c18, - 0xa074, 0x2046, - 0xa075, 0x3c1a, - 0xa080, 0x2000, - 0xa081, 0x3c24, - 0xa091, 0x2190, - 0xa092, 0x3c34, - 0xa094, 0x2208, - 0xa095, 0x3c36, - 0xa096, 0x1ee6, - 0xa097, 0x3c37, - 0xa0a9, 0x24c3, - 0xa0aa, 0x3c49, - 0xa0bf, 0x20cc, - 0xa0c0, 0x3c5e, - 0xa0ce, 0x2340, - 0xa0cf, 0x3c6c, - 0xa0d9, 0x1ed1, - 0xa0da, 0x3c76, - 0xa0de, 0x21ac, - 0xa0df, 0x3c7a, - 0xa0ee, 0x22af, - 0xa0ef, 0x3c89, - 0xa1a1, 0x0060, - 0xa2a1, 0x26a9, - 0xa2b1, 0x00be, - 0xa2e5, 0x00f0, - 0xa2f1, 0x00fa, - 0xa3a1, 0x0106, - 0xa4a1, 0x0164, - 0xa5a1, 0x01b7, - 0xa6a1, 0x020d, - 0xa6c1, 0x0225, - 0xa7a1, 0x025a, - 0xa7d1, 0x027b, - 0xa840, 0x26b3, - 0xa880, 0x26f2, - 0xa8a1, 0x029c, - 0xa8c5, 0x02bc, - 0xa940, 0x2708, - 0xa959, 0x2720, - 0xa95c, 0x2722, - 0xa960, 0x2723, - 0xa980, 0x2742, - 0xa996, 0x1e17, - 0xa9a4, 0x02e2, - 0xaa40, 0x3c99, - 0xaa4d, 0x21b6, - 0xaa4e, 0x1e3d, - 0xaa4f, 0x3ca6, - 0xaa71, 0x2235, - 0xaa72, 0x3cc8, - 0xaa73, 0x2397, - 0xaa74, 0x3cc9, - 0xaa77, 0x2395, - 0xaa78, 0x3ccc, - 0xaa7a, 0x223f, - 0xaa7b, 0x212a, - 0xaa7c, 0x3cce, - 0xaa80, 0x3cd1, - 0xaa9a, 0x1ed2, - 0xaa9b, 0x3ceb, - 0xaa9c, 0x2396, - 0xaa9d, 0x2398, - 0xaa9e, 0x3cec, - 0xaa9f, 0x20a2, - 0xaaa0, 0x3ced, - 0xaaa1, 0x032e, - 0xab40, 0x1f64, - 0xab41, 0x3cee, - 0xab43, 0x202b, - 0xab44, 0x3cf0, - 0xab45, 0x2394, - 0xab46, 0x2139, - 0xab47, 0x3cf1, - 0xab48, 0x215f, - 0xab49, 0x21c1, - 0xab4a, 0x239a, - 0xab4b, 0x3cf2, - 0xab4d, 0x2399, - 0xab4e, 0x3cf4, - 0xab80, 0x3d25, - 0xaba1, 0x038c, - 0xac40, 0x3d46, - 0xac46, 0x21c0, - 0xac47, 0x3d4c, - 0xac71, 0x2460, - 0xac72, 0x3d76, - 0xac7c, 0x245c, - 0xac7d, 0x3d80, - 0xac80, 0x3d82, - 0xac8d, 0x215d, - 0xac8e, 0x3d8f, - 0xac93, 0x2225, - 0xac94, 0x206a, - 0xac95, 0x3d94, - 0xad40, 0x3da0, - 0xad49, 0x2461, - 0xad4a, 0x3da9, - 0xad5e, 0x245b, - 0xad5f, 0x3dbd, - 0xad61, 0x2462, - 0xad62, 0x3dbf, - 0xad68, 0x1f54, - 0xad69, 0x3dc5, - 0xad74, 0x245f, - 0xad75, 0x3dd0, - 0xad80, 0x3dda, - 0xad82, 0x20ec, - 0xad83, 0x3ddc, - 0xad87, 0x245d, - 0xad88, 0x3de0, - 0xad8b, 0x2463, - 0xad8c, 0x3de3, - 0xad91, 0x2464, - 0xad92, 0x3de8, - 0xae40, 0x3df7, - 0xae54, 0x24a5, - 0xae55, 0x3e0b, - 0xae62, 0x1e70, - 0xae63, 0x3e18, - 0xae80, 0x208f, - 0xae81, 0x3e34, - 0xae85, 0x1e42, - 0xae86, 0x3e38, - 0xae8b, 0x1f4e, - 0xae8c, 0x3e3d, - 0xae94, 0x1eb1, - 0xae95, 0x3e45, - 0xaea0, 0x1e8b, - 0xaf40, 0x3e50, - 0xaf64, 0x1fc6, - 0xaf65, 0x3e74, - 0xaf7b, 0x25ae, - 0xaf7c, 0x3e8a, - 0xaf80, 0x3e8d, - 0xaf82, 0x1f01, - 0xaf83, 0x2200, - 0xaf84, 0x3e8f, - 0xaf8e, 0x25b2, - 0xaf8f, 0x1e97, - 0xaf90, 0x3e99, - 0xaf91, 0x20ab, - 0xaf92, 0x3e9a, - 0xaf9c, 0x25b3, - 0xaf9d, 0x3ea4, - 0xaf9f, 0x2028, - 0xafa0, 0x3ea6, - 0xb040, 0x3ea7, - 0xb041, 0x25af, - 0xb043, 0x3ea8, - 0xb044, 0x25b1, - 0xb045, 0x3ea9, - 0xb04f, 0x25ac, - 0xb050, 0x3eb3, - 0xb054, 0x1e4e, - 0xb055, 0x3eb7, - 0xb057, 0x2202, - 0xb058, 0x25ab, - 0xb059, 0x2286, - 0xb05a, 0x3eb9, - 0xb05b, 0x25ad, - 0xb05c, 0x3eba, - 0xb05d, 0x25b6, - 0xb05e, 0x3ebb, - 0xb05f, 0x21e3, - 0xb060, 0x25b4, - 0xb062, 0x222f, - 0xb063, 0x2165, - 0xb064, 0x25b7, - 0xb065, 0x3ebc, - 0xb06c, 0x1ee9, - 0xb06d, 0x3ec3, - 0xb07d, 0x1e25, - 0xb07e, 0x3ed3, - 0xb080, 0x3ed4, - 0xb097, 0x25c0, - 0xb098, 0x3eeb, - 0xb099, 0x229a, - 0xb09a, 0x3eec, - 0xb0a1, 0x03ac, - 0xb140, 0x3ef3, - 0xb14b, 0x226e, - 0xb14c, 0x3efe, - 0xb14d, 0x1fbd, - 0xb14e, 0x3eff, - 0xb14f, 0x1f84, - 0xb150, 0x20b2, - 0xb151, 0x3f00, - 0xb152, 0x2043, - 0xb153, 0x3f01, - 0xb180, 0x3f2d, - 0xb197, 0x2684, - 0xb198, 0x3f44, - 0xb1a1, 0x040a, - 0xb240, 0x3f4d, - 0xb241, 0x24ef, - 0xb242, 0x3f4e, - 0xb267, 0x24ee, - 0xb268, 0x3f73, - 0xb26d, 0x2074, - 0xb26e, 0x3f78, - 0xb274, 0x2687, - 0xb275, 0x3f7e, - 0xb280, 0x24f0, - 0xb281, 0x3f88, - 0xb289, 0x268d, - 0xb28a, 0x3f90, - 0xb29a, 0x22a0, - 0xb29b, 0x3fa0, - 0xb2a1, 0x0468, - 0xb340, 0x3fa6, - 0xb343, 0x1fab, - 0xb344, 0x3fa9, - 0xb370, 0x26a8, - 0xb371, 0x3fd5, - 0xb380, 0x3fe3, - 0xb388, 0x24e9, - 0xb389, 0x3feb, - 0xb38c, 0x24e5, - 0xb38d, 0x3fee, - 0xb38e, 0x21fa, - 0xb38f, 0x3fef, - 0xb3a1, 0x04c6, - 0xb440, 0x4001, - 0xb454, 0x2148, - 0xb455, 0x4015, - 0xb458, 0x24e4, - 0xb459, 0x4018, - 0xb45e, 0x24e6, - 0xb45f, 0x20f7, - 0xb460, 0x401d, - 0xb461, 0x206b, - 0xb462, 0x401e, - 0xb475, 0x22a7, - 0xb476, 0x4031, - 0xb47e, 0x24ec, - 0xb480, 0x4039, - 0xb483, 0x24eb, - 0xb484, 0x403c, - 0xb489, 0x24e3, - 0xb48a, 0x4041, - 0xb493, 0x24ea, - 0xb494, 0x404a, - 0xb4a1, 0x0524, - 0xb540, 0x4057, - 0xb541, 0x1e92, - 0xb542, 0x4058, - 0xb54b, 0x1e27, - 0xb54c, 0x4061, - 0xb556, 0x1fe6, - 0xb557, 0x406b, - 0xb55a, 0x24e7, - 0xb55b, 0x2012, - 0xb55c, 0x1eec, - 0xb55d, 0x406e, - 0xb561, 0x24e8, - 0xb562, 0x4072, - 0xb580, 0x408f, - 0xb59c, 0x1f66, - 0xb59d, 0x24dc, - 0xb59e, 0x40ab, - 0xb5a1, 0x0582, - 0xb640, 0x40ae, - 0xb652, 0x26a2, - 0xb653, 0x40c0, - 0xb655, 0x24dd, - 0xb656, 0x40c2, - 0xb659, 0x200e, - 0xb65a, 0x40c5, - 0xb65b, 0x24db, - 0xb65c, 0x1eb8, - 0xb65d, 0x40c6, - 0xb680, 0x40e8, - 0xb6a1, 0x05e0, - 0xb740, 0x4109, - 0xb74e, 0x2295, - 0xb74f, 0x4117, - 0xb751, 0x1e80, - 0xb752, 0x4119, - 0xb759, 0x2677, - 0xb75a, 0x4120, - 0xb764, 0x2624, - 0xb765, 0x1f69, - 0xb766, 0x222b, - 0xb767, 0x412a, - 0xb777, 0x257f, - 0xb778, 0x1f5b, - 0xb779, 0x413a, - 0xb780, 0x219b, - 0xb781, 0x4140, - 0xb782, 0x267d, - 0xb783, 0x4141, - 0xb7a1, 0x063e, - 0xb840, 0x415f, - 0xb843, 0x21a0, - 0xb844, 0x2186, - 0xb845, 0x4162, - 0xb846, 0x20ed, - 0xb847, 0x4163, - 0xb84d, 0x25b9, - 0xb84e, 0x4169, - 0xb851, 0x1fea, - 0xb852, 0x416c, - 0xb85a, 0x1ea4, - 0xb85b, 0x20e1, - 0xb85c, 0x4174, - 0xb85d, 0x25b8, - 0xb85e, 0x2260, - 0xb85f, 0x4175, - 0xb860, 0x20e2, - 0xb861, 0x4176, - 0xb877, 0x2141, - 0xb878, 0x418c, - 0xb880, 0x4193, - 0xb882, 0x1fc7, - 0xb883, 0x4195, - 0xb8a1, 0x069c, - 0xb940, 0x41b3, - 0xb950, 0x1e41, - 0xb951, 0x41c3, - 0xb961, 0x25e4, - 0xb962, 0x41d3, - 0xb97b, 0x1f86, - 0xb97c, 0x41ec, - 0xb980, 0x41ef, - 0xb99d, 0x1fb3, - 0xb99e, 0x420c, - 0xb9a0, 0x1eef, - 0xb9a1, 0x06fa, - 0xba40, 0x420e, - 0xba42, 0x22a4, - 0xba43, 0x4210, - 0xba44, 0x25e8, - 0xba45, 0x4211, - 0xba56, 0x25e3, - 0xba57, 0x4222, - 0xba59, 0x2111, - 0xba5a, 0x4224, - 0xba60, 0x25e6, - 0xba61, 0x422a, - 0xba6a, 0x25e7, - 0xba6b, 0x4233, - 0xba74, 0x2041, - 0xba75, 0x423c, - 0xba80, 0x4246, - 0xba84, 0x25ea, - 0xba85, 0x424a, - 0xba86, 0x1f8f, - 0xba87, 0x424b, - 0xba88, 0x25ec, - 0xba89, 0x424c, - 0xba8d, 0x25eb, - 0xba8e, 0x4250, - 0xba9e, 0x20d0, - 0xba9f, 0x201d, - 0xbaa0, 0x4260, - 0xbaa1, 0x0758, - 0xbb40, 0x1ff7, - 0xbb41, 0x4261, - 0xbb49, 0x1e8d, - 0xbb4a, 0x4269, - 0xbb58, 0x25e9, - 0xbb59, 0x4277, - 0xbb5b, 0x25ee, - 0xbb5c, 0x203a, - 0xbb5d, 0x4279, - 0xbb60, 0x2693, - 0xbb61, 0x427c, - 0xbb65, 0x25e5, - 0xbb66, 0x25ed, - 0xbb67, 0x4280, - 0xbb68, 0x2009, - 0xbb69, 0x4281, - 0xbb6a, 0x2065, - 0xbb6b, 0x4282, - 0xbb6e, 0x26a3, - 0xbb6f, 0x4285, - 0xbb80, 0x4295, - 0xbba1, 0x07b6, - 0xbc40, 0x42b6, - 0xbc52, 0x25f5, - 0xbc53, 0x1efc, - 0xbc54, 0x42c8, - 0xbc5a, 0x2024, - 0xbc5b, 0x42ce, - 0xbc61, 0x269b, - 0xbc62, 0x42d4, - 0xbc63, 0x25f3, - 0xbc64, 0x42d5, - 0xbc65, 0x22d9, - 0xbc66, 0x42d6, - 0xbc67, 0x25f4, - 0xbc68, 0x42d7, - 0xbc69, 0x241b, - 0xbc6a, 0x42d8, - 0xbc6d, 0x1fc8, - 0xbc6e, 0x42db, - 0xbc6f, 0x1f7b, - 0xbc70, 0x42dc, - 0xbc71, 0x241d, - 0xbc72, 0x42dd, - 0xbc73, 0x224c, - 0xbc74, 0x1f48, - 0xbc75, 0x241c, - 0xbc76, 0x241e, - 0xbc78, 0x20ff, - 0xbc79, 0x219a, - 0xbc7a, 0x42de, - 0xbc7b, 0x2091, - 0xbc7c, 0x42df, - 0xbc7e, 0x20a7, - 0xbc80, 0x42e1, - 0xbc82, 0x2423, - 0xbc83, 0x1e9b, - 0xbc84, 0x2422, - 0xbc85, 0x42e3, - 0xbc86, 0x2110, - 0xbc87, 0x42e4, - 0xbc88, 0x228d, - 0xbc89, 0x1f71, - 0xbc8a, 0x1ef8, - 0xbc8b, 0x2421, - 0xbc8c, 0x42e5, - 0xbc8f, 0x1ef3, - 0xbc90, 0x42e8, - 0xbc9a, 0x21b1, - 0xbc9b, 0x2426, - 0xbc9c, 0x2425, - 0xbc9d, 0x2120, - 0xbc9e, 0x42f2, - 0xbca1, 0x0814, - 0xbd40, 0x42f5, - 0xbd42, 0x211a, - 0xbd43, 0x2424, - 0xbd44, 0x42f7, - 0xbd45, 0x2428, - 0xbd46, 0x42f8, - 0xbd48, 0x242a, - 0xbd49, 0x2429, - 0xbd4a, 0x42fa, - 0xbd4b, 0x2294, - 0xbd4c, 0x42fb, - 0xbd4d, 0x22be, - 0xbd4e, 0x42fc, - 0xbd4f, 0x1e31, - 0xbd50, 0x42fd, - 0xbd57, 0x242c, - 0xbd58, 0x4304, - 0xbd59, 0x1fb5, - 0xbd5a, 0x4305, - 0xbd66, 0x242b, - 0xbd67, 0x1faf, - 0xbd68, 0x4311, - 0xbd6a, 0x2068, - 0xbd6b, 0x21e4, - 0xbd6c, 0x4313, - 0xbd6f, 0x1f21, - 0xbd70, 0x4316, - 0xbd71, 0x2101, - 0xbd72, 0x4317, - 0xbd79, 0x217c, - 0xbd7a, 0x214a, - 0xbd7b, 0x242d, - 0xbd7c, 0x431e, - 0xbd7e, 0x1fd4, - 0xbd80, 0x4320, - 0xbd81, 0x1fd1, - 0xbd82, 0x4321, - 0xbd89, 0x1e33, - 0xbd8a, 0x4328, - 0xbd8b, 0x242f, - 0xbd8c, 0x4329, - 0xbd8e, 0x242e, - 0xbd8f, 0x432b, - 0xbd90, 0x2430, - 0xbd91, 0x21db, - 0xbd92, 0x432c, - 0xbd97, 0x2158, - 0xbd98, 0x4331, - 0xbd9b, 0x1fc2, - 0xbd9c, 0x4334, - 0xbda1, 0x0872, - 0xbe40, 0x4339, - 0xbe43, 0x22b9, - 0xbe44, 0x433c, - 0xbe45, 0x2436, - 0xbe46, 0x433d, - 0xbe49, 0x1e8e, - 0xbe4a, 0x2439, - 0xbe4b, 0x4340, - 0xbe51, 0x21c5, - 0xbe52, 0x2437, - 0xbe53, 0x2192, - 0xbe54, 0x4346, - 0xbe55, 0x243a, - 0xbe56, 0x1f19, - 0xbe57, 0x218c, - 0xbe58, 0x1e40, - 0xbe59, 0x22b3, - 0xbe5a, 0x4347, - 0xbe5d, 0x205f, - 0xbe5e, 0x2438, - 0xbe5f, 0x2432, - 0xbe60, 0x2274, - 0xbe61, 0x434a, - 0xbe62, 0x1e9c, - 0xbe63, 0x2431, - 0xbe64, 0x2085, - 0xbe65, 0x434b, - 0xbe69, 0x2435, - 0xbe6a, 0x434f, - 0xbe6c, 0x243b, - 0xbe6d, 0x4351, - 0xbe6f, 0x1fb7, - 0xbe70, 0x2433, - 0xbe71, 0x4353, - 0xbe76, 0x2054, - 0xbe77, 0x21de, - 0xbe78, 0x4358, - 0xbe79, 0x2434, - 0xbe7a, 0x4359, - 0xbe7c, 0x243d, - 0xbe7d, 0x1f89, - 0xbe7e, 0x243c, - 0xbe80, 0x435b, - 0xbe83, 0x1f6e, - 0xbe84, 0x1ed8, - 0xbe85, 0x435e, - 0xbe86, 0x1ebf, - 0xbe87, 0x2445, - 0xbe88, 0x435f, - 0xbe89, 0x2249, - 0xbe8a, 0x4360, - 0xbe8c, 0x2441, - 0xbe8d, 0x4362, - 0xbe8e, 0x1e47, - 0xbe8f, 0x1f56, - 0xbe90, 0x4363, - 0xbe92, 0x2086, - 0xbe93, 0x4365, - 0xbe95, 0x2196, - 0xbe96, 0x4367, - 0xbe97, 0x2443, - 0xbe98, 0x243f, - 0xbe99, 0x4368, - 0xbe9a, 0x2023, - 0xbe9b, 0x4369, - 0xbe9c, 0x2442, - 0xbe9d, 0x436a, - 0xbe9f, 0x243e, - 0xbea0, 0x436c, - 0xbea1, 0x08d0, - 0xbf40, 0x26a6, - 0xbf41, 0x436d, - 0xbf4d, 0x234e, - 0xbf4e, 0x2446, - 0xbf4f, 0x244b, - 0xbf50, 0x2444, - 0xbf51, 0x4379, - 0xbf55, 0x2427, - 0xbf56, 0x244c, - 0xbf57, 0x437d, - 0xbf60, 0x1f0f, - 0xbf61, 0x4386, - 0xbf62, 0x2447, - 0xbf63, 0x2449, - 0xbf64, 0x2448, - 0xbf65, 0x4387, - 0xbf68, 0x21c2, - 0xbf69, 0x438a, - 0xbf6c, 0x216e, - 0xbf6d, 0x438d, - 0xbf70, 0x1f03, - 0xbf71, 0x4390, - 0xbf72, 0x244a, - 0xbf73, 0x215c, - 0xbf74, 0x4391, - 0xbf76, 0x22bb, - 0xbf77, 0x2450, - 0xbf78, 0x4393, - 0xbf79, 0x2694, - 0xbf7a, 0x244f, - 0xbf7b, 0x25f6, - 0xbf7c, 0x2051, - 0xbf7d, 0x4394, - 0xbf7e, 0x244e, - 0xbf80, 0x4395, - 0xbf82, 0x22ba, - 0xbf83, 0x1f6d, - 0xbf84, 0x4397, - 0xbf89, 0x2452, - 0xbf8a, 0x2451, - 0xbf8b, 0x439c, - 0xbf95, 0x2455, - 0xbf96, 0x43a6, - 0xbf97, 0x2289, - 0xbf98, 0x2116, - 0xbf99, 0x43a7, - 0xbf9d, 0x2454, - 0xbf9e, 0x43ab, - 0xbfa1, 0x092e, - 0xc040, 0x20fb, - 0xc041, 0x43ae, - 0xc044, 0x2440, - 0xc045, 0x43b1, - 0xc04b, 0x2126, - 0xc04c, 0x1f61, - 0xc04d, 0x269d, - 0xc04e, 0x43b7, - 0xc04f, 0x1f8a, - 0xc050, 0x2456, - 0xc051, 0x2459, - 0xc052, 0x2458, - 0xc053, 0x43b8, - 0xc055, 0x1fae, - 0xc056, 0x43ba, - 0xc05b, 0x221a, - 0xc05c, 0x43bf, - 0xc05e, 0x1f7a, - 0xc05f, 0x244d, - 0xc060, 0x2457, - 0xc061, 0x43c1, - 0xc069, 0x2453, - 0xc06a, 0x43c9, - 0xc06b, 0x2420, - 0xc06c, 0x43ca, - 0xc06d, 0x21df, - 0xc06e, 0x2685, - 0xc06f, 0x43cb, - 0xc070, 0x1e6e, - 0xc071, 0x43cc, - 0xc074, 0x2224, - 0xc075, 0x2670, - 0xc076, 0x43cf, - 0xc077, 0x21ba, - 0xc078, 0x43d0, - 0xc079, 0x245a, - 0xc07a, 0x43d1, - 0xc07c, 0x1fff, - 0xc07d, 0x43d3, - 0xc080, 0x43d5, - 0xc09b, 0x25e2, - 0xc09c, 0x43f0, - 0xc09d, 0x269a, - 0xc09e, 0x43f1, - 0xc0a1, 0x098c, - 0xc140, 0x43f4, - 0xc150, 0x1eea, - 0xc151, 0x4404, - 0xc154, 0x1e2c, - 0xc155, 0x4407, - 0xc15f, 0x2062, - 0xc160, 0x24f1, - 0xc161, 0x4411, - 0xc162, 0x24f2, - 0xc163, 0x4412, - 0xc175, 0x25f2, - 0xc176, 0x4424, - 0xc178, 0x2215, - 0xc179, 0x4426, - 0xc180, 0x442c, - 0xc195, 0x21ae, - 0xc196, 0x4441, - 0xc1a1, 0x09ea, - 0xc240, 0x444c, - 0xc24e, 0x20e0, - 0xc24f, 0x445a, - 0xc265, 0x25c2, - 0xc266, 0x4470, - 0xc267, 0x25c1, - 0xc268, 0x4471, - 0xc27d, 0x2128, - 0xc27e, 0x4486, - 0xc280, 0x4487, - 0xc284, 0x2199, - 0xc285, 0x448b, - 0xc293, 0x2017, - 0xc294, 0x1ea0, - 0xc295, 0x2125, - 0xc296, 0x214d, - 0xc297, 0x4499, - 0xc298, 0x25c4, - 0xc299, 0x209d, - 0xc29a, 0x228a, - 0xc29b, 0x449a, - 0xc29c, 0x25c3, - 0xc29d, 0x449b, - 0xc2a0, 0x2179, - 0xc2a1, 0x0a48, - 0xc340, 0x2038, - 0xc341, 0x449e, - 0xc343, 0x2155, - 0xc344, 0x44a0, - 0xc37b, 0x21d2, - 0xc37c, 0x44d7, - 0xc380, 0x44da, - 0xc384, 0x24c7, - 0xc385, 0x44de, - 0xc39b, 0x2279, - 0xc39c, 0x44f4, - 0xc3a1, 0x0aa6, - 0xc440, 0x44f9, - 0xc449, 0x2123, - 0xc44a, 0x4502, - 0xc44c, 0x24c5, - 0xc44d, 0x4504, - 0xc454, 0x24c9, - 0xc455, 0x450b, - 0xc458, 0x2094, - 0xc459, 0x450e, - 0xc45b, 0x2296, - 0xc45c, 0x4510, - 0xc463, 0x1e77, - 0xc464, 0x4517, - 0xc477, 0x1f06, - 0xc478, 0x452a, - 0xc47a, 0x1fa5, - 0xc47b, 0x452c, - 0xc480, 0x4530, - 0xc481, 0x2099, - 0xc482, 0x4531, - 0xc491, 0x1ead, - 0xc492, 0x24c8, - 0xc493, 0x20a8, - 0xc494, 0x4540, - 0xc498, 0x201f, - 0xc499, 0x4544, - 0xc49a, 0x20c5, - 0xc49b, 0x4545, - 0xc49c, 0x24ca, - 0xc49d, 0x4546, - 0xc4a1, 0x0b04, - 0xc540, 0x454a, - 0xc544, 0x1ff0, - 0xc545, 0x454e, - 0xc546, 0x24c6, - 0xc547, 0x454f, - 0xc54b, 0x225d, - 0xc54c, 0x22de, - 0xc54d, 0x4553, - 0xc552, 0x202c, - 0xc553, 0x4558, - 0xc55f, 0x2161, - 0xc560, 0x4564, - 0xc563, 0x223b, - 0xc564, 0x21d9, - 0xc565, 0x1fcb, - 0xc566, 0x1fc9, - 0xc567, 0x4567, - 0xc580, 0x457f, - 0xc593, 0x1e61, - 0xc594, 0x4592, - 0xc59c, 0x25ef, - 0xc59d, 0x459a, - 0xc59e, 0x1f98, - 0xc59f, 0x459b, - 0xc5a1, 0x0b62, - 0xc640, 0x459d, - 0xc641, 0x25f0, - 0xc642, 0x459e, - 0xc644, 0x1f88, - 0xc645, 0x45a0, - 0xc647, 0x21f8, - 0xc648, 0x45a2, - 0xc663, 0x2322, - 0xc664, 0x45bd, - 0xc672, 0x2336, - 0xc673, 0x45cb, - 0xc680, 0x45d7, - 0xc6a1, 0x0bc0, - 0xc740, 0x45f8, - 0xc766, 0x22ab, - 0xc767, 0x461e, - 0xc76f, 0x1fbf, - 0xc770, 0x4626, - 0xc776, 0x1f7d, - 0xc777, 0x462c, - 0xc77b, 0x2333, - 0xc77c, 0x4630, - 0xc780, 0x4633, - 0xc7a1, 0x0c1e, - 0xc840, 0x4654, - 0xc841, 0x1f4d, - 0xc842, 0x4655, - 0xc84f, 0x2334, - 0xc850, 0x4662, - 0xc852, 0x1ff1, - 0xc853, 0x4664, - 0xc866, 0x218b, - 0xc867, 0x4677, - 0xc86e, 0x2349, - 0xc86f, 0x467e, - 0xc87e, 0x220b, - 0xc880, 0x468d, - 0xc887, 0x2346, - 0xc888, 0x4694, - 0xc892, 0x2347, - 0xc893, 0x469e, - 0xc894, 0x2193, - 0xc895, 0x469f, - 0xc899, 0x26a1, - 0xc89a, 0x46a3, - 0xc89d, 0x1f62, - 0xc89e, 0x46a6, - 0xc8a1, 0x0c7c, - 0xc940, 0x46a9, - 0xc94f, 0x234d, - 0xc950, 0x2348, - 0xc951, 0x46b8, - 0xc96e, 0x1e60, - 0xc96f, 0x46d5, - 0xc970, 0x2345, - 0xc971, 0x46d6, - 0xc977, 0x1f12, - 0xc978, 0x46dc, - 0xc980, 0x46e3, - 0xc98f, 0x2018, - 0xc990, 0x2335, - 0xc991, 0x46f2, - 0xc99c, 0x233c, - 0xc99d, 0x46fd, - 0xc9a1, 0x0cda, - 0xca40, 0x4701, - 0xca4e, 0x266f, - 0xca4f, 0x470f, - 0xca56, 0x2351, - 0xca57, 0x4716, - 0xca59, 0x1fa0, - 0xca5a, 0x4718, - 0xca5c, 0x2338, - 0xca5d, 0x471a, - 0xca61, 0x221b, - 0xca62, 0x471e, - 0xca6e, 0x2342, - 0xca6f, 0x472a, - 0xca72, 0x234f, - 0xca73, 0x472d, - 0xca77, 0x233d, - 0xca78, 0x4731, - 0xca7b, 0x2344, - 0xca7c, 0x2331, - 0xca7d, 0x4734, - 0xca7e, 0x234b, - 0xca80, 0x4735, - 0xca81, 0x233b, - 0xca82, 0x4736, - 0xca89, 0x2350, - 0xca8a, 0x473d, - 0xca8e, 0x1eb4, - 0xca8f, 0x21a6, - 0xca90, 0x4741, - 0xca92, 0x21cb, - 0xca93, 0x4743, - 0xca9a, 0x2355, - 0xca9b, 0x474a, - 0xcaa1, 0x0d38, - 0xcb40, 0x4750, - 0xcb43, 0x233e, - 0xcb44, 0x4753, - 0xcb45, 0x1f74, - 0xcb46, 0x4754, - 0xcb47, 0x2330, - 0xcb48, 0x4755, - 0xcb4b, 0x2680, - 0xcb4c, 0x4758, - 0xcb4e, 0x20da, - 0xcb4f, 0x475a, - 0xcb57, 0x234a, - 0xcb58, 0x4762, - 0xcb5d, 0x1f91, - 0xcb5e, 0x4767, - 0xcb5f, 0x2107, - 0xcb60, 0x4768, - 0xcb6a, 0x233f, - 0xcb6b, 0x4772, - 0xcb7b, 0x1ff4, - 0xcb7c, 0x2343, - 0xcb7d, 0x4782, - 0xcb80, 0x4784, - 0xcb87, 0x2212, - 0xcb88, 0x478b, - 0xcb8e, 0x2207, - 0xcb8f, 0x4791, - 0xcb92, 0x2359, - 0xcb93, 0x4794, - 0xcb9c, 0x2254, - 0xcb9d, 0x479d, - 0xcb9e, 0x2332, - 0xcb9f, 0x479e, - 0xcba1, 0x0d96, - 0xcc40, 0x1e26, - 0xcc41, 0x2357, - 0xcc42, 0x47a0, - 0xcc49, 0x2358, - 0xcc4a, 0x2042, - 0xcc4b, 0x2153, - 0xcc4c, 0x47a7, - 0xcc4f, 0x20bb, - 0xcc50, 0x47aa, - 0xcc5c, 0x235a, - 0xcc5d, 0x47b6, - 0xcc60, 0x2356, - 0xcc61, 0x47b9, - 0xcc64, 0x2337, - 0xcc65, 0x47bc, - 0xcc6d, 0x1ff9, - 0xcc6e, 0x47c4, - 0xcc79, 0x2353, - 0xcc7a, 0x47cf, - 0xcc7d, 0x2061, - 0xcc7e, 0x47d2, - 0xcc80, 0x47d3, - 0xcc8e, 0x1e95, - 0xcc8f, 0x47e1, - 0xcc94, 0x2049, - 0xcc95, 0x47e6, - 0xcc96, 0x1f42, - 0xcc97, 0x47e7, - 0xcc9d, 0x1fe8, - 0xcc9e, 0x47ed, - 0xcca1, 0x0df4, - 0xcd40, 0x47f0, - 0xcd80, 0x482f, - 0xcd90, 0x25da, - 0xcd91, 0x483f, - 0xcd98, 0x25d7, - 0xcd99, 0x4846, - 0xcda1, 0x0e52, - 0xce40, 0x484e, - 0xce67, 0x212e, - 0xce68, 0x4875, - 0xce72, 0x21b2, - 0xce73, 0x487f, - 0xce80, 0x488b, - 0xce81, 0x219e, - 0xce82, 0x488c, - 0xce87, 0x25dc, - 0xce88, 0x4891, - 0xce9b, 0x206c, - 0xce9c, 0x48a4, - 0xce9e, 0x2226, - 0xce9f, 0x48a6, - 0xcea1, 0x0eb0, - 0xcf40, 0x48a8, - 0xcf4e, 0x25e0, - 0xcf4f, 0x48b6, - 0xcf55, 0x227b, - 0xcf56, 0x48bc, - 0xcf58, 0x25de, - 0xcf59, 0x48be, - 0xcf5c, 0x25e1, - 0xcf5d, 0x48c1, - 0xcf6c, 0x25d5, - 0xcf6d, 0x48d0, - 0xcf73, 0x1e6b, - 0xcf74, 0x48d6, - 0xcf75, 0x25db, - 0xcf76, 0x48d7, - 0xcf78, 0x1e89, - 0xcf79, 0x48d9, - 0xcf7c, 0x25d9, - 0xcf7d, 0x48dc, - 0xcf80, 0x48de, - 0xcf81, 0x2211, - 0xcf82, 0x48df, - 0xcf89, 0x2229, - 0xcf8a, 0x25d6, - 0xcf8b, 0x48e6, - 0xcf93, 0x25dd, - 0xcf94, 0x25df, - 0xcf95, 0x48ee, - 0xcf9e, 0x1fef, - 0xcf9f, 0x48f7, - 0xcfa0, 0x25d8, - 0xcfa1, 0x0f0e, - 0xd040, 0x48f8, - 0xd04d, 0x1f29, - 0xd04e, 0x4905, - 0xd051, 0x1e5b, - 0xd052, 0x4908, - 0xd055, 0x2076, - 0xd056, 0x490b, - 0xd05c, 0x2297, - 0xd05d, 0x4911, - 0xd060, 0x2690, - 0xd061, 0x4914, - 0xd067, 0x213f, - 0xd068, 0x491a, - 0xd06c, 0x2198, - 0xd06d, 0x491e, - 0xd06e, 0x1e88, - 0xd06f, 0x491f, - 0xd07d, 0x228c, - 0xd07e, 0x492d, - 0xd080, 0x492e, - 0xd0a1, 0x0f6c, - 0xd140, 0x494f, - 0xd155, 0x25f1, - 0xd156, 0x4964, - 0xd159, 0x200c, - 0xd15a, 0x4967, - 0xd161, 0x1e58, - 0xd162, 0x22ac, - 0xd163, 0x496e, - 0xd175, 0x26a7, - 0xd176, 0x4980, - 0xd17d, 0x2676, - 0xd17e, 0x4987, - 0xd180, 0x4988, - 0xd19d, 0x1fe1, - 0xd19e, 0x25bb, - 0xd19f, 0x49a5, - 0xd1a1, 0x0fca, - 0xd240, 0x25be, - 0xd241, 0x49a7, - 0xd243, 0x22dd, - 0xd244, 0x49a9, - 0xd24d, 0x25bd, - 0xd24e, 0x49b2, - 0xd25c, 0x1e2a, - 0xd25d, 0x49c0, - 0xd263, 0x25bc, - 0xd264, 0x25ba, - 0xd265, 0x49c6, - 0xd268, 0x25bf, - 0xd269, 0x49c9, - 0xd26d, 0x2187, - 0xd26e, 0x49cd, - 0xd26f, 0x266b, - 0xd270, 0x49ce, - 0xd272, 0x1e7f, - 0xd273, 0x49d0, - 0xd275, 0x21ad, - 0xd276, 0x49d2, - 0xd280, 0x49db, - 0xd28a, 0x1f96, - 0xd28b, 0x49e5, - 0xd28e, 0x1f32, - 0xd28f, 0x49e8, - 0xd292, 0x2084, - 0xd293, 0x49eb, - 0xd295, 0x2136, - 0xd296, 0x49ed, - 0xd297, 0x24b8, - 0xd298, 0x49ee, - 0xd2a0, 0x24ba, - 0xd2a1, 0x1028, - 0xd340, 0x49f6, - 0xd344, 0x24bc, - 0xd345, 0x49fa, - 0xd348, 0x20e4, - 0xd349, 0x49fd, - 0xd34a, 0x24b9, - 0xd34b, 0x49fe, - 0xd34d, 0x24bd, - 0xd34e, 0x4a00, - 0xd350, 0x24be, - 0xd351, 0x4a02, - 0xd355, 0x24bf, - 0xd356, 0x4a06, - 0xd358, 0x1fd2, - 0xd359, 0x4a08, - 0xd35b, 0x1ffd, - 0xd35c, 0x4a0a, - 0xd35d, 0x24bb, - 0xd35e, 0x1f2d, - 0xd35f, 0x4a0b, - 0xd378, 0x2609, - 0xd379, 0x4a24, - 0xd37a, 0x260a, - 0xd37b, 0x4a25, - 0xd37c, 0x1e94, - 0xd37d, 0x4a26, - 0xd380, 0x4a28, - 0xd385, 0x22df, - 0xd386, 0x1ecb, - 0xd387, 0x1f0d, - 0xd388, 0x4a2d, - 0xd38b, 0x1f77, - 0xd38c, 0x4a30, - 0xd38d, 0x21eb, - 0xd38e, 0x4a31, - 0xd38f, 0x22e1, - 0xd390, 0x4a32, - 0xd391, 0x216f, - 0xd392, 0x4a33, - 0xd393, 0x22e0, - 0xd394, 0x4a34, - 0xd396, 0x21ea, - 0xd397, 0x4a36, - 0xd398, 0x22e2, - 0xd399, 0x20cb, - 0xd39a, 0x4a37, - 0xd39b, 0x1f78, - 0xd39c, 0x4a38, - 0xd39e, 0x1ee2, - 0xd39f, 0x4a3a, - 0xd3a0, 0x21f2, - 0xd3a1, 0x1086, - 0xd440, 0x4a3b, - 0xd441, 0x2150, - 0xd442, 0x4a3c, - 0xd445, 0x1fd3, - 0xd446, 0x4a3f, - 0xd447, 0x22e5, - 0xd448, 0x4a40, - 0xd44c, 0x1ef2, - 0xd44d, 0x4a44, - 0xd44f, 0x211f, - 0xd450, 0x4a46, - 0xd453, 0x21dd, - 0xd454, 0x4a49, - 0xd456, 0x2154, - 0xd457, 0x4a4b, - 0xd458, 0x22e7, - 0xd459, 0x4a4c, - 0xd45c, 0x2282, - 0xd45d, 0x4a4f, - 0xd462, 0x22e6, - 0xd463, 0x4a54, - 0xd467, 0x22e8, - 0xd468, 0x4a58, - 0xd46e, 0x22e4, - 0xd46f, 0x4a5e, - 0xd470, 0x226a, - 0xd471, 0x4a5f, - 0xd472, 0x22eb, - 0xd473, 0x4a60, - 0xd474, 0x22e9, - 0xd475, 0x20bd, - 0xd476, 0x4a61, - 0xd478, 0x22ea, - 0xd479, 0x4a63, - 0xd47b, 0x22bd, - 0xd47c, 0x4a65, - 0xd47e, 0x1e9e, - 0xd480, 0x4a67, - 0xd482, 0x22f6, - 0xd483, 0x21e7, - 0xd484, 0x2216, - 0xd485, 0x4a69, - 0xd487, 0x2137, - 0xd488, 0x4a6b, - 0xd48a, 0x212c, - 0xd48b, 0x4a6d, - 0xd48c, 0x1e68, - 0xd48d, 0x22f2, - 0xd48e, 0x1f37, - 0xd48f, 0x22f3, - 0xd490, 0x4a6e, - 0xd491, 0x22ef, - 0xd492, 0x1f50, - 0xd493, 0x1f10, - 0xd494, 0x21c8, - 0xd495, 0x4a6f, - 0xd496, 0x22f1, - 0xd497, 0x4a70, - 0xd49c, 0x22f0, - 0xd49d, 0x4a75, - 0xd49f, 0x22ee, - 0xd4a0, 0x4a77, - 0xd4a1, 0x10e4, - 0xd540, 0x4a78, - 0xd543, 0x22ed, - 0xd544, 0x229e, - 0xd545, 0x22ec, - 0xd546, 0x1fe2, - 0xd547, 0x4a7b, - 0xd54a, 0x20fe, - 0xd54b, 0x4a7e, - 0xd54e, 0x22f9, - 0xd550, 0x4a81, - 0xd551, 0x1eaf, - 0xd552, 0x4a82, - 0xd554, 0x2236, - 0xd555, 0x4a84, - 0xd556, 0x22f7, - 0xd557, 0x4a85, - 0xd55a, 0x223d, - 0xd55b, 0x4a88, - 0xd55c, 0x1e82, - 0xd55d, 0x1fb6, - 0xd55e, 0x4a89, - 0xd55f, 0x21a4, - 0xd560, 0x21aa, - 0xd561, 0x22f8, - 0xd562, 0x2151, - 0xd563, 0x4a8a, - 0xd564, 0x1f60, - 0xd565, 0x4a8b, - 0xd568, 0x2147, - 0xd569, 0x4a8e, - 0xd56c, 0x2145, - 0xd56d, 0x4a91, - 0xd56e, 0x1fdc, - 0xd56f, 0x4a92, - 0xd572, 0x2301, - 0xd573, 0x4a95, - 0xd575, 0x1ef5, - 0xd576, 0x4a97, - 0xd578, 0x2218, - 0xd579, 0x4a99, - 0xd57b, 0x1ec6, - 0xd57c, 0x4a9b, - 0xd57e, 0x2300, - 0xd580, 0x4a9d, - 0xd581, 0x22b4, - 0xd582, 0x4a9e, - 0xd584, 0x2169, - 0xd585, 0x4aa0, - 0xd586, 0x22fd, - 0xd587, 0x4aa1, - 0xd588, 0x20ea, - 0xd589, 0x4aa2, - 0xd58a, 0x22f4, - 0xd58b, 0x4aa3, - 0xd58c, 0x22fb, - 0xd58d, 0x4aa4, - 0xd58e, 0x22fc, - 0xd58f, 0x2027, - 0xd590, 0x4aa5, - 0xd593, 0x2060, - 0xd594, 0x22ff, - 0xd595, 0x4aa8, - 0xd598, 0x22fe, - 0xd599, 0x1ec7, - 0xd59a, 0x4aab, - 0xd59b, 0x230c, - 0xd59c, 0x4aac, - 0xd59f, 0x22f5, - 0xd5a0, 0x4aaf, - 0xd5a1, 0x1142, - 0xd640, 0x2306, - 0xd641, 0x4ab0, - 0xd642, 0x230a, - 0xd643, 0x21d3, - 0xd644, 0x4ab1, - 0xd647, 0x2303, - 0xd648, 0x4ab4, - 0xd649, 0x2307, - 0xd64a, 0x230b, - 0xd64b, 0x4ab5, - 0xd64d, 0x1f5f, - 0xd64e, 0x4ab7, - 0xd64f, 0x2309, - 0xd650, 0x4ab8, - 0xd652, 0x2302, - 0xd653, 0x1f04, - 0xd654, 0x229d, - 0xd655, 0x4aba, - 0xd656, 0x21fb, - 0xd657, 0x4abb, - 0xd658, 0x2308, - 0xd659, 0x4abc, - 0xd65a, 0x20ac, - 0xd65b, 0x4abd, - 0xd65c, 0x208e, - 0xd65d, 0x2305, - 0xd65e, 0x2197, - 0xd65f, 0x4abe, - 0xd660, 0x2171, - 0xd661, 0x2298, - 0xd662, 0x4abf, - 0xd665, 0x1f57, - 0xd666, 0x4ac2, - 0xd669, 0x2082, - 0xd66a, 0x4ac5, - 0xd66b, 0x2311, - 0xd66c, 0x4ac6, - 0xd66f, 0x2304, - 0xd670, 0x4ac9, - 0xd671, 0x230f, - 0xd672, 0x1e35, - 0xd673, 0x4aca, - 0xd674, 0x20d1, - 0xd675, 0x2310, - 0xd676, 0x1fa3, - 0xd677, 0x4acb, - 0xd678, 0x21d6, - 0xd679, 0x4acc, - 0xd67c, 0x2206, - 0xd67d, 0x4acf, - 0xd680, 0x4ad1, - 0xd683, 0x230d, - 0xd684, 0x4ad4, - 0xd686, 0x2312, - 0xd687, 0x208d, - 0xd688, 0x2313, - 0xd689, 0x4ad6, - 0xd68e, 0x22e3, - 0xd68f, 0x4adb, - 0xd694, 0x1fba, - 0xd695, 0x4ae0, - 0xd699, 0x2078, - 0xd69a, 0x4ae4, - 0xd6a1, 0x11a0, - 0xd740, 0x4aeb, - 0xd743, 0x2288, - 0xd744, 0x4aee, - 0xd748, 0x2316, - 0xd749, 0x1f6b, - 0xd74a, 0x4af2, - 0xd750, 0x2314, - 0xd751, 0x4af8, - 0xd752, 0x2130, - 0xd753, 0x2315, - 0xd754, 0x2168, - 0xd755, 0x4af9, - 0xd756, 0x20c4, - 0xd757, 0x4afa, - 0xd764, 0x2318, - 0xd765, 0x4b07, - 0xd767, 0x2219, - 0xd768, 0x2217, - 0xd769, 0x4b09, - 0xd76c, 0x20d5, - 0xd76d, 0x4b0c, - 0xd76f, 0x1f4a, - 0xd770, 0x4b0e, - 0xd775, 0x2240, - 0xd776, 0x4b13, - 0xd778, 0x1ed3, - 0xd779, 0x4b15, - 0xd780, 0x4b1b, - 0xd783, 0x1e49, - 0xd784, 0x4b1e, - 0xd787, 0x261b, - 0xd788, 0x4b21, - 0xd78b, 0x1e6d, - 0xd78c, 0x20f8, - 0xd78d, 0x4b24, - 0xd78e, 0x1ffb, - 0xd78f, 0x2319, - 0xd790, 0x4b25, - 0xd795, 0x230e, - 0xd796, 0x4b2a, - 0xd797, 0x2317, - 0xd798, 0x4b2b, - 0xd7a1, 0x11fe, - 0xd840, 0x4b34, - 0xd84d, 0x20c8, - 0xd84e, 0x4b41, - 0xd853, 0x1efd, - 0xd854, 0x4b46, - 0xd880, 0x4b71, - 0xd890, 0x1e3b, - 0xd891, 0x227f, - 0xd892, 0x4b81, - 0xd893, 0x1f0c, - 0xd894, 0x1e59, - 0xd895, 0x1f24, - 0xd896, 0x4b82, - 0xd89a, 0x20ba, - 0xd89b, 0x1f65, - 0xd89c, 0x1ef0, - 0xd89d, 0x2164, - 0xd89e, 0x1f30, - 0xd89f, 0x2261, - 0xd8a0, 0x4b86, - 0xd8a1, 0x1257, - 0xd940, 0x4b87, - 0xd941, 0x22a2, - 0xd942, 0x24ab, - 0xd943, 0x4b88, - 0xd944, 0x24af, - 0xd945, 0x1ee8, - 0xd946, 0x1f39, - 0xd947, 0x4b89, - 0xd948, 0x1e48, - 0xd949, 0x2070, - 0xd94a, 0x1ea8, - 0xd94b, 0x4b8a, - 0xd94c, 0x24ac, - 0xd94d, 0x1ef7, - 0xd94e, 0x2176, - 0xd94f, 0x24ad, - 0xd950, 0x4b8b, - 0xd951, 0x207b, - 0xd952, 0x1f45, - 0xd953, 0x24aa, - 0xd954, 0x204b, - 0xd955, 0x202f, - 0xd956, 0x1f5a, - 0xd957, 0x24b0, - 0xd958, 0x4b8c, - 0xd959, 0x22b7, - 0xd95a, 0x1f7f, - 0xd95b, 0x4b8d, - 0xd95c, 0x2265, - 0xd95d, 0x4b8e, - 0xd963, 0x24b2, - 0xd964, 0x211b, - 0xd965, 0x1e51, - 0xd966, 0x4b94, - 0xd967, 0x24b4, - 0xd968, 0x4b95, - 0xd96c, 0x24b3, - 0xd96d, 0x4b99, - 0xd96e, 0x1e9f, - 0xd96f, 0x4b9a, - 0xd970, 0x2118, - 0xd971, 0x4b9b, - 0xd972, 0x20b4, - 0xd973, 0x23af, - 0xd974, 0x21bb, - 0xd975, 0x2072, - 0xd976, 0x1f95, - 0xd977, 0x4b9c, - 0xd978, 0x1f0a, - 0xd979, 0x24b6, - 0xd97a, 0x4b9d, - 0xd97c, 0x2291, - 0xd97d, 0x24b5, - 0xd97e, 0x2278, - 0xd980, 0x1ed4, - 0xd981, 0x4b9f, - 0xd987, 0x1ff3, - 0xd988, 0x4ba5, - 0xd98d, 0x22a9, - 0xd98e, 0x24b7, - 0xd98f, 0x1f28, - 0xd990, 0x2109, - 0xd991, 0x22c7, - 0xd992, 0x4baa, - 0xd997, 0x24ae, - 0xd998, 0x22b1, - 0xd999, 0x4baf, - 0xd99b, 0x2266, - 0xd99c, 0x4bb1, - 0xd99d, 0x225b, - 0xd99e, 0x22c4, - 0xd99f, 0x4bb2, - 0xd9a0, 0x2115, - 0xd9a1, 0x12b5, - 0xda40, 0x4bb3, - 0xda41, 0x222a, - 0xda42, 0x24b1, - 0xda43, 0x4bb4, - 0xda48, 0x213d, - 0xda49, 0x4bb9, - 0xda4d, 0x1f15, - 0xda4e, 0x225c, - 0xda4f, 0x4bbd, - 0xda73, 0x1f14, - 0xda74, 0x4be1, - 0xda77, 0x227a, - 0xda78, 0x4be4, - 0xda80, 0x4beb, - 0xda85, 0x20ee, - 0xda86, 0x4bf0, - 0xda8e, 0x25f8, - 0xda8f, 0x4bf8, - 0xdaa1, 0x1313, - 0xdb40, 0x4c0a, - 0xdb60, 0x1f94, - 0xdb61, 0x4c2a, - 0xdb78, 0x2230, - 0xdb79, 0x4c41, - 0xdb80, 0x4c47, - 0xdb84, 0x25fd, - 0xdb85, 0x4c4b, - 0xdb8b, 0x2600, - 0xdb8c, 0x4c51, - 0xdb98, 0x2606, - 0xdb99, 0x4c5d, - 0xdba1, 0x1371, - 0xdc40, 0x4c65, - 0xdc45, 0x25ff, - 0xdc46, 0x4c6a, - 0xdc4f, 0x25fc, - 0xdc50, 0x1e8c, - 0xdc51, 0x2602, - 0xdc52, 0x4c73, - 0xdc53, 0x224d, - 0xdc54, 0x4c74, - 0xdc55, 0x2604, - 0xdc56, 0x25fe, - 0xdc57, 0x2603, - 0xdc58, 0x4c75, - 0xdc5d, 0x2601, - 0xdc5e, 0x4c7a, - 0xdc62, 0x2605, - 0xdc63, 0x4c7e, - 0xdc66, 0x1ea3, - 0xdc67, 0x2608, - 0xdc68, 0x4c81, - 0xdc6b, 0x2607, - 0xdc6c, 0x4c84, - 0xdc7c, 0x20f0, - 0xdc7d, 0x4c94, - 0xdc80, 0x4c96, - 0xdc87, 0x1e7b, - 0xdc88, 0x2267, - 0xdc89, 0x1f36, - 0xdc8a, 0x1fd6, - 0xdc8b, 0x4c9d, - 0xdc8e, 0x21e0, - 0xdc8f, 0x4ca0, - 0xdc90, 0x248c, - 0xdc91, 0x4ca1, - 0xdc97, 0x248d, - 0xdc98, 0x4ca7, - 0xdc9b, 0x2102, - 0xdc9c, 0x4caa, - 0xdca0, 0x2494, - 0xdca1, 0x13cf, - 0xdd40, 0x4cae, - 0xdd46, 0x2493, - 0xdd47, 0x4cb4, - 0xdd4d, 0x248e, - 0xdd4e, 0x4cba, - 0xdd53, 0x2299, - 0xdd54, 0x2491, - 0xdd55, 0x2496, - 0xdd56, 0x248f, - 0xdd57, 0x2492, - 0xdd58, 0x4cbf, - 0xdd59, 0x2497, - 0xdd5a, 0x4cc0, - 0xdd5e, 0x1fb1, - 0xdd5f, 0x4cc4, - 0xdd60, 0x249a, - 0xdd61, 0x4cc5, - 0xdd62, 0x2499, - 0xdd63, 0x4cc6, - 0xdd64, 0x2258, - 0xdd65, 0x2498, - 0xdd66, 0x4cc7, - 0xdd6d, 0x249b, - 0xdd6e, 0x4cce, - 0xdd6f, 0x1f09, - 0xdd70, 0x20e6, - 0xdd71, 0x4ccf, - 0xdd76, 0x2026, - 0xdd77, 0x249f, - 0xdd78, 0x1f59, - 0xdd79, 0x249d, - 0xdd7b, 0x4cd4, - 0xdd80, 0x4cd8, - 0xdd81, 0x1f3b, - 0xdd82, 0x249c, - 0xdd83, 0x4cd9, - 0xdd85, 0x1e3a, - 0xdd86, 0x205b, - 0xdd87, 0x4cdb, - 0xdd8b, 0x1f70, - 0xdd8c, 0x4cdf, - 0xdd8f, 0x24a0, - 0xdd90, 0x4ce2, - 0xdd94, 0x213b, - 0xdd95, 0x4ce6, - 0xdd97, 0x1f07, - 0xdd98, 0x4ce8, - 0xdd9a, 0x2270, - 0xdd9b, 0x2237, - 0xdd9c, 0x4cea, - 0xdd9e, 0x24d2, - 0xdd9f, 0x4cec, - 0xdda0, 0x21b3, - 0xdda1, 0x142d, - 0xde40, 0x2245, - 0xde41, 0x24a1, - 0xde42, 0x4ced, - 0xde44, 0x22a8, - 0xde45, 0x4cef, - 0xde48, 0x227c, - 0xde49, 0x1fb0, - 0xde4a, 0x4cf2, - 0xde4f, 0x24a2, - 0xde50, 0x4cf7, - 0xde5a, 0x1f46, - 0xde5b, 0x4d01, - 0xde5c, 0x2380, - 0xde5d, 0x2495, - 0xde5e, 0x4d02, - 0xde5f, 0x2490, - 0xde60, 0x4d03, - 0xde6b, 0x1e30, - 0xde6c, 0x4d0e, - 0xde6f, 0x1e9d, - 0xde70, 0x1e4b, - 0xde71, 0x1e4a, - 0xde72, 0x20aa, - 0xde73, 0x4d11, - 0xde80, 0x4d1d, - 0xde92, 0x267b, - 0xde93, 0x4d2f, - 0xde9f, 0x23f2, - 0xdea0, 0x4d3b, - 0xdea1, 0x148b, - 0xdf40, 0x227e, - 0xdf41, 0x4d3c, - 0xdf42, 0x2019, - 0xdf43, 0x4d3d, - 0xdf4d, 0x1fbb, - 0xdf4e, 0x4d47, - 0xdf5c, 0x2253, - 0xdf5d, 0x4d55, - 0xdf5e, 0x1f3e, - 0xdf5f, 0x1ea6, - 0xdf60, 0x218e, - 0xdf61, 0x4d56, - 0xdf64, 0x21ec, - 0xdf65, 0x4d59, - 0xdf66, 0x1ebe, - 0xdf67, 0x4d5a, - 0xdf68, 0x224a, - 0xdf69, 0x4d5b, - 0xdf6d, 0x2133, - 0xdf6e, 0x4d5f, - 0xdf74, 0x1e84, - 0xdf75, 0x4d65, - 0xdf77, 0x20cf, - 0xdf78, 0x21e2, - 0xdf79, 0x4d67, - 0xdf7a, 0x220f, - 0xdf7b, 0x4d68, - 0xdf7c, 0x2029, - 0xdf7d, 0x4d69, - 0xdf7e, 0x2073, - 0xdf80, 0x1f55, - 0xdf81, 0x4d6a, - 0xdf83, 0x23f1, - 0xdf84, 0x4d6c, - 0xdf85, 0x1e46, - 0xdf86, 0x4d6d, - 0xdf89, 0x2063, - 0xdf8a, 0x23f3, - 0xdf8b, 0x4d70, - 0xdfa1, 0x14e9, - 0xe040, 0x4d86, - 0xe050, 0x231e, - 0xe051, 0x4d96, - 0xe05d, 0x2233, - 0xe05e, 0x4da2, - 0xe069, 0x2320, - 0xe06a, 0x4dad, - 0xe06c, 0x21c7, - 0xe06d, 0x4daf, - 0xe075, 0x22bc, - 0xe076, 0x4db7, - 0xe077, 0x231c, - 0xe078, 0x4db8, - 0xe079, 0x2251, - 0xe07a, 0x4db9, - 0xe080, 0x4dbe, - 0xe087, 0x1ebb, - 0xe088, 0x4dc5, - 0xe08d, 0x2287, - 0xe08e, 0x4dca, - 0xe08f, 0x202d, - 0xe090, 0x1eab, - 0xe091, 0x4dcb, - 0xe092, 0x231d, - 0xe093, 0x4dcc, - 0xe094, 0x231f, - 0xe095, 0x4dcd, - 0xe097, 0x231b, - 0xe098, 0x4dcf, - 0xe0a1, 0x1547, - 0xe140, 0x4dd8, - 0xe142, 0x2321, - 0xe143, 0x4dda, - 0xe164, 0x2255, - 0xe165, 0x4dfb, - 0xe168, 0x1e8f, - 0xe169, 0x4dfe, - 0xe174, 0x220c, - 0xe175, 0x1fa4, - 0xe176, 0x4e09, - 0xe180, 0x4e12, - 0xe184, 0x209b, - 0xe185, 0x21d8, - 0xe186, 0x4e16, - 0xe187, 0x25fa, - 0xe188, 0x4e17, - 0xe189, 0x25f9, - 0xe18a, 0x4e18, - 0xe18c, 0x2134, - 0xe18d, 0x4e1a, - 0xe18e, 0x24f3, - 0xe191, 0x24f8, - 0xe192, 0x4e1b, - 0xe193, 0x24f7, - 0xe194, 0x1ec8, - 0xe195, 0x24f6, - 0xe196, 0x4e1c, - 0xe198, 0x2280, - 0xe199, 0x4e1e, - 0xe19e, 0x1ec5, - 0xe19f, 0x24fb, - 0xe1a0, 0x4e23, - 0xe1a1, 0x15a5, - 0xe240, 0x4e24, - 0xe241, 0x24fa, - 0xe242, 0x4e25, - 0xe243, 0x1eed, - 0xe244, 0x4e26, - 0xe24f, 0x24fd, - 0xe250, 0x4e31, - 0xe251, 0x24f9, - 0xe252, 0x4e32, - 0xe253, 0x24fe, - 0xe254, 0x20cd, - 0xe255, 0x4e33, - 0xe25a, 0x2508, - 0xe25b, 0x2504, - 0xe25c, 0x4e38, - 0xe25e, 0x2506, - 0xe25f, 0x4e3a, - 0xe262, 0x24ff, - 0xe263, 0x2090, - 0xe264, 0x4e3d, - 0xe267, 0x1edd, - 0xe268, 0x1f25, - 0xe269, 0x4e40, - 0xe26a, 0x2503, - 0xe26b, 0x2502, - 0xe26c, 0x4e41, - 0xe26e, 0x1e7a, - 0xe26f, 0x20a6, - 0xe270, 0x4e43, - 0xe278, 0x1fd5, - 0xe279, 0x4e4b, - 0xe27d, 0x1f11, - 0xe27e, 0x4e4f, - 0xe280, 0x2507, - 0xe281, 0x2500, - 0xe282, 0x2505, - 0xe283, 0x4e50, - 0xe289, 0x2519, - 0xe28a, 0x4e56, - 0xe28b, 0x2515, - 0xe28c, 0x4e57, - 0xe28e, 0x250c, - 0xe28f, 0x2031, - 0xe290, 0x4e59, - 0xe292, 0x250b, - 0xe293, 0x250f, - 0xe294, 0x251a, - 0xe295, 0x2509, - 0xe296, 0x4e5b, - 0xe298, 0x250e, - 0xe299, 0x2234, - 0xe29a, 0x2513, - 0xe29b, 0x1f80, - 0xe29c, 0x4e5d, - 0xe2a0, 0x2501, - 0xe2a1, 0x1603, - 0xe340, 0x4e61, - 0xe342, 0x2517, - 0xe343, 0x2516, - 0xe344, 0x4e63, - 0xe347, 0x2518, - 0xe348, 0x4e66, - 0xe34b, 0x1e56, - 0xe34c, 0x4e69, - 0xe34f, 0x250d, - 0xe350, 0x4e6c, - 0xe351, 0x20d3, - 0xe352, 0x4e6d, - 0xe354, 0x207a, - 0xe355, 0x20ce, - 0xe356, 0x4e6f, - 0xe358, 0x2510, - 0xe359, 0x4e71, - 0xe35c, 0x1e55, - 0xe35d, 0x4e74, - 0xe360, 0x250a, - 0xe361, 0x4e77, - 0xe366, 0x2511, - 0xe368, 0x4e7c, - 0xe371, 0x1faa, - 0xe372, 0x4e85, - 0xe373, 0x251e, - 0xe374, 0x1f1f, - 0xe375, 0x4e86, - 0xe378, 0x252d, - 0xe379, 0x221d, - 0xe37a, 0x4e89, - 0xe37c, 0x2532, - 0xe37d, 0x4e8b, - 0xe37e, 0x217b, - 0xe380, 0x4e8c, - 0xe38a, 0x21af, - 0xe38b, 0x4e96, - 0xe38c, 0x252c, - 0xe38d, 0x4e97, - 0xe38f, 0x2528, - 0xe390, 0x4e99, - 0xe391, 0x208c, - 0xe392, 0x4e9a, - 0xe393, 0x252f, - 0xe394, 0x4e9b, - 0xe395, 0x21bc, - 0xe396, 0x4e9c, - 0xe399, 0x251d, - 0xe39a, 0x4e9f, - 0xe39c, 0x2535, - 0xe39d, 0x4ea1, - 0xe39e, 0x220d, - 0xe39f, 0x2526, - 0xe3a0, 0x4ea2, - 0xe3a1, 0x1661, - 0xe440, 0x2534, - 0xe441, 0x252a, - 0xe442, 0x251f, - 0xe443, 0x2531, - 0xe444, 0x251c, - 0xe445, 0x4ea3, - 0xe448, 0x2525, - 0xe449, 0x4ea6, - 0xe44e, 0x21cd, - 0xe44f, 0x4eab, - 0xe450, 0x21da, - 0xe451, 0x4eac, - 0xe452, 0x2172, - 0xe453, 0x253e, - 0xe454, 0x4ead, - 0xe458, 0x204f, - 0xe459, 0x4eb1, - 0xe45a, 0x2543, - 0xe45b, 0x4eb2, - 0xe45c, 0x21d7, - 0xe45d, 0x4eb3, - 0xe45e, 0x1e3c, - 0xe45f, 0x4eb4, - 0xe462, 0x2529, - 0xe463, 0x4eb7, - 0xe465, 0x2521, - 0xe466, 0x4eb9, - 0xe468, 0x1eff, - 0xe469, 0x4ebb, - 0xe473, 0x253f, - 0xe474, 0x4ec5, - 0xe475, 0x2544, - 0xe476, 0x4ec6, - 0xe479, 0x2523, - 0xe47a, 0x1e90, - 0xe47b, 0x253a, - 0xe47c, 0x2545, - 0xe47d, 0x4ec9, - 0xe47e, 0x253d, - 0xe480, 0x4eca, - 0xe481, 0x20c1, - 0xe482, 0x4ecb, - 0xe484, 0x2103, - 0xe485, 0x2520, - 0xe486, 0x253c, - 0xe487, 0x253b, - 0xe488, 0x2538, - 0xe489, 0x4ecd, - 0xe48d, 0x2540, - 0xe48e, 0x4ed1, - 0xe48f, 0x1fcd, - 0xe490, 0x4ed2, - 0xe493, 0x1f18, - 0xe494, 0x4ed5, - 0xe498, 0x254b, - 0xe499, 0x4ed9, - 0xe49d, 0x2547, - 0xe49e, 0x254f, - 0xe4a0, 0x4edd, - 0xe4a1, 0x16bf, - 0xe540, 0x4ede, - 0xe546, 0x22b0, - 0xe547, 0x4ee4, - 0xe548, 0x2546, - 0xe549, 0x4ee5, - 0xe54b, 0x254c, - 0xe54c, 0x4ee7, - 0xe54e, 0x1e9a, - 0xe54f, 0x2552, - 0xe550, 0x2530, - 0xe551, 0x2549, - 0xe552, 0x4ee9, - 0xe555, 0x2551, - 0xe556, 0x1eca, - 0xe557, 0x4eec, - 0xe558, 0x20d2, - 0xe559, 0x4eed, - 0xe55c, 0x1fb8, - 0xe55d, 0x4ef0, - 0xe55e, 0x2079, - 0xe55f, 0x4ef1, - 0xe561, 0x21ab, - 0xe562, 0x4ef3, - 0xe564, 0x254d, - 0xe565, 0x1ea5, - 0xe566, 0x4ef5, - 0xe568, 0x204c, - 0xe569, 0x2080, - 0xe56a, 0x4ef7, - 0xe56c, 0x266d, - 0xe56d, 0x4ef9, - 0xe56e, 0x2537, - 0xe56f, 0x4efa, - 0xe575, 0x254a, - 0xe576, 0x21b8, - 0xe577, 0x4f00, - 0xe578, 0x254e, - 0xe579, 0x4f01, - 0xe57b, 0x24fc, - 0xe57c, 0x2554, - 0xe57d, 0x4f03, - 0xe580, 0x4f05, - 0xe581, 0x1f3c, - 0xe582, 0x4f06, - 0xe583, 0x1ed5, - 0xe584, 0x4f07, - 0xe58a, 0x2556, - 0xe58b, 0x4f0d, - 0xe58e, 0x2268, - 0xe58f, 0x4f10, - 0xe591, 0x1ed6, - 0xe592, 0x4f12, - 0xe59a, 0x2557, - 0xe59b, 0x2553, - 0xe59c, 0x4f1a, - 0xe59f, 0x2548, - 0xe5a0, 0x4f1d, - 0xe5a1, 0x171d, - 0xe640, 0x20dc, - 0xe641, 0x4f1e, - 0xe644, 0x2559, - 0xe645, 0x4f21, - 0xe649, 0x1f97, - 0xe64a, 0x2555, - 0xe64b, 0x4f25, - 0xe64e, 0x227d, - 0xe64f, 0x4f28, - 0xe652, 0x257e, - 0xe653, 0x4f2b, - 0xe656, 0x207c, - 0xe657, 0x4f2e, - 0xe658, 0x255a, - 0xe659, 0x4f2f, - 0xe65b, 0x255e, - 0xe65c, 0x4f31, - 0xe65e, 0x1e34, - 0xe65f, 0x4f33, - 0xe669, 0x215e, - 0xe66a, 0x4f3d, - 0xe66b, 0x2560, - 0xe66c, 0x4f3e, - 0xe675, 0x21a2, - 0xe676, 0x2354, - 0xe677, 0x4f47, - 0xe679, 0x2563, - 0xe67a, 0x2527, - 0xe67b, 0x4f49, - 0xe67c, 0x252e, - 0xe67d, 0x2558, - 0xe67e, 0x4f4a, - 0xe680, 0x1f1b, - 0xe681, 0x4f4b, - 0xe682, 0x2283, - 0xe683, 0x4f4c, - 0xe684, 0x2564, - 0xe685, 0x4f4d, - 0xe687, 0x20a0, - 0xe688, 0x4f4f, - 0xe689, 0x2565, - 0xe68a, 0x4f50, - 0xe68c, 0x2561, - 0xe68d, 0x4f52, - 0xe693, 0x2562, - 0xe694, 0x4f58, - 0xe697, 0x256c, - 0xe698, 0x4f5b, - 0xe69b, 0x256d, - 0xe69c, 0x2020, - 0xe69d, 0x4f5e, - 0xe69f, 0x255f, - 0xe6a0, 0x256a, - 0xe6a1, 0x177b, - 0xe740, 0x4f60, - 0xe743, 0x256e, - 0xe744, 0x4f63, - 0xe748, 0x2539, - 0xe749, 0x255c, - 0xe74a, 0x4f67, - 0xe74d, 0x2568, - 0xe74f, 0x256b, - 0xe750, 0x1e6f, - 0xe751, 0x4f6a, - 0xe752, 0x1fc4, - 0xe753, 0x2567, - 0xe754, 0x4f6b, - 0xe755, 0x255b, - 0xe756, 0x4f6c, - 0xe759, 0x261d, - 0xe75a, 0x4f6f, - 0xe766, 0x252b, - 0xe767, 0x4f7b, - 0xe768, 0x2571, - 0xe769, 0x4f7c, - 0xe76a, 0x2577, - 0xe76b, 0x4f7d, - 0xe774, 0x2522, - 0xe775, 0x4f86, - 0xe77c, 0x2533, - 0xe77d, 0x4f8d, - 0xe780, 0x4f8f, - 0xe782, 0x202a, - 0xe783, 0x4f91, - 0xe784, 0x2536, - 0xe785, 0x2573, - 0xe786, 0x256f, - 0xe787, 0x4f92, - 0xe78a, 0x2293, - 0xe78b, 0x2578, - 0xe78c, 0x4f95, - 0xe78f, 0x2570, - 0xe790, 0x4f98, - 0xe792, 0x2575, - 0xe793, 0x4f9a, - 0xe798, 0x2541, - 0xe79a, 0x255d, - 0xe79b, 0x4f9f, - 0xe7a0, 0x201a, - 0xe7a1, 0x17d9, - 0xe840, 0x4fa4, - 0xe843, 0x257a, - 0xe844, 0x2006, - 0xe845, 0x4fa7, - 0xe846, 0x2177, - 0xe847, 0x4fa8, - 0xe849, 0x251b, - 0xe84a, 0x4faa, - 0xe84b, 0x2524, - 0xe84c, 0x4fab, - 0xe84f, 0x257b, - 0xe850, 0x4fae, - 0xe854, 0x22a3, - 0xe855, 0x4fb2, - 0xe85a, 0x2579, - 0xe85b, 0x4fb7, - 0xe85c, 0x2566, - 0xe85d, 0x4fb8, - 0xe862, 0x1f93, - 0xe863, 0x4fbd, - 0xe864, 0x257c, - 0xe865, 0x4fbe, - 0xe870, 0x2514, - 0xe871, 0x4fc9, - 0xe873, 0x257d, - 0xe874, 0x4fcb, - 0xe875, 0x2572, - 0xe876, 0x4fcc, - 0xe87c, 0x2574, - 0xe87d, 0x4fd2, - 0xe880, 0x224e, - 0xe881, 0x4fd4, - 0xe882, 0x21c6, - 0xe883, 0x4fd5, - 0xe887, 0x209f, - 0xe888, 0x4fd9, - 0xe889, 0x2576, - 0xe88a, 0x4fda, - 0xe88c, 0x2064, - 0xe88d, 0x22bf, - 0xe88e, 0x261c, - 0xe88f, 0x225e, - 0xe890, 0x4fdc, - 0xe8a1, 0x1837, - 0xe940, 0x4fed, - 0xe94c, 0x1e75, - 0xe94d, 0x4ff9, - 0xe954, 0x207d, - 0xe955, 0x5000, - 0xe956, 0x23bf, - 0xe957, 0x2113, - 0xe958, 0x5001, - 0xe95a, 0x23c0, - 0xe95b, 0x5003, - 0xe95d, 0x1e45, - 0xe95e, 0x5005, - 0xe95f, 0x1fd8, - 0xe960, 0x23c4, - 0xe961, 0x5006, - 0xe962, 0x23c2, - 0xe963, 0x2104, - 0xe964, 0x5007, - 0xe965, 0x21bd, - 0xe966, 0x5008, - 0xe967, 0x1f87, - 0xe968, 0x23c3, - 0xe969, 0x5009, - 0xe96c, 0x2269, - 0xe96d, 0x500c, - 0xe975, 0x1f43, - 0xe976, 0x5014, - 0xe977, 0x1f1e, - 0xe978, 0x2679, - 0xe979, 0x1eeb, - 0xe97a, 0x5015, - 0xe97c, 0x1f35, - 0xe97d, 0x208a, - 0xe97e, 0x5017, - 0xe980, 0x23c7, - 0xe981, 0x23c9, - 0xe982, 0x23c6, - 0xe983, 0x5018, - 0xe987, 0x224f, - 0xe988, 0x501c, - 0xe98b, 0x23cb, - 0xe98c, 0x501f, - 0xe98e, 0x21f3, - 0xe98f, 0x5021, - 0xe990, 0x21f7, - 0xe991, 0x23cf, - 0xe992, 0x23ce, - 0xe993, 0x23ca, - 0xe994, 0x23cd, - 0xe995, 0x5022, - 0xe998, 0x23d0, - 0xe999, 0x5025, - 0xe99b, 0x266c, - 0xe99c, 0x5027, - 0xe99d, 0x23c1, - 0xe99e, 0x5028, - 0xe99f, 0x1fee, - 0xe9a0, 0x23d1, - 0xe9a1, 0x1895, - 0xea40, 0x1ff8, - 0xea41, 0x5029, - 0xea44, 0x23d3, - 0xea45, 0x502c, - 0xea48, 0x23d2, - 0xea49, 0x23d4, - 0xea4a, 0x1e98, - 0xea4b, 0x502f, - 0xea50, 0x1f2c, - 0xea51, 0x5034, - 0xea52, 0x23d5, - 0xea53, 0x5035, - 0xea55, 0x1e71, - 0xea56, 0x2691, - 0xea57, 0x5037, - 0xea59, 0x23c5, - 0xea5a, 0x5039, - 0xea80, 0x231a, - 0xea81, 0x505e, - 0xea84, 0x2114, - 0xea85, 0x5061, - 0xea87, 0x2284, - 0xea88, 0x5063, - 0xea8e, 0x221c, - 0xea8f, 0x5069, - 0xea90, 0x1e7e, - 0xea91, 0x204d, - 0xea92, 0x506a, - 0xea96, 0x2201, - 0xea97, 0x506e, - 0xeaa0, 0x1ed9, - 0xeaa1, 0x18f3, - 0xeb40, 0x5077, - 0xeb41, 0x1fb2, - 0xeb42, 0x5078, - 0xeb45, 0x2252, - 0xeb46, 0x507b, - 0xeb48, 0x1f79, - 0xeb49, 0x507d, - 0xeb53, 0x2157, - 0xeb54, 0x5087, - 0xeb55, 0x21bf, - 0xeb56, 0x5088, - 0xeb5b, 0x221f, - 0xeb5c, 0x508d, - 0xeb5d, 0x203d, - 0xeb5e, 0x508e, - 0xeb60, 0x2015, - 0xeb61, 0x5090, - 0xeb62, 0x26a5, - 0xeb63, 0x5091, - 0xeb6d, 0x2156, - 0xeb6e, 0x509b, - 0xeb70, 0x2144, - 0xeb71, 0x509d, - 0xeb72, 0x1e91, - 0xeb73, 0x2257, - 0xeb74, 0x509e, - 0xeb78, 0x200a, - 0xeb79, 0x2092, - 0xeb7a, 0x50a2, - 0xeb80, 0x50a7, - 0xeb85, 0x2250, - 0xeb86, 0x50ac, - 0xeb8a, 0x1ec3, - 0xeb8b, 0x50b0, - 0xeba1, 0x1951, - 0xec40, 0x50c6, - 0xec46, 0x21a8, - 0xec47, 0x50cc, - 0xec56, 0x260d, - 0xec57, 0x50db, - 0xec5a, 0x260c, - 0xec5b, 0x50de, - 0xec5c, 0x260e, - 0xec5d, 0x50df, - 0xec60, 0x2032, - 0xec61, 0x50e2, - 0xec6e, 0x260b, - 0xec6f, 0x50ef, - 0xec76, 0x22c3, - 0xec77, 0x50f6, - 0xec80, 0x50fe, - 0xec96, 0x1f23, - 0xec97, 0x5114, - 0xeca1, 0x19af, - 0xed40, 0x511e, - 0xed46, 0x2695, - 0xed47, 0x5124, - 0xed58, 0x265e, - 0xed59, 0x5135, - 0xed5e, 0x265d, - 0xed5f, 0x513a, - 0xed61, 0x2692, - 0xed62, 0x513c, - 0xed64, 0x265f, - 0xed65, 0x513e, - 0xed66, 0x218d, - 0xed67, 0x20fd, - 0xed68, 0x513f, - 0xed6e, 0x1f40, - 0xed6f, 0x5145, - 0xed74, 0x2465, - 0xed75, 0x514a, - 0xed77, 0x2467, - 0xed78, 0x514c, - 0xed79, 0x2466, - 0xed7a, 0x514d, - 0xed80, 0x5152, - 0xed91, 0x21c9, - 0xed92, 0x5163, - 0xed93, 0x2209, - 0xed94, 0x1ec9, - 0xed95, 0x20e9, - 0xed96, 0x5164, - 0xed97, 0x21ca, - 0xed98, 0x2146, - 0xed99, 0x25c5, - 0xed9a, 0x21dc, - 0xed9b, 0x5165, - 0xed9c, 0x245e, - 0xed9d, 0x5166, - 0xed9e, 0x214f, - 0xed9f, 0x5167, - 0xeda0, 0x25c6, - 0xeda1, 0x1a0d, - 0xee40, 0x25c7, - 0xee41, 0x2241, - 0xee42, 0x218a, - 0xee43, 0x1e2f, - 0xee44, 0x1edc, - 0xee45, 0x5168, - 0xee48, 0x20bf, - 0xee49, 0x2034, - 0xee4a, 0x516b, - 0xee4d, 0x25c9, - 0xee4e, 0x516e, - 0xee52, 0x25c8, - 0xee53, 0x5172, - 0xee55, 0x220e, - 0xee56, 0x5174, - 0xee57, 0x25cb, - 0xee58, 0x5175, - 0xee5e, 0x217d, - 0xee5f, 0x517b, - 0xee61, 0x1f7e, - 0xee62, 0x517d, - 0xee68, 0x25cc, - 0xee69, 0x1fc3, - 0xee6a, 0x5183, - 0xee6c, 0x20b9, - 0xee6d, 0x5185, - 0xee6e, 0x2181, - 0xee6f, 0x5186, - 0xee77, 0x1fda, - 0xee78, 0x518e, - 0xee7d, 0x2173, - 0xee7e, 0x1ee1, - 0xee80, 0x25cd, - 0xee81, 0x5193, - 0xee85, 0x25ce, - 0xee86, 0x21f6, - 0xee87, 0x5197, - 0xee8a, 0x224b, - 0xee8b, 0x25d1, - 0xee8c, 0x519a, - 0xee8d, 0x1ec0, - 0xee8e, 0x519b, - 0xee90, 0x2008, - 0xee91, 0x519d, - 0xee94, 0x25d0, - 0xee95, 0x51a0, - 0xee97, 0x25d2, - 0xee98, 0x51a2, - 0xee99, 0x1f2a, - 0xee9a, 0x51a3, - 0xee9d, 0x1e72, - 0xee9e, 0x25d3, - 0xee9f, 0x51a6, - 0xeea1, 0x1a6b, - 0xef40, 0x21be, - 0xef41, 0x25d4, - 0xef42, 0x2044, - 0xef43, 0x51a8, - 0xef44, 0x25cf, - 0xef45, 0x20f3, - 0xef46, 0x51a9, - 0xef4c, 0x1f00, - 0xef4d, 0x51af, - 0xef52, 0x24cc, - 0xef54, 0x51b4, - 0xef55, 0x2698, - 0xef56, 0x51b5, - 0xef57, 0x2678, - 0xef58, 0x51b6, - 0xef5a, 0x24ce, - 0xef5b, 0x51b8, - 0xef60, 0x24cf, - 0xef61, 0x51bd, - 0xef68, 0x20b8, - 0xef69, 0x51c4, - 0xef6a, 0x24d0, - 0xef6b, 0x51c5, - 0xef6c, 0x24d1, - 0xef6d, 0x51c6, - 0xef77, 0x1ef4, - 0xef78, 0x51d0, - 0xef7a, 0x239b, - 0xef7b, 0x51d2, - 0xef7c, 0x267e, - 0xef7d, 0x51d3, - 0xef80, 0x51d5, - 0xef82, 0x239d, - 0xef83, 0x239f, - 0xef85, 0x51d7, - 0xef86, 0x23a1, - 0xef87, 0x51d8, - 0xef88, 0x1ef1, - 0xef89, 0x51d9, - 0xef8b, 0x221e, - 0xef8c, 0x51db, - 0xef8d, 0x23a2, - 0xef8e, 0x51dc, - 0xef95, 0x214b, - 0xef96, 0x1e36, - 0xef97, 0x2135, - 0xef98, 0x51e3, - 0xef9c, 0x1fad, - 0xef9d, 0x51e7, - 0xef9e, 0x1e53, - 0xef9f, 0x51e8, - 0xefa1, 0x1ac9, - 0xf040, 0x51ea, - 0xf041, 0x23a3, - 0xf042, 0x2203, - 0xf043, 0x51eb, - 0xf044, 0x1ee7, - 0xf045, 0x51ec, - 0xf047, 0x23a4, - 0xf048, 0x2097, - 0xf049, 0x1ee4, - 0xf04a, 0x51ee, - 0xf04e, 0x2238, - 0xf04f, 0x51f2, - 0xf051, 0x23a5, - 0xf052, 0x51f4, - 0xf054, 0x1f9a, - 0xf055, 0x51f6, - 0xf057, 0x21c3, - 0xf058, 0x51f8, - 0xf05e, 0x1f2e, - 0xf05f, 0x51fe, - 0xf068, 0x239c, - 0xf069, 0x5207, - 0xf06c, 0x23a6, - 0xf06d, 0x520a, - 0xf071, 0x239e, - 0xf072, 0x520e, - 0xf073, 0x2035, - 0xf074, 0x23a7, - 0xf075, 0x520f, - 0xf078, 0x23a8, - 0xf079, 0x5212, - 0xf07a, 0x2075, - 0xf07b, 0x5213, - 0xf07d, 0x23a9, - 0xf080, 0x23ab, - 0xf081, 0x1feb, - 0xf082, 0x23ac, - 0xf083, 0x5215, - 0xf087, 0x1f6a, - 0xf088, 0x20f9, - 0xf089, 0x5219, - 0xf08b, 0x2666, - 0xf08c, 0x521b, - 0xf090, 0x2667, - 0xf091, 0x521f, - 0xf092, 0x1e6c, - 0xf093, 0x5220, - 0xf096, 0x23ad, - 0xf097, 0x5223, - 0xf0a1, 0x1b27, - 0xf140, 0x522d, - 0xf152, 0x206d, - 0xf153, 0x2242, - 0xf154, 0x1f02, - 0xf155, 0x523f, - 0xf157, 0x2183, - 0xf158, 0x5241, - 0xf159, 0x1e85, - 0xf15a, 0x21e9, - 0xf15b, 0x5242, - 0xf167, 0x1e57, - 0xf168, 0x524e, - 0xf176, 0x22a5, - 0xf177, 0x2407, - 0xf178, 0x1fca, - 0xf179, 0x525c, - 0xf17a, 0x2402, - 0xf17b, 0x1f82, - 0xf17c, 0x525d, - 0xf17e, 0x2408, - 0xf180, 0x2404, - 0xf181, 0x525f, - 0xf182, 0x2131, - 0xf183, 0x5260, - 0xf184, 0x2184, - 0xf185, 0x5261, - 0xf186, 0x2403, - 0xf187, 0x5262, - 0xf188, 0x206e, - 0xf189, 0x240b, - 0xf18a, 0x5263, - 0xf194, 0x1f3f, - 0xf195, 0x526d, - 0xf198, 0x2067, - 0xf199, 0x5270, - 0xf1a1, 0x1b85, - 0xf240, 0x5278, - 0xf245, 0x1fd7, - 0xf246, 0x527d, - 0xf247, 0x1e83, - 0xf248, 0x527e, - 0xf24b, 0x240f, - 0xf24c, 0x5281, - 0xf253, 0x240e, - 0xf254, 0x20c7, - 0xf255, 0x240d, - 0xf256, 0x5288, - 0xf25c, 0x2412, - 0xf25d, 0x528e, - 0xf25f, 0x20b7, - 0xf260, 0x5290, - 0xf271, 0x23f0, - 0xf272, 0x52a1, - 0xf273, 0x2411, - 0xf274, 0x2414, - 0xf275, 0x52a2, - 0xf276, 0x2170, - 0xf277, 0x52a3, - 0xf27c, 0x2405, - 0xf27d, 0x210c, - 0xf27e, 0x2415, - 0xf280, 0x52a8, - 0xf285, 0x2066, - 0xf286, 0x52ad, - 0xf287, 0x2352, - 0xf288, 0x2413, - 0xf289, 0x2410, - 0xf28a, 0x2416, - 0xf28c, 0x20f1, - 0xf28d, 0x52ae, - 0xf291, 0x240a, - 0xf292, 0x52b2, - 0xf294, 0x2409, - 0xf295, 0x52b4, - 0xf296, 0x2418, - 0xf297, 0x52b5, - 0xf29c, 0x1fa7, - 0xf29d, 0x52ba, - 0xf29e, 0x21fc, - 0xf29f, 0x52bb, - 0xf2a1, 0x1be3, - 0xf340, 0x1fc1, - 0xf341, 0x2406, - 0xf342, 0x52bd, - 0xf345, 0x229c, - 0xf346, 0x52c0, - 0xf348, 0x204e, - 0xf349, 0x52c2, - 0xf34a, 0x241a, - 0xf34b, 0x2419, - 0xf34c, 0x52c3, - 0xf350, 0x240c, - 0xf351, 0x52c7, - 0xf361, 0x1e29, - 0xf362, 0x52d7, - 0xf374, 0x2661, - 0xf375, 0x52e9, - 0xf376, 0x26a4, - 0xf377, 0x2174, - 0xf378, 0x2663, - 0xf379, 0x2662, - 0xf37a, 0x52ea, - 0xf380, 0x52ef, - 0xf38c, 0x2675, - 0xf38d, 0x52fb, - 0xf3a0, 0x214c, - 0xf3a1, 0x1c41, - 0xf440, 0x530e, - 0xf445, 0x267a, - 0xf446, 0x5313, - 0xf450, 0x26a0, - 0xf451, 0x531d, - 0xf457, 0x2668, - 0xf458, 0x5323, - 0xf459, 0x1ed0, - 0xf45a, 0x5324, - 0xf45b, 0x2096, - 0xf45c, 0x5325, - 0xf45d, 0x23cc, - 0xf45e, 0x5326, - 0xf462, 0x23c8, - 0xf463, 0x532a, - 0xf464, 0x223e, - 0xf465, 0x532b, - 0xf475, 0x2665, - 0xf476, 0x533b, - 0xf47c, 0x2664, - 0xf47d, 0x5341, - 0xf47e, 0x2239, - 0xf480, 0x5342, - 0xf494, 0x204a, - 0xf495, 0x5356, - 0xf499, 0x261f, - 0xf49a, 0x535a, - 0xf49c, 0x261e, - 0xf49d, 0x535c, - 0xf4a1, 0x1c9f, - 0xf540, 0x5360, - 0xf545, 0x2620, - 0xf546, 0x5365, - 0xf547, 0x2621, - 0xf548, 0x5366, - 0xf552, 0x2622, - 0xf553, 0x5370, - 0xf554, 0x2627, - 0xf555, 0x1e39, - 0xf556, 0x2625, - 0xf557, 0x5371, - 0xf55e, 0x2629, - 0xf55f, 0x5378, - 0xf561, 0x262e, - 0xf562, 0x262b, - 0xf563, 0x537a, - 0xf56e, 0x262a, - 0xf56f, 0x262d, - 0xf570, 0x5385, - 0xf571, 0x2628, - 0xf572, 0x21b9, - 0xf573, 0x5386, - 0xf580, 0x5392, - 0xf585, 0x2636, - 0xf586, 0x2630, - 0xf587, 0x5397, - 0xf58c, 0x2638, - 0xf58d, 0x539c, - 0xf58e, 0x200d, - 0xf58f, 0x2637, - 0xf590, 0x539d, - 0xf599, 0x2645, - 0xf59a, 0x53a6, - 0xf59b, 0x263a, - 0xf59c, 0x53a7, - 0xf5a0, 0x2643, - 0xf5a1, 0x1cfd, - 0xf640, 0x53ab, - 0xf641, 0x2640, - 0xf642, 0x53ac, - 0xf645, 0x263d, - 0xf646, 0x2641, - 0xf647, 0x53af, - 0xf648, 0x263e, - 0xf649, 0x53b0, - 0xf64b, 0x263f, - 0xf64c, 0x1fc0, - 0xf64d, 0x53b2, - 0xf64e, 0x263b, - 0xf650, 0x53b3, - 0xf654, 0x2642, - 0xf655, 0x53b7, - 0xf658, 0x2644, - 0xf659, 0x53ba, - 0xf661, 0x2639, - 0xf662, 0x53c2, - 0xf663, 0x264c, - 0xf664, 0x53c3, - 0xf66c, 0x2647, - 0xf66d, 0x264b, - 0xf66e, 0x53cb, - 0xf671, 0x2649, - 0xf672, 0x53ce, - 0xf674, 0x2648, - 0xf675, 0x53d0, - 0xf676, 0x264a, - 0xf677, 0x2108, - 0xf678, 0x53d1, - 0xf680, 0x53d8, - 0xf685, 0x264d, - 0xf686, 0x53dd, - 0xf688, 0x2634, - 0xf689, 0x53df, - 0xf68a, 0x2651, - 0xf68b, 0x53e0, - 0xf68d, 0x2650, - 0xf68e, 0x2652, - 0xf68f, 0x53e2, - 0xf692, 0x264f, - 0xf693, 0x53e5, - 0xf696, 0x2632, - 0xf697, 0x264e, - 0xf698, 0x2653, - 0xf699, 0x53e8, - 0xf69a, 0x2657, - 0xf69b, 0x53e9, - 0xf69c, 0x2635, - 0xf69d, 0x53ea, - 0xf69e, 0x2633, - 0xf69f, 0x53eb, - 0xf6a0, 0x2656, - 0xf6a1, 0x1d5b, - 0xf740, 0x53ec, - 0xf742, 0x2654, - 0xf743, 0x53ee, - 0xf749, 0x2658, - 0xf74a, 0x53f4, - 0xf74c, 0x2655, - 0xf74d, 0x1e4d, - 0xf74e, 0x53f6, - 0xf756, 0x265b, - 0xf757, 0x53fe, - 0xf758, 0x265a, - 0xf759, 0x53ff, - 0xf75a, 0x2659, - 0xf75b, 0x202e, - 0xf75c, 0x262f, - 0xf75d, 0x5400, - 0xf761, 0x2646, - 0xf762, 0x5404, - 0xf763, 0x2626, - 0xf764, 0x5405, - 0xf76b, 0x265c, - 0xf76c, 0x540c, - 0xf771, 0x262c, - 0xf772, 0x5411, - 0xf77c, 0x2623, - 0xf77d, 0x541b, - 0xf77e, 0x2631, - 0xf780, 0x541c, - 0xf7a1, 0x1db9, - 0xf840, 0x543d, - 0xf842, 0x209c, - 0xf843, 0x543f, - 0xf846, 0x2580, - 0xf847, 0x5442, - 0xf849, 0x22dc, - 0xf84a, 0x5444, - 0xf850, 0x1f05, - 0xf851, 0x208b, - 0xf852, 0x544a, - 0xf853, 0x2581, - 0xf854, 0x544b, - 0xf863, 0x2583, - 0xf864, 0x2582, - 0xf865, 0x545a, - 0xf866, 0x21ee, - 0xf867, 0x545b, - 0xf872, 0x2182, - 0xf873, 0x5466, - 0xf878, 0x2243, - 0xf879, 0x546b, - 0xf87a, 0x2587, - 0xf87b, 0x546c, - 0xf87c, 0x2588, - 0xf87d, 0x546d, - 0xf880, 0x546f, - 0xf881, 0x2584, - 0xf882, 0x5470, - 0xf884, 0x21fd, - 0xf885, 0x5472, - 0xf886, 0x21ef, - 0xf887, 0x5473, - 0xf88d, 0x258a, - 0xf88e, 0x258c, - 0xf88f, 0x5479, - 0xf899, 0x1f47, - 0xf89a, 0x5483, - 0xf89d, 0x1f1d, - 0xf89e, 0x5486, - 0xf8a0, 0x258d, - 0xf940, 0x5488, - 0xf94e, 0x1fd0, - 0xf94f, 0x2592, - 0xf950, 0x258f, - 0xf951, 0x5496, - 0xf959, 0x2594, - 0xf95a, 0x1ee0, - 0xf95b, 0x549e, - 0xf95d, 0x2591, - 0xf95e, 0x2595, - 0xf95f, 0x54a0, - 0xf967, 0x2597, - 0xf968, 0x54a8, - 0xf969, 0x20b6, - 0xf96a, 0x54a9, - 0xf96c, 0x2598, - 0xf96d, 0x54ab, - 0xf96f, 0x20f6, - 0xf970, 0x54ad, - 0xf980, 0x54bc, - 0xf985, 0x2585, - 0xf986, 0x54c1, - 0xf987, 0x2599, - 0xf988, 0x54c2, - 0xf991, 0x2596, - 0xf992, 0x54cb, - 0xf996, 0x259a, - 0xf997, 0x54cf, - 0xf998, 0x259b, - 0xf999, 0x54d0, - 0xfa40, 0x54d8, - 0xfa42, 0x259d, - 0xfa43, 0x54da, - 0xfa46, 0x259e, - 0xfa47, 0x54dd, - 0xfa4c, 0x234c, - 0xfa4d, 0x54e2, - 0xfa51, 0x1f44, - 0xfa52, 0x54e6, - 0xfa58, 0x2660, - 0xfa59, 0x25a0, - 0xfa5a, 0x54ec, - 0xfa5d, 0x259c, - 0xfa5e, 0x54ef, - 0xfa5f, 0x259f, - 0xfa60, 0x54f0, - 0xfa61, 0x1f6c, - 0xfa62, 0x54f1, - 0xfa70, 0x25a2, - 0xfa71, 0x54ff, - 0xfa74, 0x20ae, - 0xfa75, 0x5502, - 0xfa76, 0x258b, - 0xfa77, 0x25a3, - 0xfa78, 0x5503, - 0xfa80, 0x550a, - 0xfa83, 0x2589, - 0xfa84, 0x25a5, - 0xfa85, 0x550d, - 0xfa8d, 0x25a4, - 0xfa8e, 0x5515, - 0xfa90, 0x25a6, - 0xfa91, 0x2593, - 0xfa92, 0x5517, - 0xfa96, 0x25a7, - 0xfa97, 0x2222, - 0xfa98, 0x25a9, - 0xfa99, 0x551b, - 0xfb40, 0x5523, - 0xfb49, 0x25a8, - 0xfb4a, 0x552c, - 0xfb52, 0x2586, - 0xfb53, 0x5534, - 0xfb57, 0x25a1, - 0xfb58, 0x25aa, - 0xfb59, 0x5538, - 0xfb5a, 0x2590, - 0xfb5b, 0x258e, - 0xfb5c, 0x5539, - 0xfb75, 0x2688, - 0xfb76, 0x5552, - 0xfb79, 0x269e, - 0xfb7a, 0x25fb, - 0xfb7b, 0x5555, - 0xfb7c, 0x1f8c, - 0xfb7d, 0x21f4, - 0xfb7e, 0x5556, - 0xfb80, 0x5557, - 0xfb90, 0x200f, - 0xfb91, 0x5567, - 0xfb9c, 0x2071, - 0xfb9d, 0x5572, - 0xfb9f, 0x25f7, - 0xfba0, 0x5574, - 0xfc40, 0x5575, - 0xfc44, 0x2696, - 0xfc45, 0x5579, - 0xfc49, 0x268f, - 0xfc4a, 0x557d, - 0xfc5a, 0x22da, - 0xfc5b, 0x558d, - 0xfc63, 0x1ec1, - 0xfc64, 0x5595, - 0xfc68, 0x1eb3, - 0xfc69, 0x5599, - 0xfc6f, 0x266a, - 0xfc70, 0x559f, - 0xfc71, 0x268a, - 0xfc72, 0x55a0, - 0xfc74, 0x2669, - 0xfc75, 0x55a2, - 0xfc77, 0x2618, - 0xfc79, 0x55a4, - 0xfc80, 0x55aa, - 0xfc83, 0x261a, - 0xfc84, 0x55ad, - 0xfc8a, 0x2673, - 0xfc8b, 0x55b3, - 0xfd40, 0x55c9, - 0xfd52, 0x20c6, - 0xfd53, 0x226b, - 0xfd54, 0x55db, - 0xfd57, 0x24d3, - 0xfd58, 0x1e86, - 0xfd59, 0x55de, - 0xfd5a, 0x260f, - 0xfd5b, 0x55df, - 0xfd5f, 0x2611, - 0xfd60, 0x55e3, - 0xfd62, 0x2613, - 0xfd63, 0x55e5, - 0xfd65, 0x2610, - 0xfd66, 0x2612, - 0xfd67, 0x2030, - 0xfd68, 0x55e7, - 0xfd69, 0x2671, - 0xfd6a, 0x55e8, - 0xfd6c, 0x2614, - 0xfd6d, 0x55ea, - 0xfd70, 0x2616, - 0xfd71, 0x55ed, - 0xfd72, 0x2615, - 0xfd73, 0x55ee, - 0xfd78, 0x20f2, - 0xfd79, 0x55f3, - 0xfd7d, 0x2617, - 0xfd7e, 0x55f7, - 0xfd80, 0x55f8, - 0xfd88, 0x2037, - 0xfd89, 0x5600, - 0xfd8b, 0x20b3, - 0xfd8c, 0x5602, - 0xfd8f, 0x1f22, - 0xfd90, 0x24ed, - 0xfd91, 0x5605, - 0xfd94, 0x1f34, - 0xfd95, 0x5608, - 0xfd9d, 0x0a02, - 0xfd9e, 0x40d3, - 0xfd9f, 0x200c, - 0xfda0, 0x5083, - 0xfe40, 0x1259, - 0xfe41, 0x5610, - 0xfe80, 0x564e, - 0xa1a2, 0x023f, - 0xa1a3, 0x023e, - 0xa1aa, 0x0256, - 0xa1ab, 0x1e18, - 0xa1ad, 0x0257, - 0xa1b2, 0x0246, - 0xa1fe, 0x1e1a, - 0xa3a1, 0x0242, - 0xa3a8, 0x0244, - 0xa3ac, 0x023d, - 0xa3ae, 0x1e1b, - 0xa3ba, 0x0240, - 0xa3bd, 0x1e1c, - 0xa3bf, 0x0243, - 0xa3db, 0x1e1d, - 0xa3dd, 0x1e1e, - 0xa3df, 0x0258, - 0xa3fb, 0x0254, - 0xa3fd, 0x0255, - 0xa3fe, 0x1e1f, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 gb12GBKEUCVEnc16 = { - 1, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1e24, 0x032e, 0x032f, 0x0330, 0x0331, 0x0332, 0x0333, 0x0334, - 0x0335, 0x0336, 0x0337, 0x0338, 0x0339, 0x033a, 0x033b, 0x033c, - 0x033d, 0x033e, 0x033f, 0x0340, 0x0341, 0x0342, 0x0343, 0x0344, - 0x0345, 0x0346, 0x0347, 0x0348, 0x0349, 0x034a, 0x034b, 0x034c, - 0x034d, 0x034e, 0x034f, 0x0350, 0x0351, 0x0352, 0x0353, 0x0354, - 0x0355, 0x0356, 0x0357, 0x0358, 0x0359, 0x035a, 0x035b, 0x035c, - 0x035d, 0x035e, 0x035f, 0x0360, 0x0361, 0x0362, 0x0363, 0x0364, - 0x0365, 0x0366, 0x0367, 0x0368, 0x0369, 0x036a, 0x036b, 0x036c, - 0x036d, 0x036e, 0x036f, 0x0370, 0x0371, 0x0372, 0x0373, 0x0374, - 0x0375, 0x0376, 0x0377, 0x0378, 0x0379, 0x037a, 0x037b, 0x037c, - 0x037d, 0x037e, 0x037f, 0x0380, 0x0381, 0x0382, 0x0383, 0x0384, - 0x0385, 0x0386, 0x0387, 0x0388, 0x0389, 0x038a, 0x038b, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - gb12GBKEUCVMap2, 4091 -}; - -static Gushort gb12GBTEUCHMap2[4566] = { - 0x0000, 0x0000, - 0xa1a1, 0x0060, - 0xa2b1, 0x00be, - 0xa2e5, 0x00f0, - 0xa2f1, 0x00fa, - 0xa3a1, 0x0106, - 0xa4a1, 0x0164, - 0xa5a1, 0x01b7, - 0xa6a1, 0x020d, - 0xa6c1, 0x0225, - 0xa7a1, 0x025a, - 0xa7d1, 0x027b, - 0xa8a1, 0x029c, - 0xa8c5, 0x02bc, - 0xa9a4, 0x02e2, - 0xaaa1, 0x032e, - 0xaba1, 0x038c, - 0xb0a1, 0x03ac, - 0xb0a8, 0x1e25, - 0xb0a9, 0x03b4, - 0xb0aa, 0x1e26, - 0xb0ab, 0x03b6, - 0xb0ad, 0x1e27, - 0xb0af, 0x03ba, - 0xb0b9, 0x1e29, - 0xb0ba, 0x03c5, - 0xb0c0, 0x1e2a, - 0xb0c1, 0x03cc, - 0xb0d3, 0x1e2b, - 0xb0d4, 0x03df, - 0xb0d5, 0x1e2c, - 0xb0d6, 0x03e1, - 0xb0da, 0x1e2d, - 0xb0db, 0x03e6, - 0xb0dc, 0x1e2e, - 0xb0dd, 0x03e8, - 0xb0e4, 0x1e2f, - 0xb0e5, 0x03f0, - 0xb0ec, 0x1e30, - 0xb0ee, 0x03f9, - 0xb0ef, 0x1e32, - 0xb0f0, 0x03fb, - 0xb0f3, 0x1e33, - 0xb0f4, 0x03ff, - 0xb0f7, 0x1e34, - 0xb0f8, 0x0403, - 0xb0f9, 0x1e35, - 0xb0fa, 0x0405, - 0xb1a1, 0x040a, - 0xb1a5, 0x1e36, - 0xb1a7, 0x0410, - 0xb1a8, 0x1e38, - 0xb1a9, 0x0412, - 0xb1ab, 0x1e39, - 0xb1ac, 0x0415, - 0xb1b2, 0x1e3a, - 0xb1b3, 0x041c, - 0xb1b4, 0x1e3b, - 0xb1b6, 0x041f, - 0xb1b7, 0x1e3d, - 0xb1ba, 0x0423, - 0xb1c1, 0x1e40, - 0xb1c2, 0x042b, - 0xb1ca, 0x1e41, - 0xb1cb, 0x0434, - 0xb1cf, 0x1e42, - 0xb1d1, 0x043a, - 0xb1d2, 0x1e44, - 0xb1d3, 0x043c, - 0xb1d5, 0x1e45, - 0xb1d6, 0x043f, - 0xb1df, 0x1e46, - 0xb1e2, 0x044b, - 0xb1e4, 0x1e49, - 0xb1e5, 0x044e, - 0xb1e7, 0x1e4a, - 0xb1e9, 0x0452, - 0xb1ea, 0x1e4c, - 0xb1eb, 0x0454, - 0xb1ee, 0x1e4d, - 0xb1ef, 0x0458, - 0xb1f1, 0x1e4e, - 0xb1f2, 0x045b, - 0xb1f4, 0x1e4f, - 0xb1f8, 0x0461, - 0xb1fd, 0x1e53, - 0xb1fe, 0x0467, - 0xb2a1, 0x0468, - 0xb2a6, 0x1e54, - 0xb2a8, 0x046f, - 0xb2ac, 0x1e56, - 0xb2ad, 0x0474, - 0xb2b5, 0x1e57, - 0xb2b6, 0x047d, - 0xb2b9, 0x1e58, - 0xb2ba, 0x0481, - 0xb2c6, 0x1e59, - 0xb2c7, 0x048e, - 0xb2ce, 0x1e5a, - 0xb2d8, 0x049f, - 0xb2de, 0x1e64, - 0xb2df, 0x04a6, - 0xb2e0, 0x1e65, - 0xb2e1, 0x04a8, - 0xb2e2, 0x1e66, - 0xb2e4, 0x04ab, - 0xb2ef, 0x1e68, - 0xb2f0, 0x04b7, - 0xb2f3, 0x1e69, - 0xb2fd, 0x04c4, - 0xb3a1, 0x1e73, - 0xb3a3, 0x04c8, - 0xb3a4, 0x1e75, - 0xb3a8, 0x04cd, - 0xb3a9, 0x1e79, - 0xb3aa, 0x04cf, - 0xb3ae, 0x1e7a, - 0xb3af, 0x04d4, - 0xb3b5, 0x1e7b, - 0xb3b6, 0x04db, - 0xb3b9, 0x1e7c, - 0xb3ba, 0x04df, - 0xb3be, 0x1e7d, - 0xb3bf, 0x04e4, - 0xb3c2, 0x1e7e, - 0xb3c3, 0x04e8, - 0xb3c4, 0x1e7f, - 0xb3c5, 0x04ea, - 0xb3c6, 0x1e80, - 0xb3c7, 0x04ec, - 0xb3cd, 0x1e81, - 0xb3ce, 0x04f3, - 0xb3cf, 0x1e82, - 0xb3d0, 0x04f5, - 0xb3d2, 0x1e83, - 0xb3d3, 0x04f8, - 0xb3d9, 0x1e84, - 0xb3da, 0x04ff, - 0xb3db, 0x1e85, - 0xb3dc, 0x0501, - 0xb3dd, 0x1e86, - 0xb3de, 0x0503, - 0xb3e3, 0x1e87, - 0xb3e4, 0x0509, - 0xb3e5, 0x1e88, - 0xb3e7, 0x050c, - 0xb3e8, 0x1e8a, - 0xb3e9, 0x050e, - 0xb3eb, 0x1e8b, - 0xb3ed, 0x0512, - 0xb3ef, 0x1e8d, - 0xb3f0, 0x0515, - 0xb3f1, 0x1e8e, - 0xb3f2, 0x0517, - 0xb3f3, 0x1e8f, - 0xb3f4, 0x0519, - 0xb3fa, 0x1e90, - 0xb3fc, 0x0521, - 0xb4a1, 0x1e92, - 0xb4a3, 0x0526, - 0xb4a5, 0x1e94, - 0xb4a7, 0x052a, - 0xb4ab, 0x1e96, - 0xb4ac, 0x052f, - 0xb4af, 0x1e97, - 0xb4b0, 0x0533, - 0xb4b3, 0x1e98, - 0xb4b5, 0x0538, - 0xb4b8, 0x1e9a, - 0xb4b9, 0x053c, - 0xb4bf, 0x1e9b, - 0xb4c0, 0x0543, - 0xb4c2, 0x1e9c, - 0xb4c3, 0x0546, - 0xb4c7, 0x1e9d, - 0xb4c8, 0x054b, - 0xb4ca, 0x1e9e, - 0xb4cb, 0x054e, - 0xb4cd, 0x1e9f, - 0xb4ce, 0x0551, - 0xb4cf, 0x1ea0, - 0xb4d0, 0x0553, - 0xb4d3, 0x1ea1, - 0xb4d5, 0x0558, - 0xb4da, 0x1ea3, - 0xb4db, 0x055e, - 0xb4dc, 0x1ea4, - 0xb4dd, 0x0560, - 0xb4ed, 0x1ea5, - 0xb4ee, 0x0571, - 0xb4ef, 0x1ea6, - 0xb4f0, 0x0573, - 0xb4f8, 0x1ea7, - 0xb4f9, 0x057c, - 0xb4fb, 0x1ea8, - 0xb4fc, 0x057f, - 0xb5a1, 0x0582, - 0xb5a3, 0x1ea9, - 0xb5a4, 0x0585, - 0xb5a5, 0x1eaa, - 0xb5a9, 0x058a, - 0xb5ac, 0x1eae, - 0xb5ad, 0x058e, - 0xb5ae, 0x1eaf, - 0xb5b0, 0x0591, - 0xb5b1, 0x1eb1, - 0xb5b6, 0x0597, - 0xb5b7, 0x1eb6, - 0xb5b8, 0x0599, - 0xb5ba, 0x1eb7, - 0xb5bd, 0x059e, - 0xb5c6, 0x1eba, - 0xb5c7, 0x05a8, - 0xb5cb, 0x1ebb, - 0xb5cc, 0x05ad, - 0xb5d0, 0x1ebc, - 0xb5d1, 0x05b2, - 0xb5d3, 0x1ebd, - 0xb5d4, 0x05b5, - 0xb5dd, 0x1ebe, - 0xb5e0, 0x05c1, - 0xb5e3, 0x1ec1, - 0xb5e4, 0x05c5, - 0xb5e6, 0x1ec2, - 0xb5e8, 0x05c9, - 0xb5ed, 0x1ec4, - 0xb5ee, 0x05cf, - 0xb5f6, 0x1ec5, - 0xb5f8, 0x05d9, - 0xb5fd, 0x1ec7, - 0xb5fe, 0x05df, - 0xb6a1, 0x05e0, - 0xb6a4, 0x1ec8, - 0xb6a6, 0x05e5, - 0xb6a7, 0x1eca, - 0xb6a8, 0x05e7, - 0xb6a9, 0x1ecb, - 0xb6aa, 0x05e9, - 0xb6ab, 0x1ecc, - 0xb6ac, 0x05eb, - 0xb6af, 0x1ecd, - 0xb6b1, 0x05f0, - 0xb6b3, 0x1ecf, - 0xb6b4, 0x05f3, - 0xb6b7, 0x1ed0, - 0xb6b8, 0x05f7, - 0xb6bf, 0x1ed1, - 0xb6c2, 0x0601, - 0xb6c4, 0x1ed4, - 0xb6c5, 0x0604, - 0xb6c6, 0x1ed5, - 0xb6c7, 0x0606, - 0xb6cd, 0x1ed6, - 0xb6ce, 0x060d, - 0xb6cf, 0x1ed7, - 0xb6d1, 0x0610, - 0xb6d3, 0x1ed9, - 0xb6d5, 0x0614, - 0xb6d6, 0x1edb, - 0xb6d7, 0x0616, - 0xb6d9, 0x1edc, - 0xb6da, 0x0619, - 0xb6db, 0x1edd, - 0xb6dc, 0x061b, - 0xb6e1, 0x1ede, - 0xb6e2, 0x0621, - 0xb6e9, 0x1edf, - 0xb6ea, 0x0629, - 0xb6ec, 0x1ee0, - 0xb6ed, 0x062c, - 0xb6ee, 0x1ee1, - 0xb6f0, 0x062f, - 0xb6f1, 0x1ee3, - 0xb6f2, 0x0631, - 0xb6f6, 0x1ee4, - 0xb6f7, 0x0636, - 0xb6f9, 0x1ee5, - 0xb6fa, 0x0639, - 0xb6fb, 0x1ee6, - 0xb6fd, 0x063c, - 0xb7a1, 0x1ee8, - 0xb7a4, 0x0641, - 0xb7a7, 0x1eeb, - 0xb7a8, 0x0645, - 0xb7af, 0x1eec, - 0xb7b1, 0x064e, - 0xb7b3, 0x1eee, - 0xb7b4, 0x0651, - 0xb7b6, 0x1eef, - 0xb7b8, 0x0655, - 0xb7b9, 0x1ef1, - 0xb7ba, 0x0657, - 0xb7c3, 0x1ef2, - 0xb7c5, 0x0662, - 0xb7c9, 0x1ef4, - 0xb7ca, 0x0667, - 0xb7cc, 0x1ef5, - 0xb7cd, 0x066a, - 0xb7cf, 0x1ef6, - 0xb7d0, 0x066d, - 0xb7d1, 0x1ef7, - 0xb7d2, 0x066f, - 0xb7d7, 0x1ef8, - 0xb7d9, 0x0676, - 0xb7dc, 0x1efa, - 0xb7dd, 0x067a, - 0xb7df, 0x1efb, - 0xb7e2, 0x067f, - 0xb7e3, 0x1efe, - 0xb7e4, 0x0681, - 0xb7e6, 0x1eff, - 0xb7e9, 0x0686, - 0xb7eb, 0x1f02, - 0xb7ee, 0x068b, - 0xb7ef, 0x1f05, - 0xb7f0, 0x068d, - 0xb7f4, 0x1f06, - 0xb7f5, 0x0692, - 0xb7f8, 0x1f07, - 0xb7f9, 0x0696, - 0xb8a1, 0x069c, - 0xb8a7, 0x1f08, - 0xb8a9, 0x06a4, - 0xb8b3, 0x1f0a, - 0xb8b5, 0x06b0, - 0xb8ba, 0x1f0c, - 0xb8bb, 0x06b6, - 0xb8bc, 0x1f0d, - 0xb8bd, 0x06b8, - 0xb8be, 0x1f0e, - 0xb8c0, 0x06bb, - 0xb8c3, 0x1f10, - 0xb8c4, 0x06bf, - 0xb8c6, 0x1f11, - 0xb8c8, 0x06c3, - 0xb8c9, 0x1f13, - 0xb8ca, 0x06c5, - 0xb8cf, 0x1f14, - 0xb8d0, 0x06cb, - 0xb8d3, 0x1f15, - 0xb8d7, 0x06d2, - 0xb8d9, 0x1f19, - 0xb8db, 0x06d6, - 0xb8e4, 0x1f1b, - 0xb8e5, 0x06e0, - 0xb8e9, 0x1f1c, - 0xb8ea, 0x06e5, - 0xb8eb, 0x1f1d, - 0xb8ec, 0x06e7, - 0xb8f3, 0x1f1e, - 0xb8f4, 0x06ef, - 0xb8f5, 0x1f1f, - 0xb8f7, 0x06f2, - 0xb8f8, 0x1f21, - 0xb8f9, 0x06f4, - 0xb9a1, 0x06fa, - 0xb9a8, 0x1f22, - 0xb9a9, 0x0702, - 0xb9ae, 0x1f23, - 0xb9af, 0x0708, - 0xb9b1, 0x1f24, - 0xb9b2, 0x070b, - 0xb9b3, 0x1f25, - 0xb9b4, 0x070d, - 0xb9b5, 0x1f26, - 0xb9b6, 0x070f, - 0xb9b9, 0x1f27, - 0xb9bb, 0x0714, - 0xb9c6, 0x1f29, - 0xb9c7, 0x0720, - 0xb9cb, 0x1f2a, - 0xb9cc, 0x0725, - 0xb9d0, 0x1f2b, - 0xb9d1, 0x072a, - 0xb9d8, 0x1f2c, - 0xb9d9, 0x0732, - 0xb9db, 0x1f2d, - 0xb9dc, 0x0735, - 0xb9dd, 0x1f2e, - 0xb9de, 0x0737, - 0xb9df, 0x1f2f, - 0xb9e0, 0x0739, - 0xb9e1, 0x1f30, - 0xb9e2, 0x073b, - 0xb9e3, 0x1f31, - 0xb9e4, 0x073d, - 0xb9e6, 0x1f32, - 0xb9e7, 0x0740, - 0xb9e9, 0x1f33, - 0xb9ed, 0x0746, - 0xb9ee, 0x1f37, - 0xb9ef, 0x0748, - 0xb9f1, 0x1f38, - 0xb9f2, 0x074b, - 0xb9f3, 0x1f39, - 0xb9f6, 0x074f, - 0xb9f8, 0x1f3c, - 0xb9f9, 0x0752, - 0xb9fa, 0x1f3d, - 0xb9fb, 0x0754, - 0xb9fd, 0x1f3e, - 0xb9fe, 0x0757, - 0xbaa1, 0x0758, - 0xbaa7, 0x1f3f, - 0xbaa8, 0x075f, - 0xbaab, 0x1f40, - 0xbaac, 0x0763, - 0xbaba, 0x1f41, - 0xbabb, 0x0772, - 0xbac5, 0x1f42, - 0xbac6, 0x077d, - 0xbad2, 0x1f43, - 0xbad3, 0x078a, - 0xbad7, 0x1f44, - 0xbad9, 0x0790, - 0xbae4, 0x1f46, - 0xbae5, 0x079c, - 0xbae8, 0x1f47, - 0xbae9, 0x07a0, - 0xbaec, 0x1f48, - 0xbaed, 0x07a4, - 0xbaf3, 0x15e5, - 0xbaf4, 0x07ab, - 0xbaf8, 0x1f49, - 0xbaf9, 0x07b0, - 0xbba1, 0x07b6, - 0xbba4, 0x1f4a, - 0xbba5, 0x07ba, - 0xbba6, 0x1f4b, - 0xbba7, 0x07bc, - 0xbba9, 0x1f4c, - 0xbbab, 0x07c0, - 0xbbad, 0x1f4e, - 0xbbaf, 0x07c4, - 0xbbb0, 0x1f50, - 0xbbb1, 0x07c6, - 0xbbb3, 0x1f51, - 0xbbb4, 0x07c9, - 0xbbb5, 0x1f52, - 0xbbb8, 0x07cd, - 0xbbb9, 0x1f55, - 0xbbbb, 0x07d0, - 0xbbd1, 0x1f57, - 0xbbd2, 0x07e7, - 0xbbd3, 0x1f58, - 0xbbd5, 0x07ea, - 0xbbdf, 0x1f5a, - 0xbbe8, 0x07fd, - 0xbbeb, 0x1f63, - 0xbbec, 0x0801, - 0xbbf1, 0x1f64, - 0xbbf2, 0x0807, - 0xbbf5, 0x1f65, - 0xbbf8, 0x080d, - 0xbbfa, 0x1f68, - 0xbbfb, 0x0810, - 0xbbfd, 0x1f69, - 0xbbfe, 0x0813, - 0xbca1, 0x0814, - 0xbca2, 0x1f6a, - 0xbca3, 0x0816, - 0xbca5, 0x1f6b, - 0xbca7, 0x081a, - 0xbca8, 0x1f6d, - 0xbcaa, 0x081d, - 0xbcab, 0x1f6f, - 0xbcac, 0x081f, - 0xbcad, 0x1f70, - 0xbcae, 0x0821, - 0xbcb6, 0x1f71, - 0xbcb9, 0x082c, - 0xbcbb, 0x1f74, - 0xbcbc, 0x082f, - 0xbcc1, 0x1f75, - 0xbcc2, 0x0835, - 0xbcc3, 0x1f76, - 0xbcc4, 0x0837, - 0xbcc6, 0x1f77, - 0xbcc8, 0x083b, - 0xbcca, 0x1f79, - 0xbccb, 0x083e, - 0xbccc, 0x1f7a, - 0xbcce, 0x0841, - 0xbcd0, 0x1f7c, - 0xbcd1, 0x0844, - 0xbcd4, 0x1f7d, - 0xbcd7, 0x084a, - 0xbcd8, 0x1f80, - 0xbcd9, 0x084c, - 0xbcdb, 0x1f81, - 0xbcdc, 0x084f, - 0xbcdd, 0x1f82, - 0xbcde, 0x0851, - 0xbcdf, 0x1f83, - 0xbce2, 0x0855, - 0xbce3, 0x1f86, - 0xbce5, 0x0858, - 0xbce8, 0x1f88, - 0xbce9, 0x085c, - 0xbcea, 0x1f89, - 0xbced, 0x0860, - 0xbcef, 0x1f8c, - 0xbcf4, 0x0867, - 0xbcf6, 0x1f91, - 0xbcfd, 0x0870, - 0xbda1, 0x0872, - 0xbda2, 0x1f98, - 0xbda8, 0x0879, - 0xbdab, 0x1f9e, - 0xbdad, 0x087e, - 0xbdaf, 0x1fa0, - 0xbdb3, 0x0884, - 0xbdb4, 0x1fa4, - 0xbdb5, 0x0886, - 0xbdba, 0x1fa5, - 0xbdbb, 0x088c, - 0xbdbd, 0x1fa6, - 0xbdc0, 0x0891, - 0xbdc1, 0x1fa9, - 0xbdc5, 0x0896, - 0xbdc8, 0x1fad, - 0xbdcb, 0x089c, - 0xbdce, 0x1fb0, - 0xbdd0, 0x08a1, - 0xbdd7, 0x1fb2, - 0xbdd8, 0x08a9, - 0xbdda, 0x1fb3, - 0xbddb, 0x08ac, - 0xbde0, 0x1fb4, - 0xbde2, 0x08b3, - 0xbdeb, 0x1fb6, - 0xbdec, 0x08bd, - 0xbdf4, 0x1fb7, - 0xbdf9, 0x08ca, - 0xbdfd, 0x1fbc, - 0xbdfe, 0x08cf, - 0xbea1, 0x1fbd, - 0xbea3, 0x08d2, - 0xbea5, 0x1fbf, - 0xbea6, 0x08d5, - 0xbea8, 0x1fc0, - 0xbea9, 0x08d8, - 0xbeaa, 0x1fc1, - 0xbeab, 0x08da, - 0xbead, 0x1fc2, - 0xbeae, 0x08dd, - 0xbeb1, 0x1fc3, - 0xbeb2, 0x08e1, - 0xbeb5, 0x1fc4, - 0xbeb8, 0x08e7, - 0xbeba, 0x1fc7, - 0xbebb, 0x08ea, - 0xbec0, 0x1fc8, - 0xbec1, 0x08f0, - 0xbec9, 0x1fc9, - 0xbeca, 0x08f9, - 0xbed4, 0x1fca, - 0xbed5, 0x0904, - 0xbed9, 0x1fcb, - 0xbeda, 0x0909, - 0xbedd, 0x1fcc, - 0xbede, 0x090d, - 0xbee2, 0x1fcd, - 0xbee3, 0x0912, - 0xbee5, 0x1fce, - 0xbee6, 0x0915, - 0xbee7, 0x1fcf, - 0xbee8, 0x0917, - 0xbee9, 0x1fd0, - 0xbeea, 0x0919, - 0xbeee, 0x1fd1, - 0xbeef, 0x091e, - 0xbef5, 0x1fd2, - 0xbef6, 0x0925, - 0xbef7, 0x1fd3, - 0xbef9, 0x0928, - 0xbefb, 0x1fd5, - 0xbefd, 0x092c, - 0xbfa1, 0x092e, - 0xbfa5, 0x1fd7, - 0xbfa6, 0x0933, - 0xbfaa, 0x1fd8, - 0xbfab, 0x0938, - 0xbfad, 0x1fd9, - 0xbfae, 0x093b, - 0xbfc5, 0x1fda, - 0xbfc6, 0x0953, - 0xbfc7, 0x1fdb, - 0xbfc8, 0x0955, - 0xbfce, 0x1fdc, - 0xbfcf, 0x095c, - 0xbfd1, 0x1fdd, - 0xbfd3, 0x0960, - 0xbfd9, 0x1fdf, - 0xbfda, 0x0967, - 0xbfe2, 0x1fe0, - 0xbfe5, 0x0972, - 0xbfe9, 0x1fe3, - 0xbfea, 0x0977, - 0xbfeb, 0x1fe4, - 0xbfec, 0x0979, - 0xbfed, 0x1fe5, - 0xbfee, 0x097b, - 0xbff3, 0x1fe6, - 0xbff4, 0x0981, - 0xbff5, 0x1fe7, - 0xbff6, 0x0983, - 0xbff7, 0x1fe8, - 0xbff8, 0x0985, - 0xbff9, 0x1fe9, - 0xbffb, 0x0988, - 0xc0a1, 0x1feb, - 0xc0a2, 0x098d, - 0xc0a3, 0x1fec, - 0xc0a4, 0x098f, - 0xc0a9, 0x1fed, - 0xc0aa, 0x0995, - 0xc0ab, 0x1fee, - 0xc0ac, 0x0997, - 0xc0af, 0x1fef, - 0xc0b1, 0x099c, - 0xc0b3, 0x1ff1, - 0xc0b7, 0x09a2, - 0xc0b8, 0x1ff5, - 0xc0c5, 0x09b0, - 0xc0cc, 0x2002, - 0xc0ce, 0x09b9, - 0xc0d4, 0x2004, - 0xc0d5, 0x09c0, - 0xc0d6, 0x2005, - 0xc0d7, 0x09c2, - 0xc0d8, 0x2006, - 0xc0d9, 0x09c4, - 0xc0dd, 0x2007, - 0xc0de, 0x09c9, - 0xc0e0, 0x2008, - 0xc0e1, 0x09cc, - 0xc0e9, 0x2009, - 0xc0ea, 0x09d5, - 0xc0eb, 0x200a, - 0xc0ed, 0x09d8, - 0xc0ef, 0x200c, - 0xc0f2, 0x09dd, - 0xc0f6, 0x200f, - 0xc0fb, 0x09e6, - 0xc1a1, 0x09ea, - 0xc1a4, 0x2014, - 0xc1a6, 0x09ef, - 0xc1a9, 0x2016, - 0xc1ae, 0x09f7, - 0xc1af, 0x201b, - 0xc1b9, 0x0a02, - 0xc1bd, 0x2025, - 0xc1bf, 0x0a08, - 0xc1c2, 0x2027, - 0xc1c3, 0x0a0c, - 0xc1c6, 0x2028, - 0xc1c7, 0x0a10, - 0xc1c9, 0x2029, - 0xc1ca, 0x0a13, - 0xc1cd, 0x202a, - 0xc1ce, 0x0a17, - 0xc1d4, 0x202b, - 0xc1d5, 0x0a1e, - 0xc1d9, 0x202c, - 0xc1dc, 0x0a25, - 0xc1de, 0x202f, - 0xc1df, 0x0a28, - 0xc1e4, 0x2030, - 0xc1e6, 0x0a2f, - 0xc1e9, 0x2032, - 0xc1ea, 0x0a33, - 0xc1eb, 0x2033, - 0xc1ed, 0x0a36, - 0xc1f3, 0x2035, - 0xc1f4, 0x0a3d, - 0xc1f5, 0x2036, - 0xc1f6, 0x0a3f, - 0xc1fa, 0x2037, - 0xc1fe, 0x0a47, - 0xc2a1, 0x0a48, - 0xc2a2, 0x203b, - 0xc2a9, 0x0a50, - 0xc2ab, 0x2042, - 0xc2b4, 0x0a5b, - 0xc2b8, 0x204b, - 0xc2b9, 0x0a60, - 0xc2bc, 0x204c, - 0xc2be, 0x0a65, - 0xc2bf, 0x204e, - 0xc2c0, 0x0a67, - 0xc2c1, 0x204f, - 0xc2c2, 0x0a69, - 0xc2c5, 0x2050, - 0xc2c8, 0x0a6f, - 0xc2cb, 0x2053, - 0xc2d1, 0x0a78, - 0xc2d2, 0x2059, - 0xc2d3, 0x0a7a, - 0xc2d5, 0x205a, - 0xc2dd, 0x0a84, - 0xc2de, 0x2062, - 0xc2e3, 0x0a8a, - 0xc2e6, 0x2067, - 0xc2e9, 0x0a90, - 0xc2ea, 0x206a, - 0xc2ef, 0x0a96, - 0xc2f0, 0x206f, - 0xc2f1, 0x0a98, - 0xc2f2, 0x2070, - 0xc2f6, 0x0a9d, - 0xc2f7, 0x2074, - 0xc2fb, 0x0aa2, - 0xc3a1, 0x2078, - 0xc3a2, 0x0aa7, - 0xc3aa, 0x2079, - 0xc3ab, 0x0ab0, - 0xc3ad, 0x207a, - 0xc3ae, 0x0ab3, - 0xc3b3, 0x207b, - 0xc3b4, 0x1df9, - 0xc3b5, 0x0aba, - 0xc3be, 0x207c, - 0xc3bf, 0x0ac4, - 0xc3c5, 0x207d, - 0xc3c8, 0x0acd, - 0xc3cc, 0x2080, - 0xc3cd, 0x0ad2, - 0xc3ce, 0x2081, - 0xc3cf, 0x0ad4, - 0xc3d5, 0x2082, - 0xc3d7, 0x0adc, - 0xc3d9, 0x2084, - 0xc3da, 0x0adf, - 0xc3e0, 0x2085, - 0xc3e1, 0x0ae6, - 0xc3e5, 0x2086, - 0xc3e6, 0x0aeb, - 0xc3ed, 0x2087, - 0xc3ee, 0x0af3, - 0xc3f0, 0x2088, - 0xc3f1, 0x0af6, - 0xc3f5, 0x2089, - 0xc3f7, 0x0afc, - 0xc3f9, 0x208b, - 0xc3fb, 0x0b00, - 0xc3fd, 0x208d, - 0xc3fe, 0x0b03, - 0xc4a1, 0x0b04, - 0xc4b1, 0x208e, - 0xc4b2, 0x0b15, - 0xc4b6, 0x208f, - 0xc4b7, 0x0b1a, - 0xc4c6, 0x2090, - 0xc4c7, 0x0b2a, - 0xc4c9, 0x2091, - 0xc4ca, 0x0b2d, - 0xc4d1, 0x2092, - 0xc4d2, 0x0b35, - 0xc4d3, 0x2093, - 0xc4d7, 0x0b3a, - 0xc4d9, 0x2097, - 0xc4da, 0x0b3d, - 0xc4e2, 0x2098, - 0xc4e3, 0x0b46, - 0xc4e5, 0x2099, - 0xc4e6, 0x0b49, - 0xc4ec, 0x209a, - 0xc4ed, 0x0b50, - 0xc4f0, 0x209b, - 0xc4f2, 0x0b55, - 0xc4f4, 0x209d, - 0xc4f5, 0x0b58, - 0xc4f6, 0x209e, - 0xc4f9, 0x0b5c, - 0xc4fb, 0x20a1, - 0xc4fd, 0x0b60, - 0xc4fe, 0x20a3, - 0xc5a1, 0x20a4, - 0xc5a3, 0x0b64, - 0xc5a5, 0x20a6, - 0xc5aa, 0x0b6b, - 0xc5b1, 0x20ab, - 0xc5b2, 0x0b73, - 0xc5b5, 0x20ac, - 0xc5b6, 0x0b77, - 0xc5b7, 0x20ad, - 0xc5ba, 0x0b7b, - 0xc5bb, 0x20b0, - 0xc5bc, 0x0b7d, - 0xc5bd, 0x20b1, - 0xc5be, 0x0b7f, - 0xc5cc, 0x20b2, - 0xc5cd, 0x0b8e, - 0xc5d3, 0x20b3, - 0xc5d4, 0x0b95, - 0xc5e2, 0x20b4, - 0xc5e3, 0x0ba4, - 0xc5e7, 0x20b5, - 0xc5e8, 0x0ba9, - 0xc5f4, 0x20b6, - 0xc5f5, 0x0bb6, - 0xc6a1, 0x0bc0, - 0xc6ad, 0x20b7, - 0xc6af, 0x0bce, - 0xc6b5, 0x20b9, - 0xc6b7, 0x0bd6, - 0xc6bb, 0x20bb, - 0xc6bc, 0x0bdb, - 0xc6be, 0x20bc, - 0xc6bf, 0x0bde, - 0xc6c0, 0x20bd, - 0xc6c1, 0x0be0, - 0xc6c3, 0x20be, - 0xc6c5, 0x0be4, - 0xc6cb, 0x20c0, - 0xc6ce, 0x0bed, - 0xc6d3, 0x20c3, - 0xc6d4, 0x0bf3, - 0xc6d7, 0x20c4, - 0xc6d8, 0x0bf7, - 0xc6ea, 0x20c5, - 0xc6ec, 0x0c0b, - 0xc6ef, 0x20c7, - 0xc6f0, 0x0c0f, - 0xc6f1, 0x20c8, - 0xc6f2, 0x0c11, - 0xc6f4, 0x20c9, - 0xc6f5, 0x0c14, - 0xc6f8, 0x20ca, - 0xc6f9, 0x0c18, - 0xc6fd, 0x20cb, - 0xc6fe, 0x0c1d, - 0xc7a1, 0x0c1e, - 0xc7a3, 0x20cc, - 0xc7a4, 0x0c21, - 0xc7a5, 0x20cd, - 0xc7a7, 0x0c24, - 0xc7a8, 0x20cf, - 0xc7aa, 0x0c27, - 0xc7ab, 0x20d1, - 0xc7ac, 0x0c29, - 0xc7ae, 0x20d2, - 0xc7b0, 0x0c2d, - 0xc7b3, 0x20d4, - 0xc7b6, 0x0c33, - 0xc7b9, 0x20d7, - 0xc7bb, 0x0c38, - 0xc7bd, 0x20d9, - 0xc7bf, 0x0c3c, - 0xc7c0, 0x20db, - 0xc7c1, 0x0c3e, - 0xc7c2, 0x20dc, - 0xc7c3, 0x0c40, - 0xc7c5, 0x20dd, - 0xc7c6, 0x0c43, - 0xc7c7, 0x20de, - 0xc7c9, 0x0c46, - 0xc7cc, 0x20e0, - 0xc7cd, 0x0c4a, - 0xc7cf, 0x20e1, - 0xc7d0, 0x0c4d, - 0xc7d4, 0x20e2, - 0xc7d6, 0x0c53, - 0xc7d7, 0x20e4, - 0xc7d8, 0x0c55, - 0xc7de, 0x20e5, - 0xc7df, 0x0c5c, - 0xc7e1, 0x20e6, - 0xc7e4, 0x0c61, - 0xc7ea, 0x20e9, - 0xc7ef, 0x0c6c, - 0xc7f7, 0x20ee, - 0xc7f9, 0x0c76, - 0xc7fb, 0x20f0, - 0xc7fc, 0x0c79, - 0xc7fd, 0x20f1, - 0xc7fe, 0x0c7b, - 0xc8a1, 0x0c7c, - 0xc8a3, 0x20f2, - 0xc8a4, 0x0c7f, - 0xc8a7, 0x20f3, - 0xc8a9, 0x0c84, - 0xc8b0, 0x20f5, - 0xc8b1, 0x0c8c, - 0xc8b5, 0x20f6, - 0xc8b6, 0x0c91, - 0xc8b7, 0x20f7, - 0xc8b8, 0x0c93, - 0xc8c3, 0x20f8, - 0xc8c7, 0x0ca2, - 0xc8c8, 0x20fc, - 0xc8c9, 0x0ca4, - 0xc8cd, 0x20fd, - 0xc8ce, 0x0ca9, - 0xc8cf, 0x20fe, - 0xc8d0, 0x0cab, - 0xc8d2, 0x20ff, - 0xc8d3, 0x0cae, - 0xc8d9, 0x2100, - 0xc8da, 0x0cb5, - 0xc8de, 0x2101, - 0xc8df, 0x0cba, - 0xc8ed, 0x2102, - 0xc8ee, 0x0cc9, - 0xc8f1, 0x2103, - 0xc8f4, 0x0ccf, - 0xc8f7, 0x2106, - 0xc8f9, 0x0cd4, - 0xc8fa, 0x2108, - 0xc8fb, 0x0cd6, - 0xc8fc, 0x2109, - 0xc8fd, 0x0cd8, - 0xc9a1, 0x210a, - 0xc9a2, 0x0cdb, - 0xc9a5, 0x210b, - 0xc9a6, 0x0cdf, - 0xc9a7, 0x210c, - 0xc9a9, 0x0ce2, - 0xc9ac, 0x210e, - 0xc9ad, 0x0ce6, - 0xc9b1, 0x210f, - 0xc9b2, 0x0ceb, - 0xc9b4, 0x2110, - 0xc9b5, 0x0cee, - 0xc9b8, 0x2111, - 0xc9ba, 0x0cf3, - 0xc9c1, 0x2113, - 0xc9c3, 0x0cfc, - 0xc9c4, 0x2115, - 0xc9c5, 0x0cfe, - 0xc9c9, 0x2116, - 0xc9ca, 0x0d03, - 0xc9cb, 0x2117, - 0xc9cc, 0x0d05, - 0xc9cd, 0x2118, - 0xc9ce, 0x0d07, - 0xc9d5, 0x2119, - 0xc9d6, 0x0d0f, - 0xc9dc, 0x211a, - 0xc9dd, 0x0d16, - 0xc9de, 0x211b, - 0xc9df, 0x0d18, - 0xc9e1, 0x211c, - 0xc9e2, 0x0d1b, - 0xc9e3, 0x211d, - 0xc9e4, 0x0d1d, - 0xc9e5, 0x211e, - 0xc9e6, 0x0d1f, - 0xc9e8, 0x211f, - 0xc9e9, 0x0d22, - 0xc9f0, 0x2120, - 0xc9f1, 0x0d2a, - 0xc9f3, 0x2121, - 0xc9f5, 0x0d2e, - 0xc9f6, 0x2123, - 0xc9f7, 0x0d30, - 0xc9f8, 0x2124, - 0xc9fa, 0x0d33, - 0xc9fe, 0x2126, - 0xcaa1, 0x0d38, - 0xcaa4, 0x2127, - 0xcaa7, 0x0d3e, - 0xcaa8, 0x212a, - 0xcaa9, 0x0d40, - 0xcaaa, 0x212b, - 0xcaac, 0x0d43, - 0xcab1, 0x212d, - 0xcab2, 0x0d49, - 0xcab4, 0x212e, - 0xcab7, 0x0d4e, - 0xcabb, 0x2131, - 0xcabc, 0x0d53, - 0xcac6, 0x2132, - 0xcac7, 0x0d5e, - 0xcaca, 0x2133, - 0xcacb, 0x0d62, - 0xcacd, 0x2134, - 0xcacf, 0x0d66, - 0xcad3, 0x2136, - 0xcad5, 0x0d6c, - 0xcad9, 0x2138, - 0xcada, 0x0d71, - 0xcade, 0x2139, - 0xcadf, 0x0d76, - 0xcae0, 0x213a, - 0xcae1, 0x0d78, - 0xcae4, 0x213b, - 0xcae5, 0x0d7c, - 0xcae9, 0x213c, - 0xcaeb, 0x0d82, - 0xcaf4, 0x213e, - 0xcaf6, 0x0d8d, - 0xcaf7, 0x2140, - 0xcaf8, 0x0d8f, - 0xcafa, 0x2141, - 0xcafb, 0x0d92, - 0xcafd, 0x2142, - 0xcafe, 0x0d95, - 0xcba1, 0x0d96, - 0xcba7, 0x2143, - 0xcba8, 0x0d9d, - 0xcbab, 0x2144, - 0xcbac, 0x0da1, - 0xcbad, 0x2145, - 0xcbae, 0x0da3, - 0xcbb3, 0x2146, - 0xcbb4, 0x0da9, - 0xcbb5, 0x2147, - 0xcbb7, 0x0dac, - 0xcbb8, 0x2149, - 0xcbb9, 0x0dae, - 0xcbbf, 0x214a, - 0xcbc0, 0x0db5, - 0xcbc7, 0x214b, - 0xcbc8, 0x0dbd, - 0xcbc9, 0x214c, - 0xcbcd, 0x0dc2, - 0xcbcf, 0x2150, - 0xcbd1, 0x0dc6, - 0xcbd3, 0x2152, - 0xcbd4, 0x0dc9, - 0xcbd5, 0x2153, - 0xcbd6, 0x0dcb, - 0xcbdf, 0x2154, - 0xcbe1, 0x0dd6, - 0xcbe4, 0x2156, - 0xcbe5, 0x0dda, - 0xcbe6, 0x2157, - 0xcbe8, 0x0ddd, - 0xcbea, 0x2159, - 0xcbeb, 0x0de0, - 0xcbef, 0x215a, - 0xcbf1, 0x0de6, - 0xcbf5, 0x215c, - 0xcbf7, 0x0dec, - 0xcbf8, 0x215e, - 0xcbf9, 0x0dee, - 0xcca1, 0x215f, - 0xcca3, 0x0df6, - 0xcca8, 0x2161, - 0xcca9, 0x0dfc, - 0xccac, 0x2162, - 0xccad, 0x0e00, - 0xccaf, 0x2163, - 0xccb4, 0x0e07, - 0xccb7, 0x2168, - 0xccb9, 0x0e0c, - 0xccbe, 0x216a, - 0xccbf, 0x0e12, - 0xccc0, 0x216b, - 0xccc1, 0x0e14, - 0xcccc, 0x216c, - 0xcccd, 0x0e20, - 0xccce, 0x216d, - 0xcccf, 0x0e22, - 0xccd0, 0x216e, - 0xccd1, 0x0e24, - 0xccd6, 0x216f, - 0xccd7, 0x0e2a, - 0xccda, 0x2170, - 0xccdb, 0x0e2e, - 0xccdc, 0x2171, - 0xccdd, 0x0e30, - 0xcce0, 0x2172, - 0xcce1, 0x0e34, - 0xcce2, 0x2173, - 0xcce3, 0x0e36, - 0xcce5, 0x2174, - 0xcce6, 0x0e39, - 0xccf5, 0x2175, - 0xccf6, 0x0e49, - 0xccf9, 0x2176, - 0xccfb, 0x0e4e, - 0xccfc, 0x2178, - 0xcda1, 0x0e52, - 0xcdad, 0x217b, - 0xcdae, 0x0e5f, - 0xcdb3, 0x217c, - 0xcdb4, 0x0e65, - 0xcdb7, 0x217d, - 0xcdb8, 0x0e69, - 0xcdbc, 0x217e, - 0xcdbd, 0x0e6e, - 0xcdbf, 0x217f, - 0xcdc0, 0x0e71, - 0xcdc5, 0x2180, - 0xcdc6, 0x0e77, - 0xcdc7, 0x2181, - 0xcdc8, 0x0e79, - 0xcdd2, 0x2182, - 0xcdd3, 0x0e84, - 0xcdd4, 0x2183, - 0xcdd7, 0x0e88, - 0xcddd, 0x2186, - 0xcdde, 0x0e8f, - 0xcde0, 0x2187, - 0xcde1, 0x0e92, - 0xcde4, 0x2188, - 0xcde6, 0x0e97, - 0xcde7, 0x218a, - 0xcde8, 0x0e99, - 0xcdf2, 0x218b, - 0xcdf3, 0x0ea4, - 0xcdf8, 0x218c, - 0xcdf9, 0x0eaa, - 0xcea1, 0x0eb0, - 0xcea4, 0x218d, - 0xcea6, 0x0eb5, - 0xcea7, 0x218f, - 0xcea8, 0x0eb7, - 0xceaa, 0x2190, - 0xceae, 0x0ebd, - 0xceb0, 0x2194, - 0xceb2, 0x0ec1, - 0xceb3, 0x2196, - 0xceb4, 0x0ec3, - 0xcebd, 0x2197, - 0xcebe, 0x0ecd, - 0xcec0, 0x2198, - 0xcec1, 0x0ed0, - 0xcec5, 0x2199, - 0xcec7, 0x0ed6, - 0xcec8, 0x219b, - 0xcec9, 0x0ed8, - 0xceca, 0x219c, - 0xcecb, 0x0eda, - 0xcece, 0x219d, - 0xced2, 0x0ee1, - 0xced8, 0x21a1, - 0xcedb, 0x0eea, - 0xcedc, 0x21a4, - 0xcedd, 0x0eec, - 0xcede, 0x21a5, - 0xcee0, 0x0eef, - 0xceeb, 0x21a7, - 0xceec, 0x0efb, - 0xceed, 0x21a8, - 0xceee, 0x0efd, - 0xcef1, 0x21a9, - 0xcef2, 0x0f01, - 0xcef3, 0x21aa, - 0xcef4, 0x0f03, - 0xcefd, 0x21ab, - 0xcfa1, 0x0f0e, - 0xcfae, 0x21ad, - 0xcfaf, 0x0f1c, - 0xcfb0, 0x21ae, - 0xcfb1, 0x0f1e, - 0xcfb3, 0x21af, - 0xcfb4, 0x0f21, - 0xcfb7, 0x21b0, - 0xcfb9, 0x0f26, - 0xcfba, 0x21b2, - 0xcfbb, 0x0f28, - 0xcfbd, 0x21b3, - 0xcfbe, 0x0f2b, - 0xcfbf, 0x21b4, - 0xcfc2, 0x0f2f, - 0xcfc5, 0x21b7, - 0xcfc6, 0x0f33, - 0xcfc7, 0x21b8, - 0xcfc8, 0x0f35, - 0xcfca, 0x21b9, - 0xcfcc, 0x0f39, - 0xcfcd, 0x21bb, - 0xcfcf, 0x0f3c, - 0xcfd0, 0x21bd, - 0xcfd1, 0x0f3e, - 0xcfd4, 0x21be, - 0xcfd9, 0x0f46, - 0xcfda, 0x21c3, - 0xcfdb, 0x0f48, - 0xcfdc, 0x21c4, - 0xcfdd, 0x0f4a, - 0xcfdf, 0x21c5, - 0xcfe0, 0x0f4d, - 0xcfe2, 0x21c6, - 0xcfe3, 0x0f50, - 0xcfe7, 0x21c7, - 0xcfe8, 0x0f55, - 0xcfea, 0x21c8, - 0xcfeb, 0x0f58, - 0xcfec, 0x21c9, - 0xcfed, 0x0f5a, - 0xcfee, 0x21ca, - 0xcfef, 0x0f5c, - 0xcff4, 0x21cb, - 0xcff5, 0x0f62, - 0xcff9, 0x21cc, - 0xcffb, 0x0f68, - 0xcffe, 0x21ce, - 0xd0a1, 0x0f6c, - 0xd0a5, 0x21cf, - 0xd0a6, 0x0f71, - 0xd0ad, 0x21d0, - 0xd0af, 0x0f7a, - 0xd0b2, 0x21d2, - 0xd0b5, 0x0f80, - 0xd0ba, 0x21d5, - 0xd0bc, 0x0f87, - 0xd0bf, 0x21d7, - 0xd0c0, 0x0f8b, - 0xd0c6, 0x21d8, - 0xd0c7, 0x0f92, - 0xd0cb, 0x21d9, - 0xd0cc, 0x0f97, - 0xd0e2, 0x21da, - 0xd0e3, 0x0fae, - 0xd0e5, 0x21db, - 0xd0e6, 0x0fb1, - 0xd0eb, 0x21dc, - 0xd0ec, 0x0fb7, - 0xd0ed, 0x21dd, - 0xd0ee, 0x0fb9, - 0xd0f7, 0x21de, - 0xd0fa, 0x0fc5, - 0xd0fc, 0x21e1, - 0xd0fd, 0x0fc8, - 0xd1a1, 0x21e2, - 0xd1a3, 0x0fcc, - 0xd1a4, 0x21e4, - 0xd1a5, 0x0fce, - 0xd1a7, 0x21e5, - 0xd1a8, 0x0fd1, - 0xd1ab, 0x21e6, - 0xd1ac, 0x0fd5, - 0xd1af, 0x21e7, - 0xd1b2, 0x0fdb, - 0xd1b5, 0x21ea, - 0xd1b8, 0x0fe1, - 0xd1b9, 0x21ed, - 0xd1ba, 0x0fe3, - 0xd1bb, 0x21ee, - 0xd1bd, 0x0fe6, - 0xd1c6, 0x21f0, - 0xd1c9, 0x0ff2, - 0xd1cb, 0x21f3, - 0xd1cc, 0x0ff5, - 0xd1ce, 0x21f4, - 0xd1d0, 0x0ff9, - 0xd1d5, 0x21f6, - 0xd1d7, 0x1000, - 0xd1de, 0x21f8, - 0xd1df, 0x1008, - 0xd1e1, 0x21f9, - 0xd1e3, 0x100c, - 0xd1e8, 0x21fb, - 0xd1ea, 0x1013, - 0xd1ec, 0x21fd, - 0xd1ed, 0x1016, - 0xd1ee, 0x21fe, - 0xd1f0, 0x1019, - 0xd1f1, 0x2200, - 0xd1f2, 0x101b, - 0xd1f4, 0x2201, - 0xd1f5, 0x101e, - 0xd1f7, 0x2202, - 0xd1fa, 0x1023, - 0xd2a1, 0x1028, - 0xd2a2, 0x2205, - 0xd2a3, 0x102a, - 0xd2a5, 0x2206, - 0xd2a6, 0x102d, - 0xd2a9, 0x2207, - 0xd2aa, 0x1031, - 0xd2af, 0x2208, - 0xd2b0, 0x1037, - 0xd2b3, 0x2209, - 0xd2b4, 0x103b, - 0xd2b5, 0x220a, - 0xd2b7, 0x103e, - 0xd2bd, 0x220c, - 0xd2be, 0x1045, - 0xd2bf, 0x220d, - 0xd2c0, 0x1047, - 0xd2c3, 0x220e, - 0xd2c4, 0x104b, - 0xd2c5, 0x220f, - 0xd2c6, 0x104d, - 0xd2c7, 0x2210, - 0xd2c8, 0x104f, - 0xd2cf, 0x2211, - 0xd2d0, 0x1057, - 0xd2d5, 0x2212, - 0xd2d6, 0x105d, - 0xd2da, 0x2213, - 0xd2db, 0x1062, - 0xd2e4, 0x2214, - 0xd2e6, 0x106d, - 0xd2e8, 0x2216, - 0xd2ec, 0x1073, - 0xd2ef, 0x221a, - 0xd2f0, 0x1077, - 0xd2f1, 0x221b, - 0xd2f2, 0x1079, - 0xd2f5, 0x221c, - 0xd2f6, 0x107d, - 0xd2f8, 0x221d, - 0xd2f9, 0x1080, - 0xd2fb, 0x221e, - 0xd2fc, 0x1083, - 0xd2fe, 0x221f, - 0xd3a1, 0x1086, - 0xd3a3, 0x2220, - 0xd3ad, 0x1092, - 0xd3ae, 0x222a, - 0xd3af, 0x1094, - 0xd3b1, 0x222b, - 0xd3b2, 0x1097, - 0xd3b4, 0x222c, - 0xd3b7, 0x109c, - 0xd3b8, 0x222f, - 0xd3b9, 0x109e, - 0xd3bb, 0x2230, - 0xd3bc, 0x10a1, - 0xd3c5, 0x2231, - 0xd3c6, 0x10ab, - 0xd3c7, 0x2232, - 0xd3c8, 0x10ad, - 0xd3ca, 0x2233, - 0xd3cd, 0x10b2, - 0xd3d5, 0x2236, - 0xd3d6, 0x10bb, - 0xd3df, 0x2237, - 0xd3e1, 0x10c6, - 0xd3e3, 0x2239, - 0xd3e4, 0x10c9, - 0xd3e6, 0x223a, - 0xd3e7, 0x10cc, - 0xd3eb, 0x223b, - 0xd3ed, 0x10d2, - 0xd3ef, 0x223d, - 0xd3f0, 0x10d5, - 0xd3f4, 0x223e, - 0xd3f5, 0x10da, - 0xd3fc, 0x223f, - 0xd3fd, 0x10e2, - 0xd3fe, 0x2240, - 0xd4a1, 0x10e4, - 0xd4a4, 0x2241, - 0xd4a5, 0x10e8, - 0xd4a6, 0x2242, - 0xd4a9, 0x10ec, - 0xd4af, 0x2245, - 0xd4b3, 0x10f6, - 0xd4b5, 0x2249, - 0xd4b7, 0x10fa, - 0xd4b8, 0x224b, - 0xd4b9, 0x10fc, - 0xd4bc, 0x224c, - 0xd4bd, 0x1100, - 0xd4be, 0x224d, - 0xd4c0, 0x1103, - 0xd4c4, 0x224f, - 0xd4c5, 0x1108, - 0xd4c6, 0x2250, - 0xd4c8, 0x110b, - 0xd4c9, 0x2252, - 0xd4ca, 0x110d, - 0xd4cb, 0x2253, - 0xd4cf, 0x1112, - 0xd4d3, 0x2257, - 0xd4d4, 0x1117, - 0xd4d8, 0x2258, - 0xd4d9, 0x111c, - 0xd4dc, 0x2259, - 0xd4e1, 0x1124, - 0xd4e4, 0x225e, - 0xd4e5, 0x1128, - 0xd4e6, 0x225f, - 0xd4e7, 0x112a, - 0xd4ee, 0x2260, - 0xd4ef, 0x1132, - 0xd4f0, 0x2261, - 0xd4f5, 0x1138, - 0xd4f9, 0x2266, - 0xd4fa, 0x113d, - 0xd4fe, 0x2267, - 0xd5a1, 0x2268, - 0xd5a3, 0x1144, - 0xd5a9, 0x226a, - 0xd5aa, 0x114b, - 0xd5ab, 0x226b, - 0xd5ac, 0x114d, - 0xd5ae, 0x226c, - 0xd5af, 0x1150, - 0xd5b1, 0x226d, - 0xd5b2, 0x1153, - 0xd5b5, 0x226e, - 0xd5b9, 0x115a, - 0xd5bb, 0x2272, - 0xd5bc, 0x115d, - 0xd5bd, 0x2273, - 0xd5be, 0x115f, - 0xd5c0, 0x2274, - 0xd5c1, 0x1162, - 0xd5c5, 0x2275, - 0xd5c6, 0x1167, - 0xd5c7, 0x2276, - 0xd5c8, 0x1169, - 0xd5ca, 0x2277, - 0xd5cc, 0x116d, - 0xd5cd, 0x2279, - 0xd5ce, 0x116f, - 0xd5d4, 0x227a, - 0xd5d5, 0x1176, - 0xd5dd, 0x227b, - 0xd5df, 0x1180, - 0xd5e0, 0x227d, - 0xd5e1, 0x1182, - 0xd5e2, 0x227e, - 0xd5e3, 0x1184, - 0xd5ea, 0x227f, - 0xd5ed, 0x118e, - 0xd5ef, 0x2282, - 0xd5f0, 0x1191, - 0xd5f2, 0x2283, - 0xd5f4, 0x1195, - 0xd5f7, 0x15eb, - 0xd5f8, 0x1199, - 0xd6a1, 0x2285, - 0xd6a5, 0x11a4, - 0xd6af, 0x2289, - 0xd6b1, 0x11b0, - 0xd6b4, 0x228b, - 0xd6b5, 0x11b4, - 0xd6bb, 0x228c, - 0xd6bc, 0x11bb, - 0xd6bd, 0x228d, - 0xd6be, 0x11bd, - 0xd6bf, 0x228e, - 0xd6c1, 0x11c0, - 0xd6c4, 0x2290, - 0xd6c5, 0x11c4, - 0xd6ca, 0x2291, - 0xd6cb, 0x11ca, - 0xd6cd, 0x2292, - 0xd6ce, 0x11cd, - 0xd6d3, 0x2293, - 0xd6d4, 0x11d3, - 0xd6d5, 0x2294, - 0xd6d8, 0x11d7, - 0xd6da, 0x2297, - 0xd6db, 0x11da, - 0xd6df, 0x2298, - 0xd6e0, 0x11df, - 0xd6e1, 0x2299, - 0xd6e2, 0x11e1, - 0xd6e5, 0x229a, - 0xd6e6, 0x11e5, - 0xd6e7, 0x229b, - 0xd6e9, 0x11e8, - 0xd6ee, 0x229d, - 0xd6f0, 0x11ef, - 0xd6f2, 0x229f, - 0xd6f3, 0x11f2, - 0xd6f5, 0x22a0, - 0xd6f7, 0x11f6, - 0xd6fc, 0x22a2, - 0xd7a1, 0x11fe, - 0xd7a4, 0x22a5, - 0xd7a5, 0x1202, - 0xd7a8, 0x22a6, - 0xd7ab, 0x1208, - 0xd7ac, 0x22a9, - 0xd7ad, 0x120a, - 0xd7ae, 0x22aa, - 0xd7b2, 0x120f, - 0xd7b3, 0x22ae, - 0xd7b5, 0x1212, - 0xd7b6, 0x22b0, - 0xd7b7, 0x1214, - 0xd7b8, 0x22b1, - 0xd7bd, 0x121a, - 0xd7c7, 0x22b6, - 0xd7c8, 0x1225, - 0xd7ca, 0x22b7, - 0xd7cb, 0x1228, - 0xd7d5, 0x22b8, - 0xd7d6, 0x1233, - 0xd7db, 0x22b9, - 0xd7df, 0x123c, - 0xd7e7, 0x22bd, - 0xd7e8, 0x1245, - 0xd7e9, 0x22be, - 0xd7eb, 0x1248, - 0xd8a1, 0x1257, - 0xd8c4, 0x22c0, - 0xd8c5, 0x127b, - 0xd8c7, 0x22c1, - 0xd8c8, 0x127e, - 0xd8c9, 0x22c2, - 0xd8ca, 0x1280, - 0xd8cc, 0x22c3, - 0xd8ce, 0x1284, - 0xd8d0, 0x22c5, - 0xd8d2, 0x1288, - 0xd8d3, 0x22c7, - 0xd8d4, 0x128a, - 0xd8d9, 0x22c8, - 0xd8da, 0x1290, - 0xd8db, 0x22c9, - 0xd8dd, 0x1293, - 0xd8f1, 0x22cb, - 0xd8f2, 0x12a8, - 0xd8f6, 0x22cc, - 0xd8f8, 0x12ae, - 0xd9a1, 0x12b5, - 0xd9ad, 0x22ce, - 0xd9ae, 0x12c2, - 0xd9af, 0x22cf, - 0xd9b0, 0x12c4, - 0xd9b1, 0x22d0, - 0xd9b4, 0x12c8, - 0xd9c7, 0x22d3, - 0xd9c8, 0x12dc, - 0xd9cd, 0x22d4, - 0xd9d1, 0x12e5, - 0xd9dd, 0x22d8, - 0xd9de, 0x12f2, - 0xd9e1, 0x22d9, - 0xd9e2, 0x12f6, - 0xd9e4, 0x22da, - 0xd9e5, 0x12f9, - 0xd9e6, 0x22db, - 0xd9e7, 0x12fb, - 0xd9ec, 0x22dc, - 0xd9ed, 0x1301, - 0xd9f4, 0x22dd, - 0xd9f6, 0x130a, - 0xdaa1, 0x1313, - 0xdaa5, 0x22df, - 0xdae0, 0x1352, - 0xdaea, 0x231a, - 0xdaeb, 0x135d, - 0xdaf7, 0x231b, - 0xdaf8, 0x136a, - 0xdaf9, 0x231c, - 0xdafa, 0x136c, - 0xdafe, 0x231d, - 0xdba1, 0x1371, - 0xdba3, 0x231e, - 0xdba4, 0x1374, - 0xdba6, 0x231f, - 0xdba7, 0x1377, - 0xdba9, 0x2320, - 0xdbab, 0x137b, - 0xdbbb, 0x2322, - 0xdbbc, 0x138c, - 0xdbbd, 0x2323, - 0xdbbe, 0x138e, - 0xdbcf, 0x2324, - 0xdbd0, 0x13a0, - 0xdbd1, 0x2325, - 0xdbd2, 0x13a2, - 0xdbdb, 0x2326, - 0xdbdc, 0x13ac, - 0xdbde, 0x2327, - 0xdbdf, 0x13af, - 0xdbe2, 0x2328, - 0xdbe3, 0x13b3, - 0xdbe4, 0x2329, - 0xdbe5, 0x13b5, - 0xdbeb, 0x232a, - 0xdbec, 0x13bc, - 0xdbee, 0x232b, - 0xdbef, 0x13bf, - 0xdbf1, 0x232c, - 0xdbf2, 0x13c2, - 0xdbf5, 0x232d, - 0xdbf8, 0x13c8, - 0xdca1, 0x13cf, - 0xdcbc, 0x2330, - 0xdcbd, 0x13eb, - 0xdcbf, 0x2331, - 0xdcc0, 0x13ee, - 0xdcc2, 0x2332, - 0xdcc3, 0x13f1, - 0xdcc8, 0x2333, - 0xdccb, 0x13f9, - 0xdcd1, 0x2336, - 0xdcd2, 0x1400, - 0xdcd7, 0x2337, - 0xdcd8, 0x1406, - 0xdce0, 0x2338, - 0xdce1, 0x140f, - 0xdce3, 0x2339, - 0xdce5, 0x1413, - 0xdce9, 0x233b, - 0xdceb, 0x1419, - 0xdcf1, 0x233d, - 0xdcf2, 0x1420, - 0xdcf6, 0x233e, - 0xdcf7, 0x1425, - 0xdcf9, 0x233f, - 0xdcfa, 0x1428, - 0xdcfd, 0x2340, - 0xdda1, 0x2342, - 0xdda2, 0x142e, - 0xdda3, 0x2343, - 0xdda8, 0x1434, - 0xddaa, 0x2348, - 0xddac, 0x1438, - 0xddb2, 0x234a, - 0xddb3, 0x143f, - 0xddb5, 0x234b, - 0xddb6, 0x1442, - 0xddba, 0x234c, - 0xddbc, 0x1448, - 0xddd3, 0x234e, - 0xddd4, 0x1460, - 0xdddb, 0x234f, - 0xdddc, 0x1468, - 0xddde, 0x2350, - 0xdddf, 0x146b, - 0xdde4, 0x2351, - 0xdde5, 0x1471, - 0xddeb, 0x2352, - 0xddec, 0x1478, - 0xddf1, 0x2353, - 0xddf2, 0x147e, - 0xddf6, 0x2354, - 0xddf8, 0x1484, - 0xddfc, 0x2356, - 0xddfd, 0x1489, - 0xddfe, 0x2357, - 0xdea1, 0x148b, - 0xdead, 0x2358, - 0xdeae, 0x1498, - 0xdeb4, 0x2359, - 0xdeb5, 0x149f, - 0xdeba, 0x235a, - 0xdebb, 0x14a5, - 0xdec6, 0x235b, - 0xdec7, 0x14b1, - 0xdecf, 0x235c, - 0xded0, 0x14ba, - 0xded1, 0x235d, - 0xded3, 0x14bd, - 0xded8, 0x235f, - 0xded9, 0x14c3, - 0xdee2, 0x2360, - 0xdee3, 0x14cd, - 0xdee8, 0x2361, - 0xdee9, 0x14d3, - 0xdeec, 0x2362, - 0xdeed, 0x14d7, - 0xdef3, 0x2363, - 0xdef4, 0x14de, - 0xdefc, 0x2364, - 0xdefd, 0x14e7, - 0xdfa1, 0x14e9, - 0xdfa2, 0x2365, - 0xdfa4, 0x14ec, - 0xdfa5, 0x2367, - 0xdfa6, 0x14ee, - 0xdfb4, 0x2368, - 0xdfb5, 0x14fd, - 0xdfbc, 0x2369, - 0xdfbe, 0x1506, - 0xdfbf, 0x236b, - 0xdfc0, 0x1508, - 0xdfc2, 0x236c, - 0xdfc4, 0x150c, - 0xdfcc, 0x236e, - 0xdfcd, 0x1515, - 0xdfd0, 0x236f, - 0xdfd1, 0x1519, - 0xdfd5, 0x2370, - 0xdfd6, 0x151e, - 0xdfd8, 0x2371, - 0xdfda, 0x1522, - 0xdfdc, 0x2373, - 0xdfdd, 0x1525, - 0xdfe0, 0x2374, - 0xdfe1, 0x1529, - 0xdfe2, 0x2375, - 0xdfe3, 0x152b, - 0xdfe6, 0x2376, - 0xdfe7, 0x152f, - 0xdfe9, 0x2377, - 0xdfea, 0x1532, - 0xdfeb, 0x2378, - 0xdfec, 0x1534, - 0xdfef, 0x2379, - 0xdff0, 0x1538, - 0xdff5, 0x237a, - 0xdff6, 0x153e, - 0xdff9, 0x237b, - 0xdffa, 0x1542, - 0xe0a1, 0x1547, - 0xe0b6, 0x237c, - 0xe0b8, 0x155e, - 0xe0bf, 0x237e, - 0xe0c0, 0x1566, - 0xe0c8, 0x237f, - 0xe0c9, 0x156f, - 0xe0ce, 0x2380, - 0xe0cf, 0x1575, - 0xe0d3, 0x2381, - 0xe0d4, 0x157a, - 0xe0e0, 0x2382, - 0xe0e1, 0x1587, - 0xe0f0, 0x2383, - 0xe0f1, 0x1597, - 0xe0f8, 0x2384, - 0xe0f9, 0x159f, - 0xe0fc, 0x2385, - 0xe1a1, 0x15a5, - 0xe1ab, 0x2388, - 0xe1ac, 0x15b0, - 0xe1ad, 0x2389, - 0xe1ae, 0x15b2, - 0xe1b0, 0x238a, - 0xe1b1, 0x15b5, - 0xe1b4, 0x238b, - 0xe1b5, 0x15b9, - 0xe1bb, 0x238c, - 0xe1bc, 0x15c0, - 0xe1bd, 0x238d, - 0xe1be, 0x15c2, - 0xe1c0, 0x238e, - 0xe1c2, 0x15c6, - 0xe1c9, 0x2390, - 0xe1ca, 0x15ce, - 0xe1d0, 0x2391, - 0xe1d1, 0x15d5, - 0xe1db, 0x2392, - 0xe1dc, 0x15e0, - 0xe1e1, 0x07aa, - 0xe1e2, 0x2393, - 0xe1e3, 0x15e7, - 0xe1e7, 0x1198, - 0xe1e8, 0x15ec, - 0xe1ee, 0x2394, - 0xe1f0, 0x15f4, - 0xe1f6, 0x2396, - 0xe1f7, 0x15fb, - 0xe1f8, 0x2397, - 0xe1f9, 0x15fd, - 0xe1fd, 0x2398, - 0xe1fe, 0x1602, - 0xe2a1, 0x1603, - 0xe2a4, 0x2399, - 0xe2a5, 0x1607, - 0xe2a8, 0x239a, - 0xe2a9, 0x160b, - 0xe2bb, 0x239b, - 0xe2c5, 0x10c5, - 0xe2c6, 0x23a5, - 0xe2cf, 0x1631, - 0xe2d0, 0x23ae, - 0xe2d1, 0x1633, - 0xe2d9, 0x23af, - 0xe2da, 0x163c, - 0xe2e3, 0x23b0, - 0xe2e5, 0x1647, - 0xe2e6, 0x23b2, - 0xe2e7, 0x1649, - 0xe2e9, 0x23b3, - 0xe2ec, 0x164e, - 0xe2f8, 0x23b6, - 0xe2f9, 0x165b, - 0xe2fa, 0x23b7, - 0xe2fe, 0x1660, - 0xe3a1, 0x1661, - 0xe3a2, 0x23bb, - 0xe3a3, 0x1663, - 0xe3a5, 0x23bc, - 0xe3a6, 0x1666, - 0xe3ab, 0x23bd, - 0xe3ac, 0x166c, - 0xe3b4, 0x23be, - 0xe3b5, 0x1675, - 0xe3c5, 0x23bf, - 0xe3dc, 0x169c, - 0xe3e3, 0x23d6, - 0xe3e4, 0x16a4, - 0xe3ed, 0x23d7, - 0xe3ee, 0x16ae, - 0xe3f1, 0x23d8, - 0xe3f3, 0x16b3, - 0xe3f8, 0x23da, - 0xe3f9, 0x16b9, - 0xe3fe, 0x23db, - 0xe4a1, 0x16bf, - 0xe4a4, 0x23dc, - 0xe4a6, 0x16c4, - 0xe4ab, 0x23de, - 0xe4ac, 0x16ca, - 0xe4af, 0x23df, - 0xe4b2, 0x16d0, - 0xe4b5, 0x23e2, - 0xe4b7, 0x16d5, - 0xe4c2, 0x23e4, - 0xe4c3, 0x16e1, - 0xe4c5, 0x23e5, - 0xe4c6, 0x16e4, - 0xe4c9, 0x23e6, - 0xe4ca, 0x16e8, - 0xe4d9, 0x23e7, - 0xe4da, 0x16f8, - 0xe4dc, 0x23e8, - 0xe4dd, 0x16fb, - 0xe4de, 0x23e9, - 0xe4df, 0x16fd, - 0xe4e4, 0x23ea, - 0xe4e5, 0x1703, - 0xe4eb, 0x23eb, - 0xe4ed, 0x170b, - 0xe4f2, 0x23ed, - 0xe4f3, 0x1711, - 0xe4fe, 0x23ee, - 0xe5a1, 0x171d, - 0xe5b0, 0x23ef, - 0xe5b1, 0x172d, - 0xe5b9, 0x23f0, - 0xe5ba, 0x1736, - 0xe5c7, 0x23f1, - 0xe5c8, 0x1744, - 0xe5c9, 0x23f2, - 0xe5ca, 0x1746, - 0xe5ce, 0x23f3, - 0xe5cf, 0x174b, - 0xe5f0, 0x23f4, - 0xe5f1, 0x176d, - 0xe5f2, 0x23f5, - 0xe5f3, 0x176f, - 0xe5fc, 0x23f6, - 0xe5fe, 0x177a, - 0xe6a1, 0x177b, - 0xe6a3, 0x23f8, - 0xe6a4, 0x177e, - 0xe6ab, 0x23f9, - 0xe6ad, 0x1787, - 0xe6ae, 0x23fb, - 0xe6af, 0x1789, - 0xe6b4, 0x23fc, - 0xe6b6, 0x1790, - 0xe6bf, 0x23fe, - 0xe6c0, 0x179a, - 0xe6c8, 0x23ff, - 0xe6ca, 0x17a4, - 0xe6cd, 0x2401, - 0xe6ce, 0x17a8, - 0xe6e0, 0x2402, - 0xe7a1, 0x2421, - 0xe7db, 0x1813, - 0xe7e1, 0x245b, - 0xe7e3, 0x181b, - 0xe7e7, 0x245d, - 0xe7e8, 0x1820, - 0xe7ef, 0x245e, - 0xe7f0, 0x1828, - 0xe7f4, 0x245f, - 0xe7f7, 0x182f, - 0xe8a1, 0x1837, - 0xe8a8, 0x2462, - 0xe8a9, 0x183f, - 0xe8ac, 0x2463, - 0xe8ad, 0x1843, - 0xe8b6, 0x2464, - 0xe8b7, 0x184d, - 0xe8b8, 0x2465, - 0xe8bb, 0x1851, - 0xe8bf, 0x2468, - 0xe8c1, 0x1857, - 0xe8c5, 0x246a, - 0xe8c6, 0x185c, - 0xe8c7, 0x246b, - 0xe8ca, 0x1860, - 0xe8ce, 0x246e, - 0xe8cf, 0x1865, - 0xe8d0, 0x246f, - 0xe8d1, 0x1867, - 0xe8d3, 0x2470, - 0xe8d4, 0x186a, - 0xe8dd, 0x2471, - 0xe8de, 0x1874, - 0xe8df, 0x2472, - 0xe8e0, 0x1876, - 0xe8e2, 0x2473, - 0xe8e4, 0x187a, - 0xe8e5, 0x2475, - 0xe8e6, 0x187c, - 0xe8e7, 0x2476, - 0xe8e8, 0x187e, - 0xe8eb, 0x2477, - 0xe8ec, 0x1882, - 0xe8ed, 0x2478, - 0xe8ee, 0x1884, - 0xe8ef, 0x2479, - 0xe8f0, 0x1886, - 0xe8f9, 0x247a, - 0xe8fa, 0x1890, - 0xe8fc, 0x247b, - 0xe8fe, 0x1894, - 0xe9a1, 0x247d, - 0xe9a2, 0x1896, - 0xe9ad, 0x247e, - 0xe9ae, 0x18a2, - 0xe9b4, 0x247f, - 0xe9b6, 0x18aa, - 0xe9b7, 0x2481, - 0xe9b8, 0x18ac, - 0xe9c4, 0x2482, - 0xe9c5, 0x18b9, - 0xe9c6, 0x2483, - 0xe9c7, 0x18bb, - 0xe9c9, 0x2484, - 0xe9ca, 0x18be, - 0xe9d6, 0x2485, - 0xe9d7, 0x18cb, - 0xe9da, 0x2486, - 0xe9db, 0x18cf, - 0xe9e4, 0x2487, - 0xe9e5, 0x18d9, - 0xe9e6, 0x2488, - 0xe9e8, 0x18dc, - 0xe9e9, 0x248a, - 0xe9ea, 0x18de, - 0xe9eb, 0x248b, - 0xe9ec, 0x18e0, - 0xe9ed, 0x248c, - 0xeaa1, 0x249e, - 0xeaa6, 0x18f8, - 0xeaa7, 0x24a3, - 0xeaa9, 0x18fb, - 0xeab1, 0x24a5, - 0xeab2, 0x1904, - 0xeabc, 0x24a6, - 0xeabd, 0x190f, - 0xeaca, 0x24a7, - 0xeacb, 0x191d, - 0xeacd, 0x24a8, - 0xeace, 0x1920, - 0xead3, 0x24a9, - 0xead4, 0x1926, - 0xeada, 0x24aa, - 0xeaf0, 0x1942, - 0xeba1, 0x1951, - 0xeba7, 0x24c0, - 0xeba8, 0x1958, - 0xebaa, 0x24c1, - 0xebab, 0x195b, - 0xebb2, 0x24c2, - 0xebb3, 0x1963, - 0xebb9, 0x24c3, - 0xebba, 0x196a, - 0xebca, 0x24c4, - 0xebcc, 0x197c, - 0xebcd, 0x24c6, - 0xebce, 0x197e, - 0xebd6, 0x24c7, - 0xebd7, 0x1987, - 0xebda, 0x24c8, - 0xebdb, 0x198b, - 0xebe1, 0x24c9, - 0xebe2, 0x1992, - 0xebf7, 0x24ca, - 0xebf8, 0x19a8, - 0xeca1, 0x19af, - 0xeca3, 0x24cb, - 0xeca4, 0x19b2, - 0xeca9, 0x24cc, - 0xecaf, 0x19bd, - 0xecb1, 0x24d2, - 0xecb2, 0x19c0, - 0xecb4, 0x24d3, - 0xecb6, 0x19c4, - 0xecbe, 0x24d5, - 0xecc0, 0x19ce, - 0xecc1, 0x24d7, - 0xecc2, 0x19d0, - 0xecc7, 0x24d8, - 0xecc8, 0x19d6, - 0xeccb, 0x24d9, - 0xeccc, 0x19da, - 0xece2, 0x24da, - 0xece3, 0x19f1, - 0xecf2, 0x24db, - 0xecf3, 0x1a01, - 0xecf5, 0x24dc, - 0xecf6, 0x1a04, - 0xecf8, 0x24dd, - 0xecf9, 0x1a07, - 0xeda1, 0x24de, - 0xeda2, 0x1a0e, - 0xeda8, 0x24df, - 0xeda9, 0x1a15, - 0xedaf, 0x24e0, - 0xedb1, 0x1a1d, - 0xedb4, 0x24e2, - 0xedb5, 0x1a21, - 0xedb6, 0x24e3, - 0xedb7, 0x1a23, - 0xedb8, 0x24e4, - 0xedb9, 0x1a25, - 0xedba, 0x24e5, - 0xedbb, 0x1a27, - 0xedbf, 0x24e6, - 0xedc0, 0x1a2c, - 0xedc2, 0x24e7, - 0xedc4, 0x1a30, - 0xedcc, 0x24e9, - 0xedce, 0x1a3a, - 0xedd3, 0x24eb, - 0xedd4, 0x1a40, - 0xedd7, 0x24ec, - 0xedd8, 0x1a44, - 0xede8, 0x24ed, - 0xede9, 0x1a55, - 0xedee, 0x24ee, - 0xedef, 0x1a5b, - 0xedf9, 0x24ef, - 0xedfb, 0x1a67, - 0xeea1, 0x1a6b, - 0xeebc, 0x24f1, - 0xeebd, 0x1a87, - 0xeebf, 0x24f2, - 0xeec0, 0x1a8a, - 0xeec4, 0x24f3, - 0xefa1, 0x252e, - 0xeff2, 0x1b1a, - 0xf0a1, 0x1b27, - 0xf0a3, 0x257f, - 0xf0a4, 0x1b2a, - 0xf0af, 0x2580, - 0xf0da, 0x1b60, - 0xf0dc, 0x25ab, - 0xf0de, 0x1b64, - 0xf0df, 0x25ad, - 0xf0e0, 0x1b66, - 0xf0e9, 0x25ae, - 0xf0ea, 0x1b70, - 0xf0ec, 0x25af, - 0xf0ed, 0x1b73, - 0xf0ef, 0x25b0, - 0xf0f0, 0x1b76, - 0xf0f7, 0x25b1, - 0xf0f8, 0x1b7e, - 0xf0f9, 0x25b2, - 0xf0fa, 0x1b80, - 0xf0fc, 0x25b3, - 0xf0fd, 0x1b83, - 0xf1a1, 0x1b85, - 0xf1a8, 0x25b4, - 0xf1a9, 0x1b8d, - 0xf1ab, 0x25b5, - 0xf1ac, 0x1b90, - 0xf1ae, 0x25b6, - 0xf1af, 0x1b93, - 0xf1b2, 0x25b7, - 0xf1b3, 0x1b97, - 0xf1bc, 0x25b8, - 0xf1bd, 0x1ba1, - 0xf1c0, 0x25b9, - 0xf1c1, 0x1ba5, - 0xf1c9, 0x25ba, - 0xf1ca, 0x1bae, - 0xf1cd, 0x25bb, - 0xf1ce, 0x1bb2, - 0xf1cf, 0x25bc, - 0xf1d1, 0x1bb5, - 0xf1da, 0x25be, - 0xf1db, 0x1bbf, - 0xf1dc, 0x25bf, - 0xf1dd, 0x1bc1, - 0xf1e4, 0x25c0, - 0xf1e5, 0x1bc9, - 0xf1ec, 0x25c1, - 0xf1ed, 0x1bd1, - 0xf1ef, 0x25c2, - 0xf1f0, 0x1bd4, - 0xf1f7, 0x25c3, - 0xf1f8, 0x1bdc, - 0xf1f9, 0x25c4, - 0xf1fa, 0x1bde, - 0xf1fc, 0x25c5, - 0xf2a1, 0x25c8, - 0xf2ae, 0x1bf0, - 0xf2b1, 0x25d5, - 0xf2b3, 0x1bf5, - 0xf2b9, 0x25d7, - 0xf2ba, 0x1bfc, - 0xf2c3, 0x25d8, - 0xf2c4, 0x1c06, - 0xf2c9, 0x25d9, - 0xf2ca, 0x1c0c, - 0xf2cc, 0x25da, - 0xf2ce, 0x1c10, - 0xf2cf, 0x25dc, - 0xf2d0, 0x1c12, - 0xf2d3, 0x25dd, - 0xf2d4, 0x1c16, - 0xf2e5, 0x25de, - 0xf2e6, 0x1c28, - 0xf2ee, 0x25df, - 0xf2ef, 0x1c31, - 0xf2f7, 0x25e0, - 0xf2f8, 0x1c3a, - 0xf2fd, 0x25e1, - 0xf2fe, 0x1c40, - 0xf3a1, 0x1c41, - 0xf3bf, 0x25e2, - 0xf3c0, 0x1c60, - 0xf3c6, 0x25e3, - 0xf3c7, 0x1c67, - 0xf3c8, 0x25e4, - 0xf3c9, 0x1c69, - 0xf3d6, 0x25e5, - 0xf3d7, 0x1c77, - 0xf3d9, 0x25e6, - 0xf3da, 0x1c7a, - 0xf3e5, 0x25e7, - 0xf3e7, 0x1c87, - 0xf3ea, 0x25e9, - 0xf3eb, 0x1c8b, - 0xf3ec, 0x25ea, - 0xf3ed, 0x1c8d, - 0xf3ef, 0x25eb, - 0xf3f0, 0x1c90, - 0xf3f1, 0x25ec, - 0xf3f2, 0x1c92, - 0xf3fd, 0x25ed, - 0xf3fe, 0x1c9e, - 0xf4a1, 0x1c9f, - 0xf4a5, 0x25ee, - 0xf4a6, 0x1ca4, - 0xf4af, 0x25ef, - 0xf4b0, 0x1cae, - 0xf4b5, 0x25f0, - 0xf4b6, 0x1cb4, - 0xf4c1, 0x25f1, - 0xf4c2, 0x1cc0, - 0xf4c7, 0x25f2, - 0xf4c8, 0x1cc6, - 0xf4cf, 0x25f3, - 0xf4d1, 0x1ccf, - 0xf4d6, 0x25f5, - 0xf4d7, 0x1cd5, - 0xf4ea, 0x25f6, - 0xf4eb, 0x1ce9, - 0xf4ef, 0x25f7, - 0xf4f0, 0x1cee, - 0xf4f5, 0x25f8, - 0xf4f6, 0x1cf4, - 0xf5a1, 0x1cfd, - 0xf5a6, 0x25f9, - 0xf5a8, 0x1d04, - 0xf5ba, 0x25fb, - 0xf5bc, 0x1d18, - 0xf5c4, 0x25fd, - 0xf5c5, 0x1d21, - 0xf5c8, 0x25fe, - 0xf5c9, 0x1d25, - 0xf5ce, 0x25ff, - 0xf5d0, 0x1d2c, - 0xf5d1, 0x2601, - 0xf5d3, 0x1d2f, - 0xf5d9, 0x2603, - 0xf5da, 0x1d36, - 0xf5dc, 0x2604, - 0xf5dd, 0x1d39, - 0xf5e6, 0x2605, - 0xf5e8, 0x1d44, - 0xf5ef, 0x2607, - 0xf5f0, 0x1d4c, - 0xf5f2, 0x2608, - 0xf5f3, 0x1d4f, - 0xf5fc, 0x2609, - 0xf5fd, 0x1d59, - 0xf6a1, 0x1d5b, - 0xf6a3, 0x260a, - 0xf6a4, 0x1d5e, - 0xf6a6, 0x260b, - 0xf6a7, 0x1d61, - 0xf6a8, 0x260c, - 0xf6a9, 0x1d63, - 0xf6ab, 0x260d, - 0xf6ac, 0x1d66, - 0xf6b0, 0x260e, - 0xf6b1, 0x1d6b, - 0xf6b3, 0x260f, - 0xf6bf, 0x1d79, - 0xf6c5, 0x261b, - 0xf6c6, 0x1d80, - 0xf6c7, 0x261c, - 0xf6c8, 0x1d82, - 0xf6c9, 0x261d, - 0xf6ca, 0x1d84, - 0xf6cf, 0x261e, - 0xf7a1, 0x264e, - 0xf7b0, 0x1dc8, - 0xf7b2, 0x265d, - 0xf7b4, 0x1dcc, - 0xf7b5, 0x265f, - 0xf7b6, 0x1dce, - 0xf7bd, 0x2660, - 0xf7be, 0x1dd6, - 0xf7c3, 0x2661, - 0xf7c4, 0x1ddc, - 0xf7c5, 0x2662, - 0xf7c7, 0x1ddf, - 0xf7ca, 0x2664, - 0xf7cc, 0x1de4, - 0xf7cf, 0x2666, - 0xf7d1, 0x1de9, - 0xf7de, 0x2668, - 0xf7df, 0x1df7, - 0xf7e1, 0x0ab9, - 0xf7e2, 0x1dfa, - 0xf7f2, 0x2669, - 0xf7f3, 0x1e0b, - 0xf7f5, 0x266a, - 0xf7f6, 0x1e0e, - 0xf8a1, 0x266b, - 0xf8a7, 0x04cc, - 0xf8a8, 0x050a, - 0xf8a9, 0x0518, - 0xf8aa, 0x2671, - 0xf8ac, 0x0594, - 0xf8ad, 0x05ce, - 0xf8ae, 0x2673, - 0xf8af, 0x05f6, - 0xf8b0, 0x2674, - 0xf8b2, 0x0653, - 0xf8b3, 0x067e, - 0xf8b4, 0x2676, - 0xf8b5, 0x06c4, - 0xf8b6, 0x2677, - 0xf8b8, 0x073c, - 0xf8b9, 0x2679, - 0xf8bb, 0x07c3, - 0xf8bc, 0x267b, - 0xf8c0, 0x082b, - 0xf8c1, 0x267f, - 0xf8c2, 0x084e, - 0xf8c3, 0x0869, - 0xf8c4, 0x2680, - 0xf8c6, 0x090c, - 0xf8c7, 0x2682, - 0xf8c9, 0x0971, - 0xf8ca, 0x2684, - 0xf8cb, 0x099a, - 0xf8cd, 0x2685, - 0xf8ce, 0x09da, - 0xf8cf, 0x2686, - 0xf8d0, 0x09fa, - 0xf8d1, 0x2687, - 0xf8dc, 0x0bda, - 0xf8dd, 0x0bdd, - 0xf8de, 0x0bea, - 0xf8df, 0x0bec, - 0xf8e0, 0x0bf2, - 0xf8e1, 0x2692, - 0xf8e6, 0x0c92, - 0xf8e7, 0x0d1a, - 0xf8e8, 0x0d8c, - 0xf8e9, 0x0dbe, - 0xf8ea, 0x2697, - 0xf8eb, 0x0dfb, - 0xf8ec, 0x2698, - 0xf8ef, 0x0e70, - 0xf8f0, 0x269b, - 0xf8f1, 0x0ea3, - 0xf8f2, 0x269c, - 0xf8f8, 0x103d, - 0xf8f9, 0x10d9, - 0xf8fa, 0x26a2, - 0xf8fc, 0x10fb, - 0xf8fd, 0x1109, - 0xf8fe, 0x26a4, - 0xf9a1, 0x11a1, - 0xf9a2, 0x26a5, - 0xf9a3, 0x11ba, - 0xf9a4, 0x26a6, - 0xf9a6, 0x11d5, - 0xf9a7, 0x26a8, - 0xf9a8, 0x11fd, - 0xf9a9, 0x1219, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 gb12GBTEUCHEnc16 = { - 0, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1e24, 0x032e, 0x032f, 0x0330, 0x0331, 0x0332, 0x0333, 0x0334, - 0x0335, 0x0336, 0x0337, 0x0338, 0x0339, 0x033a, 0x033b, 0x033c, - 0x033d, 0x033e, 0x033f, 0x0340, 0x0341, 0x0342, 0x0343, 0x0344, - 0x0345, 0x0346, 0x0347, 0x0348, 0x0349, 0x034a, 0x034b, 0x034c, - 0x034d, 0x034e, 0x034f, 0x0350, 0x0351, 0x0352, 0x0353, 0x0354, - 0x0355, 0x0356, 0x0357, 0x0358, 0x0359, 0x035a, 0x035b, 0x035c, - 0x035d, 0x035e, 0x035f, 0x0360, 0x0361, 0x0362, 0x0363, 0x0364, - 0x0365, 0x0366, 0x0367, 0x0368, 0x0369, 0x036a, 0x036b, 0x036c, - 0x036d, 0x036e, 0x036f, 0x0370, 0x0371, 0x0372, 0x0373, 0x0374, - 0x0375, 0x0376, 0x0377, 0x0378, 0x0379, 0x037a, 0x037b, 0x037c, - 0x037d, 0x037e, 0x037f, 0x0380, 0x0381, 0x0382, 0x0383, 0x0384, - 0x0385, 0x0386, 0x0387, 0x0388, 0x0389, 0x038a, 0x038b, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - gb12GBTEUCHMap2, 2283 -}; - -static Gushort gb12GBTEUCVMap2[4606] = { - 0x0000, 0x0000, - 0xa1a1, 0x0060, - 0xa2b1, 0x00be, - 0xa2e5, 0x00f0, - 0xa2f1, 0x00fa, - 0xa3a1, 0x0106, - 0xa4a1, 0x0164, - 0xa5a1, 0x01b7, - 0xa6a1, 0x020d, - 0xa6c1, 0x0225, - 0xa7a1, 0x025a, - 0xa7d1, 0x027b, - 0xa8a1, 0x029c, - 0xa8c5, 0x02bc, - 0xa9a4, 0x02e2, - 0xaaa1, 0x032e, - 0xaba1, 0x038c, - 0xb0a1, 0x03ac, - 0xb0a8, 0x1e25, - 0xb0a9, 0x03b4, - 0xb0aa, 0x1e26, - 0xb0ab, 0x03b6, - 0xb0ad, 0x1e27, - 0xb0af, 0x03ba, - 0xb0b9, 0x1e29, - 0xb0ba, 0x03c5, - 0xb0c0, 0x1e2a, - 0xb0c1, 0x03cc, - 0xb0d3, 0x1e2b, - 0xb0d4, 0x03df, - 0xb0d5, 0x1e2c, - 0xb0d6, 0x03e1, - 0xb0da, 0x1e2d, - 0xb0db, 0x03e6, - 0xb0dc, 0x1e2e, - 0xb0dd, 0x03e8, - 0xb0e4, 0x1e2f, - 0xb0e5, 0x03f0, - 0xb0ec, 0x1e30, - 0xb0ee, 0x03f9, - 0xb0ef, 0x1e32, - 0xb0f0, 0x03fb, - 0xb0f3, 0x1e33, - 0xb0f4, 0x03ff, - 0xb0f7, 0x1e34, - 0xb0f8, 0x0403, - 0xb0f9, 0x1e35, - 0xb0fa, 0x0405, - 0xb1a1, 0x040a, - 0xb1a5, 0x1e36, - 0xb1a7, 0x0410, - 0xb1a8, 0x1e38, - 0xb1a9, 0x0412, - 0xb1ab, 0x1e39, - 0xb1ac, 0x0415, - 0xb1b2, 0x1e3a, - 0xb1b3, 0x041c, - 0xb1b4, 0x1e3b, - 0xb1b6, 0x041f, - 0xb1b7, 0x1e3d, - 0xb1ba, 0x0423, - 0xb1c1, 0x1e40, - 0xb1c2, 0x042b, - 0xb1ca, 0x1e41, - 0xb1cb, 0x0434, - 0xb1cf, 0x1e42, - 0xb1d1, 0x043a, - 0xb1d2, 0x1e44, - 0xb1d3, 0x043c, - 0xb1d5, 0x1e45, - 0xb1d6, 0x043f, - 0xb1df, 0x1e46, - 0xb1e2, 0x044b, - 0xb1e4, 0x1e49, - 0xb1e5, 0x044e, - 0xb1e7, 0x1e4a, - 0xb1e9, 0x0452, - 0xb1ea, 0x1e4c, - 0xb1eb, 0x0454, - 0xb1ee, 0x1e4d, - 0xb1ef, 0x0458, - 0xb1f1, 0x1e4e, - 0xb1f2, 0x045b, - 0xb1f4, 0x1e4f, - 0xb1f8, 0x0461, - 0xb1fd, 0x1e53, - 0xb1fe, 0x0467, - 0xb2a1, 0x0468, - 0xb2a6, 0x1e54, - 0xb2a8, 0x046f, - 0xb2ac, 0x1e56, - 0xb2ad, 0x0474, - 0xb2b5, 0x1e57, - 0xb2b6, 0x047d, - 0xb2b9, 0x1e58, - 0xb2ba, 0x0481, - 0xb2c6, 0x1e59, - 0xb2c7, 0x048e, - 0xb2ce, 0x1e5a, - 0xb2d8, 0x049f, - 0xb2de, 0x1e64, - 0xb2df, 0x04a6, - 0xb2e0, 0x1e65, - 0xb2e1, 0x04a8, - 0xb2e2, 0x1e66, - 0xb2e4, 0x04ab, - 0xb2ef, 0x1e68, - 0xb2f0, 0x04b7, - 0xb2f3, 0x1e69, - 0xb2fd, 0x04c4, - 0xb3a1, 0x1e73, - 0xb3a3, 0x04c8, - 0xb3a4, 0x1e75, - 0xb3a8, 0x04cd, - 0xb3a9, 0x1e79, - 0xb3aa, 0x04cf, - 0xb3ae, 0x1e7a, - 0xb3af, 0x04d4, - 0xb3b5, 0x1e7b, - 0xb3b6, 0x04db, - 0xb3b9, 0x1e7c, - 0xb3ba, 0x04df, - 0xb3be, 0x1e7d, - 0xb3bf, 0x04e4, - 0xb3c2, 0x1e7e, - 0xb3c3, 0x04e8, - 0xb3c4, 0x1e7f, - 0xb3c5, 0x04ea, - 0xb3c6, 0x1e80, - 0xb3c7, 0x04ec, - 0xb3cd, 0x1e81, - 0xb3ce, 0x04f3, - 0xb3cf, 0x1e82, - 0xb3d0, 0x04f5, - 0xb3d2, 0x1e83, - 0xb3d3, 0x04f8, - 0xb3d9, 0x1e84, - 0xb3da, 0x04ff, - 0xb3db, 0x1e85, - 0xb3dc, 0x0501, - 0xb3dd, 0x1e86, - 0xb3de, 0x0503, - 0xb3e3, 0x1e87, - 0xb3e4, 0x0509, - 0xb3e5, 0x1e88, - 0xb3e7, 0x050c, - 0xb3e8, 0x1e8a, - 0xb3e9, 0x050e, - 0xb3eb, 0x1e8b, - 0xb3ed, 0x0512, - 0xb3ef, 0x1e8d, - 0xb3f0, 0x0515, - 0xb3f1, 0x1e8e, - 0xb3f2, 0x0517, - 0xb3f3, 0x1e8f, - 0xb3f4, 0x0519, - 0xb3fa, 0x1e90, - 0xb3fc, 0x0521, - 0xb4a1, 0x1e92, - 0xb4a3, 0x0526, - 0xb4a5, 0x1e94, - 0xb4a7, 0x052a, - 0xb4ab, 0x1e96, - 0xb4ac, 0x052f, - 0xb4af, 0x1e97, - 0xb4b0, 0x0533, - 0xb4b3, 0x1e98, - 0xb4b5, 0x0538, - 0xb4b8, 0x1e9a, - 0xb4b9, 0x053c, - 0xb4bf, 0x1e9b, - 0xb4c0, 0x0543, - 0xb4c2, 0x1e9c, - 0xb4c3, 0x0546, - 0xb4c7, 0x1e9d, - 0xb4c8, 0x054b, - 0xb4ca, 0x1e9e, - 0xb4cb, 0x054e, - 0xb4cd, 0x1e9f, - 0xb4ce, 0x0551, - 0xb4cf, 0x1ea0, - 0xb4d0, 0x0553, - 0xb4d3, 0x1ea1, - 0xb4d5, 0x0558, - 0xb4da, 0x1ea3, - 0xb4db, 0x055e, - 0xb4dc, 0x1ea4, - 0xb4dd, 0x0560, - 0xb4ed, 0x1ea5, - 0xb4ee, 0x0571, - 0xb4ef, 0x1ea6, - 0xb4f0, 0x0573, - 0xb4f8, 0x1ea7, - 0xb4f9, 0x057c, - 0xb4fb, 0x1ea8, - 0xb4fc, 0x057f, - 0xb5a1, 0x0582, - 0xb5a3, 0x1ea9, - 0xb5a4, 0x0585, - 0xb5a5, 0x1eaa, - 0xb5a9, 0x058a, - 0xb5ac, 0x1eae, - 0xb5ad, 0x058e, - 0xb5ae, 0x1eaf, - 0xb5b0, 0x0591, - 0xb5b1, 0x1eb1, - 0xb5b6, 0x0597, - 0xb5b7, 0x1eb6, - 0xb5b8, 0x0599, - 0xb5ba, 0x1eb7, - 0xb5bd, 0x059e, - 0xb5c6, 0x1eba, - 0xb5c7, 0x05a8, - 0xb5cb, 0x1ebb, - 0xb5cc, 0x05ad, - 0xb5d0, 0x1ebc, - 0xb5d1, 0x05b2, - 0xb5d3, 0x1ebd, - 0xb5d4, 0x05b5, - 0xb5dd, 0x1ebe, - 0xb5e0, 0x05c1, - 0xb5e3, 0x1ec1, - 0xb5e4, 0x05c5, - 0xb5e6, 0x1ec2, - 0xb5e8, 0x05c9, - 0xb5ed, 0x1ec4, - 0xb5ee, 0x05cf, - 0xb5f6, 0x1ec5, - 0xb5f8, 0x05d9, - 0xb5fd, 0x1ec7, - 0xb5fe, 0x05df, - 0xb6a1, 0x05e0, - 0xb6a4, 0x1ec8, - 0xb6a6, 0x05e5, - 0xb6a7, 0x1eca, - 0xb6a8, 0x05e7, - 0xb6a9, 0x1ecb, - 0xb6aa, 0x05e9, - 0xb6ab, 0x1ecc, - 0xb6ac, 0x05eb, - 0xb6af, 0x1ecd, - 0xb6b1, 0x05f0, - 0xb6b3, 0x1ecf, - 0xb6b4, 0x05f3, - 0xb6b7, 0x1ed0, - 0xb6b8, 0x05f7, - 0xb6bf, 0x1ed1, - 0xb6c2, 0x0601, - 0xb6c4, 0x1ed4, - 0xb6c5, 0x0604, - 0xb6c6, 0x1ed5, - 0xb6c7, 0x0606, - 0xb6cd, 0x1ed6, - 0xb6ce, 0x060d, - 0xb6cf, 0x1ed7, - 0xb6d1, 0x0610, - 0xb6d3, 0x1ed9, - 0xb6d5, 0x0614, - 0xb6d6, 0x1edb, - 0xb6d7, 0x0616, - 0xb6d9, 0x1edc, - 0xb6da, 0x0619, - 0xb6db, 0x1edd, - 0xb6dc, 0x061b, - 0xb6e1, 0x1ede, - 0xb6e2, 0x0621, - 0xb6e9, 0x1edf, - 0xb6ea, 0x0629, - 0xb6ec, 0x1ee0, - 0xb6ed, 0x062c, - 0xb6ee, 0x1ee1, - 0xb6f0, 0x062f, - 0xb6f1, 0x1ee3, - 0xb6f2, 0x0631, - 0xb6f6, 0x1ee4, - 0xb6f7, 0x0636, - 0xb6f9, 0x1ee5, - 0xb6fa, 0x0639, - 0xb6fb, 0x1ee6, - 0xb6fd, 0x063c, - 0xb7a1, 0x1ee8, - 0xb7a4, 0x0641, - 0xb7a7, 0x1eeb, - 0xb7a8, 0x0645, - 0xb7af, 0x1eec, - 0xb7b1, 0x064e, - 0xb7b3, 0x1eee, - 0xb7b4, 0x0651, - 0xb7b6, 0x1eef, - 0xb7b8, 0x0655, - 0xb7b9, 0x1ef1, - 0xb7ba, 0x0657, - 0xb7c3, 0x1ef2, - 0xb7c5, 0x0662, - 0xb7c9, 0x1ef4, - 0xb7ca, 0x0667, - 0xb7cc, 0x1ef5, - 0xb7cd, 0x066a, - 0xb7cf, 0x1ef6, - 0xb7d0, 0x066d, - 0xb7d1, 0x1ef7, - 0xb7d2, 0x066f, - 0xb7d7, 0x1ef8, - 0xb7d9, 0x0676, - 0xb7dc, 0x1efa, - 0xb7dd, 0x067a, - 0xb7df, 0x1efb, - 0xb7e2, 0x067f, - 0xb7e3, 0x1efe, - 0xb7e4, 0x0681, - 0xb7e6, 0x1eff, - 0xb7e9, 0x0686, - 0xb7eb, 0x1f02, - 0xb7ee, 0x068b, - 0xb7ef, 0x1f05, - 0xb7f0, 0x068d, - 0xb7f4, 0x1f06, - 0xb7f5, 0x0692, - 0xb7f8, 0x1f07, - 0xb7f9, 0x0696, - 0xb8a1, 0x069c, - 0xb8a7, 0x1f08, - 0xb8a9, 0x06a4, - 0xb8b3, 0x1f0a, - 0xb8b5, 0x06b0, - 0xb8ba, 0x1f0c, - 0xb8bb, 0x06b6, - 0xb8bc, 0x1f0d, - 0xb8bd, 0x06b8, - 0xb8be, 0x1f0e, - 0xb8c0, 0x06bb, - 0xb8c3, 0x1f10, - 0xb8c4, 0x06bf, - 0xb8c6, 0x1f11, - 0xb8c8, 0x06c3, - 0xb8c9, 0x1f13, - 0xb8ca, 0x06c5, - 0xb8cf, 0x1f14, - 0xb8d0, 0x06cb, - 0xb8d3, 0x1f15, - 0xb8d7, 0x06d2, - 0xb8d9, 0x1f19, - 0xb8db, 0x06d6, - 0xb8e4, 0x1f1b, - 0xb8e5, 0x06e0, - 0xb8e9, 0x1f1c, - 0xb8ea, 0x06e5, - 0xb8eb, 0x1f1d, - 0xb8ec, 0x06e7, - 0xb8f3, 0x1f1e, - 0xb8f4, 0x06ef, - 0xb8f5, 0x1f1f, - 0xb8f7, 0x06f2, - 0xb8f8, 0x1f21, - 0xb8f9, 0x06f4, - 0xb9a1, 0x06fa, - 0xb9a8, 0x1f22, - 0xb9a9, 0x0702, - 0xb9ae, 0x1f23, - 0xb9af, 0x0708, - 0xb9b1, 0x1f24, - 0xb9b2, 0x070b, - 0xb9b3, 0x1f25, - 0xb9b4, 0x070d, - 0xb9b5, 0x1f26, - 0xb9b6, 0x070f, - 0xb9b9, 0x1f27, - 0xb9bb, 0x0714, - 0xb9c6, 0x1f29, - 0xb9c7, 0x0720, - 0xb9cb, 0x1f2a, - 0xb9cc, 0x0725, - 0xb9d0, 0x1f2b, - 0xb9d1, 0x072a, - 0xb9d8, 0x1f2c, - 0xb9d9, 0x0732, - 0xb9db, 0x1f2d, - 0xb9dc, 0x0735, - 0xb9dd, 0x1f2e, - 0xb9de, 0x0737, - 0xb9df, 0x1f2f, - 0xb9e0, 0x0739, - 0xb9e1, 0x1f30, - 0xb9e2, 0x073b, - 0xb9e3, 0x1f31, - 0xb9e4, 0x073d, - 0xb9e6, 0x1f32, - 0xb9e7, 0x0740, - 0xb9e9, 0x1f33, - 0xb9ed, 0x0746, - 0xb9ee, 0x1f37, - 0xb9ef, 0x0748, - 0xb9f1, 0x1f38, - 0xb9f2, 0x074b, - 0xb9f3, 0x1f39, - 0xb9f6, 0x074f, - 0xb9f8, 0x1f3c, - 0xb9f9, 0x0752, - 0xb9fa, 0x1f3d, - 0xb9fb, 0x0754, - 0xb9fd, 0x1f3e, - 0xb9fe, 0x0757, - 0xbaa1, 0x0758, - 0xbaa7, 0x1f3f, - 0xbaa8, 0x075f, - 0xbaab, 0x1f40, - 0xbaac, 0x0763, - 0xbaba, 0x1f41, - 0xbabb, 0x0772, - 0xbac5, 0x1f42, - 0xbac6, 0x077d, - 0xbad2, 0x1f43, - 0xbad3, 0x078a, - 0xbad7, 0x1f44, - 0xbad9, 0x0790, - 0xbae4, 0x1f46, - 0xbae5, 0x079c, - 0xbae8, 0x1f47, - 0xbae9, 0x07a0, - 0xbaec, 0x1f48, - 0xbaed, 0x07a4, - 0xbaf3, 0x15e5, - 0xbaf4, 0x07ab, - 0xbaf8, 0x1f49, - 0xbaf9, 0x07b0, - 0xbba1, 0x07b6, - 0xbba4, 0x1f4a, - 0xbba5, 0x07ba, - 0xbba6, 0x1f4b, - 0xbba7, 0x07bc, - 0xbba9, 0x1f4c, - 0xbbab, 0x07c0, - 0xbbad, 0x1f4e, - 0xbbaf, 0x07c4, - 0xbbb0, 0x1f50, - 0xbbb1, 0x07c6, - 0xbbb3, 0x1f51, - 0xbbb4, 0x07c9, - 0xbbb5, 0x1f52, - 0xbbb8, 0x07cd, - 0xbbb9, 0x1f55, - 0xbbbb, 0x07d0, - 0xbbd1, 0x1f57, - 0xbbd2, 0x07e7, - 0xbbd3, 0x1f58, - 0xbbd5, 0x07ea, - 0xbbdf, 0x1f5a, - 0xbbe8, 0x07fd, - 0xbbeb, 0x1f63, - 0xbbec, 0x0801, - 0xbbf1, 0x1f64, - 0xbbf2, 0x0807, - 0xbbf5, 0x1f65, - 0xbbf8, 0x080d, - 0xbbfa, 0x1f68, - 0xbbfb, 0x0810, - 0xbbfd, 0x1f69, - 0xbbfe, 0x0813, - 0xbca1, 0x0814, - 0xbca2, 0x1f6a, - 0xbca3, 0x0816, - 0xbca5, 0x1f6b, - 0xbca7, 0x081a, - 0xbca8, 0x1f6d, - 0xbcaa, 0x081d, - 0xbcab, 0x1f6f, - 0xbcac, 0x081f, - 0xbcad, 0x1f70, - 0xbcae, 0x0821, - 0xbcb6, 0x1f71, - 0xbcb9, 0x082c, - 0xbcbb, 0x1f74, - 0xbcbc, 0x082f, - 0xbcc1, 0x1f75, - 0xbcc2, 0x0835, - 0xbcc3, 0x1f76, - 0xbcc4, 0x0837, - 0xbcc6, 0x1f77, - 0xbcc8, 0x083b, - 0xbcca, 0x1f79, - 0xbccb, 0x083e, - 0xbccc, 0x1f7a, - 0xbcce, 0x0841, - 0xbcd0, 0x1f7c, - 0xbcd1, 0x0844, - 0xbcd4, 0x1f7d, - 0xbcd7, 0x084a, - 0xbcd8, 0x1f80, - 0xbcd9, 0x084c, - 0xbcdb, 0x1f81, - 0xbcdc, 0x084f, - 0xbcdd, 0x1f82, - 0xbcde, 0x0851, - 0xbcdf, 0x1f83, - 0xbce2, 0x0855, - 0xbce3, 0x1f86, - 0xbce5, 0x0858, - 0xbce8, 0x1f88, - 0xbce9, 0x085c, - 0xbcea, 0x1f89, - 0xbced, 0x0860, - 0xbcef, 0x1f8c, - 0xbcf4, 0x0867, - 0xbcf6, 0x1f91, - 0xbcfd, 0x0870, - 0xbda1, 0x0872, - 0xbda2, 0x1f98, - 0xbda8, 0x0879, - 0xbdab, 0x1f9e, - 0xbdad, 0x087e, - 0xbdaf, 0x1fa0, - 0xbdb3, 0x0884, - 0xbdb4, 0x1fa4, - 0xbdb5, 0x0886, - 0xbdba, 0x1fa5, - 0xbdbb, 0x088c, - 0xbdbd, 0x1fa6, - 0xbdc0, 0x0891, - 0xbdc1, 0x1fa9, - 0xbdc5, 0x0896, - 0xbdc8, 0x1fad, - 0xbdcb, 0x089c, - 0xbdce, 0x1fb0, - 0xbdd0, 0x08a1, - 0xbdd7, 0x1fb2, - 0xbdd8, 0x08a9, - 0xbdda, 0x1fb3, - 0xbddb, 0x08ac, - 0xbde0, 0x1fb4, - 0xbde2, 0x08b3, - 0xbdeb, 0x1fb6, - 0xbdec, 0x08bd, - 0xbdf4, 0x1fb7, - 0xbdf9, 0x08ca, - 0xbdfd, 0x1fbc, - 0xbdfe, 0x08cf, - 0xbea1, 0x1fbd, - 0xbea3, 0x08d2, - 0xbea5, 0x1fbf, - 0xbea6, 0x08d5, - 0xbea8, 0x1fc0, - 0xbea9, 0x08d8, - 0xbeaa, 0x1fc1, - 0xbeab, 0x08da, - 0xbead, 0x1fc2, - 0xbeae, 0x08dd, - 0xbeb1, 0x1fc3, - 0xbeb2, 0x08e1, - 0xbeb5, 0x1fc4, - 0xbeb8, 0x08e7, - 0xbeba, 0x1fc7, - 0xbebb, 0x08ea, - 0xbec0, 0x1fc8, - 0xbec1, 0x08f0, - 0xbec9, 0x1fc9, - 0xbeca, 0x08f9, - 0xbed4, 0x1fca, - 0xbed5, 0x0904, - 0xbed9, 0x1fcb, - 0xbeda, 0x0909, - 0xbedd, 0x1fcc, - 0xbede, 0x090d, - 0xbee2, 0x1fcd, - 0xbee3, 0x0912, - 0xbee5, 0x1fce, - 0xbee6, 0x0915, - 0xbee7, 0x1fcf, - 0xbee8, 0x0917, - 0xbee9, 0x1fd0, - 0xbeea, 0x0919, - 0xbeee, 0x1fd1, - 0xbeef, 0x091e, - 0xbef5, 0x1fd2, - 0xbef6, 0x0925, - 0xbef7, 0x1fd3, - 0xbef9, 0x0928, - 0xbefb, 0x1fd5, - 0xbefd, 0x092c, - 0xbfa1, 0x092e, - 0xbfa5, 0x1fd7, - 0xbfa6, 0x0933, - 0xbfaa, 0x1fd8, - 0xbfab, 0x0938, - 0xbfad, 0x1fd9, - 0xbfae, 0x093b, - 0xbfc5, 0x1fda, - 0xbfc6, 0x0953, - 0xbfc7, 0x1fdb, - 0xbfc8, 0x0955, - 0xbfce, 0x1fdc, - 0xbfcf, 0x095c, - 0xbfd1, 0x1fdd, - 0xbfd3, 0x0960, - 0xbfd9, 0x1fdf, - 0xbfda, 0x0967, - 0xbfe2, 0x1fe0, - 0xbfe5, 0x0972, - 0xbfe9, 0x1fe3, - 0xbfea, 0x0977, - 0xbfeb, 0x1fe4, - 0xbfec, 0x0979, - 0xbfed, 0x1fe5, - 0xbfee, 0x097b, - 0xbff3, 0x1fe6, - 0xbff4, 0x0981, - 0xbff5, 0x1fe7, - 0xbff6, 0x0983, - 0xbff7, 0x1fe8, - 0xbff8, 0x0985, - 0xbff9, 0x1fe9, - 0xbffb, 0x0988, - 0xc0a1, 0x1feb, - 0xc0a2, 0x098d, - 0xc0a3, 0x1fec, - 0xc0a4, 0x098f, - 0xc0a9, 0x1fed, - 0xc0aa, 0x0995, - 0xc0ab, 0x1fee, - 0xc0ac, 0x0997, - 0xc0af, 0x1fef, - 0xc0b1, 0x099c, - 0xc0b3, 0x1ff1, - 0xc0b7, 0x09a2, - 0xc0b8, 0x1ff5, - 0xc0c5, 0x09b0, - 0xc0cc, 0x2002, - 0xc0ce, 0x09b9, - 0xc0d4, 0x2004, - 0xc0d5, 0x09c0, - 0xc0d6, 0x2005, - 0xc0d7, 0x09c2, - 0xc0d8, 0x2006, - 0xc0d9, 0x09c4, - 0xc0dd, 0x2007, - 0xc0de, 0x09c9, - 0xc0e0, 0x2008, - 0xc0e1, 0x09cc, - 0xc0e9, 0x2009, - 0xc0ea, 0x09d5, - 0xc0eb, 0x200a, - 0xc0ed, 0x09d8, - 0xc0ef, 0x200c, - 0xc0f2, 0x09dd, - 0xc0f6, 0x200f, - 0xc0fb, 0x09e6, - 0xc1a1, 0x09ea, - 0xc1a4, 0x2014, - 0xc1a6, 0x09ef, - 0xc1a9, 0x2016, - 0xc1ae, 0x09f7, - 0xc1af, 0x201b, - 0xc1b9, 0x0a02, - 0xc1bd, 0x2025, - 0xc1bf, 0x0a08, - 0xc1c2, 0x2027, - 0xc1c3, 0x0a0c, - 0xc1c6, 0x2028, - 0xc1c7, 0x0a10, - 0xc1c9, 0x2029, - 0xc1ca, 0x0a13, - 0xc1cd, 0x202a, - 0xc1ce, 0x0a17, - 0xc1d4, 0x202b, - 0xc1d5, 0x0a1e, - 0xc1d9, 0x202c, - 0xc1dc, 0x0a25, - 0xc1de, 0x202f, - 0xc1df, 0x0a28, - 0xc1e4, 0x2030, - 0xc1e6, 0x0a2f, - 0xc1e9, 0x2032, - 0xc1ea, 0x0a33, - 0xc1eb, 0x2033, - 0xc1ed, 0x0a36, - 0xc1f3, 0x2035, - 0xc1f4, 0x0a3d, - 0xc1f5, 0x2036, - 0xc1f6, 0x0a3f, - 0xc1fa, 0x2037, - 0xc1fe, 0x0a47, - 0xc2a1, 0x0a48, - 0xc2a2, 0x203b, - 0xc2a9, 0x0a50, - 0xc2ab, 0x2042, - 0xc2b4, 0x0a5b, - 0xc2b8, 0x204b, - 0xc2b9, 0x0a60, - 0xc2bc, 0x204c, - 0xc2be, 0x0a65, - 0xc2bf, 0x204e, - 0xc2c0, 0x0a67, - 0xc2c1, 0x204f, - 0xc2c2, 0x0a69, - 0xc2c5, 0x2050, - 0xc2c8, 0x0a6f, - 0xc2cb, 0x2053, - 0xc2d1, 0x0a78, - 0xc2d2, 0x2059, - 0xc2d3, 0x0a7a, - 0xc2d5, 0x205a, - 0xc2dd, 0x0a84, - 0xc2de, 0x2062, - 0xc2e3, 0x0a8a, - 0xc2e6, 0x2067, - 0xc2e9, 0x0a90, - 0xc2ea, 0x206a, - 0xc2ef, 0x0a96, - 0xc2f0, 0x206f, - 0xc2f1, 0x0a98, - 0xc2f2, 0x2070, - 0xc2f6, 0x0a9d, - 0xc2f7, 0x2074, - 0xc2fb, 0x0aa2, - 0xc3a1, 0x2078, - 0xc3a2, 0x0aa7, - 0xc3aa, 0x2079, - 0xc3ab, 0x0ab0, - 0xc3ad, 0x207a, - 0xc3ae, 0x0ab3, - 0xc3b3, 0x207b, - 0xc3b4, 0x1df9, - 0xc3b5, 0x0aba, - 0xc3be, 0x207c, - 0xc3bf, 0x0ac4, - 0xc3c5, 0x207d, - 0xc3c8, 0x0acd, - 0xc3cc, 0x2080, - 0xc3cd, 0x0ad2, - 0xc3ce, 0x2081, - 0xc3cf, 0x0ad4, - 0xc3d5, 0x2082, - 0xc3d7, 0x0adc, - 0xc3d9, 0x2084, - 0xc3da, 0x0adf, - 0xc3e0, 0x2085, - 0xc3e1, 0x0ae6, - 0xc3e5, 0x2086, - 0xc3e6, 0x0aeb, - 0xc3ed, 0x2087, - 0xc3ee, 0x0af3, - 0xc3f0, 0x2088, - 0xc3f1, 0x0af6, - 0xc3f5, 0x2089, - 0xc3f7, 0x0afc, - 0xc3f9, 0x208b, - 0xc3fb, 0x0b00, - 0xc3fd, 0x208d, - 0xc3fe, 0x0b03, - 0xc4a1, 0x0b04, - 0xc4b1, 0x208e, - 0xc4b2, 0x0b15, - 0xc4b6, 0x208f, - 0xc4b7, 0x0b1a, - 0xc4c6, 0x2090, - 0xc4c7, 0x0b2a, - 0xc4c9, 0x2091, - 0xc4ca, 0x0b2d, - 0xc4d1, 0x2092, - 0xc4d2, 0x0b35, - 0xc4d3, 0x2093, - 0xc4d7, 0x0b3a, - 0xc4d9, 0x2097, - 0xc4da, 0x0b3d, - 0xc4e2, 0x2098, - 0xc4e3, 0x0b46, - 0xc4e5, 0x2099, - 0xc4e6, 0x0b49, - 0xc4ec, 0x209a, - 0xc4ed, 0x0b50, - 0xc4f0, 0x209b, - 0xc4f2, 0x0b55, - 0xc4f4, 0x209d, - 0xc4f5, 0x0b58, - 0xc4f6, 0x209e, - 0xc4f9, 0x0b5c, - 0xc4fb, 0x20a1, - 0xc4fd, 0x0b60, - 0xc4fe, 0x20a3, - 0xc5a1, 0x20a4, - 0xc5a3, 0x0b64, - 0xc5a5, 0x20a6, - 0xc5aa, 0x0b6b, - 0xc5b1, 0x20ab, - 0xc5b2, 0x0b73, - 0xc5b5, 0x20ac, - 0xc5b6, 0x0b77, - 0xc5b7, 0x20ad, - 0xc5ba, 0x0b7b, - 0xc5bb, 0x20b0, - 0xc5bc, 0x0b7d, - 0xc5bd, 0x20b1, - 0xc5be, 0x0b7f, - 0xc5cc, 0x20b2, - 0xc5cd, 0x0b8e, - 0xc5d3, 0x20b3, - 0xc5d4, 0x0b95, - 0xc5e2, 0x20b4, - 0xc5e3, 0x0ba4, - 0xc5e7, 0x20b5, - 0xc5e8, 0x0ba9, - 0xc5f4, 0x20b6, - 0xc5f5, 0x0bb6, - 0xc6a1, 0x0bc0, - 0xc6ad, 0x20b7, - 0xc6af, 0x0bce, - 0xc6b5, 0x20b9, - 0xc6b7, 0x0bd6, - 0xc6bb, 0x20bb, - 0xc6bc, 0x0bdb, - 0xc6be, 0x20bc, - 0xc6bf, 0x0bde, - 0xc6c0, 0x20bd, - 0xc6c1, 0x0be0, - 0xc6c3, 0x20be, - 0xc6c5, 0x0be4, - 0xc6cb, 0x20c0, - 0xc6ce, 0x0bed, - 0xc6d3, 0x20c3, - 0xc6d4, 0x0bf3, - 0xc6d7, 0x20c4, - 0xc6d8, 0x0bf7, - 0xc6ea, 0x20c5, - 0xc6ec, 0x0c0b, - 0xc6ef, 0x20c7, - 0xc6f0, 0x0c0f, - 0xc6f1, 0x20c8, - 0xc6f2, 0x0c11, - 0xc6f4, 0x20c9, - 0xc6f5, 0x0c14, - 0xc6f8, 0x20ca, - 0xc6f9, 0x0c18, - 0xc6fd, 0x20cb, - 0xc6fe, 0x0c1d, - 0xc7a1, 0x0c1e, - 0xc7a3, 0x20cc, - 0xc7a4, 0x0c21, - 0xc7a5, 0x20cd, - 0xc7a7, 0x0c24, - 0xc7a8, 0x20cf, - 0xc7aa, 0x0c27, - 0xc7ab, 0x20d1, - 0xc7ac, 0x0c29, - 0xc7ae, 0x20d2, - 0xc7b0, 0x0c2d, - 0xc7b3, 0x20d4, - 0xc7b6, 0x0c33, - 0xc7b9, 0x20d7, - 0xc7bb, 0x0c38, - 0xc7bd, 0x20d9, - 0xc7bf, 0x0c3c, - 0xc7c0, 0x20db, - 0xc7c1, 0x0c3e, - 0xc7c2, 0x20dc, - 0xc7c3, 0x0c40, - 0xc7c5, 0x20dd, - 0xc7c6, 0x0c43, - 0xc7c7, 0x20de, - 0xc7c9, 0x0c46, - 0xc7cc, 0x20e0, - 0xc7cd, 0x0c4a, - 0xc7cf, 0x20e1, - 0xc7d0, 0x0c4d, - 0xc7d4, 0x20e2, - 0xc7d6, 0x0c53, - 0xc7d7, 0x20e4, - 0xc7d8, 0x0c55, - 0xc7de, 0x20e5, - 0xc7df, 0x0c5c, - 0xc7e1, 0x20e6, - 0xc7e4, 0x0c61, - 0xc7ea, 0x20e9, - 0xc7ef, 0x0c6c, - 0xc7f7, 0x20ee, - 0xc7f9, 0x0c76, - 0xc7fb, 0x20f0, - 0xc7fc, 0x0c79, - 0xc7fd, 0x20f1, - 0xc7fe, 0x0c7b, - 0xc8a1, 0x0c7c, - 0xc8a3, 0x20f2, - 0xc8a4, 0x0c7f, - 0xc8a7, 0x20f3, - 0xc8a9, 0x0c84, - 0xc8b0, 0x20f5, - 0xc8b1, 0x0c8c, - 0xc8b5, 0x20f6, - 0xc8b6, 0x0c91, - 0xc8b7, 0x20f7, - 0xc8b8, 0x0c93, - 0xc8c3, 0x20f8, - 0xc8c7, 0x0ca2, - 0xc8c8, 0x20fc, - 0xc8c9, 0x0ca4, - 0xc8cd, 0x20fd, - 0xc8ce, 0x0ca9, - 0xc8cf, 0x20fe, - 0xc8d0, 0x0cab, - 0xc8d2, 0x20ff, - 0xc8d3, 0x0cae, - 0xc8d9, 0x2100, - 0xc8da, 0x0cb5, - 0xc8de, 0x2101, - 0xc8df, 0x0cba, - 0xc8ed, 0x2102, - 0xc8ee, 0x0cc9, - 0xc8f1, 0x2103, - 0xc8f4, 0x0ccf, - 0xc8f7, 0x2106, - 0xc8f9, 0x0cd4, - 0xc8fa, 0x2108, - 0xc8fb, 0x0cd6, - 0xc8fc, 0x2109, - 0xc8fd, 0x0cd8, - 0xc9a1, 0x210a, - 0xc9a2, 0x0cdb, - 0xc9a5, 0x210b, - 0xc9a6, 0x0cdf, - 0xc9a7, 0x210c, - 0xc9a9, 0x0ce2, - 0xc9ac, 0x210e, - 0xc9ad, 0x0ce6, - 0xc9b1, 0x210f, - 0xc9b2, 0x0ceb, - 0xc9b4, 0x2110, - 0xc9b5, 0x0cee, - 0xc9b8, 0x2111, - 0xc9ba, 0x0cf3, - 0xc9c1, 0x2113, - 0xc9c3, 0x0cfc, - 0xc9c4, 0x2115, - 0xc9c5, 0x0cfe, - 0xc9c9, 0x2116, - 0xc9ca, 0x0d03, - 0xc9cb, 0x2117, - 0xc9cc, 0x0d05, - 0xc9cd, 0x2118, - 0xc9ce, 0x0d07, - 0xc9d5, 0x2119, - 0xc9d6, 0x0d0f, - 0xc9dc, 0x211a, - 0xc9dd, 0x0d16, - 0xc9de, 0x211b, - 0xc9df, 0x0d18, - 0xc9e1, 0x211c, - 0xc9e2, 0x0d1b, - 0xc9e3, 0x211d, - 0xc9e4, 0x0d1d, - 0xc9e5, 0x211e, - 0xc9e6, 0x0d1f, - 0xc9e8, 0x211f, - 0xc9e9, 0x0d22, - 0xc9f0, 0x2120, - 0xc9f1, 0x0d2a, - 0xc9f3, 0x2121, - 0xc9f5, 0x0d2e, - 0xc9f6, 0x2123, - 0xc9f7, 0x0d30, - 0xc9f8, 0x2124, - 0xc9fa, 0x0d33, - 0xc9fe, 0x2126, - 0xcaa1, 0x0d38, - 0xcaa4, 0x2127, - 0xcaa7, 0x0d3e, - 0xcaa8, 0x212a, - 0xcaa9, 0x0d40, - 0xcaaa, 0x212b, - 0xcaac, 0x0d43, - 0xcab1, 0x212d, - 0xcab2, 0x0d49, - 0xcab4, 0x212e, - 0xcab7, 0x0d4e, - 0xcabb, 0x2131, - 0xcabc, 0x0d53, - 0xcac6, 0x2132, - 0xcac7, 0x0d5e, - 0xcaca, 0x2133, - 0xcacb, 0x0d62, - 0xcacd, 0x2134, - 0xcacf, 0x0d66, - 0xcad3, 0x2136, - 0xcad5, 0x0d6c, - 0xcad9, 0x2138, - 0xcada, 0x0d71, - 0xcade, 0x2139, - 0xcadf, 0x0d76, - 0xcae0, 0x213a, - 0xcae1, 0x0d78, - 0xcae4, 0x213b, - 0xcae5, 0x0d7c, - 0xcae9, 0x213c, - 0xcaeb, 0x0d82, - 0xcaf4, 0x213e, - 0xcaf6, 0x0d8d, - 0xcaf7, 0x2140, - 0xcaf8, 0x0d8f, - 0xcafa, 0x2141, - 0xcafb, 0x0d92, - 0xcafd, 0x2142, - 0xcafe, 0x0d95, - 0xcba1, 0x0d96, - 0xcba7, 0x2143, - 0xcba8, 0x0d9d, - 0xcbab, 0x2144, - 0xcbac, 0x0da1, - 0xcbad, 0x2145, - 0xcbae, 0x0da3, - 0xcbb3, 0x2146, - 0xcbb4, 0x0da9, - 0xcbb5, 0x2147, - 0xcbb7, 0x0dac, - 0xcbb8, 0x2149, - 0xcbb9, 0x0dae, - 0xcbbf, 0x214a, - 0xcbc0, 0x0db5, - 0xcbc7, 0x214b, - 0xcbc8, 0x0dbd, - 0xcbc9, 0x214c, - 0xcbcd, 0x0dc2, - 0xcbcf, 0x2150, - 0xcbd1, 0x0dc6, - 0xcbd3, 0x2152, - 0xcbd4, 0x0dc9, - 0xcbd5, 0x2153, - 0xcbd6, 0x0dcb, - 0xcbdf, 0x2154, - 0xcbe1, 0x0dd6, - 0xcbe4, 0x2156, - 0xcbe5, 0x0dda, - 0xcbe6, 0x2157, - 0xcbe8, 0x0ddd, - 0xcbea, 0x2159, - 0xcbeb, 0x0de0, - 0xcbef, 0x215a, - 0xcbf1, 0x0de6, - 0xcbf5, 0x215c, - 0xcbf7, 0x0dec, - 0xcbf8, 0x215e, - 0xcbf9, 0x0dee, - 0xcca1, 0x215f, - 0xcca3, 0x0df6, - 0xcca8, 0x2161, - 0xcca9, 0x0dfc, - 0xccac, 0x2162, - 0xccad, 0x0e00, - 0xccaf, 0x2163, - 0xccb4, 0x0e07, - 0xccb7, 0x2168, - 0xccb9, 0x0e0c, - 0xccbe, 0x216a, - 0xccbf, 0x0e12, - 0xccc0, 0x216b, - 0xccc1, 0x0e14, - 0xcccc, 0x216c, - 0xcccd, 0x0e20, - 0xccce, 0x216d, - 0xcccf, 0x0e22, - 0xccd0, 0x216e, - 0xccd1, 0x0e24, - 0xccd6, 0x216f, - 0xccd7, 0x0e2a, - 0xccda, 0x2170, - 0xccdb, 0x0e2e, - 0xccdc, 0x2171, - 0xccdd, 0x0e30, - 0xcce0, 0x2172, - 0xcce1, 0x0e34, - 0xcce2, 0x2173, - 0xcce3, 0x0e36, - 0xcce5, 0x2174, - 0xcce6, 0x0e39, - 0xccf5, 0x2175, - 0xccf6, 0x0e49, - 0xccf9, 0x2176, - 0xccfb, 0x0e4e, - 0xccfc, 0x2178, - 0xcda1, 0x0e52, - 0xcdad, 0x217b, - 0xcdae, 0x0e5f, - 0xcdb3, 0x217c, - 0xcdb4, 0x0e65, - 0xcdb7, 0x217d, - 0xcdb8, 0x0e69, - 0xcdbc, 0x217e, - 0xcdbd, 0x0e6e, - 0xcdbf, 0x217f, - 0xcdc0, 0x0e71, - 0xcdc5, 0x2180, - 0xcdc6, 0x0e77, - 0xcdc7, 0x2181, - 0xcdc8, 0x0e79, - 0xcdd2, 0x2182, - 0xcdd3, 0x0e84, - 0xcdd4, 0x2183, - 0xcdd7, 0x0e88, - 0xcddd, 0x2186, - 0xcdde, 0x0e8f, - 0xcde0, 0x2187, - 0xcde1, 0x0e92, - 0xcde4, 0x2188, - 0xcde6, 0x0e97, - 0xcde7, 0x218a, - 0xcde8, 0x0e99, - 0xcdf2, 0x218b, - 0xcdf3, 0x0ea4, - 0xcdf8, 0x218c, - 0xcdf9, 0x0eaa, - 0xcea1, 0x0eb0, - 0xcea4, 0x218d, - 0xcea6, 0x0eb5, - 0xcea7, 0x218f, - 0xcea8, 0x0eb7, - 0xceaa, 0x2190, - 0xceae, 0x0ebd, - 0xceb0, 0x2194, - 0xceb2, 0x0ec1, - 0xceb3, 0x2196, - 0xceb4, 0x0ec3, - 0xcebd, 0x2197, - 0xcebe, 0x0ecd, - 0xcec0, 0x2198, - 0xcec1, 0x0ed0, - 0xcec5, 0x2199, - 0xcec7, 0x0ed6, - 0xcec8, 0x219b, - 0xcec9, 0x0ed8, - 0xceca, 0x219c, - 0xcecb, 0x0eda, - 0xcece, 0x219d, - 0xced2, 0x0ee1, - 0xced8, 0x21a1, - 0xcedb, 0x0eea, - 0xcedc, 0x21a4, - 0xcedd, 0x0eec, - 0xcede, 0x21a5, - 0xcee0, 0x0eef, - 0xceeb, 0x21a7, - 0xceec, 0x0efb, - 0xceed, 0x21a8, - 0xceee, 0x0efd, - 0xcef1, 0x21a9, - 0xcef2, 0x0f01, - 0xcef3, 0x21aa, - 0xcef4, 0x0f03, - 0xcefd, 0x21ab, - 0xcfa1, 0x0f0e, - 0xcfae, 0x21ad, - 0xcfaf, 0x0f1c, - 0xcfb0, 0x21ae, - 0xcfb1, 0x0f1e, - 0xcfb3, 0x21af, - 0xcfb4, 0x0f21, - 0xcfb7, 0x21b0, - 0xcfb9, 0x0f26, - 0xcfba, 0x21b2, - 0xcfbb, 0x0f28, - 0xcfbd, 0x21b3, - 0xcfbe, 0x0f2b, - 0xcfbf, 0x21b4, - 0xcfc2, 0x0f2f, - 0xcfc5, 0x21b7, - 0xcfc6, 0x0f33, - 0xcfc7, 0x21b8, - 0xcfc8, 0x0f35, - 0xcfca, 0x21b9, - 0xcfcc, 0x0f39, - 0xcfcd, 0x21bb, - 0xcfcf, 0x0f3c, - 0xcfd0, 0x21bd, - 0xcfd1, 0x0f3e, - 0xcfd4, 0x21be, - 0xcfd9, 0x0f46, - 0xcfda, 0x21c3, - 0xcfdb, 0x0f48, - 0xcfdc, 0x21c4, - 0xcfdd, 0x0f4a, - 0xcfdf, 0x21c5, - 0xcfe0, 0x0f4d, - 0xcfe2, 0x21c6, - 0xcfe3, 0x0f50, - 0xcfe7, 0x21c7, - 0xcfe8, 0x0f55, - 0xcfea, 0x21c8, - 0xcfeb, 0x0f58, - 0xcfec, 0x21c9, - 0xcfed, 0x0f5a, - 0xcfee, 0x21ca, - 0xcfef, 0x0f5c, - 0xcff4, 0x21cb, - 0xcff5, 0x0f62, - 0xcff9, 0x21cc, - 0xcffb, 0x0f68, - 0xcffe, 0x21ce, - 0xd0a1, 0x0f6c, - 0xd0a5, 0x21cf, - 0xd0a6, 0x0f71, - 0xd0ad, 0x21d0, - 0xd0af, 0x0f7a, - 0xd0b2, 0x21d2, - 0xd0b5, 0x0f80, - 0xd0ba, 0x21d5, - 0xd0bc, 0x0f87, - 0xd0bf, 0x21d7, - 0xd0c0, 0x0f8b, - 0xd0c6, 0x21d8, - 0xd0c7, 0x0f92, - 0xd0cb, 0x21d9, - 0xd0cc, 0x0f97, - 0xd0e2, 0x21da, - 0xd0e3, 0x0fae, - 0xd0e5, 0x21db, - 0xd0e6, 0x0fb1, - 0xd0eb, 0x21dc, - 0xd0ec, 0x0fb7, - 0xd0ed, 0x21dd, - 0xd0ee, 0x0fb9, - 0xd0f7, 0x21de, - 0xd0fa, 0x0fc5, - 0xd0fc, 0x21e1, - 0xd0fd, 0x0fc8, - 0xd1a1, 0x21e2, - 0xd1a3, 0x0fcc, - 0xd1a4, 0x21e4, - 0xd1a5, 0x0fce, - 0xd1a7, 0x21e5, - 0xd1a8, 0x0fd1, - 0xd1ab, 0x21e6, - 0xd1ac, 0x0fd5, - 0xd1af, 0x21e7, - 0xd1b2, 0x0fdb, - 0xd1b5, 0x21ea, - 0xd1b8, 0x0fe1, - 0xd1b9, 0x21ed, - 0xd1ba, 0x0fe3, - 0xd1bb, 0x21ee, - 0xd1bd, 0x0fe6, - 0xd1c6, 0x21f0, - 0xd1c9, 0x0ff2, - 0xd1cb, 0x21f3, - 0xd1cc, 0x0ff5, - 0xd1ce, 0x21f4, - 0xd1d0, 0x0ff9, - 0xd1d5, 0x21f6, - 0xd1d7, 0x1000, - 0xd1de, 0x21f8, - 0xd1df, 0x1008, - 0xd1e1, 0x21f9, - 0xd1e3, 0x100c, - 0xd1e8, 0x21fb, - 0xd1ea, 0x1013, - 0xd1ec, 0x21fd, - 0xd1ed, 0x1016, - 0xd1ee, 0x21fe, - 0xd1f0, 0x1019, - 0xd1f1, 0x2200, - 0xd1f2, 0x101b, - 0xd1f4, 0x2201, - 0xd1f5, 0x101e, - 0xd1f7, 0x2202, - 0xd1fa, 0x1023, - 0xd2a1, 0x1028, - 0xd2a2, 0x2205, - 0xd2a3, 0x102a, - 0xd2a5, 0x2206, - 0xd2a6, 0x102d, - 0xd2a9, 0x2207, - 0xd2aa, 0x1031, - 0xd2af, 0x2208, - 0xd2b0, 0x1037, - 0xd2b3, 0x2209, - 0xd2b4, 0x103b, - 0xd2b5, 0x220a, - 0xd2b7, 0x103e, - 0xd2bd, 0x220c, - 0xd2be, 0x1045, - 0xd2bf, 0x220d, - 0xd2c0, 0x1047, - 0xd2c3, 0x220e, - 0xd2c4, 0x104b, - 0xd2c5, 0x220f, - 0xd2c6, 0x104d, - 0xd2c7, 0x2210, - 0xd2c8, 0x104f, - 0xd2cf, 0x2211, - 0xd2d0, 0x1057, - 0xd2d5, 0x2212, - 0xd2d6, 0x105d, - 0xd2da, 0x2213, - 0xd2db, 0x1062, - 0xd2e4, 0x2214, - 0xd2e6, 0x106d, - 0xd2e8, 0x2216, - 0xd2ec, 0x1073, - 0xd2ef, 0x221a, - 0xd2f0, 0x1077, - 0xd2f1, 0x221b, - 0xd2f2, 0x1079, - 0xd2f5, 0x221c, - 0xd2f6, 0x107d, - 0xd2f8, 0x221d, - 0xd2f9, 0x1080, - 0xd2fb, 0x221e, - 0xd2fc, 0x1083, - 0xd2fe, 0x221f, - 0xd3a1, 0x1086, - 0xd3a3, 0x2220, - 0xd3ad, 0x1092, - 0xd3ae, 0x222a, - 0xd3af, 0x1094, - 0xd3b1, 0x222b, - 0xd3b2, 0x1097, - 0xd3b4, 0x222c, - 0xd3b7, 0x109c, - 0xd3b8, 0x222f, - 0xd3b9, 0x109e, - 0xd3bb, 0x2230, - 0xd3bc, 0x10a1, - 0xd3c5, 0x2231, - 0xd3c6, 0x10ab, - 0xd3c7, 0x2232, - 0xd3c8, 0x10ad, - 0xd3ca, 0x2233, - 0xd3cd, 0x10b2, - 0xd3d5, 0x2236, - 0xd3d6, 0x10bb, - 0xd3df, 0x2237, - 0xd3e1, 0x10c6, - 0xd3e3, 0x2239, - 0xd3e4, 0x10c9, - 0xd3e6, 0x223a, - 0xd3e7, 0x10cc, - 0xd3eb, 0x223b, - 0xd3ed, 0x10d2, - 0xd3ef, 0x223d, - 0xd3f0, 0x10d5, - 0xd3f4, 0x223e, - 0xd3f5, 0x10da, - 0xd3fc, 0x223f, - 0xd3fd, 0x10e2, - 0xd3fe, 0x2240, - 0xd4a1, 0x10e4, - 0xd4a4, 0x2241, - 0xd4a5, 0x10e8, - 0xd4a6, 0x2242, - 0xd4a9, 0x10ec, - 0xd4af, 0x2245, - 0xd4b3, 0x10f6, - 0xd4b5, 0x2249, - 0xd4b7, 0x10fa, - 0xd4b8, 0x224b, - 0xd4b9, 0x10fc, - 0xd4bc, 0x224c, - 0xd4bd, 0x1100, - 0xd4be, 0x224d, - 0xd4c0, 0x1103, - 0xd4c4, 0x224f, - 0xd4c5, 0x1108, - 0xd4c6, 0x2250, - 0xd4c8, 0x110b, - 0xd4c9, 0x2252, - 0xd4ca, 0x110d, - 0xd4cb, 0x2253, - 0xd4cf, 0x1112, - 0xd4d3, 0x2257, - 0xd4d4, 0x1117, - 0xd4d8, 0x2258, - 0xd4d9, 0x111c, - 0xd4dc, 0x2259, - 0xd4e1, 0x1124, - 0xd4e4, 0x225e, - 0xd4e5, 0x1128, - 0xd4e6, 0x225f, - 0xd4e7, 0x112a, - 0xd4ee, 0x2260, - 0xd4ef, 0x1132, - 0xd4f0, 0x2261, - 0xd4f5, 0x1138, - 0xd4f9, 0x2266, - 0xd4fa, 0x113d, - 0xd4fe, 0x2267, - 0xd5a1, 0x2268, - 0xd5a3, 0x1144, - 0xd5a9, 0x226a, - 0xd5aa, 0x114b, - 0xd5ab, 0x226b, - 0xd5ac, 0x114d, - 0xd5ae, 0x226c, - 0xd5af, 0x1150, - 0xd5b1, 0x226d, - 0xd5b2, 0x1153, - 0xd5b5, 0x226e, - 0xd5b9, 0x115a, - 0xd5bb, 0x2272, - 0xd5bc, 0x115d, - 0xd5bd, 0x2273, - 0xd5be, 0x115f, - 0xd5c0, 0x2274, - 0xd5c1, 0x1162, - 0xd5c5, 0x2275, - 0xd5c6, 0x1167, - 0xd5c7, 0x2276, - 0xd5c8, 0x1169, - 0xd5ca, 0x2277, - 0xd5cc, 0x116d, - 0xd5cd, 0x2279, - 0xd5ce, 0x116f, - 0xd5d4, 0x227a, - 0xd5d5, 0x1176, - 0xd5dd, 0x227b, - 0xd5df, 0x1180, - 0xd5e0, 0x227d, - 0xd5e1, 0x1182, - 0xd5e2, 0x227e, - 0xd5e3, 0x1184, - 0xd5ea, 0x227f, - 0xd5ed, 0x118e, - 0xd5ef, 0x2282, - 0xd5f0, 0x1191, - 0xd5f2, 0x2283, - 0xd5f4, 0x1195, - 0xd5f7, 0x15eb, - 0xd5f8, 0x1199, - 0xd6a1, 0x2285, - 0xd6a5, 0x11a4, - 0xd6af, 0x2289, - 0xd6b1, 0x11b0, - 0xd6b4, 0x228b, - 0xd6b5, 0x11b4, - 0xd6bb, 0x228c, - 0xd6bc, 0x11bb, - 0xd6bd, 0x228d, - 0xd6be, 0x11bd, - 0xd6bf, 0x228e, - 0xd6c1, 0x11c0, - 0xd6c4, 0x2290, - 0xd6c5, 0x11c4, - 0xd6ca, 0x2291, - 0xd6cb, 0x11ca, - 0xd6cd, 0x2292, - 0xd6ce, 0x11cd, - 0xd6d3, 0x2293, - 0xd6d4, 0x11d3, - 0xd6d5, 0x2294, - 0xd6d8, 0x11d7, - 0xd6da, 0x2297, - 0xd6db, 0x11da, - 0xd6df, 0x2298, - 0xd6e0, 0x11df, - 0xd6e1, 0x2299, - 0xd6e2, 0x11e1, - 0xd6e5, 0x229a, - 0xd6e6, 0x11e5, - 0xd6e7, 0x229b, - 0xd6e9, 0x11e8, - 0xd6ee, 0x229d, - 0xd6f0, 0x11ef, - 0xd6f2, 0x229f, - 0xd6f3, 0x11f2, - 0xd6f5, 0x22a0, - 0xd6f7, 0x11f6, - 0xd6fc, 0x22a2, - 0xd7a1, 0x11fe, - 0xd7a4, 0x22a5, - 0xd7a5, 0x1202, - 0xd7a8, 0x22a6, - 0xd7ab, 0x1208, - 0xd7ac, 0x22a9, - 0xd7ad, 0x120a, - 0xd7ae, 0x22aa, - 0xd7b2, 0x120f, - 0xd7b3, 0x22ae, - 0xd7b5, 0x1212, - 0xd7b6, 0x22b0, - 0xd7b7, 0x1214, - 0xd7b8, 0x22b1, - 0xd7bd, 0x121a, - 0xd7c7, 0x22b6, - 0xd7c8, 0x1225, - 0xd7ca, 0x22b7, - 0xd7cb, 0x1228, - 0xd7d5, 0x22b8, - 0xd7d6, 0x1233, - 0xd7db, 0x22b9, - 0xd7df, 0x123c, - 0xd7e7, 0x22bd, - 0xd7e8, 0x1245, - 0xd7e9, 0x22be, - 0xd7eb, 0x1248, - 0xd8a1, 0x1257, - 0xd8c4, 0x22c0, - 0xd8c5, 0x127b, - 0xd8c7, 0x22c1, - 0xd8c8, 0x127e, - 0xd8c9, 0x22c2, - 0xd8ca, 0x1280, - 0xd8cc, 0x22c3, - 0xd8ce, 0x1284, - 0xd8d0, 0x22c5, - 0xd8d2, 0x1288, - 0xd8d3, 0x22c7, - 0xd8d4, 0x128a, - 0xd8d9, 0x22c8, - 0xd8da, 0x1290, - 0xd8db, 0x22c9, - 0xd8dd, 0x1293, - 0xd8f1, 0x22cb, - 0xd8f2, 0x12a8, - 0xd8f6, 0x22cc, - 0xd8f8, 0x12ae, - 0xd9a1, 0x12b5, - 0xd9ad, 0x22ce, - 0xd9ae, 0x12c2, - 0xd9af, 0x22cf, - 0xd9b0, 0x12c4, - 0xd9b1, 0x22d0, - 0xd9b4, 0x12c8, - 0xd9c7, 0x22d3, - 0xd9c8, 0x12dc, - 0xd9cd, 0x22d4, - 0xd9d1, 0x12e5, - 0xd9dd, 0x22d8, - 0xd9de, 0x12f2, - 0xd9e1, 0x22d9, - 0xd9e2, 0x12f6, - 0xd9e4, 0x22da, - 0xd9e5, 0x12f9, - 0xd9e6, 0x22db, - 0xd9e7, 0x12fb, - 0xd9ec, 0x22dc, - 0xd9ed, 0x1301, - 0xd9f4, 0x22dd, - 0xd9f6, 0x130a, - 0xdaa1, 0x1313, - 0xdaa5, 0x22df, - 0xdae0, 0x1352, - 0xdaea, 0x231a, - 0xdaeb, 0x135d, - 0xdaf7, 0x231b, - 0xdaf8, 0x136a, - 0xdaf9, 0x231c, - 0xdafa, 0x136c, - 0xdafe, 0x231d, - 0xdba1, 0x1371, - 0xdba3, 0x231e, - 0xdba4, 0x1374, - 0xdba6, 0x231f, - 0xdba7, 0x1377, - 0xdba9, 0x2320, - 0xdbab, 0x137b, - 0xdbbb, 0x2322, - 0xdbbc, 0x138c, - 0xdbbd, 0x2323, - 0xdbbe, 0x138e, - 0xdbcf, 0x2324, - 0xdbd0, 0x13a0, - 0xdbd1, 0x2325, - 0xdbd2, 0x13a2, - 0xdbdb, 0x2326, - 0xdbdc, 0x13ac, - 0xdbde, 0x2327, - 0xdbdf, 0x13af, - 0xdbe2, 0x2328, - 0xdbe3, 0x13b3, - 0xdbe4, 0x2329, - 0xdbe5, 0x13b5, - 0xdbeb, 0x232a, - 0xdbec, 0x13bc, - 0xdbee, 0x232b, - 0xdbef, 0x13bf, - 0xdbf1, 0x232c, - 0xdbf2, 0x13c2, - 0xdbf5, 0x232d, - 0xdbf8, 0x13c8, - 0xdca1, 0x13cf, - 0xdcbc, 0x2330, - 0xdcbd, 0x13eb, - 0xdcbf, 0x2331, - 0xdcc0, 0x13ee, - 0xdcc2, 0x2332, - 0xdcc3, 0x13f1, - 0xdcc8, 0x2333, - 0xdccb, 0x13f9, - 0xdcd1, 0x2336, - 0xdcd2, 0x1400, - 0xdcd7, 0x2337, - 0xdcd8, 0x1406, - 0xdce0, 0x2338, - 0xdce1, 0x140f, - 0xdce3, 0x2339, - 0xdce5, 0x1413, - 0xdce9, 0x233b, - 0xdceb, 0x1419, - 0xdcf1, 0x233d, - 0xdcf2, 0x1420, - 0xdcf6, 0x233e, - 0xdcf7, 0x1425, - 0xdcf9, 0x233f, - 0xdcfa, 0x1428, - 0xdcfd, 0x2340, - 0xdda1, 0x2342, - 0xdda2, 0x142e, - 0xdda3, 0x2343, - 0xdda8, 0x1434, - 0xddaa, 0x2348, - 0xddac, 0x1438, - 0xddb2, 0x234a, - 0xddb3, 0x143f, - 0xddb5, 0x234b, - 0xddb6, 0x1442, - 0xddba, 0x234c, - 0xddbc, 0x1448, - 0xddd3, 0x234e, - 0xddd4, 0x1460, - 0xdddb, 0x234f, - 0xdddc, 0x1468, - 0xddde, 0x2350, - 0xdddf, 0x146b, - 0xdde4, 0x2351, - 0xdde5, 0x1471, - 0xddeb, 0x2352, - 0xddec, 0x1478, - 0xddf1, 0x2353, - 0xddf2, 0x147e, - 0xddf6, 0x2354, - 0xddf8, 0x1484, - 0xddfc, 0x2356, - 0xddfd, 0x1489, - 0xddfe, 0x2357, - 0xdea1, 0x148b, - 0xdead, 0x2358, - 0xdeae, 0x1498, - 0xdeb4, 0x2359, - 0xdeb5, 0x149f, - 0xdeba, 0x235a, - 0xdebb, 0x14a5, - 0xdec6, 0x235b, - 0xdec7, 0x14b1, - 0xdecf, 0x235c, - 0xded0, 0x14ba, - 0xded1, 0x235d, - 0xded3, 0x14bd, - 0xded8, 0x235f, - 0xded9, 0x14c3, - 0xdee2, 0x2360, - 0xdee3, 0x14cd, - 0xdee8, 0x2361, - 0xdee9, 0x14d3, - 0xdeec, 0x2362, - 0xdeed, 0x14d7, - 0xdef3, 0x2363, - 0xdef4, 0x14de, - 0xdefc, 0x2364, - 0xdefd, 0x14e7, - 0xdfa1, 0x14e9, - 0xdfa2, 0x2365, - 0xdfa4, 0x14ec, - 0xdfa5, 0x2367, - 0xdfa6, 0x14ee, - 0xdfb4, 0x2368, - 0xdfb5, 0x14fd, - 0xdfbc, 0x2369, - 0xdfbe, 0x1506, - 0xdfbf, 0x236b, - 0xdfc0, 0x1508, - 0xdfc2, 0x236c, - 0xdfc4, 0x150c, - 0xdfcc, 0x236e, - 0xdfcd, 0x1515, - 0xdfd0, 0x236f, - 0xdfd1, 0x1519, - 0xdfd5, 0x2370, - 0xdfd6, 0x151e, - 0xdfd8, 0x2371, - 0xdfda, 0x1522, - 0xdfdc, 0x2373, - 0xdfdd, 0x1525, - 0xdfe0, 0x2374, - 0xdfe1, 0x1529, - 0xdfe2, 0x2375, - 0xdfe3, 0x152b, - 0xdfe6, 0x2376, - 0xdfe7, 0x152f, - 0xdfe9, 0x2377, - 0xdfea, 0x1532, - 0xdfeb, 0x2378, - 0xdfec, 0x1534, - 0xdfef, 0x2379, - 0xdff0, 0x1538, - 0xdff5, 0x237a, - 0xdff6, 0x153e, - 0xdff9, 0x237b, - 0xdffa, 0x1542, - 0xe0a1, 0x1547, - 0xe0b6, 0x237c, - 0xe0b8, 0x155e, - 0xe0bf, 0x237e, - 0xe0c0, 0x1566, - 0xe0c8, 0x237f, - 0xe0c9, 0x156f, - 0xe0ce, 0x2380, - 0xe0cf, 0x1575, - 0xe0d3, 0x2381, - 0xe0d4, 0x157a, - 0xe0e0, 0x2382, - 0xe0e1, 0x1587, - 0xe0f0, 0x2383, - 0xe0f1, 0x1597, - 0xe0f8, 0x2384, - 0xe0f9, 0x159f, - 0xe0fc, 0x2385, - 0xe1a1, 0x15a5, - 0xe1ab, 0x2388, - 0xe1ac, 0x15b0, - 0xe1ad, 0x2389, - 0xe1ae, 0x15b2, - 0xe1b0, 0x238a, - 0xe1b1, 0x15b5, - 0xe1b4, 0x238b, - 0xe1b5, 0x15b9, - 0xe1bb, 0x238c, - 0xe1bc, 0x15c0, - 0xe1bd, 0x238d, - 0xe1be, 0x15c2, - 0xe1c0, 0x238e, - 0xe1c2, 0x15c6, - 0xe1c9, 0x2390, - 0xe1ca, 0x15ce, - 0xe1d0, 0x2391, - 0xe1d1, 0x15d5, - 0xe1db, 0x2392, - 0xe1dc, 0x15e0, - 0xe1e1, 0x07aa, - 0xe1e2, 0x2393, - 0xe1e3, 0x15e7, - 0xe1e7, 0x1198, - 0xe1e8, 0x15ec, - 0xe1ee, 0x2394, - 0xe1f0, 0x15f4, - 0xe1f6, 0x2396, - 0xe1f7, 0x15fb, - 0xe1f8, 0x2397, - 0xe1f9, 0x15fd, - 0xe1fd, 0x2398, - 0xe1fe, 0x1602, - 0xe2a1, 0x1603, - 0xe2a4, 0x2399, - 0xe2a5, 0x1607, - 0xe2a8, 0x239a, - 0xe2a9, 0x160b, - 0xe2bb, 0x239b, - 0xe2c5, 0x10c5, - 0xe2c6, 0x23a5, - 0xe2cf, 0x1631, - 0xe2d0, 0x23ae, - 0xe2d1, 0x1633, - 0xe2d9, 0x23af, - 0xe2da, 0x163c, - 0xe2e3, 0x23b0, - 0xe2e5, 0x1647, - 0xe2e6, 0x23b2, - 0xe2e7, 0x1649, - 0xe2e9, 0x23b3, - 0xe2ec, 0x164e, - 0xe2f8, 0x23b6, - 0xe2f9, 0x165b, - 0xe2fa, 0x23b7, - 0xe2fe, 0x1660, - 0xe3a1, 0x1661, - 0xe3a2, 0x23bb, - 0xe3a3, 0x1663, - 0xe3a5, 0x23bc, - 0xe3a6, 0x1666, - 0xe3ab, 0x23bd, - 0xe3ac, 0x166c, - 0xe3b4, 0x23be, - 0xe3b5, 0x1675, - 0xe3c5, 0x23bf, - 0xe3dc, 0x169c, - 0xe3e3, 0x23d6, - 0xe3e4, 0x16a4, - 0xe3ed, 0x23d7, - 0xe3ee, 0x16ae, - 0xe3f1, 0x23d8, - 0xe3f3, 0x16b3, - 0xe3f8, 0x23da, - 0xe3f9, 0x16b9, - 0xe3fe, 0x23db, - 0xe4a1, 0x16bf, - 0xe4a4, 0x23dc, - 0xe4a6, 0x16c4, - 0xe4ab, 0x23de, - 0xe4ac, 0x16ca, - 0xe4af, 0x23df, - 0xe4b2, 0x16d0, - 0xe4b5, 0x23e2, - 0xe4b7, 0x16d5, - 0xe4c2, 0x23e4, - 0xe4c3, 0x16e1, - 0xe4c5, 0x23e5, - 0xe4c6, 0x16e4, - 0xe4c9, 0x23e6, - 0xe4ca, 0x16e8, - 0xe4d9, 0x23e7, - 0xe4da, 0x16f8, - 0xe4dc, 0x23e8, - 0xe4dd, 0x16fb, - 0xe4de, 0x23e9, - 0xe4df, 0x16fd, - 0xe4e4, 0x23ea, - 0xe4e5, 0x1703, - 0xe4eb, 0x23eb, - 0xe4ed, 0x170b, - 0xe4f2, 0x23ed, - 0xe4f3, 0x1711, - 0xe4fe, 0x23ee, - 0xe5a1, 0x171d, - 0xe5b0, 0x23ef, - 0xe5b1, 0x172d, - 0xe5b9, 0x23f0, - 0xe5ba, 0x1736, - 0xe5c7, 0x23f1, - 0xe5c8, 0x1744, - 0xe5c9, 0x23f2, - 0xe5ca, 0x1746, - 0xe5ce, 0x23f3, - 0xe5cf, 0x174b, - 0xe5f0, 0x23f4, - 0xe5f1, 0x176d, - 0xe5f2, 0x23f5, - 0xe5f3, 0x176f, - 0xe5fc, 0x23f6, - 0xe5fe, 0x177a, - 0xe6a1, 0x177b, - 0xe6a3, 0x23f8, - 0xe6a4, 0x177e, - 0xe6ab, 0x23f9, - 0xe6ad, 0x1787, - 0xe6ae, 0x23fb, - 0xe6af, 0x1789, - 0xe6b4, 0x23fc, - 0xe6b6, 0x1790, - 0xe6bf, 0x23fe, - 0xe6c0, 0x179a, - 0xe6c8, 0x23ff, - 0xe6ca, 0x17a4, - 0xe6cd, 0x2401, - 0xe6ce, 0x17a8, - 0xe6e0, 0x2402, - 0xe7a1, 0x2421, - 0xe7db, 0x1813, - 0xe7e1, 0x245b, - 0xe7e3, 0x181b, - 0xe7e7, 0x245d, - 0xe7e8, 0x1820, - 0xe7ef, 0x245e, - 0xe7f0, 0x1828, - 0xe7f4, 0x245f, - 0xe7f7, 0x182f, - 0xe8a1, 0x1837, - 0xe8a8, 0x2462, - 0xe8a9, 0x183f, - 0xe8ac, 0x2463, - 0xe8ad, 0x1843, - 0xe8b6, 0x2464, - 0xe8b7, 0x184d, - 0xe8b8, 0x2465, - 0xe8bb, 0x1851, - 0xe8bf, 0x2468, - 0xe8c1, 0x1857, - 0xe8c5, 0x246a, - 0xe8c6, 0x185c, - 0xe8c7, 0x246b, - 0xe8ca, 0x1860, - 0xe8ce, 0x246e, - 0xe8cf, 0x1865, - 0xe8d0, 0x246f, - 0xe8d1, 0x1867, - 0xe8d3, 0x2470, - 0xe8d4, 0x186a, - 0xe8dd, 0x2471, - 0xe8de, 0x1874, - 0xe8df, 0x2472, - 0xe8e0, 0x1876, - 0xe8e2, 0x2473, - 0xe8e4, 0x187a, - 0xe8e5, 0x2475, - 0xe8e6, 0x187c, - 0xe8e7, 0x2476, - 0xe8e8, 0x187e, - 0xe8eb, 0x2477, - 0xe8ec, 0x1882, - 0xe8ed, 0x2478, - 0xe8ee, 0x1884, - 0xe8ef, 0x2479, - 0xe8f0, 0x1886, - 0xe8f9, 0x247a, - 0xe8fa, 0x1890, - 0xe8fc, 0x247b, - 0xe8fe, 0x1894, - 0xe9a1, 0x247d, - 0xe9a2, 0x1896, - 0xe9ad, 0x247e, - 0xe9ae, 0x18a2, - 0xe9b4, 0x247f, - 0xe9b6, 0x18aa, - 0xe9b7, 0x2481, - 0xe9b8, 0x18ac, - 0xe9c4, 0x2482, - 0xe9c5, 0x18b9, - 0xe9c6, 0x2483, - 0xe9c7, 0x18bb, - 0xe9c9, 0x2484, - 0xe9ca, 0x18be, - 0xe9d6, 0x2485, - 0xe9d7, 0x18cb, - 0xe9da, 0x2486, - 0xe9db, 0x18cf, - 0xe9e4, 0x2487, - 0xe9e5, 0x18d9, - 0xe9e6, 0x2488, - 0xe9e8, 0x18dc, - 0xe9e9, 0x248a, - 0xe9ea, 0x18de, - 0xe9eb, 0x248b, - 0xe9ec, 0x18e0, - 0xe9ed, 0x248c, - 0xeaa1, 0x249e, - 0xeaa6, 0x18f8, - 0xeaa7, 0x24a3, - 0xeaa9, 0x18fb, - 0xeab1, 0x24a5, - 0xeab2, 0x1904, - 0xeabc, 0x24a6, - 0xeabd, 0x190f, - 0xeaca, 0x24a7, - 0xeacb, 0x191d, - 0xeacd, 0x24a8, - 0xeace, 0x1920, - 0xead3, 0x24a9, - 0xead4, 0x1926, - 0xeada, 0x24aa, - 0xeaf0, 0x1942, - 0xeba1, 0x1951, - 0xeba7, 0x24c0, - 0xeba8, 0x1958, - 0xebaa, 0x24c1, - 0xebab, 0x195b, - 0xebb2, 0x24c2, - 0xebb3, 0x1963, - 0xebb9, 0x24c3, - 0xebba, 0x196a, - 0xebca, 0x24c4, - 0xebcc, 0x197c, - 0xebcd, 0x24c6, - 0xebce, 0x197e, - 0xebd6, 0x24c7, - 0xebd7, 0x1987, - 0xebda, 0x24c8, - 0xebdb, 0x198b, - 0xebe1, 0x24c9, - 0xebe2, 0x1992, - 0xebf7, 0x24ca, - 0xebf8, 0x19a8, - 0xeca1, 0x19af, - 0xeca3, 0x24cb, - 0xeca4, 0x19b2, - 0xeca9, 0x24cc, - 0xecaf, 0x19bd, - 0xecb1, 0x24d2, - 0xecb2, 0x19c0, - 0xecb4, 0x24d3, - 0xecb6, 0x19c4, - 0xecbe, 0x24d5, - 0xecc0, 0x19ce, - 0xecc1, 0x24d7, - 0xecc2, 0x19d0, - 0xecc7, 0x24d8, - 0xecc8, 0x19d6, - 0xeccb, 0x24d9, - 0xeccc, 0x19da, - 0xece2, 0x24da, - 0xece3, 0x19f1, - 0xecf2, 0x24db, - 0xecf3, 0x1a01, - 0xecf5, 0x24dc, - 0xecf6, 0x1a04, - 0xecf8, 0x24dd, - 0xecf9, 0x1a07, - 0xeda1, 0x24de, - 0xeda2, 0x1a0e, - 0xeda8, 0x24df, - 0xeda9, 0x1a15, - 0xedaf, 0x24e0, - 0xedb1, 0x1a1d, - 0xedb4, 0x24e2, - 0xedb5, 0x1a21, - 0xedb6, 0x24e3, - 0xedb7, 0x1a23, - 0xedb8, 0x24e4, - 0xedb9, 0x1a25, - 0xedba, 0x24e5, - 0xedbb, 0x1a27, - 0xedbf, 0x24e6, - 0xedc0, 0x1a2c, - 0xedc2, 0x24e7, - 0xedc4, 0x1a30, - 0xedcc, 0x24e9, - 0xedce, 0x1a3a, - 0xedd3, 0x24eb, - 0xedd4, 0x1a40, - 0xedd7, 0x24ec, - 0xedd8, 0x1a44, - 0xede8, 0x24ed, - 0xede9, 0x1a55, - 0xedee, 0x24ee, - 0xedef, 0x1a5b, - 0xedf9, 0x24ef, - 0xedfb, 0x1a67, - 0xeea1, 0x1a6b, - 0xeebc, 0x24f1, - 0xeebd, 0x1a87, - 0xeebf, 0x24f2, - 0xeec0, 0x1a8a, - 0xeec4, 0x24f3, - 0xefa1, 0x252e, - 0xeff2, 0x1b1a, - 0xf0a1, 0x1b27, - 0xf0a3, 0x257f, - 0xf0a4, 0x1b2a, - 0xf0af, 0x2580, - 0xf0da, 0x1b60, - 0xf0dc, 0x25ab, - 0xf0de, 0x1b64, - 0xf0df, 0x25ad, - 0xf0e0, 0x1b66, - 0xf0e9, 0x25ae, - 0xf0ea, 0x1b70, - 0xf0ec, 0x25af, - 0xf0ed, 0x1b73, - 0xf0ef, 0x25b0, - 0xf0f0, 0x1b76, - 0xf0f7, 0x25b1, - 0xf0f8, 0x1b7e, - 0xf0f9, 0x25b2, - 0xf0fa, 0x1b80, - 0xf0fc, 0x25b3, - 0xf0fd, 0x1b83, - 0xf1a1, 0x1b85, - 0xf1a8, 0x25b4, - 0xf1a9, 0x1b8d, - 0xf1ab, 0x25b5, - 0xf1ac, 0x1b90, - 0xf1ae, 0x25b6, - 0xf1af, 0x1b93, - 0xf1b2, 0x25b7, - 0xf1b3, 0x1b97, - 0xf1bc, 0x25b8, - 0xf1bd, 0x1ba1, - 0xf1c0, 0x25b9, - 0xf1c1, 0x1ba5, - 0xf1c9, 0x25ba, - 0xf1ca, 0x1bae, - 0xf1cd, 0x25bb, - 0xf1ce, 0x1bb2, - 0xf1cf, 0x25bc, - 0xf1d1, 0x1bb5, - 0xf1da, 0x25be, - 0xf1db, 0x1bbf, - 0xf1dc, 0x25bf, - 0xf1dd, 0x1bc1, - 0xf1e4, 0x25c0, - 0xf1e5, 0x1bc9, - 0xf1ec, 0x25c1, - 0xf1ed, 0x1bd1, - 0xf1ef, 0x25c2, - 0xf1f0, 0x1bd4, - 0xf1f7, 0x25c3, - 0xf1f8, 0x1bdc, - 0xf1f9, 0x25c4, - 0xf1fa, 0x1bde, - 0xf1fc, 0x25c5, - 0xf2a1, 0x25c8, - 0xf2ae, 0x1bf0, - 0xf2b1, 0x25d5, - 0xf2b3, 0x1bf5, - 0xf2b9, 0x25d7, - 0xf2ba, 0x1bfc, - 0xf2c3, 0x25d8, - 0xf2c4, 0x1c06, - 0xf2c9, 0x25d9, - 0xf2ca, 0x1c0c, - 0xf2cc, 0x25da, - 0xf2ce, 0x1c10, - 0xf2cf, 0x25dc, - 0xf2d0, 0x1c12, - 0xf2d3, 0x25dd, - 0xf2d4, 0x1c16, - 0xf2e5, 0x25de, - 0xf2e6, 0x1c28, - 0xf2ee, 0x25df, - 0xf2ef, 0x1c31, - 0xf2f7, 0x25e0, - 0xf2f8, 0x1c3a, - 0xf2fd, 0x25e1, - 0xf2fe, 0x1c40, - 0xf3a1, 0x1c41, - 0xf3bf, 0x25e2, - 0xf3c0, 0x1c60, - 0xf3c6, 0x25e3, - 0xf3c7, 0x1c67, - 0xf3c8, 0x25e4, - 0xf3c9, 0x1c69, - 0xf3d6, 0x25e5, - 0xf3d7, 0x1c77, - 0xf3d9, 0x25e6, - 0xf3da, 0x1c7a, - 0xf3e5, 0x25e7, - 0xf3e7, 0x1c87, - 0xf3ea, 0x25e9, - 0xf3eb, 0x1c8b, - 0xf3ec, 0x25ea, - 0xf3ed, 0x1c8d, - 0xf3ef, 0x25eb, - 0xf3f0, 0x1c90, - 0xf3f1, 0x25ec, - 0xf3f2, 0x1c92, - 0xf3fd, 0x25ed, - 0xf3fe, 0x1c9e, - 0xf4a1, 0x1c9f, - 0xf4a5, 0x25ee, - 0xf4a6, 0x1ca4, - 0xf4af, 0x25ef, - 0xf4b0, 0x1cae, - 0xf4b5, 0x25f0, - 0xf4b6, 0x1cb4, - 0xf4c1, 0x25f1, - 0xf4c2, 0x1cc0, - 0xf4c7, 0x25f2, - 0xf4c8, 0x1cc6, - 0xf4cf, 0x25f3, - 0xf4d1, 0x1ccf, - 0xf4d6, 0x25f5, - 0xf4d7, 0x1cd5, - 0xf4ea, 0x25f6, - 0xf4eb, 0x1ce9, - 0xf4ef, 0x25f7, - 0xf4f0, 0x1cee, - 0xf4f5, 0x25f8, - 0xf4f6, 0x1cf4, - 0xf5a1, 0x1cfd, - 0xf5a6, 0x25f9, - 0xf5a8, 0x1d04, - 0xf5ba, 0x25fb, - 0xf5bc, 0x1d18, - 0xf5c4, 0x25fd, - 0xf5c5, 0x1d21, - 0xf5c8, 0x25fe, - 0xf5c9, 0x1d25, - 0xf5ce, 0x25ff, - 0xf5d0, 0x1d2c, - 0xf5d1, 0x2601, - 0xf5d3, 0x1d2f, - 0xf5d9, 0x2603, - 0xf5da, 0x1d36, - 0xf5dc, 0x2604, - 0xf5dd, 0x1d39, - 0xf5e6, 0x2605, - 0xf5e8, 0x1d44, - 0xf5ef, 0x2607, - 0xf5f0, 0x1d4c, - 0xf5f2, 0x2608, - 0xf5f3, 0x1d4f, - 0xf5fc, 0x2609, - 0xf5fd, 0x1d59, - 0xf6a1, 0x1d5b, - 0xf6a3, 0x260a, - 0xf6a4, 0x1d5e, - 0xf6a6, 0x260b, - 0xf6a7, 0x1d61, - 0xf6a8, 0x260c, - 0xf6a9, 0x1d63, - 0xf6ab, 0x260d, - 0xf6ac, 0x1d66, - 0xf6b0, 0x260e, - 0xf6b1, 0x1d6b, - 0xf6b3, 0x260f, - 0xf6bf, 0x1d79, - 0xf6c5, 0x261b, - 0xf6c6, 0x1d80, - 0xf6c7, 0x261c, - 0xf6c8, 0x1d82, - 0xf6c9, 0x261d, - 0xf6ca, 0x1d84, - 0xf6cf, 0x261e, - 0xf7a1, 0x264e, - 0xf7b0, 0x1dc8, - 0xf7b2, 0x265d, - 0xf7b4, 0x1dcc, - 0xf7b5, 0x265f, - 0xf7b6, 0x1dce, - 0xf7bd, 0x2660, - 0xf7be, 0x1dd6, - 0xf7c3, 0x2661, - 0xf7c4, 0x1ddc, - 0xf7c5, 0x2662, - 0xf7c7, 0x1ddf, - 0xf7ca, 0x2664, - 0xf7cc, 0x1de4, - 0xf7cf, 0x2666, - 0xf7d1, 0x1de9, - 0xf7de, 0x2668, - 0xf7df, 0x1df7, - 0xf7e1, 0x0ab9, - 0xf7e2, 0x1dfa, - 0xf7f2, 0x2669, - 0xf7f3, 0x1e0b, - 0xf7f5, 0x266a, - 0xf7f6, 0x1e0e, - 0xf8a1, 0x266b, - 0xf8a7, 0x04cc, - 0xf8a8, 0x050a, - 0xf8a9, 0x0518, - 0xf8aa, 0x2671, - 0xf8ac, 0x0594, - 0xf8ad, 0x05ce, - 0xf8ae, 0x2673, - 0xf8af, 0x05f6, - 0xf8b0, 0x2674, - 0xf8b2, 0x0653, - 0xf8b3, 0x067e, - 0xf8b4, 0x2676, - 0xf8b5, 0x06c4, - 0xf8b6, 0x2677, - 0xf8b8, 0x073c, - 0xf8b9, 0x2679, - 0xf8bb, 0x07c3, - 0xf8bc, 0x267b, - 0xf8c0, 0x082b, - 0xf8c1, 0x267f, - 0xf8c2, 0x084e, - 0xf8c3, 0x0869, - 0xf8c4, 0x2680, - 0xf8c6, 0x090c, - 0xf8c7, 0x2682, - 0xf8c9, 0x0971, - 0xf8ca, 0x2684, - 0xf8cb, 0x099a, - 0xf8cd, 0x2685, - 0xf8ce, 0x09da, - 0xf8cf, 0x2686, - 0xf8d0, 0x09fa, - 0xf8d1, 0x2687, - 0xf8dc, 0x0bda, - 0xf8dd, 0x0bdd, - 0xf8de, 0x0bea, - 0xf8df, 0x0bec, - 0xf8e0, 0x0bf2, - 0xf8e1, 0x2692, - 0xf8e6, 0x0c92, - 0xf8e7, 0x0d1a, - 0xf8e8, 0x0d8c, - 0xf8e9, 0x0dbe, - 0xf8ea, 0x2697, - 0xf8eb, 0x0dfb, - 0xf8ec, 0x2698, - 0xf8ef, 0x0e70, - 0xf8f0, 0x269b, - 0xf8f1, 0x0ea3, - 0xf8f2, 0x269c, - 0xf8f8, 0x103d, - 0xf8f9, 0x10d9, - 0xf8fa, 0x26a2, - 0xf8fc, 0x10fb, - 0xf8fd, 0x1109, - 0xf8fe, 0x26a4, - 0xf9a1, 0x11a1, - 0xf9a2, 0x26a5, - 0xf9a3, 0x11ba, - 0xf9a4, 0x26a6, - 0xf9a6, 0x11d5, - 0xf9a7, 0x26a8, - 0xf9a8, 0x11fd, - 0xf9a9, 0x1219, - 0xa1a2, 0x023f, - 0xa1a3, 0x023e, - 0xa1aa, 0x0256, - 0xa1ab, 0x1e18, - 0xa1ad, 0x0257, - 0xa1b2, 0x0246, - 0xa1fe, 0x1e1a, - 0xa3a1, 0x0242, - 0xa3a8, 0x0244, - 0xa3ac, 0x023d, - 0xa3ae, 0x1e1b, - 0xa3ba, 0x0240, - 0xa3bd, 0x1e1c, - 0xa3bf, 0x0243, - 0xa3db, 0x1e1d, - 0xa3dd, 0x1e1e, - 0xa3df, 0x0258, - 0xa3fb, 0x0254, - 0xa3fd, 0x0255, - 0xa3fe, 0x1e1f, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 gb12GBTEUCVEnc16 = { - 1, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1e24, 0x032e, 0x032f, 0x0330, 0x0331, 0x0332, 0x0333, 0x0334, - 0x0335, 0x0336, 0x0337, 0x0338, 0x0339, 0x033a, 0x033b, 0x033c, - 0x033d, 0x033e, 0x033f, 0x0340, 0x0341, 0x0342, 0x0343, 0x0344, - 0x0345, 0x0346, 0x0347, 0x0348, 0x0349, 0x034a, 0x034b, 0x034c, - 0x034d, 0x034e, 0x034f, 0x0350, 0x0351, 0x0352, 0x0353, 0x0354, - 0x0355, 0x0356, 0x0357, 0x0358, 0x0359, 0x035a, 0x035b, 0x035c, - 0x035d, 0x035e, 0x035f, 0x0360, 0x0361, 0x0362, 0x0363, 0x0364, - 0x0365, 0x0366, 0x0367, 0x0368, 0x0369, 0x036a, 0x036b, 0x036c, - 0x036d, 0x036e, 0x036f, 0x0370, 0x0371, 0x0372, 0x0373, 0x0374, - 0x0375, 0x0376, 0x0377, 0x0378, 0x0379, 0x037a, 0x037b, 0x037c, - 0x037d, 0x037e, 0x037f, 0x0380, 0x0381, 0x0382, 0x0383, 0x0384, - 0x0385, 0x0386, 0x0387, 0x0388, 0x0389, 0x038a, 0x038b, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - gb12GBTEUCVMap2, 2303 -}; - -static Gushort gb12GBTHMap2[4566] = { - 0x0000, 0x0000, - 0x2121, 0x0060, - 0x2231, 0x00be, - 0x2265, 0x00f0, - 0x2271, 0x00fa, - 0x2321, 0x0106, - 0x2421, 0x0164, - 0x2521, 0x01b7, - 0x2621, 0x020d, - 0x2641, 0x0225, - 0x2721, 0x025a, - 0x2751, 0x027b, - 0x2821, 0x029c, - 0x2845, 0x02bc, - 0x2924, 0x02e2, - 0x2a21, 0x032e, - 0x2b21, 0x038c, - 0x3021, 0x03ac, - 0x3028, 0x1e25, - 0x3029, 0x03b4, - 0x302a, 0x1e26, - 0x302b, 0x03b6, - 0x302d, 0x1e27, - 0x302f, 0x03ba, - 0x3039, 0x1e29, - 0x303a, 0x03c5, - 0x3040, 0x1e2a, - 0x3041, 0x03cc, - 0x3053, 0x1e2b, - 0x3054, 0x03df, - 0x3055, 0x1e2c, - 0x3056, 0x03e1, - 0x305a, 0x1e2d, - 0x305b, 0x03e6, - 0x305c, 0x1e2e, - 0x305d, 0x03e8, - 0x3064, 0x1e2f, - 0x3065, 0x03f0, - 0x306c, 0x1e30, - 0x306e, 0x03f9, - 0x306f, 0x1e32, - 0x3070, 0x03fb, - 0x3073, 0x1e33, - 0x3074, 0x03ff, - 0x3077, 0x1e34, - 0x3078, 0x0403, - 0x3079, 0x1e35, - 0x307a, 0x0405, - 0x3121, 0x040a, - 0x3125, 0x1e36, - 0x3127, 0x0410, - 0x3128, 0x1e38, - 0x3129, 0x0412, - 0x312b, 0x1e39, - 0x312c, 0x0415, - 0x3132, 0x1e3a, - 0x3133, 0x041c, - 0x3134, 0x1e3b, - 0x3136, 0x041f, - 0x3137, 0x1e3d, - 0x313a, 0x0423, - 0x3141, 0x1e40, - 0x3142, 0x042b, - 0x314a, 0x1e41, - 0x314b, 0x0434, - 0x314f, 0x1e42, - 0x3151, 0x043a, - 0x3152, 0x1e44, - 0x3153, 0x043c, - 0x3155, 0x1e45, - 0x3156, 0x043f, - 0x315f, 0x1e46, - 0x3162, 0x044b, - 0x3164, 0x1e49, - 0x3165, 0x044e, - 0x3167, 0x1e4a, - 0x3169, 0x0452, - 0x316a, 0x1e4c, - 0x316b, 0x0454, - 0x316e, 0x1e4d, - 0x316f, 0x0458, - 0x3171, 0x1e4e, - 0x3172, 0x045b, - 0x3174, 0x1e4f, - 0x3178, 0x0461, - 0x317d, 0x1e53, - 0x317e, 0x0467, - 0x3221, 0x0468, - 0x3226, 0x1e54, - 0x3228, 0x046f, - 0x322c, 0x1e56, - 0x322d, 0x0474, - 0x3235, 0x1e57, - 0x3236, 0x047d, - 0x3239, 0x1e58, - 0x323a, 0x0481, - 0x3246, 0x1e59, - 0x3247, 0x048e, - 0x324e, 0x1e5a, - 0x3258, 0x049f, - 0x325e, 0x1e64, - 0x325f, 0x04a6, - 0x3260, 0x1e65, - 0x3261, 0x04a8, - 0x3262, 0x1e66, - 0x3264, 0x04ab, - 0x326f, 0x1e68, - 0x3270, 0x04b7, - 0x3273, 0x1e69, - 0x327d, 0x04c4, - 0x3321, 0x1e73, - 0x3323, 0x04c8, - 0x3324, 0x1e75, - 0x3328, 0x04cd, - 0x3329, 0x1e79, - 0x332a, 0x04cf, - 0x332e, 0x1e7a, - 0x332f, 0x04d4, - 0x3335, 0x1e7b, - 0x3336, 0x04db, - 0x3339, 0x1e7c, - 0x333a, 0x04df, - 0x333e, 0x1e7d, - 0x333f, 0x04e4, - 0x3342, 0x1e7e, - 0x3343, 0x04e8, - 0x3344, 0x1e7f, - 0x3345, 0x04ea, - 0x3346, 0x1e80, - 0x3347, 0x04ec, - 0x334d, 0x1e81, - 0x334e, 0x04f3, - 0x334f, 0x1e82, - 0x3350, 0x04f5, - 0x3352, 0x1e83, - 0x3353, 0x04f8, - 0x3359, 0x1e84, - 0x335a, 0x04ff, - 0x335b, 0x1e85, - 0x335c, 0x0501, - 0x335d, 0x1e86, - 0x335e, 0x0503, - 0x3363, 0x1e87, - 0x3364, 0x0509, - 0x3365, 0x1e88, - 0x3367, 0x050c, - 0x3368, 0x1e8a, - 0x3369, 0x050e, - 0x336b, 0x1e8b, - 0x336d, 0x0512, - 0x336f, 0x1e8d, - 0x3370, 0x0515, - 0x3371, 0x1e8e, - 0x3372, 0x0517, - 0x3373, 0x1e8f, - 0x3374, 0x0519, - 0x337a, 0x1e90, - 0x337c, 0x0521, - 0x3421, 0x1e92, - 0x3423, 0x0526, - 0x3425, 0x1e94, - 0x3427, 0x052a, - 0x342b, 0x1e96, - 0x342c, 0x052f, - 0x342f, 0x1e97, - 0x3430, 0x0533, - 0x3433, 0x1e98, - 0x3435, 0x0538, - 0x3438, 0x1e9a, - 0x3439, 0x053c, - 0x343f, 0x1e9b, - 0x3440, 0x0543, - 0x3442, 0x1e9c, - 0x3443, 0x0546, - 0x3447, 0x1e9d, - 0x3448, 0x054b, - 0x344a, 0x1e9e, - 0x344b, 0x054e, - 0x344d, 0x1e9f, - 0x344e, 0x0551, - 0x344f, 0x1ea0, - 0x3450, 0x0553, - 0x3453, 0x1ea1, - 0x3455, 0x0558, - 0x345a, 0x1ea3, - 0x345b, 0x055e, - 0x345c, 0x1ea4, - 0x345d, 0x0560, - 0x346d, 0x1ea5, - 0x346e, 0x0571, - 0x346f, 0x1ea6, - 0x3470, 0x0573, - 0x3478, 0x1ea7, - 0x3479, 0x057c, - 0x347b, 0x1ea8, - 0x347c, 0x057f, - 0x3521, 0x0582, - 0x3523, 0x1ea9, - 0x3524, 0x0585, - 0x3525, 0x1eaa, - 0x3529, 0x058a, - 0x352c, 0x1eae, - 0x352d, 0x058e, - 0x352e, 0x1eaf, - 0x3530, 0x0591, - 0x3531, 0x1eb1, - 0x3536, 0x0597, - 0x3537, 0x1eb6, - 0x3538, 0x0599, - 0x353a, 0x1eb7, - 0x353d, 0x059e, - 0x3546, 0x1eba, - 0x3547, 0x05a8, - 0x354b, 0x1ebb, - 0x354c, 0x05ad, - 0x3550, 0x1ebc, - 0x3551, 0x05b2, - 0x3553, 0x1ebd, - 0x3554, 0x05b5, - 0x355d, 0x1ebe, - 0x3560, 0x05c1, - 0x3563, 0x1ec1, - 0x3564, 0x05c5, - 0x3566, 0x1ec2, - 0x3568, 0x05c9, - 0x356d, 0x1ec4, - 0x356e, 0x05cf, - 0x3576, 0x1ec5, - 0x3578, 0x05d9, - 0x357d, 0x1ec7, - 0x357e, 0x05df, - 0x3621, 0x05e0, - 0x3624, 0x1ec8, - 0x3626, 0x05e5, - 0x3627, 0x1eca, - 0x3628, 0x05e7, - 0x3629, 0x1ecb, - 0x362a, 0x05e9, - 0x362b, 0x1ecc, - 0x362c, 0x05eb, - 0x362f, 0x1ecd, - 0x3631, 0x05f0, - 0x3633, 0x1ecf, - 0x3634, 0x05f3, - 0x3637, 0x1ed0, - 0x3638, 0x05f7, - 0x363f, 0x1ed1, - 0x3642, 0x0601, - 0x3644, 0x1ed4, - 0x3645, 0x0604, - 0x3646, 0x1ed5, - 0x3647, 0x0606, - 0x364d, 0x1ed6, - 0x364e, 0x060d, - 0x364f, 0x1ed7, - 0x3651, 0x0610, - 0x3653, 0x1ed9, - 0x3655, 0x0614, - 0x3656, 0x1edb, - 0x3657, 0x0616, - 0x3659, 0x1edc, - 0x365a, 0x0619, - 0x365b, 0x1edd, - 0x365c, 0x061b, - 0x3661, 0x1ede, - 0x3662, 0x0621, - 0x3669, 0x1edf, - 0x366a, 0x0629, - 0x366c, 0x1ee0, - 0x366d, 0x062c, - 0x366e, 0x1ee1, - 0x3670, 0x062f, - 0x3671, 0x1ee3, - 0x3672, 0x0631, - 0x3676, 0x1ee4, - 0x3677, 0x0636, - 0x3679, 0x1ee5, - 0x367a, 0x0639, - 0x367b, 0x1ee6, - 0x367d, 0x063c, - 0x3721, 0x1ee8, - 0x3724, 0x0641, - 0x3727, 0x1eeb, - 0x3728, 0x0645, - 0x372f, 0x1eec, - 0x3731, 0x064e, - 0x3733, 0x1eee, - 0x3734, 0x0651, - 0x3736, 0x1eef, - 0x3738, 0x0655, - 0x3739, 0x1ef1, - 0x373a, 0x0657, - 0x3743, 0x1ef2, - 0x3745, 0x0662, - 0x3749, 0x1ef4, - 0x374a, 0x0667, - 0x374c, 0x1ef5, - 0x374d, 0x066a, - 0x374f, 0x1ef6, - 0x3750, 0x066d, - 0x3751, 0x1ef7, - 0x3752, 0x066f, - 0x3757, 0x1ef8, - 0x3759, 0x0676, - 0x375c, 0x1efa, - 0x375d, 0x067a, - 0x375f, 0x1efb, - 0x3762, 0x067f, - 0x3763, 0x1efe, - 0x3764, 0x0681, - 0x3766, 0x1eff, - 0x3769, 0x0686, - 0x376b, 0x1f02, - 0x376e, 0x068b, - 0x376f, 0x1f05, - 0x3770, 0x068d, - 0x3774, 0x1f06, - 0x3775, 0x0692, - 0x3778, 0x1f07, - 0x3779, 0x0696, - 0x3821, 0x069c, - 0x3827, 0x1f08, - 0x3829, 0x06a4, - 0x3833, 0x1f0a, - 0x3835, 0x06b0, - 0x383a, 0x1f0c, - 0x383b, 0x06b6, - 0x383c, 0x1f0d, - 0x383d, 0x06b8, - 0x383e, 0x1f0e, - 0x3840, 0x06bb, - 0x3843, 0x1f10, - 0x3844, 0x06bf, - 0x3846, 0x1f11, - 0x3848, 0x06c3, - 0x3849, 0x1f13, - 0x384a, 0x06c5, - 0x384f, 0x1f14, - 0x3850, 0x06cb, - 0x3853, 0x1f15, - 0x3857, 0x06d2, - 0x3859, 0x1f19, - 0x385b, 0x06d6, - 0x3864, 0x1f1b, - 0x3865, 0x06e0, - 0x3869, 0x1f1c, - 0x386a, 0x06e5, - 0x386b, 0x1f1d, - 0x386c, 0x06e7, - 0x3873, 0x1f1e, - 0x3874, 0x06ef, - 0x3875, 0x1f1f, - 0x3877, 0x06f2, - 0x3878, 0x1f21, - 0x3879, 0x06f4, - 0x3921, 0x06fa, - 0x3928, 0x1f22, - 0x3929, 0x0702, - 0x392e, 0x1f23, - 0x392f, 0x0708, - 0x3931, 0x1f24, - 0x3932, 0x070b, - 0x3933, 0x1f25, - 0x3934, 0x070d, - 0x3935, 0x1f26, - 0x3936, 0x070f, - 0x3939, 0x1f27, - 0x393b, 0x0714, - 0x3946, 0x1f29, - 0x3947, 0x0720, - 0x394b, 0x1f2a, - 0x394c, 0x0725, - 0x3950, 0x1f2b, - 0x3951, 0x072a, - 0x3958, 0x1f2c, - 0x3959, 0x0732, - 0x395b, 0x1f2d, - 0x395c, 0x0735, - 0x395d, 0x1f2e, - 0x395e, 0x0737, - 0x395f, 0x1f2f, - 0x3960, 0x0739, - 0x3961, 0x1f30, - 0x3962, 0x073b, - 0x3963, 0x1f31, - 0x3964, 0x073d, - 0x3966, 0x1f32, - 0x3967, 0x0740, - 0x3969, 0x1f33, - 0x396d, 0x0746, - 0x396e, 0x1f37, - 0x396f, 0x0748, - 0x3971, 0x1f38, - 0x3972, 0x074b, - 0x3973, 0x1f39, - 0x3976, 0x074f, - 0x3978, 0x1f3c, - 0x3979, 0x0752, - 0x397a, 0x1f3d, - 0x397b, 0x0754, - 0x397d, 0x1f3e, - 0x397e, 0x0757, - 0x3a21, 0x0758, - 0x3a27, 0x1f3f, - 0x3a28, 0x075f, - 0x3a2b, 0x1f40, - 0x3a2c, 0x0763, - 0x3a3a, 0x1f41, - 0x3a3b, 0x0772, - 0x3a45, 0x1f42, - 0x3a46, 0x077d, - 0x3a52, 0x1f43, - 0x3a53, 0x078a, - 0x3a57, 0x1f44, - 0x3a59, 0x0790, - 0x3a64, 0x1f46, - 0x3a65, 0x079c, - 0x3a68, 0x1f47, - 0x3a69, 0x07a0, - 0x3a6c, 0x1f48, - 0x3a6d, 0x07a4, - 0x3a73, 0x15e5, - 0x3a74, 0x07ab, - 0x3a78, 0x1f49, - 0x3a79, 0x07b0, - 0x3b21, 0x07b6, - 0x3b24, 0x1f4a, - 0x3b25, 0x07ba, - 0x3b26, 0x1f4b, - 0x3b27, 0x07bc, - 0x3b29, 0x1f4c, - 0x3b2b, 0x07c0, - 0x3b2d, 0x1f4e, - 0x3b2f, 0x07c4, - 0x3b30, 0x1f50, - 0x3b31, 0x07c6, - 0x3b33, 0x1f51, - 0x3b34, 0x07c9, - 0x3b35, 0x1f52, - 0x3b38, 0x07cd, - 0x3b39, 0x1f55, - 0x3b3b, 0x07d0, - 0x3b51, 0x1f57, - 0x3b52, 0x07e7, - 0x3b53, 0x1f58, - 0x3b55, 0x07ea, - 0x3b5f, 0x1f5a, - 0x3b68, 0x07fd, - 0x3b6b, 0x1f63, - 0x3b6c, 0x0801, - 0x3b71, 0x1f64, - 0x3b72, 0x0807, - 0x3b75, 0x1f65, - 0x3b78, 0x080d, - 0x3b7a, 0x1f68, - 0x3b7b, 0x0810, - 0x3b7d, 0x1f69, - 0x3b7e, 0x0813, - 0x3c21, 0x0814, - 0x3c22, 0x1f6a, - 0x3c23, 0x0816, - 0x3c25, 0x1f6b, - 0x3c27, 0x081a, - 0x3c28, 0x1f6d, - 0x3c2a, 0x081d, - 0x3c2b, 0x1f6f, - 0x3c2c, 0x081f, - 0x3c2d, 0x1f70, - 0x3c2e, 0x0821, - 0x3c36, 0x1f71, - 0x3c39, 0x082c, - 0x3c3b, 0x1f74, - 0x3c3c, 0x082f, - 0x3c41, 0x1f75, - 0x3c42, 0x0835, - 0x3c43, 0x1f76, - 0x3c44, 0x0837, - 0x3c46, 0x1f77, - 0x3c48, 0x083b, - 0x3c4a, 0x1f79, - 0x3c4b, 0x083e, - 0x3c4c, 0x1f7a, - 0x3c4e, 0x0841, - 0x3c50, 0x1f7c, - 0x3c51, 0x0844, - 0x3c54, 0x1f7d, - 0x3c57, 0x084a, - 0x3c58, 0x1f80, - 0x3c59, 0x084c, - 0x3c5b, 0x1f81, - 0x3c5c, 0x084f, - 0x3c5d, 0x1f82, - 0x3c5e, 0x0851, - 0x3c5f, 0x1f83, - 0x3c62, 0x0855, - 0x3c63, 0x1f86, - 0x3c65, 0x0858, - 0x3c68, 0x1f88, - 0x3c69, 0x085c, - 0x3c6a, 0x1f89, - 0x3c6d, 0x0860, - 0x3c6f, 0x1f8c, - 0x3c74, 0x0867, - 0x3c76, 0x1f91, - 0x3c7d, 0x0870, - 0x3d21, 0x0872, - 0x3d22, 0x1f98, - 0x3d28, 0x0879, - 0x3d2b, 0x1f9e, - 0x3d2d, 0x087e, - 0x3d2f, 0x1fa0, - 0x3d33, 0x0884, - 0x3d34, 0x1fa4, - 0x3d35, 0x0886, - 0x3d3a, 0x1fa5, - 0x3d3b, 0x088c, - 0x3d3d, 0x1fa6, - 0x3d40, 0x0891, - 0x3d41, 0x1fa9, - 0x3d45, 0x0896, - 0x3d48, 0x1fad, - 0x3d4b, 0x089c, - 0x3d4e, 0x1fb0, - 0x3d50, 0x08a1, - 0x3d57, 0x1fb2, - 0x3d58, 0x08a9, - 0x3d5a, 0x1fb3, - 0x3d5b, 0x08ac, - 0x3d60, 0x1fb4, - 0x3d62, 0x08b3, - 0x3d6b, 0x1fb6, - 0x3d6c, 0x08bd, - 0x3d74, 0x1fb7, - 0x3d79, 0x08ca, - 0x3d7d, 0x1fbc, - 0x3d7e, 0x08cf, - 0x3e21, 0x1fbd, - 0x3e23, 0x08d2, - 0x3e25, 0x1fbf, - 0x3e26, 0x08d5, - 0x3e28, 0x1fc0, - 0x3e29, 0x08d8, - 0x3e2a, 0x1fc1, - 0x3e2b, 0x08da, - 0x3e2d, 0x1fc2, - 0x3e2e, 0x08dd, - 0x3e31, 0x1fc3, - 0x3e32, 0x08e1, - 0x3e35, 0x1fc4, - 0x3e38, 0x08e7, - 0x3e3a, 0x1fc7, - 0x3e3b, 0x08ea, - 0x3e40, 0x1fc8, - 0x3e41, 0x08f0, - 0x3e49, 0x1fc9, - 0x3e4a, 0x08f9, - 0x3e54, 0x1fca, - 0x3e55, 0x0904, - 0x3e59, 0x1fcb, - 0x3e5a, 0x0909, - 0x3e5d, 0x1fcc, - 0x3e5e, 0x090d, - 0x3e62, 0x1fcd, - 0x3e63, 0x0912, - 0x3e65, 0x1fce, - 0x3e66, 0x0915, - 0x3e67, 0x1fcf, - 0x3e68, 0x0917, - 0x3e69, 0x1fd0, - 0x3e6a, 0x0919, - 0x3e6e, 0x1fd1, - 0x3e6f, 0x091e, - 0x3e75, 0x1fd2, - 0x3e76, 0x0925, - 0x3e77, 0x1fd3, - 0x3e79, 0x0928, - 0x3e7b, 0x1fd5, - 0x3e7d, 0x092c, - 0x3f21, 0x092e, - 0x3f25, 0x1fd7, - 0x3f26, 0x0933, - 0x3f2a, 0x1fd8, - 0x3f2b, 0x0938, - 0x3f2d, 0x1fd9, - 0x3f2e, 0x093b, - 0x3f45, 0x1fda, - 0x3f46, 0x0953, - 0x3f47, 0x1fdb, - 0x3f48, 0x0955, - 0x3f4e, 0x1fdc, - 0x3f4f, 0x095c, - 0x3f51, 0x1fdd, - 0x3f53, 0x0960, - 0x3f59, 0x1fdf, - 0x3f5a, 0x0967, - 0x3f62, 0x1fe0, - 0x3f65, 0x0972, - 0x3f69, 0x1fe3, - 0x3f6a, 0x0977, - 0x3f6b, 0x1fe4, - 0x3f6c, 0x0979, - 0x3f6d, 0x1fe5, - 0x3f6e, 0x097b, - 0x3f73, 0x1fe6, - 0x3f74, 0x0981, - 0x3f75, 0x1fe7, - 0x3f76, 0x0983, - 0x3f77, 0x1fe8, - 0x3f78, 0x0985, - 0x3f79, 0x1fe9, - 0x3f7b, 0x0988, - 0x4021, 0x1feb, - 0x4022, 0x098d, - 0x4023, 0x1fec, - 0x4024, 0x098f, - 0x4029, 0x1fed, - 0x402a, 0x0995, - 0x402b, 0x1fee, - 0x402c, 0x0997, - 0x402f, 0x1fef, - 0x4031, 0x099c, - 0x4033, 0x1ff1, - 0x4037, 0x09a2, - 0x4038, 0x1ff5, - 0x4045, 0x09b0, - 0x404c, 0x2002, - 0x404e, 0x09b9, - 0x4054, 0x2004, - 0x4055, 0x09c0, - 0x4056, 0x2005, - 0x4057, 0x09c2, - 0x4058, 0x2006, - 0x4059, 0x09c4, - 0x405d, 0x2007, - 0x405e, 0x09c9, - 0x4060, 0x2008, - 0x4061, 0x09cc, - 0x4069, 0x2009, - 0x406a, 0x09d5, - 0x406b, 0x200a, - 0x406d, 0x09d8, - 0x406f, 0x200c, - 0x4072, 0x09dd, - 0x4076, 0x200f, - 0x407b, 0x09e6, - 0x4121, 0x09ea, - 0x4124, 0x2014, - 0x4126, 0x09ef, - 0x4129, 0x2016, - 0x412e, 0x09f7, - 0x412f, 0x201b, - 0x4139, 0x0a02, - 0x413d, 0x2025, - 0x413f, 0x0a08, - 0x4142, 0x2027, - 0x4143, 0x0a0c, - 0x4146, 0x2028, - 0x4147, 0x0a10, - 0x4149, 0x2029, - 0x414a, 0x0a13, - 0x414d, 0x202a, - 0x414e, 0x0a17, - 0x4154, 0x202b, - 0x4155, 0x0a1e, - 0x4159, 0x202c, - 0x415c, 0x0a25, - 0x415e, 0x202f, - 0x415f, 0x0a28, - 0x4164, 0x2030, - 0x4166, 0x0a2f, - 0x4169, 0x2032, - 0x416a, 0x0a33, - 0x416b, 0x2033, - 0x416d, 0x0a36, - 0x4173, 0x2035, - 0x4174, 0x0a3d, - 0x4175, 0x2036, - 0x4176, 0x0a3f, - 0x417a, 0x2037, - 0x417e, 0x0a47, - 0x4221, 0x0a48, - 0x4222, 0x203b, - 0x4229, 0x0a50, - 0x422b, 0x2042, - 0x4234, 0x0a5b, - 0x4238, 0x204b, - 0x4239, 0x0a60, - 0x423c, 0x204c, - 0x423e, 0x0a65, - 0x423f, 0x204e, - 0x4240, 0x0a67, - 0x4241, 0x204f, - 0x4242, 0x0a69, - 0x4245, 0x2050, - 0x4248, 0x0a6f, - 0x424b, 0x2053, - 0x4251, 0x0a78, - 0x4252, 0x2059, - 0x4253, 0x0a7a, - 0x4255, 0x205a, - 0x425d, 0x0a84, - 0x425e, 0x2062, - 0x4263, 0x0a8a, - 0x4266, 0x2067, - 0x4269, 0x0a90, - 0x426a, 0x206a, - 0x426f, 0x0a96, - 0x4270, 0x206f, - 0x4271, 0x0a98, - 0x4272, 0x2070, - 0x4276, 0x0a9d, - 0x4277, 0x2074, - 0x427b, 0x0aa2, - 0x4321, 0x2078, - 0x4322, 0x0aa7, - 0x432a, 0x2079, - 0x432b, 0x0ab0, - 0x432d, 0x207a, - 0x432e, 0x0ab3, - 0x4333, 0x207b, - 0x4334, 0x1df9, - 0x4335, 0x0aba, - 0x433e, 0x207c, - 0x433f, 0x0ac4, - 0x4345, 0x207d, - 0x4348, 0x0acd, - 0x434c, 0x2080, - 0x434d, 0x0ad2, - 0x434e, 0x2081, - 0x434f, 0x0ad4, - 0x4355, 0x2082, - 0x4357, 0x0adc, - 0x4359, 0x2084, - 0x435a, 0x0adf, - 0x4360, 0x2085, - 0x4361, 0x0ae6, - 0x4365, 0x2086, - 0x4366, 0x0aeb, - 0x436d, 0x2087, - 0x436e, 0x0af3, - 0x4370, 0x2088, - 0x4371, 0x0af6, - 0x4375, 0x2089, - 0x4377, 0x0afc, - 0x4379, 0x208b, - 0x437b, 0x0b00, - 0x437d, 0x208d, - 0x437e, 0x0b03, - 0x4421, 0x0b04, - 0x4431, 0x208e, - 0x4432, 0x0b15, - 0x4436, 0x208f, - 0x4437, 0x0b1a, - 0x4446, 0x2090, - 0x4447, 0x0b2a, - 0x4449, 0x2091, - 0x444a, 0x0b2d, - 0x4451, 0x2092, - 0x4452, 0x0b35, - 0x4453, 0x2093, - 0x4457, 0x0b3a, - 0x4459, 0x2097, - 0x445a, 0x0b3d, - 0x4462, 0x2098, - 0x4463, 0x0b46, - 0x4465, 0x2099, - 0x4466, 0x0b49, - 0x446c, 0x209a, - 0x446d, 0x0b50, - 0x4470, 0x209b, - 0x4472, 0x0b55, - 0x4474, 0x209d, - 0x4475, 0x0b58, - 0x4476, 0x209e, - 0x4479, 0x0b5c, - 0x447b, 0x20a1, - 0x447d, 0x0b60, - 0x447e, 0x20a3, - 0x4521, 0x20a4, - 0x4523, 0x0b64, - 0x4525, 0x20a6, - 0x452a, 0x0b6b, - 0x4531, 0x20ab, - 0x4532, 0x0b73, - 0x4535, 0x20ac, - 0x4536, 0x0b77, - 0x4537, 0x20ad, - 0x453a, 0x0b7b, - 0x453b, 0x20b0, - 0x453c, 0x0b7d, - 0x453d, 0x20b1, - 0x453e, 0x0b7f, - 0x454c, 0x20b2, - 0x454d, 0x0b8e, - 0x4553, 0x20b3, - 0x4554, 0x0b95, - 0x4562, 0x20b4, - 0x4563, 0x0ba4, - 0x4567, 0x20b5, - 0x4568, 0x0ba9, - 0x4574, 0x20b6, - 0x4575, 0x0bb6, - 0x4621, 0x0bc0, - 0x462d, 0x20b7, - 0x462f, 0x0bce, - 0x4635, 0x20b9, - 0x4637, 0x0bd6, - 0x463b, 0x20bb, - 0x463c, 0x0bdb, - 0x463e, 0x20bc, - 0x463f, 0x0bde, - 0x4640, 0x20bd, - 0x4641, 0x0be0, - 0x4643, 0x20be, - 0x4645, 0x0be4, - 0x464b, 0x20c0, - 0x464e, 0x0bed, - 0x4653, 0x20c3, - 0x4654, 0x0bf3, - 0x4657, 0x20c4, - 0x4658, 0x0bf7, - 0x466a, 0x20c5, - 0x466c, 0x0c0b, - 0x466f, 0x20c7, - 0x4670, 0x0c0f, - 0x4671, 0x20c8, - 0x4672, 0x0c11, - 0x4674, 0x20c9, - 0x4675, 0x0c14, - 0x4678, 0x20ca, - 0x4679, 0x0c18, - 0x467d, 0x20cb, - 0x467e, 0x0c1d, - 0x4721, 0x0c1e, - 0x4723, 0x20cc, - 0x4724, 0x0c21, - 0x4725, 0x20cd, - 0x4727, 0x0c24, - 0x4728, 0x20cf, - 0x472a, 0x0c27, - 0x472b, 0x20d1, - 0x472c, 0x0c29, - 0x472e, 0x20d2, - 0x4730, 0x0c2d, - 0x4733, 0x20d4, - 0x4736, 0x0c33, - 0x4739, 0x20d7, - 0x473b, 0x0c38, - 0x473d, 0x20d9, - 0x473f, 0x0c3c, - 0x4740, 0x20db, - 0x4741, 0x0c3e, - 0x4742, 0x20dc, - 0x4743, 0x0c40, - 0x4745, 0x20dd, - 0x4746, 0x0c43, - 0x4747, 0x20de, - 0x4749, 0x0c46, - 0x474c, 0x20e0, - 0x474d, 0x0c4a, - 0x474f, 0x20e1, - 0x4750, 0x0c4d, - 0x4754, 0x20e2, - 0x4756, 0x0c53, - 0x4757, 0x20e4, - 0x4758, 0x0c55, - 0x475e, 0x20e5, - 0x475f, 0x0c5c, - 0x4761, 0x20e6, - 0x4764, 0x0c61, - 0x476a, 0x20e9, - 0x476f, 0x0c6c, - 0x4777, 0x20ee, - 0x4779, 0x0c76, - 0x477b, 0x20f0, - 0x477c, 0x0c79, - 0x477d, 0x20f1, - 0x477e, 0x0c7b, - 0x4821, 0x0c7c, - 0x4823, 0x20f2, - 0x4824, 0x0c7f, - 0x4827, 0x20f3, - 0x4829, 0x0c84, - 0x4830, 0x20f5, - 0x4831, 0x0c8c, - 0x4835, 0x20f6, - 0x4836, 0x0c91, - 0x4837, 0x20f7, - 0x4838, 0x0c93, - 0x4843, 0x20f8, - 0x4847, 0x0ca2, - 0x4848, 0x20fc, - 0x4849, 0x0ca4, - 0x484d, 0x20fd, - 0x484e, 0x0ca9, - 0x484f, 0x20fe, - 0x4850, 0x0cab, - 0x4852, 0x20ff, - 0x4853, 0x0cae, - 0x4859, 0x2100, - 0x485a, 0x0cb5, - 0x485e, 0x2101, - 0x485f, 0x0cba, - 0x486d, 0x2102, - 0x486e, 0x0cc9, - 0x4871, 0x2103, - 0x4874, 0x0ccf, - 0x4877, 0x2106, - 0x4879, 0x0cd4, - 0x487a, 0x2108, - 0x487b, 0x0cd6, - 0x487c, 0x2109, - 0x487d, 0x0cd8, - 0x4921, 0x210a, - 0x4922, 0x0cdb, - 0x4925, 0x210b, - 0x4926, 0x0cdf, - 0x4927, 0x210c, - 0x4929, 0x0ce2, - 0x492c, 0x210e, - 0x492d, 0x0ce6, - 0x4931, 0x210f, - 0x4932, 0x0ceb, - 0x4934, 0x2110, - 0x4935, 0x0cee, - 0x4938, 0x2111, - 0x493a, 0x0cf3, - 0x4941, 0x2113, - 0x4943, 0x0cfc, - 0x4944, 0x2115, - 0x4945, 0x0cfe, - 0x4949, 0x2116, - 0x494a, 0x0d03, - 0x494b, 0x2117, - 0x494c, 0x0d05, - 0x494d, 0x2118, - 0x494e, 0x0d07, - 0x4955, 0x2119, - 0x4956, 0x0d0f, - 0x495c, 0x211a, - 0x495d, 0x0d16, - 0x495e, 0x211b, - 0x495f, 0x0d18, - 0x4961, 0x211c, - 0x4962, 0x0d1b, - 0x4963, 0x211d, - 0x4964, 0x0d1d, - 0x4965, 0x211e, - 0x4966, 0x0d1f, - 0x4968, 0x211f, - 0x4969, 0x0d22, - 0x4970, 0x2120, - 0x4971, 0x0d2a, - 0x4973, 0x2121, - 0x4975, 0x0d2e, - 0x4976, 0x2123, - 0x4977, 0x0d30, - 0x4978, 0x2124, - 0x497a, 0x0d33, - 0x497e, 0x2126, - 0x4a21, 0x0d38, - 0x4a24, 0x2127, - 0x4a27, 0x0d3e, - 0x4a28, 0x212a, - 0x4a29, 0x0d40, - 0x4a2a, 0x212b, - 0x4a2c, 0x0d43, - 0x4a31, 0x212d, - 0x4a32, 0x0d49, - 0x4a34, 0x212e, - 0x4a37, 0x0d4e, - 0x4a3b, 0x2131, - 0x4a3c, 0x0d53, - 0x4a46, 0x2132, - 0x4a47, 0x0d5e, - 0x4a4a, 0x2133, - 0x4a4b, 0x0d62, - 0x4a4d, 0x2134, - 0x4a4f, 0x0d66, - 0x4a53, 0x2136, - 0x4a55, 0x0d6c, - 0x4a59, 0x2138, - 0x4a5a, 0x0d71, - 0x4a5e, 0x2139, - 0x4a5f, 0x0d76, - 0x4a60, 0x213a, - 0x4a61, 0x0d78, - 0x4a64, 0x213b, - 0x4a65, 0x0d7c, - 0x4a69, 0x213c, - 0x4a6b, 0x0d82, - 0x4a74, 0x213e, - 0x4a76, 0x0d8d, - 0x4a77, 0x2140, - 0x4a78, 0x0d8f, - 0x4a7a, 0x2141, - 0x4a7b, 0x0d92, - 0x4a7d, 0x2142, - 0x4a7e, 0x0d95, - 0x4b21, 0x0d96, - 0x4b27, 0x2143, - 0x4b28, 0x0d9d, - 0x4b2b, 0x2144, - 0x4b2c, 0x0da1, - 0x4b2d, 0x2145, - 0x4b2e, 0x0da3, - 0x4b33, 0x2146, - 0x4b34, 0x0da9, - 0x4b35, 0x2147, - 0x4b37, 0x0dac, - 0x4b38, 0x2149, - 0x4b39, 0x0dae, - 0x4b3f, 0x214a, - 0x4b40, 0x0db5, - 0x4b47, 0x214b, - 0x4b48, 0x0dbd, - 0x4b49, 0x214c, - 0x4b4d, 0x0dc2, - 0x4b4f, 0x2150, - 0x4b51, 0x0dc6, - 0x4b53, 0x2152, - 0x4b54, 0x0dc9, - 0x4b55, 0x2153, - 0x4b56, 0x0dcb, - 0x4b5f, 0x2154, - 0x4b61, 0x0dd6, - 0x4b64, 0x2156, - 0x4b65, 0x0dda, - 0x4b66, 0x2157, - 0x4b68, 0x0ddd, - 0x4b6a, 0x2159, - 0x4b6b, 0x0de0, - 0x4b6f, 0x215a, - 0x4b71, 0x0de6, - 0x4b75, 0x215c, - 0x4b77, 0x0dec, - 0x4b78, 0x215e, - 0x4b79, 0x0dee, - 0x4c21, 0x215f, - 0x4c23, 0x0df6, - 0x4c28, 0x2161, - 0x4c29, 0x0dfc, - 0x4c2c, 0x2162, - 0x4c2d, 0x0e00, - 0x4c2f, 0x2163, - 0x4c34, 0x0e07, - 0x4c37, 0x2168, - 0x4c39, 0x0e0c, - 0x4c3e, 0x216a, - 0x4c3f, 0x0e12, - 0x4c40, 0x216b, - 0x4c41, 0x0e14, - 0x4c4c, 0x216c, - 0x4c4d, 0x0e20, - 0x4c4e, 0x216d, - 0x4c4f, 0x0e22, - 0x4c50, 0x216e, - 0x4c51, 0x0e24, - 0x4c56, 0x216f, - 0x4c57, 0x0e2a, - 0x4c5a, 0x2170, - 0x4c5b, 0x0e2e, - 0x4c5c, 0x2171, - 0x4c5d, 0x0e30, - 0x4c60, 0x2172, - 0x4c61, 0x0e34, - 0x4c62, 0x2173, - 0x4c63, 0x0e36, - 0x4c65, 0x2174, - 0x4c66, 0x0e39, - 0x4c75, 0x2175, - 0x4c76, 0x0e49, - 0x4c79, 0x2176, - 0x4c7b, 0x0e4e, - 0x4c7c, 0x2178, - 0x4d21, 0x0e52, - 0x4d2d, 0x217b, - 0x4d2e, 0x0e5f, - 0x4d33, 0x217c, - 0x4d34, 0x0e65, - 0x4d37, 0x217d, - 0x4d38, 0x0e69, - 0x4d3c, 0x217e, - 0x4d3d, 0x0e6e, - 0x4d3f, 0x217f, - 0x4d40, 0x0e71, - 0x4d45, 0x2180, - 0x4d46, 0x0e77, - 0x4d47, 0x2181, - 0x4d48, 0x0e79, - 0x4d52, 0x2182, - 0x4d53, 0x0e84, - 0x4d54, 0x2183, - 0x4d57, 0x0e88, - 0x4d5d, 0x2186, - 0x4d5e, 0x0e8f, - 0x4d60, 0x2187, - 0x4d61, 0x0e92, - 0x4d64, 0x2188, - 0x4d66, 0x0e97, - 0x4d67, 0x218a, - 0x4d68, 0x0e99, - 0x4d72, 0x218b, - 0x4d73, 0x0ea4, - 0x4d78, 0x218c, - 0x4d79, 0x0eaa, - 0x4e21, 0x0eb0, - 0x4e24, 0x218d, - 0x4e26, 0x0eb5, - 0x4e27, 0x218f, - 0x4e28, 0x0eb7, - 0x4e2a, 0x2190, - 0x4e2e, 0x0ebd, - 0x4e30, 0x2194, - 0x4e32, 0x0ec1, - 0x4e33, 0x2196, - 0x4e34, 0x0ec3, - 0x4e3d, 0x2197, - 0x4e3e, 0x0ecd, - 0x4e40, 0x2198, - 0x4e41, 0x0ed0, - 0x4e45, 0x2199, - 0x4e47, 0x0ed6, - 0x4e48, 0x219b, - 0x4e49, 0x0ed8, - 0x4e4a, 0x219c, - 0x4e4b, 0x0eda, - 0x4e4e, 0x219d, - 0x4e52, 0x0ee1, - 0x4e58, 0x21a1, - 0x4e5b, 0x0eea, - 0x4e5c, 0x21a4, - 0x4e5d, 0x0eec, - 0x4e5e, 0x21a5, - 0x4e60, 0x0eef, - 0x4e6b, 0x21a7, - 0x4e6c, 0x0efb, - 0x4e6d, 0x21a8, - 0x4e6e, 0x0efd, - 0x4e71, 0x21a9, - 0x4e72, 0x0f01, - 0x4e73, 0x21aa, - 0x4e74, 0x0f03, - 0x4e7d, 0x21ab, - 0x4f21, 0x0f0e, - 0x4f2e, 0x21ad, - 0x4f2f, 0x0f1c, - 0x4f30, 0x21ae, - 0x4f31, 0x0f1e, - 0x4f33, 0x21af, - 0x4f34, 0x0f21, - 0x4f37, 0x21b0, - 0x4f39, 0x0f26, - 0x4f3a, 0x21b2, - 0x4f3b, 0x0f28, - 0x4f3d, 0x21b3, - 0x4f3e, 0x0f2b, - 0x4f3f, 0x21b4, - 0x4f42, 0x0f2f, - 0x4f45, 0x21b7, - 0x4f46, 0x0f33, - 0x4f47, 0x21b8, - 0x4f48, 0x0f35, - 0x4f4a, 0x21b9, - 0x4f4c, 0x0f39, - 0x4f4d, 0x21bb, - 0x4f4f, 0x0f3c, - 0x4f50, 0x21bd, - 0x4f51, 0x0f3e, - 0x4f54, 0x21be, - 0x4f59, 0x0f46, - 0x4f5a, 0x21c3, - 0x4f5b, 0x0f48, - 0x4f5c, 0x21c4, - 0x4f5d, 0x0f4a, - 0x4f5f, 0x21c5, - 0x4f60, 0x0f4d, - 0x4f62, 0x21c6, - 0x4f63, 0x0f50, - 0x4f67, 0x21c7, - 0x4f68, 0x0f55, - 0x4f6a, 0x21c8, - 0x4f6b, 0x0f58, - 0x4f6c, 0x21c9, - 0x4f6d, 0x0f5a, - 0x4f6e, 0x21ca, - 0x4f6f, 0x0f5c, - 0x4f74, 0x21cb, - 0x4f75, 0x0f62, - 0x4f79, 0x21cc, - 0x4f7b, 0x0f68, - 0x4f7e, 0x21ce, - 0x5021, 0x0f6c, - 0x5025, 0x21cf, - 0x5026, 0x0f71, - 0x502d, 0x21d0, - 0x502f, 0x0f7a, - 0x5032, 0x21d2, - 0x5035, 0x0f80, - 0x503a, 0x21d5, - 0x503c, 0x0f87, - 0x503f, 0x21d7, - 0x5040, 0x0f8b, - 0x5046, 0x21d8, - 0x5047, 0x0f92, - 0x504b, 0x21d9, - 0x504c, 0x0f97, - 0x5062, 0x21da, - 0x5063, 0x0fae, - 0x5065, 0x21db, - 0x5066, 0x0fb1, - 0x506b, 0x21dc, - 0x506c, 0x0fb7, - 0x506d, 0x21dd, - 0x506e, 0x0fb9, - 0x5077, 0x21de, - 0x507a, 0x0fc5, - 0x507c, 0x21e1, - 0x507d, 0x0fc8, - 0x5121, 0x21e2, - 0x5123, 0x0fcc, - 0x5124, 0x21e4, - 0x5125, 0x0fce, - 0x5127, 0x21e5, - 0x5128, 0x0fd1, - 0x512b, 0x21e6, - 0x512c, 0x0fd5, - 0x512f, 0x21e7, - 0x5132, 0x0fdb, - 0x5135, 0x21ea, - 0x5138, 0x0fe1, - 0x5139, 0x21ed, - 0x513a, 0x0fe3, - 0x513b, 0x21ee, - 0x513d, 0x0fe6, - 0x5146, 0x21f0, - 0x5149, 0x0ff2, - 0x514b, 0x21f3, - 0x514c, 0x0ff5, - 0x514e, 0x21f4, - 0x5150, 0x0ff9, - 0x5155, 0x21f6, - 0x5157, 0x1000, - 0x515e, 0x21f8, - 0x515f, 0x1008, - 0x5161, 0x21f9, - 0x5163, 0x100c, - 0x5168, 0x21fb, - 0x516a, 0x1013, - 0x516c, 0x21fd, - 0x516d, 0x1016, - 0x516e, 0x21fe, - 0x5170, 0x1019, - 0x5171, 0x2200, - 0x5172, 0x101b, - 0x5174, 0x2201, - 0x5175, 0x101e, - 0x5177, 0x2202, - 0x517a, 0x1023, - 0x5221, 0x1028, - 0x5222, 0x2205, - 0x5223, 0x102a, - 0x5225, 0x2206, - 0x5226, 0x102d, - 0x5229, 0x2207, - 0x522a, 0x1031, - 0x522f, 0x2208, - 0x5230, 0x1037, - 0x5233, 0x2209, - 0x5234, 0x103b, - 0x5235, 0x220a, - 0x5237, 0x103e, - 0x523d, 0x220c, - 0x523e, 0x1045, - 0x523f, 0x220d, - 0x5240, 0x1047, - 0x5243, 0x220e, - 0x5244, 0x104b, - 0x5245, 0x220f, - 0x5246, 0x104d, - 0x5247, 0x2210, - 0x5248, 0x104f, - 0x524f, 0x2211, - 0x5250, 0x1057, - 0x5255, 0x2212, - 0x5256, 0x105d, - 0x525a, 0x2213, - 0x525b, 0x1062, - 0x5264, 0x2214, - 0x5266, 0x106d, - 0x5268, 0x2216, - 0x526c, 0x1073, - 0x526f, 0x221a, - 0x5270, 0x1077, - 0x5271, 0x221b, - 0x5272, 0x1079, - 0x5275, 0x221c, - 0x5276, 0x107d, - 0x5278, 0x221d, - 0x5279, 0x1080, - 0x527b, 0x221e, - 0x527c, 0x1083, - 0x527e, 0x221f, - 0x5321, 0x1086, - 0x5323, 0x2220, - 0x532d, 0x1092, - 0x532e, 0x222a, - 0x532f, 0x1094, - 0x5331, 0x222b, - 0x5332, 0x1097, - 0x5334, 0x222c, - 0x5337, 0x109c, - 0x5338, 0x222f, - 0x5339, 0x109e, - 0x533b, 0x2230, - 0x533c, 0x10a1, - 0x5345, 0x2231, - 0x5346, 0x10ab, - 0x5347, 0x2232, - 0x5348, 0x10ad, - 0x534a, 0x2233, - 0x534d, 0x10b2, - 0x5355, 0x2236, - 0x5356, 0x10bb, - 0x535f, 0x2237, - 0x5361, 0x10c6, - 0x5363, 0x2239, - 0x5364, 0x10c9, - 0x5366, 0x223a, - 0x5367, 0x10cc, - 0x536b, 0x223b, - 0x536d, 0x10d2, - 0x536f, 0x223d, - 0x5370, 0x10d5, - 0x5374, 0x223e, - 0x5375, 0x10da, - 0x537c, 0x223f, - 0x537d, 0x10e2, - 0x537e, 0x2240, - 0x5421, 0x10e4, - 0x5424, 0x2241, - 0x5425, 0x10e8, - 0x5426, 0x2242, - 0x5429, 0x10ec, - 0x542f, 0x2245, - 0x5433, 0x10f6, - 0x5435, 0x2249, - 0x5437, 0x10fa, - 0x5438, 0x224b, - 0x5439, 0x10fc, - 0x543c, 0x224c, - 0x543d, 0x1100, - 0x543e, 0x224d, - 0x5440, 0x1103, - 0x5444, 0x224f, - 0x5445, 0x1108, - 0x5446, 0x2250, - 0x5448, 0x110b, - 0x5449, 0x2252, - 0x544a, 0x110d, - 0x544b, 0x2253, - 0x544f, 0x1112, - 0x5453, 0x2257, - 0x5454, 0x1117, - 0x5458, 0x2258, - 0x5459, 0x111c, - 0x545c, 0x2259, - 0x5461, 0x1124, - 0x5464, 0x225e, - 0x5465, 0x1128, - 0x5466, 0x225f, - 0x5467, 0x112a, - 0x546e, 0x2260, - 0x546f, 0x1132, - 0x5470, 0x2261, - 0x5475, 0x1138, - 0x5479, 0x2266, - 0x547a, 0x113d, - 0x547e, 0x2267, - 0x5521, 0x2268, - 0x5523, 0x1144, - 0x5529, 0x226a, - 0x552a, 0x114b, - 0x552b, 0x226b, - 0x552c, 0x114d, - 0x552e, 0x226c, - 0x552f, 0x1150, - 0x5531, 0x226d, - 0x5532, 0x1153, - 0x5535, 0x226e, - 0x5539, 0x115a, - 0x553b, 0x2272, - 0x553c, 0x115d, - 0x553d, 0x2273, - 0x553e, 0x115f, - 0x5540, 0x2274, - 0x5541, 0x1162, - 0x5545, 0x2275, - 0x5546, 0x1167, - 0x5547, 0x2276, - 0x5548, 0x1169, - 0x554a, 0x2277, - 0x554c, 0x116d, - 0x554d, 0x2279, - 0x554e, 0x116f, - 0x5554, 0x227a, - 0x5555, 0x1176, - 0x555d, 0x227b, - 0x555f, 0x1180, - 0x5560, 0x227d, - 0x5561, 0x1182, - 0x5562, 0x227e, - 0x5563, 0x1184, - 0x556a, 0x227f, - 0x556d, 0x118e, - 0x556f, 0x2282, - 0x5570, 0x1191, - 0x5572, 0x2283, - 0x5574, 0x1195, - 0x5577, 0x15eb, - 0x5578, 0x1199, - 0x5621, 0x2285, - 0x5625, 0x11a4, - 0x562f, 0x2289, - 0x5631, 0x11b0, - 0x5634, 0x228b, - 0x5635, 0x11b4, - 0x563b, 0x228c, - 0x563c, 0x11bb, - 0x563d, 0x228d, - 0x563e, 0x11bd, - 0x563f, 0x228e, - 0x5641, 0x11c0, - 0x5644, 0x2290, - 0x5645, 0x11c4, - 0x564a, 0x2291, - 0x564b, 0x11ca, - 0x564d, 0x2292, - 0x564e, 0x11cd, - 0x5653, 0x2293, - 0x5654, 0x11d3, - 0x5655, 0x2294, - 0x5658, 0x11d7, - 0x565a, 0x2297, - 0x565b, 0x11da, - 0x565f, 0x2298, - 0x5660, 0x11df, - 0x5661, 0x2299, - 0x5662, 0x11e1, - 0x5665, 0x229a, - 0x5666, 0x11e5, - 0x5667, 0x229b, - 0x5669, 0x11e8, - 0x566e, 0x229d, - 0x5670, 0x11ef, - 0x5672, 0x229f, - 0x5673, 0x11f2, - 0x5675, 0x22a0, - 0x5677, 0x11f6, - 0x567c, 0x22a2, - 0x5721, 0x11fe, - 0x5724, 0x22a5, - 0x5725, 0x1202, - 0x5728, 0x22a6, - 0x572b, 0x1208, - 0x572c, 0x22a9, - 0x572d, 0x120a, - 0x572e, 0x22aa, - 0x5732, 0x120f, - 0x5733, 0x22ae, - 0x5735, 0x1212, - 0x5736, 0x22b0, - 0x5737, 0x1214, - 0x5738, 0x22b1, - 0x573d, 0x121a, - 0x5747, 0x22b6, - 0x5748, 0x1225, - 0x574a, 0x22b7, - 0x574b, 0x1228, - 0x5755, 0x22b8, - 0x5756, 0x1233, - 0x575b, 0x22b9, - 0x575f, 0x123c, - 0x5767, 0x22bd, - 0x5768, 0x1245, - 0x5769, 0x22be, - 0x576b, 0x1248, - 0x5821, 0x1257, - 0x5844, 0x22c0, - 0x5845, 0x127b, - 0x5847, 0x22c1, - 0x5848, 0x127e, - 0x5849, 0x22c2, - 0x584a, 0x1280, - 0x584c, 0x22c3, - 0x584e, 0x1284, - 0x5850, 0x22c5, - 0x5852, 0x1288, - 0x5853, 0x22c7, - 0x5854, 0x128a, - 0x5859, 0x22c8, - 0x585a, 0x1290, - 0x585b, 0x22c9, - 0x585d, 0x1293, - 0x5871, 0x22cb, - 0x5872, 0x12a8, - 0x5876, 0x22cc, - 0x5878, 0x12ae, - 0x5921, 0x12b5, - 0x592d, 0x22ce, - 0x592e, 0x12c2, - 0x592f, 0x22cf, - 0x5930, 0x12c4, - 0x5931, 0x22d0, - 0x5934, 0x12c8, - 0x5947, 0x22d3, - 0x5948, 0x12dc, - 0x594d, 0x22d4, - 0x5951, 0x12e5, - 0x595d, 0x22d8, - 0x595e, 0x12f2, - 0x5961, 0x22d9, - 0x5962, 0x12f6, - 0x5964, 0x22da, - 0x5965, 0x12f9, - 0x5966, 0x22db, - 0x5967, 0x12fb, - 0x596c, 0x22dc, - 0x596d, 0x1301, - 0x5974, 0x22dd, - 0x5976, 0x130a, - 0x5a21, 0x1313, - 0x5a25, 0x22df, - 0x5a60, 0x1352, - 0x5a6a, 0x231a, - 0x5a6b, 0x135d, - 0x5a77, 0x231b, - 0x5a78, 0x136a, - 0x5a79, 0x231c, - 0x5a7a, 0x136c, - 0x5a7e, 0x231d, - 0x5b21, 0x1371, - 0x5b23, 0x231e, - 0x5b24, 0x1374, - 0x5b26, 0x231f, - 0x5b27, 0x1377, - 0x5b29, 0x2320, - 0x5b2b, 0x137b, - 0x5b3b, 0x2322, - 0x5b3c, 0x138c, - 0x5b3d, 0x2323, - 0x5b3e, 0x138e, - 0x5b4f, 0x2324, - 0x5b50, 0x13a0, - 0x5b51, 0x2325, - 0x5b52, 0x13a2, - 0x5b5b, 0x2326, - 0x5b5c, 0x13ac, - 0x5b5e, 0x2327, - 0x5b5f, 0x13af, - 0x5b62, 0x2328, - 0x5b63, 0x13b3, - 0x5b64, 0x2329, - 0x5b65, 0x13b5, - 0x5b6b, 0x232a, - 0x5b6c, 0x13bc, - 0x5b6e, 0x232b, - 0x5b6f, 0x13bf, - 0x5b71, 0x232c, - 0x5b72, 0x13c2, - 0x5b75, 0x232d, - 0x5b78, 0x13c8, - 0x5c21, 0x13cf, - 0x5c3c, 0x2330, - 0x5c3d, 0x13eb, - 0x5c3f, 0x2331, - 0x5c40, 0x13ee, - 0x5c42, 0x2332, - 0x5c43, 0x13f1, - 0x5c48, 0x2333, - 0x5c4b, 0x13f9, - 0x5c51, 0x2336, - 0x5c52, 0x1400, - 0x5c57, 0x2337, - 0x5c58, 0x1406, - 0x5c60, 0x2338, - 0x5c61, 0x140f, - 0x5c63, 0x2339, - 0x5c65, 0x1413, - 0x5c69, 0x233b, - 0x5c6b, 0x1419, - 0x5c71, 0x233d, - 0x5c72, 0x1420, - 0x5c76, 0x233e, - 0x5c77, 0x1425, - 0x5c79, 0x233f, - 0x5c7a, 0x1428, - 0x5c7d, 0x2340, - 0x5d21, 0x2342, - 0x5d22, 0x142e, - 0x5d23, 0x2343, - 0x5d28, 0x1434, - 0x5d2a, 0x2348, - 0x5d2c, 0x1438, - 0x5d32, 0x234a, - 0x5d33, 0x143f, - 0x5d35, 0x234b, - 0x5d36, 0x1442, - 0x5d3a, 0x234c, - 0x5d3c, 0x1448, - 0x5d53, 0x234e, - 0x5d54, 0x1460, - 0x5d5b, 0x234f, - 0x5d5c, 0x1468, - 0x5d5e, 0x2350, - 0x5d5f, 0x146b, - 0x5d64, 0x2351, - 0x5d65, 0x1471, - 0x5d6b, 0x2352, - 0x5d6c, 0x1478, - 0x5d71, 0x2353, - 0x5d72, 0x147e, - 0x5d76, 0x2354, - 0x5d78, 0x1484, - 0x5d7c, 0x2356, - 0x5d7d, 0x1489, - 0x5d7e, 0x2357, - 0x5e21, 0x148b, - 0x5e2d, 0x2358, - 0x5e2e, 0x1498, - 0x5e34, 0x2359, - 0x5e35, 0x149f, - 0x5e3a, 0x235a, - 0x5e3b, 0x14a5, - 0x5e46, 0x235b, - 0x5e47, 0x14b1, - 0x5e4f, 0x235c, - 0x5e50, 0x14ba, - 0x5e51, 0x235d, - 0x5e53, 0x14bd, - 0x5e58, 0x235f, - 0x5e59, 0x14c3, - 0x5e62, 0x2360, - 0x5e63, 0x14cd, - 0x5e68, 0x2361, - 0x5e69, 0x14d3, - 0x5e6c, 0x2362, - 0x5e6d, 0x14d7, - 0x5e73, 0x2363, - 0x5e74, 0x14de, - 0x5e7c, 0x2364, - 0x5e7d, 0x14e7, - 0x5f21, 0x14e9, - 0x5f22, 0x2365, - 0x5f24, 0x14ec, - 0x5f25, 0x2367, - 0x5f26, 0x14ee, - 0x5f34, 0x2368, - 0x5f35, 0x14fd, - 0x5f3c, 0x2369, - 0x5f3e, 0x1506, - 0x5f3f, 0x236b, - 0x5f40, 0x1508, - 0x5f42, 0x236c, - 0x5f44, 0x150c, - 0x5f4c, 0x236e, - 0x5f4d, 0x1515, - 0x5f50, 0x236f, - 0x5f51, 0x1519, - 0x5f55, 0x2370, - 0x5f56, 0x151e, - 0x5f58, 0x2371, - 0x5f5a, 0x1522, - 0x5f5c, 0x2373, - 0x5f5d, 0x1525, - 0x5f60, 0x2374, - 0x5f61, 0x1529, - 0x5f62, 0x2375, - 0x5f63, 0x152b, - 0x5f66, 0x2376, - 0x5f67, 0x152f, - 0x5f69, 0x2377, - 0x5f6a, 0x1532, - 0x5f6b, 0x2378, - 0x5f6c, 0x1534, - 0x5f6f, 0x2379, - 0x5f70, 0x1538, - 0x5f75, 0x237a, - 0x5f76, 0x153e, - 0x5f79, 0x237b, - 0x5f7a, 0x1542, - 0x6021, 0x1547, - 0x6036, 0x237c, - 0x6038, 0x155e, - 0x603f, 0x237e, - 0x6040, 0x1566, - 0x6048, 0x237f, - 0x6049, 0x156f, - 0x604e, 0x2380, - 0x604f, 0x1575, - 0x6053, 0x2381, - 0x6054, 0x157a, - 0x6060, 0x2382, - 0x6061, 0x1587, - 0x6070, 0x2383, - 0x6071, 0x1597, - 0x6078, 0x2384, - 0x6079, 0x159f, - 0x607c, 0x2385, - 0x6121, 0x15a5, - 0x612b, 0x2388, - 0x612c, 0x15b0, - 0x612d, 0x2389, - 0x612e, 0x15b2, - 0x6130, 0x238a, - 0x6131, 0x15b5, - 0x6134, 0x238b, - 0x6135, 0x15b9, - 0x613b, 0x238c, - 0x613c, 0x15c0, - 0x613d, 0x238d, - 0x613e, 0x15c2, - 0x6140, 0x238e, - 0x6142, 0x15c6, - 0x6149, 0x2390, - 0x614a, 0x15ce, - 0x6150, 0x2391, - 0x6151, 0x15d5, - 0x615b, 0x2392, - 0x615c, 0x15e0, - 0x6161, 0x07aa, - 0x6162, 0x2393, - 0x6163, 0x15e7, - 0x6167, 0x1198, - 0x6168, 0x15ec, - 0x616e, 0x2394, - 0x6170, 0x15f4, - 0x6176, 0x2396, - 0x6177, 0x15fb, - 0x6178, 0x2397, - 0x6179, 0x15fd, - 0x617d, 0x2398, - 0x617e, 0x1602, - 0x6221, 0x1603, - 0x6224, 0x2399, - 0x6225, 0x1607, - 0x6228, 0x239a, - 0x6229, 0x160b, - 0x623b, 0x239b, - 0x6245, 0x10c5, - 0x6246, 0x23a5, - 0x624f, 0x1631, - 0x6250, 0x23ae, - 0x6251, 0x1633, - 0x6259, 0x23af, - 0x625a, 0x163c, - 0x6263, 0x23b0, - 0x6265, 0x1647, - 0x6266, 0x23b2, - 0x6267, 0x1649, - 0x6269, 0x23b3, - 0x626c, 0x164e, - 0x6278, 0x23b6, - 0x6279, 0x165b, - 0x627a, 0x23b7, - 0x627e, 0x1660, - 0x6321, 0x1661, - 0x6322, 0x23bb, - 0x6323, 0x1663, - 0x6325, 0x23bc, - 0x6326, 0x1666, - 0x632b, 0x23bd, - 0x632c, 0x166c, - 0x6334, 0x23be, - 0x6335, 0x1675, - 0x6345, 0x23bf, - 0x635c, 0x169c, - 0x6363, 0x23d6, - 0x6364, 0x16a4, - 0x636d, 0x23d7, - 0x636e, 0x16ae, - 0x6371, 0x23d8, - 0x6373, 0x16b3, - 0x6378, 0x23da, - 0x6379, 0x16b9, - 0x637e, 0x23db, - 0x6421, 0x16bf, - 0x6424, 0x23dc, - 0x6426, 0x16c4, - 0x642b, 0x23de, - 0x642c, 0x16ca, - 0x642f, 0x23df, - 0x6432, 0x16d0, - 0x6435, 0x23e2, - 0x6437, 0x16d5, - 0x6442, 0x23e4, - 0x6443, 0x16e1, - 0x6445, 0x23e5, - 0x6446, 0x16e4, - 0x6449, 0x23e6, - 0x644a, 0x16e8, - 0x6459, 0x23e7, - 0x645a, 0x16f8, - 0x645c, 0x23e8, - 0x645d, 0x16fb, - 0x645e, 0x23e9, - 0x645f, 0x16fd, - 0x6464, 0x23ea, - 0x6465, 0x1703, - 0x646b, 0x23eb, - 0x646d, 0x170b, - 0x6472, 0x23ed, - 0x6473, 0x1711, - 0x647e, 0x23ee, - 0x6521, 0x171d, - 0x6530, 0x23ef, - 0x6531, 0x172d, - 0x6539, 0x23f0, - 0x653a, 0x1736, - 0x6547, 0x23f1, - 0x6548, 0x1744, - 0x6549, 0x23f2, - 0x654a, 0x1746, - 0x654e, 0x23f3, - 0x654f, 0x174b, - 0x6570, 0x23f4, - 0x6571, 0x176d, - 0x6572, 0x23f5, - 0x6573, 0x176f, - 0x657c, 0x23f6, - 0x657e, 0x177a, - 0x6621, 0x177b, - 0x6623, 0x23f8, - 0x6624, 0x177e, - 0x662b, 0x23f9, - 0x662d, 0x1787, - 0x662e, 0x23fb, - 0x662f, 0x1789, - 0x6634, 0x23fc, - 0x6636, 0x1790, - 0x663f, 0x23fe, - 0x6640, 0x179a, - 0x6648, 0x23ff, - 0x664a, 0x17a4, - 0x664d, 0x2401, - 0x664e, 0x17a8, - 0x6660, 0x2402, - 0x6721, 0x2421, - 0x675b, 0x1813, - 0x6761, 0x245b, - 0x6763, 0x181b, - 0x6767, 0x245d, - 0x6768, 0x1820, - 0x676f, 0x245e, - 0x6770, 0x1828, - 0x6774, 0x245f, - 0x6777, 0x182f, - 0x6821, 0x1837, - 0x6828, 0x2462, - 0x6829, 0x183f, - 0x682c, 0x2463, - 0x682d, 0x1843, - 0x6836, 0x2464, - 0x6837, 0x184d, - 0x6838, 0x2465, - 0x683b, 0x1851, - 0x683f, 0x2468, - 0x6841, 0x1857, - 0x6845, 0x246a, - 0x6846, 0x185c, - 0x6847, 0x246b, - 0x684a, 0x1860, - 0x684e, 0x246e, - 0x684f, 0x1865, - 0x6850, 0x246f, - 0x6851, 0x1867, - 0x6853, 0x2470, - 0x6854, 0x186a, - 0x685d, 0x2471, - 0x685e, 0x1874, - 0x685f, 0x2472, - 0x6860, 0x1876, - 0x6862, 0x2473, - 0x6864, 0x187a, - 0x6865, 0x2475, - 0x6866, 0x187c, - 0x6867, 0x2476, - 0x6868, 0x187e, - 0x686b, 0x2477, - 0x686c, 0x1882, - 0x686d, 0x2478, - 0x686e, 0x1884, - 0x686f, 0x2479, - 0x6870, 0x1886, - 0x6879, 0x247a, - 0x687a, 0x1890, - 0x687c, 0x247b, - 0x687e, 0x1894, - 0x6921, 0x247d, - 0x6922, 0x1896, - 0x692d, 0x247e, - 0x692e, 0x18a2, - 0x6934, 0x247f, - 0x6936, 0x18aa, - 0x6937, 0x2481, - 0x6938, 0x18ac, - 0x6944, 0x2482, - 0x6945, 0x18b9, - 0x6946, 0x2483, - 0x6947, 0x18bb, - 0x6949, 0x2484, - 0x694a, 0x18be, - 0x6956, 0x2485, - 0x6957, 0x18cb, - 0x695a, 0x2486, - 0x695b, 0x18cf, - 0x6964, 0x2487, - 0x6965, 0x18d9, - 0x6966, 0x2488, - 0x6968, 0x18dc, - 0x6969, 0x248a, - 0x696a, 0x18de, - 0x696b, 0x248b, - 0x696c, 0x18e0, - 0x696d, 0x248c, - 0x6a21, 0x249e, - 0x6a26, 0x18f8, - 0x6a27, 0x24a3, - 0x6a29, 0x18fb, - 0x6a31, 0x24a5, - 0x6a32, 0x1904, - 0x6a3c, 0x24a6, - 0x6a3d, 0x190f, - 0x6a4a, 0x24a7, - 0x6a4b, 0x191d, - 0x6a4d, 0x24a8, - 0x6a4e, 0x1920, - 0x6a53, 0x24a9, - 0x6a54, 0x1926, - 0x6a5a, 0x24aa, - 0x6a70, 0x1942, - 0x6b21, 0x1951, - 0x6b27, 0x24c0, - 0x6b28, 0x1958, - 0x6b2a, 0x24c1, - 0x6b2b, 0x195b, - 0x6b32, 0x24c2, - 0x6b33, 0x1963, - 0x6b39, 0x24c3, - 0x6b3a, 0x196a, - 0x6b4a, 0x24c4, - 0x6b4c, 0x197c, - 0x6b4d, 0x24c6, - 0x6b4e, 0x197e, - 0x6b56, 0x24c7, - 0x6b57, 0x1987, - 0x6b5a, 0x24c8, - 0x6b5b, 0x198b, - 0x6b61, 0x24c9, - 0x6b62, 0x1992, - 0x6b77, 0x24ca, - 0x6b78, 0x19a8, - 0x6c21, 0x19af, - 0x6c23, 0x24cb, - 0x6c24, 0x19b2, - 0x6c29, 0x24cc, - 0x6c2f, 0x19bd, - 0x6c31, 0x24d2, - 0x6c32, 0x19c0, - 0x6c34, 0x24d3, - 0x6c36, 0x19c4, - 0x6c3e, 0x24d5, - 0x6c40, 0x19ce, - 0x6c41, 0x24d7, - 0x6c42, 0x19d0, - 0x6c47, 0x24d8, - 0x6c48, 0x19d6, - 0x6c4b, 0x24d9, - 0x6c4c, 0x19da, - 0x6c62, 0x24da, - 0x6c63, 0x19f1, - 0x6c72, 0x24db, - 0x6c73, 0x1a01, - 0x6c75, 0x24dc, - 0x6c76, 0x1a04, - 0x6c78, 0x24dd, - 0x6c79, 0x1a07, - 0x6d21, 0x24de, - 0x6d22, 0x1a0e, - 0x6d28, 0x24df, - 0x6d29, 0x1a15, - 0x6d2f, 0x24e0, - 0x6d31, 0x1a1d, - 0x6d34, 0x24e2, - 0x6d35, 0x1a21, - 0x6d36, 0x24e3, - 0x6d37, 0x1a23, - 0x6d38, 0x24e4, - 0x6d39, 0x1a25, - 0x6d3a, 0x24e5, - 0x6d3b, 0x1a27, - 0x6d3f, 0x24e6, - 0x6d40, 0x1a2c, - 0x6d42, 0x24e7, - 0x6d44, 0x1a30, - 0x6d4c, 0x24e9, - 0x6d4e, 0x1a3a, - 0x6d53, 0x24eb, - 0x6d54, 0x1a40, - 0x6d57, 0x24ec, - 0x6d58, 0x1a44, - 0x6d68, 0x24ed, - 0x6d69, 0x1a55, - 0x6d6e, 0x24ee, - 0x6d6f, 0x1a5b, - 0x6d79, 0x24ef, - 0x6d7b, 0x1a67, - 0x6e21, 0x1a6b, - 0x6e3c, 0x24f1, - 0x6e3d, 0x1a87, - 0x6e3f, 0x24f2, - 0x6e40, 0x1a8a, - 0x6e44, 0x24f3, - 0x6f21, 0x252e, - 0x6f72, 0x1b1a, - 0x7021, 0x1b27, - 0x7023, 0x257f, - 0x7024, 0x1b2a, - 0x702f, 0x2580, - 0x705a, 0x1b60, - 0x705c, 0x25ab, - 0x705e, 0x1b64, - 0x705f, 0x25ad, - 0x7060, 0x1b66, - 0x7069, 0x25ae, - 0x706a, 0x1b70, - 0x706c, 0x25af, - 0x706d, 0x1b73, - 0x706f, 0x25b0, - 0x7070, 0x1b76, - 0x7077, 0x25b1, - 0x7078, 0x1b7e, - 0x7079, 0x25b2, - 0x707a, 0x1b80, - 0x707c, 0x25b3, - 0x707d, 0x1b83, - 0x7121, 0x1b85, - 0x7128, 0x25b4, - 0x7129, 0x1b8d, - 0x712b, 0x25b5, - 0x712c, 0x1b90, - 0x712e, 0x25b6, - 0x712f, 0x1b93, - 0x7132, 0x25b7, - 0x7133, 0x1b97, - 0x713c, 0x25b8, - 0x713d, 0x1ba1, - 0x7140, 0x25b9, - 0x7141, 0x1ba5, - 0x7149, 0x25ba, - 0x714a, 0x1bae, - 0x714d, 0x25bb, - 0x714e, 0x1bb2, - 0x714f, 0x25bc, - 0x7151, 0x1bb5, - 0x715a, 0x25be, - 0x715b, 0x1bbf, - 0x715c, 0x25bf, - 0x715d, 0x1bc1, - 0x7164, 0x25c0, - 0x7165, 0x1bc9, - 0x716c, 0x25c1, - 0x716d, 0x1bd1, - 0x716f, 0x25c2, - 0x7170, 0x1bd4, - 0x7177, 0x25c3, - 0x7178, 0x1bdc, - 0x7179, 0x25c4, - 0x717a, 0x1bde, - 0x717c, 0x25c5, - 0x7221, 0x25c8, - 0x722e, 0x1bf0, - 0x7231, 0x25d5, - 0x7233, 0x1bf5, - 0x7239, 0x25d7, - 0x723a, 0x1bfc, - 0x7243, 0x25d8, - 0x7244, 0x1c06, - 0x7249, 0x25d9, - 0x724a, 0x1c0c, - 0x724c, 0x25da, - 0x724e, 0x1c10, - 0x724f, 0x25dc, - 0x7250, 0x1c12, - 0x7253, 0x25dd, - 0x7254, 0x1c16, - 0x7265, 0x25de, - 0x7266, 0x1c28, - 0x726e, 0x25df, - 0x726f, 0x1c31, - 0x7277, 0x25e0, - 0x7278, 0x1c3a, - 0x727d, 0x25e1, - 0x727e, 0x1c40, - 0x7321, 0x1c41, - 0x733f, 0x25e2, - 0x7340, 0x1c60, - 0x7346, 0x25e3, - 0x7347, 0x1c67, - 0x7348, 0x25e4, - 0x7349, 0x1c69, - 0x7356, 0x25e5, - 0x7357, 0x1c77, - 0x7359, 0x25e6, - 0x735a, 0x1c7a, - 0x7365, 0x25e7, - 0x7367, 0x1c87, - 0x736a, 0x25e9, - 0x736b, 0x1c8b, - 0x736c, 0x25ea, - 0x736d, 0x1c8d, - 0x736f, 0x25eb, - 0x7370, 0x1c90, - 0x7371, 0x25ec, - 0x7372, 0x1c92, - 0x737d, 0x25ed, - 0x737e, 0x1c9e, - 0x7421, 0x1c9f, - 0x7425, 0x25ee, - 0x7426, 0x1ca4, - 0x742f, 0x25ef, - 0x7430, 0x1cae, - 0x7435, 0x25f0, - 0x7436, 0x1cb4, - 0x7441, 0x25f1, - 0x7442, 0x1cc0, - 0x7447, 0x25f2, - 0x7448, 0x1cc6, - 0x744f, 0x25f3, - 0x7451, 0x1ccf, - 0x7456, 0x25f5, - 0x7457, 0x1cd5, - 0x746a, 0x25f6, - 0x746b, 0x1ce9, - 0x746f, 0x25f7, - 0x7470, 0x1cee, - 0x7475, 0x25f8, - 0x7476, 0x1cf4, - 0x7521, 0x1cfd, - 0x7526, 0x25f9, - 0x7528, 0x1d04, - 0x753a, 0x25fb, - 0x753c, 0x1d18, - 0x7544, 0x25fd, - 0x7545, 0x1d21, - 0x7548, 0x25fe, - 0x7549, 0x1d25, - 0x754e, 0x25ff, - 0x7550, 0x1d2c, - 0x7551, 0x2601, - 0x7553, 0x1d2f, - 0x7559, 0x2603, - 0x755a, 0x1d36, - 0x755c, 0x2604, - 0x755d, 0x1d39, - 0x7566, 0x2605, - 0x7568, 0x1d44, - 0x756f, 0x2607, - 0x7570, 0x1d4c, - 0x7572, 0x2608, - 0x7573, 0x1d4f, - 0x757c, 0x2609, - 0x757d, 0x1d59, - 0x7621, 0x1d5b, - 0x7623, 0x260a, - 0x7624, 0x1d5e, - 0x7626, 0x260b, - 0x7627, 0x1d61, - 0x7628, 0x260c, - 0x7629, 0x1d63, - 0x762b, 0x260d, - 0x762c, 0x1d66, - 0x7630, 0x260e, - 0x7631, 0x1d6b, - 0x7633, 0x260f, - 0x763f, 0x1d79, - 0x7645, 0x261b, - 0x7646, 0x1d80, - 0x7647, 0x261c, - 0x7648, 0x1d82, - 0x7649, 0x261d, - 0x764a, 0x1d84, - 0x764f, 0x261e, - 0x7721, 0x264e, - 0x7730, 0x1dc8, - 0x7732, 0x265d, - 0x7734, 0x1dcc, - 0x7735, 0x265f, - 0x7736, 0x1dce, - 0x773d, 0x2660, - 0x773e, 0x1dd6, - 0x7743, 0x2661, - 0x7744, 0x1ddc, - 0x7745, 0x2662, - 0x7747, 0x1ddf, - 0x774a, 0x2664, - 0x774c, 0x1de4, - 0x774f, 0x2666, - 0x7751, 0x1de9, - 0x775e, 0x2668, - 0x775f, 0x1df7, - 0x7761, 0x0ab9, - 0x7762, 0x1dfa, - 0x7772, 0x2669, - 0x7773, 0x1e0b, - 0x7775, 0x266a, - 0x7776, 0x1e0e, - 0x7821, 0x266b, - 0x7827, 0x04cc, - 0x7828, 0x050a, - 0x7829, 0x0518, - 0x782a, 0x2671, - 0x782c, 0x0594, - 0x782d, 0x05ce, - 0x782e, 0x2673, - 0x782f, 0x05f6, - 0x7830, 0x2674, - 0x7832, 0x0653, - 0x7833, 0x067e, - 0x7834, 0x2676, - 0x7835, 0x06c4, - 0x7836, 0x2677, - 0x7838, 0x073c, - 0x7839, 0x2679, - 0x783b, 0x07c3, - 0x783c, 0x267b, - 0x7840, 0x082b, - 0x7841, 0x267f, - 0x7842, 0x084e, - 0x7843, 0x0869, - 0x7844, 0x2680, - 0x7846, 0x090c, - 0x7847, 0x2682, - 0x7849, 0x0971, - 0x784a, 0x2684, - 0x784b, 0x099a, - 0x784d, 0x2685, - 0x784e, 0x09da, - 0x784f, 0x2686, - 0x7850, 0x09fa, - 0x7851, 0x2687, - 0x785c, 0x0bda, - 0x785d, 0x0bdd, - 0x785e, 0x0bea, - 0x785f, 0x0bec, - 0x7860, 0x0bf2, - 0x7861, 0x2692, - 0x7866, 0x0c92, - 0x7867, 0x0d1a, - 0x7868, 0x0d8c, - 0x7869, 0x0dbe, - 0x786a, 0x2697, - 0x786b, 0x0dfb, - 0x786c, 0x2698, - 0x786f, 0x0e70, - 0x7870, 0x269b, - 0x7871, 0x0ea3, - 0x7872, 0x269c, - 0x7878, 0x103d, - 0x7879, 0x10d9, - 0x787a, 0x26a2, - 0x787c, 0x10fb, - 0x787d, 0x1109, - 0x787e, 0x26a4, - 0x7921, 0x11a1, - 0x7922, 0x26a5, - 0x7923, 0x11ba, - 0x7924, 0x26a6, - 0x7926, 0x11d5, - 0x7927, 0x26a8, - 0x7928, 0x11fd, - 0x7929, 0x1219, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 gb12GBTHEnc16 = { - 0, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - gb12GBTHMap2, 2283 -}; - -static Gushort gb12GBTVMap2[4606] = { - 0x0000, 0x0000, - 0x2121, 0x0060, - 0x2231, 0x00be, - 0x2265, 0x00f0, - 0x2271, 0x00fa, - 0x2321, 0x0106, - 0x2421, 0x0164, - 0x2521, 0x01b7, - 0x2621, 0x020d, - 0x2641, 0x0225, - 0x2721, 0x025a, - 0x2751, 0x027b, - 0x2821, 0x029c, - 0x2845, 0x02bc, - 0x2924, 0x02e2, - 0x2a21, 0x032e, - 0x2b21, 0x038c, - 0x3021, 0x03ac, - 0x3028, 0x1e25, - 0x3029, 0x03b4, - 0x302a, 0x1e26, - 0x302b, 0x03b6, - 0x302d, 0x1e27, - 0x302f, 0x03ba, - 0x3039, 0x1e29, - 0x303a, 0x03c5, - 0x3040, 0x1e2a, - 0x3041, 0x03cc, - 0x3053, 0x1e2b, - 0x3054, 0x03df, - 0x3055, 0x1e2c, - 0x3056, 0x03e1, - 0x305a, 0x1e2d, - 0x305b, 0x03e6, - 0x305c, 0x1e2e, - 0x305d, 0x03e8, - 0x3064, 0x1e2f, - 0x3065, 0x03f0, - 0x306c, 0x1e30, - 0x306e, 0x03f9, - 0x306f, 0x1e32, - 0x3070, 0x03fb, - 0x3073, 0x1e33, - 0x3074, 0x03ff, - 0x3077, 0x1e34, - 0x3078, 0x0403, - 0x3079, 0x1e35, - 0x307a, 0x0405, - 0x3121, 0x040a, - 0x3125, 0x1e36, - 0x3127, 0x0410, - 0x3128, 0x1e38, - 0x3129, 0x0412, - 0x312b, 0x1e39, - 0x312c, 0x0415, - 0x3132, 0x1e3a, - 0x3133, 0x041c, - 0x3134, 0x1e3b, - 0x3136, 0x041f, - 0x3137, 0x1e3d, - 0x313a, 0x0423, - 0x3141, 0x1e40, - 0x3142, 0x042b, - 0x314a, 0x1e41, - 0x314b, 0x0434, - 0x314f, 0x1e42, - 0x3151, 0x043a, - 0x3152, 0x1e44, - 0x3153, 0x043c, - 0x3155, 0x1e45, - 0x3156, 0x043f, - 0x315f, 0x1e46, - 0x3162, 0x044b, - 0x3164, 0x1e49, - 0x3165, 0x044e, - 0x3167, 0x1e4a, - 0x3169, 0x0452, - 0x316a, 0x1e4c, - 0x316b, 0x0454, - 0x316e, 0x1e4d, - 0x316f, 0x0458, - 0x3171, 0x1e4e, - 0x3172, 0x045b, - 0x3174, 0x1e4f, - 0x3178, 0x0461, - 0x317d, 0x1e53, - 0x317e, 0x0467, - 0x3221, 0x0468, - 0x3226, 0x1e54, - 0x3228, 0x046f, - 0x322c, 0x1e56, - 0x322d, 0x0474, - 0x3235, 0x1e57, - 0x3236, 0x047d, - 0x3239, 0x1e58, - 0x323a, 0x0481, - 0x3246, 0x1e59, - 0x3247, 0x048e, - 0x324e, 0x1e5a, - 0x3258, 0x049f, - 0x325e, 0x1e64, - 0x325f, 0x04a6, - 0x3260, 0x1e65, - 0x3261, 0x04a8, - 0x3262, 0x1e66, - 0x3264, 0x04ab, - 0x326f, 0x1e68, - 0x3270, 0x04b7, - 0x3273, 0x1e69, - 0x327d, 0x04c4, - 0x3321, 0x1e73, - 0x3323, 0x04c8, - 0x3324, 0x1e75, - 0x3328, 0x04cd, - 0x3329, 0x1e79, - 0x332a, 0x04cf, - 0x332e, 0x1e7a, - 0x332f, 0x04d4, - 0x3335, 0x1e7b, - 0x3336, 0x04db, - 0x3339, 0x1e7c, - 0x333a, 0x04df, - 0x333e, 0x1e7d, - 0x333f, 0x04e4, - 0x3342, 0x1e7e, - 0x3343, 0x04e8, - 0x3344, 0x1e7f, - 0x3345, 0x04ea, - 0x3346, 0x1e80, - 0x3347, 0x04ec, - 0x334d, 0x1e81, - 0x334e, 0x04f3, - 0x334f, 0x1e82, - 0x3350, 0x04f5, - 0x3352, 0x1e83, - 0x3353, 0x04f8, - 0x3359, 0x1e84, - 0x335a, 0x04ff, - 0x335b, 0x1e85, - 0x335c, 0x0501, - 0x335d, 0x1e86, - 0x335e, 0x0503, - 0x3363, 0x1e87, - 0x3364, 0x0509, - 0x3365, 0x1e88, - 0x3367, 0x050c, - 0x3368, 0x1e8a, - 0x3369, 0x050e, - 0x336b, 0x1e8b, - 0x336d, 0x0512, - 0x336f, 0x1e8d, - 0x3370, 0x0515, - 0x3371, 0x1e8e, - 0x3372, 0x0517, - 0x3373, 0x1e8f, - 0x3374, 0x0519, - 0x337a, 0x1e90, - 0x337c, 0x0521, - 0x3421, 0x1e92, - 0x3423, 0x0526, - 0x3425, 0x1e94, - 0x3427, 0x052a, - 0x342b, 0x1e96, - 0x342c, 0x052f, - 0x342f, 0x1e97, - 0x3430, 0x0533, - 0x3433, 0x1e98, - 0x3435, 0x0538, - 0x3438, 0x1e9a, - 0x3439, 0x053c, - 0x343f, 0x1e9b, - 0x3440, 0x0543, - 0x3442, 0x1e9c, - 0x3443, 0x0546, - 0x3447, 0x1e9d, - 0x3448, 0x054b, - 0x344a, 0x1e9e, - 0x344b, 0x054e, - 0x344d, 0x1e9f, - 0x344e, 0x0551, - 0x344f, 0x1ea0, - 0x3450, 0x0553, - 0x3453, 0x1ea1, - 0x3455, 0x0558, - 0x345a, 0x1ea3, - 0x345b, 0x055e, - 0x345c, 0x1ea4, - 0x345d, 0x0560, - 0x346d, 0x1ea5, - 0x346e, 0x0571, - 0x346f, 0x1ea6, - 0x3470, 0x0573, - 0x3478, 0x1ea7, - 0x3479, 0x057c, - 0x347b, 0x1ea8, - 0x347c, 0x057f, - 0x3521, 0x0582, - 0x3523, 0x1ea9, - 0x3524, 0x0585, - 0x3525, 0x1eaa, - 0x3529, 0x058a, - 0x352c, 0x1eae, - 0x352d, 0x058e, - 0x352e, 0x1eaf, - 0x3530, 0x0591, - 0x3531, 0x1eb1, - 0x3536, 0x0597, - 0x3537, 0x1eb6, - 0x3538, 0x0599, - 0x353a, 0x1eb7, - 0x353d, 0x059e, - 0x3546, 0x1eba, - 0x3547, 0x05a8, - 0x354b, 0x1ebb, - 0x354c, 0x05ad, - 0x3550, 0x1ebc, - 0x3551, 0x05b2, - 0x3553, 0x1ebd, - 0x3554, 0x05b5, - 0x355d, 0x1ebe, - 0x3560, 0x05c1, - 0x3563, 0x1ec1, - 0x3564, 0x05c5, - 0x3566, 0x1ec2, - 0x3568, 0x05c9, - 0x356d, 0x1ec4, - 0x356e, 0x05cf, - 0x3576, 0x1ec5, - 0x3578, 0x05d9, - 0x357d, 0x1ec7, - 0x357e, 0x05df, - 0x3621, 0x05e0, - 0x3624, 0x1ec8, - 0x3626, 0x05e5, - 0x3627, 0x1eca, - 0x3628, 0x05e7, - 0x3629, 0x1ecb, - 0x362a, 0x05e9, - 0x362b, 0x1ecc, - 0x362c, 0x05eb, - 0x362f, 0x1ecd, - 0x3631, 0x05f0, - 0x3633, 0x1ecf, - 0x3634, 0x05f3, - 0x3637, 0x1ed0, - 0x3638, 0x05f7, - 0x363f, 0x1ed1, - 0x3642, 0x0601, - 0x3644, 0x1ed4, - 0x3645, 0x0604, - 0x3646, 0x1ed5, - 0x3647, 0x0606, - 0x364d, 0x1ed6, - 0x364e, 0x060d, - 0x364f, 0x1ed7, - 0x3651, 0x0610, - 0x3653, 0x1ed9, - 0x3655, 0x0614, - 0x3656, 0x1edb, - 0x3657, 0x0616, - 0x3659, 0x1edc, - 0x365a, 0x0619, - 0x365b, 0x1edd, - 0x365c, 0x061b, - 0x3661, 0x1ede, - 0x3662, 0x0621, - 0x3669, 0x1edf, - 0x366a, 0x0629, - 0x366c, 0x1ee0, - 0x366d, 0x062c, - 0x366e, 0x1ee1, - 0x3670, 0x062f, - 0x3671, 0x1ee3, - 0x3672, 0x0631, - 0x3676, 0x1ee4, - 0x3677, 0x0636, - 0x3679, 0x1ee5, - 0x367a, 0x0639, - 0x367b, 0x1ee6, - 0x367d, 0x063c, - 0x3721, 0x1ee8, - 0x3724, 0x0641, - 0x3727, 0x1eeb, - 0x3728, 0x0645, - 0x372f, 0x1eec, - 0x3731, 0x064e, - 0x3733, 0x1eee, - 0x3734, 0x0651, - 0x3736, 0x1eef, - 0x3738, 0x0655, - 0x3739, 0x1ef1, - 0x373a, 0x0657, - 0x3743, 0x1ef2, - 0x3745, 0x0662, - 0x3749, 0x1ef4, - 0x374a, 0x0667, - 0x374c, 0x1ef5, - 0x374d, 0x066a, - 0x374f, 0x1ef6, - 0x3750, 0x066d, - 0x3751, 0x1ef7, - 0x3752, 0x066f, - 0x3757, 0x1ef8, - 0x3759, 0x0676, - 0x375c, 0x1efa, - 0x375d, 0x067a, - 0x375f, 0x1efb, - 0x3762, 0x067f, - 0x3763, 0x1efe, - 0x3764, 0x0681, - 0x3766, 0x1eff, - 0x3769, 0x0686, - 0x376b, 0x1f02, - 0x376e, 0x068b, - 0x376f, 0x1f05, - 0x3770, 0x068d, - 0x3774, 0x1f06, - 0x3775, 0x0692, - 0x3778, 0x1f07, - 0x3779, 0x0696, - 0x3821, 0x069c, - 0x3827, 0x1f08, - 0x3829, 0x06a4, - 0x3833, 0x1f0a, - 0x3835, 0x06b0, - 0x383a, 0x1f0c, - 0x383b, 0x06b6, - 0x383c, 0x1f0d, - 0x383d, 0x06b8, - 0x383e, 0x1f0e, - 0x3840, 0x06bb, - 0x3843, 0x1f10, - 0x3844, 0x06bf, - 0x3846, 0x1f11, - 0x3848, 0x06c3, - 0x3849, 0x1f13, - 0x384a, 0x06c5, - 0x384f, 0x1f14, - 0x3850, 0x06cb, - 0x3853, 0x1f15, - 0x3857, 0x06d2, - 0x3859, 0x1f19, - 0x385b, 0x06d6, - 0x3864, 0x1f1b, - 0x3865, 0x06e0, - 0x3869, 0x1f1c, - 0x386a, 0x06e5, - 0x386b, 0x1f1d, - 0x386c, 0x06e7, - 0x3873, 0x1f1e, - 0x3874, 0x06ef, - 0x3875, 0x1f1f, - 0x3877, 0x06f2, - 0x3878, 0x1f21, - 0x3879, 0x06f4, - 0x3921, 0x06fa, - 0x3928, 0x1f22, - 0x3929, 0x0702, - 0x392e, 0x1f23, - 0x392f, 0x0708, - 0x3931, 0x1f24, - 0x3932, 0x070b, - 0x3933, 0x1f25, - 0x3934, 0x070d, - 0x3935, 0x1f26, - 0x3936, 0x070f, - 0x3939, 0x1f27, - 0x393b, 0x0714, - 0x3946, 0x1f29, - 0x3947, 0x0720, - 0x394b, 0x1f2a, - 0x394c, 0x0725, - 0x3950, 0x1f2b, - 0x3951, 0x072a, - 0x3958, 0x1f2c, - 0x3959, 0x0732, - 0x395b, 0x1f2d, - 0x395c, 0x0735, - 0x395d, 0x1f2e, - 0x395e, 0x0737, - 0x395f, 0x1f2f, - 0x3960, 0x0739, - 0x3961, 0x1f30, - 0x3962, 0x073b, - 0x3963, 0x1f31, - 0x3964, 0x073d, - 0x3966, 0x1f32, - 0x3967, 0x0740, - 0x3969, 0x1f33, - 0x396d, 0x0746, - 0x396e, 0x1f37, - 0x396f, 0x0748, - 0x3971, 0x1f38, - 0x3972, 0x074b, - 0x3973, 0x1f39, - 0x3976, 0x074f, - 0x3978, 0x1f3c, - 0x3979, 0x0752, - 0x397a, 0x1f3d, - 0x397b, 0x0754, - 0x397d, 0x1f3e, - 0x397e, 0x0757, - 0x3a21, 0x0758, - 0x3a27, 0x1f3f, - 0x3a28, 0x075f, - 0x3a2b, 0x1f40, - 0x3a2c, 0x0763, - 0x3a3a, 0x1f41, - 0x3a3b, 0x0772, - 0x3a45, 0x1f42, - 0x3a46, 0x077d, - 0x3a52, 0x1f43, - 0x3a53, 0x078a, - 0x3a57, 0x1f44, - 0x3a59, 0x0790, - 0x3a64, 0x1f46, - 0x3a65, 0x079c, - 0x3a68, 0x1f47, - 0x3a69, 0x07a0, - 0x3a6c, 0x1f48, - 0x3a6d, 0x07a4, - 0x3a73, 0x15e5, - 0x3a74, 0x07ab, - 0x3a78, 0x1f49, - 0x3a79, 0x07b0, - 0x3b21, 0x07b6, - 0x3b24, 0x1f4a, - 0x3b25, 0x07ba, - 0x3b26, 0x1f4b, - 0x3b27, 0x07bc, - 0x3b29, 0x1f4c, - 0x3b2b, 0x07c0, - 0x3b2d, 0x1f4e, - 0x3b2f, 0x07c4, - 0x3b30, 0x1f50, - 0x3b31, 0x07c6, - 0x3b33, 0x1f51, - 0x3b34, 0x07c9, - 0x3b35, 0x1f52, - 0x3b38, 0x07cd, - 0x3b39, 0x1f55, - 0x3b3b, 0x07d0, - 0x3b51, 0x1f57, - 0x3b52, 0x07e7, - 0x3b53, 0x1f58, - 0x3b55, 0x07ea, - 0x3b5f, 0x1f5a, - 0x3b68, 0x07fd, - 0x3b6b, 0x1f63, - 0x3b6c, 0x0801, - 0x3b71, 0x1f64, - 0x3b72, 0x0807, - 0x3b75, 0x1f65, - 0x3b78, 0x080d, - 0x3b7a, 0x1f68, - 0x3b7b, 0x0810, - 0x3b7d, 0x1f69, - 0x3b7e, 0x0813, - 0x3c21, 0x0814, - 0x3c22, 0x1f6a, - 0x3c23, 0x0816, - 0x3c25, 0x1f6b, - 0x3c27, 0x081a, - 0x3c28, 0x1f6d, - 0x3c2a, 0x081d, - 0x3c2b, 0x1f6f, - 0x3c2c, 0x081f, - 0x3c2d, 0x1f70, - 0x3c2e, 0x0821, - 0x3c36, 0x1f71, - 0x3c39, 0x082c, - 0x3c3b, 0x1f74, - 0x3c3c, 0x082f, - 0x3c41, 0x1f75, - 0x3c42, 0x0835, - 0x3c43, 0x1f76, - 0x3c44, 0x0837, - 0x3c46, 0x1f77, - 0x3c48, 0x083b, - 0x3c4a, 0x1f79, - 0x3c4b, 0x083e, - 0x3c4c, 0x1f7a, - 0x3c4e, 0x0841, - 0x3c50, 0x1f7c, - 0x3c51, 0x0844, - 0x3c54, 0x1f7d, - 0x3c57, 0x084a, - 0x3c58, 0x1f80, - 0x3c59, 0x084c, - 0x3c5b, 0x1f81, - 0x3c5c, 0x084f, - 0x3c5d, 0x1f82, - 0x3c5e, 0x0851, - 0x3c5f, 0x1f83, - 0x3c62, 0x0855, - 0x3c63, 0x1f86, - 0x3c65, 0x0858, - 0x3c68, 0x1f88, - 0x3c69, 0x085c, - 0x3c6a, 0x1f89, - 0x3c6d, 0x0860, - 0x3c6f, 0x1f8c, - 0x3c74, 0x0867, - 0x3c76, 0x1f91, - 0x3c7d, 0x0870, - 0x3d21, 0x0872, - 0x3d22, 0x1f98, - 0x3d28, 0x0879, - 0x3d2b, 0x1f9e, - 0x3d2d, 0x087e, - 0x3d2f, 0x1fa0, - 0x3d33, 0x0884, - 0x3d34, 0x1fa4, - 0x3d35, 0x0886, - 0x3d3a, 0x1fa5, - 0x3d3b, 0x088c, - 0x3d3d, 0x1fa6, - 0x3d40, 0x0891, - 0x3d41, 0x1fa9, - 0x3d45, 0x0896, - 0x3d48, 0x1fad, - 0x3d4b, 0x089c, - 0x3d4e, 0x1fb0, - 0x3d50, 0x08a1, - 0x3d57, 0x1fb2, - 0x3d58, 0x08a9, - 0x3d5a, 0x1fb3, - 0x3d5b, 0x08ac, - 0x3d60, 0x1fb4, - 0x3d62, 0x08b3, - 0x3d6b, 0x1fb6, - 0x3d6c, 0x08bd, - 0x3d74, 0x1fb7, - 0x3d79, 0x08ca, - 0x3d7d, 0x1fbc, - 0x3d7e, 0x08cf, - 0x3e21, 0x1fbd, - 0x3e23, 0x08d2, - 0x3e25, 0x1fbf, - 0x3e26, 0x08d5, - 0x3e28, 0x1fc0, - 0x3e29, 0x08d8, - 0x3e2a, 0x1fc1, - 0x3e2b, 0x08da, - 0x3e2d, 0x1fc2, - 0x3e2e, 0x08dd, - 0x3e31, 0x1fc3, - 0x3e32, 0x08e1, - 0x3e35, 0x1fc4, - 0x3e38, 0x08e7, - 0x3e3a, 0x1fc7, - 0x3e3b, 0x08ea, - 0x3e40, 0x1fc8, - 0x3e41, 0x08f0, - 0x3e49, 0x1fc9, - 0x3e4a, 0x08f9, - 0x3e54, 0x1fca, - 0x3e55, 0x0904, - 0x3e59, 0x1fcb, - 0x3e5a, 0x0909, - 0x3e5d, 0x1fcc, - 0x3e5e, 0x090d, - 0x3e62, 0x1fcd, - 0x3e63, 0x0912, - 0x3e65, 0x1fce, - 0x3e66, 0x0915, - 0x3e67, 0x1fcf, - 0x3e68, 0x0917, - 0x3e69, 0x1fd0, - 0x3e6a, 0x0919, - 0x3e6e, 0x1fd1, - 0x3e6f, 0x091e, - 0x3e75, 0x1fd2, - 0x3e76, 0x0925, - 0x3e77, 0x1fd3, - 0x3e79, 0x0928, - 0x3e7b, 0x1fd5, - 0x3e7d, 0x092c, - 0x3f21, 0x092e, - 0x3f25, 0x1fd7, - 0x3f26, 0x0933, - 0x3f2a, 0x1fd8, - 0x3f2b, 0x0938, - 0x3f2d, 0x1fd9, - 0x3f2e, 0x093b, - 0x3f45, 0x1fda, - 0x3f46, 0x0953, - 0x3f47, 0x1fdb, - 0x3f48, 0x0955, - 0x3f4e, 0x1fdc, - 0x3f4f, 0x095c, - 0x3f51, 0x1fdd, - 0x3f53, 0x0960, - 0x3f59, 0x1fdf, - 0x3f5a, 0x0967, - 0x3f62, 0x1fe0, - 0x3f65, 0x0972, - 0x3f69, 0x1fe3, - 0x3f6a, 0x0977, - 0x3f6b, 0x1fe4, - 0x3f6c, 0x0979, - 0x3f6d, 0x1fe5, - 0x3f6e, 0x097b, - 0x3f73, 0x1fe6, - 0x3f74, 0x0981, - 0x3f75, 0x1fe7, - 0x3f76, 0x0983, - 0x3f77, 0x1fe8, - 0x3f78, 0x0985, - 0x3f79, 0x1fe9, - 0x3f7b, 0x0988, - 0x4021, 0x1feb, - 0x4022, 0x098d, - 0x4023, 0x1fec, - 0x4024, 0x098f, - 0x4029, 0x1fed, - 0x402a, 0x0995, - 0x402b, 0x1fee, - 0x402c, 0x0997, - 0x402f, 0x1fef, - 0x4031, 0x099c, - 0x4033, 0x1ff1, - 0x4037, 0x09a2, - 0x4038, 0x1ff5, - 0x4045, 0x09b0, - 0x404c, 0x2002, - 0x404e, 0x09b9, - 0x4054, 0x2004, - 0x4055, 0x09c0, - 0x4056, 0x2005, - 0x4057, 0x09c2, - 0x4058, 0x2006, - 0x4059, 0x09c4, - 0x405d, 0x2007, - 0x405e, 0x09c9, - 0x4060, 0x2008, - 0x4061, 0x09cc, - 0x4069, 0x2009, - 0x406a, 0x09d5, - 0x406b, 0x200a, - 0x406d, 0x09d8, - 0x406f, 0x200c, - 0x4072, 0x09dd, - 0x4076, 0x200f, - 0x407b, 0x09e6, - 0x4121, 0x09ea, - 0x4124, 0x2014, - 0x4126, 0x09ef, - 0x4129, 0x2016, - 0x412e, 0x09f7, - 0x412f, 0x201b, - 0x4139, 0x0a02, - 0x413d, 0x2025, - 0x413f, 0x0a08, - 0x4142, 0x2027, - 0x4143, 0x0a0c, - 0x4146, 0x2028, - 0x4147, 0x0a10, - 0x4149, 0x2029, - 0x414a, 0x0a13, - 0x414d, 0x202a, - 0x414e, 0x0a17, - 0x4154, 0x202b, - 0x4155, 0x0a1e, - 0x4159, 0x202c, - 0x415c, 0x0a25, - 0x415e, 0x202f, - 0x415f, 0x0a28, - 0x4164, 0x2030, - 0x4166, 0x0a2f, - 0x4169, 0x2032, - 0x416a, 0x0a33, - 0x416b, 0x2033, - 0x416d, 0x0a36, - 0x4173, 0x2035, - 0x4174, 0x0a3d, - 0x4175, 0x2036, - 0x4176, 0x0a3f, - 0x417a, 0x2037, - 0x417e, 0x0a47, - 0x4221, 0x0a48, - 0x4222, 0x203b, - 0x4229, 0x0a50, - 0x422b, 0x2042, - 0x4234, 0x0a5b, - 0x4238, 0x204b, - 0x4239, 0x0a60, - 0x423c, 0x204c, - 0x423e, 0x0a65, - 0x423f, 0x204e, - 0x4240, 0x0a67, - 0x4241, 0x204f, - 0x4242, 0x0a69, - 0x4245, 0x2050, - 0x4248, 0x0a6f, - 0x424b, 0x2053, - 0x4251, 0x0a78, - 0x4252, 0x2059, - 0x4253, 0x0a7a, - 0x4255, 0x205a, - 0x425d, 0x0a84, - 0x425e, 0x2062, - 0x4263, 0x0a8a, - 0x4266, 0x2067, - 0x4269, 0x0a90, - 0x426a, 0x206a, - 0x426f, 0x0a96, - 0x4270, 0x206f, - 0x4271, 0x0a98, - 0x4272, 0x2070, - 0x4276, 0x0a9d, - 0x4277, 0x2074, - 0x427b, 0x0aa2, - 0x4321, 0x2078, - 0x4322, 0x0aa7, - 0x432a, 0x2079, - 0x432b, 0x0ab0, - 0x432d, 0x207a, - 0x432e, 0x0ab3, - 0x4333, 0x207b, - 0x4334, 0x1df9, - 0x4335, 0x0aba, - 0x433e, 0x207c, - 0x433f, 0x0ac4, - 0x4345, 0x207d, - 0x4348, 0x0acd, - 0x434c, 0x2080, - 0x434d, 0x0ad2, - 0x434e, 0x2081, - 0x434f, 0x0ad4, - 0x4355, 0x2082, - 0x4357, 0x0adc, - 0x4359, 0x2084, - 0x435a, 0x0adf, - 0x4360, 0x2085, - 0x4361, 0x0ae6, - 0x4365, 0x2086, - 0x4366, 0x0aeb, - 0x436d, 0x2087, - 0x436e, 0x0af3, - 0x4370, 0x2088, - 0x4371, 0x0af6, - 0x4375, 0x2089, - 0x4377, 0x0afc, - 0x4379, 0x208b, - 0x437b, 0x0b00, - 0x437d, 0x208d, - 0x437e, 0x0b03, - 0x4421, 0x0b04, - 0x4431, 0x208e, - 0x4432, 0x0b15, - 0x4436, 0x208f, - 0x4437, 0x0b1a, - 0x4446, 0x2090, - 0x4447, 0x0b2a, - 0x4449, 0x2091, - 0x444a, 0x0b2d, - 0x4451, 0x2092, - 0x4452, 0x0b35, - 0x4453, 0x2093, - 0x4457, 0x0b3a, - 0x4459, 0x2097, - 0x445a, 0x0b3d, - 0x4462, 0x2098, - 0x4463, 0x0b46, - 0x4465, 0x2099, - 0x4466, 0x0b49, - 0x446c, 0x209a, - 0x446d, 0x0b50, - 0x4470, 0x209b, - 0x4472, 0x0b55, - 0x4474, 0x209d, - 0x4475, 0x0b58, - 0x4476, 0x209e, - 0x4479, 0x0b5c, - 0x447b, 0x20a1, - 0x447d, 0x0b60, - 0x447e, 0x20a3, - 0x4521, 0x20a4, - 0x4523, 0x0b64, - 0x4525, 0x20a6, - 0x452a, 0x0b6b, - 0x4531, 0x20ab, - 0x4532, 0x0b73, - 0x4535, 0x20ac, - 0x4536, 0x0b77, - 0x4537, 0x20ad, - 0x453a, 0x0b7b, - 0x453b, 0x20b0, - 0x453c, 0x0b7d, - 0x453d, 0x20b1, - 0x453e, 0x0b7f, - 0x454c, 0x20b2, - 0x454d, 0x0b8e, - 0x4553, 0x20b3, - 0x4554, 0x0b95, - 0x4562, 0x20b4, - 0x4563, 0x0ba4, - 0x4567, 0x20b5, - 0x4568, 0x0ba9, - 0x4574, 0x20b6, - 0x4575, 0x0bb6, - 0x4621, 0x0bc0, - 0x462d, 0x20b7, - 0x462f, 0x0bce, - 0x4635, 0x20b9, - 0x4637, 0x0bd6, - 0x463b, 0x20bb, - 0x463c, 0x0bdb, - 0x463e, 0x20bc, - 0x463f, 0x0bde, - 0x4640, 0x20bd, - 0x4641, 0x0be0, - 0x4643, 0x20be, - 0x4645, 0x0be4, - 0x464b, 0x20c0, - 0x464e, 0x0bed, - 0x4653, 0x20c3, - 0x4654, 0x0bf3, - 0x4657, 0x20c4, - 0x4658, 0x0bf7, - 0x466a, 0x20c5, - 0x466c, 0x0c0b, - 0x466f, 0x20c7, - 0x4670, 0x0c0f, - 0x4671, 0x20c8, - 0x4672, 0x0c11, - 0x4674, 0x20c9, - 0x4675, 0x0c14, - 0x4678, 0x20ca, - 0x4679, 0x0c18, - 0x467d, 0x20cb, - 0x467e, 0x0c1d, - 0x4721, 0x0c1e, - 0x4723, 0x20cc, - 0x4724, 0x0c21, - 0x4725, 0x20cd, - 0x4727, 0x0c24, - 0x4728, 0x20cf, - 0x472a, 0x0c27, - 0x472b, 0x20d1, - 0x472c, 0x0c29, - 0x472e, 0x20d2, - 0x4730, 0x0c2d, - 0x4733, 0x20d4, - 0x4736, 0x0c33, - 0x4739, 0x20d7, - 0x473b, 0x0c38, - 0x473d, 0x20d9, - 0x473f, 0x0c3c, - 0x4740, 0x20db, - 0x4741, 0x0c3e, - 0x4742, 0x20dc, - 0x4743, 0x0c40, - 0x4745, 0x20dd, - 0x4746, 0x0c43, - 0x4747, 0x20de, - 0x4749, 0x0c46, - 0x474c, 0x20e0, - 0x474d, 0x0c4a, - 0x474f, 0x20e1, - 0x4750, 0x0c4d, - 0x4754, 0x20e2, - 0x4756, 0x0c53, - 0x4757, 0x20e4, - 0x4758, 0x0c55, - 0x475e, 0x20e5, - 0x475f, 0x0c5c, - 0x4761, 0x20e6, - 0x4764, 0x0c61, - 0x476a, 0x20e9, - 0x476f, 0x0c6c, - 0x4777, 0x20ee, - 0x4779, 0x0c76, - 0x477b, 0x20f0, - 0x477c, 0x0c79, - 0x477d, 0x20f1, - 0x477e, 0x0c7b, - 0x4821, 0x0c7c, - 0x4823, 0x20f2, - 0x4824, 0x0c7f, - 0x4827, 0x20f3, - 0x4829, 0x0c84, - 0x4830, 0x20f5, - 0x4831, 0x0c8c, - 0x4835, 0x20f6, - 0x4836, 0x0c91, - 0x4837, 0x20f7, - 0x4838, 0x0c93, - 0x4843, 0x20f8, - 0x4847, 0x0ca2, - 0x4848, 0x20fc, - 0x4849, 0x0ca4, - 0x484d, 0x20fd, - 0x484e, 0x0ca9, - 0x484f, 0x20fe, - 0x4850, 0x0cab, - 0x4852, 0x20ff, - 0x4853, 0x0cae, - 0x4859, 0x2100, - 0x485a, 0x0cb5, - 0x485e, 0x2101, - 0x485f, 0x0cba, - 0x486d, 0x2102, - 0x486e, 0x0cc9, - 0x4871, 0x2103, - 0x4874, 0x0ccf, - 0x4877, 0x2106, - 0x4879, 0x0cd4, - 0x487a, 0x2108, - 0x487b, 0x0cd6, - 0x487c, 0x2109, - 0x487d, 0x0cd8, - 0x4921, 0x210a, - 0x4922, 0x0cdb, - 0x4925, 0x210b, - 0x4926, 0x0cdf, - 0x4927, 0x210c, - 0x4929, 0x0ce2, - 0x492c, 0x210e, - 0x492d, 0x0ce6, - 0x4931, 0x210f, - 0x4932, 0x0ceb, - 0x4934, 0x2110, - 0x4935, 0x0cee, - 0x4938, 0x2111, - 0x493a, 0x0cf3, - 0x4941, 0x2113, - 0x4943, 0x0cfc, - 0x4944, 0x2115, - 0x4945, 0x0cfe, - 0x4949, 0x2116, - 0x494a, 0x0d03, - 0x494b, 0x2117, - 0x494c, 0x0d05, - 0x494d, 0x2118, - 0x494e, 0x0d07, - 0x4955, 0x2119, - 0x4956, 0x0d0f, - 0x495c, 0x211a, - 0x495d, 0x0d16, - 0x495e, 0x211b, - 0x495f, 0x0d18, - 0x4961, 0x211c, - 0x4962, 0x0d1b, - 0x4963, 0x211d, - 0x4964, 0x0d1d, - 0x4965, 0x211e, - 0x4966, 0x0d1f, - 0x4968, 0x211f, - 0x4969, 0x0d22, - 0x4970, 0x2120, - 0x4971, 0x0d2a, - 0x4973, 0x2121, - 0x4975, 0x0d2e, - 0x4976, 0x2123, - 0x4977, 0x0d30, - 0x4978, 0x2124, - 0x497a, 0x0d33, - 0x497e, 0x2126, - 0x4a21, 0x0d38, - 0x4a24, 0x2127, - 0x4a27, 0x0d3e, - 0x4a28, 0x212a, - 0x4a29, 0x0d40, - 0x4a2a, 0x212b, - 0x4a2c, 0x0d43, - 0x4a31, 0x212d, - 0x4a32, 0x0d49, - 0x4a34, 0x212e, - 0x4a37, 0x0d4e, - 0x4a3b, 0x2131, - 0x4a3c, 0x0d53, - 0x4a46, 0x2132, - 0x4a47, 0x0d5e, - 0x4a4a, 0x2133, - 0x4a4b, 0x0d62, - 0x4a4d, 0x2134, - 0x4a4f, 0x0d66, - 0x4a53, 0x2136, - 0x4a55, 0x0d6c, - 0x4a59, 0x2138, - 0x4a5a, 0x0d71, - 0x4a5e, 0x2139, - 0x4a5f, 0x0d76, - 0x4a60, 0x213a, - 0x4a61, 0x0d78, - 0x4a64, 0x213b, - 0x4a65, 0x0d7c, - 0x4a69, 0x213c, - 0x4a6b, 0x0d82, - 0x4a74, 0x213e, - 0x4a76, 0x0d8d, - 0x4a77, 0x2140, - 0x4a78, 0x0d8f, - 0x4a7a, 0x2141, - 0x4a7b, 0x0d92, - 0x4a7d, 0x2142, - 0x4a7e, 0x0d95, - 0x4b21, 0x0d96, - 0x4b27, 0x2143, - 0x4b28, 0x0d9d, - 0x4b2b, 0x2144, - 0x4b2c, 0x0da1, - 0x4b2d, 0x2145, - 0x4b2e, 0x0da3, - 0x4b33, 0x2146, - 0x4b34, 0x0da9, - 0x4b35, 0x2147, - 0x4b37, 0x0dac, - 0x4b38, 0x2149, - 0x4b39, 0x0dae, - 0x4b3f, 0x214a, - 0x4b40, 0x0db5, - 0x4b47, 0x214b, - 0x4b48, 0x0dbd, - 0x4b49, 0x214c, - 0x4b4d, 0x0dc2, - 0x4b4f, 0x2150, - 0x4b51, 0x0dc6, - 0x4b53, 0x2152, - 0x4b54, 0x0dc9, - 0x4b55, 0x2153, - 0x4b56, 0x0dcb, - 0x4b5f, 0x2154, - 0x4b61, 0x0dd6, - 0x4b64, 0x2156, - 0x4b65, 0x0dda, - 0x4b66, 0x2157, - 0x4b68, 0x0ddd, - 0x4b6a, 0x2159, - 0x4b6b, 0x0de0, - 0x4b6f, 0x215a, - 0x4b71, 0x0de6, - 0x4b75, 0x215c, - 0x4b77, 0x0dec, - 0x4b78, 0x215e, - 0x4b79, 0x0dee, - 0x4c21, 0x215f, - 0x4c23, 0x0df6, - 0x4c28, 0x2161, - 0x4c29, 0x0dfc, - 0x4c2c, 0x2162, - 0x4c2d, 0x0e00, - 0x4c2f, 0x2163, - 0x4c34, 0x0e07, - 0x4c37, 0x2168, - 0x4c39, 0x0e0c, - 0x4c3e, 0x216a, - 0x4c3f, 0x0e12, - 0x4c40, 0x216b, - 0x4c41, 0x0e14, - 0x4c4c, 0x216c, - 0x4c4d, 0x0e20, - 0x4c4e, 0x216d, - 0x4c4f, 0x0e22, - 0x4c50, 0x216e, - 0x4c51, 0x0e24, - 0x4c56, 0x216f, - 0x4c57, 0x0e2a, - 0x4c5a, 0x2170, - 0x4c5b, 0x0e2e, - 0x4c5c, 0x2171, - 0x4c5d, 0x0e30, - 0x4c60, 0x2172, - 0x4c61, 0x0e34, - 0x4c62, 0x2173, - 0x4c63, 0x0e36, - 0x4c65, 0x2174, - 0x4c66, 0x0e39, - 0x4c75, 0x2175, - 0x4c76, 0x0e49, - 0x4c79, 0x2176, - 0x4c7b, 0x0e4e, - 0x4c7c, 0x2178, - 0x4d21, 0x0e52, - 0x4d2d, 0x217b, - 0x4d2e, 0x0e5f, - 0x4d33, 0x217c, - 0x4d34, 0x0e65, - 0x4d37, 0x217d, - 0x4d38, 0x0e69, - 0x4d3c, 0x217e, - 0x4d3d, 0x0e6e, - 0x4d3f, 0x217f, - 0x4d40, 0x0e71, - 0x4d45, 0x2180, - 0x4d46, 0x0e77, - 0x4d47, 0x2181, - 0x4d48, 0x0e79, - 0x4d52, 0x2182, - 0x4d53, 0x0e84, - 0x4d54, 0x2183, - 0x4d57, 0x0e88, - 0x4d5d, 0x2186, - 0x4d5e, 0x0e8f, - 0x4d60, 0x2187, - 0x4d61, 0x0e92, - 0x4d64, 0x2188, - 0x4d66, 0x0e97, - 0x4d67, 0x218a, - 0x4d68, 0x0e99, - 0x4d72, 0x218b, - 0x4d73, 0x0ea4, - 0x4d78, 0x218c, - 0x4d79, 0x0eaa, - 0x4e21, 0x0eb0, - 0x4e24, 0x218d, - 0x4e26, 0x0eb5, - 0x4e27, 0x218f, - 0x4e28, 0x0eb7, - 0x4e2a, 0x2190, - 0x4e2e, 0x0ebd, - 0x4e30, 0x2194, - 0x4e32, 0x0ec1, - 0x4e33, 0x2196, - 0x4e34, 0x0ec3, - 0x4e3d, 0x2197, - 0x4e3e, 0x0ecd, - 0x4e40, 0x2198, - 0x4e41, 0x0ed0, - 0x4e45, 0x2199, - 0x4e47, 0x0ed6, - 0x4e48, 0x219b, - 0x4e49, 0x0ed8, - 0x4e4a, 0x219c, - 0x4e4b, 0x0eda, - 0x4e4e, 0x219d, - 0x4e52, 0x0ee1, - 0x4e58, 0x21a1, - 0x4e5b, 0x0eea, - 0x4e5c, 0x21a4, - 0x4e5d, 0x0eec, - 0x4e5e, 0x21a5, - 0x4e60, 0x0eef, - 0x4e6b, 0x21a7, - 0x4e6c, 0x0efb, - 0x4e6d, 0x21a8, - 0x4e6e, 0x0efd, - 0x4e71, 0x21a9, - 0x4e72, 0x0f01, - 0x4e73, 0x21aa, - 0x4e74, 0x0f03, - 0x4e7d, 0x21ab, - 0x4f21, 0x0f0e, - 0x4f2e, 0x21ad, - 0x4f2f, 0x0f1c, - 0x4f30, 0x21ae, - 0x4f31, 0x0f1e, - 0x4f33, 0x21af, - 0x4f34, 0x0f21, - 0x4f37, 0x21b0, - 0x4f39, 0x0f26, - 0x4f3a, 0x21b2, - 0x4f3b, 0x0f28, - 0x4f3d, 0x21b3, - 0x4f3e, 0x0f2b, - 0x4f3f, 0x21b4, - 0x4f42, 0x0f2f, - 0x4f45, 0x21b7, - 0x4f46, 0x0f33, - 0x4f47, 0x21b8, - 0x4f48, 0x0f35, - 0x4f4a, 0x21b9, - 0x4f4c, 0x0f39, - 0x4f4d, 0x21bb, - 0x4f4f, 0x0f3c, - 0x4f50, 0x21bd, - 0x4f51, 0x0f3e, - 0x4f54, 0x21be, - 0x4f59, 0x0f46, - 0x4f5a, 0x21c3, - 0x4f5b, 0x0f48, - 0x4f5c, 0x21c4, - 0x4f5d, 0x0f4a, - 0x4f5f, 0x21c5, - 0x4f60, 0x0f4d, - 0x4f62, 0x21c6, - 0x4f63, 0x0f50, - 0x4f67, 0x21c7, - 0x4f68, 0x0f55, - 0x4f6a, 0x21c8, - 0x4f6b, 0x0f58, - 0x4f6c, 0x21c9, - 0x4f6d, 0x0f5a, - 0x4f6e, 0x21ca, - 0x4f6f, 0x0f5c, - 0x4f74, 0x21cb, - 0x4f75, 0x0f62, - 0x4f79, 0x21cc, - 0x4f7b, 0x0f68, - 0x4f7e, 0x21ce, - 0x5021, 0x0f6c, - 0x5025, 0x21cf, - 0x5026, 0x0f71, - 0x502d, 0x21d0, - 0x502f, 0x0f7a, - 0x5032, 0x21d2, - 0x5035, 0x0f80, - 0x503a, 0x21d5, - 0x503c, 0x0f87, - 0x503f, 0x21d7, - 0x5040, 0x0f8b, - 0x5046, 0x21d8, - 0x5047, 0x0f92, - 0x504b, 0x21d9, - 0x504c, 0x0f97, - 0x5062, 0x21da, - 0x5063, 0x0fae, - 0x5065, 0x21db, - 0x5066, 0x0fb1, - 0x506b, 0x21dc, - 0x506c, 0x0fb7, - 0x506d, 0x21dd, - 0x506e, 0x0fb9, - 0x5077, 0x21de, - 0x507a, 0x0fc5, - 0x507c, 0x21e1, - 0x507d, 0x0fc8, - 0x5121, 0x21e2, - 0x5123, 0x0fcc, - 0x5124, 0x21e4, - 0x5125, 0x0fce, - 0x5127, 0x21e5, - 0x5128, 0x0fd1, - 0x512b, 0x21e6, - 0x512c, 0x0fd5, - 0x512f, 0x21e7, - 0x5132, 0x0fdb, - 0x5135, 0x21ea, - 0x5138, 0x0fe1, - 0x5139, 0x21ed, - 0x513a, 0x0fe3, - 0x513b, 0x21ee, - 0x513d, 0x0fe6, - 0x5146, 0x21f0, - 0x5149, 0x0ff2, - 0x514b, 0x21f3, - 0x514c, 0x0ff5, - 0x514e, 0x21f4, - 0x5150, 0x0ff9, - 0x5155, 0x21f6, - 0x5157, 0x1000, - 0x515e, 0x21f8, - 0x515f, 0x1008, - 0x5161, 0x21f9, - 0x5163, 0x100c, - 0x5168, 0x21fb, - 0x516a, 0x1013, - 0x516c, 0x21fd, - 0x516d, 0x1016, - 0x516e, 0x21fe, - 0x5170, 0x1019, - 0x5171, 0x2200, - 0x5172, 0x101b, - 0x5174, 0x2201, - 0x5175, 0x101e, - 0x5177, 0x2202, - 0x517a, 0x1023, - 0x5221, 0x1028, - 0x5222, 0x2205, - 0x5223, 0x102a, - 0x5225, 0x2206, - 0x5226, 0x102d, - 0x5229, 0x2207, - 0x522a, 0x1031, - 0x522f, 0x2208, - 0x5230, 0x1037, - 0x5233, 0x2209, - 0x5234, 0x103b, - 0x5235, 0x220a, - 0x5237, 0x103e, - 0x523d, 0x220c, - 0x523e, 0x1045, - 0x523f, 0x220d, - 0x5240, 0x1047, - 0x5243, 0x220e, - 0x5244, 0x104b, - 0x5245, 0x220f, - 0x5246, 0x104d, - 0x5247, 0x2210, - 0x5248, 0x104f, - 0x524f, 0x2211, - 0x5250, 0x1057, - 0x5255, 0x2212, - 0x5256, 0x105d, - 0x525a, 0x2213, - 0x525b, 0x1062, - 0x5264, 0x2214, - 0x5266, 0x106d, - 0x5268, 0x2216, - 0x526c, 0x1073, - 0x526f, 0x221a, - 0x5270, 0x1077, - 0x5271, 0x221b, - 0x5272, 0x1079, - 0x5275, 0x221c, - 0x5276, 0x107d, - 0x5278, 0x221d, - 0x5279, 0x1080, - 0x527b, 0x221e, - 0x527c, 0x1083, - 0x527e, 0x221f, - 0x5321, 0x1086, - 0x5323, 0x2220, - 0x532d, 0x1092, - 0x532e, 0x222a, - 0x532f, 0x1094, - 0x5331, 0x222b, - 0x5332, 0x1097, - 0x5334, 0x222c, - 0x5337, 0x109c, - 0x5338, 0x222f, - 0x5339, 0x109e, - 0x533b, 0x2230, - 0x533c, 0x10a1, - 0x5345, 0x2231, - 0x5346, 0x10ab, - 0x5347, 0x2232, - 0x5348, 0x10ad, - 0x534a, 0x2233, - 0x534d, 0x10b2, - 0x5355, 0x2236, - 0x5356, 0x10bb, - 0x535f, 0x2237, - 0x5361, 0x10c6, - 0x5363, 0x2239, - 0x5364, 0x10c9, - 0x5366, 0x223a, - 0x5367, 0x10cc, - 0x536b, 0x223b, - 0x536d, 0x10d2, - 0x536f, 0x223d, - 0x5370, 0x10d5, - 0x5374, 0x223e, - 0x5375, 0x10da, - 0x537c, 0x223f, - 0x537d, 0x10e2, - 0x537e, 0x2240, - 0x5421, 0x10e4, - 0x5424, 0x2241, - 0x5425, 0x10e8, - 0x5426, 0x2242, - 0x5429, 0x10ec, - 0x542f, 0x2245, - 0x5433, 0x10f6, - 0x5435, 0x2249, - 0x5437, 0x10fa, - 0x5438, 0x224b, - 0x5439, 0x10fc, - 0x543c, 0x224c, - 0x543d, 0x1100, - 0x543e, 0x224d, - 0x5440, 0x1103, - 0x5444, 0x224f, - 0x5445, 0x1108, - 0x5446, 0x2250, - 0x5448, 0x110b, - 0x5449, 0x2252, - 0x544a, 0x110d, - 0x544b, 0x2253, - 0x544f, 0x1112, - 0x5453, 0x2257, - 0x5454, 0x1117, - 0x5458, 0x2258, - 0x5459, 0x111c, - 0x545c, 0x2259, - 0x5461, 0x1124, - 0x5464, 0x225e, - 0x5465, 0x1128, - 0x5466, 0x225f, - 0x5467, 0x112a, - 0x546e, 0x2260, - 0x546f, 0x1132, - 0x5470, 0x2261, - 0x5475, 0x1138, - 0x5479, 0x2266, - 0x547a, 0x113d, - 0x547e, 0x2267, - 0x5521, 0x2268, - 0x5523, 0x1144, - 0x5529, 0x226a, - 0x552a, 0x114b, - 0x552b, 0x226b, - 0x552c, 0x114d, - 0x552e, 0x226c, - 0x552f, 0x1150, - 0x5531, 0x226d, - 0x5532, 0x1153, - 0x5535, 0x226e, - 0x5539, 0x115a, - 0x553b, 0x2272, - 0x553c, 0x115d, - 0x553d, 0x2273, - 0x553e, 0x115f, - 0x5540, 0x2274, - 0x5541, 0x1162, - 0x5545, 0x2275, - 0x5546, 0x1167, - 0x5547, 0x2276, - 0x5548, 0x1169, - 0x554a, 0x2277, - 0x554c, 0x116d, - 0x554d, 0x2279, - 0x554e, 0x116f, - 0x5554, 0x227a, - 0x5555, 0x1176, - 0x555d, 0x227b, - 0x555f, 0x1180, - 0x5560, 0x227d, - 0x5561, 0x1182, - 0x5562, 0x227e, - 0x5563, 0x1184, - 0x556a, 0x227f, - 0x556d, 0x118e, - 0x556f, 0x2282, - 0x5570, 0x1191, - 0x5572, 0x2283, - 0x5574, 0x1195, - 0x5577, 0x15eb, - 0x5578, 0x1199, - 0x5621, 0x2285, - 0x5625, 0x11a4, - 0x562f, 0x2289, - 0x5631, 0x11b0, - 0x5634, 0x228b, - 0x5635, 0x11b4, - 0x563b, 0x228c, - 0x563c, 0x11bb, - 0x563d, 0x228d, - 0x563e, 0x11bd, - 0x563f, 0x228e, - 0x5641, 0x11c0, - 0x5644, 0x2290, - 0x5645, 0x11c4, - 0x564a, 0x2291, - 0x564b, 0x11ca, - 0x564d, 0x2292, - 0x564e, 0x11cd, - 0x5653, 0x2293, - 0x5654, 0x11d3, - 0x5655, 0x2294, - 0x5658, 0x11d7, - 0x565a, 0x2297, - 0x565b, 0x11da, - 0x565f, 0x2298, - 0x5660, 0x11df, - 0x5661, 0x2299, - 0x5662, 0x11e1, - 0x5665, 0x229a, - 0x5666, 0x11e5, - 0x5667, 0x229b, - 0x5669, 0x11e8, - 0x566e, 0x229d, - 0x5670, 0x11ef, - 0x5672, 0x229f, - 0x5673, 0x11f2, - 0x5675, 0x22a0, - 0x5677, 0x11f6, - 0x567c, 0x22a2, - 0x5721, 0x11fe, - 0x5724, 0x22a5, - 0x5725, 0x1202, - 0x5728, 0x22a6, - 0x572b, 0x1208, - 0x572c, 0x22a9, - 0x572d, 0x120a, - 0x572e, 0x22aa, - 0x5732, 0x120f, - 0x5733, 0x22ae, - 0x5735, 0x1212, - 0x5736, 0x22b0, - 0x5737, 0x1214, - 0x5738, 0x22b1, - 0x573d, 0x121a, - 0x5747, 0x22b6, - 0x5748, 0x1225, - 0x574a, 0x22b7, - 0x574b, 0x1228, - 0x5755, 0x22b8, - 0x5756, 0x1233, - 0x575b, 0x22b9, - 0x575f, 0x123c, - 0x5767, 0x22bd, - 0x5768, 0x1245, - 0x5769, 0x22be, - 0x576b, 0x1248, - 0x5821, 0x1257, - 0x5844, 0x22c0, - 0x5845, 0x127b, - 0x5847, 0x22c1, - 0x5848, 0x127e, - 0x5849, 0x22c2, - 0x584a, 0x1280, - 0x584c, 0x22c3, - 0x584e, 0x1284, - 0x5850, 0x22c5, - 0x5852, 0x1288, - 0x5853, 0x22c7, - 0x5854, 0x128a, - 0x5859, 0x22c8, - 0x585a, 0x1290, - 0x585b, 0x22c9, - 0x585d, 0x1293, - 0x5871, 0x22cb, - 0x5872, 0x12a8, - 0x5876, 0x22cc, - 0x5878, 0x12ae, - 0x5921, 0x12b5, - 0x592d, 0x22ce, - 0x592e, 0x12c2, - 0x592f, 0x22cf, - 0x5930, 0x12c4, - 0x5931, 0x22d0, - 0x5934, 0x12c8, - 0x5947, 0x22d3, - 0x5948, 0x12dc, - 0x594d, 0x22d4, - 0x5951, 0x12e5, - 0x595d, 0x22d8, - 0x595e, 0x12f2, - 0x5961, 0x22d9, - 0x5962, 0x12f6, - 0x5964, 0x22da, - 0x5965, 0x12f9, - 0x5966, 0x22db, - 0x5967, 0x12fb, - 0x596c, 0x22dc, - 0x596d, 0x1301, - 0x5974, 0x22dd, - 0x5976, 0x130a, - 0x5a21, 0x1313, - 0x5a25, 0x22df, - 0x5a60, 0x1352, - 0x5a6a, 0x231a, - 0x5a6b, 0x135d, - 0x5a77, 0x231b, - 0x5a78, 0x136a, - 0x5a79, 0x231c, - 0x5a7a, 0x136c, - 0x5a7e, 0x231d, - 0x5b21, 0x1371, - 0x5b23, 0x231e, - 0x5b24, 0x1374, - 0x5b26, 0x231f, - 0x5b27, 0x1377, - 0x5b29, 0x2320, - 0x5b2b, 0x137b, - 0x5b3b, 0x2322, - 0x5b3c, 0x138c, - 0x5b3d, 0x2323, - 0x5b3e, 0x138e, - 0x5b4f, 0x2324, - 0x5b50, 0x13a0, - 0x5b51, 0x2325, - 0x5b52, 0x13a2, - 0x5b5b, 0x2326, - 0x5b5c, 0x13ac, - 0x5b5e, 0x2327, - 0x5b5f, 0x13af, - 0x5b62, 0x2328, - 0x5b63, 0x13b3, - 0x5b64, 0x2329, - 0x5b65, 0x13b5, - 0x5b6b, 0x232a, - 0x5b6c, 0x13bc, - 0x5b6e, 0x232b, - 0x5b6f, 0x13bf, - 0x5b71, 0x232c, - 0x5b72, 0x13c2, - 0x5b75, 0x232d, - 0x5b78, 0x13c8, - 0x5c21, 0x13cf, - 0x5c3c, 0x2330, - 0x5c3d, 0x13eb, - 0x5c3f, 0x2331, - 0x5c40, 0x13ee, - 0x5c42, 0x2332, - 0x5c43, 0x13f1, - 0x5c48, 0x2333, - 0x5c4b, 0x13f9, - 0x5c51, 0x2336, - 0x5c52, 0x1400, - 0x5c57, 0x2337, - 0x5c58, 0x1406, - 0x5c60, 0x2338, - 0x5c61, 0x140f, - 0x5c63, 0x2339, - 0x5c65, 0x1413, - 0x5c69, 0x233b, - 0x5c6b, 0x1419, - 0x5c71, 0x233d, - 0x5c72, 0x1420, - 0x5c76, 0x233e, - 0x5c77, 0x1425, - 0x5c79, 0x233f, - 0x5c7a, 0x1428, - 0x5c7d, 0x2340, - 0x5d21, 0x2342, - 0x5d22, 0x142e, - 0x5d23, 0x2343, - 0x5d28, 0x1434, - 0x5d2a, 0x2348, - 0x5d2c, 0x1438, - 0x5d32, 0x234a, - 0x5d33, 0x143f, - 0x5d35, 0x234b, - 0x5d36, 0x1442, - 0x5d3a, 0x234c, - 0x5d3c, 0x1448, - 0x5d53, 0x234e, - 0x5d54, 0x1460, - 0x5d5b, 0x234f, - 0x5d5c, 0x1468, - 0x5d5e, 0x2350, - 0x5d5f, 0x146b, - 0x5d64, 0x2351, - 0x5d65, 0x1471, - 0x5d6b, 0x2352, - 0x5d6c, 0x1478, - 0x5d71, 0x2353, - 0x5d72, 0x147e, - 0x5d76, 0x2354, - 0x5d78, 0x1484, - 0x5d7c, 0x2356, - 0x5d7d, 0x1489, - 0x5d7e, 0x2357, - 0x5e21, 0x148b, - 0x5e2d, 0x2358, - 0x5e2e, 0x1498, - 0x5e34, 0x2359, - 0x5e35, 0x149f, - 0x5e3a, 0x235a, - 0x5e3b, 0x14a5, - 0x5e46, 0x235b, - 0x5e47, 0x14b1, - 0x5e4f, 0x235c, - 0x5e50, 0x14ba, - 0x5e51, 0x235d, - 0x5e53, 0x14bd, - 0x5e58, 0x235f, - 0x5e59, 0x14c3, - 0x5e62, 0x2360, - 0x5e63, 0x14cd, - 0x5e68, 0x2361, - 0x5e69, 0x14d3, - 0x5e6c, 0x2362, - 0x5e6d, 0x14d7, - 0x5e73, 0x2363, - 0x5e74, 0x14de, - 0x5e7c, 0x2364, - 0x5e7d, 0x14e7, - 0x5f21, 0x14e9, - 0x5f22, 0x2365, - 0x5f24, 0x14ec, - 0x5f25, 0x2367, - 0x5f26, 0x14ee, - 0x5f34, 0x2368, - 0x5f35, 0x14fd, - 0x5f3c, 0x2369, - 0x5f3e, 0x1506, - 0x5f3f, 0x236b, - 0x5f40, 0x1508, - 0x5f42, 0x236c, - 0x5f44, 0x150c, - 0x5f4c, 0x236e, - 0x5f4d, 0x1515, - 0x5f50, 0x236f, - 0x5f51, 0x1519, - 0x5f55, 0x2370, - 0x5f56, 0x151e, - 0x5f58, 0x2371, - 0x5f5a, 0x1522, - 0x5f5c, 0x2373, - 0x5f5d, 0x1525, - 0x5f60, 0x2374, - 0x5f61, 0x1529, - 0x5f62, 0x2375, - 0x5f63, 0x152b, - 0x5f66, 0x2376, - 0x5f67, 0x152f, - 0x5f69, 0x2377, - 0x5f6a, 0x1532, - 0x5f6b, 0x2378, - 0x5f6c, 0x1534, - 0x5f6f, 0x2379, - 0x5f70, 0x1538, - 0x5f75, 0x237a, - 0x5f76, 0x153e, - 0x5f79, 0x237b, - 0x5f7a, 0x1542, - 0x6021, 0x1547, - 0x6036, 0x237c, - 0x6038, 0x155e, - 0x603f, 0x237e, - 0x6040, 0x1566, - 0x6048, 0x237f, - 0x6049, 0x156f, - 0x604e, 0x2380, - 0x604f, 0x1575, - 0x6053, 0x2381, - 0x6054, 0x157a, - 0x6060, 0x2382, - 0x6061, 0x1587, - 0x6070, 0x2383, - 0x6071, 0x1597, - 0x6078, 0x2384, - 0x6079, 0x159f, - 0x607c, 0x2385, - 0x6121, 0x15a5, - 0x612b, 0x2388, - 0x612c, 0x15b0, - 0x612d, 0x2389, - 0x612e, 0x15b2, - 0x6130, 0x238a, - 0x6131, 0x15b5, - 0x6134, 0x238b, - 0x6135, 0x15b9, - 0x613b, 0x238c, - 0x613c, 0x15c0, - 0x613d, 0x238d, - 0x613e, 0x15c2, - 0x6140, 0x238e, - 0x6142, 0x15c6, - 0x6149, 0x2390, - 0x614a, 0x15ce, - 0x6150, 0x2391, - 0x6151, 0x15d5, - 0x615b, 0x2392, - 0x615c, 0x15e0, - 0x6161, 0x07aa, - 0x6162, 0x2393, - 0x6163, 0x15e7, - 0x6167, 0x1198, - 0x6168, 0x15ec, - 0x616e, 0x2394, - 0x6170, 0x15f4, - 0x6176, 0x2396, - 0x6177, 0x15fb, - 0x6178, 0x2397, - 0x6179, 0x15fd, - 0x617d, 0x2398, - 0x617e, 0x1602, - 0x6221, 0x1603, - 0x6224, 0x2399, - 0x6225, 0x1607, - 0x6228, 0x239a, - 0x6229, 0x160b, - 0x623b, 0x239b, - 0x6245, 0x10c5, - 0x6246, 0x23a5, - 0x624f, 0x1631, - 0x6250, 0x23ae, - 0x6251, 0x1633, - 0x6259, 0x23af, - 0x625a, 0x163c, - 0x6263, 0x23b0, - 0x6265, 0x1647, - 0x6266, 0x23b2, - 0x6267, 0x1649, - 0x6269, 0x23b3, - 0x626c, 0x164e, - 0x6278, 0x23b6, - 0x6279, 0x165b, - 0x627a, 0x23b7, - 0x627e, 0x1660, - 0x6321, 0x1661, - 0x6322, 0x23bb, - 0x6323, 0x1663, - 0x6325, 0x23bc, - 0x6326, 0x1666, - 0x632b, 0x23bd, - 0x632c, 0x166c, - 0x6334, 0x23be, - 0x6335, 0x1675, - 0x6345, 0x23bf, - 0x635c, 0x169c, - 0x6363, 0x23d6, - 0x6364, 0x16a4, - 0x636d, 0x23d7, - 0x636e, 0x16ae, - 0x6371, 0x23d8, - 0x6373, 0x16b3, - 0x6378, 0x23da, - 0x6379, 0x16b9, - 0x637e, 0x23db, - 0x6421, 0x16bf, - 0x6424, 0x23dc, - 0x6426, 0x16c4, - 0x642b, 0x23de, - 0x642c, 0x16ca, - 0x642f, 0x23df, - 0x6432, 0x16d0, - 0x6435, 0x23e2, - 0x6437, 0x16d5, - 0x6442, 0x23e4, - 0x6443, 0x16e1, - 0x6445, 0x23e5, - 0x6446, 0x16e4, - 0x6449, 0x23e6, - 0x644a, 0x16e8, - 0x6459, 0x23e7, - 0x645a, 0x16f8, - 0x645c, 0x23e8, - 0x645d, 0x16fb, - 0x645e, 0x23e9, - 0x645f, 0x16fd, - 0x6464, 0x23ea, - 0x6465, 0x1703, - 0x646b, 0x23eb, - 0x646d, 0x170b, - 0x6472, 0x23ed, - 0x6473, 0x1711, - 0x647e, 0x23ee, - 0x6521, 0x171d, - 0x6530, 0x23ef, - 0x6531, 0x172d, - 0x6539, 0x23f0, - 0x653a, 0x1736, - 0x6547, 0x23f1, - 0x6548, 0x1744, - 0x6549, 0x23f2, - 0x654a, 0x1746, - 0x654e, 0x23f3, - 0x654f, 0x174b, - 0x6570, 0x23f4, - 0x6571, 0x176d, - 0x6572, 0x23f5, - 0x6573, 0x176f, - 0x657c, 0x23f6, - 0x657e, 0x177a, - 0x6621, 0x177b, - 0x6623, 0x23f8, - 0x6624, 0x177e, - 0x662b, 0x23f9, - 0x662d, 0x1787, - 0x662e, 0x23fb, - 0x662f, 0x1789, - 0x6634, 0x23fc, - 0x6636, 0x1790, - 0x663f, 0x23fe, - 0x6640, 0x179a, - 0x6648, 0x23ff, - 0x664a, 0x17a4, - 0x664d, 0x2401, - 0x664e, 0x17a8, - 0x6660, 0x2402, - 0x6721, 0x2421, - 0x675b, 0x1813, - 0x6761, 0x245b, - 0x6763, 0x181b, - 0x6767, 0x245d, - 0x6768, 0x1820, - 0x676f, 0x245e, - 0x6770, 0x1828, - 0x6774, 0x245f, - 0x6777, 0x182f, - 0x6821, 0x1837, - 0x6828, 0x2462, - 0x6829, 0x183f, - 0x682c, 0x2463, - 0x682d, 0x1843, - 0x6836, 0x2464, - 0x6837, 0x184d, - 0x6838, 0x2465, - 0x683b, 0x1851, - 0x683f, 0x2468, - 0x6841, 0x1857, - 0x6845, 0x246a, - 0x6846, 0x185c, - 0x6847, 0x246b, - 0x684a, 0x1860, - 0x684e, 0x246e, - 0x684f, 0x1865, - 0x6850, 0x246f, - 0x6851, 0x1867, - 0x6853, 0x2470, - 0x6854, 0x186a, - 0x685d, 0x2471, - 0x685e, 0x1874, - 0x685f, 0x2472, - 0x6860, 0x1876, - 0x6862, 0x2473, - 0x6864, 0x187a, - 0x6865, 0x2475, - 0x6866, 0x187c, - 0x6867, 0x2476, - 0x6868, 0x187e, - 0x686b, 0x2477, - 0x686c, 0x1882, - 0x686d, 0x2478, - 0x686e, 0x1884, - 0x686f, 0x2479, - 0x6870, 0x1886, - 0x6879, 0x247a, - 0x687a, 0x1890, - 0x687c, 0x247b, - 0x687e, 0x1894, - 0x6921, 0x247d, - 0x6922, 0x1896, - 0x692d, 0x247e, - 0x692e, 0x18a2, - 0x6934, 0x247f, - 0x6936, 0x18aa, - 0x6937, 0x2481, - 0x6938, 0x18ac, - 0x6944, 0x2482, - 0x6945, 0x18b9, - 0x6946, 0x2483, - 0x6947, 0x18bb, - 0x6949, 0x2484, - 0x694a, 0x18be, - 0x6956, 0x2485, - 0x6957, 0x18cb, - 0x695a, 0x2486, - 0x695b, 0x18cf, - 0x6964, 0x2487, - 0x6965, 0x18d9, - 0x6966, 0x2488, - 0x6968, 0x18dc, - 0x6969, 0x248a, - 0x696a, 0x18de, - 0x696b, 0x248b, - 0x696c, 0x18e0, - 0x696d, 0x248c, - 0x6a21, 0x249e, - 0x6a26, 0x18f8, - 0x6a27, 0x24a3, - 0x6a29, 0x18fb, - 0x6a31, 0x24a5, - 0x6a32, 0x1904, - 0x6a3c, 0x24a6, - 0x6a3d, 0x190f, - 0x6a4a, 0x24a7, - 0x6a4b, 0x191d, - 0x6a4d, 0x24a8, - 0x6a4e, 0x1920, - 0x6a53, 0x24a9, - 0x6a54, 0x1926, - 0x6a5a, 0x24aa, - 0x6a70, 0x1942, - 0x6b21, 0x1951, - 0x6b27, 0x24c0, - 0x6b28, 0x1958, - 0x6b2a, 0x24c1, - 0x6b2b, 0x195b, - 0x6b32, 0x24c2, - 0x6b33, 0x1963, - 0x6b39, 0x24c3, - 0x6b3a, 0x196a, - 0x6b4a, 0x24c4, - 0x6b4c, 0x197c, - 0x6b4d, 0x24c6, - 0x6b4e, 0x197e, - 0x6b56, 0x24c7, - 0x6b57, 0x1987, - 0x6b5a, 0x24c8, - 0x6b5b, 0x198b, - 0x6b61, 0x24c9, - 0x6b62, 0x1992, - 0x6b77, 0x24ca, - 0x6b78, 0x19a8, - 0x6c21, 0x19af, - 0x6c23, 0x24cb, - 0x6c24, 0x19b2, - 0x6c29, 0x24cc, - 0x6c2f, 0x19bd, - 0x6c31, 0x24d2, - 0x6c32, 0x19c0, - 0x6c34, 0x24d3, - 0x6c36, 0x19c4, - 0x6c3e, 0x24d5, - 0x6c40, 0x19ce, - 0x6c41, 0x24d7, - 0x6c42, 0x19d0, - 0x6c47, 0x24d8, - 0x6c48, 0x19d6, - 0x6c4b, 0x24d9, - 0x6c4c, 0x19da, - 0x6c62, 0x24da, - 0x6c63, 0x19f1, - 0x6c72, 0x24db, - 0x6c73, 0x1a01, - 0x6c75, 0x24dc, - 0x6c76, 0x1a04, - 0x6c78, 0x24dd, - 0x6c79, 0x1a07, - 0x6d21, 0x24de, - 0x6d22, 0x1a0e, - 0x6d28, 0x24df, - 0x6d29, 0x1a15, - 0x6d2f, 0x24e0, - 0x6d31, 0x1a1d, - 0x6d34, 0x24e2, - 0x6d35, 0x1a21, - 0x6d36, 0x24e3, - 0x6d37, 0x1a23, - 0x6d38, 0x24e4, - 0x6d39, 0x1a25, - 0x6d3a, 0x24e5, - 0x6d3b, 0x1a27, - 0x6d3f, 0x24e6, - 0x6d40, 0x1a2c, - 0x6d42, 0x24e7, - 0x6d44, 0x1a30, - 0x6d4c, 0x24e9, - 0x6d4e, 0x1a3a, - 0x6d53, 0x24eb, - 0x6d54, 0x1a40, - 0x6d57, 0x24ec, - 0x6d58, 0x1a44, - 0x6d68, 0x24ed, - 0x6d69, 0x1a55, - 0x6d6e, 0x24ee, - 0x6d6f, 0x1a5b, - 0x6d79, 0x24ef, - 0x6d7b, 0x1a67, - 0x6e21, 0x1a6b, - 0x6e3c, 0x24f1, - 0x6e3d, 0x1a87, - 0x6e3f, 0x24f2, - 0x6e40, 0x1a8a, - 0x6e44, 0x24f3, - 0x6f21, 0x252e, - 0x6f72, 0x1b1a, - 0x7021, 0x1b27, - 0x7023, 0x257f, - 0x7024, 0x1b2a, - 0x702f, 0x2580, - 0x705a, 0x1b60, - 0x705c, 0x25ab, - 0x705e, 0x1b64, - 0x705f, 0x25ad, - 0x7060, 0x1b66, - 0x7069, 0x25ae, - 0x706a, 0x1b70, - 0x706c, 0x25af, - 0x706d, 0x1b73, - 0x706f, 0x25b0, - 0x7070, 0x1b76, - 0x7077, 0x25b1, - 0x7078, 0x1b7e, - 0x7079, 0x25b2, - 0x707a, 0x1b80, - 0x707c, 0x25b3, - 0x707d, 0x1b83, - 0x7121, 0x1b85, - 0x7128, 0x25b4, - 0x7129, 0x1b8d, - 0x712b, 0x25b5, - 0x712c, 0x1b90, - 0x712e, 0x25b6, - 0x712f, 0x1b93, - 0x7132, 0x25b7, - 0x7133, 0x1b97, - 0x713c, 0x25b8, - 0x713d, 0x1ba1, - 0x7140, 0x25b9, - 0x7141, 0x1ba5, - 0x7149, 0x25ba, - 0x714a, 0x1bae, - 0x714d, 0x25bb, - 0x714e, 0x1bb2, - 0x714f, 0x25bc, - 0x7151, 0x1bb5, - 0x715a, 0x25be, - 0x715b, 0x1bbf, - 0x715c, 0x25bf, - 0x715d, 0x1bc1, - 0x7164, 0x25c0, - 0x7165, 0x1bc9, - 0x716c, 0x25c1, - 0x716d, 0x1bd1, - 0x716f, 0x25c2, - 0x7170, 0x1bd4, - 0x7177, 0x25c3, - 0x7178, 0x1bdc, - 0x7179, 0x25c4, - 0x717a, 0x1bde, - 0x717c, 0x25c5, - 0x7221, 0x25c8, - 0x722e, 0x1bf0, - 0x7231, 0x25d5, - 0x7233, 0x1bf5, - 0x7239, 0x25d7, - 0x723a, 0x1bfc, - 0x7243, 0x25d8, - 0x7244, 0x1c06, - 0x7249, 0x25d9, - 0x724a, 0x1c0c, - 0x724c, 0x25da, - 0x724e, 0x1c10, - 0x724f, 0x25dc, - 0x7250, 0x1c12, - 0x7253, 0x25dd, - 0x7254, 0x1c16, - 0x7265, 0x25de, - 0x7266, 0x1c28, - 0x726e, 0x25df, - 0x726f, 0x1c31, - 0x7277, 0x25e0, - 0x7278, 0x1c3a, - 0x727d, 0x25e1, - 0x727e, 0x1c40, - 0x7321, 0x1c41, - 0x733f, 0x25e2, - 0x7340, 0x1c60, - 0x7346, 0x25e3, - 0x7347, 0x1c67, - 0x7348, 0x25e4, - 0x7349, 0x1c69, - 0x7356, 0x25e5, - 0x7357, 0x1c77, - 0x7359, 0x25e6, - 0x735a, 0x1c7a, - 0x7365, 0x25e7, - 0x7367, 0x1c87, - 0x736a, 0x25e9, - 0x736b, 0x1c8b, - 0x736c, 0x25ea, - 0x736d, 0x1c8d, - 0x736f, 0x25eb, - 0x7370, 0x1c90, - 0x7371, 0x25ec, - 0x7372, 0x1c92, - 0x737d, 0x25ed, - 0x737e, 0x1c9e, - 0x7421, 0x1c9f, - 0x7425, 0x25ee, - 0x7426, 0x1ca4, - 0x742f, 0x25ef, - 0x7430, 0x1cae, - 0x7435, 0x25f0, - 0x7436, 0x1cb4, - 0x7441, 0x25f1, - 0x7442, 0x1cc0, - 0x7447, 0x25f2, - 0x7448, 0x1cc6, - 0x744f, 0x25f3, - 0x7451, 0x1ccf, - 0x7456, 0x25f5, - 0x7457, 0x1cd5, - 0x746a, 0x25f6, - 0x746b, 0x1ce9, - 0x746f, 0x25f7, - 0x7470, 0x1cee, - 0x7475, 0x25f8, - 0x7476, 0x1cf4, - 0x7521, 0x1cfd, - 0x7526, 0x25f9, - 0x7528, 0x1d04, - 0x753a, 0x25fb, - 0x753c, 0x1d18, - 0x7544, 0x25fd, - 0x7545, 0x1d21, - 0x7548, 0x25fe, - 0x7549, 0x1d25, - 0x754e, 0x25ff, - 0x7550, 0x1d2c, - 0x7551, 0x2601, - 0x7553, 0x1d2f, - 0x7559, 0x2603, - 0x755a, 0x1d36, - 0x755c, 0x2604, - 0x755d, 0x1d39, - 0x7566, 0x2605, - 0x7568, 0x1d44, - 0x756f, 0x2607, - 0x7570, 0x1d4c, - 0x7572, 0x2608, - 0x7573, 0x1d4f, - 0x757c, 0x2609, - 0x757d, 0x1d59, - 0x7621, 0x1d5b, - 0x7623, 0x260a, - 0x7624, 0x1d5e, - 0x7626, 0x260b, - 0x7627, 0x1d61, - 0x7628, 0x260c, - 0x7629, 0x1d63, - 0x762b, 0x260d, - 0x762c, 0x1d66, - 0x7630, 0x260e, - 0x7631, 0x1d6b, - 0x7633, 0x260f, - 0x763f, 0x1d79, - 0x7645, 0x261b, - 0x7646, 0x1d80, - 0x7647, 0x261c, - 0x7648, 0x1d82, - 0x7649, 0x261d, - 0x764a, 0x1d84, - 0x764f, 0x261e, - 0x7721, 0x264e, - 0x7730, 0x1dc8, - 0x7732, 0x265d, - 0x7734, 0x1dcc, - 0x7735, 0x265f, - 0x7736, 0x1dce, - 0x773d, 0x2660, - 0x773e, 0x1dd6, - 0x7743, 0x2661, - 0x7744, 0x1ddc, - 0x7745, 0x2662, - 0x7747, 0x1ddf, - 0x774a, 0x2664, - 0x774c, 0x1de4, - 0x774f, 0x2666, - 0x7751, 0x1de9, - 0x775e, 0x2668, - 0x775f, 0x1df7, - 0x7761, 0x0ab9, - 0x7762, 0x1dfa, - 0x7772, 0x2669, - 0x7773, 0x1e0b, - 0x7775, 0x266a, - 0x7776, 0x1e0e, - 0x7821, 0x266b, - 0x7827, 0x04cc, - 0x7828, 0x050a, - 0x7829, 0x0518, - 0x782a, 0x2671, - 0x782c, 0x0594, - 0x782d, 0x05ce, - 0x782e, 0x2673, - 0x782f, 0x05f6, - 0x7830, 0x2674, - 0x7832, 0x0653, - 0x7833, 0x067e, - 0x7834, 0x2676, - 0x7835, 0x06c4, - 0x7836, 0x2677, - 0x7838, 0x073c, - 0x7839, 0x2679, - 0x783b, 0x07c3, - 0x783c, 0x267b, - 0x7840, 0x082b, - 0x7841, 0x267f, - 0x7842, 0x084e, - 0x7843, 0x0869, - 0x7844, 0x2680, - 0x7846, 0x090c, - 0x7847, 0x2682, - 0x7849, 0x0971, - 0x784a, 0x2684, - 0x784b, 0x099a, - 0x784d, 0x2685, - 0x784e, 0x09da, - 0x784f, 0x2686, - 0x7850, 0x09fa, - 0x7851, 0x2687, - 0x785c, 0x0bda, - 0x785d, 0x0bdd, - 0x785e, 0x0bea, - 0x785f, 0x0bec, - 0x7860, 0x0bf2, - 0x7861, 0x2692, - 0x7866, 0x0c92, - 0x7867, 0x0d1a, - 0x7868, 0x0d8c, - 0x7869, 0x0dbe, - 0x786a, 0x2697, - 0x786b, 0x0dfb, - 0x786c, 0x2698, - 0x786f, 0x0e70, - 0x7870, 0x269b, - 0x7871, 0x0ea3, - 0x7872, 0x269c, - 0x7878, 0x103d, - 0x7879, 0x10d9, - 0x787a, 0x26a2, - 0x787c, 0x10fb, - 0x787d, 0x1109, - 0x787e, 0x26a4, - 0x7921, 0x11a1, - 0x7922, 0x26a5, - 0x7923, 0x11ba, - 0x7924, 0x26a6, - 0x7926, 0x11d5, - 0x7927, 0x26a8, - 0x7928, 0x11fd, - 0x7929, 0x1219, - 0x2122, 0x023f, - 0x2123, 0x023e, - 0x212a, 0x0256, - 0x212b, 0x1e18, - 0x212d, 0x0257, - 0x2132, 0x0246, - 0x217e, 0x1e1a, - 0x2321, 0x0242, - 0x2328, 0x0244, - 0x232c, 0x023d, - 0x232e, 0x1e1b, - 0x233a, 0x0240, - 0x233d, 0x1e1c, - 0x233f, 0x0243, - 0x235b, 0x1e1d, - 0x235d, 0x1e1e, - 0x235f, 0x0258, - 0x237b, 0x0254, - 0x237d, 0x0255, - 0x237e, 0x1e1f, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 gb12GBTVEnc16 = { - 1, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - gb12GBTVMap2, 2303 -}; - -static Gushort gb12GBTpcEUCHMap2[4566] = { - 0x0000, 0x0000, - 0xa1a1, 0x0060, - 0xa2b1, 0x00be, - 0xa2e5, 0x00f0, - 0xa2f1, 0x00fa, - 0xa3a1, 0x0106, - 0xa4a1, 0x0164, - 0xa5a1, 0x01b7, - 0xa6a1, 0x020d, - 0xa6c1, 0x0225, - 0xa7a1, 0x025a, - 0xa7d1, 0x027b, - 0xa8a1, 0x029c, - 0xa8c5, 0x02bc, - 0xa9a4, 0x02e2, - 0xaaa1, 0x032e, - 0xaba1, 0x038c, - 0xb0a1, 0x03ac, - 0xb0a8, 0x1e25, - 0xb0a9, 0x03b4, - 0xb0aa, 0x1e26, - 0xb0ab, 0x03b6, - 0xb0ad, 0x1e27, - 0xb0af, 0x03ba, - 0xb0b9, 0x1e29, - 0xb0ba, 0x03c5, - 0xb0c0, 0x1e2a, - 0xb0c1, 0x03cc, - 0xb0d3, 0x1e2b, - 0xb0d4, 0x03df, - 0xb0d5, 0x1e2c, - 0xb0d6, 0x03e1, - 0xb0da, 0x1e2d, - 0xb0db, 0x03e6, - 0xb0dc, 0x1e2e, - 0xb0dd, 0x03e8, - 0xb0e4, 0x1e2f, - 0xb0e5, 0x03f0, - 0xb0ec, 0x1e30, - 0xb0ee, 0x03f9, - 0xb0ef, 0x1e32, - 0xb0f0, 0x03fb, - 0xb0f3, 0x1e33, - 0xb0f4, 0x03ff, - 0xb0f7, 0x1e34, - 0xb0f8, 0x0403, - 0xb0f9, 0x1e35, - 0xb0fa, 0x0405, - 0xb1a1, 0x040a, - 0xb1a5, 0x1e36, - 0xb1a7, 0x0410, - 0xb1a8, 0x1e38, - 0xb1a9, 0x0412, - 0xb1ab, 0x1e39, - 0xb1ac, 0x0415, - 0xb1b2, 0x1e3a, - 0xb1b3, 0x041c, - 0xb1b4, 0x1e3b, - 0xb1b6, 0x041f, - 0xb1b7, 0x1e3d, - 0xb1ba, 0x0423, - 0xb1c1, 0x1e40, - 0xb1c2, 0x042b, - 0xb1ca, 0x1e41, - 0xb1cb, 0x0434, - 0xb1cf, 0x1e42, - 0xb1d1, 0x043a, - 0xb1d2, 0x1e44, - 0xb1d3, 0x043c, - 0xb1d5, 0x1e45, - 0xb1d6, 0x043f, - 0xb1df, 0x1e46, - 0xb1e2, 0x044b, - 0xb1e4, 0x1e49, - 0xb1e5, 0x044e, - 0xb1e7, 0x1e4a, - 0xb1e9, 0x0452, - 0xb1ea, 0x1e4c, - 0xb1eb, 0x0454, - 0xb1ee, 0x1e4d, - 0xb1ef, 0x0458, - 0xb1f1, 0x1e4e, - 0xb1f2, 0x045b, - 0xb1f4, 0x1e4f, - 0xb1f8, 0x0461, - 0xb1fd, 0x1e53, - 0xb1fe, 0x0467, - 0xb2a1, 0x0468, - 0xb2a6, 0x1e54, - 0xb2a8, 0x046f, - 0xb2ac, 0x1e56, - 0xb2ad, 0x0474, - 0xb2b5, 0x1e57, - 0xb2b6, 0x047d, - 0xb2b9, 0x1e58, - 0xb2ba, 0x0481, - 0xb2c6, 0x1e59, - 0xb2c7, 0x048e, - 0xb2ce, 0x1e5a, - 0xb2d8, 0x049f, - 0xb2de, 0x1e64, - 0xb2df, 0x04a6, - 0xb2e0, 0x1e65, - 0xb2e1, 0x04a8, - 0xb2e2, 0x1e66, - 0xb2e4, 0x04ab, - 0xb2ef, 0x1e68, - 0xb2f0, 0x04b7, - 0xb2f3, 0x1e69, - 0xb2fd, 0x04c4, - 0xb3a1, 0x1e73, - 0xb3a3, 0x04c8, - 0xb3a4, 0x1e75, - 0xb3a8, 0x04cd, - 0xb3a9, 0x1e79, - 0xb3aa, 0x04cf, - 0xb3ae, 0x1e7a, - 0xb3af, 0x04d4, - 0xb3b5, 0x1e7b, - 0xb3b6, 0x04db, - 0xb3b9, 0x1e7c, - 0xb3ba, 0x04df, - 0xb3be, 0x1e7d, - 0xb3bf, 0x04e4, - 0xb3c2, 0x1e7e, - 0xb3c3, 0x04e8, - 0xb3c4, 0x1e7f, - 0xb3c5, 0x04ea, - 0xb3c6, 0x1e80, - 0xb3c7, 0x04ec, - 0xb3cd, 0x1e81, - 0xb3ce, 0x04f3, - 0xb3cf, 0x1e82, - 0xb3d0, 0x04f5, - 0xb3d2, 0x1e83, - 0xb3d3, 0x04f8, - 0xb3d9, 0x1e84, - 0xb3da, 0x04ff, - 0xb3db, 0x1e85, - 0xb3dc, 0x0501, - 0xb3dd, 0x1e86, - 0xb3de, 0x0503, - 0xb3e3, 0x1e87, - 0xb3e4, 0x0509, - 0xb3e5, 0x1e88, - 0xb3e7, 0x050c, - 0xb3e8, 0x1e8a, - 0xb3e9, 0x050e, - 0xb3eb, 0x1e8b, - 0xb3ed, 0x0512, - 0xb3ef, 0x1e8d, - 0xb3f0, 0x0515, - 0xb3f1, 0x1e8e, - 0xb3f2, 0x0517, - 0xb3f3, 0x1e8f, - 0xb3f4, 0x0519, - 0xb3fa, 0x1e90, - 0xb3fc, 0x0521, - 0xb4a1, 0x1e92, - 0xb4a3, 0x0526, - 0xb4a5, 0x1e94, - 0xb4a7, 0x052a, - 0xb4ab, 0x1e96, - 0xb4ac, 0x052f, - 0xb4af, 0x1e97, - 0xb4b0, 0x0533, - 0xb4b3, 0x1e98, - 0xb4b5, 0x0538, - 0xb4b8, 0x1e9a, - 0xb4b9, 0x053c, - 0xb4bf, 0x1e9b, - 0xb4c0, 0x0543, - 0xb4c2, 0x1e9c, - 0xb4c3, 0x0546, - 0xb4c7, 0x1e9d, - 0xb4c8, 0x054b, - 0xb4ca, 0x1e9e, - 0xb4cb, 0x054e, - 0xb4cd, 0x1e9f, - 0xb4ce, 0x0551, - 0xb4cf, 0x1ea0, - 0xb4d0, 0x0553, - 0xb4d3, 0x1ea1, - 0xb4d5, 0x0558, - 0xb4da, 0x1ea3, - 0xb4db, 0x055e, - 0xb4dc, 0x1ea4, - 0xb4dd, 0x0560, - 0xb4ed, 0x1ea5, - 0xb4ee, 0x0571, - 0xb4ef, 0x1ea6, - 0xb4f0, 0x0573, - 0xb4f8, 0x1ea7, - 0xb4f9, 0x057c, - 0xb4fb, 0x1ea8, - 0xb4fc, 0x057f, - 0xb5a1, 0x0582, - 0xb5a3, 0x1ea9, - 0xb5a4, 0x0585, - 0xb5a5, 0x1eaa, - 0xb5a9, 0x058a, - 0xb5ac, 0x1eae, - 0xb5ad, 0x058e, - 0xb5ae, 0x1eaf, - 0xb5b0, 0x0591, - 0xb5b1, 0x1eb1, - 0xb5b6, 0x0597, - 0xb5b7, 0x1eb6, - 0xb5b8, 0x0599, - 0xb5ba, 0x1eb7, - 0xb5bd, 0x059e, - 0xb5c6, 0x1eba, - 0xb5c7, 0x05a8, - 0xb5cb, 0x1ebb, - 0xb5cc, 0x05ad, - 0xb5d0, 0x1ebc, - 0xb5d1, 0x05b2, - 0xb5d3, 0x1ebd, - 0xb5d4, 0x05b5, - 0xb5dd, 0x1ebe, - 0xb5e0, 0x05c1, - 0xb5e3, 0x1ec1, - 0xb5e4, 0x05c5, - 0xb5e6, 0x1ec2, - 0xb5e8, 0x05c9, - 0xb5ed, 0x1ec4, - 0xb5ee, 0x05cf, - 0xb5f6, 0x1ec5, - 0xb5f8, 0x05d9, - 0xb5fd, 0x1ec7, - 0xb5fe, 0x05df, - 0xb6a1, 0x05e0, - 0xb6a4, 0x1ec8, - 0xb6a6, 0x05e5, - 0xb6a7, 0x1eca, - 0xb6a8, 0x05e7, - 0xb6a9, 0x1ecb, - 0xb6aa, 0x05e9, - 0xb6ab, 0x1ecc, - 0xb6ac, 0x05eb, - 0xb6af, 0x1ecd, - 0xb6b1, 0x05f0, - 0xb6b3, 0x1ecf, - 0xb6b4, 0x05f3, - 0xb6b7, 0x1ed0, - 0xb6b8, 0x05f7, - 0xb6bf, 0x1ed1, - 0xb6c2, 0x0601, - 0xb6c4, 0x1ed4, - 0xb6c5, 0x0604, - 0xb6c6, 0x1ed5, - 0xb6c7, 0x0606, - 0xb6cd, 0x1ed6, - 0xb6ce, 0x060d, - 0xb6cf, 0x1ed7, - 0xb6d1, 0x0610, - 0xb6d3, 0x1ed9, - 0xb6d5, 0x0614, - 0xb6d6, 0x1edb, - 0xb6d7, 0x0616, - 0xb6d9, 0x1edc, - 0xb6da, 0x0619, - 0xb6db, 0x1edd, - 0xb6dc, 0x061b, - 0xb6e1, 0x1ede, - 0xb6e2, 0x0621, - 0xb6e9, 0x1edf, - 0xb6ea, 0x0629, - 0xb6ec, 0x1ee0, - 0xb6ed, 0x062c, - 0xb6ee, 0x1ee1, - 0xb6f0, 0x062f, - 0xb6f1, 0x1ee3, - 0xb6f2, 0x0631, - 0xb6f6, 0x1ee4, - 0xb6f7, 0x0636, - 0xb6f9, 0x1ee5, - 0xb6fa, 0x0639, - 0xb6fb, 0x1ee6, - 0xb6fd, 0x063c, - 0xb7a1, 0x1ee8, - 0xb7a4, 0x0641, - 0xb7a7, 0x1eeb, - 0xb7a8, 0x0645, - 0xb7af, 0x1eec, - 0xb7b1, 0x064e, - 0xb7b3, 0x1eee, - 0xb7b4, 0x0651, - 0xb7b6, 0x1eef, - 0xb7b8, 0x0655, - 0xb7b9, 0x1ef1, - 0xb7ba, 0x0657, - 0xb7c3, 0x1ef2, - 0xb7c5, 0x0662, - 0xb7c9, 0x1ef4, - 0xb7ca, 0x0667, - 0xb7cc, 0x1ef5, - 0xb7cd, 0x066a, - 0xb7cf, 0x1ef6, - 0xb7d0, 0x066d, - 0xb7d1, 0x1ef7, - 0xb7d2, 0x066f, - 0xb7d7, 0x1ef8, - 0xb7d9, 0x0676, - 0xb7dc, 0x1efa, - 0xb7dd, 0x067a, - 0xb7df, 0x1efb, - 0xb7e2, 0x067f, - 0xb7e3, 0x1efe, - 0xb7e4, 0x0681, - 0xb7e6, 0x1eff, - 0xb7e9, 0x0686, - 0xb7eb, 0x1f02, - 0xb7ee, 0x068b, - 0xb7ef, 0x1f05, - 0xb7f0, 0x068d, - 0xb7f4, 0x1f06, - 0xb7f5, 0x0692, - 0xb7f8, 0x1f07, - 0xb7f9, 0x0696, - 0xb8a1, 0x069c, - 0xb8a7, 0x1f08, - 0xb8a9, 0x06a4, - 0xb8b3, 0x1f0a, - 0xb8b5, 0x06b0, - 0xb8ba, 0x1f0c, - 0xb8bb, 0x06b6, - 0xb8bc, 0x1f0d, - 0xb8bd, 0x06b8, - 0xb8be, 0x1f0e, - 0xb8c0, 0x06bb, - 0xb8c3, 0x1f10, - 0xb8c4, 0x06bf, - 0xb8c6, 0x1f11, - 0xb8c8, 0x06c3, - 0xb8c9, 0x1f13, - 0xb8ca, 0x06c5, - 0xb8cf, 0x1f14, - 0xb8d0, 0x06cb, - 0xb8d3, 0x1f15, - 0xb8d7, 0x06d2, - 0xb8d9, 0x1f19, - 0xb8db, 0x06d6, - 0xb8e4, 0x1f1b, - 0xb8e5, 0x06e0, - 0xb8e9, 0x1f1c, - 0xb8ea, 0x06e5, - 0xb8eb, 0x1f1d, - 0xb8ec, 0x06e7, - 0xb8f3, 0x1f1e, - 0xb8f4, 0x06ef, - 0xb8f5, 0x1f1f, - 0xb8f7, 0x06f2, - 0xb8f8, 0x1f21, - 0xb8f9, 0x06f4, - 0xb9a1, 0x06fa, - 0xb9a8, 0x1f22, - 0xb9a9, 0x0702, - 0xb9ae, 0x1f23, - 0xb9af, 0x0708, - 0xb9b1, 0x1f24, - 0xb9b2, 0x070b, - 0xb9b3, 0x1f25, - 0xb9b4, 0x070d, - 0xb9b5, 0x1f26, - 0xb9b6, 0x070f, - 0xb9b9, 0x1f27, - 0xb9bb, 0x0714, - 0xb9c6, 0x1f29, - 0xb9c7, 0x0720, - 0xb9cb, 0x1f2a, - 0xb9cc, 0x0725, - 0xb9d0, 0x1f2b, - 0xb9d1, 0x072a, - 0xb9d8, 0x1f2c, - 0xb9d9, 0x0732, - 0xb9db, 0x1f2d, - 0xb9dc, 0x0735, - 0xb9dd, 0x1f2e, - 0xb9de, 0x0737, - 0xb9df, 0x1f2f, - 0xb9e0, 0x0739, - 0xb9e1, 0x1f30, - 0xb9e2, 0x073b, - 0xb9e3, 0x1f31, - 0xb9e4, 0x073d, - 0xb9e6, 0x1f32, - 0xb9e7, 0x0740, - 0xb9e9, 0x1f33, - 0xb9ed, 0x0746, - 0xb9ee, 0x1f37, - 0xb9ef, 0x0748, - 0xb9f1, 0x1f38, - 0xb9f2, 0x074b, - 0xb9f3, 0x1f39, - 0xb9f6, 0x074f, - 0xb9f8, 0x1f3c, - 0xb9f9, 0x0752, - 0xb9fa, 0x1f3d, - 0xb9fb, 0x0754, - 0xb9fd, 0x1f3e, - 0xb9fe, 0x0757, - 0xbaa1, 0x0758, - 0xbaa7, 0x1f3f, - 0xbaa8, 0x075f, - 0xbaab, 0x1f40, - 0xbaac, 0x0763, - 0xbaba, 0x1f41, - 0xbabb, 0x0772, - 0xbac5, 0x1f42, - 0xbac6, 0x077d, - 0xbad2, 0x1f43, - 0xbad3, 0x078a, - 0xbad7, 0x1f44, - 0xbad9, 0x0790, - 0xbae4, 0x1f46, - 0xbae5, 0x079c, - 0xbae8, 0x1f47, - 0xbae9, 0x07a0, - 0xbaec, 0x1f48, - 0xbaed, 0x07a4, - 0xbaf3, 0x15e5, - 0xbaf4, 0x07ab, - 0xbaf8, 0x1f49, - 0xbaf9, 0x07b0, - 0xbba1, 0x07b6, - 0xbba4, 0x1f4a, - 0xbba5, 0x07ba, - 0xbba6, 0x1f4b, - 0xbba7, 0x07bc, - 0xbba9, 0x1f4c, - 0xbbab, 0x07c0, - 0xbbad, 0x1f4e, - 0xbbaf, 0x07c4, - 0xbbb0, 0x1f50, - 0xbbb1, 0x07c6, - 0xbbb3, 0x1f51, - 0xbbb4, 0x07c9, - 0xbbb5, 0x1f52, - 0xbbb8, 0x07cd, - 0xbbb9, 0x1f55, - 0xbbbb, 0x07d0, - 0xbbd1, 0x1f57, - 0xbbd2, 0x07e7, - 0xbbd3, 0x1f58, - 0xbbd5, 0x07ea, - 0xbbdf, 0x1f5a, - 0xbbe8, 0x07fd, - 0xbbeb, 0x1f63, - 0xbbec, 0x0801, - 0xbbf1, 0x1f64, - 0xbbf2, 0x0807, - 0xbbf5, 0x1f65, - 0xbbf8, 0x080d, - 0xbbfa, 0x1f68, - 0xbbfb, 0x0810, - 0xbbfd, 0x1f69, - 0xbbfe, 0x0813, - 0xbca1, 0x0814, - 0xbca2, 0x1f6a, - 0xbca3, 0x0816, - 0xbca5, 0x1f6b, - 0xbca7, 0x081a, - 0xbca8, 0x1f6d, - 0xbcaa, 0x081d, - 0xbcab, 0x1f6f, - 0xbcac, 0x081f, - 0xbcad, 0x1f70, - 0xbcae, 0x0821, - 0xbcb6, 0x1f71, - 0xbcb9, 0x082c, - 0xbcbb, 0x1f74, - 0xbcbc, 0x082f, - 0xbcc1, 0x1f75, - 0xbcc2, 0x0835, - 0xbcc3, 0x1f76, - 0xbcc4, 0x0837, - 0xbcc6, 0x1f77, - 0xbcc8, 0x083b, - 0xbcca, 0x1f79, - 0xbccb, 0x083e, - 0xbccc, 0x1f7a, - 0xbcce, 0x0841, - 0xbcd0, 0x1f7c, - 0xbcd1, 0x0844, - 0xbcd4, 0x1f7d, - 0xbcd7, 0x084a, - 0xbcd8, 0x1f80, - 0xbcd9, 0x084c, - 0xbcdb, 0x1f81, - 0xbcdc, 0x084f, - 0xbcdd, 0x1f82, - 0xbcde, 0x0851, - 0xbcdf, 0x1f83, - 0xbce2, 0x0855, - 0xbce3, 0x1f86, - 0xbce5, 0x0858, - 0xbce8, 0x1f88, - 0xbce9, 0x085c, - 0xbcea, 0x1f89, - 0xbced, 0x0860, - 0xbcef, 0x1f8c, - 0xbcf4, 0x0867, - 0xbcf6, 0x1f91, - 0xbcfd, 0x0870, - 0xbda1, 0x0872, - 0xbda2, 0x1f98, - 0xbda8, 0x0879, - 0xbdab, 0x1f9e, - 0xbdad, 0x087e, - 0xbdaf, 0x1fa0, - 0xbdb3, 0x0884, - 0xbdb4, 0x1fa4, - 0xbdb5, 0x0886, - 0xbdba, 0x1fa5, - 0xbdbb, 0x088c, - 0xbdbd, 0x1fa6, - 0xbdc0, 0x0891, - 0xbdc1, 0x1fa9, - 0xbdc5, 0x0896, - 0xbdc8, 0x1fad, - 0xbdcb, 0x089c, - 0xbdce, 0x1fb0, - 0xbdd0, 0x08a1, - 0xbdd7, 0x1fb2, - 0xbdd8, 0x08a9, - 0xbdda, 0x1fb3, - 0xbddb, 0x08ac, - 0xbde0, 0x1fb4, - 0xbde2, 0x08b3, - 0xbdeb, 0x1fb6, - 0xbdec, 0x08bd, - 0xbdf4, 0x1fb7, - 0xbdf9, 0x08ca, - 0xbdfd, 0x1fbc, - 0xbdfe, 0x08cf, - 0xbea1, 0x1fbd, - 0xbea3, 0x08d2, - 0xbea5, 0x1fbf, - 0xbea6, 0x08d5, - 0xbea8, 0x1fc0, - 0xbea9, 0x08d8, - 0xbeaa, 0x1fc1, - 0xbeab, 0x08da, - 0xbead, 0x1fc2, - 0xbeae, 0x08dd, - 0xbeb1, 0x1fc3, - 0xbeb2, 0x08e1, - 0xbeb5, 0x1fc4, - 0xbeb8, 0x08e7, - 0xbeba, 0x1fc7, - 0xbebb, 0x08ea, - 0xbec0, 0x1fc8, - 0xbec1, 0x08f0, - 0xbec9, 0x1fc9, - 0xbeca, 0x08f9, - 0xbed4, 0x1fca, - 0xbed5, 0x0904, - 0xbed9, 0x1fcb, - 0xbeda, 0x0909, - 0xbedd, 0x1fcc, - 0xbede, 0x090d, - 0xbee2, 0x1fcd, - 0xbee3, 0x0912, - 0xbee5, 0x1fce, - 0xbee6, 0x0915, - 0xbee7, 0x1fcf, - 0xbee8, 0x0917, - 0xbee9, 0x1fd0, - 0xbeea, 0x0919, - 0xbeee, 0x1fd1, - 0xbeef, 0x091e, - 0xbef5, 0x1fd2, - 0xbef6, 0x0925, - 0xbef7, 0x1fd3, - 0xbef9, 0x0928, - 0xbefb, 0x1fd5, - 0xbefd, 0x092c, - 0xbfa1, 0x092e, - 0xbfa5, 0x1fd7, - 0xbfa6, 0x0933, - 0xbfaa, 0x1fd8, - 0xbfab, 0x0938, - 0xbfad, 0x1fd9, - 0xbfae, 0x093b, - 0xbfc5, 0x1fda, - 0xbfc6, 0x0953, - 0xbfc7, 0x1fdb, - 0xbfc8, 0x0955, - 0xbfce, 0x1fdc, - 0xbfcf, 0x095c, - 0xbfd1, 0x1fdd, - 0xbfd3, 0x0960, - 0xbfd9, 0x1fdf, - 0xbfda, 0x0967, - 0xbfe2, 0x1fe0, - 0xbfe5, 0x0972, - 0xbfe9, 0x1fe3, - 0xbfea, 0x0977, - 0xbfeb, 0x1fe4, - 0xbfec, 0x0979, - 0xbfed, 0x1fe5, - 0xbfee, 0x097b, - 0xbff3, 0x1fe6, - 0xbff4, 0x0981, - 0xbff5, 0x1fe7, - 0xbff6, 0x0983, - 0xbff7, 0x1fe8, - 0xbff8, 0x0985, - 0xbff9, 0x1fe9, - 0xbffb, 0x0988, - 0xc0a1, 0x1feb, - 0xc0a2, 0x098d, - 0xc0a3, 0x1fec, - 0xc0a4, 0x098f, - 0xc0a9, 0x1fed, - 0xc0aa, 0x0995, - 0xc0ab, 0x1fee, - 0xc0ac, 0x0997, - 0xc0af, 0x1fef, - 0xc0b1, 0x099c, - 0xc0b3, 0x1ff1, - 0xc0b7, 0x09a2, - 0xc0b8, 0x1ff5, - 0xc0c5, 0x09b0, - 0xc0cc, 0x2002, - 0xc0ce, 0x09b9, - 0xc0d4, 0x2004, - 0xc0d5, 0x09c0, - 0xc0d6, 0x2005, - 0xc0d7, 0x09c2, - 0xc0d8, 0x2006, - 0xc0d9, 0x09c4, - 0xc0dd, 0x2007, - 0xc0de, 0x09c9, - 0xc0e0, 0x2008, - 0xc0e1, 0x09cc, - 0xc0e9, 0x2009, - 0xc0ea, 0x09d5, - 0xc0eb, 0x200a, - 0xc0ed, 0x09d8, - 0xc0ef, 0x200c, - 0xc0f2, 0x09dd, - 0xc0f6, 0x200f, - 0xc0fb, 0x09e6, - 0xc1a1, 0x09ea, - 0xc1a4, 0x2014, - 0xc1a6, 0x09ef, - 0xc1a9, 0x2016, - 0xc1ae, 0x09f7, - 0xc1af, 0x201b, - 0xc1b9, 0x0a02, - 0xc1bd, 0x2025, - 0xc1bf, 0x0a08, - 0xc1c2, 0x2027, - 0xc1c3, 0x0a0c, - 0xc1c6, 0x2028, - 0xc1c7, 0x0a10, - 0xc1c9, 0x2029, - 0xc1ca, 0x0a13, - 0xc1cd, 0x202a, - 0xc1ce, 0x0a17, - 0xc1d4, 0x202b, - 0xc1d5, 0x0a1e, - 0xc1d9, 0x202c, - 0xc1dc, 0x0a25, - 0xc1de, 0x202f, - 0xc1df, 0x0a28, - 0xc1e4, 0x2030, - 0xc1e6, 0x0a2f, - 0xc1e9, 0x2032, - 0xc1ea, 0x0a33, - 0xc1eb, 0x2033, - 0xc1ed, 0x0a36, - 0xc1f3, 0x2035, - 0xc1f4, 0x0a3d, - 0xc1f5, 0x2036, - 0xc1f6, 0x0a3f, - 0xc1fa, 0x2037, - 0xc1fe, 0x0a47, - 0xc2a1, 0x0a48, - 0xc2a2, 0x203b, - 0xc2a9, 0x0a50, - 0xc2ab, 0x2042, - 0xc2b4, 0x0a5b, - 0xc2b8, 0x204b, - 0xc2b9, 0x0a60, - 0xc2bc, 0x204c, - 0xc2be, 0x0a65, - 0xc2bf, 0x204e, - 0xc2c0, 0x0a67, - 0xc2c1, 0x204f, - 0xc2c2, 0x0a69, - 0xc2c5, 0x2050, - 0xc2c8, 0x0a6f, - 0xc2cb, 0x2053, - 0xc2d1, 0x0a78, - 0xc2d2, 0x2059, - 0xc2d3, 0x0a7a, - 0xc2d5, 0x205a, - 0xc2dd, 0x0a84, - 0xc2de, 0x2062, - 0xc2e3, 0x0a8a, - 0xc2e6, 0x2067, - 0xc2e9, 0x0a90, - 0xc2ea, 0x206a, - 0xc2ef, 0x0a96, - 0xc2f0, 0x206f, - 0xc2f1, 0x0a98, - 0xc2f2, 0x2070, - 0xc2f6, 0x0a9d, - 0xc2f7, 0x2074, - 0xc2fb, 0x0aa2, - 0xc3a1, 0x2078, - 0xc3a2, 0x0aa7, - 0xc3aa, 0x2079, - 0xc3ab, 0x0ab0, - 0xc3ad, 0x207a, - 0xc3ae, 0x0ab3, - 0xc3b3, 0x207b, - 0xc3b4, 0x1df9, - 0xc3b5, 0x0aba, - 0xc3be, 0x207c, - 0xc3bf, 0x0ac4, - 0xc3c5, 0x207d, - 0xc3c8, 0x0acd, - 0xc3cc, 0x2080, - 0xc3cd, 0x0ad2, - 0xc3ce, 0x2081, - 0xc3cf, 0x0ad4, - 0xc3d5, 0x2082, - 0xc3d7, 0x0adc, - 0xc3d9, 0x2084, - 0xc3da, 0x0adf, - 0xc3e0, 0x2085, - 0xc3e1, 0x0ae6, - 0xc3e5, 0x2086, - 0xc3e6, 0x0aeb, - 0xc3ed, 0x2087, - 0xc3ee, 0x0af3, - 0xc3f0, 0x2088, - 0xc3f1, 0x0af6, - 0xc3f5, 0x2089, - 0xc3f7, 0x0afc, - 0xc3f9, 0x208b, - 0xc3fb, 0x0b00, - 0xc3fd, 0x208d, - 0xc3fe, 0x0b03, - 0xc4a1, 0x0b04, - 0xc4b1, 0x208e, - 0xc4b2, 0x0b15, - 0xc4b6, 0x208f, - 0xc4b7, 0x0b1a, - 0xc4c6, 0x2090, - 0xc4c7, 0x0b2a, - 0xc4c9, 0x2091, - 0xc4ca, 0x0b2d, - 0xc4d1, 0x2092, - 0xc4d2, 0x0b35, - 0xc4d3, 0x2093, - 0xc4d7, 0x0b3a, - 0xc4d9, 0x2097, - 0xc4da, 0x0b3d, - 0xc4e2, 0x2098, - 0xc4e3, 0x0b46, - 0xc4e5, 0x2099, - 0xc4e6, 0x0b49, - 0xc4ec, 0x209a, - 0xc4ed, 0x0b50, - 0xc4f0, 0x209b, - 0xc4f2, 0x0b55, - 0xc4f4, 0x209d, - 0xc4f5, 0x0b58, - 0xc4f6, 0x209e, - 0xc4f9, 0x0b5c, - 0xc4fb, 0x20a1, - 0xc4fd, 0x0b60, - 0xc4fe, 0x20a3, - 0xc5a1, 0x20a4, - 0xc5a3, 0x0b64, - 0xc5a5, 0x20a6, - 0xc5aa, 0x0b6b, - 0xc5b1, 0x20ab, - 0xc5b2, 0x0b73, - 0xc5b5, 0x20ac, - 0xc5b6, 0x0b77, - 0xc5b7, 0x20ad, - 0xc5ba, 0x0b7b, - 0xc5bb, 0x20b0, - 0xc5bc, 0x0b7d, - 0xc5bd, 0x20b1, - 0xc5be, 0x0b7f, - 0xc5cc, 0x20b2, - 0xc5cd, 0x0b8e, - 0xc5d3, 0x20b3, - 0xc5d4, 0x0b95, - 0xc5e2, 0x20b4, - 0xc5e3, 0x0ba4, - 0xc5e7, 0x20b5, - 0xc5e8, 0x0ba9, - 0xc5f4, 0x20b6, - 0xc5f5, 0x0bb6, - 0xc6a1, 0x0bc0, - 0xc6ad, 0x20b7, - 0xc6af, 0x0bce, - 0xc6b5, 0x20b9, - 0xc6b7, 0x0bd6, - 0xc6bb, 0x20bb, - 0xc6bc, 0x0bdb, - 0xc6be, 0x20bc, - 0xc6bf, 0x0bde, - 0xc6c0, 0x20bd, - 0xc6c1, 0x0be0, - 0xc6c3, 0x20be, - 0xc6c5, 0x0be4, - 0xc6cb, 0x20c0, - 0xc6ce, 0x0bed, - 0xc6d3, 0x20c3, - 0xc6d4, 0x0bf3, - 0xc6d7, 0x20c4, - 0xc6d8, 0x0bf7, - 0xc6ea, 0x20c5, - 0xc6ec, 0x0c0b, - 0xc6ef, 0x20c7, - 0xc6f0, 0x0c0f, - 0xc6f1, 0x20c8, - 0xc6f2, 0x0c11, - 0xc6f4, 0x20c9, - 0xc6f5, 0x0c14, - 0xc6f8, 0x20ca, - 0xc6f9, 0x0c18, - 0xc6fd, 0x20cb, - 0xc6fe, 0x0c1d, - 0xc7a1, 0x0c1e, - 0xc7a3, 0x20cc, - 0xc7a4, 0x0c21, - 0xc7a5, 0x20cd, - 0xc7a7, 0x0c24, - 0xc7a8, 0x20cf, - 0xc7aa, 0x0c27, - 0xc7ab, 0x20d1, - 0xc7ac, 0x0c29, - 0xc7ae, 0x20d2, - 0xc7b0, 0x0c2d, - 0xc7b3, 0x20d4, - 0xc7b6, 0x0c33, - 0xc7b9, 0x20d7, - 0xc7bb, 0x0c38, - 0xc7bd, 0x20d9, - 0xc7bf, 0x0c3c, - 0xc7c0, 0x20db, - 0xc7c1, 0x0c3e, - 0xc7c2, 0x20dc, - 0xc7c3, 0x0c40, - 0xc7c5, 0x20dd, - 0xc7c6, 0x0c43, - 0xc7c7, 0x20de, - 0xc7c9, 0x0c46, - 0xc7cc, 0x20e0, - 0xc7cd, 0x0c4a, - 0xc7cf, 0x20e1, - 0xc7d0, 0x0c4d, - 0xc7d4, 0x20e2, - 0xc7d6, 0x0c53, - 0xc7d7, 0x20e4, - 0xc7d8, 0x0c55, - 0xc7de, 0x20e5, - 0xc7df, 0x0c5c, - 0xc7e1, 0x20e6, - 0xc7e4, 0x0c61, - 0xc7ea, 0x20e9, - 0xc7ef, 0x0c6c, - 0xc7f7, 0x20ee, - 0xc7f9, 0x0c76, - 0xc7fb, 0x20f0, - 0xc7fc, 0x0c79, - 0xc7fd, 0x20f1, - 0xc7fe, 0x0c7b, - 0xc8a1, 0x0c7c, - 0xc8a3, 0x20f2, - 0xc8a4, 0x0c7f, - 0xc8a7, 0x20f3, - 0xc8a9, 0x0c84, - 0xc8b0, 0x20f5, - 0xc8b1, 0x0c8c, - 0xc8b5, 0x20f6, - 0xc8b6, 0x0c91, - 0xc8b7, 0x20f7, - 0xc8b8, 0x0c93, - 0xc8c3, 0x20f8, - 0xc8c7, 0x0ca2, - 0xc8c8, 0x20fc, - 0xc8c9, 0x0ca4, - 0xc8cd, 0x20fd, - 0xc8ce, 0x0ca9, - 0xc8cf, 0x20fe, - 0xc8d0, 0x0cab, - 0xc8d2, 0x20ff, - 0xc8d3, 0x0cae, - 0xc8d9, 0x2100, - 0xc8da, 0x0cb5, - 0xc8de, 0x2101, - 0xc8df, 0x0cba, - 0xc8ed, 0x2102, - 0xc8ee, 0x0cc9, - 0xc8f1, 0x2103, - 0xc8f4, 0x0ccf, - 0xc8f7, 0x2106, - 0xc8f9, 0x0cd4, - 0xc8fa, 0x2108, - 0xc8fb, 0x0cd6, - 0xc8fc, 0x2109, - 0xc8fd, 0x0cd8, - 0xc9a1, 0x210a, - 0xc9a2, 0x0cdb, - 0xc9a5, 0x210b, - 0xc9a6, 0x0cdf, - 0xc9a7, 0x210c, - 0xc9a9, 0x0ce2, - 0xc9ac, 0x210e, - 0xc9ad, 0x0ce6, - 0xc9b1, 0x210f, - 0xc9b2, 0x0ceb, - 0xc9b4, 0x2110, - 0xc9b5, 0x0cee, - 0xc9b8, 0x2111, - 0xc9ba, 0x0cf3, - 0xc9c1, 0x2113, - 0xc9c3, 0x0cfc, - 0xc9c4, 0x2115, - 0xc9c5, 0x0cfe, - 0xc9c9, 0x2116, - 0xc9ca, 0x0d03, - 0xc9cb, 0x2117, - 0xc9cc, 0x0d05, - 0xc9cd, 0x2118, - 0xc9ce, 0x0d07, - 0xc9d5, 0x2119, - 0xc9d6, 0x0d0f, - 0xc9dc, 0x211a, - 0xc9dd, 0x0d16, - 0xc9de, 0x211b, - 0xc9df, 0x0d18, - 0xc9e1, 0x211c, - 0xc9e2, 0x0d1b, - 0xc9e3, 0x211d, - 0xc9e4, 0x0d1d, - 0xc9e5, 0x211e, - 0xc9e6, 0x0d1f, - 0xc9e8, 0x211f, - 0xc9e9, 0x0d22, - 0xc9f0, 0x2120, - 0xc9f1, 0x0d2a, - 0xc9f3, 0x2121, - 0xc9f5, 0x0d2e, - 0xc9f6, 0x2123, - 0xc9f7, 0x0d30, - 0xc9f8, 0x2124, - 0xc9fa, 0x0d33, - 0xc9fe, 0x2126, - 0xcaa1, 0x0d38, - 0xcaa4, 0x2127, - 0xcaa7, 0x0d3e, - 0xcaa8, 0x212a, - 0xcaa9, 0x0d40, - 0xcaaa, 0x212b, - 0xcaac, 0x0d43, - 0xcab1, 0x212d, - 0xcab2, 0x0d49, - 0xcab4, 0x212e, - 0xcab7, 0x0d4e, - 0xcabb, 0x2131, - 0xcabc, 0x0d53, - 0xcac6, 0x2132, - 0xcac7, 0x0d5e, - 0xcaca, 0x2133, - 0xcacb, 0x0d62, - 0xcacd, 0x2134, - 0xcacf, 0x0d66, - 0xcad3, 0x2136, - 0xcad5, 0x0d6c, - 0xcad9, 0x2138, - 0xcada, 0x0d71, - 0xcade, 0x2139, - 0xcadf, 0x0d76, - 0xcae0, 0x213a, - 0xcae1, 0x0d78, - 0xcae4, 0x213b, - 0xcae5, 0x0d7c, - 0xcae9, 0x213c, - 0xcaeb, 0x0d82, - 0xcaf4, 0x213e, - 0xcaf6, 0x0d8d, - 0xcaf7, 0x2140, - 0xcaf8, 0x0d8f, - 0xcafa, 0x2141, - 0xcafb, 0x0d92, - 0xcafd, 0x2142, - 0xcafe, 0x0d95, - 0xcba1, 0x0d96, - 0xcba7, 0x2143, - 0xcba8, 0x0d9d, - 0xcbab, 0x2144, - 0xcbac, 0x0da1, - 0xcbad, 0x2145, - 0xcbae, 0x0da3, - 0xcbb3, 0x2146, - 0xcbb4, 0x0da9, - 0xcbb5, 0x2147, - 0xcbb7, 0x0dac, - 0xcbb8, 0x2149, - 0xcbb9, 0x0dae, - 0xcbbf, 0x214a, - 0xcbc0, 0x0db5, - 0xcbc7, 0x214b, - 0xcbc8, 0x0dbd, - 0xcbc9, 0x214c, - 0xcbcd, 0x0dc2, - 0xcbcf, 0x2150, - 0xcbd1, 0x0dc6, - 0xcbd3, 0x2152, - 0xcbd4, 0x0dc9, - 0xcbd5, 0x2153, - 0xcbd6, 0x0dcb, - 0xcbdf, 0x2154, - 0xcbe1, 0x0dd6, - 0xcbe4, 0x2156, - 0xcbe5, 0x0dda, - 0xcbe6, 0x2157, - 0xcbe8, 0x0ddd, - 0xcbea, 0x2159, - 0xcbeb, 0x0de0, - 0xcbef, 0x215a, - 0xcbf1, 0x0de6, - 0xcbf5, 0x215c, - 0xcbf7, 0x0dec, - 0xcbf8, 0x215e, - 0xcbf9, 0x0dee, - 0xcca1, 0x215f, - 0xcca3, 0x0df6, - 0xcca8, 0x2161, - 0xcca9, 0x0dfc, - 0xccac, 0x2162, - 0xccad, 0x0e00, - 0xccaf, 0x2163, - 0xccb4, 0x0e07, - 0xccb7, 0x2168, - 0xccb9, 0x0e0c, - 0xccbe, 0x216a, - 0xccbf, 0x0e12, - 0xccc0, 0x216b, - 0xccc1, 0x0e14, - 0xcccc, 0x216c, - 0xcccd, 0x0e20, - 0xccce, 0x216d, - 0xcccf, 0x0e22, - 0xccd0, 0x216e, - 0xccd1, 0x0e24, - 0xccd6, 0x216f, - 0xccd7, 0x0e2a, - 0xccda, 0x2170, - 0xccdb, 0x0e2e, - 0xccdc, 0x2171, - 0xccdd, 0x0e30, - 0xcce0, 0x2172, - 0xcce1, 0x0e34, - 0xcce2, 0x2173, - 0xcce3, 0x0e36, - 0xcce5, 0x2174, - 0xcce6, 0x0e39, - 0xccf5, 0x2175, - 0xccf6, 0x0e49, - 0xccf9, 0x2176, - 0xccfb, 0x0e4e, - 0xccfc, 0x2178, - 0xcda1, 0x0e52, - 0xcdad, 0x217b, - 0xcdae, 0x0e5f, - 0xcdb3, 0x217c, - 0xcdb4, 0x0e65, - 0xcdb7, 0x217d, - 0xcdb8, 0x0e69, - 0xcdbc, 0x217e, - 0xcdbd, 0x0e6e, - 0xcdbf, 0x217f, - 0xcdc0, 0x0e71, - 0xcdc5, 0x2180, - 0xcdc6, 0x0e77, - 0xcdc7, 0x2181, - 0xcdc8, 0x0e79, - 0xcdd2, 0x2182, - 0xcdd3, 0x0e84, - 0xcdd4, 0x2183, - 0xcdd7, 0x0e88, - 0xcddd, 0x2186, - 0xcdde, 0x0e8f, - 0xcde0, 0x2187, - 0xcde1, 0x0e92, - 0xcde4, 0x2188, - 0xcde6, 0x0e97, - 0xcde7, 0x218a, - 0xcde8, 0x0e99, - 0xcdf2, 0x218b, - 0xcdf3, 0x0ea4, - 0xcdf8, 0x218c, - 0xcdf9, 0x0eaa, - 0xcea1, 0x0eb0, - 0xcea4, 0x218d, - 0xcea6, 0x0eb5, - 0xcea7, 0x218f, - 0xcea8, 0x0eb7, - 0xceaa, 0x2190, - 0xceae, 0x0ebd, - 0xceb0, 0x2194, - 0xceb2, 0x0ec1, - 0xceb3, 0x2196, - 0xceb4, 0x0ec3, - 0xcebd, 0x2197, - 0xcebe, 0x0ecd, - 0xcec0, 0x2198, - 0xcec1, 0x0ed0, - 0xcec5, 0x2199, - 0xcec7, 0x0ed6, - 0xcec8, 0x219b, - 0xcec9, 0x0ed8, - 0xceca, 0x219c, - 0xcecb, 0x0eda, - 0xcece, 0x219d, - 0xced2, 0x0ee1, - 0xced8, 0x21a1, - 0xcedb, 0x0eea, - 0xcedc, 0x21a4, - 0xcedd, 0x0eec, - 0xcede, 0x21a5, - 0xcee0, 0x0eef, - 0xceeb, 0x21a7, - 0xceec, 0x0efb, - 0xceed, 0x21a8, - 0xceee, 0x0efd, - 0xcef1, 0x21a9, - 0xcef2, 0x0f01, - 0xcef3, 0x21aa, - 0xcef4, 0x0f03, - 0xcefd, 0x21ab, - 0xcfa1, 0x0f0e, - 0xcfae, 0x21ad, - 0xcfaf, 0x0f1c, - 0xcfb0, 0x21ae, - 0xcfb1, 0x0f1e, - 0xcfb3, 0x21af, - 0xcfb4, 0x0f21, - 0xcfb7, 0x21b0, - 0xcfb9, 0x0f26, - 0xcfba, 0x21b2, - 0xcfbb, 0x0f28, - 0xcfbd, 0x21b3, - 0xcfbe, 0x0f2b, - 0xcfbf, 0x21b4, - 0xcfc2, 0x0f2f, - 0xcfc5, 0x21b7, - 0xcfc6, 0x0f33, - 0xcfc7, 0x21b8, - 0xcfc8, 0x0f35, - 0xcfca, 0x21b9, - 0xcfcc, 0x0f39, - 0xcfcd, 0x21bb, - 0xcfcf, 0x0f3c, - 0xcfd0, 0x21bd, - 0xcfd1, 0x0f3e, - 0xcfd4, 0x21be, - 0xcfd9, 0x0f46, - 0xcfda, 0x21c3, - 0xcfdb, 0x0f48, - 0xcfdc, 0x21c4, - 0xcfdd, 0x0f4a, - 0xcfdf, 0x21c5, - 0xcfe0, 0x0f4d, - 0xcfe2, 0x21c6, - 0xcfe3, 0x0f50, - 0xcfe7, 0x21c7, - 0xcfe8, 0x0f55, - 0xcfea, 0x21c8, - 0xcfeb, 0x0f58, - 0xcfec, 0x21c9, - 0xcfed, 0x0f5a, - 0xcfee, 0x21ca, - 0xcfef, 0x0f5c, - 0xcff4, 0x21cb, - 0xcff5, 0x0f62, - 0xcff9, 0x21cc, - 0xcffb, 0x0f68, - 0xcffe, 0x21ce, - 0xd0a1, 0x0f6c, - 0xd0a5, 0x21cf, - 0xd0a6, 0x0f71, - 0xd0ad, 0x21d0, - 0xd0af, 0x0f7a, - 0xd0b2, 0x21d2, - 0xd0b5, 0x0f80, - 0xd0ba, 0x21d5, - 0xd0bc, 0x0f87, - 0xd0bf, 0x21d7, - 0xd0c0, 0x0f8b, - 0xd0c6, 0x21d8, - 0xd0c7, 0x0f92, - 0xd0cb, 0x21d9, - 0xd0cc, 0x0f97, - 0xd0e2, 0x21da, - 0xd0e3, 0x0fae, - 0xd0e5, 0x21db, - 0xd0e6, 0x0fb1, - 0xd0eb, 0x21dc, - 0xd0ec, 0x0fb7, - 0xd0ed, 0x21dd, - 0xd0ee, 0x0fb9, - 0xd0f7, 0x21de, - 0xd0fa, 0x0fc5, - 0xd0fc, 0x21e1, - 0xd0fd, 0x0fc8, - 0xd1a1, 0x21e2, - 0xd1a3, 0x0fcc, - 0xd1a4, 0x21e4, - 0xd1a5, 0x0fce, - 0xd1a7, 0x21e5, - 0xd1a8, 0x0fd1, - 0xd1ab, 0x21e6, - 0xd1ac, 0x0fd5, - 0xd1af, 0x21e7, - 0xd1b2, 0x0fdb, - 0xd1b5, 0x21ea, - 0xd1b8, 0x0fe1, - 0xd1b9, 0x21ed, - 0xd1ba, 0x0fe3, - 0xd1bb, 0x21ee, - 0xd1bd, 0x0fe6, - 0xd1c6, 0x21f0, - 0xd1c9, 0x0ff2, - 0xd1cb, 0x21f3, - 0xd1cc, 0x0ff5, - 0xd1ce, 0x21f4, - 0xd1d0, 0x0ff9, - 0xd1d5, 0x21f6, - 0xd1d7, 0x1000, - 0xd1de, 0x21f8, - 0xd1df, 0x1008, - 0xd1e1, 0x21f9, - 0xd1e3, 0x100c, - 0xd1e8, 0x21fb, - 0xd1ea, 0x1013, - 0xd1ec, 0x21fd, - 0xd1ed, 0x1016, - 0xd1ee, 0x21fe, - 0xd1f0, 0x1019, - 0xd1f1, 0x2200, - 0xd1f2, 0x101b, - 0xd1f4, 0x2201, - 0xd1f5, 0x101e, - 0xd1f7, 0x2202, - 0xd1fa, 0x1023, - 0xd2a1, 0x1028, - 0xd2a2, 0x2205, - 0xd2a3, 0x102a, - 0xd2a5, 0x2206, - 0xd2a6, 0x102d, - 0xd2a9, 0x2207, - 0xd2aa, 0x1031, - 0xd2af, 0x2208, - 0xd2b0, 0x1037, - 0xd2b3, 0x2209, - 0xd2b4, 0x103b, - 0xd2b5, 0x220a, - 0xd2b7, 0x103e, - 0xd2bd, 0x220c, - 0xd2be, 0x1045, - 0xd2bf, 0x220d, - 0xd2c0, 0x1047, - 0xd2c3, 0x220e, - 0xd2c4, 0x104b, - 0xd2c5, 0x220f, - 0xd2c6, 0x104d, - 0xd2c7, 0x2210, - 0xd2c8, 0x104f, - 0xd2cf, 0x2211, - 0xd2d0, 0x1057, - 0xd2d5, 0x2212, - 0xd2d6, 0x105d, - 0xd2da, 0x2213, - 0xd2db, 0x1062, - 0xd2e4, 0x2214, - 0xd2e6, 0x106d, - 0xd2e8, 0x2216, - 0xd2ec, 0x1073, - 0xd2ef, 0x221a, - 0xd2f0, 0x1077, - 0xd2f1, 0x221b, - 0xd2f2, 0x1079, - 0xd2f5, 0x221c, - 0xd2f6, 0x107d, - 0xd2f8, 0x221d, - 0xd2f9, 0x1080, - 0xd2fb, 0x221e, - 0xd2fc, 0x1083, - 0xd2fe, 0x221f, - 0xd3a1, 0x1086, - 0xd3a3, 0x2220, - 0xd3ad, 0x1092, - 0xd3ae, 0x222a, - 0xd3af, 0x1094, - 0xd3b1, 0x222b, - 0xd3b2, 0x1097, - 0xd3b4, 0x222c, - 0xd3b7, 0x109c, - 0xd3b8, 0x222f, - 0xd3b9, 0x109e, - 0xd3bb, 0x2230, - 0xd3bc, 0x10a1, - 0xd3c5, 0x2231, - 0xd3c6, 0x10ab, - 0xd3c7, 0x2232, - 0xd3c8, 0x10ad, - 0xd3ca, 0x2233, - 0xd3cd, 0x10b2, - 0xd3d5, 0x2236, - 0xd3d6, 0x10bb, - 0xd3df, 0x2237, - 0xd3e1, 0x10c6, - 0xd3e3, 0x2239, - 0xd3e4, 0x10c9, - 0xd3e6, 0x223a, - 0xd3e7, 0x10cc, - 0xd3eb, 0x223b, - 0xd3ed, 0x10d2, - 0xd3ef, 0x223d, - 0xd3f0, 0x10d5, - 0xd3f4, 0x223e, - 0xd3f5, 0x10da, - 0xd3fc, 0x223f, - 0xd3fd, 0x10e2, - 0xd3fe, 0x2240, - 0xd4a1, 0x10e4, - 0xd4a4, 0x2241, - 0xd4a5, 0x10e8, - 0xd4a6, 0x2242, - 0xd4a9, 0x10ec, - 0xd4af, 0x2245, - 0xd4b3, 0x10f6, - 0xd4b5, 0x2249, - 0xd4b7, 0x10fa, - 0xd4b8, 0x224b, - 0xd4b9, 0x10fc, - 0xd4bc, 0x224c, - 0xd4bd, 0x1100, - 0xd4be, 0x224d, - 0xd4c0, 0x1103, - 0xd4c4, 0x224f, - 0xd4c5, 0x1108, - 0xd4c6, 0x2250, - 0xd4c8, 0x110b, - 0xd4c9, 0x2252, - 0xd4ca, 0x110d, - 0xd4cb, 0x2253, - 0xd4cf, 0x1112, - 0xd4d3, 0x2257, - 0xd4d4, 0x1117, - 0xd4d8, 0x2258, - 0xd4d9, 0x111c, - 0xd4dc, 0x2259, - 0xd4e1, 0x1124, - 0xd4e4, 0x225e, - 0xd4e5, 0x1128, - 0xd4e6, 0x225f, - 0xd4e7, 0x112a, - 0xd4ee, 0x2260, - 0xd4ef, 0x1132, - 0xd4f0, 0x2261, - 0xd4f5, 0x1138, - 0xd4f9, 0x2266, - 0xd4fa, 0x113d, - 0xd4fe, 0x2267, - 0xd5a1, 0x2268, - 0xd5a3, 0x1144, - 0xd5a9, 0x226a, - 0xd5aa, 0x114b, - 0xd5ab, 0x226b, - 0xd5ac, 0x114d, - 0xd5ae, 0x226c, - 0xd5af, 0x1150, - 0xd5b1, 0x226d, - 0xd5b2, 0x1153, - 0xd5b5, 0x226e, - 0xd5b9, 0x115a, - 0xd5bb, 0x2272, - 0xd5bc, 0x115d, - 0xd5bd, 0x2273, - 0xd5be, 0x115f, - 0xd5c0, 0x2274, - 0xd5c1, 0x1162, - 0xd5c5, 0x2275, - 0xd5c6, 0x1167, - 0xd5c7, 0x2276, - 0xd5c8, 0x1169, - 0xd5ca, 0x2277, - 0xd5cc, 0x116d, - 0xd5cd, 0x2279, - 0xd5ce, 0x116f, - 0xd5d4, 0x227a, - 0xd5d5, 0x1176, - 0xd5dd, 0x227b, - 0xd5df, 0x1180, - 0xd5e0, 0x227d, - 0xd5e1, 0x1182, - 0xd5e2, 0x227e, - 0xd5e3, 0x1184, - 0xd5ea, 0x227f, - 0xd5ed, 0x118e, - 0xd5ef, 0x2282, - 0xd5f0, 0x1191, - 0xd5f2, 0x2283, - 0xd5f4, 0x1195, - 0xd5f7, 0x15eb, - 0xd5f8, 0x1199, - 0xd6a1, 0x2285, - 0xd6a5, 0x11a4, - 0xd6af, 0x2289, - 0xd6b1, 0x11b0, - 0xd6b4, 0x228b, - 0xd6b5, 0x11b4, - 0xd6bb, 0x228c, - 0xd6bc, 0x11bb, - 0xd6bd, 0x228d, - 0xd6be, 0x11bd, - 0xd6bf, 0x228e, - 0xd6c1, 0x11c0, - 0xd6c4, 0x2290, - 0xd6c5, 0x11c4, - 0xd6ca, 0x2291, - 0xd6cb, 0x11ca, - 0xd6cd, 0x2292, - 0xd6ce, 0x11cd, - 0xd6d3, 0x2293, - 0xd6d4, 0x11d3, - 0xd6d5, 0x2294, - 0xd6d8, 0x11d7, - 0xd6da, 0x2297, - 0xd6db, 0x11da, - 0xd6df, 0x2298, - 0xd6e0, 0x11df, - 0xd6e1, 0x2299, - 0xd6e2, 0x11e1, - 0xd6e5, 0x229a, - 0xd6e6, 0x11e5, - 0xd6e7, 0x229b, - 0xd6e9, 0x11e8, - 0xd6ee, 0x229d, - 0xd6f0, 0x11ef, - 0xd6f2, 0x229f, - 0xd6f3, 0x11f2, - 0xd6f5, 0x22a0, - 0xd6f7, 0x11f6, - 0xd6fc, 0x22a2, - 0xd7a1, 0x11fe, - 0xd7a4, 0x22a5, - 0xd7a5, 0x1202, - 0xd7a8, 0x22a6, - 0xd7ab, 0x1208, - 0xd7ac, 0x22a9, - 0xd7ad, 0x120a, - 0xd7ae, 0x22aa, - 0xd7b2, 0x120f, - 0xd7b3, 0x22ae, - 0xd7b5, 0x1212, - 0xd7b6, 0x22b0, - 0xd7b7, 0x1214, - 0xd7b8, 0x22b1, - 0xd7bd, 0x121a, - 0xd7c7, 0x22b6, - 0xd7c8, 0x1225, - 0xd7ca, 0x22b7, - 0xd7cb, 0x1228, - 0xd7d5, 0x22b8, - 0xd7d6, 0x1233, - 0xd7db, 0x22b9, - 0xd7df, 0x123c, - 0xd7e7, 0x22bd, - 0xd7e8, 0x1245, - 0xd7e9, 0x22be, - 0xd7eb, 0x1248, - 0xd8a1, 0x1257, - 0xd8c4, 0x22c0, - 0xd8c5, 0x127b, - 0xd8c7, 0x22c1, - 0xd8c8, 0x127e, - 0xd8c9, 0x22c2, - 0xd8ca, 0x1280, - 0xd8cc, 0x22c3, - 0xd8ce, 0x1284, - 0xd8d0, 0x22c5, - 0xd8d2, 0x1288, - 0xd8d3, 0x22c7, - 0xd8d4, 0x128a, - 0xd8d9, 0x22c8, - 0xd8da, 0x1290, - 0xd8db, 0x22c9, - 0xd8dd, 0x1293, - 0xd8f1, 0x22cb, - 0xd8f2, 0x12a8, - 0xd8f6, 0x22cc, - 0xd8f8, 0x12ae, - 0xd9a1, 0x12b5, - 0xd9ad, 0x22ce, - 0xd9ae, 0x12c2, - 0xd9af, 0x22cf, - 0xd9b0, 0x12c4, - 0xd9b1, 0x22d0, - 0xd9b4, 0x12c8, - 0xd9c7, 0x22d3, - 0xd9c8, 0x12dc, - 0xd9cd, 0x22d4, - 0xd9d1, 0x12e5, - 0xd9dd, 0x22d8, - 0xd9de, 0x12f2, - 0xd9e1, 0x22d9, - 0xd9e2, 0x12f6, - 0xd9e4, 0x22da, - 0xd9e5, 0x12f9, - 0xd9e6, 0x22db, - 0xd9e7, 0x12fb, - 0xd9ec, 0x22dc, - 0xd9ed, 0x1301, - 0xd9f4, 0x22dd, - 0xd9f6, 0x130a, - 0xdaa1, 0x1313, - 0xdaa5, 0x22df, - 0xdae0, 0x1352, - 0xdaea, 0x231a, - 0xdaeb, 0x135d, - 0xdaf7, 0x231b, - 0xdaf8, 0x136a, - 0xdaf9, 0x231c, - 0xdafa, 0x136c, - 0xdafe, 0x231d, - 0xdba1, 0x1371, - 0xdba3, 0x231e, - 0xdba4, 0x1374, - 0xdba6, 0x231f, - 0xdba7, 0x1377, - 0xdba9, 0x2320, - 0xdbab, 0x137b, - 0xdbbb, 0x2322, - 0xdbbc, 0x138c, - 0xdbbd, 0x2323, - 0xdbbe, 0x138e, - 0xdbcf, 0x2324, - 0xdbd0, 0x13a0, - 0xdbd1, 0x2325, - 0xdbd2, 0x13a2, - 0xdbdb, 0x2326, - 0xdbdc, 0x13ac, - 0xdbde, 0x2327, - 0xdbdf, 0x13af, - 0xdbe2, 0x2328, - 0xdbe3, 0x13b3, - 0xdbe4, 0x2329, - 0xdbe5, 0x13b5, - 0xdbeb, 0x232a, - 0xdbec, 0x13bc, - 0xdbee, 0x232b, - 0xdbef, 0x13bf, - 0xdbf1, 0x232c, - 0xdbf2, 0x13c2, - 0xdbf5, 0x232d, - 0xdbf8, 0x13c8, - 0xdca1, 0x13cf, - 0xdcbc, 0x2330, - 0xdcbd, 0x13eb, - 0xdcbf, 0x2331, - 0xdcc0, 0x13ee, - 0xdcc2, 0x2332, - 0xdcc3, 0x13f1, - 0xdcc8, 0x2333, - 0xdccb, 0x13f9, - 0xdcd1, 0x2336, - 0xdcd2, 0x1400, - 0xdcd7, 0x2337, - 0xdcd8, 0x1406, - 0xdce0, 0x2338, - 0xdce1, 0x140f, - 0xdce3, 0x2339, - 0xdce5, 0x1413, - 0xdce9, 0x233b, - 0xdceb, 0x1419, - 0xdcf1, 0x233d, - 0xdcf2, 0x1420, - 0xdcf6, 0x233e, - 0xdcf7, 0x1425, - 0xdcf9, 0x233f, - 0xdcfa, 0x1428, - 0xdcfd, 0x2340, - 0xdda1, 0x2342, - 0xdda2, 0x142e, - 0xdda3, 0x2343, - 0xdda8, 0x1434, - 0xddaa, 0x2348, - 0xddac, 0x1438, - 0xddb2, 0x234a, - 0xddb3, 0x143f, - 0xddb5, 0x234b, - 0xddb6, 0x1442, - 0xddba, 0x234c, - 0xddbc, 0x1448, - 0xddd3, 0x234e, - 0xddd4, 0x1460, - 0xdddb, 0x234f, - 0xdddc, 0x1468, - 0xddde, 0x2350, - 0xdddf, 0x146b, - 0xdde4, 0x2351, - 0xdde5, 0x1471, - 0xddeb, 0x2352, - 0xddec, 0x1478, - 0xddf1, 0x2353, - 0xddf2, 0x147e, - 0xddf6, 0x2354, - 0xddf8, 0x1484, - 0xddfc, 0x2356, - 0xddfd, 0x1489, - 0xddfe, 0x2357, - 0xdea1, 0x148b, - 0xdead, 0x2358, - 0xdeae, 0x1498, - 0xdeb4, 0x2359, - 0xdeb5, 0x149f, - 0xdeba, 0x235a, - 0xdebb, 0x14a5, - 0xdec6, 0x235b, - 0xdec7, 0x14b1, - 0xdecf, 0x235c, - 0xded0, 0x14ba, - 0xded1, 0x235d, - 0xded3, 0x14bd, - 0xded8, 0x235f, - 0xded9, 0x14c3, - 0xdee2, 0x2360, - 0xdee3, 0x14cd, - 0xdee8, 0x2361, - 0xdee9, 0x14d3, - 0xdeec, 0x2362, - 0xdeed, 0x14d7, - 0xdef3, 0x2363, - 0xdef4, 0x14de, - 0xdefc, 0x2364, - 0xdefd, 0x14e7, - 0xdfa1, 0x14e9, - 0xdfa2, 0x2365, - 0xdfa4, 0x14ec, - 0xdfa5, 0x2367, - 0xdfa6, 0x14ee, - 0xdfb4, 0x2368, - 0xdfb5, 0x14fd, - 0xdfbc, 0x2369, - 0xdfbe, 0x1506, - 0xdfbf, 0x236b, - 0xdfc0, 0x1508, - 0xdfc2, 0x236c, - 0xdfc4, 0x150c, - 0xdfcc, 0x236e, - 0xdfcd, 0x1515, - 0xdfd0, 0x236f, - 0xdfd1, 0x1519, - 0xdfd5, 0x2370, - 0xdfd6, 0x151e, - 0xdfd8, 0x2371, - 0xdfda, 0x1522, - 0xdfdc, 0x2373, - 0xdfdd, 0x1525, - 0xdfe0, 0x2374, - 0xdfe1, 0x1529, - 0xdfe2, 0x2375, - 0xdfe3, 0x152b, - 0xdfe6, 0x2376, - 0xdfe7, 0x152f, - 0xdfe9, 0x2377, - 0xdfea, 0x1532, - 0xdfeb, 0x2378, - 0xdfec, 0x1534, - 0xdfef, 0x2379, - 0xdff0, 0x1538, - 0xdff5, 0x237a, - 0xdff6, 0x153e, - 0xdff9, 0x237b, - 0xdffa, 0x1542, - 0xe0a1, 0x1547, - 0xe0b6, 0x237c, - 0xe0b8, 0x155e, - 0xe0bf, 0x237e, - 0xe0c0, 0x1566, - 0xe0c8, 0x237f, - 0xe0c9, 0x156f, - 0xe0ce, 0x2380, - 0xe0cf, 0x1575, - 0xe0d3, 0x2381, - 0xe0d4, 0x157a, - 0xe0e0, 0x2382, - 0xe0e1, 0x1587, - 0xe0f0, 0x2383, - 0xe0f1, 0x1597, - 0xe0f8, 0x2384, - 0xe0f9, 0x159f, - 0xe0fc, 0x2385, - 0xe1a1, 0x15a5, - 0xe1ab, 0x2388, - 0xe1ac, 0x15b0, - 0xe1ad, 0x2389, - 0xe1ae, 0x15b2, - 0xe1b0, 0x238a, - 0xe1b1, 0x15b5, - 0xe1b4, 0x238b, - 0xe1b5, 0x15b9, - 0xe1bb, 0x238c, - 0xe1bc, 0x15c0, - 0xe1bd, 0x238d, - 0xe1be, 0x15c2, - 0xe1c0, 0x238e, - 0xe1c2, 0x15c6, - 0xe1c9, 0x2390, - 0xe1ca, 0x15ce, - 0xe1d0, 0x2391, - 0xe1d1, 0x15d5, - 0xe1db, 0x2392, - 0xe1dc, 0x15e0, - 0xe1e1, 0x07aa, - 0xe1e2, 0x2393, - 0xe1e3, 0x15e7, - 0xe1e7, 0x1198, - 0xe1e8, 0x15ec, - 0xe1ee, 0x2394, - 0xe1f0, 0x15f4, - 0xe1f6, 0x2396, - 0xe1f7, 0x15fb, - 0xe1f8, 0x2397, - 0xe1f9, 0x15fd, - 0xe1fd, 0x2398, - 0xe1fe, 0x1602, - 0xe2a1, 0x1603, - 0xe2a4, 0x2399, - 0xe2a5, 0x1607, - 0xe2a8, 0x239a, - 0xe2a9, 0x160b, - 0xe2bb, 0x239b, - 0xe2c5, 0x10c5, - 0xe2c6, 0x23a5, - 0xe2cf, 0x1631, - 0xe2d0, 0x23ae, - 0xe2d1, 0x1633, - 0xe2d9, 0x23af, - 0xe2da, 0x163c, - 0xe2e3, 0x23b0, - 0xe2e5, 0x1647, - 0xe2e6, 0x23b2, - 0xe2e7, 0x1649, - 0xe2e9, 0x23b3, - 0xe2ec, 0x164e, - 0xe2f8, 0x23b6, - 0xe2f9, 0x165b, - 0xe2fa, 0x23b7, - 0xe2fe, 0x1660, - 0xe3a1, 0x1661, - 0xe3a2, 0x23bb, - 0xe3a3, 0x1663, - 0xe3a5, 0x23bc, - 0xe3a6, 0x1666, - 0xe3ab, 0x23bd, - 0xe3ac, 0x166c, - 0xe3b4, 0x23be, - 0xe3b5, 0x1675, - 0xe3c5, 0x23bf, - 0xe3dc, 0x169c, - 0xe3e3, 0x23d6, - 0xe3e4, 0x16a4, - 0xe3ed, 0x23d7, - 0xe3ee, 0x16ae, - 0xe3f1, 0x23d8, - 0xe3f3, 0x16b3, - 0xe3f8, 0x23da, - 0xe3f9, 0x16b9, - 0xe3fe, 0x23db, - 0xe4a1, 0x16bf, - 0xe4a4, 0x23dc, - 0xe4a6, 0x16c4, - 0xe4ab, 0x23de, - 0xe4ac, 0x16ca, - 0xe4af, 0x23df, - 0xe4b2, 0x16d0, - 0xe4b5, 0x23e2, - 0xe4b7, 0x16d5, - 0xe4c2, 0x23e4, - 0xe4c3, 0x16e1, - 0xe4c5, 0x23e5, - 0xe4c6, 0x16e4, - 0xe4c9, 0x23e6, - 0xe4ca, 0x16e8, - 0xe4d9, 0x23e7, - 0xe4da, 0x16f8, - 0xe4dc, 0x23e8, - 0xe4dd, 0x16fb, - 0xe4de, 0x23e9, - 0xe4df, 0x16fd, - 0xe4e4, 0x23ea, - 0xe4e5, 0x1703, - 0xe4eb, 0x23eb, - 0xe4ed, 0x170b, - 0xe4f2, 0x23ed, - 0xe4f3, 0x1711, - 0xe4fe, 0x23ee, - 0xe5a1, 0x171d, - 0xe5b0, 0x23ef, - 0xe5b1, 0x172d, - 0xe5b9, 0x23f0, - 0xe5ba, 0x1736, - 0xe5c7, 0x23f1, - 0xe5c8, 0x1744, - 0xe5c9, 0x23f2, - 0xe5ca, 0x1746, - 0xe5ce, 0x23f3, - 0xe5cf, 0x174b, - 0xe5f0, 0x23f4, - 0xe5f1, 0x176d, - 0xe5f2, 0x23f5, - 0xe5f3, 0x176f, - 0xe5fc, 0x23f6, - 0xe5fe, 0x177a, - 0xe6a1, 0x177b, - 0xe6a3, 0x23f8, - 0xe6a4, 0x177e, - 0xe6ab, 0x23f9, - 0xe6ad, 0x1787, - 0xe6ae, 0x23fb, - 0xe6af, 0x1789, - 0xe6b4, 0x23fc, - 0xe6b6, 0x1790, - 0xe6bf, 0x23fe, - 0xe6c0, 0x179a, - 0xe6c8, 0x23ff, - 0xe6ca, 0x17a4, - 0xe6cd, 0x2401, - 0xe6ce, 0x17a8, - 0xe6e0, 0x2402, - 0xe7a1, 0x2421, - 0xe7db, 0x1813, - 0xe7e1, 0x245b, - 0xe7e3, 0x181b, - 0xe7e7, 0x245d, - 0xe7e8, 0x1820, - 0xe7ef, 0x245e, - 0xe7f0, 0x1828, - 0xe7f4, 0x245f, - 0xe7f7, 0x182f, - 0xe8a1, 0x1837, - 0xe8a8, 0x2462, - 0xe8a9, 0x183f, - 0xe8ac, 0x2463, - 0xe8ad, 0x1843, - 0xe8b6, 0x2464, - 0xe8b7, 0x184d, - 0xe8b8, 0x2465, - 0xe8bb, 0x1851, - 0xe8bf, 0x2468, - 0xe8c1, 0x1857, - 0xe8c5, 0x246a, - 0xe8c6, 0x185c, - 0xe8c7, 0x246b, - 0xe8ca, 0x1860, - 0xe8ce, 0x246e, - 0xe8cf, 0x1865, - 0xe8d0, 0x246f, - 0xe8d1, 0x1867, - 0xe8d3, 0x2470, - 0xe8d4, 0x186a, - 0xe8dd, 0x2471, - 0xe8de, 0x1874, - 0xe8df, 0x2472, - 0xe8e0, 0x1876, - 0xe8e2, 0x2473, - 0xe8e4, 0x187a, - 0xe8e5, 0x2475, - 0xe8e6, 0x187c, - 0xe8e7, 0x2476, - 0xe8e8, 0x187e, - 0xe8eb, 0x2477, - 0xe8ec, 0x1882, - 0xe8ed, 0x2478, - 0xe8ee, 0x1884, - 0xe8ef, 0x2479, - 0xe8f0, 0x1886, - 0xe8f9, 0x247a, - 0xe8fa, 0x1890, - 0xe8fc, 0x247b, - 0xe8fe, 0x1894, - 0xe9a1, 0x247d, - 0xe9a2, 0x1896, - 0xe9ad, 0x247e, - 0xe9ae, 0x18a2, - 0xe9b4, 0x247f, - 0xe9b6, 0x18aa, - 0xe9b7, 0x2481, - 0xe9b8, 0x18ac, - 0xe9c4, 0x2482, - 0xe9c5, 0x18b9, - 0xe9c6, 0x2483, - 0xe9c7, 0x18bb, - 0xe9c9, 0x2484, - 0xe9ca, 0x18be, - 0xe9d6, 0x2485, - 0xe9d7, 0x18cb, - 0xe9da, 0x2486, - 0xe9db, 0x18cf, - 0xe9e4, 0x2487, - 0xe9e5, 0x18d9, - 0xe9e6, 0x2488, - 0xe9e8, 0x18dc, - 0xe9e9, 0x248a, - 0xe9ea, 0x18de, - 0xe9eb, 0x248b, - 0xe9ec, 0x18e0, - 0xe9ed, 0x248c, - 0xeaa1, 0x249e, - 0xeaa6, 0x18f8, - 0xeaa7, 0x24a3, - 0xeaa9, 0x18fb, - 0xeab1, 0x24a5, - 0xeab2, 0x1904, - 0xeabc, 0x24a6, - 0xeabd, 0x190f, - 0xeaca, 0x24a7, - 0xeacb, 0x191d, - 0xeacd, 0x24a8, - 0xeace, 0x1920, - 0xead3, 0x24a9, - 0xead4, 0x1926, - 0xeada, 0x24aa, - 0xeaf0, 0x1942, - 0xeba1, 0x1951, - 0xeba7, 0x24c0, - 0xeba8, 0x1958, - 0xebaa, 0x24c1, - 0xebab, 0x195b, - 0xebb2, 0x24c2, - 0xebb3, 0x1963, - 0xebb9, 0x24c3, - 0xebba, 0x196a, - 0xebca, 0x24c4, - 0xebcc, 0x197c, - 0xebcd, 0x24c6, - 0xebce, 0x197e, - 0xebd6, 0x24c7, - 0xebd7, 0x1987, - 0xebda, 0x24c8, - 0xebdb, 0x198b, - 0xebe1, 0x24c9, - 0xebe2, 0x1992, - 0xebf7, 0x24ca, - 0xebf8, 0x19a8, - 0xeca1, 0x19af, - 0xeca3, 0x24cb, - 0xeca4, 0x19b2, - 0xeca9, 0x24cc, - 0xecaf, 0x19bd, - 0xecb1, 0x24d2, - 0xecb2, 0x19c0, - 0xecb4, 0x24d3, - 0xecb6, 0x19c4, - 0xecbe, 0x24d5, - 0xecc0, 0x19ce, - 0xecc1, 0x24d7, - 0xecc2, 0x19d0, - 0xecc7, 0x24d8, - 0xecc8, 0x19d6, - 0xeccb, 0x24d9, - 0xeccc, 0x19da, - 0xece2, 0x24da, - 0xece3, 0x19f1, - 0xecf2, 0x24db, - 0xecf3, 0x1a01, - 0xecf5, 0x24dc, - 0xecf6, 0x1a04, - 0xecf8, 0x24dd, - 0xecf9, 0x1a07, - 0xeda1, 0x24de, - 0xeda2, 0x1a0e, - 0xeda8, 0x24df, - 0xeda9, 0x1a15, - 0xedaf, 0x24e0, - 0xedb1, 0x1a1d, - 0xedb4, 0x24e2, - 0xedb5, 0x1a21, - 0xedb6, 0x24e3, - 0xedb7, 0x1a23, - 0xedb8, 0x24e4, - 0xedb9, 0x1a25, - 0xedba, 0x24e5, - 0xedbb, 0x1a27, - 0xedbf, 0x24e6, - 0xedc0, 0x1a2c, - 0xedc2, 0x24e7, - 0xedc4, 0x1a30, - 0xedcc, 0x24e9, - 0xedce, 0x1a3a, - 0xedd3, 0x24eb, - 0xedd4, 0x1a40, - 0xedd7, 0x24ec, - 0xedd8, 0x1a44, - 0xede8, 0x24ed, - 0xede9, 0x1a55, - 0xedee, 0x24ee, - 0xedef, 0x1a5b, - 0xedf9, 0x24ef, - 0xedfb, 0x1a67, - 0xeea1, 0x1a6b, - 0xeebc, 0x24f1, - 0xeebd, 0x1a87, - 0xeebf, 0x24f2, - 0xeec0, 0x1a8a, - 0xeec4, 0x24f3, - 0xefa1, 0x252e, - 0xeff2, 0x1b1a, - 0xf0a1, 0x1b27, - 0xf0a3, 0x257f, - 0xf0a4, 0x1b2a, - 0xf0af, 0x2580, - 0xf0da, 0x1b60, - 0xf0dc, 0x25ab, - 0xf0de, 0x1b64, - 0xf0df, 0x25ad, - 0xf0e0, 0x1b66, - 0xf0e9, 0x25ae, - 0xf0ea, 0x1b70, - 0xf0ec, 0x25af, - 0xf0ed, 0x1b73, - 0xf0ef, 0x25b0, - 0xf0f0, 0x1b76, - 0xf0f7, 0x25b1, - 0xf0f8, 0x1b7e, - 0xf0f9, 0x25b2, - 0xf0fa, 0x1b80, - 0xf0fc, 0x25b3, - 0xf0fd, 0x1b83, - 0xf1a1, 0x1b85, - 0xf1a8, 0x25b4, - 0xf1a9, 0x1b8d, - 0xf1ab, 0x25b5, - 0xf1ac, 0x1b90, - 0xf1ae, 0x25b6, - 0xf1af, 0x1b93, - 0xf1b2, 0x25b7, - 0xf1b3, 0x1b97, - 0xf1bc, 0x25b8, - 0xf1bd, 0x1ba1, - 0xf1c0, 0x25b9, - 0xf1c1, 0x1ba5, - 0xf1c9, 0x25ba, - 0xf1ca, 0x1bae, - 0xf1cd, 0x25bb, - 0xf1ce, 0x1bb2, - 0xf1cf, 0x25bc, - 0xf1d1, 0x1bb5, - 0xf1da, 0x25be, - 0xf1db, 0x1bbf, - 0xf1dc, 0x25bf, - 0xf1dd, 0x1bc1, - 0xf1e4, 0x25c0, - 0xf1e5, 0x1bc9, - 0xf1ec, 0x25c1, - 0xf1ed, 0x1bd1, - 0xf1ef, 0x25c2, - 0xf1f0, 0x1bd4, - 0xf1f7, 0x25c3, - 0xf1f8, 0x1bdc, - 0xf1f9, 0x25c4, - 0xf1fa, 0x1bde, - 0xf1fc, 0x25c5, - 0xf2a1, 0x25c8, - 0xf2ae, 0x1bf0, - 0xf2b1, 0x25d5, - 0xf2b3, 0x1bf5, - 0xf2b9, 0x25d7, - 0xf2ba, 0x1bfc, - 0xf2c3, 0x25d8, - 0xf2c4, 0x1c06, - 0xf2c9, 0x25d9, - 0xf2ca, 0x1c0c, - 0xf2cc, 0x25da, - 0xf2ce, 0x1c10, - 0xf2cf, 0x25dc, - 0xf2d0, 0x1c12, - 0xf2d3, 0x25dd, - 0xf2d4, 0x1c16, - 0xf2e5, 0x25de, - 0xf2e6, 0x1c28, - 0xf2ee, 0x25df, - 0xf2ef, 0x1c31, - 0xf2f7, 0x25e0, - 0xf2f8, 0x1c3a, - 0xf2fd, 0x25e1, - 0xf2fe, 0x1c40, - 0xf3a1, 0x1c41, - 0xf3bf, 0x25e2, - 0xf3c0, 0x1c60, - 0xf3c6, 0x25e3, - 0xf3c7, 0x1c67, - 0xf3c8, 0x25e4, - 0xf3c9, 0x1c69, - 0xf3d6, 0x25e5, - 0xf3d7, 0x1c77, - 0xf3d9, 0x25e6, - 0xf3da, 0x1c7a, - 0xf3e5, 0x25e7, - 0xf3e7, 0x1c87, - 0xf3ea, 0x25e9, - 0xf3eb, 0x1c8b, - 0xf3ec, 0x25ea, - 0xf3ed, 0x1c8d, - 0xf3ef, 0x25eb, - 0xf3f0, 0x1c90, - 0xf3f1, 0x25ec, - 0xf3f2, 0x1c92, - 0xf3fd, 0x25ed, - 0xf3fe, 0x1c9e, - 0xf4a1, 0x1c9f, - 0xf4a5, 0x25ee, - 0xf4a6, 0x1ca4, - 0xf4af, 0x25ef, - 0xf4b0, 0x1cae, - 0xf4b5, 0x25f0, - 0xf4b6, 0x1cb4, - 0xf4c1, 0x25f1, - 0xf4c2, 0x1cc0, - 0xf4c7, 0x25f2, - 0xf4c8, 0x1cc6, - 0xf4cf, 0x25f3, - 0xf4d1, 0x1ccf, - 0xf4d6, 0x25f5, - 0xf4d7, 0x1cd5, - 0xf4ea, 0x25f6, - 0xf4eb, 0x1ce9, - 0xf4ef, 0x25f7, - 0xf4f0, 0x1cee, - 0xf4f5, 0x25f8, - 0xf4f6, 0x1cf4, - 0xf5a1, 0x1cfd, - 0xf5a6, 0x25f9, - 0xf5a8, 0x1d04, - 0xf5ba, 0x25fb, - 0xf5bc, 0x1d18, - 0xf5c4, 0x25fd, - 0xf5c5, 0x1d21, - 0xf5c8, 0x25fe, - 0xf5c9, 0x1d25, - 0xf5ce, 0x25ff, - 0xf5d0, 0x1d2c, - 0xf5d1, 0x2601, - 0xf5d3, 0x1d2f, - 0xf5d9, 0x2603, - 0xf5da, 0x1d36, - 0xf5dc, 0x2604, - 0xf5dd, 0x1d39, - 0xf5e6, 0x2605, - 0xf5e8, 0x1d44, - 0xf5ef, 0x2607, - 0xf5f0, 0x1d4c, - 0xf5f2, 0x2608, - 0xf5f3, 0x1d4f, - 0xf5fc, 0x2609, - 0xf5fd, 0x1d59, - 0xf6a1, 0x1d5b, - 0xf6a3, 0x260a, - 0xf6a4, 0x1d5e, - 0xf6a6, 0x260b, - 0xf6a7, 0x1d61, - 0xf6a8, 0x260c, - 0xf6a9, 0x1d63, - 0xf6ab, 0x260d, - 0xf6ac, 0x1d66, - 0xf6b0, 0x260e, - 0xf6b1, 0x1d6b, - 0xf6b3, 0x260f, - 0xf6bf, 0x1d79, - 0xf6c5, 0x261b, - 0xf6c6, 0x1d80, - 0xf6c7, 0x261c, - 0xf6c8, 0x1d82, - 0xf6c9, 0x261d, - 0xf6ca, 0x1d84, - 0xf6cf, 0x261e, - 0xf7a1, 0x264e, - 0xf7b0, 0x1dc8, - 0xf7b2, 0x265d, - 0xf7b4, 0x1dcc, - 0xf7b5, 0x265f, - 0xf7b6, 0x1dce, - 0xf7bd, 0x2660, - 0xf7be, 0x1dd6, - 0xf7c3, 0x2661, - 0xf7c4, 0x1ddc, - 0xf7c5, 0x2662, - 0xf7c7, 0x1ddf, - 0xf7ca, 0x2664, - 0xf7cc, 0x1de4, - 0xf7cf, 0x2666, - 0xf7d1, 0x1de9, - 0xf7de, 0x2668, - 0xf7df, 0x1df7, - 0xf7e1, 0x0ab9, - 0xf7e2, 0x1dfa, - 0xf7f2, 0x2669, - 0xf7f3, 0x1e0b, - 0xf7f5, 0x266a, - 0xf7f6, 0x1e0e, - 0xf8a1, 0x266b, - 0xf8a7, 0x04cc, - 0xf8a8, 0x050a, - 0xf8a9, 0x0518, - 0xf8aa, 0x2671, - 0xf8ac, 0x0594, - 0xf8ad, 0x05ce, - 0xf8ae, 0x2673, - 0xf8af, 0x05f6, - 0xf8b0, 0x2674, - 0xf8b2, 0x0653, - 0xf8b3, 0x067e, - 0xf8b4, 0x2676, - 0xf8b5, 0x06c4, - 0xf8b6, 0x2677, - 0xf8b8, 0x073c, - 0xf8b9, 0x2679, - 0xf8bb, 0x07c3, - 0xf8bc, 0x267b, - 0xf8c0, 0x082b, - 0xf8c1, 0x267f, - 0xf8c2, 0x084e, - 0xf8c3, 0x0869, - 0xf8c4, 0x2680, - 0xf8c6, 0x090c, - 0xf8c7, 0x2682, - 0xf8c9, 0x0971, - 0xf8ca, 0x2684, - 0xf8cb, 0x099a, - 0xf8cd, 0x2685, - 0xf8ce, 0x09da, - 0xf8cf, 0x2686, - 0xf8d0, 0x09fa, - 0xf8d1, 0x2687, - 0xf8dc, 0x0bda, - 0xf8dd, 0x0bdd, - 0xf8de, 0x0bea, - 0xf8df, 0x0bec, - 0xf8e0, 0x0bf2, - 0xf8e1, 0x2692, - 0xf8e6, 0x0c92, - 0xf8e7, 0x0d1a, - 0xf8e8, 0x0d8c, - 0xf8e9, 0x0dbe, - 0xf8ea, 0x2697, - 0xf8eb, 0x0dfb, - 0xf8ec, 0x2698, - 0xf8ef, 0x0e70, - 0xf8f0, 0x269b, - 0xf8f1, 0x0ea3, - 0xf8f2, 0x269c, - 0xf8f8, 0x103d, - 0xf8f9, 0x10d9, - 0xf8fa, 0x26a2, - 0xf8fc, 0x10fb, - 0xf8fd, 0x1109, - 0xf8fe, 0x26a4, - 0xf9a1, 0x11a1, - 0xf9a2, 0x26a5, - 0xf9a3, 0x11ba, - 0xf9a4, 0x26a6, - 0xf9a6, 0x11d5, - 0xf9a7, 0x26a8, - 0xf9a8, 0x11fd, - 0xf9a9, 0x1219, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 gb12GBTpcEUCHEnc16 = { - 0, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, - 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, - 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, - 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, - 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, - 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, - 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, - 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, - 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, - 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0000, - 0x1e20, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1e21, 0x1e22, 0x1e23 }, - gb12GBTpcEUCHMap2, 2283 -}; - -static Gushort gb12GBTpcEUCVMap2[4606] = { - 0x0000, 0x0000, - 0xa1a1, 0x0060, - 0xa2b1, 0x00be, - 0xa2e5, 0x00f0, - 0xa2f1, 0x00fa, - 0xa3a1, 0x0106, - 0xa4a1, 0x0164, - 0xa5a1, 0x01b7, - 0xa6a1, 0x020d, - 0xa6c1, 0x0225, - 0xa7a1, 0x025a, - 0xa7d1, 0x027b, - 0xa8a1, 0x029c, - 0xa8c5, 0x02bc, - 0xa9a4, 0x02e2, - 0xaaa1, 0x032e, - 0xaba1, 0x038c, - 0xb0a1, 0x03ac, - 0xb0a8, 0x1e25, - 0xb0a9, 0x03b4, - 0xb0aa, 0x1e26, - 0xb0ab, 0x03b6, - 0xb0ad, 0x1e27, - 0xb0af, 0x03ba, - 0xb0b9, 0x1e29, - 0xb0ba, 0x03c5, - 0xb0c0, 0x1e2a, - 0xb0c1, 0x03cc, - 0xb0d3, 0x1e2b, - 0xb0d4, 0x03df, - 0xb0d5, 0x1e2c, - 0xb0d6, 0x03e1, - 0xb0da, 0x1e2d, - 0xb0db, 0x03e6, - 0xb0dc, 0x1e2e, - 0xb0dd, 0x03e8, - 0xb0e4, 0x1e2f, - 0xb0e5, 0x03f0, - 0xb0ec, 0x1e30, - 0xb0ee, 0x03f9, - 0xb0ef, 0x1e32, - 0xb0f0, 0x03fb, - 0xb0f3, 0x1e33, - 0xb0f4, 0x03ff, - 0xb0f7, 0x1e34, - 0xb0f8, 0x0403, - 0xb0f9, 0x1e35, - 0xb0fa, 0x0405, - 0xb1a1, 0x040a, - 0xb1a5, 0x1e36, - 0xb1a7, 0x0410, - 0xb1a8, 0x1e38, - 0xb1a9, 0x0412, - 0xb1ab, 0x1e39, - 0xb1ac, 0x0415, - 0xb1b2, 0x1e3a, - 0xb1b3, 0x041c, - 0xb1b4, 0x1e3b, - 0xb1b6, 0x041f, - 0xb1b7, 0x1e3d, - 0xb1ba, 0x0423, - 0xb1c1, 0x1e40, - 0xb1c2, 0x042b, - 0xb1ca, 0x1e41, - 0xb1cb, 0x0434, - 0xb1cf, 0x1e42, - 0xb1d1, 0x043a, - 0xb1d2, 0x1e44, - 0xb1d3, 0x043c, - 0xb1d5, 0x1e45, - 0xb1d6, 0x043f, - 0xb1df, 0x1e46, - 0xb1e2, 0x044b, - 0xb1e4, 0x1e49, - 0xb1e5, 0x044e, - 0xb1e7, 0x1e4a, - 0xb1e9, 0x0452, - 0xb1ea, 0x1e4c, - 0xb1eb, 0x0454, - 0xb1ee, 0x1e4d, - 0xb1ef, 0x0458, - 0xb1f1, 0x1e4e, - 0xb1f2, 0x045b, - 0xb1f4, 0x1e4f, - 0xb1f8, 0x0461, - 0xb1fd, 0x1e53, - 0xb1fe, 0x0467, - 0xb2a1, 0x0468, - 0xb2a6, 0x1e54, - 0xb2a8, 0x046f, - 0xb2ac, 0x1e56, - 0xb2ad, 0x0474, - 0xb2b5, 0x1e57, - 0xb2b6, 0x047d, - 0xb2b9, 0x1e58, - 0xb2ba, 0x0481, - 0xb2c6, 0x1e59, - 0xb2c7, 0x048e, - 0xb2ce, 0x1e5a, - 0xb2d8, 0x049f, - 0xb2de, 0x1e64, - 0xb2df, 0x04a6, - 0xb2e0, 0x1e65, - 0xb2e1, 0x04a8, - 0xb2e2, 0x1e66, - 0xb2e4, 0x04ab, - 0xb2ef, 0x1e68, - 0xb2f0, 0x04b7, - 0xb2f3, 0x1e69, - 0xb2fd, 0x04c4, - 0xb3a1, 0x1e73, - 0xb3a3, 0x04c8, - 0xb3a4, 0x1e75, - 0xb3a8, 0x04cd, - 0xb3a9, 0x1e79, - 0xb3aa, 0x04cf, - 0xb3ae, 0x1e7a, - 0xb3af, 0x04d4, - 0xb3b5, 0x1e7b, - 0xb3b6, 0x04db, - 0xb3b9, 0x1e7c, - 0xb3ba, 0x04df, - 0xb3be, 0x1e7d, - 0xb3bf, 0x04e4, - 0xb3c2, 0x1e7e, - 0xb3c3, 0x04e8, - 0xb3c4, 0x1e7f, - 0xb3c5, 0x04ea, - 0xb3c6, 0x1e80, - 0xb3c7, 0x04ec, - 0xb3cd, 0x1e81, - 0xb3ce, 0x04f3, - 0xb3cf, 0x1e82, - 0xb3d0, 0x04f5, - 0xb3d2, 0x1e83, - 0xb3d3, 0x04f8, - 0xb3d9, 0x1e84, - 0xb3da, 0x04ff, - 0xb3db, 0x1e85, - 0xb3dc, 0x0501, - 0xb3dd, 0x1e86, - 0xb3de, 0x0503, - 0xb3e3, 0x1e87, - 0xb3e4, 0x0509, - 0xb3e5, 0x1e88, - 0xb3e7, 0x050c, - 0xb3e8, 0x1e8a, - 0xb3e9, 0x050e, - 0xb3eb, 0x1e8b, - 0xb3ed, 0x0512, - 0xb3ef, 0x1e8d, - 0xb3f0, 0x0515, - 0xb3f1, 0x1e8e, - 0xb3f2, 0x0517, - 0xb3f3, 0x1e8f, - 0xb3f4, 0x0519, - 0xb3fa, 0x1e90, - 0xb3fc, 0x0521, - 0xb4a1, 0x1e92, - 0xb4a3, 0x0526, - 0xb4a5, 0x1e94, - 0xb4a7, 0x052a, - 0xb4ab, 0x1e96, - 0xb4ac, 0x052f, - 0xb4af, 0x1e97, - 0xb4b0, 0x0533, - 0xb4b3, 0x1e98, - 0xb4b5, 0x0538, - 0xb4b8, 0x1e9a, - 0xb4b9, 0x053c, - 0xb4bf, 0x1e9b, - 0xb4c0, 0x0543, - 0xb4c2, 0x1e9c, - 0xb4c3, 0x0546, - 0xb4c7, 0x1e9d, - 0xb4c8, 0x054b, - 0xb4ca, 0x1e9e, - 0xb4cb, 0x054e, - 0xb4cd, 0x1e9f, - 0xb4ce, 0x0551, - 0xb4cf, 0x1ea0, - 0xb4d0, 0x0553, - 0xb4d3, 0x1ea1, - 0xb4d5, 0x0558, - 0xb4da, 0x1ea3, - 0xb4db, 0x055e, - 0xb4dc, 0x1ea4, - 0xb4dd, 0x0560, - 0xb4ed, 0x1ea5, - 0xb4ee, 0x0571, - 0xb4ef, 0x1ea6, - 0xb4f0, 0x0573, - 0xb4f8, 0x1ea7, - 0xb4f9, 0x057c, - 0xb4fb, 0x1ea8, - 0xb4fc, 0x057f, - 0xb5a1, 0x0582, - 0xb5a3, 0x1ea9, - 0xb5a4, 0x0585, - 0xb5a5, 0x1eaa, - 0xb5a9, 0x058a, - 0xb5ac, 0x1eae, - 0xb5ad, 0x058e, - 0xb5ae, 0x1eaf, - 0xb5b0, 0x0591, - 0xb5b1, 0x1eb1, - 0xb5b6, 0x0597, - 0xb5b7, 0x1eb6, - 0xb5b8, 0x0599, - 0xb5ba, 0x1eb7, - 0xb5bd, 0x059e, - 0xb5c6, 0x1eba, - 0xb5c7, 0x05a8, - 0xb5cb, 0x1ebb, - 0xb5cc, 0x05ad, - 0xb5d0, 0x1ebc, - 0xb5d1, 0x05b2, - 0xb5d3, 0x1ebd, - 0xb5d4, 0x05b5, - 0xb5dd, 0x1ebe, - 0xb5e0, 0x05c1, - 0xb5e3, 0x1ec1, - 0xb5e4, 0x05c5, - 0xb5e6, 0x1ec2, - 0xb5e8, 0x05c9, - 0xb5ed, 0x1ec4, - 0xb5ee, 0x05cf, - 0xb5f6, 0x1ec5, - 0xb5f8, 0x05d9, - 0xb5fd, 0x1ec7, - 0xb5fe, 0x05df, - 0xb6a1, 0x05e0, - 0xb6a4, 0x1ec8, - 0xb6a6, 0x05e5, - 0xb6a7, 0x1eca, - 0xb6a8, 0x05e7, - 0xb6a9, 0x1ecb, - 0xb6aa, 0x05e9, - 0xb6ab, 0x1ecc, - 0xb6ac, 0x05eb, - 0xb6af, 0x1ecd, - 0xb6b1, 0x05f0, - 0xb6b3, 0x1ecf, - 0xb6b4, 0x05f3, - 0xb6b7, 0x1ed0, - 0xb6b8, 0x05f7, - 0xb6bf, 0x1ed1, - 0xb6c2, 0x0601, - 0xb6c4, 0x1ed4, - 0xb6c5, 0x0604, - 0xb6c6, 0x1ed5, - 0xb6c7, 0x0606, - 0xb6cd, 0x1ed6, - 0xb6ce, 0x060d, - 0xb6cf, 0x1ed7, - 0xb6d1, 0x0610, - 0xb6d3, 0x1ed9, - 0xb6d5, 0x0614, - 0xb6d6, 0x1edb, - 0xb6d7, 0x0616, - 0xb6d9, 0x1edc, - 0xb6da, 0x0619, - 0xb6db, 0x1edd, - 0xb6dc, 0x061b, - 0xb6e1, 0x1ede, - 0xb6e2, 0x0621, - 0xb6e9, 0x1edf, - 0xb6ea, 0x0629, - 0xb6ec, 0x1ee0, - 0xb6ed, 0x062c, - 0xb6ee, 0x1ee1, - 0xb6f0, 0x062f, - 0xb6f1, 0x1ee3, - 0xb6f2, 0x0631, - 0xb6f6, 0x1ee4, - 0xb6f7, 0x0636, - 0xb6f9, 0x1ee5, - 0xb6fa, 0x0639, - 0xb6fb, 0x1ee6, - 0xb6fd, 0x063c, - 0xb7a1, 0x1ee8, - 0xb7a4, 0x0641, - 0xb7a7, 0x1eeb, - 0xb7a8, 0x0645, - 0xb7af, 0x1eec, - 0xb7b1, 0x064e, - 0xb7b3, 0x1eee, - 0xb7b4, 0x0651, - 0xb7b6, 0x1eef, - 0xb7b8, 0x0655, - 0xb7b9, 0x1ef1, - 0xb7ba, 0x0657, - 0xb7c3, 0x1ef2, - 0xb7c5, 0x0662, - 0xb7c9, 0x1ef4, - 0xb7ca, 0x0667, - 0xb7cc, 0x1ef5, - 0xb7cd, 0x066a, - 0xb7cf, 0x1ef6, - 0xb7d0, 0x066d, - 0xb7d1, 0x1ef7, - 0xb7d2, 0x066f, - 0xb7d7, 0x1ef8, - 0xb7d9, 0x0676, - 0xb7dc, 0x1efa, - 0xb7dd, 0x067a, - 0xb7df, 0x1efb, - 0xb7e2, 0x067f, - 0xb7e3, 0x1efe, - 0xb7e4, 0x0681, - 0xb7e6, 0x1eff, - 0xb7e9, 0x0686, - 0xb7eb, 0x1f02, - 0xb7ee, 0x068b, - 0xb7ef, 0x1f05, - 0xb7f0, 0x068d, - 0xb7f4, 0x1f06, - 0xb7f5, 0x0692, - 0xb7f8, 0x1f07, - 0xb7f9, 0x0696, - 0xb8a1, 0x069c, - 0xb8a7, 0x1f08, - 0xb8a9, 0x06a4, - 0xb8b3, 0x1f0a, - 0xb8b5, 0x06b0, - 0xb8ba, 0x1f0c, - 0xb8bb, 0x06b6, - 0xb8bc, 0x1f0d, - 0xb8bd, 0x06b8, - 0xb8be, 0x1f0e, - 0xb8c0, 0x06bb, - 0xb8c3, 0x1f10, - 0xb8c4, 0x06bf, - 0xb8c6, 0x1f11, - 0xb8c8, 0x06c3, - 0xb8c9, 0x1f13, - 0xb8ca, 0x06c5, - 0xb8cf, 0x1f14, - 0xb8d0, 0x06cb, - 0xb8d3, 0x1f15, - 0xb8d7, 0x06d2, - 0xb8d9, 0x1f19, - 0xb8db, 0x06d6, - 0xb8e4, 0x1f1b, - 0xb8e5, 0x06e0, - 0xb8e9, 0x1f1c, - 0xb8ea, 0x06e5, - 0xb8eb, 0x1f1d, - 0xb8ec, 0x06e7, - 0xb8f3, 0x1f1e, - 0xb8f4, 0x06ef, - 0xb8f5, 0x1f1f, - 0xb8f7, 0x06f2, - 0xb8f8, 0x1f21, - 0xb8f9, 0x06f4, - 0xb9a1, 0x06fa, - 0xb9a8, 0x1f22, - 0xb9a9, 0x0702, - 0xb9ae, 0x1f23, - 0xb9af, 0x0708, - 0xb9b1, 0x1f24, - 0xb9b2, 0x070b, - 0xb9b3, 0x1f25, - 0xb9b4, 0x070d, - 0xb9b5, 0x1f26, - 0xb9b6, 0x070f, - 0xb9b9, 0x1f27, - 0xb9bb, 0x0714, - 0xb9c6, 0x1f29, - 0xb9c7, 0x0720, - 0xb9cb, 0x1f2a, - 0xb9cc, 0x0725, - 0xb9d0, 0x1f2b, - 0xb9d1, 0x072a, - 0xb9d8, 0x1f2c, - 0xb9d9, 0x0732, - 0xb9db, 0x1f2d, - 0xb9dc, 0x0735, - 0xb9dd, 0x1f2e, - 0xb9de, 0x0737, - 0xb9df, 0x1f2f, - 0xb9e0, 0x0739, - 0xb9e1, 0x1f30, - 0xb9e2, 0x073b, - 0xb9e3, 0x1f31, - 0xb9e4, 0x073d, - 0xb9e6, 0x1f32, - 0xb9e7, 0x0740, - 0xb9e9, 0x1f33, - 0xb9ed, 0x0746, - 0xb9ee, 0x1f37, - 0xb9ef, 0x0748, - 0xb9f1, 0x1f38, - 0xb9f2, 0x074b, - 0xb9f3, 0x1f39, - 0xb9f6, 0x074f, - 0xb9f8, 0x1f3c, - 0xb9f9, 0x0752, - 0xb9fa, 0x1f3d, - 0xb9fb, 0x0754, - 0xb9fd, 0x1f3e, - 0xb9fe, 0x0757, - 0xbaa1, 0x0758, - 0xbaa7, 0x1f3f, - 0xbaa8, 0x075f, - 0xbaab, 0x1f40, - 0xbaac, 0x0763, - 0xbaba, 0x1f41, - 0xbabb, 0x0772, - 0xbac5, 0x1f42, - 0xbac6, 0x077d, - 0xbad2, 0x1f43, - 0xbad3, 0x078a, - 0xbad7, 0x1f44, - 0xbad9, 0x0790, - 0xbae4, 0x1f46, - 0xbae5, 0x079c, - 0xbae8, 0x1f47, - 0xbae9, 0x07a0, - 0xbaec, 0x1f48, - 0xbaed, 0x07a4, - 0xbaf3, 0x15e5, - 0xbaf4, 0x07ab, - 0xbaf8, 0x1f49, - 0xbaf9, 0x07b0, - 0xbba1, 0x07b6, - 0xbba4, 0x1f4a, - 0xbba5, 0x07ba, - 0xbba6, 0x1f4b, - 0xbba7, 0x07bc, - 0xbba9, 0x1f4c, - 0xbbab, 0x07c0, - 0xbbad, 0x1f4e, - 0xbbaf, 0x07c4, - 0xbbb0, 0x1f50, - 0xbbb1, 0x07c6, - 0xbbb3, 0x1f51, - 0xbbb4, 0x07c9, - 0xbbb5, 0x1f52, - 0xbbb8, 0x07cd, - 0xbbb9, 0x1f55, - 0xbbbb, 0x07d0, - 0xbbd1, 0x1f57, - 0xbbd2, 0x07e7, - 0xbbd3, 0x1f58, - 0xbbd5, 0x07ea, - 0xbbdf, 0x1f5a, - 0xbbe8, 0x07fd, - 0xbbeb, 0x1f63, - 0xbbec, 0x0801, - 0xbbf1, 0x1f64, - 0xbbf2, 0x0807, - 0xbbf5, 0x1f65, - 0xbbf8, 0x080d, - 0xbbfa, 0x1f68, - 0xbbfb, 0x0810, - 0xbbfd, 0x1f69, - 0xbbfe, 0x0813, - 0xbca1, 0x0814, - 0xbca2, 0x1f6a, - 0xbca3, 0x0816, - 0xbca5, 0x1f6b, - 0xbca7, 0x081a, - 0xbca8, 0x1f6d, - 0xbcaa, 0x081d, - 0xbcab, 0x1f6f, - 0xbcac, 0x081f, - 0xbcad, 0x1f70, - 0xbcae, 0x0821, - 0xbcb6, 0x1f71, - 0xbcb9, 0x082c, - 0xbcbb, 0x1f74, - 0xbcbc, 0x082f, - 0xbcc1, 0x1f75, - 0xbcc2, 0x0835, - 0xbcc3, 0x1f76, - 0xbcc4, 0x0837, - 0xbcc6, 0x1f77, - 0xbcc8, 0x083b, - 0xbcca, 0x1f79, - 0xbccb, 0x083e, - 0xbccc, 0x1f7a, - 0xbcce, 0x0841, - 0xbcd0, 0x1f7c, - 0xbcd1, 0x0844, - 0xbcd4, 0x1f7d, - 0xbcd7, 0x084a, - 0xbcd8, 0x1f80, - 0xbcd9, 0x084c, - 0xbcdb, 0x1f81, - 0xbcdc, 0x084f, - 0xbcdd, 0x1f82, - 0xbcde, 0x0851, - 0xbcdf, 0x1f83, - 0xbce2, 0x0855, - 0xbce3, 0x1f86, - 0xbce5, 0x0858, - 0xbce8, 0x1f88, - 0xbce9, 0x085c, - 0xbcea, 0x1f89, - 0xbced, 0x0860, - 0xbcef, 0x1f8c, - 0xbcf4, 0x0867, - 0xbcf6, 0x1f91, - 0xbcfd, 0x0870, - 0xbda1, 0x0872, - 0xbda2, 0x1f98, - 0xbda8, 0x0879, - 0xbdab, 0x1f9e, - 0xbdad, 0x087e, - 0xbdaf, 0x1fa0, - 0xbdb3, 0x0884, - 0xbdb4, 0x1fa4, - 0xbdb5, 0x0886, - 0xbdba, 0x1fa5, - 0xbdbb, 0x088c, - 0xbdbd, 0x1fa6, - 0xbdc0, 0x0891, - 0xbdc1, 0x1fa9, - 0xbdc5, 0x0896, - 0xbdc8, 0x1fad, - 0xbdcb, 0x089c, - 0xbdce, 0x1fb0, - 0xbdd0, 0x08a1, - 0xbdd7, 0x1fb2, - 0xbdd8, 0x08a9, - 0xbdda, 0x1fb3, - 0xbddb, 0x08ac, - 0xbde0, 0x1fb4, - 0xbde2, 0x08b3, - 0xbdeb, 0x1fb6, - 0xbdec, 0x08bd, - 0xbdf4, 0x1fb7, - 0xbdf9, 0x08ca, - 0xbdfd, 0x1fbc, - 0xbdfe, 0x08cf, - 0xbea1, 0x1fbd, - 0xbea3, 0x08d2, - 0xbea5, 0x1fbf, - 0xbea6, 0x08d5, - 0xbea8, 0x1fc0, - 0xbea9, 0x08d8, - 0xbeaa, 0x1fc1, - 0xbeab, 0x08da, - 0xbead, 0x1fc2, - 0xbeae, 0x08dd, - 0xbeb1, 0x1fc3, - 0xbeb2, 0x08e1, - 0xbeb5, 0x1fc4, - 0xbeb8, 0x08e7, - 0xbeba, 0x1fc7, - 0xbebb, 0x08ea, - 0xbec0, 0x1fc8, - 0xbec1, 0x08f0, - 0xbec9, 0x1fc9, - 0xbeca, 0x08f9, - 0xbed4, 0x1fca, - 0xbed5, 0x0904, - 0xbed9, 0x1fcb, - 0xbeda, 0x0909, - 0xbedd, 0x1fcc, - 0xbede, 0x090d, - 0xbee2, 0x1fcd, - 0xbee3, 0x0912, - 0xbee5, 0x1fce, - 0xbee6, 0x0915, - 0xbee7, 0x1fcf, - 0xbee8, 0x0917, - 0xbee9, 0x1fd0, - 0xbeea, 0x0919, - 0xbeee, 0x1fd1, - 0xbeef, 0x091e, - 0xbef5, 0x1fd2, - 0xbef6, 0x0925, - 0xbef7, 0x1fd3, - 0xbef9, 0x0928, - 0xbefb, 0x1fd5, - 0xbefd, 0x092c, - 0xbfa1, 0x092e, - 0xbfa5, 0x1fd7, - 0xbfa6, 0x0933, - 0xbfaa, 0x1fd8, - 0xbfab, 0x0938, - 0xbfad, 0x1fd9, - 0xbfae, 0x093b, - 0xbfc5, 0x1fda, - 0xbfc6, 0x0953, - 0xbfc7, 0x1fdb, - 0xbfc8, 0x0955, - 0xbfce, 0x1fdc, - 0xbfcf, 0x095c, - 0xbfd1, 0x1fdd, - 0xbfd3, 0x0960, - 0xbfd9, 0x1fdf, - 0xbfda, 0x0967, - 0xbfe2, 0x1fe0, - 0xbfe5, 0x0972, - 0xbfe9, 0x1fe3, - 0xbfea, 0x0977, - 0xbfeb, 0x1fe4, - 0xbfec, 0x0979, - 0xbfed, 0x1fe5, - 0xbfee, 0x097b, - 0xbff3, 0x1fe6, - 0xbff4, 0x0981, - 0xbff5, 0x1fe7, - 0xbff6, 0x0983, - 0xbff7, 0x1fe8, - 0xbff8, 0x0985, - 0xbff9, 0x1fe9, - 0xbffb, 0x0988, - 0xc0a1, 0x1feb, - 0xc0a2, 0x098d, - 0xc0a3, 0x1fec, - 0xc0a4, 0x098f, - 0xc0a9, 0x1fed, - 0xc0aa, 0x0995, - 0xc0ab, 0x1fee, - 0xc0ac, 0x0997, - 0xc0af, 0x1fef, - 0xc0b1, 0x099c, - 0xc0b3, 0x1ff1, - 0xc0b7, 0x09a2, - 0xc0b8, 0x1ff5, - 0xc0c5, 0x09b0, - 0xc0cc, 0x2002, - 0xc0ce, 0x09b9, - 0xc0d4, 0x2004, - 0xc0d5, 0x09c0, - 0xc0d6, 0x2005, - 0xc0d7, 0x09c2, - 0xc0d8, 0x2006, - 0xc0d9, 0x09c4, - 0xc0dd, 0x2007, - 0xc0de, 0x09c9, - 0xc0e0, 0x2008, - 0xc0e1, 0x09cc, - 0xc0e9, 0x2009, - 0xc0ea, 0x09d5, - 0xc0eb, 0x200a, - 0xc0ed, 0x09d8, - 0xc0ef, 0x200c, - 0xc0f2, 0x09dd, - 0xc0f6, 0x200f, - 0xc0fb, 0x09e6, - 0xc1a1, 0x09ea, - 0xc1a4, 0x2014, - 0xc1a6, 0x09ef, - 0xc1a9, 0x2016, - 0xc1ae, 0x09f7, - 0xc1af, 0x201b, - 0xc1b9, 0x0a02, - 0xc1bd, 0x2025, - 0xc1bf, 0x0a08, - 0xc1c2, 0x2027, - 0xc1c3, 0x0a0c, - 0xc1c6, 0x2028, - 0xc1c7, 0x0a10, - 0xc1c9, 0x2029, - 0xc1ca, 0x0a13, - 0xc1cd, 0x202a, - 0xc1ce, 0x0a17, - 0xc1d4, 0x202b, - 0xc1d5, 0x0a1e, - 0xc1d9, 0x202c, - 0xc1dc, 0x0a25, - 0xc1de, 0x202f, - 0xc1df, 0x0a28, - 0xc1e4, 0x2030, - 0xc1e6, 0x0a2f, - 0xc1e9, 0x2032, - 0xc1ea, 0x0a33, - 0xc1eb, 0x2033, - 0xc1ed, 0x0a36, - 0xc1f3, 0x2035, - 0xc1f4, 0x0a3d, - 0xc1f5, 0x2036, - 0xc1f6, 0x0a3f, - 0xc1fa, 0x2037, - 0xc1fe, 0x0a47, - 0xc2a1, 0x0a48, - 0xc2a2, 0x203b, - 0xc2a9, 0x0a50, - 0xc2ab, 0x2042, - 0xc2b4, 0x0a5b, - 0xc2b8, 0x204b, - 0xc2b9, 0x0a60, - 0xc2bc, 0x204c, - 0xc2be, 0x0a65, - 0xc2bf, 0x204e, - 0xc2c0, 0x0a67, - 0xc2c1, 0x204f, - 0xc2c2, 0x0a69, - 0xc2c5, 0x2050, - 0xc2c8, 0x0a6f, - 0xc2cb, 0x2053, - 0xc2d1, 0x0a78, - 0xc2d2, 0x2059, - 0xc2d3, 0x0a7a, - 0xc2d5, 0x205a, - 0xc2dd, 0x0a84, - 0xc2de, 0x2062, - 0xc2e3, 0x0a8a, - 0xc2e6, 0x2067, - 0xc2e9, 0x0a90, - 0xc2ea, 0x206a, - 0xc2ef, 0x0a96, - 0xc2f0, 0x206f, - 0xc2f1, 0x0a98, - 0xc2f2, 0x2070, - 0xc2f6, 0x0a9d, - 0xc2f7, 0x2074, - 0xc2fb, 0x0aa2, - 0xc3a1, 0x2078, - 0xc3a2, 0x0aa7, - 0xc3aa, 0x2079, - 0xc3ab, 0x0ab0, - 0xc3ad, 0x207a, - 0xc3ae, 0x0ab3, - 0xc3b3, 0x207b, - 0xc3b4, 0x1df9, - 0xc3b5, 0x0aba, - 0xc3be, 0x207c, - 0xc3bf, 0x0ac4, - 0xc3c5, 0x207d, - 0xc3c8, 0x0acd, - 0xc3cc, 0x2080, - 0xc3cd, 0x0ad2, - 0xc3ce, 0x2081, - 0xc3cf, 0x0ad4, - 0xc3d5, 0x2082, - 0xc3d7, 0x0adc, - 0xc3d9, 0x2084, - 0xc3da, 0x0adf, - 0xc3e0, 0x2085, - 0xc3e1, 0x0ae6, - 0xc3e5, 0x2086, - 0xc3e6, 0x0aeb, - 0xc3ed, 0x2087, - 0xc3ee, 0x0af3, - 0xc3f0, 0x2088, - 0xc3f1, 0x0af6, - 0xc3f5, 0x2089, - 0xc3f7, 0x0afc, - 0xc3f9, 0x208b, - 0xc3fb, 0x0b00, - 0xc3fd, 0x208d, - 0xc3fe, 0x0b03, - 0xc4a1, 0x0b04, - 0xc4b1, 0x208e, - 0xc4b2, 0x0b15, - 0xc4b6, 0x208f, - 0xc4b7, 0x0b1a, - 0xc4c6, 0x2090, - 0xc4c7, 0x0b2a, - 0xc4c9, 0x2091, - 0xc4ca, 0x0b2d, - 0xc4d1, 0x2092, - 0xc4d2, 0x0b35, - 0xc4d3, 0x2093, - 0xc4d7, 0x0b3a, - 0xc4d9, 0x2097, - 0xc4da, 0x0b3d, - 0xc4e2, 0x2098, - 0xc4e3, 0x0b46, - 0xc4e5, 0x2099, - 0xc4e6, 0x0b49, - 0xc4ec, 0x209a, - 0xc4ed, 0x0b50, - 0xc4f0, 0x209b, - 0xc4f2, 0x0b55, - 0xc4f4, 0x209d, - 0xc4f5, 0x0b58, - 0xc4f6, 0x209e, - 0xc4f9, 0x0b5c, - 0xc4fb, 0x20a1, - 0xc4fd, 0x0b60, - 0xc4fe, 0x20a3, - 0xc5a1, 0x20a4, - 0xc5a3, 0x0b64, - 0xc5a5, 0x20a6, - 0xc5aa, 0x0b6b, - 0xc5b1, 0x20ab, - 0xc5b2, 0x0b73, - 0xc5b5, 0x20ac, - 0xc5b6, 0x0b77, - 0xc5b7, 0x20ad, - 0xc5ba, 0x0b7b, - 0xc5bb, 0x20b0, - 0xc5bc, 0x0b7d, - 0xc5bd, 0x20b1, - 0xc5be, 0x0b7f, - 0xc5cc, 0x20b2, - 0xc5cd, 0x0b8e, - 0xc5d3, 0x20b3, - 0xc5d4, 0x0b95, - 0xc5e2, 0x20b4, - 0xc5e3, 0x0ba4, - 0xc5e7, 0x20b5, - 0xc5e8, 0x0ba9, - 0xc5f4, 0x20b6, - 0xc5f5, 0x0bb6, - 0xc6a1, 0x0bc0, - 0xc6ad, 0x20b7, - 0xc6af, 0x0bce, - 0xc6b5, 0x20b9, - 0xc6b7, 0x0bd6, - 0xc6bb, 0x20bb, - 0xc6bc, 0x0bdb, - 0xc6be, 0x20bc, - 0xc6bf, 0x0bde, - 0xc6c0, 0x20bd, - 0xc6c1, 0x0be0, - 0xc6c3, 0x20be, - 0xc6c5, 0x0be4, - 0xc6cb, 0x20c0, - 0xc6ce, 0x0bed, - 0xc6d3, 0x20c3, - 0xc6d4, 0x0bf3, - 0xc6d7, 0x20c4, - 0xc6d8, 0x0bf7, - 0xc6ea, 0x20c5, - 0xc6ec, 0x0c0b, - 0xc6ef, 0x20c7, - 0xc6f0, 0x0c0f, - 0xc6f1, 0x20c8, - 0xc6f2, 0x0c11, - 0xc6f4, 0x20c9, - 0xc6f5, 0x0c14, - 0xc6f8, 0x20ca, - 0xc6f9, 0x0c18, - 0xc6fd, 0x20cb, - 0xc6fe, 0x0c1d, - 0xc7a1, 0x0c1e, - 0xc7a3, 0x20cc, - 0xc7a4, 0x0c21, - 0xc7a5, 0x20cd, - 0xc7a7, 0x0c24, - 0xc7a8, 0x20cf, - 0xc7aa, 0x0c27, - 0xc7ab, 0x20d1, - 0xc7ac, 0x0c29, - 0xc7ae, 0x20d2, - 0xc7b0, 0x0c2d, - 0xc7b3, 0x20d4, - 0xc7b6, 0x0c33, - 0xc7b9, 0x20d7, - 0xc7bb, 0x0c38, - 0xc7bd, 0x20d9, - 0xc7bf, 0x0c3c, - 0xc7c0, 0x20db, - 0xc7c1, 0x0c3e, - 0xc7c2, 0x20dc, - 0xc7c3, 0x0c40, - 0xc7c5, 0x20dd, - 0xc7c6, 0x0c43, - 0xc7c7, 0x20de, - 0xc7c9, 0x0c46, - 0xc7cc, 0x20e0, - 0xc7cd, 0x0c4a, - 0xc7cf, 0x20e1, - 0xc7d0, 0x0c4d, - 0xc7d4, 0x20e2, - 0xc7d6, 0x0c53, - 0xc7d7, 0x20e4, - 0xc7d8, 0x0c55, - 0xc7de, 0x20e5, - 0xc7df, 0x0c5c, - 0xc7e1, 0x20e6, - 0xc7e4, 0x0c61, - 0xc7ea, 0x20e9, - 0xc7ef, 0x0c6c, - 0xc7f7, 0x20ee, - 0xc7f9, 0x0c76, - 0xc7fb, 0x20f0, - 0xc7fc, 0x0c79, - 0xc7fd, 0x20f1, - 0xc7fe, 0x0c7b, - 0xc8a1, 0x0c7c, - 0xc8a3, 0x20f2, - 0xc8a4, 0x0c7f, - 0xc8a7, 0x20f3, - 0xc8a9, 0x0c84, - 0xc8b0, 0x20f5, - 0xc8b1, 0x0c8c, - 0xc8b5, 0x20f6, - 0xc8b6, 0x0c91, - 0xc8b7, 0x20f7, - 0xc8b8, 0x0c93, - 0xc8c3, 0x20f8, - 0xc8c7, 0x0ca2, - 0xc8c8, 0x20fc, - 0xc8c9, 0x0ca4, - 0xc8cd, 0x20fd, - 0xc8ce, 0x0ca9, - 0xc8cf, 0x20fe, - 0xc8d0, 0x0cab, - 0xc8d2, 0x20ff, - 0xc8d3, 0x0cae, - 0xc8d9, 0x2100, - 0xc8da, 0x0cb5, - 0xc8de, 0x2101, - 0xc8df, 0x0cba, - 0xc8ed, 0x2102, - 0xc8ee, 0x0cc9, - 0xc8f1, 0x2103, - 0xc8f4, 0x0ccf, - 0xc8f7, 0x2106, - 0xc8f9, 0x0cd4, - 0xc8fa, 0x2108, - 0xc8fb, 0x0cd6, - 0xc8fc, 0x2109, - 0xc8fd, 0x0cd8, - 0xc9a1, 0x210a, - 0xc9a2, 0x0cdb, - 0xc9a5, 0x210b, - 0xc9a6, 0x0cdf, - 0xc9a7, 0x210c, - 0xc9a9, 0x0ce2, - 0xc9ac, 0x210e, - 0xc9ad, 0x0ce6, - 0xc9b1, 0x210f, - 0xc9b2, 0x0ceb, - 0xc9b4, 0x2110, - 0xc9b5, 0x0cee, - 0xc9b8, 0x2111, - 0xc9ba, 0x0cf3, - 0xc9c1, 0x2113, - 0xc9c3, 0x0cfc, - 0xc9c4, 0x2115, - 0xc9c5, 0x0cfe, - 0xc9c9, 0x2116, - 0xc9ca, 0x0d03, - 0xc9cb, 0x2117, - 0xc9cc, 0x0d05, - 0xc9cd, 0x2118, - 0xc9ce, 0x0d07, - 0xc9d5, 0x2119, - 0xc9d6, 0x0d0f, - 0xc9dc, 0x211a, - 0xc9dd, 0x0d16, - 0xc9de, 0x211b, - 0xc9df, 0x0d18, - 0xc9e1, 0x211c, - 0xc9e2, 0x0d1b, - 0xc9e3, 0x211d, - 0xc9e4, 0x0d1d, - 0xc9e5, 0x211e, - 0xc9e6, 0x0d1f, - 0xc9e8, 0x211f, - 0xc9e9, 0x0d22, - 0xc9f0, 0x2120, - 0xc9f1, 0x0d2a, - 0xc9f3, 0x2121, - 0xc9f5, 0x0d2e, - 0xc9f6, 0x2123, - 0xc9f7, 0x0d30, - 0xc9f8, 0x2124, - 0xc9fa, 0x0d33, - 0xc9fe, 0x2126, - 0xcaa1, 0x0d38, - 0xcaa4, 0x2127, - 0xcaa7, 0x0d3e, - 0xcaa8, 0x212a, - 0xcaa9, 0x0d40, - 0xcaaa, 0x212b, - 0xcaac, 0x0d43, - 0xcab1, 0x212d, - 0xcab2, 0x0d49, - 0xcab4, 0x212e, - 0xcab7, 0x0d4e, - 0xcabb, 0x2131, - 0xcabc, 0x0d53, - 0xcac6, 0x2132, - 0xcac7, 0x0d5e, - 0xcaca, 0x2133, - 0xcacb, 0x0d62, - 0xcacd, 0x2134, - 0xcacf, 0x0d66, - 0xcad3, 0x2136, - 0xcad5, 0x0d6c, - 0xcad9, 0x2138, - 0xcada, 0x0d71, - 0xcade, 0x2139, - 0xcadf, 0x0d76, - 0xcae0, 0x213a, - 0xcae1, 0x0d78, - 0xcae4, 0x213b, - 0xcae5, 0x0d7c, - 0xcae9, 0x213c, - 0xcaeb, 0x0d82, - 0xcaf4, 0x213e, - 0xcaf6, 0x0d8d, - 0xcaf7, 0x2140, - 0xcaf8, 0x0d8f, - 0xcafa, 0x2141, - 0xcafb, 0x0d92, - 0xcafd, 0x2142, - 0xcafe, 0x0d95, - 0xcba1, 0x0d96, - 0xcba7, 0x2143, - 0xcba8, 0x0d9d, - 0xcbab, 0x2144, - 0xcbac, 0x0da1, - 0xcbad, 0x2145, - 0xcbae, 0x0da3, - 0xcbb3, 0x2146, - 0xcbb4, 0x0da9, - 0xcbb5, 0x2147, - 0xcbb7, 0x0dac, - 0xcbb8, 0x2149, - 0xcbb9, 0x0dae, - 0xcbbf, 0x214a, - 0xcbc0, 0x0db5, - 0xcbc7, 0x214b, - 0xcbc8, 0x0dbd, - 0xcbc9, 0x214c, - 0xcbcd, 0x0dc2, - 0xcbcf, 0x2150, - 0xcbd1, 0x0dc6, - 0xcbd3, 0x2152, - 0xcbd4, 0x0dc9, - 0xcbd5, 0x2153, - 0xcbd6, 0x0dcb, - 0xcbdf, 0x2154, - 0xcbe1, 0x0dd6, - 0xcbe4, 0x2156, - 0xcbe5, 0x0dda, - 0xcbe6, 0x2157, - 0xcbe8, 0x0ddd, - 0xcbea, 0x2159, - 0xcbeb, 0x0de0, - 0xcbef, 0x215a, - 0xcbf1, 0x0de6, - 0xcbf5, 0x215c, - 0xcbf7, 0x0dec, - 0xcbf8, 0x215e, - 0xcbf9, 0x0dee, - 0xcca1, 0x215f, - 0xcca3, 0x0df6, - 0xcca8, 0x2161, - 0xcca9, 0x0dfc, - 0xccac, 0x2162, - 0xccad, 0x0e00, - 0xccaf, 0x2163, - 0xccb4, 0x0e07, - 0xccb7, 0x2168, - 0xccb9, 0x0e0c, - 0xccbe, 0x216a, - 0xccbf, 0x0e12, - 0xccc0, 0x216b, - 0xccc1, 0x0e14, - 0xcccc, 0x216c, - 0xcccd, 0x0e20, - 0xccce, 0x216d, - 0xcccf, 0x0e22, - 0xccd0, 0x216e, - 0xccd1, 0x0e24, - 0xccd6, 0x216f, - 0xccd7, 0x0e2a, - 0xccda, 0x2170, - 0xccdb, 0x0e2e, - 0xccdc, 0x2171, - 0xccdd, 0x0e30, - 0xcce0, 0x2172, - 0xcce1, 0x0e34, - 0xcce2, 0x2173, - 0xcce3, 0x0e36, - 0xcce5, 0x2174, - 0xcce6, 0x0e39, - 0xccf5, 0x2175, - 0xccf6, 0x0e49, - 0xccf9, 0x2176, - 0xccfb, 0x0e4e, - 0xccfc, 0x2178, - 0xcda1, 0x0e52, - 0xcdad, 0x217b, - 0xcdae, 0x0e5f, - 0xcdb3, 0x217c, - 0xcdb4, 0x0e65, - 0xcdb7, 0x217d, - 0xcdb8, 0x0e69, - 0xcdbc, 0x217e, - 0xcdbd, 0x0e6e, - 0xcdbf, 0x217f, - 0xcdc0, 0x0e71, - 0xcdc5, 0x2180, - 0xcdc6, 0x0e77, - 0xcdc7, 0x2181, - 0xcdc8, 0x0e79, - 0xcdd2, 0x2182, - 0xcdd3, 0x0e84, - 0xcdd4, 0x2183, - 0xcdd7, 0x0e88, - 0xcddd, 0x2186, - 0xcdde, 0x0e8f, - 0xcde0, 0x2187, - 0xcde1, 0x0e92, - 0xcde4, 0x2188, - 0xcde6, 0x0e97, - 0xcde7, 0x218a, - 0xcde8, 0x0e99, - 0xcdf2, 0x218b, - 0xcdf3, 0x0ea4, - 0xcdf8, 0x218c, - 0xcdf9, 0x0eaa, - 0xcea1, 0x0eb0, - 0xcea4, 0x218d, - 0xcea6, 0x0eb5, - 0xcea7, 0x218f, - 0xcea8, 0x0eb7, - 0xceaa, 0x2190, - 0xceae, 0x0ebd, - 0xceb0, 0x2194, - 0xceb2, 0x0ec1, - 0xceb3, 0x2196, - 0xceb4, 0x0ec3, - 0xcebd, 0x2197, - 0xcebe, 0x0ecd, - 0xcec0, 0x2198, - 0xcec1, 0x0ed0, - 0xcec5, 0x2199, - 0xcec7, 0x0ed6, - 0xcec8, 0x219b, - 0xcec9, 0x0ed8, - 0xceca, 0x219c, - 0xcecb, 0x0eda, - 0xcece, 0x219d, - 0xced2, 0x0ee1, - 0xced8, 0x21a1, - 0xcedb, 0x0eea, - 0xcedc, 0x21a4, - 0xcedd, 0x0eec, - 0xcede, 0x21a5, - 0xcee0, 0x0eef, - 0xceeb, 0x21a7, - 0xceec, 0x0efb, - 0xceed, 0x21a8, - 0xceee, 0x0efd, - 0xcef1, 0x21a9, - 0xcef2, 0x0f01, - 0xcef3, 0x21aa, - 0xcef4, 0x0f03, - 0xcefd, 0x21ab, - 0xcfa1, 0x0f0e, - 0xcfae, 0x21ad, - 0xcfaf, 0x0f1c, - 0xcfb0, 0x21ae, - 0xcfb1, 0x0f1e, - 0xcfb3, 0x21af, - 0xcfb4, 0x0f21, - 0xcfb7, 0x21b0, - 0xcfb9, 0x0f26, - 0xcfba, 0x21b2, - 0xcfbb, 0x0f28, - 0xcfbd, 0x21b3, - 0xcfbe, 0x0f2b, - 0xcfbf, 0x21b4, - 0xcfc2, 0x0f2f, - 0xcfc5, 0x21b7, - 0xcfc6, 0x0f33, - 0xcfc7, 0x21b8, - 0xcfc8, 0x0f35, - 0xcfca, 0x21b9, - 0xcfcc, 0x0f39, - 0xcfcd, 0x21bb, - 0xcfcf, 0x0f3c, - 0xcfd0, 0x21bd, - 0xcfd1, 0x0f3e, - 0xcfd4, 0x21be, - 0xcfd9, 0x0f46, - 0xcfda, 0x21c3, - 0xcfdb, 0x0f48, - 0xcfdc, 0x21c4, - 0xcfdd, 0x0f4a, - 0xcfdf, 0x21c5, - 0xcfe0, 0x0f4d, - 0xcfe2, 0x21c6, - 0xcfe3, 0x0f50, - 0xcfe7, 0x21c7, - 0xcfe8, 0x0f55, - 0xcfea, 0x21c8, - 0xcfeb, 0x0f58, - 0xcfec, 0x21c9, - 0xcfed, 0x0f5a, - 0xcfee, 0x21ca, - 0xcfef, 0x0f5c, - 0xcff4, 0x21cb, - 0xcff5, 0x0f62, - 0xcff9, 0x21cc, - 0xcffb, 0x0f68, - 0xcffe, 0x21ce, - 0xd0a1, 0x0f6c, - 0xd0a5, 0x21cf, - 0xd0a6, 0x0f71, - 0xd0ad, 0x21d0, - 0xd0af, 0x0f7a, - 0xd0b2, 0x21d2, - 0xd0b5, 0x0f80, - 0xd0ba, 0x21d5, - 0xd0bc, 0x0f87, - 0xd0bf, 0x21d7, - 0xd0c0, 0x0f8b, - 0xd0c6, 0x21d8, - 0xd0c7, 0x0f92, - 0xd0cb, 0x21d9, - 0xd0cc, 0x0f97, - 0xd0e2, 0x21da, - 0xd0e3, 0x0fae, - 0xd0e5, 0x21db, - 0xd0e6, 0x0fb1, - 0xd0eb, 0x21dc, - 0xd0ec, 0x0fb7, - 0xd0ed, 0x21dd, - 0xd0ee, 0x0fb9, - 0xd0f7, 0x21de, - 0xd0fa, 0x0fc5, - 0xd0fc, 0x21e1, - 0xd0fd, 0x0fc8, - 0xd1a1, 0x21e2, - 0xd1a3, 0x0fcc, - 0xd1a4, 0x21e4, - 0xd1a5, 0x0fce, - 0xd1a7, 0x21e5, - 0xd1a8, 0x0fd1, - 0xd1ab, 0x21e6, - 0xd1ac, 0x0fd5, - 0xd1af, 0x21e7, - 0xd1b2, 0x0fdb, - 0xd1b5, 0x21ea, - 0xd1b8, 0x0fe1, - 0xd1b9, 0x21ed, - 0xd1ba, 0x0fe3, - 0xd1bb, 0x21ee, - 0xd1bd, 0x0fe6, - 0xd1c6, 0x21f0, - 0xd1c9, 0x0ff2, - 0xd1cb, 0x21f3, - 0xd1cc, 0x0ff5, - 0xd1ce, 0x21f4, - 0xd1d0, 0x0ff9, - 0xd1d5, 0x21f6, - 0xd1d7, 0x1000, - 0xd1de, 0x21f8, - 0xd1df, 0x1008, - 0xd1e1, 0x21f9, - 0xd1e3, 0x100c, - 0xd1e8, 0x21fb, - 0xd1ea, 0x1013, - 0xd1ec, 0x21fd, - 0xd1ed, 0x1016, - 0xd1ee, 0x21fe, - 0xd1f0, 0x1019, - 0xd1f1, 0x2200, - 0xd1f2, 0x101b, - 0xd1f4, 0x2201, - 0xd1f5, 0x101e, - 0xd1f7, 0x2202, - 0xd1fa, 0x1023, - 0xd2a1, 0x1028, - 0xd2a2, 0x2205, - 0xd2a3, 0x102a, - 0xd2a5, 0x2206, - 0xd2a6, 0x102d, - 0xd2a9, 0x2207, - 0xd2aa, 0x1031, - 0xd2af, 0x2208, - 0xd2b0, 0x1037, - 0xd2b3, 0x2209, - 0xd2b4, 0x103b, - 0xd2b5, 0x220a, - 0xd2b7, 0x103e, - 0xd2bd, 0x220c, - 0xd2be, 0x1045, - 0xd2bf, 0x220d, - 0xd2c0, 0x1047, - 0xd2c3, 0x220e, - 0xd2c4, 0x104b, - 0xd2c5, 0x220f, - 0xd2c6, 0x104d, - 0xd2c7, 0x2210, - 0xd2c8, 0x104f, - 0xd2cf, 0x2211, - 0xd2d0, 0x1057, - 0xd2d5, 0x2212, - 0xd2d6, 0x105d, - 0xd2da, 0x2213, - 0xd2db, 0x1062, - 0xd2e4, 0x2214, - 0xd2e6, 0x106d, - 0xd2e8, 0x2216, - 0xd2ec, 0x1073, - 0xd2ef, 0x221a, - 0xd2f0, 0x1077, - 0xd2f1, 0x221b, - 0xd2f2, 0x1079, - 0xd2f5, 0x221c, - 0xd2f6, 0x107d, - 0xd2f8, 0x221d, - 0xd2f9, 0x1080, - 0xd2fb, 0x221e, - 0xd2fc, 0x1083, - 0xd2fe, 0x221f, - 0xd3a1, 0x1086, - 0xd3a3, 0x2220, - 0xd3ad, 0x1092, - 0xd3ae, 0x222a, - 0xd3af, 0x1094, - 0xd3b1, 0x222b, - 0xd3b2, 0x1097, - 0xd3b4, 0x222c, - 0xd3b7, 0x109c, - 0xd3b8, 0x222f, - 0xd3b9, 0x109e, - 0xd3bb, 0x2230, - 0xd3bc, 0x10a1, - 0xd3c5, 0x2231, - 0xd3c6, 0x10ab, - 0xd3c7, 0x2232, - 0xd3c8, 0x10ad, - 0xd3ca, 0x2233, - 0xd3cd, 0x10b2, - 0xd3d5, 0x2236, - 0xd3d6, 0x10bb, - 0xd3df, 0x2237, - 0xd3e1, 0x10c6, - 0xd3e3, 0x2239, - 0xd3e4, 0x10c9, - 0xd3e6, 0x223a, - 0xd3e7, 0x10cc, - 0xd3eb, 0x223b, - 0xd3ed, 0x10d2, - 0xd3ef, 0x223d, - 0xd3f0, 0x10d5, - 0xd3f4, 0x223e, - 0xd3f5, 0x10da, - 0xd3fc, 0x223f, - 0xd3fd, 0x10e2, - 0xd3fe, 0x2240, - 0xd4a1, 0x10e4, - 0xd4a4, 0x2241, - 0xd4a5, 0x10e8, - 0xd4a6, 0x2242, - 0xd4a9, 0x10ec, - 0xd4af, 0x2245, - 0xd4b3, 0x10f6, - 0xd4b5, 0x2249, - 0xd4b7, 0x10fa, - 0xd4b8, 0x224b, - 0xd4b9, 0x10fc, - 0xd4bc, 0x224c, - 0xd4bd, 0x1100, - 0xd4be, 0x224d, - 0xd4c0, 0x1103, - 0xd4c4, 0x224f, - 0xd4c5, 0x1108, - 0xd4c6, 0x2250, - 0xd4c8, 0x110b, - 0xd4c9, 0x2252, - 0xd4ca, 0x110d, - 0xd4cb, 0x2253, - 0xd4cf, 0x1112, - 0xd4d3, 0x2257, - 0xd4d4, 0x1117, - 0xd4d8, 0x2258, - 0xd4d9, 0x111c, - 0xd4dc, 0x2259, - 0xd4e1, 0x1124, - 0xd4e4, 0x225e, - 0xd4e5, 0x1128, - 0xd4e6, 0x225f, - 0xd4e7, 0x112a, - 0xd4ee, 0x2260, - 0xd4ef, 0x1132, - 0xd4f0, 0x2261, - 0xd4f5, 0x1138, - 0xd4f9, 0x2266, - 0xd4fa, 0x113d, - 0xd4fe, 0x2267, - 0xd5a1, 0x2268, - 0xd5a3, 0x1144, - 0xd5a9, 0x226a, - 0xd5aa, 0x114b, - 0xd5ab, 0x226b, - 0xd5ac, 0x114d, - 0xd5ae, 0x226c, - 0xd5af, 0x1150, - 0xd5b1, 0x226d, - 0xd5b2, 0x1153, - 0xd5b5, 0x226e, - 0xd5b9, 0x115a, - 0xd5bb, 0x2272, - 0xd5bc, 0x115d, - 0xd5bd, 0x2273, - 0xd5be, 0x115f, - 0xd5c0, 0x2274, - 0xd5c1, 0x1162, - 0xd5c5, 0x2275, - 0xd5c6, 0x1167, - 0xd5c7, 0x2276, - 0xd5c8, 0x1169, - 0xd5ca, 0x2277, - 0xd5cc, 0x116d, - 0xd5cd, 0x2279, - 0xd5ce, 0x116f, - 0xd5d4, 0x227a, - 0xd5d5, 0x1176, - 0xd5dd, 0x227b, - 0xd5df, 0x1180, - 0xd5e0, 0x227d, - 0xd5e1, 0x1182, - 0xd5e2, 0x227e, - 0xd5e3, 0x1184, - 0xd5ea, 0x227f, - 0xd5ed, 0x118e, - 0xd5ef, 0x2282, - 0xd5f0, 0x1191, - 0xd5f2, 0x2283, - 0xd5f4, 0x1195, - 0xd5f7, 0x15eb, - 0xd5f8, 0x1199, - 0xd6a1, 0x2285, - 0xd6a5, 0x11a4, - 0xd6af, 0x2289, - 0xd6b1, 0x11b0, - 0xd6b4, 0x228b, - 0xd6b5, 0x11b4, - 0xd6bb, 0x228c, - 0xd6bc, 0x11bb, - 0xd6bd, 0x228d, - 0xd6be, 0x11bd, - 0xd6bf, 0x228e, - 0xd6c1, 0x11c0, - 0xd6c4, 0x2290, - 0xd6c5, 0x11c4, - 0xd6ca, 0x2291, - 0xd6cb, 0x11ca, - 0xd6cd, 0x2292, - 0xd6ce, 0x11cd, - 0xd6d3, 0x2293, - 0xd6d4, 0x11d3, - 0xd6d5, 0x2294, - 0xd6d8, 0x11d7, - 0xd6da, 0x2297, - 0xd6db, 0x11da, - 0xd6df, 0x2298, - 0xd6e0, 0x11df, - 0xd6e1, 0x2299, - 0xd6e2, 0x11e1, - 0xd6e5, 0x229a, - 0xd6e6, 0x11e5, - 0xd6e7, 0x229b, - 0xd6e9, 0x11e8, - 0xd6ee, 0x229d, - 0xd6f0, 0x11ef, - 0xd6f2, 0x229f, - 0xd6f3, 0x11f2, - 0xd6f5, 0x22a0, - 0xd6f7, 0x11f6, - 0xd6fc, 0x22a2, - 0xd7a1, 0x11fe, - 0xd7a4, 0x22a5, - 0xd7a5, 0x1202, - 0xd7a8, 0x22a6, - 0xd7ab, 0x1208, - 0xd7ac, 0x22a9, - 0xd7ad, 0x120a, - 0xd7ae, 0x22aa, - 0xd7b2, 0x120f, - 0xd7b3, 0x22ae, - 0xd7b5, 0x1212, - 0xd7b6, 0x22b0, - 0xd7b7, 0x1214, - 0xd7b8, 0x22b1, - 0xd7bd, 0x121a, - 0xd7c7, 0x22b6, - 0xd7c8, 0x1225, - 0xd7ca, 0x22b7, - 0xd7cb, 0x1228, - 0xd7d5, 0x22b8, - 0xd7d6, 0x1233, - 0xd7db, 0x22b9, - 0xd7df, 0x123c, - 0xd7e7, 0x22bd, - 0xd7e8, 0x1245, - 0xd7e9, 0x22be, - 0xd7eb, 0x1248, - 0xd8a1, 0x1257, - 0xd8c4, 0x22c0, - 0xd8c5, 0x127b, - 0xd8c7, 0x22c1, - 0xd8c8, 0x127e, - 0xd8c9, 0x22c2, - 0xd8ca, 0x1280, - 0xd8cc, 0x22c3, - 0xd8ce, 0x1284, - 0xd8d0, 0x22c5, - 0xd8d2, 0x1288, - 0xd8d3, 0x22c7, - 0xd8d4, 0x128a, - 0xd8d9, 0x22c8, - 0xd8da, 0x1290, - 0xd8db, 0x22c9, - 0xd8dd, 0x1293, - 0xd8f1, 0x22cb, - 0xd8f2, 0x12a8, - 0xd8f6, 0x22cc, - 0xd8f8, 0x12ae, - 0xd9a1, 0x12b5, - 0xd9ad, 0x22ce, - 0xd9ae, 0x12c2, - 0xd9af, 0x22cf, - 0xd9b0, 0x12c4, - 0xd9b1, 0x22d0, - 0xd9b4, 0x12c8, - 0xd9c7, 0x22d3, - 0xd9c8, 0x12dc, - 0xd9cd, 0x22d4, - 0xd9d1, 0x12e5, - 0xd9dd, 0x22d8, - 0xd9de, 0x12f2, - 0xd9e1, 0x22d9, - 0xd9e2, 0x12f6, - 0xd9e4, 0x22da, - 0xd9e5, 0x12f9, - 0xd9e6, 0x22db, - 0xd9e7, 0x12fb, - 0xd9ec, 0x22dc, - 0xd9ed, 0x1301, - 0xd9f4, 0x22dd, - 0xd9f6, 0x130a, - 0xdaa1, 0x1313, - 0xdaa5, 0x22df, - 0xdae0, 0x1352, - 0xdaea, 0x231a, - 0xdaeb, 0x135d, - 0xdaf7, 0x231b, - 0xdaf8, 0x136a, - 0xdaf9, 0x231c, - 0xdafa, 0x136c, - 0xdafe, 0x231d, - 0xdba1, 0x1371, - 0xdba3, 0x231e, - 0xdba4, 0x1374, - 0xdba6, 0x231f, - 0xdba7, 0x1377, - 0xdba9, 0x2320, - 0xdbab, 0x137b, - 0xdbbb, 0x2322, - 0xdbbc, 0x138c, - 0xdbbd, 0x2323, - 0xdbbe, 0x138e, - 0xdbcf, 0x2324, - 0xdbd0, 0x13a0, - 0xdbd1, 0x2325, - 0xdbd2, 0x13a2, - 0xdbdb, 0x2326, - 0xdbdc, 0x13ac, - 0xdbde, 0x2327, - 0xdbdf, 0x13af, - 0xdbe2, 0x2328, - 0xdbe3, 0x13b3, - 0xdbe4, 0x2329, - 0xdbe5, 0x13b5, - 0xdbeb, 0x232a, - 0xdbec, 0x13bc, - 0xdbee, 0x232b, - 0xdbef, 0x13bf, - 0xdbf1, 0x232c, - 0xdbf2, 0x13c2, - 0xdbf5, 0x232d, - 0xdbf8, 0x13c8, - 0xdca1, 0x13cf, - 0xdcbc, 0x2330, - 0xdcbd, 0x13eb, - 0xdcbf, 0x2331, - 0xdcc0, 0x13ee, - 0xdcc2, 0x2332, - 0xdcc3, 0x13f1, - 0xdcc8, 0x2333, - 0xdccb, 0x13f9, - 0xdcd1, 0x2336, - 0xdcd2, 0x1400, - 0xdcd7, 0x2337, - 0xdcd8, 0x1406, - 0xdce0, 0x2338, - 0xdce1, 0x140f, - 0xdce3, 0x2339, - 0xdce5, 0x1413, - 0xdce9, 0x233b, - 0xdceb, 0x1419, - 0xdcf1, 0x233d, - 0xdcf2, 0x1420, - 0xdcf6, 0x233e, - 0xdcf7, 0x1425, - 0xdcf9, 0x233f, - 0xdcfa, 0x1428, - 0xdcfd, 0x2340, - 0xdda1, 0x2342, - 0xdda2, 0x142e, - 0xdda3, 0x2343, - 0xdda8, 0x1434, - 0xddaa, 0x2348, - 0xddac, 0x1438, - 0xddb2, 0x234a, - 0xddb3, 0x143f, - 0xddb5, 0x234b, - 0xddb6, 0x1442, - 0xddba, 0x234c, - 0xddbc, 0x1448, - 0xddd3, 0x234e, - 0xddd4, 0x1460, - 0xdddb, 0x234f, - 0xdddc, 0x1468, - 0xddde, 0x2350, - 0xdddf, 0x146b, - 0xdde4, 0x2351, - 0xdde5, 0x1471, - 0xddeb, 0x2352, - 0xddec, 0x1478, - 0xddf1, 0x2353, - 0xddf2, 0x147e, - 0xddf6, 0x2354, - 0xddf8, 0x1484, - 0xddfc, 0x2356, - 0xddfd, 0x1489, - 0xddfe, 0x2357, - 0xdea1, 0x148b, - 0xdead, 0x2358, - 0xdeae, 0x1498, - 0xdeb4, 0x2359, - 0xdeb5, 0x149f, - 0xdeba, 0x235a, - 0xdebb, 0x14a5, - 0xdec6, 0x235b, - 0xdec7, 0x14b1, - 0xdecf, 0x235c, - 0xded0, 0x14ba, - 0xded1, 0x235d, - 0xded3, 0x14bd, - 0xded8, 0x235f, - 0xded9, 0x14c3, - 0xdee2, 0x2360, - 0xdee3, 0x14cd, - 0xdee8, 0x2361, - 0xdee9, 0x14d3, - 0xdeec, 0x2362, - 0xdeed, 0x14d7, - 0xdef3, 0x2363, - 0xdef4, 0x14de, - 0xdefc, 0x2364, - 0xdefd, 0x14e7, - 0xdfa1, 0x14e9, - 0xdfa2, 0x2365, - 0xdfa4, 0x14ec, - 0xdfa5, 0x2367, - 0xdfa6, 0x14ee, - 0xdfb4, 0x2368, - 0xdfb5, 0x14fd, - 0xdfbc, 0x2369, - 0xdfbe, 0x1506, - 0xdfbf, 0x236b, - 0xdfc0, 0x1508, - 0xdfc2, 0x236c, - 0xdfc4, 0x150c, - 0xdfcc, 0x236e, - 0xdfcd, 0x1515, - 0xdfd0, 0x236f, - 0xdfd1, 0x1519, - 0xdfd5, 0x2370, - 0xdfd6, 0x151e, - 0xdfd8, 0x2371, - 0xdfda, 0x1522, - 0xdfdc, 0x2373, - 0xdfdd, 0x1525, - 0xdfe0, 0x2374, - 0xdfe1, 0x1529, - 0xdfe2, 0x2375, - 0xdfe3, 0x152b, - 0xdfe6, 0x2376, - 0xdfe7, 0x152f, - 0xdfe9, 0x2377, - 0xdfea, 0x1532, - 0xdfeb, 0x2378, - 0xdfec, 0x1534, - 0xdfef, 0x2379, - 0xdff0, 0x1538, - 0xdff5, 0x237a, - 0xdff6, 0x153e, - 0xdff9, 0x237b, - 0xdffa, 0x1542, - 0xe0a1, 0x1547, - 0xe0b6, 0x237c, - 0xe0b8, 0x155e, - 0xe0bf, 0x237e, - 0xe0c0, 0x1566, - 0xe0c8, 0x237f, - 0xe0c9, 0x156f, - 0xe0ce, 0x2380, - 0xe0cf, 0x1575, - 0xe0d3, 0x2381, - 0xe0d4, 0x157a, - 0xe0e0, 0x2382, - 0xe0e1, 0x1587, - 0xe0f0, 0x2383, - 0xe0f1, 0x1597, - 0xe0f8, 0x2384, - 0xe0f9, 0x159f, - 0xe0fc, 0x2385, - 0xe1a1, 0x15a5, - 0xe1ab, 0x2388, - 0xe1ac, 0x15b0, - 0xe1ad, 0x2389, - 0xe1ae, 0x15b2, - 0xe1b0, 0x238a, - 0xe1b1, 0x15b5, - 0xe1b4, 0x238b, - 0xe1b5, 0x15b9, - 0xe1bb, 0x238c, - 0xe1bc, 0x15c0, - 0xe1bd, 0x238d, - 0xe1be, 0x15c2, - 0xe1c0, 0x238e, - 0xe1c2, 0x15c6, - 0xe1c9, 0x2390, - 0xe1ca, 0x15ce, - 0xe1d0, 0x2391, - 0xe1d1, 0x15d5, - 0xe1db, 0x2392, - 0xe1dc, 0x15e0, - 0xe1e1, 0x07aa, - 0xe1e2, 0x2393, - 0xe1e3, 0x15e7, - 0xe1e7, 0x1198, - 0xe1e8, 0x15ec, - 0xe1ee, 0x2394, - 0xe1f0, 0x15f4, - 0xe1f6, 0x2396, - 0xe1f7, 0x15fb, - 0xe1f8, 0x2397, - 0xe1f9, 0x15fd, - 0xe1fd, 0x2398, - 0xe1fe, 0x1602, - 0xe2a1, 0x1603, - 0xe2a4, 0x2399, - 0xe2a5, 0x1607, - 0xe2a8, 0x239a, - 0xe2a9, 0x160b, - 0xe2bb, 0x239b, - 0xe2c5, 0x10c5, - 0xe2c6, 0x23a5, - 0xe2cf, 0x1631, - 0xe2d0, 0x23ae, - 0xe2d1, 0x1633, - 0xe2d9, 0x23af, - 0xe2da, 0x163c, - 0xe2e3, 0x23b0, - 0xe2e5, 0x1647, - 0xe2e6, 0x23b2, - 0xe2e7, 0x1649, - 0xe2e9, 0x23b3, - 0xe2ec, 0x164e, - 0xe2f8, 0x23b6, - 0xe2f9, 0x165b, - 0xe2fa, 0x23b7, - 0xe2fe, 0x1660, - 0xe3a1, 0x1661, - 0xe3a2, 0x23bb, - 0xe3a3, 0x1663, - 0xe3a5, 0x23bc, - 0xe3a6, 0x1666, - 0xe3ab, 0x23bd, - 0xe3ac, 0x166c, - 0xe3b4, 0x23be, - 0xe3b5, 0x1675, - 0xe3c5, 0x23bf, - 0xe3dc, 0x169c, - 0xe3e3, 0x23d6, - 0xe3e4, 0x16a4, - 0xe3ed, 0x23d7, - 0xe3ee, 0x16ae, - 0xe3f1, 0x23d8, - 0xe3f3, 0x16b3, - 0xe3f8, 0x23da, - 0xe3f9, 0x16b9, - 0xe3fe, 0x23db, - 0xe4a1, 0x16bf, - 0xe4a4, 0x23dc, - 0xe4a6, 0x16c4, - 0xe4ab, 0x23de, - 0xe4ac, 0x16ca, - 0xe4af, 0x23df, - 0xe4b2, 0x16d0, - 0xe4b5, 0x23e2, - 0xe4b7, 0x16d5, - 0xe4c2, 0x23e4, - 0xe4c3, 0x16e1, - 0xe4c5, 0x23e5, - 0xe4c6, 0x16e4, - 0xe4c9, 0x23e6, - 0xe4ca, 0x16e8, - 0xe4d9, 0x23e7, - 0xe4da, 0x16f8, - 0xe4dc, 0x23e8, - 0xe4dd, 0x16fb, - 0xe4de, 0x23e9, - 0xe4df, 0x16fd, - 0xe4e4, 0x23ea, - 0xe4e5, 0x1703, - 0xe4eb, 0x23eb, - 0xe4ed, 0x170b, - 0xe4f2, 0x23ed, - 0xe4f3, 0x1711, - 0xe4fe, 0x23ee, - 0xe5a1, 0x171d, - 0xe5b0, 0x23ef, - 0xe5b1, 0x172d, - 0xe5b9, 0x23f0, - 0xe5ba, 0x1736, - 0xe5c7, 0x23f1, - 0xe5c8, 0x1744, - 0xe5c9, 0x23f2, - 0xe5ca, 0x1746, - 0xe5ce, 0x23f3, - 0xe5cf, 0x174b, - 0xe5f0, 0x23f4, - 0xe5f1, 0x176d, - 0xe5f2, 0x23f5, - 0xe5f3, 0x176f, - 0xe5fc, 0x23f6, - 0xe5fe, 0x177a, - 0xe6a1, 0x177b, - 0xe6a3, 0x23f8, - 0xe6a4, 0x177e, - 0xe6ab, 0x23f9, - 0xe6ad, 0x1787, - 0xe6ae, 0x23fb, - 0xe6af, 0x1789, - 0xe6b4, 0x23fc, - 0xe6b6, 0x1790, - 0xe6bf, 0x23fe, - 0xe6c0, 0x179a, - 0xe6c8, 0x23ff, - 0xe6ca, 0x17a4, - 0xe6cd, 0x2401, - 0xe6ce, 0x17a8, - 0xe6e0, 0x2402, - 0xe7a1, 0x2421, - 0xe7db, 0x1813, - 0xe7e1, 0x245b, - 0xe7e3, 0x181b, - 0xe7e7, 0x245d, - 0xe7e8, 0x1820, - 0xe7ef, 0x245e, - 0xe7f0, 0x1828, - 0xe7f4, 0x245f, - 0xe7f7, 0x182f, - 0xe8a1, 0x1837, - 0xe8a8, 0x2462, - 0xe8a9, 0x183f, - 0xe8ac, 0x2463, - 0xe8ad, 0x1843, - 0xe8b6, 0x2464, - 0xe8b7, 0x184d, - 0xe8b8, 0x2465, - 0xe8bb, 0x1851, - 0xe8bf, 0x2468, - 0xe8c1, 0x1857, - 0xe8c5, 0x246a, - 0xe8c6, 0x185c, - 0xe8c7, 0x246b, - 0xe8ca, 0x1860, - 0xe8ce, 0x246e, - 0xe8cf, 0x1865, - 0xe8d0, 0x246f, - 0xe8d1, 0x1867, - 0xe8d3, 0x2470, - 0xe8d4, 0x186a, - 0xe8dd, 0x2471, - 0xe8de, 0x1874, - 0xe8df, 0x2472, - 0xe8e0, 0x1876, - 0xe8e2, 0x2473, - 0xe8e4, 0x187a, - 0xe8e5, 0x2475, - 0xe8e6, 0x187c, - 0xe8e7, 0x2476, - 0xe8e8, 0x187e, - 0xe8eb, 0x2477, - 0xe8ec, 0x1882, - 0xe8ed, 0x2478, - 0xe8ee, 0x1884, - 0xe8ef, 0x2479, - 0xe8f0, 0x1886, - 0xe8f9, 0x247a, - 0xe8fa, 0x1890, - 0xe8fc, 0x247b, - 0xe8fe, 0x1894, - 0xe9a1, 0x247d, - 0xe9a2, 0x1896, - 0xe9ad, 0x247e, - 0xe9ae, 0x18a2, - 0xe9b4, 0x247f, - 0xe9b6, 0x18aa, - 0xe9b7, 0x2481, - 0xe9b8, 0x18ac, - 0xe9c4, 0x2482, - 0xe9c5, 0x18b9, - 0xe9c6, 0x2483, - 0xe9c7, 0x18bb, - 0xe9c9, 0x2484, - 0xe9ca, 0x18be, - 0xe9d6, 0x2485, - 0xe9d7, 0x18cb, - 0xe9da, 0x2486, - 0xe9db, 0x18cf, - 0xe9e4, 0x2487, - 0xe9e5, 0x18d9, - 0xe9e6, 0x2488, - 0xe9e8, 0x18dc, - 0xe9e9, 0x248a, - 0xe9ea, 0x18de, - 0xe9eb, 0x248b, - 0xe9ec, 0x18e0, - 0xe9ed, 0x248c, - 0xeaa1, 0x249e, - 0xeaa6, 0x18f8, - 0xeaa7, 0x24a3, - 0xeaa9, 0x18fb, - 0xeab1, 0x24a5, - 0xeab2, 0x1904, - 0xeabc, 0x24a6, - 0xeabd, 0x190f, - 0xeaca, 0x24a7, - 0xeacb, 0x191d, - 0xeacd, 0x24a8, - 0xeace, 0x1920, - 0xead3, 0x24a9, - 0xead4, 0x1926, - 0xeada, 0x24aa, - 0xeaf0, 0x1942, - 0xeba1, 0x1951, - 0xeba7, 0x24c0, - 0xeba8, 0x1958, - 0xebaa, 0x24c1, - 0xebab, 0x195b, - 0xebb2, 0x24c2, - 0xebb3, 0x1963, - 0xebb9, 0x24c3, - 0xebba, 0x196a, - 0xebca, 0x24c4, - 0xebcc, 0x197c, - 0xebcd, 0x24c6, - 0xebce, 0x197e, - 0xebd6, 0x24c7, - 0xebd7, 0x1987, - 0xebda, 0x24c8, - 0xebdb, 0x198b, - 0xebe1, 0x24c9, - 0xebe2, 0x1992, - 0xebf7, 0x24ca, - 0xebf8, 0x19a8, - 0xeca1, 0x19af, - 0xeca3, 0x24cb, - 0xeca4, 0x19b2, - 0xeca9, 0x24cc, - 0xecaf, 0x19bd, - 0xecb1, 0x24d2, - 0xecb2, 0x19c0, - 0xecb4, 0x24d3, - 0xecb6, 0x19c4, - 0xecbe, 0x24d5, - 0xecc0, 0x19ce, - 0xecc1, 0x24d7, - 0xecc2, 0x19d0, - 0xecc7, 0x24d8, - 0xecc8, 0x19d6, - 0xeccb, 0x24d9, - 0xeccc, 0x19da, - 0xece2, 0x24da, - 0xece3, 0x19f1, - 0xecf2, 0x24db, - 0xecf3, 0x1a01, - 0xecf5, 0x24dc, - 0xecf6, 0x1a04, - 0xecf8, 0x24dd, - 0xecf9, 0x1a07, - 0xeda1, 0x24de, - 0xeda2, 0x1a0e, - 0xeda8, 0x24df, - 0xeda9, 0x1a15, - 0xedaf, 0x24e0, - 0xedb1, 0x1a1d, - 0xedb4, 0x24e2, - 0xedb5, 0x1a21, - 0xedb6, 0x24e3, - 0xedb7, 0x1a23, - 0xedb8, 0x24e4, - 0xedb9, 0x1a25, - 0xedba, 0x24e5, - 0xedbb, 0x1a27, - 0xedbf, 0x24e6, - 0xedc0, 0x1a2c, - 0xedc2, 0x24e7, - 0xedc4, 0x1a30, - 0xedcc, 0x24e9, - 0xedce, 0x1a3a, - 0xedd3, 0x24eb, - 0xedd4, 0x1a40, - 0xedd7, 0x24ec, - 0xedd8, 0x1a44, - 0xede8, 0x24ed, - 0xede9, 0x1a55, - 0xedee, 0x24ee, - 0xedef, 0x1a5b, - 0xedf9, 0x24ef, - 0xedfb, 0x1a67, - 0xeea1, 0x1a6b, - 0xeebc, 0x24f1, - 0xeebd, 0x1a87, - 0xeebf, 0x24f2, - 0xeec0, 0x1a8a, - 0xeec4, 0x24f3, - 0xefa1, 0x252e, - 0xeff2, 0x1b1a, - 0xf0a1, 0x1b27, - 0xf0a3, 0x257f, - 0xf0a4, 0x1b2a, - 0xf0af, 0x2580, - 0xf0da, 0x1b60, - 0xf0dc, 0x25ab, - 0xf0de, 0x1b64, - 0xf0df, 0x25ad, - 0xf0e0, 0x1b66, - 0xf0e9, 0x25ae, - 0xf0ea, 0x1b70, - 0xf0ec, 0x25af, - 0xf0ed, 0x1b73, - 0xf0ef, 0x25b0, - 0xf0f0, 0x1b76, - 0xf0f7, 0x25b1, - 0xf0f8, 0x1b7e, - 0xf0f9, 0x25b2, - 0xf0fa, 0x1b80, - 0xf0fc, 0x25b3, - 0xf0fd, 0x1b83, - 0xf1a1, 0x1b85, - 0xf1a8, 0x25b4, - 0xf1a9, 0x1b8d, - 0xf1ab, 0x25b5, - 0xf1ac, 0x1b90, - 0xf1ae, 0x25b6, - 0xf1af, 0x1b93, - 0xf1b2, 0x25b7, - 0xf1b3, 0x1b97, - 0xf1bc, 0x25b8, - 0xf1bd, 0x1ba1, - 0xf1c0, 0x25b9, - 0xf1c1, 0x1ba5, - 0xf1c9, 0x25ba, - 0xf1ca, 0x1bae, - 0xf1cd, 0x25bb, - 0xf1ce, 0x1bb2, - 0xf1cf, 0x25bc, - 0xf1d1, 0x1bb5, - 0xf1da, 0x25be, - 0xf1db, 0x1bbf, - 0xf1dc, 0x25bf, - 0xf1dd, 0x1bc1, - 0xf1e4, 0x25c0, - 0xf1e5, 0x1bc9, - 0xf1ec, 0x25c1, - 0xf1ed, 0x1bd1, - 0xf1ef, 0x25c2, - 0xf1f0, 0x1bd4, - 0xf1f7, 0x25c3, - 0xf1f8, 0x1bdc, - 0xf1f9, 0x25c4, - 0xf1fa, 0x1bde, - 0xf1fc, 0x25c5, - 0xf2a1, 0x25c8, - 0xf2ae, 0x1bf0, - 0xf2b1, 0x25d5, - 0xf2b3, 0x1bf5, - 0xf2b9, 0x25d7, - 0xf2ba, 0x1bfc, - 0xf2c3, 0x25d8, - 0xf2c4, 0x1c06, - 0xf2c9, 0x25d9, - 0xf2ca, 0x1c0c, - 0xf2cc, 0x25da, - 0xf2ce, 0x1c10, - 0xf2cf, 0x25dc, - 0xf2d0, 0x1c12, - 0xf2d3, 0x25dd, - 0xf2d4, 0x1c16, - 0xf2e5, 0x25de, - 0xf2e6, 0x1c28, - 0xf2ee, 0x25df, - 0xf2ef, 0x1c31, - 0xf2f7, 0x25e0, - 0xf2f8, 0x1c3a, - 0xf2fd, 0x25e1, - 0xf2fe, 0x1c40, - 0xf3a1, 0x1c41, - 0xf3bf, 0x25e2, - 0xf3c0, 0x1c60, - 0xf3c6, 0x25e3, - 0xf3c7, 0x1c67, - 0xf3c8, 0x25e4, - 0xf3c9, 0x1c69, - 0xf3d6, 0x25e5, - 0xf3d7, 0x1c77, - 0xf3d9, 0x25e6, - 0xf3da, 0x1c7a, - 0xf3e5, 0x25e7, - 0xf3e7, 0x1c87, - 0xf3ea, 0x25e9, - 0xf3eb, 0x1c8b, - 0xf3ec, 0x25ea, - 0xf3ed, 0x1c8d, - 0xf3ef, 0x25eb, - 0xf3f0, 0x1c90, - 0xf3f1, 0x25ec, - 0xf3f2, 0x1c92, - 0xf3fd, 0x25ed, - 0xf3fe, 0x1c9e, - 0xf4a1, 0x1c9f, - 0xf4a5, 0x25ee, - 0xf4a6, 0x1ca4, - 0xf4af, 0x25ef, - 0xf4b0, 0x1cae, - 0xf4b5, 0x25f0, - 0xf4b6, 0x1cb4, - 0xf4c1, 0x25f1, - 0xf4c2, 0x1cc0, - 0xf4c7, 0x25f2, - 0xf4c8, 0x1cc6, - 0xf4cf, 0x25f3, - 0xf4d1, 0x1ccf, - 0xf4d6, 0x25f5, - 0xf4d7, 0x1cd5, - 0xf4ea, 0x25f6, - 0xf4eb, 0x1ce9, - 0xf4ef, 0x25f7, - 0xf4f0, 0x1cee, - 0xf4f5, 0x25f8, - 0xf4f6, 0x1cf4, - 0xf5a1, 0x1cfd, - 0xf5a6, 0x25f9, - 0xf5a8, 0x1d04, - 0xf5ba, 0x25fb, - 0xf5bc, 0x1d18, - 0xf5c4, 0x25fd, - 0xf5c5, 0x1d21, - 0xf5c8, 0x25fe, - 0xf5c9, 0x1d25, - 0xf5ce, 0x25ff, - 0xf5d0, 0x1d2c, - 0xf5d1, 0x2601, - 0xf5d3, 0x1d2f, - 0xf5d9, 0x2603, - 0xf5da, 0x1d36, - 0xf5dc, 0x2604, - 0xf5dd, 0x1d39, - 0xf5e6, 0x2605, - 0xf5e8, 0x1d44, - 0xf5ef, 0x2607, - 0xf5f0, 0x1d4c, - 0xf5f2, 0x2608, - 0xf5f3, 0x1d4f, - 0xf5fc, 0x2609, - 0xf5fd, 0x1d59, - 0xf6a1, 0x1d5b, - 0xf6a3, 0x260a, - 0xf6a4, 0x1d5e, - 0xf6a6, 0x260b, - 0xf6a7, 0x1d61, - 0xf6a8, 0x260c, - 0xf6a9, 0x1d63, - 0xf6ab, 0x260d, - 0xf6ac, 0x1d66, - 0xf6b0, 0x260e, - 0xf6b1, 0x1d6b, - 0xf6b3, 0x260f, - 0xf6bf, 0x1d79, - 0xf6c5, 0x261b, - 0xf6c6, 0x1d80, - 0xf6c7, 0x261c, - 0xf6c8, 0x1d82, - 0xf6c9, 0x261d, - 0xf6ca, 0x1d84, - 0xf6cf, 0x261e, - 0xf7a1, 0x264e, - 0xf7b0, 0x1dc8, - 0xf7b2, 0x265d, - 0xf7b4, 0x1dcc, - 0xf7b5, 0x265f, - 0xf7b6, 0x1dce, - 0xf7bd, 0x2660, - 0xf7be, 0x1dd6, - 0xf7c3, 0x2661, - 0xf7c4, 0x1ddc, - 0xf7c5, 0x2662, - 0xf7c7, 0x1ddf, - 0xf7ca, 0x2664, - 0xf7cc, 0x1de4, - 0xf7cf, 0x2666, - 0xf7d1, 0x1de9, - 0xf7de, 0x2668, - 0xf7df, 0x1df7, - 0xf7e1, 0x0ab9, - 0xf7e2, 0x1dfa, - 0xf7f2, 0x2669, - 0xf7f3, 0x1e0b, - 0xf7f5, 0x266a, - 0xf7f6, 0x1e0e, - 0xf8a1, 0x266b, - 0xf8a7, 0x04cc, - 0xf8a8, 0x050a, - 0xf8a9, 0x0518, - 0xf8aa, 0x2671, - 0xf8ac, 0x0594, - 0xf8ad, 0x05ce, - 0xf8ae, 0x2673, - 0xf8af, 0x05f6, - 0xf8b0, 0x2674, - 0xf8b2, 0x0653, - 0xf8b3, 0x067e, - 0xf8b4, 0x2676, - 0xf8b5, 0x06c4, - 0xf8b6, 0x2677, - 0xf8b8, 0x073c, - 0xf8b9, 0x2679, - 0xf8bb, 0x07c3, - 0xf8bc, 0x267b, - 0xf8c0, 0x082b, - 0xf8c1, 0x267f, - 0xf8c2, 0x084e, - 0xf8c3, 0x0869, - 0xf8c4, 0x2680, - 0xf8c6, 0x090c, - 0xf8c7, 0x2682, - 0xf8c9, 0x0971, - 0xf8ca, 0x2684, - 0xf8cb, 0x099a, - 0xf8cd, 0x2685, - 0xf8ce, 0x09da, - 0xf8cf, 0x2686, - 0xf8d0, 0x09fa, - 0xf8d1, 0x2687, - 0xf8dc, 0x0bda, - 0xf8dd, 0x0bdd, - 0xf8de, 0x0bea, - 0xf8df, 0x0bec, - 0xf8e0, 0x0bf2, - 0xf8e1, 0x2692, - 0xf8e6, 0x0c92, - 0xf8e7, 0x0d1a, - 0xf8e8, 0x0d8c, - 0xf8e9, 0x0dbe, - 0xf8ea, 0x2697, - 0xf8eb, 0x0dfb, - 0xf8ec, 0x2698, - 0xf8ef, 0x0e70, - 0xf8f0, 0x269b, - 0xf8f1, 0x0ea3, - 0xf8f2, 0x269c, - 0xf8f8, 0x103d, - 0xf8f9, 0x10d9, - 0xf8fa, 0x26a2, - 0xf8fc, 0x10fb, - 0xf8fd, 0x1109, - 0xf8fe, 0x26a4, - 0xf9a1, 0x11a1, - 0xf9a2, 0x26a5, - 0xf9a3, 0x11ba, - 0xf9a4, 0x26a6, - 0xf9a6, 0x11d5, - 0xf9a7, 0x26a8, - 0xf9a8, 0x11fd, - 0xf9a9, 0x1219, - 0xa1a2, 0x023f, - 0xa1a3, 0x023e, - 0xa1aa, 0x0256, - 0xa1ab, 0x1e18, - 0xa1ad, 0x0257, - 0xa1b2, 0x0246, - 0xa1fe, 0x1e1a, - 0xa3a1, 0x0242, - 0xa3a8, 0x0244, - 0xa3ac, 0x023d, - 0xa3ae, 0x1e1b, - 0xa3ba, 0x0240, - 0xa3bd, 0x1e1c, - 0xa3bf, 0x0243, - 0xa3db, 0x1e1d, - 0xa3dd, 0x1e1e, - 0xa3df, 0x0258, - 0xa3fb, 0x0254, - 0xa3fd, 0x0255, - 0xa3fe, 0x1e1f, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 gb12GBTpcEUCVEnc16 = { - 1, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, - 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, - 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, - 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, - 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, - 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, - 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, - 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, - 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, - 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0000, - 0x1e20, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1e21, 0x1e22, 0x1e23 }, - gb12GBTpcEUCVMap2, 2303 -}; - -static Gushort gb12GBpcEUCHMap2[180] = { - 0x0000, 0x0000, - 0xa1a1, 0x0060, - 0xa2b1, 0x00be, - 0xa2e5, 0x00f0, - 0xa2f1, 0x00fa, - 0xa3a1, 0x0106, - 0xa4a1, 0x0164, - 0xa5a1, 0x01b7, - 0xa6a1, 0x020d, - 0xa6c1, 0x0225, - 0xa7a1, 0x025a, - 0xa7d1, 0x027b, - 0xa8a1, 0x029c, - 0xa8c5, 0x02bc, - 0xa9a4, 0x02e2, - 0xaaa1, 0x032e, - 0xaba1, 0x038c, - 0xb0a1, 0x03ac, - 0xb1a1, 0x040a, - 0xb2a1, 0x0468, - 0xb3a1, 0x04c6, - 0xb4a1, 0x0524, - 0xb5a1, 0x0582, - 0xb6a1, 0x05e0, - 0xb7a1, 0x063e, - 0xb8a1, 0x069c, - 0xb9a1, 0x06fa, - 0xbaa1, 0x0758, - 0xbba1, 0x07b6, - 0xbca1, 0x0814, - 0xbda1, 0x0872, - 0xbea1, 0x08d0, - 0xbfa1, 0x092e, - 0xc0a1, 0x098c, - 0xc1a1, 0x09ea, - 0xc2a1, 0x0a48, - 0xc3a1, 0x0aa6, - 0xc4a1, 0x0b04, - 0xc5a1, 0x0b62, - 0xc6a1, 0x0bc0, - 0xc7a1, 0x0c1e, - 0xc8a1, 0x0c7c, - 0xc9a1, 0x0cda, - 0xcaa1, 0x0d38, - 0xcba1, 0x0d96, - 0xcca1, 0x0df4, - 0xcda1, 0x0e52, - 0xcea1, 0x0eb0, - 0xcfa1, 0x0f0e, - 0xd0a1, 0x0f6c, - 0xd1a1, 0x0fca, - 0xd2a1, 0x1028, - 0xd3a1, 0x1086, - 0xd4a1, 0x10e4, - 0xd5a1, 0x1142, - 0xd6a1, 0x11a0, - 0xd7a1, 0x11fe, - 0xd8a1, 0x1257, - 0xd9a1, 0x12b5, - 0xdaa1, 0x1313, - 0xdba1, 0x1371, - 0xdca1, 0x13cf, - 0xdda1, 0x142d, - 0xdea1, 0x148b, - 0xdfa1, 0x14e9, - 0xe0a1, 0x1547, - 0xe1a1, 0x15a5, - 0xe2a1, 0x1603, - 0xe3a1, 0x1661, - 0xe4a1, 0x16bf, - 0xe5a1, 0x171d, - 0xe6a1, 0x177b, - 0xe7a1, 0x17d9, - 0xe8a1, 0x1837, - 0xe9a1, 0x1895, - 0xeaa1, 0x18f3, - 0xeba1, 0x1951, - 0xeca1, 0x19af, - 0xeda1, 0x1a0d, - 0xeea1, 0x1a6b, - 0xefa1, 0x1ac9, - 0xf0a1, 0x1b27, - 0xf1a1, 0x1b85, - 0xf2a1, 0x1be3, - 0xf3a1, 0x1c41, - 0xf4a1, 0x1c9f, - 0xf5a1, 0x1cfd, - 0xf6a1, 0x1d5b, - 0xf7a1, 0x1db9, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 gb12GBpcEUCHEnc16 = { - 0, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, - 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, - 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, - 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, - 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, - 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, - 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, - 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, - 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, - 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0000, - 0x1e20, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1e21, 0x1e22, 0x1e23 }, - gb12GBpcEUCHMap2, 90 -}; - -static Gushort gb12GBpcEUCVMap2[220] = { - 0x0000, 0x0000, - 0xa1a1, 0x0060, - 0xa2b1, 0x00be, - 0xa2e5, 0x00f0, - 0xa2f1, 0x00fa, - 0xa3a1, 0x0106, - 0xa4a1, 0x0164, - 0xa5a1, 0x01b7, - 0xa6a1, 0x020d, - 0xa6c1, 0x0225, - 0xa7a1, 0x025a, - 0xa7d1, 0x027b, - 0xa8a1, 0x029c, - 0xa8c5, 0x02bc, - 0xa9a4, 0x02e2, - 0xaaa1, 0x032e, - 0xaba1, 0x038c, - 0xb0a1, 0x03ac, - 0xb1a1, 0x040a, - 0xb2a1, 0x0468, - 0xb3a1, 0x04c6, - 0xb4a1, 0x0524, - 0xb5a1, 0x0582, - 0xb6a1, 0x05e0, - 0xb7a1, 0x063e, - 0xb8a1, 0x069c, - 0xb9a1, 0x06fa, - 0xbaa1, 0x0758, - 0xbba1, 0x07b6, - 0xbca1, 0x0814, - 0xbda1, 0x0872, - 0xbea1, 0x08d0, - 0xbfa1, 0x092e, - 0xc0a1, 0x098c, - 0xc1a1, 0x09ea, - 0xc2a1, 0x0a48, - 0xc3a1, 0x0aa6, - 0xc4a1, 0x0b04, - 0xc5a1, 0x0b62, - 0xc6a1, 0x0bc0, - 0xc7a1, 0x0c1e, - 0xc8a1, 0x0c7c, - 0xc9a1, 0x0cda, - 0xcaa1, 0x0d38, - 0xcba1, 0x0d96, - 0xcca1, 0x0df4, - 0xcda1, 0x0e52, - 0xcea1, 0x0eb0, - 0xcfa1, 0x0f0e, - 0xd0a1, 0x0f6c, - 0xd1a1, 0x0fca, - 0xd2a1, 0x1028, - 0xd3a1, 0x1086, - 0xd4a1, 0x10e4, - 0xd5a1, 0x1142, - 0xd6a1, 0x11a0, - 0xd7a1, 0x11fe, - 0xd8a1, 0x1257, - 0xd9a1, 0x12b5, - 0xdaa1, 0x1313, - 0xdba1, 0x1371, - 0xdca1, 0x13cf, - 0xdda1, 0x142d, - 0xdea1, 0x148b, - 0xdfa1, 0x14e9, - 0xe0a1, 0x1547, - 0xe1a1, 0x15a5, - 0xe2a1, 0x1603, - 0xe3a1, 0x1661, - 0xe4a1, 0x16bf, - 0xe5a1, 0x171d, - 0xe6a1, 0x177b, - 0xe7a1, 0x17d9, - 0xe8a1, 0x1837, - 0xe9a1, 0x1895, - 0xeaa1, 0x18f3, - 0xeba1, 0x1951, - 0xeca1, 0x19af, - 0xeda1, 0x1a0d, - 0xeea1, 0x1a6b, - 0xefa1, 0x1ac9, - 0xf0a1, 0x1b27, - 0xf1a1, 0x1b85, - 0xf2a1, 0x1be3, - 0xf3a1, 0x1c41, - 0xf4a1, 0x1c9f, - 0xf5a1, 0x1cfd, - 0xf6a1, 0x1d5b, - 0xf7a1, 0x1db9, - 0xa1a2, 0x023f, - 0xa1a3, 0x023e, - 0xa1aa, 0x0256, - 0xa1ab, 0x1e18, - 0xa1ad, 0x0257, - 0xa1b2, 0x0246, - 0xa1fe, 0x1e1a, - 0xa3a1, 0x0242, - 0xa3a8, 0x0244, - 0xa3ac, 0x023d, - 0xa3ae, 0x1e1b, - 0xa3ba, 0x0240, - 0xa3bd, 0x1e1c, - 0xa3bf, 0x0243, - 0xa3db, 0x1e1d, - 0xa3dd, 0x1e1e, - 0xa3df, 0x0258, - 0xa3fb, 0x0254, - 0xa3fd, 0x0255, - 0xa3fe, 0x1e1f, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 gb12GBpcEUCVEnc16 = { - 1, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, - 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, - 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, - 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, - 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, - 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, - 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, - 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, - 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, - 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0000, - 0x1e20, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1e21, 0x1e22, 0x1e23 }, - gb12GBpcEUCVMap2, 110 -}; - -static Gushort gb12UniGBUCS2HMap2[26922] = { - 0x0000, 0x0000, - 0x0020, 0x0001, - 0x00a4, 0x00a7, - 0x00a7, 0x00ab, - 0x00a8, 0x0066, - 0x00b0, 0x00a2, - 0x00b1, 0x007f, - 0x00d7, 0x0080, - 0x00e0, 0x029f, - 0x00e1, 0x029d, - 0x00e8, 0x02a3, - 0x00e9, 0x02a1, - 0x00ea, 0x02b5, - 0x00ec, 0x02a7, - 0x00ed, 0x02a5, - 0x00f2, 0x02ab, - 0x00f3, 0x02a9, - 0x00f7, 0x0081, - 0x00f9, 0x02af, - 0x00fa, 0x02ad, - 0x00fc, 0x02b4, - 0x0101, 0x029c, - 0x0113, 0x02a0, - 0x011b, 0x02a2, - 0x012b, 0x02a4, - 0x014d, 0x02a8, - 0x016b, 0x02ac, - 0x01ce, 0x029e, - 0x01d0, 0x02a6, - 0x01d2, 0x02aa, - 0x01d4, 0x02ae, - 0x01d6, 0x02b0, - 0x01d8, 0x02b1, - 0x01da, 0x02b2, - 0x01dc, 0x02b3, - 0x02c7, 0x0065, - 0x02c9, 0x0064, - 0x02ca, 0x26b3, - 0x02d9, 0x26b5, - 0x0391, 0x020d, - 0x03a3, 0x021e, - 0x03b1, 0x0225, - 0x03c3, 0x0236, - 0x0401, 0x0260, - 0x0410, 0x025a, - 0x0416, 0x0261, - 0x0436, 0x0282, - 0x0451, 0x0281, - 0x1e3f, 0x02b7, - 0x2010, 0x2722, - 0x2013, 0x26b6, - 0x2014, 0x0069, - 0x2015, 0x26b7, - 0x2016, 0x006b, - 0x2018, 0x006d, - 0x201c, 0x006f, - 0x2025, 0x26b8, - 0x2026, 0x006c, - 0x2030, 0x00aa, - 0x2032, 0x00a3, - 0x2035, 0x26b9, - 0x203b, 0x00b8, - 0x2103, 0x00a5, - 0x2105, 0x26ba, - 0x2109, 0x26bb, - 0x2116, 0x00ac, - 0x2121, 0x2720, - 0x2160, 0x00fa, - 0x2170, 0x26a9, - 0x2190, 0x00ba, - 0x2192, 0x00b9, - 0x2193, 0x00bc, - 0x2196, 0x26bc, - 0x2208, 0x0089, - 0x220f, 0x0086, - 0x2211, 0x0085, - 0x2215, 0x26c0, - 0x221a, 0x008b, - 0x221d, 0x0097, - 0x221e, 0x009d, - 0x221f, 0x26c1, - 0x2220, 0x008e, - 0x2223, 0x26c2, - 0x2225, 0x008d, - 0x2227, 0x0083, - 0x2229, 0x0088, - 0x222a, 0x0087, - 0x222b, 0x0091, - 0x222e, 0x0092, - 0x2234, 0x009f, - 0x2235, 0x009e, - 0x2236, 0x0082, - 0x2237, 0x008a, - 0x223d, 0x0096, - 0x2248, 0x0095, - 0x224c, 0x0094, - 0x2252, 0x26c3, - 0x2260, 0x0098, - 0x2261, 0x0093, - 0x2264, 0x009b, - 0x2266, 0x26c4, - 0x226e, 0x0099, - 0x2295, 0x2704, - 0x2299, 0x0090, - 0x22a5, 0x008c, - 0x22bf, 0x26c6, - 0x22ef, 0x006c, - 0x2312, 0x008f, - 0x2460, 0x00e6, - 0x2474, 0x00d2, - 0x2488, 0x00be, - 0x2500, 0x02e2, - 0x2550, 0x26c7, - 0x2581, 0x26eb, - 0x2593, 0x26fa, - 0x25a0, 0x00b5, - 0x25a1, 0x00b4, - 0x25b2, 0x00b7, - 0x25b3, 0x00b6, - 0x25bc, 0x26fd, - 0x25c6, 0x00b3, - 0x25c7, 0x00b2, - 0x25cb, 0x00af, - 0x25ce, 0x00b1, - 0x25cf, 0x00b0, - 0x25e2, 0x26ff, - 0x2605, 0x00ae, - 0x2606, 0x00ad, - 0x2609, 0x2703, - 0x2640, 0x00a1, - 0x2642, 0x00a0, - 0x3000, 0x0060, - 0x3003, 0x0067, - 0x3005, 0x0068, - 0x3006, 0x2728, - 0x3007, 0x1e17, - 0x3008, 0x0073, - 0x3010, 0x007d, - 0x3012, 0x2705, - 0x3013, 0x00bd, - 0x3014, 0x0071, - 0x3016, 0x007b, - 0x301d, 0x2706, - 0x3021, 0x2708, - 0x3041, 0x0164, - 0x309b, 0x2724, - 0x309d, 0x2729, - 0x30a1, 0x01b7, - 0x30fb, 0x0063, - 0x30fc, 0x2723, - 0x30fd, 0x2726, - 0x3105, 0x02bc, - 0x3220, 0x00f0, - 0x3231, 0x2721, - 0x32a3, 0x2711, - 0x338e, 0x2712, - 0x339c, 0x2714, - 0x33a1, 0x2717, - 0x33c4, 0x2718, - 0x33ce, 0x2719, - 0x33d1, 0x271a, - 0x33d5, 0x271c, - 0x4e00, 0x1042, - 0x4e01, 0x05e0, - 0x4e02, 0x2758, - 0x4e03, 0x0bfe, - 0x4e04, 0x2759, - 0x4e07, 0x0ea3, - 0x4e08, 0x116a, - 0x4e09, 0x0cd8, - 0x4e0a, 0x0d08, - 0x4e0b, 0x0f2f, - 0x4e0c, 0x1258, - 0x4e0d, 0x0482, - 0x4e0e, 0x10d0, - 0x4e0f, 0x275c, - 0x4e10, 0x125a, - 0x4e11, 0x0518, - 0x4e12, 0x275d, - 0x4e13, 0x1205, - 0x4e14, 0x0c4f, - 0x4e15, 0x125d, - 0x4e16, 0x0d57, - 0x4e17, 0x275e, - 0x4e18, 0x0c6d, - 0x4e19, 0x0464, - 0x4e1a, 0x103c, - 0x4e1b, 0x0557, - 0x4e1c, 0x05ea, - 0x4e1d, 0x0db4, - 0x4e1e, 0x125f, - 0x4e1f, 0x275f, - 0x4e22, 0x05e9, - 0x4e23, 0x2762, - 0x4e24, 0x0a06, - 0x4e25, 0x0ff8, - 0x4e26, 0x2763, - 0x4e27, 0x0cde, - 0x4e28, 0x1263, - 0x4e29, 0x2764, - 0x4e2a, 0x06f1, - 0x4e2b, 0x0fe7, - 0x4e2c, 0x169c, - 0x4e2d, 0x11cf, - 0x4e2e, 0x2765, - 0x4e30, 0x067e, - 0x4e31, 0x2767, - 0x4e32, 0x0531, - 0x4e33, 0x2768, - 0x4e34, 0x0a22, - 0x4e35, 0x2769, - 0x4e36, 0x1272, - 0x4e37, 0x276a, - 0x4e38, 0x0e99, - 0x4e39, 0x0585, - 0x4e3a, 0x0eb9, - 0x4e3b, 0x11f6, - 0x4e3c, 0x276b, - 0x4e3d, 0x09e1, - 0x4e3e, 0x0908, - 0x4e3f, 0x1265, - 0x4e40, 0x276c, - 0x4e43, 0x0b2e, - 0x4e44, 0x276f, - 0x4e45, 0x08f2, - 0x4e46, 0x2770, - 0x4e47, 0x1267, - 0x4e48, 0x0ab9, - 0x4e49, 0x106c, - 0x4e4a, 0x2771, - 0x4e4b, 0x11ad, - 0x4e4c, 0x0ee9, - 0x4e4d, 0x1148, - 0x4e4e, 0x07ac, - 0x4e4f, 0x0643, - 0x4e50, 0x09c1, - 0x4e51, 0x2772, - 0x4e52, 0x0bd8, - 0x4e53, 0x0b93, - 0x4e54, 0x0c44, - 0x4e55, 0x2773, - 0x4e56, 0x072d, - 0x4e57, 0x2774, - 0x4e58, 0x04f0, - 0x4e59, 0x1059, - 0x4e5a, 0x2775, - 0x4e5c, 0x1275, - 0x4e5d, 0x08f4, - 0x4e5e, 0x0c11, - 0x4e5f, 0x1039, - 0x4e60, 0x0f1d, - 0x4e61, 0x0f54, - 0x4e62, 0x2777, - 0x4e66, 0x0d80, - 0x4e67, 0x277b, - 0x4e69, 0x1276, - 0x4e6a, 0x277d, - 0x4e70, 0x0a99, - 0x4e71, 0x0a79, - 0x4e72, 0x2783, - 0x4e73, 0x0cc4, - 0x4e74, 0x2784, - 0x4e7e, 0x0c29, - 0x4e7f, 0x278e, - 0x4e82, 0x2059, - 0x4e83, 0x2791, - 0x4e86, 0x0a14, - 0x4e87, 0x2794, - 0x4e88, 0x10cd, - 0x4e89, 0x119a, - 0x4e8a, 0x2795, - 0x4e8b, 0x0d59, - 0x4e8c, 0x063d, - 0x4e8d, 0x1257, - 0x4e8e, 0x10bf, - 0x4e8f, 0x0984, - 0x4e90, 0x2796, - 0x4e91, 0x1109, - 0x4e92, 0x07ba, - 0x4e93, 0x1277, - 0x4e94, 0x0ef4, - 0x4e95, 0x08dd, - 0x4e96, 0x2797, - 0x4e98, 0x125e, - 0x4e99, 0x2799, - 0x4e9a, 0x0ff0, - 0x4e9b, 0x0f74, - 0x4e9c, 0x279a, - 0x4e9e, 0x21f1, - 0x4e9f, 0x1273, - 0x4ea0, 0x1303, - 0x4ea1, 0x0ea7, - 0x4ea2, 0x0947, - 0x4ea3, 0x279c, - 0x4ea4, 0x088c, - 0x4ea5, 0x075c, - 0x4ea6, 0x1067, - 0x4ea7, 0x04c1, - 0x4ea8, 0x0797, - 0x4ea9, 0x0b19, - 0x4eaa, 0x279d, - 0x4eab, 0x0f5a, - 0x4eac, 0x08d8, - 0x4ead, 0x0e55, - 0x4eae, 0x0a0a, - 0x4eaf, 0x279e, - 0x4eb2, 0x0c54, - 0x4eb3, 0x1305, - 0x4eb4, 0x27a1, - 0x4eb5, 0x1308, - 0x4eb6, 0x27a2, - 0x4eba, 0x0ca6, - 0x4ebb, 0x129f, - 0x4ebc, 0x27a6, - 0x4ebf, 0x1061, - 0x4ec0, 0x0d49, - 0x4ec1, 0x0ca5, - 0x4ec2, 0x12a2, - 0x4ec3, 0x12a0, - 0x4ec4, 0x127c, - 0x4ec5, 0x08c7, - 0x4ec6, 0x0bec, - 0x4ec7, 0x0515, - 0x4ec8, 0x27a9, - 0x4ec9, 0x12a1, - 0x4eca, 0x08c2, - 0x4ecb, 0x08ba, - 0x4ecc, 0x27aa, - 0x4ecd, 0x0caf, - 0x4ece, 0x0556, - 0x4ecf, 0x27ab, - 0x4ed1, 0x0a7f, - 0x4ed2, 0x27ad, - 0x4ed3, 0x049d, - 0x4ed4, 0x122d, - 0x4ed5, 0x0d62, - 0x4ed6, 0x0df0, - 0x4ed7, 0x116d, - 0x4ed8, 0x06b1, - 0x4ed9, 0x0f36, - 0x4eda, 0x27ae, - 0x4edd, 0x12ee, - 0x4ede, 0x12a6, - 0x4edf, 0x0c27, - 0x4ee0, 0x27b1, - 0x4ee1, 0x12a4, - 0x4ee2, 0x27b2, - 0x4ee3, 0x057d, - 0x4ee4, 0x0a37, - 0x4ee5, 0x105b, - 0x4ee6, 0x27b3, - 0x4ee8, 0x12a3, - 0x4ee9, 0x27b5, - 0x4eea, 0x104e, - 0x4eeb, 0x12a5, - 0x4eec, 0x0acc, - 0x4eed, 0x27b6, - 0x4ef0, 0x101f, - 0x4ef1, 0x27b9, - 0x4ef2, 0x11d8, - 0x4ef3, 0x12a8, - 0x4ef4, 0x27ba, - 0x4ef5, 0x12ab, - 0x4ef6, 0x0871, - 0x4ef7, 0x084e, - 0x4ef8, 0x27bb, - 0x4efb, 0x0ca9, - 0x4efc, 0x27be, - 0x4efd, 0x067a, - 0x4efe, 0x27bf, - 0x4eff, 0x065f, - 0x4f00, 0x27c0, - 0x4f01, 0x0c12, - 0x4f02, 0x27c1, - 0x4f09, 0x12ae, - 0x4f0a, 0x1048, - 0x4f0b, 0x27c8, - 0x4f0d, 0x0ef8, - 0x4f0e, 0x0832, - 0x4f0f, 0x0699, - 0x4f10, 0x0642, - 0x4f11, 0x0fa8, - 0x4f12, 0x27ca, - 0x4f17, 0x11d9, - 0x4f18, 0x10aa, - 0x4f19, 0x0804, - 0x4f1a, 0x07f6, - 0x4f1b, 0x12a7, - 0x4f1c, 0x27cf, - 0x4f1e, 0x0cda, - 0x4f1f, 0x0ebf, - 0x4f20, 0x052e, - 0x4f21, 0x27d1, - 0x4f22, 0x12a9, - 0x4f23, 0x27d2, - 0x4f24, 0x0d04, - 0x4f25, 0x12ac, - 0x4f26, 0x0a7e, - 0x4f27, 0x12ad, - 0x4f28, 0x27d3, - 0x4f2a, 0x0ec0, - 0x4f2b, 0x12af, - 0x4f2c, 0x27d5, - 0x4f2f, 0x0475, - 0x4f30, 0x0719, - 0x4f31, 0x27d8, - 0x4f32, 0x12b7, - 0x4f33, 0x27d9, - 0x4f34, 0x03f4, - 0x4f35, 0x27da, - 0x4f36, 0x0a2f, - 0x4f37, 0x27db, - 0x4f38, 0x0d25, - 0x4f39, 0x27dc, - 0x4f3a, 0x0dba, - 0x4f3b, 0x27dd, - 0x4f3c, 0x0dbb, - 0x4f3d, 0x12b8, - 0x4f3e, 0x27de, - 0x4f43, 0x05c9, - 0x4f44, 0x27e3, - 0x4f46, 0x058c, - 0x4f47, 0x27e5, - 0x4f4d, 0x0eca, - 0x4f4e, 0x05ae, - 0x4f4f, 0x11fe, - 0x4f50, 0x1251, - 0x4f51, 0x10b8, - 0x4f52, 0x27eb, - 0x4f53, 0x0e38, - 0x4f54, 0x27ec, - 0x4f55, 0x0785, - 0x4f56, 0x27ed, - 0x4f57, 0x12b6, - 0x4f58, 0x12f0, - 0x4f59, 0x10c5, - 0x4f5a, 0x12b3, - 0x4f5b, 0x068d, - 0x4f5c, 0x1254, - 0x4f5d, 0x12b4, - 0x4f5e, 0x12b0, - 0x4f5f, 0x12b5, - 0x4f60, 0x0b46, - 0x4f61, 0x27ee, - 0x4f63, 0x109b, - 0x4f64, 0x12aa, - 0x4f65, 0x12f1, - 0x4f66, 0x27f0, - 0x4f67, 0x12b1, - 0x4f68, 0x27f1, - 0x4f69, 0x0ba6, - 0x4f6a, 0x27f2, - 0x4f6c, 0x09bb, - 0x4f6d, 0x27f4, - 0x4f6f, 0x1019, - 0x4f70, 0x03e6, - 0x4f71, 0x27f6, - 0x4f73, 0x0844, - 0x4f74, 0x12ba, - 0x4f75, 0x27f8, - 0x4f76, 0x12b9, - 0x4f77, 0x27f9, - 0x4f7b, 0x12c0, - 0x4f7c, 0x12c2, - 0x4f7d, 0x27fd, - 0x4f7e, 0x12bf, - 0x4f7f, 0x0d50, - 0x4f80, 0x27fe, - 0x4f83, 0x12bd, - 0x4f84, 0x11b5, - 0x4f85, 0x2801, - 0x4f86, 0x1ff2, - 0x4f87, 0x2802, - 0x4f88, 0x0503, - 0x4f89, 0x12bc, - 0x4f8a, 0x2803, - 0x4f8b, 0x09e8, - 0x4f8c, 0x2804, - 0x4f8d, 0x0d63, - 0x4f8e, 0x2805, - 0x4f8f, 0x12be, - 0x4f90, 0x2806, - 0x4f91, 0x12bb, - 0x4f92, 0x2807, - 0x4f94, 0x12c4, - 0x4f95, 0x2809, - 0x4f96, 0x205d, - 0x4f97, 0x05f0, - 0x4f98, 0x280a, - 0x4f9b, 0x0702, - 0x4f9c, 0x280d, - 0x4f9d, 0x1047, - 0x4f9e, 0x280e, - 0x4fa0, 0x0f2d, - 0x4fa1, 0x2810, - 0x4fa3, 0x0a69, - 0x4fa4, 0x2812, - 0x4fa5, 0x0895, - 0x4fa6, 0x118d, - 0x4fa7, 0x04a7, - 0x4fa8, 0x0c45, - 0x4fa9, 0x0978, - 0x4faa, 0x12c1, - 0x4fab, 0x2813, - 0x4fac, 0x12c3, - 0x4fad, 0x2814, - 0x4fae, 0x0ef9, - 0x4faf, 0x07a5, - 0x4fb0, 0x2815, - 0x4fb5, 0x0c53, - 0x4fb6, 0x281a, - 0x4fbf, 0x044c, - 0x4fc0, 0x2823, - 0x4fc2, 0x269c, - 0x4fc3, 0x055c, - 0x4fc4, 0x062c, - 0x4fc5, 0x12c8, - 0x4fc6, 0x2825, - 0x4fca, 0x092e, - 0x4fcb, 0x2829, - 0x4fce, 0x12f2, - 0x4fcf, 0x0c4b, - 0x4fd0, 0x09e9, - 0x4fd1, 0x12cc, - 0x4fd2, 0x282c, - 0x4fd7, 0x0dcc, - 0x4fd8, 0x069a, - 0x4fd9, 0x2831, - 0x4fda, 0x12c9, - 0x4fdb, 0x2832, - 0x4fdc, 0x12cb, - 0x4fdd, 0x040c, - 0x4fde, 0x10c6, - 0x4fdf, 0x12cd, - 0x4fe0, 0x21b5, - 0x4fe1, 0x0f90, - 0x4fe2, 0x2833, - 0x4fe3, 0x12ca, - 0x4fe4, 0x2834, - 0x4fe6, 0x12c5, - 0x4fe7, 0x2836, - 0x4fe8, 0x12c6, - 0x4fe9, 0x09f2, - 0x4fea, 0x12c7, - 0x4feb, 0x2837, - 0x4fed, 0x0866, - 0x4fee, 0x0fa9, - 0x4fef, 0x06a4, - 0x4ff0, 0x2839, - 0x4ff1, 0x0912, - 0x4ff2, 0x283a, - 0x4ff3, 0x12d1, - 0x4ff4, 0x283b, - 0x4ff8, 0x12ce, - 0x4ff9, 0x283f, - 0x4ffa, 0x03be, - 0x4ffb, 0x2840, - 0x4ffe, 0x12d6, - 0x4fff, 0x2843, - 0x5000, 0x22cc, - 0x5001, 0x2844, - 0x5006, 0x2016, - 0x5007, 0x2849, - 0x5009, 0x1e62, - 0x500a, 0x284b, - 0x500b, 0x1f20, - 0x500c, 0x12d8, - 0x500d, 0x041f, - 0x500e, 0x284c, - 0x500f, 0x12d3, - 0x5010, 0x284d, - 0x5011, 0x207f, - 0x5012, 0x059a, - 0x5013, 0x284e, - 0x5014, 0x0922, - 0x5015, 0x284f, - 0x5018, 0x0e1b, - 0x5019, 0x07a9, - 0x501a, 0x1057, - 0x501b, 0x2852, - 0x501c, 0x12d7, - 0x501d, 0x2853, - 0x501f, 0x08b9, - 0x5020, 0x2855, - 0x5021, 0x04d0, - 0x5022, 0x2856, - 0x5025, 0x12d9, - 0x5026, 0x091a, - 0x5027, 0x2859, - 0x5028, 0x12da, - 0x5029, 0x12cf, - 0x502a, 0x0b42, - 0x502b, 0x205c, - 0x502c, 0x12d2, - 0x502d, 0x12d5, - 0x502e, 0x12d4, - 0x502f, 0x285a, - 0x503a, 0x114f, - 0x503b, 0x2865, - 0x503c, 0x11b4, - 0x503d, 0x2866, - 0x503e, 0x0c60, - 0x503f, 0x2867, - 0x5043, 0x12dc, - 0x5044, 0x286b, - 0x5047, 0x084c, - 0x5048, 0x12de, - 0x5049, 0x2194, - 0x504a, 0x286e, - 0x504c, 0x12d0, - 0x504d, 0x2870, - 0x504e, 0x12df, - 0x504f, 0x0bca, - 0x5050, 0x2871, - 0x5055, 0x12dd, - 0x5056, 0x2876, - 0x505a, 0x1253, - 0x505b, 0x287a, - 0x505c, 0x0e54, - 0x505d, 0x287b, - 0x5065, 0x0872, - 0x5066, 0x2883, - 0x506c, 0x12e0, - 0x506d, 0x2889, - 0x5074, 0x1e65, - 0x5075, 0x2281, - 0x5076, 0x0b7d, - 0x5077, 0x0e66, - 0x5078, 0x2890, - 0x507b, 0x12e1, - 0x507c, 0x2893, - 0x507e, 0x12db, - 0x507f, 0x04ca, - 0x5080, 0x098b, - 0x5081, 0x2895, - 0x5085, 0x06b0, - 0x5086, 0x2899, - 0x5088, 0x09e7, - 0x5089, 0x289b, - 0x508d, 0x0403, - 0x508e, 0x289f, - 0x5096, 0x22cd, - 0x5097, 0x28a7, - 0x5098, 0x210a, - 0x5099, 0x1e3e, - 0x509a, 0x28a8, - 0x50a2, 0x267f, - 0x50a3, 0x0579, - 0x50a4, 0x28b0, - 0x50a5, 0x12e2, - 0x50a6, 0x28b1, - 0x50a7, 0x12e3, - 0x50a8, 0x0525, - 0x50a9, 0x12e4, - 0x50aa, 0x28b2, - 0x50ac, 0x0562, - 0x50ad, 0x222e, - 0x50ae, 0x28b4, - 0x50b2, 0x03cc, - 0x50b3, 0x1e96, - 0x50b4, 0x22cb, - 0x50b5, 0x226c, - 0x50b6, 0x28b8, - 0x50b7, 0x2117, - 0x50b8, 0x28b9, - 0x50ba, 0x12e5, - 0x50bb, 0x0cee, - 0x50bc, 0x28bb, - 0x50be, 0x20e8, - 0x50bf, 0x28bd, - 0x50c2, 0x22d4, - 0x50c3, 0x28c0, - 0x50c5, 0x1fb9, - 0x50c6, 0x28c2, - 0x50c9, 0x22d8, - 0x50ca, 0x28c5, - 0x50cf, 0x0f5e, - 0x50d0, 0x28ca, - 0x50d1, 0x20df, - 0x50d2, 0x28cb, - 0x50d5, 0x20c2, - 0x50d6, 0x12e6, - 0x50d7, 0x28ce, - 0x50da, 0x0a0e, - 0x50db, 0x28d1, - 0x50de, 0x2195, - 0x50df, 0x28d4, - 0x50e5, 0x1fac, - 0x50e6, 0x12ea, - 0x50e7, 0x0ce7, - 0x50e8, 0x22d3, - 0x50e9, 0x28da, - 0x50ec, 0x12e9, - 0x50ed, 0x12e8, - 0x50ee, 0x12eb, - 0x50ef, 0x28dd, - 0x50f3, 0x0dd0, - 0x50f4, 0x28e1, - 0x50f5, 0x087a, - 0x50f6, 0x28e2, - 0x50f9, 0x1f81, - 0x50fa, 0x28e5, - 0x50fb, 0x0bc6, - 0x50fc, 0x28e6, - 0x5100, 0x2210, - 0x5101, 0x28ea, - 0x5102, 0x22cf, - 0x5103, 0x28eb, - 0x5104, 0x2213, - 0x5105, 0x28ec, - 0x5106, 0x12e7, - 0x5107, 0x12ec, - 0x5108, 0x1fe4, - 0x5109, 0x1f90, - 0x510a, 0x28ed, - 0x510b, 0x12ed, - 0x510c, 0x28ee, - 0x5110, 0x22d6, - 0x5111, 0x28f2, - 0x5112, 0x0cc0, - 0x5113, 0x28f3, - 0x5114, 0x22d0, - 0x5115, 0x22ce, - 0x5116, 0x28f4, - 0x5118, 0x2681, - 0x5119, 0x28f6, - 0x511f, 0x1e76, - 0x5120, 0x28fc, - 0x5121, 0x09c7, - 0x5122, 0x28fd, - 0x512a, 0x2231, - 0x512b, 0x2905, - 0x5132, 0x1e93, - 0x5133, 0x290c, - 0x5137, 0x22d2, - 0x5138, 0x2910, - 0x513a, 0x22d7, - 0x513b, 0x22d5, - 0x513c, 0x22d1, - 0x513d, 0x2912, - 0x513f, 0x0638, - 0x5140, 0x1259, - 0x5141, 0x110d, - 0x5142, 0x2914, - 0x5143, 0x10ed, - 0x5144, 0x0fa1, - 0x5145, 0x0509, - 0x5146, 0x1178, - 0x5147, 0x2915, - 0x5148, 0x0f35, - 0x5149, 0x073b, - 0x514a, 0x2916, - 0x514b, 0x0958, - 0x514c, 0x2917, - 0x514d, 0x0ae7, - 0x514e, 0x2918, - 0x5151, 0x0611, - 0x5152, 0x1ee5, - 0x5153, 0x291b, - 0x5154, 0x0e74, - 0x5155, 0x1302, - 0x5156, 0x1304, - 0x5157, 0x291c, - 0x515a, 0x0594, - 0x515b, 0x291f, - 0x515c, 0x05f4, - 0x515d, 0x2920, - 0x5162, 0x08d3, - 0x5163, 0x2925, - 0x5165, 0x0cc6, - 0x5166, 0x2927, - 0x5168, 0x0c86, - 0x5169, 0x2025, - 0x516a, 0x2929, - 0x516b, 0x03d6, - 0x516c, 0x0704, - 0x516d, 0x0a42, - 0x516e, 0x12f6, - 0x516f, 0x292a, - 0x5170, 0x09a7, - 0x5171, 0x070b, - 0x5172, 0x292b, - 0x5173, 0x0731, - 0x5174, 0x0f96, - 0x5175, 0x0461, - 0x5176, 0x0c03, - 0x5177, 0x090e, - 0x5178, 0x05c5, - 0x5179, 0x1225, - 0x517a, 0x292c, - 0x517b, 0x1021, - 0x517c, 0x0859, - 0x517d, 0x0d75, - 0x517e, 0x292d, - 0x5180, 0x0830, - 0x5181, 0x12fa, - 0x5182, 0x129d, - 0x5183, 0x292f, - 0x5185, 0x0b3d, - 0x5186, 0x2931, - 0x5188, 0x06cf, - 0x5189, 0x0c98, - 0x518a, 0x2933, - 0x518c, 0x04a8, - 0x518d, 0x111c, - 0x518e, 0x2935, - 0x5192, 0x0ab5, - 0x5193, 0x2939, - 0x5195, 0x0ae6, - 0x5196, 0x1314, - 0x5197, 0x0cba, - 0x5198, 0x293b, - 0x5199, 0x0f7f, - 0x519a, 0x293c, - 0x519b, 0x092b, - 0x519c, 0x0b6a, - 0x519d, 0x293d, - 0x51a0, 0x0733, - 0x51a1, 0x2940, - 0x51a2, 0x1315, - 0x51a3, 0x2941, - 0x51a4, 0x10ec, - 0x51a5, 0x1316, - 0x51a6, 0x2942, - 0x51ab, 0x130f, - 0x51ac, 0x05eb, - 0x51ad, 0x2947, - 0x51af, 0x0688, - 0x51b0, 0x0462, - 0x51b1, 0x1310, - 0x51b2, 0x050a, - 0x51b3, 0x0925, - 0x51b4, 0x2949, - 0x51b5, 0x0983, - 0x51b6, 0x1038, - 0x51b7, 0x09cf, - 0x51b8, 0x294a, - 0x51bb, 0x05f2, - 0x51bc, 0x1312, - 0x51bd, 0x1311, - 0x51be, 0x294d, - 0x51c0, 0x08ea, - 0x51c1, 0x294f, - 0x51c4, 0x0bff, - 0x51c5, 0x2952, - 0x51c6, 0x1219, - 0x51c7, 0x1313, - 0x51c8, 0x2953, - 0x51c9, 0x0a02, - 0x51ca, 0x2954, - 0x51cb, 0x05d3, - 0x51cc, 0x0a31, - 0x51cd, 0x1ecf, - 0x51ce, 0x2955, - 0x51cf, 0x0868, - 0x51d0, 0x2956, - 0x51d1, 0x0558, - 0x51d2, 0x2957, - 0x51db, 0x0a26, - 0x51dc, 0x2960, - 0x51dd, 0x0b60, - 0x51de, 0x2961, - 0x51e0, 0x082b, - 0x51e1, 0x064f, - 0x51e2, 0x2963, - 0x51e4, 0x068c, - 0x51e5, 0x2965, - 0x51eb, 0x1300, - 0x51ec, 0x296b, - 0x51ed, 0x0bdd, - 0x51ee, 0x296c, - 0x51ef, 0x093a, - 0x51f0, 0x07e0, - 0x51f1, 0x1fd9, - 0x51f2, 0x296d, - 0x51f3, 0x05ab, - 0x51f4, 0x296e, - 0x51f5, 0x1399, - 0x51f6, 0x0fa2, - 0x51f7, 0x296f, - 0x51f8, 0x0e6a, - 0x51f9, 0x03c7, - 0x51fa, 0x051b, - 0x51fb, 0x080c, - 0x51fc, 0x139a, - 0x51fd, 0x0766, - 0x51fe, 0x2970, - 0x51ff, 0x1127, - 0x5200, 0x0597, - 0x5201, 0x05d4, - 0x5202, 0x128c, - 0x5203, 0x0cab, - 0x5204, 0x2971, - 0x5206, 0x0673, - 0x5207, 0x0c4d, - 0x5208, 0x128d, - 0x5209, 0x2973, - 0x520a, 0x093c, - 0x520b, 0x2974, - 0x520d, 0x138b, - 0x520e, 0x128e, - 0x520f, 0x2976, - 0x5211, 0x0f97, - 0x5212, 0x07c3, - 0x5213, 0x2978, - 0x5216, 0x196e, - 0x5217, 0x0a19, - 0x5218, 0x0a3e, - 0x5219, 0x1135, - 0x521a, 0x06d0, - 0x521b, 0x0537, - 0x521c, 0x297b, - 0x521d, 0x051a, - 0x521e, 0x297c, - 0x5220, 0x0cf7, - 0x5221, 0x297e, - 0x5224, 0x0b91, - 0x5225, 0x2981, - 0x5228, 0x0b9a, - 0x5229, 0x09e6, - 0x522a, 0x2984, - 0x522b, 0x0459, - 0x522c, 0x2985, - 0x522d, 0x128f, - 0x522e, 0x0727, - 0x522f, 0x2986, - 0x5230, 0x059e, - 0x5231, 0x2987, - 0x5233, 0x1290, - 0x5234, 0x2989, - 0x5236, 0x11c5, - 0x5237, 0x0d97, - 0x5238, 0x0c8a, - 0x5239, 0x0ceb, - 0x523a, 0x054f, - 0x523b, 0x0959, - 0x523c, 0x298b, - 0x523d, 0x074d, - 0x523e, 0x298c, - 0x523f, 0x1291, - 0x5241, 0x0626, - 0x5242, 0x0834, - 0x5243, 0x0e3d, - 0x5244, 0x22c8, - 0x5245, 0x298d, - 0x5247, 0x2263, - 0x5248, 0x298f, - 0x524a, 0x0f64, - 0x524b, 0x2683, - 0x524c, 0x1293, - 0x524d, 0x0c2d, - 0x524e, 0x2991, - 0x5250, 0x0729, - 0x5251, 0x0874, - 0x5252, 0x2993, - 0x5254, 0x0e31, - 0x5255, 0x2995, - 0x5256, 0x0be9, - 0x5257, 0x2996, - 0x525b, 0x1f17, - 0x525c, 0x1296, - 0x525d, 0x299a, - 0x525e, 0x1294, - 0x525f, 0x299b, - 0x5261, 0x1295, - 0x5262, 0x299d, - 0x5265, 0x0409, - 0x5266, 0x29a0, - 0x5267, 0x0916, - 0x5268, 0x29a1, - 0x5269, 0x0d3a, - 0x526a, 0x0867, - 0x526b, 0x29a2, - 0x526e, 0x1f2b, - 0x526f, 0x06ac, - 0x5270, 0x29a5, - 0x5272, 0x06e9, - 0x5273, 0x29a7, - 0x5274, 0x22ca, - 0x5275, 0x1e99, - 0x5276, 0x29a8, - 0x527d, 0x1298, - 0x527e, 0x29af, - 0x527f, 0x089c, - 0x5280, 0x29b0, - 0x5281, 0x129a, - 0x5282, 0x1299, - 0x5283, 0x1f4f, - 0x5284, 0x29b1, - 0x5287, 0x1fcf, - 0x5288, 0x0bbd, - 0x5289, 0x2036, - 0x528a, 0x1f3a, - 0x528b, 0x29b4, - 0x528c, 0x22c9, - 0x528d, 0x1f99, - 0x528e, 0x29b5, - 0x5290, 0x129b, - 0x5291, 0x1f75, - 0x5292, 0x29b7, - 0x5293, 0x129c, - 0x5294, 0x29b8, - 0x529b, 0x09ef, - 0x529c, 0x29bf, - 0x529d, 0x0c8b, - 0x529e, 0x03f7, - 0x529f, 0x06ff, - 0x52a0, 0x0846, - 0x52a1, 0x0f00, - 0x52a2, 0x138d, - 0x52a3, 0x0a1c, - 0x52a4, 0x29c0, - 0x52a8, 0x05ee, - 0x52a9, 0x11f9, - 0x52aa, 0x0b6d, - 0x52ab, 0x08aa, - 0x52ac, 0x138e, - 0x52ae, 0x29c4, - 0x52b1, 0x09e3, - 0x52b2, 0x08d1, - 0x52b3, 0x09b8, - 0x52b4, 0x29c7, - 0x52be, 0x1390, - 0x52bf, 0x0d5d, - 0x52c0, 0x29d1, - 0x52c1, 0x1fbe, - 0x52c2, 0x29d2, - 0x52c3, 0x0471, - 0x52c4, 0x29d3, - 0x52c7, 0x10a7, - 0x52c8, 0x29d6, - 0x52c9, 0x0ae8, - 0x52ca, 0x29d7, - 0x52cb, 0x0fd4, - 0x52cc, 0x29d8, - 0x52d0, 0x1392, - 0x52d1, 0x29dc, - 0x52d2, 0x09c0, - 0x52d3, 0x29dd, - 0x52d5, 0x1ecd, - 0x52d6, 0x1393, - 0x52d7, 0x29df, - 0x52d8, 0x093e, - 0x52d9, 0x21a9, - 0x52da, 0x29e0, - 0x52db, 0x21e6, - 0x52dc, 0x29e1, - 0x52dd, 0x2127, - 0x52de, 0x2003, - 0x52df, 0x0b1f, - 0x52e0, 0x29e2, - 0x52e2, 0x2132, - 0x52e3, 0x29e4, - 0x52e4, 0x0c57, - 0x52e5, 0x29e5, - 0x52f0, 0x1394, - 0x52f1, 0x2323, - 0x52f2, 0x29f0, - 0x52f5, 0x2011, - 0x52f6, 0x29f3, - 0x52f8, 0x20f5, - 0x52f9, 0x12fc, - 0x52fa, 0x0d10, - 0x52fb, 0x29f5, - 0x52fe, 0x070d, - 0x52ff, 0x0eff, - 0x5300, 0x110b, - 0x5301, 0x29f8, - 0x5305, 0x0407, - 0x5306, 0x0555, - 0x5307, 0x29fc, - 0x5308, 0x0fa4, - 0x5309, 0x29fd, - 0x530d, 0x12fd, - 0x530e, 0x2a01, - 0x530f, 0x14b5, - 0x5310, 0x12ff, - 0x5311, 0x2a02, - 0x5315, 0x1266, - 0x5316, 0x07c4, - 0x5317, 0x041a, - 0x5318, 0x2a06, - 0x5319, 0x04fc, - 0x531a, 0x1284, - 0x531b, 0x2a07, - 0x531d, 0x1114, - 0x531e, 0x2a09, - 0x5320, 0x0884, - 0x5321, 0x097c, - 0x5322, 0x2a0b, - 0x5323, 0x0f28, - 0x5324, 0x2a0c, - 0x5326, 0x1286, - 0x5327, 0x2a0e, - 0x532a, 0x0668, - 0x532b, 0x2a11, - 0x532d, 0x22c5, - 0x532e, 0x1287, - 0x532f, 0x1f5e, - 0x5330, 0x2a13, - 0x5331, 0x22c6, - 0x5332, 0x2a14, - 0x5339, 0x0bc4, - 0x533a, 0x0c75, - 0x533b, 0x1044, - 0x533c, 0x2a1b, - 0x533e, 0x1288, - 0x533f, 0x0b47, - 0x5340, 0x20ef, - 0x5341, 0x0d45, - 0x5342, 0x2a1d, - 0x5343, 0x0c24, - 0x5344, 0x2a1e, - 0x5345, 0x125c, - 0x5346, 0x2a1f, - 0x5347, 0x0d36, - 0x5348, 0x0ef6, - 0x5349, 0x07f1, - 0x534a, 0x03f6, - 0x534b, 0x2a20, - 0x534e, 0x07bf, - 0x534f, 0x0f78, - 0x5350, 0x2a23, - 0x5351, 0x0419, - 0x5352, 0x1241, - 0x5353, 0x121c, - 0x5354, 0x21d0, - 0x5355, 0x0586, - 0x5356, 0x0a9b, - 0x5357, 0x0b32, - 0x5358, 0x2a24, - 0x535a, 0x0470, - 0x535b, 0x2a26, - 0x535c, 0x047e, - 0x535d, 0x2a27, - 0x535e, 0x044e, - 0x535f, 0x14fa, - 0x5360, 0x115d, - 0x5361, 0x0935, - 0x5362, 0x0a53, - 0x5363, 0x128b, - 0x5364, 0x0a58, - 0x5365, 0x2a28, - 0x5366, 0x128a, - 0x5367, 0x0ee3, - 0x5368, 0x2a29, - 0x5369, 0x1352, - 0x536a, 0x2a2a, - 0x536b, 0x0ecf, - 0x536c, 0x2a2b, - 0x536e, 0x126a, - 0x536f, 0x0ab3, - 0x5370, 0x1086, - 0x5371, 0x0eb2, - 0x5372, 0x2a2d, - 0x5373, 0x0827, - 0x5374, 0x0c8f, - 0x5375, 0x0a78, - 0x5376, 0x2a2e, - 0x5377, 0x091c, - 0x5378, 0x0f81, - 0x5379, 0x2a2f, - 0x537a, 0x1353, - 0x537b, 0x2a30, - 0x537f, 0x0c61, - 0x5380, 0x2a34, - 0x5382, 0x04cc, - 0x5383, 0x2a36, - 0x5384, 0x0631, - 0x5385, 0x0e4f, - 0x5386, 0x09e5, - 0x5387, 0x2a37, - 0x5389, 0x09e2, - 0x538a, 0x2a39, - 0x538b, 0x0fe2, - 0x538c, 0x100a, - 0x538d, 0x127d, - 0x538e, 0x2a3a, - 0x5395, 0x04a5, - 0x5396, 0x2a41, - 0x5398, 0x09d0, - 0x5399, 0x22c1, - 0x539a, 0x07a8, - 0x539b, 0x2a43, - 0x539d, 0x127e, - 0x539e, 0x2a45, - 0x539f, 0x10f0, - 0x53a0, 0x1e64, - 0x53a1, 0x2a46, - 0x53a2, 0x0f4e, - 0x53a3, 0x127f, - 0x53a4, 0x2a47, - 0x53a5, 0x1280, - 0x53a6, 0x0f30, - 0x53a7, 0x2a48, - 0x53a8, 0x051d, - 0x53a9, 0x08f6, - 0x53aa, 0x2a49, - 0x53ad, 0x21f9, - 0x53ae, 0x1281, - 0x53af, 0x2a4c, - 0x53b2, 0x2010, - 0x53b3, 0x2a4f, - 0x53b4, 0x22c2, - 0x53b5, 0x2a50, - 0x53b6, 0x139c, - 0x53b7, 0x2a51, - 0x53bb, 0x0c80, - 0x53bc, 0x2a55, - 0x53bf, 0x0f45, - 0x53c0, 0x2a58, - 0x53c1, 0x0cd9, - 0x53c2, 0x0495, - 0x53c3, 0x1e5a, - 0x53c4, 0x2a59, - 0x53c8, 0x10bb, - 0x53c9, 0x04ad, - 0x53ca, 0x0823, - 0x53cb, 0x10b6, - 0x53cc, 0x0da0, - 0x53cd, 0x0651, - 0x53ce, 0x2a5d, - 0x53d1, 0x063f, - 0x53d2, 0x2a60, - 0x53d4, 0x0d7c, - 0x53d5, 0x2a62, - 0x53d6, 0x0c7c, - 0x53d7, 0x0d73, - 0x53d8, 0x044d, - 0x53d9, 0x0fbb, - 0x53da, 0x2a63, - 0x53db, 0x0b92, - 0x53dc, 0x2a64, - 0x53df, 0x1395, - 0x53e0, 0x05df, - 0x53e1, 0x2a67, - 0x53e2, 0x1ea2, - 0x53e3, 0x0967, - 0x53e4, 0x071e, - 0x53e5, 0x0913, - 0x53e6, 0x0a36, - 0x53e7, 0x2a68, - 0x53e8, 0x14fe, - 0x53e9, 0x14fd, - 0x53ea, 0x11ba, - 0x53eb, 0x08a1, - 0x53ec, 0x117a, - 0x53ed, 0x03d3, - 0x53ee, 0x05e2, - 0x53ef, 0x0956, - 0x53f0, 0x0dfb, - 0x53f1, 0x14fb, - 0x53f2, 0x0d4e, - 0x53f3, 0x10b7, - 0x53f4, 0x2a69, - 0x53f5, 0x1285, - 0x53f6, 0x103d, - 0x53f7, 0x077c, - 0x53f8, 0x0db3, - 0x53f9, 0x0e11, - 0x53fa, 0x2a6a, - 0x53fb, 0x14ff, - 0x53fc, 0x05d1, - 0x53fd, 0x14fc, - 0x53fe, 0x2a6b, - 0x5400, 0x2a6d, - 0x5401, 0x10da, - 0x5402, 0x2a6e, - 0x5403, 0x04f9, - 0x5404, 0x06f2, - 0x5405, 0x2a6f, - 0x5406, 0x1502, - 0x5407, 0x2a70, - 0x5408, 0x0786, - 0x5409, 0x081d, - 0x540a, 0x05d6, - 0x540b, 0x2a71, - 0x540c, 0x0e5d, - 0x540d, 0x0b00, - 0x540e, 0x07aa, - 0x540f, 0x09df, - 0x5410, 0x0e73, - 0x5411, 0x0f5f, - 0x5412, 0x1500, - 0x5413, 0x0f32, - 0x5414, 0x2a72, - 0x5415, 0x0a67, - 0x5416, 0x1501, - 0x5417, 0x0a97, - 0x5418, 0x2a73, - 0x541b, 0x092c, - 0x541c, 0x2a76, - 0x541d, 0x0a28, - 0x541e, 0x0e7d, - 0x541f, 0x107e, - 0x5420, 0x066a, - 0x5421, 0x1509, - 0x5422, 0x2a77, - 0x5423, 0x150c, - 0x5424, 0x2a78, - 0x5426, 0x068e, - 0x5427, 0x03d4, - 0x5428, 0x0615, - 0x5429, 0x0671, - 0x542a, 0x2a7a, - 0x542b, 0x0763, - 0x542c, 0x0e50, - 0x542d, 0x0961, - 0x542e, 0x0da6, - 0x542f, 0x0c13, - 0x5430, 0x2a7b, - 0x5431, 0x11a7, - 0x5432, 0x150d, - 0x5433, 0x2a7c, - 0x5434, 0x0ef1, - 0x5435, 0x04d8, - 0x5436, 0x2a7d, - 0x5438, 0x0f0b, - 0x5439, 0x0538, - 0x543a, 0x2a7f, - 0x543b, 0x0ed6, - 0x543c, 0x07a7, - 0x543d, 0x2a80, - 0x543e, 0x0ef0, - 0x543f, 0x2a81, - 0x5440, 0x0fe6, - 0x5441, 0x2a82, - 0x5443, 0x1508, - 0x5444, 0x2a84, - 0x5446, 0x0577, - 0x5447, 0x2a86, - 0x5448, 0x04ef, - 0x5449, 0x2a87, - 0x544a, 0x06e1, - 0x544b, 0x1503, - 0x544c, 0x2a88, - 0x5450, 0x0b28, - 0x5451, 0x2a8c, - 0x5452, 0x1504, - 0x5455, 0x0b7c, - 0x5456, 0x1507, - 0x5457, 0x150a, - 0x5458, 0x10f4, - 0x5459, 0x150b, - 0x545a, 0x2a8d, - 0x545b, 0x0c37, - 0x545c, 0x0ee7, - 0x545d, 0x2a8e, - 0x5462, 0x0b3b, - 0x5463, 0x2a93, - 0x5464, 0x1512, - 0x5465, 0x2a94, - 0x5466, 0x1517, - 0x5467, 0x2a95, - 0x5468, 0x11db, - 0x5469, 0x2a96, - 0x5471, 0x1511, - 0x5472, 0x1522, - 0x5473, 0x0ec5, - 0x5474, 0x2a9e, - 0x5475, 0x077e, - 0x5476, 0x1516, - 0x5477, 0x1510, - 0x5478, 0x0b9f, - 0x5479, 0x2a9f, - 0x547b, 0x0d24, - 0x547c, 0x07ab, - 0x547d, 0x0b01, - 0x547e, 0x2aa1, - 0x5480, 0x0906, - 0x5481, 0x2aa3, - 0x5482, 0x150e, - 0x5483, 0x2aa4, - 0x5484, 0x1515, - 0x5485, 0x2aa5, - 0x5486, 0x0b99, - 0x5487, 0x2aa6, - 0x548b, 0x1147, - 0x548c, 0x0784, - 0x548d, 0x2aaa, - 0x548e, 0x08fb, - 0x548f, 0x10a2, - 0x5490, 0x06bb, - 0x5491, 0x2aab, - 0x5492, 0x11e3, - 0x5493, 0x2aac, - 0x5494, 0x150f, - 0x5495, 0x0717, - 0x5496, 0x0934, - 0x5497, 0x2aad, - 0x5499, 0x0a45, - 0x549a, 0x1513, - 0x549c, 0x2aaf, - 0x549d, 0x1518, - 0x549e, 0x2ab0, - 0x54a3, 0x1523, - 0x54a4, 0x152d, - 0x54a5, 0x2ab5, - 0x54a6, 0x151f, - 0x54a7, 0x151e, - 0x54a8, 0x1226, - 0x54a9, 0x152b, - 0x54ab, 0x1767, - 0x54ac, 0x102e, - 0x54ad, 0x151a, - 0x54ae, 0x2ab6, - 0x54af, 0x0936, - 0x54b0, 0x2ab7, - 0x54b1, 0x111e, - 0x54b2, 0x2ab8, - 0x54b3, 0x0955, - 0x54b4, 0x151c, - 0x54b5, 0x2ab9, - 0x54b8, 0x0f39, - 0x54b9, 0x2abc, - 0x54bb, 0x1525, - 0x54bc, 0x236d, - 0x54bd, 0x0ff3, - 0x54be, 0x2abe, - 0x54bf, 0x1526, - 0x54c0, 0x03b2, - 0x54c1, 0x0bd6, - 0x54c2, 0x151b, - 0x54c3, 0x2abf, - 0x54c4, 0x079c, - 0x54c5, 0x2ac0, - 0x54c6, 0x061e, - 0x54c7, 0x0e8c, - 0x54c8, 0x0757, - 0x54c9, 0x1118, - 0x54ca, 0x2ac1, - 0x54cc, 0x1527, - 0x54cd, 0x0f59, - 0x54ce, 0x03b0, - 0x54cf, 0x152f, - 0x54d0, 0x1519, - 0x54d1, 0x0fef, - 0x54d2, 0x151d, - 0x54d3, 0x1520, - 0x54d5, 0x1524, - 0x54d6, 0x2ac3, - 0x54d7, 0x07be, - 0x54d8, 0x2ac4, - 0x54d9, 0x1528, - 0x54db, 0x2ac5, - 0x54dc, 0x152a, - 0x54dd, 0x152e, - 0x54de, 0x1530, - 0x54df, 0x1099, - 0x54e0, 0x2ac6, - 0x54e1, 0x2247, - 0x54e2, 0x2ac7, - 0x54e5, 0x06e2, - 0x54e6, 0x0b77, - 0x54e7, 0x1532, - 0x54e8, 0x0d13, - 0x54e9, 0x09f1, - 0x54ea, 0x0b27, - 0x54eb, 0x2aca, - 0x54ed, 0x096b, - 0x54ee, 0x0f65, - 0x54ef, 0x2acc, - 0x54f2, 0x117d, - 0x54f3, 0x1536, - 0x54f4, 0x2acf, - 0x54fa, 0x047f, - 0x54fb, 0x2ad5, - 0x54fc, 0x0796, - 0x54fd, 0x1534, - 0x54fe, 0x2ad6, - 0x54ff, 0x1391, - 0x5500, 0x2ad7, - 0x5501, 0x100d, - 0x5502, 0x2ad8, - 0x5504, 0x236c, - 0x5505, 0x2ada, - 0x5506, 0x0de9, - 0x5507, 0x0540, - 0x5508, 0x2adb, - 0x5509, 0x03b1, - 0x550a, 0x2adc, - 0x550f, 0x1539, - 0x5510, 0x0e19, - 0x5511, 0x153a, - 0x5512, 0x2ae1, - 0x5514, 0x1535, - 0x5515, 0x2ae3, - 0x551b, 0x1531, - 0x551c, 0x2ae9, - 0x5520, 0x1533, - 0x5521, 0x2aed, - 0x5522, 0x1537, - 0x5524, 0x07d2, - 0x5525, 0x2aee, - 0x5527, 0x153b, - 0x5528, 0x2af0, - 0x552a, 0x153c, - 0x552b, 0x2af2, - 0x552c, 0x07b8, - 0x552d, 0x2af3, - 0x552e, 0x0d72, - 0x552f, 0x0eb7, - 0x5530, 0x154d, - 0x5531, 0x04cf, - 0x5532, 0x2af4, - 0x5533, 0x154c, - 0x5534, 0x2af5, - 0x5537, 0x1547, - 0x5538, 0x2af8, - 0x553c, 0x1546, - 0x553d, 0x2afc, - 0x553e, 0x0e8a, - 0x553f, 0x1544, - 0x5540, 0x2afd, - 0x5541, 0x1542, - 0x5542, 0x2afe, - 0x5543, 0x095d, - 0x5544, 0x1221, - 0x5545, 0x2aff, - 0x5546, 0x0d05, - 0x5547, 0x2b00, - 0x5549, 0x1540, - 0x554a, 0x03ac, - 0x554b, 0x2b02, - 0x554f, 0x219c, - 0x5550, 0x1545, - 0x5551, 0x2b06, - 0x5553, 0x20c9, - 0x5554, 0x2b08, - 0x5555, 0x1543, - 0x5556, 0x1548, - 0x5557, 0x2b09, - 0x555c, 0x154e, - 0x555d, 0x2b0e, - 0x555e, 0x21f0, - 0x555f, 0x2b0f, - 0x5561, 0x0665, - 0x5562, 0x2b11, - 0x5564, 0x0bc0, - 0x5565, 0x0cef, - 0x5566, 0x099d, - 0x5567, 0x153d, - 0x5568, 0x2b13, - 0x556a, 0x0b7f, - 0x556b, 0x2b15, - 0x556c, 0x127a, - 0x556d, 0x1541, - 0x556e, 0x0b59, - 0x556f, 0x2b16, - 0x5575, 0x1549, - 0x5578, 0x0f70, - 0x5579, 0x2b1c, - 0x557b, 0x155a, - 0x557c, 0x0e37, - 0x557d, 0x2b1e, - 0x557e, 0x1557, - 0x557f, 0x2b1f, - 0x5580, 0x0933, - 0x5581, 0x1555, - 0x5582, 0x0ec8, - 0x5583, 0x1551, - 0x5584, 0x0cff, - 0x5585, 0x2b20, - 0x5587, 0x0999, - 0x5588, 0x1554, - 0x5589, 0x07a4, - 0x558a, 0x0767, - 0x558b, 0x154f, - 0x558c, 0x2b22, - 0x558f, 0x153e, - 0x5590, 0x2b25, - 0x5591, 0x1559, - 0x5592, 0x2b26, - 0x5594, 0x155e, - 0x5595, 0x2b28, - 0x5598, 0x0530, - 0x5599, 0x155f, - 0x559a, 0x2b2b, - 0x559c, 0x0f1f, - 0x559d, 0x077f, - 0x559e, 0x2b2d, - 0x559f, 0x1556, - 0x55a0, 0x2b2e, - 0x55a7, 0x0fc5, - 0x55a8, 0x2b35, - 0x55aa, 0x210b, - 0x55ab, 0x2b37, - 0x55ac, 0x20de, - 0x55ad, 0x2b38, - 0x55ae, 0x1eaa, - 0x55af, 0x2b39, - 0x55b1, 0x1552, - 0x55b2, 0x222c, - 0x55b3, 0x113e, - 0x55b4, 0x2b3b, - 0x55b5, 0x153f, - 0x55b6, 0x2b3c, - 0x55b7, 0x0ba8, - 0x55b8, 0x2b3d, - 0x55b9, 0x1553, - 0x55ba, 0x2b3e, - 0x55bb, 0x10dc, - 0x55bc, 0x2b3f, - 0x55bd, 0x155c, - 0x55bf, 0x2b40, - 0x55c4, 0x156a, - 0x55c5, 0x0fac, - 0x55c6, 0x20d8, - 0x55c7, 0x22c0, - 0x55c8, 0x2b45, - 0x55c9, 0x1562, - 0x55ca, 0x2b46, - 0x55cc, 0x156f, - 0x55ce, 0x206f, - 0x55cf, 0x2b48, - 0x55d1, 0x1564, - 0x55d2, 0x1550, - 0x55d3, 0x0cdd, - 0x55d4, 0x1567, - 0x55d5, 0x2b4a, - 0x55d6, 0x1558, - 0x55d7, 0x2b4b, - 0x55da, 0x21a1, - 0x55db, 0x2b4e, - 0x55dc, 0x0d5f, - 0x55dd, 0x1569, - 0x55de, 0x2b4f, - 0x55df, 0x155b, - 0x55e0, 0x2b50, - 0x55e1, 0x0eda, - 0x55e2, 0x2b51, - 0x55e3, 0x0db8, - 0x55e4, 0x1573, - 0x55e5, 0x156c, - 0x55e6, 0x1568, - 0x55e7, 0x2b52, - 0x55e8, 0x1571, - 0x55e9, 0x2379, - 0x55ea, 0x1560, - 0x55eb, 0x1565, - 0x55ed, 0x2b53, - 0x55ef, 0x156b, - 0x55f0, 0x2b55, - 0x55f2, 0x156d, - 0x55f4, 0x2b57, - 0x55f5, 0x1572, - 0x55f6, 0x2372, - 0x55f7, 0x1561, - 0x55f8, 0x2b58, - 0x55fd, 0x0dc9, - 0x55fe, 0x157b, - 0x55ff, 0x2b5d, - 0x5600, 0x157c, - 0x5601, 0x1578, - 0x5602, 0x2b5e, - 0x5606, 0x216a, - 0x5607, 0x2b62, - 0x5608, 0x1576, - 0x5609, 0x0841, - 0x560a, 0x2b63, - 0x560c, 0x1577, - 0x560d, 0x237c, - 0x560e, 0x06bd, - 0x560f, 0x127b, - 0x5610, 0x2b65, - 0x5614, 0x20b0, - 0x5615, 0x2b69, - 0x5616, 0x237a, - 0x5617, 0x1e74, - 0x5618, 0x0fb5, - 0x5619, 0x2b6a, - 0x561b, 0x0a96, - 0x561c, 0x2377, - 0x561d, 0x2b6c, - 0x561e, 0x1575, - 0x561f, 0x1563, - 0x5620, 0x2b6d, - 0x5623, 0x157a, - 0x5624, 0x1579, - 0x5625, 0x2b70, - 0x5627, 0x157d, - 0x5628, 0x2b72, - 0x5629, 0x1f4c, - 0x562a, 0x2b73, - 0x562c, 0x1582, - 0x562d, 0x157e, - 0x562e, 0x2378, - 0x562f, 0x21cf, - 0x5630, 0x2368, - 0x5631, 0x11f5, - 0x5632, 0x04d5, - 0x5633, 0x2b75, - 0x5634, 0x1249, - 0x5635, 0x2371, - 0x5636, 0x0db0, - 0x5637, 0x2b76, - 0x5638, 0x2369, - 0x5639, 0x1580, - 0x563a, 0x2b77, - 0x563b, 0x0f0a, - 0x563c, 0x2b78, - 0x563f, 0x0790, - 0x5640, 0x2b7b, - 0x5641, 0x2674, - 0x5642, 0x2b7c, - 0x564c, 0x1587, - 0x564d, 0x1583, - 0x564e, 0x1034, - 0x564f, 0x2b86, - 0x5654, 0x1588, - 0x5655, 0x2b8b, - 0x5657, 0x1581, - 0x5658, 0x157f, - 0x5659, 0x1585, - 0x565a, 0x2b8d, - 0x565c, 0x1586, - 0x565d, 0x236f, - 0x565e, 0x2b8f, - 0x5660, 0x2370, - 0x5661, 0x2b91, - 0x5662, 0x1584, - 0x5663, 0x2b92, - 0x5664, 0x158a, - 0x5665, 0x2376, - 0x5666, 0x2373, - 0x5667, 0x2b93, - 0x5668, 0x0c16, - 0x5669, 0x1262, - 0x566a, 0x112e, - 0x566b, 0x158c, - 0x566c, 0x0d60, - 0x566d, 0x2b94, - 0x566f, 0x237f, - 0x5670, 0x2b96, - 0x5671, 0x158b, - 0x5672, 0x2374, - 0x5673, 0x2b97, - 0x5674, 0x20b5, - 0x5675, 0x2b98, - 0x5676, 0x06bc, - 0x5677, 0x2b99, - 0x5678, 0x1edb, - 0x5679, 0x2672, - 0x567a, 0x2b9a, - 0x567b, 0x158d, - 0x567d, 0x2b9b, - 0x5680, 0x236e, - 0x5681, 0x2b9e, - 0x5685, 0x158f, - 0x5686, 0x1589, - 0x5687, 0x21b7, - 0x5688, 0x2ba2, - 0x568c, 0x2375, - 0x568d, 0x2ba6, - 0x568e, 0x0776, - 0x568f, 0x0e3a, - 0x5690, 0x2ba7, - 0x5693, 0x1590, - 0x5694, 0x2baa, - 0x5695, 0x2382, - 0x5696, 0x2bab, - 0x5699, 0x209e, - 0x569a, 0x2bae, - 0x56a3, 0x0f66, - 0x56a4, 0x2bb7, - 0x56a6, 0x236b, - 0x56a7, 0x2bb9, - 0x56a8, 0x2039, - 0x56a9, 0x2bba, - 0x56ae, 0x269f, - 0x56af, 0x1591, - 0x56b0, 0x2bbf, - 0x56b3, 0x237d, - 0x56b4, 0x21f5, - 0x56b5, 0x2bc2, - 0x56b6, 0x2381, - 0x56b7, 0x0c9d, - 0x56b8, 0x2bc3, - 0x56bc, 0x0891, - 0x56bd, 0x2bc7, - 0x56c0, 0x237b, - 0x56c1, 0x237e, - 0x56c2, 0x21cc, - 0x56c3, 0x2bca, - 0x56c5, 0x22db, - 0x56c6, 0x2bcc, - 0x56c8, 0x236a, - 0x56c9, 0x2689, - 0x56ca, 0x0b35, - 0x56cb, 0x2bce, - 0x56cc, 0x2697, - 0x56cd, 0x2bcf, - 0x56d1, 0x22a1, - 0x56d2, 0x2bd3, - 0x56d4, 0x1592, - 0x56d5, 0x2bd5, - 0x56d7, 0x1593, - 0x56d8, 0x2bd7, - 0x56da, 0x0c71, - 0x56db, 0x0db9, - 0x56dc, 0x2bd9, - 0x56dd, 0x1594, - 0x56de, 0x07ed, - 0x56df, 0x126c, - 0x56e0, 0x1079, - 0x56e1, 0x1595, - 0x56e2, 0x0e76, - 0x56e3, 0x2bda, - 0x56e4, 0x0619, - 0x56e5, 0x2bdb, - 0x56eb, 0x1597, - 0x56ec, 0x2be1, - 0x56ed, 0x10f3, - 0x56ee, 0x2be2, - 0x56f0, 0x0992, - 0x56f1, 0x0554, - 0x56f2, 0x2be4, - 0x56f4, 0x0eb6, - 0x56f5, 0x1596, - 0x56f6, 0x2be6, - 0x56f9, 0x1598, - 0x56fa, 0x0725, - 0x56fb, 0x2be9, - 0x56fd, 0x0753, - 0x56fe, 0x0e6d, - 0x56ff, 0x1599, - 0x5700, 0x2beb, - 0x5703, 0x0bf3, - 0x5704, 0x159a, - 0x5705, 0x2bee, - 0x5706, 0x10f5, - 0x5707, 0x2383, - 0x5708, 0x0c81, - 0x5709, 0x159c, - 0x570a, 0x159b, - 0x570b, 0x1f3d, - 0x570c, 0x2bef, - 0x570d, 0x218f, - 0x570e, 0x2bf0, - 0x5712, 0x2246, - 0x5713, 0x2248, - 0x5714, 0x2bf4, - 0x5716, 0x217e, - 0x5717, 0x2bf6, - 0x5718, 0x2180, - 0x5719, 0x2bf7, - 0x571c, 0x159d, - 0x571d, 0x2bfa, - 0x571f, 0x0e72, - 0x5720, 0x2bfc, - 0x5723, 0x0d3c, - 0x5724, 0x2bff, - 0x5728, 0x111d, - 0x5729, 0x13a7, - 0x572a, 0x13a9, - 0x572b, 0x2c03, - 0x572c, 0x13a8, - 0x572d, 0x0740, - 0x572e, 0x13ac, - 0x5730, 0x05b9, - 0x5731, 0x2c04, - 0x5733, 0x13aa, - 0x5734, 0x2c06, - 0x5739, 0x13ab, - 0x573a, 0x04c6, - 0x573b, 0x13af, - 0x573c, 0x2c0b, - 0x573e, 0x080d, - 0x573f, 0x2c0d, - 0x5740, 0x11b6, - 0x5741, 0x2c0e, - 0x5742, 0x13b0, - 0x5743, 0x2c0f, - 0x5747, 0x0928, - 0x5748, 0x2c13, - 0x574a, 0x0658, - 0x574b, 0x2c15, - 0x574c, 0x13a0, - 0x574d, 0x0e01, - 0x574e, 0x093f, - 0x574f, 0x07ca, - 0x5750, 0x1255, - 0x5751, 0x0960, - 0x5752, 0x2c16, - 0x5757, 0x0976, - 0x5758, 0x2c1b, - 0x575a, 0x0854, - 0x575b, 0x0e06, - 0x575c, 0x13ae, - 0x575d, 0x03de, - 0x575e, 0x0efa, - 0x575f, 0x0675, - 0x5760, 0x1216, - 0x5761, 0x0be1, - 0x5762, 0x2c1d, - 0x5764, 0x098f, - 0x5765, 0x2c1f, - 0x5766, 0x0e0c, - 0x5767, 0x2c20, - 0x5768, 0x13b7, - 0x5769, 0x13b1, - 0x576a, 0x0bd9, - 0x576b, 0x13b3, - 0x576c, 0x2c21, - 0x576d, 0x13b8, - 0x576e, 0x2c22, - 0x576f, 0x0bb8, - 0x5770, 0x2c23, - 0x5773, 0x13ba, - 0x5774, 0x2c26, - 0x5776, 0x13b9, - 0x5777, 0x094d, - 0x5778, 0x2c28, - 0x577b, 0x13b6, - 0x577c, 0x13b5, - 0x577d, 0x2c2b, - 0x5782, 0x053c, - 0x5783, 0x0997, - 0x5784, 0x0a49, - 0x5785, 0x13b2, - 0x5786, 0x13b4, - 0x5787, 0x2c30, - 0x578b, 0x0f98, - 0x578c, 0x13bd, - 0x578d, 0x2c34, - 0x5792, 0x09c8, - 0x5793, 0x13c2, - 0x5794, 0x2c39, - 0x579b, 0x0621, - 0x579c, 0x2c40, - 0x57a0, 0x13c3, - 0x57a1, 0x13a2, - 0x57a2, 0x0711, - 0x57a3, 0x10ee, - 0x57a4, 0x13bc, - 0x57a5, 0x2c44, - 0x57a6, 0x095e, - 0x57a7, 0x13c0, - 0x57a8, 0x2c45, - 0x57a9, 0x13a1, - 0x57aa, 0x2c46, - 0x57ab, 0x05c7, - 0x57ac, 0x2c47, - 0x57ad, 0x13bb, - 0x57ae, 0x0972, - 0x57af, 0x2c48, - 0x57b2, 0x13be, - 0x57b3, 0x2c4b, - 0x57b4, 0x13c1, - 0x57b5, 0x2c4c, - 0x57b8, 0x13c9, - 0x57b9, 0x2c4f, - 0x57c2, 0x06fa, - 0x57c3, 0x03ae, - 0x57c4, 0x2c58, - 0x57cb, 0x0a98, - 0x57cc, 0x2c5f, - 0x57ce, 0x04ec, - 0x57cf, 0x13bf, - 0x57d0, 0x2c61, - 0x57d2, 0x13c8, - 0x57d3, 0x2c63, - 0x57d4, 0x0bf1, - 0x57d5, 0x13c4, - 0x57d6, 0x2c64, - 0x57d8, 0x13c5, - 0x57d9, 0x13c7, - 0x57da, 0x13c6, - 0x57db, 0x2c66, - 0x57dd, 0x13ce, - 0x57de, 0x2c68, - 0x57df, 0x10d7, - 0x57e0, 0x0481, - 0x57e1, 0x232a, - 0x57e2, 0x2c69, - 0x57e4, 0x13cd, - 0x57e5, 0x2c6b, - 0x57ed, 0x13d2, - 0x57ee, 0x2c73, - 0x57ef, 0x13cb, - 0x57f0, 0x2c74, - 0x57f4, 0x13ca, - 0x57f5, 0x2c78, - 0x57f7, 0x228b, - 0x57f8, 0x13cc, - 0x57f9, 0x0ba1, - 0x57fa, 0x080e, - 0x57fb, 0x2c7a, - 0x57fd, 0x13d1, - 0x57fe, 0x2c7c, - 0x5800, 0x13d3, - 0x5801, 0x2c7e, - 0x5802, 0x0e16, - 0x5803, 0x2c7f, - 0x5805, 0x1f85, - 0x5806, 0x0610, - 0x5807, 0x144c, - 0x5808, 0x2c81, - 0x580a, 0x2325, - 0x580b, 0x13cf, - 0x580c, 0x2c83, - 0x580d, 0x13d0, - 0x580e, 0x2c84, - 0x5811, 0x0c32, - 0x5812, 0x2c87, - 0x5815, 0x0628, - 0x5816, 0x232c, - 0x5817, 0x2c8a, - 0x5819, 0x13d5, - 0x581a, 0x2c8c, - 0x581d, 0x232e, - 0x581e, 0x13d4, - 0x581f, 0x2c8f, - 0x5820, 0x13d7, - 0x5821, 0x040d, - 0x5822, 0x2c90, - 0x5824, 0x05ad, - 0x5825, 0x2c92, - 0x582a, 0x093d, - 0x582b, 0x2c97, - 0x582f, 0x2205, - 0x5830, 0x1008, - 0x5831, 0x1e38, - 0x5832, 0x2c9b, - 0x5834, 0x1e73, - 0x5835, 0x0601, - 0x5836, 0x2c9d, - 0x5844, 0x13d6, - 0x5845, 0x2cab, - 0x584a, 0x1fe3, - 0x584b, 0x2339, - 0x584c, 0x0def, - 0x584d, 0x19a3, - 0x584e, 0x2cb0, - 0x584f, 0x232b, - 0x5850, 0x2cb1, - 0x5851, 0x0dd1, - 0x5852, 0x232d, - 0x5853, 0x2cb2, - 0x5854, 0x0df3, - 0x5855, 0x2cb3, - 0x5857, 0x217f, - 0x5858, 0x0e14, - 0x5859, 0x2cb5, - 0x585e, 0x0cd6, - 0x585f, 0x2cba, - 0x5862, 0x21a7, - 0x5863, 0x2cbd, - 0x5864, 0x232f, - 0x5865, 0x13d8, - 0x5866, 0x2cbe, - 0x586b, 0x0e41, - 0x586c, 0x13d9, - 0x586d, 0x2cc3, - 0x5875, 0x1e7d, - 0x5876, 0x2ccb, - 0x5879, 0x20d6, - 0x587a, 0x2cce, - 0x587e, 0x13a3, - 0x587f, 0x2cd2, - 0x5880, 0x13dd, - 0x5881, 0x13da, - 0x5882, 0x2cd3, - 0x5883, 0x08e2, - 0x5884, 0x2cd4, - 0x5885, 0x0d92, - 0x5886, 0x2cd5, - 0x5889, 0x13db, - 0x588a, 0x1ec2, - 0x588b, 0x2cd8, - 0x5892, 0x0d03, - 0x5893, 0x0b1c, - 0x5894, 0x2cdf, - 0x5899, 0x0c3a, - 0x589a, 0x13dc, - 0x589b, 0x2ce4, - 0x589c, 0x22b2, - 0x589d, 0x2ce5, - 0x589e, 0x1139, - 0x589f, 0x0fb1, - 0x58a0, 0x2ce6, - 0x58a8, 0x0b0e, - 0x58a9, 0x0614, - 0x58aa, 0x2cee, - 0x58ae, 0x1edf, - 0x58af, 0x2cf2, - 0x58b3, 0x1ef9, - 0x58b4, 0x2cf6, - 0x58bb, 0x20d9, - 0x58bc, 0x13a4, - 0x58bd, 0x2cfd, - 0x58be, 0x1fdd, - 0x58bf, 0x2cfe, - 0x58c1, 0x0443, - 0x58c2, 0x2d00, - 0x58c5, 0x13a5, - 0x58c6, 0x2d03, - 0x58c7, 0x2167, - 0x58c8, 0x2d04, - 0x58d1, 0x13a6, - 0x58d2, 0x2d0d, - 0x58d3, 0x21ed, - 0x58d4, 0x2d0e, - 0x58d5, 0x0775, - 0x58d6, 0x2d0f, - 0x58d8, 0x2007, - 0x58d9, 0x2326, - 0x58da, 0x2329, - 0x58db, 0x2d11, - 0x58de, 0x1f52, - 0x58df, 0x203b, - 0x58e0, 0x2328, - 0x58e1, 0x2d14, - 0x58e2, 0x2327, - 0x58e3, 0x2d15, - 0x58e4, 0x0c9b, - 0x58e5, 0x2d16, - 0x58e9, 0x1e2b, - 0x58ea, 0x2d1a, - 0x58eb, 0x0d56, - 0x58ec, 0x0ca4, - 0x58ed, 0x2d1b, - 0x58ee, 0x1210, - 0x58ef, 0x22ae, - 0x58f0, 0x0d32, - 0x58f1, 0x2d1c, - 0x58f3, 0x0954, - 0x58f4, 0x2d1e, - 0x58f6, 0x07af, - 0x58f7, 0x2d20, - 0x58f9, 0x1043, - 0x58fa, 0x1f49, - 0x58fb, 0x2d22, - 0x58fd, 0x2138, - 0x58fe, 0x2d24, - 0x5900, 0x2d26, - 0x5902, 0x161c, - 0x5903, 0x2d28, - 0x5904, 0x0529, - 0x5905, 0x2d29, - 0x5907, 0x0421, - 0x5908, 0x2d2b, - 0x590d, 0x06af, - 0x590e, 0x2d30, - 0x590f, 0x0f31, - 0x5910, 0x2d31, - 0x5914, 0x12fb, - 0x5915, 0x0f13, - 0x5916, 0x0e93, - 0x5917, 0x2d35, - 0x5919, 0x1301, - 0x591a, 0x061f, - 0x591b, 0x2d37, - 0x591c, 0x1040, - 0x591d, 0x2d38, - 0x591f, 0x0714, - 0x5920, 0x2d3a, - 0x5922, 0x2081, - 0x5923, 0x2d3c, - 0x5924, 0x161b, - 0x5925, 0x1619, - 0x5926, 0x2d3d, - 0x5927, 0x0576, - 0x5928, 0x2d3e, - 0x5929, 0x0e3f, - 0x592a, 0x0dfe, - 0x592b, 0x068f, - 0x592c, 0x2d3f, - 0x592d, 0x1268, - 0x592e, 0x1014, - 0x592f, 0x0772, - 0x5930, 0x2d40, - 0x5931, 0x0d3e, - 0x5932, 0x2d41, - 0x5934, 0x0e68, - 0x5935, 0x2d43, - 0x5937, 0x104b, - 0x5938, 0x0971, - 0x5939, 0x0843, - 0x593a, 0x0620, - 0x593b, 0x2d45, - 0x593c, 0x14af, - 0x593d, 0x2d46, - 0x593e, 0x1f7c, - 0x593f, 0x2d47, - 0x5941, 0x14b0, - 0x5942, 0x138c, - 0x5943, 0x2d49, - 0x5944, 0x1002, - 0x5945, 0x2d4a, - 0x5947, 0x0c05, - 0x5948, 0x0b31, - 0x5949, 0x068b, - 0x594a, 0x2d4c, - 0x594b, 0x0679, - 0x594c, 0x2d4d, - 0x594e, 0x0989, - 0x594f, 0x123d, - 0x5950, 0x2d4f, - 0x5951, 0x0c14, - 0x5952, 0x2d50, - 0x5954, 0x0425, - 0x5955, 0x14b2, - 0x5956, 0x0882, - 0x5957, 0x0e2a, - 0x5958, 0x14b4, - 0x5959, 0x2d52, - 0x595a, 0x14b3, - 0x595b, 0x2d53, - 0x5960, 0x05cd, - 0x5961, 0x2d58, - 0x5962, 0x0d16, - 0x5963, 0x2d59, - 0x5965, 0x03cd, - 0x5966, 0x2d5b, - 0x5969, 0x235b, - 0x596a, 0x1ede, - 0x596b, 0x2d5e, - 0x596c, 0x1fa2, - 0x596d, 0x2d5f, - 0x596e, 0x1efa, - 0x596f, 0x2d60, - 0x5973, 0x0b6f, - 0x5974, 0x0b6c, - 0x5975, 0x2d64, - 0x5976, 0x0b2f, - 0x5977, 0x2d65, - 0x5978, 0x085c, - 0x5979, 0x0df2, - 0x597a, 0x2d66, - 0x597d, 0x077a, - 0x597e, 0x2d69, - 0x5981, 0x1775, - 0x5982, 0x0cc2, - 0x5983, 0x1776, - 0x5984, 0x0eae, - 0x5985, 0x2d6c, - 0x5986, 0x120e, - 0x5987, 0x06b9, - 0x5988, 0x0a8f, - 0x5989, 0x2d6d, - 0x598a, 0x0cac, - 0x598b, 0x2d6e, - 0x598d, 0x1777, - 0x598e, 0x2d70, - 0x5992, 0x0609, - 0x5993, 0x083e, - 0x5994, 0x2d74, - 0x5996, 0x1026, - 0x5997, 0x177b, - 0x5998, 0x2d76, - 0x5999, 0x0af3, - 0x599a, 0x2d77, - 0x599d, 0x22ad, - 0x599e, 0x177e, - 0x599f, 0x2d7a, - 0x59a3, 0x177a, - 0x59a4, 0x177f, - 0x59a5, 0x0e88, - 0x59a6, 0x2d7e, - 0x59a8, 0x065e, - 0x59a9, 0x1778, - 0x59ab, 0x177d, - 0x59ac, 0x2d80, - 0x59ae, 0x0b40, - 0x59af, 0x1782, - 0x59b0, 0x2d82, - 0x59b2, 0x1781, - 0x59b3, 0x2d84, - 0x59b9, 0x0ac8, - 0x59ba, 0x2d8a, - 0x59bb, 0x0bfd, - 0x59bc, 0x2d8b, - 0x59be, 0x1784, - 0x59bf, 0x2d8d, - 0x59c6, 0x0b1a, - 0x59c7, 0x2d94, - 0x59ca, 0x177c, - 0x59cb, 0x0d53, - 0x59cc, 0x2d97, - 0x59d0, 0x08b4, - 0x59d1, 0x071c, - 0x59d2, 0x1780, - 0x59d3, 0x0fa0, - 0x59d4, 0x0ebe, - 0x59d5, 0x2d9b, - 0x59d7, 0x1783, - 0x59d8, 0x178a, - 0x59d9, 0x2d9d, - 0x59da, 0x102d, - 0x59db, 0x2d9e, - 0x59dc, 0x087b, - 0x59dd, 0x1787, - 0x59de, 0x2d9f, - 0x59e3, 0x1789, - 0x59e4, 0x2da4, - 0x59e5, 0x09bc, - 0x59e6, 0x2da5, - 0x59e8, 0x1053, - 0x59e9, 0x2da7, - 0x59ec, 0x081a, - 0x59ed, 0x2daa, - 0x59f9, 0x178b, - 0x59fa, 0x2db6, - 0x59fb, 0x107d, - 0x59fc, 0x2db7, - 0x59ff, 0x1228, - 0x5a00, 0x2dba, - 0x5a01, 0x0eaf, - 0x5a02, 0x2dbb, - 0x5a03, 0x0e8f, - 0x5a04, 0x0a4d, - 0x5a05, 0x1785, - 0x5a07, 0x0890, - 0x5a08, 0x1788, - 0x5a09, 0x178d, - 0x5a0a, 0x2dbc, - 0x5a0c, 0x178c, - 0x5a0d, 0x2dbe, - 0x5a11, 0x1790, - 0x5a12, 0x2dc2, - 0x5a13, 0x1792, - 0x5a14, 0x2dc3, - 0x5a18, 0x0b52, - 0x5a19, 0x2dc7, - 0x5a1c, 0x0b2b, - 0x5a1d, 0x2dca, - 0x5a1f, 0x0919, - 0x5a20, 0x0d28, - 0x5a21, 0x2dcc, - 0x5a23, 0x1791, - 0x5a24, 0x2dce, - 0x5a25, 0x062f, - 0x5a26, 0x2dcf, - 0x5a29, 0x0ae9, - 0x5a2a, 0x2dd2, - 0x5a31, 0x10ce, - 0x5a32, 0x178e, - 0x5a33, 0x2dd9, - 0x5a34, 0x178f, - 0x5a35, 0x2dda, - 0x5a36, 0x0c7d, - 0x5a37, 0x2ddb, - 0x5a3c, 0x1797, - 0x5a3d, 0x2de0, - 0x5a40, 0x1793, - 0x5a41, 0x203f, - 0x5a42, 0x2de3, - 0x5a46, 0x0be4, - 0x5a47, 0x2de7, - 0x5a49, 0x0ea2, - 0x5a4a, 0x1795, - 0x5a4b, 0x2de9, - 0x5a55, 0x1796, - 0x5a56, 0x2df3, - 0x5a5a, 0x07fe, - 0x5a5b, 0x2df7, - 0x5a62, 0x1798, - 0x5a63, 0x2dfe, - 0x5a66, 0x1f0e, - 0x5a67, 0x1794, - 0x5a68, 0x2e01, - 0x5a6a, 0x09a2, - 0x5a6b, 0x2e03, - 0x5a6d, 0x23f9, - 0x5a6e, 0x2e05, - 0x5a74, 0x1089, - 0x5a75, 0x1799, - 0x5a76, 0x0d2d, - 0x5a77, 0x179d, - 0x5a78, 0x2e0b, - 0x5a7a, 0x179e, - 0x5a7b, 0x2e0d, - 0x5a7f, 0x0fc1, - 0x5a80, 0x2e11, - 0x5a92, 0x0ac2, - 0x5a93, 0x2e23, - 0x5a9a, 0x0ac9, - 0x5a9b, 0x179c, - 0x5a9c, 0x2e2a, - 0x5aa7, 0x23fc, - 0x5aa8, 0x2e35, - 0x5aaa, 0x179b, - 0x5aab, 0x2e37, - 0x5ab2, 0x17a1, - 0x5ab3, 0x0f1e, - 0x5ab4, 0x2e3e, - 0x5ab5, 0x19a4, - 0x5ab6, 0x2e3f, - 0x5ab8, 0x17a4, - 0x5ab9, 0x2e41, - 0x5abd, 0x2069, - 0x5abe, 0x179f, - 0x5abf, 0x2e45, - 0x5ac1, 0x0851, - 0x5ac2, 0x0ce2, - 0x5ac3, 0x2e47, - 0x5ac9, 0x0828, - 0x5aca, 0x2e4d, - 0x5acc, 0x0f40, - 0x5acd, 0x2e4f, - 0x5ad2, 0x17a2, - 0x5ad3, 0x2e54, - 0x5ad4, 0x17a3, - 0x5ad5, 0x2e55, - 0x5ad6, 0x17a8, - 0x5ad7, 0x23f7, - 0x5ad8, 0x17aa, - 0x5ad9, 0x2e56, - 0x5adc, 0x17ab, - 0x5add, 0x2e59, - 0x5ae0, 0x17a5, - 0x5ae1, 0x05b6, - 0x5ae2, 0x2e5c, - 0x5ae3, 0x17a6, - 0x5ae4, 0x2e5d, - 0x5ae6, 0x17a9, - 0x5ae7, 0x2e5f, - 0x5ae9, 0x0b3e, - 0x5aea, 0x2e61, - 0x5aeb, 0x17a0, - 0x5aec, 0x2e62, - 0x5af1, 0x17a7, - 0x5af2, 0x2e67, - 0x5af5, 0x23f6, - 0x5af6, 0x2e6a, - 0x5afb, 0x23fd, - 0x5afc, 0x2e6f, - 0x5b00, 0x23f8, - 0x5b01, 0x2e73, - 0x5b08, 0x23fa, - 0x5b09, 0x17ac, - 0x5b0a, 0x2e7a, - 0x5b0b, 0x23fe, - 0x5b0c, 0x1fa8, - 0x5b0d, 0x2e7b, - 0x5b16, 0x17ae, - 0x5b17, 0x17ad, - 0x5b18, 0x2e84, - 0x5b19, 0x2401, - 0x5b1a, 0x2e85, - 0x5b21, 0x23ff, - 0x5b22, 0x2e8c, - 0x5b2a, 0x2400, - 0x5b2b, 0x2e94, - 0x5b30, 0x2221, - 0x5b31, 0x2e99, - 0x5b32, 0x17af, - 0x5b33, 0x2e9a, - 0x5b34, 0x130c, - 0x5b35, 0x2e9b, - 0x5b37, 0x17b0, - 0x5b38, 0x2122, - 0x5b39, 0x2e9d, - 0x5b40, 0x17b1, - 0x5b41, 0x2ea4, - 0x5b4c, 0x23fb, - 0x5b4d, 0x2eaf, - 0x5b50, 0x1230, - 0x5b51, 0x17b7, - 0x5b52, 0x2eb2, - 0x5b53, 0x17b8, - 0x5b54, 0x0964, - 0x5b55, 0x1113, - 0x5b56, 0x2eb3, - 0x5b57, 0x1233, - 0x5b58, 0x0569, - 0x5b59, 0x0de4, - 0x5b5a, 0x17b4, - 0x5b5b, 0x1279, - 0x5b5c, 0x122b, - 0x5b5d, 0x0f6d, - 0x5b5e, 0x2eb4, - 0x5b5f, 0x0ad4, - 0x5b60, 0x2eb5, - 0x5b62, 0x17b9, - 0x5b63, 0x0831, - 0x5b64, 0x071b, - 0x5b65, 0x17b5, - 0x5b66, 0x0fd0, - 0x5b67, 0x2eb7, - 0x5b69, 0x0759, - 0x5b6a, 0x0a76, - 0x5b6b, 0x215a, - 0x5b6c, 0x1261, - 0x5b6d, 0x2eb9, - 0x5b70, 0x0d82, - 0x5b71, 0x176a, - 0x5b72, 0x2ebc, - 0x5b73, 0x17b6, - 0x5b74, 0x2ebd, - 0x5b75, 0x0692, - 0x5b76, 0x2ebe, - 0x5b78, 0x21e5, - 0x5b79, 0x2ec0, - 0x5b7a, 0x0cc1, - 0x5b7b, 0x2ec1, - 0x5b7d, 0x0b58, - 0x5b7e, 0x2ec3, - 0x5b7f, 0x2057, - 0x5b80, 0x172e, - 0x5b81, 0x0b61, - 0x5b82, 0x2ec4, - 0x5b83, 0x0df1, - 0x5b84, 0x172f, - 0x5b85, 0x114d, - 0x5b86, 0x2ec5, - 0x5b87, 0x10d3, - 0x5b88, 0x0d6f, - 0x5b89, 0x03bd, - 0x5b8a, 0x2ec6, - 0x5b8b, 0x0dc3, - 0x5b8c, 0x0e9b, - 0x5b8d, 0x2ec7, - 0x5b8f, 0x07a1, - 0x5b90, 0x2ec9, - 0x5b93, 0x1731, - 0x5b94, 0x2ecc, - 0x5b95, 0x1730, - 0x5b96, 0x2ecd, - 0x5b97, 0x1237, - 0x5b98, 0x0732, - 0x5b99, 0x11e5, - 0x5b9a, 0x05e7, - 0x5b9b, 0x0ea1, - 0x5b9c, 0x1052, - 0x5b9d, 0x040f, - 0x5b9e, 0x0d4c, - 0x5b9f, 0x2ece, - 0x5ba0, 0x050d, - 0x5ba1, 0x0d2c, - 0x5ba2, 0x095a, - 0x5ba3, 0x0fc6, - 0x5ba4, 0x0d69, - 0x5ba5, 0x1732, - 0x5ba6, 0x07d7, - 0x5ba7, 0x2ecf, - 0x5baa, 0x0f49, - 0x5bab, 0x0705, - 0x5bac, 0x2ed2, - 0x5bb0, 0x111a, - 0x5bb1, 0x2ed6, - 0x5bb3, 0x075d, - 0x5bb4, 0x1010, - 0x5bb5, 0x0f69, - 0x5bb6, 0x0845, - 0x5bb7, 0x2ed8, - 0x5bb8, 0x1733, - 0x5bb9, 0x0cb8, - 0x5bba, 0x2ed9, - 0x5bbd, 0x097a, - 0x5bbe, 0x045f, - 0x5bbf, 0x0dd3, - 0x5bc0, 0x2edc, - 0x5bc2, 0x0838, - 0x5bc3, 0x2ede, - 0x5bc4, 0x0837, - 0x5bc5, 0x1081, - 0x5bc6, 0x0ae1, - 0x5bc7, 0x0969, - 0x5bc8, 0x2edf, - 0x5bcc, 0x06b6, - 0x5bcd, 0x2ee3, - 0x5bd0, 0x0ac7, - 0x5bd1, 0x2ee6, - 0x5bd2, 0x0765, - 0x5bd3, 0x10e5, - 0x5bd4, 0x2ee7, - 0x5bdd, 0x0c5b, - 0x5bde, 0x0b12, - 0x5bdf, 0x04b3, - 0x5be0, 0x2ef0, - 0x5be1, 0x072a, - 0x5be2, 0x20e5, - 0x5be3, 0x2ef1, - 0x5be4, 0x1737, - 0x5be5, 0x0a11, - 0x5be6, 0x212f, - 0x5be7, 0x20a3, - 0x5be8, 0x1150, - 0x5be9, 0x2121, - 0x5bea, 0x2ef2, - 0x5beb, 0x21d4, - 0x5bec, 0x1fe5, - 0x5bed, 0x2ef3, - 0x5bee, 0x1738, - 0x5bef, 0x2ef4, - 0x5bf0, 0x173a, - 0x5bf1, 0x2ef5, - 0x5bf5, 0x1e8a, - 0x5bf6, 0x1e37, - 0x5bf7, 0x2ef9, - 0x5bf8, 0x056a, - 0x5bf9, 0x0613, - 0x5bfa, 0x0db7, - 0x5bfb, 0x0fd9, - 0x5bfc, 0x059d, - 0x5bfd, 0x2efa, - 0x5bff, 0x0d70, - 0x5c00, 0x2efc, - 0x5c01, 0x067f, - 0x5c02, 0x2efd, - 0x5c04, 0x0d1d, - 0x5c05, 0x2eff, - 0x5c06, 0x087c, - 0x5c07, 0x1f9e, - 0x5c08, 0x22a6, - 0x5c09, 0x0ecd, - 0x5c0a, 0x124d, - 0x5c0b, 0x21e8, - 0x5c0c, 0x2f00, - 0x5c0d, 0x1eda, - 0x5c0e, 0x1eb9, - 0x5c0f, 0x0f6c, - 0x5c10, 0x2f01, - 0x5c11, 0x0d12, - 0x5c12, 0x2f02, - 0x5c14, 0x063a, - 0x5c15, 0x17b2, - 0x5c16, 0x0855, - 0x5c17, 0x2f04, - 0x5c18, 0x04e3, - 0x5c19, 0x2f05, - 0x5c1a, 0x0d09, - 0x5c1b, 0x2f06, - 0x5c1c, 0x17b3, - 0x5c1d, 0x04c7, - 0x5c1e, 0x2f07, - 0x5c22, 0x14b6, - 0x5c23, 0x2f0b, - 0x5c24, 0x10ad, - 0x5c25, 0x14b7, - 0x5c26, 0x2f0c, - 0x5c27, 0x1029, - 0x5c28, 0x2f0d, - 0x5c2c, 0x14b8, - 0x5c2d, 0x2f11, - 0x5c31, 0x08fc, - 0x5c32, 0x2f15, - 0x5c34, 0x14b9, - 0x5c35, 0x2f17, - 0x5c37, 0x235c, - 0x5c38, 0x0d43, - 0x5c39, 0x1083, - 0x5c3a, 0x0504, - 0x5c3b, 0x1766, - 0x5c3c, 0x0b44, - 0x5c3d, 0x08d0, - 0x5c3e, 0x0ec1, - 0x5c3f, 0x0b55, - 0x5c40, 0x0905, - 0x5c41, 0x0bc7, - 0x5c42, 0x04aa, - 0x5c43, 0x2f19, - 0x5c45, 0x0902, - 0x5c46, 0x2f1b, - 0x5c48, 0x0c79, - 0x5c49, 0x0e3e, - 0x5c4a, 0x08bd, - 0x5c4b, 0x0eec, - 0x5c4c, 0x2f1d, - 0x5c4e, 0x0d51, - 0x5c4f, 0x0be0, - 0x5c50, 0x1768, - 0x5c51, 0x0f87, - 0x5c52, 0x2f1f, - 0x5c55, 0x115a, - 0x5c56, 0x2f22, - 0x5c59, 0x1769, - 0x5c5a, 0x2f25, - 0x5c5e, 0x0d8b, - 0x5c5f, 0x2f29, - 0x5c60, 0x0e71, - 0x5c61, 0x0a6c, - 0x5c62, 0x2050, - 0x5c63, 0x176b, - 0x5c64, 0x1e67, - 0x5c65, 0x0a6b, - 0x5c66, 0x176c, - 0x5c67, 0x2f2a, - 0x5c68, 0x23f4, - 0x5c69, 0x2f2b, - 0x5c6c, 0x213e, - 0x5c6d, 0x2f2e, - 0x5c6e, 0x1774, - 0x5c6f, 0x0e7e, - 0x5c70, 0x2f2f, - 0x5c71, 0x0cf6, - 0x5c72, 0x2f30, - 0x5c79, 0x1060, - 0x5c7a, 0x15ac, - 0x5c7b, 0x2f37, - 0x5c7f, 0x10d1, - 0x5c80, 0x2f3b, - 0x5c81, 0x0ddf, - 0x5c82, 0x0c10, - 0x5c83, 0x2f3c, - 0x5c88, 0x15b0, - 0x5c89, 0x2f41, - 0x5c8c, 0x15ab, - 0x5c8d, 0x15ad, - 0x5c8e, 0x2f44, - 0x5c90, 0x15ae, - 0x5c91, 0x15b3, - 0x5c92, 0x2f46, - 0x5c94, 0x04b4, - 0x5c95, 0x2f48, - 0x5c96, 0x15af, - 0x5c97, 0x06d5, - 0x5c98, 0x15b1, - 0x5c9a, 0x15b4, - 0x5c9b, 0x059b, - 0x5c9c, 0x15b5, - 0x5c9d, 0x2f49, - 0x5ca1, 0x1f16, - 0x5ca2, 0x15b7, - 0x5ca3, 0x15bc, - 0x5ca4, 0x2f4d, - 0x5ca9, 0x0ffb, - 0x5caa, 0x2f52, - 0x5cab, 0x15ba, - 0x5cac, 0x15b9, - 0x5cad, 0x0a34, - 0x5cae, 0x2f53, - 0x5cb1, 0x15bb, - 0x5cb2, 0x2f56, - 0x5cb3, 0x1103, - 0x5cb4, 0x2f57, - 0x5cb5, 0x15b6, - 0x5cb6, 0x2f58, - 0x5cb7, 0x15be, - 0x5cb8, 0x03c1, - 0x5cb9, 0x2f59, - 0x5cbd, 0x15b8, - 0x5cbe, 0x2f5d, - 0x5cbf, 0x0986, - 0x5cc0, 0x2f5e, - 0x5cc1, 0x15bd, - 0x5cc2, 0x2f5f, - 0x5cc4, 0x15bf, - 0x5cc5, 0x2f61, - 0x5ccb, 0x15c2, - 0x5ccc, 0x2f67, - 0x5cd2, 0x15c0, - 0x5cd3, 0x2f6d, - 0x5cd9, 0x11c4, - 0x5cda, 0x2f73, - 0x5ce1, 0x0f2c, - 0x5ce2, 0x2f7a, - 0x5ce4, 0x15c1, - 0x5ce5, 0x15c3, - 0x5ce6, 0x0a74, - 0x5ce7, 0x2f7c, - 0x5ce8, 0x062a, - 0x5ce9, 0x2f7d, - 0x5cea, 0x10dd, - 0x5ceb, 0x2f7e, - 0x5ced, 0x0c4a, - 0x5cee, 0x2f80, - 0x5cf0, 0x0682, - 0x5cf1, 0x2f82, - 0x5cf4, 0x2389, - 0x5cf5, 0x2f85, - 0x5cf6, 0x1eb7, - 0x5cf7, 0x2f86, - 0x5cfb, 0x092d, - 0x5cfc, 0x2f8a, - 0x5cfd, 0x21b4, - 0x5cfe, 0x2f8b, - 0x5d00, 0x2f8d, - 0x5d02, 0x15c4, - 0x5d04, 0x2f8f, - 0x5d06, 0x15cb, - 0x5d07, 0x050c, - 0x5d08, 0x2f91, - 0x5d0d, 0x238f, - 0x5d0e, 0x0c08, - 0x5d0f, 0x2f96, - 0x5d14, 0x0561, - 0x5d15, 0x2f9b, - 0x5d16, 0x0feb, - 0x5d17, 0x1f1a, - 0x5d18, 0x2f9c, - 0x5d1b, 0x15cc, - 0x5d1c, 0x2f9f, - 0x5d1e, 0x15ca, - 0x5d1f, 0x2fa1, - 0x5d24, 0x15c9, - 0x5d25, 0x2fa6, - 0x5d26, 0x15c7, - 0x5d27, 0x15c6, - 0x5d28, 0x2fa7, - 0x5d29, 0x0429, - 0x5d2a, 0x2fa8, - 0x5d2c, 0x238b, - 0x5d2d, 0x1159, - 0x5d2e, 0x15c8, - 0x5d2f, 0x2faa, - 0x5d34, 0x15cf, - 0x5d35, 0x2faf, - 0x5d3d, 0x15d0, - 0x5d3e, 0x15ce, - 0x5d3f, 0x2fb7, - 0x5d47, 0x1b22, - 0x5d48, 0x2fbf, - 0x5d4a, 0x15d7, - 0x5d4b, 0x15d6, - 0x5d4c, 0x0c33, - 0x5d4d, 0x2fc1, - 0x5d50, 0x238a, - 0x5d51, 0x2fc4, - 0x5d58, 0x15cd, - 0x5d59, 0x2fcb, - 0x5d5b, 0x15d2, - 0x5d5c, 0x2fcd, - 0x5d5d, 0x15d4, - 0x5d5e, 0x2fce, - 0x5d69, 0x15d8, - 0x5d6a, 0x2fd9, - 0x5d6b, 0x15d5, - 0x5d6c, 0x15d1, - 0x5d6d, 0x2fda, - 0x5d6f, 0x15d3, - 0x5d70, 0x2fdc, - 0x5d74, 0x15d9, - 0x5d75, 0x2fe0, - 0x5d81, 0x2391, - 0x5d82, 0x15da, - 0x5d83, 0x2fec, - 0x5d84, 0x2271, - 0x5d85, 0x2fed, - 0x5d87, 0x2388, - 0x5d88, 0x2fef, - 0x5d97, 0x238e, - 0x5d98, 0x2ffe, - 0x5d99, 0x15db, - 0x5d9a, 0x2fff, - 0x5d9d, 0x15dc, - 0x5d9e, 0x3002, - 0x5da0, 0x238d, - 0x5da1, 0x3004, - 0x5da7, 0x238c, - 0x5da8, 0x300a, - 0x5db7, 0x15de, - 0x5db8, 0x2390, - 0x5db9, 0x3019, - 0x5dba, 0x2033, - 0x5dbb, 0x301a, - 0x5dbc, 0x223c, - 0x5dbd, 0x301b, - 0x5dc5, 0x15df, - 0x5dc6, 0x3023, - 0x5dcb, 0x1fe9, - 0x5dcc, 0x3028, - 0x5dcd, 0x0eb0, - 0x5dce, 0x3029, - 0x5dd2, 0x2055, - 0x5dd3, 0x302d, - 0x5dd4, 0x2392, - 0x5dd5, 0x302e, - 0x5ddb, 0x1815, - 0x5ddc, 0x3034, - 0x5ddd, 0x052b, - 0x5dde, 0x11dc, - 0x5ddf, 0x3035, - 0x5de1, 0x0fdb, - 0x5de2, 0x04d7, - 0x5de3, 0x3037, - 0x5de5, 0x06fd, - 0x5de6, 0x1250, - 0x5de7, 0x0c46, - 0x5de8, 0x090d, - 0x5de9, 0x0707, - 0x5dea, 0x3039, - 0x5deb, 0x0ee6, - 0x5dec, 0x303a, - 0x5dee, 0x04b5, - 0x5def, 0x139f, - 0x5df0, 0x2324, - 0x5df1, 0x082d, - 0x5df2, 0x1058, - 0x5df3, 0x0dbd, - 0x5df4, 0x03d8, - 0x5df5, 0x303c, - 0x5df7, 0x0f5c, - 0x5df8, 0x303e, - 0x5dfd, 0x12f7, - 0x5dfe, 0x08be, - 0x5dff, 0x3043, - 0x5e00, 0x3044, - 0x5e01, 0x043b, - 0x5e02, 0x0d67, - 0x5e03, 0x0483, - 0x5e04, 0x3045, - 0x5e05, 0x0d9c, - 0x5e06, 0x0648, - 0x5e07, 0x3046, - 0x5e08, 0x0d3d, - 0x5e09, 0x3047, - 0x5e0c, 0x0f10, - 0x5e0d, 0x304a, - 0x5e0f, 0x159e, - 0x5e10, 0x116b, - 0x5e11, 0x15a1, - 0x5e12, 0x304c, - 0x5e14, 0x15a0, - 0x5e15, 0x0b82, - 0x5e16, 0x0e4e, - 0x5e17, 0x304e, - 0x5e18, 0x09fa, - 0x5e19, 0x159f, - 0x5e1a, 0x11e2, - 0x5e1b, 0x0476, - 0x5e1c, 0x11c3, - 0x5e1d, 0x05bc, - 0x5e1e, 0x304f, - 0x5e25, 0x2143, - 0x5e26, 0x057b, - 0x5e27, 0x11a0, - 0x5e28, 0x3056, - 0x5e2b, 0x2129, - 0x5e2c, 0x3059, - 0x5e2d, 0x0f1c, - 0x5e2e, 0x03fa, - 0x5e2f, 0x305a, - 0x5e31, 0x15a2, - 0x5e32, 0x305c, - 0x5e33, 0x2277, - 0x5e34, 0x305d, - 0x5e36, 0x1ea7, - 0x5e37, 0x15a5, - 0x5e38, 0x04c8, - 0x5e39, 0x305f, - 0x5e3b, 0x15a3, - 0x5e3d, 0x0ab6, - 0x5e3e, 0x3061, - 0x5e40, 0x2285, - 0x5e41, 0x3063, - 0x5e42, 0x0ae2, - 0x5e43, 0x2384, - 0x5e44, 0x15a6, - 0x5e45, 0x0696, - 0x5e46, 0x3064, - 0x5e4c, 0x07e4, - 0x5e4d, 0x306a, - 0x5e54, 0x15a7, - 0x5e55, 0x0b1e, - 0x5e56, 0x3071, - 0x5e57, 0x2387, - 0x5e58, 0x2386, - 0x5e59, 0x3072, - 0x5e5b, 0x15a8, - 0x5e5c, 0x3074, - 0x5e5e, 0x15a9, - 0x5e5f, 0x2290, - 0x5e60, 0x3076, - 0x5e61, 0x15aa, - 0x5e62, 0x0534, - 0x5e63, 0x1e44, - 0x5e64, 0x3077, - 0x5e6b, 0x1e32, - 0x5e6c, 0x2385, - 0x5e6d, 0x307e, - 0x5e72, 0x06c4, - 0x5e73, 0x0bdc, - 0x5e74, 0x0b4d, - 0x5e75, 0x3083, - 0x5e76, 0x0469, - 0x5e77, 0x3084, - 0x5e78, 0x0f9d, - 0x5e79, 0x1f13, - 0x5e7a, 0x1813, - 0x5e7b, 0x07d8, - 0x5e7c, 0x10bc, - 0x5e7d, 0x10a9, - 0x5e7e, 0x1f73, - 0x5e7f, 0x073c, - 0x5e80, 0x1631, - 0x5e81, 0x3085, - 0x5e84, 0x120c, - 0x5e85, 0x3088, - 0x5e86, 0x0c69, - 0x5e87, 0x043c, - 0x5e88, 0x3089, - 0x5e8a, 0x0535, - 0x5e8b, 0x1633, - 0x5e8c, 0x308b, - 0x5e8f, 0x0fbd, - 0x5e90, 0x0a55, - 0x5e91, 0x1632, - 0x5e92, 0x308e, - 0x5e93, 0x096f, - 0x5e94, 0x108b, - 0x5e95, 0x05b8, - 0x5e96, 0x1634, - 0x5e97, 0x05cb, - 0x5e98, 0x308f, - 0x5e99, 0x0af2, - 0x5e9a, 0x06f8, - 0x5e9b, 0x3090, - 0x5e9c, 0x06a9, - 0x5e9d, 0x3091, - 0x5e9e, 0x0b94, - 0x5e9f, 0x066c, - 0x5ea0, 0x1636, - 0x5ea1, 0x3092, - 0x5ea5, 0x1635, - 0x5ea6, 0x0607, - 0x5ea7, 0x1256, - 0x5ea8, 0x3096, - 0x5eab, 0x1fe0, - 0x5eac, 0x3099, - 0x5ead, 0x0e56, - 0x5eae, 0x309a, - 0x5eb3, 0x163a, - 0x5eb4, 0x309f, - 0x5eb5, 0x1638, - 0x5eb6, 0x0d93, - 0x5eb7, 0x0942, - 0x5eb8, 0x109e, - 0x5eb9, 0x1637, - 0x5eba, 0x30a0, - 0x5ebe, 0x1639, - 0x5ebf, 0x30a4, - 0x5ec9, 0x09f7, - 0x5eca, 0x09b3, - 0x5ecb, 0x30ae, - 0x5ed1, 0x163d, - 0x5ed2, 0x163c, - 0x5ed3, 0x0995, - 0x5ed4, 0x30b4, - 0x5ed6, 0x0a17, - 0x5ed7, 0x30b6, - 0x5edb, 0x163e, - 0x5edc, 0x30ba, - 0x5edf, 0x2087, - 0x5ee0, 0x1e78, - 0x5ee1, 0x23ae, - 0x5ee2, 0x1ef6, - 0x5ee3, 0x1f31, - 0x5ee4, 0x30bd, - 0x5ee8, 0x163f, - 0x5ee9, 0x30c1, - 0x5eea, 0x1640, - 0x5eeb, 0x30c2, - 0x5eec, 0x2045, - 0x5eed, 0x30c3, - 0x5ef3, 0x2178, - 0x5ef4, 0x1398, - 0x5ef5, 0x30c9, - 0x5ef6, 0x0ffc, - 0x5ef7, 0x0e53, - 0x5ef8, 0x30ca, - 0x5efa, 0x0879, - 0x5efb, 0x30cc, - 0x5efe, 0x14ad, - 0x5eff, 0x125b, - 0x5f00, 0x0937, - 0x5f01, 0x139d, - 0x5f02, 0x1073, - 0x5f03, 0x0c19, - 0x5f04, 0x0b6b, - 0x5f05, 0x30cf, - 0x5f08, 0x14ae, - 0x5f09, 0x30d2, - 0x5f0a, 0x0440, - 0x5f0b, 0x14f6, - 0x5f0c, 0x30d3, - 0x5f0f, 0x0d54, - 0x5f10, 0x30d6, - 0x5f11, 0x14f9, - 0x5f12, 0x30d7, - 0x5f13, 0x0706, - 0x5f14, 0x30d8, - 0x5f15, 0x1084, - 0x5f16, 0x30d9, - 0x5f17, 0x06a0, - 0x5f18, 0x07a2, - 0x5f19, 0x30da, - 0x5f1b, 0x04ff, - 0x5f1c, 0x30dc, - 0x5f1f, 0x05bd, - 0x5f20, 0x1166, - 0x5f21, 0x30df, - 0x5f25, 0x0adb, - 0x5f26, 0x0f3f, - 0x5f27, 0x07b6, - 0x5f28, 0x30e3, - 0x5f29, 0x176f, - 0x5f2a, 0x176e, - 0x5f2b, 0x30e4, - 0x5f2d, 0x1770, - 0x5f2e, 0x30e6, - 0x5f2f, 0x0e95, - 0x5f30, 0x30e7, - 0x5f31, 0x0cd0, - 0x5f32, 0x30e8, - 0x5f33, 0x23f5, - 0x5f34, 0x30e9, - 0x5f35, 0x2275, - 0x5f36, 0x30ea, - 0x5f39, 0x0590, - 0x5f3a, 0x0c3c, - 0x5f3b, 0x30ed, - 0x5f3c, 0x1772, - 0x5f3d, 0x30ee, - 0x5f40, 0x19be, - 0x5f41, 0x30f1, - 0x5f46, 0x266e, - 0x5f47, 0x30f6, - 0x5f48, 0x1eb0, - 0x5f49, 0x30f7, - 0x5f4c, 0x2083, - 0x5f4d, 0x30fa, - 0x5f4e, 0x2188, - 0x5f4f, 0x30fb, - 0x5f50, 0x1762, - 0x5f51, 0x30fc, - 0x5f52, 0x0742, - 0x5f53, 0x0592, - 0x5f54, 0x30fd, - 0x5f55, 0x0a63, - 0x5f56, 0x1764, - 0x5f57, 0x1763, - 0x5f58, 0x1765, - 0x5f59, 0x267c, - 0x5f5a, 0x30fe, - 0x5f5d, 0x1054, - 0x5f5e, 0x3101, - 0x5f61, 0x15ee, - 0x5f62, 0x0f99, - 0x5f63, 0x3104, - 0x5f64, 0x0e5f, - 0x5f65, 0x3105, - 0x5f66, 0x100e, - 0x5f67, 0x3106, - 0x5f69, 0x0491, - 0x5f6a, 0x0454, - 0x5f6b, 0x3108, - 0x5f6c, 0x045b, - 0x5f6d, 0x0bae, - 0x5f6e, 0x3109, - 0x5f70, 0x1164, - 0x5f71, 0x1095, - 0x5f72, 0x310b, - 0x5f73, 0x15e0, - 0x5f74, 0x310c, - 0x5f77, 0x15e1, - 0x5f78, 0x310f, - 0x5f79, 0x1062, - 0x5f7a, 0x3110, - 0x5f7b, 0x04de, - 0x5f7c, 0x0434, - 0x5f7d, 0x3111, - 0x5f80, 0x0eaa, - 0x5f81, 0x1198, - 0x5f82, 0x15e2, - 0x5f83, 0x3114, - 0x5f84, 0x08e5, - 0x5f85, 0x0580, - 0x5f86, 0x3115, - 0x5f87, 0x15e3, - 0x5f88, 0x0793, - 0x5f89, 0x15e4, - 0x5f8a, 0x07c7, - 0x5f8b, 0x0a70, - 0x5f8c, 0x15e5, - 0x5f8d, 0x3116, - 0x5f90, 0x0fb7, - 0x5f91, 0x1fc5, - 0x5f92, 0x0e6e, - 0x5f93, 0x3119, - 0x5f95, 0x15e6, - 0x5f96, 0x311b, - 0x5f97, 0x05a4, - 0x5f98, 0x0b88, - 0x5f99, 0x15e7, - 0x5f9a, 0x311c, - 0x5f9c, 0x15e8, - 0x5f9d, 0x311e, - 0x5f9e, 0x1ea1, - 0x5f9f, 0x311f, - 0x5fa0, 0x2393, - 0x5fa1, 0x10de, - 0x5fa2, 0x3120, - 0x5fa8, 0x15e9, - 0x5fa9, 0x1f0b, - 0x5faa, 0x0fd6, - 0x5fab, 0x3126, - 0x5fad, 0x15ea, - 0x5fae, 0x0eb1, - 0x5faf, 0x3128, - 0x5fb5, 0x15eb, - 0x5fb6, 0x312e, - 0x5fb7, 0x05a3, - 0x5fb8, 0x312f, - 0x5fb9, 0x1e7c, - 0x5fba, 0x3130, - 0x5fbc, 0x15ec, - 0x5fbd, 0x07ea, - 0x5fbe, 0x3132, - 0x5fc3, 0x0f8f, - 0x5fc4, 0x1642, - 0x5fc5, 0x0441, - 0x5fc6, 0x106b, - 0x5fc7, 0x3137, - 0x5fc9, 0x1643, - 0x5fca, 0x3139, - 0x5fcc, 0x083c, - 0x5fcd, 0x0ca7, - 0x5fce, 0x313b, - 0x5fcf, 0x1645, - 0x5fd0, 0x1a0c, - 0x5fd1, 0x1a0b, - 0x5fd2, 0x14f7, - 0x5fd3, 0x313c, - 0x5fd6, 0x1644, - 0x5fd7, 0x11bd, - 0x5fd8, 0x0ead, - 0x5fd9, 0x0aab, - 0x5fda, 0x313f, - 0x5fdd, 0x1683, - 0x5fde, 0x3142, - 0x5fe0, 0x11d1, - 0x5fe1, 0x1649, - 0x5fe2, 0x3144, - 0x5fe4, 0x164a, - 0x5fe5, 0x3146, - 0x5fe7, 0x10ac, - 0x5fe8, 0x3148, - 0x5fea, 0x164e, - 0x5feb, 0x0979, - 0x5fec, 0x314a, - 0x5fed, 0x164f, - 0x5fee, 0x1647, - 0x5fef, 0x314b, - 0x5ff1, 0x04e5, - 0x5ff2, 0x314d, - 0x5ff5, 0x0b51, - 0x5ff6, 0x3150, - 0x5ff8, 0x1650, - 0x5ff9, 0x3152, - 0x5ffb, 0x0f8e, - 0x5ffc, 0x3154, - 0x5ffd, 0x07ad, - 0x5ffe, 0x164b, - 0x5fff, 0x067b, - 0x6000, 0x07c8, - 0x6001, 0x0dff, - 0x6002, 0x0dc0, - 0x6003, 0x1646, - 0x6004, 0x1648, - 0x6005, 0x164c, - 0x6007, 0x3155, - 0x600a, 0x1659, - 0x600b, 0x3158, - 0x600d, 0x1656, - 0x600e, 0x1138, - 0x600f, 0x1655, - 0x6010, 0x315a, - 0x6012, 0x0b6e, - 0x6013, 0x315c, - 0x6014, 0x119b, - 0x6015, 0x0b83, - 0x6016, 0x0487, - 0x6017, 0x315d, - 0x6019, 0x1651, - 0x601a, 0x315f, - 0x601b, 0x1654, - 0x601c, 0x09f8, - 0x601d, 0x0db1, - 0x601e, 0x3160, - 0x6020, 0x0582, - 0x6021, 0x165b, - 0x6022, 0x3162, - 0x6025, 0x0824, - 0x6026, 0x1653, - 0x6027, 0x0f9f, - 0x6028, 0x10fc, - 0x6029, 0x1657, - 0x602a, 0x072f, - 0x602b, 0x1658, - 0x602c, 0x3165, - 0x602f, 0x0c50, - 0x6030, 0x3168, - 0x6035, 0x1652, - 0x6036, 0x316d, - 0x603b, 0x1239, - 0x603c, 0x1a0d, - 0x603d, 0x3172, - 0x603f, 0x165a, - 0x6040, 0x3174, - 0x6041, 0x1a11, - 0x6042, 0x1660, - 0x6043, 0x0d68, - 0x6044, 0x3175, - 0x604b, 0x09fe, - 0x604c, 0x317c, - 0x604d, 0x07e5, - 0x604e, 0x317d, - 0x6050, 0x0963, - 0x6051, 0x317f, - 0x6052, 0x079a, - 0x6053, 0x3180, - 0x6055, 0x0d96, - 0x6056, 0x3182, - 0x6059, 0x1a12, - 0x605a, 0x1a0f, - 0x605b, 0x3185, - 0x605d, 0x1a0e, - 0x605e, 0x3187, - 0x6062, 0x07eb, - 0x6063, 0x1a13, - 0x6064, 0x0fbf, - 0x6065, 0x318b, - 0x6067, 0x1a10, - 0x6068, 0x0795, - 0x6069, 0x0636, - 0x606a, 0x1661, - 0x606b, 0x05f1, - 0x606c, 0x0e44, - 0x606d, 0x0700, - 0x606e, 0x318d, - 0x606f, 0x0f0f, - 0x6070, 0x0c1e, - 0x6071, 0x318e, - 0x6073, 0x095f, - 0x6074, 0x3190, - 0x6076, 0x0630, - 0x6077, 0x3192, - 0x6078, 0x165c, - 0x607a, 0x165f, - 0x607b, 0x165e, - 0x607c, 0x0b38, - 0x607d, 0x1662, - 0x607e, 0x3193, - 0x607f, 0x10a6, - 0x6080, 0x3194, - 0x6083, 0x1667, - 0x6084, 0x0c41, - 0x6085, 0x3197, - 0x6089, 0x0f11, - 0x608a, 0x319b, - 0x608c, 0x1669, - 0x608d, 0x076e, - 0x608e, 0x319d, - 0x6092, 0x1668, - 0x6093, 0x31a1, - 0x6094, 0x07ef, - 0x6095, 0x31a2, - 0x6096, 0x1663, - 0x6097, 0x31a3, - 0x609a, 0x1664, - 0x609b, 0x166a, - 0x609c, 0x31a6, - 0x609d, 0x1666, - 0x609e, 0x31a7, - 0x609f, 0x0f01, - 0x60a0, 0x10ab, - 0x60a1, 0x31a8, - 0x60a3, 0x07d1, - 0x60a4, 0x31aa, - 0x60a6, 0x1106, - 0x60a7, 0x31ac, - 0x60a8, 0x0b5d, - 0x60a9, 0x31ad, - 0x60ab, 0x1a14, - 0x60ac, 0x0fc7, - 0x60ad, 0x1665, - 0x60ae, 0x31af, - 0x60af, 0x0afa, - 0x60b0, 0x31b0, - 0x60b1, 0x166d, - 0x60b2, 0x0418, - 0x60b3, 0x31b1, - 0x60b4, 0x1672, - 0x60b5, 0x23b4, - 0x60b6, 0x207e, - 0x60b7, 0x31b2, - 0x60b8, 0x0835, - 0x60b9, 0x31b3, - 0x60bb, 0x166c, - 0x60bc, 0x05a0, - 0x60bd, 0x31b5, - 0x60c5, 0x0c66, - 0x60c6, 0x1670, - 0x60c7, 0x31bd, - 0x60ca, 0x08d9, - 0x60cb, 0x0ea0, - 0x60cc, 0x31c0, - 0x60d1, 0x0808, - 0x60d2, 0x31c5, - 0x60d5, 0x0e3b, - 0x60d6, 0x31c8, - 0x60d8, 0x166f, - 0x60d9, 0x31ca, - 0x60da, 0x1671, - 0x60db, 0x31cb, - 0x60dc, 0x0f14, - 0x60dd, 0x166e, - 0x60de, 0x31cc, - 0x60df, 0x0eb8, - 0x60e0, 0x07f2, - 0x60e1, 0x1ee3, - 0x60e2, 0x31cd, - 0x60e6, 0x05cc, - 0x60e7, 0x0914, - 0x60e8, 0x0499, - 0x60e9, 0x04f2, - 0x60ea, 0x31d1, - 0x60eb, 0x0422, - 0x60ec, 0x166b, - 0x60ed, 0x0498, - 0x60ee, 0x058d, - 0x60ef, 0x0738, - 0x60f0, 0x0627, - 0x60f1, 0x2095, - 0x60f2, 0x23bb, - 0x60f3, 0x0f58, - 0x60f4, 0x1677, - 0x60f5, 0x31d2, - 0x60f6, 0x07e1, - 0x60f7, 0x31d3, - 0x60f9, 0x0ca2, - 0x60fa, 0x0f95, - 0x60fb, 0x23b9, - 0x60fc, 0x31d5, - 0x6100, 0x1678, - 0x6101, 0x0513, - 0x6102, 0x31d9, - 0x6106, 0x1a15, - 0x6107, 0x31dd, - 0x6108, 0x10df, - 0x6109, 0x10c9, - 0x610a, 0x31de, - 0x610d, 0x1a16, - 0x610e, 0x1679, - 0x610f, 0x1069, - 0x6110, 0x31e1, - 0x6115, 0x1675, - 0x6116, 0x31e6, - 0x611a, 0x10c3, - 0x611b, 0x1e28, - 0x611c, 0x23bd, - 0x611d, 0x31ea, - 0x611f, 0x06cb, - 0x6120, 0x1673, - 0x6121, 0x31ec, - 0x6123, 0x1676, - 0x6124, 0x067c, - 0x6125, 0x31ee, - 0x6126, 0x1674, - 0x6127, 0x098d, - 0x6128, 0x31ef, - 0x612b, 0x167a, - 0x612c, 0x31f2, - 0x6134, 0x23b5, - 0x6135, 0x31fa, - 0x6137, 0x23ba, - 0x6138, 0x31fc, - 0x613e, 0x23b3, - 0x613f, 0x10fb, - 0x6140, 0x3202, - 0x6148, 0x054b, - 0x6149, 0x320a, - 0x614a, 0x167b, - 0x614b, 0x2162, - 0x614c, 0x07da, - 0x614d, 0x320b, - 0x614e, 0x0d30, - 0x614f, 0x320c, - 0x6151, 0x0d1e, - 0x6152, 0x320e, - 0x6155, 0x0b20, - 0x6156, 0x3211, - 0x6158, 0x1e5e, - 0x6159, 0x3213, - 0x615a, 0x1e5d, - 0x615b, 0x3214, - 0x615d, 0x1a17, - 0x615e, 0x3216, - 0x615f, 0x23b7, - 0x6160, 0x3217, - 0x6162, 0x0aa4, - 0x6163, 0x1f2f, - 0x6164, 0x24df, - 0x6165, 0x3219, - 0x6167, 0x07f0, - 0x6168, 0x093b, - 0x6169, 0x321b, - 0x616a, 0x23b2, - 0x616b, 0x214e, - 0x616c, 0x321c, - 0x616e, 0x2052, - 0x616f, 0x321e, - 0x6170, 0x0ece, - 0x6171, 0x321f, - 0x6173, 0x23bc, - 0x6174, 0x3221, - 0x6175, 0x167c, - 0x6176, 0x20eb, - 0x6177, 0x0943, - 0x6178, 0x3222, - 0x6182, 0x2232, - 0x6183, 0x322c, - 0x618a, 0x1e3f, - 0x618b, 0x0458, - 0x618c, 0x3233, - 0x618e, 0x113a, - 0x618f, 0x3235, - 0x6190, 0x201b, - 0x6191, 0x20bc, - 0x6192, 0x23be, - 0x6193, 0x3236, - 0x6194, 0x167e, - 0x6195, 0x3237, - 0x619a, 0x1eae, - 0x619b, 0x323c, - 0x619d, 0x1a19, - 0x619e, 0x323e, - 0x61a4, 0x1efb, - 0x61a5, 0x3244, - 0x61a7, 0x167f, - 0x61a8, 0x0760, - 0x61a9, 0x1a18, - 0x61aa, 0x3246, - 0x61ab, 0x2089, - 0x61ac, 0x167d, - 0x61ad, 0x3247, - 0x61ae, 0x23b1, - 0x61af, 0x3248, - 0x61b2, 0x21c4, - 0x61b3, 0x324b, - 0x61b6, 0x2214, - 0x61b7, 0x1680, - 0x61b8, 0x324e, - 0x61be, 0x076d, - 0x61bf, 0x3254, - 0x61c2, 0x05ed, - 0x61c3, 0x3257, - 0x61c7, 0x1fde, - 0x61c8, 0x0f83, - 0x61c9, 0x2223, - 0x61ca, 0x03ce, - 0x61cb, 0x1a1a, - 0x61cc, 0x23b6, - 0x61cd, 0x325b, - 0x61d1, 0x1a1b, - 0x61d2, 0x09ac, - 0x61d3, 0x325f, - 0x61d4, 0x1681, - 0x61d5, 0x3260, - 0x61de, 0x268c, - 0x61df, 0x24de, - 0x61e0, 0x3269, - 0x61e3, 0x24e0, - 0x61e4, 0x326c, - 0x61e6, 0x0b74, - 0x61e7, 0x326e, - 0x61e8, 0x23b8, - 0x61e9, 0x326f, - 0x61f2, 0x1e81, - 0x61f3, 0x3278, - 0x61f5, 0x1682, - 0x61f6, 0x1ffe, - 0x61f7, 0x1f51, - 0x61f8, 0x21e1, - 0x61f9, 0x327a, - 0x61fa, 0x23b0, - 0x61fb, 0x327b, - 0x61fc, 0x1fce, - 0x61fd, 0x327c, - 0x61fe, 0x211e, - 0x61ff, 0x13e0, - 0x6200, 0x2021, - 0x6201, 0x327d, - 0x6206, 0x1a1c, - 0x6207, 0x24e1, - 0x6208, 0x06e5, - 0x6209, 0x3282, - 0x620a, 0x0efb, - 0x620b, 0x18f9, - 0x620c, 0x0fb2, - 0x620d, 0x0d90, - 0x620e, 0x0cb1, - 0x620f, 0x0f24, - 0x6210, 0x04ee, - 0x6211, 0x0ee1, - 0x6212, 0x08b5, - 0x6213, 0x3283, - 0x6214, 0x24a3, - 0x6215, 0x169e, - 0x6216, 0x0807, - 0x6217, 0x18fa, - 0x6218, 0x115e, - 0x6219, 0x3284, - 0x621a, 0x0bfc, - 0x621b, 0x18fb, - 0x621c, 0x3285, - 0x621f, 0x18fc, - 0x6220, 0x3288, - 0x6221, 0x18fe, - 0x6222, 0x18fd, - 0x6223, 0x3289, - 0x6224, 0x1900, - 0x6225, 0x18ff, - 0x6226, 0x328a, - 0x6227, 0x24a4, - 0x6228, 0x328b, - 0x622a, 0x08a9, - 0x622b, 0x328d, - 0x622c, 0x1901, - 0x622d, 0x328e, - 0x622e, 0x0a65, - 0x622f, 0x328f, - 0x6230, 0x2273, - 0x6231, 0x3290, - 0x6232, 0x21b0, - 0x6233, 0x0544, - 0x6234, 0x057a, - 0x6235, 0x3291, - 0x6237, 0x07bc, - 0x6238, 0x3293, - 0x623d, 0x19f4, - 0x623e, 0x19f3, - 0x623f, 0x065c, - 0x6240, 0x0dee, - 0x6241, 0x044b, - 0x6242, 0x3298, - 0x6243, 0x19f5, - 0x6244, 0x3299, - 0x6247, 0x0d01, - 0x6248, 0x19f6, - 0x624a, 0x329c, - 0x624b, 0x0d6d, - 0x624c, 0x14ba, - 0x624d, 0x048c, - 0x624e, 0x113d, - 0x624f, 0x329d, - 0x6251, 0x0bea, - 0x6252, 0x03d2, - 0x6253, 0x0575, - 0x6254, 0x0cae, - 0x6255, 0x329f, - 0x6258, 0x0e81, - 0x6259, 0x32a2, - 0x625b, 0x0945, - 0x625c, 0x32a4, - 0x6263, 0x0968, - 0x6264, 0x32ab, - 0x6266, 0x0c21, - 0x6267, 0x11b3, - 0x6268, 0x32ad, - 0x6269, 0x0994, - 0x626a, 0x14bb, - 0x626b, 0x0ce1, - 0x626c, 0x1018, - 0x626d, 0x0b65, - 0x626e, 0x03f2, - 0x626f, 0x04db, - 0x6270, 0x0ca0, - 0x6271, 0x32ae, - 0x6273, 0x03ed, - 0x6274, 0x32b0, - 0x6276, 0x0693, - 0x6277, 0x32b2, - 0x6279, 0x0bbb, - 0x627a, 0x32b4, - 0x627c, 0x0632, - 0x627d, 0x32b6, - 0x627e, 0x1173, - 0x627f, 0x04f5, - 0x6280, 0x082f, - 0x6281, 0x32b7, - 0x6284, 0x04d2, - 0x6285, 0x32ba, - 0x6289, 0x0920, - 0x628a, 0x03dc, - 0x628b, 0x32be, - 0x6291, 0x105d, - 0x6292, 0x0d7a, - 0x6293, 0x1202, - 0x6294, 0x32c4, - 0x6295, 0x0e67, - 0x6296, 0x05f5, - 0x6297, 0x0946, - 0x6298, 0x117c, - 0x6299, 0x32c5, - 0x629a, 0x06a2, - 0x629b, 0x0b98, - 0x629c, 0x32c6, - 0x629f, 0x14bc, - 0x62a0, 0x0966, - 0x62a1, 0x0a7c, - 0x62a2, 0x0c3d, - 0x62a3, 0x32c9, - 0x62a4, 0x07b9, - 0x62a5, 0x0411, - 0x62a6, 0x32ca, - 0x62a8, 0x0bab, - 0x62a9, 0x32cc, - 0x62ab, 0x0bbc, - 0x62ac, 0x0dfa, - 0x62ad, 0x32ce, - 0x62b1, 0x0410, - 0x62b2, 0x32d2, - 0x62b5, 0x05b7, - 0x62b6, 0x32d5, - 0x62b9, 0x0b0b, - 0x62ba, 0x32d8, - 0x62bb, 0x14bd, - 0x62bc, 0x0fe3, - 0x62bd, 0x050e, - 0x62be, 0x32d9, - 0x62bf, 0x0af7, - 0x62c0, 0x32da, - 0x62c2, 0x0694, - 0x62c3, 0x32dc, - 0x62c4, 0x11f3, - 0x62c5, 0x0584, - 0x62c6, 0x04b7, - 0x62c7, 0x0b17, - 0x62c8, 0x0b4c, - 0x62c9, 0x0998, - 0x62ca, 0x14be, - 0x62cb, 0x32dd, - 0x62cc, 0x03f3, - 0x62cd, 0x0b85, - 0x62ce, 0x0a29, - 0x62cf, 0x32de, - 0x62d0, 0x072e, - 0x62d1, 0x32df, - 0x62d2, 0x090b, - 0x62d3, 0x0e89, - 0x62d4, 0x03d9, - 0x62d5, 0x32e0, - 0x62d6, 0x0e80, - 0x62d7, 0x14c0, - 0x62d8, 0x08ff, - 0x62d9, 0x121b, - 0x62da, 0x14bf, - 0x62db, 0x1171, - 0x62dc, 0x03e8, - 0x62dd, 0x32e1, - 0x62df, 0x0b45, - 0x62e0, 0x32e3, - 0x62e2, 0x0a4a, - 0x62e3, 0x0863, - 0x62e4, 0x32e5, - 0x62e5, 0x109a, - 0x62e6, 0x09a4, - 0x62e7, 0x0b62, - 0x62e8, 0x046d, - 0x62e9, 0x1134, - 0x62ea, 0x32e6, - 0x62ec, 0x0993, - 0x62ed, 0x0d5a, - 0x62ee, 0x14c1, - 0x62ef, 0x119d, - 0x62f0, 0x32e8, - 0x62f1, 0x0709, - 0x62f2, 0x32e9, - 0x62f3, 0x0c88, - 0x62f4, 0x0d9e, - 0x62f5, 0x32ea, - 0x62f6, 0x14c3, - 0x62f7, 0x094a, - 0x62f8, 0x32eb, - 0x62fc, 0x0bd3, - 0x62fd, 0x1204, - 0x62fe, 0x0d47, - 0x62ff, 0x0b26, - 0x6300, 0x32ef, - 0x6301, 0x04fb, - 0x6302, 0x072b, - 0x6303, 0x32f0, - 0x6307, 0x11b7, - 0x6308, 0x194e, - 0x6309, 0x03bf, - 0x630a, 0x32f4, - 0x630e, 0x0973, - 0x630f, 0x32f8, - 0x6311, 0x0e47, - 0x6312, 0x32fa, - 0x6316, 0x0e8b, - 0x6317, 0x32fe, - 0x631a, 0x11be, - 0x631b, 0x0a75, - 0x631c, 0x3301, - 0x631d, 0x0edd, - 0x631e, 0x0df5, - 0x631f, 0x0f79, - 0x6320, 0x0b36, - 0x6321, 0x0593, - 0x6322, 0x14c2, - 0x6323, 0x1196, - 0x6324, 0x082a, - 0x6325, 0x07e8, - 0x6326, 0x3302, - 0x6328, 0x03af, - 0x6329, 0x3304, - 0x632a, 0x0b73, - 0x632b, 0x056f, - 0x632c, 0x3305, - 0x632f, 0x1192, - 0x6330, 0x3308, - 0x6332, 0x194f, - 0x6333, 0x330a, - 0x6339, 0x14c4, - 0x633a, 0x0e57, - 0x633b, 0x3310, - 0x633d, 0x0e9d, - 0x633e, 0x21d1, - 0x633f, 0x3312, - 0x6342, 0x0ef5, - 0x6343, 0x14c6, - 0x6344, 0x3315, - 0x6345, 0x0e62, - 0x6346, 0x0991, - 0x6347, 0x3316, - 0x6349, 0x121a, - 0x634a, 0x3318, - 0x634b, 0x14c5, - 0x634c, 0x03d1, - 0x634d, 0x076b, - 0x634e, 0x0d0c, - 0x634f, 0x0b56, - 0x6350, 0x0917, - 0x6351, 0x3319, - 0x6355, 0x047d, - 0x6356, 0x331d, - 0x635e, 0x09b7, - 0x635f, 0x0de5, - 0x6360, 0x3325, - 0x6361, 0x0864, - 0x6362, 0x07d0, - 0x6363, 0x0598, - 0x6364, 0x3326, - 0x6367, 0x0bb6, - 0x6368, 0x211c, - 0x6369, 0x14d0, - 0x636a, 0x3329, - 0x636b, 0x235d, - 0x636c, 0x332a, - 0x636d, 0x14cd, - 0x636e, 0x090c, - 0x636f, 0x332b, - 0x6371, 0x14c9, - 0x6372, 0x2682, - 0x6373, 0x332d, - 0x6376, 0x053a, - 0x6377, 0x08ae, - 0x6378, 0x3330, - 0x637a, 0x14ca, - 0x637b, 0x0b50, - 0x637c, 0x3332, - 0x6380, 0x0f33, - 0x6381, 0x3336, - 0x6382, 0x05c1, - 0x6383, 0x210d, - 0x6384, 0x205a, - 0x6385, 0x3337, - 0x6387, 0x061d, - 0x6388, 0x0d71, - 0x6389, 0x05d5, - 0x638a, 0x14cf, - 0x638b, 0x3339, - 0x638c, 0x1167, - 0x638d, 0x333a, - 0x638e, 0x14cb, - 0x638f, 0x0e20, - 0x6390, 0x0c1d, - 0x6391, 0x333b, - 0x6392, 0x0b86, - 0x6393, 0x333c, - 0x6396, 0x103b, - 0x6397, 0x333f, - 0x6398, 0x0921, - 0x6399, 0x3340, - 0x63a0, 0x0a7a, - 0x63a1, 0x3347, - 0x63a2, 0x0e10, - 0x63a3, 0x04dd, - 0x63a4, 0x3348, - 0x63a5, 0x08a4, - 0x63a6, 0x3349, - 0x63a7, 0x0965, - 0x63a8, 0x0e77, - 0x63a9, 0x1003, - 0x63aa, 0x056e, - 0x63ab, 0x334a, - 0x63ac, 0x14ce, - 0x63ad, 0x14c7, - 0x63ae, 0x14d1, - 0x63af, 0x334b, - 0x63b0, 0x1950, - 0x63b1, 0x334c, - 0x63b3, 0x0a57, - 0x63b4, 0x14cc, - 0x63b5, 0x334e, - 0x63b7, 0x11bf, - 0x63b8, 0x0588, - 0x63b9, 0x3350, - 0x63ba, 0x04bb, - 0x63bb, 0x3351, - 0x63bc, 0x14d2, - 0x63bd, 0x3352, - 0x63be, 0x14dc, - 0x63bf, 0x3353, - 0x63c0, 0x1f8d, - 0x63c1, 0x3354, - 0x63c4, 0x14d7, - 0x63c5, 0x3357, - 0x63c6, 0x14db, - 0x63c7, 0x3358, - 0x63c9, 0x0cbb, - 0x63ca, 0x335a, - 0x63cd, 0x123e, - 0x63ce, 0x14d9, - 0x63cf, 0x0aed, - 0x63d0, 0x0e34, - 0x63d1, 0x335d, - 0x63d2, 0x04ac, - 0x63d3, 0x335e, - 0x63d6, 0x1045, - 0x63d7, 0x3361, - 0x63da, 0x21ff, - 0x63db, 0x3364, - 0x63de, 0x14d8, - 0x63df, 0x3367, - 0x63e0, 0x14d5, - 0x63e1, 0x0ee4, - 0x63e2, 0x3368, - 0x63e3, 0x052a, - 0x63e4, 0x3369, - 0x63e9, 0x0938, - 0x63ea, 0x08ed, - 0x63eb, 0x336e, - 0x63ed, 0x08a3, - 0x63ee, 0x1f58, - 0x63ef, 0x3370, - 0x63f2, 0x14d3, - 0x63f3, 0x3373, - 0x63f4, 0x10f1, - 0x63f5, 0x3374, - 0x63f6, 0x14c8, - 0x63f7, 0x3375, - 0x63f8, 0x14d4, - 0x63f9, 0x3376, - 0x63fd, 0x09aa, - 0x63fe, 0x337a, - 0x63ff, 0x14d6, - 0x6400, 0x04ba, - 0x6401, 0x06e4, - 0x6402, 0x0a4e, - 0x6403, 0x337b, - 0x6405, 0x0892, - 0x6406, 0x337d, - 0x640b, 0x14df, - 0x640c, 0x14e2, - 0x640d, 0x215b, - 0x640e, 0x3382, - 0x640f, 0x0472, - 0x6410, 0x0527, - 0x6411, 0x3383, - 0x6413, 0x056d, - 0x6414, 0x0cdf, - 0x6415, 0x3385, - 0x6417, 0x1eb6, - 0x6418, 0x3387, - 0x641b, 0x14e0, - 0x641c, 0x0dc6, - 0x641d, 0x338a, - 0x641e, 0x06de, - 0x641f, 0x338b, - 0x6420, 0x14e1, - 0x6421, 0x14e4, - 0x6422, 0x338c, - 0x6426, 0x14e3, - 0x6427, 0x3390, - 0x642a, 0x0e15, - 0x642b, 0x3393, - 0x642c, 0x03ec, - 0x642d, 0x0571, - 0x642e, 0x3394, - 0x6434, 0x1736, - 0x6435, 0x339a, - 0x6436, 0x20db, - 0x6437, 0x339b, - 0x643a, 0x0f7a, - 0x643b, 0x339e, - 0x643d, 0x04b2, - 0x643e, 0x33a0, - 0x643f, 0x1951, - 0x6440, 0x33a1, - 0x6441, 0x14de, - 0x6442, 0x33a2, - 0x6444, 0x0d1c, - 0x6445, 0x14dd, - 0x6446, 0x03e5, - 0x6447, 0x1028, - 0x6448, 0x0460, - 0x6449, 0x33a4, - 0x644a, 0x0e02, - 0x644b, 0x33a5, - 0x6451, 0x2360, - 0x6452, 0x14da, - 0x6453, 0x33ab, - 0x6454, 0x0d99, - 0x6455, 0x33ac, - 0x6458, 0x114b, - 0x6459, 0x33af, - 0x645c, 0x2361, - 0x645d, 0x33b2, - 0x645e, 0x14e5, - 0x645f, 0x2040, - 0x6460, 0x33b3, - 0x6467, 0x0560, - 0x6468, 0x33ba, - 0x6469, 0x0b09, - 0x646a, 0x33bb, - 0x646d, 0x14e7, - 0x646e, 0x33be, - 0x646f, 0x228e, - 0x6470, 0x33bf, - 0x6473, 0x1fdf, - 0x6474, 0x33c2, - 0x6476, 0x235e, - 0x6477, 0x33c4, - 0x6478, 0x0b03, - 0x647a, 0x14e9, - 0x647b, 0x1e6a, - 0x647c, 0x33c5, - 0x6482, 0x0a15, - 0x6483, 0x33cb, - 0x6484, 0x14e6, - 0x6485, 0x091e, - 0x6486, 0x33cc, - 0x6487, 0x0bd1, - 0x6488, 0x2002, - 0x6489, 0x33cd, - 0x6491, 0x04ea, - 0x6492, 0x0cd1, - 0x6493, 0x2093, - 0x6494, 0x33d5, - 0x6495, 0x0daf, - 0x6496, 0x14e8, - 0x6497, 0x33d6, - 0x6499, 0x14ec, - 0x649a, 0x33d8, - 0x649e, 0x120f, - 0x649f, 0x235f, - 0x64a0, 0x33dc, - 0x64a3, 0x1eac, - 0x64a4, 0x04dc, - 0x64a5, 0x1e54, - 0x64a6, 0x33df, - 0x64a9, 0x0a0c, - 0x64aa, 0x33e2, - 0x64ab, 0x1f08, - 0x64ac, 0x0c48, - 0x64ad, 0x046c, - 0x64ae, 0x056c, - 0x64af, 0x33e3, - 0x64b0, 0x1208, - 0x64b1, 0x33e4, - 0x64b2, 0x20c0, - 0x64b3, 0x2362, - 0x64b4, 0x33e5, - 0x64b5, 0x0b4f, - 0x64b6, 0x33e6, - 0x64b7, 0x14ea, - 0x64b9, 0x33e7, - 0x64ba, 0x14ed, - 0x64bb, 0x2160, - 0x64bc, 0x076a, - 0x64bd, 0x33e8, - 0x64be, 0x219d, - 0x64bf, 0x1f8e, - 0x64c0, 0x14ee, - 0x64c1, 0x222d, - 0x64c2, 0x09c9, - 0x64c3, 0x33e9, - 0x64c4, 0x2047, - 0x64c5, 0x0cfc, - 0x64c6, 0x33ea, - 0x64c7, 0x2262, - 0x64c8, 0x33eb, - 0x64ca, 0x1f67, - 0x64cb, 0x1eb2, - 0x64cc, 0x33ed, - 0x64cd, 0x04a0, - 0x64ce, 0x0c63, - 0x64cf, 0x33ee, - 0x64d0, 0x14ef, - 0x64d1, 0x33ef, - 0x64d2, 0x0c59, - 0x64d3, 0x33f0, - 0x64d4, 0x1ea9, - 0x64d5, 0x33f1, - 0x64d7, 0x14f0, - 0x64d8, 0x1952, - 0x64d9, 0x33f3, - 0x64da, 0x1fcc, - 0x64db, 0x33f4, - 0x64de, 0x0dc8, - 0x64df, 0x33f7, - 0x64e0, 0x1f72, - 0x64e1, 0x33f8, - 0x64e2, 0x14f2, - 0x64e3, 0x33f9, - 0x64e4, 0x14f1, - 0x64e5, 0x33fa, - 0x64e6, 0x0488, - 0x64e7, 0x33fb, - 0x64ec, 0x2098, - 0x64ed, 0x3400, - 0x64ef, 0x1e52, - 0x64f0, 0x20a4, - 0x64f1, 0x1f1c, - 0x64f2, 0x228f, - 0x64f3, 0x3402, - 0x64f4, 0x1fed, - 0x64f5, 0x3403, - 0x64f7, 0x2365, - 0x64f8, 0x3405, - 0x64fa, 0x1e2d, - 0x64fb, 0x2152, - 0x64fc, 0x2366, - 0x64fd, 0x3407, - 0x64fe, 0x20fa, - 0x64ff, 0x3408, - 0x6500, 0x0b8b, - 0x6501, 0x3409, - 0x6504, 0x2363, - 0x6505, 0x340c, - 0x6506, 0x209a, - 0x6507, 0x340d, - 0x6509, 0x14f3, - 0x650a, 0x340f, - 0x650f, 0x203c, - 0x6510, 0x3414, - 0x6512, 0x111f, - 0x6513, 0x3416, - 0x6514, 0x1ff6, - 0x6515, 0x3417, - 0x6516, 0x2364, - 0x6517, 0x3418, - 0x6518, 0x0c9c, - 0x6519, 0x1e69, - 0x651a, 0x3419, - 0x651b, 0x2367, - 0x651c, 0x341a, - 0x651d, 0x211d, - 0x651e, 0x341b, - 0x6522, 0x2259, - 0x6523, 0x2056, - 0x6524, 0x2163, - 0x6525, 0x14f4, - 0x6526, 0x341f, - 0x652a, 0x1fa9, - 0x652b, 0x091f, - 0x652c, 0x1ffc, - 0x652d, 0x3423, - 0x652e, 0x14f5, - 0x652f, 0x11a6, - 0x6530, 0x3424, - 0x6534, 0x1909, - 0x6535, 0x1966, - 0x6536, 0x0d6c, - 0x6537, 0x3428, - 0x6538, 0x12b2, - 0x6539, 0x06bf, - 0x653a, 0x3429, - 0x653b, 0x06fe, - 0x653c, 0x342a, - 0x653e, 0x0662, - 0x653f, 0x119f, - 0x6540, 0x342c, - 0x6545, 0x0723, - 0x6546, 0x3431, - 0x6548, 0x0f72, - 0x6549, 0x1ccb, - 0x654a, 0x3433, - 0x654c, 0x05b1, - 0x654d, 0x3435, - 0x654f, 0x0af9, - 0x6550, 0x3437, - 0x6551, 0x08f7, - 0x6552, 0x3438, - 0x6555, 0x1967, - 0x6556, 0x03c8, - 0x6557, 0x1e2e, - 0x6558, 0x343b, - 0x6559, 0x089d, - 0x655a, 0x343c, - 0x655b, 0x09fb, - 0x655c, 0x343d, - 0x655d, 0x043f, - 0x655e, 0x04cd, - 0x655f, 0x343e, - 0x6562, 0x06cd, - 0x6563, 0x0cdb, - 0x6564, 0x3441, - 0x6566, 0x0617, - 0x6567, 0x3443, - 0x656b, 0x1968, - 0x656c, 0x08e3, - 0x656d, 0x3447, - 0x6570, 0x0d94, - 0x6571, 0x344a, - 0x6572, 0x0c40, - 0x6573, 0x344b, - 0x6574, 0x119c, - 0x6575, 0x1ebc, - 0x6576, 0x344c, - 0x6577, 0x0690, - 0x6578, 0x2142, - 0x6579, 0x344d, - 0x6582, 0x201e, - 0x6583, 0x1e43, - 0x6584, 0x3456, - 0x6587, 0x0ed3, - 0x6588, 0x3459, - 0x658b, 0x114c, - 0x658c, 0x045c, - 0x658d, 0x345c, - 0x6590, 0x19c1, - 0x6591, 0x03ea, - 0x6592, 0x345f, - 0x6593, 0x19c3, - 0x6594, 0x3460, - 0x6595, 0x24d4, - 0x6596, 0x3461, - 0x6597, 0x05f6, - 0x6598, 0x3462, - 0x6599, 0x0a18, - 0x659a, 0x3463, - 0x659b, 0x1d56, - 0x659c, 0x0f7c, - 0x659d, 0x3464, - 0x659f, 0x1186, - 0x65a0, 0x3466, - 0x65a1, 0x0ee2, - 0x65a2, 0x3467, - 0x65a4, 0x08c0, - 0x65a5, 0x0507, - 0x65a6, 0x3469, - 0x65a7, 0x06a6, - 0x65a8, 0x346a, - 0x65a9, 0x1157, - 0x65aa, 0x346b, - 0x65ab, 0x1a29, - 0x65ac, 0x226f, - 0x65ad, 0x060e, - 0x65ae, 0x346c, - 0x65af, 0x0dae, - 0x65b0, 0x0f8d, - 0x65b1, 0x346d, - 0x65b7, 0x1ed7, - 0x65b8, 0x3473, - 0x65b9, 0x065a, - 0x65ba, 0x3474, - 0x65bc, 0x19c4, - 0x65bd, 0x0d40, - 0x65be, 0x3476, - 0x65c1, 0x0b95, - 0x65c2, 0x3479, - 0x65c3, 0x19c7, - 0x65c4, 0x19c6, - 0x65c5, 0x0a6a, - 0x65c6, 0x19c5, - 0x65c7, 0x347a, - 0x65cb, 0x0fc8, - 0x65cc, 0x19c8, - 0x65cd, 0x347e, - 0x65ce, 0x19c9, - 0x65cf, 0x1242, - 0x65d0, 0x347f, - 0x65d2, 0x19ca, - 0x65d3, 0x3481, - 0x65d6, 0x19cb, - 0x65d7, 0x0c0b, - 0x65d8, 0x3484, - 0x65e0, 0x0eed, - 0x65e1, 0x348c, - 0x65e2, 0x083b, - 0x65e3, 0x348d, - 0x65e5, 0x0cb0, - 0x65e6, 0x058a, - 0x65e7, 0x08f8, - 0x65e8, 0x11bb, - 0x65e9, 0x112a, - 0x65ea, 0x348f, - 0x65ec, 0x0fd7, - 0x65ed, 0x0fbc, - 0x65ee, 0x190a, - 0x65f1, 0x076c, - 0x65f2, 0x3491, - 0x65f6, 0x0d48, - 0x65f7, 0x0982, - 0x65f8, 0x3495, - 0x65fa, 0x0eab, - 0x65fb, 0x3497, - 0x6600, 0x1912, - 0x6601, 0x349c, - 0x6602, 0x03c5, - 0x6603, 0x1910, - 0x6604, 0x349d, - 0x6606, 0x0990, - 0x6607, 0x349f, - 0x660a, 0x190d, - 0x660b, 0x34a2, - 0x660c, 0x04c4, - 0x660d, 0x34a3, - 0x660e, 0x0afc, - 0x660f, 0x07fd, - 0x6610, 0x34a4, - 0x6613, 0x105e, - 0x6614, 0x0f03, - 0x6615, 0x1911, - 0x6616, 0x34a7, - 0x6619, 0x190e, - 0x661a, 0x34aa, - 0x661d, 0x1915, - 0x661e, 0x34ad, - 0x661f, 0x0f92, - 0x6620, 0x1098, - 0x6621, 0x34ae, - 0x6625, 0x053d, - 0x6626, 0x34b2, - 0x6627, 0x0ac6, - 0x6628, 0x124f, - 0x6629, 0x34b3, - 0x662d, 0x1172, - 0x662e, 0x34b7, - 0x662f, 0x0d5e, - 0x6630, 0x34b8, - 0x6631, 0x1917, - 0x6632, 0x34b9, - 0x6634, 0x1916, - 0x6635, 0x1919, - 0x6636, 0x1918, - 0x6637, 0x34bb, - 0x663c, 0x11e6, - 0x663d, 0x34c0, - 0x663e, 0x0f41, - 0x663f, 0x34c1, - 0x6641, 0x191d, - 0x6642, 0x212d, - 0x6643, 0x07e3, - 0x6644, 0x34c3, - 0x664b, 0x08cb, - 0x664c, 0x0d07, - 0x664d, 0x34ca, - 0x664f, 0x191e, - 0x6650, 0x34cc, - 0x6652, 0x0cf2, - 0x6653, 0x0f6b, - 0x6654, 0x191c, - 0x6655, 0x1111, - 0x6656, 0x191f, - 0x6657, 0x1921, - 0x6658, 0x34ce, - 0x665a, 0x0e9e, - 0x665b, 0x34d0, - 0x665d, 0x229b, - 0x665e, 0x34d2, - 0x665f, 0x191b, - 0x6660, 0x34d3, - 0x6661, 0x1920, - 0x6662, 0x34d4, - 0x6664, 0x0efd, - 0x6665, 0x34d6, - 0x6666, 0x07f3, - 0x6667, 0x34d7, - 0x6668, 0x04e4, - 0x6669, 0x34d8, - 0x666e, 0x0bf4, - 0x666f, 0x08df, - 0x6670, 0x0f09, - 0x6671, 0x34dd, - 0x6674, 0x0c64, - 0x6675, 0x34e0, - 0x6676, 0x08d6, - 0x6677, 0x1922, - 0x6678, 0x34e1, - 0x667a, 0x11c6, - 0x667b, 0x34e3, - 0x667e, 0x0a09, - 0x667f, 0x34e6, - 0x6682, 0x1120, - 0x6683, 0x34e9, - 0x6684, 0x1923, - 0x6685, 0x34ea, - 0x6687, 0x0f2b, - 0x6688, 0x2256, - 0x6689, 0x24a8, - 0x668a, 0x34ec, - 0x668c, 0x1924, - 0x668d, 0x34ee, - 0x6691, 0x0d85, - 0x6692, 0x34f2, - 0x6696, 0x0b70, - 0x6697, 0x03c0, - 0x6698, 0x34f6, - 0x669d, 0x1926, - 0x669e, 0x34fb, - 0x66a2, 0x1e79, - 0x66a3, 0x34ff, - 0x66a7, 0x1925, - 0x66a8, 0x1cdd, - 0x66a9, 0x3503, - 0x66ab, 0x225a, - 0x66ac, 0x3505, - 0x66ae, 0x0b1d, - 0x66af, 0x3507, - 0x66b4, 0x0412, - 0x66b5, 0x350c, - 0x66b9, 0x175b, - 0x66ba, 0x3510, - 0x66be, 0x1927, - 0x66bf, 0x3514, - 0x66c4, 0x24a7, - 0x66c5, 0x3519, - 0x66c6, 0x2686, - 0x66c7, 0x24a6, - 0x66c8, 0x351a, - 0x66c9, 0x21ce, - 0x66ca, 0x351b, - 0x66d6, 0x24a9, - 0x66d7, 0x3527, - 0x66d9, 0x0d86, - 0x66da, 0x3529, - 0x66db, 0x1928, - 0x66dd, 0x0bf7, - 0x66de, 0x352a, - 0x66e0, 0x1fe7, - 0x66e1, 0x352c, - 0x66e6, 0x192a, - 0x66e7, 0x3531, - 0x66e9, 0x192b, - 0x66ea, 0x3533, - 0x66ec, 0x2112, - 0x66ed, 0x3535, - 0x66f0, 0x10fe, - 0x66f1, 0x3538, - 0x66f2, 0x0c77, - 0x66f3, 0x103e, - 0x66f4, 0x06f7, - 0x66f5, 0x3539, - 0x66f7, 0x1914, - 0x66f8, 0x213c, - 0x66f9, 0x04a3, - 0x66fa, 0x353b, - 0x66fc, 0x0aa3, - 0x66fd, 0x353d, - 0x66fe, 0x113b, - 0x66ff, 0x0e39, - 0x6700, 0x124b, - 0x6701, 0x353e, - 0x6703, 0x1f5c, - 0x6704, 0x3540, - 0x6708, 0x1105, - 0x6709, 0x10b5, - 0x670a, 0x1973, - 0x670b, 0x0bb4, - 0x670c, 0x3544, - 0x670d, 0x069b, - 0x670e, 0x3545, - 0x6710, 0x1984, - 0x6711, 0x3547, - 0x6714, 0x0dac, - 0x6715, 0x198e, - 0x6716, 0x354a, - 0x6717, 0x09b5, - 0x6718, 0x354b, - 0x671b, 0x0eac, - 0x671c, 0x354e, - 0x671d, 0x04d4, - 0x671e, 0x354f, - 0x671f, 0x0bf9, - 0x6720, 0x3550, - 0x6726, 0x19ac, - 0x6727, 0x24c4, - 0x6728, 0x0b21, - 0x6729, 0x3556, - 0x672a, 0x0ec3, - 0x672b, 0x0b0c, - 0x672c, 0x0427, - 0x672d, 0x1140, - 0x672e, 0x3557, - 0x672f, 0x0d8c, - 0x6730, 0x3558, - 0x6731, 0x11eb, - 0x6732, 0x3559, - 0x6734, 0x0bf2, - 0x6735, 0x0623, - 0x6736, 0x355b, - 0x673a, 0x080f, - 0x673b, 0x355f, - 0x673d, 0x0fab, - 0x673e, 0x3561, - 0x6740, 0x0cea, - 0x6741, 0x3563, - 0x6742, 0x1116, - 0x6743, 0x0c83, - 0x6744, 0x3564, - 0x6746, 0x06c6, - 0x6747, 0x3566, - 0x6748, 0x1854, - 0x6749, 0x0cf5, - 0x674a, 0x3567, - 0x674c, 0x1851, - 0x674d, 0x3569, - 0x674e, 0x09d9, - 0x674f, 0x0f9e, - 0x6750, 0x048b, - 0x6751, 0x0568, - 0x6752, 0x356a, - 0x6753, 0x1852, - 0x6754, 0x356b, - 0x6756, 0x1169, - 0x6757, 0x356d, - 0x675c, 0x0604, - 0x675d, 0x3572, - 0x675e, 0x1853, - 0x675f, 0x0d8f, - 0x6760, 0x06d7, - 0x6761, 0x0e48, - 0x6762, 0x3573, - 0x6765, 0x099f, - 0x6766, 0x3576, - 0x6768, 0x1017, - 0x6769, 0x1855, - 0x676a, 0x1858, - 0x676b, 0x3578, - 0x676d, 0x0773, - 0x676e, 0x357a, - 0x676f, 0x0416, - 0x6770, 0x08ad, - 0x6771, 0x1ecc, - 0x6772, 0x190f, - 0x6773, 0x1859, - 0x6774, 0x357b, - 0x6775, 0x185c, - 0x6776, 0x357c, - 0x6777, 0x1861, - 0x6778, 0x357d, - 0x677c, 0x1862, - 0x677d, 0x3581, - 0x677e, 0x0dbe, - 0x677f, 0x03f0, - 0x6780, 0x3582, - 0x6781, 0x081e, - 0x6782, 0x3583, - 0x6784, 0x0712, - 0x6785, 0x3585, - 0x6787, 0x1857, - 0x6788, 0x3587, - 0x6789, 0x0ea8, - 0x678a, 0x3588, - 0x678b, 0x1860, - 0x678c, 0x3589, - 0x6790, 0x0f05, - 0x6791, 0x358d, - 0x6795, 0x118e, - 0x6796, 0x3591, - 0x6797, 0x0a1f, - 0x6798, 0x185a, - 0x6799, 0x3592, - 0x679a, 0x0abb, - 0x679b, 0x3593, - 0x679c, 0x0754, - 0x679d, 0x11a5, - 0x679e, 0x185e, - 0x679f, 0x3594, - 0x67a2, 0x0d77, - 0x67a3, 0x1129, - 0x67a4, 0x3597, - 0x67a5, 0x1856, - 0x67a6, 0x3598, - 0x67a7, 0x185b, - 0x67a8, 0x185d, - 0x67a9, 0x3599, - 0x67aa, 0x0c36, - 0x67ab, 0x0680, - 0x67ac, 0x359a, - 0x67ad, 0x185f, - 0x67ae, 0x359b, - 0x67af, 0x096a, - 0x67b0, 0x1868, - 0x67b1, 0x359c, - 0x67b3, 0x186d, - 0x67b4, 0x359e, - 0x67b5, 0x186b, - 0x67b6, 0x084f, - 0x67b7, 0x0842, - 0x67b8, 0x1871, - 0x67b9, 0x359f, - 0x67c1, 0x1874, - 0x67c2, 0x35a7, - 0x67c3, 0x1870, - 0x67c4, 0x0463, - 0x67c5, 0x35a8, - 0x67cf, 0x03e3, - 0x67d0, 0x0b16, - 0x67d1, 0x06c7, - 0x67d2, 0x0c01, - 0x67d3, 0x0c99, - 0x67d4, 0x0cbc, - 0x67d5, 0x35b2, - 0x67d8, 0x1865, - 0x67d9, 0x186a, - 0x67da, 0x186c, - 0x67db, 0x35b5, - 0x67dc, 0x074a, - 0x67dd, 0x186e, - 0x67de, 0x1252, - 0x67df, 0x35b6, - 0x67e0, 0x0b5e, - 0x67e1, 0x35b7, - 0x67e2, 0x1872, - 0x67e3, 0x35b8, - 0x67e5, 0x04b0, - 0x67e6, 0x35ba, - 0x67e9, 0x1867, - 0x67ea, 0x35bd, - 0x67ec, 0x0860, - 0x67ed, 0x35bf, - 0x67ef, 0x094f, - 0x67f0, 0x1863, - 0x67f1, 0x11f8, - 0x67f2, 0x35c1, - 0x67f3, 0x0a41, - 0x67f4, 0x04b8, - 0x67f5, 0x35c2, - 0x67fd, 0x1875, - 0x67fe, 0x35ca, - 0x67ff, 0x0d58, - 0x6800, 0x186f, - 0x6801, 0x35cb, - 0x6805, 0x1145, - 0x6806, 0x35cf, - 0x6807, 0x0453, - 0x6808, 0x115c, - 0x6809, 0x1864, - 0x680a, 0x1866, - 0x680b, 0x05ef, - 0x680c, 0x1869, - 0x680d, 0x35d0, - 0x680e, 0x1873, - 0x680f, 0x09a3, - 0x6810, 0x35d1, - 0x6811, 0x0d8e, - 0x6812, 0x35d2, - 0x6813, 0x0d9d, - 0x6814, 0x35d3, - 0x6816, 0x0bfb, - 0x6817, 0x09e0, - 0x6818, 0x35d5, - 0x681d, 0x187f, - 0x681e, 0x35da, - 0x6821, 0x0f6e, - 0x6822, 0x35dd, - 0x6829, 0x1888, - 0x682a, 0x11e9, - 0x682b, 0x35e4, - 0x6832, 0x1876, - 0x6834, 0x35eb, - 0x6837, 0x1022, - 0x6838, 0x0782, - 0x6839, 0x06f4, - 0x683a, 0x35ee, - 0x683c, 0x06ec, - 0x683d, 0x1117, - 0x683e, 0x1885, - 0x683f, 0x35f0, - 0x6840, 0x1884, - 0x6841, 0x1882, - 0x6842, 0x0749, - 0x6843, 0x0e25, - 0x6844, 0x187c, - 0x6845, 0x0eb5, - 0x6846, 0x097f, - 0x6847, 0x35f1, - 0x6848, 0x03c3, - 0x6849, 0x1887, - 0x684a, 0x1886, - 0x684b, 0x35f2, - 0x684c, 0x121d, - 0x684d, 0x35f3, - 0x684e, 0x187a, - 0x684f, 0x35f4, - 0x6850, 0x0e5a, - 0x6851, 0x0cdc, - 0x6852, 0x35f5, - 0x6853, 0x07cd, - 0x6854, 0x08ac, - 0x6855, 0x1880, - 0x6856, 0x35f6, - 0x6860, 0x1878, - 0x6862, 0x187b, - 0x6863, 0x0596, - 0x6864, 0x187d, - 0x6865, 0x0c42, - 0x6866, 0x1881, - 0x6867, 0x1883, - 0x6868, 0x0881, - 0x6869, 0x120b, - 0x686a, 0x3600, - 0x686b, 0x188e, - 0x686c, 0x3601, - 0x6874, 0x188b, - 0x6875, 0x3609, - 0x6876, 0x0e61, - 0x6877, 0x188c, - 0x6878, 0x360a, - 0x6881, 0x0a03, - 0x6882, 0x3613, - 0x6883, 0x187e, - 0x6884, 0x3614, - 0x6885, 0x0abc, - 0x6886, 0x03fb, - 0x6887, 0x3615, - 0x688f, 0x188a, - 0x6890, 0x361d, - 0x6893, 0x188d, - 0x6894, 0x3620, - 0x6897, 0x06fc, - 0x6898, 0x246a, - 0x6899, 0x3623, - 0x689d, 0x2175, - 0x689e, 0x3627, - 0x689f, 0x246d, - 0x68a0, 0x3628, - 0x68a2, 0x0d0b, - 0x68a3, 0x362a, - 0x68a6, 0x0ad3, - 0x68a7, 0x0eef, - 0x68a8, 0x09d1, - 0x68a9, 0x362d, - 0x68ad, 0x0de8, - 0x68ae, 0x3631, - 0x68af, 0x0e30, - 0x68b0, 0x0f80, - 0x68b1, 0x3632, - 0x68b3, 0x0d78, - 0x68b4, 0x3634, - 0x68b5, 0x1889, - 0x68b6, 0x3635, - 0x68c0, 0x085f, - 0x68c1, 0x363f, - 0x68c2, 0x188f, - 0x68c3, 0x3640, - 0x68c9, 0x0ae3, - 0x68ca, 0x3646, - 0x68cb, 0x0c04, - 0x68cc, 0x3647, - 0x68cd, 0x0750, - 0x68ce, 0x3648, - 0x68d2, 0x03ff, - 0x68d3, 0x364c, - 0x68d5, 0x1235, - 0x68d6, 0x246b, - 0x68d7, 0x225f, - 0x68d8, 0x081f, - 0x68d9, 0x364e, - 0x68da, 0x0bb0, - 0x68db, 0x364f, - 0x68df, 0x1ece, - 0x68e0, 0x0e17, - 0x68e1, 0x3653, - 0x68e3, 0x189a, - 0x68e4, 0x3655, - 0x68e7, 0x2272, - 0x68e8, 0x3658, - 0x68ee, 0x0ce6, - 0x68ef, 0x365e, - 0x68f0, 0x1896, - 0x68f1, 0x09cd, - 0x68f2, 0x365f, - 0x68f5, 0x0950, - 0x68f6, 0x3662, - 0x68f9, 0x1894, - 0x68fa, 0x0730, - 0x68fb, 0x3665, - 0x68fc, 0x1891, - 0x68fd, 0x3666, - 0x6900, 0x3669, - 0x6901, 0x1898, - 0x6902, 0x366a, - 0x6905, 0x1055, - 0x6906, 0x366d, - 0x690b, 0x1897, - 0x690c, 0x3672, - 0x690d, 0x11b1, - 0x690e, 0x1212, - 0x690f, 0x2473, - 0x6910, 0x189b, - 0x6911, 0x3673, - 0x6912, 0x0888, - 0x6913, 0x3674, - 0x691f, 0x1892, - 0x6921, 0x3680, - 0x6924, 0x1895, - 0x6925, 0x3683, - 0x692d, 0x0e87, - 0x692e, 0x368b, - 0x6930, 0x1033, - 0x6931, 0x368d, - 0x6934, 0x18a6, - 0x6935, 0x3690, - 0x6939, 0x189d, - 0x693a, 0x3694, - 0x693d, 0x052d, - 0x693e, 0x3697, - 0x693f, 0x053e, - 0x6940, 0x3698, - 0x6942, 0x189f, - 0x6943, 0x369a, - 0x694a, 0x21fe, - 0x694b, 0x36a1, - 0x6953, 0x1efe, - 0x6954, 0x0f73, - 0x6955, 0x36a9, - 0x6957, 0x1899, - 0x6958, 0x36ab, - 0x695a, 0x0523, - 0x695b, 0x36ad, - 0x695d, 0x18a0, - 0x695e, 0x09ce, - 0x695f, 0x36af, - 0x6960, 0x189e, - 0x6961, 0x36b0, - 0x6963, 0x18ad, - 0x6964, 0x36b2, - 0x6966, 0x18ac, - 0x6967, 0x36b4, - 0x6968, 0x2475, - 0x6969, 0x36b5, - 0x696b, 0x18a2, - 0x696c, 0x36b7, - 0x696d, 0x220a, - 0x696e, 0x1890, - 0x696f, 0x36b8, - 0x6971, 0x189c, - 0x6972, 0x36ba, - 0x6975, 0x1f6f, - 0x6976, 0x36bd, - 0x6977, 0x0939, - 0x6978, 0x18a5, - 0x6979, 0x18ae, - 0x697a, 0x36be, - 0x697c, 0x0a4c, - 0x697d, 0x36c0, - 0x6980, 0x18a3, - 0x6981, 0x36c3, - 0x6982, 0x06c0, - 0x6983, 0x36c4, - 0x6984, 0x18a1, - 0x6985, 0x36c5, - 0x6986, 0x10c1, - 0x6987, 0x18a8, - 0x6989, 0x18ab, - 0x698a, 0x36c6, - 0x698d, 0x18bb, - 0x698e, 0x36c9, - 0x6994, 0x09b1, - 0x6995, 0x18b9, - 0x6996, 0x36cf, - 0x6998, 0x18a4, - 0x6999, 0x36d1, - 0x699b, 0x18af, - 0x699c, 0x03fc, - 0x699d, 0x36d3, - 0x69a7, 0x18b0, - 0x69a8, 0x1146, - 0x69a9, 0x36dd, - 0x69aa, 0x2468, - 0x69ab, 0x18b2, - 0x69ac, 0x36de, - 0x69ad, 0x18b3, - 0x69ae, 0x2100, - 0x69af, 0x36df, - 0x69b1, 0x18b5, - 0x69b2, 0x36e1, - 0x69b4, 0x0a3a, - 0x69b5, 0x36e3, - 0x69b7, 0x0c91, - 0x69b8, 0x36e5, - 0x69bb, 0x18b1, - 0x69bc, 0x36e8, - 0x69bf, 0x2476, - 0x69c0, 0x36eb, - 0x69c1, 0x18b6, - 0x69c2, 0x36ec, - 0x69ca, 0x18b7, - 0x69cb, 0x1f27, - 0x69cc, 0x18a7, - 0x69cd, 0x20d7, - 0x69ce, 0x18aa, - 0x69cf, 0x36f4, - 0x69d0, 0x07c6, - 0x69d1, 0x36f5, - 0x69d4, 0x18b4, - 0x69d5, 0x36f8, - 0x69db, 0x086a, - 0x69dc, 0x36fe, - 0x69df, 0x18b8, - 0x69e0, 0x18ba, - 0x69e1, 0x3701, - 0x69e7, 0x247c, - 0x69e8, 0x3707, - 0x69ed, 0x18be, - 0x69ee, 0x370c, - 0x69f2, 0x18c2, - 0x69f3, 0x1fa1, - 0x69f4, 0x3710, - 0x69fd, 0x04a2, - 0x69fe, 0x3719, - 0x69ff, 0x18bc, - 0x6a00, 0x371a, - 0x6a01, 0x22aa, - 0x6a02, 0x2005, - 0x6a03, 0x371b, - 0x6a05, 0x246c, - 0x6a06, 0x371d, - 0x6a0a, 0x064b, - 0x6a0b, 0x3721, - 0x6a13, 0x203e, - 0x6a14, 0x3729, - 0x6a17, 0x18bf, - 0x6a19, 0x1e4c, - 0x6a1a, 0x372c, - 0x6a1e, 0x213a, - 0x6a1f, 0x1162, - 0x6a20, 0x3730, - 0x6a21, 0x0b06, - 0x6a22, 0x3731, - 0x6a23, 0x2204, - 0x6a24, 0x3732, - 0x6a28, 0x18cc, - 0x6a29, 0x3736, - 0x6a2a, 0x0798, - 0x6a2b, 0x3737, - 0x6a2f, 0x18bd, - 0x6a30, 0x373b, - 0x6a31, 0x1088, - 0x6a32, 0x373c, - 0x6a35, 0x18c8, - 0x6a36, 0x373f, - 0x6a38, 0x20c3, - 0x6a39, 0x2140, - 0x6a3a, 0x2477, - 0x6a3b, 0x3741, - 0x6a3d, 0x18cb, - 0x6a3e, 0x18c4, - 0x6a3f, 0x3743, - 0x6a44, 0x18c3, - 0x6a45, 0x3748, - 0x6a47, 0x0c3e, - 0x6a48, 0x2474, - 0x6a49, 0x374a, - 0x6a4b, 0x20dd, - 0x6a4c, 0x374c, - 0x6a50, 0x18c6, - 0x6a51, 0x3750, - 0x6a58, 0x18cd, - 0x6a59, 0x04ed, - 0x6a5a, 0x3757, - 0x6a5b, 0x18c7, - 0x6a5c, 0x3758, - 0x6a5f, 0x1f68, - 0x6a60, 0x375b, - 0x6a61, 0x0f5d, - 0x6a62, 0x2185, - 0x6a63, 0x375c, - 0x6a65, 0x18c1, - 0x6a66, 0x375e, - 0x6a71, 0x051c, - 0x6a72, 0x3769, - 0x6a79, 0x18ca, - 0x6a7a, 0x3770, - 0x6a7c, 0x18ce, - 0x6a7d, 0x3772, - 0x6a80, 0x0e07, - 0x6a81, 0x3775, - 0x6a84, 0x0f1a, - 0x6a85, 0x3778, - 0x6a89, 0x2472, - 0x6a8a, 0x377c, - 0x6a8e, 0x18c9, - 0x6a8f, 0x3780, - 0x6a90, 0x18d0, - 0x6a91, 0x18cf, - 0x6a92, 0x3781, - 0x6a94, 0x1eb5, - 0x6a95, 0x3783, - 0x6a97, 0x18d2, - 0x6a98, 0x3785, - 0x6a9c, 0x2478, - 0x6a9d, 0x3789, - 0x6aa0, 0x18c5, - 0x6aa1, 0x378c, - 0x6aa2, 0x1f8b, - 0x6aa3, 0x2484, - 0x6aa4, 0x378d, - 0x6aa9, 0x18d1, - 0x6aaa, 0x3792, - 0x6aab, 0x18d3, - 0x6aac, 0x0acf, - 0x6aad, 0x3793, - 0x6aaf, 0x2699, - 0x6ab0, 0x3795, - 0x6ab3, 0x2482, - 0x6ab4, 0x3798, - 0x6ab8, 0x20a1, - 0x6ab9, 0x379c, - 0x6abb, 0x1f92, - 0x6abc, 0x379e, - 0x6ac3, 0x1f38, - 0x6ac4, 0x37a5, - 0x6ad3, 0x2485, - 0x6ad4, 0x37b4, - 0x6ada, 0x2480, - 0x6adb, 0x246e, - 0x6adc, 0x37ba, - 0x6add, 0x247b, - 0x6ade, 0x2486, - 0x6adf, 0x2471, - 0x6ae0, 0x37bb, - 0x6ae7, 0x2483, - 0x6ae8, 0x2470, - 0x6ae9, 0x37c2, - 0x6aea, 0x2469, - 0x6aeb, 0x37c3, - 0x6aec, 0x247f, - 0x6aed, 0x37c4, - 0x6af3, 0x246f, - 0x6af4, 0x37ca, - 0x6af8, 0x2481, - 0x6af9, 0x37ce, - 0x6afb, 0x2220, - 0x6afc, 0x37d0, - 0x6b00, 0x37d4, - 0x6b04, 0x1ff5, - 0x6b05, 0x37d8, - 0x6b0a, 0x20f4, - 0x6b0b, 0x37dd, - 0x6b0f, 0x247d, - 0x6b10, 0x37e1, - 0x6b12, 0x2479, - 0x6b13, 0x37e3, - 0x6b16, 0x247e, - 0x6b17, 0x37e6, - 0x6b1e, 0x247a, - 0x6b1f, 0x37ed, - 0x6b20, 0x0c34, - 0x6b21, 0x0551, - 0x6b22, 0x07cb, - 0x6b23, 0x0f8b, - 0x6b24, 0x19b1, - 0x6b25, 0x37ee, - 0x6b27, 0x0b78, - 0x6b28, 0x37f0, - 0x6b32, 0x10e0, - 0x6b33, 0x37fa, - 0x6b37, 0x19b2, - 0x6b38, 0x37fe, - 0x6b39, 0x19b3, - 0x6b3a, 0x0bfa, - 0x6b3b, 0x37ff, - 0x6b3d, 0x20e3, - 0x6b3e, 0x097b, - 0x6b3f, 0x3801, - 0x6b43, 0x19b4, - 0x6b44, 0x3805, - 0x6b46, 0x19b5, - 0x6b47, 0x0f75, - 0x6b48, 0x3807, - 0x6b49, 0x0c35, - 0x6b4a, 0x3808, - 0x6b4c, 0x06e3, - 0x6b4d, 0x380a, - 0x6b50, 0x20ad, - 0x6b51, 0x380d, - 0x6b59, 0x19b6, - 0x6b5a, 0x3815, - 0x6b5f, 0x24cb, - 0x6b60, 0x381a, - 0x6b61, 0x1f53, - 0x6b62, 0x11b8, - 0x6b63, 0x119e, - 0x6b64, 0x054e, - 0x6b65, 0x0484, - 0x6b66, 0x0ef3, - 0x6b67, 0x0c06, - 0x6b68, 0x381b, - 0x6b6a, 0x0e92, - 0x6b6b, 0x381d, - 0x6b72, 0x2159, - 0x6b73, 0x3824, - 0x6b77, 0x2013, - 0x6b78, 0x1f33, - 0x6b79, 0x0578, - 0x6b7a, 0x3828, - 0x6b7b, 0x0db5, - 0x6b7c, 0x0852, - 0x6b7d, 0x3829, - 0x6b81, 0x18d6, - 0x6b83, 0x1013, - 0x6b84, 0x18d9, - 0x6b85, 0x382d, - 0x6b86, 0x057c, - 0x6b87, 0x18d8, - 0x6b88, 0x382e, - 0x6b89, 0x0fdc, - 0x6b8a, 0x0d79, - 0x6b8b, 0x0497, - 0x6b8c, 0x382f, - 0x6b8d, 0x18dc, - 0x6b8e, 0x3830, - 0x6b92, 0x18da, - 0x6b94, 0x3834, - 0x6b96, 0x11b2, - 0x6b97, 0x3836, - 0x6b98, 0x1e5c, - 0x6b99, 0x3837, - 0x6b9a, 0x18dd, - 0x6b9c, 0x3838, - 0x6b9e, 0x2488, - 0x6b9f, 0x383a, - 0x6ba1, 0x18df, - 0x6ba2, 0x383c, - 0x6ba4, 0x2487, - 0x6ba5, 0x383e, - 0x6baa, 0x18e0, - 0x6bab, 0x248a, - 0x6bac, 0x3843, - 0x6bae, 0x2489, - 0x6baf, 0x248b, - 0x6bb0, 0x3845, - 0x6bb2, 0x1f83, - 0x6bb3, 0x19bd, - 0x6bb4, 0x0b7a, - 0x6bb5, 0x060d, - 0x6bb6, 0x3847, - 0x6bb7, 0x107a, - 0x6bb8, 0x3848, - 0x6bba, 0x210f, - 0x6bbb, 0x1fdb, - 0x6bbc, 0x384a, - 0x6bbf, 0x05cf, - 0x6bc0, 0x384d, - 0x6bc1, 0x07ee, - 0x6bc2, 0x19bf, - 0x6bc3, 0x384e, - 0x6bc5, 0x106a, - 0x6bc6, 0x20af, - 0x6bc7, 0x3850, - 0x6bcb, 0x0ef2, - 0x6bcc, 0x3854, - 0x6bcd, 0x0b1b, - 0x6bce, 0x3855, - 0x6bcf, 0x0ac4, - 0x6bd0, 0x3856, - 0x6bd2, 0x05fd, - 0x6bd3, 0x126f, - 0x6bd4, 0x0431, - 0x6bd5, 0x0438, - 0x6bd6, 0x043a, - 0x6bd7, 0x0bbf, - 0x6bd8, 0x3858, - 0x6bd9, 0x0439, - 0x6bda, 0x3859, - 0x6bdb, 0x0ab0, - 0x6bdc, 0x385a, - 0x6be1, 0x1152, - 0x6be2, 0x385f, - 0x6bea, 0x1954, - 0x6beb, 0x0778, - 0x6bec, 0x3867, - 0x6bef, 0x0e0d, - 0x6bf0, 0x386a, - 0x6bf3, 0x1955, - 0x6bf4, 0x386d, - 0x6bf5, 0x1957, - 0x6bf6, 0x386e, - 0x6bf9, 0x1958, - 0x6bfa, 0x3871, - 0x6bfd, 0x1956, - 0x6bfe, 0x3874, - 0x6bff, 0x24c0, - 0x6c00, 0x3875, - 0x6c05, 0x1959, - 0x6c06, 0x195b, - 0x6c07, 0x195a, - 0x6c08, 0x226d, - 0x6c09, 0x387a, - 0x6c0c, 0x24c1, - 0x6c0d, 0x195c, - 0x6c0e, 0x387d, - 0x6c0f, 0x0d66, - 0x6c10, 0x126b, - 0x6c11, 0x0af6, - 0x6c12, 0x387e, - 0x6c13, 0x0aaa, - 0x6c14, 0x0c17, - 0x6c15, 0x195d, - 0x6c16, 0x0b2d, - 0x6c17, 0x387f, - 0x6c18, 0x195e, - 0x6c1b, 0x0672, - 0x6c1c, 0x3880, - 0x6c1f, 0x0697, - 0x6c20, 0x3883, - 0x6c21, 0x1961, - 0x6c22, 0x0c5f, - 0x6c23, 0x20ca, - 0x6c24, 0x1963, - 0x6c25, 0x3884, - 0x6c26, 0x075b, - 0x6c27, 0x101e, - 0x6c28, 0x03bc, - 0x6c29, 0x1962, - 0x6c2a, 0x1964, - 0x6c2b, 0x20e7, - 0x6c2c, 0x24c2, - 0x6c2d, 0x3885, - 0x6c2e, 0x058b, - 0x6c2f, 0x0a6f, - 0x6c30, 0x0c65, - 0x6c31, 0x3886, - 0x6c32, 0x1965, - 0x6c33, 0x3887, - 0x6c34, 0x0da3, - 0x6c35, 0x169f, - 0x6c36, 0x3888, - 0x6c38, 0x10a5, - 0x6c39, 0x388a, - 0x6c3d, 0x12ef, - 0x6c3e, 0x388e, - 0x6c40, 0x0e52, - 0x6c41, 0x11ac, - 0x6c42, 0x0c70, - 0x6c43, 0x3890, - 0x6c46, 0x12f4, - 0x6c47, 0x07f8, - 0x6c48, 0x3893, - 0x6c49, 0x0771, - 0x6c4a, 0x16a2, - 0x6c4b, 0x3894, - 0x6c50, 0x0f18, - 0x6c51, 0x3899, - 0x6c54, 0x16a0, - 0x6c55, 0x0d00, - 0x6c56, 0x389c, - 0x6c57, 0x0770, - 0x6c58, 0x389d, - 0x6c5b, 0x0fdd, - 0x6c5c, 0x16a1, - 0x6c5d, 0x0cc5, - 0x6c5e, 0x0708, - 0x6c5f, 0x087e, - 0x6c60, 0x04fd, - 0x6c61, 0x0eea, - 0x6c62, 0x38a0, - 0x6c64, 0x0e13, - 0x6c65, 0x38a2, - 0x6c68, 0x16a8, - 0x6c6a, 0x0ea5, - 0x6c6b, 0x38a5, - 0x6c70, 0x0e00, - 0x6c71, 0x38aa, - 0x6c72, 0x0826, - 0x6c73, 0x38ab, - 0x6c74, 0x16aa, - 0x6c75, 0x38ac, - 0x6c76, 0x16ab, - 0x6c77, 0x38ad, - 0x6c79, 0x0fa5, - 0x6c7a, 0x38af, - 0x6c7d, 0x0c1a, - 0x6c7e, 0x0677, - 0x6c7f, 0x38b2, - 0x6c81, 0x0c5c, - 0x6c82, 0x1051, - 0x6c83, 0x0ee5, - 0x6c84, 0x38b4, - 0x6c85, 0x16a4, - 0x6c86, 0x16ac, - 0x6c87, 0x38b5, - 0x6c88, 0x0d2b, - 0x6c89, 0x04e6, - 0x6c8a, 0x38b6, - 0x6c8c, 0x16a7, - 0x6c8d, 0x38b8, - 0x6c8f, 0x0c02, - 0x6c90, 0x16a5, - 0x6c91, 0x38ba, - 0x6c93, 0x1a1f, - 0x6c94, 0x16a6, - 0x6c95, 0x38bc, - 0x6c99, 0x0cec, - 0x6c9a, 0x38c0, - 0x6c9b, 0x0ba7, - 0x6c9c, 0x38c1, - 0x6c9f, 0x070e, - 0x6ca0, 0x38c4, - 0x6ca1, 0x0ac0, - 0x6ca2, 0x38c5, - 0x6ca3, 0x16a3, - 0x6ca4, 0x0b7e, - 0x6ca5, 0x09ed, - 0x6ca6, 0x0a80, - 0x6ca7, 0x049e, - 0x6ca8, 0x38c6, - 0x6ca9, 0x16ad, - 0x6caa, 0x07bb, - 0x6cab, 0x0b10, - 0x6cac, 0x38c7, - 0x6cad, 0x16b0, - 0x6cae, 0x0909, - 0x6caf, 0x38c8, - 0x6cb1, 0x16bb, - 0x6cb2, 0x16b5, - 0x6cb3, 0x078a, - 0x6cb4, 0x38ca, - 0x6cb8, 0x066d, - 0x6cb9, 0x10b2, - 0x6cba, 0x38ce, - 0x6cbb, 0x11cd, - 0x6cbc, 0x1174, - 0x6cbd, 0x071a, - 0x6cbe, 0x1155, - 0x6cbf, 0x1001, - 0x6cc0, 0x38cf, - 0x6cc4, 0x0f84, - 0x6cc5, 0x0c73, - 0x6cc6, 0x38d3, - 0x6cc9, 0x0c85, - 0x6cca, 0x047b, - 0x6ccb, 0x38d6, - 0x6ccc, 0x0adf, - 0x6ccd, 0x38d7, - 0x6cd0, 0x16ae, - 0x6cd1, 0x38da, - 0x6cd3, 0x16bc, - 0x6cd4, 0x16af, - 0x6cd5, 0x0645, - 0x6cd6, 0x16b7, - 0x6cd7, 0x16b4, - 0x6cd8, 0x38dc, - 0x6cdb, 0x0657, - 0x6cdc, 0x38df, - 0x6cde, 0x0b63, - 0x6cdf, 0x38e1, - 0x6ce0, 0x16b6, - 0x6ce1, 0x0b9e, - 0x6ce2, 0x046f, - 0x6ce3, 0x0c1b, - 0x6ce4, 0x38e2, - 0x6ce5, 0x0b43, - 0x6ce6, 0x38e3, - 0x6ce8, 0x11ff, - 0x6ce9, 0x38e5, - 0x6cea, 0x09cc, - 0x6ceb, 0x16b9, - 0x6cec, 0x38e6, - 0x6cee, 0x16ba, - 0x6cef, 0x16bd, - 0x6cf0, 0x0dfc, - 0x6cf1, 0x16b3, - 0x6cf2, 0x38e8, - 0x6cf3, 0x10a3, - 0x6cf4, 0x38e9, - 0x6cf5, 0x042c, - 0x6cf6, 0x1a20, - 0x6cf7, 0x16b1, - 0x6cf9, 0x38ea, - 0x6cfa, 0x16b8, - 0x6cfb, 0x0f85, - 0x6cfc, 0x0be2, - 0x6cfd, 0x1136, - 0x6cfe, 0x16be, - 0x6cff, 0x38eb, - 0x6d00, 0x38ec, - 0x6d01, 0x08b1, - 0x6d02, 0x38ed, - 0x6d04, 0x16c5, - 0x6d05, 0x38ef, - 0x6d07, 0x16c4, - 0x6d08, 0x38f1, - 0x6d0b, 0x101c, - 0x6d0c, 0x16c1, - 0x6d0d, 0x38f4, - 0x6d0e, 0x16c7, - 0x6d0f, 0x38f5, - 0x6d12, 0x0cd2, - 0x6d13, 0x38f8, - 0x6d17, 0x0f21, - 0x6d18, 0x38fc, - 0x6d19, 0x16c6, - 0x6d1a, 0x16cc, - 0x6d1b, 0x0a8c, - 0x6d1c, 0x38fd, - 0x6d1e, 0x05f3, - 0x6d1f, 0x38ff, - 0x6d25, 0x08c3, - 0x6d26, 0x3905, - 0x6d27, 0x16c0, - 0x6d28, 0x3906, - 0x6d2a, 0x07a0, - 0x6d2b, 0x16c8, - 0x6d2c, 0x3908, - 0x6d2e, 0x16ca, - 0x6d2f, 0x390a, - 0x6d31, 0x063c, - 0x6d32, 0x11dd, - 0x6d33, 0x16d0, - 0x6d34, 0x390c, - 0x6d35, 0x16cb, - 0x6d36, 0x390d, - 0x6d39, 0x16bf, - 0x6d3a, 0x3910, - 0x6d3b, 0x0803, - 0x6d3c, 0x0e8e, - 0x6d3d, 0x0c1f, - 0x6d3e, 0x0b8a, - 0x6d3f, 0x3911, - 0x6d41, 0x0a40, - 0x6d42, 0x3913, - 0x6d43, 0x16c2, - 0x6d44, 0x3914, - 0x6d45, 0x0c30, - 0x6d46, 0x087d, - 0x6d47, 0x088e, - 0x6d48, 0x16c3, - 0x6d49, 0x3915, - 0x6d4a, 0x1224, - 0x6d4b, 0x04a9, - 0x6d4c, 0x3916, - 0x6d4d, 0x16c9, - 0x6d4e, 0x0836, - 0x6d4f, 0x16cd, - 0x6d50, 0x3917, - 0x6d51, 0x0800, - 0x6d52, 0x16ce, - 0x6d53, 0x0b69, - 0x6d54, 0x16cf, - 0x6d55, 0x3918, - 0x6d59, 0x1184, - 0x6d5a, 0x0930, - 0x6d5b, 0x391c, - 0x6d5c, 0x16d8, - 0x6d5d, 0x391d, - 0x6d5e, 0x16d5, - 0x6d5f, 0x391e, - 0x6d60, 0x16d9, - 0x6d61, 0x391f, - 0x6d63, 0x16db, - 0x6d64, 0x3921, - 0x6d66, 0x0bf5, - 0x6d67, 0x3923, - 0x6d69, 0x077d, - 0x6d6a, 0x09b6, - 0x6d6b, 0x3925, - 0x6d6e, 0x069c, - 0x6d6f, 0x16d2, - 0x6d70, 0x3928, - 0x6d74, 0x10e4, - 0x6d75, 0x392c, - 0x6d77, 0x075a, - 0x6d78, 0x08cf, - 0x6d79, 0x23dc, - 0x6d7a, 0x392e, - 0x6d7c, 0x16da, - 0x6d7d, 0x3930, - 0x6d82, 0x0e70, - 0x6d83, 0x3935, - 0x6d85, 0x0b5c, - 0x6d86, 0x3937, - 0x6d87, 0x23db, - 0x6d88, 0x0f68, - 0x6d89, 0x0d1f, - 0x6d8a, 0x3938, - 0x6d8c, 0x10a4, - 0x6d8d, 0x393a, - 0x6d8e, 0x0f3e, - 0x6d8f, 0x393b, - 0x6d91, 0x16d1, - 0x6d92, 0x393d, - 0x6d93, 0x16d6, - 0x6d95, 0x0e3c, - 0x6d96, 0x393e, - 0x6d9b, 0x0e21, - 0x6d9c, 0x3943, - 0x6d9d, 0x09bf, - 0x6d9e, 0x16d3, - 0x6d9f, 0x09f9, - 0x6da0, 0x16d4, - 0x6da1, 0x0edf, - 0x6da2, 0x3944, - 0x6da3, 0x07d6, - 0x6da4, 0x05b4, - 0x6da5, 0x3945, - 0x6da6, 0x0cce, - 0x6da7, 0x0878, - 0x6da8, 0x1168, - 0x6da9, 0x0ce5, - 0x6daa, 0x069d, - 0x6dab, 0x16e8, - 0x6dac, 0x3946, - 0x6dae, 0x16ea, - 0x6daf, 0x0fed, - 0x6db0, 0x3948, - 0x6db2, 0x1041, - 0x6db3, 0x394a, - 0x6db5, 0x0764, - 0x6db6, 0x394c, - 0x6db8, 0x078b, - 0x6db9, 0x394e, - 0x6dbf, 0x16e1, - 0x6dc0, 0x05ce, - 0x6dc1, 0x3954, - 0x6dc4, 0x122a, - 0x6dc5, 0x16de, - 0x6dc6, 0x0f6a, - 0x6dc7, 0x16dd, - 0x6dc8, 0x3957, - 0x6dcb, 0x0a25, - 0x6dcc, 0x0e1d, - 0x6dcd, 0x395a, - 0x6dd1, 0x0d7e, - 0x6dd2, 0x395e, - 0x6dd6, 0x0b3a, - 0x6dd7, 0x3962, - 0x6dd8, 0x0e27, - 0x6dd9, 0x16e6, - 0x6dda, 0x3963, - 0x6ddd, 0x16e5, - 0x6dde, 0x16df, - 0x6ddf, 0x3966, - 0x6de0, 0x16e2, - 0x6de1, 0x058e, - 0x6de2, 0x3967, - 0x6de4, 0x10be, - 0x6de5, 0x3969, - 0x6de6, 0x16e4, - 0x6de7, 0x396a, - 0x6dea, 0x205e, - 0x6deb, 0x1080, - 0x6dec, 0x0566, - 0x6ded, 0x396d, - 0x6dee, 0x07c9, - 0x6def, 0x396e, - 0x6df1, 0x0d27, - 0x6df2, 0x3970, - 0x6df3, 0x0541, - 0x6df4, 0x3971, - 0x6df5, 0x2244, - 0x6df6, 0x23e2, - 0x6df7, 0x0801, - 0x6df8, 0x3972, - 0x6df9, 0x0ff6, - 0x6dfa, 0x20d4, - 0x6dfb, 0x0e40, - 0x6dfc, 0x1a21, - 0x6dfd, 0x3973, - 0x6e00, 0x3976, - 0x6e05, 0x0c62, - 0x6e06, 0x397b, - 0x6e0a, 0x10eb, - 0x6e0b, 0x397f, - 0x6e0c, 0x16e9, - 0x6e0d, 0x1232, - 0x6e0e, 0x16e0, - 0x6e0f, 0x3980, - 0x6e10, 0x0876, - 0x6e11, 0x16e3, - 0x6e12, 0x3981, - 0x6e14, 0x10cb, - 0x6e15, 0x3983, - 0x6e16, 0x16e7, - 0x6e17, 0x0d31, - 0x6e18, 0x3984, - 0x6e1a, 0x16dc, - 0x6e1b, 0x3986, - 0x6e1d, 0x10ca, - 0x6e1e, 0x3988, - 0x6e20, 0x0c7b, - 0x6e21, 0x0608, - 0x6e22, 0x398a, - 0x6e23, 0x113f, - 0x6e24, 0x047a, - 0x6e25, 0x16f5, - 0x6e26, 0x219f, - 0x6e27, 0x398b, - 0x6e29, 0x0ed1, - 0x6e2a, 0x398d, - 0x6e2b, 0x16eb, - 0x6e2c, 0x1e66, - 0x6e2d, 0x0ecb, - 0x6e2e, 0x398e, - 0x6e2f, 0x06d6, - 0x6e30, 0x398f, - 0x6e32, 0x16f4, - 0x6e33, 0x3991, - 0x6e34, 0x0957, - 0x6e35, 0x3992, - 0x6e38, 0x10b3, - 0x6e39, 0x3995, - 0x6e3a, 0x0af1, - 0x6e3b, 0x3996, - 0x6e3e, 0x1f63, - 0x6e3f, 0x3999, - 0x6e43, 0x0b89, - 0x6e44, 0x16f6, - 0x6e45, 0x399d, - 0x6e4d, 0x0e75, - 0x6e4e, 0x16ed, - 0x6e4f, 0x39a5, - 0x6e53, 0x16f2, - 0x6e55, 0x39a9, - 0x6e56, 0x07b5, - 0x6e57, 0x39aa, - 0x6e58, 0x0f53, - 0x6e59, 0x39ab, - 0x6e5b, 0x1160, - 0x6e5c, 0x39ad, - 0x6e5e, 0x23dd, - 0x6e5f, 0x16f0, - 0x6e60, 0x39af, - 0x6e6b, 0x16ee, - 0x6e6c, 0x39ba, - 0x6e6e, 0x16ec, - 0x6e6f, 0x216b, - 0x6e70, 0x39bc, - 0x6e7e, 0x0e96, - 0x6e7f, 0x0d41, - 0x6e80, 0x39ca, - 0x6e83, 0x098e, - 0x6e84, 0x39cd, - 0x6e85, 0x0877, - 0x6e86, 0x16f1, - 0x6e87, 0x39ce, - 0x6e89, 0x06c3, - 0x6e8a, 0x39d0, - 0x6e8f, 0x1705, - 0x6e90, 0x10f7, - 0x6e91, 0x39d5, - 0x6e96, 0x22b5, - 0x6e97, 0x39da, - 0x6e98, 0x16f9, - 0x6e99, 0x39db, - 0x6e9c, 0x0a38, - 0x6e9d, 0x1f26, - 0x6e9e, 0x39de, - 0x6e9f, 0x1707, - 0x6ea0, 0x39df, - 0x6ea2, 0x106e, - 0x6ea3, 0x39e1, - 0x6ea5, 0x16fd, - 0x6ea6, 0x39e3, - 0x6ea7, 0x16fe, - 0x6ea8, 0x39e4, - 0x6eaa, 0x0f17, - 0x6eab, 0x39e6, - 0x6eaf, 0x0dd2, - 0x6eb0, 0x39ea, - 0x6eb1, 0x16f8, - 0x6eb2, 0x16ef, - 0x6eb3, 0x39eb, - 0x6eb4, 0x1703, - 0x6eb5, 0x39ec, - 0x6eb6, 0x0cb7, - 0x6eb7, 0x1701, - 0x6eb8, 0x39ed, - 0x6eba, 0x0b4a, - 0x6ebb, 0x1700, - 0x6ebc, 0x39ef, - 0x6ebd, 0x16ff, - 0x6ebe, 0x39f0, - 0x6ec1, 0x0521, - 0x6ec2, 0x1706, - 0x6ec3, 0x39f3, - 0x6ec4, 0x1e63, - 0x6ec5, 0x2088, - 0x6ec6, 0x39f4, - 0x6ec7, 0x05c2, - 0x6ec8, 0x39f5, - 0x6ecb, 0x1229, - 0x6ecc, 0x1ebd, - 0x6ecd, 0x39f8, - 0x6ece, 0x2341, - 0x6ecf, 0x1704, - 0x6ed0, 0x39f9, - 0x6ed1, 0x07c1, - 0x6ed2, 0x39fa, - 0x6ed3, 0x122f, - 0x6ed4, 0x0e22, - 0x6ed5, 0x19a8, - 0x6ed6, 0x39fb, - 0x6ed7, 0x1702, - 0x6ed8, 0x39fc, - 0x6eda, 0x074f, - 0x6edb, 0x39fe, - 0x6ede, 0x11cc, - 0x6edf, 0x16f7, - 0x6ee0, 0x16fa, - 0x6ee1, 0x0aa1, - 0x6ee2, 0x16fc, - 0x6ee3, 0x3a01, - 0x6ee4, 0x0a72, - 0x6ee5, 0x09af, - 0x6ee6, 0x0a77, - 0x6ee7, 0x3a02, - 0x6ee8, 0x045e, - 0x6ee9, 0x0e05, - 0x6eea, 0x3a03, - 0x6eec, 0x1f4b, - 0x6eed, 0x3a05, - 0x6eef, 0x2292, - 0x6ef0, 0x3a07, - 0x6ef2, 0x2124, - 0x6ef3, 0x3a09, - 0x6ef4, 0x05af, - 0x6ef5, 0x3a0a, - 0x6ef7, 0x2048, - 0x6ef8, 0x23e0, - 0x6ef9, 0x170d, - 0x6efa, 0x3a0c, - 0x6eff, 0x2077, - 0x6f00, 0x3a11, - 0x6f01, 0x223a, - 0x6f02, 0x0bce, - 0x6f03, 0x3a12, - 0x6f06, 0x0c00, - 0x6f07, 0x3a15, - 0x6f09, 0x1713, - 0x6f0a, 0x3a17, - 0x6f0f, 0x0a50, - 0x6f10, 0x3a1c, - 0x6f13, 0x09d7, - 0x6f14, 0x1006, - 0x6f15, 0x170c, - 0x6f16, 0x3a1f, - 0x6f1a, 0x20b1, - 0x6f1b, 0x3a23, - 0x6f20, 0x0b11, - 0x6f21, 0x3a28, - 0x6f22, 0x1f41, - 0x6f23, 0x201c, - 0x6f24, 0x170b, - 0x6f25, 0x3a29, - 0x6f29, 0x1714, - 0x6f2a, 0x1712, - 0x6f2b, 0x0aa5, - 0x6f2c, 0x22b8, - 0x6f2d, 0x16fb, - 0x6f2e, 0x3a2d, - 0x6f2f, 0x170e, - 0x6f30, 0x3a2e, - 0x6f31, 0x0d95, - 0x6f32, 0x2276, - 0x6f33, 0x1165, - 0x6f34, 0x3a2f, - 0x6f36, 0x170f, - 0x6f37, 0x3a31, - 0x6f38, 0x1f9b, - 0x6f39, 0x3a32, - 0x6f3e, 0x1023, - 0x6f3f, 0x1f9f, - 0x6f40, 0x3a37, - 0x6f41, 0x25ca, - 0x6f42, 0x3a38, - 0x6f46, 0x1709, - 0x6f48, 0x3a3c, - 0x6f4b, 0x1710, - 0x6f4c, 0x3a3f, - 0x6f4d, 0x0eba, - 0x6f4e, 0x3a40, - 0x6f51, 0x20be, - 0x6f52, 0x3a43, - 0x6f54, 0x1fb4, - 0x6f55, 0x3a45, - 0x6f58, 0x0b8c, - 0x6f59, 0x23d7, - 0x6f5a, 0x3a48, - 0x6f5c, 0x0c2e, - 0x6f5d, 0x3a4a, - 0x6f5e, 0x0a61, - 0x6f5f, 0x3a4b, - 0x6f62, 0x1708, - 0x6f63, 0x3a4e, - 0x6f64, 0x2105, - 0x6f65, 0x3a4f, - 0x6f66, 0x0a13, - 0x6f67, 0x3a50, - 0x6f6d, 0x0e09, - 0x6f6e, 0x04d6, - 0x6f6f, 0x23e1, - 0x6f70, 0x1fec, - 0x6f71, 0x3a56, - 0x6f72, 0x1719, - 0x6f73, 0x3a57, - 0x6f74, 0x1711, - 0x6f75, 0x3a58, - 0x6f77, 0x23ea, - 0x6f78, 0x1718, - 0x6f79, 0x3a5a, - 0x6f7a, 0x171b, - 0x6f7b, 0x3a5b, - 0x6f7c, 0x171a, - 0x6f7d, 0x3a5c, - 0x6f7f, 0x23e3, - 0x6f80, 0x210e, - 0x6f81, 0x3a5e, - 0x6f84, 0x04f3, - 0x6f85, 0x3a61, - 0x6f86, 0x1fa6, - 0x6f87, 0x2004, - 0x6f88, 0x04df, - 0x6f89, 0x1715, - 0x6f8a, 0x3a62, - 0x6f8c, 0x1717, - 0x6f8d, 0x1716, - 0x6f8e, 0x0bad, - 0x6f8f, 0x3a64, - 0x6f97, 0x1f9d, - 0x6f98, 0x3a6c, - 0x6f9c, 0x09a8, - 0x6f9d, 0x3a70, - 0x6fa0, 0x23e5, - 0x6fa1, 0x112b, - 0x6fa2, 0x3a73, - 0x6fa4, 0x2264, - 0x6fa5, 0x3a75, - 0x6fa7, 0x171e, - 0x6fa8, 0x3a77, - 0x6fa9, 0x24e2, - 0x6faa, 0x3a78, - 0x6fae, 0x23de, - 0x6faf, 0x3a7c, - 0x6fb1, 0x1ec4, - 0x6fb2, 0x3a7e, - 0x6fb3, 0x03cf, - 0x6fb4, 0x3a7f, - 0x6fb6, 0x1720, - 0x6fb7, 0x3a81, - 0x6fb9, 0x171f, - 0x6fba, 0x3a83, - 0x6fc0, 0x0817, - 0x6fc1, 0x22b6, - 0x6fc2, 0x1721, - 0x6fc3, 0x20a9, - 0x6fc4, 0x3a89, - 0x6fc9, 0x171d, - 0x6fca, 0x3a8e, - 0x6fd1, 0x171c, - 0x6fd2, 0x045d, - 0x6fd3, 0x3a95, - 0x6fd5, 0x212b, - 0x6fd6, 0x3a97, - 0x6fd8, 0x20a5, - 0x6fd9, 0x3a99, - 0x6fdb, 0x268b, - 0x6fdc, 0x3a9b, - 0x6fde, 0x1724, - 0x6fdf, 0x1f76, - 0x6fe0, 0x1725, - 0x6fe1, 0x1722, - 0x6fe2, 0x3a9d, - 0x6fe4, 0x216d, - 0x6fe5, 0x3a9f, - 0x6feb, 0x2001, - 0x6fec, 0x3aa5, - 0x6fee, 0x1723, - 0x6fef, 0x1726, - 0x6ff0, 0x2191, - 0x6ff1, 0x1e50, - 0x6ff2, 0x3aa7, - 0x6ffa, 0x1f9c, - 0x6ffb, 0x3aaf, - 0x6ffc, 0x23da, - 0x6ffd, 0x3ab0, - 0x6ffe, 0x2053, - 0x6fff, 0x3ab1, - 0x7000, 0x3ab2, - 0x7005, 0x23e9, - 0x7006, 0x23e4, - 0x7007, 0x3ab7, - 0x7009, 0x21d5, - 0x700a, 0x3ab9, - 0x700b, 0x23e6, - 0x700c, 0x3aba, - 0x700f, 0x23df, - 0x7010, 0x3abd, - 0x7011, 0x0bf8, - 0x7012, 0x3abe, - 0x7015, 0x1e4f, - 0x7016, 0x3ac1, - 0x7018, 0x23d9, - 0x7019, 0x3ac3, - 0x701a, 0x1727, - 0x701b, 0x1729, - 0x701c, 0x3ac4, - 0x701d, 0x2014, - 0x701e, 0x3ac5, - 0x701f, 0x23ec, - 0x7020, 0x23eb, - 0x7021, 0x3ac6, - 0x7023, 0x1728, - 0x7024, 0x3ac8, - 0x7027, 0x23d8, - 0x7028, 0x23ee, - 0x7029, 0x3acb, - 0x7030, 0x268e, - 0x7031, 0x3ad2, - 0x7032, 0x23ed, - 0x7033, 0x3ad3, - 0x7035, 0x172b, - 0x7036, 0x3ad5, - 0x7039, 0x172a, - 0x703a, 0x3ad8, - 0x703e, 0x1ffa, - 0x703f, 0x3adc, - 0x7043, 0x23d6, - 0x7044, 0x23e8, - 0x7045, 0x3ae0, - 0x704c, 0x0739, - 0x704d, 0x3ae7, - 0x704f, 0x172c, - 0x7050, 0x3ae9, - 0x7051, 0x2106, - 0x7052, 0x3aea, - 0x7055, 0x200b, - 0x7056, 0x3aed, - 0x7058, 0x2166, - 0x7059, 0x3aef, - 0x705d, 0x23ef, - 0x705e, 0x172d, - 0x705f, 0x3af3, - 0x7063, 0x2189, - 0x7064, 0x2058, - 0x7065, 0x3af7, - 0x7067, 0x23e7, - 0x7068, 0x3af9, - 0x706b, 0x0805, - 0x706c, 0x19ef, - 0x706d, 0x0af5, - 0x706e, 0x3afc, - 0x706f, 0x05a7, - 0x7070, 0x07e7, - 0x7071, 0x3afd, - 0x7075, 0x0a32, - 0x7076, 0x1131, - 0x7077, 0x3b01, - 0x7078, 0x08f3, - 0x7079, 0x3b02, - 0x707c, 0x1223, - 0x707d, 0x3b05, - 0x707e, 0x1119, - 0x707f, 0x049a, - 0x7080, 0x19cc, - 0x7081, 0x3b06, - 0x7085, 0x1913, - 0x7086, 0x3b0a, - 0x7089, 0x0a56, - 0x708a, 0x0539, - 0x708b, 0x3b0d, - 0x708e, 0x1000, - 0x708f, 0x3b10, - 0x7092, 0x04d9, - 0x7093, 0x3b13, - 0x7094, 0x0c8d, - 0x7095, 0x0948, - 0x7096, 0x19ce, - 0x7097, 0x3b14, - 0x7099, 0x11ca, - 0x709a, 0x3b16, - 0x709c, 0x19cd, - 0x709d, 0x19cf, - 0x709e, 0x3b18, - 0x70ab, 0x19d3, - 0x70ac, 0x0915, - 0x70ad, 0x0e12, - 0x70ae, 0x0b9b, - 0x70af, 0x08eb, - 0x70b0, 0x3b25, - 0x70b1, 0x19d4, - 0x70b2, 0x3b26, - 0x70b3, 0x0467, - 0x70b4, 0x3b27, - 0x70b7, 0x19d2, - 0x70b8, 0x1149, - 0x70b9, 0x05c4, - 0x70ba, 0x3b2a, - 0x70bb, 0x19d0, - 0x70bc, 0x09ff, - 0x70bd, 0x0508, - 0x70be, 0x3b2b, - 0x70c0, 0x19d1, - 0x70c1, 0x0dad, - 0x70c2, 0x09ae, - 0x70c3, 0x0e51, - 0x70c4, 0x3b2d, - 0x70c8, 0x0a1b, - 0x70c9, 0x3b31, - 0x70ca, 0x19d6, - 0x70cb, 0x3b32, - 0x70cf, 0x21a3, - 0x70d0, 0x3b36, - 0x70d8, 0x079d, - 0x70d9, 0x09be, - 0x70da, 0x3b3e, - 0x70db, 0x11f1, - 0x70dc, 0x3b3f, - 0x70df, 0x0ff5, - 0x70e0, 0x3b42, - 0x70e4, 0x094b, - 0x70e5, 0x3b46, - 0x70e6, 0x0650, - 0x70e7, 0x0d0e, - 0x70e8, 0x19d5, - 0x70e9, 0x07f7, - 0x70ea, 0x3b47, - 0x70eb, 0x0e1f, - 0x70ec, 0x08ce, - 0x70ed, 0x0ca3, - 0x70ee, 0x3b48, - 0x70ef, 0x0f16, - 0x70f0, 0x3b49, - 0x70f4, 0x217a, - 0x70f5, 0x3b4d, - 0x70f7, 0x0e9a, - 0x70f8, 0x3b4f, - 0x70f9, 0x0bac, - 0x70fa, 0x3b50, - 0x70fd, 0x0686, - 0x70fe, 0x3b53, - 0x7100, 0x3b55, - 0x7109, 0x0ff2, - 0x710a, 0x076f, - 0x710b, 0x3b5e, - 0x7110, 0x19d7, - 0x7111, 0x3b63, - 0x7113, 0x19d8, - 0x7114, 0x3b65, - 0x7115, 0x07d5, - 0x7116, 0x19d9, - 0x7117, 0x3b66, - 0x7118, 0x19f0, - 0x7119, 0x0423, - 0x711a, 0x0676, - 0x711b, 0x3b67, - 0x7121, 0x21a5, - 0x7122, 0x3b6d, - 0x7126, 0x088a, - 0x7127, 0x3b71, - 0x712f, 0x19da, - 0x7130, 0x100f, - 0x7131, 0x19db, - 0x7132, 0x3b79, - 0x7136, 0x0c96, - 0x7137, 0x3b7d, - 0x7145, 0x19df, - 0x7146, 0x3b8b, - 0x7149, 0x2022, - 0x714a, 0x19e1, - 0x714b, 0x3b8e, - 0x714c, 0x07e2, - 0x714d, 0x3b8f, - 0x714e, 0x0858, - 0x714f, 0x3b90, - 0x7152, 0x24d6, - 0x7153, 0x3b93, - 0x715c, 0x19dd, - 0x715d, 0x3b9c, - 0x715e, 0x0cf0, - 0x715f, 0x3b9d, - 0x7162, 0x233a, - 0x7163, 0x3ba0, - 0x7164, 0x0abf, - 0x7165, 0x3ba1, - 0x7166, 0x19f1, - 0x7167, 0x1176, - 0x7168, 0x19de, - 0x7169, 0x1eee, - 0x716a, 0x3ba2, - 0x716c, 0x24d5, - 0x716d, 0x3ba4, - 0x716e, 0x11f2, - 0x716f, 0x3ba5, - 0x7172, 0x19e0, - 0x7173, 0x19dc, - 0x7174, 0x3ba8, - 0x7178, 0x19e2, - 0x7179, 0x3bac, - 0x717a, 0x19e3, - 0x717b, 0x3bad, - 0x717d, 0x0cf8, - 0x717e, 0x3baf, - 0x7184, 0x0f15, - 0x7185, 0x3bb5, - 0x718a, 0x0fa7, - 0x718b, 0x3bba, - 0x718f, 0x0fd5, - 0x7190, 0x3bbe, - 0x7192, 0x2228, - 0x7193, 0x3bc0, - 0x7194, 0x0cb6, - 0x7195, 0x3bc1, - 0x7197, 0x24d7, - 0x7198, 0x19e4, - 0x7199, 0x0f04, - 0x719a, 0x3bc3, - 0x719f, 0x0d83, - 0x71a0, 0x19e8, - 0x71a1, 0x3bc8, - 0x71a8, 0x19e7, - 0x71a9, 0x3bcf, - 0x71ac, 0x03c9, - 0x71ad, 0x3bd2, - 0x71b1, 0x20fc, - 0x71b2, 0x3bd6, - 0x71b3, 0x19e5, - 0x71b4, 0x3bd7, - 0x71b5, 0x19e6, - 0x71b6, 0x3bd8, - 0x71b9, 0x19f2, - 0x71ba, 0x3bdb, - 0x71be, 0x1e87, - 0x71bf, 0x3bdf, - 0x71c1, 0x24d8, - 0x71c2, 0x3be1, - 0x71c3, 0x0c97, - 0x71c4, 0x3be2, - 0x71c8, 0x1eba, - 0x71c9, 0x3be6, - 0x71ce, 0x0a10, - 0x71cf, 0x3beb, - 0x71d2, 0x2119, - 0x71d3, 0x3bee, - 0x71d4, 0x19ea, - 0x71d5, 0x1009, - 0x71d6, 0x3bef, - 0x71d9, 0x216c, - 0x71da, 0x3bf2, - 0x71dc, 0x24d9, - 0x71dd, 0x3bf4, - 0x71df, 0x2227, - 0x71e0, 0x19e9, - 0x71e1, 0x3bf6, - 0x71e5, 0x1132, - 0x71e6, 0x1e5f, - 0x71e7, 0x19eb, - 0x71e8, 0x3bfa, - 0x71ed, 0x229f, - 0x71ee, 0x1396, - 0x71ef, 0x3bff, - 0x71f4, 0x1f5d, - 0x71f5, 0x3c04, - 0x71f9, 0x19ec, - 0x71fa, 0x3c08, - 0x71fc, 0x1fbc, - 0x71fd, 0x3c0a, - 0x71fe, 0x24da, - 0x71ff, 0x3c0b, - 0x7200, 0x3c0c, - 0x7206, 0x0415, - 0x7207, 0x3c12, - 0x720d, 0x2149, - 0x720e, 0x3c18, - 0x7210, 0x2046, - 0x7211, 0x3c1a, - 0x721b, 0x2000, - 0x721c, 0x3c24, - 0x721d, 0x19ed, - 0x721e, 0x3c25, - 0x7228, 0x19ee, - 0x7229, 0x3c2f, - 0x722a, 0x1203, - 0x722b, 0x3c30, - 0x722c, 0x0b81, - 0x722d, 0x3c31, - 0x7230, 0x196c, - 0x7231, 0x03b9, - 0x7232, 0x2190, - 0x7233, 0x3c34, - 0x7235, 0x0923, - 0x7236, 0x06b3, - 0x7237, 0x1036, - 0x7238, 0x03e1, - 0x7239, 0x05da, - 0x723a, 0x2208, - 0x723b, 0x1269, - 0x723c, 0x3c36, - 0x723d, 0x0da1, - 0x723e, 0x1ee6, - 0x723f, 0x169d, - 0x7240, 0x3c37, - 0x7247, 0x0bcb, - 0x7248, 0x03f1, - 0x7249, 0x3c3e, - 0x724c, 0x0b87, - 0x724d, 0x1969, - 0x724e, 0x3c41, - 0x7252, 0x196a, - 0x7253, 0x3c45, - 0x7256, 0x196b, - 0x7257, 0x3c48, - 0x7258, 0x24c3, - 0x7259, 0x0fe9, - 0x725a, 0x3c49, - 0x725b, 0x0b64, - 0x725c, 0x3c4a, - 0x725d, 0x1944, - 0x725e, 0x3c4b, - 0x725f, 0x0b15, - 0x7260, 0x3c4c, - 0x7261, 0x0b18, - 0x7262, 0x09b9, - 0x7263, 0x3c4d, - 0x7266, 0x1945, - 0x7267, 0x0b24, - 0x7268, 0x3c50, - 0x7269, 0x0efe, - 0x726a, 0x3c51, - 0x726e, 0x1942, - 0x726f, 0x1946, - 0x7270, 0x3c55, - 0x7272, 0x0d35, - 0x7273, 0x3c57, - 0x7275, 0x0c20, - 0x7276, 0x3c59, - 0x7279, 0x0e2b, - 0x727a, 0x0f0d, - 0x727b, 0x3c5c, - 0x727d, 0x20cc, - 0x727e, 0x1947, - 0x7280, 0x0f19, - 0x7281, 0x09d2, - 0x7282, 0x3c5e, - 0x7284, 0x1949, - 0x7285, 0x3c60, - 0x728a, 0x05fe, - 0x728b, 0x194a, - 0x728c, 0x3c65, - 0x728d, 0x194b, - 0x728e, 0x3c66, - 0x728f, 0x194c, - 0x7290, 0x3c67, - 0x7292, 0x194d, - 0x7293, 0x3c69, - 0x7296, 0x2340, - 0x7297, 0x3c6c, - 0x729f, 0x1943, - 0x72a0, 0x3c74, - 0x72a2, 0x1ed1, - 0x72a3, 0x3c76, - 0x72a7, 0x21ac, - 0x72a8, 0x3c7a, - 0x72ac, 0x0c89, - 0x72ad, 0x15ef, - 0x72ae, 0x3c7e, - 0x72af, 0x0655, - 0x72b0, 0x15f0, - 0x72b1, 0x3c7f, - 0x72b4, 0x15f1, - 0x72b5, 0x3c82, - 0x72b6, 0x1211, - 0x72b7, 0x15f2, - 0x72b9, 0x10b1, - 0x72ba, 0x3c83, - 0x72c0, 0x22af, - 0x72c1, 0x15f5, - 0x72c2, 0x097e, - 0x72c3, 0x15f4, - 0x72c4, 0x05b3, - 0x72c5, 0x3c89, - 0x72c8, 0x0420, - 0x72c9, 0x3c8c, - 0x72cd, 0x15f7, - 0x72ce, 0x15f6, - 0x72cf, 0x3c90, - 0x72d0, 0x07b3, - 0x72d1, 0x3c91, - 0x72d2, 0x15f8, - 0x72d3, 0x3c92, - 0x72d7, 0x0710, - 0x72d8, 0x3c96, - 0x72d9, 0x0900, - 0x72da, 0x3c97, - 0x72de, 0x0b5f, - 0x72df, 0x3c9b, - 0x72e0, 0x0794, - 0x72e1, 0x0897, - 0x72e2, 0x3c9c, - 0x72e8, 0x15f9, - 0x72e9, 0x15fb, - 0x72ea, 0x3ca2, - 0x72ec, 0x05ff, - 0x72ed, 0x0f2e, - 0x72ee, 0x0d3f, - 0x72ef, 0x15fa, - 0x72f0, 0x1199, - 0x72f1, 0x10e1, - 0x72f2, 0x15fc, - 0x72f3, 0x1600, - 0x72f4, 0x15fd, - 0x72f5, 0x3ca4, - 0x72f7, 0x15fe, - 0x72f8, 0x09d5, - 0x72f9, 0x21b6, - 0x72fa, 0x1602, - 0x72fc, 0x09b2, - 0x72fd, 0x1e3d, - 0x72fe, 0x3ca6, - 0x7300, 0x3ca8, - 0x7301, 0x15ff, - 0x7302, 0x3ca9, - 0x7303, 0x1601, - 0x7304, 0x3caa, - 0x730a, 0x1607, - 0x730b, 0x3cb0, - 0x730e, 0x0a1d, - 0x730f, 0x3cb3, - 0x7313, 0x1605, - 0x7314, 0x3cb7, - 0x7315, 0x160a, - 0x7316, 0x04c5, - 0x7317, 0x1604, - 0x7318, 0x3cb8, - 0x731b, 0x0ad2, - 0x731c, 0x0489, - 0x731d, 0x1609, - 0x731e, 0x1608, - 0x731f, 0x3cbb, - 0x7321, 0x1606, - 0x7322, 0x160b, - 0x7323, 0x3cbd, - 0x7325, 0x160d, - 0x7326, 0x3cbf, - 0x7329, 0x0f94, - 0x732a, 0x11ec, - 0x732b, 0x0aad, - 0x732c, 0x160e, - 0x732d, 0x3cc2, - 0x732e, 0x0f44, - 0x732f, 0x3cc3, - 0x7331, 0x1610, - 0x7332, 0x3cc5, - 0x7334, 0x07a6, - 0x7335, 0x3cc7, - 0x7336, 0x2235, - 0x7337, 0x18d4, - 0x7338, 0x160f, - 0x7339, 0x160c, - 0x733a, 0x3cc8, - 0x733b, 0x2397, - 0x733c, 0x3cc9, - 0x733e, 0x07c0, - 0x733f, 0x10f6, - 0x7340, 0x3ccb, - 0x7341, 0x2395, - 0x7342, 0x3ccc, - 0x7344, 0x223f, - 0x7345, 0x212a, - 0x7346, 0x3cce, - 0x734d, 0x1612, - 0x734e, 0x3cd5, - 0x7350, 0x1611, - 0x7351, 0x3cd7, - 0x7352, 0x18d5, - 0x7353, 0x3cd8, - 0x7357, 0x1613, - 0x7358, 0x3cdc, - 0x7360, 0x1614, - 0x7361, 0x3ce4, - 0x7368, 0x1ed2, - 0x7369, 0x3ceb, - 0x736a, 0x2396, - 0x736b, 0x2398, - 0x736c, 0x1615, - 0x736d, 0x0df4, - 0x736e, 0x3cec, - 0x736f, 0x1616, - 0x7370, 0x20a2, - 0x7371, 0x3ced, - 0x7372, 0x1f64, - 0x7373, 0x3cee, - 0x7375, 0x202b, - 0x7376, 0x3cf0, - 0x7377, 0x2394, - 0x7378, 0x2139, - 0x7379, 0x3cf1, - 0x737a, 0x215f, - 0x737b, 0x21c1, - 0x737c, 0x239a, - 0x737d, 0x3cf2, - 0x737e, 0x1617, - 0x737f, 0x3cf3, - 0x7380, 0x2399, - 0x7381, 0x3cf4, - 0x7384, 0x0fc9, - 0x7385, 0x3cf7, - 0x7387, 0x0a71, - 0x7388, 0x3cf9, - 0x7389, 0x10d6, - 0x738a, 0x3cfa, - 0x738b, 0x0ea6, - 0x738c, 0x3cfb, - 0x738e, 0x1818, - 0x738f, 0x3cfd, - 0x7391, 0x1819, - 0x7392, 0x3cff, - 0x7396, 0x08f0, - 0x7397, 0x3d03, - 0x739b, 0x0a91, - 0x739c, 0x3d07, - 0x739f, 0x181c, - 0x73a0, 0x3d0a, - 0x73a2, 0x181b, - 0x73a3, 0x3d0c, - 0x73a9, 0x0e97, - 0x73aa, 0x3d12, - 0x73ab, 0x0aba, - 0x73ac, 0x3d13, - 0x73ae, 0x181a, - 0x73af, 0x07cc, - 0x73b0, 0x0f43, - 0x73b1, 0x3d15, - 0x73b2, 0x0a2a, - 0x73b3, 0x1821, - 0x73b4, 0x3d16, - 0x73b7, 0x1820, - 0x73b8, 0x3d19, - 0x73ba, 0x182c, - 0x73bb, 0x046a, - 0x73bc, 0x3d1b, - 0x73c0, 0x1822, - 0x73c1, 0x3d1f, - 0x73c2, 0x181e, - 0x73c3, 0x3d20, - 0x73c8, 0x1824, - 0x73c9, 0x1823, - 0x73ca, 0x0cf3, - 0x73cb, 0x3d25, - 0x73cd, 0x1185, - 0x73ce, 0x3d27, - 0x73cf, 0x181d, - 0x73d0, 0x0646, - 0x73d1, 0x181f, - 0x73d2, 0x3d28, - 0x73d9, 0x1826, - 0x73da, 0x3d2f, - 0x73de, 0x182b, - 0x73df, 0x3d33, - 0x73e0, 0x11e8, - 0x73e1, 0x3d34, - 0x73e5, 0x1825, - 0x73e6, 0x3d38, - 0x73e7, 0x182a, - 0x73e8, 0x3d39, - 0x73e9, 0x1829, - 0x73ea, 0x3d3a, - 0x73ed, 0x03eb, - 0x73ee, 0x3d3d, - 0x73f2, 0x182d, - 0x73f3, 0x3d41, - 0x73fe, 0x21c0, - 0x73ff, 0x3d4c, - 0x7400, 0x3d4d, - 0x7403, 0x0c6f, - 0x7404, 0x3d50, - 0x7405, 0x09b0, - 0x7406, 0x09d8, - 0x7407, 0x3d51, - 0x7409, 0x0a39, - 0x740a, 0x1828, - 0x740b, 0x3d53, - 0x740f, 0x182e, - 0x7410, 0x0deb, - 0x7411, 0x3d57, - 0x741a, 0x1838, - 0x741b, 0x1837, - 0x741c, 0x3d60, - 0x7422, 0x121e, - 0x7423, 0x3d66, - 0x7425, 0x1832, - 0x7426, 0x1831, - 0x7427, 0x3d68, - 0x7428, 0x1833, - 0x7429, 0x3d69, - 0x742a, 0x182f, - 0x742b, 0x3d6a, - 0x742c, 0x1836, - 0x742d, 0x3d6b, - 0x742e, 0x1835, - 0x742f, 0x3d6c, - 0x7430, 0x1834, - 0x7431, 0x3d6d, - 0x7433, 0x0a1e, - 0x7434, 0x0c56, - 0x7435, 0x0bbe, - 0x7436, 0x0b84, - 0x7437, 0x3d6f, - 0x743c, 0x0c6a, - 0x743d, 0x3d74, - 0x743f, 0x2460, - 0x7440, 0x3d76, - 0x7441, 0x1839, - 0x7442, 0x3d77, - 0x744b, 0x245c, - 0x744c, 0x3d80, - 0x7455, 0x183c, - 0x7456, 0x3d89, - 0x7457, 0x183b, - 0x7458, 0x3d8a, - 0x7459, 0x183d, - 0x745a, 0x07ae, - 0x745b, 0x1830, - 0x745c, 0x183a, - 0x745d, 0x3d8b, - 0x745e, 0x0ccb, - 0x745f, 0x0ce3, - 0x7460, 0x3d8c, - 0x7463, 0x215d, - 0x7464, 0x3d8f, - 0x7469, 0x2225, - 0x746a, 0x206a, - 0x746b, 0x3d94, - 0x746d, 0x183f, - 0x746e, 0x3d96, - 0x7470, 0x073e, - 0x7471, 0x3d98, - 0x7476, 0x1027, - 0x7477, 0x183e, - 0x7478, 0x3d9d, - 0x747e, 0x1840, - 0x747f, 0x3da3, - 0x7480, 0x1843, - 0x7482, 0x3da4, - 0x7483, 0x09f0, - 0x7484, 0x3da5, - 0x7487, 0x1845, - 0x7488, 0x3da8, - 0x7489, 0x2461, - 0x748a, 0x3da9, - 0x748b, 0x1846, - 0x748c, 0x3daa, - 0x748e, 0x1842, - 0x748f, 0x3dac, - 0x7490, 0x184a, - 0x7491, 0x3dad, - 0x749c, 0x1841, - 0x749d, 0x3db8, - 0x749e, 0x1847, - 0x749f, 0x3db9, - 0x74a3, 0x245b, - 0x74a4, 0x3dbd, - 0x74a6, 0x2462, - 0x74a7, 0x184b, - 0x74a8, 0x1848, - 0x74aa, 0x3dbf, - 0x74b0, 0x1f54, - 0x74b1, 0x3dc5, - 0x74ba, 0x184d, - 0x74bb, 0x3dce, - 0x74bd, 0x245f, - 0x74be, 0x3dd0, - 0x74ca, 0x20ec, - 0x74cb, 0x3ddc, - 0x74cf, 0x245d, - 0x74d0, 0x3de0, - 0x74d2, 0x184c, - 0x74d3, 0x3de2, - 0x74d4, 0x2463, - 0x74d5, 0x3de3, - 0x74da, 0x2464, - 0x74db, 0x3de8, - 0x74dc, 0x0728, - 0x74dd, 0x3de9, - 0x74de, 0x1b32, - 0x74df, 0x3dea, - 0x74e0, 0x1b33, - 0x74e1, 0x3deb, - 0x74e2, 0x0bcf, - 0x74e3, 0x03f5, - 0x74e4, 0x0c9a, - 0x74e5, 0x3dec, - 0x74e6, 0x0e90, - 0x74e7, 0x3ded, - 0x74ee, 0x0edc, - 0x74ef, 0x1903, - 0x74f0, 0x3df4, - 0x74f4, 0x1904, - 0x74f5, 0x3df8, - 0x74f6, 0x0bde, - 0x74f7, 0x054c, - 0x74f8, 0x3df9, - 0x74ff, 0x1905, - 0x7500, 0x3e00, - 0x7504, 0x1188, - 0x7505, 0x3e04, - 0x750c, 0x24a5, - 0x750d, 0x1485, - 0x750e, 0x3e0b, - 0x750f, 0x1906, - 0x7510, 0x3e0c, - 0x7511, 0x1907, - 0x7512, 0x3e0d, - 0x7513, 0x1908, - 0x7514, 0x3e0e, - 0x7518, 0x06c5, - 0x7519, 0x14f8, - 0x751a, 0x0d2e, - 0x751b, 0x3e12, - 0x751c, 0x0e43, - 0x751d, 0x3e13, - 0x751f, 0x0d33, - 0x7520, 0x3e15, - 0x7523, 0x1e70, - 0x7524, 0x3e18, - 0x7525, 0x0d34, - 0x7526, 0x3e19, - 0x7528, 0x10a8, - 0x7529, 0x0d9b, - 0x752a, 0x3e1b, - 0x752b, 0x06a1, - 0x752c, 0x1b34, - 0x752d, 0x042b, - 0x752e, 0x3e1c, - 0x752f, 0x1734, - 0x7530, 0x0e42, - 0x7531, 0x10ae, - 0x7532, 0x084a, - 0x7533, 0x0d23, - 0x7534, 0x3e1d, - 0x7535, 0x05c8, - 0x7536, 0x3e1e, - 0x7537, 0x0b33, - 0x7538, 0x05ca, - 0x7539, 0x3e1f, - 0x753a, 0x1a78, - 0x753b, 0x07c2, - 0x753c, 0x3e20, - 0x753e, 0x1816, - 0x753f, 0x3e22, - 0x7540, 0x1a79, - 0x7541, 0x3e23, - 0x7545, 0x04ce, - 0x7546, 0x3e27, - 0x7548, 0x1a7c, - 0x7549, 0x3e29, - 0x754b, 0x1a7b, - 0x754c, 0x08b8, - 0x754d, 0x3e2b, - 0x754e, 0x1a7a, - 0x754f, 0x0ec6, - 0x7550, 0x3e2c, - 0x7554, 0x0b90, - 0x7555, 0x3e30, - 0x7559, 0x0a3d, - 0x755a, 0x139e, - 0x755b, 0x1a7d, - 0x755c, 0x0fbe, - 0x755d, 0x208f, - 0x755e, 0x3e34, - 0x7562, 0x1e42, - 0x7563, 0x3e38, - 0x7565, 0x0a7b, - 0x7566, 0x0c07, - 0x7567, 0x3e3a, - 0x756a, 0x0649, - 0x756b, 0x1f4e, - 0x756c, 0x3e3d, - 0x7572, 0x1a7e, - 0x7573, 0x3e43, - 0x7574, 0x0510, - 0x7575, 0x3e44, - 0x7576, 0x1eb1, - 0x7577, 0x3e45, - 0x7578, 0x0810, - 0x7579, 0x1a7f, - 0x757a, 0x3e46, - 0x757f, 0x1814, - 0x7580, 0x3e4b, - 0x7583, 0x1a80, - 0x7584, 0x3e4e, - 0x7586, 0x087f, - 0x7587, 0x1e8b, - 0x7588, 0x3e50, - 0x758b, 0x1bc6, - 0x758c, 0x3e53, - 0x758f, 0x0d7f, - 0x7590, 0x3e56, - 0x7591, 0x1050, - 0x7592, 0x1b60, - 0x7593, 0x3e57, - 0x7594, 0x1b61, - 0x7595, 0x3e58, - 0x7596, 0x1b62, - 0x7597, 0x0a0f, - 0x7598, 0x3e59, - 0x7599, 0x06e8, - 0x759a, 0x08fd, - 0x759b, 0x3e5a, - 0x759d, 0x1b64, - 0x759e, 0x3e5c, - 0x759f, 0x0b72, - 0x75a0, 0x1b63, - 0x75a1, 0x101a, - 0x75a2, 0x3e5d, - 0x75a3, 0x1b66, - 0x75a4, 0x03d7, - 0x75a5, 0x08bb, - 0x75a6, 0x3e5e, - 0x75ab, 0x1066, - 0x75ac, 0x1b65, - 0x75ad, 0x3e63, - 0x75ae, 0x0532, - 0x75af, 0x0685, - 0x75b0, 0x1b6c, - 0x75b1, 0x1b6b, - 0x75b2, 0x0bc2, - 0x75b3, 0x1b67, - 0x75b5, 0x0546, - 0x75b6, 0x3e64, - 0x75b8, 0x1b69, - 0x75b9, 0x118f, - 0x75ba, 0x3e66, - 0x75bc, 0x0e2e, - 0x75bd, 0x0901, - 0x75be, 0x0825, - 0x75bf, 0x3e68, - 0x75c2, 0x1b6e, - 0x75c3, 0x1b6d, - 0x75c4, 0x1b6a, - 0x75c5, 0x0468, - 0x75c6, 0x3e6b, - 0x75c7, 0x11a1, - 0x75c8, 0x109d, - 0x75c9, 0x08e6, - 0x75ca, 0x0c87, - 0x75cb, 0x3e6c, - 0x75cd, 0x1b70, - 0x75ce, 0x3e6e, - 0x75d2, 0x1020, - 0x75d3, 0x3e72, - 0x75d4, 0x11cb, - 0x75d5, 0x0792, - 0x75d6, 0x1b6f, - 0x75d7, 0x3e73, - 0x75d8, 0x05fa, - 0x75d9, 0x1fc6, - 0x75da, 0x3e74, - 0x75db, 0x0e65, - 0x75dc, 0x3e75, - 0x75de, 0x0bc5, - 0x75df, 0x3e77, - 0x75e2, 0x09ea, - 0x75e3, 0x1b71, - 0x75e4, 0x1b74, - 0x75e5, 0x3e7a, - 0x75e6, 0x1b73, - 0x75e7, 0x1b76, - 0x75e8, 0x1b72, - 0x75e9, 0x3e7b, - 0x75ea, 0x07d3, - 0x75eb, 0x1b75, - 0x75ec, 0x3e7c, - 0x75f0, 0x0e08, - 0x75f1, 0x1b78, - 0x75f2, 0x3e80, - 0x75f4, 0x04fa, - 0x75f5, 0x3e82, - 0x75f9, 0x043d, - 0x75fa, 0x3e86, - 0x75fc, 0x1b79, - 0x75fd, 0x3e88, - 0x75ff, 0x1b7a, - 0x7600, 0x1b7c, - 0x7601, 0x0564, - 0x7602, 0x25ae, - 0x7603, 0x1b77, - 0x7604, 0x3e8a, - 0x7605, 0x1b7d, - 0x7606, 0x3e8b, - 0x760a, 0x1b80, - 0x760b, 0x1f01, - 0x760c, 0x1b7e, - 0x760d, 0x2200, - 0x760e, 0x3e8f, - 0x7610, 0x1b7b, - 0x7611, 0x3e91, - 0x7615, 0x1b83, - 0x7616, 0x3e95, - 0x7617, 0x1b7f, - 0x7618, 0x1b82, - 0x7619, 0x1b84, - 0x761a, 0x3e96, - 0x761b, 0x1b85, - 0x761c, 0x3e97, - 0x761e, 0x25b2, - 0x761f, 0x0ed0, - 0x7620, 0x1b88, - 0x7621, 0x1e97, - 0x7622, 0x1b87, - 0x7623, 0x3e99, - 0x7624, 0x0a3f, - 0x7625, 0x1b81, - 0x7626, 0x0d74, - 0x7627, 0x20ab, - 0x7628, 0x3e9a, - 0x7629, 0x0574, - 0x762a, 0x045a, - 0x762b, 0x0e04, - 0x762c, 0x3e9b, - 0x762d, 0x1b8a, - 0x762e, 0x3e9c, - 0x7630, 0x1b8b, - 0x7631, 0x3e9e, - 0x7633, 0x1b90, - 0x7634, 0x116f, - 0x7635, 0x1b8d, - 0x7636, 0x3ea0, - 0x7638, 0x0c8e, - 0x7639, 0x3ea2, - 0x763b, 0x25b3, - 0x763c, 0x1b86, - 0x763d, 0x3ea4, - 0x763e, 0x1b8f, - 0x763f, 0x1b8c, - 0x7640, 0x1b89, - 0x7641, 0x3ea5, - 0x7642, 0x2028, - 0x7643, 0x1b8e, - 0x7644, 0x3ea6, - 0x7646, 0x25af, - 0x7648, 0x3ea8, - 0x7649, 0x25b1, - 0x764a, 0x3ea9, - 0x764c, 0x03b4, - 0x764d, 0x1b91, - 0x764e, 0x3eab, - 0x7654, 0x1b93, - 0x7655, 0x3eb1, - 0x7656, 0x1b95, - 0x7657, 0x3eb2, - 0x7658, 0x25ac, - 0x7659, 0x3eb3, - 0x765c, 0x1b94, - 0x765d, 0x3eb6, - 0x765e, 0x1b92, - 0x765f, 0x1e4e, - 0x7660, 0x3eb7, - 0x7662, 0x2202, - 0x7663, 0x0fcb, - 0x7664, 0x25ab, - 0x7665, 0x2286, - 0x7666, 0x3eb9, - 0x7667, 0x25ad, - 0x7668, 0x3eba, - 0x7669, 0x25b6, - 0x766a, 0x3ebb, - 0x766b, 0x1b96, - 0x766c, 0x21e3, - 0x766d, 0x25b4, - 0x766f, 0x1b97, - 0x7670, 0x222f, - 0x7671, 0x2165, - 0x7672, 0x25b7, - 0x7673, 0x3ebc, - 0x7678, 0x0748, - 0x7679, 0x3ec1, - 0x767b, 0x05a8, - 0x767c, 0x1ee9, - 0x767d, 0x03e2, - 0x767e, 0x03e4, - 0x767f, 0x3ec3, - 0x7682, 0x1130, - 0x7683, 0x3ec6, - 0x7684, 0x05a5, - 0x7685, 0x3ec7, - 0x7686, 0x08a5, - 0x7687, 0x07df, - 0x7688, 0x1b2d, - 0x7689, 0x3ec8, - 0x768b, 0x06d9, - 0x768c, 0x3eca, - 0x768e, 0x1b2e, - 0x768f, 0x3ecc, - 0x7691, 0x03b3, - 0x7692, 0x3ece, - 0x7693, 0x1b2f, - 0x7694, 0x3ecf, - 0x7696, 0x0e9f, - 0x7697, 0x3ed1, - 0x7699, 0x1b30, - 0x769a, 0x1e25, - 0x769b, 0x3ed3, - 0x76a4, 0x1b31, - 0x76a5, 0x3edc, - 0x76ae, 0x0bc3, - 0x76af, 0x3ee5, - 0x76b1, 0x11e4, - 0x76b2, 0x1bc8, - 0x76b3, 0x3ee7, - 0x76b4, 0x1bc9, - 0x76b5, 0x3ee8, - 0x76b8, 0x25c0, - 0x76b9, 0x3eeb, - 0x76ba, 0x229a, - 0x76bb, 0x3eec, - 0x76bf, 0x0af8, - 0x76c0, 0x3ef0, - 0x76c2, 0x10c0, - 0x76c3, 0x3ef2, - 0x76c5, 0x11d0, - 0x76c6, 0x0ba9, - 0x76c7, 0x3ef4, - 0x76c8, 0x1094, - 0x76c9, 0x3ef5, - 0x76ca, 0x106d, - 0x76cb, 0x3ef6, - 0x76cd, 0x1a8b, - 0x76ce, 0x03c6, - 0x76cf, 0x1156, - 0x76d0, 0x0ff7, - 0x76d1, 0x0853, - 0x76d2, 0x0787, - 0x76d3, 0x3ef8, - 0x76d4, 0x0985, - 0x76d5, 0x3ef9, - 0x76d6, 0x06c2, - 0x76d7, 0x05a2, - 0x76d8, 0x0b8d, - 0x76d9, 0x3efa, - 0x76db, 0x0d39, - 0x76dc, 0x3efc, - 0x76de, 0x226e, - 0x76df, 0x0ad0, - 0x76e0, 0x3efe, - 0x76e1, 0x1fbd, - 0x76e2, 0x3eff, - 0x76e3, 0x1f84, - 0x76e4, 0x20b2, - 0x76e5, 0x1a8c, - 0x76e6, 0x3f00, - 0x76e7, 0x2043, - 0x76e8, 0x3f01, - 0x76ee, 0x0b22, - 0x76ef, 0x05e1, - 0x76f0, 0x3f07, - 0x76f1, 0x1a58, - 0x76f2, 0x0aa9, - 0x76f3, 0x3f08, - 0x76f4, 0x11b0, - 0x76f5, 0x3f09, - 0x76f8, 0x0f4d, - 0x76f9, 0x1a5b, - 0x76fa, 0x3f0c, - 0x76fc, 0x0b8f, - 0x76fd, 0x3f0e, - 0x76fe, 0x061b, - 0x76ff, 0x3f0f, - 0x7700, 0x3f10, - 0x7701, 0x0d38, - 0x7702, 0x3f11, - 0x7704, 0x1a59, - 0x7705, 0x3f13, - 0x7707, 0x1a5c, - 0x7709, 0x0ac1, - 0x770a, 0x3f15, - 0x770b, 0x0941, - 0x770c, 0x3f16, - 0x770d, 0x1a5a, - 0x770e, 0x3f17, - 0x7719, 0x1a60, - 0x771a, 0x1a5e, - 0x771b, 0x3f22, - 0x771f, 0x1187, - 0x7720, 0x0ae4, - 0x7721, 0x3f26, - 0x7722, 0x1a5f, - 0x7723, 0x3f27, - 0x7726, 0x1a62, - 0x7727, 0x3f2a, - 0x7728, 0x1144, - 0x7729, 0x0fcc, - 0x772a, 0x3f2b, - 0x772d, 0x1a61, - 0x772e, 0x3f2e, - 0x772f, 0x0ad5, - 0x7730, 0x3f2f, - 0x7735, 0x1a63, - 0x7736, 0x0981, - 0x7737, 0x091b, - 0x7738, 0x1a64, - 0x7739, 0x3f34, - 0x773a, 0x0e4a, - 0x773b, 0x3f35, - 0x773c, 0x1004, - 0x773d, 0x3f36, - 0x7740, 0x1222, - 0x7741, 0x1197, - 0x7742, 0x3f39, - 0x7743, 0x1a68, - 0x7744, 0x3f3a, - 0x7747, 0x1a67, - 0x7748, 0x3f3d, - 0x774f, 0x2684, - 0x7750, 0x1a65, - 0x7752, 0x3f44, - 0x775a, 0x1a69, - 0x775b, 0x08d5, - 0x775c, 0x3f4c, - 0x775e, 0x24ef, - 0x775f, 0x3f4e, - 0x7761, 0x0da4, - 0x7762, 0x1a6b, - 0x7763, 0x05fc, - 0x7764, 0x3f50, - 0x7765, 0x1a6c, - 0x7766, 0x0b23, - 0x7767, 0x3f51, - 0x7768, 0x1a6a, - 0x7769, 0x3f52, - 0x776b, 0x08af, - 0x776c, 0x048e, - 0x776d, 0x3f54, - 0x7779, 0x0602, - 0x777a, 0x3f60, - 0x777d, 0x1a6f, - 0x777e, 0x1270, - 0x777f, 0x1a6d, - 0x7780, 0x1a70, - 0x7781, 0x3f63, - 0x7784, 0x0aee, - 0x7785, 0x0517, - 0x7786, 0x3f66, - 0x778c, 0x1a71, - 0x778d, 0x1a6e, - 0x778e, 0x0f26, - 0x778f, 0x3f6c, - 0x7791, 0x1a72, - 0x7792, 0x0a9e, - 0x7793, 0x3f6e, - 0x7798, 0x24ee, - 0x7799, 0x3f73, - 0x779e, 0x2074, - 0x779f, 0x1a73, - 0x77a1, 0x3f78, - 0x77a2, 0x1495, - 0x77a3, 0x3f79, - 0x77a5, 0x0bd2, - 0x77a6, 0x3f7b, - 0x77a7, 0x0c43, - 0x77a8, 0x3f7c, - 0x77a9, 0x11f4, - 0x77aa, 0x05aa, - 0x77ab, 0x3f7d, - 0x77ac, 0x0da7, - 0x77ad, 0x2687, - 0x77ae, 0x3f7e, - 0x77b0, 0x1a75, - 0x77b1, 0x3f80, - 0x77b3, 0x0e5c, - 0x77b4, 0x3f82, - 0x77b5, 0x1a76, - 0x77b6, 0x3f83, - 0x77bb, 0x1151, - 0x77bc, 0x24f0, - 0x77bd, 0x1a77, - 0x77be, 0x3f88, - 0x77bf, 0x1d7e, - 0x77c0, 0x3f89, - 0x77c7, 0x268d, - 0x77c8, 0x3f90, - 0x77cd, 0x1397, - 0x77ce, 0x3f95, - 0x77d7, 0x0526, - 0x77d8, 0x3f9e, - 0x77da, 0x22a0, - 0x77db, 0x0ab1, - 0x77dc, 0x1bca, - 0x77dd, 0x3fa0, - 0x77e2, 0x0d4f, - 0x77e3, 0x105a, - 0x77e4, 0x3fa5, - 0x77e5, 0x11a9, - 0x77e6, 0x3fa6, - 0x77e7, 0x1b1a, - 0x77e8, 0x3fa7, - 0x77e9, 0x0907, - 0x77ea, 0x3fa8, - 0x77eb, 0x0894, - 0x77ec, 0x1b1b, - 0x77ed, 0x060b, - 0x77ee, 0x03b6, - 0x77ef, 0x1fab, - 0x77f0, 0x3fa9, - 0x77f3, 0x0d46, - 0x77f4, 0x3fac, - 0x77f6, 0x1a22, - 0x77f7, 0x3fae, - 0x77f8, 0x1a23, - 0x77f9, 0x3faf, - 0x77fd, 0x0f08, - 0x77fe, 0x064c, - 0x77ff, 0x0980, - 0x7800, 0x1a24, - 0x7801, 0x0a92, - 0x7802, 0x0ce9, - 0x7803, 0x3fb3, - 0x7809, 0x1a25, - 0x780a, 0x3fb9, - 0x780c, 0x0c15, - 0x780d, 0x0940, - 0x780e, 0x3fbb, - 0x7811, 0x1a28, - 0x7812, 0x0bb9, - 0x7813, 0x3fbe, - 0x7814, 0x0ff9, - 0x7815, 0x3fbf, - 0x7816, 0x1206, - 0x7817, 0x1a26, - 0x7819, 0x3fc0, - 0x781a, 0x100b, - 0x781b, 0x3fc1, - 0x781c, 0x1a2b, - 0x781e, 0x3fc2, - 0x781f, 0x1a30, - 0x7820, 0x3fc3, - 0x7823, 0x1a34, - 0x7824, 0x3fc6, - 0x7825, 0x1a32, - 0x7826, 0x1a3a, - 0x7827, 0x1189, - 0x7828, 0x3fc7, - 0x7829, 0x1a35, - 0x782a, 0x3fc8, - 0x782c, 0x1a33, - 0x782d, 0x1a2a, - 0x782e, 0x3fca, - 0x7830, 0x0baa, - 0x7831, 0x3fcc, - 0x7834, 0x0be5, - 0x7835, 0x3fcf, - 0x7837, 0x0d22, - 0x7838, 0x1115, - 0x7839, 0x1a2d, - 0x783c, 0x1a31, - 0x783d, 0x3fd1, - 0x783e, 0x09e4, - 0x783f, 0x3fd2, - 0x7840, 0x0524, - 0x7841, 0x3fd3, - 0x7843, 0x26a8, - 0x7844, 0x3fd5, - 0x7845, 0x0741, - 0x7846, 0x3fd6, - 0x7847, 0x1a3c, - 0x7848, 0x3fd7, - 0x784c, 0x1a3d, - 0x784d, 0x3fdb, - 0x784e, 0x1a36, - 0x784f, 0x3fdc, - 0x7850, 0x1a3b, - 0x7851, 0x3fdd, - 0x7852, 0x0f07, - 0x7853, 0x3fde, - 0x7855, 0x0dab, - 0x7856, 0x1a38, - 0x7858, 0x3fe0, - 0x785d, 0x0f62, - 0x785e, 0x3fe5, - 0x7864, 0x24e9, - 0x7865, 0x3feb, - 0x7868, 0x24e5, - 0x7869, 0x3fee, - 0x786a, 0x1a3e, - 0x786b, 0x0a3b, - 0x786c, 0x1097, - 0x786d, 0x1a37, - 0x786e, 0x0c92, - 0x786f, 0x21fa, - 0x7870, 0x3fef, - 0x7877, 0x0862, - 0x7878, 0x3ff6, - 0x787c, 0x0bb1, - 0x787d, 0x3ffa, - 0x7887, 0x1a42, - 0x7888, 0x4004, - 0x7889, 0x05d0, - 0x788a, 0x4005, - 0x788c, 0x0a5c, - 0x788d, 0x03b8, - 0x788e, 0x0dde, - 0x788f, 0x4007, - 0x7891, 0x0417, - 0x7892, 0x4009, - 0x7893, 0x1a40, - 0x7894, 0x400a, - 0x7897, 0x0e9c, - 0x7898, 0x05c3, - 0x7899, 0x400d, - 0x789a, 0x1a41, - 0x789b, 0x1a3f, - 0x789c, 0x1a43, - 0x789d, 0x400e, - 0x789f, 0x05db, - 0x78a0, 0x4010, - 0x78a1, 0x1a44, - 0x78a2, 0x4011, - 0x78a3, 0x1a45, - 0x78a4, 0x4012, - 0x78a5, 0x1a48, - 0x78a6, 0x4013, - 0x78a7, 0x0435, - 0x78a8, 0x4014, - 0x78a9, 0x2148, - 0x78aa, 0x4015, - 0x78ad, 0x24e4, - 0x78ae, 0x4018, - 0x78b0, 0x0bb7, - 0x78b1, 0x0861, - 0x78b2, 0x1a46, - 0x78b3, 0x0e0f, - 0x78b4, 0x04b1, - 0x78b5, 0x401a, - 0x78b8, 0x24e6, - 0x78b9, 0x1a47, - 0x78ba, 0x20f7, - 0x78bb, 0x401d, - 0x78bc, 0x206b, - 0x78bd, 0x401e, - 0x78be, 0x0b4e, - 0x78bf, 0x401f, - 0x78c1, 0x0548, - 0x78c2, 0x4021, - 0x78c5, 0x0400, - 0x78c6, 0x4024, - 0x78c9, 0x1a4b, - 0x78ca, 0x09c5, - 0x78cb, 0x056b, - 0x78cc, 0x4027, - 0x78d0, 0x0b8e, - 0x78d1, 0x402b, - 0x78d4, 0x1a49, - 0x78d5, 0x0951, - 0x78d6, 0x402e, - 0x78d9, 0x1a4a, - 0x78da, 0x22a7, - 0x78db, 0x4031, - 0x78e3, 0x24ec, - 0x78e4, 0x4039, - 0x78e7, 0x24eb, - 0x78e8, 0x0b08, - 0x78e9, 0x403c, - 0x78ec, 0x1a4c, - 0x78ed, 0x403f, - 0x78ef, 0x24e3, - 0x78f0, 0x4041, - 0x78f2, 0x1a4d, - 0x78f3, 0x4043, - 0x78f4, 0x1a4f, - 0x78f5, 0x4044, - 0x78f7, 0x0a20, - 0x78f8, 0x4046, - 0x78fa, 0x07dc, - 0x78fb, 0x4048, - 0x78fd, 0x24ea, - 0x78fe, 0x404a, - 0x7900, 0x404c, - 0x7901, 0x0889, - 0x7902, 0x404d, - 0x7905, 0x1a4e, - 0x7906, 0x4050, - 0x790e, 0x1e92, - 0x790f, 0x4058, - 0x7913, 0x1a50, - 0x7914, 0x405c, - 0x7919, 0x1e27, - 0x791a, 0x4061, - 0x791e, 0x1a52, - 0x791f, 0x4065, - 0x7924, 0x1a51, - 0x7925, 0x406a, - 0x7926, 0x1fe6, - 0x7927, 0x406b, - 0x792a, 0x24e7, - 0x792b, 0x2012, - 0x792c, 0x1eec, - 0x792d, 0x406e, - 0x7931, 0x24e8, - 0x7932, 0x4072, - 0x7934, 0x1a53, - 0x7935, 0x4074, - 0x793a, 0x0d55, - 0x793b, 0x19f8, - 0x793c, 0x09dc, - 0x793d, 0x4079, - 0x793e, 0x0d20, - 0x793f, 0x407a, - 0x7940, 0x19f9, - 0x7941, 0x0c0d, - 0x7942, 0x407b, - 0x7946, 0x19fa, - 0x7947, 0x407f, - 0x7948, 0x0c0c, - 0x7949, 0x19fb, - 0x794a, 0x4080, - 0x7953, 0x19fe, - 0x7954, 0x4089, - 0x7956, 0x1243, - 0x7957, 0x1a01, - 0x7958, 0x408b, - 0x795a, 0x19ff, - 0x795b, 0x19fc, - 0x795d, 0x1200, - 0x795e, 0x0d2a, - 0x795f, 0x0de3, - 0x7960, 0x1a02, - 0x7961, 0x408d, - 0x7962, 0x1a00, - 0x7963, 0x408e, - 0x7965, 0x0f56, - 0x7966, 0x4090, - 0x7967, 0x1a04, - 0x7968, 0x0bd0, - 0x7969, 0x4091, - 0x796d, 0x0833, - 0x796e, 0x4095, - 0x796f, 0x1a03, - 0x7970, 0x4096, - 0x7977, 0x059c, - 0x7978, 0x080b, - 0x7979, 0x409d, - 0x797a, 0x1a05, - 0x797b, 0x409e, - 0x7980, 0x130b, - 0x7981, 0x08cc, - 0x7982, 0x40a3, - 0x7984, 0x0a62, - 0x7985, 0x1a06, - 0x7986, 0x40a5, - 0x798a, 0x1a07, - 0x798b, 0x40a9, - 0x798d, 0x1f66, - 0x798e, 0x24dc, - 0x798f, 0x069e, - 0x7990, 0x40ab, - 0x799a, 0x1a08, - 0x799b, 0x40b5, - 0x79a6, 0x26a2, - 0x79a7, 0x1a09, - 0x79a8, 0x40c0, - 0x79aa, 0x24dd, - 0x79ab, 0x40c2, - 0x79ae, 0x200e, - 0x79af, 0x40c5, - 0x79b0, 0x24db, - 0x79b1, 0x1eb8, - 0x79b2, 0x40c6, - 0x79b3, 0x1a0a, - 0x79b4, 0x40c7, - 0x79b9, 0x10d2, - 0x79ba, 0x1264, - 0x79bb, 0x09d6, - 0x79bc, 0x40cc, - 0x79bd, 0x0c5a, - 0x79be, 0x0783, - 0x79bf, 0x40cd, - 0x79c0, 0x0fae, - 0x79c1, 0x0db2, - 0x79c2, 0x40ce, - 0x79c3, 0x0e6b, - 0x79c4, 0x40cf, - 0x79c6, 0x06cc, - 0x79c7, 0x40d1, - 0x79c9, 0x0465, - 0x79ca, 0x40d3, - 0x79cb, 0x0c6c, - 0x79cc, 0x40d4, - 0x79cd, 0x11d5, - 0x79ce, 0x40d5, - 0x79d1, 0x0953, - 0x79d2, 0x0af0, - 0x79d3, 0x40d8, - 0x79d5, 0x1b1d, - 0x79d6, 0x40da, - 0x79d8, 0x0add, - 0x79d9, 0x40dc, - 0x79df, 0x123f, - 0x79e0, 0x40e2, - 0x79e3, 0x1b1f, - 0x79e4, 0x04f8, - 0x79e5, 0x40e5, - 0x79e6, 0x0c55, - 0x79e7, 0x1016, - 0x79e8, 0x40e6, - 0x79e9, 0x11c7, - 0x79ea, 0x40e7, - 0x79eb, 0x1b20, - 0x79ec, 0x40e8, - 0x79ed, 0x1b1e, - 0x79ee, 0x40e9, - 0x79ef, 0x0812, - 0x79f0, 0x04eb, - 0x79f1, 0x40ea, - 0x79f8, 0x08a6, - 0x79f9, 0x40f1, - 0x79fb, 0x104d, - 0x79fc, 0x40f3, - 0x79fd, 0x07f5, - 0x79fe, 0x40f4, - 0x7a00, 0x0f0e, - 0x7a01, 0x40f6, - 0x7a02, 0x1b24, - 0x7a03, 0x1b23, - 0x7a04, 0x40f7, - 0x7a06, 0x1b21, - 0x7a07, 0x40f9, - 0x7a0b, 0x04f1, - 0x7a0c, 0x40fd, - 0x7a0d, 0x0d0d, - 0x7a0e, 0x0da5, - 0x7a0f, 0x40fe, - 0x7a14, 0x1b26, - 0x7a15, 0x4103, - 0x7a17, 0x03e9, - 0x7a18, 0x4105, - 0x7a1a, 0x11c8, - 0x7a1b, 0x4107, - 0x7a1e, 0x1b25, - 0x7a1f, 0x410a, - 0x7a20, 0x0512, - 0x7a21, 0x410b, - 0x7a23, 0x1d8f, - 0x7a24, 0x410d, - 0x7a2e, 0x2295, - 0x7a2f, 0x4117, - 0x7a31, 0x1e80, - 0x7a32, 0x4119, - 0x7a33, 0x0ed7, - 0x7a34, 0x411a, - 0x7a37, 0x1b28, - 0x7a38, 0x411d, - 0x7a39, 0x1b27, - 0x7a3a, 0x411e, - 0x7a3b, 0x059f, - 0x7a3c, 0x084d, - 0x7a3d, 0x0811, - 0x7a3e, 0x411f, - 0x7a3f, 0x06e0, - 0x7a40, 0x2677, - 0x7a41, 0x4120, - 0x7a46, 0x0b25, - 0x7a47, 0x4125, - 0x7a4c, 0x2624, - 0x7a4d, 0x1f69, - 0x7a4e, 0x222b, - 0x7a4f, 0x412a, - 0x7a51, 0x1b29, - 0x7a52, 0x412c, - 0x7a57, 0x0de0, - 0x7a58, 0x4131, - 0x7a61, 0x257f, - 0x7a62, 0x1f5b, - 0x7a63, 0x413a, - 0x7a69, 0x219b, - 0x7a6a, 0x4140, - 0x7a6b, 0x267d, - 0x7a6c, 0x4141, - 0x7a70, 0x1b2c, - 0x7a71, 0x4145, - 0x7a74, 0x0fd1, - 0x7a75, 0x4148, - 0x7a76, 0x08ee, - 0x7a77, 0x0c6b, - 0x7a78, 0x1b9a, - 0x7a7a, 0x0962, - 0x7a7b, 0x4149, - 0x7a7f, 0x052c, - 0x7a80, 0x1b9c, - 0x7a81, 0x0e6c, - 0x7a82, 0x414d, - 0x7a83, 0x0c51, - 0x7a84, 0x114e, - 0x7a85, 0x414e, - 0x7a86, 0x1b9d, - 0x7a87, 0x414f, - 0x7a88, 0x1b9e, - 0x7a89, 0x4150, - 0x7a8d, 0x0c4c, - 0x7a8e, 0x4154, - 0x7a91, 0x102b, - 0x7a92, 0x11ce, - 0x7a93, 0x4157, - 0x7a95, 0x1b9f, - 0x7a96, 0x08a2, - 0x7a97, 0x0533, - 0x7a98, 0x08ec, - 0x7a99, 0x4159, - 0x7a9c, 0x055f, - 0x7a9d, 0x0ee0, - 0x7a9e, 0x415c, - 0x7a9f, 0x096c, - 0x7aa0, 0x1ba1, - 0x7aa1, 0x415d, - 0x7aa5, 0x0987, - 0x7aa6, 0x1ba0, - 0x7aa7, 0x4161, - 0x7aa8, 0x1ba3, - 0x7aa9, 0x21a0, - 0x7aaa, 0x2186, - 0x7aab, 0x4162, - 0x7aac, 0x1ba2, - 0x7aad, 0x1ba4, - 0x7aae, 0x20ed, - 0x7aaf, 0x4163, - 0x7ab3, 0x1ba5, - 0x7ab4, 0x4167, - 0x7ab6, 0x25b9, - 0x7ab7, 0x4169, - 0x7aba, 0x1fea, - 0x7abb, 0x416c, - 0x7abf, 0x0a47, - 0x7ac0, 0x4170, - 0x7ac4, 0x1ea4, - 0x7ac5, 0x20e1, - 0x7ac6, 0x4174, - 0x7ac7, 0x25b8, - 0x7ac8, 0x2260, - 0x7ac9, 0x4175, - 0x7aca, 0x20e2, - 0x7acb, 0x09eb, - 0x7acc, 0x4176, - 0x7ad6, 0x0d91, - 0x7ad7, 0x4180, - 0x7ad9, 0x115f, - 0x7ada, 0x4182, - 0x7ade, 0x08e9, - 0x7adf, 0x08e8, - 0x7ae0, 0x1163, - 0x7ae1, 0x4186, - 0x7ae3, 0x092f, - 0x7ae4, 0x4188, - 0x7ae5, 0x0e60, - 0x7ae6, 0x1b99, - 0x7ae7, 0x4189, - 0x7aea, 0x2141, - 0x7aeb, 0x418c, - 0x7aed, 0x08b0, - 0x7aee, 0x418e, - 0x7aef, 0x060a, - 0x7af0, 0x418f, - 0x7af6, 0x1fc7, - 0x7af7, 0x4195, - 0x7af9, 0x11f0, - 0x7afa, 0x1c63, - 0x7afb, 0x4197, - 0x7afd, 0x1c64, - 0x7afe, 0x4199, - 0x7aff, 0x06c8, - 0x7b00, 0x419a, - 0x7b03, 0x1c66, - 0x7b05, 0x419d, - 0x7b06, 0x03d5, - 0x7b07, 0x419e, - 0x7b08, 0x1c65, - 0x7b09, 0x419f, - 0x7b0a, 0x1c69, - 0x7b0b, 0x0de6, - 0x7b0c, 0x41a0, - 0x7b0f, 0x1c6b, - 0x7b10, 0x41a3, - 0x7b11, 0x0f71, - 0x7b12, 0x41a4, - 0x7b14, 0x0433, - 0x7b15, 0x1c68, - 0x7b16, 0x41a6, - 0x7b19, 0x1c6f, - 0x7b1a, 0x41a9, - 0x7b1b, 0x05b2, - 0x7b1c, 0x41aa, - 0x7b1e, 0x1c77, - 0x7b1f, 0x41ac, - 0x7b20, 0x1c72, - 0x7b21, 0x41ad, - 0x7b24, 0x1c74, - 0x7b25, 0x1c73, - 0x7b26, 0x0698, - 0x7b27, 0x41b0, - 0x7b28, 0x0428, - 0x7b29, 0x41b1, - 0x7b2a, 0x1c6e, - 0x7b2b, 0x1c6a, - 0x7b2c, 0x05bb, - 0x7b2d, 0x41b2, - 0x7b2e, 0x1c70, - 0x7b2f, 0x41b3, - 0x7b31, 0x1c71, - 0x7b32, 0x41b5, - 0x7b33, 0x1c75, - 0x7b34, 0x41b6, - 0x7b38, 0x1c6d, - 0x7b39, 0x41ba, - 0x7b3a, 0x0856, - 0x7b3b, 0x41bb, - 0x7b3c, 0x0a46, - 0x7b3d, 0x41bc, - 0x7b3e, 0x1c76, - 0x7b3f, 0x41bd, - 0x7b45, 0x1c7a, - 0x7b46, 0x1e41, - 0x7b47, 0x1c6c, - 0x7b48, 0x41c3, - 0x7b49, 0x05a9, - 0x7b4a, 0x41c4, - 0x7b4b, 0x08bf, - 0x7b4c, 0x1c7c, - 0x7b4d, 0x41c5, - 0x7b4f, 0x0641, - 0x7b50, 0x097d, - 0x7b51, 0x11fd, - 0x7b52, 0x0e63, - 0x7b53, 0x41c7, - 0x7b54, 0x0573, - 0x7b55, 0x41c8, - 0x7b56, 0x04a6, - 0x7b57, 0x41c9, - 0x7b58, 0x1c78, - 0x7b59, 0x41ca, - 0x7b5a, 0x1c79, - 0x7b5b, 0x0cf1, - 0x7b5c, 0x41cb, - 0x7b5d, 0x1c7d, - 0x7b5e, 0x41cc, - 0x7b60, 0x1c7e, - 0x7b61, 0x41ce, - 0x7b62, 0x1c81, - 0x7b63, 0x41cf, - 0x7b67, 0x25e4, - 0x7b68, 0x41d3, - 0x7b6e, 0x1c7f, - 0x7b6f, 0x41d9, - 0x7b71, 0x1c83, - 0x7b72, 0x1c82, - 0x7b73, 0x41db, - 0x7b75, 0x1c7b, - 0x7b76, 0x41dd, - 0x7b77, 0x0977, - 0x7b78, 0x41de, - 0x7b79, 0x0514, - 0x7b7a, 0x41df, - 0x7b7b, 0x1c80, - 0x7b7c, 0x41e0, - 0x7b7e, 0x0c26, - 0x7b7f, 0x41e2, - 0x7b80, 0x0865, - 0x7b81, 0x41e3, - 0x7b85, 0x1c8b, - 0x7b86, 0x41e7, - 0x7b8b, 0x1f86, - 0x7b8c, 0x41ec, - 0x7b8d, 0x0718, - 0x7b8e, 0x41ed, - 0x7b90, 0x1c84, - 0x7b91, 0x41ef, - 0x7b94, 0x0474, - 0x7b95, 0x0813, - 0x7b96, 0x41f2, - 0x7b97, 0x0dd8, - 0x7b98, 0x41f3, - 0x7b9c, 0x1c8d, - 0x7b9d, 0x1c89, - 0x7b9e, 0x41f7, - 0x7ba1, 0x0735, - 0x7ba2, 0x1c8e, - 0x7ba3, 0x41fa, - 0x7ba6, 0x1c85, - 0x7ba8, 0x1c8a, - 0x7ba9, 0x0a88, - 0x7baa, 0x1c8c, - 0x7bab, 0x1c8f, - 0x7bac, 0x1c88, - 0x7bad, 0x0870, - 0x7bae, 0x41fd, - 0x7bb1, 0x0f51, - 0x7bb2, 0x4200, - 0x7bb4, 0x1c90, - 0x7bb5, 0x4202, - 0x7bb8, 0x1c87, - 0x7bb9, 0x4205, - 0x7bc0, 0x1fb3, - 0x7bc1, 0x1c92, - 0x7bc2, 0x420c, - 0x7bc4, 0x1eef, - 0x7bc5, 0x420e, - 0x7bc6, 0x120a, - 0x7bc7, 0x0bc9, - 0x7bc8, 0x420f, - 0x7bc9, 0x22a4, - 0x7bca, 0x4210, - 0x7bcb, 0x25e8, - 0x7bcc, 0x1c93, - 0x7bcd, 0x4211, - 0x7bd1, 0x1c91, - 0x7bd2, 0x4215, - 0x7bd3, 0x0a4f, - 0x7bd4, 0x4216, - 0x7bd9, 0x06d8, - 0x7bda, 0x1c95, - 0x7bdb, 0x421b, - 0x7bdd, 0x1c94, - 0x7bde, 0x421d, - 0x7be1, 0x055e, - 0x7be2, 0x4220, - 0x7be4, 0x25e3, - 0x7be5, 0x1c96, - 0x7be7, 0x4222, - 0x7be9, 0x2111, - 0x7bea, 0x1c98, - 0x7beb, 0x4224, - 0x7bee, 0x09a5, - 0x7bef, 0x4227, - 0x7bf1, 0x09d4, - 0x7bf2, 0x4229, - 0x7bf3, 0x25e6, - 0x7bf4, 0x422a, - 0x7bf7, 0x0bb2, - 0x7bf8, 0x422d, - 0x7bfc, 0x1c9b, - 0x7bfd, 0x4231, - 0x7bfe, 0x1c9a, - 0x7bff, 0x4232, - 0x7c00, 0x25e7, - 0x7c01, 0x4233, - 0x7c07, 0x055b, - 0x7c08, 0x4239, - 0x7c0b, 0x1c9e, - 0x7c0c, 0x1c99, - 0x7c0d, 0x2041, - 0x7c0e, 0x423c, - 0x7c0f, 0x1c9c, - 0x7c10, 0x423d, - 0x7c16, 0x1c9d, - 0x7c17, 0x4243, - 0x7c1e, 0x25ea, - 0x7c1f, 0x1c9f, - 0x7c20, 0x424a, - 0x7c21, 0x1f8f, - 0x7c22, 0x424b, - 0x7c23, 0x25ec, - 0x7c24, 0x424c, - 0x7c26, 0x1ca1, - 0x7c27, 0x07de, - 0x7c28, 0x424e, - 0x7c2a, 0x1ca0, - 0x7c2b, 0x25eb, - 0x7c2c, 0x4250, - 0x7c38, 0x1ca2, - 0x7c39, 0x425c, - 0x7c3d, 0x20d0, - 0x7c3e, 0x201d, - 0x7c3f, 0x0485, - 0x7c40, 0x1ca4, - 0x7c41, 0x1ca3, - 0x7c42, 0x4260, - 0x7c43, 0x1ff7, - 0x7c44, 0x4261, - 0x7c4c, 0x1e8d, - 0x7c4d, 0x0821, - 0x7c4e, 0x4269, - 0x7c5c, 0x25e9, - 0x7c5d, 0x4277, - 0x7c5f, 0x25ee, - 0x7c60, 0x203a, - 0x7c61, 0x4279, - 0x7c64, 0x2693, - 0x7c65, 0x427c, - 0x7c69, 0x25e5, - 0x7c6a, 0x25ed, - 0x7c6b, 0x4280, - 0x7c6c, 0x2009, - 0x7c6d, 0x4281, - 0x7c6e, 0x2065, - 0x7c6f, 0x4282, - 0x7c72, 0x26a3, - 0x7c73, 0x0adc, - 0x7c74, 0x12f5, - 0x7c75, 0x4285, - 0x7c7b, 0x09cb, - 0x7c7c, 0x1cca, - 0x7c7d, 0x122e, - 0x7c7e, 0x428b, - 0x7c89, 0x0678, - 0x7c8a, 0x4296, - 0x7c91, 0x1ccc, - 0x7c92, 0x09ec, - 0x7c93, 0x429d, - 0x7c95, 0x0be8, - 0x7c96, 0x429f, - 0x7c97, 0x0559, - 0x7c98, 0x1154, - 0x7c99, 0x42a0, - 0x7c9c, 0x1cce, - 0x7c9d, 0x1ccd, - 0x7c9e, 0x1ccf, - 0x7c9f, 0x0dcf, - 0x7ca0, 0x42a3, - 0x7ca2, 0x1cd0, - 0x7ca3, 0x42a5, - 0x7ca4, 0x1104, - 0x7ca5, 0x11df, - 0x7ca6, 0x42a6, - 0x7caa, 0x067d, - 0x7cab, 0x42aa, - 0x7cae, 0x0a01, - 0x7caf, 0x42ad, - 0x7cb1, 0x0a04, - 0x7cb2, 0x1cd1, - 0x7cb3, 0x08db, - 0x7cb4, 0x42af, - 0x7cb9, 0x0565, - 0x7cba, 0x42b4, - 0x7cbc, 0x1cd2, - 0x7cbe, 0x08da, - 0x7cbf, 0x42b6, - 0x7cc1, 0x1cd4, - 0x7cc2, 0x42b8, - 0x7cc5, 0x1cd9, - 0x7cc6, 0x42bb, - 0x7cc7, 0x1cd5, - 0x7cc8, 0x1cd8, - 0x7cc9, 0x42bc, - 0x7cca, 0x07b4, - 0x7ccb, 0x42bd, - 0x7ccc, 0x1cd6, - 0x7cce, 0x42be, - 0x7cd5, 0x06dd, - 0x7cd6, 0x0e1a, - 0x7cd7, 0x1cda, - 0x7cd8, 0x42c5, - 0x7cd9, 0x04a1, - 0x7cda, 0x42c6, - 0x7cdc, 0x0ad8, - 0x7cdd, 0x25f5, - 0x7cde, 0x1efc, - 0x7cdf, 0x1126, - 0x7ce0, 0x0944, - 0x7ce1, 0x42c8, - 0x7ce7, 0x2024, - 0x7ce8, 0x1cdb, - 0x7ce9, 0x42ce, - 0x7cef, 0x0b75, - 0x7cf0, 0x269b, - 0x7cf1, 0x42d4, - 0x7cf2, 0x25f3, - 0x7cf3, 0x42d5, - 0x7cf4, 0x22d9, - 0x7cf5, 0x42d6, - 0x7cf6, 0x25f4, - 0x7cf7, 0x42d7, - 0x7cf8, 0x1ce7, - 0x7cf9, 0x241b, - 0x7cfa, 0x42d8, - 0x7cfb, 0x0f22, - 0x7cfc, 0x42d9, - 0x7cfe, 0x1fc8, - 0x7cff, 0x42db, - 0x7d00, 0x1f7b, - 0x7d01, 0x42dc, - 0x7d02, 0x241d, - 0x7d03, 0x42dd, - 0x7d04, 0x224c, - 0x7d05, 0x1f48, - 0x7d06, 0x241c, - 0x7d07, 0x241e, - 0x7d09, 0x20ff, - 0x7d0a, 0x0ed8, - 0x7d0b, 0x219a, - 0x7d0c, 0x42de, - 0x7d0d, 0x2091, - 0x7d0e, 0x42df, - 0x7d10, 0x20a7, - 0x7d11, 0x42e1, - 0x7d13, 0x2423, - 0x7d14, 0x1e9b, - 0x7d15, 0x2422, - 0x7d16, 0x42e3, - 0x7d17, 0x2110, - 0x7d18, 0x42e4, - 0x7d19, 0x228d, - 0x7d1a, 0x1f71, - 0x7d1b, 0x1ef8, - 0x7d1c, 0x2421, - 0x7d1d, 0x42e5, - 0x7d20, 0x0dcd, - 0x7d21, 0x1ef3, - 0x7d22, 0x0dec, - 0x7d23, 0x42e8, - 0x7d27, 0x08c5, - 0x7d28, 0x42ec, - 0x7d2b, 0x122c, - 0x7d2c, 0x42ef, - 0x7d2f, 0x09c6, - 0x7d30, 0x21b1, - 0x7d31, 0x2426, - 0x7d32, 0x2425, - 0x7d33, 0x2120, - 0x7d34, 0x42f2, - 0x7d39, 0x211a, - 0x7d3a, 0x2424, - 0x7d3b, 0x42f7, - 0x7d3c, 0x2428, - 0x7d3d, 0x42f8, - 0x7d3f, 0x242a, - 0x7d40, 0x2429, - 0x7d41, 0x42fa, - 0x7d42, 0x2294, - 0x7d43, 0x42fb, - 0x7d44, 0x22be, - 0x7d45, 0x42fc, - 0x7d46, 0x1e31, - 0x7d47, 0x42fd, - 0x7d4e, 0x242c, - 0x7d4f, 0x4304, - 0x7d50, 0x1fb5, - 0x7d51, 0x4305, - 0x7d5d, 0x242b, - 0x7d5e, 0x1faf, - 0x7d5f, 0x4311, - 0x7d61, 0x2068, - 0x7d62, 0x21e4, - 0x7d63, 0x4313, - 0x7d66, 0x1f21, - 0x7d67, 0x4316, - 0x7d68, 0x2101, - 0x7d69, 0x4317, - 0x7d6e, 0x0fc0, - 0x7d6f, 0x431c, - 0x7d71, 0x217c, - 0x7d72, 0x214a, - 0x7d73, 0x242d, - 0x7d74, 0x431e, - 0x7d76, 0x1fd4, - 0x7d77, 0x1ce8, - 0x7d78, 0x4320, - 0x7d79, 0x1fd1, - 0x7d7a, 0x4321, - 0x7d81, 0x1e33, - 0x7d82, 0x4328, - 0x7d83, 0x242f, - 0x7d84, 0x4329, - 0x7d86, 0x242e, - 0x7d87, 0x432b, - 0x7d88, 0x2430, - 0x7d89, 0x21db, - 0x7d8a, 0x432c, - 0x7d8f, 0x2158, - 0x7d90, 0x4331, - 0x7d93, 0x1fc2, - 0x7d94, 0x4334, - 0x7d9c, 0x22b9, - 0x7d9d, 0x433c, - 0x7d9e, 0x2436, - 0x7d9f, 0x433d, - 0x7da2, 0x1e8e, - 0x7da3, 0x2439, - 0x7da4, 0x4340, - 0x7da6, 0x1ce9, - 0x7da7, 0x4342, - 0x7dab, 0x21c5, - 0x7dac, 0x2437, - 0x7dad, 0x2192, - 0x7dae, 0x1cea, - 0x7daf, 0x4346, - 0x7db0, 0x243a, - 0x7db1, 0x1f19, - 0x7db2, 0x218c, - 0x7db3, 0x1e40, - 0x7db4, 0x22b3, - 0x7db5, 0x4347, - 0x7db8, 0x205f, - 0x7db9, 0x2438, - 0x7dba, 0x2432, - 0x7dbb, 0x2274, - 0x7dbc, 0x434a, - 0x7dbd, 0x1e9c, - 0x7dbe, 0x2431, - 0x7dbf, 0x2085, - 0x7dc0, 0x434b, - 0x7dc4, 0x2435, - 0x7dc5, 0x434f, - 0x7dc7, 0x243b, - 0x7dc8, 0x4351, - 0x7dca, 0x1fb7, - 0x7dcb, 0x2433, - 0x7dcc, 0x4353, - 0x7dd1, 0x2054, - 0x7dd2, 0x21de, - 0x7dd3, 0x4358, - 0x7dd4, 0x2434, - 0x7dd5, 0x4359, - 0x7dd7, 0x243d, - 0x7dd8, 0x1f89, - 0x7dd9, 0x243c, - 0x7dda, 0x435b, - 0x7ddd, 0x1f6e, - 0x7dde, 0x1ed8, - 0x7ddf, 0x435e, - 0x7de0, 0x1ebf, - 0x7de1, 0x2445, - 0x7de2, 0x435f, - 0x7de3, 0x2249, - 0x7de4, 0x4360, - 0x7de6, 0x2441, - 0x7de7, 0x4362, - 0x7de8, 0x1e47, - 0x7de9, 0x1f56, - 0x7dea, 0x4363, - 0x7dec, 0x2086, - 0x7ded, 0x4365, - 0x7def, 0x2196, - 0x7df0, 0x4367, - 0x7df1, 0x2443, - 0x7df2, 0x243f, - 0x7df3, 0x4368, - 0x7df4, 0x2023, - 0x7df5, 0x4369, - 0x7df6, 0x2442, - 0x7df7, 0x436a, - 0x7df9, 0x243e, - 0x7dfa, 0x436c, - 0x7dfb, 0x26a6, - 0x7dfc, 0x436d, - 0x7e00, 0x4371, - 0x7e08, 0x234e, - 0x7e09, 0x2446, - 0x7e0a, 0x244b, - 0x7e0b, 0x2444, - 0x7e0c, 0x4379, - 0x7e10, 0x2427, - 0x7e11, 0x244c, - 0x7e12, 0x437d, - 0x7e1b, 0x1f0f, - 0x7e1c, 0x4386, - 0x7e1d, 0x2447, - 0x7e1e, 0x2449, - 0x7e1f, 0x2448, - 0x7e20, 0x4387, - 0x7e23, 0x21c2, - 0x7e24, 0x438a, - 0x7e27, 0x216e, - 0x7e28, 0x438d, - 0x7e2b, 0x1f03, - 0x7e2c, 0x4390, - 0x7e2d, 0x244a, - 0x7e2e, 0x215c, - 0x7e2f, 0x4391, - 0x7e31, 0x22bb, - 0x7e32, 0x2450, - 0x7e33, 0x4393, - 0x7e34, 0x2694, - 0x7e35, 0x244f, - 0x7e36, 0x25f6, - 0x7e37, 0x2051, - 0x7e38, 0x4394, - 0x7e39, 0x244e, - 0x7e3a, 0x4395, - 0x7e3b, 0x1dfb, - 0x7e3c, 0x4396, - 0x7e3d, 0x22ba, - 0x7e3e, 0x1f6d, - 0x7e3f, 0x4397, - 0x7e41, 0x064e, - 0x7e42, 0x4399, - 0x7e45, 0x2452, - 0x7e46, 0x2451, - 0x7e47, 0x1ceb, - 0x7e48, 0x439c, - 0x7e52, 0x2455, - 0x7e53, 0x43a6, - 0x7e54, 0x2289, - 0x7e55, 0x2116, - 0x7e56, 0x43a7, - 0x7e5a, 0x2454, - 0x7e5b, 0x43ab, - 0x7e5e, 0x20fb, - 0x7e5f, 0x43ae, - 0x7e62, 0x2440, - 0x7e63, 0x43b1, - 0x7e69, 0x2126, - 0x7e6a, 0x1f61, - 0x7e6b, 0x269d, - 0x7e6c, 0x43b7, - 0x7e6d, 0x1f8a, - 0x7e6e, 0x2456, - 0x7e6f, 0x2459, - 0x7e70, 0x2458, - 0x7e71, 0x43b8, - 0x7e73, 0x1fae, - 0x7e74, 0x43ba, - 0x7e79, 0x221a, - 0x7e7a, 0x43bf, - 0x7e7c, 0x1f7a, - 0x7e7d, 0x244d, - 0x7e7e, 0x2457, - 0x7e7f, 0x43c1, - 0x7e82, 0x1248, - 0x7e83, 0x43c4, - 0x7e88, 0x2453, - 0x7e89, 0x43c9, - 0x7e8a, 0x2420, - 0x7e8b, 0x43ca, - 0x7e8c, 0x21df, - 0x7e8d, 0x2685, - 0x7e8e, 0x43cb, - 0x7e8f, 0x1e6e, - 0x7e90, 0x43cc, - 0x7e93, 0x2224, - 0x7e94, 0x2670, - 0x7e95, 0x43cf, - 0x7e96, 0x21ba, - 0x7e97, 0x43d0, - 0x7e98, 0x245a, - 0x7e99, 0x43d1, - 0x7e9b, 0x1cec, - 0x7e9c, 0x1fff, - 0x7e9d, 0x43d3, - 0x7e9f, 0x17d3, - 0x7ea0, 0x08ef, - 0x7ea1, 0x17d4, - 0x7ea2, 0x07a3, - 0x7ea3, 0x17d5, - 0x7ea4, 0x0f38, - 0x7ea5, 0x17d6, - 0x7ea6, 0x10ff, - 0x7ea7, 0x0829, - 0x7ea8, 0x17d7, - 0x7eaa, 0x0840, - 0x7eab, 0x0cad, - 0x7eac, 0x0ec2, - 0x7ead, 0x17d9, - 0x7eae, 0x43d5, - 0x7eaf, 0x0542, - 0x7eb0, 0x17da, - 0x7eb1, 0x0ced, - 0x7eb2, 0x06d4, - 0x7eb3, 0x0b2c, - 0x7eb4, 0x43d6, - 0x7eb5, 0x123a, - 0x7eb6, 0x0a81, - 0x7eb7, 0x0674, - 0x7eb8, 0x11bc, - 0x7eb9, 0x0ed5, - 0x7eba, 0x0661, - 0x7ebb, 0x43d7, - 0x7ebd, 0x0b67, - 0x7ebe, 0x17db, - 0x7ebf, 0x0f4c, - 0x7ec0, 0x17dc, - 0x7ec3, 0x0a00, - 0x7ec4, 0x1246, - 0x7ec5, 0x0d29, - 0x7ec6, 0x0f25, - 0x7ec7, 0x11ae, - 0x7ec8, 0x11d4, - 0x7ec9, 0x17df, - 0x7eca, 0x03f8, - 0x7ecb, 0x17e0, - 0x7ecd, 0x0d15, - 0x7ece, 0x1076, - 0x7ecf, 0x08dc, - 0x7ed0, 0x17e2, - 0x7ed1, 0x03fe, - 0x7ed2, 0x0cb9, - 0x7ed3, 0x08b2, - 0x7ed4, 0x17e3, - 0x7ed5, 0x0ca1, - 0x7ed6, 0x43d9, - 0x7ed7, 0x17e4, - 0x7ed8, 0x07fb, - 0x7ed9, 0x06f3, - 0x7eda, 0x0fcd, - 0x7edb, 0x17e5, - 0x7edc, 0x0a8e, - 0x7edd, 0x0927, - 0x7ede, 0x089b, - 0x7edf, 0x0e64, - 0x7ee0, 0x17e6, - 0x7ee2, 0x091d, - 0x7ee3, 0x0fb0, - 0x7ee4, 0x43da, - 0x7ee5, 0x0ddc, - 0x7ee6, 0x0e23, - 0x7ee7, 0x083f, - 0x7ee8, 0x17e8, - 0x7ee9, 0x081b, - 0x7eea, 0x0fc2, - 0x7eeb, 0x17e9, - 0x7eec, 0x43db, - 0x7eed, 0x0fc3, - 0x7eee, 0x17ea, - 0x7ef0, 0x0545, - 0x7ef1, 0x17ec, - 0x7ef3, 0x0d37, - 0x7ef4, 0x0ebb, - 0x7ef5, 0x0ae5, - 0x7ef6, 0x17ef, - 0x7ef7, 0x042a, - 0x7ef8, 0x0516, - 0x7ef9, 0x43dc, - 0x7efa, 0x17f0, - 0x7efc, 0x1238, - 0x7efd, 0x1161, - 0x7efe, 0x17f2, - 0x7eff, 0x0a73, - 0x7f00, 0x1217, - 0x7f01, 0x17f3, - 0x7f04, 0x085d, - 0x7f05, 0x0aea, - 0x7f06, 0x09ad, - 0x7f07, 0x17f6, - 0x7f09, 0x081c, - 0x7f0a, 0x43dd, - 0x7f0b, 0x17f8, - 0x7f0d, 0x17ee, - 0x7f0e, 0x060f, - 0x7f0f, 0x17fa, - 0x7f10, 0x43de, - 0x7f11, 0x17fb, - 0x7f13, 0x07cf, - 0x7f14, 0x05bf, - 0x7f15, 0x0a6d, - 0x7f16, 0x0449, - 0x7f17, 0x17fd, - 0x7f18, 0x10f8, - 0x7f19, 0x17fe, - 0x7f1a, 0x06ba, - 0x7f1b, 0x1800, - 0x7f1c, 0x17ff, - 0x7f1d, 0x0689, - 0x7f1e, 0x43df, - 0x7f1f, 0x1801, - 0x7f20, 0x04bf, - 0x7f21, 0x1802, - 0x7f28, 0x108c, - 0x7f29, 0x0dea, - 0x7f2a, 0x1809, - 0x7f2e, 0x0d02, - 0x7f2f, 0x180d, - 0x7f34, 0x089a, - 0x7f35, 0x1812, - 0x7f36, 0x1c5e, - 0x7f37, 0x43e0, - 0x7f38, 0x06d2, - 0x7f39, 0x43e1, - 0x7f3a, 0x0c8c, - 0x7f3b, 0x43e2, - 0x7f42, 0x1c5f, - 0x7f43, 0x43e9, - 0x7f44, 0x1c60, - 0x7f46, 0x43ea, - 0x7f4c, 0x25e2, - 0x7f4d, 0x43f0, - 0x7f4e, 0x269a, - 0x7f4f, 0x43f1, - 0x7f50, 0x0737, - 0x7f51, 0x0ea9, - 0x7f52, 0x43f2, - 0x7f54, 0x129e, - 0x7f55, 0x0768, - 0x7f56, 0x43f4, - 0x7f57, 0x0a85, - 0x7f58, 0x1a81, - 0x7f59, 0x43f5, - 0x7f5a, 0x0640, - 0x7f5b, 0x43f6, - 0x7f5f, 0x1a83, - 0x7f60, 0x43fa, - 0x7f61, 0x1a82, - 0x7f62, 0x03e0, - 0x7f63, 0x43fb, - 0x7f68, 0x1a85, - 0x7f69, 0x1177, - 0x7f6a, 0x124c, - 0x7f6b, 0x4400, - 0x7f6e, 0x11c2, - 0x7f6f, 0x4403, - 0x7f70, 0x1eea, - 0x7f71, 0x1a87, - 0x7f72, 0x0d87, - 0x7f73, 0x4404, - 0x7f74, 0x1a86, - 0x7f75, 0x4405, - 0x7f77, 0x1e2c, - 0x7f78, 0x4407, - 0x7f79, 0x1a88, - 0x7f7a, 0x4408, - 0x7f7e, 0x1a8a, - 0x7f7f, 0x440c, - 0x7f81, 0x1a89, - 0x7f82, 0x440e, - 0x7f85, 0x2062, - 0x7f86, 0x24f1, - 0x7f87, 0x4411, - 0x7f88, 0x24f2, - 0x7f89, 0x4412, - 0x7f8a, 0x101b, - 0x7f8b, 0x4413, - 0x7f8c, 0x0c39, - 0x7f8d, 0x4414, - 0x7f8e, 0x0ac5, - 0x7f8f, 0x4415, - 0x7f94, 0x06dc, - 0x7f95, 0x441a, - 0x7f9a, 0x0a30, - 0x7f9b, 0x441f, - 0x7f9d, 0x1cc4, - 0x7f9e, 0x0faa, - 0x7f9f, 0x1cc5, - 0x7fa0, 0x4421, - 0x7fa1, 0x0f48, - 0x7fa2, 0x4422, - 0x7fa4, 0x0c95, - 0x7fa5, 0x25f2, - 0x7fa6, 0x4424, - 0x7fa7, 0x1cc6, - 0x7fa8, 0x4425, - 0x7fa9, 0x2215, - 0x7faa, 0x4426, - 0x7faf, 0x1cc7, - 0x7fb1, 0x442b, - 0x7fb2, 0x1cc9, - 0x7fb3, 0x442c, - 0x7fb8, 0x130e, - 0x7fb9, 0x06f9, - 0x7fba, 0x4431, - 0x7fbc, 0x176d, - 0x7fbd, 0x10d5, - 0x7fbe, 0x4433, - 0x7fbf, 0x1cde, - 0x7fc0, 0x4434, - 0x7fc1, 0x0edb, - 0x7fc2, 0x4435, - 0x7fc5, 0x0506, - 0x7fc6, 0x4438, - 0x7fca, 0x1b98, - 0x7fcb, 0x443c, - 0x7fcc, 0x1075, - 0x7fcd, 0x443d, - 0x7fce, 0x1cdf, - 0x7fcf, 0x443e, - 0x7fd2, 0x21ae, - 0x7fd3, 0x4441, - 0x7fd4, 0x0f55, - 0x7fd5, 0x1ce0, - 0x7fd6, 0x4442, - 0x7fd8, 0x0c49, - 0x7fd9, 0x4444, - 0x7fdf, 0x05b5, - 0x7fe0, 0x0567, - 0x7fe1, 0x1ce2, - 0x7fe2, 0x444a, - 0x7fe5, 0x1ce1, - 0x7fe6, 0x1ce3, - 0x7fe7, 0x444d, - 0x7fe9, 0x1ce4, - 0x7fea, 0x444f, - 0x7fee, 0x1ce5, - 0x7fef, 0x4453, - 0x7ff0, 0x0769, - 0x7ff1, 0x03ca, - 0x7ff2, 0x4454, - 0x7ff3, 0x1ce6, - 0x7ff4, 0x4455, - 0x7ff9, 0x20e0, - 0x7ffa, 0x445a, - 0x7ffb, 0x064a, - 0x7ffc, 0x1074, - 0x7ffd, 0x445b, - 0x8000, 0x1032, - 0x8001, 0x09ba, - 0x8002, 0x445e, - 0x8003, 0x0949, - 0x8004, 0x1953, - 0x8005, 0x1180, - 0x8006, 0x191a, - 0x8007, 0x445f, - 0x800b, 0x1bd7, - 0x800c, 0x0637, - 0x800d, 0x0d98, - 0x800e, 0x4463, - 0x8010, 0x0b30, - 0x8011, 0x4465, - 0x8012, 0x1bcb, - 0x8013, 0x4466, - 0x8014, 0x1bcc, - 0x8015, 0x06f6, - 0x8016, 0x1bcd, - 0x8017, 0x077b, - 0x8018, 0x1108, - 0x8019, 0x03dd, - 0x801a, 0x4467, - 0x801c, 0x1bce, - 0x801d, 0x4469, - 0x8020, 0x1bcf, - 0x8021, 0x446c, - 0x8022, 0x1bd0, - 0x8023, 0x446d, - 0x8025, 0x1bd1, - 0x8028, 0x1bd5, - 0x8029, 0x1bd4, - 0x802a, 0x0b96, - 0x802b, 0x446f, - 0x802c, 0x25c2, - 0x802d, 0x4470, - 0x802e, 0x25c1, - 0x802f, 0x4471, - 0x8031, 0x1bd6, - 0x8032, 0x4473, - 0x8033, 0x0639, - 0x8034, 0x4474, - 0x8035, 0x1bd8, - 0x8036, 0x1035, - 0x8037, 0x14b1, - 0x8038, 0x0dbf, - 0x8039, 0x4475, - 0x803b, 0x0501, - 0x803c, 0x4477, - 0x803d, 0x0583, - 0x803e, 0x4478, - 0x803f, 0x06fb, - 0x8040, 0x4479, - 0x8042, 0x0b57, - 0x8043, 0x1bd9, - 0x8044, 0x447b, - 0x8046, 0x1bda, - 0x8047, 0x447d, - 0x804a, 0x0a0d, - 0x804b, 0x0a44, - 0x804c, 0x11af, - 0x804d, 0x1bdb, - 0x804e, 0x4480, - 0x8052, 0x1bdc, - 0x8053, 0x4484, - 0x8054, 0x09f3, - 0x8055, 0x4485, - 0x8056, 0x2128, - 0x8057, 0x4486, - 0x8058, 0x0bd7, - 0x8059, 0x4487, - 0x805a, 0x090a, - 0x805b, 0x4488, - 0x805e, 0x2199, - 0x805f, 0x448b, - 0x8069, 0x1bdd, - 0x806a, 0x0552, - 0x806b, 0x4495, - 0x806f, 0x2017, - 0x8070, 0x1ea0, - 0x8071, 0x1bde, - 0x8072, 0x2125, - 0x8073, 0x214d, - 0x8074, 0x4499, - 0x8075, 0x25c4, - 0x8076, 0x209d, - 0x8077, 0x228a, - 0x8078, 0x449a, - 0x8079, 0x25c3, - 0x807a, 0x449b, - 0x807d, 0x2179, - 0x807e, 0x2038, - 0x807f, 0x1a1e, - 0x8080, 0x1a1d, - 0x8081, 0x449e, - 0x8083, 0x0dd5, - 0x8084, 0x1065, - 0x8085, 0x2155, - 0x8086, 0x0db6, - 0x8087, 0x1179, - 0x8088, 0x44a0, - 0x8089, 0x0cbd, - 0x808a, 0x44a1, - 0x808b, 0x09ca, - 0x808c, 0x0814, - 0x808d, 0x44a2, - 0x8093, 0x1971, - 0x8094, 0x44a8, - 0x8096, 0x0f6f, - 0x8097, 0x44aa, - 0x8098, 0x11e1, - 0x8099, 0x44ab, - 0x809a, 0x0606, - 0x809b, 0x06d3, - 0x809c, 0x1970, - 0x809d, 0x06c9, - 0x809e, 0x44ac, - 0x809f, 0x196f, - 0x80a0, 0x04cb, - 0x80a1, 0x0722, - 0x80a2, 0x11aa, - 0x80a3, 0x44ad, - 0x80a4, 0x0691, - 0x80a5, 0x0667, - 0x80a6, 0x44ae, - 0x80a9, 0x085a, - 0x80aa, 0x065b, - 0x80ab, 0x1976, - 0x80ac, 0x44b1, - 0x80ad, 0x1977, - 0x80ae, 0x03c4, - 0x80af, 0x095c, - 0x80b0, 0x44b2, - 0x80b1, 0x1975, - 0x80b2, 0x10e2, - 0x80b3, 0x44b3, - 0x80b4, 0x1978, - 0x80b5, 0x44b4, - 0x80b7, 0x1979, - 0x80b8, 0x44b6, - 0x80ba, 0x066b, - 0x80bb, 0x44b8, - 0x80bc, 0x1972, - 0x80bd, 0x1974, - 0x80be, 0x0d2f, - 0x80bf, 0x11d6, - 0x80c0, 0x116e, - 0x80c1, 0x0f7d, - 0x80c2, 0x197f, - 0x80c3, 0x0ec7, - 0x80c4, 0x1980, - 0x80c5, 0x44b9, - 0x80c6, 0x0589, - 0x80c7, 0x44ba, - 0x80cc, 0x041c, - 0x80cd, 0x1982, - 0x80ce, 0x0df8, - 0x80cf, 0x44bf, - 0x80d6, 0x0b97, - 0x80d7, 0x1983, - 0x80d8, 0x44c6, - 0x80d9, 0x1981, - 0x80da, 0x0ba0, - 0x80db, 0x197e, - 0x80dc, 0x0d3b, - 0x80dd, 0x1985, - 0x80de, 0x0406, - 0x80df, 0x44c7, - 0x80e1, 0x07b1, - 0x80e2, 0x44c9, - 0x80e4, 0x126d, - 0x80e5, 0x1bc7, - 0x80e6, 0x44cb, - 0x80e7, 0x197a, - 0x80eb, 0x1986, - 0x80ec, 0x179a, - 0x80ed, 0x1989, - 0x80ee, 0x44cc, - 0x80ef, 0x0975, - 0x80f0, 0x104f, - 0x80f1, 0x1987, - 0x80f2, 0x198c, - 0x80f3, 0x06e7, - 0x80f4, 0x1988, - 0x80f5, 0x44cd, - 0x80f6, 0x088b, - 0x80f7, 0x44ce, - 0x80f8, 0x0fa3, - 0x80f9, 0x44cf, - 0x80fa, 0x03c2, - 0x80fb, 0x44d0, - 0x80fc, 0x198d, - 0x80fd, 0x0b3f, - 0x80fe, 0x44d1, - 0x8100, 0x44d3, - 0x8102, 0x11ab, - 0x8103, 0x44d5, - 0x8105, 0x21d2, - 0x8106, 0x0563, - 0x8107, 0x44d7, - 0x8109, 0x0a9d, - 0x810a, 0x082c, - 0x810b, 0x44d9, - 0x810d, 0x198a, - 0x810f, 0x1123, - 0x8110, 0x0c09, - 0x8111, 0x0b37, - 0x8112, 0x198f, - 0x8113, 0x0b68, - 0x8114, 0x1309, - 0x8115, 0x44db, - 0x8116, 0x0478, - 0x8117, 0x44dc, - 0x8118, 0x1994, - 0x8119, 0x44dd, - 0x811a, 0x0896, - 0x811b, 0x24c7, - 0x811c, 0x44de, - 0x811e, 0x1992, - 0x811f, 0x44e0, - 0x812c, 0x1993, - 0x812d, 0x44ed, - 0x812f, 0x06a7, - 0x8130, 0x44ef, - 0x8131, 0x0e82, - 0x8132, 0x1995, - 0x8133, 0x44f0, - 0x8136, 0x1991, - 0x8137, 0x44f3, - 0x8138, 0x09fc, - 0x8139, 0x2279, - 0x813a, 0x44f4, - 0x813e, 0x0bc1, - 0x813f, 0x44f8, - 0x8146, 0x0e46, - 0x8147, 0x44ff, - 0x8148, 0x1996, - 0x8149, 0x4500, - 0x814a, 0x099b, - 0x814b, 0x103f, - 0x814c, 0x1997, - 0x814d, 0x4501, - 0x814e, 0x2123, - 0x814f, 0x4502, - 0x8150, 0x06aa, - 0x8151, 0x06a8, - 0x8152, 0x4503, - 0x8153, 0x1998, - 0x8154, 0x0c38, - 0x8155, 0x0ea4, - 0x8156, 0x24c5, - 0x8157, 0x4504, - 0x8159, 0x199a, - 0x815b, 0x4506, - 0x8160, 0x199d, - 0x8161, 0x24c9, - 0x8162, 0x450b, - 0x8165, 0x0f93, - 0x8166, 0x2094, - 0x8167, 0x19a2, - 0x8168, 0x450e, - 0x8169, 0x199e, - 0x816a, 0x450f, - 0x816b, 0x2296, - 0x816c, 0x4510, - 0x816d, 0x19a1, - 0x816e, 0x0cd4, - 0x816f, 0x4511, - 0x8170, 0x1025, - 0x8171, 0x199c, - 0x8172, 0x4512, - 0x8174, 0x1999, - 0x8175, 0x4514, - 0x8178, 0x1e77, - 0x8179, 0x06b4, - 0x817a, 0x0f46, - 0x817b, 0x0b48, - 0x817c, 0x199f, - 0x817e, 0x0e2d, - 0x817f, 0x0e79, - 0x8180, 0x03fd, - 0x8181, 0x4517, - 0x8182, 0x19a6, - 0x8183, 0x4518, - 0x8188, 0x19a5, - 0x8189, 0x451d, - 0x818a, 0x0479, - 0x818b, 0x451e, - 0x818f, 0x06db, - 0x8190, 0x4522, - 0x8191, 0x19a7, - 0x8192, 0x4523, - 0x8198, 0x0455, - 0x8199, 0x4529, - 0x819a, 0x1f06, - 0x819b, 0x0e18, - 0x819c, 0x0b07, - 0x819d, 0x0f12, - 0x819e, 0x452a, - 0x81a0, 0x1fa5, - 0x81a1, 0x452c, - 0x81a3, 0x19a9, - 0x81a4, 0x452e, - 0x81a6, 0x19b0, - 0x81a7, 0x4530, - 0x81a8, 0x0bb3, - 0x81a9, 0x2099, - 0x81aa, 0x19aa, - 0x81ab, 0x4531, - 0x81b3, 0x0cfe, - 0x81b4, 0x4539, - 0x81ba, 0x1641, - 0x81bb, 0x19ae, - 0x81bc, 0x453f, - 0x81bd, 0x1ead, - 0x81be, 0x24c8, - 0x81bf, 0x20a8, - 0x81c0, 0x0e7f, - 0x81c1, 0x19af, - 0x81c2, 0x0444, - 0x81c3, 0x109c, - 0x81c4, 0x4540, - 0x81c6, 0x1063, - 0x81c7, 0x4542, - 0x81c9, 0x201f, - 0x81ca, 0x19ad, - 0x81cb, 0x4544, - 0x81cc, 0x19ab, - 0x81cd, 0x20c5, - 0x81ce, 0x4545, - 0x81cf, 0x24ca, - 0x81d0, 0x4546, - 0x81d8, 0x1ff0, - 0x81d9, 0x454e, - 0x81da, 0x24c6, - 0x81db, 0x454f, - 0x81df, 0x225d, - 0x81e0, 0x22de, - 0x81e1, 0x4553, - 0x81e3, 0x04e1, - 0x81e4, 0x4555, - 0x81e7, 0x1902, - 0x81e8, 0x202c, - 0x81e9, 0x4558, - 0x81ea, 0x1231, - 0x81eb, 0x4559, - 0x81ec, 0x1ca9, - 0x81ed, 0x0519, - 0x81ee, 0x455a, - 0x81f3, 0x11c0, - 0x81f5, 0x455f, - 0x81fa, 0x2161, - 0x81fb, 0x118a, - 0x81fc, 0x08f9, - 0x81fd, 0x4564, - 0x81fe, 0x1ca5, - 0x81ff, 0x4565, - 0x8200, 0x102f, - 0x8201, 0x1ca6, - 0x8203, 0x4566, - 0x8204, 0x1ca8, - 0x8205, 0x08fa, - 0x8206, 0x10c4, - 0x8207, 0x223b, - 0x8208, 0x21d9, - 0x8209, 0x1fcb, - 0x820a, 0x1fc9, - 0x820b, 0x4567, - 0x820c, 0x0d19, - 0x820e, 0x4568, - 0x8210, 0x1c62, - 0x8211, 0x456a, - 0x8212, 0x0d7d, - 0x8213, 0x456b, - 0x8214, 0x0e45, - 0x8215, 0x456c, - 0x821b, 0x1618, - 0x821c, 0x0da9, - 0x821d, 0x4572, - 0x821e, 0x0ef7, - 0x821f, 0x11da, - 0x8220, 0x4573, - 0x8221, 0x1cab, - 0x8224, 0x4574, - 0x8228, 0x1cb0, - 0x8229, 0x4578, - 0x822a, 0x0774, - 0x822b, 0x1cb1, - 0x822c, 0x03ee, - 0x822d, 0x1cae, - 0x822e, 0x4579, - 0x822f, 0x1caf, - 0x8230, 0x0873, - 0x8231, 0x049c, - 0x8232, 0x457a, - 0x8233, 0x1cb4, - 0x8235, 0x0625, - 0x8236, 0x0477, - 0x8237, 0x0f3c, - 0x8238, 0x1cb2, - 0x8239, 0x052f, - 0x823a, 0x457b, - 0x823b, 0x1cb3, - 0x823c, 0x457c, - 0x823e, 0x1cb6, - 0x823f, 0x457e, - 0x8244, 0x1cb7, - 0x8245, 0x4583, - 0x8247, 0x0e58, - 0x8248, 0x4585, - 0x8249, 0x1cb8, - 0x824a, 0x4586, - 0x824b, 0x1cb9, - 0x824c, 0x4587, - 0x824f, 0x1cba, - 0x8250, 0x458a, - 0x8258, 0x0dc7, - 0x8259, 0x1e61, - 0x825a, 0x1cbb, - 0x825b, 0x4592, - 0x825f, 0x1cbc, - 0x8260, 0x4596, - 0x8264, 0x25ef, - 0x8265, 0x459a, - 0x8266, 0x1f98, - 0x8267, 0x459b, - 0x8268, 0x1cbd, - 0x8269, 0x459c, - 0x826b, 0x25f0, - 0x826c, 0x459e, - 0x826e, 0x1cdc, - 0x826f, 0x0a05, - 0x8270, 0x085b, - 0x8271, 0x1f88, - 0x8272, 0x0ce4, - 0x8273, 0x1007, - 0x8274, 0x1771, - 0x8275, 0x45a0, - 0x8277, 0x21f8, - 0x8278, 0x45a2, - 0x8279, 0x13e1, - 0x827a, 0x105c, - 0x827b, 0x45a3, - 0x827d, 0x13e2, - 0x827e, 0x03b7, - 0x827f, 0x13e3, - 0x8280, 0x45a5, - 0x8282, 0x08ab, - 0x8283, 0x45a7, - 0x8284, 0x13e7, - 0x8285, 0x45a8, - 0x8288, 0x1278, - 0x8289, 0x45ab, - 0x828a, 0x13e5, - 0x828b, 0x10d8, - 0x828c, 0x45ac, - 0x828d, 0x0d0f, - 0x828e, 0x13e8, - 0x828f, 0x13e4, - 0x8290, 0x45ad, - 0x8291, 0x13e9, - 0x8292, 0x0aa7, - 0x8293, 0x45ae, - 0x8297, 0x13ea, - 0x8298, 0x13f3, - 0x8299, 0x13eb, - 0x829a, 0x45b2, - 0x829c, 0x0eee, - 0x829d, 0x11a4, - 0x829e, 0x45b4, - 0x829f, 0x13fd, - 0x82a0, 0x45b5, - 0x82a1, 0x13fb, - 0x82a2, 0x45b6, - 0x82a4, 0x1400, - 0x82a5, 0x08b7, - 0x82a6, 0x0a52, - 0x82a7, 0x45b8, - 0x82a8, 0x13e6, - 0x82a9, 0x13f9, - 0x82aa, 0x13fc, - 0x82ab, 0x13ec, - 0x82ac, 0x066f, - 0x82ad, 0x03d0, - 0x82ae, 0x13f5, - 0x82af, 0x0f89, - 0x82b0, 0x13ef, - 0x82b1, 0x07bd, - 0x82b2, 0x45b9, - 0x82b3, 0x0659, - 0x82b4, 0x13fa, - 0x82b5, 0x45ba, - 0x82b7, 0x13f4, - 0x82b8, 0x13ed, - 0x82b9, 0x0c58, - 0x82ba, 0x45bc, - 0x82bb, 0x2322, - 0x82bc, 0x45bd, - 0x82bd, 0x0fe8, - 0x82be, 0x13ee, - 0x82bf, 0x45be, - 0x82c1, 0x13f8, - 0x82c2, 0x45c0, - 0x82c4, 0x13fe, - 0x82c5, 0x45c2, - 0x82c7, 0x0ebc, - 0x82c8, 0x13f0, - 0x82c9, 0x45c4, - 0x82ca, 0x13f1, - 0x82cb, 0x13f6, - 0x82cd, 0x049b, - 0x82ce, 0x13ff, - 0x82cf, 0x0dca, - 0x82d0, 0x45c5, - 0x82d1, 0x10fa, - 0x82d2, 0x1409, - 0x82d3, 0x140d, - 0x82d4, 0x0df9, - 0x82d5, 0x1414, - 0x82d6, 0x45c6, - 0x82d7, 0x0aec, - 0x82d8, 0x140a, - 0x82d9, 0x45c7, - 0x82db, 0x094e, - 0x82dc, 0x1407, - 0x82dd, 0x45c9, - 0x82de, 0x0405, - 0x82df, 0x070f, - 0x82e0, 0x1413, - 0x82e1, 0x1401, - 0x82e2, 0x45ca, - 0x82e3, 0x13f2, - 0x82e4, 0x1404, - 0x82e5, 0x0ccf, - 0x82e6, 0x096d, - 0x82e7, 0x2336, - 0x82e8, 0x45cb, - 0x82eb, 0x0cf4, - 0x82ec, 0x45ce, - 0x82ef, 0x0426, - 0x82f0, 0x45d1, - 0x82f1, 0x1087, - 0x82f2, 0x45d2, - 0x82f4, 0x1408, - 0x82f5, 0x45d4, - 0x82f7, 0x1403, - 0x82f8, 0x45d6, - 0x82f9, 0x0bda, - 0x82fa, 0x45d7, - 0x82fb, 0x140c, - 0x82fc, 0x45d8, - 0x8300, 0x45dc, - 0x8301, 0x121f, - 0x8302, 0x0ab4, - 0x8303, 0x0653, - 0x8304, 0x0c4e, - 0x8305, 0x0aae, - 0x8306, 0x1410, - 0x8307, 0x1406, - 0x8308, 0x1419, - 0x8309, 0x1402, - 0x830a, 0x45dd, - 0x830c, 0x140b, - 0x830d, 0x45df, - 0x830e, 0x08d4, - 0x830f, 0x1405, - 0x8310, 0x45e0, - 0x8311, 0x140e, - 0x8312, 0x45e1, - 0x8314, 0x1411, - 0x8316, 0x45e3, - 0x8317, 0x1426, - 0x8318, 0x45e4, - 0x831a, 0x140f, - 0x831b, 0x142e, - 0x831c, 0x1415, - 0x831d, 0x45e6, - 0x8327, 0x085e, - 0x8328, 0x0547, - 0x8329, 0x45f0, - 0x832b, 0x0aa8, - 0x832c, 0x04ae, - 0x832d, 0x1428, - 0x832e, 0x45f2, - 0x832f, 0x1420, - 0x8330, 0x45f3, - 0x8331, 0x141d, - 0x8332, 0x45f4, - 0x8333, 0x142a, - 0x8334, 0x141c, - 0x8335, 0x1077, - 0x8336, 0x04af, - 0x8337, 0x45f5, - 0x8338, 0x0cb2, - 0x8339, 0x0cbe, - 0x833a, 0x1429, - 0x833b, 0x45f6, - 0x833c, 0x141b, - 0x833d, 0x45f7, - 0x8340, 0x1425, - 0x8341, 0x45fa, - 0x8343, 0x1423, - 0x8344, 0x45fc, - 0x8346, 0x08d2, - 0x8347, 0x1422, - 0x8348, 0x45fe, - 0x8349, 0x04a4, - 0x834a, 0x45ff, - 0x834f, 0x1421, - 0x8350, 0x0869, - 0x8351, 0x1416, - 0x8352, 0x07d9, - 0x8353, 0x4604, - 0x8354, 0x09de, - 0x8355, 0x4605, - 0x835a, 0x0847, - 0x835b, 0x1417, - 0x835d, 0x460a, - 0x835e, 0x141f, - 0x835f, 0x1424, - 0x8360, 0x1427, - 0x8361, 0x0595, - 0x8362, 0x460b, - 0x8363, 0x0cb4, - 0x8364, 0x07fc, - 0x8365, 0x142c, - 0x8366, 0x142b, - 0x8367, 0x1090, - 0x8368, 0x142d, - 0x8369, 0x142f, - 0x836a, 0x1431, - 0x836b, 0x1078, - 0x836c, 0x1430, - 0x836d, 0x1432, - 0x836f, 0x1030, - 0x8370, 0x460c, - 0x8377, 0x0780, - 0x8378, 0x1435, - 0x8379, 0x4613, - 0x837b, 0x1442, - 0x837c, 0x143d, - 0x837d, 0x1440, - 0x837e, 0x4615, - 0x8385, 0x143c, - 0x8386, 0x0bed, - 0x8387, 0x461c, - 0x8389, 0x09dd, - 0x838a, 0x22ab, - 0x838b, 0x461e, - 0x838e, 0x0ce8, - 0x838f, 0x4621, - 0x8392, 0x141a, - 0x8393, 0x143a, - 0x8394, 0x4624, - 0x8396, 0x1fbf, - 0x8397, 0x4626, - 0x8398, 0x1443, - 0x8399, 0x4627, - 0x839b, 0x141e, - 0x839c, 0x143b, - 0x839d, 0x4629, - 0x839e, 0x1444, - 0x839f, 0x462a, - 0x83a0, 0x1438, - 0x83a1, 0x462b, - 0x83a2, 0x1f7d, - 0x83a3, 0x462c, - 0x83a7, 0x2333, - 0x83a8, 0x1445, - 0x83a9, 0x143f, - 0x83aa, 0x1439, - 0x83ab, 0x0b0d, - 0x83ac, 0x4630, - 0x83b0, 0x1434, - 0x83b1, 0x099e, - 0x83b2, 0x09f4, - 0x83b3, 0x1436, - 0x83b5, 0x4634, - 0x83b6, 0x143e, - 0x83b7, 0x0806, - 0x83b8, 0x1441, - 0x83b9, 0x108d, - 0x83ba, 0x1446, - 0x83bb, 0x4635, - 0x83bc, 0x1447, - 0x83bd, 0x0aac, - 0x83be, 0x4636, - 0x83c0, 0x145e, - 0x83c1, 0x1448, - 0x83c2, 0x4638, - 0x83c5, 0x145d, - 0x83c6, 0x463b, - 0x83c7, 0x0716, - 0x83c8, 0x463c, - 0x83ca, 0x0904, - 0x83cb, 0x463e, - 0x83cc, 0x0929, - 0x83cd, 0x463f, - 0x83cf, 0x0781, - 0x83d0, 0x4641, - 0x83d4, 0x1456, - 0x83d5, 0x4645, - 0x83d6, 0x1451, - 0x83d7, 0x4646, - 0x83d8, 0x144b, - 0x83d9, 0x4647, - 0x83dc, 0x0492, - 0x83dd, 0x144f, - 0x83de, 0x464a, - 0x83df, 0x1457, - 0x83e0, 0x046b, - 0x83e1, 0x1461, - 0x83e2, 0x464b, - 0x83e5, 0x144a, - 0x83e6, 0x464e, - 0x83e9, 0x0bef, - 0x83ea, 0x145c, - 0x83eb, 0x4651, - 0x83ef, 0x1f4d, - 0x83f0, 0x1460, - 0x83f1, 0x0a2b, - 0x83f2, 0x0663, - 0x83f3, 0x4655, - 0x83f8, 0x145a, - 0x83fa, 0x465a, - 0x83fd, 0x1450, - 0x83fe, 0x465d, - 0x8400, 0x465f, - 0x8401, 0x1449, - 0x8402, 0x4660, - 0x8403, 0x1459, - 0x8404, 0x0e24, - 0x8405, 0x4661, - 0x8406, 0x1455, - 0x8407, 0x2334, - 0x8408, 0x4662, - 0x840a, 0x1ff1, - 0x840b, 0x144e, - 0x840c, 0x0acd, - 0x840d, 0x0bdb, - 0x840e, 0x0ebd, - 0x840f, 0x1458, - 0x8410, 0x4664, - 0x8411, 0x1454, - 0x8412, 0x4665, - 0x8418, 0x144d, - 0x8419, 0x466b, - 0x841c, 0x1452, - 0x841d, 0x0a83, - 0x841e, 0x466e, - 0x8424, 0x108e, - 0x8426, 0x145f, - 0x8427, 0x0f61, - 0x8428, 0x0cd3, - 0x8429, 0x4674, - 0x842c, 0x218b, - 0x842d, 0x4677, - 0x8431, 0x1472, - 0x8432, 0x467b, - 0x8435, 0x2349, - 0x8436, 0x467e, - 0x8438, 0x1453, - 0x8439, 0x4680, - 0x843c, 0x146c, - 0x843d, 0x0a8b, - 0x843e, 0x4683, - 0x8446, 0x146d, - 0x8447, 0x468b, - 0x8449, 0x220b, - 0x844a, 0x468d, - 0x8451, 0x1463, - 0x8452, 0x2346, - 0x8453, 0x4694, - 0x8457, 0x11f7, - 0x8458, 0x4698, - 0x8459, 0x1465, - 0x845a, 0x1464, - 0x845b, 0x06eb, - 0x845c, 0x1462, - 0x845d, 0x4699, - 0x8461, 0x0bee, - 0x8462, 0x469d, - 0x8463, 0x05ec, - 0x8464, 0x2347, - 0x8465, 0x469e, - 0x8466, 0x2193, - 0x8467, 0x469f, - 0x8469, 0x146e, - 0x846a, 0x46a1, - 0x846b, 0x07b0, - 0x846c, 0x1124, - 0x846d, 0x1473, - 0x846e, 0x46a2, - 0x846f, 0x26a1, - 0x8470, 0x46a3, - 0x8471, 0x0553, - 0x8472, 0x46a4, - 0x8473, 0x1466, - 0x8474, 0x46a5, - 0x8475, 0x0988, - 0x8476, 0x146f, - 0x8477, 0x1f62, - 0x8478, 0x146b, - 0x8479, 0x46a6, - 0x847a, 0x1469, - 0x847b, 0x46a7, - 0x8482, 0x05ba, - 0x8483, 0x46ae, - 0x8487, 0x1467, - 0x8489, 0x146a, - 0x848a, 0x46b2, - 0x848b, 0x0880, - 0x848c, 0x1470, - 0x848d, 0x46b3, - 0x848e, 0x1471, - 0x848f, 0x46b4, - 0x8493, 0x234d, - 0x8494, 0x2348, - 0x8495, 0x46b8, - 0x8497, 0x1481, - 0x8498, 0x46ba, - 0x8499, 0x0ace, - 0x849a, 0x46bb, - 0x849c, 0x0dd7, - 0x849d, 0x46bd, - 0x84a1, 0x147e, - 0x84a2, 0x46c1, - 0x84af, 0x1297, - 0x84b0, 0x46ce, - 0x84b2, 0x0bf0, - 0x84b3, 0x46d0, - 0x84b4, 0x1480, - 0x84b5, 0x46d1, - 0x84b8, 0x1195, - 0x84b9, 0x147f, - 0x84ba, 0x147c, - 0x84bb, 0x46d4, - 0x84bc, 0x1e60, - 0x84bd, 0x1478, - 0x84be, 0x46d5, - 0x84bf, 0x147b, - 0x84c0, 0x2345, - 0x84c1, 0x1474, - 0x84c2, 0x46d6, - 0x84c4, 0x0fb9, - 0x84c5, 0x46d8, - 0x84c9, 0x0cb3, - 0x84ca, 0x147a, - 0x84cb, 0x1f12, - 0x84cc, 0x46dc, - 0x84cd, 0x1475, - 0x84ce, 0x46dd, - 0x84d0, 0x1476, - 0x84d1, 0x0de7, - 0x84d2, 0x46df, - 0x84d3, 0x1479, - 0x84d4, 0x46e0, - 0x84d6, 0x0436, - 0x84d7, 0x46e2, - 0x84dd, 0x09a1, - 0x84de, 0x46e8, - 0x84df, 0x082e, - 0x84e0, 0x147d, - 0x84e1, 0x46e9, - 0x84e3, 0x1483, - 0x84e4, 0x46eb, - 0x84e5, 0x1482, - 0x84e6, 0x1477, - 0x84e7, 0x46ec, - 0x84ec, 0x0baf, - 0x84ed, 0x46f1, - 0x84ee, 0x2018, - 0x84ef, 0x2335, - 0x84f0, 0x1487, - 0x84f1, 0x46f2, - 0x84fc, 0x148e, - 0x84fd, 0x233c, - 0x84fe, 0x46fd, - 0x84ff, 0x148d, - 0x8500, 0x46fe, - 0x850c, 0x1484, - 0x850d, 0x470a, - 0x8511, 0x0af4, - 0x8512, 0x470e, - 0x8513, 0x0aa2, - 0x8514, 0x266f, - 0x8515, 0x470f, - 0x8517, 0x1182, - 0x8518, 0x4711, - 0x851a, 0x0ec4, - 0x851b, 0x4713, - 0x851e, 0x2351, - 0x851f, 0x1489, - 0x8520, 0x4716, - 0x8521, 0x0493, - 0x8522, 0x4717, - 0x8523, 0x1fa0, - 0x8524, 0x4718, - 0x8526, 0x2338, - 0x8527, 0x471a, - 0x852b, 0x0b4b, - 0x852c, 0x0d76, - 0x852d, 0x221b, - 0x852e, 0x471e, - 0x8537, 0x0c3b, - 0x8538, 0x1486, - 0x8539, 0x1488, - 0x853a, 0x148a, - 0x853b, 0x148c, - 0x853c, 0x03b5, - 0x853d, 0x0437, - 0x853e, 0x4727, - 0x8541, 0x2342, - 0x8542, 0x472a, - 0x8543, 0x1496, - 0x8544, 0x472b, - 0x8546, 0x234f, - 0x8547, 0x472d, - 0x8548, 0x1490, - 0x8549, 0x0887, - 0x854a, 0x0cca, - 0x854b, 0x472e, - 0x854e, 0x233d, - 0x854f, 0x4731, - 0x8552, 0x2344, - 0x8553, 0x2331, - 0x8554, 0x4734, - 0x8555, 0x234b, - 0x8556, 0x148b, - 0x8557, 0x4735, - 0x8558, 0x233b, - 0x8559, 0x148f, - 0x855a, 0x4736, - 0x855e, 0x1493, - 0x855f, 0x473a, - 0x8562, 0x2350, - 0x8563, 0x473d, - 0x8564, 0x1492, - 0x8565, 0x473e, - 0x8568, 0x1491, - 0x8569, 0x1eb4, - 0x856a, 0x21a6, - 0x856b, 0x4741, - 0x856d, 0x21cb, - 0x856e, 0x4743, - 0x8572, 0x1497, - 0x8573, 0x4747, - 0x8574, 0x110f, - 0x8575, 0x4748, - 0x8577, 0x2355, - 0x8578, 0x474a, - 0x8579, 0x149d, - 0x857a, 0x1494, - 0x857b, 0x1498, - 0x857c, 0x474b, - 0x857e, 0x09c4, - 0x857f, 0x474d, - 0x8584, 0x040a, - 0x8585, 0x14a0, - 0x8586, 0x4752, - 0x8587, 0x149b, - 0x8588, 0x233e, - 0x8589, 0x4753, - 0x858a, 0x1f74, - 0x858b, 0x4754, - 0x858c, 0x2330, - 0x858d, 0x4755, - 0x858f, 0x149c, - 0x8590, 0x4757, - 0x8591, 0x2680, - 0x8592, 0x4758, - 0x8594, 0x20da, - 0x8595, 0x475a, - 0x859b, 0x0fcf, - 0x859c, 0x149f, - 0x859d, 0x4760, - 0x859f, 0x234a, - 0x85a0, 0x4762, - 0x85a4, 0x1499, - 0x85a5, 0x4766, - 0x85a6, 0x1f91, - 0x85a7, 0x4767, - 0x85a8, 0x149a, - 0x85a9, 0x2107, - 0x85aa, 0x0f88, - 0x85ab, 0x4768, - 0x85ae, 0x149e, - 0x85af, 0x0d84, - 0x85b0, 0x14a3, - 0x85b1, 0x476b, - 0x85b7, 0x14a2, - 0x85b8, 0x4771, - 0x85b9, 0x14a1, - 0x85ba, 0x233f, - 0x85bb, 0x4772, - 0x85c1, 0x14a5, - 0x85c2, 0x4778, - 0x85c9, 0x08b6, - 0x85ca, 0x477f, - 0x85cd, 0x1ff4, - 0x85ce, 0x2343, - 0x85cf, 0x049f, - 0x85d0, 0x0aef, - 0x85d1, 0x4782, - 0x85d3, 0x14a4, - 0x85d4, 0x4784, - 0x85d5, 0x0b7b, - 0x85d6, 0x4785, - 0x85dc, 0x14a6, - 0x85dd, 0x2212, - 0x85de, 0x478b, - 0x85e4, 0x0e2c, - 0x85e5, 0x2207, - 0x85e6, 0x4791, - 0x85e9, 0x0647, - 0x85ea, 0x2359, - 0x85eb, 0x4794, - 0x85f4, 0x2254, - 0x85f5, 0x479d, - 0x85f6, 0x2332, - 0x85f7, 0x479e, - 0x85f9, 0x1e26, - 0x85fa, 0x2357, - 0x85fb, 0x1128, - 0x85fc, 0x47a0, - 0x85ff, 0x14a7, - 0x8600, 0x47a3, - 0x8604, 0x2358, - 0x8605, 0x14a9, - 0x8606, 0x2042, - 0x8607, 0x2153, - 0x8608, 0x47a7, - 0x860b, 0x20bb, - 0x860c, 0x47aa, - 0x8611, 0x0b05, - 0x8612, 0x47af, - 0x8616, 0x14ab, - 0x8617, 0x47b3, - 0x861a, 0x235a, - 0x861b, 0x47b6, - 0x861e, 0x2356, - 0x861f, 0x47b9, - 0x8622, 0x2337, - 0x8623, 0x47bc, - 0x8627, 0x14a8, - 0x8628, 0x47c0, - 0x8629, 0x14aa, - 0x862a, 0x47c1, - 0x862d, 0x1ff9, - 0x862e, 0x47c4, - 0x8638, 0x115b, - 0x8639, 0x47ce, - 0x863a, 0x2353, - 0x863b, 0x47cf, - 0x863c, 0x14ac, - 0x863d, 0x47d0, - 0x863f, 0x2061, - 0x8640, 0x47d2, - 0x864d, 0x1bf0, - 0x864e, 0x07b7, - 0x864f, 0x0a59, - 0x8650, 0x0b71, - 0x8651, 0x0a6e, - 0x8652, 0x47df, - 0x8654, 0x1bf1, - 0x8655, 0x1e95, - 0x8656, 0x47e1, - 0x865a, 0x0fb4, - 0x865b, 0x47e5, - 0x865c, 0x2049, - 0x865d, 0x47e6, - 0x865e, 0x10c2, - 0x865f, 0x1f42, - 0x8660, 0x47e7, - 0x8662, 0x196d, - 0x8663, 0x47e9, - 0x8667, 0x1fe8, - 0x8668, 0x47ed, - 0x866b, 0x050b, - 0x866c, 0x1bf2, - 0x866d, 0x47f0, - 0x866e, 0x1bf3, - 0x866f, 0x47f1, - 0x8671, 0x0d44, - 0x8672, 0x47f3, - 0x8679, 0x079e, - 0x867a, 0x1bf5, - 0x867b, 0x1bf7, - 0x867c, 0x1bf6, - 0x867d, 0x0dd9, - 0x867e, 0x0f27, - 0x867f, 0x1bf4, - 0x8680, 0x0d4b, - 0x8681, 0x1056, - 0x8682, 0x0a93, - 0x8683, 0x47fa, - 0x868a, 0x0ed2, - 0x868b, 0x1bfa, - 0x868c, 0x0401, - 0x868d, 0x1bf9, - 0x868e, 0x4801, - 0x8693, 0x1c00, - 0x8694, 0x4806, - 0x8695, 0x0496, - 0x8696, 0x4807, - 0x869c, 0x0fea, - 0x869d, 0x1bfc, - 0x869e, 0x480d, - 0x86a3, 0x1bfe, - 0x86a4, 0x112c, - 0x86a5, 0x4812, - 0x86a7, 0x1bfd, - 0x86a8, 0x1bf8, - 0x86a9, 0x1c01, - 0x86aa, 0x1bff, - 0x86ab, 0x4814, - 0x86ac, 0x1bfb, - 0x86ad, 0x4815, - 0x86af, 0x1c09, - 0x86b0, 0x1c06, - 0x86b1, 0x1c08, - 0x86b2, 0x4817, - 0x86b4, 0x1c0c, - 0x86b5, 0x1c04, - 0x86b6, 0x1c02, - 0x86b7, 0x4819, - 0x86ba, 0x1c07, - 0x86bb, 0x481c, - 0x86c0, 0x11fa, - 0x86c1, 0x4821, - 0x86c4, 0x1c03, - 0x86c5, 0x4824, - 0x86c6, 0x0c76, - 0x86c7, 0x0d18, - 0x86c8, 0x4825, - 0x86c9, 0x1c0a, - 0x86ca, 0x071f, - 0x86cb, 0x0591, - 0x86cc, 0x4826, - 0x86ce, 0x1c05, - 0x86cf, 0x1c0b, - 0x86d0, 0x1c12, - 0x86d1, 0x1c18, - 0x86d2, 0x4828, - 0x86d4, 0x07ec, - 0x86d5, 0x482a, - 0x86d8, 0x1c17, - 0x86d9, 0x0e8d, - 0x86da, 0x482d, - 0x86db, 0x11ea, - 0x86dc, 0x482e, - 0x86de, 0x1c14, - 0x86df, 0x1c16, - 0x86e0, 0x4830, - 0x86e4, 0x06ed, - 0x86e5, 0x4834, - 0x86e9, 0x1c0d, - 0x86ea, 0x4838, - 0x86ed, 0x1c10, - 0x86ee, 0x0aa0, - 0x86ef, 0x483b, - 0x86f0, 0x117e, - 0x86f1, 0x1c0e, - 0x86f3, 0x1c11, - 0x86f4, 0x1c15, - 0x86f5, 0x483c, - 0x86f8, 0x1c1b, - 0x86f9, 0x10a1, - 0x86fa, 0x25da, - 0x86fb, 0x483f, - 0x86fe, 0x0629, - 0x86ff, 0x4842, - 0x8700, 0x0d88, - 0x8701, 0x4843, - 0x8702, 0x0681, - 0x8703, 0x1c19, - 0x8704, 0x4844, - 0x8706, 0x25d7, - 0x8707, 0x1c1a, - 0x8708, 0x1c1c, - 0x8709, 0x1c1f, - 0x870a, 0x1c1d, - 0x870b, 0x4846, - 0x870d, 0x1c1e, - 0x870e, 0x4848, - 0x8712, 0x0ffa, - 0x8713, 0x1c13, - 0x8714, 0x484c, - 0x8715, 0x0e7a, - 0x8716, 0x484d, - 0x8717, 0x0ede, - 0x8718, 0x11a8, - 0x8719, 0x484e, - 0x871a, 0x1c25, - 0x871b, 0x484f, - 0x871c, 0x0ae0, - 0x871d, 0x4850, - 0x871e, 0x1c22, - 0x871f, 0x4851, - 0x8721, 0x099a, - 0x8722, 0x1c2e, - 0x8723, 0x1c20, - 0x8724, 0x4853, - 0x8725, 0x1c23, - 0x8726, 0x4854, - 0x8729, 0x1c2a, - 0x872a, 0x4857, - 0x872e, 0x1c24, - 0x872f, 0x485b, - 0x8731, 0x1c29, - 0x8732, 0x485d, - 0x8734, 0x1c28, - 0x8735, 0x485f, - 0x8737, 0x1c2b, - 0x8738, 0x4861, - 0x873b, 0x1c21, - 0x873c, 0x4864, - 0x873e, 0x1c26, - 0x873f, 0x1c2c, - 0x8740, 0x4866, - 0x8747, 0x1091, - 0x8748, 0x1c27, - 0x8749, 0x04bc, - 0x874a, 0x486d, - 0x874c, 0x1c34, - 0x874d, 0x486f, - 0x874e, 0x0f76, - 0x874f, 0x4870, - 0x8753, 0x1c37, - 0x8754, 0x4874, - 0x8755, 0x212e, - 0x8756, 0x4875, - 0x8757, 0x07dd, - 0x8758, 0x4876, - 0x8759, 0x1c3b, - 0x875a, 0x4877, - 0x8760, 0x1c32, - 0x8761, 0x487d, - 0x8763, 0x1c38, - 0x8764, 0x1c3a, - 0x8765, 0x1c3c, - 0x8766, 0x21b2, - 0x8767, 0x487f, - 0x876e, 0x1c35, - 0x876f, 0x4886, - 0x8770, 0x1c33, - 0x8771, 0x4887, - 0x8774, 0x07b2, - 0x8775, 0x488a, - 0x8776, 0x05dc, - 0x8777, 0x488b, - 0x8778, 0x219e, - 0x8779, 0x488c, - 0x877b, 0x1c31, - 0x877c, 0x1c39, - 0x877d, 0x1c2f, - 0x877f, 0x488e, - 0x8782, 0x1c2d, - 0x8783, 0x1c46, - 0x8784, 0x25dc, - 0x8785, 0x1c43, - 0x8786, 0x4891, - 0x8788, 0x1c42, - 0x8789, 0x4893, - 0x878b, 0x1c36, - 0x878c, 0x4895, - 0x878d, 0x0cb5, - 0x878e, 0x4896, - 0x8793, 0x1c3d, - 0x8794, 0x489b, - 0x8797, 0x1c45, - 0x8798, 0x489e, - 0x879e, 0x206c, - 0x879f, 0x0afd, - 0x87a0, 0x48a4, - 0x87a2, 0x2226, - 0x87a3, 0x48a6, - 0x87a8, 0x1c3f, - 0x87a9, 0x48ab, - 0x87ab, 0x1c47, - 0x87ac, 0x1c49, - 0x87ad, 0x1c44, - 0x87ae, 0x48ad, - 0x87af, 0x1c3e, - 0x87b0, 0x48ae, - 0x87b3, 0x1c4b, - 0x87b4, 0x48b1, - 0x87b5, 0x1c4a, - 0x87b6, 0x48b2, - 0x87ba, 0x0a84, - 0x87bb, 0x25e0, - 0x87bc, 0x48b6, - 0x87bd, 0x1c4e, - 0x87be, 0x48b7, - 0x87c0, 0x1c50, - 0x87c1, 0x48b9, - 0x87c4, 0x227b, - 0x87c5, 0x48bc, - 0x87c6, 0x1c41, - 0x87c7, 0x48bd, - 0x87c8, 0x25de, - 0x87c9, 0x48be, - 0x87ca, 0x1c51, - 0x87cb, 0x1c4c, - 0x87cc, 0x48bf, - 0x87ce, 0x25e1, - 0x87cf, 0x48c1, - 0x87d1, 0x1c4f, - 0x87d2, 0x1c40, - 0x87d3, 0x1c4d, - 0x87d4, 0x48c3, - 0x87db, 0x1c52, - 0x87dc, 0x48ca, - 0x87e0, 0x1c54, - 0x87e1, 0x48ce, - 0x87e3, 0x25d5, - 0x87e4, 0x48d0, - 0x87e5, 0x1c48, - 0x87e6, 0x48d1, - 0x87ea, 0x1c53, - 0x87eb, 0x48d5, - 0x87ec, 0x1e6b, - 0x87ed, 0x48d6, - 0x87ee, 0x1c55, - 0x87ef, 0x25db, - 0x87f0, 0x48d7, - 0x87f2, 0x1e89, - 0x87f3, 0x48d9, - 0x87f6, 0x25d9, - 0x87f7, 0x48dc, - 0x87f9, 0x0f82, - 0x87fa, 0x48de, - 0x87fb, 0x2211, - 0x87fc, 0x48df, - 0x87fe, 0x1c58, - 0x87ff, 0x48e1, - 0x8800, 0x48e2, - 0x8803, 0x130d, - 0x8804, 0x48e5, - 0x8805, 0x2229, - 0x8806, 0x25d6, - 0x8807, 0x48e6, - 0x880a, 0x1c59, - 0x880b, 0x48e9, - 0x8810, 0x25dd, - 0x8811, 0x25df, - 0x8812, 0x48ee, - 0x8813, 0x1c57, - 0x8814, 0x48ef, - 0x8815, 0x0cbf, - 0x8816, 0x1c56, - 0x8817, 0x48f0, - 0x881b, 0x1c5a, - 0x881c, 0x48f4, - 0x881f, 0x1fef, - 0x8820, 0x48f7, - 0x8821, 0x1c5b, - 0x8822, 0x0543, - 0x8823, 0x25d8, - 0x8824, 0x48f8, - 0x8831, 0x1f29, - 0x8832, 0x1a8d, - 0x8833, 0x4905, - 0x8836, 0x1e5b, - 0x8837, 0x4908, - 0x8839, 0x1c5c, - 0x883a, 0x490a, - 0x883b, 0x2076, - 0x883c, 0x1c5d, - 0x883d, 0x490b, - 0x8840, 0x0fd3, - 0x8841, 0x490e, - 0x8844, 0x1caa, - 0x8845, 0x0f91, - 0x8846, 0x2297, - 0x8847, 0x4911, - 0x884a, 0x2690, - 0x884b, 0x4914, - 0x884c, 0x0f9b, - 0x884d, 0x1005, - 0x884e, 0x4915, - 0x8853, 0x213f, - 0x8854, 0x0f3b, - 0x8855, 0x491a, - 0x8857, 0x08a7, - 0x8858, 0x491c, - 0x8859, 0x0fec, - 0x885a, 0x491d, - 0x885b, 0x2198, - 0x885c, 0x491e, - 0x885d, 0x1e88, - 0x885e, 0x491f, - 0x8861, 0x0799, - 0x8862, 0x15ed, - 0x8863, 0x1049, - 0x8864, 0x1ba6, - 0x8865, 0x0480, - 0x8866, 0x4922, - 0x8868, 0x0456, - 0x8869, 0x1ba7, - 0x886a, 0x4924, - 0x886b, 0x0cf9, - 0x886c, 0x04e9, - 0x886d, 0x4925, - 0x886e, 0x1306, - 0x886f, 0x4926, - 0x8870, 0x0d9a, - 0x8871, 0x4927, - 0x8872, 0x1ba8, - 0x8873, 0x4928, - 0x8877, 0x11d3, - 0x8878, 0x492c, - 0x8879, 0x228c, - 0x887a, 0x492d, - 0x887d, 0x1ba9, - 0x887e, 0x1cbe, - 0x887f, 0x1baa, - 0x8880, 0x4930, - 0x8881, 0x10ef, - 0x8882, 0x1bab, - 0x8883, 0x4931, - 0x8884, 0x03cb, - 0x8885, 0x1cbf, - 0x8886, 0x4932, - 0x8888, 0x1cc0, - 0x8889, 0x4934, - 0x888b, 0x057f, - 0x888c, 0x4936, - 0x888d, 0x0b9c, - 0x888e, 0x4937, - 0x8892, 0x0e0e, - 0x8893, 0x493b, - 0x8896, 0x0faf, - 0x8897, 0x493e, - 0x889c, 0x0e91, - 0x889d, 0x4943, - 0x88a2, 0x1bac, - 0x88a3, 0x4948, - 0x88a4, 0x1307, - 0x88a5, 0x4949, - 0x88ab, 0x0424, - 0x88ac, 0x494f, - 0x88ad, 0x0f1b, - 0x88ae, 0x4950, - 0x88b1, 0x069f, - 0x88b2, 0x4953, - 0x88b7, 0x1bae, - 0x88b8, 0x4958, - 0x88bc, 0x1baf, - 0x88bd, 0x495c, - 0x88c1, 0x048a, - 0x88c2, 0x0a1a, - 0x88c3, 0x4960, - 0x88c5, 0x120d, - 0x88c6, 0x1bad, - 0x88c7, 0x4962, - 0x88c9, 0x1bb0, - 0x88ca, 0x25f1, - 0x88cb, 0x4964, - 0x88ce, 0x1bb2, - 0x88cf, 0x200c, - 0x88d0, 0x4967, - 0x88d2, 0x130a, - 0x88d3, 0x4969, - 0x88d4, 0x1068, - 0x88d5, 0x10e6, - 0x88d6, 0x496a, - 0x88d8, 0x1cc1, - 0x88d9, 0x0c94, - 0x88da, 0x496c, - 0x88dc, 0x1e58, - 0x88dd, 0x22ac, - 0x88de, 0x496e, - 0x88df, 0x1cc2, - 0x88e0, 0x496f, - 0x88e2, 0x1bb1, - 0x88e3, 0x1bb3, - 0x88e4, 0x0970, - 0x88e5, 0x1bb4, - 0x88e6, 0x4971, - 0x88e8, 0x1bb8, - 0x88e9, 0x4973, - 0x88f0, 0x1bba, - 0x88f1, 0x1bb5, - 0x88f2, 0x497a, - 0x88f3, 0x0d0a, - 0x88f4, 0x0ba2, - 0x88f5, 0x497b, - 0x88f8, 0x0a8a, - 0x88f9, 0x0755, - 0x88fa, 0x497e, - 0x88fc, 0x1bb7, - 0x88fd, 0x26a7, - 0x88fe, 0x1bb9, - 0x88ff, 0x4980, - 0x8900, 0x4981, - 0x8902, 0x072c, - 0x8903, 0x4983, - 0x8907, 0x2676, - 0x8908, 0x4987, - 0x890a, 0x1bbf, - 0x890b, 0x4989, - 0x8910, 0x078d, - 0x8911, 0x498e, - 0x8912, 0x0408, - 0x8913, 0x1bbd, - 0x8914, 0x498f, - 0x8919, 0x1bbc, - 0x891a, 0x1bb6, - 0x891b, 0x1bbe, - 0x891c, 0x4994, - 0x8921, 0x1bbb, - 0x8922, 0x4999, - 0x8925, 0x0cc7, - 0x8926, 0x499c, - 0x892a, 0x0e7b, - 0x892b, 0x1bc1, - 0x892c, 0x49a0, - 0x8930, 0x1739, - 0x8931, 0x49a4, - 0x8932, 0x1fe1, - 0x8933, 0x25bb, - 0x8934, 0x1bc0, - 0x8935, 0x49a5, - 0x8936, 0x1bc2, - 0x8937, 0x49a6, - 0x8938, 0x25be, - 0x8939, 0x49a7, - 0x893b, 0x22dd, - 0x893c, 0x49a9, - 0x8941, 0x1bc3, - 0x8942, 0x49ae, - 0x8944, 0x0f52, - 0x8945, 0x49b0, - 0x8947, 0x25bd, - 0x8948, 0x49b2, - 0x8956, 0x1e2a, - 0x8957, 0x49c0, - 0x895d, 0x25bc, - 0x895e, 0x1cc3, - 0x895f, 0x08c4, - 0x8960, 0x25ba, - 0x8961, 0x49c6, - 0x8964, 0x25bf, - 0x8965, 0x49c9, - 0x8966, 0x1bc4, - 0x8967, 0x49ca, - 0x896a, 0x2187, - 0x896b, 0x49cd, - 0x896c, 0x266b, - 0x896d, 0x49ce, - 0x896f, 0x1e7f, - 0x8970, 0x49d0, - 0x8972, 0x21ad, - 0x8973, 0x49d2, - 0x897b, 0x1bc5, - 0x897c, 0x49da, - 0x897f, 0x0f06, - 0x8980, 0x49dd, - 0x8981, 0x1031, - 0x8982, 0x49de, - 0x8983, 0x1bdf, - 0x8984, 0x49df, - 0x8986, 0x06ad, - 0x8987, 0x49e1, - 0x898b, 0x1f96, - 0x898c, 0x49e5, - 0x898f, 0x1f32, - 0x8990, 0x49e8, - 0x8993, 0x2084, - 0x8994, 0x49eb, - 0x8996, 0x2136, - 0x8997, 0x49ed, - 0x8998, 0x24b8, - 0x8999, 0x49ee, - 0x89a1, 0x24ba, - 0x89a2, 0x49f6, - 0x89a6, 0x24bc, - 0x89a7, 0x49fa, - 0x89aa, 0x20e4, - 0x89ab, 0x49fd, - 0x89ac, 0x24b9, - 0x89ad, 0x49fe, - 0x89af, 0x24bd, - 0x89b0, 0x4a00, - 0x89b2, 0x24be, - 0x89b3, 0x4a02, - 0x89b7, 0x24bf, - 0x89b8, 0x4a06, - 0x89ba, 0x1fd2, - 0x89bb, 0x4a08, - 0x89bd, 0x1ffd, - 0x89be, 0x4a0a, - 0x89bf, 0x24bb, - 0x89c0, 0x1f2d, - 0x89c1, 0x086e, - 0x89c2, 0x0734, - 0x89c3, 0x4a0b, - 0x89c4, 0x073f, - 0x89c5, 0x0ade, - 0x89c6, 0x0d6a, - 0x89c7, 0x193a, - 0x89c8, 0x09ab, - 0x89c9, 0x0924, - 0x89ca, 0x193b, - 0x89cd, 0x4a0c, - 0x89ce, 0x193e, - 0x89d2, 0x0898, - 0x89d3, 0x4a0d, - 0x89d6, 0x1d57, - 0x89d7, 0x4a10, - 0x89da, 0x1d59, - 0x89db, 0x4a13, - 0x89dc, 0x1d5a, - 0x89dd, 0x4a14, - 0x89de, 0x1d58, - 0x89df, 0x4a15, - 0x89e3, 0x08b3, - 0x89e4, 0x4a19, - 0x89e5, 0x1d5b, - 0x89e6, 0x0528, - 0x89e7, 0x4a1a, - 0x89eb, 0x1d5c, - 0x89ec, 0x4a1e, - 0x89ef, 0x1d5d, - 0x89f0, 0x4a21, - 0x89f3, 0x19c0, - 0x89f4, 0x2609, - 0x89f5, 0x4a24, - 0x89f6, 0x260a, - 0x89f7, 0x4a25, - 0x89f8, 0x1e94, - 0x89f9, 0x4a26, - 0x8a00, 0x0ffd, - 0x8a01, 0x22df, - 0x8a02, 0x1ecb, - 0x8a03, 0x1f0d, - 0x8a04, 0x4a2d, - 0x8a07, 0x12fe, - 0x8a08, 0x1f77, - 0x8a09, 0x4a30, - 0x8a0a, 0x21eb, - 0x8a0b, 0x4a31, - 0x8a0c, 0x22e1, - 0x8a0d, 0x4a32, - 0x8a0e, 0x216f, - 0x8a0f, 0x4a33, - 0x8a10, 0x22e0, - 0x8a11, 0x4a34, - 0x8a13, 0x21ea, - 0x8a14, 0x4a36, - 0x8a15, 0x22e2, - 0x8a16, 0x20cb, - 0x8a17, 0x4a37, - 0x8a18, 0x1f78, - 0x8a19, 0x4a38, - 0x8a1b, 0x1ee2, - 0x8a1c, 0x4a3a, - 0x8a1d, 0x21f2, - 0x8a1e, 0x4a3b, - 0x8a1f, 0x2150, - 0x8a20, 0x4a3c, - 0x8a23, 0x1fd3, - 0x8a24, 0x4a3f, - 0x8a25, 0x22e5, - 0x8a26, 0x4a40, - 0x8a2a, 0x1ef2, - 0x8a2b, 0x4a44, - 0x8a2d, 0x211f, - 0x8a2e, 0x4a46, - 0x8a31, 0x21dd, - 0x8a32, 0x4a49, - 0x8a34, 0x2154, - 0x8a35, 0x4a4b, - 0x8a36, 0x22e7, - 0x8a37, 0x4a4c, - 0x8a3a, 0x2282, - 0x8a3b, 0x4a4f, - 0x8a3e, 0x1d5e, - 0x8a3f, 0x4a52, - 0x8a41, 0x22e6, - 0x8a42, 0x4a54, - 0x8a46, 0x22e8, - 0x8a47, 0x4a58, - 0x8a48, 0x1a84, - 0x8a49, 0x4a59, - 0x8a4e, 0x22e4, - 0x8a4f, 0x4a5e, - 0x8a50, 0x226a, - 0x8a51, 0x4a5f, - 0x8a52, 0x22eb, - 0x8a53, 0x4a60, - 0x8a54, 0x22e9, - 0x8a55, 0x20bd, - 0x8a56, 0x4a61, - 0x8a58, 0x22ea, - 0x8a59, 0x4a63, - 0x8a5b, 0x22bd, - 0x8a5c, 0x4a65, - 0x8a5e, 0x1e9e, - 0x8a5f, 0x4a67, - 0x8a61, 0x22f6, - 0x8a62, 0x21e7, - 0x8a63, 0x2216, - 0x8a64, 0x4a69, - 0x8a66, 0x2137, - 0x8a67, 0x4a6b, - 0x8a69, 0x212c, - 0x8a6a, 0x4a6d, - 0x8a6b, 0x1e68, - 0x8a6c, 0x22f2, - 0x8a6d, 0x1f37, - 0x8a6e, 0x22f3, - 0x8a6f, 0x4a6e, - 0x8a70, 0x22ef, - 0x8a71, 0x1f50, - 0x8a72, 0x1f10, - 0x8a73, 0x21c8, - 0x8a74, 0x4a6f, - 0x8a75, 0x22f1, - 0x8a76, 0x4a70, - 0x8a79, 0x1153, - 0x8a7a, 0x4a73, - 0x8a7c, 0x22f0, - 0x8a7d, 0x4a75, - 0x8a7f, 0x22ee, - 0x8a80, 0x4a77, - 0x8a84, 0x22ed, - 0x8a85, 0x229e, - 0x8a86, 0x22ec, - 0x8a87, 0x1fe2, - 0x8a88, 0x4a7b, - 0x8a89, 0x10e3, - 0x8a8a, 0x0e2f, - 0x8a8b, 0x4a7c, - 0x8a8d, 0x20fe, - 0x8a8e, 0x4a7e, - 0x8a91, 0x22f9, - 0x8a93, 0x0d5b, - 0x8a94, 0x4a81, - 0x8a95, 0x1eaf, - 0x8a96, 0x4a82, - 0x8a98, 0x2236, - 0x8a99, 0x4a84, - 0x8a9a, 0x22f7, - 0x8a9b, 0x4a85, - 0x8a9e, 0x223d, - 0x8a9f, 0x4a88, - 0x8aa0, 0x1e82, - 0x8aa1, 0x1fb6, - 0x8aa2, 0x4a89, - 0x8aa3, 0x21a4, - 0x8aa4, 0x21aa, - 0x8aa5, 0x22f8, - 0x8aa6, 0x2151, - 0x8aa7, 0x4a8a, - 0x8aa8, 0x1f60, - 0x8aa9, 0x4a8b, - 0x8aac, 0x2147, - 0x8aad, 0x4a8e, - 0x8ab0, 0x2145, - 0x8ab1, 0x4a91, - 0x8ab2, 0x1fdc, - 0x8ab3, 0x4a92, - 0x8ab6, 0x2301, - 0x8ab7, 0x4a95, - 0x8ab9, 0x1ef5, - 0x8aba, 0x4a97, - 0x8abc, 0x2218, - 0x8abd, 0x4a99, - 0x8abf, 0x1ec6, - 0x8ac0, 0x4a9b, - 0x8ac2, 0x2300, - 0x8ac3, 0x4a9d, - 0x8ac4, 0x22b4, - 0x8ac5, 0x4a9e, - 0x8ac7, 0x2169, - 0x8ac8, 0x4aa0, - 0x8ac9, 0x22fd, - 0x8aca, 0x4aa1, - 0x8acb, 0x20ea, - 0x8acc, 0x4aa2, - 0x8acd, 0x22f4, - 0x8ace, 0x4aa3, - 0x8acf, 0x22fb, - 0x8ad0, 0x4aa4, - 0x8ad1, 0x22fc, - 0x8ad2, 0x2027, - 0x8ad3, 0x4aa5, - 0x8ad6, 0x2060, - 0x8ad7, 0x22ff, - 0x8ad8, 0x4aa8, - 0x8adb, 0x22fe, - 0x8adc, 0x1ec7, - 0x8add, 0x4aab, - 0x8ade, 0x230c, - 0x8adf, 0x4aac, - 0x8ae2, 0x22f5, - 0x8ae3, 0x4aaf, - 0x8ae4, 0x2306, - 0x8ae5, 0x4ab0, - 0x8ae6, 0x230a, - 0x8ae7, 0x21d3, - 0x8ae8, 0x4ab1, - 0x8aeb, 0x2303, - 0x8aec, 0x4ab4, - 0x8aed, 0x2307, - 0x8aee, 0x230b, - 0x8aef, 0x4ab5, - 0x8af1, 0x1f5f, - 0x8af2, 0x4ab7, - 0x8af3, 0x2309, - 0x8af4, 0x4ab8, - 0x8af6, 0x2302, - 0x8af7, 0x1f04, - 0x8af8, 0x229d, - 0x8af9, 0x4aba, - 0x8afa, 0x21fb, - 0x8afb, 0x4abb, - 0x8afc, 0x2308, - 0x8afd, 0x4abc, - 0x8afe, 0x20ac, - 0x8aff, 0x4abd, - 0x8b00, 0x208e, - 0x8b01, 0x2305, - 0x8b02, 0x2197, - 0x8b03, 0x4abe, - 0x8b04, 0x2171, - 0x8b05, 0x2298, - 0x8b06, 0x4abf, - 0x8b07, 0x173c, - 0x8b08, 0x4ac0, - 0x8b0a, 0x1f57, - 0x8b0b, 0x4ac2, - 0x8b0e, 0x2082, - 0x8b0f, 0x4ac5, - 0x8b10, 0x2311, - 0x8b11, 0x4ac6, - 0x8b14, 0x2304, - 0x8b15, 0x4ac9, - 0x8b16, 0x230f, - 0x8b17, 0x1e35, - 0x8b18, 0x4aca, - 0x8b19, 0x20d1, - 0x8b1a, 0x2310, - 0x8b1b, 0x1fa3, - 0x8b1c, 0x4acb, - 0x8b1d, 0x21d6, - 0x8b1e, 0x4acc, - 0x8b21, 0x2206, - 0x8b22, 0x4acf, - 0x8b26, 0x1d5f, - 0x8b27, 0x4ad3, - 0x8b28, 0x230d, - 0x8b29, 0x4ad4, - 0x8b2b, 0x2312, - 0x8b2c, 0x208d, - 0x8b2d, 0x2313, - 0x8b2e, 0x4ad6, - 0x8b33, 0x22e3, - 0x8b34, 0x4adb, - 0x8b39, 0x1fba, - 0x8b3a, 0x4ae0, - 0x8b3e, 0x2078, - 0x8b3f, 0x4ae4, - 0x8b49, 0x2288, - 0x8b4a, 0x4aee, - 0x8b4e, 0x2316, - 0x8b4f, 0x1f6b, - 0x8b50, 0x4af2, - 0x8b56, 0x2314, - 0x8b57, 0x4af8, - 0x8b58, 0x2130, - 0x8b59, 0x2315, - 0x8b5a, 0x2168, - 0x8b5b, 0x4af9, - 0x8b5c, 0x20c4, - 0x8b5d, 0x4afa, - 0x8b66, 0x08de, - 0x8b67, 0x4b03, - 0x8b6b, 0x2318, - 0x8b6c, 0x0bc8, - 0x8b6d, 0x4b07, - 0x8b6f, 0x2219, - 0x8b70, 0x2217, - 0x8b71, 0x4b09, - 0x8b74, 0x20d5, - 0x8b75, 0x4b0c, - 0x8b77, 0x1f4a, - 0x8b78, 0x4b0e, - 0x8b7d, 0x2240, - 0x8b7e, 0x4b13, - 0x8b80, 0x1ed3, - 0x8b81, 0x4b15, - 0x8b8a, 0x1e49, - 0x8b8b, 0x4b1e, - 0x8b8e, 0x261b, - 0x8b8f, 0x4b21, - 0x8b92, 0x1e6d, - 0x8b93, 0x20f8, - 0x8b94, 0x4b24, - 0x8b95, 0x1ffb, - 0x8b96, 0x2319, - 0x8b97, 0x4b25, - 0x8b9c, 0x230e, - 0x8b9d, 0x4b2a, - 0x8b9e, 0x2317, - 0x8b9f, 0x4b2b, - 0x8ba0, 0x1317, - 0x8ba1, 0x0839, - 0x8ba2, 0x05e8, - 0x8ba3, 0x06b7, - 0x8ba4, 0x0caa, - 0x8ba5, 0x0818, - 0x8ba6, 0x1318, - 0x8ba8, 0x0e29, - 0x8ba9, 0x0c9e, - 0x8baa, 0x131a, - 0x8bab, 0x0c1c, - 0x8bac, 0x4b2c, - 0x8bad, 0x0fde, - 0x8bae, 0x1070, - 0x8baf, 0x0fdf, - 0x8bb0, 0x083a, - 0x8bb1, 0x4b2d, - 0x8bb2, 0x0883, - 0x8bb3, 0x07f9, - 0x8bb4, 0x131b, - 0x8bb6, 0x0ff1, - 0x8bb7, 0x131d, - 0x8bb8, 0x0fb8, - 0x8bb9, 0x062e, - 0x8bba, 0x0a82, - 0x8bbb, 0x4b2e, - 0x8bbc, 0x0dc4, - 0x8bbd, 0x068a, - 0x8bbe, 0x0d21, - 0x8bbf, 0x0660, - 0x8bc0, 0x0926, - 0x8bc1, 0x11a3, - 0x8bc2, 0x131e, - 0x8bc4, 0x0bdf, - 0x8bc5, 0x1244, - 0x8bc6, 0x0d4d, - 0x8bc7, 0x4b2f, - 0x8bc8, 0x114a, - 0x8bc9, 0x0dd4, - 0x8bca, 0x1190, - 0x8bcb, 0x1320, - 0x8bcc, 0x11de, - 0x8bcd, 0x054d, - 0x8bce, 0x1322, - 0x8bcf, 0x1321, - 0x8bd0, 0x4b30, - 0x8bd1, 0x1072, - 0x8bd2, 0x1323, - 0x8bd5, 0x0d6b, - 0x8bd6, 0x1326, - 0x8bd7, 0x0d42, - 0x8bd8, 0x1327, - 0x8bda, 0x04f4, - 0x8bdb, 0x11ee, - 0x8bdc, 0x1329, - 0x8bdd, 0x07c5, - 0x8bde, 0x058f, - 0x8bdf, 0x132a, - 0x8be1, 0x0747, - 0x8be2, 0x0fd8, - 0x8be3, 0x106f, - 0x8be4, 0x132c, - 0x8be5, 0x06be, - 0x8be6, 0x0f57, - 0x8be7, 0x04b6, - 0x8be8, 0x132d, - 0x8bea, 0x4b31, - 0x8beb, 0x08bc, - 0x8bec, 0x0eeb, - 0x8bed, 0x10d4, - 0x8bee, 0x132f, - 0x8bef, 0x0f02, - 0x8bf0, 0x1330, - 0x8bf1, 0x10ba, - 0x8bf2, 0x07fa, - 0x8bf3, 0x1331, - 0x8bf4, 0x0daa, - 0x8bf5, 0x0dc5, - 0x8bf6, 0x1332, - 0x8bf7, 0x0c68, - 0x8bf8, 0x11ed, - 0x8bf9, 0x1333, - 0x8bfa, 0x0b76, - 0x8bfb, 0x0600, - 0x8bfc, 0x1334, - 0x8bfd, 0x0669, - 0x8bfe, 0x095b, - 0x8bff, 0x1335, - 0x8c00, 0x1336, - 0x8c01, 0x0da2, - 0x8c02, 0x1337, - 0x8c03, 0x05d8, - 0x8c04, 0x1338, - 0x8c05, 0x0a0b, - 0x8c06, 0x1218, - 0x8c07, 0x1339, - 0x8c08, 0x0e0b, - 0x8c09, 0x4b32, - 0x8c0a, 0x1071, - 0x8c0b, 0x0b14, - 0x8c0c, 0x133a, - 0x8c0d, 0x05de, - 0x8c0e, 0x07e6, - 0x8c0f, 0x133b, - 0x8c10, 0x0f7e, - 0x8c11, 0x133c, - 0x8c13, 0x0ecc, - 0x8c14, 0x133e, - 0x8c17, 0x04be, - 0x8c18, 0x1343, - 0x8c19, 0x1341, - 0x8c1a, 0x1011, - 0x8c1b, 0x1342, - 0x8c1c, 0x0ada, - 0x8c1d, 0x1344, - 0x8c1e, 0x4b33, - 0x8c1f, 0x1345, - 0x8c22, 0x0f86, - 0x8c23, 0x102c, - 0x8c24, 0x0404, - 0x8c25, 0x1348, - 0x8c26, 0x0c28, - 0x8c27, 0x1349, - 0x8c28, 0x08c8, - 0x8c29, 0x0aa6, - 0x8c2a, 0x134a, - 0x8c2c, 0x0b02, - 0x8c2d, 0x0e0a, - 0x8c2e, 0x134c, - 0x8c30, 0x09a9, - 0x8c31, 0x0bf6, - 0x8c32, 0x134e, - 0x8c34, 0x0c31, - 0x8c35, 0x1350, - 0x8c37, 0x0721, - 0x8c38, 0x4b34, - 0x8c41, 0x0802, - 0x8c42, 0x4b3d, - 0x8c46, 0x05f8, - 0x8c47, 0x1cf6, - 0x8c48, 0x20c8, - 0x8c49, 0x1cf7, - 0x8c4a, 0x4b41, - 0x8c4c, 0x0e94, - 0x8c4d, 0x4b43, - 0x8c50, 0x1efd, - 0x8c51, 0x4b46, - 0x8c55, 0x1d15, - 0x8c56, 0x4b4a, - 0x8c5a, 0x1990, - 0x8c5b, 0x4b4e, - 0x8c61, 0x0f60, - 0x8c62, 0x07d4, - 0x8c63, 0x4b54, - 0x8c6a, 0x0777, - 0x8c6b, 0x10e8, - 0x8c6c, 0x4b5b, - 0x8c73, 0x15dd, - 0x8c74, 0x4b62, - 0x8c78, 0x1d50, - 0x8c79, 0x0413, - 0x8c7a, 0x04b9, - 0x8c7b, 0x4b66, - 0x8c82, 0x1d51, - 0x8c83, 0x4b6d, - 0x8c85, 0x1d53, - 0x8c86, 0x4b6f, - 0x8c89, 0x0788, - 0x8c8a, 0x1d52, - 0x8c8b, 0x4b72, - 0x8c8c, 0x0ab7, - 0x8c8d, 0x4b73, - 0x8c94, 0x1d55, - 0x8c95, 0x4b7a, - 0x8c98, 0x1d54, - 0x8c99, 0x4b7d, - 0x8c9d, 0x1e3b, - 0x8c9e, 0x227f, - 0x8c9f, 0x4b81, - 0x8ca0, 0x1f0c, - 0x8ca1, 0x1e59, - 0x8ca2, 0x1f24, - 0x8ca3, 0x4b82, - 0x8ca7, 0x20ba, - 0x8ca8, 0x1f65, - 0x8ca9, 0x1ef0, - 0x8caa, 0x2164, - 0x8cab, 0x1f30, - 0x8cac, 0x2261, - 0x8cad, 0x4b86, - 0x8caf, 0x22a2, - 0x8cb0, 0x24ab, - 0x8cb1, 0x4b88, - 0x8cb2, 0x24af, - 0x8cb3, 0x1ee8, - 0x8cb4, 0x1f39, - 0x8cb5, 0x4b89, - 0x8cb6, 0x1e48, - 0x8cb7, 0x2070, - 0x8cb8, 0x1ea8, - 0x8cb9, 0x4b8a, - 0x8cba, 0x24ac, - 0x8cbb, 0x1ef7, - 0x8cbc, 0x2176, - 0x8cbd, 0x24ad, - 0x8cbe, 0x4b8b, - 0x8cbf, 0x207b, - 0x8cc0, 0x1f45, - 0x8cc1, 0x24aa, - 0x8cc2, 0x204b, - 0x8cc3, 0x202f, - 0x8cc4, 0x1f5a, - 0x8cc5, 0x24b0, - 0x8cc6, 0x4b8c, - 0x8cc7, 0x22b7, - 0x8cc8, 0x1f7f, - 0x8cc9, 0x4b8d, - 0x8cca, 0x2265, - 0x8ccb, 0x4b8e, - 0x8cd1, 0x24b2, - 0x8cd2, 0x211b, - 0x8cd3, 0x1e51, - 0x8cd4, 0x4b94, - 0x8cd5, 0x24b4, - 0x8cd6, 0x4b95, - 0x8cda, 0x24b3, - 0x8cdb, 0x4b99, - 0x8cdc, 0x1e9f, - 0x8cdd, 0x4b9a, - 0x8cde, 0x2118, - 0x8cdf, 0x4b9b, - 0x8ce0, 0x20b4, - 0x8ce1, 0x23af, - 0x8ce2, 0x21bb, - 0x8ce3, 0x2072, - 0x8ce4, 0x1f95, - 0x8ce5, 0x4b9c, - 0x8ce6, 0x1f0a, - 0x8ce7, 0x24b6, - 0x8ce8, 0x4b9d, - 0x8cea, 0x2291, - 0x8ceb, 0x24b5, - 0x8cec, 0x2278, - 0x8ced, 0x1ed4, - 0x8cee, 0x4b9f, - 0x8cf4, 0x1ff3, - 0x8cf5, 0x4ba5, - 0x8cfa, 0x22a9, - 0x8cfb, 0x24b7, - 0x8cfc, 0x1f28, - 0x8cfd, 0x2109, - 0x8cfe, 0x22c7, - 0x8cff, 0x4baa, - 0x8d00, 0x4bab, - 0x8d04, 0x24ae, - 0x8d05, 0x22b1, - 0x8d06, 0x4baf, - 0x8d08, 0x2266, - 0x8d09, 0x4bb1, - 0x8d0a, 0x225b, - 0x8d0b, 0x22c4, - 0x8d0c, 0x4bb2, - 0x8d0d, 0x2115, - 0x8d0e, 0x4bb3, - 0x8d0f, 0x222a, - 0x8d10, 0x24b1, - 0x8d11, 0x4bb4, - 0x8d16, 0x213d, - 0x8d17, 0x4bb9, - 0x8d1b, 0x1f15, - 0x8d1c, 0x225c, - 0x8d1d, 0x041d, - 0x8d1e, 0x118b, - 0x8d1f, 0x06b5, - 0x8d20, 0x4bbd, - 0x8d21, 0x070a, - 0x8d22, 0x048d, - 0x8d23, 0x1133, - 0x8d24, 0x0f3a, - 0x8d25, 0x03e7, - 0x8d26, 0x116c, - 0x8d27, 0x080a, - 0x8d28, 0x11c9, - 0x8d29, 0x0654, - 0x8d2a, 0x0e03, - 0x8d2b, 0x0bd5, - 0x8d2c, 0x044a, - 0x8d2d, 0x0713, - 0x8d2e, 0x11fb, - 0x8d2f, 0x073a, - 0x8d30, 0x063e, - 0x8d31, 0x086d, - 0x8d32, 0x192c, - 0x8d34, 0x0e4c, - 0x8d35, 0x074c, - 0x8d36, 0x192e, - 0x8d37, 0x057e, - 0x8d38, 0x0ab8, - 0x8d39, 0x066e, - 0x8d3a, 0x078f, - 0x8d3b, 0x192f, - 0x8d3c, 0x1137, - 0x8d3d, 0x1930, - 0x8d3e, 0x0849, - 0x8d3f, 0x07f4, - 0x8d40, 0x1931, - 0x8d41, 0x0a27, - 0x8d42, 0x0a5f, - 0x8d43, 0x1122, - 0x8d44, 0x1227, - 0x8d45, 0x1932, - 0x8d47, 0x1936, - 0x8d48, 0x1934, - 0x8d4a, 0x0d17, - 0x8d4b, 0x06ae, - 0x8d4c, 0x0603, - 0x8d4d, 0x1937, - 0x8d4e, 0x0d81, - 0x8d4f, 0x0d06, - 0x8d50, 0x0550, - 0x8d51, 0x4bbe, - 0x8d53, 0x163b, - 0x8d54, 0x0ba3, - 0x8d55, 0x1938, - 0x8d56, 0x09a0, - 0x8d57, 0x4bc0, - 0x8d58, 0x1215, - 0x8d59, 0x1939, - 0x8d5a, 0x1209, - 0x8d5b, 0x0cd7, - 0x8d5c, 0x1289, - 0x8d5d, 0x1283, - 0x8d5e, 0x1121, - 0x8d5f, 0x4bc1, - 0x8d60, 0x113c, - 0x8d61, 0x0cfd, - 0x8d62, 0x1093, - 0x8d63, 0x06ce, - 0x8d64, 0x0505, - 0x8d65, 0x4bc2, - 0x8d66, 0x0d1b, - 0x8d67, 0x1cf4, - 0x8d68, 0x4bc3, - 0x8d6b, 0x078c, - 0x8d6c, 0x4bc6, - 0x8d6d, 0x1cf5, - 0x8d6e, 0x4bc7, - 0x8d70, 0x123c, - 0x8d71, 0x4bc9, - 0x8d73, 0x1cef, - 0x8d74, 0x06ab, - 0x8d75, 0x1175, - 0x8d76, 0x06ca, - 0x8d77, 0x0c0f, - 0x8d78, 0x4bcb, - 0x8d81, 0x04e8, - 0x8d82, 0x4bd4, - 0x8d84, 0x1cf0, - 0x8d85, 0x04d1, - 0x8d86, 0x4bd6, - 0x8d8a, 0x1100, - 0x8d8b, 0x0c74, - 0x8d8c, 0x4bda, - 0x8d91, 0x1cf2, - 0x8d92, 0x4bdf, - 0x8d94, 0x1cf1, - 0x8d95, 0x1f14, - 0x8d96, 0x4be1, - 0x8d99, 0x227a, - 0x8d9a, 0x4be4, - 0x8d9f, 0x0e1e, - 0x8da0, 0x4be9, - 0x8da3, 0x0c7f, - 0x8da4, 0x4bec, - 0x8da8, 0x20ee, - 0x8da9, 0x4bf0, - 0x8db1, 0x1cf3, - 0x8db2, 0x25f8, - 0x8db3, 0x1240, - 0x8db4, 0x0b80, - 0x8db5, 0x1d1c, - 0x8db6, 0x4bf8, - 0x8db8, 0x1d17, - 0x8db9, 0x4bfa, - 0x8dba, 0x1d1f, - 0x8dbb, 0x4bfb, - 0x8dbc, 0x1d1e, - 0x8dbd, 0x4bfc, - 0x8dbe, 0x11b9, - 0x8dbf, 0x1d1d, - 0x8dc0, 0x4bfd, - 0x8dc3, 0x1101, - 0x8dc4, 0x1d20, - 0x8dc5, 0x4c00, - 0x8dc6, 0x1d28, - 0x8dc7, 0x4c01, - 0x8dcb, 0x03da, - 0x8dcc, 0x05d9, - 0x8dcd, 0x4c05, - 0x8dce, 0x1d25, - 0x8dd0, 0x4c06, - 0x8dd1, 0x0b9d, - 0x8dd2, 0x4c07, - 0x8dd6, 0x1d21, - 0x8dd8, 0x4c0b, - 0x8dda, 0x1d23, - 0x8ddb, 0x1d27, - 0x8ddc, 0x4c0d, - 0x8ddd, 0x090f, - 0x8dde, 0x1d24, - 0x8ddf, 0x06f5, - 0x8de0, 0x4c0e, - 0x8de3, 0x1d2c, - 0x8de4, 0x1d2f, - 0x8de5, 0x4c11, - 0x8de8, 0x0974, - 0x8de9, 0x4c14, - 0x8dea, 0x074b, - 0x8deb, 0x1d18, - 0x8dec, 0x1d29, - 0x8ded, 0x4c15, - 0x8def, 0x0a5e, - 0x8df0, 0x4c17, - 0x8df3, 0x0e4b, - 0x8df4, 0x4c1a, - 0x8df5, 0x086c, - 0x8df6, 0x4c1b, - 0x8df7, 0x1d2a, - 0x8df9, 0x1d2d, - 0x8dfa, 0x0624, - 0x8dfb, 0x1d2e, - 0x8dfc, 0x4c1c, - 0x8dfd, 0x1d31, - 0x8dfe, 0x4c1d, - 0x8e00, 0x4c1f, - 0x8e05, 0x1d19, - 0x8e06, 0x4c24, - 0x8e09, 0x1d30, - 0x8e0a, 0x10a0, - 0x8e0b, 0x4c27, - 0x8e0c, 0x0511, - 0x8e0d, 0x4c28, - 0x8e0f, 0x0df7, - 0x8e10, 0x1f94, - 0x8e11, 0x4c2a, - 0x8e14, 0x1d32, - 0x8e15, 0x4c2d, - 0x8e1d, 0x1d33, - 0x8e1e, 0x0910, - 0x8e1f, 0x1d34, - 0x8e20, 0x4c35, - 0x8e22, 0x0e32, - 0x8e23, 0x1d37, - 0x8e24, 0x4c37, - 0x8e29, 0x048f, - 0x8e2a, 0x1236, - 0x8e2b, 0x4c3c, - 0x8e2c, 0x1d35, - 0x8e2d, 0x4c3d, - 0x8e2e, 0x1d36, - 0x8e2f, 0x1d38, - 0x8e30, 0x4c3e, - 0x8e31, 0x1d3e, - 0x8e32, 0x4c3f, - 0x8e34, 0x2230, - 0x8e35, 0x1d3c, - 0x8e36, 0x4c41, - 0x8e39, 0x1d3b, - 0x8e3a, 0x1d39, - 0x8e3b, 0x4c44, - 0x8e3d, 0x1d3d, - 0x8e3e, 0x4c46, - 0x8e40, 0x1d3a, - 0x8e41, 0x1d40, - 0x8e43, 0x4c48, - 0x8e44, 0x0e36, - 0x8e45, 0x4c49, - 0x8e47, 0x173b, - 0x8e48, 0x0599, - 0x8e49, 0x1d3f, - 0x8e4a, 0x1d44, - 0x8e4b, 0x0df6, - 0x8e4c, 0x25fd, - 0x8e4d, 0x4c4b, - 0x8e51, 0x1d42, - 0x8e53, 0x4c4f, - 0x8e55, 0x2600, - 0x8e56, 0x4c51, - 0x8e59, 0x1d1a, - 0x8e5a, 0x4c54, - 0x8e63, 0x2606, - 0x8e64, 0x4c5d, - 0x8e66, 0x042d, - 0x8e67, 0x4c5f, - 0x8e69, 0x1d1b, - 0x8e6a, 0x4c61, - 0x8e6c, 0x05a6, - 0x8e6d, 0x04ab, - 0x8e6e, 0x4c63, - 0x8e6f, 0x1d48, - 0x8e70, 0x1d45, - 0x8e71, 0x4c64, - 0x8e72, 0x0616, - 0x8e73, 0x4c65, - 0x8e74, 0x1d49, - 0x8e75, 0x4c66, - 0x8e76, 0x1d46, - 0x8e77, 0x4c67, - 0x8e7a, 0x25ff, - 0x8e7b, 0x4c6a, - 0x8e7c, 0x1d47, - 0x8e7d, 0x4c6b, - 0x8e7f, 0x055d, - 0x8e80, 0x4c6d, - 0x8e81, 0x112d, - 0x8e82, 0x4c6e, - 0x8e85, 0x1d4a, - 0x8e86, 0x4c71, - 0x8e87, 0x051e, - 0x8e88, 0x4c72, - 0x8e89, 0x25fc, - 0x8e8a, 0x1e8c, - 0x8e8b, 0x2602, - 0x8e8c, 0x4c73, - 0x8e8d, 0x224d, - 0x8e8e, 0x4c74, - 0x8e8f, 0x1d4b, - 0x8e90, 0x1d4d, - 0x8e91, 0x2604, - 0x8e92, 0x25fe, - 0x8e93, 0x2603, - 0x8e94, 0x1d4c, - 0x8e95, 0x4c75, - 0x8e9a, 0x2601, - 0x8e9b, 0x4c7a, - 0x8e9c, 0x1d4e, - 0x8e9d, 0x4c7b, - 0x8e9e, 0x1d4f, - 0x8e9f, 0x4c7c, - 0x8ea1, 0x2605, - 0x8ea2, 0x4c7e, - 0x8ea5, 0x1ea3, - 0x8ea6, 0x2608, - 0x8ea7, 0x4c81, - 0x8eaa, 0x2607, - 0x8eab, 0x0d26, - 0x8eac, 0x0703, - 0x8ead, 0x4c84, - 0x8eaf, 0x0c78, - 0x8eb0, 0x4c86, - 0x8eb2, 0x0622, - 0x8eb3, 0x4c88, - 0x8eba, 0x0e1c, - 0x8ebb, 0x4c8f, - 0x8ec0, 0x20f0, - 0x8ec1, 0x4c94, - 0x8eca, 0x1e7b, - 0x8ecb, 0x2267, - 0x8ecc, 0x1f36, - 0x8ecd, 0x1fd6, - 0x8ece, 0x18f8, - 0x8ecf, 0x4c9d, - 0x8ed2, 0x21e0, - 0x8ed3, 0x4ca0, - 0x8ed4, 0x248c, - 0x8ed5, 0x4ca1, - 0x8edb, 0x248d, - 0x8edc, 0x4ca7, - 0x8edf, 0x2102, - 0x8ee0, 0x4caa, - 0x8ee4, 0x2494, - 0x8ee5, 0x4cae, - 0x8eeb, 0x2493, - 0x8eec, 0x4cb4, - 0x8ef2, 0x248e, - 0x8ef3, 0x4cba, - 0x8ef8, 0x2299, - 0x8ef9, 0x2491, - 0x8efa, 0x2496, - 0x8efb, 0x248f, - 0x8efc, 0x2492, - 0x8efd, 0x4cbf, - 0x8efe, 0x2497, - 0x8eff, 0x4cc0, - 0x8f00, 0x4cc1, - 0x8f03, 0x1fb1, - 0x8f04, 0x4cc4, - 0x8f05, 0x249a, - 0x8f06, 0x4cc5, - 0x8f07, 0x2499, - 0x8f08, 0x4cc6, - 0x8f09, 0x2258, - 0x8f0a, 0x2498, - 0x8f0b, 0x4cc7, - 0x8f12, 0x249b, - 0x8f13, 0x4cce, - 0x8f14, 0x1f09, - 0x8f15, 0x20e6, - 0x8f16, 0x4ccf, - 0x8f1b, 0x2026, - 0x8f1c, 0x249f, - 0x8f1d, 0x1f59, - 0x8f1e, 0x249d, - 0x8f20, 0x4cd4, - 0x8f25, 0x1f3b, - 0x8f26, 0x249c, - 0x8f27, 0x4cd9, - 0x8f29, 0x1e3a, - 0x8f2a, 0x205b, - 0x8f2b, 0x4cdb, - 0x8f2f, 0x1f70, - 0x8f30, 0x4cdf, - 0x8f33, 0x24a0, - 0x8f34, 0x4ce2, - 0x8f38, 0x213b, - 0x8f39, 0x4ce6, - 0x8f3b, 0x1f07, - 0x8f3c, 0x4ce8, - 0x8f3e, 0x2270, - 0x8f3f, 0x2237, - 0x8f40, 0x4cea, - 0x8f42, 0x24d2, - 0x8f43, 0x4cec, - 0x8f44, 0x21b3, - 0x8f45, 0x2245, - 0x8f46, 0x24a1, - 0x8f47, 0x4ced, - 0x8f49, 0x22a8, - 0x8f4a, 0x4cef, - 0x8f4d, 0x227c, - 0x8f4e, 0x1fb0, - 0x8f4f, 0x4cf2, - 0x8f54, 0x24a2, - 0x8f55, 0x4cf7, - 0x8f5f, 0x1f46, - 0x8f60, 0x4d01, - 0x8f61, 0x2380, - 0x8f62, 0x2495, - 0x8f63, 0x4d02, - 0x8f64, 0x2490, - 0x8f65, 0x4d03, - 0x8f66, 0x04da, - 0x8f67, 0x1141, - 0x8f68, 0x0745, - 0x8f69, 0x0fc4, - 0x8f6a, 0x4d04, - 0x8f6b, 0x18e1, - 0x8f6c, 0x1207, - 0x8f6d, 0x18e2, - 0x8f6e, 0x0a7d, - 0x8f6f, 0x0cc8, - 0x8f70, 0x079b, - 0x8f71, 0x18e3, - 0x8f74, 0x11e0, - 0x8f75, 0x18e6, - 0x8f77, 0x18e9, - 0x8f78, 0x18e8, - 0x8f79, 0x18ea, - 0x8f7b, 0x0c5e, - 0x8f7c, 0x18ec, - 0x8f7d, 0x111b, - 0x8f7e, 0x18ed, - 0x8f7f, 0x089f, - 0x8f80, 0x4d05, - 0x8f81, 0x18ee, - 0x8f83, 0x08a0, - 0x8f84, 0x18f0, - 0x8f85, 0x06a3, - 0x8f86, 0x0a07, - 0x8f87, 0x18f1, - 0x8f88, 0x041b, - 0x8f89, 0x07e9, - 0x8f8a, 0x074e, - 0x8f8b, 0x18f2, - 0x8f8c, 0x4d06, - 0x8f8d, 0x18f3, - 0x8f90, 0x0695, - 0x8f91, 0x0820, - 0x8f92, 0x4d07, - 0x8f93, 0x0d7b, - 0x8f94, 0x1574, - 0x8f95, 0x10f2, - 0x8f96, 0x0f2a, - 0x8f97, 0x1158, - 0x8f98, 0x18f6, - 0x8f99, 0x117f, - 0x8f9a, 0x18f7, - 0x8f9b, 0x0f8c, - 0x8f9c, 0x0715, - 0x8f9d, 0x4d08, - 0x8f9e, 0x054a, - 0x8f9f, 0x0442, - 0x8fa0, 0x4d09, - 0x8fa3, 0x099c, - 0x8fa4, 0x4d0c, - 0x8fa6, 0x1e30, - 0x8fa7, 0x4d0e, - 0x8fa8, 0x044f, - 0x8faa, 0x4d0f, - 0x8fab, 0x0451, - 0x8fac, 0x4d10, - 0x8fad, 0x1e9d, - 0x8fae, 0x1e4b, - 0x8faf, 0x1e4a, - 0x8fb0, 0x04e2, - 0x8fb1, 0x0cc3, - 0x8fb2, 0x20aa, - 0x8fb3, 0x4d11, - 0x8fb6, 0x173d, - 0x8fb7, 0x4d14, - 0x8fb9, 0x0448, - 0x8fba, 0x4d16, - 0x8fbd, 0x0a12, - 0x8fbe, 0x0572, - 0x8fbf, 0x4d19, - 0x8fc1, 0x0c25, - 0x8fc2, 0x10bd, - 0x8fc3, 0x4d1b, - 0x8fc4, 0x0c18, - 0x8fc5, 0x0fe1, - 0x8fc6, 0x4d1c, - 0x8fc7, 0x0756, - 0x8fc8, 0x0a9c, - 0x8fc9, 0x4d1d, - 0x8fce, 0x1092, - 0x8fcf, 0x4d22, - 0x8fd0, 0x110e, - 0x8fd1, 0x08cd, - 0x8fd2, 0x4d23, - 0x8fd3, 0x173e, - 0x8fd4, 0x0652, - 0x8fd5, 0x173f, - 0x8fd6, 0x4d24, - 0x8fd8, 0x07ce, - 0x8fd9, 0x1183, - 0x8fda, 0x4d26, - 0x8fdb, 0x08c9, - 0x8fdc, 0x10f9, - 0x8fdd, 0x0eb4, - 0x8fde, 0x09f5, - 0x8fdf, 0x04fe, - 0x8fe0, 0x4d27, - 0x8fe2, 0x0e49, - 0x8fe3, 0x4d29, - 0x8fe4, 0x1742, - 0x8fe5, 0x1740, - 0x8fe6, 0x1744, - 0x8fe7, 0x4d2a, - 0x8fe8, 0x1746, - 0x8fe9, 0x1743, - 0x8fea, 0x05b0, - 0x8feb, 0x0be7, - 0x8fec, 0x4d2b, - 0x8fed, 0x05dd, - 0x8fee, 0x1741, - 0x8fef, 0x4d2c, - 0x8ff0, 0x0d8d, - 0x8ff1, 0x4d2d, - 0x8ff3, 0x1745, - 0x8ff4, 0x267b, - 0x8ff5, 0x4d2f, - 0x8ff7, 0x0ad9, - 0x8ff8, 0x042e, - 0x8ff9, 0x0816, - 0x8ffa, 0x4d31, - 0x8ffd, 0x1214, - 0x8ffe, 0x4d34, - 0x9000, 0x0e7c, - 0x9001, 0x0dc2, - 0x9002, 0x0d61, - 0x9003, 0x0e26, - 0x9004, 0x1748, - 0x9005, 0x1747, - 0x9006, 0x0b49, - 0x9007, 0x4d36, - 0x9009, 0x0fca, - 0x900a, 0x0fe0, - 0x900b, 0x1749, - 0x900c, 0x4d38, - 0x900d, 0x174c, - 0x900e, 0x4d39, - 0x900f, 0x0e69, - 0x9010, 0x11ef, - 0x9011, 0x174b, - 0x9012, 0x05be, - 0x9013, 0x4d3a, - 0x9014, 0x0e6f, - 0x9015, 0x23f2, - 0x9016, 0x174d, - 0x9017, 0x05f9, - 0x9018, 0x4d3b, - 0x9019, 0x227e, - 0x901a, 0x0e59, - 0x901b, 0x073d, - 0x901c, 0x4d3c, - 0x901d, 0x0d5c, - 0x901e, 0x04f6, - 0x901f, 0x0dce, - 0x9020, 0x112f, - 0x9021, 0x174e, - 0x9022, 0x0687, - 0x9023, 0x2019, - 0x9024, 0x4d3d, - 0x9026, 0x174a, - 0x9027, 0x4d3f, - 0x902d, 0x1751, - 0x902e, 0x0581, - 0x902f, 0x1752, - 0x9030, 0x4d45, - 0x9032, 0x1fbb, - 0x9033, 0x4d47, - 0x9035, 0x174f, - 0x9037, 0x4d49, - 0x9038, 0x1064, - 0x9039, 0x4d4a, - 0x903b, 0x0a86, - 0x903c, 0x042f, - 0x903d, 0x4d4c, - 0x903e, 0x10c7, - 0x903f, 0x4d4d, - 0x9041, 0x061c, - 0x9042, 0x0de1, - 0x9043, 0x4d4f, - 0x9044, 0x1753, - 0x9045, 0x4d50, - 0x9047, 0x10db, - 0x9048, 0x4d52, - 0x904b, 0x2253, - 0x904c, 0x4d55, - 0x904d, 0x0452, - 0x904e, 0x1f3e, - 0x904f, 0x0633, - 0x9050, 0x1756, - 0x9051, 0x1754, - 0x9053, 0x05a1, - 0x9054, 0x1ea6, - 0x9055, 0x218e, - 0x9056, 0x4d56, - 0x9057, 0x104c, - 0x9058, 0x1758, - 0x9059, 0x4d57, - 0x905b, 0x175a, - 0x905c, 0x21ec, - 0x905d, 0x4d59, - 0x905e, 0x1ebe, - 0x905f, 0x4d5a, - 0x9060, 0x224a, - 0x9061, 0x4d5b, - 0x9062, 0x1759, - 0x9063, 0x0c2f, - 0x9064, 0x4d5c, - 0x9065, 0x102a, - 0x9066, 0x4d5d, - 0x9068, 0x1757, - 0x9069, 0x2133, - 0x906a, 0x4d5f, - 0x906d, 0x1125, - 0x906e, 0x117b, - 0x906f, 0x4d62, - 0x9072, 0x1e84, - 0x9073, 0x4d65, - 0x9074, 0x175c, - 0x9075, 0x124e, - 0x9076, 0x4d66, - 0x9077, 0x20cf, - 0x9078, 0x21e2, - 0x9079, 0x4d67, - 0x907a, 0x220f, - 0x907b, 0x4d68, - 0x907c, 0x2029, - 0x907d, 0x175d, - 0x907e, 0x4d69, - 0x907f, 0x0445, - 0x9080, 0x1024, - 0x9081, 0x2073, - 0x9082, 0x175e, - 0x9083, 0x1760, - 0x9084, 0x1f55, - 0x9085, 0x4d6a, - 0x9087, 0x23f1, - 0x9088, 0x175f, - 0x9089, 0x4d6c, - 0x908a, 0x1e46, - 0x908b, 0x1761, - 0x908c, 0x4d6d, - 0x908f, 0x2063, - 0x9090, 0x23f3, - 0x9091, 0x105f, - 0x9092, 0x4d70, - 0x9093, 0x05ac, - 0x9094, 0x4d71, - 0x9095, 0x1817, - 0x9096, 0x4d72, - 0x9097, 0x1367, - 0x9098, 0x4d73, - 0x9099, 0x136a, - 0x909a, 0x4d74, - 0x909b, 0x1368, - 0x909c, 0x4d75, - 0x909d, 0x1369, - 0x909e, 0x4d76, - 0x90a1, 0x136c, - 0x90a2, 0x0f9a, - 0x90a3, 0x0b2a, - 0x90a4, 0x4d79, - 0x90a6, 0x03f9, - 0x90a7, 0x4d7b, - 0x90aa, 0x0f7b, - 0x90ab, 0x4d7e, - 0x90ac, 0x136b, - 0x90ad, 0x4d7f, - 0x90ae, 0x10af, - 0x90af, 0x0761, - 0x90b0, 0x1372, - 0x90b1, 0x0c6e, - 0x90b2, 0x4d80, - 0x90b3, 0x136e, - 0x90b4, 0x136d, - 0x90b5, 0x0d14, - 0x90b6, 0x136f, - 0x90b7, 0x4d81, - 0x90b8, 0x1371, - 0x90b9, 0x123b, - 0x90ba, 0x1370, - 0x90bb, 0x0a23, - 0x90bc, 0x4d82, - 0x90be, 0x1375, - 0x90bf, 0x4d84, - 0x90c1, 0x10d9, - 0x90c2, 0x4d86, - 0x90c4, 0x1377, - 0x90c5, 0x1374, - 0x90c6, 0x4d88, - 0x90c7, 0x1378, - 0x90c8, 0x4d89, - 0x90ca, 0x088d, - 0x90cb, 0x4d8b, - 0x90ce, 0x09b4, - 0x90cf, 0x1373, - 0x90d0, 0x1376, - 0x90d1, 0x11a2, - 0x90d2, 0x4d8e, - 0x90d3, 0x1379, - 0x90d4, 0x4d8f, - 0x90d7, 0x137d, - 0x90d8, 0x4d92, - 0x90db, 0x137e, - 0x90dc, 0x137c, - 0x90dd, 0x0779, - 0x90de, 0x4d95, - 0x90df, 0x231e, - 0x90e0, 0x4d96, - 0x90e1, 0x0931, - 0x90e2, 0x137b, - 0x90e3, 0x4d97, - 0x90e6, 0x137a, - 0x90e7, 0x110a, - 0x90e8, 0x0486, - 0x90e9, 0x4d9a, - 0x90eb, 0x137f, - 0x90ec, 0x4d9c, - 0x90ed, 0x0752, - 0x90ee, 0x4d9d, - 0x90ef, 0x1380, - 0x90f0, 0x4d9e, - 0x90f4, 0x04e0, - 0x90f5, 0x2233, - 0x90f6, 0x4da2, - 0x90f8, 0x0587, - 0x90f9, 0x4da4, - 0x90fd, 0x05fb, - 0x90fe, 0x1381, - 0x90ff, 0x4da8, - 0x9100, 0x4da9, - 0x9102, 0x0634, - 0x9103, 0x4dab, - 0x9104, 0x1382, - 0x9105, 0x4dac, - 0x9106, 0x2320, - 0x9107, 0x4dad, - 0x9109, 0x21c7, - 0x910a, 0x4daf, - 0x9112, 0x22bc, - 0x9113, 0x4db7, - 0x9114, 0x231c, - 0x9115, 0x4db8, - 0x9116, 0x2251, - 0x9117, 0x4db9, - 0x9119, 0x0432, - 0x911a, 0x4dbb, - 0x911e, 0x1384, - 0x911f, 0x4dbf, - 0x9122, 0x1383, - 0x9123, 0x1385, - 0x9124, 0x4dc2, - 0x9127, 0x1ebb, - 0x9128, 0x4dc5, - 0x912d, 0x2287, - 0x912e, 0x4dca, - 0x912f, 0x1387, - 0x9130, 0x202d, - 0x9131, 0x1386, - 0x9132, 0x1eab, - 0x9133, 0x4dcb, - 0x9134, 0x231d, - 0x9135, 0x4dcc, - 0x9136, 0x231f, - 0x9137, 0x4dcd, - 0x9139, 0x1388, - 0x913a, 0x231b, - 0x913b, 0x4dcf, - 0x9143, 0x1389, - 0x9144, 0x4dd7, - 0x9146, 0x138a, - 0x9147, 0x4dd9, - 0x9148, 0x2321, - 0x9149, 0x10b4, - 0x914a, 0x1cf8, - 0x914b, 0x0c72, - 0x914c, 0x1220, - 0x914d, 0x0ba5, - 0x914e, 0x1cfa, - 0x9150, 0x1cf9, - 0x9151, 0x4dda, - 0x9152, 0x08f5, - 0x9153, 0x4ddb, - 0x9157, 0x0fba, - 0x9158, 0x4ddf, - 0x915a, 0x0670, - 0x915b, 0x4de1, - 0x915d, 0x1110, - 0x915e, 0x0dfd, - 0x915f, 0x4de3, - 0x9161, 0x1cfe, - 0x9162, 0x1cfd, - 0x9163, 0x075f, - 0x9164, 0x1cfc, - 0x9165, 0x0dcb, - 0x9166, 0x4de5, - 0x9169, 0x1d00, - 0x916a, 0x09bd, - 0x916b, 0x4de8, - 0x916c, 0x050f, - 0x916d, 0x4de9, - 0x916e, 0x0e5b, - 0x916f, 0x1d01, - 0x9170, 0x1cff, - 0x9171, 0x0885, - 0x9172, 0x1d04, - 0x9173, 0x4dea, - 0x9174, 0x1d05, - 0x9175, 0x089e, - 0x9176, 0x0abd, - 0x9177, 0x096e, - 0x9178, 0x0dd6, - 0x9179, 0x1d06, - 0x917a, 0x4deb, - 0x917d, 0x1d02, - 0x917f, 0x0b53, - 0x9180, 0x4dee, - 0x9185, 0x1d08, - 0x9186, 0x4df3, - 0x9187, 0x053f, - 0x9188, 0x4df4, - 0x9189, 0x124a, - 0x918a, 0x4df5, - 0x918b, 0x055a, - 0x918c, 0x1d07, - 0x918d, 0x1d0a, - 0x918e, 0x4df6, - 0x9190, 0x1d09, - 0x9191, 0x1d0b, - 0x9192, 0x0f9c, - 0x9193, 0x4df8, - 0x9196, 0x2255, - 0x9197, 0x4dfb, - 0x919a, 0x0ad6, - 0x919b, 0x0c84, - 0x919c, 0x1e8f, - 0x919d, 0x4dfe, - 0x91a2, 0x1d0c, - 0x91a4, 0x4e03, - 0x91aa, 0x1d0e, - 0x91ab, 0x220c, - 0x91ac, 0x1fa4, - 0x91ad, 0x1d0f, - 0x91b0, 0x4e09, - 0x91b4, 0x1d13, - 0x91b5, 0x1d12, - 0x91b6, 0x4e0d, - 0x91ba, 0x1d14, - 0x91bb, 0x4e11, - 0x91c0, 0x209b, - 0x91c1, 0x21d8, - 0x91c2, 0x4e16, - 0x91c3, 0x25fa, - 0x91c4, 0x4e17, - 0x91c5, 0x25f9, - 0x91c6, 0x4e18, - 0x91c7, 0x0490, - 0x91c8, 0x4e19, - 0x91c9, 0x10b9, - 0x91ca, 0x0d64, - 0x91cb, 0x2134, - 0x91cc, 0x09da, - 0x91cd, 0x11d7, - 0x91ce, 0x1037, - 0x91cf, 0x0a08, - 0x91d0, 0x4e1a, - 0x91d1, 0x08c1, - 0x91d2, 0x24f3, - 0x91d5, 0x24f8, - 0x91d6, 0x4e1b, - 0x91d7, 0x24f7, - 0x91d8, 0x1ec8, - 0x91d9, 0x24f6, - 0x91da, 0x4e1c, - 0x91dc, 0x06a5, - 0x91dd, 0x2280, - 0x91de, 0x4e1e, - 0x91e3, 0x1ec5, - 0x91e4, 0x24fb, - 0x91e5, 0x4e23, - 0x91e7, 0x24fa, - 0x91e8, 0x4e25, - 0x91e9, 0x1eed, - 0x91ea, 0x4e26, - 0x91f5, 0x24fd, - 0x91f6, 0x4e31, - 0x91f7, 0x24f9, - 0x91f8, 0x4e32, - 0x91f9, 0x24fe, - 0x91fa, 0x20cd, - 0x91fb, 0x4e33, - 0x9200, 0x2508, - 0x9201, 0x2504, - 0x9202, 0x4e38, - 0x9204, 0x2506, - 0x9205, 0x4e3a, - 0x9208, 0x24ff, - 0x9209, 0x2090, - 0x920a, 0x4e3d, - 0x920d, 0x1edd, - 0x920e, 0x1f25, - 0x920f, 0x4e40, - 0x9210, 0x2503, - 0x9211, 0x2502, - 0x9212, 0x4e41, - 0x9214, 0x1e7a, - 0x9215, 0x20a6, - 0x9216, 0x4e43, - 0x921e, 0x1fd5, - 0x921f, 0x4e4b, - 0x9223, 0x1f11, - 0x9224, 0x4e4f, - 0x9225, 0x2507, - 0x9226, 0x2500, - 0x9227, 0x2505, - 0x9228, 0x4e50, - 0x922e, 0x2519, - 0x922f, 0x4e56, - 0x9230, 0x2515, - 0x9231, 0x4e57, - 0x9233, 0x250c, - 0x9234, 0x2031, - 0x9235, 0x4e59, - 0x9237, 0x250b, - 0x9238, 0x250f, - 0x9239, 0x251a, - 0x923a, 0x2509, - 0x923b, 0x4e5b, - 0x923d, 0x250e, - 0x923e, 0x2234, - 0x923f, 0x2513, - 0x9240, 0x1f80, - 0x9241, 0x4e5d, - 0x9245, 0x2501, - 0x9246, 0x4e61, - 0x9248, 0x2517, - 0x9249, 0x2516, - 0x924a, 0x4e63, - 0x924d, 0x2518, - 0x924e, 0x4e66, - 0x9251, 0x1e56, - 0x9252, 0x4e69, - 0x9255, 0x250d, - 0x9256, 0x4e6c, - 0x9257, 0x20d3, - 0x9258, 0x4e6d, - 0x925a, 0x207a, - 0x925b, 0x20ce, - 0x925c, 0x4e6f, - 0x925e, 0x2510, - 0x925f, 0x4e71, - 0x9262, 0x1e55, - 0x9263, 0x4e74, - 0x9266, 0x250a, - 0x9267, 0x4e77, - 0x926c, 0x2511, - 0x926e, 0x4e7c, - 0x9274, 0x086b, - 0x9275, 0x4e82, - 0x9278, 0x1faa, - 0x9279, 0x4e85, - 0x927a, 0x251e, - 0x927b, 0x1f1f, - 0x927c, 0x4e86, - 0x927f, 0x252d, - 0x9280, 0x221d, - 0x9281, 0x4e89, - 0x9283, 0x2532, - 0x9284, 0x4e8b, - 0x9285, 0x217b, - 0x9286, 0x4e8c, - 0x928e, 0x1d80, - 0x928f, 0x4e94, - 0x9291, 0x21af, - 0x9292, 0x4e96, - 0x9293, 0x252c, - 0x9294, 0x4e97, - 0x9296, 0x2528, - 0x9297, 0x4e99, - 0x9298, 0x208c, - 0x9299, 0x4e9a, - 0x929a, 0x252f, - 0x929b, 0x4e9b, - 0x929c, 0x21bc, - 0x929d, 0x4e9c, - 0x92a0, 0x251d, - 0x92a1, 0x4e9f, - 0x92a3, 0x2535, - 0x92a4, 0x4ea1, - 0x92a5, 0x220d, - 0x92a6, 0x2526, - 0x92a7, 0x4ea2, - 0x92a8, 0x2534, - 0x92a9, 0x252a, - 0x92aa, 0x251f, - 0x92ab, 0x2531, - 0x92ac, 0x251c, - 0x92ad, 0x4ea3, - 0x92ae, 0x1d81, - 0x92af, 0x4ea4, - 0x92b1, 0x2525, - 0x92b2, 0x4ea6, - 0x92b7, 0x21cd, - 0x92b8, 0x4eab, - 0x92b9, 0x21da, - 0x92ba, 0x4eac, - 0x92bb, 0x2172, - 0x92bc, 0x253e, - 0x92bd, 0x4ead, - 0x92c1, 0x204f, - 0x92c2, 0x4eb1, - 0x92c3, 0x2543, - 0x92c4, 0x4eb2, - 0x92c5, 0x21d7, - 0x92c6, 0x4eb3, - 0x92c7, 0x1e3c, - 0x92c8, 0x1d82, - 0x92c9, 0x4eb4, - 0x92cc, 0x2529, - 0x92cd, 0x4eb7, - 0x92cf, 0x2521, - 0x92d0, 0x4eb9, - 0x92d2, 0x1eff, - 0x92d3, 0x4ebb, - 0x92dd, 0x253f, - 0x92de, 0x4ec5, - 0x92df, 0x2544, - 0x92e0, 0x4ec6, - 0x92e3, 0x2523, - 0x92e4, 0x1e90, - 0x92e5, 0x253a, - 0x92e6, 0x2545, - 0x92e7, 0x4ec9, - 0x92e8, 0x253d, - 0x92e9, 0x4eca, - 0x92ea, 0x20c1, - 0x92eb, 0x4ecb, - 0x92ed, 0x2103, - 0x92ee, 0x2520, - 0x92ef, 0x253c, - 0x92f0, 0x253b, - 0x92f1, 0x2538, - 0x92f2, 0x4ecd, - 0x92f6, 0x2540, - 0x92f7, 0x4ed1, - 0x92f8, 0x1fcd, - 0x92f9, 0x4ed2, - 0x92fc, 0x1f18, - 0x92fd, 0x4ed5, - 0x9300, 0x4ed8, - 0x9301, 0x254b, - 0x9302, 0x4ed9, - 0x9306, 0x2547, - 0x9307, 0x254f, - 0x9309, 0x4edd, - 0x9310, 0x22b0, - 0x9311, 0x4ee4, - 0x9312, 0x2546, - 0x9313, 0x4ee5, - 0x9315, 0x254c, - 0x9316, 0x4ee7, - 0x9318, 0x1e9a, - 0x9319, 0x2552, - 0x931a, 0x2530, - 0x931b, 0x2549, - 0x931c, 0x4ee9, - 0x931f, 0x2551, - 0x9320, 0x1eca, - 0x9321, 0x4eec, - 0x9322, 0x20d2, - 0x9323, 0x4eed, - 0x9326, 0x1fb8, - 0x9327, 0x4ef0, - 0x9328, 0x2079, - 0x9329, 0x4ef1, - 0x932b, 0x21ab, - 0x932c, 0x4ef3, - 0x932e, 0x254d, - 0x932f, 0x1ea5, - 0x9330, 0x4ef5, - 0x9332, 0x204c, - 0x9333, 0x2080, - 0x9334, 0x4ef7, - 0x9336, 0x266d, - 0x9337, 0x4ef9, - 0x9338, 0x2537, - 0x9339, 0x4efa, - 0x933e, 0x1d83, - 0x933f, 0x4eff, - 0x9340, 0x254a, - 0x9341, 0x21b8, - 0x9342, 0x4f00, - 0x9343, 0x254e, - 0x9344, 0x4f01, - 0x9346, 0x24fc, - 0x9347, 0x2554, - 0x9348, 0x4f03, - 0x934b, 0x1f3c, - 0x934c, 0x4f06, - 0x934d, 0x1ed5, - 0x934e, 0x4f07, - 0x9354, 0x2556, - 0x9355, 0x4f0d, - 0x9358, 0x2268, - 0x9359, 0x4f10, - 0x935b, 0x1ed6, - 0x935c, 0x4f12, - 0x9364, 0x2557, - 0x9365, 0x2553, - 0x9366, 0x4f1a, - 0x9369, 0x2548, - 0x936a, 0x1d84, - 0x936b, 0x4f1d, - 0x936c, 0x20dc, - 0x936d, 0x4f1e, - 0x9370, 0x2559, - 0x9371, 0x4f21, - 0x9375, 0x1f97, - 0x9376, 0x2555, - 0x9377, 0x4f25, - 0x937a, 0x227d, - 0x937b, 0x4f28, - 0x937e, 0x257e, - 0x937f, 0x4f2b, - 0x9382, 0x207c, - 0x9383, 0x4f2e, - 0x9384, 0x255a, - 0x9385, 0x4f2f, - 0x9387, 0x255e, - 0x9388, 0x4f31, - 0x938a, 0x1e34, - 0x938b, 0x4f33, - 0x938f, 0x1d86, - 0x9390, 0x4f37, - 0x9396, 0x215e, - 0x9397, 0x4f3d, - 0x9398, 0x2560, - 0x9399, 0x4f3e, - 0x93a2, 0x21a2, - 0x93a3, 0x2354, - 0x93a4, 0x4f47, - 0x93a6, 0x2563, - 0x93a7, 0x2527, - 0x93a8, 0x4f49, - 0x93a9, 0x252e, - 0x93aa, 0x2558, - 0x93ab, 0x4f4a, - 0x93ac, 0x1f1b, - 0x93ad, 0x4f4b, - 0x93ae, 0x2283, - 0x93af, 0x4f4c, - 0x93b0, 0x2564, - 0x93b1, 0x4f4d, - 0x93b3, 0x20a0, - 0x93b4, 0x4f4f, - 0x93b5, 0x2565, - 0x93b6, 0x4f50, - 0x93b8, 0x2561, - 0x93b9, 0x4f52, - 0x93bf, 0x2562, - 0x93c0, 0x4f58, - 0x93c3, 0x256c, - 0x93c4, 0x4f5b, - 0x93c7, 0x256d, - 0x93c8, 0x2020, - 0x93c9, 0x4f5e, - 0x93ca, 0x1d85, - 0x93cb, 0x4f5f, - 0x93cc, 0x255f, - 0x93cd, 0x256a, - 0x93ce, 0x4f60, - 0x93d1, 0x256e, - 0x93d2, 0x4f63, - 0x93d6, 0x1e01, - 0x93d7, 0x2539, - 0x93d8, 0x255c, - 0x93d9, 0x4f67, - 0x93dc, 0x2568, - 0x93de, 0x256b, - 0x93df, 0x1e6f, - 0x93e0, 0x4f6a, - 0x93e1, 0x1fc4, - 0x93e2, 0x2567, - 0x93e3, 0x4f6b, - 0x93e4, 0x255b, - 0x93e5, 0x4f6c, - 0x93e8, 0x261d, - 0x93e9, 0x4f6f, - 0x93f5, 0x252b, - 0x93f6, 0x4f7b, - 0x93f7, 0x2571, - 0x93f8, 0x4f7c, - 0x93f9, 0x2577, - 0x93fa, 0x4f7d, - 0x9400, 0x4f83, - 0x9403, 0x2522, - 0x9404, 0x4f86, - 0x940b, 0x2533, - 0x940c, 0x4f8d, - 0x9410, 0x202a, - 0x9411, 0x4f91, - 0x9412, 0x2536, - 0x9413, 0x2573, - 0x9414, 0x256f, - 0x9415, 0x4f92, - 0x9418, 0x2293, - 0x9419, 0x2578, - 0x941a, 0x4f95, - 0x941d, 0x2570, - 0x941e, 0x4f98, - 0x9420, 0x2575, - 0x9421, 0x4f9a, - 0x9426, 0x2541, - 0x9428, 0x255d, - 0x9429, 0x4f9f, - 0x942e, 0x201a, - 0x942f, 0x4fa4, - 0x9432, 0x257a, - 0x9433, 0x2006, - 0x9434, 0x4fa7, - 0x9435, 0x2177, - 0x9436, 0x4fa8, - 0x9438, 0x251b, - 0x9439, 0x4faa, - 0x943a, 0x2524, - 0x943b, 0x4fab, - 0x943e, 0x1d87, - 0x943f, 0x257b, - 0x9440, 0x4fae, - 0x9444, 0x22a3, - 0x9445, 0x4fb2, - 0x944a, 0x2579, - 0x944b, 0x4fb7, - 0x944c, 0x2566, - 0x944d, 0x4fb8, - 0x9452, 0x1f93, - 0x9453, 0x4fbd, - 0x9454, 0x257c, - 0x9455, 0x4fbe, - 0x9460, 0x2514, - 0x9461, 0x4fc9, - 0x9463, 0x257d, - 0x9464, 0x4fcb, - 0x9465, 0x2572, - 0x9466, 0x4fcc, - 0x946b, 0x1d88, - 0x946c, 0x4fd1, - 0x946d, 0x2574, - 0x946e, 0x4fd2, - 0x9470, 0x224e, - 0x9471, 0x4fd4, - 0x9472, 0x21c6, - 0x9473, 0x4fd5, - 0x9477, 0x209f, - 0x9478, 0x4fd9, - 0x9479, 0x2576, - 0x947a, 0x4fda, - 0x947c, 0x2064, - 0x947d, 0x22bf, - 0x947e, 0x261c, - 0x947f, 0x225e, - 0x9480, 0x4fdc, - 0x9485, 0x1a8e, - 0x9488, 0x118c, - 0x9489, 0x05e3, - 0x948a, 0x1a92, - 0x948b, 0x1a91, - 0x948c, 0x1a93, - 0x948e, 0x0c22, - 0x948f, 0x1a95, - 0x9491, 0x4fe1, - 0x9492, 0x064d, - 0x9493, 0x05d7, - 0x9494, 0x1a97, - 0x9495, 0x1a99, - 0x9496, 0x4fe2, - 0x9497, 0x1a98, - 0x9498, 0x4fe3, - 0x9499, 0x06c1, - 0x949a, 0x1a9a, - 0x949d, 0x061a, - 0x949e, 0x04d3, - 0x949f, 0x11d2, - 0x94a0, 0x0b29, - 0x94a1, 0x041e, - 0x94a2, 0x06d1, - 0x94a3, 0x1a9d, - 0x94a5, 0x1102, - 0x94a6, 0x0c52, - 0x94a7, 0x092a, - 0x94a8, 0x0ee8, - 0x94a9, 0x070c, - 0x94aa, 0x1aa0, - 0x94ab, 0x1a9f, - 0x94ac, 0x1aa2, - 0x94ad, 0x1aa1, - 0x94ae, 0x0b66, - 0x94af, 0x1aa3, - 0x94b1, 0x0c2b, - 0x94b2, 0x1aa5, - 0x94b3, 0x0c2c, - 0x94b4, 0x1aa6, - 0x94b5, 0x046e, - 0x94b6, 0x1aa7, - 0x94bb, 0x1247, - 0x94bc, 0x1aac, - 0x94be, 0x084b, - 0x94bf, 0x1aae, - 0x94c0, 0x10b0, - 0x94c1, 0x0e4d, - 0x94c2, 0x0473, - 0x94c3, 0x0a2e, - 0x94c4, 0x1aaf, - 0x94c5, 0x0c23, - 0x94c6, 0x0ab2, - 0x94c7, 0x4fe4, - 0x94c8, 0x1ab0, - 0x94cf, 0x4fe5, - 0x94d0, 0x1ab7, - 0x94d3, 0x4fe6, - 0x94d5, 0x1aba, - 0x94d8, 0x1abe, - 0x94d9, 0x1abd, - 0x94da, 0x4fe8, - 0x94db, 0x1abf, - 0x94dc, 0x0e5e, - 0x94dd, 0x0a68, - 0x94de, 0x1ac0, - 0x94e1, 0x1142, - 0x94e2, 0x1ac3, - 0x94e3, 0x0f20, - 0x94e4, 0x1ac4, - 0x94e6, 0x4fe9, - 0x94e7, 0x1ac6, - 0x94e9, 0x1ac9, - 0x94ea, 0x1ac8, - 0x94eb, 0x1aca, - 0x94ec, 0x06f0, - 0x94ed, 0x0aff, - 0x94ee, 0x1acb, - 0x94f0, 0x0893, - 0x94f1, 0x1046, - 0x94f2, 0x04c0, - 0x94f3, 0x1acd, - 0x94f6, 0x107f, - 0x94f7, 0x1ad0, - 0x94f8, 0x11fc, - 0x94f9, 0x1ad1, - 0x94fa, 0x0beb, - 0x94fb, 0x4fea, - 0x94fc, 0x1ad2, - 0x94fe, 0x09fd, - 0x94ff, 0x1ad4, - 0x9500, 0x0f67, - 0x9501, 0x0ded, - 0x9502, 0x1ad6, - 0x9503, 0x1ad5, - 0x9504, 0x051f, - 0x9505, 0x0751, - 0x9506, 0x1ad7, - 0x9508, 0x0fad, - 0x9509, 0x1ad9, - 0x950b, 0x0683, - 0x950c, 0x0f8a, - 0x950d, 0x1adb, - 0x9510, 0x0ccc, - 0x9511, 0x0e33, - 0x9512, 0x1ade, - 0x9517, 0x1181, - 0x9518, 0x1ae3, - 0x9519, 0x0570, - 0x951a, 0x0aaf, - 0x951b, 0x1ae4, - 0x951c, 0x4feb, - 0x951d, 0x1ae5, - 0x9520, 0x4fec, - 0x9521, 0x0f0c, - 0x9522, 0x1ae8, - 0x9523, 0x0a87, - 0x9524, 0x053b, - 0x9525, 0x1213, - 0x9526, 0x08c6, - 0x9527, 0x4fed, - 0x9528, 0x0f34, - 0x9529, 0x1aeb, - 0x952a, 0x1ae9, - 0x952c, 0x1aec, - 0x952d, 0x05e6, - 0x952e, 0x086f, - 0x952f, 0x0911, - 0x9530, 0x0ad1, - 0x9531, 0x1aed, - 0x9533, 0x4fee, - 0x9534, 0x1aef, - 0x9535, 0x1af7, - 0x9536, 0x1af0, - 0x9539, 0x0c3f, - 0x953a, 0x1b19, - 0x953b, 0x060c, - 0x953c, 0x1af3, - 0x953d, 0x4fef, - 0x953e, 0x1af4, - 0x9540, 0x0605, - 0x9541, 0x0ac3, - 0x9542, 0x1af6, - 0x9543, 0x4ff0, - 0x9544, 0x1af8, - 0x9547, 0x1193, - 0x9548, 0x4ff1, - 0x9549, 0x1afb, - 0x954a, 0x0b5a, - 0x954b, 0x4ff2, - 0x954c, 0x1afc, - 0x954d, 0x0b5b, - 0x954e, 0x1afd, - 0x9550, 0x06df, - 0x9551, 0x0402, - 0x9552, 0x1aff, - 0x9555, 0x4ff3, - 0x9556, 0x1b02, - 0x955a, 0x4ff4, - 0x955b, 0x1b06, - 0x955c, 0x08e4, - 0x955d, 0x1b09, - 0x955e, 0x1b07, - 0x9560, 0x4ff5, - 0x9561, 0x1b0a, - 0x9563, 0x0a16, - 0x9564, 0x1b0c, - 0x956d, 0x09c3, - 0x956e, 0x4ff6, - 0x956f, 0x1b15, - 0x9570, 0x09f6, - 0x9571, 0x1b16, - 0x9574, 0x4ff7, - 0x9576, 0x0f4f, - 0x9577, 0x1e75, - 0x9578, 0x4ff9, - 0x957f, 0x04c9, - 0x9580, 0x207d, - 0x9581, 0x5000, - 0x9582, 0x23bf, - 0x9583, 0x2113, - 0x9584, 0x5001, - 0x9586, 0x23c0, - 0x9587, 0x5003, - 0x9589, 0x1e45, - 0x958a, 0x5005, - 0x958b, 0x1fd8, - 0x958c, 0x23c4, - 0x958d, 0x5006, - 0x958e, 0x23c2, - 0x958f, 0x2104, - 0x9590, 0x5007, - 0x9591, 0x21bd, - 0x9592, 0x5008, - 0x9593, 0x1f87, - 0x9594, 0x23c3, - 0x9595, 0x5009, - 0x9598, 0x2269, - 0x9599, 0x500c, - 0x95a1, 0x1f43, - 0x95a2, 0x5014, - 0x95a3, 0x1f1e, - 0x95a4, 0x2679, - 0x95a5, 0x1eeb, - 0x95a6, 0x5015, - 0x95a8, 0x1f35, - 0x95a9, 0x208a, - 0x95aa, 0x5017, - 0x95ab, 0x23c7, - 0x95ac, 0x23c9, - 0x95ad, 0x23c6, - 0x95ae, 0x5018, - 0x95b2, 0x224f, - 0x95b3, 0x501c, - 0x95b6, 0x23cb, - 0x95b7, 0x501f, - 0x95b9, 0x21f3, - 0x95ba, 0x5021, - 0x95bb, 0x21f7, - 0x95bc, 0x23cf, - 0x95bd, 0x23ce, - 0x95be, 0x23ca, - 0x95bf, 0x23cd, - 0x95c0, 0x5022, - 0x95c3, 0x23d0, - 0x95c4, 0x5025, - 0x95c6, 0x266c, - 0x95c7, 0x5027, - 0x95c8, 0x23c1, - 0x95c9, 0x5028, - 0x95ca, 0x1fee, - 0x95cb, 0x23d1, - 0x95cc, 0x1ff8, - 0x95cd, 0x5029, - 0x95d0, 0x23d3, - 0x95d1, 0x502c, - 0x95d4, 0x23d2, - 0x95d5, 0x23d4, - 0x95d6, 0x1e98, - 0x95d7, 0x502f, - 0x95dc, 0x1f2c, - 0x95dd, 0x5034, - 0x95de, 0x23d5, - 0x95df, 0x5035, - 0x95e1, 0x1e71, - 0x95e2, 0x2691, - 0x95e3, 0x5037, - 0x95e5, 0x23c5, - 0x95e6, 0x5039, - 0x95e8, 0x0aca, - 0x95e9, 0x1685, - 0x95ea, 0x0cfa, - 0x95eb, 0x1686, - 0x95ec, 0x503b, - 0x95ed, 0x043e, - 0x95ee, 0x0ed9, - 0x95ef, 0x0536, - 0x95f0, 0x0ccd, - 0x95f1, 0x1687, - 0x95f2, 0x0f3d, - 0x95f3, 0x1688, - 0x95f4, 0x0857, - 0x95f5, 0x1689, - 0x95f7, 0x0acb, - 0x95f8, 0x1143, - 0x95f9, 0x0b39, - 0x95fa, 0x0744, - 0x95fb, 0x0ed4, - 0x95fc, 0x168b, - 0x95fd, 0x0afb, - 0x95fe, 0x168c, - 0x95ff, 0x503c, - 0x9600, 0x0644, - 0x9601, 0x06ee, - 0x9602, 0x0789, - 0x9603, 0x168d, - 0x9605, 0x1107, - 0x9606, 0x168f, - 0x9607, 0x503d, - 0x9608, 0x1690, - 0x9609, 0x0ff4, - 0x960a, 0x1691, - 0x960e, 0x0fff, - 0x960f, 0x1695, - 0x9610, 0x04c2, - 0x9611, 0x09a6, - 0x9612, 0x1696, - 0x9613, 0x503e, - 0x9614, 0x0996, - 0x9615, 0x1697, - 0x9618, 0x503f, - 0x9619, 0x169a, - 0x961b, 0x5040, - 0x961c, 0x06b2, - 0x961d, 0x1354, - 0x961e, 0x5041, - 0x961f, 0x0612, - 0x9620, 0x5042, - 0x9621, 0x1356, - 0x9622, 0x1355, - 0x9623, 0x5043, - 0x962a, 0x1358, - 0x962b, 0x504a, - 0x962e, 0x0cc9, - 0x962f, 0x504d, - 0x9631, 0x1357, - 0x9632, 0x065d, - 0x9633, 0x101d, - 0x9634, 0x107c, - 0x9635, 0x1194, - 0x9636, 0x08a8, - 0x9637, 0x504f, - 0x963b, 0x1245, - 0x963c, 0x135a, - 0x963d, 0x1359, - 0x963e, 0x5053, - 0x963f, 0x03ad, - 0x9640, 0x0e84, - 0x9641, 0x5054, - 0x9642, 0x135b, - 0x9643, 0x5055, - 0x9644, 0x06b8, - 0x9645, 0x083d, - 0x9646, 0x0a64, - 0x9647, 0x0a4b, - 0x9648, 0x04e7, - 0x9649, 0x135c, - 0x964a, 0x5056, - 0x964b, 0x0a51, - 0x964c, 0x0b13, - 0x964d, 0x0886, - 0x964e, 0x5057, - 0x9650, 0x0f4b, - 0x9651, 0x5059, - 0x9654, 0x135d, - 0x9655, 0x0cfb, - 0x9656, 0x505c, - 0x9658, 0x231a, - 0x9659, 0x505e, - 0x965b, 0x0446, - 0x965c, 0x5060, - 0x965d, 0x2114, - 0x965e, 0x5061, - 0x965f, 0x135e, - 0x9660, 0x5062, - 0x9661, 0x05f7, - 0x9662, 0x10fd, - 0x9663, 0x2284, - 0x9664, 0x0522, - 0x9665, 0x5063, - 0x9667, 0x135f, - 0x9668, 0x110c, - 0x9669, 0x0f42, - 0x966a, 0x0ba4, - 0x966b, 0x5065, - 0x966c, 0x1360, - 0x966d, 0x5066, - 0x9670, 0x221c, - 0x9671, 0x5069, - 0x9672, 0x1361, - 0x9673, 0x1e7e, - 0x9674, 0x1362, - 0x9675, 0x0a33, - 0x9676, 0x0e28, - 0x9677, 0x0f4a, - 0x9678, 0x204d, - 0x9679, 0x506a, - 0x967d, 0x2201, - 0x967e, 0x506e, - 0x9685, 0x10cc, - 0x9686, 0x0a48, - 0x9687, 0x5075, - 0x9688, 0x1363, - 0x9689, 0x5076, - 0x968a, 0x1ed9, - 0x968b, 0x0dda, - 0x968c, 0x5077, - 0x968d, 0x1364, - 0x968e, 0x1fb2, - 0x968f, 0x0ddb, - 0x9690, 0x1085, - 0x9691, 0x5078, - 0x9694, 0x06ef, - 0x9695, 0x2252, - 0x9696, 0x507b, - 0x9697, 0x1365, - 0x9698, 0x03ba, - 0x9699, 0x0f23, - 0x969a, 0x507c, - 0x969b, 0x1f79, - 0x969c, 0x1170, - 0x969d, 0x507d, - 0x96a7, 0x0de2, - 0x96a8, 0x2157, - 0x96a9, 0x5087, - 0x96aa, 0x21bf, - 0x96ab, 0x5088, - 0x96b0, 0x1366, - 0x96b1, 0x221f, - 0x96b2, 0x508d, - 0x96b3, 0x1684, - 0x96b4, 0x203d, - 0x96b5, 0x508e, - 0x96b6, 0x09ee, - 0x96b7, 0x508f, - 0x96b8, 0x2015, - 0x96b9, 0x1d79, - 0x96ba, 0x5090, - 0x96bb, 0x26a5, - 0x96bc, 0x1d7a, - 0x96be, 0x0b34, - 0x96bf, 0x5091, - 0x96c0, 0x0c93, - 0x96c1, 0x100c, - 0x96c2, 0x5092, - 0x96c4, 0x0fa6, - 0x96c5, 0x0fee, - 0x96c6, 0x0822, - 0x96c7, 0x0726, - 0x96c8, 0x5094, - 0x96c9, 0x1b1c, - 0x96ca, 0x5095, - 0x96cc, 0x0549, - 0x96cd, 0x109f, - 0x96ce, 0x1d7c, - 0x96cf, 0x0520, - 0x96d0, 0x5097, - 0x96d2, 0x1d7d, - 0x96d3, 0x5099, - 0x96d5, 0x05d2, - 0x96d6, 0x2156, - 0x96d7, 0x509b, - 0x96d9, 0x2144, - 0x96da, 0x509d, - 0x96db, 0x1e91, - 0x96dc, 0x2257, - 0x96dd, 0x509e, - 0x96e0, 0x1d7f, - 0x96e1, 0x50a1, - 0x96e2, 0x200a, - 0x96e3, 0x2092, - 0x96e4, 0x50a2, - 0x96e8, 0x10cf, - 0x96e9, 0x1d61, - 0x96ea, 0x0fd2, - 0x96eb, 0x50a6, - 0x96ef, 0x1d63, - 0x96f0, 0x50aa, - 0x96f2, 0x2250, - 0x96f3, 0x1d62, - 0x96f4, 0x50ac, - 0x96f6, 0x0a2c, - 0x96f7, 0x09c2, - 0x96f8, 0x50ae, - 0x96f9, 0x040b, - 0x96fa, 0x50af, - 0x96fb, 0x1ec3, - 0x96fc, 0x50b0, - 0x96fe, 0x0efc, - 0x96ff, 0x50b2, - 0x9700, 0x0fb3, - 0x9701, 0x1d65, - 0x9702, 0x50b3, - 0x9704, 0x0f63, - 0x9705, 0x50b5, - 0x9706, 0x1d64, - 0x9707, 0x1191, - 0x9708, 0x1d66, - 0x9709, 0x0abe, - 0x970a, 0x50b6, - 0x970d, 0x0809, - 0x970e, 0x1d68, - 0x970f, 0x1d67, - 0x9710, 0x50b9, - 0x9713, 0x0b41, - 0x9714, 0x50bc, - 0x9716, 0x0a21, - 0x9717, 0x50be, - 0x971c, 0x0d9f, - 0x971d, 0x50c3, - 0x971e, 0x0f29, - 0x971f, 0x50c4, - 0x9727, 0x21a8, - 0x9728, 0x50cc, - 0x972a, 0x1d69, - 0x972b, 0x50ce, - 0x972d, 0x1d6a, - 0x972e, 0x50d0, - 0x9730, 0x1d6b, - 0x9731, 0x50d2, - 0x9732, 0x0a5d, - 0x9733, 0x50d3, - 0x9738, 0x03df, - 0x9739, 0x0bba, - 0x973a, 0x50d8, - 0x973d, 0x260d, - 0x973e, 0x1d6c, - 0x973f, 0x50db, - 0x9742, 0x260c, - 0x9743, 0x50de, - 0x9744, 0x260e, - 0x9745, 0x50df, - 0x9748, 0x2032, - 0x9749, 0x50e2, - 0x9752, 0x0c5d, - 0x9753, 0x1d60, - 0x9754, 0x50eb, - 0x9756, 0x08e7, - 0x9757, 0x50ed, - 0x9759, 0x08e1, - 0x975a, 0x260b, - 0x975b, 0x05c6, - 0x975c, 0x50ef, - 0x975e, 0x0664, - 0x975f, 0x50f1, - 0x9760, 0x094c, - 0x9761, 0x0ad7, - 0x9762, 0x0aeb, - 0x9763, 0x50f2, - 0x9765, 0x1282, - 0x9766, 0x50f4, - 0x9768, 0x22c3, - 0x9769, 0x06ea, - 0x976a, 0x50f6, - 0x9773, 0x08ca, - 0x9774, 0x0fce, - 0x9775, 0x50ff, - 0x9776, 0x03db, - 0x9777, 0x5100, - 0x977c, 0x1dc8, - 0x977d, 0x5105, - 0x9785, 0x1dc9, - 0x9786, 0x510d, - 0x978b, 0x0f77, - 0x978c, 0x5112, - 0x978d, 0x03bb, - 0x978e, 0x5113, - 0x978f, 0x1f23, - 0x9790, 0x5114, - 0x9791, 0x1dca, - 0x9793, 0x5115, - 0x9794, 0x1dcc, - 0x9795, 0x5116, - 0x9798, 0x0c47, - 0x9799, 0x5119, - 0x97a0, 0x08fe, - 0x97a1, 0x5120, - 0x97a3, 0x1dcf, - 0x97a4, 0x5122, - 0x97a6, 0x2695, - 0x97a7, 0x5124, - 0x97ab, 0x1dce, - 0x97ac, 0x5128, - 0x97ad, 0x0447, - 0x97ae, 0x5129, - 0x97af, 0x1dcd, - 0x97b0, 0x512a, - 0x97b2, 0x1dd0, - 0x97b3, 0x512c, - 0x97b4, 0x1dd1, - 0x97b5, 0x512d, - 0x97bd, 0x265e, - 0x97be, 0x5135, - 0x97c3, 0x265d, - 0x97c4, 0x513a, - 0x97c6, 0x2692, - 0x97c7, 0x513c, - 0x97c9, 0x265f, - 0x97ca, 0x513e, - 0x97cb, 0x218d, - 0x97cc, 0x20fd, - 0x97cd, 0x513f, - 0x97d3, 0x1f40, - 0x97d4, 0x5145, - 0x97d9, 0x2465, - 0x97da, 0x514a, - 0x97dc, 0x2467, - 0x97dd, 0x514c, - 0x97de, 0x2466, - 0x97df, 0x514d, - 0x97e6, 0x0eb3, - 0x97e7, 0x0ca8, - 0x97e8, 0x5154, - 0x97e9, 0x0762, - 0x97ea, 0x184e, - 0x97ed, 0x08f1, - 0x97ee, 0x5155, - 0x97f3, 0x107b, - 0x97f4, 0x515a, - 0x97f5, 0x1112, - 0x97f6, 0x0d11, - 0x97f7, 0x515b, - 0x97ff, 0x21c9, - 0x9800, 0x5163, - 0x9801, 0x2209, - 0x9802, 0x1ec9, - 0x9803, 0x20e9, - 0x9804, 0x5164, - 0x9805, 0x21ca, - 0x9806, 0x2146, - 0x9807, 0x25c5, - 0x9808, 0x21dc, - 0x9809, 0x5165, - 0x980a, 0x245e, - 0x980b, 0x5166, - 0x980c, 0x214f, - 0x980d, 0x5167, - 0x980e, 0x25c6, - 0x9810, 0x2241, - 0x9811, 0x218a, - 0x9812, 0x1e2f, - 0x9813, 0x1edc, - 0x9814, 0x5168, - 0x9817, 0x20bf, - 0x9818, 0x2034, - 0x9819, 0x516b, - 0x981c, 0x25c9, - 0x981d, 0x516e, - 0x9821, 0x25c8, - 0x9822, 0x5172, - 0x9824, 0x220e, - 0x9825, 0x5174, - 0x9826, 0x25cb, - 0x9827, 0x5175, - 0x982d, 0x217d, - 0x982e, 0x517b, - 0x9830, 0x1f7e, - 0x9831, 0x517d, - 0x9837, 0x25cc, - 0x9838, 0x1fc3, - 0x9839, 0x5183, - 0x983b, 0x20b9, - 0x983c, 0x5185, - 0x983d, 0x2181, - 0x983e, 0x5186, - 0x9846, 0x1fda, - 0x9847, 0x518e, - 0x984c, 0x2173, - 0x984d, 0x1ee1, - 0x984e, 0x25cd, - 0x984f, 0x5193, - 0x9853, 0x25ce, - 0x9854, 0x21f6, - 0x9855, 0x5197, - 0x9858, 0x224b, - 0x9859, 0x25d1, - 0x985a, 0x519a, - 0x985b, 0x1ec0, - 0x985c, 0x519b, - 0x985e, 0x2008, - 0x985f, 0x519d, - 0x9862, 0x25d0, - 0x9863, 0x51a0, - 0x9865, 0x25d2, - 0x9866, 0x51a2, - 0x9867, 0x1f2a, - 0x9868, 0x51a3, - 0x986b, 0x1e72, - 0x986c, 0x25d3, - 0x986d, 0x51a6, - 0x986f, 0x21be, - 0x9870, 0x25d4, - 0x9871, 0x2044, - 0x9872, 0x51a8, - 0x9873, 0x25cf, - 0x9874, 0x20f3, - 0x9875, 0x103a, - 0x9876, 0x05e4, - 0x9877, 0x0c67, - 0x9878, 0x1be0, - 0x9879, 0x0f5b, - 0x987a, 0x0da8, - 0x987b, 0x0fb6, - 0x987c, 0x1827, - 0x987d, 0x0e98, - 0x987e, 0x0724, - 0x987f, 0x0618, - 0x9880, 0x1be1, - 0x9881, 0x03ef, - 0x9882, 0x0dc1, - 0x9883, 0x1be2, - 0x9884, 0x10e7, - 0x9885, 0x0a54, - 0x9886, 0x0a35, - 0x9887, 0x0be3, - 0x9888, 0x08e0, - 0x9889, 0x1be3, - 0x988a, 0x0848, - 0x988b, 0x51a9, - 0x988c, 0x1be4, - 0x988e, 0x51aa, - 0x988f, 0x1be6, - 0x9890, 0x104a, - 0x9891, 0x0bd4, - 0x9892, 0x51ab, - 0x9893, 0x0e78, - 0x9894, 0x1be7, - 0x9895, 0x51ac, - 0x9896, 0x1096, - 0x9897, 0x0952, - 0x9898, 0x0e35, - 0x9899, 0x51ad, - 0x989a, 0x1be8, - 0x989c, 0x0ffe, - 0x989d, 0x062d, - 0x989e, 0x1bea, - 0x98a0, 0x05c0, - 0x98a1, 0x1bec, - 0x98a3, 0x51ae, - 0x98a4, 0x04c3, - 0x98a5, 0x1bee, - 0x98a7, 0x0c82, - 0x98a8, 0x1f00, - 0x98a9, 0x51af, - 0x98ae, 0x24cc, - 0x98b0, 0x51b4, - 0x98b1, 0x2698, - 0x98b2, 0x51b5, - 0x98b3, 0x2678, - 0x98b4, 0x51b6, - 0x98b6, 0x24ce, - 0x98b7, 0x51b8, - 0x98bc, 0x24cf, - 0x98bd, 0x51bd, - 0x98c4, 0x20b8, - 0x98c5, 0x51c4, - 0x98c6, 0x24d0, - 0x98c7, 0x51c5, - 0x98c8, 0x24d1, - 0x98c9, 0x51c6, - 0x98ce, 0x0684, - 0x98cf, 0x51cb, - 0x98d1, 0x19b7, - 0x98d4, 0x51cd, - 0x98d5, 0x19ba, - 0x98d6, 0x51ce, - 0x98d8, 0x0bcd, - 0x98d9, 0x19bb, - 0x98db, 0x1ef4, - 0x98dc, 0x51d0, - 0x98de, 0x0666, - 0x98df, 0x0d4a, - 0x98e0, 0x239b, - 0x98e1, 0x51d2, - 0x98e2, 0x267e, - 0x98e3, 0x51d3, - 0x98e7, 0x161a, - 0x98e8, 0x1de7, - 0x98e9, 0x239d, - 0x98ea, 0x239f, - 0x98ec, 0x51d7, - 0x98ed, 0x23a1, - 0x98ee, 0x51d8, - 0x98ef, 0x1ef1, - 0x98f0, 0x51d9, - 0x98f2, 0x221e, - 0x98f3, 0x51db, - 0x98f4, 0x23a2, - 0x98f5, 0x51dc, - 0x98fc, 0x214b, - 0x98fd, 0x1e36, - 0x98fe, 0x2135, - 0x98ff, 0x51e3, - 0x9900, 0x51e4, - 0x9903, 0x1fad, - 0x9904, 0x51e7, - 0x9905, 0x1e53, - 0x9906, 0x51e8, - 0x9909, 0x23a3, - 0x990a, 0x2203, - 0x990b, 0x51eb, - 0x990c, 0x1ee7, - 0x990d, 0x1de8, - 0x990e, 0x51ec, - 0x9910, 0x0494, - 0x9911, 0x23a4, - 0x9912, 0x2097, - 0x9913, 0x1ee4, - 0x9914, 0x51ee, - 0x9918, 0x2238, - 0x9919, 0x51f2, - 0x991b, 0x23a5, - 0x991c, 0x51f4, - 0x991e, 0x1f9a, - 0x991f, 0x51f6, - 0x9921, 0x21c3, - 0x9922, 0x51f8, - 0x9928, 0x1f2e, - 0x9929, 0x51fe, - 0x992e, 0x1de9, - 0x992f, 0x5203, - 0x9933, 0x239c, - 0x9934, 0x5207, - 0x9937, 0x23a6, - 0x9938, 0x520a, - 0x993c, 0x239e, - 0x993d, 0x520e, - 0x993e, 0x2035, - 0x993f, 0x23a7, - 0x9940, 0x520f, - 0x9943, 0x23a8, - 0x9944, 0x5212, - 0x9945, 0x2075, - 0x9946, 0x5213, - 0x9948, 0x23a9, - 0x994b, 0x1feb, - 0x994c, 0x23ac, - 0x994d, 0x5215, - 0x9951, 0x1f6a, - 0x9952, 0x20f9, - 0x9953, 0x5219, - 0x9954, 0x1deb, - 0x9955, 0x1dea, - 0x9956, 0x521a, - 0x9957, 0x2666, - 0x9958, 0x521b, - 0x995c, 0x2667, - 0x995d, 0x521f, - 0x995e, 0x1e6c, - 0x995f, 0x5220, - 0x9962, 0x23ad, - 0x9963, 0x161d, - 0x9964, 0x5223, - 0x9965, 0x0815, - 0x9966, 0x5224, - 0x9967, 0x161e, - 0x996d, 0x0656, - 0x996e, 0x1082, - 0x996f, 0x0875, - 0x9970, 0x0d65, - 0x9971, 0x040e, - 0x9972, 0x0dbc, - 0x9973, 0x5225, - 0x9974, 0x1624, - 0x9975, 0x063b, - 0x9976, 0x0c9f, - 0x9977, 0x1625, - 0x9978, 0x5226, - 0x997a, 0x0899, - 0x997b, 0x5228, - 0x997c, 0x0466, - 0x997d, 0x1626, - 0x997e, 0x5229, - 0x997f, 0x0635, - 0x9980, 0x1627, - 0x9981, 0x0b3c, - 0x9982, 0x522a, - 0x9984, 0x1628, - 0x9985, 0x0f47, - 0x9986, 0x0736, - 0x9987, 0x1629, - 0x9988, 0x098c, - 0x9989, 0x522c, - 0x998a, 0x162a, - 0x998b, 0x04bd, - 0x998c, 0x522d, - 0x998d, 0x162b, - 0x998e, 0x522e, - 0x998f, 0x0a3c, - 0x9990, 0x162c, - 0x9992, 0x0a9f, - 0x9993, 0x162e, - 0x9996, 0x0d6e, - 0x9997, 0x126e, - 0x9998, 0x12f9, - 0x9999, 0x0f50, - 0x999a, 0x522f, - 0x99a5, 0x1b2b, - 0x99a6, 0x523a, - 0x99a8, 0x13de, - 0x99a9, 0x523c, - 0x99ac, 0x206d, - 0x99ad, 0x2242, - 0x99ae, 0x1f02, - 0x99af, 0x523f, - 0x99b1, 0x2183, - 0x99b2, 0x5241, - 0x99b3, 0x1e85, - 0x99b4, 0x21e9, - 0x99b5, 0x5242, - 0x99c1, 0x1e57, - 0x99c2, 0x524e, - 0x99d0, 0x22a5, - 0x99d1, 0x2407, - 0x99d2, 0x1fca, - 0x99d3, 0x525c, - 0x99d4, 0x2402, - 0x99d5, 0x1f82, - 0x99d6, 0x525d, - 0x99d8, 0x2408, - 0x99d9, 0x2404, - 0x99da, 0x525f, - 0x99db, 0x2131, - 0x99dc, 0x5260, - 0x99dd, 0x2184, - 0x99de, 0x5261, - 0x99df, 0x2403, - 0x99e0, 0x5262, - 0x99e1, 0x206e, - 0x99e2, 0x240b, - 0x99e3, 0x5263, - 0x99ed, 0x1f3f, - 0x99ee, 0x526d, - 0x99f1, 0x2067, - 0x99f2, 0x5270, - 0x99ff, 0x1fd7, - 0x9a00, 0x527d, - 0x9a01, 0x1e83, - 0x9a02, 0x527e, - 0x9a05, 0x240f, - 0x9a06, 0x5281, - 0x9a0d, 0x240e, - 0x9a0e, 0x20c7, - 0x9a0f, 0x240d, - 0x9a10, 0x5288, - 0x9a16, 0x2412, - 0x9a17, 0x528e, - 0x9a19, 0x20b7, - 0x9a1a, 0x5290, - 0x9a2b, 0x23f0, - 0x9a2c, 0x52a1, - 0x9a2d, 0x2411, - 0x9a2e, 0x2414, - 0x9a2f, 0x52a2, - 0x9a30, 0x2170, - 0x9a31, 0x52a3, - 0x9a36, 0x2405, - 0x9a37, 0x210c, - 0x9a38, 0x2415, - 0x9a39, 0x52a8, - 0x9a3e, 0x2066, - 0x9a3f, 0x52ad, - 0x9a40, 0x2352, - 0x9a41, 0x2413, - 0x9a42, 0x2410, - 0x9a43, 0x2416, - 0x9a45, 0x20f1, - 0x9a46, 0x52ae, - 0x9a4a, 0x240a, - 0x9a4b, 0x52b2, - 0x9a4d, 0x2409, - 0x9a4e, 0x52b4, - 0x9a4f, 0x2418, - 0x9a50, 0x52b5, - 0x9a55, 0x1fa7, - 0x9a56, 0x52ba, - 0x9a57, 0x21fc, - 0x9a58, 0x52bb, - 0x9a5a, 0x1fc1, - 0x9a5b, 0x2406, - 0x9a5c, 0x52bd, - 0x9a5f, 0x229c, - 0x9a60, 0x52c0, - 0x9a62, 0x204e, - 0x9a63, 0x52c2, - 0x9a64, 0x241a, - 0x9a65, 0x2419, - 0x9a66, 0x52c3, - 0x9a6a, 0x240c, - 0x9a6b, 0x52c7, - 0x9a6c, 0x0a94, - 0x9a6d, 0x10e9, - 0x9a6e, 0x0e85, - 0x9a6f, 0x0fda, - 0x9a70, 0x0500, - 0x9a71, 0x0c7a, - 0x9a72, 0x52c8, - 0x9a73, 0x047c, - 0x9a74, 0x0a66, - 0x9a75, 0x17ba, - 0x9a76, 0x0d52, - 0x9a77, 0x17bb, - 0x9a79, 0x0903, - 0x9a7a, 0x17bd, - 0x9a7b, 0x1201, - 0x9a7c, 0x0e86, - 0x9a7d, 0x17bf, - 0x9a7e, 0x0850, - 0x9a7f, 0x17be, - 0x9a80, 0x17c0, - 0x9a82, 0x0a95, - 0x9a83, 0x52c9, - 0x9a84, 0x088f, - 0x9a85, 0x17c2, - 0x9a86, 0x0a8d, - 0x9a87, 0x075e, - 0x9a88, 0x17c3, - 0x9a89, 0x52ca, - 0x9a8a, 0x17c4, - 0x9a8b, 0x04f7, - 0x9a8c, 0x1012, - 0x9a8d, 0x52cb, - 0x9a8f, 0x0932, - 0x9a90, 0x17c5, - 0x9a91, 0x0c0e, - 0x9a92, 0x17c6, - 0x9a94, 0x52cd, - 0x9a96, 0x17c8, - 0x9a97, 0x0bcc, - 0x9a98, 0x17c9, - 0x9a99, 0x52cf, - 0x9a9a, 0x0ce0, - 0x9a9b, 0x17ca, - 0x9a9e, 0x1735, - 0x9a9f, 0x17cd, - 0x9aa1, 0x0a89, - 0x9aa2, 0x17cf, - 0x9aa4, 0x11e7, - 0x9aa5, 0x17d1, - 0x9aa6, 0x52d0, - 0x9aa7, 0x17d2, - 0x9aa8, 0x0720, - 0x9aa9, 0x52d1, - 0x9aaf, 0x1e29, - 0x9ab0, 0x1dd3, - 0x9ab1, 0x1dd2, - 0x9ab2, 0x52d7, - 0x9ab6, 0x1dd6, - 0x9ab7, 0x1dd4, - 0x9ab8, 0x0758, - 0x9ab9, 0x52db, - 0x9aba, 0x1dd7, - 0x9abb, 0x52dc, - 0x9abc, 0x1dd8, - 0x9abd, 0x52dd, - 0x9ac0, 0x1dda, - 0x9ac1, 0x1dd9, - 0x9ac2, 0x1ddc, - 0x9ac3, 0x52e0, - 0x9ac5, 0x1ddb, - 0x9ac6, 0x52e2, - 0x9acb, 0x1ddd, - 0x9acd, 0x52e7, - 0x9acf, 0x2661, - 0x9ad0, 0x52e9, - 0x9ad1, 0x1ddf, - 0x9ad2, 0x26a4, - 0x9ad3, 0x0ddd, - 0x9ad4, 0x2174, - 0x9ad5, 0x2663, - 0x9ad6, 0x2662, - 0x9ad7, 0x52ea, - 0x9ad8, 0x06da, - 0x9ad9, 0x52eb, - 0x9adf, 0x1dec, - 0x9ae0, 0x52f1, - 0x9ae1, 0x1ded, - 0x9ae2, 0x52f2, - 0x9ae6, 0x1dee, - 0x9ae7, 0x52f6, - 0x9aeb, 0x1df0, - 0x9aec, 0x52fa, - 0x9aed, 0x1df2, - 0x9aee, 0x2675, - 0x9aef, 0x1def, - 0x9af0, 0x52fb, - 0x9af9, 0x1df3, - 0x9afa, 0x5304, - 0x9afb, 0x1df1, - 0x9afc, 0x5305, - 0x9b00, 0x5309, - 0x9b03, 0x1234, - 0x9b04, 0x530c, - 0x9b06, 0x214c, - 0x9b07, 0x530e, - 0x9b08, 0x1df4, - 0x9b09, 0x530f, - 0x9b0d, 0x267a, - 0x9b0e, 0x5313, - 0x9b0f, 0x1df5, - 0x9b10, 0x5314, - 0x9b13, 0x1df6, - 0x9b14, 0x5317, - 0x9b1a, 0x26a0, - 0x9b1b, 0x531d, - 0x9b1f, 0x1df7, - 0x9b20, 0x5321, - 0x9b22, 0x2668, - 0x9b23, 0x1df8, - 0x9b24, 0x5323, - 0x9b25, 0x1ed0, - 0x9b26, 0x5324, - 0x9b27, 0x2096, - 0x9b28, 0x5325, - 0x9b29, 0x23cc, - 0x9b2a, 0x5326, - 0x9b2e, 0x23c8, - 0x9b2f, 0x139b, - 0x9b30, 0x532a, - 0x9b31, 0x223e, - 0x9b32, 0x1260, - 0x9b33, 0x532b, - 0x9b3b, 0x1773, - 0x9b3c, 0x0746, - 0x9b3d, 0x5333, - 0x9b41, 0x098a, - 0x9b42, 0x07ff, - 0x9b43, 0x1de1, - 0x9b44, 0x0be6, - 0x9b45, 0x1de0, - 0x9b46, 0x5337, - 0x9b47, 0x1de2, - 0x9b48, 0x1de4, - 0x9b49, 0x1de3, - 0x9b4a, 0x5338, - 0x9b4d, 0x1de5, - 0x9b4e, 0x2665, - 0x9b4f, 0x0ec9, - 0x9b50, 0x533b, - 0x9b51, 0x1de6, - 0x9b52, 0x533c, - 0x9b54, 0x0b0a, - 0x9b55, 0x533e, - 0x9b58, 0x2664, - 0x9b59, 0x5341, - 0x9b5a, 0x2239, - 0x9b5b, 0x5342, - 0x9b6f, 0x204a, - 0x9b70, 0x5356, - 0x9b74, 0x261f, - 0x9b75, 0x535a, - 0x9b77, 0x261e, - 0x9b78, 0x535c, - 0x9b81, 0x2620, - 0x9b82, 0x5365, - 0x9b83, 0x2621, - 0x9b84, 0x5366, - 0x9b8e, 0x2622, - 0x9b8f, 0x5370, - 0x9b90, 0x2627, - 0x9b91, 0x1e39, - 0x9b92, 0x2625, - 0x9b93, 0x5371, - 0x9b9a, 0x2629, - 0x9b9b, 0x5378, - 0x9b9d, 0x262e, - 0x9b9e, 0x262b, - 0x9b9f, 0x537a, - 0x9baa, 0x262a, - 0x9bab, 0x262d, - 0x9bac, 0x5385, - 0x9bad, 0x2628, - 0x9bae, 0x21b9, - 0x9baf, 0x5386, - 0x9bc0, 0x2636, - 0x9bc1, 0x2630, - 0x9bc2, 0x5397, - 0x9bc7, 0x2638, - 0x9bc8, 0x539c, - 0x9bc9, 0x200d, - 0x9bca, 0x2637, - 0x9bcb, 0x539d, - 0x9bd4, 0x2645, - 0x9bd5, 0x53a6, - 0x9bd6, 0x263a, - 0x9bd7, 0x53a7, - 0x9bdb, 0x2643, - 0x9bdc, 0x53ab, - 0x9bdd, 0x2640, - 0x9bde, 0x53ac, - 0x9be1, 0x263d, - 0x9be2, 0x2641, - 0x9be3, 0x53af, - 0x9be4, 0x263e, - 0x9be5, 0x53b0, - 0x9be7, 0x263f, - 0x9be8, 0x1fc0, - 0x9be9, 0x53b2, - 0x9bea, 0x263b, - 0x9bec, 0x53b3, - 0x9bf0, 0x2642, - 0x9bf1, 0x53b7, - 0x9bf4, 0x2644, - 0x9bf5, 0x53ba, - 0x9bfd, 0x2639, - 0x9bfe, 0x53c2, - 0x9bff, 0x264c, - 0x9c00, 0x53c3, - 0x9c08, 0x2647, - 0x9c09, 0x264b, - 0x9c0a, 0x53cb, - 0x9c0d, 0x2649, - 0x9c0e, 0x53ce, - 0x9c10, 0x2648, - 0x9c11, 0x53d0, - 0x9c12, 0x264a, - 0x9c13, 0x2108, - 0x9c14, 0x53d1, - 0x9c20, 0x264d, - 0x9c21, 0x53dd, - 0x9c23, 0x2634, - 0x9c24, 0x53df, - 0x9c25, 0x2651, - 0x9c26, 0x53e0, - 0x9c28, 0x2650, - 0x9c29, 0x2652, - 0x9c2a, 0x53e2, - 0x9c2d, 0x264f, - 0x9c2e, 0x53e5, - 0x9c31, 0x2632, - 0x9c32, 0x264e, - 0x9c33, 0x2653, - 0x9c34, 0x53e8, - 0x9c35, 0x2657, - 0x9c36, 0x53e9, - 0x9c37, 0x2635, - 0x9c38, 0x53ea, - 0x9c39, 0x2633, - 0x9c3a, 0x53eb, - 0x9c3b, 0x2656, - 0x9c3c, 0x53ec, - 0x9c3e, 0x2654, - 0x9c3f, 0x53ee, - 0x9c45, 0x2658, - 0x9c46, 0x53f4, - 0x9c48, 0x2655, - 0x9c49, 0x1e4d, - 0x9c4a, 0x53f6, - 0x9c52, 0x265b, - 0x9c53, 0x53fe, - 0x9c54, 0x265a, - 0x9c55, 0x53ff, - 0x9c56, 0x2659, - 0x9c57, 0x202e, - 0x9c58, 0x262f, - 0x9c59, 0x5400, - 0x9c5d, 0x2646, - 0x9c5e, 0x5404, - 0x9c5f, 0x2626, - 0x9c60, 0x5405, - 0x9c67, 0x265c, - 0x9c68, 0x540c, - 0x9c6d, 0x262c, - 0x9c6e, 0x5411, - 0x9c78, 0x2623, - 0x9c79, 0x541b, - 0x9c7a, 0x2631, - 0x9c7b, 0x541c, - 0x9c7c, 0x10c8, - 0x9c7d, 0x541d, - 0x9c7f, 0x1d89, - 0x9c80, 0x541f, - 0x9c81, 0x0a5a, - 0x9c82, 0x1d8a, - 0x9c83, 0x5420, - 0x9c85, 0x1d8b, - 0x9c89, 0x5422, - 0x9c8b, 0x1d90, - 0x9c8c, 0x5424, - 0x9c8d, 0x0414, - 0x9c8e, 0x1d91, - 0x9c8f, 0x5425, - 0x9c90, 0x1d92, - 0x9c93, 0x5426, - 0x9c94, 0x1d95, - 0x9c96, 0x5427, - 0x9c9a, 0x1d97, - 0x9c9c, 0x0f37, - 0x9c9d, 0x542b, - 0x9c9e, 0x1d99, - 0x9ca4, 0x09db, - 0x9ca5, 0x1d9f, - 0x9caa, 0x542c, - 0x9cab, 0x1da4, - 0x9cac, 0x542d, - 0x9cad, 0x1da5, - 0x9caf, 0x542e, - 0x9cb0, 0x1da7, - 0x9cb8, 0x08d7, - 0x9cb9, 0x542f, - 0x9cba, 0x1daf, - 0x9cbe, 0x5430, - 0x9cc3, 0x0cd5, - 0x9cc4, 0x1db3, - 0x9cc8, 0x5435, - 0x9cca, 0x1db7, - 0x9cd1, 0x5437, - 0x9cd3, 0x1dbe, - 0x9cd6, 0x0457, - 0x9cd7, 0x1dc1, - 0x9cda, 0x5439, - 0x9cdc, 0x1dc4, - 0x9cde, 0x0a24, - 0x9cdf, 0x1dc6, - 0x9ce0, 0x543b, - 0x9ce2, 0x1dc7, - 0x9ce3, 0x543d, - 0x9ce5, 0x209c, - 0x9ce6, 0x543f, - 0x9ce9, 0x2580, - 0x9cea, 0x5442, - 0x9cec, 0x22dc, - 0x9ced, 0x5444, - 0x9cf3, 0x1f05, - 0x9cf4, 0x208b, - 0x9cf5, 0x544a, - 0x9cf6, 0x2581, - 0x9cf7, 0x544b, - 0x9d00, 0x5454, - 0x9d06, 0x2583, - 0x9d07, 0x2582, - 0x9d08, 0x545a, - 0x9d09, 0x21ee, - 0x9d0a, 0x545b, - 0x9d15, 0x2182, - 0x9d16, 0x5466, - 0x9d1b, 0x2243, - 0x9d1c, 0x546b, - 0x9d1d, 0x2587, - 0x9d1e, 0x546c, - 0x9d1f, 0x2588, - 0x9d20, 0x546d, - 0x9d23, 0x2584, - 0x9d24, 0x5470, - 0x9d26, 0x21fd, - 0x9d27, 0x5472, - 0x9d28, 0x21ef, - 0x9d29, 0x5473, - 0x9d2f, 0x258a, - 0x9d30, 0x258c, - 0x9d31, 0x5479, - 0x9d3b, 0x1f47, - 0x9d3c, 0x5483, - 0x9d3f, 0x1f1d, - 0x9d40, 0x5486, - 0x9d42, 0x258d, - 0x9d43, 0x5488, - 0x9d51, 0x1fd0, - 0x9d52, 0x2592, - 0x9d53, 0x258f, - 0x9d54, 0x5496, - 0x9d5c, 0x2594, - 0x9d5d, 0x1ee0, - 0x9d5e, 0x549e, - 0x9d60, 0x2591, - 0x9d61, 0x2595, - 0x9d62, 0x54a0, - 0x9d6a, 0x2597, - 0x9d6b, 0x54a8, - 0x9d6c, 0x20b6, - 0x9d6d, 0x54a9, - 0x9d6f, 0x2598, - 0x9d70, 0x54ab, - 0x9d72, 0x20f6, - 0x9d73, 0x54ad, - 0x9d87, 0x2585, - 0x9d88, 0x54c1, - 0x9d89, 0x2599, - 0x9d8a, 0x54c2, - 0x9d93, 0x2596, - 0x9d94, 0x54cb, - 0x9d98, 0x259a, - 0x9d99, 0x54cf, - 0x9d9a, 0x259b, - 0x9d9b, 0x54d0, - 0x9da5, 0x259d, - 0x9da6, 0x54da, - 0x9da9, 0x259e, - 0x9daa, 0x54dd, - 0x9daf, 0x234c, - 0x9db0, 0x54e2, - 0x9db4, 0x1f44, - 0x9db5, 0x54e6, - 0x9dbb, 0x2660, - 0x9dbc, 0x25a0, - 0x9dbd, 0x54ec, - 0x9dc0, 0x259c, - 0x9dc1, 0x54ef, - 0x9dc2, 0x259f, - 0x9dc3, 0x54f0, - 0x9dc4, 0x1f6c, - 0x9dc5, 0x54f1, - 0x9dd3, 0x25a2, - 0x9dd4, 0x54ff, - 0x9dd7, 0x20ae, - 0x9dd8, 0x5502, - 0x9dd9, 0x258b, - 0x9dda, 0x25a3, - 0x9ddb, 0x5503, - 0x9de5, 0x2589, - 0x9de6, 0x25a5, - 0x9de7, 0x550d, - 0x9def, 0x25a4, - 0x9df0, 0x5515, - 0x9df2, 0x25a6, - 0x9df3, 0x2593, - 0x9df4, 0x5517, - 0x9df8, 0x25a7, - 0x9df9, 0x2222, - 0x9dfa, 0x25a9, - 0x9dfb, 0x551b, - 0x9e00, 0x5520, - 0x9e0c, 0x25a8, - 0x9e0d, 0x552c, - 0x9e15, 0x2586, - 0x9e16, 0x5534, - 0x9e1a, 0x25a1, - 0x9e1b, 0x25aa, - 0x9e1c, 0x5538, - 0x9e1d, 0x2590, - 0x9e1e, 0x258e, - 0x9e1f, 0x0b54, - 0x9e20, 0x1b35, - 0x9e21, 0x0819, - 0x9e22, 0x1b36, - 0x9e23, 0x0afe, - 0x9e24, 0x5539, - 0x9e25, 0x0b79, - 0x9e26, 0x0fe4, - 0x9e27, 0x553a, - 0x9e28, 0x1b37, - 0x9e2d, 0x0fe5, - 0x9e2e, 0x553b, - 0x9e2f, 0x1015, - 0x9e30, 0x553c, - 0x9e31, 0x1b3d, - 0x9e32, 0x1b3c, - 0x9e33, 0x10ea, - 0x9e34, 0x553d, - 0x9e35, 0x0e83, - 0x9e36, 0x1b3e, - 0x9e37, 0x1b40, - 0x9e38, 0x1b3f, - 0x9e39, 0x1b41, - 0x9e3b, 0x553e, - 0x9e3d, 0x06e6, - 0x9e3e, 0x1b43, - 0x9e3f, 0x079f, - 0x9e40, 0x5540, - 0x9e41, 0x1b44, - 0x9e43, 0x0918, - 0x9e44, 0x1b46, - 0x9e45, 0x062b, - 0x9e46, 0x1b47, - 0x9e4a, 0x0c90, - 0x9e4b, 0x1b4b, - 0x9e4d, 0x5541, - 0x9e4e, 0x1b4d, - 0x9e4f, 0x0bb5, - 0x9e50, 0x5542, - 0x9e51, 0x1b4e, - 0x9e52, 0x5543, - 0x9e55, 0x1b4f, - 0x9e56, 0x5546, - 0x9e57, 0x1b50, - 0x9e58, 0x1dd5, - 0x9e59, 0x5547, - 0x9e5a, 0x1b51, - 0x9e5d, 0x5548, - 0x9e5e, 0x1b54, - 0x9e5f, 0x5549, - 0x9e63, 0x1b55, - 0x9e64, 0x078e, - 0x9e65, 0x554d, - 0x9e66, 0x1b56, - 0x9e6d, 0x1b5e, - 0x9e6e, 0x554e, - 0x9e70, 0x108a, - 0x9e71, 0x1b5d, - 0x9e72, 0x5550, - 0x9e73, 0x1b5f, - 0x9e74, 0x5551, - 0x9e75, 0x2688, - 0x9e76, 0x5552, - 0x9e79, 0x269e, - 0x9e7a, 0x25fb, - 0x9e7b, 0x5555, - 0x9e7c, 0x1f8c, - 0x9e7d, 0x21f4, - 0x9e7e, 0x1d16, - 0x9e7f, 0x0a60, - 0x9e80, 0x5556, - 0x9e82, 0x1dfc, - 0x9e83, 0x5558, - 0x9e87, 0x1dfd, - 0x9e89, 0x555c, - 0x9e8b, 0x1dff, - 0x9e8c, 0x555e, - 0x9e92, 0x1e00, - 0x9e93, 0x0a5b, - 0x9e94, 0x5564, - 0x9e97, 0x200f, - 0x9e98, 0x5567, - 0x9e9d, 0x1e02, - 0x9e9e, 0x556c, - 0x9e9f, 0x1e03, - 0x9ea0, 0x556d, - 0x9ea5, 0x2071, - 0x9ea6, 0x0a9a, - 0x9ea7, 0x5572, - 0x9ea9, 0x25f7, - 0x9eaa, 0x5574, - 0x9eaf, 0x2696, - 0x9eb0, 0x5579, - 0x9eb4, 0x1cee, - 0x9eb5, 0x268f, - 0x9eb6, 0x557d, - 0x9eb8, 0x1ced, - 0x9eb9, 0x557f, - 0x9ebb, 0x0a90, - 0x9ebc, 0x5581, - 0x9ebd, 0x1df9, - 0x9ebf, 0x5582, - 0x9ec4, 0x07db, - 0x9ec5, 0x5587, - 0x9ec9, 0x12f8, - 0x9eca, 0x558b, - 0x9ecc, 0x22da, - 0x9ecd, 0x0d89, - 0x9ece, 0x09d3, - 0x9ecf, 0x1b2a, - 0x9ed0, 0x558d, - 0x9ed1, 0x0791, - 0x9ed2, 0x558e, - 0x9ed4, 0x0c2a, - 0x9ed5, 0x5590, - 0x9ed8, 0x0b0f, - 0x9ed9, 0x5593, - 0x9edb, 0x1e04, - 0x9ede, 0x1ec1, - 0x9edf, 0x1e08, - 0x9ee0, 0x1e07, - 0x9ee1, 0x5595, - 0x9ee2, 0x1e09, - 0x9ee3, 0x5596, - 0x9ee5, 0x1e0c, - 0x9ee6, 0x5598, - 0x9ee7, 0x1e0b, - 0x9ee8, 0x1eb3, - 0x9ee9, 0x1e0a, - 0x9eea, 0x1e0d, - 0x9eeb, 0x5599, - 0x9eef, 0x1e0e, - 0x9ef0, 0x559d, - 0x9ef2, 0x266a, - 0x9ef3, 0x559f, - 0x9ef4, 0x268a, - 0x9ef5, 0x55a0, - 0x9ef7, 0x2669, - 0x9ef8, 0x55a2, - 0x9ef9, 0x1a55, - 0x9efa, 0x55a3, - 0x9efb, 0x1a56, - 0x9efd, 0x2618, - 0x9efe, 0x1d76, - 0x9eff, 0x2619, - 0x9f00, 0x55a4, - 0x9f09, 0x261a, - 0x9f0a, 0x55ad, - 0x9f0b, 0x1d77, - 0x9f0c, 0x55ae, - 0x9f0d, 0x1d78, - 0x9f0e, 0x05e5, - 0x9f0f, 0x55af, - 0x9f10, 0x1274, - 0x9f11, 0x55b0, - 0x9f13, 0x071d, - 0x9f14, 0x55b2, - 0x9f15, 0x2673, - 0x9f16, 0x55b3, - 0x9f17, 0x1271, - 0x9f18, 0x55b4, - 0x9f19, 0x13df, - 0x9f1a, 0x55b5, - 0x9f20, 0x0d8a, - 0x9f21, 0x55bb, - 0x9f22, 0x1e0f, - 0x9f23, 0x55bc, - 0x9f2c, 0x1e10, - 0x9f2d, 0x55c5, - 0x9f2f, 0x1e11, - 0x9f30, 0x55c7, - 0x9f37, 0x1e13, - 0x9f38, 0x55ce, - 0x9f39, 0x1e12, - 0x9f3a, 0x55cf, - 0x9f3b, 0x0430, - 0x9f3c, 0x55d0, - 0x9f3d, 0x1e14, - 0x9f3f, 0x55d1, - 0x9f44, 0x1e16, - 0x9f45, 0x55d6, - 0x9f4a, 0x20c6, - 0x9f4b, 0x226b, - 0x9f4c, 0x55db, - 0x9f4f, 0x24d3, - 0x9f50, 0x0c0a, - 0x9f51, 0x19c2, - 0x9f52, 0x1e86, - 0x9f53, 0x55de, - 0x9f54, 0x260f, - 0x9f55, 0x55df, - 0x9f59, 0x2611, - 0x9f5a, 0x55e3, - 0x9f5c, 0x2613, - 0x9f5d, 0x55e5, - 0x9f5f, 0x2610, - 0x9f60, 0x2612, - 0x9f61, 0x2030, - 0x9f62, 0x55e7, - 0x9f63, 0x2671, - 0x9f64, 0x55e8, - 0x9f66, 0x2614, - 0x9f67, 0x55ea, - 0x9f6a, 0x2616, - 0x9f6b, 0x55ed, - 0x9f6c, 0x2615, - 0x9f6d, 0x55ee, - 0x9f72, 0x20f2, - 0x9f73, 0x55f3, - 0x9f77, 0x2617, - 0x9f78, 0x55f7, - 0x9f7f, 0x0502, - 0x9f80, 0x1d6d, - 0x9f81, 0x55fe, - 0x9f83, 0x1d6e, - 0x9f84, 0x0a2d, - 0x9f85, 0x1d6f, - 0x9f8b, 0x0c7e, - 0x9f8c, 0x1d75, - 0x9f8d, 0x2037, - 0x9f8e, 0x5600, - 0x9f90, 0x20b3, - 0x9f91, 0x5602, - 0x9f94, 0x1f22, - 0x9f95, 0x24ed, - 0x9f96, 0x5605, - 0x9f99, 0x0a43, - 0x9f9a, 0x0701, - 0x9f9b, 0x1a54, - 0x9f9c, 0x1f34, - 0x9f9d, 0x5608, - 0x9f9f, 0x0743, - 0x9fa0, 0x12f3, - 0x9fa1, 0x560a, - 0xe7e7, 0x274b, - 0xe815, 0x561f, - 0xf92c, 0x560f, - 0xfa0d, 0x5610, - 0xfa11, 0x5613, - 0xfa13, 0x5614, - 0xfa18, 0x5616, - 0xfa1f, 0x5617, - 0xfa23, 0x561a, - 0xfa27, 0x561c, - 0xfe30, 0x271d, - 0xfe49, 0x272b, - 0xfe54, 0x2735, - 0xfe59, 0x2739, - 0xfe68, 0x2747, - 0xff01, 0x0106, - 0xff04, 0x00a6, - 0xff05, 0x010a, - 0xff5e, 0x006a, - 0xffe0, 0x00a8, - 0xffe2, 0x271e, - 0xffe3, 0x0163, - 0xffe4, 0x271f, - 0xffe5, 0x0109, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 gb12UniGBUCS2HEnc16 = { - 0, - { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - gb12UniGBUCS2HMap2, 13461 -}; - -static Gushort gb12UniGBUCS2VMap2[26970] = { - 0x0000, 0x0000, - 0x0020, 0x0001, - 0x00a4, 0x00a7, - 0x00a7, 0x00ab, - 0x00a8, 0x0066, - 0x00b0, 0x00a2, - 0x00b1, 0x007f, - 0x00d7, 0x0080, - 0x00e0, 0x029f, - 0x00e1, 0x029d, - 0x00e8, 0x02a3, - 0x00e9, 0x02a1, - 0x00ea, 0x02b5, - 0x00ec, 0x02a7, - 0x00ed, 0x02a5, - 0x00f2, 0x02ab, - 0x00f3, 0x02a9, - 0x00f7, 0x0081, - 0x00f9, 0x02af, - 0x00fa, 0x02ad, - 0x00fc, 0x02b4, - 0x0101, 0x029c, - 0x0113, 0x02a0, - 0x011b, 0x02a2, - 0x012b, 0x02a4, - 0x014d, 0x02a8, - 0x016b, 0x02ac, - 0x01ce, 0x029e, - 0x01d0, 0x02a6, - 0x01d2, 0x02aa, - 0x01d4, 0x02ae, - 0x01d6, 0x02b0, - 0x01d8, 0x02b1, - 0x01da, 0x02b2, - 0x01dc, 0x02b3, - 0x02c7, 0x0065, - 0x02c9, 0x0064, - 0x02ca, 0x26b3, - 0x02d9, 0x26b5, - 0x0391, 0x020d, - 0x03a3, 0x021e, - 0x03b1, 0x0225, - 0x03c3, 0x0236, - 0x0401, 0x0260, - 0x0410, 0x025a, - 0x0416, 0x0261, - 0x0436, 0x0282, - 0x0451, 0x0281, - 0x1e3f, 0x02b7, - 0x2010, 0x2722, - 0x2013, 0x26b6, - 0x2014, 0x0069, - 0x2015, 0x26b7, - 0x2016, 0x006b, - 0x2018, 0x006d, - 0x201c, 0x006f, - 0x2025, 0x26b8, - 0x2026, 0x006c, - 0x2030, 0x00aa, - 0x2032, 0x00a3, - 0x2035, 0x26b9, - 0x203b, 0x00b8, - 0x2103, 0x00a5, - 0x2105, 0x26ba, - 0x2109, 0x26bb, - 0x2116, 0x00ac, - 0x2121, 0x2720, - 0x2160, 0x00fa, - 0x2170, 0x26a9, - 0x2190, 0x00ba, - 0x2192, 0x00b9, - 0x2193, 0x00bc, - 0x2196, 0x26bc, - 0x2208, 0x0089, - 0x220f, 0x0086, - 0x2211, 0x0085, - 0x2215, 0x26c0, - 0x221a, 0x008b, - 0x221d, 0x0097, - 0x221e, 0x009d, - 0x221f, 0x26c1, - 0x2220, 0x008e, - 0x2223, 0x26c2, - 0x2225, 0x008d, - 0x2227, 0x0083, - 0x2229, 0x0088, - 0x222a, 0x0087, - 0x222b, 0x0091, - 0x222e, 0x0092, - 0x2234, 0x009f, - 0x2235, 0x009e, - 0x2236, 0x0082, - 0x2237, 0x008a, - 0x223d, 0x0096, - 0x2248, 0x0095, - 0x224c, 0x0094, - 0x2252, 0x26c3, - 0x2260, 0x0098, - 0x2261, 0x0093, - 0x2264, 0x009b, - 0x2266, 0x26c4, - 0x226e, 0x0099, - 0x2295, 0x2704, - 0x2299, 0x0090, - 0x22a5, 0x008c, - 0x22bf, 0x26c6, - 0x22ef, 0x006c, - 0x2312, 0x008f, - 0x2460, 0x00e6, - 0x2474, 0x00d2, - 0x2488, 0x00be, - 0x2500, 0x02e2, - 0x2550, 0x26c7, - 0x2581, 0x26eb, - 0x2593, 0x26fa, - 0x25a0, 0x00b5, - 0x25a1, 0x00b4, - 0x25b2, 0x00b7, - 0x25b3, 0x00b6, - 0x25bc, 0x26fd, - 0x25c6, 0x00b3, - 0x25c7, 0x00b2, - 0x25cb, 0x00af, - 0x25ce, 0x00b1, - 0x25cf, 0x00b0, - 0x25e2, 0x26ff, - 0x2605, 0x00ae, - 0x2606, 0x00ad, - 0x2609, 0x2703, - 0x2640, 0x00a1, - 0x2642, 0x00a0, - 0x3000, 0x0060, - 0x3003, 0x0067, - 0x3005, 0x0068, - 0x3006, 0x2728, - 0x3007, 0x1e17, - 0x3008, 0x0073, - 0x3010, 0x007d, - 0x3012, 0x2705, - 0x3013, 0x00bd, - 0x3014, 0x0071, - 0x3016, 0x007b, - 0x301d, 0x2706, - 0x3021, 0x2708, - 0x3041, 0x0164, - 0x309b, 0x2724, - 0x309d, 0x2729, - 0x30a1, 0x01b7, - 0x30fb, 0x0063, - 0x30fc, 0x2723, - 0x30fd, 0x2726, - 0x3105, 0x02bc, - 0x3220, 0x00f0, - 0x3231, 0x2721, - 0x32a3, 0x2711, - 0x338e, 0x2712, - 0x339c, 0x2714, - 0x33a1, 0x2717, - 0x33c4, 0x2718, - 0x33ce, 0x2719, - 0x33d1, 0x271a, - 0x33d5, 0x271c, - 0x4e00, 0x1042, - 0x4e01, 0x05e0, - 0x4e02, 0x2758, - 0x4e03, 0x0bfe, - 0x4e04, 0x2759, - 0x4e07, 0x0ea3, - 0x4e08, 0x116a, - 0x4e09, 0x0cd8, - 0x4e0a, 0x0d08, - 0x4e0b, 0x0f2f, - 0x4e0c, 0x1258, - 0x4e0d, 0x0482, - 0x4e0e, 0x10d0, - 0x4e0f, 0x275c, - 0x4e10, 0x125a, - 0x4e11, 0x0518, - 0x4e12, 0x275d, - 0x4e13, 0x1205, - 0x4e14, 0x0c4f, - 0x4e15, 0x125d, - 0x4e16, 0x0d57, - 0x4e17, 0x275e, - 0x4e18, 0x0c6d, - 0x4e19, 0x0464, - 0x4e1a, 0x103c, - 0x4e1b, 0x0557, - 0x4e1c, 0x05ea, - 0x4e1d, 0x0db4, - 0x4e1e, 0x125f, - 0x4e1f, 0x275f, - 0x4e22, 0x05e9, - 0x4e23, 0x2762, - 0x4e24, 0x0a06, - 0x4e25, 0x0ff8, - 0x4e26, 0x2763, - 0x4e27, 0x0cde, - 0x4e28, 0x1263, - 0x4e29, 0x2764, - 0x4e2a, 0x06f1, - 0x4e2b, 0x0fe7, - 0x4e2c, 0x169c, - 0x4e2d, 0x11cf, - 0x4e2e, 0x2765, - 0x4e30, 0x067e, - 0x4e31, 0x2767, - 0x4e32, 0x0531, - 0x4e33, 0x2768, - 0x4e34, 0x0a22, - 0x4e35, 0x2769, - 0x4e36, 0x1272, - 0x4e37, 0x276a, - 0x4e38, 0x0e99, - 0x4e39, 0x0585, - 0x4e3a, 0x0eb9, - 0x4e3b, 0x11f6, - 0x4e3c, 0x276b, - 0x4e3d, 0x09e1, - 0x4e3e, 0x0908, - 0x4e3f, 0x1265, - 0x4e40, 0x276c, - 0x4e43, 0x0b2e, - 0x4e44, 0x276f, - 0x4e45, 0x08f2, - 0x4e46, 0x2770, - 0x4e47, 0x1267, - 0x4e48, 0x0ab9, - 0x4e49, 0x106c, - 0x4e4a, 0x2771, - 0x4e4b, 0x11ad, - 0x4e4c, 0x0ee9, - 0x4e4d, 0x1148, - 0x4e4e, 0x07ac, - 0x4e4f, 0x0643, - 0x4e50, 0x09c1, - 0x4e51, 0x2772, - 0x4e52, 0x0bd8, - 0x4e53, 0x0b93, - 0x4e54, 0x0c44, - 0x4e55, 0x2773, - 0x4e56, 0x072d, - 0x4e57, 0x2774, - 0x4e58, 0x04f0, - 0x4e59, 0x1059, - 0x4e5a, 0x2775, - 0x4e5c, 0x1275, - 0x4e5d, 0x08f4, - 0x4e5e, 0x0c11, - 0x4e5f, 0x1039, - 0x4e60, 0x0f1d, - 0x4e61, 0x0f54, - 0x4e62, 0x2777, - 0x4e66, 0x0d80, - 0x4e67, 0x277b, - 0x4e69, 0x1276, - 0x4e6a, 0x277d, - 0x4e70, 0x0a99, - 0x4e71, 0x0a79, - 0x4e72, 0x2783, - 0x4e73, 0x0cc4, - 0x4e74, 0x2784, - 0x4e7e, 0x0c29, - 0x4e7f, 0x278e, - 0x4e82, 0x2059, - 0x4e83, 0x2791, - 0x4e86, 0x0a14, - 0x4e87, 0x2794, - 0x4e88, 0x10cd, - 0x4e89, 0x119a, - 0x4e8a, 0x2795, - 0x4e8b, 0x0d59, - 0x4e8c, 0x063d, - 0x4e8d, 0x1257, - 0x4e8e, 0x10bf, - 0x4e8f, 0x0984, - 0x4e90, 0x2796, - 0x4e91, 0x1109, - 0x4e92, 0x07ba, - 0x4e93, 0x1277, - 0x4e94, 0x0ef4, - 0x4e95, 0x08dd, - 0x4e96, 0x2797, - 0x4e98, 0x125e, - 0x4e99, 0x2799, - 0x4e9a, 0x0ff0, - 0x4e9b, 0x0f74, - 0x4e9c, 0x279a, - 0x4e9e, 0x21f1, - 0x4e9f, 0x1273, - 0x4ea0, 0x1303, - 0x4ea1, 0x0ea7, - 0x4ea2, 0x0947, - 0x4ea3, 0x279c, - 0x4ea4, 0x088c, - 0x4ea5, 0x075c, - 0x4ea6, 0x1067, - 0x4ea7, 0x04c1, - 0x4ea8, 0x0797, - 0x4ea9, 0x0b19, - 0x4eaa, 0x279d, - 0x4eab, 0x0f5a, - 0x4eac, 0x08d8, - 0x4ead, 0x0e55, - 0x4eae, 0x0a0a, - 0x4eaf, 0x279e, - 0x4eb2, 0x0c54, - 0x4eb3, 0x1305, - 0x4eb4, 0x27a1, - 0x4eb5, 0x1308, - 0x4eb6, 0x27a2, - 0x4eba, 0x0ca6, - 0x4ebb, 0x129f, - 0x4ebc, 0x27a6, - 0x4ebf, 0x1061, - 0x4ec0, 0x0d49, - 0x4ec1, 0x0ca5, - 0x4ec2, 0x12a2, - 0x4ec3, 0x12a0, - 0x4ec4, 0x127c, - 0x4ec5, 0x08c7, - 0x4ec6, 0x0bec, - 0x4ec7, 0x0515, - 0x4ec8, 0x27a9, - 0x4ec9, 0x12a1, - 0x4eca, 0x08c2, - 0x4ecb, 0x08ba, - 0x4ecc, 0x27aa, - 0x4ecd, 0x0caf, - 0x4ece, 0x0556, - 0x4ecf, 0x27ab, - 0x4ed1, 0x0a7f, - 0x4ed2, 0x27ad, - 0x4ed3, 0x049d, - 0x4ed4, 0x122d, - 0x4ed5, 0x0d62, - 0x4ed6, 0x0df0, - 0x4ed7, 0x116d, - 0x4ed8, 0x06b1, - 0x4ed9, 0x0f36, - 0x4eda, 0x27ae, - 0x4edd, 0x12ee, - 0x4ede, 0x12a6, - 0x4edf, 0x0c27, - 0x4ee0, 0x27b1, - 0x4ee1, 0x12a4, - 0x4ee2, 0x27b2, - 0x4ee3, 0x057d, - 0x4ee4, 0x0a37, - 0x4ee5, 0x105b, - 0x4ee6, 0x27b3, - 0x4ee8, 0x12a3, - 0x4ee9, 0x27b5, - 0x4eea, 0x104e, - 0x4eeb, 0x12a5, - 0x4eec, 0x0acc, - 0x4eed, 0x27b6, - 0x4ef0, 0x101f, - 0x4ef1, 0x27b9, - 0x4ef2, 0x11d8, - 0x4ef3, 0x12a8, - 0x4ef4, 0x27ba, - 0x4ef5, 0x12ab, - 0x4ef6, 0x0871, - 0x4ef7, 0x084e, - 0x4ef8, 0x27bb, - 0x4efb, 0x0ca9, - 0x4efc, 0x27be, - 0x4efd, 0x067a, - 0x4efe, 0x27bf, - 0x4eff, 0x065f, - 0x4f00, 0x27c0, - 0x4f01, 0x0c12, - 0x4f02, 0x27c1, - 0x4f09, 0x12ae, - 0x4f0a, 0x1048, - 0x4f0b, 0x27c8, - 0x4f0d, 0x0ef8, - 0x4f0e, 0x0832, - 0x4f0f, 0x0699, - 0x4f10, 0x0642, - 0x4f11, 0x0fa8, - 0x4f12, 0x27ca, - 0x4f17, 0x11d9, - 0x4f18, 0x10aa, - 0x4f19, 0x0804, - 0x4f1a, 0x07f6, - 0x4f1b, 0x12a7, - 0x4f1c, 0x27cf, - 0x4f1e, 0x0cda, - 0x4f1f, 0x0ebf, - 0x4f20, 0x052e, - 0x4f21, 0x27d1, - 0x4f22, 0x12a9, - 0x4f23, 0x27d2, - 0x4f24, 0x0d04, - 0x4f25, 0x12ac, - 0x4f26, 0x0a7e, - 0x4f27, 0x12ad, - 0x4f28, 0x27d3, - 0x4f2a, 0x0ec0, - 0x4f2b, 0x12af, - 0x4f2c, 0x27d5, - 0x4f2f, 0x0475, - 0x4f30, 0x0719, - 0x4f31, 0x27d8, - 0x4f32, 0x12b7, - 0x4f33, 0x27d9, - 0x4f34, 0x03f4, - 0x4f35, 0x27da, - 0x4f36, 0x0a2f, - 0x4f37, 0x27db, - 0x4f38, 0x0d25, - 0x4f39, 0x27dc, - 0x4f3a, 0x0dba, - 0x4f3b, 0x27dd, - 0x4f3c, 0x0dbb, - 0x4f3d, 0x12b8, - 0x4f3e, 0x27de, - 0x4f43, 0x05c9, - 0x4f44, 0x27e3, - 0x4f46, 0x058c, - 0x4f47, 0x27e5, - 0x4f4d, 0x0eca, - 0x4f4e, 0x05ae, - 0x4f4f, 0x11fe, - 0x4f50, 0x1251, - 0x4f51, 0x10b8, - 0x4f52, 0x27eb, - 0x4f53, 0x0e38, - 0x4f54, 0x27ec, - 0x4f55, 0x0785, - 0x4f56, 0x27ed, - 0x4f57, 0x12b6, - 0x4f58, 0x12f0, - 0x4f59, 0x10c5, - 0x4f5a, 0x12b3, - 0x4f5b, 0x068d, - 0x4f5c, 0x1254, - 0x4f5d, 0x12b4, - 0x4f5e, 0x12b0, - 0x4f5f, 0x12b5, - 0x4f60, 0x0b46, - 0x4f61, 0x27ee, - 0x4f63, 0x109b, - 0x4f64, 0x12aa, - 0x4f65, 0x12f1, - 0x4f66, 0x27f0, - 0x4f67, 0x12b1, - 0x4f68, 0x27f1, - 0x4f69, 0x0ba6, - 0x4f6a, 0x27f2, - 0x4f6c, 0x09bb, - 0x4f6d, 0x27f4, - 0x4f6f, 0x1019, - 0x4f70, 0x03e6, - 0x4f71, 0x27f6, - 0x4f73, 0x0844, - 0x4f74, 0x12ba, - 0x4f75, 0x27f8, - 0x4f76, 0x12b9, - 0x4f77, 0x27f9, - 0x4f7b, 0x12c0, - 0x4f7c, 0x12c2, - 0x4f7d, 0x27fd, - 0x4f7e, 0x12bf, - 0x4f7f, 0x0d50, - 0x4f80, 0x27fe, - 0x4f83, 0x12bd, - 0x4f84, 0x11b5, - 0x4f85, 0x2801, - 0x4f86, 0x1ff2, - 0x4f87, 0x2802, - 0x4f88, 0x0503, - 0x4f89, 0x12bc, - 0x4f8a, 0x2803, - 0x4f8b, 0x09e8, - 0x4f8c, 0x2804, - 0x4f8d, 0x0d63, - 0x4f8e, 0x2805, - 0x4f8f, 0x12be, - 0x4f90, 0x2806, - 0x4f91, 0x12bb, - 0x4f92, 0x2807, - 0x4f94, 0x12c4, - 0x4f95, 0x2809, - 0x4f96, 0x205d, - 0x4f97, 0x05f0, - 0x4f98, 0x280a, - 0x4f9b, 0x0702, - 0x4f9c, 0x280d, - 0x4f9d, 0x1047, - 0x4f9e, 0x280e, - 0x4fa0, 0x0f2d, - 0x4fa1, 0x2810, - 0x4fa3, 0x0a69, - 0x4fa4, 0x2812, - 0x4fa5, 0x0895, - 0x4fa6, 0x118d, - 0x4fa7, 0x04a7, - 0x4fa8, 0x0c45, - 0x4fa9, 0x0978, - 0x4faa, 0x12c1, - 0x4fab, 0x2813, - 0x4fac, 0x12c3, - 0x4fad, 0x2814, - 0x4fae, 0x0ef9, - 0x4faf, 0x07a5, - 0x4fb0, 0x2815, - 0x4fb5, 0x0c53, - 0x4fb6, 0x281a, - 0x4fbf, 0x044c, - 0x4fc0, 0x2823, - 0x4fc2, 0x269c, - 0x4fc3, 0x055c, - 0x4fc4, 0x062c, - 0x4fc5, 0x12c8, - 0x4fc6, 0x2825, - 0x4fca, 0x092e, - 0x4fcb, 0x2829, - 0x4fce, 0x12f2, - 0x4fcf, 0x0c4b, - 0x4fd0, 0x09e9, - 0x4fd1, 0x12cc, - 0x4fd2, 0x282c, - 0x4fd7, 0x0dcc, - 0x4fd8, 0x069a, - 0x4fd9, 0x2831, - 0x4fda, 0x12c9, - 0x4fdb, 0x2832, - 0x4fdc, 0x12cb, - 0x4fdd, 0x040c, - 0x4fde, 0x10c6, - 0x4fdf, 0x12cd, - 0x4fe0, 0x21b5, - 0x4fe1, 0x0f90, - 0x4fe2, 0x2833, - 0x4fe3, 0x12ca, - 0x4fe4, 0x2834, - 0x4fe6, 0x12c5, - 0x4fe7, 0x2836, - 0x4fe8, 0x12c6, - 0x4fe9, 0x09f2, - 0x4fea, 0x12c7, - 0x4feb, 0x2837, - 0x4fed, 0x0866, - 0x4fee, 0x0fa9, - 0x4fef, 0x06a4, - 0x4ff0, 0x2839, - 0x4ff1, 0x0912, - 0x4ff2, 0x283a, - 0x4ff3, 0x12d1, - 0x4ff4, 0x283b, - 0x4ff8, 0x12ce, - 0x4ff9, 0x283f, - 0x4ffa, 0x03be, - 0x4ffb, 0x2840, - 0x4ffe, 0x12d6, - 0x4fff, 0x2843, - 0x5000, 0x22cc, - 0x5001, 0x2844, - 0x5006, 0x2016, - 0x5007, 0x2849, - 0x5009, 0x1e62, - 0x500a, 0x284b, - 0x500b, 0x1f20, - 0x500c, 0x12d8, - 0x500d, 0x041f, - 0x500e, 0x284c, - 0x500f, 0x12d3, - 0x5010, 0x284d, - 0x5011, 0x207f, - 0x5012, 0x059a, - 0x5013, 0x284e, - 0x5014, 0x0922, - 0x5015, 0x284f, - 0x5018, 0x0e1b, - 0x5019, 0x07a9, - 0x501a, 0x1057, - 0x501b, 0x2852, - 0x501c, 0x12d7, - 0x501d, 0x2853, - 0x501f, 0x08b9, - 0x5020, 0x2855, - 0x5021, 0x04d0, - 0x5022, 0x2856, - 0x5025, 0x12d9, - 0x5026, 0x091a, - 0x5027, 0x2859, - 0x5028, 0x12da, - 0x5029, 0x12cf, - 0x502a, 0x0b42, - 0x502b, 0x205c, - 0x502c, 0x12d2, - 0x502d, 0x12d5, - 0x502e, 0x12d4, - 0x502f, 0x285a, - 0x503a, 0x114f, - 0x503b, 0x2865, - 0x503c, 0x11b4, - 0x503d, 0x2866, - 0x503e, 0x0c60, - 0x503f, 0x2867, - 0x5043, 0x12dc, - 0x5044, 0x286b, - 0x5047, 0x084c, - 0x5048, 0x12de, - 0x5049, 0x2194, - 0x504a, 0x286e, - 0x504c, 0x12d0, - 0x504d, 0x2870, - 0x504e, 0x12df, - 0x504f, 0x0bca, - 0x5050, 0x2871, - 0x5055, 0x12dd, - 0x5056, 0x2876, - 0x505a, 0x1253, - 0x505b, 0x287a, - 0x505c, 0x0e54, - 0x505d, 0x287b, - 0x5065, 0x0872, - 0x5066, 0x2883, - 0x506c, 0x12e0, - 0x506d, 0x2889, - 0x5074, 0x1e65, - 0x5075, 0x2281, - 0x5076, 0x0b7d, - 0x5077, 0x0e66, - 0x5078, 0x2890, - 0x507b, 0x12e1, - 0x507c, 0x2893, - 0x507e, 0x12db, - 0x507f, 0x04ca, - 0x5080, 0x098b, - 0x5081, 0x2895, - 0x5085, 0x06b0, - 0x5086, 0x2899, - 0x5088, 0x09e7, - 0x5089, 0x289b, - 0x508d, 0x0403, - 0x508e, 0x289f, - 0x5096, 0x22cd, - 0x5097, 0x28a7, - 0x5098, 0x210a, - 0x5099, 0x1e3e, - 0x509a, 0x28a8, - 0x50a2, 0x267f, - 0x50a3, 0x0579, - 0x50a4, 0x28b0, - 0x50a5, 0x12e2, - 0x50a6, 0x28b1, - 0x50a7, 0x12e3, - 0x50a8, 0x0525, - 0x50a9, 0x12e4, - 0x50aa, 0x28b2, - 0x50ac, 0x0562, - 0x50ad, 0x222e, - 0x50ae, 0x28b4, - 0x50b2, 0x03cc, - 0x50b3, 0x1e96, - 0x50b4, 0x22cb, - 0x50b5, 0x226c, - 0x50b6, 0x28b8, - 0x50b7, 0x2117, - 0x50b8, 0x28b9, - 0x50ba, 0x12e5, - 0x50bb, 0x0cee, - 0x50bc, 0x28bb, - 0x50be, 0x20e8, - 0x50bf, 0x28bd, - 0x50c2, 0x22d4, - 0x50c3, 0x28c0, - 0x50c5, 0x1fb9, - 0x50c6, 0x28c2, - 0x50c9, 0x22d8, - 0x50ca, 0x28c5, - 0x50cf, 0x0f5e, - 0x50d0, 0x28ca, - 0x50d1, 0x20df, - 0x50d2, 0x28cb, - 0x50d5, 0x20c2, - 0x50d6, 0x12e6, - 0x50d7, 0x28ce, - 0x50da, 0x0a0e, - 0x50db, 0x28d1, - 0x50de, 0x2195, - 0x50df, 0x28d4, - 0x50e5, 0x1fac, - 0x50e6, 0x12ea, - 0x50e7, 0x0ce7, - 0x50e8, 0x22d3, - 0x50e9, 0x28da, - 0x50ec, 0x12e9, - 0x50ed, 0x12e8, - 0x50ee, 0x12eb, - 0x50ef, 0x28dd, - 0x50f3, 0x0dd0, - 0x50f4, 0x28e1, - 0x50f5, 0x087a, - 0x50f6, 0x28e2, - 0x50f9, 0x1f81, - 0x50fa, 0x28e5, - 0x50fb, 0x0bc6, - 0x50fc, 0x28e6, - 0x5100, 0x2210, - 0x5101, 0x28ea, - 0x5102, 0x22cf, - 0x5103, 0x28eb, - 0x5104, 0x2213, - 0x5105, 0x28ec, - 0x5106, 0x12e7, - 0x5107, 0x12ec, - 0x5108, 0x1fe4, - 0x5109, 0x1f90, - 0x510a, 0x28ed, - 0x510b, 0x12ed, - 0x510c, 0x28ee, - 0x5110, 0x22d6, - 0x5111, 0x28f2, - 0x5112, 0x0cc0, - 0x5113, 0x28f3, - 0x5114, 0x22d0, - 0x5115, 0x22ce, - 0x5116, 0x28f4, - 0x5118, 0x2681, - 0x5119, 0x28f6, - 0x511f, 0x1e76, - 0x5120, 0x28fc, - 0x5121, 0x09c7, - 0x5122, 0x28fd, - 0x512a, 0x2231, - 0x512b, 0x2905, - 0x5132, 0x1e93, - 0x5133, 0x290c, - 0x5137, 0x22d2, - 0x5138, 0x2910, - 0x513a, 0x22d7, - 0x513b, 0x22d5, - 0x513c, 0x22d1, - 0x513d, 0x2912, - 0x513f, 0x0638, - 0x5140, 0x1259, - 0x5141, 0x110d, - 0x5142, 0x2914, - 0x5143, 0x10ed, - 0x5144, 0x0fa1, - 0x5145, 0x0509, - 0x5146, 0x1178, - 0x5147, 0x2915, - 0x5148, 0x0f35, - 0x5149, 0x073b, - 0x514a, 0x2916, - 0x514b, 0x0958, - 0x514c, 0x2917, - 0x514d, 0x0ae7, - 0x514e, 0x2918, - 0x5151, 0x0611, - 0x5152, 0x1ee5, - 0x5153, 0x291b, - 0x5154, 0x0e74, - 0x5155, 0x1302, - 0x5156, 0x1304, - 0x5157, 0x291c, - 0x515a, 0x0594, - 0x515b, 0x291f, - 0x515c, 0x05f4, - 0x515d, 0x2920, - 0x5162, 0x08d3, - 0x5163, 0x2925, - 0x5165, 0x0cc6, - 0x5166, 0x2927, - 0x5168, 0x0c86, - 0x5169, 0x2025, - 0x516a, 0x2929, - 0x516b, 0x03d6, - 0x516c, 0x0704, - 0x516d, 0x0a42, - 0x516e, 0x12f6, - 0x516f, 0x292a, - 0x5170, 0x09a7, - 0x5171, 0x070b, - 0x5172, 0x292b, - 0x5173, 0x0731, - 0x5174, 0x0f96, - 0x5175, 0x0461, - 0x5176, 0x0c03, - 0x5177, 0x090e, - 0x5178, 0x05c5, - 0x5179, 0x1225, - 0x517a, 0x292c, - 0x517b, 0x1021, - 0x517c, 0x0859, - 0x517d, 0x0d75, - 0x517e, 0x292d, - 0x5180, 0x0830, - 0x5181, 0x12fa, - 0x5182, 0x129d, - 0x5183, 0x292f, - 0x5185, 0x0b3d, - 0x5186, 0x2931, - 0x5188, 0x06cf, - 0x5189, 0x0c98, - 0x518a, 0x2933, - 0x518c, 0x04a8, - 0x518d, 0x111c, - 0x518e, 0x2935, - 0x5192, 0x0ab5, - 0x5193, 0x2939, - 0x5195, 0x0ae6, - 0x5196, 0x1314, - 0x5197, 0x0cba, - 0x5198, 0x293b, - 0x5199, 0x0f7f, - 0x519a, 0x293c, - 0x519b, 0x092b, - 0x519c, 0x0b6a, - 0x519d, 0x293d, - 0x51a0, 0x0733, - 0x51a1, 0x2940, - 0x51a2, 0x1315, - 0x51a3, 0x2941, - 0x51a4, 0x10ec, - 0x51a5, 0x1316, - 0x51a6, 0x2942, - 0x51ab, 0x130f, - 0x51ac, 0x05eb, - 0x51ad, 0x2947, - 0x51af, 0x0688, - 0x51b0, 0x0462, - 0x51b1, 0x1310, - 0x51b2, 0x050a, - 0x51b3, 0x0925, - 0x51b4, 0x2949, - 0x51b5, 0x0983, - 0x51b6, 0x1038, - 0x51b7, 0x09cf, - 0x51b8, 0x294a, - 0x51bb, 0x05f2, - 0x51bc, 0x1312, - 0x51bd, 0x1311, - 0x51be, 0x294d, - 0x51c0, 0x08ea, - 0x51c1, 0x294f, - 0x51c4, 0x0bff, - 0x51c5, 0x2952, - 0x51c6, 0x1219, - 0x51c7, 0x1313, - 0x51c8, 0x2953, - 0x51c9, 0x0a02, - 0x51ca, 0x2954, - 0x51cb, 0x05d3, - 0x51cc, 0x0a31, - 0x51cd, 0x1ecf, - 0x51ce, 0x2955, - 0x51cf, 0x0868, - 0x51d0, 0x2956, - 0x51d1, 0x0558, - 0x51d2, 0x2957, - 0x51db, 0x0a26, - 0x51dc, 0x2960, - 0x51dd, 0x0b60, - 0x51de, 0x2961, - 0x51e0, 0x082b, - 0x51e1, 0x064f, - 0x51e2, 0x2963, - 0x51e4, 0x068c, - 0x51e5, 0x2965, - 0x51eb, 0x1300, - 0x51ec, 0x296b, - 0x51ed, 0x0bdd, - 0x51ee, 0x296c, - 0x51ef, 0x093a, - 0x51f0, 0x07e0, - 0x51f1, 0x1fd9, - 0x51f2, 0x296d, - 0x51f3, 0x05ab, - 0x51f4, 0x296e, - 0x51f5, 0x1399, - 0x51f6, 0x0fa2, - 0x51f7, 0x296f, - 0x51f8, 0x0e6a, - 0x51f9, 0x03c7, - 0x51fa, 0x051b, - 0x51fb, 0x080c, - 0x51fc, 0x139a, - 0x51fd, 0x0766, - 0x51fe, 0x2970, - 0x51ff, 0x1127, - 0x5200, 0x0597, - 0x5201, 0x05d4, - 0x5202, 0x128c, - 0x5203, 0x0cab, - 0x5204, 0x2971, - 0x5206, 0x0673, - 0x5207, 0x0c4d, - 0x5208, 0x128d, - 0x5209, 0x2973, - 0x520a, 0x093c, - 0x520b, 0x2974, - 0x520d, 0x138b, - 0x520e, 0x128e, - 0x520f, 0x2976, - 0x5211, 0x0f97, - 0x5212, 0x07c3, - 0x5213, 0x2978, - 0x5216, 0x196e, - 0x5217, 0x0a19, - 0x5218, 0x0a3e, - 0x5219, 0x1135, - 0x521a, 0x06d0, - 0x521b, 0x0537, - 0x521c, 0x297b, - 0x521d, 0x051a, - 0x521e, 0x297c, - 0x5220, 0x0cf7, - 0x5221, 0x297e, - 0x5224, 0x0b91, - 0x5225, 0x2981, - 0x5228, 0x0b9a, - 0x5229, 0x09e6, - 0x522a, 0x2984, - 0x522b, 0x0459, - 0x522c, 0x2985, - 0x522d, 0x128f, - 0x522e, 0x0727, - 0x522f, 0x2986, - 0x5230, 0x059e, - 0x5231, 0x2987, - 0x5233, 0x1290, - 0x5234, 0x2989, - 0x5236, 0x11c5, - 0x5237, 0x0d97, - 0x5238, 0x0c8a, - 0x5239, 0x0ceb, - 0x523a, 0x054f, - 0x523b, 0x0959, - 0x523c, 0x298b, - 0x523d, 0x074d, - 0x523e, 0x298c, - 0x523f, 0x1291, - 0x5241, 0x0626, - 0x5242, 0x0834, - 0x5243, 0x0e3d, - 0x5244, 0x22c8, - 0x5245, 0x298d, - 0x5247, 0x2263, - 0x5248, 0x298f, - 0x524a, 0x0f64, - 0x524b, 0x2683, - 0x524c, 0x1293, - 0x524d, 0x0c2d, - 0x524e, 0x2991, - 0x5250, 0x0729, - 0x5251, 0x0874, - 0x5252, 0x2993, - 0x5254, 0x0e31, - 0x5255, 0x2995, - 0x5256, 0x0be9, - 0x5257, 0x2996, - 0x525b, 0x1f17, - 0x525c, 0x1296, - 0x525d, 0x299a, - 0x525e, 0x1294, - 0x525f, 0x299b, - 0x5261, 0x1295, - 0x5262, 0x299d, - 0x5265, 0x0409, - 0x5266, 0x29a0, - 0x5267, 0x0916, - 0x5268, 0x29a1, - 0x5269, 0x0d3a, - 0x526a, 0x0867, - 0x526b, 0x29a2, - 0x526e, 0x1f2b, - 0x526f, 0x06ac, - 0x5270, 0x29a5, - 0x5272, 0x06e9, - 0x5273, 0x29a7, - 0x5274, 0x22ca, - 0x5275, 0x1e99, - 0x5276, 0x29a8, - 0x527d, 0x1298, - 0x527e, 0x29af, - 0x527f, 0x089c, - 0x5280, 0x29b0, - 0x5281, 0x129a, - 0x5282, 0x1299, - 0x5283, 0x1f4f, - 0x5284, 0x29b1, - 0x5287, 0x1fcf, - 0x5288, 0x0bbd, - 0x5289, 0x2036, - 0x528a, 0x1f3a, - 0x528b, 0x29b4, - 0x528c, 0x22c9, - 0x528d, 0x1f99, - 0x528e, 0x29b5, - 0x5290, 0x129b, - 0x5291, 0x1f75, - 0x5292, 0x29b7, - 0x5293, 0x129c, - 0x5294, 0x29b8, - 0x529b, 0x09ef, - 0x529c, 0x29bf, - 0x529d, 0x0c8b, - 0x529e, 0x03f7, - 0x529f, 0x06ff, - 0x52a0, 0x0846, - 0x52a1, 0x0f00, - 0x52a2, 0x138d, - 0x52a3, 0x0a1c, - 0x52a4, 0x29c0, - 0x52a8, 0x05ee, - 0x52a9, 0x11f9, - 0x52aa, 0x0b6d, - 0x52ab, 0x08aa, - 0x52ac, 0x138e, - 0x52ae, 0x29c4, - 0x52b1, 0x09e3, - 0x52b2, 0x08d1, - 0x52b3, 0x09b8, - 0x52b4, 0x29c7, - 0x52be, 0x1390, - 0x52bf, 0x0d5d, - 0x52c0, 0x29d1, - 0x52c1, 0x1fbe, - 0x52c2, 0x29d2, - 0x52c3, 0x0471, - 0x52c4, 0x29d3, - 0x52c7, 0x10a7, - 0x52c8, 0x29d6, - 0x52c9, 0x0ae8, - 0x52ca, 0x29d7, - 0x52cb, 0x0fd4, - 0x52cc, 0x29d8, - 0x52d0, 0x1392, - 0x52d1, 0x29dc, - 0x52d2, 0x09c0, - 0x52d3, 0x29dd, - 0x52d5, 0x1ecd, - 0x52d6, 0x1393, - 0x52d7, 0x29df, - 0x52d8, 0x093e, - 0x52d9, 0x21a9, - 0x52da, 0x29e0, - 0x52db, 0x21e6, - 0x52dc, 0x29e1, - 0x52dd, 0x2127, - 0x52de, 0x2003, - 0x52df, 0x0b1f, - 0x52e0, 0x29e2, - 0x52e2, 0x2132, - 0x52e3, 0x29e4, - 0x52e4, 0x0c57, - 0x52e5, 0x29e5, - 0x52f0, 0x1394, - 0x52f1, 0x2323, - 0x52f2, 0x29f0, - 0x52f5, 0x2011, - 0x52f6, 0x29f3, - 0x52f8, 0x20f5, - 0x52f9, 0x12fc, - 0x52fa, 0x0d10, - 0x52fb, 0x29f5, - 0x52fe, 0x070d, - 0x52ff, 0x0eff, - 0x5300, 0x110b, - 0x5301, 0x29f8, - 0x5305, 0x0407, - 0x5306, 0x0555, - 0x5307, 0x29fc, - 0x5308, 0x0fa4, - 0x5309, 0x29fd, - 0x530d, 0x12fd, - 0x530e, 0x2a01, - 0x530f, 0x14b5, - 0x5310, 0x12ff, - 0x5311, 0x2a02, - 0x5315, 0x1266, - 0x5316, 0x07c4, - 0x5317, 0x041a, - 0x5318, 0x2a06, - 0x5319, 0x04fc, - 0x531a, 0x1284, - 0x531b, 0x2a07, - 0x531d, 0x1114, - 0x531e, 0x2a09, - 0x5320, 0x0884, - 0x5321, 0x097c, - 0x5322, 0x2a0b, - 0x5323, 0x0f28, - 0x5324, 0x2a0c, - 0x5326, 0x1286, - 0x5327, 0x2a0e, - 0x532a, 0x0668, - 0x532b, 0x2a11, - 0x532d, 0x22c5, - 0x532e, 0x1287, - 0x532f, 0x1f5e, - 0x5330, 0x2a13, - 0x5331, 0x22c6, - 0x5332, 0x2a14, - 0x5339, 0x0bc4, - 0x533a, 0x0c75, - 0x533b, 0x1044, - 0x533c, 0x2a1b, - 0x533e, 0x1288, - 0x533f, 0x0b47, - 0x5340, 0x20ef, - 0x5341, 0x0d45, - 0x5342, 0x2a1d, - 0x5343, 0x0c24, - 0x5344, 0x2a1e, - 0x5345, 0x125c, - 0x5346, 0x2a1f, - 0x5347, 0x0d36, - 0x5348, 0x0ef6, - 0x5349, 0x07f1, - 0x534a, 0x03f6, - 0x534b, 0x2a20, - 0x534e, 0x07bf, - 0x534f, 0x0f78, - 0x5350, 0x2a23, - 0x5351, 0x0419, - 0x5352, 0x1241, - 0x5353, 0x121c, - 0x5354, 0x21d0, - 0x5355, 0x0586, - 0x5356, 0x0a9b, - 0x5357, 0x0b32, - 0x5358, 0x2a24, - 0x535a, 0x0470, - 0x535b, 0x2a26, - 0x535c, 0x047e, - 0x535d, 0x2a27, - 0x535e, 0x044e, - 0x535f, 0x14fa, - 0x5360, 0x115d, - 0x5361, 0x0935, - 0x5362, 0x0a53, - 0x5363, 0x128b, - 0x5364, 0x0a58, - 0x5365, 0x2a28, - 0x5366, 0x128a, - 0x5367, 0x0ee3, - 0x5368, 0x2a29, - 0x5369, 0x1352, - 0x536a, 0x2a2a, - 0x536b, 0x0ecf, - 0x536c, 0x2a2b, - 0x536e, 0x126a, - 0x536f, 0x0ab3, - 0x5370, 0x1086, - 0x5371, 0x0eb2, - 0x5372, 0x2a2d, - 0x5373, 0x0827, - 0x5374, 0x0c8f, - 0x5375, 0x0a78, - 0x5376, 0x2a2e, - 0x5377, 0x091c, - 0x5378, 0x0f81, - 0x5379, 0x2a2f, - 0x537a, 0x1353, - 0x537b, 0x2a30, - 0x537f, 0x0c61, - 0x5380, 0x2a34, - 0x5382, 0x04cc, - 0x5383, 0x2a36, - 0x5384, 0x0631, - 0x5385, 0x0e4f, - 0x5386, 0x09e5, - 0x5387, 0x2a37, - 0x5389, 0x09e2, - 0x538a, 0x2a39, - 0x538b, 0x0fe2, - 0x538c, 0x100a, - 0x538d, 0x127d, - 0x538e, 0x2a3a, - 0x5395, 0x04a5, - 0x5396, 0x2a41, - 0x5398, 0x09d0, - 0x5399, 0x22c1, - 0x539a, 0x07a8, - 0x539b, 0x2a43, - 0x539d, 0x127e, - 0x539e, 0x2a45, - 0x539f, 0x10f0, - 0x53a0, 0x1e64, - 0x53a1, 0x2a46, - 0x53a2, 0x0f4e, - 0x53a3, 0x127f, - 0x53a4, 0x2a47, - 0x53a5, 0x1280, - 0x53a6, 0x0f30, - 0x53a7, 0x2a48, - 0x53a8, 0x051d, - 0x53a9, 0x08f6, - 0x53aa, 0x2a49, - 0x53ad, 0x21f9, - 0x53ae, 0x1281, - 0x53af, 0x2a4c, - 0x53b2, 0x2010, - 0x53b3, 0x2a4f, - 0x53b4, 0x22c2, - 0x53b5, 0x2a50, - 0x53b6, 0x139c, - 0x53b7, 0x2a51, - 0x53bb, 0x0c80, - 0x53bc, 0x2a55, - 0x53bf, 0x0f45, - 0x53c0, 0x2a58, - 0x53c1, 0x0cd9, - 0x53c2, 0x0495, - 0x53c3, 0x1e5a, - 0x53c4, 0x2a59, - 0x53c8, 0x10bb, - 0x53c9, 0x04ad, - 0x53ca, 0x0823, - 0x53cb, 0x10b6, - 0x53cc, 0x0da0, - 0x53cd, 0x0651, - 0x53ce, 0x2a5d, - 0x53d1, 0x063f, - 0x53d2, 0x2a60, - 0x53d4, 0x0d7c, - 0x53d5, 0x2a62, - 0x53d6, 0x0c7c, - 0x53d7, 0x0d73, - 0x53d8, 0x044d, - 0x53d9, 0x0fbb, - 0x53da, 0x2a63, - 0x53db, 0x0b92, - 0x53dc, 0x2a64, - 0x53df, 0x1395, - 0x53e0, 0x05df, - 0x53e1, 0x2a67, - 0x53e2, 0x1ea2, - 0x53e3, 0x0967, - 0x53e4, 0x071e, - 0x53e5, 0x0913, - 0x53e6, 0x0a36, - 0x53e7, 0x2a68, - 0x53e8, 0x14fe, - 0x53e9, 0x14fd, - 0x53ea, 0x11ba, - 0x53eb, 0x08a1, - 0x53ec, 0x117a, - 0x53ed, 0x03d3, - 0x53ee, 0x05e2, - 0x53ef, 0x0956, - 0x53f0, 0x0dfb, - 0x53f1, 0x14fb, - 0x53f2, 0x0d4e, - 0x53f3, 0x10b7, - 0x53f4, 0x2a69, - 0x53f5, 0x1285, - 0x53f6, 0x103d, - 0x53f7, 0x077c, - 0x53f8, 0x0db3, - 0x53f9, 0x0e11, - 0x53fa, 0x2a6a, - 0x53fb, 0x14ff, - 0x53fc, 0x05d1, - 0x53fd, 0x14fc, - 0x53fe, 0x2a6b, - 0x5400, 0x2a6d, - 0x5401, 0x10da, - 0x5402, 0x2a6e, - 0x5403, 0x04f9, - 0x5404, 0x06f2, - 0x5405, 0x2a6f, - 0x5406, 0x1502, - 0x5407, 0x2a70, - 0x5408, 0x0786, - 0x5409, 0x081d, - 0x540a, 0x05d6, - 0x540b, 0x2a71, - 0x540c, 0x0e5d, - 0x540d, 0x0b00, - 0x540e, 0x07aa, - 0x540f, 0x09df, - 0x5410, 0x0e73, - 0x5411, 0x0f5f, - 0x5412, 0x1500, - 0x5413, 0x0f32, - 0x5414, 0x2a72, - 0x5415, 0x0a67, - 0x5416, 0x1501, - 0x5417, 0x0a97, - 0x5418, 0x2a73, - 0x541b, 0x092c, - 0x541c, 0x2a76, - 0x541d, 0x0a28, - 0x541e, 0x0e7d, - 0x541f, 0x107e, - 0x5420, 0x066a, - 0x5421, 0x1509, - 0x5422, 0x2a77, - 0x5423, 0x150c, - 0x5424, 0x2a78, - 0x5426, 0x068e, - 0x5427, 0x03d4, - 0x5428, 0x0615, - 0x5429, 0x0671, - 0x542a, 0x2a7a, - 0x542b, 0x0763, - 0x542c, 0x0e50, - 0x542d, 0x0961, - 0x542e, 0x0da6, - 0x542f, 0x0c13, - 0x5430, 0x2a7b, - 0x5431, 0x11a7, - 0x5432, 0x150d, - 0x5433, 0x2a7c, - 0x5434, 0x0ef1, - 0x5435, 0x04d8, - 0x5436, 0x2a7d, - 0x5438, 0x0f0b, - 0x5439, 0x0538, - 0x543a, 0x2a7f, - 0x543b, 0x0ed6, - 0x543c, 0x07a7, - 0x543d, 0x2a80, - 0x543e, 0x0ef0, - 0x543f, 0x2a81, - 0x5440, 0x0fe6, - 0x5441, 0x2a82, - 0x5443, 0x1508, - 0x5444, 0x2a84, - 0x5446, 0x0577, - 0x5447, 0x2a86, - 0x5448, 0x04ef, - 0x5449, 0x2a87, - 0x544a, 0x06e1, - 0x544b, 0x1503, - 0x544c, 0x2a88, - 0x5450, 0x0b28, - 0x5451, 0x2a8c, - 0x5452, 0x1504, - 0x5455, 0x0b7c, - 0x5456, 0x1507, - 0x5457, 0x150a, - 0x5458, 0x10f4, - 0x5459, 0x150b, - 0x545a, 0x2a8d, - 0x545b, 0x0c37, - 0x545c, 0x0ee7, - 0x545d, 0x2a8e, - 0x5462, 0x0b3b, - 0x5463, 0x2a93, - 0x5464, 0x1512, - 0x5465, 0x2a94, - 0x5466, 0x1517, - 0x5467, 0x2a95, - 0x5468, 0x11db, - 0x5469, 0x2a96, - 0x5471, 0x1511, - 0x5472, 0x1522, - 0x5473, 0x0ec5, - 0x5474, 0x2a9e, - 0x5475, 0x077e, - 0x5476, 0x1516, - 0x5477, 0x1510, - 0x5478, 0x0b9f, - 0x5479, 0x2a9f, - 0x547b, 0x0d24, - 0x547c, 0x07ab, - 0x547d, 0x0b01, - 0x547e, 0x2aa1, - 0x5480, 0x0906, - 0x5481, 0x2aa3, - 0x5482, 0x150e, - 0x5483, 0x2aa4, - 0x5484, 0x1515, - 0x5485, 0x2aa5, - 0x5486, 0x0b99, - 0x5487, 0x2aa6, - 0x548b, 0x1147, - 0x548c, 0x0784, - 0x548d, 0x2aaa, - 0x548e, 0x08fb, - 0x548f, 0x10a2, - 0x5490, 0x06bb, - 0x5491, 0x2aab, - 0x5492, 0x11e3, - 0x5493, 0x2aac, - 0x5494, 0x150f, - 0x5495, 0x0717, - 0x5496, 0x0934, - 0x5497, 0x2aad, - 0x5499, 0x0a45, - 0x549a, 0x1513, - 0x549c, 0x2aaf, - 0x549d, 0x1518, - 0x549e, 0x2ab0, - 0x54a3, 0x1523, - 0x54a4, 0x152d, - 0x54a5, 0x2ab5, - 0x54a6, 0x151f, - 0x54a7, 0x151e, - 0x54a8, 0x1226, - 0x54a9, 0x152b, - 0x54ab, 0x1767, - 0x54ac, 0x102e, - 0x54ad, 0x151a, - 0x54ae, 0x2ab6, - 0x54af, 0x0936, - 0x54b0, 0x2ab7, - 0x54b1, 0x111e, - 0x54b2, 0x2ab8, - 0x54b3, 0x0955, - 0x54b4, 0x151c, - 0x54b5, 0x2ab9, - 0x54b8, 0x0f39, - 0x54b9, 0x2abc, - 0x54bb, 0x1525, - 0x54bc, 0x236d, - 0x54bd, 0x0ff3, - 0x54be, 0x2abe, - 0x54bf, 0x1526, - 0x54c0, 0x03b2, - 0x54c1, 0x0bd6, - 0x54c2, 0x151b, - 0x54c3, 0x2abf, - 0x54c4, 0x079c, - 0x54c5, 0x2ac0, - 0x54c6, 0x061e, - 0x54c7, 0x0e8c, - 0x54c8, 0x0757, - 0x54c9, 0x1118, - 0x54ca, 0x2ac1, - 0x54cc, 0x1527, - 0x54cd, 0x0f59, - 0x54ce, 0x03b0, - 0x54cf, 0x152f, - 0x54d0, 0x1519, - 0x54d1, 0x0fef, - 0x54d2, 0x151d, - 0x54d3, 0x1520, - 0x54d5, 0x1524, - 0x54d6, 0x2ac3, - 0x54d7, 0x07be, - 0x54d8, 0x2ac4, - 0x54d9, 0x1528, - 0x54db, 0x2ac5, - 0x54dc, 0x152a, - 0x54dd, 0x152e, - 0x54de, 0x1530, - 0x54df, 0x1099, - 0x54e0, 0x2ac6, - 0x54e1, 0x2247, - 0x54e2, 0x2ac7, - 0x54e5, 0x06e2, - 0x54e6, 0x0b77, - 0x54e7, 0x1532, - 0x54e8, 0x0d13, - 0x54e9, 0x09f1, - 0x54ea, 0x0b27, - 0x54eb, 0x2aca, - 0x54ed, 0x096b, - 0x54ee, 0x0f65, - 0x54ef, 0x2acc, - 0x54f2, 0x117d, - 0x54f3, 0x1536, - 0x54f4, 0x2acf, - 0x54fa, 0x047f, - 0x54fb, 0x2ad5, - 0x54fc, 0x0796, - 0x54fd, 0x1534, - 0x54fe, 0x2ad6, - 0x54ff, 0x1391, - 0x5500, 0x2ad7, - 0x5501, 0x100d, - 0x5502, 0x2ad8, - 0x5504, 0x236c, - 0x5505, 0x2ada, - 0x5506, 0x0de9, - 0x5507, 0x0540, - 0x5508, 0x2adb, - 0x5509, 0x03b1, - 0x550a, 0x2adc, - 0x550f, 0x1539, - 0x5510, 0x0e19, - 0x5511, 0x153a, - 0x5512, 0x2ae1, - 0x5514, 0x1535, - 0x5515, 0x2ae3, - 0x551b, 0x1531, - 0x551c, 0x2ae9, - 0x5520, 0x1533, - 0x5521, 0x2aed, - 0x5522, 0x1537, - 0x5524, 0x07d2, - 0x5525, 0x2aee, - 0x5527, 0x153b, - 0x5528, 0x2af0, - 0x552a, 0x153c, - 0x552b, 0x2af2, - 0x552c, 0x07b8, - 0x552d, 0x2af3, - 0x552e, 0x0d72, - 0x552f, 0x0eb7, - 0x5530, 0x154d, - 0x5531, 0x04cf, - 0x5532, 0x2af4, - 0x5533, 0x154c, - 0x5534, 0x2af5, - 0x5537, 0x1547, - 0x5538, 0x2af8, - 0x553c, 0x1546, - 0x553d, 0x2afc, - 0x553e, 0x0e8a, - 0x553f, 0x1544, - 0x5540, 0x2afd, - 0x5541, 0x1542, - 0x5542, 0x2afe, - 0x5543, 0x095d, - 0x5544, 0x1221, - 0x5545, 0x2aff, - 0x5546, 0x0d05, - 0x5547, 0x2b00, - 0x5549, 0x1540, - 0x554a, 0x03ac, - 0x554b, 0x2b02, - 0x554f, 0x219c, - 0x5550, 0x1545, - 0x5551, 0x2b06, - 0x5553, 0x20c9, - 0x5554, 0x2b08, - 0x5555, 0x1543, - 0x5556, 0x1548, - 0x5557, 0x2b09, - 0x555c, 0x154e, - 0x555d, 0x2b0e, - 0x555e, 0x21f0, - 0x555f, 0x2b0f, - 0x5561, 0x0665, - 0x5562, 0x2b11, - 0x5564, 0x0bc0, - 0x5565, 0x0cef, - 0x5566, 0x099d, - 0x5567, 0x153d, - 0x5568, 0x2b13, - 0x556a, 0x0b7f, - 0x556b, 0x2b15, - 0x556c, 0x127a, - 0x556d, 0x1541, - 0x556e, 0x0b59, - 0x556f, 0x2b16, - 0x5575, 0x1549, - 0x5578, 0x0f70, - 0x5579, 0x2b1c, - 0x557b, 0x155a, - 0x557c, 0x0e37, - 0x557d, 0x2b1e, - 0x557e, 0x1557, - 0x557f, 0x2b1f, - 0x5580, 0x0933, - 0x5581, 0x1555, - 0x5582, 0x0ec8, - 0x5583, 0x1551, - 0x5584, 0x0cff, - 0x5585, 0x2b20, - 0x5587, 0x0999, - 0x5588, 0x1554, - 0x5589, 0x07a4, - 0x558a, 0x0767, - 0x558b, 0x154f, - 0x558c, 0x2b22, - 0x558f, 0x153e, - 0x5590, 0x2b25, - 0x5591, 0x1559, - 0x5592, 0x2b26, - 0x5594, 0x155e, - 0x5595, 0x2b28, - 0x5598, 0x0530, - 0x5599, 0x155f, - 0x559a, 0x2b2b, - 0x559c, 0x0f1f, - 0x559d, 0x077f, - 0x559e, 0x2b2d, - 0x559f, 0x1556, - 0x55a0, 0x2b2e, - 0x55a7, 0x0fc5, - 0x55a8, 0x2b35, - 0x55aa, 0x210b, - 0x55ab, 0x2b37, - 0x55ac, 0x20de, - 0x55ad, 0x2b38, - 0x55ae, 0x1eaa, - 0x55af, 0x2b39, - 0x55b1, 0x1552, - 0x55b2, 0x222c, - 0x55b3, 0x113e, - 0x55b4, 0x2b3b, - 0x55b5, 0x153f, - 0x55b6, 0x2b3c, - 0x55b7, 0x0ba8, - 0x55b8, 0x2b3d, - 0x55b9, 0x1553, - 0x55ba, 0x2b3e, - 0x55bb, 0x10dc, - 0x55bc, 0x2b3f, - 0x55bd, 0x155c, - 0x55bf, 0x2b40, - 0x55c4, 0x156a, - 0x55c5, 0x0fac, - 0x55c6, 0x20d8, - 0x55c7, 0x22c0, - 0x55c8, 0x2b45, - 0x55c9, 0x1562, - 0x55ca, 0x2b46, - 0x55cc, 0x156f, - 0x55ce, 0x206f, - 0x55cf, 0x2b48, - 0x55d1, 0x1564, - 0x55d2, 0x1550, - 0x55d3, 0x0cdd, - 0x55d4, 0x1567, - 0x55d5, 0x2b4a, - 0x55d6, 0x1558, - 0x55d7, 0x2b4b, - 0x55da, 0x21a1, - 0x55db, 0x2b4e, - 0x55dc, 0x0d5f, - 0x55dd, 0x1569, - 0x55de, 0x2b4f, - 0x55df, 0x155b, - 0x55e0, 0x2b50, - 0x55e1, 0x0eda, - 0x55e2, 0x2b51, - 0x55e3, 0x0db8, - 0x55e4, 0x1573, - 0x55e5, 0x156c, - 0x55e6, 0x1568, - 0x55e7, 0x2b52, - 0x55e8, 0x1571, - 0x55e9, 0x2379, - 0x55ea, 0x1560, - 0x55eb, 0x1565, - 0x55ed, 0x2b53, - 0x55ef, 0x156b, - 0x55f0, 0x2b55, - 0x55f2, 0x156d, - 0x55f4, 0x2b57, - 0x55f5, 0x1572, - 0x55f6, 0x2372, - 0x55f7, 0x1561, - 0x55f8, 0x2b58, - 0x55fd, 0x0dc9, - 0x55fe, 0x157b, - 0x55ff, 0x2b5d, - 0x5600, 0x157c, - 0x5601, 0x1578, - 0x5602, 0x2b5e, - 0x5606, 0x216a, - 0x5607, 0x2b62, - 0x5608, 0x1576, - 0x5609, 0x0841, - 0x560a, 0x2b63, - 0x560c, 0x1577, - 0x560d, 0x237c, - 0x560e, 0x06bd, - 0x560f, 0x127b, - 0x5610, 0x2b65, - 0x5614, 0x20b0, - 0x5615, 0x2b69, - 0x5616, 0x237a, - 0x5617, 0x1e74, - 0x5618, 0x0fb5, - 0x5619, 0x2b6a, - 0x561b, 0x0a96, - 0x561c, 0x2377, - 0x561d, 0x2b6c, - 0x561e, 0x1575, - 0x561f, 0x1563, - 0x5620, 0x2b6d, - 0x5623, 0x157a, - 0x5624, 0x1579, - 0x5625, 0x2b70, - 0x5627, 0x157d, - 0x5628, 0x2b72, - 0x5629, 0x1f4c, - 0x562a, 0x2b73, - 0x562c, 0x1582, - 0x562d, 0x157e, - 0x562e, 0x2378, - 0x562f, 0x21cf, - 0x5630, 0x2368, - 0x5631, 0x11f5, - 0x5632, 0x04d5, - 0x5633, 0x2b75, - 0x5634, 0x1249, - 0x5635, 0x2371, - 0x5636, 0x0db0, - 0x5637, 0x2b76, - 0x5638, 0x2369, - 0x5639, 0x1580, - 0x563a, 0x2b77, - 0x563b, 0x0f0a, - 0x563c, 0x2b78, - 0x563f, 0x0790, - 0x5640, 0x2b7b, - 0x5641, 0x2674, - 0x5642, 0x2b7c, - 0x564c, 0x1587, - 0x564d, 0x1583, - 0x564e, 0x1034, - 0x564f, 0x2b86, - 0x5654, 0x1588, - 0x5655, 0x2b8b, - 0x5657, 0x1581, - 0x5658, 0x157f, - 0x5659, 0x1585, - 0x565a, 0x2b8d, - 0x565c, 0x1586, - 0x565d, 0x236f, - 0x565e, 0x2b8f, - 0x5660, 0x2370, - 0x5661, 0x2b91, - 0x5662, 0x1584, - 0x5663, 0x2b92, - 0x5664, 0x158a, - 0x5665, 0x2376, - 0x5666, 0x2373, - 0x5667, 0x2b93, - 0x5668, 0x0c16, - 0x5669, 0x1262, - 0x566a, 0x112e, - 0x566b, 0x158c, - 0x566c, 0x0d60, - 0x566d, 0x2b94, - 0x566f, 0x237f, - 0x5670, 0x2b96, - 0x5671, 0x158b, - 0x5672, 0x2374, - 0x5673, 0x2b97, - 0x5674, 0x20b5, - 0x5675, 0x2b98, - 0x5676, 0x06bc, - 0x5677, 0x2b99, - 0x5678, 0x1edb, - 0x5679, 0x2672, - 0x567a, 0x2b9a, - 0x567b, 0x158d, - 0x567d, 0x2b9b, - 0x5680, 0x236e, - 0x5681, 0x2b9e, - 0x5685, 0x158f, - 0x5686, 0x1589, - 0x5687, 0x21b7, - 0x5688, 0x2ba2, - 0x568c, 0x2375, - 0x568d, 0x2ba6, - 0x568e, 0x0776, - 0x568f, 0x0e3a, - 0x5690, 0x2ba7, - 0x5693, 0x1590, - 0x5694, 0x2baa, - 0x5695, 0x2382, - 0x5696, 0x2bab, - 0x5699, 0x209e, - 0x569a, 0x2bae, - 0x56a3, 0x0f66, - 0x56a4, 0x2bb7, - 0x56a6, 0x236b, - 0x56a7, 0x2bb9, - 0x56a8, 0x2039, - 0x56a9, 0x2bba, - 0x56ae, 0x269f, - 0x56af, 0x1591, - 0x56b0, 0x2bbf, - 0x56b3, 0x237d, - 0x56b4, 0x21f5, - 0x56b5, 0x2bc2, - 0x56b6, 0x2381, - 0x56b7, 0x0c9d, - 0x56b8, 0x2bc3, - 0x56bc, 0x0891, - 0x56bd, 0x2bc7, - 0x56c0, 0x237b, - 0x56c1, 0x237e, - 0x56c2, 0x21cc, - 0x56c3, 0x2bca, - 0x56c5, 0x22db, - 0x56c6, 0x2bcc, - 0x56c8, 0x236a, - 0x56c9, 0x2689, - 0x56ca, 0x0b35, - 0x56cb, 0x2bce, - 0x56cc, 0x2697, - 0x56cd, 0x2bcf, - 0x56d1, 0x22a1, - 0x56d2, 0x2bd3, - 0x56d4, 0x1592, - 0x56d5, 0x2bd5, - 0x56d7, 0x1593, - 0x56d8, 0x2bd7, - 0x56da, 0x0c71, - 0x56db, 0x0db9, - 0x56dc, 0x2bd9, - 0x56dd, 0x1594, - 0x56de, 0x07ed, - 0x56df, 0x126c, - 0x56e0, 0x1079, - 0x56e1, 0x1595, - 0x56e2, 0x0e76, - 0x56e3, 0x2bda, - 0x56e4, 0x0619, - 0x56e5, 0x2bdb, - 0x56eb, 0x1597, - 0x56ec, 0x2be1, - 0x56ed, 0x10f3, - 0x56ee, 0x2be2, - 0x56f0, 0x0992, - 0x56f1, 0x0554, - 0x56f2, 0x2be4, - 0x56f4, 0x0eb6, - 0x56f5, 0x1596, - 0x56f6, 0x2be6, - 0x56f9, 0x1598, - 0x56fa, 0x0725, - 0x56fb, 0x2be9, - 0x56fd, 0x0753, - 0x56fe, 0x0e6d, - 0x56ff, 0x1599, - 0x5700, 0x2beb, - 0x5703, 0x0bf3, - 0x5704, 0x159a, - 0x5705, 0x2bee, - 0x5706, 0x10f5, - 0x5707, 0x2383, - 0x5708, 0x0c81, - 0x5709, 0x159c, - 0x570a, 0x159b, - 0x570b, 0x1f3d, - 0x570c, 0x2bef, - 0x570d, 0x218f, - 0x570e, 0x2bf0, - 0x5712, 0x2246, - 0x5713, 0x2248, - 0x5714, 0x2bf4, - 0x5716, 0x217e, - 0x5717, 0x2bf6, - 0x5718, 0x2180, - 0x5719, 0x2bf7, - 0x571c, 0x159d, - 0x571d, 0x2bfa, - 0x571f, 0x0e72, - 0x5720, 0x2bfc, - 0x5723, 0x0d3c, - 0x5724, 0x2bff, - 0x5728, 0x111d, - 0x5729, 0x13a7, - 0x572a, 0x13a9, - 0x572b, 0x2c03, - 0x572c, 0x13a8, - 0x572d, 0x0740, - 0x572e, 0x13ac, - 0x5730, 0x05b9, - 0x5731, 0x2c04, - 0x5733, 0x13aa, - 0x5734, 0x2c06, - 0x5739, 0x13ab, - 0x573a, 0x04c6, - 0x573b, 0x13af, - 0x573c, 0x2c0b, - 0x573e, 0x080d, - 0x573f, 0x2c0d, - 0x5740, 0x11b6, - 0x5741, 0x2c0e, - 0x5742, 0x13b0, - 0x5743, 0x2c0f, - 0x5747, 0x0928, - 0x5748, 0x2c13, - 0x574a, 0x0658, - 0x574b, 0x2c15, - 0x574c, 0x13a0, - 0x574d, 0x0e01, - 0x574e, 0x093f, - 0x574f, 0x07ca, - 0x5750, 0x1255, - 0x5751, 0x0960, - 0x5752, 0x2c16, - 0x5757, 0x0976, - 0x5758, 0x2c1b, - 0x575a, 0x0854, - 0x575b, 0x0e06, - 0x575c, 0x13ae, - 0x575d, 0x03de, - 0x575e, 0x0efa, - 0x575f, 0x0675, - 0x5760, 0x1216, - 0x5761, 0x0be1, - 0x5762, 0x2c1d, - 0x5764, 0x098f, - 0x5765, 0x2c1f, - 0x5766, 0x0e0c, - 0x5767, 0x2c20, - 0x5768, 0x13b7, - 0x5769, 0x13b1, - 0x576a, 0x0bd9, - 0x576b, 0x13b3, - 0x576c, 0x2c21, - 0x576d, 0x13b8, - 0x576e, 0x2c22, - 0x576f, 0x0bb8, - 0x5770, 0x2c23, - 0x5773, 0x13ba, - 0x5774, 0x2c26, - 0x5776, 0x13b9, - 0x5777, 0x094d, - 0x5778, 0x2c28, - 0x577b, 0x13b6, - 0x577c, 0x13b5, - 0x577d, 0x2c2b, - 0x5782, 0x053c, - 0x5783, 0x0997, - 0x5784, 0x0a49, - 0x5785, 0x13b2, - 0x5786, 0x13b4, - 0x5787, 0x2c30, - 0x578b, 0x0f98, - 0x578c, 0x13bd, - 0x578d, 0x2c34, - 0x5792, 0x09c8, - 0x5793, 0x13c2, - 0x5794, 0x2c39, - 0x579b, 0x0621, - 0x579c, 0x2c40, - 0x57a0, 0x13c3, - 0x57a1, 0x13a2, - 0x57a2, 0x0711, - 0x57a3, 0x10ee, - 0x57a4, 0x13bc, - 0x57a5, 0x2c44, - 0x57a6, 0x095e, - 0x57a7, 0x13c0, - 0x57a8, 0x2c45, - 0x57a9, 0x13a1, - 0x57aa, 0x2c46, - 0x57ab, 0x05c7, - 0x57ac, 0x2c47, - 0x57ad, 0x13bb, - 0x57ae, 0x0972, - 0x57af, 0x2c48, - 0x57b2, 0x13be, - 0x57b3, 0x2c4b, - 0x57b4, 0x13c1, - 0x57b5, 0x2c4c, - 0x57b8, 0x13c9, - 0x57b9, 0x2c4f, - 0x57c2, 0x06fa, - 0x57c3, 0x03ae, - 0x57c4, 0x2c58, - 0x57cb, 0x0a98, - 0x57cc, 0x2c5f, - 0x57ce, 0x04ec, - 0x57cf, 0x13bf, - 0x57d0, 0x2c61, - 0x57d2, 0x13c8, - 0x57d3, 0x2c63, - 0x57d4, 0x0bf1, - 0x57d5, 0x13c4, - 0x57d6, 0x2c64, - 0x57d8, 0x13c5, - 0x57d9, 0x13c7, - 0x57da, 0x13c6, - 0x57db, 0x2c66, - 0x57dd, 0x13ce, - 0x57de, 0x2c68, - 0x57df, 0x10d7, - 0x57e0, 0x0481, - 0x57e1, 0x232a, - 0x57e2, 0x2c69, - 0x57e4, 0x13cd, - 0x57e5, 0x2c6b, - 0x57ed, 0x13d2, - 0x57ee, 0x2c73, - 0x57ef, 0x13cb, - 0x57f0, 0x2c74, - 0x57f4, 0x13ca, - 0x57f5, 0x2c78, - 0x57f7, 0x228b, - 0x57f8, 0x13cc, - 0x57f9, 0x0ba1, - 0x57fa, 0x080e, - 0x57fb, 0x2c7a, - 0x57fd, 0x13d1, - 0x57fe, 0x2c7c, - 0x5800, 0x13d3, - 0x5801, 0x2c7e, - 0x5802, 0x0e16, - 0x5803, 0x2c7f, - 0x5805, 0x1f85, - 0x5806, 0x0610, - 0x5807, 0x144c, - 0x5808, 0x2c81, - 0x580a, 0x2325, - 0x580b, 0x13cf, - 0x580c, 0x2c83, - 0x580d, 0x13d0, - 0x580e, 0x2c84, - 0x5811, 0x0c32, - 0x5812, 0x2c87, - 0x5815, 0x0628, - 0x5816, 0x232c, - 0x5817, 0x2c8a, - 0x5819, 0x13d5, - 0x581a, 0x2c8c, - 0x581d, 0x232e, - 0x581e, 0x13d4, - 0x581f, 0x2c8f, - 0x5820, 0x13d7, - 0x5821, 0x040d, - 0x5822, 0x2c90, - 0x5824, 0x05ad, - 0x5825, 0x2c92, - 0x582a, 0x093d, - 0x582b, 0x2c97, - 0x582f, 0x2205, - 0x5830, 0x1008, - 0x5831, 0x1e38, - 0x5832, 0x2c9b, - 0x5834, 0x1e73, - 0x5835, 0x0601, - 0x5836, 0x2c9d, - 0x5844, 0x13d6, - 0x5845, 0x2cab, - 0x584a, 0x1fe3, - 0x584b, 0x2339, - 0x584c, 0x0def, - 0x584d, 0x19a3, - 0x584e, 0x2cb0, - 0x584f, 0x232b, - 0x5850, 0x2cb1, - 0x5851, 0x0dd1, - 0x5852, 0x232d, - 0x5853, 0x2cb2, - 0x5854, 0x0df3, - 0x5855, 0x2cb3, - 0x5857, 0x217f, - 0x5858, 0x0e14, - 0x5859, 0x2cb5, - 0x585e, 0x0cd6, - 0x585f, 0x2cba, - 0x5862, 0x21a7, - 0x5863, 0x2cbd, - 0x5864, 0x232f, - 0x5865, 0x13d8, - 0x5866, 0x2cbe, - 0x586b, 0x0e41, - 0x586c, 0x13d9, - 0x586d, 0x2cc3, - 0x5875, 0x1e7d, - 0x5876, 0x2ccb, - 0x5879, 0x20d6, - 0x587a, 0x2cce, - 0x587e, 0x13a3, - 0x587f, 0x2cd2, - 0x5880, 0x13dd, - 0x5881, 0x13da, - 0x5882, 0x2cd3, - 0x5883, 0x08e2, - 0x5884, 0x2cd4, - 0x5885, 0x0d92, - 0x5886, 0x2cd5, - 0x5889, 0x13db, - 0x588a, 0x1ec2, - 0x588b, 0x2cd8, - 0x5892, 0x0d03, - 0x5893, 0x0b1c, - 0x5894, 0x2cdf, - 0x5899, 0x0c3a, - 0x589a, 0x13dc, - 0x589b, 0x2ce4, - 0x589c, 0x22b2, - 0x589d, 0x2ce5, - 0x589e, 0x1139, - 0x589f, 0x0fb1, - 0x58a0, 0x2ce6, - 0x58a8, 0x0b0e, - 0x58a9, 0x0614, - 0x58aa, 0x2cee, - 0x58ae, 0x1edf, - 0x58af, 0x2cf2, - 0x58b3, 0x1ef9, - 0x58b4, 0x2cf6, - 0x58bb, 0x20d9, - 0x58bc, 0x13a4, - 0x58bd, 0x2cfd, - 0x58be, 0x1fdd, - 0x58bf, 0x2cfe, - 0x58c1, 0x0443, - 0x58c2, 0x2d00, - 0x58c5, 0x13a5, - 0x58c6, 0x2d03, - 0x58c7, 0x2167, - 0x58c8, 0x2d04, - 0x58d1, 0x13a6, - 0x58d2, 0x2d0d, - 0x58d3, 0x21ed, - 0x58d4, 0x2d0e, - 0x58d5, 0x0775, - 0x58d6, 0x2d0f, - 0x58d8, 0x2007, - 0x58d9, 0x2326, - 0x58da, 0x2329, - 0x58db, 0x2d11, - 0x58de, 0x1f52, - 0x58df, 0x203b, - 0x58e0, 0x2328, - 0x58e1, 0x2d14, - 0x58e2, 0x2327, - 0x58e3, 0x2d15, - 0x58e4, 0x0c9b, - 0x58e5, 0x2d16, - 0x58e9, 0x1e2b, - 0x58ea, 0x2d1a, - 0x58eb, 0x0d56, - 0x58ec, 0x0ca4, - 0x58ed, 0x2d1b, - 0x58ee, 0x1210, - 0x58ef, 0x22ae, - 0x58f0, 0x0d32, - 0x58f1, 0x2d1c, - 0x58f3, 0x0954, - 0x58f4, 0x2d1e, - 0x58f6, 0x07af, - 0x58f7, 0x2d20, - 0x58f9, 0x1043, - 0x58fa, 0x1f49, - 0x58fb, 0x2d22, - 0x58fd, 0x2138, - 0x58fe, 0x2d24, - 0x5900, 0x2d26, - 0x5902, 0x161c, - 0x5903, 0x2d28, - 0x5904, 0x0529, - 0x5905, 0x2d29, - 0x5907, 0x0421, - 0x5908, 0x2d2b, - 0x590d, 0x06af, - 0x590e, 0x2d30, - 0x590f, 0x0f31, - 0x5910, 0x2d31, - 0x5914, 0x12fb, - 0x5915, 0x0f13, - 0x5916, 0x0e93, - 0x5917, 0x2d35, - 0x5919, 0x1301, - 0x591a, 0x061f, - 0x591b, 0x2d37, - 0x591c, 0x1040, - 0x591d, 0x2d38, - 0x591f, 0x0714, - 0x5920, 0x2d3a, - 0x5922, 0x2081, - 0x5923, 0x2d3c, - 0x5924, 0x161b, - 0x5925, 0x1619, - 0x5926, 0x2d3d, - 0x5927, 0x0576, - 0x5928, 0x2d3e, - 0x5929, 0x0e3f, - 0x592a, 0x0dfe, - 0x592b, 0x068f, - 0x592c, 0x2d3f, - 0x592d, 0x1268, - 0x592e, 0x1014, - 0x592f, 0x0772, - 0x5930, 0x2d40, - 0x5931, 0x0d3e, - 0x5932, 0x2d41, - 0x5934, 0x0e68, - 0x5935, 0x2d43, - 0x5937, 0x104b, - 0x5938, 0x0971, - 0x5939, 0x0843, - 0x593a, 0x0620, - 0x593b, 0x2d45, - 0x593c, 0x14af, - 0x593d, 0x2d46, - 0x593e, 0x1f7c, - 0x593f, 0x2d47, - 0x5941, 0x14b0, - 0x5942, 0x138c, - 0x5943, 0x2d49, - 0x5944, 0x1002, - 0x5945, 0x2d4a, - 0x5947, 0x0c05, - 0x5948, 0x0b31, - 0x5949, 0x068b, - 0x594a, 0x2d4c, - 0x594b, 0x0679, - 0x594c, 0x2d4d, - 0x594e, 0x0989, - 0x594f, 0x123d, - 0x5950, 0x2d4f, - 0x5951, 0x0c14, - 0x5952, 0x2d50, - 0x5954, 0x0425, - 0x5955, 0x14b2, - 0x5956, 0x0882, - 0x5957, 0x0e2a, - 0x5958, 0x14b4, - 0x5959, 0x2d52, - 0x595a, 0x14b3, - 0x595b, 0x2d53, - 0x5960, 0x05cd, - 0x5961, 0x2d58, - 0x5962, 0x0d16, - 0x5963, 0x2d59, - 0x5965, 0x03cd, - 0x5966, 0x2d5b, - 0x5969, 0x235b, - 0x596a, 0x1ede, - 0x596b, 0x2d5e, - 0x596c, 0x1fa2, - 0x596d, 0x2d5f, - 0x596e, 0x1efa, - 0x596f, 0x2d60, - 0x5973, 0x0b6f, - 0x5974, 0x0b6c, - 0x5975, 0x2d64, - 0x5976, 0x0b2f, - 0x5977, 0x2d65, - 0x5978, 0x085c, - 0x5979, 0x0df2, - 0x597a, 0x2d66, - 0x597d, 0x077a, - 0x597e, 0x2d69, - 0x5981, 0x1775, - 0x5982, 0x0cc2, - 0x5983, 0x1776, - 0x5984, 0x0eae, - 0x5985, 0x2d6c, - 0x5986, 0x120e, - 0x5987, 0x06b9, - 0x5988, 0x0a8f, - 0x5989, 0x2d6d, - 0x598a, 0x0cac, - 0x598b, 0x2d6e, - 0x598d, 0x1777, - 0x598e, 0x2d70, - 0x5992, 0x0609, - 0x5993, 0x083e, - 0x5994, 0x2d74, - 0x5996, 0x1026, - 0x5997, 0x177b, - 0x5998, 0x2d76, - 0x5999, 0x0af3, - 0x599a, 0x2d77, - 0x599d, 0x22ad, - 0x599e, 0x177e, - 0x599f, 0x2d7a, - 0x59a3, 0x177a, - 0x59a4, 0x177f, - 0x59a5, 0x0e88, - 0x59a6, 0x2d7e, - 0x59a8, 0x065e, - 0x59a9, 0x1778, - 0x59ab, 0x177d, - 0x59ac, 0x2d80, - 0x59ae, 0x0b40, - 0x59af, 0x1782, - 0x59b0, 0x2d82, - 0x59b2, 0x1781, - 0x59b3, 0x2d84, - 0x59b9, 0x0ac8, - 0x59ba, 0x2d8a, - 0x59bb, 0x0bfd, - 0x59bc, 0x2d8b, - 0x59be, 0x1784, - 0x59bf, 0x2d8d, - 0x59c6, 0x0b1a, - 0x59c7, 0x2d94, - 0x59ca, 0x177c, - 0x59cb, 0x0d53, - 0x59cc, 0x2d97, - 0x59d0, 0x08b4, - 0x59d1, 0x071c, - 0x59d2, 0x1780, - 0x59d3, 0x0fa0, - 0x59d4, 0x0ebe, - 0x59d5, 0x2d9b, - 0x59d7, 0x1783, - 0x59d8, 0x178a, - 0x59d9, 0x2d9d, - 0x59da, 0x102d, - 0x59db, 0x2d9e, - 0x59dc, 0x087b, - 0x59dd, 0x1787, - 0x59de, 0x2d9f, - 0x59e3, 0x1789, - 0x59e4, 0x2da4, - 0x59e5, 0x09bc, - 0x59e6, 0x2da5, - 0x59e8, 0x1053, - 0x59e9, 0x2da7, - 0x59ec, 0x081a, - 0x59ed, 0x2daa, - 0x59f9, 0x178b, - 0x59fa, 0x2db6, - 0x59fb, 0x107d, - 0x59fc, 0x2db7, - 0x59ff, 0x1228, - 0x5a00, 0x2dba, - 0x5a01, 0x0eaf, - 0x5a02, 0x2dbb, - 0x5a03, 0x0e8f, - 0x5a04, 0x0a4d, - 0x5a05, 0x1785, - 0x5a07, 0x0890, - 0x5a08, 0x1788, - 0x5a09, 0x178d, - 0x5a0a, 0x2dbc, - 0x5a0c, 0x178c, - 0x5a0d, 0x2dbe, - 0x5a11, 0x1790, - 0x5a12, 0x2dc2, - 0x5a13, 0x1792, - 0x5a14, 0x2dc3, - 0x5a18, 0x0b52, - 0x5a19, 0x2dc7, - 0x5a1c, 0x0b2b, - 0x5a1d, 0x2dca, - 0x5a1f, 0x0919, - 0x5a20, 0x0d28, - 0x5a21, 0x2dcc, - 0x5a23, 0x1791, - 0x5a24, 0x2dce, - 0x5a25, 0x062f, - 0x5a26, 0x2dcf, - 0x5a29, 0x0ae9, - 0x5a2a, 0x2dd2, - 0x5a31, 0x10ce, - 0x5a32, 0x178e, - 0x5a33, 0x2dd9, - 0x5a34, 0x178f, - 0x5a35, 0x2dda, - 0x5a36, 0x0c7d, - 0x5a37, 0x2ddb, - 0x5a3c, 0x1797, - 0x5a3d, 0x2de0, - 0x5a40, 0x1793, - 0x5a41, 0x203f, - 0x5a42, 0x2de3, - 0x5a46, 0x0be4, - 0x5a47, 0x2de7, - 0x5a49, 0x0ea2, - 0x5a4a, 0x1795, - 0x5a4b, 0x2de9, - 0x5a55, 0x1796, - 0x5a56, 0x2df3, - 0x5a5a, 0x07fe, - 0x5a5b, 0x2df7, - 0x5a62, 0x1798, - 0x5a63, 0x2dfe, - 0x5a66, 0x1f0e, - 0x5a67, 0x1794, - 0x5a68, 0x2e01, - 0x5a6a, 0x09a2, - 0x5a6b, 0x2e03, - 0x5a6d, 0x23f9, - 0x5a6e, 0x2e05, - 0x5a74, 0x1089, - 0x5a75, 0x1799, - 0x5a76, 0x0d2d, - 0x5a77, 0x179d, - 0x5a78, 0x2e0b, - 0x5a7a, 0x179e, - 0x5a7b, 0x2e0d, - 0x5a7f, 0x0fc1, - 0x5a80, 0x2e11, - 0x5a92, 0x0ac2, - 0x5a93, 0x2e23, - 0x5a9a, 0x0ac9, - 0x5a9b, 0x179c, - 0x5a9c, 0x2e2a, - 0x5aa7, 0x23fc, - 0x5aa8, 0x2e35, - 0x5aaa, 0x179b, - 0x5aab, 0x2e37, - 0x5ab2, 0x17a1, - 0x5ab3, 0x0f1e, - 0x5ab4, 0x2e3e, - 0x5ab5, 0x19a4, - 0x5ab6, 0x2e3f, - 0x5ab8, 0x17a4, - 0x5ab9, 0x2e41, - 0x5abd, 0x2069, - 0x5abe, 0x179f, - 0x5abf, 0x2e45, - 0x5ac1, 0x0851, - 0x5ac2, 0x0ce2, - 0x5ac3, 0x2e47, - 0x5ac9, 0x0828, - 0x5aca, 0x2e4d, - 0x5acc, 0x0f40, - 0x5acd, 0x2e4f, - 0x5ad2, 0x17a2, - 0x5ad3, 0x2e54, - 0x5ad4, 0x17a3, - 0x5ad5, 0x2e55, - 0x5ad6, 0x17a8, - 0x5ad7, 0x23f7, - 0x5ad8, 0x17aa, - 0x5ad9, 0x2e56, - 0x5adc, 0x17ab, - 0x5add, 0x2e59, - 0x5ae0, 0x17a5, - 0x5ae1, 0x05b6, - 0x5ae2, 0x2e5c, - 0x5ae3, 0x17a6, - 0x5ae4, 0x2e5d, - 0x5ae6, 0x17a9, - 0x5ae7, 0x2e5f, - 0x5ae9, 0x0b3e, - 0x5aea, 0x2e61, - 0x5aeb, 0x17a0, - 0x5aec, 0x2e62, - 0x5af1, 0x17a7, - 0x5af2, 0x2e67, - 0x5af5, 0x23f6, - 0x5af6, 0x2e6a, - 0x5afb, 0x23fd, - 0x5afc, 0x2e6f, - 0x5b00, 0x23f8, - 0x5b01, 0x2e73, - 0x5b08, 0x23fa, - 0x5b09, 0x17ac, - 0x5b0a, 0x2e7a, - 0x5b0b, 0x23fe, - 0x5b0c, 0x1fa8, - 0x5b0d, 0x2e7b, - 0x5b16, 0x17ae, - 0x5b17, 0x17ad, - 0x5b18, 0x2e84, - 0x5b19, 0x2401, - 0x5b1a, 0x2e85, - 0x5b21, 0x23ff, - 0x5b22, 0x2e8c, - 0x5b2a, 0x2400, - 0x5b2b, 0x2e94, - 0x5b30, 0x2221, - 0x5b31, 0x2e99, - 0x5b32, 0x17af, - 0x5b33, 0x2e9a, - 0x5b34, 0x130c, - 0x5b35, 0x2e9b, - 0x5b37, 0x17b0, - 0x5b38, 0x2122, - 0x5b39, 0x2e9d, - 0x5b40, 0x17b1, - 0x5b41, 0x2ea4, - 0x5b4c, 0x23fb, - 0x5b4d, 0x2eaf, - 0x5b50, 0x1230, - 0x5b51, 0x17b7, - 0x5b52, 0x2eb2, - 0x5b53, 0x17b8, - 0x5b54, 0x0964, - 0x5b55, 0x1113, - 0x5b56, 0x2eb3, - 0x5b57, 0x1233, - 0x5b58, 0x0569, - 0x5b59, 0x0de4, - 0x5b5a, 0x17b4, - 0x5b5b, 0x1279, - 0x5b5c, 0x122b, - 0x5b5d, 0x0f6d, - 0x5b5e, 0x2eb4, - 0x5b5f, 0x0ad4, - 0x5b60, 0x2eb5, - 0x5b62, 0x17b9, - 0x5b63, 0x0831, - 0x5b64, 0x071b, - 0x5b65, 0x17b5, - 0x5b66, 0x0fd0, - 0x5b67, 0x2eb7, - 0x5b69, 0x0759, - 0x5b6a, 0x0a76, - 0x5b6b, 0x215a, - 0x5b6c, 0x1261, - 0x5b6d, 0x2eb9, - 0x5b70, 0x0d82, - 0x5b71, 0x176a, - 0x5b72, 0x2ebc, - 0x5b73, 0x17b6, - 0x5b74, 0x2ebd, - 0x5b75, 0x0692, - 0x5b76, 0x2ebe, - 0x5b78, 0x21e5, - 0x5b79, 0x2ec0, - 0x5b7a, 0x0cc1, - 0x5b7b, 0x2ec1, - 0x5b7d, 0x0b58, - 0x5b7e, 0x2ec3, - 0x5b7f, 0x2057, - 0x5b80, 0x172e, - 0x5b81, 0x0b61, - 0x5b82, 0x2ec4, - 0x5b83, 0x0df1, - 0x5b84, 0x172f, - 0x5b85, 0x114d, - 0x5b86, 0x2ec5, - 0x5b87, 0x10d3, - 0x5b88, 0x0d6f, - 0x5b89, 0x03bd, - 0x5b8a, 0x2ec6, - 0x5b8b, 0x0dc3, - 0x5b8c, 0x0e9b, - 0x5b8d, 0x2ec7, - 0x5b8f, 0x07a1, - 0x5b90, 0x2ec9, - 0x5b93, 0x1731, - 0x5b94, 0x2ecc, - 0x5b95, 0x1730, - 0x5b96, 0x2ecd, - 0x5b97, 0x1237, - 0x5b98, 0x0732, - 0x5b99, 0x11e5, - 0x5b9a, 0x05e7, - 0x5b9b, 0x0ea1, - 0x5b9c, 0x1052, - 0x5b9d, 0x040f, - 0x5b9e, 0x0d4c, - 0x5b9f, 0x2ece, - 0x5ba0, 0x050d, - 0x5ba1, 0x0d2c, - 0x5ba2, 0x095a, - 0x5ba3, 0x0fc6, - 0x5ba4, 0x0d69, - 0x5ba5, 0x1732, - 0x5ba6, 0x07d7, - 0x5ba7, 0x2ecf, - 0x5baa, 0x0f49, - 0x5bab, 0x0705, - 0x5bac, 0x2ed2, - 0x5bb0, 0x111a, - 0x5bb1, 0x2ed6, - 0x5bb3, 0x075d, - 0x5bb4, 0x1010, - 0x5bb5, 0x0f69, - 0x5bb6, 0x0845, - 0x5bb7, 0x2ed8, - 0x5bb8, 0x1733, - 0x5bb9, 0x0cb8, - 0x5bba, 0x2ed9, - 0x5bbd, 0x097a, - 0x5bbe, 0x045f, - 0x5bbf, 0x0dd3, - 0x5bc0, 0x2edc, - 0x5bc2, 0x0838, - 0x5bc3, 0x2ede, - 0x5bc4, 0x0837, - 0x5bc5, 0x1081, - 0x5bc6, 0x0ae1, - 0x5bc7, 0x0969, - 0x5bc8, 0x2edf, - 0x5bcc, 0x06b6, - 0x5bcd, 0x2ee3, - 0x5bd0, 0x0ac7, - 0x5bd1, 0x2ee6, - 0x5bd2, 0x0765, - 0x5bd3, 0x10e5, - 0x5bd4, 0x2ee7, - 0x5bdd, 0x0c5b, - 0x5bde, 0x0b12, - 0x5bdf, 0x04b3, - 0x5be0, 0x2ef0, - 0x5be1, 0x072a, - 0x5be2, 0x20e5, - 0x5be3, 0x2ef1, - 0x5be4, 0x1737, - 0x5be5, 0x0a11, - 0x5be6, 0x212f, - 0x5be7, 0x20a3, - 0x5be8, 0x1150, - 0x5be9, 0x2121, - 0x5bea, 0x2ef2, - 0x5beb, 0x21d4, - 0x5bec, 0x1fe5, - 0x5bed, 0x2ef3, - 0x5bee, 0x1738, - 0x5bef, 0x2ef4, - 0x5bf0, 0x173a, - 0x5bf1, 0x2ef5, - 0x5bf5, 0x1e8a, - 0x5bf6, 0x1e37, - 0x5bf7, 0x2ef9, - 0x5bf8, 0x056a, - 0x5bf9, 0x0613, - 0x5bfa, 0x0db7, - 0x5bfb, 0x0fd9, - 0x5bfc, 0x059d, - 0x5bfd, 0x2efa, - 0x5bff, 0x0d70, - 0x5c00, 0x2efc, - 0x5c01, 0x067f, - 0x5c02, 0x2efd, - 0x5c04, 0x0d1d, - 0x5c05, 0x2eff, - 0x5c06, 0x087c, - 0x5c07, 0x1f9e, - 0x5c08, 0x22a6, - 0x5c09, 0x0ecd, - 0x5c0a, 0x124d, - 0x5c0b, 0x21e8, - 0x5c0c, 0x2f00, - 0x5c0d, 0x1eda, - 0x5c0e, 0x1eb9, - 0x5c0f, 0x0f6c, - 0x5c10, 0x2f01, - 0x5c11, 0x0d12, - 0x5c12, 0x2f02, - 0x5c14, 0x063a, - 0x5c15, 0x17b2, - 0x5c16, 0x0855, - 0x5c17, 0x2f04, - 0x5c18, 0x04e3, - 0x5c19, 0x2f05, - 0x5c1a, 0x0d09, - 0x5c1b, 0x2f06, - 0x5c1c, 0x17b3, - 0x5c1d, 0x04c7, - 0x5c1e, 0x2f07, - 0x5c22, 0x14b6, - 0x5c23, 0x2f0b, - 0x5c24, 0x10ad, - 0x5c25, 0x14b7, - 0x5c26, 0x2f0c, - 0x5c27, 0x1029, - 0x5c28, 0x2f0d, - 0x5c2c, 0x14b8, - 0x5c2d, 0x2f11, - 0x5c31, 0x08fc, - 0x5c32, 0x2f15, - 0x5c34, 0x14b9, - 0x5c35, 0x2f17, - 0x5c37, 0x235c, - 0x5c38, 0x0d43, - 0x5c39, 0x1083, - 0x5c3a, 0x0504, - 0x5c3b, 0x1766, - 0x5c3c, 0x0b44, - 0x5c3d, 0x08d0, - 0x5c3e, 0x0ec1, - 0x5c3f, 0x0b55, - 0x5c40, 0x0905, - 0x5c41, 0x0bc7, - 0x5c42, 0x04aa, - 0x5c43, 0x2f19, - 0x5c45, 0x0902, - 0x5c46, 0x2f1b, - 0x5c48, 0x0c79, - 0x5c49, 0x0e3e, - 0x5c4a, 0x08bd, - 0x5c4b, 0x0eec, - 0x5c4c, 0x2f1d, - 0x5c4e, 0x0d51, - 0x5c4f, 0x0be0, - 0x5c50, 0x1768, - 0x5c51, 0x0f87, - 0x5c52, 0x2f1f, - 0x5c55, 0x115a, - 0x5c56, 0x2f22, - 0x5c59, 0x1769, - 0x5c5a, 0x2f25, - 0x5c5e, 0x0d8b, - 0x5c5f, 0x2f29, - 0x5c60, 0x0e71, - 0x5c61, 0x0a6c, - 0x5c62, 0x2050, - 0x5c63, 0x176b, - 0x5c64, 0x1e67, - 0x5c65, 0x0a6b, - 0x5c66, 0x176c, - 0x5c67, 0x2f2a, - 0x5c68, 0x23f4, - 0x5c69, 0x2f2b, - 0x5c6c, 0x213e, - 0x5c6d, 0x2f2e, - 0x5c6e, 0x1774, - 0x5c6f, 0x0e7e, - 0x5c70, 0x2f2f, - 0x5c71, 0x0cf6, - 0x5c72, 0x2f30, - 0x5c79, 0x1060, - 0x5c7a, 0x15ac, - 0x5c7b, 0x2f37, - 0x5c7f, 0x10d1, - 0x5c80, 0x2f3b, - 0x5c81, 0x0ddf, - 0x5c82, 0x0c10, - 0x5c83, 0x2f3c, - 0x5c88, 0x15b0, - 0x5c89, 0x2f41, - 0x5c8c, 0x15ab, - 0x5c8d, 0x15ad, - 0x5c8e, 0x2f44, - 0x5c90, 0x15ae, - 0x5c91, 0x15b3, - 0x5c92, 0x2f46, - 0x5c94, 0x04b4, - 0x5c95, 0x2f48, - 0x5c96, 0x15af, - 0x5c97, 0x06d5, - 0x5c98, 0x15b1, - 0x5c9a, 0x15b4, - 0x5c9b, 0x059b, - 0x5c9c, 0x15b5, - 0x5c9d, 0x2f49, - 0x5ca1, 0x1f16, - 0x5ca2, 0x15b7, - 0x5ca3, 0x15bc, - 0x5ca4, 0x2f4d, - 0x5ca9, 0x0ffb, - 0x5caa, 0x2f52, - 0x5cab, 0x15ba, - 0x5cac, 0x15b9, - 0x5cad, 0x0a34, - 0x5cae, 0x2f53, - 0x5cb1, 0x15bb, - 0x5cb2, 0x2f56, - 0x5cb3, 0x1103, - 0x5cb4, 0x2f57, - 0x5cb5, 0x15b6, - 0x5cb6, 0x2f58, - 0x5cb7, 0x15be, - 0x5cb8, 0x03c1, - 0x5cb9, 0x2f59, - 0x5cbd, 0x15b8, - 0x5cbe, 0x2f5d, - 0x5cbf, 0x0986, - 0x5cc0, 0x2f5e, - 0x5cc1, 0x15bd, - 0x5cc2, 0x2f5f, - 0x5cc4, 0x15bf, - 0x5cc5, 0x2f61, - 0x5ccb, 0x15c2, - 0x5ccc, 0x2f67, - 0x5cd2, 0x15c0, - 0x5cd3, 0x2f6d, - 0x5cd9, 0x11c4, - 0x5cda, 0x2f73, - 0x5ce1, 0x0f2c, - 0x5ce2, 0x2f7a, - 0x5ce4, 0x15c1, - 0x5ce5, 0x15c3, - 0x5ce6, 0x0a74, - 0x5ce7, 0x2f7c, - 0x5ce8, 0x062a, - 0x5ce9, 0x2f7d, - 0x5cea, 0x10dd, - 0x5ceb, 0x2f7e, - 0x5ced, 0x0c4a, - 0x5cee, 0x2f80, - 0x5cf0, 0x0682, - 0x5cf1, 0x2f82, - 0x5cf4, 0x2389, - 0x5cf5, 0x2f85, - 0x5cf6, 0x1eb7, - 0x5cf7, 0x2f86, - 0x5cfb, 0x092d, - 0x5cfc, 0x2f8a, - 0x5cfd, 0x21b4, - 0x5cfe, 0x2f8b, - 0x5d00, 0x2f8d, - 0x5d02, 0x15c4, - 0x5d04, 0x2f8f, - 0x5d06, 0x15cb, - 0x5d07, 0x050c, - 0x5d08, 0x2f91, - 0x5d0d, 0x238f, - 0x5d0e, 0x0c08, - 0x5d0f, 0x2f96, - 0x5d14, 0x0561, - 0x5d15, 0x2f9b, - 0x5d16, 0x0feb, - 0x5d17, 0x1f1a, - 0x5d18, 0x2f9c, - 0x5d1b, 0x15cc, - 0x5d1c, 0x2f9f, - 0x5d1e, 0x15ca, - 0x5d1f, 0x2fa1, - 0x5d24, 0x15c9, - 0x5d25, 0x2fa6, - 0x5d26, 0x15c7, - 0x5d27, 0x15c6, - 0x5d28, 0x2fa7, - 0x5d29, 0x0429, - 0x5d2a, 0x2fa8, - 0x5d2c, 0x238b, - 0x5d2d, 0x1159, - 0x5d2e, 0x15c8, - 0x5d2f, 0x2faa, - 0x5d34, 0x15cf, - 0x5d35, 0x2faf, - 0x5d3d, 0x15d0, - 0x5d3e, 0x15ce, - 0x5d3f, 0x2fb7, - 0x5d47, 0x1b22, - 0x5d48, 0x2fbf, - 0x5d4a, 0x15d7, - 0x5d4b, 0x15d6, - 0x5d4c, 0x0c33, - 0x5d4d, 0x2fc1, - 0x5d50, 0x238a, - 0x5d51, 0x2fc4, - 0x5d58, 0x15cd, - 0x5d59, 0x2fcb, - 0x5d5b, 0x15d2, - 0x5d5c, 0x2fcd, - 0x5d5d, 0x15d4, - 0x5d5e, 0x2fce, - 0x5d69, 0x15d8, - 0x5d6a, 0x2fd9, - 0x5d6b, 0x15d5, - 0x5d6c, 0x15d1, - 0x5d6d, 0x2fda, - 0x5d6f, 0x15d3, - 0x5d70, 0x2fdc, - 0x5d74, 0x15d9, - 0x5d75, 0x2fe0, - 0x5d81, 0x2391, - 0x5d82, 0x15da, - 0x5d83, 0x2fec, - 0x5d84, 0x2271, - 0x5d85, 0x2fed, - 0x5d87, 0x2388, - 0x5d88, 0x2fef, - 0x5d97, 0x238e, - 0x5d98, 0x2ffe, - 0x5d99, 0x15db, - 0x5d9a, 0x2fff, - 0x5d9d, 0x15dc, - 0x5d9e, 0x3002, - 0x5da0, 0x238d, - 0x5da1, 0x3004, - 0x5da7, 0x238c, - 0x5da8, 0x300a, - 0x5db7, 0x15de, - 0x5db8, 0x2390, - 0x5db9, 0x3019, - 0x5dba, 0x2033, - 0x5dbb, 0x301a, - 0x5dbc, 0x223c, - 0x5dbd, 0x301b, - 0x5dc5, 0x15df, - 0x5dc6, 0x3023, - 0x5dcb, 0x1fe9, - 0x5dcc, 0x3028, - 0x5dcd, 0x0eb0, - 0x5dce, 0x3029, - 0x5dd2, 0x2055, - 0x5dd3, 0x302d, - 0x5dd4, 0x2392, - 0x5dd5, 0x302e, - 0x5ddb, 0x1815, - 0x5ddc, 0x3034, - 0x5ddd, 0x052b, - 0x5dde, 0x11dc, - 0x5ddf, 0x3035, - 0x5de1, 0x0fdb, - 0x5de2, 0x04d7, - 0x5de3, 0x3037, - 0x5de5, 0x06fd, - 0x5de6, 0x1250, - 0x5de7, 0x0c46, - 0x5de8, 0x090d, - 0x5de9, 0x0707, - 0x5dea, 0x3039, - 0x5deb, 0x0ee6, - 0x5dec, 0x303a, - 0x5dee, 0x04b5, - 0x5def, 0x139f, - 0x5df0, 0x2324, - 0x5df1, 0x082d, - 0x5df2, 0x1058, - 0x5df3, 0x0dbd, - 0x5df4, 0x03d8, - 0x5df5, 0x303c, - 0x5df7, 0x0f5c, - 0x5df8, 0x303e, - 0x5dfd, 0x12f7, - 0x5dfe, 0x08be, - 0x5dff, 0x3043, - 0x5e00, 0x3044, - 0x5e01, 0x043b, - 0x5e02, 0x0d67, - 0x5e03, 0x0483, - 0x5e04, 0x3045, - 0x5e05, 0x0d9c, - 0x5e06, 0x0648, - 0x5e07, 0x3046, - 0x5e08, 0x0d3d, - 0x5e09, 0x3047, - 0x5e0c, 0x0f10, - 0x5e0d, 0x304a, - 0x5e0f, 0x159e, - 0x5e10, 0x116b, - 0x5e11, 0x15a1, - 0x5e12, 0x304c, - 0x5e14, 0x15a0, - 0x5e15, 0x0b82, - 0x5e16, 0x0e4e, - 0x5e17, 0x304e, - 0x5e18, 0x09fa, - 0x5e19, 0x159f, - 0x5e1a, 0x11e2, - 0x5e1b, 0x0476, - 0x5e1c, 0x11c3, - 0x5e1d, 0x05bc, - 0x5e1e, 0x304f, - 0x5e25, 0x2143, - 0x5e26, 0x057b, - 0x5e27, 0x11a0, - 0x5e28, 0x3056, - 0x5e2b, 0x2129, - 0x5e2c, 0x3059, - 0x5e2d, 0x0f1c, - 0x5e2e, 0x03fa, - 0x5e2f, 0x305a, - 0x5e31, 0x15a2, - 0x5e32, 0x305c, - 0x5e33, 0x2277, - 0x5e34, 0x305d, - 0x5e36, 0x1ea7, - 0x5e37, 0x15a5, - 0x5e38, 0x04c8, - 0x5e39, 0x305f, - 0x5e3b, 0x15a3, - 0x5e3d, 0x0ab6, - 0x5e3e, 0x3061, - 0x5e40, 0x2285, - 0x5e41, 0x3063, - 0x5e42, 0x0ae2, - 0x5e43, 0x2384, - 0x5e44, 0x15a6, - 0x5e45, 0x0696, - 0x5e46, 0x3064, - 0x5e4c, 0x07e4, - 0x5e4d, 0x306a, - 0x5e54, 0x15a7, - 0x5e55, 0x0b1e, - 0x5e56, 0x3071, - 0x5e57, 0x2387, - 0x5e58, 0x2386, - 0x5e59, 0x3072, - 0x5e5b, 0x15a8, - 0x5e5c, 0x3074, - 0x5e5e, 0x15a9, - 0x5e5f, 0x2290, - 0x5e60, 0x3076, - 0x5e61, 0x15aa, - 0x5e62, 0x0534, - 0x5e63, 0x1e44, - 0x5e64, 0x3077, - 0x5e6b, 0x1e32, - 0x5e6c, 0x2385, - 0x5e6d, 0x307e, - 0x5e72, 0x06c4, - 0x5e73, 0x0bdc, - 0x5e74, 0x0b4d, - 0x5e75, 0x3083, - 0x5e76, 0x0469, - 0x5e77, 0x3084, - 0x5e78, 0x0f9d, - 0x5e79, 0x1f13, - 0x5e7a, 0x1813, - 0x5e7b, 0x07d8, - 0x5e7c, 0x10bc, - 0x5e7d, 0x10a9, - 0x5e7e, 0x1f73, - 0x5e7f, 0x073c, - 0x5e80, 0x1631, - 0x5e81, 0x3085, - 0x5e84, 0x120c, - 0x5e85, 0x3088, - 0x5e86, 0x0c69, - 0x5e87, 0x043c, - 0x5e88, 0x3089, - 0x5e8a, 0x0535, - 0x5e8b, 0x1633, - 0x5e8c, 0x308b, - 0x5e8f, 0x0fbd, - 0x5e90, 0x0a55, - 0x5e91, 0x1632, - 0x5e92, 0x308e, - 0x5e93, 0x096f, - 0x5e94, 0x108b, - 0x5e95, 0x05b8, - 0x5e96, 0x1634, - 0x5e97, 0x05cb, - 0x5e98, 0x308f, - 0x5e99, 0x0af2, - 0x5e9a, 0x06f8, - 0x5e9b, 0x3090, - 0x5e9c, 0x06a9, - 0x5e9d, 0x3091, - 0x5e9e, 0x0b94, - 0x5e9f, 0x066c, - 0x5ea0, 0x1636, - 0x5ea1, 0x3092, - 0x5ea5, 0x1635, - 0x5ea6, 0x0607, - 0x5ea7, 0x1256, - 0x5ea8, 0x3096, - 0x5eab, 0x1fe0, - 0x5eac, 0x3099, - 0x5ead, 0x0e56, - 0x5eae, 0x309a, - 0x5eb3, 0x163a, - 0x5eb4, 0x309f, - 0x5eb5, 0x1638, - 0x5eb6, 0x0d93, - 0x5eb7, 0x0942, - 0x5eb8, 0x109e, - 0x5eb9, 0x1637, - 0x5eba, 0x30a0, - 0x5ebe, 0x1639, - 0x5ebf, 0x30a4, - 0x5ec9, 0x09f7, - 0x5eca, 0x09b3, - 0x5ecb, 0x30ae, - 0x5ed1, 0x163d, - 0x5ed2, 0x163c, - 0x5ed3, 0x0995, - 0x5ed4, 0x30b4, - 0x5ed6, 0x0a17, - 0x5ed7, 0x30b6, - 0x5edb, 0x163e, - 0x5edc, 0x30ba, - 0x5edf, 0x2087, - 0x5ee0, 0x1e78, - 0x5ee1, 0x23ae, - 0x5ee2, 0x1ef6, - 0x5ee3, 0x1f31, - 0x5ee4, 0x30bd, - 0x5ee8, 0x163f, - 0x5ee9, 0x30c1, - 0x5eea, 0x1640, - 0x5eeb, 0x30c2, - 0x5eec, 0x2045, - 0x5eed, 0x30c3, - 0x5ef3, 0x2178, - 0x5ef4, 0x1398, - 0x5ef5, 0x30c9, - 0x5ef6, 0x0ffc, - 0x5ef7, 0x0e53, - 0x5ef8, 0x30ca, - 0x5efa, 0x0879, - 0x5efb, 0x30cc, - 0x5efe, 0x14ad, - 0x5eff, 0x125b, - 0x5f00, 0x0937, - 0x5f01, 0x139d, - 0x5f02, 0x1073, - 0x5f03, 0x0c19, - 0x5f04, 0x0b6b, - 0x5f05, 0x30cf, - 0x5f08, 0x14ae, - 0x5f09, 0x30d2, - 0x5f0a, 0x0440, - 0x5f0b, 0x14f6, - 0x5f0c, 0x30d3, - 0x5f0f, 0x0d54, - 0x5f10, 0x30d6, - 0x5f11, 0x14f9, - 0x5f12, 0x30d7, - 0x5f13, 0x0706, - 0x5f14, 0x30d8, - 0x5f15, 0x1084, - 0x5f16, 0x30d9, - 0x5f17, 0x06a0, - 0x5f18, 0x07a2, - 0x5f19, 0x30da, - 0x5f1b, 0x04ff, - 0x5f1c, 0x30dc, - 0x5f1f, 0x05bd, - 0x5f20, 0x1166, - 0x5f21, 0x30df, - 0x5f25, 0x0adb, - 0x5f26, 0x0f3f, - 0x5f27, 0x07b6, - 0x5f28, 0x30e3, - 0x5f29, 0x176f, - 0x5f2a, 0x176e, - 0x5f2b, 0x30e4, - 0x5f2d, 0x1770, - 0x5f2e, 0x30e6, - 0x5f2f, 0x0e95, - 0x5f30, 0x30e7, - 0x5f31, 0x0cd0, - 0x5f32, 0x30e8, - 0x5f33, 0x23f5, - 0x5f34, 0x30e9, - 0x5f35, 0x2275, - 0x5f36, 0x30ea, - 0x5f39, 0x0590, - 0x5f3a, 0x0c3c, - 0x5f3b, 0x30ed, - 0x5f3c, 0x1772, - 0x5f3d, 0x30ee, - 0x5f40, 0x19be, - 0x5f41, 0x30f1, - 0x5f46, 0x266e, - 0x5f47, 0x30f6, - 0x5f48, 0x1eb0, - 0x5f49, 0x30f7, - 0x5f4c, 0x2083, - 0x5f4d, 0x30fa, - 0x5f4e, 0x2188, - 0x5f4f, 0x30fb, - 0x5f50, 0x1762, - 0x5f51, 0x30fc, - 0x5f52, 0x0742, - 0x5f53, 0x0592, - 0x5f54, 0x30fd, - 0x5f55, 0x0a63, - 0x5f56, 0x1764, - 0x5f57, 0x1763, - 0x5f58, 0x1765, - 0x5f59, 0x267c, - 0x5f5a, 0x30fe, - 0x5f5d, 0x1054, - 0x5f5e, 0x3101, - 0x5f61, 0x15ee, - 0x5f62, 0x0f99, - 0x5f63, 0x3104, - 0x5f64, 0x0e5f, - 0x5f65, 0x3105, - 0x5f66, 0x100e, - 0x5f67, 0x3106, - 0x5f69, 0x0491, - 0x5f6a, 0x0454, - 0x5f6b, 0x3108, - 0x5f6c, 0x045b, - 0x5f6d, 0x0bae, - 0x5f6e, 0x3109, - 0x5f70, 0x1164, - 0x5f71, 0x1095, - 0x5f72, 0x310b, - 0x5f73, 0x15e0, - 0x5f74, 0x310c, - 0x5f77, 0x15e1, - 0x5f78, 0x310f, - 0x5f79, 0x1062, - 0x5f7a, 0x3110, - 0x5f7b, 0x04de, - 0x5f7c, 0x0434, - 0x5f7d, 0x3111, - 0x5f80, 0x0eaa, - 0x5f81, 0x1198, - 0x5f82, 0x15e2, - 0x5f83, 0x3114, - 0x5f84, 0x08e5, - 0x5f85, 0x0580, - 0x5f86, 0x3115, - 0x5f87, 0x15e3, - 0x5f88, 0x0793, - 0x5f89, 0x15e4, - 0x5f8a, 0x07c7, - 0x5f8b, 0x0a70, - 0x5f8c, 0x15e5, - 0x5f8d, 0x3116, - 0x5f90, 0x0fb7, - 0x5f91, 0x1fc5, - 0x5f92, 0x0e6e, - 0x5f93, 0x3119, - 0x5f95, 0x15e6, - 0x5f96, 0x311b, - 0x5f97, 0x05a4, - 0x5f98, 0x0b88, - 0x5f99, 0x15e7, - 0x5f9a, 0x311c, - 0x5f9c, 0x15e8, - 0x5f9d, 0x311e, - 0x5f9e, 0x1ea1, - 0x5f9f, 0x311f, - 0x5fa0, 0x2393, - 0x5fa1, 0x10de, - 0x5fa2, 0x3120, - 0x5fa8, 0x15e9, - 0x5fa9, 0x1f0b, - 0x5faa, 0x0fd6, - 0x5fab, 0x3126, - 0x5fad, 0x15ea, - 0x5fae, 0x0eb1, - 0x5faf, 0x3128, - 0x5fb5, 0x15eb, - 0x5fb6, 0x312e, - 0x5fb7, 0x05a3, - 0x5fb8, 0x312f, - 0x5fb9, 0x1e7c, - 0x5fba, 0x3130, - 0x5fbc, 0x15ec, - 0x5fbd, 0x07ea, - 0x5fbe, 0x3132, - 0x5fc3, 0x0f8f, - 0x5fc4, 0x1642, - 0x5fc5, 0x0441, - 0x5fc6, 0x106b, - 0x5fc7, 0x3137, - 0x5fc9, 0x1643, - 0x5fca, 0x3139, - 0x5fcc, 0x083c, - 0x5fcd, 0x0ca7, - 0x5fce, 0x313b, - 0x5fcf, 0x1645, - 0x5fd0, 0x1a0c, - 0x5fd1, 0x1a0b, - 0x5fd2, 0x14f7, - 0x5fd3, 0x313c, - 0x5fd6, 0x1644, - 0x5fd7, 0x11bd, - 0x5fd8, 0x0ead, - 0x5fd9, 0x0aab, - 0x5fda, 0x313f, - 0x5fdd, 0x1683, - 0x5fde, 0x3142, - 0x5fe0, 0x11d1, - 0x5fe1, 0x1649, - 0x5fe2, 0x3144, - 0x5fe4, 0x164a, - 0x5fe5, 0x3146, - 0x5fe7, 0x10ac, - 0x5fe8, 0x3148, - 0x5fea, 0x164e, - 0x5feb, 0x0979, - 0x5fec, 0x314a, - 0x5fed, 0x164f, - 0x5fee, 0x1647, - 0x5fef, 0x314b, - 0x5ff1, 0x04e5, - 0x5ff2, 0x314d, - 0x5ff5, 0x0b51, - 0x5ff6, 0x3150, - 0x5ff8, 0x1650, - 0x5ff9, 0x3152, - 0x5ffb, 0x0f8e, - 0x5ffc, 0x3154, - 0x5ffd, 0x07ad, - 0x5ffe, 0x164b, - 0x5fff, 0x067b, - 0x6000, 0x07c8, - 0x6001, 0x0dff, - 0x6002, 0x0dc0, - 0x6003, 0x1646, - 0x6004, 0x1648, - 0x6005, 0x164c, - 0x6007, 0x3155, - 0x600a, 0x1659, - 0x600b, 0x3158, - 0x600d, 0x1656, - 0x600e, 0x1138, - 0x600f, 0x1655, - 0x6010, 0x315a, - 0x6012, 0x0b6e, - 0x6013, 0x315c, - 0x6014, 0x119b, - 0x6015, 0x0b83, - 0x6016, 0x0487, - 0x6017, 0x315d, - 0x6019, 0x1651, - 0x601a, 0x315f, - 0x601b, 0x1654, - 0x601c, 0x09f8, - 0x601d, 0x0db1, - 0x601e, 0x3160, - 0x6020, 0x0582, - 0x6021, 0x165b, - 0x6022, 0x3162, - 0x6025, 0x0824, - 0x6026, 0x1653, - 0x6027, 0x0f9f, - 0x6028, 0x10fc, - 0x6029, 0x1657, - 0x602a, 0x072f, - 0x602b, 0x1658, - 0x602c, 0x3165, - 0x602f, 0x0c50, - 0x6030, 0x3168, - 0x6035, 0x1652, - 0x6036, 0x316d, - 0x603b, 0x1239, - 0x603c, 0x1a0d, - 0x603d, 0x3172, - 0x603f, 0x165a, - 0x6040, 0x3174, - 0x6041, 0x1a11, - 0x6042, 0x1660, - 0x6043, 0x0d68, - 0x6044, 0x3175, - 0x604b, 0x09fe, - 0x604c, 0x317c, - 0x604d, 0x07e5, - 0x604e, 0x317d, - 0x6050, 0x0963, - 0x6051, 0x317f, - 0x6052, 0x079a, - 0x6053, 0x3180, - 0x6055, 0x0d96, - 0x6056, 0x3182, - 0x6059, 0x1a12, - 0x605a, 0x1a0f, - 0x605b, 0x3185, - 0x605d, 0x1a0e, - 0x605e, 0x3187, - 0x6062, 0x07eb, - 0x6063, 0x1a13, - 0x6064, 0x0fbf, - 0x6065, 0x318b, - 0x6067, 0x1a10, - 0x6068, 0x0795, - 0x6069, 0x0636, - 0x606a, 0x1661, - 0x606b, 0x05f1, - 0x606c, 0x0e44, - 0x606d, 0x0700, - 0x606e, 0x318d, - 0x606f, 0x0f0f, - 0x6070, 0x0c1e, - 0x6071, 0x318e, - 0x6073, 0x095f, - 0x6074, 0x3190, - 0x6076, 0x0630, - 0x6077, 0x3192, - 0x6078, 0x165c, - 0x607a, 0x165f, - 0x607b, 0x165e, - 0x607c, 0x0b38, - 0x607d, 0x1662, - 0x607e, 0x3193, - 0x607f, 0x10a6, - 0x6080, 0x3194, - 0x6083, 0x1667, - 0x6084, 0x0c41, - 0x6085, 0x3197, - 0x6089, 0x0f11, - 0x608a, 0x319b, - 0x608c, 0x1669, - 0x608d, 0x076e, - 0x608e, 0x319d, - 0x6092, 0x1668, - 0x6093, 0x31a1, - 0x6094, 0x07ef, - 0x6095, 0x31a2, - 0x6096, 0x1663, - 0x6097, 0x31a3, - 0x609a, 0x1664, - 0x609b, 0x166a, - 0x609c, 0x31a6, - 0x609d, 0x1666, - 0x609e, 0x31a7, - 0x609f, 0x0f01, - 0x60a0, 0x10ab, - 0x60a1, 0x31a8, - 0x60a3, 0x07d1, - 0x60a4, 0x31aa, - 0x60a6, 0x1106, - 0x60a7, 0x31ac, - 0x60a8, 0x0b5d, - 0x60a9, 0x31ad, - 0x60ab, 0x1a14, - 0x60ac, 0x0fc7, - 0x60ad, 0x1665, - 0x60ae, 0x31af, - 0x60af, 0x0afa, - 0x60b0, 0x31b0, - 0x60b1, 0x166d, - 0x60b2, 0x0418, - 0x60b3, 0x31b1, - 0x60b4, 0x1672, - 0x60b5, 0x23b4, - 0x60b6, 0x207e, - 0x60b7, 0x31b2, - 0x60b8, 0x0835, - 0x60b9, 0x31b3, - 0x60bb, 0x166c, - 0x60bc, 0x05a0, - 0x60bd, 0x31b5, - 0x60c5, 0x0c66, - 0x60c6, 0x1670, - 0x60c7, 0x31bd, - 0x60ca, 0x08d9, - 0x60cb, 0x0ea0, - 0x60cc, 0x31c0, - 0x60d1, 0x0808, - 0x60d2, 0x31c5, - 0x60d5, 0x0e3b, - 0x60d6, 0x31c8, - 0x60d8, 0x166f, - 0x60d9, 0x31ca, - 0x60da, 0x1671, - 0x60db, 0x31cb, - 0x60dc, 0x0f14, - 0x60dd, 0x166e, - 0x60de, 0x31cc, - 0x60df, 0x0eb8, - 0x60e0, 0x07f2, - 0x60e1, 0x1ee3, - 0x60e2, 0x31cd, - 0x60e6, 0x05cc, - 0x60e7, 0x0914, - 0x60e8, 0x0499, - 0x60e9, 0x04f2, - 0x60ea, 0x31d1, - 0x60eb, 0x0422, - 0x60ec, 0x166b, - 0x60ed, 0x0498, - 0x60ee, 0x058d, - 0x60ef, 0x0738, - 0x60f0, 0x0627, - 0x60f1, 0x2095, - 0x60f2, 0x23bb, - 0x60f3, 0x0f58, - 0x60f4, 0x1677, - 0x60f5, 0x31d2, - 0x60f6, 0x07e1, - 0x60f7, 0x31d3, - 0x60f9, 0x0ca2, - 0x60fa, 0x0f95, - 0x60fb, 0x23b9, - 0x60fc, 0x31d5, - 0x6100, 0x1678, - 0x6101, 0x0513, - 0x6102, 0x31d9, - 0x6106, 0x1a15, - 0x6107, 0x31dd, - 0x6108, 0x10df, - 0x6109, 0x10c9, - 0x610a, 0x31de, - 0x610d, 0x1a16, - 0x610e, 0x1679, - 0x610f, 0x1069, - 0x6110, 0x31e1, - 0x6115, 0x1675, - 0x6116, 0x31e6, - 0x611a, 0x10c3, - 0x611b, 0x1e28, - 0x611c, 0x23bd, - 0x611d, 0x31ea, - 0x611f, 0x06cb, - 0x6120, 0x1673, - 0x6121, 0x31ec, - 0x6123, 0x1676, - 0x6124, 0x067c, - 0x6125, 0x31ee, - 0x6126, 0x1674, - 0x6127, 0x098d, - 0x6128, 0x31ef, - 0x612b, 0x167a, - 0x612c, 0x31f2, - 0x6134, 0x23b5, - 0x6135, 0x31fa, - 0x6137, 0x23ba, - 0x6138, 0x31fc, - 0x613e, 0x23b3, - 0x613f, 0x10fb, - 0x6140, 0x3202, - 0x6148, 0x054b, - 0x6149, 0x320a, - 0x614a, 0x167b, - 0x614b, 0x2162, - 0x614c, 0x07da, - 0x614d, 0x320b, - 0x614e, 0x0d30, - 0x614f, 0x320c, - 0x6151, 0x0d1e, - 0x6152, 0x320e, - 0x6155, 0x0b20, - 0x6156, 0x3211, - 0x6158, 0x1e5e, - 0x6159, 0x3213, - 0x615a, 0x1e5d, - 0x615b, 0x3214, - 0x615d, 0x1a17, - 0x615e, 0x3216, - 0x615f, 0x23b7, - 0x6160, 0x3217, - 0x6162, 0x0aa4, - 0x6163, 0x1f2f, - 0x6164, 0x24df, - 0x6165, 0x3219, - 0x6167, 0x07f0, - 0x6168, 0x093b, - 0x6169, 0x321b, - 0x616a, 0x23b2, - 0x616b, 0x214e, - 0x616c, 0x321c, - 0x616e, 0x2052, - 0x616f, 0x321e, - 0x6170, 0x0ece, - 0x6171, 0x321f, - 0x6173, 0x23bc, - 0x6174, 0x3221, - 0x6175, 0x167c, - 0x6176, 0x20eb, - 0x6177, 0x0943, - 0x6178, 0x3222, - 0x6182, 0x2232, - 0x6183, 0x322c, - 0x618a, 0x1e3f, - 0x618b, 0x0458, - 0x618c, 0x3233, - 0x618e, 0x113a, - 0x618f, 0x3235, - 0x6190, 0x201b, - 0x6191, 0x20bc, - 0x6192, 0x23be, - 0x6193, 0x3236, - 0x6194, 0x167e, - 0x6195, 0x3237, - 0x619a, 0x1eae, - 0x619b, 0x323c, - 0x619d, 0x1a19, - 0x619e, 0x323e, - 0x61a4, 0x1efb, - 0x61a5, 0x3244, - 0x61a7, 0x167f, - 0x61a8, 0x0760, - 0x61a9, 0x1a18, - 0x61aa, 0x3246, - 0x61ab, 0x2089, - 0x61ac, 0x167d, - 0x61ad, 0x3247, - 0x61ae, 0x23b1, - 0x61af, 0x3248, - 0x61b2, 0x21c4, - 0x61b3, 0x324b, - 0x61b6, 0x2214, - 0x61b7, 0x1680, - 0x61b8, 0x324e, - 0x61be, 0x076d, - 0x61bf, 0x3254, - 0x61c2, 0x05ed, - 0x61c3, 0x3257, - 0x61c7, 0x1fde, - 0x61c8, 0x0f83, - 0x61c9, 0x2223, - 0x61ca, 0x03ce, - 0x61cb, 0x1a1a, - 0x61cc, 0x23b6, - 0x61cd, 0x325b, - 0x61d1, 0x1a1b, - 0x61d2, 0x09ac, - 0x61d3, 0x325f, - 0x61d4, 0x1681, - 0x61d5, 0x3260, - 0x61de, 0x268c, - 0x61df, 0x24de, - 0x61e0, 0x3269, - 0x61e3, 0x24e0, - 0x61e4, 0x326c, - 0x61e6, 0x0b74, - 0x61e7, 0x326e, - 0x61e8, 0x23b8, - 0x61e9, 0x326f, - 0x61f2, 0x1e81, - 0x61f3, 0x3278, - 0x61f5, 0x1682, - 0x61f6, 0x1ffe, - 0x61f7, 0x1f51, - 0x61f8, 0x21e1, - 0x61f9, 0x327a, - 0x61fa, 0x23b0, - 0x61fb, 0x327b, - 0x61fc, 0x1fce, - 0x61fd, 0x327c, - 0x61fe, 0x211e, - 0x61ff, 0x13e0, - 0x6200, 0x2021, - 0x6201, 0x327d, - 0x6206, 0x1a1c, - 0x6207, 0x24e1, - 0x6208, 0x06e5, - 0x6209, 0x3282, - 0x620a, 0x0efb, - 0x620b, 0x18f9, - 0x620c, 0x0fb2, - 0x620d, 0x0d90, - 0x620e, 0x0cb1, - 0x620f, 0x0f24, - 0x6210, 0x04ee, - 0x6211, 0x0ee1, - 0x6212, 0x08b5, - 0x6213, 0x3283, - 0x6214, 0x24a3, - 0x6215, 0x169e, - 0x6216, 0x0807, - 0x6217, 0x18fa, - 0x6218, 0x115e, - 0x6219, 0x3284, - 0x621a, 0x0bfc, - 0x621b, 0x18fb, - 0x621c, 0x3285, - 0x621f, 0x18fc, - 0x6220, 0x3288, - 0x6221, 0x18fe, - 0x6222, 0x18fd, - 0x6223, 0x3289, - 0x6224, 0x1900, - 0x6225, 0x18ff, - 0x6226, 0x328a, - 0x6227, 0x24a4, - 0x6228, 0x328b, - 0x622a, 0x08a9, - 0x622b, 0x328d, - 0x622c, 0x1901, - 0x622d, 0x328e, - 0x622e, 0x0a65, - 0x622f, 0x328f, - 0x6230, 0x2273, - 0x6231, 0x3290, - 0x6232, 0x21b0, - 0x6233, 0x0544, - 0x6234, 0x057a, - 0x6235, 0x3291, - 0x6237, 0x07bc, - 0x6238, 0x3293, - 0x623d, 0x19f4, - 0x623e, 0x19f3, - 0x623f, 0x065c, - 0x6240, 0x0dee, - 0x6241, 0x044b, - 0x6242, 0x3298, - 0x6243, 0x19f5, - 0x6244, 0x3299, - 0x6247, 0x0d01, - 0x6248, 0x19f6, - 0x624a, 0x329c, - 0x624b, 0x0d6d, - 0x624c, 0x14ba, - 0x624d, 0x048c, - 0x624e, 0x113d, - 0x624f, 0x329d, - 0x6251, 0x0bea, - 0x6252, 0x03d2, - 0x6253, 0x0575, - 0x6254, 0x0cae, - 0x6255, 0x329f, - 0x6258, 0x0e81, - 0x6259, 0x32a2, - 0x625b, 0x0945, - 0x625c, 0x32a4, - 0x6263, 0x0968, - 0x6264, 0x32ab, - 0x6266, 0x0c21, - 0x6267, 0x11b3, - 0x6268, 0x32ad, - 0x6269, 0x0994, - 0x626a, 0x14bb, - 0x626b, 0x0ce1, - 0x626c, 0x1018, - 0x626d, 0x0b65, - 0x626e, 0x03f2, - 0x626f, 0x04db, - 0x6270, 0x0ca0, - 0x6271, 0x32ae, - 0x6273, 0x03ed, - 0x6274, 0x32b0, - 0x6276, 0x0693, - 0x6277, 0x32b2, - 0x6279, 0x0bbb, - 0x627a, 0x32b4, - 0x627c, 0x0632, - 0x627d, 0x32b6, - 0x627e, 0x1173, - 0x627f, 0x04f5, - 0x6280, 0x082f, - 0x6281, 0x32b7, - 0x6284, 0x04d2, - 0x6285, 0x32ba, - 0x6289, 0x0920, - 0x628a, 0x03dc, - 0x628b, 0x32be, - 0x6291, 0x105d, - 0x6292, 0x0d7a, - 0x6293, 0x1202, - 0x6294, 0x32c4, - 0x6295, 0x0e67, - 0x6296, 0x05f5, - 0x6297, 0x0946, - 0x6298, 0x117c, - 0x6299, 0x32c5, - 0x629a, 0x06a2, - 0x629b, 0x0b98, - 0x629c, 0x32c6, - 0x629f, 0x14bc, - 0x62a0, 0x0966, - 0x62a1, 0x0a7c, - 0x62a2, 0x0c3d, - 0x62a3, 0x32c9, - 0x62a4, 0x07b9, - 0x62a5, 0x0411, - 0x62a6, 0x32ca, - 0x62a8, 0x0bab, - 0x62a9, 0x32cc, - 0x62ab, 0x0bbc, - 0x62ac, 0x0dfa, - 0x62ad, 0x32ce, - 0x62b1, 0x0410, - 0x62b2, 0x32d2, - 0x62b5, 0x05b7, - 0x62b6, 0x32d5, - 0x62b9, 0x0b0b, - 0x62ba, 0x32d8, - 0x62bb, 0x14bd, - 0x62bc, 0x0fe3, - 0x62bd, 0x050e, - 0x62be, 0x32d9, - 0x62bf, 0x0af7, - 0x62c0, 0x32da, - 0x62c2, 0x0694, - 0x62c3, 0x32dc, - 0x62c4, 0x11f3, - 0x62c5, 0x0584, - 0x62c6, 0x04b7, - 0x62c7, 0x0b17, - 0x62c8, 0x0b4c, - 0x62c9, 0x0998, - 0x62ca, 0x14be, - 0x62cb, 0x32dd, - 0x62cc, 0x03f3, - 0x62cd, 0x0b85, - 0x62ce, 0x0a29, - 0x62cf, 0x32de, - 0x62d0, 0x072e, - 0x62d1, 0x32df, - 0x62d2, 0x090b, - 0x62d3, 0x0e89, - 0x62d4, 0x03d9, - 0x62d5, 0x32e0, - 0x62d6, 0x0e80, - 0x62d7, 0x14c0, - 0x62d8, 0x08ff, - 0x62d9, 0x121b, - 0x62da, 0x14bf, - 0x62db, 0x1171, - 0x62dc, 0x03e8, - 0x62dd, 0x32e1, - 0x62df, 0x0b45, - 0x62e0, 0x32e3, - 0x62e2, 0x0a4a, - 0x62e3, 0x0863, - 0x62e4, 0x32e5, - 0x62e5, 0x109a, - 0x62e6, 0x09a4, - 0x62e7, 0x0b62, - 0x62e8, 0x046d, - 0x62e9, 0x1134, - 0x62ea, 0x32e6, - 0x62ec, 0x0993, - 0x62ed, 0x0d5a, - 0x62ee, 0x14c1, - 0x62ef, 0x119d, - 0x62f0, 0x32e8, - 0x62f1, 0x0709, - 0x62f2, 0x32e9, - 0x62f3, 0x0c88, - 0x62f4, 0x0d9e, - 0x62f5, 0x32ea, - 0x62f6, 0x14c3, - 0x62f7, 0x094a, - 0x62f8, 0x32eb, - 0x62fc, 0x0bd3, - 0x62fd, 0x1204, - 0x62fe, 0x0d47, - 0x62ff, 0x0b26, - 0x6300, 0x32ef, - 0x6301, 0x04fb, - 0x6302, 0x072b, - 0x6303, 0x32f0, - 0x6307, 0x11b7, - 0x6308, 0x194e, - 0x6309, 0x03bf, - 0x630a, 0x32f4, - 0x630e, 0x0973, - 0x630f, 0x32f8, - 0x6311, 0x0e47, - 0x6312, 0x32fa, - 0x6316, 0x0e8b, - 0x6317, 0x32fe, - 0x631a, 0x11be, - 0x631b, 0x0a75, - 0x631c, 0x3301, - 0x631d, 0x0edd, - 0x631e, 0x0df5, - 0x631f, 0x0f79, - 0x6320, 0x0b36, - 0x6321, 0x0593, - 0x6322, 0x14c2, - 0x6323, 0x1196, - 0x6324, 0x082a, - 0x6325, 0x07e8, - 0x6326, 0x3302, - 0x6328, 0x03af, - 0x6329, 0x3304, - 0x632a, 0x0b73, - 0x632b, 0x056f, - 0x632c, 0x3305, - 0x632f, 0x1192, - 0x6330, 0x3308, - 0x6332, 0x194f, - 0x6333, 0x330a, - 0x6339, 0x14c4, - 0x633a, 0x0e57, - 0x633b, 0x3310, - 0x633d, 0x0e9d, - 0x633e, 0x21d1, - 0x633f, 0x3312, - 0x6342, 0x0ef5, - 0x6343, 0x14c6, - 0x6344, 0x3315, - 0x6345, 0x0e62, - 0x6346, 0x0991, - 0x6347, 0x3316, - 0x6349, 0x121a, - 0x634a, 0x3318, - 0x634b, 0x14c5, - 0x634c, 0x03d1, - 0x634d, 0x076b, - 0x634e, 0x0d0c, - 0x634f, 0x0b56, - 0x6350, 0x0917, - 0x6351, 0x3319, - 0x6355, 0x047d, - 0x6356, 0x331d, - 0x635e, 0x09b7, - 0x635f, 0x0de5, - 0x6360, 0x3325, - 0x6361, 0x0864, - 0x6362, 0x07d0, - 0x6363, 0x0598, - 0x6364, 0x3326, - 0x6367, 0x0bb6, - 0x6368, 0x211c, - 0x6369, 0x14d0, - 0x636a, 0x3329, - 0x636b, 0x235d, - 0x636c, 0x332a, - 0x636d, 0x14cd, - 0x636e, 0x090c, - 0x636f, 0x332b, - 0x6371, 0x14c9, - 0x6372, 0x2682, - 0x6373, 0x332d, - 0x6376, 0x053a, - 0x6377, 0x08ae, - 0x6378, 0x3330, - 0x637a, 0x14ca, - 0x637b, 0x0b50, - 0x637c, 0x3332, - 0x6380, 0x0f33, - 0x6381, 0x3336, - 0x6382, 0x05c1, - 0x6383, 0x210d, - 0x6384, 0x205a, - 0x6385, 0x3337, - 0x6387, 0x061d, - 0x6388, 0x0d71, - 0x6389, 0x05d5, - 0x638a, 0x14cf, - 0x638b, 0x3339, - 0x638c, 0x1167, - 0x638d, 0x333a, - 0x638e, 0x14cb, - 0x638f, 0x0e20, - 0x6390, 0x0c1d, - 0x6391, 0x333b, - 0x6392, 0x0b86, - 0x6393, 0x333c, - 0x6396, 0x103b, - 0x6397, 0x333f, - 0x6398, 0x0921, - 0x6399, 0x3340, - 0x63a0, 0x0a7a, - 0x63a1, 0x3347, - 0x63a2, 0x0e10, - 0x63a3, 0x04dd, - 0x63a4, 0x3348, - 0x63a5, 0x08a4, - 0x63a6, 0x3349, - 0x63a7, 0x0965, - 0x63a8, 0x0e77, - 0x63a9, 0x1003, - 0x63aa, 0x056e, - 0x63ab, 0x334a, - 0x63ac, 0x14ce, - 0x63ad, 0x14c7, - 0x63ae, 0x14d1, - 0x63af, 0x334b, - 0x63b0, 0x1950, - 0x63b1, 0x334c, - 0x63b3, 0x0a57, - 0x63b4, 0x14cc, - 0x63b5, 0x334e, - 0x63b7, 0x11bf, - 0x63b8, 0x0588, - 0x63b9, 0x3350, - 0x63ba, 0x04bb, - 0x63bb, 0x3351, - 0x63bc, 0x14d2, - 0x63bd, 0x3352, - 0x63be, 0x14dc, - 0x63bf, 0x3353, - 0x63c0, 0x1f8d, - 0x63c1, 0x3354, - 0x63c4, 0x14d7, - 0x63c5, 0x3357, - 0x63c6, 0x14db, - 0x63c7, 0x3358, - 0x63c9, 0x0cbb, - 0x63ca, 0x335a, - 0x63cd, 0x123e, - 0x63ce, 0x14d9, - 0x63cf, 0x0aed, - 0x63d0, 0x0e34, - 0x63d1, 0x335d, - 0x63d2, 0x04ac, - 0x63d3, 0x335e, - 0x63d6, 0x1045, - 0x63d7, 0x3361, - 0x63da, 0x21ff, - 0x63db, 0x3364, - 0x63de, 0x14d8, - 0x63df, 0x3367, - 0x63e0, 0x14d5, - 0x63e1, 0x0ee4, - 0x63e2, 0x3368, - 0x63e3, 0x052a, - 0x63e4, 0x3369, - 0x63e9, 0x0938, - 0x63ea, 0x08ed, - 0x63eb, 0x336e, - 0x63ed, 0x08a3, - 0x63ee, 0x1f58, - 0x63ef, 0x3370, - 0x63f2, 0x14d3, - 0x63f3, 0x3373, - 0x63f4, 0x10f1, - 0x63f5, 0x3374, - 0x63f6, 0x14c8, - 0x63f7, 0x3375, - 0x63f8, 0x14d4, - 0x63f9, 0x3376, - 0x63fd, 0x09aa, - 0x63fe, 0x337a, - 0x63ff, 0x14d6, - 0x6400, 0x04ba, - 0x6401, 0x06e4, - 0x6402, 0x0a4e, - 0x6403, 0x337b, - 0x6405, 0x0892, - 0x6406, 0x337d, - 0x640b, 0x14df, - 0x640c, 0x14e2, - 0x640d, 0x215b, - 0x640e, 0x3382, - 0x640f, 0x0472, - 0x6410, 0x0527, - 0x6411, 0x3383, - 0x6413, 0x056d, - 0x6414, 0x0cdf, - 0x6415, 0x3385, - 0x6417, 0x1eb6, - 0x6418, 0x3387, - 0x641b, 0x14e0, - 0x641c, 0x0dc6, - 0x641d, 0x338a, - 0x641e, 0x06de, - 0x641f, 0x338b, - 0x6420, 0x14e1, - 0x6421, 0x14e4, - 0x6422, 0x338c, - 0x6426, 0x14e3, - 0x6427, 0x3390, - 0x642a, 0x0e15, - 0x642b, 0x3393, - 0x642c, 0x03ec, - 0x642d, 0x0571, - 0x642e, 0x3394, - 0x6434, 0x1736, - 0x6435, 0x339a, - 0x6436, 0x20db, - 0x6437, 0x339b, - 0x643a, 0x0f7a, - 0x643b, 0x339e, - 0x643d, 0x04b2, - 0x643e, 0x33a0, - 0x643f, 0x1951, - 0x6440, 0x33a1, - 0x6441, 0x14de, - 0x6442, 0x33a2, - 0x6444, 0x0d1c, - 0x6445, 0x14dd, - 0x6446, 0x03e5, - 0x6447, 0x1028, - 0x6448, 0x0460, - 0x6449, 0x33a4, - 0x644a, 0x0e02, - 0x644b, 0x33a5, - 0x6451, 0x2360, - 0x6452, 0x14da, - 0x6453, 0x33ab, - 0x6454, 0x0d99, - 0x6455, 0x33ac, - 0x6458, 0x114b, - 0x6459, 0x33af, - 0x645c, 0x2361, - 0x645d, 0x33b2, - 0x645e, 0x14e5, - 0x645f, 0x2040, - 0x6460, 0x33b3, - 0x6467, 0x0560, - 0x6468, 0x33ba, - 0x6469, 0x0b09, - 0x646a, 0x33bb, - 0x646d, 0x14e7, - 0x646e, 0x33be, - 0x646f, 0x228e, - 0x6470, 0x33bf, - 0x6473, 0x1fdf, - 0x6474, 0x33c2, - 0x6476, 0x235e, - 0x6477, 0x33c4, - 0x6478, 0x0b03, - 0x647a, 0x14e9, - 0x647b, 0x1e6a, - 0x647c, 0x33c5, - 0x6482, 0x0a15, - 0x6483, 0x33cb, - 0x6484, 0x14e6, - 0x6485, 0x091e, - 0x6486, 0x33cc, - 0x6487, 0x0bd1, - 0x6488, 0x2002, - 0x6489, 0x33cd, - 0x6491, 0x04ea, - 0x6492, 0x0cd1, - 0x6493, 0x2093, - 0x6494, 0x33d5, - 0x6495, 0x0daf, - 0x6496, 0x14e8, - 0x6497, 0x33d6, - 0x6499, 0x14ec, - 0x649a, 0x33d8, - 0x649e, 0x120f, - 0x649f, 0x235f, - 0x64a0, 0x33dc, - 0x64a3, 0x1eac, - 0x64a4, 0x04dc, - 0x64a5, 0x1e54, - 0x64a6, 0x33df, - 0x64a9, 0x0a0c, - 0x64aa, 0x33e2, - 0x64ab, 0x1f08, - 0x64ac, 0x0c48, - 0x64ad, 0x046c, - 0x64ae, 0x056c, - 0x64af, 0x33e3, - 0x64b0, 0x1208, - 0x64b1, 0x33e4, - 0x64b2, 0x20c0, - 0x64b3, 0x2362, - 0x64b4, 0x33e5, - 0x64b5, 0x0b4f, - 0x64b6, 0x33e6, - 0x64b7, 0x14ea, - 0x64b9, 0x33e7, - 0x64ba, 0x14ed, - 0x64bb, 0x2160, - 0x64bc, 0x076a, - 0x64bd, 0x33e8, - 0x64be, 0x219d, - 0x64bf, 0x1f8e, - 0x64c0, 0x14ee, - 0x64c1, 0x222d, - 0x64c2, 0x09c9, - 0x64c3, 0x33e9, - 0x64c4, 0x2047, - 0x64c5, 0x0cfc, - 0x64c6, 0x33ea, - 0x64c7, 0x2262, - 0x64c8, 0x33eb, - 0x64ca, 0x1f67, - 0x64cb, 0x1eb2, - 0x64cc, 0x33ed, - 0x64cd, 0x04a0, - 0x64ce, 0x0c63, - 0x64cf, 0x33ee, - 0x64d0, 0x14ef, - 0x64d1, 0x33ef, - 0x64d2, 0x0c59, - 0x64d3, 0x33f0, - 0x64d4, 0x1ea9, - 0x64d5, 0x33f1, - 0x64d7, 0x14f0, - 0x64d8, 0x1952, - 0x64d9, 0x33f3, - 0x64da, 0x1fcc, - 0x64db, 0x33f4, - 0x64de, 0x0dc8, - 0x64df, 0x33f7, - 0x64e0, 0x1f72, - 0x64e1, 0x33f8, - 0x64e2, 0x14f2, - 0x64e3, 0x33f9, - 0x64e4, 0x14f1, - 0x64e5, 0x33fa, - 0x64e6, 0x0488, - 0x64e7, 0x33fb, - 0x64ec, 0x2098, - 0x64ed, 0x3400, - 0x64ef, 0x1e52, - 0x64f0, 0x20a4, - 0x64f1, 0x1f1c, - 0x64f2, 0x228f, - 0x64f3, 0x3402, - 0x64f4, 0x1fed, - 0x64f5, 0x3403, - 0x64f7, 0x2365, - 0x64f8, 0x3405, - 0x64fa, 0x1e2d, - 0x64fb, 0x2152, - 0x64fc, 0x2366, - 0x64fd, 0x3407, - 0x64fe, 0x20fa, - 0x64ff, 0x3408, - 0x6500, 0x0b8b, - 0x6501, 0x3409, - 0x6504, 0x2363, - 0x6505, 0x340c, - 0x6506, 0x209a, - 0x6507, 0x340d, - 0x6509, 0x14f3, - 0x650a, 0x340f, - 0x650f, 0x203c, - 0x6510, 0x3414, - 0x6512, 0x111f, - 0x6513, 0x3416, - 0x6514, 0x1ff6, - 0x6515, 0x3417, - 0x6516, 0x2364, - 0x6517, 0x3418, - 0x6518, 0x0c9c, - 0x6519, 0x1e69, - 0x651a, 0x3419, - 0x651b, 0x2367, - 0x651c, 0x341a, - 0x651d, 0x211d, - 0x651e, 0x341b, - 0x6522, 0x2259, - 0x6523, 0x2056, - 0x6524, 0x2163, - 0x6525, 0x14f4, - 0x6526, 0x341f, - 0x652a, 0x1fa9, - 0x652b, 0x091f, - 0x652c, 0x1ffc, - 0x652d, 0x3423, - 0x652e, 0x14f5, - 0x652f, 0x11a6, - 0x6530, 0x3424, - 0x6534, 0x1909, - 0x6535, 0x1966, - 0x6536, 0x0d6c, - 0x6537, 0x3428, - 0x6538, 0x12b2, - 0x6539, 0x06bf, - 0x653a, 0x3429, - 0x653b, 0x06fe, - 0x653c, 0x342a, - 0x653e, 0x0662, - 0x653f, 0x119f, - 0x6540, 0x342c, - 0x6545, 0x0723, - 0x6546, 0x3431, - 0x6548, 0x0f72, - 0x6549, 0x1ccb, - 0x654a, 0x3433, - 0x654c, 0x05b1, - 0x654d, 0x3435, - 0x654f, 0x0af9, - 0x6550, 0x3437, - 0x6551, 0x08f7, - 0x6552, 0x3438, - 0x6555, 0x1967, - 0x6556, 0x03c8, - 0x6557, 0x1e2e, - 0x6558, 0x343b, - 0x6559, 0x089d, - 0x655a, 0x343c, - 0x655b, 0x09fb, - 0x655c, 0x343d, - 0x655d, 0x043f, - 0x655e, 0x04cd, - 0x655f, 0x343e, - 0x6562, 0x06cd, - 0x6563, 0x0cdb, - 0x6564, 0x3441, - 0x6566, 0x0617, - 0x6567, 0x3443, - 0x656b, 0x1968, - 0x656c, 0x08e3, - 0x656d, 0x3447, - 0x6570, 0x0d94, - 0x6571, 0x344a, - 0x6572, 0x0c40, - 0x6573, 0x344b, - 0x6574, 0x119c, - 0x6575, 0x1ebc, - 0x6576, 0x344c, - 0x6577, 0x0690, - 0x6578, 0x2142, - 0x6579, 0x344d, - 0x6582, 0x201e, - 0x6583, 0x1e43, - 0x6584, 0x3456, - 0x6587, 0x0ed3, - 0x6588, 0x3459, - 0x658b, 0x114c, - 0x658c, 0x045c, - 0x658d, 0x345c, - 0x6590, 0x19c1, - 0x6591, 0x03ea, - 0x6592, 0x345f, - 0x6593, 0x19c3, - 0x6594, 0x3460, - 0x6595, 0x24d4, - 0x6596, 0x3461, - 0x6597, 0x05f6, - 0x6598, 0x3462, - 0x6599, 0x0a18, - 0x659a, 0x3463, - 0x659b, 0x1d56, - 0x659c, 0x0f7c, - 0x659d, 0x3464, - 0x659f, 0x1186, - 0x65a0, 0x3466, - 0x65a1, 0x0ee2, - 0x65a2, 0x3467, - 0x65a4, 0x08c0, - 0x65a5, 0x0507, - 0x65a6, 0x3469, - 0x65a7, 0x06a6, - 0x65a8, 0x346a, - 0x65a9, 0x1157, - 0x65aa, 0x346b, - 0x65ab, 0x1a29, - 0x65ac, 0x226f, - 0x65ad, 0x060e, - 0x65ae, 0x346c, - 0x65af, 0x0dae, - 0x65b0, 0x0f8d, - 0x65b1, 0x346d, - 0x65b7, 0x1ed7, - 0x65b8, 0x3473, - 0x65b9, 0x065a, - 0x65ba, 0x3474, - 0x65bc, 0x19c4, - 0x65bd, 0x0d40, - 0x65be, 0x3476, - 0x65c1, 0x0b95, - 0x65c2, 0x3479, - 0x65c3, 0x19c7, - 0x65c4, 0x19c6, - 0x65c5, 0x0a6a, - 0x65c6, 0x19c5, - 0x65c7, 0x347a, - 0x65cb, 0x0fc8, - 0x65cc, 0x19c8, - 0x65cd, 0x347e, - 0x65ce, 0x19c9, - 0x65cf, 0x1242, - 0x65d0, 0x347f, - 0x65d2, 0x19ca, - 0x65d3, 0x3481, - 0x65d6, 0x19cb, - 0x65d7, 0x0c0b, - 0x65d8, 0x3484, - 0x65e0, 0x0eed, - 0x65e1, 0x348c, - 0x65e2, 0x083b, - 0x65e3, 0x348d, - 0x65e5, 0x0cb0, - 0x65e6, 0x058a, - 0x65e7, 0x08f8, - 0x65e8, 0x11bb, - 0x65e9, 0x112a, - 0x65ea, 0x348f, - 0x65ec, 0x0fd7, - 0x65ed, 0x0fbc, - 0x65ee, 0x190a, - 0x65f1, 0x076c, - 0x65f2, 0x3491, - 0x65f6, 0x0d48, - 0x65f7, 0x0982, - 0x65f8, 0x3495, - 0x65fa, 0x0eab, - 0x65fb, 0x3497, - 0x6600, 0x1912, - 0x6601, 0x349c, - 0x6602, 0x03c5, - 0x6603, 0x1910, - 0x6604, 0x349d, - 0x6606, 0x0990, - 0x6607, 0x349f, - 0x660a, 0x190d, - 0x660b, 0x34a2, - 0x660c, 0x04c4, - 0x660d, 0x34a3, - 0x660e, 0x0afc, - 0x660f, 0x07fd, - 0x6610, 0x34a4, - 0x6613, 0x105e, - 0x6614, 0x0f03, - 0x6615, 0x1911, - 0x6616, 0x34a7, - 0x6619, 0x190e, - 0x661a, 0x34aa, - 0x661d, 0x1915, - 0x661e, 0x34ad, - 0x661f, 0x0f92, - 0x6620, 0x1098, - 0x6621, 0x34ae, - 0x6625, 0x053d, - 0x6626, 0x34b2, - 0x6627, 0x0ac6, - 0x6628, 0x124f, - 0x6629, 0x34b3, - 0x662d, 0x1172, - 0x662e, 0x34b7, - 0x662f, 0x0d5e, - 0x6630, 0x34b8, - 0x6631, 0x1917, - 0x6632, 0x34b9, - 0x6634, 0x1916, - 0x6635, 0x1919, - 0x6636, 0x1918, - 0x6637, 0x34bb, - 0x663c, 0x11e6, - 0x663d, 0x34c0, - 0x663e, 0x0f41, - 0x663f, 0x34c1, - 0x6641, 0x191d, - 0x6642, 0x212d, - 0x6643, 0x07e3, - 0x6644, 0x34c3, - 0x664b, 0x08cb, - 0x664c, 0x0d07, - 0x664d, 0x34ca, - 0x664f, 0x191e, - 0x6650, 0x34cc, - 0x6652, 0x0cf2, - 0x6653, 0x0f6b, - 0x6654, 0x191c, - 0x6655, 0x1111, - 0x6656, 0x191f, - 0x6657, 0x1921, - 0x6658, 0x34ce, - 0x665a, 0x0e9e, - 0x665b, 0x34d0, - 0x665d, 0x229b, - 0x665e, 0x34d2, - 0x665f, 0x191b, - 0x6660, 0x34d3, - 0x6661, 0x1920, - 0x6662, 0x34d4, - 0x6664, 0x0efd, - 0x6665, 0x34d6, - 0x6666, 0x07f3, - 0x6667, 0x34d7, - 0x6668, 0x04e4, - 0x6669, 0x34d8, - 0x666e, 0x0bf4, - 0x666f, 0x08df, - 0x6670, 0x0f09, - 0x6671, 0x34dd, - 0x6674, 0x0c64, - 0x6675, 0x34e0, - 0x6676, 0x08d6, - 0x6677, 0x1922, - 0x6678, 0x34e1, - 0x667a, 0x11c6, - 0x667b, 0x34e3, - 0x667e, 0x0a09, - 0x667f, 0x34e6, - 0x6682, 0x1120, - 0x6683, 0x34e9, - 0x6684, 0x1923, - 0x6685, 0x34ea, - 0x6687, 0x0f2b, - 0x6688, 0x2256, - 0x6689, 0x24a8, - 0x668a, 0x34ec, - 0x668c, 0x1924, - 0x668d, 0x34ee, - 0x6691, 0x0d85, - 0x6692, 0x34f2, - 0x6696, 0x0b70, - 0x6697, 0x03c0, - 0x6698, 0x34f6, - 0x669d, 0x1926, - 0x669e, 0x34fb, - 0x66a2, 0x1e79, - 0x66a3, 0x34ff, - 0x66a7, 0x1925, - 0x66a8, 0x1cdd, - 0x66a9, 0x3503, - 0x66ab, 0x225a, - 0x66ac, 0x3505, - 0x66ae, 0x0b1d, - 0x66af, 0x3507, - 0x66b4, 0x0412, - 0x66b5, 0x350c, - 0x66b9, 0x175b, - 0x66ba, 0x3510, - 0x66be, 0x1927, - 0x66bf, 0x3514, - 0x66c4, 0x24a7, - 0x66c5, 0x3519, - 0x66c6, 0x2686, - 0x66c7, 0x24a6, - 0x66c8, 0x351a, - 0x66c9, 0x21ce, - 0x66ca, 0x351b, - 0x66d6, 0x24a9, - 0x66d7, 0x3527, - 0x66d9, 0x0d86, - 0x66da, 0x3529, - 0x66db, 0x1928, - 0x66dd, 0x0bf7, - 0x66de, 0x352a, - 0x66e0, 0x1fe7, - 0x66e1, 0x352c, - 0x66e6, 0x192a, - 0x66e7, 0x3531, - 0x66e9, 0x192b, - 0x66ea, 0x3533, - 0x66ec, 0x2112, - 0x66ed, 0x3535, - 0x66f0, 0x10fe, - 0x66f1, 0x3538, - 0x66f2, 0x0c77, - 0x66f3, 0x103e, - 0x66f4, 0x06f7, - 0x66f5, 0x3539, - 0x66f7, 0x1914, - 0x66f8, 0x213c, - 0x66f9, 0x04a3, - 0x66fa, 0x353b, - 0x66fc, 0x0aa3, - 0x66fd, 0x353d, - 0x66fe, 0x113b, - 0x66ff, 0x0e39, - 0x6700, 0x124b, - 0x6701, 0x353e, - 0x6703, 0x1f5c, - 0x6704, 0x3540, - 0x6708, 0x1105, - 0x6709, 0x10b5, - 0x670a, 0x1973, - 0x670b, 0x0bb4, - 0x670c, 0x3544, - 0x670d, 0x069b, - 0x670e, 0x3545, - 0x6710, 0x1984, - 0x6711, 0x3547, - 0x6714, 0x0dac, - 0x6715, 0x198e, - 0x6716, 0x354a, - 0x6717, 0x09b5, - 0x6718, 0x354b, - 0x671b, 0x0eac, - 0x671c, 0x354e, - 0x671d, 0x04d4, - 0x671e, 0x354f, - 0x671f, 0x0bf9, - 0x6720, 0x3550, - 0x6726, 0x19ac, - 0x6727, 0x24c4, - 0x6728, 0x0b21, - 0x6729, 0x3556, - 0x672a, 0x0ec3, - 0x672b, 0x0b0c, - 0x672c, 0x0427, - 0x672d, 0x1140, - 0x672e, 0x3557, - 0x672f, 0x0d8c, - 0x6730, 0x3558, - 0x6731, 0x11eb, - 0x6732, 0x3559, - 0x6734, 0x0bf2, - 0x6735, 0x0623, - 0x6736, 0x355b, - 0x673a, 0x080f, - 0x673b, 0x355f, - 0x673d, 0x0fab, - 0x673e, 0x3561, - 0x6740, 0x0cea, - 0x6741, 0x3563, - 0x6742, 0x1116, - 0x6743, 0x0c83, - 0x6744, 0x3564, - 0x6746, 0x06c6, - 0x6747, 0x3566, - 0x6748, 0x1854, - 0x6749, 0x0cf5, - 0x674a, 0x3567, - 0x674c, 0x1851, - 0x674d, 0x3569, - 0x674e, 0x09d9, - 0x674f, 0x0f9e, - 0x6750, 0x048b, - 0x6751, 0x0568, - 0x6752, 0x356a, - 0x6753, 0x1852, - 0x6754, 0x356b, - 0x6756, 0x1169, - 0x6757, 0x356d, - 0x675c, 0x0604, - 0x675d, 0x3572, - 0x675e, 0x1853, - 0x675f, 0x0d8f, - 0x6760, 0x06d7, - 0x6761, 0x0e48, - 0x6762, 0x3573, - 0x6765, 0x099f, - 0x6766, 0x3576, - 0x6768, 0x1017, - 0x6769, 0x1855, - 0x676a, 0x1858, - 0x676b, 0x3578, - 0x676d, 0x0773, - 0x676e, 0x357a, - 0x676f, 0x0416, - 0x6770, 0x08ad, - 0x6771, 0x1ecc, - 0x6772, 0x190f, - 0x6773, 0x1859, - 0x6774, 0x357b, - 0x6775, 0x185c, - 0x6776, 0x357c, - 0x6777, 0x1861, - 0x6778, 0x357d, - 0x677c, 0x1862, - 0x677d, 0x3581, - 0x677e, 0x0dbe, - 0x677f, 0x03f0, - 0x6780, 0x3582, - 0x6781, 0x081e, - 0x6782, 0x3583, - 0x6784, 0x0712, - 0x6785, 0x3585, - 0x6787, 0x1857, - 0x6788, 0x3587, - 0x6789, 0x0ea8, - 0x678a, 0x3588, - 0x678b, 0x1860, - 0x678c, 0x3589, - 0x6790, 0x0f05, - 0x6791, 0x358d, - 0x6795, 0x118e, - 0x6796, 0x3591, - 0x6797, 0x0a1f, - 0x6798, 0x185a, - 0x6799, 0x3592, - 0x679a, 0x0abb, - 0x679b, 0x3593, - 0x679c, 0x0754, - 0x679d, 0x11a5, - 0x679e, 0x185e, - 0x679f, 0x3594, - 0x67a2, 0x0d77, - 0x67a3, 0x1129, - 0x67a4, 0x3597, - 0x67a5, 0x1856, - 0x67a6, 0x3598, - 0x67a7, 0x185b, - 0x67a8, 0x185d, - 0x67a9, 0x3599, - 0x67aa, 0x0c36, - 0x67ab, 0x0680, - 0x67ac, 0x359a, - 0x67ad, 0x185f, - 0x67ae, 0x359b, - 0x67af, 0x096a, - 0x67b0, 0x1868, - 0x67b1, 0x359c, - 0x67b3, 0x186d, - 0x67b4, 0x359e, - 0x67b5, 0x186b, - 0x67b6, 0x084f, - 0x67b7, 0x0842, - 0x67b8, 0x1871, - 0x67b9, 0x359f, - 0x67c1, 0x1874, - 0x67c2, 0x35a7, - 0x67c3, 0x1870, - 0x67c4, 0x0463, - 0x67c5, 0x35a8, - 0x67cf, 0x03e3, - 0x67d0, 0x0b16, - 0x67d1, 0x06c7, - 0x67d2, 0x0c01, - 0x67d3, 0x0c99, - 0x67d4, 0x0cbc, - 0x67d5, 0x35b2, - 0x67d8, 0x1865, - 0x67d9, 0x186a, - 0x67da, 0x186c, - 0x67db, 0x35b5, - 0x67dc, 0x074a, - 0x67dd, 0x186e, - 0x67de, 0x1252, - 0x67df, 0x35b6, - 0x67e0, 0x0b5e, - 0x67e1, 0x35b7, - 0x67e2, 0x1872, - 0x67e3, 0x35b8, - 0x67e5, 0x04b0, - 0x67e6, 0x35ba, - 0x67e9, 0x1867, - 0x67ea, 0x35bd, - 0x67ec, 0x0860, - 0x67ed, 0x35bf, - 0x67ef, 0x094f, - 0x67f0, 0x1863, - 0x67f1, 0x11f8, - 0x67f2, 0x35c1, - 0x67f3, 0x0a41, - 0x67f4, 0x04b8, - 0x67f5, 0x35c2, - 0x67fd, 0x1875, - 0x67fe, 0x35ca, - 0x67ff, 0x0d58, - 0x6800, 0x186f, - 0x6801, 0x35cb, - 0x6805, 0x1145, - 0x6806, 0x35cf, - 0x6807, 0x0453, - 0x6808, 0x115c, - 0x6809, 0x1864, - 0x680a, 0x1866, - 0x680b, 0x05ef, - 0x680c, 0x1869, - 0x680d, 0x35d0, - 0x680e, 0x1873, - 0x680f, 0x09a3, - 0x6810, 0x35d1, - 0x6811, 0x0d8e, - 0x6812, 0x35d2, - 0x6813, 0x0d9d, - 0x6814, 0x35d3, - 0x6816, 0x0bfb, - 0x6817, 0x09e0, - 0x6818, 0x35d5, - 0x681d, 0x187f, - 0x681e, 0x35da, - 0x6821, 0x0f6e, - 0x6822, 0x35dd, - 0x6829, 0x1888, - 0x682a, 0x11e9, - 0x682b, 0x35e4, - 0x6832, 0x1876, - 0x6834, 0x35eb, - 0x6837, 0x1022, - 0x6838, 0x0782, - 0x6839, 0x06f4, - 0x683a, 0x35ee, - 0x683c, 0x06ec, - 0x683d, 0x1117, - 0x683e, 0x1885, - 0x683f, 0x35f0, - 0x6840, 0x1884, - 0x6841, 0x1882, - 0x6842, 0x0749, - 0x6843, 0x0e25, - 0x6844, 0x187c, - 0x6845, 0x0eb5, - 0x6846, 0x097f, - 0x6847, 0x35f1, - 0x6848, 0x03c3, - 0x6849, 0x1887, - 0x684a, 0x1886, - 0x684b, 0x35f2, - 0x684c, 0x121d, - 0x684d, 0x35f3, - 0x684e, 0x187a, - 0x684f, 0x35f4, - 0x6850, 0x0e5a, - 0x6851, 0x0cdc, - 0x6852, 0x35f5, - 0x6853, 0x07cd, - 0x6854, 0x08ac, - 0x6855, 0x1880, - 0x6856, 0x35f6, - 0x6860, 0x1878, - 0x6862, 0x187b, - 0x6863, 0x0596, - 0x6864, 0x187d, - 0x6865, 0x0c42, - 0x6866, 0x1881, - 0x6867, 0x1883, - 0x6868, 0x0881, - 0x6869, 0x120b, - 0x686a, 0x3600, - 0x686b, 0x188e, - 0x686c, 0x3601, - 0x6874, 0x188b, - 0x6875, 0x3609, - 0x6876, 0x0e61, - 0x6877, 0x188c, - 0x6878, 0x360a, - 0x6881, 0x0a03, - 0x6882, 0x3613, - 0x6883, 0x187e, - 0x6884, 0x3614, - 0x6885, 0x0abc, - 0x6886, 0x03fb, - 0x6887, 0x3615, - 0x688f, 0x188a, - 0x6890, 0x361d, - 0x6893, 0x188d, - 0x6894, 0x3620, - 0x6897, 0x06fc, - 0x6898, 0x246a, - 0x6899, 0x3623, - 0x689d, 0x2175, - 0x689e, 0x3627, - 0x689f, 0x246d, - 0x68a0, 0x3628, - 0x68a2, 0x0d0b, - 0x68a3, 0x362a, - 0x68a6, 0x0ad3, - 0x68a7, 0x0eef, - 0x68a8, 0x09d1, - 0x68a9, 0x362d, - 0x68ad, 0x0de8, - 0x68ae, 0x3631, - 0x68af, 0x0e30, - 0x68b0, 0x0f80, - 0x68b1, 0x3632, - 0x68b3, 0x0d78, - 0x68b4, 0x3634, - 0x68b5, 0x1889, - 0x68b6, 0x3635, - 0x68c0, 0x085f, - 0x68c1, 0x363f, - 0x68c2, 0x188f, - 0x68c3, 0x3640, - 0x68c9, 0x0ae3, - 0x68ca, 0x3646, - 0x68cb, 0x0c04, - 0x68cc, 0x3647, - 0x68cd, 0x0750, - 0x68ce, 0x3648, - 0x68d2, 0x03ff, - 0x68d3, 0x364c, - 0x68d5, 0x1235, - 0x68d6, 0x246b, - 0x68d7, 0x225f, - 0x68d8, 0x081f, - 0x68d9, 0x364e, - 0x68da, 0x0bb0, - 0x68db, 0x364f, - 0x68df, 0x1ece, - 0x68e0, 0x0e17, - 0x68e1, 0x3653, - 0x68e3, 0x189a, - 0x68e4, 0x3655, - 0x68e7, 0x2272, - 0x68e8, 0x3658, - 0x68ee, 0x0ce6, - 0x68ef, 0x365e, - 0x68f0, 0x1896, - 0x68f1, 0x09cd, - 0x68f2, 0x365f, - 0x68f5, 0x0950, - 0x68f6, 0x3662, - 0x68f9, 0x1894, - 0x68fa, 0x0730, - 0x68fb, 0x3665, - 0x68fc, 0x1891, - 0x68fd, 0x3666, - 0x6900, 0x3669, - 0x6901, 0x1898, - 0x6902, 0x366a, - 0x6905, 0x1055, - 0x6906, 0x366d, - 0x690b, 0x1897, - 0x690c, 0x3672, - 0x690d, 0x11b1, - 0x690e, 0x1212, - 0x690f, 0x2473, - 0x6910, 0x189b, - 0x6911, 0x3673, - 0x6912, 0x0888, - 0x6913, 0x3674, - 0x691f, 0x1892, - 0x6921, 0x3680, - 0x6924, 0x1895, - 0x6925, 0x3683, - 0x692d, 0x0e87, - 0x692e, 0x368b, - 0x6930, 0x1033, - 0x6931, 0x368d, - 0x6934, 0x18a6, - 0x6935, 0x3690, - 0x6939, 0x189d, - 0x693a, 0x3694, - 0x693d, 0x052d, - 0x693e, 0x3697, - 0x693f, 0x053e, - 0x6940, 0x3698, - 0x6942, 0x189f, - 0x6943, 0x369a, - 0x694a, 0x21fe, - 0x694b, 0x36a1, - 0x6953, 0x1efe, - 0x6954, 0x0f73, - 0x6955, 0x36a9, - 0x6957, 0x1899, - 0x6958, 0x36ab, - 0x695a, 0x0523, - 0x695b, 0x36ad, - 0x695d, 0x18a0, - 0x695e, 0x09ce, - 0x695f, 0x36af, - 0x6960, 0x189e, - 0x6961, 0x36b0, - 0x6963, 0x18ad, - 0x6964, 0x36b2, - 0x6966, 0x18ac, - 0x6967, 0x36b4, - 0x6968, 0x2475, - 0x6969, 0x36b5, - 0x696b, 0x18a2, - 0x696c, 0x36b7, - 0x696d, 0x220a, - 0x696e, 0x1890, - 0x696f, 0x36b8, - 0x6971, 0x189c, - 0x6972, 0x36ba, - 0x6975, 0x1f6f, - 0x6976, 0x36bd, - 0x6977, 0x0939, - 0x6978, 0x18a5, - 0x6979, 0x18ae, - 0x697a, 0x36be, - 0x697c, 0x0a4c, - 0x697d, 0x36c0, - 0x6980, 0x18a3, - 0x6981, 0x36c3, - 0x6982, 0x06c0, - 0x6983, 0x36c4, - 0x6984, 0x18a1, - 0x6985, 0x36c5, - 0x6986, 0x10c1, - 0x6987, 0x18a8, - 0x6989, 0x18ab, - 0x698a, 0x36c6, - 0x698d, 0x18bb, - 0x698e, 0x36c9, - 0x6994, 0x09b1, - 0x6995, 0x18b9, - 0x6996, 0x36cf, - 0x6998, 0x18a4, - 0x6999, 0x36d1, - 0x699b, 0x18af, - 0x699c, 0x03fc, - 0x699d, 0x36d3, - 0x69a7, 0x18b0, - 0x69a8, 0x1146, - 0x69a9, 0x36dd, - 0x69aa, 0x2468, - 0x69ab, 0x18b2, - 0x69ac, 0x36de, - 0x69ad, 0x18b3, - 0x69ae, 0x2100, - 0x69af, 0x36df, - 0x69b1, 0x18b5, - 0x69b2, 0x36e1, - 0x69b4, 0x0a3a, - 0x69b5, 0x36e3, - 0x69b7, 0x0c91, - 0x69b8, 0x36e5, - 0x69bb, 0x18b1, - 0x69bc, 0x36e8, - 0x69bf, 0x2476, - 0x69c0, 0x36eb, - 0x69c1, 0x18b6, - 0x69c2, 0x36ec, - 0x69ca, 0x18b7, - 0x69cb, 0x1f27, - 0x69cc, 0x18a7, - 0x69cd, 0x20d7, - 0x69ce, 0x18aa, - 0x69cf, 0x36f4, - 0x69d0, 0x07c6, - 0x69d1, 0x36f5, - 0x69d4, 0x18b4, - 0x69d5, 0x36f8, - 0x69db, 0x086a, - 0x69dc, 0x36fe, - 0x69df, 0x18b8, - 0x69e0, 0x18ba, - 0x69e1, 0x3701, - 0x69e7, 0x247c, - 0x69e8, 0x3707, - 0x69ed, 0x18be, - 0x69ee, 0x370c, - 0x69f2, 0x18c2, - 0x69f3, 0x1fa1, - 0x69f4, 0x3710, - 0x69fd, 0x04a2, - 0x69fe, 0x3719, - 0x69ff, 0x18bc, - 0x6a00, 0x371a, - 0x6a01, 0x22aa, - 0x6a02, 0x2005, - 0x6a03, 0x371b, - 0x6a05, 0x246c, - 0x6a06, 0x371d, - 0x6a0a, 0x064b, - 0x6a0b, 0x3721, - 0x6a13, 0x203e, - 0x6a14, 0x3729, - 0x6a17, 0x18bf, - 0x6a19, 0x1e4c, - 0x6a1a, 0x372c, - 0x6a1e, 0x213a, - 0x6a1f, 0x1162, - 0x6a20, 0x3730, - 0x6a21, 0x0b06, - 0x6a22, 0x3731, - 0x6a23, 0x2204, - 0x6a24, 0x3732, - 0x6a28, 0x18cc, - 0x6a29, 0x3736, - 0x6a2a, 0x0798, - 0x6a2b, 0x3737, - 0x6a2f, 0x18bd, - 0x6a30, 0x373b, - 0x6a31, 0x1088, - 0x6a32, 0x373c, - 0x6a35, 0x18c8, - 0x6a36, 0x373f, - 0x6a38, 0x20c3, - 0x6a39, 0x2140, - 0x6a3a, 0x2477, - 0x6a3b, 0x3741, - 0x6a3d, 0x18cb, - 0x6a3e, 0x18c4, - 0x6a3f, 0x3743, - 0x6a44, 0x18c3, - 0x6a45, 0x3748, - 0x6a47, 0x0c3e, - 0x6a48, 0x2474, - 0x6a49, 0x374a, - 0x6a4b, 0x20dd, - 0x6a4c, 0x374c, - 0x6a50, 0x18c6, - 0x6a51, 0x3750, - 0x6a58, 0x18cd, - 0x6a59, 0x04ed, - 0x6a5a, 0x3757, - 0x6a5b, 0x18c7, - 0x6a5c, 0x3758, - 0x6a5f, 0x1f68, - 0x6a60, 0x375b, - 0x6a61, 0x0f5d, - 0x6a62, 0x2185, - 0x6a63, 0x375c, - 0x6a65, 0x18c1, - 0x6a66, 0x375e, - 0x6a71, 0x051c, - 0x6a72, 0x3769, - 0x6a79, 0x18ca, - 0x6a7a, 0x3770, - 0x6a7c, 0x18ce, - 0x6a7d, 0x3772, - 0x6a80, 0x0e07, - 0x6a81, 0x3775, - 0x6a84, 0x0f1a, - 0x6a85, 0x3778, - 0x6a89, 0x2472, - 0x6a8a, 0x377c, - 0x6a8e, 0x18c9, - 0x6a8f, 0x3780, - 0x6a90, 0x18d0, - 0x6a91, 0x18cf, - 0x6a92, 0x3781, - 0x6a94, 0x1eb5, - 0x6a95, 0x3783, - 0x6a97, 0x18d2, - 0x6a98, 0x3785, - 0x6a9c, 0x2478, - 0x6a9d, 0x3789, - 0x6aa0, 0x18c5, - 0x6aa1, 0x378c, - 0x6aa2, 0x1f8b, - 0x6aa3, 0x2484, - 0x6aa4, 0x378d, - 0x6aa9, 0x18d1, - 0x6aaa, 0x3792, - 0x6aab, 0x18d3, - 0x6aac, 0x0acf, - 0x6aad, 0x3793, - 0x6aaf, 0x2699, - 0x6ab0, 0x3795, - 0x6ab3, 0x2482, - 0x6ab4, 0x3798, - 0x6ab8, 0x20a1, - 0x6ab9, 0x379c, - 0x6abb, 0x1f92, - 0x6abc, 0x379e, - 0x6ac3, 0x1f38, - 0x6ac4, 0x37a5, - 0x6ad3, 0x2485, - 0x6ad4, 0x37b4, - 0x6ada, 0x2480, - 0x6adb, 0x246e, - 0x6adc, 0x37ba, - 0x6add, 0x247b, - 0x6ade, 0x2486, - 0x6adf, 0x2471, - 0x6ae0, 0x37bb, - 0x6ae7, 0x2483, - 0x6ae8, 0x2470, - 0x6ae9, 0x37c2, - 0x6aea, 0x2469, - 0x6aeb, 0x37c3, - 0x6aec, 0x247f, - 0x6aed, 0x37c4, - 0x6af3, 0x246f, - 0x6af4, 0x37ca, - 0x6af8, 0x2481, - 0x6af9, 0x37ce, - 0x6afb, 0x2220, - 0x6afc, 0x37d0, - 0x6b00, 0x37d4, - 0x6b04, 0x1ff5, - 0x6b05, 0x37d8, - 0x6b0a, 0x20f4, - 0x6b0b, 0x37dd, - 0x6b0f, 0x247d, - 0x6b10, 0x37e1, - 0x6b12, 0x2479, - 0x6b13, 0x37e3, - 0x6b16, 0x247e, - 0x6b17, 0x37e6, - 0x6b1e, 0x247a, - 0x6b1f, 0x37ed, - 0x6b20, 0x0c34, - 0x6b21, 0x0551, - 0x6b22, 0x07cb, - 0x6b23, 0x0f8b, - 0x6b24, 0x19b1, - 0x6b25, 0x37ee, - 0x6b27, 0x0b78, - 0x6b28, 0x37f0, - 0x6b32, 0x10e0, - 0x6b33, 0x37fa, - 0x6b37, 0x19b2, - 0x6b38, 0x37fe, - 0x6b39, 0x19b3, - 0x6b3a, 0x0bfa, - 0x6b3b, 0x37ff, - 0x6b3d, 0x20e3, - 0x6b3e, 0x097b, - 0x6b3f, 0x3801, - 0x6b43, 0x19b4, - 0x6b44, 0x3805, - 0x6b46, 0x19b5, - 0x6b47, 0x0f75, - 0x6b48, 0x3807, - 0x6b49, 0x0c35, - 0x6b4a, 0x3808, - 0x6b4c, 0x06e3, - 0x6b4d, 0x380a, - 0x6b50, 0x20ad, - 0x6b51, 0x380d, - 0x6b59, 0x19b6, - 0x6b5a, 0x3815, - 0x6b5f, 0x24cb, - 0x6b60, 0x381a, - 0x6b61, 0x1f53, - 0x6b62, 0x11b8, - 0x6b63, 0x119e, - 0x6b64, 0x054e, - 0x6b65, 0x0484, - 0x6b66, 0x0ef3, - 0x6b67, 0x0c06, - 0x6b68, 0x381b, - 0x6b6a, 0x0e92, - 0x6b6b, 0x381d, - 0x6b72, 0x2159, - 0x6b73, 0x3824, - 0x6b77, 0x2013, - 0x6b78, 0x1f33, - 0x6b79, 0x0578, - 0x6b7a, 0x3828, - 0x6b7b, 0x0db5, - 0x6b7c, 0x0852, - 0x6b7d, 0x3829, - 0x6b81, 0x18d6, - 0x6b83, 0x1013, - 0x6b84, 0x18d9, - 0x6b85, 0x382d, - 0x6b86, 0x057c, - 0x6b87, 0x18d8, - 0x6b88, 0x382e, - 0x6b89, 0x0fdc, - 0x6b8a, 0x0d79, - 0x6b8b, 0x0497, - 0x6b8c, 0x382f, - 0x6b8d, 0x18dc, - 0x6b8e, 0x3830, - 0x6b92, 0x18da, - 0x6b94, 0x3834, - 0x6b96, 0x11b2, - 0x6b97, 0x3836, - 0x6b98, 0x1e5c, - 0x6b99, 0x3837, - 0x6b9a, 0x18dd, - 0x6b9c, 0x3838, - 0x6b9e, 0x2488, - 0x6b9f, 0x383a, - 0x6ba1, 0x18df, - 0x6ba2, 0x383c, - 0x6ba4, 0x2487, - 0x6ba5, 0x383e, - 0x6baa, 0x18e0, - 0x6bab, 0x248a, - 0x6bac, 0x3843, - 0x6bae, 0x2489, - 0x6baf, 0x248b, - 0x6bb0, 0x3845, - 0x6bb2, 0x1f83, - 0x6bb3, 0x19bd, - 0x6bb4, 0x0b7a, - 0x6bb5, 0x060d, - 0x6bb6, 0x3847, - 0x6bb7, 0x107a, - 0x6bb8, 0x3848, - 0x6bba, 0x210f, - 0x6bbb, 0x1fdb, - 0x6bbc, 0x384a, - 0x6bbf, 0x05cf, - 0x6bc0, 0x384d, - 0x6bc1, 0x07ee, - 0x6bc2, 0x19bf, - 0x6bc3, 0x384e, - 0x6bc5, 0x106a, - 0x6bc6, 0x20af, - 0x6bc7, 0x3850, - 0x6bcb, 0x0ef2, - 0x6bcc, 0x3854, - 0x6bcd, 0x0b1b, - 0x6bce, 0x3855, - 0x6bcf, 0x0ac4, - 0x6bd0, 0x3856, - 0x6bd2, 0x05fd, - 0x6bd3, 0x126f, - 0x6bd4, 0x0431, - 0x6bd5, 0x0438, - 0x6bd6, 0x043a, - 0x6bd7, 0x0bbf, - 0x6bd8, 0x3858, - 0x6bd9, 0x0439, - 0x6bda, 0x3859, - 0x6bdb, 0x0ab0, - 0x6bdc, 0x385a, - 0x6be1, 0x1152, - 0x6be2, 0x385f, - 0x6bea, 0x1954, - 0x6beb, 0x0778, - 0x6bec, 0x3867, - 0x6bef, 0x0e0d, - 0x6bf0, 0x386a, - 0x6bf3, 0x1955, - 0x6bf4, 0x386d, - 0x6bf5, 0x1957, - 0x6bf6, 0x386e, - 0x6bf9, 0x1958, - 0x6bfa, 0x3871, - 0x6bfd, 0x1956, - 0x6bfe, 0x3874, - 0x6bff, 0x24c0, - 0x6c00, 0x3875, - 0x6c05, 0x1959, - 0x6c06, 0x195b, - 0x6c07, 0x195a, - 0x6c08, 0x226d, - 0x6c09, 0x387a, - 0x6c0c, 0x24c1, - 0x6c0d, 0x195c, - 0x6c0e, 0x387d, - 0x6c0f, 0x0d66, - 0x6c10, 0x126b, - 0x6c11, 0x0af6, - 0x6c12, 0x387e, - 0x6c13, 0x0aaa, - 0x6c14, 0x0c17, - 0x6c15, 0x195d, - 0x6c16, 0x0b2d, - 0x6c17, 0x387f, - 0x6c18, 0x195e, - 0x6c1b, 0x0672, - 0x6c1c, 0x3880, - 0x6c1f, 0x0697, - 0x6c20, 0x3883, - 0x6c21, 0x1961, - 0x6c22, 0x0c5f, - 0x6c23, 0x20ca, - 0x6c24, 0x1963, - 0x6c25, 0x3884, - 0x6c26, 0x075b, - 0x6c27, 0x101e, - 0x6c28, 0x03bc, - 0x6c29, 0x1962, - 0x6c2a, 0x1964, - 0x6c2b, 0x20e7, - 0x6c2c, 0x24c2, - 0x6c2d, 0x3885, - 0x6c2e, 0x058b, - 0x6c2f, 0x0a6f, - 0x6c30, 0x0c65, - 0x6c31, 0x3886, - 0x6c32, 0x1965, - 0x6c33, 0x3887, - 0x6c34, 0x0da3, - 0x6c35, 0x169f, - 0x6c36, 0x3888, - 0x6c38, 0x10a5, - 0x6c39, 0x388a, - 0x6c3d, 0x12ef, - 0x6c3e, 0x388e, - 0x6c40, 0x0e52, - 0x6c41, 0x11ac, - 0x6c42, 0x0c70, - 0x6c43, 0x3890, - 0x6c46, 0x12f4, - 0x6c47, 0x07f8, - 0x6c48, 0x3893, - 0x6c49, 0x0771, - 0x6c4a, 0x16a2, - 0x6c4b, 0x3894, - 0x6c50, 0x0f18, - 0x6c51, 0x3899, - 0x6c54, 0x16a0, - 0x6c55, 0x0d00, - 0x6c56, 0x389c, - 0x6c57, 0x0770, - 0x6c58, 0x389d, - 0x6c5b, 0x0fdd, - 0x6c5c, 0x16a1, - 0x6c5d, 0x0cc5, - 0x6c5e, 0x0708, - 0x6c5f, 0x087e, - 0x6c60, 0x04fd, - 0x6c61, 0x0eea, - 0x6c62, 0x38a0, - 0x6c64, 0x0e13, - 0x6c65, 0x38a2, - 0x6c68, 0x16a8, - 0x6c6a, 0x0ea5, - 0x6c6b, 0x38a5, - 0x6c70, 0x0e00, - 0x6c71, 0x38aa, - 0x6c72, 0x0826, - 0x6c73, 0x38ab, - 0x6c74, 0x16aa, - 0x6c75, 0x38ac, - 0x6c76, 0x16ab, - 0x6c77, 0x38ad, - 0x6c79, 0x0fa5, - 0x6c7a, 0x38af, - 0x6c7d, 0x0c1a, - 0x6c7e, 0x0677, - 0x6c7f, 0x38b2, - 0x6c81, 0x0c5c, - 0x6c82, 0x1051, - 0x6c83, 0x0ee5, - 0x6c84, 0x38b4, - 0x6c85, 0x16a4, - 0x6c86, 0x16ac, - 0x6c87, 0x38b5, - 0x6c88, 0x0d2b, - 0x6c89, 0x04e6, - 0x6c8a, 0x38b6, - 0x6c8c, 0x16a7, - 0x6c8d, 0x38b8, - 0x6c8f, 0x0c02, - 0x6c90, 0x16a5, - 0x6c91, 0x38ba, - 0x6c93, 0x1a1f, - 0x6c94, 0x16a6, - 0x6c95, 0x38bc, - 0x6c99, 0x0cec, - 0x6c9a, 0x38c0, - 0x6c9b, 0x0ba7, - 0x6c9c, 0x38c1, - 0x6c9f, 0x070e, - 0x6ca0, 0x38c4, - 0x6ca1, 0x0ac0, - 0x6ca2, 0x38c5, - 0x6ca3, 0x16a3, - 0x6ca4, 0x0b7e, - 0x6ca5, 0x09ed, - 0x6ca6, 0x0a80, - 0x6ca7, 0x049e, - 0x6ca8, 0x38c6, - 0x6ca9, 0x16ad, - 0x6caa, 0x07bb, - 0x6cab, 0x0b10, - 0x6cac, 0x38c7, - 0x6cad, 0x16b0, - 0x6cae, 0x0909, - 0x6caf, 0x38c8, - 0x6cb1, 0x16bb, - 0x6cb2, 0x16b5, - 0x6cb3, 0x078a, - 0x6cb4, 0x38ca, - 0x6cb8, 0x066d, - 0x6cb9, 0x10b2, - 0x6cba, 0x38ce, - 0x6cbb, 0x11cd, - 0x6cbc, 0x1174, - 0x6cbd, 0x071a, - 0x6cbe, 0x1155, - 0x6cbf, 0x1001, - 0x6cc0, 0x38cf, - 0x6cc4, 0x0f84, - 0x6cc5, 0x0c73, - 0x6cc6, 0x38d3, - 0x6cc9, 0x0c85, - 0x6cca, 0x047b, - 0x6ccb, 0x38d6, - 0x6ccc, 0x0adf, - 0x6ccd, 0x38d7, - 0x6cd0, 0x16ae, - 0x6cd1, 0x38da, - 0x6cd3, 0x16bc, - 0x6cd4, 0x16af, - 0x6cd5, 0x0645, - 0x6cd6, 0x16b7, - 0x6cd7, 0x16b4, - 0x6cd8, 0x38dc, - 0x6cdb, 0x0657, - 0x6cdc, 0x38df, - 0x6cde, 0x0b63, - 0x6cdf, 0x38e1, - 0x6ce0, 0x16b6, - 0x6ce1, 0x0b9e, - 0x6ce2, 0x046f, - 0x6ce3, 0x0c1b, - 0x6ce4, 0x38e2, - 0x6ce5, 0x0b43, - 0x6ce6, 0x38e3, - 0x6ce8, 0x11ff, - 0x6ce9, 0x38e5, - 0x6cea, 0x09cc, - 0x6ceb, 0x16b9, - 0x6cec, 0x38e6, - 0x6cee, 0x16ba, - 0x6cef, 0x16bd, - 0x6cf0, 0x0dfc, - 0x6cf1, 0x16b3, - 0x6cf2, 0x38e8, - 0x6cf3, 0x10a3, - 0x6cf4, 0x38e9, - 0x6cf5, 0x042c, - 0x6cf6, 0x1a20, - 0x6cf7, 0x16b1, - 0x6cf9, 0x38ea, - 0x6cfa, 0x16b8, - 0x6cfb, 0x0f85, - 0x6cfc, 0x0be2, - 0x6cfd, 0x1136, - 0x6cfe, 0x16be, - 0x6cff, 0x38eb, - 0x6d00, 0x38ec, - 0x6d01, 0x08b1, - 0x6d02, 0x38ed, - 0x6d04, 0x16c5, - 0x6d05, 0x38ef, - 0x6d07, 0x16c4, - 0x6d08, 0x38f1, - 0x6d0b, 0x101c, - 0x6d0c, 0x16c1, - 0x6d0d, 0x38f4, - 0x6d0e, 0x16c7, - 0x6d0f, 0x38f5, - 0x6d12, 0x0cd2, - 0x6d13, 0x38f8, - 0x6d17, 0x0f21, - 0x6d18, 0x38fc, - 0x6d19, 0x16c6, - 0x6d1a, 0x16cc, - 0x6d1b, 0x0a8c, - 0x6d1c, 0x38fd, - 0x6d1e, 0x05f3, - 0x6d1f, 0x38ff, - 0x6d25, 0x08c3, - 0x6d26, 0x3905, - 0x6d27, 0x16c0, - 0x6d28, 0x3906, - 0x6d2a, 0x07a0, - 0x6d2b, 0x16c8, - 0x6d2c, 0x3908, - 0x6d2e, 0x16ca, - 0x6d2f, 0x390a, - 0x6d31, 0x063c, - 0x6d32, 0x11dd, - 0x6d33, 0x16d0, - 0x6d34, 0x390c, - 0x6d35, 0x16cb, - 0x6d36, 0x390d, - 0x6d39, 0x16bf, - 0x6d3a, 0x3910, - 0x6d3b, 0x0803, - 0x6d3c, 0x0e8e, - 0x6d3d, 0x0c1f, - 0x6d3e, 0x0b8a, - 0x6d3f, 0x3911, - 0x6d41, 0x0a40, - 0x6d42, 0x3913, - 0x6d43, 0x16c2, - 0x6d44, 0x3914, - 0x6d45, 0x0c30, - 0x6d46, 0x087d, - 0x6d47, 0x088e, - 0x6d48, 0x16c3, - 0x6d49, 0x3915, - 0x6d4a, 0x1224, - 0x6d4b, 0x04a9, - 0x6d4c, 0x3916, - 0x6d4d, 0x16c9, - 0x6d4e, 0x0836, - 0x6d4f, 0x16cd, - 0x6d50, 0x3917, - 0x6d51, 0x0800, - 0x6d52, 0x16ce, - 0x6d53, 0x0b69, - 0x6d54, 0x16cf, - 0x6d55, 0x3918, - 0x6d59, 0x1184, - 0x6d5a, 0x0930, - 0x6d5b, 0x391c, - 0x6d5c, 0x16d8, - 0x6d5d, 0x391d, - 0x6d5e, 0x16d5, - 0x6d5f, 0x391e, - 0x6d60, 0x16d9, - 0x6d61, 0x391f, - 0x6d63, 0x16db, - 0x6d64, 0x3921, - 0x6d66, 0x0bf5, - 0x6d67, 0x3923, - 0x6d69, 0x077d, - 0x6d6a, 0x09b6, - 0x6d6b, 0x3925, - 0x6d6e, 0x069c, - 0x6d6f, 0x16d2, - 0x6d70, 0x3928, - 0x6d74, 0x10e4, - 0x6d75, 0x392c, - 0x6d77, 0x075a, - 0x6d78, 0x08cf, - 0x6d79, 0x23dc, - 0x6d7a, 0x392e, - 0x6d7c, 0x16da, - 0x6d7d, 0x3930, - 0x6d82, 0x0e70, - 0x6d83, 0x3935, - 0x6d85, 0x0b5c, - 0x6d86, 0x3937, - 0x6d87, 0x23db, - 0x6d88, 0x0f68, - 0x6d89, 0x0d1f, - 0x6d8a, 0x3938, - 0x6d8c, 0x10a4, - 0x6d8d, 0x393a, - 0x6d8e, 0x0f3e, - 0x6d8f, 0x393b, - 0x6d91, 0x16d1, - 0x6d92, 0x393d, - 0x6d93, 0x16d6, - 0x6d95, 0x0e3c, - 0x6d96, 0x393e, - 0x6d9b, 0x0e21, - 0x6d9c, 0x3943, - 0x6d9d, 0x09bf, - 0x6d9e, 0x16d3, - 0x6d9f, 0x09f9, - 0x6da0, 0x16d4, - 0x6da1, 0x0edf, - 0x6da2, 0x3944, - 0x6da3, 0x07d6, - 0x6da4, 0x05b4, - 0x6da5, 0x3945, - 0x6da6, 0x0cce, - 0x6da7, 0x0878, - 0x6da8, 0x1168, - 0x6da9, 0x0ce5, - 0x6daa, 0x069d, - 0x6dab, 0x16e8, - 0x6dac, 0x3946, - 0x6dae, 0x16ea, - 0x6daf, 0x0fed, - 0x6db0, 0x3948, - 0x6db2, 0x1041, - 0x6db3, 0x394a, - 0x6db5, 0x0764, - 0x6db6, 0x394c, - 0x6db8, 0x078b, - 0x6db9, 0x394e, - 0x6dbf, 0x16e1, - 0x6dc0, 0x05ce, - 0x6dc1, 0x3954, - 0x6dc4, 0x122a, - 0x6dc5, 0x16de, - 0x6dc6, 0x0f6a, - 0x6dc7, 0x16dd, - 0x6dc8, 0x3957, - 0x6dcb, 0x0a25, - 0x6dcc, 0x0e1d, - 0x6dcd, 0x395a, - 0x6dd1, 0x0d7e, - 0x6dd2, 0x395e, - 0x6dd6, 0x0b3a, - 0x6dd7, 0x3962, - 0x6dd8, 0x0e27, - 0x6dd9, 0x16e6, - 0x6dda, 0x3963, - 0x6ddd, 0x16e5, - 0x6dde, 0x16df, - 0x6ddf, 0x3966, - 0x6de0, 0x16e2, - 0x6de1, 0x058e, - 0x6de2, 0x3967, - 0x6de4, 0x10be, - 0x6de5, 0x3969, - 0x6de6, 0x16e4, - 0x6de7, 0x396a, - 0x6dea, 0x205e, - 0x6deb, 0x1080, - 0x6dec, 0x0566, - 0x6ded, 0x396d, - 0x6dee, 0x07c9, - 0x6def, 0x396e, - 0x6df1, 0x0d27, - 0x6df2, 0x3970, - 0x6df3, 0x0541, - 0x6df4, 0x3971, - 0x6df5, 0x2244, - 0x6df6, 0x23e2, - 0x6df7, 0x0801, - 0x6df8, 0x3972, - 0x6df9, 0x0ff6, - 0x6dfa, 0x20d4, - 0x6dfb, 0x0e40, - 0x6dfc, 0x1a21, - 0x6dfd, 0x3973, - 0x6e00, 0x3976, - 0x6e05, 0x0c62, - 0x6e06, 0x397b, - 0x6e0a, 0x10eb, - 0x6e0b, 0x397f, - 0x6e0c, 0x16e9, - 0x6e0d, 0x1232, - 0x6e0e, 0x16e0, - 0x6e0f, 0x3980, - 0x6e10, 0x0876, - 0x6e11, 0x16e3, - 0x6e12, 0x3981, - 0x6e14, 0x10cb, - 0x6e15, 0x3983, - 0x6e16, 0x16e7, - 0x6e17, 0x0d31, - 0x6e18, 0x3984, - 0x6e1a, 0x16dc, - 0x6e1b, 0x3986, - 0x6e1d, 0x10ca, - 0x6e1e, 0x3988, - 0x6e20, 0x0c7b, - 0x6e21, 0x0608, - 0x6e22, 0x398a, - 0x6e23, 0x113f, - 0x6e24, 0x047a, - 0x6e25, 0x16f5, - 0x6e26, 0x219f, - 0x6e27, 0x398b, - 0x6e29, 0x0ed1, - 0x6e2a, 0x398d, - 0x6e2b, 0x16eb, - 0x6e2c, 0x1e66, - 0x6e2d, 0x0ecb, - 0x6e2e, 0x398e, - 0x6e2f, 0x06d6, - 0x6e30, 0x398f, - 0x6e32, 0x16f4, - 0x6e33, 0x3991, - 0x6e34, 0x0957, - 0x6e35, 0x3992, - 0x6e38, 0x10b3, - 0x6e39, 0x3995, - 0x6e3a, 0x0af1, - 0x6e3b, 0x3996, - 0x6e3e, 0x1f63, - 0x6e3f, 0x3999, - 0x6e43, 0x0b89, - 0x6e44, 0x16f6, - 0x6e45, 0x399d, - 0x6e4d, 0x0e75, - 0x6e4e, 0x16ed, - 0x6e4f, 0x39a5, - 0x6e53, 0x16f2, - 0x6e55, 0x39a9, - 0x6e56, 0x07b5, - 0x6e57, 0x39aa, - 0x6e58, 0x0f53, - 0x6e59, 0x39ab, - 0x6e5b, 0x1160, - 0x6e5c, 0x39ad, - 0x6e5e, 0x23dd, - 0x6e5f, 0x16f0, - 0x6e60, 0x39af, - 0x6e6b, 0x16ee, - 0x6e6c, 0x39ba, - 0x6e6e, 0x16ec, - 0x6e6f, 0x216b, - 0x6e70, 0x39bc, - 0x6e7e, 0x0e96, - 0x6e7f, 0x0d41, - 0x6e80, 0x39ca, - 0x6e83, 0x098e, - 0x6e84, 0x39cd, - 0x6e85, 0x0877, - 0x6e86, 0x16f1, - 0x6e87, 0x39ce, - 0x6e89, 0x06c3, - 0x6e8a, 0x39d0, - 0x6e8f, 0x1705, - 0x6e90, 0x10f7, - 0x6e91, 0x39d5, - 0x6e96, 0x22b5, - 0x6e97, 0x39da, - 0x6e98, 0x16f9, - 0x6e99, 0x39db, - 0x6e9c, 0x0a38, - 0x6e9d, 0x1f26, - 0x6e9e, 0x39de, - 0x6e9f, 0x1707, - 0x6ea0, 0x39df, - 0x6ea2, 0x106e, - 0x6ea3, 0x39e1, - 0x6ea5, 0x16fd, - 0x6ea6, 0x39e3, - 0x6ea7, 0x16fe, - 0x6ea8, 0x39e4, - 0x6eaa, 0x0f17, - 0x6eab, 0x39e6, - 0x6eaf, 0x0dd2, - 0x6eb0, 0x39ea, - 0x6eb1, 0x16f8, - 0x6eb2, 0x16ef, - 0x6eb3, 0x39eb, - 0x6eb4, 0x1703, - 0x6eb5, 0x39ec, - 0x6eb6, 0x0cb7, - 0x6eb7, 0x1701, - 0x6eb8, 0x39ed, - 0x6eba, 0x0b4a, - 0x6ebb, 0x1700, - 0x6ebc, 0x39ef, - 0x6ebd, 0x16ff, - 0x6ebe, 0x39f0, - 0x6ec1, 0x0521, - 0x6ec2, 0x1706, - 0x6ec3, 0x39f3, - 0x6ec4, 0x1e63, - 0x6ec5, 0x2088, - 0x6ec6, 0x39f4, - 0x6ec7, 0x05c2, - 0x6ec8, 0x39f5, - 0x6ecb, 0x1229, - 0x6ecc, 0x1ebd, - 0x6ecd, 0x39f8, - 0x6ece, 0x2341, - 0x6ecf, 0x1704, - 0x6ed0, 0x39f9, - 0x6ed1, 0x07c1, - 0x6ed2, 0x39fa, - 0x6ed3, 0x122f, - 0x6ed4, 0x0e22, - 0x6ed5, 0x19a8, - 0x6ed6, 0x39fb, - 0x6ed7, 0x1702, - 0x6ed8, 0x39fc, - 0x6eda, 0x074f, - 0x6edb, 0x39fe, - 0x6ede, 0x11cc, - 0x6edf, 0x16f7, - 0x6ee0, 0x16fa, - 0x6ee1, 0x0aa1, - 0x6ee2, 0x16fc, - 0x6ee3, 0x3a01, - 0x6ee4, 0x0a72, - 0x6ee5, 0x09af, - 0x6ee6, 0x0a77, - 0x6ee7, 0x3a02, - 0x6ee8, 0x045e, - 0x6ee9, 0x0e05, - 0x6eea, 0x3a03, - 0x6eec, 0x1f4b, - 0x6eed, 0x3a05, - 0x6eef, 0x2292, - 0x6ef0, 0x3a07, - 0x6ef2, 0x2124, - 0x6ef3, 0x3a09, - 0x6ef4, 0x05af, - 0x6ef5, 0x3a0a, - 0x6ef7, 0x2048, - 0x6ef8, 0x23e0, - 0x6ef9, 0x170d, - 0x6efa, 0x3a0c, - 0x6eff, 0x2077, - 0x6f00, 0x3a11, - 0x6f01, 0x223a, - 0x6f02, 0x0bce, - 0x6f03, 0x3a12, - 0x6f06, 0x0c00, - 0x6f07, 0x3a15, - 0x6f09, 0x1713, - 0x6f0a, 0x3a17, - 0x6f0f, 0x0a50, - 0x6f10, 0x3a1c, - 0x6f13, 0x09d7, - 0x6f14, 0x1006, - 0x6f15, 0x170c, - 0x6f16, 0x3a1f, - 0x6f1a, 0x20b1, - 0x6f1b, 0x3a23, - 0x6f20, 0x0b11, - 0x6f21, 0x3a28, - 0x6f22, 0x1f41, - 0x6f23, 0x201c, - 0x6f24, 0x170b, - 0x6f25, 0x3a29, - 0x6f29, 0x1714, - 0x6f2a, 0x1712, - 0x6f2b, 0x0aa5, - 0x6f2c, 0x22b8, - 0x6f2d, 0x16fb, - 0x6f2e, 0x3a2d, - 0x6f2f, 0x170e, - 0x6f30, 0x3a2e, - 0x6f31, 0x0d95, - 0x6f32, 0x2276, - 0x6f33, 0x1165, - 0x6f34, 0x3a2f, - 0x6f36, 0x170f, - 0x6f37, 0x3a31, - 0x6f38, 0x1f9b, - 0x6f39, 0x3a32, - 0x6f3e, 0x1023, - 0x6f3f, 0x1f9f, - 0x6f40, 0x3a37, - 0x6f41, 0x25ca, - 0x6f42, 0x3a38, - 0x6f46, 0x1709, - 0x6f48, 0x3a3c, - 0x6f4b, 0x1710, - 0x6f4c, 0x3a3f, - 0x6f4d, 0x0eba, - 0x6f4e, 0x3a40, - 0x6f51, 0x20be, - 0x6f52, 0x3a43, - 0x6f54, 0x1fb4, - 0x6f55, 0x3a45, - 0x6f58, 0x0b8c, - 0x6f59, 0x23d7, - 0x6f5a, 0x3a48, - 0x6f5c, 0x0c2e, - 0x6f5d, 0x3a4a, - 0x6f5e, 0x0a61, - 0x6f5f, 0x3a4b, - 0x6f62, 0x1708, - 0x6f63, 0x3a4e, - 0x6f64, 0x2105, - 0x6f65, 0x3a4f, - 0x6f66, 0x0a13, - 0x6f67, 0x3a50, - 0x6f6d, 0x0e09, - 0x6f6e, 0x04d6, - 0x6f6f, 0x23e1, - 0x6f70, 0x1fec, - 0x6f71, 0x3a56, - 0x6f72, 0x1719, - 0x6f73, 0x3a57, - 0x6f74, 0x1711, - 0x6f75, 0x3a58, - 0x6f77, 0x23ea, - 0x6f78, 0x1718, - 0x6f79, 0x3a5a, - 0x6f7a, 0x171b, - 0x6f7b, 0x3a5b, - 0x6f7c, 0x171a, - 0x6f7d, 0x3a5c, - 0x6f7f, 0x23e3, - 0x6f80, 0x210e, - 0x6f81, 0x3a5e, - 0x6f84, 0x04f3, - 0x6f85, 0x3a61, - 0x6f86, 0x1fa6, - 0x6f87, 0x2004, - 0x6f88, 0x04df, - 0x6f89, 0x1715, - 0x6f8a, 0x3a62, - 0x6f8c, 0x1717, - 0x6f8d, 0x1716, - 0x6f8e, 0x0bad, - 0x6f8f, 0x3a64, - 0x6f97, 0x1f9d, - 0x6f98, 0x3a6c, - 0x6f9c, 0x09a8, - 0x6f9d, 0x3a70, - 0x6fa0, 0x23e5, - 0x6fa1, 0x112b, - 0x6fa2, 0x3a73, - 0x6fa4, 0x2264, - 0x6fa5, 0x3a75, - 0x6fa7, 0x171e, - 0x6fa8, 0x3a77, - 0x6fa9, 0x24e2, - 0x6faa, 0x3a78, - 0x6fae, 0x23de, - 0x6faf, 0x3a7c, - 0x6fb1, 0x1ec4, - 0x6fb2, 0x3a7e, - 0x6fb3, 0x03cf, - 0x6fb4, 0x3a7f, - 0x6fb6, 0x1720, - 0x6fb7, 0x3a81, - 0x6fb9, 0x171f, - 0x6fba, 0x3a83, - 0x6fc0, 0x0817, - 0x6fc1, 0x22b6, - 0x6fc2, 0x1721, - 0x6fc3, 0x20a9, - 0x6fc4, 0x3a89, - 0x6fc9, 0x171d, - 0x6fca, 0x3a8e, - 0x6fd1, 0x171c, - 0x6fd2, 0x045d, - 0x6fd3, 0x3a95, - 0x6fd5, 0x212b, - 0x6fd6, 0x3a97, - 0x6fd8, 0x20a5, - 0x6fd9, 0x3a99, - 0x6fdb, 0x268b, - 0x6fdc, 0x3a9b, - 0x6fde, 0x1724, - 0x6fdf, 0x1f76, - 0x6fe0, 0x1725, - 0x6fe1, 0x1722, - 0x6fe2, 0x3a9d, - 0x6fe4, 0x216d, - 0x6fe5, 0x3a9f, - 0x6feb, 0x2001, - 0x6fec, 0x3aa5, - 0x6fee, 0x1723, - 0x6fef, 0x1726, - 0x6ff0, 0x2191, - 0x6ff1, 0x1e50, - 0x6ff2, 0x3aa7, - 0x6ffa, 0x1f9c, - 0x6ffb, 0x3aaf, - 0x6ffc, 0x23da, - 0x6ffd, 0x3ab0, - 0x6ffe, 0x2053, - 0x6fff, 0x3ab1, - 0x7000, 0x3ab2, - 0x7005, 0x23e9, - 0x7006, 0x23e4, - 0x7007, 0x3ab7, - 0x7009, 0x21d5, - 0x700a, 0x3ab9, - 0x700b, 0x23e6, - 0x700c, 0x3aba, - 0x700f, 0x23df, - 0x7010, 0x3abd, - 0x7011, 0x0bf8, - 0x7012, 0x3abe, - 0x7015, 0x1e4f, - 0x7016, 0x3ac1, - 0x7018, 0x23d9, - 0x7019, 0x3ac3, - 0x701a, 0x1727, - 0x701b, 0x1729, - 0x701c, 0x3ac4, - 0x701d, 0x2014, - 0x701e, 0x3ac5, - 0x701f, 0x23ec, - 0x7020, 0x23eb, - 0x7021, 0x3ac6, - 0x7023, 0x1728, - 0x7024, 0x3ac8, - 0x7027, 0x23d8, - 0x7028, 0x23ee, - 0x7029, 0x3acb, - 0x7030, 0x268e, - 0x7031, 0x3ad2, - 0x7032, 0x23ed, - 0x7033, 0x3ad3, - 0x7035, 0x172b, - 0x7036, 0x3ad5, - 0x7039, 0x172a, - 0x703a, 0x3ad8, - 0x703e, 0x1ffa, - 0x703f, 0x3adc, - 0x7043, 0x23d6, - 0x7044, 0x23e8, - 0x7045, 0x3ae0, - 0x704c, 0x0739, - 0x704d, 0x3ae7, - 0x704f, 0x172c, - 0x7050, 0x3ae9, - 0x7051, 0x2106, - 0x7052, 0x3aea, - 0x7055, 0x200b, - 0x7056, 0x3aed, - 0x7058, 0x2166, - 0x7059, 0x3aef, - 0x705d, 0x23ef, - 0x705e, 0x172d, - 0x705f, 0x3af3, - 0x7063, 0x2189, - 0x7064, 0x2058, - 0x7065, 0x3af7, - 0x7067, 0x23e7, - 0x7068, 0x3af9, - 0x706b, 0x0805, - 0x706c, 0x19ef, - 0x706d, 0x0af5, - 0x706e, 0x3afc, - 0x706f, 0x05a7, - 0x7070, 0x07e7, - 0x7071, 0x3afd, - 0x7075, 0x0a32, - 0x7076, 0x1131, - 0x7077, 0x3b01, - 0x7078, 0x08f3, - 0x7079, 0x3b02, - 0x707c, 0x1223, - 0x707d, 0x3b05, - 0x707e, 0x1119, - 0x707f, 0x049a, - 0x7080, 0x19cc, - 0x7081, 0x3b06, - 0x7085, 0x1913, - 0x7086, 0x3b0a, - 0x7089, 0x0a56, - 0x708a, 0x0539, - 0x708b, 0x3b0d, - 0x708e, 0x1000, - 0x708f, 0x3b10, - 0x7092, 0x04d9, - 0x7093, 0x3b13, - 0x7094, 0x0c8d, - 0x7095, 0x0948, - 0x7096, 0x19ce, - 0x7097, 0x3b14, - 0x7099, 0x11ca, - 0x709a, 0x3b16, - 0x709c, 0x19cd, - 0x709d, 0x19cf, - 0x709e, 0x3b18, - 0x70ab, 0x19d3, - 0x70ac, 0x0915, - 0x70ad, 0x0e12, - 0x70ae, 0x0b9b, - 0x70af, 0x08eb, - 0x70b0, 0x3b25, - 0x70b1, 0x19d4, - 0x70b2, 0x3b26, - 0x70b3, 0x0467, - 0x70b4, 0x3b27, - 0x70b7, 0x19d2, - 0x70b8, 0x1149, - 0x70b9, 0x05c4, - 0x70ba, 0x3b2a, - 0x70bb, 0x19d0, - 0x70bc, 0x09ff, - 0x70bd, 0x0508, - 0x70be, 0x3b2b, - 0x70c0, 0x19d1, - 0x70c1, 0x0dad, - 0x70c2, 0x09ae, - 0x70c3, 0x0e51, - 0x70c4, 0x3b2d, - 0x70c8, 0x0a1b, - 0x70c9, 0x3b31, - 0x70ca, 0x19d6, - 0x70cb, 0x3b32, - 0x70cf, 0x21a3, - 0x70d0, 0x3b36, - 0x70d8, 0x079d, - 0x70d9, 0x09be, - 0x70da, 0x3b3e, - 0x70db, 0x11f1, - 0x70dc, 0x3b3f, - 0x70df, 0x0ff5, - 0x70e0, 0x3b42, - 0x70e4, 0x094b, - 0x70e5, 0x3b46, - 0x70e6, 0x0650, - 0x70e7, 0x0d0e, - 0x70e8, 0x19d5, - 0x70e9, 0x07f7, - 0x70ea, 0x3b47, - 0x70eb, 0x0e1f, - 0x70ec, 0x08ce, - 0x70ed, 0x0ca3, - 0x70ee, 0x3b48, - 0x70ef, 0x0f16, - 0x70f0, 0x3b49, - 0x70f4, 0x217a, - 0x70f5, 0x3b4d, - 0x70f7, 0x0e9a, - 0x70f8, 0x3b4f, - 0x70f9, 0x0bac, - 0x70fa, 0x3b50, - 0x70fd, 0x0686, - 0x70fe, 0x3b53, - 0x7100, 0x3b55, - 0x7109, 0x0ff2, - 0x710a, 0x076f, - 0x710b, 0x3b5e, - 0x7110, 0x19d7, - 0x7111, 0x3b63, - 0x7113, 0x19d8, - 0x7114, 0x3b65, - 0x7115, 0x07d5, - 0x7116, 0x19d9, - 0x7117, 0x3b66, - 0x7118, 0x19f0, - 0x7119, 0x0423, - 0x711a, 0x0676, - 0x711b, 0x3b67, - 0x7121, 0x21a5, - 0x7122, 0x3b6d, - 0x7126, 0x088a, - 0x7127, 0x3b71, - 0x712f, 0x19da, - 0x7130, 0x100f, - 0x7131, 0x19db, - 0x7132, 0x3b79, - 0x7136, 0x0c96, - 0x7137, 0x3b7d, - 0x7145, 0x19df, - 0x7146, 0x3b8b, - 0x7149, 0x2022, - 0x714a, 0x19e1, - 0x714b, 0x3b8e, - 0x714c, 0x07e2, - 0x714d, 0x3b8f, - 0x714e, 0x0858, - 0x714f, 0x3b90, - 0x7152, 0x24d6, - 0x7153, 0x3b93, - 0x715c, 0x19dd, - 0x715d, 0x3b9c, - 0x715e, 0x0cf0, - 0x715f, 0x3b9d, - 0x7162, 0x233a, - 0x7163, 0x3ba0, - 0x7164, 0x0abf, - 0x7165, 0x3ba1, - 0x7166, 0x19f1, - 0x7167, 0x1176, - 0x7168, 0x19de, - 0x7169, 0x1eee, - 0x716a, 0x3ba2, - 0x716c, 0x24d5, - 0x716d, 0x3ba4, - 0x716e, 0x11f2, - 0x716f, 0x3ba5, - 0x7172, 0x19e0, - 0x7173, 0x19dc, - 0x7174, 0x3ba8, - 0x7178, 0x19e2, - 0x7179, 0x3bac, - 0x717a, 0x19e3, - 0x717b, 0x3bad, - 0x717d, 0x0cf8, - 0x717e, 0x3baf, - 0x7184, 0x0f15, - 0x7185, 0x3bb5, - 0x718a, 0x0fa7, - 0x718b, 0x3bba, - 0x718f, 0x0fd5, - 0x7190, 0x3bbe, - 0x7192, 0x2228, - 0x7193, 0x3bc0, - 0x7194, 0x0cb6, - 0x7195, 0x3bc1, - 0x7197, 0x24d7, - 0x7198, 0x19e4, - 0x7199, 0x0f04, - 0x719a, 0x3bc3, - 0x719f, 0x0d83, - 0x71a0, 0x19e8, - 0x71a1, 0x3bc8, - 0x71a8, 0x19e7, - 0x71a9, 0x3bcf, - 0x71ac, 0x03c9, - 0x71ad, 0x3bd2, - 0x71b1, 0x20fc, - 0x71b2, 0x3bd6, - 0x71b3, 0x19e5, - 0x71b4, 0x3bd7, - 0x71b5, 0x19e6, - 0x71b6, 0x3bd8, - 0x71b9, 0x19f2, - 0x71ba, 0x3bdb, - 0x71be, 0x1e87, - 0x71bf, 0x3bdf, - 0x71c1, 0x24d8, - 0x71c2, 0x3be1, - 0x71c3, 0x0c97, - 0x71c4, 0x3be2, - 0x71c8, 0x1eba, - 0x71c9, 0x3be6, - 0x71ce, 0x0a10, - 0x71cf, 0x3beb, - 0x71d2, 0x2119, - 0x71d3, 0x3bee, - 0x71d4, 0x19ea, - 0x71d5, 0x1009, - 0x71d6, 0x3bef, - 0x71d9, 0x216c, - 0x71da, 0x3bf2, - 0x71dc, 0x24d9, - 0x71dd, 0x3bf4, - 0x71df, 0x2227, - 0x71e0, 0x19e9, - 0x71e1, 0x3bf6, - 0x71e5, 0x1132, - 0x71e6, 0x1e5f, - 0x71e7, 0x19eb, - 0x71e8, 0x3bfa, - 0x71ed, 0x229f, - 0x71ee, 0x1396, - 0x71ef, 0x3bff, - 0x71f4, 0x1f5d, - 0x71f5, 0x3c04, - 0x71f9, 0x19ec, - 0x71fa, 0x3c08, - 0x71fc, 0x1fbc, - 0x71fd, 0x3c0a, - 0x71fe, 0x24da, - 0x71ff, 0x3c0b, - 0x7200, 0x3c0c, - 0x7206, 0x0415, - 0x7207, 0x3c12, - 0x720d, 0x2149, - 0x720e, 0x3c18, - 0x7210, 0x2046, - 0x7211, 0x3c1a, - 0x721b, 0x2000, - 0x721c, 0x3c24, - 0x721d, 0x19ed, - 0x721e, 0x3c25, - 0x7228, 0x19ee, - 0x7229, 0x3c2f, - 0x722a, 0x1203, - 0x722b, 0x3c30, - 0x722c, 0x0b81, - 0x722d, 0x3c31, - 0x7230, 0x196c, - 0x7231, 0x03b9, - 0x7232, 0x2190, - 0x7233, 0x3c34, - 0x7235, 0x0923, - 0x7236, 0x06b3, - 0x7237, 0x1036, - 0x7238, 0x03e1, - 0x7239, 0x05da, - 0x723a, 0x2208, - 0x723b, 0x1269, - 0x723c, 0x3c36, - 0x723d, 0x0da1, - 0x723e, 0x1ee6, - 0x723f, 0x169d, - 0x7240, 0x3c37, - 0x7247, 0x0bcb, - 0x7248, 0x03f1, - 0x7249, 0x3c3e, - 0x724c, 0x0b87, - 0x724d, 0x1969, - 0x724e, 0x3c41, - 0x7252, 0x196a, - 0x7253, 0x3c45, - 0x7256, 0x196b, - 0x7257, 0x3c48, - 0x7258, 0x24c3, - 0x7259, 0x0fe9, - 0x725a, 0x3c49, - 0x725b, 0x0b64, - 0x725c, 0x3c4a, - 0x725d, 0x1944, - 0x725e, 0x3c4b, - 0x725f, 0x0b15, - 0x7260, 0x3c4c, - 0x7261, 0x0b18, - 0x7262, 0x09b9, - 0x7263, 0x3c4d, - 0x7266, 0x1945, - 0x7267, 0x0b24, - 0x7268, 0x3c50, - 0x7269, 0x0efe, - 0x726a, 0x3c51, - 0x726e, 0x1942, - 0x726f, 0x1946, - 0x7270, 0x3c55, - 0x7272, 0x0d35, - 0x7273, 0x3c57, - 0x7275, 0x0c20, - 0x7276, 0x3c59, - 0x7279, 0x0e2b, - 0x727a, 0x0f0d, - 0x727b, 0x3c5c, - 0x727d, 0x20cc, - 0x727e, 0x1947, - 0x7280, 0x0f19, - 0x7281, 0x09d2, - 0x7282, 0x3c5e, - 0x7284, 0x1949, - 0x7285, 0x3c60, - 0x728a, 0x05fe, - 0x728b, 0x194a, - 0x728c, 0x3c65, - 0x728d, 0x194b, - 0x728e, 0x3c66, - 0x728f, 0x194c, - 0x7290, 0x3c67, - 0x7292, 0x194d, - 0x7293, 0x3c69, - 0x7296, 0x2340, - 0x7297, 0x3c6c, - 0x729f, 0x1943, - 0x72a0, 0x3c74, - 0x72a2, 0x1ed1, - 0x72a3, 0x3c76, - 0x72a7, 0x21ac, - 0x72a8, 0x3c7a, - 0x72ac, 0x0c89, - 0x72ad, 0x15ef, - 0x72ae, 0x3c7e, - 0x72af, 0x0655, - 0x72b0, 0x15f0, - 0x72b1, 0x3c7f, - 0x72b4, 0x15f1, - 0x72b5, 0x3c82, - 0x72b6, 0x1211, - 0x72b7, 0x15f2, - 0x72b9, 0x10b1, - 0x72ba, 0x3c83, - 0x72c0, 0x22af, - 0x72c1, 0x15f5, - 0x72c2, 0x097e, - 0x72c3, 0x15f4, - 0x72c4, 0x05b3, - 0x72c5, 0x3c89, - 0x72c8, 0x0420, - 0x72c9, 0x3c8c, - 0x72cd, 0x15f7, - 0x72ce, 0x15f6, - 0x72cf, 0x3c90, - 0x72d0, 0x07b3, - 0x72d1, 0x3c91, - 0x72d2, 0x15f8, - 0x72d3, 0x3c92, - 0x72d7, 0x0710, - 0x72d8, 0x3c96, - 0x72d9, 0x0900, - 0x72da, 0x3c97, - 0x72de, 0x0b5f, - 0x72df, 0x3c9b, - 0x72e0, 0x0794, - 0x72e1, 0x0897, - 0x72e2, 0x3c9c, - 0x72e8, 0x15f9, - 0x72e9, 0x15fb, - 0x72ea, 0x3ca2, - 0x72ec, 0x05ff, - 0x72ed, 0x0f2e, - 0x72ee, 0x0d3f, - 0x72ef, 0x15fa, - 0x72f0, 0x1199, - 0x72f1, 0x10e1, - 0x72f2, 0x15fc, - 0x72f3, 0x1600, - 0x72f4, 0x15fd, - 0x72f5, 0x3ca4, - 0x72f7, 0x15fe, - 0x72f8, 0x09d5, - 0x72f9, 0x21b6, - 0x72fa, 0x1602, - 0x72fc, 0x09b2, - 0x72fd, 0x1e3d, - 0x72fe, 0x3ca6, - 0x7300, 0x3ca8, - 0x7301, 0x15ff, - 0x7302, 0x3ca9, - 0x7303, 0x1601, - 0x7304, 0x3caa, - 0x730a, 0x1607, - 0x730b, 0x3cb0, - 0x730e, 0x0a1d, - 0x730f, 0x3cb3, - 0x7313, 0x1605, - 0x7314, 0x3cb7, - 0x7315, 0x160a, - 0x7316, 0x04c5, - 0x7317, 0x1604, - 0x7318, 0x3cb8, - 0x731b, 0x0ad2, - 0x731c, 0x0489, - 0x731d, 0x1609, - 0x731e, 0x1608, - 0x731f, 0x3cbb, - 0x7321, 0x1606, - 0x7322, 0x160b, - 0x7323, 0x3cbd, - 0x7325, 0x160d, - 0x7326, 0x3cbf, - 0x7329, 0x0f94, - 0x732a, 0x11ec, - 0x732b, 0x0aad, - 0x732c, 0x160e, - 0x732d, 0x3cc2, - 0x732e, 0x0f44, - 0x732f, 0x3cc3, - 0x7331, 0x1610, - 0x7332, 0x3cc5, - 0x7334, 0x07a6, - 0x7335, 0x3cc7, - 0x7336, 0x2235, - 0x7337, 0x18d4, - 0x7338, 0x160f, - 0x7339, 0x160c, - 0x733a, 0x3cc8, - 0x733b, 0x2397, - 0x733c, 0x3cc9, - 0x733e, 0x07c0, - 0x733f, 0x10f6, - 0x7340, 0x3ccb, - 0x7341, 0x2395, - 0x7342, 0x3ccc, - 0x7344, 0x223f, - 0x7345, 0x212a, - 0x7346, 0x3cce, - 0x734d, 0x1612, - 0x734e, 0x3cd5, - 0x7350, 0x1611, - 0x7351, 0x3cd7, - 0x7352, 0x18d5, - 0x7353, 0x3cd8, - 0x7357, 0x1613, - 0x7358, 0x3cdc, - 0x7360, 0x1614, - 0x7361, 0x3ce4, - 0x7368, 0x1ed2, - 0x7369, 0x3ceb, - 0x736a, 0x2396, - 0x736b, 0x2398, - 0x736c, 0x1615, - 0x736d, 0x0df4, - 0x736e, 0x3cec, - 0x736f, 0x1616, - 0x7370, 0x20a2, - 0x7371, 0x3ced, - 0x7372, 0x1f64, - 0x7373, 0x3cee, - 0x7375, 0x202b, - 0x7376, 0x3cf0, - 0x7377, 0x2394, - 0x7378, 0x2139, - 0x7379, 0x3cf1, - 0x737a, 0x215f, - 0x737b, 0x21c1, - 0x737c, 0x239a, - 0x737d, 0x3cf2, - 0x737e, 0x1617, - 0x737f, 0x3cf3, - 0x7380, 0x2399, - 0x7381, 0x3cf4, - 0x7384, 0x0fc9, - 0x7385, 0x3cf7, - 0x7387, 0x0a71, - 0x7388, 0x3cf9, - 0x7389, 0x10d6, - 0x738a, 0x3cfa, - 0x738b, 0x0ea6, - 0x738c, 0x3cfb, - 0x738e, 0x1818, - 0x738f, 0x3cfd, - 0x7391, 0x1819, - 0x7392, 0x3cff, - 0x7396, 0x08f0, - 0x7397, 0x3d03, - 0x739b, 0x0a91, - 0x739c, 0x3d07, - 0x739f, 0x181c, - 0x73a0, 0x3d0a, - 0x73a2, 0x181b, - 0x73a3, 0x3d0c, - 0x73a9, 0x0e97, - 0x73aa, 0x3d12, - 0x73ab, 0x0aba, - 0x73ac, 0x3d13, - 0x73ae, 0x181a, - 0x73af, 0x07cc, - 0x73b0, 0x0f43, - 0x73b1, 0x3d15, - 0x73b2, 0x0a2a, - 0x73b3, 0x1821, - 0x73b4, 0x3d16, - 0x73b7, 0x1820, - 0x73b8, 0x3d19, - 0x73ba, 0x182c, - 0x73bb, 0x046a, - 0x73bc, 0x3d1b, - 0x73c0, 0x1822, - 0x73c1, 0x3d1f, - 0x73c2, 0x181e, - 0x73c3, 0x3d20, - 0x73c8, 0x1824, - 0x73c9, 0x1823, - 0x73ca, 0x0cf3, - 0x73cb, 0x3d25, - 0x73cd, 0x1185, - 0x73ce, 0x3d27, - 0x73cf, 0x181d, - 0x73d0, 0x0646, - 0x73d1, 0x181f, - 0x73d2, 0x3d28, - 0x73d9, 0x1826, - 0x73da, 0x3d2f, - 0x73de, 0x182b, - 0x73df, 0x3d33, - 0x73e0, 0x11e8, - 0x73e1, 0x3d34, - 0x73e5, 0x1825, - 0x73e6, 0x3d38, - 0x73e7, 0x182a, - 0x73e8, 0x3d39, - 0x73e9, 0x1829, - 0x73ea, 0x3d3a, - 0x73ed, 0x03eb, - 0x73ee, 0x3d3d, - 0x73f2, 0x182d, - 0x73f3, 0x3d41, - 0x73fe, 0x21c0, - 0x73ff, 0x3d4c, - 0x7400, 0x3d4d, - 0x7403, 0x0c6f, - 0x7404, 0x3d50, - 0x7405, 0x09b0, - 0x7406, 0x09d8, - 0x7407, 0x3d51, - 0x7409, 0x0a39, - 0x740a, 0x1828, - 0x740b, 0x3d53, - 0x740f, 0x182e, - 0x7410, 0x0deb, - 0x7411, 0x3d57, - 0x741a, 0x1838, - 0x741b, 0x1837, - 0x741c, 0x3d60, - 0x7422, 0x121e, - 0x7423, 0x3d66, - 0x7425, 0x1832, - 0x7426, 0x1831, - 0x7427, 0x3d68, - 0x7428, 0x1833, - 0x7429, 0x3d69, - 0x742a, 0x182f, - 0x742b, 0x3d6a, - 0x742c, 0x1836, - 0x742d, 0x3d6b, - 0x742e, 0x1835, - 0x742f, 0x3d6c, - 0x7430, 0x1834, - 0x7431, 0x3d6d, - 0x7433, 0x0a1e, - 0x7434, 0x0c56, - 0x7435, 0x0bbe, - 0x7436, 0x0b84, - 0x7437, 0x3d6f, - 0x743c, 0x0c6a, - 0x743d, 0x3d74, - 0x743f, 0x2460, - 0x7440, 0x3d76, - 0x7441, 0x1839, - 0x7442, 0x3d77, - 0x744b, 0x245c, - 0x744c, 0x3d80, - 0x7455, 0x183c, - 0x7456, 0x3d89, - 0x7457, 0x183b, - 0x7458, 0x3d8a, - 0x7459, 0x183d, - 0x745a, 0x07ae, - 0x745b, 0x1830, - 0x745c, 0x183a, - 0x745d, 0x3d8b, - 0x745e, 0x0ccb, - 0x745f, 0x0ce3, - 0x7460, 0x3d8c, - 0x7463, 0x215d, - 0x7464, 0x3d8f, - 0x7469, 0x2225, - 0x746a, 0x206a, - 0x746b, 0x3d94, - 0x746d, 0x183f, - 0x746e, 0x3d96, - 0x7470, 0x073e, - 0x7471, 0x3d98, - 0x7476, 0x1027, - 0x7477, 0x183e, - 0x7478, 0x3d9d, - 0x747e, 0x1840, - 0x747f, 0x3da3, - 0x7480, 0x1843, - 0x7482, 0x3da4, - 0x7483, 0x09f0, - 0x7484, 0x3da5, - 0x7487, 0x1845, - 0x7488, 0x3da8, - 0x7489, 0x2461, - 0x748a, 0x3da9, - 0x748b, 0x1846, - 0x748c, 0x3daa, - 0x748e, 0x1842, - 0x748f, 0x3dac, - 0x7490, 0x184a, - 0x7491, 0x3dad, - 0x749c, 0x1841, - 0x749d, 0x3db8, - 0x749e, 0x1847, - 0x749f, 0x3db9, - 0x74a3, 0x245b, - 0x74a4, 0x3dbd, - 0x74a6, 0x2462, - 0x74a7, 0x184b, - 0x74a8, 0x1848, - 0x74aa, 0x3dbf, - 0x74b0, 0x1f54, - 0x74b1, 0x3dc5, - 0x74ba, 0x184d, - 0x74bb, 0x3dce, - 0x74bd, 0x245f, - 0x74be, 0x3dd0, - 0x74ca, 0x20ec, - 0x74cb, 0x3ddc, - 0x74cf, 0x245d, - 0x74d0, 0x3de0, - 0x74d2, 0x184c, - 0x74d3, 0x3de2, - 0x74d4, 0x2463, - 0x74d5, 0x3de3, - 0x74da, 0x2464, - 0x74db, 0x3de8, - 0x74dc, 0x0728, - 0x74dd, 0x3de9, - 0x74de, 0x1b32, - 0x74df, 0x3dea, - 0x74e0, 0x1b33, - 0x74e1, 0x3deb, - 0x74e2, 0x0bcf, - 0x74e3, 0x03f5, - 0x74e4, 0x0c9a, - 0x74e5, 0x3dec, - 0x74e6, 0x0e90, - 0x74e7, 0x3ded, - 0x74ee, 0x0edc, - 0x74ef, 0x1903, - 0x74f0, 0x3df4, - 0x74f4, 0x1904, - 0x74f5, 0x3df8, - 0x74f6, 0x0bde, - 0x74f7, 0x054c, - 0x74f8, 0x3df9, - 0x74ff, 0x1905, - 0x7500, 0x3e00, - 0x7504, 0x1188, - 0x7505, 0x3e04, - 0x750c, 0x24a5, - 0x750d, 0x1485, - 0x750e, 0x3e0b, - 0x750f, 0x1906, - 0x7510, 0x3e0c, - 0x7511, 0x1907, - 0x7512, 0x3e0d, - 0x7513, 0x1908, - 0x7514, 0x3e0e, - 0x7518, 0x06c5, - 0x7519, 0x14f8, - 0x751a, 0x0d2e, - 0x751b, 0x3e12, - 0x751c, 0x0e43, - 0x751d, 0x3e13, - 0x751f, 0x0d33, - 0x7520, 0x3e15, - 0x7523, 0x1e70, - 0x7524, 0x3e18, - 0x7525, 0x0d34, - 0x7526, 0x3e19, - 0x7528, 0x10a8, - 0x7529, 0x0d9b, - 0x752a, 0x3e1b, - 0x752b, 0x06a1, - 0x752c, 0x1b34, - 0x752d, 0x042b, - 0x752e, 0x3e1c, - 0x752f, 0x1734, - 0x7530, 0x0e42, - 0x7531, 0x10ae, - 0x7532, 0x084a, - 0x7533, 0x0d23, - 0x7534, 0x3e1d, - 0x7535, 0x05c8, - 0x7536, 0x3e1e, - 0x7537, 0x0b33, - 0x7538, 0x05ca, - 0x7539, 0x3e1f, - 0x753a, 0x1a78, - 0x753b, 0x07c2, - 0x753c, 0x3e20, - 0x753e, 0x1816, - 0x753f, 0x3e22, - 0x7540, 0x1a79, - 0x7541, 0x3e23, - 0x7545, 0x04ce, - 0x7546, 0x3e27, - 0x7548, 0x1a7c, - 0x7549, 0x3e29, - 0x754b, 0x1a7b, - 0x754c, 0x08b8, - 0x754d, 0x3e2b, - 0x754e, 0x1a7a, - 0x754f, 0x0ec6, - 0x7550, 0x3e2c, - 0x7554, 0x0b90, - 0x7555, 0x3e30, - 0x7559, 0x0a3d, - 0x755a, 0x139e, - 0x755b, 0x1a7d, - 0x755c, 0x0fbe, - 0x755d, 0x208f, - 0x755e, 0x3e34, - 0x7562, 0x1e42, - 0x7563, 0x3e38, - 0x7565, 0x0a7b, - 0x7566, 0x0c07, - 0x7567, 0x3e3a, - 0x756a, 0x0649, - 0x756b, 0x1f4e, - 0x756c, 0x3e3d, - 0x7572, 0x1a7e, - 0x7573, 0x3e43, - 0x7574, 0x0510, - 0x7575, 0x3e44, - 0x7576, 0x1eb1, - 0x7577, 0x3e45, - 0x7578, 0x0810, - 0x7579, 0x1a7f, - 0x757a, 0x3e46, - 0x757f, 0x1814, - 0x7580, 0x3e4b, - 0x7583, 0x1a80, - 0x7584, 0x3e4e, - 0x7586, 0x087f, - 0x7587, 0x1e8b, - 0x7588, 0x3e50, - 0x758b, 0x1bc6, - 0x758c, 0x3e53, - 0x758f, 0x0d7f, - 0x7590, 0x3e56, - 0x7591, 0x1050, - 0x7592, 0x1b60, - 0x7593, 0x3e57, - 0x7594, 0x1b61, - 0x7595, 0x3e58, - 0x7596, 0x1b62, - 0x7597, 0x0a0f, - 0x7598, 0x3e59, - 0x7599, 0x06e8, - 0x759a, 0x08fd, - 0x759b, 0x3e5a, - 0x759d, 0x1b64, - 0x759e, 0x3e5c, - 0x759f, 0x0b72, - 0x75a0, 0x1b63, - 0x75a1, 0x101a, - 0x75a2, 0x3e5d, - 0x75a3, 0x1b66, - 0x75a4, 0x03d7, - 0x75a5, 0x08bb, - 0x75a6, 0x3e5e, - 0x75ab, 0x1066, - 0x75ac, 0x1b65, - 0x75ad, 0x3e63, - 0x75ae, 0x0532, - 0x75af, 0x0685, - 0x75b0, 0x1b6c, - 0x75b1, 0x1b6b, - 0x75b2, 0x0bc2, - 0x75b3, 0x1b67, - 0x75b5, 0x0546, - 0x75b6, 0x3e64, - 0x75b8, 0x1b69, - 0x75b9, 0x118f, - 0x75ba, 0x3e66, - 0x75bc, 0x0e2e, - 0x75bd, 0x0901, - 0x75be, 0x0825, - 0x75bf, 0x3e68, - 0x75c2, 0x1b6e, - 0x75c3, 0x1b6d, - 0x75c4, 0x1b6a, - 0x75c5, 0x0468, - 0x75c6, 0x3e6b, - 0x75c7, 0x11a1, - 0x75c8, 0x109d, - 0x75c9, 0x08e6, - 0x75ca, 0x0c87, - 0x75cb, 0x3e6c, - 0x75cd, 0x1b70, - 0x75ce, 0x3e6e, - 0x75d2, 0x1020, - 0x75d3, 0x3e72, - 0x75d4, 0x11cb, - 0x75d5, 0x0792, - 0x75d6, 0x1b6f, - 0x75d7, 0x3e73, - 0x75d8, 0x05fa, - 0x75d9, 0x1fc6, - 0x75da, 0x3e74, - 0x75db, 0x0e65, - 0x75dc, 0x3e75, - 0x75de, 0x0bc5, - 0x75df, 0x3e77, - 0x75e2, 0x09ea, - 0x75e3, 0x1b71, - 0x75e4, 0x1b74, - 0x75e5, 0x3e7a, - 0x75e6, 0x1b73, - 0x75e7, 0x1b76, - 0x75e8, 0x1b72, - 0x75e9, 0x3e7b, - 0x75ea, 0x07d3, - 0x75eb, 0x1b75, - 0x75ec, 0x3e7c, - 0x75f0, 0x0e08, - 0x75f1, 0x1b78, - 0x75f2, 0x3e80, - 0x75f4, 0x04fa, - 0x75f5, 0x3e82, - 0x75f9, 0x043d, - 0x75fa, 0x3e86, - 0x75fc, 0x1b79, - 0x75fd, 0x3e88, - 0x75ff, 0x1b7a, - 0x7600, 0x1b7c, - 0x7601, 0x0564, - 0x7602, 0x25ae, - 0x7603, 0x1b77, - 0x7604, 0x3e8a, - 0x7605, 0x1b7d, - 0x7606, 0x3e8b, - 0x760a, 0x1b80, - 0x760b, 0x1f01, - 0x760c, 0x1b7e, - 0x760d, 0x2200, - 0x760e, 0x3e8f, - 0x7610, 0x1b7b, - 0x7611, 0x3e91, - 0x7615, 0x1b83, - 0x7616, 0x3e95, - 0x7617, 0x1b7f, - 0x7618, 0x1b82, - 0x7619, 0x1b84, - 0x761a, 0x3e96, - 0x761b, 0x1b85, - 0x761c, 0x3e97, - 0x761e, 0x25b2, - 0x761f, 0x0ed0, - 0x7620, 0x1b88, - 0x7621, 0x1e97, - 0x7622, 0x1b87, - 0x7623, 0x3e99, - 0x7624, 0x0a3f, - 0x7625, 0x1b81, - 0x7626, 0x0d74, - 0x7627, 0x20ab, - 0x7628, 0x3e9a, - 0x7629, 0x0574, - 0x762a, 0x045a, - 0x762b, 0x0e04, - 0x762c, 0x3e9b, - 0x762d, 0x1b8a, - 0x762e, 0x3e9c, - 0x7630, 0x1b8b, - 0x7631, 0x3e9e, - 0x7633, 0x1b90, - 0x7634, 0x116f, - 0x7635, 0x1b8d, - 0x7636, 0x3ea0, - 0x7638, 0x0c8e, - 0x7639, 0x3ea2, - 0x763b, 0x25b3, - 0x763c, 0x1b86, - 0x763d, 0x3ea4, - 0x763e, 0x1b8f, - 0x763f, 0x1b8c, - 0x7640, 0x1b89, - 0x7641, 0x3ea5, - 0x7642, 0x2028, - 0x7643, 0x1b8e, - 0x7644, 0x3ea6, - 0x7646, 0x25af, - 0x7648, 0x3ea8, - 0x7649, 0x25b1, - 0x764a, 0x3ea9, - 0x764c, 0x03b4, - 0x764d, 0x1b91, - 0x764e, 0x3eab, - 0x7654, 0x1b93, - 0x7655, 0x3eb1, - 0x7656, 0x1b95, - 0x7657, 0x3eb2, - 0x7658, 0x25ac, - 0x7659, 0x3eb3, - 0x765c, 0x1b94, - 0x765d, 0x3eb6, - 0x765e, 0x1b92, - 0x765f, 0x1e4e, - 0x7660, 0x3eb7, - 0x7662, 0x2202, - 0x7663, 0x0fcb, - 0x7664, 0x25ab, - 0x7665, 0x2286, - 0x7666, 0x3eb9, - 0x7667, 0x25ad, - 0x7668, 0x3eba, - 0x7669, 0x25b6, - 0x766a, 0x3ebb, - 0x766b, 0x1b96, - 0x766c, 0x21e3, - 0x766d, 0x25b4, - 0x766f, 0x1b97, - 0x7670, 0x222f, - 0x7671, 0x2165, - 0x7672, 0x25b7, - 0x7673, 0x3ebc, - 0x7678, 0x0748, - 0x7679, 0x3ec1, - 0x767b, 0x05a8, - 0x767c, 0x1ee9, - 0x767d, 0x03e2, - 0x767e, 0x03e4, - 0x767f, 0x3ec3, - 0x7682, 0x1130, - 0x7683, 0x3ec6, - 0x7684, 0x05a5, - 0x7685, 0x3ec7, - 0x7686, 0x08a5, - 0x7687, 0x07df, - 0x7688, 0x1b2d, - 0x7689, 0x3ec8, - 0x768b, 0x06d9, - 0x768c, 0x3eca, - 0x768e, 0x1b2e, - 0x768f, 0x3ecc, - 0x7691, 0x03b3, - 0x7692, 0x3ece, - 0x7693, 0x1b2f, - 0x7694, 0x3ecf, - 0x7696, 0x0e9f, - 0x7697, 0x3ed1, - 0x7699, 0x1b30, - 0x769a, 0x1e25, - 0x769b, 0x3ed3, - 0x76a4, 0x1b31, - 0x76a5, 0x3edc, - 0x76ae, 0x0bc3, - 0x76af, 0x3ee5, - 0x76b1, 0x11e4, - 0x76b2, 0x1bc8, - 0x76b3, 0x3ee7, - 0x76b4, 0x1bc9, - 0x76b5, 0x3ee8, - 0x76b8, 0x25c0, - 0x76b9, 0x3eeb, - 0x76ba, 0x229a, - 0x76bb, 0x3eec, - 0x76bf, 0x0af8, - 0x76c0, 0x3ef0, - 0x76c2, 0x10c0, - 0x76c3, 0x3ef2, - 0x76c5, 0x11d0, - 0x76c6, 0x0ba9, - 0x76c7, 0x3ef4, - 0x76c8, 0x1094, - 0x76c9, 0x3ef5, - 0x76ca, 0x106d, - 0x76cb, 0x3ef6, - 0x76cd, 0x1a8b, - 0x76ce, 0x03c6, - 0x76cf, 0x1156, - 0x76d0, 0x0ff7, - 0x76d1, 0x0853, - 0x76d2, 0x0787, - 0x76d3, 0x3ef8, - 0x76d4, 0x0985, - 0x76d5, 0x3ef9, - 0x76d6, 0x06c2, - 0x76d7, 0x05a2, - 0x76d8, 0x0b8d, - 0x76d9, 0x3efa, - 0x76db, 0x0d39, - 0x76dc, 0x3efc, - 0x76de, 0x226e, - 0x76df, 0x0ad0, - 0x76e0, 0x3efe, - 0x76e1, 0x1fbd, - 0x76e2, 0x3eff, - 0x76e3, 0x1f84, - 0x76e4, 0x20b2, - 0x76e5, 0x1a8c, - 0x76e6, 0x3f00, - 0x76e7, 0x2043, - 0x76e8, 0x3f01, - 0x76ee, 0x0b22, - 0x76ef, 0x05e1, - 0x76f0, 0x3f07, - 0x76f1, 0x1a58, - 0x76f2, 0x0aa9, - 0x76f3, 0x3f08, - 0x76f4, 0x11b0, - 0x76f5, 0x3f09, - 0x76f8, 0x0f4d, - 0x76f9, 0x1a5b, - 0x76fa, 0x3f0c, - 0x76fc, 0x0b8f, - 0x76fd, 0x3f0e, - 0x76fe, 0x061b, - 0x76ff, 0x3f0f, - 0x7700, 0x3f10, - 0x7701, 0x0d38, - 0x7702, 0x3f11, - 0x7704, 0x1a59, - 0x7705, 0x3f13, - 0x7707, 0x1a5c, - 0x7709, 0x0ac1, - 0x770a, 0x3f15, - 0x770b, 0x0941, - 0x770c, 0x3f16, - 0x770d, 0x1a5a, - 0x770e, 0x3f17, - 0x7719, 0x1a60, - 0x771a, 0x1a5e, - 0x771b, 0x3f22, - 0x771f, 0x1187, - 0x7720, 0x0ae4, - 0x7721, 0x3f26, - 0x7722, 0x1a5f, - 0x7723, 0x3f27, - 0x7726, 0x1a62, - 0x7727, 0x3f2a, - 0x7728, 0x1144, - 0x7729, 0x0fcc, - 0x772a, 0x3f2b, - 0x772d, 0x1a61, - 0x772e, 0x3f2e, - 0x772f, 0x0ad5, - 0x7730, 0x3f2f, - 0x7735, 0x1a63, - 0x7736, 0x0981, - 0x7737, 0x091b, - 0x7738, 0x1a64, - 0x7739, 0x3f34, - 0x773a, 0x0e4a, - 0x773b, 0x3f35, - 0x773c, 0x1004, - 0x773d, 0x3f36, - 0x7740, 0x1222, - 0x7741, 0x1197, - 0x7742, 0x3f39, - 0x7743, 0x1a68, - 0x7744, 0x3f3a, - 0x7747, 0x1a67, - 0x7748, 0x3f3d, - 0x774f, 0x2684, - 0x7750, 0x1a65, - 0x7752, 0x3f44, - 0x775a, 0x1a69, - 0x775b, 0x08d5, - 0x775c, 0x3f4c, - 0x775e, 0x24ef, - 0x775f, 0x3f4e, - 0x7761, 0x0da4, - 0x7762, 0x1a6b, - 0x7763, 0x05fc, - 0x7764, 0x3f50, - 0x7765, 0x1a6c, - 0x7766, 0x0b23, - 0x7767, 0x3f51, - 0x7768, 0x1a6a, - 0x7769, 0x3f52, - 0x776b, 0x08af, - 0x776c, 0x048e, - 0x776d, 0x3f54, - 0x7779, 0x0602, - 0x777a, 0x3f60, - 0x777d, 0x1a6f, - 0x777e, 0x1270, - 0x777f, 0x1a6d, - 0x7780, 0x1a70, - 0x7781, 0x3f63, - 0x7784, 0x0aee, - 0x7785, 0x0517, - 0x7786, 0x3f66, - 0x778c, 0x1a71, - 0x778d, 0x1a6e, - 0x778e, 0x0f26, - 0x778f, 0x3f6c, - 0x7791, 0x1a72, - 0x7792, 0x0a9e, - 0x7793, 0x3f6e, - 0x7798, 0x24ee, - 0x7799, 0x3f73, - 0x779e, 0x2074, - 0x779f, 0x1a73, - 0x77a1, 0x3f78, - 0x77a2, 0x1495, - 0x77a3, 0x3f79, - 0x77a5, 0x0bd2, - 0x77a6, 0x3f7b, - 0x77a7, 0x0c43, - 0x77a8, 0x3f7c, - 0x77a9, 0x11f4, - 0x77aa, 0x05aa, - 0x77ab, 0x3f7d, - 0x77ac, 0x0da7, - 0x77ad, 0x2687, - 0x77ae, 0x3f7e, - 0x77b0, 0x1a75, - 0x77b1, 0x3f80, - 0x77b3, 0x0e5c, - 0x77b4, 0x3f82, - 0x77b5, 0x1a76, - 0x77b6, 0x3f83, - 0x77bb, 0x1151, - 0x77bc, 0x24f0, - 0x77bd, 0x1a77, - 0x77be, 0x3f88, - 0x77bf, 0x1d7e, - 0x77c0, 0x3f89, - 0x77c7, 0x268d, - 0x77c8, 0x3f90, - 0x77cd, 0x1397, - 0x77ce, 0x3f95, - 0x77d7, 0x0526, - 0x77d8, 0x3f9e, - 0x77da, 0x22a0, - 0x77db, 0x0ab1, - 0x77dc, 0x1bca, - 0x77dd, 0x3fa0, - 0x77e2, 0x0d4f, - 0x77e3, 0x105a, - 0x77e4, 0x3fa5, - 0x77e5, 0x11a9, - 0x77e6, 0x3fa6, - 0x77e7, 0x1b1a, - 0x77e8, 0x3fa7, - 0x77e9, 0x0907, - 0x77ea, 0x3fa8, - 0x77eb, 0x0894, - 0x77ec, 0x1b1b, - 0x77ed, 0x060b, - 0x77ee, 0x03b6, - 0x77ef, 0x1fab, - 0x77f0, 0x3fa9, - 0x77f3, 0x0d46, - 0x77f4, 0x3fac, - 0x77f6, 0x1a22, - 0x77f7, 0x3fae, - 0x77f8, 0x1a23, - 0x77f9, 0x3faf, - 0x77fd, 0x0f08, - 0x77fe, 0x064c, - 0x77ff, 0x0980, - 0x7800, 0x1a24, - 0x7801, 0x0a92, - 0x7802, 0x0ce9, - 0x7803, 0x3fb3, - 0x7809, 0x1a25, - 0x780a, 0x3fb9, - 0x780c, 0x0c15, - 0x780d, 0x0940, - 0x780e, 0x3fbb, - 0x7811, 0x1a28, - 0x7812, 0x0bb9, - 0x7813, 0x3fbe, - 0x7814, 0x0ff9, - 0x7815, 0x3fbf, - 0x7816, 0x1206, - 0x7817, 0x1a26, - 0x7819, 0x3fc0, - 0x781a, 0x100b, - 0x781b, 0x3fc1, - 0x781c, 0x1a2b, - 0x781e, 0x3fc2, - 0x781f, 0x1a30, - 0x7820, 0x3fc3, - 0x7823, 0x1a34, - 0x7824, 0x3fc6, - 0x7825, 0x1a32, - 0x7826, 0x1a3a, - 0x7827, 0x1189, - 0x7828, 0x3fc7, - 0x7829, 0x1a35, - 0x782a, 0x3fc8, - 0x782c, 0x1a33, - 0x782d, 0x1a2a, - 0x782e, 0x3fca, - 0x7830, 0x0baa, - 0x7831, 0x3fcc, - 0x7834, 0x0be5, - 0x7835, 0x3fcf, - 0x7837, 0x0d22, - 0x7838, 0x1115, - 0x7839, 0x1a2d, - 0x783c, 0x1a31, - 0x783d, 0x3fd1, - 0x783e, 0x09e4, - 0x783f, 0x3fd2, - 0x7840, 0x0524, - 0x7841, 0x3fd3, - 0x7843, 0x26a8, - 0x7844, 0x3fd5, - 0x7845, 0x0741, - 0x7846, 0x3fd6, - 0x7847, 0x1a3c, - 0x7848, 0x3fd7, - 0x784c, 0x1a3d, - 0x784d, 0x3fdb, - 0x784e, 0x1a36, - 0x784f, 0x3fdc, - 0x7850, 0x1a3b, - 0x7851, 0x3fdd, - 0x7852, 0x0f07, - 0x7853, 0x3fde, - 0x7855, 0x0dab, - 0x7856, 0x1a38, - 0x7858, 0x3fe0, - 0x785d, 0x0f62, - 0x785e, 0x3fe5, - 0x7864, 0x24e9, - 0x7865, 0x3feb, - 0x7868, 0x24e5, - 0x7869, 0x3fee, - 0x786a, 0x1a3e, - 0x786b, 0x0a3b, - 0x786c, 0x1097, - 0x786d, 0x1a37, - 0x786e, 0x0c92, - 0x786f, 0x21fa, - 0x7870, 0x3fef, - 0x7877, 0x0862, - 0x7878, 0x3ff6, - 0x787c, 0x0bb1, - 0x787d, 0x3ffa, - 0x7887, 0x1a42, - 0x7888, 0x4004, - 0x7889, 0x05d0, - 0x788a, 0x4005, - 0x788c, 0x0a5c, - 0x788d, 0x03b8, - 0x788e, 0x0dde, - 0x788f, 0x4007, - 0x7891, 0x0417, - 0x7892, 0x4009, - 0x7893, 0x1a40, - 0x7894, 0x400a, - 0x7897, 0x0e9c, - 0x7898, 0x05c3, - 0x7899, 0x400d, - 0x789a, 0x1a41, - 0x789b, 0x1a3f, - 0x789c, 0x1a43, - 0x789d, 0x400e, - 0x789f, 0x05db, - 0x78a0, 0x4010, - 0x78a1, 0x1a44, - 0x78a2, 0x4011, - 0x78a3, 0x1a45, - 0x78a4, 0x4012, - 0x78a5, 0x1a48, - 0x78a6, 0x4013, - 0x78a7, 0x0435, - 0x78a8, 0x4014, - 0x78a9, 0x2148, - 0x78aa, 0x4015, - 0x78ad, 0x24e4, - 0x78ae, 0x4018, - 0x78b0, 0x0bb7, - 0x78b1, 0x0861, - 0x78b2, 0x1a46, - 0x78b3, 0x0e0f, - 0x78b4, 0x04b1, - 0x78b5, 0x401a, - 0x78b8, 0x24e6, - 0x78b9, 0x1a47, - 0x78ba, 0x20f7, - 0x78bb, 0x401d, - 0x78bc, 0x206b, - 0x78bd, 0x401e, - 0x78be, 0x0b4e, - 0x78bf, 0x401f, - 0x78c1, 0x0548, - 0x78c2, 0x4021, - 0x78c5, 0x0400, - 0x78c6, 0x4024, - 0x78c9, 0x1a4b, - 0x78ca, 0x09c5, - 0x78cb, 0x056b, - 0x78cc, 0x4027, - 0x78d0, 0x0b8e, - 0x78d1, 0x402b, - 0x78d4, 0x1a49, - 0x78d5, 0x0951, - 0x78d6, 0x402e, - 0x78d9, 0x1a4a, - 0x78da, 0x22a7, - 0x78db, 0x4031, - 0x78e3, 0x24ec, - 0x78e4, 0x4039, - 0x78e7, 0x24eb, - 0x78e8, 0x0b08, - 0x78e9, 0x403c, - 0x78ec, 0x1a4c, - 0x78ed, 0x403f, - 0x78ef, 0x24e3, - 0x78f0, 0x4041, - 0x78f2, 0x1a4d, - 0x78f3, 0x4043, - 0x78f4, 0x1a4f, - 0x78f5, 0x4044, - 0x78f7, 0x0a20, - 0x78f8, 0x4046, - 0x78fa, 0x07dc, - 0x78fb, 0x4048, - 0x78fd, 0x24ea, - 0x78fe, 0x404a, - 0x7900, 0x404c, - 0x7901, 0x0889, - 0x7902, 0x404d, - 0x7905, 0x1a4e, - 0x7906, 0x4050, - 0x790e, 0x1e92, - 0x790f, 0x4058, - 0x7913, 0x1a50, - 0x7914, 0x405c, - 0x7919, 0x1e27, - 0x791a, 0x4061, - 0x791e, 0x1a52, - 0x791f, 0x4065, - 0x7924, 0x1a51, - 0x7925, 0x406a, - 0x7926, 0x1fe6, - 0x7927, 0x406b, - 0x792a, 0x24e7, - 0x792b, 0x2012, - 0x792c, 0x1eec, - 0x792d, 0x406e, - 0x7931, 0x24e8, - 0x7932, 0x4072, - 0x7934, 0x1a53, - 0x7935, 0x4074, - 0x793a, 0x0d55, - 0x793b, 0x19f8, - 0x793c, 0x09dc, - 0x793d, 0x4079, - 0x793e, 0x0d20, - 0x793f, 0x407a, - 0x7940, 0x19f9, - 0x7941, 0x0c0d, - 0x7942, 0x407b, - 0x7946, 0x19fa, - 0x7947, 0x407f, - 0x7948, 0x0c0c, - 0x7949, 0x19fb, - 0x794a, 0x4080, - 0x7953, 0x19fe, - 0x7954, 0x4089, - 0x7956, 0x1243, - 0x7957, 0x1a01, - 0x7958, 0x408b, - 0x795a, 0x19ff, - 0x795b, 0x19fc, - 0x795d, 0x1200, - 0x795e, 0x0d2a, - 0x795f, 0x0de3, - 0x7960, 0x1a02, - 0x7961, 0x408d, - 0x7962, 0x1a00, - 0x7963, 0x408e, - 0x7965, 0x0f56, - 0x7966, 0x4090, - 0x7967, 0x1a04, - 0x7968, 0x0bd0, - 0x7969, 0x4091, - 0x796d, 0x0833, - 0x796e, 0x4095, - 0x796f, 0x1a03, - 0x7970, 0x4096, - 0x7977, 0x059c, - 0x7978, 0x080b, - 0x7979, 0x409d, - 0x797a, 0x1a05, - 0x797b, 0x409e, - 0x7980, 0x130b, - 0x7981, 0x08cc, - 0x7982, 0x40a3, - 0x7984, 0x0a62, - 0x7985, 0x1a06, - 0x7986, 0x40a5, - 0x798a, 0x1a07, - 0x798b, 0x40a9, - 0x798d, 0x1f66, - 0x798e, 0x24dc, - 0x798f, 0x069e, - 0x7990, 0x40ab, - 0x799a, 0x1a08, - 0x799b, 0x40b5, - 0x79a6, 0x26a2, - 0x79a7, 0x1a09, - 0x79a8, 0x40c0, - 0x79aa, 0x24dd, - 0x79ab, 0x40c2, - 0x79ae, 0x200e, - 0x79af, 0x40c5, - 0x79b0, 0x24db, - 0x79b1, 0x1eb8, - 0x79b2, 0x40c6, - 0x79b3, 0x1a0a, - 0x79b4, 0x40c7, - 0x79b9, 0x10d2, - 0x79ba, 0x1264, - 0x79bb, 0x09d6, - 0x79bc, 0x40cc, - 0x79bd, 0x0c5a, - 0x79be, 0x0783, - 0x79bf, 0x40cd, - 0x79c0, 0x0fae, - 0x79c1, 0x0db2, - 0x79c2, 0x40ce, - 0x79c3, 0x0e6b, - 0x79c4, 0x40cf, - 0x79c6, 0x06cc, - 0x79c7, 0x40d1, - 0x79c9, 0x0465, - 0x79ca, 0x40d3, - 0x79cb, 0x0c6c, - 0x79cc, 0x40d4, - 0x79cd, 0x11d5, - 0x79ce, 0x40d5, - 0x79d1, 0x0953, - 0x79d2, 0x0af0, - 0x79d3, 0x40d8, - 0x79d5, 0x1b1d, - 0x79d6, 0x40da, - 0x79d8, 0x0add, - 0x79d9, 0x40dc, - 0x79df, 0x123f, - 0x79e0, 0x40e2, - 0x79e3, 0x1b1f, - 0x79e4, 0x04f8, - 0x79e5, 0x40e5, - 0x79e6, 0x0c55, - 0x79e7, 0x1016, - 0x79e8, 0x40e6, - 0x79e9, 0x11c7, - 0x79ea, 0x40e7, - 0x79eb, 0x1b20, - 0x79ec, 0x40e8, - 0x79ed, 0x1b1e, - 0x79ee, 0x40e9, - 0x79ef, 0x0812, - 0x79f0, 0x04eb, - 0x79f1, 0x40ea, - 0x79f8, 0x08a6, - 0x79f9, 0x40f1, - 0x79fb, 0x104d, - 0x79fc, 0x40f3, - 0x79fd, 0x07f5, - 0x79fe, 0x40f4, - 0x7a00, 0x0f0e, - 0x7a01, 0x40f6, - 0x7a02, 0x1b24, - 0x7a03, 0x1b23, - 0x7a04, 0x40f7, - 0x7a06, 0x1b21, - 0x7a07, 0x40f9, - 0x7a0b, 0x04f1, - 0x7a0c, 0x40fd, - 0x7a0d, 0x0d0d, - 0x7a0e, 0x0da5, - 0x7a0f, 0x40fe, - 0x7a14, 0x1b26, - 0x7a15, 0x4103, - 0x7a17, 0x03e9, - 0x7a18, 0x4105, - 0x7a1a, 0x11c8, - 0x7a1b, 0x4107, - 0x7a1e, 0x1b25, - 0x7a1f, 0x410a, - 0x7a20, 0x0512, - 0x7a21, 0x410b, - 0x7a23, 0x1d8f, - 0x7a24, 0x410d, - 0x7a2e, 0x2295, - 0x7a2f, 0x4117, - 0x7a31, 0x1e80, - 0x7a32, 0x4119, - 0x7a33, 0x0ed7, - 0x7a34, 0x411a, - 0x7a37, 0x1b28, - 0x7a38, 0x411d, - 0x7a39, 0x1b27, - 0x7a3a, 0x411e, - 0x7a3b, 0x059f, - 0x7a3c, 0x084d, - 0x7a3d, 0x0811, - 0x7a3e, 0x411f, - 0x7a3f, 0x06e0, - 0x7a40, 0x2677, - 0x7a41, 0x4120, - 0x7a46, 0x0b25, - 0x7a47, 0x4125, - 0x7a4c, 0x2624, - 0x7a4d, 0x1f69, - 0x7a4e, 0x222b, - 0x7a4f, 0x412a, - 0x7a51, 0x1b29, - 0x7a52, 0x412c, - 0x7a57, 0x0de0, - 0x7a58, 0x4131, - 0x7a61, 0x257f, - 0x7a62, 0x1f5b, - 0x7a63, 0x413a, - 0x7a69, 0x219b, - 0x7a6a, 0x4140, - 0x7a6b, 0x267d, - 0x7a6c, 0x4141, - 0x7a70, 0x1b2c, - 0x7a71, 0x4145, - 0x7a74, 0x0fd1, - 0x7a75, 0x4148, - 0x7a76, 0x08ee, - 0x7a77, 0x0c6b, - 0x7a78, 0x1b9a, - 0x7a7a, 0x0962, - 0x7a7b, 0x4149, - 0x7a7f, 0x052c, - 0x7a80, 0x1b9c, - 0x7a81, 0x0e6c, - 0x7a82, 0x414d, - 0x7a83, 0x0c51, - 0x7a84, 0x114e, - 0x7a85, 0x414e, - 0x7a86, 0x1b9d, - 0x7a87, 0x414f, - 0x7a88, 0x1b9e, - 0x7a89, 0x4150, - 0x7a8d, 0x0c4c, - 0x7a8e, 0x4154, - 0x7a91, 0x102b, - 0x7a92, 0x11ce, - 0x7a93, 0x4157, - 0x7a95, 0x1b9f, - 0x7a96, 0x08a2, - 0x7a97, 0x0533, - 0x7a98, 0x08ec, - 0x7a99, 0x4159, - 0x7a9c, 0x055f, - 0x7a9d, 0x0ee0, - 0x7a9e, 0x415c, - 0x7a9f, 0x096c, - 0x7aa0, 0x1ba1, - 0x7aa1, 0x415d, - 0x7aa5, 0x0987, - 0x7aa6, 0x1ba0, - 0x7aa7, 0x4161, - 0x7aa8, 0x1ba3, - 0x7aa9, 0x21a0, - 0x7aaa, 0x2186, - 0x7aab, 0x4162, - 0x7aac, 0x1ba2, - 0x7aad, 0x1ba4, - 0x7aae, 0x20ed, - 0x7aaf, 0x4163, - 0x7ab3, 0x1ba5, - 0x7ab4, 0x4167, - 0x7ab6, 0x25b9, - 0x7ab7, 0x4169, - 0x7aba, 0x1fea, - 0x7abb, 0x416c, - 0x7abf, 0x0a47, - 0x7ac0, 0x4170, - 0x7ac4, 0x1ea4, - 0x7ac5, 0x20e1, - 0x7ac6, 0x4174, - 0x7ac7, 0x25b8, - 0x7ac8, 0x2260, - 0x7ac9, 0x4175, - 0x7aca, 0x20e2, - 0x7acb, 0x09eb, - 0x7acc, 0x4176, - 0x7ad6, 0x0d91, - 0x7ad7, 0x4180, - 0x7ad9, 0x115f, - 0x7ada, 0x4182, - 0x7ade, 0x08e9, - 0x7adf, 0x08e8, - 0x7ae0, 0x1163, - 0x7ae1, 0x4186, - 0x7ae3, 0x092f, - 0x7ae4, 0x4188, - 0x7ae5, 0x0e60, - 0x7ae6, 0x1b99, - 0x7ae7, 0x4189, - 0x7aea, 0x2141, - 0x7aeb, 0x418c, - 0x7aed, 0x08b0, - 0x7aee, 0x418e, - 0x7aef, 0x060a, - 0x7af0, 0x418f, - 0x7af6, 0x1fc7, - 0x7af7, 0x4195, - 0x7af9, 0x11f0, - 0x7afa, 0x1c63, - 0x7afb, 0x4197, - 0x7afd, 0x1c64, - 0x7afe, 0x4199, - 0x7aff, 0x06c8, - 0x7b00, 0x419a, - 0x7b03, 0x1c66, - 0x7b05, 0x419d, - 0x7b06, 0x03d5, - 0x7b07, 0x419e, - 0x7b08, 0x1c65, - 0x7b09, 0x419f, - 0x7b0a, 0x1c69, - 0x7b0b, 0x0de6, - 0x7b0c, 0x41a0, - 0x7b0f, 0x1c6b, - 0x7b10, 0x41a3, - 0x7b11, 0x0f71, - 0x7b12, 0x41a4, - 0x7b14, 0x0433, - 0x7b15, 0x1c68, - 0x7b16, 0x41a6, - 0x7b19, 0x1c6f, - 0x7b1a, 0x41a9, - 0x7b1b, 0x05b2, - 0x7b1c, 0x41aa, - 0x7b1e, 0x1c77, - 0x7b1f, 0x41ac, - 0x7b20, 0x1c72, - 0x7b21, 0x41ad, - 0x7b24, 0x1c74, - 0x7b25, 0x1c73, - 0x7b26, 0x0698, - 0x7b27, 0x41b0, - 0x7b28, 0x0428, - 0x7b29, 0x41b1, - 0x7b2a, 0x1c6e, - 0x7b2b, 0x1c6a, - 0x7b2c, 0x05bb, - 0x7b2d, 0x41b2, - 0x7b2e, 0x1c70, - 0x7b2f, 0x41b3, - 0x7b31, 0x1c71, - 0x7b32, 0x41b5, - 0x7b33, 0x1c75, - 0x7b34, 0x41b6, - 0x7b38, 0x1c6d, - 0x7b39, 0x41ba, - 0x7b3a, 0x0856, - 0x7b3b, 0x41bb, - 0x7b3c, 0x0a46, - 0x7b3d, 0x41bc, - 0x7b3e, 0x1c76, - 0x7b3f, 0x41bd, - 0x7b45, 0x1c7a, - 0x7b46, 0x1e41, - 0x7b47, 0x1c6c, - 0x7b48, 0x41c3, - 0x7b49, 0x05a9, - 0x7b4a, 0x41c4, - 0x7b4b, 0x08bf, - 0x7b4c, 0x1c7c, - 0x7b4d, 0x41c5, - 0x7b4f, 0x0641, - 0x7b50, 0x097d, - 0x7b51, 0x11fd, - 0x7b52, 0x0e63, - 0x7b53, 0x41c7, - 0x7b54, 0x0573, - 0x7b55, 0x41c8, - 0x7b56, 0x04a6, - 0x7b57, 0x41c9, - 0x7b58, 0x1c78, - 0x7b59, 0x41ca, - 0x7b5a, 0x1c79, - 0x7b5b, 0x0cf1, - 0x7b5c, 0x41cb, - 0x7b5d, 0x1c7d, - 0x7b5e, 0x41cc, - 0x7b60, 0x1c7e, - 0x7b61, 0x41ce, - 0x7b62, 0x1c81, - 0x7b63, 0x41cf, - 0x7b67, 0x25e4, - 0x7b68, 0x41d3, - 0x7b6e, 0x1c7f, - 0x7b6f, 0x41d9, - 0x7b71, 0x1c83, - 0x7b72, 0x1c82, - 0x7b73, 0x41db, - 0x7b75, 0x1c7b, - 0x7b76, 0x41dd, - 0x7b77, 0x0977, - 0x7b78, 0x41de, - 0x7b79, 0x0514, - 0x7b7a, 0x41df, - 0x7b7b, 0x1c80, - 0x7b7c, 0x41e0, - 0x7b7e, 0x0c26, - 0x7b7f, 0x41e2, - 0x7b80, 0x0865, - 0x7b81, 0x41e3, - 0x7b85, 0x1c8b, - 0x7b86, 0x41e7, - 0x7b8b, 0x1f86, - 0x7b8c, 0x41ec, - 0x7b8d, 0x0718, - 0x7b8e, 0x41ed, - 0x7b90, 0x1c84, - 0x7b91, 0x41ef, - 0x7b94, 0x0474, - 0x7b95, 0x0813, - 0x7b96, 0x41f2, - 0x7b97, 0x0dd8, - 0x7b98, 0x41f3, - 0x7b9c, 0x1c8d, - 0x7b9d, 0x1c89, - 0x7b9e, 0x41f7, - 0x7ba1, 0x0735, - 0x7ba2, 0x1c8e, - 0x7ba3, 0x41fa, - 0x7ba6, 0x1c85, - 0x7ba8, 0x1c8a, - 0x7ba9, 0x0a88, - 0x7baa, 0x1c8c, - 0x7bab, 0x1c8f, - 0x7bac, 0x1c88, - 0x7bad, 0x0870, - 0x7bae, 0x41fd, - 0x7bb1, 0x0f51, - 0x7bb2, 0x4200, - 0x7bb4, 0x1c90, - 0x7bb5, 0x4202, - 0x7bb8, 0x1c87, - 0x7bb9, 0x4205, - 0x7bc0, 0x1fb3, - 0x7bc1, 0x1c92, - 0x7bc2, 0x420c, - 0x7bc4, 0x1eef, - 0x7bc5, 0x420e, - 0x7bc6, 0x120a, - 0x7bc7, 0x0bc9, - 0x7bc8, 0x420f, - 0x7bc9, 0x22a4, - 0x7bca, 0x4210, - 0x7bcb, 0x25e8, - 0x7bcc, 0x1c93, - 0x7bcd, 0x4211, - 0x7bd1, 0x1c91, - 0x7bd2, 0x4215, - 0x7bd3, 0x0a4f, - 0x7bd4, 0x4216, - 0x7bd9, 0x06d8, - 0x7bda, 0x1c95, - 0x7bdb, 0x421b, - 0x7bdd, 0x1c94, - 0x7bde, 0x421d, - 0x7be1, 0x055e, - 0x7be2, 0x4220, - 0x7be4, 0x25e3, - 0x7be5, 0x1c96, - 0x7be7, 0x4222, - 0x7be9, 0x2111, - 0x7bea, 0x1c98, - 0x7beb, 0x4224, - 0x7bee, 0x09a5, - 0x7bef, 0x4227, - 0x7bf1, 0x09d4, - 0x7bf2, 0x4229, - 0x7bf3, 0x25e6, - 0x7bf4, 0x422a, - 0x7bf7, 0x0bb2, - 0x7bf8, 0x422d, - 0x7bfc, 0x1c9b, - 0x7bfd, 0x4231, - 0x7bfe, 0x1c9a, - 0x7bff, 0x4232, - 0x7c00, 0x25e7, - 0x7c01, 0x4233, - 0x7c07, 0x055b, - 0x7c08, 0x4239, - 0x7c0b, 0x1c9e, - 0x7c0c, 0x1c99, - 0x7c0d, 0x2041, - 0x7c0e, 0x423c, - 0x7c0f, 0x1c9c, - 0x7c10, 0x423d, - 0x7c16, 0x1c9d, - 0x7c17, 0x4243, - 0x7c1e, 0x25ea, - 0x7c1f, 0x1c9f, - 0x7c20, 0x424a, - 0x7c21, 0x1f8f, - 0x7c22, 0x424b, - 0x7c23, 0x25ec, - 0x7c24, 0x424c, - 0x7c26, 0x1ca1, - 0x7c27, 0x07de, - 0x7c28, 0x424e, - 0x7c2a, 0x1ca0, - 0x7c2b, 0x25eb, - 0x7c2c, 0x4250, - 0x7c38, 0x1ca2, - 0x7c39, 0x425c, - 0x7c3d, 0x20d0, - 0x7c3e, 0x201d, - 0x7c3f, 0x0485, - 0x7c40, 0x1ca4, - 0x7c41, 0x1ca3, - 0x7c42, 0x4260, - 0x7c43, 0x1ff7, - 0x7c44, 0x4261, - 0x7c4c, 0x1e8d, - 0x7c4d, 0x0821, - 0x7c4e, 0x4269, - 0x7c5c, 0x25e9, - 0x7c5d, 0x4277, - 0x7c5f, 0x25ee, - 0x7c60, 0x203a, - 0x7c61, 0x4279, - 0x7c64, 0x2693, - 0x7c65, 0x427c, - 0x7c69, 0x25e5, - 0x7c6a, 0x25ed, - 0x7c6b, 0x4280, - 0x7c6c, 0x2009, - 0x7c6d, 0x4281, - 0x7c6e, 0x2065, - 0x7c6f, 0x4282, - 0x7c72, 0x26a3, - 0x7c73, 0x0adc, - 0x7c74, 0x12f5, - 0x7c75, 0x4285, - 0x7c7b, 0x09cb, - 0x7c7c, 0x1cca, - 0x7c7d, 0x122e, - 0x7c7e, 0x428b, - 0x7c89, 0x0678, - 0x7c8a, 0x4296, - 0x7c91, 0x1ccc, - 0x7c92, 0x09ec, - 0x7c93, 0x429d, - 0x7c95, 0x0be8, - 0x7c96, 0x429f, - 0x7c97, 0x0559, - 0x7c98, 0x1154, - 0x7c99, 0x42a0, - 0x7c9c, 0x1cce, - 0x7c9d, 0x1ccd, - 0x7c9e, 0x1ccf, - 0x7c9f, 0x0dcf, - 0x7ca0, 0x42a3, - 0x7ca2, 0x1cd0, - 0x7ca3, 0x42a5, - 0x7ca4, 0x1104, - 0x7ca5, 0x11df, - 0x7ca6, 0x42a6, - 0x7caa, 0x067d, - 0x7cab, 0x42aa, - 0x7cae, 0x0a01, - 0x7caf, 0x42ad, - 0x7cb1, 0x0a04, - 0x7cb2, 0x1cd1, - 0x7cb3, 0x08db, - 0x7cb4, 0x42af, - 0x7cb9, 0x0565, - 0x7cba, 0x42b4, - 0x7cbc, 0x1cd2, - 0x7cbe, 0x08da, - 0x7cbf, 0x42b6, - 0x7cc1, 0x1cd4, - 0x7cc2, 0x42b8, - 0x7cc5, 0x1cd9, - 0x7cc6, 0x42bb, - 0x7cc7, 0x1cd5, - 0x7cc8, 0x1cd8, - 0x7cc9, 0x42bc, - 0x7cca, 0x07b4, - 0x7ccb, 0x42bd, - 0x7ccc, 0x1cd6, - 0x7cce, 0x42be, - 0x7cd5, 0x06dd, - 0x7cd6, 0x0e1a, - 0x7cd7, 0x1cda, - 0x7cd8, 0x42c5, - 0x7cd9, 0x04a1, - 0x7cda, 0x42c6, - 0x7cdc, 0x0ad8, - 0x7cdd, 0x25f5, - 0x7cde, 0x1efc, - 0x7cdf, 0x1126, - 0x7ce0, 0x0944, - 0x7ce1, 0x42c8, - 0x7ce7, 0x2024, - 0x7ce8, 0x1cdb, - 0x7ce9, 0x42ce, - 0x7cef, 0x0b75, - 0x7cf0, 0x269b, - 0x7cf1, 0x42d4, - 0x7cf2, 0x25f3, - 0x7cf3, 0x42d5, - 0x7cf4, 0x22d9, - 0x7cf5, 0x42d6, - 0x7cf6, 0x25f4, - 0x7cf7, 0x42d7, - 0x7cf8, 0x1ce7, - 0x7cf9, 0x241b, - 0x7cfa, 0x42d8, - 0x7cfb, 0x0f22, - 0x7cfc, 0x42d9, - 0x7cfe, 0x1fc8, - 0x7cff, 0x42db, - 0x7d00, 0x1f7b, - 0x7d01, 0x42dc, - 0x7d02, 0x241d, - 0x7d03, 0x42dd, - 0x7d04, 0x224c, - 0x7d05, 0x1f48, - 0x7d06, 0x241c, - 0x7d07, 0x241e, - 0x7d09, 0x20ff, - 0x7d0a, 0x0ed8, - 0x7d0b, 0x219a, - 0x7d0c, 0x42de, - 0x7d0d, 0x2091, - 0x7d0e, 0x42df, - 0x7d10, 0x20a7, - 0x7d11, 0x42e1, - 0x7d13, 0x2423, - 0x7d14, 0x1e9b, - 0x7d15, 0x2422, - 0x7d16, 0x42e3, - 0x7d17, 0x2110, - 0x7d18, 0x42e4, - 0x7d19, 0x228d, - 0x7d1a, 0x1f71, - 0x7d1b, 0x1ef8, - 0x7d1c, 0x2421, - 0x7d1d, 0x42e5, - 0x7d20, 0x0dcd, - 0x7d21, 0x1ef3, - 0x7d22, 0x0dec, - 0x7d23, 0x42e8, - 0x7d27, 0x08c5, - 0x7d28, 0x42ec, - 0x7d2b, 0x122c, - 0x7d2c, 0x42ef, - 0x7d2f, 0x09c6, - 0x7d30, 0x21b1, - 0x7d31, 0x2426, - 0x7d32, 0x2425, - 0x7d33, 0x2120, - 0x7d34, 0x42f2, - 0x7d39, 0x211a, - 0x7d3a, 0x2424, - 0x7d3b, 0x42f7, - 0x7d3c, 0x2428, - 0x7d3d, 0x42f8, - 0x7d3f, 0x242a, - 0x7d40, 0x2429, - 0x7d41, 0x42fa, - 0x7d42, 0x2294, - 0x7d43, 0x42fb, - 0x7d44, 0x22be, - 0x7d45, 0x42fc, - 0x7d46, 0x1e31, - 0x7d47, 0x42fd, - 0x7d4e, 0x242c, - 0x7d4f, 0x4304, - 0x7d50, 0x1fb5, - 0x7d51, 0x4305, - 0x7d5d, 0x242b, - 0x7d5e, 0x1faf, - 0x7d5f, 0x4311, - 0x7d61, 0x2068, - 0x7d62, 0x21e4, - 0x7d63, 0x4313, - 0x7d66, 0x1f21, - 0x7d67, 0x4316, - 0x7d68, 0x2101, - 0x7d69, 0x4317, - 0x7d6e, 0x0fc0, - 0x7d6f, 0x431c, - 0x7d71, 0x217c, - 0x7d72, 0x214a, - 0x7d73, 0x242d, - 0x7d74, 0x431e, - 0x7d76, 0x1fd4, - 0x7d77, 0x1ce8, - 0x7d78, 0x4320, - 0x7d79, 0x1fd1, - 0x7d7a, 0x4321, - 0x7d81, 0x1e33, - 0x7d82, 0x4328, - 0x7d83, 0x242f, - 0x7d84, 0x4329, - 0x7d86, 0x242e, - 0x7d87, 0x432b, - 0x7d88, 0x2430, - 0x7d89, 0x21db, - 0x7d8a, 0x432c, - 0x7d8f, 0x2158, - 0x7d90, 0x4331, - 0x7d93, 0x1fc2, - 0x7d94, 0x4334, - 0x7d9c, 0x22b9, - 0x7d9d, 0x433c, - 0x7d9e, 0x2436, - 0x7d9f, 0x433d, - 0x7da2, 0x1e8e, - 0x7da3, 0x2439, - 0x7da4, 0x4340, - 0x7da6, 0x1ce9, - 0x7da7, 0x4342, - 0x7dab, 0x21c5, - 0x7dac, 0x2437, - 0x7dad, 0x2192, - 0x7dae, 0x1cea, - 0x7daf, 0x4346, - 0x7db0, 0x243a, - 0x7db1, 0x1f19, - 0x7db2, 0x218c, - 0x7db3, 0x1e40, - 0x7db4, 0x22b3, - 0x7db5, 0x4347, - 0x7db8, 0x205f, - 0x7db9, 0x2438, - 0x7dba, 0x2432, - 0x7dbb, 0x2274, - 0x7dbc, 0x434a, - 0x7dbd, 0x1e9c, - 0x7dbe, 0x2431, - 0x7dbf, 0x2085, - 0x7dc0, 0x434b, - 0x7dc4, 0x2435, - 0x7dc5, 0x434f, - 0x7dc7, 0x243b, - 0x7dc8, 0x4351, - 0x7dca, 0x1fb7, - 0x7dcb, 0x2433, - 0x7dcc, 0x4353, - 0x7dd1, 0x2054, - 0x7dd2, 0x21de, - 0x7dd3, 0x4358, - 0x7dd4, 0x2434, - 0x7dd5, 0x4359, - 0x7dd7, 0x243d, - 0x7dd8, 0x1f89, - 0x7dd9, 0x243c, - 0x7dda, 0x435b, - 0x7ddd, 0x1f6e, - 0x7dde, 0x1ed8, - 0x7ddf, 0x435e, - 0x7de0, 0x1ebf, - 0x7de1, 0x2445, - 0x7de2, 0x435f, - 0x7de3, 0x2249, - 0x7de4, 0x4360, - 0x7de6, 0x2441, - 0x7de7, 0x4362, - 0x7de8, 0x1e47, - 0x7de9, 0x1f56, - 0x7dea, 0x4363, - 0x7dec, 0x2086, - 0x7ded, 0x4365, - 0x7def, 0x2196, - 0x7df0, 0x4367, - 0x7df1, 0x2443, - 0x7df2, 0x243f, - 0x7df3, 0x4368, - 0x7df4, 0x2023, - 0x7df5, 0x4369, - 0x7df6, 0x2442, - 0x7df7, 0x436a, - 0x7df9, 0x243e, - 0x7dfa, 0x436c, - 0x7dfb, 0x26a6, - 0x7dfc, 0x436d, - 0x7e00, 0x4371, - 0x7e08, 0x234e, - 0x7e09, 0x2446, - 0x7e0a, 0x244b, - 0x7e0b, 0x2444, - 0x7e0c, 0x4379, - 0x7e10, 0x2427, - 0x7e11, 0x244c, - 0x7e12, 0x437d, - 0x7e1b, 0x1f0f, - 0x7e1c, 0x4386, - 0x7e1d, 0x2447, - 0x7e1e, 0x2449, - 0x7e1f, 0x2448, - 0x7e20, 0x4387, - 0x7e23, 0x21c2, - 0x7e24, 0x438a, - 0x7e27, 0x216e, - 0x7e28, 0x438d, - 0x7e2b, 0x1f03, - 0x7e2c, 0x4390, - 0x7e2d, 0x244a, - 0x7e2e, 0x215c, - 0x7e2f, 0x4391, - 0x7e31, 0x22bb, - 0x7e32, 0x2450, - 0x7e33, 0x4393, - 0x7e34, 0x2694, - 0x7e35, 0x244f, - 0x7e36, 0x25f6, - 0x7e37, 0x2051, - 0x7e38, 0x4394, - 0x7e39, 0x244e, - 0x7e3a, 0x4395, - 0x7e3b, 0x1dfb, - 0x7e3c, 0x4396, - 0x7e3d, 0x22ba, - 0x7e3e, 0x1f6d, - 0x7e3f, 0x4397, - 0x7e41, 0x064e, - 0x7e42, 0x4399, - 0x7e45, 0x2452, - 0x7e46, 0x2451, - 0x7e47, 0x1ceb, - 0x7e48, 0x439c, - 0x7e52, 0x2455, - 0x7e53, 0x43a6, - 0x7e54, 0x2289, - 0x7e55, 0x2116, - 0x7e56, 0x43a7, - 0x7e5a, 0x2454, - 0x7e5b, 0x43ab, - 0x7e5e, 0x20fb, - 0x7e5f, 0x43ae, - 0x7e62, 0x2440, - 0x7e63, 0x43b1, - 0x7e69, 0x2126, - 0x7e6a, 0x1f61, - 0x7e6b, 0x269d, - 0x7e6c, 0x43b7, - 0x7e6d, 0x1f8a, - 0x7e6e, 0x2456, - 0x7e6f, 0x2459, - 0x7e70, 0x2458, - 0x7e71, 0x43b8, - 0x7e73, 0x1fae, - 0x7e74, 0x43ba, - 0x7e79, 0x221a, - 0x7e7a, 0x43bf, - 0x7e7c, 0x1f7a, - 0x7e7d, 0x244d, - 0x7e7e, 0x2457, - 0x7e7f, 0x43c1, - 0x7e82, 0x1248, - 0x7e83, 0x43c4, - 0x7e88, 0x2453, - 0x7e89, 0x43c9, - 0x7e8a, 0x2420, - 0x7e8b, 0x43ca, - 0x7e8c, 0x21df, - 0x7e8d, 0x2685, - 0x7e8e, 0x43cb, - 0x7e8f, 0x1e6e, - 0x7e90, 0x43cc, - 0x7e93, 0x2224, - 0x7e94, 0x2670, - 0x7e95, 0x43cf, - 0x7e96, 0x21ba, - 0x7e97, 0x43d0, - 0x7e98, 0x245a, - 0x7e99, 0x43d1, - 0x7e9b, 0x1cec, - 0x7e9c, 0x1fff, - 0x7e9d, 0x43d3, - 0x7e9f, 0x17d3, - 0x7ea0, 0x08ef, - 0x7ea1, 0x17d4, - 0x7ea2, 0x07a3, - 0x7ea3, 0x17d5, - 0x7ea4, 0x0f38, - 0x7ea5, 0x17d6, - 0x7ea6, 0x10ff, - 0x7ea7, 0x0829, - 0x7ea8, 0x17d7, - 0x7eaa, 0x0840, - 0x7eab, 0x0cad, - 0x7eac, 0x0ec2, - 0x7ead, 0x17d9, - 0x7eae, 0x43d5, - 0x7eaf, 0x0542, - 0x7eb0, 0x17da, - 0x7eb1, 0x0ced, - 0x7eb2, 0x06d4, - 0x7eb3, 0x0b2c, - 0x7eb4, 0x43d6, - 0x7eb5, 0x123a, - 0x7eb6, 0x0a81, - 0x7eb7, 0x0674, - 0x7eb8, 0x11bc, - 0x7eb9, 0x0ed5, - 0x7eba, 0x0661, - 0x7ebb, 0x43d7, - 0x7ebd, 0x0b67, - 0x7ebe, 0x17db, - 0x7ebf, 0x0f4c, - 0x7ec0, 0x17dc, - 0x7ec3, 0x0a00, - 0x7ec4, 0x1246, - 0x7ec5, 0x0d29, - 0x7ec6, 0x0f25, - 0x7ec7, 0x11ae, - 0x7ec8, 0x11d4, - 0x7ec9, 0x17df, - 0x7eca, 0x03f8, - 0x7ecb, 0x17e0, - 0x7ecd, 0x0d15, - 0x7ece, 0x1076, - 0x7ecf, 0x08dc, - 0x7ed0, 0x17e2, - 0x7ed1, 0x03fe, - 0x7ed2, 0x0cb9, - 0x7ed3, 0x08b2, - 0x7ed4, 0x17e3, - 0x7ed5, 0x0ca1, - 0x7ed6, 0x43d9, - 0x7ed7, 0x17e4, - 0x7ed8, 0x07fb, - 0x7ed9, 0x06f3, - 0x7eda, 0x0fcd, - 0x7edb, 0x17e5, - 0x7edc, 0x0a8e, - 0x7edd, 0x0927, - 0x7ede, 0x089b, - 0x7edf, 0x0e64, - 0x7ee0, 0x17e6, - 0x7ee2, 0x091d, - 0x7ee3, 0x0fb0, - 0x7ee4, 0x43da, - 0x7ee5, 0x0ddc, - 0x7ee6, 0x0e23, - 0x7ee7, 0x083f, - 0x7ee8, 0x17e8, - 0x7ee9, 0x081b, - 0x7eea, 0x0fc2, - 0x7eeb, 0x17e9, - 0x7eec, 0x43db, - 0x7eed, 0x0fc3, - 0x7eee, 0x17ea, - 0x7ef0, 0x0545, - 0x7ef1, 0x17ec, - 0x7ef3, 0x0d37, - 0x7ef4, 0x0ebb, - 0x7ef5, 0x0ae5, - 0x7ef6, 0x17ef, - 0x7ef7, 0x042a, - 0x7ef8, 0x0516, - 0x7ef9, 0x43dc, - 0x7efa, 0x17f0, - 0x7efc, 0x1238, - 0x7efd, 0x1161, - 0x7efe, 0x17f2, - 0x7eff, 0x0a73, - 0x7f00, 0x1217, - 0x7f01, 0x17f3, - 0x7f04, 0x085d, - 0x7f05, 0x0aea, - 0x7f06, 0x09ad, - 0x7f07, 0x17f6, - 0x7f09, 0x081c, - 0x7f0a, 0x43dd, - 0x7f0b, 0x17f8, - 0x7f0d, 0x17ee, - 0x7f0e, 0x060f, - 0x7f0f, 0x17fa, - 0x7f10, 0x43de, - 0x7f11, 0x17fb, - 0x7f13, 0x07cf, - 0x7f14, 0x05bf, - 0x7f15, 0x0a6d, - 0x7f16, 0x0449, - 0x7f17, 0x17fd, - 0x7f18, 0x10f8, - 0x7f19, 0x17fe, - 0x7f1a, 0x06ba, - 0x7f1b, 0x1800, - 0x7f1c, 0x17ff, - 0x7f1d, 0x0689, - 0x7f1e, 0x43df, - 0x7f1f, 0x1801, - 0x7f20, 0x04bf, - 0x7f21, 0x1802, - 0x7f28, 0x108c, - 0x7f29, 0x0dea, - 0x7f2a, 0x1809, - 0x7f2e, 0x0d02, - 0x7f2f, 0x180d, - 0x7f34, 0x089a, - 0x7f35, 0x1812, - 0x7f36, 0x1c5e, - 0x7f37, 0x43e0, - 0x7f38, 0x06d2, - 0x7f39, 0x43e1, - 0x7f3a, 0x0c8c, - 0x7f3b, 0x43e2, - 0x7f42, 0x1c5f, - 0x7f43, 0x43e9, - 0x7f44, 0x1c60, - 0x7f46, 0x43ea, - 0x7f4c, 0x25e2, - 0x7f4d, 0x43f0, - 0x7f4e, 0x269a, - 0x7f4f, 0x43f1, - 0x7f50, 0x0737, - 0x7f51, 0x0ea9, - 0x7f52, 0x43f2, - 0x7f54, 0x129e, - 0x7f55, 0x0768, - 0x7f56, 0x43f4, - 0x7f57, 0x0a85, - 0x7f58, 0x1a81, - 0x7f59, 0x43f5, - 0x7f5a, 0x0640, - 0x7f5b, 0x43f6, - 0x7f5f, 0x1a83, - 0x7f60, 0x43fa, - 0x7f61, 0x1a82, - 0x7f62, 0x03e0, - 0x7f63, 0x43fb, - 0x7f68, 0x1a85, - 0x7f69, 0x1177, - 0x7f6a, 0x124c, - 0x7f6b, 0x4400, - 0x7f6e, 0x11c2, - 0x7f6f, 0x4403, - 0x7f70, 0x1eea, - 0x7f71, 0x1a87, - 0x7f72, 0x0d87, - 0x7f73, 0x4404, - 0x7f74, 0x1a86, - 0x7f75, 0x4405, - 0x7f77, 0x1e2c, - 0x7f78, 0x4407, - 0x7f79, 0x1a88, - 0x7f7a, 0x4408, - 0x7f7e, 0x1a8a, - 0x7f7f, 0x440c, - 0x7f81, 0x1a89, - 0x7f82, 0x440e, - 0x7f85, 0x2062, - 0x7f86, 0x24f1, - 0x7f87, 0x4411, - 0x7f88, 0x24f2, - 0x7f89, 0x4412, - 0x7f8a, 0x101b, - 0x7f8b, 0x4413, - 0x7f8c, 0x0c39, - 0x7f8d, 0x4414, - 0x7f8e, 0x0ac5, - 0x7f8f, 0x4415, - 0x7f94, 0x06dc, - 0x7f95, 0x441a, - 0x7f9a, 0x0a30, - 0x7f9b, 0x441f, - 0x7f9d, 0x1cc4, - 0x7f9e, 0x0faa, - 0x7f9f, 0x1cc5, - 0x7fa0, 0x4421, - 0x7fa1, 0x0f48, - 0x7fa2, 0x4422, - 0x7fa4, 0x0c95, - 0x7fa5, 0x25f2, - 0x7fa6, 0x4424, - 0x7fa7, 0x1cc6, - 0x7fa8, 0x4425, - 0x7fa9, 0x2215, - 0x7faa, 0x4426, - 0x7faf, 0x1cc7, - 0x7fb1, 0x442b, - 0x7fb2, 0x1cc9, - 0x7fb3, 0x442c, - 0x7fb8, 0x130e, - 0x7fb9, 0x06f9, - 0x7fba, 0x4431, - 0x7fbc, 0x176d, - 0x7fbd, 0x10d5, - 0x7fbe, 0x4433, - 0x7fbf, 0x1cde, - 0x7fc0, 0x4434, - 0x7fc1, 0x0edb, - 0x7fc2, 0x4435, - 0x7fc5, 0x0506, - 0x7fc6, 0x4438, - 0x7fca, 0x1b98, - 0x7fcb, 0x443c, - 0x7fcc, 0x1075, - 0x7fcd, 0x443d, - 0x7fce, 0x1cdf, - 0x7fcf, 0x443e, - 0x7fd2, 0x21ae, - 0x7fd3, 0x4441, - 0x7fd4, 0x0f55, - 0x7fd5, 0x1ce0, - 0x7fd6, 0x4442, - 0x7fd8, 0x0c49, - 0x7fd9, 0x4444, - 0x7fdf, 0x05b5, - 0x7fe0, 0x0567, - 0x7fe1, 0x1ce2, - 0x7fe2, 0x444a, - 0x7fe5, 0x1ce1, - 0x7fe6, 0x1ce3, - 0x7fe7, 0x444d, - 0x7fe9, 0x1ce4, - 0x7fea, 0x444f, - 0x7fee, 0x1ce5, - 0x7fef, 0x4453, - 0x7ff0, 0x0769, - 0x7ff1, 0x03ca, - 0x7ff2, 0x4454, - 0x7ff3, 0x1ce6, - 0x7ff4, 0x4455, - 0x7ff9, 0x20e0, - 0x7ffa, 0x445a, - 0x7ffb, 0x064a, - 0x7ffc, 0x1074, - 0x7ffd, 0x445b, - 0x8000, 0x1032, - 0x8001, 0x09ba, - 0x8002, 0x445e, - 0x8003, 0x0949, - 0x8004, 0x1953, - 0x8005, 0x1180, - 0x8006, 0x191a, - 0x8007, 0x445f, - 0x800b, 0x1bd7, - 0x800c, 0x0637, - 0x800d, 0x0d98, - 0x800e, 0x4463, - 0x8010, 0x0b30, - 0x8011, 0x4465, - 0x8012, 0x1bcb, - 0x8013, 0x4466, - 0x8014, 0x1bcc, - 0x8015, 0x06f6, - 0x8016, 0x1bcd, - 0x8017, 0x077b, - 0x8018, 0x1108, - 0x8019, 0x03dd, - 0x801a, 0x4467, - 0x801c, 0x1bce, - 0x801d, 0x4469, - 0x8020, 0x1bcf, - 0x8021, 0x446c, - 0x8022, 0x1bd0, - 0x8023, 0x446d, - 0x8025, 0x1bd1, - 0x8028, 0x1bd5, - 0x8029, 0x1bd4, - 0x802a, 0x0b96, - 0x802b, 0x446f, - 0x802c, 0x25c2, - 0x802d, 0x4470, - 0x802e, 0x25c1, - 0x802f, 0x4471, - 0x8031, 0x1bd6, - 0x8032, 0x4473, - 0x8033, 0x0639, - 0x8034, 0x4474, - 0x8035, 0x1bd8, - 0x8036, 0x1035, - 0x8037, 0x14b1, - 0x8038, 0x0dbf, - 0x8039, 0x4475, - 0x803b, 0x0501, - 0x803c, 0x4477, - 0x803d, 0x0583, - 0x803e, 0x4478, - 0x803f, 0x06fb, - 0x8040, 0x4479, - 0x8042, 0x0b57, - 0x8043, 0x1bd9, - 0x8044, 0x447b, - 0x8046, 0x1bda, - 0x8047, 0x447d, - 0x804a, 0x0a0d, - 0x804b, 0x0a44, - 0x804c, 0x11af, - 0x804d, 0x1bdb, - 0x804e, 0x4480, - 0x8052, 0x1bdc, - 0x8053, 0x4484, - 0x8054, 0x09f3, - 0x8055, 0x4485, - 0x8056, 0x2128, - 0x8057, 0x4486, - 0x8058, 0x0bd7, - 0x8059, 0x4487, - 0x805a, 0x090a, - 0x805b, 0x4488, - 0x805e, 0x2199, - 0x805f, 0x448b, - 0x8069, 0x1bdd, - 0x806a, 0x0552, - 0x806b, 0x4495, - 0x806f, 0x2017, - 0x8070, 0x1ea0, - 0x8071, 0x1bde, - 0x8072, 0x2125, - 0x8073, 0x214d, - 0x8074, 0x4499, - 0x8075, 0x25c4, - 0x8076, 0x209d, - 0x8077, 0x228a, - 0x8078, 0x449a, - 0x8079, 0x25c3, - 0x807a, 0x449b, - 0x807d, 0x2179, - 0x807e, 0x2038, - 0x807f, 0x1a1e, - 0x8080, 0x1a1d, - 0x8081, 0x449e, - 0x8083, 0x0dd5, - 0x8084, 0x1065, - 0x8085, 0x2155, - 0x8086, 0x0db6, - 0x8087, 0x1179, - 0x8088, 0x44a0, - 0x8089, 0x0cbd, - 0x808a, 0x44a1, - 0x808b, 0x09ca, - 0x808c, 0x0814, - 0x808d, 0x44a2, - 0x8093, 0x1971, - 0x8094, 0x44a8, - 0x8096, 0x0f6f, - 0x8097, 0x44aa, - 0x8098, 0x11e1, - 0x8099, 0x44ab, - 0x809a, 0x0606, - 0x809b, 0x06d3, - 0x809c, 0x1970, - 0x809d, 0x06c9, - 0x809e, 0x44ac, - 0x809f, 0x196f, - 0x80a0, 0x04cb, - 0x80a1, 0x0722, - 0x80a2, 0x11aa, - 0x80a3, 0x44ad, - 0x80a4, 0x0691, - 0x80a5, 0x0667, - 0x80a6, 0x44ae, - 0x80a9, 0x085a, - 0x80aa, 0x065b, - 0x80ab, 0x1976, - 0x80ac, 0x44b1, - 0x80ad, 0x1977, - 0x80ae, 0x03c4, - 0x80af, 0x095c, - 0x80b0, 0x44b2, - 0x80b1, 0x1975, - 0x80b2, 0x10e2, - 0x80b3, 0x44b3, - 0x80b4, 0x1978, - 0x80b5, 0x44b4, - 0x80b7, 0x1979, - 0x80b8, 0x44b6, - 0x80ba, 0x066b, - 0x80bb, 0x44b8, - 0x80bc, 0x1972, - 0x80bd, 0x1974, - 0x80be, 0x0d2f, - 0x80bf, 0x11d6, - 0x80c0, 0x116e, - 0x80c1, 0x0f7d, - 0x80c2, 0x197f, - 0x80c3, 0x0ec7, - 0x80c4, 0x1980, - 0x80c5, 0x44b9, - 0x80c6, 0x0589, - 0x80c7, 0x44ba, - 0x80cc, 0x041c, - 0x80cd, 0x1982, - 0x80ce, 0x0df8, - 0x80cf, 0x44bf, - 0x80d6, 0x0b97, - 0x80d7, 0x1983, - 0x80d8, 0x44c6, - 0x80d9, 0x1981, - 0x80da, 0x0ba0, - 0x80db, 0x197e, - 0x80dc, 0x0d3b, - 0x80dd, 0x1985, - 0x80de, 0x0406, - 0x80df, 0x44c7, - 0x80e1, 0x07b1, - 0x80e2, 0x44c9, - 0x80e4, 0x126d, - 0x80e5, 0x1bc7, - 0x80e6, 0x44cb, - 0x80e7, 0x197a, - 0x80eb, 0x1986, - 0x80ec, 0x179a, - 0x80ed, 0x1989, - 0x80ee, 0x44cc, - 0x80ef, 0x0975, - 0x80f0, 0x104f, - 0x80f1, 0x1987, - 0x80f2, 0x198c, - 0x80f3, 0x06e7, - 0x80f4, 0x1988, - 0x80f5, 0x44cd, - 0x80f6, 0x088b, - 0x80f7, 0x44ce, - 0x80f8, 0x0fa3, - 0x80f9, 0x44cf, - 0x80fa, 0x03c2, - 0x80fb, 0x44d0, - 0x80fc, 0x198d, - 0x80fd, 0x0b3f, - 0x80fe, 0x44d1, - 0x8100, 0x44d3, - 0x8102, 0x11ab, - 0x8103, 0x44d5, - 0x8105, 0x21d2, - 0x8106, 0x0563, - 0x8107, 0x44d7, - 0x8109, 0x0a9d, - 0x810a, 0x082c, - 0x810b, 0x44d9, - 0x810d, 0x198a, - 0x810f, 0x1123, - 0x8110, 0x0c09, - 0x8111, 0x0b37, - 0x8112, 0x198f, - 0x8113, 0x0b68, - 0x8114, 0x1309, - 0x8115, 0x44db, - 0x8116, 0x0478, - 0x8117, 0x44dc, - 0x8118, 0x1994, - 0x8119, 0x44dd, - 0x811a, 0x0896, - 0x811b, 0x24c7, - 0x811c, 0x44de, - 0x811e, 0x1992, - 0x811f, 0x44e0, - 0x812c, 0x1993, - 0x812d, 0x44ed, - 0x812f, 0x06a7, - 0x8130, 0x44ef, - 0x8131, 0x0e82, - 0x8132, 0x1995, - 0x8133, 0x44f0, - 0x8136, 0x1991, - 0x8137, 0x44f3, - 0x8138, 0x09fc, - 0x8139, 0x2279, - 0x813a, 0x44f4, - 0x813e, 0x0bc1, - 0x813f, 0x44f8, - 0x8146, 0x0e46, - 0x8147, 0x44ff, - 0x8148, 0x1996, - 0x8149, 0x4500, - 0x814a, 0x099b, - 0x814b, 0x103f, - 0x814c, 0x1997, - 0x814d, 0x4501, - 0x814e, 0x2123, - 0x814f, 0x4502, - 0x8150, 0x06aa, - 0x8151, 0x06a8, - 0x8152, 0x4503, - 0x8153, 0x1998, - 0x8154, 0x0c38, - 0x8155, 0x0ea4, - 0x8156, 0x24c5, - 0x8157, 0x4504, - 0x8159, 0x199a, - 0x815b, 0x4506, - 0x8160, 0x199d, - 0x8161, 0x24c9, - 0x8162, 0x450b, - 0x8165, 0x0f93, - 0x8166, 0x2094, - 0x8167, 0x19a2, - 0x8168, 0x450e, - 0x8169, 0x199e, - 0x816a, 0x450f, - 0x816b, 0x2296, - 0x816c, 0x4510, - 0x816d, 0x19a1, - 0x816e, 0x0cd4, - 0x816f, 0x4511, - 0x8170, 0x1025, - 0x8171, 0x199c, - 0x8172, 0x4512, - 0x8174, 0x1999, - 0x8175, 0x4514, - 0x8178, 0x1e77, - 0x8179, 0x06b4, - 0x817a, 0x0f46, - 0x817b, 0x0b48, - 0x817c, 0x199f, - 0x817e, 0x0e2d, - 0x817f, 0x0e79, - 0x8180, 0x03fd, - 0x8181, 0x4517, - 0x8182, 0x19a6, - 0x8183, 0x4518, - 0x8188, 0x19a5, - 0x8189, 0x451d, - 0x818a, 0x0479, - 0x818b, 0x451e, - 0x818f, 0x06db, - 0x8190, 0x4522, - 0x8191, 0x19a7, - 0x8192, 0x4523, - 0x8198, 0x0455, - 0x8199, 0x4529, - 0x819a, 0x1f06, - 0x819b, 0x0e18, - 0x819c, 0x0b07, - 0x819d, 0x0f12, - 0x819e, 0x452a, - 0x81a0, 0x1fa5, - 0x81a1, 0x452c, - 0x81a3, 0x19a9, - 0x81a4, 0x452e, - 0x81a6, 0x19b0, - 0x81a7, 0x4530, - 0x81a8, 0x0bb3, - 0x81a9, 0x2099, - 0x81aa, 0x19aa, - 0x81ab, 0x4531, - 0x81b3, 0x0cfe, - 0x81b4, 0x4539, - 0x81ba, 0x1641, - 0x81bb, 0x19ae, - 0x81bc, 0x453f, - 0x81bd, 0x1ead, - 0x81be, 0x24c8, - 0x81bf, 0x20a8, - 0x81c0, 0x0e7f, - 0x81c1, 0x19af, - 0x81c2, 0x0444, - 0x81c3, 0x109c, - 0x81c4, 0x4540, - 0x81c6, 0x1063, - 0x81c7, 0x4542, - 0x81c9, 0x201f, - 0x81ca, 0x19ad, - 0x81cb, 0x4544, - 0x81cc, 0x19ab, - 0x81cd, 0x20c5, - 0x81ce, 0x4545, - 0x81cf, 0x24ca, - 0x81d0, 0x4546, - 0x81d8, 0x1ff0, - 0x81d9, 0x454e, - 0x81da, 0x24c6, - 0x81db, 0x454f, - 0x81df, 0x225d, - 0x81e0, 0x22de, - 0x81e1, 0x4553, - 0x81e3, 0x04e1, - 0x81e4, 0x4555, - 0x81e7, 0x1902, - 0x81e8, 0x202c, - 0x81e9, 0x4558, - 0x81ea, 0x1231, - 0x81eb, 0x4559, - 0x81ec, 0x1ca9, - 0x81ed, 0x0519, - 0x81ee, 0x455a, - 0x81f3, 0x11c0, - 0x81f5, 0x455f, - 0x81fa, 0x2161, - 0x81fb, 0x118a, - 0x81fc, 0x08f9, - 0x81fd, 0x4564, - 0x81fe, 0x1ca5, - 0x81ff, 0x4565, - 0x8200, 0x102f, - 0x8201, 0x1ca6, - 0x8203, 0x4566, - 0x8204, 0x1ca8, - 0x8205, 0x08fa, - 0x8206, 0x10c4, - 0x8207, 0x223b, - 0x8208, 0x21d9, - 0x8209, 0x1fcb, - 0x820a, 0x1fc9, - 0x820b, 0x4567, - 0x820c, 0x0d19, - 0x820e, 0x4568, - 0x8210, 0x1c62, - 0x8211, 0x456a, - 0x8212, 0x0d7d, - 0x8213, 0x456b, - 0x8214, 0x0e45, - 0x8215, 0x456c, - 0x821b, 0x1618, - 0x821c, 0x0da9, - 0x821d, 0x4572, - 0x821e, 0x0ef7, - 0x821f, 0x11da, - 0x8220, 0x4573, - 0x8221, 0x1cab, - 0x8224, 0x4574, - 0x8228, 0x1cb0, - 0x8229, 0x4578, - 0x822a, 0x0774, - 0x822b, 0x1cb1, - 0x822c, 0x03ee, - 0x822d, 0x1cae, - 0x822e, 0x4579, - 0x822f, 0x1caf, - 0x8230, 0x0873, - 0x8231, 0x049c, - 0x8232, 0x457a, - 0x8233, 0x1cb4, - 0x8235, 0x0625, - 0x8236, 0x0477, - 0x8237, 0x0f3c, - 0x8238, 0x1cb2, - 0x8239, 0x052f, - 0x823a, 0x457b, - 0x823b, 0x1cb3, - 0x823c, 0x457c, - 0x823e, 0x1cb6, - 0x823f, 0x457e, - 0x8244, 0x1cb7, - 0x8245, 0x4583, - 0x8247, 0x0e58, - 0x8248, 0x4585, - 0x8249, 0x1cb8, - 0x824a, 0x4586, - 0x824b, 0x1cb9, - 0x824c, 0x4587, - 0x824f, 0x1cba, - 0x8250, 0x458a, - 0x8258, 0x0dc7, - 0x8259, 0x1e61, - 0x825a, 0x1cbb, - 0x825b, 0x4592, - 0x825f, 0x1cbc, - 0x8260, 0x4596, - 0x8264, 0x25ef, - 0x8265, 0x459a, - 0x8266, 0x1f98, - 0x8267, 0x459b, - 0x8268, 0x1cbd, - 0x8269, 0x459c, - 0x826b, 0x25f0, - 0x826c, 0x459e, - 0x826e, 0x1cdc, - 0x826f, 0x0a05, - 0x8270, 0x085b, - 0x8271, 0x1f88, - 0x8272, 0x0ce4, - 0x8273, 0x1007, - 0x8274, 0x1771, - 0x8275, 0x45a0, - 0x8277, 0x21f8, - 0x8278, 0x45a2, - 0x8279, 0x13e1, - 0x827a, 0x105c, - 0x827b, 0x45a3, - 0x827d, 0x13e2, - 0x827e, 0x03b7, - 0x827f, 0x13e3, - 0x8280, 0x45a5, - 0x8282, 0x08ab, - 0x8283, 0x45a7, - 0x8284, 0x13e7, - 0x8285, 0x45a8, - 0x8288, 0x1278, - 0x8289, 0x45ab, - 0x828a, 0x13e5, - 0x828b, 0x10d8, - 0x828c, 0x45ac, - 0x828d, 0x0d0f, - 0x828e, 0x13e8, - 0x828f, 0x13e4, - 0x8290, 0x45ad, - 0x8291, 0x13e9, - 0x8292, 0x0aa7, - 0x8293, 0x45ae, - 0x8297, 0x13ea, - 0x8298, 0x13f3, - 0x8299, 0x13eb, - 0x829a, 0x45b2, - 0x829c, 0x0eee, - 0x829d, 0x11a4, - 0x829e, 0x45b4, - 0x829f, 0x13fd, - 0x82a0, 0x45b5, - 0x82a1, 0x13fb, - 0x82a2, 0x45b6, - 0x82a4, 0x1400, - 0x82a5, 0x08b7, - 0x82a6, 0x0a52, - 0x82a7, 0x45b8, - 0x82a8, 0x13e6, - 0x82a9, 0x13f9, - 0x82aa, 0x13fc, - 0x82ab, 0x13ec, - 0x82ac, 0x066f, - 0x82ad, 0x03d0, - 0x82ae, 0x13f5, - 0x82af, 0x0f89, - 0x82b0, 0x13ef, - 0x82b1, 0x07bd, - 0x82b2, 0x45b9, - 0x82b3, 0x0659, - 0x82b4, 0x13fa, - 0x82b5, 0x45ba, - 0x82b7, 0x13f4, - 0x82b8, 0x13ed, - 0x82b9, 0x0c58, - 0x82ba, 0x45bc, - 0x82bb, 0x2322, - 0x82bc, 0x45bd, - 0x82bd, 0x0fe8, - 0x82be, 0x13ee, - 0x82bf, 0x45be, - 0x82c1, 0x13f8, - 0x82c2, 0x45c0, - 0x82c4, 0x13fe, - 0x82c5, 0x45c2, - 0x82c7, 0x0ebc, - 0x82c8, 0x13f0, - 0x82c9, 0x45c4, - 0x82ca, 0x13f1, - 0x82cb, 0x13f6, - 0x82cd, 0x049b, - 0x82ce, 0x13ff, - 0x82cf, 0x0dca, - 0x82d0, 0x45c5, - 0x82d1, 0x10fa, - 0x82d2, 0x1409, - 0x82d3, 0x140d, - 0x82d4, 0x0df9, - 0x82d5, 0x1414, - 0x82d6, 0x45c6, - 0x82d7, 0x0aec, - 0x82d8, 0x140a, - 0x82d9, 0x45c7, - 0x82db, 0x094e, - 0x82dc, 0x1407, - 0x82dd, 0x45c9, - 0x82de, 0x0405, - 0x82df, 0x070f, - 0x82e0, 0x1413, - 0x82e1, 0x1401, - 0x82e2, 0x45ca, - 0x82e3, 0x13f2, - 0x82e4, 0x1404, - 0x82e5, 0x0ccf, - 0x82e6, 0x096d, - 0x82e7, 0x2336, - 0x82e8, 0x45cb, - 0x82eb, 0x0cf4, - 0x82ec, 0x45ce, - 0x82ef, 0x0426, - 0x82f0, 0x45d1, - 0x82f1, 0x1087, - 0x82f2, 0x45d2, - 0x82f4, 0x1408, - 0x82f5, 0x45d4, - 0x82f7, 0x1403, - 0x82f8, 0x45d6, - 0x82f9, 0x0bda, - 0x82fa, 0x45d7, - 0x82fb, 0x140c, - 0x82fc, 0x45d8, - 0x8300, 0x45dc, - 0x8301, 0x121f, - 0x8302, 0x0ab4, - 0x8303, 0x0653, - 0x8304, 0x0c4e, - 0x8305, 0x0aae, - 0x8306, 0x1410, - 0x8307, 0x1406, - 0x8308, 0x1419, - 0x8309, 0x1402, - 0x830a, 0x45dd, - 0x830c, 0x140b, - 0x830d, 0x45df, - 0x830e, 0x08d4, - 0x830f, 0x1405, - 0x8310, 0x45e0, - 0x8311, 0x140e, - 0x8312, 0x45e1, - 0x8314, 0x1411, - 0x8316, 0x45e3, - 0x8317, 0x1426, - 0x8318, 0x45e4, - 0x831a, 0x140f, - 0x831b, 0x142e, - 0x831c, 0x1415, - 0x831d, 0x45e6, - 0x8327, 0x085e, - 0x8328, 0x0547, - 0x8329, 0x45f0, - 0x832b, 0x0aa8, - 0x832c, 0x04ae, - 0x832d, 0x1428, - 0x832e, 0x45f2, - 0x832f, 0x1420, - 0x8330, 0x45f3, - 0x8331, 0x141d, - 0x8332, 0x45f4, - 0x8333, 0x142a, - 0x8334, 0x141c, - 0x8335, 0x1077, - 0x8336, 0x04af, - 0x8337, 0x45f5, - 0x8338, 0x0cb2, - 0x8339, 0x0cbe, - 0x833a, 0x1429, - 0x833b, 0x45f6, - 0x833c, 0x141b, - 0x833d, 0x45f7, - 0x8340, 0x1425, - 0x8341, 0x45fa, - 0x8343, 0x1423, - 0x8344, 0x45fc, - 0x8346, 0x08d2, - 0x8347, 0x1422, - 0x8348, 0x45fe, - 0x8349, 0x04a4, - 0x834a, 0x45ff, - 0x834f, 0x1421, - 0x8350, 0x0869, - 0x8351, 0x1416, - 0x8352, 0x07d9, - 0x8353, 0x4604, - 0x8354, 0x09de, - 0x8355, 0x4605, - 0x835a, 0x0847, - 0x835b, 0x1417, - 0x835d, 0x460a, - 0x835e, 0x141f, - 0x835f, 0x1424, - 0x8360, 0x1427, - 0x8361, 0x0595, - 0x8362, 0x460b, - 0x8363, 0x0cb4, - 0x8364, 0x07fc, - 0x8365, 0x142c, - 0x8366, 0x142b, - 0x8367, 0x1090, - 0x8368, 0x142d, - 0x8369, 0x142f, - 0x836a, 0x1431, - 0x836b, 0x1078, - 0x836c, 0x1430, - 0x836d, 0x1432, - 0x836f, 0x1030, - 0x8370, 0x460c, - 0x8377, 0x0780, - 0x8378, 0x1435, - 0x8379, 0x4613, - 0x837b, 0x1442, - 0x837c, 0x143d, - 0x837d, 0x1440, - 0x837e, 0x4615, - 0x8385, 0x143c, - 0x8386, 0x0bed, - 0x8387, 0x461c, - 0x8389, 0x09dd, - 0x838a, 0x22ab, - 0x838b, 0x461e, - 0x838e, 0x0ce8, - 0x838f, 0x4621, - 0x8392, 0x141a, - 0x8393, 0x143a, - 0x8394, 0x4624, - 0x8396, 0x1fbf, - 0x8397, 0x4626, - 0x8398, 0x1443, - 0x8399, 0x4627, - 0x839b, 0x141e, - 0x839c, 0x143b, - 0x839d, 0x4629, - 0x839e, 0x1444, - 0x839f, 0x462a, - 0x83a0, 0x1438, - 0x83a1, 0x462b, - 0x83a2, 0x1f7d, - 0x83a3, 0x462c, - 0x83a7, 0x2333, - 0x83a8, 0x1445, - 0x83a9, 0x143f, - 0x83aa, 0x1439, - 0x83ab, 0x0b0d, - 0x83ac, 0x4630, - 0x83b0, 0x1434, - 0x83b1, 0x099e, - 0x83b2, 0x09f4, - 0x83b3, 0x1436, - 0x83b5, 0x4634, - 0x83b6, 0x143e, - 0x83b7, 0x0806, - 0x83b8, 0x1441, - 0x83b9, 0x108d, - 0x83ba, 0x1446, - 0x83bb, 0x4635, - 0x83bc, 0x1447, - 0x83bd, 0x0aac, - 0x83be, 0x4636, - 0x83c0, 0x145e, - 0x83c1, 0x1448, - 0x83c2, 0x4638, - 0x83c5, 0x145d, - 0x83c6, 0x463b, - 0x83c7, 0x0716, - 0x83c8, 0x463c, - 0x83ca, 0x0904, - 0x83cb, 0x463e, - 0x83cc, 0x0929, - 0x83cd, 0x463f, - 0x83cf, 0x0781, - 0x83d0, 0x4641, - 0x83d4, 0x1456, - 0x83d5, 0x4645, - 0x83d6, 0x1451, - 0x83d7, 0x4646, - 0x83d8, 0x144b, - 0x83d9, 0x4647, - 0x83dc, 0x0492, - 0x83dd, 0x144f, - 0x83de, 0x464a, - 0x83df, 0x1457, - 0x83e0, 0x046b, - 0x83e1, 0x1461, - 0x83e2, 0x464b, - 0x83e5, 0x144a, - 0x83e6, 0x464e, - 0x83e9, 0x0bef, - 0x83ea, 0x145c, - 0x83eb, 0x4651, - 0x83ef, 0x1f4d, - 0x83f0, 0x1460, - 0x83f1, 0x0a2b, - 0x83f2, 0x0663, - 0x83f3, 0x4655, - 0x83f8, 0x145a, - 0x83fa, 0x465a, - 0x83fd, 0x1450, - 0x83fe, 0x465d, - 0x8400, 0x465f, - 0x8401, 0x1449, - 0x8402, 0x4660, - 0x8403, 0x1459, - 0x8404, 0x0e24, - 0x8405, 0x4661, - 0x8406, 0x1455, - 0x8407, 0x2334, - 0x8408, 0x4662, - 0x840a, 0x1ff1, - 0x840b, 0x144e, - 0x840c, 0x0acd, - 0x840d, 0x0bdb, - 0x840e, 0x0ebd, - 0x840f, 0x1458, - 0x8410, 0x4664, - 0x8411, 0x1454, - 0x8412, 0x4665, - 0x8418, 0x144d, - 0x8419, 0x466b, - 0x841c, 0x1452, - 0x841d, 0x0a83, - 0x841e, 0x466e, - 0x8424, 0x108e, - 0x8426, 0x145f, - 0x8427, 0x0f61, - 0x8428, 0x0cd3, - 0x8429, 0x4674, - 0x842c, 0x218b, - 0x842d, 0x4677, - 0x8431, 0x1472, - 0x8432, 0x467b, - 0x8435, 0x2349, - 0x8436, 0x467e, - 0x8438, 0x1453, - 0x8439, 0x4680, - 0x843c, 0x146c, - 0x843d, 0x0a8b, - 0x843e, 0x4683, - 0x8446, 0x146d, - 0x8447, 0x468b, - 0x8449, 0x220b, - 0x844a, 0x468d, - 0x8451, 0x1463, - 0x8452, 0x2346, - 0x8453, 0x4694, - 0x8457, 0x11f7, - 0x8458, 0x4698, - 0x8459, 0x1465, - 0x845a, 0x1464, - 0x845b, 0x06eb, - 0x845c, 0x1462, - 0x845d, 0x4699, - 0x8461, 0x0bee, - 0x8462, 0x469d, - 0x8463, 0x05ec, - 0x8464, 0x2347, - 0x8465, 0x469e, - 0x8466, 0x2193, - 0x8467, 0x469f, - 0x8469, 0x146e, - 0x846a, 0x46a1, - 0x846b, 0x07b0, - 0x846c, 0x1124, - 0x846d, 0x1473, - 0x846e, 0x46a2, - 0x846f, 0x26a1, - 0x8470, 0x46a3, - 0x8471, 0x0553, - 0x8472, 0x46a4, - 0x8473, 0x1466, - 0x8474, 0x46a5, - 0x8475, 0x0988, - 0x8476, 0x146f, - 0x8477, 0x1f62, - 0x8478, 0x146b, - 0x8479, 0x46a6, - 0x847a, 0x1469, - 0x847b, 0x46a7, - 0x8482, 0x05ba, - 0x8483, 0x46ae, - 0x8487, 0x1467, - 0x8489, 0x146a, - 0x848a, 0x46b2, - 0x848b, 0x0880, - 0x848c, 0x1470, - 0x848d, 0x46b3, - 0x848e, 0x1471, - 0x848f, 0x46b4, - 0x8493, 0x234d, - 0x8494, 0x2348, - 0x8495, 0x46b8, - 0x8497, 0x1481, - 0x8498, 0x46ba, - 0x8499, 0x0ace, - 0x849a, 0x46bb, - 0x849c, 0x0dd7, - 0x849d, 0x46bd, - 0x84a1, 0x147e, - 0x84a2, 0x46c1, - 0x84af, 0x1297, - 0x84b0, 0x46ce, - 0x84b2, 0x0bf0, - 0x84b3, 0x46d0, - 0x84b4, 0x1480, - 0x84b5, 0x46d1, - 0x84b8, 0x1195, - 0x84b9, 0x147f, - 0x84ba, 0x147c, - 0x84bb, 0x46d4, - 0x84bc, 0x1e60, - 0x84bd, 0x1478, - 0x84be, 0x46d5, - 0x84bf, 0x147b, - 0x84c0, 0x2345, - 0x84c1, 0x1474, - 0x84c2, 0x46d6, - 0x84c4, 0x0fb9, - 0x84c5, 0x46d8, - 0x84c9, 0x0cb3, - 0x84ca, 0x147a, - 0x84cb, 0x1f12, - 0x84cc, 0x46dc, - 0x84cd, 0x1475, - 0x84ce, 0x46dd, - 0x84d0, 0x1476, - 0x84d1, 0x0de7, - 0x84d2, 0x46df, - 0x84d3, 0x1479, - 0x84d4, 0x46e0, - 0x84d6, 0x0436, - 0x84d7, 0x46e2, - 0x84dd, 0x09a1, - 0x84de, 0x46e8, - 0x84df, 0x082e, - 0x84e0, 0x147d, - 0x84e1, 0x46e9, - 0x84e3, 0x1483, - 0x84e4, 0x46eb, - 0x84e5, 0x1482, - 0x84e6, 0x1477, - 0x84e7, 0x46ec, - 0x84ec, 0x0baf, - 0x84ed, 0x46f1, - 0x84ee, 0x2018, - 0x84ef, 0x2335, - 0x84f0, 0x1487, - 0x84f1, 0x46f2, - 0x84fc, 0x148e, - 0x84fd, 0x233c, - 0x84fe, 0x46fd, - 0x84ff, 0x148d, - 0x8500, 0x46fe, - 0x850c, 0x1484, - 0x850d, 0x470a, - 0x8511, 0x0af4, - 0x8512, 0x470e, - 0x8513, 0x0aa2, - 0x8514, 0x266f, - 0x8515, 0x470f, - 0x8517, 0x1182, - 0x8518, 0x4711, - 0x851a, 0x0ec4, - 0x851b, 0x4713, - 0x851e, 0x2351, - 0x851f, 0x1489, - 0x8520, 0x4716, - 0x8521, 0x0493, - 0x8522, 0x4717, - 0x8523, 0x1fa0, - 0x8524, 0x4718, - 0x8526, 0x2338, - 0x8527, 0x471a, - 0x852b, 0x0b4b, - 0x852c, 0x0d76, - 0x852d, 0x221b, - 0x852e, 0x471e, - 0x8537, 0x0c3b, - 0x8538, 0x1486, - 0x8539, 0x1488, - 0x853a, 0x148a, - 0x853b, 0x148c, - 0x853c, 0x03b5, - 0x853d, 0x0437, - 0x853e, 0x4727, - 0x8541, 0x2342, - 0x8542, 0x472a, - 0x8543, 0x1496, - 0x8544, 0x472b, - 0x8546, 0x234f, - 0x8547, 0x472d, - 0x8548, 0x1490, - 0x8549, 0x0887, - 0x854a, 0x0cca, - 0x854b, 0x472e, - 0x854e, 0x233d, - 0x854f, 0x4731, - 0x8552, 0x2344, - 0x8553, 0x2331, - 0x8554, 0x4734, - 0x8555, 0x234b, - 0x8556, 0x148b, - 0x8557, 0x4735, - 0x8558, 0x233b, - 0x8559, 0x148f, - 0x855a, 0x4736, - 0x855e, 0x1493, - 0x855f, 0x473a, - 0x8562, 0x2350, - 0x8563, 0x473d, - 0x8564, 0x1492, - 0x8565, 0x473e, - 0x8568, 0x1491, - 0x8569, 0x1eb4, - 0x856a, 0x21a6, - 0x856b, 0x4741, - 0x856d, 0x21cb, - 0x856e, 0x4743, - 0x8572, 0x1497, - 0x8573, 0x4747, - 0x8574, 0x110f, - 0x8575, 0x4748, - 0x8577, 0x2355, - 0x8578, 0x474a, - 0x8579, 0x149d, - 0x857a, 0x1494, - 0x857b, 0x1498, - 0x857c, 0x474b, - 0x857e, 0x09c4, - 0x857f, 0x474d, - 0x8584, 0x040a, - 0x8585, 0x14a0, - 0x8586, 0x4752, - 0x8587, 0x149b, - 0x8588, 0x233e, - 0x8589, 0x4753, - 0x858a, 0x1f74, - 0x858b, 0x4754, - 0x858c, 0x2330, - 0x858d, 0x4755, - 0x858f, 0x149c, - 0x8590, 0x4757, - 0x8591, 0x2680, - 0x8592, 0x4758, - 0x8594, 0x20da, - 0x8595, 0x475a, - 0x859b, 0x0fcf, - 0x859c, 0x149f, - 0x859d, 0x4760, - 0x859f, 0x234a, - 0x85a0, 0x4762, - 0x85a4, 0x1499, - 0x85a5, 0x4766, - 0x85a6, 0x1f91, - 0x85a7, 0x4767, - 0x85a8, 0x149a, - 0x85a9, 0x2107, - 0x85aa, 0x0f88, - 0x85ab, 0x4768, - 0x85ae, 0x149e, - 0x85af, 0x0d84, - 0x85b0, 0x14a3, - 0x85b1, 0x476b, - 0x85b7, 0x14a2, - 0x85b8, 0x4771, - 0x85b9, 0x14a1, - 0x85ba, 0x233f, - 0x85bb, 0x4772, - 0x85c1, 0x14a5, - 0x85c2, 0x4778, - 0x85c9, 0x08b6, - 0x85ca, 0x477f, - 0x85cd, 0x1ff4, - 0x85ce, 0x2343, - 0x85cf, 0x049f, - 0x85d0, 0x0aef, - 0x85d1, 0x4782, - 0x85d3, 0x14a4, - 0x85d4, 0x4784, - 0x85d5, 0x0b7b, - 0x85d6, 0x4785, - 0x85dc, 0x14a6, - 0x85dd, 0x2212, - 0x85de, 0x478b, - 0x85e4, 0x0e2c, - 0x85e5, 0x2207, - 0x85e6, 0x4791, - 0x85e9, 0x0647, - 0x85ea, 0x2359, - 0x85eb, 0x4794, - 0x85f4, 0x2254, - 0x85f5, 0x479d, - 0x85f6, 0x2332, - 0x85f7, 0x479e, - 0x85f9, 0x1e26, - 0x85fa, 0x2357, - 0x85fb, 0x1128, - 0x85fc, 0x47a0, - 0x85ff, 0x14a7, - 0x8600, 0x47a3, - 0x8604, 0x2358, - 0x8605, 0x14a9, - 0x8606, 0x2042, - 0x8607, 0x2153, - 0x8608, 0x47a7, - 0x860b, 0x20bb, - 0x860c, 0x47aa, - 0x8611, 0x0b05, - 0x8612, 0x47af, - 0x8616, 0x14ab, - 0x8617, 0x47b3, - 0x861a, 0x235a, - 0x861b, 0x47b6, - 0x861e, 0x2356, - 0x861f, 0x47b9, - 0x8622, 0x2337, - 0x8623, 0x47bc, - 0x8627, 0x14a8, - 0x8628, 0x47c0, - 0x8629, 0x14aa, - 0x862a, 0x47c1, - 0x862d, 0x1ff9, - 0x862e, 0x47c4, - 0x8638, 0x115b, - 0x8639, 0x47ce, - 0x863a, 0x2353, - 0x863b, 0x47cf, - 0x863c, 0x14ac, - 0x863d, 0x47d0, - 0x863f, 0x2061, - 0x8640, 0x47d2, - 0x864d, 0x1bf0, - 0x864e, 0x07b7, - 0x864f, 0x0a59, - 0x8650, 0x0b71, - 0x8651, 0x0a6e, - 0x8652, 0x47df, - 0x8654, 0x1bf1, - 0x8655, 0x1e95, - 0x8656, 0x47e1, - 0x865a, 0x0fb4, - 0x865b, 0x47e5, - 0x865c, 0x2049, - 0x865d, 0x47e6, - 0x865e, 0x10c2, - 0x865f, 0x1f42, - 0x8660, 0x47e7, - 0x8662, 0x196d, - 0x8663, 0x47e9, - 0x8667, 0x1fe8, - 0x8668, 0x47ed, - 0x866b, 0x050b, - 0x866c, 0x1bf2, - 0x866d, 0x47f0, - 0x866e, 0x1bf3, - 0x866f, 0x47f1, - 0x8671, 0x0d44, - 0x8672, 0x47f3, - 0x8679, 0x079e, - 0x867a, 0x1bf5, - 0x867b, 0x1bf7, - 0x867c, 0x1bf6, - 0x867d, 0x0dd9, - 0x867e, 0x0f27, - 0x867f, 0x1bf4, - 0x8680, 0x0d4b, - 0x8681, 0x1056, - 0x8682, 0x0a93, - 0x8683, 0x47fa, - 0x868a, 0x0ed2, - 0x868b, 0x1bfa, - 0x868c, 0x0401, - 0x868d, 0x1bf9, - 0x868e, 0x4801, - 0x8693, 0x1c00, - 0x8694, 0x4806, - 0x8695, 0x0496, - 0x8696, 0x4807, - 0x869c, 0x0fea, - 0x869d, 0x1bfc, - 0x869e, 0x480d, - 0x86a3, 0x1bfe, - 0x86a4, 0x112c, - 0x86a5, 0x4812, - 0x86a7, 0x1bfd, - 0x86a8, 0x1bf8, - 0x86a9, 0x1c01, - 0x86aa, 0x1bff, - 0x86ab, 0x4814, - 0x86ac, 0x1bfb, - 0x86ad, 0x4815, - 0x86af, 0x1c09, - 0x86b0, 0x1c06, - 0x86b1, 0x1c08, - 0x86b2, 0x4817, - 0x86b4, 0x1c0c, - 0x86b5, 0x1c04, - 0x86b6, 0x1c02, - 0x86b7, 0x4819, - 0x86ba, 0x1c07, - 0x86bb, 0x481c, - 0x86c0, 0x11fa, - 0x86c1, 0x4821, - 0x86c4, 0x1c03, - 0x86c5, 0x4824, - 0x86c6, 0x0c76, - 0x86c7, 0x0d18, - 0x86c8, 0x4825, - 0x86c9, 0x1c0a, - 0x86ca, 0x071f, - 0x86cb, 0x0591, - 0x86cc, 0x4826, - 0x86ce, 0x1c05, - 0x86cf, 0x1c0b, - 0x86d0, 0x1c12, - 0x86d1, 0x1c18, - 0x86d2, 0x4828, - 0x86d4, 0x07ec, - 0x86d5, 0x482a, - 0x86d8, 0x1c17, - 0x86d9, 0x0e8d, - 0x86da, 0x482d, - 0x86db, 0x11ea, - 0x86dc, 0x482e, - 0x86de, 0x1c14, - 0x86df, 0x1c16, - 0x86e0, 0x4830, - 0x86e4, 0x06ed, - 0x86e5, 0x4834, - 0x86e9, 0x1c0d, - 0x86ea, 0x4838, - 0x86ed, 0x1c10, - 0x86ee, 0x0aa0, - 0x86ef, 0x483b, - 0x86f0, 0x117e, - 0x86f1, 0x1c0e, - 0x86f3, 0x1c11, - 0x86f4, 0x1c15, - 0x86f5, 0x483c, - 0x86f8, 0x1c1b, - 0x86f9, 0x10a1, - 0x86fa, 0x25da, - 0x86fb, 0x483f, - 0x86fe, 0x0629, - 0x86ff, 0x4842, - 0x8700, 0x0d88, - 0x8701, 0x4843, - 0x8702, 0x0681, - 0x8703, 0x1c19, - 0x8704, 0x4844, - 0x8706, 0x25d7, - 0x8707, 0x1c1a, - 0x8708, 0x1c1c, - 0x8709, 0x1c1f, - 0x870a, 0x1c1d, - 0x870b, 0x4846, - 0x870d, 0x1c1e, - 0x870e, 0x4848, - 0x8712, 0x0ffa, - 0x8713, 0x1c13, - 0x8714, 0x484c, - 0x8715, 0x0e7a, - 0x8716, 0x484d, - 0x8717, 0x0ede, - 0x8718, 0x11a8, - 0x8719, 0x484e, - 0x871a, 0x1c25, - 0x871b, 0x484f, - 0x871c, 0x0ae0, - 0x871d, 0x4850, - 0x871e, 0x1c22, - 0x871f, 0x4851, - 0x8721, 0x099a, - 0x8722, 0x1c2e, - 0x8723, 0x1c20, - 0x8724, 0x4853, - 0x8725, 0x1c23, - 0x8726, 0x4854, - 0x8729, 0x1c2a, - 0x872a, 0x4857, - 0x872e, 0x1c24, - 0x872f, 0x485b, - 0x8731, 0x1c29, - 0x8732, 0x485d, - 0x8734, 0x1c28, - 0x8735, 0x485f, - 0x8737, 0x1c2b, - 0x8738, 0x4861, - 0x873b, 0x1c21, - 0x873c, 0x4864, - 0x873e, 0x1c26, - 0x873f, 0x1c2c, - 0x8740, 0x4866, - 0x8747, 0x1091, - 0x8748, 0x1c27, - 0x8749, 0x04bc, - 0x874a, 0x486d, - 0x874c, 0x1c34, - 0x874d, 0x486f, - 0x874e, 0x0f76, - 0x874f, 0x4870, - 0x8753, 0x1c37, - 0x8754, 0x4874, - 0x8755, 0x212e, - 0x8756, 0x4875, - 0x8757, 0x07dd, - 0x8758, 0x4876, - 0x8759, 0x1c3b, - 0x875a, 0x4877, - 0x8760, 0x1c32, - 0x8761, 0x487d, - 0x8763, 0x1c38, - 0x8764, 0x1c3a, - 0x8765, 0x1c3c, - 0x8766, 0x21b2, - 0x8767, 0x487f, - 0x876e, 0x1c35, - 0x876f, 0x4886, - 0x8770, 0x1c33, - 0x8771, 0x4887, - 0x8774, 0x07b2, - 0x8775, 0x488a, - 0x8776, 0x05dc, - 0x8777, 0x488b, - 0x8778, 0x219e, - 0x8779, 0x488c, - 0x877b, 0x1c31, - 0x877c, 0x1c39, - 0x877d, 0x1c2f, - 0x877f, 0x488e, - 0x8782, 0x1c2d, - 0x8783, 0x1c46, - 0x8784, 0x25dc, - 0x8785, 0x1c43, - 0x8786, 0x4891, - 0x8788, 0x1c42, - 0x8789, 0x4893, - 0x878b, 0x1c36, - 0x878c, 0x4895, - 0x878d, 0x0cb5, - 0x878e, 0x4896, - 0x8793, 0x1c3d, - 0x8794, 0x489b, - 0x8797, 0x1c45, - 0x8798, 0x489e, - 0x879e, 0x206c, - 0x879f, 0x0afd, - 0x87a0, 0x48a4, - 0x87a2, 0x2226, - 0x87a3, 0x48a6, - 0x87a8, 0x1c3f, - 0x87a9, 0x48ab, - 0x87ab, 0x1c47, - 0x87ac, 0x1c49, - 0x87ad, 0x1c44, - 0x87ae, 0x48ad, - 0x87af, 0x1c3e, - 0x87b0, 0x48ae, - 0x87b3, 0x1c4b, - 0x87b4, 0x48b1, - 0x87b5, 0x1c4a, - 0x87b6, 0x48b2, - 0x87ba, 0x0a84, - 0x87bb, 0x25e0, - 0x87bc, 0x48b6, - 0x87bd, 0x1c4e, - 0x87be, 0x48b7, - 0x87c0, 0x1c50, - 0x87c1, 0x48b9, - 0x87c4, 0x227b, - 0x87c5, 0x48bc, - 0x87c6, 0x1c41, - 0x87c7, 0x48bd, - 0x87c8, 0x25de, - 0x87c9, 0x48be, - 0x87ca, 0x1c51, - 0x87cb, 0x1c4c, - 0x87cc, 0x48bf, - 0x87ce, 0x25e1, - 0x87cf, 0x48c1, - 0x87d1, 0x1c4f, - 0x87d2, 0x1c40, - 0x87d3, 0x1c4d, - 0x87d4, 0x48c3, - 0x87db, 0x1c52, - 0x87dc, 0x48ca, - 0x87e0, 0x1c54, - 0x87e1, 0x48ce, - 0x87e3, 0x25d5, - 0x87e4, 0x48d0, - 0x87e5, 0x1c48, - 0x87e6, 0x48d1, - 0x87ea, 0x1c53, - 0x87eb, 0x48d5, - 0x87ec, 0x1e6b, - 0x87ed, 0x48d6, - 0x87ee, 0x1c55, - 0x87ef, 0x25db, - 0x87f0, 0x48d7, - 0x87f2, 0x1e89, - 0x87f3, 0x48d9, - 0x87f6, 0x25d9, - 0x87f7, 0x48dc, - 0x87f9, 0x0f82, - 0x87fa, 0x48de, - 0x87fb, 0x2211, - 0x87fc, 0x48df, - 0x87fe, 0x1c58, - 0x87ff, 0x48e1, - 0x8800, 0x48e2, - 0x8803, 0x130d, - 0x8804, 0x48e5, - 0x8805, 0x2229, - 0x8806, 0x25d6, - 0x8807, 0x48e6, - 0x880a, 0x1c59, - 0x880b, 0x48e9, - 0x8810, 0x25dd, - 0x8811, 0x25df, - 0x8812, 0x48ee, - 0x8813, 0x1c57, - 0x8814, 0x48ef, - 0x8815, 0x0cbf, - 0x8816, 0x1c56, - 0x8817, 0x48f0, - 0x881b, 0x1c5a, - 0x881c, 0x48f4, - 0x881f, 0x1fef, - 0x8820, 0x48f7, - 0x8821, 0x1c5b, - 0x8822, 0x0543, - 0x8823, 0x25d8, - 0x8824, 0x48f8, - 0x8831, 0x1f29, - 0x8832, 0x1a8d, - 0x8833, 0x4905, - 0x8836, 0x1e5b, - 0x8837, 0x4908, - 0x8839, 0x1c5c, - 0x883a, 0x490a, - 0x883b, 0x2076, - 0x883c, 0x1c5d, - 0x883d, 0x490b, - 0x8840, 0x0fd3, - 0x8841, 0x490e, - 0x8844, 0x1caa, - 0x8845, 0x0f91, - 0x8846, 0x2297, - 0x8847, 0x4911, - 0x884a, 0x2690, - 0x884b, 0x4914, - 0x884c, 0x0f9b, - 0x884d, 0x1005, - 0x884e, 0x4915, - 0x8853, 0x213f, - 0x8854, 0x0f3b, - 0x8855, 0x491a, - 0x8857, 0x08a7, - 0x8858, 0x491c, - 0x8859, 0x0fec, - 0x885a, 0x491d, - 0x885b, 0x2198, - 0x885c, 0x491e, - 0x885d, 0x1e88, - 0x885e, 0x491f, - 0x8861, 0x0799, - 0x8862, 0x15ed, - 0x8863, 0x1049, - 0x8864, 0x1ba6, - 0x8865, 0x0480, - 0x8866, 0x4922, - 0x8868, 0x0456, - 0x8869, 0x1ba7, - 0x886a, 0x4924, - 0x886b, 0x0cf9, - 0x886c, 0x04e9, - 0x886d, 0x4925, - 0x886e, 0x1306, - 0x886f, 0x4926, - 0x8870, 0x0d9a, - 0x8871, 0x4927, - 0x8872, 0x1ba8, - 0x8873, 0x4928, - 0x8877, 0x11d3, - 0x8878, 0x492c, - 0x8879, 0x228c, - 0x887a, 0x492d, - 0x887d, 0x1ba9, - 0x887e, 0x1cbe, - 0x887f, 0x1baa, - 0x8880, 0x4930, - 0x8881, 0x10ef, - 0x8882, 0x1bab, - 0x8883, 0x4931, - 0x8884, 0x03cb, - 0x8885, 0x1cbf, - 0x8886, 0x4932, - 0x8888, 0x1cc0, - 0x8889, 0x4934, - 0x888b, 0x057f, - 0x888c, 0x4936, - 0x888d, 0x0b9c, - 0x888e, 0x4937, - 0x8892, 0x0e0e, - 0x8893, 0x493b, - 0x8896, 0x0faf, - 0x8897, 0x493e, - 0x889c, 0x0e91, - 0x889d, 0x4943, - 0x88a2, 0x1bac, - 0x88a3, 0x4948, - 0x88a4, 0x1307, - 0x88a5, 0x4949, - 0x88ab, 0x0424, - 0x88ac, 0x494f, - 0x88ad, 0x0f1b, - 0x88ae, 0x4950, - 0x88b1, 0x069f, - 0x88b2, 0x4953, - 0x88b7, 0x1bae, - 0x88b8, 0x4958, - 0x88bc, 0x1baf, - 0x88bd, 0x495c, - 0x88c1, 0x048a, - 0x88c2, 0x0a1a, - 0x88c3, 0x4960, - 0x88c5, 0x120d, - 0x88c6, 0x1bad, - 0x88c7, 0x4962, - 0x88c9, 0x1bb0, - 0x88ca, 0x25f1, - 0x88cb, 0x4964, - 0x88ce, 0x1bb2, - 0x88cf, 0x200c, - 0x88d0, 0x4967, - 0x88d2, 0x130a, - 0x88d3, 0x4969, - 0x88d4, 0x1068, - 0x88d5, 0x10e6, - 0x88d6, 0x496a, - 0x88d8, 0x1cc1, - 0x88d9, 0x0c94, - 0x88da, 0x496c, - 0x88dc, 0x1e58, - 0x88dd, 0x22ac, - 0x88de, 0x496e, - 0x88df, 0x1cc2, - 0x88e0, 0x496f, - 0x88e2, 0x1bb1, - 0x88e3, 0x1bb3, - 0x88e4, 0x0970, - 0x88e5, 0x1bb4, - 0x88e6, 0x4971, - 0x88e8, 0x1bb8, - 0x88e9, 0x4973, - 0x88f0, 0x1bba, - 0x88f1, 0x1bb5, - 0x88f2, 0x497a, - 0x88f3, 0x0d0a, - 0x88f4, 0x0ba2, - 0x88f5, 0x497b, - 0x88f8, 0x0a8a, - 0x88f9, 0x0755, - 0x88fa, 0x497e, - 0x88fc, 0x1bb7, - 0x88fd, 0x26a7, - 0x88fe, 0x1bb9, - 0x88ff, 0x4980, - 0x8900, 0x4981, - 0x8902, 0x072c, - 0x8903, 0x4983, - 0x8907, 0x2676, - 0x8908, 0x4987, - 0x890a, 0x1bbf, - 0x890b, 0x4989, - 0x8910, 0x078d, - 0x8911, 0x498e, - 0x8912, 0x0408, - 0x8913, 0x1bbd, - 0x8914, 0x498f, - 0x8919, 0x1bbc, - 0x891a, 0x1bb6, - 0x891b, 0x1bbe, - 0x891c, 0x4994, - 0x8921, 0x1bbb, - 0x8922, 0x4999, - 0x8925, 0x0cc7, - 0x8926, 0x499c, - 0x892a, 0x0e7b, - 0x892b, 0x1bc1, - 0x892c, 0x49a0, - 0x8930, 0x1739, - 0x8931, 0x49a4, - 0x8932, 0x1fe1, - 0x8933, 0x25bb, - 0x8934, 0x1bc0, - 0x8935, 0x49a5, - 0x8936, 0x1bc2, - 0x8937, 0x49a6, - 0x8938, 0x25be, - 0x8939, 0x49a7, - 0x893b, 0x22dd, - 0x893c, 0x49a9, - 0x8941, 0x1bc3, - 0x8942, 0x49ae, - 0x8944, 0x0f52, - 0x8945, 0x49b0, - 0x8947, 0x25bd, - 0x8948, 0x49b2, - 0x8956, 0x1e2a, - 0x8957, 0x49c0, - 0x895d, 0x25bc, - 0x895e, 0x1cc3, - 0x895f, 0x08c4, - 0x8960, 0x25ba, - 0x8961, 0x49c6, - 0x8964, 0x25bf, - 0x8965, 0x49c9, - 0x8966, 0x1bc4, - 0x8967, 0x49ca, - 0x896a, 0x2187, - 0x896b, 0x49cd, - 0x896c, 0x266b, - 0x896d, 0x49ce, - 0x896f, 0x1e7f, - 0x8970, 0x49d0, - 0x8972, 0x21ad, - 0x8973, 0x49d2, - 0x897b, 0x1bc5, - 0x897c, 0x49da, - 0x897f, 0x0f06, - 0x8980, 0x49dd, - 0x8981, 0x1031, - 0x8982, 0x49de, - 0x8983, 0x1bdf, - 0x8984, 0x49df, - 0x8986, 0x06ad, - 0x8987, 0x49e1, - 0x898b, 0x1f96, - 0x898c, 0x49e5, - 0x898f, 0x1f32, - 0x8990, 0x49e8, - 0x8993, 0x2084, - 0x8994, 0x49eb, - 0x8996, 0x2136, - 0x8997, 0x49ed, - 0x8998, 0x24b8, - 0x8999, 0x49ee, - 0x89a1, 0x24ba, - 0x89a2, 0x49f6, - 0x89a6, 0x24bc, - 0x89a7, 0x49fa, - 0x89aa, 0x20e4, - 0x89ab, 0x49fd, - 0x89ac, 0x24b9, - 0x89ad, 0x49fe, - 0x89af, 0x24bd, - 0x89b0, 0x4a00, - 0x89b2, 0x24be, - 0x89b3, 0x4a02, - 0x89b7, 0x24bf, - 0x89b8, 0x4a06, - 0x89ba, 0x1fd2, - 0x89bb, 0x4a08, - 0x89bd, 0x1ffd, - 0x89be, 0x4a0a, - 0x89bf, 0x24bb, - 0x89c0, 0x1f2d, - 0x89c1, 0x086e, - 0x89c2, 0x0734, - 0x89c3, 0x4a0b, - 0x89c4, 0x073f, - 0x89c5, 0x0ade, - 0x89c6, 0x0d6a, - 0x89c7, 0x193a, - 0x89c8, 0x09ab, - 0x89c9, 0x0924, - 0x89ca, 0x193b, - 0x89cd, 0x4a0c, - 0x89ce, 0x193e, - 0x89d2, 0x0898, - 0x89d3, 0x4a0d, - 0x89d6, 0x1d57, - 0x89d7, 0x4a10, - 0x89da, 0x1d59, - 0x89db, 0x4a13, - 0x89dc, 0x1d5a, - 0x89dd, 0x4a14, - 0x89de, 0x1d58, - 0x89df, 0x4a15, - 0x89e3, 0x08b3, - 0x89e4, 0x4a19, - 0x89e5, 0x1d5b, - 0x89e6, 0x0528, - 0x89e7, 0x4a1a, - 0x89eb, 0x1d5c, - 0x89ec, 0x4a1e, - 0x89ef, 0x1d5d, - 0x89f0, 0x4a21, - 0x89f3, 0x19c0, - 0x89f4, 0x2609, - 0x89f5, 0x4a24, - 0x89f6, 0x260a, - 0x89f7, 0x4a25, - 0x89f8, 0x1e94, - 0x89f9, 0x4a26, - 0x8a00, 0x0ffd, - 0x8a01, 0x22df, - 0x8a02, 0x1ecb, - 0x8a03, 0x1f0d, - 0x8a04, 0x4a2d, - 0x8a07, 0x12fe, - 0x8a08, 0x1f77, - 0x8a09, 0x4a30, - 0x8a0a, 0x21eb, - 0x8a0b, 0x4a31, - 0x8a0c, 0x22e1, - 0x8a0d, 0x4a32, - 0x8a0e, 0x216f, - 0x8a0f, 0x4a33, - 0x8a10, 0x22e0, - 0x8a11, 0x4a34, - 0x8a13, 0x21ea, - 0x8a14, 0x4a36, - 0x8a15, 0x22e2, - 0x8a16, 0x20cb, - 0x8a17, 0x4a37, - 0x8a18, 0x1f78, - 0x8a19, 0x4a38, - 0x8a1b, 0x1ee2, - 0x8a1c, 0x4a3a, - 0x8a1d, 0x21f2, - 0x8a1e, 0x4a3b, - 0x8a1f, 0x2150, - 0x8a20, 0x4a3c, - 0x8a23, 0x1fd3, - 0x8a24, 0x4a3f, - 0x8a25, 0x22e5, - 0x8a26, 0x4a40, - 0x8a2a, 0x1ef2, - 0x8a2b, 0x4a44, - 0x8a2d, 0x211f, - 0x8a2e, 0x4a46, - 0x8a31, 0x21dd, - 0x8a32, 0x4a49, - 0x8a34, 0x2154, - 0x8a35, 0x4a4b, - 0x8a36, 0x22e7, - 0x8a37, 0x4a4c, - 0x8a3a, 0x2282, - 0x8a3b, 0x4a4f, - 0x8a3e, 0x1d5e, - 0x8a3f, 0x4a52, - 0x8a41, 0x22e6, - 0x8a42, 0x4a54, - 0x8a46, 0x22e8, - 0x8a47, 0x4a58, - 0x8a48, 0x1a84, - 0x8a49, 0x4a59, - 0x8a4e, 0x22e4, - 0x8a4f, 0x4a5e, - 0x8a50, 0x226a, - 0x8a51, 0x4a5f, - 0x8a52, 0x22eb, - 0x8a53, 0x4a60, - 0x8a54, 0x22e9, - 0x8a55, 0x20bd, - 0x8a56, 0x4a61, - 0x8a58, 0x22ea, - 0x8a59, 0x4a63, - 0x8a5b, 0x22bd, - 0x8a5c, 0x4a65, - 0x8a5e, 0x1e9e, - 0x8a5f, 0x4a67, - 0x8a61, 0x22f6, - 0x8a62, 0x21e7, - 0x8a63, 0x2216, - 0x8a64, 0x4a69, - 0x8a66, 0x2137, - 0x8a67, 0x4a6b, - 0x8a69, 0x212c, - 0x8a6a, 0x4a6d, - 0x8a6b, 0x1e68, - 0x8a6c, 0x22f2, - 0x8a6d, 0x1f37, - 0x8a6e, 0x22f3, - 0x8a6f, 0x4a6e, - 0x8a70, 0x22ef, - 0x8a71, 0x1f50, - 0x8a72, 0x1f10, - 0x8a73, 0x21c8, - 0x8a74, 0x4a6f, - 0x8a75, 0x22f1, - 0x8a76, 0x4a70, - 0x8a79, 0x1153, - 0x8a7a, 0x4a73, - 0x8a7c, 0x22f0, - 0x8a7d, 0x4a75, - 0x8a7f, 0x22ee, - 0x8a80, 0x4a77, - 0x8a84, 0x22ed, - 0x8a85, 0x229e, - 0x8a86, 0x22ec, - 0x8a87, 0x1fe2, - 0x8a88, 0x4a7b, - 0x8a89, 0x10e3, - 0x8a8a, 0x0e2f, - 0x8a8b, 0x4a7c, - 0x8a8d, 0x20fe, - 0x8a8e, 0x4a7e, - 0x8a91, 0x22f9, - 0x8a93, 0x0d5b, - 0x8a94, 0x4a81, - 0x8a95, 0x1eaf, - 0x8a96, 0x4a82, - 0x8a98, 0x2236, - 0x8a99, 0x4a84, - 0x8a9a, 0x22f7, - 0x8a9b, 0x4a85, - 0x8a9e, 0x223d, - 0x8a9f, 0x4a88, - 0x8aa0, 0x1e82, - 0x8aa1, 0x1fb6, - 0x8aa2, 0x4a89, - 0x8aa3, 0x21a4, - 0x8aa4, 0x21aa, - 0x8aa5, 0x22f8, - 0x8aa6, 0x2151, - 0x8aa7, 0x4a8a, - 0x8aa8, 0x1f60, - 0x8aa9, 0x4a8b, - 0x8aac, 0x2147, - 0x8aad, 0x4a8e, - 0x8ab0, 0x2145, - 0x8ab1, 0x4a91, - 0x8ab2, 0x1fdc, - 0x8ab3, 0x4a92, - 0x8ab6, 0x2301, - 0x8ab7, 0x4a95, - 0x8ab9, 0x1ef5, - 0x8aba, 0x4a97, - 0x8abc, 0x2218, - 0x8abd, 0x4a99, - 0x8abf, 0x1ec6, - 0x8ac0, 0x4a9b, - 0x8ac2, 0x2300, - 0x8ac3, 0x4a9d, - 0x8ac4, 0x22b4, - 0x8ac5, 0x4a9e, - 0x8ac7, 0x2169, - 0x8ac8, 0x4aa0, - 0x8ac9, 0x22fd, - 0x8aca, 0x4aa1, - 0x8acb, 0x20ea, - 0x8acc, 0x4aa2, - 0x8acd, 0x22f4, - 0x8ace, 0x4aa3, - 0x8acf, 0x22fb, - 0x8ad0, 0x4aa4, - 0x8ad1, 0x22fc, - 0x8ad2, 0x2027, - 0x8ad3, 0x4aa5, - 0x8ad6, 0x2060, - 0x8ad7, 0x22ff, - 0x8ad8, 0x4aa8, - 0x8adb, 0x22fe, - 0x8adc, 0x1ec7, - 0x8add, 0x4aab, - 0x8ade, 0x230c, - 0x8adf, 0x4aac, - 0x8ae2, 0x22f5, - 0x8ae3, 0x4aaf, - 0x8ae4, 0x2306, - 0x8ae5, 0x4ab0, - 0x8ae6, 0x230a, - 0x8ae7, 0x21d3, - 0x8ae8, 0x4ab1, - 0x8aeb, 0x2303, - 0x8aec, 0x4ab4, - 0x8aed, 0x2307, - 0x8aee, 0x230b, - 0x8aef, 0x4ab5, - 0x8af1, 0x1f5f, - 0x8af2, 0x4ab7, - 0x8af3, 0x2309, - 0x8af4, 0x4ab8, - 0x8af6, 0x2302, - 0x8af7, 0x1f04, - 0x8af8, 0x229d, - 0x8af9, 0x4aba, - 0x8afa, 0x21fb, - 0x8afb, 0x4abb, - 0x8afc, 0x2308, - 0x8afd, 0x4abc, - 0x8afe, 0x20ac, - 0x8aff, 0x4abd, - 0x8b00, 0x208e, - 0x8b01, 0x2305, - 0x8b02, 0x2197, - 0x8b03, 0x4abe, - 0x8b04, 0x2171, - 0x8b05, 0x2298, - 0x8b06, 0x4abf, - 0x8b07, 0x173c, - 0x8b08, 0x4ac0, - 0x8b0a, 0x1f57, - 0x8b0b, 0x4ac2, - 0x8b0e, 0x2082, - 0x8b0f, 0x4ac5, - 0x8b10, 0x2311, - 0x8b11, 0x4ac6, - 0x8b14, 0x2304, - 0x8b15, 0x4ac9, - 0x8b16, 0x230f, - 0x8b17, 0x1e35, - 0x8b18, 0x4aca, - 0x8b19, 0x20d1, - 0x8b1a, 0x2310, - 0x8b1b, 0x1fa3, - 0x8b1c, 0x4acb, - 0x8b1d, 0x21d6, - 0x8b1e, 0x4acc, - 0x8b21, 0x2206, - 0x8b22, 0x4acf, - 0x8b26, 0x1d5f, - 0x8b27, 0x4ad3, - 0x8b28, 0x230d, - 0x8b29, 0x4ad4, - 0x8b2b, 0x2312, - 0x8b2c, 0x208d, - 0x8b2d, 0x2313, - 0x8b2e, 0x4ad6, - 0x8b33, 0x22e3, - 0x8b34, 0x4adb, - 0x8b39, 0x1fba, - 0x8b3a, 0x4ae0, - 0x8b3e, 0x2078, - 0x8b3f, 0x4ae4, - 0x8b49, 0x2288, - 0x8b4a, 0x4aee, - 0x8b4e, 0x2316, - 0x8b4f, 0x1f6b, - 0x8b50, 0x4af2, - 0x8b56, 0x2314, - 0x8b57, 0x4af8, - 0x8b58, 0x2130, - 0x8b59, 0x2315, - 0x8b5a, 0x2168, - 0x8b5b, 0x4af9, - 0x8b5c, 0x20c4, - 0x8b5d, 0x4afa, - 0x8b66, 0x08de, - 0x8b67, 0x4b03, - 0x8b6b, 0x2318, - 0x8b6c, 0x0bc8, - 0x8b6d, 0x4b07, - 0x8b6f, 0x2219, - 0x8b70, 0x2217, - 0x8b71, 0x4b09, - 0x8b74, 0x20d5, - 0x8b75, 0x4b0c, - 0x8b77, 0x1f4a, - 0x8b78, 0x4b0e, - 0x8b7d, 0x2240, - 0x8b7e, 0x4b13, - 0x8b80, 0x1ed3, - 0x8b81, 0x4b15, - 0x8b8a, 0x1e49, - 0x8b8b, 0x4b1e, - 0x8b8e, 0x261b, - 0x8b8f, 0x4b21, - 0x8b92, 0x1e6d, - 0x8b93, 0x20f8, - 0x8b94, 0x4b24, - 0x8b95, 0x1ffb, - 0x8b96, 0x2319, - 0x8b97, 0x4b25, - 0x8b9c, 0x230e, - 0x8b9d, 0x4b2a, - 0x8b9e, 0x2317, - 0x8b9f, 0x4b2b, - 0x8ba0, 0x1317, - 0x8ba1, 0x0839, - 0x8ba2, 0x05e8, - 0x8ba3, 0x06b7, - 0x8ba4, 0x0caa, - 0x8ba5, 0x0818, - 0x8ba6, 0x1318, - 0x8ba8, 0x0e29, - 0x8ba9, 0x0c9e, - 0x8baa, 0x131a, - 0x8bab, 0x0c1c, - 0x8bac, 0x4b2c, - 0x8bad, 0x0fde, - 0x8bae, 0x1070, - 0x8baf, 0x0fdf, - 0x8bb0, 0x083a, - 0x8bb1, 0x4b2d, - 0x8bb2, 0x0883, - 0x8bb3, 0x07f9, - 0x8bb4, 0x131b, - 0x8bb6, 0x0ff1, - 0x8bb7, 0x131d, - 0x8bb8, 0x0fb8, - 0x8bb9, 0x062e, - 0x8bba, 0x0a82, - 0x8bbb, 0x4b2e, - 0x8bbc, 0x0dc4, - 0x8bbd, 0x068a, - 0x8bbe, 0x0d21, - 0x8bbf, 0x0660, - 0x8bc0, 0x0926, - 0x8bc1, 0x11a3, - 0x8bc2, 0x131e, - 0x8bc4, 0x0bdf, - 0x8bc5, 0x1244, - 0x8bc6, 0x0d4d, - 0x8bc7, 0x4b2f, - 0x8bc8, 0x114a, - 0x8bc9, 0x0dd4, - 0x8bca, 0x1190, - 0x8bcb, 0x1320, - 0x8bcc, 0x11de, - 0x8bcd, 0x054d, - 0x8bce, 0x1322, - 0x8bcf, 0x1321, - 0x8bd0, 0x4b30, - 0x8bd1, 0x1072, - 0x8bd2, 0x1323, - 0x8bd5, 0x0d6b, - 0x8bd6, 0x1326, - 0x8bd7, 0x0d42, - 0x8bd8, 0x1327, - 0x8bda, 0x04f4, - 0x8bdb, 0x11ee, - 0x8bdc, 0x1329, - 0x8bdd, 0x07c5, - 0x8bde, 0x058f, - 0x8bdf, 0x132a, - 0x8be1, 0x0747, - 0x8be2, 0x0fd8, - 0x8be3, 0x106f, - 0x8be4, 0x132c, - 0x8be5, 0x06be, - 0x8be6, 0x0f57, - 0x8be7, 0x04b6, - 0x8be8, 0x132d, - 0x8bea, 0x4b31, - 0x8beb, 0x08bc, - 0x8bec, 0x0eeb, - 0x8bed, 0x10d4, - 0x8bee, 0x132f, - 0x8bef, 0x0f02, - 0x8bf0, 0x1330, - 0x8bf1, 0x10ba, - 0x8bf2, 0x07fa, - 0x8bf3, 0x1331, - 0x8bf4, 0x0daa, - 0x8bf5, 0x0dc5, - 0x8bf6, 0x1332, - 0x8bf7, 0x0c68, - 0x8bf8, 0x11ed, - 0x8bf9, 0x1333, - 0x8bfa, 0x0b76, - 0x8bfb, 0x0600, - 0x8bfc, 0x1334, - 0x8bfd, 0x0669, - 0x8bfe, 0x095b, - 0x8bff, 0x1335, - 0x8c00, 0x1336, - 0x8c01, 0x0da2, - 0x8c02, 0x1337, - 0x8c03, 0x05d8, - 0x8c04, 0x1338, - 0x8c05, 0x0a0b, - 0x8c06, 0x1218, - 0x8c07, 0x1339, - 0x8c08, 0x0e0b, - 0x8c09, 0x4b32, - 0x8c0a, 0x1071, - 0x8c0b, 0x0b14, - 0x8c0c, 0x133a, - 0x8c0d, 0x05de, - 0x8c0e, 0x07e6, - 0x8c0f, 0x133b, - 0x8c10, 0x0f7e, - 0x8c11, 0x133c, - 0x8c13, 0x0ecc, - 0x8c14, 0x133e, - 0x8c17, 0x04be, - 0x8c18, 0x1343, - 0x8c19, 0x1341, - 0x8c1a, 0x1011, - 0x8c1b, 0x1342, - 0x8c1c, 0x0ada, - 0x8c1d, 0x1344, - 0x8c1e, 0x4b33, - 0x8c1f, 0x1345, - 0x8c22, 0x0f86, - 0x8c23, 0x102c, - 0x8c24, 0x0404, - 0x8c25, 0x1348, - 0x8c26, 0x0c28, - 0x8c27, 0x1349, - 0x8c28, 0x08c8, - 0x8c29, 0x0aa6, - 0x8c2a, 0x134a, - 0x8c2c, 0x0b02, - 0x8c2d, 0x0e0a, - 0x8c2e, 0x134c, - 0x8c30, 0x09a9, - 0x8c31, 0x0bf6, - 0x8c32, 0x134e, - 0x8c34, 0x0c31, - 0x8c35, 0x1350, - 0x8c37, 0x0721, - 0x8c38, 0x4b34, - 0x8c41, 0x0802, - 0x8c42, 0x4b3d, - 0x8c46, 0x05f8, - 0x8c47, 0x1cf6, - 0x8c48, 0x20c8, - 0x8c49, 0x1cf7, - 0x8c4a, 0x4b41, - 0x8c4c, 0x0e94, - 0x8c4d, 0x4b43, - 0x8c50, 0x1efd, - 0x8c51, 0x4b46, - 0x8c55, 0x1d15, - 0x8c56, 0x4b4a, - 0x8c5a, 0x1990, - 0x8c5b, 0x4b4e, - 0x8c61, 0x0f60, - 0x8c62, 0x07d4, - 0x8c63, 0x4b54, - 0x8c6a, 0x0777, - 0x8c6b, 0x10e8, - 0x8c6c, 0x4b5b, - 0x8c73, 0x15dd, - 0x8c74, 0x4b62, - 0x8c78, 0x1d50, - 0x8c79, 0x0413, - 0x8c7a, 0x04b9, - 0x8c7b, 0x4b66, - 0x8c82, 0x1d51, - 0x8c83, 0x4b6d, - 0x8c85, 0x1d53, - 0x8c86, 0x4b6f, - 0x8c89, 0x0788, - 0x8c8a, 0x1d52, - 0x8c8b, 0x4b72, - 0x8c8c, 0x0ab7, - 0x8c8d, 0x4b73, - 0x8c94, 0x1d55, - 0x8c95, 0x4b7a, - 0x8c98, 0x1d54, - 0x8c99, 0x4b7d, - 0x8c9d, 0x1e3b, - 0x8c9e, 0x227f, - 0x8c9f, 0x4b81, - 0x8ca0, 0x1f0c, - 0x8ca1, 0x1e59, - 0x8ca2, 0x1f24, - 0x8ca3, 0x4b82, - 0x8ca7, 0x20ba, - 0x8ca8, 0x1f65, - 0x8ca9, 0x1ef0, - 0x8caa, 0x2164, - 0x8cab, 0x1f30, - 0x8cac, 0x2261, - 0x8cad, 0x4b86, - 0x8caf, 0x22a2, - 0x8cb0, 0x24ab, - 0x8cb1, 0x4b88, - 0x8cb2, 0x24af, - 0x8cb3, 0x1ee8, - 0x8cb4, 0x1f39, - 0x8cb5, 0x4b89, - 0x8cb6, 0x1e48, - 0x8cb7, 0x2070, - 0x8cb8, 0x1ea8, - 0x8cb9, 0x4b8a, - 0x8cba, 0x24ac, - 0x8cbb, 0x1ef7, - 0x8cbc, 0x2176, - 0x8cbd, 0x24ad, - 0x8cbe, 0x4b8b, - 0x8cbf, 0x207b, - 0x8cc0, 0x1f45, - 0x8cc1, 0x24aa, - 0x8cc2, 0x204b, - 0x8cc3, 0x202f, - 0x8cc4, 0x1f5a, - 0x8cc5, 0x24b0, - 0x8cc6, 0x4b8c, - 0x8cc7, 0x22b7, - 0x8cc8, 0x1f7f, - 0x8cc9, 0x4b8d, - 0x8cca, 0x2265, - 0x8ccb, 0x4b8e, - 0x8cd1, 0x24b2, - 0x8cd2, 0x211b, - 0x8cd3, 0x1e51, - 0x8cd4, 0x4b94, - 0x8cd5, 0x24b4, - 0x8cd6, 0x4b95, - 0x8cda, 0x24b3, - 0x8cdb, 0x4b99, - 0x8cdc, 0x1e9f, - 0x8cdd, 0x4b9a, - 0x8cde, 0x2118, - 0x8cdf, 0x4b9b, - 0x8ce0, 0x20b4, - 0x8ce1, 0x23af, - 0x8ce2, 0x21bb, - 0x8ce3, 0x2072, - 0x8ce4, 0x1f95, - 0x8ce5, 0x4b9c, - 0x8ce6, 0x1f0a, - 0x8ce7, 0x24b6, - 0x8ce8, 0x4b9d, - 0x8cea, 0x2291, - 0x8ceb, 0x24b5, - 0x8cec, 0x2278, - 0x8ced, 0x1ed4, - 0x8cee, 0x4b9f, - 0x8cf4, 0x1ff3, - 0x8cf5, 0x4ba5, - 0x8cfa, 0x22a9, - 0x8cfb, 0x24b7, - 0x8cfc, 0x1f28, - 0x8cfd, 0x2109, - 0x8cfe, 0x22c7, - 0x8cff, 0x4baa, - 0x8d00, 0x4bab, - 0x8d04, 0x24ae, - 0x8d05, 0x22b1, - 0x8d06, 0x4baf, - 0x8d08, 0x2266, - 0x8d09, 0x4bb1, - 0x8d0a, 0x225b, - 0x8d0b, 0x22c4, - 0x8d0c, 0x4bb2, - 0x8d0d, 0x2115, - 0x8d0e, 0x4bb3, - 0x8d0f, 0x222a, - 0x8d10, 0x24b1, - 0x8d11, 0x4bb4, - 0x8d16, 0x213d, - 0x8d17, 0x4bb9, - 0x8d1b, 0x1f15, - 0x8d1c, 0x225c, - 0x8d1d, 0x041d, - 0x8d1e, 0x118b, - 0x8d1f, 0x06b5, - 0x8d20, 0x4bbd, - 0x8d21, 0x070a, - 0x8d22, 0x048d, - 0x8d23, 0x1133, - 0x8d24, 0x0f3a, - 0x8d25, 0x03e7, - 0x8d26, 0x116c, - 0x8d27, 0x080a, - 0x8d28, 0x11c9, - 0x8d29, 0x0654, - 0x8d2a, 0x0e03, - 0x8d2b, 0x0bd5, - 0x8d2c, 0x044a, - 0x8d2d, 0x0713, - 0x8d2e, 0x11fb, - 0x8d2f, 0x073a, - 0x8d30, 0x063e, - 0x8d31, 0x086d, - 0x8d32, 0x192c, - 0x8d34, 0x0e4c, - 0x8d35, 0x074c, - 0x8d36, 0x192e, - 0x8d37, 0x057e, - 0x8d38, 0x0ab8, - 0x8d39, 0x066e, - 0x8d3a, 0x078f, - 0x8d3b, 0x192f, - 0x8d3c, 0x1137, - 0x8d3d, 0x1930, - 0x8d3e, 0x0849, - 0x8d3f, 0x07f4, - 0x8d40, 0x1931, - 0x8d41, 0x0a27, - 0x8d42, 0x0a5f, - 0x8d43, 0x1122, - 0x8d44, 0x1227, - 0x8d45, 0x1932, - 0x8d47, 0x1936, - 0x8d48, 0x1934, - 0x8d4a, 0x0d17, - 0x8d4b, 0x06ae, - 0x8d4c, 0x0603, - 0x8d4d, 0x1937, - 0x8d4e, 0x0d81, - 0x8d4f, 0x0d06, - 0x8d50, 0x0550, - 0x8d51, 0x4bbe, - 0x8d53, 0x163b, - 0x8d54, 0x0ba3, - 0x8d55, 0x1938, - 0x8d56, 0x09a0, - 0x8d57, 0x4bc0, - 0x8d58, 0x1215, - 0x8d59, 0x1939, - 0x8d5a, 0x1209, - 0x8d5b, 0x0cd7, - 0x8d5c, 0x1289, - 0x8d5d, 0x1283, - 0x8d5e, 0x1121, - 0x8d5f, 0x4bc1, - 0x8d60, 0x113c, - 0x8d61, 0x0cfd, - 0x8d62, 0x1093, - 0x8d63, 0x06ce, - 0x8d64, 0x0505, - 0x8d65, 0x4bc2, - 0x8d66, 0x0d1b, - 0x8d67, 0x1cf4, - 0x8d68, 0x4bc3, - 0x8d6b, 0x078c, - 0x8d6c, 0x4bc6, - 0x8d6d, 0x1cf5, - 0x8d6e, 0x4bc7, - 0x8d70, 0x123c, - 0x8d71, 0x4bc9, - 0x8d73, 0x1cef, - 0x8d74, 0x06ab, - 0x8d75, 0x1175, - 0x8d76, 0x06ca, - 0x8d77, 0x0c0f, - 0x8d78, 0x4bcb, - 0x8d81, 0x04e8, - 0x8d82, 0x4bd4, - 0x8d84, 0x1cf0, - 0x8d85, 0x04d1, - 0x8d86, 0x4bd6, - 0x8d8a, 0x1100, - 0x8d8b, 0x0c74, - 0x8d8c, 0x4bda, - 0x8d91, 0x1cf2, - 0x8d92, 0x4bdf, - 0x8d94, 0x1cf1, - 0x8d95, 0x1f14, - 0x8d96, 0x4be1, - 0x8d99, 0x227a, - 0x8d9a, 0x4be4, - 0x8d9f, 0x0e1e, - 0x8da0, 0x4be9, - 0x8da3, 0x0c7f, - 0x8da4, 0x4bec, - 0x8da8, 0x20ee, - 0x8da9, 0x4bf0, - 0x8db1, 0x1cf3, - 0x8db2, 0x25f8, - 0x8db3, 0x1240, - 0x8db4, 0x0b80, - 0x8db5, 0x1d1c, - 0x8db6, 0x4bf8, - 0x8db8, 0x1d17, - 0x8db9, 0x4bfa, - 0x8dba, 0x1d1f, - 0x8dbb, 0x4bfb, - 0x8dbc, 0x1d1e, - 0x8dbd, 0x4bfc, - 0x8dbe, 0x11b9, - 0x8dbf, 0x1d1d, - 0x8dc0, 0x4bfd, - 0x8dc3, 0x1101, - 0x8dc4, 0x1d20, - 0x8dc5, 0x4c00, - 0x8dc6, 0x1d28, - 0x8dc7, 0x4c01, - 0x8dcb, 0x03da, - 0x8dcc, 0x05d9, - 0x8dcd, 0x4c05, - 0x8dce, 0x1d25, - 0x8dd0, 0x4c06, - 0x8dd1, 0x0b9d, - 0x8dd2, 0x4c07, - 0x8dd6, 0x1d21, - 0x8dd8, 0x4c0b, - 0x8dda, 0x1d23, - 0x8ddb, 0x1d27, - 0x8ddc, 0x4c0d, - 0x8ddd, 0x090f, - 0x8dde, 0x1d24, - 0x8ddf, 0x06f5, - 0x8de0, 0x4c0e, - 0x8de3, 0x1d2c, - 0x8de4, 0x1d2f, - 0x8de5, 0x4c11, - 0x8de8, 0x0974, - 0x8de9, 0x4c14, - 0x8dea, 0x074b, - 0x8deb, 0x1d18, - 0x8dec, 0x1d29, - 0x8ded, 0x4c15, - 0x8def, 0x0a5e, - 0x8df0, 0x4c17, - 0x8df3, 0x0e4b, - 0x8df4, 0x4c1a, - 0x8df5, 0x086c, - 0x8df6, 0x4c1b, - 0x8df7, 0x1d2a, - 0x8df9, 0x1d2d, - 0x8dfa, 0x0624, - 0x8dfb, 0x1d2e, - 0x8dfc, 0x4c1c, - 0x8dfd, 0x1d31, - 0x8dfe, 0x4c1d, - 0x8e00, 0x4c1f, - 0x8e05, 0x1d19, - 0x8e06, 0x4c24, - 0x8e09, 0x1d30, - 0x8e0a, 0x10a0, - 0x8e0b, 0x4c27, - 0x8e0c, 0x0511, - 0x8e0d, 0x4c28, - 0x8e0f, 0x0df7, - 0x8e10, 0x1f94, - 0x8e11, 0x4c2a, - 0x8e14, 0x1d32, - 0x8e15, 0x4c2d, - 0x8e1d, 0x1d33, - 0x8e1e, 0x0910, - 0x8e1f, 0x1d34, - 0x8e20, 0x4c35, - 0x8e22, 0x0e32, - 0x8e23, 0x1d37, - 0x8e24, 0x4c37, - 0x8e29, 0x048f, - 0x8e2a, 0x1236, - 0x8e2b, 0x4c3c, - 0x8e2c, 0x1d35, - 0x8e2d, 0x4c3d, - 0x8e2e, 0x1d36, - 0x8e2f, 0x1d38, - 0x8e30, 0x4c3e, - 0x8e31, 0x1d3e, - 0x8e32, 0x4c3f, - 0x8e34, 0x2230, - 0x8e35, 0x1d3c, - 0x8e36, 0x4c41, - 0x8e39, 0x1d3b, - 0x8e3a, 0x1d39, - 0x8e3b, 0x4c44, - 0x8e3d, 0x1d3d, - 0x8e3e, 0x4c46, - 0x8e40, 0x1d3a, - 0x8e41, 0x1d40, - 0x8e43, 0x4c48, - 0x8e44, 0x0e36, - 0x8e45, 0x4c49, - 0x8e47, 0x173b, - 0x8e48, 0x0599, - 0x8e49, 0x1d3f, - 0x8e4a, 0x1d44, - 0x8e4b, 0x0df6, - 0x8e4c, 0x25fd, - 0x8e4d, 0x4c4b, - 0x8e51, 0x1d42, - 0x8e53, 0x4c4f, - 0x8e55, 0x2600, - 0x8e56, 0x4c51, - 0x8e59, 0x1d1a, - 0x8e5a, 0x4c54, - 0x8e63, 0x2606, - 0x8e64, 0x4c5d, - 0x8e66, 0x042d, - 0x8e67, 0x4c5f, - 0x8e69, 0x1d1b, - 0x8e6a, 0x4c61, - 0x8e6c, 0x05a6, - 0x8e6d, 0x04ab, - 0x8e6e, 0x4c63, - 0x8e6f, 0x1d48, - 0x8e70, 0x1d45, - 0x8e71, 0x4c64, - 0x8e72, 0x0616, - 0x8e73, 0x4c65, - 0x8e74, 0x1d49, - 0x8e75, 0x4c66, - 0x8e76, 0x1d46, - 0x8e77, 0x4c67, - 0x8e7a, 0x25ff, - 0x8e7b, 0x4c6a, - 0x8e7c, 0x1d47, - 0x8e7d, 0x4c6b, - 0x8e7f, 0x055d, - 0x8e80, 0x4c6d, - 0x8e81, 0x112d, - 0x8e82, 0x4c6e, - 0x8e85, 0x1d4a, - 0x8e86, 0x4c71, - 0x8e87, 0x051e, - 0x8e88, 0x4c72, - 0x8e89, 0x25fc, - 0x8e8a, 0x1e8c, - 0x8e8b, 0x2602, - 0x8e8c, 0x4c73, - 0x8e8d, 0x224d, - 0x8e8e, 0x4c74, - 0x8e8f, 0x1d4b, - 0x8e90, 0x1d4d, - 0x8e91, 0x2604, - 0x8e92, 0x25fe, - 0x8e93, 0x2603, - 0x8e94, 0x1d4c, - 0x8e95, 0x4c75, - 0x8e9a, 0x2601, - 0x8e9b, 0x4c7a, - 0x8e9c, 0x1d4e, - 0x8e9d, 0x4c7b, - 0x8e9e, 0x1d4f, - 0x8e9f, 0x4c7c, - 0x8ea1, 0x2605, - 0x8ea2, 0x4c7e, - 0x8ea5, 0x1ea3, - 0x8ea6, 0x2608, - 0x8ea7, 0x4c81, - 0x8eaa, 0x2607, - 0x8eab, 0x0d26, - 0x8eac, 0x0703, - 0x8ead, 0x4c84, - 0x8eaf, 0x0c78, - 0x8eb0, 0x4c86, - 0x8eb2, 0x0622, - 0x8eb3, 0x4c88, - 0x8eba, 0x0e1c, - 0x8ebb, 0x4c8f, - 0x8ec0, 0x20f0, - 0x8ec1, 0x4c94, - 0x8eca, 0x1e7b, - 0x8ecb, 0x2267, - 0x8ecc, 0x1f36, - 0x8ecd, 0x1fd6, - 0x8ece, 0x18f8, - 0x8ecf, 0x4c9d, - 0x8ed2, 0x21e0, - 0x8ed3, 0x4ca0, - 0x8ed4, 0x248c, - 0x8ed5, 0x4ca1, - 0x8edb, 0x248d, - 0x8edc, 0x4ca7, - 0x8edf, 0x2102, - 0x8ee0, 0x4caa, - 0x8ee4, 0x2494, - 0x8ee5, 0x4cae, - 0x8eeb, 0x2493, - 0x8eec, 0x4cb4, - 0x8ef2, 0x248e, - 0x8ef3, 0x4cba, - 0x8ef8, 0x2299, - 0x8ef9, 0x2491, - 0x8efa, 0x2496, - 0x8efb, 0x248f, - 0x8efc, 0x2492, - 0x8efd, 0x4cbf, - 0x8efe, 0x2497, - 0x8eff, 0x4cc0, - 0x8f00, 0x4cc1, - 0x8f03, 0x1fb1, - 0x8f04, 0x4cc4, - 0x8f05, 0x249a, - 0x8f06, 0x4cc5, - 0x8f07, 0x2499, - 0x8f08, 0x4cc6, - 0x8f09, 0x2258, - 0x8f0a, 0x2498, - 0x8f0b, 0x4cc7, - 0x8f12, 0x249b, - 0x8f13, 0x4cce, - 0x8f14, 0x1f09, - 0x8f15, 0x20e6, - 0x8f16, 0x4ccf, - 0x8f1b, 0x2026, - 0x8f1c, 0x249f, - 0x8f1d, 0x1f59, - 0x8f1e, 0x249d, - 0x8f20, 0x4cd4, - 0x8f25, 0x1f3b, - 0x8f26, 0x249c, - 0x8f27, 0x4cd9, - 0x8f29, 0x1e3a, - 0x8f2a, 0x205b, - 0x8f2b, 0x4cdb, - 0x8f2f, 0x1f70, - 0x8f30, 0x4cdf, - 0x8f33, 0x24a0, - 0x8f34, 0x4ce2, - 0x8f38, 0x213b, - 0x8f39, 0x4ce6, - 0x8f3b, 0x1f07, - 0x8f3c, 0x4ce8, - 0x8f3e, 0x2270, - 0x8f3f, 0x2237, - 0x8f40, 0x4cea, - 0x8f42, 0x24d2, - 0x8f43, 0x4cec, - 0x8f44, 0x21b3, - 0x8f45, 0x2245, - 0x8f46, 0x24a1, - 0x8f47, 0x4ced, - 0x8f49, 0x22a8, - 0x8f4a, 0x4cef, - 0x8f4d, 0x227c, - 0x8f4e, 0x1fb0, - 0x8f4f, 0x4cf2, - 0x8f54, 0x24a2, - 0x8f55, 0x4cf7, - 0x8f5f, 0x1f46, - 0x8f60, 0x4d01, - 0x8f61, 0x2380, - 0x8f62, 0x2495, - 0x8f63, 0x4d02, - 0x8f64, 0x2490, - 0x8f65, 0x4d03, - 0x8f66, 0x04da, - 0x8f67, 0x1141, - 0x8f68, 0x0745, - 0x8f69, 0x0fc4, - 0x8f6a, 0x4d04, - 0x8f6b, 0x18e1, - 0x8f6c, 0x1207, - 0x8f6d, 0x18e2, - 0x8f6e, 0x0a7d, - 0x8f6f, 0x0cc8, - 0x8f70, 0x079b, - 0x8f71, 0x18e3, - 0x8f74, 0x11e0, - 0x8f75, 0x18e6, - 0x8f77, 0x18e9, - 0x8f78, 0x18e8, - 0x8f79, 0x18ea, - 0x8f7b, 0x0c5e, - 0x8f7c, 0x18ec, - 0x8f7d, 0x111b, - 0x8f7e, 0x18ed, - 0x8f7f, 0x089f, - 0x8f80, 0x4d05, - 0x8f81, 0x18ee, - 0x8f83, 0x08a0, - 0x8f84, 0x18f0, - 0x8f85, 0x06a3, - 0x8f86, 0x0a07, - 0x8f87, 0x18f1, - 0x8f88, 0x041b, - 0x8f89, 0x07e9, - 0x8f8a, 0x074e, - 0x8f8b, 0x18f2, - 0x8f8c, 0x4d06, - 0x8f8d, 0x18f3, - 0x8f90, 0x0695, - 0x8f91, 0x0820, - 0x8f92, 0x4d07, - 0x8f93, 0x0d7b, - 0x8f94, 0x1574, - 0x8f95, 0x10f2, - 0x8f96, 0x0f2a, - 0x8f97, 0x1158, - 0x8f98, 0x18f6, - 0x8f99, 0x117f, - 0x8f9a, 0x18f7, - 0x8f9b, 0x0f8c, - 0x8f9c, 0x0715, - 0x8f9d, 0x4d08, - 0x8f9e, 0x054a, - 0x8f9f, 0x0442, - 0x8fa0, 0x4d09, - 0x8fa3, 0x099c, - 0x8fa4, 0x4d0c, - 0x8fa6, 0x1e30, - 0x8fa7, 0x4d0e, - 0x8fa8, 0x044f, - 0x8faa, 0x4d0f, - 0x8fab, 0x0451, - 0x8fac, 0x4d10, - 0x8fad, 0x1e9d, - 0x8fae, 0x1e4b, - 0x8faf, 0x1e4a, - 0x8fb0, 0x04e2, - 0x8fb1, 0x0cc3, - 0x8fb2, 0x20aa, - 0x8fb3, 0x4d11, - 0x8fb6, 0x173d, - 0x8fb7, 0x4d14, - 0x8fb9, 0x0448, - 0x8fba, 0x4d16, - 0x8fbd, 0x0a12, - 0x8fbe, 0x0572, - 0x8fbf, 0x4d19, - 0x8fc1, 0x0c25, - 0x8fc2, 0x10bd, - 0x8fc3, 0x4d1b, - 0x8fc4, 0x0c18, - 0x8fc5, 0x0fe1, - 0x8fc6, 0x4d1c, - 0x8fc7, 0x0756, - 0x8fc8, 0x0a9c, - 0x8fc9, 0x4d1d, - 0x8fce, 0x1092, - 0x8fcf, 0x4d22, - 0x8fd0, 0x110e, - 0x8fd1, 0x08cd, - 0x8fd2, 0x4d23, - 0x8fd3, 0x173e, - 0x8fd4, 0x0652, - 0x8fd5, 0x173f, - 0x8fd6, 0x4d24, - 0x8fd8, 0x07ce, - 0x8fd9, 0x1183, - 0x8fda, 0x4d26, - 0x8fdb, 0x08c9, - 0x8fdc, 0x10f9, - 0x8fdd, 0x0eb4, - 0x8fde, 0x09f5, - 0x8fdf, 0x04fe, - 0x8fe0, 0x4d27, - 0x8fe2, 0x0e49, - 0x8fe3, 0x4d29, - 0x8fe4, 0x1742, - 0x8fe5, 0x1740, - 0x8fe6, 0x1744, - 0x8fe7, 0x4d2a, - 0x8fe8, 0x1746, - 0x8fe9, 0x1743, - 0x8fea, 0x05b0, - 0x8feb, 0x0be7, - 0x8fec, 0x4d2b, - 0x8fed, 0x05dd, - 0x8fee, 0x1741, - 0x8fef, 0x4d2c, - 0x8ff0, 0x0d8d, - 0x8ff1, 0x4d2d, - 0x8ff3, 0x1745, - 0x8ff4, 0x267b, - 0x8ff5, 0x4d2f, - 0x8ff7, 0x0ad9, - 0x8ff8, 0x042e, - 0x8ff9, 0x0816, - 0x8ffa, 0x4d31, - 0x8ffd, 0x1214, - 0x8ffe, 0x4d34, - 0x9000, 0x0e7c, - 0x9001, 0x0dc2, - 0x9002, 0x0d61, - 0x9003, 0x0e26, - 0x9004, 0x1748, - 0x9005, 0x1747, - 0x9006, 0x0b49, - 0x9007, 0x4d36, - 0x9009, 0x0fca, - 0x900a, 0x0fe0, - 0x900b, 0x1749, - 0x900c, 0x4d38, - 0x900d, 0x174c, - 0x900e, 0x4d39, - 0x900f, 0x0e69, - 0x9010, 0x11ef, - 0x9011, 0x174b, - 0x9012, 0x05be, - 0x9013, 0x4d3a, - 0x9014, 0x0e6f, - 0x9015, 0x23f2, - 0x9016, 0x174d, - 0x9017, 0x05f9, - 0x9018, 0x4d3b, - 0x9019, 0x227e, - 0x901a, 0x0e59, - 0x901b, 0x073d, - 0x901c, 0x4d3c, - 0x901d, 0x0d5c, - 0x901e, 0x04f6, - 0x901f, 0x0dce, - 0x9020, 0x112f, - 0x9021, 0x174e, - 0x9022, 0x0687, - 0x9023, 0x2019, - 0x9024, 0x4d3d, - 0x9026, 0x174a, - 0x9027, 0x4d3f, - 0x902d, 0x1751, - 0x902e, 0x0581, - 0x902f, 0x1752, - 0x9030, 0x4d45, - 0x9032, 0x1fbb, - 0x9033, 0x4d47, - 0x9035, 0x174f, - 0x9037, 0x4d49, - 0x9038, 0x1064, - 0x9039, 0x4d4a, - 0x903b, 0x0a86, - 0x903c, 0x042f, - 0x903d, 0x4d4c, - 0x903e, 0x10c7, - 0x903f, 0x4d4d, - 0x9041, 0x061c, - 0x9042, 0x0de1, - 0x9043, 0x4d4f, - 0x9044, 0x1753, - 0x9045, 0x4d50, - 0x9047, 0x10db, - 0x9048, 0x4d52, - 0x904b, 0x2253, - 0x904c, 0x4d55, - 0x904d, 0x0452, - 0x904e, 0x1f3e, - 0x904f, 0x0633, - 0x9050, 0x1756, - 0x9051, 0x1754, - 0x9053, 0x05a1, - 0x9054, 0x1ea6, - 0x9055, 0x218e, - 0x9056, 0x4d56, - 0x9057, 0x104c, - 0x9058, 0x1758, - 0x9059, 0x4d57, - 0x905b, 0x175a, - 0x905c, 0x21ec, - 0x905d, 0x4d59, - 0x905e, 0x1ebe, - 0x905f, 0x4d5a, - 0x9060, 0x224a, - 0x9061, 0x4d5b, - 0x9062, 0x1759, - 0x9063, 0x0c2f, - 0x9064, 0x4d5c, - 0x9065, 0x102a, - 0x9066, 0x4d5d, - 0x9068, 0x1757, - 0x9069, 0x2133, - 0x906a, 0x4d5f, - 0x906d, 0x1125, - 0x906e, 0x117b, - 0x906f, 0x4d62, - 0x9072, 0x1e84, - 0x9073, 0x4d65, - 0x9074, 0x175c, - 0x9075, 0x124e, - 0x9076, 0x4d66, - 0x9077, 0x20cf, - 0x9078, 0x21e2, - 0x9079, 0x4d67, - 0x907a, 0x220f, - 0x907b, 0x4d68, - 0x907c, 0x2029, - 0x907d, 0x175d, - 0x907e, 0x4d69, - 0x907f, 0x0445, - 0x9080, 0x1024, - 0x9081, 0x2073, - 0x9082, 0x175e, - 0x9083, 0x1760, - 0x9084, 0x1f55, - 0x9085, 0x4d6a, - 0x9087, 0x23f1, - 0x9088, 0x175f, - 0x9089, 0x4d6c, - 0x908a, 0x1e46, - 0x908b, 0x1761, - 0x908c, 0x4d6d, - 0x908f, 0x2063, - 0x9090, 0x23f3, - 0x9091, 0x105f, - 0x9092, 0x4d70, - 0x9093, 0x05ac, - 0x9094, 0x4d71, - 0x9095, 0x1817, - 0x9096, 0x4d72, - 0x9097, 0x1367, - 0x9098, 0x4d73, - 0x9099, 0x136a, - 0x909a, 0x4d74, - 0x909b, 0x1368, - 0x909c, 0x4d75, - 0x909d, 0x1369, - 0x909e, 0x4d76, - 0x90a1, 0x136c, - 0x90a2, 0x0f9a, - 0x90a3, 0x0b2a, - 0x90a4, 0x4d79, - 0x90a6, 0x03f9, - 0x90a7, 0x4d7b, - 0x90aa, 0x0f7b, - 0x90ab, 0x4d7e, - 0x90ac, 0x136b, - 0x90ad, 0x4d7f, - 0x90ae, 0x10af, - 0x90af, 0x0761, - 0x90b0, 0x1372, - 0x90b1, 0x0c6e, - 0x90b2, 0x4d80, - 0x90b3, 0x136e, - 0x90b4, 0x136d, - 0x90b5, 0x0d14, - 0x90b6, 0x136f, - 0x90b7, 0x4d81, - 0x90b8, 0x1371, - 0x90b9, 0x123b, - 0x90ba, 0x1370, - 0x90bb, 0x0a23, - 0x90bc, 0x4d82, - 0x90be, 0x1375, - 0x90bf, 0x4d84, - 0x90c1, 0x10d9, - 0x90c2, 0x4d86, - 0x90c4, 0x1377, - 0x90c5, 0x1374, - 0x90c6, 0x4d88, - 0x90c7, 0x1378, - 0x90c8, 0x4d89, - 0x90ca, 0x088d, - 0x90cb, 0x4d8b, - 0x90ce, 0x09b4, - 0x90cf, 0x1373, - 0x90d0, 0x1376, - 0x90d1, 0x11a2, - 0x90d2, 0x4d8e, - 0x90d3, 0x1379, - 0x90d4, 0x4d8f, - 0x90d7, 0x137d, - 0x90d8, 0x4d92, - 0x90db, 0x137e, - 0x90dc, 0x137c, - 0x90dd, 0x0779, - 0x90de, 0x4d95, - 0x90df, 0x231e, - 0x90e0, 0x4d96, - 0x90e1, 0x0931, - 0x90e2, 0x137b, - 0x90e3, 0x4d97, - 0x90e6, 0x137a, - 0x90e7, 0x110a, - 0x90e8, 0x0486, - 0x90e9, 0x4d9a, - 0x90eb, 0x137f, - 0x90ec, 0x4d9c, - 0x90ed, 0x0752, - 0x90ee, 0x4d9d, - 0x90ef, 0x1380, - 0x90f0, 0x4d9e, - 0x90f4, 0x04e0, - 0x90f5, 0x2233, - 0x90f6, 0x4da2, - 0x90f8, 0x0587, - 0x90f9, 0x4da4, - 0x90fd, 0x05fb, - 0x90fe, 0x1381, - 0x90ff, 0x4da8, - 0x9100, 0x4da9, - 0x9102, 0x0634, - 0x9103, 0x4dab, - 0x9104, 0x1382, - 0x9105, 0x4dac, - 0x9106, 0x2320, - 0x9107, 0x4dad, - 0x9109, 0x21c7, - 0x910a, 0x4daf, - 0x9112, 0x22bc, - 0x9113, 0x4db7, - 0x9114, 0x231c, - 0x9115, 0x4db8, - 0x9116, 0x2251, - 0x9117, 0x4db9, - 0x9119, 0x0432, - 0x911a, 0x4dbb, - 0x911e, 0x1384, - 0x911f, 0x4dbf, - 0x9122, 0x1383, - 0x9123, 0x1385, - 0x9124, 0x4dc2, - 0x9127, 0x1ebb, - 0x9128, 0x4dc5, - 0x912d, 0x2287, - 0x912e, 0x4dca, - 0x912f, 0x1387, - 0x9130, 0x202d, - 0x9131, 0x1386, - 0x9132, 0x1eab, - 0x9133, 0x4dcb, - 0x9134, 0x231d, - 0x9135, 0x4dcc, - 0x9136, 0x231f, - 0x9137, 0x4dcd, - 0x9139, 0x1388, - 0x913a, 0x231b, - 0x913b, 0x4dcf, - 0x9143, 0x1389, - 0x9144, 0x4dd7, - 0x9146, 0x138a, - 0x9147, 0x4dd9, - 0x9148, 0x2321, - 0x9149, 0x10b4, - 0x914a, 0x1cf8, - 0x914b, 0x0c72, - 0x914c, 0x1220, - 0x914d, 0x0ba5, - 0x914e, 0x1cfa, - 0x9150, 0x1cf9, - 0x9151, 0x4dda, - 0x9152, 0x08f5, - 0x9153, 0x4ddb, - 0x9157, 0x0fba, - 0x9158, 0x4ddf, - 0x915a, 0x0670, - 0x915b, 0x4de1, - 0x915d, 0x1110, - 0x915e, 0x0dfd, - 0x915f, 0x4de3, - 0x9161, 0x1cfe, - 0x9162, 0x1cfd, - 0x9163, 0x075f, - 0x9164, 0x1cfc, - 0x9165, 0x0dcb, - 0x9166, 0x4de5, - 0x9169, 0x1d00, - 0x916a, 0x09bd, - 0x916b, 0x4de8, - 0x916c, 0x050f, - 0x916d, 0x4de9, - 0x916e, 0x0e5b, - 0x916f, 0x1d01, - 0x9170, 0x1cff, - 0x9171, 0x0885, - 0x9172, 0x1d04, - 0x9173, 0x4dea, - 0x9174, 0x1d05, - 0x9175, 0x089e, - 0x9176, 0x0abd, - 0x9177, 0x096e, - 0x9178, 0x0dd6, - 0x9179, 0x1d06, - 0x917a, 0x4deb, - 0x917d, 0x1d02, - 0x917f, 0x0b53, - 0x9180, 0x4dee, - 0x9185, 0x1d08, - 0x9186, 0x4df3, - 0x9187, 0x053f, - 0x9188, 0x4df4, - 0x9189, 0x124a, - 0x918a, 0x4df5, - 0x918b, 0x055a, - 0x918c, 0x1d07, - 0x918d, 0x1d0a, - 0x918e, 0x4df6, - 0x9190, 0x1d09, - 0x9191, 0x1d0b, - 0x9192, 0x0f9c, - 0x9193, 0x4df8, - 0x9196, 0x2255, - 0x9197, 0x4dfb, - 0x919a, 0x0ad6, - 0x919b, 0x0c84, - 0x919c, 0x1e8f, - 0x919d, 0x4dfe, - 0x91a2, 0x1d0c, - 0x91a4, 0x4e03, - 0x91aa, 0x1d0e, - 0x91ab, 0x220c, - 0x91ac, 0x1fa4, - 0x91ad, 0x1d0f, - 0x91b0, 0x4e09, - 0x91b4, 0x1d13, - 0x91b5, 0x1d12, - 0x91b6, 0x4e0d, - 0x91ba, 0x1d14, - 0x91bb, 0x4e11, - 0x91c0, 0x209b, - 0x91c1, 0x21d8, - 0x91c2, 0x4e16, - 0x91c3, 0x25fa, - 0x91c4, 0x4e17, - 0x91c5, 0x25f9, - 0x91c6, 0x4e18, - 0x91c7, 0x0490, - 0x91c8, 0x4e19, - 0x91c9, 0x10b9, - 0x91ca, 0x0d64, - 0x91cb, 0x2134, - 0x91cc, 0x09da, - 0x91cd, 0x11d7, - 0x91ce, 0x1037, - 0x91cf, 0x0a08, - 0x91d0, 0x4e1a, - 0x91d1, 0x08c1, - 0x91d2, 0x24f3, - 0x91d5, 0x24f8, - 0x91d6, 0x4e1b, - 0x91d7, 0x24f7, - 0x91d8, 0x1ec8, - 0x91d9, 0x24f6, - 0x91da, 0x4e1c, - 0x91dc, 0x06a5, - 0x91dd, 0x2280, - 0x91de, 0x4e1e, - 0x91e3, 0x1ec5, - 0x91e4, 0x24fb, - 0x91e5, 0x4e23, - 0x91e7, 0x24fa, - 0x91e8, 0x4e25, - 0x91e9, 0x1eed, - 0x91ea, 0x4e26, - 0x91f5, 0x24fd, - 0x91f6, 0x4e31, - 0x91f7, 0x24f9, - 0x91f8, 0x4e32, - 0x91f9, 0x24fe, - 0x91fa, 0x20cd, - 0x91fb, 0x4e33, - 0x9200, 0x2508, - 0x9201, 0x2504, - 0x9202, 0x4e38, - 0x9204, 0x2506, - 0x9205, 0x4e3a, - 0x9208, 0x24ff, - 0x9209, 0x2090, - 0x920a, 0x4e3d, - 0x920d, 0x1edd, - 0x920e, 0x1f25, - 0x920f, 0x4e40, - 0x9210, 0x2503, - 0x9211, 0x2502, - 0x9212, 0x4e41, - 0x9214, 0x1e7a, - 0x9215, 0x20a6, - 0x9216, 0x4e43, - 0x921e, 0x1fd5, - 0x921f, 0x4e4b, - 0x9223, 0x1f11, - 0x9224, 0x4e4f, - 0x9225, 0x2507, - 0x9226, 0x2500, - 0x9227, 0x2505, - 0x9228, 0x4e50, - 0x922e, 0x2519, - 0x922f, 0x4e56, - 0x9230, 0x2515, - 0x9231, 0x4e57, - 0x9233, 0x250c, - 0x9234, 0x2031, - 0x9235, 0x4e59, - 0x9237, 0x250b, - 0x9238, 0x250f, - 0x9239, 0x251a, - 0x923a, 0x2509, - 0x923b, 0x4e5b, - 0x923d, 0x250e, - 0x923e, 0x2234, - 0x923f, 0x2513, - 0x9240, 0x1f80, - 0x9241, 0x4e5d, - 0x9245, 0x2501, - 0x9246, 0x4e61, - 0x9248, 0x2517, - 0x9249, 0x2516, - 0x924a, 0x4e63, - 0x924d, 0x2518, - 0x924e, 0x4e66, - 0x9251, 0x1e56, - 0x9252, 0x4e69, - 0x9255, 0x250d, - 0x9256, 0x4e6c, - 0x9257, 0x20d3, - 0x9258, 0x4e6d, - 0x925a, 0x207a, - 0x925b, 0x20ce, - 0x925c, 0x4e6f, - 0x925e, 0x2510, - 0x925f, 0x4e71, - 0x9262, 0x1e55, - 0x9263, 0x4e74, - 0x9266, 0x250a, - 0x9267, 0x4e77, - 0x926c, 0x2511, - 0x926e, 0x4e7c, - 0x9274, 0x086b, - 0x9275, 0x4e82, - 0x9278, 0x1faa, - 0x9279, 0x4e85, - 0x927a, 0x251e, - 0x927b, 0x1f1f, - 0x927c, 0x4e86, - 0x927f, 0x252d, - 0x9280, 0x221d, - 0x9281, 0x4e89, - 0x9283, 0x2532, - 0x9284, 0x4e8b, - 0x9285, 0x217b, - 0x9286, 0x4e8c, - 0x928e, 0x1d80, - 0x928f, 0x4e94, - 0x9291, 0x21af, - 0x9292, 0x4e96, - 0x9293, 0x252c, - 0x9294, 0x4e97, - 0x9296, 0x2528, - 0x9297, 0x4e99, - 0x9298, 0x208c, - 0x9299, 0x4e9a, - 0x929a, 0x252f, - 0x929b, 0x4e9b, - 0x929c, 0x21bc, - 0x929d, 0x4e9c, - 0x92a0, 0x251d, - 0x92a1, 0x4e9f, - 0x92a3, 0x2535, - 0x92a4, 0x4ea1, - 0x92a5, 0x220d, - 0x92a6, 0x2526, - 0x92a7, 0x4ea2, - 0x92a8, 0x2534, - 0x92a9, 0x252a, - 0x92aa, 0x251f, - 0x92ab, 0x2531, - 0x92ac, 0x251c, - 0x92ad, 0x4ea3, - 0x92ae, 0x1d81, - 0x92af, 0x4ea4, - 0x92b1, 0x2525, - 0x92b2, 0x4ea6, - 0x92b7, 0x21cd, - 0x92b8, 0x4eab, - 0x92b9, 0x21da, - 0x92ba, 0x4eac, - 0x92bb, 0x2172, - 0x92bc, 0x253e, - 0x92bd, 0x4ead, - 0x92c1, 0x204f, - 0x92c2, 0x4eb1, - 0x92c3, 0x2543, - 0x92c4, 0x4eb2, - 0x92c5, 0x21d7, - 0x92c6, 0x4eb3, - 0x92c7, 0x1e3c, - 0x92c8, 0x1d82, - 0x92c9, 0x4eb4, - 0x92cc, 0x2529, - 0x92cd, 0x4eb7, - 0x92cf, 0x2521, - 0x92d0, 0x4eb9, - 0x92d2, 0x1eff, - 0x92d3, 0x4ebb, - 0x92dd, 0x253f, - 0x92de, 0x4ec5, - 0x92df, 0x2544, - 0x92e0, 0x4ec6, - 0x92e3, 0x2523, - 0x92e4, 0x1e90, - 0x92e5, 0x253a, - 0x92e6, 0x2545, - 0x92e7, 0x4ec9, - 0x92e8, 0x253d, - 0x92e9, 0x4eca, - 0x92ea, 0x20c1, - 0x92eb, 0x4ecb, - 0x92ed, 0x2103, - 0x92ee, 0x2520, - 0x92ef, 0x253c, - 0x92f0, 0x253b, - 0x92f1, 0x2538, - 0x92f2, 0x4ecd, - 0x92f6, 0x2540, - 0x92f7, 0x4ed1, - 0x92f8, 0x1fcd, - 0x92f9, 0x4ed2, - 0x92fc, 0x1f18, - 0x92fd, 0x4ed5, - 0x9300, 0x4ed8, - 0x9301, 0x254b, - 0x9302, 0x4ed9, - 0x9306, 0x2547, - 0x9307, 0x254f, - 0x9309, 0x4edd, - 0x9310, 0x22b0, - 0x9311, 0x4ee4, - 0x9312, 0x2546, - 0x9313, 0x4ee5, - 0x9315, 0x254c, - 0x9316, 0x4ee7, - 0x9318, 0x1e9a, - 0x9319, 0x2552, - 0x931a, 0x2530, - 0x931b, 0x2549, - 0x931c, 0x4ee9, - 0x931f, 0x2551, - 0x9320, 0x1eca, - 0x9321, 0x4eec, - 0x9322, 0x20d2, - 0x9323, 0x4eed, - 0x9326, 0x1fb8, - 0x9327, 0x4ef0, - 0x9328, 0x2079, - 0x9329, 0x4ef1, - 0x932b, 0x21ab, - 0x932c, 0x4ef3, - 0x932e, 0x254d, - 0x932f, 0x1ea5, - 0x9330, 0x4ef5, - 0x9332, 0x204c, - 0x9333, 0x2080, - 0x9334, 0x4ef7, - 0x9336, 0x266d, - 0x9337, 0x4ef9, - 0x9338, 0x2537, - 0x9339, 0x4efa, - 0x933e, 0x1d83, - 0x933f, 0x4eff, - 0x9340, 0x254a, - 0x9341, 0x21b8, - 0x9342, 0x4f00, - 0x9343, 0x254e, - 0x9344, 0x4f01, - 0x9346, 0x24fc, - 0x9347, 0x2554, - 0x9348, 0x4f03, - 0x934b, 0x1f3c, - 0x934c, 0x4f06, - 0x934d, 0x1ed5, - 0x934e, 0x4f07, - 0x9354, 0x2556, - 0x9355, 0x4f0d, - 0x9358, 0x2268, - 0x9359, 0x4f10, - 0x935b, 0x1ed6, - 0x935c, 0x4f12, - 0x9364, 0x2557, - 0x9365, 0x2553, - 0x9366, 0x4f1a, - 0x9369, 0x2548, - 0x936a, 0x1d84, - 0x936b, 0x4f1d, - 0x936c, 0x20dc, - 0x936d, 0x4f1e, - 0x9370, 0x2559, - 0x9371, 0x4f21, - 0x9375, 0x1f97, - 0x9376, 0x2555, - 0x9377, 0x4f25, - 0x937a, 0x227d, - 0x937b, 0x4f28, - 0x937e, 0x257e, - 0x937f, 0x4f2b, - 0x9382, 0x207c, - 0x9383, 0x4f2e, - 0x9384, 0x255a, - 0x9385, 0x4f2f, - 0x9387, 0x255e, - 0x9388, 0x4f31, - 0x938a, 0x1e34, - 0x938b, 0x4f33, - 0x938f, 0x1d86, - 0x9390, 0x4f37, - 0x9396, 0x215e, - 0x9397, 0x4f3d, - 0x9398, 0x2560, - 0x9399, 0x4f3e, - 0x93a2, 0x21a2, - 0x93a3, 0x2354, - 0x93a4, 0x4f47, - 0x93a6, 0x2563, - 0x93a7, 0x2527, - 0x93a8, 0x4f49, - 0x93a9, 0x252e, - 0x93aa, 0x2558, - 0x93ab, 0x4f4a, - 0x93ac, 0x1f1b, - 0x93ad, 0x4f4b, - 0x93ae, 0x2283, - 0x93af, 0x4f4c, - 0x93b0, 0x2564, - 0x93b1, 0x4f4d, - 0x93b3, 0x20a0, - 0x93b4, 0x4f4f, - 0x93b5, 0x2565, - 0x93b6, 0x4f50, - 0x93b8, 0x2561, - 0x93b9, 0x4f52, - 0x93bf, 0x2562, - 0x93c0, 0x4f58, - 0x93c3, 0x256c, - 0x93c4, 0x4f5b, - 0x93c7, 0x256d, - 0x93c8, 0x2020, - 0x93c9, 0x4f5e, - 0x93ca, 0x1d85, - 0x93cb, 0x4f5f, - 0x93cc, 0x255f, - 0x93cd, 0x256a, - 0x93ce, 0x4f60, - 0x93d1, 0x256e, - 0x93d2, 0x4f63, - 0x93d6, 0x1e01, - 0x93d7, 0x2539, - 0x93d8, 0x255c, - 0x93d9, 0x4f67, - 0x93dc, 0x2568, - 0x93de, 0x256b, - 0x93df, 0x1e6f, - 0x93e0, 0x4f6a, - 0x93e1, 0x1fc4, - 0x93e2, 0x2567, - 0x93e3, 0x4f6b, - 0x93e4, 0x255b, - 0x93e5, 0x4f6c, - 0x93e8, 0x261d, - 0x93e9, 0x4f6f, - 0x93f5, 0x252b, - 0x93f6, 0x4f7b, - 0x93f7, 0x2571, - 0x93f8, 0x4f7c, - 0x93f9, 0x2577, - 0x93fa, 0x4f7d, - 0x9400, 0x4f83, - 0x9403, 0x2522, - 0x9404, 0x4f86, - 0x940b, 0x2533, - 0x940c, 0x4f8d, - 0x9410, 0x202a, - 0x9411, 0x4f91, - 0x9412, 0x2536, - 0x9413, 0x2573, - 0x9414, 0x256f, - 0x9415, 0x4f92, - 0x9418, 0x2293, - 0x9419, 0x2578, - 0x941a, 0x4f95, - 0x941d, 0x2570, - 0x941e, 0x4f98, - 0x9420, 0x2575, - 0x9421, 0x4f9a, - 0x9426, 0x2541, - 0x9428, 0x255d, - 0x9429, 0x4f9f, - 0x942e, 0x201a, - 0x942f, 0x4fa4, - 0x9432, 0x257a, - 0x9433, 0x2006, - 0x9434, 0x4fa7, - 0x9435, 0x2177, - 0x9436, 0x4fa8, - 0x9438, 0x251b, - 0x9439, 0x4faa, - 0x943a, 0x2524, - 0x943b, 0x4fab, - 0x943e, 0x1d87, - 0x943f, 0x257b, - 0x9440, 0x4fae, - 0x9444, 0x22a3, - 0x9445, 0x4fb2, - 0x944a, 0x2579, - 0x944b, 0x4fb7, - 0x944c, 0x2566, - 0x944d, 0x4fb8, - 0x9452, 0x1f93, - 0x9453, 0x4fbd, - 0x9454, 0x257c, - 0x9455, 0x4fbe, - 0x9460, 0x2514, - 0x9461, 0x4fc9, - 0x9463, 0x257d, - 0x9464, 0x4fcb, - 0x9465, 0x2572, - 0x9466, 0x4fcc, - 0x946b, 0x1d88, - 0x946c, 0x4fd1, - 0x946d, 0x2574, - 0x946e, 0x4fd2, - 0x9470, 0x224e, - 0x9471, 0x4fd4, - 0x9472, 0x21c6, - 0x9473, 0x4fd5, - 0x9477, 0x209f, - 0x9478, 0x4fd9, - 0x9479, 0x2576, - 0x947a, 0x4fda, - 0x947c, 0x2064, - 0x947d, 0x22bf, - 0x947e, 0x261c, - 0x947f, 0x225e, - 0x9480, 0x4fdc, - 0x9485, 0x1a8e, - 0x9488, 0x118c, - 0x9489, 0x05e3, - 0x948a, 0x1a92, - 0x948b, 0x1a91, - 0x948c, 0x1a93, - 0x948e, 0x0c22, - 0x948f, 0x1a95, - 0x9491, 0x4fe1, - 0x9492, 0x064d, - 0x9493, 0x05d7, - 0x9494, 0x1a97, - 0x9495, 0x1a99, - 0x9496, 0x4fe2, - 0x9497, 0x1a98, - 0x9498, 0x4fe3, - 0x9499, 0x06c1, - 0x949a, 0x1a9a, - 0x949d, 0x061a, - 0x949e, 0x04d3, - 0x949f, 0x11d2, - 0x94a0, 0x0b29, - 0x94a1, 0x041e, - 0x94a2, 0x06d1, - 0x94a3, 0x1a9d, - 0x94a5, 0x1102, - 0x94a6, 0x0c52, - 0x94a7, 0x092a, - 0x94a8, 0x0ee8, - 0x94a9, 0x070c, - 0x94aa, 0x1aa0, - 0x94ab, 0x1a9f, - 0x94ac, 0x1aa2, - 0x94ad, 0x1aa1, - 0x94ae, 0x0b66, - 0x94af, 0x1aa3, - 0x94b1, 0x0c2b, - 0x94b2, 0x1aa5, - 0x94b3, 0x0c2c, - 0x94b4, 0x1aa6, - 0x94b5, 0x046e, - 0x94b6, 0x1aa7, - 0x94bb, 0x1247, - 0x94bc, 0x1aac, - 0x94be, 0x084b, - 0x94bf, 0x1aae, - 0x94c0, 0x10b0, - 0x94c1, 0x0e4d, - 0x94c2, 0x0473, - 0x94c3, 0x0a2e, - 0x94c4, 0x1aaf, - 0x94c5, 0x0c23, - 0x94c6, 0x0ab2, - 0x94c7, 0x4fe4, - 0x94c8, 0x1ab0, - 0x94cf, 0x4fe5, - 0x94d0, 0x1ab7, - 0x94d3, 0x4fe6, - 0x94d5, 0x1aba, - 0x94d8, 0x1abe, - 0x94d9, 0x1abd, - 0x94da, 0x4fe8, - 0x94db, 0x1abf, - 0x94dc, 0x0e5e, - 0x94dd, 0x0a68, - 0x94de, 0x1ac0, - 0x94e1, 0x1142, - 0x94e2, 0x1ac3, - 0x94e3, 0x0f20, - 0x94e4, 0x1ac4, - 0x94e6, 0x4fe9, - 0x94e7, 0x1ac6, - 0x94e9, 0x1ac9, - 0x94ea, 0x1ac8, - 0x94eb, 0x1aca, - 0x94ec, 0x06f0, - 0x94ed, 0x0aff, - 0x94ee, 0x1acb, - 0x94f0, 0x0893, - 0x94f1, 0x1046, - 0x94f2, 0x04c0, - 0x94f3, 0x1acd, - 0x94f6, 0x107f, - 0x94f7, 0x1ad0, - 0x94f8, 0x11fc, - 0x94f9, 0x1ad1, - 0x94fa, 0x0beb, - 0x94fb, 0x4fea, - 0x94fc, 0x1ad2, - 0x94fe, 0x09fd, - 0x94ff, 0x1ad4, - 0x9500, 0x0f67, - 0x9501, 0x0ded, - 0x9502, 0x1ad6, - 0x9503, 0x1ad5, - 0x9504, 0x051f, - 0x9505, 0x0751, - 0x9506, 0x1ad7, - 0x9508, 0x0fad, - 0x9509, 0x1ad9, - 0x950b, 0x0683, - 0x950c, 0x0f8a, - 0x950d, 0x1adb, - 0x9510, 0x0ccc, - 0x9511, 0x0e33, - 0x9512, 0x1ade, - 0x9517, 0x1181, - 0x9518, 0x1ae3, - 0x9519, 0x0570, - 0x951a, 0x0aaf, - 0x951b, 0x1ae4, - 0x951c, 0x4feb, - 0x951d, 0x1ae5, - 0x9520, 0x4fec, - 0x9521, 0x0f0c, - 0x9522, 0x1ae8, - 0x9523, 0x0a87, - 0x9524, 0x053b, - 0x9525, 0x1213, - 0x9526, 0x08c6, - 0x9527, 0x4fed, - 0x9528, 0x0f34, - 0x9529, 0x1aeb, - 0x952a, 0x1ae9, - 0x952c, 0x1aec, - 0x952d, 0x05e6, - 0x952e, 0x086f, - 0x952f, 0x0911, - 0x9530, 0x0ad1, - 0x9531, 0x1aed, - 0x9533, 0x4fee, - 0x9534, 0x1aef, - 0x9535, 0x1af7, - 0x9536, 0x1af0, - 0x9539, 0x0c3f, - 0x953a, 0x1b19, - 0x953b, 0x060c, - 0x953c, 0x1af3, - 0x953d, 0x4fef, - 0x953e, 0x1af4, - 0x9540, 0x0605, - 0x9541, 0x0ac3, - 0x9542, 0x1af6, - 0x9543, 0x4ff0, - 0x9544, 0x1af8, - 0x9547, 0x1193, - 0x9548, 0x4ff1, - 0x9549, 0x1afb, - 0x954a, 0x0b5a, - 0x954b, 0x4ff2, - 0x954c, 0x1afc, - 0x954d, 0x0b5b, - 0x954e, 0x1afd, - 0x9550, 0x06df, - 0x9551, 0x0402, - 0x9552, 0x1aff, - 0x9555, 0x4ff3, - 0x9556, 0x1b02, - 0x955a, 0x4ff4, - 0x955b, 0x1b06, - 0x955c, 0x08e4, - 0x955d, 0x1b09, - 0x955e, 0x1b07, - 0x9560, 0x4ff5, - 0x9561, 0x1b0a, - 0x9563, 0x0a16, - 0x9564, 0x1b0c, - 0x956d, 0x09c3, - 0x956e, 0x4ff6, - 0x956f, 0x1b15, - 0x9570, 0x09f6, - 0x9571, 0x1b16, - 0x9574, 0x4ff7, - 0x9576, 0x0f4f, - 0x9577, 0x1e75, - 0x9578, 0x4ff9, - 0x957f, 0x04c9, - 0x9580, 0x207d, - 0x9581, 0x5000, - 0x9582, 0x23bf, - 0x9583, 0x2113, - 0x9584, 0x5001, - 0x9586, 0x23c0, - 0x9587, 0x5003, - 0x9589, 0x1e45, - 0x958a, 0x5005, - 0x958b, 0x1fd8, - 0x958c, 0x23c4, - 0x958d, 0x5006, - 0x958e, 0x23c2, - 0x958f, 0x2104, - 0x9590, 0x5007, - 0x9591, 0x21bd, - 0x9592, 0x5008, - 0x9593, 0x1f87, - 0x9594, 0x23c3, - 0x9595, 0x5009, - 0x9598, 0x2269, - 0x9599, 0x500c, - 0x95a1, 0x1f43, - 0x95a2, 0x5014, - 0x95a3, 0x1f1e, - 0x95a4, 0x2679, - 0x95a5, 0x1eeb, - 0x95a6, 0x5015, - 0x95a8, 0x1f35, - 0x95a9, 0x208a, - 0x95aa, 0x5017, - 0x95ab, 0x23c7, - 0x95ac, 0x23c9, - 0x95ad, 0x23c6, - 0x95ae, 0x5018, - 0x95b2, 0x224f, - 0x95b3, 0x501c, - 0x95b6, 0x23cb, - 0x95b7, 0x501f, - 0x95b9, 0x21f3, - 0x95ba, 0x5021, - 0x95bb, 0x21f7, - 0x95bc, 0x23cf, - 0x95bd, 0x23ce, - 0x95be, 0x23ca, - 0x95bf, 0x23cd, - 0x95c0, 0x5022, - 0x95c3, 0x23d0, - 0x95c4, 0x5025, - 0x95c6, 0x266c, - 0x95c7, 0x5027, - 0x95c8, 0x23c1, - 0x95c9, 0x5028, - 0x95ca, 0x1fee, - 0x95cb, 0x23d1, - 0x95cc, 0x1ff8, - 0x95cd, 0x5029, - 0x95d0, 0x23d3, - 0x95d1, 0x502c, - 0x95d4, 0x23d2, - 0x95d5, 0x23d4, - 0x95d6, 0x1e98, - 0x95d7, 0x502f, - 0x95dc, 0x1f2c, - 0x95dd, 0x5034, - 0x95de, 0x23d5, - 0x95df, 0x5035, - 0x95e1, 0x1e71, - 0x95e2, 0x2691, - 0x95e3, 0x5037, - 0x95e5, 0x23c5, - 0x95e6, 0x5039, - 0x95e8, 0x0aca, - 0x95e9, 0x1685, - 0x95ea, 0x0cfa, - 0x95eb, 0x1686, - 0x95ec, 0x503b, - 0x95ed, 0x043e, - 0x95ee, 0x0ed9, - 0x95ef, 0x0536, - 0x95f0, 0x0ccd, - 0x95f1, 0x1687, - 0x95f2, 0x0f3d, - 0x95f3, 0x1688, - 0x95f4, 0x0857, - 0x95f5, 0x1689, - 0x95f7, 0x0acb, - 0x95f8, 0x1143, - 0x95f9, 0x0b39, - 0x95fa, 0x0744, - 0x95fb, 0x0ed4, - 0x95fc, 0x168b, - 0x95fd, 0x0afb, - 0x95fe, 0x168c, - 0x95ff, 0x503c, - 0x9600, 0x0644, - 0x9601, 0x06ee, - 0x9602, 0x0789, - 0x9603, 0x168d, - 0x9605, 0x1107, - 0x9606, 0x168f, - 0x9607, 0x503d, - 0x9608, 0x1690, - 0x9609, 0x0ff4, - 0x960a, 0x1691, - 0x960e, 0x0fff, - 0x960f, 0x1695, - 0x9610, 0x04c2, - 0x9611, 0x09a6, - 0x9612, 0x1696, - 0x9613, 0x503e, - 0x9614, 0x0996, - 0x9615, 0x1697, - 0x9618, 0x503f, - 0x9619, 0x169a, - 0x961b, 0x5040, - 0x961c, 0x06b2, - 0x961d, 0x1354, - 0x961e, 0x5041, - 0x961f, 0x0612, - 0x9620, 0x5042, - 0x9621, 0x1356, - 0x9622, 0x1355, - 0x9623, 0x5043, - 0x962a, 0x1358, - 0x962b, 0x504a, - 0x962e, 0x0cc9, - 0x962f, 0x504d, - 0x9631, 0x1357, - 0x9632, 0x065d, - 0x9633, 0x101d, - 0x9634, 0x107c, - 0x9635, 0x1194, - 0x9636, 0x08a8, - 0x9637, 0x504f, - 0x963b, 0x1245, - 0x963c, 0x135a, - 0x963d, 0x1359, - 0x963e, 0x5053, - 0x963f, 0x03ad, - 0x9640, 0x0e84, - 0x9641, 0x5054, - 0x9642, 0x135b, - 0x9643, 0x5055, - 0x9644, 0x06b8, - 0x9645, 0x083d, - 0x9646, 0x0a64, - 0x9647, 0x0a4b, - 0x9648, 0x04e7, - 0x9649, 0x135c, - 0x964a, 0x5056, - 0x964b, 0x0a51, - 0x964c, 0x0b13, - 0x964d, 0x0886, - 0x964e, 0x5057, - 0x9650, 0x0f4b, - 0x9651, 0x5059, - 0x9654, 0x135d, - 0x9655, 0x0cfb, - 0x9656, 0x505c, - 0x9658, 0x231a, - 0x9659, 0x505e, - 0x965b, 0x0446, - 0x965c, 0x5060, - 0x965d, 0x2114, - 0x965e, 0x5061, - 0x965f, 0x135e, - 0x9660, 0x5062, - 0x9661, 0x05f7, - 0x9662, 0x10fd, - 0x9663, 0x2284, - 0x9664, 0x0522, - 0x9665, 0x5063, - 0x9667, 0x135f, - 0x9668, 0x110c, - 0x9669, 0x0f42, - 0x966a, 0x0ba4, - 0x966b, 0x5065, - 0x966c, 0x1360, - 0x966d, 0x5066, - 0x9670, 0x221c, - 0x9671, 0x5069, - 0x9672, 0x1361, - 0x9673, 0x1e7e, - 0x9674, 0x1362, - 0x9675, 0x0a33, - 0x9676, 0x0e28, - 0x9677, 0x0f4a, - 0x9678, 0x204d, - 0x9679, 0x506a, - 0x967d, 0x2201, - 0x967e, 0x506e, - 0x9685, 0x10cc, - 0x9686, 0x0a48, - 0x9687, 0x5075, - 0x9688, 0x1363, - 0x9689, 0x5076, - 0x968a, 0x1ed9, - 0x968b, 0x0dda, - 0x968c, 0x5077, - 0x968d, 0x1364, - 0x968e, 0x1fb2, - 0x968f, 0x0ddb, - 0x9690, 0x1085, - 0x9691, 0x5078, - 0x9694, 0x06ef, - 0x9695, 0x2252, - 0x9696, 0x507b, - 0x9697, 0x1365, - 0x9698, 0x03ba, - 0x9699, 0x0f23, - 0x969a, 0x507c, - 0x969b, 0x1f79, - 0x969c, 0x1170, - 0x969d, 0x507d, - 0x96a7, 0x0de2, - 0x96a8, 0x2157, - 0x96a9, 0x5087, - 0x96aa, 0x21bf, - 0x96ab, 0x5088, - 0x96b0, 0x1366, - 0x96b1, 0x221f, - 0x96b2, 0x508d, - 0x96b3, 0x1684, - 0x96b4, 0x203d, - 0x96b5, 0x508e, - 0x96b6, 0x09ee, - 0x96b7, 0x508f, - 0x96b8, 0x2015, - 0x96b9, 0x1d79, - 0x96ba, 0x5090, - 0x96bb, 0x26a5, - 0x96bc, 0x1d7a, - 0x96be, 0x0b34, - 0x96bf, 0x5091, - 0x96c0, 0x0c93, - 0x96c1, 0x100c, - 0x96c2, 0x5092, - 0x96c4, 0x0fa6, - 0x96c5, 0x0fee, - 0x96c6, 0x0822, - 0x96c7, 0x0726, - 0x96c8, 0x5094, - 0x96c9, 0x1b1c, - 0x96ca, 0x5095, - 0x96cc, 0x0549, - 0x96cd, 0x109f, - 0x96ce, 0x1d7c, - 0x96cf, 0x0520, - 0x96d0, 0x5097, - 0x96d2, 0x1d7d, - 0x96d3, 0x5099, - 0x96d5, 0x05d2, - 0x96d6, 0x2156, - 0x96d7, 0x509b, - 0x96d9, 0x2144, - 0x96da, 0x509d, - 0x96db, 0x1e91, - 0x96dc, 0x2257, - 0x96dd, 0x509e, - 0x96e0, 0x1d7f, - 0x96e1, 0x50a1, - 0x96e2, 0x200a, - 0x96e3, 0x2092, - 0x96e4, 0x50a2, - 0x96e8, 0x10cf, - 0x96e9, 0x1d61, - 0x96ea, 0x0fd2, - 0x96eb, 0x50a6, - 0x96ef, 0x1d63, - 0x96f0, 0x50aa, - 0x96f2, 0x2250, - 0x96f3, 0x1d62, - 0x96f4, 0x50ac, - 0x96f6, 0x0a2c, - 0x96f7, 0x09c2, - 0x96f8, 0x50ae, - 0x96f9, 0x040b, - 0x96fa, 0x50af, - 0x96fb, 0x1ec3, - 0x96fc, 0x50b0, - 0x96fe, 0x0efc, - 0x96ff, 0x50b2, - 0x9700, 0x0fb3, - 0x9701, 0x1d65, - 0x9702, 0x50b3, - 0x9704, 0x0f63, - 0x9705, 0x50b5, - 0x9706, 0x1d64, - 0x9707, 0x1191, - 0x9708, 0x1d66, - 0x9709, 0x0abe, - 0x970a, 0x50b6, - 0x970d, 0x0809, - 0x970e, 0x1d68, - 0x970f, 0x1d67, - 0x9710, 0x50b9, - 0x9713, 0x0b41, - 0x9714, 0x50bc, - 0x9716, 0x0a21, - 0x9717, 0x50be, - 0x971c, 0x0d9f, - 0x971d, 0x50c3, - 0x971e, 0x0f29, - 0x971f, 0x50c4, - 0x9727, 0x21a8, - 0x9728, 0x50cc, - 0x972a, 0x1d69, - 0x972b, 0x50ce, - 0x972d, 0x1d6a, - 0x972e, 0x50d0, - 0x9730, 0x1d6b, - 0x9731, 0x50d2, - 0x9732, 0x0a5d, - 0x9733, 0x50d3, - 0x9738, 0x03df, - 0x9739, 0x0bba, - 0x973a, 0x50d8, - 0x973d, 0x260d, - 0x973e, 0x1d6c, - 0x973f, 0x50db, - 0x9742, 0x260c, - 0x9743, 0x50de, - 0x9744, 0x260e, - 0x9745, 0x50df, - 0x9748, 0x2032, - 0x9749, 0x50e2, - 0x9752, 0x0c5d, - 0x9753, 0x1d60, - 0x9754, 0x50eb, - 0x9756, 0x08e7, - 0x9757, 0x50ed, - 0x9759, 0x08e1, - 0x975a, 0x260b, - 0x975b, 0x05c6, - 0x975c, 0x50ef, - 0x975e, 0x0664, - 0x975f, 0x50f1, - 0x9760, 0x094c, - 0x9761, 0x0ad7, - 0x9762, 0x0aeb, - 0x9763, 0x50f2, - 0x9765, 0x1282, - 0x9766, 0x50f4, - 0x9768, 0x22c3, - 0x9769, 0x06ea, - 0x976a, 0x50f6, - 0x9773, 0x08ca, - 0x9774, 0x0fce, - 0x9775, 0x50ff, - 0x9776, 0x03db, - 0x9777, 0x5100, - 0x977c, 0x1dc8, - 0x977d, 0x5105, - 0x9785, 0x1dc9, - 0x9786, 0x510d, - 0x978b, 0x0f77, - 0x978c, 0x5112, - 0x978d, 0x03bb, - 0x978e, 0x5113, - 0x978f, 0x1f23, - 0x9790, 0x5114, - 0x9791, 0x1dca, - 0x9793, 0x5115, - 0x9794, 0x1dcc, - 0x9795, 0x5116, - 0x9798, 0x0c47, - 0x9799, 0x5119, - 0x97a0, 0x08fe, - 0x97a1, 0x5120, - 0x97a3, 0x1dcf, - 0x97a4, 0x5122, - 0x97a6, 0x2695, - 0x97a7, 0x5124, - 0x97ab, 0x1dce, - 0x97ac, 0x5128, - 0x97ad, 0x0447, - 0x97ae, 0x5129, - 0x97af, 0x1dcd, - 0x97b0, 0x512a, - 0x97b2, 0x1dd0, - 0x97b3, 0x512c, - 0x97b4, 0x1dd1, - 0x97b5, 0x512d, - 0x97bd, 0x265e, - 0x97be, 0x5135, - 0x97c3, 0x265d, - 0x97c4, 0x513a, - 0x97c6, 0x2692, - 0x97c7, 0x513c, - 0x97c9, 0x265f, - 0x97ca, 0x513e, - 0x97cb, 0x218d, - 0x97cc, 0x20fd, - 0x97cd, 0x513f, - 0x97d3, 0x1f40, - 0x97d4, 0x5145, - 0x97d9, 0x2465, - 0x97da, 0x514a, - 0x97dc, 0x2467, - 0x97dd, 0x514c, - 0x97de, 0x2466, - 0x97df, 0x514d, - 0x97e6, 0x0eb3, - 0x97e7, 0x0ca8, - 0x97e8, 0x5154, - 0x97e9, 0x0762, - 0x97ea, 0x184e, - 0x97ed, 0x08f1, - 0x97ee, 0x5155, - 0x97f3, 0x107b, - 0x97f4, 0x515a, - 0x97f5, 0x1112, - 0x97f6, 0x0d11, - 0x97f7, 0x515b, - 0x97ff, 0x21c9, - 0x9800, 0x5163, - 0x9801, 0x2209, - 0x9802, 0x1ec9, - 0x9803, 0x20e9, - 0x9804, 0x5164, - 0x9805, 0x21ca, - 0x9806, 0x2146, - 0x9807, 0x25c5, - 0x9808, 0x21dc, - 0x9809, 0x5165, - 0x980a, 0x245e, - 0x980b, 0x5166, - 0x980c, 0x214f, - 0x980d, 0x5167, - 0x980e, 0x25c6, - 0x9810, 0x2241, - 0x9811, 0x218a, - 0x9812, 0x1e2f, - 0x9813, 0x1edc, - 0x9814, 0x5168, - 0x9817, 0x20bf, - 0x9818, 0x2034, - 0x9819, 0x516b, - 0x981c, 0x25c9, - 0x981d, 0x516e, - 0x9821, 0x25c8, - 0x9822, 0x5172, - 0x9824, 0x220e, - 0x9825, 0x5174, - 0x9826, 0x25cb, - 0x9827, 0x5175, - 0x982d, 0x217d, - 0x982e, 0x517b, - 0x9830, 0x1f7e, - 0x9831, 0x517d, - 0x9837, 0x25cc, - 0x9838, 0x1fc3, - 0x9839, 0x5183, - 0x983b, 0x20b9, - 0x983c, 0x5185, - 0x983d, 0x2181, - 0x983e, 0x5186, - 0x9846, 0x1fda, - 0x9847, 0x518e, - 0x984c, 0x2173, - 0x984d, 0x1ee1, - 0x984e, 0x25cd, - 0x984f, 0x5193, - 0x9853, 0x25ce, - 0x9854, 0x21f6, - 0x9855, 0x5197, - 0x9858, 0x224b, - 0x9859, 0x25d1, - 0x985a, 0x519a, - 0x985b, 0x1ec0, - 0x985c, 0x519b, - 0x985e, 0x2008, - 0x985f, 0x519d, - 0x9862, 0x25d0, - 0x9863, 0x51a0, - 0x9865, 0x25d2, - 0x9866, 0x51a2, - 0x9867, 0x1f2a, - 0x9868, 0x51a3, - 0x986b, 0x1e72, - 0x986c, 0x25d3, - 0x986d, 0x51a6, - 0x986f, 0x21be, - 0x9870, 0x25d4, - 0x9871, 0x2044, - 0x9872, 0x51a8, - 0x9873, 0x25cf, - 0x9874, 0x20f3, - 0x9875, 0x103a, - 0x9876, 0x05e4, - 0x9877, 0x0c67, - 0x9878, 0x1be0, - 0x9879, 0x0f5b, - 0x987a, 0x0da8, - 0x987b, 0x0fb6, - 0x987c, 0x1827, - 0x987d, 0x0e98, - 0x987e, 0x0724, - 0x987f, 0x0618, - 0x9880, 0x1be1, - 0x9881, 0x03ef, - 0x9882, 0x0dc1, - 0x9883, 0x1be2, - 0x9884, 0x10e7, - 0x9885, 0x0a54, - 0x9886, 0x0a35, - 0x9887, 0x0be3, - 0x9888, 0x08e0, - 0x9889, 0x1be3, - 0x988a, 0x0848, - 0x988b, 0x51a9, - 0x988c, 0x1be4, - 0x988e, 0x51aa, - 0x988f, 0x1be6, - 0x9890, 0x104a, - 0x9891, 0x0bd4, - 0x9892, 0x51ab, - 0x9893, 0x0e78, - 0x9894, 0x1be7, - 0x9895, 0x51ac, - 0x9896, 0x1096, - 0x9897, 0x0952, - 0x9898, 0x0e35, - 0x9899, 0x51ad, - 0x989a, 0x1be8, - 0x989c, 0x0ffe, - 0x989d, 0x062d, - 0x989e, 0x1bea, - 0x98a0, 0x05c0, - 0x98a1, 0x1bec, - 0x98a3, 0x51ae, - 0x98a4, 0x04c3, - 0x98a5, 0x1bee, - 0x98a7, 0x0c82, - 0x98a8, 0x1f00, - 0x98a9, 0x51af, - 0x98ae, 0x24cc, - 0x98b0, 0x51b4, - 0x98b1, 0x2698, - 0x98b2, 0x51b5, - 0x98b3, 0x2678, - 0x98b4, 0x51b6, - 0x98b6, 0x24ce, - 0x98b7, 0x51b8, - 0x98bc, 0x24cf, - 0x98bd, 0x51bd, - 0x98c4, 0x20b8, - 0x98c5, 0x51c4, - 0x98c6, 0x24d0, - 0x98c7, 0x51c5, - 0x98c8, 0x24d1, - 0x98c9, 0x51c6, - 0x98ce, 0x0684, - 0x98cf, 0x51cb, - 0x98d1, 0x19b7, - 0x98d4, 0x51cd, - 0x98d5, 0x19ba, - 0x98d6, 0x51ce, - 0x98d8, 0x0bcd, - 0x98d9, 0x19bb, - 0x98db, 0x1ef4, - 0x98dc, 0x51d0, - 0x98de, 0x0666, - 0x98df, 0x0d4a, - 0x98e0, 0x239b, - 0x98e1, 0x51d2, - 0x98e2, 0x267e, - 0x98e3, 0x51d3, - 0x98e7, 0x161a, - 0x98e8, 0x1de7, - 0x98e9, 0x239d, - 0x98ea, 0x239f, - 0x98ec, 0x51d7, - 0x98ed, 0x23a1, - 0x98ee, 0x51d8, - 0x98ef, 0x1ef1, - 0x98f0, 0x51d9, - 0x98f2, 0x221e, - 0x98f3, 0x51db, - 0x98f4, 0x23a2, - 0x98f5, 0x51dc, - 0x98fc, 0x214b, - 0x98fd, 0x1e36, - 0x98fe, 0x2135, - 0x98ff, 0x51e3, - 0x9900, 0x51e4, - 0x9903, 0x1fad, - 0x9904, 0x51e7, - 0x9905, 0x1e53, - 0x9906, 0x51e8, - 0x9909, 0x23a3, - 0x990a, 0x2203, - 0x990b, 0x51eb, - 0x990c, 0x1ee7, - 0x990d, 0x1de8, - 0x990e, 0x51ec, - 0x9910, 0x0494, - 0x9911, 0x23a4, - 0x9912, 0x2097, - 0x9913, 0x1ee4, - 0x9914, 0x51ee, - 0x9918, 0x2238, - 0x9919, 0x51f2, - 0x991b, 0x23a5, - 0x991c, 0x51f4, - 0x991e, 0x1f9a, - 0x991f, 0x51f6, - 0x9921, 0x21c3, - 0x9922, 0x51f8, - 0x9928, 0x1f2e, - 0x9929, 0x51fe, - 0x992e, 0x1de9, - 0x992f, 0x5203, - 0x9933, 0x239c, - 0x9934, 0x5207, - 0x9937, 0x23a6, - 0x9938, 0x520a, - 0x993c, 0x239e, - 0x993d, 0x520e, - 0x993e, 0x2035, - 0x993f, 0x23a7, - 0x9940, 0x520f, - 0x9943, 0x23a8, - 0x9944, 0x5212, - 0x9945, 0x2075, - 0x9946, 0x5213, - 0x9948, 0x23a9, - 0x994b, 0x1feb, - 0x994c, 0x23ac, - 0x994d, 0x5215, - 0x9951, 0x1f6a, - 0x9952, 0x20f9, - 0x9953, 0x5219, - 0x9954, 0x1deb, - 0x9955, 0x1dea, - 0x9956, 0x521a, - 0x9957, 0x2666, - 0x9958, 0x521b, - 0x995c, 0x2667, - 0x995d, 0x521f, - 0x995e, 0x1e6c, - 0x995f, 0x5220, - 0x9962, 0x23ad, - 0x9963, 0x161d, - 0x9964, 0x5223, - 0x9965, 0x0815, - 0x9966, 0x5224, - 0x9967, 0x161e, - 0x996d, 0x0656, - 0x996e, 0x1082, - 0x996f, 0x0875, - 0x9970, 0x0d65, - 0x9971, 0x040e, - 0x9972, 0x0dbc, - 0x9973, 0x5225, - 0x9974, 0x1624, - 0x9975, 0x063b, - 0x9976, 0x0c9f, - 0x9977, 0x1625, - 0x9978, 0x5226, - 0x997a, 0x0899, - 0x997b, 0x5228, - 0x997c, 0x0466, - 0x997d, 0x1626, - 0x997e, 0x5229, - 0x997f, 0x0635, - 0x9980, 0x1627, - 0x9981, 0x0b3c, - 0x9982, 0x522a, - 0x9984, 0x1628, - 0x9985, 0x0f47, - 0x9986, 0x0736, - 0x9987, 0x1629, - 0x9988, 0x098c, - 0x9989, 0x522c, - 0x998a, 0x162a, - 0x998b, 0x04bd, - 0x998c, 0x522d, - 0x998d, 0x162b, - 0x998e, 0x522e, - 0x998f, 0x0a3c, - 0x9990, 0x162c, - 0x9992, 0x0a9f, - 0x9993, 0x162e, - 0x9996, 0x0d6e, - 0x9997, 0x126e, - 0x9998, 0x12f9, - 0x9999, 0x0f50, - 0x999a, 0x522f, - 0x99a5, 0x1b2b, - 0x99a6, 0x523a, - 0x99a8, 0x13de, - 0x99a9, 0x523c, - 0x99ac, 0x206d, - 0x99ad, 0x2242, - 0x99ae, 0x1f02, - 0x99af, 0x523f, - 0x99b1, 0x2183, - 0x99b2, 0x5241, - 0x99b3, 0x1e85, - 0x99b4, 0x21e9, - 0x99b5, 0x5242, - 0x99c1, 0x1e57, - 0x99c2, 0x524e, - 0x99d0, 0x22a5, - 0x99d1, 0x2407, - 0x99d2, 0x1fca, - 0x99d3, 0x525c, - 0x99d4, 0x2402, - 0x99d5, 0x1f82, - 0x99d6, 0x525d, - 0x99d8, 0x2408, - 0x99d9, 0x2404, - 0x99da, 0x525f, - 0x99db, 0x2131, - 0x99dc, 0x5260, - 0x99dd, 0x2184, - 0x99de, 0x5261, - 0x99df, 0x2403, - 0x99e0, 0x5262, - 0x99e1, 0x206e, - 0x99e2, 0x240b, - 0x99e3, 0x5263, - 0x99ed, 0x1f3f, - 0x99ee, 0x526d, - 0x99f1, 0x2067, - 0x99f2, 0x5270, - 0x99ff, 0x1fd7, - 0x9a00, 0x527d, - 0x9a01, 0x1e83, - 0x9a02, 0x527e, - 0x9a05, 0x240f, - 0x9a06, 0x5281, - 0x9a0d, 0x240e, - 0x9a0e, 0x20c7, - 0x9a0f, 0x240d, - 0x9a10, 0x5288, - 0x9a16, 0x2412, - 0x9a17, 0x528e, - 0x9a19, 0x20b7, - 0x9a1a, 0x5290, - 0x9a2b, 0x23f0, - 0x9a2c, 0x52a1, - 0x9a2d, 0x2411, - 0x9a2e, 0x2414, - 0x9a2f, 0x52a2, - 0x9a30, 0x2170, - 0x9a31, 0x52a3, - 0x9a36, 0x2405, - 0x9a37, 0x210c, - 0x9a38, 0x2415, - 0x9a39, 0x52a8, - 0x9a3e, 0x2066, - 0x9a3f, 0x52ad, - 0x9a40, 0x2352, - 0x9a41, 0x2413, - 0x9a42, 0x2410, - 0x9a43, 0x2416, - 0x9a45, 0x20f1, - 0x9a46, 0x52ae, - 0x9a4a, 0x240a, - 0x9a4b, 0x52b2, - 0x9a4d, 0x2409, - 0x9a4e, 0x52b4, - 0x9a4f, 0x2418, - 0x9a50, 0x52b5, - 0x9a55, 0x1fa7, - 0x9a56, 0x52ba, - 0x9a57, 0x21fc, - 0x9a58, 0x52bb, - 0x9a5a, 0x1fc1, - 0x9a5b, 0x2406, - 0x9a5c, 0x52bd, - 0x9a5f, 0x229c, - 0x9a60, 0x52c0, - 0x9a62, 0x204e, - 0x9a63, 0x52c2, - 0x9a64, 0x241a, - 0x9a65, 0x2419, - 0x9a66, 0x52c3, - 0x9a6a, 0x240c, - 0x9a6b, 0x52c7, - 0x9a6c, 0x0a94, - 0x9a6d, 0x10e9, - 0x9a6e, 0x0e85, - 0x9a6f, 0x0fda, - 0x9a70, 0x0500, - 0x9a71, 0x0c7a, - 0x9a72, 0x52c8, - 0x9a73, 0x047c, - 0x9a74, 0x0a66, - 0x9a75, 0x17ba, - 0x9a76, 0x0d52, - 0x9a77, 0x17bb, - 0x9a79, 0x0903, - 0x9a7a, 0x17bd, - 0x9a7b, 0x1201, - 0x9a7c, 0x0e86, - 0x9a7d, 0x17bf, - 0x9a7e, 0x0850, - 0x9a7f, 0x17be, - 0x9a80, 0x17c0, - 0x9a82, 0x0a95, - 0x9a83, 0x52c9, - 0x9a84, 0x088f, - 0x9a85, 0x17c2, - 0x9a86, 0x0a8d, - 0x9a87, 0x075e, - 0x9a88, 0x17c3, - 0x9a89, 0x52ca, - 0x9a8a, 0x17c4, - 0x9a8b, 0x04f7, - 0x9a8c, 0x1012, - 0x9a8d, 0x52cb, - 0x9a8f, 0x0932, - 0x9a90, 0x17c5, - 0x9a91, 0x0c0e, - 0x9a92, 0x17c6, - 0x9a94, 0x52cd, - 0x9a96, 0x17c8, - 0x9a97, 0x0bcc, - 0x9a98, 0x17c9, - 0x9a99, 0x52cf, - 0x9a9a, 0x0ce0, - 0x9a9b, 0x17ca, - 0x9a9e, 0x1735, - 0x9a9f, 0x17cd, - 0x9aa1, 0x0a89, - 0x9aa2, 0x17cf, - 0x9aa4, 0x11e7, - 0x9aa5, 0x17d1, - 0x9aa6, 0x52d0, - 0x9aa7, 0x17d2, - 0x9aa8, 0x0720, - 0x9aa9, 0x52d1, - 0x9aaf, 0x1e29, - 0x9ab0, 0x1dd3, - 0x9ab1, 0x1dd2, - 0x9ab2, 0x52d7, - 0x9ab6, 0x1dd6, - 0x9ab7, 0x1dd4, - 0x9ab8, 0x0758, - 0x9ab9, 0x52db, - 0x9aba, 0x1dd7, - 0x9abb, 0x52dc, - 0x9abc, 0x1dd8, - 0x9abd, 0x52dd, - 0x9ac0, 0x1dda, - 0x9ac1, 0x1dd9, - 0x9ac2, 0x1ddc, - 0x9ac3, 0x52e0, - 0x9ac5, 0x1ddb, - 0x9ac6, 0x52e2, - 0x9acb, 0x1ddd, - 0x9acd, 0x52e7, - 0x9acf, 0x2661, - 0x9ad0, 0x52e9, - 0x9ad1, 0x1ddf, - 0x9ad2, 0x26a4, - 0x9ad3, 0x0ddd, - 0x9ad4, 0x2174, - 0x9ad5, 0x2663, - 0x9ad6, 0x2662, - 0x9ad7, 0x52ea, - 0x9ad8, 0x06da, - 0x9ad9, 0x52eb, - 0x9adf, 0x1dec, - 0x9ae0, 0x52f1, - 0x9ae1, 0x1ded, - 0x9ae2, 0x52f2, - 0x9ae6, 0x1dee, - 0x9ae7, 0x52f6, - 0x9aeb, 0x1df0, - 0x9aec, 0x52fa, - 0x9aed, 0x1df2, - 0x9aee, 0x2675, - 0x9aef, 0x1def, - 0x9af0, 0x52fb, - 0x9af9, 0x1df3, - 0x9afa, 0x5304, - 0x9afb, 0x1df1, - 0x9afc, 0x5305, - 0x9b00, 0x5309, - 0x9b03, 0x1234, - 0x9b04, 0x530c, - 0x9b06, 0x214c, - 0x9b07, 0x530e, - 0x9b08, 0x1df4, - 0x9b09, 0x530f, - 0x9b0d, 0x267a, - 0x9b0e, 0x5313, - 0x9b0f, 0x1df5, - 0x9b10, 0x5314, - 0x9b13, 0x1df6, - 0x9b14, 0x5317, - 0x9b1a, 0x26a0, - 0x9b1b, 0x531d, - 0x9b1f, 0x1df7, - 0x9b20, 0x5321, - 0x9b22, 0x2668, - 0x9b23, 0x1df8, - 0x9b24, 0x5323, - 0x9b25, 0x1ed0, - 0x9b26, 0x5324, - 0x9b27, 0x2096, - 0x9b28, 0x5325, - 0x9b29, 0x23cc, - 0x9b2a, 0x5326, - 0x9b2e, 0x23c8, - 0x9b2f, 0x139b, - 0x9b30, 0x532a, - 0x9b31, 0x223e, - 0x9b32, 0x1260, - 0x9b33, 0x532b, - 0x9b3b, 0x1773, - 0x9b3c, 0x0746, - 0x9b3d, 0x5333, - 0x9b41, 0x098a, - 0x9b42, 0x07ff, - 0x9b43, 0x1de1, - 0x9b44, 0x0be6, - 0x9b45, 0x1de0, - 0x9b46, 0x5337, - 0x9b47, 0x1de2, - 0x9b48, 0x1de4, - 0x9b49, 0x1de3, - 0x9b4a, 0x5338, - 0x9b4d, 0x1de5, - 0x9b4e, 0x2665, - 0x9b4f, 0x0ec9, - 0x9b50, 0x533b, - 0x9b51, 0x1de6, - 0x9b52, 0x533c, - 0x9b54, 0x0b0a, - 0x9b55, 0x533e, - 0x9b58, 0x2664, - 0x9b59, 0x5341, - 0x9b5a, 0x2239, - 0x9b5b, 0x5342, - 0x9b6f, 0x204a, - 0x9b70, 0x5356, - 0x9b74, 0x261f, - 0x9b75, 0x535a, - 0x9b77, 0x261e, - 0x9b78, 0x535c, - 0x9b81, 0x2620, - 0x9b82, 0x5365, - 0x9b83, 0x2621, - 0x9b84, 0x5366, - 0x9b8e, 0x2622, - 0x9b8f, 0x5370, - 0x9b90, 0x2627, - 0x9b91, 0x1e39, - 0x9b92, 0x2625, - 0x9b93, 0x5371, - 0x9b9a, 0x2629, - 0x9b9b, 0x5378, - 0x9b9d, 0x262e, - 0x9b9e, 0x262b, - 0x9b9f, 0x537a, - 0x9baa, 0x262a, - 0x9bab, 0x262d, - 0x9bac, 0x5385, - 0x9bad, 0x2628, - 0x9bae, 0x21b9, - 0x9baf, 0x5386, - 0x9bc0, 0x2636, - 0x9bc1, 0x2630, - 0x9bc2, 0x5397, - 0x9bc7, 0x2638, - 0x9bc8, 0x539c, - 0x9bc9, 0x200d, - 0x9bca, 0x2637, - 0x9bcb, 0x539d, - 0x9bd4, 0x2645, - 0x9bd5, 0x53a6, - 0x9bd6, 0x263a, - 0x9bd7, 0x53a7, - 0x9bdb, 0x2643, - 0x9bdc, 0x53ab, - 0x9bdd, 0x2640, - 0x9bde, 0x53ac, - 0x9be1, 0x263d, - 0x9be2, 0x2641, - 0x9be3, 0x53af, - 0x9be4, 0x263e, - 0x9be5, 0x53b0, - 0x9be7, 0x263f, - 0x9be8, 0x1fc0, - 0x9be9, 0x53b2, - 0x9bea, 0x263b, - 0x9bec, 0x53b3, - 0x9bf0, 0x2642, - 0x9bf1, 0x53b7, - 0x9bf4, 0x2644, - 0x9bf5, 0x53ba, - 0x9bfd, 0x2639, - 0x9bfe, 0x53c2, - 0x9bff, 0x264c, - 0x9c00, 0x53c3, - 0x9c08, 0x2647, - 0x9c09, 0x264b, - 0x9c0a, 0x53cb, - 0x9c0d, 0x2649, - 0x9c0e, 0x53ce, - 0x9c10, 0x2648, - 0x9c11, 0x53d0, - 0x9c12, 0x264a, - 0x9c13, 0x2108, - 0x9c14, 0x53d1, - 0x9c20, 0x264d, - 0x9c21, 0x53dd, - 0x9c23, 0x2634, - 0x9c24, 0x53df, - 0x9c25, 0x2651, - 0x9c26, 0x53e0, - 0x9c28, 0x2650, - 0x9c29, 0x2652, - 0x9c2a, 0x53e2, - 0x9c2d, 0x264f, - 0x9c2e, 0x53e5, - 0x9c31, 0x2632, - 0x9c32, 0x264e, - 0x9c33, 0x2653, - 0x9c34, 0x53e8, - 0x9c35, 0x2657, - 0x9c36, 0x53e9, - 0x9c37, 0x2635, - 0x9c38, 0x53ea, - 0x9c39, 0x2633, - 0x9c3a, 0x53eb, - 0x9c3b, 0x2656, - 0x9c3c, 0x53ec, - 0x9c3e, 0x2654, - 0x9c3f, 0x53ee, - 0x9c45, 0x2658, - 0x9c46, 0x53f4, - 0x9c48, 0x2655, - 0x9c49, 0x1e4d, - 0x9c4a, 0x53f6, - 0x9c52, 0x265b, - 0x9c53, 0x53fe, - 0x9c54, 0x265a, - 0x9c55, 0x53ff, - 0x9c56, 0x2659, - 0x9c57, 0x202e, - 0x9c58, 0x262f, - 0x9c59, 0x5400, - 0x9c5d, 0x2646, - 0x9c5e, 0x5404, - 0x9c5f, 0x2626, - 0x9c60, 0x5405, - 0x9c67, 0x265c, - 0x9c68, 0x540c, - 0x9c6d, 0x262c, - 0x9c6e, 0x5411, - 0x9c78, 0x2623, - 0x9c79, 0x541b, - 0x9c7a, 0x2631, - 0x9c7b, 0x541c, - 0x9c7c, 0x10c8, - 0x9c7d, 0x541d, - 0x9c7f, 0x1d89, - 0x9c80, 0x541f, - 0x9c81, 0x0a5a, - 0x9c82, 0x1d8a, - 0x9c83, 0x5420, - 0x9c85, 0x1d8b, - 0x9c89, 0x5422, - 0x9c8b, 0x1d90, - 0x9c8c, 0x5424, - 0x9c8d, 0x0414, - 0x9c8e, 0x1d91, - 0x9c8f, 0x5425, - 0x9c90, 0x1d92, - 0x9c93, 0x5426, - 0x9c94, 0x1d95, - 0x9c96, 0x5427, - 0x9c9a, 0x1d97, - 0x9c9c, 0x0f37, - 0x9c9d, 0x542b, - 0x9c9e, 0x1d99, - 0x9ca4, 0x09db, - 0x9ca5, 0x1d9f, - 0x9caa, 0x542c, - 0x9cab, 0x1da4, - 0x9cac, 0x542d, - 0x9cad, 0x1da5, - 0x9caf, 0x542e, - 0x9cb0, 0x1da7, - 0x9cb8, 0x08d7, - 0x9cb9, 0x542f, - 0x9cba, 0x1daf, - 0x9cbe, 0x5430, - 0x9cc3, 0x0cd5, - 0x9cc4, 0x1db3, - 0x9cc8, 0x5435, - 0x9cca, 0x1db7, - 0x9cd1, 0x5437, - 0x9cd3, 0x1dbe, - 0x9cd6, 0x0457, - 0x9cd7, 0x1dc1, - 0x9cda, 0x5439, - 0x9cdc, 0x1dc4, - 0x9cde, 0x0a24, - 0x9cdf, 0x1dc6, - 0x9ce0, 0x543b, - 0x9ce2, 0x1dc7, - 0x9ce3, 0x543d, - 0x9ce5, 0x209c, - 0x9ce6, 0x543f, - 0x9ce9, 0x2580, - 0x9cea, 0x5442, - 0x9cec, 0x22dc, - 0x9ced, 0x5444, - 0x9cf3, 0x1f05, - 0x9cf4, 0x208b, - 0x9cf5, 0x544a, - 0x9cf6, 0x2581, - 0x9cf7, 0x544b, - 0x9d00, 0x5454, - 0x9d06, 0x2583, - 0x9d07, 0x2582, - 0x9d08, 0x545a, - 0x9d09, 0x21ee, - 0x9d0a, 0x545b, - 0x9d15, 0x2182, - 0x9d16, 0x5466, - 0x9d1b, 0x2243, - 0x9d1c, 0x546b, - 0x9d1d, 0x2587, - 0x9d1e, 0x546c, - 0x9d1f, 0x2588, - 0x9d20, 0x546d, - 0x9d23, 0x2584, - 0x9d24, 0x5470, - 0x9d26, 0x21fd, - 0x9d27, 0x5472, - 0x9d28, 0x21ef, - 0x9d29, 0x5473, - 0x9d2f, 0x258a, - 0x9d30, 0x258c, - 0x9d31, 0x5479, - 0x9d3b, 0x1f47, - 0x9d3c, 0x5483, - 0x9d3f, 0x1f1d, - 0x9d40, 0x5486, - 0x9d42, 0x258d, - 0x9d43, 0x5488, - 0x9d51, 0x1fd0, - 0x9d52, 0x2592, - 0x9d53, 0x258f, - 0x9d54, 0x5496, - 0x9d5c, 0x2594, - 0x9d5d, 0x1ee0, - 0x9d5e, 0x549e, - 0x9d60, 0x2591, - 0x9d61, 0x2595, - 0x9d62, 0x54a0, - 0x9d6a, 0x2597, - 0x9d6b, 0x54a8, - 0x9d6c, 0x20b6, - 0x9d6d, 0x54a9, - 0x9d6f, 0x2598, - 0x9d70, 0x54ab, - 0x9d72, 0x20f6, - 0x9d73, 0x54ad, - 0x9d87, 0x2585, - 0x9d88, 0x54c1, - 0x9d89, 0x2599, - 0x9d8a, 0x54c2, - 0x9d93, 0x2596, - 0x9d94, 0x54cb, - 0x9d98, 0x259a, - 0x9d99, 0x54cf, - 0x9d9a, 0x259b, - 0x9d9b, 0x54d0, - 0x9da5, 0x259d, - 0x9da6, 0x54da, - 0x9da9, 0x259e, - 0x9daa, 0x54dd, - 0x9daf, 0x234c, - 0x9db0, 0x54e2, - 0x9db4, 0x1f44, - 0x9db5, 0x54e6, - 0x9dbb, 0x2660, - 0x9dbc, 0x25a0, - 0x9dbd, 0x54ec, - 0x9dc0, 0x259c, - 0x9dc1, 0x54ef, - 0x9dc2, 0x259f, - 0x9dc3, 0x54f0, - 0x9dc4, 0x1f6c, - 0x9dc5, 0x54f1, - 0x9dd3, 0x25a2, - 0x9dd4, 0x54ff, - 0x9dd7, 0x20ae, - 0x9dd8, 0x5502, - 0x9dd9, 0x258b, - 0x9dda, 0x25a3, - 0x9ddb, 0x5503, - 0x9de5, 0x2589, - 0x9de6, 0x25a5, - 0x9de7, 0x550d, - 0x9def, 0x25a4, - 0x9df0, 0x5515, - 0x9df2, 0x25a6, - 0x9df3, 0x2593, - 0x9df4, 0x5517, - 0x9df8, 0x25a7, - 0x9df9, 0x2222, - 0x9dfa, 0x25a9, - 0x9dfb, 0x551b, - 0x9e00, 0x5520, - 0x9e0c, 0x25a8, - 0x9e0d, 0x552c, - 0x9e15, 0x2586, - 0x9e16, 0x5534, - 0x9e1a, 0x25a1, - 0x9e1b, 0x25aa, - 0x9e1c, 0x5538, - 0x9e1d, 0x2590, - 0x9e1e, 0x258e, - 0x9e1f, 0x0b54, - 0x9e20, 0x1b35, - 0x9e21, 0x0819, - 0x9e22, 0x1b36, - 0x9e23, 0x0afe, - 0x9e24, 0x5539, - 0x9e25, 0x0b79, - 0x9e26, 0x0fe4, - 0x9e27, 0x553a, - 0x9e28, 0x1b37, - 0x9e2d, 0x0fe5, - 0x9e2e, 0x553b, - 0x9e2f, 0x1015, - 0x9e30, 0x553c, - 0x9e31, 0x1b3d, - 0x9e32, 0x1b3c, - 0x9e33, 0x10ea, - 0x9e34, 0x553d, - 0x9e35, 0x0e83, - 0x9e36, 0x1b3e, - 0x9e37, 0x1b40, - 0x9e38, 0x1b3f, - 0x9e39, 0x1b41, - 0x9e3b, 0x553e, - 0x9e3d, 0x06e6, - 0x9e3e, 0x1b43, - 0x9e3f, 0x079f, - 0x9e40, 0x5540, - 0x9e41, 0x1b44, - 0x9e43, 0x0918, - 0x9e44, 0x1b46, - 0x9e45, 0x062b, - 0x9e46, 0x1b47, - 0x9e4a, 0x0c90, - 0x9e4b, 0x1b4b, - 0x9e4d, 0x5541, - 0x9e4e, 0x1b4d, - 0x9e4f, 0x0bb5, - 0x9e50, 0x5542, - 0x9e51, 0x1b4e, - 0x9e52, 0x5543, - 0x9e55, 0x1b4f, - 0x9e56, 0x5546, - 0x9e57, 0x1b50, - 0x9e58, 0x1dd5, - 0x9e59, 0x5547, - 0x9e5a, 0x1b51, - 0x9e5d, 0x5548, - 0x9e5e, 0x1b54, - 0x9e5f, 0x5549, - 0x9e63, 0x1b55, - 0x9e64, 0x078e, - 0x9e65, 0x554d, - 0x9e66, 0x1b56, - 0x9e6d, 0x1b5e, - 0x9e6e, 0x554e, - 0x9e70, 0x108a, - 0x9e71, 0x1b5d, - 0x9e72, 0x5550, - 0x9e73, 0x1b5f, - 0x9e74, 0x5551, - 0x9e75, 0x2688, - 0x9e76, 0x5552, - 0x9e79, 0x269e, - 0x9e7a, 0x25fb, - 0x9e7b, 0x5555, - 0x9e7c, 0x1f8c, - 0x9e7d, 0x21f4, - 0x9e7e, 0x1d16, - 0x9e7f, 0x0a60, - 0x9e80, 0x5556, - 0x9e82, 0x1dfc, - 0x9e83, 0x5558, - 0x9e87, 0x1dfd, - 0x9e89, 0x555c, - 0x9e8b, 0x1dff, - 0x9e8c, 0x555e, - 0x9e92, 0x1e00, - 0x9e93, 0x0a5b, - 0x9e94, 0x5564, - 0x9e97, 0x200f, - 0x9e98, 0x5567, - 0x9e9d, 0x1e02, - 0x9e9e, 0x556c, - 0x9e9f, 0x1e03, - 0x9ea0, 0x556d, - 0x9ea5, 0x2071, - 0x9ea6, 0x0a9a, - 0x9ea7, 0x5572, - 0x9ea9, 0x25f7, - 0x9eaa, 0x5574, - 0x9eaf, 0x2696, - 0x9eb0, 0x5579, - 0x9eb4, 0x1cee, - 0x9eb5, 0x268f, - 0x9eb6, 0x557d, - 0x9eb8, 0x1ced, - 0x9eb9, 0x557f, - 0x9ebb, 0x0a90, - 0x9ebc, 0x5581, - 0x9ebd, 0x1df9, - 0x9ebf, 0x5582, - 0x9ec4, 0x07db, - 0x9ec5, 0x5587, - 0x9ec9, 0x12f8, - 0x9eca, 0x558b, - 0x9ecc, 0x22da, - 0x9ecd, 0x0d89, - 0x9ece, 0x09d3, - 0x9ecf, 0x1b2a, - 0x9ed0, 0x558d, - 0x9ed1, 0x0791, - 0x9ed2, 0x558e, - 0x9ed4, 0x0c2a, - 0x9ed5, 0x5590, - 0x9ed8, 0x0b0f, - 0x9ed9, 0x5593, - 0x9edb, 0x1e04, - 0x9ede, 0x1ec1, - 0x9edf, 0x1e08, - 0x9ee0, 0x1e07, - 0x9ee1, 0x5595, - 0x9ee2, 0x1e09, - 0x9ee3, 0x5596, - 0x9ee5, 0x1e0c, - 0x9ee6, 0x5598, - 0x9ee7, 0x1e0b, - 0x9ee8, 0x1eb3, - 0x9ee9, 0x1e0a, - 0x9eea, 0x1e0d, - 0x9eeb, 0x5599, - 0x9eef, 0x1e0e, - 0x9ef0, 0x559d, - 0x9ef2, 0x266a, - 0x9ef3, 0x559f, - 0x9ef4, 0x268a, - 0x9ef5, 0x55a0, - 0x9ef7, 0x2669, - 0x9ef8, 0x55a2, - 0x9ef9, 0x1a55, - 0x9efa, 0x55a3, - 0x9efb, 0x1a56, - 0x9efd, 0x2618, - 0x9efe, 0x1d76, - 0x9eff, 0x2619, - 0x9f00, 0x55a4, - 0x9f09, 0x261a, - 0x9f0a, 0x55ad, - 0x9f0b, 0x1d77, - 0x9f0c, 0x55ae, - 0x9f0d, 0x1d78, - 0x9f0e, 0x05e5, - 0x9f0f, 0x55af, - 0x9f10, 0x1274, - 0x9f11, 0x55b0, - 0x9f13, 0x071d, - 0x9f14, 0x55b2, - 0x9f15, 0x2673, - 0x9f16, 0x55b3, - 0x9f17, 0x1271, - 0x9f18, 0x55b4, - 0x9f19, 0x13df, - 0x9f1a, 0x55b5, - 0x9f20, 0x0d8a, - 0x9f21, 0x55bb, - 0x9f22, 0x1e0f, - 0x9f23, 0x55bc, - 0x9f2c, 0x1e10, - 0x9f2d, 0x55c5, - 0x9f2f, 0x1e11, - 0x9f30, 0x55c7, - 0x9f37, 0x1e13, - 0x9f38, 0x55ce, - 0x9f39, 0x1e12, - 0x9f3a, 0x55cf, - 0x9f3b, 0x0430, - 0x9f3c, 0x55d0, - 0x9f3d, 0x1e14, - 0x9f3f, 0x55d1, - 0x9f44, 0x1e16, - 0x9f45, 0x55d6, - 0x9f4a, 0x20c6, - 0x9f4b, 0x226b, - 0x9f4c, 0x55db, - 0x9f4f, 0x24d3, - 0x9f50, 0x0c0a, - 0x9f51, 0x19c2, - 0x9f52, 0x1e86, - 0x9f53, 0x55de, - 0x9f54, 0x260f, - 0x9f55, 0x55df, - 0x9f59, 0x2611, - 0x9f5a, 0x55e3, - 0x9f5c, 0x2613, - 0x9f5d, 0x55e5, - 0x9f5f, 0x2610, - 0x9f60, 0x2612, - 0x9f61, 0x2030, - 0x9f62, 0x55e7, - 0x9f63, 0x2671, - 0x9f64, 0x55e8, - 0x9f66, 0x2614, - 0x9f67, 0x55ea, - 0x9f6a, 0x2616, - 0x9f6b, 0x55ed, - 0x9f6c, 0x2615, - 0x9f6d, 0x55ee, - 0x9f72, 0x20f2, - 0x9f73, 0x55f3, - 0x9f77, 0x2617, - 0x9f78, 0x55f7, - 0x9f7f, 0x0502, - 0x9f80, 0x1d6d, - 0x9f81, 0x55fe, - 0x9f83, 0x1d6e, - 0x9f84, 0x0a2d, - 0x9f85, 0x1d6f, - 0x9f8b, 0x0c7e, - 0x9f8c, 0x1d75, - 0x9f8d, 0x2037, - 0x9f8e, 0x5600, - 0x9f90, 0x20b3, - 0x9f91, 0x5602, - 0x9f94, 0x1f22, - 0x9f95, 0x24ed, - 0x9f96, 0x5605, - 0x9f99, 0x0a43, - 0x9f9a, 0x0701, - 0x9f9b, 0x1a54, - 0x9f9c, 0x1f34, - 0x9f9d, 0x5608, - 0x9f9f, 0x0743, - 0x9fa0, 0x12f3, - 0x9fa1, 0x560a, - 0xe7e7, 0x274b, - 0xe815, 0x561f, - 0xf92c, 0x560f, - 0xfa0d, 0x5610, - 0xfa11, 0x5613, - 0xfa13, 0x5614, - 0xfa18, 0x5616, - 0xfa1f, 0x5617, - 0xfa23, 0x561a, - 0xfa27, 0x561c, - 0xfe30, 0x271d, - 0xfe49, 0x272b, - 0xfe54, 0x2735, - 0xfe59, 0x2739, - 0xfe68, 0x2747, - 0xff01, 0x0106, - 0xff04, 0x00a6, - 0xff05, 0x010a, - 0xff5e, 0x006a, - 0xffe0, 0x00a8, - 0xffe2, 0x271e, - 0xffe3, 0x0163, - 0xffe4, 0x271f, - 0xffe5, 0x0109, - 0x2014, 0x0256, - 0x2026, 0x0257, - 0x2225, 0x1e1c, - 0x3001, 0x023f, - 0x3002, 0x023e, - 0x3008, 0x0248, - 0x3010, 0x0252, - 0x3013, 0x1e1a, - 0x3014, 0x0246, - 0x3016, 0x0250, - 0xff01, 0x0242, - 0xff08, 0x0244, - 0xff0c, 0x023d, - 0xff0e, 0x1e1b, - 0xff1a, 0x0240, - 0xff1d, 0x1e1c, - 0xff1f, 0x0243, - 0xff3b, 0x1e1d, - 0xff3d, 0x1e1e, - 0xff3f, 0x0258, - 0xff5b, 0x0254, - 0xff5d, 0x0255, - 0xff5e, 0x1e18, - 0xffe3, 0x1e1f, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 gb12UniGBUCS2VEnc16 = { - 1, - { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - gb12UniGBUCS2VMap2, 13485 -}; - -static Gushort gb12AdobeGB12VMap2[178] = { - 0x0000, 0x0000, - 0x0000, 0x0000, - 0x0100, 0x0100, - 0x0200, 0x0200, - 0x0300, 0x0300, - 0x0400, 0x0400, - 0x0500, 0x0500, - 0x0600, 0x0600, - 0x0700, 0x0700, - 0x0800, 0x0800, - 0x0900, 0x0900, - 0x0a00, 0x0a00, - 0x0b00, 0x0b00, - 0x0c00, 0x0c00, - 0x0d00, 0x0d00, - 0x0e00, 0x0e00, - 0x0f00, 0x0f00, - 0x1000, 0x1000, - 0x1100, 0x1100, - 0x1200, 0x1200, - 0x1300, 0x1300, - 0x1400, 0x1400, - 0x1500, 0x1500, - 0x1600, 0x1600, - 0x1700, 0x1700, - 0x1800, 0x1800, - 0x1900, 0x1900, - 0x1a00, 0x1a00, - 0x1b00, 0x1b00, - 0x1c00, 0x1c00, - 0x1d00, 0x1d00, - 0x1e00, 0x1e00, - 0x1f00, 0x1f00, - 0x2000, 0x2000, - 0x2100, 0x2100, - 0x2200, 0x2200, - 0x2300, 0x2300, - 0x2400, 0x2400, - 0x2500, 0x2500, - 0x2600, 0x2600, - 0x2700, 0x2700, - 0x2800, 0x2800, - 0x2900, 0x2900, - 0x2a00, 0x2a00, - 0x2b00, 0x2b00, - 0x2c00, 0x2c00, - 0x2d00, 0x2d00, - 0x2e00, 0x2e00, - 0x2f00, 0x2f00, - 0x3000, 0x3000, - 0x3100, 0x3100, - 0x3200, 0x3200, - 0x3300, 0x3300, - 0x3400, 0x3400, - 0x3500, 0x3500, - 0x3600, 0x3600, - 0x3700, 0x3700, - 0x3800, 0x3800, - 0x3900, 0x3900, - 0x3a00, 0x3a00, - 0x3b00, 0x3b00, - 0x3c00, 0x3c00, - 0x3d00, 0x3d00, - 0x3e00, 0x3e00, - 0x3f00, 0x3f00, - 0x4000, 0x4000, - 0x4100, 0x4100, - 0x4200, 0x4200, - 0x4300, 0x4300, - 0x4400, 0x4400, - 0x4500, 0x4500, - 0x4600, 0x4600, - 0x4700, 0x4700, - 0x4800, 0x4800, - 0x4900, 0x4900, - 0x4a00, 0x4a00, - 0x4b00, 0x4b00, - 0x4c00, 0x4c00, - 0x4d00, 0x4d00, - 0x4e00, 0x4e00, - 0x4f00, 0x4f00, - 0x5000, 0x5000, - 0x5100, 0x5100, - 0x5200, 0x5200, - 0x5300, 0x5300, - 0x5400, 0x5400, - 0x5500, 0x5500, - 0x5600, 0x5600, - 0xffff, 0x0000 -}; - -static GfxFontEncoding16 gb12AdobeGB12VEnc16 = { - 1, - { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, - { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }, - gb12AdobeGB12VMap2, 89 -}; - -static struct { - char *name; - GfxFontEncoding16 *enc; -} gfxGB12Tab[] = { - { "Adobe-GB1-0", &gb12AdobeGB10Enc16 }, - { "Adobe-GB1-1", &gb12AdobeGB11Enc16 }, - { "Adobe-GB1-2", &gb12AdobeGB12Enc16 }, - { "GB-EUC-H", &gb12GBEUCHEnc16 }, - { "GB-EUC-V", &gb12GBEUCVEnc16 }, - { "GB-H", &gb12GBHEnc16 }, - { "GB-V", &gb12GBVEnc16 }, - { "GBK-EUC-H", &gb12GBKEUCHEnc16 }, - { "GBK-EUC-V", &gb12GBKEUCVEnc16 }, - { "GBT-EUC-H", &gb12GBTEUCHEnc16 }, - { "GBT-EUC-V", &gb12GBTEUCVEnc16 }, - { "GBT-H", &gb12GBTHEnc16 }, - { "GBT-V", &gb12GBTVEnc16 }, - { "GBTpc-EUC-H", &gb12GBTpcEUCHEnc16 }, - { "GBTpc-EUC-V", &gb12GBTpcEUCVEnc16 }, - { "GBpc-EUC-H", &gb12GBpcEUCHEnc16 }, - { "GBpc-EUC-V", &gb12GBpcEUCVEnc16 }, - { "UniGB-UCS2-H", &gb12UniGBUCS2HEnc16 }, - { "UniGB-UCS2-V", &gb12UniGBUCS2VEnc16 }, - { "Identity-H", &gb12AdobeGB12Enc16 }, - { "Identity-V", &gb12AdobeGB12VEnc16 }, - { NULL, NULL } -}; - -#endif diff --git a/pdf/xpdf/Gfx.cc b/pdf/xpdf/Gfx.cc index 0096d4b3..0b00f911 100644 --- a/pdf/xpdf/Gfx.cc +++ b/pdf/xpdf/Gfx.cc @@ -2,7 +2,7 @@ // // Gfx.cc // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -10,11 +10,13 @@ #pragma implementation #endif +#include #include #include #include #include #include "gmem.h" +#include "CharTypes.h" #include "Object.h" #include "Array.h" #include "Dict.h" @@ -24,10 +26,31 @@ #include "GfxFont.h" #include "GfxState.h" #include "OutputDev.h" -#include "Params.h" +#include "Page.h" #include "Error.h" #include "Gfx.h" +// the MSVC math.h doesn't define this +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + +//------------------------------------------------------------------------ +// constants +//------------------------------------------------------------------------ + +// Max number of splits along the t axis for an axial shading fill. +#define axialMaxSplits 256 + +// Max delta allowed in any color component for an axial shading fill. +#define axialColorDelta (1 / 256.0) + +// Max number of splits along the t axis for a radial shading fill. +#define radialMaxSplits 256 + +// Max delta allowed in any color component for a radial shading fill. +#define radialColorDelta (1 / 256.0) + //------------------------------------------------------------------------ // Operator table //------------------------------------------------------------------------ @@ -189,15 +212,11 @@ Operator Gfx::opTab[] = { #define numOps (sizeof(opTab) / sizeof(Operator)) -//------------------------------------------------------------------------ - -GBool printCommands = gFalse; - //------------------------------------------------------------------------ // GfxResources //------------------------------------------------------------------------ -GfxResources::GfxResources(Dict *resDict, GfxResources *next) { +GfxResources::GfxResources(XRef *xref, Dict *resDict, GfxResources *nextA) { Object obj1; if (resDict) { @@ -206,7 +225,7 @@ GfxResources::GfxResources(Dict *resDict, GfxResources *next) { fonts = NULL; resDict->lookup("Font", &obj1); if (obj1.isDict()) { - fonts = new GfxFontDict(obj1.getDict()); + fonts = new GfxFontDict(xref, obj1.getDict()); } obj1.free(); @@ -219,6 +238,9 @@ GfxResources::GfxResources(Dict *resDict, GfxResources *next) { // get pattern dictionary resDict->lookup("Pattern", &patternDict); + // get shading dictionary + resDict->lookup("Shading", &shadingDict); + // get graphics state parameter dictionary resDict->lookup("ExtGState", &gStateDict); @@ -230,7 +252,7 @@ GfxResources::GfxResources(Dict *resDict, GfxResources *next) { gStateDict.initNull(); } - this->next = next; + next = nextA; } GfxResources::~GfxResources() { @@ -240,6 +262,7 @@ GfxResources::~GfxResources() { xObjDict.free(); colorSpaceDict.free(); patternDict.free(); + shadingDict.free(); gStateDict.free(); } @@ -318,6 +341,25 @@ GfxPattern *GfxResources::lookupPattern(char *name) { return NULL; } +GfxShading *GfxResources::lookupShading(char *name) { + GfxResources *resPtr; + GfxShading *shading; + Object obj; + + for (resPtr = this; resPtr; resPtr = resPtr->next) { + if (resPtr->shadingDict.isDict()) { + if (!resPtr->shadingDict.dictLookup(name, &obj)->isNull()) { + shading = GfxShading::parse(&obj); + obj.free(); + return shading; + } + obj.free(); + } + } + error(-1, "Unknown shading '%s'", name); + return NULL; +} + GBool GfxResources::lookupGState(char *name, Object *obj) { GfxResources *resPtr; @@ -337,18 +379,21 @@ GBool GfxResources::lookupGState(char *name, Object *obj) { // Gfx //------------------------------------------------------------------------ -Gfx::Gfx(OutputDev *out1, int pageNum, Dict *resDict, - double dpi, double x1, double y1, double x2, double y2, GBool crop, - double cropX1, double cropY1, double cropX2, double cropY2, - int rotate) { +Gfx::Gfx(XRef *xrefA, OutputDev *outA, int pageNum, Dict *resDict, double dpi, + PDFRectangle *box, GBool crop, PDFRectangle *cropBox, int rotate, + GBool printCommandsA) { int i; + xref = xrefA; + subPage = gFalse; + printCommands = printCommandsA; + // start the resource stack - res = new GfxResources(resDict, NULL); + res = new GfxResources(xref, resDict, NULL); // initialize - out = out1; - state = new GfxState(dpi, x1, y1, x2, y2, rotate, out->upsideDown()); + out = outA; + state = new GfxState(dpi, box, rotate, out->upsideDown()); fontChanged = gFalse; clip = clipNone; ignoreUndef = 0; @@ -361,31 +406,65 @@ Gfx::Gfx(OutputDev *out1, int pageNum, Dict *resDict, // set crop box if (crop) { - state->moveTo(cropX1, cropY1); - state->lineTo(cropX2, cropY1); - state->lineTo(cropX2, cropY2); - state->lineTo(cropX1, cropY2); + state->moveTo(cropBox->x1, cropBox->y1); + state->lineTo(cropBox->x2, cropBox->y1); + state->lineTo(cropBox->x2, cropBox->y2); + state->lineTo(cropBox->x1, cropBox->y2); state->closePath(); + state->clip(); out->clip(state); state->clearPath(); } } -Gfx::~Gfx() { - GfxResources *resPtr; +Gfx::Gfx(XRef *xrefA, OutputDev *outA, Dict *resDict, + PDFRectangle *box, GBool crop, PDFRectangle *cropBox) { + int i; + + xref = xrefA; + subPage = gTrue; + printCommands = gFalse; + + // start the resource stack + res = new GfxResources(xref, resDict, NULL); + // initialize + out = outA; + state = new GfxState(72, box, 0, gFalse); + fontChanged = gFalse; + clip = clipNone; + ignoreUndef = 0; + for (i = 0; i < 6; ++i) { + baseMatrix[i] = state->getCTM()[i]; + } + + // set crop box + if (crop) { + state->moveTo(cropBox->x1, cropBox->y1); + state->lineTo(cropBox->x2, cropBox->y1); + state->lineTo(cropBox->x2, cropBox->y2); + state->lineTo(cropBox->x1, cropBox->y2); + state->closePath(); + state->clip(); + out->clip(state); + state->clearPath(); + } +} + +Gfx::~Gfx() { while (state->hasSaves()) { state = state->restore(); out->restoreState(state); } - out->endPage(); + if (!subPage) { + out->endPage(); + } while (res) { - resPtr = res->getNext(); - delete res; - res = resPtr; + popResources(); } - if (state) + if (state) { delete state; + } } void Gfx::display(Object *obj, GBool topLevel) { @@ -406,7 +485,7 @@ void Gfx::display(Object *obj, GBool topLevel) { error(-1, "Weird page contents"); return; } - parser = new Parser(new Lexer(obj)); + parser = new Parser(xref, new Lexer(xref, obj)); go(topLevel); delete parser; parser = NULL; @@ -415,11 +494,11 @@ void Gfx::display(Object *obj, GBool topLevel) { void Gfx::go(GBool topLevel) { Object obj; Object args[maxArgs]; - int numCmds, numArgs; + int numArgs; int i; // scan a sequence of objects - numCmds = 0; + updateLevel = 0; numArgs = 0; parser->getObj(&obj); while (!obj.isEOF()) { @@ -433,6 +512,7 @@ void Gfx::go(GBool topLevel) { args[i].print(stdout); } printf("\n"); + fflush(stdout); } execOp(&obj, args, numArgs); obj.free(); @@ -441,9 +521,9 @@ void Gfx::go(GBool topLevel) { numArgs = 0; // periodically update display - if (++numCmds == 200) { + if (++updateLevel >= 20000) { out->dump(); - numCmds = 0; + updateLevel = 0; } // got an argument - save it @@ -457,6 +537,7 @@ void Gfx::go(GBool topLevel) { printf("throwing away arg: "); obj.print(stdout); printf("\n"); + fflush(stdout); } obj.free(); } @@ -476,20 +557,16 @@ void Gfx::go(GBool topLevel) { args[i].print(stdout); } printf("\n"); + fflush(stdout); } for (i = 0; i < numArgs; ++i) args[i].free(); } // update display - if (topLevel && numCmds > 0) { + if (topLevel && updateLevel > 0) { out->dump(); } - - // clean up - if (printCommands) { - fflush(stdout); - } } void Gfx::execOp(Object *cmd, Object args[], int numArgs) { @@ -583,12 +660,6 @@ void Gfx::opSave(Object args[], int numArgs) { void Gfx::opRestore(Object args[], int numArgs) { state = state->restore(); out->restoreState(state); - - // Some PDF producers (Macromedia FreeHand) generate a save (q) and - // restore (Q) inside a path sequence. The PDF spec seems to imply - // that this is illegal. Calling clearPath() here implements the - // behavior apparently expected by this software. - state->clearPath(); } void Gfx::opConcat(Object args[], int numArgs) { @@ -768,7 +839,7 @@ void Gfx::opSetFillColorSpace(Object args[], int numArgs) { if (colorSpace) { state->setFillColorSpace(colorSpace); } else { - error(getPos(), "Bad color space"); + error(getPos(), "Bad color space (fill)"); } for (i = 0; i < gfxColorMaxComps; ++i) { color.c[i] = 0; @@ -794,7 +865,7 @@ void Gfx::opSetStrokeColorSpace(Object args[], int numArgs) { if (colorSpace) { state->setStrokeColorSpace(colorSpace); } else { - error(getPos(), "Bad color space"); + error(getPos(), "Bad color space (stroke)"); } for (i = 0; i < gfxColorMaxComps; ++i) { color.c[i] = 0; @@ -970,7 +1041,7 @@ void Gfx::opRectangle(Object args[], int numArgs) { } void Gfx::opClosePath(Object args[], int numArgs) { - if (!state->isPath()) { + if (!state->isCurPt()) { error(getPos(), "No current point in closepath"); return; } @@ -1103,23 +1174,26 @@ void Gfx::opCloseEOFillStroke(Object args[], int numArgs) { doEndPath(); } -void Gfx::opShFill(Object args[], int numArgs) { -} - void Gfx::doPatternFill(GBool eoFill) { GfxPatternColorSpace *patCS; GfxPattern *pattern; GfxTilingPattern *tPat; GfxColorSpace *cs; - GfxPath *path; - GfxSubpath *subpath; double xMin, yMin, xMax, yMax, x, y, x1, y1; + double cxMin, cyMin, cxMax, cyMax; int xi0, yi0, xi1, yi1, xi, yi; double *ctm, *btm, *ptm; - double m[6], ictm[6], m1[6], im[6]; + double m[6], ictm[6], m1[6], imb[6]; double det; double xstep, ystep; - int i, j; + int i; + + // this is a bit of a kludge -- patterns can be really slow, so we + // skip them if we're only doing text extraction, since they almost + // certainly don't contain any text + if (!out->needNonText()) { + return; + } // get color space patCS = (GfxPatternColorSpace *)state->getFillColorSpace(); @@ -1160,42 +1234,14 @@ void Gfx::doPatternFill(GBool eoFill) { m[4] = m1[4] * ictm[0] + m1[5] * ictm[2] + ictm[4]; m[5] = m1[4] * ictm[1] + m1[5] * ictm[3] + ictm[5]; - // construct a (current space) -> (pattern space) transform matrix - det = 1 / (m[0] * m[3] - m[1] * m[2]); - im[0] = m[3] * det; - im[1] = -m[1] * det; - im[2] = -m[2] * det; - im[3] = m[0] * det; - im[4] = (m[2] * m[5] - m[3] * m[4]) * det; - im[5] = (m[1] * m[4] - m[0] * m[5]) * det; - - // compute bounding box of current path, in pattern space - xMin = xMax = yMin = yMax = 0; // make gcc happy - path = state->getPath(); - for (i = 0; i < path->getNumSubpaths(); ++i) { - subpath = path->getSubpath(i); - for (j = 0; j < subpath->getNumPoints(); ++j) { - x = subpath->getX(j); - y = subpath->getY(j); - x1 = x * im[0] + y * im[2] + im[4]; - y1 = x * im[1] + y * im[3] + im[5]; - if (i == 0 && j == 0) { - xMin = xMax = x1; - yMin = yMax = y1; - } else { - if (x1 < xMin) { - xMin = x1; - } else if (x1 > xMax) { - xMax = x1; - } - if (y1 < yMin) { - yMin = y1; - } else if (y1 > yMax) { - yMax = y1; - } - } - } - } + // construct a (base space) -> (pattern space) transform matrix + det = 1 / (m1[0] * m1[3] - m1[1] * m1[2]); + imb[0] = m1[3] * det; + imb[1] = -m1[1] * det; + imb[2] = -m1[2] * det; + imb[3] = m1[0] * det; + imb[4] = (m1[2] * m1[5] - m1[3] * m1[4]) * det; + imb[5] = (m1[1] * m1[4] - m1[0] * m1[5]) * det; // save current graphics state out->saveState(state); @@ -1211,6 +1257,7 @@ void Gfx::doPatternFill(GBool eoFill) { out->updateFillColor(state); // clip to current path + state->clip(); if (eoFill) { out->eoClip(state); } else { @@ -1218,6 +1265,47 @@ void Gfx::doPatternFill(GBool eoFill) { } state->clearPath(); + // transform clip region bbox to pattern space + state->getClipBBox(&cxMin, &cyMin, &cxMax, &cyMax); + xMin = xMax = cxMin * imb[0] + cyMin * imb[2] + imb[4]; + yMin = yMax = cxMin * imb[1] + cyMin * imb[3] + imb[5]; + x1 = cxMin * imb[0] + cyMax * imb[2] + imb[4]; + y1 = cxMin * imb[1] + cyMax * imb[3] + imb[5]; + if (x1 < xMin) { + xMin = x1; + } else if (x1 > xMax) { + xMax = x1; + } + if (y1 < yMin) { + yMin = y1; + } else if (y1 > yMax) { + yMax = y1; + } + x1 = cxMax * imb[0] + cyMin * imb[2] + imb[4]; + y1 = cxMax * imb[1] + cyMin * imb[3] + imb[5]; + if (x1 < xMin) { + xMin = x1; + } else if (x1 > xMax) { + xMax = x1; + } + if (y1 < yMin) { + yMin = y1; + } else if (y1 > yMax) { + yMax = y1; + } + x1 = cxMax * imb[0] + cyMax * imb[2] + imb[4]; + y1 = cxMax * imb[1] + cyMax * imb[3] + imb[5]; + if (x1 < xMin) { + xMin = x1; + } else if (x1 > xMax) { + xMax = x1; + } + if (y1 < yMin) { + yMin = y1; + } else if (y1 > yMax) { + yMax = y1; + } + // draw the pattern //~ this should treat negative steps differently -- start at right/top //~ edge instead of left/bottom (?) @@ -1246,12 +1334,485 @@ void Gfx::doPatternFill(GBool eoFill) { out->restoreState(state); } +void Gfx::opShFill(Object args[], int numArgs) { + GfxShading *shading; + double xMin, yMin, xMax, yMax; + + if (!(shading = res->lookupShading(args[0].getName()))) { + return; + } + + // save current graphics state + out->saveState(state); + state = state->save(); + + // clip to bbox + if (shading->getHasBBox()) { + shading->getBBox(&xMin, &yMin, &xMax, &yMax); + state->moveTo(xMin, yMin); + state->lineTo(xMax, yMin); + state->lineTo(xMax, yMax); + state->lineTo(xMin, yMax); + state->closePath(); + state->clip(); + out->clip(state); + state->clearPath(); + } + + // set the color space + state->setFillColorSpace(shading->getColorSpace()->copy()); + + // do shading type-specific operations + switch (shading->getType()) { + case 2: + doAxialShFill((GfxAxialShading *)shading); + break; + case 3: + doRadialShFill((GfxRadialShading *)shading); + break; + } + + // restore graphics state + state = state->restore(); + out->restoreState(state); + + delete shading; +} + +void Gfx::doAxialShFill(GfxAxialShading *shading) { + double xMin, yMin, xMax, yMax; + double x0, y0, x1, y1; + double dx, dy, mul; + double tMin, tMax, t, tx, ty; + double s[4], sMin, sMax, tmp; + double ux0, uy0, ux1, uy1, vx0, vy0, vx1, vy1; + double t0, t1, tt; + double ta[axialMaxSplits + 1]; + int next[axialMaxSplits + 1]; + GfxColor color0, color1; + int nComps; + int i, j, k, kk; + + // get the clip region bbox + state->getUserClipBBox(&xMin, &yMin, &xMax, &yMax); + + // compute min and max t values, based on the four corners of the + // clip region bbox + shading->getCoords(&x0, &y0, &x1, &y1); + dx = x1 - x0; + dy = y1 - y0; + mul = 1 / (dx * dx + dy * dy); + tMin = tMax = ((xMin - x0) * dx + (yMin - y0) * dy) * mul; + t = ((xMin - x0) * dx + (yMax - y0) * dy) * mul; + if (t < tMin) { + tMin = t; + } else if (t > tMax) { + tMax = t; + } + t = ((xMax - x0) * dx + (yMin - y0) * dy) * mul; + if (t < tMin) { + tMin = t; + } else if (t > tMax) { + tMax = t; + } + t = ((xMax - x0) * dx + (yMax - y0) * dy) * mul; + if (t < tMin) { + tMin = t; + } else if (t > tMax) { + tMax = t; + } + if (tMin < 0 && !shading->getExtend0()) { + tMin = 0; + } + if (tMax > 1 && !shading->getExtend1()) { + tMax = 1; + } + + // get the function domain + t0 = shading->getDomain0(); + t1 = shading->getDomain1(); + + // Traverse the t axis and do the shading. + // + // For each point (tx, ty) on the t axis, consider a line through + // that point perpendicular to the t axis: + // + // x(s) = tx + s * -dy --> s = (x - tx) / -dy + // y(s) = ty + s * dx --> s = (y - ty) / dx + // + // Then look at the intersection of this line with the bounding box + // (xMin, yMin, xMax, yMax). In the general case, there are four + // intersection points: + // + // s0 = (xMin - tx) / -dy + // s1 = (xMax - tx) / -dy + // s2 = (yMin - ty) / dx + // s3 = (yMax - ty) / dx + // + // and we want the middle two s values. + // + // In the case where dx = 0, take s0 and s1; in the case where dy = + // 0, take s2 and s3. + // + // Each filled polygon is bounded by two of these line segments + // perpdendicular to the t axis. + // + // The t axis is bisected into smaller regions until the color + // difference across a region is small enough, and then the region + // is painted with a single color. + + // set up + nComps = shading->getColorSpace()->getNComps(); + ta[0] = tMin; + ta[axialMaxSplits] = tMax; + next[0] = axialMaxSplits; + + // compute the color at t = tMin + if (tMin < 0) { + tt = t0; + } else if (tMin > 1) { + tt = t1; + } else { + tt = t0 + (t1 - t0) * tMin; + } + shading->getColor(tt, &color0); + + // compute the coordinates of the point on the t axis at t = tMin; + // then compute the intersection of the perpendicular line with the + // bounding box + tx = x0 + tMin * dx; + ty = y0 + tMin * dy; + if (dx == 0 && dy == 0) { + sMin = sMax = 0; + } if (dx == 0) { + sMin = (xMin - tx) / -dy; + sMax = (xMax - tx) / -dy; + if (sMin > sMax) { tmp = sMin; sMin = sMax; sMax = tmp; } + } else if (dy == 0) { + sMin = (yMin - ty) / dx; + sMax = (yMax - ty) / dx; + if (sMin > sMax) { tmp = sMin; sMin = sMax; sMax = tmp; } + } else { + s[0] = (yMin - ty) / dx; + s[1] = (yMax - ty) / dx; + s[2] = (xMin - tx) / -dy; + s[3] = (xMax - tx) / -dy; + for (j = 0; j < 3; ++j) { + kk = j; + for (k = j + 1; k < 4; ++k) { + if (s[k] < s[kk]) { + kk = k; + } + } + tmp = s[j]; s[j] = s[kk]; s[kk] = tmp; + } + sMin = s[1]; + sMax = s[2]; + } + ux0 = tx - sMin * dy; + uy0 = ty + sMin * dx; + vx0 = tx - sMax * dy; + vy0 = ty + sMax * dx; + + i = 0; + while (i < axialMaxSplits) { + + // bisect until color difference is small enough or we hit the + // bisection limit + j = next[i]; + while (j > i + 1) { + if (ta[j] < 0) { + tt = t0; + } else if (ta[j] > 1) { + tt = t1; + } else { + tt = t0 + (t1 - t0) * ta[j]; + } + shading->getColor(tt, &color1); + for (k = 0; k < nComps; ++k) { + if (fabs(color1.c[k] - color0.c[k]) > axialColorDelta) { + break; + } + } + if (k == nComps) { + break; + } + k = (i + j) / 2; + ta[k] = 0.5 * (ta[i] + ta[j]); + next[i] = k; + next[k] = j; + j = k; + } + + // use the average of the colors of the two sides of the region + for (k = 0; k < nComps; ++k) { + color0.c[k] = 0.5 * (color0.c[k] + color1.c[k]); + } + + // compute the coordinates of the point on the t axis; then + // compute the intersection of the perpendicular line with the + // bounding box + tx = x0 + ta[j] * dx; + ty = y0 + ta[j] * dy; + if (dx == 0 && dy == 0) { + sMin = sMax = 0; + } if (dx == 0) { + sMin = (xMin - tx) / -dy; + sMax = (xMax - tx) / -dy; + if (sMin > sMax) { tmp = sMin; sMin = sMax; sMax = tmp; } + } else if (dy == 0) { + sMin = (yMin - ty) / dx; + sMax = (yMax - ty) / dx; + if (sMin > sMax) { tmp = sMin; sMin = sMax; sMax = tmp; } + } else { + s[0] = (yMin - ty) / dx; + s[1] = (yMax - ty) / dx; + s[2] = (xMin - tx) / -dy; + s[3] = (xMax - tx) / -dy; + for (j = 0; j < 3; ++j) { + kk = j; + for (k = j + 1; k < 4; ++k) { + if (s[k] < s[kk]) { + kk = k; + } + } + tmp = s[j]; s[j] = s[kk]; s[kk] = tmp; + } + sMin = s[1]; + sMax = s[2]; + } + ux1 = tx - sMin * dy; + uy1 = ty + sMin * dx; + vx1 = tx - sMax * dy; + vy1 = ty + sMax * dx; + + // set the color + state->setFillColor(&color0); + out->updateFillColor(state); + + // fill the region + state->moveTo(ux0, uy0); + state->lineTo(vx0, vy0); + state->lineTo(vx1, vy1); + state->lineTo(ux1, uy1); + state->closePath(); + out->fill(state); + state->clearPath(); + + // set up for next region + ux0 = ux1; + uy0 = uy1; + vx0 = vx1; + vy0 = vy1; + color0 = color1; + i = next[i]; + } +} + +void Gfx::doRadialShFill(GfxRadialShading *shading) { + double sMin, sMax, xMin, yMin, xMax, yMax; + double x0, y0, r0, x1, y1, r1, t0, t1; + int nComps; + GfxColor colorA, colorB; + double xa, ya, xb, yb, ra, rb; + double ta, tb, sa, sb; + int ia, ib, k, n; + double *ctm; + double angle, t; + + // get the shading info + shading->getCoords(&x0, &y0, &r0, &x1, &y1, &r1); + t0 = shading->getDomain0(); + t1 = shading->getDomain1(); + nComps = shading->getColorSpace()->getNComps(); + + // compute the (possibly extended) s range + sMin = 0; + sMax = 1; + if (shading->getExtend0()) { + if (r0 < r1) { + // extend the smaller end + sMin = -r0 / (r1 - r0); + } else { + // extend the larger end + //~ this computes the diagonal of the bounding box -- we should + //~ really compute the intersection of the moving/expanding + //~ circles with each of the four corners and look for the max + //~ radius + state->getUserClipBBox(&xMin, &yMin, &xMax, &yMax); + sMin = (sqrt((xMax - xMin) * (xMax - xMin) + + (yMax - yMin) * (yMax - yMin)) - r0) / (r1 - r0); + if (sMin > 0) { + sMin = 0; + } else if (sMin < -20) { + // sanity check + sMin = -20; + } + } + } + if (shading->getExtend1()) { + if (r1 < r0) { + // extend the smaller end + sMax = -r0 / (r1 - r0); + } else if (r1 > r0) { + // extend the larger end + state->getUserClipBBox(&xMin, &yMin, &xMax, &yMax); + sMax = (sqrt((xMax - xMin) * (xMax - xMin) + + (yMax - yMin) * (yMax - yMin)) - r0) / (r1 - r0); + if (sMax < 1) { + sMin = 1; + } else if (sMax > 20) { + // sanity check + sMax = 20; + } + } + } + + // compute the number of steps into which circles must be divided to + // achieve a curve flatness of 0.1 pixel in device space for the + // largest circle (note that "device space" is 72 dpi when generating + // PostScript, hence the relatively small 0.1 pixel accuracy) + ctm = state->getCTM(); + t = fabs(ctm[0]); + if (fabs(ctm[1]) > t) { + t = fabs(ctm[1]); + } + if (fabs(ctm[2]) > t) { + t = fabs(ctm[2]); + } + if (fabs(ctm[3]) > t) { + t = fabs(ctm[3]); + } + if (r0 > r1) { + t *= r0; + } else { + t *= r1; + } + if (t < 1) { + n = 3; + } else { + n = (int)(M_PI / acos(1 - 0.1 / t)); + if (n < 3) { + n = 3; + } else if (n > 200) { + n = 200; + } + } + + // Traverse the t axis and do the shading. + // + // This generates and fills a series of rings. Each ring is defined + // by two circles: + // sa, ta, xa, ya, ra, colorA + // sb, tb, xb, yb, rb, colorB + // + // The s/t axis is divided into radialMaxSplits parts; these parts + // are combined as much as possible while respecting the + // radialColorDelta parameter. + + // setup for the start circle + ia = 0; + sa = sMin; + ta = t0 + sa * (t1 - t0); + xa = x0 + sa * (x1 - x0); + ya = y0 + sa * (y1 - y0); + ra = r0 + sa * (r1 - r0); + if (ta < t0) { + shading->getColor(t0, &colorA); + } else if (ta > t1) { + shading->getColor(t1, &colorA); + } else { + shading->getColor(ta, &colorA); + } + + while (ia < radialMaxSplits) { + + // go as far along the t axis (toward t1) as we can, such that the + // color difference is within the tolerance (radialColorDelta) -- + // this uses bisection (between the current value, t, and t1), + // limited to radialMaxSplits points along the t axis + ib = radialMaxSplits; + sb = sMin + ((double)ib / (double)radialMaxSplits) * (sMax - sMin); + tb = t0 + sb * (t1 - t0); + if (tb < t0) { + shading->getColor(t0, &colorB); + } else if (tb > t1) { + shading->getColor(t1, &colorB); + } else { + shading->getColor(tb, &colorB); + } + while (ib - ia > 1) { + for (k = 0; k < nComps; ++k) { + if (fabs(colorB.c[k] - colorA.c[k]) > radialColorDelta) { + break; + } + } + if (k == nComps) { + break; + } + ib = (ia + ib) / 2; + sb = sMin + ((double)ib / (double)radialMaxSplits) * (sMax - sMin); + tb = t0 + sb * (t1 - t0); + if (tb < t0) { + shading->getColor(t0, &colorB); + } else if (tb > t1) { + shading->getColor(t1, &colorB); + } else { + shading->getColor(tb, &colorB); + } + } + + // compute center and radius of the circle + xb = x0 + sb * (x1 - x0); + yb = y0 + sb * (y1 - y0); + rb = r0 + sb * (r1 - r0); + + // use the average of the colors at the two circles + for (k = 0; k < nComps; ++k) { + colorA.c[k] = 0.5 * (colorA.c[k] + colorB.c[k]); + } + state->setFillColor(&colorA); + out->updateFillColor(state); + + // construct path for first circle + state->moveTo(xa + ra, ya); + for (k = 1; k < n; ++k) { + angle = ((double)k / (double)n) * 2 * M_PI; + state->lineTo(xa + ra * cos(angle), ya + ra * sin(angle)); + } + state->closePath(); + + // construct and append path for second circle + state->moveTo(xb + rb, yb); + for (k = 1; k < n; ++k) { + angle = ((double)k / (double)n) * 2 * M_PI; + state->lineTo(xb + rb * cos(angle), yb + rb * sin(angle)); + } + state->closePath(); + + // fill the ring + out->eoFill(state); + state->clearPath(); + + // step to the next value of t + ia = ib; + sa = sb; + ta = tb; + xa = xb; + ya = yb; + ra = rb; + colorA = colorB; + } +} + void Gfx::doEndPath() { - if (state->isPath()) { - if (clip == clipNormal) + if (state->isPath() && clip != clipNone) { + state->clip(); + if (clip == clipNormal) { out->clip(state); - else if (clip == clipEO) + } else { out->eoClip(state); + } } clip = clipNone; state->clearPath(); @@ -1300,9 +1861,11 @@ void Gfx::opSetFont(Object args[], int numArgs) { return; } if (printCommands) { - printf(" font: '%s' %g\n", + printf(" font: tag=%s name='%s' %g\n", + font->getTag()->getCString(), font->getName() ? font->getName()->getCString() : "???", args[1].getNum()); + fflush(stdout); } state->setFont(font, args[1].getNum()); fontChanged = gTrue; @@ -1330,6 +1893,7 @@ void Gfx::opSetWordSpacing(Object args[], int numArgs) { void Gfx::opSetHorizScaling(Object args[], int numArgs) { state->setHorizScaling(args[0].getNum()); out->updateHorizScaling(state); + fontChanged = gTrue; } //------------------------------------------------------------------------ @@ -1422,17 +1986,23 @@ void Gfx::opMoveSetShowText(Object args[], int numArgs) { void Gfx::opShowSpaceText(Object args[], int numArgs) { Array *a; Object obj; + int wMode; int i; if (!state->getFont()) { error(getPos(), "No font in show/space"); return; } + wMode = state->getFont()->getWMode(); a = args[0].getArray(); for (i = 0; i < a->getLength(); ++i) { a->get(i, &obj); if (obj.isNum()) { - state->textShift(-obj.getNum() * 0.001 * state->getFontSize()); + if (wMode) { + state->textShift(0, -obj.getNum() * 0.001 * state->getFontSize()); + } else { + state->textShift(-obj.getNum() * 0.001 * state->getFontSize(), 0); + } out->updateTextShift(state, obj.getNum()); } else if (obj.isString()) { doShowText(obj.getString()); @@ -1445,188 +2015,174 @@ void Gfx::opShowSpaceText(Object args[], int numArgs) { void Gfx::doShowText(GString *s) { GfxFont *font; - GfxFontEncoding16 *enc; - Guchar *p; - Guchar c8; - int c16; - GString *s16; - char s16a[2]; - int m, n; -#if 0 //~type3 - double dx, dy, width, height, w, h, x, y; + int wMode; + double riseX, riseY; + CharCode code; + Unicode u[8]; + double x, y, dx, dy, dx2, dy2, curX, curY, tdx, tdy; + double originX, originY, tOriginX, tOriginY; double oldCTM[6], newCTM[6]; double *mat; Object charProc; + Dict *resDict; Parser *oldParser; - int i; -#else - double dx, dy, width, height, w, h, sWidth, sHeight; -#endif + char *p; + int len, n, uLen, nChars, nSpaces, i; if (fontChanged) { out->updateFont(state); fontChanged = gFalse; } font = state->getFont(); + wMode = font->getWMode(); - //----- 16-bit font - if (font->is16Bit()) { - enc = font->getEncoding16(); - if (out->useDrawChar()) { - out->beginString(state, s); - s16 = NULL; - } else { - s16 = new GString(); - } - sWidth = sHeight = 0; - state->textTransformDelta(0, state->getRise(), &dx, &dy); - p = (Guchar *)s->getCString(); - n = s->getLength(); - while (n > 0) { - m = getNextChar16(enc, p, &c16); - if (enc->wMode == 0) { - width = state->getFontSize() * state->getHorizScaling() * - font->getWidth16(c16) + - state->getCharSpace(); - if (c16 == ' ') { - width += state->getWordSpace(); - } - height = 0; - } else { - width = 0; - height = state->getFontSize() * font->getHeight16(c16); - } - state->textTransformDelta(width, height, &w, &h); - if (out->useDrawChar()) { - out->drawChar16(state, state->getCurX() + dx, state->getCurY() + dy, - w, h, c16); - state->textShift(width, height); - } else { - s16a[0] = (char)(c16 >> 8); - s16a[1] = (char)c16; - s16->append(s16a, 2); - sWidth += w; - sHeight += h; - } - n -= m; - p += m; - } - if (out->useDrawChar()) { - out->endString(state); - } else { - out->drawString16(state, s16); - delete s16; - state->textShift(sWidth, sHeight); - } + if (out->useDrawChar()) { + out->beginString(state, s); + } - //----- 8-bit font - } else { -#if 0 //~type3 - //~ also check out->renderType3() - if (font->getType() == fontType3) { - out->beginString(state, s); - mat = state->getCTM(); - for (i = 0; i < 6; ++i) { - oldCTM[i] = mat[i]; + // handle a Type 3 char + if (font->getType() == fontType3 && out->interpretType3Chars()) { + mat = state->getCTM(); + for (i = 0; i < 6; ++i) { + oldCTM[i] = mat[i]; + } + mat = state->getTextMat(); + newCTM[0] = mat[0] * oldCTM[0] + mat[1] * oldCTM[2]; + newCTM[1] = mat[0] * oldCTM[1] + mat[1] * oldCTM[3]; + newCTM[2] = mat[2] * oldCTM[0] + mat[3] * oldCTM[2]; + newCTM[3] = mat[2] * oldCTM[1] + mat[3] * oldCTM[3]; + mat = font->getFontMatrix(); + newCTM[0] = mat[0] * newCTM[0] + mat[1] * newCTM[2]; + newCTM[1] = mat[0] * newCTM[1] + mat[1] * newCTM[3]; + newCTM[2] = mat[2] * newCTM[0] + mat[3] * newCTM[2]; + newCTM[3] = mat[2] * newCTM[1] + mat[3] * newCTM[3]; + newCTM[0] *= state->getFontSize(); + newCTM[3] *= state->getFontSize(); + newCTM[0] *= state->getHorizScaling(); + newCTM[2] *= state->getHorizScaling(); + state->textTransformDelta(0, state->getRise(), &riseX, &riseY); + curX = state->getCurX(); + curY = state->getCurY(); + oldParser = parser; + p = s->getCString(); + len = s->getLength(); + while (len > 0) { + n = font->getNextChar(p, len, &code, + u, (int)(sizeof(u) / sizeof(Unicode)), &uLen, + &dx, &dy, &originX, &originY); + dx = dx * state->getFontSize() + state->getCharSpace(); + if (n == 1 && *p == ' ') { + dx += state->getWordSpace(); } - mat = state->getTextMat(); - newCTM[0] = mat[0] * oldCTM[0] + mat[1] * oldCTM[2]; - newCTM[1] = mat[0] * oldCTM[1] + mat[1] * oldCTM[3]; - newCTM[2] = mat[2] * oldCTM[0] + mat[3] * oldCTM[2]; - newCTM[3] = mat[2] * oldCTM[1] + mat[3] * oldCTM[3]; - mat = font->getFontMatrix(); - newCTM[0] = mat[0] * newCTM[0] + mat[1] * newCTM[2]; - newCTM[1] = mat[0] * newCTM[1] + mat[1] * newCTM[3]; - newCTM[2] = mat[2] * newCTM[0] + mat[3] * newCTM[2]; - newCTM[3] = mat[2] * newCTM[1] + mat[3] * newCTM[3]; - newCTM[0] *= state->getFontSize(); - newCTM[3] *= state->getFontSize(); - newCTM[0] *= state->getHorizScaling(); - newCTM[2] *= state->getHorizScaling(); - state->textTransformDelta(0, state->getRise(), &dx, &dy); - oldParser = parser; - for (p = (Guchar *)s->getCString(), n = s->getLength(); n; ++p, --n) { - c8 = *p; - font->getCharProc(c8, &charProc); - state->transform(state->getCurX() + dx, state->getCurY() + dy, &x, &y); - state->setCTM(newCTM[0], newCTM[1], newCTM[2], newCTM[3], x, y); - //~ out->updateCTM(???) + dx *= state->getHorizScaling(); + dy *= state->getFontSize(); + state->textTransformDelta(dx, dy, &tdx, &tdy); + state->transform(curX + riseX, curY + riseY, &x, &y); + out->saveState(state); + state = state->save(); + state->setCTM(newCTM[0], newCTM[1], newCTM[2], newCTM[3], x, y); + //~ out->updateCTM(???) + if (!out->beginType3Char(state, code, u, uLen)) { + ((Gfx8BitFont *)font)->getCharProc(code, &charProc); + if ((resDict = ((Gfx8BitFont *)font)->getResources())) { + pushResources(resDict); + } if (charProc.isStream()) { display(&charProc, gFalse); } else { error(getPos(), "Missing or bad Type3 CharProc entry"); } - state->setCTM(oldCTM[0], oldCTM[1], oldCTM[2], - oldCTM[3], oldCTM[4], oldCTM[5]); - //~ out->updateCTM(???) - use gsave/grestore instead? + out->endType3Char(state); + if (resDict) { + popResources(); + } charProc.free(); - width = state->getFontSize() * state->getHorizScaling() * - font->getWidth(c8) + - state->getCharSpace(); - if (c8 == ' ') { - width += state->getWordSpace(); + } + state = state->restore(); + out->restoreState(state); + // GfxState::restore() does *not* restore the current position, + // so we track it here with (curX, curY) + curX += tdx; + curY += tdy; + state->moveTo(curX, curY); + p += n; + len -= n; + } + parser = oldParser; + + } else if (out->useDrawChar()) { + state->textTransformDelta(0, state->getRise(), &riseX, &riseY); + p = s->getCString(); + len = s->getLength(); + while (len > 0) { + n = font->getNextChar(p, len, &code, + u, (int)(sizeof(u) / sizeof(Unicode)), &uLen, + &dx, &dy, &originX, &originY); + if (wMode) { + dx *= state->getFontSize(); + dy = dy * state->getFontSize() + state->getCharSpace(); + if (n == 1 && *p == ' ') { + dy += state->getWordSpace(); + } + } else { + dx = dx * state->getFontSize() + state->getCharSpace(); + if (n == 1 && *p == ' ') { + dx += state->getWordSpace(); } - state->textShift(width); + dx *= state->getHorizScaling(); + dy *= state->getFontSize(); } - parser = oldParser; - out->endString(state); - } else -#endif - if (out->useDrawChar()) { - out->beginString(state, s); - state->textTransformDelta(0, state->getRise(), &dx, &dy); - for (p = (Guchar *)s->getCString(), n = s->getLength(); n; ++p, --n) { - c8 = *p; - width = state->getFontSize() * state->getHorizScaling() * - font->getWidth(c8) + - state->getCharSpace(); - if (c8 == ' ') - width += state->getWordSpace(); - state->textTransformDelta(width, 0, &w, &h); - out->drawChar(state, state->getCurX() + dx, state->getCurY() + dy, - w, h, c8); - state->textShift(width); + state->textTransformDelta(dx, dy, &tdx, &tdy); + originX *= state->getFontSize(); + originY *= state->getFontSize(); + state->textTransformDelta(originX, originY, &tOriginX, &tOriginY); + out->drawChar(state, state->getCurX() + riseX, state->getCurY() + riseY, + tdx, tdy, tOriginX, tOriginY, code, u, uLen); + state->shift(tdx, tdy); + p += n; + len -= n; + } + + } else { + dx = dy = 0; + p = s->getCString(); + len = s->getLength(); + nChars = nSpaces = 0; + while (len > 0) { + n = font->getNextChar(p, len, &code, + u, (int)(sizeof(u) / sizeof(Unicode)), &uLen, + &dx2, &dy2, &originX, &originY); + dx += dx2; + dy += dy2; + if (n == 1 && *p == ' ') { + ++nSpaces; } - out->endString(state); + ++nChars; + p += n; + len -= n; + } + if (wMode) { + dx *= state->getFontSize(); + dy = dy * state->getFontSize() + + nChars * state->getCharSpace() + + nSpaces * state->getWordSpace(); } else { - out->drawString(state, s); - width = state->getFontSize() * state->getHorizScaling() * - font->getWidth(s) + - s->getLength() * state->getCharSpace(); - for (p = (Guchar *)s->getCString(), n = s->getLength(); n; ++p, --n) { - if (*p == ' ') - width += state->getWordSpace(); - } - state->textShift(width); + dx = dx * state->getFontSize() + + nChars * state->getCharSpace() + + nSpaces * state->getWordSpace(); + dx *= state->getHorizScaling(); + dy *= state->getFontSize(); } + state->textTransformDelta(dx, dy, &tdx, &tdy); + out->drawString(state, s); + state->shift(tdx, tdy); } -} -int Gfx::getNextChar16(GfxFontEncoding16 *enc, Guchar *p, int *c16) { - int n; - int code; - int a, b, m; - - n = enc->codeLen[*p]; - if (n == 1) { - *c16 = enc->map1[*p]; - } else { - code = (p[0] << 8) + p[1]; - a = 0; - b = enc->map2Len; - // invariant: map2[2*a] <= code < map2[2*b] - while (b - a > 1) { - m = (a + b) / 2; - if (enc->map2[2*m] <= code) - a = m; - else if (enc->map2[2*m] > code) - b = m; - else - break; - } - *c16 = enc->map2[2*a+1] + (code - enc->map2[2*a]); + if (out->useDrawChar()) { + out->endString(state); } - return n; + + updateLevel += 10 * s->getLength(); } //------------------------------------------------------------------------ @@ -1634,7 +2190,7 @@ int Gfx::getNextChar16(GfxFontEncoding16 *enc, Guchar *p, int *c16) { //------------------------------------------------------------------------ void Gfx::opXObject(Object args[], int numArgs) { - Object obj1, obj2, refObj; + Object obj1, obj2, obj3, refObj; #if OPI_SUPPORT Object opiDict; #endif @@ -1660,6 +2216,10 @@ void Gfx::opXObject(Object args[], int numArgs) { refObj.free(); } else if (obj2.isName("Form")) { doForm(&obj1); + } else if (obj2.isName("PS")) { + obj1.streamGetDict()->lookup("Level1", &obj3); + out->psXObject(obj1.getStream(), + obj3.isStream() ? obj3.getStream() : (Stream *)NULL); } else if (obj2.isName()) { error(getPos(), "Unknown XObject subtype '%s'", obj2.getName()); } else { @@ -1677,13 +2237,17 @@ void Gfx::opXObject(Object args[], int numArgs) { void Gfx::doImage(Object *ref, Stream *str, GBool inlineImg) { Dict *dict; - Object obj1, obj2; int width, height; int bits; GBool mask; + GBool invert; GfxColorSpace *colorSpace; GfxImageColorMap *colorMap; - GBool invert; + Object maskObj; + GBool haveMask; + int maskColors[2*gfxColorMaxComps]; + Object obj1, obj2; + int i; // get stream dict dict = str->getDict(); @@ -1791,11 +2355,30 @@ void Gfx::doImage(Object *ref, Stream *str, GBool inlineImg) { goto err1; } + // get the mask + haveMask = gFalse; + dict->lookup("Mask", &maskObj); + if (maskObj.isArray()) { + for (i = 0; i < maskObj.arrayGetLength(); ++i) { + maskObj.arrayGet(i, &obj1); + maskColors[i] = obj1.getInt(); + obj1.free(); + } + haveMask = gTrue; + } + // draw it - out->drawImage(state, ref, str, width, height, colorMap, inlineImg); + out->drawImage(state, ref, str, width, height, colorMap, + haveMask ? maskColors : (int *)NULL, inlineImg); delete colorMap; - str->close(); + + maskObj.free(); + } + + if ((i = width * height) > 1000) { + i = 1000; } + updateLevel += i; return; @@ -1856,7 +2439,7 @@ void Gfx::doForm(Object *str) { // get resources dict->lookup("Resources", &resObj); - resDict = resObj.isDict() ? resObj.getDict() : NULL; + resDict = resObj.isDict() ? resObj.getDict() : (Dict *)NULL; // draw it doForm1(str, resDict, m, bbox); @@ -1864,19 +2447,22 @@ void Gfx::doForm(Object *str) { resObj.free(); } -void Gfx::doWidgetForm(Object *str, double xMin, double yMin, - double xMax, double yMax) { +void Gfx::doAnnot(Object *str, double xMin, double yMin, + double xMax, double yMax) { Dict *dict, *resDict; Object matrixObj, bboxObj, resObj; Object obj1; - double m[6], bbox[6]; - double sx, sy; + double m[6], bbox[6], ictm[6]; + double *ctm; + double formX0, formY0, formX1, formY1; + double annotX0, annotY0, annotX1, annotY1; + double det, x, y, sx, sy; int i; // get stream dict dict = str->streamGetDict(); - // get bounding box + // get the form bounding box dict->lookup("BBox", &bboxObj); if (!bboxObj.isArray()) { bboxObj.free(); @@ -1890,7 +2476,7 @@ void Gfx::doWidgetForm(Object *str, double xMin, double yMin, } bboxObj.free(); - // get matrix + // get the form matrix dict->lookup("Matrix", &matrixObj); if (matrixObj.isArray()) { for (i = 0; i < 6; ++i) { @@ -1905,20 +2491,68 @@ void Gfx::doWidgetForm(Object *str, double xMin, double yMin, } matrixObj.free(); - // scale form bbox to widget rectangle - sx = fabs((xMax - xMin) / (bbox[2] - bbox[0])); - sy = fabs((yMax - yMin) / (bbox[3] - bbox[1])); - m[0] *= sx; m[1] *= sy; - m[2] *= sx; m[3] *= sy; - m[4] *= sx; m[5] *= sy; + // transform the form bbox from form space to user space + formX0 = bbox[0] * m[0] + bbox[1] * m[2] + m[4]; + formY0 = bbox[0] * m[1] + bbox[1] * m[3] + m[5]; + formX1 = bbox[2] * m[0] + bbox[3] * m[2] + m[4]; + formY1 = bbox[2] * m[1] + bbox[3] * m[3] + m[5]; + + // transform the annotation bbox from default user space to user + // space: (bbox * baseMatrix) * iCTM + ctm = state->getCTM(); + det = 1 / (ctm[0] * ctm[3] - ctm[1] * ctm[2]); + ictm[0] = ctm[3] * det; + ictm[1] = -ctm[1] * det; + ictm[2] = -ctm[2] * det; + ictm[3] = ctm[0] * det; + ictm[4] = (ctm[2] * ctm[5] - ctm[3] * ctm[4]) * det; + ictm[5] = (ctm[1] * ctm[4] - ctm[0] * ctm[5]) * det; + x = baseMatrix[0] * xMin + baseMatrix[2] * yMin + baseMatrix[4]; + y = baseMatrix[1] * xMin + baseMatrix[3] * yMin + baseMatrix[5]; + annotX0 = ictm[0] * x + ictm[2] * y + ictm[4]; + annotY0 = ictm[1] * x + ictm[3] * y + ictm[5]; + x = baseMatrix[0] * xMax + baseMatrix[2] * yMax + baseMatrix[4]; + y = baseMatrix[1] * xMax + baseMatrix[3] * yMax + baseMatrix[5]; + annotX1 = ictm[0] * x + ictm[2] * y + ictm[4]; + annotY1 = ictm[1] * x + ictm[3] * y + ictm[5]; + + // swap min/max coords + if (formX0 > formX1) { + x = formX0; formX0 = formX1; formX1 = x; + } + if (formY0 > formY1) { + y = formY0; formY0 = formY1; formY1 = y; + } + if (annotX0 > annotX1) { + x = annotX0; annotX0 = annotX1; annotX1 = x; + } + if (annotY0 > annotY1) { + y = annotY0; annotY0 = annotY1; annotY1 = y; + } - // translate to widget rectangle - m[4] += xMin; - m[5] += yMin; + // scale the form to fit the annotation bbox + if (formX1 == formX0) { + // this shouldn't happen + sx = 1; + } else { + sx = (annotX1 - annotX0) / (formX1 - formX0); + } + if (formY1 == formY0) { + // this shouldn't happen + sy = 1; + } else { + sy = (annotY1 - annotY0) / (formY1 - formY0); + } + m[0] *= sx; + m[2] *= sx; + m[4] = (m[4] - formX0) * sx + annotX0; + m[1] *= sy; + m[3] *= sy; + m[5] = (m[5] - formY0) * sy + annotY0; // get resources dict->lookup("Resources", &resObj); - resDict = resObj.isDict() ? resObj.getDict() : NULL; + resDict = resObj.isDict() ? resObj.getDict() : (Dict *)NULL; // draw it doForm1(str, resDict, m, bbox); @@ -1930,11 +2564,10 @@ void Gfx::doWidgetForm(Object *str, double xMin, double yMin, void Gfx::doForm1(Object *str, Dict *resDict, double *matrix, double *bbox) { Parser *oldParser; double oldBaseMatrix[6]; - GfxResources *resPtr; int i; // push new resources on stack - res = new GfxResources(resDict, res); + pushResources(resDict); // save current graphics state out->saveState(state); @@ -1961,6 +2594,7 @@ void Gfx::doForm1(Object *str, Dict *resDict, double *matrix, double *bbox) { state->lineTo(bbox[2], bbox[3]); state->lineTo(bbox[0], bbox[3]); state->closePath(); + state->clip(); out->clip(state); state->clearPath(); @@ -1980,11 +2614,21 @@ void Gfx::doForm1(Object *str, Dict *resDict, double *matrix, double *bbox) { out->restoreState(state); // pop resource stack + popResources(); + + return; +} + +void Gfx::pushResources(Dict *resDict) { + res = new GfxResources(xref, resDict, res); +} + +void Gfx::popResources() { + GfxResources *resPtr; + resPtr = res->getNext(); delete res; res = resPtr; - - return; } //------------------------------------------------------------------------ @@ -2020,25 +2664,30 @@ Stream *Gfx::buildImageStream() { Stream *str; // build dictionary - dict.initDict(); + dict.initDict(xref); parser->getObj(&obj); while (!obj.isCmd("ID") && !obj.isEOF()) { if (!obj.isName()) { error(getPos(), "Inline image dictionary key must be a name object"); obj.free(); - parser->getObj(&obj); } else { key = copyString(obj.getName()); obj.free(); parser->getObj(&obj); - if (obj.isEOF() || obj.isError()) + if (obj.isEOF() || obj.isError()) { + gfree(key); break; + } dict.dictAdd(key, &obj); } parser->getObj(&obj); } - if (obj.isEOF()) + if (obj.isEOF()) { error(getPos(), "End of file in inline image"); + obj.free(); + dict.free(); + return NULL; + } obj.free(); // make stream @@ -2061,11 +2710,13 @@ void Gfx::opEndImage(Object args[], int numArgs) { //------------------------------------------------------------------------ void Gfx::opSetCharWidth(Object args[], int numArgs) { - error(getPos(), "Encountered 'd0' operator in content stream"); + out->type3D0(state, args[0].getNum(), args[1].getNum()); } void Gfx::opSetCacheDevice(Object args[], int numArgs) { - error(getPos(), "Encountered 'd1' operator in content stream"); + out->type3D1(state, args[0].getNum(), args[1].getNum(), + args[2].getNum(), args[3].getNum(), + args[4].getNum(), args[5].getNum()); } //------------------------------------------------------------------------ @@ -2091,6 +2742,7 @@ void Gfx::opBeginMarkedContent(Object args[], int numArgs) { if (numArgs == 2) args[2].print(stdout); printf("\n"); + fflush(stdout); } } @@ -2103,5 +2755,6 @@ void Gfx::opMarkPoint(Object args[], int numArgs) { if (numArgs == 2) args[2].print(stdout); printf("\n"); + fflush(stdout); } } diff --git a/pdf/xpdf/Gfx.h b/pdf/xpdf/Gfx.h index 34d8f992..b4da531c 100644 --- a/pdf/xpdf/Gfx.h +++ b/pdf/xpdf/Gfx.h @@ -2,7 +2,7 @@ // // Gfx.h // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -16,6 +16,7 @@ #include "gtypes.h" class GString; +class XRef; class Array; class Stream; class Parser; @@ -23,10 +24,13 @@ class Dict; class OutputDev; class GfxFontDict; class GfxFont; -struct GfxFontEncoding16; class GfxPattern; +class GfxShading; +class GfxAxialShading; +class GfxRadialShading; class GfxState; class Gfx; +struct PDFRectangle; //------------------------------------------------------------------------ // Gfx @@ -62,7 +66,7 @@ struct Operator { class GfxResources { public: - GfxResources(Dict *resDict, GfxResources *next); + GfxResources(XRef *xref, Dict *resDict, GfxResources *nextA); ~GfxResources(); GfxFont *lookupFont(char *name); @@ -70,6 +74,7 @@ public: GBool lookupXObjectNF(char *name, Object *obj); void lookupColorSpace(char *name, Object *obj); GfxPattern *lookupPattern(char *name); + GfxShading *lookupShading(char *name); GBool lookupGState(char *name, Object *obj); GfxResources *getNext() { return next; } @@ -80,6 +85,7 @@ private: Object xObjDict; Object colorSpaceDict; Object patternDict; + Object shadingDict; Object gStateDict; GfxResources *next; }; @@ -88,24 +94,35 @@ class Gfx { public: // Constructor for regular output. - Gfx(OutputDev *out1, int pageNum, Dict *resDict, - double dpi, double x1, double y1, double x2, double y2, GBool crop, - double cropX1, double cropY1, double cropX2, double cropY2, - int rotate); + Gfx(XRef *xrefA, OutputDev *outA, int pageNum, Dict *resDict, double dpi, + PDFRectangle *box, GBool crop, PDFRectangle *cropBox, int rotate, + GBool printCommandsA); + + // Constructor for a sub-page object. + Gfx(XRef *xrefA, OutputDev *outA, Dict *resDict, + PDFRectangle *box, GBool crop, PDFRectangle *cropBox); - // Destructor. ~Gfx(); // Interpret a stream or array of streams. void display(Object *obj, GBool topLevel = gTrue); - void doWidgetForm(Object *str, double xMin, double yMin, - double xMax, double yMax); + // Display an annotation, given its appearance (a Form XObject) and + // bounding box (in default user space). + void doAnnot(Object *str, double xMin, double yMin, + double xMax, double yMax); + + void pushResources(Dict *resDict); + void popResources(); private: + XRef *xref; // the xref table for this PDF file OutputDev *out; // output device + GBool subPage; // is this a sub-page object? + GBool printCommands; // print the drawing commands (for debugging) GfxResources *res; // resource stack + int updateLevel; GfxState *state; // current graphics state GBool fontChanged; // set if font or text matrix has changed @@ -170,8 +187,10 @@ private: void opCloseFillStroke(Object args[], int numArgs); void opEOFillStroke(Object args[], int numArgs); void opCloseEOFillStroke(Object args[], int numArgs); - void opShFill(Object args[], int numArgs); void doPatternFill(GBool eoFill); + void opShFill(Object args[], int numArgs); + void doAxialShFill(GfxAxialShading *shading); + void doRadialShFill(GfxRadialShading *shading); void doEndPath(); // path clipping operators @@ -203,7 +222,6 @@ private: void opMoveSetShowText(Object args[], int numArgs); void opShowSpaceText(Object args[], int numArgs); void doShowText(GString *s); - int getNextChar16(GfxFontEncoding16 *enc, Guchar *p, int *c16); // XObject operators void opXObject(Object args[], int numArgs); diff --git a/pdf/xpdf/GfxFont.cc b/pdf/xpdf/GfxFont.cc index 16b311b3..8dcd8e78 100644 --- a/pdf/xpdf/GfxFont.cc +++ b/pdf/xpdf/GfxFont.cc @@ -2,7 +2,7 @@ // // GfxFont.cc // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -10,513 +10,298 @@ #pragma implementation #endif -#include -#include +#include #include +#include #include #include -#include "GString.h" #include "gmem.h" -#include "gfile.h" -#include "config.h" +#include "Error.h" #include "Object.h" -#include "Array.h" #include "Dict.h" -#include "Error.h" -#include "Params.h" +#include "GlobalParams.h" +#include "CMap.h" +#include "CharCodeToUnicode.h" +#include "FontEncodingTables.h" +#include "BuiltinFontTables.h" #include "FontFile.h" #include "GfxFont.h" -#include "FontInfo.h" -#if JAPANESE_SUPPORT -#include "Japan12CMapInfo.h" -#endif -#if CHINESE_GB_SUPPORT -#include "GB12CMapInfo.h" -#endif -#if CHINESE_CNS_SUPPORT -#include "CNS13CMapInfo.h" -#endif - //------------------------------------------------------------------------ -static int CDECL cmpWidthExcep(const void *w1, const void *w2); -static int CDECL cmpWidthExcepV(const void *w1, const void *w2); - -//------------------------------------------------------------------------ +struct StdFontMapEntry { + char *altName; + char *properName; +}; -static Gushort *defCharWidths[12] = { - courierWidths, - courierObliqueWidths, - courierBoldWidths, - courierBoldObliqueWidths, - helveticaWidths, - helveticaObliqueWidths, - helveticaBoldWidths, - helveticaBoldObliqueWidths, - timesRomanWidths, - timesItalicWidths, - timesBoldWidths, - timesBoldItalicWidths +static StdFontMapEntry stdFontMap[] = { + { "Arial", "Helvetica" }, + { "Arial,Bold", "Helvetica-Bold" }, + { "Arial,BoldItalic", "Helvetica-BoldOblique" }, + { "Arial,Italic", "Helvetica-Oblique" }, + { "Arial-Bold", "Helvetica-Bold" }, + { "Arial-BoldItalic", "Helvetica-BoldOblique" }, + { "Arial-BoldItalicMT", "Helvetica-BoldOblique" }, + { "Arial-BoldMT", "Helvetica-Bold" }, + { "Arial-Italic", "Helvetica-Oblique" }, + { "Arial-ItalicMT", "Helvetica-Oblique" }, + { "ArialMT", "Helvetica" }, + { "Courier,Bold", "Courier-Bold" }, + { "Courier,Italic", "Courier-Oblique" }, + { "Courier,BoldItalic", "Courier-BoldOblique" }, + { "CourierNew", "Courier" }, + { "CourierNew,Bold", "Courier-Bold" }, + { "CourierNew,BoldItalic", "Courier-BoldOblique" }, + { "CourierNew,Italic", "Courier-Oblique" }, + { "CourierNew-Bold", "Courier-Bold" }, + { "CourierNew-BoldItalic", "Courier-BoldOblique" }, + { "CourierNew-Italic", "Courier-Oblique" }, + { "CourierNewPS-BoldItalicMT", "Courier-BoldOblique" }, + { "CourierNewPS-BoldMT", "Courier-Bold" }, + { "CourierNewPS-ItalicMT", "Courier-Oblique" }, + { "CourierNewPSMT", "Courier" }, + { "Helvetica,Bold", "Helvetica-Bold" }, + { "Helvetica,BoldItalic", "Helvetica-BoldOblique" }, + { "Helvetica,Italic", "Helvetica-Oblique" }, + { "Helvetica-BoldItalic", "Helvetica-BoldOblique" }, + { "Helvetica-Italic", "Helvetica-Oblique" }, + { "TimesNewRoman", "Times-Roman" }, + { "TimesNewRoman,Bold", "Times-Bold" }, + { "TimesNewRoman,BoldItalic", "Times-BoldItalic" }, + { "TimesNewRoman,Italic", "Times-Italic" }, + { "TimesNewRoman-Bold", "Times-Bold" }, + { "TimesNewRoman-BoldItalic", "Times-BoldItalic" }, + { "TimesNewRoman-Italic", "Times-Italic" }, + { "TimesNewRomanPS", "Times-Roman" }, + { "TimesNewRomanPS-Bold", "Times-Bold" }, + { "TimesNewRomanPS-BoldItalic", "Times-BoldItalic" }, + { "TimesNewRomanPS-BoldItalicMT", "Times-BoldItalic" }, + { "TimesNewRomanPS-BoldMT", "Times-Bold" }, + { "TimesNewRomanPS-Italic", "Times-Italic" }, + { "TimesNewRomanPS-ItalicMT", "Times-Italic" }, + { "TimesNewRomanPSMT", "Times-Roman" } }; //------------------------------------------------------------------------ // GfxFont //------------------------------------------------------------------------ -GfxFont::GfxFont(char *tag1, Ref id1, Dict *fontDict) { - BuiltinFont *builtinFont; - Object obj1, obj2, obj3, obj4; - int missingWidth; - char *name2, *p; - int i; +GfxFont *GfxFont::makeFont(XRef *xref, char *tagA, Ref idA, Dict *fontDict) { + GString *nameA; + GfxFont *font; + Object obj1; - // get font tag and ID - tag = new GString(tag1); - id = id1; + // get base font name + nameA = NULL; + fontDict->lookup("BaseFont", &obj1); + if (obj1.isName()) { + nameA = new GString(obj1.getName()); + } + obj1.free(); // get font type - type = fontUnknownType; + font = NULL; fontDict->lookup("Subtype", &obj1); - if (obj1.isName("Type1")) - type = fontType1; - else if (obj1.isName("Type1C")) - type = fontType1C; - else if (obj1.isName("Type3")) - type = fontType3; - else if (obj1.isName("TrueType")) - type = fontTrueType; - else if (obj1.isName("Type0")) - type = fontType0; + if (obj1.isName("Type1") || obj1.isName("MMType1")) { + font = new Gfx8BitFont(xref, tagA, idA, nameA, fontType1, fontDict); + } else if (obj1.isName("Type1C")) { + font = new Gfx8BitFont(xref, tagA, idA, nameA, fontType1C, fontDict); + } else if (obj1.isName("Type3")) { + font = new Gfx8BitFont(xref, tagA, idA, nameA, fontType3, fontDict); + } else if (obj1.isName("TrueType")) { + font = new Gfx8BitFont(xref, tagA, idA, nameA, fontTrueType, fontDict); + } else if (obj1.isName("Type0")) { + font = new GfxCIDFont(xref, tagA, idA, nameA, fontDict); + } else { + error(-1, "Unknown font type: '%s'", + obj1.isName() ? obj1.getName() : "???"); + font = new Gfx8BitFont(xref, tagA, idA, nameA, fontUnknownType, fontDict); + } obj1.free(); - is16 = gFalse; - // get base font name - name = NULL; - fontDict->lookup("BaseFont", &obj1); - if (obj1.isName()) - name = new GString(obj1.getName()); - obj1.free(); + return font; +} - // Newer Adobe tools are using Base14-compatible TrueType fonts - // without embedding them, so munge the names into the equivalent - // PostScript names. This is a kludge -- it would be nice if Adobe - // followed their own spec. - if (type == fontTrueType) { - p = name->getCString(); - name2 = NULL; - if (!strncmp(p, "Arial", 5)) { - if (!strcmp(p+5, ",Bold")) { - name2 = "Helvetica-Bold"; - } else if (!strcmp(p+5, ",Italic")) { - name2 = "Helvetica-Oblique"; - } else if (!strcmp(p+5, ",BoldItalic")) { - name2 = "Helvetica-BoldOblique"; - } else { - name2 = "Helvetica"; - } - } else if (!strncmp(p, "TimesNewRoman", 13)) { - if (!strcmp(p+13, ",Bold")) { - name2 = "Times-Bold"; - } else if (!strcmp(p+13, ",Italic")) { - name2 = "Times-Italic"; - } else if (!strcmp(p+13, ",BoldItalic")) { - name2 = "Times-BoldItalic"; - } else { - name2 = "Times-Roman"; - } - } else if (!strncmp(p, "CourierNew", 10)) { - if (!strcmp(p+10, ",Bold")) { - name2 = "Courier-Bold"; - } else if (!strcmp(p+10, ",Italic")) { - name2 = "Courier-Oblique"; - } else if (!strcmp(p+10, ",BoldItalic")) { - name2 = "Courier-BoldOblique"; - } else { - name2 = "Courier"; - } - } - if (name2) { - delete name; - name = new GString(name2); - } - } +GfxFont::GfxFont(char *tagA, Ref idA, GString *nameA) { + ok = gFalse; + tag = new GString(tagA); + id = idA; + name = nameA; + embFontName = NULL; + extFontFile = NULL; +} - // is it a built-in font? - builtinFont = NULL; +GfxFont::~GfxFont() { + delete tag; if (name) { - for (i = 0; i < numBuiltinFonts; ++i) { - if (!strcmp(builtinFonts[i].name, name->getCString())) { - builtinFont = &builtinFonts[i]; - break; - } - } + delete name; + } + if (embFontName) { + delete embFontName; + } + if (extFontFile) { + delete extFontFile; } +} + +void GfxFont::readFontDescriptor(XRef *xref, Dict *fontDict) { + Object obj1, obj2, obj3, obj4; + double t; + int i; // assume Times-Roman by default (for substitution purposes) flags = fontSerif; - // get info from font descriptor - embFontName = NULL; embFontID.num = -1; embFontID.gen = -1; missingWidth = 0; - fontDict->lookup("FontDescriptor", &obj1); - if (obj1.isDict()) { + + if (fontDict->lookup("FontDescriptor", &obj1)->isDict()) { // get flags - obj1.dictLookup("Flags", &obj2); - if (obj2.isInt()) + if (obj1.dictLookup("Flags", &obj2)->isInt()) { flags = obj2.getInt(); + } obj2.free(); // get name obj1.dictLookup("FontName", &obj2); - if (obj2.isName()) + if (obj2.isName()) { embFontName = new GString(obj2.getName()); + } obj2.free(); // look for embedded font file - if (type == fontType1) { - obj1.dictLookupNF("FontFile", &obj2); - if (obj2.isRef()) + if (obj1.dictLookupNF("FontFile", &obj2)->isRef()) { + if (type == fontType1) { embFontID = obj2.getRef(); - obj2.free(); + } else { + error(-1, "Mismatch between font type and embedded font file"); + } } - if (embFontID.num == -1 && type == fontTrueType) { - obj1.dictLookupNF("FontFile2", &obj2); - if (obj2.isRef()) + obj2.free(); + if (embFontID.num == -1 && + obj1.dictLookupNF("FontFile2", &obj2)->isRef()) { + if (type == fontTrueType || type == fontCIDType2) { embFontID = obj2.getRef(); - obj2.free(); + } else { + error(-1, "Mismatch between font type and embedded font file"); + } } - if (embFontID.num == -1) { - obj1.dictLookupNF("FontFile3", &obj2); - if (obj2.isRef()) { - embFontID = obj2.getRef(); - obj2.fetch(&obj3); - if (obj3.isStream()) { - obj3.streamGetDict()->lookup("Subtype", &obj4); - if (obj4.isName("Type1")) - type = fontType1; - else if (obj4.isName("Type1C")) + obj2.free(); + if (embFontID.num == -1 && + obj1.dictLookupNF("FontFile3", &obj2)->isRef()) { + if (obj2.fetch(xref, &obj3)->isStream()) { + obj3.streamGetDict()->lookup("Subtype", &obj4); + if (obj4.isName("Type1")) { + if (type == fontType1) { + embFontID = obj2.getRef(); + } else { + error(-1, "Mismatch between font type and embedded font file"); + } + } else if (obj4.isName("Type1C")) { + if (type == fontType1) { type = fontType1C; - else if (obj4.isName("Type3")) - type = fontType3; - else if (obj4.isName("TrueType")) - type = fontTrueType; - else if (obj4.isName("Type0")) - type = fontType0; - obj4.free(); + embFontID = obj2.getRef(); + } else if (type == fontType1C) { + embFontID = obj2.getRef(); + } else { + error(-1, "Mismatch between font type and embedded font file"); + } + } else if (obj4.isName("TrueType")) { + if (type == fontTrueType) { + embFontID = obj2.getRef(); + } else { + error(-1, "Mismatch between font type and embedded font file"); + } + } else if (obj4.isName("CIDFontType0C")) { + if (type == fontCIDType0) { + type = fontCIDType0C; + embFontID = obj2.getRef(); + } else { + error(-1, "Mismatch between font type and embedded font file"); + } + } else { + error(-1, "Unknown embedded font type '%s'", + obj4.isName() ? obj4.getName() : "???"); } - obj3.free(); + obj4.free(); } - obj2.free(); + obj3.free(); } + obj2.free(); // look for MissingWidth obj1.dictLookup("MissingWidth", &obj2); - if (obj2.isInt()) { - missingWidth = obj2.getInt(); + if (obj2.isNum()) { + missingWidth = obj2.getNum(); } obj2.free(); - } - obj1.free(); - - // get Type3 font definition - if (type == fontType3) { - fontDict->lookup("CharProcs", &charProcs); - if (!charProcs.isDict()) { - error(-1, "Missing or invalid CharProcs dictionary in Type 3 font"); - charProcs.free(); - } - } - - // look for an external font file - extFontFile = NULL; - if (type == fontType1 && name) - findExtFontFile(); - - // get font matrix - fontMat[0] = fontMat[3] = 1; - fontMat[1] = fontMat[2] = fontMat[4] = fontMat[5] = 0; - if (fontDict->lookup("FontMatrix", &obj1)->isArray()) { - for (i = 0; i < 6 && i < obj1.arrayGetLength(); ++i) { - if (obj1.arrayGet(i, &obj2)->isNum()) - fontMat[i] = obj2.getNum(); - obj2.free(); - } - } - obj1.free(); - - // get encoding and character widths - if (type == fontType0) { - getType0EncAndWidths(fontDict); - } else { - getEncAndWidths(fontDict, builtinFont, missingWidth); - } -} - -GfxFont::~GfxFont() { - delete tag; - if (name) { - delete name; - } - if (!is16 && encoding) { - delete encoding; - } - if (embFontName) { - delete embFontName; - } - if (extFontFile) { - delete extFontFile; - } - if (charProcs.isDict()) { - charProcs.free(); - } - if (is16) { - gfree(widths16.exceps); - gfree(widths16.excepsV); - } -} - -double GfxFont::getWidth(GString *s) { - double w; - int i; - w = 0; - for (i = 0; i < s->getLength(); ++i) - w += widths[s->getChar(i) & 0xff]; - return w; -} - -double GfxFont::getWidth16(int c) { - double w; - int a, b, m; - - w = widths16.defWidth; - a = -1; - b = widths16.numExceps; - // invariant: widths16.exceps[a].last < c < widths16.exceps[b].first - while (b - a > 1) { - m = (a + b) / 2; - if (widths16.exceps[m].last < c) { - a = m; - } else if (c < widths16.exceps[m].first) { - b = m; - } else { - w = widths16.exceps[m].width; - break; - } - } - return w; -} - -double GfxFont::getHeight16(int c) { - double h; - int a, b, m; - - h = widths16.defHeight; - a = -1; - b = widths16.numExcepsV; - // invariant: widths16.excepsV[a].last < c < widths16.excepsV[b].first - while (b - a > 1) { - m = (a + b) / 2; - if (widths16.excepsV[m].last < c) { - a = m; - } else if (c < widths16.excepsV[m].first) { - b = m; - } else { - h = widths16.excepsV[m].height; - break; - } - } - return h; -} - -double GfxFont::getOriginX16(int c) { - double vx; - int a, b, m; - - vx = widths16.defWidth / 2; - a = -1; - b = widths16.numExcepsV; - // invariant: widths16.excepsV[a].last < c < widths16.excepsV[b].first - while (b - a > 1) { - m = (a + b) / 2; - if (widths16.excepsV[m].last < c) { - a = m; - } else if (c < widths16.excepsV[m].first) { - b = m; - } else { - vx = widths16.excepsV[m].vx; - break; - } - } - return vx; -} - -double GfxFont::getOriginY16(int c) { - double vy; - int a, b, m; - - vy = widths16.defVY; - a = -1; - b = widths16.numExcepsV; - // invariant: widths16.excepsV[a].last < c < widths16.excepsV[b].first - while (b - a > 1) { - m = (a + b) / 2; - if (widths16.excepsV[m].last < c) { - a = m; - } else if (c < widths16.excepsV[m].first) { - b = m; - } else { - vy = widths16.excepsV[m].vy; - break; - } - } - return vy; -} - -Object *GfxFont::getCharProc(int code, Object *proc) { - if (charProcs.isDict()) { - charProcs.dictLookup(encoding->getCharName(code), proc); - } else { - proc->initNull(); - } - return proc; -} - -void GfxFont::getEncAndWidths(Dict *fontDict, BuiltinFont *builtinFont, - int missingWidth) { - Object obj1, obj2, obj3; - char *buf; - int len; - FontFile *fontFile; - int code, i; - - // Encodings start with a base encoding, which can come from - // (in order of priority): - // 1. FontDict.Encoding or FontDict.Encoding.BaseEncoding - // - MacRoman / WinAnsi / Standard - // 2. embedded font file - // 3. default: - // - builtin --> builtin encoding - // - TrueType --> MacRomanEncoding - // - others --> StandardEncoding - // and then add a list of differences from - // FontDict.Encoding.Differences. - - // check FontDict for base encoding - encoding = NULL; - fontDict->lookup("Encoding", &obj1); - if (obj1.isDict()) { - obj1.dictLookup("BaseEncoding", &obj2); - if (obj2.isName("MacRomanEncoding")) { - encoding = macRomanEncoding.copy(); - } else if (obj2.isName("WinAnsiEncoding")) { - encoding = winAnsiEncoding.copy(); - } else if (obj2.isName("StandardEncoding")) { - encoding = standardEncoding.copy(); + // get Ascent and Descent + obj1.dictLookup("Ascent", &obj2); + if (obj2.isNum()) { + t = 0.001 * obj2.getNum(); + // some broken font descriptors set ascent and descent to 0 + if (t != 0) { + ascent = t; + } } obj2.free(); - } else if (obj1.isName("MacRomanEncoding")) { - encoding = macRomanEncoding.copy(); - } else if (obj1.isName("WinAnsiEncoding")) { - encoding = winAnsiEncoding.copy(); - } else if (obj1.isName("StandardEncoding")) { - encoding = standardEncoding.copy(); - } - obj1.free(); - - // check embedded or external font file for base encoding - if ((type == fontType1 || type == fontType1C) && - (extFontFile || embFontID.num >= 0)) { - if (extFontFile) - buf = readExtFontFile(&len); - else - buf = readEmbFontFile(&len); - if (buf) { - if (type == fontType1) - fontFile = new Type1FontFile(buf, len); - else - fontFile = new Type1CFontFile(buf, len); - if (fontFile->getName()) { - if (embFontName) - delete embFontName; - embFontName = new GString(fontFile->getName()); + obj1.dictLookup("Descent", &obj2); + if (obj2.isNum()) { + t = 0.001 * obj2.getNum(); + // some broken font descriptors set ascent and descent to 0 + if (t != 0) { + descent = t; } - if (!encoding) - encoding = fontFile->getEncoding(gTrue); - delete fontFile; - gfree(buf); } - } - - // get default base encoding - if (!encoding) { - if (builtinFont) - encoding = builtinFont->encoding->copy(); - else if (type == fontTrueType) - encoding = macRomanEncoding.copy(); - else - encoding = standardEncoding.copy(); - } + obj2.free(); - // merge differences into encoding - fontDict->lookup("Encoding", &obj1); - if (obj1.isDict()) { - obj1.dictLookup("Differences", &obj2); - if (obj2.isArray()) { - code = 0; - for (i = 0; i < obj2.arrayGetLength(); ++i) { - obj2.arrayGet(i, &obj3); - if (obj3.isInt()) { - code = obj3.getInt(); - } else if (obj3.isName()) { - if (code < 256) - encoding->addChar(code, copyString(obj3.getName())); - ++code; - } else { - error(-1, "Wrong type in font encoding resource differences (%s)", - obj3.getTypeName()); + // font FontBBox + if (obj1.dictLookup("FontBBox", &obj2)->isArray()) { + for (i = 0; i < 4 && i < obj2.arrayGetLength(); ++i) { + if (obj2.arrayGet(i, &obj3)->isNum()) { + fontBBox[i] = 0.001 * obj3.getNum(); } obj3.free(); } } obj2.free(); + } obj1.free(); +} + +CharCodeToUnicode *GfxFont::readToUnicodeCMap(Dict *fontDict, int nBits) { + CharCodeToUnicode *ctu; + GString *buf; + Object obj1; + int c; - // get character widths - if (builtinFont) - makeWidths(fontDict, builtinFont->encoding, builtinFont->widths, - missingWidth); - else - makeWidths(fontDict, NULL, NULL, missingWidth); + if (!fontDict->lookup("ToUnicode", &obj1)->isStream()) { + obj1.free(); + return NULL; + } + buf = new GString(); + obj1.streamReset(); + while ((c = obj1.streamGetChar()) != EOF) { + buf->append(c); + } + obj1.streamClose(); + obj1.free(); + ctu = CharCodeToUnicode::parseCMap(buf, nBits); + delete buf; + return ctu; } void GfxFont::findExtFontFile() { - char **path; - FILE *f; - - for (path = fontPath; *path; ++path) { - extFontFile = appendToPath(new GString(*path), name->getCString()); - f = fopen(extFontFile->getCString(), "rb"); - if (!f) { - extFontFile->append(".pfb"); - f = fopen(extFontFile->getCString(), "rb"); - } - if (!f) { - extFontFile->del(extFontFile->getLength() - 4, 4); - extFontFile->append(".pfa"); - f = fopen(extFontFile->getCString(), "rb"); - } - if (f) { - fclose(f); - break; + if (name) { + if (type == fontType1) { + extFontFile = globalParams->findFontFile(name, ".pfa", ".pfb"); + } else if (type == fontTrueType) { + extFontFile = globalParams->findFontFile(name, ".ttf", NULL); } - delete extFontFile; - extFontFile = NULL; } } @@ -525,20 +310,21 @@ char *GfxFont::readExtFontFile(int *len) { char *buf; if (!(f = fopen(extFontFile->getCString(), "rb"))) { - error(-1, "Internal: external font file '%s' vanished", extFontFile); + error(-1, "External font file '%s' vanished", extFontFile->getCString()); return NULL; } fseek(f, 0, SEEK_END); *len = (int)ftell(f); fseek(f, 0, SEEK_SET); buf = (char *)gmalloc(*len); - if ((int)fread(buf, 1, *len, f) != *len) + if ((int)fread(buf, 1, *len, f) != *len) { error(-1, "Error reading external font file '%s'", extFontFile); + } fclose(f); return buf; } -char *GfxFont::readEmbFontFile(int *len) { +char *GfxFont::readEmbFontFile(XRef *xref, int *len) { char *buf; Object obj1, obj2; Stream *str; @@ -546,7 +332,7 @@ char *GfxFont::readEmbFontFile(int *len) { int size, i; obj1.initRef(embFontID.num, embFontID.gen); - obj1.fetch(&obj2); + obj1.fetch(xref, &obj2); if (!obj2.isStream()) { error(-1, "Embedded font file is not a stream"); obj2.free(); @@ -575,410 +361,883 @@ char *GfxFont::readEmbFontFile(int *len) { return buf; } -void GfxFont::makeWidths(Dict *fontDict, FontEncoding *builtinEncoding, - Gushort *builtinWidths, int missingWidth) { - Object obj1, obj2; - int firstChar, lastChar; +//------------------------------------------------------------------------ +// Gfx8BitFont +//------------------------------------------------------------------------ + +Gfx8BitFont::Gfx8BitFont(XRef *xref, char *tagA, Ref idA, GString *nameA, + GfxFontType typeA, Dict *fontDict): + GfxFont(tagA, idA, nameA) +{ + BuiltinFont *builtinFont; + char **baseEnc; + GBool baseEncFromFontFile; + char *buf; + int len; + FontFile *fontFile; int code, code2; char *charName; - Gushort *defWidths; - int index; - double mult; + GBool missing, hex; + Unicode toUnicode[256]; + double mul; + int firstChar, lastChar; + Gushort w; + Object obj1, obj2, obj3; + int n, i, a, b, m; - // initialize all widths - for (code = 0; code < 256; ++code) { - widths[code] = missingWidth * 0.001; - } + type = typeA; + ctu = NULL; - // use widths from built-in font - if (builtinEncoding) { - code2 = 0; // to make gcc happy - for (code = 0; code < 256; ++code) { - if ((charName = encoding->getCharName(code)) && - (code2 = builtinEncoding->getCharCode(charName)) >= 0) - widths[code] = builtinWidths[code2] * 0.001; + // Acrobat 4.0 and earlier substituted Base14-compatible fonts + // without providing Widths and a FontDescriptor, so we munge the + // names into the proper Base14 names. (This table is from + // implementation note 44 in the PDF 1.4 spec.) + if (name) { + a = 0; + b = sizeof(stdFontMap) / sizeof(StdFontMapEntry); + // invariant: stdFontMap[a].altName <= name < stdFontMap[b].altName + while (b - a > 1) { + m = (a + b) / 2; + if (name->cmp(stdFontMap[m].altName) >= 0) { + a = m; + } else { + b = m; + } + } + if (!name->cmp(stdFontMap[a].altName)) { + delete name; + name = new GString(stdFontMap[a].properName); } + } - // get widths from font dict + // is it a built-in font? + builtinFont = NULL; + if (name) { + for (i = 0; i < nBuiltinFonts; ++i) { + if (!name->cmp(builtinFonts[i].name)) { + builtinFont = &builtinFonts[i]; + break; + } + } + } + + // default ascent/descent values + if (builtinFont) { + ascent = 0.001 * builtinFont->ascent; + descent = 0.001 * builtinFont->descent; + fontBBox[0] = 0.001 * builtinFont->bbox[0]; + fontBBox[1] = 0.001 * builtinFont->bbox[1]; + fontBBox[2] = 0.001 * builtinFont->bbox[2]; + fontBBox[3] = 0.001 * builtinFont->bbox[3]; } else { - fontDict->lookup("FirstChar", &obj1); - firstChar = obj1.isInt() ? obj1.getInt() : 0; - obj1.free(); - fontDict->lookup("LastChar", &obj1); - lastChar = obj1.isInt() ? obj1.getInt() : 255; - obj1.free(); - if (type == fontType3) - mult = fontMat[0]; - else - mult = 0.001; - fontDict->lookup("Widths", &obj1); - if (obj1.isArray()) { - for (code = firstChar; code <= lastChar; ++code) { - obj1.arrayGet(code - firstChar, &obj2); - if (obj2.isNum()) - widths[code] = obj2.getNum() * mult; + ascent = 0.95; + descent = -0.35; + fontBBox[0] = fontBBox[1] = fontBBox[2] = fontBBox[3] = 0; + } + + // get info from font descriptor + readFontDescriptor(xref, fontDict); + + // look for an external font file + findExtFontFile(); + + // get font matrix + fontMat[0] = fontMat[3] = 1; + fontMat[1] = fontMat[2] = fontMat[4] = fontMat[5] = 0; + if (fontDict->lookup("FontMatrix", &obj1)->isArray()) { + for (i = 0; i < 6 && i < obj1.arrayGetLength(); ++i) { + if (obj1.arrayGet(i, &obj2)->isNum()) { + fontMat[i] = obj2.getNum(); + } + obj2.free(); + } + } + obj1.free(); + + // get Type 3 bounding box, font definition, and resources + if (type == fontType3) { + if (fontDict->lookup("FontBBox", &obj1)->isArray()) { + for (i = 0; i < 4 && i < obj1.arrayGetLength(); ++i) { + if (obj1.arrayGet(i, &obj2)->isNum()) { + fontBBox[i] = obj2.getNum(); + } obj2.free(); } + } + obj1.free(); + if (!fontDict->lookup("CharProcs", &charProcs)->isDict()) { + error(-1, "Missing or invalid CharProcs dictionary in Type 3 font"); + charProcs.free(); + } + if (!fontDict->lookup("Resources", &resources)->isDict()) { + resources.free(); + } + } + + //----- build the font encoding ----- + + // Encodings start with a base encoding, which can come from + // (in order of priority): + // 1. FontDict.Encoding or FontDict.Encoding.BaseEncoding + // - MacRoman / MacExpert / WinAnsi / Standard + // 2. embedded or external font file + // 3. default: + // - builtin --> builtin encoding + // - TrueType --> MacRomanEncoding + // - others --> StandardEncoding + // and then add a list of differences (if any) from + // FontDict.Encoding.Differences. + + // check FontDict for base encoding + hasEncoding = gFalse; + baseEnc = NULL; + baseEncFromFontFile = gFalse; + fontDict->lookup("Encoding", &obj1); + if (obj1.isDict()) { + obj1.dictLookup("BaseEncoding", &obj2); + if (obj2.isName("MacRomanEncoding")) { + hasEncoding = gTrue; + baseEnc = macRomanEncoding; + } else if (obj2.isName("MacExpertEncoding")) { + hasEncoding = gTrue; + baseEnc = macExpertEncoding; + } else if (obj2.isName("WinAnsiEncoding")) { + hasEncoding = gTrue; + baseEnc = winAnsiEncoding; + } else if (obj2.isName("StandardEncoding")) { + hasEncoding = gTrue; + baseEnc = standardEncoding; + } + obj2.free(); + } else if (obj1.isName("MacRomanEncoding")) { + hasEncoding = gTrue; + baseEnc = macRomanEncoding; + } else if (obj1.isName("MacExpertEncoding")) { + hasEncoding = gTrue; + baseEnc = macExpertEncoding; + } else if (obj1.isName("WinAnsiEncoding")) { + hasEncoding = gTrue; + baseEnc = winAnsiEncoding; + } else if (obj1.isName("StandardEncoding")) { + hasEncoding = gTrue; + baseEnc = standardEncoding; + } + + // check embedded or external font file for base encoding + // (only for Type 1 fonts - trying to get an encoding out of a + // TrueType font is a losing proposition) + fontFile = NULL; + buf = NULL; + if ((type == fontType1 || type == fontType1C) && + (extFontFile || embFontID.num >= 0)) { + if (extFontFile) { + buf = readExtFontFile(&len); + } else { + buf = readEmbFontFile(xref, &len); + } + if (buf) { + if (type == fontType1C && !strncmp(buf, "%!", 2)) { + // various tools (including Adobe's) occasionally embed Type 1 + // fonts but label them Type 1C + type = fontType1; + } + if (type == fontType1) { + fontFile = new Type1FontFile(buf, len); + } else { + fontFile = new Type1CFontFile(buf, len); + } + if (fontFile->getName()) { + if (embFontName) { + delete embFontName; + } + embFontName = new GString(fontFile->getName()); + } + if (!baseEnc) { + baseEnc = fontFile->getEncoding(); + baseEncFromFontFile = gTrue; + } + gfree(buf); + } + } + + // get default base encoding + if (!baseEnc) { + if (builtinFont) { + baseEnc = builtinFont->defaultBaseEnc; + } else if (type == fontTrueType) { + baseEnc = macRomanEncoding; } else { + baseEnc = standardEncoding; + } + } - // couldn't find widths -- use defaults -#if 0 //~ - //~ certain PDF generators apparently don't include widths - //~ for Arial and TimesNewRoman -- and this error message - //~ is a nuisance - error(-1, "No character widths resource for non-builtin font"); -#endif - if (isFixedWidth()) - index = 0; - else if (isSerif()) - index = 8; - else - index = 4; - if (isBold()) - index += 2; - if (isItalic()) - index += 1; - defWidths = defCharWidths[index]; - code2 = 0; // to make gcc happy + // copy the base encoding + for (i = 0; i < 256; ++i) { + enc[i] = baseEnc[i]; + if ((encFree[i] = baseEncFromFontFile) && enc[i]) { + enc[i] = copyString(baseEnc[i]); + } + } + + // merge differences into encoding + if (obj1.isDict()) { + obj1.dictLookup("Differences", &obj2); + if (obj2.isArray()) { + hasEncoding = gTrue; + code = 0; + for (i = 0; i < obj2.arrayGetLength(); ++i) { + obj2.arrayGet(i, &obj3); + if (obj3.isInt()) { + code = obj3.getInt(); + } else if (obj3.isName()) { + if (code < 256) { + if (encFree[code]) { + gfree(enc[code]); + } + enc[code] = copyString(obj3.getName()); + encFree[code] = gTrue; + } + ++code; + } else { + error(-1, "Wrong type in font encoding resource differences (%s)", + obj3.getTypeName()); + } + obj3.free(); + } + } + obj2.free(); + } + obj1.free(); + if (fontFile) { + delete fontFile; + } + + //----- build the mapping to Unicode ----- + + // look for a ToUnicode CMap + if (!(ctu = readToUnicodeCMap(fontDict, 8))) { + + // no ToUnicode CMap, so use the char names + + // pass 1: use the name-to-Unicode mapping table + missing = hex = gFalse; + for (code = 0; code < 256; ++code) { + if ((charName = enc[code])) { + if (!(toUnicode[code] = globalParams->mapNameToUnicode(charName)) && + strcmp(charName, ".notdef")) { + // if it wasn't in the name-to-Unicode table, check for a + // name that looks like 'Axx' or 'xx', where 'A' is any letter + // and 'xx' is two hex digits + if ((strlen(charName) == 3 && + isalpha(charName[0]) && + isxdigit(charName[1]) && isxdigit(charName[2]) && + ((charName[1] >= 'a' && charName[1] <= 'f') || + (charName[1] >= 'A' && charName[1] <= 'F') || + (charName[2] >= 'a' && charName[2] <= 'f') || + (charName[2] >= 'A' && charName[2] <= 'F'))) || + (strlen(charName) == 2 && + isxdigit(charName[0]) && isxdigit(charName[1]) && + ((charName[0] >= 'a' && charName[0] <= 'f') || + (charName[0] >= 'A' && charName[0] <= 'F') || + (charName[1] >= 'a' && charName[1] <= 'f') || + (charName[1] >= 'A' && charName[1] <= 'F')))) { + hex = gTrue; + } + missing = gTrue; + } + } else { + toUnicode[code] = 0; + } + } + + // pass 2: try to fill in the missing chars, looking for names of + // the form 'Axx', 'xx', 'Ann', 'ABnn', or 'nn', where 'A' and 'B' + // are any letters, 'xx' is two hex digits, and 'nn' is 2-4 + // decimal digits + if (missing && globalParams->getMapNumericCharNames()) { for (code = 0; code < 256; ++code) { - if ((charName = encoding->getCharName(code)) && - (code2 = standardEncoding.getCharCode(charName)) >= 0) - widths[code] = defWidths[code2] * 0.001; + if ((charName = enc[code]) && !toUnicode[code] && + strcmp(charName, ".notdef")) { + n = strlen(charName); + code2 = -1; + if (hex && n == 3 && isalpha(charName[0]) && + isxdigit(charName[1]) && isxdigit(charName[2])) { + sscanf(charName+1, "%x", &code2); + } else if (hex && n == 2 && + isxdigit(charName[0]) && isxdigit(charName[1])) { + sscanf(charName, "%x", &code2); + } else if (!hex && n >= 2 && n <= 4 && + isdigit(charName[0]) && isdigit(charName[1])) { + code2 = atoi(charName); + } else if (n >= 3 && n <= 5 && + isdigit(charName[1]) && isdigit(charName[2])) { + code2 = atoi(charName+1); + } else if (n >= 4 && n <= 6 && + isdigit(charName[2]) && isdigit(charName[3])) { + code2 = atoi(charName+2); + } + if (code2 >= 0 && code2 <= 0xff) { + toUnicode[code] = (Unicode)code2; + } + } } } - obj1.free(); + + ctu = CharCodeToUnicode::make8BitToUnicode(toUnicode); + } + + //----- get the character widths ----- + + // initialize all widths + for (code = 0; code < 256; ++code) { + widths[code] = missingWidth * 0.001; + } + + // use widths from font dict, if present + fontDict->lookup("FirstChar", &obj1); + firstChar = obj1.isInt() ? obj1.getInt() : 0; + obj1.free(); + fontDict->lookup("LastChar", &obj1); + lastChar = obj1.isInt() ? obj1.getInt() : 255; + obj1.free(); + mul = (type == fontType3) ? fontMat[0] : 0.001; + fontDict->lookup("Widths", &obj1); + if (obj1.isArray()) { + flags |= fontFixedWidth; + for (code = firstChar; code <= lastChar; ++code) { + obj1.arrayGet(code - firstChar, &obj2); + if (obj2.isNum()) { + widths[code] = obj2.getNum() * mul; + if (widths[code] != widths[firstChar]) { + flags &= ~fontFixedWidth; + } + } + obj2.free(); + } + + // use widths from built-in font + } else if (builtinFont) { + // this is a kludge for broken PDF files that encode char 32 + // as .notdef + if (builtinFont->widths->getWidth("space", &w)) { + widths[32] = 0.001 * w; + } + for (code = 0; code < 256; ++code) { + if (enc[code] && builtinFont->widths->getWidth(enc[code], &w)) { + widths[code] = 0.001 * w; + } + } + + // couldn't find widths -- use defaults + } else { + // this is technically an error -- the Widths entry is required + // for all but the Base-14 fonts -- but certain PDF generators + // apparently don't include widths for Arial and TimesNewRoman + if (isFixedWidth()) { + i = 0; + } else if (isSerif()) { + i = 8; + } else { + i = 4; + } + if (isBold()) { + i += 2; + } + if (isItalic()) { + i += 1; + } + builtinFont = builtinFontSubst[i]; + // this is a kludge for broken PDF files that encode char 32 + // as .notdef + if (builtinFont->widths->getWidth("space", &w)) { + widths[32] = 0.001 * w; + } + for (code = 0; code < 256; ++code) { + if (enc[code] && builtinFont->widths->getWidth(enc[code], &w)) { + widths[code] = 0.001 * w; + } + } + } + obj1.free(); + + ok = gTrue; +} + +Gfx8BitFont::~Gfx8BitFont() { + int i; + + for (i = 0; i < 256; ++i) { + if (encFree[i] && enc[i]) { + gfree(enc[i]); + } + } + ctu->decRefCnt(); + if (charProcs.isDict()) { + charProcs.free(); + } + if (resources.isDict()) { + resources.free(); } } -void GfxFont::getType0EncAndWidths(Dict *fontDict) { - Object obj1, obj2, obj3, obj4, obj5, obj6, obj7, obj8; - int excepsSize; - int i, j, k, n; +int Gfx8BitFont::getNextChar(char *s, int len, CharCode *code, + Unicode *u, int uSize, int *uLen, + double *dx, double *dy, double *ox, double *oy) { + CharCode c; - widths16.exceps = NULL; - widths16.excepsV = NULL; + *code = c = (CharCode)(*s & 0xff); + *uLen = ctu->mapToUnicode(c, u, uSize); + *dx = widths[c]; + *dy = *ox = *oy = 0; + return 1; +} - // get the CIDFont - fontDict->lookup("DescendantFonts", &obj1); - if (!obj1.isArray() || obj1.arrayGetLength() != 1) { - error(-1, "Bad DescendantFonts entry for Type 0 font"); +CharCodeToUnicode *Gfx8BitFont::getToUnicode() { + ctu->incRefCnt(); + return ctu; +} + +Dict *Gfx8BitFont::getCharProcs() { + return charProcs.isDict() ? charProcs.getDict() : (Dict *)NULL; +} + +Object *Gfx8BitFont::getCharProc(int code, Object *proc) { + if (charProcs.isDict()) { + charProcs.dictLookup(enc[code], proc); + } else { + proc->initNull(); + } + return proc; +} + +Dict *Gfx8BitFont::getResources() { + return resources.isDict() ? resources.getDict() : (Dict *)NULL; +} + +//------------------------------------------------------------------------ +// GfxCIDFont +//------------------------------------------------------------------------ + +static int cmpWidthExcep(const void *w1, const void *w2) { + return ((GfxFontCIDWidthExcep *)w1)->first - + ((GfxFontCIDWidthExcep *)w2)->first; +} + +static int cmpWidthExcepV(const void *w1, const void *w2) { + return ((GfxFontCIDWidthExcepV *)w1)->first - + ((GfxFontCIDWidthExcepV *)w2)->first; +} + +GfxCIDFont::GfxCIDFont(XRef *xref, char *tagA, Ref idA, GString *nameA, + Dict *fontDict): + GfxFont(tagA, idA, nameA) +{ + Dict *desFontDict; + GString *collection, *cMapName; + Object desFontDictObj; + Object obj1, obj2, obj3, obj4, obj5, obj6; + int c1, c2; + int excepsSize, i, j, k; + + ascent = 0.95; + descent = -0.35; + fontBBox[0] = fontBBox[1] = fontBBox[2] = fontBBox[3] = 0; + cMap = NULL; + ctu = NULL; + widths.defWidth = 1.0; + widths.defHeight = -1.0; + widths.defVY = 0.880; + widths.exceps = NULL; + widths.nExceps = 0; + widths.excepsV = NULL; + widths.nExcepsV = 0; + cidToGID = NULL; + cidToGIDLen = 0; + + // get the descendant font + if (!fontDict->lookup("DescendantFonts", &obj1)->isArray()) { + error(-1, "Missing DescendantFonts entry in Type 0 font"); + obj1.free(); goto err1; } - obj1.arrayGet(0, &obj2); - if (!obj2.isDict()) { - error(-1, "Bad descendant font of Type 0 font"); - goto err2; + if (!obj1.arrayGet(0, &desFontDictObj)->isDict()) { + error(-1, "Bad descendant font in Type 0 font"); + goto err3; } + obj1.free(); + desFontDict = desFontDictObj.getDict(); - // get font info - obj2.dictLookup("CIDSystemInfo", &obj3); - if (!obj3.isDict()) { - error(-1, "Bad CIDSystemInfo in Type 0 font descendant"); + // font type + if (!desFontDict->lookup("Subtype", &obj1)) { + error(-1, "Missing Subtype entry in Type 0 descendant font"); goto err3; } - obj3.dictLookup("Registry", &obj4); - obj3.dictLookup("Ordering", &obj5); - if (obj4.isString() && obj5.isString()) { - if (obj4.getString()->cmp("Adobe") == 0 && - obj5.getString()->cmp("Japan1") == 0) { -#if JAPANESE_SUPPORT - is16 = gTrue; - enc16.charSet = font16AdobeJapan12; -#else - error(-1, "Xpdf was compiled without Japanese font support"); - goto err4; -#endif - } else if (obj4.getString()->cmp("Adobe") == 0 && - obj5.getString()->cmp("GB1") == 0) { -#if CHINESE_GB_SUPPORT - is16 = gTrue; - enc16.charSet = font16AdobeGB12; -#else - error(-1, "Xpdf was compiled without Chinese GB font support"); - goto err4; -#endif - } else if (obj4.getString()->cmp("Adobe") == 0 && - obj5.getString()->cmp("CNS1") == 0) { -#if CHINESE_CNS_SUPPORT - is16 = gTrue; - enc16.charSet = font16AdobeCNS13; -#else - error(-1, "Xpdf was compiled without Chinese CNS font support"); - goto err4; -#endif - } else { - error(-1, "Uknown Type 0 character set: %s-%s", - obj4.getString()->getCString(), obj5.getString()->getCString()); - goto err4; - } + if (obj1.isName("CIDFontType0")) { + type = fontCIDType0; + } else if (obj1.isName("CIDFontType2")) { + type = fontCIDType2; } else { - error(-1, "Unknown Type 0 character set"); + error(-1, "Unknown Type 0 descendant font type '%s'", + obj1.isName() ? obj1.getName() : "???"); + goto err3; + } + obj1.free(); + + // get info from font descriptor + readFontDescriptor(xref, desFontDict); + + // look for an external font file + findExtFontFile(); + + //----- encoding info ----- + + // char collection + if (!desFontDict->lookup("CIDSystemInfo", &obj1)->isDict()) { + error(-1, "Missing CIDSystemInfo dictionary in Type 0 descendant font"); + goto err3; + } + obj1.dictLookup("Registry", &obj2); + obj1.dictLookup("Ordering", &obj3); + if (!obj2.isString() || !obj3.isString()) { + error(-1, "Invalid CIDSystemInfo dictionary in Type 0 descendant font"); goto err4; } - obj5.free(); - obj4.free(); + collection = obj2.getString()->copy()->append('-')->append(obj3.getString()); obj3.free(); + obj2.free(); + obj1.free(); - // get default char width - obj2.dictLookup("DW", &obj3); - if (obj3.isInt()) - widths16.defWidth = obj3.getInt() * 0.001; - else - widths16.defWidth = 1.0; - obj3.free(); + // look for a ToUnicode CMap + if (!(ctu = readToUnicodeCMap(fontDict, 16))) { + + // the "Adobe-Identity" and "Adobe-UCS" collections don't have + // cidToUnicode files + if (collection->cmp("Adobe-Identity") && + collection->cmp("Adobe-UCS")) { - // get default char metrics for vertical font - obj2.dictLookup("DW2", &obj3); - widths16.defVY = 0.880; - widths16.defHeight = -1; - if (obj3.isArray() && obj3.arrayGetLength() == 2) { - obj3.arrayGet(0, &obj4); - if (obj4.isInt()) { - widths16.defVY = obj4.getInt() * 0.001; + // look for a user-supplied .cidToUnicode file + if (!(ctu = globalParams->getCIDToUnicode(collection))) { + error(-1, "Unknown character collection '%s'", + collection->getCString()); + delete collection; + goto err2; + } } - obj4.free(); - obj3.arrayGet(1, &obj4); - if (obj4.isInt()) { - widths16.defHeight = obj4.getInt() * 0.001; + } + + // encoding (i.e., CMap) + //~ need to handle a CMap stream here + //~ also need to deal with the UseCMap entry in the stream dict + if (!fontDict->lookup("Encoding", &obj1)->isName()) { + error(-1, "Missing or invalid Encoding entry in Type 0 font"); + delete collection; + goto err3; + } + cMapName = new GString(obj1.getName()); + obj1.free(); + if (!(cMap = globalParams->getCMap(collection, cMapName))) { + error(-1, "Unknown CMap '%s' for character collection '%s'", + cMapName->getCString(), collection->getCString()); + delete collection; + delete cMapName; + goto err2; + } + delete collection; + delete cMapName; + + // CIDToGIDMap (for embedded TrueType fonts) + if (type == fontCIDType2) { + fontDict->lookup("CIDToGIDMap", &obj1); + if (obj1.isStream()) { + cidToGIDLen = 0; + i = 64; + cidToGID = (Gushort *)gmalloc(i * sizeof(Gushort)); + obj1.streamReset(); + while ((c1 = obj1.streamGetChar()) != EOF && + (c2 = obj1.streamGetChar()) != EOF) { + if (cidToGIDLen == i) { + i *= 2; + cidToGID = (Gushort *)grealloc(cidToGID, i * sizeof(Gushort)); + } + cidToGID[cidToGIDLen++] = (Gushort)((c1 << 8) + c2); + } + } else if (!obj1.isName("Identity") && !obj1.isNull()) { + error(-1, "Invalid CIDToGIDMap entry in CID font"); } - obj4.free(); + obj1.free(); } - obj3.free(); - // get char width exceptions - widths16.exceps = NULL; - widths16.numExceps = 0; - obj2.dictLookup("W", &obj3); - if (obj3.isArray()) { + //----- character metrics ----- + + // default char width + if (desFontDict->lookup("DW", &obj1)->isInt()) { + widths.defWidth = obj1.getInt() * 0.001; + } + obj1.free(); + + // char width exceptions + if (desFontDict->lookup("W", &obj1)->isArray()) { excepsSize = 0; - k = 0; i = 0; - while (i+1 < obj3.arrayGetLength()) { - obj3.arrayGet(i, &obj4); - obj3.arrayGet(i+1, &obj5); - if (obj4.isInt() && obj5.isInt()) { - obj3.arrayGet(i+2, &obj6); - if (!obj6.isNum()) { + while (i + 1 < obj1.arrayGetLength()) { + obj1.arrayGet(i, &obj2); + obj1.arrayGet(i + 1, &obj3); + if (obj2.isInt() && obj3.isInt() && i + 2 < obj1.arrayGetLength()) { + if (obj1.arrayGet(i + 2, &obj4)->isNum()) { + if (widths.nExceps == excepsSize) { + excepsSize += 16; + widths.exceps = (GfxFontCIDWidthExcep *) + grealloc(widths.exceps, + excepsSize * sizeof(GfxFontCIDWidthExcep)); + } + widths.exceps[widths.nExceps].first = obj2.getInt(); + widths.exceps[widths.nExceps].last = obj3.getInt(); + widths.exceps[widths.nExceps].width = obj4.getNum() * 0.001; + ++widths.nExceps; + } else { error(-1, "Bad widths array in Type 0 font"); - obj6.free(); - obj5.free(); - obj4.free(); - break; - } - if (k == excepsSize) { - excepsSize += 16; - widths16.exceps = (GfxFontWidthExcep *) - grealloc(widths16.exceps, - excepsSize * sizeof(GfxFontWidthExcep)); } - widths16.exceps[k].first = obj4.getInt(); - widths16.exceps[k].last = obj5.getInt(); - widths16.exceps[k].width = obj6.getNum() * 0.001; - obj6.free(); - ++k; + obj4.free(); i += 3; - } else if (obj4.isInt() && obj5.isArray()) { - if (k + obj5.arrayGetLength() >= excepsSize) { - excepsSize = (k + obj5.arrayGetLength() + 15) & ~15; - widths16.exceps = (GfxFontWidthExcep *) - grealloc(widths16.exceps, - excepsSize * sizeof(GfxFontWidthExcep)); + } else if (obj2.isInt() && obj3.isArray()) { + if (widths.nExceps + obj3.arrayGetLength() > excepsSize) { + excepsSize = (widths.nExceps + obj3.arrayGetLength() + 15) & ~15; + widths.exceps = (GfxFontCIDWidthExcep *) + grealloc(widths.exceps, + excepsSize * sizeof(GfxFontCIDWidthExcep)); } - n = obj4.getInt(); - for (j = 0; j < obj5.arrayGetLength(); ++j) { - obj5.arrayGet(j, &obj6); - if (!obj6.isNum()) { + j = obj2.getInt(); + for (k = 0; k < obj3.arrayGetLength(); ++k) { + if (obj3.arrayGet(k, &obj4)->isNum()) { + widths.exceps[widths.nExceps].first = j; + widths.exceps[widths.nExceps].last = j; + widths.exceps[widths.nExceps].width = obj4.getNum() * 0.001; + ++j; + ++widths.nExceps; + } else { error(-1, "Bad widths array in Type 0 font"); - obj6.free(); - break; } - widths16.exceps[k].first = widths16.exceps[k].last = n++; - widths16.exceps[k].width = obj6.getNum() * 0.001; - obj6.free(); - ++k; + obj4.free(); } i += 2; } else { error(-1, "Bad widths array in Type 0 font"); - obj6.free(); - obj5.free(); - obj4.free(); - break; + ++i; } - obj5.free(); - obj4.free(); + obj3.free(); + obj2.free(); } - widths16.numExceps = k; - if (k > 0) - qsort(widths16.exceps, k, sizeof(GfxFontWidthExcep), &cmpWidthExcep); + qsort(widths.exceps, widths.nExceps, sizeof(GfxFontCIDWidthExcep), + &cmpWidthExcep); } - obj3.free(); + obj1.free(); - // get char metric exceptions for vertical font - widths16.excepsV = NULL; - widths16.numExcepsV = 0; - obj2.dictLookup("W2", &obj3); - if (obj3.isArray()) { + // default metrics for vertical font + if (desFontDict->lookup("DW2", &obj1)->isArray() && + obj1.arrayGetLength() == 2) { + if (obj1.arrayGet(0, &obj2)->isNum()) { + widths.defVY = obj1.getNum() * 0.001; + } + obj2.free(); + if (obj1.arrayGet(1, &obj2)->isNum()) { + widths.defHeight = obj1.getNum() * 0.001; + } + obj2.free(); + } + obj1.free(); + + // char metric exceptions for vertical font + if (desFontDict->lookup("W2", &obj1)->isArray()) { excepsSize = 0; - k = 0; i = 0; - while (i+1 < obj3.arrayGetLength()) { - obj3.arrayGet(i, &obj4); - obj3.arrayGet(i+1, &obj5); - if (obj4.isInt() && obj5.isInt()) { - obj3.arrayGet(i+2, &obj6); - obj3.arrayGet(i+3, &obj7); - obj3.arrayGet(i+4, &obj8); - if (!obj6.isNum() || !obj7.isNum() || !obj8.isNum()) { + while (i + 1 < obj1.arrayGetLength()) { + obj1.arrayGet(0, &obj2); + obj2.arrayGet(0, &obj3); + if (obj2.isInt() && obj3.isInt() && i + 4 < obj1.arrayGetLength()) { + if (obj1.arrayGet(i + 2, &obj4)->isNum() && + obj1.arrayGet(i + 3, &obj5)->isNum() && + obj1.arrayGet(i + 4, &obj6)->isNum()) { + if (widths.nExcepsV == excepsSize) { + excepsSize += 16; + widths.excepsV = (GfxFontCIDWidthExcepV *) + grealloc(widths.excepsV, + excepsSize * sizeof(GfxFontCIDWidthExcepV)); + } + widths.excepsV[widths.nExcepsV].first = obj2.getInt(); + widths.excepsV[widths.nExcepsV].last = obj3.getInt(); + widths.excepsV[widths.nExcepsV].height = obj4.getNum() * 0.001; + widths.excepsV[widths.nExcepsV].vx = obj5.getNum() * 0.001; + widths.excepsV[widths.nExcepsV].vy = obj6.getNum() * 0.001; + ++widths.nExcepsV; + } else { error(-1, "Bad widths (W2) array in Type 0 font"); - obj8.free(); - obj7.free(); - obj6.free(); - obj5.free(); - obj4.free(); - break; - } - if (k == excepsSize) { - excepsSize += 16; - widths16.excepsV = (GfxFontWidthExcepV *) - grealloc(widths16.excepsV, - excepsSize * sizeof(GfxFontWidthExcepV)); } - widths16.excepsV[k].first = obj4.getInt(); - widths16.excepsV[k].last = obj5.getInt(); - widths16.excepsV[k].height = obj6.getNum() * 0.001; - widths16.excepsV[k].vx = obj7.getNum() * 0.001; - widths16.excepsV[k].vy = obj8.getNum() * 0.001; - obj8.free(); - obj7.free(); obj6.free(); - ++k; + obj5.free(); + obj4.free(); i += 5; - } else if (obj4.isInt() && obj5.isArray()) { - if (k + obj5.arrayGetLength() / 3 >= excepsSize) { - excepsSize = (k + obj5.arrayGetLength() / 3 + 15) & ~15; - widths16.excepsV = (GfxFontWidthExcepV *) - grealloc(widths16.excepsV, - excepsSize * sizeof(GfxFontWidthExcepV)); + } else if (obj2.isInt() && obj3.isArray()) { + if (widths.nExcepsV + obj3.arrayGetLength() / 3 > excepsSize) { + excepsSize = + (widths.nExcepsV + obj3.arrayGetLength() / 3 + 15) & ~15; + widths.excepsV = (GfxFontCIDWidthExcepV *) + grealloc(widths.excepsV, + excepsSize * sizeof(GfxFontCIDWidthExcepV)); } - n = obj4.getInt(); - for (j = 0; j < obj5.arrayGetLength(); j += 3) { - obj5.arrayGet(j, &obj6); - obj5.arrayGet(j+1, &obj7); - obj5.arrayGet(j+1, &obj8); - if (!obj6.isNum() || !obj7.isNum() || !obj8.isNum()) { + j = obj2.getInt(); + for (k = 0; k < obj3.arrayGetLength(); ++k) { + if (obj3.arrayGet(k, &obj4)->isNum() && + obj3.arrayGet(k, &obj5)->isNum() && + obj3.arrayGet(k, &obj6)->isNum()) { + widths.excepsV[widths.nExceps].first = j; + widths.excepsV[widths.nExceps].last = j; + widths.excepsV[widths.nExceps].height = obj4.getNum() * 0.001; + widths.excepsV[widths.nExceps].vx = obj5.getNum() * 0.001; + widths.excepsV[widths.nExceps].vy = obj6.getNum() * 0.001; + ++j; + ++widths.nExcepsV; + } else { error(-1, "Bad widths (W2) array in Type 0 font"); - obj6.free(); - break; } - widths16.excepsV[k].first = widths16.exceps[k].last = n++; - widths16.excepsV[k].height = obj6.getNum() * 0.001; - widths16.excepsV[k].vx = obj7.getNum() * 0.001; - widths16.excepsV[k].vy = obj8.getNum() * 0.001; - obj8.free(); - obj7.free(); obj6.free(); - ++k; + obj5.free(); + obj4.free(); } i += 2; } else { - error(-1, "Bad widths array in Type 0 font"); - obj5.free(); - obj4.free(); - break; + error(-1, "Bad widths (W2) array in Type 0 font"); + ++i; } - obj5.free(); - obj4.free(); - } - widths16.numExcepsV = k; - if (k > 0) { - qsort(widths16.excepsV, k, sizeof(GfxFontWidthExcepV), &cmpWidthExcepV); + obj3.free(); + obj2.free(); } + qsort(widths.excepsV, widths.nExcepsV, sizeof(GfxFontCIDWidthExcepV), + &cmpWidthExcepV); } - obj3.free(); + obj1.free(); + desFontDictObj.free(); + ok = gTrue; + return; + + err4: + obj3.free(); obj2.free(); + err3: obj1.free(); + err2: + desFontDictObj.free(); + err1:; +} - // get encoding (CMap) - fontDict->lookup("Encoding", &obj1); - if (!obj1.isName()) { - error(-1, "Bad encoding for Type 0 font"); - goto err1; +GfxCIDFont::~GfxCIDFont() { + if (cMap) { + cMap->decRefCnt(); } -#if JAPANESE_SUPPORT - if (enc16.charSet == font16AdobeJapan12) { - for (i = 0; gfxJapan12Tab[i].name; ++i) { - if (!strcmp(obj1.getName(), gfxJapan12Tab[i].name)) - break; - } - if (!gfxJapan12Tab[i].name) { - error(-1, "Unknown encoding '%s' for Adobe-Japan1-2 font", - obj1.getName()); - goto err1; - } - enc16.enc = gfxJapan12Tab[i].enc; + if (ctu) { + ctu->decRefCnt(); } -#endif -#if CHINESE_GB_SUPPORT - if (enc16.charSet == font16AdobeGB12) { - for (i = 0; gfxGB12Tab[i].name; ++i) { - if (!strcmp(obj1.getName(), gfxGB12Tab[i].name)) - break; - } - if (!gfxGB12Tab[i].name) { - error(-1, "Unknown encoding '%s' for Adobe-GB1-2 font", - obj1.getName()); - goto err1; - } - enc16.enc = gfxGB12Tab[i].enc; + gfree(widths.exceps); + gfree(widths.excepsV); + if (cidToGID) { + gfree(cidToGID); } -#endif -#if CHINESE_CNS_SUPPORT - if (enc16.charSet == font16AdobeCNS13) { - for (i = 0; gfxCNS13Tab[i].name; ++i) { - if (!strcmp(obj1.getName(), gfxCNS13Tab[i].name)) - break; +} + +int GfxCIDFont::getNextChar(char *s, int len, CharCode *code, + Unicode *u, int uSize, int *uLen, + double *dx, double *dy, double *ox, double *oy) { + CID cid; + double w, h, vx, vy; + int n, a, b, m; + + if (!cMap) { + *code = 0; + *uLen = 0; + *dx = *dy = 0; + return 1; + } + + *code = (CharCode)(cid = cMap->getCID(s, len, &n)); + if (ctu) { + *uLen = ctu->mapToUnicode(cid, u, uSize); + } else { + *uLen = 0; + } + + // horizontal + if (cMap->getWMode() == 0) { + w = widths.defWidth; + h = vx = vy = 0; + if (widths.nExceps > 0 && cid >= widths.exceps[0].first) { + a = 0; + b = widths.nExceps; + // invariant: widths.exceps[a].first <= cid < widths.exceps[b].first + while (b - a > 1) { + m = (a + b) / 2; + if (widths.exceps[m].first <= cid) { + a = m; + } else { + b = m; + } + } + if (cid <= widths.exceps[a].last) { + w = widths.exceps[a].width; + } } - if (!gfxCNS13Tab[i].name) { - error(-1, "Unknown encoding '%s' for Adobe-CNS1-3 font", - obj1.getName()); - goto err1; + + // vertical + } else { + w = 0; + h = widths.defHeight; + vx = widths.defWidth / 2; + vy = widths.defVY; + if (widths.nExcepsV > 0 && cid >= widths.excepsV[0].first) { + a = 0; + b = widths.nExcepsV; + // invariant: widths.excepsV[a].first <= cid < widths.excepsV[b].first + while (b - a > 1) { + m = (a + b) / 2; + if (widths.excepsV[m].last <= cid) { + a = m; + } else { + b = m; + } + } + if (cid <= widths.excepsV[a].last) { + h = widths.excepsV[a].height; + vx = widths.excepsV[a].vx; + vy = widths.excepsV[a].vy; + } } - enc16.enc = gfxCNS13Tab[i].enc; } -#endif - obj1.free(); - return; + *dx = w; + *dy = h; + *ox = vx; + *oy = vy; - err4: - obj5.free(); - obj4.free(); - err3: - obj3.free(); - err2: - obj2.free(); - err1: - obj1.free(); - //~ fix this --> add 16-bit font support to FontFile - encoding = new FontEncoding(); - makeWidths(fontDict, NULL, NULL, 0); + return n; +} + +int GfxCIDFont::getWMode() { + return cMap ? cMap->getWMode() : 0; } -static int CDECL cmpWidthExcep(const void *w1, const void *w2) { - return ((GfxFontWidthExcep *)w1)->first - ((GfxFontWidthExcep *)w2)->first; +CharCodeToUnicode *GfxCIDFont::getToUnicode() { + ctu->incRefCnt(); + return ctu; } -static int CDECL cmpWidthExcepV(const void *w1, const void *w2) { - return ((GfxFontWidthExcepV *)w1)->first - ((GfxFontWidthExcepV *)w2)->first; +GString *GfxCIDFont::getCollection() { + return cMap ? cMap->getCollection() : (GString *)NULL; } //------------------------------------------------------------------------ // GfxFontDict //------------------------------------------------------------------------ -GfxFontDict::GfxFontDict(Dict *fontDict) { +GfxFontDict::GfxFontDict(XRef *xref, Dict *fontDict) { int i; Object obj1, obj2; @@ -986,12 +1245,16 @@ GfxFontDict::GfxFontDict(Dict *fontDict) { fonts = (GfxFont **)gmalloc(numFonts * sizeof(GfxFont *)); for (i = 0; i < numFonts; ++i) { fontDict->getValNF(i, &obj1); - obj1.fetch(&obj2); + obj1.fetch(xref, &obj2); if (obj1.isRef() && obj2.isDict()) { - fonts[i] = new GfxFont(fontDict->getKey(i), obj1.getRef(), - obj2.getDict()); + fonts[i] = GfxFont::makeFont(xref, fontDict->getKey(i), + obj1.getRef(), obj2.getDict()); + if (fonts[i] && !fonts[i]->isOk()) { + delete fonts[i]; + fonts[i] = NULL; + } } else { - error(-1, "font resource is not a dictionary"); + error(-1, "font resource is not a dictionary reference"); fonts[i] = NULL; } obj1.free(); @@ -1002,8 +1265,11 @@ GfxFontDict::GfxFontDict(Dict *fontDict) { GfxFontDict::~GfxFontDict() { int i; - for (i = 0; i < numFonts; ++i) - delete fonts[i]; + for (i = 0; i < numFonts; ++i) { + if (fonts[i]) { + delete fonts[i]; + } + } gfree(fonts); } @@ -1011,8 +1277,9 @@ GfxFont *GfxFontDict::lookup(char *tag) { int i; for (i = 0; i < numFonts; ++i) { - if (fonts[i]->matches(tag)) + if (fonts[i] && fonts[i]->matches(tag)) { return fonts[i]; + } } return NULL; } diff --git a/pdf/xpdf/GfxFont.h b/pdf/xpdf/GfxFont.h index 0435d90e..c67ac29a 100644 --- a/pdf/xpdf/GfxFont.h +++ b/pdf/xpdf/GfxFont.h @@ -2,7 +2,7 @@ // // GfxFont.h // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -16,63 +16,56 @@ #include "gtypes.h" #include "GString.h" #include "Object.h" -#include "FontEncoding.h" +#include "CharTypes.h" class Dict; -struct BuiltinFont; +class CMap; +class CharCodeToUnicode; +struct GfxFontCIDWidths; //------------------------------------------------------------------------ -// GfxFontCharSet16 +// GfxFontType //------------------------------------------------------------------------ -enum GfxFontCharSet16 { - font16AdobeJapan12, // Adobe-Japan1-2 - font16AdobeGB12, // Adobe-GB1-2 (Chinese) - font16AdobeCNS13 // Adobe-CNS1-3 (Chinese) -}; - -//------------------------------------------------------------------------ -// GfxFontEncoding16 -//------------------------------------------------------------------------ - -struct GfxFontEncoding16 { - int wMode; // writing mode (0=horizontal, 1=vertical) - Guchar codeLen[256]; // length of codes, in bytes, indexed by - // first byte of code - Gushort map1[256]; // one-byte code mapping: - // map1[code] --> 16-bit char selector - Gushort *map2; // two-byte code mapping - // map2[2*i] --> first code in range - // map2[2*i+1] --> 16-bit char selector - // for map2[2*i] - int map2Len; // length of map2 array (divided by 2) +enum GfxFontType { + //----- Gfx8BitFont + fontUnknownType, + fontType1, + fontType1C, + fontType3, + fontTrueType, + //----- GfxCIDFont + fontCIDType0, + fontCIDType0C, + fontCIDType2 }; //------------------------------------------------------------------------ -// GfxFontWidths16 +// GfxFontCIDWidths //------------------------------------------------------------------------ -struct GfxFontWidthExcep { - int first; // this record applies to - int last; // chars .. +struct GfxFontCIDWidthExcep { + CID first; // this record applies to + CID last; // CIDs .. double width; // char width }; -struct GfxFontWidthExcepV { - int first; // this record applies to - int last; // chars .. +struct GfxFontCIDWidthExcepV { + CID first; // this record applies to + CID last; // CIDs .. double height; // char height double vx, vy; // origin position }; -struct GfxFontWidths16 { +struct GfxFontCIDWidths { double defWidth; // default char width double defHeight; // default char height double defVY; // default origin position - GfxFontWidthExcep *exceps; // exceptions - int numExceps; // number of valid entries in exceps - GfxFontWidthExcepV *excepsV; // exceptions for vertical font - int numExcepsV; // number of valid entries in excepsV + GfxFontCIDWidthExcep *exceps; // exceptions + int nExceps; // number of valid entries in exceps + GfxFontCIDWidthExcepV * // exceptions for vertical font + excepsV; + int nExcepsV; // number of valid entries in excepsV }; //------------------------------------------------------------------------ @@ -85,41 +78,33 @@ struct GfxFontWidths16 { #define fontItalic (1 << 6) #define fontBold (1 << 18) -enum GfxFontType { - fontUnknownType, - fontType1, - fontType1C, - fontType3, - fontTrueType, - fontType0 -}; - class GfxFont { public: - // Constructor. - GfxFont(char *tag1, Ref id1, Dict *fontDict); + // Build a GfxFont object. + static GfxFont *makeFont(XRef *xref, char *tagA, Ref idA, Dict *fontDict); - // Destructor. - ~GfxFont(); + GfxFont(char *tagA, Ref idA, GString *nameA); + + virtual ~GfxFont(); + + GBool isOk() { return ok; } // Get font tag. GString *getTag() { return tag; } // Get font dictionary ID. - Ref getID() { return id; } + Ref *getID() { return &id; } // Does this font match the tag? - GBool matches(char *tag1) { return !tag->cmp(tag1); } + GBool matches(char *tagA) { return !tag->cmp(tagA); } // Get base font name. GString *getName() { return name; } // Get font type. GfxFontType getType() { return type; } - - // Does this font use 16-bit characters? - GBool is16Bit() { return is16; } + virtual GBool isCIDFont() { return gFalse; } // Get embedded font ID, i.e., a ref for the font file stream. // Returns false if there is no embedded font. @@ -128,8 +113,7 @@ public: // Get the PostScript font name for the embedded font. Returns // NULL if there is no embedded font. - char *getEmbeddedFontName() - { return embFontName ? embFontName->getCString() : (char *)NULL; } + GString *getEmbeddedFontName() { return embFontName; } // Get the name of the external font file. Returns NULL if there // is no external font file. @@ -142,73 +126,147 @@ public: GBool isItalic() { return flags & fontItalic; } GBool isBold() { return flags & fontBold; } - // Get width of a character or string. - double getWidth(Guchar c) { return widths[c]; } - double getWidth(GString *s); + // Return the font matrix. + double *getFontMatrix() { return fontMat; } + + // Return the font bounding box. + double *getFontBBox() { return fontBBox; } + + // Return the ascent and descent values. + double getAscent() { return ascent; } + double getDescent() { return descent; } + + // Return the writing mode (0=horizontal, 1=vertical). + virtual int getWMode() { return 0; } + + // Read an external or embedded font file into a buffer. + char *readExtFontFile(int *len); + char *readEmbFontFile(XRef *xref, int *len); + + // Get the next char from a string of bytes, returning the + // char , its Unicode mapping , its displacement vector + // (, ), and its origin offset vector (, ). + // is the number of entries available in , and is set to + // the number actually used. Returns the number of bytes used by + // the char code. + virtual int getNextChar(char *s, int len, CharCode *code, + Unicode *u, int uSize, int *uLen, + double *dx, double *dy, double *ox, double *oy) = 0; + +protected: + + void readFontDescriptor(XRef *xref, Dict *fontDict); + CharCodeToUnicode *readToUnicodeCMap(Dict *fontDict, int nBits); + void findExtFontFile(); + + GString *tag; // PDF font tag + Ref id; // reference (used as unique ID) + GString *name; // font name + GfxFontType type; // type of font + int flags; // font descriptor flags + GString *embFontName; // name of embedded font + Ref embFontID; // ref to embedded font file stream + GString *extFontFile; // external font file name + double fontMat[6]; // font matrix (Type 3 only) + double fontBBox[4]; // font bounding box (Type 3 only) + double missingWidth; // "default" width + double ascent; // max height above baseline + double descent; // max depth below baseline + GBool ok; +}; + +//------------------------------------------------------------------------ +// Gfx8BitFont +//------------------------------------------------------------------------ - // Get character metrics for 16-bit font. - double getWidth16(int c); - double getHeight16(int c); - double getOriginX16(int c); - double getOriginY16(int c); +class Gfx8BitFont: public GfxFont { +public: + + Gfx8BitFont(XRef *xref, char *tagA, Ref idA, GString *nameA, + GfxFontType typeA, Dict *fontDict); + + virtual ~Gfx8BitFont(); + + virtual int getNextChar(char *s, int len, CharCode *code, + Unicode *u, int uSize, int *uLen, + double *dx, double *dy, double *ox, double *oy); // Return the encoding. - FontEncoding *getEncoding() { return encoding; } + char **getEncoding() { return enc; } + + // Return the Unicode map. + CharCodeToUnicode *getToUnicode(); // Return the character name associated with . - char *getCharName(int code) { return encoding->getCharName(code); } + char *getCharName(int code) { return enc[code]; } - // Return the code associated with . - int getCharCode(char *charName) { return encoding->getCharCode(charName); } + // Returns true if the PDF font specified an encoding. + GBool getHasEncoding() { return hasEncoding; } + + // Get width of a character or string. + double getWidth(Guchar c) { return widths[c]; } + + // Return the Type 3 CharProc dictionary, or NULL if none. + Dict *getCharProcs(); // Return the Type 3 CharProc for the character associated with . Object *getCharProc(int code, Object *proc); - // Return the 16-bit character set and encoding. - GfxFontCharSet16 getCharSet16() { return enc16.charSet; } - GfxFontEncoding16 *getEncoding16() { return enc16.enc; } + // Return the Type 3 Resources dictionary, or NULL if none. + Dict *getResources(); - // Get the writing mode (0=horizontal, 1=vertical). - int getWMode16() { return enc16.enc->wMode; } +private: - // Return the font matrix. - double *getFontMatrix() { return fontMat; } + char *enc[256]; // char code --> char name + char encFree[256]; // boolean for each char name: if set, + // the string is malloc'ed + CharCodeToUnicode *ctu; // char code --> Unicode + GBool hasEncoding; + double widths[256]; // character widths + Object charProcs; // Type 3 CharProcs dictionary + Object resources; // Type 3 Resources dictionary +}; - // Read an external or embedded font file into a buffer. - char *readExtFontFile(int *len); - char *readEmbFontFile(int *len); +//------------------------------------------------------------------------ +// GfxCIDFont +//------------------------------------------------------------------------ -private: +class GfxCIDFont: public GfxFont { +public: - void getEncAndWidths(Dict *fontDict, BuiltinFont *builtinFont, - int missingWidth); - void findExtFontFile(); - void makeWidths(Dict *fontDict, FontEncoding *builtinEncoding, - Gushort *builtinWidths, int missingWidth); - void getType0EncAndWidths(Dict *fontDict); + GfxCIDFont(XRef *xref, char *tagA, Ref idA, GString *nameA, + Dict *fontDict); - GString *tag; // PDF font tag - Ref id; // reference (used as unique ID) - GString *name; // font name - int flags; // font descriptor flags - GfxFontType type; // type of font - GBool is16; // set if font uses 16-bit chars - GString *embFontName; // name of embedded font - Ref embFontID; // ref to embedded font file stream - GString *extFontFile; // external font file name - Object charProcs; // Type3 CharProcs dictionary - double fontMat[6]; // font matrix - union { - FontEncoding *encoding; // 8-bit font encoding - struct { - GfxFontCharSet16 charSet; // 16-bit character set - GfxFontEncoding16 *enc; // 16-bit encoding (CMap) - } enc16; - }; - union { - double widths[256]; // width of each char for 8-bit font - GfxFontWidths16 widths16; // char widths for 16-bit font - }; + virtual ~GfxCIDFont(); + + virtual GBool isCIDFont() { return gTrue; } + + virtual int getNextChar(char *s, int len, CharCode *code, + Unicode *u, int uSize, int *uLen, + double *dx, double *dy, double *ox, double *oy); + + // Return the writing mode (0=horizontal, 1=vertical). + virtual int getWMode(); + + // Return the Unicode map. + CharCodeToUnicode *getToUnicode(); + + // Get the collection name (-). + GString *getCollection(); + + // Return the CID-to-GID mapping table. These should only be called + // if type is fontCIDType2. + Gushort *getCIDToGID() { return cidToGID; } + int getCIDToGIDLen() { return cidToGIDLen; } + +private: + + CMap *cMap; // char code --> CID + CharCodeToUnicode *ctu; // CID --> Unicode + GfxFontCIDWidths widths; // character widths + Gushort *cidToGID; // CID --> GID mapping (for embedded + // TrueType fonts) + int cidToGIDLen; }; //------------------------------------------------------------------------ @@ -219,7 +277,7 @@ class GfxFontDict { public: // Build the font dictionary, given the PDF font dictionary. - GfxFontDict(Dict *fontDict); + GfxFontDict(XRef *xref, Dict *fontDict); // Destructor. ~GfxFontDict(); diff --git a/pdf/xpdf/GfxState.cc b/pdf/xpdf/GfxState.cc index 1abf9a56..1668c246 100644 --- a/pdf/xpdf/GfxState.cc +++ b/pdf/xpdf/GfxState.cc @@ -2,7 +2,7 @@ // // GfxState.cc // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -10,6 +10,7 @@ #pragma implementation #endif +#include #include #include #include // for memcpy() @@ -17,6 +18,7 @@ #include "Error.h" #include "Object.h" #include "Array.h" +#include "Page.h" #include "GfxState.h" //------------------------------------------------------------------------ @@ -261,9 +263,9 @@ GfxCalRGBColorSpace::GfxCalRGBColorSpace() { whiteX = whiteY = whiteZ = 1; blackX = blackY = blackZ = 0; gammaR = gammaG = gammaB = 1; - m[0] = 1; m[1] = 0; m[2] = 0; - m[3] = 0; m[4] = 1; m[5] = 0; - m[6] = 0; m[7] = 0; m[8] = 1; + mat[0] = 1; mat[1] = 0; mat[2] = 0; + mat[3] = 0; mat[4] = 1; mat[5] = 0; + mat[6] = 0; mat[7] = 0; mat[8] = 1; } GfxCalRGBColorSpace::~GfxCalRGBColorSpace() { @@ -284,7 +286,7 @@ GfxColorSpace *GfxCalRGBColorSpace::copy() { cs->gammaG = gammaG; cs->gammaB = gammaB; for (i = 0; i < 9; ++i) { - cs->m[i] = m[i]; + cs->mat[i] = mat[i]; } return cs; } @@ -344,7 +346,7 @@ GfxColorSpace *GfxCalRGBColorSpace::parse(Array *arr) { obj2.arrayGetLength() == 9) { for (i = 0; i < 9; ++i) { obj2.arrayGet(i, &obj3); - cs->m[i] = obj3.getNum(); + cs->mat[i] = obj3.getNum(); obj3.free(); } } @@ -406,9 +408,22 @@ void GfxDeviceCMYKColorSpace::getGray(GfxColor *color, double *gray) { } void GfxDeviceCMYKColorSpace::getRGB(GfxColor *color, GfxRGB *rgb) { - rgb->r = clip01(1 - (color->c[0] + color->c[3])); - rgb->g = clip01(1 - (color->c[1] + color->c[3])); - rgb->b = clip01(1 - (color->c[2] + color->c[3])); + double c, m, y, aw, ac, am, ay, ar, ag, ab; + + c = clip01(color->c[0] + color->c[3]); + m = clip01(color->c[1] + color->c[3]); + y = clip01(color->c[2] + color->c[3]); + aw = (1-c) * (1-m) * (1-y); + ac = c * (1-m) * (1-y); + am = (1-c) * m * (1-y); + ay = (1-c) * (1-m) * y; + ar = (1-c) * m * y; + ag = c * (1-m) * y; + ab = c * m * (1-y); + rgb->r = clip01(aw + 0.9137*am + 0.9961*ay + 0.9882*ar); + rgb->g = clip01(aw + 0.6196*ac + ay + 0.5176*ag); + rgb->b = clip01(aw + 0.7804*ac + 0.5412*am + 0.0667*ar + 0.2118*ag + + 0.4863*ab); } void GfxDeviceCMYKColorSpace::getCMYK(GfxColor *color, GfxCMYK *cmyk) { @@ -609,11 +624,11 @@ void GfxLabColorSpace::getDefaultRanges(double *decodeLow, double *decodeRange, // GfxICCBasedColorSpace //------------------------------------------------------------------------ -GfxICCBasedColorSpace::GfxICCBasedColorSpace(int nComps, GfxColorSpace *alt, - Ref *iccProfileStream) { - this->nComps = nComps; - this->alt = alt; - this->iccProfileStream = *iccProfileStream; +GfxICCBasedColorSpace::GfxICCBasedColorSpace(int nCompsA, GfxColorSpace *altA, + Ref *iccProfileStreamA) { + nComps = nCompsA; + alt = altA; + iccProfileStream = *iccProfileStreamA; rangeMin[0] = rangeMin[1] = rangeMin[2] = rangeMin[3] = 0; rangeMax[0] = rangeMax[1] = rangeMax[2] = rangeMax[3] = 1; } @@ -636,19 +651,19 @@ GfxColorSpace *GfxICCBasedColorSpace::copy() { GfxColorSpace *GfxICCBasedColorSpace::parse(Array *arr) { GfxICCBasedColorSpace *cs; - Ref iccProfileStream; - int nComps; - GfxColorSpace *alt; + Ref iccProfileStreamA; + int nCompsA; + GfxColorSpace *altA; Dict *dict; Object obj1, obj2, obj3; int i; arr->getNF(1, &obj1); if (obj1.isRef()) { - iccProfileStream = obj1.getRef(); + iccProfileStreamA = obj1.getRef(); } else { - iccProfileStream.num = 0; - iccProfileStream.gen = 0; + iccProfileStreamA.num = 0; + iccProfileStreamA.gen = 0; } obj1.free(); arr->get(1, &obj1); @@ -664,19 +679,19 @@ GfxColorSpace *GfxICCBasedColorSpace::parse(Array *arr) { obj1.free(); return NULL; } - nComps = obj2.getInt(); + nCompsA = obj2.getInt(); obj2.free(); if (dict->lookup("Alternate", &obj2)->isNull() || - !(alt = GfxColorSpace::parse(&obj2))) { - switch (nComps) { + !(altA = GfxColorSpace::parse(&obj2))) { + switch (nCompsA) { case 1: - alt = new GfxDeviceGrayColorSpace(); + altA = new GfxDeviceGrayColorSpace(); break; case 3: - alt = new GfxDeviceRGBColorSpace(); + altA = new GfxDeviceRGBColorSpace(); break; case 4: - alt = new GfxDeviceCMYKColorSpace(); + altA = new GfxDeviceCMYKColorSpace(); break; default: error(-1, "Bad ICCBased color space - invalid N"); @@ -686,10 +701,10 @@ GfxColorSpace *GfxICCBasedColorSpace::parse(Array *arr) { } } obj2.free(); - cs = new GfxICCBasedColorSpace(nComps, alt, &iccProfileStream); + cs = new GfxICCBasedColorSpace(nCompsA, altA, &iccProfileStreamA); if (dict->lookup("Range", &obj2)->isArray() && - obj2.arrayGetLength() == 2 * nComps) { - for (i = 0; i < nComps; ++i) { + obj2.arrayGetLength() == 2 * nCompsA) { + for (i = 0; i < nCompsA; ++i) { obj2.arrayGet(2*i, &obj3); cs->rangeMin[i] = obj3.getNum(); obj3.free(); @@ -730,12 +745,12 @@ void GfxICCBasedColorSpace::getDefaultRanges(double *decodeLow, // GfxIndexedColorSpace //------------------------------------------------------------------------ -GfxIndexedColorSpace::GfxIndexedColorSpace(GfxColorSpace *base, - int indexHigh) { - this->base = base; - this->indexHigh = indexHigh; - this->lookup = (Guchar *)gmalloc((indexHigh + 1) * base->getNComps() * - sizeof(Guchar)); +GfxIndexedColorSpace::GfxIndexedColorSpace(GfxColorSpace *baseA, + int indexHighA) { + base = baseA; + indexHigh = indexHighA; + lookup = (Guchar *)gmalloc((indexHigh + 1) * base->getNComps() * + sizeof(Guchar)); } GfxIndexedColorSpace::~GfxIndexedColorSpace() { @@ -754,8 +769,8 @@ GfxColorSpace *GfxIndexedColorSpace::copy() { GfxColorSpace *GfxIndexedColorSpace::parse(Array *arr) { GfxIndexedColorSpace *cs; - GfxColorSpace *base; - int indexHigh; + GfxColorSpace *baseA; + int indexHighA; Object obj1; int x; char *s; @@ -766,7 +781,7 @@ GfxColorSpace *GfxIndexedColorSpace::parse(Array *arr) { goto err1; } arr->get(1, &obj1); - if (!(base = GfxColorSpace::parse(&obj1))) { + if (!(baseA = GfxColorSpace::parse(&obj1))) { error(-1, "Bad Indexed color space (base color space)"); goto err2; } @@ -775,14 +790,14 @@ GfxColorSpace *GfxIndexedColorSpace::parse(Array *arr) { error(-1, "Bad Indexed color space (hival)"); goto err2; } - indexHigh = obj1.getInt(); + indexHighA = obj1.getInt(); obj1.free(); - cs = new GfxIndexedColorSpace(base, indexHigh); + cs = new GfxIndexedColorSpace(baseA, indexHighA); arr->get(3, &obj1); - n = base->getNComps(); + n = baseA->getNComps(); if (obj1.isStream()) { obj1.streamReset(); - for (i = 0; i <= indexHigh; ++i) { + for (i = 0; i <= indexHighA; ++i) { for (j = 0; j < n; ++j) { if ((x = obj1.streamGetChar()) == EOF) { error(-1, "Bad Indexed color space (lookup table stream too short)"); @@ -793,12 +808,12 @@ GfxColorSpace *GfxIndexedColorSpace::parse(Array *arr) { } obj1.streamClose(); } else if (obj1.isString()) { - if (obj1.getString()->getLength() < (indexHigh + 1) * n) { + if (obj1.getString()->getLength() < (indexHighA + 1) * n) { error(-1, "Bad Indexed color space (lookup table string too short)"); goto err3; } s = obj1.getString()->getCString(); - for (i = 0; i <= indexHigh; ++i) { + for (i = 0; i <= indexHighA; ++i) { for (j = 0; j < n; ++j) { cs->lookup[i*n + j] = (Guchar)*s++; } @@ -868,12 +883,12 @@ void GfxIndexedColorSpace::getDefaultRanges(double *decodeLow, // GfxSeparationColorSpace //------------------------------------------------------------------------ -GfxSeparationColorSpace::GfxSeparationColorSpace(GString *name, - GfxColorSpace *alt, - Function *func) { - this->name = name; - this->alt = alt; - this->func = func; +GfxSeparationColorSpace::GfxSeparationColorSpace(GString *nameA, + GfxColorSpace *altA, + Function *funcA) { + name = nameA; + alt = altA; + func = funcA; } GfxSeparationColorSpace::~GfxSeparationColorSpace() { @@ -889,9 +904,9 @@ GfxColorSpace *GfxSeparationColorSpace::copy() { //~ handle the 'All' and 'None' colorants GfxColorSpace *GfxSeparationColorSpace::parse(Array *arr) { GfxSeparationColorSpace *cs; - GString *name; - GfxColorSpace *alt; - Function *func; + GString *nameA; + GfxColorSpace *altA; + Function *funcA; Object obj1; if (arr->getLength() != 4) { @@ -902,27 +917,26 @@ GfxColorSpace *GfxSeparationColorSpace::parse(Array *arr) { error(-1, "Bad Separation color space (name)"); goto err2; } - name = new GString(obj1.getName()); + nameA = new GString(obj1.getName()); obj1.free(); arr->get(2, &obj1); - if (!(alt = GfxColorSpace::parse(&obj1))) { + if (!(altA = GfxColorSpace::parse(&obj1))) { error(-1, "Bad Separation color space (alternate color space)"); goto err3; } obj1.free(); - func = Function::parse(arr->get(3, &obj1)); - obj1.free(); - if (!func->isOk()) { + arr->get(3, &obj1); + if (!(funcA = Function::parse(&obj1))) { goto err4; } - cs = new GfxSeparationColorSpace(name, alt, func); + obj1.free(); + cs = new GfxSeparationColorSpace(nameA, altA, funcA); return cs; err4: - delete func; - delete alt; + delete altA; err3: - delete name; + delete nameA; err2: obj1.free(); err1: @@ -954,12 +968,12 @@ void GfxSeparationColorSpace::getCMYK(GfxColor *color, GfxCMYK *cmyk) { // GfxDeviceNColorSpace //------------------------------------------------------------------------ -GfxDeviceNColorSpace::GfxDeviceNColorSpace(int nComps, - GfxColorSpace *alt, - Function *func) { - this->nComps = nComps; - this->alt = alt; - this->func = func; +GfxDeviceNColorSpace::GfxDeviceNColorSpace(int nCompsA, + GfxColorSpace *altA, + Function *funcA) { + nComps = nCompsA; + alt = altA; + func = funcA; } GfxDeviceNColorSpace::~GfxDeviceNColorSpace() { @@ -986,10 +1000,10 @@ GfxColorSpace *GfxDeviceNColorSpace::copy() { //~ handle the 'None' colorant GfxColorSpace *GfxDeviceNColorSpace::parse(Array *arr) { GfxDeviceNColorSpace *cs; - int nComps; - GString *names[gfxColorMaxComps]; - GfxColorSpace *alt; - Function *func; + int nCompsA; + GString *namesA[gfxColorMaxComps]; + GfxColorSpace *altA; + Function *funcA; Object obj1, obj2; int i; @@ -1001,40 +1015,39 @@ GfxColorSpace *GfxDeviceNColorSpace::parse(Array *arr) { error(-1, "Bad DeviceN color space (names)"); goto err2; } - nComps = obj1.arrayGetLength(); - for (i = 0; i < nComps; ++i) { + nCompsA = obj1.arrayGetLength(); + for (i = 0; i < nCompsA; ++i) { if (!obj1.arrayGet(i, &obj2)->isName()) { error(-1, "Bad DeviceN color space (names)"); obj2.free(); goto err2; } - names[i] = new GString(obj2.getName()); + namesA[i] = new GString(obj2.getName()); obj2.free(); } obj1.free(); arr->get(2, &obj1); - if (!(alt = GfxColorSpace::parse(&obj1))) { + if (!(altA = GfxColorSpace::parse(&obj1))) { error(-1, "Bad DeviceN color space (alternate color space)"); goto err3; } obj1.free(); - func = Function::parse(arr->get(3, &obj1)); - obj1.free(); - if (!func->isOk()) { + arr->get(3, &obj1); + if (!(funcA = Function::parse(&obj1))) { goto err4; } - cs = new GfxDeviceNColorSpace(nComps, alt, func); - for (i = 0; i < nComps; ++i) { - cs->names[i] = names[i]; + obj1.free(); + cs = new GfxDeviceNColorSpace(nCompsA, altA, funcA); + for (i = 0; i < nCompsA; ++i) { + cs->names[i] = namesA[i]; } return cs; err4: - delete func; - delete alt; + delete altA; err3: - for (i = 0; i < nComps; ++i) { - delete names[i]; + for (i = 0; i < nCompsA; ++i) { + delete namesA[i]; } err2: obj1.free(); @@ -1067,8 +1080,8 @@ void GfxDeviceNColorSpace::getCMYK(GfxColor *color, GfxCMYK *cmyk) { // GfxPatternColorSpace //------------------------------------------------------------------------ -GfxPatternColorSpace::GfxPatternColorSpace(GfxColorSpace *under) { - this->under = under; +GfxPatternColorSpace::GfxPatternColorSpace(GfxColorSpace *underA) { + under = underA; } GfxPatternColorSpace::~GfxPatternColorSpace() { @@ -1084,24 +1097,24 @@ GfxColorSpace *GfxPatternColorSpace::copy() { GfxColorSpace *GfxPatternColorSpace::parse(Array *arr) { GfxPatternColorSpace *cs; - GfxColorSpace *under; + GfxColorSpace *underA; Object obj1; if (arr->getLength() != 1 && arr->getLength() != 2) { error(-1, "Bad Pattern color space"); return NULL; } - under = NULL; + underA = NULL; if (arr->getLength() == 2) { arr->get(1, &obj1); - if (!(under = GfxColorSpace::parse(&obj1))) { + if (!(underA = GfxColorSpace::parse(&obj1))) { error(-1, "Bad Pattern color space (underlying color space)"); obj1.free(); return NULL; } obj1.free(); } - cs = new GfxPatternColorSpace(under); + cs = new GfxPatternColorSpace(underA); return cs; } @@ -1122,8 +1135,8 @@ void GfxPatternColorSpace::getCMYK(GfxColor *color, GfxCMYK *cmyk) { // Pattern //------------------------------------------------------------------------ -GfxPattern::GfxPattern(int type) { - this->type = type; +GfxPattern::GfxPattern(int typeA) { + type = typeA; } GfxPattern::~GfxPattern() { @@ -1237,480 +1250,375 @@ GfxTilingPattern::GfxTilingPattern(GfxTilingPattern *pat): } //------------------------------------------------------------------------ -// Function +// GfxShading //------------------------------------------------------------------------ -Function::Function() { -} - -Function::~Function() { +GfxShading::GfxShading() { } -Function *Function::parse(Object *funcObj) { - Function *func; - Dict *dict; - int funcType; - Object obj1; - - if (funcObj->isStream()) { - dict = funcObj->streamGetDict(); - } else if (funcObj->isDict()) { - dict = funcObj->getDict(); - } else { - error(-1, "Expected function dictionary or stream"); - return NULL; - } - - if (!dict->lookup("FunctionType", &obj1)->isInt()) { - error(-1, "Function type is missing or wrong type"); - obj1.free(); - return NULL; - } - funcType = obj1.getInt(); - obj1.free(); - - if (funcType == 0) { - func = new SampledFunction(funcObj, dict); - } else if (funcType == 2) { - func = new ExponentialFunction(funcObj, dict); - } else { - error(-1, "Unimplemented function type"); - return NULL; - } - if (!func->isOk()) { - delete func; - return NULL; - } - - return func; +GfxShading::~GfxShading() { + delete colorSpace; } -GBool Function::init(Dict *dict) { +GfxShading *GfxShading::parse(Object *obj) { + GfxShading *shading; + int typeA; + GfxColorSpace *colorSpaceA; + GfxColor backgroundA; + GBool hasBackgroundA; + double xMinA, yMinA, xMaxA, yMaxA; + GBool hasBBoxA; Object obj1, obj2; int i; - //----- Domain - if (!dict->lookup("Domain", &obj1)->isArray()) { - error(-1, "Function is missing domain"); - goto err2; - } - m = obj1.arrayGetLength() / 2; - if (m > funcMaxInputs) { - error(-1, "Functions with more than %d inputs are unsupported", - funcMaxInputs); - goto err2; - } - for (i = 0; i < m; ++i) { - obj1.arrayGet(2*i, &obj2); - if (!obj2.isNum()) { - error(-1, "Illegal value in function domain array"); + shading = NULL; + if (obj->isDict()) { + + if (!obj->dictLookup("ShadingType", &obj1)->isInt()) { + error(-1, "Invalid ShadingType in shading dictionary"); + obj1.free(); goto err1; } - domain[i][0] = obj2.getNum(); - obj2.free(); - obj1.arrayGet(2*i+1, &obj2); - if (!obj2.isNum()) { - error(-1, "Illegal value in function domain array"); + typeA = obj1.getInt(); + obj1.free(); + + obj->dictLookup("ColorSpace", &obj1); + if (!(colorSpaceA = GfxColorSpace::parse(&obj1))) { + error(-1, "Bad color space in shading dictionary"); + obj1.free(); goto err1; } - domain[i][1] = obj2.getNum(); - obj2.free(); - } - obj1.free(); + obj1.free(); - //----- Range - hasRange = gFalse; - n = 0; - if (dict->lookup("Range", &obj1)->isArray()) { - hasRange = gTrue; - n = obj1.arrayGetLength() / 2; - if (n > funcMaxOutputs) { - error(-1, "Functions with more than %d outputs are unsupported", - funcMaxOutputs); - goto err2; + for (i = 0; i < gfxColorMaxComps; ++i) { + backgroundA.c[i] = 0; } - for (i = 0; i < n; ++i) { - obj1.arrayGet(2*i, &obj2); - if (!obj2.isNum()) { - error(-1, "Illegal value in function range array"); - goto err1; + hasBackgroundA = gFalse; + if (obj->dictLookup("Background", &obj1)->isArray()) { + if (obj1.arrayGetLength() == colorSpaceA->getNComps()) { + hasBackgroundA = gTrue; + for (i = 0; i < colorSpaceA->getNComps(); ++i) { + backgroundA.c[i] = obj1.arrayGet(i, &obj2)->getNum(); + obj2.free(); + } + } else { + error(-1, "Bad Background in shading dictionary"); } - range[i][0] = obj2.getNum(); - obj2.free(); - obj1.arrayGet(2*i+1, &obj2); - if (!obj2.isNum()) { - error(-1, "Illegal value in function range array"); - goto err1; + } + obj1.free(); + + xMinA = yMinA = xMaxA = yMaxA = 0; + hasBBoxA = gFalse; + if (obj->dictLookup("BBox", &obj1)->isArray()) { + if (obj1.arrayGetLength() == 4) { + hasBBoxA = gTrue; + xMinA = obj1.arrayGet(0, &obj2)->getNum(); + obj2.free(); + yMinA = obj1.arrayGet(1, &obj2)->getNum(); + obj2.free(); + xMaxA = obj1.arrayGet(2, &obj2)->getNum(); + obj2.free(); + yMaxA = obj1.arrayGet(3, &obj2)->getNum(); + obj2.free(); + } else { + error(-1, "Bad BBox in shading dictionary"); } - range[i][1] = obj2.getNum(); - obj2.free(); } obj1.free(); + + switch (typeA) { + case 2: + shading = GfxAxialShading::parse(obj->getDict()); + break; + case 3: + shading = GfxRadialShading::parse(obj->getDict()); + break; + default: + error(-1, "Unimplemented shading type %d", typeA); + goto err1; + } + + if (shading) { + shading->type = typeA; + shading->colorSpace = colorSpaceA; + shading->background = backgroundA; + shading->hasBackground = hasBackgroundA; + shading->xMin = xMinA; + shading->yMin = yMinA; + shading->xMax = xMaxA; + shading->yMax = yMaxA; + shading->hasBBox = hasBBoxA; + } else { + delete colorSpaceA; + } } - return gTrue; + return shading; err1: - obj2.free(); - err2: - obj1.free(); - return gFalse; + return NULL; } //------------------------------------------------------------------------ -// SampledFunction +// GfxAxialShading //------------------------------------------------------------------------ -SampledFunction::SampledFunction(Object *funcObj, Dict *dict) { - Stream *str; - int nSamples, sampleBits; - double sampleMul; - Object obj1, obj2; - Guint buf, bitMask; - int bits; - int s; +GfxAxialShading::GfxAxialShading(double x0A, double y0A, + double x1A, double y1A, + double t0A, double t1A, + Function **funcsA, int nFuncsA, + GBool extend0A, GBool extend1A) { int i; - samples = NULL; - ok = gFalse; - - //----- initialize the generic stuff - if (!init(dict)) { - goto err1; - } - if (!hasRange) { - error(-1, "Type 0 function is missing range"); - goto err1; + x0 = x0A; + y0 = y0A; + x1 = x1A; + y1 = y1A; + t0 = t0A; + t1 = t1A; + nFuncs = nFuncsA; + for (i = 0; i < nFuncs; ++i) { + funcs[i] = funcsA[i]; } + extend0 = extend0A; + extend1 = extend1A; +} - //----- get the stream - if (!funcObj->isStream()) { - error(-1, "Type 0 function isn't a stream"); - goto err1; - } - str = funcObj->getStream(); +GfxAxialShading::~GfxAxialShading() { + int i; - //----- Size - if (!dict->lookup("Size", &obj1)->isArray() || - obj1.arrayGetLength() != m) { - error(-1, "Function has missing or invalid size array"); - goto err2; + for (i = 0; i < nFuncs; ++i) { + delete funcs[i]; } - for (i = 0; i < m; ++i) { - obj1.arrayGet(i, &obj2); - if (!obj2.isInt()) { - error(-1, "Illegal value in function size array"); - goto err3; - } - sampleSize[i] = obj2.getInt(); +} + +GfxAxialShading *GfxAxialShading::parse(Dict *dict) { + double x0A, y0A, x1A, y1A; + double t0A, t1A; + Function *funcsA[gfxColorMaxComps]; + int nFuncsA; + GBool extend0A, extend1A; + Object obj1, obj2; + int i; + + x0A = y0A = x1A = y1A = 0; + if (dict->lookup("Coords", &obj1)->isArray() && + obj1.arrayGetLength() == 4) { + x0A = obj1.arrayGet(0, &obj2)->getNum(); + obj2.free(); + y0A = obj1.arrayGet(1, &obj2)->getNum(); + obj2.free(); + x1A = obj1.arrayGet(2, &obj2)->getNum(); obj2.free(); + y1A = obj1.arrayGet(3, &obj2)->getNum(); + obj2.free(); + } else { + error(-1, "Missing or invalid Coords in shading dictionary"); + goto err1; } obj1.free(); - //----- BitsPerSample - if (!dict->lookup("BitsPerSample", &obj1)->isInt()) { - error(-1, "Function has missing or invalid BitsPerSample"); - goto err2; + t0A = 0; + t1A = 1; + if (dict->lookup("Domain", &obj1)->isArray() && + obj1.arrayGetLength() == 2) { + t0A = obj1.arrayGet(0, &obj2)->getNum(); + obj2.free(); + t1A = obj1.arrayGet(1, &obj2)->getNum(); + obj2.free(); } - sampleBits = obj1.getInt(); - sampleMul = 1.0 / (double)((1 << sampleBits) - 1); obj1.free(); - //----- Encode - if (dict->lookup("Encode", &obj1)->isArray() && - obj1.arrayGetLength() == 2*m) { - for (i = 0; i < m; ++i) { - obj1.arrayGet(2*i, &obj2); - if (!obj2.isNum()) { - error(-1, "Illegal value in function encode array"); - goto err3; - } - encode[i][0] = obj2.getNum(); - obj2.free(); - obj1.arrayGet(2*i+1, &obj2); - if (!obj2.isNum()) { - error(-1, "Illegal value in function encode array"); - goto err3; + dict->lookup("Function", &obj1); + if (obj1.isArray()) { + nFuncsA = obj1.arrayGetLength(); + for (i = 0; i < nFuncsA; ++i) { + obj1.arrayGet(i, &obj2); + if (!(funcsA[i] = Function::parse(&obj2))) { + obj1.free(); + obj2.free(); + goto err1; } - encode[i][1] = obj2.getNum(); obj2.free(); } } else { - for (i = 0; i < m; ++i) { - encode[i][0] = 0; - encode[i][1] = sampleSize[i] - 1; + nFuncsA = 1; + if (!(funcsA[0] = Function::parse(&obj1))) { + obj1.free(); + goto err1; } } obj1.free(); - //----- Decode - if (dict->lookup("Decode", &obj1)->isArray() && - obj1.arrayGetLength() == 2*n) { - for (i = 0; i < n; ++i) { - obj1.arrayGet(2*i, &obj2); - if (!obj2.isNum()) { - error(-1, "Illegal value in function decode array"); - goto err3; - } - decode[i][0] = obj2.getNum(); - obj2.free(); - obj1.arrayGet(2*i+1, &obj2); - if (!obj2.isNum()) { - error(-1, "Illegal value in function decode array"); - goto err3; - } - decode[i][1] = obj2.getNum(); - obj2.free(); - } - } else { - for (i = 0; i < n; ++i) { - decode[i][0] = range[i][0]; - decode[i][1] = range[i][1]; - } + extend0A = extend1A = gFalse; + if (dict->lookup("Extend", &obj1)->isArray() && + obj1.arrayGetLength() == 2) { + extend0A = obj1.arrayGet(0, &obj2)->getBool(); + obj2.free(); + extend1A = obj1.arrayGet(1, &obj2)->getBool(); + obj2.free(); } obj1.free(); - //----- samples - nSamples = n; - for (i = 0; i < m; ++i) - nSamples *= sampleSize[i]; - samples = (double *)gmalloc(nSamples * sizeof(double)); - buf = 0; - bits = 0; - bitMask = (1 << sampleBits) - 1; - str->reset(); - for (i = 0; i < nSamples; ++i) { - if (sampleBits == 8) { - s = str->getChar(); - } else if (sampleBits == 16) { - s = str->getChar(); - s = (s << 8) + str->getChar(); - } else if (sampleBits == 32) { - s = str->getChar(); - s = (s << 8) + str->getChar(); - s = (s << 8) + str->getChar(); - s = (s << 8) + str->getChar(); - } else { - while (bits < sampleBits) { - buf = (buf << 8) | (str->getChar() & 0xff); - bits += 8; - } - s = (buf >> (bits - sampleBits)) & bitMask; - bits -= sampleBits; - } - samples[i] = (double)s * sampleMul; - } - str->close(); + return new GfxAxialShading(x0A, y0A, x1A, y1A, t0A, t1A, + funcsA, nFuncsA, extend0A, extend1A); - ok = gTrue; - return; - - err3: - obj2.free(); - err2: - obj1.free(); err1: - return; + return NULL; } -SampledFunction::~SampledFunction() { - if (samples) { - gfree(samples); +void GfxAxialShading::getColor(double t, GfxColor *color) { + int i; + + for (i = 0; i < nFuncs; ++i) { + funcs[i]->transform(&t, &color->c[i]); } } -SampledFunction::SampledFunction(SampledFunction *func) { - int nSamples, i; +//------------------------------------------------------------------------ +// GfxRadialShading +//------------------------------------------------------------------------ - memcpy(this, func, sizeof(SampledFunction)); +GfxRadialShading::GfxRadialShading(double x0A, double y0A, double r0A, + double x1A, double y1A, double r1A, + double t0A, double t1A, + Function **funcsA, int nFuncsA, + GBool extend0A, GBool extend1A) { + int i; - nSamples = n; - for (i = 0; i < m; ++i) { - nSamples *= sampleSize[i]; + x0 = x0A; + y0 = y0A; + r0 = r0A; + x1 = x1A; + y1 = y1A; + r1 = r1A; + t0 = t0A; + t1 = t1A; + nFuncs = nFuncsA; + for (i = 0; i < nFuncs; ++i) { + funcs[i] = funcsA[i]; } - samples = (double *)gmalloc(nSamples * sizeof(double)); - memcpy(samples, func->samples, nSamples * sizeof(double)); + extend0 = extend0A; + extend1 = extend1A; } -void SampledFunction::transform(double *in, double *out) { - double e[4]; - double s; - double x0, x1; - int e0, e1; - double efrac; +GfxRadialShading::~GfxRadialShading() { int i; - // map input values into sample array - for (i = 0; i < m; ++i) { - e[i] = ((in[i] - domain[i][0]) / (domain[i][1] - domain[i][0])) * - (encode[i][1] - encode[i][0]) + encode[i][0]; - if (e[i] < 0) { - e[i] = 0; - } else if (e[i] > sampleSize[i] - 1) { - e[i] = sampleSize[i] - 1; - } - } - - for (i = 0; i < n; ++i) { - - // m-linear interpolation - // (only m=1 is currently supported) - e0 = (int)floor(e[0]); - e1 = (int)ceil(e[0]); - efrac = e[0] - e0; - x0 = samples[e0 * n + i]; - x1 = samples[e1 * n + i]; - s = (1 - efrac) * x0 + efrac * x1; - - // map output values to range - out[i] = s * (decode[i][1] - decode[i][0]) + decode[i][0]; - if (out[i] < range[i][0]) { - out[i] = range[i][0]; - } else if (out[i] > range[i][1]) { - out[i] = range[i][1]; - } + for (i = 0; i < nFuncs; ++i) { + delete funcs[i]; } } -//------------------------------------------------------------------------ -// ExponentialFunction -//------------------------------------------------------------------------ - -ExponentialFunction::ExponentialFunction(Object *funcObj, Dict *dict) { +GfxRadialShading *GfxRadialShading::parse(Dict *dict) { + double x0A, y0A, r0A, x1A, y1A, r1A; + double t0A, t1A; + Function *funcsA[gfxColorMaxComps]; + int nFuncsA; + GBool extend0A, extend1A; Object obj1, obj2; - GBool hasN; int i; - ok = gFalse; - hasN = gFalse; - - //----- initialize the generic stuff - if (!init(dict)) { - goto err1; - } - if (m != 1) { - error(-1, "Exponential function with more than one input"); + x0A = y0A = r0A = x1A = y1A = r1A = 0; + if (dict->lookup("Coords", &obj1)->isArray() && + obj1.arrayGetLength() == 6) { + x0A = obj1.arrayGet(0, &obj2)->getNum(); + obj2.free(); + y0A = obj1.arrayGet(1, &obj2)->getNum(); + obj2.free(); + r0A = obj1.arrayGet(2, &obj2)->getNum(); + obj2.free(); + x1A = obj1.arrayGet(3, &obj2)->getNum(); + obj2.free(); + y1A = obj1.arrayGet(4, &obj2)->getNum(); + obj2.free(); + r1A = obj1.arrayGet(5, &obj2)->getNum(); + obj2.free(); + } else { + error(-1, "Missing or invalid Coords in shading dictionary"); goto err1; } + obj1.free(); - //----- default values - for (i = 0; i < funcMaxOutputs; ++i) { - c0[i] = 0; - c1[i] = 1; + t0A = 0; + t1A = 1; + if (dict->lookup("Domain", &obj1)->isArray() && + obj1.arrayGetLength() == 2) { + t0A = obj1.arrayGet(0, &obj2)->getNum(); + obj2.free(); + t1A = obj1.arrayGet(1, &obj2)->getNum(); + obj2.free(); } + obj1.free(); - //----- C0 - if (dict->lookup("C0", &obj1)->isArray()) { - if (!hasN) { - n = obj1.arrayGetLength(); - } else if (obj1.arrayGetLength() != n) { - error(-1, "Function's C0 array is wrong length"); - goto err2; - } - for (i = 0; i < n; ++i) { + dict->lookup("Function", &obj1); + if (obj1.isArray()) { + nFuncsA = obj1.arrayGetLength(); + for (i = 0; i < nFuncsA; ++i) { obj1.arrayGet(i, &obj2); - if (!obj2.isNum()) { - error(-1, "Illegal value in function C0 array"); - goto err3; + if (!(funcsA[i] = Function::parse(&obj2))) { + obj1.free(); + obj2.free(); + goto err1; } - c0[i] = obj2.getNum(); obj2.free(); } - obj1.free(); - } - - //----- C1 - if (dict->lookup("C1", &obj1)->isArray()) { - if (!hasN) { - n = obj1.arrayGetLength(); - } else if (obj1.arrayGetLength() != n) { - error(-1, "Function's C1 array is wrong length"); - goto err2; - } - for (i = 0; i < n; ++i) { - obj1.arrayGet(i, &obj2); - if (!obj2.isNum()) { - error(-1, "Illegal value in function C1 array"); - goto err3; - } - c1[i] = obj2.getNum(); - obj2.free(); + } else { + nFuncsA = 1; + if (!(funcsA[0] = Function::parse(&obj1))) { + obj1.free(); + goto err1; } - obj1.free(); } + obj1.free(); - //----- N (exponent) - if (!dict->lookup("N", &obj1)->isNum()) { - error(-1, "Function has missing or invalid N"); - goto err2; + extend0A = extend1A = gFalse; + if (dict->lookup("Extend", &obj1)->isArray() && + obj1.arrayGetLength() == 2) { + extend0A = obj1.arrayGet(0, &obj2)->getBool(); + obj2.free(); + extend1A = obj1.arrayGet(1, &obj2)->getBool(); + obj2.free(); } - e = obj1.getNum(); obj1.free(); - ok = gTrue; - return; + return new GfxRadialShading(x0A, y0A, r0A, x1A, y1A, r1A, t0A, t1A, + funcsA, nFuncsA, extend0A, extend1A); - err3: - obj2.free(); - err2: - obj1.free(); err1: - return; -} - -ExponentialFunction::~ExponentialFunction() { -} - -ExponentialFunction::ExponentialFunction(ExponentialFunction *func) { - memcpy(this, func, sizeof(ExponentialFunction)); + return NULL; } -void ExponentialFunction::transform(double *in, double *out) { - double x; +void GfxRadialShading::getColor(double t, GfxColor *color) { int i; - if (in[0] < domain[0][0]) { - x = domain[0][0]; - } else if (in[0] > domain[0][1]) { - x = domain[0][1]; - } else { - x = in[0]; - } - for (i = 0; i < n; ++i) { - out[i] = c0[i] + pow(x, e) * (c1[i] - c0[i]); - if (hasRange) { - if (out[i] < range[i][0]) { - out[i] = range[i][0]; - } else if (out[i] > range[i][1]) { - out[i] = range[i][1]; - } - } + for (i = 0; i < nFuncs; ++i) { + funcs[i]->transform(&t, &color->c[i]); } - return; } //------------------------------------------------------------------------ // GfxImageColorMap //------------------------------------------------------------------------ -GfxImageColorMap::GfxImageColorMap(int bits, Object *decode, - GfxColorSpace *colorSpace) { +GfxImageColorMap::GfxImageColorMap(int bitsA, Object *decode, + GfxColorSpace *colorSpaceA) { GfxIndexedColorSpace *indexedCS; GfxSeparationColorSpace *sepCS; int maxPixel, indexHigh; Guchar *lookup2; Function *sepFunc; Object obj; - double x; + double x[gfxColorMaxComps]; double y[gfxColorMaxComps]; int i, j, k; ok = gTrue; // bits per component and color space - this->bits = bits; + bits = bitsA; maxPixel = (1 << bits) - 1; - this->colorSpace = colorSpace; + colorSpace = colorSpaceA; // get decode map if (decode->isNull()) { @@ -1739,18 +1647,6 @@ GfxImageColorMap::GfxImageColorMap(int bits, Object *decode, goto err1; } -#if 0 //~ - // handle the case where fewer than 2^n palette entries of an n-bit - // indexed color space are populated (this happens, e.g., in files - // optimized by Distiller) - if (colorSpace->getMode() == csIndexed) { - i = ((GfxIndexedColorSpace *)colorSpace)->getIndexHigh(); - if (i < maxPixel) { - maxPixel = i; - } - } -#endif - // Construct a lookup table -- this stores pre-computed decoded // values for each component, i.e., the result of applying the // decode mapping to each possible image pixel component value. @@ -1783,8 +1679,8 @@ GfxImageColorMap::GfxImageColorMap(int bits, Object *decode, lookup = (double *)gmalloc((maxPixel + 1) * nComps2 * sizeof(double)); sepFunc = sepCS->getFunc(); for (i = 0; i <= maxPixel; ++i) { - x = decodeLow[0] + (i * decodeRange[0]) / maxPixel; - sepFunc->transform(&x, y); + x[0] = decodeLow[0] + (i * decodeRange[0]) / maxPixel; + sepFunc->transform(x, y); for (k = 0; k < nComps2; ++k) { lookup[i*nComps2 + k] = y[k]; } @@ -2009,19 +1905,34 @@ void GfxPath::curveTo(double x1, double y1, double x2, double y2, subpaths[n-1]->curveTo(x1, y1, x2, y2, x3, y3); } +void GfxPath::close() { + // this is necessary to handle the pathological case of + // moveto/closepath/clip, which defines an empty clipping region + if (justMoved) { + if (n >= size) { + size += 16; + subpaths = (GfxSubpath **) + grealloc(subpaths, size * sizeof(GfxSubpath *)); + } + subpaths[n] = new GfxSubpath(firstX, firstY); + ++n; + justMoved = gFalse; + } + subpaths[n-1]->close(); +} //------------------------------------------------------------------------ // GfxState //------------------------------------------------------------------------ -GfxState::GfxState(double dpi, double px1a, double py1a, - double px2a, double py2a, int rotate, GBool upsideDown) { +GfxState::GfxState(double dpi, PDFRectangle *pageBox, int rotate, + GBool upsideDown) { double k; - px1 = px1a; - py1 = py1a; - px2 = px2a; - py2 = py2a; + px1 = pageBox->x1; + py1 = pageBox->y1; + px2 = pageBox->x2; + py2 = pageBox->y2; k = dpi / 72.0; if (rotate == 90) { ctm[0] = 0; @@ -2095,6 +2006,11 @@ GfxState::GfxState(double dpi, double px1a, double py1a, curX = curY = 0; lineX = lineY = 0; + clipXMin = 0; + clipYMin = 0; + clipXMax = pageWidth; + clipYMax = pageHeight; + saved = NULL; } @@ -2112,7 +2028,10 @@ GfxState::~GfxState() { delete strokePattern; } gfree(lineDash); - delete path; + if (path) { + // this gets set to NULL by restore() + delete path; + } if (saved) { delete saved; } @@ -2137,10 +2056,70 @@ GfxState::GfxState(GfxState *state) { lineDash = (double *)gmalloc(lineDashLength * sizeof(double)); memcpy(lineDash, state->lineDash, lineDashLength * sizeof(double)); } - path = state->path->copy(); saved = NULL; } +void GfxState::getUserClipBBox(double *xMin, double *yMin, + double *xMax, double *yMax) { + double ictm[6]; + double xMin1, yMin1, xMax1, yMax1, det, tx, ty; + + // invert the CTM + det = 1 / (ctm[0] * ctm[3] - ctm[1] * ctm[2]); + ictm[0] = ctm[3] * det; + ictm[1] = -ctm[1] * det; + ictm[2] = -ctm[2] * det; + ictm[3] = ctm[0] * det; + ictm[4] = (ctm[2] * ctm[5] - ctm[3] * ctm[4]) * det; + ictm[5] = (ctm[1] * ctm[4] - ctm[0] * ctm[5]) * det; + + // transform all four corners of the clip bbox; find the min and max + // x and y values + xMin1 = xMax1 = clipXMin * ictm[0] + clipYMin * ictm[2] + ictm[4]; + yMin1 = yMax1 = clipXMin * ictm[1] + clipYMin * ictm[3] + ictm[5]; + tx = clipXMin * ictm[0] + clipYMax * ictm[2] + ictm[4]; + ty = clipXMin * ictm[1] + clipYMax * ictm[3] + ictm[5]; + if (tx < xMin1) { + xMin1 = tx; + } else if (tx > xMax1) { + xMax1 = tx; + } + if (ty < yMin1) { + yMin1 = ty; + } else if (ty > yMax1) { + yMax1 = ty; + } + tx = clipXMax * ictm[0] + clipYMin * ictm[2] + ictm[4]; + ty = clipXMax * ictm[1] + clipYMin * ictm[3] + ictm[5]; + if (tx < xMin1) { + xMin1 = tx; + } else if (tx > xMax1) { + xMax1 = tx; + } + if (ty < yMin1) { + yMin1 = ty; + } else if (ty > yMax1) { + yMax1 = ty; + } + tx = clipXMax * ictm[0] + clipYMax * ictm[2] + ictm[4]; + ty = clipXMax * ictm[1] + clipYMax * ictm[3] + ictm[5]; + if (tx < xMin1) { + xMin1 = tx; + } else if (tx > xMax1) { + xMax1 = tx; + } + if (ty < yMin1) { + yMin1 = ty; + } else if (ty > yMax1) { + yMax1 = ty; + } + + *xMin = xMin1; + *yMin = yMin1; + *xMax = xMax1; + *yMax = yMax1; +} + double GfxState::transformWidth(double w) { double x, y; @@ -2169,12 +2148,23 @@ void GfxState::getFontTransMat(double *m11, double *m12, void GfxState::setCTM(double a, double b, double c, double d, double e, double f) { + int i; + ctm[0] = a; ctm[1] = b; ctm[2] = c; ctm[3] = d; ctm[4] = e; ctm[5] = f; + + // avoid FP exceptions on badly messed up PDF files + for (i = 0; i < 6; ++i) { + if (ctm[i] > 1e10) { + ctm[i] = 1e10; + } else if (ctm[i] < -1e10) { + ctm[i] = -1e10; + } + } } void GfxState::concatCTM(double a, double b, double c, @@ -2183,6 +2173,7 @@ void GfxState::concatCTM(double a, double b, double c, double b1 = ctm[1]; double c1 = ctm[2]; double d1 = ctm[3]; + int i; ctm[0] = a * a1 + b * c1; ctm[1] = a * b1 + b * d1; @@ -2190,6 +2181,15 @@ void GfxState::concatCTM(double a, double b, double c, ctm[3] = c * b1 + d * d1; ctm[4] = e * a1 + f * c1 + ctm[4]; ctm[5] = e * b1 + f * d1 + ctm[5]; + + // avoid FP exceptions on badly messed up PDF files + for (i = 0; i < 6; ++i) { + if (ctm[i] > 1e10) { + ctm[i] = 1e10; + } else if (ctm[i] < -1e10) { + ctm[i] = -1e10; + } + } } void GfxState::setFillColorSpace(GfxColorSpace *colorSpace) { @@ -2233,12 +2233,45 @@ void GfxState::clearPath() { path = new GfxPath(); } -void GfxState::textShift(double tx) { - double dx, dy; - - textTransformDelta(tx, 0, &dx, &dy); - curX += dx; - curY += dy; +void GfxState::clip() { + double xMin, yMin, xMax, yMax, x, y; + GfxSubpath *subpath; + int i, j; + + xMin = xMax = yMin = yMax = 0; // make gcc happy + for (i = 0; i < path->getNumSubpaths(); ++i) { + subpath = path->getSubpath(i); + for (j = 0; j < subpath->getNumPoints(); ++j) { + transform(subpath->getX(j), subpath->getY(j), &x, &y); + if (i == 0 && j == 0) { + xMin = xMax = x; + yMin = yMax = y; + } else { + if (x < xMin) { + xMin = x; + } else if (x > xMax) { + xMax = x; + } + if (y < yMin) { + yMin = y; + } else if (y > yMax) { + yMax = y; + } + } + } + } + if (xMin > clipXMin) { + clipXMin = xMin; + } + if (yMin > clipYMin) { + clipYMin = yMin; + } + if (xMax < clipXMax) { + clipXMax = xMax; + } + if (yMax < clipYMax) { + clipYMax = yMax; + } } void GfxState::textShift(double tx, double ty) { @@ -2249,6 +2282,11 @@ void GfxState::textShift(double tx, double ty) { curY += dy; } +void GfxState::shift(double dx, double dy) { + curX += dx; + curY += dy; +} + GfxState *GfxState::save() { GfxState *newState; @@ -2262,10 +2300,21 @@ GfxState *GfxState::restore() { if (saved) { oldState = saved; + + // these attributes aren't saved/restored by the q/Q operators + oldState->path = path; + oldState->curX = curX; + oldState->curY = curY; + oldState->lineX = lineX; + oldState->lineY = lineY; + + path = NULL; saved = NULL; delete this; + } else { oldState = this; } + return oldState; } diff --git a/pdf/xpdf/GfxState.h b/pdf/xpdf/GfxState.h index 2056c4d1..b1f6f28e 100644 --- a/pdf/xpdf/GfxState.h +++ b/pdf/xpdf/GfxState.h @@ -2,7 +2,7 @@ // // GfxState.h // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -15,16 +15,17 @@ #include "gtypes.h" #include "Object.h" +#include "Function.h" class Array; -class Function; class GfxFont; +struct PDFRectangle; //------------------------------------------------------------------------ // GfxColor //------------------------------------------------------------------------ -#define gfxColorMaxComps 8 +#define gfxColorMaxComps funcMaxOutputs struct GfxColor { double c[gfxColorMaxComps]; @@ -201,14 +202,14 @@ public: double getGammaR() { return gammaR; } double getGammaG() { return gammaG; } double getGammaB() { return gammaB; } - double *getMatrix() { return m; } + double *getMatrix() { return mat; } private: double whiteX, whiteY, whiteZ; // white point double blackX, blackY, blackZ; // black point double gammaR, gammaG, gammaB; // gamma values - double m[9]; // ABC -> XYZ transform matrix + double mat[9]; // ABC -> XYZ transform matrix }; //------------------------------------------------------------------------ @@ -283,8 +284,8 @@ private: class GfxICCBasedColorSpace: public GfxColorSpace { public: - GfxICCBasedColorSpace(int nComps, GfxColorSpace *alt, - Ref *iccProfileStream); + GfxICCBasedColorSpace(int nCompsA, GfxColorSpace *altA, + Ref *iccProfileStreamA); virtual ~GfxICCBasedColorSpace(); virtual GfxColorSpace *copy(); virtual GfxColorSpaceMode getMode() { return csICCBased; } @@ -320,7 +321,7 @@ private: class GfxIndexedColorSpace: public GfxColorSpace { public: - GfxIndexedColorSpace(GfxColorSpace *base, int indexHigh); + GfxIndexedColorSpace(GfxColorSpace *baseA, int indexHighA); virtual ~GfxIndexedColorSpace(); virtual GfxColorSpace *copy(); virtual GfxColorSpaceMode getMode() { return csIndexed; } @@ -356,8 +357,8 @@ private: class GfxSeparationColorSpace: public GfxColorSpace { public: - GfxSeparationColorSpace(GString *name, GfxColorSpace *alt, - Function *func); + GfxSeparationColorSpace(GString *nameA, GfxColorSpace *altA, + Function *funcA); virtual ~GfxSeparationColorSpace(); virtual GfxColorSpace *copy(); virtual GfxColorSpaceMode getMode() { return csSeparation; } @@ -424,7 +425,7 @@ private: class GfxPatternColorSpace: public GfxColorSpace { public: - GfxPatternColorSpace(GfxColorSpace *under); + GfxPatternColorSpace(GfxColorSpace *underA); virtual ~GfxPatternColorSpace(); virtual GfxColorSpace *copy(); virtual GfxColorSpaceMode getMode() { return csPattern; } @@ -454,7 +455,7 @@ private: class GfxPattern { public: - GfxPattern(int type); + GfxPattern(int typeA); virtual ~GfxPattern(); static GfxPattern *parse(Object *obj); @@ -504,94 +505,100 @@ private: }; //------------------------------------------------------------------------ -// Function +// GfxShading //------------------------------------------------------------------------ -#define funcMaxInputs 1 -#define funcMaxOutputs 8 - -class Function { +class GfxShading { public: - Function(); - - virtual ~Function(); - - // Construct a function. Returns NULL if unsuccessful. - static Function *parse(Object *funcObj); - - // Initialize the entries common to all function types. - GBool init(Dict *dict); - - virtual Function *copy() = 0; - - // Return size of input and output tuples. - int getInputSize() { return m; } - int getOutputSize() { return n; } + GfxShading(); + virtual ~GfxShading(); - // Transform an input tuple into an output tuple. - virtual void transform(double *in, double *out) = 0; + static GfxShading *parse(Object *obj); - virtual GBool isOk() = 0; + int getType() { return type; } + GfxColorSpace *getColorSpace() { return colorSpace; } + GfxColor *getBackground() { return &background; } + GBool getHasBackground() { return hasBackground; } + void getBBox(double *xMinA, double *yMinA, double *xMaxA, double *yMaxA) + { *xMinA = xMin; *yMinA = yMin; *xMaxA = xMax; *yMaxA = yMax; } + GBool getHasBBox() { return hasBBox; } -protected: +private: - int m, n; // size of input and output tuples - double // min and max values for function domain - domain[funcMaxInputs][2]; - double // min and max values for function range - range[funcMaxOutputs][2]; - GBool hasRange; // set if range is defined + int type; + GfxColorSpace *colorSpace; + GfxColor background; + GBool hasBackground; + double xMin, yMin, xMax, yMax; + GBool hasBBox; }; //------------------------------------------------------------------------ -// SampledFunction +// GfxAxialShading //------------------------------------------------------------------------ -class SampledFunction: public Function { +class GfxAxialShading: public GfxShading { public: - SampledFunction(Object *funcObj, Dict *dict); - virtual ~SampledFunction(); - virtual Function *copy() { return new SampledFunction(this); } - virtual void transform(double *in, double *out); - virtual GBool isOk() { return ok; } + GfxAxialShading(double x0A, double y0A, + double x1A, double y1A, + double t0A, double t1A, + Function **funcsA, int nFuncsA, + GBool extend0A, GBool extend1A); + virtual ~GfxAxialShading(); -private: + static GfxAxialShading *parse(Dict *dict); - SampledFunction(SampledFunction *func); + void getCoords(double *x0A, double *y0A, double *x1A, double *y1A) + { *x0A = x0; *y0A = y0; *x1A = x1; *y1A = y1; } + double getDomain0() { return t0; } + double getDomain1() { return t1; } + void getColor(double t, GfxColor *color); + GBool getExtend0() { return extend0; } + GBool getExtend1() { return extend1; } - int // number of samples for each domain element - sampleSize[funcMaxInputs]; - double // min and max values for domain encoder - encode[funcMaxInputs][2]; - double // min and max values for range decoder - decode[funcMaxOutputs][2]; - double *samples; // the samples - GBool ok; +private: + + double x0, y0, x1, y1; + double t0, t1; + Function *funcs[gfxColorMaxComps]; + int nFuncs; + GBool extend0, extend1; }; //------------------------------------------------------------------------ -// ExponentialFunction +// GfxRadialShading //------------------------------------------------------------------------ -class ExponentialFunction: public Function { +class GfxRadialShading: public GfxShading { public: - ExponentialFunction(Object *funcObj, Dict *dict); - virtual ~ExponentialFunction(); - virtual Function *copy() { return new ExponentialFunction(this); } - virtual void transform(double *in, double *out); - virtual GBool isOk() { return ok; } + GfxRadialShading(double x0A, double y0A, double r0A, + double x1A, double y1A, double r1A, + double t0A, double t1A, + Function **funcsA, int nFuncsA, + GBool extend0A, GBool extend1A); + virtual ~GfxRadialShading(); -private: + static GfxRadialShading *parse(Dict *dict); - ExponentialFunction(ExponentialFunction *func); + void getCoords(double *x0A, double *y0A, double *r0A, + double *x1A, double *y1A, double *r1A) + { *x0A = x0; *y0A = y0; *r0A = r0; *x1A = x1; *y1A = y1; *r1A = r1; } + double getDomain0() { return t0; } + double getDomain1() { return t1; } + void getColor(double t, GfxColor *color); + GBool getExtend0() { return extend0; } + GBool getExtend1() { return extend1; } - double c0[funcMaxOutputs]; - double c1[funcMaxOutputs]; - double e; - GBool ok; +private: + + double x0, y0, r0, x1, y1, r1; + double t0, t1; + Function *funcs[gfxColorMaxComps]; + int nFuncs; + GBool extend0, extend1; }; //------------------------------------------------------------------------ @@ -602,7 +609,7 @@ class GfxImageColorMap { public: // Constructor. - GfxImageColorMap(int bits, Object *decode, GfxColorSpace *colorSpace); + GfxImageColorMap(int bitsA, Object *decode, GfxColorSpace *colorSpaceA); // Destructor. ~GfxImageColorMap(); @@ -728,7 +735,7 @@ public: double x3, double y3); // Close the last subpath. - void close() { subpaths[n-1]->close(); } + void close(); private: @@ -750,10 +757,10 @@ class GfxState { public: // Construct a default GfxState, for a device with resolution , - // page box (,)-(,), page rotation , and - // coordinate system specified by . - GfxState(double dpi, double px1a, double py1a, - double px2a, double py2a, int rotate, GBool upsideDown); + // page box , page rotation , and coordinate system + // specified by . + GfxState(double dpi, PDFRectangle *pageBox, int rotate, + GBool upsideDown); // Destructor. ~GfxState(); @@ -771,6 +778,10 @@ public: double getPageHeight() { return pageHeight; } GfxColor *getFillColor() { return &fillColor; } GfxColor *getStrokeColor() { return &strokeColor; } + void getFillGray(double *gray) + { fillColorSpace->getGray(&fillColor, gray); } + void getStrokeGray(double *gray) + { strokeColorSpace->getGray(&fillColor, gray); } void getFillRGB(GfxRGB *rgb) { fillColorSpace->getRGB(&fillColor, rgb); } void getStrokeRGB(GfxRGB *rgb) @@ -804,6 +815,9 @@ public: GfxPath *getPath() { return path; } double getCurX() { return curX; } double getCurY() { return curY; } + void getClipBBox(double *xMin, double *yMin, double *xMax, double *yMax) + { *xMin = clipXMin; *yMin = clipYMin; *xMax = clipXMax; *yMax = clipYMax; } + void getUserClipBBox(double *xMin, double *yMin, double *xMax, double *yMax); double getLineX() { return lineX; } double getLineY() { return lineY; } @@ -848,9 +862,9 @@ public: void setFlatness(int flatness1) { flatness = flatness1; } void setLineJoin(int lineJoin1) { lineJoin = lineJoin1; } void setLineCap(int lineCap1) { lineCap = lineCap1; } - void setMiterLimit(double miterLimit1) { miterLimit = miterLimit1; } - void setFont(GfxFont *font1, double fontSize1) - { font = font1; fontSize = fontSize1; } + void setMiterLimit(double limit) { miterLimit = limit; } + void setFont(GfxFont *fontA, double fontSizeA) + { font = fontA; fontSize = fontSizeA; } void setTextMat(double a, double b, double c, double d, double e, double f) { textMat[0] = a; textMat[1] = b; textMat[2] = c; @@ -861,12 +875,12 @@ public: { wordSpace = space; } void setHorizScaling(double scale) { horizScaling = 0.01 * scale; } - void setLeading(double leading1) - { leading = leading1; } - void setRise(double rise1) - { rise = rise1; } - void setRender(int render1) - { render = render1; } + void setLeading(double leadingA) + { leading = leadingA; } + void setRise(double riseA) + { rise = riseA; } + void setRender(int renderA) + { render = renderA; } // Add to path. void moveTo(double x, double y) @@ -880,11 +894,14 @@ public: { path->close(); curX = path->getLastX(); curY = path->getLastY(); } void clearPath(); + // Update clip region. + void clip(); + // Text position. void textMoveTo(double tx, double ty) { lineX = tx; lineY = ty; textTransform(tx, ty, &curX, &curY); } - void textShift(double tx); void textShift(double tx, double ty); + void shift(double dx, double dy); // Push/pop GfxState on/off stack. GfxState *save(); @@ -929,6 +946,9 @@ private: double curX, curY; // current point (user coords) double lineX, lineY; // start of current text line (text coords) + double clipXMin, clipYMin, // bounding box for clip region + clipXMax, clipYMax; + GfxState *saved; // next GfxState on stack GfxState(GfxState *state); diff --git a/pdf/xpdf/GlobalParams.cc b/pdf/xpdf/GlobalParams.cc new file mode 100644 index 00000000..0bc908ea --- /dev/null +++ b/pdf/xpdf/GlobalParams.cc @@ -0,0 +1,1065 @@ +//======================================================================== +// +// GlobalParams.cc +// +// Copyright 2001-2002 Glyph & Cog, LLC +// +//======================================================================== + +#ifdef __GNUC__ +#pragma implementation +#endif + +#include +#include +#include +#if HAVE_PAPER_H +#include +#endif +#include "gmem.h" +#include "GString.h" +#include "GList.h" +#include "GHash.h" +#include "gfile.h" +#include "Error.h" +#include "NameToCharCode.h" +#include "CharCodeToUnicode.h" +#include "UnicodeMap.h" +#include "CMap.h" +#include "BuiltinFontTables.h" +#include "FontEncodingTables.h" +#include "GlobalParams.h" + +#include "NameToUnicodeTable.h" +#include "UnicodeMapTables.h" +#include "DisplayFontTable.h" +#include "UTF8.h" + +//------------------------------------------------------------------------ + +GlobalParams *globalParams = NULL; + +//------------------------------------------------------------------------ +// DisplayFontParam +//------------------------------------------------------------------------ + +DisplayFontParam::DisplayFontParam(GString *nameA, + DisplayFontParamKind kindA) { + name = nameA; + kind = kindA; + switch (kind) { + case displayFontX: + x.xlfd = NULL; + x.encoding = NULL; + break; + case displayFontT1: + t1.fileName = NULL; + break; + case displayFontTT: + tt.fileName = NULL; + break; + } +} + +DisplayFontParam::DisplayFontParam(char *nameA, char *xlfdA, char *encodingA) { + name = new GString(nameA); + kind = displayFontX; + x.xlfd = new GString(xlfdA); + x.encoding = new GString(encodingA); +} + +DisplayFontParam::~DisplayFontParam() { + delete name; + switch (kind) { + case displayFontX: + if (x.xlfd) { + delete x.xlfd; + } + if (x.encoding) { + delete x.encoding; + } + break; + case displayFontT1: + if (t1.fileName) { + delete t1.fileName; + } + break; + case displayFontTT: + if (tt.fileName) { + delete tt.fileName; + } + break; + } +} + +//------------------------------------------------------------------------ +// PSFontParam +//------------------------------------------------------------------------ + +PSFontParam::PSFontParam(GString *pdfFontNameA, int wModeA, + GString *psFontNameA, GString *encodingA) { + pdfFontName = pdfFontNameA; + wMode = wModeA; + psFontName = psFontNameA; + encoding = encodingA; +} + +PSFontParam::~PSFontParam() { + delete pdfFontName; + delete psFontName; + if (encoding) { + delete encoding; + } +} + +//------------------------------------------------------------------------ +// parsing +//------------------------------------------------------------------------ + +GlobalParams::GlobalParams(char *cfgFileName) { + UnicodeMap *map; + DisplayFontParam *dfp; + GString *fileName; + FILE *f; + int i; + + initBuiltinFontTables(); + + // scan the encoding in reverse because we want the lowest-numbered + // index for each char name ('space' is encoded twice) + macRomanReverseMap = new NameToCharCode(); + for (i = 255; i >= 0; --i) { + if (macRomanEncoding[i]) { + macRomanReverseMap->add(macRomanEncoding[i], (CharCode)i); + } + } + + nameToUnicode = new NameToCharCode(); + cidToUnicodes = new GHash(gTrue); + residentUnicodeMaps = new GHash(); + unicodeMaps = new GHash(gTrue); + cMapDirs = new GHash(gTrue); + toUnicodeDirs = new GList(); + displayFonts = new GHash(); + displayCIDFonts = new GHash(); + displayNamedCIDFonts = new GHash(); +#if HAVE_PAPER_H + const struct paper *paperType; + paperinit(); + paperType = paperinfo(systempapername()); + psPaperWidth = (int)paperpswidth(paperType); + psPaperHeight = (int)paperpsheight(paperType); + paperdone(); +#else + psPaperWidth = defPaperWidth; + psPaperHeight = defPaperHeight; +#endif + psDuplex = gFalse; + psLevel = psLevel2; + psFile = NULL; + psFonts = new GHash(); + psNamedFonts16 = new GList(); + psFonts16 = new GList(); + psEmbedType1 = gTrue; + psEmbedTrueType = gTrue; + psEmbedCIDPostScript = gTrue; + psEmbedCIDTrueType = gTrue; + psOPI = gFalse; + psASCIIHex = gFalse; + textEncoding = new GString("Latin1"); +#if defined(WIN32) + textEOL = eolDOS; +#elif defined(MACOS) + textEOL = eolMac; +#else + textEOL = eolUnix; +#endif + fontDirs = new GList(); + initialZoom = new GString("1"); + t1libControl = fontRastAALow; + freetypeControl = fontRastAALow; + urlCommand = NULL; + mapNumericCharNames = gTrue; + errQuiet = gFalse; + + cidToUnicodeCache = new CIDToUnicodeCache(); + unicodeMapCache = new UnicodeMapCache(); + cMapCache = new CMapCache(); + + // set up the initial nameToUnicode table + for (i = 0; nameToUnicodeTab[i].name; ++i) { + nameToUnicode->add(nameToUnicodeTab[i].name, nameToUnicodeTab[i].u); + } + + // set up the residentUnicodeMaps table + map = new UnicodeMap("Latin1", latin1UnicodeMapRanges, latin1UnicodeMapLen); + residentUnicodeMaps->add(map->getEncodingName(), map); + map = new UnicodeMap("ASCII7", ascii7UnicodeMapRanges, ascii7UnicodeMapLen); + residentUnicodeMaps->add(map->getEncodingName(), map); + map = new UnicodeMap("Symbol", symbolUnicodeMapRanges, symbolUnicodeMapLen); + residentUnicodeMaps->add(map->getEncodingName(), map); + map = new UnicodeMap("ZapfDingbats", zapfDingbatsUnicodeMapRanges, + zapfDingbatsUnicodeMapLen); + residentUnicodeMaps->add(map->getEncodingName(), map); + map = new UnicodeMap("UTF-8", &mapUTF8); + residentUnicodeMaps->add(map->getEncodingName(), map); + map = new UnicodeMap("UCS-2", &mapUCS2); + residentUnicodeMaps->add(map->getEncodingName(), map); + + // default displayFonts table + for (i = 0; displayFontTab[i].name; ++i) { + dfp = new DisplayFontParam(displayFontTab[i].name, + displayFontTab[i].xlfd, + displayFontTab[i].encoding); + displayFonts->add(dfp->name, dfp); + } + + // look for a user config file, then a system-wide config file + f = NULL; + fileName = NULL; + if (cfgFileName && cfgFileName[0]) { + fileName = new GString(cfgFileName); + if (!(f = fopen(fileName->getCString(), "r"))) { + delete fileName; + } + } + if (!f) { + fileName = appendToPath(getHomeDir(), xpdfUserConfigFile); + if (!(f = fopen(fileName->getCString(), "r"))) { + delete fileName; + } + } + if (!f) { +#if defined(WIN32) && !defined(__CYGWIN32__) + char buf[512]; + i = GetModuleFileName(NULL, buf, sizeof(buf)); + if (i <= 0 || i >= sizeof(buf)) { + // error or path too long for buffer - just use the current dir + buf[i] = '\0'; + } + fileName = grabPath(buf); + appendToPath(fileName, xpdfSysConfigFile); +#else + fileName = new GString(xpdfSysConfigFile); +#endif + if (!(f = fopen(fileName->getCString(), "r"))) { + delete fileName; + } + } + if (f) { + parseFile(fileName, f); + delete fileName; + } +} + +void GlobalParams::parseFile(GString *fileName, FILE *f) { + int line; + GList *tokens; + GString *cmd, *incFile; + char *p1, *p2; + char buf[512]; + FILE *f2; + + line = 1; + while (fgets(buf, sizeof(buf) - 1, f)) { + + // break the line into tokens + tokens = new GList(); + p1 = buf; + while (*p1) { + for (; *p1 && isspace(*p1); ++p1) ; + if (!*p1) { + break; + } + if (*p1 == '"' || *p1 == '\'') { + for (p2 = p1 + 1; *p2 && *p2 != *p1; ++p2) ; + ++p1; + } else { + for (p2 = p1 + 1; *p2 && !isspace(*p2); ++p2) ; + } + tokens->append(new GString(p1, p2 - p1)); + p1 = p2 + 1; + } + + if (tokens->getLength() > 0 && + ((GString *)tokens->get(0))->getChar(0) != '#') { + cmd = (GString *)tokens->get(0); + if (!cmd->cmp("include")) { + if (tokens->getLength() == 2) { + incFile = (GString *)tokens->get(1); + if ((f2 = fopen(incFile->getCString(), "r"))) { + parseFile(incFile, f2); + fclose(f2); + } else { + error(-1, "Couldn't find included config file: '%s' (%s:%d)", + incFile->getCString(), fileName->getCString(), line); + } + } else { + error(-1, "Bad 'include' config file command (%s:%d)", + fileName->getCString(), line); + } + } else if (!cmd->cmp("nameToUnicode")) { + parseNameToUnicode(tokens, fileName, line); + } else if (!cmd->cmp("cidToUnicode")) { + parseCIDToUnicode(tokens, fileName, line); + } else if (!cmd->cmp("unicodeMap")) { + parseUnicodeMap(tokens, fileName, line); + } else if (!cmd->cmp("cMapDir")) { + parseCMapDir(tokens, fileName, line); + } else if (!cmd->cmp("toUnicodeDir")) { + parseToUnicodeDir(tokens, fileName, line); + } else if (!cmd->cmp("displayFontX")) { + parseDisplayFont(tokens, displayFonts, displayFontX, fileName, line); + } else if (!cmd->cmp("displayFontT1")) { + parseDisplayFont(tokens, displayFonts, displayFontT1, fileName, line); + } else if (!cmd->cmp("displayFontTT")) { + parseDisplayFont(tokens, displayFonts, displayFontTT, fileName, line); + } else if (!cmd->cmp("displayCIDFontX")) { + parseDisplayFont(tokens, displayCIDFonts, + displayFontX, fileName, line); + } else if (!cmd->cmp("displayNamedCIDFontX")) { + parseDisplayFont(tokens, displayNamedCIDFonts, + displayFontX, fileName, line); + } else if (!cmd->cmp("psFile")) { + parsePSFile(tokens, fileName, line); + } else if (!cmd->cmp("psFont")) { + parsePSFont(tokens, fileName, line); + } else if (!cmd->cmp("psNamedFont16")) { + parsePSFont16("psNamedFont16", psNamedFonts16, + tokens, fileName, line); + } else if (!cmd->cmp("psFont16")) { + parsePSFont16("psFont16", psFonts16, tokens, fileName, line); + } else if (!cmd->cmp("psPaperSize")) { + parsePSPaperSize(tokens, fileName, line); + } else if (!cmd->cmp("psDuplex")) { + parseYesNo("psDuplex", &psDuplex, tokens, fileName, line); + } else if (!cmd->cmp("psLevel")) { + parsePSLevel(tokens, fileName, line); + } else if (!cmd->cmp("psEmbedType1Fonts")) { + parseYesNo("psEmbedType1", &psEmbedType1, tokens, fileName, line); + } else if (!cmd->cmp("psEmbedTrueTypeFonts")) { + parseYesNo("psEmbedTrueType", &psEmbedTrueType, + tokens, fileName, line); + } else if (!cmd->cmp("psEmbedCIDPostScriptFonts")) { + parseYesNo("psEmbedCIDPostScript", &psEmbedCIDPostScript, + tokens, fileName, line); + } else if (!cmd->cmp("psEmbedCIDTrueTypeFonts")) { + parseYesNo("psEmbedCIDTrueType", &psEmbedCIDTrueType, + tokens, fileName, line); + } else if (!cmd->cmp("psOPI")) { + parseYesNo("psOPI", &psOPI, tokens, fileName, line); + } else if (!cmd->cmp("psASCIIHex")) { + parseYesNo("psASCIIHex", &psASCIIHex, tokens, fileName, line); + } else if (!cmd->cmp("textEncoding")) { + parseTextEncoding(tokens, fileName, line); + } else if (!cmd->cmp("textEOL")) { + parseTextEOL(tokens, fileName, line); + } else if (!cmd->cmp("fontDir")) { + parseFontDir(tokens, fileName, line); + } else if (!cmd->cmp("initialZoom")) { + parseInitialZoom(tokens, fileName, line); + } else if (!cmd->cmp("t1libControl")) { + parseFontRastControl("t1libControl", &t1libControl, + tokens, fileName, line); + } else if (!cmd->cmp("freetypeControl")) { + parseFontRastControl("freetypeControl", &freetypeControl, + tokens, fileName, line); + } else if (!cmd->cmp("urlCommand")) { + parseURLCommand(tokens, fileName, line); + } else if (!cmd->cmp("mapNumericCharNames")) { + parseYesNo("mapNumericCharNames", &mapNumericCharNames, + tokens, fileName, line); + } else if (!cmd->cmp("errQuiet")) { + parseYesNo("errQuiet", &errQuiet, tokens, fileName, line); + } else if (!cmd->cmp("fontpath") || !cmd->cmp("fontmap")) { + error(-1, "Unknown config file command"); + error(-1, "-- the config file format has changed since Xpdf 0.9x"); + } else { + error(-1, "Unknown config file command '%s' (%s:%d)", + cmd->getCString(), fileName->getCString(), line); + } + } + + deleteGList(tokens, GString); + ++line; + } +} + +void GlobalParams::parseNameToUnicode(GList *tokens, GString *fileName, + int line) { + GString *name; + char *tok1, *tok2; + FILE *f; + char buf[256]; + int line2; + Unicode u; + + if (tokens->getLength() != 2) { + error(-1, "Bad 'nameToUnicode' config file command (%s:%d)", + fileName->getCString(), line); + return; + } + name = (GString *)tokens->get(1); + if (!(f = fopen(name->getCString(), "r"))) { + error(-1, "Couldn't open 'nameToUnicode' file '%s'", + name->getCString()); + return; + } + line2 = 1; + while (fgets(buf, sizeof(buf), f)) { + tok1 = strtok(buf, " \t\r\n"); + tok2 = strtok(NULL, " \t\r\n"); + if (tok1 && tok2) { + sscanf(tok1, "%x", &u); + nameToUnicode->add(tok2, u); + } else { + error(-1, "Bad line in 'nameToUnicode' file (%s:%d)", name, line2); + } + ++line2; + } + fclose(f); +} + +void GlobalParams::parseCIDToUnicode(GList *tokens, GString *fileName, + int line) { + GString *collection, *name, *old; + + if (tokens->getLength() != 3) { + error(-1, "Bad 'cidToUnicode' config file command (%s:%d)", + fileName->getCString(), line); + return; + } + collection = (GString *)tokens->get(1); + name = (GString *)tokens->get(2); + if ((old = (GString *)cidToUnicodes->remove(collection))) { + delete old; + } + cidToUnicodes->add(collection->copy(), name->copy()); +} + +void GlobalParams::parseUnicodeMap(GList *tokens, GString *fileName, + int line) { + GString *encodingName, *name, *old; + + if (tokens->getLength() != 3) { + error(-1, "Bad 'unicodeMap' config file command (%s:%d)", + fileName->getCString(), line); + return; + } + encodingName = (GString *)tokens->get(1); + name = (GString *)tokens->get(2); + if ((old = (GString *)unicodeMaps->remove(encodingName))) { + delete old; + } + unicodeMaps->add(encodingName->copy(), name->copy()); +} + +void GlobalParams::parseCMapDir(GList *tokens, GString *fileName, int line) { + GString *collection, *dir; + GList *list; + + if (tokens->getLength() != 3) { + error(-1, "Bad 'cMapDir' config file command (%s:%d)", + fileName->getCString(), line); + return; + } + collection = (GString *)tokens->get(1); + dir = (GString *)tokens->get(2); + if (!(list = (GList *)cMapDirs->lookup(collection))) { + list = new GList(); + cMapDirs->add(collection->copy(), list); + } + list->append(dir->copy()); +} + +void GlobalParams::parseToUnicodeDir(GList *tokens, GString *fileName, + int line) { + if (tokens->getLength() != 2) { + error(-1, "Bad 'toUnicodeDir' config file command (%s:%d)", + fileName->getCString(), line); + return; + } + toUnicodeDirs->append(((GString *)tokens->get(1))->copy()); +} + +void GlobalParams::parseDisplayFont(GList *tokens, GHash *fontHash, + DisplayFontParamKind kind, + GString *fileName, int line) { + DisplayFontParam *param, *old; + + if (tokens->getLength() < 2) { + goto err1; + } + param = new DisplayFontParam(((GString *)tokens->get(1))->copy(), kind); + + switch (kind) { + case displayFontX: + if (tokens->getLength() != 4) { + goto err2; + } + param->x.xlfd = ((GString *)tokens->get(2))->copy(); + param->x.encoding = ((GString *)tokens->get(3))->copy(); + break; + case displayFontT1: + if (tokens->getLength() != 3) { + goto err2; + } + param->t1.fileName = ((GString *)tokens->get(2))->copy(); + break; + case displayFontTT: + if (tokens->getLength() != 3) { + goto err2; + } + param->tt.fileName = ((GString *)tokens->get(2))->copy(); + break; + } + + if ((old = (DisplayFontParam *)fontHash->remove(param->name))) { + delete old; + } + fontHash->add(param->name, param); + return; + + err2: + delete param; + err1: + error(-1, "Bad 'display*Font*' config file command (%s:%d)", + fileName->getCString(), line); +} + +void GlobalParams::parsePSPaperSize(GList *tokens, GString *fileName, + int line) { + GString *tok; + + if (tokens->getLength() == 2) { + tok = (GString *)tokens->get(1); + if (!setPSPaperSize(tok->getCString())) { + error(-1, "Bad 'psPaperSize' config file command (%s:%d)", + fileName->getCString(), line); + } + } else if (tokens->getLength() == 3) { + tok = (GString *)tokens->get(1); + psPaperWidth = atoi(tok->getCString()); + tok = (GString *)tokens->get(2); + psPaperHeight = atoi(tok->getCString()); + } else { + error(-1, "Bad 'psPaperSize' config file command (%s:%d)", + fileName->getCString(), line); + } +} + +void GlobalParams::parsePSLevel(GList *tokens, GString *fileName, int line) { + GString *tok; + + if (tokens->getLength() != 2) { + error(-1, "Bad 'psLevel' config file command (%s:%d)", + fileName->getCString(), line); + return; + } + tok = (GString *)tokens->get(1); + if (!tok->cmp("level1")) { + psLevel = psLevel1; + } else if (!tok->cmp("level1sep")) { + psLevel = psLevel1Sep; + } else if (!tok->cmp("level2")) { + psLevel = psLevel2; + } else if (!tok->cmp("level2sep")) { + psLevel = psLevel2Sep; + } else if (!tok->cmp("level3")) { + psLevel = psLevel3; + } else if (!tok->cmp("level3Sep")) { + psLevel = psLevel3Sep; + } else { + error(-1, "Bad 'psLevel' config file command (%s:%d)", + fileName->getCString(), line); + } +} + +void GlobalParams::parsePSFile(GList *tokens, GString *fileName, int line) { + if (tokens->getLength() != 2) { + error(-1, "Bad 'psFile' config file command (%s:%d)", + fileName->getCString(), line); + return; + } + if (psFile) { + delete psFile; + } + psFile = ((GString *)tokens->get(1))->copy(); +} + +void GlobalParams::parsePSFont(GList *tokens, GString *fileName, int line) { + PSFontParam *param; + + if (tokens->getLength() != 3) { + error(-1, "Bad 'psFont' config file command (%s:%d)", + fileName->getCString(), line); + return; + } + param = new PSFontParam(((GString *)tokens->get(1))->copy(), 0, + ((GString *)tokens->get(2))->copy(), NULL); + psFonts->add(param->pdfFontName, param); +} + +void GlobalParams::parsePSFont16(char *cmdName, GList *fontList, + GList *tokens, GString *fileName, int line) { + PSFontParam *param; + int wMode; + GString *tok; + + if (tokens->getLength() != 5) { + error(-1, "Bad '%s' config file command (%s:%d)", + cmdName, fileName->getCString(), line); + return; + } + tok = (GString *)tokens->get(2); + if (!tok->cmp("H")) { + wMode = 0; + } else if (!tok->cmp("V")) { + wMode = 1; + } else { + error(-1, "Bad '%s' config file command (%s:%d)", + cmdName, fileName->getCString(), line); + return; + } + param = new PSFontParam(((GString *)tokens->get(1))->copy(), + wMode, + ((GString *)tokens->get(3))->copy(), + ((GString *)tokens->get(4))->copy()); + fontList->append(param); +} + +void GlobalParams::parseTextEncoding(GList *tokens, GString *fileName, + int line) { + if (tokens->getLength() != 2) { + error(-1, "Bad 'textEncoding' config file command (%s:%d)", + fileName->getCString(), line); + return; + } + delete textEncoding; + textEncoding = ((GString *)tokens->get(1))->copy(); +} + +void GlobalParams::parseTextEOL(GList *tokens, GString *fileName, int line) { + GString *tok; + + if (tokens->getLength() != 2) { + error(-1, "Bad 'textEOL' config file command (%s:%d)", + fileName->getCString(), line); + return; + } + tok = (GString *)tokens->get(1); + if (!tok->cmp("unix")) { + textEOL = eolUnix; + } else if (!tok->cmp("dos")) { + textEOL = eolDOS; + } else if (!tok->cmp("mac")) { + textEOL = eolMac; + } else { + error(-1, "Bad 'textEOL' config file command (%s:%d)", + fileName->getCString(), line); + } +} + +void GlobalParams::parseFontDir(GList *tokens, GString *fileName, int line) { + if (tokens->getLength() != 2) { + error(-1, "Bad 'fontDir' config file command (%s:%d)", + fileName->getCString(), line); + return; + } + fontDirs->append(((GString *)tokens->get(1))->copy()); +} + +void GlobalParams::parseInitialZoom(GList *tokens, + GString *fileName, int line) { + if (tokens->getLength() != 2) { + error(-1, "Bad 'initialZoom' config file command (%s:%d)", + fileName->getCString(), line); + return; + } + delete initialZoom; + initialZoom = ((GString *)tokens->get(1))->copy(); +} + +void GlobalParams::parseFontRastControl(char *cmdName, FontRastControl *val, + GList *tokens, GString *fileName, + int line) { + GString *tok; + + if (tokens->getLength() != 2) { + error(-1, "Bad '%s' config file command (%s:%d)", + cmdName, fileName->getCString(), line); + return; + } + tok = (GString *)tokens->get(1); + if (!setFontRastControl(val, tok->getCString())) { + error(-1, "Bad '%s' config file command (%s:%d)", + cmdName, fileName->getCString(), line); + } +} + +void GlobalParams::parseURLCommand(GList *tokens, GString *fileName, + int line) { + if (tokens->getLength() != 2) { + error(-1, "Bad 'urlCommand' config file command (%s:%d)", + fileName->getCString(), line); + return; + } + if (urlCommand) { + delete urlCommand; + } + urlCommand = ((GString *)tokens->get(1))->copy(); +} + +void GlobalParams::parseYesNo(char *cmdName, GBool *flag, + GList *tokens, GString *fileName, int line) { + GString *tok; + + if (tokens->getLength() != 2) { + error(-1, "Bad '%s' config file command (%s:%d)", + cmdName, fileName->getCString(), line); + return; + } + tok = (GString *)tokens->get(1); + if (!tok->cmp("yes")) { + *flag = gTrue; + } else if (!tok->cmp("no")) { + *flag = gFalse; + } else { + error(-1, "Bad '%s' config file command (%s:%d)", + cmdName, fileName->getCString(), line); + } +} + +GlobalParams::~GlobalParams() { + GHashIter *iter; + GString *key; + GList *list; + + freeBuiltinFontTables(); + + delete macRomanReverseMap; + + delete nameToUnicode; + deleteGHash(cidToUnicodes, GString); + deleteGHash(residentUnicodeMaps, UnicodeMap); + deleteGHash(unicodeMaps, GString); + deleteGList(toUnicodeDirs, GString); + deleteGHash(displayFonts, DisplayFontParam); + deleteGHash(displayCIDFonts, DisplayFontParam); + deleteGHash(displayNamedCIDFonts, DisplayFontParam); + if (psFile) { + delete psFile; + } + deleteGHash(psFonts, PSFontParam); + deleteGList(psNamedFonts16, PSFontParam); + deleteGList(psFonts16, PSFontParam); + delete textEncoding; + deleteGList(fontDirs, GString); + delete initialZoom; + if (urlCommand) { + delete urlCommand; + } + + cMapDirs->startIter(&iter); + while (cMapDirs->getNext(&iter, &key, (void **)&list)) { + deleteGList(list, GString); + } + delete cMapDirs; + + delete cidToUnicodeCache; + delete unicodeMapCache; + delete cMapCache; +} + +//------------------------------------------------------------------------ +// accessors +//------------------------------------------------------------------------ + +CharCode GlobalParams::getMacRomanCharCode(char *charName) { + return macRomanReverseMap->lookup(charName); +} + +Unicode GlobalParams::mapNameToUnicode(char *charName) { + return nameToUnicode->lookup(charName); +} + +FILE *GlobalParams::getCIDToUnicodeFile(GString *collection) { + GString *fileName; + + if (!(fileName = (GString *)cidToUnicodes->lookup(collection))) { + return NULL; + } + return fopen(fileName->getCString(), "r"); +} + +UnicodeMap *GlobalParams::getResidentUnicodeMap(GString *encodingName) { + return (UnicodeMap *)residentUnicodeMaps->lookup(encodingName); +} + +FILE *GlobalParams::getUnicodeMapFile(GString *encodingName) { + GString *fileName; + + if (!(fileName = (GString *)unicodeMaps->lookup(encodingName))) { + return NULL; + } + return fopen(fileName->getCString(), "r"); +} + +FILE *GlobalParams::findCMapFile(GString *collection, GString *cMapName) { + GList *list; + GString *dir; + GString *fileName; + FILE *f; + int i; + + if (!(list = (GList *)cMapDirs->lookup(collection))) { + return NULL; + } + for (i = 0; i < list->getLength(); ++i) { + dir = (GString *)list->get(i); + fileName = appendToPath(dir->copy(), cMapName->getCString()); + f = fopen(fileName->getCString(), "r"); + delete fileName; + if (f) { + return f; + } + } + return NULL; +} + +FILE *GlobalParams::findToUnicodeFile(GString *name) { + GString *dir, *fileName; + FILE *f; + int i; + + for (i = 0; i < toUnicodeDirs->getLength(); ++i) { + dir = (GString *)toUnicodeDirs->get(i); + fileName = appendToPath(dir->copy(), name->getCString()); + f = fopen(fileName->getCString(), "r"); + delete fileName; + if (f) { + return f; + } + } + return NULL; +} + +DisplayFontParam *GlobalParams::getDisplayFont(GString *fontName) { + return (DisplayFontParam *)displayFonts->lookup(fontName); +} + +DisplayFontParam *GlobalParams::getDisplayCIDFont(GString *fontName, + GString *collection) { + DisplayFontParam *dfp; + + if (!fontName || + !(dfp = (DisplayFontParam *)displayNamedCIDFonts->lookup(fontName))) { + dfp = (DisplayFontParam *)displayCIDFonts->lookup(collection); + } + return dfp; +} + +PSFontParam *GlobalParams::getPSFont(GString *fontName) { + return (PSFontParam *)psFonts->lookup(fontName); +} + +PSFontParam *GlobalParams::getPSFont16(GString *fontName, + GString *collection, int wMode) { + PSFontParam *p; + int i; + + p = NULL; + if (fontName) { + for (i = 0; i < psNamedFonts16->getLength(); ++i) { + p = (PSFontParam *)psNamedFonts16->get(i); + if (!p->pdfFontName->cmp(fontName) && + p->wMode == wMode) { + break; + } + p = NULL; + } + } + if (!p && collection) { + for (i = 0; i < psFonts16->getLength(); ++i) { + p = (PSFontParam *)psFonts16->get(i); + if (!p->pdfFontName->cmp(collection) && + p->wMode == wMode) { + break; + } + p = NULL; + } + } + return p; +} + +GString *GlobalParams::findFontFile(GString *fontName, + char *ext1, char *ext2) { + GString *dir, *fileName; + FILE *f; + int i; + + for (i = 0; i < fontDirs->getLength(); ++i) { + dir = (GString *)fontDirs->get(i); + if (ext1) { + fileName = appendToPath(dir->copy(), fontName->getCString()); + fileName->append(ext1); + if ((f = fopen(fileName->getCString(), "r"))) { + fclose(f); + return fileName; + } + delete fileName; + } + if (ext2) { + fileName = appendToPath(dir->copy(), fontName->getCString()); + fileName->append(ext2); + if ((f = fopen(fileName->getCString(), "r"))) { + fclose(f); + return fileName; + } + delete fileName; + } + } + return NULL; +} + +CharCodeToUnicode *GlobalParams::getCIDToUnicode(GString *collection) { + return cidToUnicodeCache->getCIDToUnicode(collection); +} + +UnicodeMap *GlobalParams::getUnicodeMap(GString *encodingName) { + UnicodeMap *map; + + if ((map = getResidentUnicodeMap(encodingName))) { + map->incRefCnt(); + return map; + } + return unicodeMapCache->getUnicodeMap(encodingName); +} + +CMap *GlobalParams::getCMap(GString *collection, GString *cMapName) { + return cMapCache->getCMap(collection, cMapName); +} + +UnicodeMap *GlobalParams::getTextEncoding() { + return getUnicodeMap(textEncoding); +} + +//------------------------------------------------------------------------ +// functions to set parameters +//------------------------------------------------------------------------ + +void GlobalParams::setPSFile(char *file) { + if (psFile) { + delete psFile; + } + psFile = new GString(file); +} + +GBool GlobalParams::setPSPaperSize(char *size) { + if (!strcmp(size, "letter")) { + psPaperWidth = 612; + psPaperHeight = 792; + } else if (!strcmp(size, "legal")) { + psPaperWidth = 612; + psPaperHeight = 1008; + } else if (!strcmp(size, "A4")) { + psPaperWidth = 595; + psPaperHeight = 842; + } else if (!strcmp(size, "A3")) { + psPaperWidth = 842; + psPaperHeight = 1190; + } else { + return gFalse; + } + return gTrue; +} + +void GlobalParams::setPSPaperWidth(int width) { + psPaperWidth = width; +} + +void GlobalParams::setPSPaperHeight(int height) { + psPaperHeight = height; +} + +void GlobalParams::setPSDuplex(GBool duplex) { + psDuplex = duplex; +} + +void GlobalParams::setPSLevel(PSLevel level) { + psLevel = level; +} + +void GlobalParams::setPSEmbedType1(GBool embed) { + psEmbedType1 = embed; +} + +void GlobalParams::setPSEmbedTrueType(GBool embed) { + psEmbedTrueType = embed; +} + +void GlobalParams::setPSEmbedCIDPostScript(GBool embed) { + psEmbedCIDPostScript = embed; +} + +void GlobalParams::setPSEmbedCIDTrueType(GBool embed) { + psEmbedCIDTrueType = embed; +} + +void GlobalParams::setPSOPI(GBool opi) { + psOPI = opi; +} + +void GlobalParams::setPSASCIIHex(GBool hex) { + psASCIIHex = hex; +} + +void GlobalParams::setTextEncoding(char *encodingName) { + delete textEncoding; + textEncoding = new GString(encodingName); +} + +GBool GlobalParams::setTextEOL(char *s) { + if (!strcmp(s, "unix")) { + textEOL = eolUnix; + } else if (!strcmp(s, "dos")) { + textEOL = eolDOS; + } else if (!strcmp(s, "mac")) { + textEOL = eolMac; + } else { + return gFalse; + } + return gTrue; +} + +void GlobalParams::setInitialZoom(char *s) { + delete initialZoom; + initialZoom = new GString(s); +} + +GBool GlobalParams::setT1libControl(char *s) { + return setFontRastControl(&t1libControl, s); +} + +GBool GlobalParams::setFreeTypeControl(char *s) { + return setFontRastControl(&freetypeControl, s); +} + +GBool GlobalParams::setFontRastControl(FontRastControl *val, char *s) { + if (!strcmp(s, "none")) { + *val = fontRastNone; + } else if (!strcmp(s, "plain")) { + *val = fontRastPlain; + } else if (!strcmp(s, "low")) { + *val = fontRastAALow; + } else if (!strcmp(s, "high")) { + *val = fontRastAAHigh; + } else { + return gFalse; + } + return gTrue; +} + +void GlobalParams::setErrQuiet(GBool errQuietA) { + errQuiet = errQuietA; +} diff --git a/pdf/xpdf/GlobalParams.h b/pdf/xpdf/GlobalParams.h new file mode 100644 index 00000000..b6511109 --- /dev/null +++ b/pdf/xpdf/GlobalParams.h @@ -0,0 +1,273 @@ +//======================================================================== +// +// GlobalParams.h +// +// Copyright 2001-2002 Glyph & Cog, LLC +// +//======================================================================== + +#ifndef GLOBALPARAMS_H +#define GLOBALPARAMS_H + +#ifdef __GNUC__ +#pragma interface +#endif + +#include +#include "gtypes.h" +#include "CharTypes.h" + +class GString; +class GList; +class GHash; +class NameToCharCode; +class CharCodeToUnicode; +class CIDToUnicodeCache; +class UnicodeMap; +class UnicodeMapCache; +class CMap; +class CMapCache; +class GlobalParams; + +//------------------------------------------------------------------------ + +// The global parameters object. +extern GlobalParams *globalParams; + +//------------------------------------------------------------------------ + +enum DisplayFontParamKind { + displayFontX, + displayFontT1, + displayFontTT +}; + +class DisplayFontParam { +public: + + GString *name; // font name for 8-bit fonts and named + // CID fonts; collection name for + // generic CID fonts + DisplayFontParamKind kind; + union { + struct { + GString *xlfd; + GString *encoding; + } x; + struct { + GString *fileName; + } t1; + struct { + GString *fileName; + } tt; + }; + + DisplayFontParam(GString *nameA, DisplayFontParamKind kindA); + DisplayFontParam(char *nameA, char *xlfdA, char *encodingA); + ~DisplayFontParam(); +}; + +// Font rasterizer control. +enum FontRastControl { + fontRastNone, // don't use this rasterizer + fontRastPlain, // use it, without anti-aliasing + fontRastAALow, // use it, with low-level anti-aliasing + fontRastAAHigh // use it, with high-level anti-aliasing +}; + +//------------------------------------------------------------------------ + +class PSFontParam { +public: + + GString *pdfFontName; // PDF font name for 8-bit fonts and + // named 16-bit fonts; char collection + // name for generic 16-bit fonts + int wMode; // writing mode (0=horiz, 1=vert) for + // 16-bit fonts + GString *psFontName; // PostScript font name + GString *encoding; // encoding, for 16-bit fonts only + + PSFontParam(GString *pdfFontNameA, int wModeA, + GString *psFontNameA, GString *encodingA); + ~PSFontParam(); +}; + +//------------------------------------------------------------------------ + +enum PSLevel { + psLevel1, + psLevel1Sep, + psLevel2, + psLevel2Sep, + psLevel3, + psLevel3Sep +}; + +//------------------------------------------------------------------------ + +enum EndOfLineKind { + eolUnix, // LF + eolDOS, // CR+LF + eolMac // CR +}; + +//------------------------------------------------------------------------ + +class GlobalParams { +public: + + // Initialize the global parameters by attempting to read a config + // file. + GlobalParams(char *cfgFileName); + + ~GlobalParams(); + + //----- accessors + + CharCode getMacRomanCharCode(char *charName); + + Unicode mapNameToUnicode(char *charName); + FILE *getCIDToUnicodeFile(GString *collection); + UnicodeMap *getResidentUnicodeMap(GString *encodingName); + FILE *getUnicodeMapFile(GString *encodingName); + FILE *findCMapFile(GString *collection, GString *cMapName); + FILE *findToUnicodeFile(GString *name); + DisplayFontParam *getDisplayFont(GString *fontName); + DisplayFontParam *getDisplayCIDFont(GString *fontName, GString *collection); + GString *getPSFile() { return psFile; } + int getPSPaperWidth() { return psPaperWidth; } + int getPSPaperHeight() { return psPaperHeight; } + GBool getPSDuplex() { return psDuplex; } + PSLevel getPSLevel() { return psLevel; } + PSFontParam *getPSFont(GString *fontName); + PSFontParam *getPSFont16(GString *fontName, GString *collection, int wMode); + GBool getPSEmbedType1() { return psEmbedType1; } + GBool getPSEmbedTrueType() { return psEmbedTrueType; } + GBool getPSEmbedCIDPostScript() { return psEmbedCIDPostScript; } + GBool getPSEmbedCIDTrueType() { return psEmbedCIDTrueType; } + GBool getPSOPI() { return psOPI; } + GBool getPSASCIIHex() { return psASCIIHex; } + GString *getTextEncodingName() { return textEncoding; } + EndOfLineKind getTextEOL() { return textEOL; } + GString *findFontFile(GString *fontName, char *ext1, char *ext2); + GString *getInitialZoom() { return initialZoom; } + FontRastControl getT1libControl() { return t1libControl; } + FontRastControl getFreeTypeControl() { return freetypeControl; } + GString *getURLCommand() { return urlCommand; } + GBool getMapNumericCharNames() { return mapNumericCharNames; } + GBool getErrQuiet() { return errQuiet; } + + CharCodeToUnicode *getCIDToUnicode(GString *collection); + UnicodeMap *getUnicodeMap(GString *encodingName); + CMap *getCMap(GString *collection, GString *cMapName); + UnicodeMap *getTextEncoding(); + + //----- functions to set parameters + + void setPSFile(char *file); + GBool setPSPaperSize(char *size); + void setPSPaperWidth(int width); + void setPSPaperHeight(int height); + void setPSDuplex(GBool duplex); + void setPSLevel(PSLevel level); + void setPSEmbedType1(GBool embed); + void setPSEmbedTrueType(GBool embed); + void setPSEmbedCIDPostScript(GBool embed); + void setPSEmbedCIDTrueType(GBool embed); + void setPSOPI(GBool opi); + void setPSASCIIHex(GBool hex); + void setTextEncoding(char *encodingName); + GBool setTextEOL(char *s); + void setInitialZoom(char *s); + GBool setT1libControl(char *s); + GBool setFreeTypeControl(char *s); + void setErrQuiet(GBool errQuietA); + +private: + + void parseFile(GString *fileName, FILE *f); + void parseNameToUnicode(GList *tokens, GString *fileName, int line); + void parseCIDToUnicode(GList *tokens, GString *fileName, int line); + void parseUnicodeMap(GList *tokens, GString *fileName, int line); + void parseCMapDir(GList *tokens, GString *fileName, int line); + void parseToUnicodeDir(GList *tokens, GString *fileName, int line); + void parseDisplayFont(GList *tokens, GHash *fontHash, + DisplayFontParamKind kind, + GString *fileName, int line); + void parsePSFile(GList *tokens, GString *fileName, int line); + void parsePSPaperSize(GList *tokens, GString *fileName, int line); + void parsePSLevel(GList *tokens, GString *fileName, int line); + void parsePSFont(GList *tokens, GString *fileName, int line); + void parsePSFont16(char *cmdName, GList *fontList, + GList *tokens, GString *fileName, int line); + void parseTextEncoding(GList *tokens, GString *fileName, int line); + void parseTextEOL(GList *tokens, GString *fileName, int line); + void parseFontDir(GList *tokens, GString *fileName, int line); + void parseInitialZoom(GList *tokens, GString *fileName, int line); + void parseFontRastControl(char *cmdName, FontRastControl *val, + GList *tokens, GString *fileName, int line); + void parseURLCommand(GList *tokens, GString *fileName, int line); + void parseYesNo(char *cmdName, GBool *flag, + GList *tokens, GString *fileName, int line); + GBool setFontRastControl(FontRastControl *val, char *s); + + //----- static tables + + NameToCharCode * // mapping from char name to + macRomanReverseMap; // MacRomanEncoding index + + //----- user-modifiable settings + + NameToCharCode * // mapping from char name to Unicode + nameToUnicode; + GHash *cidToUnicodes; // files for mappings from char collections + // to Unicode, indexed by collection name + // [GString] + GHash *residentUnicodeMaps; // mappings from Unicode to char codes, + // indexed by encoding name [UnicodeMap] + GHash *unicodeMaps; // files for mappings from Unicode to char + // codes, indexed by encoding name [GString] + GHash *cMapDirs; // list of CMap dirs, indexed by collection + // name [GList[GString]] + GList *toUnicodeDirs; // list of ToUnicode CMap dirs [GString] + GHash *displayFonts; // display font info, indexed by font name + // [DisplayFontParam] + GHash *displayCIDFonts; // display CID font info, indexed by + // collection [DisplayFontParam] + GHash *displayNamedCIDFonts; // display CID font info, indexed by + // font name [DisplayFontParam] + GString *psFile; // PostScript file or command (for xpdf) + int psPaperWidth; // paper size, in PostScript points, for + int psPaperHeight; // PostScript output + GBool psDuplex; // enable duplexing in PostScript? + PSLevel psLevel; // PostScript level to generate + GHash *psFonts; // PostScript font info, indexed by PDF + // font name [PSFontParam] + GList *psNamedFonts16; // named 16-bit fonts [PSFontParam] + GList *psFonts16; // generic 16-bit fonts [PSFontParam] + GBool psEmbedType1; // embed Type 1 fonts? + GBool psEmbedTrueType; // embed TrueType fonts? + GBool psEmbedCIDPostScript; // embed CID PostScript fonts? + GBool psEmbedCIDTrueType; // embed CID TrueType fonts? + GBool psOPI; // generate PostScript OPI comments? + GBool psASCIIHex; // use ASCIIHex instead of ASCII85? + GString *textEncoding; // encoding (unicodeMap) to use for text + // output + EndOfLineKind textEOL; // type of EOL marker to use for text + // output + GList *fontDirs; // list of font dirs [GString] + GString *initialZoom; // initial zoom level + FontRastControl t1libControl; // t1lib rasterization mode + FontRastControl // FreeType rasterization mode + freetypeControl; + GString *urlCommand; // command executed for URL links + GBool mapNumericCharNames; // map numeric char names (from font subsets)? + GBool errQuiet; // suppress error messages? + + CIDToUnicodeCache *cidToUnicodeCache; + UnicodeMapCache *unicodeMapCache; + CMapCache *cMapCache; +}; + +#endif diff --git a/pdf/xpdf/ImageOutputDev.cc b/pdf/xpdf/ImageOutputDev.cc index 9cd12800..d6c2eb3e 100644 --- a/pdf/xpdf/ImageOutputDev.cc +++ b/pdf/xpdf/ImageOutputDev.cc @@ -2,7 +2,7 @@ // // ImageOutputDev.cc // -// Copyright 1998 Derek B. Noonburg +// Copyright 1998-2002 Glyph & Cog, LLC // //======================================================================== @@ -10,6 +10,7 @@ #pragma implementation #endif +#include #include #include #include @@ -22,10 +23,10 @@ #include "Stream.h" #include "ImageOutputDev.h" -ImageOutputDev::ImageOutputDev(char *fileRoot1, GBool dumpJPEG1) { - fileRoot = copyString(fileRoot1); +ImageOutputDev::ImageOutputDev(char *fileRootA, GBool dumpJPEGA) { + fileRoot = copyString(fileRootA); fileName = (char *)gmalloc(strlen(fileRoot) + 20); - dumpJPEG = dumpJPEG1; + dumpJPEG = dumpJPEGA; imgNum = 0; ok = gTrue; } @@ -40,9 +41,10 @@ void ImageOutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str, GBool inlineImg) { FILE *f; int c; + int size, i; // dump JPEG file - if (dumpJPEG && str->getKind() == strDCT) { + if (dumpJPEG && str->getKind() == strDCT && !inlineImg) { // open the image file sprintf(fileName, "%s-%03d.jpg", fileRoot, imgNum); @@ -60,6 +62,7 @@ void ImageOutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str, while ((c = str->getChar()) != EOF) fputc(c, f); + str->close(); fclose(f); // dump PBM file @@ -79,26 +82,32 @@ void ImageOutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str, str->reset(); // copy the stream - while ((c = str->getChar()) != EOF) - fputc(c, f); + size = height * ((width + 7) / 8); + for (i = 0; i < size; ++i) { + fputc(str->getChar(), f); + } + str->close(); fclose(f); } } void ImageOutputDev::drawImage(GfxState *state, Object *ref, Stream *str, int width, int height, - GfxImageColorMap *colorMap, GBool inlineImg) { + GfxImageColorMap *colorMap, + int *maskColors, GBool inlineImg) { FILE *f; ImageStream *imgStr; Guchar pixBuf[4]; GfxRGB rgb; int x, y; int c; + int size, i; // dump JPEG file if (dumpJPEG && str->getKind() == strDCT && - colorMap->getNumPixelComps() == 3) { + colorMap->getNumPixelComps() == 3 && + !inlineImg) { // open the image file sprintf(fileName, "%s-%03d.jpg", fileRoot, imgNum); @@ -116,6 +125,33 @@ void ImageOutputDev::drawImage(GfxState *state, Object *ref, Stream *str, while ((c = str->getChar()) != EOF) fputc(c, f); + str->close(); + fclose(f); + + // dump PBM file + } else if (colorMap->getNumPixelComps() == 1 && + colorMap->getBits() == 1) { + + // open the image file and write the PBM header + sprintf(fileName, "%s-%03d.pbm", fileRoot, imgNum); + ++imgNum; + if (!(f = fopen(fileName, "wb"))) { + error(-1, "Couldn't open image file '%s'", fileName); + return; + } + fprintf(f, "P4\n"); + fprintf(f, "%d %d\n", width, height); + + // initialize stream + str->reset(); + + // copy the stream + size = height * ((width + 7) / 8); + for (i = 0; i < size; ++i) { + fputc(str->getChar(), f); + } + + str->close(); fclose(f); // dump PPM file diff --git a/pdf/xpdf/ImageOutputDev.h b/pdf/xpdf/ImageOutputDev.h index 60e62249..58288411 100644 --- a/pdf/xpdf/ImageOutputDev.h +++ b/pdf/xpdf/ImageOutputDev.h @@ -2,7 +2,7 @@ // // ImageOutputDev.h // -// Copyright 1998 Derek B. Noonburg +// Copyright 1998-2002 Glyph & Cog, LLC // //======================================================================== @@ -30,7 +30,7 @@ public: // -NNN.. Normally, all images are written as PBM // (.pbm) or PPM (.ppm) files. If is set, JPEG images are // written as JPEG (.jpg) files. - ImageOutputDev(char *fileRoot1, GBool dumpJPEG1); + ImageOutputDev(char *fileRootA, GBool dumpJPEGA); // Destructor. virtual ~ImageOutputDev(); @@ -38,6 +38,13 @@ public: // Check if file was successfully created. virtual GBool isOk() { return ok; } + // Does this device use beginType3Char/endType3Char? Otherwise, + // text in Type 3 fonts will be drawn with drawChar/drawString. + virtual GBool interpretType3Chars() { return gFalse; } + + // Does this device need non-text content? + virtual GBool needNonText() { return gFalse; } + //---- get info about output device // Does this device use upside-down coordinates? @@ -53,7 +60,7 @@ public: GBool inlineImg); virtual void drawImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, - GBool inlineImg); + int *maskColors, GBool inlineImg); private: diff --git a/pdf/xpdf/LTKOutputDev.cc b/pdf/xpdf/LTKOutputDev.cc index 8b376e41..ba5a332b 100644 --- a/pdf/xpdf/LTKOutputDev.cc +++ b/pdf/xpdf/LTKOutputDev.cc @@ -2,7 +2,7 @@ // // LTKOutputDev.cc // -// Copyright 1998 Derek B. Noonburg +// Copyright 1998-2002 Glyph & Cog, LLC // //======================================================================== @@ -10,6 +10,7 @@ #pragma implementation #endif +#include #include #include #include @@ -23,20 +24,23 @@ #include "GfxState.h" #include "GfxFont.h" #include "Error.h" -#include "Params.h" #include "LTKOutputDev.h" //------------------------------------------------------------------------ -LTKOutputDev::LTKOutputDev(LTKWindow *win1, unsigned long paperColor): - XOutputDev(win1->getDisplay(), - ((LTKScrollingCanvas *)win1->findWidget("canvas"))->getPixmap(), - 0, win1->getColormap(), paperColor) +LTKOutputDev::LTKOutputDev(LTKWindow *winA, GBool reverseVideoA, + unsigned long paperColor, GBool installCmap, + GBool rgbCubeSize, GBool incrementalUpdateA): + XOutputDev(winA->getDisplay(), + ((LTKScrollingCanvas *)winA->findWidget("canvas"))->getPixmap(), + 0, winA->getColormap(), reverseVideoA, paperColor, + installCmap, rgbCubeSize) { - win = win1; + win = winA; canvas = (LTKScrollingCanvas *)win->findWidget("canvas"); setPixmap(canvas->getPixmap(), canvas->getRealWidth(), canvas->getRealHeight()); + incrementalUpdate = incrementalUpdateA; } LTKOutputDev::~LTKOutputDev() { @@ -48,10 +52,21 @@ void LTKOutputDev::startPage(int pageNum, GfxState *state) { setPixmap(canvas->getPixmap(), canvas->getRealWidth(), canvas->getRealHeight()); XOutputDev::startPage(pageNum, state); - canvas->redraw(); + if (incrementalUpdate) { + canvas->redraw(); + } +} + +void LTKOutputDev::endPage() { + if (!incrementalUpdate) { + canvas->redraw(); + } + XOutputDev::endPage(); } void LTKOutputDev::dump() { - canvas->redraw(); + if (incrementalUpdate) { + canvas->redraw(); + } XOutputDev::dump(); } diff --git a/pdf/xpdf/LTKOutputDev.h b/pdf/xpdf/LTKOutputDev.h index f8d7ddad..7b996dc2 100644 --- a/pdf/xpdf/LTKOutputDev.h +++ b/pdf/xpdf/LTKOutputDev.h @@ -2,7 +2,7 @@ // // LTKOutputDev.h // -// Copyright 1998 Derek B. Noonburg +// Copyright 1998-2002 Glyph & Cog, LLC // //======================================================================== @@ -25,7 +25,9 @@ class LTKWindow; class LTKOutputDev: public XOutputDev { public: - LTKOutputDev(LTKWindow *win1, unsigned long paperColor); + LTKOutputDev(LTKWindow *winA, GBool reverseVideoA, + unsigned long paperColor, GBool installCmap, + GBool rgbCubeSize, GBool incrementalUpdateA); ~LTKOutputDev(); @@ -34,6 +36,9 @@ public: // Start a page. virtual void startPage(int pageNum, GfxState *state); + // End a page. + virtual void endPage(); + // Dump page contents to display. virtual void dump(); @@ -41,6 +46,7 @@ private: LTKWindow *win; // window LTKScrollingCanvas *canvas; // drawing canvas + GBool incrementalUpdate; // incrementally update the display? }; #endif diff --git a/pdf/xpdf/Lexer.cc b/pdf/xpdf/Lexer.cc index 4ca8cfe9..d0374691 100644 --- a/pdf/xpdf/Lexer.cc +++ b/pdf/xpdf/Lexer.cc @@ -2,7 +2,7 @@ // // Lexer.cc // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -10,6 +10,7 @@ #pragma implementation #endif +#include #include #include #include @@ -44,22 +45,22 @@ static char specialChars[256] = { // Lexer //------------------------------------------------------------------------ -Lexer::Lexer(Stream *str) { +Lexer::Lexer(XRef *xref, Stream *str) { Object obj; curStr.initStream(str); - streams = new Array(); + streams = new Array(xref); streams->add(curStr.copy(&obj)); strPtr = 0; freeArray = gTrue; curStr.streamReset(); } -Lexer::Lexer(Object *obj) { +Lexer::Lexer(XRef *xref, Object *obj) { Object obj2; if (obj->isStream()) { - streams = new Array(); + streams = new Array(xref); freeArray = gTrue; streams->add(obj->copy(&obj2)); } else { @@ -204,11 +205,15 @@ Object *Lexer::getObj(Object *obj) { case '(': ++numParen; + c2 = c; break; case ')': - if (--numParen == 0) + if (--numParen == 0) { done = gTrue; + } else { + c2 = c; + } break; case '\\': diff --git a/pdf/xpdf/Lexer.h b/pdf/xpdf/Lexer.h index 70144b86..8a01ab25 100644 --- a/pdf/xpdf/Lexer.h +++ b/pdf/xpdf/Lexer.h @@ -2,7 +2,7 @@ // // Lexer.h // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -16,6 +16,8 @@ #include "Object.h" #include "Stream.h" +class XRef; + #define tokBufSize 128 // size of token buffer //------------------------------------------------------------------------ @@ -27,11 +29,11 @@ public: // Construct a lexer for a single stream. Deletes the stream when // lexer is deleted. - Lexer(Stream *str); + Lexer(XRef *xref, Stream *str); // Construct a lexer for a stream or array of streams (assumes obj // is either a stream or array of streams). - Lexer(Object *obj); + Lexer(XRef *xref, Object *obj); // Destructor. ~Lexer(); @@ -49,13 +51,14 @@ public: Stream *getStream() { return curStr.isNone() ? (Stream *)NULL : curStr.getStream(); } - // Get current position in file. + // Get current position in file. This is only used for error + // messages, so it returns an int instead of a Guint. int getPos() - { return curStr.isNone() ? -1 : curStr.streamGetPos(); } + { return curStr.isNone() ? -1 : (int)curStr.streamGetPos(); } // Set position in file. - void setPos(int pos) - { if (!curStr.isNone()) curStr.streamSetPos(pos); } + void setPos(Guint pos, int dir = 0) + { if (!curStr.isNone()) curStr.streamSetPos(pos, dir); } private: diff --git a/pdf/xpdf/Link.cc b/pdf/xpdf/Link.cc index adb8c97f..af64c8be 100644 --- a/pdf/xpdf/Link.cc +++ b/pdf/xpdf/Link.cc @@ -2,7 +2,7 @@ // // Link.cc // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -10,6 +10,7 @@ #pragma implementation #endif +#include #include #include #include "gmem.h" @@ -28,31 +29,27 @@ static GString *getFileSpecName(Object *fileSpecObj); // LinkDest //------------------------------------------------------------------------ -LinkDest::LinkDest(Array *a, GBool pageIsRef1) { +LinkDest::LinkDest(Array *a) { Object obj1, obj2; // initialize fields - pageIsRef = pageIsRef1; left = bottom = right = top = zoom = 0; ok = gFalse; // get page - if (pageIsRef) { - if (!a->getNF(0, &obj1)->isRef()) { - error(-1, "Bad annotation destination"); - goto err2; - } + a->getNF(0, &obj1); + if (obj1.isInt()) { + pageNum = obj1.getInt() + 1; + pageIsRef = gFalse; + } else if (obj1.isRef()) { pageRef.num = obj1.getRefNum(); pageRef.gen = obj1.getRefGen(); - obj1.free(); + pageIsRef = gTrue; } else { - if (!a->get(0, &obj1)->isInt()) { - error(-1, "Bad annotation destination"); - goto err2; - } - pageNum = obj1.getInt() + 1; - obj1.free(); + error(-1, "Bad annotation destination"); + goto err2; } + obj1.free(); // get destination type a->get(1, &obj1); @@ -220,7 +217,7 @@ LinkGoTo::LinkGoTo(Object *destObj) { // destination dictionary } else if (destObj->isArray()) { - dest = new LinkDest(destObj->getArray(), gTrue); + dest = new LinkDest(destObj->getArray()); if (!dest->isOk()) { delete dest; dest = NULL; @@ -258,7 +255,7 @@ LinkGoToR::LinkGoToR(Object *fileSpecObj, Object *destObj) { // destination dictionary } else if (destObj->isArray()) { - dest = new LinkDest(destObj->getArray(), gFalse); + dest = new LinkDest(destObj->getArray()); if (!dest->isOk()) { delete dest; dest = NULL; @@ -384,8 +381,8 @@ LinkNamed::~LinkNamed() { // LinkUnknown //------------------------------------------------------------------------ -LinkUnknown::LinkUnknown(char *action1) { - action = new GString(action1); +LinkUnknown::LinkUnknown(char *actionA) { + action = new GString(actionA); } LinkUnknown::~LinkUnknown() { @@ -445,13 +442,16 @@ Link::Link(Dict *dict, GString *baseURI) { } // get border - borderW = 0; + borderW = 1; if (!dict->lookup("Border", &obj1)->isNull()) { - if (obj1.isArray() && obj1.arrayGet(2, &obj2)->isNum()) - borderW = obj2.getNum(); - else - error(-1, "Bad annotation border"); - obj2.free(); + if (obj1.isArray() && obj1.arrayGetLength() >= 3) { + if (obj1.arrayGet(2, &obj2)->isNum()) { + borderW = obj2.getNum(); + } else { + error(-1, "Bad annotation border"); + } + obj2.free(); + } } obj1.free(); @@ -578,7 +578,7 @@ Links::~Links() { LinkAction *Links::find(double x, double y) { int i; - for (i = 0; i < numLinks; ++i) { + for (i = numLinks - 1; i >= 0; --i) { if (links[i]->inRect(x, y)) { return links[i]->getAction(); } diff --git a/pdf/xpdf/Link.h b/pdf/xpdf/Link.h index 7e00510c..4c644b86 100644 --- a/pdf/xpdf/Link.h +++ b/pdf/xpdf/Link.h @@ -2,7 +2,7 @@ // // Link.h // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -63,10 +63,8 @@ enum LinkDestKind { class LinkDest { public: - // Build a LinkDest from the array. If is true, the - // page is specified by an object reference; otherwise the page is - // specified by a (zero-relative) page number. - LinkDest(Array *a, GBool pageIsRef1); + // Build a LinkDest from the array. + LinkDest(Array *a); // Copy a LinkDest. LinkDest *copy() { return new LinkDest(this); } @@ -249,7 +247,7 @@ class LinkUnknown: public LinkAction { public: // Build a LinkUnknown with the specified action type. - LinkUnknown(char *action1); + LinkUnknown(char *actionA); // Destructor. virtual ~LinkUnknown(); diff --git a/pdf/xpdf/Makefile.am b/pdf/xpdf/Makefile.am index c3806120..ed2d451c 100644 --- a/pdf/xpdf/Makefile.am +++ b/pdf/xpdf/Makefile.am @@ -5,7 +5,8 @@ INCLUDES = \ -DDATADIR=\""$(datadir)"\" \ -DGNOMELOCALEDIR=\""$(datadir)/locale"\" \ $(EXTRA_GLIB_CFLAGS) \ - $(EXTRA_GNOME_CFLAGS) + $(EXTRA_GNOME_CFLAGS) \ + $(libpaper_CFLAGS) if WITH_GNOME gui = gpdf @@ -20,54 +21,81 @@ bin_PROGRAMS = $(gui) bonobo-application-x-pdf common_sources = \ + Annot.cc \ + Annot.h \ Array.cc \ Array.h \ BaseFile.h \ + BuiltinFont.cc \ + BuiltinFont.h \ + BuiltinFontTables.cc \ + BuiltinFontTables.h \ + CMap.cc \ + CMap.h \ Catalog.cc \ Catalog.h \ - CompactFontInfo.h \ + CharCodeToUnicode.cc \ + CharCodeToUnicode.h \ + CharTypes.h \ + CompactFontTables.h \ Decrypt.cc \ Decrypt.h \ Dict.cc \ Dict.h \ + DisplayFontTable.h \ Error.cc \ Error.h \ - FontEncoding.cc \ - FontEncoding.h \ + ErrorCodes.h \ + FTFont.cc \ + FTFont.h \ + FontEncodingTables.cc \ + FontEncodingTables.h \ FontFile.cc \ FontFile.h \ - FontInfo.h \ - FormWidget.cc \ - FormWidget.h \ + Function.cc \ + Function.h \ Gfx.cc \ Gfx.h \ GfxFont.cc \ GfxFont.h \ GfxState.cc \ GfxState.h \ + GlobalParams.cc \ + GlobalParams.h \ Lexer.cc \ Lexer.h \ Link.cc \ Link.h \ + NameToCharCode.cc \ + NameToCharCode.h \ + NameToUnicodeTable.h \ Object.cc \ Object.h \ OutputDev.cc \ OutputDev.h \ + PDFDoc.cc \ + PDFDoc.h \ + PSTokenizer.cc \ + PSTokenizer.h \ Page.cc \ Page.h \ - Params.cc \ - Params.h \ Parser.cc \ Parser.h \ - PDFDoc.cc \ - PDFDoc.h \ - StdFontInfo.h \ + SFont.cc \ + SFont.h \ + Stream-CCITT.h \ Stream.cc \ Stream.h \ - Stream-CCITT.h \ - TextOutputDev.h \ - TextOutputFontInfo.h \ + T1Font.cc \ + T1Font.h \ + TTFont.cc \ + TTFont.h \ TextOutputDev.cc \ + TextOutputDev.h \ + UTF8.h \ + UnicodeMap.cc \ + UnicodeMap.h \ + UnicodeMapTables.h \ XRef.cc \ XRef.h @@ -100,24 +128,19 @@ bonobo_application_x_pdf_LDADD = \ $(GNOME_LIBDIR) \ $(EXTRA_GNOME_LIBS) \ $(EXTRA_GLIB_LIBS) \ - $(INTLLIBS) + $(INTLLIBS) \ + $(libpaper_CFLAGS) xpdf_SOURCES = \ $(common_sources) \ XOutputDev.cc \ - SFont.cc \ - SFont.h \ - T1Font.cc \ - T1Font.h \ - TTFont.cc \ - TTFont.h \ LTKOutputDev.cc \ PSOutputDev.cc \ PSOutputDev.h \ xpdf.cc xpdf_CFLAGS = $(X_CFLAGS) -xpdf_LDADD = ../goo/libgoo.a ../ltk/libltk.a -lXpm $(EXTRA_GNOME_LIBS) +xpdf_LDADD = ../goo/libgoo.a ../ltk/libltk.a -lXpm $(EXTRA_GNOME_LIBS) $(libpaper_CFLAGS) #pdfimages_SOURCES = # $(common_sources) diff --git a/pdf/xpdf/NameToCharCode.cc b/pdf/xpdf/NameToCharCode.cc new file mode 100644 index 00000000..b9cde77d --- /dev/null +++ b/pdf/xpdf/NameToCharCode.cc @@ -0,0 +1,115 @@ +//======================================================================== +// +// NameToCharCode.cc +// +// Copyright 2001-2002 Glyph & Cog, LLC +// +//======================================================================== + +#ifdef __GNUC__ +#pragma implementation +#endif + +#include +#include +#include "gmem.h" +#include "NameToCharCode.h" + +//------------------------------------------------------------------------ + +struct NameToCharCodeEntry { + char *name; + CharCode c; +}; + +//------------------------------------------------------------------------ + +NameToCharCode::NameToCharCode() { + int i; + + size = 31; + len = 0; + tab = (NameToCharCodeEntry *)gmalloc(size * sizeof(NameToCharCodeEntry)); + for (i = 0; i < size; ++i) { + tab[i].name = NULL; + } +} + +NameToCharCode::~NameToCharCode() { + int i; + + for (i = 0; i < size; ++i) { + if (tab[i].name) { + gfree(tab[i].name); + } + } + gfree(tab); +} + +void NameToCharCode::add(char *name, CharCode c) { + NameToCharCodeEntry *oldTab; + int h, i, oldSize; + + // expand the table if necessary + if (len >= size / 2) { + oldSize = size; + oldTab = tab; + size = 2*size + 1; + tab = (NameToCharCodeEntry *)gmalloc(size * sizeof(NameToCharCodeEntry)); + for (h = 0; h < size; ++h) { + tab[h].name = NULL; + } + for (i = 0; i < oldSize; ++i) { + if (oldTab[i].name) { + h = hash(oldTab[i].name); + while (tab[h].name) { + if (++h == size) { + h = 0; + } + } + tab[h] = oldTab[i]; + } + } + gfree(oldTab); + } + + // add the new name + h = hash(name); + while (tab[h].name && strcmp(tab[h].name, name)) { + if (++h == size) { + h = 0; + } + } + if (!tab[h].name) { + tab[h].name = copyString(name); + } + tab[h].c = c; + + ++len; +} + +CharCode NameToCharCode::lookup(char *name) { + int h; + + h = hash(name); + while (tab[h].name) { + if (!strcmp(tab[h].name, name)) { + return tab[h].c; + } + if (++h == size) { + h = 0; + } + } + return 0; +} + +int NameToCharCode::hash(char *name) { + char *p; + unsigned int h; + + h = 0; + for (p = name; *p; ++p) { + h = 17 * h + (int)(*p & 0xff); + } + return (int)(h % size); +} diff --git a/pdf/xpdf/NameToCharCode.h b/pdf/xpdf/NameToCharCode.h new file mode 100644 index 00000000..22e41b61 --- /dev/null +++ b/pdf/xpdf/NameToCharCode.h @@ -0,0 +1,40 @@ +//======================================================================== +// +// NameToCharCode.h +// +// Copyright 2001-2002 Glyph & Cog, LLC +// +//======================================================================== + +#ifndef NAMETOCHARCODE_H +#define NAMETOCHARCODE_H + +#ifdef __GNUC__ +#pragma interface +#endif + +#include "CharTypes.h" + +struct NameToCharCodeEntry; + +//------------------------------------------------------------------------ + +class NameToCharCode { +public: + + NameToCharCode(); + ~NameToCharCode(); + + void add(char *name, CharCode c); + CharCode lookup(char *name); + +private: + + int hash(char *name); + + NameToCharCodeEntry *tab; + int size; + int len; +}; + +#endif diff --git a/pdf/xpdf/NameToUnicodeTable.h b/pdf/xpdf/NameToUnicodeTable.h new file mode 100644 index 00000000..432fafb3 --- /dev/null +++ b/pdf/xpdf/NameToUnicodeTable.h @@ -0,0 +1,1055 @@ +//======================================================================== +// +// NameToUnicodeTable.h +// +// Copyright 2001-2002 Glyph & Cog, LLC +// +//======================================================================== + +static struct { + Unicode u; + char *name; +} nameToUnicodeTab[] = { + {0x0041, "A"}, + {0x00c6, "AE"}, + {0x01fc, "AEacute"}, + {0x00c6, "AEsmall"}, + {0x00c1, "Aacute"}, + {0x00c1, "Aacutesmall"}, + {0x0102, "Abreve"}, + {0x00c2, "Acircumflex"}, + {0x00c2, "Acircumflexsmall"}, + {0xf6c9, "Acute"}, + {0xf6c9, "Acutesmall"}, + {0x00c4, "Adieresis"}, + {0x00c4, "Adieresissmall"}, + {0x00c0, "Agrave"}, + {0x00c0, "Agravesmall"}, + {0x0391, "Alpha"}, + {0x0386, "Alphatonos"}, + {0x0100, "Amacron"}, + {0x0104, "Aogonek"}, + {0x00c5, "Aring"}, + {0x01fa, "Aringacute"}, + {0x00c5, "Aringsmall"}, + {0x0041, "Asmall"}, + {0x00c3, "Atilde"}, + {0x00c3, "Atildesmall"}, + {0x0042, "B"}, + {0x0392, "Beta"}, + {0xf6f4, "Brevesmall"}, + {0x0042, "Bsmall"}, + {0x0043, "C"}, + {0x0106, "Cacute"}, + {0xf6ca, "Caron"}, + {0xf6ca, "Caronsmall"}, + {0x010c, "Ccaron"}, + {0x00c7, "Ccedilla"}, + {0x00c7, "Ccedillasmall"}, + {0x0108, "Ccircumflex"}, + {0x010a, "Cdotaccent"}, + {0xf7b8, "Cedillasmall"}, + {0x03a7, "Chi"}, + {0xf6f6, "Circumflexsmall"}, + {0x0043, "Csmall"}, + {0x0044, "D"}, + {0x010e, "Dcaron"}, + {0x0110, "Dcroat"}, + {0x2206, "Delta"}, + {0xf6cb, "Dieresis"}, + {0xf6cc, "DieresisAcute"}, + {0xf6cd, "DieresisGrave"}, + {0xf6cb, "Dieresissmall"}, + {0xf6f7, "Dotaccentsmall"}, + {0x0044, "Dsmall"}, + {0x0045, "E"}, + {0x00c9, "Eacute"}, + {0x00c9, "Eacutesmall"}, + {0x0114, "Ebreve"}, + {0x011a, "Ecaron"}, + {0x00ca, "Ecircumflex"}, + {0x00ca, "Ecircumflexsmall"}, + {0x00cb, "Edieresis"}, + {0x00cb, "Edieresissmall"}, + {0x0116, "Edotaccent"}, + {0x00c8, "Egrave"}, + {0x00c8, "Egravesmall"}, + {0x0112, "Emacron"}, + {0x014a, "Eng"}, + {0x0118, "Eogonek"}, + {0x0395, "Epsilon"}, + {0x0388, "Epsilontonos"}, + {0x0045, "Esmall"}, + {0x0397, "Eta"}, + {0x0389, "Etatonos"}, + {0x00d0, "Eth"}, + {0x00d0, "Ethsmall"}, + {0x20ac, "Euro"}, + {0x0046, "F"}, + {0x0046, "Fsmall"}, + {0x0047, "G"}, + {0x0393, "Gamma"}, + {0x011e, "Gbreve"}, + {0x01e6, "Gcaron"}, + {0x011c, "Gcircumflex"}, + {0x0122, "Gcommaaccent"}, + {0x0120, "Gdotaccent"}, + {0xf6ce, "Grave"}, + {0xf6ce, "Gravesmall"}, + {0x0047, "Gsmall"}, + {0x0048, "H"}, + {0x25cf, "H18533"}, + {0x25aa, "H18543"}, + {0x25ab, "H18551"}, + {0x25a1, "H22073"}, + {0x0126, "Hbar"}, + {0x0124, "Hcircumflex"}, + {0x0048, "Hsmall"}, + {0xf6cf, "Hungarumlaut"}, + {0xf6cf, "Hungarumlautsmall"}, + {0x0049, "I"}, + {0x0132, "IJ"}, + {0x00cd, "Iacute"}, + {0x00cd, "Iacutesmall"}, + {0x012c, "Ibreve"}, + {0x00ce, "Icircumflex"}, + {0x00ce, "Icircumflexsmall"}, + {0x00cf, "Idieresis"}, + {0x00cf, "Idieresissmall"}, + {0x0130, "Idotaccent"}, + {0x2111, "Ifraktur"}, + {0x00cc, "Igrave"}, + {0x00cc, "Igravesmall"}, + {0x012a, "Imacron"}, + {0x012e, "Iogonek"}, + {0x0399, "Iota"}, + {0x03aa, "Iotadieresis"}, + {0x038a, "Iotatonos"}, + {0x0049, "Ismall"}, + {0x0128, "Itilde"}, + {0x004a, "J"}, + {0x0134, "Jcircumflex"}, + {0x004a, "Jsmall"}, + {0x004b, "K"}, + {0x039a, "Kappa"}, + {0x0136, "Kcommaaccent"}, + {0x004b, "Ksmall"}, + {0x004c, "L"}, + {0xf6bf, "LL"}, + {0x0139, "Lacute"}, + {0x039b, "Lambda"}, + {0x013d, "Lcaron"}, + {0x013b, "Lcommaaccent"}, + {0x013f, "Ldot"}, + {0x0141, "Lslash"}, + {0x0141, "Lslashsmall"}, + {0x004c, "Lsmall"}, + {0x004d, "M"}, + {0xf6d0, "Macron"}, + {0xf6d0, "Macronsmall"}, + {0x004d, "Msmall"}, + {0x039c, "Mu"}, + {0x004e, "N"}, + {0x0143, "Nacute"}, + {0x0147, "Ncaron"}, + {0x0145, "Ncommaaccent"}, + {0x004e, "Nsmall"}, + {0x00d1, "Ntilde"}, + {0x00d1, "Ntildesmall"}, + {0x039d, "Nu"}, + {0x004f, "O"}, + {0x0152, "OE"}, + {0x0152, "OEsmall"}, + {0x00d3, "Oacute"}, + {0x00d3, "Oacutesmall"}, + {0x014e, "Obreve"}, + {0x00d4, "Ocircumflex"}, + {0x00d4, "Ocircumflexsmall"}, + {0x00d6, "Odieresis"}, + {0x00d6, "Odieresissmall"}, + {0xf6fb, "Ogoneksmall"}, + {0x00d2, "Ograve"}, + {0x00d2, "Ogravesmall"}, + {0x01a0, "Ohorn"}, + {0x0150, "Ohungarumlaut"}, + {0x014c, "Omacron"}, + {0x2126, "Omega"}, + {0x038f, "Omegatonos"}, + {0x039f, "Omicron"}, + {0x038c, "Omicrontonos"}, + {0x00d8, "Oslash"}, + {0x01fe, "Oslashacute"}, + {0x00d8, "Oslashsmall"}, + {0x004f, "Osmall"}, + {0x00d5, "Otilde"}, + {0x00d5, "Otildesmall"}, + {0x0050, "P"}, + {0x03a6, "Phi"}, + {0x03a0, "Pi"}, + {0x03a8, "Psi"}, + {0x0050, "Psmall"}, + {0x0051, "Q"}, + {0x0051, "Qsmall"}, + {0x0052, "R"}, + {0x0154, "Racute"}, + {0x0158, "Rcaron"}, + {0x0156, "Rcommaaccent"}, + {0x211c, "Rfraktur"}, + {0x03a1, "Rho"}, + {0xf6fc, "Ringsmall"}, + {0x0052, "Rsmall"}, + {0x0053, "S"}, + {0x250c, "SF010000"}, + {0x2514, "SF020000"}, + {0x2510, "SF030000"}, + {0x2518, "SF040000"}, + {0x253c, "SF050000"}, + {0x252c, "SF060000"}, + {0x2534, "SF070000"}, + {0x251c, "SF080000"}, + {0x2524, "SF090000"}, + {0x2500, "SF100000"}, + {0x2502, "SF110000"}, + {0x2561, "SF190000"}, + {0x2562, "SF200000"}, + {0x2556, "SF210000"}, + {0x2555, "SF220000"}, + {0x2563, "SF230000"}, + {0x2551, "SF240000"}, + {0x2557, "SF250000"}, + {0x255d, "SF260000"}, + {0x255c, "SF270000"}, + {0x255b, "SF280000"}, + {0x255e, "SF360000"}, + {0x255f, "SF370000"}, + {0x255a, "SF380000"}, + {0x2554, "SF390000"}, + {0x2569, "SF400000"}, + {0x2566, "SF410000"}, + {0x2560, "SF420000"}, + {0x2550, "SF430000"}, + {0x256c, "SF440000"}, + {0x2567, "SF450000"}, + {0x2568, "SF460000"}, + {0x2564, "SF470000"}, + {0x2565, "SF480000"}, + {0x2559, "SF490000"}, + {0x2558, "SF500000"}, + {0x2552, "SF510000"}, + {0x2553, "SF520000"}, + {0x256b, "SF530000"}, + {0x256a, "SF540000"}, + {0x015a, "Sacute"}, + {0x0160, "Scaron"}, + {0x0160, "Scaronsmall"}, + {0x015e, "Scedilla"}, + {0x015c, "Scircumflex"}, + {0x0218, "Scommaaccent"}, + {0x03a3, "Sigma"}, + {0x0053, "Ssmall"}, + {0x0054, "T"}, + {0x03a4, "Tau"}, + {0x0166, "Tbar"}, + {0x0164, "Tcaron"}, + {0x0162, "Tcommaaccent"}, + {0x0398, "Theta"}, + {0x00de, "Thorn"}, + {0x00de, "Thornsmall"}, + {0xf6fe, "Tildesmall"}, + {0x0054, "Tsmall"}, + {0x0055, "U"}, + {0x00da, "Uacute"}, + {0x00da, "Uacutesmall"}, + {0x016c, "Ubreve"}, + {0x00db, "Ucircumflex"}, + {0x00db, "Ucircumflexsmall"}, + {0x00dc, "Udieresis"}, + {0x00dc, "Udieresissmall"}, + {0x00d9, "Ugrave"}, + {0x00d9, "Ugravesmall"}, + {0x01af, "Uhorn"}, + {0x0170, "Uhungarumlaut"}, + {0x016a, "Umacron"}, + {0x0172, "Uogonek"}, + {0x03a5, "Upsilon"}, + {0x03d2, "Upsilon1"}, + {0x03ab, "Upsilondieresis"}, + {0x038e, "Upsilontonos"}, + {0x016e, "Uring"}, + {0x0055, "Usmall"}, + {0x0168, "Utilde"}, + {0x0056, "V"}, + {0x0056, "Vsmall"}, + {0x0057, "W"}, + {0x1e82, "Wacute"}, + {0x0174, "Wcircumflex"}, + {0x1e84, "Wdieresis"}, + {0x1e80, "Wgrave"}, + {0x0057, "Wsmall"}, + {0x0058, "X"}, + {0x039e, "Xi"}, + {0x0058, "Xsmall"}, + {0x0059, "Y"}, + {0x00dd, "Yacute"}, + {0x00dd, "Yacutesmall"}, + {0x0176, "Ycircumflex"}, + {0x0178, "Ydieresis"}, + {0x0178, "Ydieresissmall"}, + {0x1ef2, "Ygrave"}, + {0x0059, "Ysmall"}, + {0x005a, "Z"}, + {0x0179, "Zacute"}, + {0x017d, "Zcaron"}, + {0x017d, "Zcaronsmall"}, + {0x017b, "Zdotaccent"}, + {0x0396, "Zeta"}, + {0x005a, "Zsmall"}, + {0x0061, "a"}, + {0x00e1, "aacute"}, + {0x0103, "abreve"}, + {0x00e2, "acircumflex"}, + {0x00b4, "acute"}, + {0x0301, "acutecomb"}, + {0x00e4, "adieresis"}, + {0x00e6, "ae"}, + {0x01fd, "aeacute"}, + {0x2015, "afii00208"}, + {0x0410, "afii10017"}, + {0x0411, "afii10018"}, + {0x0412, "afii10019"}, + {0x0413, "afii10020"}, + {0x0414, "afii10021"}, + {0x0415, "afii10022"}, + {0x0401, "afii10023"}, + {0x0416, "afii10024"}, + {0x0417, "afii10025"}, + {0x0418, "afii10026"}, + {0x0419, "afii10027"}, + {0x041a, "afii10028"}, + {0x041b, "afii10029"}, + {0x041c, "afii10030"}, + {0x041d, "afii10031"}, + {0x041e, "afii10032"}, + {0x041f, "afii10033"}, + {0x0420, "afii10034"}, + {0x0421, "afii10035"}, + {0x0422, "afii10036"}, + {0x0423, "afii10037"}, + {0x0424, "afii10038"}, + {0x0425, "afii10039"}, + {0x0426, "afii10040"}, + {0x0427, "afii10041"}, + {0x0428, "afii10042"}, + {0x0429, "afii10043"}, + {0x042a, "afii10044"}, + {0x042b, "afii10045"}, + {0x042c, "afii10046"}, + {0x042d, "afii10047"}, + {0x042e, "afii10048"}, + {0x042f, "afii10049"}, + {0x0490, "afii10050"}, + {0x0402, "afii10051"}, + {0x0403, "afii10052"}, + {0x0404, "afii10053"}, + {0x0405, "afii10054"}, + {0x0406, "afii10055"}, + {0x0407, "afii10056"}, + {0x0408, "afii10057"}, + {0x0409, "afii10058"}, + {0x040a, "afii10059"}, + {0x040b, "afii10060"}, + {0x040c, "afii10061"}, + {0x040e, "afii10062"}, + {0xf6c4, "afii10063"}, + {0xf6c5, "afii10064"}, + {0x0430, "afii10065"}, + {0x0431, "afii10066"}, + {0x0432, "afii10067"}, + {0x0433, "afii10068"}, + {0x0434, "afii10069"}, + {0x0435, "afii10070"}, + {0x0451, "afii10071"}, + {0x0436, "afii10072"}, + {0x0437, "afii10073"}, + {0x0438, "afii10074"}, + {0x0439, "afii10075"}, + {0x043a, "afii10076"}, + {0x043b, "afii10077"}, + {0x043c, "afii10078"}, + {0x043d, "afii10079"}, + {0x043e, "afii10080"}, + {0x043f, "afii10081"}, + {0x0440, "afii10082"}, + {0x0441, "afii10083"}, + {0x0442, "afii10084"}, + {0x0443, "afii10085"}, + {0x0444, "afii10086"}, + {0x0445, "afii10087"}, + {0x0446, "afii10088"}, + {0x0447, "afii10089"}, + {0x0448, "afii10090"}, + {0x0449, "afii10091"}, + {0x044a, "afii10092"}, + {0x044b, "afii10093"}, + {0x044c, "afii10094"}, + {0x044d, "afii10095"}, + {0x044e, "afii10096"}, + {0x044f, "afii10097"}, + {0x0491, "afii10098"}, + {0x0452, "afii10099"}, + {0x0453, "afii10100"}, + {0x0454, "afii10101"}, + {0x0455, "afii10102"}, + {0x0456, "afii10103"}, + {0x0457, "afii10104"}, + {0x0458, "afii10105"}, + {0x0459, "afii10106"}, + {0x045a, "afii10107"}, + {0x045b, "afii10108"}, + {0x045c, "afii10109"}, + {0x045e, "afii10110"}, + {0x040f, "afii10145"}, + {0x0462, "afii10146"}, + {0x0472, "afii10147"}, + {0x0474, "afii10148"}, + {0xf6c6, "afii10192"}, + {0x045f, "afii10193"}, + {0x0463, "afii10194"}, + {0x0473, "afii10195"}, + {0x0475, "afii10196"}, + {0xf6c7, "afii10831"}, + {0xf6c8, "afii10832"}, + {0x04d9, "afii10846"}, + {0x200e, "afii299"}, + {0x200f, "afii300"}, + {0x200d, "afii301"}, + {0x066a, "afii57381"}, + {0x060c, "afii57388"}, + {0x0660, "afii57392"}, + {0x0661, "afii57393"}, + {0x0662, "afii57394"}, + {0x0663, "afii57395"}, + {0x0664, "afii57396"}, + {0x0665, "afii57397"}, + {0x0666, "afii57398"}, + {0x0667, "afii57399"}, + {0x0668, "afii57400"}, + {0x0669, "afii57401"}, + {0x061b, "afii57403"}, + {0x061f, "afii57407"}, + {0x0621, "afii57409"}, + {0x0622, "afii57410"}, + {0x0623, "afii57411"}, + {0x0624, "afii57412"}, + {0x0625, "afii57413"}, + {0x0626, "afii57414"}, + {0x0627, "afii57415"}, + {0x0628, "afii57416"}, + {0x0629, "afii57417"}, + {0x062a, "afii57418"}, + {0x062b, "afii57419"}, + {0x062c, "afii57420"}, + {0x062d, "afii57421"}, + {0x062e, "afii57422"}, + {0x062f, "afii57423"}, + {0x0630, "afii57424"}, + {0x0631, "afii57425"}, + {0x0632, "afii57426"}, + {0x0633, "afii57427"}, + {0x0634, "afii57428"}, + {0x0635, "afii57429"}, + {0x0636, "afii57430"}, + {0x0637, "afii57431"}, + {0x0638, "afii57432"}, + {0x0639, "afii57433"}, + {0x063a, "afii57434"}, + {0x0640, "afii57440"}, + {0x0641, "afii57441"}, + {0x0642, "afii57442"}, + {0x0643, "afii57443"}, + {0x0644, "afii57444"}, + {0x0645, "afii57445"}, + {0x0646, "afii57446"}, + {0x0648, "afii57448"}, + {0x0649, "afii57449"}, + {0x064a, "afii57450"}, + {0x064b, "afii57451"}, + {0x064c, "afii57452"}, + {0x064d, "afii57453"}, + {0x064e, "afii57454"}, + {0x064f, "afii57455"}, + {0x0650, "afii57456"}, + {0x0651, "afii57457"}, + {0x0652, "afii57458"}, + {0x0647, "afii57470"}, + {0x06a4, "afii57505"}, + {0x067e, "afii57506"}, + {0x0686, "afii57507"}, + {0x0698, "afii57508"}, + {0x06af, "afii57509"}, + {0x0679, "afii57511"}, + {0x0688, "afii57512"}, + {0x0691, "afii57513"}, + {0x06ba, "afii57514"}, + {0x06d2, "afii57519"}, + {0x06d5, "afii57534"}, + {0x20aa, "afii57636"}, + {0x05be, "afii57645"}, + {0x05c3, "afii57658"}, + {0x05d0, "afii57664"}, + {0x05d1, "afii57665"}, + {0x05d2, "afii57666"}, + {0x05d3, "afii57667"}, + {0x05d4, "afii57668"}, + {0x05d5, "afii57669"}, + {0x05d6, "afii57670"}, + {0x05d7, "afii57671"}, + {0x05d8, "afii57672"}, + {0x05d9, "afii57673"}, + {0x05da, "afii57674"}, + {0x05db, "afii57675"}, + {0x05dc, "afii57676"}, + {0x05dd, "afii57677"}, + {0x05de, "afii57678"}, + {0x05df, "afii57679"}, + {0x05e0, "afii57680"}, + {0x05e1, "afii57681"}, + {0x05e2, "afii57682"}, + {0x05e3, "afii57683"}, + {0x05e4, "afii57684"}, + {0x05e5, "afii57685"}, + {0x05e6, "afii57686"}, + {0x05e7, "afii57687"}, + {0x05e8, "afii57688"}, + {0x05e9, "afii57689"}, + {0x05ea, "afii57690"}, + {0xfb2a, "afii57694"}, + {0xfb2b, "afii57695"}, + {0xfb4b, "afii57700"}, + {0xfb1f, "afii57705"}, + {0x05f0, "afii57716"}, + {0x05f1, "afii57717"}, + {0x05f2, "afii57718"}, + {0xfb35, "afii57723"}, + {0x05b4, "afii57793"}, + {0x05b5, "afii57794"}, + {0x05b6, "afii57795"}, + {0x05bb, "afii57796"}, + {0x05b8, "afii57797"}, + {0x05b7, "afii57798"}, + {0x05b0, "afii57799"}, + {0x05b2, "afii57800"}, + {0x05b1, "afii57801"}, + {0x05b3, "afii57802"}, + {0x05c2, "afii57803"}, + {0x05c1, "afii57804"}, + {0x05b9, "afii57806"}, + {0x05bc, "afii57807"}, + {0x05bd, "afii57839"}, + {0x05bf, "afii57841"}, + {0x05c0, "afii57842"}, + {0x02bc, "afii57929"}, + {0x2105, "afii61248"}, + {0x2113, "afii61289"}, + {0x2116, "afii61352"}, + {0x202c, "afii61573"}, + {0x202d, "afii61574"}, + {0x202e, "afii61575"}, + {0x200c, "afii61664"}, + {0x066d, "afii63167"}, + {0x02bd, "afii64937"}, + {0x00e0, "agrave"}, + {0x2135, "aleph"}, + {0x03b1, "alpha"}, + {0x03ac, "alphatonos"}, + {0x0101, "amacron"}, + {0x0026, "ampersand"}, + {0x0026, "ampersandsmall"}, + {0x2220, "angle"}, + {0x2329, "angleleft"}, + {0x232a, "angleright"}, + {0x0387, "anoteleia"}, + {0x0105, "aogonek"}, + {0x2248, "approxequal"}, + {0x00e5, "aring"}, + {0x01fb, "aringacute"}, + {0x2194, "arrowboth"}, + {0x21d4, "arrowdblboth"}, + {0x21d3, "arrowdbldown"}, + {0x21d0, "arrowdblleft"}, + {0x21d2, "arrowdblright"}, + {0x21d1, "arrowdblup"}, + {0x2193, "arrowdown"}, + {0xf8e7, "arrowhorizex"}, + {0x2190, "arrowleft"}, + {0x2192, "arrowright"}, + {0x2191, "arrowup"}, + {0x2195, "arrowupdn"}, + {0x21a8, "arrowupdnbse"}, + {0xf8e6, "arrowvertex"}, + {0x005e, "asciicircum"}, + {0x007e, "asciitilde"}, + {0x002a, "asterisk"}, + {0x2217, "asteriskmath"}, + {0xf6e9, "asuperior"}, + {0x0040, "at"}, + {0x00e3, "atilde"}, + {0x0062, "b"}, + {0x005c, "backslash"}, + {0x007c, "bar"}, + {0x03b2, "beta"}, + {0x2588, "block"}, + {0xf8f4, "braceex"}, + {0x007b, "braceleft"}, + {0xf8f3, "braceleftbt"}, + {0xf8f2, "braceleftmid"}, + {0xf8f1, "bracelefttp"}, + {0x007d, "braceright"}, + {0xf8fe, "bracerightbt"}, + {0xf8fd, "bracerightmid"}, + {0xf8fc, "bracerighttp"}, + {0x005b, "bracketleft"}, + {0xf8f0, "bracketleftbt"}, + {0xf8ef, "bracketleftex"}, + {0xf8ee, "bracketlefttp"}, + {0x005d, "bracketright"}, + {0xf8fb, "bracketrightbt"}, + {0xf8fa, "bracketrightex"}, + {0xf8f9, "bracketrighttp"}, + {0x02d8, "breve"}, + {0x00a6, "brokenbar"}, + {0xf6ea, "bsuperior"}, + {0x2022, "bullet"}, + {0x0063, "c"}, + {0x0107, "cacute"}, + {0x02c7, "caron"}, + {0x21b5, "carriagereturn"}, + {0x010d, "ccaron"}, + {0x00e7, "ccedilla"}, + {0x0109, "ccircumflex"}, + {0x010b, "cdotaccent"}, + {0x00b8, "cedilla"}, + {0x00a2, "cent"}, + {0xf6df, "centinferior"}, + {0x00a2, "centoldstyle"}, + {0xf6e0, "centsuperior"}, + {0x03c7, "chi"}, + {0x25cb, "circle"}, + {0x2297, "circlemultiply"}, + {0x2295, "circleplus"}, + {0x02c6, "circumflex"}, + {0x2663, "club"}, + {0x003a, "colon"}, + {0x20a1, "colonmonetary"}, + {0x002c, "comma"}, + {0xf6c3, "commaaccent"}, + {0xf6e1, "commainferior"}, + {0xf6e2, "commasuperior"}, + {0x2245, "congruent"}, + {0x00a9, "copyright"}, + {0xf8e9, "copyrightsans"}, + {0xf6d9, "copyrightserif"}, + {0x00a4, "currency"}, + {0xf6d1, "cyrBreve"}, + {0xf6d2, "cyrFlex"}, + {0xf6d4, "cyrbreve"}, + {0xf6d5, "cyrflex"}, + {0x0064, "d"}, + {0x2020, "dagger"}, + {0x2021, "daggerdbl"}, + {0xf6d3, "dblGrave"}, + {0xf6d6, "dblgrave"}, + {0x010f, "dcaron"}, + {0x0111, "dcroat"}, + {0x00b0, "degree"}, + {0x03b4, "delta"}, + {0x2666, "diamond"}, + {0x00a8, "dieresis"}, + {0xf6d7, "dieresisacute"}, + {0xf6d8, "dieresisgrave"}, + {0x0385, "dieresistonos"}, + {0x00f7, "divide"}, + {0x2593, "dkshade"}, + {0x2584, "dnblock"}, + {0x0024, "dollar"}, + {0xf6e3, "dollarinferior"}, + {0x0024, "dollaroldstyle"}, + {0xf6e4, "dollarsuperior"}, + {0x20ab, "dong"}, + {0x02d9, "dotaccent"}, + {0x0323, "dotbelowcomb"}, + {0x0131, "dotlessi"}, + {0xf6be, "dotlessj"}, + {0x22c5, "dotmath"}, + {0xf6eb, "dsuperior"}, + {0x0065, "e"}, + {0x00e9, "eacute"}, + {0x0115, "ebreve"}, + {0x011b, "ecaron"}, + {0x00ea, "ecircumflex"}, + {0x00eb, "edieresis"}, + {0x0117, "edotaccent"}, + {0x00e8, "egrave"}, + {0x0038, "eight"}, + {0x2088, "eightinferior"}, + {0x0038, "eightoldstyle"}, + {0x2078, "eightsuperior"}, + {0x2208, "element"}, + {0x2026, "ellipsis"}, + {0x0113, "emacron"}, + {0x2014, "emdash"}, + {0x2205, "emptyset"}, + {0x2013, "endash"}, + {0x014b, "eng"}, + {0x0119, "eogonek"}, + {0x03b5, "epsilon"}, + {0x03ad, "epsilontonos"}, + {0x003d, "equal"}, + {0x2261, "equivalence"}, + {0x212e, "estimated"}, + {0xf6ec, "esuperior"}, + {0x03b7, "eta"}, + {0x03ae, "etatonos"}, + {0x00f0, "eth"}, + {0x0021, "exclam"}, + {0x203c, "exclamdbl"}, + {0x00a1, "exclamdown"}, + {0x00a1, "exclamdownsmall"}, + {0x0021, "exclamsmall"}, + {0x2203, "existential"}, + {0x0066, "f"}, + {0x2640, "female"}, + {0xfb00, "ff"}, + {0xfb03, "ffi"}, + {0xfb04, "ffl"}, + {0xfb01, "fi"}, + {0x2012, "figuredash"}, + {0x25a0, "filledbox"}, + {0x25ac, "filledrect"}, + {0x0035, "five"}, + {0x215d, "fiveeighths"}, + {0x2085, "fiveinferior"}, + {0x0035, "fiveoldstyle"}, + {0x2075, "fivesuperior"}, + {0xfb02, "fl"}, + {0x0192, "florin"}, + {0x0034, "four"}, + {0x2084, "fourinferior"}, + {0x0034, "fouroldstyle"}, + {0x2074, "foursuperior"}, + {0x2044, "fraction"}, + {0x20a3, "franc"}, + {0x0067, "g"}, + {0x03b3, "gamma"}, + {0x011f, "gbreve"}, + {0x01e7, "gcaron"}, + {0x011d, "gcircumflex"}, + {0x0123, "gcommaaccent"}, + {0x0121, "gdotaccent"}, + {0x00df, "germandbls"}, + {0x2207, "gradient"}, + {0x0060, "grave"}, + {0x0300, "gravecomb"}, + {0x003e, "greater"}, + {0x2265, "greaterequal"}, + {0x00ab, "guillemotleft"}, + {0x00bb, "guillemotright"}, + {0x2039, "guilsinglleft"}, + {0x203a, "guilsinglright"}, + {0x0068, "h"}, + {0x0127, "hbar"}, + {0x0125, "hcircumflex"}, + {0x2665, "heart"}, + {0x0309, "hookabovecomb"}, + {0x2302, "house"}, + {0x02dd, "hungarumlaut"}, + {0x002d, "hyphen"}, + {0xf6e5, "hypheninferior"}, + {0xf6e6, "hyphensuperior"}, + {0x0069, "i"}, + {0x00ed, "iacute"}, + {0x012d, "ibreve"}, + {0x00ee, "icircumflex"}, + {0x00ef, "idieresis"}, + {0x00ec, "igrave"}, + {0x0133, "ij"}, + {0x012b, "imacron"}, + {0x221e, "infinity"}, + {0x222b, "integral"}, + {0x2321, "integralbt"}, + {0xf8f5, "integralex"}, + {0x2320, "integraltp"}, + {0x2229, "intersection"}, + {0x25d8, "invbullet"}, + {0x25d9, "invcircle"}, + {0x263b, "invsmileface"}, + {0x012f, "iogonek"}, + {0x03b9, "iota"}, + {0x03ca, "iotadieresis"}, + {0x0390, "iotadieresistonos"}, + {0x03af, "iotatonos"}, + {0xf6ed, "isuperior"}, + {0x0129, "itilde"}, + {0x006a, "j"}, + {0x0135, "jcircumflex"}, + {0x006b, "k"}, + {0x03ba, "kappa"}, + {0x0137, "kcommaaccent"}, + {0x0138, "kgreenlandic"}, + {0x006c, "l"}, + {0x013a, "lacute"}, + {0x03bb, "lambda"}, + {0x013e, "lcaron"}, + {0x013c, "lcommaaccent"}, + {0x0140, "ldot"}, + {0x003c, "less"}, + {0x2264, "lessequal"}, + {0x258c, "lfblock"}, + {0x20a4, "lira"}, + {0xf6c0, "ll"}, + {0x2227, "logicaland"}, + {0x00ac, "logicalnot"}, + {0x2228, "logicalor"}, + {0x017f, "longs"}, + {0x25ca, "lozenge"}, + {0x0142, "lslash"}, + {0xf6ee, "lsuperior"}, + {0x2591, "ltshade"}, + {0x006d, "m"}, + {0x00af, "macron"}, + {0x2642, "male"}, + {0x2212, "minus"}, + {0x2032, "minute"}, + {0xf6ef, "msuperior"}, + {0x00b5, "mu"}, + {0x00d7, "multiply"}, + {0x266a, "musicalnote"}, + {0x266b, "musicalnotedbl"}, + {0x006e, "n"}, + {0x0144, "nacute"}, + {0x0149, "napostrophe"}, + {0x00a0, "nbspace"}, + {0x0148, "ncaron"}, + {0x0146, "ncommaaccent"}, + {0x0039, "nine"}, + {0x2089, "nineinferior"}, + {0x0039, "nineoldstyle"}, + {0x2079, "ninesuperior"}, + {0x00a0, "nonbreakingspace"}, + {0x2209, "notelement"}, + {0x2260, "notequal"}, + {0x2284, "notsubset"}, + {0x207f, "nsuperior"}, + {0x00f1, "ntilde"}, + {0x03bd, "nu"}, + {0x0023, "numbersign"}, + {0x006f, "o"}, + {0x00f3, "oacute"}, + {0x014f, "obreve"}, + {0x00f4, "ocircumflex"}, + {0x00f6, "odieresis"}, + {0x0153, "oe"}, + {0x02db, "ogonek"}, + {0x00f2, "ograve"}, + {0x01a1, "ohorn"}, + {0x0151, "ohungarumlaut"}, + {0x014d, "omacron"}, + {0x03c9, "omega"}, + {0x03d6, "omega1"}, + {0x03ce, "omegatonos"}, + {0x03bf, "omicron"}, + {0x03cc, "omicrontonos"}, + {0x0031, "one"}, + {0x2024, "onedotenleader"}, + {0x215b, "oneeighth"}, + {0xf6dc, "onefitted"}, + {0x00bd, "onehalf"}, + {0x2081, "oneinferior"}, + {0x0031, "oneoldstyle"}, + {0x00bc, "onequarter"}, + {0x00b9, "onesuperior"}, + {0x2153, "onethird"}, + {0x25e6, "openbullet"}, + {0x00aa, "ordfeminine"}, + {0x00ba, "ordmasculine"}, + {0x221f, "orthogonal"}, + {0x00f8, "oslash"}, + {0x01ff, "oslashacute"}, + {0xf6f0, "osuperior"}, + {0x00f5, "otilde"}, + {0x0070, "p"}, + {0x00b6, "paragraph"}, + {0x0028, "parenleft"}, + {0xf8ed, "parenleftbt"}, + {0xf8ec, "parenleftex"}, + {0x208d, "parenleftinferior"}, + {0x207d, "parenleftsuperior"}, + {0xf8eb, "parenlefttp"}, + {0x0029, "parenright"}, + {0xf8f8, "parenrightbt"}, + {0xf8f7, "parenrightex"}, + {0x208e, "parenrightinferior"}, + {0x207e, "parenrightsuperior"}, + {0xf8f6, "parenrighttp"}, + {0x2202, "partialdiff"}, + {0x0025, "percent"}, + {0x002e, "period"}, + {0x00b7, "periodcentered"}, + {0xf6e7, "periodinferior"}, + {0xf6e8, "periodsuperior"}, + {0x22a5, "perpendicular"}, + {0x2030, "perthousand"}, + {0x20a7, "peseta"}, + {0x03c6, "phi"}, + {0x03d5, "phi1"}, + {0x03c0, "pi"}, + {0x002b, "plus"}, + {0x00b1, "plusminus"}, + {0x211e, "prescription"}, + {0x220f, "product"}, + {0x2282, "propersubset"}, + {0x2283, "propersuperset"}, + {0x221d, "proportional"}, + {0x03c8, "psi"}, + {0x0071, "q"}, + {0x003f, "question"}, + {0x00bf, "questiondown"}, + {0x00bf, "questiondownsmall"}, + {0x003f, "questionsmall"}, + {0x0022, "quotedbl"}, + {0x201e, "quotedblbase"}, + {0x201c, "quotedblleft"}, + {0x201d, "quotedblright"}, + {0x2018, "quoteleft"}, + {0x201b, "quotereversed"}, + {0x2019, "quoteright"}, + {0x201a, "quotesinglbase"}, + {0x0027, "quotesingle"}, + {0x0072, "r"}, + {0x0155, "racute"}, + {0x221a, "radical"}, + {0xf8e5, "radicalex"}, + {0x0159, "rcaron"}, + {0x0157, "rcommaaccent"}, + {0x2286, "reflexsubset"}, + {0x2287, "reflexsuperset"}, + {0x00ae, "registered"}, + {0xf8e8, "registersans"}, + {0xf6da, "registerserif"}, + {0x2310, "revlogicalnot"}, + {0x03c1, "rho"}, + {0x02da, "ring"}, + {0xf6f1, "rsuperior"}, + {0x2590, "rtblock"}, + {0xf6dd, "rupiah"}, + {0x0073, "s"}, + {0x015b, "sacute"}, + {0x0161, "scaron"}, + {0x015f, "scedilla"}, + {0x015d, "scircumflex"}, + {0x0219, "scommaaccent"}, + {0x2033, "second"}, + {0x00a7, "section"}, + {0x003b, "semicolon"}, + {0x0037, "seven"}, + {0x215e, "seveneighths"}, + {0x2087, "seveninferior"}, + {0x0037, "sevenoldstyle"}, + {0x2077, "sevensuperior"}, + {0x2592, "shade"}, + {0x03c3, "sigma"}, + {0x03c2, "sigma1"}, + {0x223c, "similar"}, + {0x0036, "six"}, + {0x2086, "sixinferior"}, + {0x0036, "sixoldstyle"}, + {0x2076, "sixsuperior"}, + {0x002f, "slash"}, + {0x263a, "smileface"}, + {0x0020, "space"}, + {0x2660, "spade"}, + {0xf6f2, "ssuperior"}, + {0x00a3, "sterling"}, + {0x220b, "suchthat"}, + {0x2211, "summation"}, + {0x263c, "sun"}, + {0x0074, "t"}, + {0x03c4, "tau"}, + {0x0167, "tbar"}, + {0x0165, "tcaron"}, + {0x0163, "tcommaaccent"}, + {0x2234, "therefore"}, + {0x03b8, "theta"}, + {0x03d1, "theta1"}, + {0x00fe, "thorn"}, + {0x0033, "three"}, + {0x215c, "threeeighths"}, + {0x2083, "threeinferior"}, + {0x0033, "threeoldstyle"}, + {0x00be, "threequarters"}, + {0xf6de, "threequartersemdash"}, + {0x00b3, "threesuperior"}, + {0x02dc, "tilde"}, + {0x0303, "tildecomb"}, + {0x0384, "tonos"}, + {0x2122, "trademark"}, + {0xf8ea, "trademarksans"}, + {0xf6db, "trademarkserif"}, + {0x25bc, "triagdn"}, + {0x25c4, "triaglf"}, + {0x25ba, "triagrt"}, + {0x25b2, "triagup"}, + {0xf6f3, "tsuperior"}, + {0x0032, "two"}, + {0x2025, "twodotenleader"}, + {0x2082, "twoinferior"}, + {0x0032, "twooldstyle"}, + {0x00b2, "twosuperior"}, + {0x2154, "twothirds"}, + {0x0075, "u"}, + {0x00fa, "uacute"}, + {0x016d, "ubreve"}, + {0x00fb, "ucircumflex"}, + {0x00fc, "udieresis"}, + {0x00f9, "ugrave"}, + {0x01b0, "uhorn"}, + {0x0171, "uhungarumlaut"}, + {0x016b, "umacron"}, + {0x005f, "underscore"}, + {0x2017, "underscoredbl"}, + {0x222a, "union"}, + {0x2200, "universal"}, + {0x0173, "uogonek"}, + {0x2580, "upblock"}, + {0x03c5, "upsilon"}, + {0x03cb, "upsilondieresis"}, + {0x03b0, "upsilondieresistonos"}, + {0x03cd, "upsilontonos"}, + {0x016f, "uring"}, + {0x0169, "utilde"}, + {0x0076, "v"}, + {0x0077, "w"}, + {0x1e83, "wacute"}, + {0x0175, "wcircumflex"}, + {0x1e85, "wdieresis"}, + {0x2118, "weierstrass"}, + {0x1e81, "wgrave"}, + {0x0078, "x"}, + {0x03be, "xi"}, + {0x0079, "y"}, + {0x00fd, "yacute"}, + {0x0177, "ycircumflex"}, + {0x00ff, "ydieresis"}, + {0x00a5, "yen"}, + {0x1ef3, "ygrave"}, + {0x007a, "z"}, + {0x017a, "zacute"}, + {0x017e, "zcaron"}, + {0x017c, "zdotaccent"}, + {0x0030, "zero"}, + {0x2080, "zeroinferior"}, + {0x0030, "zerooldstyle"}, + {0x2070, "zerosuperior"}, + {0x03b6, "zeta"}, + { 0, NULL } +}; diff --git a/pdf/xpdf/Object.cc b/pdf/xpdf/Object.cc index f9c10674..6d92c6a3 100644 --- a/pdf/xpdf/Object.cc +++ b/pdf/xpdf/Object.cc @@ -2,7 +2,7 @@ // // Object.cc // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -10,6 +10,7 @@ #pragma implementation #endif +#include #include #include "Object.h" #include "Array.h" @@ -44,21 +45,21 @@ int Object::numAlloc[numObjTypes] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; #endif -Object *Object::initArray() { +Object *Object::initArray(XRef *xref) { initObj(objArray); - array = new Array(); + array = new Array(xref); return this; } -Object *Object::initDict() { +Object *Object::initDict(XRef *xref) { initObj(objDict); - dict = new Dict(); + dict = new Dict(xref); return this; } -Object *Object::initStream(Stream *stream1) { +Object *Object::initStream(Stream *streamA) { initObj(objStream); - stream = stream1; + stream = streamA; return this; } @@ -92,7 +93,7 @@ Object *Object::copy(Object *obj) { return obj; } -Object *Object::fetch(Object *obj) { +Object *Object::fetch(XRef *xref, Object *obj) { return (type == objRef && xref) ? xref->fetch(ref.num, ref.gen, obj) : copy(obj); } @@ -151,7 +152,9 @@ void Object::print(FILE *f) { fprintf(f, "%g", real); break; case objString: - fprintf(f, "(%s)", string->getCString()); + fprintf(f, "("); + fwrite(string->getCString(), 1, string->getLength(), stdout); + fprintf(f, ")"); break; case objName: fprintf(f, "/%s", name); diff --git a/pdf/xpdf/Object.h b/pdf/xpdf/Object.h index fa4f740b..65d0be0d 100644 --- a/pdf/xpdf/Object.h +++ b/pdf/xpdf/Object.h @@ -2,7 +2,7 @@ // // Object.h // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -19,6 +19,7 @@ #include "gmem.h" #include "GString.h" +class XRef; class Array; class Dict; class Stream; @@ -78,27 +79,25 @@ public: type(objNone) {} // Initialize an object. - Object *initBool(GBool booln1) - { initObj(objBool); booln = booln1; return this; } - Object *initInt(int intg1) - { initObj(objInt); intg = intg1; return this; } - Object *initReal(double real1) - { initObj(objReal); real = real1; return this; } - Object *initString(GString *string1) - { initObj(objString); string = string1; return this; } - Object *initName(char *name1) - { initObj(objName); name = copyString(name1); return this; } + Object *initBool(GBool boolnA) + { initObj(objBool); booln = boolnA; return this; } + Object *initInt(int intgA) + { initObj(objInt); intg = intgA; return this; } + Object *initReal(double realA) + { initObj(objReal); real = realA; return this; } + Object *initString(GString *stringA) + { initObj(objString); string = stringA; return this; } + Object *initName(char *nameA) + { initObj(objName); name = copyString(nameA); return this; } Object *initNull() { initObj(objNull); return this; } - Object *initArray(); - Object *initDict(); - Object *initDict(Dict *dict1) - { initObj(objDict); dict = dict1; return this; } - Object *initStream(Stream *stream1); - Object *initRef(int num1, int gen1) - { initObj(objRef); ref.num = num1; ref.gen = gen1; return this; } - Object *initCmd(char *cmd1) - { initObj(objCmd); cmd = copyString(cmd1); return this; } + Object *initArray(XRef *xref); + Object *initDict(XRef *xref); + Object *initStream(Stream *streamA); + Object *initRef(int numA, int genA) + { initObj(objRef); ref.num = numA; ref.gen = genA; return this; } + Object *initCmd(char *cmdA) + { initObj(objCmd); cmd = copyString(cmdA); return this; } Object *initError() { initObj(objError); return this; } Object *initEOF() @@ -109,7 +108,7 @@ public: // If object is a Ref, fetch and return the referenced object. // Otherwise, return a copy of the object. - Object *fetch(Object *obj); + Object *fetch(XRef *xref, Object *obj); // Free object contents. void free(); @@ -133,12 +132,12 @@ public: GBool isNone() { return type == objNone; } // Special type checking. - GBool isName(char *name1) - { return type == objName && !strcmp(name, name1); } + GBool isName(char *nameA) + { return type == objName && !strcmp(name, nameA); } GBool isDict(char *dictType); GBool isStream(char *dictType); - GBool isCmd(char *cmd1) - { return type == objCmd && !strcmp(cmd, cmd1); } + GBool isCmd(char *cmdA) + { return type == objCmd && !strcmp(cmd, cmdA); } // Accessors. NB: these assume object is of correct type. GBool getBool() { return booln; } @@ -177,8 +176,8 @@ public: int streamGetChar(); int streamLookChar(); char *streamGetLine(char *buf, int size); - int streamGetPos(); - void streamSetPos(int pos); + Guint streamGetPos(); + void streamSetPos(Guint pos, int dir = 0); Dict *streamGetDict(); // Output. @@ -288,11 +287,11 @@ inline int Object::streamLookChar() inline char *Object::streamGetLine(char *buf, int size) { return stream->getLine(buf, size); } -inline int Object::streamGetPos() +inline Guint Object::streamGetPos() { return stream->getPos(); } -inline void Object::streamSetPos(int pos) - { stream->setPos(pos); } +inline void Object::streamSetPos(Guint pos, int dir) + { stream->setPos(pos, dir); } inline Dict *Object::streamGetDict() { return stream->getDict(); } diff --git a/pdf/xpdf/OutputDev.cc b/pdf/xpdf/OutputDev.cc index eebf4605..6d465423 100644 --- a/pdf/xpdf/OutputDev.cc +++ b/pdf/xpdf/OutputDev.cc @@ -2,7 +2,7 @@ // // OutputDev.cc // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -10,6 +10,7 @@ #pragma implementation #endif +#include #include #include "Object.h" #include "Stream.h" @@ -20,29 +21,30 @@ // OutputDev //------------------------------------------------------------------------ -void OutputDev::setDefaultCTM(double *ctm1) { +void OutputDev::setDefaultCTM(double *ctm) { int i; double det; - for (i = 0; i < 6; ++i) - ctm[i] = ctm1[i]; - det = 1 / (ctm[0] * ctm[3] - ctm[1] * ctm[2]); - ictm[0] = ctm[3] * det; - ictm[1] = -ctm[1] * det; - ictm[2] = -ctm[2] * det; - ictm[3] = ctm[0] * det; - ictm[4] = (ctm[2] * ctm[5] - ctm[3] * ctm[4]) * det; - ictm[5] = (ctm[1] * ctm[4] - ctm[0] * ctm[5]) * det; + for (i = 0; i < 6; ++i) { + defCTM[i] = ctm[i]; + } + det = 1 / (defCTM[0] * defCTM[3] - defCTM[1] * defCTM[2]); + defICTM[0] = defCTM[3] * det; + defICTM[1] = -defCTM[1] * det; + defICTM[2] = -defCTM[2] * det; + defICTM[3] = defCTM[0] * det; + defICTM[4] = (defCTM[2] * defCTM[5] - defCTM[3] * defCTM[4]) * det; + defICTM[5] = (defCTM[1] * defCTM[4] - defCTM[0] * defCTM[5]) * det; } void OutputDev::cvtDevToUser(int dx, int dy, double *ux, double *uy) { - *ux = ictm[0] * dx + ictm[2] * dy + ictm[4]; - *uy = ictm[1] * dx + ictm[3] * dy + ictm[5]; + *ux = defICTM[0] * dx + defICTM[2] * dy + defICTM[4]; + *uy = defICTM[1] * dx + defICTM[3] * dy + defICTM[5]; } void OutputDev::cvtUserToDev(double ux, double uy, int *dx, int *dy) { - *dx = (int)(ctm[0] * ux + ctm[2] * uy + ctm[4] + 0.5); - *dy = (int)(ctm[1] * ux + ctm[3] * uy + ctm[5] + 0.5); + *dx = (int)(defCTM[0] * ux + defCTM[2] * uy + defCTM[4] + 0.5); + *dy = (int)(defCTM[1] * ux + defCTM[3] * uy + defCTM[5] + 0.5); } void OutputDev::updateAll(GfxState *state) { @@ -57,6 +59,11 @@ void OutputDev::updateAll(GfxState *state) { updateFont(state); } +GBool OutputDev::beginType3Char(GfxState *state, + CharCode code, Unicode *u, int uLen) { + return gFalse; +} + void OutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str, int width, int height, GBool invert, GBool inlineImg) { @@ -67,12 +74,13 @@ void OutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str, j = height * ((width + 7) / 8); for (i = 0; i < j; ++i) str->getChar(); + str->close(); } } void OutputDev::drawImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, - GBool inlineImg) { + int *maskColors, GBool inlineImg) { int i, j; if (inlineImg) { @@ -81,6 +89,7 @@ void OutputDev::drawImage(GfxState *state, Object *ref, Stream *str, colorMap->getBits() + 7) / 8); for (i = 0; i < j; ++i) str->getChar(); + str->close(); } } diff --git a/pdf/xpdf/OutputDev.h b/pdf/xpdf/OutputDev.h index d7de97ab..cb825e00 100644 --- a/pdf/xpdf/OutputDev.h +++ b/pdf/xpdf/OutputDev.h @@ -2,7 +2,7 @@ // // OutputDev.h // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -14,6 +14,7 @@ #endif #include "gtypes.h" +#include "CharTypes.h" class GString; class GfxState; @@ -45,10 +46,17 @@ public: // Does this device use drawChar() or drawString()? virtual GBool useDrawChar() = 0; + // Does this device use beginType3Char/endType3Char? Otherwise, + // text in Type 3 fonts will be drawn with drawChar/drawString. + virtual GBool interpretType3Chars() = 0; + + // Does this device need non-text content? + virtual GBool needNonText() { return gTrue; } + //----- initialization and control // Set default transform matrix. - virtual void setDefaultCTM(double *ctm1); + virtual void setDefaultCTM(double *ctm); // Start a page. virtual void startPage(int pageNum, GfxState *state) {} @@ -111,11 +119,13 @@ public: virtual void beginString(GfxState *state, GString *s) {} virtual void endString(GfxState *state) {} virtual void drawChar(GfxState *state, double x, double y, - double dx, double dy, Guchar c) {} - virtual void drawChar16(GfxState *state, double x, double y, - double dx, double dy, int c) {} + double dx, double dy, + double originX, double originY, + CharCode code, Unicode *u, int uLen) {} virtual void drawString(GfxState *state, GString *s) {} - virtual void drawString16(GfxState *state, GString *s) {} + virtual GBool beginType3Char(GfxState *state, + CharCode code, Unicode *u, int uLen); + virtual void endType3Char(GfxState *state) {} //----- image drawing virtual void drawImageMask(GfxState *state, Object *ref, Stream *str, @@ -123,7 +133,7 @@ public: GBool inlineImg); virtual void drawImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, - GBool inlineImg); + int *maskColors, GBool inlineImg); #if OPI_SUPPORT //----- OPI functions @@ -131,10 +141,18 @@ public: virtual void opiEnd(GfxState *state, Dict *opiDict); #endif + //----- Type 3 font operators + virtual void type3D0(GfxState *state, double wx, double wy) {} + virtual void type3D1(GfxState *state, double wx, double wy, + double llx, double lly, double urx, double ury) {} + + //----- PostScript XObjects + virtual void psXObject(Stream *psStream, Stream *level1Stream) {} + private: - double ctm[6]; // coordinate transform matrix - double ictm[6]; // inverse CTM + double defCTM[6]; // default coordinate transform matrix + double defICTM[6]; // inverse of default CTM }; #endif diff --git a/pdf/xpdf/PBMOutputDev.cc b/pdf/xpdf/PBMOutputDev.cc index fadb3669..57782447 100644 --- a/pdf/xpdf/PBMOutputDev.cc +++ b/pdf/xpdf/PBMOutputDev.cc @@ -2,7 +2,7 @@ // // PBMOutputDev.cc // -// Copyright 1998 Derek B. Noonburg +// Copyright 1998-2002 Glyph & Cog, LLC // //======================================================================== @@ -10,6 +10,7 @@ #pragma implementation #endif +#include #include #include #include @@ -21,78 +22,77 @@ #include "GfxState.h" #include "GfxFont.h" #include "Error.h" -#include "Params.h" #include "PBMOutputDev.h" //------------------------------------------------------------------------ PBMOutputDev *PBMOutputDev::makePBMOutputDev(char *displayName, - char *fileRoot1) { - Display *display; - Pixmap pixmap; - Window dummyWin; - int screen; - int invert; + char *fileRootA) { + Display *displayA; + Pixmap pixmapA; + Window dummyWinA; + int screenA; + int invertA; unsigned long black, white; PBMOutputDev *out; - if (!(display = XOpenDisplay(displayName))) { + if (!(displayA = XOpenDisplay(displayName))) { fprintf(stderr, "Couldn't open display '%s'\n", displayName); exit(1); } - screen = DefaultScreen(display); + screenA = DefaultScreen(displayA); - black = BlackPixel(display, screen); - white = WhitePixel(display, screen); + black = BlackPixel(displayA, screenA); + white = WhitePixel(displayA, screenA); if ((black & 1) == (white & 1)) { fprintf(stderr, "Weird black/white pixel colors\n"); - XCloseDisplay(display); + XCloseDisplay(displayA); return NULL; } - invert = (white & 1) == 1 ? 0xff : 0x00; - - dummyWin = XCreateSimpleWindow(display, RootWindow(display, screen), - 0, 0, 1, 1, 0, - black, white); - pixmap = XCreatePixmap(display, dummyWin, 1, 1, 1); - out = new PBMOutputDev(display, screen, pixmap, dummyWin, - invert, fileRoot1); - out->startDoc(); + invertA = (white & 1) == 1 ? 0xff : 0x00; + + dummyWinA = XCreateSimpleWindow(displayA, RootWindow(displayA, screenA), + 0, 0, 1, 1, 0, + black, white); + pixmapA = XCreatePixmap(displayA, dummyWinA, 1, 1, 1); + out = new PBMOutputDev(displayA, screenA, pixmapA, dummyWinA, + invertA, fileRootA); return out; } void PBMOutputDev::killPBMOutputDev(PBMOutputDev *out) { - Display *display; - Pixmap pixmap; - Window dummyWin; + Display *displayA; + Pixmap pixmapA; + Window dummyWinA; - display = out->display; - pixmap = out->pixmap; - dummyWin = out->dummyWin; + displayA = out->display; + pixmapA = out->pixmap; + dummyWinA = out->dummyWin; delete out; // these have to be done *after* the XOutputDev (parent of the // PBMOutputDev) is deleted, since XOutputDev::~XOutputDev() needs // them - XFreePixmap(display, pixmap); - XDestroyWindow(display, dummyWin); - XCloseDisplay(display); + XFreePixmap(displayA, pixmapA); + XDestroyWindow(displayA, dummyWinA); + XCloseDisplay(displayA); } -PBMOutputDev::PBMOutputDev(Display *display1, int screen1, - Pixmap pixmap1, Window dummyWin1, - int invert1, char *fileRoot1): - XOutputDev(display1, pixmap1, 1, - DefaultColormap(display1, screen1), - WhitePixel(display1, DefaultScreen(display1))) +PBMOutputDev::PBMOutputDev(Display *displayA, int screenA, + Pixmap pixmapA, Window dummyWinA, + int invertA, char *fileRootA): + XOutputDev(displayA, pixmapA, 1, + DefaultColormap(displayA, screenA), gFalse, + WhitePixel(displayA, DefaultScreen(displayA)), + gFalse, 1) { - display = display1; - screen = screen1; - pixmap = pixmap1; - dummyWin = dummyWin1; - invert = invert1; - fileRoot = fileRoot1; + display = displayA; + screen = screenA; + pixmap = pixmapA; + dummyWin = dummyWinA; + invert = invertA; + fileRoot = fileRootA; fileName = (char *)gmalloc(strlen(fileRoot) + 20); } @@ -101,7 +101,6 @@ PBMOutputDev::~PBMOutputDev() { } void PBMOutputDev::startPage(int pageNum, GfxState *state) { - curPage = pageNum; width = (int)(state->getPageWidth() + 0.5); height = (int)(state->getPageHeight() + 0.5); diff --git a/pdf/xpdf/PBMOutputDev.h b/pdf/xpdf/PBMOutputDev.h index 5afe0d68..5b28fc5a 100644 --- a/pdf/xpdf/PBMOutputDev.h +++ b/pdf/xpdf/PBMOutputDev.h @@ -2,7 +2,7 @@ // // PBMOutputDev.h // -// Copyright 1998 Derek B. Noonburg +// Copyright 1998-2002 Glyph & Cog, LLC // //======================================================================== @@ -27,7 +27,7 @@ public: // constraints in the underlying XOutputDev object.) static PBMOutputDev *makePBMOutputDev(char *displayName, - char *fileRoot1); + char *fileRootA); static void killPBMOutputDev(PBMOutputDev *out); @@ -43,9 +43,9 @@ public: private: - PBMOutputDev(Display *display1, int screen1, - Pixmap pixmap1, Window dummyWin1, - int invert1, char *fileRoot1); + PBMOutputDev(Display *displayA, int screenA, + Pixmap pixmapA, Window dummyWinA, + int invertA, char *fileRootA); char *fileRoot; char *fileName; diff --git a/pdf/xpdf/PDFDoc.cc b/pdf/xpdf/PDFDoc.cc index ae55d231..29abba05 100644 --- a/pdf/xpdf/PDFDoc.cc +++ b/pdf/xpdf/PDFDoc.cc @@ -2,7 +2,7 @@ // // PDFDoc.cc // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -10,6 +10,7 @@ #pragma implementation #endif +#include #include #include #include @@ -22,8 +23,8 @@ #include "XRef.h" #include "Link.h" #include "OutputDev.h" -#include "Params.h" #include "Error.h" +#include "ErrorCodes.h" #include "Lexer.h" #include "Parser.h" #include "PDFDoc.h" @@ -37,24 +38,28 @@ // PDFDoc //------------------------------------------------------------------------ -PDFDoc::PDFDoc(GString *fileName1, GString *userPassword) { +PDFDoc::PDFDoc(GString *fileNameA, GString *ownerPassword, + GString *userPassword, GBool printCommandsA) { Object obj; GString *fileName2; ok = gFalse; + errCode = errNone; file = NULL; str = NULL; xref = NULL; catalog = NULL; links = NULL; + printCommands = printCommandsA; // try to open file - fileName = fileName1; + fileName = fileNameA; fileName2 = NULL; #ifdef VMS if (!(file = fopen(fileName->getCString(), "rb", "ctx=stm"))) { error(-1, "Couldn't open file '%s'", fileName->getCString()); + errCode = errOpenFile; return; } #else @@ -66,6 +71,7 @@ PDFDoc::PDFDoc(GString *fileName1, GString *userPassword) { if (!(file = fopen(fileName2->getCString(), "rb"))) { error(-1, "Couldn't open file '%s'", fileName->getCString()); delete fileName2; + errCode = errOpenFile; return; } } @@ -75,40 +81,42 @@ PDFDoc::PDFDoc(GString *fileName1, GString *userPassword) { // create stream obj.initNull(); - str = new FileStream(file, 0, -1, &obj); + str = new FileStream(file, 0, gFalse, 0, &obj); - ok = setup(userPassword); + ok = setup(ownerPassword, userPassword); } -PDFDoc::PDFDoc(BaseStream *str, GString *userPassword) { +PDFDoc::PDFDoc(BaseStream *strA, GString *ownerPassword, + GString *userPassword, GBool printCommandsA) { ok = gFalse; + errCode = errNone; fileName = NULL; file = NULL; - this->str = str; + str = strA; xref = NULL; catalog = NULL; links = NULL; - ok = setup(userPassword); + printCommands = printCommandsA; + ok = setup(ownerPassword, userPassword); } -GBool PDFDoc::setup(GString *userPassword) { - Object catObj; - +GBool PDFDoc::setup(GString *ownerPassword, GString *userPassword) { // check header checkHeader(); // read xref table - xref = new XRef(str, userPassword); + xref = new XRef(str, ownerPassword, userPassword); if (!xref->isOk()) { error(-1, "Couldn't read xref table"); + errCode = xref->getErrorCode(); return gFalse; } // read catalog - catalog = new Catalog(xref->getCatalog(&catObj)); - catObj.free(); + catalog = new Catalog(xref, printCommands); if (!catalog->isOk()) { error(-1, "Couldn't read page catalog"); + errCode = errBadCatalog; return gFalse; } @@ -203,8 +211,9 @@ GBool PDFDoc::isLinearized() { lin = gFalse; obj1.initNull(); - parser = new Parser(new Lexer(str->makeSubStream(str->getStart(), - -1, &obj1))); + parser = new Parser(xref, + new Lexer(xref, + str->makeSubStream(str->getStart(), gFalse, 0, &obj1))); parser->getObj(&obj1); parser->getObj(&obj2); parser->getObj(&obj3); @@ -248,4 +257,3 @@ void PDFDoc::getLinks(Page *page) { links = new Links(page->getAnnots(&obj), catalog->getBaseURI()); obj.free(); } - diff --git a/pdf/xpdf/PDFDoc.h b/pdf/xpdf/PDFDoc.h index e679db97..c12531e9 100644 --- a/pdf/xpdf/PDFDoc.h +++ b/pdf/xpdf/PDFDoc.h @@ -2,7 +2,7 @@ // // PDFDoc.h // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -14,13 +14,13 @@ #endif #include +#include "XRef.h" #include "Link.h" #include "Catalog.h" #include "Page.h" class GString; class BaseStream; -class XRef; class OutputDev; class Links; class LinkAction; @@ -33,16 +33,24 @@ class LinkDest; class PDFDoc { public: - PDFDoc(GString *fileName1, GString *userPassword = NULL); - PDFDoc(BaseStream *str, GString *userPassword = NULL); + PDFDoc(GString *fileNameA, GString *ownerPassword = NULL, + GString *userPassword = NULL, GBool printCommandsA = gFalse); + PDFDoc(BaseStream *strA, GString *ownerPassword = NULL, + GString *userPassword = NULL, GBool printCommandsA = gFalse); ~PDFDoc(); // Was PDF document successfully opened? GBool isOk() { return ok; } + // Get the error code (if isOk() returns false). + int getErrorCode() { return errCode; } + // Get file name. GString *getFileName() { return fileName; } + // Get the xref table. + XRef *getXRef() { return xref; } + // Get catalog. Catalog *getCatalog() { return catalog; } @@ -60,6 +68,13 @@ public: // Get number of pages. int getNumPages() { return catalog->getNumPages(); } + // Return the contents of the metadata stream, or NULL if there is + // no metadata. + GString *readMetadata() { return catalog->readMetadata(); } + + // Return the structure tree root object. + Object *getStructTreeRoot() { return catalog->getStructTreeRoot(); } + // Display a page. void displayPage(OutputDev *out, int page, double zoom, int rotate, GBool doLinks); @@ -88,10 +103,14 @@ public: GBool isEncrypted() { return xref->isEncrypted(); } // Check various permissions. - GBool okToPrint() { return xref->okToPrint(); } - GBool okToChange() { return xref->okToChange(); } - GBool okToCopy() { return xref->okToCopy(); } - GBool okToAddNotes() { return xref->okToAddNotes(); } + GBool okToPrint(GBool ignoreOwnerPW = gFalse) + { return xref->okToPrint(ignoreOwnerPW); } + GBool okToChange(GBool ignoreOwnerPW = gFalse) + { return xref->okToChange(ignoreOwnerPW); } + GBool okToCopy(GBool ignoreOwnerPW = gFalse) + { return xref->okToCopy(ignoreOwnerPW); } + GBool okToAddNotes(GBool ignoreOwnerPW = gFalse) + { return xref->okToAddNotes(ignoreOwnerPW); } // Is this document linearized? GBool isLinearized(); @@ -107,7 +126,7 @@ public: private: - GBool setup(GString *userPassword); + GBool setup(GString *ownerPassword, GString *userPassword); void checkHeader(); void getLinks(Page *page); @@ -118,8 +137,10 @@ private: XRef *xref; Catalog *catalog; Links *links; + GBool printCommands; GBool ok; + int errCode; }; #endif diff --git a/pdf/xpdf/PSOutputDev.cc b/pdf/xpdf/PSOutputDev.cc index 53cf39da..18359119 100644 --- a/pdf/xpdf/PSOutputDev.cc +++ b/pdf/xpdf/PSOutputDev.cc @@ -2,7 +2,7 @@ // // PSOutputDev.cc // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -10,6 +10,7 @@ #pragma implementation #endif +#include #include #include #include @@ -17,47 +18,27 @@ #include #include "GString.h" #include "config.h" +#include "GlobalParams.h" #include "Object.h" #include "Error.h" +#include "Function.h" +#include "Gfx.h" #include "GfxState.h" #include "GfxFont.h" +#include "CharCodeToUnicode.h" +#include "UnicodeMap.h" #include "FontFile.h" #include "Catalog.h" #include "Page.h" #include "Stream.h" -#include "FormWidget.h" +#include "Annot.h" #include "PSOutputDev.h" -#if JAPANESE_SUPPORT -#include "Japan12ToRKSJ.h" -#endif - #ifdef MACOS // needed for setting type/creator of MacOS files #include "ICSupport.h" #endif -//------------------------------------------------------------------------ -// Parameters -//------------------------------------------------------------------------ - -// Generate Level 1 PostScript? -GBool psOutLevel1 = gFalse; - -// Generate Level 1 separable PostScript? -GBool psOutLevel1Sep = gFalse; - -// Generate Encapsulated PostScript? -GBool psOutEPS = gFalse; - -#if OPI_SUPPORT -// Generate OPI comments? -GBool psOutOPI = gFalse; -#endif - -int paperWidth = defPaperWidth; -int paperHeight = defPaperHeight; - //------------------------------------------------------------------------ // PostScript prolog and setup //------------------------------------------------------------------------ @@ -67,15 +48,16 @@ static char *prolog[] = { "% PDF special state", "/pdfDictSize 14 def", "/pdfSetup {", - " 2 array astore", + " 3 1 roll 2 array astore", " /setpagedevice where {", - " pop 3 dict dup begin", - " exch /PageSize exch def", + " pop 3 dict begin", + " /PageSize exch def", " /ImagingBBox null def", " /Policies 1 dict dup begin /PageSize 3 def end def", - " end setpagedevice", + " /Duplex exch def", + " currentdict end setpagedevice", " } {", - " pop", + " pop pop", " } ifelse", "} def", "/pdfStartPage {", @@ -93,19 +75,83 @@ static char *prolog[] = { " /pdfHorizScaling 1 def", "} def", "/pdfEndPage { end } def", + "% separation convention operators", + "/findcmykcustomcolor where {", + " pop", + "}{", + " /findcmykcustomcolor { 5 array astore } def", + "} ifelse", + "/setcustomcolor where {", + " pop", + "}{", + " /setcustomcolor {", + " exch", + " [ exch /Separation exch dup 4 get exch /DeviceCMYK exch", + " 0 4 getinterval cvx", + " [ exch /dup load exch { mul exch dup } /forall load", + " /pop load dup ] cvx", + " ] setcolorspace setcolor", + " } def", + "} ifelse", + "/customcolorimage where {", + " pop", + "}{", + " /customcolorimage {", + " gsave", + " [ exch /Separation exch dup 4 get exch /DeviceCMYK exch", + " 0 4 getinterval cvx", + " [ exch /dup load exch { mul exch dup } /forall load", + " /pop load dup ] cvx", + " ] setcolorspace", + " 10 dict begin", + " /ImageType 1 def", + " /DataSource exch def", + " /ImageMatrix exch def", + " /BitsPerComponent exch def", + " /Height exch def", + " /Width exch def", + " /Decode [1 0] def", + " currentdict end", + " image", + " grestore", + " } def", + "} ifelse", + "% PDF color state", "/sCol {", " pdfLastStroke not {", " pdfStroke aload length", - " dup 1 eq { pop setgray }", - " { 3 eq { setrgbcolor } { setcmykcolor } ifelse } ifelse", + " dup 1 eq {", + " pop setgray", + " }{", + " dup 3 eq {", + " pop setrgbcolor", + " }{", + " 4 eq {", + " setcmykcolor", + " }{", + " findcmykcustomcolor exch setcustomcolor", + " } ifelse", + " } ifelse", + " } ifelse", " /pdfLastStroke true def /pdfLastFill false def", " } if", "} def", "/fCol {", " pdfLastFill not {", " pdfFill aload length", - " dup 1 eq { pop setgray }", - " { 3 eq { setrgbcolor } { setcmykcolor } ifelse } ifelse", + " dup 1 eq {", + " pop setgray", + " }{", + " dup 3 eq {", + " pop setrgbcolor", + " }{", + " 4 eq {", + " setcmykcolor", + " }{", + " findcmykcustomcolor exch setcustomcolor", + " } ifelse", + " } ifelse", + " } ifelse", " /pdfLastFill true def /pdfLastStroke false def", " } if", "} def", @@ -120,7 +166,28 @@ static char *prolog[] = { " end", " definefont pop", "} def", - "/pdfMakeFont16 { findfont definefont pop } def", + "/pdfMakeFont16 {", + " exch findfont", + " dup length dict begin", + " { 1 index /FID ne { def } { pop pop } ifelse } forall", + " /WMode exch def", + " currentdict", + " end", + " definefont pop", + "} def", + "/pdfMakeFont16L3 {", + " 1 index /CIDFont resourcestatus {", + " pop pop 1 index /CIDFont findresource /CIDFontType known", + " } {", + " false", + " } ifelse", + " {", + " 0 eq { /Identity-H } { /Identity-V } ifelse", + " exch 1 array astore composefont pop", + " } {", + " pdfMakeFont16", + " } ifelse", + "} def", "% graphics state operators", "/q { gsave pdfDictSize dict begin } def", "/Q { end grestore } def", @@ -144,6 +211,12 @@ static char *prolog[] = { " /pdfLastFill true def /pdfLastStroke false def } def", "/K { 4 copy 4 array astore /pdfStroke exch def setcmykcolor", " /pdfLastStroke true def /pdfLastFill false def } def", + "/ck { 6 copy 6 array astore /pdfFill exch def", + " findcmykcustomcolor exch setcustomcolor", + " /pdfLastFill true def /pdfLastStroke false def } def", + "/CK { 6 copy 6 array astore /pdfStroke exch def", + " findcmykcustomcolor exch setcustomcolor", + " /pdfLastStroke true def /pdfLastFill false def } def", "% path segment operators", "/m { moveto } def", "/l { lineto } def", @@ -153,6 +226,7 @@ static char *prolog[] = { "/h { closepath } def", "% path painting operators", "/S { sCol stroke } def", + "/Sf { fCol stroke } def", "/f { fCol fill } def", "/f* { fCol eofill } def", "% clipping operators", @@ -172,17 +246,55 @@ static char *prolog[] = { "/Td { pdfTextMat transform moveto } def", "/Tm { /pdfTextMat exch def } def", "% text string operators", - "/Tj { pdfTextRender 1 and 0 eq { fCol } { sCol } ifelse", + "/awcp { % awidthcharpath", + " exch {", + " 1 string dup 0 3 index put 2 index charpath", + " 3 index 3 index rmoveto", + " 4 index eq { 5 index 5 index rmoveto } if", + " } forall", + " 6 {pop} repeat", + "} def", + "/Tj { fCol", // because stringwidth has to draw Type 3 chars " 0 pdfTextRise pdfTextMat dtransform rmoveto", - " pdfFontSize mul pdfHorizScaling mul", " 1 index stringwidth pdfTextMat idtransform pop", " sub 1 index length dup 0 ne { div } { pop pop 0 } ifelse", - " pdfWordSpacing 0 pdfTextMat dtransform 32", - " 4 3 roll pdfCharSpacing add 0 pdfTextMat dtransform", - " 6 5 roll awidthshow", + " pdfWordSpacing pdfHorizScaling mul 0 pdfTextMat dtransform 32", + " 4 3 roll pdfCharSpacing pdfHorizScaling mul add 0", + " pdfTextMat dtransform", + " 6 5 roll", + " currentpoint 8 2 roll", + " pdfTextRender 1 and 0 eq {", + " 6 copy awidthshow", + " } if", + " pdfTextRender 3 and dup 1 eq exch 2 eq or {", + " 8 6 roll moveto", + " sCol false awcp currentpoint stroke moveto", + " } {", + " 8 {pop} repeat", + " } ifelse", " 0 pdfTextRise neg pdfTextMat dtransform rmoveto } def", + "/Tj16 { pdfTextRender 1 and 0 eq { fCol } { sCol } ifelse", + " 0 pdfTextRise pdfTextMat dtransform rmoveto", + " 2 index stringwidth pdfTextMat idtransform pop", + " sub exch div", + " pdfWordSpacing pdfHorizScaling mul 0 pdfTextMat dtransform 32", + " 4 3 roll pdfCharSpacing pdfHorizScaling mul add 0", + " pdfTextMat dtransform", + " 6 5 roll awidthshow", + " 0 pdfTextRise neg pdfTextMat dtransform rmoveto } def", + "/Tj16V { pdfTextRender 1 and 0 eq { fCol } { sCol } ifelse", + " 0 pdfTextRise pdfTextMat dtransform rmoveto", + " 2 index stringwidth pdfTextMat idtransform exch pop", + " sub exch div", + " 0 pdfWordSpacing pdfTextMat dtransform 32", + " 4 3 roll pdfCharSpacing add 0 exch", + " pdfTextMat dtransform", + " 6 5 roll awidthshow", + " 0 pdfTextRise neg pdfTextMat dtransform rmoveto } def", "/TJm { pdfFontSize 0.001 mul mul neg 0", " pdfTextMat dtransform rmoveto } def", + "/TJmV { pdfFontSize 0.001 mul mul neg 0 exch", + " pdfTextMat dtransform rmoveto } def", "% Level 1 image operators", "/pdfIm1 {", " /pdfImBuf1 4 index string def", @@ -211,6 +323,20 @@ static char *prolog[] = { " not { pop exit } if", " (%-EOD-) eq { exit } if } loop", "} def", + "/pdfImSep {", + " findcmykcustomcolor exch", + " dup /Width get /pdfImBuf1 exch string def", + " begin Width Height BitsPerComponent ImageMatrix DataSource end", + " /pdfImData exch def", + " { pdfImData pdfImBuf1 readstring pop", + " 0 1 2 index length 1 sub {", + " 1 index exch 2 copy get 255 exch sub put", + " } for }", + " 6 5 roll customcolorimage", + " { currentfile pdfImBuf readline", + " not { pop exit } if", + " (%-EOD-) eq { exit } if } loop", + "} def", "/pdfImM {", " fCol imagemask", " { currentfile pdfImBuf readline", @@ -221,36 +347,76 @@ static char *prolog[] = { NULL }; +static char *cmapProlog[] = { + "/CIDInit /ProcSet findresource begin", + "10 dict begin", + " begincmap", + " /CMapType 1 def", + " /CMapName /Identity-H def", + " /CIDSystemInfo 3 dict dup begin", + " /Registry (Adobe) def", + " /Ordering (Identity) def", + " /Supplement 0 def", + " end def", + " 1 begincodespacerange", + " <0000> ", + " endcodespacerange", + " 0 usefont", + " 1 begincidrange", + " <0000> 0", + " endcidrange", + " endcmap", + " currentdict CMapName exch /CMap defineresource pop", + "end", + "10 dict begin", + " begincmap", + " /CMapType 1 def", + " /CMapName /Identity-V def", + " /CIDSystemInfo 3 dict dup begin", + " /Registry (Adobe) def", + " /Ordering (Identity) def", + " /Supplement 0 def", + " end def", + " /WMode 1 def", + " 1 begincodespacerange", + " <0000> ", + " endcodespacerange", + " 0 usefont", + " 1 begincidrange", + " <0000> 0", + " endcidrange", + " endcmap", + " currentdict CMapName exch /CMap defineresource pop", + "end", + "end", + NULL +}; + //------------------------------------------------------------------------ // Fonts //------------------------------------------------------------------------ -struct PSFont { - char *name; // PDF name - char *psName; // PostScript name -}; - struct PSSubstFont { char *psName; // PostScript name double mWidth; // width of 'm' character }; -static PSFont psFonts[] = { - {"Courier", "Courier"}, - {"Courier-Bold", "Courier-Bold"}, - {"Courier-Oblique", "Courier-Bold"}, - {"Courier-BoldOblique", "Courier-BoldOblique"}, - {"Helvetica", "Helvetica"}, - {"Helvetica-Bold", "Helvetica-Bold"}, - {"Helvetica-Oblique", "Helvetica-Oblique"}, - {"Helvetica-BoldOblique", "Helvetica-BoldOblique"}, - {"Symbol", "Symbol"}, - {"Times-Roman", "Times-Roman"}, - {"Times-Bold", "Times-Bold"}, - {"Times-Italic", "Times-Italic"}, - {"Times-BoldItalic", "Times-BoldItalic"}, - {"ZapfDingbats", "ZapfDingbats"}, - {NULL} +static char *psFonts[] = { + "Courier", + "Courier-Bold", + "Courier-Oblique", + "Courier-BoldOblique", + "Helvetica", + "Helvetica-Bold", + "Helvetica-Oblique", + "Helvetica-BoldOblique", + "Symbol", + "Times-Roman", + "Times-Bold", + "Times-Italic", + "Times-BoldItalic", + "ZapfDingbats", + NULL }; static PSSubstFont psSubstFonts[] = { @@ -268,31 +434,96 @@ static PSSubstFont psSubstFonts[] = { {"Courier-BoldOblique", 0.600} }; +// Encoding info for substitute 16-bit font +struct PSFont16Enc { + Ref fontID; + GString *enc; +}; + +//------------------------------------------------------------------------ +// process colors +//------------------------------------------------------------------------ + +#define psProcessCyan 1 +#define psProcessMagenta 2 +#define psProcessYellow 4 +#define psProcessBlack 8 +#define psProcessCMYK 15 + +//------------------------------------------------------------------------ +// PSOutCustomColor +//------------------------------------------------------------------------ + +class PSOutCustomColor { +public: + + PSOutCustomColor(double cA, double mA, + double yA, double kA, GString *nameA); + ~PSOutCustomColor(); + + double c, m, y, k; + GString *name; + PSOutCustomColor *next; +}; + +PSOutCustomColor::PSOutCustomColor(double cA, double mA, + double yA, double kA, GString *nameA) { + c = cA; + m = mA; + y = yA; + k = kA; + name = nameA; + next = NULL; +} + +PSOutCustomColor::~PSOutCustomColor() { + delete name; +} + //------------------------------------------------------------------------ // PSOutputDev //------------------------------------------------------------------------ -PSOutputDev::PSOutputDev(char *fileName, Catalog *catalog, - int firstPage, int lastPage, - GBool embedType11, GBool doForm1) { +extern "C" { +typedef void (*SignalFunc)(int); +} + +PSOutputDev::PSOutputDev(char *fileName, XRef *xrefA, Catalog *catalog, + int firstPage, int lastPage, PSOutMode modeA) { Page *page; + PDFRectangle *box; Dict *resDict; - FormWidgets *formWidgets; + Annots *annots; char **p; int pg; Object obj1, obj2; int i; // initialize - embedType1 = embedType11; - doForm = doForm1; + xref = xrefA; + level = globalParams->getPSLevel(); + mode = modeA; + paperWidth = globalParams->getPSPaperWidth(); + paperHeight = globalParams->getPSPaperHeight(); fontIDs = NULL; fontFileIDs = NULL; fontFileNames = NULL; + font16Enc = NULL; embFontList = NULL; f = NULL; - if (doForm) + if (mode == psModeForm) { lastPage = firstPage; + } + processColors = 0; + customColors = NULL; + inType3Char = gFalse; + t3String = NULL; + +#if OPI_SUPPORT + // initialize OPI nesting levels + opi13Nest = 0; + opi20Nest = 0; +#endif // open file or pipe ok = gTrue; @@ -303,7 +534,7 @@ PSOutputDev::PSOutputDev(char *fileName, Catalog *catalog, fileType = psPipe; #ifdef HAVE_POPEN #ifndef WIN32 - signal(SIGPIPE, (void (*)(int))SIG_IGN); + signal(SIGPIPE, (SignalFunc)SIG_IGN); #endif if (!(f = popen(fileName + 1, "w"))) { error(-1, "Couldn't run print command '%s'", fileName); @@ -334,68 +565,82 @@ PSOutputDev::PSOutputDev(char *fileName, Catalog *catalog, fontFileNameSize = 64; fontFileNameLen = 0; fontFileNames = (GString **)gmalloc(fontFileNameSize * sizeof(GString *)); + font16EncLen = 0; + font16EncSize = 0; // initialize embedded font resource comment list embFontList = new GString(); // write header - if (doForm) { - writePS("%%!PS-Adobe-3.0 Resource-Form\n"); + switch (mode) { + case psModePS: + writePS("%%!PS-Adobe-3.0\n"); writePS("%%%%Creator: xpdf/pdftops %s\n", xpdfVersion); writePS("%%%%LanguageLevel: %d\n", - (psOutLevel1 || psOutLevel1Sep) ? 1 : 2); - if (psOutLevel1Sep) { - writePS("%%%%DocumentProcessColors: Cyan Magenta Yellow Black\n"); + (level == psLevel1 || level == psLevel1Sep) ? 1 : + (level == psLevel2 || level == psLevel2Sep) ? 2 : 3); + if (level == psLevel1Sep || level == psLevel2Sep || level == psLevel3Sep) { + writePS("%%%%DocumentProcessColors: (atend)\n"); + writePS("%%%%DocumentCustomColors: (atend)\n"); } + writePS("%%%%DocumentSuppliedResources: (atend)\n"); + writePS("%%%%DocumentMedia: plain %d %d 0 () ()\n", + paperWidth, paperHeight); + writePS("%%%%Pages: %d\n", lastPage - firstPage + 1); writePS("%%%%EndComments\n"); - page = catalog->getPage(firstPage); - writePS("32 dict dup begin\n"); - writePS("/BBox [%d %d %d %d] def\n", - (int)page->getX1(), (int)page->getY1(), - (int)page->getX2(), (int)page->getY2()); - writePS("/FormType 1 def\n"); - writePS("/Matrix [1 0 0 1 0 0] def\n"); - } else if (psOutEPS) { + writePS("%%%%BeginDefaults\n"); + writePS("%%%%PageMedia: plain\n"); + writePS("%%%%EndDefaults\n"); + break; + case psModeEPS: writePS("%%!PS-Adobe-3.0 EPSF-3.0\n"); writePS("%%%%Creator: xpdf/pdftops %s\n", xpdfVersion); writePS("%%%%LanguageLevel: %d\n", - (psOutLevel1 || psOutLevel1Sep) ? 1 : 2); - if (psOutLevel1Sep) { - writePS("%%%%DocumentProcessColors: Cyan Magenta Yellow Black\n"); + (level == psLevel1 || level == psLevel1Sep) ? 1 : + (level == psLevel2 || level == psLevel2Sep) ? 2 : 3); + if (level == psLevel1Sep || level == psLevel2Sep || level == psLevel3Sep) { + writePS("%%%%DocumentProcessColors: (atend)\n"); + writePS("%%%%DocumentCustomColors: (atend)\n"); } page = catalog->getPage(firstPage); + box = page->getBox(); writePS("%%%%BoundingBox: %d %d %d %d\n", - (int)floor(page->getX1()), (int)floor(page->getY1()), - (int)ceil(page->getX2()), (int)ceil(page->getY2())); - if (floor(page->getX1()) != ceil(page->getX1()) || - floor(page->getY1()) != ceil(page->getY1()) || - floor(page->getX2()) != ceil(page->getX2()) || - floor(page->getY2()) != ceil(page->getY2())) { + (int)floor(box->x1), (int)floor(box->y1), + (int)ceil(box->x2), (int)ceil(box->y2)); + if (floor(box->x1) != ceil(box->x1) || + floor(box->y1) != ceil(box->y1) || + floor(box->x2) != ceil(box->x2) || + floor(box->y2) != ceil(box->y2)) { writePS("%%%%HiResBoundingBox: %g %g %g %g\n", - page->getX1(), page->getY1(), - page->getX2(), page->getY2()); + box->x1, box->y1, box->x2, box->y2); } writePS("%%%%DocumentSuppliedResources: (atend)\n"); writePS("%%%%EndComments\n"); - } else { - writePS("%%!PS-Adobe-3.0\n"); + break; + case psModeForm: + writePS("%%!PS-Adobe-3.0 Resource-Form\n"); writePS("%%%%Creator: xpdf/pdftops %s\n", xpdfVersion); writePS("%%%%LanguageLevel: %d\n", - (psOutLevel1 || psOutLevel1Sep) ? 1 : 2); - if (psOutLevel1Sep) { - writePS("%%%%DocumentProcessColors: Cyan Magenta Yellow Black\n"); + (level == psLevel1 || level == psLevel1Sep) ? 1 : + (level == psLevel2 || level == psLevel2Sep) ? 2 : 3); + if (level == psLevel1Sep || level == psLevel2Sep || level == psLevel3Sep) { + writePS("%%%%DocumentProcessColors: (atend)\n"); + writePS("%%%%DocumentCustomColors: (atend)\n"); } - writePS("%%%%DocumentMedia: plain %d %d 0 () ()\n", - paperWidth, paperHeight); - writePS("%%%%Pages: %d\n", lastPage - firstPage + 1); + writePS("%%%%DocumentSuppliedResources: (atend)\n"); writePS("%%%%EndComments\n"); - writePS("%%%%BeginDefaults\n"); - writePS("%%%%PageMedia: plain\n"); - writePS("%%%%EndDefaults\n"); + page = catalog->getPage(firstPage); + box = page->getBox(); + writePS("32 dict dup begin\n"); + writePS("/BBox [%d %d %d %d] def\n", + (int)box->x1, (int)box->y1, (int)box->x2, (int)box->y2); + writePS("/FormType 1 def\n"); + writePS("/Matrix [1 0 0 1 0 0] def\n"); + break; } // write prolog - if (!doForm) { + if (mode != psModeForm) { writePS("%%%%BeginProlog\n"); } writePS("%%%%BeginResource: procset xpdf %s 0\n", xpdfVersion); @@ -403,13 +648,17 @@ PSOutputDev::PSOutputDev(char *fileName, Catalog *catalog, writePS("%s\n", *p); } writePS("%%%%EndResource\n"); - if (!doForm) { + if (level >= psLevel3) { + for (p = cmapProlog; *p; ++p) { + writePS("%s\n", *p); + } + } + if (mode != psModeForm) { writePS("%%%%EndProlog\n"); } // set up fonts and images - type3Warning = gFalse; - if (doForm) { + if (mode == psModeForm) { // swap the form and xpdf dicts writePS("xpdf end begin dup begin\n"); } else { @@ -421,10 +670,10 @@ PSOutputDev::PSOutputDev(char *fileName, Catalog *catalog, if ((resDict = page->getResourceDict())) { setupResources(resDict); } - formWidgets = new FormWidgets(page->getAnnots(&obj1)); + annots = new Annots(xref, page->getAnnots(&obj1)); obj1.free(); - for (i = 0; i < formWidgets->getNumWidgets(); ++i) { - if (formWidgets->getWidget(i)->getAppearance(&obj1)->isStream()) { + for (i = 0; i < annots->getNumAnnots(); ++i) { + if (annots->getAnnot(i)->getAppearance(&obj1)->isStream()) { obj1.streamGetDict()->lookup("Resources", &obj2); if (obj2.isDict()) { setupResources(obj2.getDict()); @@ -433,45 +682,65 @@ PSOutputDev::PSOutputDev(char *fileName, Catalog *catalog, } obj1.free(); } - delete formWidgets; + delete annots; } - if (!doForm) { + if (mode != psModeForm) { + if (mode != psModeEPS) { + writePS("%d %d %s pdfSetup\n", + paperWidth, paperHeight, + globalParams->getPSDuplex() ? "true" : "false"); + } #if OPI_SUPPORT - if (psOutOPI) { + if (globalParams->getPSOPI()) { writePS("/opiMatrix matrix currentmatrix def\n"); } #endif - if (!psOutEPS) { - writePS("%d %d pdfSetup\n", paperWidth, paperHeight); - } writePS("%%%%EndSetup\n"); } // initialize sequential page number seqPage = 1; - -#if OPI_SUPPORT - // initialize OPI nesting levels - opi13Nest = 0; - opi20Nest = 0; -#endif } PSOutputDev::~PSOutputDev() { + PSOutCustomColor *cc; int i; if (f) { - if (doForm) { + if (mode == psModeForm) { writePS("/Foo exch /Form defineresource pop\n"); - } else if (psOutEPS) { + } else { writePS("%%%%Trailer\n"); writePS("end\n"); writePS("%%%%DocumentSuppliedResources:\n"); writePS("%s", embFontList->getCString()); - writePS("%%%%EOF\n"); - } else { - writePS("%%%%Trailer\n"); - writePS("end\n"); + if (level == psLevel1Sep || level == psLevel2Sep || + level == psLevel3Sep) { + writePS("%%%%DocumentProcessColors:"); + if (processColors & psProcessCyan) { + writePS(" Cyan"); + } + if (processColors & psProcessMagenta) { + writePS(" Magenta"); + } + if (processColors & psProcessYellow) { + writePS(" Yellow"); + } + if (processColors & psProcessBlack) { + writePS(" Black"); + } + writePS("\n"); + writePS("%%%%DocumentCustomColors:"); + for (cc = customColors; cc; cc = cc->next) { + writePS(" (%s)", cc->name->getCString()); + } + writePS("\n"); + writePS("%%%%CMYKCustomColor:\n"); + for (cc = customColors; cc; cc = cc->next) { + writePS("%%%%+ %g %g %g %g (%s)\n", + cc->c, cc->m, cc->y, cc->k, cc->name->getCString()); + } + } writePS("%%%%EOF\n"); } if (fileType == psFile) { @@ -484,7 +753,7 @@ PSOutputDev::~PSOutputDev() { else if (fileType == psPipe) { pclose(f); #ifndef WIN32 - signal(SIGPIPE, (void (*)(int))SIG_DFL); + signal(SIGPIPE, (SignalFunc)SIG_DFL); #endif } #endif @@ -504,6 +773,17 @@ PSOutputDev::~PSOutputDev() { } gfree(fontFileNames); } + if (font16Enc) { + for (i = 0; i < font16EncLen; ++i) { + delete font16Enc[i].enc; + } + gfree(font16Enc); + } + while (customColors) { + cc = customColors; + customColors = cc->next; + delete cc; + } } void PSOutputDev::setupResources(Dict *resDict) { @@ -538,23 +818,26 @@ void PSOutputDev::setupFonts(Dict *resDict) { resDict->lookup("Font", &fontDict); if (fontDict.isDict()) { - gfxFontDict = new GfxFontDict(fontDict.getDict()); + gfxFontDict = new GfxFontDict(xref, fontDict.getDict()); for (i = 0; i < gfxFontDict->getNumFonts(); ++i) { font = gfxFontDict->getFont(i); - setupFont(font); + setupFont(font, resDict); } delete gfxFontDict; } fontDict.free(); } -void PSOutputDev::setupFont(GfxFont *font) { +void PSOutputDev::setupFont(GfxFont *font, Dict *parentResDict) { Ref fontFileID; GString *name; + PSFontParam *fontParam; + GString *psNameStr; char *psName; + char type3Name[64]; + UnicodeMap *uMap; char *charName; double xs, ys; - GBool do16Bit; int code; double w1, w2; double *fm; @@ -562,9 +845,10 @@ void PSOutputDev::setupFont(GfxFont *font) { // check if font is already set up for (i = 0; i < fontIDLen; ++i) { - if (fontIDs[i].num == font->getID().num && - fontIDs[i].gen == font->getID().gen) + if (fontIDs[i].num == font->getID()->num && + fontIDs[i].gen == font->getID()->gen) { return; + } } // add entry to fontIDs list @@ -572,64 +856,113 @@ void PSOutputDev::setupFont(GfxFont *font) { fontIDSize += 64; fontIDs = (Ref *)grealloc(fontIDs, fontIDSize * sizeof(Ref)); } - fontIDs[fontIDLen++] = font->getID(); + fontIDs[fontIDLen++] = *font->getID(); xs = ys = 1; - do16Bit = gFalse; + psNameStr = NULL; + + // check for resident 8-bit font + if (font->getName() && + (fontParam = globalParams->getPSFont(font->getName()))) { + psName = fontParam->psFontName->getCString(); // check for embedded Type 1 font - if (embedType1 && font->getType() == fontType1 && - font->getEmbeddedFontID(&fontFileID)) { - psName = font->getEmbeddedFontName(); + } else if (globalParams->getPSEmbedType1() && + font->getType() == fontType1 && + font->getEmbeddedFontID(&fontFileID)) { + psNameStr = filterPSName(font->getEmbeddedFontName()); + psName = psNameStr->getCString(); setupEmbeddedType1Font(&fontFileID, psName); + // check for embedded Type 1C font + } else if (globalParams->getPSEmbedType1() && + font->getType() == fontType1C && + font->getEmbeddedFontID(&fontFileID)) { + psNameStr = filterPSName(font->getEmbeddedFontName()); + psName = psNameStr->getCString(); + setupEmbeddedType1CFont(font, &fontFileID, psName); + // check for external Type 1 font file - } else if (embedType1 && font->getType() == fontType1 && + } else if (globalParams->getPSEmbedType1() && + font->getType() == fontType1 && font->getExtFontFile()) { // this assumes that the PS font name matches the PDF font name psName = font->getName()->getCString(); - setupEmbeddedType1Font(font->getExtFontFile(), psName); + setupExternalType1Font(font->getExtFontFile(), psName); - // check for embedded Type 1C font - } else if (embedType1 && font->getType() == fontType1C && + // check for embedded TrueType font + } else if (globalParams->getPSEmbedTrueType() && + font->getType() == fontTrueType && font->getEmbeddedFontID(&fontFileID)) { - psName = font->getEmbeddedFontName(); - setupEmbeddedType1CFont(font, &fontFileID, psName); + psNameStr = filterPSName(font->getEmbeddedFontName()); + psName = psNameStr->getCString(); + setupEmbeddedTrueTypeFont(font, &fontFileID, psName); - } else if (font->is16Bit() && font->getCharSet16() == font16AdobeJapan12) { - psName = "Ryumin-Light-RKSJ"; - do16Bit = gTrue; + // check for external TrueType font file + } else if (globalParams->getPSEmbedTrueType() && + font->getType() == fontTrueType && + font->getExtFontFile()) { + psNameStr = filterPSName(font->getName()); + psName = psNameStr->getCString(); + setupExternalTrueTypeFont(font, psName); - // do font substitution - } else { - if (!type3Warning && font->getType() == fontType3) { - error(-1, "This document uses Type 3 fonts - some text may not be correctly printed"); - type3Warning = gTrue; - } + // check for embedded CID PostScript font + } else if (globalParams->getPSEmbedCIDPostScript() && + font->getType() == fontCIDType0C && + font->getEmbeddedFontID(&fontFileID)) { + psNameStr = filterPSName(font->getEmbeddedFontName()); + psName = psNameStr->getCString(); + setupEmbeddedCIDType0Font(font, &fontFileID, psName); + + // check for embedded CID TrueType font + } else if (globalParams->getPSEmbedCIDTrueType() && + font->getType() == fontCIDType2 && + font->getEmbeddedFontID(&fontFileID)) { + psNameStr = filterPSName(font->getEmbeddedFontName()); + psName = psNameStr->getCString(); + setupEmbeddedCIDTrueTypeFont(font, &fontFileID, psName); + + } else if (font->getType() == fontType3) { + sprintf(type3Name, "T3_%d_%d", + font->getID()->num, font->getID()->gen); + psName = type3Name; + setupType3Font(font, psName, parentResDict); + + // do 8-bit font substitution + } else if (!font->isCIDFont()) { name = font->getName(); psName = NULL; if (name) { - for (i = 0; psFonts[i].name; ++i) { - if (name->cmp(psFonts[i].name) == 0) { - psName = psFonts[i].psName; + for (i = 0; psFonts[i]; ++i) { + if (name->cmp(psFonts[i]) == 0) { + psName = psFonts[i]; break; } } } if (!psName) { - if (font->isFixedWidth()) + if (font->isFixedWidth()) { i = 8; - else if (font->isSerif()) + } else if (font->isSerif()) { i = 4; - else + } else { i = 0; - if (font->isBold()) + } + if (font->isBold()) { i += 2; - if (font->isItalic()) + } + if (font->isItalic()) { i += 1; + } psName = psSubstFonts[i].psName; - if ((code = font->getCharCode("m")) >= 0) { - w1 = font->getWidth(code); + for (code = 0; code < 256; ++code) { + if ((charName = ((Gfx8BitFont *)font)->getCharName(code)) && + charName[0] == 'm' && charName[1] == '\0') { + break; + } + } + if (code < 256) { + w1 = ((Gfx8BitFont *)font)->getWidth(code); } else { w1 = 0; } @@ -652,25 +985,71 @@ void PSOutputDev::setupFont(GfxFont *font) { ys = 1; } } + + // do 16-bit font substitution + } else if ((fontParam = globalParams-> + getPSFont16(font->getName(), + ((GfxCIDFont *)font)->getCollection(), + font->getWMode()))) { + psName = fontParam->psFontName->getCString(); + if (font16EncLen >= font16EncSize) { + font16EncSize += 16; + font16Enc = (PSFont16Enc *)grealloc(font16Enc, + font16EncSize * sizeof(PSFont16Enc)); + } + font16Enc[font16EncLen].fontID = *font->getID(); + font16Enc[font16EncLen].enc = fontParam->encoding->copy(); + if ((uMap = globalParams->getUnicodeMap(font16Enc[font16EncLen].enc))) { + uMap->decRefCnt(); + ++font16EncLen; + } else { + error(-1, "Couldn't find Unicode map for 16-bit font encoding '%s'", + font16Enc[font16EncLen].enc->getCString()); + } + + // give up - can't do anything with this font + } else { + error(-1, "Couldn't find a font to substitute for '%s' ('%s' character collection)", + font->getName() ? font->getName()->getCString() : "(unnamed)", + ((GfxCIDFont *)font)->getCollection() + ? ((GfxCIDFont *)font)->getCollection()->getCString() + : "(unknown)"); + return; } // generate PostScript code to set up the font - if (do16Bit) { - writePS("/F%d_%d /%s pdfMakeFont16\n", - font->getID().num, font->getID().gen, psName); + if (font->isCIDFont()) { + if (level == psLevel3 || level == psLevel3Sep) { + writePS("/F%d_%d /%s %d pdfMakeFont16L3\n", + font->getID()->num, font->getID()->gen, psName, + font->getWMode()); + } else { + writePS("/F%d_%d /%s %d pdfMakeFont16\n", + font->getID()->num, font->getID()->gen, psName, + font->getWMode()); + } } else { writePS("/F%d_%d /%s %g %g\n", - font->getID().num, font->getID().gen, psName, xs, ys); + font->getID()->num, font->getID()->gen, psName, xs, ys); for (i = 0; i < 256; i += 8) { writePS((i == 0) ? "[ " : " "); for (j = 0; j < 8; ++j) { - charName = font->getCharName(i+j); + charName = ((Gfx8BitFont *)font)->getCharName(i+j); + // this is a kludge for broken PDF files that encode char 32 + // as .notdef + if (i+j == 32 && charName && !strcmp(charName, ".notdef")) { + charName = "space"; + } writePS("/%s", charName ? charName : ".notdef"); } writePS((i == 256-8) ? "]\n" : "\n"); } writePS("pdfMakeFont\n"); } + + if (psNameStr) { + delete psNameStr; + } } void PSOutputDev::setupEmbeddedType1Font(Ref *id, char *psName) { @@ -699,7 +1078,7 @@ void PSOutputDev::setupEmbeddedType1Font(Ref *id, char *psName) { // get the font stream and info refObj.initRef(id->num, id->gen); - refObj.fetch(&strObj); + refObj.fetch(xref, &strObj); refObj.free(); if (!strObj.isStream()) { error(-1, "Embedded font file object is not a stream"); @@ -723,17 +1102,16 @@ void PSOutputDev::setupEmbeddedType1Font(Ref *id, char *psName) { obj2.free(); // beginning comment - if (psOutEPS) { - writePS("%%%%BeginResource: font %s\n", psName); - embFontList->append("%%+ font "); - embFontList->append(psName); - embFontList->append("\n"); - } + writePS("%%%%BeginResource: font %s\n", psName); + embFontList->append("%%+ font "); + embFontList->append(psName); + embFontList->append("\n"); // copy ASCII portion of font strObj.streamReset(); - for (i = 0; i < length1 && (c = strObj.streamGetChar()) != EOF; ++i) - fputc(c, f); + for (i = 0; i < length1 && (c = strObj.streamGetChar()) != EOF; ++i) { + writePSChar(c); + } // figure out if encrypted portion is binary or ASCII binMode = gFalse; @@ -752,41 +1130,45 @@ void PSOutputDev::setupEmbeddedType1Font(Ref *id, char *psName) { // convert binary data to ASCII if (binMode) { for (i = 0; i < 4; ++i) { - fputc(hexChar[(start[i] >> 4) & 0x0f], f); - fputc(hexChar[start[i] & 0x0f], f); + writePSChar(hexChar[(start[i] >> 4) & 0x0f]); + writePSChar(hexChar[start[i] & 0x0f]); } while (i < length2) { - if ((c = strObj.streamGetChar()) == EOF) + if ((c = strObj.streamGetChar()) == EOF) { break; - fputc(hexChar[(c >> 4) & 0x0f], f); - fputc(hexChar[c & 0x0f], f); - if (++i % 32 == 0) - fputc('\n', f); + } + writePSChar(hexChar[(c >> 4) & 0x0f]); + writePSChar(hexChar[c & 0x0f]); + if (++i % 32 == 0) { + writePSChar('\n'); + } + } + if (i % 32 > 0) { + writePSChar('\n'); } - if (i % 32 > 0) - fputc('\n', f); // already in ASCII format -- just copy it } else { - for (i = 0; i < 4; ++i) - fputc(start[i], f); + for (i = 0; i < 4; ++i) { + writePSChar(start[i]); + } for (i = 4; i < length2; ++i) { - if ((c = strObj.streamGetChar()) == EOF) + if ((c = strObj.streamGetChar()) == EOF) { break; - fputc(c, f); + } + writePSChar(c); } } // write padding and "cleartomark" - for (i = 0; i < 8; ++i) + for (i = 0; i < 8; ++i) { writePS("00000000000000000000000000000000" "00000000000000000000000000000000\n"); + } writePS("cleartomark\n"); // ending comment - if (psOutEPS) { - writePS("%%%%EndResource\n"); - } + writePS("%%%%EndResource\n"); err1: strObj.streamClose(); @@ -795,7 +1177,7 @@ void PSOutputDev::setupEmbeddedType1Font(Ref *id, char *psName) { //~ This doesn't handle .pfb files or binary eexec data (which only //~ happens in pfb files?). -void PSOutputDev::setupEmbeddedType1Font(GString *fileName, char *psName) { +void PSOutputDev::setupExternalType1Font(GString *fileName, char *psName) { FILE *fontFile; int c; int i; @@ -816,33 +1198,30 @@ void PSOutputDev::setupEmbeddedType1Font(GString *fileName, char *psName) { fontFileNames[fontFileNameLen++] = fileName->copy(); // beginning comment - if (psOutEPS) { - writePS("%%%%BeginResource: font %s\n", psName); - embFontList->append("%%+ font "); - embFontList->append(psName); - embFontList->append("\n"); - } + writePS("%%%%BeginResource: font %s\n", psName); + embFontList->append("%%+ font "); + embFontList->append(psName); + embFontList->append("\n"); // copy the font file if (!(fontFile = fopen(fileName->getCString(), "rb"))) { error(-1, "Couldn't open external font file"); return; } - while ((c = fgetc(fontFile)) != EOF) - fputc(c, f); + while ((c = fgetc(fontFile)) != EOF) { + writePSChar(c); + } fclose(fontFile); // ending comment - if (psOutEPS) { - writePS("%%%%EndResource\n"); - } + writePS("%%%%EndResource\n"); } void PSOutputDev::setupEmbeddedType1CFont(GfxFont *font, Ref *id, char *psName) { char *fontBuf; int fontLen; - Type1CFontConverter *cvt; + Type1CFontFile *t1cFile; int i; // check if font is already embedded @@ -860,31 +1239,284 @@ void PSOutputDev::setupEmbeddedType1CFont(GfxFont *font, Ref *id, fontFileIDs[fontFileIDLen++] = *id; // beginning comment - if (psOutEPS) { - writePS("%%%%BeginResource: font %s\n", psName); - embFontList->append("%%+ font "); - embFontList->append(psName); - embFontList->append("\n"); - } + writePS("%%%%BeginResource: font %s\n", psName); + embFontList->append("%%+ font "); + embFontList->append(psName); + embFontList->append("\n"); // convert it to a Type 1 font - fontBuf = font->readEmbFontFile(&fontLen); - cvt = new Type1CFontConverter(fontBuf, fontLen, f); - cvt->convert(); - delete cvt; + fontBuf = font->readEmbFontFile(xref, &fontLen); + t1cFile = new Type1CFontFile(fontBuf, fontLen); + t1cFile->convertToType1(f); + delete t1cFile; + gfree(fontBuf); + + // ending comment + writePS("%%%%EndResource\n"); +} + +void PSOutputDev::setupEmbeddedTrueTypeFont(GfxFont *font, Ref *id, + char *psName) { + char *fontBuf; + int fontLen; + TrueTypeFontFile *ttFile; + CharCodeToUnicode *ctu; + int i; + + // check if font is already embedded + for (i = 0; i < fontFileIDLen; ++i) { + if (fontFileIDs[i].num == id->num && + fontFileIDs[i].gen == id->gen) + return; + } + + // add entry to fontFileIDs list + if (fontFileIDLen >= fontFileIDSize) { + fontFileIDSize += 64; + fontFileIDs = (Ref *)grealloc(fontFileIDs, fontFileIDSize * sizeof(Ref)); + } + fontFileIDs[fontFileIDLen++] = *id; + + // beginning comment + writePS("%%%%BeginResource: font %s\n", psName); + embFontList->append("%%+ font "); + embFontList->append(psName); + embFontList->append("\n"); + + // convert it to a Type 42 font + fontBuf = font->readEmbFontFile(xref, &fontLen); + ttFile = new TrueTypeFontFile(fontBuf, fontLen); + ctu = ((Gfx8BitFont *)font)->getToUnicode(); + ttFile->convertToType42(psName, ((Gfx8BitFont *)font)->getEncoding(), + ctu, ((Gfx8BitFont *)font)->getHasEncoding(), f); + ctu->decRefCnt(); + delete ttFile; gfree(fontBuf); // ending comment - if (psOutEPS) { - writePS("%%%%EndResource\n"); + writePS("%%%%EndResource\n"); +} + +void PSOutputDev::setupExternalTrueTypeFont(GfxFont *font, char *psName) { + GString *fileName; + char *fontBuf; + int fontLen; + TrueTypeFontFile *ttFile; + CharCodeToUnicode *ctu; + int i; + + // check if font is already embedded + fileName = font->getExtFontFile(); + for (i = 0; i < fontFileNameLen; ++i) { + if (!fontFileNames[i]->cmp(fileName)) { + return; + } + } + + // add entry to fontFileNames list + if (fontFileNameLen >= fontFileNameSize) { + fontFileNameSize += 64; + fontFileNames = (GString **)grealloc(fontFileNames, + fontFileNameSize * sizeof(GString *)); } + fontFileNames[fontFileNameLen++] = fileName->copy(); + + // beginning comment + writePS("%%%%BeginResource: font %s\n", psName); + embFontList->append("%%+ font "); + embFontList->append(psName); + embFontList->append("\n"); + + // convert it to a Type 42 font + fontBuf = font->readExtFontFile(&fontLen); + ttFile = new TrueTypeFontFile(fontBuf, fontLen); + ctu = ((Gfx8BitFont *)font)->getToUnicode(); + ttFile->convertToType42(psName, ((Gfx8BitFont *)font)->getEncoding(), + ctu, ((Gfx8BitFont *)font)->getHasEncoding(), f); + ctu->decRefCnt(); + delete ttFile; + gfree(fontBuf); + + // ending comment + writePS("%%%%EndResource\n"); +} + +void PSOutputDev::setupEmbeddedCIDType0Font(GfxFont *font, Ref *id, + char *psName) { + char *fontBuf; + int fontLen; + Type1CFontFile *t1cFile; + int i; + + // check if font is already embedded + for (i = 0; i < fontFileIDLen; ++i) { + if (fontFileIDs[i].num == id->num && + fontFileIDs[i].gen == id->gen) + return; + } + + // add entry to fontFileIDs list + if (fontFileIDLen >= fontFileIDSize) { + fontFileIDSize += 64; + fontFileIDs = (Ref *)grealloc(fontFileIDs, fontFileIDSize * sizeof(Ref)); + } + fontFileIDs[fontFileIDLen++] = *id; + + // beginning comment + writePS("%%%%BeginResource: font %s\n", psName); + embFontList->append("%%+ font "); + embFontList->append(psName); + embFontList->append("\n"); + + // convert it to a Type 0 font + fontBuf = font->readEmbFontFile(xref, &fontLen); + t1cFile = new Type1CFontFile(fontBuf, fontLen); + if (globalParams->getPSLevel() >= psLevel3) { + // Level 3: use a CID font + t1cFile->convertToCIDType0(psName, f); + } else { + // otherwise: use a non-CID composite font + t1cFile->convertToType0(psName, f); + } + delete t1cFile; + gfree(fontBuf); + + // ending comment + writePS("%%%%EndResource\n"); +} + +void PSOutputDev::setupEmbeddedCIDTrueTypeFont(GfxFont *font, Ref *id, + char *psName) { + char *fontBuf; + int fontLen; + TrueTypeFontFile *ttFile; + int i; + + // check if font is already embedded + for (i = 0; i < fontFileIDLen; ++i) { + if (fontFileIDs[i].num == id->num && + fontFileIDs[i].gen == id->gen) + return; + } + + // add entry to fontFileIDs list + if (fontFileIDLen >= fontFileIDSize) { + fontFileIDSize += 64; + fontFileIDs = (Ref *)grealloc(fontFileIDs, fontFileIDSize * sizeof(Ref)); + } + fontFileIDs[fontFileIDLen++] = *id; + + // beginning comment + writePS("%%%%BeginResource: font %s\n", psName); + embFontList->append("%%+ font "); + embFontList->append(psName); + embFontList->append("\n"); + + // convert it to a Type 0 font + fontBuf = font->readEmbFontFile(xref, &fontLen); + ttFile = new TrueTypeFontFile(fontBuf, fontLen); + if (globalParams->getPSLevel() >= psLevel3) { + ttFile->convertToCIDType2(psName, + ((GfxCIDFont *)font)->getCIDToGID(), + ((GfxCIDFont *)font)->getCIDToGIDLen(), f); + } else { + // otherwise: use a non-CID composite font + ttFile->convertToType0(psName, ((GfxCIDFont *)font)->getCIDToGID(), + ((GfxCIDFont *)font)->getCIDToGIDLen(), f); + } + delete ttFile; + gfree(fontBuf); + + // ending comment + writePS("%%%%EndResource\n"); +} + +void PSOutputDev::setupType3Font(GfxFont *font, char *psName, + Dict *parentResDict) { + Dict *resDict; + Dict *charProcs; + Object charProc; + Gfx *gfx; + PDFRectangle box; + double *m; + int i; + + // set up resources used by font + if ((resDict = ((Gfx8BitFont *)font)->getResources())) { + setupResources(resDict); + } else { + resDict = parentResDict; + } + + // beginning comment + writePS("%%%%BeginResource: font %s\n", psName); + embFontList->append("%%+ font "); + embFontList->append(psName); + embFontList->append("\n"); + + // font dictionary + writePS("7 dict begin\n"); + writePS("/FontType 3 def\n"); + m = font->getFontMatrix(); + writePS("/FontMatrix [%g %g %g %g %g %g] def\n", + m[0], m[1], m[2], m[3], m[4], m[5]); + m = font->getFontBBox(); + writePS("/FontBBox [%g %g %g %g] def\n", + m[0], m[1], m[2], m[3]); + writePS("/Encoding 256 array def\n"); + writePS(" 0 1 255 { Encoding exch /.notdef put } for\n"); + writePS("/BuildGlyph {\n"); + writePS(" exch /CharProcs get exch\n"); + writePS(" 2 copy known not { pop /.notdef } if\n"); + writePS(" get exec\n"); + writePS("} bind def\n"); + writePS("/BuildChar {\n"); + writePS(" 1 index /Encoding get exch get\n"); + writePS(" 1 index /BuildGlyph get exec\n"); + writePS("} bind def\n"); + if ((charProcs = ((Gfx8BitFont *)font)->getCharProcs())) { + writePS("/CharProcs %d dict def\n", charProcs->getLength()); + writePS("CharProcs begin\n"); + box.x1 = m[0]; + box.y1 = m[1]; + box.x2 = m[2]; + box.y2 = m[3]; + gfx = new Gfx(xref, this, resDict, &box, gFalse, NULL); + inType3Char = gTrue; + for (i = 0; i < charProcs->getLength(); ++i) { + writePS("/%s {\n", charProcs->getKey(i)); + gfx->display(charProcs->getVal(i, &charProc)); + charProc.free(); + if (t3String) { + if (t3Cacheable) { + fprintf(f, "%g %g %g %g %g %g setcachedevice\n", + t3WX, t3WY, t3LLX, t3LLY, t3URX, t3URY); + } else { + fprintf(f, "%g %g setcharwidth\n", t3WX, t3WY); + } + fputs(t3String->getCString(), f); + delete t3String; + t3String = NULL; + } + fputs("Q\n", f); + writePS("} def\n"); + } + inType3Char = gFalse; + delete gfx; + writePS("end\n"); + } + writePS("currentdict end\n"); + writePS("/%s exch definefont pop\n", psName); + + // ending comment + writePS("%%%%EndResource\n"); } void PSOutputDev::setupImages(Dict *resDict) { Object xObjDict, xObj, xObjRef, subtypeObj; int i; - if (!doForm) { + if (mode != psModeForm) { return; } @@ -916,7 +1548,11 @@ void PSOutputDev::setupImage(Ref id, Stream *str) { int size, line, col, i; // construct an encoder stream - str = new ASCII85Encoder(str); + if (globalParams->getPSASCIIHex()) { + str = new ASCIIHexEncoder(str); + } else { + str = new ASCII85Encoder(str); + } // compute image data size str->reset(); @@ -962,10 +1598,10 @@ void PSOutputDev::setupImage(Ref id, Stream *str) { break; } if (c == 'z') { - fputc(c, f); + writePSChar(c); ++col; } else { - fputc(c, f); + writePSChar(c); ++col; for (i = 1; i <= 4; ++i) { do { @@ -974,7 +1610,7 @@ void PSOutputDev::setupImage(Ref id, Stream *str) { if (c == '~' || c == EOF) { break; } - fputc(c, f); + writePSChar(c); ++col; } } @@ -998,24 +1634,9 @@ void PSOutputDev::setupImage(Ref id, Stream *str) { void PSOutputDev::startPage(int pageNum, GfxState *state) { int x1, y1, x2, y2, width, height, t; - if (doForm) { - - writePS("/PaintProc {\n"); - writePS("begin xpdf begin\n"); - writePS("pdfStartPage\n"); - tx = ty = 0; - xScale = yScale = 1; - landscape = gFalse; - - } else if (psOutEPS) { - - writePS("pdfStartPage\n"); - tx = ty = 0; - xScale = yScale = 1; - landscape = gFalse; - - } else { + switch (mode) { + case psModePS: writePS("%%%%Page: %d %d\n", pageNum, seqPage); writePS("%%%%BeginPageSetup\n"); @@ -1028,7 +1649,8 @@ void PSOutputDev::startPage(int pageNum, GfxState *state) { height = y2 - y1; if (width > height && width > paperWidth) { landscape = gTrue; - writePS("%%%%PageOrientation: Landscape\n"); + writePS("%%%%PageOrientation: %s\n", + state->getCTM()[0] ? "Landscape" : "Portrait"); writePS("pdfStartPage\n"); writePS("90 rotate\n"); tx = -x1; @@ -1038,7 +1660,8 @@ void PSOutputDev::startPage(int pageNum, GfxState *state) { height = t; } else { landscape = gFalse; - writePS("%%%%PageOrientation: Portrait\n"); + writePS("%%%%PageOrientation: %s\n", + state->getCTM()[0] ? "Portrait" : "Landscape"); writePS("pdfStartPage\n"); tx = -x1; ty = -y1; @@ -1057,6 +1680,8 @@ void PSOutputDev::startPage(int pageNum, GfxState *state) { yScale = (double)paperHeight / (double)height; if (yScale < xScale) { xScale = yScale; + } else { + yScale = xScale; } writePS("%0.4f %0.4f scale\n", xScale, xScale); } else { @@ -1065,11 +1690,28 @@ void PSOutputDev::startPage(int pageNum, GfxState *state) { writePS("%%%%EndPageSetup\n"); ++seqPage; + break; + + case psModeEPS: + writePS("pdfStartPage\n"); + tx = ty = 0; + xScale = yScale = 1; + landscape = gFalse; + break; + + case psModeForm: + writePS("/PaintProc {\n"); + writePS("begin xpdf begin\n"); + writePS("pdfStartPage\n"); + tx = ty = 0; + xScale = yScale = 1; + landscape = gFalse; + break; } } void PSOutputDev::endPage() { - if (doForm) { + if (mode == psModeForm) { writePS("pdfEndPage\n"); writePS("end end\n"); writePS("} def\n"); @@ -1127,43 +1769,144 @@ void PSOutputDev::updateLineWidth(GfxState *state) { } void PSOutputDev::updateFillColor(GfxState *state) { + GfxColor color; + double gray; GfxRGB rgb; GfxCMYK cmyk; + GfxSeparationColorSpace *sepCS; - if (psOutLevel1Sep) { + switch (level) { + case psLevel1: + state->getFillGray(&gray); + writePS("%g g\n", gray); + break; + case psLevel1Sep: state->getFillCMYK(&cmyk); writePS("%g %g %g %g k\n", cmyk.c, cmyk.m, cmyk.y, cmyk.k); - } else { - state->getFillRGB(&rgb); - if (rgb.r == rgb.g && rgb.g == rgb.b) { - writePS("%g g\n", rgb.r); + break; + case psLevel2: + case psLevel3: + if (state->getFillColorSpace()->getMode() == csDeviceCMYK) { + state->getFillCMYK(&cmyk); + writePS("%g %g %g %g k\n", cmyk.c, cmyk.m, cmyk.y, cmyk.k); + } else { + state->getFillRGB(&rgb); + if (rgb.r == rgb.g && rgb.g == rgb.b) { + writePS("%g g\n", rgb.r); + } else { + writePS("%g %g %g rg\n", rgb.r, rgb.g, rgb.b); + } + } + break; + case psLevel2Sep: + case psLevel3Sep: + if (state->getFillColorSpace()->getMode() == csSeparation) { + sepCS = (GfxSeparationColorSpace *)state->getFillColorSpace(); + color.c[0] = 1; + sepCS->getCMYK(&color, &cmyk); + writePS("%g %g %g %g %g (%s) ck\n", + state->getFillColor()->c[0], + cmyk.c, cmyk.m, cmyk.y, cmyk.k, + sepCS->getName()->getCString()); + addCustomColor(sepCS); } else { - writePS("%g %g %g rg\n", rgb.r, rgb.g, rgb.b); + state->getFillCMYK(&cmyk); + writePS("%g %g %g %g k\n", cmyk.c, cmyk.m, cmyk.y, cmyk.k); + addProcessColor(cmyk.c, cmyk.m, cmyk.y, cmyk.k); } + break; } + t3Cacheable = gFalse; } void PSOutputDev::updateStrokeColor(GfxState *state) { + GfxColor color; + double gray; GfxRGB rgb; GfxCMYK cmyk; + GfxSeparationColorSpace *sepCS; - if (psOutLevel1Sep) { + switch (level) { + case psLevel1: + state->getStrokeGray(&gray); + writePS("%g G\n", gray); + break; + case psLevel1Sep: state->getStrokeCMYK(&cmyk); writePS("%g %g %g %g K\n", cmyk.c, cmyk.m, cmyk.y, cmyk.k); - } else { - state->getStrokeRGB(&rgb); - if (rgb.r == rgb.g && rgb.g == rgb.b) { - writePS("%g G\n", rgb.r); + break; + case psLevel2: + case psLevel3: + if (state->getStrokeColorSpace()->getMode() == csDeviceCMYK) { + state->getStrokeCMYK(&cmyk); + writePS("%g %g %g %g K\n", cmyk.c, cmyk.m, cmyk.y, cmyk.k); } else { - writePS("%g %g %g RG\n", rgb.r, rgb.g, rgb.b); + state->getStrokeRGB(&rgb); + if (rgb.r == rgb.g && rgb.g == rgb.b) { + writePS("%g G\n", rgb.r); + } else { + writePS("%g %g %g RG\n", rgb.r, rgb.g, rgb.b); + } + } + break; + case psLevel2Sep: + case psLevel3Sep: + if (state->getStrokeColorSpace()->getMode() == csSeparation) { + sepCS = (GfxSeparationColorSpace *)state->getStrokeColorSpace(); + color.c[0] = 1; + sepCS->getCMYK(&color, &cmyk); + writePS("%g %g %g %g %g (%s) CK\n", + state->getStrokeColor()->c[0], + cmyk.c, cmyk.m, cmyk.y, cmyk.k, + sepCS->getName()->getCString()); + addCustomColor(sepCS); + } else { + state->getStrokeCMYK(&cmyk); + writePS("%g %g %g %g K\n", cmyk.c, cmyk.m, cmyk.y, cmyk.k); + addProcessColor(cmyk.c, cmyk.m, cmyk.y, cmyk.k); + } + break; + } + t3Cacheable = gFalse; +} + +void PSOutputDev::addProcessColor(double c, double m, double y, double k) { + if (c > 0) { + processColors |= psProcessCyan; + } + if (m > 0) { + processColors |= psProcessMagenta; + } + if (y > 0) { + processColors |= psProcessYellow; + } + if (k > 0) { + processColors |= psProcessBlack; + } +} + +void PSOutputDev::addCustomColor(GfxSeparationColorSpace *sepCS) { + PSOutCustomColor *cc; + GfxColor color; + GfxCMYK cmyk; + + for (cc = customColors; cc; cc = cc->next) { + if (!cc->name->cmp(sepCS->getName())) { + return; } } + color.c[0] = 1; + sepCS->getCMYK(&color, &cmyk); + cc = new PSOutCustomColor(cmyk.c, cmyk.m, cmyk.y, cmyk.k, + sepCS->getName()->copy()); + cc->next = customColors; + customColors = cc; } void PSOutputDev::updateFont(GfxState *state) { if (state->getFont()) { writePS("/F%d_%d %g Tf\n", - state->getFont()->getID().num, state->getFont()->getID().gen, + state->getFont()->getID()->num, state->getFont()->getID()->gen, state->getFontSize()); } } @@ -1181,7 +1924,14 @@ void PSOutputDev::updateCharSpace(GfxState *state) { } void PSOutputDev::updateRender(GfxState *state) { - writePS("%d Tr\n", state->getRender()); + int rm; + + rm = state->getRender(); + writePS("%d Tr\n", rm); + rm &= 3; + if (rm != 0 && rm != 3) { + t3Cacheable = gFalse; + } } void PSOutputDev::updateRise(GfxState *state) { @@ -1201,12 +1951,22 @@ void PSOutputDev::updateTextPos(GfxState *state) { } void PSOutputDev::updateTextShift(GfxState *state, double shift) { - writePS("%g TJm\n", shift); + if (state->getFont()->getWMode()) { + writePS("%g TJmV\n", shift); + } else { + writePS("%g TJm\n", shift); + } } void PSOutputDev::stroke(GfxState *state) { doPath(state->getPath()); - writePS("S\n"); + if (t3String) { + // if we're construct a cacheable Type 3 glyph, we need to do + // everything in the fill color + writePS("Sf\n"); + } else { + writePS("S\n"); + } } void PSOutputDev::fill(GfxState *state) { @@ -1286,52 +2046,104 @@ void PSOutputDev::doPath(GfxPath *path) { } void PSOutputDev::drawString(GfxState *state, GString *s) { + GfxFont *font; + int wMode; + GString *s2; + double dx, dy, dx2, dy2, originX, originY; + char *p; + UnicodeMap *uMap; + CharCode code; + Unicode u[8]; + char buf[8]; + int len, nChars, uLen, n, m, i, j; + // check for invisible text -- this is used by Acrobat Capture - if ((state->getRender() & 3) == 3) + if ((state->getRender() & 3) == 3) { return; + } - writePSString(s); - writePS(" %g Tj\n", state->getFont()->getWidth(s)); -} - -void PSOutputDev::drawString16(GfxState *state, GString *s) { - int c1, c2; - double w; - int i; + // ignore empty strings + if (s->getLength() == 0) { + return; + } - // check for invisible text -- this is used by Acrobat Capture - if ((state->getRender() & 3) == 3) + // get the font + if (!(font = state->getFont())) { return; + } + wMode = font->getWMode(); - switch (state->getFont()->getCharSet16()) { + // check for a subtitute 16-bit font + uMap = NULL; + if (font->isCIDFont()) { + for (i = 0; i < font16EncLen; ++i) { + if (font->getID()->num == font16Enc[i].fontID.num && + font->getID()->gen == font16Enc[i].fontID.gen) { + uMap = globalParams->getUnicodeMap(font16Enc[i].enc); + break; + } + } + } - case font16AdobeJapan12: -#if JAPANESE_SUPPORT - writePS("<"); - w = 0; - for (i = 0; i < s->getLength(); i += 2) { - c1 = ((s->getChar(i) & 0xff) << 8) + (s->getChar(i+1) & 0xff); - if (c1 <= 8285) { - c2 = japan12ToRKSJ[c1]; + // compute width of chars in string, ignoring char spacing and word + // spacing -- the Tj operator will adjust for the metrics of the + // font that's actually used + dx = dy = 0; + nChars = 0; + p = s->getCString(); + len = s->getLength(); + if (font->isCIDFont()) { + s2 = new GString(); + } else { + s2 = s; + } + while (len > 0) { + n = font->getNextChar(p, len, &code, + u, (int)(sizeof(u) / sizeof(Unicode)), &uLen, + &dx2, &dy2, &originX, &originY); + if (font->isCIDFont()) { + if (uMap) { + for (i = 0; i < uLen; ++i) { + m = uMap->mapUnicode(u[i], buf, (int)sizeof(buf)); + for (j = 0; j < m; ++j) { + s2->append(buf[j]); + } + } + //~ this really needs to get the number of chars in the target + //~ encoding - which may be more than the number of Unicode + //~ chars + nChars += uLen; } else { - c2 = 0x20; + s2->append((char)((code >> 8) & 0xff)); + s2->append((char)(code & 0xff)); + ++nChars; } - if (c2 <= 0xff) { - writePS("%02x", c2); + } + dx += dx2; + dy += dy2; + p += n; + len -= n; + } + dx *= state->getFontSize() * state->getHorizScaling(); + dy *= state->getFontSize(); + if (uMap) { + uMap->decRefCnt(); + } + + if (s2->getLength() > 0) { + writePSString(s2); + if (font->isCIDFont()) { + if (wMode) { + writePS(" %d %g Tj16V\n", nChars, dy); } else { - writePS("%02x%02x", c2 >> 8, c2 & 0xff); + writePS(" %d %g Tj16\n", nChars, dx); } - w += state->getFont()->getWidth16(c1); + } else { + writePS(" %g Tj\n", dx); } - writePS("> %g Tj\n", w); -#endif - break; - - case font16AdobeGB12: - break; - - case font16AdobeCNS13: - break; + } + if (font->isCIDFont()) { + delete s2; } } @@ -1341,7 +2153,7 @@ void PSOutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str, int len; len = height * ((width + 7) / 8); - if (psOutLevel1 || psOutLevel1Sep) { + if (level == psLevel1 || level == psLevel1Sep) { doImageL1(NULL, invert, inlineImg, str, width, height, len); } else { doImageL2(ref, NULL, invert, inlineImg, str, width, height, len); @@ -1350,19 +2162,27 @@ void PSOutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str, void PSOutputDev::drawImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, - GBool inlineImg) { + int *maskColors, GBool inlineImg) { int len; len = height * ((width * colorMap->getNumPixelComps() * colorMap->getBits() + 7) / 8); - if (psOutLevel1) { + switch (level) { + case psLevel1: doImageL1(colorMap, gFalse, inlineImg, str, width, height, len); - } else if (psOutLevel1Sep) { + break; + case psLevel1Sep: //~ handle indexed, separation, ... color spaces doImageL1Sep(colorMap, gFalse, inlineImg, str, width, height, len); - } else { + break; + case psLevel2: + case psLevel2Sep: + case psLevel3: + case psLevel3Sep: doImageL2(ref, colorMap, gFalse, inlineImg, str, width, height, len); + break; } + t3Cacheable = gFalse; } void PSOutputDev::doImageL1(GfxImageColorMap *colorMap, @@ -1400,15 +2220,16 @@ void PSOutputDev::doImageL1(GfxImageColorMap *colorMap, for (x = 0; x < width; ++x) { imgStr->getPixel(pixBuf); colorMap->getGray(pixBuf, &gray); - fprintf(f, "%02x", (int)(gray * 255 + 0.5)); + writePS("%02x", (int)(gray * 255 + 0.5)); if (++i == 32) { - fputc('\n', f); + writePSChar('\n'); i = 0; } } } - if (i != 0) - fputc('\n', f); + if (i != 0) { + writePSChar('\n'); + } delete imgStr; // imagemask @@ -1417,15 +2238,17 @@ void PSOutputDev::doImageL1(GfxImageColorMap *colorMap, i = 0; for (y = 0; y < height; ++y) { for (x = 0; x < width; x += 8) { - fprintf(f, "%02x", str->getChar() & 0xff); + writePS("%02x", str->getChar() & 0xff); if (++i == 32) { - fputc('\n', f); + writePSChar('\n'); i = 0; } } } - if (i != 0) - fputc('\n', f); + if (i != 0) { + writePSChar('\n'); + } + str->close(); } } @@ -1468,9 +2291,9 @@ void PSOutputDev::doImageL1Sep(GfxImageColorMap *colorMap, // write one line of each color component for (comp = 0; comp < 4; ++comp) { for (x = 0; x < width; ++x) { - fprintf(f, "%02x", lineBuf[4*x + comp]); + writePS("%02x", lineBuf[4*x + comp]); if (++i == 32) { - fputc('\n', f); + writePSChar('\n'); i = 0; } } @@ -1478,7 +2301,7 @@ void PSOutputDev::doImageL1Sep(GfxImageColorMap *colorMap, } if (i != 0) { - fputc('\n', f); + writePSChar('\n'); } delete imgStr; @@ -1490,7 +2313,10 @@ void PSOutputDev::doImageL2(Object *ref, GfxImageColorMap *colorMap, Stream *str, int width, int height, int len) { GString *s; int n, numComps; - GBool useRLE, useA85; + GBool useRLE, useASCII, useCompressed; + GfxSeparationColorSpace *sepCS; + GfxColor color; + GfxCMYK cmyk; int c; int i; @@ -1501,7 +2327,7 @@ void PSOutputDev::doImageL2(Object *ref, GfxImageColorMap *colorMap, } // set up to use the array created by setupImages() - if (doForm && !inlineImg) { + if ((mode == psModeForm || inType3Char) && !inlineImg) { writePS("ImData_%d_%d 0\n", ref->getRefNum(), ref->getRefGen()); } @@ -1538,7 +2364,7 @@ void PSOutputDev::doImageL2(Object *ref, GfxImageColorMap *colorMap, writePS(" /Decode [%d %d]\n", invert ? 1 : 0, invert ? 0 : 1); } - if (doForm) { + if (mode == psModeForm || inType3Char) { if (inlineImg) { @@ -1547,12 +2373,16 @@ void PSOutputDev::doImageL2(Object *ref, GfxImageColorMap *colorMap, // write image data stream, using ASCII85 encode filter str = new FixedLengthEncoder(str, len); - str = new ASCII85Encoder(str); + if (globalParams->getPSASCIIHex()) { + str = new ASCIIHexEncoder(str); + } else { + str = new ASCII85Encoder(str); + } str->reset(); while ((c = str->getChar()) != EOF) { - fputc(c, f); + writePSChar(c); } - fputc('\n', f); + writePSChar('\n'); delete str; } else { @@ -1574,31 +2404,45 @@ void PSOutputDev::doImageL2(Object *ref, GfxImageColorMap *colorMap, s = str->getPSFilter(" "); if (inlineImg || !s) { useRLE = gTrue; - useA85 = gTrue; + useASCII = gTrue; + useCompressed = gFalse; } else { useRLE = gFalse; - useA85 = str->isBinary(); + useASCII = str->isBinary(); + useCompressed = gTrue; + } + if (useASCII) { + writePS(" /ASCII%sDecode filter\n", + globalParams->getPSASCIIHex() ? "Hex" : "85"); } - if (useA85) - writePS(" /ASCII85Decode filter\n"); - if (useRLE) + if (useRLE) { writePS(" /RunLengthDecode filter\n"); - else + } + if (useCompressed) { writePS("%s", s->getCString()); - if (s) + } + if (s) { delete s; + } // cut off inline image streams at appropriate length - if (inlineImg) + if (inlineImg) { str = new FixedLengthEncoder(str, len); - else if (!useRLE) + } else if (useCompressed) { str = str->getBaseStream(); + } - // add RunLengthEncode and ASCII85 encode filters - if (useRLE) + // add RunLengthEncode and ASCIIHex/85 encode filters + if (useRLE) { str = new RunLengthEncoder(str); - if (useA85) - str = new ASCII85Encoder(str); + } + if (useASCII) { + if (globalParams->getPSASCIIHex()) { + str = new ASCIIHexEncoder(str); + } else { + str = new ASCII85Encoder(str); + } + } // end of image dictionary writePS(">>\n"); @@ -1610,12 +2454,13 @@ void PSOutputDev::doImageL2(Object *ref, GfxImageColorMap *colorMap, n = 0; } else { // need to read the stream to count characters -- the length - // is data-dependent (because of A85 and RLE filters) + // is data-dependent (because of ASCII and RLE filters) str->reset(); n = 0; while ((c = str->getChar()) != EOF) { ++n; } + str->close(); } // +6/7 for "pdfIm\n" / "pdfImM\n" // +8 for newline + trailer @@ -1623,16 +2468,27 @@ void PSOutputDev::doImageL2(Object *ref, GfxImageColorMap *colorMap, writePS("%%%%BeginData: %d Hex Bytes\n", n); } #endif - writePS("%s\n", colorMap ? "pdfIm" : "pdfImM"); + if ((level == psLevel2Sep || level == psLevel3Sep) && colorMap && + colorMap->getColorSpace()->getMode() == csSeparation) { + color.c[0] = 1; + sepCS = (GfxSeparationColorSpace *)colorMap->getColorSpace(); + sepCS->getCMYK(&color, &cmyk); + writePS("%g %g %g %g (%s) pdfImSep\n", + cmyk.c, cmyk.m, cmyk.y, cmyk.k, sepCS->getName()->getCString()); + } else { + writePS("%s\n", colorMap ? "pdfIm" : "pdfImM"); + } // copy the stream data str->reset(); - while ((c = str->getChar()) != EOF) - fputc(c, f); + while ((c = str->getChar()) != EOF) { + writePSChar(c); + } + str->close(); // add newline and trailer to the end - fputc('\n', f); - fputs("%-EOD-\n", f); + writePSChar('\n'); + writePS("%%-EOD-\n"); #if OPI_SUPPORT if (opi13Nest) { writePS("%%%%EndData\n"); @@ -1640,8 +2496,9 @@ void PSOutputDev::doImageL2(Object *ref, GfxImageColorMap *colorMap, #endif // delete encoders - if (useRLE || useA85) + if (useRLE || useASCII || inlineImg) { delete str; + } } } @@ -1652,7 +2509,9 @@ void PSOutputDev::dumpColorSpaceL2(GfxColorSpace *colorSpace) { GfxIndexedColorSpace *indexedCS; GfxSeparationColorSpace *separationCS; Guchar *lookup; - double x[1], y[gfxColorMaxComps]; + double x[gfxColorMaxComps], y[gfxColorMaxComps]; + GfxColor color; + GfxCMYK cmyk; int n, numComps; int i, j, k; @@ -1660,6 +2519,7 @@ void PSOutputDev::dumpColorSpaceL2(GfxColorSpace *colorSpace) { case csDeviceGray: writePS("/DeviceGray"); + processColors |= psProcessBlack; break; case csCalGray: @@ -1676,10 +2536,12 @@ void PSOutputDev::dumpColorSpaceL2(GfxColorSpace *colorSpace) { calGrayCS->getBlackX(), calGrayCS->getBlackY(), calGrayCS->getBlackZ()); writePS(">>]"); + processColors |= psProcessBlack; break; case csDeviceRGB: writePS("/DeviceRGB"); + processColors |= psProcessCMYK; break; case csCalRGB: @@ -1701,10 +2563,12 @@ void PSOutputDev::dumpColorSpaceL2(GfxColorSpace *colorSpace) { calRGBCS->getBlackX(), calRGBCS->getBlackY(), calRGBCS->getBlackZ()); writePS(">>]"); + processColors |= psProcessCMYK; break; case csDeviceCMYK: writePS("/DeviceCMYK"); + processColors |= psProcessCMYK; break; case csLab: @@ -1730,6 +2594,7 @@ void PSOutputDev::dumpColorSpaceL2(GfxColorSpace *colorSpace) { writePS(" /BlackPoint [%g %g %g]\n", labCS->getBlackX(), labCS->getBlackY(), labCS->getBlackZ()); writePS(">>]"); + processColors |= psProcessCMYK; break; case csICCBased: @@ -1750,6 +2615,9 @@ void PSOutputDev::dumpColorSpaceL2(GfxColorSpace *colorSpace) { for (k = 0; k < numComps; ++k) { writePS("%02x", lookup[j * numComps + k]); } + color.c[0] = j; + indexedCS->getCMYK(&color, &cmyk); + addProcessColor(cmyk.c, cmyk.m, cmyk.y, cmyk.k); } writePS("\n"); } @@ -1761,7 +2629,7 @@ void PSOutputDev::dumpColorSpaceL2(GfxColorSpace *colorSpace) { //~ separation color space, with the specified alternate color //~ space and tint transform separationCS = (GfxSeparationColorSpace *)colorSpace; - writePS(" [/Indexed "); + writePS("[/Indexed "); dumpColorSpaceL2(separationCS->getAlt()); writePS(" 255 <\n"); numComps = separationCS->getAlt()->getNComps(); @@ -1777,6 +2645,7 @@ void PSOutputDev::dumpColorSpaceL2(GfxColorSpace *colorSpace) { writePS("\n"); } writePS(">]"); + addCustomColor(separationCS); break; case csDeviceN: @@ -1795,7 +2664,7 @@ void PSOutputDev::dumpColorSpaceL2(GfxColorSpace *colorSpace) { void PSOutputDev::opiBegin(GfxState *state, Dict *opiDict) { Object dict; - if (psOutOPI) { + if (globalParams->getPSOPI()) { opiDict->lookup("2.0", &dict); if (dict.isDict()) { opiBegin20(state, dict.getDict()); @@ -2157,7 +3026,7 @@ void PSOutputDev::opiTransform(GfxState *state, double x0, double y0, void PSOutputDev::opiEnd(GfxState *state, Dict *opiDict) { Object dict; - if (psOutOPI) { + if (globalParams->getPSOPI()) { opiDict->lookup("2.0", &dict); if (dict.isDict()) { writePS("%%%%EndIncludedImage\n"); @@ -2209,26 +3078,104 @@ GBool PSOutputDev::getFileSpec(Object *fileSpec, Object *fileName) { } #endif // OPI_SUPPORT +void PSOutputDev::type3D0(GfxState *state, double wx, double wy) { + writePS("%g %g setcharwidth\n", wx, wy); + writePS("q\n"); +} + +void PSOutputDev::type3D1(GfxState *state, double wx, double wy, + double llx, double lly, double urx, double ury) { + t3WX = wx; + t3WY = wy; + t3LLX = llx; + t3LLY = lly; + t3URX = urx; + t3URY = ury; + t3String = new GString(); + writePS("q\n"); + t3Cacheable = gTrue; +} + +void PSOutputDev::psXObject(Stream *psStream, Stream *level1Stream) { + Stream *str; + int c; + + if ((level == psLevel1 || level == psLevel1Sep) && level1Stream) { + str = level1Stream; + } else { + str = psStream; + } + str->reset(); + while ((c = str->getChar()) != EOF) { + writePSChar(c); + } + str->close(); +} + void PSOutputDev::writePS(const char *fmt, ...) { va_list args; + char buf[512]; va_start(args, fmt); - vfprintf(f, fmt, args); + if (t3String) { + vsprintf(buf, fmt, args); + t3String->append(buf); + } else { + vfprintf(f, fmt, args); + } va_end(args); } void PSOutputDev::writePSString(GString *s) { Guchar *p; int n; + char buf[8]; - fputc('(', f); + writePSChar('('); for (p = (Guchar *)s->getCString(), n = s->getLength(); n; ++p, --n) { - if (*p == '(' || *p == ')' || *p == '\\') - fprintf(f, "\\%c", *p); - else if (*p < 0x20 || *p >= 0x80) - fprintf(f, "\\%03o", *p); - else - fputc(*p, f); - } - fputc(')', f); + if (*p == '(' || *p == ')' || *p == '\\') { + writePSChar('\\'); + writePSChar((char)*p); + } else if (*p < 0x20 || *p >= 0x80) { + if (t3String) { + sprintf(buf, "\\%03o", *p); + t3String->append(buf); + } else { + fprintf(f, "\\%03o", *p); + } + } else { + writePSChar((char)*p); + } + } + writePSChar(')'); +} + +void PSOutputDev::writePSChar(char c) { + if (t3String) { + t3String->append(c); + } else { + fputc(c, f); + } +} + +GString *PSOutputDev::filterPSName(GString *name) { + GString *name2; + char buf[8]; + int i; + char c; + + name2 = new GString(); + for (i = 0; i < name->getLength(); ++i) { + c = name->getChar(i); + if (c <= (char)0x20 || c >= (char)0x7f || + c == '(' || c == ')' || c == '<' || c == '>' || + c == '[' || c == ']' || c == '{' || c == '}' || + c == '/' || c == '%') { + sprintf(buf, "#%02x", c & 0xff); + name2->append(buf); + } else { + name2->append(c); + } + } + return name2; } diff --git a/pdf/xpdf/PSOutputDev.h b/pdf/xpdf/PSOutputDev.h index d23d19ee..ba208dea 100644 --- a/pdf/xpdf/PSOutputDev.h +++ b/pdf/xpdf/PSOutputDev.h @@ -2,7 +2,7 @@ // // PSOutputDev.h // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -16,38 +16,26 @@ #include #include "config.h" #include "Object.h" +#include "GlobalParams.h" #include "OutputDev.h" class GfxPath; class GfxFont; class GfxColorSpace; - -//------------------------------------------------------------------------ -// Parameters -//------------------------------------------------------------------------ - -// Generate Level 1 PostScript? -extern GBool psOutLevel1; - -// Generate Level 1 separable PostScript? -extern GBool psOutLevel1Sep; - -// Generate Encapsulated PostScript? -extern GBool psOutEPS; - -#if OPI_SUPPORT -// Generate OPI comments? -extern GBool psOutOPI; -#endif - -// Paper size. -extern int paperWidth; -extern int paperHeight; +class GfxSeparationColorSpace; +struct PSFont16Enc; +class PSOutCustomColor; //------------------------------------------------------------------------ // PSOutputDev //------------------------------------------------------------------------ +enum PSOutMode { + psModePS, + psModeEPS, + psModeForm +}; + enum PSFileType { psFile, // write to file psPipe, // write to pipe @@ -58,9 +46,8 @@ class PSOutputDev: public OutputDev { public: // Open a PostScript output file, and write the prolog. - PSOutputDev(char *fileName, Catalog *catalog, - int firstPage, int lastPage, - GBool embedType11, GBool doForm1); + PSOutputDev(char *fileName, XRef *xrefA, Catalog *catalog, + int firstPage, int lastPage, PSOutMode modeA); // Destructor -- writes the trailer and closes the file. virtual ~PSOutputDev(); @@ -77,6 +64,10 @@ public: // Does this device use drawChar() or drawString()? virtual GBool useDrawChar() { return gFalse; } + // Does this device use beginType3Char/endType3Char? Otherwise, + // text in Type 3 fonts will be drawn with drawChar/drawString. + virtual GBool interpretType3Chars() { return gFalse; } + //----- initialization and control // Start a page. @@ -123,7 +114,6 @@ public: //----- text drawing virtual void drawString(GfxState *state, GString *s); - virtual void drawString16(GfxState *state, GString *s); //----- image drawing virtual void drawImageMask(GfxState *state, Object *ref, Stream *str, @@ -131,7 +121,7 @@ public: GBool inlineImg); virtual void drawImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, - GBool inlineImg); + int *maskColors, GBool inlineImg); #if OPI_SUPPORT //----- OPI functions @@ -139,16 +129,31 @@ public: virtual void opiEnd(GfxState *state, Dict *opiDict); #endif + //----- Type 3 font operators + virtual void type3D0(GfxState *state, double wx, double wy); + virtual void type3D1(GfxState *state, double wx, double wy, + double llx, double lly, double urx, double ury); + + //----- PostScript XObjects + virtual void psXObject(Stream *psStream, Stream *level1Stream); + private: void setupResources(Dict *resDict); void setupFonts(Dict *resDict); - void setupFont(GfxFont *font); + void setupFont(GfxFont *font, Dict *parentResDict); void setupEmbeddedType1Font(Ref *id, char *psName); - void setupEmbeddedType1Font(GString *fileName, char *psName); + void setupExternalType1Font(GString *fileName, char *psName); void setupEmbeddedType1CFont(GfxFont *font, Ref *id, char *psName); + void setupEmbeddedTrueTypeFont(GfxFont *font, Ref *id, char *psName); + void setupExternalTrueTypeFont(GfxFont *font, char *psName); + void setupEmbeddedCIDType0Font(GfxFont *font, Ref *id, char *psName); + void setupEmbeddedCIDTrueTypeFont(GfxFont *font, Ref *id, char *psName); + void setupType3Font(GfxFont *font, char *psName, Dict *parentResDict); void setupImages(Dict *resDict); void setupImage(Ref id, Stream *str); + void addProcessColor(double c, double m, double y, double k); + void addCustomColor(GfxSeparationColorSpace *sepCS); void doPath(GfxPath *path); void doImageL1(GfxImageColorMap *colorMap, GBool invert, GBool inlineImg, @@ -160,21 +165,29 @@ private: GBool invert, GBool inlineImg, Stream *str, int width, int height, int len); void dumpColorSpaceL2(GfxColorSpace *colorSpace); +#if OPI_SUPPORT void opiBegin20(GfxState *state, Dict *dict); void opiBegin13(GfxState *state, Dict *dict); void opiTransform(GfxState *state, double x0, double y0, double *x1, double *y1); GBool getFileSpec(Object *fileSpec, Object *fileName); +#endif void writePS(const char *fmt, ...); void writePSString(GString *s); + void writePSChar(char c); + GString *filterPSName(GString *name); - GBool embedType1; // embed Type 1 fonts? - GBool doForm; // generate a form? + PSLevel level; // PostScript level (1, 2, separation) + PSOutMode mode; // PostScript mode (PS, EPS, form) + int paperWidth; // width of paper, in pts + int paperHeight; // height of paper, in pts FILE *f; // PostScript file PSFileType fileType; // file / pipe / stdout int seqPage; // current sequential page number + XRef *xref; // the xref table for this PDF file + Ref *fontIDs; // list of object IDs of all used fonts int fontIDLen; // number of entries in fontIDs array int fontIDSize; // size of fontIDs array @@ -184,6 +197,9 @@ private: GString **fontFileNames; // list of names of all embedded external fonts int fontFileNameLen; // number of entries in fontFileNames array int fontFileNameSize; // size of fontFileNames array + PSFont16Enc *font16Enc; // encodings for substitute 16-bit fonts + int font16EncLen; // number of entries in font16Enc array + int font16EncSize; // size of font16Enc array double tx, ty; // global translation double xScale, yScale; // global scaling @@ -191,13 +207,21 @@ private: GString *embFontList; // resource comments for embedded fonts + int processColors; // used process colors + PSOutCustomColor // used custom colors + *customColors; + + GBool inType3Char; // inside a Type 3 CharProc + GString *t3String; // Type 3 content string + double t3WX, t3WY, // Type 3 character parameters + t3LLX, t3LLY, t3URX, t3URY; + GBool t3Cacheable; // cleared if char is not cacheable + #if OPI_SUPPORT int opi13Nest; // nesting level of OPI 1.3 objects int opi20Nest; // nesting level of OPI 2.0 objects #endif - GBool type3Warning; // only show the Type 3 font warning once - GBool ok; // set up ok? }; diff --git a/pdf/xpdf/PSTokenizer.cc b/pdf/xpdf/PSTokenizer.cc new file mode 100644 index 00000000..8d654bd2 --- /dev/null +++ b/pdf/xpdf/PSTokenizer.cc @@ -0,0 +1,133 @@ +//======================================================================== +// +// PSTokenizer.cc +// +// Copyright 2002 Glyph & Cog, LLC +// +//======================================================================== + +#ifdef __GNUC__ +#pragma implementation +#endif + +#include +#include +#include "PSTokenizer.h" + +//------------------------------------------------------------------------ + +// A '1' in this array means the character is white space. A '1' or +// '2' means the character ends a name or command. +static char specialChars[256] = { + 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, // 0x + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1x + 1, 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 2, // 2x + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, // 3x + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 4x + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, // 5x + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 6x + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, // 7x + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 8x + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 9x + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // ax + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // bx + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // cx + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // dx + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // ex + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 // fx +}; + +//------------------------------------------------------------------------ + +PSTokenizer::PSTokenizer(int (*getCharFuncA)(void *), void *dataA) { + getCharFunc = getCharFuncA; + data = dataA; + charBuf = -1; +} + +PSTokenizer::~PSTokenizer() { +} + +GBool PSTokenizer::getToken(char *buf, int size, int *length) { + GBool comment, backslash; + int c; + int i; + + // skip whitespace and comments + comment = gFalse; + while (1) { + if ((c = getChar()) == EOF) { + buf[0] = '\0'; + *length = 0; + return gFalse; + } + if (comment) { + if (c == '\x0a' || c == '\x0d') { + comment = gFalse; + } + } else if (c == '%') { + comment = gTrue; + } else if (specialChars[c] != 1) { + break; + } + } + + // read a token + i = 0; + buf[i++] = c; + if (c == '(') { + backslash = gFalse; + while ((c = lookChar()) != EOF) { + if (i < size - 1) { + buf[i++] = c; + } + getChar(); + if (c == '\\') { + backslash = gTrue; + } else if (!backslash && c == ')') { + break; + } else { + backslash = gFalse; + } + } + } else if (c == '<') { + while ((c = lookChar()) != EOF) { + getChar(); + if (i < size - 1) { + buf[i++] = c; + } + if (c == '>') { + break; + } + } + } else if (c != '[' && c != ']') { + while ((c = lookChar()) != EOF && !specialChars[c]) { + getChar(); + if (i < size - 1) { + buf[i++] = c; + } + } + } + buf[i] = '\0'; + *length = i; + + return gTrue; +} + +int PSTokenizer::lookChar() { + if (charBuf < 0) { + charBuf = (*getCharFunc)(data); + } + return charBuf; +} + +int PSTokenizer::getChar() { + int c; + + if (charBuf < 0) { + charBuf = (*getCharFunc)(data); + } + c = charBuf; + charBuf = -1; + return c; +} diff --git a/pdf/xpdf/PSTokenizer.h b/pdf/xpdf/PSTokenizer.h new file mode 100644 index 00000000..1053c675 --- /dev/null +++ b/pdf/xpdf/PSTokenizer.h @@ -0,0 +1,39 @@ +//======================================================================== +// +// PSTokenizer.h +// +// Copyright 2002 Glyph & Cog, LLC +// +//======================================================================== + +#ifndef PSTOKENIZER_H +#define PSTOKENIZER_H + +#ifdef __GNUC__ +#pragma interface +#endif + +#include "gtypes.h" + +//------------------------------------------------------------------------ + +class PSTokenizer { +public: + + PSTokenizer(int (*getCharFuncA)(void *), void *dataA); + ~PSTokenizer(); + + // Get the next PostScript token. Returns false at end-of-stream. + GBool getToken(char *buf, int size, int *length); + +private: + + int lookChar(); + int getChar(); + + int (*getCharFunc)(void *); + void *data; + int charBuf; +}; + +#endif diff --git a/pdf/xpdf/Page.cc b/pdf/xpdf/Page.cc index c2ac6b19..c6018577 100644 --- a/pdf/xpdf/Page.cc +++ b/pdf/xpdf/Page.cc @@ -2,7 +2,7 @@ // // Page.cc // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -10,6 +10,7 @@ #pragma implementation #endif +#include #include #include "Object.h" #include "Array.h" @@ -19,11 +20,9 @@ #include "OutputDev.h" #ifndef PDF_PARSER_ONLY #include "Gfx.h" -#include "FormWidget.h" +#include "Annot.h" #endif #include "Error.h" - -#include "Params.h" #include "Page.h" //------------------------------------------------------------------------ @@ -31,97 +30,76 @@ //------------------------------------------------------------------------ PageAttrs::PageAttrs(PageAttrs *attrs, Dict *dict) { - Object obj1, obj2; + Object obj1; double w, h; // get old/default values if (attrs) { - x1 = attrs->x1; - y1 = attrs->y1; - x2 = attrs->x2; - y2 = attrs->y2; - cropX1 = attrs->cropX1; - cropY1 = attrs->cropY1; - cropX2 = attrs->cropX2; - cropY2 = attrs->cropY2; + mediaBox = attrs->mediaBox; + cropBox = attrs->cropBox; + haveCropBox = attrs->haveCropBox; rotate = attrs->rotate; attrs->resources.copy(&resources); } else { // set default MediaBox to 8.5" x 11" -- this shouldn't be necessary // but some (non-compliant) PDF files don't specify a MediaBox - x1 = 0; - y1 = 0; - x2 = 612; - y2 = 792; - cropX1 = cropY1 = cropX2 = cropY2 = 0; + mediaBox.x1 = 0; + mediaBox.y1 = 0; + mediaBox.x2 = 612; + mediaBox.y2 = 792; + cropBox.x1 = cropBox.y1 = cropBox.x2 = cropBox.y2 = 0; + haveCropBox = gFalse; rotate = 0; resources.initNull(); } // media box - dict->lookup("MediaBox", &obj1); - if (obj1.isArray() && obj1.arrayGetLength() == 4) { - obj1.arrayGet(0, &obj2); - if (obj2.isNum()) - x1 = obj2.getNum(); - obj2.free(); - obj1.arrayGet(1, &obj2); - if (obj2.isNum()) - y1 = obj2.getNum(); - obj2.free(); - obj1.arrayGet(2, &obj2); - if (obj2.isNum()) - x2 = obj2.getNum(); - obj2.free(); - obj1.arrayGet(3, &obj2); - if (obj2.isNum()) - y2 = obj2.getNum(); - obj2.free(); - } - obj1.free(); + readBox(dict, "MediaBox", &mediaBox); // crop box - dict->lookup("CropBox", &obj1); - if (obj1.isArray() && obj1.arrayGetLength() == 4) { - obj1.arrayGet(0, &obj2); - if (obj2.isNum()) - cropX1 = obj2.getNum(); - obj2.free(); - obj1.arrayGet(1, &obj2); - if (obj2.isNum()) - cropY1 = obj2.getNum(); - obj2.free(); - obj1.arrayGet(2, &obj2); - if (obj2.isNum()) - cropX2 = obj2.getNum(); - obj2.free(); - obj1.arrayGet(3, &obj2); - if (obj2.isNum()) - cropY2 = obj2.getNum(); - obj2.free(); - } - obj1.free(); + cropBox = mediaBox; + haveCropBox = readBox(dict, "CropBox", &cropBox); // if the MediaBox is excessively larger than the CropBox, // just use the CropBox limitToCropBox = gFalse; - w = 0.25 * (cropX2 - cropX1); - h = 0.25 * (cropY2 - cropY1); - if (cropX2 > cropX1 && - ((cropX1 - x1) + (x2 - cropX2) > w || - (cropY1 - y1) + (y2 - cropY2) > h)) { - limitToCropBox = gTrue; + if (haveCropBox) { + w = 0.25 * (cropBox.x2 - cropBox.x1); + h = 0.25 * (cropBox.y2 - cropBox.y1); + if ((cropBox.x1 - mediaBox.x1) + (mediaBox.x2 - cropBox.x2) > w || + (cropBox.y1 - mediaBox.y1) + (mediaBox.y2 - cropBox.y2) > h) { + limitToCropBox = gTrue; + } } + // other boxes + bleedBox = cropBox; + readBox(dict, "BleedBox", &bleedBox); + trimBox = cropBox; + readBox(dict, "TrimBox", &trimBox); + artBox = cropBox; + readBox(dict, "ArtBox", &artBox); + // rotate dict->lookup("Rotate", &obj1); - if (obj1.isInt()) + if (obj1.isInt()) { rotate = obj1.getInt(); + } obj1.free(); - while (rotate < 0) + while (rotate < 0) { rotate += 360; - while (rotate >= 360) + } + while (rotate >= 360) { rotate -= 360; + } + + // misc attributes + dict->lookup("LastModified", &lastModified); + dict->lookup("BoxColorInfo", &boxColorInfo); + dict->lookup("Group", &group); + dict->lookup("Metadata", &metadata); + dict->lookup("PieceInfo", &pieceInfo); + dict->lookup("SeparationInfo", &separationInfo); // resource dictionary dict->lookup("Resources", &obj1); @@ -133,20 +111,75 @@ PageAttrs::PageAttrs(PageAttrs *attrs, Dict *dict) { } PageAttrs::~PageAttrs() { + lastModified.free(); + boxColorInfo.free(); + group.free(); + metadata.free(); + pieceInfo.free(); + separationInfo.free(); resources.free(); } +GBool PageAttrs::readBox(Dict *dict, char *key, PDFRectangle *box) { + PDFRectangle tmp; + Object obj1, obj2; + GBool ok; + + dict->lookup(key, &obj1); + if (obj1.isArray() && obj1.arrayGetLength() == 4) { + ok = gTrue; + obj1.arrayGet(0, &obj2); + if (obj2.isNum()) { + tmp.x1 = obj2.getNum(); + } else { + ok = gFalse; + } + obj2.free(); + obj1.arrayGet(1, &obj2); + if (obj2.isNum()) { + tmp.y1 = obj2.getNum(); + } else { + ok = gFalse; + } + obj2.free(); + obj1.arrayGet(2, &obj2); + if (obj2.isNum()) { + tmp.x2 = obj2.getNum(); + } else { + ok = gFalse; + } + obj2.free(); + obj1.arrayGet(3, &obj2); + if (obj2.isNum()) { + tmp.y2 = obj2.getNum(); + } else { + ok = gFalse; + } + obj2.free(); + if (ok) { + *box = tmp; + } + } else { + ok = gFalse; + } + obj1.free(); + return ok; +} + //------------------------------------------------------------------------ // Page //------------------------------------------------------------------------ -Page::Page(int num1, Dict *pageDict, PageAttrs *attrs1) { +Page::Page(XRef *xrefA, int numA, Dict *pageDict, PageAttrs *attrsA, + GBool printCommandsA) { ok = gTrue; - num = num1; + xref = xrefA; + num = numA; + printCommands = printCommandsA; // get attributes - attrs = attrs1; + attrs = attrsA; // annotations pageDict->lookupNF("Annots", &annots); @@ -185,18 +218,22 @@ Page::~Page() { void Page::display(OutputDev *out, double dpi, int rotate, Links *links, Catalog *catalog) { #ifndef PDF_PARSER_ONLY + PDFRectangle *box, *cropBox; Gfx *gfx; Object obj; Link *link; int i; - FormWidgets *formWidgets; + Annots *annotList; + + box = getBox(); + cropBox = getCropBox(); if (printCommands) { printf("***** MediaBox = ll:%g,%g ur:%g,%g\n", - getX1(), getY1(), getX2(), getY2()); + box->x1, box->y1, box->x2, box->y2); if (isCropped()) { printf("***** CropBox = ll:%g,%g ur:%g,%g\n", - getCropX1(), getCropY1(), getCropX2(), getCropY2()); + cropBox->x1, cropBox->y1, cropBox->x2, cropBox->y2); } printf("***** Rotate = %d\n", attrs->getRotate()); } @@ -207,10 +244,9 @@ void Page::display(OutputDev *out, double dpi, int rotate, } else if (rotate < 0) { rotate += 360; } - gfx = new Gfx(out, num, attrs->getResourceDict(), - dpi, getX1(), getY1(), getX2(), getY2(), isCropped(), - getCropX1(), getCropY1(), getCropX2(), getCropY2(), rotate); - contents.fetch(&obj); + gfx = new Gfx(xref, out, num, attrs->getResourceDict(), + dpi, box, isCropped(), cropBox, rotate, printCommands); + contents.fetch(xref, &obj); if (!obj.isNull()) { gfx->display(&obj); } @@ -225,20 +261,20 @@ void Page::display(OutputDev *out, double dpi, int rotate, out->dump(); } - // draw AcroForm widgets + // draw non-link annotations //~ need to reset CTM ??? - formWidgets = new FormWidgets(annots.fetch(&obj)); + annotList = new Annots(xref, annots.fetch(xref, &obj)); obj.free(); - if (printCommands && formWidgets->getNumWidgets() > 0) { - printf("***** AcroForm widgets\n"); - } - for (i = 0; i < formWidgets->getNumWidgets(); ++i) { - formWidgets->getWidget(i)->draw(gfx); - } - if (formWidgets->getNumWidgets() > 0) { + if (annotList->getNumAnnots() > 0) { + if (printCommands) { + printf("***** Annotations\n"); + } + for (i = 0; i < annotList->getNumAnnots(); ++i) { + annotList->getAnnot(i)->draw(gfx); + } out->dump(); } - delete formWidgets; + delete annotList; delete gfx; #endif diff --git a/pdf/xpdf/Page.h b/pdf/xpdf/Page.h index a144d2cf..7207b206 100644 --- a/pdf/xpdf/Page.h +++ b/pdf/xpdf/Page.h @@ -2,7 +2,7 @@ // // Page.h // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -21,6 +21,12 @@ class OutputDev; class Links; class Catalog; +//------------------------------------------------------------------------ + +struct PDFRectangle { + double x1, y1, x2, y2; +}; + //------------------------------------------------------------------------ // PageAttrs //------------------------------------------------------------------------ @@ -37,25 +43,49 @@ public: ~PageAttrs(); // Accessors. - double getX1() { return limitToCropBox ? cropX1 : x1; } - double getY1() { return limitToCropBox ? cropY1 : y1; } - double getX2() { return limitToCropBox ? cropX2 : x2; } - double getY2() { return limitToCropBox ? cropY2 : y2; } - GBool isCropped() { return cropX2 > cropX1; } - double getCropX1() { return cropX1; } - double getCropY1() { return cropY1; } - double getCropX2() { return cropX2; } - double getCropY2() { return cropY2; } + PDFRectangle *getBox() { return limitToCropBox ? &cropBox : &mediaBox; } + PDFRectangle *getMediaBox() { return &mediaBox; } + PDFRectangle *getCropBox() { return &cropBox; } + GBool isCropped() { return haveCropBox; } + PDFRectangle *getBleedBox() { return &bleedBox; } + PDFRectangle *getTrimBox() { return &trimBox; } + PDFRectangle *getArtBox() { return &artBox; } int getRotate() { return rotate; } + GString *getLastModified() + { return lastModified.isString() + ? lastModified.getString() : (GString *)NULL; } + Dict *getBoxColorInfo() + { return boxColorInfo.isDict() ? boxColorInfo.getDict() : (Dict *)NULL; } + Dict *getGroup() + { return group.isDict() ? group.getDict() : (Dict *)NULL; } + Stream *getMetadata() + { return metadata.isStream() ? metadata.getStream() : (Stream *)NULL; } + Dict *getPieceInfo() + { return pieceInfo.isDict() ? pieceInfo.getDict() : (Dict *)NULL; } + Dict *getSeparationInfo() + { return separationInfo.isDict() + ? separationInfo.getDict() : (Dict *)NULL; } Dict *getResourceDict() { return resources.isDict() ? resources.getDict() : (Dict *)NULL; } private: - double x1, y1, x2, y2; - double cropX1, cropY1, cropX2, cropY2; + GBool readBox(Dict *dict, char *key, PDFRectangle *box); + + PDFRectangle mediaBox; + PDFRectangle cropBox; + GBool haveCropBox; GBool limitToCropBox; + PDFRectangle bleedBox; + PDFRectangle trimBox; + PDFRectangle artBox; int rotate; + Object lastModified; + Object boxColorInfo; + Object group; + Object metadata; + Object pieceInfo; + Object separationInfo; Object resources; }; @@ -67,7 +97,8 @@ class Page { public: // Constructor. - Page(int num1, Dict *pageDict, PageAttrs *attrs1); + Page(XRef *xrefA, int numA, Dict *pageDict, PageAttrs *attrsA, + GBool printCommandsA); // Destructor. ~Page(); @@ -76,27 +107,31 @@ public: GBool isOk() { return ok; } // Get page parameters. - double getX1() { return attrs->getX1(); } - double getY1() { return attrs->getY1(); } - double getX2() { return attrs->getX2(); } - double getY2() { return attrs->getY2(); } + PDFRectangle *getBox() { return attrs->getBox(); } + PDFRectangle *getMediaBox() { return attrs->getMediaBox(); } + PDFRectangle *getCropBox() { return attrs->getCropBox(); } GBool isCropped() { return attrs->isCropped(); } - double getCropX1() { return attrs->getCropX1(); } - double getCropY1() { return attrs->getCropY1(); } - double getCropX2() { return attrs->getCropX2(); } - double getCropY2() { return attrs->getCropY2(); } - double getWidth() { return attrs->getX2() - attrs->getX1(); } - double getHeight() { return attrs->getY2() - attrs->getY1(); } + double getWidth() { return attrs->getBox()->x2 - attrs->getBox()->x1; } + double getHeight() { return attrs->getBox()->y2 - attrs->getBox()->y1; } + PDFRectangle *getBleedBox() { return attrs->getBleedBox(); } + PDFRectangle *getTrimBox() { return attrs->getTrimBox(); } + PDFRectangle *getArtBox() { return attrs->getArtBox(); } int getRotate() { return attrs->getRotate(); } + GString *getLastModified() { return attrs->getLastModified(); } + Dict *getBoxColorInfo() { return attrs->getBoxColorInfo(); } + Dict *getGroup() { return attrs->getGroup(); } + Stream *getMetadata() { return attrs->getMetadata(); } + Dict *getPieceInfo() { return attrs->getPieceInfo(); } + Dict *getSeparationInfo() { return attrs->getSeparationInfo(); } // Get resource dictionary. Dict *getResourceDict() { return attrs->getResourceDict(); } // Get annotations array. - Object *getAnnots(Object *obj) { return annots.fetch(obj); } + Object *getAnnots(Object *obj) { return annots.fetch(xref, obj); } // Get contents. - Object *getContents(Object *obj) { return contents.fetch(obj); } + Object *getContents(Object *obj) { return contents.fetch(xref, obj); } // Display a page. void display(OutputDev *out, double dpi, int rotate, @@ -104,10 +139,12 @@ public: private: + XRef *xref; // the xref table for this PDF file int num; // page number PageAttrs *attrs; // page attributes Object annots; // annotations array Object contents; // page contents + GBool printCommands; // print the drawing commands (for debugging) GBool ok; // true if page is valid }; diff --git a/pdf/xpdf/Parser.cc b/pdf/xpdf/Parser.cc index 6ad0c5a7..4df53c98 100644 --- a/pdf/xpdf/Parser.cc +++ b/pdf/xpdf/Parser.cc @@ -2,7 +2,7 @@ // // Parser.cc // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -10,6 +10,7 @@ #pragma implementation #endif +#include #include #include "Object.h" #include "Array.h" @@ -21,8 +22,9 @@ #include "Decrypt.h" #endif -Parser::Parser(Lexer *lexer1) { - lexer = lexer1; +Parser::Parser(XRef *xrefA, Lexer *lexerA) { + xref = xrefA; + lexer = lexerA; inlineImg = 0; lexer->getObj(&buf1); lexer->getObj(&buf2); @@ -36,7 +38,8 @@ Parser::~Parser() { #ifndef NO_DECRYPTION Object *Parser::getObj(Object *obj, - Guchar *fileKey, int objNum, int objGen) { + Guchar *fileKey, int keyLength, + int objNum, int objGen) { #else Object *Parser::getObj(Object *obj) { #endif @@ -63,10 +66,10 @@ Object *Parser::getObj(Object *obj) { // array if (buf1.isCmd("[")) { shift(); - obj->initArray(); + obj->initArray(xref); while (!buf1.isCmd("]") && !buf1.isEOF()) #ifndef NO_DECRYPTION - obj->arrayAdd(getObj(&obj2, fileKey, objNum, objGen)); + obj->arrayAdd(getObj(&obj2, fileKey, keyLength, objNum, objGen)); #else obj->arrayAdd(getObj(&obj2)); #endif @@ -77,7 +80,7 @@ Object *Parser::getObj(Object *obj) { // dictionary or stream } else if (buf1.isCmd("<<")) { shift(); - obj->initDict(); + obj->initDict(xref); while (!buf1.isCmd(">>") && !buf1.isEOF()) { if (!buf1.isName()) { error(getPos(), "Dictionary key must be a name object"); @@ -88,7 +91,7 @@ Object *Parser::getObj(Object *obj) { if (buf1.isEOF() || buf1.isError()) break; #ifndef NO_DECRYPTION - obj->dictAdd(key, getObj(&obj2, fileKey, objNum, objGen)); + obj->dictAdd(key, getObj(&obj2, fileKey, keyLength, objNum, objGen)); #else obj->dictAdd(key, getObj(&obj2)); #endif @@ -101,7 +104,8 @@ Object *Parser::getObj(Object *obj) { obj->initStream(str); #ifndef NO_DECRYPTION if (fileKey) { - str->getBaseStream()->doDecryption(fileKey, objNum, objGen); + str->getBaseStream()->doDecryption(fileKey, keyLength, + objNum, objGen); } #endif } else { @@ -129,7 +133,7 @@ Object *Parser::getObj(Object *obj) { } else if (buf1.isString() && fileKey) { buf1.copy(obj); s = obj->getString(); - decrypt = new Decrypt(fileKey, objNum, objGen); + decrypt = new Decrypt(fileKey, keyLength, objNum, objGen); for (i = 0, p = obj->getString()->getCString(); i < s->getLength(); ++i, ++p) { @@ -151,7 +155,7 @@ Object *Parser::getObj(Object *obj) { Stream *Parser::makeStream(Object *dict) { Object obj; Stream *str; - int pos, endPos, length; + Guint pos, endPos, length; // get stream start position lexer->skipToNextLine(); @@ -160,7 +164,7 @@ Stream *Parser::makeStream(Object *dict) { // get length dict->dictLookup("Length", &obj); if (obj.isInt()) { - length = obj.getInt(); + length = (Guint)obj.getInt(); obj.free(); } else { error(getPos(), "Bad 'Length' attribute in stream"); @@ -169,12 +173,13 @@ Stream *Parser::makeStream(Object *dict) { } // check for length in damaged file - if ((endPos = xref->getStreamEnd(pos)) >= 0) { + if (xref->getStreamEnd(pos, &endPos)) { length = endPos - pos; } // make base stream - str = lexer->getStream()->getBaseStream()->makeSubStream(pos, length, dict); + str = lexer->getStream()->getBaseStream()->makeSubStream(pos, gTrue, + length, dict); // get filters str = str->addFilters(dict); diff --git a/pdf/xpdf/Parser.h b/pdf/xpdf/Parser.h index 6e618449..c11475bf 100644 --- a/pdf/xpdf/Parser.h +++ b/pdf/xpdf/Parser.h @@ -2,7 +2,7 @@ // // Parser.h // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -23,7 +23,7 @@ class Parser { public: // Constructor. - Parser(Lexer *lexer1); + Parser(XRef *xrefA, Lexer *lexerA); // Destructor. ~Parser(); @@ -31,7 +31,8 @@ public: // Get the next object from the input stream. #ifndef NO_DECRYPTION Object *getObj(Object *obj, - Guchar *fileKey = NULL, int objNum = 0, int objGen = 0); + Guchar *fileKey = NULL, int keyLength = 0, + int objNum = 0, int objGen = 0); #else Object *getObj(Object *obj); #endif @@ -44,6 +45,7 @@ public: private: + XRef *xref; // the xref table for this PDF file Lexer *lexer; // input stream Object buf1, buf2; // next two tokens int inlineImg; // set when inline image data is encountered diff --git a/pdf/xpdf/SFont.cc b/pdf/xpdf/SFont.cc index 5ffe315e..69c1e484 100644 --- a/pdf/xpdf/SFont.cc +++ b/pdf/xpdf/SFont.cc @@ -2,42 +2,45 @@ // // SFont.cc // +// Copyright 2001-2002 Glyph & Cog, LLC +// //======================================================================== #ifdef __GNUC__ #pragma implementation #endif +#include #include "SFont.h" //------------------------------------------------------------------------ -SFontEngine::SFontEngine(Display *display, Visual *visual, int depth, - Colormap colormap) { - this->display = display; - this->visual = visual; - this->depth = depth; - this->colormap = colormap; -}; +SFontEngine::SFontEngine(Display *displayA, Visual *visualA, int depthA, + Colormap colormapA) { + display = displayA; + visual = visualA; + depth = depthA; + colormap = colormapA; +} SFontEngine::~SFontEngine() { } -void SFontEngine::useTrueColor(int rMax, int rShift, int gMax, int gShift, - int bMax, int bShift) { +void SFontEngine::useTrueColor(int rMaxA, int rShiftA, int gMaxA, int gShiftA, + int bMaxA, int bShiftA) { trueColor = gTrue; - this->rMax = rMax; - this->rShift = rShift; - this->gMax = gMax; - this->gShift = gShift; - this->bMax = bMax; - this->bShift = bShift; + rMax = rMaxA; + rShift = rShiftA; + gMax = gMaxA; + gShift = gShiftA; + bMax = bMaxA; + bShift = bShiftA; } -void SFontEngine::useColorCube(Gulong *colors, int nRGB) { +void SFontEngine::useColorCube(Gulong *colorsA, int nRGBA) { trueColor = gFalse; - this->colors = colors; - this->nRGB = nRGB; + colors = colorsA; + nRGB = nRGBA; rMax = gMax = bMax = nRGB - 1; } @@ -71,3 +74,7 @@ SFont::SFont() { SFont::~SFont() { } + +GBool SFont::getCharPath(CharCode c, Unicode u, GfxState *state) { + return gFalse; +} diff --git a/pdf/xpdf/SFont.h b/pdf/xpdf/SFont.h index 4758664f..c4fb341e 100644 --- a/pdf/xpdf/SFont.h +++ b/pdf/xpdf/SFont.h @@ -4,6 +4,8 @@ // // Base class for font rasterizers. // +// Copyright 2001-2002 Glyph & Cog, LLC +// //======================================================================== #ifndef SFONT_H @@ -16,14 +18,17 @@ #include #include #include "gtypes.h" +#include "CharTypes.h" + +class GfxState; //------------------------------------------------------------------------ class SFontEngine { public: - SFontEngine(Display *display, Visual *visual, int depth, - Colormap colormap); + SFontEngine(Display *displayA, Visual *visualA, int depthA, + Colormap colormapA); virtual ~SFontEngine(); // Use a TrueColor visual. Pixel values are computed as: @@ -32,8 +37,8 @@ public: // // where r, g, and b are scaled to the ranges [0,rMax], [0,gMax], // and [0,bMax], respectively. - virtual void useTrueColor(int rMax, int rShift, int gMax, int gShift, - int bMax, int bShift); + virtual void useTrueColor(int rMaxA, int rShiftA, int gMaxA, int gShiftA, + int bMaxA, int bShiftA); // Use an RGB color cube. is an array containing // ** pixel values in red,green,blue order, e.g., @@ -53,7 +58,7 @@ public: // // The array is not copied and must remain valid for the // lifetime of this SFont object. - virtual void useColorCube(Gulong *colors, int nRGB); + virtual void useColorCube(Gulong *colorsA, int nRGBA); protected: @@ -114,12 +119,20 @@ public: virtual ~SFont(); - // Draw a character at , in color (,,). The RGB - // values should each be in the range [0,65535]. Draws into , - // clipped to the rectangle (0,0)-(-1,-1). Returns true if - // the character was drawn successfully. + // Draw a character / at , in color (,,). The + // RGB values should each be in the range [0,65535]. Draws into + // , clipped to the rectangle (0,0)-(-1,-1). Returns true + // if the character was drawn successfully. virtual GBool drawChar(Drawable d, int w, int h, GC gc, - int x, int y, int r, int g, int b, Gushort c) = 0; + int x, int y, int r, int g, int b, + CharCode c, Unicode u) = 0; + + // Add the outline of the specified character to the current path by + // calling state->moveTo, lineTo, and curveTo. Returns true if + // successful. If this SFont subclass doesn't implement character + // paths, returns false immediately without modifying the current + // path. + virtual GBool getCharPath(CharCode c, Unicode u, GfxState *state); protected: }; diff --git a/pdf/xpdf/Stream-CCITT.h b/pdf/xpdf/Stream-CCITT.h index 1af87422..f5a77b0b 100644 --- a/pdf/xpdf/Stream-CCITT.h +++ b/pdf/xpdf/Stream-CCITT.h @@ -4,7 +4,7 @@ // // Tables for CCITT Fax decoding. // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== diff --git a/pdf/xpdf/Stream.cc b/pdf/xpdf/Stream.cc index 0afcc94a..9777940d 100644 --- a/pdf/xpdf/Stream.cc +++ b/pdf/xpdf/Stream.cc @@ -2,7 +2,7 @@ // // Stream.cc // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -10,6 +10,7 @@ #pragma implementation #endif +#include #include #include #include @@ -265,8 +266,8 @@ Stream *Stream::makeFilter(char *name, Stream *str, Object *params) { // BaseStream //------------------------------------------------------------------------ -BaseStream::BaseStream(Object *dict) { - this->dict = *dict; +BaseStream::BaseStream(Object *dictA) { + dict = *dictA; #ifndef NO_DECRYPTION decrypt = NULL; #endif @@ -281,8 +282,9 @@ BaseStream::~BaseStream() { } #ifndef NO_DECRYPTION -void BaseStream::doDecryption(Guchar *fileKey, int objNum, int objGen) { - decrypt = new Decrypt(fileKey, objNum, objGen); +void BaseStream::doDecryption(Guchar *fileKey, int keyLength, + int objNum, int objGen) { + decrypt = new Decrypt(fileKey, keyLength, objNum, objGen); } #endif @@ -290,8 +292,8 @@ void BaseStream::doDecryption(Guchar *fileKey, int objNum, int objGen) { // FilterStream //------------------------------------------------------------------------ -FilterStream::FilterStream(Stream *str) { - this->str = str; +FilterStream::FilterStream(Stream *strA) { + str = strA; } FilterStream::~FilterStream() { @@ -301,7 +303,7 @@ void FilterStream::close() { str->close(); } -void FilterStream::setPos(int pos) { +void FilterStream::setPos(Guint pos, int dir) { error(-1, "Internal: called setPos() on FilterStream"); } @@ -309,13 +311,13 @@ void FilterStream::setPos(int pos) { // ImageStream //------------------------------------------------------------------------ -ImageStream::ImageStream(Stream *str, int width, int nComps, int nBits) { +ImageStream::ImageStream(Stream *strA, int widthA, int nCompsA, int nBitsA) { int imgLineSize; - this->str = str; - this->width = width; - this->nComps = nComps; - this->nBits = nBits; + str = strA; + width = widthA; + nComps = nCompsA; + nBits = nBitsA; nVals = width * nComps; if (nBits == 1) { @@ -396,13 +398,13 @@ void ImageStream::skipLine() { // StreamPredictor //------------------------------------------------------------------------ -StreamPredictor::StreamPredictor(Stream *str, int predictor, - int width, int nComps, int nBits) { - this->str = str; - this->predictor = predictor; - this->width = width; - this->nComps = nComps; - this->nBits = nBits; +StreamPredictor::StreamPredictor(Stream *strA, int predictorA, + int widthA, int nCompsA, int nBitsA) { + str = strA; + predictor = predictorA; + width = widthA; + nComps = nCompsA; + nBits = nBitsA; nVals = width * nComps; pixBytes = (nComps * nBits + 7) >> 3; @@ -486,11 +488,11 @@ GBool StreamPredictor::getNextLine() { if ((pc = p - upLeft) < 0) pc = -pc; if (pa <= pb && pa <= pc) - predLine[i] = pa + (Guchar)c; + predLine[i] = left + (Guchar)c; else if (pb <= pc) - predLine[i] = pb + (Guchar)c; + predLine[i] = up + (Guchar)c; else - predLine[i] = pc + (Guchar)c; + predLine[i] = upLeft + (Guchar)c; break; case 10: // PNG none default: // no predictor or TIFF predictor @@ -552,27 +554,37 @@ GBool StreamPredictor::getNextLine() { // FileStream //------------------------------------------------------------------------ -FileStream::FileStream(FILE *f, int start, int length, Object *dict): - BaseStream(dict) { - this->f = f; - this->start = start; - this->length = length; +FileStream::FileStream(FILE *fA, Guint startA, GBool limitedA, + Guint lengthA, Object *dictA): + BaseStream(dictA) { + f = fA; + start = startA; + limited = limitedA; + length = lengthA; bufPtr = bufEnd = buf; bufPos = start; - savePos = -1; + savePos = 0; + saved = gFalse; } FileStream::~FileStream() { close(); } -Stream *FileStream::makeSubStream(int start, int length, Object *dict) { - return new FileStream(f, start, length, dict); +Stream *FileStream::makeSubStream(Guint startA, GBool limitedA, + Guint lengthA, Object *dictA) { + return new FileStream(f, startA, limitedA, lengthA, dictA); } void FileStream::reset() { - savePos = (int)ftell(f); +#if HAVE_FSEEK64 + savePos = (Guint)ftell64(f); + fseek64(f, start, SEEK_SET); +#else + savePos = (Guint)ftell(f); fseek(f, start, SEEK_SET); +#endif + saved = gTrue; bufPtr = bufEnd = buf; bufPos = start; #ifndef NO_DECRYPTION @@ -582,9 +594,13 @@ void FileStream::reset() { } void FileStream::close() { - if (savePos >= 0) { + if (saved) { +#if HAVE_FSEEK64 + fseek64(f, savePos, SEEK_SET); +#else fseek(f, savePos, SEEK_SET); - savePos = -1; +#endif + saved = gFalse; } } @@ -596,10 +612,10 @@ GBool FileStream::fillBuf() { bufPos += bufEnd - buf; bufPtr = bufEnd = buf; - if (length >= 0 && bufPos >= start + length) { + if (limited && bufPos >= start + length) { return gFalse; } - if (length >= 0 && bufPos + fileStreamBufSize > start + length) { + if (limited && bufPos + fileStreamBufSize > start + length) { n = start + length - bufPos; } else { n = fileStreamBufSize; @@ -619,56 +635,159 @@ GBool FileStream::fillBuf() { return gTrue; } -void FileStream::setPos(int pos1) { - long size; +void FileStream::setPos(Guint pos, int dir) { + Guint size; - if (pos1 >= 0) { - fseek(f, pos1, SEEK_SET); - bufPos = pos1; + if (dir >= 0) { +#if HAVE_FSEEK64 + fseek64(f, pos, SEEK_SET); +#else + fseek(f, pos, SEEK_SET); +#endif + bufPos = pos; } else { +#if HAVE_FSEEK64 + fseek64(f, 0, SEEK_END); + size = (Guint)ftell64(f); +#else fseek(f, 0, SEEK_END); - size = ftell(f); - if (pos1 < -size) - pos1 = (int)(-size); - fseek(f, pos1, SEEK_END); - bufPos = (int)ftell(f); + size = (Guint)ftell(f); +#endif + if (pos > size) + pos = (Guint)size; +#ifdef __CYGWIN32__ + //~ work around a bug in cygwin's implementation of fseek + rewind(f); +#endif +#if HAVE_FSEEK64 + fseek64(f, -(int)pos, SEEK_END); + bufPos = (Guint)ftell64(f); +#else + fseek(f, -(int)pos, SEEK_END); + bufPos = (Guint)ftell(f); +#endif } bufPtr = bufEnd = buf; } void FileStream::moveStart(int delta) { - this->start += delta; + start += delta; bufPtr = bufEnd = buf; bufPos = start; } +//------------------------------------------------------------------------ +// MemStream +//------------------------------------------------------------------------ + +MemStream::MemStream(char *bufA, Guint lengthA, Object *dictA): + BaseStream(dictA) { + buf = bufA; + needFree = gFalse; + length = lengthA; + bufEnd = buf + length; + bufPtr = buf; +} + +MemStream::~MemStream() { + if (needFree) { + gfree(buf); + } +} + +Stream *MemStream::makeSubStream(Guint start, GBool limited, + Guint lengthA, Object *dictA) { + Guint newLength; + + if (!limited || start + lengthA > length) { + newLength = length - start; + } else { + newLength = lengthA; + } + return new MemStream(buf + start, newLength, dictA); +} + +void MemStream::reset() { + bufPtr = buf; +#ifndef NO_DECRYPTION + if (decrypt) { + decrypt->reset(); + } +#endif +} + +void MemStream::close() { +} + +void MemStream::setPos(Guint pos, int dir) { + if (dir >= 0) { + if (pos > length) { + bufPtr = bufEnd; + } else { + bufPtr = buf + pos; + } + } else { + if (pos > length) { + bufPtr = buf; + } else { + bufPtr = bufEnd - pos; + } + } +} + +void MemStream::moveStart(int delta) { + buf += delta; + bufPtr = buf; +} + +#ifndef NO_DECRYPTION +void MemStream::doDecryption(Guchar *fileKey, int keyLength, + int objNum, int objGen) { + char *newBuf; + char *p, *q; + + this->BaseStream::doDecryption(fileKey, keyLength, objNum, objGen); + if (decrypt) { + newBuf = (char *)gmalloc(bufEnd - buf); + for (p = buf, q = newBuf; p < bufEnd; ++p, ++q) { + *q = (char)decrypt->decryptByte((Guchar)*p); + } + bufEnd = newBuf + (bufEnd - buf); + bufPtr = newBuf + (bufPtr - buf); + buf = newBuf; + needFree = gTrue; + } +} +#endif + //------------------------------------------------------------------------ // EmbedStream //------------------------------------------------------------------------ -EmbedStream::EmbedStream(Stream *str, Object *dict): - BaseStream(dict) { - this->str = str; +EmbedStream::EmbedStream(Stream *strA, Object *dictA): + BaseStream(dictA) { + str = strA; } EmbedStream::~EmbedStream() { } -Stream *EmbedStream::makeSubStream(int start, int length, Object *dict) { +Stream *EmbedStream::makeSubStream(Guint start, GBool limited, + Guint length, Object *dictA) { error(-1, "Internal: called makeSubStream() on EmbedStream"); return NULL; } -void EmbedStream::setPos(int pos) { +void EmbedStream::setPos(Guint pos, int dir) { error(-1, "Internal: called setPos() on EmbedStream"); } -int EmbedStream::getStart() { +Guint EmbedStream::getStart() { error(-1, "Internal: called getStart() on EmbedStream"); return 0; } -void EmbedStream::moveStart(int start) { +void EmbedStream::moveStart(int delta) { error(-1, "Internal: called moveStart() on EmbedStream"); } @@ -676,8 +795,8 @@ void EmbedStream::moveStart(int start) { // ASCIIHexStream //------------------------------------------------------------------------ -ASCIIHexStream::ASCIIHexStream(Stream *str): - FilterStream(str) { +ASCIIHexStream::ASCIIHexStream(Stream *strA): + FilterStream(strA) { buf = EOF; eof = gFalse; } @@ -748,7 +867,9 @@ int ASCIIHexStream::lookChar() { GString *ASCIIHexStream::getPSFilter(char *indent) { GString *s; - s = str->getPSFilter(indent); + if (!(s = str->getPSFilter(indent))) { + return NULL; + } s->append(indent)->append("/ASCIIHexDecode filter\n"); return s; } @@ -761,8 +882,8 @@ GBool ASCIIHexStream::isBinary(GBool last) { // ASCII85Stream //------------------------------------------------------------------------ -ASCII85Stream::ASCII85Stream(Stream *str): - FilterStream(str) { +ASCII85Stream::ASCII85Stream(Stream *strA): + FilterStream(strA) { index = n = 0; eof = gFalse; } @@ -824,7 +945,9 @@ int ASCII85Stream::lookChar() { GString *ASCII85Stream::getPSFilter(char *indent) { GString *s; - s = str->getPSFilter(indent); + if (!(s = str->getPSFilter(indent))) { + return NULL; + } s->append(indent)->append("/ASCII85Decode filter\n"); return s; } @@ -837,15 +960,15 @@ GBool ASCII85Stream::isBinary(GBool last) { // LZWStream //------------------------------------------------------------------------ -LZWStream::LZWStream(Stream *str, int predictor1, int columns1, int colors1, - int bits1, int early1): - FilterStream(str) { - if (predictor1 != 1) { - pred = new StreamPredictor(this, predictor1, columns1, colors1, bits1); +LZWStream::LZWStream(Stream *strA, int predictor, int columns, int colors, + int bits, int earlyA): + FilterStream(strA) { + if (predictor != 1) { + pred = new StreamPredictor(this, predictor, columns, colors, bits); } else { pred = NULL; } - early = early1; + early = earlyA; zPipe = NULL; bufPtr = bufEnd = buf; } @@ -949,11 +1072,7 @@ void LZWStream::reset() { return; } #else // HAVE_POPEN -#ifdef VMS - if (!system(zCmd->getCString())) { -#else - if (system(zCmd->getCString())) { -#endif + if (!executeCommand(zCmd->getCString())) { error(getPos(), "Couldn't execute '%s'", zCmd->getCString()); unlink(zName->getCString()); delete zName; @@ -1139,7 +1258,9 @@ GString *LZWStream::getPSFilter(char *indent) { if (pred) { return NULL; } - s = str->getPSFilter(indent); + if (!(s = str->getPSFilter(indent))) { + return NULL; + } s->append(indent)->append("/LZWDecode filter\n"); return s; } @@ -1152,8 +1273,8 @@ GBool LZWStream::isBinary(GBool last) { // RunLengthStream //------------------------------------------------------------------------ -RunLengthStream::RunLengthStream(Stream *str): - FilterStream(str) { +RunLengthStream::RunLengthStream(Stream *strA): + FilterStream(strA) { bufPtr = bufEnd = buf; eof = gFalse; } @@ -1171,7 +1292,9 @@ void RunLengthStream::reset() { GString *RunLengthStream::getPSFilter(char *indent) { GString *s; - s = str->getPSFilter(indent); + if (!(s = str->getPSFilter(indent))) { + return NULL; + } s->append(indent)->append("/RunLengthDecode filter\n"); return s; } @@ -1210,17 +1333,17 @@ GBool RunLengthStream::fillBuf() { // CCITTFaxStream //------------------------------------------------------------------------ -CCITTFaxStream::CCITTFaxStream(Stream *str, int encoding, GBool endOfLine, - GBool byteAlign, int columns, int rows, - GBool endOfBlock, GBool black): - FilterStream(str) { - this->encoding = encoding; - this->endOfLine = endOfLine; - this->byteAlign = byteAlign; - this->columns = columns; - this->rows = rows; - this->endOfBlock = endOfBlock; - this->black = black; +CCITTFaxStream::CCITTFaxStream(Stream *strA, int encodingA, GBool endOfLineA, + GBool byteAlignA, int columnsA, int rowsA, + GBool endOfBlockA, GBool blackA): + FilterStream(strA) { + encoding = encodingA; + endOfLine = endOfLineA; + byteAlign = byteAlignA; + columns = columnsA; + rows = rowsA; + endOfBlock = endOfBlockA; + black = blackA; refLine = (short *)gmalloc((columns + 3) * sizeof(short)); codingLine = (short *)gmalloc((columns + 2) * sizeof(short)); @@ -1274,7 +1397,7 @@ void CCITTFaxStream::reset() { int CCITTFaxStream::lookChar() { short code1, code2, code3; int a0New; -#if 0 //~ +#if 0 GBool err; #endif GBool gotEOL; @@ -1287,7 +1410,7 @@ int CCITTFaxStream::lookChar() { } // read the next row -#if 0 //~ +#if 0 err = gFalse; #endif if (codingLine[a0] >= columns) { @@ -1389,7 +1512,7 @@ int CCITTFaxStream::lookChar() { return EOF; default: error(getPos(), "Bad 2D code %04x in CCITTFax stream", code1); -#if 0 //~ +#if 0 err = gTrue; break; #else @@ -1424,7 +1547,7 @@ int CCITTFaxStream::lookChar() { if (codingLine[a0] != columns) { error(getPos(), "CCITTFax row is wrong length (%d)", codingLine[a0]); -#if 0 //~ +#if 0 err = gTrue; #endif } @@ -1484,7 +1607,7 @@ int CCITTFaxStream::lookChar() { } } -#if 0 //~ +#if 0 // This looks for an end-of-line marker after an error, however // some (most?) CCITT streams in PDF files don't use end-of-line // markers, and the just-plow-on technique works better in those @@ -1720,7 +1843,9 @@ GString *CCITTFaxStream::getPSFilter(char *indent) { GString *s; char s1[50]; - s = str->getPSFilter(indent); + if (!(s = str->getPSFilter(indent))) { + return NULL; + } s->append(indent)->append("<< "); if (encoding != 0) { sprintf(s1, "/K %d ", encoding); @@ -1810,8 +1935,8 @@ static int dctZigZag[64] = { 63 }; -DCTStream::DCTStream(Stream *str): - FilterStream(str) { +DCTStream::DCTStream(Stream *strA): + FilterStream(strA) { int i, j; width = height = 0; @@ -2001,7 +2126,7 @@ GBool DCTStream::readMCURow() { pCr = rowBuf[2][y2][x1+x2] - 128; pR = ((pY << 16) + dctCrToR * pCr + 32768) >> 16; rowBuf[0][y2][x1+x2] = 255 - dctClip[dctClipOffset + pR]; - pG = ((pY << 16) + dctCbToG * pCb + dctCrToG * pCr + 32678) >> 16; + pG = ((pY << 16) + dctCbToG * pCb + dctCrToG * pCr + 32768) >> 16; rowBuf[1][y2][x1+x2] = 255 - dctClip[dctClipOffset + pG]; pB = ((pY << 16) + dctCbToB * pCb + 32768) >> 16; rowBuf[2][y2][x1+x2] = 255 - dctClip[dctClipOffset + pB]; @@ -2710,7 +2835,9 @@ int DCTStream::read16() { GString *DCTStream::getPSFilter(char *indent) { GString *s; - s = str->getPSFilter(indent); + if (!(s = str->getPSFilter(indent))) { + return NULL; + } s->append(indent)->append("<< >> /DCTDecode filter\n"); return s; } @@ -2792,11 +2919,11 @@ FlateDecode FlateStream::distDecode[flateMaxDistCodes] = { {13, 24577} }; -FlateStream::FlateStream(Stream *str, int predictor1, int columns1, - int colors1, int bits1): - FilterStream(str) { - if (predictor1 != 1) { - pred = new StreamPredictor(this, predictor1, columns1, colors1, bits1); +FlateStream::FlateStream(Stream *strA, int predictor, int columns, + int colors, int bits): + FilterStream(strA) { + if (predictor != 1) { + pred = new StreamPredictor(this, predictor, columns, colors, bits); } else { pred = NULL; } @@ -3224,8 +3351,8 @@ int FlateStream::getCodeWord(int bits) { // EOFStream //------------------------------------------------------------------------ -EOFStream::EOFStream(Stream *str): - FilterStream(str) { +EOFStream::EOFStream(Stream *strA): + FilterStream(strA) { } EOFStream::~EOFStream() { @@ -3236,9 +3363,9 @@ EOFStream::~EOFStream() { // FixedLengthEncoder //------------------------------------------------------------------------ -FixedLengthEncoder::FixedLengthEncoder(Stream *str, int length1): - FilterStream(str) { - length = length1; +FixedLengthEncoder::FixedLengthEncoder(Stream *strA, int lengthA): + FilterStream(strA) { + length = lengthA; count = 0; } @@ -3268,12 +3395,62 @@ int FixedLengthEncoder::lookChar() { return str->getChar(); } +//------------------------------------------------------------------------ +// ASCIIHexEncoder +//------------------------------------------------------------------------ + +ASCIIHexEncoder::ASCIIHexEncoder(Stream *strA): + FilterStream(strA) { + bufPtr = bufEnd = buf; + lineLen = 0; + eof = gFalse; +} + +ASCIIHexEncoder::~ASCIIHexEncoder() { + if (str->isEncoder()) { + delete str; + } +} + +void ASCIIHexEncoder::reset() { + str->reset(); + bufPtr = bufEnd = buf; + lineLen = 0; + eof = gFalse; +} + +void ASCIIHexEncoder::close() { +} + +GBool ASCIIHexEncoder::fillBuf() { + static char *hex = "0123456789abcdef"; + int c; + + if (eof) { + return gFalse; + } + bufPtr = bufEnd = buf; + if ((c = str->getChar()) == EOF) { + *bufEnd++ = '>'; + eof = gTrue; + } else { + if (lineLen >= 64) { + *bufEnd++ = '\n'; + lineLen = 0; + } + *bufEnd++ = hex[(c >> 4) & 0x0f]; + *bufEnd++ = hex[c & 0x0f]; + lineLen += 2; + } + return gTrue; +} + //------------------------------------------------------------------------ // ASCII85Encoder //------------------------------------------------------------------------ -ASCII85Encoder::ASCII85Encoder(Stream *str): - FilterStream(str) { +ASCII85Encoder::ASCII85Encoder(Stream *strA): + FilterStream(strA) { bufPtr = bufEnd = buf; lineLen = 0; eof = gFalse; @@ -3344,8 +3521,8 @@ GBool ASCII85Encoder::fillBuf() { // RunLengthEncoder //------------------------------------------------------------------------ -RunLengthEncoder::RunLengthEncoder(Stream *str): - FilterStream(str) { +RunLengthEncoder::RunLengthEncoder(Stream *strA): + FilterStream(strA) { bufPtr = bufEnd = nextEnd = buf; eof = gFalse; } diff --git a/pdf/xpdf/Stream.h b/pdf/xpdf/Stream.h index 50345bb0..3319dccd 100644 --- a/pdf/xpdf/Stream.h +++ b/pdf/xpdf/Stream.h @@ -2,7 +2,7 @@ // // Stream.h // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -78,8 +78,10 @@ public: // Get current position in file. virtual int getPos() = 0; - // Go to a position in the stream. - virtual void setPos(int pos1) = 0; + // Go to a position in the stream. If is negative, the + // position is from the end of the file; otherwise the position is + // from the start of the file. + virtual void setPos(Guint pos, int dir = 0) = 0; // Get PostScript command for the filter(s). virtual GString *getPSFilter(char *indent); @@ -116,20 +118,22 @@ private: class BaseStream: public Stream { public: - BaseStream(Object *dict); + BaseStream(Object *dictA); virtual ~BaseStream(); - virtual Stream *makeSubStream(int start, int length, Object *dict) = 0; - virtual void setPos(int pos1) = 0; + virtual Stream *makeSubStream(Guint start, GBool limited, + Guint length, Object *dict) = 0; + virtual void setPos(Guint pos, int dir = 0) = 0; virtual BaseStream *getBaseStream() { return this; } virtual Dict *getDict() { return dict.getDict(); } // Get/set position of first byte of stream within the file. - virtual int getStart() = 0; + virtual Guint getStart() = 0; virtual void moveStart(int delta) = 0; #ifndef NO_DECRYPTION // Set decryption for this stream. - void doDecryption(Guchar *fileKey, int objNum, int objGen); + virtual void doDecryption(Guchar *fileKey, int keyLength, + int objNum, int objGen); #endif #ifndef NO_DECRYPTION @@ -152,11 +156,11 @@ private: class FilterStream: public Stream { public: - FilterStream(Stream *str); + FilterStream(Stream *strA); virtual ~FilterStream(); virtual void close(); virtual int getPos() { return str->getPos(); } - virtual void setPos(int pos); + virtual void setPos(Guint pos, int dir = 0); virtual BaseStream *getBaseStream() { return str->getBaseStream(); } virtual Dict *getDict() { return str->getDict(); } @@ -175,7 +179,7 @@ public: // Create an image stream object for an image with the specified // parameters. Note that these are the actual image parameters, // which may be different from the predictor parameters. - ImageStream(Stream *str, int width, int nComps, int nBits); + ImageStream(Stream *strA, int widthA, int nCompsA, int nBitsA); ~ImageStream(); @@ -209,8 +213,8 @@ public: // Create a predictor object. Note that the parameters are for the // predictor, and may not match the actual image parameters. - StreamPredictor(Stream *str, int predictor, - int width, int nComps, int nBits); + StreamPredictor(Stream *strA, int predictorA, + int widthA, int nCompsA, int nBitsA); ~StreamPredictor(); @@ -242,9 +246,11 @@ private: class FileStream: public BaseStream { public: - FileStream(FILE *f, int start, int length, Object *dict); + FileStream(FILE *fA, Guint startA, GBool limitedA, + Guint lengthA, Object *dictA); virtual ~FileStream(); - virtual Stream *makeSubStream(int start, int length, Object *dict); + virtual Stream *makeSubStream(Guint startA, GBool limitedA, + Guint lengthA, Object *dictA); virtual StreamKind getKind() { return strFile; } virtual void reset(); virtual void close(); @@ -253,9 +259,9 @@ public: virtual int lookChar() { return (bufPtr >= bufEnd && !fillBuf()) ? EOF : (*bufPtr & 0xff); } virtual int getPos() { return bufPos + (bufPtr - buf); } - virtual void setPos(int pos1); + virtual void setPos(Guint pos, int dir = 0); virtual GBool isBinary(GBool last = gTrue) { return last; } - virtual int getStart() { return start; } + virtual Guint getStart() { return start; } virtual void moveStart(int delta); private: @@ -263,13 +269,52 @@ private: GBool fillBuf(); FILE *f; - int start; - int length; + Guint start; + GBool limited; + Guint length; char buf[fileStreamBufSize]; char *bufPtr; char *bufEnd; - int bufPos; + Guint bufPos; int savePos; + GBool saved; +}; + +//------------------------------------------------------------------------ +// MemStream +//------------------------------------------------------------------------ + +class MemStream: public BaseStream { +public: + + MemStream(char *bufA, Guint lengthA, Object *dictA); + virtual ~MemStream(); + virtual Stream *makeSubStream(Guint start, GBool limited, + Guint lengthA, Object *dictA); + virtual StreamKind getKind() { return strWeird; } + virtual void reset(); + virtual void close(); + virtual int getChar() + { return (bufPtr < bufEnd) ? (*bufPtr++ & 0xff) : EOF; } + virtual int lookChar() + { return (bufPtr < bufEnd) ? (*bufPtr & 0xff) : EOF; } + virtual int getPos() { return bufPtr - buf; } + virtual void setPos(Guint pos, int dir = 0); + virtual GBool isBinary(GBool last = gTrue) { return last; } + virtual Guint getStart() { return 0; } + virtual void moveStart(int delta); +#ifndef NO_DECRYPTION + virtual void doDecryption(Guchar *fileKey, int keyLength, + int objNum, int objGen); +#endif + +private: + + char *buf; + Guint length; + GBool needFree; + char *bufEnd; + char *bufPtr; }; //------------------------------------------------------------------------ @@ -285,17 +330,18 @@ private: class EmbedStream: public BaseStream { public: - EmbedStream(Stream *str, Object *dict); + EmbedStream(Stream *strA, Object *dictA); virtual ~EmbedStream(); - virtual Stream *makeSubStream(int start, int length, Object *dict); + virtual Stream *makeSubStream(Guint start, GBool limited, + Guint length, Object *dictA); virtual StreamKind getKind() { return str->getKind(); } virtual void reset() {} virtual int getChar() { return str->getChar(); } virtual int lookChar() { return str->lookChar(); } virtual int getPos() { return str->getPos(); } - virtual void setPos(int pos); + virtual void setPos(Guint pos, int dir = 0); virtual GBool isBinary(GBool last = gTrue) { return last; } - virtual int getStart(); + virtual Guint getStart(); virtual void moveStart(int delta); private: @@ -310,7 +356,7 @@ private: class ASCIIHexStream: public FilterStream { public: - ASCIIHexStream(Stream *str); + ASCIIHexStream(Stream *strA); virtual ~ASCIIHexStream(); virtual StreamKind getKind() { return strASCIIHex; } virtual void reset(); @@ -333,7 +379,7 @@ private: class ASCII85Stream: public FilterStream { public: - ASCII85Stream(Stream *str); + ASCII85Stream(Stream *strA); virtual ~ASCII85Stream(); virtual StreamKind getKind() { return strASCII85; } virtual void reset(); @@ -358,8 +404,8 @@ private: class LZWStream: public FilterStream { public: - LZWStream(Stream *str, int predictor1, int columns1, int colors1, - int bits1, int early1); + LZWStream(Stream *strA, int predictor, int columns, int colors, + int bits, int earlyA); virtual ~LZWStream(); virtual StreamKind getKind() { return strLZW; } virtual void reset(); @@ -394,7 +440,7 @@ private: class RunLengthStream: public FilterStream { public: - RunLengthStream(Stream *str); + RunLengthStream(Stream *strA); virtual ~RunLengthStream(); virtual StreamKind getKind() { return strRunLength; } virtual void reset(); @@ -424,9 +470,9 @@ struct CCITTCodeTable; class CCITTFaxStream: public FilterStream { public: - CCITTFaxStream(Stream *str, int encoding, GBool endOfLine, - GBool byteAlign, int columns, int rows, - GBool endOfBlock, GBool black); + CCITTFaxStream(Stream *strA, int encodingA, GBool endOfLineA, + GBool byteAlignA, int columnsA, int rowsA, + GBool endOfBlockA, GBool blackA); virtual ~CCITTFaxStream(); virtual StreamKind getKind() { return strCCITTFax; } virtual void reset(); @@ -489,7 +535,7 @@ struct DCTHuffTable { class DCTStream: public FilterStream { public: - DCTStream(Stream *str); + DCTStream(Stream *strA); virtual ~DCTStream(); virtual StreamKind getKind() { return strDCT; } virtual void reset(); @@ -573,8 +619,8 @@ struct FlateDecode { class FlateStream: public FilterStream { public: - FlateStream(Stream *str, int predictor1, int columns1, - int colors1, int bits1); + FlateStream(Stream *strA, int predictor, int columns, + int colors, int bits); virtual ~FlateStream(); virtual StreamKind getKind() { return strFlate; } virtual void reset(); @@ -624,7 +670,7 @@ private: class EOFStream: public FilterStream { public: - EOFStream(Stream *str); + EOFStream(Stream *strA); virtual ~EOFStream(); virtual StreamKind getKind() { return strWeird; } virtual void reset() {} @@ -641,7 +687,7 @@ public: class FixedLengthEncoder: public FilterStream { public: - FixedLengthEncoder(Stream *str, int length1); + FixedLengthEncoder(Stream *strA, int lengthA); ~FixedLengthEncoder(); virtual StreamKind getKind() { return strWeird; } virtual void reset(); @@ -658,6 +704,37 @@ private: int count; }; +//------------------------------------------------------------------------ +// ASCIIHexEncoder +//------------------------------------------------------------------------ + +class ASCIIHexEncoder: public FilterStream { +public: + + ASCIIHexEncoder(Stream *strA); + virtual ~ASCIIHexEncoder(); + virtual StreamKind getKind() { return strWeird; } + virtual void reset(); + virtual void close(); + virtual int getChar() + { return (bufPtr >= bufEnd && !fillBuf()) ? EOF : (*bufPtr++ & 0xff); } + virtual int lookChar() + { return (bufPtr >= bufEnd && !fillBuf()) ? EOF : (*bufPtr & 0xff); } + virtual GString *getPSFilter(char *indent) { return NULL; } + virtual GBool isBinary(GBool last = gTrue) { return gFalse; } + virtual GBool isEncoder() { return gTrue; } + +private: + + char buf[4]; + char *bufPtr; + char *bufEnd; + int lineLen; + GBool eof; + + GBool fillBuf(); +}; + //------------------------------------------------------------------------ // ASCII85Encoder //------------------------------------------------------------------------ @@ -665,7 +742,7 @@ private: class ASCII85Encoder: public FilterStream { public: - ASCII85Encoder(Stream *str); + ASCII85Encoder(Stream *strA); virtual ~ASCII85Encoder(); virtual StreamKind getKind() { return strWeird; } virtual void reset(); @@ -696,7 +773,7 @@ private: class RunLengthEncoder: public FilterStream { public: - RunLengthEncoder(Stream *str); + RunLengthEncoder(Stream *strA); virtual ~RunLengthEncoder(); virtual StreamKind getKind() { return strWeird; } virtual void reset(); diff --git a/pdf/xpdf/T1Font.cc b/pdf/xpdf/T1Font.cc index a9a67b64..7b79d874 100644 --- a/pdf/xpdf/T1Font.cc +++ b/pdf/xpdf/T1Font.cc @@ -2,26 +2,30 @@ // // T1Font.cc // +// Copyright 2001-2002 Glyph & Cog, LLC +// //======================================================================== #ifdef __GNUC__ #pragma implementation #endif +#include + #if HAVE_T1LIB_H #include #include #include #include "gmem.h" -#include "FontEncoding.h" +#include "GfxState.h" #include "T1Font.h" //------------------------------------------------------------------------ -T1FontEngine::T1FontEngine(Display *display, Visual *visual, int depth, - Colormap colormap, GBool aa, GBool aaHigh): - SFontEngine(display, visual, depth, colormap) +T1FontEngine::T1FontEngine(Display *displayA, Visual *visualA, int depthA, + Colormap colormapA, GBool aaA, GBool aaHighA): + SFontEngine(displayA, visualA, depthA, colormapA) { static unsigned long grayVals[17] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 @@ -33,8 +37,8 @@ T1FontEngine::T1FontEngine(Display *display, Visual *visual, int depth, T1_NO_AFM)) { return; } - this->aa = aa; - this->aaHigh = aaHigh; + aa = aaA; + aaHigh = aaHighA; if (aa) { T1_AASetBitsPerPixel(8); if (aaHigh) { @@ -56,14 +60,19 @@ T1FontEngine::~T1FontEngine() { //------------------------------------------------------------------------ -T1FontFile::T1FontFile(T1FontEngine *engine, char *fontFileName, - FontEncoding *fontEnc) { +T1FontFile::T1FontFile(T1FontEngine *engineA, char *fontFileName, + char **fontEnc, double *bboxA) { int encStrSize; char *encPtr; int i; ok = gFalse; - this->engine = engine; + engine = engineA; + enc = NULL; + encStr = NULL; + for (i = 0; i < 4; ++i) { + bbox[i] = bboxA[i]; + } // load the font file if ((id = T1_AddFont(fontFileName)) < 0) { @@ -73,26 +82,23 @@ T1FontFile::T1FontFile(T1FontEngine *engine, char *fontFileName, // reencode it encStrSize = 0; - for (i = 0; i < 256 && i < fontEnc->getSize(); ++i) { - if (fontEnc->getCharName(i)) { - encStrSize += strlen(fontEnc->getCharName(i)) + 1; + for (i = 0; i < 256; ++i) { + if (fontEnc[i]) { + encStrSize += strlen(fontEnc[i]) + 1; } } enc = (char **)gmalloc(257 * sizeof(char *)); encStr = (char *)gmalloc(encStrSize * sizeof(char)); encPtr = encStr; - for (i = 0; i < 256 && i < fontEnc->getSize(); ++i) { - if (fontEnc->getCharName(i)) { - strcpy(encPtr, fontEnc->getCharName(i)); + for (i = 0; i < 256; ++i) { + if (fontEnc[i]) { + strcpy(encPtr, fontEnc[i]); enc[i] = encPtr; encPtr += strlen(encPtr) + 1; } else { enc[i] = ".notdef"; } } - for (; i < 256; ++i) { - enc[i] = ".notdef"; - } enc[256] = "custom"; T1_ReencodeFont(id, enc); @@ -102,21 +108,24 @@ T1FontFile::T1FontFile(T1FontEngine *engine, char *fontFileName, T1FontFile::~T1FontFile() { gfree(enc); gfree(encStr); - T1_DeleteFont(id); + if (id >= 0) { + T1_DeleteFont(id); + } } //------------------------------------------------------------------------ -T1Font::T1Font(T1FontFile *fontFile, double *m) { +T1Font::T1Font(T1FontFile *fontFileA, double *m) { T1FontEngine *engine; T1_TMATRIX matrix; BBox bbox; + double bbx0, bby0, bbx1, bby1; int x, y, xMin, xMax, yMin, yMax; int i; ok = gFalse; + fontFile = fontFileA; engine = fontFile->engine; - this->fontFile = fontFile; id = T1_CopyFont(fontFile->id); @@ -125,50 +134,73 @@ T1Font::T1Font(T1FontFile *fontFile, double *m) { // transform the four corners of the font bounding box -- the min // and max values form the bounding box of the transformed font + bbx0 = fontFile->bbox[0]; + bby0 = fontFile->bbox[1]; + bbx1 = fontFile->bbox[2]; + bby1 = fontFile->bbox[3]; + // some fonts in PDF files have bboxes which are just plain wrong, + // so we check the font file's bbox too bbox = T1_GetFontBBox(id); - x = (int)((m[0] * bbox.llx + m[2] * bbox.lly) * 0.001); + if (0.001 * bbox.llx < bbx0) { + bbx0 = 0.001 * bbox.llx; + } + if (0.001 * bbox.lly < bby0) { + bby0 = 0.001 * bbox.lly; + } + if (0.001 * bbox.urx > bbx1) { + bbx1 = 0.001 * bbox.urx; + } + if (0.001 * bbox.ury > bby1) { + bby1 = 0.001 * bbox.ury; + } + // some fonts are completely broken, so we fake it (with values + // large enough that most glyphs should fit) + if (bbx0 == 0 && bby0 == 0 && bbx1 == 0 && bby1 == 0) { + bbx0 = bby0 = -0.5; + bbx1 = bby1 = 1.5; + } + x = (int)(m[0] * bbx0 + m[2] * bby0); xMin = xMax = x; - y = (int)((m[1] * bbox.llx + m[3] * bbox.lly) * 0.001); + y = (int)(m[1] * bbx0 + m[3] * bby0); yMin = yMax = y; - x = (int)((m[0] * bbox.llx + m[2] * bbox.ury) * 0.001); + x = (int)(m[0] * bbx0 + m[2] * bby1); if (x < xMin) { xMin = x; } else if (x > xMax) { xMax = x; } - y = (int)((m[1] * bbox.llx + m[3] * bbox.ury) * 0.001); + y = (int)(m[1] * bbx0 + m[3] * bby1); if (y < yMin) { yMin = y; } else if (y > yMax) { yMax = y; } - x = (int)((m[0] * bbox.urx + m[2] * bbox.lly) * 0.001); + x = (int)(m[0] * bbx1 + m[2] * bby0); if (x < xMin) { xMin = x; } else if (x > xMax) { xMax = x; } - y = (int)((m[1] * bbox.urx + m[3] * bbox.lly) * 0.001); + y = (int)(m[1] * bbx1 + m[3] * bby0); if (y < yMin) { yMin = y; } else if (y > yMax) { yMax = y; } - x = (int)((m[0] * bbox.urx + m[2] * bbox.ury) * 0.001); + x = (int)(m[0] * bbx1 + m[2] * bby1); if (x < xMin) { xMin = x; } else if (x > xMax) { xMax = x; } - y = (int)((m[1] * bbox.urx + m[3] * bbox.ury) * 0.001); + y = (int)(m[1] * bbx1 + m[3] * bby1); if (y < yMin) { yMin = y; } else if (y > yMax) { yMax = y; } -#if 1 //~ - //~ This is a kludge: some buggy PDF generators embed fonts with - //~ zero bounding boxes. + // This is a kludge: some buggy PDF generators embed fonts with + // zero bounding boxes. if (xMax == xMin) { xMin = 0; xMax = (int)size; @@ -177,7 +209,24 @@ T1Font::T1Font(T1FontFile *fontFile, double *m) { yMin = 0; yMax = (int)(1.2 * size); } -#endif + // Another kludge: an unusually large xMin or yMin coordinate is + // probably wrong. + if (xMin > 0) { + xMin = 0; + } + if (yMin > 0) { + yMin = 0; + } + // Another kludge: t1lib doesn't correctly handle fonts with + // real (non-integer) bounding box coordinates. + if (xMax - xMin > 5000) { + xMin = 0; + xMax = (int)size; + } + if (yMax - yMin > 5000) { + yMin = 0; + yMax = (int)(1.2 * size); + } // this should be (max - min + 1), but we add some padding to // deal with rounding errors glyphW = xMax - xMin + 3; @@ -235,7 +284,8 @@ T1Font::~T1Font() { } GBool T1Font::drawChar(Drawable d, int w, int h, GC gc, - int x, int y, int r, int g, int b, Gushort c) { + int x, int y, int r, int g, int b, + CharCode c, Unicode u) { T1FontEngine *engine; XColor xcolor; int bgR, bgG, bgB; @@ -292,7 +342,7 @@ GBool T1Font::drawChar(Drawable d, int w, int h, GC gc, if (engine->aa) { // compute the colors - xcolor.pixel = XGetPixel(image, x1, y1); + xcolor.pixel = XGetPixel(image, x1 + w0/2, y1 + h0/2); XQueryColor(engine->display, engine->colormap, &xcolor); bgR = xcolor.red; bgG = xcolor.green; @@ -357,7 +407,7 @@ GBool T1Font::drawChar(Drawable d, int w, int h, GC gc, return gTrue; } -Guchar *T1Font::getGlyphPixmap(Gushort c, int *x, int *y, int *w, int *h) { +Guchar *T1Font::getGlyphPixmap(CharCode c, int *x, int *y, int *w, int *h) { T1FontEngine *engine; GLYPH *glyph; int gSize; @@ -399,7 +449,7 @@ Guchar *T1Font::getGlyphPixmap(Gushort c, int *x, int *y, int *w, int *h) { *w = glyph->metrics.rightSideBearing - glyph->metrics.leftSideBearing; *h = glyph->metrics.ascent - glyph->metrics.descent; if (*w > glyphW || *h > glyphH) { -#if 1 //~ +#if 1 //~ debug fprintf(stderr, "Weird t1lib glyph size: %d > %d or %d > %d\n", *w, glyphW, *h, glyphH); #endif @@ -434,4 +484,41 @@ Guchar *T1Font::getGlyphPixmap(Gushort c, int *x, int *y, int *w, int *h) { return ret; } +GBool T1Font::getCharPath(CharCode c, Unicode u, GfxState *state) { + T1_OUTLINE *outline; + T1_PATHSEGMENT *seg; + T1_BEZIERSEGMENT *bez; + double x, y, x1, y1; + + outline = T1_GetCharOutline(id, c, size, NULL); + x = 0; + y = 0; + for (seg = outline; seg; seg = seg->link) { + switch (seg->type) { + case T1_PATHTYPE_MOVE: + x += seg->dest.x / 65536.0; + y += seg->dest.y / 65536.0; + state->moveTo(x, y); + break; + case T1_PATHTYPE_LINE: + x += seg->dest.x / 65536.0; + y += seg->dest.y / 65536.0; + state->lineTo(x, y); + break; + case T1_PATHTYPE_BEZIER: + bez = (T1_BEZIERSEGMENT *)seg; + x1 = x + bez->dest.x / 65536.0; + y1 = y + bez->dest.y / 65536.0; + state->curveTo(x + bez->B.x / 65536.0, y + bez->B.y / 65536.0, + x + bez->C.x / 65536.0, y + bez->C.y / 65536.0, + x1, y1); + x = x1; + y = y1; + break; + } + } + T1_FreeOutline(outline); + return gTrue; +} + #endif // HAVE_T1LIB_H diff --git a/pdf/xpdf/T1Font.h b/pdf/xpdf/T1Font.h index 6c1e8f81..5215c3a6 100644 --- a/pdf/xpdf/T1Font.h +++ b/pdf/xpdf/T1Font.h @@ -4,6 +4,8 @@ // // An X wrapper for the t1lib Type 1 font rasterizer. // +// Copyright 2001-2002 Glyph & Cog, LLC +// //======================================================================== #ifndef T1FONT_H @@ -19,15 +21,15 @@ #include #include "SFont.h" -class FontEncoding; +class GfxState; //------------------------------------------------------------------------ class T1FontEngine: public SFontEngine { public: - T1FontEngine(Display *display, Visual *visual, int depth, - Colormap colormap, GBool aa, GBool aaHigh); + T1FontEngine(Display *displayA, Visual *visualA, int depthA, + Colormap colormapA, GBool aaA, GBool aaHighA); GBool isOk() { return ok; } virtual ~T1FontEngine(); @@ -46,8 +48,8 @@ private: class T1FontFile: public SFontFile { public: - T1FontFile(T1FontEngine *engine, char *fontFileName, - FontEncoding *fontEnc); + T1FontFile(T1FontEngine *engineA, char *fontFileName, + char **fontEnc, double *bboxA); GBool isOk() { return ok; } virtual ~T1FontFile(); @@ -57,6 +59,7 @@ private: int id; // t1lib font ID char **enc; char *encStr; + double bbox[4]; GBool ok; friend class T1Font; @@ -73,15 +76,17 @@ struct T1FontCacheTag { class T1Font: public SFont { public: - T1Font(T1FontFile *fontFile, double *m); + T1Font(T1FontFile *fontFileA, double *m); GBool isOk() { return ok; } virtual ~T1Font(); virtual GBool drawChar(Drawable d, int w, int h, GC gc, - int x, int y, int r, int g, int b, Gushort c); + int x, int y, int r, int g, int b, + CharCode c, Unicode u); + virtual GBool getCharPath(CharCode c, Unicode u, GfxState *state); private: - Guchar *getGlyphPixmap(Gushort c, int *x, int *y, int *w, int *h); + Guchar *getGlyphPixmap(CharCode c, int *x, int *y, int *w, int *h); T1FontFile *fontFile; int id; diff --git a/pdf/xpdf/TTFont.cc b/pdf/xpdf/TTFont.cc index e06e892c..ea3fad22 100644 --- a/pdf/xpdf/TTFont.cc +++ b/pdf/xpdf/TTFont.cc @@ -2,30 +2,35 @@ // // TTFont.cc // +// Copyright 2001-2002 Glyph & Cog, LLC +// //======================================================================== #ifdef __GNUC__ #pragma implementation #endif -#if HAVE_FREETYPE_FREETYPE_H | HAVE_FREETYPE_H +#include + +#if !FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) #include #include "gmem.h" +#include "GlobalParams.h" #include "TTFont.h" //------------------------------------------------------------------------ -TTFontEngine::TTFontEngine(Display *display, Visual *visual, int depth, - Colormap colormap, GBool aa): - SFontEngine(display, visual, depth, colormap) { +TTFontEngine::TTFontEngine(Display *displayA, Visual *visualA, int depthA, + Colormap colormapA, GBool aaA): + SFontEngine(displayA, visualA, depthA, colormapA) { static TT_Byte ttPalette[5] = {0, 1, 2, 3, 4}; ok = gFalse; if (TT_Init_FreeType(&engine)) { return; } - this->aa = aa; + aa = aaA; if (aa) { if (TT_Set_Raster_Gray_Palette(engine, ttPalette)) { return; @@ -40,12 +45,16 @@ TTFontEngine::~TTFontEngine() { //------------------------------------------------------------------------ -TTFontFile::TTFontFile(TTFontEngine *engine, char *fontFileName) { +TTFontFile::TTFontFile(TTFontEngine *engineA, char *fontFileName, + char **fontEnc, GBool pdfFontHasEncoding) { TT_Face_Properties props; + TT_UShort unicodeCmap, macRomanCmap, msSymbolCmap; TT_UShort platform, encoding, i; + int j; ok = gFalse; - this->engine = engine; + engine = engineA; + codeMap = NULL; if (TT_Open_Face(engine->engine, fontFileName, &face)) { return; } @@ -53,41 +62,91 @@ TTFontFile::TTFontFile(TTFontEngine *engine, char *fontFileName) { return; } - // Choose a cmap: - // 1. If the font contains a Windows-symbol cmap, use it. - // 2. Otherwise, use the first cmap in the TTF file. - // 3. If the Windows-Symbol cmap is used (from either step 1 or step - // 2), offset all character indexes by 0xf000. - // This seems to match what acroread does, but may need further - // tweaking. + // To match up with the Adobe-defined behaviour, we choose a cmap + // like this: + // 1. If the PDF font has an encoding: + // 1a. If the TrueType font has a Microsoft Unicode cmap, use it, + // and use the Unicode indexes, not the char codes. + // 1b. If the TrueType font has a Macintosh Roman cmap, use it, + // and reverse map the char names through MacRomanEncoding to + // get char codes. + // 2. If the PDF font does not have an encoding: + // 2a. If the TrueType font has a Macintosh Roman cmap, use it, + // and use char codes directly. + // 2b. If the TrueType font has a Microsoft Symbol cmap, use it, + // and use (0xf000 + char code). + // 3. If none of these rules apply, use the first cmap and hope for + // the best (this shouldn't happen). + unicodeCmap = macRomanCmap = msSymbolCmap = 0xffff; for (i = 0; i < props.num_CharMaps; ++i) { if (!TT_Get_CharMap_ID(face, i, &platform, &encoding)) { - if (platform == 3 && encoding == 0) { - break; + if (platform == 3 && encoding == 1) { + unicodeCmap = i; + } else if (platform == 1 && encoding == 0) { + macRomanCmap = i; + } else if (platform == 3 && encoding == 0) { + msSymbolCmap = i; } } } - if (i >= props.num_CharMaps) { - i = 0; - TT_Get_CharMap_ID(face, i, &platform, &encoding); - } - if (platform == 3 && encoding == 0) { - charMapOffset = 0xf000; + i = 0; + mode = ttFontModeCharCode; + charMapOffset = 0; + if (pdfFontHasEncoding) { + if (unicodeCmap != 0xffff) { + i = unicodeCmap; + mode = ttFontModeUnicode; + } else if (macRomanCmap != 0xffff) { + i = macRomanCmap; + mode = ttFontModeCodeMap; + codeMap = (Guchar *)gmalloc(256 * sizeof(Guchar)); + for (j = 0; j < 256; ++j) { + if (fontEnc[j]) { + codeMap[j] = (Guchar)globalParams->getMacRomanCharCode(fontEnc[j]); + } else { + codeMap[j] = 0; + } + } + } } else { - charMapOffset = 0; + if (macRomanCmap != 0xffff) { + i = macRomanCmap; + mode = ttFontModeCharCode; + } else if (msSymbolCmap != 0xffff) { + i = msSymbolCmap; + mode = ttFontModeCharCodeOffset; + charMapOffset = 0xf000; + } } TT_Get_CharMap(face, i, &charMap); ok = gTrue; } +TTFontFile::TTFontFile(TTFontEngine *engineA, char *fontFileName, + Gushort *cidToGIDA, int cidToGIDLenA) { + ok = gFalse; + engine = engineA; + codeMap = NULL; + cidToGID = cidToGIDA; + cidToGIDLen = cidToGIDLenA; + if (TT_Open_Face(engine->engine, fontFileName, &face)) { + return; + } + mode = ttFontModeCIDToGIDMap; + ok = gTrue; +} + TTFontFile::~TTFontFile() { TT_Close_Face(face); + if (codeMap) { + gfree(codeMap); + } } //------------------------------------------------------------------------ -TTFont::TTFont(TTFontFile *fontFile, double *m) { +TTFont::TTFont(TTFontFile *fontFileA, double *m) { TTFontEngine *engine; TT_Face_Properties props; TT_Instance_Metrics metrics; @@ -96,7 +155,7 @@ TTFont::TTFont(TTFontFile *fontFile, double *m) { int i; ok = gFalse; - this->fontFile = fontFile; + fontFile = fontFileA; engine = fontFile->engine; if (TT_New_Instance(fontFile->face, &instance) || TT_Set_Instance_Resolutions(instance, 72, 72) || @@ -220,7 +279,8 @@ TTFont::~TTFont() { } GBool TTFont::drawChar(Drawable d, int w, int h, GC gc, - int x, int y, int r, int g, int b, Gushort c) { + int x, int y, int r, int g, int b, + CharCode c, Unicode u) { TTFontEngine *engine; XColor xcolor; int bgR, bgG, bgB; @@ -269,14 +329,14 @@ GBool TTFont::drawChar(Drawable d, int w, int h, GC gc, ZPixmap, image, x1, y1); // generate the glyph pixmap - if (!getGlyphPixmap(c)) { + if (!getGlyphPixmap(c, u)) { return gFalse; } if (engine->aa) { // compute the colors - xcolor.pixel = XGetPixel(image, x1, y1); + xcolor.pixel = XGetPixel(image, x1 + w0/2, y1 + h0/2); XQueryColor(engine->display, engine->colormap, &xcolor); bgR = xcolor.red; bgG = xcolor.green; @@ -333,7 +393,7 @@ GBool TTFont::drawChar(Drawable d, int w, int h, GC gc, return gTrue; } -GBool TTFont::getGlyphPixmap(Gushort c) { +GBool TTFont::getGlyphPixmap(CharCode c, Unicode u) { TT_UShort idx; TT_Outline outline; int i, j, k; @@ -355,7 +415,38 @@ GBool TTFont::getGlyphPixmap(Gushort c) { } // generate the glyph pixmap or bitmap - idx = TT_Char_Index(fontFile->charMap, fontFile->charMapOffset + c); + idx = 0; // make gcc happy + switch (fontFile->mode) { + case ttFontModeUnicode: + idx = TT_Char_Index(fontFile->charMap, (TT_UShort)u); + break; + case ttFontModeCharCode: + idx = TT_Char_Index(fontFile->charMap, (TT_UShort)c); + break; + case ttFontModeCharCodeOffset: + idx = TT_Char_Index(fontFile->charMap, + (TT_UShort)(c + fontFile->charMapOffset)); + break; + case ttFontModeCodeMap: + if (c <= 0xff) { + idx = TT_Char_Index(fontFile->charMap, + (TT_UShort)(fontFile->codeMap[c] & 0xff)); + } else { + idx = 0; + } + break; + case ttFontModeCIDToGIDMap: + if (fontFile->cidToGIDLen) { + if ((int)c < fontFile->cidToGIDLen) { + idx = (TT_UShort)fontFile->cidToGID[c]; + } else { + idx = (TT_UShort)0; + } + } else { + idx = (TT_UShort)c; + } + break; + } if (TT_Load_Glyph(instance, glyph, idx, TTLOAD_DEFAULT) || TT_Get_Glyph_Outline(glyph, &outline)) { return gFalse; @@ -386,4 +477,4 @@ GBool TTFont::getGlyphPixmap(Gushort c) { return gTrue; } -#endif // HAVE_FREETYPE_FREETYPE_H | HAVE_FREETYPE_H +#endif // !FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) diff --git a/pdf/xpdf/TTFont.h b/pdf/xpdf/TTFont.h index 36196d29..b4ebd96e 100644 --- a/pdf/xpdf/TTFont.h +++ b/pdf/xpdf/TTFont.h @@ -4,12 +4,14 @@ // // An X wrapper for the FreeType TrueType font rasterizer. // +// Copyright 2001-2002 Glyph & Cog, LLC +// //======================================================================== #ifndef TTFONT_H #define TTFONT_H -#if HAVE_FREETYPE_FREETYPE_H | HAVE_FREETYPE_H +#if !FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) #ifdef __GNUC__ #pragma interface @@ -22,6 +24,7 @@ #include #include #endif +#include "gtypes.h" #include "SFont.h" //------------------------------------------------------------------------ @@ -29,8 +32,8 @@ class TTFontEngine: public SFontEngine { public: - TTFontEngine(Display *display, Visual *visual, int depth, - Colormap colormap, GBool aa); + TTFontEngine(Display *displayA, Visual *visualA, int depthA, + Colormap colormapA, GBool aaA); GBool isOk() { return ok; } virtual ~TTFontEngine(); @@ -47,10 +50,25 @@ private: //------------------------------------------------------------------------ +enum TTFontIndexMode { + ttFontModeUnicode, + ttFontModeCharCode, + ttFontModeCharCodeOffset, + ttFontModeCodeMap, + ttFontModeCIDToGIDMap +}; + class TTFontFile: public SFontFile { public: - TTFontFile(TTFontEngine *engine, char *fontFileName); + // 8-bit font, TrueType or Type 1/1C + TTFontFile(TTFontEngine *engineA, char *fontFileName, + char **fontEnc, GBool pdfFontHasEncoding); + + // CID font, TrueType + TTFontFile(TTFontEngine *engineA, char *fontFileName, + Gushort *cidToGIDA, int cidToGIDLenA); + GBool isOk() { return ok; } virtual ~TTFontFile(); @@ -59,7 +77,11 @@ private: TTFontEngine *engine; TT_Face face; TT_CharMap charMap; + TTFontIndexMode mode; int charMapOffset; + Guchar *codeMap; + Gushort *cidToGID; + int cidToGIDLen; GBool ok; friend class TTFont; @@ -75,15 +97,16 @@ struct TTFontCacheTag { class TTFont: public SFont { public: - TTFont(TTFontFile *fontFile, double *m); + TTFont(TTFontFile *fontFileA, double *m); GBool isOk() { return ok; } virtual ~TTFont(); virtual GBool drawChar(Drawable d, int w, int h, GC gc, - int x, int y, int r, int g, int b, Gushort c); + int x, int y, int r, int g, int b, + CharCode c, Unicode u); private: - GBool getGlyphPixmap(Gushort c); + GBool getGlyphPixmap(CharCode c, Unicode u); TTFontFile *fontFile; TT_Instance instance; @@ -99,6 +122,6 @@ private: GBool ok; }; -#endif // HAVE_FREETYPE_FREETYPE_H | HAVE_FREETYPE_H +#endif // !FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) #endif diff --git a/pdf/xpdf/TextOutputDev.cc b/pdf/xpdf/TextOutputDev.cc index 75404923..5e5761fe 100644 --- a/pdf/xpdf/TextOutputDev.cc +++ b/pdf/xpdf/TextOutputDev.cc @@ -2,7 +2,7 @@ // // TextOutputDev.cc // -// Copyright 1997 Derek B. Noonburg +// Copyright 1997-2002 Glyph & Cog, LLC // //======================================================================== @@ -10,16 +10,19 @@ #pragma implementation #endif +#include #include #include #include +#include #include #include "GString.h" #include "gmem.h" #include "config.h" #include "Error.h" +#include "GlobalParams.h" +#include "UnicodeMap.h" #include "GfxState.h" -#include "FontEncoding.h" #include "TextOutputDev.h" #ifdef MACOS @@ -27,730 +30,66 @@ #include "ICSupport.h" #endif -#include "TextOutputFontInfo.h" - -//------------------------------------------------------------------------ -// Character substitutions -//------------------------------------------------------------------------ - -static char *generalSubstNames[] = { - "zerooldstyle", - "oneoldstyle", - "twooldstyle", - "threeoldstyle", - "fouroldstyle", - "fiveoldstyle", - "sixoldstyle", - "sevenoldstyle", - "eightoldstyle", - "nineoldstyle", - "oldstylezero", - "oldstyleone", - "oldstyletwo", - "oldstylethree", - "oldstylefour", - "oldstylefive", - "oldstylesix", - "oldstyleseven", - "oldstyleeight", - "oldstylenine" -}; - -static FontEncoding generalSubstEncoding(generalSubstNames, - sizeof(generalSubstNames) / - sizeof(char *)); - -static char *generalSubst[] = { - "zero", - "one", - "two", - "three", - "four", - "five", - "six", - "seven", - "eight", - "nine", - "zero", - "one", - "two", - "three", - "four", - "five", - "six", - "seven", - "eight", - "nine" -}; - -static char *ascii7Subst[] = { - "A", "A", "A", "A", // A{acute,circumflex,dieresis,grave} - "A", "A", // A{ring,tilde} - "AE", // AE - "C", // Ccedilla - "E", "E", "E", "E", // E{acute,circumflex,dieresis,grave} - "I", "I", "I", "I", // I{acute,circumflex,dieresis,grave} - "L", // Lslash - "N", // Ntilde - "O", "O", "O", "O", // O{acute,circumflex,dieresis,grave} - "O", "O", // O{slash,tilde} - "OE", // OE - "S", // Scaron - "U", "U", "U", "U", // U{acute,circumflex,dieresis,grave} - "Y", "Y", // T{acute,dieresis} - "Z", // Zcaron - "a", "a", "a", "a", // a{acute,circumflex,dieresis,grave} - "a", "a", // a{ring,tilde} - "ae", // ae - "c", // ccedilla - "e", "e", "e", "e", // e{acute,circumflex,dieresis,grave} - "fi", "fl", // ligatures - "ff", "ffi", "ffl", // ligatures - "i", // dotlessi - "i", "i", "i", "i", // i{acute,circumflex,dieresis,grave} - "l", // lslash - "n", // ntilde - "o", "o", "o", "o", // o{acute,circumflex,dieresis,grave} - "o", "o", // o{slash,tilde} - "oe", // oe - "s", // scaron - "u", "u", "u", "u", // u{acute,circumflex,dieresis,grave} - "y", "y", // t{acute,dieresis} - "z", // zcaron - "|", // brokenbar - "*", // bullet - "...", // ellipsis - "-", "-", "-", // emdash, endash, hyphen - "\"", "\"", // quotedblleft, quotedblright - "'", // quotesingle - "(R)", // registered - "TM" // trademark -}; - -static char *isoLatin1Subst[] = { - "L", // Lslash - "OE", // OE - "S", // Scaron - "Y", // Ydieresis - "Z", // Zcaron - "fi", "fl", // ligatures - "ff", "ffi", "ffl", // ligatures - "i", // dotlessi - "l", // lslash - "oe", // oe - "s", // scaron - "z", // zcaron - "*", // bullet - "...", // ellipsis - "-", "-", // emdash, hyphen - "\"", "\"", // quotedblleft, quotedblright - "'", // quotesingle - "TM" // trademark -}; - -static char *isoLatin2Subst[] = { - "fi", "fl", // ligatures - "ff", "ffi", "ffl", // ligatures - "*", // bullet - "...", // ellipsis - "-", "-", // emdash, hyphen - "\"", "\"", // quotedblleft, quotedblright - "'", // quotesingle - "TM" // trademark -}; - -static char **isoLatin5Subst = isoLatin1Subst; - -//------------------------------------------------------------------------ -// 16-bit fonts -//------------------------------------------------------------------------ - -#if JAPANESE_SUPPORT - -// CID 0 .. 96 -static Gushort japan12Map[96] = { - 0x2121, 0x2121, 0x212a, 0x2149, 0x2174, 0x2170, 0x2173, 0x2175, // 00 .. 07 - 0x2147, 0x214a, 0x214b, 0x2176, 0x215c, 0x2124, 0x213e, 0x2123, // 08 .. 0f - 0x213f, 0x2330, 0x2331, 0x2332, 0x2333, 0x2334, 0x2335, 0x2336, // 10 .. 17 - 0x2337, 0x2338, 0x2339, 0x2127, 0x2128, 0x2163, 0x2161, 0x2164, // 18 .. 1f - 0x2129, 0x2177, 0x2341, 0x2342, 0x2343, 0x2344, 0x2345, 0x2346, // 20 .. 27 - 0x2347, 0x2348, 0x2349, 0x234a, 0x234b, 0x234c, 0x234d, 0x234e, // 28 .. 2f - 0x234f, 0x2350, 0x2351, 0x2352, 0x2353, 0x2354, 0x2355, 0x2356, // 30 .. 37 - 0x2357, 0x2358, 0x2359, 0x235a, 0x214e, 0x216f, 0x214f, 0x2130, // 38 .. 3f - 0x2132, 0x2146, 0x2361, 0x2362, 0x2363, 0x2364, 0x2365, 0x2366, // 40 .. 47 - 0x2367, 0x2368, 0x2369, 0x236a, 0x236b, 0x236c, 0x236d, 0x236e, // 48 .. 4f - 0x236f, 0x2370, 0x2371, 0x2372, 0x2373, 0x2374, 0x2375, 0x2376, // 50 .. 57 - 0x2377, 0x2378, 0x2379, 0x237a, 0x2150, 0x2143, 0x2151, 0x2141 // 58 .. 5f -}; - -// CID 325 .. 421 -static Gushort japan12KanaMap1[97] = { - 0x2131, 0x2121, 0x2123, 0x2156, 0x2157, 0x2122, 0x2126, 0x2572, - 0x2521, 0x2523, 0x2525, 0x2527, 0x2529, 0x2563, 0x2565, 0x2567, - 0x2543, 0x213c, 0x2522, 0x2524, 0x2526, 0x2528, 0x252a, 0x252b, - 0x252d, 0x252f, 0x2531, 0x2533, 0x2535, 0x2537, 0x2539, 0x253b, - 0x253d, 0x253f, 0x2541, 0x2544, 0x2546, 0x2548, 0x254a, 0x254b, - 0x254c, 0x254d, 0x254e, 0x254f, 0x2552, 0x2555, 0x2558, 0x255b, - 0x255e, 0x255f, 0x2560, 0x2561, 0x2562, 0x2564, 0x2566, 0x2568, - 0x2569, 0x256a, 0x256b, 0x256c, 0x256d, 0x256f, 0x2573, 0x212b, - 0x212c, 0x212e, 0x2570, 0x2571, 0x256e, 0x2575, 0x2576, 0x2574, - 0x252c, 0x252e, 0x2530, 0x2532, 0x2534, 0x2536, 0x2538, 0x253a, - 0x253c, 0x253e, 0x2540, 0x2542, 0x2545, 0x2547, 0x2549, 0x2550, - 0x2551, 0x2553, 0x2554, 0x2556, 0x2557, 0x2559, 0x255a, 0x255c, - 0x255d -}; - -// CID 501 .. 598 -static Gushort japan12KanaMap2[98] = { - 0x212d, 0x212f, 0x216d, 0x214c, 0x214d, 0x2152, 0x2153, 0x2154, - 0x2155, 0x2158, 0x2159, 0x215a, 0x215b, 0x213d, 0x2121, 0x2472, - 0x2421, 0x2423, 0x2425, 0x2427, 0x2429, 0x2463, 0x2465, 0x2467, - 0x2443, 0x2422, 0x2424, 0x2426, 0x2428, 0x242a, 0x242b, 0x242d, - 0x242f, 0x2431, 0x2433, 0x2435, 0x2437, 0x2439, 0x243b, 0x243d, - 0x243f, 0x2441, 0x2444, 0x2446, 0x2448, 0x244a, 0x244b, 0x244c, - 0x244d, 0x244e, 0x244f, 0x2452, 0x2455, 0x2458, 0x245b, 0x245e, - 0x245f, 0x2460, 0x2461, 0x2462, 0x2464, 0x2466, 0x2468, 0x2469, - 0x246a, 0x246b, 0x246c, 0x246d, 0x246f, 0x2473, 0x2470, 0x2471, - 0x246e, 0x242c, 0x242e, 0x2430, 0x2432, 0x2434, 0x2436, 0x2438, - 0x243a, 0x243c, 0x243e, 0x2440, 0x2442, 0x2445, 0x2447, 0x2449, - 0x2450, 0x2451, 0x2453, 0x2454, 0x2456, 0x2457, 0x2459, 0x245a, - 0x245c, 0x245d -}; - -static char *japan12Roman[10] = { - "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X" -}; - -static char *japan12Abbrev1[6] = { - "mm", "cm", "km", "mg", "kg", "cc" -}; - -#endif - -#if CHINESE_CNS_SUPPORT - -static Gushort cns13Map1[99] = { - // 0-98 - 0, 0xa140, 0xa149, 0xa1a8, 0xa1ad, 0xa243, 0xa248, 0xa1ae, - 0xa1a6, 0xa15d, 0xa15e, 0xa1af, 0xa1cf, 0xa141, 0xa1df, 0xa144, - 0xa241, 0xa2af, 0xa2b0, 0xa2b1, 0xa2b2, 0xa2b3, 0xa2b4, 0xa2b5, - 0xa2b6, 0xa2b7, 0xa2b8, 0xa147, 0xa146, 0xa1d5, 0xa1d7, 0xa1d6, - 0xa148, 0xa249, 0xa2cf, 0xa2d0, 0xa2d1, 0xa2d2, 0xa2d3, 0xa2d4, - 0xa2d5, 0xa2d6, 0xa2d7, 0xa2d8, 0xa2d9, 0xa2da, 0xa2db, 0xa2dc, - 0xa2dd, 0xa2de, 0xa2df, 0xa2e0, 0xa2e1, 0xa2e2, 0xa2e3, 0xa2e4, - 0xa2e5, 0xa2e6, 0xa2e7, 0xa2e8, 0xa165, 0xa242, 0xa166, 0xa173, - 0xa15a, 0xa1a5, 0xa2e9, 0xa2ea, 0xa2eb, 0xa2ec, 0xa2ed, 0xa2ee, - 0xa2ef, 0xa2f0, 0xa2f1, 0xa2f2, 0xa2f3, 0xa2f4, 0xa2f5, 0xa2f6, - 0xa2f7, 0xa2f8, 0xa2f9, 0xa2fa, 0xa2fb, 0xa2fc, 0xa2fd, 0xa2fe, - 0xa340, 0xa341, 0xa342, 0xa343, 0xa161, 0xa159, 0xa162, 0xa1e3, - 0, 0, 0xa14b -}; - -static Gushort cns13Map2[95] = { - // 13648-13742 - 0xa140, 0xa149, 0xa1a8, 0xa1ad, 0xa244, 0xa248, 0xa1ae, - 0xa1a6, 0xa15d, 0xa15e, 0xa1af, 0xa1cf, 0xa141, 0xa1df, 0xa144, - 0xa241, 0xa2af, 0xa2b0, 0xa2b1, 0xa2b2, 0xa2b3, 0xa2b4, 0xa2b5, - 0xa2b6, 0xa2b7, 0xa2b8, 0xa147, 0xa146, 0xa1d5, 0xa1d7, 0xa1d6, - 0xa148, 0xa249, 0xa2cf, 0xa2d0, 0xa2d1, 0xa2d2, 0xa2d3, 0xa2d4, - 0xa2d5, 0xa2d6, 0xa2d7, 0xa2d8, 0xa2d9, 0xa2da, 0xa2db, 0xa2dc, - 0xa2dd, 0xa2de, 0xa2df, 0xa2e0, 0xa2e1, 0xa2e2, 0xa2e3, 0xa2e4, - 0xa2e5, 0xa2e6, 0xa2e7, 0xa2e8, 0xa165, 0xa242, 0xa166, 0xa173, - 0xa15a, 0xa1a5, 0xa2e9, 0xa2ea, 0xa2eb, 0xa2ec, 0xa2ed, 0xa2ee, - 0xa2ef, 0xa2f0, 0xa2f1, 0xa2f2, 0xa2f3, 0xa2f4, 0xa2f5, 0xa2f6, - 0xa2f7, 0xa2f8, 0xa2f9, 0xa2fa, 0xa2fb, 0xa2fc, 0xa2fd, 0xa2fe, - 0xa340, 0xa341, 0xa342, 0xa343, 0xa161, 0xa159, 0xa162, 0xa1c3 -}; - -#endif - //------------------------------------------------------------------------ // TextString //------------------------------------------------------------------------ -TextString::TextString(GfxState *state, GBool hexCodes1) { - double x, y, h; +TextString::TextString(GfxState *state, double fontSize) { + GfxFont *font; + double x, y; state->transform(state->getCurX(), state->getCurY(), &x, &y); - h = state->getTransformedFontSize(); - //~ yMin/yMax computation should use font ascent/descent values - yMin = y - 0.95 * h; - yMax = yMin + 1.3 * h; + if ((font = state->getFont())) { + yMin = y - font->getAscent() * fontSize; + yMax = y - font->getDescent() * fontSize; + } else { + // this means that the PDF file draws text without a current font, + // which should never happen + yMin = y - 0.95 * fontSize; + yMax = y + 0.35 * fontSize; + } + if (yMin == yMax) { + // this is a sanity check for a case that shouldn't happen -- but + // if it does happen, we want to avoid dividing by zero later + yMin = y; + yMax = y + 1; + } col = 0; - text = new GString(); + text = NULL; xRight = NULL; + len = size = 0; yxNext = NULL; xyNext = NULL; - hexCodes = hexCodes1; } TextString::~TextString() { - delete text; + gfree(text); gfree(xRight); } void TextString::addChar(GfxState *state, double x, double y, - double dx, double dy, - Guchar c, TextOutputCharSet charSet) { - char *charName, *sub; - int c1; - int i, j, n, m; - - // get current index - i = text->getLength(); - - // append translated character(s) to string - sub = NULL; - n = 1; - if ((charName = state->getFont()->getCharName(c))) { - if ((c1 = generalSubstEncoding.getCharCode(charName)) >= 0) { - charName = generalSubst[c1]; - } - switch (charSet) { - case textOutASCII7: - c1 = ascii7Encoding.getCharCode(charName); - break; - case textOutLatin1: - c1 = isoLatin1Encoding.getCharCode(charName); - break; - case textOutLatin2: - c1 = isoLatin2Encoding.getCharCode(charName); - break; - case textOutLatin5: - c1 = isoLatin5Encoding.getCharCode(charName); - break; - } - if (c1 < 0) { - m = strlen(charName); - if (hexCodes && m == 3 && - (charName[0] == 'B' || charName[0] == 'C' || - charName[0] == 'G') && - isxdigit(charName[1]) && isxdigit(charName[2])) { - sscanf(charName+1, "%x", &c1); - } else if (hexCodes && m == 2 && - isxdigit(charName[0]) && isxdigit(charName[1])) { - sscanf(charName, "%x", &c1); - } else if (!hexCodes && m >= 2 && m <= 3 && - isdigit(charName[0]) && isdigit(charName[1])) { - c1 = atoi(charName); - if (c1 >= 256) { - c1 = -1; - } - } else if (m >= 3 && m <= 5 && isdigit(charName[1])) { - c1 = atoi(charName+1); - if (c1 >= 256) { - c1 = -1; - } - } - //~ this is a kludge -- is there a standard internal encoding - //~ used by all/most Type 1 fonts? - if (c1 == 262) // hyphen - c1 = 45; - else if (c1 == 266) // emdash - c1 = 208; - if (c1 >= 0) { - charName = isoLatin1Encoding.getCharName(c1); - if (charName) { - switch (charSet) { - case textOutASCII7: - c1 = ascii7Encoding.getCharCode(charName); - break; - case textOutLatin1: - // no translation - break; - case textOutLatin2: - c1 = isoLatin2Encoding.getCharCode(charName); - break; - case textOutLatin5: - c1 = isoLatin5Encoding.getCharCode(charName); - break; - } - } else { - c1 = -1; - } - } - } - switch (charSet) { - case textOutASCII7: - if (c1 >= 128) { - sub = ascii7Subst[c1 - 128]; - n = strlen(sub); - } - break; - case textOutLatin1: - if (c1 >= 256) { - sub = isoLatin1Subst[c1 - 256]; - n = strlen(sub); - } - break; - case textOutLatin2: - if (c1 >= 256) { - sub = isoLatin2Subst[c1 - 256]; - n = strlen(sub); - } - break; - case textOutLatin5: - if (c1 >= 256) { - sub = isoLatin5Subst[c1 - 256]; - n = strlen(sub); - } - break; - } - } else { - c1 = -1; + double dx, double dy, Unicode u) { + if (len == size) { + size += 16; + text = (Unicode *)grealloc(text, size * sizeof(Unicode)); + xRight = (double *)grealloc(xRight, size * sizeof(double)); } - if (sub) - text->append(sub); - else if (c1 >= ' ') - text->append((char)c1); - else - text->append(' '); - - // update position information - if (i+n > ((i+15) & ~15)) - xRight = (double *)grealloc(xRight, ((i+n+15) & ~15) * sizeof(double)); - if (i == 0) + text[len] = u; + if (len == 0) { xMin = x; - for (j = 0; j < n; ++j) - xRight[i+j] = x + ((j+1) * dx) / n; - xMax = x + dx; -} - -void TextString::addChar16(GfxState *state, double x, double y, - double dx, double dy, - int c, GfxFontCharSet16 charSet) { - int c1, t1, t2; - int sub[8]; - char *p; - int *q; - int i, j, n; - - // get current index - i = text->getLength(); - - // convert the 16-bit character - c1 = 0; - sub[0] = 0; - switch (charSet) { - - // convert Adobe-Japan1-2 to JIS X 0208-1983 - case font16AdobeJapan12: -#if JAPANESE_SUPPORT - if (c <= 96) { - c1 = 0x8080 + japan12Map[c]; - } else if (c <= 632) { - if (c <= 230) - c1 = 0; - else if (c <= 324) - c1 = 0x8080 + japan12Map[c - 230]; - else if (c <= 421) - c1 = 0x8080 + japan12KanaMap1[c - 325]; - else if (c <= 500) - c1 = 0; - else if (c <= 598) - c1 = 0x8080 + japan12KanaMap2[c - 501]; - else - c1 = 0; - } else if (c <= 1124) { - if (c <= 779) { - if (c <= 726) - c1 = 0xa1a1 + (c - 633); - else if (c <= 740) - c1 = 0xa2a1 + (c - 727); - else if (c <= 748) - c1 = 0xa2ba + (c - 741); - else if (c <= 755) - c1 = 0xa2ca + (c - 749); - else if (c <= 770) - c1 = 0xa2dc + (c - 756); - else if (c <= 778) - c1 = 0xa2f2 + (c - 771); - else - c1 = 0xa2fe; - } else if (c <= 841) { - if (c <= 789) - c1 = 0xa3b0 + (c - 780); - else if (c <= 815) - c1 = 0xa3c1 + (c - 790); - else - c1 = 0xa3e1 + (c - 816); - } else if (c <= 1010) { - if (c <= 924) - c1 = 0xa4a1 + (c - 842); - else - c1 = 0xa5a1 + (c - 925); - } else { - if (c <= 1034) - c1 = 0xa6a1 + (c - 1011); - else if (c <= 1058) - c1 = 0xa6c1 + (c - 1035); - else if (c <= 1091) - c1 = 0xa7a1 + (c - 1059); - else - c1 = 0xa7d1 + (c - 1092); - } - } else if (c <= 4089) { - t1 = (c - 1125) / 94; - t2 = (c - 1125) % 94; - c1 = 0xb0a1 + (t1 << 8) + t2; - } else if (c <= 7477) { - t1 = (c - 4090) / 94; - t2 = (c - 4090) % 94; - c1 = 0xd0a1 + (t1 << 8) + t2; - } else if (c <= 7554) { - c1 = 0; - } else if (c <= 7563) { // circled Arabic numbers 1..9 - c1 = 0xa3b1 + (c - 7555); - } else if (c <= 7574) { // circled Arabic numbers 10..20 - t1 = c - 7564 + 10; - sub[0] = 0xa3b0 + (t1 / 10); - sub[1] = 0xa3b0 + (t1 % 10); - sub[2] = 0; - c1 = -1; - } else if (c <= 7584) { // Roman numbers I..X - for (p = japan12Roman[c - 7575], q = sub; *p; ++p, ++q) { - *q = 0xa380 + *p; - } - *q = 0; - c1 = -1; - } else if (c <= 7632) { - if (c <= 7600) { - c1 = 0; - } else if (c <= 7606) { - for (p = japan12Abbrev1[c - 7601], q = sub; *p; ++p, ++q) { - *q = 0xa380 + *p; - } - *q = 0; - c1 = -1; - } else { - c1 = 0; - } - } else { - c1 = 0; - } -#if 0 //~ - if (c1 == 0) { - error(-1, "Unsupported Adobe-Japan1-2 character: %d", c); - } -#endif -#endif // JAPANESE_SUPPORT - break; - - case font16AdobeGB12: -#if CHINESE_GB_SUPPORT -#endif - break; - - case font16AdobeCNS13: -#if CHINESE_CNS_SUPPORT - if (c <= 98) { - c1 = cns13Map1[c]; - } else if (c <= 502) { - if (c == 247) { - c1 = 0xa1f7; - } else if (c == 248) { - c1 = 0xa1f6; - } else { - t1 = (c - 99) / 157; - t2 = (c - 99) % 157; - if (t2 <= 62) { - c1 = 0xa140 + (t1 << 8) + t2; - } else { - c1 = 0xa162 + (t1 << 8) + t2; - } - } - } else if (c <= 505) { - c1 = 0xa3bd + (c - 503); - } else if (c <= 594) { - c1 = 0; - } else if (c <= 5995) { - if (c == 2431) { - c1 = 0xacfe; - } else if (c == 4308) { - c1 = 0xbe52; - } else if (c == 5221) { - c1 = 0xc2cb; - } else if (c == 5495) { - c1 = 0xc456; - } else if (c == 5550) { - c1 = 0xc3ba; - } else if (c == 5551) { - c1 = 0xc3b9; - } else { - if (c >= 2007 && c <= 2430) { - t1 = c - 594; - } else if (c >= 4309 && c <= 4695) { - t1 = c - 596; - } else if (c >= 5222 && c <= 5410) { - t1 = c - 596; - } else if (c >= 5496 && c <= 5641) { - t1 = c - 596; - } else { - t1 = c - 595; - } - t2 = t1 % 157; - t1 /= 157; - if (t2 <= 62) { - c1 = 0xa440 + (t1 << 8) + t2; - } else { - c1 = 0xa462 + (t1 << 8) + t2; - } - } - } else if (c <= 13645) { - if (c == 6039) { - c1 = 0xc9be; - } else if (c == 6134) { - c1 = 0xcaf7; - } else if (c == 8142) { - c1 = 0xdadf; - } else if (c == 8788) { - c1 = 0xd6cc; - } else if (c == 8889) { - c1 = 0xd77a; - } else if (c == 10926) { - c1 = 0xebf1; - } else if (c == 11073) { - c1 = 0xecde; - } else if (c == 11361) { - c1 = 0xf0cb; - } else if (c == 11719) { - c1 = 0xf056; - } else if (c == 12308) { - c1 = 0xeeeb; - } else if (c == 12526) { - c1 = 0xf4b5; - } else if (c == 12640) { - c1 = 0xf16b; - } else if (c == 12783) { - c1 = 0xf268; - } else if (c == 12900) { - c1 = 0xf663; - } else if (c == 13585) { - c1 = 0xf9c4; - } else if (c == 13641) { - c1 = 0xf9c6; - } else { - if (c >= 6006 && c <= 6038) { - t1 = c - 5995; - } else if (c >= 6088 && c <= 6133) { - t1 = c - 5995; - } else if (c >= 6302 && c <= 8250) { - t1 = c - 5995; - } else if (c >= 8251 && c <= 8888) { - t1 = c - 5994; - } else if (c >= 8890 && c <= 9288) { - t1 = c - 5995; - } else if (c >= 9289 && c <= 10925) { - t1 = c - 5994; - } else if (c >= 10927 && c <= 11072) { - t1 = c - 5995; - } else if (c >= 11362 && c <= 11477) { - t1 = c - 5997; - } else if (c >= 11615 && c <= 11718) { - t1 = c - 5995; - } else if (c >= 11942 && c <= 12139) { - t1 = c - 5995; - } else if (c >= 12140 && c <= 12221) { - t1 = c - 5994; - } else if (c >= 12222 && c <= 12307) { - t1 = c - 5993; - } else if (c >= 12309 && c <= 12316) { - t1 = c - 5994; - } else if (c >= 12317 && c <= 12469) { - t1 = c - 5993; - } else if (c >= 12470 && c <= 12525) { - t1 = c - 5992; - } else if (c >= 12527 && c <= 12639) { - t1 = c - 5993; - } else if (c >= 12641 && c <= 12782) { - t1 = c - 5994; - } else if (c >= 12784 && c <= 12828) { - t1 = c - 5995; - } else if (c >= 12829 && c <= 12899) { - t1 = c - 5994; - } else if (c >= 12901 && c <= 13094) { - t1 = c - 5995; - } else if (c >= 13095 && c <= 13584) { - t1 = c - 5994; - } else if (c >= 13586 && c <= 13628) { - t1 = c - 5995; - } else if (c == 13629) { - t1 = c - 5994; - } else if (c >= 13630 && c <= 13640) { - t1 = c - 5993; - } else if (c >= 13642 && c <= 13645) { - t1 = c - 5994; - } else { - t1 = c - 5996; - } - t2 = t1 % 157; - t1 /= 157; - if (t2 <= 62) { - c1 = 0xc940 + (t1 << 8) + t2; - } else { - c1 = 0xc962 + (t1 << 8) + t2; - } - } - } else if (c == 13646) { - c1 = 0xa14b; - } else if (c == 13647) { - c1 = 0xa1e3; - } else if (c <= 13742) { - c1 = cns13Map2[c - 13648]; - } else if (c <= 13746) { - c1 = 0xa159 + (c - 13743); - } else if (c <= 14055) { - c1 = 0; - } else if (c <= 14062) { - c1 = 0xf9d6 + (c - 14056); - } -#if 1 //~ - if (c1 == 0) { - error(-1, "Unsupported Adobe-CNS1-3 character: %d", c); - } -#endif -#endif - break; } - - // append converted character to string - if (c1 == 0) { - text->append(' '); - n = 1; - } else if (c1 > 0) { - text->append(c1 >> 8); - text->append(c1 & 0xff); - n = 2; - } else { - n = 0; - for (q = sub; *q; ++q) { - text->append(*q >> 8); - text->append(*q & 0xff); - n += 2; - } - } - - // update position information - if (i+n > ((i+15) & ~15)) { - xRight = (double *)grealloc(xRight, ((i+n+15) & ~15) * sizeof(double)); - } - if (i == 0) { - xMin = x; - } - for (j = 0; j < n; ++j) { - xRight[i+j] = x + dx; - } - xMax = x + dx; + xMax = xRight[len] = x + dx; + ++len; } //------------------------------------------------------------------------ // TextPage //------------------------------------------------------------------------ -TextPage::TextPage(TextOutputCharSet charSet, GBool rawOrder) { - this->charSet = charSet; - this->rawOrder = rawOrder; +TextPage::TextPage(GBool rawOrderA) { + rawOrder = rawOrderA; curStr = NULL; + fontSize = 0; yxStrings = NULL; xyStrings = NULL; yxCur1 = yxCur2 = NULL; @@ -761,7 +100,43 @@ TextPage::~TextPage() { clear(); } -void TextPage::beginString(GfxState *state, GString *s, GBool hexCodes) { +void TextPage::updateFont(GfxState *state) { + GfxFont *font; + double *fm; + char *name; + int code; + double w; + + // adjust the font size + fontSize = state->getTransformedFontSize(); + if ((font = state->getFont()) && font->getType() == fontType3) { + // This is a hack which makes it possible to deal with some Type 3 + // fonts. The problem is that it's impossible to know what the + // base coordinate system used in the font is without actually + // rendering the font. This code tries to guess by looking at the + // width of the character 'm' (which breaks if the font is a + // subset that doesn't contain 'm'). + for (code = 0; code < 256; ++code) { + if ((name = ((Gfx8BitFont *)font)->getCharName(code)) && + name[0] == 'm' && name[1] == '\0') { + break; + } + } + if (code < 256) { + w = ((Gfx8BitFont *)font)->getWidth(code); + if (w != 0) { + // 600 is a generic average 'm' width -- yes, this is a hack + fontSize *= w / 0.6; + } + } + fm = font->getFontMatrix(); + if (fm[0] != 0) { + fontSize *= fabs(fm[3] / fm[0]); + } + } +} + +void TextPage::beginString(GfxState *state) { // This check is needed because Type 3 characters can contain // text-drawing operations. if (curStr) { @@ -769,56 +144,41 @@ void TextPage::beginString(GfxState *state, GString *s, GBool hexCodes) { return; } - curStr = new TextString(state, hexCodes); + curStr = new TextString(state, fontSize); } void TextPage::addChar(GfxState *state, double x, double y, - double dx, double dy, Guchar c) { + double dx, double dy, Unicode *u, int uLen) { double x1, y1, w1, h1, dx2, dy2; - int n; - GBool hexCodes; + int n, i; state->transform(x, y, &x1, &y1); - state->textTransformDelta(state->getCharSpace(), 0, &dx2, &dy2); - dx -= dx2; - dy -= dy2; - state->transformDelta(dx, dy, &w1, &h1); - n = curStr->text->getLength(); + n = curStr->len; if (n > 0 && x1 - curStr->xRight[n-1] > 0.1 * (curStr->yMax - curStr->yMin)) { - hexCodes = curStr->hexCodes; endString(); - beginString(state, NULL, hexCodes); + beginString(state); } - curStr->addChar(state, x1, y1, w1, h1, c, charSet); -} - -void TextPage::addChar16(GfxState *state, double x, double y, - double dx, double dy, int c, - GfxFontCharSet16 charSet) { - double x1, y1, w1, h1, dx2, dy2; - int n; - GBool hexCodes; - - state->transform(x, y, &x1, &y1); - state->textTransformDelta(state->getCharSpace(), 0, &dx2, &dy2); + state->textTransformDelta(state->getCharSpace() * state->getHorizScaling(), + 0, &dx2, &dy2); dx -= dx2; dy -= dy2; state->transformDelta(dx, dy, &w1, &h1); - n = curStr->text->getLength(); - if (n > 0 && - x1 - curStr->xRight[n-1] > 0.1 * (curStr->yMax - curStr->yMin)) { - hexCodes = curStr->hexCodes; - endString(); - beginString(state, NULL, hexCodes); + if (uLen != 0) { + w1 /= uLen; + h1 /= uLen; + } + for (i = 0; i < uLen; ++i) { + curStr->addChar(state, x1 + i*w1, y1 + i*h1, w1, h1, u[i]); } - curStr->addChar16(state, x1, y1, w1, h1, c, charSet); } void TextPage::endString() { TextString *p1, *p2; double h, y1, y2; + // This check is needed because Type 3 characters can contain + // text-drawing operations. if (nest > 0) { --nest; return; @@ -826,7 +186,7 @@ void TextPage::endString() { // throw away zero-length strings -- they don't have valid xMin/xMax // values, and they're useless anyway - if (curStr->text->getLength() == 0) { + if (curStr->len == 0) { delete curStr; curStr = NULL; return; @@ -849,16 +209,18 @@ void TextPage::endString() { p2 = yxCur2; } else { for (p1 = NULL, p2 = yxStrings; p2; p1 = p2, p2 = p2->yxNext) { - if (y1 < p2->yMin || (y2 < p2->yMax && curStr->xMax < p2->xMin)) + if (y1 < p2->yMin || (y2 < p2->yMax && curStr->xMax < p2->xMin)) { break; + } } yxCur2 = p2; } yxCur1 = curStr; - if (p1) + if (p1) { p1->yxNext = curStr; - else + } else { yxStrings = curStr; + } curStr->yxNext = p2; curStr = NULL; } @@ -866,13 +228,18 @@ void TextPage::endString() { void TextPage::coalesce() { TextString *str1, *str2; double space, d; + GBool addSpace; int n, i; #if 0 //~ for debugging for (str1 = yxStrings; str1; str1 = str1->yxNext) { - printf("x=%3d..%3d y=%3d..%3d size=%2d '%s'\n", + printf("x=%3d..%3d y=%3d..%3d size=%2d '", (int)str1->xMin, (int)str1->xMax, (int)str1->yMin, (int)str1->yMax, - (int)(str1->yMax - str1->yMin), str1->text->getCString()); + (int)(str1->yMax - str1->yMin)); + for (i = 0; i < str1->len; ++i) { + fputc(str1->text[i] & 0xff, stdout); + } + printf("'\n"); } printf("\n------------------------------------------------------------\n\n"); #endif @@ -885,21 +252,31 @@ void TextPage::coalesce() { (str2->yMax >= str1->yMin && str2->yMax <= str1->yMax))) || (!rawOrder && str2->yMin < str1->yMax)) && d > -0.5 * space && d < space) { - n = str1->text->getLength(); - if (d > 0.1 * space) - str1->text->append(' '); - str1->text->append(str2->text); - str1->xRight = (double *) - grealloc(str1->xRight, - ((str1->text->getLength() + 15) & ~15) * sizeof(double)); - if (d > 0.1 * space) - str1->xRight[n++] = str2->xMin; - for (i = 0; i < str2->text->getLength(); ++i) - str1->xRight[n++] = str2->xRight[i]; - if (str2->xMax > str1->xMax) + n = str1->len + str2->len; + if ((addSpace = d > 0.1 * space)) { + ++n; + } + str1->size = (n + 15) & ~15; + str1->text = (Unicode *)grealloc(str1->text, + str1->size * sizeof(Unicode)); + str1->xRight = (double *)grealloc(str1->xRight, + str1->size * sizeof(double)); + if (addSpace) { + str1->text[str1->len] = 0x20; + str1->xRight[str1->len] = str2->xMin; + ++str1->len; + } + for (i = 0; i < str2->len; ++i) { + str1->text[str1->len] = str2->text[i]; + str1->xRight[str1->len] = str2->xRight[i]; + ++str1->len; + } + if (str2->xMax > str1->xMax) { str1->xMax = str2->xMax; - if (str2->yMax > str1->yMax) + } + if (str2->yMax > str1->yMax) { str1->yMax = str2->yMax; + } str1->yxNext = str2->yxNext; delete str2; } else { @@ -908,56 +285,75 @@ void TextPage::coalesce() { } } -GBool TextPage::findText(char *s, GBool top, GBool bottom, +GBool TextPage::findText(Unicode *s, int len, + GBool top, GBool bottom, double *xMin, double *yMin, double *xMax, double *yMax) { TextString *str; - char *p, *p1, *q; - int n, m, i; + Unicode *p; + Unicode u1, u2; + int m, i, j; double x; // scan all strings on page - n = strlen(s); for (str = yxStrings; str; str = str->yxNext) { // check: above top limit? if (!top && (str->yMax < *yMin || - (str->yMin < *yMin && str->xMax <= *xMin))) + (str->yMin < *yMin && str->xMax <= *xMin))) { continue; + } // check: below bottom limit? if (!bottom && (str->yMin > *yMax || - (str->yMax > *yMax && str->xMin >= *xMax))) + (str->yMax > *yMax && str->xMin >= *xMax))) { return gFalse; + } // search each position in this string - m = str->text->getLength(); - for (i = 0, p = str->text->getCString(); i <= m - n; ++i, ++p) { + m = str->len; + for (i = 0, p = str->text; i <= m - len; ++i, ++p) { // check: above top limit? if (!top && str->yMin < *yMin) { x = (((i == 0) ? str->xMin : str->xRight[i-1]) + str->xRight[i]) / 2; - if (x < *xMin) + if (x < *xMin) { continue; + } } // check: below bottom limit? if (!bottom && str->yMax > *yMax) { x = (((i == 0) ? str->xMin : str->xRight[i-1]) + str->xRight[i]) / 2; - if (x > *xMax) + if (x > *xMax) { return gFalse; + } } // compare the strings - for (p1 = p, q = s; *q; ++p1, ++q) { - if (tolower(*p1) != tolower(*q)) + for (j = 0; j < len; ++j) { +#if 1 //~ this lowercases Latin A-Z only -- this will eventually be + //~ extended to handle other character sets + if (p[j] >= 0x41 && p[j] <= 0x5a) { + u1 = p[j] + 0x20; + } else { + u1 = p[j]; + } + if (s[j] >= 0x41 && s[j] <= 0x5a) { + u2 = s[j] + 0x20; + } else { + u2 = s[j]; + } +#endif + if (u1 != u2) { break; + } } // found it - if (!*q) { + if (j == len) { *xMin = (i == 0) ? str->xMin : str->xRight[i-1]; - *xMax = str->xRight[i+n-1]; + *xMax = str->xRight[i + len - 1]; *yMin = str->yMin; *yMax = str->yMax; return gTrue; @@ -970,65 +366,108 @@ GBool TextPage::findText(char *s, GBool top, GBool bottom, GString *TextPage::getText(double xMin, double yMin, double xMax, double yMax) { GString *s; + UnicodeMap *uMap; + char space[8], eol[16], buf[8]; + int spaceLen, eolLen, n; TextString *str1; double x0, x1, x2, y; double xPrev, yPrev; - int i1, i2; + int i1, i2, i; GBool multiLine; s = new GString(); + if (!(uMap = globalParams->getTextEncoding())) { + return s; + } + spaceLen = uMap->mapUnicode(0x20, space, sizeof(space)); + eolLen = 0; // make gcc happy + switch (globalParams->getTextEOL()) { + case eolUnix: + eolLen = uMap->mapUnicode(0x0a, eol, sizeof(eol)); + break; + case eolDOS: + eolLen = uMap->mapUnicode(0x0d, eol, sizeof(eol)); + eolLen += uMap->mapUnicode(0x0a, eol + eolLen, sizeof(eol) - eolLen); + break; + case eolMac: + eolLen = uMap->mapUnicode(0x0d, eol, sizeof(eol)); + break; + } xPrev = yPrev = 0; multiLine = gFalse; for (str1 = yxStrings; str1; str1 = str1->yxNext) { y = 0.5 * (str1->yMin + str1->yMax); - if (y > yMax) + if (y > yMax) { break; + } if (y > yMin && str1->xMin < xMax && str1->xMax > xMin) { x0 = x1 = x2 = str1->xMin; - for (i1 = 0; i1 < str1->text->getLength(); ++i1) { + for (i1 = 0; i1 < str1->len; ++i1) { x0 = (i1==0) ? str1->xMin : str1->xRight[i1-1]; x1 = str1->xRight[i1]; - if (0.5 * (x0 + x1) >= xMin) + if (0.5 * (x0 + x1) >= xMin) { break; + } } - for (i2 = str1->text->getLength() - 1; i2 > i1; --i2) { + for (i2 = str1->len - 1; i2 > i1; --i2) { x1 = (i2==0) ? str1->xMin : str1->xRight[i2-1]; x2 = str1->xRight[i2]; - if (0.5 * (x1 + x2) <= xMax) + if (0.5 * (x1 + x2) <= xMax) { break; + } } if (s->getLength() > 0) { if (x0 < xPrev || str1->yMin > yPrev) { -#ifdef MACOS - s->append('\r'); -#else - s->append('\n'); -#endif + s->append(eol, eolLen); multiLine = gTrue; } else { - s->append(" "); + for (i = 0; i < 4; ++i) { + s->append(space, spaceLen); + } } } - s->append(str1->text->getCString() + i1, i2 - i1 + 1); + for (i = i1; i <= i2; ++i) { + n = uMap->mapUnicode(str1->text[i], buf, sizeof(buf)); + s->append(buf, n); + } xPrev = x2; yPrev = str1->yMax; } } if (multiLine) { -#ifdef MACOS - s->append('\r'); -#else - s->append('\n'); -#endif + s->append(eol, eolLen); } + uMap->decRefCnt(); return s; } -void TextPage::dump(FILE *f) { +void TextPage::dump(void *outputStream, TextOutputFunc outputFunc) { + UnicodeMap *uMap; + char space[8], eol[16], eop[8], buf[8]; + int spaceLen, eolLen, eopLen, n; TextString *str1, *str2, *str3; double yMin, yMax; - int col1, col2; - double d; + int col1, col2, d, i; + + // get the output encoding + if (!(uMap = globalParams->getTextEncoding())) { + return; + } + spaceLen = uMap->mapUnicode(0x20, space, sizeof(space)); + eolLen = 0; // make gcc happy + switch (globalParams->getTextEOL()) { + case eolUnix: + eolLen = uMap->mapUnicode(0x0a, eol, sizeof(eol)); + break; + case eolDOS: + eolLen = uMap->mapUnicode(0x0d, eol, sizeof(eol)); + eolLen += uMap->mapUnicode(0x0a, eol + eolLen, sizeof(eol) - eolLen); + break; + case eolMac: + eolLen = uMap->mapUnicode(0x0d, eol, sizeof(eol)); + break; + } + eopLen = uMap->mapUnicode(0x0c, eop, sizeof(eop)); // build x-major list xyStrings = NULL; @@ -1037,13 +476,15 @@ void TextPage::dump(FILE *f) { str3; str2 = str3, str3 = str3->xyNext) { if (str1->xMin < str3->xMin || - (str1->xMin == str3->xMin && str1->yMin < str3->yMin)) + (str1->xMin == str3->xMin && str1->yMin < str3->yMin)) { break; + } } - if (str2) + if (str2) { str2->xyNext = str1; - else + } else { xyStrings = str1; + } str1->xyNext = str3; } @@ -1052,13 +493,14 @@ void TextPage::dump(FILE *f) { col1 = 0; for (str2 = xyStrings; str2 != str1; str2 = str2->xyNext) { if (str1->xMin >= str2->xMax) { - col2 = str2->col + str2->text->getLength() + 4; - if (col2 > col1) + col2 = str2->col + str2->len + 4; + if (col2 > col1) { col1 = col2; + } } else if (str1->xMin > str2->xMin) { col2 = str2->col + (int)(((str1->xMin - str2->xMin) / (str2->xMax - str2->xMin)) * - str2->text->getLength()); + str2->len); if (col2 > col1) { col1 = col2; } @@ -1068,13 +510,17 @@ void TextPage::dump(FILE *f) { } #if 0 //~ for debugging - fprintf(f, "~~~~~~~~~~\n"); + fprintf((FILE *)outputStream, "~~~~~~~~~~\n"); for (str1 = yxStrings; str1; str1 = str1->yxNext) { - fprintf(f, "(%4d,%4d) - (%4d,%4d) [%3d] %s\n", - (int)str1->xMin, (int)str1->yMin, (int)str1->xMax, (int)str1->yMax, - str1->col, str1->text->getCString()); + fprintf((FILE *)outputStream, "(%4d,%4d) - (%4d,%4d) [%3d] '", + (int)str1->xMin, (int)str1->yMin, + (int)str1->xMax, (int)str1->yMax, str1->col); + for (i = 0; i < str1->len; ++i) { + fputc(str1->text[i] & 0xff, stdout); + } + printf("'\n"); } - fprintf(f, "~~~~~~~~~~\n"); + fprintf((FILE *)outputStream, "~~~~~~~~~~\n"); #endif // output @@ -1087,19 +533,24 @@ void TextPage::dump(FILE *f) { col1 = str1->col; } else { for (; col1 < str1->col; ++col1) { - fputc(' ', f); + (*outputFunc)(outputStream, space, spaceLen); } } // print the string - fputs(str1->text->getCString(), f); + for (i = 0; i < str1->len; ++i) { + if ((n = uMap->mapUnicode(str1->text[i], buf, sizeof(buf))) > 0) { + (*outputFunc)(outputStream, buf, n); + } + } // increment column - col1 += str1->text->getLength(); + col1 += str1->len; // update yMax for this line - if (str1->yMax > yMax) + if (str1->yMax > yMax) { yMax = str1->yMax; + } // if we've hit the end of the line... if (!(str1->yxNext && @@ -1108,7 +559,7 @@ void TextPage::dump(FILE *f) { str1->yxNext->xMin >= str1->xMax)) { // print a return - fputc('\n', f); + (*outputFunc)(outputStream, eol, eolLen); // print extra vertical space if necessary if (str1->yxNext) { @@ -1116,8 +567,9 @@ void TextPage::dump(FILE *f) { // find yMin for next line yMin = str1->yxNext->yMin; for (str2 = str1->yxNext; str2; str2 = str2->yxNext) { - if (str2->yMin < yMin) + if (str2->yMin < yMin) { yMin = str2->yMin; + } if (!(str2->yxNext && str2->yxNext->yMin < str2->yMax && str2->yxNext->xMin >= str2->xMax)) break; @@ -1125,11 +577,15 @@ void TextPage::dump(FILE *f) { // print the space d = (int)((yMin - yMax) / (str1->yMax - str1->yMin) + 0.5); + // various things (weird font matrices) can result in bogus + // values here, so do a sanity check if (rawOrder && d > 2) { d = 2; + } else if (!rawOrder && d > 5) { + d = 5; } for (; d > 0; --d) { - fputc('\n', f); + (*outputFunc)(outputStream, eol, eolLen); } } @@ -1138,6 +594,13 @@ void TextPage::dump(FILE *f) { yMax = str1->yxNext ? str1->yxNext->yMax : 0; } } + + // end of page + (*outputFunc)(outputStream, eol, eolLen); + (*outputFunc)(outputStream, eop, eopLen); + (*outputFunc)(outputStream, eol, eolLen); + + uMap->decRefCnt(); } void TextPage::clear() { @@ -1160,38 +623,52 @@ void TextPage::clear() { // TextOutputDev //------------------------------------------------------------------------ -TextOutputDev::TextOutputDev(char *fileName, TextOutputCharSet charSet, - GBool rawOrder) { +static void outputToFile(void *stream, char *text, int len) { + fwrite(text, 1, len, (FILE *)stream); +} + +TextOutputDev::TextOutputDev(char *fileName, GBool rawOrderA, GBool append) { text = NULL; - this->rawOrder = rawOrder; + rawOrder = rawOrderA; ok = gTrue; // open file needClose = gFalse; if (fileName) { if (!strcmp(fileName, "-")) { - f = stdout; - } else if ((f = fopen(fileName, "w"))) { + outputStream = stdout; + } else if ((outputStream = fopen(fileName, append ? "ab" : "wb"))) { needClose = gTrue; } else { error(-1, "Couldn't open text file '%s'", fileName); ok = gFalse; return; } + outputFunc = &outputToFile; } else { - f = NULL; + outputStream = NULL; } // set up text object - text = new TextPage(charSet, rawOrder); + text = new TextPage(rawOrder); +} + +TextOutputDev::TextOutputDev(TextOutputFunc func, void *stream, + GBool rawOrderA) { + outputFunc = func; + outputStream = stream; + needClose = gFalse; + rawOrder = rawOrderA; + text = new TextPage(rawOrder); + ok = gTrue; } TextOutputDev::~TextOutputDev() { if (needClose) { #ifdef MACOS - ICS_MapRefNumAndAssign((short)f->handle); + ICS_MapRefNumAndAssign((short)((FILE *)outputStream)->handle); #endif - fclose(f); + fclose((FILE *)outputStream); } if (text) { delete text; @@ -1204,50 +681,17 @@ void TextOutputDev::startPage(int pageNum, GfxState *state) { void TextOutputDev::endPage() { text->coalesce(); - if (f) { - text->dump(f); - fputc('\n', f); - fputs("\f\n", f); - fputc('\n', f); + if (outputStream) { + text->dump(outputStream, outputFunc); } } void TextOutputDev::updateFont(GfxState *state) { - GfxFont *font; - char *charName; - int c; - - // look for hex char codes in subsetted font - hexCodes = gFalse; - if ((font = state->getFont()) && !font->is16Bit()) { - for (c = 0; c < 256; ++c) { - if ((charName = font->getCharName(c))) { - if ((charName[0] == 'B' || charName[0] == 'C' || - charName[0] == 'G') && - strlen(charName) == 3 && - isxdigit(charName[1]) && isxdigit(charName[2]) && - ((charName[1] >= 'a' && charName[1] <= 'f') || - (charName[1] >= 'A' && charName[1] <= 'F') || - (charName[2] >= 'a' && charName[2] <= 'f') || - (charName[2] >= 'A' && charName[2] <= 'F'))) { - hexCodes = gTrue; - break; - } else if ((strlen(charName) == 2) && - isxdigit(charName[0]) && isxdigit(charName[1]) && - ((charName[0] >= 'a' && charName[0] <= 'f') || - (charName[0] >= 'A' && charName[0] <= 'F') || - (charName[1] >= 'a' && charName[1] <= 'f') || - (charName[1] >= 'A' && charName[1] <= 'F'))) { - hexCodes = gTrue; - break; - } - } - } - } + text->updateFont(state); } void TextOutputDev::beginString(GfxState *state, GString *s) { - text->beginString(state, s, hexCodes); + text->beginString(state); } void TextOutputDev::endString(GfxState *state) { @@ -1255,17 +699,15 @@ void TextOutputDev::endString(GfxState *state) { } void TextOutputDev::drawChar(GfxState *state, double x, double y, - double dx, double dy, Guchar c) { - text->addChar(state, x, y, dx, dy, c); -} - -void TextOutputDev::drawChar16(GfxState *state, double x, double y, - double dx, double dy, int c) { - text->addChar16(state, x, y, dx, dy, c, state->getFont()->getCharSet16()); + double dx, double dy, + double originX, double originY, + CharCode c, Unicode *u, int uLen) { + text->addChar(state, x, y, dx, dy, u, uLen); } -GBool TextOutputDev::findText(char *s, GBool top, GBool bottom, +GBool TextOutputDev::findText(Unicode *s, int len, + GBool top, GBool bottom, double *xMin, double *yMin, double *xMax, double *yMax) { - return text->findText(s, top, bottom, xMin, yMin, xMax, yMax); + return text->findText(s, len, top, bottom, xMin, yMin, xMax, yMax); } diff --git a/pdf/xpdf/TextOutputDev.h b/pdf/xpdf/TextOutputDev.h index a041e23b..daab3c4e 100644 --- a/pdf/xpdf/TextOutputDev.h +++ b/pdf/xpdf/TextOutputDev.h @@ -2,7 +2,7 @@ // // TextOutputDev.h // -// Copyright 1997 Derek B. Noonburg +// Copyright 1997-2002 Glyph & Cog, LLC // //======================================================================== @@ -23,12 +23,7 @@ class GString; //------------------------------------------------------------------------ -enum TextOutputCharSet { - textOutASCII7, - textOutLatin1, - textOutLatin2, - textOutLatin5 -}; +typedef void (*TextOutputFunc)(void *stream, char *text, int len); //------------------------------------------------------------------------ // TextString @@ -38,31 +33,26 @@ class TextString { public: // Constructor. - TextString(GfxState *state, GBool hexCodes1); + TextString(GfxState *state, double fontSize); // Destructor. ~TextString(); // Add a character to the string. void addChar(GfxState *state, double x, double y, - double dx, double dy, - Guchar c, TextOutputCharSet charSet); - - // Add a 16-bit character to the string. - void addChar16(GfxState *state, double x, double y, - double dx, double dy, - int c, GfxFontCharSet16 charSet); + double dx, double dy, Unicode u); private: double xMin, xMax; // bounding box x coordinates double yMin, yMax; // bounding box y coordinates int col; // starting column - GString *text; // the text + Unicode *text; // the text double *xRight; // right-hand x coord of each char + int len; // length of text and xRight + int size; // size of text and xRight arrays TextString *yxNext; // next string in y-major order TextString *xyNext; // next string in x-major order - GBool hexCodes; // subsetted font with hex char codes friend class TextPage; }; @@ -75,22 +65,20 @@ class TextPage { public: // Constructor. - TextPage(TextOutputCharSet charSet, GBool rawOrder); + TextPage(GBool rawOrderA); // Destructor. ~TextPage(); + // Update the current font. + void updateFont(GfxState *state); + // Begin a new string. - void beginString(GfxState *state, GString *s, GBool hex1); + void beginString(GfxState *state); // Add a character to the current string. void addChar(GfxState *state, double x, double y, - double dx, double dy, Guchar c); - - // Add a 16-bit character to the current string. - void addChar16(GfxState *state, double x, double y, - double dx, double dy, int c, - GfxFontCharSet16 charSet); + double dx, double dy, Unicode *u, int uLen); // End the current string, sorting it into the list of strings. void endString(); @@ -103,7 +91,8 @@ public: // stops looking at bottom of page; otherwise stops looking at // ,. If found, sets the text bounding rectange and // returns true; otherwise returns false. - GBool findText(char *s, GBool top, GBool bottom, + GBool findText(Unicode *s, int len, + GBool top, GBool bottom, double *xMin, double *yMin, double *xMax, double *yMax); @@ -112,17 +101,17 @@ public: double xMax, double yMax); // Dump contents of page to a file. - void dump(FILE *f); + void dump(void *outputStream, TextOutputFunc outputFunc); // Clear the page. void clear(); private: - TextOutputCharSet charSet; // character set GBool rawOrder; // keep strings in content stream order TextString *curStr; // currently active string + double fontSize; // current font size TextString *yxStrings; // strings in y-major order TextString *xyStrings; // strings in x-major order @@ -139,12 +128,13 @@ class TextOutputDev: public OutputDev { public: // Open a text output file. If is NULL, no file is - // written (this is useful, e.g., for searching text). Text is - // converted to the character set specified by . This - // should be set to textOutASCII7 for Japanese (EUC-JP) text. If + // written (this is useful, e.g., for searching text). If // is true, the text is kept in content stream order. - TextOutputDev(char *fileName, TextOutputCharSet charSet, - GBool rawOrder); + TextOutputDev(char *fileName, GBool rawOrderA, GBool append); + + // Create a TextOutputDev which will write to a generic stream. If + // is true, the text is kept in content stream order. + TextOutputDev(TextOutputFunc func, void *stream, GBool rawOrderA); // Destructor. virtual ~TextOutputDev(); @@ -161,6 +151,13 @@ public: // Does this device use drawChar() or drawString()? virtual GBool useDrawChar() { return gTrue; } + // Does this device use beginType3Char/endType3Char? Otherwise, + // text in Type 3 fonts will be drawn with drawChar/drawString. + virtual GBool interpretType3Chars() { return gFalse; } + + // Does this device need non-text content? + virtual GBool needNonText() { return gFalse; } + //----- initialization and control // Start a page. @@ -176,9 +173,9 @@ public: virtual void beginString(GfxState *state, GString *s); virtual void endString(GfxState *state); virtual void drawChar(GfxState *state, double x, double y, - double dx, double dy, Guchar c); - virtual void drawChar16(GfxState *state, double x, double y, - double dx, double dy, int c); + double dx, double dy, + double originX, double originY, + CharCode c, Unicode *u, int uLen); //----- special access @@ -187,17 +184,19 @@ public: // stops looking at bottom of page; otherwise stops looking at // ,. If found, sets the text bounding rectange and // returns true; otherwise returns false. - GBool findText(char *s, GBool top, GBool bottom, + GBool findText(Unicode *s, int len, + GBool top, GBool bottom, double *xMin, double *yMin, double *xMax, double *yMax); private: - FILE *f; // text file - GBool needClose; // need to close the file? + TextOutputFunc outputFunc; // output function + void *outputStream; // output stream + GBool needClose; // need to close the output file? + // (only if outputStream is a FILE*) TextPage *text; // text for the current page GBool rawOrder; // keep text in content stream order - GBool hexCodes; // subsetted font with hex char codes GBool ok; // set up ok? }; diff --git a/pdf/xpdf/UTF8.h b/pdf/xpdf/UTF8.h new file mode 100644 index 00000000..d707e2fc --- /dev/null +++ b/pdf/xpdf/UTF8.h @@ -0,0 +1,56 @@ +//======================================================================== +// +// UTF8.h +// +// Copyright 2001-2002 Glyph & Cog, LLC +// +//======================================================================== + +static int mapUTF8(Unicode u, char *buf, int bufSize) { + if (u <= 0x0000007f) { + if (bufSize < 1) { + return 0; + } + buf[0] = (char)u; + return 1; + } else if (u <= 0x000007ff) { + if (bufSize < 2) { + return 0; + } + buf[0] = (char)(0xc0 + (u >> 6)); + buf[1] = (char)(0x80 + (u & 0x3f)); + return 2; + } else if (u <= 0x0000ffff) { + if (bufSize < 3) { + return 0; + } + buf[0] = (char)(0xe0 + (u >> 12)); + buf[1] = (char)(0x80 + ((u >> 6) & 0x3f)); + buf[2] = (char)(0x80 + (u & 0x3f)); + return 3; + } else if (u <= 0x0010ffff) { + if (bufSize < 4) { + return 0; + } + buf[0] = (char)(0xf0 + (u >> 18)); + buf[1] = (char)(0x80 + ((u >> 12) & 0x3f)); + buf[2] = (char)(0x80 + ((u >> 6) & 0x3f)); + buf[3] = (char)(0x80 + (u & 0x3f)); + return 4; + } else { + return 0; + } +} + +static int mapUCS2(Unicode u, char *buf, int bufSize) { + if (u <= 0xffff) { + if (bufSize < 2) { + return 0; + } + buf[0] = (char)((u >> 8) & 0xff); + buf[1] = (char)(u & 0xff); + return 2; + } else { + return 0; + } +} diff --git a/pdf/xpdf/UnicodeMap.cc b/pdf/xpdf/UnicodeMap.cc new file mode 100644 index 00000000..75f23d2b --- /dev/null +++ b/pdf/xpdf/UnicodeMap.cc @@ -0,0 +1,260 @@ +//======================================================================== +// +// UnicodeMap.cc +// +// Copyright 2001-2002 Glyph & Cog, LLC +// +//======================================================================== + +#ifdef __GNUC__ +#pragma implementation +#endif + +#include +#include +#include +#include "gmem.h" +#include "gfile.h" +#include "GString.h" +#include "GList.h" +#include "Error.h" +#include "GlobalParams.h" +#include "UnicodeMap.h" + +//------------------------------------------------------------------------ + +#define maxExtCode 16 + +struct UnicodeMapExt { + Unicode u; // Unicode char + char code[maxExtCode]; + Guint nBytes; +}; + +//------------------------------------------------------------------------ + +UnicodeMap *UnicodeMap::parse(GString *encodingNameA) { + FILE *f; + UnicodeMap *map; + UnicodeMapRange *range; + UnicodeMapExt *eMap; + int size, eMapsSize; + char buf[256]; + int line, nBytes, i, x; + char *tok1, *tok2, *tok3; + + if (!(f = globalParams->getUnicodeMapFile(encodingNameA))) { + error(-1, "Couldn't find unicodeMap file for the '%s' encoding", + encodingNameA->getCString()); + return NULL; + } + + map = new UnicodeMap(encodingNameA->copy()); + + size = 8; + map->ranges = (UnicodeMapRange *)gmalloc(size * sizeof(UnicodeMapRange)); + eMapsSize = 0; + + line = 1; + while (getLine(buf, sizeof(buf), f)) { + if ((tok1 = strtok(buf, " \t\r\n")) && + (tok2 = strtok(NULL, " \t\r\n"))) { + if (!(tok3 = strtok(NULL, " \t\r\n"))) { + tok3 = tok2; + tok2 = tok1; + } + nBytes = strlen(tok3) / 2; + if (nBytes <= 4) { + if (map->len == size) { + size *= 2; + map->ranges = (UnicodeMapRange *) + grealloc(map->ranges, size * sizeof(UnicodeMapRange)); + } + range = &map->ranges[map->len]; + sscanf(tok1, "%x", &range->start); + sscanf(tok2, "%x", &range->end); + sscanf(tok3, "%x", &range->code); + range->nBytes = nBytes; + ++map->len; + } else if (tok2 == tok1) { + if (map->eMapsLen == eMapsSize) { + eMapsSize += 16; + map->eMaps = (UnicodeMapExt *) + grealloc(map->eMaps, eMapsSize * sizeof(UnicodeMapExt)); + } + eMap = &map->eMaps[map->eMapsLen]; + sscanf(tok1, "%x", &eMap->u); + for (i = 0; i < nBytes; ++i) { + sscanf(tok3 + i*2, "%2x", &x); + eMap->code[i] = (char)x; + } + eMap->nBytes = nBytes; + ++map->eMapsLen; + } else { + error(-1, "Bad line (%d) in unicodeMap file for the '%s' encoding", + line, encodingNameA->getCString()); + } + } else { + error(-1, "Bad line (%d) in unicodeMap file for the '%s' encoding", + line, encodingNameA->getCString()); + } + ++line; + } + + return map; +} + +UnicodeMap::UnicodeMap(GString *encodingNameA) { + encodingName = encodingNameA; + kind = unicodeMapUser; + ranges = NULL; + len = 0; + eMaps = NULL; + eMapsLen = 0; + refCnt = 1; +} + +UnicodeMap::UnicodeMap(char *encodingNameA, + UnicodeMapRange *rangesA, int lenA) { + encodingName = new GString(encodingNameA); + kind = unicodeMapResident; + ranges = rangesA; + len = lenA; + eMaps = NULL; + eMapsLen = 0; + refCnt = 1; +} + +UnicodeMap::UnicodeMap(char *encodingNameA, UnicodeMapFunc funcA) { + encodingName = new GString(encodingNameA); + kind = unicodeMapFunc; + func = funcA; + eMaps = NULL; + eMapsLen = 0; + refCnt = 1; +} + +UnicodeMap::~UnicodeMap() { + delete encodingName; + if (kind == unicodeMapUser && ranges) { + gfree(ranges); + } + if (eMaps) { + gfree(eMaps); + } +} + +void UnicodeMap::incRefCnt() { + ++refCnt; +} + +void UnicodeMap::decRefCnt() { + if (--refCnt == 0) { + delete this; + } +} + +GBool UnicodeMap::match(GString *encodingNameA) { + return !encodingName->cmp(encodingNameA); +} + +int UnicodeMap::mapUnicode(Unicode u, char *buf, int bufSize) { + int a, b, m, n, i, j; + Guint code; + + if (kind == unicodeMapFunc) { + return (*func)(u, buf, bufSize); + } + + a = 0; + b = len; + if (u < ranges[a].start) { + return 0; + } + // invariant: ranges[a].start <= u < ranges[b].start + while (b - a > 1) { + m = (a + b) / 2; + if (u >= ranges[m].start) { + a = m; + } else if (u < ranges[m].start) { + b = m; + } + } + if (u <= ranges[a].end) { + n = ranges[a].nBytes; + if (n > bufSize) { + return 0; + } + code = ranges[a].code + (u - ranges[a].start); + for (i = n - 1; i >= 0; --i) { + buf[i] = (char)(code & 0xff); + code >>= 8; + } + return n; + } + + for (i = 0; i < eMapsLen; ++i) { + if (eMaps[i].u == u) { + n = eMaps[i].nBytes; + for (j = 0; j < n; ++j) { + buf[j] = eMaps[i].code[j]; + } + return n; + } + } + + return 0; +} + +//------------------------------------------------------------------------ + +UnicodeMapCache::UnicodeMapCache() { + int i; + + for (i = 0; i < unicodeMapCacheSize; ++i) { + cache[i] = NULL; + } +} + +UnicodeMapCache::~UnicodeMapCache() { + int i; + + for (i = 0; i < unicodeMapCacheSize; ++i) { + if (cache[i]) { + cache[i]->decRefCnt(); + } + } +} + +UnicodeMap *UnicodeMapCache::getUnicodeMap(GString *encodingName) { + UnicodeMap *map; + int i, j; + + if (cache[0] && cache[0]->match(encodingName)) { + cache[0]->incRefCnt(); + return cache[0]; + } + for (i = 1; i < unicodeMapCacheSize; ++i) { + if (cache[i] && cache[i]->match(encodingName)) { + map = cache[i]; + for (j = i; j >= 1; --j) { + cache[j] = cache[j - 1]; + } + cache[0] = map; + map->incRefCnt(); + return map; + } + } + if ((map = UnicodeMap::parse(encodingName))) { + if (cache[unicodeMapCacheSize - 1]) { + cache[unicodeMapCacheSize - 1]->decRefCnt(); + } + for (j = unicodeMapCacheSize - 1; j >= 1; --j) { + cache[j] = cache[j - 1]; + } + cache[0] = map; + map->incRefCnt(); + return map; + } + return NULL; +} diff --git a/pdf/xpdf/UnicodeMap.h b/pdf/xpdf/UnicodeMap.h new file mode 100644 index 00000000..274c4472 --- /dev/null +++ b/pdf/xpdf/UnicodeMap.h @@ -0,0 +1,110 @@ +//======================================================================== +// +// UnicodeMap.h +// +// Mapping from Unicode to an encoding. +// +// Copyright 2001-2002 Glyph & Cog, LLC +// +//======================================================================== + +#ifndef UNICODEMAP_H +#define UNICODEMAP_H + +#ifdef __GNUC__ +#pragma interface +#endif + +#include "gtypes.h" +#include "CharTypes.h" + +class GString; + +//------------------------------------------------------------------------ + +enum UnicodeMapKind { + unicodeMapUser, // read from a file + unicodeMapResident, // static list of ranges + unicodeMapFunc // function pointer +}; + +typedef int (*UnicodeMapFunc)(Unicode u, char *buf, int bufSize); + +struct UnicodeMapRange { + Unicode start, end; // range of Unicode chars + Guint code, nBytes; // first output code +}; + +struct UnicodeMapExt; + +//------------------------------------------------------------------------ + +class UnicodeMap { +public: + + // Create the UnicodeMap specified by . Sets the + // initial reference count to 1. Returns NULL on failure. + static UnicodeMap *parse(GString *encodingNameA); + + // Create a resident UnicodeMap. + UnicodeMap(char *encodingNameA, + UnicodeMapRange *rangesA, int lenA); + + // Create a resident UnicodeMap that uses a function instead of a + // list of ranges. + UnicodeMap(char *encodingNameA, UnicodeMapFunc funcA); + + ~UnicodeMap(); + + void incRefCnt(); + void decRefCnt(); + + GString *getEncodingName() { return encodingName; } + + // Return true if this UnicodeMap matches the specified + // . + GBool match(GString *encodingNameA); + + // Map Unicode to the target encoding. Fills in with the + // output and returns the number of bytes used. Output will be + // truncated at bytes. No string terminator is written. + // Returns 0 if no mapping is found. + int mapUnicode(Unicode u, char *buf, int bufSize); + +private: + + UnicodeMap(GString *encodingNameA); + + GString *encodingName; + UnicodeMapKind kind; + union { + UnicodeMapRange *ranges; // (user, resident) + UnicodeMapFunc func; // (func) + }; + int len; // (user, resident) + UnicodeMapExt *eMaps; // (user) + int eMapsLen; // (user) + int refCnt; +}; + +//------------------------------------------------------------------------ + +#define unicodeMapCacheSize 4 + +class UnicodeMapCache { +public: + + UnicodeMapCache(); + ~UnicodeMapCache(); + + // Get the UnicodeMap for . Increments its reference + // count; there will be one reference for the cache plus one for the + // caller of this function. Returns NULL on failure. + UnicodeMap *getUnicodeMap(GString *encodingName); + +private: + + UnicodeMap *cache[unicodeMapCacheSize]; +}; + +#endif diff --git a/pdf/xpdf/UnicodeMapTables.h b/pdf/xpdf/UnicodeMapTables.h new file mode 100644 index 00000000..51dee98d --- /dev/null +++ b/pdf/xpdf/UnicodeMapTables.h @@ -0,0 +1,361 @@ +//======================================================================== +// +// UnicodeMapTables.h +// +// Copyright 2001-2002 Glyph & Cog, LLC +// +//======================================================================== + +static UnicodeMapRange latin1UnicodeMapRanges[] = { + { 0x000a, 0x000a, 0x0a, 1 }, + { 0x000c, 0x000d, 0x0c, 1 }, + { 0x0020, 0x007e, 0x20, 1 }, + { 0x00a0, 0x00a0, 0x20, 1 }, + { 0x00a1, 0x00ac, 0xa1, 1 }, + { 0x00ae, 0x00ff, 0xae, 1 }, + { 0x010c, 0x010c, 0x43, 1 }, + { 0x010d, 0x010d, 0x63, 1 }, + { 0x0131, 0x0131, 0x69, 1 }, + { 0x0141, 0x0141, 0x4c, 1 }, + { 0x0142, 0x0142, 0x6c, 1 }, + { 0x0152, 0x0152, 0x4f45, 2 }, + { 0x0153, 0x0153, 0x6f65, 2 }, + { 0x0160, 0x0160, 0x53, 1 }, + { 0x0161, 0x0161, 0x73, 1 }, + { 0x0178, 0x0178, 0x59, 1 }, + { 0x017d, 0x017d, 0x5a, 1 }, + { 0x017e, 0x017e, 0x7a, 1 }, + { 0x02c6, 0x02c6, 0x5e, 1 }, + { 0x02da, 0x02da, 0xb0, 1 }, + { 0x02dc, 0x02dc, 0x7e, 1 }, + { 0x2013, 0x2013, 0xad, 1 }, + { 0x2014, 0x2014, 0x2d2d, 2 }, + { 0x2018, 0x2018, 0x60, 1 }, + { 0x2019, 0x2019, 0x27, 1 }, + { 0x201a, 0x201a, 0x2c, 1 }, + { 0x201c, 0x201c, 0x22, 1 }, + { 0x201d, 0x201d, 0x22, 1 }, + { 0x201e, 0x201e, 0x2c2c, 2 }, + { 0x2022, 0x2022, 0xb7, 1 }, + { 0x2026, 0x2026, 0x2e2e2e, 3 }, + { 0x2039, 0x2039, 0x3c, 1 }, + { 0x203a, 0x203a, 0x3e, 1 }, + { 0x2044, 0x2044, 0x2f, 1 }, + { 0x2122, 0x2122, 0x544d, 2 }, + { 0x2212, 0x2212, 0x2d, 1 }, + { 0xf6f9, 0xf6f9, 0x4c, 1 }, + { 0xf6fa, 0xf6fa, 0x4f45, 2 }, + { 0xf6fc, 0xf6fc, 0xb0, 1 }, + { 0xf6fd, 0xf6fd, 0x53, 1 }, + { 0xf6fe, 0xf6fe, 0x7e, 1 }, + { 0xf6ff, 0xf6ff, 0x5a, 1 }, + { 0xf721, 0xf721, 0x21, 1 }, + { 0xf724, 0xf724, 0x24, 1 }, + { 0xf726, 0xf726, 0x26, 1 }, + { 0xf730, 0xf739, 0x30, 1 }, + { 0xf73f, 0xf73f, 0x3f, 1 }, + { 0xf761, 0xf77a, 0x41, 1 }, + { 0xf7a1, 0xf7a2, 0xa1, 1 }, + { 0xf7bf, 0xf7bf, 0xbf, 1 }, + { 0xf7e0, 0xf7f6, 0xc0, 1 }, + { 0xf7f8, 0xf7fe, 0xd8, 1 }, + { 0xf7ff, 0xf7ff, 0x59, 1 }, + { 0xfb00, 0xfb00, 0x6666, 2 }, + { 0xfb01, 0xfb01, 0x6669, 2 }, + { 0xfb02, 0xfb02, 0x666c, 2 }, + { 0xfb03, 0xfb03, 0x666669, 3 }, + { 0xfb04, 0xfb04, 0x66666c, 3 } +}; +#define latin1UnicodeMapLen (sizeof(latin1UnicodeMapRanges) / sizeof(UnicodeMapRange)) + +static UnicodeMapRange ascii7UnicodeMapRanges[] = { + { 0x000a, 0x000a, 0x0a, 1 }, + { 0x000c, 0x000d, 0x0c, 1 }, + { 0x0020, 0x005f, 0x20, 1 }, + { 0x0061, 0x007e, 0x61, 1 }, + { 0x00a6, 0x00a6, 0x7c, 1 }, + { 0x00a9, 0x00a9, 0x286329, 3 }, + { 0x00ae, 0x00ae, 0x285229, 3 }, + { 0x00b7, 0x00b7, 0x2a, 1 }, + { 0x00bc, 0x00bc, 0x312f34, 3 }, + { 0x00bd, 0x00bd, 0x312f32, 3 }, + { 0x00be, 0x00be, 0x332f34, 3 }, + { 0x00c0, 0x00c0, 0x41, 1 }, + { 0x00c1, 0x00c1, 0x41, 1 }, + { 0x00c2, 0x00c2, 0x41, 1 }, + { 0x00c3, 0x00c3, 0x41, 1 }, + { 0x00c4, 0x00c4, 0x41, 1 }, + { 0x00c5, 0x00c5, 0x41, 1 }, + { 0x00c6, 0x00c6, 0x4145, 2 }, + { 0x00c7, 0x00c7, 0x43, 1 }, + { 0x00c8, 0x00c8, 0x45, 1 }, + { 0x00c9, 0x00c9, 0x45, 1 }, + { 0x00ca, 0x00ca, 0x45, 1 }, + { 0x00cb, 0x00cb, 0x45, 1 }, + { 0x00cc, 0x00cc, 0x49, 1 }, + { 0x00cd, 0x00cd, 0x49, 1 }, + { 0x00ce, 0x00ce, 0x49, 1 }, + { 0x00cf, 0x00cf, 0x49, 1 }, + { 0x00d1, 0x00d2, 0x4e, 1 }, + { 0x00d3, 0x00d3, 0x4f, 1 }, + { 0x00d4, 0x00d4, 0x4f, 1 }, + { 0x00d5, 0x00d5, 0x4f, 1 }, + { 0x00d6, 0x00d6, 0x4f, 1 }, + { 0x00d7, 0x00d7, 0x78, 1 }, + { 0x00d8, 0x00d8, 0x4f, 1 }, + { 0x00d9, 0x00d9, 0x55, 1 }, + { 0x00da, 0x00da, 0x55, 1 }, + { 0x00db, 0x00db, 0x55, 1 }, + { 0x00dc, 0x00dc, 0x55, 1 }, + { 0x00dd, 0x00dd, 0x59, 1 }, + { 0x00e0, 0x00e0, 0x61, 1 }, + { 0x00e1, 0x00e1, 0x61, 1 }, + { 0x00e2, 0x00e2, 0x61, 1 }, + { 0x00e3, 0x00e3, 0x61, 1 }, + { 0x00e4, 0x00e4, 0x61, 1 }, + { 0x00e5, 0x00e5, 0x61, 1 }, + { 0x00e6, 0x00e6, 0x6165, 2 }, + { 0x00e7, 0x00e7, 0x63, 1 }, + { 0x00e8, 0x00e8, 0x65, 1 }, + { 0x00e9, 0x00e9, 0x65, 1 }, + { 0x00ea, 0x00ea, 0x65, 1 }, + { 0x00eb, 0x00eb, 0x65, 1 }, + { 0x00ec, 0x00ec, 0x69, 1 }, + { 0x00ed, 0x00ed, 0x69, 1 }, + { 0x00ee, 0x00ee, 0x69, 1 }, + { 0x00ef, 0x00ef, 0x69, 1 }, + { 0x00f1, 0x00f2, 0x6e, 1 }, + { 0x00f3, 0x00f3, 0x6f, 1 }, + { 0x00f4, 0x00f4, 0x6f, 1 }, + { 0x00f5, 0x00f5, 0x6f, 1 }, + { 0x00f6, 0x00f6, 0x6f, 1 }, + { 0x00f7, 0x00f7, 0x2f, 1 }, + { 0x00f8, 0x00f8, 0x6f, 1 }, + { 0x00f9, 0x00f9, 0x75, 1 }, + { 0x00fa, 0x00fa, 0x75, 1 }, + { 0x00fb, 0x00fb, 0x75, 1 }, + { 0x00fc, 0x00fc, 0x75, 1 }, + { 0x00fd, 0x00fd, 0x79, 1 }, + { 0x00ff, 0x00ff, 0x79, 1 }, + { 0x0131, 0x0131, 0x69, 1 }, + { 0x0141, 0x0141, 0x4c, 1 }, + { 0x0152, 0x0152, 0x4f45, 2 }, + { 0x0153, 0x0153, 0x6f65, 2 }, + { 0x0160, 0x0160, 0x53, 1 }, + { 0x0178, 0x0178, 0x59, 1 }, + { 0x017d, 0x017d, 0x5a, 1 }, + { 0x2013, 0x2013, 0x2d, 1 }, + { 0x2014, 0x2014, 0x2d2d, 2 }, + { 0x2018, 0x2018, 0x60, 1 }, + { 0x2019, 0x2019, 0x27, 1 }, + { 0x201c, 0x201c, 0x22, 1 }, + { 0x201d, 0x201d, 0x22, 1 }, + { 0x2022, 0x2022, 0x2a, 1 }, + { 0x2026, 0x2026, 0x2e2e2e, 3 }, + { 0x2122, 0x2122, 0x544d, 2 }, + { 0x2212, 0x2212, 0x2d, 1 }, + { 0xf6f9, 0xf6f9, 0x4c, 1 }, + { 0xf6fa, 0xf6fa, 0x4f45, 2 }, + { 0xf6fd, 0xf6fd, 0x53, 1 }, + { 0xf6fe, 0xf6fe, 0x7e, 1 }, + { 0xf6ff, 0xf6ff, 0x5a, 1 }, + { 0xf721, 0xf721, 0x21, 1 }, + { 0xf724, 0xf724, 0x24, 1 }, + { 0xf726, 0xf726, 0x26, 1 }, + { 0xf730, 0xf739, 0x30, 1 }, + { 0xf73f, 0xf73f, 0x3f, 1 }, + { 0xf761, 0xf77a, 0x41, 1 }, + { 0xf7e0, 0xf7e0, 0x41, 1 }, + { 0xf7e1, 0xf7e1, 0x41, 1 }, + { 0xf7e2, 0xf7e2, 0x41, 1 }, + { 0xf7e3, 0xf7e3, 0x41, 1 }, + { 0xf7e4, 0xf7e4, 0x41, 1 }, + { 0xf7e5, 0xf7e5, 0x41, 1 }, + { 0xf7e6, 0xf7e6, 0x4145, 2 }, + { 0xf7e7, 0xf7e7, 0x43, 1 }, + { 0xf7e8, 0xf7e8, 0x45, 1 }, + { 0xf7e9, 0xf7e9, 0x45, 1 }, + { 0xf7ea, 0xf7ea, 0x45, 1 }, + { 0xf7eb, 0xf7eb, 0x45, 1 }, + { 0xf7ec, 0xf7ec, 0x49, 1 }, + { 0xf7ed, 0xf7ed, 0x49, 1 }, + { 0xf7ee, 0xf7ee, 0x49, 1 }, + { 0xf7ef, 0xf7ef, 0x49, 1 }, + { 0xf7f1, 0xf7f2, 0x4e, 1 }, + { 0xf7f3, 0xf7f3, 0x4f, 1 }, + { 0xf7f4, 0xf7f4, 0x4f, 1 }, + { 0xf7f5, 0xf7f5, 0x4f, 1 }, + { 0xf7f6, 0xf7f6, 0x4f, 1 }, + { 0xf7f8, 0xf7f8, 0x4f, 1 }, + { 0xf7f9, 0xf7f9, 0x55, 1 }, + { 0xf7fa, 0xf7fa, 0x55, 1 }, + { 0xf7fb, 0xf7fb, 0x55, 1 }, + { 0xf7fc, 0xf7fc, 0x55, 1 }, + { 0xf7fd, 0xf7fd, 0x59, 1 }, + { 0xf7ff, 0xf7ff, 0x59, 1 }, + { 0xfb00, 0xfb00, 0x6666, 2 }, + { 0xfb01, 0xfb01, 0x6669, 2 }, + { 0xfb02, 0xfb02, 0x666c, 2 }, + { 0xfb03, 0xfb03, 0x666669, 3 }, + { 0xfb04, 0xfb04, 0x66666c, 3 } +}; +#define ascii7UnicodeMapLen (sizeof(ascii7UnicodeMapRanges) / sizeof(UnicodeMapRange)) + +static UnicodeMapRange symbolUnicodeMapRanges[] = { + { 0x0020, 0x0021, 0x20, 1 }, + { 0x0023, 0x0023, 0x23, 1 }, + { 0x0025, 0x0026, 0x25, 1 }, + { 0x0028, 0x0029, 0x28, 1 }, + { 0x002b, 0x002c, 0x2b, 1 }, + { 0x002e, 0x003f, 0x2e, 1 }, + { 0x005b, 0x005b, 0x5b, 1 }, + { 0x005d, 0x005d, 0x5d, 1 }, + { 0x005f, 0x005f, 0x5f, 1 }, + { 0x007b, 0x007d, 0x7b, 1 }, + { 0x00ac, 0x00ac, 0xd8, 1 }, + { 0x00b0, 0x00b1, 0xb0, 1 }, + { 0x00b5, 0x00b5, 0x6d, 1 }, + { 0x00d7, 0x00d7, 0xb4, 1 }, + { 0x00f7, 0x00f7, 0xb8, 1 }, + { 0x0192, 0x0192, 0xa6, 1 }, + { 0x0391, 0x0392, 0x41, 1 }, + { 0x0393, 0x0393, 0x47, 1 }, + { 0x0395, 0x0395, 0x45, 1 }, + { 0x0396, 0x0396, 0x5a, 1 }, + { 0x0397, 0x0397, 0x48, 1 }, + { 0x0398, 0x0398, 0x51, 1 }, + { 0x0399, 0x0399, 0x49, 1 }, + { 0x039a, 0x039d, 0x4b, 1 }, + { 0x039e, 0x039e, 0x58, 1 }, + { 0x039f, 0x03a0, 0x4f, 1 }, + { 0x03a1, 0x03a1, 0x52, 1 }, + { 0x03a3, 0x03a5, 0x53, 1 }, + { 0x03a6, 0x03a6, 0x46, 1 }, + { 0x03a7, 0x03a7, 0x43, 1 }, + { 0x03a8, 0x03a8, 0x59, 1 }, + { 0x03b1, 0x03b2, 0x61, 1 }, + { 0x03b3, 0x03b3, 0x67, 1 }, + { 0x03b4, 0x03b5, 0x64, 1 }, + { 0x03b6, 0x03b6, 0x7a, 1 }, + { 0x03b7, 0x03b7, 0x68, 1 }, + { 0x03b8, 0x03b8, 0x71, 1 }, + { 0x03b9, 0x03b9, 0x69, 1 }, + { 0x03ba, 0x03bb, 0x6b, 1 }, + { 0x03bd, 0x03bd, 0x6e, 1 }, + { 0x03be, 0x03be, 0x78, 1 }, + { 0x03bf, 0x03c0, 0x6f, 1 }, + { 0x03c1, 0x03c1, 0x72, 1 }, + { 0x03c2, 0x03c2, 0x56, 1 }, + { 0x03c3, 0x03c5, 0x73, 1 }, + { 0x03c6, 0x03c6, 0x66, 1 }, + { 0x03c7, 0x03c7, 0x63, 1 }, + { 0x03c8, 0x03c8, 0x79, 1 }, + { 0x03c9, 0x03c9, 0x77, 1 }, + { 0x03d1, 0x03d1, 0x4a, 1 }, + { 0x03d2, 0x03d2, 0xa1, 1 }, + { 0x03d5, 0x03d5, 0x6a, 1 }, + { 0x03d6, 0x03d6, 0x76, 1 }, + { 0x2022, 0x2022, 0xb7, 1 }, + { 0x2026, 0x2026, 0xbc, 1 }, + { 0x2032, 0x2032, 0xa2, 1 }, + { 0x2033, 0x2033, 0xb2, 1 }, + { 0x2044, 0x2044, 0xa4, 1 }, + { 0x2111, 0x2111, 0xc1, 1 }, + { 0x2118, 0x2118, 0xc3, 1 }, + { 0x211c, 0x211c, 0xc2, 1 }, + { 0x2126, 0x2126, 0x57, 1 }, + { 0x2135, 0x2135, 0xc0, 1 }, + { 0x2190, 0x2193, 0xac, 1 }, + { 0x2194, 0x2194, 0xab, 1 }, + { 0x21b5, 0x21b5, 0xbf, 1 }, + { 0x21d0, 0x21d3, 0xdc, 1 }, + { 0x21d4, 0x21d4, 0xdb, 1 }, + { 0x2200, 0x2200, 0x22, 1 }, + { 0x2202, 0x2202, 0xb6, 1 }, + { 0x2203, 0x2203, 0x24, 1 }, + { 0x2205, 0x2205, 0xc6, 1 }, + { 0x2206, 0x2206, 0x44, 1 }, + { 0x2207, 0x2207, 0xd1, 1 }, + { 0x2208, 0x2209, 0xce, 1 }, + { 0x220b, 0x220b, 0x27, 1 }, + { 0x220f, 0x220f, 0xd5, 1 }, + { 0x2211, 0x2211, 0xe5, 1 }, + { 0x2212, 0x2212, 0x2d, 1 }, + { 0x2217, 0x2217, 0x2a, 1 }, + { 0x221a, 0x221a, 0xd6, 1 }, + { 0x221d, 0x221d, 0xb5, 1 }, + { 0x221e, 0x221e, 0xa5, 1 }, + { 0x2220, 0x2220, 0xd0, 1 }, + { 0x2227, 0x2228, 0xd9, 1 }, + { 0x2229, 0x222a, 0xc7, 1 }, + { 0x222b, 0x222b, 0xf2, 1 }, + { 0x2234, 0x2234, 0x5c, 1 }, + { 0x223c, 0x223c, 0x7e, 1 }, + { 0x2245, 0x2245, 0x40, 1 }, + { 0x2248, 0x2248, 0xbb, 1 }, + { 0x2260, 0x2261, 0xb9, 1 }, + { 0x2264, 0x2264, 0xa3, 1 }, + { 0x2265, 0x2265, 0xb3, 1 }, + { 0x2282, 0x2282, 0xcc, 1 }, + { 0x2283, 0x2283, 0xc9, 1 }, + { 0x2284, 0x2284, 0xcb, 1 }, + { 0x2286, 0x2286, 0xcd, 1 }, + { 0x2287, 0x2287, 0xca, 1 }, + { 0x2295, 0x2295, 0xc5, 1 }, + { 0x2297, 0x2297, 0xc4, 1 }, + { 0x22a5, 0x22a5, 0x5e, 1 }, + { 0x22c5, 0x22c5, 0xd7, 1 }, + { 0x2320, 0x2320, 0xf3, 1 }, + { 0x2321, 0x2321, 0xf5, 1 }, + { 0x2329, 0x2329, 0xe1, 1 }, + { 0x232a, 0x232a, 0xf1, 1 }, + { 0x25ca, 0x25ca, 0xe0, 1 }, + { 0x2660, 0x2660, 0xaa, 1 }, + { 0x2663, 0x2663, 0xa7, 1 }, + { 0x2665, 0x2665, 0xa9, 1 }, + { 0x2666, 0x2666, 0xa8, 1 }, + { 0xf6d9, 0xf6d9, 0xd3, 1 }, + { 0xf6da, 0xf6da, 0xd2, 1 }, + { 0xf6db, 0xf6db, 0xd4, 1 }, + { 0xf8e5, 0xf8e5, 0x60, 1 }, + { 0xf8e6, 0xf8e7, 0xbd, 1 }, + { 0xf8e8, 0xf8ea, 0xe2, 1 }, + { 0xf8eb, 0xf8f4, 0xe6, 1 }, + { 0xf8f5, 0xf8f5, 0xf4, 1 }, + { 0xf8f6, 0xf8fe, 0xf6, 1 } +}; +#define symbolUnicodeMapLen (sizeof(symbolUnicodeMapRanges) / sizeof(UnicodeMapRange)) + +static UnicodeMapRange zapfDingbatsUnicodeMapRanges[] = { + { 0x0020, 0x0020, 0x20, 1 }, + { 0x2192, 0x2192, 0xd5, 1 }, + { 0x2194, 0x2195, 0xd6, 1 }, + { 0x2460, 0x2469, 0xac, 1 }, + { 0x25a0, 0x25a0, 0x6e, 1 }, + { 0x25b2, 0x25b2, 0x73, 1 }, + { 0x25bc, 0x25bc, 0x74, 1 }, + { 0x25c6, 0x25c6, 0x75, 1 }, + { 0x25cf, 0x25cf, 0x6c, 1 }, + { 0x25d7, 0x25d7, 0x77, 1 }, + { 0x2605, 0x2605, 0x48, 1 }, + { 0x260e, 0x260e, 0x25, 1 }, + { 0x261b, 0x261b, 0x2a, 1 }, + { 0x261e, 0x261e, 0x2b, 1 }, + { 0x2660, 0x2660, 0xab, 1 }, + { 0x2663, 0x2663, 0xa8, 1 }, + { 0x2665, 0x2665, 0xaa, 1 }, + { 0x2666, 0x2666, 0xa9, 1 }, + { 0x2701, 0x2704, 0x21, 1 }, + { 0x2706, 0x2709, 0x26, 1 }, + { 0x270c, 0x2727, 0x2c, 1 }, + { 0x2729, 0x274b, 0x49, 1 }, + { 0x274d, 0x274d, 0x6d, 1 }, + { 0x274f, 0x2752, 0x6f, 1 }, + { 0x2756, 0x2756, 0x76, 1 }, + { 0x2758, 0x275e, 0x78, 1 }, + { 0x2761, 0x2767, 0xa1, 1 }, + { 0x2776, 0x2794, 0xb6, 1 }, + { 0x2798, 0x27af, 0xd8, 1 }, + { 0x27b1, 0x27be, 0xf1, 1 } +}; +#define zapfDingbatsUnicodeMapLen (sizeof(zapfDingbatsUnicodeMapRanges) / sizeof(UnicodeMapRange)) diff --git a/pdf/xpdf/XOutputDev.cc b/pdf/xpdf/XOutputDev.cc index 0913ed35..6f207d8e 100644 --- a/pdf/xpdf/XOutputDev.cc +++ b/pdf/xpdf/XOutputDev.cc @@ -2,7 +2,7 @@ // // XOutputDev.cc // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -10,6 +10,7 @@ #pragma implementation #endif +#include #include #include #include @@ -20,26 +21,28 @@ #include "gmem.h" #include "gfile.h" #include "GString.h" +#include "GList.h" #include "Object.h" #include "Stream.h" #include "Link.h" #include "GfxState.h" #include "GfxFont.h" +#include "UnicodeMap.h" +#include "CharCodeToUnicode.h" #include "FontFile.h" -#include "FontEncoding.h" #include "Error.h" -#include "Params.h" #include "TextOutputDev.h" #include "XOutputDev.h" #if HAVE_T1LIB_H #include "T1Font.h" #endif -#if HAVE_FREETYPE_FREETYPE_H | HAVE_FREETYPE_H +#if FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) +#include "FTFont.h" +#endif +#if !FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) #include "TTFont.h" #endif -#include "XOutputFontInfo.h" - #ifdef VMS #if (__VMS_VER < 70000000) extern "C" int unlink(char *filename); @@ -63,518 +66,80 @@ typedef char *XPointer; #define maxCurveSplits 6 // max number of splits when recursively // drawing Bezier curves -//------------------------------------------------------------------------ -// Parameters -//------------------------------------------------------------------------ - -GBool installCmap = gFalse; - -int rgbCubeSize = defaultRGBCube; - -#if HAVE_T1LIB_H -GString *t1libControl = NULL; -#endif - -#if HAVE_FREETYPE_FREETYPE_H | HAVE_FREETYPE_H -GString *freeTypeControl = NULL; -#endif - -GString *t1Courier = NULL; -GString *t1CourierBold = NULL; -GString *t1CourierBoldOblique = NULL; -GString *t1CourierOblique = NULL; -GString *t1Helvetica = NULL; -GString *t1HelveticaBold = NULL; -GString *t1HelveticaBoldOblique = NULL; -GString *t1HelveticaOblique = NULL; -GString *t1Symbol = NULL; -GString *t1TimesBold = NULL; -GString *t1TimesBoldItalic = NULL; -GString *t1TimesItalic = NULL; -GString *t1TimesRoman = NULL; -GString *t1ZapfDingbats = NULL; - -GBool useEUCJP = gFalse; -#if JAPANESE_SUPPORT -GString *japan12Font = NULL; -#endif -#if CHINESE_GB_SUPPORT -GString *gb12Font = NULL; -#endif -#if CHINESE_CNS_SUPPORT -GString *cns13Font = NULL; -#endif - -//------------------------------------------------------------------------ -// Font map -//------------------------------------------------------------------------ - -struct FontMapEntry { - char *pdfFont; - char *xFont; - GString **t1Font; - FontEncoding *encoding; -}; - -static FontMapEntry fontMap[] = { - {"Courier", "-*-courier-medium-r-normal-*-%s-*-*-*-*-*-iso8859-1", &t1Courier, &isoLatin1Encoding}, - {"Courier-Bold", "-*-courier-bold-r-normal-*-%s-*-*-*-*-*-iso8859-1", &t1CourierBold, &isoLatin1Encoding}, - {"Courier-BoldOblique", "-*-courier-bold-o-normal-*-%s-*-*-*-*-*-iso8859-1", &t1CourierBoldOblique, &isoLatin1Encoding}, - {"Courier-Oblique", "-*-courier-medium-o-normal-*-%s-*-*-*-*-*-iso8859-1", &t1CourierOblique, &isoLatin1Encoding}, - {"Helvetica", "-*-helvetica-medium-r-normal-*-%s-*-*-*-*-*-iso8859-1", &t1Helvetica, &isoLatin1Encoding}, - {"Helvetica-Bold", "-*-helvetica-bold-r-normal-*-%s-*-*-*-*-*-iso8859-1", &t1HelveticaBold, &isoLatin1Encoding}, - {"Helvetica-BoldOblique", "-*-helvetica-bold-o-normal-*-%s-*-*-*-*-*-iso8859-1", &t1HelveticaBoldOblique, &isoLatin1Encoding}, - {"Helvetica-Oblique", "-*-helvetica-medium-o-normal-*-%s-*-*-*-*-*-iso8859-1", &t1HelveticaOblique, &isoLatin1Encoding}, - {"Symbol", "-*-symbol-medium-r-normal-*-%s-*-*-*-*-*-adobe-fontspecific", &t1Symbol, &symbolEncoding}, - {"Times-Bold", "-*-times-bold-r-normal-*-%s-*-*-*-*-*-iso8859-1", &t1TimesBold, &isoLatin1Encoding}, - {"Times-BoldItalic", "-*-times-bold-i-normal-*-%s-*-*-*-*-*-iso8859-1", &t1TimesBoldItalic, &isoLatin1Encoding}, - {"Times-Italic", "-*-times-medium-i-normal-*-%s-*-*-*-*-*-iso8859-1", &t1TimesItalic, &isoLatin1Encoding}, - {"Times-Roman", "-*-times-medium-r-normal-*-%s-*-*-*-*-*-iso8859-1", &t1TimesRoman, &isoLatin1Encoding}, - {"ZapfDingbats", "-*-zapfdingbats-medium-r-normal-*-%s-*-*-*-*-*-*-*", &t1ZapfDingbats, &zapfDingbatsEncoding}, - {NULL} -}; - -static FontMapEntry *userFontMap; - //------------------------------------------------------------------------ // Font substitutions //------------------------------------------------------------------------ -struct FontSubst { - char *xFont; - GString **t1Font; +struct XOutFontSubst { + char *name; double mWidth; }; // index: {symbolic:12, fixed:8, serif:4, sans-serif:0} + bold*2 + italic -static FontSubst fontSubst[16] = { - {"-*-helvetica-medium-r-normal-*-%s-*-*-*-*-*-iso8859-1", &t1Helvetica, 0.833}, - {"-*-helvetica-medium-o-normal-*-%s-*-*-*-*-*-iso8859-1", &t1HelveticaOblique, 0.833}, - {"-*-helvetica-bold-r-normal-*-%s-*-*-*-*-*-iso8859-1", &t1HelveticaBold, 0.889}, - {"-*-helvetica-bold-o-normal-*-%s-*-*-*-*-*-iso8859-1", &t1HelveticaBoldOblique, 0.889}, - {"-*-times-medium-r-normal-*-%s-*-*-*-*-*-iso8859-1", &t1TimesRoman, 0.788}, - {"-*-times-medium-i-normal-*-%s-*-*-*-*-*-iso8859-1", &t1TimesItalic, 0.722}, - {"-*-times-bold-r-normal-*-%s-*-*-*-*-*-iso8859-1", &t1TimesBold, 0.833}, - {"-*-times-bold-i-normal-*-%s-*-*-*-*-*-iso8859-1", &t1TimesBoldItalic, 0.778}, - {"-*-courier-medium-r-normal-*-%s-*-*-*-*-*-iso8859-1", &t1Courier, 0.600}, - {"-*-courier-medium-o-normal-*-%s-*-*-*-*-*-iso8859-1", &t1CourierOblique, 0.600}, - {"-*-courier-bold-r-normal-*-%s-*-*-*-*-*-iso8859-1", &t1CourierBold, 0.600}, - {"-*-courier-bold-o-normal-*-%s-*-*-*-*-*-iso8859-1", &t1CourierBoldOblique, 0.600}, - {"-*-symbol-medium-r-normal-*-%s-*-*-*-*-*-adobe-fontspecific", &t1Symbol, 0.576}, - {"-*-symbol-medium-r-normal-*-%s-*-*-*-*-*-adobe-fontspecific", &t1Symbol, 0.576}, - {"-*-symbol-medium-r-normal-*-%s-*-*-*-*-*-adobe-fontspecific", &t1Symbol, 0.576}, - {"-*-symbol-medium-r-normal-*-%s-*-*-*-*-*-adobe-fontspecific", &t1Symbol, 0.576} -}; - -//------------------------------------------------------------------------ -// 16-bit fonts -//------------------------------------------------------------------------ - -#if JAPANESE_SUPPORT - -static char *japan12DefFont = - "-*-fixed-medium-r-normal-*-%s-*-*-*-*-*-jisx0208.1983-0"; - -// CID 0 .. 96 -static Gushort japan12Map[96] = { - 0x2121, 0x2121, 0x212a, 0x2149, 0x2174, 0x2170, 0x2173, 0x2175, // 00 .. 07 - 0x2147, 0x214a, 0x214b, 0x2176, 0x215c, 0x2124, 0x213e, 0x2123, // 08 .. 0f - 0x213f, 0x2330, 0x2331, 0x2332, 0x2333, 0x2334, 0x2335, 0x2336, // 10 .. 17 - 0x2337, 0x2338, 0x2339, 0x2127, 0x2128, 0x2163, 0x2161, 0x2164, // 18 .. 1f - 0x2129, 0x2177, 0x2341, 0x2342, 0x2343, 0x2344, 0x2345, 0x2346, // 20 .. 27 - 0x2347, 0x2348, 0x2349, 0x234a, 0x234b, 0x234c, 0x234d, 0x234e, // 28 .. 2f - 0x234f, 0x2350, 0x2351, 0x2352, 0x2353, 0x2354, 0x2355, 0x2356, // 30 .. 37 - 0x2357, 0x2358, 0x2359, 0x235a, 0x214e, 0x216f, 0x214f, 0x2130, // 38 .. 3f - 0x2132, 0x2146, 0x2361, 0x2362, 0x2363, 0x2364, 0x2365, 0x2366, // 40 .. 47 - 0x2367, 0x2368, 0x2369, 0x236a, 0x236b, 0x236c, 0x236d, 0x236e, // 48 .. 4f - 0x236f, 0x2370, 0x2371, 0x2372, 0x2373, 0x2374, 0x2375, 0x2376, // 50 .. 57 - 0x2377, 0x2378, 0x2379, 0x237a, 0x2150, 0x2143, 0x2151, 0x2141 // 58 .. 5f -}; - -// CID 325 .. 421 -static Gushort japan12KanaMap1[97] = { - 0x2131, 0x2121, 0x2123, 0x2156, 0x2157, 0x2122, 0x2126, 0x2572, - 0x2521, 0x2523, 0x2525, 0x2527, 0x2529, 0x2563, 0x2565, 0x2567, - 0x2543, 0x213c, 0x2522, 0x2524, 0x2526, 0x2528, 0x252a, 0x252b, - 0x252d, 0x252f, 0x2531, 0x2533, 0x2535, 0x2537, 0x2539, 0x253b, - 0x253d, 0x253f, 0x2541, 0x2544, 0x2546, 0x2548, 0x254a, 0x254b, - 0x254c, 0x254d, 0x254e, 0x254f, 0x2552, 0x2555, 0x2558, 0x255b, - 0x255e, 0x255f, 0x2560, 0x2561, 0x2562, 0x2564, 0x2566, 0x2568, - 0x2569, 0x256a, 0x256b, 0x256c, 0x256d, 0x256f, 0x2573, 0x212b, - 0x212c, 0x212e, 0x2570, 0x2571, 0x256e, 0x2575, 0x2576, 0x2574, - 0x252c, 0x252e, 0x2530, 0x2532, 0x2534, 0x2536, 0x2538, 0x253a, - 0x253c, 0x253e, 0x2540, 0x2542, 0x2545, 0x2547, 0x2549, 0x2550, - 0x2551, 0x2553, 0x2554, 0x2556, 0x2557, 0x2559, 0x255a, 0x255c, - 0x255d +static XOutFontSubst xOutSubstFonts[16] = { + {"Helvetica", 0.833}, + {"Helvetica-Oblique", 0.833}, + {"Helvetica-Bold", 0.889}, + {"Helvetica-BoldOblique", 0.889}, + {"Times-Roman", 0.788}, + {"Times-Italic", 0.722}, + {"Times-Bold", 0.833}, + {"Times-BoldItalic", 0.778}, + {"Courier", 0.600}, + {"Courier-Oblique", 0.600}, + {"Courier-Bold", 0.600}, + {"Courier-BoldOblique", 0.600}, + {"Symbol", 0.576}, + {"Symbol", 0.576}, + {"Symbol", 0.576}, + {"Symbol", 0.576} }; -// CID 501 .. 598 -static Gushort japan12KanaMap2[98] = { - 0x212d, 0x212f, 0x216d, 0x214c, 0x214d, 0x2152, 0x2153, 0x2154, - 0x2155, 0x2158, 0x2159, 0x215a, 0x215b, 0x213d, 0x2121, 0x2472, - 0x2421, 0x2423, 0x2425, 0x2427, 0x2429, 0x2463, 0x2465, 0x2467, - 0x2443, 0x2422, 0x2424, 0x2426, 0x2428, 0x242a, 0x242b, 0x242d, - 0x242f, 0x2431, 0x2433, 0x2435, 0x2437, 0x2439, 0x243b, 0x243d, - 0x243f, 0x2441, 0x2444, 0x2446, 0x2448, 0x244a, 0x244b, 0x244c, - 0x244d, 0x244e, 0x244f, 0x2452, 0x2455, 0x2458, 0x245b, 0x245e, - 0x245f, 0x2460, 0x2461, 0x2462, 0x2464, 0x2466, 0x2468, 0x2469, - 0x246a, 0x246b, 0x246c, 0x246d, 0x246f, 0x2473, 0x2470, 0x2471, - 0x246e, 0x242c, 0x242e, 0x2430, 0x2432, 0x2434, 0x2436, 0x2438, - 0x243a, 0x243c, 0x243e, 0x2440, 0x2442, 0x2445, 0x2447, 0x2449, - 0x2450, 0x2451, 0x2453, 0x2454, 0x2456, 0x2457, 0x2459, 0x245a, - 0x245c, 0x245d -}; - -static char *japan12Roman[10] = { - "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X" -}; - -static char *japan12Abbrev1[6] = { - "mm", "cm", "km", "mg", "kg", "cc" -}; - -#endif // JAPANESE_SUPPORT - -#if CHINESE_GB_SUPPORT - -static char *gb12DefFont = - "-*-fangsong ti-medium-r-normal-*-%s-*-*-*-*-*-gb2312.1980-0"; - -static Gushort gb12Map[940] = { - // 0 - 95 - 0x0000, 0x2121, 0x2321, 0x2322, 0x2323, 0x2167, 0x2325, 0x2326, - 0x2327, 0x2328, 0x2329, 0x232a, 0x232b, 0x232c, 0x232d, 0x232e, - 0x232f, 0x2330, 0x2331, 0x2332, 0x2333, 0x2334, 0x2335, 0x2336, - 0x2337, 0x2338, 0x2339, 0x233a, 0x233b, 0x233c, 0x233d, 0x233e, - 0x233f, 0x2340, 0x2341, 0x2342, 0x2343, 0x2344, 0x2345, 0x2346, - 0x2347, 0x2348, 0x2349, 0x234a, 0x234b, 0x234c, 0x234d, 0x234e, - 0x234f, 0x2350, 0x2351, 0x2352, 0x2353, 0x2354, 0x2355, 0x2356, - 0x2357, 0x2358, 0x2359, 0x235a, 0x235b, 0x235c, 0x235d, 0x235e, - 0x235f, 0x2360, 0x2361, 0x2362, 0x2363, 0x2364, 0x2365, 0x2366, - 0x2367, 0x2368, 0x2369, 0x236a, 0x236b, 0x236c, 0x236d, 0x236e, - 0x236f, 0x2370, 0x2371, 0x2372, 0x2373, 0x2374, 0x2375, 0x2376, - 0x2377, 0x2378, 0x2379, 0x237a, 0x237b, 0x237c, 0x237d, 0x212b, - - // 96-355 - 0x2121, 0x2122, 0x2123, 0x2124, 0x2125, 0x2126, 0x2127, 0x2128, - 0x2129, 0x212a, 0x212b, 0x212c, 0x212d, 0x212e, 0x212f, 0x2130, - 0x2131, 0x2132, 0x2133, 0x2134, 0x2135, 0x2136, 0x2137, 0x2138, - 0x2139, 0x213a, 0x213b, 0x213c, 0x213d, 0x213e, 0x213f, 0x2140, - 0x2141, 0x2142, 0x2143, 0x2144, 0x2145, 0x2146, 0x2147, 0x2148, - 0x2149, 0x214a, 0x214b, 0x214c, 0x214d, 0x214e, 0x214f, 0x2150, - 0x2151, 0x2152, 0x2153, 0x2154, 0x2155, 0x2156, 0x2157, 0x2158, - 0x2159, 0x215a, 0x215b, 0x215c, 0x215d, 0x215e, 0x215f, 0x2160, - 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168, - 0x2169, 0x216a, 0x216b, 0x216c, 0x216d, 0x216e, 0x216f, 0x2170, - 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177, 0x2178, - 0x2179, 0x217a, 0x217b, 0x217c, 0x217d, 0x217e, 0x2231, 0x2232, - 0x2233, 0x2234, 0x2235, 0x2236, 0x2237, 0x2238, 0x2239, 0x223a, - 0x223b, 0x223c, 0x223d, 0x223e, 0x223f, 0x2240, 0x2241, 0x2242, - 0x2243, 0x2244, 0x2245, 0x2246, 0x2247, 0x2248, 0x2249, 0x224a, - 0x224b, 0x224c, 0x224d, 0x224e, 0x224f, 0x2250, 0x2251, 0x2252, - 0x2253, 0x2254, 0x2255, 0x2256, 0x2257, 0x2258, 0x2259, 0x225a, - 0x225b, 0x225c, 0x225d, 0x225e, 0x225f, 0x2260, 0x2261, 0x2262, - 0x2265, 0x2266, 0x2267, 0x2268, 0x2269, 0x226a, 0x226b, 0x226c, - 0x226d, 0x226e, 0x2271, 0x2272, 0x2273, 0x2274, 0x2275, 0x2276, - 0x2277, 0x2278, 0x2279, 0x227a, 0x227b, 0x227c, 0x2321, 0x2322, - 0x2323, 0x2324, 0x2325, 0x2326, 0x2327, 0x2328, 0x2329, 0x232a, - 0x232b, 0x232c, 0x232d, 0x232e, 0x232f, 0x2330, 0x2331, 0x2332, - 0x2333, 0x2334, 0x2335, 0x2336, 0x2337, 0x2338, 0x2339, 0x233a, - 0x233b, 0x233c, 0x233d, 0x233e, 0x233f, 0x2340, 0x2341, 0x2342, - 0x2343, 0x2344, 0x2345, 0x2346, 0x2347, 0x2348, 0x2349, 0x234a, - 0x234b, 0x234c, 0x234d, 0x234e, 0x234f, 0x2350, 0x2351, 0x2352, - 0x2353, 0x2354, 0x2355, 0x2356, 0x2357, 0x2358, 0x2359, 0x235a, - 0x235b, 0x235c, 0x235d, 0x235e, 0x235f, 0x2360, 0x2361, 0x2362, - 0x2363, 0x2364, 0x2365, 0x2366, 0x2367, 0x2368, 0x2369, 0x236a, - 0x236b, 0x236c, 0x236d, 0x236e, 0x236f, 0x2370, 0x2371, 0x2372, - 0x2373, 0x2374, 0x2375, 0x2376, 0x2377, 0x2378, 0x2379, 0x237a, - 0x237b, 0x237c, 0x237d, 0x237e, - - // 356-524 - 0x2421, 0x2422, 0x2423, 0x2424, - 0x2425, 0x2426, 0x2427, 0x2428, 0x2429, 0x242a, 0x242b, 0x242c, - 0x242d, 0x242e, 0x242f, 0x2430, 0x2431, 0x2432, 0x2433, 0x2434, - 0x2435, 0x2436, 0x2437, 0x2438, 0x2439, 0x243a, 0x243b, 0x243c, - 0x243d, 0x243e, 0x243f, 0x2440, 0x2441, 0x2442, 0x2443, 0x2444, - 0x2445, 0x2446, 0x2447, 0x2448, 0x2449, 0x244a, 0x244b, 0x244c, - 0x244d, 0x244e, 0x244f, 0x2450, 0x2451, 0x2452, 0x2453, 0x2454, - 0x2455, 0x2456, 0x2457, 0x2458, 0x2459, 0x245a, 0x245b, 0x245c, - 0x245d, 0x245e, 0x245f, 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, - 0x2465, 0x2466, 0x2467, 0x2468, 0x2469, 0x246a, 0x246b, 0x246c, - 0x246d, 0x246e, 0x246f, 0x2470, 0x2471, 0x2472, 0x2473, 0x2521, - 0x2522, 0x2523, 0x2524, 0x2525, 0x2526, 0x2527, 0x2528, 0x2529, - 0x252a, 0x252b, 0x252c, 0x252d, 0x252e, 0x252f, 0x2530, 0x2531, - 0x2532, 0x2533, 0x2534, 0x2535, 0x2536, 0x2537, 0x2538, 0x2539, - 0x253a, 0x253b, 0x253c, 0x253d, 0x253e, 0x253f, 0x2540, 0x2541, - 0x2542, 0x2543, 0x2544, 0x2545, 0x2546, 0x2547, 0x2548, 0x2549, - 0x254a, 0x254b, 0x254c, 0x254d, 0x254e, 0x254f, 0x2550, 0x2551, - 0x2552, 0x2553, 0x2554, 0x2555, 0x2556, 0x2557, 0x2558, 0x2559, - 0x255a, 0x255b, 0x255c, 0x255d, 0x255e, 0x255f, 0x2560, 0x2561, - 0x2562, 0x2563, 0x2564, 0x2565, 0x2566, 0x2567, 0x2568, 0x2569, - 0x256a, 0x256b, 0x256c, 0x256d, 0x256e, 0x256f, 0x2570, 0x2571, - 0x2572, 0x2573, 0x2574, 0x2575, 0x2576, - - // 525-572 - 0x2621, 0x2622, 0x2623, - 0x2624, 0x2625, 0x2626, 0x2627, 0x2628, 0x2629, 0x262a, 0x262b, - 0x262c, 0x262d, 0x262e, 0x262f, 0x2630, 0x2631, 0x2632, 0x2633, - 0x2634, 0x2635, 0x2636, 0x2637, 0x2638, 0x2641, 0x2642, 0x2643, - 0x2644, 0x2645, 0x2646, 0x2647, 0x2648, 0x2649, 0x264a, 0x264b, - 0x264c, 0x264d, 0x264e, 0x264f, 0x2650, 0x2651, 0x2652, 0x2653, - 0x2654, 0x2655, 0x2656, 0x2657, 0x2658, - - // 573-601 - 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, - - // 602-667 - 0x2721, 0x2722, 0x2723, 0x2724, 0x2725, 0x2726, - 0x2727, 0x2728, 0x2729, 0x272a, 0x272b, 0x272c, 0x272d, 0x272e, - 0x272f, 0x2730, 0x2731, 0x2732, 0x2733, 0x2734, 0x2735, 0x2736, - 0x2737, 0x2738, 0x2739, 0x273a, 0x273b, 0x273c, 0x273d, 0x273e, - 0x273f, 0x2740, 0x2741, 0x2751, 0x2752, 0x2753, 0x2754, 0x2755, - 0x2756, 0x2757, 0x2758, 0x2759, 0x275a, 0x275b, 0x275c, 0x275d, - 0x275e, 0x275f, 0x2760, 0x2761, 0x2762, 0x2763, 0x2764, 0x2765, - 0x2766, 0x2767, 0x2768, 0x2769, 0x276a, 0x276b, 0x276c, 0x276d, - 0x276e, 0x276f, 0x2770, 0x2771, - - // 668-699 - 0x2821, 0x2822, 0x2823, 0x2824, - 0x2825, 0x2826, 0x2827, 0x2828, 0x2829, 0x282a, 0x282b, 0x282c, - 0x282d, 0x282e, 0x282f, 0x2830, 0x2831, 0x2832, 0x2833, 0x2834, - 0x2835, 0x2836, 0x2837, 0x2838, 0x2839, 0x283a, 0, 0, - 0, 0, 0, 0, - - // 700-737 - 0x2845, 0x2846, 0x2847, 0x2848, - 0x2849, 0x284a, 0x284b, 0x284c, 0x284d, 0x284e, 0x284f, 0x2850, - 0x2851, 0x2852, 0x2853, 0x2854, 0x2855, 0x2856, 0x2857, 0x2858, - 0x2859, 0x285a, 0x285b, 0x285c, 0x285d, 0x285e, 0x285f, 0x2860, - 0x2861, 0x2862, 0x2863, 0x2864, 0x2865, 0x2866, 0x2867, 0x2868, - 0x2869, 0, - - // 738-813 - 0x2924, 0x2925, 0x2926, 0x2927, 0x2928, 0x2929, - 0x292a, 0x292b, 0x292c, 0x292d, 0x292e, 0x292f, 0x2930, 0x2931, - 0x2932, 0x2933, 0x2934, 0x2935, 0x2936, 0x2937, 0x2938, 0x2939, - 0x293a, 0x293b, 0x293c, 0x293d, 0x293e, 0x293f, 0x2940, 0x2941, - 0x2942, 0x2943, 0x2944, 0x2945, 0x2946, 0x2947, 0x2948, 0x2949, - 0x294a, 0x294b, 0x294c, 0x294d, 0x294e, 0x294f, 0x2950, 0x2951, - 0x2952, 0x2953, 0x2954, 0x2955, 0x2956, 0x2957, 0x2958, 0x2959, - 0x295a, 0x295b, 0x295c, 0x295d, 0x295e, 0x295f, 0x2960, 0x2961, - 0x2962, 0x2963, 0x2964, 0x2965, 0x2966, 0x2967, 0x2968, 0x2969, - 0x296a, 0x296b, 0x296c, 0x296d, 0x296e, 0x296f, - - // 814-939 - 0x2321, 0x2322, - 0x2323, 0x2324, 0x2325, 0x2326, 0x2327, 0x2328, 0x2329, 0x232a, - 0x232b, 0x232c, 0x232d, 0x232e, 0x232f, 0x2330, 0x2331, 0x2332, - 0x2333, 0x2334, 0x2335, 0x2336, 0x2337, 0x2338, 0x2339, 0x233a, - 0x233b, 0x233c, 0x233d, 0x233e, 0x233f, 0x2340, 0x2341, 0x2342, - 0x2343, 0x2344, 0x2345, 0x2346, 0x2347, 0x2348, 0x2349, 0x234a, - 0x234b, 0x234c, 0x234d, 0x234e, 0x234f, 0x2350, 0x2351, 0x2352, - 0x2353, 0x2354, 0x2355, 0x2356, 0x2357, 0x2358, 0x2359, 0x235a, - 0x235b, 0x235c, 0x235d, 0x235e, 0x235f, 0x2360, 0x2361, 0x2362, - 0x2363, 0x2364, 0x2365, 0x2366, 0x2367, 0x2368, 0x2369, 0x236a, - 0x236b, 0x236c, 0x236d, 0x236e, 0x236f, 0x2370, 0x2371, 0x2372, - 0x2373, 0x2374, 0x2375, 0x2376, 0x2377, 0x2378, 0x2379, 0x237a, - 0x237b, 0x237c, 0x237d, 0x237e, 0x2821, 0x2822, 0x2823, 0x2824, - 0x2825, 0x2826, 0x2827, 0x2828, 0x2829, 0x282a, 0x282b, 0x282c, - 0x282d, 0x282e, 0x282f, 0x2830, 0x2831, 0x2832, 0x2833, 0x2834, - 0x2835, 0x2836, 0x2837, 0x2838, 0x2839, 0x283a, 0, 0, - 0, 0, 0, 0 -}; - -#endif // CHINESE_GB_SUPPORT - -#if CHINESE_CNS_SUPPORT - -static char *cns13DefFont = - "-*-fixed-medium-r-normal-*-%s-*-*-*-*-*-big5-0"; - -static Gushort cns13Map1[99] = { - // 0-98 - 0, 0xa140, 0xa149, 0xa1a8, 0xa1ad, 0xa243, 0xa248, 0xa1ae, - 0xa1a6, 0xa15d, 0xa15e, 0xa1af, 0xa1cf, 0xa141, 0xa1df, 0xa144, - 0xa241, 0xa2af, 0xa2b0, 0xa2b1, 0xa2b2, 0xa2b3, 0xa2b4, 0xa2b5, - 0xa2b6, 0xa2b7, 0xa2b8, 0xa147, 0xa146, 0xa1d5, 0xa1d7, 0xa1d6, - 0xa148, 0xa249, 0xa2cf, 0xa2d0, 0xa2d1, 0xa2d2, 0xa2d3, 0xa2d4, - 0xa2d5, 0xa2d6, 0xa2d7, 0xa2d8, 0xa2d9, 0xa2da, 0xa2db, 0xa2dc, - 0xa2dd, 0xa2de, 0xa2df, 0xa2e0, 0xa2e1, 0xa2e2, 0xa2e3, 0xa2e4, - 0xa2e5, 0xa2e6, 0xa2e7, 0xa2e8, 0xa165, 0xa242, 0xa166, 0xa173, - 0xa15a, 0xa1a5, 0xa2e9, 0xa2ea, 0xa2eb, 0xa2ec, 0xa2ed, 0xa2ee, - 0xa2ef, 0xa2f0, 0xa2f1, 0xa2f2, 0xa2f3, 0xa2f4, 0xa2f5, 0xa2f6, - 0xa2f7, 0xa2f8, 0xa2f9, 0xa2fa, 0xa2fb, 0xa2fc, 0xa2fd, 0xa2fe, - 0xa340, 0xa341, 0xa342, 0xa343, 0xa161, 0xa159, 0xa162, 0xa1e3, - 0, 0, 0xa14b -}; - -static Gushort cns13Map2[95] = { - // 13648-13742 - 0xa140, 0xa149, 0xa1a8, 0xa1ad, 0xa244, 0xa248, 0xa1ae, - 0xa1a6, 0xa15d, 0xa15e, 0xa1af, 0xa1cf, 0xa141, 0xa1df, 0xa144, - 0xa241, 0xa2af, 0xa2b0, 0xa2b1, 0xa2b2, 0xa2b3, 0xa2b4, 0xa2b5, - 0xa2b6, 0xa2b7, 0xa2b8, 0xa147, 0xa146, 0xa1d5, 0xa1d7, 0xa1d6, - 0xa148, 0xa249, 0xa2cf, 0xa2d0, 0xa2d1, 0xa2d2, 0xa2d3, 0xa2d4, - 0xa2d5, 0xa2d6, 0xa2d7, 0xa2d8, 0xa2d9, 0xa2da, 0xa2db, 0xa2dc, - 0xa2dd, 0xa2de, 0xa2df, 0xa2e0, 0xa2e1, 0xa2e2, 0xa2e3, 0xa2e4, - 0xa2e5, 0xa2e6, 0xa2e7, 0xa2e8, 0xa165, 0xa242, 0xa166, 0xa173, - 0xa15a, 0xa1a5, 0xa2e9, 0xa2ea, 0xa2eb, 0xa2ec, 0xa2ed, 0xa2ee, - 0xa2ef, 0xa2f0, 0xa2f1, 0xa2f2, 0xa2f3, 0xa2f4, 0xa2f5, 0xa2f6, - 0xa2f7, 0xa2f8, 0xa2f9, 0xa2fa, 0xa2fb, 0xa2fc, 0xa2fd, 0xa2fe, - 0xa340, 0xa341, 0xa342, 0xa343, 0xa161, 0xa159, 0xa162, 0xa1c3 -}; - -#endif - -//------------------------------------------------------------------------ -// Constructed characters -//------------------------------------------------------------------------ - -#define lastRegularChar 0x0ff -#define firstSubstChar 0x100 -#define lastSubstChar 0x104 -#define firstConstrChar 0x105 -#define lastConstrChar 0x106 -#define firstMultiChar 0x107 -#define lastMultiChar 0x110 - -// substituted chars -static Guchar substChars[] = { - 0x27, // 100: quotesingle --> quoteright - 0x2d, // 101: emdash --> hyphen - 0xad, // 102: hyphen --> endash - 0x2f, // 103: fraction --> slash - 0xb0, // 104: ring --> degree -}; - -// constructed chars -// 105: bullet -// 106: trademark - -// built-up chars -static char *multiChars[] = { - "fi", // 107: fi - "fl", // 108: fl - "ff", // 109: ff - "ffi", // 10a: ffi - "ffl", // 10b: ffl - "OE", // 10c: OE - "oe", // 10d: oe - "...", // 10e: ellipsis - "``", // 10f: quotedblleft - "''" // 110: quotedblright -}; - -// ignored chars -// 111: Lslash -// : Scaron -// : Zcaron -// : Ydieresis -// : breve -// : caron -// : circumflex -// : dagger -// : daggerdbl -// : dotaccent -// : dotlessi -// : florin -// : grave -// : guilsinglleft -// : guilsinglright -// : hungarumlaut -// : lslash -// : ogonek -// : perthousand -// : quotedblbase -// : quotesinglbase -// : scaron -// : tilde -// : zcaron - //------------------------------------------------------------------------ // XOutputFont //------------------------------------------------------------------------ -XOutputFont::XOutputFont(GfxFont *gfxFont, double m11, double m12, - double m21, double m22, Display *display, - XOutputFontCache *cache) { - int code; - char *charName; - - id = gfxFont->getID(); - this->display = display; - tm11 = m11; - tm12 = m12; - tm21 = m21; - tm22 = m22; - - // check for hex char names - hex = gFalse; - if (!gfxFont->is16Bit()) { - for (code = 0; code < 256; ++code) { - if ((charName = gfxFont->getCharName(code))) { - if ((charName[0] == 'B' || charName[0] == 'C' || - charName[0] == 'G') && - strlen(charName) == 3 && - isxdigit(charName[1]) && isxdigit(charName[2]) && - ((charName[1] >= 'a' && charName[1] <= 'f') || - (charName[1] >= 'A' && charName[1] <= 'F') || - (charName[2] >= 'a' && charName[2] <= 'f') || - (charName[2] >= 'A' && charName[2] <= 'F'))) { - hex = gTrue; - break; - } else if ((strlen(charName) == 2) && - isxdigit(charName[0]) && isxdigit(charName[1]) && - ((charName[0] >= 'a' && charName[0] <= 'f') || - (charName[0] >= 'A' && charName[0] <= 'F') || - (charName[1] >= 'a' && charName[1] <= 'f') || - (charName[1] >= 'A' && charName[1] <= 'F'))) { - hex = gTrue; - break; - } - } - } - } +XOutputFont::XOutputFont(Ref *idA, double m11OrigA, double m12OrigA, + double m21OrigA, double m22OrigA, + double m11A, double m12A, double m21A, double m22A, + Display *displayA, XOutputDev *xOutA) { + id = *idA; + display = displayA; + xOut = xOutA; + m11Orig = m11OrigA; + m12Orig = m12OrigA; + m21Orig = m21OrigA; + m22Orig = m22OrigA; + m11 = m11A; + m12 = m12A; + m21 = m21A; + m22 = m22A; } XOutputFont::~XOutputFont() { } +void XOutputFont::getCharPath(GfxState *state, + CharCode c, Unicode *u, int ulen) { +} + #if HAVE_T1LIB_H //------------------------------------------------------------------------ // XOutputT1Font //------------------------------------------------------------------------ -XOutputT1Font::XOutputT1Font(GfxFont *gfxFont, GString *pdfBaseFont, - double m11, double m12, double m21, double m22, - Display *display, XOutputFontCache *cache): - XOutputFont(gfxFont, m11, m12, m21, m22, display, cache) +XOutputT1Font::XOutputT1Font(Ref *idA, T1FontFile *fontFileA, + double m11OrigA, double m12OrigA, + double m21OrigA, double m22OrigA, + double m11A, double m12A, + double m21A, double m22A, + Display *displayA, XOutputDev *xOutA): + XOutputFont(idA, m11OrigA, m12OrigA, m21OrigA, m22OrigA, + m11A, m12A, m21A, m22A, displayA, xOutA) { - Ref embRef; double matrix[4]; - fontFile = NULL; - font = NULL; - - // we can only handle 8-bit, Type 1/1C, with embedded font file - // or user-specified base fonts - //~ also look for external font files - if (!(pdfBaseFont || - (!gfxFont->is16Bit() && - (gfxFont->getType() == fontType1 || - gfxFont->getType() == fontType1C) && - gfxFont->getEmbeddedFontID(&embRef)))) { - return; - } - - // load the font - if (!(fontFile = cache->getT1Font(gfxFont, pdfBaseFont))) { - return; - } + fontFile = fontFileA; // create the transformed instance matrix[0] = m11; @@ -598,47 +163,91 @@ void XOutputT1Font::updateGC(GC gc) { } void XOutputT1Font::drawChar(GfxState *state, Pixmap pixmap, int w, int h, - GC gc, double x, double y, int c) { - GfxRGB rgb; - - if (state->getRender() & 1) { - state->getStrokeRGB(&rgb); - } else { - state->getFillRGB(&rgb); - } + GC gc, GfxRGB *rgb, + double x, double y, double dx, double dy, + CharCode c, Unicode *u, int uLen) { font->drawChar(pixmap, w, h, gc, xoutRound(x), xoutRound(y), - (int)(rgb.r * 65535), (int)(rgb.g * 65535), - (int)(rgb.b * 65535), c); + (int)(rgb->r * 65535), (int)(rgb->g * 65535), + (int)(rgb->b * 65535), c, u[0]); +} + +void XOutputT1Font::getCharPath(GfxState *state, + CharCode c, Unicode *u, int uLen) { + font->getCharPath(c, u[0], state); } #endif // HAVE_T1LIB_H -#if HAVE_FREETYPE_FREETYPE_H | HAVE_FREETYPE_H +#if FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) //------------------------------------------------------------------------ -// XOutputTTFont +// XOutputFTFont //------------------------------------------------------------------------ -XOutputTTFont::XOutputTTFont(GfxFont *gfxFont, double m11, double m12, - double m21, double m22, Display *display, - XOutputFontCache *cache): - XOutputFont(gfxFont, m11, m12, m21, m22, display, cache) +XOutputFTFont::XOutputFTFont(Ref *idA, FTFontFile *fontFileA, + double m11OrigA, double m12OrigA, + double m21OrigA, double m22OrigA, + double m11A, double m12A, + double m21A, double m22A, + Display *displayA, XOutputDev *xOutA): + XOutputFont(idA, m11OrigA, m12OrigA, m21OrigA, m22OrigA, + m11A, m12A, m21A, m22A, displayA, xOutA) { - Ref embRef; double matrix[4]; - fontFile = NULL; - font = NULL; + fontFile = fontFileA; - // we can only handle 8-bit, TrueType, with embedded font file - if (!(!gfxFont->is16Bit() && - gfxFont->getType() == fontTrueType && - gfxFont->getEmbeddedFontID(&embRef))) { - return; - } + // create the transformed instance + matrix[0] = m11; + matrix[1] = -m12; + matrix[2] = m21; + matrix[3] = -m22; + font = new FTFont(fontFile, matrix); +} - // load the font - if (!(fontFile = cache->getTTFont(gfxFont))) { - return; +XOutputFTFont::~XOutputFTFont() { + if (font) { + delete font; } +} + +GBool XOutputFTFont::isOk() { + return font != NULL; +} + +void XOutputFTFont::updateGC(GC gc) { +} + +void XOutputFTFont::drawChar(GfxState *state, Pixmap pixmap, int w, int h, + GC gc, GfxRGB *rgb, + double x, double y, double dx, double dy, + CharCode c, Unicode *u, int uLen) { + font->drawChar(pixmap, w, h, gc, xoutRound(x), xoutRound(y), + (int)(rgb->r * 65535), (int)(rgb->g * 65535), + (int)(rgb->b * 65535), c, uLen > 0 ? u[0] : 0); +} + +void XOutputFTFont::getCharPath(GfxState *state, + CharCode c, Unicode *u, int uLen) { + font->getCharPath(c, u[0], state); +} +#endif // FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) + +#if !FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) +//------------------------------------------------------------------------ +// XOutputTTFont +//------------------------------------------------------------------------ + +XOutputTTFont::XOutputTTFont(Ref *idA, TTFontFile *fontFileA, + double m11OrigA, double m12OrigA, + double m21OrigA, double m22OrigA, + double m11A, double m12A, + double m21A, double m22A, + Display *displayA, XOutputDev *xOutA): + XOutputFont(idA, m11OrigA, m12OrigA, m21OrigA, m22OrigA, + m11A, m12A, m21A, m22A, displayA, xOutA) +{ + double matrix[4]; + + fontFile = fontFileA; // create the transformed instance matrix[0] = m11; @@ -662,114 +271,211 @@ void XOutputTTFont::updateGC(GC gc) { } void XOutputTTFont::drawChar(GfxState *state, Pixmap pixmap, int w, int h, - GC gc, double x, double y, int c) { - GfxRGB rgb; - - if (state->getRender() & 1) { - state->getStrokeRGB(&rgb); - } else { - state->getFillRGB(&rgb); - } + GC gc, GfxRGB *rgb, + double x, double y, double dx, double dy, + CharCode c, Unicode *u, int uLen) { font->drawChar(pixmap, w, h, gc, xoutRound(x), xoutRound(y), - (int)(rgb.r * 65535), (int)(rgb.g * 65535), - (int)(rgb.b * 65535), c); + (int)(rgb->r * 65535), (int)(rgb->g * 65535), + (int)(rgb->b * 65535), c, u[0]); } -#endif // HAVE_FREETYPE_FREETYPE_H | HAVE_FREETYPE_H +#endif // !FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) //------------------------------------------------------------------------ -// XOutputServerFont +// XOutputServer8BitFont //------------------------------------------------------------------------ -XOutputServerFont::XOutputServerFont(GfxFont *gfxFont, char *fontNameFmt, - FontEncoding *encoding, - double m11, double m12, - double m21, double m22, - double size, - double ntm11, double ntm12, - double ntm21, double ntm22, - Display *display, - XOutputFontCache *cache): - XOutputFont(gfxFont, m11, m12, m21, m22, display, cache) +// Copy , substituting for one occurrence of "%s", into +// . +static void stringSubst(char *buf, int bufSize, char *fmt, char *val) { + char *p, *q; + int i; + + i = 0; + p = fmt; + while (*p) { + if (p[0] == '%' && p[1] == 's') { + q = val; + while (*q && i < bufSize - 1) { + buf[i++] = *q++; + } + p += 2; + } else { + if (i < bufSize - 1) { + buf[i++] = *p; + } + ++p; + } + } + buf[i] = '\0'; +} + +XOutputServer8BitFont::XOutputServer8BitFont(Ref *idA, GString *xlfdFmt, + UnicodeMap *xUMapA, + CharCodeToUnicode *fontUMap, + double m11OrigA, double m12OrigA, + double m21OrigA, double m22OrigA, + double m11A, double m12A, + double m21A, double m22A, + Display *displayA, + XOutputDev *xOutA): + XOutputFont(idA, m11OrigA, m12OrigA, m21OrigA, m22OrigA, + m11A, m12A, m21A, m22A, displayA, xOutA) { - char fontName[200], fontSize[100]; + double size, ntm11, ntm12, ntm21, ntm22; GBool rotated; int startSize, sz; - int code, code2; - char *charName; - int n; - - xFont = NULL; - - // Construct forward and reverse map. - // This tries to deal with font subset character names of the form - // 'Bxx', 'Cxx', 'Gxx', or 'xx' with decimal or hex numbering. - if (!gfxFont->is16Bit()) { - for (code = 0; code < 256; ++code) - revMap[code] = 0; - if (encoding) { - for (code = 0; code < 256; ++code) { - if ((charName = gfxFont->getCharName(code))) { - if ((code2 = encoding->getCharCode(charName)) < 0) { - n = strlen(charName); - if (hex && n == 3 && - (charName[0] == 'B' || charName[0] == 'C' || - charName[0] == 'G') && - isxdigit(charName[1]) && isxdigit(charName[2])) { - sscanf(charName+1, "%x", &code2); - } else if (hex && n == 2 && - isxdigit(charName[0]) && isxdigit(charName[1])) { - sscanf(charName, "%x", &code2); - } else if (!hex && n >= 2 && n <= 3 && - isdigit(charName[0]) && isdigit(charName[1])) { - code2 = atoi(charName); - if (code2 >= 256) - code2 = -1; - } else if (n >= 3 && n <= 5 && isdigit(charName[1])) { - code2 = atoi(charName+1); - if (code2 >= 256) - code2 = -1; - } - //~ this is a kludge -- is there a standard internal encoding - //~ used by all/most Type 1 fonts? - if (code2 == 262) // hyphen - code2 = 45; - else if (code2 == 266) // emdash - code2 = 208; - } - if (code2 >= 0) { - map[code] = (Gushort)code2; - if (code2 < 256) - revMap[code2] = (Guchar)code; - } else { - map[code] = 0; - } - } else { - map[code] = 0; + char fontName[500], fontSize[100]; + Unicode u; + char buf; + int i; + + // compute size and normalized transform matrix + size = sqrt(m21*m21 + m22*m22); + ntm11 = m11 / size; + ntm12 = -m12 / size; + ntm21 = m21 / size; + ntm22 = -m22 / size; + + // try to get a rotated font? + rotated = !(ntm11 > 0 && ntm22 > 0 && + fabs(ntm11 / ntm22 - 1) < 0.2 && + fabs(ntm12) < 0.01 && + fabs(ntm21) < 0.01); + + // open X font -- if font is not found (which means the server can't + // scale fonts), try progressively smaller and then larger sizes + startSize = (int)size; + if (rotated) { + sprintf(fontSize, "[%s%0.2f %s%0.2f %s%0.2f %s%0.2f]", + ntm11<0 ? "~" : "", fabs(ntm11 * size), + ntm12<0 ? "~" : "", fabs(ntm12 * size), + ntm21<0 ? "~" : "", fabs(ntm21 * size), + ntm22<0 ? "~" : "", fabs(ntm22 * size)); + } else { + sprintf(fontSize, "%d", startSize); + } + stringSubst(fontName, sizeof(fontName), xlfdFmt->getCString(), fontSize); + xFont = XLoadQueryFont(display, fontName); + if (!xFont) { + for (sz = startSize; sz >= startSize/2 && sz >= 1; --sz) { + sprintf(fontSize, "%d", sz); + stringSubst(fontName, sizeof(fontName), xlfdFmt->getCString(), fontSize); + if ((xFont = XLoadQueryFont(display, fontName))) + break; + } + if (!xFont) { + for (sz = startSize + 1; sz < startSize + 10; ++sz) { + sprintf(fontSize, "%d", sz); + stringSubst(fontName, sizeof(fontName), xlfdFmt->getCString(), + fontSize); + if ((xFont = XLoadQueryFont(display, fontName))) { + break; } } + if (!xFont) { + sprintf(fontSize, "%d", startSize); + stringSubst(fontName, sizeof(fontName), xlfdFmt->getCString(), + fontSize); + error(-1, "Failed to open font: '%s'", fontName); + return; + } + } + } + + // Construct char code map. + xUMap = xUMapA; + for (i = 0; i < 256; ++i) { + if (fontUMap->mapToUnicode((CID)i, &u, 1) == 1 && + xUMap->mapUnicode(u, &buf, 1) == 1) { + map[i] = buf & 0xff; } else { - code2 = 0; // to make gcc happy - //~ this is a hack to get around the fact that X won't draw - //~ chars 0..31; this works when the fonts have duplicate encodings - //~ for those chars - for (code = 0; code < 32; ++code) { - if ((charName = gfxFont->getCharName(code)) && - (code2 = gfxFont->getCharCode(charName)) >= 0) { - map[code] = (Gushort)code2; - if (code2 < 256) - revMap[code2] = (Guchar)code; + map[i] = 0; + } + } +} + +XOutputServer8BitFont::~XOutputServer8BitFont() { + if (xFont) { + XFreeFont(display, xFont); + } +} + +GBool XOutputServer8BitFont::isOk() { + return xFont != NULL; +} + +void XOutputServer8BitFont::updateGC(GC gc) { + XSetFont(display, gc, xFont->fid); +} + +void XOutputServer8BitFont::drawChar(GfxState *state, Pixmap pixmap, + int w, int h, GC gc, GfxRGB *rgb, + double x, double y, double dx, double dy, + CharCode c, Unicode *u, int uLen) { + Gushort c1; + char buf[8]; + double dx1, dy1; + int m, n, i, j, k; + + c1 = map[c]; + if (c1 > 0) { + buf[0] = (char)c1; + XDrawString(display, pixmap, gc, xoutRound(x), xoutRound(y), buf, 1); + } else { + // substituted character, using more than one character + n = 0; + for (i = 0; i < uLen; ++i) { + n += xUMap->mapUnicode(u[i], buf, sizeof(buf)); + } + if (n > 0) { + dx1 = dx / n; + dy1 = dy / n; + k = 0; + for (i = 0; i < uLen; ++i) { + m = xUMap->mapUnicode(u[i], buf, sizeof(buf)); + for (j = 0; j < m; ++j) { + XDrawString(display, pixmap, gc, + xoutRound(x + k*dx1), xoutRound(y + k*dy1), + buf + j, 1); + ++k; } } - for (code = 32; code < 256; ++code) { - map[code] = (Gushort)code; - revMap[code] = (Guchar)code; - } } } +} - // adjust transform for the X transform convention - ntm12 = -ntm12; - ntm22 = -ntm22; +//------------------------------------------------------------------------ +// XOutputServer16BitFont +//------------------------------------------------------------------------ + +XOutputServer16BitFont::XOutputServer16BitFont(Ref *idA, GString *xlfdFmt, + UnicodeMap *xUMapA, + CharCodeToUnicode *fontUMap, + double m11OrigA, + double m12OrigA, + double m21OrigA, + double m22OrigA, + double m11A, double m12A, + double m21A, double m22A, + Display *displayA, + XOutputDev *xOutA): + XOutputFont(idA, m11OrigA, m12OrigA, m21OrigA, m22OrigA, + m11A, m12A, m21A, m22A, displayA, xOutA) +{ + double size, ntm11, ntm12, ntm21, ntm22; + GBool rotated; + int startSize, sz; + char fontName[500], fontSize[100]; + + xUMap = xUMapA; + xUMap->incRefCnt(); + + // compute size and normalized transform matrix + size = sqrt(m21*m21 + m22*m22); + ntm11 = m11 / size; + ntm12 = -m12 / size; + ntm21 = m21 / size; + ntm22 = -m22 / size; // try to get a rotated font? rotated = !(ntm11 > 0 && ntm22 > 0 && @@ -779,36 +485,38 @@ XOutputServerFont::XOutputServerFont(GfxFont *gfxFont, char *fontNameFmt, // open X font -- if font is not found (which means the server can't // scale fonts), try progressively smaller and then larger sizes - //~ This does a linear search -- it should get a list of fonts from - //~ the server and pick the closest. startSize = (int)size; - if (rotated) + if (rotated) { sprintf(fontSize, "[%s%0.2f %s%0.2f %s%0.2f %s%0.2f]", ntm11<0 ? "~" : "", fabs(ntm11 * size), ntm12<0 ? "~" : "", fabs(ntm12 * size), ntm21<0 ? "~" : "", fabs(ntm21 * size), ntm22<0 ? "~" : "", fabs(ntm22 * size)); - else + } else { sprintf(fontSize, "%d", startSize); - sprintf(fontName, fontNameFmt, fontSize); + } + stringSubst(fontName, sizeof(fontName), xlfdFmt->getCString(), fontSize); xFont = XLoadQueryFont(display, fontName); if (!xFont) { for (sz = startSize; sz >= startSize/2 && sz >= 1; --sz) { sprintf(fontSize, "%d", sz); - sprintf(fontName, fontNameFmt, fontSize); + stringSubst(fontName, sizeof(fontName), xlfdFmt->getCString(), fontSize); if ((xFont = XLoadQueryFont(display, fontName))) break; } if (!xFont) { for (sz = startSize + 1; sz < startSize + 10; ++sz) { sprintf(fontSize, "%d", sz); - sprintf(fontName, fontNameFmt, fontSize); - if ((xFont = XLoadQueryFont(display, fontName))) + stringSubst(fontName, sizeof(fontName), xlfdFmt->getCString(), + fontSize); + if ((xFont = XLoadQueryFont(display, fontName))) { break; + } } if (!xFont) { sprintf(fontSize, "%d", startSize); - sprintf(fontName, fontNameFmt, fontSize); + stringSubst(fontName, sizeof(fontName), xlfdFmt->getCString(), + fontSize); error(-1, "Failed to open font: '%s'", fontName); return; } @@ -816,75 +524,53 @@ XOutputServerFont::XOutputServerFont(GfxFont *gfxFont, char *fontNameFmt, } } -XOutputServerFont::~XOutputServerFont() { - if (xFont) +XOutputServer16BitFont::~XOutputServer16BitFont() { + xUMap->decRefCnt(); + if (xFont) { XFreeFont(display, xFont); + } } -GBool XOutputServerFont::isOk() { +GBool XOutputServer16BitFont::isOk() { return xFont != NULL; } -void XOutputServerFont::updateGC(GC gc) { +void XOutputServer16BitFont::updateGC(GC gc) { XSetFont(display, gc, xFont->fid); } -void XOutputServerFont::drawChar(GfxState *state, Pixmap pixmap, int w, int h, - GC gc, double x, double y, int c) { - GfxFont *gfxFont; - Gushort c1; - char buf; - char *p; - int n, i; - double tx; +void XOutputServer16BitFont::drawChar(GfxState *state, Pixmap pixmap, + int w, int h, GC gc, GfxRGB *rgb, + double x, double y, double dx, double dy, + CharCode c, Unicode *u, int uLen) { + char buf[16]; + XChar2b c1; + double dx1, dy1; + int m, n, i, j, k; - c1 = map[c]; - if (c1 <= lastRegularChar) { - buf = (char)c1; - XDrawString(display, pixmap, gc, xoutRound(x), xoutRound(y), &buf, 1); - } else if (c1 <= lastSubstChar) { - buf = (char)substChars[c1 - firstSubstChar]; - XDrawString(display, pixmap, gc, xoutRound(x), xoutRound(y), &buf, 1); - } else if (c1 <= lastConstrChar) { - gfxFont = state->getFont(); - //~ need to deal with rotated text here - switch (c1 - firstConstrChar) { - case 0: // bullet - tx = 0.25 * state->getTransformedFontSize() * gfxFont->getWidth(c); - XFillRectangle(display, pixmap, gc, - xoutRound(x + tx), - xoutRound(y - 0.4 * xFont->ascent - tx), - xoutRound(2 * tx), xoutRound(2 * tx)); - break; - case 1: // trademark -//~ this should use a smaller font -// tx = state->getTransformedFontSize() * -// (gfxFont->getWidth(c) - -// gfxFont->getWidth(font->revMap['M'])); - tx = 0.9 * state->getTransformedFontSize() * - gfxFont->getWidth(revMap['T']); - y -= 0.33 * (double)xFont->ascent; - buf = 'T'; - XDrawString(display, pixmap, gc, - xoutRound(x), xoutRound(y), &buf, 1); - x += tx; - buf = 'M'; - XDrawString(display, pixmap, gc, - xoutRound(x), xoutRound(y), &buf, 1); - break; - } - } else if (c1 <= lastMultiChar) { - gfxFont = state->getFont(); - p = multiChars[c1 - firstMultiChar]; - n = strlen(p); - tx = gfxFont->getWidth(c); - tx -= gfxFont->getWidth(revMap[p[n-1]]); - tx = tx * state->getTransformedFontSize() / (double)(n - 1); - for (i = 0; i < n; ++i) { - XDrawString(display, pixmap, gc, - xoutRound(x), xoutRound(y), p + i, 1); - x += tx; + n = 0; + for (i = 0; i < uLen; ++i) { + n += xUMap->mapUnicode(u[i], buf, sizeof(buf)); + } + if (n > 0) { + dx1 = dx / n; + dy1 = dy / n; + k = 0; + for (i = 0; i < uLen; ++i) { + m = xUMap->mapUnicode(u[i], buf, sizeof(buf)); + for (j = 0; j+1 < m; j += 2) { + c1.byte1 = buf[j]; + c1.byte2 = buf[j+1]; + XDrawString16(display, pixmap, gc, + xoutRound(x + k*dx1), xoutRound(y + k*dy1), + &c1, 1); + ++k; + } } + } else if (c != 0) { + // some PDF files use CID 0, which is .notdef, so just ignore it + error(-1, "Unknown character (CID=%d Unicode=%04x)", + c, uLen > 0 ? u[0] : (Unicode)0); } } @@ -892,32 +578,45 @@ void XOutputServerFont::drawChar(GfxState *state, Pixmap pixmap, int w, int h, // XOutputFontCache //------------------------------------------------------------------------ -XOutputFontCache::XOutputFontCache(Display *display, Guint depth) { - this->display = display; - this->depth = depth; +#if HAVE_T1LIB_H +XOutputT1FontFile::~XOutputT1FontFile() { + delete fontFile; +} +#endif + +#if FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) +XOutputFTFontFile::~XOutputFTFontFile() { + delete fontFile; +} +#endif + +#if !FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) +XOutputTTFontFile::~XOutputTTFontFile() { + delete fontFile; +} +#endif + +XOutputFontCache::XOutputFontCache(Display *displayA, Guint depthA, + XOutputDev *xOutA, + FontRastControl t1libControlA, + FontRastControl freetypeControlA) { + display = displayA; + depth = depthA; + xOut = xOutA; #if HAVE_T1LIB_H t1Engine = NULL; - if (t1libControl) { - useT1lib = t1libControl->cmp("none") != 0; - t1libAA = t1libControl->cmp("plain") != 0; - t1libAAHigh = t1libControl->cmp("high") == 0; - } else { - useT1lib = gFalse; - t1libAA = gFalse; - t1libAAHigh = gFalse; - } + t1libControl = t1libControlA; #endif -#if HAVE_FREETYPE_FREETYPE_H | HAVE_FREETYPE_H +#if FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) + ftEngine = NULL; +#endif +#if !FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) ttEngine = NULL; - if (freeTypeControl) { - useFreeType = freeTypeControl->cmp("none") != 0; - freeTypeAA = freeTypeControl->cmp("plain") != 0; - } else { - useFreeType = gFalse; - freeTypeAA = gFalse; - } +#endif +#if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H + freetypeControl = freetypeControlA; #endif clear(); @@ -936,9 +635,12 @@ void XOutputFontCache::startDoc(int screenNum, Colormap colormap, clear(); #if HAVE_T1LIB_H - if (useT1lib) { + if (t1libControl != fontRastNone) { t1Engine = new T1FontEngine(display, DefaultVisual(display, screenNum), - depth, colormap, t1libAA, t1libAAHigh); + depth, colormap, + t1libControl == fontRastAALow || + t1libControl == fontRastAAHigh, + t1libControl == fontRastAAHigh); if (t1Engine->isOk()) { if (trueColor) { t1Engine->useTrueColor(rMul, rShift, gMul, gShift, bMul, bShift); @@ -952,10 +654,31 @@ void XOutputFontCache::startDoc(int screenNum, Colormap colormap, } #endif // HAVE_T1LIB_H -#if HAVE_FREETYPE_FREETYPE_H | HAVE_FREETYPE_H - if (useFreeType) { +#if FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) + if (freetypeControl != fontRastNone) { + ftEngine = new FTFontEngine(display, DefaultVisual(display, screenNum), + depth, colormap, + freetypeControl == fontRastAALow || + freetypeControl == fontRastAAHigh); + if (ftEngine->isOk()) { + if (trueColor) { + ftEngine->useTrueColor(rMul, rShift, gMul, gShift, bMul, bShift); + } else { + ftEngine->useColorCube(colors, numColors); + } + } else { + delete ftEngine; + ftEngine = NULL; + } + } +#endif // FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) + +#if !FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) + if (freetypeControl != fontRastNone) { ttEngine = new TTFontEngine(display, DefaultVisual(display, screenNum), - depth, colormap, freeTypeAA); + depth, colormap, + freetypeControl == fontRastAALow || + freetypeControl == fontRastAAHigh); if (ttEngine->isOk()) { if (trueColor) { ttEngine->useTrueColor(rMul, rShift, gMul, gShift, bMul, bShift); @@ -967,208 +690,166 @@ void XOutputFontCache::startDoc(int screenNum, Colormap colormap, ttEngine = NULL; } } -#endif +#endif // !FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) } void XOutputFontCache::delFonts() { int i; -#if HAVE_T1LIB_H - // delete Type 1 fonts - for (i = 0; i < nT1Fonts; ++i) { - delete t1Fonts[i]; + for (i = 0; i < nFonts; ++i) { + delete fonts[i]; } - for (i = 0; i < t1FontFilesSize && t1FontFiles[i].num >= 0; ++i) { - delete t1FontFiles[i].fontFile; - } - gfree(t1FontFiles); + +#if HAVE_T1LIB_H + // delete Type 1 font files + deleteGList(t1FontFiles, XOutputT1FontFile); if (t1Engine) { delete t1Engine; } #endif -#if HAVE_FREETYPE_FREETYPE_H | HAVE_FREETYPE_H - // delete TrueType fonts - for (i = 0; i < nTTFonts; ++i) { - delete ttFonts[i]; +#if FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) + // delete FreeType font files + deleteGList(ftFontFiles, XOutputFTFontFile); + if (ftEngine) { + delete ftEngine; } - for (i = 0; i < ttFontFilesSize && ttFontFiles[i].num >= 0; ++i) { - delete ttFontFiles[i].fontFile; - } - gfree(ttFontFiles); +#endif + +#if !FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) + // delete TrueType fonts + deleteGList(ttFontFiles, XOutputTTFontFile); if (ttEngine) { delete ttEngine; } #endif - - // delete server fonts - for (i = 0; i < nServerFonts; ++i) { - delete serverFonts[i]; - } } void XOutputFontCache::clear() { int i; -#if HAVE_T1LIB_H - // clear Type 1 font cache - for (i = 0; i < t1FontCacheSize; ++i) { - t1Fonts[i] = NULL; + for (i = 0; i < xOutFontCacheSize; ++i) { + fonts[i] = NULL; } - nT1Fonts = 0; - t1FontFiles = NULL; - t1FontFilesSize = 0; + nFonts = 0; + +#if HAVE_T1LIB_H + // clear Type 1 font files + t1FontFiles = new GList(); #endif -#if HAVE_FREETYPE_FREETYPE_H | HAVE_FREETYPE_H - // clear TrueType font cache - for (i = 0; i < ttFontCacheSize; ++i) { - ttFonts[i] = NULL; - } - nTTFonts = 0; - ttFontFiles = NULL; - ttFontFilesSize = 0; +#if FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) + // clear FreeType font cache + ftFontFiles = new GList(); #endif - // clear server font cache - for (i = 0; i < serverFontCacheSize; ++i) { - serverFonts[i] = NULL; - } - nServerFonts = 0; +#if !FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) + // clear TrueType font cache + ttFontFiles = new GList(); +#endif } -XOutputFont *XOutputFontCache::getFont(GfxFont *gfxFont, +XOutputFont *XOutputFontCache::getFont(XRef *xref, GfxFont *gfxFont, double m11, double m12, double m21, double m22) { -#if HAVE_T1LIB_H - XOutputT1Font *t1Font; -#endif -#if HAVE_FREETYPE_FREETYPE_H | HAVE_FREETYPE_H - XOutputTTFont *ttFont; -#endif - XOutputServerFont *serverFont; - FontMapEntry *fme; - GString *t1FontName; - char *xFontName; - FontEncoding *xEncoding; - double size; - double ntm11, ntm12, ntm21, ntm22; + XOutputFont *font; + DisplayFontParam *dfp; + GString *substName; + double m11New, m12New, m21New, m22New; double w1, w2, v; double *fm; + char *name; int index; int code; int i, j; - // is it the most recently used Type 1, TrueType, or server font? -#if HAVE_T1LIB_H - if (useT1lib && nT1Fonts > 0 && - t1Fonts[0]->matches(gfxFont->getID(), m11, m12, m21, m22)) { - return t1Fonts[0]; - } -#endif -#if HAVE_FREETYPE_FREETYPE_H | HAVE_FREETYPE_H - if (useFreeType && nTTFonts > 0 && - ttFonts[0]->matches(gfxFont->getID(), m11, m12, m21, m22)) { - return ttFonts[0]; - } -#endif - if (nServerFonts > 0 && serverFonts[0]->matches(gfxFont->getID(), - m11, m12, m21, m22)) { - return serverFonts[0]; + // is it the most recently used font? + if (nFonts > 0 && fonts[0]->matches(gfxFont->getID(), m11, m12, m21, m22)) { + return fonts[0]; } -#if HAVE_T1LIB_H - // is it in the Type 1 cache? - if (useT1lib) { - for (i = 1; i < nT1Fonts; ++i) { - if (t1Fonts[i]->matches(gfxFont->getID(), m11, m12, m21, m22)) { - t1Font = t1Fonts[i]; - for (j = i; j > 0; --j) { - t1Fonts[j] = t1Fonts[j-1]; - } - t1Fonts[0] = t1Font; - return t1Font; + // is it in the cache? + for (i = 1; i < nFonts; ++i) { + if (fonts[i]->matches(gfxFont->getID(), m11, m12, m21, m22)) { + font = fonts[i]; + for (j = i; j > 0; --j) { + fonts[j] = fonts[j-1]; } + fonts[0] = font; + return font; } } -#endif -#if HAVE_FREETYPE_FREETYPE_H | HAVE_FREETYPE_H - // is it in the TrueType cache? - if (useFreeType) { - for (i = 1; i < nTTFonts; ++i) { - if (ttFonts[i]->matches(gfxFont->getID(), m11, m12, m21, m22)) { - ttFont = ttFonts[i]; - for (j = i; j > 0; --j) { - ttFonts[j] = ttFonts[j-1]; - } - ttFonts[0] = ttFont; - return ttFont; - } + // try for a cached FontFile, an embedded font, or an external font + // file + font = NULL; + switch (gfxFont->getType()) { + case fontType1: + case fontType1C: +#if HAVE_T1LIB_H + if (t1libControl != fontRastNone) { + font = tryGetT1Font(xref, gfxFont, m11, m12, m21, m22); } - } #endif - - // is it in the server cache? - for (i = 1; i < nServerFonts; ++i) { - if (serverFonts[i]->matches(gfxFont->getID(), m11, m12, m21, m22)) { - serverFont = serverFonts[i]; - for (j = i; j > 0; --j) - serverFonts[j] = serverFonts[j-1]; - serverFonts[0] = serverFont; - return serverFont; - } - } - - // search for a font map entry - t1FontName = NULL; - xFontName = NULL; - xEncoding = NULL; - if (!gfxFont->is16Bit() && gfxFont->getName()) { - for (fme = userFontMap; fme->pdfFont; ++fme) { - if (!gfxFont->getName()->cmp(fme->pdfFont)) { - break; +#if FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) + if (!font) { + if (freetypeControl != fontRastNone) { + font = tryGetFTFont(xref, gfxFont, m11, m12, m21, m22); } } - if (!fme->pdfFont) { - for (fme = fontMap; fme->pdfFont; ++fme) { - if (!gfxFont->getName()->cmp(fme->pdfFont)) { - break; - } - } +#endif + break; + case fontTrueType: + case fontCIDType2: +#if FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) + if (freetypeControl != fontRastNone) { + font = tryGetFTFont(xref, gfxFont, m11, m12, m21, m22); } - if (fme && fme->t1Font) { - t1FontName = *fme->t1Font; +#endif +#if !FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) + if (freetypeControl != fontRastNone) { + font = tryGetTTFont(xref, gfxFont, m11, m12, m21, m22); } - if (fme && fme->xFont && fme->encoding) { - xFontName = fme->xFont; - xEncoding = fme->encoding; +#endif + break; + case fontCIDType0C: +#if FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) + if (freetypeControl != fontRastNone) { + font = tryGetFTFont(xref, gfxFont, m11, m12, m21, m22); } +#endif + break; + default: + break; } - // no font map entry found, so substitute a font - if (!t1FontName && !xFontName) { - if (gfxFont->is16Bit()) { - xFontName = fontSubst[0].xFont; - t1FontName = NULL; - switch (gfxFont->getCharSet16()) { - case font16AdobeJapan12: -#if JAPANESE_SUPPORT - xFontName = japan12Font ? japan12Font->getCString() : japan12DefFont; -#endif - break; - case font16AdobeGB12: -#if CHINESE_GB_SUPPORT - xFontName = gb12Font ? gb12Font->getCString() : gb12DefFont; -#endif - break; - case font16AdobeCNS13: -#if CHINESE_CNS_SUPPORT - xFontName = cns13Font ? cns13Font->getCString() : cns13DefFont; -#endif - break; + if (!font) { + + // search for a display font mapping + dfp = NULL; + if (gfxFont->isCIDFont()) { + if (((GfxCIDFont *)gfxFont)->getCollection()) { + dfp = globalParams-> + getDisplayCIDFont(gfxFont->getName(), + ((GfxCIDFont *)gfxFont)->getCollection()); + } else { + // this error (no CMap file) was already reported by GfxFont + return NULL; } } else { + if (gfxFont->getName()) { + dfp = globalParams->getDisplayFont(gfxFont->getName()); + } + } + if (dfp) { + font = tryGetFont(xref, dfp, gfxFont, m11, m12, m21, m22, + m11, m12, m21, m22, gFalse); + } + + // substitute a font (8-bit fonts only) + if (!font && !gfxFont->isCIDFont()) { + + // choose a substitute font if (gfxFont->isFixedWidth()) { index = 8; } else if (gfxFont->isSerif()) { @@ -1176,280 +857,502 @@ XOutputFont *XOutputFontCache::getFont(GfxFont *gfxFont, } else { index = 0; } - if (gfxFont->isBold()) + if (gfxFont->isBold()) { index += 2; - if (gfxFont->isItalic()) + } + if (gfxFont->isItalic()) { index += 1; - xFontName = fontSubst[index].xFont; - t1FontName = *fontSubst[index].t1Font; - xEncoding = &isoLatin1Encoding; - // get width of 'm' in real font and substituted font - if ((code = gfxFont->getCharCode("m")) >= 0) - w1 = gfxFont->getWidth(code); - else - w1 = 0; - w2 = fontSubst[index].mWidth; - if (gfxFont->getType() == fontType3) { - // This is a hack which makes it possible to substitute for some - // Type 3 fonts. The problem is that it's impossible to know what - // the base coordinate system used in the font is without actually - // rendering the font. This code tries to guess by looking at the - // width of the character 'm' (which breaks if the font is a - // subset that doesn't contain 'm'). - if (w1 > 0 && (w1 > 1.1 * w2 || w1 < 0.9 * w2)) { - w1 /= w2; - m11 *= w1; - m12 *= w1; - m21 *= w1; - m22 *= w1; + } + substName = new GString(xOutSubstFonts[index].name); + + // adjust the font matrix -- compare the width of 'm' in the + // original font and the substituted font + m11New = m11; + m12New = m12; + m21New = m21; + m22New = m22; + for (code = 0; code < 256; ++code) { + if ((name = ((Gfx8BitFont *)gfxFont)->getCharName(code)) && + name[0] == 'm' && name[1] == '\0') { + break; } - fm = gfxFont->getFontMatrix(); - v = (fm[0] == 0) ? 1 : (fm[3] / fm[0]); - m21 *= v; - m22 *= v; - } else if (!gfxFont->isSymbolic()) { - // if real font is substantially narrower than substituted - // font, reduce the font size accordingly - if (w1 > 0.01 && w1 < 0.9 * w2) { - w1 /= w2; - if (w1 < 0.8) { - w1 = 0.8; + } + if (code < 256) { + w1 = ((Gfx8BitFont *)gfxFont)->getWidth(code); + w2 = xOutSubstFonts[index].mWidth; + if (gfxFont->getType() == fontType3) { + // This is a hack which makes it possible to substitute for some + // Type 3 fonts. The problem is that it's impossible to know what + // the base coordinate system used in the font is without actually + // rendering the font. This code tries to guess by looking at the + // width of the character 'm' (which breaks if the font is a + // subset that doesn't contain 'm'). + if (w1 > 0 && (w1 > 1.1 * w2 || w1 < 0.9 * w2)) { + w1 /= w2; + m11New *= w1; + m12New *= w1; + m21New *= w1; + m22New *= w1; + } + fm = gfxFont->getFontMatrix(); + v = (fm[0] == 0) ? 1 : (fm[3] / fm[0]); + m21New *= v; + m22New *= v; + } else if (!gfxFont->isSymbolic()) { + // if real font is substantially narrower than substituted + // font, reduce the font size accordingly + if (w1 > 0.01 && w1 < 0.9 * w2) { + w1 /= w2; + m11New *= w1; + m21New *= w1; } - m11 *= w1; - m12 *= w1; - m21 *= w1; - m22 *= w1; } } + + // get the font + dfp = globalParams->getDisplayFont(substName); + delete substName; + if (!dfp) { + // this should never happen since GlobalParams sets up default + // mappings for the Base-14 fonts + error(-1, "Couldn't find a font for '%s'", + gfxFont->getName()->getCString()); + return NULL; + } + font = tryGetFont(xref, dfp, gfxFont, m11, m12, m21, m22, + m11New, m12New, m21New, m22New, gTrue); + } + } + + // check for error + if (!font) { + // This will happen if the user specifies a bogus font in the + // config file (a non-existent font file or a font that requires a + // rasterizer that is disabled or wasn't built in), or if a CID + // font has no associated font in the config file. + if (gfxFont->isCIDFont()) { + error(-1, "Couldn't find a font for the '%s' character collection", + ((GfxCIDFont *)gfxFont)->getCollection()->getCString()); + } else { + error(-1, "Couldn't find a font for '%s'", + gfxFont->getName() ? + gfxFont->getName()->getCString() : "[unnamed]"); } + return NULL; } -#if HAVE_FREETYPE_FREETYPE_H | HAVE_FREETYPE_H - // try to create a new TrueType font - if (useFreeType) { - ttFont = new XOutputTTFont(gfxFont, m11, m12, m21, m22, display, this); - if (ttFont->isOk()) { + // insert font in cache + if (nFonts == xOutFontCacheSize) { + --nFonts; + delete fonts[nFonts]; + } + for (j = nFonts; j > 0; --j) { + fonts[j] = fonts[j-1]; + } + fonts[0] = font; + ++nFonts; - // insert in cache - if (nTTFonts == ttFontCacheSize) { - --nTTFonts; - delete ttFonts[nTTFonts]; - } - for (j = nTTFonts; j > 0; --j) { - ttFonts[j] = ttFonts[j-1]; + return font; +} + +XOutputFont *XOutputFontCache::tryGetFont(XRef *xref, DisplayFontParam *dfp, + GfxFont *gfxFont, + double m11Orig, double m12Orig, + double m21Orig, double m22Orig, + double m11, double m12, + double m21, double m22, + GBool subst) { + XOutputFont *font; + + font = NULL; + + // create the new font + switch (dfp->kind) { + + case displayFontX: + font = tryGetServerFont(dfp->x.xlfd, dfp->x.encoding, gfxFont, + m11Orig, m12Orig, m21Orig, m22Orig, + m11, m12, m21, m22); + break; + + case displayFontT1: +#if HAVE_T1LIB_H + if (t1libControl != fontRastNone) { + font = tryGetT1FontFromFile(xref, dfp->t1.fileName, gfxFont, + m11Orig, m12Orig, m21Orig, m22Orig, + m11, m12, m21, m22, subst); + } +#endif +#if FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) + if (!font) { + if (freetypeControl != fontRastNone) { + font = tryGetFTFontFromFile(xref, dfp->t1.fileName, gfxFont, + m11Orig, m12Orig, m21Orig, m22Orig, + m11, m12, m21, m22, subst); } - ttFonts[0] = ttFont; - ++nTTFonts; + } +#endif +#if !((FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H)) || defined(HAVE_T1LIB_H)) + error(-1, "Config file specifies a Type 1 font,"); + error(-1, "but xpdf was not built with t1lib or FreeType2 support"); +#endif + break; - return ttFont; + case displayFontTT: +#if FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) + if (freetypeControl != fontRastNone) { + font = tryGetFTFontFromFile(xref, dfp->tt.fileName, gfxFont, + m11Orig, m12Orig, m21Orig, m22Orig, + m11, m12, m21, m22, subst); } - delete ttFont; - } #endif +#if !FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) + if (freetypeControl != fontRastNone) { + font = tryGetTTFontFromFile(xref, dfp->tt.fileName, gfxFont, + m11Orig, m12Orig, m21Orig, m22Orig, + m11, m12, m21, m22, subst); + } +#endif +#if !(HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) + error(-1, "Config file specifies a TrueType font,"); + error(-1, "but xpdf was not built with FreeType support"); + dfp = NULL; +#endif + break; + } + + return font; +} #if HAVE_T1LIB_H - // try to create a new Type 1 font - if (useT1lib) { - t1Font = new XOutputT1Font(gfxFont, t1FontName, m11, m12, m21, m22, - display, this); - if (t1Font->isOk()) { - - // insert in cache - if (nT1Fonts == t1FontCacheSize) { - --nT1Fonts; - delete t1Fonts[nT1Fonts]; - } - for (j = nT1Fonts; j > 0; --j) { - t1Fonts[j] = t1Fonts[j-1]; - } - t1Fonts[0] = t1Font; - ++nT1Fonts; +XOutputFont *XOutputFontCache::tryGetT1Font(XRef *xref, + GfxFont *gfxFont, + double m11, double m12, + double m21, double m22) { + Ref *id; + XOutputT1FontFile *xFontFile; + XOutputFont *font; + Ref embRef; + GString *fileName; + FILE *f; + char *fontBuf; + int fontLen; + Type1CFontFile *ff; + Object refObj, strObj; + int c; + int i; - return t1Font; + // check the already available font files + id = gfxFont->getID(); + for (i = 0; i < t1FontFiles->getLength(); ++i) { + xFontFile = (XOutputT1FontFile *)t1FontFiles->get(i); + if (xFontFile->num == id->num && xFontFile->gen == id->gen && + !xFontFile->subst) { + font = new XOutputT1Font(id, xFontFile->fontFile, + m11, m12, m21, m22, + m11, m12, m21, m22, display, xOut); + if (!font->isOk()) { + delete font; + return NULL; + } + return font; } - delete t1Font; } -#endif - // compute size and normalized transform matrix - size = sqrt(m21*m21 + m22*m22); - ntm11 = m11 / size; - ntm12 = m12 / size; - ntm21 = m21 / size; - ntm22 = m22 / size; + // check for an embedded font + if (gfxFont->getEmbeddedFontID(&embRef)) { - // create a new server font - serverFont = new XOutputServerFont(gfxFont, xFontName, xEncoding, - m11, m12, m21, m22, - size, ntm11, ntm12, ntm21, ntm22, - display, this); - if (serverFont->isOk()) { - - // insert in cache - if (nServerFonts == serverFontCacheSize) { - --nServerFonts; - delete serverFonts[nServerFonts]; + // create the font file + fileName = NULL; + if (!openTempFile(&fileName, &f, "wb", NULL)) { + error(-1, "Couldn't create temporary Type 1 font file"); + return NULL; + } + if (gfxFont->getType() == fontType1C) { + if (!(fontBuf = gfxFont->readEmbFontFile(xref, &fontLen))) { + fclose(f); + return NULL; + } + ff = new Type1CFontFile(fontBuf, fontLen); + ff->convertToType1(f); + delete ff; + gfree(fontBuf); + } else { // fontType1 + refObj.initRef(embRef.num, embRef.gen); + refObj.fetch(xref, &strObj); + refObj.free(); + strObj.streamReset(); + while ((c = strObj.streamGetChar()) != EOF) { + fputc(c, f); + } + strObj.streamClose(); + strObj.free(); } - for (j = nServerFonts; j > 0; --j) - serverFonts[j] = serverFonts[j-1]; - serverFonts[0] = serverFont; - ++nServerFonts; + fclose(f); - return serverFont; + // create the Font + font = tryGetT1FontFromFile(xref, fileName, gfxFont, + m11, m12, m21, m22, + m11, m12, m21, m22, gFalse); + + // remove the temporary file + unlink(fileName->getCString()); + delete fileName; + + // check for an external font file + } else if ((fileName = gfxFont->getExtFontFile())) { + font = tryGetT1FontFromFile(xref, fileName, gfxFont, + m11, m12, m21, m22, + m11, m12, m21, m22, gFalse); + + } else { + font = NULL; } - delete serverFont; - return NULL; + return font; } -#if HAVE_T1LIB_H -T1FontFile *XOutputFontCache::getT1Font(GfxFont *gfxFont, - GString *pdfBaseFont) { - Ref id; +XOutputFont *XOutputFontCache::tryGetT1FontFromFile(XRef *xref, + GString *fileName, + GfxFont *gfxFont, + double m11Orig, + double m12Orig, + double m21Orig, + double m22Orig, + double m11, double m12, + double m21, double m22, + GBool subst) { + Ref *id; T1FontFile *fontFile; + XOutputFont *font; + + // create the t1lib font file + fontFile = new T1FontFile(t1Engine, fileName->getCString(), + ((Gfx8BitFont *)gfxFont)->getEncoding(), + gfxFont->getFontBBox()); + if (!fontFile->isOk()) { + error(-1, "Couldn't create t1lib font from '%s'", + fileName->getCString()); + delete fontFile; + return NULL; + } + + // add to list + id = gfxFont->getID(); + t1FontFiles->append(new XOutputT1FontFile(id->num, id->gen, + subst, fontFile)); + + // create the Font + font = new XOutputT1Font(gfxFont->getID(), fontFile, + m11Orig, m12Orig, m21Orig, m22Orig, + m11, m12, m21, m22, display, xOut); + if (!font->isOk()) { + delete font; + return NULL; + } + return font; +} +#endif // HAVE_T1LIB_H + +#if FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) +XOutputFont *XOutputFontCache::tryGetFTFont(XRef *xref, + GfxFont *gfxFont, + double m11, double m12, + double m21, double m22) { + Ref *id; + XOutputFTFontFile *xFontFile; + XOutputFont *font; + Ref embRef; GString *fileName; - GString *tmpFileName; FILE *f; +#if 1 //~ need this until FT can handle fonts with missing tables char *fontBuf; int fontLen; - Type1CFontConverter *cvt; - Ref embRef; + TrueTypeFontFile *ff; +#endif Object refObj, strObj; int c; - int i, j; + int i; + // check the already available font files id = gfxFont->getID(); - - // check available fonts - fontFile = NULL; - for (i = 0; i < t1FontFilesSize && t1FontFiles[i].num >= 0; ++i) { - if (t1FontFiles[i].num == id.num && t1FontFiles[i].gen == id.gen) { - fontFile = t1FontFiles[i].fontFile; + for (i = 0; i < ftFontFiles->getLength(); ++i) { + xFontFile = (XOutputFTFontFile *)ftFontFiles->get(i); + if (xFontFile->num == id->num && xFontFile->gen == id->gen && + !xFontFile->subst) { + font = new XOutputFTFont(id, xFontFile->fontFile, + m11, m12, m21, m22, + m11, m12, m21, m22, display, xOut); + if (!font->isOk()) { + delete font; + return NULL; + } + return font; } } - // create a new font file - if (!fontFile) { - - // resize t1FontFiles if necessary - if (i == t1FontFilesSize) { - t1FontFiles = (XOutputT1FontFile *) - grealloc(t1FontFiles, - (t1FontFilesSize + 16) * sizeof(XOutputT1FontFile)); - for (j = 0; j < 16; ++j) { - t1FontFiles[t1FontFilesSize + j].num = -1; - } - t1FontFilesSize += 16; - } + // check for an embedded font + if (gfxFont->getEmbeddedFontID(&embRef)) { // create the font file - tmpFileName = NULL; - if (!gfxFont->is16Bit() && - (gfxFont->getType() == fontType1 || - gfxFont->getType() == fontType1C) && - gfxFont->getEmbeddedFontID(&embRef)) { - if (!openTempFile(&tmpFileName, &f, "wb", NULL)) { - error(-1, "Couldn't create temporary Type 1 font file"); + fileName = NULL; + if (!openTempFile(&fileName, &f, "wb", NULL)) { + error(-1, "Couldn't create temporary TrueType font file"); + return NULL; + } +#if 1 //~ need this until FT can handle fonts with missing tables + if (gfxFont->getType() == fontTrueType || + gfxFont->getType() == fontCIDType2) { + if (!(fontBuf = gfxFont->readEmbFontFile(xref, &fontLen))) { + fclose(f); return NULL; } - if (gfxFont->getType() == fontType1C) { - if (!(fontBuf = gfxFont->readEmbFontFile(&fontLen))) { - fclose(f); - return NULL; - } - cvt = new Type1CFontConverter(fontBuf, fontLen, f); - cvt->convert(); - delete cvt; - gfree(fontBuf); - } else { - gfxFont->getEmbeddedFontID(&embRef); - refObj.initRef(embRef.num, embRef.gen); - refObj.fetch(&strObj); - refObj.free(); - strObj.streamReset(); - while ((c = strObj.streamGetChar()) != EOF) { - fputc(c, f); - } - strObj.streamClose(); - strObj.free(); - } - fclose(f); - fileName = tmpFileName; - } else if (!gfxFont->is16Bit() && - gfxFont->getType() == fontType1 && - gfxFont->getExtFontFile()) { - fileName = gfxFont->getExtFontFile(); + ff = new TrueTypeFontFile(fontBuf, fontLen); + ff->writeTTF(f); + delete ff; + gfree(fontBuf); } else { - fileName = pdfBaseFont; + refObj.initRef(embRef.num, embRef.gen); + refObj.fetch(xref, &strObj); + refObj.free(); + strObj.streamReset(); + while ((c = strObj.streamGetChar()) != EOF) { + fputc(c, f); + } + strObj.streamClose(); + strObj.free(); } - - // create the t1lib font - fontFile = new T1FontFile(t1Engine, fileName->getCString(), - gfxFont->getEncoding()); - if (!fontFile->isOk()) { - error(-1, "Couldn't create t1lib font from '%s'", - fileName->getCString()); - delete fontFile; - return NULL; +#else + refObj.initRef(embRef.num, embRef.gen); + refObj.fetch(xref, &strObj); + refObj.free(); + strObj.streamReset(); + while ((c = strObj.streamGetChar()) != EOF) { + fputc(c, f); } - t1FontFiles[i].num = id.num; - t1FontFiles[i].gen = id.gen; - t1FontFiles[i].fontFile = fontFile; + strObj.streamClose(); + strObj.free(); +#endif + fclose(f); + + // create the Font + font = tryGetFTFontFromFile(xref, fileName, gfxFont, + m11, m12, m21, m22, + m11, m12, m21, m22, gFalse); + + // remove the temporary file + unlink(fileName->getCString()); + delete fileName; + + // check for an external font file + } else if ((fileName = gfxFont->getExtFontFile())) { + font = tryGetFTFontFromFile(xref, fileName, gfxFont, + m11, m12, m21, m22, + m11, m12, m21, m22, gFalse); + + } else { + font = NULL; + } - // remove the font file - if (tmpFileName) { - unlink(tmpFileName->getCString()); - delete tmpFileName; + return font; +} + +XOutputFont *XOutputFontCache::tryGetFTFontFromFile(XRef *xref, + GString *fileName, + GfxFont *gfxFont, + double m11Orig, + double m12Orig, + double m21Orig, + double m22Orig, + double m11, double m12, + double m21, double m22, + GBool subst) { + Ref *id; + FTFontFile *fontFile; + XOutputFont *font; + + // create the FreeType font file + if (gfxFont->isCIDFont()) { + if (gfxFont->getType() == fontCIDType2) { + fontFile = new FTFontFile(ftEngine, fileName->getCString(), + ((GfxCIDFont *)gfxFont)->getCIDToGID(), + ((GfxCIDFont *)gfxFont)->getCIDToGIDLen()); + } else { // fontCIDType0C + fontFile = new FTFontFile(ftEngine, fileName->getCString()); } + } else { + fontFile = new FTFontFile(ftEngine, fileName->getCString(), + ((Gfx8BitFont *)gfxFont)->getEncoding(), + ((Gfx8BitFont *)gfxFont)->getHasEncoding()); + } + if (!fontFile->isOk()) { + error(-1, "Couldn't create FreeType font from '%s'", + fileName->getCString()); + delete fontFile; + return NULL; } - return fontFile; + // add to list + id = gfxFont->getID(); + ftFontFiles->append(new XOutputFTFontFile(id->num, id->gen, + subst, fontFile)); + + // create the Font + font = new XOutputFTFont(gfxFont->getID(), fontFile, + m11Orig, m12Orig, m21Orig, m22Orig, + m11, m12, m21, m22, display, xOut); + if (!font->isOk()) { + delete font; + return NULL; + } + return font; } -#endif +#endif // FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) -#if HAVE_FREETYPE_FREETYPE_H | HAVE_FREETYPE_H -TTFontFile *XOutputFontCache::getTTFont(GfxFont *gfxFont) { - Ref id; - TTFontFile *fontFile; +#if !FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) +XOutputFont *XOutputFontCache::tryGetTTFont(XRef *xref, + GfxFont *gfxFont, + double m11, double m12, + double m21, double m22) { + Ref *id; + XOutputTTFontFile *xFontFile; + XOutputFont *font; + Ref embRef; GString *fileName; FILE *f; - Ref embRef; Object refObj, strObj; int c; - int i, j; + int i; + // check the already available font files id = gfxFont->getID(); - - // check available fonts - fontFile = NULL; - for (i = 0; i < ttFontFilesSize && ttFontFiles[i].num >= 0; ++i) { - if (ttFontFiles[i].num == id.num && ttFontFiles[i].gen == id.gen) { - fontFile = ttFontFiles[i].fontFile; + xFontFile = NULL; + for (i = 0; i < ttFontFiles->getLength(); ++i) { + xFontFile = (XOutputTTFontFile *)ttFontFiles->get(i); + if (xFontFile->num == id->num && xFontFile->gen == id->gen && + !xFontFile->subst) { + font = new XOutputTTFont(id, xFontFile->fontFile, + m11, m12, m21, m22, + m11, m12, m21, m22, display, xOut); + if (!font->isOk()) { + delete font; + return NULL; + } + return font; } } - // create a new font file - if (!fontFile) { - - // resize ttFontFiles if necessary - if (i == ttFontFilesSize) { - ttFontFiles = (XOutputTTFontFile *) - grealloc(ttFontFiles, - (ttFontFilesSize + 16) * sizeof(XOutputTTFontFile)); - for (j = 0; j < 16; ++j) { - ttFontFiles[ttFontFilesSize + j].num = -1; - } - ttFontFilesSize += 16; - } + // check for an embedded font + if (gfxFont->getEmbeddedFontID(&embRef)) { // create the font file + fileName = NULL; if (!openTempFile(&fileName, &f, "wb", NULL)) { error(-1, "Couldn't create temporary TrueType font file"); return NULL; } - gfxFont->getEmbeddedFontID(&embRef); refObj.initRef(embRef.num, embRef.gen); - refObj.fetch(&strObj); + refObj.fetch(xref, &strObj); refObj.free(); strObj.streamReset(); while ((c = strObj.streamGetChar()) != EOF) { @@ -1459,33 +1362,226 @@ TTFontFile *XOutputFontCache::getTTFont(GfxFont *gfxFont) { strObj.free(); fclose(f); - // create the FreeType font file - fontFile = new TTFontFile(ttEngine, fileName->getCString()); - if (!fontFile->isOk()) { - error(-1, "Couldn't create FreeType font from '%s'", - fileName->getCString()); - delete fontFile; - return NULL; - } - ttFontFiles[i].num = id.num; - ttFontFiles[i].gen = id.gen; - ttFontFiles[i].fontFile = fontFile; + // create the Font + font = tryGetTTFontFromFile(xref, fileName, gfxFont, + m11, m12, m21, m22, + m11, m12, m21, m22, gFalse); - // remove the font file + // remove the temporary file unlink(fileName->getCString()); delete fileName; + + } else if ((fileName = gfxFont->getExtFontFile())) { + font = tryGetTTFontFromFile(xref, fileName, gfxFont, + m11, m12, m21, m22, + m11, m12, m21, m22, gFalse); + + } else { + font = NULL; + } + + return font; +} + +XOutputFont *XOutputFontCache::tryGetTTFontFromFile(XRef *xref, + GString *fileName, + GfxFont *gfxFont, + double m11Orig, + double m12Orig, + double m21Orig, + double m22Orig, + double m11, double m12, + double m21, double m22, + GBool subst) { + Ref *id; + TTFontFile *fontFile; + XOutputFont *font; + + // create the FreeType font file + if (gfxFont->isCIDFont()) { + // fontCIDType2 + fontFile = new TTFontFile(ttEngine, fileName->getCString(), + ((GfxCIDFont *)gfxFont)->getCIDToGID(), + ((GfxCIDFont *)gfxFont)->getCIDToGIDLen()); + } else { + fontFile = new TTFontFile(ttEngine, fileName->getCString(), + ((Gfx8BitFont *)gfxFont)->getEncoding(), + ((Gfx8BitFont *)gfxFont)->getHasEncoding()); + } + if (!fontFile->isOk()) { + error(-1, "Couldn't create FreeType font from '%s'", + fileName->getCString()); + delete fontFile; + return NULL; + } + + // add to list + id = gfxFont->getID(); + ttFontFiles->append(new XOutputTTFontFile(id->num, id->gen, + subst, fontFile)); + + // create the Font + font = new XOutputTTFont(gfxFont->getID(), fontFile, + m11Orig, m12Orig, m21Orig, m22Orig, + m11, m12, m21, m22, display, xOut); + if (!font->isOk()) { + delete font; + return NULL; + } + return font; +} +#endif // !FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) + +XOutputFont *XOutputFontCache::tryGetServerFont(GString *xlfd, + GString *encodingName, + GfxFont *gfxFont, + double m11Orig, double m12Orig, + double m21Orig, double m22Orig, + double m11, double m12, + double m21, double m22) { + XOutputFont *font; + UnicodeMap *uMap; + CharCodeToUnicode *ctu; + + uMap = globalParams->getUnicodeMap(encodingName); + if (gfxFont->isCIDFont()) { + ctu = ((GfxCIDFont *)gfxFont)->getToUnicode(); + font = new XOutputServer16BitFont(gfxFont->getID(), xlfd, uMap, ctu, + m11Orig, m12Orig, m21Orig, m22Orig, + m11, m12, m21, m22, + display, xOut); + ctu->decRefCnt(); + } else { + ctu = ((Gfx8BitFont *)gfxFont)->getToUnicode(); + font = new XOutputServer8BitFont(gfxFont->getID(), xlfd, uMap, ctu, + m11Orig, m12Orig, m21Orig, m22Orig, + m11, m12, m21, m22, + display, xOut); + ctu->decRefCnt(); + } + uMap->decRefCnt(); + if (!font->isOk()) { + delete font; + return NULL; + } + return font; +} + +//------------------------------------------------------------------------ +// T3FontCache +//------------------------------------------------------------------------ + +struct T3FontCacheTag { + Gushort code; + Gushort mru; // valid bit (0x8000) and MRU index + double wx, wy; // untransformed glyph metrics +}; + +class T3FontCache { +public: + + T3FontCache(Ref *fontID, double m11A, double m12A, + double m21A, double m22A, + int glyphXA, int glyphYA, int glyphWA, int glyphHA, + Display *displayA, Visual *visual, Guint depth, + Pixmap origPixmap); + ~T3FontCache(); + GBool matches(Ref *idA, double m11A, double m12A, + double m21A, double m22A) + { return fontID.num == idA->num && fontID.gen == idA->gen && + m11 == m11A && m12 == m12A && m21 == m21A && m22 == m22A; } + + Ref fontID; // PDF font ID + double m11, m12, m21, m22; // transform matrix + int glyphX, glyphY; // pixel offset of glyph pixmaps + int glyphW, glyphH; // size of glyph pixmaps, in pixels + int glyphSize; // size of glyph pixmaps, in bytes + int cacheSets; // number of sets in cache + int cacheAssoc; // cache associativity (glyphs per set) + Guchar *cacheData; // glyph pixmap cache + T3FontCacheTag *cacheTags; // cache tags, i.e., char codes + Display *display; + Pixmap pixmap; + XImage *image; +}; + +T3FontCache::T3FontCache(Ref *fontIDA, double m11A, double m12A, + double m21A, double m22A, + int glyphXA, int glyphYA, int glyphWA, int glyphHA, + Display *displayA, Visual *visual, Guint depth, + Pixmap origPixmap) { + int i; + + fontID = *fontIDA; + m11 = m11A; + m12 = m12A; + m21 = m21A; + m22 = m22A; + glyphX = glyphXA; + glyphY = glyphYA; + glyphW = glyphWA; + glyphH = glyphHA; + glyphSize = glyphW * glyphH; + cacheAssoc = 8; + if (glyphSize <= 256) { + cacheSets = 8; + } else if (glyphSize <= 512) { + cacheSets = 4; + } else if (glyphSize <= 1024) { + cacheSets = 2; + } else { + cacheSets = 1; } + cacheData = (Guchar *)gmalloc(cacheSets * cacheAssoc * glyphSize); + cacheTags = (T3FontCacheTag *)gmalloc(cacheSets * cacheAssoc * + sizeof(T3FontCacheTag)); + for (i = 0; i < cacheSets * cacheAssoc; ++i) { + cacheTags[i].mru = i & (cacheAssoc - 1); + } + display = displayA; + pixmap = XCreatePixmap(display, origPixmap, glyphW, glyphH, depth); + image = XCreateImage(display, visual, depth, ZPixmap, 0, NULL, + glyphW, glyphH, 8, 0); + image->data = (char *)gmalloc(glyphH * image->bytes_per_line); +} - return fontFile; +T3FontCache::~T3FontCache() { + gfree(cacheData); + gfree(cacheTags); + XFreePixmap(display, pixmap); + gfree(image->data); + image->data = NULL; + XDestroyImage(image); } -#endif + +struct T3GlyphStack { + GBool cacheable; + Gushort code; + T3FontCache *cache; + int cacheIdx; + T3FontCacheTag *cacheTag; + Guchar *cacheData; + double x, y; + Unicode *u; + int uLen; + GfxRGB color; + int origPixmapW, origPixmapH; + Pixmap origPixmap; + GC origStrokeGC; + GC origFillGC; + Region origClipRegion; + double wx, wy; // untransformed glyph metrics + T3GlyphStack *next; +}; //------------------------------------------------------------------------ // XOutputDev //------------------------------------------------------------------------ -XOutputDev::XOutputDev(Display *display, Pixmap pixmap, Guint depth, - Colormap colormap, unsigned long paperColor) { +XOutputDev::XOutputDev(Display *displayA, Pixmap pixmapA, Guint depthA, + Colormap colormapA, GBool reverseVideoA, + unsigned long paperColor, GBool installCmap, + int rgbCubeSize) { XVisualInfo visualTempl; XVisualInfo *visualList; int nVisuals; @@ -1496,17 +1592,19 @@ XOutputDev::XOutputDev(Display *display, Pixmap pixmap, Guint depth, int r, g, b, n, m, i; GBool ok; + xref = NULL; + // get display/pixmap info - this->display = display; + display = displayA; screenNum = DefaultScreen(display); - this->pixmap = pixmap; - this->depth = depth; - this->colormap = colormap; + pixmap = pixmapA; + depth = depthA; + colormap = colormapA; // check for TrueColor visual trueColor = gFalse; if (depth == 0) { - this->depth = DefaultDepth(display, screenNum); + depth = DefaultDepth(display, screenNum); visualList = XGetVisualInfo(display, 0, &visualTempl, &nVisuals); for (i = 0; i < nVisuals; ++i) { if (visualList[i].visual == DefaultVisual(display, screenNum)) { @@ -1533,13 +1631,16 @@ XOutputDev::XOutputDev(Display *display, Pixmap pixmap, Guint depth, // allocate a color cube if (!trueColor) { + redMap[BlackPixel(display, screenNum) & 0xff] = 0; + redMap[WhitePixel(display, screenNum) & 0xff] = 1; // set colors in private colormap if (installCmap) { for (numColors = 6; numColors >= 2; --numColors) { m = numColors * numColors * numColors; - if (XAllocColorCells(display, colormap, False, NULL, 0, colors, m)) + if (XAllocColorCells(display, colormap, False, NULL, 0, colors, m)) { break; + } } if (numColors >= 2) { m = numColors * numColors * numColors; @@ -1553,6 +1654,7 @@ XOutputDev::XOutputDev(Display *display, Pixmap pixmap, Guint depth, xcolors[n].green = (g * 65535) / (numColors - 1); xcolors[n].blue = (b * 65535) / (numColors - 1); xcolors[n].flags = DoRed | DoGreen | DoBlue; + redMap[xcolors[n].pixel & 0xff] = xcolors[n].red / 65535.0; ++n; } } @@ -1567,8 +1669,9 @@ XOutputDev::XOutputDev(Display *display, Pixmap pixmap, Guint depth, // allocate colors in shared colormap } else { - if (rgbCubeSize > maxRGBCube) + if (rgbCubeSize > maxRGBCube) { rgbCubeSize = maxRGBCube; + } ok = gFalse; for (numColors = rgbCubeSize; numColors >= 2; --numColors) { ok = gTrue; @@ -1577,21 +1680,26 @@ XOutputDev::XOutputDev(Display *display, Pixmap pixmap, Guint depth, for (g = 0; g < numColors && ok; ++g) { for (b = 0; b < numColors && ok; ++b) { if (n == 0) { - colors[n++] = BlackPixel(display, screenNum); + colors[n] = BlackPixel(display, screenNum); + redMap[colors[n] & 0xff] = 0; + ++n; } else { xcolor.red = (r * 65535) / (numColors - 1); xcolor.green = (g * 65535) / (numColors - 1); xcolor.blue = (b * 65535) / (numColors - 1); - if (XAllocColor(display, colormap, &xcolor)) + if (XAllocColor(display, colormap, &xcolor)) { colors[n++] = xcolor.pixel; - else + redMap[xcolor.pixel & 0xff] = xcolor.red / 65535.0; + } else { ok = gFalse; + } } } } } - if (ok) + if (ok) { break; + } XFreeColors(display, colormap, &colors[1], n-1, 0); } if (!ok) { @@ -1602,6 +1710,9 @@ XOutputDev::XOutputDev(Display *display, Pixmap pixmap, Guint depth, } } + // reverse video mode + reverseVideo = reverseVideoA; + // allocate GCs gcValues.foreground = BlackPixel(display, screenNum); gcValues.background = WhitePixel(display, screenNum); @@ -1621,52 +1732,48 @@ XOutputDev::XOutputDev(Display *display, Pixmap pixmap, Guint depth, // no clip region yet clipRegion = NULL; - // get user font map - for (n = 0; devFontMap[n].pdfFont; ++n) ; - userFontMap = (FontMapEntry *)gmalloc((n+1) * sizeof(FontMapEntry)); - for (i = 0; i < n; ++i) { - userFontMap[i].pdfFont = devFontMap[i].pdfFont; - userFontMap[i].xFont = devFontMap[i].devFont; - m = strlen(userFontMap[i].xFont); - if (m >= 10 && !strcmp(userFontMap[i].xFont + m - 10, "-iso8859-2")) - userFontMap[i].encoding = &isoLatin2Encoding; - else if (m >= 13 && !strcmp(userFontMap[i].xFont + m - 13, - "-fontspecific")) - userFontMap[i].encoding = NULL; - else - userFontMap[i].encoding = &isoLatin1Encoding; - userFontMap[i].t1Font = NULL; - } - userFontMap[n].pdfFont = NULL; - // set up the font cache and fonts gfxFont = NULL; font = NULL; - fontCache = new XOutputFontCache(display, this->depth); + fontCache = new XOutputFontCache(display, depth, this, + globalParams->getT1libControl(), + globalParams->getFreeTypeControl()); + nT3Fonts = 0; + t3GlyphStack = NULL; // empty state stack save = NULL; // create text object - text = new TextPage(useEUCJP ? textOutASCII7 : textOutLatin1, gFalse); - - type3Warning = gFalse; + text = new TextPage(gFalse); } XOutputDev::~XOutputDev() { - gfree(userFontMap); + int i; + delete fontCache; + for (i = 0; i < nT3Fonts; ++i) { + delete t3FontCache[i]; + } XFreeGC(display, strokeGC); XFreeGC(display, fillGC); XFreeGC(display, paperGC); - if (clipRegion) + if (clipRegion) { XDestroyRegion(clipRegion); + } delete text; } -void XOutputDev::startDoc() { +void XOutputDev::startDoc(XRef *xrefA) { + int i; + + xref = xrefA; fontCache->startDoc(screenNum, colormap, trueColor, rMul, gMul, bMul, rShift, gShift, bShift, colors, numColors); + for (i = 0; i < nT3Fonts; ++i) { + delete t3FontCache[i]; + } + nT3Fonts = 0; } void XOutputDev::startPage(int pageNum, GfxState *state) { @@ -1896,6 +2003,11 @@ void XOutputDev::updateFillColor(GfxState *state) { GfxRGB rgb; state->getFillRGB(&rgb); + if (reverseVideo) { + rgb.r = 1 - rgb.r; + rgb.g = 1 - rgb.g; + rgb.b = 1 - rgb.b; + } XSetForeground(display, fillGC, findColor(&rgb)); } @@ -1903,6 +2015,11 @@ void XOutputDev::updateStrokeColor(GfxState *state) { GfxRGB rgb; state->getStrokeRGB(&rgb); + if (reverseVideo) { + rgb.r = 1 - rgb.r; + rgb.g = 1 - rgb.g; + rgb.b = 1 - rgb.b; + } XSetForeground(display, strokeGC, findColor(&rgb)); } @@ -1913,20 +2030,20 @@ void XOutputDev::updateFont(GfxState *state) { font = NULL; return; } + if (gfxFont->getType() == fontType3) { + font = NULL; + return; + } state->getFontTransMat(&m11, &m12, &m21, &m22); m11 *= state->getHorizScaling(); - m21 *= state->getHorizScaling(); - font = fontCache->getFont(gfxFont, m11, m12, m21, m22); + m12 *= state->getHorizScaling(); + font = fontCache->getFont(xref, gfxFont, m11, m12, m21, m22); if (font) { font->updateGC(fillGC); font->updateGC(strokeGC); } - // look for Type 3 font - if (!type3Warning && gfxFont->getType() == fontType3) { - error(-1, "This document uses Type 3 fonts - some text may not be correctly displayed"); - type3Warning = gTrue; - } + text->updateFont(state); } void XOutputDev::stroke(GfxState *state) { @@ -2017,10 +2134,21 @@ void XOutputDev::doClip(GfxState *state, int rule) { n = convertPath(state, &points, &size, &numPoints, &lengths, gTrue); // construct union of subpath regions - region = XPolygonRegion(points, lengths[0], rule); + // (XPolygonRegion chokes if there aren't at least three points -- + // this happens if the PDF file does moveto/closepath/clip, which + // sets an empty clipping region) + if (lengths[0] > 2) { + region = XPolygonRegion(points, lengths[0], rule); + } else { + region = XCreateRegion(); + } j = lengths[0] + 1; for (i = 1; i < n; ++i) { - region2 = XPolygonRegion(points + j, lengths[i], rule); + if (lengths[i] > 2) { + region2 = XPolygonRegion(points + j, lengths[i], rule); + } else { + region2 = XCreateRegion(); + } XUnionRegion(region2, region, region); XDestroyRegion(region2); j += lengths[i] + 1; @@ -2103,7 +2231,7 @@ int XOutputDev::convertPath(GfxState *state, XPoint **points, int *size, // close subpath if necessary if (fillHack && ((*points)[*numPoints-1].x != (*points)[j].x || - (*points)[*numPoints-1].y != (*points)[j].y)) { + (*points)[*numPoints-1].y != (*points)[j].y)) { addPoint(points, size, numPoints, (*points)[j].x, (*points)[j].y); } @@ -2115,6 +2243,21 @@ int XOutputDev::convertPath(GfxState *state, XPoint **points, int *size, addPoint(points, size, numPoints, 0, 0); } + // kludge: munge any points that are *way* out of bounds - these can + // crash certain (buggy) X servers + for (i = 0; i < *numPoints; ++i) { + if ((*points)[i].x < -pixmapW) { + (*points)[i].x = -pixmapW; + } else if ((*points)[i].x > 2 * pixmapW) { + (*points)[i].x = 2 * pixmapW; + } + if ((*points)[i].y < -pixmapH) { + (*points)[i].y = -pixmapH; + } else if ((*points)[i].y > 2 * pixmapH) { + (*points)[i].y = 2 * pixmapH; + } + } + // combine compound polygons if (fillHack) { i = j = k = 0; @@ -2133,13 +2276,12 @@ int XOutputDev::convertPath(GfxState *state, XPoint **points, int *size, // look for the first subsequent subpath, if any, which overlaps for (ii = i; ii < n; ++ii) { - if (((rects[ii].xMin > rect.xMin && rects[ii].xMin < rect.xMax) || - (rects[ii].xMax > rect.xMin && rects[ii].xMax < rect.xMax) || - (rects[ii].xMin < rect.xMin && rects[ii].xMax > rect.xMax)) && - ((rects[ii].yMin > rect.yMin && rects[ii].yMin < rect.yMax) || - (rects[ii].yMax > rect.yMin && rects[ii].yMax < rect.yMax) || - (rects[ii].yMin < rect.yMin && rects[ii].yMax > rect.yMax))) + if (rects[ii].xMax > rects[i].xMin && + rects[ii].xMin < rects[i].xMax && + rects[ii].yMax > rects[i].yMin && + rects[ii].yMin < rects[i].yMax) { break; + } } // if there is an overlap, combine the polygons @@ -2308,7 +2450,7 @@ void XOutputDev::addPoint(XPoint **points, int *size, int *k, int x, int y) { } void XOutputDev::beginString(GfxState *state, GString *s) { - text->beginString(state, s, font ? font->isHex() : gFalse); + text->beginString(state); } void XOutputDev::endString(GfxState *state) { @@ -2316,418 +2458,428 @@ void XOutputDev::endString(GfxState *state) { } void XOutputDev::drawChar(GfxState *state, double x, double y, - double dx, double dy, Guchar c) { - double x1, y1; + double dx, double dy, + double originX, double originY, + CharCode code, Unicode *u, int uLen) { + int render; + double x1, y1, dx1, dy1; + GfxRGB rgb; + double saveCurX, saveCurY; + double *ctm; + double saveCTM[6]; - text->addChar(state, x, y, dx, dy, c); + text->addChar(state, x, y, dx, dy, u, uLen); - if (!font) + if (!font) { return; + } // check for invisible text -- this is used by Acrobat Capture - if ((state->getRender() & 3) == 3) + render = state->getRender(); + if ((render & 3) == 3) { return; + } + x -= originX; + y -= originY; state->transform(x, y, &x1, &y1); + state->transformDelta(dx, dy, &dx1, &dy1); - font->drawChar(state, pixmap, pixmapW, pixmapH, - (state->getRender() & 1) ? strokeGC : fillGC, - xoutRound(x1), xoutRound(y1), c); -} - -void XOutputDev::drawChar16(GfxState *state, double x, double y, - double dx, double dy, int c) { - int c1; - XChar2b c2[4]; - double x1, y1; -#if JAPANESE_SUPPORT | CHINESE_GB_SUPPORT | CHINESE_CNS_SUPPORT - int t1, t2; -#endif -#if JAPANESE_SUPPORT - double x2; - char *p; - int n, i; -#endif - - if (gfxFont) { - text->addChar16(state, x, y, dx, dy, c, gfxFont->getCharSet16()); + // fill + if (!(render & 1)) { + state->getFillRGB(&rgb); + if (reverseVideo) { + rgb.r = 1 - rgb.r; + rgb.g = 1 - rgb.g; + rgb.b = 1 - rgb.b; + } + font->drawChar(state, pixmap, pixmapW, pixmapH, fillGC, &rgb, + x1, y1, dx1, dy1, code, u, uLen); + } + + // stroke + if ((render & 3) == 1 || (render & 3) == 2) { + if (font->hasGetCharPath()) { + saveCurX = state->getCurX(); + saveCurY = state->getCurY(); + ctm = state->getCTM(); + memcpy(saveCTM, ctm, 6 * sizeof(double)); + state->setCTM(1, 0, 0, 1, x1, y1); + font->getCharPath(state, code, u, uLen); + stroke(state); + state->clearPath(); + state->setCTM(saveCTM[0], saveCTM[1], saveCTM[2], saveCTM[3], + saveCTM[4], saveCTM[5]); + state->moveTo(saveCurX, saveCurY); + } else { + // can't stroke the outline, so just fill it using the stroke + // color + state->getStrokeRGB(&rgb); + if (reverseVideo) { + rgb.r = 1 - rgb.r; + rgb.g = 1 - rgb.g; + rgb.b = 1 - rgb.b; + } + font->drawChar(state, pixmap, pixmapW, pixmapH, strokeGC, &rgb, + x1, y1, dx1, dy1, code, u, uLen); + } } - //~ assumes font is an XOutputServerFont - - if (!font) - return; +#if 0 //~ unimplemented: clipping to char path + // clip + if (render & 4) { + } +#endif +} - // check for invisible text -- this is used by Acrobat Capture - if ((state->getRender() & 3) == 3) - return; +GBool XOutputDev::beginType3Char(GfxState *state, + CharCode code, Unicode *u, int uLen) { + Ref *fontID; + double *ctm, *bbox; + GfxRGB color; + T3FontCache *t3Font; + T3GlyphStack *t3gs; + double x1, y1, xMin, yMin, xMax, yMax, xt, yt; + int i, j; - // handle origin offset for vertical fonts - if (gfxFont->getWMode16() == 1) { - x -= gfxFont->getOriginX16(c) * state->getFontSize(); - y -= gfxFont->getOriginY16(c) * state->getFontSize(); + if (!gfxFont) { + return gFalse; } + fontID = gfxFont->getID(); + ctm = state->getCTM(); + state->transform(0, 0, &xt, &yt); - state->transform(x, y, &x1, &y1); + // is it the first (MRU) font in the cache? + if (!(nT3Fonts > 0 && + t3FontCache[0]->matches(fontID, ctm[0], ctm[1], ctm[2], ctm[3]))) { - c1 = 0; - switch (gfxFont->getCharSet16()) { - - // convert Adobe-Japan1-2 to JIS X 0208-1983 - case font16AdobeJapan12: -#if JAPANESE_SUPPORT - if (c <= 96) { - c1 = japan12Map[c]; - } else if (c <= 632) { - if (c <= 230) - c1 = 0; - else if (c <= 324) - c1 = japan12Map[c - 230]; - else if (c <= 421) - c1 = japan12KanaMap1[c - 325]; - else if (c <= 500) - c1 = 0; - else if (c <= 598) - c1 = japan12KanaMap2[c - 501]; - else - c1 = 0; - } else if (c <= 1124) { - if (c <= 779) { - if (c <= 726) - c1 = 0x2121 + (c - 633); - else if (c <= 740) - c1 = 0x2221 + (c - 727); - else if (c <= 748) - c1 = 0x223a + (c - 741); - else if (c <= 755) - c1 = 0x224a + (c - 749); - else if (c <= 770) - c1 = 0x225c + (c - 756); - else if (c <= 778) - c1 = 0x2272 + (c - 771); - else - c1 = 0x227e; - } else if (c <= 841) { - if (c <= 789) - c1 = 0x2330 + (c - 780); - else if (c <= 815) - c1 = 0x2341 + (c - 790); - else - c1 = 0x2361 + (c - 816); - } else if (c <= 1010) { - if (c <= 924) - c1 = 0x2421 + (c - 842); - else - c1 = 0x2521 + (c - 925); - } else { - if (c <= 1034) - c1 = 0x2621 + (c - 1011); - else if (c <= 1058) - c1 = 0x2641 + (c - 1035); - else if (c <= 1091) - c1 = 0x2721 + (c - 1059); - else - c1 = 0x2751 + (c - 1092); - } - } else if (c <= 4089) { - t1 = (c - 1125) / 94; - t2 = (c - 1125) % 94; - c1 = 0x3021 + (t1 << 8) + t2; - } else if (c <= 7477) { - t1 = (c - 4090) / 94; - t2 = (c - 4090) % 94; - c1 = 0x5021 + (t1 << 8) + t2; - } else if (c <= 7554) { - c1 = 0; - } else if (c <= 7563) { // circled Arabic numbers 1..9 - c1 = 0x2331 + (c - 7555); - c2[0].byte1 = c1 >> 8; - c2[0].byte2 = c1 & 0xff; - XDrawString16(display, pixmap, - (state->getRender() & 1) ? strokeGC : fillGC, - xoutRound(x1), xoutRound(y1), c2, 1); - c1 = 0x227e; - c2[0].byte1 = c1 >> 8; - c2[0].byte2 = c1 & 0xff; - XDrawString16(display, pixmap, - (state->getRender() & 1) ? strokeGC : fillGC, - xoutRound(x1), xoutRound(y1), c2, 1); - c1 = -1; - } else if (c <= 7574) { // circled Arabic numbers 10..20 - n = c - 7564 + 10; - x2 = x1; - for (i = 0; i < 2; ++i) { - c1 = 0x2330 + (i == 0 ? (n / 10) : (n % 10)); - c2[0].byte1 = c1 >> 8; - c2[0].byte2 = c1 & 0xff; - XDrawString16(display, pixmap, - (state->getRender() & 1) ? strokeGC : fillGC, - xoutRound(x2), xoutRound(y1), c2, 1); - x2 += 0.5 * state->getTransformedFontSize(); - } - c1 = 0x227e; - c2[0].byte1 = c1 >> 8; - c2[0].byte2 = c1 & 0xff; - XDrawString16(display, pixmap, - (state->getRender() & 1) ? strokeGC : fillGC, - xoutRound(x1), xoutRound(y1), c2, 1); - c1 = -1; - } else if (c <= 7584) { // Roman numbers I..X - p = japan12Roman[c - 7575]; - n = strlen(p); - for (; *p; ++p) { - if (*p == 'I') - c1 = 0x2349; - else if (*p == 'V') - c1 = 0x2356; - else // 'X' - c1 = 0x2358; - c2[0].byte1 = c1 >> 8; - c2[0].byte2 = c1 & 0xff; - XDrawString16(display, pixmap, - (state->getRender() & 1) ? strokeGC : fillGC, - xoutRound(x1), xoutRound(y1), c2, 1); - if (*p == 'I') - x1 += 0.2 * state->getTransformedFontSize(); - else - x1 += 0.5 * state->getTransformedFontSize(); - } - c1 = -1; - } else if (c <= 7632) { - if (c <= 7600) { - c1 = 0; - } else if (c <= 7606) { - p = japan12Abbrev1[c - 7601]; - n = strlen(p); - for (; *p; ++p) { - c1 = 0x2300 + *p; - c2[0].byte1 = c1 >> 8; - c2[0].byte2 = c1 & 0xff; - XDrawString16(display, pixmap, - (state->getRender() & 1) ? strokeGC : fillGC, - xoutRound(x1), xoutRound(y1), c2, 1); - x1 += 0.5 * state->getTransformedFontSize(); + // is the font elsewhere in the cache? + for (i = 1; i < nT3Fonts; ++i) { + if (t3FontCache[i]->matches(fontID, ctm[0], ctm[1], ctm[2], ctm[3])) { + t3Font = t3FontCache[i]; + for (j = i; j > 0; --j) { + t3FontCache[j] = t3FontCache[j - 1]; } - c1 = -1; - } else { - c1 = 0; + t3FontCache[0] = t3Font; + break; } - } else { - c1 = 0; - } -#if 0 //~ - if (c1 == 0) - error(-1, "Unsupported Adobe-Japan1-2 character: %d", c); -#endif -#endif // JAPANESE_SUPPORT - break; - - // convert Adobe-GB1-2 to GB 2312-80 - case font16AdobeGB12: -#if CHINESE_GB_SUPPORT - if (c <= 939) { - c1 = gb12Map[c]; - } else if (c <= 4605) { - t1 = (c - 940) / 94; - t2 = (c - 940) % 94; - c1 = 0x3021 + (t1 << 8) + t2; - } else if (c <= 4694) { - c1 = c - 4606 + 0x5721; - } else if (c <= 7702) { - t1 = (c - 4695) / 94; - t2 = (c - 4695) % 94; - c1 = 0x5821 + (t1 << 8) + t2; - } else if (c == 7716) { - c1 = 0x2121; - } -#if 1 //~ - if (c1 == 0) { - error(-1, "Unsupported Adobe-GB1-2 character: %d", c); } -#endif -#endif // CHINESE_GB_SUPPORT - break; + if (i >= nT3Fonts) { - // convert Adobe-CNS1-3 to Big5 - case font16AdobeCNS13: -#if CHINESE_CNS_SUPPORT - if (c <= 98) { - c1 = cns13Map1[c]; - } else if (c <= 502) { - if (c == 247) { - c1 = 0xa1f7; - } else if (c == 248) { - c1 = 0xa1f6; - } else { - t1 = (c - 99) / 157; - t2 = (c - 99) % 157; - if (t2 <= 62) { - c1 = 0xa140 + (t1 << 8) + t2; - } else { - c1 = 0xa162 + (t1 << 8) + t2; - } + // create new entry in the font cache + if (nT3Fonts == xOutT3FontCacheSize) { + delete t3FontCache[nT3Fonts - 1]; + --nT3Fonts; + } + for (j = nT3Fonts; j > 0; --j) { + t3FontCache[j] = t3FontCache[j - 1]; } - } else if (c <= 505) { - c1 = 0xa3bd + (c - 503); - } else if (c <= 594) { - c1 = 0; - } else if (c <= 5995) { - if (c == 2431) { - c1 = 0xacfe; - } else if (c == 4308) { - c1 = 0xbe52; - } else if (c == 5221) { - c1 = 0xc2cb; - } else if (c == 5495) { - c1 = 0xc456; - } else if (c == 5550) { - c1 = 0xc3ba; - } else if (c == 5551) { - c1 = 0xc3b9; + ++nT3Fonts; + bbox = gfxFont->getFontBBox(); + if (bbox[0] == 0 && bbox[1] == 0 && bbox[2] == 0 && bbox[3] == 0) { + // broken bounding box -- just take a guess + xMin = xt - 5; + xMax = xMin + 30; + yMax = yt + 15; + yMin = yMax - 45; } else { - if (c >= 2007 && c <= 2430) { - t1 = c - 594; - } else if (c >= 4309 && c <= 4695) { - t1 = c - 596; - } else if (c >= 5222 && c <= 5410) { - t1 = c - 596; - } else if (c >= 5496 && c <= 5641) { - t1 = c - 596; - } else { - t1 = c - 595; + state->transform(bbox[0], bbox[1], &x1, &y1); + xMin = xMax = x1; + yMin = yMax = y1; + state->transform(bbox[0], bbox[3], &x1, &y1); + if (x1 < xMin) { + xMin = x1; + } else if (x1 > xMax) { + xMax = x1; } - t2 = t1 % 157; - t1 /= 157; - if (t2 <= 62) { - c1 = 0xa440 + (t1 << 8) + t2; - } else { - c1 = 0xa462 + (t1 << 8) + t2; + if (y1 < yMin) { + yMin = y1; + } else if (y1 > yMax) { + yMax = y1; + } + state->transform(bbox[2], bbox[1], &x1, &y1); + if (x1 < xMin) { + xMin = x1; + } else if (x1 > xMax) { + xMax = x1; + } + if (y1 < yMin) { + yMin = y1; + } else if (y1 > yMax) { + yMax = y1; + } + state->transform(bbox[2], bbox[3], &x1, &y1); + if (x1 < xMin) { + xMin = x1; + } else if (x1 > xMax) { + xMax = x1; + } + if (y1 < yMin) { + yMin = y1; + } else if (y1 > yMax) { + yMax = y1; } } - } else if (c <= 13645) { - if (c == 6039) { - c1 = 0xc9be; - } else if (c == 6134) { - c1 = 0xcaf7; - } else if (c == 8142) { - c1 = 0xdadf; - } else if (c == 8788) { - c1 = 0xd6cc; - } else if (c == 8889) { - c1 = 0xd77a; - } else if (c == 10926) { - c1 = 0xebf1; - } else if (c == 11073) { - c1 = 0xecde; - } else if (c == 11361) { - c1 = 0xf0cb; - } else if (c == 11719) { - c1 = 0xf056; - } else if (c == 12308) { - c1 = 0xeeeb; - } else if (c == 12526) { - c1 = 0xf4b5; - } else if (c == 12640) { - c1 = 0xf16b; - } else if (c == 12783) { - c1 = 0xf268; - } else if (c == 12900) { - c1 = 0xf663; - } else if (c == 13585) { - c1 = 0xf9c4; - } else if (c == 13641) { - c1 = 0xf9c6; - } else { - if (c >= 6006 && c <= 6038) { - t1 = c - 5995; - } else if (c >= 6088 && c <= 6133) { - t1 = c - 5995; - } else if (c >= 6302 && c <= 8250) { - t1 = c - 5995; - } else if (c >= 8251 && c <= 8888) { - t1 = c - 5994; - } else if (c >= 8890 && c <= 9288) { - t1 = c - 5995; - } else if (c >= 9289 && c <= 10925) { - t1 = c - 5994; - } else if (c >= 10927 && c <= 11072) { - t1 = c - 5995; - } else if (c >= 11362 && c <= 11477) { - t1 = c - 5997; - } else if (c >= 11615 && c <= 11718) { - t1 = c - 5995; - } else if (c >= 11942 && c <= 12139) { - t1 = c - 5995; - } else if (c >= 12140 && c <= 12221) { - t1 = c - 5994; - } else if (c >= 12222 && c <= 12307) { - t1 = c - 5993; - } else if (c >= 12309 && c <= 12316) { - t1 = c - 5994; - } else if (c >= 12317 && c <= 12469) { - t1 = c - 5993; - } else if (c >= 12470 && c <= 12525) { - t1 = c - 5992; - } else if (c >= 12527 && c <= 12639) { - t1 = c - 5993; - } else if (c >= 12641 && c <= 12782) { - t1 = c - 5994; - } else if (c >= 12784 && c <= 12828) { - t1 = c - 5995; - } else if (c >= 12829 && c <= 12899) { - t1 = c - 5994; - } else if (c >= 12901 && c <= 13094) { - t1 = c - 5995; - } else if (c >= 13095 && c <= 13584) { - t1 = c - 5994; - } else if (c >= 13586 && c <= 13628) { - t1 = c - 5995; - } else if (c == 13629) { - t1 = c - 5994; - } else if (c >= 13630 && c <= 13640) { - t1 = c - 5993; - } else if (c >= 13642 && c <= 13645) { - t1 = c - 5994; + t3FontCache[0] = new T3FontCache(fontID, ctm[0], ctm[1], ctm[2], ctm[3], + (int)floor(xMin - xt), + (int)floor(yMin - yt), + (int)ceil(xMax) - (int)floor(xMin) + 3, + (int)ceil(yMax) - (int)floor(yMin) + 3, + display, + DefaultVisual(display, screenNum), + depth, pixmap); + } + } + t3Font = t3FontCache[0]; + + // is the glyph in the cache? + i = (code & (t3Font->cacheSets - 1)) * t3Font->cacheAssoc; + for (j = 0; j < t3Font->cacheAssoc; ++j) { + if ((t3Font->cacheTags[i+j].mru & 0x8000) && + t3Font->cacheTags[i+j].code == code) { + state->getFillRGB(&color); + if (reverseVideo) { + color.r = 1 - color.r; + color.g = 1 - color.g; + color.b = 1 - color.b; + } + text->addChar(state, 0, 0, + t3Font->cacheTags[i+j].wx, t3Font->cacheTags[i+j].wy, + u, uLen); + drawType3Glyph(t3Font, &t3Font->cacheTags[i+j], + t3Font->cacheData + (i+j) * t3Font->glyphSize, + xt, yt, &color); + return gTrue; + } + } + + // push a new Type 3 glyph record + t3gs = new T3GlyphStack(); + t3gs->next = t3GlyphStack; + t3GlyphStack = t3gs; + t3GlyphStack->cacheable = gFalse; + t3GlyphStack->code = code; + t3GlyphStack->cache = t3Font; + t3GlyphStack->cacheIdx = i; + t3GlyphStack->x = xt; + t3GlyphStack->y = yt; + t3GlyphStack->u = u; + t3GlyphStack->uLen = uLen; + + return gFalse; +} + +void XOutputDev::endType3Char(GfxState *state) { + XImage *image; + Guchar *p; + int x, y; + Gulong pixel; + double alpha; + T3GlyphStack *t3gs; + + if (t3GlyphStack->cacheable) { + image = t3GlyphStack->cache->image; + XGetSubImage(display, pixmap, 0, 0, + t3GlyphStack->cache->glyphW, t3GlyphStack->cache->glyphH, + (1 << depth) - 1, ZPixmap, image, 0, 0); + p = t3GlyphStack->cacheData; + for (y = 0; y < t3GlyphStack->cache->glyphH; ++y) { + for (x = 0; x < t3GlyphStack->cache->glyphW; ++x) { + pixel = XGetPixel(image, x, y); + if (trueColor) { + alpha = (double)((pixel >> rShift) & rMul) / (double)rMul; } else { - t1 = c - 5996; + alpha = redMap[pixel & 0xff]; } - t2 = t1 % 157; - t1 /= 157; - if (t2 <= 62) { - c1 = 0xc940 + (t1 << 8) + t2; + if (alpha <= 0.2) { + *p++ = 4; + } else if (alpha <= 0.4) { + *p++ = 3; + } else if (alpha <= 0.6) { + *p++ = 2; + } else if (alpha <= 0.8) { + *p++ = 1; } else { - c1 = 0xc962 + (t1 << 8) + t2; + *p++ = 0; } } - } else if (c == 13646) { - c1 = 0xa14b; - } else if (c == 13647) { - c1 = 0xa1e3; - } else if (c <= 13742) { - c1 = cns13Map2[c - 13648]; - } else if (c <= 13746) { - c1 = 0xa159 + (c - 13743); - } else if (c <= 14055) { - c1 = 0; - } else if (c <= 14062) { - c1 = 0xf9d6 + (c - 14056); - } -#if 1 //~ - if (c1 == 0) { - error(-1, "Unsupported Adobe-CNS1-3 character: %d", c); } -#endif -#endif - break; + XDestroyRegion(clipRegion); + XFreeGC(display, strokeGC); + XFreeGC(display, fillGC); + pixmapW = t3GlyphStack->origPixmapW; + pixmapH = t3GlyphStack->origPixmapH; + pixmap = t3GlyphStack->origPixmap; + strokeGC = t3GlyphStack->origStrokeGC; + fillGC = t3GlyphStack->origFillGC; + clipRegion = t3GlyphStack->origClipRegion; + drawType3Glyph(t3GlyphStack->cache, + t3GlyphStack->cacheTag, t3GlyphStack->cacheData, + t3GlyphStack->x, t3GlyphStack->y, &t3GlyphStack->color); + } + text->addChar(state, 0, 0, t3GlyphStack->wx, t3GlyphStack->wy, + t3GlyphStack->u, t3GlyphStack->uLen); + t3gs = t3GlyphStack; + t3GlyphStack = t3gs->next; + delete t3gs; +} + +void XOutputDev::drawType3Glyph(T3FontCache *t3Font, + T3FontCacheTag *tag, Guchar *data, + double x, double y, GfxRGB *color) { + XImage *image; + XColor xcolor; + GfxRGB bg, rgb; + Gulong map[5]; + Gulong pixel; + Guchar *p; + int x0, y0, w0, h0, x1, y1; + int ix, iy; + + // compute: (x0,y0) = position in destination pixmap + // (x1,y1) = position in the XImage + // (w0,h0) = size of XImage transfer + x0 = xoutRound(x + t3Font->glyphX); + y0 = xoutRound(y + t3Font->glyphY); + x1 = 0; + y1 = 0; + w0 = t3Font->glyphW; + h0 = t3Font->glyphH; + if (x0 < 0) { + x1 = -x0; + w0 += x0; + x0 = 0; + } + if (x0 + w0 > pixmapW) { + w0 = pixmapW - x0; + } + if (w0 <= 0) { + return; + } + if (y0 < 0) { + y1 = -y0; + h0 += y0; + y0 = 0; + } + if (y0 + h0 > pixmapH) { + h0 = pixmapH - y0; + } + if (h0 <= 0) { + return; } - if (c1 > 0) { - c2[0].byte1 = c1 >> 8; - c2[0].byte2 = c1 & 0xff; - XDrawString16(display, pixmap, - (state->getRender() & 1) ? strokeGC : fillGC, - xoutRound(x1), xoutRound(y1), c2, 1); + image = t3Font->image; + XGetSubImage(display, pixmap, x0, y0, w0, h0, + (1 << depth) - 1, ZPixmap, image, x1, y1); + xcolor.pixel = XGetPixel(image, t3Font->glyphW / 2, t3Font->glyphH / 2); + XQueryColor(display, colormap, &xcolor); + bg.r = xcolor.red / 65535.0; + bg.g = xcolor.green / 65535.0; + bg.b = xcolor.blue / 65535.0; + rgb.r = 0.25 * (color->r + 3 * bg.r); + rgb.g = 0.25 * (color->g + 3 * bg.g); + rgb.b = 0.25 * (color->b + 3 * bg.b); + map[1] = findColor(&rgb); + rgb.r = 0.5 * (color->r + bg.r); + rgb.g = 0.5 * (color->g + bg.g); + rgb.b = 0.5 * (color->b + bg.b); + map[2] = findColor(&rgb); + rgb.r = 0.25 * (3 * color->r + bg.r); + rgb.g = 0.25 * (3 * color->g + bg.g); + rgb.b = 0.25 * (3 * color->b + bg.b); + map[3] = findColor(&rgb); + map[4] = findColor(color); + p = data; + for (iy = 0; iy < t3Font->glyphH; ++iy) { + for (ix = 0; ix < t3Font->glyphW; ++ix) { + pixel = *p++; + if (pixel > 0) { + XPutPixel(image, ix, iy, map[pixel]); + } + } + } + XPutImage(display, pixmap, fillGC, image, x1, y1, x0, y0, w0, h0); +} + +void XOutputDev::type3D0(GfxState *state, double wx, double wy) { + t3GlyphStack->wx = wx; + t3GlyphStack->wy = wy; +} + +void XOutputDev::type3D1(GfxState *state, double wx, double wy, + double llx, double lly, double urx, double ury) { + GfxColor fgColor; + XGCValues gcValues; + XRectangle rect; + double *ctm; + T3FontCache *t3Font; + int i, j; + + // allocate a cache entry + t3GlyphStack->cacheable = gTrue; + t3Font = t3GlyphStack->cache; + i = t3GlyphStack->cacheIdx; + for (j = 0; j < t3Font->cacheAssoc; ++j) { + if ((t3Font->cacheTags[i+j].mru & 0x7fff) == t3Font->cacheAssoc - 1) { + t3Font->cacheTags[i+j].mru = 0x8000; + t3Font->cacheTags[i+j].code = t3GlyphStack->code; + t3GlyphStack->cacheTag = &t3Font->cacheTags[i+j]; + t3GlyphStack->cacheData = t3Font->cacheData + (i+j) * t3Font->glyphSize; + } else { + ++t3Font->cacheTags[i+j].mru; + } } + t3GlyphStack->wx = wx; + t3GlyphStack->wy = wy; + t3GlyphStack->cacheTag->wx = wx; + t3GlyphStack->cacheTag->wy = wy; + + // prepare to rasterize the glyph + //~ do we need to handle both fill and stroke color? + state->getFillRGB(&t3GlyphStack->color); + if (reverseVideo) { + t3GlyphStack->color.r = 1 - t3GlyphStack->color.r; + t3GlyphStack->color.g = 1 - t3GlyphStack->color.g; + t3GlyphStack->color.b = 1 - t3GlyphStack->color.b; + } + fgColor.c[0] = reverseVideo ? 1 : 0; + state->setFillColorSpace(new GfxDeviceGrayColorSpace()); + state->setFillColor(&fgColor); + state->setStrokeColorSpace(new GfxDeviceGrayColorSpace()); + state->setStrokeColor(&fgColor); + t3GlyphStack->origPixmapW = pixmapW; + t3GlyphStack->origPixmapH = pixmapH; + t3GlyphStack->origPixmap = pixmap; + t3GlyphStack->origStrokeGC = strokeGC; + t3GlyphStack->origFillGC = fillGC; + t3GlyphStack->origClipRegion = clipRegion; + pixmapW = t3GlyphStack->cache->glyphW; + pixmapH = t3GlyphStack->cache->glyphH; + pixmap = t3GlyphStack->cache->pixmap; + gcValues.foreground = BlackPixel(display, screenNum); + gcValues.background = WhitePixel(display, screenNum); + gcValues.line_width = 0; + gcValues.line_style = LineSolid; + strokeGC = XCreateGC(display, pixmap, + GCForeground | GCBackground | GCLineWidth | GCLineStyle, + &gcValues); + updateLineAttrs(state, gTrue); + gcValues.foreground = WhitePixel(display, screenNum); + fillGC = XCreateGC(display, pixmap, + GCForeground | GCBackground | GCLineWidth | GCLineStyle, + &gcValues); + XFillRectangle(display, pixmap, fillGC, 0, 0, pixmapW, pixmapH); + XSetForeground(display, fillGC, BlackPixel(display, screenNum)); + clipRegion = XCreateRegion(); + rect.x = rect.y = 0; + rect.width = pixmapW; + rect.height = pixmapH; + XUnionRectWithRegion(&rect, clipRegion, clipRegion); + XSetRegion(display, strokeGC, clipRegion); + XSetRegion(display, fillGC, clipRegion); + ctm = state->getCTM(); + state->setCTM(ctm[0], ctm[1], ctm[2], ctm[3], + -t3GlyphStack->cache->glyphX, -t3GlyphStack->cache->glyphY); } inline Gulong XOutputDev::findColor(GfxRGB *x, GfxRGB *err) { @@ -2792,7 +2944,7 @@ Gulong XOutputDev::findColor(GfxRGB *rgb) { r = xoutRound(rgb->r * (numColors - 1)); g = xoutRound(rgb->g * (numColors - 1)); b = xoutRound(rgb->b * (numColors - 1)); -#if 0 //~ this makes things worse as often as better +#if 0 // this makes things worse as often as better // even a very light color shouldn't map to white if (r == numColors - 1 && g == numColors - 1 && b == numColors - 1) { if (color->getR() < 0.95) @@ -2813,20 +2965,16 @@ void XOutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str, GBool inlineImg) { ImageStream *imgStr; XImage *image; - double xt, yt; + double *ctm; + GBool rot; + double xScale, yScale, xShear, yShear; + int tx, ty, scaledWidth, scaledHeight, xSign, ySign; int ulx, uly, llx, lly, urx, ury, lrx, lry; - int hx, hy; + int ulx1, uly1, llx1, lly1, urx1, ury1, lrx1, lry1; int bx0, by0, bx1, by1, bw, bh; int cx0, cy0, cx1, cy1, cw, ch; - int dx, dy; - int dvx, dvdx, dvpx, dvqx, dvdx2, dvtx; - int dvy, dvdy, dvpy, dvqy, dvdy2, dvty; - int dhx, dhdx, dhpx, dhqx, dhdx2, dhtx, dhtx0; - int dhy, dhdy, dhpy, dhqy, dhdy2, dhty, dhty0; - int ivy, ivdy, ivpy, ivqy, ivty; - int ihx, ihdx, ihpx, ihqx, ihtx; - int vn, vi, hn, hi; - int bufy; + int yp, yq, yt, yStep, lastYStep; + int xp, xq, xt, xStep, xSrc; GfxRGB rgb; Guchar *pixBuf; int imgPix; @@ -2837,80 +2985,97 @@ void XOutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str, double r0, g0, b0, r1, g1, b1; Gulong pix; Guchar *p; + int x, y, x1, y1, x2, y2; int n, m, i, j; - // corners in device space - state->transform(0, 0, &xt, &yt); - llx = xoutRound(xt); - lly = xoutRound(yt); - state->transform(0, 1, &xt, &yt); - ulx = xoutRound(xt); - uly = xoutRound(yt); - state->transform(1, 0, &xt, &yt); - lrx = xoutRound(xt); - lry = xoutRound(yt); - state->transform(1, 1, &xt, &yt); - urx = xoutRound(xt); - ury = xoutRound(yt); - - // horizontal traversal - hx = urx - ulx; - if (abs(lrx - llx) < abs(hx)) { - hx = lrx - llx; - } - hy = ury - uly; - if (abs(lry - lly) < abs(hy)) { - hy = lry - lly; + // get CTM, check for singular matrix + ctm = state->getCTM(); + if (fabs(ctm[0] * ctm[3] - ctm[1] * ctm[2]) < 0.000001) { + error(-1, "Singular CTM in drawImage"); + if (inlineImg) { + j = height * ((width + 7) / 8); + str->reset(); + for (i = 0; i < j; ++i) { + str->getChar(); + } + str->close(); + } + return; + } + + // compute scale, shear, rotation, translation parameters + rot = fabs(ctm[1]) > fabs(ctm[0]); + if (rot) { + xScale = -ctm[1]; + yScale = -ctm[2] + (ctm[0] * ctm[3]) / ctm[1]; + xShear = ctm[3] / yScale; + yShear = -ctm[0] / ctm[1]; + } else { + xScale = ctm[0]; + yScale = -ctm[3] + (ctm[1] * ctm[2]) / ctm[0]; + xShear = -ctm[2] / yScale; + yShear = ctm[1] / ctm[0]; + } + tx = xoutRound(ctm[2] + ctm[4]); + ty = xoutRound(ctm[3] + ctm[5]); + // use ceil() to avoid gaps between "striped" images + scaledWidth = (int)ceil(fabs(xScale)); + xSign = (xScale < 0) ? -1 : 1; + scaledHeight = (int)ceil(fabs(yScale)); + ySign = (yScale < 0) ? -1 : 1; + + // compute corners in device space + ulx1 = 0; + uly1 = 0; + urx1 = xSign * (scaledWidth - 1); + ury1 = xoutRound(yShear * urx1); + llx1 = xoutRound(xShear * ySign * (scaledHeight - 1)); + lly1 = ySign * (scaledHeight - 1) + xoutRound(yShear * llx1); + lrx1 = xSign * (scaledWidth - 1) + + xoutRound(xShear * ySign * (scaledHeight - 1)); + lry1 = ySign * (scaledHeight - 1) + xoutRound(yShear * lrx1); + if (rot) { + ulx = tx + uly1; uly = ty - ulx1; + urx = tx + ury1; ury = ty - urx1; + llx = tx + lly1; lly = ty - llx1; + lrx = tx + lry1; lry = ty - lrx1; + } else { + ulx = tx + ulx1; uly = ty + uly1; + urx = tx + urx1; ury = ty + ury1; + llx = tx + llx1; lly = ty + lly1; + lrx = tx + lrx1; lry = ty + lry1; } // bounding box: // (bx0, by0) = upper-left corner // (bx1, by1) = lower-right corner // (bw, bh) = size - bx0 = bx1 = ulx; - if (llx < bx0) { - bx0 = llx; - } else if (llx > bx1) { - bx1 = llx; - } - if (urx < bx0) { - bx0 = urx; - } else if (urx > bx1) { - bx1 = urx; - } - if (lrx < bx0) { - bx0 = lrx; - } else if (lrx > bx1) { - bx1 = lrx; - } - by0 = by1 = uly; - if (lly < by0) { - by0 = lly; - } else if (lly > by1) { - by1 = lly; - } - if (ury < by0) { - by0 = ury; - } else if (ury > by1) { - by1 = ury; - } - if (lry < by0) { - by0 = lry; - } else if (lry > by1) { - by1 = lry; - } + bx0 = (ulx < urx) ? (ulx < llx) ? (ulx < lrx) ? ulx : lrx + : (llx < lrx) ? llx : lrx + : (urx < llx) ? (urx < lrx) ? urx : lrx + : (llx < lrx) ? llx : lrx; + bx1 = (ulx > urx) ? (ulx > llx) ? (ulx > lrx) ? ulx : lrx + : (llx > lrx) ? llx : lrx + : (urx > llx) ? (urx > lrx) ? urx : lrx + : (llx > lrx) ? llx : lrx; + by0 = (uly < ury) ? (uly < lly) ? (uly < lry) ? uly : lry + : (lly < lry) ? lly : lry + : (ury < lly) ? (ury < lry) ? ury : lry + : (lly < lry) ? lly : lry; + by1 = (uly > ury) ? (uly > lly) ? (uly > lry) ? uly : lry + : (lly > lry) ? lly : lry + : (ury > lly) ? (ury > lry) ? ury : lry + : (lly > lry) ? lly : lry; bw = bx1 - bx0 + 1; bh = by1 - by0 + 1; - // bounding box clipped to pixmap, i.e., "valid" rectangle: - // (cx0, cy0) = upper-left corner of valid rectangle in page pixmap - // (cx1, cy1) = upper-left corner of valid rectangle in image pixmap + // Bounding box clipped to pixmap, i.e., "valid" rectangle: + // (cx0, cy0) = upper-left corner of valid rectangle in Pixmap + // (cx1, cy1) = upper-left corner of valid rectangle in XImage // (cw, ch) = size of valid rectangle - if (bx1 >= pixmapW) { - cw = pixmapW - bx0; - } else { - cw = bw; - } + // These values will be used to transfer the XImage from/to the + // Pixmap. + cw = (bx1 >= pixmapW) ? pixmapW - bx0 : bw; if (bx0 < 0) { cx0 = 0; cx1 = -bx0; @@ -2919,11 +3084,7 @@ void XOutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str, cx0 = bx0; cx1 = 0; } - if (by1 >= pixmapH) { - ch = pixmapH - by0; - } else { - ch = bh; - } + ch = (by1 >= pixmapH) ? pixmapH - by0 : bh; if (by0 < 0) { cy0 = 0; cy1 = -by0; @@ -2935,70 +3096,26 @@ void XOutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str, // check for tiny (zero width or height) images // and off-page images - if (cw <= 0 || ch <= 0) { + if (scaledWidth <= 0 || scaledHeight <= 0 || cw <= 0 || ch <= 0) { if (inlineImg) { j = height * ((width + 7) / 8); str->reset(); for (i = 0; i < j; ++i) { str->getChar(); } + str->close(); } return; } - // Bresenham parameters for vertical traversal - // (device coordinates and image coordinates) - dx = llx - ulx; - dy = lly - uly; - if (abs(dx) > abs(dy)) { - vn = abs(dx); - dvdx = dx > 0 ? 1 : -1; - dvpx = 0; - dvdx2 = 0; - dvdy = 0; - dvpy = abs(dy); - dvdy2 = dy > 0 ? 1 : -1; - } else { - vn = abs(dy); - dvdx = 0; - dvpx = abs(dx); - dvdx2 = dx > 0 ? 1 : -1; - dvdy = dy > 0 ? 1 : -1; - dvpy = 0; - dvdy2 = 0; - } - dvqx = dvqy = vn; - ivqy = vn + 1; - ivdy = height / ivqy; - ivpy = height % ivqy; - - // Bresenham parameters for horizontal traversal - // (device coordinates and image coordinates) - if (abs(hx) > abs(hy)) { - hn = abs(hx); - dhdx = hx > 0 ? 1 : -1; - dhpx = 0; - dhdx2 = 0; - dhdy = 0; - dhpy = abs(hy); - dhdy2 = hy > 0 ? 1 : -1; - } else { - hn = abs(hy); - dhdx = 0; - dhpx = abs(hx); - dhdx2 = hx > 0 ? 1 : -1; - dhdy = hy > 0 ? 1 : -1; - dhpy = 0; - dhdy2 = 0; - } - dhqx = dhqy = hn; - ihqx = hn + 1; - ihdx = width / ihqx; - ihpx = width % ihqx; + // compute Bresenham parameters for x and y scaling + yp = height / scaledHeight; + yq = height % scaledHeight; + xp = width / scaledWidth; + xq = width % scaledWidth; // allocate pixel buffer - n = ivdy + (ivpy > 0 ? 1 : 0); - pixBuf = (Guchar *)gmalloc(n * width * sizeof(Guchar)); + pixBuf = (Guchar *)gmalloc((yp + 1) * width * sizeof(Guchar)); // allocate XImage and read from page pixmap image = XCreateImage(display, DefaultVisual(display, screenNum), @@ -3009,6 +3126,11 @@ void XOutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str, // get mask color state->getFillRGB(&rgb); + if (reverseVideo) { + rgb.r = 1 - rgb.r; + rgb.g = 1 - rgb.g; + rgb.b = 1 - rgb.b; + } r0 = rgb.r; g0 = rgb.g; b0 = rgb.b; @@ -3026,26 +3148,23 @@ void XOutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str, imgStr = new ImageStream(str, width, 1, 1); imgStr->reset(); - // traverse left edge of image - dvx = ulx; - dvtx = 0; - dvy = uly; - dvty = 0; - ivy = 0; - ivty = 0; - dhtx0 = 0; - dhty0 = 0; - n = 0; - bufy = -1; - for (vi = 0; vi <= vn; ++vi) { + // init y scale Bresenham + yt = 0; + lastYStep = 1; + + for (y = 0; y < scaledHeight; ++y) { + + // y scale Bresenham + yStep = yp; + yt += yq; + if (yt >= scaledHeight) { + yt -= scaledHeight; + ++yStep; + } // read row(s) from image - if (ivy > bufy) { - if (ivdy == 0) { - n = 1; - } else { - n = ivdy + (ivty + ivpy >= ivqy ? 1 : 0); - } + n = (yp > 0) ? yStep : lastYStep; + if (n > 0) { p = pixBuf; for (i = 0; i < n; ++i) { for (j = 0; j < width; ++j) { @@ -3056,26 +3175,44 @@ void XOutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str, ++p; } } - bufy = ivy; } + lastYStep = yStep; - // traverse a horizontal stripe - dhx = 0; - dhy = 0; - dhtx = dhtx0; - dhty = dhty0; - ihx = 0; - ihtx = 0; - for (hi = 0; hi <= hn; ++hi) { + // init x scale Bresenham + xt = 0; + xSrc = 0; - // compute filtered pixel value - imgPix = 0; - if (ihdx == 0) { - m = 1; + for (x = 0; x < scaledWidth; ++x) { + + // x scale Bresenham + xStep = xp; + xt += xq; + if (xt >= scaledWidth) { + xt -= scaledWidth; + ++xStep; + } + + // x shear + x1 = xSign * x + xoutRound(xShear * ySign * y); + + // y shear + y1 = ySign * y + xoutRound(yShear * x1); + + // rotation + if (rot) { + x2 = y1; + y2 = -x1; } else { - m = ihdx + (ihtx + ihpx >= ihqx ? 1 : 0); + x2 = x1; + y2 = y1; } - p = pixBuf + ihx * sizeof(Guchar); + + // compute the filtered pixel at (x,y) after the + // x and y scaling operations + n = yStep > 0 ? yStep : 1; + m = xStep > 0 ? xStep : 1; + p = pixBuf + xSrc; + imgPix = 0; for (i = 0; i < n; ++i) { for (j = 0; j < m; ++j) { imgPix += *p++; @@ -3083,9 +3220,12 @@ void XOutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str, p += width - m; } + // x scale Bresenham + xSrc += xStep; + // blend image pixel with background alpha = (double)imgPix / (double)(n * m); - xcolor.pixel = XGetPixel(image, dvx + dhx - bx0, dvy + dhy - by0); + xcolor.pixel = XGetPixel(image, tx + x2 - bx0, ty + y2 - by0); if (xcolor.pixel != lastPixel) { XQueryColor(display, colormap, &xcolor); r1 = (double)xcolor.red / 65535.0; @@ -3099,64 +3239,10 @@ void XOutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str, pix = findColor(&rgb2); // set pixel - XPutPixel(image, dvx + dhx - bx0, dvy + dhy - by0, pix); - - // Bresenham increment (horizontal stripe) - dhx += dhdx; - dhtx += dhpx; - if (dhtx >= dhqx) { - dhx += dhdx2; - dhtx -= dhqx; - } - dhy += dhdy; - dhty += dhpy; - if (dhty >= dhqy) { - dhy += dhdy2; - dhty -= dhqy; - } - ihx += ihdx; - ihtx += ihpx; - if (ihtx >= ihqx) { - ++ihx; - ihtx -= ihqx; - } - } - - // Bresenham increment (left edge) - dvx += dvdx; - dvtx += dvpx; - dhty0 += dvdx * dhdx * dhpy; - if (dvtx >= dvqx) { - dvx += dvdx2; - dvtx -= dvqx; - dhty0 += dvdx2 * dhdx * dhpy; - } - dvy += dvdy; - dvty += dvpy; - dhtx0 += dvdy * dhdy * dhpx; - if (dvty >= dvqy) { - dvy += dvdy2; - dvty -= dvqy; - dhtx0 += dvdy2 * dhdy * dhpx; - } - ivy += ivdy; - ivty += ivpy; - if (ivty >= ivqy) { - ++ivy; - ivty -= ivqy; - } - if (dhtx0 >= dhqy) { - dhtx0 -= dhqx; - } else if (dhtx0 < 0) { - dhtx0 += dhqx; - } - if (dhty0 >= dhqx) { - dhty0 -= dhqy; - } else if (dhty0 < 0) { - dhty0 += dhqy; + XPutPixel(image, tx + x2 - bx0, ty + y2 - by0, pix); } } - + // blit the image into the pixmap XPutImage(display, pixmap, fillGC, image, cx1, cy1, cx0, cy0, cw, ch); @@ -3170,33 +3256,34 @@ void XOutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str, void XOutputDev::drawImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, - GBool inlineImg) { + int *maskColors, GBool inlineImg) { ImageStream *imgStr; XImage *image; int nComps, nVals, nBits; GBool dither; - double xt, yt; + double *ctm; + GBool rot; + double xScale, yScale, xShear, yShear; + int tx, ty, scaledWidth, scaledHeight, xSign, ySign; int ulx, uly, llx, lly, urx, ury, lrx, lry; - int hx, hy; + int ulx1, uly1, llx1, lly1, urx1, ury1, lrx1, lry1; int bx0, by0, bx1, by1, bw, bh; int cx0, cy0, cx1, cy1, cw, ch; - int dx, dy; - int dvx, dvdx, dvpx, dvqx, dvdx2, dvtx; - int dvy, dvdy, dvpy, dvqy, dvdy2, dvty; - int dhx, dhdx, dhpx, dhqx, dhdx2, dhtx, dhtx0; - int dhy, dhdy, dhpy, dhqy, dhdy2, dhty, dhty0; - int ivy, ivdy, ivpy, ivqy, ivty; - int ihx, ihdx, ihpx, ihqx, ihtx; - int vn, vi, hn, hi; - int bufy; + int yp, yq, yt, yStep, lastYStep; + int xp, xq, xt, xStep, xSrc; GfxRGB *pixBuf; + Guchar *alphaBuf; Guchar pixBuf2[gfxColorMaxComps]; GfxRGB color2, err, errRight; GfxRGB *errDown; - double r0, g0, b0; + double r0, g0, b0, alpha, mul; Gulong pix; GfxRGB *p; - int n, m, i, j; + Guchar *q; + GBool oneBitMode; + GfxRGB oneBitRGB[2]; + int x, y, x1, y1, x2, y2; + int n, m, i, j, k; // image parameters nComps = colorMap->getNumPixelComps(); @@ -3204,66 +3291,84 @@ void XOutputDev::drawImage(GfxState *state, Object *ref, Stream *str, nBits = colorMap->getBits(); dither = nComps > 1 || nBits > 1; - // corners in device space - state->transform(0, 0, &xt, &yt); - llx = xoutRound(xt); - lly = xoutRound(yt); - state->transform(0, 1, &xt, &yt); - ulx = xoutRound(xt); - uly = xoutRound(yt); - state->transform(1, 0, &xt, &yt); - lrx = xoutRound(xt); - lry = xoutRound(yt); - state->transform(1, 1, &xt, &yt); - urx = xoutRound(xt); - ury = xoutRound(yt); - - // horizontal traversal - hx = urx - ulx; - if (abs(lrx - llx) < abs(hx)) { - hx = lrx - llx; - } - hy = ury - uly; - if (abs(lry - lly) < abs(hy)) { - hy = lry - lly; + // get CTM, check for singular matrix + ctm = state->getCTM(); + if (fabs(ctm[0] * ctm[3] - ctm[1] * ctm[2]) < 0.000001) { + error(-1, "Singular CTM in drawImage"); + if (inlineImg) { + str->reset(); + j = height * ((nVals * nBits + 7) / 8); + for (i = 0; i < j; ++i) { + str->getChar(); + } + str->close(); + } + return; + } + + // compute scale, shear, rotation, translation parameters + rot = fabs(ctm[1]) > fabs(ctm[0]); + if (rot) { + xScale = -ctm[1]; + yScale = -ctm[2] + (ctm[0] * ctm[3]) / ctm[1]; + xShear = ctm[3] / yScale; + yShear = -ctm[0] / ctm[1]; + } else { + xScale = ctm[0]; + yScale = -ctm[3] + (ctm[1] * ctm[2]) / ctm[0]; + xShear = -ctm[2] / yScale; + yShear = ctm[1] / ctm[0]; + } + tx = xoutRound(ctm[2] + ctm[4]); + ty = xoutRound(ctm[3] + ctm[5]); + // use ceil() to avoid gaps between "striped" images + scaledWidth = (int)ceil(fabs(xScale)); + xSign = (xScale < 0) ? -1 : 1; + scaledHeight = (int)ceil(fabs(yScale)); + ySign = (yScale < 0) ? -1 : 1; + + // compute corners in device space + ulx1 = 0; + uly1 = 0; + urx1 = xSign * (scaledWidth - 1); + ury1 = xoutRound(yShear * urx1); + llx1 = xoutRound(xShear * ySign * (scaledHeight - 1)); + lly1 = ySign * (scaledHeight - 1) + xoutRound(yShear * llx1); + lrx1 = xSign * (scaledWidth - 1) + + xoutRound(xShear * ySign * (scaledHeight - 1)); + lry1 = ySign * (scaledHeight - 1) + xoutRound(yShear * lrx1); + if (rot) { + ulx = tx + uly1; uly = ty - ulx1; + urx = tx + ury1; ury = ty - urx1; + llx = tx + lly1; lly = ty - llx1; + lrx = tx + lry1; lry = ty - lrx1; + } else { + ulx = tx + ulx1; uly = ty + uly1; + urx = tx + urx1; ury = ty + ury1; + llx = tx + llx1; lly = ty + lly1; + lrx = tx + lrx1; lry = ty + lry1; } // bounding box: // (bx0, by0) = upper-left corner // (bx1, by1) = lower-right corner // (bw, bh) = size - bx0 = bx1 = ulx; - if (llx < bx0) { - bx0 = llx; - } else if (llx > bx1) { - bx1 = llx; - } - if (urx < bx0) { - bx0 = urx; - } else if (urx > bx1) { - bx1 = urx; - } - if (lrx < bx0) { - bx0 = lrx; - } else if (lrx > bx1) { - bx1 = lrx; - } - by0 = by1 = uly; - if (lly < by0) { - by0 = lly; - } else if (lly > by1) { - by1 = lly; - } - if (ury < by0) { - by0 = ury; - } else if (ury > by1) { - by1 = ury; - } - if (lry < by0) { - by0 = lry; - } else if (lry > by1) { - by1 = lry; - } + bx0 = (ulx < urx) ? (ulx < llx) ? (ulx < lrx) ? ulx : lrx + : (llx < lrx) ? llx : lrx + : (urx < llx) ? (urx < lrx) ? urx : lrx + : (llx < lrx) ? llx : lrx; + bx1 = (ulx > urx) ? (ulx > llx) ? (ulx > lrx) ? ulx : lrx + : (llx > lrx) ? llx : lrx + : (urx > llx) ? (urx > lrx) ? urx : lrx + : (llx > lrx) ? llx : lrx; + by0 = (uly < ury) ? (uly < lly) ? (uly < lry) ? uly : lry + : (lly < lry) ? lly : lry + : (ury < lly) ? (ury < lry) ? ury : lry + : (lly < lry) ? lly : lry; + by1 = (uly > ury) ? (uly > lly) ? (uly > lry) ? uly : lry + : (lly > lry) ? lly : lry + : (ury > lly) ? (ury > lry) ? ury : lry + : (lly > lry) ? lly : lry; bw = bx1 - bx0 + 1; bh = by1 - by0 + 1; @@ -3273,11 +3378,7 @@ void XOutputDev::drawImage(GfxState *state, Object *ref, Stream *str, // (cw, ch) = size of valid rectangle // These values will be used to transfer the XImage from/to the // Pixmap. - if (bx1 >= pixmapW) { - cw = pixmapW - bx0; - } else { - cw = bw; - } + cw = (bx1 >= pixmapW) ? pixmapW - bx0 : bw; if (bx0 < 0) { cx0 = 0; cx1 = -bx0; @@ -3286,11 +3387,7 @@ void XOutputDev::drawImage(GfxState *state, Object *ref, Stream *str, cx0 = bx0; cx1 = 0; } - if (by1 >= pixmapH) { - ch = pixmapH - by0; - } else { - ch = bh; - } + ch = (by1 >= pixmapH) ? pixmapH - by0 : bh; if (by0 < 0) { cy0 = 0; cy1 = -by0; @@ -3302,69 +3399,30 @@ void XOutputDev::drawImage(GfxState *state, Object *ref, Stream *str, // check for tiny (zero width or height) images // and off-page images - if (cw <= 0 || ch <= 0) { + if (scaledWidth <= 0 || scaledHeight <= 0 || cw <= 0 || ch <= 0) { if (inlineImg) { str->reset(); j = height * ((nVals * nBits + 7) / 8); for (i = 0; i < j; ++i) str->getChar(); + str->close(); } return; } - // Bresenham parameters for vertical traversal - // (device coordinates and image coordinates) - dx = llx - ulx; - dy = lly - uly; - if (abs(dx) > abs(dy)) { - vn = abs(dx); - dvdx = dx > 0 ? 1 : -1; - dvpx = 0; - dvdx2 = 0; - dvdy = 0; - dvpy = abs(dy); - dvdy2 = dy > 0 ? 1 : -1; - } else { - vn = abs(dy); - dvdx = 0; - dvpx = abs(dx); - dvdx2 = dx > 0 ? 1 : -1; - dvdy = dy > 0 ? 1 : -1; - dvpy = 0; - dvdy2 = 0; - } - dvqx = dvqy = vn; - ivqy = vn + 1; - ivdy = height / ivqy; - ivpy = height % ivqy; - - // Bresenham parameters for horizontal traversal - // (device coordinates and image coordinates) - if (abs(hx) > abs(hy)) { - hn = abs(hx); - dhdx = hx > 0 ? 1 : -1; - dhpx = 0; - dhdx2 = 0; - dhdy = 0; - dhpy = abs(hy); - dhdy2 = hy > 0 ? 1 : -1; - } else { - hn = abs(hy); - dhdx = 0; - dhpx = abs(hx); - dhdx2 = hx > 0 ? 1 : -1; - dhdy = hy > 0 ? 1 : -1; - dhpy = 0; - dhdy2 = 0; - } - dhqx = dhqy = hn; - ihqx = hn + 1; - ihdx = width / ihqx; - ihpx = width % ihqx; + // compute Bresenham parameters for x and y scaling + yp = height / scaledHeight; + yq = height % scaledHeight; + xp = width / scaledWidth; + xq = width % scaledWidth; // allocate pixel buffer - n = ivdy + (ivpy > 0 ? 1 : 0); - pixBuf = (GfxRGB *)gmalloc(n * width * sizeof(GfxRGB)); + pixBuf = (GfxRGB *)gmalloc((yp + 1) * width * sizeof(GfxRGB)); + if (maskColors) { + alphaBuf = (Guchar *)gmalloc((yp + 1) * width * sizeof(Guchar)); + } else { + alphaBuf = NULL; + } // allocate XImage image = XCreateImage(display, DefaultVisual(display, screenNum), @@ -3372,9 +3430,11 @@ void XOutputDev::drawImage(GfxState *state, Object *ref, Stream *str, image->data = (char *)gmalloc(bh * image->bytes_per_line); // if the transform is anything other than a 0/90/180/270 degree - // rotation/flip, read the backgound pixmap to fill in the corners + // rotation/flip, or if there is color key masking, read the + // backgound pixmap to fill in the corners if (!((ulx == llx && uly == ury) || - (uly == lly && ulx == urx))) { + (uly == lly && ulx == urx)) || + maskColors) { XGetSubImage(display, pixmap, cx0, cy0, cw, ch, (1 << depth) - 1, ZPixmap, image, cx1, cy1); } @@ -3389,98 +3449,147 @@ void XOutputDev::drawImage(GfxState *state, Object *ref, Stream *str, errDown = NULL; } + // optimize the one-bit-deep image case + if ((oneBitMode = nComps == 1 && nBits == 1)) { + pixBuf2[0] = 0; + colorMap->getRGB(pixBuf2, &oneBitRGB[0]); + pixBuf2[0] = 1; + colorMap->getRGB(pixBuf2, &oneBitRGB[1]); + } + // initialize the image stream imgStr = new ImageStream(str, width, nComps, nBits); imgStr->reset(); - // traverse left edge of image - dvx = ulx; - dvtx = 0; - dvy = uly; - dvty = 0; - ivy = 0; - ivty = 0; - dhtx0 = 0; - dhty0 = 0; - n = 0; - bufy = -1; - for (vi = 0; vi <= vn; ++vi) { + // init y scale Bresenham + yt = 0; + lastYStep = 1; + + for (y = 0; y < scaledHeight; ++y) { + + // initialize error diffusion accumulator + errRight.r = errRight.g = errRight.b = 0; + + // y scale Bresenham + yStep = yp; + yt += yq; + if (yt >= scaledHeight) { + yt -= scaledHeight; + ++yStep; + } // read row(s) from image - if (ivy > bufy) { - if (ivdy == 0) { - n = 1; - } else { - n = ivdy + (ivty + ivpy >= ivqy ? 1 : 0); - } + n = (yp > 0) ? yStep : lastYStep; + if (n > 0) { p = pixBuf; + q = alphaBuf; for (i = 0; i < n; ++i) { for (j = 0; j < width; ++j) { imgStr->getPixel(pixBuf2); - colorMap->getRGB(pixBuf2, p); - ++p; + if (oneBitMode) { + *p++ = oneBitRGB[pixBuf2[0]]; + } else { + colorMap->getRGB(pixBuf2, p); + ++p; + } + if (q) { + *q = 1; + for (k = 0; k < nComps; ++k) { + if (pixBuf2[k] < maskColors[2*k] || + pixBuf2[k] > maskColors[2*k]) { + *q = 0; + break; + } + } + ++q; + } } } - bufy = ivy; } + lastYStep = yStep; - // clear error accumulator - errRight.r = errRight.g = errRight.b = 0; + // init x scale Bresenham + xt = 0; + xSrc = 0; + + for (x = 0; x < scaledWidth; ++x) { + + // x scale Bresenham + xStep = xp; + xt += xq; + if (xt >= scaledWidth) { + xt -= scaledWidth; + ++xStep; + } - // traverse a horizontal stripe - dhx = 0; - dhy = 0; - dhtx = dhtx0; - dhty = dhty0; - ihx = 0; - ihtx = 0; - for (hi = 0; hi <= hn; ++hi) { - - // compute filtered pixel value - if (ihdx == 0) { - m = 1; + // x shear + x1 = xSign * x + xoutRound(xShear * ySign * y); + + // y shear + y1 = ySign * y + xoutRound(yShear * x1); + + // rotation + if (rot) { + x2 = y1; + y2 = -x1; } else { - m = ihdx + (ihtx + ihpx >= ihqx ? 1 : 0); + x2 = x1; + y2 = y1; } - p = pixBuf + ihx * sizeof(Guchar); + + // compute the filtered pixel at (x,y) after the + // x and y scaling operations + n = yStep > 0 ? yStep : 1; + m = xStep > 0 ? xStep : 1; + p = pixBuf + xSrc; r0 = g0 = b0 = 0; + q = alphaBuf ? alphaBuf + xSrc : (Guchar *)NULL; + alpha = 0; for (i = 0; i < n; ++i) { for (j = 0; j < m; ++j) { r0 += p->r; g0 += p->g; b0 += p->b; ++p; + if (q) { + alpha += *q++; + } } p += width - m; } - r0 /= n * m; - g0 /= n * m; - b0 /= n * m; + mul = 1 / (double)(n * m); + r0 *= mul; + g0 *= mul; + b0 *= mul; + alpha *= mul; + + // x scale Bresenham + xSrc += xStep; // compute pixel if (dither) { - color2.r = r0 + errRight.r + errDown[dvx + dhx - bx0].r; + color2.r = r0 + errRight.r + errDown[tx + x2 - bx0].r; if (color2.r > 1) { color2.r = 1; } else if (color2.r < 0) { color2.r = 0; } - color2.g = g0 + errRight.g + errDown[dvx + dhx - bx0].g; + color2.g = g0 + errRight.g + errDown[tx + x2 - bx0].g; if (color2.g > 1) { color2.g = 1; } else if (color2.g < 0) { color2.g = 0; } - color2.b = b0 + errRight.b + errDown[dvx + dhx - bx0].b; + color2.b = b0 + errRight.b + errDown[tx + x2 - bx0].b; if (color2.b > 1) { color2.b = 1; } else if (color2.b < 0) { color2.b = 0; } pix = findColor(&color2, &err); - errRight.r = errDown[dvx + dhx - bx0].r = err.r / 2; - errRight.g = errDown[dvx + dhx - bx0].g = err.g / 2; - errRight.b = errDown[dvx + dhx - bx0].b = err.b / 2; + errRight.r = errDown[tx + x2 - bx0].r = err.r / 2; + errRight.g = errDown[tx + x2 - bx0].g = err.g / 2; + errRight.b = errDown[tx + x2 - bx0].b = err.b / 2; } else { color2.r = r0; color2.g = g0; @@ -3489,77 +3598,29 @@ void XOutputDev::drawImage(GfxState *state, Object *ref, Stream *str, } // set pixel - XPutPixel(image, dvx + dhx - bx0, dvy + dhy - by0, pix); - - // Bresenham increment (horizontal stripe) - dhx += dhdx; - dhtx += dhpx; - if (dhtx >= dhqx) { - dhx += dhdx2; - dhtx -= dhqx; - } - dhy += dhdy; - dhty += dhpy; - if (dhty >= dhqy) { - dhy += dhdy2; - dhty -= dhqy; + //~ this should do a blend when 0 < alpha < 1 + if (alpha < 0.75) { + XPutPixel(image, tx + x2 - bx0, ty + y2 - by0, pix); } - ihx += ihdx; - ihtx += ihpx; - if (ihtx >= ihqx) { - ++ihx; - ihtx -= ihqx; - } - } - - // Bresenham increment (left edge) - dvx += dvdx; - dvtx += dvpx; - dhty0 += dvdx * dhdx * dhpy; - if (dvtx >= dvqx) { - dvx += dvdx2; - dvtx -= dvqx; - dhty0 += dvdx2 * dhdx * dhpy; - } - dvy += dvdy; - dvty += dvpy; - dhtx0 += dvdy * dhdy * dhpx; - if (dvty >= dvqy) { - dvy += dvdy2; - dvty -= dvqy; - dhtx0 += dvdy2 * dhdy * dhpx; - } - ivy += ivdy; - ivty += ivpy; - if (ivty >= ivqy) { - ++ivy; - ivty -= ivqy; - } - if (dhtx0 >= dhqy) { - dhtx0 -= dhqx; - } else if (dhtx0 < 0) { - dhtx0 += dhqx; - } - if (dhty0 >= dhqx) { - dhty0 -= dhqy; - } else if (dhty0 < 0) { - dhty0 += dhqy; } } - + // blit the image into the pixmap XPutImage(display, pixmap, fillGC, image, cx1, cy1, cx0, cy0, cw, ch); // free memory delete imgStr; gfree(pixBuf); + if (maskColors) { + gfree(alphaBuf); + } gfree(image->data); image->data = NULL; XDestroyImage(image); gfree(errDown); } -GBool XOutputDev::findText(char *s, GBool top, GBool bottom, +GBool XOutputDev::findText(Unicode *s, int len, GBool top, GBool bottom, int *xMin, int *yMin, int *xMax, int *yMax) { double xMin1, yMin1, xMax1, yMax1; @@ -3567,7 +3628,7 @@ GBool XOutputDev::findText(char *s, GBool top, GBool bottom, yMin1 = (double)*yMin; xMax1 = (double)*xMax; yMax1 = (double)*yMax; - if (text->findText(s, top, bottom, &xMin1, &yMin1, &xMax1, &yMax1)) { + if (text->findText(s, len, top, bottom, &xMin1, &yMin1, &xMax1, &yMax1)) { *xMin = xoutRound(xMin1); *xMax = xoutRound(xMax1); *yMin = xoutRound(yMin1); diff --git a/pdf/xpdf/XOutputDev.h b/pdf/xpdf/XOutputDev.h index 57b2fe09..4d1ff644 100644 --- a/pdf/xpdf/XOutputDev.h +++ b/pdf/xpdf/XOutputDev.h @@ -2,7 +2,7 @@ // // XOutputDev.h // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -17,17 +17,26 @@ #include #include #include "config.h" +#include "CharTypes.h" +#include "GlobalParams.h" #include "OutputDev.h" class GString; +class GList; struct GfxRGB; class GfxFont; class GfxSubpath; class TextPage; -class FontEncoding; class XOutputFontCache; +struct T3FontCacheTag; +class T3FontCache; +struct T3GlyphStack; +class XOutputDev; class Link; class Catalog; +class DisplayFontParam; +class UnicodeMap; +class CharCodeToUnicode; #if HAVE_T1LIB_H class T1FontEngine; @@ -35,7 +44,13 @@ class T1FontFile; class T1Font; #endif -#if HAVE_FREETYPE_FREETYPE_H | HAVE_FREETYPE_H +#if FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) +class FTFontEngine; +class FTFontFile; +class FTFont; +#endif + +#if !FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) class TTFontEngine; class TTFontFile; class TTFont; @@ -45,7 +60,7 @@ class TTFont; // Constants //------------------------------------------------------------------------ -#define maxRGBCube 8 // max size of RGB color cube +#define maxRGBCube 7 // max size of RGB color cube #define numTmpPoints 256 // number of XPoints in temporary array #define numTmpSubpaths 16 // number of elements in temporary arrays @@ -60,68 +75,6 @@ struct BoundingRect { short yMin, yMax; // min/max y values }; -//------------------------------------------------------------------------ -// Parameters -//------------------------------------------------------------------------ - -// Install a private colormap. -extern GBool installCmap; - -// Size of RGB color cube. -extern int rgbCubeSize; - -#if HAVE_T1LIB_H -// Type of t1lib font rendering to use: -// "none" -- don't use t1lib -// "plain" -- t1lib, without anti-aliasing -// "low" -- t1lib, with low-level anti-aliasing -// "high" -- t1lib, with high-level anti-aliasing -extern GString *t1libControl; -#endif - -#if HAVE_FREETYPE_FREETYPE_H | HAVE_FREETYPE_H -// Type of FreeType font rendering to use: -// "none" -- don't use FreeType -// "plain" -- FreeType, without anti-aliasing -// "aa" -- FreeType, with anti-aliasing -extern GString *freeTypeControl; -#endif - -// If any of these are set, xpdf will use t1lib to render those font(s) -// instead of using the X server font(s). -extern GString *t1Courier; -extern GString *t1CourierBold; -extern GString *t1CourierBoldOblique; -extern GString *t1CourierOblique; -extern GString *t1Helvetica; -extern GString *t1HelveticaBold; -extern GString *t1HelveticaBoldOblique; -extern GString *t1HelveticaOblique; -extern GString *t1Symbol; -extern GString *t1TimesBold; -extern GString *t1TimesBoldItalic; -extern GString *t1TimesItalic; -extern GString *t1TimesRoman; -extern GString *t1ZapfDingbats; - -// Use the EUC-JP encoding. -extern GBool useEUCJP; - -#if JAPANESE_SUPPORT -// X font name pattern to use for Japanese text. -extern GString *japan12Font; -#endif - -#if CHINESE_GB_SUPPORT -// X font name pattern to use for Chinese GB text. -extern GString *gb12Font; -#endif - -#if CHINESE_CNS_SUPPORT -// X font name pattern to use for Chinese CNS text. -extern GString *cns13Font; -#endif - //------------------------------------------------------------------------ // XOutputFont //------------------------------------------------------------------------ @@ -129,16 +82,19 @@ extern GString *cns13Font; class XOutputFont { public: - XOutputFont(GfxFont *gfxFont, double m11, double m12, - double m21, double m22, Display *display, - XOutputFontCache *cache); + XOutputFont(Ref *idA, double m11OrigA, double m12OrigA, + double m21OrigA, double m22OrigA, + double m11A, double m12A, double m21A, double m22A, + Display *displayA, XOutputDev *xOutA); virtual ~XOutputFont(); // Does this font match the ID and transform? - GBool matches(Ref id1, double m11, double m12, double m21, double m22) - { return id.num == id1.num && id.gen == id1.gen && - m11 == tm11 && m12 == tm12 && m21 == tm21 && m22 == tm22; } + GBool matches(Ref *idA, double m11OrigA, double m12OrigA, + double m21OrigA, double m22OrigA) + { return id.num == idA->num && id.gen == idA->gen && + m11Orig == m11OrigA && m12Orig == m12OrigA && + m21Orig == m21OrigA && m22Orig == m22OrigA; } // Was font created successfully? virtual GBool isOk() = 0; @@ -146,21 +102,29 @@ public: // Update with this font. virtual void updateGC(GC gc) = 0; - // Draw character at ,. + // Draw character / at , (in device space). virtual void drawChar(GfxState *state, Pixmap pixmap, int w, int h, - GC gc, double x, double y, int c) = 0; + GC gc, GfxRGB *rgb, + double x, double y, double dx, double dy, + CharCode c, Unicode *u, int uLen) = 0; - // Does this font use hex char codes? - GBool isHex() { return hex; } + // Returns true if this XOutputFont subclass provides the + // getCharPath function. + virtual GBool hasGetCharPath() { return gFalse; } + + // Add the character outline for / to the current path. + virtual void getCharPath(GfxState *state, + CharCode c, Unicode *u, int ulen); protected: Ref id; // font ID - double tm11, tm12, // original transform matrix - tm21, tm22; + double m11Orig, m12Orig, // original transform matrix + m21Orig, m22Orig; + double m11, m12, m21, m22; // actual transform matrix (possibly + // modified for font substitution) Display *display; // X display - GBool hex; // subsetted font with hex char codes - // (this flag is used for text output) + XOutputDev *xOut; }; #if HAVE_T1LIB_H @@ -171,9 +135,12 @@ protected: class XOutputT1Font: public XOutputFont { public: - XOutputT1Font(GfxFont *gfxFont, GString *pdfBaseFont, - double m11, double m12, double m21, double m22, - Display *display, XOutputFontCache *cache); + XOutputT1Font(Ref *idA, T1FontFile *fontFileA, + double m11OrigA, double m12OrigA, + double m21OrigA, double m22OrigA, + double m11A, double m12A, + double m21A, double m22A, + Display *displayA, XOutputDev *xOutA); virtual ~XOutputT1Font(); @@ -183,18 +150,72 @@ public: // Update with this font. virtual void updateGC(GC gc); - // Draw character at ,. + // Draw character / at ,. virtual void drawChar(GfxState *state, Pixmap pixmap, int w, int h, - GC gc, double x, double y, int c); + GC gc, GfxRGB *rgb, + double x, double y, double dx, double dy, + CharCode c, Unicode *u, int uLen); + + // Returns true if this XOutputFont subclass provides the + // getCharPath function. + virtual GBool hasGetCharPath() { return gTrue; } + + // Add the character outline for / to the current path. + virtual void getCharPath(GfxState *state, + CharCode c, Unicode *u, int ulen); private: T1FontFile *fontFile; T1Font *font; }; -#endif +#endif // HAVE_T1LIB_H -#if HAVE_FREETYPE_FREETYPE_H | HAVE_FREETYPE_H +#if FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) +//------------------------------------------------------------------------ +// XOutputFTFont +//------------------------------------------------------------------------ + +class XOutputFTFont: public XOutputFont { +public: + + XOutputFTFont(Ref *idA, FTFontFile *fontFileA, + double m11OrigA, double m12OrigA, + double m21OrigA, double m22OrigA, + double m11A, double m12A, + double m21A, double m22A, + Display *displayA, XOutputDev *xOutA); + + virtual ~XOutputFTFont(); + + // Was font created successfully? + virtual GBool isOk(); + + // Update with this font. + virtual void updateGC(GC gc); + + // Draw character / at ,. + virtual void drawChar(GfxState *state, Pixmap pixmap, int w, int h, + GC gc, GfxRGB *rgb, + double x, double y, double dx, double dy, + CharCode c, Unicode *u, int uLen); + + // Returns true if this XOutputFont subclass provides the + // getCharPath function. + virtual GBool hasGetCharPath() { return gTrue; } + + // Add the character outline for / to the current path. + virtual void getCharPath(GfxState *state, + CharCode c, Unicode *u, int ulen); + +private: + + FTFontFile *fontFile; + FTFont *font; +}; +#endif // FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) + +#if !FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) //------------------------------------------------------------------------ // XOutputTTFont //------------------------------------------------------------------------ @@ -202,9 +223,12 @@ private: class XOutputTTFont: public XOutputFont { public: - XOutputTTFont(GfxFont *gfxFont, double m11, double m12, - double m21, double m22, Display *display, - XOutputFontCache *cache); + XOutputTTFont(Ref *idA, TTFontFile *fontFileA, + double m11OrigA, double m12OrigA, + double m21OrigA, double m22OrigA, + double m11A, double m12A, + double m21A, double m22A, + Display *displayA, XOutputDev *xOutA); virtual ~XOutputTTFont(); @@ -214,32 +238,34 @@ public: // Update with this font. virtual void updateGC(GC gc); - // Draw character at ,. + // Draw character / at ,. virtual void drawChar(GfxState *state, Pixmap pixmap, int w, int h, - GC gc, double x, double y, int c); + GC gc, GfxRGB *rgb, + double x, double y, double dx, double dy, + CharCode c, Unicode *u, int uLen); private: TTFontFile *fontFile; TTFont *font; }; -#endif +#endif // !FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) //------------------------------------------------------------------------ -// XOutputServerFont +// XOutputServer8BitFont //------------------------------------------------------------------------ -class XOutputServerFont: public XOutputFont { +class XOutputServer8BitFont: public XOutputFont { public: - XOutputServerFont(GfxFont *gfxFont, char *fontNameFmt, - FontEncoding *encoding, - double m11, double m12, double m21, double m22, - double size, double ntm11, double ntm12, - double ntm21, double ntm22, - Display *display, XOutputFontCache *cache); + XOutputServer8BitFont(Ref *idA, GString *xlfdFmt, + UnicodeMap *xUMapA, CharCodeToUnicode *fontUMap, + double m11OrigA, double m12OrigA, + double m21OrigA, double m22OrigA, + double m11A, double m12A, double m21A, double m22A, + Display *displayA, XOutputDev *xOutA); - virtual ~XOutputServerFont(); + virtual ~XOutputServer8BitFont(); // Was font created successfully? virtual GBool isOk(); @@ -247,15 +273,51 @@ public: // Update with this font. virtual void updateGC(GC gc); - // Draw character at ,. + // Draw character / at ,. virtual void drawChar(GfxState *state, Pixmap pixmap, int w, int h, - GC gc, double x, double y, int c); + GC gc, GfxRGB *rgb, + double x, double y, double dx, double dy, + CharCode c, Unicode *u, int uLen); private: XFontStruct *xFont; // the X font - Gushort map[256]; // forward map (PDF code -> font code) - Guchar revMap[256]; // reverese map (font code -> PDF code) + Gushort map[256]; // forward map (char code -> X font code) + UnicodeMap *xUMap; +}; + +//------------------------------------------------------------------------ +// XOutputServer16BitFont +//------------------------------------------------------------------------ + +class XOutputServer16BitFont: public XOutputFont { +public: + + XOutputServer16BitFont(Ref *idA, GString *xlfdFmt, + UnicodeMap *xUMapA, CharCodeToUnicode *fontUMap, + double m11OrigA, double m12OrigA, + double m21OrigA, double m22OrigA, + double m11A, double m12A, double m21A, double m22A, + Display *displayA, XOutputDev *xOutA); + + virtual ~XOutputServer16BitFont(); + + // Was font created successfully? + virtual GBool isOk(); + + // Update with this font. + virtual void updateGC(GC gc); + + // Draw character / at ,. + virtual void drawChar(GfxState *state, Pixmap pixmap, int w, int h, + GC gc, GfxRGB *rgb, + double x, double y, double dx, double dy, + CharCode c, Unicode *u, int uLen); + +private: + + XFontStruct *xFont; // the X font + UnicodeMap *xUMap; }; //------------------------------------------------------------------------ @@ -263,15 +325,37 @@ private: //------------------------------------------------------------------------ #if HAVE_T1LIB_H -struct XOutputT1FontFile { +class XOutputT1FontFile { +public: + XOutputT1FontFile(int numA, int genA, GBool substA, T1FontFile *fontFileA) + { num = numA; gen = genA; subst = substA; fontFile = fontFileA; } + ~XOutputT1FontFile(); int num, gen; + GBool subst; T1FontFile *fontFile; }; #endif -#if HAVE_FREETYPE_FREETYPE_H | HAVE_FREETYPE_H -struct XOutputTTFontFile { +#if FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) +class XOutputFTFontFile { +public: + XOutputFTFontFile(int numA, int genA, GBool substA, FTFontFile *fontFileA) + { num = numA; gen = genA; subst = substA; fontFile = fontFileA; } + ~XOutputFTFontFile(); + int num, gen; + GBool subst; + FTFontFile *fontFile; +}; +#endif + +#if !FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) +class XOutputTTFontFile { +public: + XOutputTTFontFile(int numA, int genA, GBool substA, TTFontFile *fontFileA) + { num = numA; gen = genA; subst = substA; fontFile = fontFileA; } + ~XOutputTTFontFile(); int num, gen; + GBool subst; TTFontFile *fontFile; }; #endif @@ -280,7 +364,10 @@ class XOutputFontCache { public: // Constructor. - XOutputFontCache(Display *display, Guint depth); + XOutputFontCache(Display *displayA, Guint depthA, + XOutputDev *xOutA, + FontRastControl t1libControlA, + FontRastControl freetypeControlA); // Destructor. ~XOutputFontCache(); @@ -293,58 +380,84 @@ public: Gulong *colors, int numColors); // Get a font. This creates a new font if necessary. - XOutputFont *getFont(GfxFont *gfxFont, double m11, double m12, + XOutputFont *getFont(XRef *xref, GfxFont *gfxFont, double m11, double m12, double m21, double m22); -#if HAVE_T1LIB_H - // Get a t1lib font file. - T1FontFile *getT1Font(GfxFont *gfxFont, GString *pdfBaseFont); - - // Use anti-aliased Type 1 fonts? - GBool getT1libAA() { return t1libAA; } -#endif - -#if HAVE_FREETYPE_FREETYPE_H | HAVE_FREETYPE_H - // Get a FreeType font file. - TTFontFile *getTTFont(GfxFont *gfxFont); -#endif - private: void delFonts(); void clear(); + XOutputFont *tryGetFont(XRef *xref, DisplayFontParam *dfp, GfxFont *gfxFont, + double m11Orig, double m12Orig, + double m21Orig, double m22Orig, + double m11, double m12, double m21, double m22, + GBool subst); +#if HAVE_T1LIB_H + XOutputFont *tryGetT1Font(XRef *xref, GfxFont *gfxFont, + double m11, double m12, double m21, double m22); + XOutputFont *tryGetT1FontFromFile(XRef *xref, GString *fileName, + GfxFont *gfxFont, + double m11Orig, double m12Orig, + double m21Orig, double m22Orig, + double m11, double m12, + double m21, double m22, GBool subst); +#endif +#if FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) + XOutputFont *tryGetFTFont(XRef *xref, GfxFont *gfxFont, + double m11, double m12, double m21, double m22); + XOutputFont *tryGetFTFontFromFile(XRef *xref, GString *fileName, + GfxFont *gfxFont, + double m11Orig, double m12Orig, + double m21Orig, double m22Orig, + double m11, double m12, + double m21, double m22, GBool subst); +#endif +#if !FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) + XOutputFont *tryGetTTFont(XRef *xref, GfxFont *gfxFont, + double m11, double m12, double m21, double m22); + XOutputFont *tryGetTTFontFromFile(XRef *xref, GString *fileName, + GfxFont *gfxFont, + double m11Orig, double m12Orig, + double m21Orig, double m22Orig, + double m11, double m12, + double m21, double m22, GBool subst); +#endif + XOutputFont *tryGetServerFont(GString *xlfd, GString *encodingName, + GfxFont *gfxFont, + double m11Orig, double m12Orig, + double m21Orig, double m22Orig, + double m11, double m12, + double m21, double m22); Display *display; // X display pointer + XOutputDev *xOut; Guint depth; // pixmap depth + XOutputFont * + fonts[xOutFontCacheSize]; + int nFonts; + #if HAVE_T1LIB_H - GBool useT1lib; // if false, t1lib is not used at all - GBool t1libAA; // true for anti-aliased fonts - GBool t1libAAHigh; // low or high-level anti-aliasing + FontRastControl t1libControl; // t1lib settings T1FontEngine *t1Engine; // Type 1 font engine - XOutputT1Font * // Type 1 fonts in reverse-LRU order - t1Fonts[t1FontCacheSize]; - int nT1Fonts; // number of valid entries in t1Fonts[] - XOutputT1FontFile * // list of Type 1 font files - t1FontFiles; - int t1FontFilesSize; // size of t1FontFiles array + GList *t1FontFiles; // list of Type 1 font files + // [XOutputT1FontFile] #endif -#if HAVE_FREETYPE_FREETYPE_H | HAVE_FREETYPE_H - GBool useFreeType; // if false, FreeType is not used at all - GBool freeTypeAA; // true for anti-aliased fonts +#if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H + FontRastControl // FreeType settings + freetypeControl; +#endif +#if FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) + FTFontEngine *ftEngine; // FreeType font engine + GList *ftFontFiles; // list of FreeType font files + // [XOutputFTFontFile] +#endif +#if !FREETYPE2 && (HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H) TTFontEngine *ttEngine; // TrueType font engine - XOutputTTFont * // TrueType fonts in reverse-LRU order - ttFonts[ttFontCacheSize]; - int nTTFonts; // number of valid entries in ttFonts[] - XOutputTTFontFile * // list of TrueType font files - ttFontFiles; - int ttFontFilesSize; // size of ttFontFiles array + GList *ttFontFiles; // list of TrueType font files + // [XOutputTTFontFile] #endif - - XOutputServerFont * // X server fonts in reverse-LRU order - serverFonts[serverFontCacheSize]; - int nServerFonts; // number of valid entries in serverFonts[] }; //------------------------------------------------------------------------ @@ -366,8 +479,10 @@ class XOutputDev: public OutputDev { public: // Constructor. - XOutputDev(Display *display1, Pixmap pixmap1, Guint depth1, - Colormap colormap, unsigned long paperColor); + XOutputDev(Display *displayA, Pixmap pixmapA, Guint depthA, + Colormap colormapA, GBool reverseVideoA, + unsigned long paperColor, GBool installCmap, + int rgbCubeSize); // Destructor. virtual ~XOutputDev(); @@ -381,6 +496,10 @@ public: // Does this device use drawChar() or drawString()? virtual GBool useDrawChar() { return gTrue; } + // Does this device use beginType3Char/endType3Char? Otherwise, + // text in Type 3 fonts will be drawn with drawChar/drawString. + virtual GBool interpretType3Chars() { return gTrue; } + //----- initialization and control // Start a page. @@ -425,9 +544,12 @@ public: virtual void beginString(GfxState *state, GString *s); virtual void endString(GfxState *state); virtual void drawChar(GfxState *state, double x, double y, - double dx, double dy, Guchar c); - virtual void drawChar16(GfxState *state, double x, double y, - double dx, double dy, int c); + double dx, double dy, + double originX, double originY, + CharCode code, Unicode *u, int uLen); + virtual GBool beginType3Char(GfxState *state, + CharCode code, Unicode *u, int uLen); + virtual void endType3Char(GfxState *state); //----- image drawing virtual void drawImageMask(GfxState *state, Object *ref, Stream *str, @@ -435,24 +557,31 @@ public: GBool inlineImg); virtual void drawImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, - GBool inlineImg); + int *maskColors, GBool inlineImg); + + //----- Type 3 font operators + virtual void type3D0(GfxState *state, double wx, double wy); + virtual void type3D1(GfxState *state, double wx, double wy, + double llx, double lly, double urx, double ury); //----- special access // Called to indicate that a new PDF document has been loaded. - void startDoc(); + void startDoc(XRef *xrefA); // Find a string. If is true, starts looking at ,; // otherwise starts looking at top of page. If is true, // stops looking at ,; otherwise stops looking at bottom // of page. If found, sets the text bounding rectange and returns // true; otherwise returns false. - GBool findText(char *s, GBool top, GBool bottom, + GBool findText(Unicode *s, int len, GBool top, GBool bottom, int *xMin, int *yMin, int *xMax, int *yMax); // Get the text which is inside the specified rectangle. GString *getText(int xMin, int yMin, int xMax, int yMax); + GBool isReverseVideo() { return reverseVideo; } + protected: // Update pixmap ID after a page change. @@ -461,6 +590,7 @@ protected: private: + XRef *xref; // the xref table for this PDF file Display *display; // X display pointer int screenNum; // X screen number Pixmap pixmap; // pixmap to draw into @@ -478,6 +608,8 @@ private: Gulong // color cube colors[maxRGBCube * maxRGBCube * maxRGBCube]; int numColors; // size of color cube + double redMap[256]; // map pixel (from color cube) to red value + GBool reverseVideo; // reverse video mode XPoint // temporary points array tmpPoints[numTmpPoints]; int // temporary arrays for fill/clip @@ -487,9 +619,13 @@ private: GfxFont *gfxFont; // current PDF font XOutputFont *font; // current font XOutputFontCache *fontCache; // font cache + T3FontCache * // Type 3 font cache + t3FontCache[xOutT3FontCacheSize]; + int nT3Fonts; // number of valid entries in t3FontCache + T3GlyphStack *t3GlyphStack; // Type 3 glyph context stack XOutputState *save; // stack of saved states + TextPage *text; // text from the current page - GBool type3Warning; // only show the Type 3 font warning once void updateLineAttrs(GfxState *state, GBool updateDash); void doFill(GfxState *state, int rule); @@ -502,6 +638,9 @@ private: double x0, double y0, double x1, double y1, double x2, double y2, double x3, double y3); void addPoint(XPoint **points, int *size, int *k, int x, int y); + void drawType3Glyph(T3FontCache *t3Font, + T3FontCacheTag *tag, Guchar *data, + double x, double y, GfxRGB *color); Gulong findColor(GfxRGB *rgb); Gulong findColor(GfxRGB *x, GfxRGB *err); }; diff --git a/pdf/xpdf/XRef.cc b/pdf/xpdf/XRef.cc index d70b9f20..0e1bbc9c 100644 --- a/pdf/xpdf/XRef.cc +++ b/pdf/xpdf/XRef.cc @@ -2,7 +2,7 @@ // // XRef.cc // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -10,6 +10,7 @@ #pragma implementation #endif +#include #include #include #include @@ -24,6 +25,7 @@ #include "Decrypt.h" #endif #include "Error.h" +#include "ErrorCodes.h" #include "XRef.h" //------------------------------------------------------------------------ @@ -43,34 +45,23 @@ #define defPermFlags 0xfffc #endif -//------------------------------------------------------------------------ -// The global xref table -//------------------------------------------------------------------------ - -XRef *xref = NULL; - //------------------------------------------------------------------------ // XRef //------------------------------------------------------------------------ -XRef::XRef(BaseStream *str, GString *userPassword) { - XRef *oldXref; - int pos; +XRef::XRef(BaseStream *strA, GString *ownerPassword, GString *userPassword) { + Guint pos; int i; ok = gTrue; + errCode = errNone; size = 0; entries = NULL; streamEnds = NULL; streamEndsLen = 0; - // get rid of old xref (otherwise it will try to fetch the Root object - // in the new document, using the old xref) - oldXref = xref; - xref = NULL; - // read the trailer - this->str = str; + str = strA; start = str->getStart(); pos = readTrailer(); @@ -78,7 +69,7 @@ XRef::XRef(BaseStream *str, GString *userPassword) { // try to reconstruct the xref table if (pos == 0) { if (!(ok = constructXRef())) { - xref = oldXref; + errCode = errDamaged; return; } @@ -86,7 +77,7 @@ XRef::XRef(BaseStream *str, GString *userPassword) { } else { entries = (XRefEntry *)gmalloc(size * sizeof(XRefEntry)); for (i = 0; i < size; ++i) { - entries[i].offset = -1; + entries[i].offset = 0xffffffff; entries[i].used = gFalse; } while (readXRef(&pos)) ; @@ -98,22 +89,23 @@ XRef::XRef(BaseStream *str, GString *userPassword) { size = 0; entries = NULL; if (!(ok = constructXRef())) { - xref = oldXref; + errCode = errDamaged; return; } } } - // set up new xref table - xref = this; + // now set the trailer dictionary's xref pointer so we can fetch + // indirect objects from it + trailerDict.getDict()->setXRef(this); // check for encryption #ifndef NO_DECRYPTION encrypted = gFalse; #endif - if (checkEncrypted(userPassword)) { + if (checkEncrypted(ownerPassword, userPassword)) { ok = gFalse; - xref = oldXref; + errCode = errEncrypted; return; } } @@ -128,17 +120,18 @@ XRef::~XRef() { // Read startxref position, xref table size, and root. Returns // first xref position. -int XRef::readTrailer() { +Guint XRef::readTrailer() { Parser *parser; Object obj; char buf[xrefSearchSize+1]; - int n, pos, pos1; + int n; + Guint pos, pos1; char *p; int c; int i; // read last xrefSearchSize bytes - str->setPos(-xrefSearchSize); + str->setPos(xrefSearchSize, -1); for (n = 0; n < xrefSearchSize; ++n) { if ((c = str->getChar()) == EOF) break; @@ -154,7 +147,7 @@ int XRef::readTrailer() { if (i < 0) return 0; for (p = &buf[i+9]; isspace(*p); ++p) ; - pos = lastXRefPos = atoi(p); + pos = lastXRefPos = strToUnsigned(p); // find trailer dict by looking after first xref table // (NB: we can't just use the trailer dict at the end of the file -- @@ -189,7 +182,9 @@ int XRef::readTrailer() { // read trailer dict obj.initNull(); - parser = new Parser(new Lexer(str->makeSubStream(start + pos1, -1, &obj))); + parser = new Parser(NULL, + new Lexer(NULL, + str->makeSubStream(start + pos1, gFalse, 0, &obj))); parser->getObj(&trailerDict); if (trailerDict.isDict()) { trailerDict.dictLookupNF("Size", &obj); @@ -216,12 +211,12 @@ int XRef::readTrailer() { } // Read an xref table and the prev pointer from the trailer. -GBool XRef::readXRef(int *pos) { +GBool XRef::readXRef(Guint *pos) { Parser *parser; Object obj, obj2; char s[20]; GBool more; - int first, n, i, j; + int first, newSize, n, i, j; int c; // seek to xref in stream @@ -233,77 +228,101 @@ GBool XRef::readXRef(int *pos) { s[1] = (char)str->getChar(); s[2] = (char)str->getChar(); s[3] = (char)str->getChar(); - if (!(s[0] == 'x' && s[1] == 'r' && s[2] == 'e' && s[3] == 'f')) + if (!(s[0] == 'x' && s[1] == 'r' && s[2] == 'e' && s[3] == 'f')) { goto err2; + } // read xref while (1) { - while ((c = str->lookChar()) != EOF && isspace(c)) + while ((c = str->lookChar()) != EOF && isspace(c)) { str->getChar(); - if (c == 't') + } + if (c == 't') { break; - for (i = 0; (c = str->getChar()) != EOF && isdigit(c) && i < 20; ++i) + } + for (i = 0; (c = str->getChar()) != EOF && isdigit(c) && i < 20; ++i) { s[i] = (char)c; - if (i == 0) + } + if (i == 0) { goto err2; + } s[i] = '\0'; first = atoi(s); - while ((c = str->lookChar()) != EOF && isspace(c)) + while ((c = str->lookChar()) != EOF && isspace(c)) { str->getChar(); - for (i = 0; (c = str->getChar()) != EOF && isdigit(c) && i < 20; ++i) + } + for (i = 0; (c = str->getChar()) != EOF && isdigit(c) && i < 20; ++i) { s[i] = (char)c; - if (i == 0) + } + if (i == 0) { goto err2; + } s[i] = '\0'; n = atoi(s); - while ((c = str->lookChar()) != EOF && isspace(c)) + while ((c = str->lookChar()) != EOF && isspace(c)) { str->getChar(); + } + // check for buggy PDF files with an incorrect (too small) xref + // table size + if (first + n > size) { + newSize = size + 256; + entries = (XRefEntry *)grealloc(entries, newSize * sizeof(XRefEntry)); + for (i = size; i < newSize; ++i) { + entries[i].offset = 0xffffffff; + entries[i].used = gFalse; + } + size = newSize; + } for (i = first; i < first + n; ++i) { for (j = 0; j < 20; ++j) { - if ((c = str->getChar()) == EOF) + if ((c = str->getChar()) == EOF) { goto err2; + } s[j] = (char)c; } - if (entries[i].offset < 0) { + if (entries[i].offset == 0xffffffff) { s[10] = '\0'; - entries[i].offset = atoi(s); + entries[i].offset = strToUnsigned(s); s[16] = '\0'; entries[i].gen = atoi(&s[11]); - if (s[17] == 'n') + if (s[17] == 'n') { entries[i].used = gTrue; - else if (s[17] == 'f') + } else if (s[17] == 'f') { entries[i].used = gFalse; - else + } else { goto err2; -#if 1 //~ - //~ PDF files of patents from the IBM Intellectual Property - //~ Network have a bug: the xref table claims to start at 1 - //~ instead of 0. + } + // PDF files of patents from the IBM Intellectual Property + // Network have a bug: the xref table claims to start at 1 + // instead of 0. if (i == 1 && first == 1 && entries[1].offset == 0 && entries[1].gen == 65535 && !entries[1].used) { i = first = 0; entries[0] = entries[1]; - entries[1].offset = -1; + entries[1].offset = 0xffffffff; } -#endif } } } // read prev pointer from trailer dictionary obj.initNull(); - parser = new Parser(new Lexer(str->makeSubStream(str->getPos(), -1, &obj))); + parser = new Parser(NULL, + new Lexer(NULL, + str->makeSubStream(str->getPos(), gFalse, 0, &obj))); parser->getObj(&obj); - if (!obj.isCmd("trailer")) + if (!obj.isCmd("trailer")) { goto err1; + } obj.free(); parser->getObj(&obj); - if (!obj.isDict()) + if (!obj.isDict()) { goto err1; + } obj.getDict()->lookupNF("Prev", &obj2); if (obj2.isInt()) { - *pos = obj2.getInt(); + *pos = (Guint)obj2.getInt(); more = gTrue; } else { more = gFalse; @@ -326,7 +345,7 @@ GBool XRef::constructXRef() { Parser *parser; Object obj; char buf[256]; - int pos; + Guint pos; int num, gen; int newSize; int streamEndsSize; @@ -349,8 +368,9 @@ GBool XRef::constructXRef() { // got trailer dictionary if (!strncmp(p, "trailer", 7)) { obj.initNull(); - parser = new Parser(new Lexer( - str->makeSubStream(start + pos + 7, -1, &obj))); + parser = new Parser(NULL, + new Lexer(NULL, + str->makeSubStream(start + pos + 7, gFalse, 0, &obj))); if (!trailerDict.isNone()) trailerDict.free(); parser->getObj(&trailerDict); @@ -392,7 +412,7 @@ GBool XRef::constructXRef() { entries = (XRefEntry *) grealloc(entries, newSize * sizeof(XRefEntry)); for (i = size; i < newSize; ++i) { - entries[i].offset = -1; + entries[i].offset = 0xffffffff; entries[i].used = gFalse; } size = newSize; @@ -410,7 +430,8 @@ GBool XRef::constructXRef() { } else if (!strncmp(p, "endstream", 9)) { if (streamEndsLen == streamEndsSize) { streamEndsSize += 64; - streamEnds = (int *)grealloc(streamEnds, streamEndsSize * sizeof(int)); + streamEnds = (Guint *)grealloc(streamEnds, + streamEndsSize * sizeof(int)); } streamEnds[streamEndsLen++] = pos; } @@ -424,8 +445,9 @@ GBool XRef::constructXRef() { } #ifndef NO_DECRYPTION -GBool XRef::checkEncrypted(GString *userPassword) { - Object encrypt, ownerKey, userKey, permissions, fileID, fileID1; +GBool XRef::checkEncrypted(GString *ownerPassword, GString *userPassword) { + Object encrypt, filterObj, versionObj, revisionObj, lengthObj; + Object ownerKey, userKey, permissions, fileID, fileID1; GBool encrypted1; GBool ret; @@ -435,35 +457,68 @@ GBool XRef::checkEncrypted(GString *userPassword) { trailerDict.dictLookup("Encrypt", &encrypt); if ((encrypted1 = encrypt.isDict())) { ret = gTrue; - encrypt.dictLookup("O", &ownerKey); - encrypt.dictLookup("U", &userKey); - encrypt.dictLookup("P", &permissions); - trailerDict.dictLookup("ID", &fileID); - if (ownerKey.isString() && ownerKey.getString()->getLength() == 32 && - userKey.isString() && userKey.getString()->getLength() == 32 && - permissions.isInt() && - fileID.isArray()) { - permFlags = permissions.getInt(); - fileID.arrayGet(0, &fileID1); - if (fileID1.isString()) { - if (Decrypt::makeFileKey(ownerKey.getString(), userKey.getString(), - permFlags, fileID1.getString(), - userPassword, fileKey)) { - ret = gFalse; + encrypt.dictLookup("Filter", &filterObj); + if (filterObj.isName("Standard")) { + encrypt.dictLookup("V", &versionObj); + encrypt.dictLookup("R", &revisionObj); + encrypt.dictLookup("Length", &lengthObj); + encrypt.dictLookup("O", &ownerKey); + encrypt.dictLookup("U", &userKey); + encrypt.dictLookup("P", &permissions); + trailerDict.dictLookup("ID", &fileID); + if (versionObj.isInt() && + revisionObj.isInt() && + ownerKey.isString() && ownerKey.getString()->getLength() == 32 && + userKey.isString() && userKey.getString()->getLength() == 32 && + permissions.isInt() && + fileID.isArray()) { + encVersion = versionObj.getInt(); + encRevision = revisionObj.getInt(); + if (lengthObj.isInt()) { + keyLength = lengthObj.getInt() / 8; } else { - error(-1, "Incorrect user password"); + keyLength = 5; + } + permFlags = permissions.getInt(); + if (encVersion >= 1 && encVersion <= 2 && + encRevision >= 2 && encRevision <= 3) { + fileID.arrayGet(0, &fileID1); + if (fileID1.isString()) { + if (Decrypt::makeFileKey(encVersion, encRevision, keyLength, + ownerKey.getString(), userKey.getString(), + permFlags, fileID1.getString(), + ownerPassword, userPassword, fileKey, + &ownerPasswordOk)) { + if (ownerPassword && !ownerPasswordOk) { + error(-1, "Incorrect owner password"); + } + ret = gFalse; + } else { + error(-1, "Incorrect password"); + } + } else { + error(-1, "Weird encryption info"); + } + fileID1.free(); + } else { + error(-1, "Unsupported version/revision (%d/%d) of Standard security handler", + encVersion, encRevision); } } else { error(-1, "Weird encryption info"); } - fileID1.free(); + fileID.free(); + permissions.free(); + userKey.free(); + ownerKey.free(); + lengthObj.free(); + revisionObj.free(); + versionObj.free(); } else { - error(-1, "Weird encryption info"); + error(-1, "Unknown security handler '%s'", + filterObj.isName() ? filterObj.getName() : "???"); } - ownerKey.free(); - userKey.free(); - permissions.free(); - fileID.free(); + filterObj.free(); } encrypt.free(); @@ -473,52 +528,50 @@ GBool XRef::checkEncrypted(GString *userPassword) { return ret; } #else -GBool XRef::checkEncrypted(GString *userPassword) { +GBool XRef::checkEncrypted(GString *ownerPassword, GString *userPassword) { Object obj; GBool encrypted; trailerDict.dictLookup("Encrypt", &obj); if ((encrypted = !obj.isNull())) { - error(-1, "PDF file is encrypted and cannot be displayed"); - error(-1, "* Decryption support is currently not included in xpdf"); - error(-1, "* due to legal restrictions: the U.S.A. still has bogus"); - error(-1, "* export controls on cryptography software."); + error(-1, "PDF file is encrypted and this version of the Xpdf tools"); + error(-1, "was built without decryption support."); } obj.free(); return encrypted; } #endif -GBool XRef::okToPrint() { +GBool XRef::okToPrint(GBool ignoreOwnerPW) { #ifndef NO_DECRYPTION - if (!(permFlags & permPrint)) { + if ((ignoreOwnerPW || !ownerPasswordOk) && !(permFlags & permPrint)) { return gFalse; } #endif return gTrue; } -GBool XRef::okToChange() { +GBool XRef::okToChange(GBool ignoreOwnerPW) { #ifndef NO_DECRYPTION - if (!(permFlags & permChange)) { + if ((ignoreOwnerPW || !ownerPasswordOk) && !(permFlags & permChange)) { return gFalse; } #endif return gTrue; } -GBool XRef::okToCopy() { +GBool XRef::okToCopy(GBool ignoreOwnerPW) { #ifndef NO_DECRYPTION - if (!(permFlags & permCopy)) { + if ((ignoreOwnerPW || !ownerPasswordOk) && !(permFlags & permCopy)) { return gFalse; } #endif return gTrue; } -GBool XRef::okToAddNotes() { +GBool XRef::okToAddNotes(GBool ignoreOwnerPW) { #ifndef NO_DECRYPTION - if (!(permFlags & permNotes)) { + if ((ignoreOwnerPW || !ownerPasswordOk) && !(permFlags & permNotes)) { return gFalse; } #endif @@ -537,10 +590,11 @@ Object *XRef::fetch(int num, int gen, Object *obj) { } e = &entries[num]; - if (e->gen == gen && e->offset >= 0) { + if (e->gen == gen && e->offset != 0xffffffff) { obj1.initNull(); - parser = new Parser(new Lexer( - str->makeSubStream(start + e->offset, -1, &obj1))); + parser = new Parser(this, + new Lexer(this, + str->makeSubStream(start + e->offset, gFalse, 0, &obj1))); parser->getObj(&obj1); parser->getObj(&obj2); parser->getObj(&obj3); @@ -548,7 +602,8 @@ Object *XRef::fetch(int num, int gen, Object *obj) { obj2.isInt() && obj2.getInt() == gen && obj3.isCmd("obj")) { #ifndef NO_DECRYPTION - parser->getObj(obj, encrypted ? fileKey : (Guchar *)NULL, num, gen); + parser->getObj(obj, encrypted ? fileKey : (Guchar *)NULL, keyLength, + num, gen); #else parser->getObj(obj); #endif @@ -569,24 +624,42 @@ Object *XRef::getDocInfo(Object *obj) { return trailerDict.dictLookup("Info", obj); } -int XRef::getStreamEnd(int start) { +// Added for the pdftex project. +Object *XRef::getDocInfoNF(Object *obj) { + return trailerDict.dictLookupNF("Info", obj); +} + +GBool XRef::getStreamEnd(Guint streamStart, Guint *streamEnd) { int a, b, m; if (streamEndsLen == 0 || - start > streamEnds[streamEndsLen - 1]) { - return -1; + streamStart > streamEnds[streamEndsLen - 1]) { + return gFalse; } a = -1; b = streamEndsLen - 1; - // invariant: streamEnds[a] < start <= streamEnds[b] + // invariant: streamEnds[a] < streamStart <= streamEnds[b] while (b - a > 1) { m = (a + b) / 2; - if (start <= streamEnds[m]) { + if (streamStart <= streamEnds[m]) { b = m; } else { a = m; } } - return streamEnds[b]; + *streamEnd = streamEnds[b]; + return gTrue; +} + +Guint XRef::strToUnsigned(char *s) { + Guint x; + char *p; + int i; + + x = 0; + for (p = s, i = 0; *p && isdigit(*p) && i < 10; ++p, ++i) { + x = 10 * x + (*p - '0'); + } + return x; } diff --git a/pdf/xpdf/XRef.h b/pdf/xpdf/XRef.h index e2260d0c..7876fa6c 100644 --- a/pdf/xpdf/XRef.h +++ b/pdf/xpdf/XRef.h @@ -2,7 +2,7 @@ // // XRef.h // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -24,7 +24,7 @@ class Stream; //------------------------------------------------------------------------ struct XRefEntry { - int offset; + Guint offset; int gen; GBool used; }; @@ -33,7 +33,7 @@ class XRef { public: // Constructor. Read xref table from stream. - XRef(BaseStream *str, GString *userPassword); + XRef(BaseStream *strA, GString *ownerPassword, GString *userPassword); // Destructor. ~XRef(); @@ -41,6 +41,9 @@ public: // Is xref table valid? GBool isOk() { return ok; } + // Get the error code (if isOk() returns false). + int getErrorCode() { return errCode; } + // Is the file encrypted? #ifndef NO_DECRYPTION GBool isEncrypted() { return encrypted; } @@ -49,10 +52,10 @@ public: #endif // Check various permissions. - GBool okToPrint(); - GBool okToChange(); - GBool okToCopy(); - GBool okToAddNotes(); + GBool okToPrint(GBool ignoreOwnerPW = gFalse); + GBool okToChange(GBool ignoreOwnerPW = gFalse); + GBool okToCopy(GBool ignoreOwnerPW = gFalse); + GBool okToAddNotes(GBool ignoreOwnerPW = gFalse); // Get catalog object. Object *getCatalog(Object *obj) { return fetch(rootNum, rootGen, obj); } @@ -62,51 +65,52 @@ public: // Return the document's Info dictionary (if any). Object *getDocInfo(Object *obj); + Object *getDocInfoNF(Object *obj); // Return the number of objects in the xref table. int getNumObjects() { return size; } // Return the offset of the last xref table. - int getLastXRefPos() { return lastXRefPos; } + Guint getLastXRefPos() { return lastXRefPos; } // Return the catalog object reference. int getRootNum() { return rootNum; } int getRootGen() { return rootGen; } // Get end position for a stream in a damaged file. - // Returns -1 if unknown or file is not damaged. - int getStreamEnd(int start); + // Returns false if unknown or file is not damaged. + GBool getStreamEnd(Guint streamStart, Guint *streamEnd); private: BaseStream *str; // input stream - int start; // offset in file (to allow for garbage + Guint start; // offset in file (to allow for garbage // at beginning of file) XRefEntry *entries; // xref entries int size; // size of array int rootNum, rootGen; // catalog dict GBool ok; // true if xref table is valid + int errCode; // error code (if is false) Object trailerDict; // trailer dictionary - int lastXRefPos; // offset of last xref table - int *streamEnds; // 'endstream' positions - only used in + Guint lastXRefPos; // offset of last xref table + Guint *streamEnds; // 'endstream' positions - only used in // damaged files int streamEndsLen; // number of valid entries in streamEnds #ifndef NO_DECRYPTION GBool encrypted; // true if file is encrypted + int encVersion; // encryption algorithm + int encRevision; // security handler revision + int keyLength; // length of key, in bytes int permFlags; // permission bits Guchar fileKey[16]; // file decryption key + GBool ownerPasswordOk; // true if owner password is correct #endif - int readTrailer(); - GBool readXRef(int *pos); + Guint readTrailer(); + GBool readXRef(Guint *pos); GBool constructXRef(); - GBool checkEncrypted(GString *userPassword); + GBool checkEncrypted(GString *ownerPassword, GString *userPassword); + Guint strToUnsigned(char *s); }; -//------------------------------------------------------------------------ -// The global xref table -//------------------------------------------------------------------------ - -extern XRef *xref; - #endif diff --git a/pdf/xpdf/gpdf.cc b/pdf/xpdf/gpdf.cc index a4f64a2e..5b26d389 100644 --- a/pdf/xpdf/gpdf.cc +++ b/pdf/xpdf/gpdf.cc @@ -4,6 +4,7 @@ * Author: * Michael Meeks */ +#include #include "config.h" #include #include diff --git a/pdf/xpdf/pdffonts.cc b/pdf/xpdf/pdffonts.cc new file mode 100644 index 00000000..4a6ed401 --- /dev/null +++ b/pdf/xpdf/pdffonts.cc @@ -0,0 +1,269 @@ +//======================================================================== +// +// pdffonts.cc +// +// Copyright 2001-2002 Glyph & Cog, LLC +// +//======================================================================== + +#include +#include +#include +#include +#include +#include +#include "parseargs.h" +#include "GString.h" +#include "gmem.h" +#include "GlobalParams.h" +#include "Error.h" +#include "Object.h" +#include "Dict.h" +#include "GfxFont.h" +#include "Annot.h" +#include "PDFDoc.h" +#include "config.h" + +static char *fontTypeNames[] = { + "unknown", + "Type 1", + "Type 1C", + "Type 3", + "TrueType", + "CID Type 0", + "CID Type 0C", + "CID TrueType" +}; + +static void scanFonts(Dict *resDict, PDFDoc *doc); +static void scanFont(GfxFont *font, PDFDoc *doc); + +static int firstPage = 1; +static int lastPage = 0; +static char ownerPassword[33] = ""; +static char userPassword[33] = ""; +static char cfgFileName[256] = ""; +static GBool printVersion = gFalse; +static GBool printHelp = gFalse; + +static ArgDesc argDesc[] = { + {"-f", argInt, &firstPage, 0, + "first page to examine"}, + {"-l", argInt, &lastPage, 0, + "last page to examine"}, + {"-opw", argString, ownerPassword, sizeof(ownerPassword), + "owner password (for encrypted files)"}, + {"-upw", argString, userPassword, sizeof(userPassword), + "user password (for encrypted files)"}, + {"-cfg", argString, cfgFileName, sizeof(cfgFileName), + "configuration file to use in place of .xpdfrc"}, + {"-v", argFlag, &printVersion, 0, + "print copyright and version info"}, + {"-h", argFlag, &printHelp, 0, + "print usage information"}, + {"-help", argFlag, &printHelp, 0, + "print usage information"}, + {"--help", argFlag, &printHelp, 0, + "print usage information"}, + {"-?", argFlag, &printHelp, 0, + "print usage information"}, + {NULL} +}; + +static Ref *fonts; +static int fontsLen; +static int fontsSize; + +int main(int argc, char *argv[]) { + PDFDoc *doc; + GString *fileName; + GString *ownerPW, *userPW; + GBool ok; + Page *page; + Dict *resDict; + Annots *annots; + Object obj1, obj2; + int pg, i; + + // parse args + ok = parseArgs(argDesc, &argc, argv); + if (!ok || argc != 2 || printVersion || printHelp) { + fprintf(stderr, "pdfinfo version %s\n", xpdfVersion); + fprintf(stderr, "%s\n", xpdfCopyright); + if (!printVersion) { + printUsage("pdfinfo", "", argDesc); + } + exit(1); + } + fileName = new GString(argv[1]); + + // read config file + globalParams = new GlobalParams(cfgFileName); + + // open PDF file + if (ownerPassword[0]) { + ownerPW = new GString(ownerPassword); + } else { + ownerPW = NULL; + } + if (userPassword[0]) { + userPW = new GString(userPassword); + } else { + userPW = NULL; + } + doc = new PDFDoc(fileName, ownerPW, userPW); + if (userPW) { + delete userPW; + } + if (ownerPW) { + delete ownerPW; + } + if (!doc->isOk()) { + exit(1); + } + + // get page range + if (firstPage < 1) { + firstPage = 1; + } + if (lastPage < 1 || lastPage > doc->getNumPages()) { + lastPage = doc->getNumPages(); + } + + // scan the fonts + printf("name type emb sub uni object ID\n"); + printf("------------------------------------ ------------ --- --- --- ---------\n"); + fonts = NULL; + fontsLen = fontsSize = 0; + for (pg = firstPage; pg <= lastPage; ++pg) { + page = doc->getCatalog()->getPage(pg); + if ((resDict = page->getResourceDict())) { + scanFonts(resDict, doc); + } + annots = new Annots(doc->getXRef(), page->getAnnots(&obj1)); + obj1.free(); + for (i = 0; i < annots->getNumAnnots(); ++i) { + if (annots->getAnnot(i)->getAppearance(&obj1)->isStream()) { + obj1.streamGetDict()->lookup("Resources", &obj2); + if (obj2.isDict()) { + scanFonts(obj2.getDict(), doc); + } + obj2.free(); + } + obj1.free(); + } + delete annots; + } + + // clean up + gfree(fonts); + delete doc; + delete globalParams; + + // check for memory leaks + Object::memCheck(stderr); + gMemReport(stderr); + + return 0; +} + +static void scanFonts(Dict *resDict, PDFDoc *doc) { + GfxFontDict *gfxFontDict; + GfxFont *font; + Object fontDict, xObjDict, xObj, resObj; + int i; + + // scan the fonts in this resource dictionary + resDict->lookup("Font", &fontDict); + if (fontDict.isDict()) { + gfxFontDict = new GfxFontDict(doc->getXRef(), fontDict.getDict()); + for (i = 0; i < gfxFontDict->getNumFonts(); ++i) { + font = gfxFontDict->getFont(i); + scanFont(font, doc); + } + delete gfxFontDict; + } + fontDict.free(); + + // recursively scan any resource dictionaries in objects in this + // resource dictionary + resDict->lookup("XObject", &xObjDict); + if (xObjDict.isDict()) { + for (i = 0; i < xObjDict.dictGetLength(); ++i) { + xObjDict.dictGetVal(i, &xObj); + if (xObj.isStream()) { + xObj.streamGetDict()->lookup("Resources", &resObj); + if (resObj.isDict()) { + scanFonts(resObj.getDict(), doc); + } + resObj.free(); + } + xObj.free(); + } + } + xObjDict.free(); +} + +static void scanFont(GfxFont *font, PDFDoc *doc) { + Ref fontRef, embRef; + Object fontObj, nameObj, toUnicodeObj; + GString *name; + GBool subset, hasToUnicode; + int i; + + fontRef = *font->getID(); + + // check for an already-seen font + for (i = 0; i < fontsLen; ++i) { + if (fontRef.num == fonts[i].num && fontRef.gen == fonts[i].gen) { + return; + } + } + + // get the original font name -- the GfxFont class munges substitute + // Base-14 font names into proper form, so this code grabs the + // original name from the font dictionary; also look for a ToUnicode + // map + name = NULL; + hasToUnicode = gFalse; + if (doc->getXRef()->fetch(fontRef.num, fontRef.gen, &fontObj)->isDict()) { + if (fontObj.dictLookup("BaseFont", &nameObj)->isName()) { + name = new GString(nameObj.getName()); + } + nameObj.free(); + hasToUnicode = fontObj.dictLookup("ToUnicode", &toUnicodeObj)->isStream(); + toUnicodeObj.free(); + } + fontObj.free(); + + // check for a font subset name: capital letters followed by a '+' + // sign + subset = gFalse; + if (name) { + for (i = 0; i < name->getLength(); ++i) { + if (name->getChar(i) < 'A' || name->getChar(i) > 'Z') { + break; + } + } + subset = i > 0 && i < name->getLength() && name->getChar(i) == '+'; + } + + // print the font info + printf("%-36s %-12s %-3s %-3s %-3s %6d %2d\n", + name ? name->getCString() : "[none]", + fontTypeNames[font->getType()], + font->getEmbeddedFontID(&embRef) ? "yes" : "no", + subset ? "yes" : "no", + hasToUnicode ? "yes" : "no", + fontRef.num, fontRef.gen); + if (name) { + delete name; + } + + // add this font to the list + if (fontsLen == fontsSize) { + fontsSize += 32; + fonts = (Ref *)grealloc(fonts, fontsSize * sizeof(Ref)); + } + fonts[fontsLen++] = *font->getID(); +} diff --git a/pdf/xpdf/pdfimages.cc b/pdf/xpdf/pdfimages.cc index cd218ff7..898ad00e 100644 --- a/pdf/xpdf/pdfimages.cc +++ b/pdf/xpdf/pdfimages.cc @@ -2,10 +2,11 @@ // // pdfimages.cc // -// Copyright 1998 Derek B. Noonburg +// Copyright 1998-2002 Glyph & Cog, LLC // //======================================================================== +#include #include #include #include @@ -13,6 +14,7 @@ #include "parseargs.h" #include "GString.h" #include "gmem.h" +#include "GlobalParams.h" #include "Object.h" #include "Stream.h" #include "Array.h" @@ -22,14 +24,16 @@ #include "Page.h" #include "PDFDoc.h" #include "ImageOutputDev.h" -#include "Params.h" #include "Error.h" #include "config.h" static int firstPage = 1; static int lastPage = 0; static GBool dumpJPEG = gFalse; +static char ownerPassword[33] = ""; static char userPassword[33] = ""; +static GBool quiet = gFalse; +static char cfgFileName[256] = ""; static GBool printVersion = gFalse; static GBool printHelp = gFalse; @@ -40,16 +44,24 @@ static ArgDesc argDesc[] = { "last page to convert"}, {"-j", argFlag, &dumpJPEG, 0, "write JPEG images as JPEG files"}, + {"-opw", argString, ownerPassword, sizeof(ownerPassword), + "owner password (for encrypted files)"}, {"-upw", argString, userPassword, sizeof(userPassword), "user password (for encrypted files)"}, - {"-q", argFlag, &errQuiet, 0, + {"-q", argFlag, &quiet, 0, "don't print any messages or errors"}, + {"-cfg", argString, cfgFileName, sizeof(cfgFileName), + "configuration file to use in place of .xpdfrc"}, {"-v", argFlag, &printVersion, 0, "print copyright and version info"}, {"-h", argFlag, &printHelp, 0, "print usage information"}, {"-help", argFlag, &printHelp, 0, "print usage information"}, + {"--help", argFlag, &printHelp, 0, + "print usage information"}, + {"-?", argFlag, &printHelp, 0, + "print usage information"}, {NULL} }; @@ -57,7 +69,7 @@ int main(int argc, char *argv[]) { PDFDoc *doc; GString *fileName; char *imgRoot; - GString *userPW; + GString *ownerPW, *userPW; ImageOutputDev *imgOut; GBool ok; @@ -74,23 +86,30 @@ int main(int argc, char *argv[]) { fileName = new GString(argv[1]); imgRoot = argv[2]; - // init error file - errorInit(); - // read config file - initParams(xpdfConfigFile); + globalParams = new GlobalParams(cfgFileName); + if (quiet) { + globalParams->setErrQuiet(quiet); + } // open PDF file - xref = NULL; + if (ownerPassword[0]) { + ownerPW = new GString(ownerPassword); + } else { + ownerPW = NULL; + } if (userPassword[0]) { userPW = new GString(userPassword); } else { userPW = NULL; } - doc = new PDFDoc(fileName, userPW); + doc = new PDFDoc(fileName, ownerPW, userPW); if (userPW) { delete userPW; } + if (ownerPW) { + delete ownerPW; + } if (!doc->isOk()) { goto err; } @@ -116,7 +135,7 @@ int main(int argc, char *argv[]) { // clean up err: delete doc; - freeParams(); + delete globalParams; // check for memory leaks Object::memCheck(stderr); diff --git a/pdf/xpdf/pdfinfo.cc b/pdf/xpdf/pdfinfo.cc index d45599bd..ea70afe9 100644 --- a/pdf/xpdf/pdfinfo.cc +++ b/pdf/xpdf/pdfinfo.cc @@ -2,17 +2,21 @@ // // pdfinfo.cc // -// Copyright 1998 Derek B. Noonburg +// Copyright 1998-2002 Glyph & Cog, LLC // //======================================================================== +#include #include #include #include #include +#include +#include #include "parseargs.h" #include "GString.h" #include "gmem.h" +#include "GlobalParams.h" #include "Object.h" #include "Stream.h" #include "Array.h" @@ -21,34 +25,56 @@ #include "Catalog.h" #include "Page.h" #include "PDFDoc.h" -#include "Params.h" +#include "CharTypes.h" +#include "UnicodeMap.h" #include "Error.h" #include "config.h" -static void printInfoString(Dict *infoDict, char *key, char *fmt); -static void printInfoDate(Dict *infoDict, char *key, char *fmt); +static void printInfoString(Dict *infoDict, char *key, char *text, + UnicodeMap *uMap); +static void printInfoDate(Dict *infoDict, char *key, char *text); +static GBool printMetadata = gFalse; +static char textEncName[128] = ""; +static char ownerPassword[33] = ""; static char userPassword[33] = ""; +static char cfgFileName[256] = ""; static GBool printVersion = gFalse; static GBool printHelp = gFalse; static ArgDesc argDesc[] = { + {"-meta", argFlag, &printMetadata, 0, + "print the document metadata (XML)"}, + {"-enc", argString, textEncName, sizeof(textEncName), + "output text encoding name"}, + {"-opw", argString, ownerPassword, sizeof(ownerPassword), + "owner password (for encrypted files)"}, {"-upw", argString, userPassword, sizeof(userPassword), "user password (for encrypted files)"}, + {"-cfg", argString, cfgFileName, sizeof(cfgFileName), + "configuration file to use in place of .xpdfrc"}, {"-v", argFlag, &printVersion, 0, "print copyright and version info"}, {"-h", argFlag, &printHelp, 0, "print usage information"}, {"-help", argFlag, &printHelp, 0, "print usage information"}, + {"--help", argFlag, &printHelp, 0, + "print usage information"}, + {"-?", argFlag, &printHelp, 0, + "print usage information"}, {NULL} }; int main(int argc, char *argv[]) { PDFDoc *doc; GString *fileName; - GString *userPW; + GString *ownerPW, *userPW; + UnicodeMap *uMap; Object info; + double w, h; + FILE *f; + GString *metadata; GBool ok; // parse args @@ -63,41 +89,59 @@ int main(int argc, char *argv[]) { } fileName = new GString(argv[1]); - // init error file - errorInit(); - // read config file - initParams(xpdfConfigFile); + globalParams = new GlobalParams(cfgFileName); + if (textEncName[0]) { + globalParams->setTextEncoding(textEncName); + } + + // get mapping to output encoding + if (!(uMap = globalParams->getTextEncoding())) { + error(-1, "Couldn't get text encoding"); + delete fileName; + goto err1; + } // open PDF file - xref = NULL; + if (ownerPassword[0]) { + ownerPW = new GString(ownerPassword); + } else { + ownerPW = NULL; + } if (userPassword[0]) { userPW = new GString(userPassword); } else { userPW = NULL; } - doc = new PDFDoc(fileName, userPW); + doc = new PDFDoc(fileName, ownerPW, userPW); if (userPW) { delete userPW; } + if (ownerPW) { + delete ownerPW; + } if (!doc->isOk()) { - exit(1); + goto err2; } // print doc info doc->getDocInfo(&info); if (info.isDict()) { - printInfoString(info.getDict(), "Title", "Title: %s\n"); - printInfoString(info.getDict(), "Subject", "Subject: %s\n"); - printInfoString(info.getDict(), "Keywords", "Keywords: %s\n"); - printInfoString(info.getDict(), "Author", "Author: %s\n"); - printInfoString(info.getDict(), "Creator", "Creator: %s\n"); - printInfoString(info.getDict(), "Producer", "Producer: %s\n"); - printInfoDate(info.getDict(), "CreationDate", "CreationDate: %s\n"); - printInfoDate(info.getDict(), "ModDate", "ModDate: %s\n"); + printInfoString(info.getDict(), "Title", "Title: ", uMap); + printInfoString(info.getDict(), "Subject", "Subject: ", uMap); + printInfoString(info.getDict(), "Keywords", "Keywords: ", uMap); + printInfoString(info.getDict(), "Author", "Author: ", uMap); + printInfoString(info.getDict(), "Creator", "Creator: ", uMap); + printInfoString(info.getDict(), "Producer", "Producer: ", uMap); + printInfoDate(info.getDict(), "CreationDate", "CreationDate: "); + printInfoDate(info.getDict(), "ModDate", "ModDate: "); } info.free(); + // print tagging info + printf("Tagged: %s\n", + doc->getStructTreeRoot()->isDict() ? "yes" : "no"); + // print page count printf("Pages: %d\n", doc->getNumPages()); @@ -105,20 +149,66 @@ int main(int argc, char *argv[]) { printf("Encrypted: "); if (doc->isEncrypted()) { printf("yes (print:%s copy:%s change:%s addNotes:%s)\n", - doc->okToPrint() ? "yes" : "no", - doc->okToCopy() ? "yes" : "no", - doc->okToChange() ? "yes" : "no", - doc->okToAddNotes() ? "yes" : "no"); + doc->okToPrint(gTrue) ? "yes" : "no", + doc->okToCopy(gTrue) ? "yes" : "no", + doc->okToChange(gTrue) ? "yes" : "no", + doc->okToAddNotes(gTrue) ? "yes" : "no"); } else { printf("no\n"); } + // print page size + if (doc->getNumPages() >= 1) { + w = doc->getPageWidth(1); + h = doc->getPageHeight(1); + printf("Page size: %g x %g pts", w, h); + if ((fabs(w - 612) < 0.1 && fabs(h - 792) < 0.1) || + (fabs(w - 792) < 0.1 && fabs(h - 612) < 0.1)) { + printf(" (letter)"); + } else if ((fabs(w - 595) < 0.1 && fabs(h - 842) < 0.1) || + (fabs(w - 842) < 0.1 && fabs(h - 595) < 0.1)) { + printf(" (A4)"); + } + printf("\n"); + } + + // print file size +#ifdef VMS + f = fopen(fileName->getCString(), "rb", "ctx=stm"); +#else + f = fopen(fileName->getCString(), "rb"); +#endif + if (f) { +#if HAVE_FSEEK64 + fseek64(f, 0, SEEK_END); + printf("File size: %u bytes\n", (Guint)ftell64(f)); +#else + fseek(f, 0, SEEK_END); + printf("File size: %d bytes\n", (int)ftell(f)); +#endif + fclose(f); + } + // print linearization info - printf("Linearized: %s\n", doc->isLinearized() ? "yes" : "no"); + printf("Optimized: %s\n", doc->isLinearized() ? "yes" : "no"); + + // print PDF version + printf("PDF version: %.1f\n", doc->getPDFVersion()); + + // print the metadata + if (printMetadata && (metadata = doc->readMetadata())) { + fputs("Metadata:\n", stdout); + fputs(metadata->getCString(), stdout); + fputc('\n', stdout); + delete metadata; + } // clean up + err2: + uMap->decRefCnt(); delete doc; - freeParams(); + err1: + delete globalParams; // check for memory leaks Object::memCheck(stderr); @@ -127,44 +217,77 @@ int main(int argc, char *argv[]) { return 0; } -static void printInfoString(Dict *infoDict, char *key, char *fmt) { +static void printInfoString(Dict *infoDict, char *key, char *text, + UnicodeMap *uMap) { Object obj; - GString *s1, *s2; - int i; + GString *s1; + GBool isUnicode; + Unicode u; + char buf[8]; + int i, n; if (infoDict->lookup(key, &obj)->isString()) { + fputs(text, stdout); s1 = obj.getString(); if ((s1->getChar(0) & 0xff) == 0xfe && (s1->getChar(1) & 0xff) == 0xff) { - s2 = new GString(); - for (i = 2; i < obj.getString()->getLength(); i += 2) { - if (s1->getChar(i) == '\0') { - s2->append(s1->getChar(i+1)); - } else { - delete s2; - s2 = new GString(""); - break; - } - } - printf(fmt, s2->getCString()); - delete s2; + isUnicode = gTrue; + i = 2; } else { - printf(fmt, s1->getCString()); + isUnicode = gFalse; + i = 0; + } + while (i < obj.getString()->getLength()) { + if (isUnicode) { + u = ((s1->getChar(i) & 0xff) << 8) | + (s1->getChar(i+1) & 0xff); + i += 2; + } else { + u = s1->getChar(i) & 0xff; + ++i; + } + n = uMap->mapUnicode(u, buf, sizeof(buf)); + fwrite(buf, 1, n, stdout); } + fputc('\n', stdout); } obj.free(); } -static void printInfoDate(Dict *infoDict, char *key, char *fmt) { +static void printInfoDate(Dict *infoDict, char *key, char *text) { Object obj; char *s; + int year, mon, day, hour, min, sec; + struct tm tmStruct; + char buf[256]; if (infoDict->lookup(key, &obj)->isString()) { + fputs(text, stdout); s = obj.getString()->getCString(); if (s[0] == 'D' && s[1] == ':') { s += 2; } - printf(fmt, s); + if (sscanf(s, "%4d%2d%2d%2d%2d%2d", + &year, &mon, &day, &hour, &min, &sec) == 6) { + tmStruct.tm_year = year - 1900; + tmStruct.tm_mon = mon - 1; + tmStruct.tm_mday = day; + tmStruct.tm_hour = hour; + tmStruct.tm_min = min; + tmStruct.tm_sec = sec; + tmStruct.tm_wday = -1; + tmStruct.tm_yday = -1; + tmStruct.tm_isdst = -1; + mktime(&tmStruct); // compute the tm_wday and tm_yday fields + if (strftime(buf, sizeof(buf), "%c", &tmStruct)) { + fputs(buf, stdout); + } else { + fputs(s, stdout); + } + } else { + fputs(s, stdout); + } + fputc('\n', stdout); } obj.free(); } diff --git a/pdf/xpdf/pdftopbm.cc b/pdf/xpdf/pdftopbm.cc index 549b57b4..460377ff 100644 --- a/pdf/xpdf/pdftopbm.cc +++ b/pdf/xpdf/pdftopbm.cc @@ -2,10 +2,11 @@ // // pdftopbm.cc // -// Copyright 1998 Derek B. Noonburg +// Copyright 1998-2002 Glyph & Cog, LLC // //======================================================================== +#include #include #include #include @@ -13,6 +14,7 @@ #include "parseargs.h" #include "GString.h" #include "gmem.h" +#include "GlobalParams.h" #include "Object.h" #include "Stream.h" #include "Array.h" @@ -22,14 +24,16 @@ #include "Page.h" #include "PDFDoc.h" #include "PBMOutputDev.h" -#include "Params.h" #include "Error.h" #include "config.h" static int firstPage = 1; static int lastPage = 0; static int resolution = 150; +static char ownerPassword[33] = ""; static char userPassword[33] = ""; +static GBool quiet = gFalse; +static char cfgFileName[256] = ""; static GBool printVersion = gFalse; static GBool printHelp = gFalse; @@ -40,16 +44,24 @@ static ArgDesc argDesc[] = { "last page to print"}, {"-r", argInt, &resolution, 0, "resolution, in DPI (default is 150)"}, + {"-opw", argString, ownerPassword, sizeof(ownerPassword), + "owner password (for encrypted files)"}, {"-upw", argString, userPassword, sizeof(userPassword), "user password (for encrypted files)"}, - {"-q", argFlag, &errQuiet, 0, + {"-q", argFlag, &quiet, 0, "don't print any messages or errors"}, + {"-cfg", argString, cfgFileName, sizeof(cfgFileName), + "configuration file to use in place of .xpdfrc"}, {"-v", argFlag, &printVersion, 0, "print copyright and version info"}, {"-h", argFlag, &printHelp, 0, "print usage information"}, {"-help", argFlag, &printHelp, 0, "print usage information"}, + {"--help", argFlag, &printHelp, 0, + "print usage information"}, + {"-?", argFlag, &printHelp, 0, + "print usage information"}, {NULL} }; @@ -57,7 +69,7 @@ int main(int argc, char *argv[]) { PDFDoc *doc; GString *fileName; char *pbmRoot; - GString *userPW; + GString *ownerPW, *userPW; PBMOutputDev *pbmOut; GBool ok; @@ -74,23 +86,30 @@ int main(int argc, char *argv[]) { fileName = new GString(argv[1]); pbmRoot = argv[2]; - // init error file - errorInit(); - // read config file - initParams(xpdfConfigFile); + globalParams = new GlobalParams(cfgFileName); + if (quiet) { + globalParams->setErrQuiet(quiet); + } // open PDF file - xref = NULL; + if (ownerPassword[0]) { + ownerPW = new GString(ownerPassword); + } else { + ownerPW = NULL; + } if (userPassword[0]) { userPW = new GString(userPassword); } else { userPW = NULL; } - doc = new PDFDoc(fileName, userPW); + doc = new PDFDoc(fileName, ownerPW, userPW); if (userPW) { delete userPW; } + if (ownerPW) { + delete ownerPW; + } if (!doc->isOk()) { goto err; } @@ -102,15 +121,15 @@ int main(int argc, char *argv[]) { lastPage = doc->getNumPages(); // write PBM files - rgbCubeSize = 1; pbmOut = PBMOutputDev::makePBMOutputDev(NULL, pbmRoot); + pbmOut->startDoc(doc->getXRef()); doc->displayPages(pbmOut, firstPage, lastPage, resolution, 0, gFalse); PBMOutputDev::killPBMOutputDev(pbmOut); // clean up err: delete doc; - freeParams(); + delete globalParams; // check for memory leaks Object::memCheck(stderr); diff --git a/pdf/xpdf/pdftops.cc b/pdf/xpdf/pdftops.cc index e3e495d9..7f60be02 100644 --- a/pdf/xpdf/pdftops.cc +++ b/pdf/xpdf/pdftops.cc @@ -2,10 +2,11 @@ // // pdftops.cc // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== +#include #include #include #include @@ -13,6 +14,7 @@ #include "parseargs.h" #include "GString.h" #include "gmem.h" +#include "GlobalParams.h" #include "Object.h" #include "Stream.h" #include "Array.h" @@ -22,15 +24,34 @@ #include "Page.h" #include "PDFDoc.h" #include "PSOutputDev.h" -#include "Params.h" #include "Error.h" #include "config.h" static int firstPage = 1; static int lastPage = 0; -static GBool noEmbedFonts = gFalse; +static GBool level1 = gFalse; +static GBool level1Sep = gFalse; +static GBool level2 = gFalse; +static GBool level2Sep = gFalse; +static GBool level3 = gFalse; +static GBool level3Sep = gFalse; +static GBool doEPS = gFalse; static GBool doForm = gFalse; +#if OPI_SUPPORT +static GBool doOPI = gFalse; +#endif +static GBool noEmbedT1Fonts = gFalse; +static GBool noEmbedTTFonts = gFalse; +static GBool noEmbedCIDPSFonts = gFalse; +static GBool noEmbedCIDTTFonts = gFalse; +static char paperSize[15] = ""; +static int paperWidth = 0; +static int paperHeight = 0; +static GBool duplex = gFalse; +static char ownerPassword[33] = ""; static char userPassword[33] = ""; +static GBool quiet = gFalse; +static char cfgFileName[256] = ""; static GBool printVersion = gFalse; static GBool printHelp = gFalse; @@ -39,34 +60,60 @@ static ArgDesc argDesc[] = { "first page to print"}, {"-l", argInt, &lastPage, 0, "last page to print"}, - {"-paperw", argInt, &paperWidth, 0, - "paper width, in points"}, - {"-paperh", argInt, &paperHeight, 0, - "paper height, in points"}, - {"-level1", argFlag, &psOutLevel1, 0, + {"-level1", argFlag, &level1, 0, "generate Level 1 PostScript"}, - {"-level1sep", argFlag, &psOutLevel1Sep, 0, + {"-level1sep", argFlag, &level1Sep, 0, "generate Level 1 separable PostScript"}, - {"-eps", argFlag, &psOutEPS, 0, + {"-level2", argFlag, &level2, 0, + "generate Level 2 PostScript"}, + {"-level2sep", argFlag, &level2Sep, 0, + "generate Level 2 separable PostScript"}, + {"-level3", argFlag, &level3, 0, + "generate Level 3 PostScript"}, + {"-level3sep", argFlag, &level3Sep, 0, + "generate Level 3 separable PostScript"}, + {"-eps", argFlag, &doEPS, 0, "generate Encapsulated PostScript (EPS)"}, + {"-form", argFlag, &doForm, 0, + "generate a PostScript form"}, #if OPI_SUPPORT - {"-opi", argFlag, &psOutOPI, 0, + {"-opi", argFlag, &doOPI, 0, "generate OPI comments"}, #endif - {"-noemb", argFlag, &noEmbedFonts, 0, + {"-noembt1", argFlag, &noEmbedT1Fonts, 0, "don't embed Type 1 fonts"}, - {"-form", argFlag, &doForm, 0, - "generate a PostScript form"}, + {"-noembtt", argFlag, &noEmbedTTFonts, 0, + "don't embed TrueType fonts"}, + {"-noembcidps", argFlag, &noEmbedCIDPSFonts, 0, + "don't embed CID PostScript fonts"}, + {"-noembcidtt", argFlag, &noEmbedCIDTTFonts, 0, + "don't embed CID TrueType fonts"}, + {"-paper", argString, paperSize, sizeof(paperSize), + "paper size (letter, legal, A4, A3)"}, + {"-paperw", argInt, &paperWidth, 0, + "paper width, in points"}, + {"-paperh", argInt, &paperHeight, 0, + "paper height, in points"}, + {"-duplex", argFlag, &duplex, 0, + "enable duplex printing"}, + {"-opw", argString, ownerPassword, sizeof(ownerPassword), + "owner password (for encrypted files)"}, {"-upw", argString, userPassword, sizeof(userPassword), "user password (for encrypted files)"}, - {"-q", argFlag, &errQuiet, 0, + {"-q", argFlag, &quiet, 0, "don't print any messages or errors"}, + {"-cfg", argString, cfgFileName, sizeof(cfgFileName), + "configuration file to use in place of .xpdfrc"}, {"-v", argFlag, &printVersion, 0, "print copyright and version info"}, {"-h", argFlag, &printHelp, 0, "print usage information"}, {"-help", argFlag, &printHelp, 0, "print usage information"}, + {"--help", argFlag, &printHelp, 0, + "print usage information"}, + {"-?", argFlag, &printHelp, 0, + "print usage information"}, {NULL} }; @@ -74,7 +121,9 @@ int main(int argc, char *argv[]) { PDFDoc *doc; GString *fileName; GString *psFileName; - GString *userPW; + PSLevel level; + PSOutMode mode; + GString *ownerPW, *userPW; PSOutputDev *psOut; GBool ok; char *p; @@ -89,33 +138,101 @@ int main(int argc, char *argv[]) { } exit(1); } - if (psOutLevel1 && psOutLevel1Sep) { - fprintf(stderr, "Error: use -level1 or -level1sep, not both.\n"); + if ((level1 ? 1 : 0) + + (level1Sep ? 1 : 0) + + (level2 ? 1 : 0) + + (level2Sep ? 1 : 0) + + (level3 ? 1 : 0) + + (level3Sep ? 1 : 0) > 1) { + fprintf(stderr, "Error: use only one of the 'level' options.\n"); exit(1); } - if (doForm && (psOutLevel1 || psOutLevel1Sep)) { + if (doEPS && doForm) { + fprintf(stderr, "Error: use only one of -eps and -form\n"); + exit(1); + } + if (level1) { + level = psLevel1; + } else if (level1Sep) { + level = psLevel1Sep; + } else if (level2Sep) { + level = psLevel2Sep; + } else if (level3) { + level = psLevel3; + } else if (level3Sep) { + level = psLevel3Sep; + } else { + level = psLevel2; + } + if (doForm && level < psLevel2) { fprintf(stderr, "Error: forms are only available with Level 2 output.\n"); exit(1); } + mode = doEPS ? psModeEPS + : doForm ? psModeForm + : psModePS; fileName = new GString(argv[1]); - // init error file - errorInit(); - // read config file - initParams(xpdfConfigFile); + globalParams = new GlobalParams(cfgFileName); + if (paperSize[0]) { + if (!globalParams->setPSPaperSize(paperSize)) { + fprintf(stderr, "Invalid paper size\n"); + exit(1); + } + } else { + if (paperWidth) { + globalParams->setPSPaperWidth(paperWidth); + } + if (paperHeight) { + globalParams->setPSPaperHeight(paperHeight); + } + } + if (duplex) { + globalParams->setPSDuplex(duplex); + } + if (level1 || level1Sep || level2 || level2Sep || level3 || level3Sep) { + globalParams->setPSLevel(level); + } + if (noEmbedT1Fonts) { + globalParams->setPSEmbedType1(!noEmbedT1Fonts); + } + if (noEmbedTTFonts) { + globalParams->setPSEmbedTrueType(!noEmbedTTFonts); + } + if (noEmbedCIDPSFonts) { + globalParams->setPSEmbedCIDPostScript(!noEmbedCIDPSFonts); + } + if (noEmbedCIDTTFonts) { + globalParams->setPSEmbedCIDTrueType(!noEmbedCIDTTFonts); + } +#if OPI_SUPPORT + if (doOPI) { + globalParams->setPSOPI(doOPI); + } +#endif + if (quiet) { + globalParams->setErrQuiet(quiet); + } // open PDF file - xref = NULL; + if (ownerPassword[0]) { + ownerPW = new GString(ownerPassword); + } else { + ownerPW = NULL; + } if (userPassword[0]) { userPW = new GString(userPassword); } else { userPW = NULL; } - doc = new PDFDoc(fileName, userPW); + doc = new PDFDoc(fileName, ownerPW, userPW); if (userPW) { delete userPW; } + if (ownerPW) { + delete ownerPW; + } if (!doc->isOk()) { goto err1; } @@ -131,33 +248,35 @@ int main(int argc, char *argv[]) { psFileName = new GString(argv[2]); } else { p = fileName->getCString() + fileName->getLength() - 4; - if (!strcmp(p, ".pdf") || !strcmp(p, ".PDF")) + if (!strcmp(p, ".pdf") || !strcmp(p, ".PDF")) { psFileName = new GString(fileName->getCString(), fileName->getLength() - 4); - else + } else { psFileName = fileName->copy(); - psFileName->append(psOutEPS ? ".eps" : ".ps"); + } + psFileName->append(doEPS ? ".eps" : ".ps"); } // get page range - if (firstPage < 1) + if (firstPage < 1) { firstPage = 1; - if (lastPage < 1 || lastPage > doc->getNumPages()) + } + if (lastPage < 1 || lastPage > doc->getNumPages()) { lastPage = doc->getNumPages(); - if (doForm) - lastPage = firstPage; + } - // check for multi-page EPS - if (psOutEPS && firstPage != lastPage) { - error(-1, "EPS files can only contain one page."); + // check for multi-page EPS or form + if ((doEPS || doForm) && firstPage != lastPage) { + error(-1, "EPS and form files can only contain one page."); goto err2; } // write PostScript file - psOut = new PSOutputDev(psFileName->getCString(), doc->getCatalog(), - firstPage, lastPage, !noEmbedFonts, doForm); - if (psOut->isOk()) + psOut = new PSOutputDev(psFileName->getCString(), doc->getXRef(), + doc->getCatalog(), firstPage, lastPage, mode); + if (psOut->isOk()) { doc->displayPages(psOut, firstPage, lastPage, 72, 0, gFalse); + } delete psOut; // clean up @@ -165,7 +284,7 @@ int main(int argc, char *argv[]) { delete psFileName; err1: delete doc; - freeParams(); + delete globalParams; // check for memory leaks Object::memCheck(stderr); diff --git a/pdf/xpdf/pdftotext.cc b/pdf/xpdf/pdftotext.cc index 2d293b46..f4b39ce9 100644 --- a/pdf/xpdf/pdftotext.cc +++ b/pdf/xpdf/pdftotext.cc @@ -2,10 +2,11 @@ // // pdftotext.cc // -// Copyright 1997 Derek B. Noonburg +// Copyright 1997-2002 Glyph & Cog, LLC // //======================================================================== +#include #include #include #include @@ -13,6 +14,7 @@ #include "parseargs.h" #include "GString.h" #include "gmem.h" +#include "GlobalParams.h" #include "Object.h" #include "Stream.h" #include "Array.h" @@ -22,20 +24,25 @@ #include "Page.h" #include "PDFDoc.h" #include "TextOutputDev.h" -#include "Params.h" +#include "CharTypes.h" +#include "UnicodeMap.h" #include "Error.h" #include "config.h" +static void printInfoString(FILE *f, Dict *infoDict, char *key, + char *text1, char *text2, UnicodeMap *uMap); +static void printInfoDate(FILE *f, Dict *infoDict, char *key, char *fmt); + static int firstPage = 1; static int lastPage = 0; -static GBool useASCII7 = gFalse; -static GBool useLatin2 = gFalse; -static GBool useLatin5 = gFalse; -#if JAPANESE_SUPPORT -static GBool useEUCJP = gFalse; -#endif static GBool rawOrder = gFalse; +static GBool htmlMeta = gFalse; +static char textEncName[128] = ""; +static char textEOL[16] = ""; +static char ownerPassword[33] = ""; static char userPassword[33] = ""; +static GBool quiet = gFalse; +static char cfgFileName[256] = ""; static GBool printVersion = gFalse; static GBool printHelp = gFalse; @@ -44,28 +51,32 @@ static ArgDesc argDesc[] = { "first page to convert"}, {"-l", argInt, &lastPage, 0, "last page to convert"}, - {"-ascii7", argFlag, &useASCII7, 0, - "convert to 7-bit ASCII (default is 8-bit ISO Latin-1)"}, - {"-latin2", argFlag, &useLatin2, 0, - "convert to ISO Latin-2 character set"}, - {"-latin5", argFlag, &useLatin5, 0, - "convert to ISO Latin-5 character set"}, -#if JAPANESE_SUPPORT - {"-eucjp", argFlag, &useEUCJP, 0, - "convert Japanese text to EUC-JP"}, -#endif {"-raw", argFlag, &rawOrder, 0, "keep strings in content stream order"}, + {"-htmlmeta", argFlag, &htmlMeta, 0, + "generate a simple HTML file, including the meta information"}, + {"-enc", argString, textEncName, sizeof(textEncName), + "output text encoding name"}, + {"-eol", argString, textEOL, sizeof(textEOL), + "output end-of-line convention (unix, dos, or mac)"}, + {"-opw", argString, ownerPassword, sizeof(ownerPassword), + "owner password (for encrypted files)"}, {"-upw", argString, userPassword, sizeof(userPassword), "user password (for encrypted files)"}, - {"-q", argFlag, &errQuiet, 0, + {"-q", argFlag, &quiet, 0, "don't print any messages or errors"}, + {"-cfg", argString, cfgFileName, sizeof(cfgFileName), + "configuration file to use in place of .xpdfrc"}, {"-v", argFlag, &printVersion, 0, "print copyright and version info"}, {"-h", argFlag, &printHelp, 0, "print usage information"}, {"-help", argFlag, &printHelp, 0, "print usage information"}, + {"--help", argFlag, &printHelp, 0, + "print usage information"}, + {"-?", argFlag, &printHelp, 0, + "print usage information"}, {NULL} }; @@ -73,9 +84,11 @@ int main(int argc, char *argv[]) { PDFDoc *doc; GString *fileName; GString *textFileName; - GString *userPW; + GString *ownerPW, *userPW; TextOutputDev *textOut; - TextOutputCharSet charSet; + FILE *f; + UnicodeMap *uMap; + Object info; GBool ok; char *p; @@ -91,31 +104,53 @@ int main(int argc, char *argv[]) { } fileName = new GString(argv[1]); - // init error file - errorInit(); - // read config file - initParams(xpdfConfigFile); + globalParams = new GlobalParams(cfgFileName); + if (textEncName[0]) { + globalParams->setTextEncoding(textEncName); + } + if (textEOL[0]) { + if (!globalParams->setTextEOL(textEOL)) { + fprintf(stderr, "Bad '-eol' value on command line\n"); + } + } + if (quiet) { + globalParams->setErrQuiet(quiet); + } + + // get mapping to output encoding + if (!(uMap = globalParams->getTextEncoding())) { + error(-1, "Couldn't get text encoding"); + delete fileName; + goto err1; + } // open PDF file - xref = NULL; + if (ownerPassword[0]) { + ownerPW = new GString(ownerPassword); + } else { + ownerPW = NULL; + } if (userPassword[0]) { userPW = new GString(userPassword); } else { userPW = NULL; } - doc = new PDFDoc(fileName, userPW); + doc = new PDFDoc(fileName, ownerPW, userPW); if (userPW) { delete userPW; } + if (ownerPW) { + delete ownerPW; + } if (!doc->isOk()) { - goto err; + goto err2; } // check for copy permission if (!doc->okToCopy()) { error(-1, "Copying of text from this document is not allowed."); - goto err; + goto err2; } // construct text file name @@ -129,7 +164,7 @@ int main(int argc, char *argv[]) { } else { textFileName = fileName->copy(); } - textFileName->append(".txt"); + textFileName->append(htmlMeta ? ".html" : ".txt"); } // get page range @@ -140,29 +175,79 @@ int main(int argc, char *argv[]) { lastPage = doc->getNumPages(); } + // write HTML header + if (htmlMeta) { + if (!textFileName->cmp("-")) { + f = stdout; + } else { + if (!(f = fopen(textFileName->getCString(), "wb"))) { + error(-1, "Couldn't open text file '%s'", textFileName->getCString()); + goto err3; + } + } + fputs("\n", f); + fputs("\n", f); + doc->getDocInfo(&info); + if (info.isDict()) { + printInfoString(f, info.getDict(), "Title", "", "\n", + uMap); + printInfoString(f, info.getDict(), "Subject", + "\n", uMap); + printInfoString(f, info.getDict(), "Keywords", + "\n", uMap); + printInfoString(f, info.getDict(), "Author", + "\n", uMap); + printInfoString(f, info.getDict(), "Creator", + "\n", uMap); + printInfoString(f, info.getDict(), "Producer", + "\n", uMap); + printInfoDate(f, info.getDict(), "CreationDate", + "\n"); + printInfoDate(f, info.getDict(), "LastModifiedDate", + "\n"); + } + info.free(); + fputs("\n", f); + fputs("\n", f); + fputs("
\n", f);
+    if (f != stdout) {
+      fclose(f);
+    }
+  }
+
   // write text file
-#if JAPANESE_SUPPORT
-  useASCII7 |= useEUCJP;
-#endif
-  charSet = textOutLatin1;
-  if (useASCII7) {
-    charSet = textOutASCII7;
-  } else if (useLatin2) {
-    charSet = textOutLatin2;
-  } else if (useLatin5) {
-    charSet = textOutLatin5;
-  }
-  textOut = new TextOutputDev(textFileName->getCString(), charSet, rawOrder);
+  textOut = new TextOutputDev(textFileName->getCString(), rawOrder, htmlMeta);
   if (textOut->isOk()) {
     doc->displayPages(textOut, firstPage, lastPage, 72, 0, gFalse);
   }
   delete textOut;
 
+  // write end of HTML file
+  if (htmlMeta) {
+    if (!textFileName->cmp("-")) {
+      f = stdout;
+    } else {
+      if (!(f = fopen(textFileName->getCString(), "ab"))) {
+	error(-1, "Couldn't open text file '%s'", textFileName->getCString());
+	goto err3;
+      }
+    }
+    fputs("
\n", f); + fputs("\n", f); + fputs("\n", f); + if (f != stdout) { + fclose(f); + } + } + // clean up + err3: delete textFileName; - err: + err2: delete doc; - freeParams(); + uMap->decRefCnt(); + err1: + delete globalParams; // check for memory leaks Object::memCheck(stderr); @@ -170,3 +255,54 @@ int main(int argc, char *argv[]) { return 0; } + +static void printInfoString(FILE *f, Dict *infoDict, char *key, + char *text1, char *text2, UnicodeMap *uMap) { + Object obj; + GString *s1; + GBool isUnicode; + Unicode u; + char buf[8]; + int i, n; + + if (infoDict->lookup(key, &obj)->isString()) { + fputs(text1, f); + s1 = obj.getString(); + if ((s1->getChar(0) & 0xff) == 0xfe && + (s1->getChar(1) & 0xff) == 0xff) { + isUnicode = gTrue; + i = 2; + } else { + isUnicode = gFalse; + i = 0; + } + while (i < obj.getString()->getLength()) { + if (isUnicode) { + u = ((s1->getChar(i) & 0xff) << 8) | + (s1->getChar(i+1) & 0xff); + i += 2; + } else { + u = s1->getChar(i) & 0xff; + ++i; + } + n = uMap->mapUnicode(u, buf, sizeof(buf)); + fwrite(buf, 1, n, f); + } + fputs(text2, f); + } + obj.free(); +} + +static void printInfoDate(FILE *f, Dict *infoDict, char *key, char *fmt) { + Object obj; + char *s; + + if (infoDict->lookup(key, &obj)->isString()) { + s = obj.getString()->getCString(); + if (s[0] == 'D' && s[1] == ':') { + s += 2; + } + fprintf(f, fmt, s); + } + obj.free(); +} diff --git a/pdf/xpdf/vms_make.com b/pdf/xpdf/vms_make.com index 3046fa6b..c46f50f1 100644 --- a/pdf/xpdf/vms_make.com +++ b/pdf/xpdf/vms_make.com @@ -4,45 +4,53 @@ $! Xpdf compile script for VMS. $! $! Written by Patrick Moreau, Martin P.J. Zinser. $! -$! Copyright 1996 Derek B. Noonburg +$! Copyright 1996-2002 Glyph & Cog, LLC $! $!======================================================================== $! $ i = 0 $ j = 0 -$ APPS = "XPDF,PDFTOPS,PDFTOTEXT,PDFINFO,PDFTOPBM,PDFIMAGES" +$ APPS = "XPDF,PDFTOPS,PDFTOTEXT,PDFINFO,PDFTOPBM,PDFIMAGES,PDFFONTS" $ if f$search("COMMON.OLB").eqs."" then lib/create common.olb $! -$ COMMON_OBJS = "Array.obj,Catalog.obj,Decrypt.obj,Dict.obj,Error.obj," + - - "FontEncoding.obj,FontFile.obj,FormWidget.obj,Gfx.obj," + - - "GfxFont.obj,GfxState.obj,Lexer.obj,Link.obj,Object.obj," + - - "OutputDev.obj,Page.obj,Params.obj,Parser.obj,PDFdoc.obj," + - - "Stream.obj,XRef.obj" +$ COMMON_OBJS = "Annot.obj,Array.obj,BuiltinFont.obj," + - + "BuiltinFontTables.obj,Catalog.obj,CharCodeToUnicode.obj," + - + "CMap.obj,Decrypt.obj,Dict.obj,Error.obj," + - + "FontEncodingTables.obj,FontFile.obj," + - + "Function.obj,Gfx.obj,GfxFont.obj,GfxState.obj,"+ - + "GlobalParams.obj,Lexer.obj," + - + "Link.obj,NameToCharCode.obj,Object.obj,OutputDev.obj," + - + "Page.obj,Parser.obj,PDFdoc.obj,PSTokenizer.obj," + - + "Stream.obj,UnicodeMap.obj,XRef.obj" $ COMMON_LIBS = "[]common.olb/lib,[-.goo]libgoo.olb/lib" $! -$ XPDF_OBJS = "xpdf.obj,LTKOutputDev.obj,PSOutputDev.obj,SFont.obj," + - - "T1Font.obj,TextOutputDev.obj,TTFont.obj,XOutputDev.obj" +$ XPDF_OBJS = "xpdf.obj,FTFont.obj,LTKOutputDev.obj,PSOutputDev.obj," + - + "SFont.obj,T1Font.obj,TextOutputDev.obj,TTFont.obj," + - + "XOutputDev.obj" $ XPDF_LIBS = "[-.ltk]libltk.olb/lib" $! -$ PDFTOPS_OBJS = "pdftops.obj,PSOutputDev.obj" -$ PDFTOPS_LIBS = "" +$ PDFTOPS_OBJS = "pdftops.obj,PSOutputDev.obj" +$ PDFTOPS_LIBS = "" $! $ PDFTOTEXT_OBJS = "pdftotext.obj,TextOutputDev.obj" $ PDFTOTEXT_LIBS = "" $! -$ PDFINFO_OBJS = "pdfinfo.obj" -$ PDFINFO_LIBS = "" +$ PDFINFO_OBJS = "pdfinfo.obj" +$ PDFINFO_LIBS = "" $! -$ PDFTOPBM_OBJS = "pdftopbm.obj,PBMOutputDev.obj,SFont.obj,T1Font.obj," + - - "TextOutputDev.obj,TTFont.obj,XOutputDev.obj" -$ PDFTOPBM_LIBS = "" +$ PDFTOPBM_OBJS = "pdftopbm.obj,FTFont.obj,PBMOutputDev.obj,SFont.obj," + - + "T1Font.obj,TextOutputDev.obj,TTFont.obj,XOutputDev.obj" +$ PDFTOPBM_LIBS = "" $! $ PDFIMAGES_OBJS = "pdfimages.obj,ImageOutputDev.obj" $ PDFIMAGES_LIBS = "" $! +$ PDFFONTS_OBJS = "pdffonts.obj" +$ PDFFONTS_LIBS = "" $! Build xpdf-ltk.h -$ def/user sys$input xpdf.ltk -$ def/user sys$output xpdf-ltk.h +$ close sys$input +$ define/user sys$input xpdf.ltk +$ define/user sys$output xpdf-ltk.h $ run [-.ltk]ltkbuild $! $COMPILE_CXX_LOOP: @@ -77,6 +85,7 @@ $ else $ LIBS = COMMON_LIBS $ endif $ OBJS = 'curr_app'_OBJS +$ write sys$output "Linking ''curr_app'..." $ xpdf_link/exe='curr_app'.exe 'OBJS','libs',[-]xpdf.opt/opt $! $ goto BUILD_APPS diff --git a/pdf/xpdf/xpdf-flip.ltk b/pdf/xpdf/xpdf-flip.ltk index 97c7cc6d..4a249f89 100644 --- a/pdf/xpdf/xpdf-flip.ltk +++ b/pdf/xpdf/xpdf-flip.ltk @@ -2,7 +2,7 @@ # # xpdf-flip.ltk # -# Copyright 1997 Derek B. Noonburg +# Copyright 1997-2002 Glyph & Cog, LLC # #======================================================================== @@ -100,9 +100,9 @@ Menu(func:makeMenu title:"xpdf" n:9) { MenuItem(text:"Find" shortcut:"F" num:menuFind select:&menuCbk) MenuItem(text:NULL) - MenuItem(text:"Rotate left" num:menuRotateLeft + MenuItem(text:"Rotate counterclockwise" num:menuRotateCCW select:&menuCbk) - MenuItem(text:"Rotate right" num:menuRotateRight + MenuItem(text:"Rotate clockwise" num:menuRotateCW select:&menuCbk) MenuItem(text:NULL) MenuItem(text:"Quit" shortcut:"Q" num:menuQuit diff --git a/pdf/xpdf/xpdf-ltk.h b/pdf/xpdf/xpdf-ltk.h index 01eacdaf..5665ee7a 100644 --- a/pdf/xpdf/xpdf-ltk.h +++ b/pdf/xpdf/xpdf-ltk.h @@ -1,4 +1,4 @@ -// This file was generated by ltkbuild 0.92 +// This file was generated by ltkbuild 1.01 LTKWindow *makeWindow(LTKApp *a) { return new LTKWindow(a, gFalse, "xpdf", xpdfIcon, NULL, @@ -82,8 +82,8 @@ LTKMenu *makeMenu() { new LTKMenuItem("Reload", "R", menuReload, &menuCbk, NULL), new LTKMenuItem("Save as...", NULL, menuSavePDF, &menuCbk, NULL), new LTKMenuItem(NULL, NULL, 0, NULL, NULL), - new LTKMenuItem("Rotate left", NULL, menuRotateLeft, &menuCbk, NULL), - new LTKMenuItem("Rotate right", NULL, menuRotateRight, &menuCbk, NULL), + new LTKMenuItem("Rotate counterclockwise", NULL, menuRotateCCW, &menuCbk, NULL), + new LTKMenuItem("Rotate clockwise", NULL, menuRotateCW, &menuCbk, NULL), new LTKMenuItem(NULL, NULL, 0, NULL, NULL), new LTKMenuItem("Quit", "Q", menuQuit, &menuCbk, NULL) @@ -104,8 +104,8 @@ LTKMenu *makeZoomMenu() { new LTKMenuItem("+4", NULL, 4, &zoomMenuCbk, NULL), new LTKMenuItem("+5", NULL, 5, &zoomMenuCbk, NULL), new LTKMenuItem(NULL, NULL, 0, NULL, NULL), - new LTKMenuItem("fit page", NULL, 100, &zoomMenuCbk, NULL), - new LTKMenuItem("fit width", NULL, 101, &zoomMenuCbk, NULL) + new LTKMenuItem("fit page", "z", 100, &zoomMenuCbk, NULL), + new LTKMenuItem("fit width", "w", 101, &zoomMenuCbk, NULL) ); } @@ -223,40 +223,19 @@ LTKWindow *makeFindWindow(LTKApp *a) { LTKWindow *makeAboutWindow(LTKApp *a) { return new LTKWindow(a, gFalse, "About xpdf", NULL, "close", - new LTKBox(NULL, 1, 2, 0, 0, 0, 0, ltkBorderNone, 0, 0, - new LTKBox(NULL, 1, 11, 2, 2, 2, 2, ltkBorderSunken, 0, 0, - new LTKBox(NULL, 1, 1, 2, 2, 2, 0, ltkBorderNone, 0, 0, - new LTKLabel(NULL, 0, ltkLabelStatic, 8, "-*-times-bold-i-normal-*-24-*-*-*-*-*-*-*", "xpdf") - ), - new LTKBox(NULL, 1, 1, 2, 2, 2, 12, ltkBorderNone, 0, 0, - new LTKLabel(NULL, 0, ltkLabelStatic, 8, NULL, "Version " xpdfVersion) + new LTKBox(NULL, 1, 2, 0, 0, 0, 0, ltkBorderNone, 1, 1, + new LTKBox(NULL, 2, 2, 0, 0, 0, 0, ltkBorderNone, 1, 1, + new LTKBox(NULL, 1, 1, 2, 2, 2, 2, ltkBorderSunken, 1, 1, + new LTKList("list", 0, 400, 30, gFalse, "-*-courier-medium-r-normal-*-12-*-*-*-*-*-*-*") ), - new LTKBox(NULL, 1, 1, 2, 2, 2, 0, ltkBorderNone, 0, 0, - new LTKLabel(NULL, 0, ltkLabelStatic, 8, NULL, xpdfCopyright) + new LTKBox(NULL, 1, 1, 2, 2, 2, 2, ltkBorderNone, 0, 1, + new LTKScrollbar("vScrollbar", 0, gTrue, 0, 100, &aboutScrollVertCbk) ), - new LTKBox(NULL, 1, 1, 2, 2, 2, 12, ltkBorderNone, 0, 0, - new LTKLabel(NULL, 0, ltkLabelStatic, 8, NULL, "derekn@foolabs.com") + new LTKBox(NULL, 1, 1, 2, 2, 2, 2, ltkBorderNone, 1, 0, + new LTKScrollbar("hScrollbar", 0, gFalse, 0, 100, &aboutScrollHorizCbk) ), new LTKBox(NULL, 1, 1, 2, 2, 2, 2, ltkBorderNone, 0, 0, - new LTKLabel(NULL, 0, ltkLabelStatic, 8, NULL, "Supports PDF version " supportedPDFVersionStr ".") - ), - new LTKBox(NULL, 1, 1, 2, 2, 2, 0, ltkBorderNone, 0, 0, - new LTKLabel(NULL, 0, ltkLabelStatic, 8, NULL, "The PDF data structures, operators, and specification") - ), - new LTKBox(NULL, 1, 1, 2, 2, 2, 12, ltkBorderNone, 0, 0, - new LTKLabel(NULL, 0, ltkLabelStatic, 8, NULL, "are copyright 1995 Adobe Systems Inc.") - ), - new LTKBox(NULL, 1, 1, 2, 2, 2, 0, ltkBorderNone, 0, 0, - new LTKLabel(NULL, 0, ltkLabelStatic, 8, NULL, "Mouse button 1: select text / follow link") - ), - new LTKBox(NULL, 1, 1, 2, 2, 2, 0, ltkBorderNone, 0, 0, - new LTKLabel(NULL, 0, ltkLabelStatic, 8, NULL, "Mouse button 2: pan window") - ), - new LTKBox(NULL, 1, 1, 2, 2, 2, 12, ltkBorderNone, 0, 0, - new LTKLabel(NULL, 0, ltkLabelStatic, 8, NULL, "Mouse button 3: menu") - ), - new LTKBox(NULL, 1, 1, 2, 2, 2, 12, ltkBorderNone, 0, 0, - new LTKLabel(NULL, 0, ltkLabelStatic, 8, NULL, "http://www.foolabs.com/xpdf/") + new LTKEmpty() ) ), new LTKBox(NULL, 2, 1, 0, 0, 0, 0, ltkBorderNone, 0, 0, diff --git a/pdf/xpdf/xpdf-top.ltk b/pdf/xpdf/xpdf-top.ltk index 4d789f2a..e00a3856 100644 --- a/pdf/xpdf/xpdf-top.ltk +++ b/pdf/xpdf/xpdf-top.ltk @@ -1,8 +1,8 @@ #======================================================================== # -# xpdf.ltk +# xpdf-top.ltk # -# Copyright 1996 Derek B. Noonburg +# Copyright 1996-2002 Glyph & Cog, LLC # #======================================================================== @@ -96,9 +96,9 @@ Menu(func:makeMenu title:"xpdf" n:7) { MenuItem(text:"Save as..." num:menuSavePDF select:&menuCbk) MenuItem(text:NULL) - MenuItem(text:"Rotate left" num:menuRotateLeft + MenuItem(text:"Rotate counterclockwise" num:menuRotateCCW select:&menuCbk) - MenuItem(text:"Rotate right" num:menuRotateRight + MenuItem(text:"Rotate clockwise" num:menuRotateCW select:&menuCbk) MenuItem(text:NULL) MenuItem(text:"Quit" shortcut:"Q" num:menuQuit diff --git a/pdf/xpdf/xpdf.cc b/pdf/xpdf/xpdf.cc index 90a16f94..ff545503 100644 --- a/pdf/xpdf/xpdf.cc +++ b/pdf/xpdf/xpdf.cc @@ -2,10 +2,11 @@ // // xpdf.cc // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== +#include #include #include #include @@ -19,6 +20,7 @@ #include "parseargs.h" #include "gfile.h" #include "gmem.h" +#include "GlobalParams.h" #include "LTKAll.h" #include "Object.h" #include "Stream.h" @@ -33,7 +35,6 @@ #include "LTKOutputDev.h" #include "PSOutputDev.h" #include "TextOutputDev.h" -#include "Params.h" #include "Error.h" #include "config.h" @@ -96,14 +97,14 @@ typedef char *XPointer; // misc constants / enums //------------------------------------------------------------------------ -#define remoteCmdLength 256 +#define remoteCmdLength 512 enum XpdfMenuItem { menuOpen, menuReload, menuSavePDF, - menuRotateLeft, - menuRotateRight, + menuRotateCCW, + menuRotateCW, menuQuit }; @@ -113,7 +114,9 @@ enum XpdfMenuItem { // loadFile / displayPage static GBool loadFile(GString *fileName); -static void displayPage(int page1, int zoom1, int rotate1, GBool addToHist); +static void displayPage(int page1, int zoomA, int rotateA, GBool addToHist); +static void displayDest(LinkDest *dest, int zoomA, int rotateA, + GBool addToHist); // key press and menu callbacks static void keyPressCbk(LTKWindow *win1, KeySym key, Guint modifiers, @@ -177,6 +180,9 @@ static void psButtonCbk(LTKWidget *button, int n, GBool on); // "About" window static void mapAboutWin(); static void closeAboutCbk(LTKWidget *button, int n, GBool on); +static void aboutLayoutCbk(LTKWindow *winA); +static void aboutScrollVertCbk(LTKWidget *scrollbar, int n, int val); +static void aboutScrollHorizCbk(LTKWidget *scrollbar, int n, int val); // "Find" window static void findCbk(LTKWidget *button, int n, GBool on); @@ -188,104 +194,172 @@ static void doFind(char *s); static void killCbk(LTKWindow *win1); //------------------------------------------------------------------------ -// command line options +// "About" window text //------------------------------------------------------------------------ -static XrmOptionDescRec opts[] = { - {"-display", ".display", XrmoptionSepArg, NULL}, - {"-foreground", ".foreground", XrmoptionSepArg, NULL}, - {"-fg", ".foreground", XrmoptionSepArg, NULL}, - {"-background", ".background", XrmoptionSepArg, NULL}, - {"-bg", ".background", XrmoptionSepArg, NULL}, - {"-geometry", ".geometry", XrmoptionSepArg, NULL}, - {"-g", ".geometry", XrmoptionSepArg, NULL}, - {"-font", ".font", XrmoptionSepArg, NULL}, - {"-fn", ".font", XrmoptionSepArg, NULL}, - {"-title", ".title", XrmoptionSepArg, NULL}, - {"-cmap", ".installCmap", XrmoptionNoArg, (XPointer)"on"}, - {"-rgb", ".rgbCubeSize", XrmoptionSepArg, NULL}, - {"-papercolor", ".paperColor", XrmoptionSepArg, NULL}, -#if JAPANESE_SUPPORT - {"-eucjp", ".eucjp", XrmoptionNoArg, (XPointer)"off"}, -#endif -#if HAVE_T1LIB_H - {"-t1lib", ".t1libControl", XrmoptionSepArg, NULL}, -#endif -#if HAVE_FREETYPE_FREETYPE_H | HAVE_FREETYPE_H - {"-freetype", ".freeTypeControl", XrmoptionSepArg, NULL}, -#endif - {"-z", ".initialZoom", XrmoptionSepArg, NULL}, - {"-ps", ".psFile", XrmoptionSepArg, NULL}, - {"-paperw", ".psPaperWidth", XrmoptionSepArg, NULL}, - {"-paperh", ".psPaperHeight", XrmoptionSepArg, NULL}, - {"-level1", ".psLevel1", XrmoptionNoArg, (XPointer)"false"}, - {NULL} +static char *aboutWinText[] = { + "X X d fff", + " X X d f f", + " X X d f", + " X pppp dddd ffff", + " X X p p d d f", + " X X p p d d f", + "X X pppp dddd f Version " xpdfVersion, + " p", + " p", + " p", + "", + xpdfCopyright, + "", + "http://www.foolabs.com/xpdf/", + "derekn@foolabs.com", + "", + "Licensed under the GNU General Public License (GPL).", + "See the 'COPYING' file for details.", + "", + "Supports PDF version " supportedPDFVersionStr ".", + "", + "The PDF data structures, operators, and specification", + "are copyright 1985-2001 Adobe Systems Inc.", + "", + "Mouse bindings:", + " button 1: select text / follow link", + " button 2: pan window", + " button 3: menu", + "", + "Key bindings:", + " o = open file", + " r = reload", + " f = find text", + " n = = next page", + " p = = previous page", + " = scroll down", + " = = scroll up", + " v = forward (history path)", + " b = backward (history path)", + " 0 / + / - = zoom zero / in / out", + " z / w = zoom page / page width", + " ctrl-L = redraw", + " q = quit", + " / = top / bottom of page", + " = scroll", + "", + "For more information, please read the xpdf(1) man page.", + NULL }; -static GBool printVersion = gFalse; -static GBool printHelp = gFalse; +//------------------------------------------------------------------------ +// command line options +//------------------------------------------------------------------------ + +static char initialZoomStr[32] = ""; +static char t1libControlStr[16] = ""; +static char freetypeControlStr[16] = ""; +static char psFileArg[256]; +static char paperSize[15] = ""; +static int paperWidth = 0; +static int paperHeight = 0; +static GBool level1 = gFalse; +static char textEncName[128] = ""; +static char textEOL[16] = ""; +static char ownerPassword[33] = ""; +static char userPassword[33] = ""; +static GBool fullScreen = gFalse; static char remoteName[100] = "xpdf_"; static GBool doRemoteRaise = gFalse; static GBool doRemoteQuit = gFalse; +static GBool printCommands = gFalse; +static GBool quiet = gFalse; +static char cfgFileName[256] = ""; +static GBool printVersion = gFalse; +static GBool printHelp = gFalse; static GBool viKeys = gFalse; -static char userPassword[33] = ""; -static GBool fullScreen = gFalse; static ArgDesc argDesc[] = { - {"-z", argStringDummy, NULL, 0, - "initial zoom level (-5..5, page, width)"}, {"-g", argStringDummy, NULL, 0, "initial window geometry"}, {"-geometry", argStringDummy, NULL, 0, "initial window geometry"}, {"-title", argStringDummy, NULL, 0, "window title"}, - {"-remote", argString, remoteName + 5, sizeof(remoteName) - 5, - "start/contact xpdf remote server with specified name"}, - {"-raise", argFlag, &doRemoteRaise, 0, - "raise xpdf remote server window (with -remote only)"}, - {"-quit", argFlag, &doRemoteQuit, 0, - "kill xpdf remote server (with -remote only)"}, {"-cmap", argFlagDummy, NULL, 0, "install a private colormap"}, {"-rgb", argIntDummy, NULL, 0, "biggest RGB cube to allocate (default is 5)"}, + {"-rv", argFlagDummy, NULL, 0, + "reverse video"}, {"-papercolor", argStringDummy, NULL, 0, "color of paper background"}, -#if JAPANESE_SUPPORT - {"-eucjp", argStringDummy, NULL, 0, - "convert Japanese text to EUC-JP"}, -#endif + {"-z", argString, initialZoomStr, sizeof(initialZoomStr), + "initial zoom level (-5..5, page, width)"}, #if HAVE_T1LIB_H - {"-t1lib", argStringDummy, NULL, 0, - "t1lib font control: none, plain, low, high"}, + {"-t1lib", argString, t1libControlStr, sizeof(t1libControlStr), + "t1lib font rasterizer control: none, plain, low, high"}, #endif #if HAVE_FREETYPE_FREETYPE_H | HAVE_FREETYPE_H - {"-freetype", argStringDummy, NULL, 0, - "FreeType font control: none, plain, aa"}, + {"-freetype", argString, freetypeControlStr, sizeof(freetypeControlStr), + "FreeType font rasterizer control: none, plain, low, high"}, #endif - {"-ps", argStringDummy, NULL, 0, - "default PostScript file/command name"}, - {"-paperw", argIntDummy, NULL, 0, + {"-ps", argString, psFileArg, sizeof(psFileArg), + "default PostScript file name or command"}, + {"-paper", argString, paperSize, sizeof(paperSize), + "paper size (letter, legal, A4, A3)"}, + {"-paperw", argInt, &paperWidth, 0, "paper width, in points"}, - {"-paperh", argIntDummy, NULL, 0, + {"-paperh", argInt, &paperHeight, 0, "paper height, in points"}, - {"-level1", argFlagDummy, NULL, 0, + {"-level1", argFlag, &level1, 0, "generate Level 1 PostScript"}, + {"-enc", argString, textEncName, sizeof(textEncName), + "output text encoding name"}, + {"-eol", argString, textEOL, sizeof(textEOL), + "output end-of-line convention (unix, dos, or mac)"}, + {"-opw", argString, ownerPassword, sizeof(ownerPassword), + "owner password (for encrypted files)"}, {"-upw", argString, userPassword, sizeof(userPassword), "user password (for encrypted files)"}, {"-fullscreen", argFlag, &fullScreen, 0, "run in full-screen (presentation) mode"}, + {"-remote", argString, remoteName + 5, sizeof(remoteName) - 5, + "start/contact xpdf remote server with specified name"}, + {"-raise", argFlag, &doRemoteRaise, 0, + "raise xpdf remote server window (with -remote only)"}, + {"-quit", argFlag, &doRemoteQuit, 0, + "kill xpdf remote server (with -remote only)"}, {"-cmd", argFlag, &printCommands, 0, "print commands as they're executed"}, - {"-q", argFlag, &errQuiet, 0, + {"-q", argFlag, &quiet, 0, "don't print any messages or errors"}, + {"-cfg", argString, cfgFileName, sizeof(cfgFileName), + "configuration file to use in place of .xpdfrc"}, {"-v", argFlag, &printVersion, 0, "print copyright and version info"}, {"-h", argFlag, &printHelp, 0, "print usage information"}, {"-help", argFlag, &printHelp, 0, "print usage information"}, + {"--help", argFlag, &printHelp, 0, + "print usage information"}, + {"-?", argFlag, &printHelp, 0, + "print usage information"}, + {NULL} +}; + +static XrmOptionDescRec opts[] = { + {"-display", ".display", XrmoptionSepArg, NULL}, + {"-foreground", ".foreground", XrmoptionSepArg, NULL}, + {"-fg", ".foreground", XrmoptionSepArg, NULL}, + {"-background", ".background", XrmoptionSepArg, NULL}, + {"-bg", ".background", XrmoptionSepArg, NULL}, + {"-geometry", ".geometry", XrmoptionSepArg, NULL}, + {"-g", ".geometry", XrmoptionSepArg, NULL}, + {"-font", ".font", XrmoptionSepArg, NULL}, + {"-fn", ".font", XrmoptionSepArg, NULL}, + {"-title", ".title", XrmoptionSepArg, NULL}, + {"-cmap", ".installCmap", XrmoptionNoArg, (XPointer)"on"}, + {"-rgb", ".rgbCubeSize", XrmoptionSepArg, NULL}, + {"-rv", ".reverseVideo", XrmoptionNoArg, (XPointer)"true"}, + {"-papercolor", ".paperColor", XrmoptionSepArg, NULL}, {NULL} }; @@ -298,13 +372,12 @@ static ArgDesc argDesc[] = { #define maxZoom 5 #define zoomPage 100 #define zoomWidth 101 +#define defZoom 1 static int zoomDPI[maxZoom - minZoom + 1] = { 29, 35, 42, 50, 60, 72, 86, 104, 124, 149, 179 }; -#define defZoom 1 -#define defZoomStr "1" static PDFDoc *doc; @@ -338,7 +411,6 @@ static int historyBLen; // number of valid entries backward from static int historyFLen; // number of valid entries forward from // current entry -static GString *defPSFileName; static GString *psFileName; static int psFirstPage, psLastPage; @@ -359,10 +431,13 @@ static LTKLabel *numPagesLabel; static LTKLabel *linkLabel; static LTKMenuButton *zoomMenuBtn; static LTKWindow *aboutWin; +static LTKList *aboutList; +static LTKScrollbar *aboutHScrollbar, *aboutVScrollbar; static LTKWindow *psDialog; static LTKWindow *openDialog; static LTKWindow *saveDialog; static LTKWindow *findWin; +static LTKTextIn *findTextIn; static Atom remoteAtom; static GC selectGC; @@ -393,12 +468,17 @@ int main(int argc, char *argv[]) { LTKMenu *menu; GString *name; GString *title; + GString *initialZoom; + GBool reverseVideo; unsigned long paperColor; + GBool installCmap; + int rgbCubeSize; int pg; + GString *destName; + LinkDest *dest; int x, y; Guint width, height; double width1, height1; - GString *zoomStr; GBool ok; char s[20]; int i; @@ -410,23 +490,60 @@ int main(int argc, char *argv[]) { out = NULL; remoteAtom = None; doc = NULL; - xref = NULL; psFileName = NULL; fileReqDir = getCurrentDir(); ret = 0; // parse args - paperWidth = paperHeight = -1; ok = parseArgs(argDesc, &argc, argv); - // init error file - errorInit(); - // read config file - initParams(xpdfConfigFile); + globalParams = new GlobalParams(cfgFileName); + if (psFileArg[0]) { + globalParams->setPSFile(psFileArg); + } + if (paperSize[0]) { + if (!globalParams->setPSPaperSize(paperSize)) { + fprintf(stderr, "Invalid paper size\n"); + } + } else { + if (paperWidth) { + globalParams->setPSPaperWidth(paperWidth); + } + if (paperHeight) { + globalParams->setPSPaperHeight(paperHeight); + } + } + if (level1) { + globalParams->setPSLevel(psLevel1); + } + if (textEncName[0]) { + globalParams->setTextEncoding(textEncName); + } + if (textEOL[0]) { + if (!globalParams->setTextEOL(textEOL)) { + fprintf(stderr, "Bad '-eol' value on command line\n"); + } + } + if (initialZoomStr[0]) { + globalParams->setInitialZoom(initialZoomStr); + } + if (t1libControlStr[0]) { + if (!globalParams->setT1libControl(t1libControlStr)) { + fprintf(stderr, "Bad '-t1lib' value on command line\n"); + } + } + if (freetypeControlStr[0]) { + if (!globalParams->setFreeTypeControl(freetypeControlStr)) { + fprintf(stderr, "Bad '-freetype' value on command line\n"); + } + } + if (quiet) { + globalParams->setErrQuiet(quiet); + } // create LTKApp (and parse X-related args) - app = new LTKApp("xpdf", opts, &argc, argv); + app = new LTKApp("xpdf", "Xpdf", opts, &argc, argv); app->setKillCbk(&killCbk); display = app->getDisplay(); @@ -441,19 +558,25 @@ int main(int argc, char *argv[]) { fprintf(stderr, "xpdf version %s\n", xpdfVersion); fprintf(stderr, "%s\n", xpdfCopyright); if (!printVersion) { - printUsage("xpdf", "[ []]", argDesc); + printUsage("xpdf", "[ [ | +]]", argDesc); } ret = 1; goto done2; } - if (argc >= 2) + if (argc >= 2) { name = new GString(argv[1]); - else + } else { name = NULL; - if (argc == 3) - pg = atoi(argv[2]); - else - pg = 1; + } + pg = 1; + destName = NULL; + if (argc == 3) { + if (argv[2][0] == '+') { + destName = new GString(&argv[2][1]); + } else { + pg = atoi(argv[2]); + } + } // look for already-running remote server if (remoteName[5]) { @@ -461,8 +584,14 @@ int main(int argc, char *argv[]) { xwin = XGetSelectionOwner(display, remoteAtom); if (xwin != None) { if (name) { - sprintf(cmd, "%c %d %.200s", doRemoteRaise ? 'D' : 'd', - pg, name->getCString()); + if (destName) { + sprintf(cmd, "%c +%.256s %.200s", doRemoteRaise ? 'D' : 'd', + destName->getCString(), name->getCString()); + delete destName; + } else { + sprintf(cmd, "%c %d %.200s", doRemoteRaise ? 'D' : 'd', + pg, name->getCString()); + } XChangeProperty(display, xwin, remoteAtom, remoteAtom, 8, PropModeReplace, (Guchar *)cmd, strlen(cmd) + 1); delete name; @@ -475,8 +604,12 @@ int main(int argc, char *argv[]) { } goto done2; } - if (doRemoteQuit) + if (doRemoteQuit) { + if (destName) { + delete destName; + } goto done2; + } } // no history yet @@ -486,7 +619,6 @@ int main(int argc, char *argv[]) { history[i].fileName = NULL; // open PDF file - defPSFileName = app->getStringResource("psFile", NULL); if (name) { if (!loadFile(name)) { ret = 1; @@ -497,8 +629,9 @@ int main(int argc, char *argv[]) { } // check for legal page number - if (doc && (pg < 1 || pg > doc->getNumPages())) + if (doc && (pg < 1 || pg > doc->getNumPages())) { pg = 1; + } // create window menu = makeMenu(); @@ -529,73 +662,42 @@ int main(int argc, char *argv[]) { vScrollbar->setRepeatPeriod(0); } + // get parameters + urlCommand = globalParams->getURLCommand(); + // get X resources - paperWidth = app->getIntResource("psPaperWidth", defPaperWidth); - paperHeight = app->getIntResource("psPaperHeight", defPaperHeight); - psOutLevel1 = app->getBoolResource("psLevel1", gFalse); - urlCommand = app->getStringResource("urlCommand", NULL); windowTitle = app->getStringResource("title", NULL); installCmap = app->getBoolResource("installCmap", gFalse); - if (installCmap) + if (installCmap) { win->setInstallCmap(gTrue); + } rgbCubeSize = app->getIntResource("rgbCubeSize", defaultRGBCube); - paperColor = app->getColorResource("paperColor", "white", - WhitePixel(display, app->getScreenNum()), - NULL); -#if JAPANESE_SUPPORT - useEUCJP = app->getBoolResource("eucjp", gFalse); -#else - useEUCJP = gFalse; -#endif -#if HAVE_T1LIB_H - t1libControl = app->getStringResource("t1libControl", "low"); -#endif -#if HAVE_FREETYPE_FREETYPE_H | HAVE_FREETYPE_H - freeTypeControl = app->getStringResource("freeTypeControl", "aa"); -#endif - t1Courier = app->getStringResource("t1Courier", NULL); - t1CourierBold = app->getStringResource("t1CourierBold", NULL); - t1CourierBoldOblique = app->getStringResource("t1CourierBoldOblique", NULL); - t1CourierOblique = app->getStringResource("t1CourierOblique", NULL); - t1Helvetica = app->getStringResource("t1Helvetica", NULL); - t1HelveticaBold = app->getStringResource("t1HelveticaBold", NULL); - t1HelveticaBoldOblique = - app->getStringResource("t1HelveticaBoldOblique", NULL); - t1HelveticaOblique = app->getStringResource("t1HelveticaOblique", NULL); - t1Symbol = app->getStringResource("t1Symbol", NULL); - t1TimesBold = app->getStringResource("t1TimesBold", NULL); - t1TimesBoldItalic = app->getStringResource("t1TimesBoldItalic", NULL); - t1TimesItalic = app->getStringResource("t1TimesItalic", NULL); - t1TimesRoman = app->getStringResource("t1TimesRoman", NULL); - t1ZapfDingbats = app->getStringResource("t1ZapfDingbats", NULL); -#if JAPANESE_SUPPORT - japan12Font = app->getStringResource("japaneseFont", NULL); -#endif -#if CHINESE_GB_SUPPORT - gb12Font = app->getStringResource("chineseGBFont", NULL); -#endif -#if CHINESE_CNS_SUPPORT - cns13Font = app->getStringResource("chineseCNSFont", NULL); -#endif + reverseVideo = app->getBoolResource("reverseVideo", gFalse); + paperColor = app->getColorResource( + "paperColor", + reverseVideo ? (char *)"black" : (char *)"white", + reverseVideo ? BlackPixel(display, app->getScreenNum()) + : WhitePixel(display, app->getScreenNum()), + NULL); if (fullScreen) { zoom = zoomPage; } else { - zoomStr = app->getStringResource("initialZoom", defZoomStr); - if (!zoomStr->cmp("page")) { + initialZoom = globalParams->getInitialZoom(); + if (!initialZoom->cmp("page")) { zoom = zoomPage; i = maxZoom - minZoom + 2; - } else if (!zoomStr->cmp("width")) { + } else if (!initialZoom->cmp("width")) { zoom = zoomWidth; i = maxZoom - minZoom + 3; } else { - zoom = atoi(zoomStr->getCString()); - if (zoom < minZoom) + zoom = atoi(initialZoom->getCString()); + if (zoom < minZoom) { zoom = minZoom; - else if (zoom > maxZoom) + } else if (zoom > maxZoom) { zoom = maxZoom; + } i = zoom - minZoom; } - delete zoomStr; zoomMenuBtn->setInitialMenuItem(zoomMenu->getItem(i)); } viKeys = app->getBoolResource("viKeys", gFalse); @@ -674,11 +776,25 @@ int main(int argc, char *argv[]) { } // create output device - out = new LTKOutputDev(win, paperColor); - out->startDoc(); + out = new LTKOutputDev(win, reverseVideo, paperColor, + installCmap, rgbCubeSize, !fullScreen); + out->startDoc(doc ? doc->getXRef() : (XRef *)NULL); // display first page - displayPage(pg, zoom, 0, gTrue); + if (destName) { + if (doc) { + if ((dest = doc->findDest(destName))) { + displayDest(dest, zoom, 0, gTrue); + delete dest; + } else { + error(-1, "Unknown named destination '%s'", destName->getCString()); + displayPage(1, zoom, 0, gTrue); + } + } + delete destName; + } else { + displayPage(pg, zoom, 0, gTrue); + } // event loop quit = gFalse; @@ -714,107 +830,34 @@ int main(int argc, char *argv[]) { if (psFileName) { delete psFileName; } - if (defPSFileName) { - delete defPSFileName; - } if (fileReqDir) { delete fileReqDir; } - if (urlCommand) { - delete urlCommand; - } if (windowTitle) { delete windowTitle; } -#if HAVE_T1LIB_H - if (t1libControl) { - delete t1libControl; - } -#endif -#if HAVE_FREETYPE_FREETYPE_H | HAVE_FREETYPE_H - if (freeTypeControl) { - delete freeTypeControl; - } -#endif - if (t1Courier) { - delete t1Courier; - } - if (t1CourierBold) { - delete t1CourierBold; - } - if (t1CourierBoldOblique) { - delete t1CourierBoldOblique; - } - if (t1CourierOblique) { - delete t1CourierOblique; - } - if (t1Helvetica) { - delete t1Helvetica; - } - if (t1HelveticaBold) { - delete t1HelveticaBold; - } - if (t1HelveticaBoldOblique) { - delete t1HelveticaBoldOblique; - } - if (t1HelveticaOblique) { - delete t1HelveticaOblique; - } - if (t1Symbol) { - delete t1Symbol; - } - if (t1TimesBold) { - delete t1TimesBold; - } - if (t1TimesBoldItalic) { - delete t1TimesBoldItalic; - } - if (t1TimesItalic) { - delete t1TimesItalic; - } - if (t1TimesRoman) { - delete t1TimesRoman; - } - if (t1ZapfDingbats) { - delete t1ZapfDingbats; - } -#if JAPANESE_SUPPORT - if (japan12Font) { - delete japan12Font; - } -#endif -#if CHINESE_GB_SUPPORT - if (gb12Font) { - delete gb12Font; - } -#endif -#if CHINESE_CNS_SUPPORT - if (cns13Font) { - delete cns13Font; - } -#endif for (i = 0; i < historySize; ++i) { if (history[i].fileName) { delete history[i].fileName; } } - freeParams(); + delete globalParams; // check for memory leaks - Object::memCheck(errFile ? errFile : stderr); - gMemReport(errFile ? errFile : stderr); + Object::memCheck(stderr); + gMemReport(stderr); return ret; } //------------------------------------------------------------------------ -// loadFile / displayPage +// loadFile / displayPage / displayDest //------------------------------------------------------------------------ static GBool loadFile(GString *fileName) { GString *title; PDFDoc *newDoc; - GString *userPW; + GString *ownerPW, *userPW; char s[20]; char *p; @@ -823,15 +866,23 @@ static GBool loadFile(GString *fileName) { win->setBusyCursor(gTrue); // open PDF file + if (ownerPassword[0]) { + ownerPW = new GString(ownerPassword); + } else { + ownerPW = NULL; + } if (userPassword[0]) { userPW = new GString(userPassword); } else { userPW = NULL; } - newDoc = new PDFDoc(fileName, userPW); + newDoc = new PDFDoc(fileName, ownerPW, userPW, printCommands); if (userPW) { delete userPW; } + if (ownerPW) { + delete ownerPW; + } if (!newDoc->isOk()) { delete newDoc; if (win) @@ -843,8 +894,9 @@ static GBool loadFile(GString *fileName) { if (doc) delete doc; doc = newDoc; - if (out) - out->startDoc(); + if (out) { + out->startDoc(doc->getXRef()); + } // nothing displayed yet page = -99; @@ -855,8 +907,8 @@ static GBool loadFile(GString *fileName) { // init PostScript output params if (psFileName) delete psFileName; - if (defPSFileName) { - psFileName = defPSFileName->copy(); + if (globalParams->getPSFile()) { + psFileName = globalParams->getPSFile()->copy(); } else { p = fileName->getCString() + fileName->getLength() - 4; if (!strcmp(p, ".pdf") || !strcmp(p, ".PDF")) @@ -887,7 +939,7 @@ static GBool loadFile(GString *fileName) { return gTrue; } -static void displayPage(int page1, int zoom1, int rotate1, GBool addToHist) { +static void displayPage(int pageA, int zoomA, int rotateA, GBool addToHist) { time_t modTime1; double hDPI, vDPI, dpi; int rot; @@ -902,8 +954,8 @@ static void displayPage(int page1, int zoom1, int rotate1, GBool addToHist) { modTime1 = getModTime(doc->getFileName()->getCString()); if (modTime1 != modTime) { if (loadFile(doc->getFileName()->copy())) { - if (page1 > doc->getNumPages()) { - page1 = doc->getNumPages(); + if (pageA > doc->getNumPages()) { + pageA = doc->getNumPages(); } } modTime = modTime1; @@ -914,9 +966,9 @@ static void displayPage(int page1, int zoom1, int rotate1, GBool addToHist) { win->setBusyCursor(gTrue); // new page/zoom/rotate values - page = page1; - zoom = zoom1; - rotate = rotate1; + page = pageA; + zoom = zoomA; + rotate = rotateA; // initialize mouse-related stuff linkAction = NULL; @@ -945,18 +997,18 @@ static void displayPage(int page1, int zoom1, int rotate1, GBool addToHist) { dpi = (hDPI < vDPI) ? hDPI : vDPI; } else if (zoom == zoomPage) { if (rot == 90 || rot == 270) { - hDPI = ((win->getWidth() - 28) / doc->getPageHeight(page)) * 72; - vDPI = ((win->getHeight() - 56) / doc->getPageWidth(page)) * 72; + hDPI = (canvas->getWidth() / doc->getPageHeight(page)) * 72; + vDPI = (canvas->getHeight() / doc->getPageWidth(page)) * 72; } else { - hDPI = ((win->getWidth() - 28) / doc->getPageWidth(page)) * 72; - vDPI = ((win->getHeight() - 56) / doc->getPageHeight(page)) * 72; + hDPI = (canvas->getWidth() / doc->getPageWidth(page)) * 72; + vDPI = (canvas->getHeight() / doc->getPageHeight(page)) * 72; } dpi = (hDPI < vDPI) ? hDPI : vDPI; } else if (zoom == zoomWidth) { if (rot == 90 || rot == 270) { - dpi = ((win->getWidth() - 28) / doc->getPageHeight(page)) * 72; + dpi = (canvas->getWidth() / doc->getPageHeight(page)) * 72; } else { - dpi = ((win->getWidth() - 28) / doc->getPageWidth(page)) * 72; + dpi = (canvas->getWidth() / doc->getPageWidth(page)) * 72; } } else { dpi = zoomDPI[zoom - minZoom]; @@ -988,6 +1040,75 @@ static void displayPage(int page1, int zoom1, int rotate1, GBool addToHist) { win->setBusyCursor(gFalse); } +static void displayDest(LinkDest *dest, int zoomA, int rotateA, + GBool addToHist) { + Ref pageRef; + int pg; + int dx, dy; + + if (dest->isPageRef()) { + pageRef = dest->getPageRef(); + pg = doc->findPage(pageRef.num, pageRef.gen); + } else { + pg = dest->getPageNum(); + } + if (pg <= 0 || pg > doc->getNumPages()) { + pg = 1; + } + if (pg != page) { + displayPage(pg, zoomA, rotateA, addToHist); + } + + if (fullScreen) { + return; + } + switch (dest->getKind()) { + case destXYZ: + out->cvtUserToDev(dest->getLeft(), dest->getTop(), &dx, &dy); + if (dest->getChangeLeft() || dest->getChangeTop()) { + if (dest->getChangeLeft()) { + hScrollbar->setPos(dx, canvas->getWidth()); + } + if (dest->getChangeTop()) { + vScrollbar->setPos(dy, canvas->getHeight()); + } + canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos()); + } + //~ what is the zoom parameter? + break; + case destFit: + case destFitB: + //~ do fit + hScrollbar->setPos(0, canvas->getWidth()); + vScrollbar->setPos(0, canvas->getHeight()); + canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos()); + break; + case destFitH: + case destFitBH: + //~ do fit + out->cvtUserToDev(0, dest->getTop(), &dx, &dy); + hScrollbar->setPos(0, canvas->getWidth()); + vScrollbar->setPos(dy, canvas->getHeight()); + canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos()); + break; + case destFitV: + case destFitBV: + //~ do fit + out->cvtUserToDev(dest->getLeft(), 0, &dx, &dy); + hScrollbar->setPos(dx, canvas->getWidth()); + vScrollbar->setPos(0, canvas->getHeight()); + canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos()); + break; + case destFitR: + //~ do fit + out->cvtUserToDev(dest->getLeft(), dest->getTop(), &dx, &dy); + hScrollbar->setPos(dx, canvas->getWidth()); + vScrollbar->setPos(dy, canvas->getHeight()); + canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos()); + break; + } +} + //------------------------------------------------------------------------ // key press and menu callbacks //------------------------------------------------------------------------ @@ -1039,6 +1160,19 @@ static void keyPressCbk(LTKWindow *win1, KeySym key, Guint modifiers, canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos()); } break; + case 'v': + forwardCbk(NULL, 0, gTrue); + break; + case 'b': + backCbk(NULL, 0, gTrue); + break; + case 'g': + if (fullScreen) { + break; + } + pageNumText->selectAll(); + pageNumText->activate(gTrue); + break; case 'h': // vi-style left if (fullScreen) { break; @@ -1075,6 +1209,42 @@ static void keyPressCbk(LTKWindow *win1, KeySym key, Guint modifiers, canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos()); } break; + case '0': + if (fullScreen) { + break; + } + if (zoom != defZoom) { + zoomMenuBtn->setMenuItem(zoomMenu->getItem(defZoom - minZoom)); + } + break; + case '+': + if (fullScreen) { + break; + } + if (zoom >= minZoom && zoom < maxZoom) { + zoomMenuBtn->setMenuItem(zoomMenu->getItem(zoom + 1 - minZoom)); + } + break; + case '-': + if (fullScreen) { + break; + } + if (zoom > minZoom && zoom <= maxZoom) { + zoomMenuBtn->setMenuItem(zoomMenu->getItem(zoom - 1 - minZoom)); + } + break; + case 'z': + if (fullScreen) { + break; + } + zoomMenuBtn->setMenuItem(zoomMenu->getItem(maxZoom - minZoom + 2)); + break; + case 'w': + if (fullScreen) { + break; + } + zoomMenuBtn->setMenuItem(zoomMenu->getItem(maxZoom - minZoom + 3)); + break; case '\014': // ^L win->redraw(); displayPage(page, zoom, rotate, gFalse); @@ -1180,13 +1350,13 @@ static void menuCbk(LTKMenuItem *item) { if (doc) mapSaveDialog(); break; - case menuRotateLeft: + case menuRotateCCW: if (doc) { r = (rotate == 0) ? 270 : rotate - 90; displayPage(page, zoom, r, gFalse); } break; - case menuRotateRight: + case menuRotateCW: if (doc) { r = (rotate == 270) ? 0 : rotate + 90; displayPage(page, zoom, r, gFalse); @@ -1204,13 +1374,53 @@ static void menuCbk(LTKMenuItem *item) { static void buttonPressCbk(LTKWidget *canvas1, int n, int mx, int my, int button, GBool dblClick) { - if (!doc || doc->getNumPages() == 0) + if (!doc || doc->getNumPages() == 0) { return; - if (button == 1) { + } + switch (button) { + case 1: setSelection(mx, my, mx, my); - } else if (!fullScreen && button == 2) { - panMX = mx - hScrollbar->getPos(); - panMY = my - vScrollbar->getPos(); + break; + case 2: + if (!fullScreen) { + panMX = mx - hScrollbar->getPos(); + panMY = my - vScrollbar->getPos(); + } + break; + case 4: // mouse wheel up + if (fullScreen) { + gotoPrevPage(1, gTrue, gFalse); + } else if (vScrollbar->getPos() == 0) { + gotoPrevPage(1, gFalse, gTrue); + } else { + vScrollbar->setPos(vScrollbar->getPos() - 16, canvas->getHeight()); + canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos()); + } + break; + case 5: // mouse wheel down + if (fullScreen || + vScrollbar->getPos() >= + canvas->getRealHeight() - canvas->getHeight()) { + gotoNextPage(1, gTrue); + } else { + vScrollbar->setPos(vScrollbar->getPos() + 16, canvas->getHeight()); + canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos()); + } + break; + case 6: // second mouse wheel right + if (fullScreen) { + return; + } + hScrollbar->setPos(hScrollbar->getPos() + 16, canvas->getWidth()); + canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos()); + break; + case 7: // second mouse wheel left + if (fullScreen) { + return; + } + hScrollbar->setPos(hScrollbar->getPos() - 16, canvas->getWidth()); + canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos()); + break; } } @@ -1249,10 +1459,7 @@ static void doLink(int mx, int my) { char *s; GString *fileName; GString *actionName; - Ref pageRef; - int pg; double x, y; - int dx, dy; LTKButtonDialog *dialog; int i; @@ -1297,68 +1504,13 @@ static void doLink(int mx, int my) { dest = doc->findDest(namedDest); delete namedDest; } - if (!dest) { - if (kind == actionGoToR) - displayPage(1, zoom, 0, gTrue); + if (dest) { + displayDest(dest, zoom, rotate, gTrue); + delete dest; } else { - if (dest->isPageRef()) { - pageRef = dest->getPageRef(); - pg = doc->findPage(pageRef.num, pageRef.gen); - } else { - pg = dest->getPageNum(); - } - if (pg > 0 && pg != page) - displayPage(pg, zoom, rotate, gTrue); - else if (pg <= 0) - displayPage(1, zoom, rotate, gTrue); - if (fullScreen) { - delete dest; - break; - } - switch (dest->getKind()) { - case destXYZ: - out->cvtUserToDev(dest->getLeft(), dest->getTop(), &dx, &dy); - if (dest->getChangeLeft() || dest->getChangeTop()) { - if (dest->getChangeLeft()) - hScrollbar->setPos(dx, canvas->getWidth()); - if (dest->getChangeTop()) - vScrollbar->setPos(dy, canvas->getHeight()); - canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos()); - } - //~ what is the zoom parameter? - break; - case destFit: - case destFitB: - //~ do fit - hScrollbar->setPos(0, canvas->getWidth()); - vScrollbar->setPos(0, canvas->getHeight()); - canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos()); - break; - case destFitH: - case destFitBH: - //~ do fit - out->cvtUserToDev(0, dest->getTop(), &dx, &dy); - hScrollbar->setPos(0, canvas->getWidth()); - vScrollbar->setPos(dy, canvas->getHeight()); - canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos()); - break; - case destFitV: - case destFitBV: - //~ do fit - out->cvtUserToDev(dest->getLeft(), 0, &dx, &dy); - hScrollbar->setPos(dx, canvas->getWidth()); - vScrollbar->setPos(0, canvas->getHeight()); - canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos()); - break; - case destFitR: - //~ do fit - out->cvtUserToDev(dest->getLeft(), dest->getTop(), &dx, &dy); - hScrollbar->setPos(dx, canvas->getWidth()); - vScrollbar->setPos(dy, canvas->getHeight()); - canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos()); - break; + if (kind == actionGoToR) { + displayPage(1, zoom, 0, gTrue); } - delete dest; } break; @@ -1443,8 +1595,7 @@ static void doLink(int mx, int my) { system(fileName->getCString()); delete fileName; } else { - fprintf(errFile, "URI: %s\n", - ((LinkURI *)action)->getURI()->getCString()); + printf("URI: %s\n", ((LinkURI *)action)->getURI()->getCString()); } break; @@ -1631,7 +1782,7 @@ static void gotoNextPage(int inc, GBool top) { if (page < doc->getNumPages()) { if (top && !fullScreen) { vScrollbar->setPos(0, canvas->getHeight()); - canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos()); + canvas->setScrollPos(hScrollbar->getPos(), vScrollbar->getPos()); } if ((pg = page + inc) > doc->getNumPages()) { pg = doc->getNumPages(); @@ -1659,7 +1810,7 @@ static void gotoPrevPage(int dec, GBool top, GBool bottom) { if (page > 1) { if (top && !fullScreen) { vScrollbar->setPos(0, canvas->getHeight()); - canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos()); + canvas->setScrollPos(hScrollbar->getPos(), vScrollbar->getPos()); } else if (bottom && !fullScreen) { vScrollbar->setPos(canvas->getRealHeight() - canvas->getHeight(), canvas->getHeight()); @@ -1798,19 +1949,23 @@ static void propChangeCbk(LTKWindow *win1, Atom atom) { Atom type; int format; Gulong size, remain; - char *p; + char *p, *q; GString *newFileName; int newPage; + GString *destName; + LinkDest *dest; // get command xwin = win1->getXWindow(); if (XGetWindowProperty(display, xwin, remoteAtom, 0, remoteCmdLength/4, True, remoteAtom, &type, &format, &size, &remain, - (Guchar **)&cmd) != Success) + (Guchar **)&cmd) != Success) { return; - if (size == 0) + } + if (size == 0) { return; + } // raise window if (cmd[0] == 'D' || cmd[0] == 'r'){ @@ -1821,10 +1976,22 @@ static void propChangeCbk(LTKWindow *win1, Atom atom) { // display file / page if (cmd[0] == 'd' || cmd[0] == 'D') { p = cmd + 2; - newPage = atoi(p); - if (!(p = strchr(p, ' '))) + q = strchr(p, ' '); + if (!q) { + return; + } + *q++ = '\0'; + newPage = 1; + destName = NULL; + if (*p == '+') { + destName = new GString(p + 1); + } else { + newPage = atoi(p); + } + if (!q) { return; - newFileName = new GString(p + 1); + } + newFileName = new GString(q); XFree((XPointer)cmd); if (!doc || newFileName->cmp(doc->getFileName())) { if (!loadFile(newFileName)) @@ -1832,8 +1999,16 @@ static void propChangeCbk(LTKWindow *win1, Atom atom) { } else { delete newFileName; } - if (newPage != page && newPage >= 1 && newPage <= doc->getNumPages()) + if (destName) { + if ((dest = doc->findDest(destName))) { + displayDest(dest, zoom, rotate, gTrue); + delete dest; + } + delete destName; + } else if (newPage != page && + newPage >= 1 && newPage <= doc->getNumPages()) { displayPage(newPage, zoom, rotate, gTrue); + } // quit } else if (cmd[0] == 'q') { @@ -1993,8 +2168,10 @@ static void openSelectCbk(LTKWidget *widget, int n, GString *name) { openDialog = NULL; } if (loadFile(name1)) { - vScrollbar->setPos(0, canvas->getHeight()); - canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos()); + if (!fullScreen) { + vScrollbar->setPos(0, canvas->getHeight()); + canvas->scroll(hScrollbar->getPos(), vScrollbar->getPos()); + } displayPage(1, zoom, rotate, gTrue); } } @@ -2122,8 +2299,9 @@ static void psButtonCbk(LTKWidget *button, int n, GBool on) { psDialog->setBusyCursor(gTrue); win->setBusyCursor(gTrue); if (doc->okToPrint()) { - psOut = new PSOutputDev(psFileName->getCString(), doc->getCatalog(), - psFirstPage, psLastPage, gTrue, gFalse); + psOut = new PSOutputDev(psFileName->getCString(), doc->getXRef(), + doc->getCatalog(), psFirstPage, psLastPage, + psModePS); if (psOut->isOk()) { doc->displayPages(psOut, psFirstPage, psLastPage, 72, 0, gFalse); } @@ -2146,10 +2324,19 @@ static void psButtonCbk(LTKWidget *button, int n, GBool on) { //------------------------------------------------------------------------ static void mapAboutWin() { + int i; + if (aboutWin) { aboutWin->raise(); } else { aboutWin = makeAboutWindow(app); + aboutWin->setLayoutCbk(&aboutLayoutCbk); + aboutList = (LTKList *)aboutWin->findWidget("list"); + aboutHScrollbar = (LTKScrollbar *)aboutWin->findWidget("hScrollbar"); + aboutVScrollbar = (LTKScrollbar *)aboutWin->findWidget("vScrollbar"); + for (i = 0; aboutWinText[i]; ++i) { + aboutList->addLine(aboutWinText[i]); + } aboutWin->layout(-1, -1, -1, -1); aboutWin->map(); } @@ -2160,6 +2347,24 @@ static void closeAboutCbk(LTKWidget *button, int n, GBool on) { aboutWin = NULL; } +static void aboutLayoutCbk(LTKWindow *winA) { + aboutHScrollbar->setLimits(0, aboutList->getMaxWidth() - 1); + aboutHScrollbar->setPos(aboutHScrollbar->getPos(), aboutList->getWidth()); + aboutVScrollbar->setLimits(0, aboutList->getNumLines() - 1); + aboutVScrollbar->setPos(aboutVScrollbar->getPos(), + aboutList->getDisplayedLines()); +} + +static void aboutScrollVertCbk(LTKWidget *scrollbar, int n, int val) { + aboutList->scrollTo(val, aboutHScrollbar->getPos()); + XSync(display, False); +} + +static void aboutScrollHorizCbk(LTKWidget *scrollbar, int n, int val) { + aboutList->scrollTo(aboutVScrollbar->getPos(), val); + XSync(display, False); +} + //------------------------------------------------------------------------ // "Find" window //------------------------------------------------------------------------ @@ -2177,17 +2382,16 @@ static void mapFindWin() { findWin = makeFindWindow(app); findWin->layout(-1, -1, -1, -1); findWin->map(); + findTextIn = (LTKTextIn *)findWin->findWidget("text"); } + findTextIn->activate(gTrue); } static void findButtonCbk(LTKWidget *button, int n, GBool on) { - LTKTextIn *textIn; - if (!doc || doc->getNumPages() == 0) return; if (n == 1) { - textIn = (LTKTextIn *)findWin->findWidget("text"); - doFind(textIn->getText()->getCString()); + doFind(findTextIn->getText()->getCString()); } else { delete findWin; findWin = NULL; @@ -2195,12 +2399,14 @@ static void findButtonCbk(LTKWidget *button, int n, GBool on) { } static void doFind(char *s) { + Unicode *u; TextOutputDev *textOut; int xMin, yMin, xMax, yMax; double xMin1, yMin1, xMax1, yMax1; int pg; GBool top; GString *s1; + int len, i; // check for zero-length string if (!s[0]) { @@ -2212,6 +2418,15 @@ static void doFind(char *s) { win->setBusyCursor(gTrue); findWin->setBusyCursor(gTrue); + // convert to Unicode +#if 1 //~ should do something more intelligent here + len = strlen(s); + u = (Unicode *)gmalloc(len * sizeof(Unicode)); + for (i = 0; i < len; ++i) { + u[i] = (Unicode)(s[i] & 0xff); + } +#endif + // search current page starting at current selection or top of page xMin = yMin = xMax = yMax = 0; if (selectXMin < selectXMax && selectYMin < selectYMax) { @@ -2221,28 +2436,31 @@ static void doFind(char *s) { } else { top = gTrue; } - if (out->findText(s, top, gTrue, &xMin, &yMin, &xMax, &yMax)) + if (out->findText(u, len, top, gTrue, &xMin, &yMin, &xMax, &yMax)) { goto found; + } // search following pages - textOut = new TextOutputDev(NULL, - useEUCJP ? textOutASCII7 : textOutLatin1, - gFalse); + textOut = new TextOutputDev(NULL, gFalse, gFalse); if (!textOut->isOk()) { delete textOut; goto done; } for (pg = page+1; pg <= doc->getNumPages(); ++pg) { doc->displayPage(textOut, pg, 72, 0, gFalse); - if (textOut->findText(s, gTrue, gTrue, &xMin1, &yMin1, &xMax1, &yMax1)) + if (textOut->findText(u, len, gTrue, gTrue, + &xMin1, &yMin1, &xMax1, &yMax1)) { goto foundPage; + } } // search previous pages for (pg = 1; pg < page; ++pg) { doc->displayPage(textOut, pg, 72, 0, gFalse); - if (textOut->findText(s, gTrue, gTrue, &xMin1, &yMin1, &xMax1, &yMax1)) + if (textOut->findText(u, len, gTrue, gTrue, + &xMin1, &yMin1, &xMax1, &yMax1)) { goto foundPage; + } } delete textOut; @@ -2250,8 +2468,9 @@ static void doFind(char *s) { if (selectXMin < selectXMax && selectYMin < selectYMax) { xMax = selectXMin; yMax = (selectYMin + selectYMax) / 2; - if (out->findText(s, gTrue, gFalse, &xMin, &yMin, &xMax, &yMax)) + if (out->findText(u, len, gTrue, gFalse, &xMin, &yMin, &xMax, &yMax)) { goto found; + } } // not found @@ -2262,8 +2481,10 @@ static void doFind(char *s) { foundPage: delete textOut; displayPage(pg, zoom, rotate, gTrue); - if (!out->findText(s, gTrue, gTrue, &xMin, &yMin, &xMax, &yMax)) - goto done; // this can happen if coalescing is bad + if (!out->findText(u, len, gTrue, gTrue, &xMin, &yMin, &xMax, &yMax)) { + // this can happen if coalescing is bad + goto done; + } // found: change the selection found: @@ -2276,6 +2497,8 @@ static void doFind(char *s) { #endif done: + gfree(u); + // reset cursors to normal win->setBusyCursor(gFalse); findWin->setBusyCursor(gFalse); diff --git a/pdf/xpdf/xpdf.ltk b/pdf/xpdf/xpdf.ltk index 91a5247d..1e210327 100644 --- a/pdf/xpdf/xpdf.ltk +++ b/pdf/xpdf/xpdf.ltk @@ -2,7 +2,7 @@ # # xpdf.ltk # -# Copyright 1996 Derek B. Noonburg +# Copyright 1996-2002 Glyph & Cog, LLC # #======================================================================== @@ -111,9 +111,9 @@ Menu(func:makeMenu title:"xpdf" n:8) { MenuItem(text:"Save as..." num:menuSavePDF select:&menuCbk) MenuItem(text:NULL) - MenuItem(text:"Rotate left" num:menuRotateLeft + MenuItem(text:"Rotate counterclockwise" num:menuRotateCCW select:&menuCbk) - MenuItem(text:"Rotate right" num:menuRotateRight + MenuItem(text:"Rotate clockwise" num:menuRotateCW select:&menuCbk) MenuItem(text:NULL) MenuItem(text:"Quit" shortcut:"Q" num:menuQuit @@ -137,8 +137,8 @@ Menu(func:makeZoomMenu title:"zoom" n:14) { MenuItem(text:"+4" num: 4 select:&zoomMenuCbk) MenuItem(text:"+5" num: 5 select:&zoomMenuCbk) MenuItem(text:NULL) - MenuItem(text:"fit page" num:100 select:&zoomMenuCbk) - MenuItem(text:"fit width" num:101 select:&zoomMenuCbk) + MenuItem(text:"fit page" shortcut:"z" num:100 select:&zoomMenuCbk) + MenuItem(text:"fit width" shortcut:"w" num:101 select:&zoomMenuCbk) } #------------------------------------------------------------------------ @@ -243,42 +243,21 @@ Window(func:makeFindWindow defWidget:"find" title:"xpdf: Find") { #------------------------------------------------------------------------ Window(func:makeAboutWindow defWidget:"close" title:"About xpdf") { - Box(x:1 y:2) { - Box(x:1 y:11 left:2 right:2 top:2 bottom:2 sunken) { - Box1(bottom:0) { - Label(text:"xpdf" - font:"-*-times-bold-i-normal-*-24-*-*-*-*-*-*-*") - } - Box1(bottom:12) { - Label(text:["Version " xpdfVersion]) - } - Box1(bottom:0) { - Label(text:xpdfCopyright) - } - Box1(bottom:12) { - Label(text:"derekn@foolabs.com") - } - Box1(bottom:2) { - Label(text:["Supports PDF version " supportedPDFVersionStr "."]) - } - Box1(bottom:0) { - Label(text:"The PDF data structures, operators, and specification") - } - Box1(bottom:12) { - Label(text:"are copyright 1995 Adobe Systems Inc.") - } - Box1(bottom:0) { - Label(text:"Mouse button 1: select text / follow link") - } - Box1(bottom:0) { - Label(text:"Mouse button 2: pan window") + Box(x:1 y:2 xfill:1 yfill:1) { + Box(x:2 y:2 xfill:1 yfill:1) { + Box1(xfill:1 yfill:1 sunken) { + List(name:"list" w:400 h:30 + font:"-*-courier-medium-r-normal-*-12-*-*-*-*-*-*-*") } - Box1(bottom:12) { - Label(text:"Mouse button 3: menu") + Box1(yfill:1) { + Scrollbar(name:"vScrollbar" vert min:0 max:100 + move:&aboutScrollVertCbk) } - Box1(bottom:12) { - Label(text:"http://www.foolabs.com/xpdf/") + Box1(xfill:1) { + Scrollbar(name:"hScrollbar" horiz min:0 max:100 + move:&aboutScrollHorizCbk) } + Box1() { Empty() } } Box(x:2 y:1) { Box1(xfill:1) { Empty() } diff --git a/pdf/xpdf/xpdfconfig.h b/pdf/xpdf/xpdfconfig.h index eb56cb4d..c814b885 100644 --- a/pdf/xpdf/xpdfconfig.h +++ b/pdf/xpdf/xpdfconfig.h @@ -2,7 +2,7 @@ // // config.h // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2002 Glyph & Cog, LLC // //======================================================================== @@ -10,18 +10,23 @@ #define CONFIG_H //------------------------------------------------------------------------ -// general constants +// version //------------------------------------------------------------------------ // xpdf version -#define xpdfVersion "0.92.1" + +#define xpdfVersion "1.01.1" // supported PDF version -#define supportedPDFVersionStr "1.3" -#define supportedPDFVersionNum 1.3 +#define supportedPDFVersionStr "1.4" +#define supportedPDFVersionNum 1.4 // copyright notice -#define xpdfCopyright "Copyright 1996-2000 Derek B. Noonburg" +#define xpdfCopyright "Copyright 1996-2002 Glyph & Cog, LLC" + +//------------------------------------------------------------------------ +// paper size +//------------------------------------------------------------------------ // default paper size (in points) for PostScript output #ifdef A4_PAPER @@ -32,11 +37,24 @@ #define defPaperHeight 792 #endif -// config file name -#if defined(VMS) -#define xpdfConfigFile "xpdfrc" +//------------------------------------------------------------------------ +// config file (xpdfrc) path +//------------------------------------------------------------------------ + +// user config file name, relative to the user's home directory +#if defined(VMS) || (defined(WIN32) && !defined(__CYGWIN32__)) +#define xpdfUserConfigFile "xpdfrc" #else -#define xpdfConfigFile ".xpdfrc" +#define xpdfUserConfigFile ".xpdfrc" +#endif + +// system config file name (set via the configure script) +#ifdef SYSTEM_XPDFRC +#define xpdfSysConfigFile SYSTEM_XPDFRC +#else +// under Windows, we get the directory with the executable and then +// append this file name +#define xpdfSysConfigFile "xpdfrc" #endif //------------------------------------------------------------------------ @@ -46,14 +64,11 @@ // default maximum size of color cube to allocate #define defaultRGBCube 5 -// number of X server fonts to cache -#define serverFontCacheSize 16 - -// number of Type 1 (t1lib) fonts to cache -#define t1FontCacheSize 32 +// number of fonts (combined t1lib, FreeType, X server) to cache +#define xOutFontCacheSize 64 -// number of TrueType (FreeType) fonts to cache -#define ttFontCacheSize 32 +// number of Type 3 fonts to cache +#define xOutT3FontCacheSize 8 //------------------------------------------------------------------------ // popen @@ -64,7 +79,7 @@ #define pclose _pclose #endif -#if defined(VMS) || defined(VMCMS) || defined(DOS) || defined(OS2) || defined(WIN32) || defined(__DJGPP__) || defined(__CYGWIN32) || defined(MACOS) +#if defined(VMS) || defined(VMCMS) || defined(DOS) || defined(OS2) || defined(__EMX__) || defined(WIN32) || defined(__DJGPP__) || defined(__CYGWIN32__) || defined(MACOS) #define POPEN_READ_MODE "rb" #else #define POPEN_READ_MODE "r" -- 2.43.5