/**************************************************************
 * 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 *************************************************************/



/* ======================================================================= */

/* This file contain the UniCode to DBCS tables for the following */
/* chinese simplified (China) charsets: */
/* GBT (GB12345) */

/* Some tables are in ctabscn2.cxx, because these tables are shared with */
/* GB or GBK. */

/* ======================================================================= */

static sal_uInt16 const aImplUniToDBCSTab_GBT_4E[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xD2BB, 0xB6A1, 	 0, 0xC6DF, 	 0, 	 0, 	 0, 0xF8F1, /* 0x00 */
	0xD5C9, 0xC8FD, 0xC9CF, 0xCFC2, 0xD8A2, 0xB2BB, 	 0, 	 0, /* 0x00 */
	0xD8A4, 0xF8A9, 	 0, 	 0, 0xC7D2, 0xD8A7, 0xCAC0, 	 0, /* 0x10 */
	0xC7F0, 0xB1FB, 	 0, 	 0, 	 0, 	 0, 0xD8A9, 	 0, /* 0x10 */
		 0, 	 0, 0xB6AA, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
	0xD8AD, 	 0, 	 0, 0xD1BE, 0xE3DC, 0xD6D0, 	 0, 	 0, /* 0x20 */
	0xF8B3, 	 0, 0xB4AE, 	 0, 	 0, 	 0, 0xD8BC, 	 0, /* 0x30 */
	0xCDE8, 0xB5A4, 	 0, 0xD6F7, 	 0, 	 0, 	 0, 0xD8AF, /* 0x30 */
		 0, 	 0, 	 0, 0xC4CB, 	 0, 0xBEC3, 	 0, 0xD8B1, /* 0x40 */
	0xF7E1, 	 0, 	 0, 0xD6AE, 	 0, 0xD5A7, 0xBAF5, 0xB7A6, /* 0x40 */
		 0, 	 0, 0xC6B9, 0xC5D2, 	 0, 	 0, 0xB9D4, 	 0, /* 0x50 */
	0xB3CB, 0xD2D2, 	 0, 	 0, 0xD8BF, 0xBEC5, 0xC6F2, 0xD2B2, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 0xD8C0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xC8E9, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC7AC, 	 0, /* 0x70 */
		 0, 	 0, 0xC2D2, 	 0, 	 0, 	 0, 0xC1CB, 	 0, /* 0x80 */
	0xD3E8, 	 0, 	 0, 0xCAC2, 0xB6FE, 0xD8A1, 0xD3DA, 	 0, /* 0x80 */
		 0, 0xF8FD, 0xBBA5, 0xD8C1, 0xCEE5, 0xBEAE, 	 0, 	 0, /* 0x90 */
	0xD8A8, 	 0, 	 0, 0xD0A9, 	 0, 	 0, 0xD1C7, 0xD8BD, /* 0x90 */
	0xD9EF, 0xCDF6, 0xBFBA, 	 0, 0xBDBB, 0xBAA5, 0xD2E0, 	 0, /* 0xA0 */
	0xBAE0, 	 0, 	 0, 0xCFED, 0xBEA9, 0xCDA4, 0xC1C1, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xD9F1, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 0xC8CB, 0xD8E9, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xCAB2, 0xC8CA, 0xD8EC, 0xD8EA, 0xD8C6, 	 0, 0xF8DF, 0xB3F0, /* 0xC0 */
		 0, 0xD8EB, 0xBDF1, 0xBDE9, 	 0, 0xC8D4, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 0xD7D0, 0xCACB, 0xCBFB, 0xD5CC, /* 0xD0 */
	0xB8B6, 0xCFC9, 	 0, 	 0, 	 0, 0xD9DA, 0xD8F0, 0xC7AA, /* 0xD0 */
		 0, 0xD8EE, 	 0, 0xB4FA, 0xC1EE, 0xD2D4, 	 0, 	 0, /* 0xE0 */
	0xD8ED, 	 0, 	 0, 0xD8EF, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xD1F6, 	 0, 0xD6D9, 0xD8F2, 	 0, 0xD8F5, 0xBCFE, 0xF8C2, /* 0xF0 */
		 0, 	 0, 	 0, 0xC8CE, 	 0, 0xB7DD, 	 0, 0xB7C2	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_4F[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xC6F3, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 0xD8F8, 0xD2C1, 	 0, 	 0, 0xCEE9, 0xBCBF, 0xB7FC, /* 0x00 */
	0xB7A5, 0xD0DD, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 0xBBEF, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 0xD8F3, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xB2AE, /* 0x20 */
	0xB9C0, 	 0, 0xD9A3, 	 0, 0xB0E9, 	 0, 0xC1E6, 	 0, /* 0x30 */
	0xC9EC, 	 0, 0xCBC5, 	 0, 0xCBC6, 0xD9A4, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 0xB5E8, 	 0, 	 0, 0xB5AB, 0xD8F9, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xCEBB, 0xB5CD, 0xD7A1, /* 0x40 */
	0xD7F4, 0xD3D3, 	 0, 	 0, 	 0, 0xBACE, 	 0, 0xD9A2, /* 0x50 */
	0xD9DC, 0xE2C5, 0xD8FD, 0xB7F0, 0xD7F7, 0xD8FE, 0xD8FA, 0xD9A1, /* 0x50 */
	0xC4E3, 	 0, 	 0, 	 0, 0xD8F4, 	 0, 	 0, 0xD8FB, /* 0x60 */
		 0, 0xC5E5, 	 0, 	 0, 0xC0D0, 	 0, 	 0, 0xD1F0, /* 0x60 */
	0xB0DB, 	 0, 	 0, 0xBCD1, 0xD9A6, 	 0, 0xD9A5, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 0xD9AC, 0xD9AE, 	 0, 0xD9AB, 0xCAB9, /* 0x70 */
		 0, 	 0, 	 0, 0xD9A9, 0xD6B6, 	 0, 0xC0B4, 	 0, /* 0x80 */
	0xB3DE, 0xD9A8, 	 0, 0xC0FD, 	 0, 0xCACC, 	 0, 0xD9AA, /* 0x80 */
		 0, 0xD9A7, 	 0, 	 0, 0xD9B0, 	 0, 0xC2D8, 0xB6B1, /* 0x90 */
		 0, 	 0, 	 0, 0xB9A9, 	 0, 0xD2C0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xC2C2, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCEEA, 0xBAEE, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xC7D6, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xB1E3, /* 0xB0 */
		 0, 	 0, 0xF8F2, 0xB4D9, 0xB6ED, 0xD9B4, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xBFA1, 	 0, 	 0, 	 0, 0xD9DE, 0xC7CE, /* 0xC0 */
	0xC0FE, 0xD9B8, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCBD7, /* 0xD0 */
	0xB7FD, 	 0, 0xD9B5, 	 0, 0xD9B7, 0xB1A3, 0xD3E1, 0xD9B9, /* 0xD0 */
	0xCFC0, 0xD0C5, 	 0, 0xD9B6, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD0DE, 0xB8A9, /* 0xE0 */
		 0, 0xBEE3, 	 0, 0xD9BD, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
	0xD9BA, 	 0, 0xB0B3, 	 0, 	 0, 	 0, 0xD9C2			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_50[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xD8F6, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC1A9, 	 0, /* 0x00 */
		 0, 0xB2D6, 	 0, 0xB8F6, 0xD9C4, 0xB1B6, 	 0, 0xD9BF, /* 0x00 */
		 0, 0xC3C7, 0xB5B9, 	 0, 0xBEF3, 	 0, 	 0, 	 0, /* 0x10 */
	0xCCC8, 0xBAF2, 0xD2D0, 	 0, 0xD9C3, 	 0, 	 0, 0xBDE8, /* 0x10 */
		 0, 0xB3AB, 	 0, 	 0, 	 0, 0xD9C5, 0xBEEB, 	 0, /* 0x20 */
	0xD9C6, 0xD9BB, 0xC4DF, 0xC2D7, 0xD9BE, 0xD9C1, 0xD9C0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 0xD6B5, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 0xD9C8, 	 0, 	 0, 	 0, 0xBCD9, /* 0x40 */
	0xD9CA, 0xCEB0, 	 0, 	 0, 0xD9BC, 	 0, 0xD9CB, 0xC6AB, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xD9C9, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xD7F6, 	 0, 0xCDA3, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xBDA1, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 0xD9CC, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 0xB2E0, 0xD5EC, 0xC5BC, 0xCDB5, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
	0xBFFE, 	 0, 	 0, 	 0, 	 0, 0xB8B5, 	 0, 	 0, /* 0x80 */
	0xC0FC, 	 0, 	 0, 	 0, 	 0, 0xB0F8, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD8F7, 	 0, /* 0x90 */
	0xC9A1, 0xB1B8, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 0xF8C1, 0xB4F6, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 0xB4DF, 0xD3B6, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 0xB0C1, 0xB4AB, 0xD8F1, 0xD5AE, 	 0, 0xC9CB, /* 0xB0 */
		 0, 	 0, 0xD9D1, 0xC9B5, 	 0, 	 0, 0xC7E3, 	 0, /* 0xB0 */
		 0, 	 0, 0xD9CD, 	 0, 	 0, 0xBDF6, 	 0, 	 0, /* 0xC0 */
		 0, 0xD9DD, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCFF1, /* 0xC0 */
		 0, 0xC7C8, 	 0, 	 0, 	 0, 0xC6CD, 0xD9D2, 	 0, /* 0xD0 */
		 0, 	 0, 0xC1C5, 	 0, 	 0, 	 0, 0xCEB1, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xBDC4, 0xD9D6, 0xC9AE, /* 0xE0 */
	0xD9C7, 	 0, 	 0, 	 0, 0xD9D5, 0xD9D4, 0xD9D7, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xCBDB, 	 0, 0xBDA9, 	 0, 	 0, /* 0xF0 */
		 0, 0xBCDB, 	 0, 0xC6A7									/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_51[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xD2C7, 	 0, 0xD9AF, 	 0, 0xD2DA, 	 0, 0xD9D3, 0xD9D8, /* 0x00 */
	0xBFEB, 0xBCF3, 	 0, 0xD9D9, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
	0xD9CF, 	 0, 0xC8E5, 	 0, 0xD9B1, 0xD9AD, 	 0, 	 0, /* 0x10 */
	0xF8C5, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xB3A5, /* 0x10 */
		 0, 0xC0DC, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xD3C5, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xB4A2, 	 0, 	 0, 	 0, 	 0, 0xD9B3, /* 0x30 */
		 0, 	 0, 0xD9D0, 0xD9CE, 0xD9B2, 	 0, 	 0, 	 0, /* 0x30 */
	0xD8A3, 0xD4CA, 	 0, 0xD4AA, 0xD0D6, 0xB3E4, 0xD5D7, 	 0, /* 0x40 */
	0xCFC8, 0xB9E2, 	 0, 0xBFCB, 	 0, 0xC3E2, 	 0, 	 0, /* 0x40 */
		 0, 0xB6D2, 0xB6F9, 	 0, 0xCDC3, 0xD9EE, 0xD9F0, 	 0, /* 0x50 */
		 0, 	 0, 0xF8AC, 	 0, 0xB6B5, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xBEA4, 	 0, 	 0, 0xC8EB, 	 0, 	 0, /* 0x60 */
	0xC8AB, 0xC1BD, 	 0, 0xB0CB, 0xB9AB, 0xC1F9, 0xD9E2, 	 0, /* 0x60 */
		 0, 0xB9B2, 	 0, 	 0, 	 0, 0xB1F8, 0xC6E4, 0xBEDF, /* 0x70 */
	0xB5E4, 0xD7C8, 	 0, 	 0, 0xBCE6, 	 0, 	 0, 	 0, /* 0x70 */
	0xBCBD, 	 0, 0xD8E7, 	 0, 	 0, 0xC4DA, 	 0, 	 0, /* 0x80 */
		 0, 0xC8BD, 	 0, 	 0, 0xB2E1, 0xD4D9, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xC3B0, 	 0, 	 0, 0xC3E1, 0xDAA2, 0xC8DF, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
	0xB9DA, 	 0, 0xDAA3, 	 0, 0xD4A9, 0xDAA4, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xD9FB, 0xB6AC, 	 0, 	 0, 	 0, /* 0xA0 */
	0xB1F9, 0xD9FC, 0xF8A8, 0xBEF6, 	 0, 0xBFF6, 0xD2B1, 0xC0E4, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 0xD9FE, 0xD9FD, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 0xC6E0, 	 0, 0xF9A9, 0xDAA1, /* 0xC0 */
	0xBEBB, 0xC1B9, 	 0, 0xB5F2, 0xC1E8, 0xB6B3, 	 0, 0xBCF5, /* 0xC0 */
		 0, 0xB4D5, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 0xC1DD, 	 0, 0xC4FD, 	 0, 	 0, /* 0xD0 */
	0xF8C0, 0xB7B2, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF8DD, 	 0, 	 0, /* 0xE0 */
	0xBBCB, 0xBFAD, 	 0, 0xB5CA, 	 0, 0xDBC9, 0xD0D7, 	 0, /* 0xF0 */
	0xCDB9, 0xB0BC, 0xB3F6, 	 0, 0xDBCA, 0xBAAF					/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_52[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xB5B6, 0xB5F3, 0xD8D6, 0xC8D0, 	 0, 	 0, 0xB7D6, 0xC7D0, /* 0x00 */
	0xD8D7, 	 0, 0xBFAF, 	 0, 	 0, 	 0, 0xD8D8, 	 0, /* 0x00 */
		 0, 0xD0CC, 0xF8BB, 	 0, 	 0, 	 0, 0xEBBE, 0xC1D0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xB3F5, 	 0, 	 0, /* 0x10 */
	0xC9BE, 	 0, 	 0, 	 0, 0xC5D0, 	 0, 	 0, 	 0, /* 0x20 */
	0xC5D9, 0xC0FB, 	 0, 0xB1F0, 	 0, 	 0, 0xB9CE, 	 0, /* 0x20 */
	0xB5BD, 	 0, 	 0, 0xD8DA, 	 0, 	 0, 0xD6C6, 0xCBA2, /* 0x30 */
	0xC8AF, 0xC9B2, 0xB4CC, 0xBFCC, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xB6E7, 	 0, 0xCCEA, 0xD8D9, 	 0, 	 0, 0xD4F2, /* 0x40 */
		 0, 	 0, 0xCFF7, 0xF8C8, 0xD8DD, 0xC7B0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xCCDE, 	 0, 0xC6CA, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 0xB8D5, 0xD8E0, 	 0, 0xD8DE, 	 0, /* 0x50 */
		 0, 0xD8DF, 	 0, 	 0, 	 0, 0xB0FE, 	 0, 	 0, /* 0x60 */
		 0, 0xCAA3, 0xBCF4, 	 0, 	 0, 	 0, 0xB9D0, 0xB8B1, /* 0x60 */
		 0, 	 0, 0xB8EE, 	 0, 0xD8DC, 0xB4B4, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xD8E2, 	 0, 0xBDCB, /* 0x70 */
		 0, 0xD8E4, 0xD8E3, 0xBBAE, 	 0, 	 0, 	 0, 0xBEE7, /* 0x80 */
	0xC5FC, 0xC1F5, 0xB9F4, 	 0, 0xD8DB, 0xBDA3, 	 0, 	 0, /* 0x80 */
	0xD8E5, 0xBCC1, 	 0, 0xD8E6, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xC1A6, 	 0, 	 0, 	 0, 0xB9A6, /* 0x90 */
	0xBCD3, 	 0, 	 0, 0xC1D3, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 0xD6FA, 0xC5AC, 0xBDD9, 0xDBBE, 0xDBBF, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDBC0, 	 0, /* 0xB0 */
		 0, 0xBEA2, 	 0, 0xB2AA, 	 0, 	 0, 	 0, 0xD3C2, /* 0xC0 */
		 0, 0xC3E3, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
	0xDBC2, 	 0, 0xC0D5, 	 0, 	 0, 0xB6AF, 0xDBC3, 	 0, /* 0xD0 */
	0xBFB1, 0xCEF1, 	 0, 0xD1AB, 	 0, 0xCAA4, 0xC0CD, 0xC4BC, /* 0xD0 */
		 0, 	 0, 0xCAC6, 	 0, 0xC7DA, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xDBC4, 0xDBBD, 	 0, 	 0, 	 0, 0xC0F8, 	 0, 	 0, /* 0xF0 */
	0xC8B0, 0xD9E8, 0xC9D7, 	 0, 	 0, 	 0, 0xB9B4, 0xCEF0	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_53[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xD4C8, 	 0, 	 0, 	 0, 	 0, 0xB0FC, 0xB4D2, 	 0, /* 0x00 */
	0xD0D9, 	 0, 	 0, 	 0, 	 0, 0xD9E9, 	 0, 0xDECB, /* 0x00 */
	0xD9EB, 	 0, 	 0, 	 0, 	 0, 0xD8B0, 0xBBAF, 0xB1B1, /* 0x10 */
		 0, 0xB3D7, 0xD8CE, 	 0, 	 0, 0xD4D1, 	 0, 	 0, /* 0x10 */
	0xBDB3, 0xBFEF, 	 0, 0xCFBB, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xB7CB, 	 0, 	 0, 0xD8D0, 	 0, 0xBBE3, /* 0x20 */
		 0, 0xD8D1, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xC6A5, 	 0, 	 0, 	 0, 	 0, 0xD8D2, 0xC4E4, /* 0x30 */
	0xC7F8, 0xCAAE, 	 0, 0xC7A7, 	 0, 0xD8A6, 	 0, 0xC9FD, /* 0x40 */
	0xCEE7, 0xBBDC, 0xB0EB, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 0xB1B0, 0xD7E4, 0xD7BF, 0xD0AD, 	 0, 	 0, 0xC4CF, /* 0x50 */
		 0, 	 0, 0xB2A9, 	 0, 0xB2B7, 	 0, 0xB1E5, 0xDFB2, /* 0x50 */
	0xD5BC, 0xBFA8, 	 0, 0xD8D5, 	 0, 	 0, 0xD8D4, 0xCED4, /* 0x60 */
		 0, 0xDAE0, 	 0, 	 0, 	 0, 	 0, 0xD8B4, 0xC3AE, /* 0x60 */
	0xD3A1, 0xCEA3, 	 0, 0xBCB4, 0xC8B4, 0xC2D1, 	 0, 0xBEED, /* 0x70 */
	0xD0B6, 	 0, 0xDAE1, 	 0, 	 0, 	 0, 	 0, 0xC7E4, /* 0x70 */
		 0, 	 0, 0xF8A7, 	 0, 0xB6F2, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
	0xC0E5, 0xD8C7, 0xBAF1, 	 0, 	 0, 0xD8C8, 	 0, 0xD4AD, /* 0x90 */
	0xB2DE, 	 0, 0xCFE1, 	 0, 	 0, 0xD8CA, 0xCFC3, 	 0, /* 0xA0 */
	0xB3F8, 0xBEC7, 	 0, 	 0, 	 0, 0xD1E1, 0xD8CB, 	 0, /* 0xA0 */
		 0, 	 0, 0xC0F7, 	 0, 0xD8C9, 	 0, 0xDBCC, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 0xC8A5, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xC8FE, 	 0, 0xB2CE, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
	0xD3D6, 0xB2E6, 0xBCB0, 0xD3D1, 	 0, 0xB7B4, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 0xCAE5, 	 0, 0xC8A1, 0xCADC, /* 0xD0 */
		 0, 0xD0F0, 	 0, 0xC5D1, 	 0, 	 0, 	 0, 0xDBC5, /* 0xD0 */
		 0, 	 0, 0xB4D4, 0xBFDA, 0xB9C5, 0xBEE4, 0xC1ED, 	 0, /* 0xE0 */
	0xDFB6, 0xDFB5, 0xF9A3, 0xBDD0, 0xD5D9, 0xB0C8, 0xB6A3, 0xBFC9, /* 0xE0 */
	0xF8EB, 0xDFB3, 0xCAB7, 0xD3D2, 	 0, 0xD8CF, 0xF8F8, 	 0, /* 0xF0 */
	0xCBBE, 	 0, 	 0, 0xDFB7, 0xB5F0							/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_54[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xD3F5, 	 0, 0xB3D4, 0xB8F7, 	 0, 0xDFBA, 	 0, /* 0x00 */
	0xBACF, 0xBCAA, 0xB5F5, 	 0, 0xCDAC, 0xC3FB, 0xE1E1, 0xC0F4, /* 0x00 */
	0xCDC2, 0xCFF2, 0xDFB8, 	 0, 	 0, 0xC2C0, 0xDFB9, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 0xBEFD, 	 0, 0xC1DF, 0xCDCC, 0xD2F7, /* 0x10 */
	0xB7CD, 0xDFC1, 	 0, 0xDFC4, 	 0, 	 0, 0xB7F1, 0xB0C9, /* 0x20 */
		 0, 0xB7D4, 	 0, 0xBAAC, 	 0, 0xBFD4, 0xCBB1, 	 0, /* 0x20 */
		 0, 0xD6A8, 0xDFC5, 	 0, 0xCEE2, 0xB3B3, 	 0, 	 0, /* 0x30 */
	0xCEFC, 0xB4B5, 	 0, 0xCEC7, 0xBAF0, 	 0, 0xCEE1, 	 0, /* 0x30 */
	0xD1BD, 	 0, 	 0, 0xDFC0, 	 0, 	 0, 0xB4F4, 	 0, /* 0x40 */
	0xB3CA, 	 0, 0xB8E6, 0xDFBB, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
	0xC4C5, 	 0, 	 0, 	 0, 0xDFBE, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xC4D8, 	 0, 0xDFCA, 	 0, 0xDFCF, 	 0, /* 0x60 */
	0xD6DC, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 0xDFC9, 0xDFDA, 0xCEB6, 	 0, 0xBAC7, 0xDFCE, 0xDFC8, /* 0x70 */
	0xC5DE, 	 0, 	 0, 0xC9EB, 0xBAF4, 0xC3FC, 	 0, 	 0, /* 0x70 */
	0xBED7, 	 0, 0xDFC6, 	 0, 0xDFCD, 	 0, 0xC5D8, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 0xD5A6, 0xBACD, 	 0, 0xBECC, 0xD3BD, /* 0x80 */
	0xB8C0, 	 0, 0xD6E4, 	 0, 0xDFC7, 0xB9BE, 0xBFA7, 	 0, /* 0x90 */
		 0, 	 0, 0xDFCB, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xDFDB, 0xDFE5, 	 0, 0xDFD7, 0xDFD6, /* 0xA0 */
	0xD7C9, 0xDFE3, 0xDFE4, 0xE5EB, 0xD2A7, 0xDFD2, 	 0, 0xBFA9, /* 0xA0 */
		 0, 0xD4DB, 	 0, 0xBFC8, 0xDFD4, 	 0, 	 0, 	 0, /* 0xB0 */
	0xCFCC, 	 0, 	 0, 0xDFDD, 0xDFC3, 0xD1CA, 	 0, 0xDFDE, /* 0xB0 */
	0xB0A7, 0xC6B7, 0xDFD3, 	 0, 0xBAE5, 	 0, 0xB6DF, 0xCDDB, /* 0xC0 */
	0xB9FE, 0xD4D5, 	 0, 	 0, 0xDFDF, 	 0, 0xB0A5, 0xDFE7, /* 0xC0 */
	0xDFD1, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 0xDFE1, 	 0, 	 0, 	 0, 0xDFE8, 	 0, /* 0xD0 */
		 0, 0xD4B1, 	 0, 	 0, 	 0, 0xB8E7, 0xC5B6, 0xDFEA, /* 0xE0 */
	0xC9DA, 0xC1A8, 0xC4C4, 	 0, 	 0, 0xBFDE, 0xCFF8, 	 0, /* 0xE0 */
		 0, 	 0, 0xD5DC, 0xDFEE, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 0xB2B8, 	 0, 0xBADF, 0xDFEC, 	 0, 0xDBC1	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_55[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xD1E4, 	 0, 	 0, 0xDFC2, 	 0, 0xCBF4, 0xB4BD, /* 0x00 */
		 0, 0xB0A6, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDFF1, /* 0x00 */
	0xCCC6, 0xDFF2, 	 0, 	 0, 0xDFED, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 0xDFF0, 	 0, 	 0, 	 0, 0xDFF3, /* 0x20 */
		 0, 	 0, 0xDFF4, 	 0, 0xBBA3, 	 0, 0xCADB, 0xCEA8, /* 0x20 */
	0xE0A7, 0xB3AA, 	 0, 0xE0A6, 	 0, 	 0, 	 0, 0xE0A1, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 0xDFFE, 	 0, 0xCDD9, 0xDFFC, /* 0x30 */
		 0, 0xDFFA, 	 0, 0xBFD0, 0xD7C4, 	 0, 0xC9CC, 	 0, /* 0x40 */
		 0, 0xDFF8, 0xB0A1, 	 0, 	 0, 	 0, 	 0, 0xCECA, /* 0x40 */
	0xDFFD, 	 0, 	 0, 0xC6F4, 	 0, 0xDFFB, 0xE0A2, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 0xE0A8, 	 0, 0xD1C6, 	 0, /* 0x50 */
		 0, 0xB7C8, 	 0, 	 0, 0xC6A1, 0xC9B6, 0xC0B2, 	 0, /* 0x60 */
		 0, 	 0, 0xC5BE, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE0A3, 0xE0A4, 0xE0A5, /* 0x70 */
		 0, 	 0, 	 0, 0xE0B4, 0xCCE4, 	 0, 0xE0B1, 	 0, /* 0x70 */
	0xBFA6, 0xE0AF, 0xCEB9, 0xE0AB, 0xC9C6, 	 0, 	 0, 0xC0AE, /* 0x80 */
	0xE0AE, 0xBAED, 0xBAB0, 0xE0A9, 	 0, 	 0, 	 0, 0xDFF6, /* 0x80 */
		 0, 0xE0B3, 	 0, 	 0, 0xE0B8, 	 0, 	 0, 	 0, /* 0x90 */
	0xB4AD, 0xE0B9, 0xBBBD, 	 0, 0xCFB2, 0xBAC8, 	 0, 0xE0B0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD0FA, /* 0xA0 */
		 0, 	 0, 0xC9A5, 	 0, 0xC7C7, 	 0, 0xB5A5, 	 0, /* 0xA0 */
		 0, 0xE0AC, 0xD3B4, 0xD4FB, 	 0, 0xDFF7, 	 0, 	 0, /* 0xB0 */
		 0, 0xE0AD, 	 0, 0xD3F7, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 0xE0C4, 0xD0E1, 0xC7BA, 0xD8C4, /* 0xC0 */
		 0, 0xE0BC, 	 0, 	 0, 0xE0C9, 0xE0CA, 0xC2F0, 	 0, /* 0xC0 */
		 0, 0xE0BE, 0xE0AA, 0xC9A4, 0xE0C1, 	 0, 0xE0B2, 	 0, /* 0xD0 */
		 0, 	 0, 0xCED8, 	 0, 0xCAC8, 0xE0C3, 	 0, 0xE0B5, /* 0xD0 */
		 0, 0xCECB, 	 0, 0xCBC3, 0xE0CD, 0xE0C6, 0xE0C2, 	 0, /* 0xE0 */
	0xE0CB, 0xDFEF, 0xE0BA, 	 0, 0xE0C0, 	 0, 	 0, 0xE0C5, /* 0xE0 */
		 0, 	 0, 0xE0C7, 	 0, 	 0, 0xE0CC, 0xDFD9, 0xE0BB, /* 0xF0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xCBD4, 0xE0D5			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_56[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xE0D6, 0xE0D2, 	 0, 	 0, 	 0, 	 0, 0xCCBE, 	 0, /* 0x00 */
	0xE0D0, 0xBCCE, 	 0, 	 0, 0xE0D1, 0xE0B6, 0xB8C2, 0xD8C5, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 0xC5BB, 	 0, 0xDFF5, 0xB3A2, /* 0x10 */
	0xD0EA, 	 0, 	 0, 0xC2EF, 0xDFE9, 	 0, 0xE0CF, 0xE0BD, /* 0x10 */
		 0, 	 0, 	 0, 0xE0D4, 	 0, 	 0, 	 0, 0xE0D7, /* 0x20 */
		 0, 0xBBA9, 	 0, 	 0, 0xE0DC, 0xE0D8, 0xDFEB, 0xD0A5, /* 0x20 */
	0xDFB4, 	 0, 0xB3B0, 	 0, 0xD7EC, 0xDFD8, 0xCBBB, 	 0, /* 0x30 */
	0xDFBC, 0xE0DA, 	 0, 0xCEFB, 	 0, 	 0, 	 0, 0xBAD9, /* 0x30 */
		 0, 0xF8B0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xE0E1, 0xE0DD, 0xD2AD, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xE0E2, 	 0, 	 0, 0xE0DB, /* 0x50 */
	0xE0D9, 0xE0DF, 	 0, 	 0, 	 0, 0xDFD0, 	 0, 	 0, /* 0x50 */
	0xDFD5, 	 0, 0xE0DE, 	 0, 0xE0E4, 0xDFE6, 0xDFDC, 	 0, /* 0x60 */
	0xC6F7, 0xD8AC, 0xD4EB, 0xE0E6, 0xCAC9, 	 0, 	 0, 0xE0C8, /* 0x60 */
		 0, 0xE0E5, 0xDFE0, 	 0, 0xC5E7, 	 0, 0xB8C1, 	 0, /* 0x70 */
	0xB6D6, 0xF8AB, 	 0, 0xE0E7, 0xE0E8, 	 0, 	 0, 	 0, /* 0x70 */
	0xDFCC, 	 0, 	 0, 	 0, 	 0, 0xE0E9, 0xE0E3, 0xCFC5, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 0xDFE2, 	 0, 0xBABF, 0xCCE7, /* 0x80 */
		 0, 	 0, 	 0, 0xE0EA, 	 0, 0xE0E0, 	 0, 	 0, /* 0x90 */
		 0, 0xC4F6, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDFBF, 	 0, /* 0xA0 */
	0xC1FC, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF8F5, 0xE0EB, /* 0xA0 */
		 0, 	 0, 	 0, 0xE0B7, 0xD1CF, 	 0, 0xE0D3, 0xC8C2, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 0xBDC0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xDFF9, 0xE0BF, 0xCFF9, 	 0, 	 0, 0xD9E6, 	 0, 	 0, /* 0xC0 */
	0xDFBD, 0xF8D3, 0xC4D2, 	 0, 0xF8EA, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xD6F6, 	 0, 	 0, 0xE0EC, 	 0, 	 0, 0xE0ED, /* 0xD0 */
		 0, 	 0, 0xC7F4, 0xCBC4, 	 0, 0xE0EE, 0xBBD8, 0xD8B6, /* 0xD0 */
	0xD2F2, 0xE0EF, 	 0, 	 0, 0xB6DA, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xE0F1, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xC0A7, 0xB4D1, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 0xE0F2, 0xB9CC, 	 0, 	 0, 	 0, 	 0, 0xE0F3	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_57[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
							0xC6D4, 0xE0F4, 	 0, 	 0, 0xE0F0, /* 0x00 */
	0xC8A6, 0xE0F6, 0xE0F5, 0xB9FA, 	 0, 0xCEA7, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 0xD4B0, 0xD4B2, 	 0, 	 0, 0xCDBC, 	 0, /* 0x10 */
	0xCDC5, 	 0, 	 0, 	 0, 0xE0F7, 	 0, 	 0, 0xCDC1, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
	0xD4DA, 0xDBD7, 0xDBD9, 	 0, 0xDBD8, 0xB9E7, 0xDBDC, 0xDBDD, /* 0x20 */
	0xB5D8, 	 0, 	 0, 0xDBDA, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 0xDBDF, 	 0, 	 0, 0xBBF8, 	 0, /* 0x30 */
	0xD6B7, 	 0, 0xDBE0, 	 0, 	 0, 	 0, 	 0, 0xBEF9, /* 0x40 */
		 0, 	 0, 0xB7BB, 	 0, 0xDBD0, 0xCCAE, 0xBFB2, 	 0, /* 0x40 */
	0xD7F8, 0xBFD3, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 0xC6C2, 	 0, 	 0, 0xC0A4, 	 0, 0xCCB9, 	 0, /* 0x60 */
	0xDBE7, 0xDBE1, 0xC6BA, 0xDBE3, 	 0, 0xDBE8, 	 0, 0xC5F7, /* 0x60 */
		 0, 	 0, 	 0, 0xDBEA, 	 0, 	 0, 0xDBE9, 0xBFC0, /* 0x70 */
		 0, 	 0, 	 0, 0xDBE6, 0xDBE5, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 0xB4B9, 0xC0AC, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 0xD0CD, 0xDBED, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 0xDBF2, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xB6E2, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
	0xDBF3, 0xDBD2, 0xB9B8, 0xD4AB, 0xDBEC, 	 0, 	 0, 0xDBF0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xBFE5, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xDBF9, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 0xB9A1, 0xB0A3, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 0xC2F1, 	 0, 	 0, 0xB3C7, 0xDBEF, /* 0xC0 */
		 0, 	 0, 0xDBF8, 	 0, 0xC6D2, 0xDBF4, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xDBFE, 	 0, 0xD3F2, /* 0xD0 */
	0xB2BA, 0xDBEB, 	 0, 	 0, 0xDBFD, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xDCA4, 	 0, 0xDBFB, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 0xDBFA, 	 0, 	 0, 0xD6B4, /* 0xF0 */
	0xDBFC, 0xC5E0, 0xBBF9, 	 0, 	 0, 0xDCA3					/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_58[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xDCA5, 	 0, 0xCCC3, 	 0, 	 0, 0xBCE1, 0xB6D1, 0xDDC0, /* 0x00 */
		 0, 	 0, 0xDBD1, 0xDCA1, 	 0, 0xDCA2, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDBF1, 	 0, /* 0x10 */
		 0, 0xDCA7, 	 0, 	 0, 	 0, 0xDBF6, 0xDCA6, 	 0, /* 0x10 */
	0xDCA9, 0xB1A4, 	 0, 	 0, 0xB5CC, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xBFB0, 	 0, 	 0, 	 0, 	 0, 0xD2A2, /* 0x20 */
	0xD1DF, 0xB1A8, 	 0, 	 0, 0xB3A1, 0xB6C2, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 0xDCA8, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 0xBFE9, 0xDCE3, 0xCBFA, 0xEBF3, 	 0, 0xDBEE, /* 0x40 */
		 0, 0xCBDC, 0xDBF5, 	 0, 0xCBFE, 	 0, 	 0, 0xCDBF, /* 0x50 */
	0xCCC1, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC8FB, 	 0, /* 0x50 */
		 0, 	 0, 0xCEEB, 	 0, 0xDBF7, 0xDCAA, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xCCEE, 0xDCAB, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xB3BE, 	 0, 	 0, /* 0x70 */
		 0, 0xC7B5, 	 0, 	 0, 	 0, 	 0, 0xDBD3, 	 0, /* 0x70 */
	0xDCAF, 0xDCAC, 	 0, 0xBEB3, 	 0, 0xCAFB, 	 0, 	 0, /* 0x80 */
		 0, 0xDCAD, 0xB5E6, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xC9CA, 0xC4B9, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 0xDCAE, 	 0, 0xD7B9, 	 0, 0xD4F6, 0xD0E6, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xC4AB, 0xB6D5, 	 0, 	 0, 	 0, 	 0, 0xB6E9, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xB7D8, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 0xC7BD, 0xDBD4, 	 0, 0xBFD1, 	 0, /* 0xB0 */
		 0, 0xB1DA, 	 0, 	 0, 	 0, 0xDBD5, 	 0, 0xCCB3, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xDBD6, 	 0, 0xD1B9, 	 0, 0xBABE, 	 0, 	 0, /* 0xD0 */
	0xC0DD, 0xDBDB, 0xDBE4, 	 0, 	 0, 	 0, 0xBBB5, 0xC2A2, /* 0xD0 */
	0xDBE2, 	 0, 0xDBDE, 	 0, 0xC8C0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 0xB0D3, 	 0, 0xCABF, 0xC8C9, 	 0, 	 0, 0xD7B3, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 0xD2BC, 0xBAF8, 	 0, 	 0, 0xCAD9					/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_59[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
					0xE2BA, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCFC4, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 0xD9E7, 0xCFA6, 0xCDE2, 	 0, /* 0x10 */
		 0, 0xD9ED, 0xB6E0, 	 0, 0xD2B9, 	 0, 	 0, 0xB9BB, /* 0x10 */
		 0, 	 0, 0xC3CE, 	 0, 0xE2B9, 0xE2B7, 	 0, 0xB4F3, /* 0x20 */
		 0, 0xCCEC, 0xCCAB, 0xB7F2, 	 0, 0xD8B2, 0xD1EB, 0xBABB, /* 0x20 */
		 0, 0xCAA7, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD2C4, /* 0x30 */
	0xF8C9, 	 0, 	 0, 	 0, 0xDEC5, 	 0, 0xBCD0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 0xD1D9, 	 0, 	 0, 0xC6E6, /* 0x40 */
	0xC4CE, 0xB7EE, 	 0, 	 0, 	 0, 	 0, 0xBFFC, 0xD7E0, /* 0x40 */
	0xDBBC, 0xC6F5, 	 0, 	 0, 0xB1BC, 0xDEC8, 	 0, 0xCCD7, /* 0x50 */
	0xDECA, 	 0, 0xDEC9, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
	0xB5EC, 	 0, 0xC9DD, 	 0, 	 0, 0xB0C2, 	 0, 	 0, /* 0x60 */
		 0, 0xDEC6, 0xB6E1, 	 0, 0xBDB1, 	 0, 0xB7DC, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xC5AE, 0xC5AB, 	 0, 0xC4CC, 	 0, /* 0x70 */
	0xBCE9, 0xCBFD, 	 0, 	 0, 	 0, 0xBAC3, 	 0, 	 0, /* 0x70 */
		 0, 0xE5F9, 0xC8E7, 0xE5FA, 0xCDFD, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xC8D1, 	 0, 	 0, 0xE5FB, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xB6CA, 0xBCCB, 	 0, 	 0, 0xD1FD, 0xE6A1, /* 0x90 */
		 0, 0xC3EE, 	 0, 	 0, 	 0, 0xD7B1, 0xE6A4, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xE5FE, 0xE6A5, 0xCDD7, 	 0, 	 0, /* 0xA0 */
	0xB7C1, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC4DD, 0xE6A8, /* 0xA0 */
		 0, 	 0, 0xE6A7, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xC3C3, 	 0, 0xC6DE, 	 0, 	 0, 0xE6AA, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC4B7, 	 0, /* 0xC0 */
		 0, 	 0, 0xE6A2, 0xCABC, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
	0xBDE3, 0xB9C3, 0xE6A6, 0xD0D5, 0xCEAF, 	 0, 	 0, 0xE6A9, /* 0xD0 */
	0xE6B0, 	 0, 0xD2A6, 	 0, 0xBDAA, 0xE6AD, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 0xE6AF, 	 0, 0xC0D1, 	 0, 	 0, /* 0xE0 */
	0xD2CC, 	 0, 	 0, 	 0, 0xBCA7, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 0xE6B1, 	 0, 0xD2F6, 	 0, 	 0, 	 0, 0xD7CB	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_5A[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xCDFE, 	 0, 0xCDDE, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 0xE6B3, 	 0, 	 0, 0xE6B2, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 0xE6B6, 	 0, 0xE6B8, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
	0xC4EF, 	 0, 	 0, 	 0, 0xC4C8, 	 0, 	 0, 0xBEEA, /* 0x10 */
	0xC9EF, 	 0, 	 0, 0xE6B7, 	 0, 0xB6F0, 	 0, 	 0, /* 0x20 */
		 0, 0xC3E4, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 0xD3E9, 	 0, 	 0, 	 0, 	 0, 0xC8A2, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 0xE6BD, 	 0, 	 0, 	 0, /* 0x30 */
	0xE6B9, 0xC2A6, 	 0, 	 0, 	 0, 	 0, 0xC6C5, 	 0, /* 0x40 */
		 0, 0xCDF1, 0xE6BB, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE6BC, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xBBE9, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xE6BE, 	 0, 	 0, 	 0, 0xB8BE, 0xE6BA, /* 0x60 */
		 0, 	 0, 0xC0B7, 	 0, 	 0, 0xE6AB, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE6C3, /* 0x70 */
		 0, 	 0, 0xE6C4, 	 0, 	 0, 	 0, 	 0, 0xD0F6, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xC3BD, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 0xC3C4, 0xE6C2, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE6B4, /* 0xA0 */
		 0, 	 0, 0xE6C1, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 0xE6C7, 0xCFB1, 	 0, 0xEBF4, 	 0, 	 0, /* 0xB0 */
	0xE6CA, 	 0, 	 0, 	 0, 	 0, 0xC2E8, 0xE6C5, 	 0, /* 0xB0 */
		 0, 0xBCDE, 0xC9A9, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xBCB5, 	 0, 	 0, 0xCFD3, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE6CE, 0xE5FD, /* 0xD0 */
	0xE6D0, 	 0, 	 0, 	 0, 0xE6D1, 	 0, 	 0, 	 0, /* 0xD0 */
	0xE6CB, 0xB5D5, 	 0, 0xE6CC, 	 0, 	 0, 0xE6CF, 	 0, /* 0xE0 */
		 0, 0xC4DB, 	 0, 0xE6C6, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE5FC, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 0xE6B5									/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_5B[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xE6A3, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
	0xE6AC, 0xE6D2, 	 0, 0xE6BF, 0xBDBF, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE6D4, 0xE6D3, /* 0x10 */
		 0, 0xE6CD, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 0xE6C8, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xE6C9, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
	0xD3A4, 	 0, 0xE6D5, 	 0, 0xD9F8, 	 0, 	 0, 0xE6D6, /* 0x30 */
	0xC9F4, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
	0xE6D7, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xE6AE, 	 0, 	 0, 	 0, /* 0x40 */
	0xD7D3, 0xE6DD, 	 0, 0xE6DE, 0xBFD7, 0xD4D0, 	 0, 0xD7D6, /* 0x50 */
	0xB4E6, 	 0, 0xE6DA, 0xD8C3, 0xD7CE, 0xD0A2, 	 0, 0xC3CF, /* 0x50 */
		 0, 	 0, 0xE6DF, 0xBCBE, 0xB9C2, 0xE6DB, 	 0, 	 0, /* 0x60 */
		 0, 0xBAA2, 	 0, 0xCBEF, 0xD8AB, 	 0, 	 0, 	 0, /* 0x60 */
	0xCAEB, 0xE5EE, 	 0, 0xE6DC, 	 0, 0xB7F5, 	 0, 	 0, /* 0x70 */
	0xD1A7, 	 0, 0xC8E6, 	 0, 	 0, 0xC4F5, 	 0, 0xC2CF, /* 0x70 */
	0xE5B2, 	 0, 	 0, 0xCBFC, 0xE5B3, 0xD5AC, 	 0, 0xD3EE, /* 0x80 */
	0xCAD8, 0xB0B2, 	 0, 0xCBCE, 0xCDEA, 	 0, 	 0, 0xBAEA, /* 0x80 */
		 0, 	 0, 	 0, 0xE5B5, 	 0, 0xE5B4, 	 0, 0xD7DA, /* 0x90 */
	0xB9D9, 0xD6E6, 0xB6A8, 0xCDF0, 0xD2CB, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 0xBFCD, 0xD0FB, 0xCAD2, 0xE5B6, 0xBBC2, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xB9AC, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xD4D7, 	 0, 	 0, 0xBAA6, 0xD1E7, 0xCFFC, 0xBCD2, 	 0, /* 0xB0 */
	0xE5B7, 0xC8DD, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCBDE, /* 0xB0 */
		 0, 	 0, 0xBCC5, 	 0, 0xBCC4, 0xD2FA, 0xC3DC, 0xBFDC, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 0xB8BB, 	 0, 	 0, 	 0, /* 0xC0 */
	0xC3C2, 	 0, 0xBAAE, 0xD4A2, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC4AF, 0xB2EC, /* 0xD0 */
		 0, 0xB9D1, 0xC7DE, 	 0, 0xE5BB, 0xC1C8, 0xCAB5, 0xC4FE, /* 0xE0 */
	0xD5AF, 0xC9F3, 	 0, 0xD0B4, 0xBFED, 	 0, 0xE5BC, 	 0, /* 0xE0 */
	0xE5BE, 	 0, 	 0, 	 0, 	 0, 0xB3E8, 0xB1A6, 	 0, /* 0xF0 */
	0xB4E7, 	 0, 0xCBC2											/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_5C[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xB7E2, 	 0, 	 0, 0xC9E4, 	 0, 	 0, 0xBDAB, /* 0x00 */
	0xD7A8, 0xCEBE, 0xD7F0, 0xD1B0, 	 0, 0xB6D4, 0xB5BC, 0xD0A1, /* 0x00 */
		 0, 0xC9D9, 	 0, 	 0, 	 0, 0xE6D8, 0xBCE2, 	 0, /* 0x10 */
		 0, 	 0, 0xC9D0, 	 0, 0xE6D9, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 0xDECC, 	 0, 0xD3C8, 0xDECD, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 0xDECE, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 0xBECD, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDECF, /* 0x30 */
	0xCAAC, 0xD2FC, 0xB3DF, 0xE5EA, 0xC4E1, 	 0, 0xCEB2, 0xC4F2, /* 0x30 */
	0xBED6, 0xC6A8, 	 0, 	 0, 	 0, 0xBED3, 	 0, 	 0, /* 0x40 */
	0xC7FC, 0xCCEB, 0xBDEC, 0xCEDD, 	 0, 	 0, 0xCABA, 0xC6C1, /* 0x40 */
	0xE5EC, 0xD0BC, 	 0, 	 0, 	 0, 0xD5B9, 	 0, 	 0, /* 0x50 */
		 0, 0xE5ED, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
	0xCDC0, 	 0, 0xC2C5, 0xE5EF, 0xB2E3, 0xC2C4, 	 0, 	 0, /* 0x60 */
	0xE5F0, 	 0, 	 0, 	 0, 0xCAF4, 	 0, 0xE5F8, 0xCDCD, /* 0x60 */
		 0, 0xC9BD, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 0xD2D9, 0xE1A8, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
	0xE1AC, 	 0, 	 0, 	 0, 0xE1A7, 0xE1A9, 	 0, 	 0, /* 0x80 */
	0xE1AA, 0xE1AF, 	 0, 	 0, 0xB2ED, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 0xE1AE, 	 0, 	 0, 0xE1B1, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 0xB8D4, 0xE1B3, 0xE1B8, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 0xD1D2, 	 0, 0xE1B6, 0xE1B5, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 0xE1B7, 	 0, 0xD4C0, 	 0, 0xE1B2, 	 0, 0xE1BA, /* 0xB0 */
	0xB0B6, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xE1B9, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 0xE1BE, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xE1BC, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 0xD6C5, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xB6EB, 	 0, 0xD3F8, 	 0, 	 0, 0xC7CD, 	 0, 	 0, /* 0xE0 */
	0xB7E5, 	 0, 	 0, 	 0, 0xE1AD, 	 0, 0xB5BA, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 0xBEFE, 	 0, 0xCFBF					/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_5D[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
													0xE1C7, 0xB3E7, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE1C1, 0xC6E9, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 0xB4DE, 	 0, 0xD1C2, 0xB8DA, /* 0x10 */
		 0, 	 0, 	 0, 0xE1C8, 	 0, 	 0, 0xE1C6, 	 0, /* 0x10 */
		 0, 	 0, 0xE1BF, 	 0, 0xE1C5, 	 0, 0xE1C3, 0xE1C2, /* 0x20 */
		 0, 0xB1C0, 	 0, 	 0, 0xE1B4, 	 0, 0xE1C4, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 0xE1CB, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE1CC, 0xE1CA, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEFFA, /* 0x40 */
		 0, 	 0, 0xE1D3, 0xE1D2, 0xC7B6, 	 0, 	 0, 	 0, /* 0x40 */
	0xE1B0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 0xE1CE, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 0xE1D4, 	 0, 0xE1D1, 0xE1CD, 	 0, 	 0, 0xE1CF, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 0xE1D5, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 0xE1D0, 0xE1D6, 	 0, 0xD5B8, 	 0, 	 0, 0xE1AB, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE1C0, /* 0x90 */
		 0, 0xE1D7, 	 0, 	 0, 	 0, 0xE1D8, 	 0, 	 0, /* 0x90 */
	0xE1BD, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE1BB, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE1DA, /* 0xB0 */
	0xE1C9, 	 0, 0xC1EB, 	 0, 0xD3EC, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 0xBFF9, 	 0, 0xCEA1, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xC2CD, 	 0, 0xE1DB, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 0xE7DD, 	 0, 0xB4A8, 0xD6DD, 	 0, /* 0xD0 */
		 0, 0xD1B2, 0xB3B2, 	 0, 	 0, 0xB9A4, 0xD7F3, 0xC7C9, /* 0xE0 */
	0xBEDE, 	 0, 	 0, 0xCED7, 	 0, 	 0, 0xB2EE, 	 0, /* 0xE0 */
	0xDBCF, 0xBCBA, 0xD2D1, 0xCBC8, 0xB0CD, 	 0, 	 0, 0xCFEF, /* 0xF0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xD9E3, 0xBDED			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_5E[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
					0xCAD0, 0xB2BC, 	 0, 	 0, 0xB7AB, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 0xCFA3, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 0xE0FB, 	 0, 	 0, 0xE0FA, 0xC5C1, 0xCCFB, 	 0, /* 0x10 */
	0xF8D0, 0xE0F9, 0xD6E3, 0xB2AF, 	 0, 0xB5DB, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xCBA7, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 0xCAA6, 	 0, 0xCFAF, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 0xD5CA, 	 0, 	 0, 0xB4F8, 0xE1A1, /* 0x30 */
	0xB3A3, 	 0, 	 0, 	 0, 	 0, 0xC3B1, 	 0, 	 0, /* 0x30 */
	0xD6A1, 	 0, 0xC3DD, 0xE0F8, 0xE1A2, 0xB7F9, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xBBCF, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xE1A3, 0xC4BB, 	 0, 0xE0FE, /* 0x50 */
	0xE0FD, 	 0, 	 0, 0xE1A4, 	 0, 	 0, 0xE1A5, 0xD6C4, /* 0x50 */
		 0, 0xE1A6, 0xB4B1, 0xB1D2, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xB0EF, 0xE0FC, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 0xF8B5, 0xC6BD, 0xC4EA, 	 0, 0xB2A2, 	 0, /* 0x70 */
	0xD0D2, 0xB8C9, 0xE7DB, 0xBBC3, 0xD3D7, 0xD3C4, 0xBCB8, 0xF8B8, /* 0x70 */
	0xE2CF, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xB1D3, /* 0x80 */
		 0, 	 0, 0xB4B2, 0xE2D1, 	 0, 	 0, 	 0, 0xD0F2, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xB5D7, 0xE2D2, 0xB5EA, /* 0x90 */
		 0, 	 0, 0xB8FD, 	 0, 0xB8AE, 	 0, 	 0, 	 0, /* 0x90 */
	0xE2D4, 	 0, 	 0, 	 0, 	 0, 0xE2D3, 0xB6C8, 0xD7F9, /* 0xA0 */
		 0, 	 0, 	 0, 0xBFE2, 	 0, 0xCDA5, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xE2D8, 	 0, 0xE2D6, 0xCAFC, 0xBFB5, /* 0xB0 */
	0xD3B9, 0xE2D5, 	 0, 	 0, 	 0, 	 0, 0xE2D7, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xC1AE, 0xC0C8, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xE2DB, 0xE2DA, 0xC0AA, 	 0, 	 0, 0xC1CE, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 0xE2DC, 	 0, 	 0, 	 0, 0xC3ED, /* 0xD0 */
	0xB3A7, 0xE2D0, 0xB7CF, 0xB9E3, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xE2DD, 	 0, 0xE2DE, 	 0, 0xC2AE, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xCCFC, 0xDBC8, 	 0, 0xD1D3, 0xCDA2, /* 0xF0 */
		 0, 	 0, 0xBDA8, 	 0, 	 0, 	 0, 0xDEC3, 0xD8A5	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_5F[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xDBCD, 0xD2EC, 	 0, 0xC5AA, 	 0, 	 0, 	 0, /* 0x00 */
	0xDEC4, 	 0, 0xB1D7, 0xDFAE, 	 0, 	 0, 	 0, 0xCABD, /* 0x00 */
		 0, 0xDFB1, 	 0, 0xB9AD, 	 0, 0xD2FD, 	 0, 0xB8A5, /* 0x10 */
	0xBAEB, 	 0, 	 0, 0xB3DA, 	 0, 	 0, 	 0, 0xB5DC, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCFD2, 0xBBA1, /* 0x20 */
		 0, 0xE5F3, 	 0, 	 0, 	 0, 0xE5F4, 	 0, 	 0, /* 0x20 */
		 0, 0xC8F5, 	 0, 0xE5F2, 	 0, 0xD5C5, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 0xC7BF, 	 0, 0xE5F6, 	 0, 	 0, 	 0, /* 0x30 */
	0xECB0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF8A4, 	 0, /* 0x40 */
	0xB5AF, 	 0, 	 0, 	 0, 0xC3D6, 	 0, 0xCDE4, 	 0, /* 0x40 */
	0xE5E6, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE5E8, 0xE5E7, /* 0x50 */
	0xE5E9, 0xF8BD, 	 0, 	 0, 	 0, 0xD2CD, 	 0, 	 0, /* 0x50 */
		 0, 0xE1EA, 0xD0CE, 	 0, 0xCDAE, 	 0, 0xD1E5, 	 0, /* 0x60 */
		 0, 0xB2CA, 0xB1EB, 	 0, 0xB1F2, 0xC5ED, 	 0, 	 0, /* 0x60 */
	0xD5C3, 0xD3B0, 	 0, 0xE1DC, 	 0, 	 0, 	 0, 0xE1DD, /* 0x70 */
		 0, 0xD2DB, 	 0, 	 0, 0xB1CB, 	 0, 	 0, 	 0, /* 0x70 */
	0xCDF9, 0xD5F7, 0xE1DE, 	 0, 	 0, 0xB4FD, 	 0, 0xE1DF, /* 0x80 */
	0xBADC, 0xE1E0, 0xBBB2, 0xC2C9, 0xBAF3, 	 0, 	 0, 	 0, /* 0x80 */
	0xD0EC, 0xBEB6, 0xCDBD, 	 0, 	 0, 	 0, 	 0, 0xB5C3, /* 0x90 */
	0xC5C7, 0xE1E3, 	 0, 	 0, 0xE1E4, 	 0, 0xB4D3, 	 0, /* 0x90 */
	0xE1E2, 0xD3F9, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xE1E5, 0xB8B4, 0xD1AD, 	 0, 	 0, 0xE1E6, 0xCEA2, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE1E7, 	 0, 0xB5C2, /* 0xB0 */
		 0, 0xB3B9, 	 0, 	 0, 0xE1E8, 0xBBD5, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 0xD0C4, 0xE2E0, 0xB1D8, 	 0, 	 0, /* 0xC0 */
		 0, 0xE2E1, 	 0, 	 0, 0xBCC9, 0xC8CC, 	 0, 	 0, /* 0xC0 */
	0xECFE, 0xECFD, 0xDFAF, 	 0, 	 0, 	 0, 0xE2E2, 0xD6BE, /* 0xD0 */
	0xCDFC, 0xC3A6, 	 0, 	 0, 	 0, 0xE3C3, 	 0, 	 0, /* 0xD0 */
	0xD6D2, 0xE2E7, 	 0, 	 0, 0xE2E8, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 0xE2EC, 0xBFEC, 	 0, 0xE2ED, 0xE2E5, 	 0, /* 0xE0 */
		 0, 0xB3C0, 	 0, 	 0, 	 0, 0xC4EE, 	 0, 	 0, /* 0xF0 */
	0xE2EE, 	 0, 	 0, 0xD0C3, 	 0, 0xBAF6, 	 0, 0xB7DE	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_60[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
																	/* 0x00 */
					0xE2F7, 	 0, 	 0, 0xE2F4, 0xD4F5, 0xE2F3, /* 0x00 */
		 0, 	 0, 0xC5AD, 	 0, 0xD5FA, 0xC5C2, 0xB2C0, 	 0, /* 0x10 */
		 0, 0xE2EF, 	 0, 0xE2F2, 	 0, 0xCBBC, 	 0, 	 0, /* 0x10 */
	0xB5A1, 0xE2F9, 	 0, 	 0, 	 0, 0xBCB1, 0xE2F1, 0xD0D4, /* 0x20 */
	0xD4B9, 0xE2F5, 0xB9D6, 0xE2F6, 	 0, 	 0, 	 0, 0xC7D3, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE2F0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xEDA5, 0xE2FE, 0xCAD1, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xBBD0, 	 0, 	 0, /* 0x40 */
	0xBFD6, 	 0, 0xBAE3, 	 0, 	 0, 0xCBA1, 	 0, 	 0, /* 0x50 */
		 0, 0xEDA6, 0xEDA3, 	 0, 	 0, 0xEDA2, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xBBD6, 0xEDA7, 0xD0F4, 	 0, 	 0, 0xEDA4, /* 0x60 */
	0xBADE, 0xB6F7, 0xE3A1, 0xB6B2, 0xCCF1, 0xB9A7, 	 0, 0xCFA2, /* 0x60 */
	0xC7A1, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD3C1, /* 0x70 */
		 0, 	 0, 	 0, 0xE3A7, 0xC7C4, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 0xCFA4, 	 0, 	 0, 0xE3A9, 0xBAB7, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xE3A8, 	 0, 0xBBDA, 	 0, 0xE3A3, 	 0, /* 0x90 */
		 0, 	 0, 0xE3A4, 0xE3AA, 	 0, 0xE3A6, 	 0, 0xCEF2, /* 0x90 */
	0xD3C6, 	 0, 	 0, 0xBBBC, 	 0, 	 0, 0xD4C3, 	 0, /* 0xA0 */
	0xC4FA, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 0xE3AD, 0xB1AF, 	 0, 0xE3B2, 0xE2EA, 0xC3C6, 	 0, /* 0xB0 */
	0xBCC2, 	 0, 	 0, 0xE3AC, 0xB5BF, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xC7E9, 0xE3B0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 0xCDEF, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xBBF3, 	 0, 	 0, 	 0, 0xCCE8, 	 0, 	 0, /* 0xD0 */
	0xE3AF, 	 0, 0xE3B1, 	 0, 0xCFA7, 0xE3AE, 	 0, 0xCEA9, /* 0xD0 */
	0xBBDD, 0xB6F1, 	 0, 	 0, 	 0, 	 0, 0xB5EB, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xB6E8, 0xC4D5, 0xE3A2, 0xCFEB, 0xE3B7, 	 0, 0xBBCC, 	 0, /* 0xF0 */
		 0, 0xC8C7, 0xD0CA, 0xE2FC									/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_61[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xE3B8, 0xB3EE, 	 0, 	 0, 	 0, 	 0, 0xEDA9, 	 0, /* 0x00 */
	0xD3FA, 0xD3E4, 	 0, 	 0, 	 0, 0xEDAA, 0xE3B9, 0xD2E2, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE3B5, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 0xD3DE, 0xB0AE, 0xE3AB, 	 0, 	 0, 0xB8D0, /* 0x10 */
	0xE3B3, 	 0, 	 0, 0xE3B6, 	 0, 	 0, 	 0, 0xC0A2, /* 0x20 */
		 0, 	 0, 	 0, 0xE3BA, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 0xE2EB, 	 0, 	 0, 0xE2FD, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE2E9, 0xF8FC, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
	0xB4C8, 	 0, 0xE3BB, 0xCCAC, 0xBBC5, 	 0, 0xC9F7, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xC4BD, 	 0, 	 0, /* 0x50 */
	0xB2D2, 	 0, 0xB2D1, 	 0, 	 0, 0xEDAB, 	 0, 0xE2FA, /* 0x50 */
		 0, 	 0, 0xC2FD, 0xB9DF, 0xEDA8, 	 0, 	 0, 0xBBDB, /* 0x60 */
	0xBFAE, 	 0, 0xE2E6, 0xCBCB, 	 0, 	 0, 0xC2C7, 	 0, /* 0x60 */
	0xCEBF, 	 0, 	 0, 0xE3A5, 	 0, 0xE3BC, 0xC7EC, 0xBFB6, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 0xD3C7, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xB1B9, 0xB1EF, 	 0, 	 0, 0xD4F7, 	 0, /* 0x80 */
	0xC1AF, 0xC6BE, 0xE3B4, 	 0, 0xE3BE, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 0xB5AC, 	 0, 	 0, 0xEDAD, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 0xB7DF, 	 0, 	 0, 0xE3BF, /* 0xA0 */
	0xBAA9, 0xEDAC, 	 0, 0xC3F5, 0xE3BD, 	 0, 0xE2E4, 	 0, /* 0xA0 */
		 0, 	 0, 0xCFDC, 	 0, 	 0, 	 0, 0xD2E4, 0xE3C0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xBAB6, 	 0, /* 0xB0 */
		 0, 	 0, 0xB6AE, 	 0, 	 0, 	 0, 	 0, 0xBFD2, /* 0xC0 */
	0xD0B8, 0xD3A6, 0xB0C3, 0xEDAE, 0xE2F8, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 0xE3C1, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF8D6, 0xEDA1, /* 0xD0 */
		 0, 	 0, 	 0, 0xEDAF, 	 0, 	 0, 0xC5B3, 	 0, /* 0xE0 */
	0xE2FB, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 0xB3CD, 	 0, 	 0, 0xE3C2, 0xC0C1, 0xBBB3, /* 0xF0 */
	0xD0FC, 	 0, 0xE2E3, 	 0, 0xBEE5, 	 0, 0xC9E5, 0xDCB2	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_62[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xC1B5, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEDB0, /* 0x00 */
	0xB8EA, 	 0, 0xCEEC, 	 0, 0xD0E7, 0xCAF9, 0xC8D6, 	 0, /* 0x00 */
	0xB3C9, 0xCED2, 0xBDE4, 	 0, 0xEAA7, 0xE3DE, 0xBBF2, 	 0, /* 0x10 */
		 0, 	 0, 0xC6DD, 0xEAA9, 	 0, 	 0, 	 0, 0xEAAA, /* 0x10 */
		 0, 0xEAAC, 0xEAAB, 	 0, 0xEAAE, 0xEAAD, 	 0, 0xEAA8, /* 0x20 */
		 0, 0xEAAF, 0xBDD8, 	 0, 	 0, 	 0, 0xC2BE, 	 0, /* 0x20 */
	0xD5BD, 	 0, 0xCFB7, 0xB4C1, 0xB4F7, 	 0, 	 0, 0xBBA7, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xECE6, 0xECE5, 0xB7BF, /* 0x30 */
	0xCBF9, 0xB1E2, 	 0, 0xECE7, 	 0, 	 0, 	 0, 0xC9C8, /* 0x40 */
	0xECE8, 0xECE9, 	 0, 0xCAD6, 0xDED0, 0xB2C5, 0xD4FA, 	 0, /* 0x40 */
		 0, 0xF8DE, 0xB0C7, 0xB4F2, 0xC8D3, 	 0, 	 0, 	 0, /* 0x50 */
	0xCDD0, 	 0, 	 0, 0xBFB8, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 0xBFDB, 	 0, 	 0, 0xC7A4, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xC5A4, 0xB0E7, 0xB3B6, /* 0x60 */
		 0, 	 0, 	 0, 0xB0E2, 	 0, 	 0, 0xB7F6, 	 0, /* 0x70 */
		 0, 0xC5FA, 	 0, 	 0, 0xB6F3, 	 0, 0xD5D2, 0xB3D0, /* 0x70 */
	0xBCBC, 	 0, 	 0, 	 0, 0xB3AD, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 0xBEF1, 0xB0D1, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 0xD2D6, 0xCAE3, 0xD7A5, 	 0, 0xCDB6, 0xB6B6, 0xBFB9, /* 0x90 */
	0xD5DB, 	 0, 	 0, 0xC5D7, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xC5EA, 	 0, 	 0, 0xC5FB, 0xCCA7, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 0xB1A7, 	 0, 	 0, 	 0, 0xB5D6, 	 0, 	 0, /* 0xB0 */
		 0, 0xC4A8, 	 0, 0xDED3, 0xD1BA, 0xB3E9, 	 0, 0xC3F2, /* 0xB0 */
		 0, 	 0, 0xB7F7, 	 0, 0xD6F4, 	 0, 0xB2F0, 0xC4B4, /* 0xC0 */
	0xC4E9, 0xC0AD, 0xDED4, 	 0, 0xB0E8, 0xC5C4, 0xC1E0, 	 0, /* 0xC0 */
	0xB9D5, 	 0, 0xBEDC, 0xCDD8, 0xB0CE, 	 0, 0xCDCF, 0xDED6, /* 0xD0 */
	0xBED0, 0xD7BE, 0xDED5, 0xD5D0, 0xB0DD, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 0xC0A8, 0xCAC3, 0xDED7, 0xD5FC, /* 0xE0 */
		 0, 0xB9B0, 	 0, 0xC8AD, 0xCBA9, 	 0, 0xDED9, 0xBFBD, /* 0xF0 */
		 0, 	 0, 	 0, 	 0, 0xC6B4, 0xD7A7, 0xCAB0, 0xC4C3	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_63[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xB3D6, 0xB9D2, 	 0, 	 0, 	 0, 	 0, 0xD6B8, /* 0x00 */
	0xEAFC, 0xB0B4, 	 0, 	 0, 	 0, 	 0, 0xBFE6, 	 0, /* 0x00 */
		 0, 0xCCF4, 	 0, 	 0, 	 0, 	 0, 0xCDDA, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
	0xB0A4, 	 0, 0xC5B2, 0xB4EC, 	 0, 	 0, 	 0, 0xD5F1, /* 0x20 */
		 0, 	 0, 0xEAFD, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xDEDA, 0xCDA6, 	 0, 	 0, 0xCDEC, 0xD0AE, 	 0, /* 0x30 */
		 0, 	 0, 0xCEE6, 0xDEDC, 	 0, 0xCDB1, 0xC0A6, 	 0, /* 0x40 */
		 0, 0xD7BD, 	 0, 0xDEDB, 0xB0C6, 0xBAB4, 0xC9D3, 0xC4F3, /* 0x40 */
	0xBEE8, 	 0, 	 0, 	 0, 	 0, 0xB2B6, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC5F5, /* 0x60 */
	0xC9E1, 0xDEE6, 	 0, 0xDED1, 	 0, 0xDEE3, 0xF8C6, 	 0, /* 0x60 */
		 0, 0xDEDF, 0xF8C7, 	 0, 	 0, 	 0, 0xB4B7, 0xBDDD, /* 0x70 */
		 0, 	 0, 0xDEE0, 0xC4ED, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
	0xCFC6, 	 0, 0xB5E0, 0xC9A8, 0xC2D5, 	 0, 	 0, 0xB6DE, /* 0x80 */
	0xCADA, 0xB5F4, 0xDEE5, 	 0, 0xD5C6, 	 0, 0xDEE1, 0xCCCD, /* 0x80 */
	0xC6FE, 	 0, 0xC5C5, 	 0, 	 0, 	 0, 0xD2B4, 	 0, /* 0x90 */
	0xBEF2, 0xD5F5, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
	0xC2D3, 	 0, 0xCCBD, 0xB3B8, 	 0, 0xBDD3, 	 0, 0xBFD8, /* 0xA0 */
	0xCDC6, 0xD1DA, 0xB4EB, 	 0, 0xDEE4, 0xDEDD, 0xDEE7, 	 0, /* 0xA0 */
	0xEAFE, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDEF2, 	 0, /* 0xB0 */
	0xBCF0, 	 0, 	 0, 	 0, 0xDEED, 	 0, 0xDEF1, 	 0, /* 0xC0 */
		 0, 0xC8E0, 	 0, 	 0, 	 0, 0xD7E1, 0xDEEF, 0xC3E8, /* 0xC0 */
	0xCCE1, 	 0, 0xB2E5, 	 0, 	 0, 	 0, 0xD2BE, 	 0, /* 0xD0 */
		 0, 	 0, 0xD1EF, 0xBBBB, 	 0, 	 0, 0xDEEE, 	 0, /* 0xD0 */
	0xDEEB, 0xCED5, 	 0, 0xB4A7, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 0xBFAB, 0xBEBE, 	 0, 	 0, 0xBDD2, 0xBBD3, 	 0, /* 0xE0 */
		 0, 	 0, 0xDEE9, 	 0, 0xD4AE, 	 0, 0xDEDE, 	 0, /* 0xF0 */
	0xDEEA															/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_64[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
																	/* 0x00 */
							0xDEF5, 0xDEF8, 0xCBF0, 	 0, 0xB2AB, /* 0x00 */
	0xB4A4, 	 0, 	 0, 0xB4EA, 0xC9A6, 	 0, 	 0, 0xB5B7, /* 0x10 */
		 0, 	 0, 	 0, 0xDEF6, 0xCBD1, 	 0, 0xB8E3, 	 0, /* 0x10 */
	0xDEF7, 0xDEFA, 	 0, 	 0, 	 0, 	 0, 0xDEF9, 	 0, /* 0x20 */
		 0, 	 0, 0xCCC2, 	 0, 0xB0E1, 0xB4EE, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 0xE5BA, 	 0, 0xC7C0, 	 0, /* 0x30 */
		 0, 	 0, 0xD0AF, 	 0, 	 0, 0xB2EB, 	 0, 0xEBA1, /* 0x30 */
		 0, 0xDEF4, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD2A1, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 0xDEE2, 0xDEF0, 	 0, 0xCBA4, 	 0, 	 0, 	 0, /* 0x50 */
	0xD5AA, 	 0, 	 0, 	 0, 0xDEE8, 	 0, 0xDEFB, 0xC2A7, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xB4DD, /* 0x60 */
		 0, 0xC4A6, 	 0, 	 0, 	 0, 0xDEFD, 	 0, 0xD6BF, /* 0x60 */
		 0, 	 0, 	 0, 0xBFD9, 	 0, 	 0, 0xDED2, 	 0, /* 0x70 */
	0xC3FE, 0xC4A1, 0xDFA1, 0xB2F4, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 0xC1CC, 	 0, 	 0, 0xBEEF, 	 0, 0xC6B2, /* 0x80 */
	0xC0CC, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 0xB3C5, 0xC8F6, 0xC4D3, 	 0, 0xCBBA, 0xDEFE, 	 0, /* 0x90 */
		 0, 0xDFA4, 	 0, 	 0, 	 0, 	 0, 0xD7B2, 0xDED8, /* 0x90 */
		 0, 	 0, 	 0, 0xB5A7, 0xB3B7, 0xB2A6, 	 0, 	 0, /* 0xA0 */
		 0, 0xC1C3, 	 0, 0xB8A7, 0xC7CB, 0xB2A5, 0xB4E9, 	 0, /* 0xA0 */
	0xD7AB, 	 0, 0xC6CB, 0xDEEC, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 0xCCA2, 0xBAB3, 	 0, 0xCECE, 0xBCF1, /* 0xB0 */
	0xDFA6, 0xD3B5, 0xC0DE, 	 0, 0xC2B0, 0xC9C3, 	 0, 0xD4F1, /* 0xC0 */
		 0, 	 0, 0xBBF7, 0xB5B2, 	 0, 0xB2D9, 0xC7E6, 	 0, /* 0xC0 */
	0xDFA7, 	 0, 0xC7DC, 	 0, 0xB5A3, 	 0, 	 0, 0xDFA8, /* 0xD0 */
	0xEBA2, 	 0, 0xBEDD, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
	0xBCB7, 	 0, 0xDFAA, 	 0, 0xDFA9, 	 0, 0xB2C1, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 0xC4E2, 	 0, 	 0, 0xB1F7, /* 0xE0 */
	0xC5A1, 0xB8E9, 0xD6C0, 	 0, 0xC0A9, 	 0, 	 0, 0xDFA2, /* 0xF0 */
		 0, 	 0, 0xB0DA, 0xCBD3, 0xDFA3, 	 0, 0xC8C5			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_65[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xC5CA, 	 0, 	 0, 	 0, 0xDEF3, 	 0, 0xC4EC, 	 0, /* 0x00 */
		 0, 0xDFAB, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC2A3, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 0xC0B9, 	 0, 0xDEFC, 	 0, /* 0x10 */
	0xC8C1, 0xB2F3, 	 0, 0xDFA5, 	 0, 0xC9E3, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 0xD4DC, 0xC2CE, 0xCCAF, 0xDFAC, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xBDC1, 0xBEF0, 0xC0BF, 	 0, 0xDFAD, 0xD6A7, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 0xEAB7, 0xEBB6, 0xCAD5, 	 0, /* 0x30 */
	0xD8FC, 0xB8C4, 	 0, 0xB9A5, 	 0, 	 0, 0xB7C5, 0xD5FE, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xB9CA, 	 0, 	 0, /* 0x40 */
	0xD0A7, 0xF4CD, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC3F4, /* 0x40 */
		 0, 0xBEC8, 	 0, 	 0, 	 0, 0xEBB7, 0xB0BD, 0xB0DC, /* 0x50 */
		 0, 0xBDCC, 	 0, 	 0, 	 0, 0xB1D6, 0xB3A8, 	 0, /* 0x50 */
		 0, 	 0, 0xB8D2, 0xC9A2, 	 0, 	 0, 0xB6D8, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xEBB8, 0xBEB4, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 0xC7C3, 	 0, 0xD5FB, 0xB5D0, 	 0, 0xB7F3, /* 0x70 */
	0xCAFD, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 0xC1B2, 0xB1D0, 	 0, 	 0, 	 0, 0xCEC4, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 0xB1F3, 	 0, 	 0, 	 0, /* 0x80 */
	0xECB3, 0xB0DF, 	 0, 	 0, 	 0, 0xECB5, 	 0, 0xF8AF, /* 0x90 */
		 0, 0xC1CF, 	 0, 0xF5FA, 0xD0B1, 	 0, 	 0, 0xD5E5, /* 0x90 */
		 0, 0xCED3, 	 0, 	 0, 0xBDEF, 0xB3E2, 	 0, 0xB8AB, /* 0xA0 */
		 0, 	 0, 	 0, 0xEDBD, 0xD5B6, 	 0, 	 0, 0xCBB9, /* 0xA0 */
	0xD0C2, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xB6CF, /* 0xB0 */
		 0, 0xB7BD, 	 0, 	 0, 0xECB6, 0xCAA9, 	 0, 	 0, /* 0xB0 */
		 0, 0xC5D4, 	 0, 0xECB9, 0xECB8, 0xC2C3, 0xECB7, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 0xD0FD, 0xECBA, 	 0, 0xECBB, 0xD7E5, /* 0xC0 */
		 0, 	 0, 0xECBC, 	 0, 	 0, 	 0, 0xECBD, 0xC6EC, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 0xBCC8, 	 0, 	 0, 0xC8D5, 0xB5A9, 	 0, /* 0xE0 */
	0xD6BC, 0xD4E7, 	 0, 	 0, 0xD1AE, 0xD0F1, 0xEAB8, 0xEAB9, /* 0xE0 */
	0xEABA, 0xBAB5, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 0xCDFA											/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_66[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xEAC0, 	 0, 0xB0BA, 0xEABE, 	 0, 	 0, 0xC0A5, 	 0, /* 0x00 */
		 0, 	 0, 0xEABB, 	 0, 0xB2FD, 	 0, 0xC3F7, 0xBBE8, /* 0x00 */
		 0, 	 0, 	 0, 0xD2D7, 0xCEF4, 0xEABF, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEAC3, 	 0, 0xD0C7, /* 0x10 */
	0xD3B3, 	 0, 	 0, 	 0, 	 0, 0xB4BA, 	 0, 0xC3C1, /* 0x20 */
	0xD7F2, 	 0, 	 0, 	 0, 	 0, 0xD5D1, 	 0, 0xCAC7, /* 0x20 */
		 0, 0xEAC5, 	 0, 	 0, 0xEAC4, 0xEAC7, 0xEAC6, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xEACB, 0xCAB1, 0xBBCE, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 0xBDFA, 	 0, 	 0, 0xC9CE, 	 0, 	 0, 0xEACC, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEACF, /* 0x50 */
		 0, 	 0, 0xCDED, 	 0, 	 0, 0xD6E7, 	 0, 0xEAC9, /* 0x50 */
		 0, 0xEACE, 	 0, 	 0, 0xCEEE, 	 0, 0xBBDE, 	 0, /* 0x60 */
	0xB3BF, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC6D5, 0xBEB0, /* 0x60 */
	0xCEFA, 	 0, 	 0, 	 0, 0xC7E7, 	 0, 0xBEA7, 0xEAD0, /* 0x70 */
		 0, 	 0, 0xD6C7, 	 0, 	 0, 	 0, 0xC1C0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 0xEAD1, 	 0, 	 0, 0xCFBE, /* 0x80 */
	0xD4CE, 0xEACD, 	 0, 	 0, 0xEAD2, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 0xCAEE, 	 0, 	 0, 	 0, 	 0, 0xC5AF, 0xB0B5, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEAD4, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 0xB3A9, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xF4DF, 	 0, 	 0, 0xD4DD, 	 0, 	 0, 0xC4BA, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 0xB1A9, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xE5DF, 	 0, 	 0, 	 0, 	 0, 0xEAD5, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 0xEACA, 	 0, 0xF8CF, 0xEABC, /* 0xC0 */
		 0, 0xCFFE, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEAD3, 	 0, /* 0xD0 */
		 0, 0xCAEF, 	 0, 0xEAD6, 0xEAD7, 0xC6D8, 	 0, 	 0, /* 0xD0 */
	0xBFF5, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEAD8, 	 0, /* 0xE0 */
		 0, 0xEAD9, 	 0, 	 0, 0xC9B9, 	 0, 	 0, 	 0, /* 0xE0 */
	0xD4BB, 	 0, 0xC7FA, 0xD2B7, 0xB8FC, 	 0, 	 0, 0xEAC2, /* 0xF0 */
	0xCAE9, 0xB2DC, 	 0, 	 0, 0xC2FC, 	 0, 0xD4F8, 0xCCE6	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_67[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xD7EE, 	 0, 	 0, 0xBBE1, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
	0xD4C2, 0xD3D0, 0xEBC3, 0xC5F3, 	 0, 0xB7FE, 	 0, 	 0, /* 0x00 */
	0xEBD4, 	 0, 	 0, 	 0, 0xCBB7, 0xEBDE, 	 0, 0xC0CA, /* 0x10 */
		 0, 	 0, 	 0, 0xCDFB, 	 0, 0xB3AF, 	 0, 0xC6DA, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEBFC, 0xEBCA, /* 0x20 */
	0xC4BE, 	 0, 0xCEB4, 0xC4A9, 0xB1BE, 0xD4FD, 	 0, 0xF8E8, /* 0x20 */
		 0, 0xD6EC, 	 0, 	 0, 0xF8E0, 0xB6E4, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xD0E0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xB8CB, 	 0, /* 0x40 */
	0xE8BE, 0xC9BC, 	 0, 	 0, 0xE8BB, 	 0, 0xC0EE, 0xD0D3, /* 0x40 */
	0xB2C4, 0xB4E5, 	 0, 0xE8BC, 	 0, 	 0, 0xD5C8, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 0xB6C5, 	 0, 0xE8BD, 0xCAF8, /* 0x50 */
	0xB8DC, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 0xE8C2, 	 0, 	 0, 0xBABC, 	 0, 0xB1AD, /* 0x60 */
	0xBDDC, 0xB6AB, 0xEABD, 0xE8C3, 	 0, 0xE8C6, 	 0, 0xE8CB, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 0xE8CC, 	 0, 0xF8E9, 0xB0E5, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE8C1, /* 0x80 */
		 0, 0xCDF7, 	 0, 0xE8CA, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
	0xCEF6, 	 0, 	 0, 	 0, 	 0, 0xD5ED, 	 0, 0xC1D6, /* 0x90 */
	0xE8C4, 	 0, 0xC3B6, 	 0, 0xB9FB, 0xD6A6, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xBFDD, /* 0xA0 */
	0xE8D2, 	 0, 	 0, 0xE8D7, 	 0, 0xE8D5, 0xBCDC, 0xBCCF, /* 0xB0 */
	0xE8DB, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xE8DE, 	 0, 0xE8DA, 0xB1FA, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xB0D8, /* 0xC0 */
	0xC4B3, 0xB8CC, 0xC6E2, 0xC8BE, 0xC8E1, 	 0, 	 0, 	 0, /* 0xD0 */
	0xE8CF, 0xE8D4, 0xE8D6, 	 0, 	 0, 0xE8D8, 0xD7F5, 	 0, /* 0xD0 */
		 0, 	 0, 0xE8DC, 	 0, 	 0, 0xB2E9, 	 0, 	 0, /* 0xE0 */
		 0, 0xE8D1, 	 0, 	 0, 0xBCED, 	 0, 	 0, 0xBFC2, /* 0xE0 */
	0xE8CD, 0xD6F9, 	 0, 0xC1F8, 0xB2F1, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCAC1	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_68[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xE8D9, 	 0, 	 0, 	 0, 	 0, 0xD5A4, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 0xCBA8, 	 0, 	 0, 	 0, 0xC0F5, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE8E9, 	 0, 	 0, /* 0x10 */
		 0, 0xD0A3, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 0xE8F2, 0xD6EA, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xE8E0, 0xE8E1, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
	0xBACB, 0xB8F9, 	 0, 	 0, 0xB8F1, 0xD4D4, 	 0, 	 0, /* 0x30 */
	0xE8EE, 0xE8EC, 0xB9F0, 0xCCD2, 0xE8E6, 0xCEA6, 0xBFF2, 	 0, /* 0x40 */
	0xB0B8, 0xE8F1, 0xE8F0, 	 0, 0xD7C0, 	 0, 0xE8E4, 	 0, /* 0x40 */
	0xCDA9, 0xC9A3, 	 0, 0xBBB8, 0xBDDB, 0xE8EA, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xE8F8, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 0xE8F5, 	 0, 0xCDB0, 0xE8F6, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 0xC1BA, 	 0, 0xE8E8, 	 0, 0xC3B7, 0xB0F0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE8F4, /* 0x80 */
		 0, 	 0, 	 0, 0xE8F7, 	 0, 	 0, 	 0, 0xB9A3, /* 0x90 */
	0xE8C5, 	 0, 	 0, 	 0, 	 0, 0xCCF5, 	 0, 0xE8C9, /* 0x90 */
		 0, 	 0, 0xC9D2, 	 0, 	 0, 	 0, 	 0, 0xCEE0, /* 0xA0 */
	0xC0E6, 	 0, 	 0, 	 0, 	 0, 0xCBF3, 	 0, 0xCCDD, /* 0xA0 */
	0xD0B5, 	 0, 	 0, 0xCAE1, 	 0, 0xE8F3, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 0xC6FA, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xC3DE, 	 0, 0xC6E5, 	 0, 0xB9F7, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xB0F4, 	 0, 	 0, 0xD7D8, 0xE8C7, 0xD4E6, /* 0xD0 */
	0xBCAC, 	 0, 0xC5EF, 	 0, 	 0, 	 0, 	 0, 0xB6B0, /* 0xD0 */
	0xCCC4, 	 0, 	 0, 0xE9A6, 	 0, 	 0, 	 0, 0xD5BB, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC9AD, 	 0, /* 0xE0 */
	0xE9A2, 0xC0E2, 0xC6DC, 	 0, 	 0, 0xBFC3, 	 0, 	 0, /* 0xF0 */
		 0, 0xE8FE, 0xB9D7, 	 0, 0xE8FB							/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_69[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xE9A4, 	 0, 	 0, 	 0, 0xD2CE, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 0xE9A3, 	 0, 0xD6B2, 0xD7B5, 0xE8E2, /* 0x00 */
	0xE9A7, 	 0, 0xBDB7, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
	0xD2AC, 	 0, 	 0, 	 0, 0xE9B2, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xE9A9, 	 0, 	 0, 	 0, 0xB4AA, 	 0, 0xB4BB, /* 0x30 */
		 0, 	 0, 0xE9AB, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 0xD1EE, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 0xB7E3, 0xD0A8, 	 0, 	 0, 0xE9A5, /* 0x50 */
		 0, 	 0, 0xB3FE, 	 0, 	 0, 0xE9AC, 0xC0E3, 	 0, /* 0x50 */
	0xE9AA, 	 0, 	 0, 0xE9B9, 	 0, 	 0, 0xE9B8, 	 0, /* 0x60 */
	0xE8E5, 	 0, 	 0, 0xE9AE, 	 0, 0xD2B5, 0xE8FA, 	 0, /* 0x60 */
		 0, 0xE9A8, 	 0, 	 0, 	 0, 0xBCAB, 	 0, 0xBFAC, /* 0x70 */
	0xE9B1, 0xE9BA, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
	0xE9AF, 	 0, 0xB8C5, 	 0, 	 0, 	 0, 0xD3DC, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE9C7, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 0xC0C6, 0xE9C5, 	 0, 	 0, /* 0x90 */
	0xE9B0, 	 0, 	 0, 0xE9BB, 0xB0F1, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE9BC, /* 0xA0 */
	0xD5A5, 	 0, 0xE8BF, 0xE9BE, 	 0, 0xE9BF, 0xC8D9, 	 0, /* 0xA0 */
		 0, 0xE9C1, 	 0, 	 0, 0xC1F1, 	 0, 	 0, 0xC8B6, /* 0xB0 */
		 0, 	 0, 	 0, 0xE9BD, 	 0, 	 0, 	 0, 0xE8E7, /* 0xB0 */
		 0, 0xE9C2, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xE9C3, 0xB9B9, 0xE9B3, 0xC7B9, 0xE9B6, 	 0, /* 0xC0 */
	0xBBB1, 	 0, 	 0, 	 0, 0xE9C0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE8FD, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE9CA, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 0xE9CE, 0xBDB0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xB2DB, 	 0, 0xE9C8	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_6A[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xD7AE, 0xC0D6, 	 0, 	 0, 0xE8C8, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 0xB7AE, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 0xC2A5, 	 0, 	 0, 	 0, 0xE9CB, /* 0x10 */
	0xE9CC, 0xB1EA, 	 0, 	 0, 	 0, 	 0, 0xCAE0, 0xD5C1, /* 0x10 */
		 0, 0xC4A3, 	 0, 0xD1F9, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
	0xE9D8, 	 0, 0xBAE1, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE9D4, 	 0, 	 0, /* 0x30 */
	0xC6D3, 0xCAF7, 0xE8EB, 	 0, 	 0, 0xE9D7, 0xE9D0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 0xE9CF, 	 0, 	 0, 0xC7C1, /* 0x40 */
	0xE8E3, 	 0, 	 0, 0xC7C5, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
	0xE9D2, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
	0xE9D9, 0xB3C8, 	 0, 0xE9D3, 	 0, 	 0, 	 0, 0xBBFA, /* 0x50 */
		 0, 0xCFF0, 0xCDD6, 	 0, 	 0, 0xE9CD, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 0xB3F7, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
	0xCCB4, 	 0, 	 0, 	 0, 0xCFAD, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 0xE8DF, 	 0, 	 0, 	 0, 	 0, 0xE9D5, 	 0, /* 0x80 */
	0xE9DC, 0xE9DB, 	 0, 	 0, 0xB5B5, 	 0, 	 0, 0xE9DE, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 0xE8ED, 	 0, 	 0, 	 0, /* 0x90 */
	0xE9D1, 	 0, 0xBCEC, 0xE9C9, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 0xE9DD, 	 0, 0xE9DF, 0xC3CA, 	 0, 	 0, 0xF8ED, /* 0xA0 */
		 0, 	 0, 	 0, 0xE9C4, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xC4FB, 	 0, 	 0, 0xBCF7, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 0xB9F1, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 0xE9D6, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 0xE9B5, 0xE8CE, 	 0, 0xE8FC, 0xE9DA, 0xE8DD, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE9C6, /* 0xE0 */
	0xE8D3, 	 0, 0xE8C0, 	 0, 0xE9B4, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xE8D0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
	0xE9B7, 	 0, 	 0, 0xD3A3									/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_6B[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
									0xC0B8, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 0xC8A8, 	 0, 	 0, 	 0, 	 0, 0xE9A1, /* 0x00 */
		 0, 	 0, 0xE8EF, 	 0, 	 0, 	 0, 0xE9AD, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE8F9, 	 0, /* 0x10 */
	0xC7B7, 0xB4CE, 	 0, 0xD0C0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xD3FB, 	 0, 	 0, 	 0, 	 0, 0xECA4, /* 0x30 */
		 0, 0xECA5, 0xC6DB, 	 0, 	 0, 0xC7D5, 0xBFEE, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 0xECA6, 	 0, 	 0, 0xECA7, 0xD0AA, /* 0x40 */
		 0, 0xC7B8, 	 0, 	 0, 0xB8E8, 	 0, 	 0, 	 0, /* 0x40 */
	0xC5B7, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 0xECA8, 	 0, 	 0, 	 0, 	 0, 	 0, 0xECA3, /* 0x50 */
		 0, 0xBBB6, 0xD6B9, 0xD5FD, 0xB4CB, 0xB2BD, 0xCEE4, 0xC6E7, /* 0x60 */
		 0, 	 0, 0xCDE1, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 0xCBEA, 	 0, 	 0, 	 0, 	 0, 0xC0FA, /* 0x70 */
	0xB9E9, 0xB4F5, 	 0, 0xCBC0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 0xE9E2, 0xE9E3, 0xD1EA, 0xE9E5, 	 0, 0xB4F9, 	 0, /* 0x80 */
		 0, 0xD1B3, 0xCAE2, 	 0, 	 0, 0xE9E8, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD6B3, 	 0, /* 0x90 */
	0xB2D0, 	 0, 	 0, 0xE9EA, 	 0, 	 0, 0xE9E6, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 0xE9E4, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 0xE9EC, 0xE9E9, 	 0, 	 0, 0xE9E7, 0xE9EB, /* 0xA0 */
		 0, 	 0, 0xBCDF, 0xECAF, 	 0, 0xB6CE, 	 0, 0xD2F3, /* 0xB0 */
		 0, 	 0, 0xC9B1, 0xBFC7, 	 0, 	 0, 	 0, 0xB5EE, /* 0xB0 */
		 0, 0xBBD9, 	 0, 	 0, 	 0, 0xD2E3, 0xC5B9, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 0xCEE3, 	 0, 0xC4B8, 	 0, 0xC3BF, /* 0xC0 */
		 0, 	 0, 0xB6BE, 0xD8B9, 0xB1C8, 	 0, 0xB1D1, 0xC5FE, /* 0xD0 */
		 0, 	 0, 	 0, 0xC3AB, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 0xEBA4, 0xBAC1, 	 0, 	 0, 	 0, 0xCCBA, /* 0xE0 */
		 0, 	 0, 	 0, 0xEBA5, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 0xEBA8, 	 0, 	 0, 	 0, 0xEBA6, 	 0, 0xEBA7	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_6C[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
											0xEBA9, 0xEBAB, 	 0, /* 0x00 */
	0xD5B1, 	 0, 	 0, 	 0, 0xEBAA, 0xEBAC, 	 0, 0xCACF, /* 0x00 */
	0xD8B5, 0xC3F1, 	 0, 0xC3A5, 	 0, 0xEBAD, 0xC4CA, 	 0, /* 0x10 */
	0xEBAE, 0xEBAF, 0xEBB0, 0xB7D5, 	 0, 	 0, 	 0, 0xB7FA, /* 0x10 */
		 0, 0xEBB1, 	 0, 0xC6F8, 0xEBB3, 	 0, 0xBAA4, 0xD1F5, /* 0x20 */
	0xB0B1, 	 0, 0xEBB4, 0xC7E2, 0xEBB2, 	 0, 0xB5AA, 0xC2C8, /* 0x20 */
	0xC7E8, 	 0, 0xEBB5, 	 0, 0xCBAE, 0xE3DF, 	 0, 	 0, /* 0x30 */
	0xD3C0, 	 0, 	 0, 	 0, 	 0, 0xD9DB, 	 0, 	 0, /* 0x30 */
	0xCDA1, 0xD6AD, 0xC7F3, 	 0, 	 0, 	 0, 0xD9E0, 	 0, /* 0x40 */
		 0, 	 0, 0xE3E2, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
	0xCFAB, 	 0, 	 0, 	 0, 0xE3E0, 0xC9C7, 	 0, 0xBAB9, /* 0x50 */
		 0, 	 0, 	 0, 0xD1B4, 0xE3E1, 0xC8EA, 0xB9AF, 0xBDAD, /* 0x50 */
	0xB3D8, 0xCEDB, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
	0xE3E8, 0xE3E9, 0xCDF4, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
	0xCCAD, 	 0, 0xBCB3, 	 0, 0xE3EA, 	 0, 0xE3EB, 	 0, /* 0x70 */
		 0, 0xD0DA, 	 0, 	 0, 	 0, 0xC6FB, 0xB7DA, 	 0, /* 0x70 */
		 0, 0xC7DF, 0xD2CA, 0xCED6, 	 0, 0xE3E4, 0xE3EC, 	 0, /* 0x80 */
	0xC9F2, 0xB3C1, 	 0, 	 0, 0xE3E7, 	 0, 	 0, 0xC6E3, /* 0x80 */
	0xE3E5, 	 0, 	 0, 0xEDB3, 0xE3E6, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 0xC9B3, 	 0, 0xC5E6, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 0xC3BB, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xC4AD, 	 0, 0xE3F0, 0xBEDA, 	 0, /* 0xA0 */
		 0, 0xE3FB, 0xE3F5, 0xBAD3, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xB7D0, 0xD3CD, 	 0, 0xD6CE, 0xD5D3, 0xB9C1, 0xD5B4, 0xD1D8, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 0xD0B9, 0xC7F6, 	 0, 	 0, /* 0xC0 */
		 0, 0xC8AA, 0xB2B4, 	 0, 0xC3DA, 	 0, 	 0, 	 0, /* 0xC0 */
	0xE3EE, 	 0, 	 0, 0xE3FC, 0xE3EF, 0xB7A8, 0xE3F7, 0xE3F4, /* 0xD0 */
		 0, 	 0, 	 0, 0xB7BA, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
	0xE3F6, 0xC5DD, 0xB2A8, 0xC6FC, 	 0, 0xC4E0, 	 0, 	 0, /* 0xE0 */
	0xD7A2, 	 0, 0xC0E1, 0xE3F9, 	 0, 	 0, 0xE3FA, 0xE3FD, /* 0xE0 */
	0xCCA9, 0xE3F3, 	 0, 0xD3BE, 	 0, 0xB1C3					/* 0xF0 */
																	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_6D[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
									0xE4A7, 	 0, 	 0, 0xE4A6, /* 0x00 */
		 0, 	 0, 	 0, 0xD1F3, 0xE4A3, 	 0, 0xE4A9, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCFB4, /* 0x10 */
		 0, 0xE4A8, 0xE4AE, 0xC2E5, 	 0, 	 0, 0xB6B4, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xBDF2, 	 0, 0xE4A2, /* 0x20 */
		 0, 	 0, 0xBAE9, 0xE4AA, 	 0, 	 0, 0xE4AC, 	 0, /* 0x20 */
		 0, 0xB6FD, 0xD6DE, 0xE4B2, 	 0, 0xE4AD, 	 0, 	 0, /* 0x30 */
		 0, 0xE4A1, 	 0, 0xBBEE, 	 0, 0xC7A2, 0xC5C9, 	 0, /* 0x30 */
		 0, 0xC1F7, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 0xD5E3, 0xBFA3, 	 0, 0xE4BA, 	 0, 0xE4B7, 	 0, /* 0x50 */
	0xE4BB, 	 0, 	 0, 0xE4BD, 	 0, 	 0, 0xC6D6, 	 0, /* 0x60 */
		 0, 0xBAC6, 0xC0CB, 	 0, 	 0, 	 0, 0xB8A1, 0xE4B4, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 0xD4A1, 	 0, 	 0, 0xBAA3, /* 0x70 */
	0xBDFE, 0xE4A4, 	 0, 	 0, 0xE4BC, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 0xF8EF, 	 0, 	 0, 0xC4F9, 	 0, 0xE3FE, /* 0x80 */
	0xCFFB, 0xC9E6, 	 0, 	 0, 0xD3BF, 	 0, 0xCFD1, 	 0, /* 0x80 */
		 0, 0xE4B3, 	 0, 0xE4B8, 0xE4B9, 0xCCE9, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 0xB8A2, 0xE4CA, 	 0, 	 0, 0xE4CC, 0xD1C4, /* 0xA0 */
		 0, 	 0, 0xD2BA, 	 0, 	 0, 0xBAAD, 	 0, 	 0, /* 0xB0 */
	0xBAD4, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE4C3, /* 0xB0 */
	0xF8AD, 	 0, 	 0, 	 0, 0xD7CD, 0xE4C0, 0xCFFD, 0xE4BF, /* 0xC0 */
		 0, 	 0, 	 0, 0xC1DC, 0xCCCA, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xCAE7, 	 0, 	 0, 	 0, 	 0, 0xC4D7, 	 0, /* 0xD0 */
	0xCCD4, 0xE4C8, 	 0, 	 0, 	 0, 0xE4C7, 0xE4C1, 	 0, /* 0xD0 */
	0xE4C4, 0xB5AD, 	 0, 	 0, 0xD3D9, 	 0, 0xE4C6, 	 0, /* 0xE0 */
		 0, 	 0, 0xC2D9, 0xD2F9, 0xB4E3, 	 0, 0xBBB4, 	 0, /* 0xE0 */
		 0, 0xC9EE, 	 0, 0xB4BE, 	 0, 0xD4A8, 0xE4B5, 0xBBEC, /* 0xF0 */
		 0, 0xD1CD, 0xC7B3, 0xCCED, 0xEDB5							/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_6E[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
											0xC7E5, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 0xE4CB, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 0xBBC1, 0xE4BE, 	 0, 	 0, 0xD3E5, 	 0, 	 0, /* 0x10 */
	0xC7FE, 0xB6C9, 	 0, 0xD4FC, 0xB2B3, 0xE4D7, 0xCED0, 	 0, /* 0x20 */
		 0, 0xCEC2, 	 0, 0xE4CD, 0xB2E2, 0xCEBC, 	 0, 0xB8DB, /* 0x20 */
		 0, 	 0, 0xE4D6, 	 0, 0xBFCA, 	 0, 	 0, 	 0, /* 0x30 */
	0xD3CE, 	 0, 0xC3EC, 	 0, 	 0, 	 0, 0xBBEB, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 0xC5C8, 0xE4D8, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xCDC4, 0xE4CF, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 0xE4D4, 0xE4D5, 	 0, 0xBAFE, 	 0, /* 0x50 */
	0xCFE6, 	 0, 	 0, 0xD5BF, 	 0, 	 0, 0xE4A5, 0xE4D2, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xE4D0, 	 0, 	 0, 0xE4CE, 0xCCC0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE4D3, 	 0, /* 0x80 */
		 0, 0xB8C8, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE4E7, /* 0x80 */
	0xD4B4, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD7BC, 	 0, /* 0x90 */
	0xE4DB, 	 0, 	 0, 	 0, 0xC1EF, 0xB9B5, 	 0, 0xE4E9, /* 0x90 */
		 0, 	 0, 0xD2E7, 	 0, 	 0, 0xE4DF, 	 0, 0xE4E0, /* 0xA0 */
		 0, 	 0, 0xCFAA, 	 0, 	 0, 	 0, 	 0, 0xCBDD, /* 0xA0 */
		 0, 0xE4DA, 0xE4D1, 	 0, 0xE4E5, 	 0, 0xC8DC, 0xE4E3, /* 0xB0 */
		 0, 	 0, 0xC4E7, 0xE4E2, 	 0, 0xE4E1, 	 0, 	 0, /* 0xB0 */
		 0, 0xB3FC, 0xE4E8, 	 0, 0xB2D7, 0xC3F0, 	 0, 0xB5E1, /* 0xC0 */
		 0, 	 0, 	 0, 0xD7CC, 0xB5D3, 	 0, 0xDCFE, 0xE4E6, /* 0xC0 */
		 0, 0xBBAC, 	 0, 0xD7D2, 0xCCCF, 0xEBF8, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 0xB9F6, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 0xBBA6, 	 0, 	 0, 0xD6CD, /* 0xE0 */
		 0, 	 0, 0xC9F8, 	 0, 0xB5CE, 	 0, 	 0, 0xC2B1, /* 0xF0 */
	0xE4B0, 0xE4EF, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC2FA	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_6F[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xD3E6, 0xC6AF, 	 0, 	 0, 	 0, 0xC6E1, 	 0, /* 0x00 */
		 0, 0xE4F5, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC2A9, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 0xD1DD, 0xE4EE, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 0xC5BD, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
	0xC4AE, 	 0, 0xBABA, 0xC1B0, 0xE4ED, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 0xE4F6, 0xE4F4, 0xC2FE, 0xD7D5, 0xE4DD, 	 0, 0xE4F0, /* 0x20 */
		 0, 0xCAFE, 0xD5C7, 0xD5C4, 	 0, 	 0, 0xE4F1, 	 0, /* 0x30 */
	0xBDA5, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD1FA, 0xBDAC, /* 0x30 */
		 0, 0xF2A3, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 0xC6C3, 	 0, 	 0, 0xBDE0, 	 0, 	 0, 	 0, /* 0x50 */
	0xC5CB, 0xE3ED, 	 0, 0xC7B1, 	 0, 	 0, 0xC2BA, 	 0, /* 0x50 */
		 0, 	 0, 0xE4EA, 	 0, 0xC8F3, 	 0, 0xC1CA, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xCCB6, 0xB3B1, 0xE4B1, /* 0x60 */
	0xC0A3, 	 0, 0xE4FB, 	 0, 0xE4F3, 	 0, 	 0, 0xE4E4, /* 0x70 */
	0xE4FA, 	 0, 0xE4FD, 	 0, 0xE4FC, 	 0, 	 0, 0xE4B6, /* 0x70 */
	0xC9AC, 	 0, 	 0, 	 0, 0xB3CE, 	 0, 0xBDBD, 0xC0D4, /* 0x80 */
	0xB3BA, 0xE4F7, 	 0, 	 0, 0xE4F9, 0xE4F8, 0xC5EC, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xBDA7, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
	0xE4C5, 0xD4E8, 	 0, 	 0, 0xD4F3, 	 0, 	 0, 0xE5A2, /* 0xA0 */
		 0, 0xEDB4, 	 0, 	 0, 	 0, 	 0, 0xE4AB, 	 0, /* 0xA0 */
		 0, 0xB5ED, 	 0, 0xB0C4, 	 0, 	 0, 0xE5A4, 	 0, /* 0xB0 */
		 0, 0xE5A3, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xBCA4, 0xD7C7, 0xE5A5, 0xC5A8, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xE5A1, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xCAAA, 	 0, 	 0, /* 0xD0 */
	0xC5A2, 	 0, 	 0, 0xF8D5, 	 0, 	 0, 0xE5A8, 0xBCC3, /* 0xD0 */
	0xE5A9, 0xE5A6, 	 0, 	 0, 0xCCCE, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xC0C4, 	 0, 	 0, 0xE5A7, 0xE5AA, /* 0xE0 */
	0xCEAB, 0xB1F5, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 0xBDA6, 	 0, 0xE3F8, 	 0, 0xC2CB			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_70[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
											0xE4DE, 0xE4C2, 	 0, /* 0x00 */
		 0, 0xD0BA, 	 0, 0xE4C9, 	 0, 	 0, 	 0, 0xE4AF, /* 0x00 */
		 0, 0xC6D9, 	 0, 	 0, 	 0, 0xB1F4, 	 0, 	 0, /* 0x10 */
	0xE3F2, 	 0, 0xE5AB, 0xE5AD, 	 0, 0xC1A4, 	 0, 0xE4EC, /* 0x10 */
	0xE4EB, 	 0, 	 0, 0xE5AC, 	 0, 	 0, 	 0, 0xE3F1, /* 0x20 */
	0xE4FE, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
	0xF8D8, 	 0, 0xE4F2, 	 0, 	 0, 0xE5AF, 	 0, 	 0, /* 0x30 */
		 0, 0xE5AE, 	 0, 	 0, 	 0, 	 0, 0xC0BD, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 0xE3E3, 0xE4DC, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xB9E0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 0xC8F7, 	 0, 	 0, 	 0, 0xC0EC, 	 0, 	 0, /* 0x50 */
	0xCCB2, 	 0, 	 0, 	 0, 	 0, 0xE5B0, 0xE5B1, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 0xCDE5, 0xC2D0, 	 0, 	 0, 0xE4D9, /* 0x60 */
		 0, 	 0, 	 0, 0xBBF0, 0xECE1, 	 0, 	 0, 	 0, /* 0x60 */
	0xBBD2, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
	0xBEC4, 	 0, 	 0, 	 0, 0xD7C6, 	 0, 0xD4D6, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEAC1, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xB4B6, 	 0, 	 0, 	 0, 0xD1D7, 	 0, /* 0x80 */
		 0, 	 0, 0xB3B4, 	 0, 0xC8B2, 0xBFBB, 0xECC0, 	 0, /* 0x90 */
		 0, 0xD6CB, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xECC5, 0xBEE6, 0xCCBF, 0xC5DA, 0xBEBC, /* 0xA0 */
		 0, 0xECC6, 	 0, 0xB1FE, 	 0, 	 0, 	 0, 0xECC4, /* 0xB0 */
	0xD5A8, 	 0, 	 0, 0xECC2, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xECC3, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
	0xC1D2, 	 0, 0xECC8, 	 0, 	 0, 	 0, 	 0, 0xCEDA, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
	0xBAE6, 0xC0D3, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD1CC, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 0xBFBE, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCFA9, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 0xCCFE, 	 0, 	 0, 0xCDE9, /* 0xF0 */
		 0, 0xC5EB, 	 0, 	 0, 	 0, 0xB7E9					/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_71[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
																	/* 0x00 */
			0xD1C9, 0xBAB8, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
	0xECC9, 	 0, 	 0, 0xECCA, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 0xB1BA, 0xB7D9, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 0xCEDE, 	 0, 	 0, 	 0, 	 0, 0xBDB9, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xECCC, /* 0x20 */
	0xD1E6, 0xECCD, 	 0, 	 0, 	 0, 	 0, 0xC8BB, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xECD1, 	 0, 	 0, /* 0x40 */
		 0, 0xC1B6, 0xECD3, 	 0, 0xBBCD, 	 0, 0xBCE5, 	 0, /* 0x40 */
		 0, 	 0, 0xECBF, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 0xECCF, 	 0, 0xC9B7, 	 0, /* 0x50 */
		 0, 	 0, 0xDCE4, 	 0, 0xC3BA, 0xBBC0, 0xECE3, 0xD5D5, /* 0x60 */
	0xECD0, 0xB7B3, 	 0, 	 0, 0xECBE, 	 0, 0xD6F3, 	 0, /* 0x60 */
		 0, 	 0, 0xECD2, 0xECCE, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
	0xECD4, 	 0, 0xECD5, 	 0, 	 0, 0xC9BF, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 0xCFA8, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xD0DC, 	 0, 	 0, 	 0, 	 0, 0xD1AC, /* 0x80 */
		 0, 	 0, 0xD3AB, 	 0, 0xC8DB, 	 0, 	 0, 0xECC1, /* 0x90 */
	0xECD6, 0xCEF5, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCAEC, /* 0x90 */
	0xECDA, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xECD9, 	 0, 	 0, 	 0, 0xB0BE, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 0xC8C8, 	 0, 0xECD7, 	 0, 0xECD8, 	 0, 	 0, /* 0xB0 */
		 0, 0xECE4, 	 0, 	 0, 	 0, 	 0, 0xB3E3, 	 0, /* 0xB0 */
		 0, 0xECC7, 	 0, 0xC8BC, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
	0xB5C6, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC1C7, 	 0, /* 0xC0 */
		 0, 	 0, 0xC9D5, 	 0, 0xECDC, 0xD1E0, 	 0, 	 0, /* 0xD0 */
		 0, 0xCCCC, 	 0, 	 0, 0xECCB, 	 0, 	 0, 0xD3AA, /* 0xD0 */
	0xECDB, 	 0, 	 0, 	 0, 	 0, 0xD4EF, 0xB2D3, 0xECDD, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xD6F2, 0xDBC6, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 0xBBE2, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 0xECDE, 	 0, 	 0, 0xBDFD, 	 0, 0xECE2			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_72[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
													0xB1AC, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xCBB8, 	 0, 	 0, /* 0x00 */
	0xC2AF, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 0xC0C3, 	 0, 0xECDF, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
	0xECE0, 	 0, 0xD7A6, 	 0, 0xC5C0, 0xD5F9, 	 0, 	 0, /* 0x20 */
	0xEBBC, 	 0, 0xCEAA, 	 0, 	 0, 0xBEF4, 0xB8B8, 	 0, /* 0x30 */
	0xB0D6, 0xB5F9, 0xD2AF, 0xD8B3, 	 0, 0xCBAC, 0xB6FB, 0xE3DD, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC6AC, /* 0x40 */
	0xB0E6, 	 0, 	 0, 	 0, 0xC5C6, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 0xEBBA, 	 0, 	 0, 	 0, 0xEBBB, 	 0, /* 0x50 */
	0xEBB9, 0xD1C0, 	 0, 0xC5A3, 	 0, 0xEAF2, 	 0, 0xC4B2, /* 0x50 */
		 0, 0xC4B5, 0xC0CE, 	 0, 	 0, 	 0, 0xEAF3, 0xC4C1, /* 0x60 */
		 0, 0xCEEF, 	 0, 	 0, 	 0, 	 0, 0xEAF0, 0xEAF4, /* 0x60 */
		 0, 	 0, 0xC9FC, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 0xCCD8, 	 0, 	 0, 	 0, 0xC7A3, 0xEAF5, 0xEAF6, /* 0x70 */
	0xCFAC, 0xC0E7, 	 0, 	 0, 0xEAF7, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 0xEAF8, 	 0, 0xEAF9, 	 0, 0xEAFA, /* 0x80 */
		 0, 	 0, 0xEAFB, 	 0, 	 0, 	 0, 0xDCFD, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEAF1, /* 0x90 */
		 0, 	 0, 0xB6BF, 	 0, 	 0, 	 0, 	 0, 0xCEFE, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 0xC8AE, 0xE1EB, 	 0, 0xB7B8, /* 0xA0 */
	0xE1EC, 	 0, 	 0, 	 0, 0xE1ED, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xD7B4, 0xE1F1, 0xBFF1, 0xE1F0, 0xB5D2, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE1F3, 0xE1F2, 	 0, /* 0xC0 */
	0xBAFC, 	 0, 0xE1F4, 	 0, 	 0, 	 0, 	 0, 0xB9B7, /* 0xD0 */
		 0, 0xBED1, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
	0xBADD, 0xBDC6, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xE1F5, 0xE1F7, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xE1FC, 0xE1F9, 	 0, 	 0, 0xE1FA, /* 0xF0 */
	0xC0EA, 0xCFC1, 0xE1FE, 0xE2A1, 0xC0C7, 0xB1B7					/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_73[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xE1FB, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 0xE2A5, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 0xE2A3, 	 0, 	 0, 0xB2FE, 0xE2A2, /* 0x10 */
		 0, 0xD5F8, 	 0, 0xC3CD, 0xB2C2, 0xE2A7, 0xE2A6, 	 0, /* 0x10 */
		 0, 	 0, 0xE2A9, 	 0, 	 0, 0xE2AB, 	 0, 	 0, /* 0x20 */
		 0, 0xD0C9, 0xD6ED, 0xC3A8, 0xE2AC, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 0xE2AE, 	 0, 	 0, 0xBAEF, 	 0, 0xD3CC, 0xE9E0, /* 0x30 */
	0xE2AD, 0xE2AA, 	 0, 0xE1F8, 	 0, 	 0, 0xBBAB, 0xD4B3, /* 0x30 */
		 0, 0xE1EF, 	 0, 	 0, 0xD3FC, 0xCAA8, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE2B0, 	 0, 	 0, /* 0x40 */
	0xE2AF, 	 0, 0xE9E1, 	 0, 	 0, 	 0, 	 0, 0xE2B1, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
	0xE2B2, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
	0xB6C0, 	 0, 0xE1F6, 0xE1FD, 0xE2B3, 	 0, 	 0, 0xE2B4, /* 0x60 */
	0xC4FC, 	 0, 0xBBF1, 	 0, 	 0, 0xC1D4, 	 0, 0xE1EE, /* 0x70 */
	0xCADE, 	 0, 0xCCA1, 0xCFD7, 0xE2A8, 	 0, 0xE2B5, 	 0, /* 0x70 */
	0xE2A4, 	 0, 	 0, 	 0, 0xD0FE, 	 0, 	 0, 0xC2CA, /* 0x80 */
		 0, 0xD3F1, 	 0, 0xCDF5, 	 0, 	 0, 0xE7E0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xBEC1, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE7E4, /* 0x90 */
		 0, 	 0, 0xE7E3, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 0xCDE6, 	 0, 0xC3B5, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 0xC1E1, 0xE7E9, 	 0, 	 0, 	 0, 0xE7E8, /* 0xB0 */
		 0, 	 0, 	 0, 0xB2A3, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xE7EA, 	 0, 0xE7E6, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
	0xE7EC, 0xE7EB, 0xC9BA, 	 0, 	 0, 0xD5E4, 	 0, 0xE7E5, /* 0xC0 */
	0xB7A9, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 0xE7EE, 	 0, 	 0, 	 0, 	 0, 0xE7F3, 	 0, /* 0xD0 */
	0xD6E9, 	 0, 	 0, 	 0, 	 0, 0xE7ED, 	 0, 0xE7F2, /* 0xE0 */
		 0, 0xE7F1, 	 0, 	 0, 	 0, 0xB0E0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCFD6			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_74[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
							0xC7F2, 	 0, 0xC0C5, 0xC0ED, 	 0, /* 0x00 */
		 0, 0xC1F0, 0xE7F0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 0xE8A2, 0xE8A1, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 0xD7C1, 	 0, 	 0, 0xE7FA, 0xE7F9, 	 0, /* 0x20 */
	0xE7FB, 	 0, 0xE7F7, 	 0, 0xE7FE, 	 0, 0xE7FD, 	 0, /* 0x20 */
	0xE7FC, 	 0, 	 0, 0xC1D5, 0xC7D9, 0xC5FD, 0xC5C3, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE7F5, /* 0x30 */
		 0, 0xE8A3, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 0xE7E2, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE8A6, 	 0, 0xE8A5, /* 0x50 */
		 0, 0xE8A7, 0xBAF7, 0xE7F8, 0xE8A4, 	 0, 0xC8F0, 0xC9AA, /* 0x50 */
		 0, 	 0, 	 0, 0xCBF6, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 0xD3A8, 0xC2EA, 	 0, 	 0, 0xE8A9, 	 0, 	 0, /* 0x60 */
	0xB9E5, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD1FE, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE8AA, 	 0, /* 0x70 */
	0xE8AD, 0xE8AE, 	 0, 0xC1A7, 	 0, 	 0, 	 0, 0xE8AF, /* 0x80 */
		 0, 0xE7F6, 	 0, 0xE8B0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
	0xE8B4, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 0xE8AB, 	 0, 0xE8B1, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xE7E1, 	 0, 	 0, 0xE8A8, 0xE8B5, /* 0xA0 */
	0xE8B2, 0xE8B3, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xBBB7, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 0xE8B7, 	 0, 	 0, 0xE7F4, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xC7ED, 	 0, 	 0, 	 0, 	 0, 0xE7E7, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 0xE8AC, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 0xE8B6, 	 0, 0xB9CF, 	 0, 0xF0AC, 	 0, /* 0xD0 */
	0xF0AD, 	 0, 0xC6B0, 0xB0EA, 0xC8BF, 	 0, 0xCDDF, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCECD, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 0xEAB2, 	 0, 0xC6BF, 0xB4C9, /* 0xF0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEAB3	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_75[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
									0xD5E7, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 0xEAB1, 0xDDF9, 	 0, 0xEAB4, /* 0x00 */
		 0, 0xEAB5, 	 0, 0xEAB6, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
	0xB8CA, 0xDFB0, 0xC9F5, 	 0, 0xCCF0, 	 0, 	 0, 0xC9FA, /* 0x10 */
		 0, 	 0, 	 0, 0xB2FA, 	 0, 0xC9FB, 	 0, 	 0, /* 0x20 */
	0xD3C3, 0xCBA6, 	 0, 0xB8A6, 0xF0AE, 0xB1C2, 	 0, 0xE5B8, /* 0x20 */
	0xCCEF, 0xD3C9, 0xBCD7, 0xC9EA, 	 0, 	 0, 	 0, 0xC4D0, /* 0x30 */
	0xB5E9, 	 0, 0xEEAE, 	 0, 	 0, 	 0, 0xE7DE, 	 0, /* 0x30 */
	0xEEAF, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
	0xEEB2, 	 0, 	 0, 0xEEB1, 0xBDE7, 	 0, 0xEEB0, 0xCEB7, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xC5CF, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 0xC1F4, 0xDBCE, 0xEEB3, 0xD0F3, 0xC4B6, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xB1CF, 	 0, 	 0, 0xC2D4, 0xC6E8, 	 0, /* 0x60 */
		 0, 	 0, 0xB7AC, 0xBBAD, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 0xEEB4, 	 0, 	 0, 	 0, 0xB5B1, 	 0, /* 0x70 */
	0xBBFB, 0xEEB5, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE7DC, /* 0x70 */
		 0, 	 0, 	 0, 0xEEB6, 	 0, 	 0, 0xBDAE, 0xB3EB, /* 0x80 */
		 0, 	 0, 0xB5FE, 0xF1E2, 	 0, 	 0, 	 0, 0xCAE8, /* 0x80 */
		 0, 0xD2C9, 0xF0DA, 	 0, 0xF0DB, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 0xB8ED, 0xBECE, 	 0, 	 0, 0xF0DE, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xF0E0, 0xB0CC, 0xBDEA, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xD2DF, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xF0E6, 0xF0E5, 0xC6A3, 0xF0E1, 0xF0E2, 0xB4C3, 	 0, 	 0, /* 0xB0 */
	0xF0E3, 0xD5EE, 	 0, 	 0, 0xCCDB, 0xBED2, 0xBCB2, 	 0, /* 0xB0 */
		 0, 	 0, 0xF0E8, 0xF0E7, 0xF0E4, 0xB2A1, 	 0, 0xF9A1, /* 0xC0 */
		 0, 	 0, 0xC8AC, 	 0, 	 0, 0xF0EA, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 0xD6CC, 0xBADB, 	 0, 	 0, /* 0xD0 */
	0xB6BB, 0xBEB7, 	 0, 0xCDB4, 	 0, 	 0, 0xC6A6, 	 0, /* 0xD0 */
		 0, 	 0, 0xC1A1, 0xF0EB, 0xF0EE, 	 0, 0xF0ED, 0xF0F0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xCCB5, 0xF0F2, 	 0, 	 0, 0xB3D5, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 0xB1D4, 	 0, 	 0, 0xF0F3, 	 0, 	 0, 0xF0F4	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_76[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xF0F6, 0xB4E1, 0xF0E9, 0xF0F1, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 0xF0FA, 0xB7E8, 0xF0F8, 0xD1F1, 	 0, 	 0, /* 0x00 */
	0xF0F5, 	 0, 	 0, 0xBBBE, 	 0, 0xF0FD, 	 0, 	 0, /* 0x10 */
		 0, 0xF0FE, 	 0, 0xF1A1, 	 0, 	 0, 0xF0F9, 0xCEC1, /* 0x10 */
	0xF1A4, 0xB4AF, 0xF1A3, 	 0, 0xC1F6, 0xF0FB, 0xCADD, 0xC5B1, /* 0x20 */
		 0, 0xB4F1, 	 0, 	 0, 	 0, 0xF1A6, 	 0, 	 0, /* 0x20 */
	0xF1A7, 	 0, 	 0, 0xF1AC, 0xD5CE, 0xF1A9, 	 0, 	 0, /* 0x30 */
	0xC8B3, 	 0, 	 0, 0xF0FC, 0xF1A2, 	 0, 	 0, 	 0, /* 0x30 */
	0xF1A5, 	 0, 0xC1C6, 0xF1AA, 	 0, 	 0, 0xF0EC, 0xF0EF, /* 0x40 */
		 0, 0xF0F7, 	 0, 	 0, 0xB0A9, 0xF1AD, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xF1AF, 	 0, 0xF1B1, 	 0, /* 0x50 */
	0xF0DD, 	 0, 	 0, 	 0, 0xF1B0, 	 0, 	 0, 0xB1F1, /* 0x50 */
		 0, 	 0, 0xD1F7, 	 0, 0xF0DC, 0xD6A2, 	 0, 0xF0DF, /* 0x60 */
		 0, 0xF1AE, 	 0, 	 0, 0xD1A2, 0xF1A8, 0xF1AB, 0xF1B3, /* 0x60 */
	0xD3B8, 0xCCB1, 0xF1B2, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
	0xB9EF, 	 0, 	 0, 0xB5C7, 0xB7A2, 0xB0D7, 0xB0D9, 	 0, /* 0x70 */
		 0, 	 0, 0xD4ED, 	 0, 0xB5C4, 	 0, 0xBDD4, 0xBBCA, /* 0x80 */
	0xF0A7, 	 0, 	 0, 0xB8DE, 	 0, 	 0, 0xF0A8, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 0xF0A9, 	 0, 	 0, 0xCDEE, 	 0, /* 0x90 */
		 0, 0xF0AA, 0xB0A8, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 0xF0AB, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC6A4, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 0xF1E5, 	 0, 	 0, 	 0, /* 0xB0 */
	0xF1E4, 	 0, 0xD6E5, 	 0, 	 0, 	 0, 	 0, 0xC3F3, /* 0xB0 */
		 0, 	 0, 0xD3DB, 	 0, 	 0, 0xD6D1, 0xC5E8, 	 0, /* 0xC0 */
	0xD3AF, 	 0, 0xD2E6, 	 0, 	 0, 0xEEC1, 0xB0BB, 	 0, /* 0xC0 */
		 0, 	 0, 0xBAD0, 	 0, 0xBFF8, 	 0, 	 0, 0xB5C1, /* 0xD0 */
		 0, 	 0, 	 0, 0xCAA2, 	 0, 	 0, 0xD5B5, 0xC3CB, /* 0xD0 */
		 0, 0xBEA1, 	 0, 0xBCE0, 0xC5CC, 0xEEC2, 	 0, 0xC2AC, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC4BF, 0xB6A2, /* 0xE0 */
		 0, 0xEDEC, 0xC3A4, 	 0, 0xD6B1, 	 0, 	 0, 	 0, /* 0xF0 */
	0xCFE0, 0xEDEF, 	 0, 	 0, 0xC5CE, 	 0, 0xB6DC			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_77[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xCAA1, 	 0, 	 0, 0xEDED, 	 0, 	 0, 0xEDF0, /* 0x00 */
	0xEDF1, 0xC3BC, 	 0, 0xBFB4, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 0xEDF4, 0xEDF2, 	 0, 	 0, 	 0, 	 0, 0xD5E6, /* 0x10 */
	0xC3DF, 	 0, 0xEDF3, 	 0, 	 0, 	 0, 0xEDF6, 	 0, /* 0x20 */
	0xD5A3, 0xD1A3, 	 0, 	 0, 	 0, 0xEDF5, 	 0, 0xC3D0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEDF7, 0xBFF4, 0xBEEC, /* 0x30 */
	0xEDF8, 	 0, 0xCCF7, 	 0, 0xD1DB, 	 0, 	 0, 	 0, /* 0x30 */
	0xD7C5, 	 0, 	 0, 0xEDFC, 	 0, 	 0, 	 0, 0xEDFB, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF8CA, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xEDFD, 0xBEA6, 0xD5F6, 	 0, 0xEDF9, 	 0, /* 0x50 */
		 0, 0xCBAF, 0xEEA1, 0xB6BD, 	 0, 0xEEA2, 0xC4C0, 	 0, /* 0x60 */
	0xEDFE, 	 0, 	 0, 0xBDDE, 0xB2C7, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 0xB6C3, 	 0, 	 0, 	 0, 0xEEA5, 0xD8BA, 0xEEA3, /* 0x70 */
	0xEEA6, 	 0, 	 0, 	 0, 0xC3E9, 0xB3F2, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 0xEEA7, 0xEEA4, 0xCFB9, 	 0, /* 0x80 */
		 0, 0xEEA8, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
	0xEDEE, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC2F7, 0xEEA9, /* 0x90 */
	0xEEAA, 	 0, 0xDEAB, 	 0, 	 0, 0xC6B3, 	 0, 0xC7C6, /* 0xA0 */
		 0, 	 0, 0xB5C9, 	 0, 0xCBB2, 0xF8D1, 	 0, 	 0, /* 0xA0 */
	0xEEAB, 	 0, 	 0, 0xCDAB, 	 0, 0xEEAC, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 0xD5B0, 0xEDFA, 0xEEAD, 	 0, 0xF6C4, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF8D7, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xDBC7, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xB4A3, /* 0xD0 */
		 0, 	 0, 0xD6F5, 0xC3AC, 0xF1E6, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 0xCAB8, 0xD2D3, 	 0, 0xD6AA, 	 0, 0xEFF2, /* 0xE0 */
		 0, 0xBED8, 	 0, 	 0, 0xEFF3, 0xB6CC, 0xB0AB, 0xBDC3, /* 0xE0 */
		 0, 	 0, 	 0, 0xCAAF, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
	0xEDB7, 	 0, 	 0, 	 0, 	 0, 0xCEF9					/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_78[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
					0xC9B0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 0xEDB9, 	 0, 	 0, 0xC6F6, 0xBFB3, 	 0, 	 0, /* 0x00 */
		 0, 0xEDBC, 0xC5F8, 	 0, 0xD1D0, 	 0, 	 0, 	 0, /* 0x10 */
	0xEDBB, 	 0, 	 0, 	 0, 	 0, 0xEDC0, 	 0, 0xEDC4, /* 0x10 */
		 0, 	 0, 	 0, 0xEDC8, 	 0, 0xEDC6, 0xEDCE, 0xD5E8, /* 0x20 */
		 0, 0xEDC9, 	 0, 	 0, 0xEDC7, 0xEDBE, 	 0, 	 0, /* 0x20 */
	0xC5E9, 	 0, 	 0, 	 0, 0xC6C6, 	 0, 	 0, 0xC9E9, /* 0x30 */
	0xD4D2, 0xEDC1, 	 0, 	 0, 0xEDC5, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 0xF9A7, 	 0, 0xB9E8, 	 0, 0xEDD0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xEDD1, 	 0, 0xEDCA, 	 0, /* 0x40 */
	0xEDCF, 	 0, 0xCEF8, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xCFF5, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 0xEDCC, 	 0, 	 0, 	 0, /* 0x60 */
	0xEDBA, 	 0, 0xEDD2, 0xC1F2, 0xD3B2, 0xEDCB, 0xF8E6, 0xD1E2, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 0xC5F0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEDD6, /* 0x80 */
		 0, 0xB5EF, 	 0, 	 0, 0xC2B5, 	 0, 0xCBE9, 	 0, /* 0x80 */
		 0, 0xB1AE, 	 0, 0xEDD4, 	 0, 	 0, 	 0, 0xCDEB, /* 0x90 */
	0xB5E2, 	 0, 0xEDD5, 	 0, 	 0, 	 0, 	 0, 0xB5FA, /* 0x90 */
		 0, 0xEDD8, 	 0, 0xEDD9, 	 0, 0xEDDC, 	 0, 0xB1CC, /* 0xA0 */
		 0, 0xCBB6, 	 0, 	 0, 	 0, 0xEDB8, 	 0, 	 0, /* 0xA0 */
	0xC5F6, 0xBCEE, 0xEDDA, 0xCCBC, 0xB2EA, 	 0, 	 0, 	 0, /* 0xB0 */
	0xEDBF, 0xEDDB, 0xC8B7, 	 0, 0xC2EB, 	 0, 0xC4EB, 	 0, /* 0xB0 */
		 0, 0xB4C5, 	 0, 	 0, 	 0, 0xB0F5, 	 0, 	 0, /* 0xC0 */
		 0, 0xEDDF, 0xC0DA, 0xB4E8, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
	0xC5CD, 	 0, 	 0, 	 0, 0xEDDD, 0xBFC4, 	 0, 	 0, /* 0xD0 */
		 0, 0xEDDE, 0xD7A9, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 0xEDD7, 	 0, 	 0, 	 0, 0xEDD3, /* 0xE0 */
	0xC4A5, 	 0, 	 0, 	 0, 0xEDE0, 	 0, 	 0, 0xEDB6, /* 0xE0 */
		 0, 	 0, 0xEDE1, 	 0, 0xEDE3, 	 0, 	 0, 0xC1D7, /* 0xF0 */
		 0, 	 0, 0xBBC7, 	 0, 	 0, 0xEDCD					/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_79[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xBDB8, 	 0, 	 0, 	 0, 0xEDE2, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xB4A1, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 0xEDE4, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 0xB0AD, 	 0, 	 0, 	 0, 	 0, 0xEDE6, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 0xEDE5, 	 0, 0xBFF3, 	 0, /* 0x20 */
		 0, 	 0, 0xEDC2, 0xC0F9, 0xB7AF, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 0xEDC3, 	 0, 	 0, 0xEDE7, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 0xCABE, 0xECEA, 	 0, 	 0, 0xC9E7, 	 0, /* 0x30 */
	0xECEB, 0xC6EE, 	 0, 	 0, 	 0, 	 0, 0xECEC, 	 0, /* 0x40 */
	0xC6ED, 0xECED, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 0xECF0, 	 0, 	 0, 0xD7E6, 0xECF3, /* 0x50 */
		 0, 	 0, 0xECF1, 0xECEE, 0xECEF, 0xD7A3, 0xC9F1, 0xCBEE, /* 0x50 */
	0xECF4, 	 0, 	 0, 	 0, 	 0, 0xCFE9, 	 0, 0xECF6, /* 0x60 */
	0xC6B1, 	 0, 	 0, 	 0, 	 0, 0xBCC0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 0xECF7, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
	0xD9F7, 0xBDFB, 	 0, 	 0, 0xC2BB, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xECF9, 	 0, 	 0, 0xBBF6, 0xECF5, 0xB8A3, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 0xECFA, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF8FA, 0xECFB, /* 0xA0 */
		 0, 	 0, 0xECF8, 	 0, 	 0, 	 0, 0xC0F1, 	 0, /* 0xA0 */
	0xECF2, 0xB5BB, 	 0, 0xECFC, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xD3ED, 0xD8AE, 	 0, 	 0, 0xC7DD, 0xBACC, 	 0, /* 0xB0 */
	0xD0E3, 0xCBBD, 	 0, 0xCDBA, 	 0, 	 0, 0xB8D1, 	 0, /* 0xC0 */
		 0, 0xB1FC, 	 0, 0xC7EF, 	 0, 0xF9A6, 	 0, 	 0, /* 0xC0 */
		 0, 0xBFC6, 0xC3EB, 	 0, 	 0, 0xEFF5, 	 0, 	 0, /* 0xD0 */
	0xC3D8, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD7E2, /* 0xD0 */
		 0, 	 0, 	 0, 0xEFF7, 0xB3D3, 	 0, 0xC7D8, 0xD1ED, /* 0xE0 */
		 0, 0xD6C8, 	 0, 0xEFF8, 	 0, 0xEFF6, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
	0xBDD5, 	 0, 	 0, 0xD2C6									/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_7A[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xCFA1, 	 0, 0xEFFC, 0xEFFB, 	 0, 	 0, 0xEFF9, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 0xB3CC, 	 0, 0xC9D4, 0xCBB0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 0xEFFE, 	 0, 	 0, 0xB0DE, /* 0x10 */
		 0, 	 0, 0xD6C9, 	 0, 	 0, 	 0, 0xEFFD, 	 0, /* 0x10 */
	0xB3ED, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD6D6, 	 0, /* 0x20 */
		 0, 0xB3C6, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF0A2, /* 0x30 */
		 0, 0xF0A1, 	 0, 0xB5BE, 0xBCDA, 0xBBFC, 	 0, 0xB8E5, /* 0x30 */
	0xF8B6, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC4C2, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xF6D5, 0xBBFD, 0xD3B1, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCBEB, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 0xF0A3, 0xBBE0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 0xCEC8, 	 0, 0xF8BE, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
	0xF0A6, 	 0, 	 0, 	 0, 0xD1A8, 	 0, 0xBEBF, 	 0, /* 0x70 */
	0xF1B6, 0xF1B7, 0xBFD5, 	 0, 	 0, 	 0, 	 0, 0xB4A9, /* 0x70 */
	0xF1B8, 0xCDBB, 	 0, 	 0, 0xD5AD, 	 0, 0xF1B9, 	 0, /* 0x80 */
	0xF1BA, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 0xD2A4, 0xD6CF, 	 0, 	 0, 0xF1BB, 0xBDD1, 0xB4B0, /* 0x90 */
	0xBEBD, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xBFDF, /* 0x90 */
	0xF1BD, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xF1BF, 0xCED1, 0xCDDD, 	 0, 0xF1BE, 	 0, 0xC7EE, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xF1C1, 	 0, 	 0, 0xF1C0, 	 0, /* 0xB0 */
		 0, 	 0, 0xBFFA, 	 0, 	 0, 	 0, 	 0, 0xC1FE, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 0xB4DC, 0xC7CF, 	 0, 0xF1BC, /* 0xC0 */
	0xD4EE, 	 0, 0xC7D4, 0xC1A2, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 0xD5BE, 	 0, 	 0, 	 0, 	 0, 	 0, 0xBEB9, /* 0xD0 */
	0xD5C2, 	 0, 	 0, 0xBFA2, 	 0, 0xCDAF, 0xF1B5, 	 0, /* 0xE0 */
		 0, 	 0, 0xCAFA, 	 0, 	 0, 0xBDDF, 	 0, 0xB6CB, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xBEBA, 	 0, /* 0xF0 */
		 0, 0xD6F1, 0xF3C3, 	 0, 	 0, 0xF3C4, 	 0, 0xB8CD	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_7B[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
									0xF3C7, 	 0, 0xB0CA, 	 0, /* 0x00 */
	0xF3C5, 	 0, 0xF3C9, 0xCBF1, 	 0, 	 0, 	 0, 0xF3CB, /* 0x00 */
		 0, 0xD0A6, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 0xF3CF, 	 0, 0xB5D1, 	 0, 	 0, 0xF3D7, 	 0, /* 0x10 */
	0xF3D2, 	 0, 	 0, 	 0, 0xF3D4, 0xF3D3, 0xB7FB, 	 0, /* 0x20 */
	0xB1BF, 	 0, 0xF3CE, 0xF3CA, 0xB5DA, 	 0, 0xF3D0, 	 0, /* 0x20 */
		 0, 0xF3D1, 	 0, 0xF3D5, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
	0xF3CD, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF3DA, 0xB1CA, 0xF3CC, /* 0x40 */
		 0, 0xB5C8, 	 0, 0xBDEE, 0xF3DC, 	 0, 	 0, 0xB7A4, /* 0x40 */
	0xBFF0, 0xF9A8, 0xCDB2, 	 0, 0xB4F0, 	 0, 0xB2DF, 	 0, /* 0x50 */
	0xF3D8, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
	0xF3DE, 	 0, 0xF3E1, 	 0, 	 0, 	 0, 	 0, 0xF3C8, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF3DF, 	 0, /* 0x60 */
		 0, 0xF3E3, 0xF3E2, 	 0, 	 0, 0xF3DB, 	 0, 0xBFEA, /* 0x70 */
		 0, 	 0, 	 0, 0xF3E0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF3EB, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 0xBCE3, 	 0, 0xB9BF, 	 0, 0xF3DD, /* 0x80 */
	0xF3E4, 	 0, 	 0, 	 0, 0xB2AD, 0xBBFE, 	 0, 0xCBE3, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 0xF3ED, 0xF3E9, 	 0, 	 0, /* 0x90 */
		 0, 0xB9DC, 0xF3EE, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 0xF3E8, 0xBCFD, 	 0, 	 0, /* 0xA0 */
		 0, 0xCFE4, 	 0, 	 0, 0xF3F0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xF3E7, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xBDDA, 0xF3F2, 	 0, 	 0, 0xB7B6, 	 0, 0xD7AD, 0xC6AA, /* 0xC0 */
		 0, 0xD6FE, 	 0, 0xF3E6, 0xF3F3, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 0xB8DD, 0xF3F5, 	 0, 	 0, 0xF3F4, 	 0, 	 0, /* 0xD0 */
		 0, 0xB4DB, 	 0, 	 0, 0xF3C6, 0xF3F6, 0xF3F7, 	 0, /* 0xE0 */
		 0, 0xC9B8, 0xF3F8, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xF3D9, 	 0, 	 0, 	 0, 0xC5F1, /* 0xF0 */
		 0, 	 0, 	 0, 	 0, 0xF3FB, 	 0, 0xF3FA			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_7C[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xF3E5, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xB4D8, /* 0x00 */
		 0, 	 0, 	 0, 0xF3FE, 0xF3F9, 0xC2A8, 	 0, 0xF3FC, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF3EC, 0xF4A1, /* 0x10 */
		 0, 0xBCF2, 	 0, 0xF3F1, 	 0, 	 0, 0xF4A3, 0xBBC9, /* 0x20 */
		 0, 	 0, 0xF4A2, 0xF3EF, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
	0xF4A4, 	 0, 	 0, 	 0, 	 0, 0xC7A9, 0xC1B1, 0xB2BE, /* 0x30 */
	0xF4A6, 	 0, 	 0, 0xC0BA, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xB3EF, 0xBCAE, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 0xF3EA, 	 0, 	 0, 0xF4A5, /* 0x50 */
	0xC1FD, 	 0, 	 0, 	 0, 0xF8E2, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 0xF3D6, 0xF3FD, 	 0, 0xC0E9, 	 0, 0xC2E1, 	 0, /* 0x60 */
		 0, 	 0, 0xF8FB, 0xC3D7, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 0xF4CC, 0xD7D1, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 0xB7DB, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 0xF4CE, 0xC1A3, 	 0, 	 0, 0xC6C9, 	 0, 0xB4D6, /* 0x90 */
	0xD5B3, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF4D1, 0xCBDA, /* 0x90 */
		 0, 	 0, 0xF4D2, 	 0, 0xD4C1, 0xD6E0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 0xC1BB, 0xF4D3, 0xBEAC, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xB4E2, 	 0, 	 0, 0xF4D4, 0xF4D5, 0xBEAB, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF4DB, 	 0, 0xF4D7, /* 0xC0 */
	0xF4DA, 	 0, 0xBAFD, 	 0, 0xF4D8, 0xF4D9, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xB8E2, 0xCCC7, 0xF4DC, /* 0xD0 */
		 0, 0xB2DA, 	 0, 	 0, 0xC3D3, 0xF4D6, 0xB7E0, 0xD4E3, /* 0xD0 */
	0xBFB7, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC1B8, /* 0xE0 */
	0xF4DD, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC5B4, /* 0xE0 */
	0xF8F0, 	 0, 0xF4CF, 	 0, 0xD9E1, 	 0, 0xF4D0, 	 0, /* 0xF0 */
	0xF4E9, 0xE6F9, 	 0, 0xCFB5, 	 0, 	 0, 0xBEC0			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_7D[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xBCCD, 	 0, 0xE6FB, 	 0, 0xD4BC, 0xBAEC, 0xE6FA, 0xE6FC, /* 0x00 */
	0xE6FD, 0xC8D2, 0xCEC9, 0xCEC6, 	 0, 0xC4C9, 	 0, 	 0, /* 0x00 */
	0xC5A6, 	 0, 	 0, 0xE7A3, 0xB4BF, 0xE7A2, 	 0, 0xC9B4, /* 0x10 */
		 0, 0xD6BD, 0xBCB6, 0xB7D7, 0xE7A1, 	 0, 	 0, 	 0, /* 0x10 */
	0xCBD8, 0xB7C4, 0xCBF7, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 0xD7CF, 	 0, 	 0, 	 0, 0xC0DB, /* 0x20 */
	0xCFB8, 0xE7A6, 0xE7A5, 0xC9F0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xC9DC, 0xE7A4, 	 0, 0xE7A8, 	 0, 	 0, 0xE7AA, /* 0x30 */
	0xE7A9, 	 0, 0xD6D5, 	 0, 0xD7E9, 	 0, 0xB0ED, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE7AC, 	 0, /* 0x40 */
	0xBDE1, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE7AB, 0xBDCA, 	 0, /* 0x50 */
		 0, 0xC2E7, 0xD1A4, 	 0, 	 0, 	 0, 0xB8F8, 	 0, /* 0x60 */
	0xC8DE, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD0F5, 	 0, /* 0x60 */
		 0, 0xCDB3, 0xCBBF, 0xE7AD, 	 0, 	 0, 0xBEF8, 	 0, /* 0x70 */
		 0, 0xBEEE, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 0xB0F3, 	 0, 0xE7AF, 	 0, 	 0, 0xE7AE, 	 0, /* 0x80 */
	0xE7B0, 0xD0E5, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCBE7, /* 0x80 */
		 0, 	 0, 	 0, 0xBEAD, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 0xD7DB, 	 0, 0xE7B6, 	 0, /* 0x90 */
		 0, 	 0, 0xB3F1, 0xE7B9, 	 0, 	 0, 0xF4EB, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xCFDF, 0xE7B7, 0xCEAC, 0xF4EC, 	 0, /* 0xA0 */
	0xE7BA, 0xB8D9, 0xCDF8, 0xB1C1, 0xD7BA, 	 0, 	 0, 	 0, /* 0xB0 */
	0xC2DA, 0xE7B8, 0xE7B2, 0xD5C0, 	 0, 0xB4C2, 0xE7B1, 0xC3E0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 0xE7B5, 	 0, 	 0, 0xE7BB, /* 0xC0 */
		 0, 	 0, 0xBDF4, 0xE7B3, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xC2CC, 0xD0F7, 	 0, 0xE7B4, 	 0, 	 0, 0xE7BD, /* 0xD0 */
	0xBCEA, 0xE7BC, 	 0, 	 0, 	 0, 0xBCA9, 0xB6D0, 	 0, /* 0xD0 */
	0xB5DE, 0xE7C5, 	 0, 0xD4B5, 	 0, 	 0, 0xE7C1, 	 0, /* 0xE0 */
	0xB1E0, 0xBBBA, 	 0, 	 0, 0xC3E5, 	 0, 	 0, 0xCEB3, /* 0xE0 */
		 0, 0xE7C3, 0xE7BF, 	 0, 0xC1B7, 	 0, 0xE7C2, 	 0, /* 0xF0 */
		 0, 0xE7BE, 	 0, 0xF9A4									/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_7E[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
																	/* 0x00 */
	0xDDD3, 0xE7C6, 0xE7CB, 0xE7C4, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
	0xE7A7, 0xE7CC, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 0xB8BF, 	 0, 0xE7C7, 0xE7C9, 0xE7C8, /* 0x10 */
		 0, 	 0, 	 0, 0xCFD8, 	 0, 	 0, 	 0, 0xCCD0, /* 0x20 */
		 0, 	 0, 	 0, 0xB7EC, 	 0, 0xE7CA, 0xCBF5, 	 0, /* 0x20 */
		 0, 0xD7DD, 0xE7D0, 	 0, 0xF8E3, 0xE7CF, 0xF4EA, 0xC2C6, /* 0x30 */
		 0, 0xE7CE, 	 0, 0xF7E3, 	 0, 0xD7DC, 0xBCA8, 	 0, /* 0x30 */
		 0, 0xB7B1, 	 0, 	 0, 	 0, 0xE7D2, 0xE7D1, 0xF4ED, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 0xE7D5, 	 0, 0xD6AF, 0xC9C9, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xE7D4, 	 0, 	 0, 	 0, 0xC8C6, 	 0, /* 0x50 */
		 0, 	 0, 0xE7C0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 0xC9FE, 0xBBE6, 0xF8F3, 	 0, 0xBCEB, 0xE7D6, 0xE7D9, /* 0x60 */
	0xE7D8, 	 0, 	 0, 0xBDC9, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 0xD2EF, 	 0, 	 0, 0xBCCC, 0xE7CD, 0xE7D7, 	 0, /* 0x70 */
		 0, 	 0, 0xD7EB, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
	0xE7D3, 	 0, 0xE6FE, 	 0, 0xD0F8, 0xF8CD, 	 0, 0xB2F8, /* 0x80 */
		 0, 	 0, 	 0, 0xD3A7, 0xF8A6, 	 0, 0xCFCB, 	 0, /* 0x90 */
	0xE7DA, 	 0, 	 0, 0xF4EE, 0xC0C2							/* 0x90 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_7F[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
													0xF3BE, 	 0, /* 0x30 */
	0xB8D7, 	 0, 0xC8B1, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 0xF3C0, 0xF3C1, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xF3BF, 	 0, 0xF8EE, 	 0, /* 0x40 */
	0xB9DE, 	 0, 	 0, 	 0, 0xD8E8, 0xBAB1, 	 0, 	 0, /* 0x50 */
	0xEEB7, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEEB9, /* 0x50 */
		 0, 0xEEB8, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
	0xEEBB, 0xD5D6, 0xD7EF, 	 0, 	 0, 	 0, 0xD6C3, 	 0, /* 0x60 */
	0xB7A3, 0xEEBD, 0xCAF0, 	 0, 	 0, 	 0, 	 0, 0xB0D5, /* 0x70 */
		 0, 0xEEBE, 	 0, 	 0, 	 0, 	 0, 0xEEC0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xC2DE, 0xEEBC, 	 0, /* 0x80 */
	0xEEBF, 	 0, 0xD1F2, 	 0, 0xC7BC, 	 0, 0xC3C0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 0xB8E1, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 0xC1E7, 	 0, 	 0, 0xF4C6, 0xD0DF, 	 0, /* 0x90 */
		 0, 0xCFDB, 	 0, 	 0, 0xC8BA, 0xF4C7, 	 0, 0xF4C8, /* 0xA0 */
		 0, 0xD2E5, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF4C9, /* 0xA0 */
	0xF4CA, 	 0, 0xF4CB, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xD9FA, 0xB8FE, 	 0, 	 0, 0xE5F1, 0xD3F0, 	 0, 0xF4E0, /* 0xB0 */
		 0, 0xCECC, 	 0, 	 0, 	 0, 0xB3E1, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xF1B4, 	 0, 0xD2EE, 	 0, 0xF4E1, 	 0, /* 0xC0 */
		 0, 	 0, 0xCFB0, 	 0, 0xCFE8, 0xF4E2, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xB5D4, /* 0xD0 */
	0xB4E4, 0xF4E4, 	 0, 	 0, 	 0, 0xF4E3, 0xF4E5, 	 0, /* 0xE0 */
		 0, 0xF4E6, 	 0, 	 0, 	 0, 	 0, 0xF4E7, 	 0, /* 0xE0 */
	0xBAB2, 0xB0BF, 	 0, 0xF4E8, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 0xC7CC, 	 0, 0xB7AD, 0xD2ED							/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_80[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xD2AB, 0xC0CF, 	 0, 0xBFBC, 0xEBA3, 0xD5DF, 0xEAC8, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 0xF1F3, 0xB6F8, 0xCBA3, 	 0, 	 0, /* 0x00 */
	0xC4CD, 	 0, 0xF1E7, 	 0, 0xF1E8, 0xB8FB, 0xF1E9, 0xBAC4, /* 0x10 */
	0xD4C5, 0xB0D2, 	 0, 	 0, 0xF1EA, 	 0, 	 0, 	 0, /* 0x10 */
	0xF1EB, 	 0, 	 0, 	 0, 	 0, 0xF1ED, 0xF1EE, 	 0, /* 0x20 */
	0xF1F1, 0xF1F0, 0xC5D5, 	 0, 0xF1EF, 	 0, 0xF1EC, 	 0, /* 0x20 */
		 0, 0xF1F2, 	 0, 0xB6FA, 	 0, 0xF1F4, 0xD2AE, 0xDEC7, /* 0x30 */
		 0, 	 0, 	 0, 0xB3DC, 	 0, 0xB5A2, 	 0, 0xB9A2, /* 0x30 */
		 0, 	 0, 	 0, 0xF1F5, 	 0, 	 0, 0xF1F6, 	 0, /* 0x40 */
		 0, 	 0, 0xC1C4, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 0xF1F8, 	 0, 	 0, 	 0, 0xCAA5, 	 0, /* 0x50 */
	0xC6B8, 	 0, 0xBEDB, 	 0, 	 0, 	 0, 0xCEC5, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC1AA, /* 0x60 */
	0xB4CF, 0xF1FA, 0xC9F9, 0xCBCA, 	 0, 0xF1F9, 0xC4F4, 0xD6B0, /* 0x70 */
		 0, 0xF1F7, 	 0, 	 0, 	 0, 0xCCFD, 0xC1FB, 0xEDB2, /* 0x70 */
	0xEDB1, 	 0, 	 0, 	 0, 0xD2DE, 0xCBE0, 0xCBC1, 0xD5D8, /* 0x80 */
		 0, 0xC8E2, 	 0, 0xC0DF, 0xBCA1, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 0xEBC1, 	 0, 	 0, 0xD0A4, 	 0, /* 0x90 */
	0xD6E2, 	 0, 0xB6C7, 0xB8D8, 0xEBC0, 0xB8CE, 	 0, 0xEBBF, /* 0x90 */
		 0, 0xB9C9, 0xD6AB, 	 0, 	 0, 0xB7CA, 	 0, 	 0, /* 0xA0 */
		 0, 0xBCE7, 0xB7BE, 0xEBC6, 	 0, 0xEBC7, 	 0, 0xBFCF, /* 0xA0 */
		 0, 0xEBC5, 0xD3FD, 	 0, 0xEBC8, 	 0, 	 0, 0xEBC9, /* 0xB0 */
		 0, 	 0, 0xB7CE, 	 0, 0xEBC2, 0xEBC4, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 0xEBCF, 0xCEB8, 0xEBD0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 0xB1B3, 0xEBD2, 0xCCA5, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC5D6, 0xEBD3, /* 0xD0 */
		 0, 0xEBD1, 0xC5DF, 0xEBCE, 	 0, 0xEBD5, 0xB0FB, 	 0, /* 0xD0 */
		 0, 0xBAFA, 	 0, 	 0, 0xD8B7, 0xF1E3, 	 0, 	 0, /* 0xE0 */
		 0, 0xEBCC, 	 0, 	 0, 0xE6C0, 0xEBD9, 	 0, 0xBFE8, /* 0xE0 */
	0xD2C8, 0xEBD7, 0xEBDC, 0xB8EC, 0xEBD8, 	 0, 	 0, 	 0, /* 0xF0 */
	0xD0D8, 	 0, 0xB0B7, 	 0, 0xEBDD, 0xC4DC					/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_81[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
					0xD6AC, 	 0, 	 0, 0xD0B2, 0xB4E0, 	 0, /* 0x00 */
		 0, 0xC2F6, 0xBCB9, 	 0, 	 0, 	 0, 0xEBDB, 	 0, /* 0x00 */
		 0, 	 0, 0xEBDF, 	 0, 	 0, 	 0, 0xB2B1, 	 0, /* 0x10 */
	0xEBE4, 	 0, 0xBDC5, 0xEBD6, 	 0, 	 0, 0xEBE2, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 0xEBE3, 	 0, 	 0, 0xB8AC, /* 0x20 */
		 0, 0xCDD1, 0xEBE5, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xD5CD, 	 0, 	 0, 	 0, 	 0, 0xC6A2, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCCF3, 	 0, /* 0x40 */
	0xEBE6, 	 0, 0xF8CC, 0xD2B8, 0xEBE7, 	 0, 0xC9F6, 	 0, /* 0x40 */
	0xB8AF, 0xB8AD, 	 0, 0xEBE8, 0xC7BB, 0xCDF3, 0xEBCB, 	 0, /* 0x50 */
		 0, 0xEBEA, 0xEBEB, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
	0xEBED, 0xEBE1, 	 0, 	 0, 	 0, 0xD0C8, 0xC4D4, 0xEBF2, /* 0x60 */
		 0, 0xEBEE, 	 0, 0xD6D7, 	 0, 0xEBF1, 0xC8F9, 	 0, /* 0x60 */
	0xD1FC, 0xEBEC, 	 0, 	 0, 0xEBE9, 	 0, 	 0, 	 0, /* 0x70 */
	0xB3A6, 0xB8B9, 0xCFD9, 	 0, 0xEBEF, 0xEBF0, 	 0, 0xCDC8, /* 0x70 */
	0xB0F2, 	 0, 0xEBF6, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
	0xEBF5, 	 0, 0xB2B2, 	 0, 	 0, 	 0, 	 0, 0xB8E0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
	0xB1EC, 	 0, 0xB7F4, 0xCCC5, 0xC4A4, 0xCFA5, 	 0, 	 0, /* 0x90 */
	0xBDBA, 	 0, 	 0, 0xEBF9, 	 0, 	 0, 0xECA2, 	 0, /* 0xA0 */
	0xC5F2, 0xC4E5, 0xEBFA, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xC9C5, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 0xE2DF, 0xEBFE, 	 0, 0xB5A8, 0xEBDA, 0xC5A7, /* 0xB0 */
	0xCDCE, 0xECA1, 0xB1DB, 0xD3B7, 	 0, 	 0, 0xD2DC, 	 0, /* 0xC0 */
		 0, 0xC1B3, 0xEBFD, 	 0, 0xEBFB, 0xC6EA, 	 0, 0xEBF7, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
	0xC0B0, 	 0, 0xEBCD, 	 0, 	 0, 	 0, 	 0, 0xD4E0, /* 0xD0 */
	0xD9F5, 	 0, 	 0, 0xB3BC, 	 0, 	 0, 	 0, 0xEAB0, /* 0xE0 */
	0xC1D9, 	 0, 0xD7D4, 	 0, 0xF4AB, 0xB3F4, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xD6C1, 0xD6C2, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 0xCCA8, 0xD5E9, 0xBECA, 	 0, 0xF4A7			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_82[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xD2A8, 0xF4A8, 0xF4A9, 	 0, 0xF4AA, 0xBECB, 	 0, 0xD3EB, /* 0x00 */
	0xD0CB, 0xBED9, 0xBEC9, 	 0, 0xC9E0, 0xF8E7, 	 0, 	 0, /* 0x00 */
	0xF3C2, 	 0, 0xCAE6, 	 0, 0xCCF2, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 0xE2B6, 0xCBB4, 	 0, 0xCEE8, 0xD6DB, /* 0x10 */
		 0, 0xF4AD, 0xF4AE, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
	0xF4B2, 	 0, 0xBABD, 0xF4B3, 0xB0E3, 0xF4B0, 	 0, 0xF4B1, /* 0x20 */
		 0, 	 0, 	 0, 0xF4B6, 0xF4B7, 0xB6E6, 0xB2B0, 0xCFCF, /* 0x30 */
	0xF4B4, 0xB4AC, 	 0, 	 0, 	 0, 	 0, 0xF4B8, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 0xF4B9, 	 0, 	 0, 0xCDA7, /* 0x40 */
		 0, 0xF4BA, 	 0, 0xF4BB, 	 0, 	 0, 	 0, 0xF4BC, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
	0xCBD2, 0xB2D5, 0xF4BD, 	 0, 	 0, 	 0, 	 0, 0xF4BE, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 0xF4AF, 	 0, 0xBDA2, 	 0, /* 0x60 */
	0xF4BF, 	 0, 	 0, 0xF4B5, 	 0, 	 0, 0xF4DE, 0xC1BC, /* 0x60 */
		 0, 0xBCE8, 0xC9AB, 	 0, 0xE5F5, 	 0, 	 0, 0xD1DE, /* 0x70 */
		 0, 0xDCB3, 	 0, 	 0, 	 0, 0xDCB4, 0xB0AC, 0xDCB5, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 0xDCB9, 	 0, 	 0, 	 0, /* 0x80 */
	0xD8C2, 	 0, 0xDCB7, 0xD3F3, 	 0, 0xC9D6, 0xDCBA, 0xDCB6, /* 0x80 */
		 0, 0xDCBB, 0xC3A2, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
	0xDCC5, 0xDCBD, 	 0, 	 0, 	 0, 0xD6A5, 	 0, 0xDCCF, /* 0x90 */
		 0, 0xDCCD, 	 0, 	 0, 0xDCD2, 0xBDE6, 	 0, 	 0, /* 0xA0 */
	0xDCB8, 0xDCCB, 0xDCCE, 0xDCBE, 0xB7D2, 0xB0C5, 0xDCC7, 0xD0BE, /* 0xA0 */
	0xDCC1, 0xBBA8, 	 0, 0xB7BC, 0xDCCC, 	 0, 	 0, 0xDCC6, /* 0xB0 */
		 0, 0xC7DB, 	 0, 0xDBBB, 	 0, 0xD1BF, 0xDCC0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 0xDCD0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xDCC3, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xD4B7, 0xDCDB, 0xDCDF, 0xCCA6, 0xDCE6, 	 0, 0xC3E7, /* 0xD0 */
	0xDCDC, 	 0, 	 0, 0xBFC1, 0xDCD9, 	 0, 0xB0FA, 0xB9B6, /* 0xD0 */
	0xDCE5, 0xDCD3, 	 0, 0xDCC4, 0xDCD6, 0xC8F4, 0xBFE0, 0xDCD1, /* 0xE0 */
		 0, 	 0, 	 0, 0xC9BB, 	 0, 	 0, 	 0, 0xB1BD, /* 0xE0 */
		 0, 0xD3A2, 	 0, 	 0, 0xDCDA, 	 0, 	 0, 0xDCD5, /* 0xF0 */
		 0, 0xF8DC, 	 0, 0xDCDE									/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_83[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xD7C2, 0xC3AF, 0xF8B2, 0xC7D1, 0xC3A9, 0xDCE2, 0xDCD8, /* 0x00 */
	0xDCEB, 0xDCD4, 	 0, 	 0, 0xDCDD, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDCF8, /* 0x10 */
		 0, 	 0, 0xDCE1, 0xDDA2, 0xDCE7, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
	0xB4C4, 	 0, 	 0, 0xC3A3, 0xB2E7, 0xDCFA, 	 0, 0xDCF2, /* 0x20 */
		 0, 0xDCEF, 	 0, 0xDCFC, 0xDCEE, 0xD2F0, 0xB2E8, 	 0, /* 0x30 */
	0xC8D7, 0xC8E3, 0xDCFB, 	 0, 0xDCED, 	 0, 	 0, 	 0, /* 0x30 */
	0xDCF7, 	 0, 	 0, 0xDCF5, 	 0, 	 0, 0xBEA3, 0xDCF4, /* 0x40 */
		 0, 0xB2DD, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDCF3, /* 0x40 */
	0xF8C3, 0xDCE8, 0xBBC4, 	 0, 0xC0F3, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xBAC9, /* 0x70 */
	0xDDA9, 	 0, 	 0, 0xDDB6, 0xDDB1, 0xDDB4, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xDDB0, 0xC6CE, 	 0, /* 0x80 */
		 0, 0xC0F2, 0xD7AF, 	 0, 	 0, 	 0, 0xC9AF, 	 0, /* 0x80 */
		 0, 	 0, 0xDCEC, 0xDDAE, 	 0, 	 0, 0xBEA5, 	 0, /* 0x90 */
	0xDDB7, 	 0, 	 0, 0xDCF0, 0xDDAF, 	 0, 0xDDB8, 	 0, /* 0x90 */
	0xDDAC, 	 0, 0xBCD4, 	 0, 	 0, 	 0, 	 0, 0xDCC8, /* 0xA0 */
	0xDDB9, 0xDDB3, 0xDDAD, 0xC4AA, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xDDA8, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xC3A7, 	 0, 	 0, /* 0xB0 */
	0xDDD2, 0xDDBC, 	 0, 	 0, 	 0, 0xDDD1, 	 0, 0xB9BD, /* 0xC0 */
		 0, 	 0, 0xBED5, 	 0, 0xBEFA, 	 0, 	 0, 0xBACA, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 0xDDCA, 	 0, 0xDDC5, 	 0, /* 0xD0 */
	0xDDBF, 	 0, 	 0, 	 0, 0xB2CB, 0xDDC3, 	 0, 0xDDCB, /* 0xD0 */
	0xB2A4, 0xDDD5, 	 0, 	 0, 	 0, 0xDDBE, 	 0, 	 0, /* 0xE0 */
		 0, 0xC6D0, 0xDDD0, 	 0, 	 0, 	 0, 	 0, 0xBBAA, /* 0xE0 */
	0xDDD4, 0xC1E2, 0xB7C6, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
	0xDDCE, 0xDDCF, 	 0, 	 0, 	 0, 0xDDC4					/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_84[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xDDBD, 	 0, 0xDDCD, 0xCCD1, 	 0, 0xDDC9, 0xDCC9, /* 0x00 */
		 0, 	 0, 0xC0B3, 0xDDC2, 0xC3C8, 0xC6BC, 0xCEAE, 0xDDCC, /* 0x00 */
		 0, 0xDDC8, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
	0xDDC1, 	 0, 	 0, 	 0, 0xDDC6, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 0xCDF2, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 0xDDE6, 	 0, 	 0, 	 0, 0xDDAB, 	 0, 	 0, /* 0x30 */
	0xDDC7, 	 0, 	 0, 	 0, 0xDDE0, 0xC2E4, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDDE1, 	 0, /* 0x40 */
		 0, 0xD2B6, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 0xDDD7, 0xDDA6, 	 0, 	 0, 	 0, 	 0, 0xD6F8, /* 0x50 */
		 0, 0xDDD9, 0xDDD8, 0xB8F0, 0xDDD6, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 0xC6CF, 	 0, 0xB6AD, 0xDDA7, 	 0, 0xCEAD, 	 0, /* 0x60 */
		 0, 0xDDE2, 	 0, 0xBAF9, 0xD4E1, 0xDDE7, 	 0, 0xF8F7, /* 0x60 */
		 0, 0xB4D0, 	 0, 0xDDDA, 	 0, 0xBFFB, 0xDDE3, 0xBBE7, /* 0x70 */
	0xDDDF, 	 0, 0xDDDD, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 0xB5D9, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
	0xDDDC, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDDE5, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 0xDDBB, 0xDDAA, 	 0, 	 0, 0xDDF5, /* 0x90 */
		 0, 0xC3C9, 	 0, 	 0, 0xCBE2, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 0xDDF2, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD8E1, /* 0xA0 */
		 0, 	 0, 0xC6D1, 	 0, 0xDDF4, 	 0, 	 0, 	 0, /* 0xB0 */
	0xD5F4, 0xDDF3, 0xDDF0, 	 0, 0xB2D4, 0xDDEC, 	 0, 0xDDEF, /* 0xB0 */
	0xDDA5, 0xDDE8, 	 0, 	 0, 0xD0EE, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xC8D8, 0xDDEE, 0xB8C7, 	 0, 0xDDE9, 	 0, 	 0, /* 0xC0 */
	0xDDEA, 0xCBF2, 	 0, 0xDDED, 	 0, 	 0, 0xB1CD, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 0xC5EE, 	 0, 0xC1AB, 0xDCCA, /* 0xE0 */
	0xDDFB, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 	 0, 0xDEA4, 0xDCEA, 	 0, 0xDEA3	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_85[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
																	/* 0x00 */
									0xDDF8, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 0xC3EF, 	 0, 0xC2FB, 0xF8A5, 	 0, 	 0, 0xD5E1, /* 0x10 */
		 0, 	 0, 0xCEB5, 	 0, 	 0, 	 0, 0xDDE4, 0xDDFD, /* 0x10 */
		 0, 0xB2CC, 	 0, 0xBDAF, 	 0, 	 0, 0xDCE0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 0xC4E8, 0xCADF, 0xD2F1, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
	0xDDFA, 	 0, 	 0, 0xDEA2, 	 0, 0xB1CE, 	 0, 	 0, /* 0x30 */
		 0, 0xDDA1, 	 0, 0xDEAC, 	 0, 	 0, 0xDDDB, 	 0, /* 0x40 */
	0xDEA6, 0xBDB6, 0xC8EF, 	 0, 	 0, 	 0, 0xDCF1, 	 0, /* 0x40 */
		 0, 	 0, 0xDDA4, 0xDCBF, 	 0, 0xDDB5, 0xDEA1, 	 0, /* 0x50 */
	0xDCE9, 0xDEA5, 	 0, 	 0, 	 0, 	 0, 0xDEA9, 	 0, /* 0x50 */
		 0, 	 0, 0xDDDE, 	 0, 0xDEA8, 	 0, 	 0, 	 0, /* 0x60 */
	0xDEA7, 0xB5B4, 0xCEDF, 	 0, 	 0, 0xCFF4, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDDF7, /* 0x70 */
		 0, 0xDEB3, 0xDEAA, 0xDEAE, 	 0, 	 0, 0xC0D9, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 0xB1A1, 0xDEB6, 	 0, 0xDEB1, /* 0x80 */
	0xDCF6, 	 0, 0xBCBB, 	 0, 0xDCBC, 	 0, 	 0, 0xDEB2, /* 0x80 */
		 0, 0xF8C4, 	 0, 	 0, 0xC7BE, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xD1A6, 0xDEB5, 	 0, 	 0, 0xDDB2, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 0xDEAF, 	 0, 0xBCF6, 	 0, /* 0xA0 */
	0xDEB0, 0xC8F8, 0xD0BD, 	 0, 	 0, 	 0, 	 0, 0xCAED, /* 0xA0 */
	0xDEB9, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDEB8, /* 0xB0 */
		 0, 0xDEB7, 0xDCF9, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xDEBB, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xBDE5, 	 0, 	 0, 	 0, 0xC0B6, 0xDDA3, 0xB2D8, /* 0xC0 */
	0xC3EA, 	 0, 	 0, 	 0, 	 0, 0xC5BA, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 0xDEBC, 0xD2D5, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 0xCCD9, 0xD2A9, 	 0, 	 0, /* 0xE0 */
		 0, 0xB7AA, 0xDEB4, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 0xD4CC, 	 0, 0xDCC2, 	 0, /* 0xF0 */
		 0, 0xB0AA, 0xDDFE, 0xD4E5, 	 0, 	 0, 	 0, 0xDEBD	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_86[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
									0xDEAD, 0xDEBF, 0xC2AB, 0xCBD5, /* 0x00 */
		 0, 	 0, 	 0, 0xC6BB, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 0xC4A2, 	 0, 	 0, 	 0, 	 0, 0xDEC1, 	 0, /* 0x10 */
		 0, 	 0, 0xDEBA, 	 0, 	 0, 	 0, 0xDDFC, 	 0, /* 0x10 */
		 0, 	 0, 0xDCD7, 	 0, 	 0, 	 0, 	 0, 0xDEBE, /* 0x20 */
		 0, 0xDEC0, 	 0, 	 0, 	 0, 0xC0BC, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
	0xD5BA, 	 0, 0xDDF1, 	 0, 0xDEC2, 	 0, 	 0, 0xC2DC, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF2AE, 0xBBA2, 	 0, /* 0x40 */
	0xC5B0, 	 0, 	 0, 	 0, 0xF2AF, 0xB4A6, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xD0E9, 	 0, 0xC2B2, 	 0, 0xD3DD, 0xBAC5, /* 0x50 */
		 0, 	 0, 0xEBBD, 	 0, 	 0, 	 0, 	 0, 0xBFF7, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 0xF2B0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 0xCAAD, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 0xBAE7, 0xF2B3, 0xF2B5, 0xF2B4, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xCEC3, 0xF2B8, 0xB0F6, 0xF2B7, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 0xF2BE, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 0xD1C1, 0xF2BA, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xF2BC, 0xD4E9, 	 0, 	 0, 0xF2BB, /* 0xA0 */
	0xF2B6, 0xF2BF, 0xF2BD, 	 0, 	 0, 	 0, 	 0, 0xF2C7, /* 0xA0 */
	0xF2C4, 0xF2C6, 	 0, 	 0, 0xF2CA, 0xF2C2, 0xF2C0, 	 0, /* 0xB0 */
		 0, 	 0, 0xF2C5, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xD6FB, 	 0, 	 0, 	 0, 0xF2C1, 	 0, 0xC7F9, 0xC9DF, /* 0xC0 */
		 0, 0xF2C8, 	 0, 0xB5B0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
	0xF2D0, 0xF2D6, 	 0, 	 0, 0xBBD7, 	 0, 	 0, 	 0, /* 0xD0 */
	0xF2D5, 0xCDDC, 	 0, 0xD6EB, 	 0, 	 0, 0xF2D2, 0xF2D4, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 0xB8F2, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 0xF2CB, 	 0, 	 0, 	 0, 0xF2CE, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
	0xF2D9, 0xD3BC, 0xF2CC, 	 0, 	 0, 	 0, 0xB6EA			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_87[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xCAF1, 	 0, 0xB7E4, 0xF2D7, 	 0, 	 0, 0xF2B9, 0xF2D8, /* 0x00 */
	0xF2DA, 0xF2DD, 0xF2DB, 	 0, 	 0, 0xF2DC, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 0xD1D1, 0xF2D1, 	 0, 0xCDC9, 	 0, 	 0, /* 0x10 */
	0xD6A9, 	 0, 0xF2E3, 	 0, 0xC3DB, 	 0, 0xF2E0, 	 0, /* 0x10 */
		 0, 0xF8CB, 0xF2EC, 0xF2DE, 	 0, 0xF2E1, 	 0, 	 0, /* 0x20 */
		 0, 0xF2E8, 	 0, 	 0, 	 0, 	 0, 0xF2E2, 	 0, /* 0x20 */
		 0, 0xF2E7, 	 0, 	 0, 0xF2E6, 	 0, 	 0, 0xF2E9, /* 0x30 */
		 0, 	 0, 	 0, 0xF2DF, 	 0, 	 0, 0xF2E4, 0xF2EA, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xF2F2, 	 0, 0xD0AB, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 0xF2F5, 	 0, 0xCAB4, 	 0, 0xBBC8, /* 0x50 */
		 0, 0xF2F9, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
	0xF2F0, 	 0, 	 0, 0xF2F6, 0xF2F8, 0xF2FA, 0xCFBA, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF2F3, 	 0, /* 0x60 */
	0xF2F1, 	 0, 	 0, 	 0, 0xBAFB, 	 0, 0xB5FB, 	 0, /* 0x70 */
	0xCECF, 	 0, 	 0, 0xF2EF, 	 0, 0xF2ED, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 0xF2EB, 0xF3A6, 0xF2CF, 0xF3A3, 	 0, 	 0, /* 0x80 */
	0xF3A2, 	 0, 	 0, 0xF2F4, 	 0, 0xC8DA, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 0xF2FB, 	 0, 	 0, 	 0, 0xF3A5, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC2EC, 0xC3F8, /* 0x90 */
		 0, 	 0, 0xD3A9, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xF3A7, 0xF3A9, 0xF3A4, 	 0, 0xF2FC, /* 0xA0 */
		 0, 	 0, 	 0, 0xF3AB, 	 0, 0xF3AA, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 0xC2DD, 0xF2F7, 	 0, 0xF3AE, 	 0, 	 0, /* 0xB0 */
	0xF3B0, 	 0, 	 0, 	 0, 0xD5DD, 	 0, 0xF3A1, 	 0, /* 0xC0 */
	0xF2E5, 	 0, 0xF3B1, 0xF3AC, 	 0, 	 0, 0xF2FD, 	 0, /* 0xC0 */
		 0, 0xF3AF, 0xF2FE, 0xF3AD, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 0xF3B2, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
	0xF3B4, 	 0, 	 0, 0xF2B1, 	 0, 0xF3A8, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 0xF3B3, 	 0, 0xB2F5, 	 0, 0xF3B5, 0xF2CD, /* 0xE0 */
		 0, 	 0, 0xB3E6, 	 0, 	 0, 	 0, 0xF2C9, 	 0, /* 0xF0 */
		 0, 0xD0B7, 	 0, 0xD2CF, 	 0, 	 0, 0xF3B8			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_88[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
							0xD9F9, 	 0, 0xD3AC, 0xF2B2, 	 0, /* 0x00 */
		 0, 	 0, 0xF3B9, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
	0xF2D3, 0xF2EE, 	 0, 0xF3B7, 	 0, 0xC8E4, 0xF3B6, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 0xF3BA, 	 0, 	 0, 	 0, 0xC0AF, /* 0x10 */
		 0, 0xF3BB, 0xB4C0, 0xF2C3, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 0xB9C6, 0xEEC3, 	 0, 	 0, 	 0, 0xB2CF, 	 0, /* 0x30 */
		 0, 0xF3BC, 	 0, 0xC2F9, 0xF3BD, 	 0, 	 0, 	 0, /* 0x30 */
	0xD1AA, 	 0, 	 0, 	 0, 0xF4AC, 	 0, 0xD6DA, 	 0, /* 0x40 */
		 0, 	 0, 0xF8DA, 	 0, 0xD0D0, 0xD1DC, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 0xCAF5, 	 0, 	 0, 	 0, 0xBDD6, /* 0x50 */
		 0, 0xD1C3, 	 0, 0xCEC0, 	 0, 0xB3E5, 	 0, 	 0, /* 0x50 */
		 0, 0xBAE2, 0xE1E9, 0xD2C2, 0xF1C2, 	 0, 	 0, 	 0, /* 0x60 */
	0xB1ED, 0xF1C3, 	 0, 0xC9C0, 	 0, 	 0, 0xD9F2, 	 0, /* 0x60 */
	0xCBA5, 	 0, 0xF1C4, 	 0, 	 0, 	 0, 	 0, 0xD6D4, /* 0x70 */
		 0, 0xD6BB, 	 0, 	 0, 	 0, 0xF1C5, 0xF4C0, 0xF1C6, /* 0x70 */
		 0, 0xD4AC, 0xF1C7, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
	0xF4C2, 	 0, 	 0, 0xB4FC, 	 0, 0xC5DB, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xCCBB, 	 0, 	 0, 	 0, 0xD0E4, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 0xF1C8, 	 0, 0xD9F3, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xB1BB, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 0xB8A4, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF1CA, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 0xF1CB, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xB2C3, 0xC1D1, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xF1CC, 0xF4C1, 	 0, 	 0, 	 0, 0xF1CE, 0xC0EF, /* 0xC0 */
		 0, 	 0, 0xD9F6, 	 0, 0xD2E1, 0xD4A3, 	 0, 	 0, /* 0xD0 */
	0xF4C3, 0xC8B9, 	 0, 	 0, 0xB2B9, 0xD7B0, 	 0, 0xF4C4, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xF1D4, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xF1D6, 0xF1D1, 	 0, 0xC9D1, 0xC5E1, 	 0, 	 0, 	 0, /* 0xF0 */
	0xC2E3, 0xB9FC, 	 0, 	 0, 0xF1D3, 0xF9A5, 0xF1D5			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_89[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
					0xB9D3, 	 0, 	 0, 	 0, 	 0, 0xF8B4, /* 0x00 */
		 0, 	 0, 0xF1DB, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
	0xBAD6, 	 0, 0xB0FD, 0xF1D9, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 0xF1D8, 0xF1D2, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 0xF1D7, 	 0, 	 0, 	 0, 0xC8EC, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xCDCA, 0xF1DD, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
	0xE5BD, 	 0, 0xBFE3, 0xF1CD, 	 0, 	 0, 0xF1DE, 	 0, /* 0x30 */
	0xF1DA, 	 0, 	 0, 0xD9F4, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xF1DF, 	 0, 	 0, 0xCFE5, 	 0, 	 0, 0xF1D0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xB0C0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF1CF, 0xF4C5, 0xBDF3, /* 0x50 */
	0xF1C9, 	 0, 	 0, 	 0, 0xF1DC, 	 0, 0xF1E0, 	 0, /* 0x60 */
		 0, 	 0, 0xCDE0, 	 0, 0xF8A1, 	 0, 	 0, 0xB3C4, /* 0x60 */
		 0, 	 0, 0xCFAE, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 0xF1E1, 	 0, 	 0, 	 0, 0xCEF7, /* 0x70 */
		 0, 0xD2AA, 	 0, 0xF1FB, 	 0, 	 0, 0xB8B2, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 0xBCFB, 	 0, 	 0, 	 0, 0xB9E6, /* 0x80 */
		 0, 	 0, 	 0, 0xC3D9, 	 0, 	 0, 0xCAD3, 	 0, /* 0x90 */
	0xEAE8, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 0xEAEA, 	 0, 	 0, 	 0, 	 0, 0xEAEC, 	 0, /* 0xA0 */
		 0, 	 0, 0xC7D7, 	 0, 0xEAE9, 	 0, 	 0, 0xEAED, /* 0xA0 */
		 0, 	 0, 0xEAEE, 	 0, 	 0, 	 0, 	 0, 0xEAEF, /* 0xB0 */
		 0, 	 0, 0xBEF5, 	 0, 	 0, 0xC0C0, 	 0, 0xEAEB, /* 0xB0 */
	0xB9DB, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xBDC7, 	 0, 	 0, 	 0, 0xF5FB, 	 0, /* 0xD0 */
		 0, 	 0, 0xF5FD, 	 0, 0xF5FE, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 0xBDE2, 	 0, 0xF6A1, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xF6A2, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xECB2, 0xF5FC, 	 0, 0xF6A3, 	 0, /* 0xF0 */
	0xB4A5															/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_8A[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xD1D4, 0xDAA5, 0xB6A9, 0xB8BC, 	 0, 	 0, 	 0, 0xD9EA, /* 0x00 */
	0xBCC6, 	 0, 0xD1B6, 	 0, 0xDAA7, 	 0, 0xCCD6, 	 0, /* 0x00 */
	0xDAA6, 	 0, 	 0, 0xD1B5, 	 0, 0xDAA8, 0xC6FD, 	 0, /* 0x10 */
	0xBCC7, 	 0, 	 0, 0xB6EF, 	 0, 0xD1C8, 	 0, 0xCBCF, /* 0x10 */
		 0, 	 0, 	 0, 0xBEF7, 	 0, 0xDAAB, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xB7C3, 	 0, 	 0, 0xC9E8, 	 0, 	 0, /* 0x20 */
		 0, 0xD0ED, 	 0, 	 0, 0xCBDF, 	 0, 0xDAAD, 	 0, /* 0x30 */
		 0, 	 0, 0xD5EF, 	 0, 	 0, 	 0, 0xF6A4, 	 0, /* 0x30 */
		 0, 0xDAAC, 	 0, 	 0, 	 0, 	 0, 0xDAAE, 	 0, /* 0x40 */
	0xEEBA, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDAAA, 	 0, /* 0x40 */
	0xD5A9, 	 0, 0xDAB1, 	 0, 0xDAAF, 0xC6C0, 	 0, 	 0, /* 0x50 */
	0xDAB0, 	 0, 	 0, 0xD7E7, 	 0, 	 0, 0xB4CA, 	 0, /* 0x50 */
		 0, 0xDABC, 0xD1AF, 0xD2E8, 	 0, 	 0, 0xCAD4, 	 0, /* 0x60 */
		 0, 0xCAAB, 	 0, 0xB2EF, 0xDAB8, 0xB9EE, 0xDAB9, 	 0, /* 0x60 */
	0xDAB5, 0xBBB0, 0xB8C3, 0xCFEA, 	 0, 0xDAB7, 	 0, 	 0, /* 0x70 */
		 0, 0xD5B2, 	 0, 	 0, 0xDAB6, 	 0, 	 0, 0xDAB4, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 0xDAB3, 0xD6EF, 0xDAB2, 0xBFE4, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xC8CF, 	 0, 	 0, /* 0x80 */
		 0, 0xDABF, 0xDAC0, 0xCAC4, 	 0, 0xB5AE, 	 0, 	 0, /* 0x90 */
	0xD3D5, 	 0, 0xDABD, 	 0, 	 0, 	 0, 0xD3EF, 	 0, /* 0x90 */
	0xB3CF, 0xBDEB, 	 0, 0xCEDC, 0xCEF3, 0xDABE, 0xCBD0, 	 0, /* 0xA0 */
	0xBBE5, 	 0, 	 0, 	 0, 0xCBB5, 	 0, 	 0, 	 0, /* 0xA0 */
	0xCBAD, 	 0, 0xBFCE, 	 0, 	 0, 	 0, 0xDAC7, 	 0, /* 0xB0 */
		 0, 0xB7CC, 	 0, 	 0, 0xD2EA, 	 0, 	 0, 0xB5F7, /* 0xB0 */
		 0, 	 0, 0xDAC6, 	 0, 0xD7BB, 	 0, 	 0, 0xCCB8, /* 0xC0 */
		 0, 0xDAC3, 	 0, 0xC7EB, 	 0, 0xDABA, 	 0, 0xDAC1, /* 0xC0 */
		 0, 0xDAC2, 0xC1C2, 	 0, 	 0, 	 0, 0xC2DB, 0xDAC5, /* 0xD0 */
		 0, 	 0, 	 0, 0xDAC4, 0xB5FD, 	 0, 0xDAD2, 	 0, /* 0xD0 */
		 0, 	 0, 0xDABB, 	 0, 0xDACC, 	 0, 0xDAD0, 0xD0B3, /* 0xE0 */
		 0, 	 0, 	 0, 0xDAC9, 	 0, 0xDACD, 0xDAD1, 	 0, /* 0xE0 */
		 0, 0xBBE4, 	 0, 0xDACF, 	 0, 	 0, 0xDAC8, 0xB7ED, /* 0xF0 */
	0xD6EE, 	 0, 0xD1E8, 	 0, 0xDACE, 	 0, 0xC5B5			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_8B[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xC4B1, 0xDACB, 0xCEBD, 	 0, 0xCCDC, 0xD6DF, 	 0, 0xE5C0, /* 0x00 */
		 0, 	 0, 0xBBD1, 	 0, 	 0, 	 0, 0xC3D5, 	 0, /* 0x00 */
	0xDAD7, 	 0, 	 0, 	 0, 0xDACA, 	 0, 0xDAD5, 0xB0F9, /* 0x10 */
		 0, 0xC7AB, 0xDAD6, 0xBDB2, 	 0, 0xD0BB, 	 0, 	 0, /* 0x10 */
		 0, 0xD2A5, 	 0, 	 0, 	 0, 	 0, 0xF6A5, 	 0, /* 0x20 */
	0xDAD3, 	 0, 	 0, 0xDAD8, 0xC3FD, 0xDAD9, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 0xDAA9, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xBDF7, 	 0, 	 0, 	 0, 	 0, 0xC3A1, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 0xD6A4, 	 0, 	 0, 	 0, 	 0, 0xDADC, 0xBCA5, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDADA, 	 0, /* 0x50 */
	0xCAB6, 0xDADB, 0xCCB7, 	 0, 0xC6D7, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xBEAF, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xDADE, 0xC6A9, 	 0, 	 0, 0xD2EB, /* 0x60 */
	0xD2E9, 	 0, 	 0, 	 0, 0xC7B4, 	 0, 	 0, 0xBBA4, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xD3FE, 	 0, 	 0, /* 0x70 */
	0xB6C1, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xB1E4, 	 0, 	 0, 	 0, 0xF6C5, 	 0, /* 0x80 */
		 0, 	 0, 0xB2F7, 0xC8C3, 	 0, 0xC0BE, 0xDADF, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 0xDAD4, 	 0, 0xDADD			/* 0x90 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_8C[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
															0xB9C8, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xBBED, 	 0, 	 0, 	 0, 	 0, 0xB6B9, 0xF4F8, /* 0x40 */
	0xC6F1, 0xF4F9, 	 0, 	 0, 0xCDE3, 	 0, 	 0, 	 0, /* 0x40 */
	0xB7E1, 	 0, 	 0, 	 0, 	 0, 0xF5B9, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 0xEBE0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 0xCFF3, 0xBBBF, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 0xBAC0, 0xD4A5, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xE1D9, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
	0xF5F4, 0xB1AA, 0xB2F2, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 0xF5F5, 	 0, 	 0, 0xF5F7, 	 0, 	 0, /* 0x80 */
		 0, 0xBAD1, 0xF5F6, 	 0, 0xC3B2, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 0xF5F9, 	 0, 	 0, 	 0, /* 0x90 */
	0xF5F8, 	 0, 	 0, 	 0, 	 0, 0xB1B4, 0xD5EA, 	 0, /* 0x90 */
	0xB8BA, 0xB2C6, 0xB9B1, 	 0, 	 0, 	 0, 	 0, 0xC6B6, /* 0xA0 */
	0xBBF5, 0xB7B7, 0xCCB0, 0xB9E1, 0xD4F0, 	 0, 	 0, 0xD6FC, /* 0xA0 */
	0xEADB, 	 0, 0xEADF, 0xB7A1, 0xB9F3, 	 0, 0xB1E1, 0xC2F2, /* 0xB0 */
	0xB4FB, 	 0, 0xEADC, 0xB7D1, 0xCCF9, 0xEADD, 	 0, 0xC3B3, /* 0xB0 */
	0xBAD8, 0xEADA, 0xC2B8, 0xC1DE, 0xBBDF, 0xEAE0, 	 0, 0xD7CA, /* 0xC0 */
	0xBCD6, 	 0, 0xD4F4, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 0xEAE2, 0xC9DE, 0xB1F6, 	 0, 0xEAE4, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 0xEAE3, 	 0, 0xB4CD, 	 0, 0xC9CD, 	 0, /* 0xD0 */
	0xC5E2, 0xE2D9, 0xCFCD, 0xC2F4, 0xBCFA, 	 0, 0xB8B3, 0xEAE6, /* 0xE0 */
		 0, 	 0, 0xD6CA, 0xEAE5, 0xD5CB, 0xB6C4, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 0xC0B5, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 0xD7AC, 0xEAE7, 0xB9BA, 0xC8FC, 0xD8D3			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_8D[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
									0xEADE, 0xD7B8, 	 0, 	 0, /* 0x00 */
	0xD4F9, 	 0, 0xD4DE, 0xD8CD, 	 0, 0xC9C4, 	 0, 0xD3AE, /* 0x00 */
	0xEAE1, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCAEA, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 0xB8D3, 0xD4DF, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 0xB3E0, 	 0, 0xC9E2, 0xF4F6, /* 0x60 */
		 0, 	 0, 	 0, 0xBAD5, 	 0, 0xF4F7, 	 0, 	 0, /* 0x60 */
	0xD7DF, 	 0, 	 0, 0xF4F1, 0xB8B0, 	 0, 	 0, 0xC6F0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 0xB3C3, 	 0, 	 0, 0xF4F2, 0xB3AC, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xD4BD, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 0xF4F4, 	 0, 	 0, 0xF4F3, 0xB8CF, 	 0, 	 0, /* 0x90 */
		 0, 0xD5D4, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCCCB, /* 0x90 */
		 0, 	 0, 	 0, 0xC8A4, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xC7F7, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 0xF4F5, 0xD7E3, 0xC5BF, 0xF5C0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 0xF5C3, 	 0, 0xF5C2, 	 0, 0xD6BA, 0xF5C1, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF5CC, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 0xB0CF, 0xB5F8, 	 0, 0xF5C9, 0xF5CA, /* 0xC0 */
		 0, 0xC5DC, 	 0, 	 0, 	 0, 	 0, 0xF5C5, 0xF5C6, /* 0xD0 */
		 0, 	 0, 0xF5C7, 0xF5CB, 	 0, 0xBEE0, 	 0, 0xB8FA, /* 0xD0 */
		 0, 	 0, 	 0, 0xF5D0, 0xF5D3, 	 0, 	 0, 	 0, /* 0xE0 */
	0xBFE7, 	 0, 0xB9F2, 0xF5BC, 0xF5CD, 	 0, 	 0, 0xC2B7, /* 0xE0 */
		 0, 	 0, 	 0, 0xCCF8, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 0xB6E5, 	 0, 	 0, 0xF5D5					/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_8E[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
											0xF5BD, 	 0, 	 0, /* 0x00 */
		 0, 0xF5D4, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCCA4, /* 0x00 */
	0xBCF9, 	 0, 	 0, 	 0, 0xF5D6, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF5D7, 0xBEE1, 0xF5D8, /* 0x10 */
		 0, 	 0, 0xCCDF, 0xF5DB, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 0xB2C8, 0xD7D9, 	 0, 	 0, 	 0, 0xF5DA, 	 0, /* 0x20 */
		 0, 0xF5E2, 	 0, 	 0, 0xD3BB, 0xF5E0, 	 0, 	 0, /* 0x30 */
		 0, 0xF5DF, 0xF5DD, 	 0, 	 0, 0xF5E1, 	 0, 	 0, /* 0x30 */
	0xF5DE, 0xF5E4, 0xF5E5, 	 0, 0xCCE3, 	 0, 	 0, 0xE5BF, /* 0x40 */
	0xB5B8, 0xF5E3, 0xF5E8, 0xCCA3, 0xF5C4, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF5CF, 	 0, 	 0, /* 0x50 */
		 0, 0xF5BE, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 0xF5E7, 	 0, 	 0, 0xB1C4, 	 0, /* 0x60 */
		 0, 0xF5BF, 	 0, 	 0, 0xB5C5, 0xB2E4, 	 0, 0xF5EC, /* 0x60 */
	0xF5E9, 	 0, 0xB6D7, 	 0, 0xF5ED, 	 0, 0xF5EA, 	 0, /* 0x70 */
		 0, 	 0, 0xF5CE, 	 0, 0xF5EB, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 0xD4EA, 	 0, 	 0, 	 0, 0xF5EE, 	 0, 0xB3F9, /* 0x80 */
		 0, 0xF5BB, 0xB3EC, 0xF5D2, 	 0, 0xD4BE, 	 0, 	 0, /* 0x80 */
	0xF5F1, 0xF5DC, 0xF5C8, 0xF5D9, 0xF5F0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 0xF5D1, 	 0, 	 0, 	 0, 0xF5F3, 	 0, /* 0x90 */
		 0, 0xF5E6, 	 0, 	 0, 	 0, 0xB4DA, 0xF5F2, 	 0, /* 0xA0 */
		 0, 	 0, 0xF5EF, 0xC9ED, 0xB9AA, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 0xB6E3, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 0xCCC9, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xC7FB, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 0xB3B5, 0xD4FE, 0xB9EC, 0xBEFC, 0xEAA6, 	 0, /* 0xC0 */
		 0, 	 0, 0xD0F9, 	 0, 0xE9ED, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 0xE9EE, 	 0, 	 0, 	 0, 0xC8ED, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 0xE9F5, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xE9F4, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 0xE9EF, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
	0xD6E1, 0xE9F2, 0xE9F7, 0xE9F0, 0xE9F3, 	 0, 0xE9F8			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_8F[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
							0xBDCF, 	 0, 0xE9FB, 	 0, 0xE9FA, /* 0x00 */
		 0, 0xD4D8, 0xE9F9, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 0xE9FC, 	 0, 0xB8A8, 0xC7E1, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 0xC1BE, 0xEAA2, 0xBBD4, 0xE9FE, 0xEAA1, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xB9F5, 0xE9FD, 	 0, /* 0x20 */
		 0, 0xB1B2, 0xC2D6, 	 0, 	 0, 	 0, 	 0, 0xBCAD, /* 0x20 */
		 0, 	 0, 	 0, 0xEAA3, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
	0xCAE4, 	 0, 	 0, 0xB7F8, 	 0, 	 0, 0xD5B7, 0xD3DF, /* 0x30 */
		 0, 	 0, 0xECB1, 	 0, 0xCFBD, 0xD4AF, 0xEAA4, 	 0, /* 0x40 */
		 0, 0xD7AA, 	 0, 	 0, 	 0, 0xD5DE, 0xBDCE, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xEAA5, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xBAE4, /* 0x50 */
		 0, 0xE0CE, 0xE9F6, 	 0, 0xE9F1, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 0xD0C1, 0xB9BC, 	 0, 	 0, 0xB1D9, /* 0x90 */
		 0, 	 0, 	 0, 0xC0B1, 	 0, 	 0, 0xB0EC, 	 0, /* 0xA0 */
	0xB1E6, 	 0, 	 0, 	 0, 	 0, 0xB4C7, 0xB1E8, 0xB1E7, /* 0xA0 */
	0xB3BD, 0xC8E8, 0xC5A9, 	 0, 	 0, 	 0, 0xE5C1, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 0xD3D8, 	 0, 0xC6F9, 0xD1B8, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xD3AD, 	 0, /* 0xC0 */
		 0, 0xBDFC, 	 0, 0xE5C2, 0xB7B5, 0xE5C3, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 0xCCF6, 	 0, 0xE5C6, 0xE5C4, 0xE5C8, 	 0, /* 0xE0 */
	0xE5CA, 	 0, 0xB5CF, 0xC6C8, 	 0, 0xB5FC, 0xE5C5, 	 0, /* 0xE0 */
	0xCAF6, 	 0, 	 0, 	 0, 0xF8BC, 	 0, 	 0, 0xC3D4, /* 0xF0 */
	0xB1C5, 0xBCA3, 	 0, 	 0, 	 0, 0xD7B7					/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_90[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xCDCB, 0xCBCD, 	 0, 0xCCD3, 0xE5CC, 0xE5CB, 0xC4E6, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 0xE5CD, 	 0, 0xE5D0, 	 0, 0xCDB8, /* 0x00 */
	0xD6F0, 0xE5CF, 	 0, 	 0, 0xCDBE, 0xE5C9, 0xE5D1, 0xB6BA, /* 0x10 */
		 0, 0xD5E2, 0xCDA8, 0xB9E4, 	 0, 0xCAC5, 0xB3D1, 0xCBD9, /* 0x10 */
	0xD4EC, 0xE5D2, 0xB7EA, 0xC1AC, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE5D5, 0xB4FE, 0xE5D6, /* 0x20 */
		 0, 	 0, 0xBDF8, 	 0, 	 0, 0xE5D3, 0xE5D4, 	 0, /* 0x30 */
	0xD2DD, 	 0, 	 0, 	 0, 0xB1C6, 	 0, 0xD3E2, 	 0, /* 0x30 */
		 0, 0xB6DD, 0xCBEC, 	 0, 0xE5D7, 	 0, 	 0, 0xD3F6, /* 0x40 */
		 0, 	 0, 	 0, 0xD4CB, 	 0, 0xB1E9, 0xB9FD, 0xB6F4, /* 0x40 */
	0xE5DA, 0xE5D8, 0xE5D9, 0xB5C0, 0xB4EF, 0xCEA5, 	 0, 	 0, /* 0x50 */
	0xE5DC, 	 0, 	 0, 0xE5DE, 0xD1B7, 	 0, 0xB5DD, 	 0, /* 0x50 */
	0xD4B6, 	 0, 0xE5DD, 0xC7B2, 	 0, 0xD2A3, 	 0, 	 0, /* 0x60 */
	0xE5DB, 0xCACA, 	 0, 	 0, 	 0, 0xD4E2, 0xD5DA, 	 0, /* 0x60 */
		 0, 	 0, 0xB3D9, 	 0, 0xE5E0, 0xD7F1, 	 0, 0xC7A8, /* 0x70 */
	0xD1A1, 	 0, 0xD2C5, 	 0, 0xC1C9, 0xE5E1, 	 0, 0xB1DC, /* 0x70 */
	0xD1FB, 0xC2F5, 0xE5E2, 0xE5E4, 0xBBB9, 	 0, 	 0, 0xE5C7, /* 0x80 */
	0xE5E3, 	 0, 0xB1DF, 0xE5E5, 	 0, 	 0, 	 0, 0xC2DF, /* 0x80 */
	0xE5CE, 0xD2D8, 	 0, 	 0, 	 0, 0xE7DF, 	 0, 0xDAF5, /* 0x90 */
		 0, 0xDAF8, 	 0, 0xDAF6, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 0xDAFA, 0xD0CF, 0xC4C7, 	 0, 	 0, 0xB0EE, 	 0, /* 0xA0 */
		 0, 	 0, 0xD0B0, 	 0, 	 0, 	 0, 	 0, 0xBAAA, /* 0xA0 */
	0xDBA2, 0xC7F1, 	 0, 0xDAFC, 0xDAFB, 0xC9DB, 0xDAFD, 	 0, /* 0xB0 */
	0xDBA1, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDBA5, 	 0, /* 0xB0 */
		 0, 0xF8F9, 	 0, 	 0, 0xDBA7, 0xDBA4, 	 0, 0xDBA8, /* 0xC0 */
		 0, 	 0, 0xBDBC, 	 0, 	 0, 	 0, 0xC0C9, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDBAD, /* 0xD0 */
		 0, 	 0, 	 0, 0xDBAE, 0xDBAC, 0xBAC2, 	 0, 0xDBA3, /* 0xD0 */
		 0, 0xBFA4, 0xDBAB, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xB2BF, 	 0, 	 0, 0xDBAF, 	 0, 0xB9F9, 	 0, 0xDBB0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 0xB3BB, 0xD3CA, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xB6BC, 0xDBB1			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_91[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
					0xB6F5, 	 0, 0xDBB2, 	 0, 0xDBA9, 	 0, /* 0x00 */
		 0, 0xCFE7, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 0xD7DE, 	 0, 0xDAF9, 	 0, 0xD4C7, 	 0, /* 0x10 */
		 0, 0xB1C9, 	 0, 	 0, 	 0, 	 0, 0xDBB4, 	 0, /* 0x10 */
		 0, 	 0, 0xDBB3, 0xDBB5, 	 0, 	 0, 	 0, 0xB5CB, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xD6A3, 	 0, 0xDBB7, /* 0x20 */
	0xC1DA, 0xDBB6, 0xB5A6, 	 0, 0xDAFE, 	 0, 0xDBA6, 	 0, /* 0x30 */
		 0, 0xDBB8, 0xDAF7, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 0xDBB9, 	 0, 	 0, 0xDBBA, 	 0, /* 0x40 */
	0xDBAA, 0xD3CF, 0xF4FA, 0xC7F5, 0xD7C3, 0xC5E4, 0xF4FC, 0xF4FD, /* 0x40 */
	0xF4FB, 	 0, 0xBEC6, 	 0, 	 0, 	 0, 	 0, 0xD0EF, /* 0x50 */
		 0, 	 0, 0xB7D3, 	 0, 	 0, 	 0, 0xCCAA, 	 0, /* 0x50 */
		 0, 0xF5A2, 0xF5A1, 0xBAA8, 0xF4FE, 0xCBD6, 	 0, 	 0, /* 0x60 */
		 0, 0xF5A4, 0xC0D2, 	 0, 0xB3EA, 	 0, 0xCDAA, 0xF5A5, /* 0x60 */
	0xF5A3, 	 0, 0xF5A8, 	 0, 0xF5A9, 0xBDCD, 0xC3B8, 0xBFE1, /* 0x70 */
	0xCBE1, 0xF5AA, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF5AC, 	 0, 0xB4BC, /* 0x80 */
		 0, 0xD7ED, 	 0, 0xB4D7, 0xF5AB, 0xF5AE, 	 0, 	 0, /* 0x80 */
	0xF5AD, 0xF5AF, 0xD0D1, 	 0, 	 0, 	 0, 0xD4CD, 	 0, /* 0x90 */
		 0, 	 0, 0xC3D1, 0xC8A9, 0xB3F3, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 0xF5B0, 0xF5B1, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 0xF5B2, 0xD2BD, 0xBDB4, 0xF5B3, 0xF5B4, 0xF5B5, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 0xF5B7, 0xF5B6, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 0xF5B8, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xC4F0, 0xD0C6, 	 0, 0xF5A7, 	 0, 0xF5A6, 	 0, 0xB2C9, /* 0xC0 */
		 0, 0xD3D4, 	 0, 0xCACD, 0xF8CE, 0xD6D8, 0xD2B0, 0xC1BF, /* 0xC0 */
		 0, 0xBDF0, 0xEEC4, 0xEEC5, 0xEEC6, 0xEEC9, 	 0, 0xEEC8, /* 0xD0 */
	0xB6A4, 0xEEC7, 	 0, 	 0, 0xB8AA, 0xD5EB, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 0xB5F6, 0xEECC, 	 0, 	 0, 0xEECB, /* 0xE0 */
		 0, 0xB7B0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEECE, 	 0, 0xEECA, /* 0xF0 */
		 0, 0xEECF, 0xC7A5											/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_92[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xEED9, 0xEED5, 	 0, 	 0, 0xEED7, 	 0, 	 0, 	 0, /* 0x00 */
	0xEED0, 0xC4C6, 	 0, 	 0, 	 0, 0xB6DB, 0xB9B3, 	 0, /* 0x00 */
	0xEED4, 0xEED3, 	 0, 	 0, 0xB3AE, 0xC5A5, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xBEFB, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 0xB8C6, 	 0, 0xEED8, 0xEED1, 0xEED6, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEEEA, 	 0, /* 0x20 */
	0xEEE6, 	 0, 	 0, 0xEEDD, 0xC1E5, 	 0, 	 0, 0xEEDC, /* 0x30 */
	0xEEE0, 0xEEEB, 0xEEDA, 	 0, 	 0, 0xEEDF, 0xD3CB, 0xEEE4, /* 0x30 */
	0xBCD8, 	 0, 	 0, 	 0, 	 0, 0xEED2, 	 0, 	 0, /* 0x40 */
	0xEEE8, 0xEEE7, 	 0, 	 0, 	 0, 0xEEE9, 	 0, 	 0, /* 0x40 */
		 0, 0xB2AC, 	 0, 	 0, 	 0, 0xEEDE, 	 0, 0xC7AF, /* 0x50 */
		 0, 	 0, 0xC3AD, 0xC7A6, 	 0, 	 0, 0xEEE1, 	 0, /* 0x50 */
		 0, 	 0, 0xB2A7, 	 0, 	 0, 	 0, 0xEEDB, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 0xEEE2, 0xEEE3, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
	0xBDC2, 	 0, 0xEEEF, 0xB8F5, 	 0, 	 0, 	 0, 0xEEFE, /* 0x70 */
	0xD2F8, 	 0, 	 0, 0xEFA5, 	 0, 0xCDAD, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF6C6, 	 0, /* 0x80 */
		 0, 0xCFB3, 	 0, 0xEEFD, 	 0, 	 0, 0xEEF9, 	 0, /* 0x90 */
	0xC3FA, 	 0, 0xEFA2, 	 0, 0xCFCE, 	 0, 	 0, 	 0, /* 0x90 */
	0xEEEE, 	 0, 	 0, 0xEFA8, 	 0, 0xD2BF, 0xEEF7, 	 0, /* 0xA0 */
	0xEFA7, 0xEEFB, 0xEEF0, 0xEFA4, 0xEEED, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 0xEEF6, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCFFA, /* 0xB0 */
		 0, 0xD0E2, 	 0, 0xCCE0, 0xEFB1, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xC2C1, 	 0, 0xEFB6, 	 0, 0xD0BF, 	 0, 0xB1B5, /* 0xC0 */
	0xF6C8, 	 0, 	 0, 	 0, 0xEEFA, 	 0, 	 0, 0xEEF2, /* 0xC0 */
		 0, 	 0, 0xB7E6, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEFB2, 	 0, 0xEFB7, /* 0xD0 */
		 0, 	 0, 	 0, 0xEEF4, 0xB3FA, 0xEFAD, 0xEFB8, 	 0, /* 0xE0 */
	0xEFB0, 	 0, 0xC6CC, 	 0, 	 0, 0xC8F1, 0xEEF1, 0xEFAF, /* 0xE0 */
	0xEFAE, 0xEFAB, 	 0, 	 0, 	 0, 	 0, 0xEFB3, 	 0, /* 0xF0 */
	0xBEE2, 	 0, 	 0, 	 0, 0xB8D6							/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_93[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xEFBE, 	 0, 	 0, 	 0, 	 0, 0xEFBA, 0xEFC2, /* 0x00 */
	0xEFC3, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
	0xD7B6, 	 0, 0xEFB9, 	 0, 	 0, 0xEFBF, 	 0, 	 0, /* 0x10 */
	0xB4B8, 0xEFC5, 0xEFA3, 0xEFBC, 	 0, 	 0, 	 0, 0xEFC4, /* 0x10 */
	0xB6A7, 	 0, 0xC7AE, 	 0, 	 0, 	 0, 0xBDF5, 	 0, /* 0x20 */
	0xC3AA, 	 0, 	 0, 0xCEFD, 	 0, 	 0, 0xEFC0, 0xB4ED, /* 0x20 */
		 0, 	 0, 0xC2BC, 0xC3CC, 	 0, 	 0, 0xF8A3, 	 0, /* 0x30 */
	0xEFAA, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
	0xEFBD, 0xCFC7, 	 0, 0xEFC1, 	 0, 	 0, 0xEECD, 0xEFC7, /* 0x40 */
		 0, 	 0, 	 0, 0xB9F8, 	 0, 0xB6C6, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xEFC9, 	 0, 	 0, 	 0, /* 0x50 */
	0xD5A1, 	 0, 	 0, 0xB6CD, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 0xEFCA, 0xEFC6, 	 0, 	 0, /* 0x60 */
		 0, 0xEFBB, 0xF6CA, 	 0, 0xC7C2, 	 0, 	 0, 	 0, /* 0x60 */
	0xEFCC, 	 0, 	 0, 	 0, 	 0, 0xBCFC, 0xEFC8, 	 0, /* 0x70 */
		 0, 	 0, 0xD5E0, 	 0, 	 0, 	 0, 0xEFF1, 	 0, /* 0x70 */
		 0, 	 0, 0xC3BE, 	 0, 0xEFCD, 	 0, 	 0, 0xEFD1, /* 0x80 */
		 0, 	 0, 0xB0F7, 	 0, 	 0, 	 0, 	 0, 0xF6CC, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCBF8, 	 0, /* 0x90 */
	0xEFD3, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 0xCED9, 0xDDF6, 	 0, 	 0, 0xEFD6, 0xEEF8, /* 0xA0 */
		 0, 0xEFA1, 0xEFCB, 	 0, 0xB8E4, 	 0, 0xD5F2, 	 0, /* 0xA0 */
	0xEFD7, 	 0, 	 0, 0xC4F8, 	 0, 0xEFD8, 	 0, 	 0, /* 0xB0 */
	0xEFD4, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEFD5, /* 0xB0 */
		 0, 	 0, 	 0, 0xEFDF, 	 0, 	 0, 	 0, 0xEFE0, /* 0xC0 */
	0xC1B4, 	 0, 0xF6CB, 	 0, 0xEFD2, 0xEFDD, 	 0, 	 0, /* 0xC0 */
		 0, 0xEFE1, 	 0, 	 0, 	 0, 	 0, 0xF7E9, 0xEFAC, /* 0xD0 */
	0xEFCF, 	 0, 	 0, 	 0, 0xEFDB, 0xEFDC, 0xEFDE, 0xB2F9, /* 0xD0 */
		 0, 0xBEB5, 0xEFDA, 	 0, 0xEFCE, 	 0, 	 0, 	 0, /* 0xE0 */
	0xF6C9, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xEEFC, 	 0, 0xEFE4, /* 0xF0 */
		 0, 0xEFEA													/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_94[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
							0xEEF3, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 0xEFA6, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
	0xC1CD, 	 0, 0xEFA9, 0xEFE6, 0xEFE2, 	 0, 	 0, 	 0, /* 0x10 */
	0xD6D3, 0xEFEB, 	 0, 	 0, 	 0, 0xEFE3, 	 0, 	 0, /* 0x10 */
	0xEFE8, 	 0, 	 0, 	 0, 	 0, 	 0, 0xEFB4, 0xEFB5, /* 0x20 */
	0xEFD0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC1AD, 	 0, /* 0x20 */
		 0, 	 0, 0xEFED, 0xC0D8, 	 0, 0xCCFA, 	 0, 	 0, /* 0x30 */
	0xEEEC, 	 0, 0xEEF5, 	 0, 	 0, 	 0, 0xF6CD, 0xEFEE, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 0xD6FD, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 0xEFEC, 	 0, 0xEFD9, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 0xBCF8, 	 0, 0xEFEF, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
	0xEEE5, 	 0, 	 0, 0xEFF0, 	 0, 0xEFE5, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xF6CE, 	 0, 0xEFE7, 	 0, 	 0, /* 0x60 */
	0xD4BF, 	 0, 0xCFE2, 	 0, 	 0, 	 0, 	 0, 0xC4F7, /* 0x70 */
		 0, 0xEFE9, 	 0, 	 0, 0xC2E0, 0xD7EA, 0xF6C7, 0xD4E4	/* 0x70 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_95[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
															0xB3A4, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
	0xC3C5, 	 0, 0xE3C5, 0xC9C1, 	 0, 	 0, 0xE3C6, 	 0, /* 0x80 */
		 0, 0xB1D5, 	 0, 0xBFAA, 0xE3CA, 	 0, 0xE3C8, 0xC8F2, /* 0x80 */
		 0, 0xCFD0, 	 0, 0xBCE4, 0xE3C9, 	 0, 	 0, 	 0, /* 0x90 */
	0xD5A2, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 0xBAD2, 	 0, 0xB8F3, 0xF8B9, 0xB7A7, 	 0, 	 0, /* 0xA0 */
	0xB9EB, 0xC3F6, 	 0, 0xE3CD, 0xE3CF, 0xE3CC, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 0xD4C4, 	 0, 	 0, 	 0, 0xE3D1, 	 0, /* 0xB0 */
		 0, 0xD1CB, 	 0, 0xD1D6, 0xE3D5, 0xE3D4, 0xE3D0, 0xE3D3, /* 0xB0 */
		 0, 	 0, 	 0, 0xE3D6, 	 0, 	 0, 0xF8A2, 	 0, /* 0xC0 */
	0xE3C7, 	 0, 0xC0AB, 0xE3D7, 0xC0BB, 	 0, 	 0, 	 0, /* 0xC0 */
	0xE3D9, 	 0, 	 0, 	 0, 0xE3D8, 0xE3DA, 0xB4B3, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 0xB9D8, 	 0, 0xE3DB, 	 0, /* 0xD0 */
		 0, 0xB2FB, 0xF8DB, 	 0, 	 0, 0xE3CB					/* 0xE0 */
																	/* 0xE0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_96[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
																	/* 0x10 */
									0xB8B7, 0xDAE2, 	 0, 	 0, /* 0x10 */
		 0, 0xDAE4, 0xDAE3, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 0xDAE6, 	 0, 	 0, 	 0, 0xC8EE, 	 0, /* 0x20 */
		 0, 0xDAE5, 0xB7C0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 0xD7E8, 0xDAE8, 0xDAE7, 	 0, 0xB0A2, /* 0x30 */
	0xCDD3, 	 0, 0xDAE9, 	 0, 0xB8BD, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 0xC2AA, 0xC4B0, 0xBDB5, 	 0, 	 0, /* 0x40 */
	0xCFDE, 	 0, 	 0, 	 0, 0xDAEB, 	 0, 	 0, 	 0, /* 0x50 */
	0xDAEA, 	 0, 	 0, 0xB1DD, 	 0, 0xC9C2, 	 0, 0xDAEC, /* 0x50 */
		 0, 0xB6B8, 0xD4BA, 0xD5F3, 0xB3FD, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 0xC5E3, 	 0, 0xDAEE, 	 0, 	 0, 	 0, /* 0x60 */
	0xD2F5, 	 0, 0xDAEF, 0xB3C2, 0xDAF0, 0xC1EA, 0xCCD5, 0xCFDD, /* 0x70 */
	0xC2BD, 	 0, 	 0, 	 0, 	 0, 0xD1F4, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xD3E7, 0xC2A1, 	 0, /* 0x80 */
	0xDAF1, 0xDAED, 0xB6D3, 0xCBE5, 	 0, 0xDAF2, 0xBDD7, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 0xB8F4, 0xD4C9, 	 0, 0xDAF3, /* 0x90 */
	0xB0AF, 0xCFB6, 	 0, 0xBCCA, 0xD5CF, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCBED, /* 0xA0 */
	0xCBE6, 	 0, 0xCFD5, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xDAF4, 0xD2FE, 	 0, 0xE3C4, 0xC2A4, 	 0, 	 0, 	 0, /* 0xB0 */
	0xC1A5, 0xF6BF, 	 0, 0xF9A2, 0xF6C0, 0xF6C1, 	 0, 	 0, /* 0xB0 */
	0xC8B8, 0xD1E3, 	 0, 	 0, 0xD0DB, 0xD1C5, 0xBCAF, 0xB9CD, /* 0xC0 */
		 0, 0xEFF4, 	 0, 	 0, 0xB4C6, 0xD3BA, 0xF6C2, 	 0, /* 0xC0 */
		 0, 	 0, 0xF6C3, 	 0, 	 0, 0xB5F1, 0xCBE4, 	 0, /* 0xD0 */
		 0, 0xCBAB, 	 0, 0xB3FB, 0xD4D3, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 0xC0EB, 0xC4D1, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xD3EA, 0xF6A7, 0xD1A9, 	 0, 	 0, 	 0, 	 0, 0xF6A9, /* 0xE0 */
		 0, 	 0, 0xD4C6, 	 0, 	 0, 	 0, 0xC1E3, 0xC0D7, /* 0xF0 */
		 0, 0xB1A2, 	 0, 0xB5E7									/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_97[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
	0xD0E8, 	 0, 	 0, 	 0, 0xCFF6, 	 0, 0xF6AA, 0xD5F0, /* 0x00 */
	0xF6AC, 0xC3B9, 	 0, 	 0, 	 0, 0xBBF4, 0xF6AE, 0xF6AD, /* 0x00 */
		 0, 	 0, 	 0, 0xC4DE, 	 0, 	 0, 0xC1D8, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 0xCBAA, 	 0, 0xCFBC, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCEED, /* 0x20 */
		 0, 	 0, 0xF6AF, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
	0xF6B1, 	 0, 0xC2B6, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
	0xB0D4, 0xC5F9, 	 0, 	 0, 	 0, 0xF6AB, 0xF6B2, 	 0, /* 0x30 */
		 0, 	 0, 0xF6A8, 	 0, 0xF6B0, 	 0, 	 0, 	 0, /* 0x40 */
	0xC1E9, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 0xC7E0, 	 0, 	 0, 	 0, 0xBEB8, 	 0, /* 0x50 */
		 0, 	 0, 0xF6A6, 0xB5E5, 0xBEB2, 	 0, 0xB7C7, 	 0, /* 0x50 */
	0xBFBF, 0xC3D2, 0xC3E6, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
	0xD8CC, 0xB8EF, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 0xBDF9, 0xD1A5, 	 0, 0xB0D0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 0xF7B0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF7B1, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 0xD0AC, 	 0, 0xB0B0, 	 0, 0xB9AE, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 0xF7B4, 	 0, 	 0, 	 0, /* 0x90 */
	0xC7CA, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
	0xBECF, 	 0, 	 0, 0xF7B7, 	 0, 	 0, 0xF8E4, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 0xF7B6, 	 0, 0xB1DE, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 0xF7B8, 	 0, 0xF7B9, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF7B3, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 0xF7B2, 	 0, 	 0, 0xF8E1, 	 0, /* 0xC0 */
		 0, 0xF7B5, 	 0, 0xCEA4, 0xC8CD, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 0xBAAB, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 0xE8B8, 	 0, 	 0, 0xE8BA, 	 0, 0xE8B9, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xBEC2, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xD2F4, 	 0, 0xD4CF, 0xC9D8, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCFEC	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_98[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xD2B3, 0xB6A5, 0xC7EA, 	 0, 0xCFEE, 0xCBB3, 0xF1FC, /* 0x00 */
	0xD0EB, 	 0, 0xE7EF, 	 0, 0xCBCC, 	 0, 0xF1FD, 0xF1FE, /* 0x00 */
	0xD4A4, 0xCDE7, 0xB0E4, 0xB6D9, 	 0, 	 0, 	 0, 0xC6C4, /* 0x10 */
	0xC1EC, 	 0, 	 0, 	 0, 0xF2A2, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 0xF2A1, 	 0, 	 0, 0xD2C3, 	 0, 0xF2A4, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xCDB7, 	 0, 	 0, /* 0x20 */
	0xBCD5, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF2A5, /* 0x30 */
	0xBEB1, 	 0, 	 0, 0xC6B5, 	 0, 0xCDC7, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xBFC5, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 0xCCE2, 0xB6EE, 0xF2A6, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 0xF2A7, 0xD1D5, 	 0, 	 0, 	 0, /* 0x50 */
	0xD4B8, 0xF2AA, 	 0, 0xB5DF, 	 0, 	 0, 0xC0E0, 	 0, /* 0x50 */
		 0, 	 0, 0xF2A9, 	 0, 	 0, 0xF2AB, 	 0, 0xB9CB, /* 0x60 */
		 0, 	 0, 	 0, 0xB2FC, 0xF2AC, 	 0, 	 0, 0xCFD4, /* 0x60 */
	0xF2AD, 0xC2AD, 	 0, 0xF2A8, 0xC8A7, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xB7E7, 	 0, 	 0, 	 0, 	 0, 	 0, 0xECA9, 0xECAA, /* 0xA0 */
		 0, 0xF8EC, 	 0, 0xF8B7, 	 0, 	 0, 0xECAB, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 0xECAC, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 0xC6AE, 	 0, 0xECAD, 	 0, /* 0xC0 */
	0xECAE, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 0xB7C9, 	 0, 	 0, 	 0, 0xCAB3, /* 0xD0 */
	0xE2BB, 	 0, 0xF8BF, 	 0, 	 0, 	 0, 	 0, 0xE2B8, /* 0xE0 */
		 0, 0xE2BD, 0xE2BF, 0xE2C0, 	 0, 0xE2C1, 	 0, 0xB7B9, /* 0xE0 */
		 0, 	 0, 0xD2FB, 	 0, 0xE2C2, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 	 0, 0xCBC7, 0xB1A5, 0xCACE			/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_99[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
							0xBDC8, 	 0, 0xB1FD, 	 0, 	 0, /* 0x00 */
		 0, 0xE2C3, 0xD1F8, 	 0, 0xB6FC, 	 0, 	 0, 	 0, /* 0x00 */
	0xB2CD, 0xE2C4, 0xC4D9, 0xB6F6, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
	0xD3E0, 	 0, 	 0, 0xE2C6, 	 0, 	 0, 0xBDA4, 	 0, /* 0x10 */
		 0, 0xCFDA, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
	0xB9DD, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF7D1, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 0xE2BC, 	 0, 	 0, 	 0, 0xE2C7, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 0xE2BE, 	 0, 0xC1F3, 0xE2C8, /* 0x30 */
		 0, 	 0, 	 0, 0xE2C9, 	 0, 0xC2F8, 	 0, 	 0, /* 0x40 */
	0xE2CA, 0xE2CB, 0xE2CC, 0xC0A1, 0xE2CD, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 0xBCA2, 0xC8C4, 	 0, 0xF7D3, 0xF7D2, 	 0, 0xF7CF, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 0xF7D0, 	 0, 0xB2F6, 	 0, /* 0x50 */
		 0, 	 0, 0xE2CE, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xCAD7, 0xD8B8, /* 0x90 */
	0xD9E5, 0xCFE3, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF0A5, 	 0, 	 0, /* 0xA0 */
	0xDCB0, 	 0, 	 0, 	 0, 0xC2ED, 0xD4A6, 0xB7EB, 	 0, /* 0xA0 */
		 0, 0xCDD4, 	 0, 0xB3DB, 0xD1B1, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 0xB2B5, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
	0xD7A4, 0xE6E5, 0xBED4, 	 0, 0xE6E0, 0xBCDD, 	 0, 	 0, /* 0xD0 */
	0xE6E6, 0xE6E2, 	 0, 0xCABB, 	 0, 0xCDD5, 	 0, 0xE6E1, /* 0xD0 */
		 0, 0xC2EE, 0xE6E9, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xBAA7, 	 0, 	 0, /* 0xE0 */
		 0, 0xC2E6, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xBFA5	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_9A[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
			0xB3D2, 	 0, 	 0, 	 0, 0xE6ED, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xE6EC, 0xC6EF, 0xE6EB, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE6F0, 	 0, /* 0x10 */
		 0, 0xC6AD, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 0xE5B9, 	 0, 0xE6EF, 0xE6F2, 	 0, /* 0x20 */
	0xCCDA, 	 0, 	 0, 	 0, 	 0, 	 0, 0xE6E3, 0xC9A7, /* 0x30 */
	0xE6F3, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC2E2, 	 0, /* 0x30 */
	0xDDEB, 0xE6F1, 0xE6EE, 0xE6F4, 0xE6F5, 0xC7FD, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 0xE6E8, 	 0, 	 0, 0xE6E7, 	 0, 0xE6F6, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xBDBE, 	 0, 0xD1E9, /* 0x50 */
		 0, 	 0, 0xBEAA, 0xE6E4, 	 0, 	 0, 	 0, 0xD6E8, /* 0x50 */
		 0, 	 0, 0xC2BF, 	 0, 0xE6F8, 0xE6F7, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 0xE6EA, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
	0xB9C7, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xB0B9, /* 0xA0 */
	0xF7BB, 0xF7BA, 	 0, 	 0, 	 0, 	 0, 0xF7BE, 0xF7BC, /* 0xB0 */
	0xBAA1, 	 0, 0xF7BF, 	 0, 0xF7C0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xF7C2, 0xF7C1, 0xF7C4, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF7C3, /* 0xC0 */
		 0, 0xF7C7, 0xF8FE, 0xCBE8, 0xCCE5, 0xF7C6, 0xF7C5, 	 0, /* 0xD0 */
	0xB8DF, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF7D4, /* 0xD0 */
		 0, 0xF7D5, 	 0, 	 0, 	 0, 	 0, 0xF7D6, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xF7D8, 	 0, 0xF7DA, 0xF8B1, 0xF7D7, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 0xF7DB, 	 0, 0xF7D9									/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_9B[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
							0xD7D7, 	 0, 	 0, 0xCBC9, 	 0, /* 0x00 */
	0xF7DC, 	 0, 	 0, 	 0, 	 0, 0xF8BA, 	 0, 0xF7DD, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 0xF8F6, 	 0, 	 0, 	 0, 	 0, 0xF7DF, /* 0x10 */
		 0, 	 0, 0xF7DE, 0xF7E0, 	 0, 0xB6B7, 	 0, 0xC4D6, /* 0x20 */
		 0, 0xE3D2, 	 0, 	 0, 	 0, 	 0, 0xE3CE, 0xDBCB, /* 0x20 */
		 0, 0xD3F4, 0xD8AA, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 0xE5F7, 0xB9ED, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 0xBFFD, 0xBBEA, 0xF7C9, 0xC6C7, 0xF7C8, 	 0, 	 0, /* 0x40 */
	0xF7CC, 	 0, 	 0, 	 0, 	 0, 0xF7CD, 0xF7CB, 0xCEBA, /* 0x40 */
		 0, 0xF7CE, 	 0, 	 0, 0xC4A7, 	 0, 	 0, 	 0, /* 0x50 */
	0xF7CA, 	 0, 0xD3E3, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xC2B3, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 0xF6D0, 	 0, 	 0, 0xF6CF, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 0xF6D1, 	 0, 0xF6D2, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF6D3, 	 0, /* 0x80 */
	0xF6D8, 0xB1AB, 0xF6D6, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 0xF6DA, 	 0, 	 0, 0xF6DF, 0xF6DC, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 0xF6DB, 0xF6DE, 	 0, 0xF6D9, 0xCFCA, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
	0xF6E7, 0xF6E1, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF6E9, /* 0xC0 */
		 0, 0xC0F0, 0xF6E8, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 0xF6F6, 	 0, 0xF6EB, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 0xF6F4, 	 0, 0xF6F1, 	 0, 	 0, /* 0xD0 */
		 0, 0xF6EE, 0xF6F2, 	 0, 0xF6EF, 	 0, 	 0, 0xF6F0, /* 0xE0 */
	0xBEA8, 	 0, 0xF6EC, 0xF6ED, 	 0, 	 0, 	 0, 	 0, /* 0xE0 */
	0xF6F3, 	 0, 	 0, 	 0, 0xF6F5, 	 0, 	 0, 	 0, /* 0xF0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF6EA, 	 0, 0xF6FD	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_9C[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
																	/* 0x00 */
	0xF6F8, 0xF6FC, 	 0, 	 0, 	 0, 0xF6FA, 	 0, 	 0, /* 0x00 */
	0xF6F9, 	 0, 0xF6FB, 0xC8FA, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
	0xF6FE, 	 0, 	 0, 0xF6E5, 	 0, 0xF7A4, 	 0, 	 0, /* 0x20 */
	0xF7A3, 0xF7A5, 	 0, 	 0, 	 0, 0xF7A2, 	 0, 	 0, /* 0x20 */
		 0, 0xF6E3, 0xF7A1, 0xF7A6, 	 0, 0xF7AA, 	 0, 0xF6E6, /* 0x30 */
		 0, 0xF6E4, 	 0, 0xF7A9, 	 0, 	 0, 0xF7A7, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF7AB, 	 0, 	 0, /* 0x40 */
	0xF7A8, 0xB1EE, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 0xF7AE, 	 0, 0xF7AD, 	 0, 0xF7AC, 0xC1DB, /* 0x50 */
	0xF6E0, 	 0, 	 0, 	 0, 	 0, 0xF6F7, 	 0, 0xF6D7, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF7AF, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF6DD, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
	0xF6D4, 	 0, 0xF6E2, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xC4F1, 	 0, 	 0, /* 0xE0 */
		 0, 0xF0AF, 	 0, 	 0, 0xD9EC, 	 0, 	 0, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 0xB7EF, 0xC3F9, 	 0, 0xF0B0			/* 0xF0 */
																	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_9D[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
													0xF0B2, 0xF0B1, /* 0x00 */
		 0, 0xD1BB, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xCDD2, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 0xD4A7, 	 0, 0xF0B6, 	 0, 0xF0B7, /* 0x10 */
		 0, 	 0, 	 0, 0xF0B3, 	 0, 	 0, 0xD1EC, 	 0, /* 0x20 */
	0xD1BC, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF0B9, /* 0x20 */
	0xF0BB, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 0xBAE8, 	 0, 	 0, 	 0, 0xB8EB, /* 0x30 */
		 0, 	 0, 0xF0BC, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 0xBEE9, 0xF0C1, 0xF0BE, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 0xF0C3, 0xB6EC, 	 0, 	 0, /* 0x50 */
	0xF0C0, 0xF0C4, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 0xF0C6, 	 0, 0xC5F4, 	 0, 	 0, 0xF0C7, /* 0x60 */
		 0, 	 0, 0xC8B5, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF0B4, /* 0x80 */
		 0, 0xF0C8, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 0xF0C5, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
	0xF0C9, 	 0, 0xF0CA, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF0CC, 	 0, 	 0, /* 0xA0 */
		 0, 0xF0CD, 	 0, 	 0, 	 0, 	 0, 	 0, 0xDDBA, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 0xBAD7, 	 0, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 0xF7BD, 0xF0CF, 	 0, 	 0, 	 0, /* 0xB0 */
	0xF0CB, 	 0, 0xF0CE, 	 0, 0xBCA6, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 0xF0D1, 	 0, 	 0, 	 0, 0xC5B8, /* 0xD0 */
		 0, 0xF0BA, 0xF0D2, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0xD0 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF0B8, 0xF0D4, 	 0, /* 0xE0 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF0D3, /* 0xE0 */
		 0, 	 0, 0xF0D5, 0xF0C2, 	 0, 	 0, 	 0, 	 0, /* 0xF0 */
	0xF0D6, 0xD3A5, 0xF0D8											/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_9E[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
																	/* 0x00 */
									0xF0D7, 	 0, 	 0, 	 0, /* 0x00 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF0B5, 	 0, 	 0, /* 0x10 */
		 0, 	 0, 0xF0D0, 0xF0D9, 	 0, 0xF0BF, 0xF0BD, 	 0, /* 0x10 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF8D2, 	 0, 	 0, /* 0x70 */
		 0, 0xF8F4, 0xF5BA, 	 0, 0xBCEF, 0xD1CE, 	 0, 0xC2B9, /* 0x70 */
		 0, 	 0, 0xF7E4, 	 0, 	 0, 	 0, 	 0, 0xF7E5, /* 0x80 */
	0xF7E6, 	 0, 	 0, 0xF7E7, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 0xF7E8, 0xC2B4, 	 0, 	 0, 	 0, 0xC0F6, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xF7EA, 	 0, 0xF7EB, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xC2F3, 	 0, 	 0, /* 0xA0 */
		 0, 0xF4EF, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF8E5, /* 0xA0 */
		 0, 	 0, 	 0, 	 0, 0xF4F0, 0xF8D9, 	 0, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 0xC2E9, 	 0, 0xC3B4, 0xF7E2, 	 0, /* 0xB0 */
		 0, 	 0, 	 0, 	 0, 0xBBC6, 	 0, 	 0, 	 0, /* 0xC0 */
		 0, 	 0, 	 0, 	 0, 0xD9E4, 0xCAF2, 0xC0E8, 0xF0A4, /* 0xC0 */
		 0, 0xBADA, 	 0, 	 0, 0xC7AD, 	 0, 	 0, 	 0, /* 0xD0 */
	0xC4AC, 	 0, 	 0, 0xF7EC, 0xF7ED, 0xF7EE, 0xB5E3, 0xF7F0, /* 0xD0 */
	0xF7EF, 	 0, 0xF7F1, 	 0, 	 0, 0xF7F4, 	 0, 0xF7F3, /* 0xE0 */
	0xB5B3, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF7F6, /* 0xE0 */
		 0, 	 0, 0xF7F5, 	 0, 0xF8D4, 	 0, 	 0, 0xF7F2, /* 0xF0 */
		 0, 0xEDE9, 	 0, 0xEDEA, 0xEDEB, 0xF6BC, 	 0, 0xF6BD	/* 0xF0 */
};

/* ----------------------------------------------------------------------- */

static sal_uInt16 const aImplUniToDBCSTab_GBT_9F[] =
{
/*		 0		 1		 2		 3		 4		 5		 6		 7 */
/*		 8		 9		 A		 B		 C		 D		 E		 F */
																	/* 0x00 */
			0xF6BE, 	 0, 	 0, 	 0, 	 0, 0xB6A6, 	 0, /* 0x00 */
	0xD8BE, 	 0, 	 0, 0xB9C4, 	 0, 0xF8AE, 	 0, 0xD8BB, /* 0x10 */
		 0, 0xDCB1, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x10 */
	0xCAF3, 	 0, 0xF7F7, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 0xF7F8, 	 0, 	 0, 0xF7F9, /* 0x20 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 0xF7FB, /* 0x30 */
		 0, 0xF7FA, 	 0, 0xB1C7, 	 0, 0xF7FC, 0xF7FD, 	 0, /* 0x30 */
		 0, 	 0, 	 0, 	 0, 0xF7FE, 	 0, 	 0, 	 0, /* 0x40 */
		 0, 	 0, 0xC6EB, 0xD5AB, 	 0, 	 0, 	 0, 0xECB4, /* 0x40 */
		 0, 	 0, 0xB3DD, 	 0, 0xF6B3, 	 0, 	 0, 	 0, /* 0x50 */
		 0, 0xF6B5, 	 0, 	 0, 0xF6B7, 	 0, 	 0, 0xF6B4, /* 0x50 */
	0xF6B6, 0xC1E4, 	 0, 0xF8AA, 	 0, 	 0, 0xF6B8, 	 0, /* 0x60 */
		 0, 	 0, 0xF6BA, 	 0, 0xF6B9, 	 0, 	 0, 	 0, /* 0x60 */
		 0, 	 0, 0xC8A3, 	 0, 	 0, 	 0, 	 0, 0xF6BB, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x70 */
		 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, 	 0, /* 0x80 */
		 0, 	 0, 	 0, 	 0, 	 0, 0xC1FA, 	 0, 	 0, /* 0x80 */
	0xC5D3, 	 0, 	 0, 	 0, 0xB9A8, 0xEDE8, 	 0, 	 0, /* 0x90 */
		 0, 	 0, 	 0, 	 0, 0xB9EA, 	 0, 	 0, 	 0, /* 0x90 */
	0xD9DF															/* 0xA0 */
																	/* 0xA0 */
};
