/* ***** BEGIN LICENSE BLOCK *****
* Version : MPL 1 . 1 / GPL 2 . 0 / LGPL 2 . 1
*
* Copyright ( C ) 2002 - 2022 N é meth L á szl ó
*
* The contents of this file are subject to the Mozilla Public License Version
* 1 . 1 ( the " License " ) ; you may not use this file except in compliance with
* the License . You may obtain a copy of the License at
* http : //www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an " AS IS " basis ,
* WITHOUT WARRANTY OF ANY KIND , either express or implied . See the License
* for the specific language governing rights and limitations under the
* License .
*
* Hunspell is based on MySpell which is Copyright ( C ) 2002 Kevin Hendricks .
*
* Contributor ( s ) : David Einstein , Davide Prina , Giuseppe Modugno ,
* Gianluca Turconi , Simon Brouwer , Noll J á nos , B í r ó Á rp á d ,
* Goldman Eleon ó ra , Sarl ó s Tam á s , Bencs á th Boldizs á r , Hal á csy P é ter ,
* Dvornik L á szl ó , Gefferth Andr á s , Nagy Viktor , Varga D á niel , Chris Halls ,
* Rene Engelhard , Bram Moolenaar , Dafydd Jones , Harri Pitk ä nen
*
* Alternatively , the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later ( the " GPL " ) , or
* the GNU Lesser General Public License Version 2 . 1 or later ( the " LGPL " ) ,
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above . If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL , and not to allow others to
* use your version of this file under the terms of the MPL , indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL . If you do not delete
* the provisions above , a recipient may use your version of this file under
* the terms of any one of the MPL , the GPL or the LGPL .
*
* ***** END LICENSE BLOCK ***** */
/*
* Copyright 2002 Kevin B . Hendricks , Stratford , Ontario , Canada
* And Contributors . All rights reserved .
*
* Redistribution and use in source and binary forms , with or without
* modification , are permitted provided that the following conditions
* are met :
*
* 1 . Redistributions of source code must retain the above copyright
* notice , this list of conditions and the following disclaimer .
*
* 2 . Redistributions in binary form must reproduce the above copyright
* notice , this list of conditions and the following disclaimer in the
* documentation and / or other materials provided with the distribution .
*
* 3 . All modifications to the source code must be clearly marked as
* such . Binary redistributions based on modified source code
* must be clearly marked as modified versions in the documentation
* and / or other materials provided with the distribution .
*
* THIS SOFTWARE IS PROVIDED BY KEVIN B . HENDRICKS AND CONTRIBUTORS
* ` ` AS IS ' ' AND ANY EXPRESS OR IMPLIED WARRANTIES , INCLUDING , BUT NOT
* LIMITED TO , THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED . IN NO EVENT SHALL
* KEVIN B . HENDRICKS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT , INDIRECT ,
* INCIDENTAL , SPECIAL , EXEMPLARY , OR CONSEQUENTIAL DAMAGES ( INCLUDING ,
* BUT NOT LIMITED TO , PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES ;
* LOSS OF USE , DATA , OR PROFITS ; OR BUSINESS INTERRUPTION )
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY , WHETHER IN CONTRACT , STRICT
* LIABILITY , OR TORT ( INCLUDING NEGLIGENCE OR OTHERWISE ) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE , EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE .
*/
#include <algorithm>
#include <assert.h>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <cctype>
#include <iterator>
#include <sstream>
#if __cplusplus >= 202002 L || (defined (_MSVC_LANG) && _MSVC_LANG >= 202002 L)
#include <bit>
#endif
#include "csutil.hxx"
#include "atypes.hxx"
#include "langnum.hxx"
#ifdef _WIN32
#include <windows.h>
#include <wchar.h>
#endif
#ifdef OPENOFFICEORG
#include <unicode/uchar.h>
#else
#ifndef MOZILLA_CLIENT
#include "utf_info.hxx"
#endif
#endif
#ifdef MOZILLA_CLIENT
#include "mozHunspellRLBoxGlue.h"
#endif
#ifndef MOZILLA_CLIENT
void myopen(std::ifstream& stream, const char * path, std::ios_base::openmode mode)
{
#if defined (_WIN32) && defined (_MSC_VER)
#define WIN32_LONG_PATH_PREFIX "\\\\?\\"
if (strncmp(path, WIN32_LONG_PATH_PREFIX, 4 ) == 0 ) {
int len = MultiByteToWideChar(CP_UTF8, 0 , path, -1 , NULL, 0 );
wchar_t * buff = new wchar_t [len];
wchar_t * buff2 = new wchar_t [len];
MultiByteToWideChar(CP_UTF8, 0 , path, -1 , buff, len);
if (_wfullpath(buff2, buff, len) != NULL) {
stream.open(buff2, mode);
}
delete [] buff;
delete [] buff2;
}
else
#endif
stream.open(path, mode);
}
#endif
std::string& u16_u8(std::string& dest, const std::vector<w_char>& src) {
dest.clear();
dest.reserve(src.size());
auto u2 = src.begin(), u2_max = src.end();
while (u2 < u2_max) {
signed char u8;
if (u2->h) { // > 0xFF
// XXX 4-byte haven't implemented yet.
if (u2->h >= 0 x08) { // >= 0x800 (3-byte UTF-8 character)
u8 = 0 xe0 + (u2->h >> 4 );
dest.push_back(u8);
u8 = 0 x80 + ((u2->h & 0 xf) << 2 ) + (u2->l >> 6 );
dest.push_back(u8);
u8 = 0 x80 + (u2->l & 0 x3f);
dest.push_back(u8);
} else { // < 0x800 (2-byte UTF-8 character)
u8 = 0 xc0 + (u2->h << 2 ) + (u2->l >> 6 );
dest.push_back(u8);
u8 = 0 x80 + (u2->l & 0 x3f);
dest.push_back(u8);
}
} else { // <= 0xFF
if (u2->l & 0 x80) { // >0x80 (2-byte UTF-8 character)
u8 = 0 xc0 + (u2->l >> 6 );
dest.push_back(u8);
u8 = 0 x80 + (u2->l & 0 x3f);
dest.push_back(u8);
} else { // < 0x80 (1-byte UTF-8 character)
u8 = u2->l;
dest.push_back(u8);
}
}
++u2;
}
return dest;
}
int u8_u16(std::vector<w_char>& dest, const std::string& src, bool only_convert_first_letter) {
// faster to oversize initially, assign to elements and resize to what's used
// than to reserve and push_back
dest.resize(only_convert_first_letter ? 1 : src.size());
auto u16 = dest.begin();
auto u8 = src.begin(), u8_max = src.end();
while (u8 < u8_max) {
w_char u2;
switch ((*u8) & 0 xf0) {
case 0 x00:
case 0 x10:
case 0 x20:
case 0 x30:
case 0 x40:
case 0 x50:
case 0 x60:
case 0 x70: {
u2.h = 0 ;
u2.l = *u8;
break ;
}
case 0 x80:
case 0 x90:
case 0 xa0:
case 0 xb0: {
HUNSPELL_WARNING(stderr,
"UTF-8 encoding error. Unexpected continuation bytes "
"in %ld. character position\n%s\n" ,
static_cast <long >(std::distance(src.begin(), u8)),
src.c_str());
u2.h = 0 xff;
u2.l = 0 xfd;
break ;
}
case 0 xc0:
case 0 xd0: { // 2-byte UTF-8 codes
if (u8 + 1 < u8_max && (*(u8 + 1 ) & 0 xc0) == 0 x80) {
u2.h = (*u8 & 0 x1f) >> 2 ;
u2.l = (static_cast <unsigned char >(*u8) << 6 ) + (*(u8 + 1 ) & 0 x3f);
++u8;
} else {
HUNSPELL_WARNING(stderr,
"UTF-8 encoding error. Missing continuation byte in "
"%ld. character position:\n%s\n" ,
static_cast <long >(std::distance(src.begin(), u8)),
src.c_str());
u2.h = 0 xff;
u2.l = 0 xfd;
}
break ;
}
case 0 xe0: { // 3-byte UTF-8 codes
if (u8 + 1 < u8_max && (*(u8 + 1 ) & 0 xc0) == 0 x80) {
u2.h = ((*u8 & 0 x0f) << 4 ) + ((*(u8 + 1 ) & 0 x3f) >> 2 );
++u8;
if (u8 + 1 < u8_max && (*(u8 + 1 ) & 0 xc0) == 0 x80) {
u2.l = (static_cast <unsigned char >(*u8) << 6 ) + (*(u8 + 1 ) & 0 x3f);
++u8;
} else {
HUNSPELL_WARNING(stderr,
"UTF-8 encoding error. Missing continuation byte "
"in %ld. character position:\n%s\n" ,
static_cast <long >(std::distance(src.begin(), u8)),
src.c_str());
u2.h = 0 xff;
u2.l = 0 xfd;
}
} else {
HUNSPELL_WARNING(stderr,
"UTF-8 encoding error. Missing continuation byte in "
"%ld. character position:\n%s\n" ,
static_cast <long >(std::distance(src.begin(), u8)),
src.c_str());
u2.h = 0 xff;
u2.l = 0 xfd;
}
break ;
}
default : { // 4 or more byte UTF-8 codes
assert(((*u8) & 0 xf0) == 0 xf0 && "can only be 0xf0" );
HUNSPELL_WARNING(stderr,
"This UTF-8 encoding can't convert to UTF-16:\n%s\n" ,
src.c_str());
u2.h = 0 xff;
u2.l = 0 xfd;
*u16++ = u2;
dest.resize(u16 - dest.begin());
return -1 ;
}
}
*u16++ = u2;
if (only_convert_first_letter)
break ;
++u8;
}
int size = u16 - dest.begin();
dest.resize(size);
return size;
}
namespace {
class is_any_of {
public :
explicit is_any_of(const std::string& in) : chars(in) {}
bool operator ()(char c) const { return chars.find(c) != std::string::npos; }
private :
std::string chars;
};
}
std::string::const_iterator mystrsep(const std::string &str,
std::string::const_iterator& start) {
auto end = str.end();
is_any_of op(" \t" );
// don't use isspace() here, the string can be in some random charset
// that's way different than the locale's
auto sp = start;
while (sp != end && op(*sp))
++sp;
auto dp = sp;
while (dp != end && !op(*dp))
++dp;
start = dp;
return sp;
}
// remove cross-platform text line end characters
void mychomp(std::string& s) {
size_t k = s.size();
size_t newsize = k;
if ((k > 0 ) && ((s[k - 1 ] == '\r' ) || (s[k - 1 ] == '\n' )))
--newsize;
if ((k > 1 ) && (s[k - 2 ] == '\r' ))
--newsize;
s.resize(newsize);
}
// break text to lines
std::vector<std::string> line_tok(const std::string& text, char breakchar) {
std::vector<std::string> ret;
if (text.empty()) {
return ret;
}
std::stringstream ss(text);
std::string tok;
while (std::getline(ss, tok, breakchar)) {
if (!tok.empty()) {
ret.push_back(tok);
}
}
return ret;
}
// uniq line in place
void line_uniq(std::string& text, char breakchar)
{
std::vector<std::string> lines = line_tok(text, breakchar);
text.clear();
if (lines.empty()) {
return ;
}
text = lines[0 ];
for (size_t i = 1 ; i < lines.size(); ++i) {
bool dup = false ;
for (size_t j = 0 ; j < i; ++j) {
if (lines[i] == lines[j]) {
dup = true ;
break ;
}
}
if (!dup) {
if (!text.empty())
text.push_back(breakchar);
text.append(lines[i]);
}
}
}
// uniq and boundary for compound analysis: "1\n\2\n\1" -> " ( \1 | \2 ) "
void line_uniq_app(std::string& text, char breakchar) {
if (text.find(breakchar) == std::string::npos) {
return ;
}
std::vector<std::string> lines = line_tok(text, breakchar);
text.clear();
if (lines.empty()) {
return ;
}
text = lines[0 ];
for (size_t i = 1 ; i < lines.size(); ++i) {
bool dup = false ;
for (size_t j = 0 ; j < i; ++j) {
if (lines[i] == lines[j]) {
dup = true ;
break ;
}
}
if (!dup) {
if (!text.empty())
text.push_back(breakchar);
text.append(lines[i]);
}
}
if (lines.size() == 1 ) {
text = lines[0 ];
return ;
}
text.assign(" ( " );
for (auto & line : lines) {
text.append(line);
text.append(" | " );
}
text[text.size() - 2 ] = ')' ; // " ) "
}
// append s to ends of every lines in text
std::string& strlinecat(std::string& str, const std::string& apd) {
size_t pos = 0 ;
while ((pos = str.find('\n' , pos)) != std::string::npos) {
str.insert(pos, apd);
pos += apd.length() + 1 ;
}
str.append(apd);
return str;
}
int fieldlen(const char * r) {
int n = 0 ;
while (r && *r != ' ' && *r != '\t' && *r != '\0' && *r != '\n' ) {
r++;
n++;
}
return n;
}
bool copy_field(std::string& dest,
const std::string& morph,
const std::string& var) {
if (morph.empty())
return false ;
size_t pos = morph.find(var);
if (pos == std::string::npos)
return false ;
dest.clear();
std::string beg(morph.substr(pos + MORPH_TAG_LEN, std::string::npos));
for (const char c : beg) {
if (c == ' ' || c == '\t' || c == '\n' )
break ;
dest.push_back(c);
}
return true ;
}
std::string& mystrrep(std::string& str,
const std::string& search,
const std::string& replace) {
size_t pos = 0 ;
while ((pos = str.find(search, pos)) != std::string::npos) {
str.replace(pos, search.length(), replace);
pos += replace.length();
}
return str;
}
// reverse word
size_t reverseword(std::string& word) {
std::reverse(word.begin(), word.end());
return word.size();
}
// reverse word
size_t reverseword_utf(std::string& word) {
std::reverse(word.begin(), word.end()); //1st step: we reverse the string
//2nd step: we process each multibyte character and reverse it
for (auto it = word.rbegin(); it != word.rend(); ) {
switch ((*it) & 0 xf0) {
case 0 x00:
case 0 x10:
case 0 x20:
case 0 x30:
case 0 x40:
case 0 x50:
case 0 x60:
case 0 x70:
//one byte
++it;
break ;
case 0 x80:
case 0 x90:
case 0 xa0:
case 0 xb0:
HUNSPELL_WARNING(stderr,
"UTF-8 encoding error. Unexpected continuation bytes "
"in %ld. character position\n%s\n" ,
static_cast <long >(std::distance(word.begin(), it.base()) - 1 ),
word.c_str());
++it;
break ;
case 0 xc0:
case 0 xd0: {
//two bytes
if (std::distance(it, word.rend()) >= 2 ) {
std::iter_swap(it, it + 1 );
it += 2 ;
} else {
HUNSPELL_WARNING(stderr,
"UTF-8 encoding error. Missing character at the end\n%s\n" ,
word.c_str());
++it;
}
break ;
}
case 0 xe0: {
//three bytes
if (std::distance(it, word.rend()) >= 3 ) {
std::iter_swap(it, it + 2 );
it += 3 ;
} else {
HUNSPELL_WARNING(stderr,
"UTF-8 encoding error. Missing character at the end\n%s\n" ,
word.c_str());
++it;
}
break ;
}
default : {
// 4 or more byte UTF-8 codes
if (std::distance(it, word.rend()) >= 4 ) {
std::iter_swap(it, it + 3 );
std::iter_swap(it + 1 , it + 2 );
it += 4 ;
} else {
HUNSPELL_WARNING(stderr,
"UTF-8 encoding error. Missing character at the end\n%s\n" ,
word.c_str());
++it;
}
break ;
}
}
}
return word.size();
}
void uniqlist(std::vector<std::string>& list) {
if (list.size() < 2 )
return ;
std::vector<std::string> ret;
ret.push_back(list[0 ]);
for (size_t i = 1 ; i < list.size(); ++i) {
if (std::find(ret.begin(), ret.end(), list[i]) == ret.end())
ret.push_back(list[i]);
}
list.swap(ret);
}
namespace {
unsigned char cupper(const struct cs_info* csconv, int nIndex) {
assert(nIndex >= 0 && nIndex <= 255 );
return csconv[nIndex].cupper;
}
unsigned char clower(const struct cs_info* csconv, int nIndex) {
assert(nIndex >= 0 && nIndex <= 255 );
return csconv[nIndex].clower;
}
unsigned char ccase(const struct cs_info* csconv, int nIndex) {
assert(nIndex >= 0 && nIndex <= 255 );
return csconv[nIndex].ccase;
}
}
w_char upper_utf(w_char u, int langnum) {
#if defined (_WIN32) || (defined (__BYTE_ORDER__) && (__BYTE_ORDER__==__ORDER_LITTLE_ENDIAN__)) || defined (__LITTLE_ENDIAN__)
//with these optimizations, msvc can optimize this function to one jmp instruction
//but g++ remains in five instructions
//maybe use inline asm for g++?
#if (__cplusplus >= 202002 L || (defined (_MSVC_LANG) && _MSVC_LANG >= 202002 L)) && defined __cpp_lib_bit_cast && __cpp_lib_bit_cast >= 201806 L
return std::bit_cast<w_char>(unicodetoupper((unsigned short )u, langnum));
#else
const auto us = unicodetoupper((unsigned short )u, langnum);
memcpy(&u, &us, sizeof (unsigned short ));
return u;
#endif
#else
const auto us = unicodetoupper((unsigned short )u, langnum);
u.h = (unsigned char )(us >> 8 );
u.l = (unsigned char )(us & 0 xff);
return u;
#endif
}
w_char lower_utf(w_char u, int langnum) {
#if defined (_WIN32) || (defined (__BYTE_ORDER__) && (__BYTE_ORDER__==__ORDER_LITTLE_ENDIAN__)) || defined (__LITTLE_ENDIAN__)
//with these optimizations, msvc can optimize this function to one jmp instruction
//but g++ remains in five instructions
//maybe use inline asm for g++?
#if (__cplusplus >= 202002 L || (defined (_MSVC_LANG) && _MSVC_LANG >= 202002 L)) && defined __cpp_lib_bit_cast && __cpp_lib_bit_cast >= 201806 L
return std::bit_cast<w_char>(unicodetolower((unsigned short )u, langnum));
#else
const auto us = unicodetolower((unsigned short )u, langnum);
memcpy(&u, &us, sizeof (unsigned short ));
return u;
#endif
#else
const auto us = unicodetolower((unsigned short )u, langnum);
u.h = (unsigned char )(us >> 8 );
u.l = (unsigned char )(us & 0 xff);
return u;
#endif
}
// convert std::string to all caps
std::string& mkallcap(std::string& s, const struct cs_info* csconv) {
for (char & aI : s) {
aI = cupper(csconv, static_cast <unsigned char >(aI));
}
return s;
}
// convert std::string to all little
std::string& mkallsmall(std::string& s, const struct cs_info* csconv) {
for (char & aI : s) {
aI = clower(csconv, static_cast <unsigned char >(aI));
}
return s;
}
std::vector<w_char>& mkallsmall_utf(std::vector<w_char>& u, int langnum) {
for (auto & i : u) {
i = lower_utf(i, langnum);
}
return u;
}
std::vector<w_char>& mkallcap_utf(std::vector<w_char>& u, int langnum) {
for (auto & i : u) {
i = upper_utf(i, langnum);
}
return u;
}
std::string& mkinitcap(std::string& s, const struct cs_info* csconv) {
if (!s.empty()) {
s[0 ] = cupper(csconv, static_cast <unsigned char >(s[0 ]));
}
return s;
}
std::vector<w_char>& mkinitcap_utf(std::vector<w_char>& u, int langnum) {
if (!u.empty()) {
u[0 ] = upper_utf(u[0 ], langnum);
}
return u;
}
std::string& mkinitsmall(std::string& s, const struct cs_info* csconv) {
if (!s.empty()) {
s[0 ] = clower(csconv, static_cast <unsigned char >(s[0 ]));
}
return s;
}
std::vector<w_char>& mkinitsmall_utf(std::vector<w_char>& u, int langnum) {
if (!u.empty()) {
u[0 ] = lower_utf(u[0 ], langnum);
}
return u;
}
// conversion function for protected memory
void store_pointer(char * dest, char * source) {
memcpy(dest, &source, sizeof (char *));
}
// conversion function for protected memory
char * get_stored_pointer(const char * s) {
char * p;
memcpy(&p, s, sizeof (char *));
return p;
}
#ifndef MOZILLA_CLIENT
// these are simple character mappings for the
// encodings supported
// supplying isupper, tolower, and toupper
const struct cs_info iso1_tbl[] = {
{0 x00, 0 x00, 0 x00}, {0 x00, 0 x01, 0 x01}, {0 x00, 0 x02, 0 x02},
{0 x00, 0 x03, 0 x03}, {0 x00, 0 x04, 0 x04}, {0 x00, 0 x05, 0 x05},
{0 x00, 0 x06, 0 x06}, {0 x00, 0 x07, 0 x07}, {0 x00, 0 x08, 0 x08},
{0 x00, 0 x09, 0 x09}, {0 x00, 0 x0a, 0 x0a}, {0 x00, 0 x0b, 0 x0b},
{0 x00, 0 x0c, 0 x0c}, {0 x00, 0 x0d, 0 x0d}, {0 x00, 0 x0e, 0 x0e},
{0 x00, 0 x0f, 0 x0f}, {0 x00, 0 x10, 0 x10}, {0 x00, 0 x11, 0 x11},
{0 x00, 0 x12, 0 x12}, {0 x00, 0 x13, 0 x13}, {0 x00, 0 x14, 0 x14},
{0 x00, 0 x15, 0 x15}, {0 x00, 0 x16, 0 x16}, {0 x00, 0 x17, 0 x17},
{0 x00, 0 x18, 0 x18}, {0 x00, 0 x19, 0 x19}, {0 x00, 0 x1a, 0 x1a},
{0 x00, 0 x1b, 0 x1b}, {0 x00, 0 x1c, 0 x1c}, {0 x00, 0 x1d, 0 x1d},
{0 x00, 0 x1e, 0 x1e}, {0 x00, 0 x1f, 0 x1f}, {0 x00, 0 x20, 0 x20},
{0 x00, 0 x21, 0 x21}, {0 x00, 0 x22, 0 x22}, {0 x00, 0 x23, 0 x23},
{0 x00, 0 x24, 0 x24}, {0 x00, 0 x25, 0 x25}, {0 x00, 0 x26, 0 x26},
{0 x00, 0 x27, 0 x27}, {0 x00, 0 x28, 0 x28}, {0 x00, 0 x29, 0 x29},
{0 x00, 0 x2a, 0 x2a}, {0 x00, 0 x2b, 0 x2b}, {0 x00, 0 x2c, 0 x2c},
{0 x00, 0 x2d, 0 x2d}, {0 x00, 0 x2e, 0 x2e}, {0 x00, 0 x2f, 0 x2f},
{0 x00, 0 x30, 0 x30}, {0 x00, 0 x31, 0 x31}, {0 x00, 0 x32, 0 x32},
{0 x00, 0 x33, 0 x33}, {0 x00, 0 x34, 0 x34}, {0 x00, 0 x35, 0 x35},
{0 x00, 0 x36, 0 x36}, {0 x00, 0 x37, 0 x37}, {0 x00, 0 x38, 0 x38},
{0 x00, 0 x39, 0 x39}, {0 x00, 0 x3a, 0 x3a}, {0 x00, 0 x3b, 0 x3b},
{0 x00, 0 x3c, 0 x3c}, {0 x00, 0 x3d, 0 x3d}, {0 x00, 0 x3e, 0 x3e},
{0 x00, 0 x3f, 0 x3f}, {0 x00, 0 x40, 0 x40}, {0 x01, 0 x61, 0 x41},
{0 x01, 0 x62, 0 x42}, {0 x01, 0 x63, 0 x43}, {0 x01, 0 x64, 0 x44},
{0 x01, 0 x65, 0 x45}, {0 x01, 0 x66, 0 x46}, {0 x01, 0 x67, 0 x47},
{0 x01, 0 x68, 0 x48}, {0 x01, 0 x69, 0 x49}, {0 x01, 0 x6a, 0 x4a},
{0 x01, 0 x6b, 0 x4b}, {0 x01, 0 x6c, 0 x4c}, {0 x01, 0 x6d, 0 x4d},
{0 x01, 0 x6e, 0 x4e}, {0 x01, 0 x6f, 0 x4f}, {0 x01, 0 x70, 0 x50},
{0 x01, 0 x71, 0 x51}, {0 x01, 0 x72, 0 x52}, {0 x01, 0 x73, 0 x53},
{0 x01, 0 x74, 0 x54}, {0 x01, 0 x75, 0 x55}, {0 x01, 0 x76, 0 x56},
{0 x01, 0 x77, 0 x57}, {0 x01, 0 x78, 0 x58}, {0 x01, 0 x79, 0 x59},
{0 x01, 0 x7a, 0 x5a}, {0 x00, 0 x5b, 0 x5b}, {0 x00, 0 x5c, 0 x5c},
{0 x00, 0 x5d, 0 x5d}, {0 x00, 0 x5e, 0 x5e}, {0 x00, 0 x5f, 0 x5f},
{0 x00, 0 x60, 0 x60}, {0 x00, 0 x61, 0 x41}, {0 x00, 0 x62, 0 x42},
{0 x00, 0 x63, 0 x43}, {0 x00, 0 x64, 0 x44}, {0 x00, 0 x65, 0 x45},
{0 x00, 0 x66, 0 x46}, {0 x00, 0 x67, 0 x47}, {0 x00, 0 x68, 0 x48},
{0 x00, 0 x69, 0 x49}, {0 x00, 0 x6a, 0 x4a}, {0 x00, 0 x6b, 0 x4b},
{0 x00, 0 x6c, 0 x4c}, {0 x00, 0 x6d, 0 x4d}, {0 x00, 0 x6e, 0 x4e},
{0 x00, 0 x6f, 0 x4f}, {0 x00, 0 x70, 0 x50}, {0 x00, 0 x71, 0 x51},
{0 x00, 0 x72, 0 x52}, {0 x00, 0 x73, 0 x53}, {0 x00, 0 x74, 0 x54},
{0 x00, 0 x75, 0 x55}, {0 x00, 0 x76, 0 x56}, {0 x00, 0 x77, 0 x57},
{0 x00, 0 x78, 0 x58}, {0 x00, 0 x79, 0 x59}, {0 x00, 0 x7a, 0 x5a},
{0 x00, 0 x7b, 0 x7b}, {0 x00, 0 x7c, 0 x7c}, {0 x00, 0 x7d, 0 x7d},
{0 x00, 0 x7e, 0 x7e}, {0 x00, 0 x7f, 0 x7f}, {0 x00, 0 x80, 0 x80},
{0 x00, 0 x81, 0 x81}, {0 x00, 0 x82, 0 x82}, {0 x00, 0 x83, 0 x83},
{0 x00, 0 x84, 0 x84}, {0 x00, 0 x85, 0 x85}, {0 x00, 0 x86, 0 x86},
{0 x00, 0 x87, 0 x87}, {0 x00, 0 x88, 0 x88}, {0 x00, 0 x89, 0 x89},
{0 x00, 0 x8a, 0 x8a}, {0 x00, 0 x8b, 0 x8b}, {0 x00, 0 x8c, 0 x8c},
{0 x00, 0 x8d, 0 x8d}, {0 x00, 0 x8e, 0 x8e}, {0 x00, 0 x8f, 0 x8f},
{0 x00, 0 x90, 0 x90}, {0 x00, 0 x91, 0 x91}, {0 x00, 0 x92, 0 x92},
{0 x00, 0 x93, 0 x93}, {0 x00, 0 x94, 0 x94}, {0 x00, 0 x95, 0 x95},
{0 x00, 0 x96, 0 x96}, {0 x00, 0 x97, 0 x97}, {0 x00, 0 x98, 0 x98},
{0 x00, 0 x99, 0 x99}, {0 x00, 0 x9a, 0 x9a}, {0 x00, 0 x9b, 0 x9b},
{0 x00, 0 x9c, 0 x9c}, {0 x00, 0 x9d, 0 x9d}, {0 x00, 0 x9e, 0 x9e},
{0 x00, 0 x9f, 0 x9f}, {0 x00, 0 xa0, 0 xa0}, {0 x00, 0 xa1, 0 xa1},
{0 x00, 0 xa2, 0 xa2}, {0 x00, 0 xa3, 0 xa3}, {0 x00, 0 xa4, 0 xa4},
{0 x00, 0 xa5, 0 xa5}, {0 x00, 0 xa6, 0 xa6}, {0 x00, 0 xa7, 0 xa7},
{0 x00, 0 xa8, 0 xa8}, {0 x00, 0 xa9, 0 xa9}, {0 x00, 0 xaa, 0 xaa},
{0 x00, 0 xab, 0 xab}, {0 x00, 0 xac, 0 xac}, {0 x00, 0 xad, 0 xad},
{0 x00, 0 xae, 0 xae}, {0 x00, 0 xaf, 0 xaf}, {0 x00, 0 xb0, 0 xb0},
{0 x00, 0 xb1, 0 xb1}, {0 x00, 0 xb2, 0 xb2}, {0 x00, 0 xb3, 0 xb3},
{0 x00, 0 xb4, 0 xb4}, {0 x00, 0 xb5, 0 xb5}, {0 x00, 0 xb6, 0 xb6},
{0 x00, 0 xb7, 0 xb7}, {0 x00, 0 xb8, 0 xb8}, {0 x00, 0 xb9, 0 xb9},
{0 x00, 0 xba, 0 xba}, {0 x00, 0 xbb, 0 xbb}, {0 x00, 0 xbc, 0 xbc},
{0 x00, 0 xbd, 0 xbd}, {0 x00, 0 xbe, 0 xbe}, {0 x00, 0 xbf, 0 xbf},
{0 x01, 0 xe0, 0 xc0}, {0 x01, 0 xe1, 0 xc1}, {0 x01, 0 xe2, 0 xc2},
{0 x01, 0 xe3, 0 xc3}, {0 x01, 0 xe4, 0 xc4}, {0 x01, 0 xe5, 0 xc5},
{0 x01, 0 xe6, 0 xc6}, {0 x01, 0 xe7, 0 xc7}, {0 x01, 0 xe8, 0 xc8},
{0 x01, 0 xe9, 0 xc9}, {0 x01, 0 xea, 0 xca}, {0 x01, 0 xeb, 0 xcb},
{0 x01, 0 xec, 0 xcc}, {0 x01, 0 xed, 0 xcd}, {0 x01, 0 xee, 0 xce},
{0 x01, 0 xef, 0 xcf}, {0 x01, 0 xf0, 0 xd0}, {0 x01, 0 xf1, 0 xd1},
{0 x01, 0 xf2, 0 xd2}, {0 x01, 0 xf3, 0 xd3}, {0 x01, 0 xf4, 0 xd4},
{0 x01, 0 xf5, 0 xd5}, {0 x01, 0 xf6, 0 xd6}, {0 x00, 0 xd7, 0 xd7},
{0 x01, 0 xf8, 0 xd8}, {0 x01, 0 xf9, 0 xd9}, {0 x01, 0 xfa, 0 xda},
{0 x01, 0 xfb, 0 xdb}, {0 x01, 0 xfc, 0 xdc}, {0 x01, 0 xfd, 0 xdd},
{0 x01, 0 xfe, 0 xde}, {0 x00, 0 xdf, 0 xdf}, {0 x00, 0 xe0, 0 xc0},
{0 x00, 0 xe1, 0 xc1}, {0 x00, 0 xe2, 0 xc2}, {0 x00, 0 xe3, 0 xc3},
{0 x00, 0 xe4, 0 xc4}, {0 x00, 0 xe5, 0 xc5}, {0 x00, 0 xe6, 0 xc6},
{0 x00, 0 xe7, 0 xc7}, {0 x00, 0 xe8, 0 xc8}, {0 x00, 0 xe9, 0 xc9},
{0 x00, 0 xea, 0 xca}, {0 x00, 0 xeb, 0 xcb}, {0 x00, 0 xec, 0 xcc},
{0 x00, 0 xed, 0 xcd}, {0 x00, 0 xee, 0 xce}, {0 x00, 0 xef, 0 xcf},
{0 x00, 0 xf0, 0 xd0}, {0 x00, 0 xf1, 0 xd1}, {0 x00, 0 xf2, 0 xd2},
{0 x00, 0 xf3, 0 xd3}, {0 x00, 0 xf4, 0 xd4}, {0 x00, 0 xf5, 0 xd5},
{0 x00, 0 xf6, 0 xd6}, {0 x00, 0 xf7, 0 xf7}, {0 x00, 0 xf8, 0 xd8},
{0 x00, 0 xf9, 0 xd9}, {0 x00, 0 xfa, 0 xda}, {0 x00, 0 xfb, 0 xdb},
{0 x00, 0 xfc, 0 xdc}, {0 x00, 0 xfd, 0 xdd}, {0 x00, 0 xfe, 0 xde},
{0 x00, 0 xff, 0 xff}};
const struct cs_info iso2_tbl[] = {
{0 x00, 0 x00, 0 x00}, {0 x00, 0 x01, 0 x01}, {0 x00, 0 x02, 0 x02},
{0 x00, 0 x03, 0 x03}, {0 x00, 0 x04, 0 x04}, {0 x00, 0 x05, 0 x05},
{0 x00, 0 x06, 0 x06}, {0 x00, 0 x07, 0 x07}, {0 x00, 0 x08, 0 x08},
{0 x00, 0 x09, 0 x09}, {0 x00, 0 x0a, 0 x0a}, {0 x00, 0 x0b, 0 x0b},
{0 x00, 0 x0c, 0 x0c}, {0 x00, 0 x0d, 0 x0d}, {0 x00, 0 x0e, 0 x0e},
{0 x00, 0 x0f, 0 x0f}, {0 x00, 0 x10, 0 x10}, {0 x00, 0 x11, 0 x11},
{0 x00, 0 x12, 0 x12}, {0 x00, 0 x13, 0 x13}, {0 x00, 0 x14, 0 x14},
{0 x00, 0 x15, 0 x15}, {0 x00, 0 x16, 0 x16}, {0 x00, 0 x17, 0 x17},
{0 x00, 0 x18, 0 x18}, {0 x00, 0 x19, 0 x19}, {0 x00, 0 x1a, 0 x1a},
{0 x00, 0 x1b, 0 x1b}, {0 x00, 0 x1c, 0 x1c}, {0 x00, 0 x1d, 0 x1d},
{0 x00, 0 x1e, 0 x1e}, {0 x00, 0 x1f, 0 x1f}, {0 x00, 0 x20, 0 x20},
{0 x00, 0 x21, 0 x21}, {0 x00, 0 x22, 0 x22}, {0 x00, 0 x23, 0 x23},
{0 x00, 0 x24, 0 x24}, {0 x00, 0 x25, 0 x25}, {0 x00, 0 x26, 0 x26},
{0 x00, 0 x27, 0 x27}, {0 x00, 0 x28, 0 x28}, {0 x00, 0 x29, 0 x29},
{0 x00, 0 x2a, 0 x2a}, {0 x00, 0 x2b, 0 x2b}, {0 x00, 0 x2c, 0 x2c},
{0 x00, 0 x2d, 0 x2d}, {0 x00, 0 x2e, 0 x2e}, {0 x00, 0 x2f, 0 x2f},
{0 x00, 0 x30, 0 x30}, {0 x00, 0 x31, 0 x31}, {0 x00, 0 x32, 0 x32},
{0 x00, 0 x33, 0 x33}, {0 x00, 0 x34, 0 x34}, {0 x00, 0 x35, 0 x35},
{0 x00, 0 x36, 0 x36}, {0 x00, 0 x37, 0 x37}, {0 x00, 0 x38, 0 x38},
{0 x00, 0 x39, 0 x39}, {0 x00, 0 x3a, 0 x3a}, {0 x00, 0 x3b, 0 x3b},
{0 x00, 0 x3c, 0 x3c}, {0 x00, 0 x3d, 0 x3d}, {0 x00, 0 x3e, 0 x3e},
{0 x00, 0 x3f, 0 x3f}, {0 x00, 0 x40, 0 x40}, {0 x01, 0 x61, 0 x41},
{0 x01, 0 x62, 0 x42}, {0 x01, 0 x63, 0 x43}, {0 x01, 0 x64, 0 x44},
{0 x01, 0 x65, 0 x45}, {0 x01, 0 x66, 0 x46}, {0 x01, 0 x67, 0 x47},
{0 x01, 0 x68, 0 x48}, {0 x01, 0 x69, 0 x49}, {0 x01, 0 x6a, 0 x4a},
{0 x01, 0 x6b, 0 x4b}, {0 x01, 0 x6c, 0 x4c}, {0 x01, 0 x6d, 0 x4d},
{0 x01, 0 x6e, 0 x4e}, {0 x01, 0 x6f, 0 x4f}, {0 x01, 0 x70, 0 x50},
{0 x01, 0 x71, 0 x51}, {0 x01, 0 x72, 0 x52}, {0 x01, 0 x73, 0 x53},
{0 x01, 0 x74, 0 x54}, {0 x01, 0 x75, 0 x55}, {0 x01, 0 x76, 0 x56},
{0 x01, 0 x77, 0 x57}, {0 x01, 0 x78, 0 x58}, {0 x01, 0 x79, 0 x59},
{0 x01, 0 x7a, 0 x5a}, {0 x00, 0 x5b, 0 x5b}, {0 x00, 0 x5c, 0 x5c},
{0 x00, 0 x5d, 0 x5d}, {0 x00, 0 x5e, 0 x5e}, {0 x00, 0 x5f, 0 x5f},
{0 x00, 0 x60, 0 x60}, {0 x00, 0 x61, 0 x41}, {0 x00, 0 x62, 0 x42},
{0 x00, 0 x63, 0 x43}, {0 x00, 0 x64, 0 x44}, {0 x00, 0 x65, 0 x45},
{0 x00, 0 x66, 0 x46}, {0 x00, 0 x67, 0 x47}, {0 x00, 0 x68, 0 x48},
{0 x00, 0 x69, 0 x49}, {0 x00, 0 x6a, 0 x4a}, {0 x00, 0 x6b, 0 x4b},
{0 x00, 0 x6c, 0 x4c}, {0 x00, 0 x6d, 0 x4d}, {0 x00, 0 x6e, 0 x4e},
{0 x00, 0 x6f, 0 x4f}, {0 x00, 0 x70, 0 x50}, {0 x00, 0 x71, 0 x51},
{0 x00, 0 x72, 0 x52}, {0 x00, 0 x73, 0 x53}, {0 x00, 0 x74, 0 x54},
{0 x00, 0 x75, 0 x55}, {0 x00, 0 x76, 0 x56}, {0 x00, 0 x77, 0 x57},
{0 x00, 0 x78, 0 x58}, {0 x00, 0 x79, 0 x59}, {0 x00, 0 x7a, 0 x5a},
{0 x00, 0 x7b, 0 x7b}, {0 x00, 0 x7c, 0 x7c}, {0 x00, 0 x7d, 0 x7d},
{0 x00, 0 x7e, 0 x7e}, {0 x00, 0 x7f, 0 x7f}, {0 x00, 0 x80, 0 x80},
{0 x00, 0 x81, 0 x81}, {0 x00, 0 x82, 0 x82}, {0 x00, 0 x83, 0 x83},
{0 x00, 0 x84, 0 x84}, {0 x00, 0 x85, 0 x85}, {0 x00, 0 x86, 0 x86},
{0 x00, 0 x87, 0 x87}, {0 x00, 0 x88, 0 x88}, {0 x00, 0 x89, 0 x89},
{0 x00, 0 x8a, 0 x8a}, {0 x00, 0 x8b, 0 x8b}, {0 x00, 0 x8c, 0 x8c},
{0 x00, 0 x8d, 0 x8d}, {0 x00, 0 x8e, 0 x8e}, {0 x00, 0 x8f, 0 x8f},
{0 x00, 0 x90, 0 x90}, {0 x00, 0 x91, 0 x91}, {0 x00, 0 x92, 0 x92},
{0 x00, 0 x93, 0 x93}, {0 x00, 0 x94, 0 x94}, {0 x00, 0 x95, 0 x95},
{0 x00, 0 x96, 0 x96}, {0 x00, 0 x97, 0 x97}, {0 x00, 0 x98, 0 x98},
{0 x00, 0 x99, 0 x99}, {0 x00, 0 x9a, 0 x9a}, {0 x00, 0 x9b, 0 x9b},
{0 x00, 0 x9c, 0 x9c}, {0 x00, 0 x9d, 0 x9d}, {0 x00, 0 x9e, 0 x9e},
{0 x00, 0 x9f, 0 x9f}, {0 x00, 0 xa0, 0 xa0}, {0 x01, 0 xb1, 0 xa1},
{0 x00, 0 xa2, 0 xa2}, {0 x01, 0 xb3, 0 xa3}, {0 x00, 0 xa4, 0 xa4},
{0 x01, 0 xb5, 0 xa5}, {0 x01, 0 xb6, 0 xa6}, {0 x00, 0 xa7, 0 xa7},
{0 x00, 0 xa8, 0 xa8}, {0 x01, 0 xb9, 0 xa9}, {0 x01, 0 xba, 0 xaa},
{0 x01, 0 xbb, 0 xab}, {0 x01, 0 xbc, 0 xac}, {0 x00, 0 xad, 0 xad},
{0 x01, 0 xbe, 0 xae}, {0 x01, 0 xbf, 0 xaf}, {0 x00, 0 xb0, 0 xb0},
{0 x00, 0 xb1, 0 xa1}, {0 x00, 0 xb2, 0 xb2}, {0 x00, 0 xb3, 0 xa3},
{0 x00, 0 xb4, 0 xb4}, {0 x00, 0 xb5, 0 xa5}, {0 x00, 0 xb6, 0 xa6},
{0 x00, 0 xb7, 0 xb7}, {0 x00, 0 xb8, 0 xb8}, {0 x00, 0 xb9, 0 xa9},
{0 x00, 0 xba, 0 xaa}, {0 x00, 0 xbb, 0 xab}, {0 x00, 0 xbc, 0 xac},
{0 x00, 0 xbd, 0 xbd}, {0 x00, 0 xbe, 0 xae}, {0 x00, 0 xbf, 0 xaf},
{0 x01, 0 xe0, 0 xc0}, {0 x01, 0 xe1, 0 xc1}, {0 x01, 0 xe2, 0 xc2},
{0 x01, 0 xe3, 0 xc3}, {0 x01, 0 xe4, 0 xc4}, {0 x01, 0 xe5, 0 xc5},
{0 x01, 0 xe6, 0 xc6}, {0 x01, 0 xe7, 0 xc7}, {0 x01, 0 xe8, 0 xc8},
{0 x01, 0 xe9, 0 xc9}, {0 x01, 0 xea, 0 xca}, {0 x01, 0 xeb, 0 xcb},
{0 x01, 0 xec, 0 xcc}, {0 x01, 0 xed, 0 xcd}, {0 x01, 0 xee, 0 xce},
{0 x01, 0 xef, 0 xcf}, {0 x01, 0 xf0, 0 xd0}, {0 x01, 0 xf1, 0 xd1},
{0 x01, 0 xf2, 0 xd2}, {0 x01, 0 xf3, 0 xd3}, {0 x01, 0 xf4, 0 xd4},
{0 x01, 0 xf5, 0 xd5}, {0 x01, 0 xf6, 0 xd6}, {0 x00, 0 xd7, 0 xd7},
{0 x01, 0 xf8, 0 xd8}, {0 x01, 0 xf9, 0 xd9}, {0 x01, 0 xfa, 0 xda},
{0 x01, 0 xfb, 0 xdb}, {0 x01, 0 xfc, 0 xdc}, {0 x01, 0 xfd, 0 xdd},
{0 x01, 0 xfe, 0 xde}, {0 x00, 0 xdf, 0 xdf}, {0 x00, 0 xe0, 0 xc0},
{0 x00, 0 xe1, 0 xc1}, {0 x00, 0 xe2, 0 xc2}, {0 x00, 0 xe3, 0 xc3},
{0 x00, 0 xe4, 0 xc4}, {0 x00, 0 xe5, 0 xc5}, {0 x00, 0 xe6, 0 xc6},
{0 x00, 0 xe7, 0 xc7}, {0 x00, 0 xe8, 0 xc8}, {0 x00, 0 xe9, 0 xc9},
{0 x00, 0 xea, 0 xca}, {0 x00, 0 xeb, 0 xcb}, {0 x00, 0 xec, 0 xcc},
{0 x00, 0 xed, 0 xcd}, {0 x00, 0 xee, 0 xce}, {0 x00, 0 xef, 0 xcf},
{0 x00, 0 xf0, 0 xd0}, {0 x00, 0 xf1, 0 xd1}, {0 x00, 0 xf2, 0 xd2},
{0 x00, 0 xf3, 0 xd3}, {0 x00, 0 xf4, 0 xd4}, {0 x00, 0 xf5, 0 xd5},
{0 x00, 0 xf6, 0 xd6}, {0 x00, 0 xf7, 0 xf7}, {0 x00, 0 xf8, 0 xd8},
{0 x00, 0 xf9, 0 xd9}, {0 x00, 0 xfa, 0 xda}, {0 x00, 0 xfb, 0 xdb},
{0 x00, 0 xfc, 0 xdc}, {0 x00, 0 xfd, 0 xdd}, {0 x00, 0 xfe, 0 xde},
{0 x00, 0 xff, 0 xff}};
const struct cs_info iso3_tbl[] = {
{0 x00, 0 x00, 0 x00}, {0 x00, 0 x01, 0 x01}, {0 x00, 0 x02, 0 x02},
{0 x00, 0 x03, 0 x03}, {0 x00, 0 x04, 0 x04}, {0 x00, 0 x05, 0 x05},
{0 x00, 0 x06, 0 x06}, {0 x00, 0 x07, 0 x07}, {0 x00, 0 x08, 0 x08},
{0 x00, 0 x09, 0 x09}, {0 x00, 0 x0a, 0 x0a}, {0 x00, 0 x0b, 0 x0b},
{0 x00, 0 x0c, 0 x0c}, {0 x00, 0 x0d, 0 x0d}, {0 x00, 0 x0e, 0 x0e},
{0 x00, 0 x0f, 0 x0f}, {0 x00, 0 x10, 0 x10}, {0 x00, 0 x11, 0 x11},
{0 x00, 0 x12, 0 x12}, {0 x00, 0 x13, 0 x13}, {0 x00, 0 x14, 0 x14},
{0 x00, 0 x15, 0 x15}, {0 x00, 0 x16, 0 x16}, {0 x00, 0 x17, 0 x17},
{0 x00, 0 x18, 0 x18}, {0 x00, 0 x19, 0 x19}, {0 x00, 0 x1a, 0 x1a},
{0 x00, 0 x1b, 0 x1b}, {0 x00, 0 x1c, 0 x1c}, {0 x00, 0 x1d, 0 x1d},
{0 x00, 0 x1e, 0 x1e}, {0 x00, 0 x1f, 0 x1f}, {0 x00, 0 x20, 0 x20},
{0 x00, 0 x21, 0 x21}, {0 x00, 0 x22, 0 x22}, {0 x00, 0 x23, 0 x23},
{0 x00, 0 x24, 0 x24}, {0 x00, 0 x25, 0 x25}, {0 x00, 0 x26, 0 x26},
{0 x00, 0 x27, 0 x27}, {0 x00, 0 x28, 0 x28}, {0 x00, 0 x29, 0 x29},
{0 x00, 0 x2a, 0 x2a}, {0 x00, 0 x2b, 0 x2b}, {0 x00, 0 x2c, 0 x2c},
{0 x00, 0 x2d, 0 x2d}, {0 x00, 0 x2e, 0 x2e}, {0 x00, 0 x2f, 0 x2f},
{0 x00, 0 x30, 0 x30}, {0 x00, 0 x31, 0 x31}, {0 x00, 0 x32, 0 x32},
{0 x00, 0 x33, 0 x33}, {0 x00, 0 x34, 0 x34}, {0 x00, 0 x35, 0 x35},
{0 x00, 0 x36, 0 x36}, {0 x00, 0 x37, 0 x37}, {0 x00, 0 x38, 0 x38},
{0 x00, 0 x39, 0 x39}, {0 x00, 0 x3a, 0 x3a}, {0 x00, 0 x3b, 0 x3b},
{0 x00, 0 x3c, 0 x3c}, {0 x00, 0 x3d, 0 x3d}, {0 x00, 0 x3e, 0 x3e},
{0 x00, 0 x3f, 0 x3f}, {0 x00, 0 x40, 0 x40}, {0 x01, 0 x61, 0 x41},
{0 x01, 0 x62, 0 x42}, {0 x01, 0 x63, 0 x43}, {0 x01, 0 x64, 0 x44},
{0 x01, 0 x65, 0 x45}, {0 x01, 0 x66, 0 x46}, {0 x01, 0 x67, 0 x47},
{0 x01, 0 x68, 0 x48}, {0 x01, 0 x69, 0 x49}, {0 x01, 0 x6a, 0 x4a},
{0 x01, 0 x6b, 0 x4b}, {0 x01, 0 x6c, 0 x4c}, {0 x01, 0 x6d, 0 x4d},
{0 x01, 0 x6e, 0 x4e}, {0 x01, 0 x6f, 0 x4f}, {0 x01, 0 x70, 0 x50},
{0 x01, 0 x71, 0 x51}, {0 x01, 0 x72, 0 x52}, {0 x01, 0 x73, 0 x53},
{0 x01, 0 x74, 0 x54}, {0 x01, 0 x75, 0 x55}, {0 x01, 0 x76, 0 x56},
{0 x01, 0 x77, 0 x57}, {0 x01, 0 x78, 0 x58}, {0 x01, 0 x79, 0 x59},
{0 x01, 0 x7a, 0 x5a}, {0 x00, 0 x5b, 0 x5b}, {0 x00, 0 x5c, 0 x5c},
{0 x00, 0 x5d, 0 x5d}, {0 x00, 0 x5e, 0 x5e}, {0 x00, 0 x5f, 0 x5f},
{0 x00, 0 x60, 0 x60}, {0 x00, 0 x61, 0 x41}, {0 x00, 0 x62, 0 x42},
{0 x00, 0 x63, 0 x43}, {0 x00, 0 x64, 0 x44}, {0 x00, 0 x65, 0 x45},
{0 x00, 0 x66, 0 x46}, {0 x00, 0 x67, 0 x47}, {0 x00, 0 x68, 0 x48},
{0 x00, 0 x69, 0 x49}, {0 x00, 0 x6a, 0 x4a}, {0 x00, 0 x6b, 0 x4b},
{0 x00, 0 x6c, 0 x4c}, {0 x00, 0 x6d, 0 x4d}, {0 x00, 0 x6e, 0 x4e},
{0 x00, 0 x6f, 0 x4f}, {0 x00, 0 x70, 0 x50}, {0 x00, 0 x71, 0 x51},
{0 x00, 0 x72, 0 x52}, {0 x00, 0 x73, 0 x53}, {0 x00, 0 x74, 0 x54},
{0 x00, 0 x75, 0 x55}, {0 x00, 0 x76, 0 x56}, {0 x00, 0 x77, 0 x57},
{0 x00, 0 x78, 0 x58}, {0 x00, 0 x79, 0 x59}, {0 x00, 0 x7a, 0 x5a},
{0 x00, 0 x7b, 0 x7b}, {0 x00, 0 x7c, 0 x7c}, {0 x00, 0 x7d, 0 x7d},
{0 x00, 0 x7e, 0 x7e}, {0 x00, 0 x7f, 0 x7f}, {0 x00, 0 x80, 0 x80},
{0 x00, 0 x81, 0 x81}, {0 x00, 0 x82, 0 x82}, {0 x00, 0 x83, 0 x83},
{0 x00, 0 x84, 0 x84}, {0 x00, 0 x85, 0 x85}, {0 x00, 0 x86, 0 x86},
{0 x00, 0 x87, 0 x87}, {0 x00, 0 x88, 0 x88}, {0 x00, 0 x89, 0 x89},
{0 x00, 0 x8a, 0 x8a}, {0 x00, 0 x8b, 0 x8b}, {0 x00, 0 x8c, 0 x8c},
{0 x00, 0 x8d, 0 x8d}, {0 x00, 0 x8e, 0 x8e}, {0 x00, 0 x8f, 0 x8f},
{0 x00, 0 x90, 0 x90}, {0 x00, 0 x91, 0 x91}, {0 x00, 0 x92, 0 x92},
{0 x00, 0 x93, 0 x93}, {0 x00, 0 x94, 0 x94}, {0 x00, 0 x95, 0 x95},
{0 x00, 0 x96, 0 x96}, {0 x00, 0 x97, 0 x97}, {0 x00, 0 x98, 0 x98},
{0 x00, 0 x99, 0 x99}, {0 x00, 0 x9a, 0 x9a}, {0 x00, 0 x9b, 0 x9b},
{0 x00, 0 x9c, 0 x9c}, {0 x00, 0 x9d, 0 x9d}, {0 x00, 0 x9e, 0 x9e},
{0 x00, 0 x9f, 0 x9f}, {0 x00, 0 xa0, 0 xa0}, {0 x01, 0 xb1, 0 xa1},
{0 x00, 0 xa2, 0 xa2}, {0 x00, 0 xa3, 0 xa3}, {0 x00, 0 xa4, 0 xa4},
{0 x00, 0 xa5, 0 xa5}, {0 x01, 0 xb6, 0 xa6}, {0 x00, 0 xa7, 0 xa7},
{0 x00, 0 xa8, 0 xa8}, {0 x01, 0 x69, 0 xa9}, {0 x01, 0 xba, 0 xaa},
{0 x01, 0 xbb, 0 xab}, {0 x01, 0 xbc, 0 xac}, {0 x00, 0 xad, 0 xad},
{0 x00, 0 xae, 0 xae}, {0 x01, 0 xbf, 0 xaf}, {0 x00, 0 xb0, 0 xb0},
{0 x00, 0 xb1, 0 xa1}, {0 x00, 0 xb2, 0 xb2}, {0 x00, 0 xb3, 0 xb3},
{0 x00, 0 xb4, 0 xb4}, {0 x00, 0 xb5, 0 xb5}, {0 x00, 0 xb6, 0 xa6},
{0 x00, 0 xb7, 0 xb7}, {0 x00, 0 xb8, 0 xb8}, {0 x00, 0 xb9, 0 x49},
{0 x00, 0 xba, 0 xaa}, {0 x00, 0 xbb, 0 xab}, {0 x00, 0 xbc, 0 xac},
{0 x00, 0 xbd, 0 xbd}, {0 x00, 0 xbe, 0 xbe}, {0 x00, 0 xbf, 0 xaf},
{0 x01, 0 xe0, 0 xc0}, {0 x01, 0 xe1, 0 xc1}, {0 x01, 0 xe2, 0 xc2},
{0 x00, 0 xc3, 0 xc3}, {0 x01, 0 xe4, 0 xc4}, {0 x01, 0 xe5, 0 xc5},
{0 x01, 0 xe6, 0 xc6}, {0 x01, 0 xe7, 0 xc7}, {0 x01, 0 xe8, 0 xc8},
{0 x01, 0 xe9, 0 xc9}, {0 x01, 0 xea, 0 xca}, {0 x01, 0 xeb, 0 xcb},
{0 x01, 0 xec, 0 xcc}, {0 x01, 0 xed, 0 xcd}, {0 x01, 0 xee, 0 xce},
{0 x01, 0 xef, 0 xcf}, {0 x00, 0 xd0, 0 xd0}, {0 x01, 0 xf1, 0 xd1},
{0 x01, 0 xf2, 0 xd2}, {0 x01, 0 xf3, 0 xd3}, {0 x01, 0 xf4, 0 xd4},
{0 x01, 0 xf5, 0 xd5}, {0 x01, 0 xf6, 0 xd6}, {0 x00, 0 xd7, 0 xd7},
{0 x01, 0 xf8, 0 xd8}, {0 x01, 0 xf9, 0 xd9}, {0 x01, 0 xfa, 0 xda},
{0 x01, 0 xfb, 0 xdb}, {0 x01, 0 xfc, 0 xdc}, {0 x01, 0 xfd, 0 xdd},
{0 x01, 0 xfe, 0 xde}, {0 x00, 0 xdf, 0 xdf}, {0 x00, 0 xe0, 0 xc0},
{0 x00, 0 xe1, 0 xc1}, {0 x00, 0 xe2, 0 xc2}, {0 x00, 0 xe3, 0 xe3},
{0 x00, 0 xe4, 0 xc4}, {0 x00, 0 xe5, 0 xc5}, {0 x00, 0 xe6, 0 xc6},
{0 x00, 0 xe7, 0 xc7}, {0 x00, 0 xe8, 0 xc8}, {0 x00, 0 xe9, 0 xc9},
{0 x00, 0 xea, 0 xca}, {0 x00, 0 xeb, 0 xcb}, {0 x00, 0 xec, 0 xcc},
{0 x00, 0 xed, 0 xcd}, {0 x00, 0 xee, 0 xce}, {0 x00, 0 xef, 0 xcf},
{0 x00, 0 xf0, 0 xf0}, {0 x00, 0 xf1, 0 xd1}, {0 x00, 0 xf2, 0 xd2},
{0 x00, 0 xf3, 0 xd3}, {0 x00, 0 xf4, 0 xd4}, {0 x00, 0 xf5, 0 xd5},
{0 x00, 0 xf6, 0 xd6}, {0 x00, 0 xf7, 0 xf7}, {0 x00, 0 xf8, 0 xd8},
{0 x00, 0 xf9, 0 xd9}, {0 x00, 0 xfa, 0 xda}, {0 x00, 0 xfb, 0 xdb},
{0 x00, 0 xfc, 0 xdc}, {0 x00, 0 xfd, 0 xdd}, {0 x00, 0 xfe, 0 xde},
{0 x00, 0 xff, 0 xff}};
const struct cs_info iso4_tbl[] = {
{0 x00, 0 x00, 0 x00}, {0 x00, 0 x01, 0 x01}, {0 x00, 0 x02, 0 x02},
{0 x00, 0 x03, 0 x03}, {0 x00, 0 x04, 0 x04}, {0 x00, 0 x05, 0 x05},
{0 x00, 0 x06, 0 x06}, {0 x00, 0 x07, 0 x07}, {0 x00, 0 x08, 0 x08},
{0 x00, 0 x09, 0 x09}, {0 x00, 0 x0a, 0 x0a}, {0 x00, 0 x0b, 0 x0b},
{0 x00, 0 x0c, 0 x0c}, {0 x00, 0 x0d, 0 x0d}, {0 x00, 0 x0e, 0 x0e},
{0 x00, 0 x0f, 0 x0f}, {0 x00, 0 x10, 0 x10}, {0 x00, 0 x11, 0 x11},
{0 x00, 0 x12, 0 x12}, {0 x00, 0 x13, 0 x13}, {0 x00, 0 x14, 0 x14},
{0 x00, 0 x15, 0 x15}, {0 x00, 0 x16, 0 x16}, {0 x00, 0 x17, 0 x17},
{0 x00, 0 x18, 0 x18}, {0 x00, 0 x19, 0 x19}, {0 x00, 0 x1a, 0 x1a},
{0 x00, 0 x1b, 0 x1b}, {0 x00, 0 x1c, 0 x1c}, {0 x00, 0 x1d, 0 x1d},
{0 x00, 0 x1e, 0 x1e}, {0 x00, 0 x1f, 0 x1f}, {0 x00, 0 x20, 0 x20},
{0 x00, 0 x21, 0 x21}, {0 x00, 0 x22, 0 x22}, {0 x00, 0 x23, 0 x23},
{0 x00, 0 x24, 0 x24}, {0 x00, 0 x25, 0 x25}, {0 x00, 0 x26, 0 x26},
{0 x00, 0 x27, 0 x27}, {0 x00, 0 x28, 0 x28}, {0 x00, 0 x29, 0 x29},
{0 x00, 0 x2a, 0 x2a}, {0 x00, 0 x2b, 0 x2b}, {0 x00, 0 x2c, 0 x2c},
{0 x00, 0 x2d, 0 x2d}, {0 x00, 0 x2e, 0 x2e}, {0 x00, 0 x2f, 0 x2f},
{0 x00, 0 x30, 0 x30}, {0 x00, 0 x31, 0 x31}, {0 x00, 0 x32, 0 x32},
{0 x00, 0 x33, 0 x33}, {0 x00, 0 x34, 0 x34}, {0 x00, 0 x35, 0 x35},
{0 x00, 0 x36, 0 x36}, {0 x00, 0 x37, 0 x37}, {0 x00, 0 x38, 0 x38},
{0 x00, 0 x39, 0 x39}, {0 x00, 0 x3a, 0 x3a}, {0 x00, 0 x3b, 0 x3b},
{0 x00, 0 x3c, 0 x3c}, {0 x00, 0 x3d, 0 x3d}, {0 x00, 0 x3e, 0 x3e},
{0 x00, 0 x3f, 0 x3f}, {0 x00, 0 x40, 0 x40}, {0 x01, 0 x61, 0 x41},
{0 x01, 0 x62, 0 x42}, {0 x01, 0 x63, 0 x43}, {0 x01, 0 x64, 0 x44},
{0 x01, 0 x65, 0 x45}, {0 x01, 0 x66, 0 x46}, {0 x01, 0 x67, 0 x47},
{0 x01, 0 x68, 0 x48}, {0 x01, 0 x69, 0 x49}, {0 x01, 0 x6a, 0 x4a},
{0 x01, 0 x6b, 0 x4b}, {0 x01, 0 x6c, 0 x4c}, {0 x01, 0 x6d, 0 x4d},
{0 x01, 0 x6e, 0 x4e}, {0 x01, 0 x6f, 0 x4f}, {0 x01, 0 x70, 0 x50},
{0 x01, 0 x71, 0 x51}, {0 x01, 0 x72, 0 x52}, {0 x01, 0 x73, 0 x53},
{0 x01, 0 x74, 0 x54}, {0 x01, 0 x75, 0 x55}, {0 x01, 0 x76, 0 x56},
{0 x01, 0 x77, 0 x57}, {0 x01, 0 x78, 0 x58}, {0 x01, 0 x79, 0 x59},
{0 x01, 0 x7a, 0 x5a}, {0 x00, 0 x5b, 0 x5b}, {0 x00, 0 x5c, 0 x5c},
{0 x00, 0 x5d, 0 x5d}, {0 x00, 0 x5e, 0 x5e}, {0 x00, 0 x5f, 0 x5f},
{0 x00, 0 x60, 0 x60}, {0 x00, 0 x61, 0 x41}, {0 x00, 0 x62, 0 x42},
{0 x00, 0 x63, 0 x43}, {0 x00, 0 x64, 0 x44}, {0 x00, 0 x65, 0 x45},
{0 x00, 0 x66, 0 x46}, {0 x00, 0 x67, 0 x47}, {0 x00, 0 x68, 0 x48},
{0 x00, 0 x69, 0 x49}, {0 x00, 0 x6a, 0 x4a}, {0 x00, 0 x6b, 0 x4b},
{0 x00, 0 x6c, 0 x4c}, {0 x00, 0 x6d, 0 x4d}, {0 x00, 0 x6e, 0 x4e},
{0 x00, 0 x6f, 0 x4f}, {0 x00, 0 x70, 0 x50}, {0 x00, 0 x71, 0 x51},
{0 x00, 0 x72, 0 x52}, {0 x00, 0 x73, 0 x53}, {0 x00, 0 x74, 0 x54},
{0 x00, 0 x75, 0 x55}, {0 x00, 0 x76, 0 x56}, {0 x00, 0 x77, 0 x57},
{0 x00, 0 x78, 0 x58}, {0 x00, 0 x79, 0 x59}, {0 x00, 0 x7a, 0 x5a},
{0 x00, 0 x7b, 0 x7b}, {0 x00, 0 x7c, 0 x7c}, {0 x00, 0 x7d, 0 x7d},
{0 x00, 0 x7e, 0 x7e}, {0 x00, 0 x7f, 0 x7f}, {0 x00, 0 x80, 0 x80},
{0 x00, 0 x81, 0 x81}, {0 x00, 0 x82, 0 x82}, {0 x00, 0 x83, 0 x83},
{0 x00, 0 x84, 0 x84}, {0 x00, 0 x85, 0 x85}, {0 x00, 0 x86, 0 x86},
{0 x00, 0 x87, 0 x87}, {0 x00, 0 x88, 0 x88}, {0 x00, 0 x89, 0 x89},
{0 x00, 0 x8a, 0 x8a}, {0 x00, 0 x8b, 0 x8b}, {0 x00, 0 x8c, 0 x8c},
{0 x00, 0 x8d, 0 x8d}, {0 x00, 0 x8e, 0 x8e}, {0 x00, 0 x8f, 0 x8f},
{0 x00, 0 x90, 0 x90}, {0 x00, 0 x91, 0 x91}, {0 x00, 0 x92, 0 x92},
{0 x00, 0 x93, 0 x93}, {0 x00, 0 x94, 0 x94}, {0 x00, 0 x95, 0 x95},
{0 x00, 0 x96, 0 x96}, {0 x00, 0 x97, 0 x97}, {0 x00, 0 x98, 0 x98},
{0 x00, 0 x99, 0 x99}, {0 x00, 0 x9a, 0 x9a}, {0 x00, 0 x9b, 0 x9b},
{0 x00, 0 x9c, 0 x9c}, {0 x00, 0 x9d, 0 x9d}, {0 x00, 0 x9e, 0 x9e},
{0 x00, 0 x9f, 0 x9f}, {0 x00, 0 xa0, 0 xa0}, {0 x01, 0 xb1, 0 xa1},
{0 x00, 0 xa2, 0 xa2}, {0 x01, 0 xb3, 0 xa3}, {0 x00, 0 xa4, 0 xa4},
{0 x01, 0 xb5, 0 xa5}, {0 x01, 0 xb6, 0 xa6}, {0 x00, 0 xa7, 0 xa7},
{0 x00, 0 xa8, 0 xa8}, {0 x01, 0 xb9, 0 xa9}, {0 x01, 0 xba, 0 xaa},
{0 x01, 0 xbb, 0 xab}, {0 x01, 0 xbc, 0 xac}, {0 x00, 0 xad, 0 xad},
{0 x01, 0 xbe, 0 xae}, {0 x00, 0 xaf, 0 xaf}, {0 x00, 0 xb0, 0 xb0},
{0 x00, 0 xb1, 0 xa1}, {0 x00, 0 xb2, 0 xb2}, {0 x00, 0 xb3, 0 xa3},
{0 x00, 0 xb4, 0 xb4}, {0 x00, 0 xb5, 0 xa5}, {0 x00, 0 xb6, 0 xa6},
{0 x00, 0 xb7, 0 xb7}, {0 x00, 0 xb8, 0 xb8}, {0 x00, 0 xb9, 0 xa9},
{0 x00, 0 xba, 0 xaa}, {0 x00, 0 xbb, 0 xab}, {0 x00, 0 xbc, 0 xac},
{0 x00, 0 xbd, 0 xbd}, {0 x00, 0 xbe, 0 xae}, {0 x00, 0 xbf, 0 xbf},
{0 x01, 0 xe0, 0 xc0}, {0 x01, 0 xe1, 0 xc1}, {0 x01, 0 xe2, 0 xc2},
{0 x01, 0 xe3, 0 xc3}, {0 x01, 0 xe4, 0 xc4}, {0 x01, 0 xe5, 0 xc5},
{0 x01, 0 xe6, 0 xc6}, {0 x01, 0 xe7, 0 xc7}, {0 x01, 0 xe8, 0 xc8},
{0 x01, 0 xe9, 0 xc9}, {0 x01, 0 xea, 0 xca}, {0 x01, 0 xeb, 0 xcb},
{0 x01, 0 xec, 0 xcc}, {0 x01, 0 xed, 0 xcd}, {0 x01, 0 xee, 0 xce},
{0 x01, 0 xef, 0 xcf}, {0 x01, 0 xf0, 0 xd0}, {0 x01, 0 xf1, 0 xd1},
{0 x01, 0 xf2, 0 xd2}, {0 x01, 0 xf3, 0 xd3}, {0 x01, 0 xf4, 0 xd4},
{0 x01, 0 xf5, 0 xd5}, {0 x01, 0 xf6, 0 xd6}, {0 x00, 0 xd7, 0 xd7},
{0 x01, 0 xf8, 0 xd8}, {0 x01, 0 xf9, 0 xd9}, {0 x01, 0 xfa, 0 xda},
{0 x01, 0 xfb, 0 xdb}, {0 x01, 0 xfc, 0 xdc}, {0 x01, 0 xfd, 0 xdd},
{0 x01, 0 xfe, 0 xde}, {0 x00, 0 xdf, 0 xdf}, {0 x00, 0 xe0, 0 xc0},
{0 x00, 0 xe1, 0 xc1}, {0 x00, 0 xe2, 0 xc2}, {0 x00, 0 xe3, 0 xc3},
{0 x00, 0 xe4, 0 xc4}, {0 x00, 0 xe5, 0 xc5}, {0 x00, 0 xe6, 0 xc6},
{0 x00, 0 xe7, 0 xc7}, {0 x00, 0 xe8, 0 xc8}, {0 x00, 0 xe9, 0 xc9},
{0 x00, 0 xea, 0 xca}, {0 x00, 0 xeb, 0 xcb}, {0 x00, 0 xec, 0 xcc},
{0 x00, 0 xed, 0 xcd}, {0 x00, 0 xee, 0 xce}, {0 x00, 0 xef, 0 xcf},
{0 x00, 0 xf0, 0 xd0}, {0 x00, 0 xf1, 0 xd1}, {0 x00, 0 xf2, 0 xd2},
{0 x00, 0 xf3, 0 xd3}, {0 x00, 0 xf4, 0 xd4}, {0 x00, 0 xf5, 0 xd5},
{0 x00, 0 xf6, 0 xd6}, {0 x00, 0 xf7, 0 xf7}, {0 x00, 0 xf8, 0 xd8},
{0 x00, 0 xf9, 0 xd9}, {0 x00, 0 xfa, 0 xda}, {0 x00, 0 xfb, 0 xdb},
{0 x00, 0 xfc, 0 xdc}, {0 x00, 0 xfd, 0 xdd}, {0 x00, 0 xfe, 0 xde},
{0 x00, 0 xff, 0 xff}};
const struct cs_info iso5_tbl[] = {
{0 x00, 0 x00, 0 x00}, {0 x00, 0 x01, 0 x01}, {0 x00, 0 x02, 0 x02},
{0 x00, 0 x03, 0 x03}, {0 x00, 0 x04, 0 x04}, {0 x00, 0 x05, 0 x05},
{0 x00, 0 x06, 0 x06}, {0 x00, 0 x07, 0 x07}, {0 x00, 0 x08, 0 x08},
{0 x00, 0 x09, 0 x09}, {0 x00, 0 x0a, 0 x0a}, {0 x00, 0 x0b, 0 x0b},
{0 x00, 0 x0c, 0 x0c}, {0 x00, 0 x0d, 0 x0d}, {0 x00, 0 x0e, 0 x0e},
{0 x00, 0 x0f, 0 x0f}, {0 x00, 0 x10, 0 x10}, {0 x00, 0 x11, 0 x11},
{0 x00, 0 x12, 0 x12}, {0 x00, 0 x13, 0 x13}, {0 x00, 0 x14, 0 x14},
{0 x00, 0 x15, 0 x15}, {0 x00, 0 x16, 0 x16}, {0 x00, 0 x17, 0 x17},
{0 x00, 0 x18, 0 x18}, {0 x00, 0 x19, 0 x19}, {0 x00, 0 x1a, 0 x1a},
{0 x00, 0 x1b, 0 x1b}, {0 x00, 0 x1c, 0 x1c}, {0 x00, 0 x1d, 0 x1d},
{0 x00, 0 x1e, 0 x1e}, {0 x00, 0 x1f, 0 x1f}, {0 x00, 0 x20, 0 x20},
{0 x00, 0 x21, 0 x21}, {0 x00, 0 x22, 0 x22}, {0 x00, 0 x23, 0 x23},
{0 x00, 0 x24, 0 x24}, {0 x00, 0 x25, 0 x25}, {0 x00, 0 x26, 0 x26},
{0 x00, 0 x27, 0 x27}, {0 x00, 0 x28, 0 x28}, {0 x00, 0 x29, 0 x29},
{0 x00, 0 x2a, 0 x2a}, {0 x00, 0 x2b, 0 x2b}, {0 x00, 0 x2c, 0 x2c},
{0 x00, 0 x2d, 0 x2d}, {0 x00, 0 x2e, 0 x2e}, {0 x00, 0 x2f, 0 x2f},
{0 x00, 0 x30, 0 x30}, {0 x00, 0 x31, 0 x31}, {0 x00, 0 x32, 0 x32},
{0 x00, 0 x33, 0 x33}, {0 x00, 0 x34, 0 x34}, {0 x00, 0 x35, 0 x35},
{0 x00, 0 x36, 0 x36}, {0 x00, 0 x37, 0 x37}, {0 x00, 0 x38, 0 x38},
{0 x00, 0 x39, 0 x39}, {0 x00, 0 x3a, 0 x3a}, {0 x00, 0 x3b, 0 x3b},
{0 x00, 0 x3c, 0 x3c}, {0 x00, 0 x3d, 0 x3d}, {0 x00, 0 x3e, 0 x3e},
{0 x00, 0 x3f, 0 x3f}, {0 x00, 0 x40, 0 x40}, {0 x01, 0 x61, 0 x41},
{0 x01, 0 x62, 0 x42}, {0 x01, 0 x63, 0 x43}, {0 x01, 0 x64, 0 x44},
{0 x01, 0 x65, 0 x45}, {0 x01, 0 x66, 0 x46}, {0 x01, 0 x67, 0 x47},
{0 x01, 0 x68, 0 x48}, {0 x01, 0 x69, 0 x49}, {0 x01, 0 x6a, 0 x4a},
{0 x01, 0 x6b, 0 x4b}, {0 x01, 0 x6c, 0 x4c}, {0 x01, 0 x6d, 0 x4d},
{0 x01, 0 x6e, 0 x4e}, {0 x01, 0 x6f, 0 x4f}, {0 x01, 0 x70, 0 x50},
{0 x01, 0 x71, 0 x51}, {0 x01, 0 x72, 0 x52}, {0 x01, 0 x73, 0 x53},
{0 x01, 0 x74, 0 x54}, {0 x01, 0 x75, 0 x55}, {0 x01, 0 x76, 0 x56},
{0 x01, 0 x77, 0 x57}, {0 x01, 0 x78, 0 x58}, {0 x01, 0 x79, 0 x59},
{0 x01, 0 x7a, 0 x5a}, {0 x00, 0 x5b, 0 x5b}, {0 x00, 0 x5c, 0 x5c},
{0 x00, 0 x5d, 0 x5d}, {0 x00, 0 x5e, 0 x5e}, {0 x00, 0 x5f, 0 x5f},
{0 x00, 0 x60, 0 x60}, {0 x00, 0 x61, 0 x41}, {0 x00, 0 x62, 0 x42},
{0 x00, 0 x63, 0 x43}, {0 x00, 0 x64, 0 x44}, {0 x00, 0 x65, 0 x45},
{0 x00, 0 x66, 0 x46}, {0 x00, 0 x67, 0 x47}, {0 x00, 0 x68, 0 x48},
{0 x00, 0 x69, 0 x49}, {0 x00, 0 x6a, 0 x4a}, {0 x00, 0 x6b, 0 x4b},
{0 x00, 0 x6c, 0 x4c}, {0 x00, 0 x6d, 0 x4d}, {0 x00, 0 x6e, 0 x4e},
{0 x00, 0 x6f, 0 x4f}, {0 x00, 0 x70, 0 x50}, {0 x00, 0 x71, 0 x51},
{0 x00, 0 x72, 0 x52}, {0 x00, 0 x73, 0 x53}, {0 x00, 0 x74, 0 x54},
{0 x00, 0 x75, 0 x55}, {0 x00, 0 x76, 0 x56}, {0 x00, 0 x77, 0 x57},
{0 x00, 0 x78, 0 x58}, {0 x00, 0 x79, 0 x59}, {0 x00, 0 x7a, 0 x5a},
{0 x00, 0 x7b, 0 x7b}, {0 x00, 0 x7c, 0 x7c}, {0 x00, 0 x7d, 0 x7d},
{0 x00, 0 x7e, 0 x7e}, {0 x00, 0 x7f, 0 x7f}, {0 x00, 0 x80, 0 x80},
{0 x00, 0 x81, 0 x81}, {0 x00, 0 x82, 0 x82}, {0 x00, 0 x83, 0 x83},
{0 x00, 0 x84, 0 x84}, {0 x00, 0 x85, 0 x85}, {0 x00, 0 x86, 0 x86},
{0 x00, 0 x87, 0 x87}, {0 x00, 0 x88, 0 x88}, {0 x00, 0 x89, 0 x89},
{0 x00, 0 x8a, 0 x8a}, {0 x00, 0 x8b, 0 x8b}, {0 x00, 0 x8c, 0 x8c},
{0 x00, 0 x8d, 0 x8d}, {0 x00, 0 x8e, 0 x8e}, {0 x00, 0 x8f, 0 x8f},
{0 x00, 0 x90, 0 x90}, {0 x00, 0 x91, 0 x91}, {0 x00, 0 x92, 0 x92},
{0 x00, 0 x93, 0 x93}, {0 x00, 0 x94, 0 x94}, {0 x00, 0 x95, 0 x95},
{0 x00, 0 x96, 0 x96}, {0 x00, 0 x97, 0 x97}, {0 x00, 0 x98, 0 x98},
{0 x00, 0 x99, 0 x99}, {0 x00, 0 x9a, 0 x9a}, {0 x00, 0 x9b, 0 x9b},
{0 x00, 0 x9c, 0 x9c}, {0 x00, 0 x9d, 0 x9d}, {0 x00, 0 x9e, 0 x9e},
{0 x00, 0 x9f, 0 x9f}, {0 x00, 0 xa0, 0 xa0}, {0 x01, 0 xf1, 0 xa1},
{0 x01, 0 xf2, 0 xa2}, {0 x01, 0 xf3, 0 xa3}, {0 x01, 0 xf4, 0 xa4},
{0 x01, 0 xf5, 0 xa5}, {0 x01, 0 xf6, 0 xa6}, {0 x01, 0 xf7, 0 xa7},
{0 x01, 0 xf8, 0 xa8}, {0 x01, 0 xf9, 0 xa9}, {0 x01, 0 xfa, 0 xaa},
{0 x01, 0 xfb, 0 xab}, {0 x01, 0 xfc, 0 xac}, {0 x00, 0 xad, 0 xad},
{0 x01, 0 xfe, 0 xae}, {0 x01, 0 xff, 0 xaf}, {0 x01, 0 xd0, 0 xb0},
{0 x01, 0 xd1, 0 xb1}, {0 x01, 0 xd2, 0 xb2}, {0 x01, 0 xd3, 0 xb3},
{0 x01, 0 xd4, 0 xb4}, {0 x01, 0 xd5, 0 xb5}, {0 x01, 0 xd6, 0 xb6},
{0 x01, 0 xd7, 0 xb7}, {0 x01, 0 xd8, 0 xb8}, {0 x01, 0 xd9, 0 xb9},
{0 x01, 0 xda, 0 xba}, {0 x01, 0 xdb, 0 xbb}, {0 x01, 0 xdc, 0 xbc},
{0 x01, 0 xdd, 0 xbd}, {0 x01, 0 xde, 0 xbe}, {0 x01, 0 xdf, 0 xbf},
{0 x01, 0 xe0, 0 xc0}, {0 x01, 0 xe1, 0 xc1}, {0 x01, 0 xe2, 0 xc2},
{0 x01, 0 xe3, 0 xc3}, {0 x01, 0 xe4, 0 xc4}, {0 x01, 0 xe5, 0 xc5},
{0 x01, 0 xe6, 0 xc6}, {0 x01, 0 xe7, 0 xc7}, {0 x01, 0 xe8, 0 xc8},
{0 x01, 0 xe9, 0 xc9}, {0 x01, 0 xea, 0 xca}, {0 x01, 0 xeb, 0 xcb},
{0 x01, 0 xec, 0 xcc}, {0 x01, 0 xed, 0 xcd}, {0 x01, 0 xee, 0 xce},
{0 x01, 0 xef, 0 xcf}, {0 x00, 0 xd0, 0 xb0}, {0 x00, 0 xd1, 0 xb1},
{0 x00, 0 xd2, 0 xb2}, {0 x00, 0 xd3, 0 xb3}, {0 x00, 0 xd4, 0 xb4},
{0 x00, 0 xd5, 0 xb5}, {0 x00, 0 xd6, 0 xb6}, {0 x00, 0 xd7, 0 xb7},
{0 x00, 0 xd8, 0 xb8}, {0 x00, 0 xd9, 0 xb9}, {0 x00, 0 xda, 0 xba},
{0 x00, 0 xdb, 0 xbb}, {0 x00, 0 xdc, 0 xbc}, {0 x00, 0 xdd, 0 xbd},
{0 x00, 0 xde, 0 xbe}, {0 x00, 0 xdf, 0 xbf}, {0 x00, 0 xe0, 0 xc0},
{0 x00, 0 xe1, 0 xc1}, {0 x00, 0 xe2, 0 xc2}, {0 x00, 0 xe3, 0 xc3},
{0 x00, 0 xe4, 0 xc4}, {0 x00, 0 xe5, 0 xc5}, {0 x00, 0 xe6, 0 xc6},
{0 x00, 0 xe7, 0 xc7}, {0 x00, 0 xe8, 0 xc8}, {0 x00, 0 xe9, 0 xc9},
{0 x00, 0 xea, 0 xca}, {0 x00, 0 xeb, 0 xcb}, {0 x00, 0 xec, 0 xcc},
{0 x00, 0 xed, 0 xcd}, {0 x00, 0 xee, 0 xce}, {0 x00, 0 xef, 0 xcf},
{0 x00, 0 xf0, 0 xf0}, {0 x00, 0 xf1, 0 xa1}, {0 x00, 0 xf2, 0 xa2},
{0 x00, 0 xf3, 0 xa3}, {0 x00, 0 xf4, 0 xa4}, {0 x00, 0 xf5, 0 xa5},
{0 x00, 0 xf6, 0 xa6}, {0 x00, 0 xf7, 0 xa7}, {0 x00, 0 xf8, 0 xa8},
{0 x00, 0 xf9, 0 xa9}, {0 x00, 0 xfa, 0 xaa}, {0 x00, 0 xfb, 0 xab},
{0 x00, 0 xfc, 0 xac}, {0 x00, 0 xfd, 0 xfd}, {0 x00, 0 xfe, 0 xae},
{0 x00, 0 xff, 0 xaf}};
const struct cs_info iso6_tbl[] = {
{0 x00, 0 x00, 0 x00}, {0 x00, 0 x01, 0 x01}, {0 x00, 0 x02, 0 x02},
{0 x00, 0 x03, 0 x03}, {0 x00, 0 x04, 0 x04}, {0 x00, 0 x05, 0 x05},
{0 x00, 0 x06, 0 x06}, {0 x00, 0 x07, 0 x07}, {0 x00, 0 x08, 0 x08},
{0 x00, 0 x09, 0 x09}, {0 x00, 0 x0a, 0 x0a}, {0 x00, 0 x0b, 0 x0b},
{0 x00, 0 x0c, 0 x0c}, {0 x00, 0 x0d, 0 x0d}, {0 x00, 0 x0e, 0 x0e},
{0 x00, 0 x0f, 0 x0f}, {0 x00, 0 x10, 0 x10}, {0 x00, 0 x11, 0 x11},
{0 x00, 0 x12, 0 x12}, {0 x00, 0 x13, 0 x13}, {0 x00, 0 x14, 0 x14},
{0 x00, 0 x15, 0 x15}, {0 x00, 0 x16, 0 x16}, {0 x00, 0 x17, 0 x17},
{0 x00, 0 x18, 0 x18}, {0 x00, 0 x19, 0 x19}, {0 x00, 0 x1a, 0 x1a},
{0 x00, 0 x1b, 0 x1b}, {0 x00, 0 x1c, 0 x1c}, {0 x00, 0 x1d, 0 x1d},
{0 x00, 0 x1e, 0 x1e}, {0 x00, 0 x1f, 0 x1f}, {0 x00, 0 x20, 0 x20},
{0 x00, 0 x21, 0 x21}, {0 x00, 0 x22, 0 x22}, {0 x00, 0 x23, 0 x23},
{0 x00, 0 x24, 0 x24}, {0 x00, 0 x25, 0 x25}, {0 x00, 0 x26, 0 x26},
{0 x00, 0 x27, 0 x27}, {0 x00, 0 x28, 0 x28}, {0 x00, 0 x29, 0 x29},
{0 x00, 0 x2a, 0 x2a}, {0 x00, 0 x2b, 0 x2b}, {0 x00, 0 x2c, 0 x2c},
{0 x00, 0 x2d, 0 x2d}, {0 x00, 0 x2e, 0 x2e}, {0 x00, 0 x2f, 0 x2f},
{0 x00, 0 x30, 0 x30}, {0 x00, 0 x31, 0 x31}, {0 x00, 0 x32, 0 x32},
{0 x00, 0 x33, 0 x33}, {0 x00, 0 x34, 0 x34}, {0 x00, 0 x35, 0 x35},
{0 x00, 0 x36, 0 x36}, {0 x00, 0 x37, 0 x37}, {0 x00, 0 x38, 0 x38},
{0 x00, 0 x39, 0 x39}, {0 x00, 0 x3a, 0 x3a}, {0 x00, 0 x3b, 0 x3b},
{0 x00, 0 x3c, 0 x3c}, {0 x00, 0 x3d, 0 x3d}, {0 x00, 0 x3e, 0 x3e},
{0 x00, 0 x3f, 0 x3f}, {0 x00, 0 x40, 0 x40}, {0 x01, 0 x61, 0 x41},
{0 x01, 0 x62, 0 x42}, {0 x01, 0 x63, 0 x43}, {0 x01, 0 x64, 0 x44},
{0 x01, 0 x65, 0 x45}, {0 x01, 0 x66, 0 x46}, {0 x01, 0 x67, 0 x47},
{0 x01, 0 x68, 0 x48}, {0 x01, 0 x69, 0 x49}, {0 x01, 0 x6a, 0 x4a},
{0 x01, 0 x6b, 0 x4b}, {0 x01, 0 x6c, 0 x4c}, {0 x01, 0 x6d, 0 x4d},
{0 x01, 0 x6e, 0 x4e}, {0 x01, 0 x6f, 0 x4f}, {0 x01, 0 x70, 0 x50},
{0 x01, 0 x71, 0 x51}, {0 x01, 0 x72, 0 x52}, {0 x01, 0 x73, 0 x53},
{0 x01, 0 x74, 0 x54}, {0 x01, 0 x75, 0 x55}, {0 x01, 0 x76, 0 x56},
{0 x01, 0 x77, 0 x57}, {0 x01, 0 x78, 0 x58}, {0 x01, 0 x79, 0 x59},
{0 x01, 0 x7a, 0 x5a}, {0 x00, 0 x5b, 0 x5b}, {0 x00, 0 x5c, 0 x5c},
{0 x00, 0 x5d, 0 x5d}, {0 x00, 0 x5e, 0 x5e}, {0 x00, 0 x5f, 0 x5f},
{0 x00, 0 x60, 0 x60}, {0 x00, 0 x61, 0 x41}, {0 x00, 0 x62, 0 x42},
{0 x00, 0 x63, 0 x43}, {0 x00, 0 x64, 0 x44}, {0 x00, 0 x65, 0 x45},
{0 x00, 0 x66, 0 x46}, {0 x00, 0 x67, 0 x47}, {0 x00, 0 x68, 0 x48},
{0 x00, 0 x69, 0 x49}, {0 x00, 0 x6a, 0 x4a}, {0 x00, 0 x6b, 0 x4b},
{0 x00, 0 x6c, 0 x4c}, {0 x00, 0 x6d, 0 x4d}, {0 x00, 0 x6e, 0 x4e},
{0 x00, 0 x6f, 0 x4f}, {0 x00, 0 x70, 0 x50}, {0 x00, 0 x71, 0 x51},
{0 x00, 0 x72, 0 x52}, {0 x00, 0 x73, 0 x53}, {0 x00, 0 x74, 0 x54},
{0 x00, 0 x75, 0 x55}, {0 x00, 0 x76, 0 x56}, {0 x00, 0 x77, 0 x57},
{0 x00, 0 x78, 0 x58}, {0 x00, 0 x79, 0 x59}, {0 x00, 0 x7a, 0 x5a},
{0 x00, 0 x7b, 0 x7b}, {0 x00, 0 x7c, 0 x7c}, {0 x00, 0 x7d, 0 x7d},
{0 x00, 0 x7e, 0 x7e}, {0 x00, 0 x7f, 0 x7f}, {0 x00, 0 x80, 0 x80},
{0 x00, 0 x81, 0 x81}, {0 x00, 0 x82, 0 x82}, {0 x00, 0 x83, 0 x83},
{0 x00, 0 x84, 0 x84}, {0 x00, 0 x85, 0 x85}, {0 x00, 0 x86, 0 x86},
{0 x00, 0 x87, 0 x87}, {0 x00, 0 x88, 0 x88}, {0 x00, 0 x89, 0 x89},
{0 x00, 0 x8a, 0 x8a}, {0 x00, 0 x8b, 0 x8b}, {0 x00, 0 x8c, 0 x8c},
{0 x00, 0 x8d, 0 x8d}, {0 x00, 0 x8e, 0 x8e}, {0 x00, 0 x8f, 0 x8f},
{0 x00, 0 x90, 0 x90}, {0 x00, 0 x91, 0 x91}, {0 x00, 0 x92, 0 x92},
{0 x00, 0 x93, 0 x93}, {0 x00, 0 x94, 0 x94}, {0 x00, 0 x95, 0 x95},
{0 x00, 0 x96, 0 x96}, {0 x00, 0 x97, 0 x97}, {0 x00, 0 x98, 0 x98},
{0 x00, 0 x99, 0 x99}, {0 x00, 0 x9a, 0 x9a}, {0 x00, 0 x9b, 0 x9b},
{0 x00, 0 x9c, 0 x9c}, {0 x00, 0 x9d, 0 x9d}, {0 x00, 0 x9e, 0 x9e},
{0 x00, 0 x9f, 0 x9f}, {0 x00, 0 xa0, 0 xa0}, {0 x00, 0 xa1, 0 xa1},
{0 x00, 0 xa2, 0 xa2}, {0 x00, 0 xa3, 0 xa3}, {0 x00, 0 xa4, 0 xa4},
{0 x00, 0 xa5, 0 xa5}, {0 x00, 0 xa6, 0 xa6}, {0 x00, 0 xa7, 0 xa7},
{0 x00, 0 xa8, 0 xa8}, {0 x00, 0 xa9, 0 xa9}, {0 x00, 0 xaa, 0 xaa},
{0 x00, 0 xab, 0 xab}, {0 x00, 0 xac, 0 xac}, {0 x00, 0 xad, 0 xad},
{0 x00, 0 xae, 0 xae}, {0 x00, 0 xaf, 0 xaf}, {0 x00, 0 xb0, 0 xb0},
{0 x00, 0 xb1, 0 xb1}, {0 x00, 0 xb2, 0 xb2}, {0 x00, 0 xb3, 0 xb3},
{0 x00, 0 xb4, 0 xb4}, {0 x00, 0 xb5, 0 xb5}, {0 x00, 0 xb6, 0 xb6},
{0 x00, 0 xb7, 0 xb7}, {0 x00, 0 xb8, 0 xb8}, {0 x00, 0 xb9, 0 xb9},
{0 x00, 0 xba, 0 xba}, {0 x00, 0 xbb, 0 xbb}, {0 x00, 0 xbc, 0 xbc},
{0 x00, 0 xbd, 0 xbd}, {0 x00, 0 xbe, 0 xbe}, {0 x00, 0 xbf, 0 xbf},
{0 x00, 0 xc0, 0 xc0}, {0 x00, 0 xc1, 0 xc1}, {0 x00, 0 xc2, 0 xc2},
{0 x00, 0 xc3, 0 xc3}, {0 x00, 0 xc4, 0 xc4}, {0 x00, 0 xc5, 0 xc5},
{0 x00, 0 xc6, 0 xc6}, {0 x00, 0 xc7, 0 xc7}, {0 x00, 0 xc8, 0 xc8},
{0 x00, 0 xc9, 0 xc9}, {0 x00, 0 xca, 0 xca}, {0 x00, 0 xcb, 0 xcb},
{0 x00, 0 xcc, 0 xcc}, {0 x00, 0 xcd, 0 xcd}, {0 x00, 0 xce, 0 xce},
{0 x00, 0 xcf, 0 xcf}, {0 x00, 0 xd0, 0 xd0}, {0 x00, 0 xd1, 0 xd1},
{0 x00, 0 xd2, 0 xd2}, {0 x00, 0 xd3, 0 xd3}, {0 x00, 0 xd4, 0 xd4},
{0 x00, 0 xd5, 0 xd5}, {0 x00, 0 xd6, 0 xd6}, {0 x00, 0 xd7, 0 xd7},
{0 x00, 0 xd8, 0 xd8}, {0 x00, 0 xd9, 0 xd9}, {0 x00, 0 xda, 0 xda},
{0 x00, 0 xdb, 0 xdb}, {0 x00, 0 xdc, 0 xdc}, {0 x00, 0 xdd, 0 xdd},
{0 x00, 0 xde, 0 xde}, {0 x00, 0 xdf, 0 xdf}, {0 x00, 0 xe0, 0 xe0},
{0 x00, 0 xe1, 0 xe1}, {0 x00, 0 xe2, 0 xe2}, {0 x00, 0 xe3, 0 xe3},
{0 x00, 0 xe4, 0 xe4}, {0 x00, 0 xe5, 0 xe5}, {0 x00, 0 xe6, 0 xe6},
{0 x00, 0 xe7, 0 xe7}, {0 x00, 0 xe8, 0 xe8}, {0 x00, 0 xe9, 0 xe9},
{0 x00, 0 xea, 0 xea}, {0 x00, 0 xeb, 0 xeb}, {0 x00, 0 xec, 0 xec},
{0 x00, 0 xed, 0 xed}, {0 x00, 0 xee, 0 xee}, {0 x00, 0 xef, 0 xef},
{0 x00, 0 xf0, 0 xf0}, {0 x00, 0 xf1, 0 xf1}, {0 x00, 0 xf2, 0 xf2},
{0 x00, 0 xf3, 0 xf3}, {0 x00, 0 xf4, 0 xf4}, {0 x00, 0 xf5, 0 xf5},
{0 x00, 0 xf6, 0 xf6}, {0 x00, 0 xf7, 0 xf7}, {0 x00, 0 xf8, 0 xf8},
{0 x00, 0 xf9, 0 xf9}, {0 x00, 0 xfa, 0 xfa}, {0 x00, 0 xfb, 0 xfb},
{0 x00, 0 xfc, 0 xfc}, {0 x00, 0 xfd, 0 xfd}, {0 x00, 0 xfe, 0 xfe},
{0 x00, 0 xff, 0 xff}};
const struct cs_info iso7_tbl[] = {
{0 x00, 0 x00, 0 x00}, {0 x00, 0 x01, 0 x01}, {0 x00, 0 x02, 0 x02},
{0 x00, 0 x03, 0 x03}, {0 x00, 0 x04, 0 x04}, {0 x00, 0 x05, 0 x05},
{0 x00, 0 x06, 0 x06}, {0 x00, 0 x07, 0 x07}, {0 x00, 0 x08, 0 x08},
{0 x00, 0 x09, 0 x09}, {0 x00, 0 x0a, 0 x0a}, {0 x00, 0 x0b, 0 x0b},
{0 x00, 0 x0c, 0 x0c}, {0 x00, 0 x0d, 0 x0d}, {0 x00, 0 x0e, 0 x0e},
{0 x00, 0 x0f, 0 x0f}, {0 x00, 0 x10, 0 x10}, {0 x00, 0 x11, 0 x11},
{0 x00, 0 x12, 0 x12}, {0 x00, 0 x13, 0 x13}, {0 x00, 0 x14, 0 x14},
{0 x00, 0 x15, 0 x15}, {0 x00, 0 x16, 0 x16}, {0 x00, 0 x17, 0 x17},
{0 x00, 0 x18, 0 x18}, {0 x00, 0 x19, 0 x19}, {0 x00, 0 x1a, 0 x1a},
{0 x00, 0 x1b, 0 x1b}, {0 x00, 0 x1c, 0 x1c}, {0 x00, 0 x1d, 0 x1d},
{0 x00, 0 x1e, 0 x1e}, {0 x00, 0 x1f, 0 x1f}, {0 x00, 0 x20, 0 x20},
{0 x00, 0 x21, 0 x21}, {0 x00, 0 x22, 0 x22}, {0 x00, 0 x23, 0 x23},
{0 x00, 0 x24, 0 x24}, {0 x00, 0 x25, 0 x25}, {0 x00, 0 x26, 0 x26},
{0 x00, 0 x27, 0 x27}, {0 x00, 0 x28, 0 x28}, {0 x00, 0 x29, 0 x29},
{0 x00, 0 x2a, 0 x2a}, {0 x00, 0 x2b, 0 x2b}, {0 x00, 0 x2c, 0 x2c},
{0 x00, 0 x2d, 0 x2d}, {0 x00, 0 x2e, 0 x2e}, {0 x00, 0 x2f, 0 x2f},
{0 x00, 0 x30, 0 x30}, {0 x00, 0 x31, 0 x31}, {0 x00, 0 x32, 0 x32},
{0 x00, 0 x33, 0 x33}, {0 x00, 0 x34, 0 x34}, {0 x00, 0 x35, 0 x35},
{0 x00, 0 x36, 0 x36}, {0 x00, 0 x37, 0 x37}, {0 x00, 0 x38, 0 x38},
{0 x00, 0 x39, 0 x39}, {0 x00, 0 x3a, 0 x3a}, {0 x00, 0 x3b, 0 x3b},
{0 x00, 0 x3c, 0 x3c}, {0 x00, 0 x3d, 0 x3d}, {0 x00, 0 x3e, 0 x3e},
{0 x00, 0 x3f, 0 x3f}, {0 x00, 0 x40, 0 x40}, {0 x01, 0 x61, 0 x41},
{0 x01, 0 x62, 0 x42}, {0 x01, 0 x63, 0 x43}, {0 x01, 0 x64, 0 x44},
{0 x01, 0 x65, 0 x45}, {0 x01, 0 x66, 0 x46}, {0 x01, 0 x67, 0 x47},
{0 x01, 0 x68, 0 x48}, {0 x01, 0 x69, 0 x49}, {0 x01, 0 x6a, 0 x4a},
{0 x01, 0 x6b, 0 x4b}, {0 x01, 0 x6c, 0 x4c}, {0 x01, 0 x6d, 0 x4d},
{0 x01, 0 x6e, 0 x4e}, {0 x01, 0 x6f, 0 x4f}, {0 x01, 0 x70, 0 x50},
{0 x01, 0 x71, 0 x51}, {0 x01, 0 x72, 0 x52}, {0 x01, 0 x73, 0 x53},
{0 x01, 0 x74, 0 x54}, {0 x01, 0 x75, 0 x55}, {0 x01, 0 x76, 0 x56},
{0 x01, 0 x77, 0 x57}, {0 x01, 0 x78, 0 x58}, {0 x01, 0 x79, 0 x59},
{0 x01, 0 x7a, 0 x5a}, {0 x00, 0 x5b, 0 x5b}, {0 x00, 0 x5c, 0 x5c},
{0 x00, 0 x5d, 0 x5d}, {0 x00, 0 x5e, 0 x5e}, {0 x00, 0 x5f, 0 x5f},
{0 x00, 0 x60, 0 x60}, {0 x00, 0 x61, 0 x41}, {0 x00, 0 x62, 0 x42},
{0 x00, 0 x63, 0 x43}, {0 x00, 0 x64, 0 x44}, {0 x00, 0 x65, 0 x45},
{0 x00, 0 x66, 0 x46}, {0 x00, 0 x67, 0 x47}, {0 x00, 0 x68, 0 x48},
{0 x00, 0 x69, 0 x49}, {0 x00, 0 x6a, 0 x4a}, {0 x00, 0 x6b, 0 x4b},
{0 x00, 0 x6c, 0 x4c}, {0 x00, 0 x6d, 0 x4d}, {0 x00, 0 x6e, 0 x4e},
{0 x00, 0 x6f, 0 x4f}, {0 x00, 0 x70, 0 x50}, {0 x00, 0 x71, 0 x51},
{0 x00, 0 x72, 0 x52}, {0 x00, 0 x73, 0 x53}, {0 x00, 0 x74, 0 x54},
{0 x00, 0 x75, 0 x55}, {0 x00, 0 x76, 0 x56}, {0 x00, 0 x77, 0 x57},
{0 x00, 0 x78, 0 x58}, {0 x00, 0 x79, 0 x59}, {0 x00, 0 x7a, 0 x5a},
{0 x00, 0 x7b, 0 x7b}, {0 x00, 0 x7c, 0 x7c}, {0 x00, 0 x7d, 0 x7d},
{0 x00, 0 x7e, 0 x7e}, {0 x00, 0 x7f, 0 x7f}, {0 x00, 0 x80, 0 x80},
{0 x00, 0 x81, 0 x81}, {0 x00, 0 x82, 0 x82}, {0 x00, 0 x83, 0 x83},
{0 x00, 0 x84, 0 x84}, {0 x00, 0 x85, 0 x85}, {0 x00, 0 x86, 0 x86},
{0 x00, 0 x87, 0 x87}, {0 x00, 0 x88, 0 x88}, {0 x00, 0 x89, 0 x89},
{0 x00, 0 x8a, 0 x8a}, {0 x00, 0 x8b, 0 x8b}, {0 x00, 0 x8c, 0 x8c},
{0 x00, 0 x8d, 0 x8d}, {0 x00, 0 x8e, 0 x8e}, {0 x00, 0 x8f, 0 x8f},
{0 x00, 0 x90, 0 x90}, {0 x00, 0 x91, 0 x91}, {0 x00, 0 x92, 0 x92},
{0 x00, 0 x93, 0 x93}, {0 x00, 0 x94, 0 x94}, {0 x00, 0 x95, 0 x95},
{0 x00, 0 x96, 0 x96}, {0 x00, 0 x97, 0 x97}, {0 x00, 0 x98, 0 x98},
{0 x00, 0 x99, 0 x99}, {0 x00, 0 x9a, 0 x9a}, {0 x00, 0 x9b, 0 x9b},
{0 x00, 0 x9c, 0 x9c}, {0 x00, 0 x9d, 0 x9d}, {0 x00, 0 x9e, 0 x9e},
{0 x00, 0 x9f, 0 x9f}, {0 x00, 0 xa0, 0 xa0}, {0 x00, 0 xa1, 0 xa1},
{0 x00, 0 xa2, 0 xa2}, {0 x00, 0 xa3, 0 xa3}, {0 x00, 0 xa4, 0 xa4},
{0 x00, 0 xa5, 0 xa5}, {0 x00, 0 xa6, 0 xa6}, {0 x00, 0 xa7, 0 xa7},
{0 x00, 0 xa8, 0 xa8}, {0 x00, 0 xa9, 0 xa9}, {0 x00, 0 xaa, 0 xaa},
{0 x00, 0 xab, 0 xab}, {0 x00, 0 xac, 0 xac}, {0 x00, 0 xad, 0 xad},
{0 x00, 0 xae, 0 xae}, {0 x00, 0 xaf, 0 xaf}, {0 x00, 0 xb0, 0 xb0},
{0 x00, 0 xb1, 0 xb1}, {0 x00, 0 xb2, 0 xb2}, {0 x00, 0 xb3, 0 xb3},
{0 x00, 0 xb4, 0 xb4}, {0 x00, 0 xb5, 0 xb5}, {0 x01, 0 xdc, 0 xb6},
{0 x00, 0 xb7, 0 xb7}, {0 x01, 0 xdd, 0 xb8}, {0 x01, 0 xde, 0 xb9},
{0 x01, 0 xdf, 0 xba}, {0 x00, 0 xbb, 0 xbb}, {0 x01, 0 xfc, 0 xbc},
{0 x00, 0 xbd, 0 xbd}, {0 x01, 0 xfd, 0 xbe}, {0 x01, 0 xfe, 0 xbf},
{0 x00, 0 xc0, 0 xc0}, {0 x01, 0 xe1, 0 xc1}, {0 x01, 0 xe2, 0 xc2},
{0 x01, 0 xe3, 0 xc3}, {0 x01, 0 xe4, 0 xc4}, {0 x01, 0 xe5, 0 xc5},
{0 x01, 0 xe6, 0 xc6}, {0 x01, 0 xe7, 0 xc7}, {0 x01, 0 xe8, 0 xc8},
{0 x01, 0 xe9, 0 xc9}, {0 x01, 0 xea, 0 xca}, {0 x01, 0 xeb, 0 xcb},
{0 x01, 0 xec, 0 xcc}, {0 x01, 0 xed, 0 xcd}, {0 x01, 0 xee, 0 xce},
{0 x01, 0 xef, 0 xcf}, {0 x01, 0 xf0, 0 xd0}, {0 x01, 0 xf1, 0 xd1},
{0 x00, 0 xd2, 0 xd2}, {0 x01, 0 xf3, 0 xd3}, {0 x01, 0 xf4, 0 xd4},
{0 x01, 0 xf5, 0 xd5}, {0 x01, 0 xf6, 0 xd6}, {0 x01, 0 xf7, 0 xd7},
{0 x01, 0 xf8, 0 xd8}, {0 x01, 0 xf9, 0 xd9}, {0 x01, 0 xfa, 0 xda},
{0 x01, 0 xfb, 0 xdb}, {0 x00, 0 xdc, 0 xb6}, {0 x00, 0 xdd, 0 xb8},
{0 x00, 0 xde, 0 xb9}, {0 x00, 0 xdf, 0 xba}, {0 x00, 0 xe0, 0 xe0},
{0 x00, 0 xe1, 0 xc1}, {0 x00, 0 xe2, 0 xc2}, {0 x00, 0 xe3, 0 xc3},
{0 x00, 0 xe4, 0 xc4}, {0 x00, 0 xe5, 0 xc5}, {0 x00, 0 xe6, 0 xc6},
{0 x00, 0 xe7, 0 xc7}, {0 x00, 0 xe8, 0 xc8}, {0 x00, 0 xe9, 0 xc9},
{0 x00, 0 xea, 0 xca}, {0 x00, 0 xeb, 0 xcb}, {0 x00, 0 xec, 0 xcc},
{0 x00, 0 xed, 0 xcd}, {0 x00, 0 xee, 0 xce}, {0 x00, 0 xef, 0 xcf},
{0 x00, 0 xf0, 0 xd0}, {0 x00, 0 xf1, 0 xd1}, {0 x00, 0 xf2, 0 xd3},
{0 x00, 0 xf3, 0 xd3}, {0 x00, 0 xf4, 0 xd4}, {0 x00, 0 xf5, 0 xd5},
{0 x00, 0 xf6, 0 xd6}, {0 x00, 0 xf7, 0 xd7}, {0 x00, 0 xf8, 0 xd8},
{0 x00, 0 xf9, 0 xd9}, {0 x00, 0 xfa, 0 xda}, {0 x00, 0 xfb, 0 xdb},
{0 x00, 0 xfc, 0 xbc}, {0 x00, 0 xfd, 0 xbe}, {0 x00, 0 xfe, 0 xbf},
{0 x00, 0 xff, 0 xff}};
const struct cs_info iso8_tbl[] = {
{0 x00, 0 x00, 0 x00}, {0 x00, 0 x01, 0 x01}, {0 x00, 0 x02, 0 x02},
{0 x00, 0 x03, 0 x03}, {0 x00, 0 x04, 0 x04}, {0 x00, 0 x05, 0 x05},
{0 x00, 0 x06, 0 x06}, {0 x00, 0 x07, 0 x07}, {0 x00, 0 x08, 0 x08},
{0 x00, 0 x09, 0 x09}, {0 x00, 0 x0a, 0 x0a}, {0 x00, 0 x0b, 0 x0b},
{0 x00, 0 x0c, 0 x0c}, {0 x00, 0 x0d, 0 x0d}, {0 x00, 0 x0e, 0 x0e},
{0 x00, 0 x0f, 0 x0f}, {0 x00, 0 x10, 0 x10}, {0 x00, 0 x11, 0 x11},
{0 x00, 0 x12, 0 x12}, {0 x00, 0 x13, 0 x13}, {0 x00, 0 x14, 0 x14},
{0 x00, 0 x15, 0 x15}, {0 x00, 0 x16, 0 x16}, {0 x00, 0 x17, 0 x17},
{0 x00, 0 x18, 0 x18}, {0 x00, 0 x19, 0 x19}, {0 x00, 0 x1a, 0 x1a},
{0 x00, 0 x1b, 0 x1b}, {0 x00, 0 x1c, 0 x1c}, {0 x00, 0 x1d, 0 x1d},
{0 x00, 0 x1e, 0 x1e}, {0 x00, 0 x1f, 0 x1f}, {0 x00, 0 x20, 0 x20},
{0 x00, 0 x21, 0 x21}, {0 x00, 0 x22, 0 x22}, {0 x00, 0 x23, 0 x23},
{0 x00, 0 x24, 0 x24}, {0 x00, 0 x25, 0 x25}, {0 x00, 0 x26, 0 x26},
{0 x00, 0 x27, 0 x27}, {0 x00, 0 x28, 0 x28}, {0 x00, 0 x29, 0 x29},
{0 x00, 0 x2a, 0 x2a}, {0 x00, 0 x2b, 0 x2b}, {0 x00, 0 x2c, 0 x2c},
{0 x00, 0 x2d, 0 x2d}, {0 x00, 0 x2e, 0 x2e}, {0 x00, 0 x2f, 0 x2f},
{0 x00, 0 x30, 0 x30}, {0 x00, 0 x31, 0 x31}, {0 x00, 0 x32, 0 x32},
{0 x00, 0 x33, 0 x33}, {0 x00, 0 x34, 0 x34}, {0 x00, 0 x35, 0 x35},
{0 x00, 0 x36, 0 x36}, {0 x00, 0 x37, 0 x37}, {0 x00, 0 x38, 0 x38},
{0 x00, 0 x39, 0 x39}, {0 x00, 0 x3a, 0 x3a}, {0 x00, 0 x3b, 0 x3b},
{0 x00, 0 x3c, 0 x3c}, {0 x00, 0 x3d, 0 x3d}, {0 x00, 0 x3e, 0 x3e},
{0 x00, 0 x3f, 0 x3f}, {0 x00, 0 x40, 0 x40}, {0 x01, 0 x61, 0 x41},
{0 x01, 0 x62, 0 x42}, {0 x01, 0 x63, 0 x43}, {0 x01, 0 x64, 0 x44},
{0 x01, 0 x65, 0 x45}, {0 x01, 0 x66, 0 x46}, {0 x01, 0 x67, 0 x47},
{0 x01, 0 x68, 0 x48}, {0 x01, 0 x69, 0 x49}, {0 x01, 0 x6a, 0 x4a},
{0 x01, 0 x6b, 0 x4b}, {0 x01, 0 x6c, 0 x4c}, {0 x01, 0 x6d, 0 x4d},
{0 x01, 0 x6e, 0 x4e}, {0 x01, 0 x6f, 0 x4f}, {0 x01, 0 x70, 0 x50},
{0 x01, 0 x71, 0 x51}, {0 x01, 0 x72, 0 x52}, {0 x01, 0 x73, 0 x53},
{0 x01, 0 x74, 0 x54}, {0 x01, 0 x75, 0 x55}, {0 x01, 0 x76, 0 x56},
{0 x01, 0 x77, 0 x57}, {0 x01, 0 x78, 0 x58}, {0 x01, 0 x79, 0 x59},
{0 x01, 0 x7a, 0 x5a}, {0 x00, 0 x5b, 0 x5b}, {0 x00, 0 x5c, 0 x5c},
{0 x00, 0 x5d, 0 x5d}, {0 x00, 0 x5e, 0 x5e}, {0 x00, 0 x5f, 0 x5f},
{0 x00, 0 x60, 0 x60}, {0 x00, 0 x61, 0 x41}, {0 x00, 0 x62, 0 x42},
{0 x00, 0 x63, 0 x43}, {0 x00, 0 x64, 0 x44}, {0 x00, 0 x65, 0 x45},
{0 x00, 0 x66, 0 x46}, {0 x00, 0 x67, 0 x47}, {0 x00, 0 x68, 0 x48},
{0 x00, 0 x69, 0 x49}, {0 x00, 0 x6a, 0 x4a}, {0 x00, 0 x6b, 0 x4b},
{0 x00, 0 x6c, 0 x4c}, {0 x00, 0 x6d, 0 x4d}, {0 x00, 0 x6e, 0 x4e},
{0 x00, 0 x6f, 0 x4f}, {0 x00, 0 x70, 0 x50}, {0 x00, 0 x71, 0 x51},
{0 x00, 0 x72, 0 x52}, {0 x00, 0 x73, 0 x53}, {0 x00, 0 x74, 0 x54},
{0 x00, 0 x75, 0 x55}, {0 x00, 0 x76, 0 x56}, {0 x00, 0 x77, 0 x57},
{0 x00, 0 x78, 0 x58}, {0 x00, 0 x79, 0 x59}, {0 x00, 0 x7a, 0 x5a},
{0 x00, 0 x7b, 0 x7b}, {0 x00, 0 x7c, 0 x7c}, {0 x00, 0 x7d, 0 x7d},
{0 x00, 0 x7e, 0 x7e}, {0 x00, 0 x7f, 0 x7f}, {0 x00, 0 x80, 0 x80},
{0 x00, 0 x81, 0 x81}, {0 x00, 0 x82, 0 x82}, {0 x00, 0 x83, 0 x83},
{0 x00, 0 x84, 0 x84}, {0 x00, 0 x85, 0 x85}, {0 x00, 0 x86, 0 x86},
{0 x00, 0 x87, 0 x87}, {0 x00, 0 x88, 0 x88}, {0 x00, 0 x89, 0 x89},
{0 x00, 0 x8a, 0 x8a}, {0 x00, 0 x8b, 0 x8b}, {0 x00, 0 x8c, 0 x8c},
{0 x00, 0 x8d, 0 x8d}, {0 x00, 0 x8e, 0 x8e}, {0 x00, 0 x8f, 0 x8f},
{0 x00, 0 x90, 0 x90}, {0 x00, 0 x91, 0 x91}, {0 x00, 0 x92, 0 x92},
{0 x00, 0 x93, 0 x93}, {0 x00, 0 x94, 0 x94}, {0 x00, 0 x95, 0 x95},
{0 x00, 0 x96, 0 x96}, {0 x00, 0 x97, 0 x97}, {0 x00, 0 x98, 0 x98},
{0 x00, 0 x99, 0 x99}, {0 x00, 0 x9a, 0 x9a}, {0 x00, 0 x9b, 0 x9b},
{0 x00, 0 x9c, 0 x9c}, {0 x00, 0 x9d, 0 x9d}, {0 x00, 0 x9e, 0 x9e},
{0 x00, 0 x9f, 0 x9f}, {0 x00, 0 xa0, 0 xa0}, {0 x00, 0 xa1, 0 xa1},
{0 x00, 0 xa2, 0 xa2}, {0 x00, 0 xa3, 0 xa3}, {0 x00, 0 xa4, 0 xa4},
{0 x00, 0 xa5, 0 xa5}, {0 x00, 0 xa6, 0 xa6}, {0 x00, 0 xa7, 0 xa7},
{0 x00, 0 xa8, 0 xa8}, {0 x00, 0 xa9, 0 xa9}, {0 x00, 0 xaa, 0 xaa},
{0 x00, 0 xab, 0 xab}, {0 x00, 0 xac, 0 xac}, {0 x00, 0 xad, 0 xad},
{0 x00, 0 xae, 0 xae}, {0 x00, 0 xaf, 0 xaf}, {0 x00, 0 xb0, 0 xb0},
{0 x00, 0 xb1, 0 xb1}, {0 x00, 0 xb2, 0 xb2}, {0 x00, 0 xb3, 0 xb3},
{0 x00, 0 xb4, 0 xb4}, {0 x00, 0 xb5, 0 xb5}, {0 x00, 0 xb6, 0 xb6},
{0 x00, 0 xb7, 0 xb7}, {0 x00, 0 xb8, 0 xb8}, {0 x00, 0 xb9, 0 xb9},
{0 x00, 0 xba, 0 xba}, {0 x00, 0 xbb, 0 xbb}, {0 x00, 0 xbc, 0 xbc},
{0 x00, 0 xbd, 0 xbd}, {0 x00, 0 xbe, 0 xbe}, {0 x00, 0 xbf, 0 xbf},
{0 x00, 0 xc0, 0 xc0}, {0 x00, 0 xc1, 0 xc1}, {0 x00, 0 xc2, 0 xc2},
{0 x00, 0 xc3, 0 xc3}, {0 x00, 0 xc4, 0 xc4}, {0 x00, 0 xc5, 0 xc5},
{0 x00, 0 xc6, 0 xc6}, {0 x00, 0 xc7, 0 xc7}, {0 x00, 0 xc8, 0 xc8},
{0 x00, 0 xc9, 0 xc9}, {0 x00, 0 xca, 0 xca}, {0 x00, 0 xcb, 0 xcb},
{0 x00, 0 xcc, 0 xcc}, {0 x00, 0 xcd, 0 xcd}, {0 x00, 0 xce, 0 xce},
{0 x00, 0 xcf, 0 xcf}, {0 x00, 0 xd0, 0 xd0}, {0 x00, 0 xd1, 0 xd1},
{0 x00, 0 xd2, 0 xd2}, {0 x00, 0 xd3, 0 xd3}, {0 x00, 0 xd4, 0 xd4},
{0 x00, 0 xd5, 0 xd5}, {0 x00, 0 xd6, 0 xd6}, {0 x00, 0 xd7, 0 xd7},
{0 x00, 0 xd8, 0 xd8}, {0 x00, 0 xd9, 0 xd9}, {0 x00, 0 xda, 0 xda},
{0 x00, 0 xdb, 0 xdb}, {0 x00, 0 xdc, 0 xdc}, {0 x00, 0 xdd, 0 xdd},
{0 x00, 0 xde, 0 xde}, {0 x00, 0 xdf, 0 xdf}, {0 x00, 0 xe0, 0 xe0},
{0 x00, 0 xe1, 0 xe1}, {0 x00, 0 xe2, 0 xe2}, {0 x00, 0 xe3, 0 xe3},
{0 x00, 0 xe4, 0 xe4}, {0 x00, 0 xe5, 0 xe5}, {0 x00, 0 xe6, 0 xe6},
{0 x00, 0 xe7, 0 xe7}, {0 x00, 0 xe8, 0 xe8}, {0 x00, 0 xe9, 0 xe9},
{0 x00, 0 xea, 0 xea}, {0 x00, 0 xeb, 0 xeb}, {0 x00, 0 xec, 0 xec},
{0 x00, 0 xed, 0 xed}, {0 x00, 0 xee, 0 xee}, {0 x00, 0 xef, 0 xef},
{0 x00, 0 xf0, 0 xf0}, {0 x00, 0 xf1, 0 xf1}, {0 x00, 0 xf2, 0 xf2},
{0 x00, 0 xf3, 0 xf3}, {0 x00, 0 xf4, 0 xf4}, {0 x00, 0 xf5, 0 xf5},
{0 x00, 0 xf6, 0 xf6}, {0 x00, 0 xf7, 0 xf7}, {0 x00, 0 xf8, 0 xf8},
{0 x00, 0 xf9, 0 xf9}, {0 x00, 0 xfa, 0 xfa}, {0 x00, 0 xfb, 0 xfb},
{0 x00, 0 xfc, 0 xfc}, {0 x00, 0 xfd, 0 xfd}, {0 x00, 0 xfe, 0 xfe},
{0 x00, 0 xff, 0 xff}};
const struct cs_info iso9_tbl[] = {
{0 x00, 0 x00, 0 x00}, {0 x00, 0 x01, 0 x01}, {0 x00, 0 x02, 0 x02},
{0 x00, 0 x03, 0 x03}, {0 x00, 0 x04, 0 x04}, {0 x00, 0 x05, 0 x05},
{0 x00, 0 x06, 0 x06}, {0 x00, 0 x07, 0 x07}, {0 x00, 0 x08, 0 x08},
{0 x00, 0 x09, 0 x09}, {0 x00, 0 x0a, 0 x0a}, {0 x00, 0 x0b, 0 x0b},
{0 x00, 0 x0c, 0 x0c}, {0 x00, 0 x0d, 0 x0d}, {0 x00, 0 x0e, 0 x0e},
{0 x00, 0 x0f, 0 x0f}, {0 x00, 0 x10, 0 x10}, {0 x00, 0 x11, 0 x11},
{0 x00, 0 x12, 0 x12}, {0 x00, 0 x13, 0 x13}, {0 x00, 0 x14, 0 x14},
{0 x00, 0 x15, 0 x15}, {0 x00, 0 x16, 0 x16}, {0 x00, 0 x17, 0 x17},
{0 x00, 0 x18, 0 x18}, {0 x00, 0 x19, 0 x19}, {0 x00, 0 x1a, 0 x1a},
{0 x00, 0 x1b, 0 x1b}, {0 x00, 0 x1c, 0 x1c}, {0 x00, 0 x1d, 0 x1d},
{0 x00, 0 x1e, 0 x1e}, {0 x00, 0 x1f, 0 x1f}, {0 x00, 0 x20, 0 x20},
{0 x00, 0 x21, 0 x21}, {0 x00, 0 x22, 0 x22}, {0 x00, 0 x23, 0 x23},
{0 x00, 0 x24, 0 x24}, {0 x00, 0 x25, 0 x25}, {0 x00, 0 x26, 0 x26},
{0 x00, 0 x27, 0 x27}, {0 x00, 0 x28, 0 x28}, {0 x00, 0 x29, 0 x29},
{0 x00, 0 x2a, 0 x2a}, {0 x00, 0 x2b, 0 x2b}, {0 x00, 0 x2c, 0 x2c},
{0 x00, 0 x2d, 0 x2d}, {0 x00, 0 x2e, 0 x2e}, {0 x00, 0 x2f, 0 x2f},
{0 x00, 0 x30, 0 x30}, {0 x00, 0 x31, 0 x31}, {0 x00, 0 x32, 0 x32},
{0 x00, 0 x33, 0 x33}, {0 x00, 0 x34, 0 x34}, {0 x00, 0 x35, 0 x35},
{0 x00, 0 x36, 0 x36}, {0 x00, 0 x37, 0 x37}, {0 x00, 0 x38, 0 x38},
{0 x00, 0 x39, 0 x39}, {0 x00, 0 x3a, 0 x3a}, {0 x00, 0 x3b, 0 x3b},
{0 x00, 0 x3c, 0 x3c}, {0 x00, 0 x3d, 0 x3d}, {0 x00, 0 x3e, 0 x3e},
{0 x00, 0 x3f, 0 x3f}, {0 x00, 0 x40, 0 x40}, {0 x01, 0 x61, 0 x41},
{0 x01, 0 x62, 0 x42}, {0 x01, 0 x63, 0 x43}, {0 x01, 0 x64, 0 x44},
{0 x01, 0 x65, 0 x45}, {0 x01, 0 x66, 0 x46}, {0 x01, 0 x67, 0 x47},
{0 x01, 0 x68, 0 x48}, {0 x01, 0 xfd, 0 x49}, {0 x01, 0 x6a, 0 x4a},
{0 x01, 0 x6b, 0 x4b}, {0 x01, 0 x6c, 0 x4c}, {0 x01, 0 x6d, 0 x4d},
{0 x01, 0 x6e, 0 x4e}, {0 x01, 0 x6f, 0 x4f}, {0 x01, 0 x70, 0 x50},
{0 x01, 0 x71, 0 x51}, {0 x01, 0 x72, 0 x52}, {0 x01, 0 x73, 0 x53},
{0 x01, 0 x74, 0 x54}, {0 x01, 0 x75, 0 x55}, {0 x01, 0 x76, 0 x56},
{0 x01, 0 x77, 0 x57}, {0 x01, 0 x78, 0 x58}, {0 x01, 0 x79, 0 x59},
{0 x01, 0 x7a, 0 x5a}, {0 x00, 0 x5b, 0 x5b}, {0 x00, 0 x5c, 0 x5c},
{0 x00, 0 x5d, 0 x5d}, {0 x00, 0 x5e, 0 x5e}, {0 x00, 0 x5f, 0 x5f},
{0 x00, 0 x60, 0 x60}, {0 x00, 0 x61, 0 x41}, {0 x00, 0 x62, 0 x42},
{0 x00, 0 x63, 0 x43}, {0 x00, 0 x64, 0 x44}, {0 x00, 0 x65, 0 x45},
{0 x00, 0 x66, 0 x46}, {0 x00, 0 x67, 0 x47}, {0 x00, 0 x68, 0 x48},
{0 x00, 0 x69, 0 xdd}, {0 x00, 0 x6a, 0 x4a}, {0 x00, 0 x6b, 0 x4b},
{0 x00, 0 x6c, 0 x4c}, {0 x00, 0 x6d, 0 x4d}, {0 x00, 0 x6e, 0 x4e},
{0 x00, 0 x6f, 0 x4f}, {0 x00, 0 x70, 0 x50}, {0 x00, 0 x71, 0 x51},
{0 x00, 0 x72, 0 x52}, {0 x00, 0 x73, 0 x53}, {0 x00, 0 x74, 0 x54},
{0 x00, 0 x75, 0 x55}, {0 x00, 0 x76, 0 x56}, {0 x00, 0 x77, 0 x57},
{0 x00, 0 x78, 0 x58}, {0 x00, 0 x79, 0 x59}, {0 x00, 0 x7a, 0 x5a},
{0 x00, 0 x7b, 0 x7b}, {0 x00, 0 x7c, 0 x7c}, {0 x00, 0 x7d, 0 x7d},
{0 x00, 0 x7e, 0 x7e}, {0 x00, 0 x7f, 0 x7f}, {0 x00, 0 x80, 0 x80},
{0 x00, 0 x81, 0 x81}, {0 x00, 0 x82, 0 x82}, {0 x00, 0 x83, 0 x83},
{0 x00, 0 x84, 0 x84}, {0 x00, 0 x85, 0 x85}, {0 x00, 0 x86, 0 x86},
{0 x00, 0 x87, 0 x87}, {0 x00, 0 x88, 0 x88}, {0 x00, 0 x89, 0 x89},
{0 x00, 0 x8a, 0 x8a}, {0 x00, 0 x8b, 0 x8b}, {0 x00, 0 x8c, 0 x8c},
{0 x00, 0 x8d, 0 x8d}, {0 x00, 0 x8e, 0 x8e}, {0 x00, 0 x8f, 0 x8f},
{0 x00, 0 x90, 0 x90}, {0 x00, 0 x91, 0 x91}, {0 x00, 0 x92, 0 x92},
{0 x00, 0 x93, 0 x93}, {0 x00, 0 x94, 0 x94}, {0 x00, 0 x95, 0 x95},
{0 x00, 0 x96, 0 x96}, {0 x00, 0 x97, 0 x97}, {0 x00, 0 x98, 0 x98},
{0 x00, 0 x99, 0 x99}, {0 x00, 0 x9a, 0 x9a}, {0 x00, 0 x9b, 0 x9b},
{0 x00, 0 x9c, 0 x9c}, {0 x00, 0 x9d, 0 x9d}, {0 x00, 0 x9e, 0 x9e},
{0 x00, 0 x9f, 0 x9f}, {0 x00, 0 xa0, 0 xa0}, {0 x00, 0 xa1, 0 xa1},
{0 x00, 0 xa2, 0 xa2}, {0 x00, 0 xa3, 0 xa3}, {0 x00, 0 xa4, 0 xa4},
{0 x00, 0 xa5, 0 xa5}, {0 x00, 0 xa6, 0 xa6}, {0 x00, 0 xa7, 0 xa7},
{0 x00, 0 xa8, 0 xa8}, {0 x00, 0 xa9, 0 xa9}, {0 x00, 0 xaa, 0 xaa},
{0 x00, 0 xab, 0 xab}, {0 x00, 0 xac, 0 xac}, {0 x00, 0 xad, 0 xad},
{0 x00, 0 xae, 0 xae}, {0 x00, 0 xaf, 0 xaf}, {0 x00, 0 xb0, 0 xb0},
{0 x00, 0 xb1, 0 xb1}, {0 x00, 0 xb2, 0 xb2}, {0 x00, 0 xb3, 0 xb3},
{0 x00, 0 xb4, 0 xb4}, {0 x00, 0 xb5, 0 xb5}, {0 x00, 0 xb6, 0 xb6},
{0 x00, 0 xb7, 0 xb7}, {0 x00, 0 xb8, 0 xb8}, {0 x00, 0 xb9, 0 xb9},
{0 x00, 0 xba, 0 xba}, {0 x00, 0 xbb, 0 xbb}, {0 x00, 0 xbc, 0 xbc},
{0 x00, 0 xbd, 0 xbd}, {0 x00, 0 xbe, 0 xbe}, {0 x00, 0 xbf, 0 xbf},
{0 x01, 0 xe0, 0 xc0}, {0 x01, 0 xe1, 0 xc1}, {0 x01, 0 xe2, 0 xc2},
{0 x01, 0 xe3, 0 xc3}, {0 x01, 0 xe4, 0 xc4}, {0 x01, 0 xe5, 0 xc5},
{0 x01, 0 xe6, 0 xc6}, {0 x01, 0 xe7, 0 xc7}, {0 x01, 0 xe8, 0 xc8},
{0 x01, 0 xe9, 0 xc9}, {0 x01, 0 xea, 0 xca}, {0 x01, 0 xeb, 0 xcb},
{0 x01, 0 xec, 0 xcc}, {0 x01, 0 xed, 0 xcd}, {0 x01, 0 xee, 0 xce},
{0 x01, 0 xef, 0 xcf}, {0 x01, 0 xf0, 0 xd0}, {0 x01, 0 xf1, 0 xd1},
{0 x01, 0 xf2, 0 xd2}, {0 x01, 0 xf3, 0 xd3}, {0 x01, 0 xf4, 0 xd4},
{0 x01, 0 xf5, 0 xd5}, {0 x01, 0 xf6, 0 xd6}, {0 x00, 0 xd7, 0 xd7},
{0 x01, 0 xf8, 0 xd8}, {0 x01, 0 xf9, 0 xd9}, {0 x01, 0 xfa, 0 xda},
{0 x01, 0 xfb, 0 xdb}, {0 x01, 0 xfc, 0 xdc}, {0 x01, 0 x69, 0 xdd},
{0 x01, 0 xfe, 0 xde}, {0 x00, 0 xdf, 0 xdf}, {0 x00, 0 xe0, 0 xc0},
{0 x00, 0 xe1, 0 xc1}, {0 x00, 0 xe2, 0 xc2}, {0 x00, 0 xe3, 0 xc3},
{0 x00, 0 xe4, 0 xc4}, {0 x00, 0 xe5, 0 xc5}, {0 x00, 0 xe6, 0 xc6},
{0 x00, 0 xe7, 0 xc7}, {0 x00, 0 xe8, 0 xc8}, {0 x00, 0 xe9, 0 xc9},
{0 x00, 0 xea, 0 xca}, {0 x00, 0 xeb, 0 xcb}, {0 x00, 0 xec, 0 xcc},
{0 x00, 0 xed, 0 xcd}, {0 x00, 0 xee, 0 xce}, {0 x00, 0 xef, 0 xcf},
{0 x00, 0 xf0, 0 xd0}, {0 x00, 0 xf1, 0 xd1}, {0 x00, 0 xf2, 0 xd2},
{0 x00, 0 xf3, 0 xd3}, {0 x00, 0 xf4, 0 xd4}, {0 x00, 0 xf5, 0 xd5},
{0 x00, 0 xf6, 0 xd6}, {0 x00, 0 xf7, 0 xf7}, {0 x00, 0 xf8, 0 xd8},
{0 x00, 0 xf9, 0 xd9}, {0 x00, 0 xfa, 0 xda}, {0 x00, 0 xfb, 0 xdb},
{0 x00, 0 xfc, 0 xdc}, {0 x00, 0 xfd, 0 x49}, {0 x00, 0 xfe, 0 xde},
{0 x00, 0 xff, 0 xff}};
const struct cs_info iso10_tbl[] = {
{0 x00, 0 x00, 0 x00}, {0 x00, 0 x01, 0 x01}, {0 x00, 0 x02, 0 x02},
{0 x00, 0 x03, 0 x03}, {0 x00, 0 x04, 0 x04}, {0 x00, 0 x05, 0 x05},
{0 x00, 0 x06, 0 x06}, {0 x00, 0 x07, 0 x07}, {0 x00, 0 x08, 0 x08},
{0 x00, 0 x09, 0 x09}, {0 x00, 0 x0a, 0 x0a}, {0 x00, 0 x0b, 0 x0b},
{0 x00, 0 x0c, 0 x0c}, {0 x00, 0 x0d, 0 x0d}, {0 x00, 0 x0e, 0 x0e},
{0 x00, 0 x0f, 0 x0f}, {0 x00, 0 x10, 0 x10}, {0 x00, 0 x11, 0 x11},
{0 x00, 0 x12, 0 x12}, {0 x00, 0 x13, 0 x13}, {0 x00, 0 x14, 0 x14},
{0 x00, 0 x15, 0 x15}, {0 x00, 0 x16, 0 x16}, {0 x00, 0 x17, 0 x17},
{0 x00, 0 x18, 0 x18}, {0 x00, 0 x19, 0 x19}, {0 x00, 0 x1a, 0 x1a},
{0 x00, 0 x1b, 0 x1b}, {0 x00, 0 x1c, 0 x1c}, {0 x00, 0 x1d, 0 x1d},
{0 x00, 0 x1e, 0 x1e}, {0 x00, 0 x1f, 0 x1f}, {0 x00, 0 x20, 0 x20},
{0 x00, 0 x21, 0 x21}, {0 x00, 0 x22, 0 x22}, {0 x00, 0 x23, 0 x23},
{0 x00, 0 x24, 0 x24}, {0 x00, 0 x25, 0 x25}, {0 x00, 0 x26, 0 x26},
{0 x00, 0 x27, 0 x27}, {0 x00, 0 x28, 0 x28}, {0 x00, 0 x29, 0 x29},
{0 x00, 0 x2a, 0 x2a}, {0 x00, 0 x2b, 0 x2b}, {0 x00, 0 x2c, 0 x2c},
{0 x00, 0 x2d, 0 x2d}, {0 x00, 0 x2e, 0 x2e}, {0 x00, 0 x2f, 0 x2f},
{0 x00, 0 x30, 0 x30}, {0 x00, 0 x31, 0 x31}, {0 x00, 0 x32, 0 x32},
{0 x00, 0 x33, 0 x33}, {0 x00, 0 x34, 0 x34}, {0 x00, 0 x35, 0 x35},
{0 x00, 0 x36, 0 x36}, {0 x00, 0 x37, 0 x37}, {0 x00, 0 x38, 0 x38},
{0 x00, 0 x39, 0 x39}, {0 x00, 0 x3a, 0 x3a}, {0 x00, 0 x3b, 0 x3b},
{0 x00, 0 x3c, 0 x3c}, {0 x00, 0 x3d, 0 x3d}, {0 x00, 0 x3e, 0 x3e},
{0 x00, 0 x3f, 0 x3f}, {0 x00, 0 x40, 0 x40}, {0 x01, 0 x61, 0 x41},
{0 x01, 0 x62, 0 x42}, {0 x01, 0 x63, 0 x43}, {0 x01, 0 x64, 0 x44},
{0 x01, 0 x65, 0 x45}, {0 x01, 0 x66, 0 x46}, {0 x01, 0 x67, 0 x47},
{0 x01, 0 x68, 0 x48}, {0 x01, 0 x69, 0 x49}, {0 x01, 0 x6a, 0 x4a},
{0 x01, 0 x6b, 0 x4b}, {0 x01, 0 x6c, 0 x4c}, {0 x01, 0 x6d, 0 x4d},
{0 x01, 0 x6e, 0 x4e}, {0 x01, 0 x6f, 0 x4f}, {0 x01, 0 x70, 0 x50},
{0 x01, 0 x71, 0 x51}, {0 x01, 0 x72, 0 x52}, {0 x01, 0 x73, 0 x53},
{0 x01, 0 x74, 0 x54}, {0 x01, 0 x75, 0 x55}, {0 x01, 0 x76, 0 x56},
{0 x01, 0 x77, 0 x57}, {0 x01, 0 x78, 0 x58}, {0 x01, 0 x79, 0 x59},
{0 x01, 0 x7a, 0 x5a}, {0 x00, 0 x5b, 0 x5b}, {0 x00, 0 x5c, 0 x5c},
{0 x00, 0 x5d, 0 x5d}, {0 x00, 0 x5e, 0 x5e}, {0 x00, 0 x5f, 0 x5f},
{0 x00, 0 x60, 0 x60}, {0 x00, 0 x61, 0 x41}, {0 x00, 0 x62, 0 x42},
{0 x00, 0 x63, 0 x43}, {0 x00, 0 x64, 0 x44}, {0 x00, 0 x65, 0 x45},
{0 x00, 0 x66, 0 x46}, {0 x00, 0 x67, 0 x47}, {0 x00, 0 x68, 0 x48},
{0 x00, 0 x69, 0 x49}, {0 x00, 0 x6a, 0 x4a}, {0 x00, 0 x6b, 0 x4b},
{0 x00, 0 x6c, 0 x4c}, {0 x00, 0 x6d, 0 x4d}, {0 x00, 0 x6e, 0 x4e},
{0 x00, 0 x6f, 0 x4f}, {0 x00, 0 x70, 0 x50}, {0 x00, 0 x71, 0 x51},
{0 x00, 0 x72, 0 x52}, {0 x00, 0 x73, 0 x53}, {0 x00, 0 x74, 0 x54},
{0 x00, 0 x75, 0 x55}, {0 x00, 0 x76, 0 x56}, {0 x00, 0 x77, 0 x57},
{0 x00, 0 x78, 0 x58}, {0 x00, 0 x79, 0 x59}, {0 x00, 0 x7a, 0 x5a},
{0 x00, 0 x7b, 0 x7b}, {0 x00, 0 x7c, 0 x7c}, {0 x00, 0 x7d, 0 x7d},
{0 x00, 0 x7e, 0 x7e}, {0 x00, 0 x7f, 0 x7f}, {0 x00, 0 x80, 0 x80},
{0 x00, 0 x81, 0 x81}, {0 x00, 0 x82, 0 x82}, {0 x00, 0 x83, 0 x83},
{0 x00, 0 x84, 0 x84}, {0 x00, 0 x85, 0 x85}, {0 x00, 0 x86, 0 x86},
{0 x00, 0 x87, 0 x87}, {0 x00, 0 x88, 0 x88}, {0 x00, 0 x89, 0 x89},
{0 x00, 0 x8a, 0 x8a}, {0 x00, 0 x8b, 0 x8b}, {0 x00, 0 x8c, 0 x8c},
{0 x00, 0 x8d, 0 x8d}, {0 x00, 0 x8e, 0 x8e}, {0 x00, 0 x8f, 0 x8f},
{0 x00, 0 x90, 0 x90}, {0 x00, 0 x91, 0 x91}, {0 x00, 0 x92, 0 x92},
{0 x00, 0 x93, 0 x93}, {0 x00, 0 x94, 0 x94}, {0 x00, 0 x95, 0 x95},
{0 x00, 0 x96, 0 x96}, {0 x00, 0 x97, 0 x97}, {0 x00, 0 x98, 0 x98},
{0 x00, 0 x99, 0 x99}, {0 x00, 0 x9a, 0 x9a}, {0 x00, 0 x9b, 0 x9b},
{0 x00, 0 x9c, 0 x9c}, {0 x00, 0 x9d, 0 x9d}, {0 x00, 0 x9e, 0 x9e},
{0 x00, 0 x9f, 0 x9f}, {0 x00, 0 xa0, 0 xa0}, {0 x00, 0 xa1, 0 xa1},
{0 x00, 0 xa2, 0 xa2}, {0 x00, 0 xa3, 0 xa3}, {0 x00, 0 xa4, 0 xa4},
{0 x00, 0 xa5, 0 xa5}, {0 x00, 0 xa6, 0 xa6}, {0 x00, 0 xa7, 0 xa7},
{0 x00, 0 xa8, 0 xa8}, {0 x00, 0 xa9, 0 xa9}, {0 x00, 0 xaa, 0 xaa},
{0 x00, 0 xab, 0 xab}, {0 x00, 0 xac, 0 xac}, {0 x00, 0 xad, 0 xad},
{0 x00, 0 xae, 0 xae}, {0 x00, 0 xaf, 0 xaf}, {0 x00, 0 xb0, 0 xb0},
{0 x00, 0 xb1, 0 xb1}, {0 x00, 0 xb2, 0 xb2}, {0 x00, 0 xb3, 0 xb3},
{0 x00, 0 xb4, 0 xb4}, {0 x00, 0 xb5, 0 xb5}, {0 x00, 0 xb6, 0 xb6},
{0 x00, 0 xb7, 0 xb7}, {0 x00, 0 xb8, 0 xb8}, {0 x00, 0 xb9, 0 xb9},
{0 x00, 0 xba, 0 xba}, {0 x00, 0 xbb, 0 xbb}, {0 x00, 0 xbc, 0 xbc},
{0 x00, 0 xbd, 0 xbd}, {0 x00, 0 xbe, 0 xbe}, {0 x00, 0 xbf, 0 xbf},
{0 x00, 0 xc0, 0 xc0}, {0 x00, 0 xc1, 0 xc1}, {0 x00, 0 xc2, 0 xc2},
{0 x00, 0 xc3, 0 xc3}, {0 x00, 0 xc4, 0 xc4}, {0 x00, 0 xc5, 0 xc5},
{0 x00, 0 xc6, 0 xc6}, {0 x00, 0 xc7, 0 xc7}, {0 x00, 0 xc8, 0 xc8},
{0 x00, 0 xc9, 0 xc9}, {0 x00, 0 xca, 0 xca}, {0 x00, 0 xcb, 0 xcb},
{0 x00, 0 xcc, 0 xcc}, {0 x00, 0 xcd, 0 xcd}, {0 x00, 0 xce, 0 xce},
{0 x00, 0 xcf, 0 xcf}, {0 x00, 0 xd0, 0 xd0}, {0 x00, 0 xd1, 0 xd1},
{0 x00, 0 xd2, 0 xd2}, {0 x00, 0 xd3, 0 xd3}, {0 x00, 0 xd4, 0 xd4},
{0 x00, 0 xd5, 0 xd5}, {0 x00, 0 xd6, 0 xd6}, {0 x00, 0 xd7, 0 xd7},
{0 x00, 0 xd8, 0 xd8}, {0 x00, 0 xd9, 0 xd9}, {0 x00, 0 xda, 0 xda},
{0 x00, 0 xdb, 0 xdb}, {0 x00, 0 xdc, 0 xdc}, {0 x00, 0 xdd, 0 xdd},
{0 x00, 0 xde, 0 xde}, {0 x00, 0 xdf, 0 xdf}, {0 x00, 0 xe0, 0 xe0},
{0 x00, 0 xe1, 0 xe1}, {0 x00, 0 xe2, 0 xe2}, {0 x00, 0 xe3, 0 xe3},
{0 x00, 0 xe4, 0 xe4}, {0 x00, 0 xe5, 0 xe5}, {0 x00, 0 xe6, 0 xe6},
{0 x00, 0 xe7, 0 xe7}, {0 x00, 0 xe8, 0 xe8}, {0 x00, 0 xe9, 0 xe9},
{0 x00, 0 xea, 0 xea}, {0 x00, 0 xeb, 0 xeb}, {0 x00, 0 xec, 0 xec},
{0 x00, 0 xed, 0 xed}, {0 x00, 0 xee, 0 xee}, {0 x00, 0 xef, 0 xef},
{0 x00, 0 xf0, 0 xf0}, {0 x00, 0 xf1, 0 xf1}, {0 x00, 0 xf2, 0 xf2},
{0 x00, 0 xf3, 0 xf3}, {0 x00, 0 xf4, 0 xf4}, {0 x00, 0 xf5, 0 xf5},
{0 x00, 0 xf6, 0 xf6}, {0 x00, 0 xf7, 0 xf7}, {0 x00, 0 xf8, 0 xf8},
{0 x00, 0 xf9, 0 xf9}, {0 x00, 0 xfa, 0 xfa}, {0 x00, 0 xfb, 0 xfb},
{0 x00, 0 xfc, 0 xfc}, {0 x00, 0 xfd, 0 xfd}, {0 x00, 0 xfe, 0 xfe},
{0 x00, 0 xff, 0 xff}};
const struct cs_info koi8r_tbl[] = {
{0 x00, 0 x00, 0 x00}, {0 x00, 0 x01, 0 x01}, {0 x00, 0 x02, 0 x02},
{0 x00, 0 x03, 0 x03}, {0 x00, 0 x04, 0 x04}, {0 x00, 0 x05, 0 x05},
{0 x00, 0 x06, 0 x06}, {0 x00, 0 x07, 0 x07}, {0 x00, 0 x08, 0 x08},
{0 x00, 0 x09, 0 x09}, {0 x00, 0 x0a, 0 x0a}, {0 x00, 0 x0b, 0 x0b},
{0 x00, 0 x0c, 0 x0c}, {0 x00, 0 x0d, 0 x0d}, {0 x00, 0 x0e, 0 x0e},
{0 x00, 0 x0f, 0 x0f}, {0 x00, 0 x10, 0 x10}, {0 x00, 0 x11, 0 x11},
{0 x00, 0 x12, 0 x12}, {0 x00, 0 x13, 0 x13}, {0 x00, 0 x14, 0 x14},
{0 x00, 0 x15, 0 x15}, {0 x00, 0 x16, 0 x16}, {0 x00, 0 x17, 0 x17},
{0 x00, 0 x18, 0 x18}, {0 x00, 0 x19, 0 x19}, {0 x00, 0 x1a, 0 x1a},
{0 x00, 0 x1b, 0 x1b}, {0 x00, 0 x1c, 0 x1c}, {0 x00, 0 x1d, 0 x1d},
{0 x00, 0 x1e, 0 x1e}, {0 x00, 0 x1f, 0 x1f}, {0 x00, 0 x20, 0 x20},
{0 x00, 0 x21, 0 x21}, {0 x00, 0 x22, 0 x22}, {0 x00, 0 x23, 0 x23},
{0 x00, 0 x24, 0 x24}, {0 x00, 0 x25, 0 x25}, {0 x00, 0 x26, 0 x26},
{0 x00, 0 x27, 0 x27}, {0 x00, 0 x28, 0 x28}, {0 x00, 0 x29, 0 x29},
{0 x00, 0 x2a, 0 x2a}, {0 x00, 0 x2b, 0 x2b}, {0 x00, 0 x2c, 0 x2c},
{0 x00, 0 x2d, 0 x2d}, {0 x00, 0 x2e, 0 x2e}, {0 x00, 0 x2f, 0 x2f},
{0 x00, 0 x30, 0 x30}, {0 x00, 0 x31, 0 x31}, {0 x00, 0 x32, 0 x32},
{0 x00, 0 x33, 0 x33}, {0 x00, 0 x34, 0 x34}, {0 x00, 0 x35, 0 x35},
{0 x00, 0 x36, 0 x36}, {0 x00, 0 x37, 0 x37}, {0 x00, 0 x38, 0 x38},
{0 x00, 0 x39, 0 x39}, {0 x00, 0 x3a, 0 x3a}, {0 x00, 0 x3b, 0 x3b},
{0 x00, 0 x3c, 0 x3c}, {0 x00, 0 x3d, 0 x3d}, {0 x00, 0 x3e, 0 x3e},
{0 x00, 0 x3f, 0 x3f}, {0 x00, 0 x40, 0 x40}, {0 x01, 0 x61, 0 x41},
{0 x01, 0 x62, 0 x42}, {0 x01, 0 x63, 0 x43}, {0 x01, 0 x64, 0 x44},
{0 x01, 0 x65, 0 x45}, {0 x01, 0 x66, 0 x46}, {0 x01, 0 x67, 0 x47},
{0 x01, 0 x68, 0 x48}, {0 x01, 0 x69, 0 x49}, {0 x01, 0 x6a, 0 x4a},
{0 x01, 0 x6b, 0 x4b}, {0 x01, 0 x6c, 0 x4c}, {0 x01, 0 x6d, 0 x4d},
{0 x01, 0 x6e, 0 x4e}, {0 x01, 0 x6f, 0 x4f}, {0 x01, 0 x70, 0 x50},
{0 x01, 0 x71, 0 x51}, {0 x01, 0 x72, 0 x52}, {0 x01, 0 x73, 0 x53},
{0 x01, 0 x74, 0 x54}, {0 x01, 0 x75, 0 x55}, {0 x01, 0 x76, 0 x56},
{0 x01, 0 x77, 0 x57}, {0 x01, 0 x78, 0 x58}, {0 x01, 0 x79, 0 x59},
{0 x01, 0 x7a, 0 x5a}, {0 x00, 0 x5b, 0 x5b}, {0 x00, 0 x5c, 0 x5c},
{0 x00, 0 x5d, 0 x5d}, {0 x00, 0 x5e, 0 x5e}, {0 x00, 0 x5f, 0 x5f},
{0 x00, 0 x60, 0 x60}, {0 x00, 0 x61, 0 x41}, {0 x00, 0 x62, 0 x42},
{0 x00, 0 x63, 0 x43}, {0 x00, 0 x64, 0 x44}, {0 x00, 0 x65, 0 x45},
{0 x00, 0 x66, 0 x46}, {0 x00, 0 x67, 0 x47}, {0 x00, 0 x68, 0 x48},
{0 x00, 0 x69, 0 x49}, {0 x00, 0 x6a, 0 x4a}, {0 x00, 0 x6b, 0 x4b},
{0 x00, 0 x6c, 0 x4c}, {0 x00, 0 x6d, 0 x4d}, {0 x00, 0 x6e, 0 x4e},
{0 x00, 0 x6f, 0 x4f}, {0 x00, 0 x70, 0 x50}, {0 x00, 0 x71, 0 x51},
{0 x00, 0 x72, 0 x52}, {0 x00, 0 x73, 0 x53}, {0 x00, 0 x74, 0 x54},
{0 x00, 0 x75, 0 x55}, {0 x00, 0 x76, 0 x56}, {0 x00, 0 x77, 0 x57},
{0 x00, 0 x78, 0 x58}, {0 x00, 0 x79, 0 x59}, {0 x00, 0 x7a, 0 x5a},
{0 x00, 0 x7b, 0 x7b}, {0 x00, 0 x7c, 0 x7c}, {0 x00, 0 x7d, 0 x7d},
{0 x00, 0 x7e, 0 x7e}, {0 x00, 0 x7f, 0 x7f}, {0 x00, 0 x80, 0 x80},
{0 x00, 0 x81, 0 x81}, {0 x00, 0 x82, 0 x82}, {0 x00, 0 x83, 0 x83},
{0 x00, 0 x84, 0 x84}, {0 x00, 0 x85, 0 x85}, {0 x00, 0 x86, 0 x86},
{0 x00, 0 x87, 0 x87}, {0 x00, 0 x88, 0 x88}, {0 x00, 0 x89, 0 x89},
{0 x00, 0 x8a, 0 x8a}, {0 x00, 0 x8b, 0 x8b}, {0 x00, 0 x8c, 0 x8c},
{0 x00, 0 x8d, 0 x8d}, {0 x00, 0 x8e, 0 x8e}, {0 x00, 0 x8f, 0 x8f},
{0 x00, 0 x90, 0 x90}, {0 x00, 0 x91, 0 x91}, {0 x00, 0 x92, 0 x92},
{0 x00, 0 x93, 0 x93}, {0 x00, 0 x94, 0 x94}, {0 x00, 0 x95, 0 x95},
{0 x00, 0 x96, 0 x96}, {0 x00, 0 x97, 0 x97}, {0 x00, 0 x98, 0 x98},
{0 x00, 0 x99, 0 x99}, {0 x00, 0 x9a, 0 x9a}, {0 x00, 0 x9b, 0 x9b},
{0 x00, 0 x9c, 0 x9c}, {0 x00, 0 x9d, 0 x9d}, {0 x00, 0 x9e, 0 x9e},
{0 x00, 0 x9f, 0 x9f}, {0 x00, 0 xa0, 0 xa0}, {0 x00, 0 xa1, 0 xa1},
{0 x00, 0 xa2, 0 xa2}, {0 x00, 0 xa3, 0 xb3}, {0 x00, 0 xa4, 0 xa4},
{0 x00, 0 xa5, 0 xa5}, {0 x00, 0 xa6, 0 xa6}, {0 x00, 0 xa7, 0 xa7},
{0 x00, 0 xa8, 0 xa8}, {0 x00, 0 xa9, 0 xa9}, {0 x00, 0 xaa, 0 xaa},
{0 x00, 0 xab, 0 xab}, {0 x00, 0 xac, 0 xac}, {0 x00, 0 xad, 0 xad},
{0 x00, 0 xae, 0 xae}, {0 x00, 0 xaf, 0 xaf}, {0 x00, 0 xb0, 0 xb0},
{0 x00, 0 xb1, 0 xb1}, {0 x00, 0 xb2, 0 xb2}, {0 x01, 0 xa3, 0 xb3},
{0 x00, 0 xb4, 0 xb4}, {0 x00, 0 xb5, 0 xb5}, {0 x00, 0 xb6, 0 xb6},
{0 x00, 0 xb7, 0 xb7}, {0 x00, 0 xb8, 0 xb8}, {0 x00, 0 xb9, 0 xb9},
{0 x00, 0 xba, 0 xba}, {0 x00, 0 xbb, 0 xbb}, {0 x00, 0 xbc, 0 xbc},
{0 x00, 0 xbd, 0 xbd}, {0 x00, 0 xbe, 0 xbe}, {0 x00, 0 xbf, 0 xbf},
{0 x00, 0 xc0, 0 xe0}, {0 x00, 0 xc1, 0 xe1}, {0 x00, 0 xc2, 0 xe2},
{0 x00, 0 xc3, 0 xe3}, {0 x00, 0 xc4, 0 xe4}, {0 x00, 0 xc5, 0 xe5},
{0 x00, 0 xc6, 0 xe6}, {0 x00, 0 xc7, 0 xe7}, {0 x00, 0 xc8, 0 xe8},
{0 x00, 0 xc9, 0 xe9}, {0 x00, 0 xca, 0 xea}, {0 x00, 0 xcb, 0 xeb},
{0 x00, 0 xcc, 0 xec}, {0 x00, 0 xcd, 0 xed}, {0 x00, 0 xce, 0 xee},
{0 x00, 0 xcf, 0 xef}, {0 x00, 0 xd0, 0 xf0}, {0 x00, 0 xd1, 0 xf1},
{0 x00, 0 xd2, 0 xf2}, {0 x00, 0 xd3, 0 xf3}, {0 x00, 0 xd4, 0 xf4},
{0 x00, 0 xd5, 0 xf5}, {0 x00, 0 xd6, 0 xf6}, {0 x00, 0 xd7, 0 xf7},
{0 x00, 0 xd8, 0 xf8}, {0 x00, 0 xd9, 0 xf9}, {0 x00, 0 xda, 0 xfa},
{0 x00, 0 xdb, 0 xfb}, {0 x00, 0 xdc, 0 xfc}, {0 x00, 0 xdd, 0 xfd},
{0 x00, 0 xde, 0 xfe}, {0 x00, 0 xdf, 0 xff}, {0 x01, 0 xc0, 0 xe0},
{0 x01, 0 xc1, 0 xe1}, {0 x01, 0 xc2, 0 xe2}, {0 x01, 0 xc3, 0 xe3},
{0 x01, 0 xc4, 0 xe4}, {0 x01, 0 xc5, 0 xe5}, {0 x01, 0 xc6, 0 xe6},
{0 x01, 0 xc7, 0 xe7}, {0 x01, 0 xc8, 0 xe8}, {0 x01, 0 xc9, 0 xe9},
{0 x01, 0 xca, 0 xea}, {0 x01, 0 xcb, 0 xeb}, {0 x01, 0 xcc, 0 xec},
{0 x01, 0 xcd, 0 xed}, {0 x01, 0 xce, 0 xee}, {0 x01, 0 xcf, 0 xef},
{0 x01, 0 xd0, 0 xf0}, {0 x01, 0 xd1, 0 xf1}, {0 x01, 0 xd2, 0 xf2},
{0 x01, 0 xd3, 0 xf3}, {0 x01, 0 xd4, 0 xf4}, {0 x01, 0 xd5, 0 xf5},
{0 x01, 0 xd6, 0 xf6}, {0 x01, 0 xd7, 0 xf7}, {0 x01, 0 xd8, 0 xf8},
{0 x01, 0 xd9, 0 xf9}, {0 x01, 0 xda, 0 xfa}, {0 x01, 0 xdb, 0 xfb},
{0 x01, 0 xdc, 0 xfc}, {0 x01, 0 xdd, 0 xfd}, {0 x01, 0 xde, 0 xfe},
{0 x01, 0 xdf, 0 xff}};
const struct cs_info koi8u_tbl[] = {
{0 x00, 0 x00, 0 x00}, {0 x00, 0 x01, 0 x01}, {0 x00, 0 x02, 0 x02},
{0 x00, 0 x03, 0 x03}, {0 x00, 0 x04, 0 x04}, {0 x00, 0 x05, 0 x05},
{0 x00, 0 x06, 0 x06}, {0 x00, 0 x07, 0 x07}, {0 x00, 0 x08, 0 x08},
{0 x00, 0 x09, 0 x09}, {0 x00, 0 x0a, 0 x0a}, {0 x00, 0 x0b, 0 x0b},
{0 x00, 0 x0c, 0 x0c}, {0 x00, 0 x0d, 0 x0d}, {0 x00, 0 x0e, 0 x0e},
{0 x00, 0 x0f, 0 x0f}, {0 x00, 0 x10, 0 x10}, {0 x00, 0 x11, 0 x11},
{0 x00, 0 x12, 0 x12}, {0 x00, 0 x13, 0 x13}, {0 x00, 0 x14, 0 x14},
{0 x00, 0 x15, 0 x15}, {0 x00, 0 x16, 0 x16}, {0 x00, 0 x17, 0 x17},
{0 x00, 0 x18, 0 x18}, {0 x00, 0 x19, 0 x19}, {0 x00, 0 x1a, 0 x1a},
{0 x00, 0 x1b, 0 x1b}, {0 x00, 0 x1c, 0 x1c}, {0 x00, 0 x1d, 0 x1d},
{0 x00, 0 x1e, 0 x1e}, {0 x00, 0 x1f, 0 x1f}, {0 x00, 0 x20, 0 x20},
{0 x00, 0 x21, 0 x21}, {0 x00, 0 x22, 0 x22}, {0 x00, 0 x23, 0 x23},
{0 x00, 0 x24, 0 x24}, {0 x00, 0 x25, 0 x25}, {0 x00, 0 x26, 0 x26},
{0 x00, 0 x27, 0 x27}, {0 x00, 0 x28, 0 x28}, {0 x00, 0 x29, 0 x29},
{0 x00, 0 x2a, 0 x2a}, {0 x00, 0 x2b, 0 x2b}, {0 x00, 0 x2c, 0 x2c},
{0 x00, 0 x2d, 0 x2d}, {0 x00, 0 x2e, 0 x2e}, {0 x00, 0 x2f, 0 x2f},
{0 x00, 0 x30, 0 x30}, {0 x00, 0 x31, 0 x31}, {0 x00, 0 x32, 0 x32},
{0 x00, 0 x33, 0 x33}, {0 x00, 0 x34, 0 x34}, {0 x00, 0 x35, 0 x35},
{0 x00, 0 x36, 0 x36}, {0 x00, 0 x37, 0 x37}, {0 x00, 0 x38, 0 x38},
{0 x00, 0 x39, 0 x39}, {0 x00, 0 x3a, 0 x3a}, {0 x00, 0 x3b, 0 x3b},
{0 x00, 0 x3c, 0 x3c}, {0 x00, 0 x3d, 0 x3d}, {0 x00, 0 x3e, 0 x3e},
{0 x00, 0 x3f, 0 x3f}, {0 x00, 0 x40, 0 x40}, {0 x01, 0 x61, 0 x41},
{0 x01, 0 x62, 0 x42}, {0 x01, 0 x63, 0 x43}, {0 x01, 0 x64, 0 x44},
{0 x01, 0 x65, 0 x45}, {0 x01, 0 x66, 0 x46}, {0 x01, 0 x67, 0 x47},
{0 x01, 0 x68, 0 x48}, {0 x01, 0 x69, 0 x49}, {0 x01, 0 x6a, 0 x4a},
{0 x01, 0 x6b, 0 x4b}, {0 x01, 0 x6c, 0 x4c}, {0 x01, 0 x6d, 0 x4d},
{0 x01, 0 x6e, 0 x4e}, {0 x01, 0 x6f, 0 x4f}, {0 x01, 0 x70, 0 x50},
{0 x01, 0 x71, 0 x51}, {0 x01, 0 x72, 0 x52}, {0 x01, 0 x73, 0 x53},
{0 x01, 0 x74, 0 x54}, {0 x01, 0 x75, 0 x55}, {0 x01, 0 x76, 0 x56},
{0 x01, 0 x77, 0 x57}, {0 x01, 0 x78, 0 x58}, {0 x01, 0 x79, 0 x59},
{0 x01, 0 x7a, 0 x5a}, {0 x00, 0 x5b, 0 x5b}, {0 x00, 0 x5c, 0 x5c},
{0 x00, 0 x5d, 0 x5d}, {0 x00, 0 x5e, 0 x5e}, {0 x00, 0 x5f, 0 x5f},
{0 x00, 0 x60, 0 x60}, {0 x00, 0 x61, 0 x41}, {0 x00, 0 x62, 0 x42},
{0 x00, 0 x63, 0 x43}, {0 x00, 0 x64, 0 x44}, {0 x00, 0 x65, 0 x45},
{0 x00, 0 x66, 0 x46}, {0 x00, 0 x67, 0 x47}, {0 x00, 0 x68, 0 x48},
{0 x00, 0 x69, 0 x49}, {0 x00, 0 x6a, 0 x4a}, {0 x00, 0 x6b, 0 x4b},
{0 x00, 0 x6c, 0 x4c}, {0 x00, 0 x6d, 0 x4d}, {0 x00, 0 x6e, 0 x4e},
{0 x00, 0 x6f, 0 x4f}, {0 x00, 0 x70, 0 x50}, {0 x00, 0 x71, 0 x51},
{0 x00, 0 x72, 0 x52}, {0 x00, 0 x73, 0 x53}, {0 x00, 0 x74, 0 x54},
{0 x00, 0 x75, 0 x55}, {0 x00, 0 x76, 0 x56}, {0 x00, 0 x77, 0 x57},
{0 x00, 0 x78, 0 x58}, {0 x00, 0 x79, 0 x59}, {0 x00, 0 x7a, 0 x5a},
{0 x00, 0 x7b, 0 x7b}, {0 x00, 0 x7c, 0 x7c}, {0 x00, 0 x7d, 0 x7d},
{0 x00, 0 x7e, 0 x7e}, {0 x00, 0 x7f, 0 x7f}, {0 x00, 0 x80, 0 x80},
{0 x00, 0 x81, 0 x81}, {0 x00, 0 x82, 0 x82}, {0 x00, 0 x83, 0 x83},
{0 x00, 0 x84, 0 x84}, {0 x00, 0 x85, 0 x85}, {0 x00, 0 x86, 0 x86},
{0 x00, 0 x87, 0 x87}, {0 x00, 0 x88, 0 x88}, {0 x00, 0 x89, 0 x89},
{0 x00, 0 x8a, 0 x8a}, {0 x00, 0 x8b, 0 x8b}, {0 x00, 0 x8c, 0 x8c},
{0 x00, 0 x8d, 0 x8d}, {0 x00, 0 x8e, 0 x8e}, {0 x00, 0 x8f, 0 x8f},
{0 x00, 0 x90, 0 x90}, {0 x00, 0 x91, 0 x91}, {0 x00, 0 x92, 0 x92},
{0 x00, 0 x93, 0 x93}, {0 x00, 0 x94, 0 x94}, {0 x00, 0 x95, 0 x95},
{0 x00, 0 x96, 0 x96}, {0 x00, 0 x97, 0 x97}, {0 x00, 0 x98, 0 x98},
{0 x00, 0 x99, 0 x99}, {0 x00, 0 x9a, 0 x9a}, {0 x00, 0 x9b, 0 x9b},
{0 x00, 0 x9c, 0 x9c}, {0 x00, 0 x9d, 0 x9d}, {0 x00, 0 x9e, 0 x9e},
{0 x00, 0 x9f, 0 x9f}, {0 x00, 0 xa0, 0 xa0}, {0 x00, 0 xa1, 0 xa1},
{0 x00, 0 xa2, 0 xa2}, {0 x00, 0 xa3, 0 xb3}, {0 x00, 0 xa4, 0 xb4}, /* ie */
{0 x00, 0 xa5, 0 xa5}, {0 x00, 0 xa6, 0 xb6}, /* i */
{0 x00, 0 xa7, 0 xb7}, /* ii */
{0 x00, 0 xa8, 0 xa8}, {0 x00, 0 xa9, 0 xa9}, {0 x00, 0 xaa, 0 xaa},
{0 x00, 0 xab, 0 xab}, {0 x00, 0 xac, 0 xac}, {0 x00, 0 xad, 0 xbd}, /* g'' */
{0 x00, 0 xae, 0 xae}, {0 x00, 0 xaf, 0 xaf}, {0 x00, 0 xb0, 0 xb0},
{0 x00, 0 xb1, 0 xb1}, {0 x00, 0 xb2, 0 xb2}, {0 x01, 0 xa3, 0 xb3},
{0 x00, 0 xb4, 0 xb4}, /* IE */
{0 x00, 0 xb5, 0 xb5}, {0 x00, 0 xb6, 0 xb6}, /* I */
{0 x00, 0 xb7, 0 xb7}, /* II */
{0 x00, 0 xb8, 0 xb8}, {0 x00, 0 xb9, 0 xb9}, {0 x00, 0 xba, 0 xba},
{0 x00, 0 xbb, 0 xbb}, {0 x00, 0 xbc, 0 xbc}, {0 x00, 0 xbd, 0 xbd},
{0 x00, 0 xbe, 0 xbe}, {0 x00, 0 xbf, 0 xbf}, {0 x00, 0 xc0, 0 xe0},
{0 x00, 0 xc1, 0 xe1}, {0 x00, 0 xc2, 0 xe2}, {0 x00, 0 xc3, 0 xe3},
{0 x00, 0 xc4, 0 xe4}, {0 x00, 0 xc5, 0 xe5}, {0 x00, 0 xc6, 0 xe6},
{0 x00, 0 xc7, 0 xe7}, {0 x00, 0 xc8, 0 xe8}, {0 x00, 0 xc9, 0 xe9},
{0 x00, 0 xca, 0 xea}, {0 x00, 0 xcb, 0 xeb}, {0 x00, 0 xcc, 0 xec},
{0 x00, 0 xcd, 0 xed}, {0 x00, 0 xce, 0 xee}, {0 x00, 0 xcf, 0 xef},
{0 x00, 0 xd0, 0 xf0}, {0 x00, 0 xd1, 0 xf1}, {0 x00, 0 xd2, 0 xf2},
{0 x00, 0 xd3, 0 xf3}, {0 x00, 0 xd4, 0 xf4}, {0 x00, 0 xd5, 0 xf5},
{0 x00, 0 xd6, 0 xf6}, {0 x00, 0 xd7, 0 xf7}, {0 x00, 0 xd8, 0 xf8},
{0 x00, 0 xd9, 0 xf9}, {0 x00, 0 xda, 0 xfa}, {0 x00, 0 xdb, 0 xfb},
{0 x00, 0 xdc, 0 xfc}, {0 x00, 0 xdd, 0 xfd}, {0 x00, 0 xde, 0 xfe},
{0 x00, 0 xdf, 0 xff}, {0 x01, 0 xc0, 0 xe0}, {0 x01, 0 xc1, 0 xe1},
{0 x01, 0 xc2, 0 xe2}, {0 x01, 0 xc3, 0 xe3}, {0 x01, 0 xc4, 0 xe4},
{0 x01, 0 xc5, 0 xe5}, {0 x01, 0 xc6, 0 xe6}, {0 x01, 0 xc7, 0 xe7},
{0 x01, 0 xc8, 0 xe8}, {0 x01, 0 xc9, 0 xe9}, {0 x01, 0 xca, 0 xea},
{0 x01, 0 xcb, 0 xeb}, {0 x01, 0 xcc, 0 xec}, {0 x01, 0 xcd, 0 xed},
{0 x01, 0 xce, 0 xee}, {0 x01, 0 xcf, 0 xef}, {0 x01, 0 xd0, 0 xf0},
{0 x01, 0 xd1, 0 xf1}, {0 x01, 0 xd2, 0 xf2}, {0 x01, 0 xd3, 0 xf3},
{0 x01, 0 xd4, 0 xf4}, {0 x01, 0 xd5, 0 xf5}, {0 x01, 0 xd6, 0 xf6},
{0 x01, 0 xd7, 0 xf7}, {0 x01, 0 xd8, 0 xf8}, {0 x01, 0 xd9, 0 xf9},
{0 x01, 0 xda, 0 xfa}, {0 x01, 0 xdb, 0 xfb}, {0 x01, 0 xdc, 0 xfc},
{0 x01, 0 xdd, 0 xfd}, {0 x01, 0 xde, 0 xfe}, {0 x01, 0 xdf, 0 xff}};
const struct cs_info cp1251_tbl[] = {
{0 x00, 0 x00, 0 x00}, {0 x00, 0 x01, 0 x01}, {0 x00, 0 x02, 0 x02},
{0 x00, 0 x03, 0 x03}, {0 x00, 0 x04, 0 x04}, {0 x00, 0 x05, 0 x05},
{0 x00, 0 x06, 0 x06}, {0 x00, 0 x07, 0 x07}, {0 x00, 0 x08, 0 x08},
{0 x00, 0 x09, 0 x09}, {0 x00, 0 x0a, 0 x0a}, {0 x00, 0 x0b, 0 x0b},
{0 x00, 0 x0c, 0 x0c}, {0 x00, 0 x0d, 0 x0d}, {0 x00, 0 x0e, 0 x0e},
{0 x00, 0 x0f, 0 x0f}, {0 x00, 0 x10, 0 x10}, {0 x00, 0 x11, 0 x11},
{0 x00, 0 x12, 0 x12}, {0 x00, 0 x13, 0 x13}, {0 x00, 0 x14, 0 x14},
{0 x00, 0 x15, 0 x15}, {0 x00, 0 x16, 0 x16}, {0 x00, 0 x17, 0 x17},
{0 x00, 0 x18, 0 x18}, {0 x00, 0 x19, 0 x19}, {0 x00, 0 x1a, 0 x1a},
{0 x00, 0 x1b, 0 x1b}, {0 x00, 0 x1c, 0 x1c}, {0 x00, 0 x1d, 0 x1d},
{0 x00, 0 x1e, 0 x1e}, {0 x00, 0 x1f, 0 x1f}, {0 x00, 0 x20, 0 x20},
{0 x00, 0 x21, 0 x21}, {0 x00, 0 x22, 0 x22}, {0 x00, 0 x23, 0 x23},
{0 x00, 0 x24, 0 x24}, {0 x00, 0 x25, 0 x25}, {0 x00, 0 x26, 0 x26},
{0 x00, 0 x27, 0 x27}, {0 x00, 0 x28, 0 x28}, {0 x00, 0 x29, 0 x29},
{0 x00, 0 x2a, 0 x2a}, {0 x00, 0 x2b, 0 x2b}, {0 x00, 0 x2c, 0 x2c},
{0 x00, 0 x2d, 0 x2d}, {0 x00, 0 x2e, 0 x2e}, {0 x00, 0 x2f, 0 x2f},
{0 x00, 0 x30, 0 x30}, {0 x00, 0 x31, 0 x31}, {0 x00, 0 x32, 0 x32},
{0 x00, 0 x33, 0 x33}, {0 x00, 0 x34, 0 x34}, {0 x00, 0 x35, 0 x35},
{0 x00, 0 x36, 0 x36}, {0 x00, 0 x37, 0 x37}, {0 x00, 0 x38, 0 x38},
{0 x00, 0 x39, 0 x39}, {0 x00, 0 x3a, 0 x3a}, {0 x00, 0 x3b, 0 x3b},
{0 x00, 0 x3c, 0 x3c}, {0 x00, 0 x3d, 0 x3d}, {0 x00, 0 x3e, 0 x3e},
{0 x00, 0 x3f, 0 x3f}, {0 x00, 0 x40, 0 x40}, {0 x01, 0 x61, 0 x41},
{0 x01, 0 x62, 0 x42}, {0 x01, 0 x63, 0 x43}, {0 x01, 0 x64, 0 x44},
{0 x01, 0 x65, 0 x45}, {0 x01, 0 x66, 0 x46}, {0 x01, 0 x67, 0 x47},
{0 x01, 0 x68, 0 x48}, {0 x01, 0 x69, 0 x49}, {0 x01, 0 x6a, 0 x4a},
{0 x01, 0 x6b, 0 x4b}, {0 x01, 0 x6c, 0 x4c}, {0 x01, 0 x6d, 0 x4d},
{0 x01, 0 x6e, 0 x4e}, {0 x01, 0 x6f, 0 x4f}, {0 x01, 0 x70, 0 x50},
{0 x01, 0 x71, 0 x51}, {0 x01, 0 x72, 0 x52}, {0 x01, 0 x73, 0 x53},
{0 x01, 0 x74, 0 x54}, {0 x01, 0 x75, 0 x55}, {0 x01, 0 x76, 0 x56},
{0 x01, 0 x77, 0 x57}, {0 x01, 0 x78, 0 x58}, {0 x01, 0 x79, 0 x59},
{0 x01, 0 x7a, 0 x5a}, {0 x00, 0 x5b, 0 x5b}, {0 x00, 0 x5c, 0 x5c},
{0 x00, 0 x5d, 0 x5d}, {0 x00, 0 x5e, 0 x5e}, {0 x00, 0 x5f, 0 x5f},
{0 x00, 0 x60, 0 x60}, {0 x00, 0 x61, 0 x41}, {0 x00, 0 x62, 0 x42},
{0 x00, 0 x63, 0 x43}, {0 x00, 0 x64, 0 x44}, {0 x00, 0 x65, 0 x45},
{0 x00, 0 x66, 0 x46}, {0 x00, 0 x67, 0 x47}, {0 x00, 0 x68, 0 x48},
{0 x00, 0 x69, 0 x49}, {0 x00, 0 x6a, 0 x4a}, {0 x00, 0 x6b, 0 x4b},
{0 x00, 0 x6c, 0 x4c}, {0 x00, 0 x6d, 0 x4d}, {0 x00, 0 x6e, 0 x4e},
{0 x00, 0 x6f, 0 x4f}, {0 x00, 0 x70, 0 x50}, {0 x00, 0 x71, 0 x51},
{0 x00, 0 x72, 0 x52}, {0 x00, 0 x73, 0 x53}, {0 x00, 0 x74, 0 x54},
{0 x00, 0 x75, 0 x55}, {0 x00, 0 x76, 0 x56}, {0 x00, 0 x77, 0 x57},
{0 x00, 0 x78, 0 x58}, {0 x00, 0 x79, 0 x59}, {0 x00, 0 x7a, 0 x5a},
{0 x00, 0 x7b, 0 x7b}, {0 x00, 0 x7c, 0 x7c}, {0 x00, 0 x7d, 0 x7d},
{0 x00, 0 x7e, 0 x7e}, {0 x00, 0 x7f, 0 x7f}, {0 x01, 0 x90, 0 x80},
{0 x01, 0 x83, 0 x81}, {0 x00, 0 x82, 0 x82}, {0 x00, 0 x83, 0 x81},
{0 x00, 0 x84, 0 x84}, {0 x00, 0 x85, 0 x85}, {0 x00, 0 x86, 0 x86},
{0 x00, 0 x87, 0 x87}, {0 x00, 0 x88, 0 x88}, {0 x00, 0 x89, 0 x89},
{0 x01, 0 x9a, 0 x8a}, {0 x00, 0 x8b, 0 x8b}, {0 x01, 0 x9c, 0 x8c},
{0 x01, 0 x9d, 0 x8d}, {0 x01, 0 x9e, 0 x8e}, {0 x01, 0 x9f, 0 x8f},
{0 x00, 0 x90, 0 x80}, {0 x00, 0 x91, 0 x91}, {0 x00, 0 x92, 0 x92},
{0 x00, 0 x93, 0 x93}, {0 x00, 0 x94, 0 x94}, {0 x00, 0 x95, 0 x95},
{0 x00, 0 x96, 0 x96}, {0 x00, 0 x97, 0 x97}, {0 x00, 0 x98, 0 x98},
{0 x00, 0 x99, 0 x99}, {0 x00, 0 x9a, 0 x8a}, {0 x00, 0 x9b, 0 x9b},
{0 x00, 0 x9c, 0 x8c}, {0 x00, 0 x9d, 0 x8d}, {0 x00, 0 x9e, 0 x8e},
{0 x00, 0 x9f, 0 x8f}, {0 x00, 0 xa0, 0 xa0}, {0 x01, 0 xa2, 0 xa1},
{0 x00, 0 xa2, 0 xa1}, {0 x01, 0 xbc, 0 xa3}, {0 x00, 0 xa4, 0 xa4},
{0 x01, 0 xb4, 0 xa5}, {0 x00, 0 xa6, 0 xa6}, {0 x00, 0 xa7, 0 xa7},
{0 x01, 0 xb8, 0 xa8}, {0 x00, 0 xa9, 0 xa9}, {0 x01, 0 xba, 0 xaa},
{0 x00, 0 xab, 0 xab}, {0 x00, 0 xac, 0 xac}, {0 x00, 0 xad, 0 xad},
{0 x00, 0 xae, 0 xae}, {0 x01, 0 xbf, 0 xaf}, {0 x00, 0 xb0, 0 xb0},
{0 x00, 0 xb1, 0 xb1}, {0 x01, 0 xb3, 0 xb2}, {0 x00, 0 xb3, 0 xb2},
{0 x00, 0 xb4, 0 xa5}, {0 x00, 0 xb5, 0 xb5}, {0 x00, 0 xb6, 0 xb6},
{0 x00, 0 xb7, 0 xb7}, {0 x00, 0 xb8, 0 xa8}, {0 x00, 0 xb9, 0 xb9},
{0 x00, 0 xba, 0 xaa}, {0 x00, 0 xbb, 0 xbb}, {0 x00, 0 xbc, 0 xa3},
{0 x01, 0 xbe, 0 xbd}, {0 x00, 0 xbe, 0 xbd}, {0 x00, 0 xbf, 0 xaf},
{0 x01, 0 xe0, 0 xc0}, {0 x01, 0 xe1, 0 xc1}, {0 x01, 0 xe2, 0 xc2},
{0 x01, 0 xe3, 0 xc3}, {0 x01, 0 xe4, 0 xc4}, {0 x01, 0 xe5, 0 xc5},
{0 x01, 0 xe6, 0 xc6}, {0 x01, 0 xe7, 0 xc7}, {0 x01, 0 xe8, 0 xc8},
{0 x01, 0 xe9, 0 xc9}, {0 x01, 0 xea, 0 xca}, {0 x01, 0 xeb, 0 xcb},
{0 x01, 0 xec, 0 xcc}, {0 x01, 0 xed, 0 xcd}, {0 x01, 0 xee, 0 xce},
{0 x01, 0 xef, 0 xcf}, {0 x01, 0 xf0, 0 xd0}, {0 x01, 0 xf1, 0 xd1},
{0 x01, 0 xf2, 0 xd2}, {0 x01, 0 xf3, 0 xd3}, {0 x01, 0 xf4, 0 xd4},
{0 x01, 0 xf5, 0 xd5}, {0 x01, 0 xf6, 0 xd6}, {0 x01, 0 xf7, 0 xd7},
{0 x01, 0 xf8, 0 xd8}, {0 x01, 0 xf9, 0 xd9}, {0 x01, 0 xfa, 0 xda},
{0 x01, 0 xfb, 0 xdb}, {0 x01, 0 xfc, 0 xdc}, {0 x01, 0 xfd, 0 xdd},
{0 x01, 0 xfe, 0 xde}, {0 x01, 0 xff, 0 xdf}, {0 x00, 0 xe0, 0 xc0},
{0 x00, 0 xe1, 0 xc1}, {0 x00, 0 xe2, 0 xc2}, {0 x00, 0 xe3, 0 xc3},
{0 x00, 0 xe4, 0 xc4}, {0 x00, 0 xe5, 0 xc5}, {0 x00, 0 xe6, 0 xc6},
{0 x00, 0 xe7, 0 xc7}, {0 x00, 0 xe8, 0 xc8}, {0 x00, 0 xe9, 0 xc9},
{0 x00, 0 xea, 0 xca}, {0 x00, 0 xeb, 0 xcb}, {0 x00, 0 xec, 0 xcc},
{0 x00, 0 xed, 0 xcd}, {0 x00, 0 xee, 0 xce}, {0 x00, 0 xef, 0 xcf},
{0 x00, 0 xf0, 0 xd0}, {0 x00, 0 xf1, 0 xd1}, {0 x00, 0 xf2, 0 xd2},
{0 x00, 0 xf3, 0 xd3}, {0 x00, 0 xf4, 0 xd4}, {0 x00, 0 xf5, 0 xd5},
{0 x00, 0 xf6, 0 xd6}, {0 x00, 0 xf7, 0 xd7}, {0 x00, 0 xf8, 0 xd8},
{0 x00, 0 xf9, 0 xd9}, {0 x00, 0 xfa, 0 xda}, {0 x00, 0 xfb, 0 xdb},
{0 x00, 0 xfc, 0 xdc}, {0 x00, 0 xfd, 0 xdd}, {0 x00, 0 xfe, 0 xde},
{0 x00, 0 xff, 0 xdf}};
const struct cs_info iso13_tbl[] = {
{0 x00, 0 x00, 0 x00}, {0 x00, 0 x01, 0 x01}, {0 x00, 0 x02, 0 x02},
{0 x00, 0 x03, 0 x03}, {0 x00, 0 x04, 0 x04}, {0 x00, 0 x05, 0 x05},
{0 x00, 0 x06, 0 x06}, {0 x00, 0 x07, 0 x07}, {0 x00, 0 x08, 0 x08},
{0 x00, 0 x09, 0 x09}, {0 x00, 0 x0A, 0 x0A}, {0 x00, 0 x0B, 0 x0B},
{0 x00, 0 x0C, 0 x0C}, {0 x00, 0 x0D, 0 x0D}, {0 x00, 0 x0E, 0 x0E},
{0 x00, 0 x0F, 0 x0F}, {0 x00, 0 x10, 0 x10}, {0 x00, 0 x11, 0 x11},
{0 x00, 0 x12, 0 x12}, {0 x00, 0 x13, 0 x13}, {0 x00, 0 x14, 0 x14},
{0 x00, 0 x15, 0 x15}, {0 x00, 0 x16, 0 x16}, {0 x00, 0 x17, 0 x17},
{0 x00, 0 x18, 0 x18}, {0 x00, 0 x19, 0 x19}, {0 x00, 0 x1A, 0 x1A},
{0 x00, 0 x1B, 0 x1B}, {0 x00, 0 x1C, 0 x1C}, {0 x00, 0 x1D, 0 x1D},
{0 x00, 0 x1E, 0 x1E}, {0 x00, 0 x1F, 0 x1F}, {0 x00, 0 x20, 0 x20},
{0 x00, 0 x21, 0 x21}, {0 x00, 0 x22, 0 x22}, {0 x00, 0 x23, 0 x23},
{0 x00, 0 x24, 0 x24}, {0 x00, 0 x25, 0 x25}, {0 x00, 0 x26, 0 x26},
{0 x00, 0 x27, 0 x27}, {0 x00, 0 x28, 0 x28}, {0 x00, 0 x29, 0 x29},
{0 x00, 0 x2A, 0 x2A}, {0 x00, 0 x2B, 0 x2B}, {0 x00, 0 x2C, 0 x2C},
{0 x00, 0 x2D, 0 x2D}, {0 x00, 0 x2E, 0 x2E}, {0 x00, 0 x2F, 0 x2F},
{0 x00, 0 x30, 0 x30}, {0 x00, 0 x31, 0 x31}, {0 x00, 0 x32, 0 x32},
{0 x00, 0 x33, 0 x33}, {0 x00, 0 x34, 0 x34}, {0 x00, 0 x35, 0 x35},
{0 x00, 0 x36, 0 x36}, {0 x00, 0 x37, 0 x37}, {0 x00, 0 x38, 0 x38},
{0 x00, 0 x39, 0 x39}, {0 x00, 0 x3A, 0 x3A}, {0 x00, 0 x3B, 0 x3B},
{0 x00, 0 x3C, 0 x3C}, {0 x00, 0 x3D, 0 x3D}, {0 x00, 0 x3E, 0 x3E},
{0 x00, 0 x3F, 0 x3F}, {0 x00, 0 x40, 0 x40}, {0 x01, 0 x61, 0 x41},
{0 x01, 0 x62, 0 x42}, {0 x01, 0 x63, 0 x43}, {0 x01, 0 x64, 0 x44},
{0 x01, 0 x65, 0 x45}, {0 x01, 0 x66, 0 x46}, {0 x01, 0 x67, 0 x47},
{0 x01, 0 x68, 0 x48}, {0 x01, 0 x69, 0 x49}, {0 x01, 0 x6A, 0 x4A},
{0 x01, 0 x6B, 0 x4B}, {0 x01, 0 x6C, 0 x4C}, {0 x01, 0 x6D, 0 x4D},
{0 x01, 0 x6E, 0 x4E}, {0 x01, 0 x6F, 0 x4F}, {0 x01, 0 x70, 0 x50},
{0 x01, 0 x71, 0 x51}, {0 x01, 0 x72, 0 x52}, {0 x01, 0 x73, 0 x53},
{0 x01, 0 x74, 0 x54}, {0 x01, 0 x75, 0 x55}, {0 x01, 0 x76, 0 x56},
{0 x01, 0 x77, 0 x57}, {0 x01, 0 x78, 0 x58}, {0 x01, 0 x79, 0 x59},
{0 x01, 0 x7A, 0 x5A}, {0 x00, 0 x5B, 0 x5B}, {0 x00, 0 x5C, 0 x5C},
{0 x00, 0 x5D, 0 x5D}, {0 x00, 0 x5E, 0 x5E}, {0 x00, 0 x5F, 0 x5F},
{0 x00, 0 x60, 0 x60}, {0 x00, 0 x61, 0 x41}, {0 x00, 0 x62, 0 x42},
{0 x00, 0 x63, 0 x43}, {0 x00, 0 x64, 0 x44}, {0 x00, 0 x65, 0 x45},
{0 x00, 0 x66, 0 x46}, {0 x00, 0 x67, 0 x47}, {0 x00, 0 x68, 0 x48},
{0 x00, 0 x69, 0 x49}, {0 x00, 0 x6A, 0 x4A}, {0 x00, 0 x6B, 0 x4B},
{0 x00, 0 x6C, 0 x4C}, {0 x00, 0 x6D, 0 x4D}, {0 x00, 0 x6E, 0 x4E},
{0 x00, 0 x6F, 0 x4F}, {0 x00, 0 x70, 0 x50}, {0 x00, 0 x71, 0 x51},
{0 x00, 0 x72, 0 x52}, {0 x00, 0 x73, 0 x53}, {0 x00, 0 x74, 0 x54},
{0 x00, 0 x75, 0 x55}, {0 x00, 0 x76, 0 x56}, {0 x00, 0 x77, 0 x57},
{0 x00, 0 x78, 0 x58}, {0 x00, 0 x79, 0 x59}, {0 x00, 0 x7A, 0 x5A},
{0 x00, 0 x7B, 0 x7B}, {0 x00, 0 x7C, 0 x7C}, {0 x00, 0 x7D, 0 x7D},
{0 x00, 0 x7E, 0 x7E}, {0 x00, 0 x7F, 0 x7F}, {0 x00, 0 x80, 0 x80},
{0 x00, 0 x81, 0 x81}, {0 x00, 0 x82, 0 x82}, {0 x00, 0 x83, 0 x83},
{0 x00, 0 x84, 0 x84}, {0 x00, 0 x85, 0 x85}, {0 x00, 0 x86, 0 x86},
{0 x00, 0 x87, 0 x87}, {0 x00, 0 x88, 0 x88}, {0 x00, 0 x89, 0 x89},
{0 x00, 0 x8A, 0 x8A}, {0 x00, 0 x8B, 0 x8B}, {0 x00, 0 x8C, 0 x8C},
{0 x00, 0 x8D, 0 x8D}, {0 x00, 0 x8E, 0 x8E}, {0 x00, 0 x8F, 0 x8F},
{0 x00, 0 x90, 0 x90}, {0 x00, 0 x91, 0 x91}, {0 x00, 0 x92, 0 x92},
{0 x00, 0 x93, 0 x93}, {0 x00, 0 x94, 0 x94}, {0 x00, 0 x95, 0 x95},
{0 x00, 0 x96, 0 x96}, {0 x00, 0 x97, 0 x97}, {0 x00, 0 x98, 0 x98},
{0 x00, 0 x99, 0 x99}, {0 x00, 0 x9A, 0 x9A}, {0 x00, 0 x9B, 0 x9B},
{0 x00, 0 x9C, 0 x9C}, {0 x00, 0 x9D, 0 x9D}, {0 x00, 0 x9E, 0 x9E},
{0 x00, 0 x9F, 0 x9F}, {0 x00, 0 xA0, 0 xA0}, {0 x00, 0 xA1, 0 xA1},
{0 x00, 0 xA2, 0 xA2}, {0 x00, 0 xA3, 0 xA3}, {0 x00, 0 xA4, 0 xA4},
{0 x00, 0 xA5, 0 xA5}, {0 x00, 0 xA6, 0 xA6}, {0 x00, 0 xA7, 0 xA7},
{0 x01, 0 xB8, 0 xA8}, {0 x00, 0 xA9, 0 xA9}, {0 x01, 0 xBA, 0 xAA},
{0 x00, 0 xAB, 0 xAB}, {0 x00, 0 xAC, 0 xAC}, {0 x00, 0 xAD, 0 xAD},
{0 x00, 0 xAE, 0 xAE}, {0 x01, 0 xBF, 0 xAF}, {0 x00, 0 xB0, 0 xB0},
{0 x00, 0 xB1, 0 xB1}, {0 x00, 0 xB2, 0 xB2}, {0 x00, 0 xB3, 0 xB3},
{0 x00, 0 xB4, 0 xB4}, {0 x00, 0 xB5, 0 xB5}, {0 x00, 0 xB6, 0 xB6},
{0 x00, 0 xB7, 0 xB7}, {0 x00, 0 xB8, 0 xA8}, {0 x00, 0 xB9, 0 xB9},
{0 x00, 0 xBA, 0 xAA}, {0 x00, 0 xBB, 0 xBB}, {0 x00, 0 xBC, 0 xBC},
{0 x00, 0 xBD, 0 xBD}, {0 x00, 0 xBE, 0 xBE}, {0 x00, 0 xBF, 0 xAF},
{0 x01, 0 xE0, 0 xC0}, {0 x01, 0 xE1, 0 xC1}, {0 x01, 0 xE2, 0 xC2},
{0 x01, 0 xE3, 0 xC3}, {0 x01, 0 xE4, 0 xC4}, {0 x01, 0 xE5, 0 xC5},
{0 x01, 0 xE6, 0 xC6}, {0 x01, 0 xE7, 0 xC7}, {0 x01, 0 xE8, 0 xC8},
{0 x01, 0 xE9, 0 xC9}, {0 x01, 0 xEA, 0 xCA}, {0 x01, 0 xEB, 0 xCB},
{0 x01, 0 xEC, 0 xCC}, {0 x01, 0 xED, 0 xCD}, {0 x01, 0 xEE, 0 xCE},
{0 x01, 0 xEF, 0 xCF}, {0 x01, 0 xF0, 0 xD0}, {0 x01, 0 xF1, 0 xD1},
{0 x01, 0 xF2, 0 xD2}, {0 x01, 0 xF3, 0 xD3}, {0 x01, 0 xF4, 0 xD4},
{0 x01, 0 xF5, 0 xD5}, {0 x01, 0 xF6, 0 xD6}, {0 x00, 0 xD7, 0 xD7},
{0 x01, 0 xF8, 0 xD8}, {0 x01, 0 xF9, 0 xD9}, {0 x01, 0 xFA, 0 xDA},
{0 x01, 0 xFB, 0 xDB}, {0 x01, 0 xFC, 0 xDC}, {0 x01, 0 xFD, 0 xDD},
{0 x01, 0 xFE, 0 xDE}, {0 x00, 0 xDF, 0 xDF}, {0 x00, 0 xE0, 0 xC0},
{0 x00, 0 xE1, 0 xC1}, {0 x00, 0 xE2, 0 xC2}, {0 x00, 0 xE3, 0 xC3},
{0 x00, 0 xE4, 0 xC4}, {0 x00, 0 xE5, 0 xC5}, {0 x00, 0 xE6, 0 xC6},
{0 x00, 0 xE7, 0 xC7}, {0 x00, 0 xE8, 0 xC8}, {0 x00, 0 xE9, 0 xC9},
{0 x00, 0 xEA, 0 xCA}, {0 x00, 0 xEB, 0 xCB}, {0 x00, 0 xEC, 0 xCC},
{0 x00, 0 xED, 0 xCD}, {0 x00, 0 xEE, 0 xCE}, {0 x00, 0 xEF, 0 xCF},
{0 x00, 0 xF0, 0 xD0}, {0 x00, 0 xF1, 0 xD1}, {0 x00, 0 xF2, 0 xD2},
{0 x00, 0 xF3, 0 xD3}, {0 x00, 0 xF4, 0 xD4}, {0 x00, 0 xF5, 0 xD5},
{0 x00, 0 xF6, 0 xD6}, {0 x00, 0 xF7, 0 xF7}, {0 x00, 0 xF8, 0 xD8},
{0 x00, 0 xF9, 0 xD9}, {0 x00, 0 xFA, 0 xDA}, {0 x00, 0 xFB, 0 xDB},
{0 x00, 0 xFC, 0 xDC}, {0 x00, 0 xFD, 0 xDD}, {0 x00, 0 xFE, 0 xDE},
{0 x00, 0 xFF, 0 xFF}};
const struct cs_info iso14_tbl[] = {
{0 x00, 0 x00, 0 x00}, {0 x00, 0 x01, 0 x01}, {0 x00, 0 x02, 0 x02},
{0 x00, 0 x03, 0 x03}, {0 x00, 0 x04, 0 x04}, {0 x00, 0 x05, 0 x05},
{0 x00, 0 x06, 0 x06}, {0 x00, 0 x07, 0 x07}, {0 x00, 0 x08, 0 x08},
{0 x00, 0 x09, 0 x09}, {0 x00, 0 x0a, 0 x0a}, {0 x00, 0 x0b, 0 x0b},
{0 x00, 0 x0c, 0 x0c}, {0 x00, 0 x0d, 0 x0d}, {0 x00, 0 x0e, 0 x0e},
{0 x00, 0 x0f, 0 x0f}, {0 x00, 0 x10, 0 x10}, {0 x00, 0 x11, 0 x11},
{0 x00, 0 x12, 0 x12}, {0 x00, 0 x13, 0 x13}, {0 x00, 0 x14, 0 x14},
{0 x00, 0 x15, 0 x15}, {0 x00, 0 x16, 0 x16}, {0 x00, 0 x17, 0 x17},
{0 x00, 0 x18, 0 x18}, {0 x00, 0 x19, 0 x19}, {0 x00, 0 x1a, 0 x1a},
{0 x00, 0 x1b, 0 x1b}, {0 x00, 0 x1c, 0 x1c}, {0 x00, 0 x1d, 0 x1d},
{0 x00, 0 x1e, 0 x1e}, {0 x00, 0 x1f, 0 x1f}, {0 x00, 0 x20, 0 x20},
{0 x00, 0 x21, 0 x21}, {0 x00, 0 x22, 0 x22}, {0 x00, 0 x23, 0 x23},
{0 x00, 0 x24, 0 x24}, {0 x00, 0 x25, 0 x25}, {0 x00, 0 x26, 0 x26},
{0 x00, 0 x27, 0 x27}, {0 x00, 0 x28, 0 x28}, {0 x00, 0 x29, 0 x29},
{0 x00, 0 x2a, 0 x2a}, {0 x00, 0 x2b, 0 x2b}, {0 x00, 0 x2c, 0 x2c},
{0 x00, 0 x2d, 0 x2d}, {0 x00, 0 x2e, 0 x2e}, {0 x00, 0 x2f, 0 x2f},
{0 x00, 0 x30, 0 x30}, {0 x00, 0 x31, 0 x31}, {0 x00, 0 x32, 0 x32},
{0 x00, 0 x33, 0 x33}, {0 x00, 0 x34, 0 x34}, {0 x00, 0 x35, 0 x35},
{0 x00, 0 x36, 0 x36}, {0 x00, 0 x37, 0 x37}, {0 x00, 0 x38, 0 x38},
{0 x00, 0 x39, 0 x39}, {0 x00, 0 x3a, 0 x3a}, {0 x00, 0 x3b, 0 x3b},
{0 x00, 0 x3c, 0 x3c}, {0 x00, 0 x3d, 0 x3d}, {0 x00, 0 x3e, 0 x3e},
{0 x00, 0 x3f, 0 x3f}, {0 x00, 0 x40, 0 x40}, {0 x01, 0 x61, 0 x41},
{0 x01, 0 x62, 0 x42}, {0 x01, 0 x63, 0 x43}, {0 x01, 0 x64, 0 x44},
{0 x01, 0 x65, 0 x45}, {0 x01, 0 x66, 0 x46}, {0 x01, 0 x67, 0 x47},
{0 x01, 0 x68, 0 x48}, {0 x01, 0 x69, 0 x49}, {0 x01, 0 x6a, 0 x4a},
{0 x01, 0 x6b, 0 x4b}, {0 x01, 0 x6c, 0 x4c}, {0 x01, 0 x6d, 0 x4d},
{0 x01, 0 x6e, 0 x4e}, {0 x01, 0 x6f, 0 x4f}, {0 x01, 0 x70, 0 x50},
{0 x01, 0 x71, 0 x51}, {0 x01, 0 x72, 0 x52}, {0 x01, 0 x73, 0 x53},
{0 x01, 0 x74, 0 x54}, {0 x01, 0 x75, 0 x55}, {0 x01, 0 x76, 0 x56},
{0 x01, 0 x77, 0 x57}, {0 x01, 0 x78, 0 x58}, {0 x01, 0 x79, 0 x59},
{0 x01, 0 x7a, 0 x5a}, {0 x00, 0 x5b, 0 x5b}, {0 x00, 0 x5c, 0 x5c},
{0 x00, 0 x5d, 0 x5d}, {0 x00, 0 x5e, 0 x5e}, {0 x00, 0 x5f, 0 x5f},
{0 x00, 0 x60, 0 x60}, {0 x00, 0 x61, 0 x41}, {0 x00, 0 x62, 0 x42},
{0 x00, 0 x63, 0 x43}, {0 x00, 0 x64, 0 x44}, {0 x00, 0 x65, 0 x45},
{0 x00, 0 x66, 0 x46}, {0 x00, 0 x67, 0 x47}, {0 x00, 0 x68, 0 x48},
{0 x00, 0 x69, 0 x49}, {0 x00, 0 x6a, 0 x4a}, {0 x00, 0 x6b, 0 x4b},
{0 x00, 0 x6c, 0 x4c}, {0 x00, 0 x6d, 0 x4d}, {0 x00, 0 x6e, 0 x4e},
{0 x00, 0 x6f, 0 x4f}, {0 x00, 0 x70, 0 x50}, {0 x00, 0 x71, 0 x51},
{0 x00, 0 x72, 0 x52}, {0 x00, 0 x73, 0 x53}, {0 x00, 0 x74, 0 x54},
{0 x00, 0 x75, 0 x55}, {0 x00, 0 x76, 0 x56}, {0 x00, 0 x77, 0 x57},
{0 x00, 0 x78, 0 x58}, {0 x00, 0 x79, 0 x59}, {0 x00, 0 x7a, 0 x5a},
{0 x00, 0 x7b, 0 x7b}, {0 x00, 0 x7c, 0 x7c}, {0 x00, 0 x7d, 0 x7d},
{0 x00, 0 x7e, 0 x7e}, {0 x00, 0 x7f, 0 x7f}, {0 x00, 0 x80, 0 x80},
{0 x00, 0 x81, 0 x81}, {0 x00, 0 x82, 0 x82}, {0 x00, 0 x83, 0 x83},
{0 x00, 0 x84, 0 x84}, {0 x00, 0 x85, 0 x85}, {0 x00, 0 x86, 0 x86},
{0 x00, 0 x87, 0 x87}, {0 x00, 0 x88, 0 x88}, {0 x00, 0 x89, 0 x89},
{0 x00, 0 x8a, 0 x8a}, {0 x00, 0 x8b, 0 x8b}, {0 x00, 0 x8c, 0 x8c},
{0 x00, 0 x8d, 0 x8d}, {0 x00, 0 x8e, 0 x8e}, {0 x00, 0 x8f, 0 x8f},
{0 x00, 0 x90, 0 x90}, {0 x00, 0 x91, 0 x91}, {0 x00, 0 x92, 0 x92},
{0 x00, 0 x93, 0 x93}, {0 x00, 0 x94, 0 x94}, {0 x00, 0 x95, 0 x95},
{0 x00, 0 x96, 0 x96}, {0 x00, 0 x97, 0 x97}, {0 x00, 0 x98, 0 x98},
{0 x00, 0 x99, 0 x99}, {0 x00, 0 x9a, 0 x9a}, {0 x00, 0 x9b, 0 x9b},
{0 x00, 0 x9c, 0 x9c}, {0 x00, 0 x9d, 0 x9d}, {0 x00, 0 x9e, 0 x9e},
{0 x00, 0 x9f, 0 x9f}, {0 x00, 0 xa0, 0 xa0}, {0 x01, 0 xa2, 0 xa1},
{0 x00, 0 xa2, 0 xa1}, {0 x00, 0 xa3, 0 xa3}, {0 x01, 0 xa5, 0 xa4},
{0 x00, 0 xa5, 0 xa4}, {0 x01, 0 xa6, 0 xab}, {0 x00, 0 xa7, 0 xa7},
{0 x01, 0 xb8, 0 xa8}, {0 x00, 0 xa9, 0 xa9}, {0 x01, 0 xba, 0 xaa},
{0 x00, 0 xab, 0 xa6}, {0 x01, 0 xbc, 0 xac}, {0 x00, 0 xad, 0 xad},
{0 x00, 0 xae, 0 xae}, {0 x01, 0 xff, 0 xaf}, {0 x01, 0 xb1, 0 xb0},
{0 x00, 0 xb1, 0 xb0}, {0 x01, 0 xb3, 0 xb2}, {0 x00, 0 xb3, 0 xb2},
{0 x01, 0 xb5, 0 xb4}, {0 x00, 0 xb5, 0 xb4}, {0 x00, 0 xb6, 0 xb6},
{0 x01, 0 xb9, 0 xb7}, {0 x00, 0 xb8, 0 xa8}, {0 x00, 0 xb9, 0 xb6},
{0 x00, 0 xba, 0 xaa}, {0 x01, 0 xbf, 0 xbb}, {0 x00, 0 xbc, 0 xac},
{0 x01, 0 xbe, 0 xbd}, {0 x00, 0 xbe, 0 xbd}, {0 x00, 0 xbf, 0 xbb},
{0 x01, 0 xe0, 0 xc0}, {0 x01, 0 xe1, 0 xc1}, {0 x01, 0 xe2, 0 xc2},
{0 x01, 0 xe3, 0 xc3}, {0 x01, 0 xe4, 0 xc4}, {0 x01, 0 xe5, 0 xc5},
{0 x01, 0 xe6, 0 xc6}, {0 x01, 0 xe7, 0 xc7}, {0 x01, 0 xe8, 0 xc8},
{0 x01, 0 xe9, 0 xc9}, {0 x01, 0 xea, 0 xca}, {0 x01, 0 xeb, 0 xcb},
{0 x01, 0 xec, 0 xcc}, {0 x01, 0 xed, 0 xcd}, {0 x01, 0 xee, 0 xce},
{0 x01, 0 xef, 0 xcf}, {0 x01, 0 xf0, 0 xd0}, {0 x01, 0 xf1, 0 xd1},
{0 x01, 0 xf2, 0 xd2}, {0 x01, 0 xf3, 0 xd3}, {0 x01, 0 xf4, 0 xd4},
{0 x01, 0 xf5, 0 xd5}, {0 x01, 0 xf6, 0 xd6}, {0 x01, 0 xf7, 0 xd7},
{0 x01, 0 xf8, 0 xd8}, {0 x01, 0 xf9, 0 xd9}, {0 x01, 0 xfa, 0 xda},
{0 x01, 0 xfb, 0 xdb}, {0 x01, 0 xfc, 0 xdc}, {0 x01, 0 xfd, 0 xdd},
{0 x01, 0 xfe, 0 xde}, {0 x00, 0 xdf, 0 xdf}, {0 x00, 0 xe0, 0 xc0},
{0 x00, 0 xe1, 0 xc1}, {0 x00, 0 xe2, 0 xc2}, {0 x00, 0 xe3, 0 xc3},
{0 x00, 0 xe4, 0 xc4}, {0 x00, 0 xe5, 0 xc5}, {0 x00, 0 xe6, 0 xc6},
{0 x00, 0 xe7, 0 xc7}, {0 x00, 0 xe8, 0 xc8}, {0 x00, 0 xe9, 0 xc9},
{0 x00, 0 xea, 0 xca}, {0 x00, 0 xeb, 0 xcb}, {0 x00, 0 xec, 0 xcc},
{0 x00, 0 xed, 0 xcd}, {0 x00, 0 xee, 0 xce}, {0 x00, 0 xef, 0 xcf},
{0 x00, 0 xf0, 0 xd0}, {0 x00, 0 xf1, 0 xd1}, {0 x00, 0 xf2, 0 xd2},
{0 x00, 0 xf3, 0 xd3}, {0 x00, 0 xf4, 0 xd4}, {0 x00, 0 xf5, 0 xd5},
{0 x00, 0 xf6, 0 xd6}, {0 x00, 0 xf7, 0 xd7}, {0 x00, 0 xf8, 0 xd8},
{0 x00, 0 xf9, 0 xd9}, {0 x00, 0 xfa, 0 xda}, {0 x00, 0 xfb, 0 xdb},
{0 x00, 0 xfc, 0 xdc}, {0 x00, 0 xfd, 0 xdd}, {0 x00, 0 xfe, 0 xde},
{0 x00, 0 xff, 0 xff}};
const struct cs_info iso15_tbl[] = {
{0 x00, 0 x00, 0 x00}, {0 x00, 0 x01, 0 x01}, {0 x00, 0 x02, 0 x02},
{0 x00, 0 x03, 0 x03}, {0 x00, 0 x04, 0 x04}, {0 x00, 0 x05, 0 x05},
{0 x00, 0 x06, 0 x06}, {0 x00, 0 x07, 0 x07}, {0 x00, 0 x08, 0 x08},
{0 x00, 0 x09, 0 x09}, {0 x00, 0 x0a, 0 x0a}, {0 x00, 0 x0b, 0 x0b},
{0 x00, 0 x0c, 0 x0c}, {0 x00, 0 x0d, 0 x0d}, {0 x00, 0 x0e, 0 x0e},
{0 x00, 0 x0f, 0 x0f}, {0 x00, 0 x10, 0 x10}, {0 x00, 0 x11, 0 x11},
{0 x00, 0 x12, 0 x12}, {0 x00, 0 x13, 0 x13}, {0 x00, 0 x14, 0 x14},
{0 x00, 0 x15, 0 x15}, {0 x00, 0 x16, 0 x16}, {0 x00, 0 x17, 0 x17},
{0 x00, 0 x18, 0 x18}, {0 x00, 0 x19, 0 x19}, {0 x00, 0 x1a, 0 x1a},
{0 x00, 0 x1b, 0 x1b}, {0 x00, 0 x1c, 0 x1c}, {0 x00, 0 x1d, 0 x1d},
{0 x00, 0 x1e, 0 x1e}, {0 x00, 0 x1f, 0 x1f}, {0 x00, 0 x20, 0 x20},
{0 x00, 0 x21, 0 x21}, {0 x00, 0 x22, 0 x22}, {0 x00, 0 x23, 0 x23},
{0 x00, 0 x24, 0 x24}, {0 x00, 0 x25, 0 x25}, {0 x00, 0 x26, 0 x26},
{0 x00, 0 x27, 0 x27}, {0 x00, 0 x28, 0 x28}, {0 x00, 0 x29, 0 x29},
{0 x00, 0 x2a, 0 x2a}, {0 x00, 0 x2b, 0 x2b}, {0 x00, 0 x2c, 0 x2c},
{0 x00, 0 x2d, 0 x2d}, {0 x00, 0 x2e, 0 x2e}, {0 x00, 0 x2f, 0 x2f},
{0 x00, 0 x30, 0 x30}, {0 x00, 0 x31, 0 x31}, {0 x00, 0 x32, 0 x32},
{0 x00, 0 x33, 0 x33}, {0 x00, 0 x34, 0 x34}, {0 x00, 0 x35, 0 x35},
{0 x00, 0 x36, 0 x36}, {0 x00, 0 x37, 0 x37}, {0 x00, 0 x38, 0 x38},
{0 x00, 0 x39, 0 x39}, {0 x00, 0 x3a, 0 x3a}, {0 x00, 0 x3b, 0 x3b},
{0 x00, 0 x3c, 0 x3c}, {0 x00, 0 x3d, 0 x3d}, {0 x00, 0 x3e, 0 x3e},
{0 x00, 0 x3f, 0 x3f}, {0 x00, 0 x40, 0 x40}, {0 x01, 0 x61, 0 x41},
{0 x01, 0 x62, 0 x42}, {0 x01, 0 x63, 0 x43}, {0 x01, 0 x64, 0 x44},
{0 x01, 0 x65, 0 x45}, {0 x01, 0 x66, 0 x46}, {0 x01, 0 x67, 0 x47},
{0 x01, 0 x68, 0 x48}, {0 x01, 0 x69, 0 x49}, {0 x01, 0 x6a, 0 x4a},
{0 x01, 0 x6b, 0 x4b}, {0 x01, 0 x6c, 0 x4c}, {0 x01, 0 x6d, 0 x4d},
{0 x01, 0 x6e, 0 x4e}, {0 x01, 0 x6f, 0 x4f}, {0 x01, 0 x70, 0 x50},
{0 x01, 0 x71, 0 x51}, {0 x01, 0 x72, 0 x52}, {0 x01, 0 x73, 0 x53},
{0 x01, 0 x74, 0 x54}, {0 x01, 0 x75, 0 x55}, {0 x01, 0 x76, 0 x56},
{0 x01, 0 x77, 0 x57}, {0 x01, 0 x78, 0 x58}, {0 x01, 0 x79, 0 x59},
{0 x01, 0 x7a, 0 x5a}, {0 x00, 0 x5b, 0 x5b}, {0 x00, 0 x5c, 0 x5c},
{0 x00, 0 x5d, 0 x5d}, {0 x00, 0 x5e, 0 x5e}, {0 x00, 0 x5f, 0 x5f},
{0 x00, 0 x60, 0 x60}, {0 x00, 0 x61, 0 x41}, {0 x00, 0 x62, 0 x42},
{0 x00, 0 x63, 0 x43}, {0 x00, 0 x64, 0 x44}, {0 x00, 0 x65, 0 x45},
{0 x00, 0 x66, 0 x46}, {0 x00, 0 x67, 0 x47}, {0 x00, 0 x68, 0 x48},
{0 x00, 0 x69, 0 x49}, {0 x00, 0 x6a, 0 x4a}, {0 x00, 0 x6b, 0 x4b},
{0 x00, 0 x6c, 0 x4c}, {0 x00, 0 x6d, 0 x4d}, {0 x00, 0 x6e, 0 x4e},
{0 x00, 0 x6f, 0 x4f}, {0 x00, 0 x70, 0 x50}, {0 x00, 0 x71, 0 x51},
{0 x00, 0 x72, 0 x52}, {0 x00, 0 x73, 0 x53}, {0 x00, 0 x74, 0 x54},
{0 x00, 0 x75, 0 x55}, {0 x00, 0 x76, 0 x56}, {0 x00, 0 x77, 0 x57},
{0 x00, 0 x78, 0 x58}, {0 x00, 0 x79, 0 x59}, {0 x00, 0 x7a, 0 x5a},
{0 x00, 0 x7b, 0 x7b}, {0 x00, 0 x7c, 0 x7c}, {0 x00, 0 x7d, 0 x7d},
{0 x00, 0 x7e, 0 x7e}, {0 x00, 0 x7f, 0 x7f}, {0 x00, 0 x80, 0 x80},
{0 x00, 0 x81, 0 x81}, {0 x00, 0 x82, 0 x82}, {0 x00, 0 x83, 0 x83},
{0 x00, 0 x84, 0 x84}, {0 x00, 0 x85, 0 x85}, {0 x00, 0 x86, 0 x86},
{0 x00, 0 x87, 0 x87}, {0 x00, 0 x88, 0 x88}, {0 x00, 0 x89, 0 x89},
{0 x00, 0 x8a, 0 x8a}, {0 x00, 0 x8b, 0 x8b}, {0 x00, 0 x8c, 0 x8c},
{0 x00, 0 x8d, 0 x8d}, {0 x00, 0 x8e, 0 x8e}, {0 x00, 0 x8f, 0 x8f},
{0 x00, 0 x90, 0 x90}, {0 x00, 0 x91, 0 x91}, {0 x00, 0 x92, 0 x92},
{0 x00, 0 x93, 0 x93}, {0 x00, 0 x94, 0 x94}, {0 x00, 0 x95, 0 x95},
{0 x00, 0 x96, 0 x96}, {0 x00, 0 x97, 0 x97}, {0 x00, 0 x98, 0 x98},
{0 x00, 0 x99, 0 x99}, {0 x00, 0 x9a, 0 x9a}, {0 x00, 0 x9b, 0 x9b},
{0 x00, 0 x9c, 0 x9c}, {0 x00, 0 x9d, 0 x9d}, {0 x00, 0 x9e, 0 x9e},
{0 x00, 0 x9f, 0 x9f}, {0 x00, 0 xa0, 0 xa0}, {0 x00, 0 xa1, 0 xa1},
{0 x00, 0 xa2, 0 xa2}, {0 x00, 0 xa3, 0 xa3}, {0 x00, 0 xa4, 0 xa4},
{0 x00, 0 xa5, 0 xa5}, {0 x01, 0 xa8, 0 xa6}, {0 x00, 0 xa7, 0 xa7},
{0 x00, 0 xa8, 0 xa6}, {0 x00, 0 xa9, 0 xa9}, {0 x00, 0 xaa, 0 xaa},
{0 x00, 0 xab, 0 xab}, {0 x00, 0 xac, 0 xac}, {0 x00, 0 xad, 0 xad},
{0 x00, 0 xae, 0 xae}, {0 x00, 0 xaf, 0 xaf}, {0 x00, 0 xb0, 0 xb0},
{0 x00, 0 xb1, 0 xb1}, {0 x00, 0 xb2, 0 xb2}, {0 x00, 0 xb3, 0 xb3},
{0 x01, 0 xb8, 0 xb4}, {0 x00, 0 xb5, 0 xb5}, {0 x00, 0 xb6, 0 xb6},
{0 x00, 0 xb7, 0 xb7}, {0 x00, 0 xb8, 0 xb4}, {0 x00, 0 xb9, 0 xb9},
{0 x00, 0 xba, 0 xba}, {0 x00, 0 xbb, 0 xbb}, {0 x01, 0 xbd, 0 xbc},
{0 x00, 0 xbd, 0 xbc}, {0 x01, 0 xff, 0 xbe}, {0 x00, 0 xbf, 0 xbf},
{0 x01, 0 xe0, 0 xc0}, {0 x01, 0 xe1, 0 xc1}, {0 x01, 0 xe2, 0 xc2},
{0 x01, 0 xe3, 0 xc3}, {0 x01, 0 xe4, 0 xc4}, {0 x01, 0 xe5, 0 xc5},
{0 x01, 0 xe6, 0 xc6}, {0 x01, 0 xe7, 0 xc7}, {0 x01, 0 xe8, 0 xc8},
{0 x01, 0 xe9, 0 xc9}, {0 x01, 0 xea, 0 xca}, {0 x01, 0 xeb, 0 xcb},
{0 x01, 0 xec, 0 xcc}, {0 x01, 0 xed, 0 xcd}, {0 x01, 0 xee, 0 xce},
{0 x01, 0 xef, 0 xcf}, {0 x01, 0 xf0, 0 xd0}, {0 x01, 0 xf1, 0 xd1},
{0 x01, 0 xf2, 0 xd2}, {0 x01, 0 xf3, 0 xd3}, {0 x01, 0 xf4, 0 xd4},
{0 x01, 0 xf5, 0 xd5}, {0 x01, 0 xf6, 0 xd6}, {0 x00, 0 xd7, 0 xd7},
{0 x01, 0 xf8, 0 xd8}, {0 x01, 0 xf9, 0 xd9}, {0 x01, 0 xfa, 0 xda},
{0 x01, 0 xfb, 0 xdb}, {0 x01, 0 xfc, 0 xdc}, {0 x01, 0 xfd, 0 xdd},
{0 x01, 0 xfe, 0 xde}, {0 x00, 0 xdf, 0 xdf}, {0 x00, 0 xe0, 0 xc0},
{0 x00, 0 xe1, 0 xc1}, {0 x00, 0 xe2, 0 xc2}, {0 x00, 0 xe3, 0 xc3},
{0 x00, 0 xe4, 0 xc4}, {0 x00, 0 xe5, 0 xc5}, {0 x00, 0 xe6, 0 xc6},
{0 x00, 0 xe7, 0 xc7}, {0 x00, 0 xe8, 0 xc8}, {0 x00, 0 xe9, 0 xc9},
{0 x00, 0 xea, 0 xca}, {0 x00, 0 xeb, 0 xcb}, {0 x00, 0 xec, 0 xcc},
{0 x00, 0 xed, 0 xcd}, {0 x00, 0 xee, 0 xce}, {0 x00, 0 xef, 0 xcf},
{0 x00, 0 xf0, 0 xd0}, {0 x00, 0 xf1, 0 xd1}, {0 x00, 0 xf2, 0 xd2},
{0 x00, 0 xf3, 0 xd3}, {0 x00, 0 xf4, 0 xd4}, {0 x00, 0 xf5, 0 xd5},
{0 x00, 0 xf6, 0 xd6}, {0 x00, 0 xf7, 0 xf7}, {0 x00, 0 xf8, 0 xd8},
{0 x00, 0 xf9, 0 xd9}, {0 x00, 0 xfa, 0 xda}, {0 x00, 0 xfb, 0 xdb},
{0 x00, 0 xfc, 0 xdc}, {0 x00, 0 xfd, 0 xdd}, {0 x00, 0 xfe, 0 xde},
{0 x00, 0 xff, 0 xbe}};
const struct cs_info iscii_devanagari_tbl[] = {
{0 x00, 0 x00, 0 x00}, {0 x00, 0 x01, 0 x01}, {0 x00, 0 x02, 0 x02},
{0 x00, 0 x03, 0 x03}, {0 x00, 0 x04, 0 x04}, {0 x00, 0 x05, 0 x05},
{0 x00, 0 x06, 0 x06}, {0 x00, 0 x07, 0 x07}, {0 x00, 0 x08, 0 x08},
{0 x00, 0 x09, 0 x09}, {0 x00, 0 x0a, 0 x0a}, {0 x00, 0 x0b, 0 x0b},
{0 x00, 0 x0c, 0 x0c}, {0 x00, 0 x0d, 0 x0d}, {0 x00, 0 x0e, 0 x0e},
{0 x00, 0 x0f, 0 x0f}, {0 x00, 0 x10, 0 x10}, {0 x00, 0 x11, 0 x11},
{0 x00, 0 x12, 0 x12}, {0 x00, 0 x13, 0 x13}, {0 x00, 0 x14, 0 x14},
{0 x00, 0 x15, 0 x15}, {0 x00, 0 x16, 0 x16}, {0 x00, 0 x17, 0 x17},
{0 x00, 0 x18, 0 x18}, {0 x00, 0 x19, 0 x19}, {0 x00, 0 x1a, 0 x1a},
{0 x00, 0 x1b, 0 x1b}, {0 x00, 0 x1c, 0 x1c}, {0 x00, 0 x1d, 0 x1d},
{0 x00, 0 x1e, 0 x1e}, {0 x00, 0 x1f, 0 x1f}, {0 x00, 0 x20, 0 x20},
{0 x00, 0 x21, 0 x21}, {0 x00, 0 x22, 0 x22}, {0 x00, 0 x23, 0 x23},
{0 x00, 0 x24, 0 x24}, {0 x00, 0 x25, 0 x25}, {0 x00, 0 x26, 0 x26},
{0 x00, 0 x27, 0 x27}, {0 x00, 0 x28, 0 x28}, {0 x00, 0 x29, 0 x29},
{0 x00, 0 x2a, 0 x2a}, {0 x00, 0 x2b, 0 x2b}, {0 x00, 0 x2c, 0 x2c},
{0 x00, 0 x2d, 0 x2d}, {0 x00, 0 x2e, 0 x2e}, {0 x00, 0 x2f, 0 x2f},
{0 x00, 0 x30, 0 x30}, {0 x00, 0 x31, 0 x31}, {0 x00, 0 x32, 0 x32},
{0 x00, 0 x33, 0 x33}, {0 x00, 0 x34, 0 x34}, {0 x00, 0 x35, 0 x35},
{0 x00, 0 x36, 0 x36}, {0 x00, 0 x37, 0 x37}, {0 x00, 0 x38, 0 x38},
{0 x00, 0 x39, 0 x39}, {0 x00, 0 x3a, 0 x3a}, {0 x00, 0 x3b, 0 x3b},
{0 x00, 0 x3c, 0 x3c}, {0 x00, 0 x3d, 0 x3d}, {0 x00, 0 x3e, 0 x3e},
{0 x00, 0 x3f, 0 x3f}, {0 x00, 0 x40, 0 x40}, {0 x01, 0 x61, 0 x41},
{0 x01, 0 x62, 0 x42}, {0 x01, 0 x63, 0 x43}, {0 x01, 0 x64, 0 x44},
{0 x01, 0 x65, 0 x45}, {0 x01, 0 x66, 0 x46}, {0 x01, 0 x67, 0 x47},
{0 x01, 0 x68, 0 x48}, {0 x01, 0 x69, 0 x49}, {0 x01, 0 x6a, 0 x4a},
{0 x01, 0 x6b, 0 x4b}, {0 x01, 0 x6c, 0 x4c}, {0 x01, 0 x6d, 0 x4d},
{0 x01, 0 x6e, 0 x4e}, {0 x01, 0 x6f, 0 x4f}, {0 x01, 0 x70, 0 x50},
{0 x01, 0 x71, 0 x51}, {0 x01, 0 x72, 0 x52}, {0 x01, 0 x73, 0 x53},
{0 x01, 0 x74, 0 x54}, {0 x01, 0 x75, 0 x55}, {0 x01, 0 x76, 0 x56},
{0 x01, 0 x77, 0 x57}, {0 x01, 0 x78, 0 x58}, {0 x01, 0 x79, 0 x59},
{0 x01, 0 x7a, 0 x5a}, {0 x00, 0 x5b, 0 x5b}, {0 x00, 0 x5c, 0 x5c},
{0 x00, 0 x5d, 0 x5d}, {0 x00, 0 x5e, 0 x5e}, {0 x00, 0 x5f, 0 x5f},
{0 x00, 0 x60, 0 x60}, {0 x00, 0 x61, 0 x41}, {0 x00, 0 x62, 0 x42},
{0 x00, 0 x63, 0 x43}, {0 x00, 0 x64, 0 x44}, {0 x00, 0 x65, 0 x45},
{0 x00, 0 x66, 0 x46}, {0 x00, 0 x67, 0 x47}, {0 x00, 0 x68, 0 x48},
{0 x00, 0 x69, 0 x49}, {0 x00, 0 x6a, 0 x4a}, {0 x00, 0 x6b, 0 x4b},
{0 x00, 0 x6c, 0 x4c}, {0 x00, 0 x6d, 0 x4d}, {0 x00, 0 x6e, 0 x4e},
{0 x00, 0 x6f, 0 x4f}, {0 x00, 0 x70, 0 x50}, {0 x00, 0 x71, 0 x51},
{0 x00, 0 x72, 0 x52}, {0 x00, 0 x73, 0 x53}, {0 x00, 0 x74, 0 x54},
{0 x00, 0 x75, 0 x55}, {0 x00, 0 x76, 0 x56}, {0 x00, 0 x77, 0 x57},
{0 x00, 0 x78, 0 x58}, {0 x00, 0 x79, 0 x59}, {0 x00, 0 x7a, 0 x5a},
{0 x00, 0 x7b, 0 x7b}, {0 x00, 0 x7c, 0 x7c}, {0 x00, 0 x7d, 0 x7d},
{0 x00, 0 x7e, 0 x7e}, {0 x00, 0 x7f, 0 x7f}, {0 x00, 0 x80, 0 x80},
{0 x00, 0 x81, 0 x81}, {0 x00, 0 x82, 0 x82}, {0 x00, 0 x83, 0 x83},
{0 x00, 0 x84, 0 x84}, {0 x00, 0 x85, 0 x85}, {0 x00, 0 x86, 0 x86},
{0 x00, 0 x87, 0 x87}, {0 x00, 0 x88, 0 x88}, {0 x00, 0 x89, 0 x89},
{0 x00, 0 x8a, 0 x8a}, {0 x00, 0 x8b, 0 x8b}, {0 x00, 0 x8c, 0 x8c},
{0 x00, 0 x8d, 0 x8d}, {0 x00, 0 x8e, 0 x8e}, {0 x00, 0 x8f, 0 x8f},
{0 x00, 0 x90, 0 x90}, {0 x00, 0 x91, 0 x91}, {0 x00, 0 x92, 0 x92},
{0 x00, 0 x93, 0 x93}, {0 x00, 0 x94, 0 x94}, {0 x00, 0 x95, 0 x95},
{0 x00, 0 x96, 0 x96}, {0 x00, 0 x97, 0 x97}, {0 x00, 0 x98, 0 x98},
{0 x00, 0 x99, 0 x99}, {0 x00, 0 x9a, 0 x9a}, {0 x00, 0 x9b, 0 x9b},
{0 x00, 0 x9c, 0 x9c}, {0 x00, 0 x9d, 0 x9d}, {0 x00, 0 x9e, 0 x9e},
{0 x00, 0 x9f, 0 x9f}, {0 x00, 0 xa0, 0 xa0}, {0 x00, 0 xa1, 0 xa1},
{0 x00, 0 xa2, 0 xa2}, {0 x00, 0 xa3, 0 xa3}, {0 x00, 0 xa4, 0 xa4},
{0 x00, 0 xa5, 0 xa5}, {0 x00, 0 xa6, 0 xa6}, {0 x00, 0 xa7, 0 xa7},
{0 x00, 0 xa8, 0 xa8}, {0 x00, 0 xa9, 0 xa9}, {0 x00, 0 xaa, 0 xaa},
{0 x00, 0 xab, 0 xab}, {0 x00, 0 xac, 0 xac}, {0 x00, 0 xad, 0 xad},
{0 x00, 0 xae, 0 xae}, {0 x00, 0 xaf, 0 xaf}, {0 x00, 0 xb0, 0 xb0},
{0 x00, 0 xb1, 0 xb1}, {0 x00, 0 xb2, 0 xb2}, {0 x00, 0 xb3, 0 xb3},
{0 x00, 0 xb4, 0 xb4}, {0 x00, 0 xb5, 0 xb5}, {0 x00, 0 xb6, 0 xb6},
{0 x00, 0 xb7, 0 xb7}, {0 x00, 0 xb8, 0 xb8}, {0 x00, 0 xb9, 0 xb9},
{0 x00, 0 xba, 0 xba}, {0 x00, 0 xbb, 0 xbb}, {0 x00, 0 xbc, 0 xbc},
{0 x00, 0 xbd, 0 xbd}, {0 x00, 0 xbe, 0 xbe}, {0 x00, 0 xbf, 0 xbf},
{0 x00, 0 xc0, 0 xc0}, {0 x00, 0 xc1, 0 xc1}, {0 x00, 0 xc2, 0 xc2},
{0 x00, 0 xc3, 0 xc3}, {0 x00, 0 xc4, 0 xc4}, {0 x00, 0 xc5, 0 xc5},
{0 x00, 0 xc6, 0 xc6}, {0 x00, 0 xc7, 0 xc7}, {0 x00, 0 xc8, 0 xc8},
{0 x00, 0 xc9, 0 xc9}, {0 x00, 0 xca, 0 xca}, {0 x00, 0 xcb, 0 xcb},
{0 x00, 0 xcc, 0 xcc}, {0 x00, 0 xcd, 0 xcd}, {0 x00, 0 xce, 0 xce},
{0 x00, 0 xcf, 0 xcf}, {0 x00, 0 xd0, 0 xd0}, {0 x00, 0 xd1, 0 xd1},
{0 x00, 0 xd2, 0 xd2}, {0 x00, 0 xd3, 0 xd3}, {0 x00, 0 xd4, 0 xd4},
{0 x00, 0 xd5, 0 xd5}, {0 x00, 0 xd6, 0 xd6}, {0 x00, 0 xd7, 0 xd7},
{0 x00, 0 xd8, 0 xd8}, {0 x00, 0 xd9, 0 xd9}, {0 x00, 0 xda, 0 xda},
{0 x00, 0 xdb, 0 xdb}, {0 x00, 0 xdc, 0 xdc}, {0 x00, 0 xdd, 0 xdd},
{0 x00, 0 xde, 0 xde}, {0 x00, 0 xdf, 0 xdf}, {0 x00, 0 xe0, 0 xe0},
{0 x00, 0 xe1, 0 xe1}, {0 x00, 0 xe2, 0 xe2}, {0 x00, 0 xe3, 0 xe3},
{0 x00, 0 xe4, 0 xe4}, {0 x00, 0 xe5, 0 xe5}, {0 x00, 0 xe6, 0 xe6},
{0 x00, 0 xe7, 0 xe7}, {0 x00, 0 xe8, 0 xe8}, {0 x00, 0 xe9, 0 xe9},
{0 x00, 0 xea, 0 xea}, {0 x00, 0 xeb, 0 xeb}, {0 x00, 0 xec, 0 xec},
{0 x00, 0 xed, 0 xed}, {0 x00, 0 xee, 0 xee}, {0 x00, 0 xef, 0 xef},
{0 x00, 0 xf0, 0 xf0}, {0 x00, 0 xf1, 0 xf1}, {0 x00, 0 xf2, 0 xf2},
{0 x00, 0 xf3, 0 xf3}, {0 x00, 0 xf4, 0 xf4}, {0 x00, 0 xf5, 0 xf5},
{0 x00, 0 xf6, 0 xf6}, {0 x00, 0 xf7, 0 xf7}, {0 x00, 0 xf8, 0 xf8},
{0 x00, 0 xf9, 0 xf9}, {0 x00, 0 xfa, 0 xfa}, {0 x00, 0 xfb, 0 xfb},
{0 x00, 0 xfc, 0 xfc}, {0 x00, 0 xfd, 0 xfd}, {0 x00, 0 xfe, 0 xfe},
{0 x00, 0 xff, 0 xff}};
const struct cs_info tis620_tbl[] = {
{0 x00, 0 x00, 0 x00}, {0 x00, 0 x01, 0 x01}, {0 x00, 0 x02, 0 x02},
{0 x00, 0 x03, 0 x03}, {0 x00, 0 x04, 0 x04}, {0 x00, 0 x05, 0 x05},
{0 x00, 0 x06, 0 x06}, {0 x00, 0 x07, 0 x07}, {0 x00, 0 x08, 0 x08},
{0 x00, 0 x09, 0 x09}, {0 x00, 0 x0a, 0 x0a}, {0 x00, 0 x0b, 0 x0b},
{0 x00, 0 x0c, 0 x0c}, {0 x00, 0 x0d, 0 x0d}, {0 x00, 0 x0e, 0 x0e},
{0 x00, 0 x0f, 0 x0f}, {0 x00, 0 x10, 0 x10}, {0 x00, 0 x11, 0 x11},
{0 x00, 0 x12, 0 x12}, {0 x00, 0 x13, 0 x13}, {0 x00, 0 x14, 0 x14},
{0 x00, 0 x15, 0 x15}, {0 x00, 0 x16, 0 x16}, {0 x00, 0 x17, 0 x17},
{0 x00, 0 x18, 0 x18}, {0 x00, 0 x19, 0 x19}, {0 x00, 0 x1a, 0 x1a},
{0 x00, 0 x1b, 0 x1b}, {0 x00, 0 x1c, 0 x1c}, {0 x00, 0 x1d, 0 x1d},
{0 x00, 0 x1e, 0 x1e}, {0 x00, 0 x1f, 0 x1f}, {0 x00, 0 x20, 0 x20},
{0 x00, 0 x21, 0 x21}, {0 x00, 0 x22, 0 x22}, {0 x00, 0 x23, 0 x23},
{0 x00, 0 x24, 0 x24}, {0 x00, 0 x25, 0 x25}, {0 x00, 0 x26, 0 x26},
{0 x00, 0 x27, 0 x27}, {0 x00, 0 x28, 0 x28}, {0 x00, 0 x29, 0 x29},
{0 x00, 0 x2a, 0 x2a}, {0 x00, 0 x2b, 0 x2b}, {0 x00, 0 x2c, 0 x2c},
{0 x00, 0 x2d, 0 x2d}, {0 x00, 0 x2e, 0 x2e}, {0 x00, 0 x2f, 0 x2f},
{0 x00, 0 x30, 0 x30}, {0 x00, 0 x31, 0 x31}, {0 x00, 0 x32, 0 x32},
{0 x00, 0 x33, 0 x33}, {0 x00, 0 x34, 0 x34}, {0 x00, 0 x35, 0 x35},
{0 x00, 0 x36, 0 x36}, {0 x00, 0 x37, 0 x37}, {0 x00, 0 x38, 0 x38},
{0 x00, 0 x39, 0 x39}, {0 x00, 0 x3a, 0 x3a}, {0 x00, 0 x3b, 0 x3b},
{0 x00, 0 x3c, 0 x3c}, {0 x00, 0 x3d, 0 x3d}, {0 x00, 0 x3e, 0 x3e},
{0 x00, 0 x3f, 0 x3f}, {0 x00, 0 x40, 0 x40}, {0 x01, 0 x61, 0 x41},
{0 x01, 0 x62, 0 x42}, {0 x01, 0 x63, 0 x43}, {0 x01, 0 x64, 0 x44},
{0 x01, 0 x65, 0 x45}, {0 x01, 0 x66, 0 x46}, {0 x01, 0 x67, 0 x47},
{0 x01, 0 x68, 0 x48}, {0 x01, 0 x69, 0 x49}, {0 x01, 0 x6a, 0 x4a},
{0 x01, 0 x6b, 0 x4b}, {0 x01, 0 x6c, 0 x4c}, {0 x01, 0 x6d, 0 x4d},
{0 x01, 0 x6e, 0 x4e}, {0 x01, 0 x6f, 0 x4f}, {0 x01, 0 x70, 0 x50},
{0 x01, 0 x71, 0 x51}, {0 x01, 0 x72, 0 x52}, {0 x01, 0 x73, 0 x53},
{0 x01, 0 x74, 0 x54}, {0 x01, 0 x75, 0 x55}, {0 x01, 0 x76, 0 x56},
{0 x01, 0 x77, 0 x57}, {0 x01, 0 x78, 0 x58}, {0 x01, 0 x79, 0 x59},
{0 x01, 0 x7a, 0 x5a}, {0 x00, 0 x5b, 0 x5b}, {0 x00, 0 x5c, 0 x5c},
{0 x00, 0 x5d, 0 x5d}, {0 x00, 0 x5e, 0 x5e}, {0 x00, 0 x5f, 0 x5f},
{0 x00, 0 x60, 0 x60}, {0 x00, 0 x61, 0 x41}, {0 x00, 0 x62, 0 x42},
{0 x00, 0 x63, 0 x43}, {0 x00, 0 x64, 0 x44}, {0 x00, 0 x65, 0 x45},
{0 x00, 0 x66, 0 x46}, {0 x00, 0 x67, 0 x47}, {0 x00, 0 x68, 0 x48},
{0 x00, 0 x69, 0 x49}, {0 x00, 0 x6a, 0 x4a}, {0 x00, 0 x6b, 0 x4b},
{0 x00, 0 x6c, 0 x4c}, {0 x00, 0 x6d, 0 x4d}, {0 x00, 0 x6e, 0 x4e},
{0 x00, 0 x6f, 0 x4f}, {0 x00, 0 x70, 0 x50}, {0 x00, 0 x71, 0 x51},
{0 x00, 0 x72, 0 x52}, {0 x00, 0 x73, 0 x53}, {0 x00, 0 x74, 0 x54},
{0 x00, 0 x75, 0 x55}, {0 x00, 0 x76, 0 x56}, {0 x00, 0 x77, 0 x57},
{0 x00, 0 x78, 0 x58}, {0 x00, 0 x79, 0 x59}, {0 x00, 0 x7a, 0 x5a},
{0 x00, 0 x7b, 0 x7b}, {0 x00, 0 x7c, 0 x7c}, {0 x00, 0 x7d, 0 x7d},
{0 x00, 0 x7e, 0 x7e}, {0 x00, 0 x7f, 0 x7f}, {0 x00, 0 x80, 0 x80},
{0 x00, 0 x81, 0 x81}, {0 x00, 0 x82, 0 x82}, {0 x00, 0 x83, 0 x83},
{0 x00, 0 x84, 0 x84}, {0 x00, 0 x85, 0 x85}, {0 x00, 0 x86, 0 x86},
{0 x00, 0 x87, 0 x87}, {0 x00, 0 x88, 0 x88}, {0 x00, 0 x89, 0 x89},
{0 x00, 0 x8a, 0 x8a}, {0 x00, 0 x8b, 0 x8b}, {0 x00, 0 x8c, 0 x8c},
{0 x00, 0 x8d, 0 x8d}, {0 x00, 0 x8e, 0 x8e}, {0 x00, 0 x8f, 0 x8f},
{0 x00, 0 x90, 0 x90}, {0 x00, 0 x91, 0 x91}, {0 x00, 0 x92, 0 x92},
{0 x00, 0 x93, 0 x93}, {0 x00, 0 x94, 0 x94}, {0 x00, 0 x95, 0 x95},
{0 x00, 0 x96, 0 x96}, {0 x00, 0 x97, 0 x97}, {0 x00, 0 x98, 0 x98},
{0 x00, 0 x99, 0 x99}, {0 x00, 0 x9a, 0 x9a}, {0 x00, 0 x9b, 0 x9b},
{0 x00, 0 x9c, 0 x9c}, {0 x00, 0 x9d, 0 x9d}, {0 x00, 0 x9e, 0 x9e},
{0 x00, 0 x9f, 0 x9f}, {0 x00, 0 xa0, 0 xa0}, {0 x00, 0 xa1, 0 xa1},
{0 x00, 0 xa2, 0 xa2}, {0 x00, 0 xa3, 0 xa3}, {0 x00, 0 xa4, 0 xa4},
{0 x00, 0 xa5, 0 xa5}, {0 x00, 0 xa6, 0 xa6}, {0 x00, 0 xa7, 0 xa7},
{0 x00, 0 xa8, 0 xa8}, {0 x00, 0 xa9, 0 xa9}, {0 x00, 0 xaa, 0 xaa},
{0 x00, 0 xab, 0 xab}, {0 x00, 0 xac, 0 xac}, {0 x00, 0 xad, 0 xad},
{0 x00, 0 xae, 0 xae}, {0 x00, 0 xaf, 0 xaf}, {0 x00, 0 xb0, 0 xb0},
{0 x00, 0 xb1, 0 xb1}, {0 x00, 0 xb2, 0 xb2}, {0 x00, 0 xb3, 0 xb3},
{0 x00, 0 xb4, 0 xb4}, {0 x00, 0 xb5, 0 xb5}, {0 x00, 0 xb6, 0 xb6},
{0 x00, 0 xb7, 0 xb7}, {0 x00, 0 xb8, 0 xb8}, {0 x00, 0 xb9, 0 xb9},
{0 x00, 0 xba, 0 xba}, {0 x00, 0 xbb, 0 xbb}, {0 x00, 0 xbc, 0 xbc},
{0 x00, 0 xbd, 0 xbd}, {0 x00, 0 xbe, 0 xbe}, {0 x00, 0 xbf, 0 xbf},
{0 x00, 0 xc0, 0 xc0}, {0 x00, 0 xc1, 0 xc1}, {0 x00, 0 xc2, 0 xc2},
{0 x00, 0 xc3, 0 xc3}, {0 x00, 0 xc4, 0 xc4}, {0 x00, 0 xc5, 0 xc5},
{0 x00, 0 xc6, 0 xc6}, {0 x00, 0 xc7, 0 xc7}, {0 x00, 0 xc8, 0 xc8},
{0 x00, 0 xc9, 0 xc9}, {0 x00, 0 xca, 0 xca}, {0 x00, 0 xcb, 0 xcb},
{0 x00, 0 xcc, 0 xcc}, {0 x00, 0 xcd, 0 xcd}, {0 x00, 0 xce, 0 xce},
{0 x00, 0 xcf, 0 xcf}, {0 x00, 0 xd0, 0 xd0}, {0 x00, 0 xd1, 0 xd1},
{0 x00, 0 xd2, 0 xd2}, {0 x00, 0 xd3, 0 xd3}, {0 x00, 0 xd4, 0 xd4},
{0 x00, 0 xd5, 0 xd5}, {0 x00, 0 xd6, 0 xd6}, {0 x00, 0 xd7, 0 xd7},
{0 x00, 0 xd8, 0 xd8}, {0 x00, 0 xd9, 0 xd9}, {0 x00, 0 xda, 0 xda},
{0 x00, 0 xdb, 0 xdb}, {0 x00, 0 xdc, 0 xdc}, {0 x00, 0 xdd, 0 xdd},
{0 x00, 0 xde, 0 xde}, {0 x00, 0 xdf, 0 xdf}, {0 x00, 0 xe0, 0 xe0},
{0 x00, 0 xe1, 0 xe1}, {0 x00, 0 xe2, 0 xe2}, {0 x00, 0 xe3, 0 xe3},
{0 x00, 0 xe4, 0 xe4}, {0 x00, 0 xe5, 0 xe5}, {0 x00, 0 xe6, 0 xe6},
{0 x00, 0 xe7, 0 xe7}, {0 x00, 0 xe8, 0 xe8}, {0 x00, 0 xe9, 0 xe9},
{0 x00, 0 xea, 0 xea}, {0 x00, 0 xeb, 0 xeb}, {0 x00, 0 xec, 0 xec},
{0 x00, 0 xed, 0 xed}, {0 x00, 0 xee, 0 xee}, {0 x00, 0 xef, 0 xef},
{0 x00, 0 xf0, 0 xf0}, {0 x00, 0 xf1, 0 xf1}, {0 x00, 0 xf2, 0 xf2},
{0 x00, 0 xf3, 0 xf3}, {0 x00, 0 xf4, 0 xf4}, {0 x00, 0 xf5, 0 xf5},
{0 x00, 0 xf6, 0 xf6}, {0 x00, 0 xf7, 0 xf7}, {0 x00, 0 xf8, 0 xf8},
{0 x00, 0 xf9, 0 xf9}, {0 x00, 0 xfa, 0 xfa}, {0 x00, 0 xfb, 0 xfb},
{0 x00, 0 xfc, 0 xfc}, {0 x00, 0 xfd, 0 xfd}, {0 x00, 0 xfe, 0 xfe},
{0 x00, 0 xff, 0 xff}};
struct enc_entry {
const char * enc_name;
const struct cs_info* cs_table;
};
const struct enc_entry encds[] = {
{"iso88591" , iso1_tbl}, // ISO-8859-1
{"iso88592" , iso2_tbl}, // ISO-8859-2
{"iso88593" , iso3_tbl}, // ISO-8859-3
{"iso88594" , iso4_tbl}, // ISO-8859-4
{"iso88595" , iso5_tbl}, // ISO-8859-5
{"iso88596" , iso6_tbl}, // ISO-8859-6
{"iso88597" , iso7_tbl}, // ISO-8859-7
{"iso88598" , iso8_tbl}, // ISO-8859-8
{"iso88599" , iso9_tbl}, // ISO-8859-9
{"iso885910" , iso10_tbl}, // ISO-8859-10
{"tis620" , tis620_tbl}, // TIS-620/ISO-8859-11
{"tis6202533" , tis620_tbl}, // TIS-620/ISO-8859-11
{"iso885911" , tis620_tbl}, // TIS-620/ISO-8859-11
{"iso885913" , iso13_tbl}, // ISO-8859-13
{"iso885914" , iso14_tbl}, // ISO-8859-14
{"iso885915" , iso15_tbl}, // ISO-8859-15
{"koi8r" , koi8r_tbl}, // KOI8-R
{"koi8u" , koi8u_tbl}, // KOI8-U
{"cp1251" , cp1251_tbl}, // CP-1251
{"microsoftcp1251" , cp1251_tbl}, // microsoft-cp1251
{"xisciias" , iscii_devanagari_tbl}, // x-iscii-as
{"isciidevanagari" , iscii_devanagari_tbl} // ISCII-DEVANAGARI
};
/* map to lower case and remove non alphanumeric chars */
static void toAsciiLowerAndRemoveNonAlphanumeric(const char * pName,
char * pBuf) {
while (*pName) {
/* A-Z */
if ((*pName >= 0 x41) && (*pName <= 0 x5A)) {
*pBuf = (*pName) + 0 x20; /* toAsciiLower */
pBuf++;
}
/* a-z, 0-9 */
else if (((*pName >= 0 x61) && (*pName <= 0 x7A)) ||
((*pName >= 0 x30) && (*pName <= 0 x39))) {
*pBuf = *pName;
pBuf++;
}
pName++;
}
*pBuf = '\0' ;
}
const struct cs_info* get_current_cs(const std::string& es) {
char * normalized_encoding = new char [es.size() + 1 ];
toAsciiLowerAndRemoveNonAlphanumeric(es.c_str(), normalized_encoding);
const struct cs_info* ccs = nullptr;
for (const auto & encd : encds) {
if (strcmp(normalized_encoding, encd.enc_name) == 0 ) {
ccs = encd.cs_table;
break ;
}
}
delete [] normalized_encoding;
if (!ccs) {
HUNSPELL_WARNING(stderr,
"error: unknown encoding %s: using %s as fallback\n" , es.c_str(),
encds[0 ].enc_name);
ccs = encds[0 ].cs_table;
}
return ccs;
}
#else
const struct cs_info* get_current_cs(const std::string& es) {
return moz_hunspell_GetCurrentCS(es.c_str());
}
#endif
// primitive isalpha() replacement for tokenization
std::string get_casechars(const char * enc) {
const struct cs_info* csconv = get_current_cs(enc);
std::string expw;
for (int i = 0 ; i <= 255 ; ++i) {
if (cupper(csconv, i) != clower(csconv, i)) {
expw.push_back(static_cast <char >(i));
}
}
#ifdef MOZILLA_CLIENT
delete [] csconv;
#endif
return expw;
}
// language to encoding default map
struct lang_map {
const char * lang;
int num;
};
const struct lang_map lang2enc[] =
{{"ar" , LANG_ar}, {"az" , LANG_az},
{"az_AZ" , LANG_az}, // for back-compatibility
{"bg" , LANG_bg}, {"ca" , LANG_ca},
{"crh" , LANG_crh},
{"cs" , LANG_cs}, {"da" , LANG_da},
{"de" , LANG_de}, {"el" , LANG_el},
{"en" , LANG_en}, {"es" , LANG_es},
{"eu" , LANG_eu}, {"gl" , LANG_gl},
{"fr" , LANG_fr}, {"hr" , LANG_hr},
{"hu" , LANG_hu}, {"hu_HU" , LANG_hu}, // for back-compatibility
{"it" , LANG_it}, {"la" , LANG_la},
{"lv" , LANG_lv}, {"nl" , LANG_nl},
{"pl" , LANG_pl}, {"pt" , LANG_pt},
{"sv" , LANG_sv}, {"tr" , LANG_tr},
{"tr_TR" , LANG_tr}, // for back-compatibility
{"ru" , LANG_ru}, {"uk" , LANG_uk}};
int get_lang_num(const std::string& lang) {
for (const auto & i : lang2enc) {
if (strcmp(lang.c_str(), i.lang) == 0 ) {
return i.num;
}
}
return LANG_xx;
}
unsigned short unicodetoupper(unsigned short c, int langnum) {
// In Azeri and Turkish, I and i dictinct letters:
// There are a dotless lower case i pair of upper `I',
// and an upper I with dot pair of lower `i'.
if (c == 0 x0069 && ((langnum == LANG_az) || (langnum == LANG_tr) || (langnum == LANG_crh)))
return 0 x0130;
#ifdef OPENOFFICEORG
return static_cast <unsigned short >(u_toupper(c));
#else
#ifdef MOZILLA_CLIENT
return moz_hunspell_ToUpperCase((char16_t)c);
#else
return utf_tbl[c].cupper;
#endif
#endif
}
unsigned short unicodetolower(unsigned short c, int langnum) {
// In Azeri and Turkish, I and i dictinct letters:
// There are a dotless lower case i pair of upper `I',
// and an upper I with dot pair of lower `i'.
if (c == 0 x0049 && ((langnum == LANG_az) || (langnum == LANG_tr) || (langnum == LANG_crh)))
return 0 x0131;
#ifdef OPENOFFICEORG
return static_cast <unsigned short >(u_tolower(c));
#else
#ifdef MOZILLA_CLIENT
return moz_hunspell_ToLowerCase((char16_t)c);
#else
return utf_tbl[c].clower;
#endif
#endif
}
int unicodeisalpha(unsigned short c) {
#ifdef OPENOFFICEORG
return u_isalpha(c);
#elif defined (MOZILLA_CLIENT)
// utf_tbl is not available in MOZILLA_CLIENT mode and this function is not
// called by any internal Hunspell code path used via the RLBox sandbox.
(void )c;
return 0 ;
#else
return utf_tbl[c].cletter;
#endif
}
/* get type of capitalization */
int get_captype(const std::string& word, const cs_info* csconv) {
// now determine the capitalization type of the first nl letters
size_t ncap = 0 ;
size_t nneutral = 0 ;
size_t firstcap = 0 ;
if (csconv == nullptr)
return NOCAP;
for (char q : word) {
const auto nIndex = static_cast <unsigned char >(q);
if (ccase(csconv, nIndex))
ncap++;
if (cupper(csconv, nIndex) == clower(csconv, nIndex))
nneutral++;
}
if (ncap) {
const auto nIndex = static_cast <unsigned char >(word[0 ]);
firstcap = csconv[nIndex].ccase;
}
// now finally set the captype
if (ncap == 0 ) {
return NOCAP;
} else if ((ncap == 1 ) && firstcap) {
return INITCAP;
} else if ((ncap == word.size()) || ((ncap + nneutral) == word.size())) {
return ALLCAP;
} else if ((ncap > 1 ) && firstcap) {
return HUHINITCAP;
}
return HUHCAP;
}
int get_captype_utf8(const std::vector<w_char>& word, int langnum) {
// now determine the capitalization type of the first nl letters
size_t ncap = 0 ;
size_t nneutral = 0 ;
size_t firstcap = 0 ;
auto it = word.begin(), it_end = word.end();
while (it != it_end) {
const auto idx = (unsigned short )*it;
const auto lwridx = unicodetolower(idx, langnum);
if (idx != lwridx)
ncap++;
if (unicodetoupper(idx, langnum) == lwridx)
nneutral++;
++it;
}
if (ncap) {
const auto idx = (unsigned short )word[0 ];
firstcap = (idx != unicodetolower(idx, langnum));
}
// now finally set the captype
if (ncap == 0 ) {
return NOCAP;
} else if ((ncap == 1 ) && firstcap) {
return INITCAP;
} else if ((ncap == word.size()) || ((ncap + nneutral) == word.size())) {
return ALLCAP;
} else if ((ncap > 1 ) && firstcap) {
return HUHINITCAP;
}
return HUHCAP;
}
// strip all ignored characters in the string
size_t remove_ignored_chars_utf(std::string& word,
const std::vector<w_char>& ignored_chars) {
std::vector<w_char> w;
std::vector<w_char> w2;
u8_u16(w, word);
std::copy_if(w.begin(), w.end(), std::back_inserter(w2),
[&ignored_chars](w_char wc) {
return !std::binary_search(ignored_chars.begin(), ignored_chars.end(), wc);
});
u16_u8(word, w2);
return w2.size();
}
// strip all ignored characters in the string
size_t remove_ignored_chars(std::string& word,
const std::string& ignored_chars) {
word.erase(
std::remove_if(word.begin(), word.end(), is_any_of(ignored_chars)),
word.end());
return word.size();
}
bool parse_string(const std::string& line, std::string& out, int ln) {
if (!out.empty()) {
HUNSPELL_WARNING(stderr, "error: line %d: multiple definitions\n" , ln);
return false ;
}
int i = 0 ;
int np = 0 ;
auto iter = line.begin(), start_piece = mystrsep(line, iter);
while (start_piece != line.end()) {
switch (i) {
case 0 : {
np++;
break ;
}
case 1 : {
out.assign(start_piece, iter);
np++;
break ;
}
default :
break ;
}
++i;
start_piece = mystrsep(line, iter);
}
if (np != 2 ) {
HUNSPELL_WARNING(stderr, "error: line %d: missing data\n" , ln);
return false ;
}
return true ;
}
bool parse_array(const std::string& line,
std::string& out,
std::vector<w_char>& out_utf16,
int utf8,
int ln) {
if (!parse_string(line, out, ln))
return false ;
if (utf8) {
u8_u16(out_utf16, out);
std::sort(out_utf16.begin(), out_utf16.end());
}
return true ;
}
Messung V0.5 in Prozent C=97 H=91 G=93