--- /dev/null
+--- /dev/null
++++ b/libiconv-1.14/lib/ansi_z39_47.h
+@@ -0,0 +1,198 @@
++/*
++ * Copyright (C) 1999-2002 Free Software Foundation, Inc.
++ * This file is part of the GNU LIBICONV Library.
++ *
++ * The GNU LIBICONV Library is free software; you can redistribute it
++ * and/or modify it under the terms of the GNU Library General Public
++ * License as published by the Free Software Foundation; either version 2
++ * of the License, or (at your option) any later version.
++ *
++ * The GNU LIBICONV Library is distributed in the hope that it will be
++ * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Library General Public License for more details.
++ *
++ * You should have received a copy of the GNU Library General Public
++ * License along with the GNU LIBICONV Library; see the file COPYING.LIB.
++ * If not, write to the Free Software Foundation, Inc., 59 Temple Place -
++ * Suite 330, Boston, MA 02111-1307, USA.
++ */
++
++/*
++ * ANSI_Z39.47
++ */
++
++#include "ANSI_Z39.47-tables.h"
++
++/* Omit first half of table: assume identity mapping (ASCII) */
++static const unsigned short ansi_z39_47_2uni[128] = TABLE_TO_UCS4_BASIC;
++
++/* The outer array range runs from 0xe0 to 0xfe, the inner range from 0x20
++ to 0x7f. */
++static const unsigned short ansi_z39_47_2uni_comb[31][96] =
++{
++ /* 0xe0 (hook above) */ TABLE_TO_UCS4_COMBINING_E0,
++ /* 0xe1 (grave) */ TABLE_TO_UCS4_COMBINING_E1,
++ /* 0xe2 (acute) */ TABLE_TO_UCS4_COMBINING_E2,
++ /* 0xe3 (circumflex) */ TABLE_TO_UCS4_COMBINING_E3,
++ /* 0xe4 (tilde) */ TABLE_TO_UCS4_COMBINING_E4,
++ /* 0xe5 (macron) */ TABLE_TO_UCS4_COMBINING_E5,
++ /* 0xe6 (breve) */ TABLE_TO_UCS4_COMBINING_E6,
++ /* 0xe7 (dot above) */ TABLE_TO_UCS4_COMBINING_E7,
++ /* 0xe8 (umlaut, diaeresis) */ TABLE_TO_UCS4_COMBINING_E8,
++ /* 0xe9 (caron, hacek) */ TABLE_TO_UCS4_COMBINING_E9,
++ /* 0xea (ring above) */ TABLE_TO_UCS4_COMBINING_EA,
++ /* 0xeb (ligature, left half) */ TABLE_TO_UCS4_COMBINING_EB,
++ /* 0xec (ligature, right half) */ TABLE_TO_UCS4_COMBINING_EC,
++ /* 0xed (comma above right) */ TABLE_TO_UCS4_COMBINING_ED,
++ /* 0xee (double acute) */ TABLE_TO_UCS4_COMBINING_EE,
++ /* 0xef (candrabindu) */ TABLE_TO_UCS4_COMBINING_EF,
++ /* 0xf0 (cedilla) */ TABLE_TO_UCS4_COMBINING_F0,
++ /* 0xf1 (ogonek, right hook) */ TABLE_TO_UCS4_COMBINING_F1,
++ /* 0xf2 (dot below) */ TABLE_TO_UCS4_COMBINING_F2,
++ /* 0xf3 (double dot below) */ TABLE_TO_UCS4_COMBINING_F3,
++ /* 0xf4 (ring below) */ TABLE_TO_UCS4_COMBINING_F4,
++ /* 0xf5 (double low line) */ TABLE_TO_UCS4_COMBINING_F5,
++ /* 0xf6 (line below) */ TABLE_TO_UCS4_COMBINING_F6,
++ /* 0xf7 (comma below, left hook) */ TABLE_TO_UCS4_COMBINING_F7,
++ /* 0xf8 (left half ring below, right cedilla) */ TABLE_TO_UCS4_COMBINING_F8,
++ /* 0xf9 (breve below, half circle below) */ TABLE_TO_UCS4_COMBINING_F9,
++ /* 0xfa (double tilde, left half) */ TABLE_TO_UCS4_COMBINING_FA,
++ /* 0xfb (double tilde, right half) */ TABLE_TO_UCS4_COMBINING_FB,
++ /* 0xfc */ TABLE_TO_UCS4_COMBINING_FC,
++ /* 0xfd */ TABLE_TO_UCS4_COMBINING_FD,
++ /* 0xfe (comma above, high centered comma) */ TABLE_TO_UCS4_COMBINING_FE,
++};
++
++#define BASE_PASSED 0x10000
++
++static int
++ansi_z39_47_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
++{
++ unsigned char c = *s;
++ ucs4_t last_wc = conv->istate;
++ int retval = 1;
++ if (last_wc & BASE_PASSED) {
++ /* base character was already output, reset the state and output the
++ diacritical mark */
++ unsigned char dc = (unsigned char)(last_wc & ~BASE_PASSED);
++ *pwc = ansi_z39_47_2uni[dc-0x80];
++ conv->istate = 0;
++ return 1;
++ }
++ if (last_wc) {
++ conv->istate |= BASE_PASSED;
++ retval = 0;
++ }
++ if (c < 0x80) {
++ if (last_wc && c >= 0x20) {
++ /* Check if we can combine the character with the diacritical mark */
++ unsigned char dc = (unsigned char)(last_wc & ~BASE_PASSED);
++ unsigned short wc = ansi_z39_47_2uni_comb[dc-0xe0][c-0x20];
++ if (wc != 0x0000) {
++ *pwc = (ucs4_t) wc;
++ conv->istate = 0;
++ return 1;
++ }
++ }
++ *pwc = (ucs4_t) c;
++ return retval;
++ }
++ else if (c < 0xe0) {
++ unsigned short wc = ansi_z39_47_2uni[c-0x80];
++ if (wc != 0x0000) {
++ *pwc = (ucs4_t) wc;
++ return retval;
++ }
++ }
++ else {
++ /* The range from 0xe0 to 0xfe are diacritical marks.
++ Note that in ANSEL they come *before* the base characters, in Unicode,
++ they come *after*, so we have to buffer them ... */
++ conv->istate = (state_t)c;
++ return RET_TOOFEW(1);
++ }
++ return RET_ILSEQ;
++}
++
++static const unsigned char ansi_z39_47_page080[][2] = TABLE_FROM_UCS4_BASIC;
++static const unsigned char ansi_z39_47_page01a[][2] = TABLE_FROM_UCS4_PAGE_01A;
++static const unsigned char ansi_z39_47_page022[][2] = TABLE_FROM_UCS4_PAGE_022;
++static const unsigned char ansi_z39_47_page02b[][2] = TABLE_FROM_UCS4_PAGE_02B;
++static const unsigned char ansi_z39_47_page030[][2] = TABLE_FROM_UCS4_PAGE_030;
++static const unsigned char ansi_z39_47_page1ea[][2] = TABLE_FROM_UCS4_PAGE_1EA;
++static const unsigned char ansi_z39_47_page200[][2] = TABLE_FROM_UCS4_PAGE_200;
++static const unsigned char ansi_z39_47_page211[][2] = TABLE_FROM_UCS4_PAGE_211;
++static const unsigned char ansi_z39_47_page266[][2] = TABLE_FROM_UCS4_PAGE_266;
++static const unsigned char ansi_z39_47_pagefe2[][2] = TABLE_FROM_UCS4_PAGE_FE2;
++
++static int
++ansi_z39_47_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
++{
++ const unsigned char* ch = NULL;
++ int output = 0;
++
++#define OUTPUT(c) ++output; if (n < output) return RET_TOOSMALL; *(r++) = (c);
++
++ /* Since in UTF-8 diacritical marks come after the base character and in
++ ANSEL before, we need to buffer possible base characters (0x20 to 0x7f)
++ to put the diacritical mark before it if there is one following */
++ if (wc < 0x0080) {
++ if (conv->ostate) {
++ OUTPUT(conv->ostate);
++ conv->ostate = 0;
++ }
++ if (wc >= 0x0020) {
++ conv->ostate = (state_t) wc;
++ }
++ else {
++ OUTPUT(wc);
++ }
++ return output;
++ }
++ else if (wc >= 0x0080 && wc < 0x017f)
++ ch = ansi_z39_47_page080[wc-0x0080];
++ else if (wc >= 0x01a0 && wc < 0x01b4)
++ ch = ansi_z39_47_page01a[wc-0x01a0];
++ else if (wc >= 0x0220 && wc < 0x0234)
++ ch = ansi_z39_47_page022[wc-0x0220];
++ else if (wc >= 0x02b0 && wc < 0x02e2)
++ ch = ansi_z39_47_page02b[wc-0x02b0];
++ else if (wc >= 0x0300 && wc < 0x0337)
++ ch = ansi_z39_47_page030[wc-0x0300];
++ else if (wc >= 0x1ea0 && wc < 0x1efa)
++ ch = ansi_z39_47_page1ea[wc-0x1ea0];
++ else if (wc >= 0x2000 && wc < 0x200f)
++ ch = ansi_z39_47_page200[wc-0x2000];
++ else if (wc >= 0x2110 && wc < 0x211a)
++ ch = ansi_z39_47_page211[wc-0x2110];
++ else if (wc >= 0x2660 && wc < 0x2674)
++ ch = ansi_z39_47_page266[wc-0x2660];
++ else if (wc >= 0xfe20 && wc < 0xfe25)
++ ch = ansi_z39_47_pagefe2[wc-0xfe20];
++ if (ch && ch[0] != 0) {
++ if (ch[1] == 0 && ch[0] >= 0xe0 && ch[0] <= 0xfe) {
++ /* Diacritical mark following a base character, buffered in ostate */
++ /* Output diacritical mark, then base character */
++ if (conv->ostate) {
++ OUTPUT(ch[0]);
++ OUTPUT(conv->ostate);
++ conv->ostate = 0;
++ }
++ else
++ return RET_ILUNI;
++ }
++ else {
++ if (conv->ostate) {
++ OUTPUT(conv->ostate);
++ conv->ostate = 0;
++ }
++ OUTPUT(ch[0]);
++ }
++ if (ch[1] != 0) {
++ OUTPUT(ch[1]);
++ }
++ return output;
++ }
++ return RET_ILUNI;
++}
+--- /dev/null
++++ b/libiconv-1.14/lib/ANSI_Z39.47-tables.h
+@@ -0,0 +1,509 @@
++/* Conversion for ANSI_Z39.47 aka ANSEL.
++ Copyright (C) 2001 The Genes Development Team
++ This file is part of the Gedcom parser library.
++ Contributed by Peter Verthez <Peter.Verthez@advalvas.be>, 2001.
++
++ The Gedcom parser library is free software; you can redistribute it
++ and/or modify it under the terms of the GNU Lesser General Public
++ License as published by the Free Software Foundation; either
++ version 2.1 of the License, or (at your option) any later version.
++
++ The Gedcom parser library is distributed in the hope that it will be
++ useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ Lesser General Public License for more details.
++
++ You should have received a copy of the GNU Lesser General Public
++ License along with the Gedcom parser library; if not, write to the
++ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++ 02111-1307 USA. */
++
++/* $Id$ */
++/* $Name$ */
++
++/* Generic conversion to and from ANSI Z39.47 (also known as ANSEL)
++ Data coming from:
++ http://lcweb.loc.gov/marc/specifications/speccharlatin.html
++
++ Note: in ANSEL, diacritical marks come *before* the base character;
++ in Unicode, they come *after*...
++*/
++
++/*****************************************************************************/
++/* CONVERSION FROM ANSEL TO UCS4 */
++/*****************************************************************************/
++
++/* Omit first half of table: assume identity mapping (ASCII) */
++#define TABLE_TO_UCS4_BASIC \
++{ \
++ /* 0x80 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x88 */ 0x0088, 0x0089, 0x0000, 0x0000, 0x0000, 0x200d, 0x200c, 0x0000, \
++ /* 0x90 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x98 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0xa0 */ 0x0000, 0x0141, 0x00d8, 0x0110, 0x00de, 0x00c6, 0x0152, 0x02b9, \
++ /* 0xa8 */ 0x00b7, 0x266d, 0x00ae, 0x00b1, 0x01a0, 0x01af, 0x02be, 0x0000, \
++ /* 0xb0 */ 0x02bb, 0x0142, 0x00f8, 0x0111, 0x00fe, 0x00e6, 0x0153, 0x02ba, \
++ /* 0xb8 */ 0x0131, 0x00a3, 0x00f0, 0x0000, 0x01a1, 0x01b0, 0x0000, 0x0000, \
++ /* 0xc0 */ 0x00b0, 0x2113, 0x2117, 0x00a9, 0x266f, 0x00bf, 0x00a1, 0x0000, \
++ /* 0xc8 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00df, \
++ /* 0xd0 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0xd8 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0xe0 */ 0x0309, 0x0300, 0x0301, 0x0302, 0x0303, 0x0304, 0x0306, 0x0307, \
++ /* 0xe8 */ 0x0308, 0x030c, 0x030a, 0xfe20, 0xfe21, 0x0315, 0x030b, 0x0310, \
++ /* 0xf0 */ 0x0327, 0x0328, 0x0323, 0x0324, 0x0325, 0x0333, 0x0332, 0x0326, \
++ /* 0xf8 */ 0x031c, 0x032e, 0xfe22, 0xfe23, 0x0000, 0x0000, 0x0313, 0x0000 \
++}
++
++/* 0xe0 (hook above) */
++#define TABLE_TO_UCS4_COMBINING_E0 \
++{ \
++ /* 0x20 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x40 */ 0x0000, 0x1ea2, 0x0000, 0x0000, 0x0000, 0x1eba, 0x0000, 0x0000, \
++ /* 0x48 */ 0x0000, 0x1ec8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1ece, \
++ /* 0x50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1ee6, 0x0000, 0x0000, \
++ /* 0x58 */ 0x0000, 0x1ef6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x60 */ 0x0000, 0x1ea3, 0x0000, 0x0000, 0x0000, 0x1ebb, 0x0000, 0x0000, \
++ /* 0x68 */ 0x0000, 0x1ec9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1ecf, \
++ /* 0x70 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1ee7, 0x0000, 0x0000, \
++ /* 0x78 */ 0x0000, 0x1ef7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 \
++}
++
++/* 0xe1 (grave) */
++#define TABLE_TO_UCS4_COMBINING_E1 \
++{ \
++ /* 0x20 */ 0x0060, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x40 */ 0x0000, 0x00c0, 0x0000, 0x0000, 0x0000, 0x00c8, 0x0000, 0x0000, \
++ /* 0x48 */ 0x0000, 0x00cc, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00d2, \
++ /* 0x50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00d9, 0x0000, 0x0000, \
++ /* 0x58 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x60 */ 0x0000, 0x00e0, 0x0000, 0x0000, 0x0000, 0x00e8, 0x0000, 0x0000, \
++ /* 0x68 */ 0x0000, 0x00ec, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00f2, \
++ /* 0x70 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00f9, 0x0000, 0x0000, \
++ /* 0x78 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 \
++}
++
++/* 0xe2 (acute) */
++#define TABLE_TO_UCS4_COMBINING_E2 \
++{ \
++ /* 0x20 */ 0x00b4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x40 */ 0x0000, 0x00c1, 0x0000, 0x0106, 0x0000, 0x00c9, 0x0000, 0x0000, \
++ /* 0x48 */ 0x0000, 0x00cd, 0x0000, 0x0000, 0x0139, 0x0000, 0x0143, 0x00d3, \
++ /* 0x50 */ 0x0000, 0x0000, 0x0154, 0x015a, 0x0000, 0x00da, 0x0000, 0x0000, \
++ /* 0x58 */ 0x0000, 0x00dd, 0x0179, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x60 */ 0x0000, 0x00e1, 0x0000, 0x0107, 0x0000, 0x00e9, 0x0000, 0x0000, \
++ /* 0x68 */ 0x0000, 0x00ed, 0x0000, 0x0000, 0x013a, 0x0000, 0x0144, 0x00f3, \
++ /* 0x70 */ 0x0000, 0x0000, 0x0155, 0x015b, 0x0000, 0x00fa, 0x0000, 0x0000, \
++ /* 0x78 */ 0x0000, 0x00fd, 0x017a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 \
++}
++
++/* 0xe3 (circumflex) */
++#define TABLE_TO_UCS4_COMBINING_E3 \
++{ \
++ /* 0x20 */ 0x005e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x40 */ 0x0000, 0x00c2, 0x0000, 0x0108, 0x0000, 0x00ca, 0x0000, 0x011c, \
++ /* 0x48 */ 0x0124, 0x00ce, 0x0134, 0x0000, 0x0000, 0x0000, 0x0000, 0x00d4, \
++ /* 0x50 */ 0x0000, 0x0000, 0x0000, 0x015c, 0x0000, 0x00db, 0x0000, 0x0174, \
++ /* 0x58 */ 0x0000, 0x0176, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x60 */ 0x0000, 0x00e2, 0x0000, 0x0109, 0x0000, 0x00ea, 0x0000, 0x011d, \
++ /* 0x68 */ 0x0125, 0x00ee, 0x0135, 0x0000, 0x0000, 0x0000, 0x0000, 0x00f4, \
++ /* 0x70 */ 0x0000, 0x0000, 0x0000, 0x015d, 0x0000, 0x00fb, 0x0000, 0x0175, \
++ /* 0x78 */ 0x0000, 0x0177, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 \
++}
++
++/* 0xe4 (tilde) */
++#define TABLE_TO_UCS4_COMBINING_E4 \
++{ \
++ /* 0x20 */ 0x007e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x40 */ 0x0000, 0x00c3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x48 */ 0x0000, 0x0128, 0x0000, 0x0000, 0x0000, 0x0000, 0x00d1, 0x00d5, \
++ /* 0x50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0168, 0x0000, 0x0000, \
++ /* 0x58 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x60 */ 0x0000, 0x00e3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x68 */ 0x0000, 0x0129, 0x0000, 0x0000, 0x0000, 0x0000, 0x00f1, 0x00f5, \
++ /* 0x70 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0169, 0x0000, 0x0000, \
++ /* 0x78 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 \
++}
++
++/* 0xe5 (macron) */
++#define TABLE_TO_UCS4_COMBINING_E5 \
++{ \
++ /* 0x20 */ 0x00af, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x40 */ 0x0000, 0x0100, 0x0000, 0x0000, 0x0000, 0x0112, 0x0000, 0x0000, \
++ /* 0x48 */ 0x0000, 0x012a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x014c, \
++ /* 0x50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x016a, 0x0000, 0x0000, \
++ /* 0x58 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x60 */ 0x0000, 0x0101, 0x0000, 0x0000, 0x0000, 0x0113, 0x0000, 0x0000, \
++ /* 0x68 */ 0x0000, 0x012b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x014d, \
++ /* 0x70 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x016b, 0x0000, 0x0000, \
++ /* 0x78 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 \
++}
++
++/* 0xe6 (breve) */
++#define TABLE_TO_UCS4_COMBINING_E6 \
++{ \
++ /* 0x20 */ 0x02d8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x40 */ 0x0000, 0x0102, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x011e, \
++ /* 0x48 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x016c, 0x0000, 0x0000, \
++ /* 0x58 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x60 */ 0x0000, 0x0103, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x011f, \
++ /* 0x68 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x70 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x016d, 0x0000, 0x0000, \
++ /* 0x78 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 \
++}
++
++/* 0xe7 (dot above) */
++#define TABLE_TO_UCS4_COMBINING_E7 \
++{ \
++ /* 0x20 */ 0x02d9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x40 */ 0x0000, 0x0226, 0x0000, 0x010a, 0x0000, 0x0116, 0x0000, 0x0120, \
++ /* 0x48 */ 0x0000, 0x0130, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x022e, \
++ /* 0x50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x58 */ 0x0000, 0x0000, 0x017b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x60 */ 0x0000, 0x0227, 0x0000, 0x010b, 0x0000, 0x0117, 0x0000, 0x0121, \
++ /* 0x68 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x022f, \
++ /* 0x70 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x78 */ 0x0000, 0x0000, 0x017c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 \
++}
++
++/* 0xe8 (umlaut, diaeresis) */
++#define TABLE_TO_UCS4_COMBINING_E8 \
++{ \
++ /* 0x20 */ 0x00a8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x40 */ 0x0000, 0x00c4, 0x0000, 0x0000, 0x0000, 0x00cb, 0x0000, 0x0000, \
++ /* 0x48 */ 0x0000, 0x00cf, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00d6, \
++ /* 0x50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00dc, 0x0000, 0x0000, \
++ /* 0x58 */ 0x0000, 0x0178, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x60 */ 0x0000, 0x00e4, 0x0000, 0x0000, 0x0000, 0x00eb, 0x0000, 0x0000, \
++ /* 0x68 */ 0x0000, 0x00ef, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00f6, \
++ /* 0x70 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00fc, 0x0000, 0x0000, \
++ /* 0x78 */ 0x0000, 0x00ff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 \
++}
++
++/* 0xe9 (caron, hacek) */
++#define TABLE_TO_UCS4_COMBINING_E9 \
++{ \
++ /* 0x20 */ 0x02c7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x40 */ 0x0000, 0x0000, 0x0000, 0x010c, 0x010e, 0x011a, 0x0000, 0x0000, \
++ /* 0x48 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x013d, 0x0000, 0x0147, 0x0000, \
++ /* 0x50 */ 0x0000, 0x0000, 0x0158, 0x0160, 0x0164, 0x0000, 0x0000, 0x0000, \
++ /* 0x58 */ 0x0000, 0x0000, 0x017d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x60 */ 0x0000, 0x0000, 0x0000, 0x010d, 0x010f, 0x011b, 0x0000, 0x0000, \
++ /* 0x68 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x013e, 0x0000, 0x0148, 0x0000, \
++ /* 0x70 */ 0x0000, 0x0000, 0x0159, 0x0161, 0x0165, 0x0000, 0x0000, 0x0000, \
++ /* 0x78 */ 0x0000, 0x0000, 0x017e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 \
++}
++
++/* 0xea (ring above) */
++#define TABLE_TO_UCS4_COMBINING_EA \
++{ \
++ /* 0x20 */ 0x02da, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x40 */ 0x0000, 0x00c5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x48 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x016e, 0x0000, 0x0000, \
++ /* 0x58 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x60 */ 0x0000, 0x00e5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x68 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x70 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x016f, 0x0000, 0x0000, \
++ /* 0x78 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 \
++}
++
++/* 0xeb (ligature, left half) */
++#define TABLE_TO_UCS4_COMBINING_EB { 0x0000, }
++
++/* 0xec (ligature, right half) */
++#define TABLE_TO_UCS4_COMBINING_EC { 0x0000, }
++
++/* 0xed (comma above right) */
++#define TABLE_TO_UCS4_COMBINING_ED { 0x0000, }
++
++/* 0xee (double acute) */
++#define TABLE_TO_UCS4_COMBINING_EE \
++{ \
++ /* 0x20 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x40 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x48 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0150, \
++ /* 0x50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0170, 0x0000, 0x0000, \
++ /* 0x58 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x60 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x68 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0151, \
++ /* 0x70 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0171, 0x0000, 0x0000, \
++ /* 0x78 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 \
++}
++
++/* 0xef (candrabindu) */
++#define TABLE_TO_UCS4_COMBINING_EF { 0x0000, }
++
++/* 0xf0 (cedilla) */
++#define TABLE_TO_UCS4_COMBINING_F0 \
++{ \
++ /* 0x20 */ 0x00b8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x40 */ 0x0000, 0x0000, 0x0000, 0x00c7, 0x0000, 0x0000, 0x0000, 0x0122, \
++ /* 0x48 */ 0x0000, 0x0000, 0x0000, 0x0136, 0x013b, 0x0000, 0x0145, 0x0000, \
++ /* 0x50 */ 0x0000, 0x0000, 0x0156, 0x015e, 0x0162, 0x0000, 0x0000, 0x0000, \
++ /* 0x58 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x60 */ 0x0000, 0x0000, 0x0000, 0x00e7, 0x0000, 0x0000, 0x0000, 0x0123, \
++ /* 0x68 */ 0x0000, 0x0000, 0x0000, 0x0137, 0x013c, 0x0000, 0x0146, 0x0000, \
++ /* 0x70 */ 0x0000, 0x0000, 0x0157, 0x015f, 0x0163, 0x0000, 0x0000, 0x0000, \
++ /* 0x78 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 \
++}
++
++/* 0xf1 (ogonek, right hook) */
++#define TABLE_TO_UCS4_COMBINING_F1 \
++{ \
++ /* 0x20 */ 0x02db, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x28 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x30 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x38 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x40 */ 0x0000, 0x0104, 0x0000, 0x0000, 0x0000, 0x0118, 0x0000, 0x0000, \
++ /* 0x48 */ 0x0000, 0x012e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x50 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0172, 0x0000, 0x0000, \
++ /* 0x58 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x60 */ 0x0000, 0x0105, 0x0000, 0x0000, 0x0000, 0x0119, 0x0000, 0x0000, \
++ /* 0x68 */ 0x0000, 0x012f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, \
++ /* 0x70 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0173, 0x0000, 0x0000, \
++ /* 0x78 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 \
++}
++
++/* 0xf2 (dot below) */
++#define TABLE_TO_UCS4_COMBINING_F2 { 0x0000, }
++
++/* 0xf3 (double dot below) */
++#define TABLE_TO_UCS4_COMBINING_F3 { 0x0000, }
++
++/* 0xf4 (ring below) */
++#define TABLE_TO_UCS4_COMBINING_F4 { 0x0000, }
++
++/* 0xf5 (double low line) */
++#define TABLE_TO_UCS4_COMBINING_F5 { 0x0000, }
++
++/* 0xf6 (line below) */
++#define TABLE_TO_UCS4_COMBINING_F6 { 0x0000, }
++
++/* 0xf7 (comma below, left hook) */
++#define TABLE_TO_UCS4_COMBINING_F7 { 0x0000, }
++
++/* 0xf8 (left half ring below, right cedilla) */
++#define TABLE_TO_UCS4_COMBINING_F8 { 0x0000, }
++
++/* 0xf9 (breve below, half circle below) */
++#define TABLE_TO_UCS4_COMBINING_F9 { 0x0000, }
++
++/* 0xfa (double tilde, left half) */
++#define TABLE_TO_UCS4_COMBINING_FA { 0x0000, }
++
++/* 0xfb (double tilde, right half) */
++#define TABLE_TO_UCS4_COMBINING_FB { 0x0000, }
++
++/* 0xfc */
++#define TABLE_TO_UCS4_COMBINING_FC { 0x0000, }
++
++/* 0xfd */
++#define TABLE_TO_UCS4_COMBINING_FD { 0x0000, }
++
++/* 0xfe (comma above, high centered comma) */
++#define TABLE_TO_UCS4_COMBINING_FE { 0x0000, }
++
++/*****************************************************************************/
++/* CONVERSION FROM UCS4 TO ANSEL */
++/*****************************************************************************/
++
++/* Omit first part of table: assume identity mapping (ASCII) */
++#define TABLE_FROM_UCS4_BASIC \
++{ \
++ /* 0x0080 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x0085 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x88\x00", "\x89\x00", \
++ /* 0x008a */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x008f */ "\x00\x00", \
++ /* 0x0090 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x0095 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x009a */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x009f */ "\x00\x00", \
++ /* 0x00a0 */ "\x00\x00", "\xc6\x00", "\x00\x00", "\xb9\x00", "\x00\x00", \
++ /* 0x00a5 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x20", "\xc3\x00", \
++ /* 0x00aa */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\xaa\x00", \
++ /* 0x00af */ "\x00\x20", \
++ /* 0x00b0 */ "\xc0\x00", "\xab\x00", "\x00\x00", "\x00\x00", "\x00\x20", \
++ /* 0x00b5 */ "\x00\x00", "\x00\x00", "\xa8\x00", "\x00\x00", "\x00\x00", \
++ /* 0x00ba */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x00bf */ "\xc5\x00", \
++ /* 0x00c0 */ "\xe1\x41", "\xe2\x41", "\xe3\x41", "\xe4\x41", "\xe8\x41", \
++ /* 0x00c5 */ "\xea\x41", "\xa5\x00", "\xf0\x43", "\xe1\x45", "\xe2\x45", \
++ /* 0x00ca */ "\xe3\x45", "\xe8\x45", "\xe1\x49", "\xe2\x49", "\xe3\x49", \
++ /* 0x00cf */ "\xe8\x49", \
++ /* 0x00d0 */ "\xa3\x00", "\xe4\x4e", "\xe1\x4f", "\xe2\x4f", "\xe3\x4f", \
++ /* 0x00d5 */ "\xe4\x4f", "\xe8\x4f", "\x00\x00", "\xa2\x00", "\xe1\x55", \
++ /* 0x00da */ "\xe2\x55", "\xe3\x55", "\xe8\x55", "\xe2\x59", "\xa4\x00", \
++ /* 0x00df */ "\xcf\x00", \
++ /* 0x00e0 */ "\xe1\x61", "\xe2\x61", "\xe3\x61", "\xe4\x61", "\xe8\x61", \
++ /* 0x00e5 */ "\xea\x61", "\xb5\x00", "\xf0\x63", "\xe1\x65", "\xe2\x65", \
++ /* 0x00ea */ "\xe3\x65", "\xe8\x65", "\xe1\x69", "\xe2\x69", "\xe3\x69", \
++ /* 0x00ef */ "\xe8\x69", \
++ /* 0x00f0 */ "\xba\x00", "\xe4\x6e", "\xe1\x6f", "\xe2\x6f", "\xe3\x6f", \
++ /* 0x00f5 */ "\xe4\x6f", "\xe8\x6f", "\x00\x00", "\xb2\x00", "\xe1\x75", \
++ /* 0x00fa */ "\xe2\x75", "\xe3\x75", "\xe8\x75", "\xe2\x79", "\xb4\x00", \
++ /* 0x00ff */ "\xe8\x79", \
++ /* 0x0100 */ "\xe5\x41", "\xe5\x61", "\xe6\x41", "\xe6\x61", "\xf1\x41", \
++ /* 0x0105 */ "\xf1\x61", "\xe2\x43", "\xe2\x63", "\xe3\x43", "\xe3\x63", \
++ /* 0x010a */ "\xe7\x43", "\xe7\x63", "\xe9\x43", "\xe9\x63", "\xe9\x44", \
++ /* 0x010f */ "\xe9\x64", \
++ /* 0x0110 */ "\xa3\x00", "\xb3\x00", "\xe5\x45", "\xe5\x65", "\xe6\x65", \
++ /* 0x0115 */ "\xe6\x65", "\xe7\x45", "\xe7\x65", "\xf1\x45", "\xf1\x65", \
++ /* 0x011a */ "\xe9\x45", "\xe9\x65", "\xe3\x47", "\xe3\x67", "\xe6\x47", \
++ /* 0x011f */ "\xe6\x67", \
++ /* 0x0120 */ "\xe7\x47", "\xe7\x67", "\xf0\x47", "\xf0\x67", "\xe3\x48", \
++ /* 0x0125 */ "\xe3\x68", "\x00\x00", "\xe5\x68", "\xe4\x49", "\xe4\x69", \
++ /* 0x012a */ "\xe5\x49", "\xe5\x69", "\xe6\x49", "\xe6\x69", "\xf1\x49", \
++ /* 0x012f */ "\xf1\x69", \
++ /* 0x0130 */ "\xe7\x49", "\xb8\x00", "\x00\x00", "\x00\x00", "\xe3\x4a", \
++ /* 0x0135 */ "\xe3\x6a", "\xf0\x4b", "\xf0\x6b", "\x00\x00", "\xe2\x4c", \
++ /* 0x013a */ "\xe2\x6c", "\xf0\x4c", "\xf0\x6c", "\xe9\x4c", "\xe9\x6c", \
++ /* 0x013f */ "\xe7\x4c", \
++ /* 0x0140 */ "\xe7\x6c", "\xa1\x00", "\xb1\x00", "\xe2\x4e", "\xe2\x6e", \
++ /* 0x0145 */ "\xf0\x4e", "\xf0\x6e", "\xe9\x4e", "\xe9\x6e", "\x00\x00", \
++ /* 0x014a */ "\x00\x00", "\x00\x00", "\xe5\x4f", "\xe5\x6f", "\xe6\x4f", \
++ /* 0x014f */ "\xe6\x6f", \
++ /* 0x0150 */ "\xee\x4f", "\xee\x6f", "\xa6\x00", "\xb6\x00", "\xe2\x52", \
++ /* 0x0155 */ "\xe2\x72", "\xf0\x52", "\xf0\x72", "\xe9\x52", "\xe9\x72", \
++ /* 0x015a */ "\xe2\x53", "\xe2\x73", "\xe3\x53", "\xe3\x73", "\xf0\x53", \
++ /* 0x015f */ "\xf0\x73", \
++ /* 0x0160 */ "\xe9\x53", "\xe9\x73", "\xf0\x54", "\xf0\x74", "\xe9\x54", \
++ /* 0x0165 */ "\xe9\x74", "\x00\x00", "\x00\x00", "\xe4\x55", "\xe4\x75", \
++ /* 0x016a */ "\xe5\x55", "\xe5\x75", "\xe6\x55", "\xe6\x75", "\xea\x55", \
++ /* 0x016f */ "\xea\x75", \
++ /* 0x0170 */ "\xee\x55", "\xee\x75", "\xf1\x55", "\xf1\x75", "\xe3\x57", \
++ /* 0x0175 */ "\xe3\x77", "\xe3\x59", "\xe3\x79", "\xe8\x59", "\xe2\x5a", \
++ /* 0x017a */ "\xe2\x7a", "\xe7\x5a", "\xe7\x7a", "\xe9\x5a", "\xe9\x7a" \
++}
++
++#define TABLE_FROM_UCS4_PAGE_01A \
++{ \
++ /* 0x01a0 */ "\xac\x00", "\xbc\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x01a5 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x01aa */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x01af */ "\xad\x00", "\xbd\x00", "\x00\x00", "\x00\x00", "\x00\x00" \
++}
++
++#define TABLE_FROM_UCS4_PAGE_022 \
++{ \
++ /* 0x0220 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x0225 */ "\x00\x00", "\xe7\x41", "\xe7\x61", "\x00\x00", "\x00\x00", \
++ /* 0x022a */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\xe7\x4f", \
++ /* 0x022f */ "\xe7\x6f", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00" \
++}
++
++#define TABLE_FROM_UCS4_PAGE_02B \
++{ \
++ /* 0x02b0 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x02b5 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\xa7\x00", \
++ /* 0x02ba */ "\xb7\x00", "\xb0\x00", "\x00\x00", "\x00\x00", "\xae\x00", \
++ /* 0x02bf */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x02c4 */ "\x00\x00", "\x00\x00", "\x00\x00", "\xe9\x20", "\x00\x00", \
++ /* 0x02c9 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x02ce */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x02d3 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x02d8 */ "\xe6\x20", "\xe7\x20", "\xea\x20", "\xf1\x20", "\xe4\x20", \
++ /* 0x02dd */ "\xee\x20", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00" \
++}
++
++#define TABLE_FROM_UCS4_PAGE_030 \
++{ \
++ /* 0x0300 */ "\xe1\x00", "\xe2\x00", "\xe3\x00", "\xe4\x00", "\xe5\x00", \
++ /* 0x0305 */ "\x00\x00", "\xe6\x00", "\xe7\x00", "\xe8\x00", "\xe0\x00", \
++ /* 0x030a */ "\xea\x00", "\xee\x00", "\xe9\x00", "\x00\x00", "\x00\x00", \
++ /* 0x030f */ "\x00\x00", "\xef\x00", "\x00\x00", "\x00\x00", "\xfe\x00", \
++ /* 0x0314 */ "\x00\x00", "\xed\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x0319 */ "\x00\x00", "\x00\x00", "\x00\x00", "\xf8\x00", "\x00\x00", \
++ /* 0x031e */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x0323 */ "\xf2\x00", "\xf3\x00", "\xf4\x00", "\xf7\x00", "\xf0\x00", \
++ /* 0x0328 */ "\xf1\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x032d */ "\x00\x00", "\xf9\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x0332 */ "\xf6\x00", "\xf5\x00", "\x00\x00", "\x00\x00", "\x00\x00" \
++}
++
++#define TABLE_FROM_UCS4_PAGE_1EA \
++{ \
++ /* 0x1ea0 */ "\x00\x00", "\x00\x00", "\xe0\x41", "\xe0\x61", "\x00\x00", \
++ /* 0x1ea5 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x1eaa */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x1eaf */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x1eb4 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x1eb9 */ "\x00\x00", "\xe0\x45", "\xe0\x65", "\x00\x00", "\x00\x00", \
++ /* 0x1ebe */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x1ec3 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x1ec8 */ "\xe0\x49", "\xe0\x69", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x1ecd */ "\x00\x00", "\xe0\x4f", "\xe0\x6f", "\x00\x00", "\x00\x00", \
++ /* 0x1ed2 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x1ed7 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x1edc */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x1ee1 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x1ee6 */ "\xe0\x55", "\xe0\x75", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x1eeb */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x1ef0 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x1ef5 */ "\x00\x00", "\xe0\x59", "\xe0\x79", "\x00\x00", "\x00\x00" \
++}
++
++#define TABLE_FROM_UCS4_PAGE_200 \
++{ \
++ /* 0x2000 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x2005 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x200a */ "\x00\x00", "\x00\x00", "\x8e\x00", "\x8d\x00", "\x00\x00" \
++}
++
++#define TABLE_FROM_UCS4_PAGE_211 \
++{ \
++ /* 0x2110 */ "\x00\x00", "\x00\x00", "\x00\x00", "\xc1\x00", "\x00\x00", \
++ /* 0x2115 */ "\x00\x00", "\x00\x00", "\xc2\x00", "\x00\x00", "\x00\x00" \
++};
++
++#define TABLE_FROM_UCS4_PAGE_266 \
++{ \
++ /* 0x2660 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x2665 */ "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00", \
++ /* 0x266a */ "\x00\x00", "\x00\x00", "\x00\x00", "\xa9\x00", "\x00\x00", \
++ /* 0x266f */ "\xc4\x00", "\x00\x00", "\x00\x00", "\x00\x00", "\x00\x00" \
++}
++
++#define TABLE_FROM_UCS4_PAGE_FE2 \
++{ \
++ /* 0xfe20 */ "\xeb\x00", "\xec\x00", "\xfa\x00", "\xfb\x00", "\x00\x00" \
++}