/*
 * Copyright (c) 2016-2022  Moddable Tech, Inc.
 *
 *   This file is part of the Moddable SDK Runtime.
 * 
 *   The Moddable SDK Runtime is free software: you can redistribute it and/or modify
 *   it under the terms of the GNU Lesser General Public License as published by
 *   the Free Software Foundation, either version 3 of the License, or
 *   (at your option) any later version.
 * 
 *   The Moddable SDK Runtime is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU Lesser General Public License for more details.
 * 
 *   You should have received a copy of the GNU Lesser General Public License
 *   along with the Moddable SDK Runtime.  If not, see <http://www.gnu.org/licenses/>.
 *
 * This file incorporates work covered by the following copyright and  
 * permission notice:  
 *
 *       Copyright (C) 2010-2016 Marvell International Ltd.
 *       Copyright (C) 2002-2010 Kinoma, Inc.
 *
 *       Licensed 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.
 */

#include "xsAll.h"
#if mxWindows
	#include <Winnls.h>
#elif mxMacOSX
	#include <CoreServices/CoreServices.h>
#elif mxiOS
	#include <CoreFoundation/CoreFoundation.h>
#endif

#define mxStringInstanceLength(INSTANCE) ((txIndex)fxUnicodeLength(instance->next->value.string))

static void fx_String_prototype_replaceAux(txMachine* the, txInteger size, txInteger offset, txSlot* function, txSlot* match, txInteger matchLength, txSlot* replace);
static txSlot* fx_String_prototype_split_aux(txMachine* the, txSlot* theString, txSlot* theArray, txSlot* theItem, txInteger theStart, txInteger theStop);

static txSlot* fxCheckString(txMachine* the, txSlot* it);
static txString fxCoerceToString(txMachine* the, txSlot* theSlot);
static txInteger fxArgToPosition(txMachine* the, txInteger i, txInteger index, txInteger length);
static void fx_String_prototype_pad(txMachine* the, txBoolean flag);
static void fx_String_prototype_trimAux(txMachine* the, txBoolean trimStart, txBoolean trimEnd);
static txBoolean fx_String_prototype_withRegexp(txMachine* the, txID id, txBoolean global, txInteger count);
static void fx_String_prototype_withoutRegexp(txMachine* the, txID id, txBoolean global, txInteger count);

static txBoolean fxStringDeleteProperty(txMachine* the, txSlot* instance, txID id, txIndex index);
static txBoolean fxStringDefineOwnProperty(txMachine* the, txSlot* instance, txID id, txIndex index, txSlot* slot, txFlag mask);
static txBoolean fxStringGetOwnProperty(txMachine* the, txSlot* instance, txID id, txIndex index, txSlot* slot);
static txSlot* fxStringGetProperty(txMachine* the, txSlot* instance, txID id, txIndex index, txFlag flag);
static txBoolean fxStringHasProperty(txMachine* the, txSlot* instance, txID id, txIndex index);
static void fxStringOwnKeys(txMachine* the, txSlot* instance, txFlag flag, txSlot* keys);
static txSlot* fxStringSetProperty(txMachine* the, txSlot* instance, txID id, txIndex index, txFlag flag);

#ifdef mxStringNormalize
static void fxNormalizeString(txMachine* the, txSlot* string, txFlag form);
#endif

const txBehavior ICACHE_FLASH_ATTR gxStringBehavior = {
	fxStringGetProperty,
	fxStringSetProperty,
	fxOrdinaryCall,
	fxOrdinaryConstruct,
	fxStringDefineOwnProperty,
	fxStringDeleteProperty,
	fxStringGetOwnProperty,
	fxOrdinaryGetPropertyValue,
	fxOrdinaryGetPrototype,
	fxStringHasProperty,
	fxOrdinaryIsExtensible,
	fxStringOwnKeys,
	fxOrdinaryPreventExtensions,
	fxOrdinarySetPropertyValue,
	fxOrdinarySetPrototype,
};

void fxBuildString(txMachine* the)
{
	txSlot* instance;
	txSlot* property;
	txSlot* slot;
	
	mxPush(mxObjectPrototype);
	instance = fxNewStringInstance(the);
	
	fxNewHostFunction(the, mxCallback(fxStringAccessorGetter), 0, XS_NO_ID, XS_NO_ID);
	property = mxFunctionInstanceHome(the->stack->value.reference);
	property->value.home.object = instance;
	fxNewHostFunction(the, mxCallback(fxStringAccessorSetter), 1, XS_NO_ID, XS_NO_ID);
	property = mxFunctionInstanceHome(the->stack->value.reference);
	property->value.home.object = instance;
	mxPushUndefined();
	the->stack->flag = XS_DONT_DELETE_FLAG;
	the->stack->kind = XS_ACCESSOR_KIND;
	the->stack->value.accessor.getter = (the->stack + 2)->value.reference;
	the->stack->value.accessor.setter = (the->stack + 1)->value.reference;
	mxPull(mxStringAccessor);
	mxPop();
	mxPop();
	
	slot = fxLastProperty(the, instance);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_at), 1, mxID(_at), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_charAt), 1, mxID(_charAt), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_charCodeAt), 1, mxID(_charCodeAt), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_codePointAt), 1, mxID(_codePointAt), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_compare), 1, mxID(_compare), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_concat), 1, mxID(_concat), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_endsWith), 1, mxID(_endsWith), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_includes), 1, mxID(_includes), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_indexOf), 1, mxID(_indexOf), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_lastIndexOf), 1, mxID(_lastIndexOf), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_localeCompare), 1, mxID(_localeCompare), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_normalize), 0, mxID(_normalize), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_padEnd), 1, mxID(_padEnd), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_padStart), 1, mxID(_padStart), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_repeat), 1, mxID(_repeat), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_replace), 2, mxID(_replace), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_replaceAll), 2, mxID(_replaceAll), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_slice), 2, mxID(_slice), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_split), 2, mxID(_split), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_startsWith), 1, mxID(_startsWith), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_substr), 2, mxID(_substr), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_substring), 2, mxID(_substring), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_toLowerCase), 0, mxID(_toLocaleLowerCase), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_toUpperCase), 0, mxID(_toLocaleUpperCase), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_toLowerCase), 0, mxID(_toLowerCase), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_valueOf), 0, mxID(_toString), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_toUpperCase), 0, mxID(_toUpperCase), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_trim), 0, mxID(_trim), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_trimEnd), 0, mxID(_trimEnd), XS_DONT_ENUM_FLAG);
	slot = fxNextSlotProperty(the, slot, slot, mxID(_trimRight), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_trimStart), 0, mxID(_trimStart), XS_DONT_ENUM_FLAG);
	slot = fxNextSlotProperty(the, slot, slot, mxID(_trimLeft), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_valueOf), 0, mxID(_valueOf), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_iterator), 0, mxID(_Symbol_iterator), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_match), 1, mxID(_match), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_matchAll), 1, mxID(_matchAll), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_search), 1, mxID(_search), XS_DONT_ENUM_FLAG);
	mxStringPrototype = *the->stack;
	slot = fxBuildHostConstructor(the, mxCallback(fx_String), 1, mxID(_String));
	mxStringConstructor = *the->stack;
	slot = fxLastProperty(the, slot);
#ifndef mxCESU8
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_fromArrayBuffer), 1, mxID(_fromArrayBuffer), XS_DONT_ENUM_FLAG);
#endif
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_fromCharCode), 1, mxID(_fromCharCode), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_fromCodePoint), 1, mxID(_fromCodePoint), XS_DONT_ENUM_FLAG);
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_raw), 1, mxID(_raw), XS_DONT_ENUM_FLAG);
	mxPop();

	mxPush(mxIteratorPrototype);
	slot = fxLastProperty(the, fxNewObjectInstance(the));
	slot = fxNextHostFunctionProperty(the, slot, mxCallback(fx_String_prototype_iterator_next), 0, mxID(_next), XS_DONT_DELETE_FLAG | XS_DONT_ENUM_FLAG);
	slot = fxNextStringXProperty(the, slot, "String Iterator", mxID(_Symbol_toStringTag), XS_DONT_ENUM_FLAG | XS_DONT_SET_FLAG);
	mxPull(mxStringIteratorPrototype);
}

txSlot* fxNewStringInstance(txMachine* the)
{
	txSlot* instance;
	instance = fxNewObjectInstance(the);
	instance->flag |= XS_EXOTIC_FLAG;
	fxNextSlotProperty(the, instance, &mxEmptyString, XS_STRING_BEHAVIOR, XS_INTERNAL_FLAG);
	return instance;
}

void fxStringAccessorGetter(txMachine* the)
{
	txSlot* string = C_NULL;
	txID id = the->scratch.value.at.id;
	txIndex index = the->scratch.value.at.index;
	if ((mxThis->kind == XS_STRING_KIND) || (mxThis->kind == XS_STRING_X_KIND))
		string = mxThis;
	else {
		txSlot* instance = fxToInstance(the, mxThis);
		while (instance) {
			if ((instance->flag & XS_EXOTIC_FLAG) && (instance->next->ID == XS_STRING_BEHAVIOR)) {
				string = instance->next;
				break;
			}
			instance = fxGetPrototype(the, instance);
		}
	}
	if (string) {
		if (id == mxID(_length)) {
			mxResult->value.integer = fxUnicodeLength(string->value.string);
			mxResult->kind = XS_INTEGER_KIND;
		}
		else {
			txInteger from = fxUnicodeToUTF8Offset(string->value.string, index);
			if (from >= 0) {
				txInteger to = fxUnicodeToUTF8Offset(string->value.string + from, 1);
				if (to >= 0) {
					to += from;
					mxResult->value.string = fxNewChunk(the, to - from + 1);
					c_memcpy(mxResult->value.string, string->value.string + from, to - from);
					mxResult->value.string[to - from] = 0;
					mxResult->kind = XS_STRING_KIND;
				}
			}
		}
	}
}

void fxStringAccessorSetter(txMachine* the)
{
}

txBoolean fxStringDefineOwnProperty(txMachine* the, txSlot* instance, txID id, txIndex index, txSlot* slot, txFlag mask)
{
	if (id == mxID(_length)) {
		if ((mask & XS_DONT_DELETE_FLAG) && !(slot->flag & XS_DONT_DELETE_FLAG))
			return 0;
		if ((mask & XS_DONT_ENUM_FLAG) && !(slot->flag & XS_DONT_ENUM_FLAG))
			return 0;
		if ((mask & XS_DONT_SET_FLAG) && !(slot->flag & XS_DONT_SET_FLAG))
			return 0;
		if (slot->kind != XS_UNINITIALIZED_KIND)
			return 0;
		return 1;
	}
	if (!id && (mxStringInstanceLength(instance) > index)) {
		if ((mask & XS_DONT_DELETE_FLAG) && !(slot->flag & XS_DONT_DELETE_FLAG))
			return 0;
		if ((mask & XS_DONT_ENUM_FLAG) && (slot->flag & XS_DONT_ENUM_FLAG))
			return 0;
		if ((mask & XS_DONT_SET_FLAG) && !(slot->flag & XS_DONT_SET_FLAG))
			return 0;
		if (slot->kind != XS_UNINITIALIZED_KIND)
			return 0;
		return 1;
	}
	return fxOrdinaryDefineOwnProperty(the, instance, id, index, slot, mask);
}

txBoolean fxStringDeleteProperty(txMachine* the, txSlot* instance, txID id, txIndex index)
{
	if ((id == mxID(_length)) || (!id && (mxStringInstanceLength(instance) > index)))
		return 0;
	return fxOrdinaryDeleteProperty(the, instance, id, index);
}

txBoolean fxStringGetOwnProperty(txMachine* the, txSlot* instance, txID id, txIndex index, txSlot* descriptor)
{
	if (id == mxID(_length)) {
		descriptor->flag = XS_DONT_DELETE_FLAG | XS_DONT_ENUM_FLAG | XS_DONT_SET_FLAG;
		descriptor->ID = id;
		descriptor->kind = XS_INTEGER_KIND;
		descriptor->value.integer = mxStringInstanceLength(instance);
		return 1;
	}
	if (!id && (mxStringInstanceLength(instance) > index)) {
		txSlot* string = instance->next;
		txInteger from = fxUnicodeToUTF8Offset(string->value.key.string, index);
		txInteger to = fxUnicodeToUTF8Offset(string->value.key.string, index + 1);
		descriptor->value.string = fxNewChunk(the, to - from + 1);
		c_memcpy(descriptor->value.string, string->value.key.string + from, to - from);
		descriptor->value.string[to - from] = 0;
		descriptor->kind = XS_STRING_KIND;
		descriptor->flag = XS_DONT_DELETE_FLAG | XS_DONT_SET_FLAG;
		return 1;
	}
	return fxOrdinaryGetOwnProperty(the, instance, id, index, descriptor);
}

txSlot* fxStringGetProperty(txMachine* the, txSlot* instance, txID id, txIndex index, txFlag flag)
{
	if ((id == mxID(_length)) || (!id && (mxStringInstanceLength(instance) > index))) {
		the->scratch.value.at.id = id;
		the->scratch.value.at.index = index;
		return &mxStringAccessor;
	}
	return fxOrdinaryGetProperty(the, instance, id, index, flag);
}

txBoolean fxStringHasProperty(txMachine* the, txSlot* instance, txID id, txIndex index)
{
	if ((id == mxID(_length)) || (!id && (mxStringInstanceLength(instance) > index)))
		return 1;
	return fxOrdinaryHasProperty(the, instance, id, index);
}

void fxStringOwnKeys(txMachine* the, txSlot* instance, txFlag flag, txSlot* keys)
{
	txSlot* property = instance->next;
	if (flag & XS_EACH_NAME_FLAG) {
		txIndex length = mxStringInstanceLength(instance), index;
		for (index = 0; index < length; index++)
			keys = fxQueueKey(the, 0, index, keys);
	}
	property = property->next;
	if (property && (property->kind == XS_ARRAY_KIND)) {
		keys = fxQueueIndexKeys(the, property, flag, keys);
		property = property->next;
	}
	if (flag & XS_EACH_NAME_FLAG)
		keys = fxQueueKey(the, mxID(_length), 0, keys);
	fxQueueIDKeys(the, property, flag, keys);
}

txSlot* fxStringSetProperty(txMachine* the, txSlot* instance, txID id, txIndex index, txFlag flag)
{
	if ((id == mxID(_length)) || (!id && (mxStringInstanceLength(instance) > index)))
		return C_NULL;
	return fxOrdinarySetProperty(the, instance, id, index, flag);
}

void fx_String(txMachine* the)
{
	txSlot* slot;
	txSlot* instance;
	if (mxArgc > 0) {
		slot = mxArgv(0);
		if ((mxTarget->kind == XS_UNDEFINED_KIND) && (slot->kind == XS_SYMBOL_KIND)) {
			fxSymbolToString(the, slot);
			*mxResult = *slot;
			return;
		}
		fxToString(the, slot);
	}
	else {
		slot = &mxEmptyString;
	}
	if (mxTarget->kind == XS_UNDEFINED_KIND) {
		*mxResult = *slot;
		return;
	}
	mxPushSlot(mxTarget);
	fxGetPrototypeFromConstructor(the, &mxStringPrototype);
	instance = fxNewStringInstance(the);
	instance->next->kind = slot->kind; // @@
	instance->next->value.key.string = slot->value.string;
	mxPullSlot(mxResult);
}

#ifndef mxCESU8
void fx_String_fromArrayBuffer(txMachine* the)
{
	txSlot* slot;
	txSlot* arrayBuffer = C_NULL, *sharedArrayBuffer = C_NULL;
	txSlot* bufferInfo;
	txInteger limit, offset;
	txInteger inLength, outLength = 0;
	unsigned char *in;
	txString string;
	if (mxArgc < 1)
		mxTypeError("no argument");
	slot = mxArgv(0);
	if (slot->kind == XS_REFERENCE_KIND) {
		slot = slot->value.reference->next;
		if (slot) {
			bufferInfo = slot->next;
			if (slot->kind == XS_ARRAY_BUFFER_KIND)
				arrayBuffer = slot;
			else if (slot->kind == XS_HOST_KIND) {
				if (!(slot->flag & XS_HOST_CHUNK_FLAG) && bufferInfo && (bufferInfo->kind == XS_BUFFER_INFO_KIND))
					sharedArrayBuffer = slot;
			}
		}
	}
	if (!arrayBuffer && !sharedArrayBuffer)
		mxTypeError("argument is no ArrayBuffer instance");
	limit = bufferInfo->value.bufferInfo.length;
	offset = fxArgToByteLength(the, 1, 0);
	if (limit < offset)
		mxRangeError("out of range byteOffset %ld", offset);
	inLength = fxArgToByteLength(the, 2, limit - offset);
	if ((limit < (offset + inLength)) || ((offset + inLength) < offset))
		mxRangeError("out of range byteLength %ld", inLength);

	in = offset + (unsigned char *)(arrayBuffer ? arrayBuffer->value.arrayBuffer.address : sharedArrayBuffer->value.host.data);
	while (inLength > 0) {
		unsigned char first = c_read8(in++), clen;
		if (first < 0x80){
			if (0 == first)
				break;
			inLength -= 1;
			outLength += 1;
			continue;
		}

		if (0xC0 == (first & 0xE0))
			clen = 2;
		else if (0xE0 == (first & 0xF0))
			clen = 3;
		else if (0xF0 == (first & 0xF0))
			clen = 4;
		else
			goto badUTF8;

		inLength -= clen;
		if (inLength < 0)
			goto badUTF8;

		outLength += clen;
		clen -= 1;
		do {
			if (0x80 != (0xc0 & c_read8(in++)))
				goto badUTF8;
		} while (--clen > 0);
	}

	string = fxNewChunk(the, outLength + 1);
	c_memcpy(string, offset + (txString)(arrayBuffer ? arrayBuffer->value.arrayBuffer.address : sharedArrayBuffer->value.host.data), outLength);
	string[outLength] = 0;
	mxResult->value.string = string;
	mxResult->kind = XS_STRING_KIND;

	return;

badUTF8:
	mxTypeError("invalid UTF-8");
}
#endif

void fx_String_fromCharCode(txMachine* the)
{
	txInteger length = 0;
	txInteger count = mxArgc;
	txInteger index = 0;
	txInteger c; 
	txString p;
	while (index < count) {
		txNumber number = fxToNumber(the, mxArgv(index));
		switch (c_fpclassify(number)) {
		case C_FP_INFINITE:
		case C_FP_NAN:
		case C_FP_ZERO:
			mxArgv(index)->value.integer = 0;
			break;
		default:
			#define MODULO 65536.0
			number = c_fmod(c_trunc(number), MODULO);
			if (number < 0)
				number += MODULO;
			mxArgv(index)->value.integer = (txInteger)number;
			break;
		}
		mxArgv(index)->kind = XS_INTEGER_KIND;
		index++;
	}
	index = 0;
	while (index < count) {
		c = mxArgv(index)->value.integer;
		index++;
		if (index < count) {
			txInteger d = mxArgv(index)->value.integer;
			if ((0x0000D800 <= c) && (c <= 0x0000DBFF) && (0x0000DC00 <= d) && (d <= 0x0000DFFF)) {
				c = 0x00010000 + ((c & 0x000003FF) << 10) + (d & 0x000003FF);
				index++;
			}
		}	
		length += mxStringByteLength(c);
	}		
	mxMeterSome(count);
	mxResult->value.string = (txString)fxNewChunk(the, length + 1);
	mxResult->kind = XS_STRING_KIND;
	p = mxResult->value.string;
	index = 0;
	while (index < count) {
		c = mxArgv(index)->value.integer;
		index++;
		if (index < count) {
			txInteger d = mxArgv(index)->value.integer;
			if ((0x0000D800 <= c) && (c <= 0x0000DBFF) && (0x0000DC00 <= d) && (d <= 0x0000DFFF)) {
				c = 0x00010000 + ((c & 0x000003FF) << 10) + (d & 0x000003FF);
				index++;
			}
		}	
		p = mxStringByteEncode(p, c);
	}	
	*p = 0;
}

void fx_String_fromCodePoint(txMachine* the)
{
	txInteger length = 0;
	txInteger count = mxArgc;
	txInteger index = 0;
	txInteger character; 
	txString p;
	while (index < count) {
		txNumber number = fxToNumber(the, mxArgv(index));
		txNumber check = c_trunc(number);
		if (number != check)
			mxRangeError("invalid code point %lf", number);
		if ((number < 0) || (0x10FFFF < number))
			mxRangeError("invalid code point %lf", number);
		mxArgv(index)->value.integer = (txInteger)number;
		mxArgv(index)->kind = XS_INTEGER_KIND;
		index++;
	}
	index = 0;
	while (index < count) {
		character = mxArgv(index)->value.integer;
		length += mxStringByteLength(character);
		index++;
	}
	mxMeterSome(count);
	mxResult->value.string = (txString)fxNewChunk(the, length + 1);
	mxResult->kind = XS_STRING_KIND;
	p = mxResult->value.string;
	index = 0;
	while (index < count) {
		character = mxArgv(index)->value.integer;
		p = mxStringByteEncode(p, character);
		index++;
	}	
	*p = 0;
}

void fx_String_raw(txMachine* the)
{
	txInteger argCount = mxArgc;
	txSlot* raw;
	txInteger rawCount;
	if (argCount > 0)
		fxToInstance(the, mxArgv(0));
	else
		mxTypeError("cannot coerce undefined to object");
	mxPushSlot(mxArgv(0));
	mxGetID(mxID(_raw));
	raw = the->stack;
	mxPushSlot(raw);
	mxGetID(mxID(_length));
	rawCount = fxToInteger(the, the->stack);
	mxPop();
	if (rawCount <= 0) {
		mxResult->value = mxEmptyString.value;
		mxResult->kind = mxEmptyString.kind;
	}
	else {
		txSlot* list;
		txInteger index = 0;
		txSlot* item;
		txInteger size;
		list = item = fxNewInstance(the);
		mxPushSlot(list);
		for (;;) {
			mxPushSlot(raw);
			mxGetIndex(index);
			fxToString(the, the->stack);
			item = item->next = fxNewSlot(the);
			mxPullSlot(item);
			index++;
			if (index == rawCount)
				break;
			if (index < argCount) {
				mxPushSlot(mxArgv(index));
				fxToString(the, the->stack);
			}
			else
				mxPush(mxEmptyString);
			item = item->next = fxNewSlot(the);
			mxPullSlot(item);
		}
		size = 0;
		item = list->next;
		while (item) {
			item->value.key.sum = mxStringLength(item->value.string);
			size += item->value.key.sum;
			item = item->next;
		}
		size++;
		mxResult->value.string = (txString)fxNewChunk(the, size);
		size = 0;
		item = list->next;
		while (item) {
			c_memcpy(mxResult->value.string + size, item->value.string, item->value.key.sum);
			size += item->value.key.sum;
			item = item->next;
		}
		mxResult->value.string[size] = 0;
		mxPop();
		mxResult->kind = XS_STRING_KIND;
	}
	mxPop();
}

void fx_String_prototype_at(txMachine* the)
{
	txString string = fxCoerceToString(the, mxThis);
	txNumber length = fxUnicodeLength(string);
	txNumber index = (mxArgc > 0) ? c_trunc(fxToNumber(the, mxArgv(0))) : C_NAN;
	if (c_isnan(index) || (index == 0))
		index = 0;
	if (index < 0)
		index = length + index;
	if ((0 <= index) && (index < length)) {
		txInteger from = fxUnicodeToUTF8Offset(mxThis->value.string, (txIndex)index);
		if (from >= 0) {
			txInteger to = fxUnicodeToUTF8Offset(mxThis->value.string, (txIndex)(index + 1));
			if (to >= 0) {
				mxResult->value.string = fxNewChunk(the, to - from + 1);
				c_memcpy(mxResult->value.string, mxThis->value.string + from, to - from);
				mxResult->value.string[to - from] = 0;
				mxResult->kind = XS_STRING_KIND;
			}
		}
	}
}

void fx_String_prototype_charAt(txMachine* the)
{
	txInteger anOffset;
	txInteger aLength;
	
	fxCoerceToString(the, mxThis);
	if ((mxArgc > 0) && (mxArgv(0)->kind != XS_UNDEFINED_KIND)) {
		anOffset = fxToInteger(the, mxArgv(0));
		if (anOffset < 0) goto fail;
	}
	else
		anOffset = 0;

	anOffset = fxUnicodeToUTF8Offset(mxThis->value.string, anOffset);
	if (anOffset < 0) goto fail;

	aLength = fxUnicodeToUTF8Offset(mxThis->value.string + anOffset, 1);
	if (aLength < 0) goto fail;

	mxResult->value.string = (txString)fxNewChunk(the, aLength + 1);
	c_memcpy(mxResult->value.string, mxThis->value.string + anOffset, aLength);
	mxResult->value.string[aLength] = 0;
	mxResult->kind = XS_STRING_KIND;
	return;

fail:
	mxResult->value.string = mxEmptyString.value.string;
	mxResult->kind = mxEmptyString.kind;
}

void fx_String_prototype_charCodeAt(txMachine* the)
{
	txInteger anOffset;

	fxCoerceToString(the, mxThis);
	if ((mxArgc > 0) && (mxArgv(0)->kind != XS_UNDEFINED_KIND)) {
		anOffset = fxToInteger(the, mxArgv(0));
		if (anOffset < 0) goto fail;
	}
	else
		anOffset = 0;

	anOffset = fxUnicodeToUTF8Offset(mxThis->value.string, anOffset);
	if (anOffset < 0) goto fail;

	if (fxUnicodeToUTF8Offset(mxThis->value.string + anOffset, 1) < 0)
		goto fail;

	fxUTF8Decode(mxThis->value.string + anOffset, &mxResult->value.integer);
	mxResult->kind = XS_INTEGER_KIND;
	return;

fail:
	mxResult->value.number = C_NAN;
	mxResult->kind = XS_NUMBER_KIND;
}

void fx_String_prototype_compare(txMachine* the)
{
	fxReport(the, "# Use standard String.prototype.localeCompare instead of soon obsolete String.prototype.compare\n");
	fx_String_prototype_localeCompare(the);
}

void fx_String_prototype_codePointAt(txMachine* the)
{
	txString string = fxCoerceToString(the, mxThis);
	txInteger length = fxUnicodeLength(string);
	txNumber at = (mxArgc > 0) ? fxToNumber(the, mxArgv(0)) : 0;
	if (c_isnan(at))
		at = 0;
	if ((0 <= at) && (at < (txNumber)length)) {
		txInteger offset = fxUnicodeToUTF8Offset(mxThis->value.string, (txInteger)at);
		length = fxUnicodeToUTF8Offset(mxThis->value.string + offset, 1);
		if ((offset >= 0) && (length > 0)) {
			mxStringByteDecode(mxThis->value.string + offset, &mxResult->value.integer);
			mxResult->kind = XS_INTEGER_KIND;
		}
	}
}

void fx_String_prototype_concat(txMachine* the)
{
	txInteger aCount;
	txInteger aLength;
	txInteger anIndex;
	
	fxCoerceToString(the, mxThis);
	aCount = mxArgc;
	aLength = mxStringLength(mxThis->value.string);
	for (anIndex = 0; anIndex < aCount; anIndex++)
		aLength = fxAddChunkSizes(the, aLength, mxStringLength(fxToString(the, mxArgv(anIndex))));
	mxResult->value.string = (txString)fxNewChunk(the, fxAddChunkSizes(the, aLength, 1));
	mxResult->kind = XS_STRING_KIND;
	c_strcpy(mxResult->value.string, mxThis->value.string);
	for (anIndex = 0; anIndex < aCount; anIndex++)
		c_strcat(mxResult->value.string, mxArgv(anIndex)->value.string);
	mxMeterSome(aCount);
}

void fx_String_prototype_endsWith(txMachine* the)
{
	txString string = fxCoerceToString(the, mxThis);
	txInteger length = fxUnicodeLength(string);
	txString searchString;
	txInteger searchLength;
	txInteger offset;
	mxResult->kind = XS_BOOLEAN_KIND;
	mxResult->value.boolean = 0;
	if (mxArgc < 1)
		return;
	if (fxIsRegExp(the, mxArgv(0)))
		mxTypeError("future editions");
	searchString = fxToString(the, mxArgv(0));
	offset = fxArgToPosition(the, 1, length, length);
	string = mxThis->value.string;
	searchString = mxArgv(0)->value.string;
	searchLength = mxStringLength(searchString);
	offset = fxUnicodeToUTF8Offset(string, offset);
	if (offset < searchLength)
		return;
	mxMeterSome(fxUnicodeLength(searchString));
	if (!c_strncmp(string + offset - searchLength, searchString, searchLength))
		mxResult->value.boolean = 1;
}

static txString fx_String_prototype_includes_aux(txMachine* the, txString string, txSize stringLength, txString searchString, txSize searchLength)
{
	txString result = string;
	txString limit = string + stringLength - searchLength;
	while (result <= limit) {
		txU1 c;
		txU1* p = (txU1*)result;
		txU1* q = (txU1*)searchString;
		while ((c = c_read8(q)) && (c_read8(p) == c)) {
			mxMeterSome(((c & 0xC0) != 0x80) ? 1 : 0);
			p++;
			q++;
		}
		if (c)
			result++;
		else
			return result;
	}
	return C_NULL;
}

void fx_String_prototype_includes(txMachine* the)
{
	txString string = fxCoerceToString(the, mxThis);
	txInteger length = fxUnicodeLength(string);
	txString searchString;
	txInteger searchLength;
	txInteger offset;
	mxResult->kind = XS_BOOLEAN_KIND;
	mxResult->value.boolean = 0;
	if (mxArgc < 1)
		return;
	if (fxIsRegExp(the, mxArgv(0)))
		mxTypeError("future editions");
	searchString = fxToString(the, mxArgv(0));
	offset = fxArgToPosition(the, 1, 0, length);
	string = mxThis->value.string;
	length = mxStringLength(string);
	searchString = mxArgv(0)->value.string;
	searchLength = mxStringLength(searchString);
	offset = fxUnicodeToUTF8Offset(string, offset);
	if ((length - offset) < searchLength)
		return;
	if (fx_String_prototype_includes_aux(the, string + offset, length - offset, searchString, searchLength))
		mxResult->value.boolean = 1;
}

void fx_String_prototype_indexOf(txMachine* the)
{
	txString aString;
	txString aSubString;
	txInteger aLength;
	txInteger aSubLength;
	txInteger anOffset;
	txNumber aNumber;
	txInteger aLimit;
	
	aString = fxCoerceToString(the, mxThis);
	if (mxArgc < 1) {
		mxResult->value.integer = -1;
		mxResult->kind = XS_INTEGER_KIND;
		return;
	}
	aSubString = fxToString(the, mxArgv(0));
	aString = mxThis->value.string;
	aLength = fxUnicodeLength(aString);
	aSubLength = fxUnicodeLength(aSubString);
	anOffset = 0;
	if ((mxArgc > 1) && (mxArgv(1)->kind != XS_UNDEFINED_KIND)) {
		aNumber = fxToNumber(the, mxArgv(1));
		anOffset = (c_isnan(aNumber)) ? 0 : (aNumber < 0) ? 0 : (aNumber > aLength) ? aLength : (txInteger)c_floor(aNumber);

		aString = mxThis->value.string;
		aSubString = mxArgv(0)->value.string;
	}
	if (anOffset + aSubLength <= aLength) {
		anOffset = fxUnicodeToUTF8Offset(aString, anOffset);
		aLimit = mxStringLength(aString) - mxStringLength(aSubString);
		while (anOffset <= aLimit) {
			txU1 c;
			txU1* p = (txU1*)aString + anOffset;
			txU1* q = (txU1*)aSubString;
			while ((c = c_read8(q)) && (c_read8(p) == c)) {
				mxMeterSome(((c & 0xC0) != 0x80) ? 1 : 0);
				p++;
				q++;
			}
			if (c)
				anOffset++;
			else
				break;
		}
		if (anOffset <= aLimit)
			anOffset = fxUTF8ToUnicodeOffset(aString, anOffset);
		else
			anOffset = -1;
	}
	else
		anOffset = -1;
	mxResult->value.integer = anOffset;
	mxResult->kind = XS_INTEGER_KIND;
}

static txInteger fx_String_prototype_indexOf_aux(txMachine* the, txString theString, 
		txInteger theLength, txInteger theOffset,
		txString theSubString, txInteger theSubLength, txInteger* theOffsets)
{
	theOffsets[0] = theOffset;
	theOffsets[1] = theOffset + theSubLength;
	while (theOffsets[1] <= theLength) {
		txU1 c;
		txU1* p = (txU1*)theString + theOffsets[0];
		txU1* q = (txU1*)theSubString;
		while ((c = c_read8(q)) && (c_read8(p) == c)) {
			mxMeterSome(((c & 0xC0) != 0x80) ? 1 : 0);
			p++;
			q++;
		}
		if (c) {
			theOffsets[0]++;
			theOffsets[1]++;
		}
		else
			return 1;
	}
	return 0;
}

void fx_String_prototype_lastIndexOf(txMachine* the)
{
	txString aString;
	txString aSubString;
	txInteger aLength;
	txInteger aSubLength;
	txInteger anOffset;
	txNumber aNumber;

	aString = fxCoerceToString(the, mxThis);
	if (mxArgc < 1) {
		mxResult->value.integer = -1;
		mxResult->kind = XS_INTEGER_KIND;
		return;
	}
	aSubString = fxToString(the, mxArgv(0));
	aString = mxThis->value.string;
	aLength = fxUnicodeLength(aString);
	aSubLength = fxUnicodeLength(aSubString);
	anOffset = aLength;
	if ((mxArgc > 1) && (mxArgv(1)->kind != XS_UNDEFINED_KIND)) {
		aNumber = fxToNumber(the, mxArgv(1));
		anOffset = (c_isnan(aNumber)) ? aLength : (aNumber < 0) ? 0 : (aNumber > aLength) ? aLength : (txInteger)c_floor(aNumber);
		anOffset += aSubLength;
		if (anOffset > aLength)
			anOffset = aLength;

		aString = mxThis->value.string;
		aSubString = mxArgv(0)->value.string;
	}
	if (anOffset - aSubLength >= 0) {
		anOffset = fxUnicodeToUTF8Offset(aString, anOffset - aSubLength);
		while (anOffset >= 0) {
			txU1 c;
			txU1* p = (txU1*)aString + anOffset;
			txU1* q = (txU1*)aSubString;
			while ((c = c_read8(q)) && (c_read8(p) == c)) {
				mxMeterSome(((c & 0xC0) != 0x80) ? 1 : 0);
				p++;
				q++;
			}
			if (c)
				anOffset--;
			else
				break;
		}		
		anOffset = fxUTF8ToUnicodeOffset(aString, anOffset);
	}
	else
		anOffset = -1;
	mxResult->value.integer = anOffset;
	mxResult->kind = XS_INTEGER_KIND;
}

void fx_String_prototype_localeCompare(txMachine* the)
{
	txString aString;
	txString bString;

	if (mxArgc < 1) {
		aString = fxCoerceToString(the, mxThis);
		bString = "undefined";
	}
	else {
		fxToString(the, mxArgv(0));
		aString = fxCoerceToString(the, mxThis);
		bString = mxArgv(0)->value.string;
	}
#ifdef mxMetering
	{
		txSize aLength = fxUnicodeLength(aString);
		txSize bLength = fxUnicodeLength(bString);
		if (aLength < bLength)
			the->meterIndex += aLength;
		else
			the->meterIndex += bLength;
	}
#endif	
	mxResult->value.integer = fxUTF8Compare(aString, bString);
	mxResult->kind = XS_INTEGER_KIND;
}

void fx_String_prototype_match(txMachine* the)
{	
	if (fx_String_prototype_withRegexp(the, mxID(_Symbol_match), 0, 1))
		return;
	fx_String_prototype_withoutRegexp(the, mxID(_Symbol_match), 0, 1);
}

void fx_String_prototype_matchAll(txMachine* the)
{	
	if (fx_String_prototype_withRegexp(the, mxID(_Symbol_matchAll), 1, 1))
		return;
	fx_String_prototype_withoutRegexp(the, mxID(_Symbol_matchAll), 1, 1);
}

void fx_String_prototype_normalize(txMachine* the)
{
	txString string = fxCoerceToString(the, mxThis);
	txFlag form;
	if ((mxArgc < 1) || (mxArgv(0)->kind == XS_UNDEFINED_KIND))
		form = 2;
	else {
		string = fxToString(the, mxArgv(0));
		if (!c_strcmp(string, "NFC"))
			form = 2;
		else if (!c_strcmp(string, "NFD"))
			form = 0;
		else if (!c_strcmp(string, "NFKC"))
			form = 3;
		else if (!c_strcmp(string, "NFKD"))
			form = 1;
		else
			mxRangeError("invalid form");
	}
	mxMeterSome(fxUnicodeLength(mxThis->value.string));
	mxResult->value.string = mxThis->value.string;
	mxResult->kind = XS_STRING_KIND;
#ifdef mxStringNormalize
	fxNormalizeString(the, mxResult, form);
#else	
	{
		txInteger max = 0;
		string = mxResult->value.string;
		for (;;) {
			txInteger c;
			string = mxStringByteDecode(string, &c);
			if (c == C_EOF)
				break;
			if (max < c)
				max = c;
		}
		if (max < 128) {
		}
		else if ((max < 256) && (form == 2)) {
		}
		else {
			mxRangeError("not built-in");
		}
	}
#endif
}

void fx_String_prototype_pad(txMachine* the, txBoolean flag)
{
	txString string = fxCoerceToString(the, mxThis), filler;
	txInteger stringLength = mxStringLength(string), fillerLength;
	txInteger stringSize = fxUnicodeLength(string), fillerSize;
	txInteger resultSize = (txInteger)fxArgToRange(the, 0, 0, 0, 0x7FFFFFFF);
	*mxResult = *mxThis;
	if (resultSize > stringSize) {
		if ((mxArgc <= 1) || (mxIsUndefined(mxArgv(1))))
			mxPushStringX(" ");
		else
			mxPushSlot(mxArgv(1));
		filler = fxToString(the, the->stack);
		fillerLength = mxStringLength(filler);
		fillerSize = fxUnicodeLength(filler);
		if (fillerSize > 0) {
			txInteger delta = resultSize - stringSize;
			txInteger count = delta / fillerSize;
			txInteger rest = fxUnicodeToUTF8Offset(filler, delta % fillerSize);
			txString result = mxResult->value.string = (txString)fxNewChunk(the, fxAddChunkSizes(the, fxAddChunkSizes(the, stringLength, fxMultiplyChunkSizes(the, fillerLength, count)), rest + 1));
			mxResult->kind = XS_STRING_KIND;
			string = fxToString(the, mxThis);
			filler = fxToString(the, the->stack);
			if (flag) {
				c_memcpy(result, string, stringLength);
				result += stringLength;
			}
			mxMeterSome(count);
			while (count) {
				c_memcpy(result, filler, fillerLength);
				count--;
				result += fillerLength;
			}
			if (rest) {
				mxMeterSome(1);
				c_memcpy(result, filler, rest);
				result += rest;
			}
			if (!flag) {
				c_memcpy(result, string, stringLength);
				result += stringLength;
			}
			*result = 0;
		}
		mxPop();
	}
}

void fx_String_prototype_padEnd(txMachine* the)
{
	fx_String_prototype_pad(the, 1);
}

void fx_String_prototype_padStart(txMachine* the)
{
	fx_String_prototype_pad(the, 0);
}

void fx_String_prototype_repeat(txMachine* the)
{
	txString string = fxCoerceToString(the, mxThis), result;
	txInteger length = mxStringLength(string);
	txInteger count = 0;
	txSlot *arg = mxArgv(0);
	if ((mxArgc > 0) && (arg->kind != XS_UNDEFINED_KIND)) {
		if (XS_INTEGER_KIND == arg->kind) {
			count = arg->value.integer;
			if (count < 0)
				mxRangeError("out of range count");
		}
		else {
			txNumber value = c_trunc(fxToNumber(the, arg));
			if (c_isnan(value))
				count = 0;
			else {
				if ((value < 0) || (0x7FFFFFFF < value))
					mxRangeError("out of range count");
				count = (txInteger)value;
			}
		}
	}
	mxMeterSome(count);
	result = mxResult->value.string = (txString)fxNewChunk(the, fxAddChunkSizes(the, fxMultiplyChunkSizes(the, length, count), 1));
	mxResult->kind = XS_STRING_KIND;
	string = fxToString(the, mxThis);
	if (length) {
		while (count) {
			c_memcpy(result, string, length);
			count--;
			result += length;
		}
	}
	*result = 0;
	string = mxThis->value.string;		//@@ unused!
}

void fx_String_prototype_replace(txMachine* the)
{
	txString string;
	txSlot* match;
	txSize size;
	txSize matchLength;
	txSlot* function = C_NULL;
	txSlot* replace;

	if (fx_String_prototype_withRegexp(the, mxID(_Symbol_replace), 0, 2))
		return;
	string = fxToString(the, mxThis);
	if (mxArgc <= 0)
		mxPushUndefined();
	else
		mxPushSlot(mxArgv(0));
	match = the->stack;
	fxToString(the, match);
	if (mxArgc <= 1)
		mxPushUndefined();
	else
		mxPushSlot(mxArgv(1));
	if (mxIsReference(the->stack) && mxIsFunction(the->stack->value.reference))
		function = the->stack;
	else {		
		replace = the->stack;
		fxToString(the, replace);
	}
	size = mxStringLength(mxThis->value.string);
	matchLength = mxStringLength(match->value.string);
	string = fx_String_prototype_includes_aux(the, mxThis->value.string, size, match->value.string, matchLength);
	if (string) {
		txSize offset = mxPtrDiff(string - mxThis->value.string);
		txSize replaceLength;
 		fx_String_prototype_replaceAux(the, size, offset, function, match, matchLength, replace);
		replaceLength = mxStringLength(the->stack->value.string);
		mxResult->value.string = (txString)fxNewChunk(the, size - matchLength + replaceLength + 1);
		c_memcpy(mxResult->value.string, mxThis->value.string, offset);
		c_memcpy(mxResult->value.string + offset, the->stack->value.string, replaceLength);
		c_memcpy(mxResult->value.string + offset + replaceLength, mxThis->value.string + offset + matchLength, size - (offset + matchLength));
		mxResult->value.string[size - matchLength + replaceLength] = 0;
		mxResult->kind = XS_STRING_KIND;
		mxPop();
	}
	else
		*mxResult = *mxThis;
	mxPop();
	mxPop();
}

void fx_String_prototype_replaceAll(txMachine* the)
{
	txSlot* match;
	txSlot* function = C_NULL;
	txSlot* replace;
	txInteger size;
	txInteger matchLength;
	txInteger resultSize = 0;
	txSlot* list;
	txSlot* item;
	txInteger offset = 0;

	if (fx_String_prototype_withRegexp(the, mxID(_Symbol_replace), 1, 2))
		return;
	fxToString(the, mxThis);
	if (mxArgc <= 0)
		mxPushUndefined();
	else
		mxPushSlot(mxArgv(0));
	match = the->stack;
	fxToString(the, match);
	if (mxArgc <= 1)
		mxPushUndefined();
	else
		mxPushSlot(mxArgv(1));
	if (mxIsReference(the->stack) && mxIsFunction(the->stack->value.reference))
		function = the->stack;
	else {		
		replace = the->stack;
		fxToString(the, replace);
	}
	size = mxStringLength(mxThis->value.string);
	matchLength = mxStringLength(match->value.string);
	
	list = item = fxNewInstance(the);
	mxPushSlot(list);
	
	if (!matchLength) {
		fx_String_prototype_replaceAux(the, size, offset, function, match, matchLength, replace);
		item = item->next = fxNewSlot(the);
		mxPullSlot(item);
		item->value.key.sum = mxStringLength(item->value.string);
		resultSize += item->value.key.sum;
	}
	while (offset < size) {
		txInteger current;
		if (!matchLength) {
			current = offset + fxUnicodeToUTF8Offset(mxThis->value.string + offset, 1);
		}
		else {
			txString string = fx_String_prototype_includes_aux(the, mxThis->value.string + offset, size - offset, match->value.string, matchLength);
            if (string)
				current = mxPtrDiff(string - mxThis->value.string);
			else
				current = size;
		}
		if (offset < current) {
			txInteger length = current - offset;
			item = item->next = fxNewSlot(the);
			item->value.string = (txString)fxNewChunk(the, length + 1);
			c_memcpy(item->value.string, mxThis->value.string + offset, length);
			item->value.string[length] = 0;
			item->kind = XS_STRING_KIND;
			item->value.key.sum = length;
			resultSize += length;
		}
		if ((!matchLength) || (current < size)) {
 			fx_String_prototype_replaceAux(the, size, current, function, match, matchLength, replace);
			item = item->next = fxNewSlot(the);
            mxPullSlot(item);
			item->value.key.sum = mxStringLength(item->value.string);
			resultSize += item->value.key.sum;
		}
		offset = current + matchLength;
	}		
	resultSize++;
	mxResult->value.string = (txString)fxNewChunk(the, resultSize);
	offset = 0;
	item = list->next;
	while (item) {
		c_memcpy(mxResult->value.string + offset, item->value.string, item->value.key.sum);
		offset += item->value.key.sum;
		item = item->next;
	}
	mxResult->value.string[offset] = 0;
	mxResult->kind = XS_STRING_KIND;
	
	mxPop();
	
	mxPop();
	mxPop();
}

void fx_String_prototype_replaceAux(txMachine* the, txInteger size, txInteger offset, txSlot* function, txSlot* match, txInteger matchLength, txSlot* replace)
{
	if (function) {
		mxPushUndefined();
		mxPushSlot(function);
		mxCall();
		mxPushSlot(match);
		mxPushInteger(fxUTF8ToUnicodeOffset(mxThis->value.string, offset));
		mxPushSlot(mxThis);
		mxRunCount(3);
		fxToString(the, the->stack);
	}
	else
		fxPushSubstitutionString(the, mxThis, size, offset, match, matchLength, 0, C_NULL, C_NULL, replace);
}

void fx_String_prototype_search(txMachine* the)
{
	if (fx_String_prototype_withRegexp(the, mxID(_Symbol_search), 0, 1))
		return;
	fx_String_prototype_withoutRegexp(the, mxID(_Symbol_search), 0, 1);
}

void fx_String_prototype_slice(txMachine* the)
{
	txString string = fxCoerceToString(the, mxThis);
	txInteger length = fxUnicodeLength(string);
	txNumber start = fxArgToIndex(the, 0, 0, length);
	txNumber end = fxArgToIndex(the, 1, length, length);
	if (start < end) {
		txInteger offset = fxUnicodeToUTF8Offset(mxThis->value.string, (txInteger)start);
		length = fxUnicodeToUTF8Offset(mxThis->value.string + offset, (txInteger)(end - start));
		if ((offset >= 0) && (length > 0)) {
			mxResult->value.string = (txString)fxNewChunk(the, length + 1);
			c_memcpy(mxResult->value.string, mxThis->value.string + offset, length);
			mxResult->value.string[length] = 0;
			mxResult->kind = XS_STRING_KIND;
			return;
		}
	}
	mxResult->value.string = mxEmptyString.value.string;
	mxResult->kind = mxEmptyString.kind;
}

void fx_String_prototype_split(txMachine* the)
{
	txString aString;
	txInteger aLength;
	txIndex aLimit;
	txSlot* anArray;
	txSlot* anItem;
	txInteger anOffset;
	txInteger aCount;
	txString aSubString;
	txInteger aSubLength;
	txInteger aSubOffset;
	txInteger subOffsets[2];

	if (fx_String_prototype_withRegexp(the, mxID(_Symbol_split), 0, 2))
		return;
	aString = fxToString(the, mxThis);
	aLength = mxStringLength(aString);
	aLimit = ((mxArgc > 1) && (!mxIsUndefined(mxArgv(1)))) ? (txIndex)fxToUnsigned(the, mxArgv(1)) : 0xFFFFFFFF;
	mxPush(mxArrayPrototype);
	anArray = fxNewArrayInstance(the);
	mxPullSlot(mxResult);
	fxGetInstance(the, mxResult);
	anItem = fxLastProperty(the, anArray);
	if ((mxArgc < 1) || (mxArgv(0)->kind == XS_UNDEFINED_KIND)) {
		if (!aLimit)
			goto bail;
		fx_String_prototype_split_aux(the, mxThis, anArray, anItem, 0, aLength);
		goto bail;
	}
	aSubString = fxToString(the, mxArgv(0));
	aSubLength = mxStringLength(aSubString);
	if (!aLimit)
		goto bail;
	if (aSubLength == 0) {
		anOffset = 0;
		while (anOffset < aLength) {
			aSubOffset = anOffset + fxUnicodeToUTF8Offset(mxThis->value.string + anOffset, 1);
			anItem = fx_String_prototype_split_aux(the, mxThis, anArray, anItem, anOffset, aSubOffset);
			if (anArray->next->value.array.length >= aLimit)
				goto bail;
			anOffset = aSubOffset;
		}
	}
	else if (aLength == 0) {
		fx_String_prototype_split_aux(the, mxThis, anArray, anItem, 0, 0);
	}
	else {
		anOffset = 0;
		for (;;) {
			aCount = fx_String_prototype_indexOf_aux(the, mxThis->value.string, aLength, anOffset, mxArgv(0)->value.string, aSubLength, subOffsets);
			if (aCount <= 0)
				break;
			if (anOffset <= subOffsets[0]) {
				anItem = fx_String_prototype_split_aux(the, mxThis, anArray, anItem, anOffset, subOffsets[0]);
				if (anArray->next->value.array.length >= aLimit)
					goto bail;
			}
			anOffset = subOffsets[1];
		}
		if (anOffset <= aLength)
			fx_String_prototype_split_aux(the, mxThis, anArray, anItem, anOffset, aLength);
	}
bail:
	fxCacheArray(the, anArray);
}

txSlot* fx_String_prototype_split_aux(txMachine* the, txSlot* theString, txSlot* theArray, txSlot* theItem, txInteger theStart, txInteger theStop)
{
	theStop -= theStart;
	theItem->next = fxNewSlot(the);
	theItem = theItem->next;
	theItem->next = C_NULL;
	if (theStart >= 0) {
		theItem->value.string = (txString)fxNewChunk(the, theStop + 1);
		c_memcpy(theItem->value.string, theString->value.string + theStart, theStop);
		theItem->value.string[theStop] = 0;
		theItem->kind = XS_STRING_KIND;
	}
	theArray->next->value.array.length++;
	return theItem;
}

void fx_String_prototype_startsWith(txMachine* the)
{
	txString string = fxCoerceToString(the, mxThis);
	txInteger length = fxUnicodeLength(string);
	txString searchString;
	txInteger searchLength;
	txInteger offset;
	mxResult->kind = XS_BOOLEAN_KIND;
	mxResult->value.boolean = 0;
	if (mxArgc < 1)
		return;
	if (fxIsRegExp(the, mxArgv(0)))
		mxTypeError("future editions");
	searchString = fxToString(the, mxArgv(0));
	offset = fxArgToPosition(the, 1, 0, length);
	string = mxThis->value.string;
	length = mxStringLength(string);
	searchString = mxArgv(0)->value.string;
	searchLength = mxStringLength(searchString);
	offset = fxUnicodeToUTF8Offset(string, offset);
	if (length - offset < searchLength)
		return;
	mxMeterSome(fxUnicodeLength(searchString));
	if (!c_strncmp(string + offset, searchString, searchLength))
		mxResult->value.boolean = 1;
}

void fx_String_prototype_substr(txMachine* the)
{
	txString string = fxCoerceToString(the, mxThis);
	txInteger size = fxUnicodeLength(string);
	txInteger start = (txInteger)fxArgToIndex(the, 0, 0, size);
	txInteger stop = size;
	if ((mxArgc > 1) && (mxArgv(1)->kind != XS_UNDEFINED_KIND)) {
		stop = start + fxToInteger(the, mxArgv(1));
		if (stop > size)
			stop = size;
	}	
	if (start < stop) {
		txInteger length;
		start = fxUnicodeToUTF8Offset(mxThis->value.string, start);
		stop = fxUnicodeToUTF8Offset(mxThis->value.string, stop);
		length = stop - start;
		mxResult->value.string = (txString)fxNewChunk(the, length + 1);
		c_memcpy(mxResult->value.string, mxThis->value.string + start, length);
		mxResult->value.string[length] = 0;
		mxResult->kind = XS_STRING_KIND;
	}
	else {
		mxResult->value.string = mxEmptyString.value.string;
		mxResult->kind = mxEmptyString.kind;
	}
}

void fx_String_prototype_substring(txMachine* the)
{
	txString aString;
	txInteger aLength;
	txNumber aNumber;
	txInteger aStart;
	txInteger aStop;
	txInteger anOffset;

	aString = fxCoerceToString(the, mxThis);
	aLength = fxUnicodeLength(aString);
	aStart = 0;
	aStop = aLength;
	if ((mxArgc > 0) && (mxArgv(0)->kind != XS_UNDEFINED_KIND)) {
		aNumber = fxToNumber(the, mxArgv(0));
		aStart = (c_isnan(aNumber)) ? 0 : (aNumber < 0) ? 0 : (aNumber > aLength) ? aLength : (txInteger)c_floor(aNumber);
	}
	if ((mxArgc > 1) && (mxArgv(1)->kind != XS_UNDEFINED_KIND)) {
		aNumber = fxToNumber(the, mxArgv(1));
		aStop = (c_isnan(aNumber)) ? 0 : (aNumber < 0) ? 0 : (aNumber > aLength) ? aLength : (txInteger)c_floor(aNumber);
	}
	if (aStart > aStop) {
		aLength = aStart;
		aStart = aStop;
		aStop = aLength;
	}
	if (aStart < aStop) {
		anOffset = fxUnicodeToUTF8Offset(mxThis->value.string, aStart);
		aLength = fxUnicodeToUTF8Offset(mxThis->value.string + anOffset, aStop - aStart);
		if ((anOffset >= 0) && (aLength > 0)) {
			mxResult->value.string = (txString)fxNewChunk(the, aLength + 1);
			c_memcpy(mxResult->value.string, mxThis->value.string + anOffset, aLength);
			mxResult->value.string[aLength] = 0;
			mxResult->kind = XS_STRING_KIND;
		}
		else {
			mxResult->value.string = mxEmptyString.value.string;
			mxResult->kind = mxEmptyString.kind;
		}
	}
	else {
		mxResult->value.string = mxEmptyString.value.string;
		mxResult->kind = mxEmptyString.kind;
	}
}

void fx_String_prototype_toLowerCase(txMachine* the)
{
	fxCoerceToString(the, mxThis);
	fx_String_prototype_toCase(the, 0);
}

void fx_String_prototype_toUpperCase(txMachine* the)
{
	fxCoerceToString(the, mxThis);
	fx_String_prototype_toCase(the, 1);
}

void fx_String_prototype_trim(txMachine* the)
{
	fx_String_prototype_trimAux(the, 1, 1);
}

void fx_String_prototype_trimAux(txMachine* the, txBoolean trimStart, txBoolean trimEnd)
{
	txString string = fxCoerceToString(the, mxThis), start;
	txInteger offset, length;
	if (trimStart) {
		start = fxSkipSpaces(string);
		offset = mxPtrDiff(start - string);
		mxMeterSome(offset);
	}
	else {
		start = string;
		offset = 0;
	}
	if (trimEnd) {
		txString current = start;
		txString end = current;
		while (c_read8(current)) {
			end = current + 1;
			current = fxSkipSpaces(end);
		}
		length = mxPtrDiff(end - start);
		mxMeterSome(length);
	}
	else
		length = mxStringLength(start);
	mxResult->value.string = (txString)fxNewChunk(the, length + 1);
	c_memcpy(mxResult->value.string, mxThis->value.string + offset, length);
	mxResult->value.string[length] = 0;
	mxResult->kind = XS_STRING_KIND;
}

void fx_String_prototype_trimEnd(txMachine* the)
{
	fx_String_prototype_trimAux(the, 0, 1);
}

void fx_String_prototype_trimStart(txMachine* the)
{
	fx_String_prototype_trimAux(the, 1, 0);
}

void fx_String_prototype_valueOf(txMachine* the)
{
	txSlot* slot = fxCheckString(the, mxThis);
	if (!slot) mxTypeError("this is no string");
	mxResult->kind = slot->kind;
	mxResult->value = slot->value;
}

txBoolean fx_String_prototype_withRegexp(txMachine* the, txID id, txBoolean global, txInteger count)
{
	if (mxIsUndefined(mxThis))
		mxTypeError("this is undefined");
	if (mxIsNull(mxThis))
		mxTypeError("this is null");
	if (mxArgc > 0) {
		txSlot* regexp = mxArgv(0);
		if (!mxIsUndefined(regexp) && !mxIsNull(regexp)) {
			if (global && fxIsRegExp(the, regexp)) {
				mxPushSlot(regexp);
				mxGetID(mxID(_flags));
				if (!c_strchr(fxToString(the, the->stack), 'g'))
					mxTypeError("regexp has no g flag");
				mxPop();
			}
			mxPushSlot(regexp);
			mxPushSlot(regexp);
			mxGetID(id);
			if (!mxIsUndefined(the->stack) && !mxIsNull(the->stack)) {
				mxCall();
				mxPushSlot(mxThis);
				if (count > 1) {
					if (mxArgc > 1)
						mxPushSlot(mxArgv(1));
					else
						mxPushUndefined();
				}
				mxRunCount(count);
				mxPullSlot(mxResult);
				return 1;
			}
			mxPop();
			mxPop();
		}
	}
	return 0;
}

void fx_String_prototype_withoutRegexp(txMachine* the, txID id, txBoolean global, txInteger count)
{
	fxToString(the, mxThis);
	mxPush(mxRegExpPrototype);
	fxNewRegExpInstance(the);
	mxPush(mxInitializeRegExpFunction);
	mxCall();
	if (mxArgc > 0)
		mxPushSlot(mxArgv(0));
	else
		mxPushUndefined();
	if (global)
		mxPushStringX("g");
	else
		mxPushUndefined();
	mxRunCount(2);
	mxDub();
	mxGetID(id);
	mxCall();
	mxPushSlot(mxThis);
	if (count > 1) {
		if (mxArgc > 1)
			mxPushSlot(mxArgv(1));
		else
			mxPushUndefined();
	}
	mxRunCount(count);
	mxPullSlot(mxResult);
}

txSlot* fxCheckString(txMachine* the, txSlot* it)
{
	txSlot* result = C_NULL;
	if ((it->kind == XS_STRING_KIND) || (it->kind == XS_STRING_X_KIND))
		result = it;
	else if (it->kind == XS_REFERENCE_KIND) {
		it = it->value.reference->next;
		if (it && (it->flag & XS_INTERNAL_FLAG) && ((it->kind == XS_STRING_KIND) || (it->kind == XS_STRING_X_KIND)))
			result = it;
	}
	return result;
}

txString fxCoerceToString(txMachine* the, txSlot* theSlot)
{
	if (theSlot->kind == XS_UNDEFINED_KIND)
		mxTypeError("this is undefined");
	if (theSlot->kind == XS_NULL_KIND)
		mxTypeError("this is null");
	return fxToString(the, theSlot);
}

void fx_String_prototype_iterator(txMachine* the)
{
	txSlot* property;
	fxCoerceToString(the, mxThis);
	mxPush(mxStringIteratorPrototype);
	property = fxLastProperty(the, fxNewIteratorInstance(the, mxThis, mxID(_String)));
	property = fxNextIntegerProperty(the, property, (txInteger)c_strlen(mxThis->value.string), XS_NO_ID, XS_INTERNAL_FLAG);
	mxPullSlot(mxResult);
}

void fx_String_prototype_iterator_next(txMachine* the)
{
	txSlot* iterator = fxCheckIteratorInstance(the, mxThis, mxID(_String));
	txSlot* result = iterator->next;
	txSlot* iterable = result->next;
	txSlot* index = iterable->next;
	txSlot* length = index->next;
	txSlot* value = fxCheckIteratorResult(the, result);
	txSlot* done = value->next;
	if (index->value.integer < length->value.integer) {
		txInteger character, size;
		txString string = mxStringByteDecode(iterable->value.string + index->value.integer, &character);
		index->value.integer = mxPtrDiff(string - iterable->value.string);
		size = mxStringByteLength(character);
		value->value.string = (txString)fxNewChunk(the, size + 1);
		string = mxStringByteEncode(value->value.string, character);
		*string = 0;
		value->kind = XS_STRING_KIND;
	}
	else {
		value->kind = XS_UNDEFINED_KIND;
		done->value.boolean = 1;
	}
	mxResult->kind = result->kind;
	mxResult->value = result->value;
}

txInteger fxArgToPosition(txMachine* the, txInteger argi, txInteger index, txInteger length)
{
	if ((mxArgc > argi) && (mxArgv(argi)->kind != XS_UNDEFINED_KIND)) {
		txNumber i = c_trunc(fxToNumber(the, mxArgv(argi)));
		if (c_isnan(i))
			i = 0;
		if (i < 0)
			index = 0;
		else if (i > (txNumber)length)
			index = length;
		else
			index = (txInteger)i;
	}
	return index;
}

void fxPushSubstitutionString(txMachine* the, txSlot* string, txInteger size, txInteger offset, txSlot* match, txInteger length, txInteger count, txSlot* captures, txSlot* groups, txSlot* replace)
{
	txString r;
	txInteger m;
	txInteger l;
	txBoolean flag;
	txByte c, d;
	txInteger i, j;
	txSlot* capture;
	txString s;
	r = replace->value.string;
	m = 0;
	l = 0;
	flag = 0;
	while ((c = c_read8(r++))) {
		if (m <= l)
			m = l;
		else
			fxAbort(the, XS_NOT_ENOUGH_MEMORY_EXIT);
		if (c == '$') {
			c = c_read8(r++);
			switch (c) {
			case '$':
				l++;
				flag = 1;
				break;
			case '&':
				l += length;
				flag = 1;
				break;
			case '`':
				l += offset;
				flag = 1;
				break;
			case '\'':
				l += size - (offset + length);
				flag = 1;
				break;
			case '<':
				if (groups && mxIsReference(groups)) {
					txString t = r;
					while ((d = c_read8(r))) {
						if (d == '>')
							break;
						r++;
					}
					if (d) {
						txInteger n = mxPtrDiff(r - t);
						txID name;
						if (n > 255)
							fxJump(the);
						c_memcpy(the->nameBuffer, t, n);
						the->nameBuffer[n] = 0;
						name = fxFindName(the, the->nameBuffer);
						if (name) {
 							mxPushSlot(groups);
							mxGetID(name);
							if (!mxIsUndefined(the->stack)) {
								fxToString(the, the->stack);
								l = fxAddChunkSizes(the, l, mxStringLength(the->stack->value.string));
							}
							mxPop();
						}
						r++;
						flag = 1;
					}
					else {
						r = t;
						l += 2;
					}
				}
				else {
					l += 2;
				}
				break;
			default:
				if (('0' <= c) && (c <= '9')) {
					i = c - '0';
					d = c_read8(r);
					if (('0' <= d) && (d <= '9')) {
						j = (i * 10) + d - '0';
						if ((0 < j) && (j <= count)) {
							i = j;
							r++;
						}
						else
							d = 0;
					}
					else
						d = 0;
					if ((0 < i) && (i <= count)) {
						capture = (captures + count - i);
						if (capture->kind != XS_UNDEFINED_KIND)
							l = fxAddChunkSizes(the, l, mxStringLength(capture->value.string));
						flag = 1;
					}
					else {
						l++;
						l++;
						if (d)
							l++;
					}
				}
				else {
					l++;
					if (c)
						l++;
				}
				break;
			}
			if (!c)
				break;
		}
		else
			l++;
	}
	if (m > l)
		fxAbort(the, XS_NOT_ENOUGH_MEMORY_EXIT);
	if (flag) {
		mxPushUndefined();
		the->stack->value.string = (txString)fxNewChunk(the, fxAddChunkSizes(the, l, 1));
		the->stack->kind = XS_STRING_KIND;
		r = replace->value.string;
		s = the->stack->value.string;
		while ((c = c_read8(r++))) {
			if (c == '$') {
				c = c_read8(r++);
				switch (c) {
				case '$':
					*s++ = c;
					break;
				case '&':
					l = length;
					c_memcpy(s, match->value.string, l);
					s += l;
					break;
				case '`':
					l = offset;
					c_memcpy(s, string->value.string, l);
					s += l;
					break;
				case '\'':
					l = size - (offset + length);
                    if (l > 0) {
                        c_memcpy(s, string->value.string + offset + length, l);
                        s += l;
                    }
					break;
				case '<':
					if (groups && mxIsReference(groups)) {
						txString t = r;
						while ((d = c_read8(r))) {
							if (d == '>')
								break;
							r++;
						}
						if (d) {
							txInteger n = mxPtrDiff(r - t);
							txID name;
							if (n > 255)
								fxJump(the);
							c_memcpy(the->nameBuffer, t, n);
							the->nameBuffer[n] = 0;
							name = fxFindName(the, the->nameBuffer);
							if (name) {
								mxPushSlot(groups);
								mxGetID(name);
								if (!mxIsUndefined(the->stack)) {
									fxToString(the, the->stack);
									l = mxStringLength(the->stack->value.string);
									c_memcpy(s, the->stack->value.string, l);
									s += l;
								}
								mxPop();
							}
							r++;
						}
						else {
							r = t;
							*s++ = '$';
							*s++ = '<';
						}
					}
					else {
						*s++ = '$';
						*s++ = '<';
					}
					break;
				default:
					if (('0' <= c) && (c <= '9')) {
						i = c - '0';
						d = c_read8(r);
						if (('0' <= d) && (d <= '9')) {
							j = (i * 10) + d - '0';
							if ((0 < j) && (j <= count)) {
								i = j;
								r++;
							}
							else
								d = 0;
						}
						else
							d = 0;
						if ((0 < i) && (i <= count)) {
							capture = (captures + count - i);
							if (capture->kind != XS_UNDEFINED_KIND) {
								l = mxStringLength(capture->value.string);
								c_memcpy(s, capture->value.string, l);
								s += l;
							}
						}
						else {
							*s++ = '$';
							*s++ = c;
							if (d)
								*s++ = d;
						}
					}
					else {
						*s++ = '$';
						if (c)
							*s++ = c;
					}
					break;
				}
				if (!c)
					break;
			}
			else
				*s++ = c;
		}
		*s = 0;
	}
	else
		mxPushSlot(replace);
}

#ifdef mxStringNormalize

typedef struct {
	txSlot* slot;
	txInteger* address;
	txInteger count;
	txInteger starterIndex;
} txNormalizeBuffer;

typedef struct {
	txU2 code;
	txU1 count;
	txU1 order;
} txCombination;

#define mxCombinationCount0 295
static const txCombination gxCombinationIndex0[mxCombinationCount0] ICACHE_XS6RO_ATTR = {
	{0x0300,21,230},{0x0315,1,232},{0x0316,4,220},{0x031A,1,232},{0x031B,1,216},{0x031C,5,220},{0x0321,2,202},{0x0323,4,220},
	{0x0327,2,202},{0x0329,11,220},{0x0334,5,1},{0x0339,4,220},{0x033D,8,230},{0x0345,1,240},{0x0346,1,230},{0x0347,3,220},
	{0x034A,3,230},{0x034D,2,220},{0x0350,3,230},{0x0353,4,220},{0x0357,1,230},{0x0358,1,232},{0x0359,2,220},{0x035B,1,230},
	{0x035C,1,233},{0x035D,2,234},{0x035F,1,233},{0x0360,2,234},{0x0362,1,233},{0x0363,13,230},{0x0483,5,230},{0x0591,1,220},
	{0x0592,4,230},{0x0596,1,220},{0x0597,3,230},{0x059A,1,222},{0x059B,1,220},{0x059C,6,230},{0x05A2,6,220},{0x05A8,2,230},
	{0x05AA,1,220},{0x05AB,2,230},{0x05AD,1,222},{0x05AE,1,228},{0x05AF,1,230},{0x05B0,1,10},{0x05B1,1,11},{0x05B2,1,12},
	{0x05B3,1,13},{0x05B4,1,14},{0x05B5,1,15},{0x05B6,1,16},{0x05B7,1,17},{0x05B8,1,18},{0x05B9,2,19},{0x05BB,1,20},
	{0x05BC,1,21},{0x05BD,1,22},{0x05BF,1,23},{0x05C1,1,24},{0x05C2,1,25},{0x05C4,1,230},{0x05C5,1,220},{0x05C7,1,18},
	{0x0610,8,230},{0x0618,1,30},{0x0619,1,31},{0x061A,1,32},{0x064B,1,27},{0x064C,1,28},{0x064D,1,29},{0x064E,1,30},
	{0x064F,1,31},{0x0650,1,32},{0x0651,1,33},{0x0652,1,34},{0x0653,2,230},{0x0655,2,220},{0x0657,5,230},{0x065C,1,220},
	{0x065D,2,230},{0x065F,1,220},{0x0670,1,35},{0x06D6,7,230},{0x06DF,4,230},{0x06E3,1,220},{0x06E4,1,230},{0x06E7,2,230},
	{0x06EA,1,220},{0x06EB,2,230},{0x06ED,1,220},{0x0711,1,36},{0x0730,1,230},{0x0731,1,220},{0x0732,2,230},{0x0734,1,220},
	{0x0735,2,230},{0x0737,3,220},{0x073A,1,230},{0x073B,2,220},{0x073D,1,230},{0x073E,1,220},{0x073F,3,230},{0x0742,1,220},
	{0x0743,1,230},{0x0744,1,220},{0x0745,1,230},{0x0746,1,220},{0x0747,1,230},{0x0748,1,220},{0x0749,2,230},{0x07EB,7,230},
	{0x07F2,1,220},{0x07F3,1,230},{0x07FD,1,220},{0x0816,4,230},{0x081B,9,230},{0x0825,3,230},{0x0829,5,230},{0x0859,3,220},
	{0x0898,1,230},{0x0899,3,220},{0x089C,4,230},{0x08CA,5,230},{0x08CF,5,220},{0x08D4,14,230},{0x08E3,1,220},{0x08E4,2,230},
	{0x08E6,1,220},{0x08E7,2,230},{0x08E9,1,220},{0x08EA,3,230},{0x08ED,3,220},{0x08F0,1,27},{0x08F1,1,28},{0x08F2,1,29},
	{0x08F3,3,230},{0x08F6,1,220},{0x08F7,2,230},{0x08F9,2,220},{0x08FB,5,230},{0x093C,1,7},{0x094D,1,9},{0x0951,1,230},
	{0x0952,1,220},{0x0953,2,230},{0x09BC,1,7},{0x09CD,1,9},{0x09FE,1,230},{0x0A3C,1,7},{0x0A4D,1,9},{0x0ABC,1,7},
	{0x0ACD,1,9},{0x0B3C,1,7},{0x0B4D,1,9},{0x0BCD,1,9},{0x0C3C,1,7},{0x0C4D,1,9},{0x0C55,1,84},{0x0C56,1,91},
	{0x0CBC,1,7},{0x0CCD,1,9},{0x0D3B,2,9},{0x0D4D,1,9},{0x0DCA,1,9},{0x0E38,2,103},{0x0E3A,1,9},{0x0E48,4,107},
	{0x0EB8,2,118},{0x0EBA,1,9},{0x0EC8,4,122},{0x0F18,2,220},{0x0F35,1,220},{0x0F37,1,220},{0x0F39,1,216},{0x0F71,1,129},
	{0x0F72,1,130},{0x0F74,1,132},{0x0F7A,4,130},{0x0F80,1,130},{0x0F82,2,230},{0x0F84,1,9},{0x0F86,2,230},{0x0FC6,1,220},
	{0x1037,1,7},{0x1039,2,9},{0x108D,1,220},{0x135D,3,230},{0x1714,2,9},{0x1734,1,9},{0x17D2,1,9},{0x17DD,1,230},
	{0x18A9,1,228},{0x1939,1,222},{0x193A,1,230},{0x193B,1,220},{0x1A17,1,230},{0x1A18,1,220},{0x1A60,1,9},{0x1A75,8,230},
	{0x1A7F,1,220},{0x1AB0,5,230},{0x1AB5,6,220},{0x1ABB,2,230},{0x1ABD,1,220},{0x1ABF,2,220},{0x1AC1,2,230},{0x1AC3,2,220},
	{0x1AC5,5,230},{0x1ACA,1,220},{0x1ACB,4,230},{0x1B34,1,7},{0x1B44,1,9},{0x1B6B,1,230},{0x1B6C,1,220},{0x1B6D,7,230},
	{0x1BAA,2,9},{0x1BE6,1,7},{0x1BF2,2,9},{0x1C37,1,7},{0x1CD0,3,230},{0x1CD4,1,1},{0x1CD5,5,220},{0x1CDA,2,230},
	{0x1CDC,4,220},{0x1CE0,1,230},{0x1CE2,7,1},{0x1CED,1,220},{0x1CF4,1,230},{0x1CF8,2,230},{0x1DC0,2,230},{0x1DC2,1,220},
	{0x1DC3,7,230},{0x1DCA,1,220},{0x1DCB,2,230},{0x1DCD,1,234},{0x1DCE,1,214},{0x1DCF,1,220},{0x1DD0,1,202},{0x1DD1,37,230},
	{0x1DF6,1,232},{0x1DF7,2,228},{0x1DF9,1,220},{0x1DFA,1,218},{0x1DFB,1,230},{0x1DFC,1,233},{0x1DFD,1,220},{0x1DFE,1,230},
	{0x1DFF,1,220},{0x20D0,2,230},{0x20D2,2,1},{0x20D4,4,230},{0x20D8,3,1},{0x20DB,2,230},{0x20E1,1,230},{0x20E5,2,1},
	{0x20E7,1,230},{0x20E8,1,220},{0x20E9,1,230},{0x20EA,2,1},{0x20EC,4,220},{0x20F0,1,230},{0x2CEF,3,230},{0x2D7F,1,9},
	{0x2DE0,32,230},{0x302A,1,218},{0x302B,1,228},{0x302C,1,232},{0x302D,1,222},{0x302E,2,224},{0x3099,2,8},{0xA66F,1,230},
	{0xA674,10,230},{0xA69E,2,230},{0xA6F0,2,230},{0xA806,1,9},{0xA82C,1,9},{0xA8C4,1,9},{0xA8E0,18,230},{0xA92B,3,220},
	{0xA953,1,9},{0xA9B3,1,7},{0xA9C0,1,9},{0xAAB0,1,230},{0xAAB2,2,230},{0xAAB4,1,220},{0xAAB7,2,230},{0xAABE,2,230},
	{0xAAC1,1,230},{0xAAF6,1,9},{0xABED,1,9},{0xFB1E,1,26},{0xFE20,7,230},{0xFE27,7,220},{0xFE2E,2,230},
};
#define mxCombinationCount1 87
static const txCombination gxCombinationIndex1[mxCombinationCount1] ICACHE_XS6RO_ATTR = {
	{0x01FD,1,220},{0x02E0,1,220},{0x0376,5,230},{0x0A0D,1,220},{0x0A0F,1,230},{0x0A38,1,230},{0x0A39,1,1},{0x0A3A,1,220},
	{0x0A3F,1,9},{0x0AE5,1,230},{0x0AE6,1,220},{0x0D24,4,230},{0x0EAB,2,230},{0x0F46,2,220},{0x0F48,3,230},{0x0F4B,1,220},
	{0x0F4C,1,230},{0x0F4D,4,220},{0x0F82,1,230},{0x0F83,1,220},{0x0F84,1,230},{0x0F85,1,220},{0x1046,1,9},{0x1070,1,9},
	{0x107F,1,9},{0x10B9,1,9},{0x10BA,1,7},{0x1100,3,230},{0x1133,2,9},{0x1173,1,7},{0x11C0,1,9},{0x11CA,1,7},
	{0x1235,1,9},{0x1236,1,7},{0x12E9,1,7},{0x12EA,1,9},{0x133B,2,7},{0x134D,1,9},{0x1366,7,230},{0x1370,5,230},
	{0x1442,1,9},{0x1446,1,7},{0x145E,1,230},{0x14C2,1,9},{0x14C3,1,7},{0x15BF,1,9},{0x15C0,1,7},{0x163F,1,9},
	{0x16B6,1,9},{0x16B7,1,7},{0x172B,1,9},{0x1839,1,9},{0x183A,1,7},{0x193D,2,9},{0x1943,1,7},{0x19E0,1,9},
	{0x1A34,1,9},{0x1A47,1,9},{0x1A99,1,9},{0x1C3F,1,9},{0x1D42,1,7},{0x1D44,2,9},{0x1D97,1,9},{0x6AF0,5,1},
	{0x6B30,7,230},{0x6FF0,2,6},{0xBC9E,1,1},{0xD165,2,216},{0xD167,3,1},{0xD16D,1,226},{0xD16E,5,216},{0xD17B,8,220},
	{0xD185,5,230},{0xD18A,2,220},{0xD1AA,4,230},{0xD242,3,230},{0xE000,7,230},{0xE008,17,230},{0xE01B,7,230},{0xE023,2,230},
	{0xE026,5,230},{0xE130,7,230},{0xE2AE,1,230},{0xE2EC,4,230},{0xE8D0,7,220},{0xE944,6,230},{0xE94A,1,7},
};
#define mxCompositionSize0 1856
static const txU2 gxCompositionData0[mxCompositionSize0] ICACHE_XS6RO_ATTR = {
	0x0041,0x00C0,0x0045,0x00C8,0x0049,0x00CC,0x004E,0x01F8,0x004F,0x00D2,0x0055,0x00D9,0x0057,0x1E80,0x0059,0x1EF2,0x0061,0x00E0,0x0065,0x00E8,0x0069,0x00EC,0x006E,0x01F9,0x006F,0x00F2,0x0075,0x00F9,0x0077,0x1E81,0x0079,0x1EF3,
	0x00A8,0x1FED,0x00C2,0x1EA6,0x00CA,0x1EC0,0x00D4,0x1ED2,0x00DC,0x01DB,0x00E2,0x1EA7,0x00EA,0x1EC1,0x00F4,0x1ED3,0x00FC,0x01DC,0x0102,0x1EB0,0x0103,0x1EB1,0x0112,0x1E14,0x0113,0x1E15,0x014C,0x1E50,0x014D,0x1E51,0x01A0,0x1EDC,
	0x01A1,0x1EDD,0x01AF,0x1EEA,0x01B0,0x1EEB,0x0391,0x1FBA,0x0395,0x1FC8,0x0397,0x1FCA,0x0399,0x1FDA,0x039F,0x1FF8,0x03A5,0x1FEA,0x03A9,0x1FFA,0x03B1,0x1F70,0x03B5,0x1F72,0x03B7,0x1F74,0x03B9,0x1F76,0x03BF,0x1F78,0x03C5,0x1F7A,
	0x03C9,0x1F7C,0x03CA,0x1FD2,0x03CB,0x1FE2,0x0415,0x0400,0x0418,0x040D,0x0435,0x0450,0x0438,0x045D,0x1F00,0x1F02,0x1F01,0x1F03,0x1F08,0x1F0A,0x1F09,0x1F0B,0x1F10,0x1F12,0x1F11,0x1F13,0x1F18,0x1F1A,0x1F19,0x1F1B,0x1F20,0x1F22,
	0x1F21,0x1F23,0x1F28,0x1F2A,0x1F29,0x1F2B,0x1F30,0x1F32,0x1F31,0x1F33,0x1F38,0x1F3A,0x1F39,0x1F3B,0x1F40,0x1F42,0x1F41,0x1F43,0x1F48,0x1F4A,0x1F49,0x1F4B,0x1F50,0x1F52,0x1F51,0x1F53,0x1F59,0x1F5B,0x1F60,0x1F62,0x1F61,0x1F63,
	0x1F68,0x1F6A,0x1F69,0x1F6B,0x1FBF,0x1FCD,0x1FFE,0x1FDD,0x0041,0x00C1,0x0043,0x0106,0x0045,0x00C9,0x0047,0x01F4,0x0049,0x00CD,0x004B,0x1E30,0x004C,0x0139,0x004D,0x1E3E,0x004E,0x0143,0x004F,0x00D3,0x0050,0x1E54,0x0052,0x0154,
	0x0053,0x015A,0x0055,0x00DA,0x0057,0x1E82,0x0059,0x00DD,0x005A,0x0179,0x0061,0x00E1,0x0063,0x0107,0x0065,0x00E9,0x0067,0x01F5,0x0069,0x00ED,0x006B,0x1E31,0x006C,0x013A,0x006D,0x1E3F,0x006E,0x0144,0x006F,0x00F3,0x0070,0x1E55,
	0x0072,0x0155,0x0073,0x015B,0x0075,0x00FA,0x0077,0x1E83,0x0079,0x00FD,0x007A,0x017A,0x00A8,0x0385,0x00C2,0x1EA4,0x00C5,0x01FA,0x00C6,0x01FC,0x00C7,0x1E08,0x00CA,0x1EBE,0x00CF,0x1E2E,0x00D4,0x1ED0,0x00D5,0x1E4C,0x00D8,0x01FE,
	0x00DC,0x01D7,0x00E2,0x1EA5,0x00E5,0x01FB,0x00E6,0x01FD,0x00E7,0x1E09,0x00EA,0x1EBF,0x00EF,0x1E2F,0x00F4,0x1ED1,0x00F5,0x1E4D,0x00F8,0x01FF,0x00FC,0x01D8,0x0102,0x1EAE,0x0103,0x1EAF,0x0112,0x1E16,0x0113,0x1E17,0x014C,0x1E52,
	0x014D,0x1E53,0x0168,0x1E78,0x0169,0x1E79,0x01A0,0x1EDA,0x01A1,0x1EDB,0x01AF,0x1EE8,0x01B0,0x1EE9,0x0391,0x0386,0x0395,0x0388,0x0397,0x0389,0x0399,0x038A,0x039F,0x038C,0x03A5,0x038E,0x03A9,0x038F,0x03B1,0x03AC,0x03B5,0x03AD,
	0x03B7,0x03AE,0x03B9,0x03AF,0x03BF,0x03CC,0x03C5,0x03CD,0x03C9,0x03CE,0x03CA,0x0390,0x03CB,0x03B0,0x03D2,0x03D3,0x0413,0x0403,0x041A,0x040C,0x0433,0x0453,0x043A,0x045C,0x1F00,0x1F04,0x1F01,0x1F05,0x1F08,0x1F0C,0x1F09,0x1F0D,
	0x1F10,0x1F14,0x1F11,0x1F15,0x1F18,0x1F1C,0x1F19,0x1F1D,0x1F20,0x1F24,0x1F21,0x1F25,0x1F28,0x1F2C,0x1F29,0x1F2D,0x1F30,0x1F34,0x1F31,0x1F35,0x1F38,0x1F3C,0x1F39,0x1F3D,0x1F40,0x1F44,0x1F41,0x1F45,0x1F48,0x1F4C,0x1F49,0x1F4D,
	0x1F50,0x1F54,0x1F51,0x1F55,0x1F59,0x1F5D,0x1F60,0x1F64,0x1F61,0x1F65,0x1F68,0x1F6C,0x1F69,0x1F6D,0x1FBF,0x1FCE,0x1FFE,0x1FDE,0x0041,0x00C2,0x0043,0x0108,0x0045,0x00CA,0x0047,0x011C,0x0048,0x0124,0x0049,0x00CE,0x004A,0x0134,
	0x004F,0x00D4,0x0053,0x015C,0x0055,0x00DB,0x0057,0x0174,0x0059,0x0176,0x005A,0x1E90,0x0061,0x00E2,0x0063,0x0109,0x0065,0x00EA,0x0067,0x011D,0x0068,0x0125,0x0069,0x00EE,0x006A,0x0135,0x006F,0x00F4,0x0073,0x015D,0x0075,0x00FB,
	0x0077,0x0175,0x0079,0x0177,0x007A,0x1E91,0x1EA0,0x1EAC,0x1EA1,0x1EAD,0x1EB8,0x1EC6,0x1EB9,0x1EC7,0x1ECC,0x1ED8,0x1ECD,0x1ED9,0x0041,0x00C3,0x0045,0x1EBC,0x0049,0x0128,0x004E,0x00D1,0x004F,0x00D5,0x0055,0x0168,0x0056,0x1E7C,
	0x0059,0x1EF8,0x0061,0x00E3,0x0065,0x1EBD,0x0069,0x0129,0x006E,0x00F1,0x006F,0x00F5,0x0075,0x0169,0x0076,0x1E7D,0x0079,0x1EF9,0x00C2,0x1EAA,0x00CA,0x1EC4,0x00D4,0x1ED6,0x00E2,0x1EAB,0x00EA,0x1EC5,0x00F4,0x1ED7,0x0102,0x1EB4,
	0x0103,0x1EB5,0x01A0,0x1EE0,0x01A1,0x1EE1,0x01AF,0x1EEE,0x01B0,0x1EEF,0x0041,0x0100,0x0045,0x0112,0x0047,0x1E20,0x0049,0x012A,0x004F,0x014C,0x0055,0x016A,0x0059,0x0232,0x0061,0x0101,0x0065,0x0113,0x0067,0x1E21,0x0069,0x012B,
	0x006F,0x014D,0x0075,0x016B,0x0079,0x0233,0x00C4,0x01DE,0x00C6,0x01E2,0x00D5,0x022C,0x00D6,0x022A,0x00DC,0x01D5,0x00E4,0x01DF,0x00E6,0x01E3,0x00F5,0x022D,0x00F6,0x022B,0x00FC,0x01D6,0x01EA,0x01EC,0x01EB,0x01ED,0x0226,0x01E0,
	0x0227,0x01E1,0x022E,0x0230,0x022F,0x0231,0x0391,0x1FB9,0x0399,0x1FD9,0x03A5,0x1FE9,0x03B1,0x1FB1,0x03B9,0x1FD1,0x03C5,0x1FE1,0x0418,0x04E2,0x0423,0x04EE,0x0438,0x04E3,0x0443,0x04EF,0x1E36,0x1E38,0x1E37,0x1E39,0x1E5A,0x1E5C,
	0x1E5B,0x1E5D,0x0041,0x0102,0x0045,0x0114,0x0047,0x011E,0x0049,0x012C,0x004F,0x014E,0x0055,0x016C,0x0061,0x0103,0x0065,0x0115,0x0067,0x011F,0x0069,0x012D,0x006F,0x014F,0x0075,0x016D,0x0228,0x1E1C,0x0229,0x1E1D,0x0391,0x1FB8,
	0x0399,0x1FD8,0x03A5,0x1FE8,0x03B1,0x1FB0,0x03B9,0x1FD0,0x03C5,0x1FE0,0x0410,0x04D0,0x0415,0x04D6,0x0416,0x04C1,0x0418,0x0419,0x0423,0x040E,0x0430,0x04D1,0x0435,0x04D7,0x0436,0x04C2,0x0438,0x0439,0x0443,0x045E,0x1EA0,0x1EB6,
	0x1EA1,0x1EB7,0x0041,0x0226,0x0042,0x1E02,0x0043,0x010A,0x0044,0x1E0A,0x0045,0x0116,0x0046,0x1E1E,0x0047,0x0120,0x0048,0x1E22,0x0049,0x0130,0x004D,0x1E40,0x004E,0x1E44,0x004F,0x022E,0x0050,0x1E56,0x0052,0x1E58,0x0053,0x1E60,
	0x0054,0x1E6A,0x0057,0x1E86,0x0058,0x1E8A,0x0059,0x1E8E,0x005A,0x017B,0x0061,0x0227,0x0062,0x1E03,0x0063,0x010B,0x0064,0x1E0B,0x0065,0x0117,0x0066,0x1E1F,0x0067,0x0121,0x0068,0x1E23,0x006D,0x1E41,0x006E,0x1E45,0x006F,0x022F,
	0x0070,0x1E57,0x0072,0x1E59,0x0073,0x1E61,0x0074,0x1E6B,0x0077,0x1E87,0x0078,0x1E8B,0x0079,0x1E8F,0x007A,0x017C,0x015A,0x1E64,0x015B,0x1E65,0x0160,0x1E66,0x0161,0x1E67,0x017F,0x1E9B,0x1E62,0x1E68,0x1E63,0x1E69,0x0041,0x00C4,
	0x0045,0x00CB,0x0048,0x1E26,0x0049,0x00CF,0x004F,0x00D6,0x0055,0x00DC,0x0057,0x1E84,0x0058,0x1E8C,0x0059,0x0178,0x0061,0x00E4,0x0065,0x00EB,0x0068,0x1E27,0x0069,0x00EF,0x006F,0x00F6,0x0074,0x1E97,0x0075,0x00FC,0x0077,0x1E85,
	0x0078,0x1E8D,0x0079,0x00FF,0x00D5,0x1E4E,0x00F5,0x1E4F,0x016A,0x1E7A,0x016B,0x1E7B,0x0399,0x03AA,0x03A5,0x03AB,0x03B9,0x03CA,0x03C5,0x03CB,0x03D2,0x03D4,0x0406,0x0407,0x0410,0x04D2,0x0415,0x0401,0x0416,0x04DC,0x0417,0x04DE,
	0x0418,0x04E4,0x041E,0x04E6,0x0423,0x04F0,0x0427,0x04F4,0x042B,0x04F8,0x042D,0x04EC,0x0430,0x04D3,0x0435,0x0451,0x0436,0x04DD,0x0437,0x04DF,0x0438,0x04E5,0x043E,0x04E7,0x0443,0x04F1,0x0447,0x04F5,0x044B,0x04F9,0x044D,0x04ED,
	0x0456,0x0457,0x04D8,0x04DA,0x04D9,0x04DB,0x04E8,0x04EA,0x04E9,0x04EB,0x0041,0x1EA2,0x0045,0x1EBA,0x0049,0x1EC8,0x004F,0x1ECE,0x0055,0x1EE6,0x0059,0x1EF6,0x0061,0x1EA3,0x0065,0x1EBB,0x0069,0x1EC9,0x006F,0x1ECF,0x0075,0x1EE7,
	0x0079,0x1EF7,0x00C2,0x1EA8,0x00CA,0x1EC2,0x00D4,0x1ED4,0x00E2,0x1EA9,0x00EA,0x1EC3,0x00F4,0x1ED5,0x0102,0x1EB2,0x0103,0x1EB3,0x01A0,0x1EDE,0x01A1,0x1EDF,0x01AF,0x1EEC,0x01B0,0x1EED,0x0041,0x00C5,0x0055,0x016E,0x0061,0x00E5,
	0x0075,0x016F,0x0077,0x1E98,0x0079,0x1E99,0x004F,0x0150,0x0055,0x0170,0x006F,0x0151,0x0075,0x0171,0x0423,0x04F2,0x0443,0x04F3,0x0041,0x01CD,0x0043,0x010C,0x0044,0x010E,0x0045,0x011A,0x0047,0x01E6,0x0048,0x021E,0x0049,0x01CF,
	0x004B,0x01E8,0x004C,0x013D,0x004E,0x0147,0x004F,0x01D1,0x0052,0x0158,0x0053,0x0160,0x0054,0x0164,0x0055,0x01D3,0x005A,0x017D,0x0061,0x01CE,0x0063,0x010D,0x0064,0x010F,0x0065,0x011B,0x0067,0x01E7,0x0068,0x021F,0x0069,0x01D0,
	0x006A,0x01F0,0x006B,0x01E9,0x006C,0x013E,0x006E,0x0148,0x006F,0x01D2,0x0072,0x0159,0x0073,0x0161,0x0074,0x0165,0x0075,0x01D4,0x007A,0x017E,0x00DC,0x01D9,0x00FC,0x01DA,0x01B7,0x01EE,0x0292,0x01EF,0x0041,0x0200,0x0045,0x0204,
	0x0049,0x0208,0x004F,0x020C,0x0052,0x0210,0x0055,0x0214,0x0061,0x0201,0x0065,0x0205,0x0069,0x0209,0x006F,0x020D,0x0072,0x0211,0x0075,0x0215,0x0474,0x0476,0x0475,0x0477,0x0041,0x0202,0x0045,0x0206,0x0049,0x020A,0x004F,0x020E,
	0x0052,0x0212,0x0055,0x0216,0x0061,0x0203,0x0065,0x0207,0x0069,0x020B,0x006F,0x020F,0x0072,0x0213,0x0075,0x0217,0x0391,0x1F08,0x0395,0x1F18,0x0397,0x1F28,0x0399,0x1F38,0x039F,0x1F48,0x03A9,0x1F68,0x03B1,0x1F00,0x03B5,0x1F10,
	0x03B7,0x1F20,0x03B9,0x1F30,0x03BF,0x1F40,0x03C1,0x1FE4,0x03C5,0x1F50,0x03C9,0x1F60,0x0391,0x1F09,0x0395,0x1F19,0x0397,0x1F29,0x0399,0x1F39,0x039F,0x1F49,0x03A1,0x1FEC,0x03A5,0x1F59,0x03A9,0x1F69,0x03B1,0x1F01,0x03B5,0x1F11,
	0x03B7,0x1F21,0x03B9,0x1F31,0x03BF,0x1F41,0x03C1,0x1FE5,0x03C5,0x1F51,0x03C9,0x1F61,0x004F,0x01A0,0x0055,0x01AF,0x006F,0x01A1,0x0075,0x01B0,0x0041,0x1EA0,0x0042,0x1E04,0x0044,0x1E0C,0x0045,0x1EB8,0x0048,0x1E24,0x0049,0x1ECA,
	0x004B,0x1E32,0x004C,0x1E36,0x004D,0x1E42,0x004E,0x1E46,0x004F,0x1ECC,0x0052,0x1E5A,0x0053,0x1E62,0x0054,0x1E6C,0x0055,0x1EE4,0x0056,0x1E7E,0x0057,0x1E88,0x0059,0x1EF4,0x005A,0x1E92,0x0061,0x1EA1,0x0062,0x1E05,0x0064,0x1E0D,
	0x0065,0x1EB9,0x0068,0x1E25,0x0069,0x1ECB,0x006B,0x1E33,0x006C,0x1E37,0x006D,0x1E43,0x006E,0x1E47,0x006F,0x1ECD,0x0072,0x1E5B,0x0073,0x1E63,0x0074,0x1E6D,0x0075,0x1EE5,0x0076,0x1E7F,0x0077,0x1E89,0x0079,0x1EF5,0x007A,0x1E93,
	0x01A0,0x1EE2,0x01A1,0x1EE3,0x01AF,0x1EF0,0x01B0,0x1EF1,0x0055,0x1E72,0x0075,0x1E73,0x0041,0x1E00,0x0061,0x1E01,0x0053,0x0218,0x0054,0x021A,0x0073,0x0219,0x0074,0x021B,0x0043,0x00C7,0x0044,0x1E10,0x0045,0x0228,0x0047,0x0122,
	0x0048,0x1E28,0x004B,0x0136,0x004C,0x013B,0x004E,0x0145,0x0052,0x0156,0x0053,0x015E,0x0054,0x0162,0x0063,0x00E7,0x0064,0x1E11,0x0065,0x0229,0x0067,0x0123,0x0068,0x1E29,0x006B,0x0137,0x006C,0x013C,0x006E,0x0146,0x0072,0x0157,
	0x0073,0x015F,0x0074,0x0163,0x0041,0x0104,0x0045,0x0118,0x0049,0x012E,0x004F,0x01EA,0x0055,0x0172,0x0061,0x0105,0x0065,0x0119,0x0069,0x012F,0x006F,0x01EB,0x0075,0x0173,0x0044,0x1E12,0x0045,0x1E18,0x004C,0x1E3C,0x004E,0x1E4A,
	0x0054,0x1E70,0x0055,0x1E76,0x0064,0x1E13,0x0065,0x1E19,0x006C,0x1E3D,0x006E,0x1E4B,0x0074,0x1E71,0x0075,0x1E77,0x0048,0x1E2A,0x0068,0x1E2B,0x0045,0x1E1A,0x0049,0x1E2C,0x0055,0x1E74,0x0065,0x1E1B,0x0069,0x1E2D,0x0075,0x1E75,
	0x0042,0x1E06,0x0044,0x1E0E,0x004B,0x1E34,0x004C,0x1E3A,0x004E,0x1E48,0x0052,0x1E5E,0x0054,0x1E6E,0x005A,0x1E94,0x0062,0x1E07,0x0064,0x1E0F,0x0068,0x1E96,0x006B,0x1E35,0x006C,0x1E3B,0x006E,0x1E49,0x0072,0x1E5F,0x0074,0x1E6F,
	0x007A,0x1E95,0x003C,0x226E,0x003D,0x2260,0x003E,0x226F,0x2190,0x219A,0x2192,0x219B,0x2194,0x21AE,0x21D0,0x21CD,0x21D2,0x21CF,0x21D4,0x21CE,0x2203,0x2204,0x2208,0x2209,0x220B,0x220C,0x2223,0x2224,0x2225,0x2226,0x223C,0x2241,
	0x2243,0x2244,0x2245,0x2247,0x2248,0x2249,0x224D,0x226D,0x2261,0x2262,0x2264,0x2270,0x2265,0x2271,0x2272,0x2274,0x2273,0x2275,0x2276,0x2278,0x2277,0x2279,0x227A,0x2280,0x227B,0x2281,0x227C,0x22E0,0x227D,0x22E1,0x2282,0x2284,
	0x2283,0x2285,0x2286,0x2288,0x2287,0x2289,0x2291,0x22E2,0x2292,0x22E3,0x22A2,0x22AC,0x22A8,0x22AD,0x22A9,0x22AE,0x22AB,0x22AF,0x22B2,0x22EA,0x22B3,0x22EB,0x22B4,0x22EC,0x22B5,0x22ED,0x00A8,0x1FC1,0x03B1,0x1FB6,0x03B7,0x1FC6,
	0x03B9,0x1FD6,0x03C5,0x1FE6,0x03C9,0x1FF6,0x03CA,0x1FD7,0x03CB,0x1FE7,0x1F00,0x1F06,0x1F01,0x1F07,0x1F08,0x1F0E,0x1F09,0x1F0F,0x1F20,0x1F26,0x1F21,0x1F27,0x1F28,0x1F2E,0x1F29,0x1F2F,0x1F30,0x1F36,0x1F31,0x1F37,0x1F38,0x1F3E,
	0x1F39,0x1F3F,0x1F50,0x1F56,0x1F51,0x1F57,0x1F59,0x1F5F,0x1F60,0x1F66,0x1F61,0x1F67,0x1F68,0x1F6E,0x1F69,0x1F6F,0x1FBF,0x1FCF,0x1FFE,0x1FDF,0x0391,0x1FBC,0x0397,0x1FCC,0x03A9,0x1FFC,0x03AC,0x1FB4,0x03AE,0x1FC4,0x03B1,0x1FB3,
	0x03B7,0x1FC3,0x03C9,0x1FF3,0x03CE,0x1FF4,0x1F00,0x1F80,0x1F01,0x1F81,0x1F02,0x1F82,0x1F03,0x1F83,0x1F04,0x1F84,0x1F05,0x1F85,0x1F06,0x1F86,0x1F07,0x1F87,0x1F08,0x1F88,0x1F09,0x1F89,0x1F0A,0x1F8A,0x1F0B,0x1F8B,0x1F0C,0x1F8C,
	0x1F0D,0x1F8D,0x1F0E,0x1F8E,0x1F0F,0x1F8F,0x1F20,0x1F90,0x1F21,0x1F91,0x1F22,0x1F92,0x1F23,0x1F93,0x1F24,0x1F94,0x1F25,0x1F95,0x1F26,0x1F96,0x1F27,0x1F97,0x1F28,0x1F98,0x1F29,0x1F99,0x1F2A,0x1F9A,0x1F2B,0x1F9B,0x1F2C,0x1F9C,
	0x1F2D,0x1F9D,0x1F2E,0x1F9E,0x1F2F,0x1F9F,0x1F60,0x1FA0,0x1F61,0x1FA1,0x1F62,0x1FA2,0x1F63,0x1FA3,0x1F64,0x1FA4,0x1F65,0x1FA5,0x1F66,0x1FA6,0x1F67,0x1FA7,0x1F68,0x1FA8,0x1F69,0x1FA9,0x1F6A,0x1FAA,0x1F6B,0x1FAB,0x1F6C,0x1FAC,
	0x1F6D,0x1FAD,0x1F6E,0x1FAE,0x1F6F,0x1FAF,0x1F70,0x1FB2,0x1F74,0x1FC2,0x1F7C,0x1FF2,0x1FB6,0x1FB7,0x1FC6,0x1FC7,0x1FF6,0x1FF7,0x0627,0x0622,0x0627,0x0623,0x0648,0x0624,0x064A,0x0626,0x06C1,0x06C2,0x06D2,0x06D3,0x06D5,0x06C0,
	0x0627,0x0625,0x0928,0x0929,0x0930,0x0931,0x0933,0x0934,0x09C7,0x09CB,0x09C7,0x09CC,0x0B47,0x0B4B,0x0B47,0x0B48,0x0B47,0x0B4C,0x0BC6,0x0BCA,0x0BC7,0x0BCB,0x0B92,0x0B94,0x0BC6,0x0BCC,0x0C46,0x0C48,0x0CC6,0x0CCA,0x0CBF,0x0CC0,
	0x0CC6,0x0CC7,0x0CCA,0x0CCB,0x0CC6,0x0CC8,0x0D46,0x0D4A,0x0D47,0x0D4B,0x0D46,0x0D4C,0x0DD9,0x0DDA,0x0DDC,0x0DDD,0x0DD9,0x0DDC,0x0DD9,0x0DDE,0x1025,0x1026,0x1B05,0x1B06,0x1B07,0x1B08,0x1B09,0x1B0A,0x1B0B,0x1B0C,0x1B0D,0x1B0E,
	0x1B11,0x1B12,0x1B3A,0x1B3B,0x1B3C,0x1B3D,0x1B3E,0x1B40,0x1B3F,0x1B41,0x1B42,0x1B43,0x3046,0x3094,0x304B,0x304C,0x304D,0x304E,0x304F,0x3050,0x3051,0x3052,0x3053,0x3054,0x3055,0x3056,0x3057,0x3058,0x3059,0x305A,0x305B,0x305C,
	0x305D,0x305E,0x305F,0x3060,0x3061,0x3062,0x3064,0x3065,0x3066,0x3067,0x3068,0x3069,0x306F,0x3070,0x3072,0x3073,0x3075,0x3076,0x3078,0x3079,0x307B,0x307C,0x309D,0x309E,0x30A6,0x30F4,0x30AB,0x30AC,0x30AD,0x30AE,0x30AF,0x30B0,
	0x30B1,0x30B2,0x30B3,0x30B4,0x30B5,0x30B6,0x30B7,0x30B8,0x30B9,0x30BA,0x30BB,0x30BC,0x30BD,0x30BE,0x30BF,0x30C0,0x30C1,0x30C2,0x30C4,0x30C5,0x30C6,0x30C7,0x30C8,0x30C9,0x30CF,0x30D0,0x30D2,0x30D3,0x30D5,0x30D6,0x30D8,0x30D9,
	0x30DB,0x30DC,0x30EF,0x30F7,0x30F0,0x30F8,0x30F1,0x30F9,0x30F2,0x30FA,0x30FD,0x30FE,0x306F,0x3071,0x3072,0x3074,0x3075,0x3077,0x3078,0x307A,0x307B,0x307D,0x30CF,0x30D1,0x30D2,0x30D4,0x30D5,0x30D7,0x30D8,0x30DA,0x30DB,0x30DD,
};
#define mxCompositionCount0 110
static const txU2 gxCompositionIndex0[mxCompositionCount0] ICACHE_XS6RO_ATTR = {
	0x0300,0,0x0301,84,0x0302,201,0x0303,233,0x0304,261,0x0306,305,0x0307,337,0x0308,383,0x0309,437,0x030A,461,0x030B,467,0x030C,473,0x030F,510,0x0311,524,0x0313,536,0x0314,550,
	0x031B,566,0x0323,570,0x0324,612,0x0325,614,0x0326,616,0x0327,620,0x0328,642,0x032D,652,0x032E,664,0x0330,666,0x0331,672,0x0338,689,0x0342,733,0x0345,762,0x0653,825,0x0654,826,
	0x0655,832,0x093C,833,0x09BE,836,0x09D7,837,0x0B3E,838,0x0B56,839,0x0B57,840,0x0BBE,841,0x0BD7,843,0x0C56,845,0x0CC2,846,0x0CD5,847,0x0CD6,850,0x0D3E,851,0x0D57,853,0x0DCA,854,
	0x0DCF,856,0x0DDF,857,0x102E,858,0x1B35,859,0x3099,870,0x309A,918,0xFFFF,928,
};
#define mxCompositionSize1 26
static const txU2 gxCompositionData1[mxCompositionSize1] ICACHE_XS6RO_ATTR = {
	0x1099,0x109A,0x109B,0x109C,0x10A5,0x10AB,0x1131,0x112E,0x1132,0x112F,0x1347,0x134B,0x1347,0x134C,0x14B9,0x14BC,0x14B9,0x14BB,0x14B9,0x14BE,0x15B8,0x15BA,0x15B9,0x15BB,0x1935,0x1938,
};
#define mxCompositionCount1 20
static const txU2 gxCompositionIndex1[mxCompositionCount1] ICACHE_XS6RO_ATTR = {
	0x10BA,0,0x1127,3,0x133E,5,0x1357,6,0x14B0,7,0x14BA,8,0x14BD,9,0x15AF,10,0x1930,12,0xFFFF,13,
};
#define mxDecompositionSize0 13558
const txU1 gxDecompositionData0[mxDecompositionSize0] ICACHE_XS6RO_ATTR = {
	0x20,0x20,0xcc,0x88,0x61,0x20,0xcc,0x84,0x32,0x33,0x20,0xcc,0x81,0xce,0xbc,0x20,0xcc,0xa7,0x31,0x6f,0x31,0xe2,0x81,0x84,0x34,0x31,0xe2,0x81,0x84,0x32,0x33,0xe2,
	0x81,0x84,0x34,0x41,0xcc,0x80,0x41,0xcc,0x81,0x41,0xcc,0x82,0x41,0xcc,0x83,0x41,0xcc,0x88,0x41,0xcc,0x8a,0x43,0xcc,0xa7,0x45,0xcc,0x80,0x45,0xcc,0x81,0x45,0xcc,
	0x82,0x45,0xcc,0x88,0x49,0xcc,0x80,0x49,0xcc,0x81,0x49,0xcc,0x82,0x49,0xcc,0x88,0x4e,0xcc,0x83,0x4f,0xcc,0x80,0x4f,0xcc,0x81,0x4f,0xcc,0x82,0x4f,0xcc,0x83,0x4f,
	0xcc,0x88,0x55,0xcc,0x80,0x55,0xcc,0x81,0x55,0xcc,0x82,0x55,0xcc,0x88,0x59,0xcc,0x81,0x61,0xcc,0x80,0x61,0xcc,0x81,0x61,0xcc,0x82,0x61,0xcc,0x83,0x61,0xcc,0x88,
	0x61,0xcc,0x8a,0x63,0xcc,0xa7,0x65,0xcc,0x80,0x65,0xcc,0x81,0x65,0xcc,0x82,0x65,0xcc,0x88,0x69,0xcc,0x80,0x69,0xcc,0x81,0x69,0xcc,0x82,0x69,0xcc,0x88,0x6e,0xcc,
	0x83,0x6f,0xcc,0x80,0x6f,0xcc,0x81,0x6f,0xcc,0x82,0x6f,0xcc,0x83,0x6f,0xcc,0x88,0x75,0xcc,0x80,0x75,0xcc,0x81,0x75,0xcc,0x82,0x75,0xcc,0x88,0x79,0xcc,0x81,0x79,
	0xcc,0x88,0x41,0xcc,0x84,0x61,0xcc,0x84,0x41,0xcc,0x86,0x61,0xcc,0x86,0x41,0xcc,0xa8,0x61,0xcc,0xa8,0x43,0xcc,0x81,0x63,0xcc,0x81,0x43,0xcc,0x82,0x63,0xcc,0x82,
	0x43,0xcc,0x87,0x63,0xcc,0x87,0x43,0xcc,0x8c,0x63,0xcc,0x8c,0x44,0xcc,0x8c,0x64,0xcc,0x8c,0x45,0xcc,0x84,0x65,0xcc,0x84,0x45,0xcc,0x86,0x65,0xcc,0x86,0x45,0xcc,
	0x87,0x65,0xcc,0x87,0x45,0xcc,0xa8,0x65,0xcc,0xa8,0x45,0xcc,0x8c,0x65,0xcc,0x8c,0x47,0xcc,0x82,0x67,0xcc,0x82,0x47,0xcc,0x86,0x67,0xcc,0x86,0x47,0xcc,0x87,0x67,
	0xcc,0x87,0x47,0xcc,0xa7,0x67,0xcc,0xa7,0x48,0xcc,0x82,0x68,0xcc,0x82,0x49,0xcc,0x83,0x69,0xcc,0x83,0x49,0xcc,0x84,0x69,0xcc,0x84,0x49,0xcc,0x86,0x69,0xcc,0x86,
	0x49,0xcc,0xa8,0x69,0xcc,0xa8,0x49,0xcc,0x87,0x49,0x4a,0x69,0x6a,0x4a,0xcc,0x82,0x6a,0xcc,0x82,0x4b,0xcc,0xa7,0x6b,0xcc,0xa7,0x4c,0xcc,0x81,0x6c,0xcc,0x81,0x4c,
	0xcc,0xa7,0x6c,0xcc,0xa7,0x4c,0xcc,0x8c,0x6c,0xcc,0x8c,0x4c,0xc2,0xb7,0x6c,0xc2,0xb7,0x4e,0xcc,0x81,0x6e,0xcc,0x81,0x4e,0xcc,0xa7,0x6e,0xcc,0xa7,0x4e,0xcc,0x8c,
	0x6e,0xcc,0x8c,0xca,0xbc,0x6e,0x4f,0xcc,0x84,0x6f,0xcc,0x84,0x4f,0xcc,0x86,0x6f,0xcc,0x86,0x4f,0xcc,0x8b,0x6f,0xcc,0x8b,0x52,0xcc,0x81,0x72,0xcc,0x81,0x52,0xcc,
	0xa7,0x72,0xcc,0xa7,0x52,0xcc,0x8c,0x72,0xcc,0x8c,0x53,0xcc,0x81,0x73,0xcc,0x81,0x53,0xcc,0x82,0x73,0xcc,0x82,0x53,0xcc,0xa7,0x73,0xcc,0xa7,0x53,0xcc,0x8c,0x73,
	0xcc,0x8c,0x54,0xcc,0xa7,0x74,0xcc,0xa7,0x54,0xcc,0x8c,0x74,0xcc,0x8c,0x55,0xcc,0x83,0x75,0xcc,0x83,0x55,0xcc,0x84,0x75,0xcc,0x84,0x55,0xcc,0x86,0x75,0xcc,0x86,
	0x55,0xcc,0x8a,0x75,0xcc,0x8a,0x55,0xcc,0x8b,0x75,0xcc,0x8b,0x55,0xcc,0xa8,0x75,0xcc,0xa8,0x57,0xcc,0x82,0x77,0xcc,0x82,0x59,0xcc,0x82,0x79,0xcc,0x82,0x59,0xcc,
	0x88,0x5a,0xcc,0x81,0x7a,0xcc,0x81,0x5a,0xcc,0x87,0x7a,0xcc,0x87,0x5a,0xcc,0x8c,0x7a,0xcc,0x8c,0x73,0x4f,0xcc,0x9b,0x6f,0xcc,0x9b,0x55,0xcc,0x9b,0x75,0xcc,0x9b,
	0x44,0xc5,0xbd,0x44,0xc5,0xbe,0x64,0xc5,0xbe,0x4c,0x4a,0x4c,0x6a,0x6c,0x6a,0x4e,0x4a,0x4e,0x6a,0x6e,0x6a,0x41,0xcc,0x8c,0x61,0xcc,0x8c,0x49,0xcc,0x8c,0x69,0xcc,
	0x8c,0x4f,0xcc,0x8c,0x6f,0xcc,0x8c,0x55,0xcc,0x8c,0x75,0xcc,0x8c,0xc3,0x9c,0xcc,0x84,0xc3,0xbc,0xcc,0x84,0xc3,0x9c,0xcc,0x81,0xc3,0xbc,0xcc,0x81,0xc3,0x9c,0xcc,
	0x8c,0xc3,0xbc,0xcc,0x8c,0xc3,0x9c,0xcc,0x80,0xc3,0xbc,0xcc,0x80,0xc3,0x84,0xcc,0x84,0xc3,0xa4,0xcc,0x84,0xc8,0xa6,0xcc,0x84,0xc8,0xa7,0xcc,0x84,0xc3,0x86,0xcc,
	0x84,0xc3,0xa6,0xcc,0x84,0x47,0xcc,0x8c,0x67,0xcc,0x8c,0x4b,0xcc,0x8c,0x6b,0xcc,0x8c,0x4f,0xcc,0xa8,0x6f,0xcc,0xa8,0xc7,0xaa,0xcc,0x84,0xc7,0xab,0xcc,0x84,0xc6,
	0xb7,0xcc,0x8c,0xca,0x92,0xcc,0x8c,0x6a,0xcc,0x8c,0x44,0x5a,0x44,0x7a,0x64,0x7a,0x47,0xcc,0x81,0x67,0xcc,0x81,0x4e,0xcc,0x80,0x6e,0xcc,0x80,0xc3,0x85,0xcc,0x81,
	0xc3,0xa5,0xcc,0x81,0xc3,0x86,0xcc,0x81,0xc3,0xa6,0xcc,0x81,0xc3,0x98,0xcc,0x81,0xc3,0xb8,0xcc,0x81,0x41,0xcc,0x8f,0x61,0xcc,0x8f,0x41,0xcc,0x91,0x61,0xcc,0x91,
	0x45,0xcc,0x8f,0x65,0xcc,0x8f,0x45,0xcc,0x91,0x65,0xcc,0x91,0x49,0xcc,0x8f,0x69,0xcc,0x8f,0x49,0xcc,0x91,0x69,0xcc,0x91,0x4f,0xcc,0x8f,0x6f,0xcc,0x8f,0x4f,0xcc,
	0x91,0x6f,0xcc,0x91,0x52,0xcc,0x8f,0x72,0xcc,0x8f,0x52,0xcc,0x91,0x72,0xcc,0x91,0x55,0xcc,0x8f,0x75,0xcc,0x8f,0x55,0xcc,0x91,0x75,0xcc,0x91,0x53,0xcc,0xa6,0x73,
	0xcc,0xa6,0x54,0xcc,0xa6,0x74,0xcc,0xa6,0x48,0xcc,0x8c,0x68,0xcc,0x8c,0x41,0xcc,0x87,0x61,0xcc,0x87,0x45,0xcc,0xa7,0x65,0xcc,0xa7,0xc3,0x96,0xcc,0x84,0xc3,0xb6,
	0xcc,0x84,0xc3,0x95,0xcc,0x84,0xc3,0xb5,0xcc,0x84,0x4f,0xcc,0x87,0x6f,0xcc,0x87,0xc8,0xae,0xcc,0x84,0xc8,0xaf,0xcc,0x84,0x59,0xcc,0x84,0x79,0xcc,0x84,0x68,0xc9,
	0xa6,0x6a,0x72,0xc9,0xb9,0xc9,0xbb,0xca,0x81,0x77,0x79,0x20,0xcc,0x86,0x20,0xcc,0x87,0x20,0xcc,0x8a,0x20,0xcc,0xa8,0x20,0xcc,0x83,0x20,0xcc,0x8b,0xc9,0xa3,0x6c,
	0x73,0x78,0xca,0x95,0xcc,0x80,0xcc,0x81,0xcc,0x93,0xcc,0x88,0xcc,0x81,0xca,0xb9,0x20,0xcd,0x85,0x3b,0x20,0xcc,0x81,0xc2,0xa8,0xcc,0x81,0xce,0x91,0xcc,0x81,0xc2,
	0xb7,0xce,0x95,0xcc,0x81,0xce,0x97,0xcc,0x81,0xce,0x99,0xcc,0x81,0xce,0x9f,0xcc,0x81,0xce,0xa5,0xcc,0x81,0xce,0xa9,0xcc,0x81,0xcf,0x8a,0xcc,0x81,0xce,0x99,0xcc,
	0x88,0xce,0xa5,0xcc,0x88,0xce,0xb1,0xcc,0x81,0xce,0xb5,0xcc,0x81,0xce,0xb7,0xcc,0x81,0xce,0xb9,0xcc,0x81,0xcf,0x8b,0xcc,0x81,0xce,0xb9,0xcc,0x88,0xcf,0x85,0xcc,
	0x88,0xce,0xbf,0xcc,0x81,0xcf,0x85,0xcc,0x81,0xcf,0x89,0xcc,0x81,0xce,0xb2,0xce,0xb8,0xce,0xa5,0xcf,0x92,0xcc,0x81,0xcf,0x92,0xcc,0x88,0xcf,0x86,0xcf,0x80,0xce,
	0xba,0xcf,0x81,0xcf,0x82,0xce,0x98,0xce,0xb5,0xce,0xa3,0xd0,0x95,0xcc,0x80,0xd0,0x95,0xcc,0x88,0xd0,0x93,0xcc,0x81,0xd0,0x86,0xcc,0x88,0xd0,0x9a,0xcc,0x81,0xd0,
	0x98,0xcc,0x80,0xd0,0xa3,0xcc,0x86,0xd0,0x98,0xcc,0x86,0xd0,0xb8,0xcc,0x86,0xd0,0xb5,0xcc,0x80,0xd0,0xb5,0xcc,0x88,0xd0,0xb3,0xcc,0x81,0xd1,0x96,0xcc,0x88,0xd0,
	0xba,0xcc,0x81,0xd0,0xb8,0xcc,0x80,0xd1,0x83,0xcc,0x86,0xd1,0xb4,0xcc,0x8f,0xd1,0xb5,0xcc,0x8f,0xd0,0x96,0xcc,0x86,0xd0,0xb6,0xcc,0x86,0xd0,0x90,0xcc,0x86,0xd0,
	0xb0,0xcc,0x86,0xd0,0x90,0xcc,0x88,0xd0,0xb0,0xcc,0x88,0xd0,0x95,0xcc,0x86,0xd0,0xb5,0xcc,0x86,0xd3,0x98,0xcc,0x88,0xd3,0x99,0xcc,0x88,0xd0,0x96,0xcc,0x88,0xd0,
	0xb6,0xcc,0x88,0xd0,0x97,0xcc,0x88,0xd0,0xb7,0xcc,0x88,0xd0,0x98,0xcc,0x84,0xd0,0xb8,0xcc,0x84,0xd0,0x98,0xcc,0x88,0xd0,0xb8,0xcc,0x88,0xd0,0x9e,0xcc,0x88,0xd0,
	0xbe,0xcc,0x88,0xd3,0xa8,0xcc,0x88,0xd3,0xa9,0xcc,0x88,0xd0,0xad,0xcc,0x88,0xd1,0x8d,0xcc,0x88,0xd0,0xa3,0xcc,0x84,0xd1,0x83,0xcc,0x84,0xd0,0xa3,0xcc,0x88,0xd1,
	0x83,0xcc,0x88,0xd0,0xa3,0xcc,0x8b,0xd1,0x83,0xcc,0x8b,0xd0,0xa7,0xcc,0x88,0xd1,0x87,0xcc,0x88,0xd0,0xab,0xcc,0x88,0xd1,0x8b,0xcc,0x88,0xd5,0xa5,0xd6,0x82,0xd8,
	0xa7,0xd9,0x93,0xd8,0xa7,0xd9,0x94,0xd9,0x88,0xd9,0x94,0xd8,0xa7,0xd9,0x95,0xd9,0x8a,0xd9,0x94,0xd8,0xa7,0xd9,0xb4,0xd9,0x88,0xd9,0xb4,0xdb,0x87,0xd9,0xb4,0xd9,
	0x8a,0xd9,0xb4,0xdb,0x95,0xd9,0x94,0xdb,0x81,0xd9,0x94,0xdb,0x92,0xd9,0x94,0xe0,0xa4,0xa8,0xe0,0xa4,0xbc,0xe0,0xa4,0xb0,0xe0,0xa4,0xbc,0xe0,0xa4,0xb3,0xe0,0xa4,
	0xbc,0xe0,0xa4,0x95,0xe0,0xa4,0xbc,0xe0,0xa4,0x96,0xe0,0xa4,0xbc,0xe0,0xa4,0x97,0xe0,0xa4,0xbc,0xe0,0xa4,0x9c,0xe0,0xa4,0xbc,0xe0,0xa4,0xa1,0xe0,0xa4,0xbc,0xe0,
	0xa4,0xa2,0xe0,0xa4,0xbc,0xe0,0xa4,0xab,0xe0,0xa4,0xbc,0xe0,0xa4,0xaf,0xe0,0xa4,0xbc,0xe0,0xa7,0x87,0xe0,0xa6,0xbe,0xe0,0xa7,0x87,0xe0,0xa7,0x97,0xe0,0xa6,0xa1,
	0xe0,0xa6,0xbc,0xe0,0xa6,0xa2,0xe0,0xa6,0xbc,0xe0,0xa6,0xaf,0xe0,0xa6,0xbc,0xe0,0xa8,0xb2,0xe0,0xa8,0xbc,0xe0,0xa8,0xb8,0xe0,0xa8,0xbc,0xe0,0xa8,0x96,0xe0,0xa8,
	0xbc,0xe0,0xa8,0x97,0xe0,0xa8,0xbc,0xe0,0xa8,0x9c,0xe0,0xa8,0xbc,0xe0,0xa8,0xab,0xe0,0xa8,0xbc,0xe0,0xad,0x87,0xe0,0xad,0x96,0xe0,0xad,0x87,0xe0,0xac,0xbe,0xe0,
	0xad,0x87,0xe0,0xad,0x97,0xe0,0xac,0xa1,0xe0,0xac,0xbc,0xe0,0xac,0xa2,0xe0,0xac,0xbc,0xe0,0xae,0x92,0xe0,0xaf,0x97,0xe0,0xaf,0x86,0xe0,0xae,0xbe,0xe0,0xaf,0x87,
	0xe0,0xae,0xbe,0xe0,0xaf,0x86,0xe0,0xaf,0x97,0xe0,0xb1,0x86,0xe0,0xb1,0x96,0xe0,0xb2,0xbf,0xe0,0xb3,0x95,0xe0,0xb3,0x86,0xe0,0xb3,0x95,0xe0,0xb3,0x86,0xe0,0xb3,
	0x96,0xe0,0xb3,0x86,0xe0,0xb3,0x82,0xe0,0xb3,0x8a,0xe0,0xb3,0x95,0xe0,0xb5,0x86,0xe0,0xb4,0xbe,0xe0,0xb5,0x87,0xe0,0xb4,0xbe,0xe0,0xb5,0x86,0xe0,0xb5,0x97,0xe0,
	0xb7,0x99,0xe0,0xb7,0x8a,0xe0,0xb7,0x99,0xe0,0xb7,0x8f,0xe0,0xb7,0x9c,0xe0,0xb7,0x8a,0xe0,0xb7,0x99,0xe0,0xb7,0x9f,0xe0,0xb9,0x8d,0xe0,0xb8,0xb2,0xe0,0xbb,0x8d,
	0xe0,0xba,0xb2,0xe0,0xba,0xab,0xe0,0xba,0x99,0xe0,0xba,0xab,0xe0,0xba,0xa1,0xe0,0xbc,0x8b,0xe0,0xbd,0x82,0xe0,0xbe,0xb7,0xe0,0xbd,0x8c,0xe0,0xbe,0xb7,0xe0,0xbd,
	0x91,0xe0,0xbe,0xb7,0xe0,0xbd,0x96,0xe0,0xbe,0xb7,0xe0,0xbd,0x9b,0xe0,0xbe,0xb7,0xe0,0xbd,0x80,0xe0,0xbe,0xb5,0xe0,0xbd,0xb1,0xe0,0xbd,0xb2,0xe0,0xbd,0xb1,0xe0,
	0xbd,0xb4,0xe0,0xbe,0xb2,0xe0,0xbe,0x80,0xe0,0xbe,0xb2,0xe0,0xbe,0x81,0xe0,0xbe,0xb3,0xe0,0xbe,0x80,0xe0,0xbe,0xb3,0xe0,0xbe,0x81,0xe0,0xbd,0xb1,0xe0,0xbe,0x80,
	0xe0,0xbe,0x92,0xe0,0xbe,0xb7,0xe0,0xbe,0x9c,0xe0,0xbe,0xb7,0xe0,0xbe,0xa1,0xe0,0xbe,0xb7,0xe0,0xbe,0xa6,0xe0,0xbe,0xb7,0xe0,0xbe,0xab,0xe0,0xbe,0xb7,0xe0,0xbe,
	0x90,0xe0,0xbe,0xb5,0xe1,0x80,0xa5,0xe1,0x80,0xae,0xe1,0x83,0x9c,0xe1,0xac,0x85,0xe1,0xac,0xb5,0xe1,0xac,0x87,0xe1,0xac,0xb5,0xe1,0xac,0x89,0xe1,0xac,0xb5,0xe1,
	0xac,0x8b,0xe1,0xac,0xb5,0xe1,0xac,0x8d,0xe1,0xac,0xb5,0xe1,0xac,0x91,0xe1,0xac,0xb5,0xe1,0xac,0xba,0xe1,0xac,0xb5,0xe1,0xac,0xbc,0xe1,0xac,0xb5,0xe1,0xac,0xbe,
	0xe1,0xac,0xb5,0xe1,0xac,0xbf,0xe1,0xac,0xb5,0xe1,0xad,0x82,0xe1,0xac,0xb5,0x41,0xc3,0x86,0x42,0x44,0x45,0xc6,0x8e,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
	0xc8,0xa2,0x50,0x52,0x54,0x55,0x57,0x61,0xc9,0x90,0xc9,0x91,0xe1,0xb4,0x82,0x62,0x64,0x65,0xc9,0x99,0xc9,0x9b,0xc9,0x9c,0x67,0x6b,0x6d,0xc5,0x8b,0x6f,0xc9,0x94,
	0xe1,0xb4,0x96,0xe1,0xb4,0x97,0x70,0x74,0x75,0xe1,0xb4,0x9d,0xc9,0xaf,0x76,0xe1,0xb4,0xa5,0xce,0xb2,0xce,0xb3,0xce,0xb4,0xcf,0x86,0xcf,0x87,0x69,0x72,0x75,0x76,
	0xce,0xb2,0xce,0xb3,0xcf,0x81,0xcf,0x86,0xcf,0x87,0xd0,0xbd,0xc9,0x92,0x63,0xc9,0x95,0xc3,0xb0,0xc9,0x9c,0x66,0xc9,0x9f,0xc9,0xa1,0xc9,0xa5,0xc9,0xa8,0xc9,0xa9,
	0xc9,0xaa,0xe1,0xb5,0xbb,0xca,0x9d,0xc9,0xad,0xe1,0xb6,0x85,0xca,0x9f,0xc9,0xb1,0xc9,0xb0,0xc9,0xb2,0xc9,0xb3,0xc9,0xb4,0xc9,0xb5,0xc9,0xb8,0xca,0x82,0xca,0x83,
	0xc6,0xab,0xca,0x89,0xca,0x8a,0xe1,0xb4,0x9c,0xca,0x8b,0xca,0x8c,0x7a,0xca,0x90,0xca,0x91,0xca,0x92,0xce,0xb8,0x41,0xcc,0xa5,0x61,0xcc,0xa5,0x42,0xcc,0x87,0x62,
	0xcc,0x87,0x42,0xcc,0xa3,0x62,0xcc,0xa3,0x42,0xcc,0xb1,0x62,0xcc,0xb1,0xc3,0x87,0xcc,0x81,0xc3,0xa7,0xcc,0x81,0x44,0xcc,0x87,0x64,0xcc,0x87,0x44,0xcc,0xa3,0x64,
	0xcc,0xa3,0x44,0xcc,0xb1,0x64,0xcc,0xb1,0x44,0xcc,0xa7,0x64,0xcc,0xa7,0x44,0xcc,0xad,0x64,0xcc,0xad,0xc4,0x92,0xcc,0x80,0xc4,0x93,0xcc,0x80,0xc4,0x92,0xcc,0x81,
	0xc4,0x93,0xcc,0x81,0x45,0xcc,0xad,0x65,0xcc,0xad,0x45,0xcc,0xb0,0x65,0xcc,0xb0,0xc8,0xa8,0xcc,0x86,0xc8,0xa9,0xcc,0x86,0x46,0xcc,0x87,0x66,0xcc,0x87,0x47,0xcc,
	0x84,0x67,0xcc,0x84,0x48,0xcc,0x87,0x68,0xcc,0x87,0x48,0xcc,0xa3,0x68,0xcc,0xa3,0x48,0xcc,0x88,0x68,0xcc,0x88,0x48,0xcc,0xa7,0x68,0xcc,0xa7,0x48,0xcc,0xae,0x68,
	0xcc,0xae,0x49,0xcc,0xb0,0x69,0xcc,0xb0,0xc3,0x8f,0xcc,0x81,0xc3,0xaf,0xcc,0x81,0x4b,0xcc,0x81,0x6b,0xcc,0x81,0x4b,0xcc,0xa3,0x6b,0xcc,0xa3,0x4b,0xcc,0xb1,0x6b,
	0xcc,0xb1,0x4c,0xcc,0xa3,0x6c,0xcc,0xa3,0xe1,0xb8,0xb6,0xcc,0x84,0xe1,0xb8,0xb7,0xcc,0x84,0x4c,0xcc,0xb1,0x6c,0xcc,0xb1,0x4c,0xcc,0xad,0x6c,0xcc,0xad,0x4d,0xcc,
	0x81,0x6d,0xcc,0x81,0x4d,0xcc,0x87,0x6d,0xcc,0x87,0x4d,0xcc,0xa3,0x6d,0xcc,0xa3,0x4e,0xcc,0x87,0x6e,0xcc,0x87,0x4e,0xcc,0xa3,0x6e,0xcc,0xa3,0x4e,0xcc,0xb1,0x6e,
	0xcc,0xb1,0x4e,0xcc,0xad,0x6e,0xcc,0xad,0xc3,0x95,0xcc,0x81,0xc3,0xb5,0xcc,0x81,0xc3,0x95,0xcc,0x88,0xc3,0xb5,0xcc,0x88,0xc5,0x8c,0xcc,0x80,0xc5,0x8d,0xcc,0x80,
	0xc5,0x8c,0xcc,0x81,0xc5,0x8d,0xcc,0x81,0x50,0xcc,0x81,0x70,0xcc,0x81,0x50,0xcc,0x87,0x70,0xcc,0x87,0x52,0xcc,0x87,0x72,0xcc,0x87,0x52,0xcc,0xa3,0x72,0xcc,0xa3,
	0xe1,0xb9,0x9a,0xcc,0x84,0xe1,0xb9,0x9b,0xcc,0x84,0x52,0xcc,0xb1,0x72,0xcc,0xb1,0x53,0xcc,0x87,0x73,0xcc,0x87,0x53,0xcc,0xa3,0x73,0xcc,0xa3,0xc5,0x9a,0xcc,0x87,
	0xc5,0x9b,0xcc,0x87,0xc5,0xa0,0xcc,0x87,0xc5,0xa1,0xcc,0x87,0xe1,0xb9,0xa2,0xcc,0x87,0xe1,0xb9,0xa3,0xcc,0x87,0x54,0xcc,0x87,0x74,0xcc,0x87,0x54,0xcc,0xa3,0x74,
	0xcc,0xa3,0x54,0xcc,0xb1,0x74,0xcc,0xb1,0x54,0xcc,0xad,0x74,0xcc,0xad,0x55,0xcc,0xa4,0x75,0xcc,0xa4,0x55,0xcc,0xb0,0x75,0xcc,0xb0,0x55,0xcc,0xad,0x75,0xcc,0xad,
	0xc5,0xa8,0xcc,0x81,0xc5,0xa9,0xcc,0x81,0xc5,0xaa,0xcc,0x88,0xc5,0xab,0xcc,0x88,0x56,0xcc,0x83,0x76,0xcc,0x83,0x56,0xcc,0xa3,0x76,0xcc,0xa3,0x57,0xcc,0x80,0x77,
	0xcc,0x80,0x57,0xcc,0x81,0x77,0xcc,0x81,0x57,0xcc,0x88,0x77,0xcc,0x88,0x57,0xcc,0x87,0x77,0xcc,0x87,0x57,0xcc,0xa3,0x77,0xcc,0xa3,0x58,0xcc,0x87,0x78,0xcc,0x87,
	0x58,0xcc,0x88,0x78,0xcc,0x88,0x59,0xcc,0x87,0x79,0xcc,0x87,0x5a,0xcc,0x82,0x7a,0xcc,0x82,0x5a,0xcc,0xa3,0x7a,0xcc,0xa3,0x5a,0xcc,0xb1,0x7a,0xcc,0xb1,0x68,0xcc,
	0xb1,0x74,0xcc,0x88,0x77,0xcc,0x8a,0x79,0xcc,0x8a,0x61,0xca,0xbe,0xc5,0xbf,0xcc,0x87,0x41,0xcc,0xa3,0x61,0xcc,0xa3,0x41,0xcc,0x89,0x61,0xcc,0x89,0xc3,0x82,0xcc,
	0x81,0xc3,0xa2,0xcc,0x81,0xc3,0x82,0xcc,0x80,0xc3,0xa2,0xcc,0x80,0xc3,0x82,0xcc,0x89,0xc3,0xa2,0xcc,0x89,0xc3,0x82,0xcc,0x83,0xc3,0xa2,0xcc,0x83,0xe1,0xba,0xa0,
	0xcc,0x82,0xe1,0xba,0xa1,0xcc,0x82,0xc4,0x82,0xcc,0x81,0xc4,0x83,0xcc,0x81,0xc4,0x82,0xcc,0x80,0xc4,0x83,0xcc,0x80,0xc4,0x82,0xcc,0x89,0xc4,0x83,0xcc,0x89,0xc4,
	0x82,0xcc,0x83,0xc4,0x83,0xcc,0x83,0xe1,0xba,0xa0,0xcc,0x86,0xe1,0xba,0xa1,0xcc,0x86,0x45,0xcc,0xa3,0x65,0xcc,0xa3,0x45,0xcc,0x89,0x65,0xcc,0x89,0x45,0xcc,0x83,
	0x65,0xcc,0x83,0xc3,0x8a,0xcc,0x81,0xc3,0xaa,0xcc,0x81,0xc3,0x8a,0xcc,0x80,0xc3,0xaa,0xcc,0x80,0xc3,0x8a,0xcc,0x89,0xc3,0xaa,0xcc,0x89,0xc3,0x8a,0xcc,0x83,0xc3,
	0xaa,0xcc,0x83,0xe1,0xba,0xb8,0xcc,0x82,0xe1,0xba,0xb9,0xcc,0x82,0x49,0xcc,0x89,0x69,0xcc,0x89,0x49,0xcc,0xa3,0x69,0xcc,0xa3,0x4f,0xcc,0xa3,0x6f,0xcc,0xa3,0x4f,
	0xcc,0x89,0x6f,0xcc,0x89,0xc3,0x94,0xcc,0x81,0xc3,0xb4,0xcc,0x81,0xc3,0x94,0xcc,0x80,0xc3,0xb4,0xcc,0x80,0xc3,0x94,0xcc,0x89,0xc3,0xb4,0xcc,0x89,0xc3,0x94,0xcc,
	0x83,0xc3,0xb4,0xcc,0x83,0xe1,0xbb,0x8c,0xcc,0x82,0xe1,0xbb,0x8d,0xcc,0x82,0xc6,0xa0,0xcc,0x81,0xc6,0xa1,0xcc,0x81,0xc6,0xa0,0xcc,0x80,0xc6,0xa1,0xcc,0x80,0xc6,
	0xa0,0xcc,0x89,0xc6,0xa1,0xcc,0x89,0xc6,0xa0,0xcc,0x83,0xc6,0xa1,0xcc,0x83,0xc6,0xa0,0xcc,0xa3,0xc6,0xa1,0xcc,0xa3,0x55,0xcc,0xa3,0x75,0xcc,0xa3,0x55,0xcc,0x89,
	0x75,0xcc,0x89,0xc6,0xaf,0xcc,0x81,0xc6,0xb0,0xcc,0x81,0xc6,0xaf,0xcc,0x80,0xc6,0xb0,0xcc,0x80,0xc6,0xaf,0xcc,0x89,0xc6,0xb0,0xcc,0x89,0xc6,0xaf,0xcc,0x83,0xc6,
	0xb0,0xcc,0x83,0xc6,0xaf,0xcc,0xa3,0xc6,0xb0,0xcc,0xa3,0x59,0xcc,0x80,0x79,0xcc,0x80,0x59,0xcc,0xa3,0x79,0xcc,0xa3,0x59,0xcc,0x89,0x79,0xcc,0x89,0x59,0xcc,0x83,
	0x79,0xcc,0x83,0xce,0xb1,0xcc,0x93,0xce,0xb1,0xcc,0x94,0xe1,0xbc,0x80,0xcc,0x80,0xe1,0xbc,0x81,0xcc,0x80,0xe1,0xbc,0x80,0xcc,0x81,0xe1,0xbc,0x81,0xcc,0x81,0xe1,
	0xbc,0x80,0xcd,0x82,0xe1,0xbc,0x81,0xcd,0x82,0xce,0x91,0xcc,0x93,0xce,0x91,0xcc,0x94,0xe1,0xbc,0x88,0xcc,0x80,0xe1,0xbc,0x89,0xcc,0x80,0xe1,0xbc,0x88,0xcc,0x81,
	0xe1,0xbc,0x89,0xcc,0x81,0xe1,0xbc,0x88,0xcd,0x82,0xe1,0xbc,0x89,0xcd,0x82,0xce,0xb5,0xcc,0x93,0xce,0xb5,0xcc,0x94,0xe1,0xbc,0x90,0xcc,0x80,0xe1,0xbc,0x91,0xcc,
	0x80,0xe1,0xbc,0x90,0xcc,0x81,0xe1,0xbc,0x91,0xcc,0x81,0xce,0x95,0xcc,0x93,0xce,0x95,0xcc,0x94,0xe1,0xbc,0x98,0xcc,0x80,0xe1,0xbc,0x99,0xcc,0x80,0xe1,0xbc,0x98,
	0xcc,0x81,0xe1,0xbc,0x99,0xcc,0x81,0xce,0xb7,0xcc,0x93,0xce,0xb7,0xcc,0x94,0xe1,0xbc,0xa0,0xcc,0x80,0xe1,0xbc,0xa1,0xcc,0x80,0xe1,0xbc,0xa0,0xcc,0x81,0xe1,0xbc,
	0xa1,0xcc,0x81,0xe1,0xbc,0xa0,0xcd,0x82,0xe1,0xbc,0xa1,0xcd,0x82,0xce,0x97,0xcc,0x93,0xce,0x97,0xcc,0x94,0xe1,0xbc,0xa8,0xcc,0x80,0xe1,0xbc,0xa9,0xcc,0x80,0xe1,
	0xbc,0xa8,0xcc,0x81,0xe1,0xbc,0xa9,0xcc,0x81,0xe1,0xbc,0xa8,0xcd,0x82,0xe1,0xbc,0xa9,0xcd,0x82,0xce,0xb9,0xcc,0x93,0xce,0xb9,0xcc,0x94,0xe1,0xbc,0xb0,0xcc,0x80,
	0xe1,0xbc,0xb1,0xcc,0x80,0xe1,0xbc,0xb0,0xcc,0x81,0xe1,0xbc,0xb1,0xcc,0x81,0xe1,0xbc,0xb0,0xcd,0x82,0xe1,0xbc,0xb1,0xcd,0x82,0xce,0x99,0xcc,0x93,0xce,0x99,0xcc,
	0x94,0xe1,0xbc,0xb8,0xcc,0x80,0xe1,0xbc,0xb9,0xcc,0x80,0xe1,0xbc,0xb8,0xcc,0x81,0xe1,0xbc,0xb9,0xcc,0x81,0xe1,0xbc,0xb8,0xcd,0x82,0xe1,0xbc,0xb9,0xcd,0x82,0xce,
	0xbf,0xcc,0x93,0xce,0xbf,0xcc,0x94,0xe1,0xbd,0x80,0xcc,0x80,0xe1,0xbd,0x81,0xcc,0x80,0xe1,0xbd,0x80,0xcc,0x81,0xe1,0xbd,0x81,0xcc,0x81,0xce,0x9f,0xcc,0x93,0xce,
	0x9f,0xcc,0x94,0xe1,0xbd,0x88,0xcc,0x80,0xe1,0xbd,0x89,0xcc,0x80,0xe1,0xbd,0x88,0xcc,0x81,0xe1,0xbd,0x89,0xcc,0x81,0xcf,0x85,0xcc,0x93,0xcf,0x85,0xcc,0x94,0xe1,
	0xbd,0x90,0xcc,0x80,0xe1,0xbd,0x91,0xcc,0x80,0xe1,0xbd,0x90,0xcc,0x81,0xe1,0xbd,0x91,0xcc,0x81,0xe1,0xbd,0x90,0xcd,0x82,0xe1,0xbd,0x91,0xcd,0x82,0xce,0xa5,0xcc,
	0x94,0xe1,0xbd,0x99,0xcc,0x80,0xe1,0xbd,0x99,0xcc,0x81,0xe1,0xbd,0x99,0xcd,0x82,0xcf,0x89,0xcc,0x93,0xcf,0x89,0xcc,0x94,0xe1,0xbd,0xa0,0xcc,0x80,0xe1,0xbd,0xa1,
	0xcc,0x80,0xe1,0xbd,0xa0,0xcc,0x81,0xe1,0xbd,0xa1,0xcc,0x81,0xe1,0xbd,0xa0,0xcd,0x82,0xe1,0xbd,0xa1,0xcd,0x82,0xce,0xa9,0xcc,0x93,0xce,0xa9,0xcc,0x94,0xe1,0xbd,
	0xa8,0xcc,0x80,0xe1,0xbd,0xa9,0xcc,0x80,0xe1,0xbd,0xa8,0xcc,0x81,0xe1,0xbd,0xa9,0xcc,0x81,0xe1,0xbd,0xa8,0xcd,0x82,0xe1,0xbd,0xa9,0xcd,0x82,0xce,0xb1,0xcc,0x80,
	0xce,0xac,0xce,0xb5,0xcc,0x80,0xce,0xad,0xce,0xb7,0xcc,0x80,0xce,0xae,0xce,0xb9,0xcc,0x80,0xce,0xaf,0xce,0xbf,0xcc,0x80,0xcf,0x8c,0xcf,0x85,0xcc,0x80,0xcf,0x8d,
	0xcf,0x89,0xcc,0x80,0xcf,0x8e,0xe1,0xbc,0x80,0xcd,0x85,0xe1,0xbc,0x81,0xcd,0x85,0xe1,0xbc,0x82,0xcd,0x85,0xe1,0xbc,0x83,0xcd,0x85,0xe1,0xbc,0x84,0xcd,0x85,0xe1,
	0xbc,0x85,0xcd,0x85,0xe1,0xbc,0x86,0xcd,0x85,0xe1,0xbc,0x87,0xcd,0x85,0xe1,0xbc,0x88,0xcd,0x85,0xe1,0xbc,0x89,0xcd,0x85,0xe1,0xbc,0x8a,0xcd,0x85,0xe1,0xbc,0x8b,
	0xcd,0x85,0xe1,0xbc,0x8c,0xcd,0x85,0xe1,0xbc,0x8d,0xcd,0x85,0xe1,0xbc,0x8e,0xcd,0x85,0xe1,0xbc,0x8f,0xcd,0x85,0xe1,0xbc,0xa0,0xcd,0x85,0xe1,0xbc,0xa1,0xcd,0x85,
	0xe1,0xbc,0xa2,0xcd,0x85,0xe1,0xbc,0xa3,0xcd,0x85,0xe1,0xbc,0xa4,0xcd,0x85,0xe1,0xbc,0xa5,0xcd,0x85,0xe1,0xbc,0xa6,0xcd,0x85,0xe1,0xbc,0xa7,0xcd,0x85,0xe1,0xbc,
	0xa8,0xcd,0x85,0xe1,0xbc,0xa9,0xcd,0x85,0xe1,0xbc,0xaa,0xcd,0x85,0xe1,0xbc,0xab,0xcd,0x85,0xe1,0xbc,0xac,0xcd,0x85,0xe1,0xbc,0xad,0xcd,0x85,0xe1,0xbc,0xae,0xcd,
	0x85,0xe1,0xbc,0xaf,0xcd,0x85,0xe1,0xbd,0xa0,0xcd,0x85,0xe1,0xbd,0xa1,0xcd,0x85,0xe1,0xbd,0xa2,0xcd,0x85,0xe1,0xbd,0xa3,0xcd,0x85,0xe1,0xbd,0xa4,0xcd,0x85,0xe1,
	0xbd,0xa5,0xcd,0x85,0xe1,0xbd,0xa6,0xcd,0x85,0xe1,0xbd,0xa7,0xcd,0x85,0xe1,0xbd,0xa8,0xcd,0x85,0xe1,0xbd,0xa9,0xcd,0x85,0xe1,0xbd,0xaa,0xcd,0x85,0xe1,0xbd,0xab,
	0xcd,0x85,0xe1,0xbd,0xac,0xcd,0x85,0xe1,0xbd,0xad,0xcd,0x85,0xe1,0xbd,0xae,0xcd,0x85,0xe1,0xbd,0xaf,0xcd,0x85,0xce,0xb1,0xcc,0x86,0xce,0xb1,0xcc,0x84,0xe1,0xbd,
	0xb0,0xcd,0x85,0xce,0xb1,0xcd,0x85,0xce,0xac,0xcd,0x85,0xce,0xb1,0xcd,0x82,0xe1,0xbe,0xb6,0xcd,0x85,0xce,0x91,0xcc,0x86,0xce,0x91,0xcc,0x84,0xce,0x91,0xcc,0x80,
	0xce,0x86,0xce,0x91,0xcd,0x85,0x20,0xcc,0x93,0xce,0xb9,0x20,0xcc,0x93,0x20,0xcd,0x82,0xc2,0xa8,0xcd,0x82,0xe1,0xbd,0xb4,0xcd,0x85,0xce,0xb7,0xcd,0x85,0xce,0xae,
	0xcd,0x85,0xce,0xb7,0xcd,0x82,0xe1,0xbf,0x86,0xcd,0x85,0xce,0x95,0xcc,0x80,0xce,0x88,0xce,0x97,0xcc,0x80,0xce,0x89,0xce,0x97,0xcd,0x85,0xe1,0xbe,0xbf,0xcc,0x80,
	0xe1,0xbe,0xbf,0xcc,0x81,0xe1,0xbe,0xbf,0xcd,0x82,0xce,0xb9,0xcc,0x86,0xce,0xb9,0xcc,0x84,0xcf,0x8a,0xcc,0x80,0xce,0x90,0xce,0xb9,0xcd,0x82,0xcf,0x8a,0xcd,0x82,
	0xce,0x99,0xcc,0x86,0xce,0x99,0xcc,0x84,0xce,0x99,0xcc,0x80,0xce,0x8a,0xe1,0xbf,0xbe,0xcc,0x80,0xe1,0xbf,0xbe,0xcc,0x81,0xe1,0xbf,0xbe,0xcd,0x82,0xcf,0x85,0xcc,
	0x86,0xcf,0x85,0xcc,0x84,0xcf,0x8b,0xcc,0x80,0xce,0xb0,0xcf,0x81,0xcc,0x93,0xcf,0x81,0xcc,0x94,0xcf,0x85,0xcd,0x82,0xcf,0x8b,0xcd,0x82,0xce,0xa5,0xcc,0x86,0xce,
	0xa5,0xcc,0x84,0xce,0xa5,0xcc,0x80,0xce,0x8e,0xce,0xa1,0xcc,0x94,0xc2,0xa8,0xcc,0x80,0xce,0x85,0x60,0xe1,0xbd,0xbc,0xcd,0x85,0xcf,0x89,0xcd,0x85,0xcf,0x8e,0xcd,
	0x85,0xcf,0x89,0xcd,0x82,0xe1,0xbf,0xb6,0xcd,0x85,0xce,0x9f,0xcc,0x80,0xce,0x8c,0xce,0xa9,0xcc,0x80,0xce,0x8f,0xce,0xa9,0xcd,0x85,0xc2,0xb4,0x20,0xcc,0x94,0xe2,
	0x80,0x82,0xe2,0x80,0x83,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xe2,0x80,0x90,0x20,0xcc,0xb3,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x20,0xe2,0x80,0xb2,0xe2,0x80,
	0xb2,0xe2,0x80,0xb2,0xe2,0x80,0xb2,0xe2,0x80,0xb2,0xe2,0x80,0xb5,0xe2,0x80,0xb5,0xe2,0x80,0xb5,0xe2,0x80,0xb5,0xe2,0x80,0xb5,0x21,0x21,0x20,0xcc,0x85,0x3f,0x3f,
	0x3f,0x21,0x21,0x3f,0xe2,0x80,0xb2,0xe2,0x80,0xb2,0xe2,0x80,0xb2,0xe2,0x80,0xb2,0x20,0x30,0x69,0x34,0x35,0x36,0x37,0x38,0x39,0x2b,0xe2,0x88,0x92,0x3d,0x28,0x29,
	0x6e,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x2b,0xe2,0x88,0x92,0x3d,0x28,0x29,0x61,0x65,0x6f,0x78,0xc9,0x99,0x68,0x6b,0x6c,0x6d,0x6e,0x70,0x73,0x74,
	0x52,0x73,0x61,0x2f,0x63,0x61,0x2f,0x73,0x43,0xc2,0xb0,0x43,0x63,0x2f,0x6f,0x63,0x2f,0x75,0xc6,0x90,0xc2,0xb0,0x46,0x67,0x48,0x48,0x48,0x68,0xc4,0xa7,0x49,0x49,
	0x4c,0x6c,0x4e,0x4e,0x6f,0x50,0x51,0x52,0x52,0x52,0x53,0x4d,0x54,0x45,0x4c,0x54,0x4d,0x5a,0xce,0xa9,0x5a,0x4b,0xc3,0x85,0x42,0x43,0x65,0x45,0x46,0x4d,0x6f,0xd7,
	0x90,0xd7,0x91,0xd7,0x92,0xd7,0x93,0x69,0x46,0x41,0x58,0xcf,0x80,0xce,0xb3,0xce,0x93,0xce,0xa0,0xe2,0x88,0x91,0x44,0x64,0x65,0x69,0x6a,0x31,0xe2,0x81,0x84,0x37,
	0x31,0xe2,0x81,0x84,0x39,0x31,0xe2,0x81,0x84,0x31,0x30,0x31,0xe2,0x81,0x84,0x33,0x32,0xe2,0x81,0x84,0x33,0x31,0xe2,0x81,0x84,0x35,0x32,0xe2,0x81,0x84,0x35,0x33,
	0xe2,0x81,0x84,0x35,0x34,0xe2,0x81,0x84,0x35,0x31,0xe2,0x81,0x84,0x36,0x35,0xe2,0x81,0x84,0x36,0x31,0xe2,0x81,0x84,0x38,0x33,0xe2,0x81,0x84,0x38,0x35,0xe2,0x81,
	0x84,0x38,0x37,0xe2,0x81,0x84,0x38,0x31,0xe2,0x81,0x84,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x56,0x56,0x56,0x49,0x56,0x49,0x49,0x56,0x49,0x49,0x49,0x49,0x58,0x58,
	0x58,0x49,0x58,0x49,0x49,0x4c,0x43,0x44,0x4d,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x76,0x76,0x76,0x69,0x76,0x69,0x69,0x76,0x69,0x69,0x69,0x69,0x78,0x78,0x78,0x69,
	0x78,0x69,0x69,0x6c,0x63,0x64,0x6d,0x30,0xe2,0x81,0x84,0x33,0xe2,0x86,0x90,0xcc,0xb8,0xe2,0x86,0x92,0xcc,0xb8,0xe2,0x86,0x94,0xcc,0xb8,0xe2,0x87,0x90,0xcc,0xb8,
	0xe2,0x87,0x94,0xcc,0xb8,0xe2,0x87,0x92,0xcc,0xb8,0xe2,0x88,0x83,0xcc,0xb8,0xe2,0x88,0x88,0xcc,0xb8,0xe2,0x88,0x8b,0xcc,0xb8,0xe2,0x88,0xa3,0xcc,0xb8,0xe2,0x88,
	0xa5,0xcc,0xb8,0xe2,0x88,0xab,0xe2,0x88,0xab,0xe2,0x88,0xab,0xe2,0x88,0xab,0xe2,0x88,0xab,0xe2,0x88,0xae,0xe2,0x88,0xae,0xe2,0x88,0xae,0xe2,0x88,0xae,0xe2,0x88,
	0xae,0xe2,0x88,0xbc,0xcc,0xb8,0xe2,0x89,0x83,0xcc,0xb8,0xe2,0x89,0x85,0xcc,0xb8,0xe2,0x89,0x88,0xcc,0xb8,0x3d,0xcc,0xb8,0xe2,0x89,0xa1,0xcc,0xb8,0xe2,0x89,0x8d,
	0xcc,0xb8,0x3c,0xcc,0xb8,0x3e,0xcc,0xb8,0xe2,0x89,0xa4,0xcc,0xb8,0xe2,0x89,0xa5,0xcc,0xb8,0xe2,0x89,0xb2,0xcc,0xb8,0xe2,0x89,0xb3,0xcc,0xb8,0xe2,0x89,0xb6,0xcc,
	0xb8,0xe2,0x89,0xb7,0xcc,0xb8,0xe2,0x89,0xba,0xcc,0xb8,0xe2,0x89,0xbb,0xcc,0xb8,0xe2,0x8a,0x82,0xcc,0xb8,0xe2,0x8a,0x83,0xcc,0xb8,0xe2,0x8a,0x86,0xcc,0xb8,0xe2,
	0x8a,0x87,0xcc,0xb8,0xe2,0x8a,0xa2,0xcc,0xb8,0xe2,0x8a,0xa8,0xcc,0xb8,0xe2,0x8a,0xa9,0xcc,0xb8,0xe2,0x8a,0xab,0xcc,0xb8,0xe2,0x89,0xbc,0xcc,0xb8,0xe2,0x89,0xbd,
	0xcc,0xb8,0xe2,0x8a,0x91,0xcc,0xb8,0xe2,0x8a,0x92,0xcc,0xb8,0xe2,0x8a,0xb2,0xcc,0xb8,0xe2,0x8a,0xb3,0xcc,0xb8,0xe2,0x8a,0xb4,0xcc,0xb8,0xe2,0x8a,0xb5,0xcc,0xb8,
	0xe3,0x80,0x88,0xe3,0x80,0x89,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x31,0x30,0x31,0x31,0x31,0x32,0x31,0x33,0x31,0x34,0x31,0x35,0x31,0x36,0x31,0x37,0x31,
	0x38,0x31,0x39,0x32,0x30,0x28,0x31,0x29,0x28,0x32,0x29,0x28,0x33,0x29,0x28,0x34,0x29,0x28,0x35,0x29,0x28,0x36,0x29,0x28,0x37,0x29,0x28,0x38,0x29,0x28,0x39,0x29,
	0x28,0x31,0x30,0x29,0x28,0x31,0x31,0x29,0x28,0x31,0x32,0x29,0x28,0x31,0x33,0x29,0x28,0x31,0x34,0x29,0x28,0x31,0x35,0x29,0x28,0x31,0x36,0x29,0x28,0x31,0x37,0x29,
	0x28,0x31,0x38,0x29,0x28,0x31,0x39,0x29,0x28,0x32,0x30,0x29,0x31,0x2e,0x32,0x2e,0x33,0x2e,0x34,0x2e,0x35,0x2e,0x36,0x2e,0x37,0x2e,0x38,0x2e,0x39,0x2e,0x31,0x30,
	0x2e,0x31,0x31,0x2e,0x31,0x32,0x2e,0x31,0x33,0x2e,0x31,0x34,0x2e,0x31,0x35,0x2e,0x31,0x36,0x2e,0x31,0x37,0x2e,0x31,0x38,0x2e,0x31,0x39,0x2e,0x32,0x30,0x2e,0x28,
	0x61,0x29,0x28,0x62,0x29,0x28,0x63,0x29,0x28,0x64,0x29,0x28,0x65,0x29,0x28,0x66,0x29,0x28,0x67,0x29,0x28,0x68,0x29,0x28,0x69,0x29,0x28,0x6a,0x29,0x28,0x6b,0x29,
	0x28,0x6c,0x29,0x28,0x6d,0x29,0x28,0x6e,0x29,0x28,0x6f,0x29,0x28,0x70,0x29,0x28,0x71,0x29,0x28,0x72,0x29,0x28,0x73,0x29,0x28,0x74,0x29,0x28,0x75,0x29,0x28,0x76,
	0x29,0x28,0x77,0x29,0x28,0x78,0x29,0x28,0x79,0x29,0x28,0x7a,0x29,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,
	0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,
	0x7a,0x30,0xe2,0x88,0xab,0xe2,0x88,0xab,0xe2,0x88,0xab,0xe2,0x88,0xab,0x3a,0x3a,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0xe2,0xab,0x9d,0xcc,0xb8,0x6a,0x56,0xe2,0xb5,0xa1,
	0xe6,0xaf,0x8d,0xe9,0xbe,0x9f,0xe4,0xb8,0x80,0xe4,0xb8,0xa8,0xe4,0xb8,0xb6,0xe4,0xb8,0xbf,0xe4,0xb9,0x99,0xe4,0xba,0x85,0xe4,0xba,0x8c,0xe4,0xba,0xa0,0xe4,0xba,
	0xba,0xe5,0x84,0xbf,0xe5,0x85,0xa5,0xe5,0x85,0xab,0xe5,0x86,0x82,0xe5,0x86,0x96,0xe5,0x86,0xab,0xe5,0x87,0xa0,0xe5,0x87,0xb5,0xe5,0x88,0x80,0xe5,0x8a,0x9b,0xe5,
	0x8b,0xb9,0xe5,0x8c,0x95,0xe5,0x8c,0x9a,0xe5,0x8c,0xb8,0xe5,0x8d,0x81,0xe5,0x8d,0x9c,0xe5,0x8d,0xa9,0xe5,0x8e,0x82,0xe5,0x8e,0xb6,0xe5,0x8f,0x88,0xe5,0x8f,0xa3,
	0xe5,0x9b,0x97,0xe5,0x9c,0x9f,0xe5,0xa3,0xab,0xe5,0xa4,0x82,0xe5,0xa4,0x8a,0xe5,0xa4,0x95,0xe5,0xa4,0xa7,0xe5,0xa5,0xb3,0xe5,0xad,0x90,0xe5,0xae,0x80,0xe5,0xaf,
	0xb8,0xe5,0xb0,0x8f,0xe5,0xb0,0xa2,0xe5,0xb0,0xb8,0xe5,0xb1,0xae,0xe5,0xb1,0xb1,0xe5,0xb7,0x9b,0xe5,0xb7,0xa5,0xe5,0xb7,0xb1,0xe5,0xb7,0xbe,0xe5,0xb9,0xb2,0xe5,
	0xb9,0xba,0xe5,0xb9,0xbf,0xe5,0xbb,0xb4,0xe5,0xbb,0xbe,0xe5,0xbc,0x8b,0xe5,0xbc,0x93,0xe5,0xbd,0x90,0xe5,0xbd,0xa1,0xe5,0xbd,0xb3,0xe5,0xbf,0x83,0xe6,0x88,0x88,
	0xe6,0x88,0xb6,0xe6,0x89,0x8b,0xe6,0x94,0xaf,0xe6,0x94,0xb4,0xe6,0x96,0x87,0xe6,0x96,0x97,0xe6,0x96,0xa4,0xe6,0x96,0xb9,0xe6,0x97,0xa0,0xe6,0x97,0xa5,0xe6,0x9b,
	0xb0,0xe6,0x9c,0x88,0xe6,0x9c,0xa8,0xe6,0xac,0xa0,0xe6,0xad,0xa2,0xe6,0xad,0xb9,0xe6,0xae,0xb3,0xe6,0xaf,0x8b,0xe6,0xaf,0x94,0xe6,0xaf,0x9b,0xe6,0xb0,0x8f,0xe6,
	0xb0,0x94,0xe6,0xb0,0xb4,0xe7,0x81,0xab,0xe7,0x88,0xaa,0xe7,0x88,0xb6,0xe7,0x88,0xbb,0xe7,0x88,0xbf,0xe7,0x89,0x87,0xe7,0x89,0x99,0xe7,0x89,0x9b,0xe7,0x8a,0xac,
	0xe7,0x8e,0x84,0xe7,0x8e,0x89,0xe7,0x93,0x9c,0xe7,0x93,0xa6,0xe7,0x94,0x98,0xe7,0x94,0x9f,0xe7,0x94,0xa8,0xe7,0x94,0xb0,0xe7,0x96,0x8b,0xe7,0x96,0x92,0xe7,0x99,
	0xb6,0xe7,0x99,0xbd,0xe7,0x9a,0xae,0xe7,0x9a,0xbf,0xe7,0x9b,0xae,0xe7,0x9f,0x9b,0xe7,0x9f,0xa2,0xe7,0x9f,0xb3,0xe7,0xa4,0xba,0xe7,0xa6,0xb8,0xe7,0xa6,0xbe,0xe7,
	0xa9,0xb4,0xe7,0xab,0x8b,0xe7,0xab,0xb9,0xe7,0xb1,0xb3,0xe7,0xb3,0xb8,0xe7,0xbc,0xb6,0xe7,0xbd,0x91,0xe7,0xbe,0x8a,0xe7,0xbe,0xbd,0xe8,0x80,0x81,0xe8,0x80,0x8c,
	0xe8,0x80,0x92,0xe8,0x80,0xb3,0xe8,0x81,0xbf,0xe8,0x82,0x89,0xe8,0x87,0xa3,0xe8,0x87,0xaa,0xe8,0x87,0xb3,0xe8,0x87,0xbc,0xe8,0x88,0x8c,0xe8,0x88,0x9b,0xe8,0x88,
	0x9f,0xe8,0x89,0xae,0xe8,0x89,0xb2,0xe8,0x89,0xb8,0xe8,0x99,0x8d,0xe8,0x99,0xab,0xe8,0xa1,0x80,0xe8,0xa1,0x8c,0xe8,0xa1,0xa3,0xe8,0xa5,0xbe,0xe8,0xa6,0x8b,0xe8,
	0xa7,0x92,0xe8,0xa8,0x80,0xe8,0xb0,0xb7,0xe8,0xb1,0x86,0xe8,0xb1,0x95,0xe8,0xb1,0xb8,0xe8,0xb2,0x9d,0xe8,0xb5,0xa4,0xe8,0xb5,0xb0,0xe8,0xb6,0xb3,0xe8,0xba,0xab,
	0xe8,0xbb,0x8a,0xe8,0xbe,0x9b,0xe8,0xbe,0xb0,0xe8,0xbe,0xb5,0xe9,0x82,0x91,0xe9,0x85,0x89,0xe9,0x87,0x86,0xe9,0x87,0x8c,0xe9,0x87,0x91,0xe9,0x95,0xb7,0xe9,0x96,
	0x80,0xe9,0x98,0x9c,0xe9,0x9a,0xb6,0xe9,0x9a,0xb9,0xe9,0x9b,0xa8,0xe9,0x9d,0x91,0xe9,0x9d,0x9e,0xe9,0x9d,0xa2,0xe9,0x9d,0xa9,0xe9,0x9f,0x8b,0xe9,0x9f,0xad,0xe9,
	0x9f,0xb3,0xe9,0xa0,0x81,0xe9,0xa2,0xa8,0xe9,0xa3,0x9b,0xe9,0xa3,0x9f,0xe9,0xa6,0x96,0xe9,0xa6,0x99,0xe9,0xa6,0xac,0xe9,0xaa,0xa8,0xe9,0xab,0x98,0xe9,0xab,0x9f,
	0xe9,0xac,0xa5,0xe9,0xac,0xaf,0xe9,0xac,0xb2,0xe9,0xac,0xbc,0xe9,0xad,0x9a,0xe9,0xb3,0xa5,0xe9,0xb9,0xb5,0xe9,0xb9,0xbf,0xe9,0xba,0xa5,0xe9,0xba,0xbb,0xe9,0xbb,
	0x83,0xe9,0xbb,0x8d,0xe9,0xbb,0x91,0xe9,0xbb,0xb9,0xe9,0xbb,0xbd,0xe9,0xbc,0x8e,0xe9,0xbc,0x93,0xe9,0xbc,0xa0,0xe9,0xbc,0xbb,0xe9,0xbd,0x8a,0xe9,0xbd,0x92,0xe9,
	0xbe,0x8d,0xe9,0xbe,0x9c,0xe9,0xbe,0xa0,0x20,0xe3,0x80,0x92,0xe5,0x8d,0x81,0xe5,0x8d,0x84,0xe5,0x8d,0x85,0xe3,0x81,0x8b,0xe3,0x82,0x99,0xe3,0x81,0x8d,0xe3,0x82,
	0x99,0xe3,0x81,0x8f,0xe3,0x82,0x99,0xe3,0x81,0x91,0xe3,0x82,0x99,0xe3,0x81,0x93,0xe3,0x82,0x99,0xe3,0x81,0x95,0xe3,0x82,0x99,0xe3,0x81,0x97,0xe3,0x82,0x99,0xe3,
	0x81,0x99,0xe3,0x82,0x99,0xe3,0x81,0x9b,0xe3,0x82,0x99,0xe3,0x81,0x9d,0xe3,0x82,0x99,0xe3,0x81,0x9f,0xe3,0x82,0x99,0xe3,0x81,0xa1,0xe3,0x82,0x99,0xe3,0x81,0xa4,
	0xe3,0x82,0x99,0xe3,0x81,0xa6,0xe3,0x82,0x99,0xe3,0x81,0xa8,0xe3,0x82,0x99,0xe3,0x81,0xaf,0xe3,0x82,0x99,0xe3,0x81,0xaf,0xe3,0x82,0x9a,0xe3,0x81,0xb2,0xe3,0x82,
	0x99,0xe3,0x81,0xb2,0xe3,0x82,0x9a,0xe3,0x81,0xb5,0xe3,0x82,0x99,0xe3,0x81,0xb5,0xe3,0x82,0x9a,0xe3,0x81,0xb8,0xe3,0x82,0x99,0xe3,0x81,0xb8,0xe3,0x82,0x9a,0xe3,
	0x81,0xbb,0xe3,0x82,0x99,0xe3,0x81,0xbb,0xe3,0x82,0x9a,0xe3,0x81,0x86,0xe3,0x82,0x99,0x20,0xe3,0x82,0x99,0x20,0xe3,0x82,0x9a,0xe3,0x82,0x9d,0xe3,0x82,0x99,0xe3,
	0x82,0x88,0xe3,0x82,0x8a,0xe3,0x82,0xab,0xe3,0x82,0x99,0xe3,0x82,0xad,0xe3,0x82,0x99,0xe3,0x82,0xaf,0xe3,0x82,0x99,0xe3,0x82,0xb1,0xe3,0x82,0x99,0xe3,0x82,0xb3,
	0xe3,0x82,0x99,0xe3,0x82,0xb5,0xe3,0x82,0x99,0xe3,0x82,0xb7,0xe3,0x82,0x99,0xe3,0x82,0xb9,0xe3,0x82,0x99,0xe3,0x82,0xbb,0xe3,0x82,0x99,0xe3,0x82,0xbd,0xe3,0x82,
	0x99,0xe3,0x82,0xbf,0xe3,0x82,0x99,0xe3,0x83,0x81,0xe3,0x82,0x99,0xe3,0x83,0x84,0xe3,0x82,0x99,0xe3,0x83,0x86,0xe3,0x82,0x99,0xe3,0x83,0x88,0xe3,0x82,0x99,0xe3,
	0x83,0x8f,0xe3,0x82,0x99,0xe3,0x83,0x8f,0xe3,0x82,0x9a,0xe3,0x83,0x92,0xe3,0x82,0x99,0xe3,0x83,0x92,0xe3,0x82,0x9a,0xe3,0x83,0x95,0xe3,0x82,0x99,0xe3,0x83,0x95,
	0xe3,0x82,0x9a,0xe3,0x83,0x98,0xe3,0x82,0x99,0xe3,0x83,0x98,0xe3,0x82,0x9a,0xe3,0x83,0x9b,0xe3,0x82,0x99,0xe3,0x83,0x9b,0xe3,0x82,0x9a,0xe3,0x82,0xa6,0xe3,0x82,
	0x99,0xe3,0x83,0xaf,0xe3,0x82,0x99,0xe3,0x83,0xb0,0xe3,0x82,0x99,0xe3,0x83,0xb1,0xe3,0x82,0x99,0xe3,0x83,0xb2,0xe3,0x82,0x99,0xe3,0x83,0xbd,0xe3,0x82,0x99,0xe3,
	0x82,0xb3,0xe3,0x83,0x88,0xe1,0x84,0x80,0xe1,0x84,0x81,0xe1,0x86,0xaa,0xe1,0x84,0x82,0xe1,0x86,0xac,0xe1,0x86,0xad,0xe1,0x84,0x83,0xe1,0x84,0x84,0xe1,0x84,0x85,
	0xe1,0x86,0xb0,0xe1,0x86,0xb1,0xe1,0x86,0xb2,0xe1,0x86,0xb3,0xe1,0x86,0xb4,0xe1,0x86,0xb5,0xe1,0x84,0x9a,0xe1,0x84,0x86,0xe1,0x84,0x87,0xe1,0x84,0x88,0xe1,0x84,
	0xa1,0xe1,0x84,0x89,0xe1,0x84,0x8a,0xe1,0x84,0x8b,0xe1,0x84,0x8c,0xe1,0x84,0x8d,0xe1,0x84,0x8e,0xe1,0x84,0x8f,0xe1,0x84,0x90,0xe1,0x84,0x91,0xe1,0x84,0x92,0xe1,
	0x85,0xa1,0xe1,0x85,0xa2,0xe1,0x85,0xa3,0xe1,0x85,0xa4,0xe1,0x85,0xa5,0xe1,0x85,0xa6,0xe1,0x85,0xa7,0xe1,0x85,0xa8,0xe1,0x85,0xa9,0xe1,0x85,0xaa,0xe1,0x85,0xab,
	0xe1,0x85,0xac,0xe1,0x85,0xad,0xe1,0x85,0xae,0xe1,0x85,0xaf,0xe1,0x85,0xb0,0xe1,0x85,0xb1,0xe1,0x85,0xb2,0xe1,0x85,0xb3,0xe1,0x85,0xb4,0xe1,0x85,0xb5,0xe1,0x85,
	0xa0,0xe1,0x84,0x94,0xe1,0x84,0x95,0xe1,0x87,0x87,0xe1,0x87,0x88,0xe1,0x87,0x8c,0xe1,0x87,0x8e,0xe1,0x87,0x93,0xe1,0x87,0x97,0xe1,0x87,0x99,0xe1,0x84,0x9c,0xe1,
	0x87,0x9d,0xe1,0x87,0x9f,0xe1,0x84,0x9d,0xe1,0x84,0x9e,0xe1,0x84,0xa0,0xe1,0x84,0xa2,0xe1,0x84,0xa3,0xe1,0x84,0xa7,0xe1,0x84,0xa9,0xe1,0x84,0xab,0xe1,0x84,0xac,
	0xe1,0x84,0xad,0xe1,0x84,0xae,0xe1,0x84,0xaf,0xe1,0x84,0xb2,0xe1,0x84,0xb6,0xe1,0x85,0x80,0xe1,0x85,0x87,0xe1,0x85,0x8c,0xe1,0x87,0xb1,0xe1,0x87,0xb2,0xe1,0x85,
	0x97,0xe1,0x85,0x98,0xe1,0x85,0x99,0xe1,0x86,0x84,0xe1,0x86,0x85,0xe1,0x86,0x88,0xe1,0x86,0x91,0xe1,0x86,0x92,0xe1,0x86,0x94,0xe1,0x86,0x9e,0xe1,0x86,0xa1,0xe4,
	0xb8,0x80,0xe4,0xba,0x8c,0xe4,0xb8,0x89,0xe5,0x9b,0x9b,0xe4,0xb8,0x8a,0xe4,0xb8,0xad,0xe4,0xb8,0x8b,0xe7,0x94,0xb2,0xe4,0xb9,0x99,0xe4,0xb8,0x99,0xe4,0xb8,0x81,
	0xe5,0xa4,0xa9,0xe5,0x9c,0xb0,0xe4,0xba,0xba,0x28,0xe1,0x84,0x80,0x29,0x28,0xe1,0x84,0x82,0x29,0x28,0xe1,0x84,0x83,0x29,0x28,0xe1,0x84,0x85,0x29,0x28,0xe1,0x84,
	0x86,0x29,0x28,0xe1,0x84,0x87,0x29,0x28,0xe1,0x84,0x89,0x29,0x28,0xe1,0x84,0x8b,0x29,0x28,0xe1,0x84,0x8c,0x29,0x28,0xe1,0x84,0x8e,0x29,0x28,0xe1,0x84,0x8f,0x29,
	0x28,0xe1,0x84,0x90,0x29,0x28,0xe1,0x84,0x91,0x29,0x28,0xe1,0x84,0x92,0x29,0x28,0xe1,0x84,0x80,0xe1,0x85,0xa1,0x29,0x28,0xe1,0x84,0x82,0xe1,0x85,0xa1,0x29,0x28,
	0xe1,0x84,0x83,0xe1,0x85,0xa1,0x29,0x28,0xe1,0x84,0x85,0xe1,0x85,0xa1,0x29,0x28,0xe1,0x84,0x86,0xe1,0x85,0xa1,0x29,0x28,0xe1,0x84,0x87,0xe1,0x85,0xa1,0x29,0x28,
	0xe1,0x84,0x89,0xe1,0x85,0xa1,0x29,0x28,0xe1,0x84,0x8b,0xe1,0x85,0xa1,0x29,0x28,0xe1,0x84,0x8c,0xe1,0x85,0xa1,0x29,0x28,0xe1,0x84,0x8e,0xe1,0x85,0xa1,0x29,0x28,
	0xe1,0x84,0x8f,0xe1,0x85,0xa1,0x29,0x28,0xe1,0x84,0x90,0xe1,0x85,0xa1,0x29,0x28,0xe1,0x84,0x91,0xe1,0x85,0xa1,0x29,0x28,0xe1,0x84,0x92,0xe1,0x85,0xa1,0x29,0x28,
	0xe1,0x84,0x8c,0xe1,0x85,0xae,0x29,0x28,0xe1,0x84,0x8b,0xe1,0x85,0xa9,0xe1,0x84,0x8c,0xe1,0x85,0xa5,0xe1,0x86,0xab,0x29,0x28,0xe1,0x84,0x8b,0xe1,0x85,0xa9,0xe1,
	0x84,0x92,0xe1,0x85,0xae,0x29,0x28,0xe4,0xb8,0x80,0x29,0x28,0xe4,0xba,0x8c,0x29,0x28,0xe4,0xb8,0x89,0x29,0x28,0xe5,0x9b,0x9b,0x29,0x28,0xe4,0xba,0x94,0x29,0x28,
	0xe5,0x85,0xad,0x29,0x28,0xe4,0xb8,0x83,0x29,0x28,0xe5,0x85,0xab,0x29,0x28,0xe4,0xb9,0x9d,0x29,0x28,0xe5,0x8d,0x81,0x29,0x28,0xe6,0x9c,0x88,0x29,0x28,0xe7,0x81,
	0xab,0x29,0x28,0xe6,0xb0,0xb4,0x29,0x28,0xe6,0x9c,0xa8,0x29,0x28,0xe9,0x87,0x91,0x29,0x28,0xe5,0x9c,0x9f,0x29,0x28,0xe6,0x97,0xa5,0x29,0x28,0xe6,0xa0,0xaa,0x29,
	0x28,0xe6,0x9c,0x89,0x29,0x28,0xe7,0xa4,0xbe,0x29,0x28,0xe5,0x90,0x8d,0x29,0x28,0xe7,0x89,0xb9,0x29,0x28,0xe8,0xb2,0xa1,0x29,0x28,0xe7,0xa5,0x9d,0x29,0x28,0xe5,
	0x8a,0xb4,0x29,0x28,0xe4,0xbb,0xa3,0x29,0x28,0xe5,0x91,0xbc,0x29,0x28,0xe5,0xad,0xa6,0x29,0x28,0xe7,0x9b,0xa3,0x29,0x28,0xe4,0xbc,0x81,0x29,0x28,0xe8,0xb3,0x87,
	0x29,0x28,0xe5,0x8d,0x94,0x29,0x28,0xe7,0xa5,0xad,0x29,0x28,0xe4,0xbc,0x91,0x29,0x28,0xe8,0x87,0xaa,0x29,0x28,0xe8,0x87,0xb3,0x29,0xe5,0x95,0x8f,0xe5,0xb9,0xbc,
	0xe6,0x96,0x87,0xe7,0xae,0x8f,0x50,0x54,0x45,0x32,0x31,0x32,0x32,0x32,0x33,0x32,0x34,0x32,0x35,0x32,0x36,0x32,0x37,0x32,0x38,0x32,0x39,0x33,0x30,0x33,0x31,0x33,
	0x32,0x33,0x33,0x33,0x34,0x33,0x35,0xe1,0x84,0x80,0xe1,0x84,0x82,0xe1,0x84,0x83,0xe1,0x84,0x85,0xe1,0x84,0x86,0xe1,0x84,0x87,0xe1,0x84,0x89,0xe1,0x84,0x8b,0xe1,
	0x84,0x8c,0xe1,0x84,0x8e,0xe1,0x84,0x8f,0xe1,0x84,0x90,0xe1,0x84,0x91,0xe1,0x84,0x92,0xe1,0x84,0x80,0xe1,0x85,0xa1,0xe1,0x84,0x82,0xe1,0x85,0xa1,0xe1,0x84,0x83,
	0xe1,0x85,0xa1,0xe1,0x84,0x85,0xe1,0x85,0xa1,0xe1,0x84,0x86,0xe1,0x85,0xa1,0xe1,0x84,0x87,0xe1,0x85,0xa1,0xe1,0x84,0x89,0xe1,0x85,0xa1,0xe1,0x84,0x8b,0xe1,0x85,
	0xa1,0xe1,0x84,0x8c,0xe1,0x85,0xa1,0xe1,0x84,0x8e,0xe1,0x85,0xa1,0xe1,0x84,0x8f,0xe1,0x85,0xa1,0xe1,0x84,0x90,0xe1,0x85,0xa1,0xe1,0x84,0x91,0xe1,0x85,0xa1,0xe1,
	0x84,0x92,0xe1,0x85,0xa1,0xe1,0x84,0x8e,0xe1,0x85,0xa1,0xe1,0x86,0xb7,0xe1,0x84,0x80,0xe1,0x85,0xa9,0xe1,0x84,0x8c,0xe1,0x85,0xae,0xe1,0x84,0x8b,0xe1,0x85,0xb4,
	0xe1,0x84,0x8b,0xe1,0x85,0xae,0xe4,0xb8,0x80,0xe4,0xba,0x8c,0xe4,0xb8,0x89,0xe5,0x9b,0x9b,0xe4,0xba,0x94,0xe5,0x85,0xad,0xe4,0xb8,0x83,0xe5,0x85,0xab,0xe4,0xb9,
	0x9d,0xe5,0x8d,0x81,0xe6,0x9c,0x88,0xe7,0x81,0xab,0xe6,0xb0,0xb4,0xe6,0x9c,0xa8,0xe9,0x87,0x91,0xe5,0x9c,0x9f,0xe6,0x97,0xa5,0xe6,0xa0,0xaa,0xe6,0x9c,0x89,0xe7,
	0xa4,0xbe,0xe5,0x90,0x8d,0xe7,0x89,0xb9,0xe8,0xb2,0xa1,0xe7,0xa5,0x9d,0xe5,0x8a,0xb4,0xe7,0xa7,0x98,0xe7,0x94,0xb7,0xe5,0xa5,0xb3,0xe9,0x81,0xa9,0xe5,0x84,0xaa,
	0xe5,0x8d,0xb0,0xe6,0xb3,0xa8,0xe9,0xa0,0x85,0xe4,0xbc,0x91,0xe5,0x86,0x99,0xe6,0xad,0xa3,0xe4,0xb8,0x8a,0xe4,0xb8,0xad,0xe4,0xb8,0x8b,0xe5,0xb7,0xa6,0xe5,0x8f,
	0xb3,0xe5,0x8c,0xbb,0xe5,0xae,0x97,0xe5,0xad,0xa6,0xe7,0x9b,0xa3,0xe4,0xbc,0x81,0xe8,0xb3,0x87,0xe5,0x8d,0x94,0xe5,0xa4,0x9c,0x33,0x36,0x33,0x37,0x33,0x38,0x33,
	0x39,0x34,0x30,0x34,0x31,0x34,0x32,0x34,0x33,0x34,0x34,0x34,0x35,0x34,0x36,0x34,0x37,0x34,0x38,0x34,0x39,0x35,0x30,0x31,0xe6,0x9c,0x88,0x32,0xe6,0x9c,0x88,0x33,
	0xe6,0x9c,0x88,0x34,0xe6,0x9c,0x88,0x35,0xe6,0x9c,0x88,0x36,0xe6,0x9c,0x88,0x37,0xe6,0x9c,0x88,0x38,0xe6,0x9c,0x88,0x39,0xe6,0x9c,0x88,0x31,0x30,0xe6,0x9c,0x88,
	0x31,0x31,0xe6,0x9c,0x88,0x31,0x32,0xe6,0x9c,0x88,0x48,0x67,0x65,0x72,0x67,0x65,0x56,0x4c,0x54,0x44,0xe3,0x82,0xa2,0xe3,0x82,0xa4,0xe3,0x82,0xa6,0xe3,0x82,0xa8,
	0xe3,0x82,0xaa,0xe3,0x82,0xab,0xe3,0x82,0xad,0xe3,0x82,0xaf,0xe3,0x82,0xb1,0xe3,0x82,0xb3,0xe3,0x82,0xb5,0xe3,0x82,0xb7,0xe3,0x82,0xb9,0xe3,0x82,0xbb,0xe3,0x82,
	0xbd,0xe3,0x82,0xbf,0xe3,0x83,0x81,0xe3,0x83,0x84,0xe3,0x83,0x86,0xe3,0x83,0x88,0xe3,0x83,0x8a,0xe3,0x83,0x8b,0xe3,0x83,0x8c,0xe3,0x83,0x8d,0xe3,0x83,0x8e,0xe3,
	0x83,0x8f,0xe3,0x83,0x92,0xe3,0x83,0x95,0xe3,0x83,0x98,0xe3,0x83,0x9b,0xe3,0x83,0x9e,0xe3,0x83,0x9f,0xe3,0x83,0xa0,0xe3,0x83,0xa1,0xe3,0x83,0xa2,0xe3,0x83,0xa4,
	0xe3,0x83,0xa6,0xe3,0x83,0xa8,0xe3,0x83,0xa9,0xe3,0x83,0xaa,0xe3,0x83,0xab,0xe3,0x83,0xac,0xe3,0x83,0xad,0xe3,0x83,0xaf,0xe3,0x83,0xb0,0xe3,0x83,0xb1,0xe3,0x83,
	0xb2,0xe4,0xbb,0xa4,0xe5,0x92,0x8c,0xe3,0x82,0xa2,0xe3,0x83,0x91,0xe3,0x83,0xbc,0xe3,0x83,0x88,0xe3,0x82,0xa2,0xe3,0x83,0xab,0xe3,0x83,0x95,0xe3,0x82,0xa1,0xe3,
	0x82,0xa2,0xe3,0x83,0xb3,0xe3,0x83,0x9a,0xe3,0x82,0xa2,0xe3,0x82,0xa2,0xe3,0x83,0xbc,0xe3,0x83,0xab,0xe3,0x82,0xa4,0xe3,0x83,0x8b,0xe3,0x83,0xb3,0xe3,0x82,0xb0,
	0xe3,0x82,0xa4,0xe3,0x83,0xb3,0xe3,0x83,0x81,0xe3,0x82,0xa6,0xe3,0x82,0xa9,0xe3,0x83,0xb3,0xe3,0x82,0xa8,0xe3,0x82,0xb9,0xe3,0x82,0xaf,0xe3,0x83,0xbc,0xe3,0x83,
	0x89,0xe3,0x82,0xa8,0xe3,0x83,0xbc,0xe3,0x82,0xab,0xe3,0x83,0xbc,0xe3,0x82,0xaa,0xe3,0x83,0xb3,0xe3,0x82,0xb9,0xe3,0x82,0xaa,0xe3,0x83,0xbc,0xe3,0x83,0xa0,0xe3,
	0x82,0xab,0xe3,0x82,0xa4,0xe3,0x83,0xaa,0xe3,0x82,0xab,0xe3,0x83,0xa9,0xe3,0x83,0x83,0xe3,0x83,0x88,0xe3,0x82,0xab,0xe3,0x83,0xad,0xe3,0x83,0xaa,0xe3,0x83,0xbc,
	0xe3,0x82,0xac,0xe3,0x83,0xad,0xe3,0x83,0xb3,0xe3,0x82,0xac,0xe3,0x83,0xb3,0xe3,0x83,0x9e,0xe3,0x82,0xae,0xe3,0x82,0xac,0xe3,0x82,0xae,0xe3,0x83,0x8b,0xe3,0x83,
	0xbc,0xe3,0x82,0xad,0xe3,0x83,0xa5,0xe3,0x83,0xaa,0xe3,0x83,0xbc,0xe3,0x82,0xae,0xe3,0x83,0xab,0xe3,0x83,0x80,0xe3,0x83,0xbc,0xe3,0x82,0xad,0xe3,0x83,0xad,0xe3,
	0x82,0xad,0xe3,0x83,0xad,0xe3,0x82,0xb0,0xe3,0x83,0xa9,0xe3,0x83,0xa0,0xe3,0x82,0xad,0xe3,0x83,0xad,0xe3,0x83,0xa1,0xe3,0x83,0xbc,0xe3,0x83,0x88,0xe3,0x83,0xab,
	0xe3,0x82,0xad,0xe3,0x83,0xad,0xe3,0x83,0xaf,0xe3,0x83,0x83,0xe3,0x83,0x88,0xe3,0x82,0xb0,0xe3,0x83,0xa9,0xe3,0x83,0xa0,0xe3,0x82,0xb0,0xe3,0x83,0xa9,0xe3,0x83,
	0xa0,0xe3,0x83,0x88,0xe3,0x83,0xb3,0xe3,0x82,0xaf,0xe3,0x83,0xab,0xe3,0x82,0xbc,0xe3,0x82,0xa4,0xe3,0x83,0xad,0xe3,0x82,0xaf,0xe3,0x83,0xad,0xe3,0x83,0xbc,0xe3,
	0x83,0x8d,0xe3,0x82,0xb1,0xe3,0x83,0xbc,0xe3,0x82,0xb9,0xe3,0x82,0xb3,0xe3,0x83,0xab,0xe3,0x83,0x8a,0xe3,0x82,0xb3,0xe3,0x83,0xbc,0xe3,0x83,0x9d,0xe3,0x82,0xb5,
	0xe3,0x82,0xa4,0xe3,0x82,0xaf,0xe3,0x83,0xab,0xe3,0x82,0xb5,0xe3,0x83,0xb3,0xe3,0x83,0x81,0xe3,0x83,0xbc,0xe3,0x83,0xa0,0xe3,0x82,0xb7,0xe3,0x83,0xaa,0xe3,0x83,
	0xb3,0xe3,0x82,0xb0,0xe3,0x82,0xbb,0xe3,0x83,0xb3,0xe3,0x83,0x81,0xe3,0x82,0xbb,0xe3,0x83,0xb3,0xe3,0x83,0x88,0xe3,0x83,0x80,0xe3,0x83,0xbc,0xe3,0x82,0xb9,0xe3,
	0x83,0x87,0xe3,0x82,0xb7,0xe3,0x83,0x89,0xe3,0x83,0xab,0xe3,0x83,0x88,0xe3,0x83,0xb3,0xe3,0x83,0x8a,0xe3,0x83,0x8e,0xe3,0x83,0x8e,0xe3,0x83,0x83,0xe3,0x83,0x88,
	0xe3,0x83,0x8f,0xe3,0x82,0xa4,0xe3,0x83,0x84,0xe3,0x83,0x91,0xe3,0x83,0xbc,0xe3,0x82,0xbb,0xe3,0x83,0xb3,0xe3,0x83,0x88,0xe3,0x83,0x91,0xe3,0x83,0xbc,0xe3,0x83,
	0x84,0xe3,0x83,0x90,0xe3,0x83,0xbc,0xe3,0x83,0xac,0xe3,0x83,0xab,0xe3,0x83,0x94,0xe3,0x82,0xa2,0xe3,0x82,0xb9,0xe3,0x83,0x88,0xe3,0x83,0xab,0xe3,0x83,0x94,0xe3,
	0x82,0xaf,0xe3,0x83,0xab,0xe3,0x83,0x94,0xe3,0x82,0xb3,0xe3,0x83,0x93,0xe3,0x83,0xab,0xe3,0x83,0x95,0xe3,0x82,0xa1,0xe3,0x83,0xa9,0xe3,0x83,0x83,0xe3,0x83,0x89,
	0xe3,0x83,0x95,0xe3,0x82,0xa3,0xe3,0x83,0xbc,0xe3,0x83,0x88,0xe3,0x83,0x96,0xe3,0x83,0x83,0xe3,0x82,0xb7,0xe3,0x82,0xa7,0xe3,0x83,0xab,0xe3,0x83,0x95,0xe3,0x83,
	0xa9,0xe3,0x83,0xb3,0xe3,0x83,0x98,0xe3,0x82,0xaf,0xe3,0x82,0xbf,0xe3,0x83,0xbc,0xe3,0x83,0xab,0xe3,0x83,0x9a,0xe3,0x82,0xbd,0xe3,0x83,0x9a,0xe3,0x83,0x8b,0xe3,
	0x83,0x92,0xe3,0x83,0x98,0xe3,0x83,0xab,0xe3,0x83,0x84,0xe3,0x83,0x9a,0xe3,0x83,0xb3,0xe3,0x82,0xb9,0xe3,0x83,0x9a,0xe3,0x83,0xbc,0xe3,0x82,0xb8,0xe3,0x83,0x99,
	0xe3,0x83,0xbc,0xe3,0x82,0xbf,0xe3,0x83,0x9d,0xe3,0x82,0xa4,0xe3,0x83,0xb3,0xe3,0x83,0x88,0xe3,0x83,0x9c,0xe3,0x83,0xab,0xe3,0x83,0x88,0xe3,0x83,0x9b,0xe3,0x83,
	0xb3,0xe3,0x83,0x9d,0xe3,0x83,0xb3,0xe3,0x83,0x89,0xe3,0x83,0x9b,0xe3,0x83,0xbc,0xe3,0x83,0xab,0xe3,0x83,0x9b,0xe3,0x83,0xbc,0xe3,0x83,0xb3,0xe3,0x83,0x9e,0xe3,
	0x82,0xa4,0xe3,0x82,0xaf,0xe3,0x83,0xad,0xe3,0x83,0x9e,0xe3,0x82,0xa4,0xe3,0x83,0xab,0xe3,0x83,0x9e,0xe3,0x83,0x83,0xe3,0x83,0x8f,0xe3,0x83,0x9e,0xe3,0x83,0xab,
	0xe3,0x82,0xaf,0xe3,0x83,0x9e,0xe3,0x83,0xb3,0xe3,0x82,0xb7,0xe3,0x83,0xa7,0xe3,0x83,0xb3,0xe3,0x83,0x9f,0xe3,0x82,0xaf,0xe3,0x83,0xad,0xe3,0x83,0xb3,0xe3,0x83,
	0x9f,0xe3,0x83,0xaa,0xe3,0x83,0x9f,0xe3,0x83,0xaa,0xe3,0x83,0x90,0xe3,0x83,0xbc,0xe3,0x83,0xab,0xe3,0x83,0xa1,0xe3,0x82,0xac,0xe3,0x83,0xa1,0xe3,0x82,0xac,0xe3,
	0x83,0x88,0xe3,0x83,0xb3,0xe3,0x83,0xa1,0xe3,0x83,0xbc,0xe3,0x83,0x88,0xe3,0x83,0xab,0xe3,0x83,0xa4,0xe3,0x83,0xbc,0xe3,0x83,0x89,0xe3,0x83,0xa4,0xe3,0x83,0xbc,
	0xe3,0x83,0xab,0xe3,0x83,0xa6,0xe3,0x82,0xa2,0xe3,0x83,0xb3,0xe3,0x83,0xaa,0xe3,0x83,0x83,0xe3,0x83,0x88,0xe3,0x83,0xab,0xe3,0x83,0xaa,0xe3,0x83,0xa9,0xe3,0x83,
	0xab,0xe3,0x83,0x94,0xe3,0x83,0xbc,0xe3,0x83,0xab,0xe3,0x83,0xbc,0xe3,0x83,0x96,0xe3,0x83,0xab,0xe3,0x83,0xac,0xe3,0x83,0xa0,0xe3,0x83,0xac,0xe3,0x83,0xb3,0xe3,
	0x83,0x88,0xe3,0x82,0xb2,0xe3,0x83,0xb3,0xe3,0x83,0xaf,0xe3,0x83,0x83,0xe3,0x83,0x88,0x30,0xe7,0x82,0xb9,0x31,0xe7,0x82,0xb9,0x32,0xe7,0x82,0xb9,0x33,0xe7,0x82,
	0xb9,0x34,0xe7,0x82,0xb9,0x35,0xe7,0x82,0xb9,0x36,0xe7,0x82,0xb9,0x37,0xe7,0x82,0xb9,0x38,0xe7,0x82,0xb9,0x39,0xe7,0x82,0xb9,0x31,0x30,0xe7,0x82,0xb9,0x31,0x31,
	0xe7,0x82,0xb9,0x31,0x32,0xe7,0x82,0xb9,0x31,0x33,0xe7,0x82,0xb9,0x31,0x34,0xe7,0x82,0xb9,0x31,0x35,0xe7,0x82,0xb9,0x31,0x36,0xe7,0x82,0xb9,0x31,0x37,0xe7,0x82,
	0xb9,0x31,0x38,0xe7,0x82,0xb9,0x31,0x39,0xe7,0x82,0xb9,0x32,0x30,0xe7,0x82,0xb9,0x32,0x31,0xe7,0x82,0xb9,0x32,0x32,0xe7,0x82,0xb9,0x32,0x33,0xe7,0x82,0xb9,0x32,
	0x34,0xe7,0x82,0xb9,0x68,0x50,0x61,0x64,0x61,0x41,0x55,0x62,0x61,0x72,0x6f,0x56,0x70,0x63,0x64,0x6d,0x64,0x6d,0xc2,0xb2,0x64,0x6d,0xc2,0xb3,0x49,0x55,0xe5,0xb9,
	0xb3,0xe6,0x88,0x90,0xe6,0x98,0xad,0xe5,0x92,0x8c,0xe5,0xa4,0xa7,0xe6,0xad,0xa3,0xe6,0x98,0x8e,0xe6,0xb2,0xbb,0xe6,0xa0,0xaa,0xe5,0xbc,0x8f,0xe4,0xbc,0x9a,0xe7,
	0xa4,0xbe,0x70,0x41,0x6e,0x41,0xce,0xbc,0x41,0x6d,0x41,0x6b,0x41,0x4b,0x42,0x4d,0x42,0x47,0x42,0x63,0x61,0x6c,0x6b,0x63,0x61,0x6c,0x70,0x46,0x6e,0x46,0xce,0xbc,
	0x46,0xce,0xbc,0x67,0x6d,0x67,0x6b,0x67,0x48,0x7a,0x6b,0x48,0x7a,0x4d,0x48,0x7a,0x47,0x48,0x7a,0x54,0x48,0x7a,0xce,0xbc,0xe2,0x84,0x93,0x6d,0xe2,0x84,0x93,0x64,
	0xe2,0x84,0x93,0x6b,0xe2,0x84,0x93,0x66,0x6d,0x6e,0x6d,0xce,0xbc,0x6d,0x6d,0x6d,0x63,0x6d,0x6b,0x6d,0x6d,0x6d,0xc2,0xb2,0x63,0x6d,0xc2,0xb2,0x6d,0xc2,0xb2,0x6b,
	0x6d,0xc2,0xb2,0x6d,0x6d,0xc2,0xb3,0x63,0x6d,0xc2,0xb3,0x6d,0xc2,0xb3,0x6b,0x6d,0xc2,0xb3,0x6d,0xe2,0x88,0x95,0x73,0x6d,0xe2,0x88,0x95,0x73,0xc2,0xb2,0x50,0x61,
	0x6b,0x50,0x61,0x4d,0x50,0x61,0x47,0x50,0x61,0x72,0x61,0x64,0x72,0x61,0x64,0xe2,0x88,0x95,0x73,0x72,0x61,0x64,0xe2,0x88,0x95,0x73,0xc2,0xb2,0x70,0x73,0x6e,0x73,
	0xce,0xbc,0x73,0x6d,0x73,0x70,0x56,0x6e,0x56,0xce,0xbc,0x56,0x6d,0x56,0x6b,0x56,0x4d,0x56,0x70,0x57,0x6e,0x57,0xce,0xbc,0x57,0x6d,0x57,0x6b,0x57,0x4d,0x57,0x6b,
	0xce,0xa9,0x4d,0xce,0xa9,0x61,0x2e,0x6d,0x2e,0x42,0x71,0x63,0x63,0x63,0x64,0x43,0xe2,0x88,0x95,0x6b,0x67,0x43,0x6f,0x2e,0x64,0x42,0x47,0x79,0x68,0x61,0x48,0x50,
	0x69,0x6e,0x4b,0x4b,0x4b,0x4d,0x6b,0x74,0x6c,0x6d,0x6c,0x6e,0x6c,0x6f,0x67,0x6c,0x78,0x6d,0x62,0x6d,0x69,0x6c,0x6d,0x6f,0x6c,0x50,0x48,0x70,0x2e,0x6d,0x2e,0x50,
	0x50,0x4d,0x50,0x52,0x73,0x72,0x53,0x76,0x57,0x62,0x56,0xe2,0x88,0x95,0x6d,0x41,0xe2,0x88,0x95,0x6d,0x31,0xe6,0x97,0xa5,0x32,0xe6,0x97,0xa5,0x33,0xe6,0x97,0xa5,
	0x34,0xe6,0x97,0xa5,0x35,0xe6,0x97,0xa5,0x36,0xe6,0x97,0xa5,0x37,0xe6,0x97,0xa5,0x38,0xe6,0x97,0xa5,0x39,0xe6,0x97,0xa5,0x31,0x30,0xe6,0x97,0xa5,0x31,0x31,0xe6,
	0x97,0xa5,0x31,0x32,0xe6,0x97,0xa5,0x31,0x33,0xe6,0x97,0xa5,0x31,0x34,0xe6,0x97,0xa5,0x31,0x35,0xe6,0x97,0xa5,0x31,0x36,0xe6,0x97,0xa5,0x31,0x37,0xe6,0x97,0xa5,
	0x31,0x38,0xe6,0x97,0xa5,0x31,0x39,0xe6,0x97,0xa5,0x32,0x30,0xe6,0x97,0xa5,0x32,0x31,0xe6,0x97,0xa5,0x32,0x32,0xe6,0x97,0xa5,0x32,0x33,0xe6,0x97,0xa5,0x32,0x34,
	0xe6,0x97,0xa5,0x32,0x35,0xe6,0x97,0xa5,0x32,0x36,0xe6,0x97,0xa5,0x32,0x37,0xe6,0x97,0xa5,0x32,0x38,0xe6,0x97,0xa5,0x32,0x39,0xe6,0x97,0xa5,0x33,0x30,0xe6,0x97,
	0xa5,0x33,0x31,0xe6,0x97,0xa5,0x67,0x61,0x6c,0xd1,0x8a,0xd1,0x8c,0xea,0x9d,0xaf,0x43,0x46,0x51,0xc4,0xa6,0xc5,0x93,0xea,0x9c,0xa7,0xea,0xac,0xb7,0xc9,0xab,0xea,
	0xad,0x92,0xca,0x8d,0xe8,0xb1,0x88,0xe6,0x9b,0xb4,0xe8,0xbb,0x8a,0xe8,0xb3,0x88,0xe6,0xbb,0x91,0xe4,0xb8,0xb2,0xe5,0x8f,0xa5,0xe9,0xbe,0x9c,0xe9,0xbe,0x9c,0xe5,
	0xa5,0x91,0xe9,0x87,0x91,0xe5,0x96,0x87,0xe5,0xa5,0x88,0xe6,0x87,0xb6,0xe7,0x99,0xa9,0xe7,0xbe,0x85,0xe8,0x98,0xbf,0xe8,0x9e,0xba,0xe8,0xa3,0xb8,0xe9,0x82,0x8f,
	0xe6,0xa8,0x82,0xe6,0xb4,0x9b,0xe7,0x83,0x99,0xe7,0x8f,0x9e,0xe8,0x90,0xbd,0xe9,0x85,0xaa,0xe9,0xa7,0xb1,0xe4,0xba,0x82,0xe5,0x8d,0xb5,0xe6,0xac,0x84,0xe7,0x88,
	0x9b,0xe8,0x98,0xad,0xe9,0xb8,0x9e,0xe5,0xb5,0x90,0xe6,0xbf,0xab,0xe8,0x97,0x8d,0xe8,0xa5,0xa4,0xe6,0x8b,0x89,0xe8,0x87,0x98,0xe8,0xa0,0x9f,0xe5,0xbb,0x8a,0xe6,
	0x9c,0x97,0xe6,0xb5,0xaa,0xe7,0x8b,0xbc,0xe9,0x83,0x8e,0xe4,0xbe,0x86,0xe5,0x86,0xb7,0xe5,0x8b,0x9e,0xe6,0x93,0x84,0xe6,0xab,0x93,0xe7,0x88,0x90,0xe7,0x9b,0xa7,
	0xe8,0x80,0x81,0xe8,0x98,0x86,0xe8,0x99,0x9c,0xe8,0xb7,0xaf,0xe9,0x9c,0xb2,0xe9,0xad,0xaf,0xe9,0xb7,0xba,0xe7,0xa2,0x8c,0xe7,0xa5,0xbf,0xe7,0xb6,0xa0,0xe8,0x8f,
	0x89,0xe9,0x8c,0x84,0xe9,0xb9,0xbf,0xe8,0xab,0x96,0xe5,0xa3,0x9f,0xe5,0xbc,0x84,0xe7,0xb1,0xa0,0xe8,0x81,0xbe,0xe7,0x89,0xa2,0xe7,0xa3,0x8a,0xe8,0xb3,0x82,0xe9,
	0x9b,0xb7,0xe5,0xa3,0x98,0xe5,0xb1,0xa2,0xe6,0xa8,0x93,0xe6,0xb7,0x9a,0xe6,0xbc,0x8f,0xe7,0xb4,0xaf,0xe7,0xb8,0xb7,0xe9,0x99,0x8b,0xe5,0x8b,0x92,0xe8,0x82,0x8b,
	0xe5,0x87,0x9c,0xe5,0x87,0x8c,0xe7,0xa8,0x9c,0xe7,0xb6,0xbe,0xe8,0x8f,0xb1,0xe9,0x99,0xb5,0xe8,0xae,0x80,0xe6,0x8b,0x8f,0xe6,0xa8,0x82,0xe8,0xab,0xbe,0xe4,0xb8,
	0xb9,0xe5,0xaf,0xa7,0xe6,0x80,0x92,0xe7,0x8e,0x87,0xe7,0x95,0xb0,0xe5,0x8c,0x97,0xe7,0xa3,0xbb,0xe4,0xbe,0xbf,0xe5,0xbe,0xa9,0xe4,0xb8,0x8d,0xe6,0xb3,0x8c,0xe6,
	0x95,0xb8,0xe7,0xb4,0xa2,0xe5,0x8f,0x83,0xe5,0xa1,0x9e,0xe7,0x9c,0x81,0xe8,0x91,0x89,0xe8,0xaa,0xaa,0xe6,0xae,0xba,0xe8,0xbe,0xb0,0xe6,0xb2,0x88,0xe6,0x8b,0xbe,
	0xe8,0x8b,0xa5,0xe6,0x8e,0xa0,0xe7,0x95,0xa5,0xe4,0xba,0xae,0xe5,0x85,0xa9,0xe5,0x87,0x89,0xe6,0xa2,0x81,0xe7,0xb3,0xa7,0xe8,0x89,0xaf,0xe8,0xab,0x92,0xe9,0x87,
	0x8f,0xe5,0x8b,0xb5,0xe5,0x91,0x82,0xe5,0xa5,0xb3,0xe5,0xbb,0xac,0xe6,0x97,0x85,0xe6,0xbf,0xbe,0xe7,0xa4,0xaa,0xe9,0x96,0xad,0xe9,0xa9,0xaa,0xe9,0xba,0x97,0xe9,
	0xbb,0x8e,0xe5,0x8a,0x9b,0xe6,0x9b,0x86,0xe6,0xad,0xb7,0xe8,0xbd,0xa2,0xe5,0xb9,0xb4,0xe6,0x86,0x90,0xe6,0x88,0x80,0xe6,0x92,0x9a,0xe6,0xbc,0xa3,0xe7,0x85,0x89,
	0xe7,0x92,0x89,0xe7,0xa7,0x8a,0xe7,0xb7,0xb4,0xe8,0x81,0xaf,0xe8,0xbc,0xa6,0xe8,0x93,0xae,0xe9,0x80,0xa3,0xe9,0x8d,0x8a,0xe5,0x88,0x97,0xe5,0x8a,0xa3,0xe5,0x92,
	0xbd,0xe7,0x83,0x88,0xe8,0xa3,0x82,0xe8,0xaa,0xaa,0xe5,0xbb,0x89,0xe5,0xbf,0xb5,0xe6,0x8d,0xbb,0xe6,0xae,0xae,0xe7,0xb0,0xbe,0xe7,0x8d,0xb5,0xe4,0xbb,0xa4,0xe5,
	0x9b,0xb9,0xe5,0xaf,0xa7,0xe5,0xb6,0xba,0xe6,0x80,0x9c,0xe7,0x8e,0xb2,0xe7,0x91,0xa9,0xe7,0xbe,0x9a,0xe8,0x81,0x86,0xe9,0x88,0xb4,0xe9,0x9b,0xb6,0xe9,0x9d,0x88,
	0xe9,0xa0,0x98,0xe4,0xbe,0x8b,0xe7,0xa6,0xae,0xe9,0x86,0xb4,0xe9,0x9a,0xb8,0xe6,0x83,0xa1,0xe4,0xba,0x86,0xe5,0x83,0x9a,0xe5,0xaf,0xae,0xe5,0xb0,0xbf,0xe6,0x96,
	0x99,0xe6,0xa8,0x82,0xe7,0x87,0x8e,0xe7,0x99,0x82,0xe8,0x93,0xbc,0xe9,0x81,0xbc,0xe9,0xbe,0x8d,0xe6,0x9a,0x88,0xe9,0x98,0xae,0xe5,0x8a,0x89,0xe6,0x9d,0xbb,0xe6,
	0x9f,0xb3,0xe6,0xb5,0x81,0xe6,0xba,0x9c,0xe7,0x90,0x89,0xe7,0x95,0x99,0xe7,0xa1,0xab,0xe7,0xb4,0x90,0xe9,0xa1,0x9e,0xe5,0x85,0xad,0xe6,0x88,0xae,0xe9,0x99,0xb8,
	0xe5,0x80,0xab,0xe5,0xb4,0x99,0xe6,0xb7,0xaa,0xe8,0xbc,0xaa,0xe5,0xbe,0x8b,0xe6,0x85,0x84,0xe6,0xa0,0x97,0xe7,0x8e,0x87,0xe9,0x9a,0x86,0xe5,0x88,0xa9,0xe5,0x90,
	0x8f,0xe5,0xb1,0xa5,0xe6,0x98,0x93,0xe6,0x9d,0x8e,0xe6,0xa2,0xa8,0xe6,0xb3,0xa5,0xe7,0x90,0x86,0xe7,0x97,0xa2,0xe7,0xbd,0xb9,0xe8,0xa3,0x8f,0xe8,0xa3,0xa1,0xe9,
	0x87,0x8c,0xe9,0x9b,0xa2,0xe5,0x8c,0xbf,0xe6,0xba,0xba,0xe5,0x90,0x9d,0xe7,0x87,0x90,0xe7,0x92,0x98,0xe8,0x97,0xba,0xe9,0x9a,0xa3,0xe9,0xb1,0x97,0xe9,0xba,0x9f,
	0xe6,0x9e,0x97,0xe6,0xb7,0x8b,0xe8,0x87,0xa8,0xe7,0xab,0x8b,0xe7,0xac,0xa0,0xe7,0xb2,0x92,0xe7,0x8b,0x80,0xe7,0x82,0x99,0xe8,0xad,0x98,0xe4,0xbb,0x80,0xe8,0x8c,
	0xb6,0xe5,0x88,0xba,0xe5,0x88,0x87,0xe5,0xba,0xa6,0xe6,0x8b,0x93,0xe7,0xb3,0x96,0xe5,0xae,0x85,0xe6,0xb4,0x9e,0xe6,0x9a,0xb4,0xe8,0xbc,0xbb,0xe8,0xa1,0x8c,0xe9,
	0x99,0x8d,0xe8,0xa6,0x8b,0xe5,0xbb,0x93,0xe5,0x85,0x80,0xe5,0x97,0x80,0xe5,0xa1,0x9a,0xe6,0x99,0xb4,0xe5,0x87,0x9e,0xe7,0x8c,0xaa,0xe7,0x9b,0x8a,0xe7,0xa4,0xbc,
	0xe7,0xa5,0x9e,0xe7,0xa5,0xa5,0xe7,0xa6,0x8f,0xe9,0x9d,0x96,0xe7,0xb2,0xbe,0xe7,0xbe,0xbd,0xe8,0x98,0x92,0xe8,0xab,0xb8,0xe9,0x80,0xb8,0xe9,0x83,0xbd,0xe9,0xa3,
	0xaf,0xe9,0xa3,0xbc,0xe9,0xa4,0xa8,0xe9,0xb6,0xb4,0xe9,0x83,0x9e,0xe9,0x9a,0xb7,0xe4,0xbe,0xae,0xe5,0x83,0xa7,0xe5,0x85,0x8d,0xe5,0x8b,0x89,0xe5,0x8b,0xa4,0xe5,
	0x8d,0x91,0xe5,0x96,0x9d,0xe5,0x98,0x86,0xe5,0x99,0xa8,0xe5,0xa1,0x80,0xe5,0xa2,0xa8,0xe5,0xb1,0xa4,0xe5,0xb1,0xae,0xe6,0x82,0x94,0xe6,0x85,0xa8,0xe6,0x86,0x8e,
	0xe6,0x87,0xb2,0xe6,0x95,0x8f,0xe6,0x97,0xa2,0xe6,0x9a,0x91,0xe6,0xa2,0x85,0xe6,0xb5,0xb7,0xe6,0xb8,0x9a,0xe6,0xbc,0xa2,0xe7,0x85,0xae,0xe7,0x88,0xab,0xe7,0x90,
	0xa2,0xe7,0xa2,0x91,0xe7,0xa4,0xbe,0xe7,0xa5,0x89,0xe7,0xa5,0x88,0xe7,0xa5,0x90,0xe7,0xa5,0x96,0xe7,0xa5,0x9d,0xe7,0xa6,0x8d,0xe7,0xa6,0x8e,0xe7,0xa9,0x80,0xe7,
	0xaa,0x81,0xe7,0xaf,0x80,0xe7,0xb7,0xb4,0xe7,0xb8,0x89,0xe7,0xb9,0x81,0xe7,0xbd,0xb2,0xe8,0x80,0x85,0xe8,0x87,0xad,0xe8,0x89,0xb9,0xe8,0x89,0xb9,0xe8,0x91,0x97,
	0xe8,0xa4,0x90,0xe8,0xa6,0x96,0xe8,0xac,0x81,0xe8,0xac,0xb9,0xe8,0xb3,0x93,0xe8,0xb4,0x88,0xe8,0xbe,0xb6,0xe9,0x80,0xb8,0xe9,0x9b,0xa3,0xe9,0x9f,0xbf,0xe9,0xa0,
	0xbb,0xe6,0x81,0xb5,0xf0,0xa4,0x8b,0xae,0xe8,0x88,0x98,0xe4,0xb8,0xa6,0xe5,0x86,0xb5,0xe5,0x85,0xa8,0xe4,0xbe,0x80,0xe5,0x85,0x85,0xe5,0x86,0x80,0xe5,0x8b,0x87,
	0xe5,0x8b,0xba,0xe5,0x96,0x9d,0xe5,0x95,0x95,0xe5,0x96,0x99,0xe5,0x97,0xa2,0xe5,0xa1,0x9a,0xe5,0xa2,0xb3,0xe5,0xa5,0x84,0xe5,0xa5,0x94,0xe5,0xa9,0xa2,0xe5,0xac,
	0xa8,0xe5,0xbb,0x92,0xe5,0xbb,0x99,0xe5,0xbd,0xa9,0xe5,0xbe,0xad,0xe6,0x83,0x98,0xe6,0x85,0x8e,0xe6,0x84,0x88,0xe6,0x86,0x8e,0xe6,0x85,0xa0,0xe6,0x87,0xb2,0xe6,
	0x88,0xb4,0xe6,0x8f,0x84,0xe6,0x90,0x9c,0xe6,0x91,0x92,0xe6,0x95,0x96,0xe6,0x99,0xb4,0xe6,0x9c,0x97,0xe6,0x9c,0x9b,0xe6,0x9d,0x96,0xe6,0xad,0xb9,0xe6,0xae,0xba,
	0xe6,0xb5,0x81,0xe6,0xbb,0x9b,0xe6,0xbb,0x8b,0xe6,0xbc,0xa2,0xe7,0x80,0x9e,0xe7,0x85,0xae,0xe7,0x9e,0xa7,0xe7,0x88,0xb5,0xe7,0x8a,0xaf,0xe7,0x8c,0xaa,0xe7,0x91,
	0xb1,0xe7,0x94,0x86,0xe7,0x94,0xbb,0xe7,0x98,0x9d,0xe7,0x98,0x9f,0xe7,0x9b,0x8a,0xe7,0x9b,0x9b,0xe7,0x9b,0xb4,0xe7,0x9d,0x8a,0xe7,0x9d,0x80,0xe7,0xa3,0x8c,0xe7,
	0xaa,0xb1,0xe7,0xaf,0x80,0xe7,0xb1,0xbb,0xe7,0xb5,0x9b,0xe7,0xb7,0xb4,0xe7,0xbc,0xbe,0xe8,0x80,0x85,0xe8,0x8d,0x92,0xe8,0x8f,0xaf,0xe8,0x9d,0xb9,0xe8,0xa5,0x81,
	0xe8,0xa6,0x86,0xe8,0xa6,0x96,0xe8,0xaa,0xbf,0xe8,0xab,0xb8,0xe8,0xab,0x8b,0xe8,0xac,0x81,0xe8,0xab,0xbe,0xe8,0xab,0xad,0xe8,0xac,0xb9,0xe8,0xae,0x8a,0xe8,0xb4,
	0x88,0xe8,0xbc,0xb8,0xe9,0x81,0xb2,0xe9,0x86,0x99,0xe9,0x89,0xb6,0xe9,0x99,0xbc,0xe9,0x9b,0xa3,0xe9,0x9d,0x96,0xe9,0x9f,0x9b,0xe9,0x9f,0xbf,0xe9,0xa0,0x8b,0xe9,
	0xa0,0xbb,0xe9,0xac,0x92,0xe9,0xbe,0x9c,0xf0,0xa2,0xa1,0x8a,0xf0,0xa2,0xa1,0x84,0xf0,0xa3,0x8f,0x95,0xe3,0xae,0x9d,0xe4,0x80,0x98,0xe4,0x80,0xb9,0xf0,0xa5,0x89,
	0x89,0xf0,0xa5,0xb3,0x90,0xf0,0xa7,0xbb,0x93,0xe9,0xbd,0x83,0xe9,0xbe,0x8e,0x66,0x66,0x66,0x69,0x66,0x6c,0x66,0x66,0x69,0x66,0x66,0x6c,0xc5,0xbf,0x74,0x73,0x74,
	0xd5,0xb4,0xd5,0xb6,0xd5,0xb4,0xd5,0xa5,0xd5,0xb4,0xd5,0xab,0xd5,0xbe,0xd5,0xb6,0xd5,0xb4,0xd5,0xad,0xd7,0x99,0xd6,0xb4,0xd7,0xb2,0xd6,0xb7,0xd7,0xa2,0xd7,0x90,
	0xd7,0x93,0xd7,0x94,0xd7,0x9b,0xd7,0x9c,0xd7,0x9d,0xd7,0xa8,0xd7,0xaa,0x2b,0xd7,0xa9,0xd7,0x81,0xd7,0xa9,0xd7,0x82,0xef,0xad,0x89,0xd7,0x81,0xef,0xad,0x89,0xd7,
	0x82,0xd7,0x90,0xd6,0xb7,0xd7,0x90,0xd6,0xb8,0xd7,0x90,0xd6,0xbc,0xd7,0x91,0xd6,0xbc,0xd7,0x92,0xd6,0xbc,0xd7,0x93,0xd6,0xbc,0xd7,0x94,0xd6,0xbc,0xd7,0x95,0xd6,
	0xbc,0xd7,0x96,0xd6,0xbc,0xd7,0x98,0xd6,0xbc,0xd7,0x99,0xd6,0xbc,0xd7,0x9a,0xd6,0xbc,0xd7,0x9b,0xd6,0xbc,0xd7,0x9c,0xd6,0xbc,0xd7,0x9e,0xd6,0xbc,0xd7,0xa0,0xd6,
	0xbc,0xd7,0xa1,0xd6,0xbc,0xd7,0xa3,0xd6,0xbc,0xd7,0xa4,0xd6,0xbc,0xd7,0xa6,0xd6,0xbc,0xd7,0xa7,0xd6,0xbc,0xd7,0xa8,0xd6,0xbc,0xd7,0xa9,0xd6,0xbc,0xd7,0xaa,0xd6,
	0xbc,0xd7,0x95,0xd6,0xb9,0xd7,0x91,0xd6,0xbf,0xd7,0x9b,0xd6,0xbf,0xd7,0xa4,0xd6,0xbf,0xd7,0x90,0xd7,0x9c,0xd9,0xb1,0xd9,0xb1,0xd9,0xbb,0xd9,0xbb,0xd9,0xbb,0xd9,
	0xbb,0xd9,0xbe,0xd9,0xbe,0xd9,0xbe,0xd9,0xbe,0xda,0x80,0xda,0x80,0xda,0x80,0xda,0x80,0xd9,0xba,0xd9,0xba,0xd9,0xba,0xd9,0xba,0xd9,0xbf,0xd9,0xbf,0xd9,0xbf,0xd9,
	0xbf,0xd9,0xb9,0xd9,0xb9,0xd9,0xb9,0xd9,0xb9,0xda,0xa4,0xda,0xa4,0xda,0xa4,0xda,0xa4,0xda,0xa6,0xda,0xa6,0xda,0xa6,0xda,0xa6,0xda,0x84,0xda,0x84,0xda,0x84,0xda,
	0x84,0xda,0x83,0xda,0x83,0xda,0x83,0xda,0x83,0xda,0x86,0xda,0x86,0xda,0x86,0xda,0x86,0xda,0x87,0xda,0x87,0xda,0x87,0xda,0x87,0xda,0x8d,0xda,0x8d,0xda,0x8c,0xda,
	0x8c,0xda,0x8e,0xda,0x8e,0xda,0x88,0xda,0x88,0xda,0x98,0xda,0x98,0xda,0x91,0xda,0x91,0xda,0xa9,0xda,0xa9,0xda,0xa9,0xda,0xa9,0xda,0xaf,0xda,0xaf,0xda,0xaf,0xda,
	0xaf,0xda,0xb3,0xda,0xb3,0xda,0xb3,0xda,0xb3,0xda,0xb1,0xda,0xb1,0xda,0xb1,0xda,0xb1,0xda,0xba,0xda,0xba,0xda,0xbb,0xda,0xbb,0xda,0xbb,0xda,0xbb,0xdb,0x80,0xdb,
	0x80,0xdb,0x81,0xdb,0x81,0xdb,0x81,0xdb,0x81,0xda,0xbe,0xda,0xbe,0xda,0xbe,0xda,0xbe,0xdb,0x92,0xdb,0x92,0xdb,0x93,0xdb,0x93,0xda,0xad,0xda,0xad,0xda,0xad,0xda,
	0xad,0xdb,0x87,0xdb,0x87,0xdb,0x86,0xdb,0x86,0xdb,0x88,0xdb,0x88,0xd9,0xb7,0xdb,0x8b,0xdb,0x8b,0xdb,0x85,0xdb,0x85,0xdb,0x89,0xdb,0x89,0xdb,0x90,0xdb,0x90,0xdb,
	0x90,0xdb,0x90,0xd9,0x89,0xd9,0x89,0xd8,0xa6,0xd8,0xa7,0xd8,0xa6,0xd8,0xa7,0xd8,0xa6,0xdb,0x95,0xd8,0xa6,0xdb,0x95,0xd8,0xa6,0xd9,0x88,0xd8,0xa6,0xd9,0x88,0xd8,
	0xa6,0xdb,0x87,0xd8,0xa6,0xdb,0x87,0xd8,0xa6,0xdb,0x86,0xd8,0xa6,0xdb,0x86,0xd8,0xa6,0xdb,0x88,0xd8,0xa6,0xdb,0x88,0xd8,0xa6,0xdb,0x90,0xd8,0xa6,0xdb,0x90,0xd8,
	0xa6,0xdb,0x90,0xd8,0xa6,0xd9,0x89,0xd8,0xa6,0xd9,0x89,0xd8,0xa6,0xd9,0x89,0xdb,0x8c,0xdb,0x8c,0xdb,0x8c,0xdb,0x8c,0xd8,0xa6,0xd8,0xac,0xd8,0xa6,0xd8,0xad,0xd8,
	0xa6,0xd9,0x85,0xd8,0xa6,0xd9,0x89,0xd8,0xa6,0xd9,0x8a,0xd8,0xa8,0xd8,0xac,0xd8,0xa8,0xd8,0xad,0xd8,0xa8,0xd8,0xae,0xd8,0xa8,0xd9,0x85,0xd8,0xa8,0xd9,0x89,0xd8,
	0xa8,0xd9,0x8a,0xd8,0xaa,0xd8,0xac,0xd8,0xaa,0xd8,0xad,0xd8,0xaa,0xd8,0xae,0xd8,0xaa,0xd9,0x85,0xd8,0xaa,0xd9,0x89,0xd8,0xaa,0xd9,0x8a,0xd8,0xab,0xd8,0xac,0xd8,
	0xab,0xd9,0x85,0xd8,0xab,0xd9,0x89,0xd8,0xab,0xd9,0x8a,0xd8,0xac,0xd8,0xad,0xd8,0xac,0xd9,0x85,0xd8,0xad,0xd8,0xac,0xd8,0xad,0xd9,0x85,0xd8,0xae,0xd8,0xac,0xd8,
	0xae,0xd8,0xad,0xd8,0xae,0xd9,0x85,0xd8,0xb3,0xd8,0xac,0xd8,0xb3,0xd8,0xad,0xd8,0xb3,0xd8,0xae,0xd8,0xb3,0xd9,0x85,0xd8,0xb5,0xd8,0xad,0xd8,0xb5,0xd9,0x85,0xd8,
	0xb6,0xd8,0xac,0xd8,0xb6,0xd8,0xad,0xd8,0xb6,0xd8,0xae,0xd8,0xb6,0xd9,0x85,0xd8,0xb7,0xd8,0xad,0xd8,0xb7,0xd9,0x85,0xd8,0xb8,0xd9,0x85,0xd8,0xb9,0xd8,0xac,0xd8,
	0xb9,0xd9,0x85,0xd8,0xba,0xd8,0xac,0xd8,0xba,0xd9,0x85,0xd9,0x81,0xd8,0xac,0xd9,0x81,0xd8,0xad,0xd9,0x81,0xd8,0xae,0xd9,0x81,0xd9,0x85,0xd9,0x81,0xd9,0x89,0xd9,
	0x81,0xd9,0x8a,0xd9,0x82,0xd8,0xad,0xd9,0x82,0xd9,0x85,0xd9,0x82,0xd9,0x89,0xd9,0x82,0xd9,0x8a,0xd9,0x83,0xd8,0xa7,0xd9,0x83,0xd8,0xac,0xd9,0x83,0xd8,0xad,0xd9,
	0x83,0xd8,0xae,0xd9,0x83,0xd9,0x84,0xd9,0x83,0xd9,0x85,0xd9,0x83,0xd9,0x89,0xd9,0x83,0xd9,0x8a,0xd9,0x84,0xd8,0xac,0xd9,0x84,0xd8,0xad,0xd9,0x84,0xd8,0xae,0xd9,
	0x84,0xd9,0x85,0xd9,0x84,0xd9,0x89,0xd9,0x84,0xd9,0x8a,0xd9,0x85,0xd8,0xac,0xd9,0x85,0xd8,0xad,0xd9,0x85,0xd8,0xae,0xd9,0x85,0xd9,0x85,0xd9,0x85,0xd9,0x89,0xd9,
	0x85,0xd9,0x8a,0xd9,0x86,0xd8,0xac,0xd9,0x86,0xd8,0xad,0xd9,0x86,0xd8,0xae,0xd9,0x86,0xd9,0x85,0xd9,0x86,0xd9,0x89,0xd9,0x86,0xd9,0x8a,0xd9,0x87,0xd8,0xac,0xd9,
	0x87,0xd9,0x85,0xd9,0x87,0xd9,0x89,0xd9,0x87,0xd9,0x8a,0xd9,0x8a,0xd8,0xac,0xd9,0x8a,0xd8,0xad,0xd9,0x8a,0xd8,0xae,0xd9,0x8a,0xd9,0x85,0xd9,0x8a,0xd9,0x89,0xd9,
	0x8a,0xd9,0x8a,0xd8,0xb0,0xd9,0xb0,0xd8,0xb1,0xd9,0xb0,0xd9,0x89,0xd9,0xb0,0x20,0xd9,0x8c,0xd9,0x91,0x20,0xd9,0x8d,0xd9,0x91,0x20,0xd9,0x8e,0xd9,0x91,0x20,0xd9,
	0x8f,0xd9,0x91,0x20,0xd9,0x90,0xd9,0x91,0x20,0xd9,0x91,0xd9,0xb0,0xd8,0xa6,0xd8,0xb1,0xd8,0xa6,0xd8,0xb2,0xd8,0xa6,0xd9,0x85,0xd8,0xa6,0xd9,0x86,0xd8,0xa6,0xd9,
	0x89,0xd8,0xa6,0xd9,0x8a,0xd8,0xa8,0xd8,0xb1,0xd8,0xa8,0xd8,0xb2,0xd8,0xa8,0xd9,0x85,0xd8,0xa8,0xd9,0x86,0xd8,0xa8,0xd9,0x89,0xd8,0xa8,0xd9,0x8a,0xd8,0xaa,0xd8,
	0xb1,0xd8,0xaa,0xd8,0xb2,0xd8,0xaa,0xd9,0x85,0xd8,0xaa,0xd9,0x86,0xd8,0xaa,0xd9,0x89,0xd8,0xaa,0xd9,0x8a,0xd8,0xab,0xd8,0xb1,0xd8,0xab,0xd8,0xb2,0xd8,0xab,0xd9,
	0x85,0xd8,0xab,0xd9,0x86,0xd8,0xab,0xd9,0x89,0xd8,0xab,0xd9,0x8a,0xd9,0x81,0xd9,0x89,0xd9,0x81,0xd9,0x8a,0xd9,0x82,0xd9,0x89,0xd9,0x82,0xd9,0x8a,0xd9,0x83,0xd8,
	0xa7,0xd9,0x83,0xd9,0x84,0xd9,0x83,0xd9,0x85,0xd9,0x83,0xd9,0x89,0xd9,0x83,0xd9,0x8a,0xd9,0x84,0xd9,0x85,0xd9,0x84,0xd9,0x89,0xd9,0x84,0xd9,0x8a,0xd9,0x85,0xd8,
	0xa7,0xd9,0x85,0xd9,0x85,0xd9,0x86,0xd8,0xb1,0xd9,0x86,0xd8,0xb2,0xd9,0x86,0xd9,0x85,0xd9,0x86,0xd9,0x86,0xd9,0x86,0xd9,0x89,0xd9,0x86,0xd9,0x8a,0xd9,0x89,0xd9,
	0xb0,0xd9,0x8a,0xd8,0xb1,0xd9,0x8a,0xd8,0xb2,0xd9,0x8a,0xd9,0x85,0xd9,0x8a,0xd9,0x86,0xd9,0x8a,0xd9,0x89,0xd9,0x8a,0xd9,0x8a,0xd8,0xa6,0xd8,0xac,0xd8,0xa6,0xd8,
	0xad,0xd8,0xa6,0xd8,0xae,0xd8,0xa6,0xd9,0x85,0xd8,0xa6,0xd9,0x87,0xd8,0xa8,0xd8,0xac,0xd8,0xa8,0xd8,0xad,0xd8,0xa8,0xd8,0xae,0xd8,0xa8,0xd9,0x85,0xd8,0xa8,0xd9,
	0x87,0xd8,0xaa,0xd8,0xac,0xd8,0xaa,0xd8,0xad,0xd8,0xaa,0xd8,0xae,0xd8,0xaa,0xd9,0x85,0xd8,0xaa,0xd9,0x87,0xd8,0xab,0xd9,0x85,0xd8,0xac,0xd8,0xad,0xd8,0xac,0xd9,
	0x85,0xd8,0xad,0xd8,0xac,0xd8,0xad,0xd9,0x85,0xd8,0xae,0xd8,0xac,0xd8,0xae,0xd9,0x85,0xd8,0xb3,0xd8,0xac,0xd8,0xb3,0xd8,0xad,0xd8,0xb3,0xd8,0xae,0xd8,0xb3,0xd9,
	0x85,0xd8,0xb5,0xd8,0xad,0xd8,0xb5,0xd8,0xae,0xd8,0xb5,0xd9,0x85,0xd8,0xb6,0xd8,0xac,0xd8,0xb6,0xd8,0xad,0xd8,0xb6,0xd8,0xae,0xd8,0xb6,0xd9,0x85,0xd8,0xb7,0xd8,
	0xad,0xd8,0xb8,0xd9,0x85,0xd8,0xb9,0xd8,0xac,0xd8,0xb9,0xd9,0x85,0xd8,0xba,0xd8,0xac,0xd8,0xba,0xd9,0x85,0xd9,0x81,0xd8,0xac,0xd9,0x81,0xd8,0xad,0xd9,0x81,0xd8,
	0xae,0xd9,0x81,0xd9,0x85,0xd9,0x82,0xd8,0xad,0xd9,0x82,0xd9,0x85,0xd9,0x83,0xd8,0xac,0xd9,0x83,0xd8,0xad,0xd9,0x83,0xd8,0xae,0xd9,0x83,0xd9,0x84,0xd9,0x83,0xd9,
	0x85,0xd9,0x84,0xd8,0xac,0xd9,0x84,0xd8,0xad,0xd9,0x84,0xd8,0xae,0xd9,0x84,0xd9,0x85,0xd9,0x84,0xd9,0x87,0xd9,0x85,0xd8,0xac,0xd9,0x85,0xd8,0xad,0xd9,0x85,0xd8,
	0xae,0xd9,0x85,0xd9,0x85,0xd9,0x86,0xd8,0xac,0xd9,0x86,0xd8,0xad,0xd9,0x86,0xd8,0xae,0xd9,0x86,0xd9,0x85,0xd9,0x86,0xd9,0x87,0xd9,0x87,0xd8,0xac,0xd9,0x87,0xd9,
	0x85,0xd9,0x87,0xd9,0xb0,0xd9,0x8a,0xd8,0xac,0xd9,0x8a,0xd8,0xad,0xd9,0x8a,0xd8,0xae,0xd9,0x8a,0xd9,0x85,0xd9,0x8a,0xd9,0x87,0xd8,0xa6,0xd9,0x85,0xd8,0xa6,0xd9,
	0x87,0xd8,0xa8,0xd9,0x85,0xd8,0xa8,0xd9,0x87,0xd8,0xaa,0xd9,0x85,0xd8,0xaa,0xd9,0x87,0xd8,0xab,0xd9,0x85,0xd8,0xab,0xd9,0x87,0xd8,0xb3,0xd9,0x85,0xd8,0xb3,0xd9,
	0x87,0xd8,0xb4,0xd9,0x85,0xd8,0xb4,0xd9,0x87,0xd9,0x83,0xd9,0x84,0xd9,0x83,0xd9,0x85,0xd9,0x84,0xd9,0x85,0xd9,0x86,0xd9,0x85,0xd9,0x86,0xd9,0x87,0xd9,0x8a,0xd9,
	0x85,0xd9,0x8a,0xd9,0x87,0xd9,0x80,0xd9,0x8e,0xd9,0x91,0xd9,0x80,0xd9,0x8f,0xd9,0x91,0xd9,0x80,0xd9,0x90,0xd9,0x91,0xd8,0xb7,0xd9,0x89,0xd8,0xb7,0xd9,0x8a,0xd8,
	0xb9,0xd9,0x89,0xd8,0xb9,0xd9,0x8a,0xd8,0xba,0xd9,0x89,0xd8,0xba,0xd9,0x8a,0xd8,0xb3,0xd9,0x89,0xd8,0xb3,0xd9,0x8a,0xd8,0xb4,0xd9,0x89,0xd8,0xb4,0xd9,0x8a,0xd8,
	0xad,0xd9,0x89,0xd8,0xad,0xd9,0x8a,0xd8,0xac,0xd9,0x89,0xd8,0xac,0xd9,0x8a,0xd8,0xae,0xd9,0x89,0xd8,0xae,0xd9,0x8a,0xd8,0xb5,0xd9,0x89,0xd8,0xb5,0xd9,0x8a,0xd8,
	0xb6,0xd9,0x89,0xd8,0xb6,0xd9,0x8a,0xd8,0xb4,0xd8,0xac,0xd8,0xb4,0xd8,0xad,0xd8,0xb4,0xd8,0xae,0xd8,0xb4,0xd9,0x85,0xd8,0xb4,0xd8,0xb1,0xd8,0xb3,0xd8,0xb1,0xd8,
	0xb5,0xd8,0xb1,0xd8,0xb6,0xd8,0xb1,0xd8,0xb7,0xd9,0x89,0xd8,0xb7,0xd9,0x8a,0xd8,0xb9,0xd9,0x89,0xd8,0xb9,0xd9,0x8a,0xd8,0xba,0xd9,0x89,0xd8,0xba,0xd9,0x8a,0xd8,
	0xb3,0xd9,0x89,0xd8,0xb3,0xd9,0x8a,0xd8,0xb4,0xd9,0x89,0xd8,0xb4,0xd9,0x8a,0xd8,0xad,0xd9,0x89,0xd8,0xad,0xd9,0x8a,0xd8,0xac,0xd9,0x89,0xd8,0xac,0xd9,0x8a,0xd8,
	0xae,0xd9,0x89,0xd8,0xae,0xd9,0x8a,0xd8,0xb5,0xd9,0x89,0xd8,0xb5,0xd9,0x8a,0xd8,0xb6,0xd9,0x89,0xd8,0xb6,0xd9,0x8a,0xd8,0xb4,0xd8,0xac,0xd8,0xb4,0xd8,0xad,0xd8,
	0xb4,0xd8,0xae,0xd8,0xb4,0xd9,0x85,0xd8,0xb4,0xd8,0xb1,0xd8,0xb3,0xd8,0xb1,0xd8,0xb5,0xd8,0xb1,0xd8,0xb6,0xd8,0xb1,0xd8,0xb4,0xd8,0xac,0xd8,0xb4,0xd8,0xad,0xd8,
	0xb4,0xd8,0xae,0xd8,0xb4,0xd9,0x85,0xd8,0xb3,0xd9,0x87,0xd8,0xb4,0xd9,0x87,0xd8,0xb7,0xd9,0x85,0xd8,0xb3,0xd8,0xac,0xd8,0xb3,0xd8,0xad,0xd8,0xb3,0xd8,0xae,0xd8,
	0xb4,0xd8,0xac,0xd8,0xb4,0xd8,0xad,0xd8,0xb4,0xd8,0xae,0xd8,0xb7,0xd9,0x85,0xd8,0xb8,0xd9,0x85,0xd8,0xa7,0xd9,0x8b,0xd8,0xa7,0xd9,0x8b,0xd8,0xaa,0xd8,0xac,0xd9,
	0x85,0xd8,0xaa,0xd8,0xad,0xd8,0xac,0xd8,0xaa,0xd8,0xad,0xd8,0xac,0xd8,0xaa,0xd8,0xad,0xd9,0x85,0xd8,0xaa,0xd8,0xae,0xd9,0x85,0xd8,0xaa,0xd9,0x85,0xd8,0xac,0xd8,
	0xaa,0xd9,0x85,0xd8,0xad,0xd8,0xaa,0xd9,0x85,0xd8,0xae,0xd8,0xac,0xd9,0x85,0xd8,0xad,0xd8,0xac,0xd9,0x85,0xd8,0xad,0xd8,0xad,0xd9,0x85,0xd9,0x8a,0xd8,0xad,0xd9,
	0x85,0xd9,0x89,0xd8,0xb3,0xd8,0xad,0xd8,0xac,0xd8,0xb3,0xd8,0xac,0xd8,0xad,0xd8,0xb3,0xd8,0xac,0xd9,0x89,0xd8,0xb3,0xd9,0x85,0xd8,0xad,0xd8,0xb3,0xd9,0x85,0xd8,
	0xad,0xd8,0xb3,0xd9,0x85,0xd8,0xac,0xd8,0xb3,0xd9,0x85,0xd9,0x85,0xd8,0xb3,0xd9,0x85,0xd9,0x85,0xd8,0xb5,0xd8,0xad,0xd8,0xad,0xd8,0xb5,0xd8,0xad,0xd8,0xad,0xd8,
	0xb5,0xd9,0x85,0xd9,0x85,0xd8,0xb4,0xd8,0xad,0xd9,0x85,0xd8,0xb4,0xd8,0xad,0xd9,0x85,0xd8,0xb4,0xd8,0xac,0xd9,0x8a,0xd8,0xb4,0xd9,0x85,0xd8,0xae,0xd8,0xb4,0xd9,
	0x85,0xd8,0xae,0xd8,0xb4,0xd9,0x85,0xd9,0x85,0xd8,0xb4,0xd9,0x85,0xd9,0x85,0xd8,0xb6,0xd8,0xad,0xd9,0x89,0xd8,0xb6,0xd8,0xae,0xd9,0x85,0xd8,0xb6,0xd8,0xae,0xd9,
	0x85,0xd8,0xb7,0xd9,0x85,0xd8,0xad,0xd8,0xb7,0xd9,0x85,0xd8,0xad,0xd8,0xb7,0xd9,0x85,0xd9,0x85,0xd8,0xb7,0xd9,0x85,0xd9,0x8a,0xd8,0xb9,0xd8,0xac,0xd9,0x85,0xd8,
	0xb9,0xd9,0x85,0xd9,0x85,0xd8,0xb9,0xd9,0x85,0xd9,0x85,0xd8,0xb9,0xd9,0x85,0xd9,0x89,0xd8,0xba,0xd9,0x85,0xd9,0x85,0xd8,0xba,0xd9,0x85,0xd9,0x8a,0xd8,0xba,0xd9,
	0x85,0xd9,0x89,0xd9,0x81,0xd8,0xae,0xd9,0x85,0xd9,0x81,0xd8,0xae,0xd9,0x85,0xd9,0x82,0xd9,0x85,0xd8,0xad,0xd9,0x82,0xd9,0x85,0xd9,0x85,0xd9,0x84,0xd8,0xad,0xd9,
	0x85,0xd9,0x84,0xd8,0xad,0xd9,0x8a,0xd9,0x84,0xd8,0xad,0xd9,0x89,0xd9,0x84,0xd8,0xac,0xd8,0xac,0xd9,0x84,0xd8,0xac,0xd8,0xac,0xd9,0x84,0xd8,0xae,0xd9,0x85,0xd9,
	0x84,0xd8,0xae,0xd9,0x85,0xd9,0x84,0xd9,0x85,0xd8,0xad,0xd9,0x84,0xd9,0x85,0xd8,0xad,0xd9,0x85,0xd8,0xad,0xd8,0xac,0xd9,0x85,0xd8,0xad,0xd9,0x85,0xd9,0x85,0xd8,
	0xad,0xd9,0x8a,0xd9,0x85,0xd8,0xac,0xd8,0xad,0xd9,0x85,0xd8,0xac,0xd9,0x85,0xd9,0x85,0xd8,0xae,0xd8,0xac,0xd9,0x85,0xd8,0xae,0xd9,0x85,0xd9,0x85,0xd8,0xac,0xd8,
	0xae,0xd9,0x87,0xd9,0x85,0xd8,0xac,0xd9,0x87,0xd9,0x85,0xd9,0x85,0xd9,0x86,0xd8,0xad,0xd9,0x85,0xd9,0x86,0xd8,0xad,0xd9,0x89,0xd9,0x86,0xd8,0xac,0xd9,0x85,0xd9,
	0x86,0xd8,0xac,0xd9,0x85,0xd9,0x86,0xd8,0xac,0xd9,0x89,0xd9,0x86,0xd9,0x85,0xd9,0x8a,0xd9,0x86,0xd9,0x85,0xd9,0x89,0xd9,0x8a,0xd9,0x85,0xd9,0x85,0xd9,0x8a,0xd9,
	0x85,0xd9,0x85,0xd8,0xa8,0xd8,0xae,0xd9,0x8a,0xd8,0xaa,0xd8,0xac,0xd9,0x8a,0xd8,0xaa,0xd8,0xac,0xd9,0x89,0xd8,0xaa,0xd8,0xae,0xd9,0x8a,0xd8,0xaa,0xd8,0xae,0xd9,
	0x89,0xd8,0xaa,0xd9,0x85,0xd9,0x8a,0xd8,0xaa,0xd9,0x85,0xd9,0x89,0xd8,0xac,0xd9,0x85,0xd9,0x8a,0xd8,0xac,0xd8,0xad,0xd9,0x89,0xd8,0xac,0xd9,0x85,0xd9,0x89,0xd8,
	0xb3,0xd8,0xae,0xd9,0x89,0xd8,0xb5,0xd8,0xad,0xd9,0x8a,0xd8,0xb4,0xd8,0xad,0xd9,0x8a,0xd8,0xb6,0xd8,0xad,0xd9,0x8a,0xd9,0x84,0xd8,0xac,0xd9,0x8a,0xd9,0x84,0xd9,
	0x85,0xd9,0x8a,0xd9,0x8a,0xd8,0xad,0xd9,0x8a,0xd9,0x8a,0xd8,0xac,0xd9,0x8a,0xd9,0x8a,0xd9,0x85,0xd9,0x8a,0xd9,0x85,0xd9,0x85,0xd9,0x8a,0xd9,0x82,0xd9,0x85,0xd9,
	0x8a,0xd9,0x86,0xd8,0xad,0xd9,0x8a,0xd9,0x82,0xd9,0x85,0xd8,0xad,0xd9,0x84,0xd8,0xad,0xd9,0x85,0xd8,0xb9,0xd9,0x85,0xd9,0x8a,0xd9,0x83,0xd9,0x85,0xd9,0x8a,0xd9,
	0x86,0xd8,0xac,0xd8,0xad,0xd9,0x85,0xd8,0xae,0xd9,0x8a,0xd9,0x84,0xd8,0xac,0xd9,0x85,0xd9,0x83,0xd9,0x85,0xd9,0x85,0xd9,0x84,0xd8,0xac,0xd9,0x85,0xd9,0x86,0xd8,
	0xac,0xd8,0xad,0xd8,0xac,0xd8,0xad,0xd9,0x8a,0xd8,0xad,0xd8,0xac,0xd9,0x8a,0xd9,0x85,0xd8,0xac,0xd9,0x8a,0xd9,0x81,0xd9,0x85,0xd9,0x8a,0xd8,0xa8,0xd8,0xad,0xd9,
	0x8a,0xd9,0x83,0xd9,0x85,0xd9,0x85,0xd8,0xb9,0xd8,0xac,0xd9,0x85,0xd8,0xb5,0xd9,0x85,0xd9,0x85,0xd8,0xb3,0xd8,0xae,0xd9,0x8a,0xd9,0x86,0xd8,0xac,0xd9,0x8a,0xd8,
	0xb5,0xd9,0x84,0xdb,0x92,0xd9,0x82,0xd9,0x84,0xdb,0x92,0xd8,0xa7,0xd9,0x84,0xd9,0x84,0xd9,0x87,0xd8,0xa7,0xd9,0x83,0xd8,0xa8,0xd8,0xb1,0xd9,0x85,0xd8,0xad,0xd9,
	0x85,0xd8,0xaf,0xd8,0xb5,0xd9,0x84,0xd8,0xb9,0xd9,0x85,0xd8,0xb1,0xd8,0xb3,0xd9,0x88,0xd9,0x84,0xd8,0xb9,0xd9,0x84,0xd9,0x8a,0xd9,0x87,0xd9,0x88,0xd8,0xb3,0xd9,
	0x84,0xd9,0x85,0xd8,0xb5,0xd9,0x84,0xd9,0x89,0xd8,0xb5,0xd9,0x84,0xd9,0x89,0x20,0xd8,0xa7,0xd9,0x84,0xd9,0x84,0xd9,0x87,0x20,0xd8,0xb9,0xd9,0x84,0xd9,0x8a,0xd9,
	0x87,0x20,0xd9,0x88,0xd8,0xb3,0xd9,0x84,0xd9,0x85,0xd8,0xac,0xd9,0x84,0x20,0xd8,0xac,0xd9,0x84,0xd8,0xa7,0xd9,0x84,0xd9,0x87,0xd8,0xb1,0xdb,0x8c,0xd8,0xa7,0xd9,
	0x84,0x2c,0xe3,0x80,0x81,0xe3,0x80,0x82,0x3a,0x3b,0x21,0x3f,0xe3,0x80,0x96,0xe3,0x80,0x97,0xe2,0x80,0xa6,0xe2,0x80,0xa5,0xe2,0x80,0x94,0xe2,0x80,0x93,0x5f,0x5f,
	0x28,0x29,0x7b,0x7d,0xe3,0x80,0x94,0xe3,0x80,0x95,0xe3,0x80,0x90,0xe3,0x80,0x91,0xe3,0x80,0x8a,0xe3,0x80,0x8b,0xe3,0x80,0x88,0xe3,0x80,0x89,0xe3,0x80,0x8c,0xe3,
	0x80,0x8d,0xe3,0x80,0x8e,0xe3,0x80,0x8f,0x5b,0x5d,0xe2,0x80,0xbe,0xe2,0x80,0xbe,0xe2,0x80,0xbe,0xe2,0x80,0xbe,0x5f,0x5f,0x5f,0x2c,0xe3,0x80,0x81,0x2e,0x3b,0x3a,
	0x3f,0x21,0xe2,0x80,0x94,0x28,0x29,0x7b,0x7d,0xe3,0x80,0x94,0xe3,0x80,0x95,0x23,0x26,0x2a,0x2b,0x2d,0x3c,0x3e,0x3d,0x5c,0x24,0x25,0x40,0x20,0xd9,0x8b,0xd9,0x80,
	0xd9,0x8b,0x20,0xd9,0x8c,0x20,0xd9,0x8d,0x20,0xd9,0x8e,0xd9,0x80,0xd9,0x8e,0x20,0xd9,0x8f,0xd9,0x80,0xd9,0x8f,0x20,0xd9,0x90,0xd9,0x80,0xd9,0x90,0x20,0xd9,0x91,
	0xd9,0x80,0xd9,0x91,0x20,0xd9,0x92,0xd9,0x80,0xd9,0x92,0xd8,0xa1,0xd8,0xa2,0xd8,0xa2,0xd8,0xa3,0xd8,0xa3,0xd8,0xa4,0xd8,0xa4,0xd8,0xa5,0xd8,0xa5,0xd8,0xa6,0xd8,
	0xa6,0xd8,0xa6,0xd8,0xa6,0xd8,0xa7,0xd8,0xa7,0xd8,0xa8,0xd8,0xa8,0xd8,0xa8,0xd8,0xa8,0xd8,0xa9,0xd8,0xa9,0xd8,0xaa,0xd8,0xaa,0xd8,0xaa,0xd8,0xaa,0xd8,0xab,0xd8,
	0xab,0xd8,0xab,0xd8,0xab,0xd8,0xac,0xd8,0xac,0xd8,0xac,0xd8,0xac,0xd8,0xad,0xd8,0xad,0xd8,0xad,0xd8,0xad,0xd8,0xae,0xd8,0xae,0xd8,0xae,0xd8,0xae,0xd8,0xaf,0xd8,
	0xaf,0xd8,0xb0,0xd8,0xb0,0xd8,0xb1,0xd8,0xb1,0xd8,0xb2,0xd8,0xb2,0xd8,0xb3,0xd8,0xb3,0xd8,0xb3,0xd8,0xb3,0xd8,0xb4,0xd8,0xb4,0xd8,0xb4,0xd8,0xb4,0xd8,0xb5,0xd8,
	0xb5,0xd8,0xb5,0xd8,0xb5,0xd8,0xb6,0xd8,0xb6,0xd8,0xb6,0xd8,0xb6,0xd8,0xb7,0xd8,0xb7,0xd8,0xb7,0xd8,0xb7,0xd8,0xb8,0xd8,0xb8,0xd8,0xb8,0xd8,0xb8,0xd8,0xb9,0xd8,
	0xb9,0xd8,0xb9,0xd8,0xb9,0xd8,0xba,0xd8,0xba,0xd8,0xba,0xd8,0xba,0xd9,0x81,0xd9,0x81,0xd9,0x81,0xd9,0x81,0xd9,0x82,0xd9,0x82,0xd9,0x82,0xd9,0x82,0xd9,0x83,0xd9,
	0x83,0xd9,0x83,0xd9,0x83,0xd9,0x84,0xd9,0x84,0xd9,0x84,0xd9,0x84,0xd9,0x85,0xd9,0x85,0xd9,0x85,0xd9,0x85,0xd9,0x86,0xd9,0x86,0xd9,0x86,0xd9,0x86,0xd9,0x87,0xd9,
	0x87,0xd9,0x87,0xd9,0x87,0xd9,0x88,0xd9,0x88,0xd9,0x89,0xd9,0x89,0xd9,0x8a,0xd9,0x8a,0xd9,0x8a,0xd9,0x8a,0xd9,0x84,0xd8,0xa2,0xd9,0x84,0xd8,0xa2,0xd9,0x84,0xd8,
	0xa3,0xd9,0x84,0xd8,0xa3,0xd9,0x84,0xd8,0xa5,0xd9,0x84,0xd8,0xa5,0xd9,0x84,0xd8,0xa7,0xd9,0x84,0xd8,0xa7,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,
	0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,
	0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,
	0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0xe2,0xa6,0x85,0xe2,0xa6,0x86,0xe3,0x80,0x82,0xe3,0x80,0x8c,0xe3,
	0x80,0x8d,0xe3,0x80,0x81,0xe3,0x83,0xbb,0xe3,0x83,0xb2,0xe3,0x82,0xa1,0xe3,0x82,0xa3,0xe3,0x82,0xa5,0xe3,0x82,0xa7,0xe3,0x82,0xa9,0xe3,0x83,0xa3,0xe3,0x83,0xa5,
	0xe3,0x83,0xa7,0xe3,0x83,0x83,0xe3,0x83,0xbc,0xe3,0x82,0xa2,0xe3,0x82,0xa4,0xe3,0x82,0xa6,0xe3,0x82,0xa8,0xe3,0x82,0xaa,0xe3,0x82,0xab,0xe3,0x82,0xad,0xe3,0x82,
	0xaf,0xe3,0x82,0xb1,0xe3,0x82,0xb3,0xe3,0x82,0xb5,0xe3,0x82,0xb7,0xe3,0x82,0xb9,0xe3,0x82,0xbb,0xe3,0x82,0xbd,0xe3,0x82,0xbf,0xe3,0x83,0x81,0xe3,0x83,0x84,0xe3,
	0x83,0x86,0xe3,0x83,0x88,0xe3,0x83,0x8a,0xe3,0x83,0x8b,0xe3,0x83,0x8c,0xe3,0x83,0x8d,0xe3,0x83,0x8e,0xe3,0x83,0x8f,0xe3,0x83,0x92,0xe3,0x83,0x95,0xe3,0x83,0x98,
	0xe3,0x83,0x9b,0xe3,0x83,0x9e,0xe3,0x83,0x9f,0xe3,0x83,0xa0,0xe3,0x83,0xa1,0xe3,0x83,0xa2,0xe3,0x83,0xa4,0xe3,0x83,0xa6,0xe3,0x83,0xa8,0xe3,0x83,0xa9,0xe3,0x83,
	0xaa,0xe3,0x83,0xab,0xe3,0x83,0xac,0xe3,0x83,0xad,0xe3,0x83,0xaf,0xe3,0x83,0xb3,0xe3,0x82,0x99,0xe3,0x82,0x9a,0xe3,0x85,0xa4,0xe3,0x84,0xb1,0xe3,0x84,0xb2,0xe3,
	0x84,0xb3,0xe3,0x84,0xb4,0xe3,0x84,0xb5,0xe3,0x84,0xb6,0xe3,0x84,0xb7,0xe3,0x84,0xb8,0xe3,0x84,0xb9,0xe3,0x84,0xba,0xe3,0x84,0xbb,0xe3,0x84,0xbc,0xe3,0x84,0xbd,
	0xe3,0x84,0xbe,0xe3,0x84,0xbf,0xe3,0x85,0x80,0xe3,0x85,0x81,0xe3,0x85,0x82,0xe3,0x85,0x83,0xe3,0x85,0x84,0xe3,0x85,0x85,0xe3,0x85,0x86,0xe3,0x85,0x87,0xe3,0x85,
	0x88,0xe3,0x85,0x89,0xe3,0x85,0x8a,0xe3,0x85,0x8b,0xe3,0x85,0x8c,0xe3,0x85,0x8d,0xe3,0x85,0x8e,0xe3,0x85,0x8f,0xe3,0x85,0x90,0xe3,0x85,0x91,0xe3,0x85,0x92,0xe3,
	0x85,0x93,0xe3,0x85,0x94,0xe3,0x85,0x95,0xe3,0x85,0x96,0xe3,0x85,0x97,0xe3,0x85,0x98,0xe3,0x85,0x99,0xe3,0x85,0x9a,0xe3,0x85,0x9b,0xe3,0x85,0x9c,0xe3,0x85,0x9d,
	0xe3,0x85,0x9e,0xe3,0x85,0x9f,0xe3,0x85,0xa0,0xe3,0x85,0xa1,0xe3,0x85,0xa2,0xe3,0x85,0xa3,0xc2,0xa2,0xc2,0xa3,0xc2,0xac,0xc2,0xaf,0xc2,0xa6,0xc2,0xa5,0xe2,0x82,
	0xa9,0xe2,0x94,0x82,0xe2,0x86,0x90,0xe2,0x86,0x91,0xe2,0x86,0x92,0xe2,0x86,0x93,0xe2,0x96,0xa0,0xe2,0x97,0x8b,
};
#define mxDecompositionCount0 7778
static const txU2 gxDecompositionIndex0[mxDecompositionCount0] ICACHE_XS6RO_ATTR = {
	0x00A0,0x8000,0x00A8,0x8001,0x00AA,0x8004,0x00AF,0x8005,0x00B2,0x8008,0x00B3,0x8009,0x00B4,0x800A,0x00B5,0x800D,0x00B8,0x800F,0x00B9,0x8012,0x00BA,0x8013,0x00BC,0x8014,0x00BD,0x8019,0x00BE,0x801E,0x00C0,0x0023,0x00C1,0x0026,
	0x00C2,0x0029,0x00C3,0x002C,0x00C4,0x002F,0x00C5,0x0032,0x00C7,0x0035,0x00C8,0x0038,0x00C9,0x003B,0x00CA,0x003E,0x00CB,0x0041,0x00CC,0x0044,0x00CD,0x0047,0x00CE,0x004A,0x00CF,0x004D,0x00D1,0x0050,0x00D2,0x0053,0x00D3,0x0056,
	0x00D4,0x0059,0x00D5,0x005C,0x00D6,0x005F,0x00D9,0x0062,0x00DA,0x0065,0x00DB,0x0068,0x00DC,0x006B,0x00DD,0x006E,0x00E0,0x0071,0x00E1,0x0074,0x00E2,0x0077,0x00E3,0x007A,0x00E4,0x007D,0x00E5,0x0080,0x00E7,0x0083,0x00E8,0x0086,
	0x00E9,0x0089,0x00EA,0x008C,0x00EB,0x008F,0x00EC,0x0092,0x00ED,0x0095,0x00EE,0x0098,0x00EF,0x009B,0x00F1,0x009E,0x00F2,0x00A1,0x00F3,0x00A4,0x00F4,0x00A7,0x00F5,0x00AA,0x00F6,0x00AD,0x00F9,0x00B0,0x00FA,0x00B3,0x00FB,0x00B6,
	0x00FC,0x00B9,0x00FD,0x00BC,0x00FF,0x00BF,0x0100,0x00C2,0x0101,0x00C5,0x0102,0x00C8,0x0103,0x00CB,0x0104,0x00CE,0x0105,0x00D1,0x0106,0x00D4,0x0107,0x00D7,0x0108,0x00DA,0x0109,0x00DD,0x010A,0x00E0,0x010B,0x00E3,0x010C,0x00E6,
	0x010D,0x00E9,0x010E,0x00EC,0x010F,0x00EF,0x0112,0x00F2,0x0113,0x00F5,0x0114,0x00F8,0x0115,0x00FB,0x0116,0x00FE,0x0117,0x0101,0x0118,0x0104,0x0119,0x0107,0x011A,0x010A,0x011B,0x010D,0x011C,0x0110,0x011D,0x0113,0x011E,0x0116,
	0x011F,0x0119,0x0120,0x011C,0x0121,0x011F,0x0122,0x0122,0x0123,0x0125,0x0124,0x0128,0x0125,0x012B,0x0128,0x012E,0x0129,0x0131,0x012A,0x0134,0x012B,0x0137,0x012C,0x013A,0x012D,0x013D,0x012E,0x0140,0x012F,0x0143,0x0130,0x0146,
	0x0132,0x8149,0x0133,0x814B,0x0134,0x014D,0x0135,0x0150,0x0136,0x0153,0x0137,0x0156,0x0139,0x0159,0x013A,0x015C,0x013B,0x015F,0x013C,0x0162,0x013D,0x0165,0x013E,0x0168,0x013F,0x816B,0x0140,0x816E,0x0143,0x0171,0x0144,0x0174,
	0x0145,0x0177,0x0146,0x017A,0x0147,0x017D,0x0148,0x0180,0x0149,0x8183,0x014C,0x0186,0x014D,0x0189,0x014E,0x018C,0x014F,0x018F,0x0150,0x0192,0x0151,0x0195,0x0154,0x0198,0x0155,0x019B,0x0156,0x019E,0x0157,0x01A1,0x0158,0x01A4,
	0x0159,0x01A7,0x015A,0x01AA,0x015B,0x01AD,0x015C,0x01B0,0x015D,0x01B3,0x015E,0x01B6,0x015F,0x01B9,0x0160,0x01BC,0x0161,0x01BF,0x0162,0x01C2,0x0163,0x01C5,0x0164,0x01C8,0x0165,0x01CB,0x0168,0x01CE,0x0169,0x01D1,0x016A,0x01D4,
	0x016B,0x01D7,0x016C,0x01DA,0x016D,0x01DD,0x016E,0x01E0,0x016F,0x01E3,0x0170,0x01E6,0x0171,0x01E9,0x0172,0x01EC,0x0173,0x01EF,0x0174,0x01F2,0x0175,0x01F5,0x0176,0x01F8,0x0177,0x01FB,0x0178,0x01FE,0x0179,0x0201,0x017A,0x0204,
	0x017B,0x0207,0x017C,0x020A,0x017D,0x020D,0x017E,0x0210,0x017F,0x8213,0x01A0,0x0214,0x01A1,0x0217,0x01AF,0x021A,0x01B0,0x021D,0x01C4,0x8220,0x01C5,0x8223,0x01C6,0x8226,0x01C7,0x8229,0x01C8,0x822B,0x01C9,0x822D,0x01CA,0x822F,
	0x01CB,0x8231,0x01CC,0x8233,0x01CD,0x0235,0x01CE,0x0238,0x01CF,0x023B,0x01D0,0x023E,0x01D1,0x0241,0x01D2,0x0244,0x01D3,0x0247,0x01D4,0x024A,0x01D5,0x024D,0x01D6,0x0251,0x01D7,0x0255,0x01D8,0x0259,0x01D9,0x025D,0x01DA,0x0261,
	0x01DB,0x0265,0x01DC,0x0269,0x01DE,0x026D,0x01DF,0x0271,0x01E0,0x0275,0x01E1,0x0279,0x01E2,0x027D,0x01E3,0x0281,0x01E6,0x0285,0x01E7,0x0288,0x01E8,0x028B,0x01E9,0x028E,0x01EA,0x0291,0x01EB,0x0294,0x01EC,0x0297,0x01ED,0x029B,
	0x01EE,0x029F,0x01EF,0x02A3,0x01F0,0x02A7,0x01F1,0x82AA,0x01F2,0x82AC,0x01F3,0x82AE,0x01F4,0x02B0,0x01F5,0x02B3,0x01F8,0x02B6,0x01F9,0x02B9,0x01FA,0x02BC,0x01FB,0x02C0,0x01FC,0x02C4,0x01FD,0x02C8,0x01FE,0x02CC,0x01FF,0x02D0,
	0x0200,0x02D4,0x0201,0x02D7,0x0202,0x02DA,0x0203,0x02DD,0x0204,0x02E0,0x0205,0x02E3,0x0206,0x02E6,0x0207,0x02E9,0x0208,0x02EC,0x0209,0x02EF,0x020A,0x02F2,0x020B,0x02F5,0x020C,0x02F8,0x020D,0x02FB,0x020E,0x02FE,0x020F,0x0301,
	0x0210,0x0304,0x0211,0x0307,0x0212,0x030A,0x0213,0x030D,0x0214,0x0310,0x0215,0x0313,0x0216,0x0316,0x0217,0x0319,0x0218,0x031C,0x0219,0x031F,0x021A,0x0322,0x021B,0x0325,0x021E,0x0328,0x021F,0x032B,0x0226,0x032E,0x0227,0x0331,
	0x0228,0x0334,0x0229,0x0337,0x022A,0x033A,0x022B,0x033E,0x022C,0x0342,0x022D,0x0346,0x022E,0x034A,0x022F,0x034D,0x0230,0x0350,0x0231,0x0354,0x0232,0x0358,0x0233,0x035B,0x02B0,0x835E,0x02B1,0x835F,0x02B2,0x8361,0x02B3,0x8362,
	0x02B4,0x8363,0x02B5,0x8365,0x02B6,0x8367,0x02B7,0x8369,0x02B8,0x836A,0x02D8,0x836B,0x02D9,0x836E,0x02DA,0x8371,0x02DB,0x8374,0x02DC,0x8377,0x02DD,0x837A,0x02E0,0x837D,0x02E1,0x837F,0x02E2,0x8380,0x02E3,0x8381,0x02E4,0x8382,
	0x0340,0x0384,0x0341,0x0386,0x0343,0x0388,0x0344,0x038A,0x0374,0x038E,0x037A,0x8390,0x037E,0x0393,0x0384,0x8394,0x0385,0x0397,0x0386,0x039B,0x0387,0x039F,0x0388,0x03A1,0x0389,0x03A5,0x038A,0x03A9,0x038C,0x03AD,0x038E,0x03B1,
	0x038F,0x03B5,0x0390,0x03B9,0x03AA,0x03BD,0x03AB,0x03C1,0x03AC,0x03C5,0x03AD,0x03C9,0x03AE,0x03CD,0x03AF,0x03D1,0x03B0,0x03D5,0x03CA,0x03D9,0x03CB,0x03DD,0x03CC,0x03E1,0x03CD,0x03E5,0x03CE,0x03E9,0x03D0,0x83ED,0x03D1,0x83EF,
	0x03D2,0x83F1,0x03D3,0x03F3,0x03D4,0x03F7,0x03D5,0x83FB,0x03D6,0x83FD,0x03F0,0x83FF,0x03F1,0x8401,0x03F2,0x8403,0x03F4,0x8405,0x03F5,0x8407,0x03F9,0x8409,0x0400,0x040B,0x0401,0x040F,0x0403,0x0413,0x0407,0x0417,0x040C,0x041B,
	0x040D,0x041F,0x040E,0x0423,0x0419,0x0427,0x0439,0x042B,0x0450,0x042F,0x0451,0x0433,0x0453,0x0437,0x0457,0x043B,0x045C,0x043F,0x045D,0x0443,0x045E,0x0447,0x0476,0x044B,0x0477,0x044F,0x04C1,0x0453,0x04C2,0x0457,0x04D0,0x045B,
	0x04D1,0x045F,0x04D2,0x0463,0x04D3,0x0467,0x04D6,0x046B,0x04D7,0x046F,0x04DA,0x0473,0x04DB,0x0477,0x04DC,0x047B,0x04DD,0x047F,0x04DE,0x0483,0x04DF,0x0487,0x04E2,0x048B,0x04E3,0x048F,0x04E4,0x0493,0x04E5,0x0497,0x04E6,0x049B,
	0x04E7,0x049F,0x04EA,0x04A3,0x04EB,0x04A7,0x04EC,0x04AB,0x04ED,0x04AF,0x04EE,0x04B3,0x04EF,0x04B7,0x04F0,0x04BB,0x04F1,0x04BF,0x04F2,0x04C3,0x04F3,0x04C7,0x04F4,0x04CB,0x04F5,0x04CF,0x04F8,0x04D3,0x04F9,0x04D7,0x0587,0x84DB,
	0x0622,0x04DF,0x0623,0x04E3,0x0624,0x04E7,0x0625,0x04EB,0x0626,0x04EF,0x0675,0x84F3,0x0676,0x84F7,0x0677,0x84FB,0x0678,0x84FF,0x06C0,0x0503,0x06C2,0x0507,0x06D3,0x050B,0x0929,0x050F,0x0931,0x0515,0x0934,0x051B,0x0958,0x0521,
	0x0959,0x0527,0x095A,0x052D,0x095B,0x0533,0x095C,0x0539,0x095D,0x053F,0x095E,0x0545,0x095F,0x054B,0x09CB,0x0551,0x09CC,0x0557,0x09DC,0x055D,0x09DD,0x0563,0x09DF,0x0569,0x0A33,0x056F,0x0A36,0x0575,0x0A59,0x057B,0x0A5A,0x0581,
	0x0A5B,0x0587,0x0A5E,0x058D,0x0B48,0x0593,0x0B4B,0x0599,0x0B4C,0x059F,0x0B5C,0x05A5,0x0B5D,0x05AB,0x0B94,0x05B1,0x0BCA,0x05B7,0x0BCB,0x05BD,0x0BCC,0x05C3,0x0C48,0x05C9,0x0CC0,0x05CF,0x0CC7,0x05D5,0x0CC8,0x05DB,0x0CCA,0x05E1,
	0x0CCB,0x05E7,0x0D4A,0x05ED,0x0D4B,0x05F3,0x0D4C,0x05F9,0x0DDA,0x05FF,0x0DDC,0x0605,0x0DDD,0x060B,0x0DDE,0x0611,0x0E33,0x8617,0x0EB3,0x861D,0x0EDC,0x8623,0x0EDD,0x8629,0x0F0C,0x862F,0x0F43,0x0632,0x0F4D,0x0638,0x0F52,0x063E,
	0x0F57,0x0644,0x0F5C,0x064A,0x0F69,0x0650,0x0F73,0x0656,0x0F75,0x065C,0x0F76,0x0662,0x0F77,0x8668,0x0F78,0x066E,0x0F79,0x8674,0x0F81,0x067A,0x0F93,0x0680,0x0F9D,0x0686,0x0FA2,0x068C,0x0FA7,0x0692,0x0FAC,0x0698,0x0FB9,0x069E,
	0x1026,0x06A4,0x10FC,0x86AA,0x1B06,0x06AD,0x1B08,0x06B3,0x1B0A,0x06B9,0x1B0C,0x06BF,0x1B0E,0x06C5,0x1B12,0x06CB,0x1B3B,0x06D1,0x1B3D,0x06D7,0x1B40,0x06DD,0x1B41,0x06E3,0x1B43,0x06E9,0x1D2C,0x86EF,0x1D2D,0x86F0,0x1D2E,0x86F2,
	0x1D30,0x86F3,0x1D31,0x86F4,0x1D32,0x86F5,0x1D33,0x86F7,0x1D34,0x86F8,0x1D35,0x86F9,0x1D36,0x86FA,0x1D37,0x86FB,0x1D38,0x86FC,0x1D39,0x86FD,0x1D3A,0x86FE,0x1D3C,0x86FF,0x1D3D,0x8700,0x1D3E,0x8702,0x1D3F,0x8703,0x1D40,0x8704,
	0x1D41,0x8705,0x1D42,0x8706,0x1D43,0x8707,0x1D44,0x8708,0x1D45,0x870A,0x1D46,0x870C,0x1D47,0x870F,0x1D48,0x8710,0x1D49,0x8711,0x1D4A,0x8712,0x1D4B,0x8714,0x1D4C,0x8716,0x1D4D,0x8718,0x1D4F,0x8719,0x1D50,0x871A,0x1D51,0x871B,
	0x1D52,0x871D,0x1D53,0x871E,0x1D54,0x8720,0x1D55,0x8723,0x1D56,0x8726,0x1D57,0x8727,0x1D58,0x8728,0x1D59,0x8729,0x1D5A,0x872C,0x1D5B,0x872E,0x1D5C,0x872F,0x1D5D,0x8732,0x1D5E,0x8734,0x1D5F,0x8736,0x1D60,0x8738,0x1D61,0x873A,
	0x1D62,0x873C,0x1D63,0x873D,0x1D64,0x873E,0x1D65,0x873F,0x1D66,0x8740,0x1D67,0x8742,0x1D68,0x8744,0x1D69,0x8746,0x1D6A,0x8748,0x1D78,0x874A,0x1D9B,0x874C,0x1D9C,0x874E,0x1D9D,0x874F,0x1D9E,0x8751,0x1D9F,0x8753,0x1DA0,0x8755,
	0x1DA1,0x8756,0x1DA2,0x8758,0x1DA3,0x875A,0x1DA4,0x875C,0x1DA5,0x875E,0x1DA6,0x8760,0x1DA7,0x8762,0x1DA8,0x8765,0x1DA9,0x8767,0x1DAA,0x8769,0x1DAB,0x876C,0x1DAC,0x876E,0x1DAD,0x8770,0x1DAE,0x8772,0x1DAF,0x8774,0x1DB0,0x8776,
	0x1DB1,0x8778,0x1DB2,0x877A,0x1DB3,0x877C,0x1DB4,0x877E,0x1DB5,0x8780,0x1DB6,0x8782,0x1DB7,0x8784,0x1DB8,0x8786,0x1DB9,0x8789,0x1DBA,0x878B,0x1DBB,0x878D,0x1DBC,0x878E,0x1DBD,0x8790,0x1DBE,0x8792,0x1DBF,0x8794,0x1E00,0x0796,
	0x1E01,0x0799,0x1E02,0x079C,0x1E03,0x079F,0x1E04,0x07A2,0x1E05,0x07A5,0x1E06,0x07A8,0x1E07,0x07AB,0x1E08,0x07AE,0x1E09,0x07B2,0x1E0A,0x07B6,0x1E0B,0x07B9,0x1E0C,0x07BC,0x1E0D,0x07BF,0x1E0E,0x07C2,0x1E0F,0x07C5,0x1E10,0x07C8,
	0x1E11,0x07CB,0x1E12,0x07CE,0x1E13,0x07D1,0x1E14,0x07D4,0x1E15,0x07D8,0x1E16,0x07DC,0x1E17,0x07E0,0x1E18,0x07E4,0x1E19,0x07E7,0x1E1A,0x07EA,0x1E1B,0x07ED,0x1E1C,0x07F0,0x1E1D,0x07F4,0x1E1E,0x07F8,0x1E1F,0x07FB,0x1E20,0x07FE,
	0x1E21,0x0801,0x1E22,0x0804,0x1E23,0x0807,0x1E24,0x080A,0x1E25,0x080D,0x1E26,0x0810,0x1E27,0x0813,0x1E28,0x0816,0x1E29,0x0819,0x1E2A,0x081C,0x1E2B,0x081F,0x1E2C,0x0822,0x1E2D,0x0825,0x1E2E,0x0828,0x1E2F,0x082C,0x1E30,0x0830,
	0x1E31,0x0833,0x1E32,0x0836,0x1E33,0x0839,0x1E34,0x083C,0x1E35,0x083F,0x1E36,0x0842,0x1E37,0x0845,0x1E38,0x0848,0x1E39,0x084D,0x1E3A,0x0852,0x1E3B,0x0855,0x1E3C,0x0858,0x1E3D,0x085B,0x1E3E,0x085E,0x1E3F,0x0861,0x1E40,0x0864,
	0x1E41,0x0867,0x1E42,0x086A,0x1E43,0x086D,0x1E44,0x0870,0x1E45,0x0873,0x1E46,0x0876,0x1E47,0x0879,0x1E48,0x087C,0x1E49,0x087F,0x1E4A,0x0882,0x1E4B,0x0885,0x1E4C,0x0888,0x1E4D,0x088C,0x1E4E,0x0890,0x1E4F,0x0894,0x1E50,0x0898,
	0x1E51,0x089C,0x1E52,0x08A0,0x1E53,0x08A4,0x1E54,0x08A8,0x1E55,0x08AB,0x1E56,0x08AE,0x1E57,0x08B1,0x1E58,0x08B4,0x1E59,0x08B7,0x1E5A,0x08BA,0x1E5B,0x08BD,0x1E5C,0x08C0,0x1E5D,0x08C5,0x1E5E,0x08CA,0x1E5F,0x08CD,0x1E60,0x08D0,
	0x1E61,0x08D3,0x1E62,0x08D6,0x1E63,0x08D9,0x1E64,0x08DC,0x1E65,0x08E0,0x1E66,0x08E4,0x1E67,0x08E8,0x1E68,0x08EC,0x1E69,0x08F1,0x1E6A,0x08F6,0x1E6B,0x08F9,0x1E6C,0x08FC,0x1E6D,0x08FF,0x1E6E,0x0902,0x1E6F,0x0905,0x1E70,0x0908,
	0x1E71,0x090B,0x1E72,0x090E,0x1E73,0x0911,0x1E74,0x0914,0x1E75,0x0917,0x1E76,0x091A,0x1E77,0x091D,0x1E78,0x0920,0x1E79,0x0924,0x1E7A,0x0928,0x1E7B,0x092C,0x1E7C,0x0930,0x1E7D,0x0933,0x1E7E,0x0936,0x1E7F,0x0939,0x1E80,0x093C,
	0x1E81,0x093F,0x1E82,0x0942,0x1E83,0x0945,0x1E84,0x0948,0x1E85,0x094B,0x1E86,0x094E,0x1E87,0x0951,0x1E88,0x0954,0x1E89,0x0957,0x1E8A,0x095A,0x1E8B,0x095D,0x1E8C,0x0960,0x1E8D,0x0963,0x1E8E,0x0966,0x1E8F,0x0969,0x1E90,0x096C,
	0x1E91,0x096F,0x1E92,0x0972,0x1E93,0x0975,0x1E94,0x0978,0x1E95,0x097B,0x1E96,0x097E,0x1E97,0x0981,0x1E98,0x0984,0x1E99,0x0987,0x1E9A,0x898A,0x1E9B,0x098D,0x1EA0,0x0991,0x1EA1,0x0994,0x1EA2,0x0997,0x1EA3,0x099A,0x1EA4,0x099D,
	0x1EA5,0x09A1,0x1EA6,0x09A5,0x1EA7,0x09A9,0x1EA8,0x09AD,0x1EA9,0x09B1,0x1EAA,0x09B5,0x1EAB,0x09B9,0x1EAC,0x09BD,0x1EAD,0x09C2,0x1EAE,0x09C7,0x1EAF,0x09CB,0x1EB0,0x09CF,0x1EB1,0x09D3,0x1EB2,0x09D7,0x1EB3,0x09DB,0x1EB4,0x09DF,
	0x1EB5,0x09E3,0x1EB6,0x09E7,0x1EB7,0x09EC,0x1EB8,0x09F1,0x1EB9,0x09F4,0x1EBA,0x09F7,0x1EBB,0x09FA,0x1EBC,0x09FD,0x1EBD,0x0A00,0x1EBE,0x0A03,0x1EBF,0x0A07,0x1EC0,0x0A0B,0x1EC1,0x0A0F,0x1EC2,0x0A13,0x1EC3,0x0A17,0x1EC4,0x0A1B,
	0x1EC5,0x0A1F,0x1EC6,0x0A23,0x1EC7,0x0A28,0x1EC8,0x0A2D,0x1EC9,0x0A30,0x1ECA,0x0A33,0x1ECB,0x0A36,0x1ECC,0x0A39,0x1ECD,0x0A3C,0x1ECE,0x0A3F,0x1ECF,0x0A42,0x1ED0,0x0A45,0x1ED1,0x0A49,0x1ED2,0x0A4D,0x1ED3,0x0A51,0x1ED4,0x0A55,
	0x1ED5,0x0A59,0x1ED6,0x0A5D,0x1ED7,0x0A61,0x1ED8,0x0A65,0x1ED9,0x0A6A,0x1EDA,0x0A6F,0x1EDB,0x0A73,0x1EDC,0x0A77,0x1EDD,0x0A7B,0x1EDE,0x0A7F,0x1EDF,0x0A83,0x1EE0,0x0A87,0x1EE1,0x0A8B,0x1EE2,0x0A8F,0x1EE3,0x0A93,0x1EE4,0x0A97,
	0x1EE5,0x0A9A,0x1EE6,0x0A9D,0x1EE7,0x0AA0,0x1EE8,0x0AA3,0x1EE9,0x0AA7,0x1EEA,0x0AAB,0x1EEB,0x0AAF,0x1EEC,0x0AB3,0x1EED,0x0AB7,0x1EEE,0x0ABB,0x1EEF,0x0ABF,0x1EF0,0x0AC3,0x1EF1,0x0AC7,0x1EF2,0x0ACB,0x1EF3,0x0ACE,0x1EF4,0x0AD1,
	0x1EF5,0x0AD4,0x1EF6,0x0AD7,0x1EF7,0x0ADA,0x1EF8,0x0ADD,0x1EF9,0x0AE0,0x1F00,0x0AE3,0x1F01,0x0AE7,0x1F02,0x0AEB,0x1F03,0x0AF0,0x1F04,0x0AF5,0x1F05,0x0AFA,0x1F06,0x0AFF,0x1F07,0x0B04,0x1F08,0x0B09,0x1F09,0x0B0D,0x1F0A,0x0B11,
	0x1F0B,0x0B16,0x1F0C,0x0B1B,0x1F0D,0x0B20,0x1F0E,0x0B25,0x1F0F,0x0B2A,0x1F10,0x0B2F,0x1F11,0x0B33,0x1F12,0x0B37,0x1F13,0x0B3C,0x1F14,0x0B41,0x1F15,0x0B46,0x1F18,0x0B4B,0x1F19,0x0B4F,0x1F1A,0x0B53,0x1F1B,0x0B58,0x1F1C,0x0B5D,
	0x1F1D,0x0B62,0x1F20,0x0B67,0x1F21,0x0B6B,0x1F22,0x0B6F,0x1F23,0x0B74,0x1F24,0x0B79,0x1F25,0x0B7E,0x1F26,0x0B83,0x1F27,0x0B88,0x1F28,0x0B8D,0x1F29,0x0B91,0x1F2A,0x0B95,0x1F2B,0x0B9A,0x1F2C,0x0B9F,0x1F2D,0x0BA4,0x1F2E,0x0BA9,
	0x1F2F,0x0BAE,0x1F30,0x0BB3,0x1F31,0x0BB7,0x1F32,0x0BBB,0x1F33,0x0BC0,0x1F34,0x0BC5,0x1F35,0x0BCA,0x1F36,0x0BCF,0x1F37,0x0BD4,0x1F38,0x0BD9,0x1F39,0x0BDD,0x1F3A,0x0BE1,0x1F3B,0x0BE6,0x1F3C,0x0BEB,0x1F3D,0x0BF0,0x1F3E,0x0BF5,
	0x1F3F,0x0BFA,0x1F40,0x0BFF,0x1F41,0x0C03,0x1F42,0x0C07,0x1F43,0x0C0C,0x1F44,0x0C11,0x1F45,0x0C16,0x1F48,0x0C1B,0x1F49,0x0C1F,0x1F4A,0x0C23,0x1F4B,0x0C28,0x1F4C,0x0C2D,0x1F4D,0x0C32,0x1F50,0x0C37,0x1F51,0x0C3B,0x1F52,0x0C3F,
	0x1F53,0x0C44,0x1F54,0x0C49,0x1F55,0x0C4E,0x1F56,0x0C53,0x1F57,0x0C58,0x1F59,0x0C5D,0x1F5B,0x0C61,0x1F5D,0x0C66,0x1F5F,0x0C6B,0x1F60,0x0C70,0x1F61,0x0C74,0x1F62,0x0C78,0x1F63,0x0C7D,0x1F64,0x0C82,0x1F65,0x0C87,0x1F66,0x0C8C,
	0x1F67,0x0C91,0x1F68,0x0C96,0x1F69,0x0C9A,0x1F6A,0x0C9E,0x1F6B,0x0CA3,0x1F6C,0x0CA8,0x1F6D,0x0CAD,0x1F6E,0x0CB2,0x1F6F,0x0CB7,0x1F70,0x0CBC,0x1F71,0x0CC0,0x1F72,0x0CC2,0x1F73,0x0CC6,0x1F74,0x0CC8,0x1F75,0x0CCC,0x1F76,0x0CCE,
	0x1F77,0x0CD2,0x1F78,0x0CD4,0x1F79,0x0CD8,0x1F7A,0x0CDA,0x1F7B,0x0CDE,0x1F7C,0x0CE0,0x1F7D,0x0CE4,0x1F80,0x0CE6,0x1F81,0x0CEB,0x1F82,0x0CF0,0x1F83,0x0CF5,0x1F84,0x0CFA,0x1F85,0x0CFF,0x1F86,0x0D04,0x1F87,0x0D09,0x1F88,0x0D0E,
	0x1F89,0x0D13,0x1F8A,0x0D18,0x1F8B,0x0D1D,0x1F8C,0x0D22,0x1F8D,0x0D27,0x1F8E,0x0D2C,0x1F8F,0x0D31,0x1F90,0x0D36,0x1F91,0x0D3B,0x1F92,0x0D40,0x1F93,0x0D45,0x1F94,0x0D4A,0x1F95,0x0D4F,0x1F96,0x0D54,0x1F97,0x0D59,0x1F98,0x0D5E,
	0x1F99,0x0D63,0x1F9A,0x0D68,0x1F9B,0x0D6D,0x1F9C,0x0D72,0x1F9D,0x0D77,0x1F9E,0x0D7C,0x1F9F,0x0D81,0x1FA0,0x0D86,0x1FA1,0x0D8B,0x1FA2,0x0D90,0x1FA3,0x0D95,0x1FA4,0x0D9A,0x1FA5,0x0D9F,0x1FA6,0x0DA4,0x1FA7,0x0DA9,0x1FA8,0x0DAE,
	0x1FA9,0x0DB3,0x1FAA,0x0DB8,0x1FAB,0x0DBD,0x1FAC,0x0DC2,0x1FAD,0x0DC7,0x1FAE,0x0DCC,0x1FAF,0x0DD1,0x1FB0,0x0DD6,0x1FB1,0x0DDA,0x1FB2,0x0DDE,0x1FB3,0x0DE3,0x1FB4,0x0DE7,0x1FB6,0x0DEB,0x1FB7,0x0DEF,0x1FB8,0x0DF4,0x1FB9,0x0DF8,
	0x1FBA,0x0DFC,0x1FBB,0x0E00,0x1FBC,0x0E02,0x1FBD,0x8E06,0x1FBE,0x0E09,0x1FBF,0x8E0B,0x1FC0,0x8E0E,0x1FC1,0x0E11,0x1FC2,0x0E15,0x1FC3,0x0E1A,0x1FC4,0x0E1E,0x1FC6,0x0E22,0x1FC7,0x0E26,0x1FC8,0x0E2B,0x1FC9,0x0E2F,0x1FCA,0x0E31,
	0x1FCB,0x0E35,0x1FCC,0x0E37,0x1FCD,0x0E3B,0x1FCE,0x0E40,0x1FCF,0x0E45,0x1FD0,0x0E4A,0x1FD1,0x0E4E,0x1FD2,0x0E52,0x1FD3,0x0E56,0x1FD6,0x0E58,0x1FD7,0x0E5C,0x1FD8,0x0E60,0x1FD9,0x0E64,0x1FDA,0x0E68,0x1FDB,0x0E6C,0x1FDD,0x0E6E,
	0x1FDE,0x0E73,0x1FDF,0x0E78,0x1FE0,0x0E7D,0x1FE1,0x0E81,0x1FE2,0x0E85,0x1FE3,0x0E89,0x1FE4,0x0E8B,0x1FE5,0x0E8F,0x1FE6,0x0E93,0x1FE7,0x0E97,0x1FE8,0x0E9B,0x1FE9,0x0E9F,0x1FEA,0x0EA3,0x1FEB,0x0EA7,0x1FEC,0x0EA9,0x1FED,0x0EAD,
	0x1FEE,0x0EB1,0x1FEF,0x0EB3,0x1FF2,0x0EB4,0x1FF3,0x0EB9,0x1FF4,0x0EBD,0x1FF6,0x0EC1,0x1FF7,0x0EC5,0x1FF8,0x0ECA,0x1FF9,0x0ECE,0x1FFA,0x0ED0,0x1FFB,0x0ED4,0x1FFC,0x0ED6,0x1FFD,0x0EDA,0x1FFE,0x8EDC,0x2000,0x0EDF,0x2001,0x0EE2,
	0x2002,0x8EE5,0x2003,0x8EE6,0x2004,0x8EE7,0x2005,0x8EE8,0x2006,0x8EE9,0x2007,0x8EEA,0x2008,0x8EEB,0x2009,0x8EEC,0x200A,0x8EED,0x2011,0x8EEE,0x2017,0x8EF1,0x2024,0x8EF4,0x2025,0x8EF5,0x2026,0x8EF7,0x202F,0x8EFA,0x2033,0x8EFB,
	0x2034,0x8F01,0x2036,0x8F0A,0x2037,0x8F10,0x203C,0x8F19,0x203E,0x8F1B,0x2047,0x8F1E,0x2048,0x8F20,0x2049,0x8F22,0x2057,0x8F24,0x205F,0x8F30,0x2070,0x8F31,0x2071,0x8F32,0x2074,0x8F33,0x2075,0x8F34,0x2076,0x8F35,0x2077,0x8F36,
	0x2078,0x8F37,0x2079,0x8F38,0x207A,0x8F39,0x207B,0x8F3A,0x207C,0x8F3D,0x207D,0x8F3E,0x207E,0x8F3F,0x207F,0x8F40,0x2080,0x8F41,0x2081,0x8F42,0x2082,0x8F43,0x2083,0x8F44,0x2084,0x8F45,0x2085,0x8F46,0x2086,0x8F47,0x2087,0x8F48,
	0x2088,0x8F49,0x2089,0x8F4A,0x208A,0x8F4B,0x208B,0x8F4C,0x208C,0x8F4F,0x208D,0x8F50,0x208E,0x8F51,0x2090,0x8F52,0x2091,0x8F53,0x2092,0x8F54,0x2093,0x8F55,0x2094,0x8F56,0x2095,0x8F58,0x2096,0x8F59,0x2097,0x8F5A,0x2098,0x8F5B,
	0x2099,0x8F5C,0x209A,0x8F5D,0x209B,0x8F5E,0x209C,0x8F5F,0x20A8,0x8F60,0x2100,0x8F62,0x2101,0x8F65,0x2102,0x8F68,0x2103,0x8F69,0x2105,0x8F6C,0x2106,0x8F6F,0x2107,0x8F72,0x2109,0x8F74,0x210A,0x8F77,0x210B,0x8F78,0x210C,0x8F79,
	0x210D,0x8F7A,0x210E,0x8F7B,0x210F,0x8F7C,0x2110,0x8F7E,0x2111,0x8F7F,0x2112,0x8F80,0x2113,0x8F81,0x2115,0x8F82,0x2116,0x8F83,0x2119,0x8F85,0x211A,0x8F86,0x211B,0x8F87,0x211C,0x8F88,0x211D,0x8F89,0x2120,0x8F8A,0x2121,0x8F8C,
	0x2122,0x8F8F,0x2124,0x8F91,0x2126,0x0F92,0x2128,0x8F94,0x212A,0x0F95,0x212B,0x0F96,0x212C,0x8F98,0x212D,0x8F99,0x212F,0x8F9A,0x2130,0x8F9B,0x2131,0x8F9C,0x2133,0x8F9D,0x2134,0x8F9E,0x2135,0x8F9F,0x2136,0x8FA1,0x2137,0x8FA3,
	0x2138,0x8FA5,0x2139,0x8FA7,0x213B,0x8FA8,0x213C,0x8FAB,0x213D,0x8FAD,0x213E,0x8FAF,0x213F,0x8FB1,0x2140,0x8FB3,0x2145,0x8FB6,0x2146,0x8FB7,0x2147,0x8FB8,0x2148,0x8FB9,0x2149,0x8FBA,0x2150,0x8FBB,0x2151,0x8FC0,0x2152,0x8FC5,
	0x2153,0x8FCB,0x2154,0x8FD0,0x2155,0x8FD5,0x2156,0x8FDA,0x2157,0x8FDF,0x2158,0x8FE4,0x2159,0x8FE9,0x215A,0x8FEE,0x215B,0x8FF3,0x215C,0x8FF8,0x215D,0x8FFD,0x215E,0x9002,0x215F,0x9007,0x2160,0x900B,0x2161,0x900C,0x2162,0x900E,
	0x2163,0x9011,0x2164,0x9013,0x2165,0x9014,0x2166,0x9016,0x2167,0x9019,0x2168,0x901D,0x2169,0x901F,0x216A,0x9020,0x216B,0x9022,0x216C,0x9025,0x216D,0x9026,0x216E,0x9027,0x216F,0x9028,0x2170,0x9029,0x2171,0x902A,0x2172,0x902C,
	0x2173,0x902F,0x2174,0x9031,0x2175,0x9032,0x2176,0x9034,0x2177,0x9037,0x2178,0x903B,0x2179,0x903D,0x217A,0x903E,0x217B,0x9040,0x217C,0x9043,0x217D,0x9044,0x217E,0x9045,0x217F,0x9046,0x2189,0x9047,0x219A,0x104C,0x219B,0x1051,
	0x21AE,0x1056,0x21CD,0x105B,0x21CE,0x1060,0x21CF,0x1065,0x2204,0x106A,0x2209,0x106F,0x220C,0x1074,0x2224,0x1079,0x2226,0x107E,0x222C,0x9083,0x222D,0x9089,0x222F,0x9092,0x2230,0x9098,0x2241,0x10A1,0x2244,0x10A6,0x2247,0x10AB,
	0x2249,0x10B0,0x2260,0x10B5,0x2262,0x10B8,0x226D,0x10BD,0x226E,0x10C2,0x226F,0x10C5,0x2270,0x10C8,0x2271,0x10CD,0x2274,0x10D2,0x2275,0x10D7,0x2278,0x10DC,0x2279,0x10E1,0x2280,0x10E6,0x2281,0x10EB,0x2284,0x10F0,0x2285,0x10F5,
	0x2288,0x10FA,0x2289,0x10FF,0x22AC,0x1104,0x22AD,0x1109,0x22AE,0x110E,0x22AF,0x1113,0x22E0,0x1118,0x22E1,0x111D,0x22E2,0x1122,0x22E3,0x1127,0x22EA,0x112C,0x22EB,0x1131,0x22EC,0x1136,0x22ED,0x113B,0x2329,0x1140,0x232A,0x1143,
	0x2460,0x9146,0x2461,0x9147,0x2462,0x9148,0x2463,0x9149,0x2464,0x914A,0x2465,0x914B,0x2466,0x914C,0x2467,0x914D,0x2468,0x914E,0x2469,0x914F,0x246A,0x9151,0x246B,0x9153,0x246C,0x9155,0x246D,0x9157,0x246E,0x9159,0x246F,0x915B,
	0x2470,0x915D,0x2471,0x915F,0x2472,0x9161,0x2473,0x9163,0x2474,0x9165,0x2475,0x9168,0x2476,0x916B,0x2477,0x916E,0x2478,0x9171,0x2479,0x9174,0x247A,0x9177,0x247B,0x917A,0x247C,0x917D,0x247D,0x9180,0x247E,0x9184,0x247F,0x9188,
	0x2480,0x918C,0x2481,0x9190,0x2482,0x9194,0x2483,0x9198,0x2484,0x919C,0x2485,0x91A0,0x2486,0x91A4,0x2487,0x91A8,0x2488,0x91AC,0x2489,0x91AE,0x248A,0x91B0,0x248B,0x91B2,0x248C,0x91B4,0x248D,0x91B6,0x248E,0x91B8,0x248F,0x91BA,
	0x2490,0x91BC,0x2491,0x91BE,0x2492,0x91C1,0x2493,0x91C4,0x2494,0x91C7,0x2495,0x91CA,0x2496,0x91CD,0x2497,0x91D0,0x2498,0x91D3,0x2499,0x91D6,0x249A,0x91D9,0x249B,0x91DC,0x249C,0x91DF,0x249D,0x91E2,0x249E,0x91E5,0x249F,0x91E8,
	0x24A0,0x91EB,0x24A1,0x91EE,0x24A2,0x91F1,0x24A3,0x91F4,0x24A4,0x91F7,0x24A5,0x91FA,0x24A6,0x91FD,0x24A7,0x9200,0x24A8,0x9203,0x24A9,0x9206,0x24AA,0x9209,0x24AB,0x920C,0x24AC,0x920F,0x24AD,0x9212,0x24AE,0x9215,0x24AF,0x9218,
	0x24B0,0x921B,0x24B1,0x921E,0x24B2,0x9221,0x24B3,0x9224,0x24B4,0x9227,0x24B5,0x922A,0x24B6,0x922D,0x24B7,0x922E,0x24B8,0x922F,0x24B9,0x9230,0x24BA,0x9231,0x24BB,0x9232,0x24BC,0x9233,0x24BD,0x9234,0x24BE,0x9235,0x24BF,0x9236,
	0x24C0,0x9237,0x24C1,0x9238,0x24C2,0x9239,0x24C3,0x923A,0x24C4,0x923B,0x24C5,0x923C,0x24C6,0x923D,0x24C7,0x923E,0x24C8,0x923F,0x24C9,0x9240,0x24CA,0x9241,0x24CB,0x9242,0x24CC,0x9243,0x24CD,0x9244,0x24CE,0x9245,0x24CF,0x9246,
	0x24D0,0x9247,0x24D1,0x9248,0x24D2,0x9249,0x24D3,0x924A,0x24D4,0x924B,0x24D5,0x924C,0x24D6,0x924D,0x24D7,0x924E,0x24D8,0x924F,0x24D9,0x9250,0x24DA,0x9251,0x24DB,0x9252,0x24DC,0x9253,0x24DD,0x9254,0x24DE,0x9255,0x24DF,0x9256,
	0x24E0,0x9257,0x24E1,0x9258,0x24E2,0x9259,0x24E3,0x925A,0x24E4,0x925B,0x24E5,0x925C,0x24E6,0x925D,0x24E7,0x925E,0x24E8,0x925F,0x24E9,0x9260,0x24EA,0x9261,0x2A0C,0x9262,0x2A74,0x926E,0x2A75,0x9271,0x2A76,0x9273,0x2ADC,0x1276,
	0x2C7C,0x927B,0x2C7D,0x927C,0x2D6F,0x927D,0x2E9F,0x9280,0x2EF3,0x9283,0x2F00,0x9286,0x2F01,0x9289,0x2F02,0x928C,0x2F03,0x928F,0x2F04,0x9292,0x2F05,0x9295,0x2F06,0x9298,0x2F07,0x929B,0x2F08,0x929E,0x2F09,0x92A1,0x2F0A,0x92A4,
	0x2F0B,0x92A7,0x2F0C,0x92AA,0x2F0D,0x92AD,0x2F0E,0x92B0,0x2F0F,0x92B3,0x2F10,0x92B6,0x2F11,0x92B9,0x2F12,0x92BC,0x2F13,0x92BF,0x2F14,0x92C2,0x2F15,0x92C5,0x2F16,0x92C8,0x2F17,0x92CB,0x2F18,0x92CE,0x2F19,0x92D1,0x2F1A,0x92D4,
	0x2F1B,0x92D7,0x2F1C,0x92DA,0x2F1D,0x92DD,0x2F1E,0x92E0,0x2F1F,0x92E3,0x2F20,0x92E6,0x2F21,0x92E9,0x2F22,0x92EC,0x2F23,0x92EF,0x2F24,0x92F2,0x2F25,0x92F5,0x2F26,0x92F8,0x2F27,0x92FB,0x2F28,0x92FE,0x2F29,0x9301,0x2F2A,0x9304,
	0x2F2B,0x9307,0x2F2C,0x930A,0x2F2D,0x930D,0x2F2E,0x9310,0x2F2F,0x9313,0x2F30,0x9316,0x2F31,0x9319,0x2F32,0x931C,0x2F33,0x931F,0x2F34,0x9322,0x2F35,0x9325,0x2F36,0x9328,0x2F37,0x932B,0x2F38,0x932E,0x2F39,0x9331,0x2F3A,0x9334,
	0x2F3B,0x9337,0x2F3C,0x933A,0x2F3D,0x933D,0x2F3E,0x9340,0x2F3F,0x9343,0x2F40,0x9346,0x2F41,0x9349,0x2F42,0x934C,0x2F43,0x934F,0x2F44,0x9352,0x2F45,0x9355,0x2F46,0x9358,0x2F47,0x935B,0x2F48,0x935E,0x2F49,0x9361,0x2F4A,0x9364,
	0x2F4B,0x9367,0x2F4C,0x936A,0x2F4D,0x936D,0x2F4E,0x9370,0x2F4F,0x9373,0x2F50,0x9376,0x2F51,0x9379,0x2F52,0x937C,0x2F53,0x937F,0x2F54,0x9382,0x2F55,0x9385,0x2F56,0x9388,0x2F57,0x938B,0x2F58,0x938E,0x2F59,0x9391,0x2F5A,0x9394,
	0x2F5B,0x9397,0x2F5C,0x939A,0x2F5D,0x939D,0x2F5E,0x93A0,0x2F5F,0x93A3,0x2F60,0x93A6,0x2F61,0x93A9,0x2F62,0x93AC,0x2F63,0x93AF,0x2F64,0x93B2,0x2F65,0x93B5,0x2F66,0x93B8,0x2F67,0x93BB,0x2F68,0x93BE,0x2F69,0x93C1,0x2F6A,0x93C4,
	0x2F6B,0x93C7,0x2F6C,0x93CA,0x2F6D,0x93CD,0x2F6E,0x93D0,0x2F6F,0x93D3,0x2F70,0x93D6,0x2F71,0x93D9,0x2F72,0x93DC,0x2F73,0x93DF,0x2F74,0x93E2,0x2F75,0x93E5,0x2F76,0x93E8,0x2F77,0x93EB,0x2F78,0x93EE,0x2F79,0x93F1,0x2F7A,0x93F4,
	0x2F7B,0x93F7,0x2F7C,0x93FA,0x2F7D,0x93FD,0x2F7E,0x9400,0x2F7F,0x9403,0x2F80,0x9406,0x2F81,0x9409,0x2F82,0x940C,0x2F83,0x940F,0x2F84,0x9412,0x2F85,0x9415,0x2F86,0x9418,0x2F87,0x941B,0x2F88,0x941E,0x2F89,0x9421,0x2F8A,0x9424,
	0x2F8B,0x9427,0x2F8C,0x942A,0x2F8D,0x942D,0x2F8E,0x9430,0x2F8F,0x9433,0x2F90,0x9436,0x2F91,0x9439,0x2F92,0x943C,0x2F93,0x943F,0x2F94,0x9442,0x2F95,0x9445,0x2F96,0x9448,0x2F97,0x944B,0x2F98,0x944E,0x2F99,0x9451,0x2F9A,0x9454,
	0x2F9B,0x9457,0x2F9C,0x945A,0x2F9D,0x945D,0x2F9E,0x9460,0x2F9F,0x9463,0x2FA0,0x9466,0x2FA1,0x9469,0x2FA2,0x946C,0x2FA3,0x946F,0x2FA4,0x9472,0x2FA5,0x9475,0x2FA6,0x9478,0x2FA7,0x947B,0x2FA8,0x947E,0x2FA9,0x9481,0x2FAA,0x9484,
	0x2FAB,0x9487,0x2FAC,0x948A,0x2FAD,0x948D,0x2FAE,0x9490,0x2FAF,0x9493,0x2FB0,0x9496,0x2FB1,0x9499,0x2FB2,0x949C,0x2FB3,0x949F,0x2FB4,0x94A2,0x2FB5,0x94A5,0x2FB6,0x94A8,0x2FB7,0x94AB,0x2FB8,0x94AE,0x2FB9,0x94B1,0x2FBA,0x94B4,
	0x2FBB,0x94B7,0x2FBC,0x94BA,0x2FBD,0x94BD,0x2FBE,0x94C0,0x2FBF,0x94C3,0x2FC0,0x94C6,0x2FC1,0x94C9,0x2FC2,0x94CC,0x2FC3,0x94CF,0x2FC4,0x94D2,0x2FC5,0x94D5,0x2FC6,0x94D8,0x2FC7,0x94DB,0x2FC8,0x94DE,0x2FC9,0x94E1,0x2FCA,0x94E4,
	0x2FCB,0x94E7,0x2FCC,0x94EA,0x2FCD,0x94ED,0x2FCE,0x94F0,0x2FCF,0x94F3,0x2FD0,0x94F6,0x2FD1,0x94F9,0x2FD2,0x94FC,0x2FD3,0x94FF,0x2FD4,0x9502,0x2FD5,0x9505,0x3000,0x9508,0x3036,0x9509,0x3038,0x950C,0x3039,0x950F,0x303A,0x9512,
	0x304C,0x1515,0x304E,0x151B,0x3050,0x1521,0x3052,0x1527,0x3054,0x152D,0x3056,0x1533,0x3058,0x1539,0x305A,0x153F,0x305C,0x1545,0x305E,0x154B,0x3060,0x1551,0x3062,0x1557,0x3065,0x155D,0x3067,0x1563,0x3069,0x1569,0x3070,0x156F,
	0x3071,0x1575,0x3073,0x157B,0x3074,0x1581,0x3076,0x1587,0x3077,0x158D,0x3079,0x1593,0x307A,0x1599,0x307C,0x159F,0x307D,0x15A5,0x3094,0x15AB,0x309B,0x95B1,0x309C,0x95B5,0x309E,0x15B9,0x309F,0x95BF,0x30AC,0x15C5,0x30AE,0x15CB,
	0x30B0,0x15D1,0x30B2,0x15D7,0x30B4,0x15DD,0x30B6,0x15E3,0x30B8,0x15E9,0x30BA,0x15EF,0x30BC,0x15F5,0x30BE,0x15FB,0x30C0,0x1601,0x30C2,0x1607,0x30C5,0x160D,0x30C7,0x1613,0x30C9,0x1619,0x30D0,0x161F,0x30D1,0x1625,0x30D3,0x162B,
	0x30D4,0x1631,0x30D6,0x1637,0x30D7,0x163D,0x30D9,0x1643,0x30DA,0x1649,0x30DC,0x164F,0x30DD,0x1655,0x30F4,0x165B,0x30F7,0x1661,0x30F8,0x1667,0x30F9,0x166D,0x30FA,0x1673,0x30FE,0x1679,0x30FF,0x967F,0x3131,0x9685,0x3132,0x9688,
	0x3133,0x968B,0x3134,0x968E,0x3135,0x9691,0x3136,0x9694,0x3137,0x9697,0x3138,0x969A,0x3139,0x969D,0x313A,0x96A0,0x313B,0x96A3,0x313C,0x96A6,0x313D,0x96A9,0x313E,0x96AC,0x313F,0x96AF,0x3140,0x96B2,0x3141,0x96B5,0x3142,0x96B8,
	0x3143,0x96BB,0x3144,0x96BE,0x3145,0x96C1,0x3146,0x96C4,0x3147,0x96C7,0x3148,0x96CA,0x3149,0x96CD,0x314A,0x96D0,0x314B,0x96D3,0x314C,0x96D6,0x314D,0x96D9,0x314E,0x96DC,0x314F,0x96DF,0x3150,0x96E2,0x3151,0x96E5,0x3152,0x96E8,
	0x3153,0x96EB,0x3154,0x96EE,0x3155,0x96F1,0x3156,0x96F4,0x3157,0x96F7,0x3158,0x96FA,0x3159,0x96FD,0x315A,0x9700,0x315B,0x9703,0x315C,0x9706,0x315D,0x9709,0x315E,0x970C,0x315F,0x970F,0x3160,0x9712,0x3161,0x9715,0x3162,0x9718,
	0x3163,0x971B,0x3164,0x971E,0x3165,0x9721,0x3166,0x9724,0x3167,0x9727,0x3168,0x972A,0x3169,0x972D,0x316A,0x9730,0x316B,0x9733,0x316C,0x9736,0x316D,0x9739,0x316E,0x973C,0x316F,0x973F,0x3170,0x9742,0x3171,0x9745,0x3172,0x9748,
	0x3173,0x974B,0x3174,0x974E,0x3175,0x9751,0x3176,0x9754,0x3177,0x9757,0x3178,0x975A,0x3179,0x975D,0x317A,0x9760,0x317B,0x9763,0x317C,0x9766,0x317D,0x9769,0x317E,0x976C,0x317F,0x976F,0x3180,0x9772,0x3181,0x9775,0x3182,0x9778,
	0x3183,0x977B,0x3184,0x977E,0x3185,0x9781,0x3186,0x9784,0x3187,0x9787,0x3188,0x978A,0x3189,0x978D,0x318A,0x9790,0x318B,0x9793,0x318C,0x9796,0x318D,0x9799,0x318E,0x979C,0x3192,0x979F,0x3193,0x97A2,0x3194,0x97A5,0x3195,0x97A8,
	0x3196,0x97AB,0x3197,0x97AE,0x3198,0x97B1,0x3199,0x97B4,0x319A,0x97B7,0x319B,0x97BA,0x319C,0x97BD,0x319D,0x97C0,0x319E,0x97C3,0x319F,0x97C6,0x3200,0x97C9,0x3201,0x97CE,0x3202,0x97D3,0x3203,0x97D8,0x3204,0x97DD,0x3205,0x97E2,
	0x3206,0x97E7,0x3207,0x97EC,0x3208,0x97F1,0x3209,0x97F6,0x320A,0x97FB,0x320B,0x9800,0x320C,0x9805,0x320D,0x980A,0x320E,0x980F,0x320F,0x9817,0x3210,0x981F,0x3211,0x9827,0x3212,0x982F,0x3213,0x9837,0x3214,0x983F,0x3215,0x9847,
	0x3216,0x984F,0x3217,0x9857,0x3218,0x985F,0x3219,0x9867,0x321A,0x986F,0x321B,0x9877,0x321C,0x987F,0x321D,0x9887,0x321E,0x9898,0x3220,0x98A6,0x3221,0x98AB,0x3222,0x98B0,0x3223,0x98B5,0x3224,0x98BA,0x3225,0x98BF,0x3226,0x98C4,
	0x3227,0x98C9,0x3228,0x98CE,0x3229,0x98D3,0x322A,0x98D8,0x322B,0x98DD,0x322C,0x98E2,0x322D,0x98E7,0x322E,0x98EC,0x322F,0x98F1,0x3230,0x98F6,0x3231,0x98FB,0x3232,0x9900,0x3233,0x9905,0x3234,0x990A,0x3235,0x990F,0x3236,0x9914,
	0x3237,0x9919,0x3238,0x991E,0x3239,0x9923,0x323A,0x9928,0x323B,0x992D,0x323C,0x9932,0x323D,0x9937,0x323E,0x993C,0x323F,0x9941,0x3240,0x9946,0x3241,0x994B,0x3242,0x9950,0x3243,0x9955,0x3244,0x995A,0x3245,0x995D,0x3246,0x9960,
	0x3247,0x9963,0x3250,0x9966,0x3251,0x9969,0x3252,0x996B,0x3253,0x996D,0x3254,0x996F,0x3255,0x9971,0x3256,0x9973,0x3257,0x9975,0x3258,0x9977,0x3259,0x9979,0x325A,0x997B,0x325B,0x997D,0x325C,0x997F,0x325D,0x9981,0x325E,0x9983,
	0x325F,0x9985,0x3260,0x9987,0x3261,0x998A,0x3262,0x998D,0x3263,0x9990,0x3264,0x9993,0x3265,0x9996,0x3266,0x9999,0x3267,0x999C,0x3268,0x999F,0x3269,0x99A2,0x326A,0x99A5,0x326B,0x99A8,0x326C,0x99AB,0x326D,0x99AE,0x326E,0x99B1,
	0x326F,0x99B7,0x3270,0x99BD,0x3271,0x99C3,0x3272,0x99C9,0x3273,0x99CF,0x3274,0x99D5,0x3275,0x99DB,0x3276,0x99E1,0x3277,0x99E7,0x3278,0x99ED,0x3279,0x99F3,0x327A,0x99F9,0x327B,0x99FF,0x327C,0x9A05,0x327D,0x9A14,0x327E,0x9A20,
	0x3280,0x9A26,0x3281,0x9A29,0x3282,0x9A2C,0x3283,0x9A2F,0x3284,0x9A32,0x3285,0x9A35,0x3286,0x9A38,0x3287,0x9A3B,0x3288,0x9A3E,0x3289,0x9A41,0x328A,0x9A44,0x328B,0x9A47,0x328C,0x9A4A,0x328D,0x9A4D,0x328E,0x9A50,0x328F,0x9A53,
	0x3290,0x9A56,0x3291,0x9A59,0x3292,0x9A5C,0x3293,0x9A5F,0x3294,0x9A62,0x3295,0x9A65,0x3296,0x9A68,0x3297,0x9A6B,0x3298,0x9A6E,0x3299,0x9A71,0x329A,0x9A74,0x329B,0x9A77,0x329C,0x9A7A,0x329D,0x9A7D,0x329E,0x9A80,0x329F,0x9A83,
	0x32A0,0x9A86,0x32A1,0x9A89,0x32A2,0x9A8C,0x32A3,0x9A8F,0x32A4,0x9A92,0x32A5,0x9A95,0x32A6,0x9A98,0x32A7,0x9A9B,0x32A8,0x9A9E,0x32A9,0x9AA1,0x32AA,0x9AA4,0x32AB,0x9AA7,0x32AC,0x9AAA,0x32AD,0x9AAD,0x32AE,0x9AB0,0x32AF,0x9AB3,
	0x32B0,0x9AB6,0x32B1,0x9AB9,0x32B2,0x9ABB,0x32B3,0x9ABD,0x32B4,0x9ABF,0x32B5,0x9AC1,0x32B6,0x9AC3,0x32B7,0x9AC5,0x32B8,0x9AC7,0x32B9,0x9AC9,0x32BA,0x9ACB,0x32BB,0x9ACD,0x32BC,0x9ACF,0x32BD,0x9AD1,0x32BE,0x9AD3,0x32BF,0x9AD5,
	0x32C0,0x9AD7,0x32C1,0x9ADB,0x32C2,0x9ADF,0x32C3,0x9AE3,0x32C4,0x9AE7,0x32C5,0x9AEB,0x32C6,0x9AEF,0x32C7,0x9AF3,0x32C8,0x9AF7,0x32C9,0x9AFB,0x32CA,0x9B00,0x32CB,0x9B05,0x32CC,0x9B0A,0x32CD,0x9B0C,0x32CE,0x9B0F,0x32CF,0x9B11,
	0x32D0,0x9B14,0x32D1,0x9B17,0x32D2,0x9B1A,0x32D3,0x9B1D,0x32D4,0x9B20,0x32D5,0x9B23,0x32D6,0x9B26,0x32D7,0x9B29,0x32D8,0x9B2C,0x32D9,0x9B2F,0x32DA,0x9B32,0x32DB,0x9B35,0x32DC,0x9B38,0x32DD,0x9B3B,0x32DE,0x9B3E,0x32DF,0x9B41,
	0x32E0,0x9B44,0x32E1,0x9B47,0x32E2,0x9B4A,0x32E3,0x9B4D,0x32E4,0x9B50,0x32E5,0x9B53,0x32E6,0x9B56,0x32E7,0x9B59,0x32E8,0x9B5C,0x32E9,0x9B5F,0x32EA,0x9B62,0x32EB,0x9B65,0x32EC,0x9B68,0x32ED,0x9B6B,0x32EE,0x9B6E,0x32EF,0x9B71,
	0x32F0,0x9B74,0x32F1,0x9B77,0x32F2,0x9B7A,0x32F3,0x9B7D,0x32F4,0x9B80,0x32F5,0x9B83,0x32F6,0x9B86,0x32F7,0x9B89,0x32F8,0x9B8C,0x32F9,0x9B8F,0x32FA,0x9B92,0x32FB,0x9B95,0x32FC,0x9B98,0x32FD,0x9B9B,0x32FE,0x9B9E,0x32FF,0x9BA1,
	0x3300,0x9BA7,0x3301,0x9BB3,0x3302,0x9BBF,0x3303,0x9BCB,0x3304,0x9BD4,0x3305,0x9BE0,0x3306,0x9BE9,0x3307,0x9BF2,0x3308,0x9C01,0x3309,0x9C0D,0x330A,0x9C16,0x330B,0x9C1F,0x330C,0x9C28,0x330D,0x9C34,0x330E,0x9C40,0x330F,0x9C49,
	0x3310,0x9C52,0x3311,0x9C58,0x3312,0x9C61,0x3313,0x9C6D,0x3314,0x9C79,0x3315,0x9C7F,0x3316,0x9C8E,0x3317,0x9CA0,0x3318,0x9CAF,0x3319,0x9CB8,0x331A,0x9CC7,0x331B,0x9CD6,0x331C,0x9CE2,0x331D,0x9CEB,0x331E,0x9CF4,0x331F,0x9CFD,
	0x3320,0x9D09,0x3321,0x9D18,0x3322,0x9D24,0x3323,0x9D2D,0x3324,0x9D36,0x3325,0x9D3F,0x3326,0x9D45,0x3327,0x9D4B,0x3328,0x9D51,0x3329,0x9D57,0x332A,0x9D60,0x332B,0x9D69,0x332C,0x9D78,0x332D,0x9D81,0x332E,0x9D8D,0x332F,0x9D9C,
	0x3330,0x9DA5,0x3331,0x9DAB,0x3332,0x9DB1,0x3333,0x9DC0,0x3334,0x9DCC,0x3335,0x9DDB,0x3336,0x9DE4,0x3337,0x9DF3,0x3338,0x9DF9,0x3339,0x9E02,0x333A,0x9E0B,0x333B,0x9E14,0x333C,0x9E1D,0x333D,0x9E26,0x333E,0x9E32,0x333F,0x9E3B,
	0x3340,0x9E41,0x3341,0x9E4A,0x3342,0x9E53,0x3343,0x9E5C,0x3344,0x9E68,0x3345,0x9E71,0x3346,0x9E7A,0x3347,0x9E83,0x3348,0x9E92,0x3349,0x9E9E,0x334A,0x9EA4,0x334B,0x9EB3,0x334C,0x9EB9,0x334D,0x9EC5,0x334E,0x9ED1,0x334F,0x9EDA,
	0x3350,0x9EE3,0x3351,0x9EEC,0x3352,0x9EF8,0x3353,0x9EFE,0x3354,0x9F07,0x3355,0x9F13,0x3356,0x9F19,0x3357,0x9F28,0x3358,0x9F31,0x3359,0x9F35,0x335A,0x9F39,0x335B,0x9F3D,0x335C,0x9F41,0x335D,0x9F45,0x335E,0x9F49,0x335F,0x9F4D,
	0x3360,0x9F51,0x3361,0x9F55,0x3362,0x9F59,0x3363,0x9F5E,0x3364,0x9F63,0x3365,0x9F68,0x3366,0x9F6D,0x3367,0x9F72,0x3368,0x9F77,0x3369,0x9F7C,0x336A,0x9F81,0x336B,0x9F86,0x336C,0x9F8B,0x336D,0x9F90,0x336E,0x9F95,0x336F,0x9F9A,
	0x3370,0x9F9F,0x3371,0x9FA4,0x3372,0x9FA7,0x3373,0x9FA9,0x3374,0x9FAB,0x3375,0x9FAE,0x3376,0x9FB0,0x3377,0x9FB2,0x3378,0x9FB4,0x3379,0x9FB8,0x337A,0x9FBC,0x337B,0x9FBE,0x337C,0x9FC4,0x337D,0x9FCA,0x337E,0x9FD0,0x337F,0x9FD6,
	0x3380,0x9FE2,0x3381,0x9FE4,0x3382,0x9FE6,0x3383,0x9FE9,0x3384,0x9FEB,0x3385,0x9FED,0x3386,0x9FEF,0x3387,0x9FF1,0x3388,0x9FF3,0x3389,0x9FF6,0x338A,0x9FFA,0x338B,0x9FFC,0x338C,0x9FFE,0x338D,0xA001,0x338E,0xA004,0x338F,0xA006,
	0x3390,0xA008,0x3391,0xA00A,0x3392,0xA00D,0x3393,0xA010,0x3394,0xA013,0x3395,0xA016,0x3396,0xA01B,0x3397,0xA01F,0x3398,0xA023,0x3399,0xA027,0x339A,0xA029,0x339B,0xA02B,0x339C,0xA02E,0x339D,0xA030,0x339E,0xA032,0x339F,0xA034,
	0x33A0,0xA038,0x33A1,0xA03C,0x33A2,0xA03F,0x33A3,0xA043,0x33A4,0xA047,0x33A5,0xA04B,0x33A6,0xA04E,0x33A7,0xA052,0x33A8,0xA057,0x33A9,0xA05E,0x33AA,0xA060,0x33AB,0xA063,0x33AC,0xA066,0x33AD,0xA069,0x33AE,0xA06C,0x33AF,0xA073,
	0x33B0,0xA07C,0x33B1,0xA07E,0x33B2,0xA080,0x33B3,0xA083,0x33B4,0xA085,0x33B5,0xA087,0x33B6,0xA089,0x33B7,0xA08C,0x33B8,0xA08E,0x33B9,0xA090,0x33BA,0xA092,0x33BB,0xA094,0x33BC,0xA096,0x33BD,0xA099,0x33BE,0xA09B,0x33BF,0xA09D,
	0x33C0,0xA09F,0x33C1,0xA0A2,0x33C2,0xA0A5,0x33C3,0xA0A9,0x33C4,0xA0AB,0x33C5,0xA0AD,0x33C6,0xA0AF,0x33C7,0xA0B5,0x33C8,0xA0B8,0x33C9,0xA0BA,0x33CA,0xA0BC,0x33CB,0xA0BE,0x33CC,0xA0C0,0x33CD,0xA0C2,0x33CE,0xA0C4,0x33CF,0xA0C6,
	0x33D0,0xA0C8,0x33D1,0xA0CA,0x33D2,0xA0CC,0x33D3,0xA0CF,0x33D4,0xA0D1,0x33D5,0xA0D3,0x33D6,0xA0D6,0x33D7,0xA0D9,0x33D8,0xA0DB,0x33D9,0xA0DF,0x33DA,0xA0E2,0x33DB,0xA0E4,0x33DC,0xA0E6,0x33DD,0xA0E8,0x33DE,0xA0EA,0x33DF,0xA0EF,
	0x33E0,0xA0F4,0x33E1,0xA0F8,0x33E2,0xA0FC,0x33E3,0xA100,0x33E4,0xA104,0x33E5,0xA108,0x33E6,0xA10C,0x33E7,0xA110,0x33E8,0xA114,0x33E9,0xA118,0x33EA,0xA11D,0x33EB,0xA122,0x33EC,0xA127,0x33ED,0xA12C,0x33EE,0xA131,0x33EF,0xA136,
	0x33F0,0xA13B,0x33F1,0xA140,0x33F2,0xA145,0x33F3,0xA14A,0x33F4,0xA14F,0x33F5,0xA154,0x33F6,0xA159,0x33F7,0xA15E,0x33F8,0xA163,0x33F9,0xA168,0x33FA,0xA16D,0x33FB,0xA172,0x33FC,0xA177,0x33FD,0xA17C,0x33FE,0xA181,0x33FF,0xA186,
	0xA69C,0xA189,0xA69D,0xA18B,0xA770,0xA18D,0xA7F2,0xA190,0xA7F3,0xA191,0xA7F4,0xA192,0xA7F8,0xA193,0xA7F9,0xA195,0xAB5C,0xA197,0xAB5D,0xA19A,0xAB5E,0xA19D,0xAB5F,0xA19F,0xAB69,0xA1A2,0xF900,0x21A4,0xF901,0x21A7,0xF902,0x21AA,
	0xF903,0x21AD,0xF904,0x21B0,0xF905,0x21B3,0xF906,0x21B6,0xF907,0x21B9,0xF908,0x21BC,0xF909,0x21BF,0xF90A,0x21C2,0xF90B,0x21C5,0xF90C,0x21C8,0xF90D,0x21CB,0xF90E,0x21CE,0xF90F,0x21D1,0xF910,0x21D4,0xF911,0x21D7,0xF912,0x21DA,
	0xF913,0x21DD,0xF914,0x21E0,0xF915,0x21E3,0xF916,0x21E6,0xF917,0x21E9,0xF918,0x21EC,0xF919,0x21EF,0xF91A,0x21F2,0xF91B,0x21F5,0xF91C,0x21F8,0xF91D,0x21FB,0xF91E,0x21FE,0xF91F,0x2201,0xF920,0x2204,0xF921,0x2207,0xF922,0x220A,
	0xF923,0x220D,0xF924,0x2210,0xF925,0x2213,0xF926,0x2216,0xF927,0x2219,0xF928,0x221C,0xF929,0x221F,0xF92A,0x2222,0xF92B,0x2225,0xF92C,0x2228,0xF92D,0x222B,0xF92E,0x222E,0xF92F,0x2231,0xF930,0x2234,0xF931,0x2237,0xF932,0x223A,
	0xF933,0x223D,0xF934,0x2240,0xF935,0x2243,0xF936,0x2246,0xF937,0x2249,0xF938,0x224C,0xF939,0x224F,0xF93A,0x2252,0xF93B,0x2255,0xF93C,0x2258,0xF93D,0x225B,0xF93E,0x225E,0xF93F,0x2261,0xF940,0x2264,0xF941,0x2267,0xF942,0x226A,
	0xF943,0x226D,0xF944,0x2270,0xF945,0x2273,0xF946,0x2276,0xF947,0x2279,0xF948,0x227C,0xF949,0x227F,0xF94A,0x2282,0xF94B,0x2285,0xF94C,0x2288,0xF94D,0x228B,0xF94E,0x228E,0xF94F,0x2291,0xF950,0x2294,0xF951,0x2297,0xF952,0x229A,
	0xF953,0x229D,0xF954,0x22A0,0xF955,0x22A3,0xF956,0x22A6,0xF957,0x22A9,0xF958,0x22AC,0xF959,0x22AF,0xF95A,0x22B2,0xF95B,0x22B5,0xF95C,0x22B8,0xF95D,0x22BB,0xF95E,0x22BE,0xF95F,0x22C1,0xF960,0x22C4,0xF961,0x22C7,0xF962,0x22CA,
	0xF963,0x22CD,0xF964,0x22D0,0xF965,0x22D3,0xF966,0x22D6,0xF967,0x22D9,0xF968,0x22DC,0xF969,0x22DF,0xF96A,0x22E2,0xF96B,0x22E5,0xF96C,0x22E8,0xF96D,0x22EB,0xF96E,0x22EE,0xF96F,0x22F1,0xF970,0x22F4,0xF971,0x22F7,0xF972,0x22FA,
	0xF973,0x22FD,0xF974,0x2300,0xF975,0x2303,0xF976,0x2306,0xF977,0x2309,0xF978,0x230C,0xF979,0x230F,0xF97A,0x2312,0xF97B,0x2315,0xF97C,0x2318,0xF97D,0x231B,0xF97E,0x231E,0xF97F,0x2321,0xF980,0x2324,0xF981,0x2327,0xF982,0x232A,
	0xF983,0x232D,0xF984,0x2330,0xF985,0x2333,0xF986,0x2336,0xF987,0x2339,0xF988,0x233C,0xF989,0x233F,0xF98A,0x2342,0xF98B,0x2345,0xF98C,0x2348,0xF98D,0x234B,0xF98E,0x234E,0xF98F,0x2351,0xF990,0x2354,0xF991,0x2357,0xF992,0x235A,
	0xF993,0x235D,0xF994,0x2360,0xF995,0x2363,0xF996,0x2366,0xF997,0x2369,0xF998,0x236C,0xF999,0x236F,0xF99A,0x2372,0xF99B,0x2375,0xF99C,0x2378,0xF99D,0x237B,0xF99E,0x237E,0xF99F,0x2381,0xF9A0,0x2384,0xF9A1,0x2387,0xF9A2,0x238A,
	0xF9A3,0x238D,0xF9A4,0x2390,0xF9A5,0x2393,0xF9A6,0x2396,0xF9A7,0x2399,0xF9A8,0x239C,0xF9A9,0x239F,0xF9AA,0x23A2,0xF9AB,0x23A5,0xF9AC,0x23A8,0xF9AD,0x23AB,0xF9AE,0x23AE,0xF9AF,0x23B1,0xF9B0,0x23B4,0xF9B1,0x23B7,0xF9B2,0x23BA,
	0xF9B3,0x23BD,0xF9B4,0x23C0,0xF9B5,0x23C3,0xF9B6,0x23C6,0xF9B7,0x23C9,0xF9B8,0x23CC,0xF9B9,0x23CF,0xF9BA,0x23D2,0xF9BB,0x23D5,0xF9BC,0x23D8,0xF9BD,0x23DB,0xF9BE,0x23DE,0xF9BF,0x23E1,0xF9C0,0x23E4,0xF9C1,0x23E7,0xF9C2,0x23EA,
	0xF9C3,0x23ED,0xF9C4,0x23F0,0xF9C5,0x23F3,0xF9C6,0x23F6,0xF9C7,0x23F9,0xF9C8,0x23FC,0xF9C9,0x23FF,0xF9CA,0x2402,0xF9CB,0x2405,0xF9CC,0x2408,0xF9CD,0x240B,0xF9CE,0x240E,0xF9CF,0x2411,0xF9D0,0x2414,0xF9D1,0x2417,0xF9D2,0x241A,
	0xF9D3,0x241D,0xF9D4,0x2420,0xF9D5,0x2423,0xF9D6,0x2426,0xF9D7,0x2429,0xF9D8,0x242C,0xF9D9,0x242F,0xF9DA,0x2432,0xF9DB,0x2435,0xF9DC,0x2438,0xF9DD,0x243B,0xF9DE,0x243E,0xF9DF,0x2441,0xF9E0,0x2444,0xF9E1,0x2447,0xF9E2,0x244A,
	0xF9E3,0x244D,0xF9E4,0x2450,0xF9E5,0x2453,0xF9E6,0x2456,0xF9E7,0x2459,0xF9E8,0x245C,0xF9E9,0x245F,0xF9EA,0x2462,0xF9EB,0x2465,0xF9EC,0x2468,0xF9ED,0x246B,0xF9EE,0x246E,0xF9EF,0x2471,0xF9F0,0x2474,0xF9F1,0x2477,0xF9F2,0x247A,
	0xF9F3,0x247D,0xF9F4,0x2480,0xF9F5,0x2483,0xF9F6,0x2486,0xF9F7,0x2489,0xF9F8,0x248C,0xF9F9,0x248F,0xF9FA,0x2492,0xF9FB,0x2495,0xF9FC,0x2498,0xF9FD,0x249B,0xF9FE,0x249E,0xF9FF,0x24A1,0xFA00,0x24A4,0xFA01,0x24A7,0xFA02,0x24AA,
	0xFA03,0x24AD,0xFA04,0x24B0,0xFA05,0x24B3,0xFA06,0x24B6,0xFA07,0x24B9,0xFA08,0x24BC,0xFA09,0x24BF,0xFA0A,0x24C2,0xFA0B,0x24C5,0xFA0C,0x24C8,0xFA0D,0x24CB,0xFA10,0x24CE,0xFA12,0x24D1,0xFA15,0x24D4,0xFA16,0x24D7,0xFA17,0x24DA,
	0xFA18,0x24DD,0xFA19,0x24E0,0xFA1A,0x24E3,0xFA1B,0x24E6,0xFA1C,0x24E9,0xFA1D,0x24EC,0xFA1E,0x24EF,0xFA20,0x24F2,0xFA22,0x24F5,0xFA25,0x24F8,0xFA26,0x24FB,0xFA2A,0x24FE,0xFA2B,0x2501,0xFA2C,0x2504,0xFA2D,0x2507,0xFA2E,0x250A,
	0xFA2F,0x250D,0xFA30,0x2510,0xFA31,0x2513,0xFA32,0x2516,0xFA33,0x2519,0xFA34,0x251C,0xFA35,0x251F,0xFA36,0x2522,0xFA37,0x2525,0xFA38,0x2528,0xFA39,0x252B,0xFA3A,0x252E,0xFA3B,0x2531,0xFA3C,0x2534,0xFA3D,0x2537,0xFA3E,0x253A,
	0xFA3F,0x253D,0xFA40,0x2540,0xFA41,0x2543,0xFA42,0x2546,0xFA43,0x2549,0xFA44,0x254C,0xFA45,0x254F,0xFA46,0x2552,0xFA47,0x2555,0xFA48,0x2558,0xFA49,0x255B,0xFA4A,0x255E,0xFA4B,0x2561,0xFA4C,0x2564,0xFA4D,0x2567,0xFA4E,0x256A,
	0xFA4F,0x256D,0xFA50,0x2570,0xFA51,0x2573,0xFA52,0x2576,0xFA53,0x2579,0xFA54,0x257C,0xFA55,0x257F,0xFA56,0x2582,0xFA57,0x2585,0xFA58,0x2588,0xFA59,0x258B,0xFA5A,0x258E,0xFA5B,0x2591,0xFA5C,0x2594,0xFA5D,0x2597,0xFA5E,0x259A,
	0xFA5F,0x259D,0xFA60,0x25A0,0xFA61,0x25A3,0xFA62,0x25A6,0xFA63,0x25A9,0xFA64,0x25AC,0xFA65,0x25AF,0xFA66,0x25B2,0xFA67,0x25B5,0xFA68,0x25B8,0xFA69,0x25BB,0xFA6A,0x25BE,0xFA6B,0x25C1,0xFA6C,0x25C4,0xFA6D,0x25C8,0xFA70,0x25CB,
	0xFA71,0x25CE,0xFA72,0x25D1,0xFA73,0x25D4,0xFA74,0x25D7,0xFA75,0x25DA,0xFA76,0x25DD,0xFA77,0x25E0,0xFA78,0x25E3,0xFA79,0x25E6,0xFA7A,0x25E9,0xFA7B,0x25EC,0xFA7C,0x25EF,0xFA7D,0x25F2,0xFA7E,0x25F5,0xFA7F,0x25F8,0xFA80,0x25FB,
	0xFA81,0x25FE,0xFA82,0x2601,0xFA83,0x2604,0xFA84,0x2607,0xFA85,0x260A,0xFA86,0x260D,0xFA87,0x2610,0xFA88,0x2613,0xFA89,0x2616,0xFA8A,0x2619,0xFA8B,0x261C,0xFA8C,0x261F,0xFA8D,0x2622,0xFA8E,0x2625,0xFA8F,0x2628,0xFA90,0x262B,
	0xFA91,0x262E,0xFA92,0x2631,0xFA93,0x2634,0xFA94,0x2637,0xFA95,0x263A,0xFA96,0x263D,0xFA97,0x2640,0xFA98,0x2643,0xFA99,0x2646,0xFA9A,0x2649,0xFA9B,0x264C,0xFA9C,0x264F,0xFA9D,0x2652,0xFA9E,0x2655,0xFA9F,0x2658,0xFAA0,0x265B,
	0xFAA1,0x265E,0xFAA2,0x2661,0xFAA3,0x2664,0xFAA4,0x2667,0xFAA5,0x266A,0xFAA6,0x266D,0xFAA7,0x2670,0xFAA8,0x2673,0xFAA9,0x2676,0xFAAA,0x2679,0xFAAB,0x267C,0xFAAC,0x267F,0xFAAD,0x2682,0xFAAE,0x2685,0xFAAF,0x2688,0xFAB0,0x268B,
	0xFAB1,0x268E,0xFAB2,0x2691,0xFAB3,0x2694,0xFAB4,0x2697,0xFAB5,0x269A,0xFAB6,0x269D,0xFAB7,0x26A0,0xFAB8,0x26A3,0xFAB9,0x26A6,0xFABA,0x26A9,0xFABB,0x26AC,0xFABC,0x26AF,0xFABD,0x26B2,0xFABE,0x26B5,0xFABF,0x26B8,0xFAC0,0x26BB,
	0xFAC1,0x26BE,0xFAC2,0x26C1,0xFAC3,0x26C4,0xFAC4,0x26C7,0xFAC5,0x26CA,0xFAC6,0x26CD,0xFAC7,0x26D0,0xFAC8,0x26D3,0xFAC9,0x26D6,0xFACA,0x26D9,0xFACB,0x26DC,0xFACC,0x26DF,0xFACD,0x26E2,0xFACE,0x26E5,0xFACF,0x26E8,0xFAD0,0x26EC,
	0xFAD1,0x26F0,0xFAD2,0x26F4,0xFAD3,0x26F7,0xFAD4,0x26FA,0xFAD5,0x26FD,0xFAD6,0x2701,0xFAD7,0x2705,0xFAD8,0x2709,0xFAD9,0x270C,0xFB00,0xA70F,0xFB01,0xA711,0xFB02,0xA713,0xFB03,0xA715,0xFB04,0xA718,0xFB05,0xA71B,0xFB06,0xA71E,
	0xFB13,0xA720,0xFB14,0xA724,0xFB15,0xA728,0xFB16,0xA72C,0xFB17,0xA730,0xFB1D,0x2734,0xFB1F,0x2738,0xFB20,0xA73C,0xFB21,0xA73E,0xFB22,0xA740,0xFB23,0xA742,0xFB24,0xA744,0xFB25,0xA746,0xFB26,0xA748,0xFB27,0xA74A,0xFB28,0xA74C,
	0xFB29,0xA74E,0xFB2A,0x274F,0xFB2B,0x2753,0xFB2C,0x2757,0xFB2D,0x275C,0xFB2E,0x2761,0xFB2F,0x2765,0xFB30,0x2769,0xFB31,0x276D,0xFB32,0x2771,0xFB33,0x2775,0xFB34,0x2779,0xFB35,0x277D,0xFB36,0x2781,0xFB38,0x2785,0xFB39,0x2789,
	0xFB3A,0x278D,0xFB3B,0x2791,0xFB3C,0x2795,0xFB3E,0x2799,0xFB40,0x279D,0xFB41,0x27A1,0xFB43,0x27A5,0xFB44,0x27A9,0xFB46,0x27AD,0xFB47,0x27B1,0xFB48,0x27B5,0xFB49,0x27B9,0xFB4A,0x27BD,0xFB4B,0x27C1,0xFB4C,0x27C5,0xFB4D,0x27C9,
	0xFB4E,0x27CD,0xFB4F,0xA7D1,0xFB50,0xA7D5,0xFB51,0xA7D7,0xFB52,0xA7D9,0xFB53,0xA7DB,0xFB54,0xA7DD,0xFB55,0xA7DF,0xFB56,0xA7E1,0xFB57,0xA7E3,0xFB58,0xA7E5,0xFB59,0xA7E7,0xFB5A,0xA7E9,0xFB5B,0xA7EB,0xFB5C,0xA7ED,0xFB5D,0xA7EF,
	0xFB5E,0xA7F1,0xFB5F,0xA7F3,0xFB60,0xA7F5,0xFB61,0xA7F7,0xFB62,0xA7F9,0xFB63,0xA7FB,0xFB64,0xA7FD,0xFB65,0xA7FF,0xFB66,0xA801,0xFB67,0xA803,0xFB68,0xA805,0xFB69,0xA807,0xFB6A,0xA809,0xFB6B,0xA80B,0xFB6C,0xA80D,0xFB6D,0xA80F,
	0xFB6E,0xA811,0xFB6F,0xA813,0xFB70,0xA815,0xFB71,0xA817,0xFB72,0xA819,0xFB73,0xA81B,0xFB74,0xA81D,0xFB75,0xA81F,0xFB76,0xA821,0xFB77,0xA823,0xFB78,0xA825,0xFB79,0xA827,0xFB7A,0xA829,0xFB7B,0xA82B,0xFB7C,0xA82D,0xFB7D,0xA82F,
	0xFB7E,0xA831,0xFB7F,0xA833,0xFB80,0xA835,0xFB81,0xA837,0xFB82,0xA839,0xFB83,0xA83B,0xFB84,0xA83D,0xFB85,0xA83F,0xFB86,0xA841,0xFB87,0xA843,0xFB88,0xA845,0xFB89,0xA847,0xFB8A,0xA849,0xFB8B,0xA84B,0xFB8C,0xA84D,0xFB8D,0xA84F,
	0xFB8E,0xA851,0xFB8F,0xA853,0xFB90,0xA855,0xFB91,0xA857,0xFB92,0xA859,0xFB93,0xA85B,0xFB94,0xA85D,0xFB95,0xA85F,0xFB96,0xA861,0xFB97,0xA863,0xFB98,0xA865,0xFB99,0xA867,0xFB9A,0xA869,0xFB9B,0xA86B,0xFB9C,0xA86D,0xFB9D,0xA86F,
	0xFB9E,0xA871,0xFB9F,0xA873,0xFBA0,0xA875,0xFBA1,0xA877,0xFBA2,0xA879,0xFBA3,0xA87B,0xFBA4,0xA87D,0xFBA5,0xA87F,0xFBA6,0xA881,0xFBA7,0xA883,0xFBA8,0xA885,0xFBA9,0xA887,0xFBAA,0xA889,0xFBAB,0xA88B,0xFBAC,0xA88D,0xFBAD,0xA88F,
	0xFBAE,0xA891,0xFBAF,0xA893,0xFBB0,0xA895,0xFBB1,0xA897,0xFBD3,0xA899,0xFBD4,0xA89B,0xFBD5,0xA89D,0xFBD6,0xA89F,0xFBD7,0xA8A1,0xFBD8,0xA8A3,0xFBD9,0xA8A5,0xFBDA,0xA8A7,0xFBDB,0xA8A9,0xFBDC,0xA8AB,0xFBDD,0xA8AD,0xFBDE,0xA8AF,
	0xFBDF,0xA8B1,0xFBE0,0xA8B3,0xFBE1,0xA8B5,0xFBE2,0xA8B7,0xFBE3,0xA8B9,0xFBE4,0xA8BB,0xFBE5,0xA8BD,0xFBE6,0xA8BF,0xFBE7,0xA8C1,0xFBE8,0xA8C3,0xFBE9,0xA8C5,0xFBEA,0xA8C7,0xFBEB,0xA8CB,0xFBEC,0xA8CF,0xFBED,0xA8D3,0xFBEE,0xA8D7,
	0xFBEF,0xA8DB,0xFBF0,0xA8DF,0xFBF1,0xA8E3,0xFBF2,0xA8E7,0xFBF3,0xA8EB,0xFBF4,0xA8EF,0xFBF5,0xA8F3,0xFBF6,0xA8F7,0xFBF7,0xA8FB,0xFBF8,0xA8FF,0xFBF9,0xA903,0xFBFA,0xA907,0xFBFB,0xA90B,0xFBFC,0xA90F,0xFBFD,0xA911,0xFBFE,0xA913,
	0xFBFF,0xA915,0xFC00,0xA917,0xFC01,0xA91B,0xFC02,0xA91F,0xFC03,0xA923,0xFC04,0xA927,0xFC05,0xA92B,0xFC06,0xA92F,0xFC07,0xA933,0xFC08,0xA937,0xFC09,0xA93B,0xFC0A,0xA93F,0xFC0B,0xA943,0xFC0C,0xA947,0xFC0D,0xA94B,0xFC0E,0xA94F,
	0xFC0F,0xA953,0xFC10,0xA957,0xFC11,0xA95B,0xFC12,0xA95F,0xFC13,0xA963,0xFC14,0xA967,0xFC15,0xA96B,0xFC16,0xA96F,0xFC17,0xA973,0xFC18,0xA977,0xFC19,0xA97B,0xFC1A,0xA97F,0xFC1B,0xA983,0xFC1C,0xA987,0xFC1D,0xA98B,0xFC1E,0xA98F,
	0xFC1F,0xA993,0xFC20,0xA997,0xFC21,0xA99B,0xFC22,0xA99F,0xFC23,0xA9A3,0xFC24,0xA9A7,0xFC25,0xA9AB,0xFC26,0xA9AF,0xFC27,0xA9B3,0xFC28,0xA9B7,0xFC29,0xA9BB,0xFC2A,0xA9BF,0xFC2B,0xA9C3,0xFC2C,0xA9C7,0xFC2D,0xA9CB,0xFC2E,0xA9CF,
	0xFC2F,0xA9D3,0xFC30,0xA9D7,0xFC31,0xA9DB,0xFC32,0xA9DF,0xFC33,0xA9E3,0xFC34,0xA9E7,0xFC35,0xA9EB,0xFC36,0xA9EF,0xFC37,0xA9F3,0xFC38,0xA9F7,0xFC39,0xA9FB,0xFC3A,0xA9FF,0xFC3B,0xAA03,0xFC3C,0xAA07,0xFC3D,0xAA0B,0xFC3E,0xAA0F,
	0xFC3F,0xAA13,0xFC40,0xAA17,0xFC41,0xAA1B,0xFC42,0xAA1F,0xFC43,0xAA23,0xFC44,0xAA27,0xFC45,0xAA2B,0xFC46,0xAA2F,0xFC47,0xAA33,0xFC48,0xAA37,0xFC49,0xAA3B,0xFC4A,0xAA3F,0xFC4B,0xAA43,0xFC4C,0xAA47,0xFC4D,0xAA4B,0xFC4E,0xAA4F,
	0xFC4F,0xAA53,0xFC50,0xAA57,0xFC51,0xAA5B,0xFC52,0xAA5F,0xFC53,0xAA63,0xFC54,0xAA67,0xFC55,0xAA6B,0xFC56,0xAA6F,0xFC57,0xAA73,0xFC58,0xAA77,0xFC59,0xAA7B,0xFC5A,0xAA7F,0xFC5B,0xAA83,0xFC5C,0xAA87,0xFC5D,0xAA8B,0xFC5E,0xAA8F,
	0xFC5F,0xAA94,0xFC60,0xAA99,0xFC61,0xAA9E,0xFC62,0xAAA3,0xFC63,0xAAA8,0xFC64,0xAAAD,0xFC65,0xAAB1,0xFC66,0xAAB5,0xFC67,0xAAB9,0xFC68,0xAABD,0xFC69,0xAAC1,0xFC6A,0xAAC5,0xFC6B,0xAAC9,0xFC6C,0xAACD,0xFC6D,0xAAD1,0xFC6E,0xAAD5,
	0xFC6F,0xAAD9,0xFC70,0xAADD,0xFC71,0xAAE1,0xFC72,0xAAE5,0xFC73,0xAAE9,0xFC74,0xAAED,0xFC75,0xAAF1,0xFC76,0xAAF5,0xFC77,0xAAF9,0xFC78,0xAAFD,0xFC79,0xAB01,0xFC7A,0xAB05,0xFC7B,0xAB09,0xFC7C,0xAB0D,0xFC7D,0xAB11,0xFC7E,0xAB15,
	0xFC7F,0xAB19,0xFC80,0xAB1D,0xFC81,0xAB21,0xFC82,0xAB25,0xFC83,0xAB29,0xFC84,0xAB2D,0xFC85,0xAB31,0xFC86,0xAB35,0xFC87,0xAB39,0xFC88,0xAB3D,0xFC89,0xAB41,0xFC8A,0xAB45,0xFC8B,0xAB49,0xFC8C,0xAB4D,0xFC8D,0xAB51,0xFC8E,0xAB55,
	0xFC8F,0xAB59,0xFC90,0xAB5D,0xFC91,0xAB61,0xFC92,0xAB65,0xFC93,0xAB69,0xFC94,0xAB6D,0xFC95,0xAB71,0xFC96,0xAB75,0xFC97,0xAB79,0xFC98,0xAB7D,0xFC99,0xAB81,0xFC9A,0xAB85,0xFC9B,0xAB89,0xFC9C,0xAB8D,0xFC9D,0xAB91,0xFC9E,0xAB95,
	0xFC9F,0xAB99,0xFCA0,0xAB9D,0xFCA1,0xABA1,0xFCA2,0xABA5,0xFCA3,0xABA9,0xFCA4,0xABAD,0xFCA5,0xABB1,0xFCA6,0xABB5,0xFCA7,0xABB9,0xFCA8,0xABBD,0xFCA9,0xABC1,0xFCAA,0xABC5,0xFCAB,0xABC9,0xFCAC,0xABCD,0xFCAD,0xABD1,0xFCAE,0xABD5,
	0xFCAF,0xABD9,0xFCB0,0xABDD,0xFCB1,0xABE1,0xFCB2,0xABE5,0xFCB3,0xABE9,0xFCB4,0xABED,0xFCB5,0xABF1,0xFCB6,0xABF5,0xFCB7,0xABF9,0xFCB8,0xABFD,0xFCB9,0xAC01,0xFCBA,0xAC05,0xFCBB,0xAC09,0xFCBC,0xAC0D,0xFCBD,0xAC11,0xFCBE,0xAC15,
	0xFCBF,0xAC19,0xFCC0,0xAC1D,0xFCC1,0xAC21,0xFCC2,0xAC25,0xFCC3,0xAC29,0xFCC4,0xAC2D,0xFCC5,0xAC31,0xFCC6,0xAC35,0xFCC7,0xAC39,0xFCC8,0xAC3D,0xFCC9,0xAC41,0xFCCA,0xAC45,0xFCCB,0xAC49,0xFCCC,0xAC4D,0xFCCD,0xAC51,0xFCCE,0xAC55,
	0xFCCF,0xAC59,0xFCD0,0xAC5D,0xFCD1,0xAC61,0xFCD2,0xAC65,0xFCD3,0xAC69,0xFCD4,0xAC6D,0xFCD5,0xAC71,0xFCD6,0xAC75,0xFCD7,0xAC79,0xFCD8,0xAC7D,0xFCD9,0xAC81,0xFCDA,0xAC85,0xFCDB,0xAC89,0xFCDC,0xAC8D,0xFCDD,0xAC91,0xFCDE,0xAC95,
	0xFCDF,0xAC99,0xFCE0,0xAC9D,0xFCE1,0xACA1,0xFCE2,0xACA5,0xFCE3,0xACA9,0xFCE4,0xACAD,0xFCE5,0xACB1,0xFCE6,0xACB5,0xFCE7,0xACB9,0xFCE8,0xACBD,0xFCE9,0xACC1,0xFCEA,0xACC5,0xFCEB,0xACC9,0xFCEC,0xACCD,0xFCED,0xACD1,0xFCEE,0xACD5,
	0xFCEF,0xACD9,0xFCF0,0xACDD,0xFCF1,0xACE1,0xFCF2,0xACE5,0xFCF3,0xACEB,0xFCF4,0xACF1,0xFCF5,0xACF7,0xFCF6,0xACFB,0xFCF7,0xACFF,0xFCF8,0xAD03,0xFCF9,0xAD07,0xFCFA,0xAD0B,0xFCFB,0xAD0F,0xFCFC,0xAD13,0xFCFD,0xAD17,0xFCFE,0xAD1B,
	0xFCFF,0xAD1F,0xFD00,0xAD23,0xFD01,0xAD27,0xFD02,0xAD2B,0xFD03,0xAD2F,0xFD04,0xAD33,0xFD05,0xAD37,0xFD06,0xAD3B,0xFD07,0xAD3F,0xFD08,0xAD43,0xFD09,0xAD47,0xFD0A,0xAD4B,0xFD0B,0xAD4F,0xFD0C,0xAD53,0xFD0D,0xAD57,0xFD0E,0xAD5B,
	0xFD0F,0xAD5F,0xFD10,0xAD63,0xFD11,0xAD67,0xFD12,0xAD6B,0xFD13,0xAD6F,0xFD14,0xAD73,0xFD15,0xAD77,0xFD16,0xAD7B,0xFD17,0xAD7F,0xFD18,0xAD83,0xFD19,0xAD87,0xFD1A,0xAD8B,0xFD1B,0xAD8F,0xFD1C,0xAD93,0xFD1D,0xAD97,0xFD1E,0xAD9B,
	0xFD1F,0xAD9F,0xFD20,0xADA3,0xFD21,0xADA7,0xFD22,0xADAB,0xFD23,0xADAF,0xFD24,0xADB3,0xFD25,0xADB7,0xFD26,0xADBB,0xFD27,0xADBF,0xFD28,0xADC3,0xFD29,0xADC7,0xFD2A,0xADCB,0xFD2B,0xADCF,0xFD2C,0xADD3,0xFD2D,0xADD7,0xFD2E,0xADDB,
	0xFD2F,0xADDF,0xFD30,0xADE3,0xFD31,0xADE7,0xFD32,0xADEB,0xFD33,0xADEF,0xFD34,0xADF3,0xFD35,0xADF7,0xFD36,0xADFB,0xFD37,0xADFF,0xFD38,0xAE03,0xFD39,0xAE07,0xFD3A,0xAE0B,0xFD3B,0xAE0F,0xFD3C,0xAE13,0xFD3D,0xAE17,0xFD50,0xAE1B,
	0xFD51,0xAE21,0xFD52,0xAE27,0xFD53,0xAE2D,0xFD54,0xAE33,0xFD55,0xAE39,0xFD56,0xAE3F,0xFD57,0xAE45,0xFD58,0xAE4B,0xFD59,0xAE51,0xFD5A,0xAE57,0xFD5B,0xAE5D,0xFD5C,0xAE63,0xFD5D,0xAE69,0xFD5E,0xAE6F,0xFD5F,0xAE75,0xFD60,0xAE7B,
	0xFD61,0xAE81,0xFD62,0xAE87,0xFD63,0xAE8D,0xFD64,0xAE93,0xFD65,0xAE99,0xFD66,0xAE9F,0xFD67,0xAEA5,0xFD68,0xAEAB,0xFD69,0xAEB1,0xFD6A,0xAEB7,0xFD6B,0xAEBD,0xFD6C,0xAEC3,0xFD6D,0xAEC9,0xFD6E,0xAECF,0xFD6F,0xAED5,0xFD70,0xAEDB,
	0xFD71,0xAEE1,0xFD72,0xAEE7,0xFD73,0xAEED,0xFD74,0xAEF3,0xFD75,0xAEF9,0xFD76,0xAEFF,0xFD77,0xAF05,0xFD78,0xAF0B,0xFD79,0xAF11,0xFD7A,0xAF17,0xFD7B,0xAF1D,0xFD7C,0xAF23,0xFD7D,0xAF29,0xFD7E,0xAF2F,0xFD7F,0xAF35,0xFD80,0xAF3B,
	0xFD81,0xAF41,0xFD82,0xAF47,0xFD83,0xAF4D,0xFD84,0xAF53,0xFD85,0xAF59,0xFD86,0xAF5F,0xFD87,0xAF65,0xFD88,0xAF6B,0xFD89,0xAF71,0xFD8A,0xAF77,0xFD8B,0xAF7D,0xFD8C,0xAF83,0xFD8D,0xAF89,0xFD8E,0xAF8F,0xFD8F,0xAF95,0xFD92,0xAF9B,
	0xFD93,0xAFA1,0xFD94,0xAFA7,0xFD95,0xAFAD,0xFD96,0xAFB3,0xFD97,0xAFB9,0xFD98,0xAFBF,0xFD99,0xAFC5,0xFD9A,0xAFCB,0xFD9B,0xAFD1,0xFD9C,0xAFD7,0xFD9D,0xAFDD,0xFD9E,0xAFE3,0xFD9F,0xAFE9,0xFDA0,0xAFEF,0xFDA1,0xAFF5,0xFDA2,0xAFFB,
	0xFDA3,0xB001,0xFDA4,0xB007,0xFDA5,0xB00D,0xFDA6,0xB013,0xFDA7,0xB019,0xFDA8,0xB01F,0xFDA9,0xB025,0xFDAA,0xB02B,0xFDAB,0xB031,0xFDAC,0xB037,0xFDAD,0xB03D,0xFDAE,0xB043,0xFDAF,0xB049,0xFDB0,0xB04F,0xFDB1,0xB055,0xFDB2,0xB05B,
	0xFDB3,0xB061,0xFDB4,0xB067,0xFDB5,0xB06D,0xFDB6,0xB073,0xFDB7,0xB079,0xFDB8,0xB07F,0xFDB9,0xB085,0xFDBA,0xB08B,0xFDBB,0xB091,0xFDBC,0xB097,0xFDBD,0xB09D,0xFDBE,0xB0A3,0xFDBF,0xB0A9,0xFDC0,0xB0AF,0xFDC1,0xB0B5,0xFDC2,0xB0BB,
	0xFDC3,0xB0C1,0xFDC4,0xB0C7,0xFDC5,0xB0CD,0xFDC6,0xB0D3,0xFDC7,0xB0D9,0xFDF0,0xB0DF,0xFDF1,0xB0E5,0xFDF2,0xB0EB,0xFDF3,0xB0F3,0xFDF4,0xB0FB,0xFDF5,0xB103,0xFDF6,0xB10B,0xFDF7,0xB113,0xFDF8,0xB11B,0xFDF9,0xB123,0xFDFA,0xB129,
	0xFDFB,0xB14A,0xFDFC,0xB159,0xFE10,0xB161,0xFE11,0xB162,0xFE12,0xB165,0xFE13,0xB168,0xFE14,0xB169,0xFE15,0xB16A,0xFE16,0xB16B,0xFE17,0xB16C,0xFE18,0xB16F,0xFE19,0xB172,0xFE30,0xB175,0xFE31,0xB178,0xFE32,0xB17B,0xFE33,0xB17E,
	0xFE34,0xB17F,0xFE35,0xB180,0xFE36,0xB181,0xFE37,0xB182,0xFE38,0xB183,0xFE39,0xB184,0xFE3A,0xB187,0xFE3B,0xB18A,0xFE3C,0xB18D,0xFE3D,0xB190,0xFE3E,0xB193,0xFE3F,0xB196,0xFE40,0xB199,0xFE41,0xB19C,0xFE42,0xB19F,0xFE43,0xB1A2,
	0xFE44,0xB1A5,0xFE47,0xB1A8,0xFE48,0xB1A9,0xFE49,0xB1AA,0xFE4A,0xB1AD,0xFE4B,0xB1B0,0xFE4C,0xB1B3,0xFE4D,0xB1B6,0xFE4E,0xB1B7,0xFE4F,0xB1B8,0xFE50,0xB1B9,0xFE51,0xB1BA,0xFE52,0xB1BD,0xFE54,0xB1BE,0xFE55,0xB1BF,0xFE56,0xB1C0,
	0xFE57,0xB1C1,0xFE58,0xB1C2,0xFE59,0xB1C5,0xFE5A,0xB1C6,0xFE5B,0xB1C7,0xFE5C,0xB1C8,0xFE5D,0xB1C9,0xFE5E,0xB1CC,0xFE5F,0xB1CF,0xFE60,0xB1D0,0xFE61,0xB1D1,0xFE62,0xB1D2,0xFE63,0xB1D3,0xFE64,0xB1D4,0xFE65,0xB1D5,0xFE66,0xB1D6,
	0xFE68,0xB1D7,0xFE69,0xB1D8,0xFE6A,0xB1D9,0xFE6B,0xB1DA,0xFE70,0xB1DB,0xFE71,0xB1DE,0xFE72,0xB1E2,0xFE74,0xB1E5,0xFE76,0xB1E8,0xFE77,0xB1EB,0xFE78,0xB1EF,0xFE79,0xB1F2,0xFE7A,0xB1F6,0xFE7B,0xB1F9,0xFE7C,0xB1FD,0xFE7D,0xB200,
	0xFE7E,0xB204,0xFE7F,0xB207,0xFE80,0xB20B,0xFE81,0xB20D,0xFE82,0xB20F,0xFE83,0xB211,0xFE84,0xB213,0xFE85,0xB215,0xFE86,0xB217,0xFE87,0xB219,0xFE88,0xB21B,0xFE89,0xB21D,0xFE8A,0xB21F,0xFE8B,0xB221,0xFE8C,0xB223,0xFE8D,0xB225,
	0xFE8E,0xB227,0xFE8F,0xB229,0xFE90,0xB22B,0xFE91,0xB22D,0xFE92,0xB22F,0xFE93,0xB231,0xFE94,0xB233,0xFE95,0xB235,0xFE96,0xB237,0xFE97,0xB239,0xFE98,0xB23B,0xFE99,0xB23D,0xFE9A,0xB23F,0xFE9B,0xB241,0xFE9C,0xB243,0xFE9D,0xB245,
	0xFE9E,0xB247,0xFE9F,0xB249,0xFEA0,0xB24B,0xFEA1,0xB24D,0xFEA2,0xB24F,0xFEA3,0xB251,0xFEA4,0xB253,0xFEA5,0xB255,0xFEA6,0xB257,0xFEA7,0xB259,0xFEA8,0xB25B,0xFEA9,0xB25D,0xFEAA,0xB25F,0xFEAB,0xB261,0xFEAC,0xB263,0xFEAD,0xB265,
	0xFEAE,0xB267,0xFEAF,0xB269,0xFEB0,0xB26B,0xFEB1,0xB26D,0xFEB2,0xB26F,0xFEB3,0xB271,0xFEB4,0xB273,0xFEB5,0xB275,0xFEB6,0xB277,0xFEB7,0xB279,0xFEB8,0xB27B,0xFEB9,0xB27D,0xFEBA,0xB27F,0xFEBB,0xB281,0xFEBC,0xB283,0xFEBD,0xB285,
	0xFEBE,0xB287,0xFEBF,0xB289,0xFEC0,0xB28B,0xFEC1,0xB28D,0xFEC2,0xB28F,0xFEC3,0xB291,0xFEC4,0xB293,0xFEC5,0xB295,0xFEC6,0xB297,0xFEC7,0xB299,0xFEC8,0xB29B,0xFEC9,0xB29D,0xFECA,0xB29F,0xFECB,0xB2A1,0xFECC,0xB2A3,0xFECD,0xB2A5,
	0xFECE,0xB2A7,0xFECF,0xB2A9,0xFED0,0xB2AB,0xFED1,0xB2AD,0xFED2,0xB2AF,0xFED3,0xB2B1,0xFED4,0xB2B3,0xFED5,0xB2B5,0xFED6,0xB2B7,0xFED7,0xB2B9,0xFED8,0xB2BB,0xFED9,0xB2BD,0xFEDA,0xB2BF,0xFEDB,0xB2C1,0xFEDC,0xB2C3,0xFEDD,0xB2C5,
	0xFEDE,0xB2C7,0xFEDF,0xB2C9,0xFEE0,0xB2CB,0xFEE1,0xB2CD,0xFEE2,0xB2CF,0xFEE3,0xB2D1,0xFEE4,0xB2D3,0xFEE5,0xB2D5,0xFEE6,0xB2D7,0xFEE7,0xB2D9,0xFEE8,0xB2DB,0xFEE9,0xB2DD,0xFEEA,0xB2DF,0xFEEB,0xB2E1,0xFEEC,0xB2E3,0xFEED,0xB2E5,
	0xFEEE,0xB2E7,0xFEEF,0xB2E9,0xFEF0,0xB2EB,0xFEF1,0xB2ED,0xFEF2,0xB2EF,0xFEF3,0xB2F1,0xFEF4,0xB2F3,0xFEF5,0xB2F5,0xFEF6,0xB2F9,0xFEF7,0xB2FD,0xFEF8,0xB301,0xFEF9,0xB305,0xFEFA,0xB309,0xFEFB,0xB30D,0xFEFC,0xB311,0xFF01,0xB315,
	0xFF02,0xB316,0xFF03,0xB317,0xFF04,0xB318,0xFF05,0xB319,0xFF06,0xB31A,0xFF07,0xB31B,0xFF08,0xB31C,0xFF09,0xB31D,0xFF0A,0xB31E,0xFF0B,0xB31F,0xFF0C,0xB320,0xFF0D,0xB321,0xFF0E,0xB322,0xFF0F,0xB323,0xFF10,0xB324,0xFF11,0xB325,
	0xFF12,0xB326,0xFF13,0xB327,0xFF14,0xB328,0xFF15,0xB329,0xFF16,0xB32A,0xFF17,0xB32B,0xFF18,0xB32C,0xFF19,0xB32D,0xFF1A,0xB32E,0xFF1B,0xB32F,0xFF1C,0xB330,0xFF1D,0xB331,0xFF1E,0xB332,0xFF1F,0xB333,0xFF20,0xB334,0xFF21,0xB335,
	0xFF22,0xB336,0xFF23,0xB337,0xFF24,0xB338,0xFF25,0xB339,0xFF26,0xB33A,0xFF27,0xB33B,0xFF28,0xB33C,0xFF29,0xB33D,0xFF2A,0xB33E,0xFF2B,0xB33F,0xFF2C,0xB340,0xFF2D,0xB341,0xFF2E,0xB342,0xFF2F,0xB343,0xFF30,0xB344,0xFF31,0xB345,
	0xFF32,0xB346,0xFF33,0xB347,0xFF34,0xB348,0xFF35,0xB349,0xFF36,0xB34A,0xFF37,0xB34B,0xFF38,0xB34C,0xFF39,0xB34D,0xFF3A,0xB34E,0xFF3B,0xB34F,0xFF3C,0xB350,0xFF3D,0xB351,0xFF3E,0xB352,0xFF3F,0xB353,0xFF40,0xB354,0xFF41,0xB355,
	0xFF42,0xB356,0xFF43,0xB357,0xFF44,0xB358,0xFF45,0xB359,0xFF46,0xB35A,0xFF47,0xB35B,0xFF48,0xB35C,0xFF49,0xB35D,0xFF4A,0xB35E,0xFF4B,0xB35F,0xFF4C,0xB360,0xFF4D,0xB361,0xFF4E,0xB362,0xFF4F,0xB363,0xFF50,0xB364,0xFF51,0xB365,
	0xFF52,0xB366,0xFF53,0xB367,0xFF54,0xB368,0xFF55,0xB369,0xFF56,0xB36A,0xFF57,0xB36B,0xFF58,0xB36C,0xFF59,0xB36D,0xFF5A,0xB36E,0xFF5B,0xB36F,0xFF5C,0xB370,0xFF5D,0xB371,0xFF5E,0xB372,0xFF5F,0xB373,0xFF60,0xB376,0xFF61,0xB379,
	0xFF62,0xB37C,0xFF63,0xB37F,0xFF64,0xB382,0xFF65,0xB385,0xFF66,0xB388,0xFF67,0xB38B,0xFF68,0xB38E,0xFF69,0xB391,0xFF6A,0xB394,0xFF6B,0xB397,0xFF6C,0xB39A,0xFF6D,0xB39D,0xFF6E,0xB3A0,0xFF6F,0xB3A3,0xFF70,0xB3A6,0xFF71,0xB3A9,
	0xFF72,0xB3AC,0xFF73,0xB3AF,0xFF74,0xB3B2,0xFF75,0xB3B5,0xFF76,0xB3B8,0xFF77,0xB3BB,0xFF78,0xB3BE,0xFF79,0xB3C1,0xFF7A,0xB3C4,0xFF7B,0xB3C7,0xFF7C,0xB3CA,0xFF7D,0xB3CD,0xFF7E,0xB3D0,0xFF7F,0xB3D3,0xFF80,0xB3D6,0xFF81,0xB3D9,
	0xFF82,0xB3DC,0xFF83,0xB3DF,0xFF84,0xB3E2,0xFF85,0xB3E5,0xFF86,0xB3E8,0xFF87,0xB3EB,0xFF88,0xB3EE,0xFF89,0xB3F1,0xFF8A,0xB3F4,0xFF8B,0xB3F7,0xFF8C,0xB3FA,0xFF8D,0xB3FD,0xFF8E,0xB400,0xFF8F,0xB403,0xFF90,0xB406,0xFF91,0xB409,
	0xFF92,0xB40C,0xFF93,0xB40F,0xFF94,0xB412,0xFF95,0xB415,0xFF96,0xB418,0xFF97,0xB41B,0xFF98,0xB41E,0xFF99,0xB421,0xFF9A,0xB424,0xFF9B,0xB427,0xFF9C,0xB42A,0xFF9D,0xB42D,0xFF9E,0xB430,0xFF9F,0xB433,0xFFA0,0xB436,0xFFA1,0xB439,
	0xFFA2,0xB43C,0xFFA3,0xB43F,0xFFA4,0xB442,0xFFA5,0xB445,0xFFA6,0xB448,0xFFA7,0xB44B,0xFFA8,0xB44E,0xFFA9,0xB451,0xFFAA,0xB454,0xFFAB,0xB457,0xFFAC,0xB45A,0xFFAD,0xB45D,0xFFAE,0xB460,0xFFAF,0xB463,0xFFB0,0xB466,0xFFB1,0xB469,
	0xFFB2,0xB46C,0xFFB3,0xB46F,0xFFB4,0xB472,0xFFB5,0xB475,0xFFB6,0xB478,0xFFB7,0xB47B,0xFFB8,0xB47E,0xFFB9,0xB481,0xFFBA,0xB484,0xFFBB,0xB487,0xFFBC,0xB48A,0xFFBD,0xB48D,0xFFBE,0xB490,0xFFC2,0xB493,0xFFC3,0xB496,0xFFC4,0xB499,
	0xFFC5,0xB49C,0xFFC6,0xB49F,0xFFC7,0xB4A2,0xFFCA,0xB4A5,0xFFCB,0xB4A8,0xFFCC,0xB4AB,0xFFCD,0xB4AE,0xFFCE,0xB4B1,0xFFCF,0xB4B4,0xFFD2,0xB4B7,0xFFD3,0xB4BA,0xFFD4,0xB4BD,0xFFD5,0xB4C0,0xFFD6,0xB4C3,0xFFD7,0xB4C6,0xFFDA,0xB4C9,
	0xFFDB,0xB4CC,0xFFDC,0xB4CF,0xFFE0,0xB4D2,0xFFE1,0xB4D4,0xFFE2,0xB4D6,0xFFE3,0xB4D8,0xFFE4,0xB4DA,0xFFE5,0xB4DC,0xFFE6,0xB4DE,0xFFE8,0xB4E1,0xFFE9,0xB4E4,0xFFEA,0xB4E7,0xFFEB,0xB4EA,0xFFEC,0xB4ED,0xFFED,0xB4F0,0xFFEE,0xB4F3,
	0xFFFF,0x34F6,
};
#define mxDecompositionSize1 2322
const txU1 gxDecompositionData1[mxDecompositionSize1] ICACHE_XS6RO_ATTR = {
	0xcb,0x90,0xcb,0x91,0xc3,0xa6,0xca,0x99,0xc9,0x93,0xca,0xa3,0xea,0xad,0xa6,0xca,0xa5,0xca,0xa4,0xc9,0x96,0xc9,0x97,0xe1,0xb6,0x91,0xc9,0x98,0xc9,0x9e,0xca,0xa9,
	0xc9,0xa4,0xc9,0xa2,0xc9,0xa0,0xca,0x9b,0xc4,0xa7,0xca,0x9c,0xc9,0xa7,0xca,0x84,0xca,0xaa,0xca,0xab,0xc9,0xac,0xf0,0x9d,0xbc,0x84,0xea,0x9e,0x8e,0xc9,0xae,0xf0,
	0x9d,0xbc,0x85,0xca,0x8e,0xf0,0x9d,0xbc,0x86,0xc3,0xb8,0xc9,0xb6,0xc9,0xb7,0x71,0xc9,0xba,0xf0,0x9d,0xbc,0x88,0xc9,0xbd,0xc9,0xbe,0xca,0x80,0xca,0xa8,0xca,0xa6,
	0xea,0xad,0xa7,0xca,0xa7,0xca,0x88,0xe2,0xb1,0xb1,0xca,0x8f,0xca,0xa1,0xca,0xa2,0xca,0x98,0xc7,0x80,0xc7,0x81,0xc7,0x82,0xf0,0x9d,0xbc,0x8a,0xf0,0x9d,0xbc,0x9e,
	0xf0,0x91,0x82,0x99,0xf0,0x91,0x82,0xba,0xf0,0x91,0x82,0x9b,0xf0,0x91,0x82,0xba,0xf0,0x91,0x82,0xa5,0xf0,0x91,0x82,0xba,0xf0,0x91,0x84,0xb1,0xf0,0x91,0x84,0xa7,
	0xf0,0x91,0x84,0xb2,0xf0,0x91,0x84,0xa7,0xf0,0x91,0x8d,0x87,0xf0,0x91,0x8c,0xbe,0xf0,0x91,0x8d,0x87,0xf0,0x91,0x8d,0x97,0xf0,0x91,0x92,0xb9,0xf0,0x91,0x92,0xba,
	0xf0,0x91,0x92,0xb9,0xf0,0x91,0x92,0xb0,0xf0,0x91,0x92,0xb9,0xf0,0x91,0x92,0xbd,0xf0,0x91,0x96,0xb8,0xf0,0x91,0x96,0xaf,0xf0,0x91,0x96,0xb9,0xf0,0x91,0x96,0xaf,
	0xf0,0x91,0xa4,0xb5,0xf0,0x91,0xa4,0xb0,0xf0,0x9d,0x85,0x97,0xf0,0x9d,0x85,0xa5,0xf0,0x9d,0x85,0x98,0xf0,0x9d,0x85,0xa5,0xf0,0x9d,0x85,0x9f,0xf0,0x9d,0x85,0xae,
	0xf0,0x9d,0x85,0x9f,0xf0,0x9d,0x85,0xaf,0xf0,0x9d,0x85,0x9f,0xf0,0x9d,0x85,0xb0,0xf0,0x9d,0x85,0x9f,0xf0,0x9d,0x85,0xb1,0xf0,0x9d,0x85,0x9f,0xf0,0x9d,0x85,0xb2,
	0xf0,0x9d,0x86,0xb9,0xf0,0x9d,0x85,0xa5,0xf0,0x9d,0x86,0xba,0xf0,0x9d,0x85,0xa5,0xf0,0x9d,0x86,0xbb,0xf0,0x9d,0x85,0xae,0xf0,0x9d,0x86,0xbc,0xf0,0x9d,0x85,0xae,
	0xf0,0x9d,0x86,0xbb,0xf0,0x9d,0x85,0xaf,0xf0,0x9d,0x86,0xbc,0xf0,0x9d,0x85,0xaf,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,
	0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x75,0x76,
	0x77,0x78,0x79,0x7a,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x61,0x62,
	0x63,0x64,0x65,0x66,0x67,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,
	0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
	0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x41,0x43,0x44,0x47,0x4a,0x4b,0x4e,0x4f,0x50,0x51,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x61,0x62,0x63,
	0x64,0x66,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,
	0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,
	0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x41,0x42,0x44,0x45,0x46,0x47,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x61,0x62,0x63,
	0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x41,0x42,0x44,0x45,0x46,0x47,0x49,0x4a,0x4b,
	0x4c,0x4d,0x4f,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x75,0x76,
	0x77,0x78,0x79,0x7a,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x61,0x62,
	0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,
	0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,
	0x6f,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,
	0x55,0x56,0x57,0x58,0x59,0x5a,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,
	0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x61,0x62,0x63,0x64,0x65,0x66,
	0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,
	0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,
	0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,
	0x59,0x5a,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0xc4,0xb1,0xc8,0xb7,
	0xce,0x91,0xce,0x92,0xce,0x93,0xce,0x94,0xce,0x95,0xce,0x96,0xce,0x97,0xce,0x98,0xce,0x99,0xce,0x9a,0xce,0x9b,0xce,0x9c,0xce,0x9d,0xce,0x9e,0xce,0x9f,0xce,0xa0,
	0xce,0xa1,0xcf,0xb4,0xce,0xa3,0xce,0xa4,0xce,0xa5,0xce,0xa6,0xce,0xa7,0xce,0xa8,0xce,0xa9,0xe2,0x88,0x87,0xce,0xb1,0xce,0xb2,0xce,0xb3,0xce,0xb4,0xce,0xb5,0xce,
	0xb6,0xce,0xb7,0xce,0xb8,0xce,0xb9,0xce,0xba,0xce,0xbb,0xce,0xbc,0xce,0xbd,0xce,0xbe,0xce,0xbf,0xcf,0x80,0xcf,0x81,0xcf,0x82,0xcf,0x83,0xcf,0x84,0xcf,0x85,0xcf,
	0x86,0xcf,0x87,0xcf,0x88,0xcf,0x89,0xe2,0x88,0x82,0xcf,0xb5,0xcf,0x91,0xcf,0xb0,0xcf,0x95,0xcf,0xb1,0xcf,0x96,0xce,0x91,0xce,0x92,0xce,0x93,0xce,0x94,0xce,0x95,
	0xce,0x96,0xce,0x97,0xce,0x98,0xce,0x99,0xce,0x9a,0xce,0x9b,0xce,0x9c,0xce,0x9d,0xce,0x9e,0xce,0x9f,0xce,0xa0,0xce,0xa1,0xcf,0xb4,0xce,0xa3,0xce,0xa4,0xce,0xa5,
	0xce,0xa6,0xce,0xa7,0xce,0xa8,0xce,0xa9,0xe2,0x88,0x87,0xce,0xb1,0xce,0xb2,0xce,0xb3,0xce,0xb4,0xce,0xb5,0xce,0xb6,0xce,0xb7,0xce,0xb8,0xce,0xb9,0xce,0xba,0xce,
	0xbb,0xce,0xbc,0xce,0xbd,0xce,0xbe,0xce,0xbf,0xcf,0x80,0xcf,0x81,0xcf,0x82,0xcf,0x83,0xcf,0x84,0xcf,0x85,0xcf,0x86,0xcf,0x87,0xcf,0x88,0xcf,0x89,0xe2,0x88,0x82,
	0xcf,0xb5,0xcf,0x91,0xcf,0xb0,0xcf,0x95,0xcf,0xb1,0xcf,0x96,0xce,0x91,0xce,0x92,0xce,0x93,0xce,0x94,0xce,0x95,0xce,0x96,0xce,0x97,0xce,0x98,0xce,0x99,0xce,0x9a,
	0xce,0x9b,0xce,0x9c,0xce,0x9d,0xce,0x9e,0xce,0x9f,0xce,0xa0,0xce,0xa1,0xcf,0xb4,0xce,0xa3,0xce,0xa4,0xce,0xa5,0xce,0xa6,0xce,0xa7,0xce,0xa8,0xce,0xa9,0xe2,0x88,
	0x87,0xce,0xb1,0xce,0xb2,0xce,0xb3,0xce,0xb4,0xce,0xb5,0xce,0xb6,0xce,0xb7,0xce,0xb8,0xce,0xb9,0xce,0xba,0xce,0xbb,0xce,0xbc,0xce,0xbd,0xce,0xbe,0xce,0xbf,0xcf,
	0x80,0xcf,0x81,0xcf,0x82,0xcf,0x83,0xcf,0x84,0xcf,0x85,0xcf,0x86,0xcf,0x87,0xcf,0x88,0xcf,0x89,0xe2,0x88,0x82,0xcf,0xb5,0xcf,0x91,0xcf,0xb0,0xcf,0x95,0xcf,0xb1,
	0xcf,0x96,0xce,0x91,0xce,0x92,0xce,0x93,0xce,0x94,0xce,0x95,0xce,0x96,0xce,0x97,0xce,0x98,0xce,0x99,0xce,0x9a,0xce,0x9b,0xce,0x9c,0xce,0x9d,0xce,0x9e,0xce,0x9f,
	0xce,0xa0,0xce,0xa1,0xcf,0xb4,0xce,0xa3,0xce,0xa4,0xce,0xa5,0xce,0xa6,0xce,0xa7,0xce,0xa8,0xce,0xa9,0xe2,0x88,0x87,0xce,0xb1,0xce,0xb2,0xce,0xb3,0xce,0xb4,0xce,
	0xb5,0xce,0xb6,0xce,0xb7,0xce,0xb8,0xce,0xb9,0xce,0xba,0xce,0xbb,0xce,0xbc,0xce,0xbd,0xce,0xbe,0xce,0xbf,0xcf,0x80,0xcf,0x81,0xcf,0x82,0xcf,0x83,0xcf,0x84,0xcf,
	0x85,0xcf,0x86,0xcf,0x87,0xcf,0x88,0xcf,0x89,0xe2,0x88,0x82,0xcf,0xb5,0xcf,0x91,0xcf,0xb0,0xcf,0x95,0xcf,0xb1,0xcf,0x96,0xce,0x91,0xce,0x92,0xce,0x93,0xce,0x94,
	0xce,0x95,0xce,0x96,0xce,0x97,0xce,0x98,0xce,0x99,0xce,0x9a,0xce,0x9b,0xce,0x9c,0xce,0x9d,0xce,0x9e,0xce,0x9f,0xce,0xa0,0xce,0xa1,0xcf,0xb4,0xce,0xa3,0xce,0xa4,
	0xce,0xa5,0xce,0xa6,0xce,0xa7,0xce,0xa8,0xce,0xa9,0xe2,0x88,0x87,0xce,0xb1,0xce,0xb2,0xce,0xb3,0xce,0xb4,0xce,0xb5,0xce,0xb6,0xce,0xb7,0xce,0xb8,0xce,0xb9,0xce,
	0xba,0xce,0xbb,0xce,0xbc,0xce,0xbd,0xce,0xbe,0xce,0xbf,0xcf,0x80,0xcf,0x81,0xcf,0x82,0xcf,0x83,0xcf,0x84,0xcf,0x85,0xcf,0x86,0xcf,0x87,0xcf,0x88,0xcf,0x89,0xe2,
	0x88,0x82,0xcf,0xb5,0xcf,0x91,0xcf,0xb0,0xcf,0x95,0xcf,0xb1,0xcf,0x96,0xcf,0x9c,0xcf,0x9d,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x31,0x32,0x33,
	0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x31,0x32,0x33,0x34,0x35,
	0x36,0x37,0x38,0x39,0xd8,0xa7,0xd8,0xa8,0xd8,0xac,0xd8,0xaf,0xd9,0x88,0xd8,0xb2,0xd8,0xad,0xd8,0xb7,0xd9,0x8a,0xd9,0x83,0xd9,0x84,0xd9,0x85,0xd9,0x86,0xd8,0xb3,
	0xd8,0xb9,0xd9,0x81,0xd8,0xb5,0xd9,0x82,0xd8,0xb1,0xd8,0xb4,0xd8,0xaa,0xd8,0xab,0xd8,0xae,0xd8,0xb0,0xd8,0xb6,0xd8,0xb8,0xd8,0xba,0xd9,0xae,0xda,0xba,0xda,0xa1,
	0xd9,0xaf,0xd8,0xa8,0xd8,0xac,0xd9,0x87,0xd8,0xad,0xd9,0x8a,0xd9,0x83,0xd9,0x84,0xd9,0x85,0xd9,0x86,0xd8,0xb3,0xd8,0xb9,0xd9,0x81,0xd8,0xb5,0xd9,0x82,0xd8,0xb4,
	0xd8,0xaa,0xd8,0xab,0xd8,0xae,0xd8,0xb6,0xd8,0xba,0xd8,0xac,0xd8,0xad,0xd9,0x8a,0xd9,0x84,0xd9,0x86,0xd8,0xb3,0xd8,0xb9,0xd8,0xb5,0xd9,0x82,0xd8,0xb4,0xd8,0xae,
	0xd8,0xb6,0xd8,0xba,0xda,0xba,0xd9,0xaf,0xd8,0xa8,0xd8,0xac,0xd9,0x87,0xd8,0xad,0xd8,0xb7,0xd9,0x8a,0xd9,0x83,0xd9,0x85,0xd9,0x86,0xd8,0xb3,0xd8,0xb9,0xd9,0x81,
	0xd8,0xb5,0xd9,0x82,0xd8,0xb4,0xd8,0xaa,0xd8,0xab,0xd8,0xae,0xd8,0xb6,0xd8,0xb8,0xd8,0xba,0xd9,0xae,0xda,0xa1,0xd8,0xa7,0xd8,0xa8,0xd8,0xac,0xd8,0xaf,0xd9,0x87,
	0xd9,0x88,0xd8,0xb2,0xd8,0xad,0xd8,0xb7,0xd9,0x8a,0xd9,0x84,0xd9,0x85,0xd9,0x86,0xd8,0xb3,0xd8,0xb9,0xd9,0x81,0xd8,0xb5,0xd9,0x82,0xd8,0xb1,0xd8,0xb4,0xd8,0xaa,
	0xd8,0xab,0xd8,0xae,0xd8,0xb0,0xd8,0xb6,0xd8,0xb8,0xd8,0xba,0xd8,0xa8,0xd8,0xac,0xd8,0xaf,0xd9,0x88,0xd8,0xb2,0xd8,0xad,0xd8,0xb7,0xd9,0x8a,0xd9,0x84,0xd9,0x85,
	0xd9,0x86,0xd8,0xb3,0xd8,0xb9,0xd9,0x81,0xd8,0xb5,0xd9,0x82,0xd8,0xb1,0xd8,0xb4,0xd8,0xaa,0xd8,0xab,0xd8,0xae,0xd8,0xb0,0xd8,0xb6,0xd8,0xb8,0xd8,0xba,0x30,0x2e,
	0x30,0x2c,0x31,0x2c,0x32,0x2c,0x33,0x2c,0x34,0x2c,0x35,0x2c,0x36,0x2c,0x37,0x2c,0x38,0x2c,0x39,0x2c,0x28,0x41,0x29,0x28,0x42,0x29,0x28,0x43,0x29,0x28,0x44,0x29,
	0x28,0x45,0x29,0x28,0x46,0x29,0x28,0x47,0x29,0x28,0x48,0x29,0x28,0x49,0x29,0x28,0x4a,0x29,0x28,0x4b,0x29,0x28,0x4c,0x29,0x28,0x4d,0x29,0x28,0x4e,0x29,0x28,0x4f,
	0x29,0x28,0x50,0x29,0x28,0x51,0x29,0x28,0x52,0x29,0x28,0x53,0x29,0x28,0x54,0x29,0x28,0x55,0x29,0x28,0x56,0x29,0x28,0x57,0x29,0x28,0x58,0x29,0x28,0x59,0x29,0x28,
	0x5a,0x29,0xe3,0x80,0x94,0x53,0xe3,0x80,0x95,0x43,0x52,0x43,0x44,0x57,0x5a,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,
	0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x48,0x56,0x4d,0x56,0x53,0x44,0x53,0x53,0x50,0x50,0x56,0x57,0x43,0x4d,0x43,0x4d,0x44,0x4d,0x52,0x44,0x4a,0xe3,0x81,
	0xbb,0xe3,0x81,0x8b,0xe3,0x82,0xb3,0xe3,0x82,0xb3,0xe3,0x82,0xb5,0xe6,0x89,0x8b,0xe5,0xad,0x97,0xe5,0x8f,0x8c,0xe3,0x83,0x87,0xe4,0xba,0x8c,0xe5,0xa4,0x9a,0xe8,
	0xa7,0xa3,0xe5,0xa4,0xa9,0xe4,0xba,0xa4,0xe6,0x98,0xa0,0xe7,0x84,0xa1,0xe6,0x96,0x99,0xe5,0x89,0x8d,0xe5,0xbe,0x8c,0xe5,0x86,0x8d,0xe6,0x96,0xb0,0xe5,0x88,0x9d,
	0xe7,0xb5,0x82,0xe7,0x94,0x9f,0xe8,0xb2,0xa9,0xe5,0xa3,0xb0,0xe5,0x90,0xb9,0xe6,0xbc,0x94,0xe6,0x8a,0x95,0xe6,0x8d,0x95,0xe4,0xb8,0x80,0xe4,0xb8,0x89,0xe9,0x81,
	0x8a,0xe5,0xb7,0xa6,0xe4,0xb8,0xad,0xe5,0x8f,0xb3,0xe6,0x8c,0x87,0xe8,0xb5,0xb0,0xe6,0x89,0x93,0xe7,0xa6,0x81,0xe7,0xa9,0xba,0xe5,0x90,0x88,0xe6,0xba,0x80,0xe6,
	0x9c,0x89,0xe6,0x9c,0x88,0xe7,0x94,0xb3,0xe5,0x89,0xb2,0xe5,0x96,0xb6,0xe9,0x85,0x8d,0xe3,0x80,0x94,0xe6,0x9c,0xac,0xe3,0x80,0x95,0xe3,0x80,0x94,0xe4,0xb8,0x89,
	0xe3,0x80,0x95,0xe3,0x80,0x94,0xe4,0xba,0x8c,0xe3,0x80,0x95,0xe3,0x80,0x94,0xe5,0xae,0x89,0xe3,0x80,0x95,0xe3,0x80,0x94,0xe7,0x82,0xb9,0xe3,0x80,0x95,0xe3,0x80,
	0x94,0xe6,0x89,0x93,0xe3,0x80,0x95,0xe3,0x80,0x94,0xe7,0x9b,0x97,0xe3,0x80,0x95,0xe3,0x80,0x94,0xe5,0x8b,0x9d,0xe3,0x80,0x95,0xe3,0x80,0x94,0xe6,0x95,0x97,0xe3,
	0x80,0x95,0xe5,0xbe,0x97,0xe5,0x8f,0xaf,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,
};
#define mxDecompositionCount1 2732
static const txU2 gxDecompositionIndex1[mxDecompositionCount1] ICACHE_XS6RO_ATTR = {
	0x0781,0x8000,0x0782,0x8002,0x0783,0x8004,0x0784,0x8006,0x0785,0x8008,0x0787,0x800A,0x0788,0x800C,0x0789,0x800F,0x078A,0x8011,0x078B,0x8013,0x078C,0x8015,0x078D,0x8017,0x078E,0x801A,0x078F,0x801C,0x0790,0x801E,0x0791,0x8020,
	0x0792,0x8022,0x0793,0x8024,0x0794,0x8026,0x0795,0x8028,0x0796,0x802A,0x0797,0x802C,0x0798,0x802E,0x0799,0x8030,0x079A,0x8032,0x079B,0x8034,0x079C,0x8036,0x079D,0x803A,0x079E,0x803D,0x079F,0x803F,0x07A0,0x8043,0x07A1,0x8045,
	0x07A2,0x8049,0x07A3,0x804B,0x07A4,0x804D,0x07A5,0x804F,0x07A6,0x8050,0x07A7,0x8052,0x07A8,0x8056,0x07A9,0x8058,0x07AA,0x805A,0x07AB,0x805C,0x07AC,0x805E,0x07AD,0x8060,0x07AE,0x8063,0x07AF,0x8065,0x07B0,0x8067,0x07B2,0x806A,
	0x07B3,0x806C,0x07B4,0x806E,0x07B5,0x8070,0x07B6,0x8072,0x07B7,0x8074,0x07B8,0x8076,0x07B9,0x8078,0x07BA,0x807C,0x109A,0x0080,0x109C,0x0088,0x10AB,0x0090,0x112E,0x0098,0x112F,0x00A0,0x134B,0x00A8,0x134C,0x00B0,0x14BB,0x00B8,
	0x14BC,0x00C0,0x14BE,0x00C8,0x15BA,0x00D0,0x15BB,0x00D8,0x1938,0x00E0,0xD15E,0x00E8,0xD15F,0x00F0,0xD160,0x00F8,0xD161,0x0100,0xD162,0x0108,0xD163,0x0110,0xD164,0x0118,0xD1BB,0x0120,0xD1BC,0x0128,0xD1BD,0x0130,0xD1BE,0x0138,
	0xD1BF,0x0140,0xD1C0,0x0148,0xD400,0x8150,0xD401,0x8151,0xD402,0x8152,0xD403,0x8153,0xD404,0x8154,0xD405,0x8155,0xD406,0x8156,0xD407,0x8157,0xD408,0x8158,0xD409,0x8159,0xD40A,0x815A,0xD40B,0x815B,0xD40C,0x815C,0xD40D,0x815D,
	0xD40E,0x815E,0xD40F,0x815F,0xD410,0x8160,0xD411,0x8161,0xD412,0x8162,0xD413,0x8163,0xD414,0x8164,0xD415,0x8165,0xD416,0x8166,0xD417,0x8167,0xD418,0x8168,0xD419,0x8169,0xD41A,0x816A,0xD41B,0x816B,0xD41C,0x816C,0xD41D,0x816D,
	0xD41E,0x816E,0xD41F,0x816F,0xD420,0x8170,0xD421,0x8171,0xD422,0x8172,0xD423,0x8173,0xD424,0x8174,0xD425,0x8175,0xD426,0x8176,0xD427,0x8177,0xD428,0x8178,0xD429,0x8179,0xD42A,0x817A,0xD42B,0x817B,0xD42C,0x817C,0xD42D,0x817D,
	0xD42E,0x817E,0xD42F,0x817F,0xD430,0x8180,0xD431,0x8181,0xD432,0x8182,0xD433,0x8183,0xD434,0x8184,0xD435,0x8185,0xD436,0x8186,0xD437,0x8187,0xD438,0x8188,0xD439,0x8189,0xD43A,0x818A,0xD43B,0x818B,0xD43C,0x818C,0xD43D,0x818D,
	0xD43E,0x818E,0xD43F,0x818F,0xD440,0x8190,0xD441,0x8191,0xD442,0x8192,0xD443,0x8193,0xD444,0x8194,0xD445,0x8195,0xD446,0x8196,0xD447,0x8197,0xD448,0x8198,0xD449,0x8199,0xD44A,0x819A,0xD44B,0x819B,0xD44C,0x819C,0xD44D,0x819D,
	0xD44E,0x819E,0xD44F,0x819F,0xD450,0x81A0,0xD451,0x81A1,0xD452,0x81A2,0xD453,0x81A3,0xD454,0x81A4,0xD456,0x81A5,0xD457,0x81A6,0xD458,0x81A7,0xD459,0x81A8,0xD45A,0x81A9,0xD45B,0x81AA,0xD45C,0x81AB,0xD45D,0x81AC,0xD45E,0x81AD,
	0xD45F,0x81AE,0xD460,0x81AF,0xD461,0x81B0,0xD462,0x81B1,0xD463,0x81B2,0xD464,0x81B3,0xD465,0x81B4,0xD466,0x81B5,0xD467,0x81B6,0xD468,0x81B7,0xD469,0x81B8,0xD46A,0x81B9,0xD46B,0x81BA,0xD46C,0x81BB,0xD46D,0x81BC,0xD46E,0x81BD,
	0xD46F,0x81BE,0xD470,0x81BF,0xD471,0x81C0,0xD472,0x81C1,0xD473,0x81C2,0xD474,0x81C3,0xD475,0x81C4,0xD476,0x81C5,0xD477,0x81C6,0xD478,0x81C7,0xD479,0x81C8,0xD47A,0x81C9,0xD47B,0x81CA,0xD47C,0x81CB,0xD47D,0x81CC,0xD47E,0x81CD,
	0xD47F,0x81CE,0xD480,0x81CF,0xD481,0x81D0,0xD482,0x81D1,0xD483,0x81D2,0xD484,0x81D3,0xD485,0x81D4,0xD486,0x81D5,0xD487,0x81D6,0xD488,0x81D7,0xD489,0x81D8,0xD48A,0x81D9,0xD48B,0x81DA,0xD48C,0x81DB,0xD48D,0x81DC,0xD48E,0x81DD,
	0xD48F,0x81DE,0xD490,0x81DF,0xD491,0x81E0,0xD492,0x81E1,0xD493,0x81E2,0xD494,0x81E3,0xD495,0x81E4,0xD496,0x81E5,0xD497,0x81E6,0xD498,0x81E7,0xD499,0x81E8,0xD49A,0x81E9,0xD49B,0x81EA,0xD49C,0x81EB,0xD49E,0x81EC,0xD49F,0x81ED,
	0xD4A2,0x81EE,0xD4A5,0x81EF,0xD4A6,0x81F0,0xD4A9,0x81F1,0xD4AA,0x81F2,0xD4AB,0x81F3,0xD4AC,0x81F4,0xD4AE,0x81F5,0xD4AF,0x81F6,0xD4B0,0x81F7,0xD4B1,0x81F8,0xD4B2,0x81F9,0xD4B3,0x81FA,0xD4B4,0x81FB,0xD4B5,0x81FC,0xD4B6,0x81FD,
	0xD4B7,0x81FE,0xD4B8,0x81FF,0xD4B9,0x8200,0xD4BB,0x8201,0xD4BD,0x8202,0xD4BE,0x8203,0xD4BF,0x8204,0xD4C0,0x8205,0xD4C1,0x8206,0xD4C2,0x8207,0xD4C3,0x8208,0xD4C5,0x8209,0xD4C6,0x820A,0xD4C7,0x820B,0xD4C8,0x820C,0xD4C9,0x820D,
	0xD4CA,0x820E,0xD4CB,0x820F,0xD4CC,0x8210,0xD4CD,0x8211,0xD4CE,0x8212,0xD4CF,0x8213,0xD4D0,0x8214,0xD4D1,0x8215,0xD4D2,0x8216,0xD4D3,0x8217,0xD4D4,0x8218,0xD4D5,0x8219,0xD4D6,0x821A,0xD4D7,0x821B,0xD4D8,0x821C,0xD4D9,0x821D,
	0xD4DA,0x821E,0xD4DB,0x821F,0xD4DC,0x8220,0xD4DD,0x8221,0xD4DE,0x8222,0xD4DF,0x8223,0xD4E0,0x8224,0xD4E1,0x8225,0xD4E2,0x8226,0xD4E3,0x8227,0xD4E4,0x8228,0xD4E5,0x8229,0xD4E6,0x822A,0xD4E7,0x822B,0xD4E8,0x822C,0xD4E9,0x822D,
	0xD4EA,0x822E,0xD4EB,0x822F,0xD4EC,0x8230,0xD4ED,0x8231,0xD4EE,0x8232,0xD4EF,0x8233,0xD4F0,0x8234,0xD4F1,0x8235,0xD4F2,0x8236,0xD4F3,0x8237,0xD4F4,0x8238,0xD4F5,0x8239,0xD4F6,0x823A,0xD4F7,0x823B,0xD4F8,0x823C,0xD4F9,0x823D,
	0xD4FA,0x823E,0xD4FB,0x823F,0xD4FC,0x8240,0xD4FD,0x8241,0xD4FE,0x8242,0xD4FF,0x8243,0xD500,0x8244,0xD501,0x8245,0xD502,0x8246,0xD503,0x8247,0xD504,0x8248,0xD505,0x8249,0xD507,0x824A,0xD508,0x824B,0xD509,0x824C,0xD50A,0x824D,
	0xD50D,0x824E,0xD50E,0x824F,0xD50F,0x8250,0xD510,0x8251,0xD511,0x8252,0xD512,0x8253,0xD513,0x8254,0xD514,0x8255,0xD516,0x8256,0xD517,0x8257,0xD518,0x8258,0xD519,0x8259,0xD51A,0x825A,0xD51B,0x825B,0xD51C,0x825C,0xD51E,0x825D,
	0xD51F,0x825E,0xD520,0x825F,0xD521,0x8260,0xD522,0x8261,0xD523,0x8262,0xD524,0x8263,0xD525,0x8264,0xD526,0x8265,0xD527,0x8266,0xD528,0x8267,0xD529,0x8268,0xD52A,0x8269,0xD52B,0x826A,0xD52C,0x826B,0xD52D,0x826C,0xD52E,0x826D,
	0xD52F,0x826E,0xD530,0x826F,0xD531,0x8270,0xD532,0x8271,0xD533,0x8272,0xD534,0x8273,0xD535,0x8274,0xD536,0x8275,0xD537,0x8276,0xD538,0x8277,0xD539,0x8278,0xD53B,0x8279,0xD53C,0x827A,0xD53D,0x827B,0xD53E,0x827C,0xD540,0x827D,
	0xD541,0x827E,0xD542,0x827F,0xD543,0x8280,0xD544,0x8281,0xD546,0x8282,0xD54A,0x8283,0xD54B,0x8284,0xD54C,0x8285,0xD54D,0x8286,0xD54E,0x8287,0xD54F,0x8288,0xD550,0x8289,0xD552,0x828A,0xD553,0x828B,0xD554,0x828C,0xD555,0x828D,
	0xD556,0x828E,0xD557,0x828F,0xD558,0x8290,0xD559,0x8291,0xD55A,0x8292,0xD55B,0x8293,0xD55C,0x8294,0xD55D,0x8295,0xD55E,0x8296,0xD55F,0x8297,0xD560,0x8298,0xD561,0x8299,0xD562,0x829A,0xD563,0x829B,0xD564,0x829C,0xD565,0x829D,
	0xD566,0x829E,0xD567,0x829F,0xD568,0x82A0,0xD569,0x82A1,0xD56A,0x82A2,0xD56B,0x82A3,0xD56C,0x82A4,0xD56D,0x82A5,0xD56E,0x82A6,0xD56F,0x82A7,0xD570,0x82A8,0xD571,0x82A9,0xD572,0x82AA,0xD573,0x82AB,0xD574,0x82AC,0xD575,0x82AD,
	0xD576,0x82AE,0xD577,0x82AF,0xD578,0x82B0,0xD579,0x82B1,0xD57A,0x82B2,0xD57B,0x82B3,0xD57C,0x82B4,0xD57D,0x82B5,0xD57E,0x82B6,0xD57F,0x82B7,0xD580,0x82B8,0xD581,0x82B9,0xD582,0x82BA,0xD583,0x82BB,0xD584,0x82BC,0xD585,0x82BD,
	0xD586,0x82BE,0xD587,0x82BF,0xD588,0x82C0,0xD589,0x82C1,0xD58A,0x82C2,0xD58B,0x82C3,0xD58C,0x82C4,0xD58D,0x82C5,0xD58E,0x82C6,0xD58F,0x82C7,0xD590,0x82C8,0xD591,0x82C9,0xD592,0x82CA,0xD593,0x82CB,0xD594,0x82CC,0xD595,0x82CD,
	0xD596,0x82CE,0xD597,0x82CF,0xD598,0x82D0,0xD599,0x82D1,0xD59A,0x82D2,0xD59B,0x82D3,0xD59C,0x82D4,0xD59D,0x82D5,0xD59E,0x82D6,0xD59F,0x82D7,0xD5A0,0x82D8,0xD5A1,0x82D9,0xD5A2,0x82DA,0xD5A3,0x82DB,0xD5A4,0x82DC,0xD5A5,0x82DD,
	0xD5A6,0x82DE,0xD5A7,0x82DF,0xD5A8,0x82E0,0xD5A9,0x82E1,0xD5AA,0x82E2,0xD5AB,0x82E3,0xD5AC,0x82E4,0xD5AD,0x82E5,0xD5AE,0x82E6,0xD5AF,0x82E7,0xD5B0,0x82E8,0xD5B1,0x82E9,0xD5B2,0x82EA,0xD5B3,0x82EB,0xD5B4,0x82EC,0xD5B5,0x82ED,
	0xD5B6,0x82EE,0xD5B7,0x82EF,0xD5B8,0x82F0,0xD5B9,0x82F1,0xD5BA,0x82F2,0xD5BB,0x82F3,0xD5BC,0x82F4,0xD5BD,0x82F5,0xD5BE,0x82F6,0xD5BF,0x82F7,0xD5C0,0x82F8,0xD5C1,0x82F9,0xD5C2,0x82FA,0xD5C3,0x82FB,0xD5C4,0x82FC,0xD5C5,0x82FD,
	0xD5C6,0x82FE,0xD5C7,0x82FF,0xD5C8,0x8300,0xD5C9,0x8301,0xD5CA,0x8302,0xD5CB,0x8303,0xD5CC,0x8304,0xD5CD,0x8305,0xD5CE,0x8306,0xD5CF,0x8307,0xD5D0,0x8308,0xD5D1,0x8309,0xD5D2,0x830A,0xD5D3,0x830B,0xD5D4,0x830C,0xD5D5,0x830D,
	0xD5D6,0x830E,0xD5D7,0x830F,0xD5D8,0x8310,0xD5D9,0x8311,0xD5DA,0x8312,0xD5DB,0x8313,0xD5DC,0x8314,0xD5DD,0x8315,0xD5DE,0x8316,0xD5DF,0x8317,0xD5E0,0x8318,0xD5E1,0x8319,0xD5E2,0x831A,0xD5E3,0x831B,0xD5E4,0x831C,0xD5E5,0x831D,
	0xD5E6,0x831E,0xD5E7,0x831F,0xD5E8,0x8320,0xD5E9,0x8321,0xD5EA,0x8322,0xD5EB,0x8323,0xD5EC,0x8324,0xD5ED,0x8325,0xD5EE,0x8326,0xD5EF,0x8327,0xD5F0,0x8328,0xD5F1,0x8329,0xD5F2,0x832A,0xD5F3,0x832B,0xD5F4,0x832C,0xD5F5,0x832D,
	0xD5F6,0x832E,0xD5F7,0x832F,0xD5F8,0x8330,0xD5F9,0x8331,0xD5FA,0x8332,0xD5FB,0x8333,0xD5FC,0x8334,0xD5FD,0x8335,0xD5FE,0x8336,0xD5FF,0x8337,0xD600,0x8338,0xD601,0x8339,0xD602,0x833A,0xD603,0x833B,0xD604,0x833C,0xD605,0x833D,
	0xD606,0x833E,0xD607,0x833F,0xD608,0x8340,0xD609,0x8341,0xD60A,0x8342,0xD60B,0x8343,0xD60C,0x8344,0xD60D,0x8345,0xD60E,0x8346,0xD60F,0x8347,0xD610,0x8348,0xD611,0x8349,0xD612,0x834A,0xD613,0x834B,0xD614,0x834C,0xD615,0x834D,
	0xD616,0x834E,0xD617,0x834F,0xD618,0x8350,0xD619,0x8351,0xD61A,0x8352,0xD61B,0x8353,0xD61C,0x8354,0xD61D,0x8355,0xD61E,0x8356,0xD61F,0x8357,0xD620,0x8358,0xD621,0x8359,0xD622,0x835A,0xD623,0x835B,0xD624,0x835C,0xD625,0x835D,
	0xD626,0x835E,0xD627,0x835F,0xD628,0x8360,0xD629,0x8361,0xD62A,0x8362,0xD62B,0x8363,0xD62C,0x8364,0xD62D,0x8365,0xD62E,0x8366,0xD62F,0x8367,0xD630,0x8368,0xD631,0x8369,0xD632,0x836A,0xD633,0x836B,0xD634,0x836C,0xD635,0x836D,
	0xD636,0x836E,0xD637,0x836F,0xD638,0x8370,0xD639,0x8371,0xD63A,0x8372,0xD63B,0x8373,0xD63C,0x8374,0xD63D,0x8375,0xD63E,0x8376,0xD63F,0x8377,0xD640,0x8378,0xD641,0x8379,0xD642,0x837A,0xD643,0x837B,0xD644,0x837C,0xD645,0x837D,
	0xD646,0x837E,0xD647,0x837F,0xD648,0x8380,0xD649,0x8381,0xD64A,0x8382,0xD64B,0x8383,0xD64C,0x8384,0xD64D,0x8385,0xD64E,0x8386,0xD64F,0x8387,0xD650,0x8388,0xD651,0x8389,0xD652,0x838A,0xD653,0x838B,0xD654,0x838C,0xD655,0x838D,
	0xD656,0x838E,0xD657,0x838F,0xD658,0x8390,0xD659,0x8391,0xD65A,0x8392,0xD65B,0x8393,0xD65C,0x8394,0xD65D,0x8395,0xD65E,0x8396,0xD65F,0x8397,0xD660,0x8398,0xD661,0x8399,0xD662,0x839A,0xD663,0x839B,0xD664,0x839C,0xD665,0x839D,
	0xD666,0x839E,0xD667,0x839F,0xD668,0x83A0,0xD669,0x83A1,0xD66A,0x83A2,0xD66B,0x83A3,0xD66C,0x83A4,0xD66D,0x83A5,0xD66E,0x83A6,0xD66F,0x83A7,0xD670,0x83A8,0xD671,0x83A9,0xD672,0x83AA,0xD673,0x83AB,0xD674,0x83AC,0xD675,0x83AD,
	0xD676,0x83AE,0xD677,0x83AF,0xD678,0x83B0,0xD679,0x83B1,0xD67A,0x83B2,0xD67B,0x83B3,0xD67C,0x83B4,0xD67D,0x83B5,0xD67E,0x83B6,0xD67F,0x83B7,0xD680,0x83B8,0xD681,0x83B9,0xD682,0x83BA,0xD683,0x83BB,0xD684,0x83BC,0xD685,0x83BD,
	0xD686,0x83BE,0xD687,0x83BF,0xD688,0x83C0,0xD689,0x83C1,0xD68A,0x83C2,0xD68B,0x83C3,0xD68C,0x83C4,0xD68D,0x83C5,0xD68E,0x83C6,0xD68F,0x83C7,0xD690,0x83C8,0xD691,0x83C9,0xD692,0x83CA,0xD693,0x83CB,0xD694,0x83CC,0xD695,0x83CD,
	0xD696,0x83CE,0xD697,0x83CF,0xD698,0x83D0,0xD699,0x83D1,0xD69A,0x83D2,0xD69B,0x83D3,0xD69C,0x83D4,0xD69D,0x83D5,0xD69E,0x83D6,0xD69F,0x83D7,0xD6A0,0x83D8,0xD6A1,0x83D9,0xD6A2,0x83DA,0xD6A3,0x83DB,0xD6A4,0x83DC,0xD6A5,0x83DE,
	0xD6A8,0x83E0,0xD6A9,0x83E2,0xD6AA,0x83E4,0xD6AB,0x83E6,0xD6AC,0x83E8,0xD6AD,0x83EA,0xD6AE,0x83EC,0xD6AF,0x83EE,0xD6B0,0x83F0,0xD6B1,0x83F2,0xD6B2,0x83F4,0xD6B3,0x83F6,0xD6B4,0x83F8,0xD6B5,0x83FA,0xD6B6,0x83FC,0xD6B7,0x83FE,
	0xD6B8,0x8400,0xD6B9,0x8402,0xD6BA,0x8404,0xD6BB,0x8406,0xD6BC,0x8408,0xD6BD,0x840A,0xD6BE,0x840C,0xD6BF,0x840E,0xD6C0,0x8410,0xD6C1,0x8412,0xD6C2,0x8415,0xD6C3,0x8417,0xD6C4,0x8419,0xD6C5,0x841B,0xD6C6,0x841D,0xD6C7,0x841F,
	0xD6C8,0x8421,0xD6C9,0x8423,0xD6CA,0x8425,0xD6CB,0x8427,0xD6CC,0x8429,0xD6CD,0x842B,0xD6CE,0x842D,0xD6CF,0x842F,0xD6D0,0x8431,0xD6D1,0x8433,0xD6D2,0x8435,0xD6D3,0x8437,0xD6D4,0x8439,0xD6D5,0x843B,0xD6D6,0x843D,0xD6D7,0x843F,
	0xD6D8,0x8441,0xD6D9,0x8443,0xD6DA,0x8445,0xD6DB,0x8447,0xD6DC,0x844A,0xD6DD,0x844C,0xD6DE,0x844E,0xD6DF,0x8450,0xD6E0,0x8452,0xD6E1,0x8454,0xD6E2,0x8456,0xD6E3,0x8458,0xD6E4,0x845A,0xD6E5,0x845C,0xD6E6,0x845E,0xD6E7,0x8460,
	0xD6E8,0x8462,0xD6E9,0x8464,0xD6EA,0x8466,0xD6EB,0x8468,0xD6EC,0x846A,0xD6ED,0x846C,0xD6EE,0x846E,0xD6EF,0x8470,0xD6F0,0x8472,0xD6F1,0x8474,0xD6F2,0x8476,0xD6F3,0x8478,0xD6F4,0x847A,0xD6F5,0x847C,0xD6F6,0x847E,0xD6F7,0x8480,
	0xD6F8,0x8482,0xD6F9,0x8484,0xD6FA,0x8486,0xD6FB,0x8488,0xD6FC,0x848B,0xD6FD,0x848D,0xD6FE,0x848F,0xD6FF,0x8491,0xD700,0x8493,0xD701,0x8495,0xD702,0x8497,0xD703,0x8499,0xD704,0x849B,0xD705,0x849D,0xD706,0x849F,0xD707,0x84A1,
	0xD708,0x84A3,0xD709,0x84A5,0xD70A,0x84A7,0xD70B,0x84A9,0xD70C,0x84AB,0xD70D,0x84AD,0xD70E,0x84AF,0xD70F,0x84B1,0xD710,0x84B3,0xD711,0x84B5,0xD712,0x84B7,0xD713,0x84B9,0xD714,0x84BB,0xD715,0x84BD,0xD716,0x84C0,0xD717,0x84C2,
	0xD718,0x84C4,0xD719,0x84C6,0xD71A,0x84C8,0xD71B,0x84CA,0xD71C,0x84CC,0xD71D,0x84CE,0xD71E,0x84D0,0xD71F,0x84D2,0xD720,0x84D4,0xD721,0x84D6,0xD722,0x84D8,0xD723,0x84DA,0xD724,0x84DC,0xD725,0x84DE,0xD726,0x84E0,0xD727,0x84E2,
	0xD728,0x84E4,0xD729,0x84E6,0xD72A,0x84E8,0xD72B,0x84EA,0xD72C,0x84EC,0xD72D,0x84EE,0xD72E,0x84F0,0xD72F,0x84F2,0xD730,0x84F4,0xD731,0x84F6,0xD732,0x84F8,0xD733,0x84FA,0xD734,0x84FC,0xD735,0x84FE,0xD736,0x8501,0xD737,0x8503,
	0xD738,0x8505,0xD739,0x8507,0xD73A,0x8509,0xD73B,0x850B,0xD73C,0x850D,0xD73D,0x850F,0xD73E,0x8511,0xD73F,0x8513,0xD740,0x8515,0xD741,0x8517,0xD742,0x8519,0xD743,0x851B,0xD744,0x851D,0xD745,0x851F,0xD746,0x8521,0xD747,0x8523,
	0xD748,0x8525,0xD749,0x8527,0xD74A,0x8529,0xD74B,0x852B,0xD74C,0x852D,0xD74D,0x852F,0xD74E,0x8531,0xD74F,0x8533,0xD750,0x8536,0xD751,0x8538,0xD752,0x853A,0xD753,0x853C,0xD754,0x853E,0xD755,0x8540,0xD756,0x8542,0xD757,0x8544,
	0xD758,0x8546,0xD759,0x8548,0xD75A,0x854A,0xD75B,0x854C,0xD75C,0x854E,0xD75D,0x8550,0xD75E,0x8552,0xD75F,0x8554,0xD760,0x8556,0xD761,0x8558,0xD762,0x855A,0xD763,0x855C,0xD764,0x855E,0xD765,0x8560,0xD766,0x8562,0xD767,0x8564,
	0xD768,0x8566,0xD769,0x8568,0xD76A,0x856A,0xD76B,0x856C,0xD76C,0x856E,0xD76D,0x8570,0xD76E,0x8572,0xD76F,0x8574,0xD770,0x8577,0xD771,0x8579,0xD772,0x857B,0xD773,0x857D,0xD774,0x857F,0xD775,0x8581,0xD776,0x8583,0xD777,0x8585,
	0xD778,0x8587,0xD779,0x8589,0xD77A,0x858B,0xD77B,0x858D,0xD77C,0x858F,0xD77D,0x8591,0xD77E,0x8593,0xD77F,0x8595,0xD780,0x8597,0xD781,0x8599,0xD782,0x859B,0xD783,0x859D,0xD784,0x859F,0xD785,0x85A1,0xD786,0x85A3,0xD787,0x85A5,
	0xD788,0x85A7,0xD789,0x85A9,0xD78A,0x85AC,0xD78B,0x85AE,0xD78C,0x85B0,0xD78D,0x85B2,0xD78E,0x85B4,0xD78F,0x85B6,0xD790,0x85B8,0xD791,0x85BA,0xD792,0x85BC,0xD793,0x85BE,0xD794,0x85C0,0xD795,0x85C2,0xD796,0x85C4,0xD797,0x85C6,
	0xD798,0x85C8,0xD799,0x85CA,0xD79A,0x85CC,0xD79B,0x85CE,0xD79C,0x85D0,0xD79D,0x85D2,0xD79E,0x85D4,0xD79F,0x85D6,0xD7A0,0x85D8,0xD7A1,0x85DA,0xD7A2,0x85DC,0xD7A3,0x85DE,0xD7A4,0x85E0,0xD7A5,0x85E2,0xD7A6,0x85E4,0xD7A7,0x85E6,
	0xD7A8,0x85E8,0xD7A9,0x85EA,0xD7AA,0x85ED,0xD7AB,0x85EF,0xD7AC,0x85F1,0xD7AD,0x85F3,0xD7AE,0x85F5,0xD7AF,0x85F7,0xD7B0,0x85F9,0xD7B1,0x85FB,0xD7B2,0x85FD,0xD7B3,0x85FF,0xD7B4,0x8601,0xD7B5,0x8603,0xD7B6,0x8605,0xD7B7,0x8607,
	0xD7B8,0x8609,0xD7B9,0x860B,0xD7BA,0x860D,0xD7BB,0x860F,0xD7BC,0x8611,0xD7BD,0x8613,0xD7BE,0x8615,0xD7BF,0x8617,0xD7C0,0x8619,0xD7C1,0x861B,0xD7C2,0x861D,0xD7C3,0x861F,0xD7C4,0x8622,0xD7C5,0x8624,0xD7C6,0x8626,0xD7C7,0x8628,
	0xD7C8,0x862A,0xD7C9,0x862C,0xD7CA,0x862E,0xD7CB,0x8630,0xD7CE,0x8632,0xD7CF,0x8633,0xD7D0,0x8634,0xD7D1,0x8635,0xD7D2,0x8636,0xD7D3,0x8637,0xD7D4,0x8638,0xD7D5,0x8639,0xD7D6,0x863A,0xD7D7,0x863B,0xD7D8,0x863C,0xD7D9,0x863D,
	0xD7DA,0x863E,0xD7DB,0x863F,0xD7DC,0x8640,0xD7DD,0x8641,0xD7DE,0x8642,0xD7DF,0x8643,0xD7E0,0x8644,0xD7E1,0x8645,0xD7E2,0x8646,0xD7E3,0x8647,0xD7E4,0x8648,0xD7E5,0x8649,0xD7E6,0x864A,0xD7E7,0x864B,0xD7E8,0x864C,0xD7E9,0x864D,
	0xD7EA,0x864E,0xD7EB,0x864F,0xD7EC,0x8650,0xD7ED,0x8651,0xD7EE,0x8652,0xD7EF,0x8653,0xD7F0,0x8654,0xD7F1,0x8655,0xD7F2,0x8656,0xD7F3,0x8657,0xD7F4,0x8658,0xD7F5,0x8659,0xD7F6,0x865A,0xD7F7,0x865B,0xD7F8,0x865C,0xD7F9,0x865D,
	0xD7FA,0x865E,0xD7FB,0x865F,0xD7FC,0x8660,0xD7FD,0x8661,0xD7FE,0x8662,0xD7FF,0x8663,0xEE00,0x8664,0xEE01,0x8666,0xEE02,0x8668,0xEE03,0x866A,0xEE05,0x866C,0xEE06,0x866E,0xEE07,0x8670,0xEE08,0x8672,0xEE09,0x8674,0xEE0A,0x8676,
	0xEE0B,0x8678,0xEE0C,0x867A,0xEE0D,0x867C,0xEE0E,0x867E,0xEE0F,0x8680,0xEE10,0x8682,0xEE11,0x8684,0xEE12,0x8686,0xEE13,0x8688,0xEE14,0x868A,0xEE15,0x868C,0xEE16,0x868E,0xEE17,0x8690,0xEE18,0x8692,0xEE19,0x8694,0xEE1A,0x8696,
	0xEE1B,0x8698,0xEE1C,0x869A,0xEE1D,0x869C,0xEE1E,0x869E,0xEE1F,0x86A0,0xEE21,0x86A2,0xEE22,0x86A4,0xEE24,0x86A6,0xEE27,0x86A8,0xEE29,0x86AA,0xEE2A,0x86AC,0xEE2B,0x86AE,0xEE2C,0x86B0,0xEE2D,0x86B2,0xEE2E,0x86B4,0xEE2F,0x86B6,
	0xEE30,0x86B8,0xEE31,0x86BA,0xEE32,0x86BC,0xEE34,0x86BE,0xEE35,0x86C0,0xEE36,0x86C2,0xEE37,0x86C4,0xEE39,0x86C6,0xEE3B,0x86C8,0xEE42,0x86CA,0xEE47,0x86CC,0xEE49,0x86CE,0xEE4B,0x86D0,0xEE4D,0x86D2,0xEE4E,0x86D4,0xEE4F,0x86D6,
	0xEE51,0x86D8,0xEE52,0x86DA,0xEE54,0x86DC,0xEE57,0x86DE,0xEE59,0x86E0,0xEE5B,0x86E2,0xEE5D,0x86E4,0xEE5F,0x86E6,0xEE61,0x86E8,0xEE62,0x86EA,0xEE64,0x86EC,0xEE67,0x86EE,0xEE68,0x86F0,0xEE69,0x86F2,0xEE6A,0x86F4,0xEE6C,0x86F6,
	0xEE6D,0x86F8,0xEE6E,0x86FA,0xEE6F,0x86FC,0xEE70,0x86FE,0xEE71,0x8700,0xEE72,0x8702,0xEE74,0x8704,0xEE75,0x8706,0xEE76,0x8708,0xEE77,0x870A,0xEE79,0x870C,0xEE7A,0x870E,0xEE7B,0x8710,0xEE7C,0x8712,0xEE7E,0x8714,0xEE80,0x8716,
	0xEE81,0x8718,0xEE82,0x871A,0xEE83,0x871C,0xEE84,0x871E,0xEE85,0x8720,0xEE86,0x8722,0xEE87,0x8724,0xEE88,0x8726,0xEE89,0x8728,0xEE8B,0x872A,0xEE8C,0x872C,0xEE8D,0x872E,0xEE8E,0x8730,0xEE8F,0x8732,0xEE90,0x8734,0xEE91,0x8736,
	0xEE92,0x8738,0xEE93,0x873A,0xEE94,0x873C,0xEE95,0x873E,0xEE96,0x8740,0xEE97,0x8742,0xEE98,0x8744,0xEE99,0x8746,0xEE9A,0x8748,0xEE9B,0x874A,0xEEA1,0x874C,0xEEA2,0x874E,0xEEA3,0x8750,0xEEA5,0x8752,0xEEA6,0x8754,0xEEA7,0x8756,
	0xEEA8,0x8758,0xEEA9,0x875A,0xEEAB,0x875C,0xEEAC,0x875E,0xEEAD,0x8760,0xEEAE,0x8762,0xEEAF,0x8764,0xEEB0,0x8766,0xEEB1,0x8768,0xEEB2,0x876A,0xEEB3,0x876C,0xEEB4,0x876E,0xEEB5,0x8770,0xEEB6,0x8772,0xEEB7,0x8774,0xEEB8,0x8776,
	0xEEB9,0x8778,0xEEBA,0x877A,0xEEBB,0x877C,0xF100,0x877E,0xF101,0x8780,0xF102,0x8782,0xF103,0x8784,0xF104,0x8786,0xF105,0x8788,0xF106,0x878A,0xF107,0x878C,0xF108,0x878E,0xF109,0x8790,0xF10A,0x8792,0xF110,0x8794,0xF111,0x8797,
	0xF112,0x879A,0xF113,0x879D,0xF114,0x87A0,0xF115,0x87A3,0xF116,0x87A6,0xF117,0x87A9,0xF118,0x87AC,0xF119,0x87AF,0xF11A,0x87B2,0xF11B,0x87B5,0xF11C,0x87B8,0xF11D,0x87BB,0xF11E,0x87BE,0xF11F,0x87C1,0xF120,0x87C4,0xF121,0x87C7,
	0xF122,0x87CA,0xF123,0x87CD,0xF124,0x87D0,0xF125,0x87D3,0xF126,0x87D6,0xF127,0x87D9,0xF128,0x87DC,0xF129,0x87DF,0xF12A,0x87E2,0xF12B,0x87E9,0xF12C,0x87EA,0xF12D,0x87EB,0xF12E,0x87ED,0xF130,0x87EF,0xF131,0x87F0,0xF132,0x87F1,
	0xF133,0x87F2,0xF134,0x87F3,0xF135,0x87F4,0xF136,0x87F5,0xF137,0x87F6,0xF138,0x87F7,0xF139,0x87F8,0xF13A,0x87F9,0xF13B,0x87FA,0xF13C,0x87FB,0xF13D,0x87FC,0xF13E,0x87FD,0xF13F,0x87FE,0xF140,0x87FF,0xF141,0x8800,0xF142,0x8801,
	0xF143,0x8802,0xF144,0x8803,0xF145,0x8804,0xF146,0x8805,0xF147,0x8806,0xF148,0x8807,0xF149,0x8808,0xF14A,0x8809,0xF14B,0x880B,0xF14C,0x880D,0xF14D,0x880F,0xF14E,0x8811,0xF14F,0x8814,0xF16A,0x8816,0xF16B,0x8818,0xF16C,0x881A,
	0xF190,0x881C,0xF200,0x881E,0xF201,0x8824,0xF202,0x882A,0xF210,0x882D,0xF211,0x8830,0xF212,0x8833,0xF213,0x8836,0xF214,0x8839,0xF215,0x883C,0xF216,0x883F,0xF217,0x8842,0xF218,0x8845,0xF219,0x8848,0xF21A,0x884B,0xF21B,0x884E,
	0xF21C,0x8851,0xF21D,0x8854,0xF21E,0x8857,0xF21F,0x885A,0xF220,0x885D,0xF221,0x8860,0xF222,0x8863,0xF223,0x8866,0xF224,0x8869,0xF225,0x886C,0xF226,0x886F,0xF227,0x8872,0xF228,0x8875,0xF229,0x8878,0xF22A,0x887B,0xF22B,0x887E,
	0xF22C,0x8881,0xF22D,0x8884,0xF22E,0x8887,0xF22F,0x888A,0xF230,0x888D,0xF231,0x8890,0xF232,0x8893,0xF233,0x8896,0xF234,0x8899,0xF235,0x889C,0xF236,0x889F,0xF237,0x88A2,0xF238,0x88A5,0xF239,0x88A8,0xF23A,0x88AB,0xF23B,0x88AE,
	0xF240,0x88B1,0xF241,0x88BA,0xF242,0x88C3,0xF243,0x88CC,0xF244,0x88D5,0xF245,0x88DE,0xF246,0x88E7,0xF247,0x88F0,0xF248,0x88F9,0xF250,0x8902,0xF251,0x8905,0xFBF0,0x8908,0xFBF1,0x8909,0xFBF2,0x890A,0xFBF3,0x890B,0xFBF4,0x890C,
	0xFBF5,0x890D,0xFBF6,0x890E,0xFBF7,0x890F,0xFBF8,0x8910,0xFBF9,0x8911,0xFFFF,0x0912,
};
#define mxDecompositionSize2 1731
const txU1 gxDecompositionData2[mxDecompositionSize2] ICACHE_XS6RO_ATTR = {
	0xe4,0xb8,0xbd,0xe4,0xb8,0xb8,0xe4,0xb9,0x81,0xf0,0xa0,0x84,0xa2,0xe4,0xbd,0xa0,0xe4,0xbe,0xae,0xe4,0xbe,0xbb,0xe5,0x80,0x82,0xe5,0x81,0xba,0xe5,0x82,0x99,0xe5,
	0x83,0xa7,0xe5,0x83,0x8f,0xe3,0x92,0x9e,0xf0,0xa0,0x98,0xba,0xe5,0x85,0x8d,0xe5,0x85,0x94,0xe5,0x85,0xa4,0xe5,0x85,0xb7,0xf0,0xa0,0x94,0x9c,0xe3,0x92,0xb9,0xe5,
	0x85,0xa7,0xe5,0x86,0x8d,0xf0,0xa0,0x95,0x8b,0xe5,0x86,0x97,0xe5,0x86,0xa4,0xe4,0xbb,0x8c,0xe5,0x86,0xac,0xe5,0x86,0xb5,0xf0,0xa9,0x87,0x9f,0xe5,0x87,0xb5,0xe5,
	0x88,0x83,0xe3,0x93,0x9f,0xe5,0x88,0xbb,0xe5,0x89,0x86,0xe5,0x89,0xb2,0xe5,0x89,0xb7,0xe3,0x94,0x95,0xe5,0x8b,0x87,0xe5,0x8b,0x89,0xe5,0x8b,0xa4,0xe5,0x8b,0xba,
	0xe5,0x8c,0x85,0xe5,0x8c,0x86,0xe5,0x8c,0x97,0xe5,0x8d,0x89,0xe5,0x8d,0x91,0xe5,0x8d,0x9a,0xe5,0x8d,0xb3,0xe5,0x8d,0xbd,0xe5,0x8d,0xbf,0xe5,0x8d,0xbf,0xe5,0x8d,
	0xbf,0xf0,0xa0,0xa8,0xac,0xe7,0x81,0xb0,0xe5,0x8f,0x8a,0xe5,0x8f,0x9f,0xf0,0xa0,0xad,0xa3,0xe5,0x8f,0xab,0xe5,0x8f,0xb1,0xe5,0x90,0x86,0xe5,0x92,0x9e,0xe5,0x90,
	0xb8,0xe5,0x91,0x88,0xe5,0x91,0xa8,0xe5,0x92,0xa2,0xe5,0x93,0xb6,0xe5,0x94,0x90,0xe5,0x95,0x93,0xe5,0x95,0xa3,0xe5,0x96,0x84,0xe5,0x96,0x84,0xe5,0x96,0x99,0xe5,
	0x96,0xab,0xe5,0x96,0xb3,0xe5,0x97,0x82,0xe5,0x9c,0x96,0xe5,0x98,0x86,0xe5,0x9c,0x97,0xe5,0x99,0x91,0xe5,0x99,0xb4,0xe5,0x88,0x87,0xe5,0xa3,0xae,0xe5,0x9f,0x8e,
	0xe5,0x9f,0xb4,0xe5,0xa0,0x8d,0xe5,0x9e,0x8b,0xe5,0xa0,0xb2,0xe5,0xa0,0xb1,0xe5,0xa2,0xac,0xf0,0xa1,0x93,0xa4,0xe5,0xa3,0xb2,0xe5,0xa3,0xb7,0xe5,0xa4,0x86,0xe5,
	0xa4,0x9a,0xe5,0xa4,0xa2,0xe5,0xa5,0xa2,0xf0,0xa1,0x9a,0xa8,0xf0,0xa1,0x9b,0xaa,0xe5,0xa7,0xac,0xe5,0xa8,0x9b,0xe5,0xa8,0xa7,0xe5,0xa7,0x98,0xe5,0xa9,0xa6,0xe3,
	0x9b,0xae,0xe3,0x9b,0xbc,0xe5,0xac,0x88,0xe5,0xac,0xbe,0xe5,0xac,0xbe,0xf0,0xa1,0xa7,0x88,0xe5,0xaf,0x83,0xe5,0xaf,0x98,0xe5,0xaf,0xa7,0xe5,0xaf,0xb3,0xf0,0xa1,
	0xac,0x98,0xe5,0xaf,0xbf,0xe5,0xb0,0x86,0xe5,0xbd,0x93,0xe5,0xb0,0xa2,0xe3,0x9e,0x81,0xe5,0xb1,0xa0,0xe5,0xb1,0xae,0xe5,0xb3,0x80,0xe5,0xb2,0x8d,0xf0,0xa1,0xb7,
	0xa4,0xe5,0xb5,0x83,0xf0,0xa1,0xb7,0xa6,0xe5,0xb5,0xae,0xe5,0xb5,0xab,0xe5,0xb5,0xbc,0xe5,0xb7,0xa1,0xe5,0xb7,0xa2,0xe3,0xa0,0xaf,0xe5,0xb7,0xbd,0xe5,0xb8,0xa8,
	0xe5,0xb8,0xbd,0xe5,0xb9,0xa9,0xe3,0xa1,0xa2,0xf0,0xa2,0x86,0x83,0xe3,0xa1,0xbc,0xe5,0xba,0xb0,0xe5,0xba,0xb3,0xe5,0xba,0xb6,0xe5,0xbb,0x8a,0xf0,0xaa,0x8e,0x92,
	0xe5,0xbb,0xbe,0xf0,0xa2,0x8c,0xb1,0xf0,0xa2,0x8c,0xb1,0xe8,0x88,0x81,0xe5,0xbc,0xa2,0xe5,0xbc,0xa2,0xe3,0xa3,0x87,0xf0,0xa3,0x8a,0xb8,0xf0,0xa6,0x87,0x9a,0xe5,
	0xbd,0xa2,0xe5,0xbd,0xab,0xe3,0xa3,0xa3,0xe5,0xbe,0x9a,0xe5,0xbf,0x8d,0xe5,0xbf,0x97,0xe5,0xbf,0xb9,0xe6,0x82,0x81,0xe3,0xa4,0xba,0xe3,0xa4,0x9c,0xe6,0x82,0x94,
	0xf0,0xa2,0x9b,0x94,0xe6,0x83,0x87,0xe6,0x85,0x88,0xe6,0x85,0x8c,0xe6,0x85,0x8e,0xe6,0x85,0x8c,0xe6,0x85,0xba,0xe6,0x86,0x8e,0xe6,0x86,0xb2,0xe6,0x86,0xa4,0xe6,
	0x86,0xaf,0xe6,0x87,0x9e,0xe6,0x87,0xb2,0xe6,0x87,0xb6,0xe6,0x88,0x90,0xe6,0x88,0x9b,0xe6,0x89,0x9d,0xe6,0x8a,0xb1,0xe6,0x8b,0x94,0xe6,0x8d,0x90,0xf0,0xa2,0xac,
	0x8c,0xe6,0x8c,0xbd,0xe6,0x8b,0xbc,0xe6,0x8d,0xa8,0xe6,0x8e,0x83,0xe6,0x8f,0xa4,0xf0,0xa2,0xaf,0xb1,0xe6,0x90,0xa2,0xe6,0x8f,0x85,0xe6,0x8e,0xa9,0xe3,0xa8,0xae,
	0xe6,0x91,0xa9,0xe6,0x91,0xbe,0xe6,0x92,0x9d,0xe6,0x91,0xb7,0xe3,0xa9,0xac,0xe6,0x95,0x8f,0xe6,0x95,0xac,0xf0,0xa3,0x80,0x8a,0xe6,0x97,0xa3,0xe6,0x9b,0xb8,0xe6,
	0x99,0x89,0xe3,0xac,0x99,0xe6,0x9a,0x91,0xe3,0xac,0x88,0xe3,0xab,0xa4,0xe5,0x86,0x92,0xe5,0x86,0x95,0xe6,0x9c,0x80,0xe6,0x9a,0x9c,0xe8,0x82,0xad,0xe4,0x8f,0x99,
	0xe6,0x9c,0x97,0xe6,0x9c,0x9b,0xe6,0x9c,0xa1,0xe6,0x9d,0x9e,0xe6,0x9d,0x93,0xf0,0xa3,0x8f,0x83,0xe3,0xad,0x89,0xe6,0x9f,0xba,0xe6,0x9e,0x85,0xe6,0xa1,0x92,0xe6,
	0xa2,0x85,0xf0,0xa3,0x91,0xad,0xe6,0xa2,0x8e,0xe6,0xa0,0x9f,0xe6,0xa4,0x94,0xe3,0xae,0x9d,0xe6,0xa5,0x82,0xe6,0xa6,0xa3,0xe6,0xa7,0xaa,0xe6,0xaa,0xa8,0xf0,0xa3,
	0x9a,0xa3,0xe6,0xab,0x9b,0xe3,0xb0,0x98,0xe6,0xac,0xa1,0xf0,0xa3,0xa2,0xa7,0xe6,0xad,0x94,0xe3,0xb1,0x8e,0xe6,0xad,0xb2,0xe6,0xae,0x9f,0xe6,0xae,0xba,0xe6,0xae,
	0xbb,0xf0,0xa3,0xaa,0x8d,0xf0,0xa1,0xb4,0x8b,0xf0,0xa3,0xab,0xba,0xe6,0xb1,0x8e,0xf0,0xa3,0xb2,0xbc,0xe6,0xb2,0xbf,0xe6,0xb3,0x8d,0xe6,0xb1,0xa7,0xe6,0xb4,0x96,
	0xe6,0xb4,0xbe,0xe6,0xb5,0xb7,0xe6,0xb5,0x81,0xe6,0xb5,0xa9,0xe6,0xb5,0xb8,0xe6,0xb6,0x85,0xf0,0xa3,0xb4,0x9e,0xe6,0xb4,0xb4,0xe6,0xb8,0xaf,0xe6,0xb9,0xae,0xe3,
	0xb4,0xb3,0xe6,0xbb,0x8b,0xe6,0xbb,0x87,0xf0,0xa3,0xbb,0x91,0xe6,0xb7,0xb9,0xe6,0xbd,0xae,0xf0,0xa3,0xbd,0x9e,0xf0,0xa3,0xbe,0x8e,0xe6,0xbf,0x86,0xe7,0x80,0xb9,
	0xe7,0x80,0x9e,0xe7,0x80,0x9b,0xe3,0xb6,0x96,0xe7,0x81,0x8a,0xe7,0x81,0xbd,0xe7,0x81,0xb7,0xe7,0x82,0xad,0xf0,0xa0,0x94,0xa5,0xe7,0x85,0x85,0xf0,0xa4,0x89,0xa3,
	0xe7,0x86,0x9c,0xf0,0xa4,0x8e,0xab,0xe7,0x88,0xa8,0xe7,0x88,0xb5,0xe7,0x89,0x90,0xf0,0xa4,0x98,0x88,0xe7,0x8a,0x80,0xe7,0x8a,0x95,0xf0,0xa4,0x9c,0xb5,0xf0,0xa4,
	0xa0,0x94,0xe7,0x8d,0xba,0xe7,0x8e,0x8b,0xe3,0xba,0xac,0xe7,0x8e,0xa5,0xe3,0xba,0xb8,0xe3,0xba,0xb8,0xe7,0x91,0x87,0xe7,0x91,0x9c,0xe7,0x91,0xb1,0xe7,0x92,0x85,
	0xe7,0x93,0x8a,0xe3,0xbc,0x9b,0xe7,0x94,0xa4,0xf0,0xa4,0xb0,0xb6,0xe7,0x94,0xbe,0xf0,0xa4,0xb2,0x92,0xe7,0x95,0xb0,0xf0,0xa2,0x86,0x9f,0xe7,0x98,0x90,0xf0,0xa4,
	0xbe,0xa1,0xf0,0xa4,0xbe,0xb8,0xf0,0xa5,0x81,0x84,0xe3,0xbf,0xbc,0xe4,0x80,0x88,0xe7,0x9b,0xb4,0xf0,0xa5,0x83,0xb3,0xf0,0xa5,0x83,0xb2,0xf0,0xa5,0x84,0x99,0xf0,
	0xa5,0x84,0xb3,0xe7,0x9c,0x9e,0xe7,0x9c,0x9f,0xe7,0x9c,0x9f,0xe7,0x9d,0x8a,0xe4,0x80,0xb9,0xe7,0x9e,0x8b,0xe4,0x81,0x86,0xe4,0x82,0x96,0xf0,0xa5,0x90,0x9d,0xe7,
	0xa1,0x8e,0xe7,0xa2,0x8c,0xe7,0xa3,0x8c,0xe4,0x83,0xa3,0xf0,0xa5,0x98,0xa6,0xe7,0xa5,0x96,0xf0,0xa5,0x9a,0x9a,0xf0,0xa5,0x9b,0x85,0xe7,0xa6,0x8f,0xe7,0xa7,0xab,
	0xe4,0x84,0xaf,0xe7,0xa9,0x80,0xe7,0xa9,0x8a,0xe7,0xa9,0x8f,0xf0,0xa5,0xa5,0xbc,0xf0,0xa5,0xaa,0xa7,0xf0,0xa5,0xaa,0xa7,0xe7,0xab,0xae,0xe4,0x88,0x82,0xf0,0xa5,
	0xae,0xab,0xe7,0xaf,0x86,0xe7,0xaf,0x89,0xe4,0x88,0xa7,0xf0,0xa5,0xb2,0x80,0xe7,0xb3,0x92,0xe4,0x8a,0xa0,0xe7,0xb3,0xa8,0xe7,0xb3,0xa3,0xe7,0xb4,0x80,0xf0,0xa5,
	0xbe,0x86,0xe7,0xb5,0xa3,0xe4,0x8c,0x81,0xe7,0xb7,0x87,0xe7,0xb8,0x82,0xe7,0xb9,0x85,0xe4,0x8c,0xb4,0xf0,0xa6,0x88,0xa8,0xf0,0xa6,0x89,0x87,0xe4,0x8d,0x99,0xf0,
	0xa6,0x8b,0x99,0xe7,0xbd,0xba,0xf0,0xa6,0x8c,0xbe,0xe7,0xbe,0x95,0xe7,0xbf,0xba,0xe8,0x80,0x85,0xf0,0xa6,0x93,0x9a,0xf0,0xa6,0x94,0xa3,0xe8,0x81,0xa0,0xf0,0xa6,
	0x96,0xa8,0xe8,0x81,0xb0,0xf0,0xa3,0x8d,0x9f,0xe4,0x8f,0x95,0xe8,0x82,0xb2,0xe8,0x84,0x83,0xe4,0x90,0x8b,0xe8,0x84,0xbe,0xe5,0xaa,0xb5,0xf0,0xa6,0x9e,0xa7,0xf0,
	0xa6,0x9e,0xb5,0xf0,0xa3,0x8e,0x93,0xf0,0xa3,0x8e,0x9c,0xe8,0x88,0x81,0xe8,0x88,0x84,0xe8,0xbe,0x9e,0xe4,0x91,0xab,0xe8,0x8a,0x91,0xe8,0x8a,0x8b,0xe8,0x8a,0x9d,
	0xe5,0x8a,0xb3,0xe8,0x8a,0xb1,0xe8,0x8a,0xb3,0xe8,0x8a,0xbd,0xe8,0x8b,0xa6,0xf0,0xa6,0xac,0xbc,0xe8,0x8b,0xa5,0xe8,0x8c,0x9d,0xe8,0x8d,0xa3,0xe8,0x8e,0xad,0xe8,
	0x8c,0xa3,0xe8,0x8e,0xbd,0xe8,0x8f,0xa7,0xe8,0x91,0x97,0xe8,0x8d,0x93,0xe8,0x8f,0x8a,0xe8,0x8f,0x8c,0xe8,0x8f,0x9c,0xf0,0xa6,0xb0,0xb6,0xf0,0xa6,0xb5,0xab,0xf0,
	0xa6,0xb3,0x95,0xe4,0x94,0xab,0xe8,0x93,0xb1,0xe8,0x93,0xb3,0xe8,0x94,0x96,0xf0,0xa7,0x8f,0x8a,0xe8,0x95,0xa4,0xf0,0xa6,0xbc,0xac,0xe4,0x95,0x9d,0xe4,0x95,0xa1,
	0xf0,0xa6,0xbe,0xb1,0xf0,0xa7,0x83,0x92,0xe4,0x95,0xab,0xe8,0x99,0x90,0xe8,0x99,0x9c,0xe8,0x99,0xa7,0xe8,0x99,0xa9,0xe8,0x9a,0xa9,0xe8,0x9a,0x88,0xe8,0x9c,0x8e,
	0xe8,0x9b,0xa2,0xe8,0x9d,0xb9,0xe8,0x9c,0xa8,0xe8,0x9d,0xab,0xe8,0x9e,0x86,0xe4,0x97,0x97,0xe8,0x9f,0xa1,0xe8,0xa0,0x81,0xe4,0x97,0xb9,0xe8,0xa1,0xa0,0xe8,0xa1,
	0xa3,0xf0,0xa7,0x99,0xa7,0xe8,0xa3,0x97,0xe8,0xa3,0x9e,0xe4,0x98,0xb5,0xe8,0xa3,0xba,0xe3,0x92,0xbb,0xf0,0xa7,0xa2,0xae,0xf0,0xa7,0xa5,0xa6,0xe4,0x9a,0xbe,0xe4,
	0x9b,0x87,0xe8,0xaa,0xa0,0xe8,0xab,0xad,0xe8,0xae,0x8a,0xe8,0xb1,0x95,0xf0,0xa7,0xb2,0xa8,0xe8,0xb2,0xab,0xe8,0xb3,0x81,0xe8,0xb4,0x9b,0xe8,0xb5,0xb7,0xf0,0xa7,
	0xbc,0xaf,0xf0,0xa0,0xa0,0x84,0xe8,0xb7,0x8b,0xe8,0xb6,0xbc,0xe8,0xb7,0xb0,0xf0,0xa0,0xa3,0x9e,0xe8,0xbb,0x94,0xe8,0xbc,0xb8,0xf0,0xa8,0x97,0x92,0xf0,0xa8,0x97,
	0xad,0xe9,0x82,0x94,0xe9,0x83,0xb1,0xe9,0x84,0x91,0xf0,0xa8,0x9c,0xae,0xe9,0x84,0x9b,0xe9,0x88,0xb8,0xe9,0x8b,0x97,0xe9,0x8b,0x98,0xe9,0x89,0xbc,0xe9,0x8f,0xb9,
	0xe9,0x90,0x95,0xf0,0xa8,0xaf,0xba,0xe9,0x96,0x8b,0xe4,0xa6,0x95,0xe9,0x96,0xb7,0xf0,0xa8,0xb5,0xb7,0xe4,0xa7,0xa6,0xe9,0x9b,0x83,0xe5,0xb6,0xb2,0xe9,0x9c,0xa3,
	0xf0,0xa9,0x85,0x85,0xf0,0xa9,0x88,0x9a,0xe4,0xa9,0xae,0xe4,0xa9,0xb6,0xe9,0x9f,0xa0,0xf0,0xa9,0x90,0x8a,0xe4,0xaa,0xb2,0xf0,0xa9,0x92,0x96,0xe9,0xa0,0x8b,0xe9,
	0xa0,0x8b,0xe9,0xa0,0xa9,0xf0,0xa9,0x96,0xb6,0xe9,0xa3,0xa2,0xe4,0xac,0xb3,0xe9,0xa4,0xa9,0xe9,0xa6,0xa7,0xe9,0xa7,0x82,0xe9,0xa7,0xbe,0xe4,0xaf,0x8e,0xf0,0xa9,
	0xac,0xb0,0xe9,0xac,0x92,0xe9,0xb1,0x80,0xe9,0xb3,0xbd,0xe4,0xb3,0x8e,0xe4,0xb3,0xad,0xe9,0xb5,0xa7,0xf0,0xaa,0x83,0x8e,0xe4,0xb3,0xb8,0xf0,0xaa,0x84,0x85,0xf0,
	0xaa,0x88,0x8e,0xf0,0xaa,0x8a,0x91,0xe9,0xba,0xbb,0xe4,0xb5,0x96,0xe9,0xbb,0xb9,0xe9,0xbb,0xbe,0xe9,0xbc,0x85,0xe9,0xbc,0x8f,0xe9,0xbc,0x96,0xe9,0xbc,0xbb,0xf0,
	0xaa,0x98,0x80,
};
#define mxDecompositionCount2 1086
static const txU2 gxDecompositionIndex2[mxDecompositionCount2] ICACHE_XS6RO_ATTR = {
	0xF800,0x0000,0xF801,0x0003,0xF802,0x0006,0xF803,0x0009,0xF804,0x000D,0xF805,0x0010,0xF806,0x0013,0xF807,0x0016,0xF808,0x0019,0xF809,0x001C,0xF80A,0x001F,0xF80B,0x0022,0xF80C,0x0025,0xF80D,0x0028,0xF80E,0x002C,0xF80F,0x002F,
	0xF810,0x0032,0xF811,0x0035,0xF812,0x0038,0xF813,0x003C,0xF814,0x003F,0xF815,0x0042,0xF816,0x0045,0xF817,0x0049,0xF818,0x004C,0xF819,0x004F,0xF81A,0x0052,0xF81B,0x0055,0xF81C,0x0058,0xF81D,0x005C,0xF81E,0x005F,0xF81F,0x0062,
	0xF820,0x0065,0xF821,0x0068,0xF822,0x006B,0xF823,0x006E,0xF824,0x0071,0xF825,0x0074,0xF826,0x0077,0xF827,0x007A,0xF828,0x007D,0xF829,0x0080,0xF82A,0x0083,0xF82B,0x0086,0xF82C,0x0089,0xF82D,0x008C,0xF82E,0x008F,0xF82F,0x0092,
	0xF830,0x0095,0xF831,0x0098,0xF832,0x009B,0xF833,0x009E,0xF834,0x00A1,0xF835,0x00A5,0xF836,0x00A8,0xF837,0x00AB,0xF838,0x00AE,0xF839,0x00B2,0xF83A,0x00B5,0xF83B,0x00B8,0xF83C,0x00BB,0xF83D,0x00BE,0xF83E,0x00C1,0xF83F,0x00C4,
	0xF840,0x00C7,0xF841,0x00CA,0xF842,0x00CD,0xF843,0x00D0,0xF844,0x00D3,0xF845,0x00D6,0xF846,0x00D9,0xF847,0x00DC,0xF848,0x00DF,0xF849,0x00E2,0xF84A,0x00E5,0xF84B,0x00E8,0xF84C,0x00EB,0xF84D,0x00EE,0xF84E,0x00F1,0xF84F,0x00F4,
	0xF850,0x00F7,0xF851,0x00FA,0xF852,0x00FD,0xF853,0x0100,0xF854,0x0103,0xF855,0x0106,0xF856,0x0109,0xF857,0x010C,0xF858,0x010F,0xF859,0x0112,0xF85A,0x0116,0xF85B,0x0119,0xF85C,0x011C,0xF85D,0x011F,0xF85E,0x0122,0xF85F,0x0125,
	0xF860,0x0128,0xF861,0x012C,0xF862,0x0130,0xF863,0x0133,0xF864,0x0136,0xF865,0x0139,0xF866,0x013C,0xF867,0x013F,0xF868,0x0142,0xF869,0x0145,0xF86A,0x0148,0xF86B,0x014B,0xF86C,0x014E,0xF86D,0x0152,0xF86E,0x0155,0xF86F,0x0158,
	0xF870,0x015B,0xF871,0x015E,0xF872,0x0162,0xF873,0x0165,0xF874,0x0168,0xF875,0x016B,0xF876,0x016E,0xF877,0x0171,0xF878,0x0174,0xF879,0x0177,0xF87A,0x017A,0xF87B,0x017D,0xF87C,0x0181,0xF87D,0x0184,0xF87E,0x0188,0xF87F,0x018B,
	0xF880,0x018E,0xF881,0x0191,0xF882,0x0194,0xF883,0x0197,0xF884,0x019A,0xF885,0x019D,0xF886,0x01A0,0xF887,0x01A3,0xF888,0x01A6,0xF889,0x01A9,0xF88A,0x01AD,0xF88B,0x01B0,0xF88C,0x01B3,0xF88D,0x01B6,0xF88E,0x01B9,0xF88F,0x01BC,
	0xF890,0x01C0,0xF891,0x01C3,0xF892,0x01C7,0xF893,0x01CB,0xF894,0x01CE,0xF895,0x01D1,0xF896,0x01D4,0xF897,0x01D7,0xF898,0x01DB,0xF899,0x01DF,0xF89A,0x01E2,0xF89B,0x01E5,0xF89C,0x01E8,0xF89D,0x01EB,0xF89E,0x01EE,0xF89F,0x01F1,
	0xF8A0,0x01F4,0xF8A1,0x01F7,0xF8A2,0x01FA,0xF8A3,0x01FD,0xF8A4,0x0200,0xF8A5,0x0204,0xF8A6,0x0207,0xF8A7,0x020A,0xF8A8,0x020D,0xF8A9,0x0210,0xF8AA,0x0213,0xF8AB,0x0216,0xF8AC,0x0219,0xF8AD,0x021C,0xF8AE,0x021F,0xF8AF,0x0222,
	0xF8B0,0x0225,0xF8B1,0x0228,0xF8B2,0x022B,0xF8B3,0x022E,0xF8B4,0x0231,0xF8B5,0x0234,0xF8B6,0x0237,0xF8B7,0x023A,0xF8B8,0x023D,0xF8B9,0x0241,0xF8BA,0x0244,0xF8BB,0x0247,0xF8BC,0x024A,0xF8BD,0x024D,0xF8BE,0x0250,0xF8BF,0x0254,
	0xF8C0,0x0257,0xF8C1,0x025A,0xF8C2,0x025D,0xF8C3,0x0260,0xF8C4,0x0263,0xF8C5,0x0266,0xF8C6,0x0269,0xF8C7,0x026C,0xF8C8,0x026F,0xF8C9,0x0272,0xF8CA,0x0275,0xF8CB,0x0279,0xF8CC,0x027C,0xF8CD,0x027F,0xF8CE,0x0282,0xF8CF,0x0285,
	0xF8D0,0x0288,0xF8D1,0x028B,0xF8D2,0x028E,0xF8D3,0x0291,0xF8D4,0x0294,0xF8D5,0x0297,0xF8D6,0x029A,0xF8D7,0x029D,0xF8D8,0x02A0,0xF8D9,0x02A3,0xF8DA,0x02A6,0xF8DB,0x02A9,0xF8DC,0x02AC,0xF8DD,0x02AF,0xF8DE,0x02B3,0xF8DF,0x02B6,
	0xF8E0,0x02B9,0xF8E1,0x02BC,0xF8E2,0x02BF,0xF8E3,0x02C2,0xF8E4,0x02C6,0xF8E5,0x02C9,0xF8E6,0x02CC,0xF8E7,0x02CF,0xF8E8,0x02D2,0xF8E9,0x02D5,0xF8EA,0x02D8,0xF8EB,0x02DB,0xF8EC,0x02DE,0xF8ED,0x02E2,0xF8EE,0x02E5,0xF8EF,0x02E8,
	0xF8F0,0x02EB,0xF8F1,0x02EF,0xF8F2,0x02F2,0xF8F3,0x02F5,0xF8F4,0x02F8,0xF8F5,0x02FB,0xF8F6,0x02FE,0xF8F7,0x0301,0xF8F8,0x0305,0xF8F9,0x0309,0xF8FA,0x030D,0xF8FB,0x0310,0xF8FC,0x0314,0xF8FD,0x0317,0xF8FE,0x031A,0xF8FF,0x031D,
	0xF900,0x0320,0xF901,0x0323,0xF902,0x0326,0xF903,0x0329,0xF904,0x032C,0xF905,0x032F,0xF906,0x0332,0xF907,0x0336,0xF908,0x0339,0xF909,0x033C,0xF90A,0x033F,0xF90B,0x0342,0xF90C,0x0345,0xF90D,0x0348,0xF90E,0x034C,0xF90F,0x034F,
	0xF910,0x0352,0xF911,0x0356,0xF912,0x035A,0xF913,0x035D,0xF914,0x0360,0xF915,0x0363,0xF916,0x0366,0xF917,0x0369,0xF918,0x036C,0xF919,0x036F,0xF91A,0x0372,0xF91B,0x0375,0xF91C,0x0379,0xF91D,0x037C,0xF91E,0x0380,0xF91F,0x0383,
	0xF920,0x0387,0xF921,0x038A,0xF922,0x038D,0xF923,0x0390,0xF924,0x0394,0xF925,0x0397,0xF926,0x039A,0xF927,0x039E,0xF928,0x03A2,0xF929,0x03A5,0xF92A,0x03A8,0xF92B,0x03AB,0xF92C,0x03AE,0xF92D,0x03B1,0xF92E,0x03B4,0xF92F,0x03B7,
	0xF930,0x03BA,0xF931,0x03BD,0xF932,0x03C0,0xF933,0x03C3,0xF934,0x03C6,0xF935,0x03C9,0xF936,0x03CD,0xF937,0x03D0,0xF938,0x03D4,0xF939,0x03D7,0xF93A,0x03DB,0xF93B,0x03DE,0xF93C,0x03E2,0xF93D,0x03E6,0xF93E,0x03EA,0xF93F,0x03ED,
	0xF940,0x03F0,0xF941,0x03F3,0xF942,0x03F7,0xF943,0x03FB,0xF944,0x03FF,0xF945,0x0403,0xF946,0x0406,0xF947,0x0409,0xF948,0x040C,0xF949,0x040F,0xF94A,0x0412,0xF94B,0x0415,0xF94C,0x0418,0xF94D,0x041B,0xF94E,0x041F,0xF94F,0x0422,
	0xF950,0x0425,0xF951,0x0428,0xF952,0x042B,0xF953,0x042F,0xF954,0x0432,0xF955,0x0436,0xF956,0x043A,0xF957,0x043D,0xF958,0x0440,0xF959,0x0443,0xF95A,0x0446,0xF95B,0x0449,0xF95C,0x044C,0xF95D,0x0450,0xF95E,0x0454,0xF95F,0x0458,
	0xF960,0x045B,0xF961,0x045E,0xF962,0x0462,0xF963,0x0465,0xF964,0x0468,0xF965,0x046B,0xF966,0x046F,0xF967,0x0472,0xF968,0x0475,0xF969,0x0478,0xF96A,0x047B,0xF96B,0x047E,0xF96C,0x0482,0xF96D,0x0485,0xF96E,0x0488,0xF96F,0x048B,
	0xF970,0x048E,0xF971,0x0491,0xF972,0x0494,0xF973,0x0498,0xF974,0x049C,0xF975,0x049F,0xF976,0x04A3,0xF977,0x04A6,0xF978,0x04AA,0xF979,0x04AD,0xF97A,0x04B0,0xF97B,0x04B3,0xF97C,0x04B7,0xF97D,0x04BB,0xF97E,0x04BE,0xF97F,0x04C2,
	0xF980,0x04C5,0xF981,0x04C9,0xF982,0x04CC,0xF983,0x04CF,0xF984,0x04D2,0xF985,0x04D5,0xF986,0x04D8,0xF987,0x04DB,0xF988,0x04DF,0xF989,0x04E3,0xF98A,0x04E7,0xF98B,0x04EB,0xF98C,0x04EE,0xF98D,0x04F1,0xF98E,0x04F4,0xF98F,0x04F7,
	0xF990,0x04FA,0xF991,0x04FD,0xF992,0x0500,0xF993,0x0503,0xF994,0x0506,0xF995,0x0509,0xF996,0x050C,0xF997,0x050F,0xF998,0x0513,0xF999,0x0516,0xF99A,0x0519,0xF99B,0x051C,0xF99C,0x051F,0xF99D,0x0522,0xF99E,0x0525,0xF99F,0x0528,
	0xF9A0,0x052B,0xF9A1,0x052E,0xF9A2,0x0531,0xF9A3,0x0534,0xF9A4,0x0537,0xF9A5,0x053B,0xF9A6,0x053F,0xF9A7,0x0543,0xF9A8,0x0546,0xF9A9,0x0549,0xF9AA,0x054C,0xF9AB,0x054F,0xF9AC,0x0553,0xF9AD,0x0556,0xF9AE,0x055A,0xF9AF,0x055D,
	0xF9B0,0x0560,0xF9B1,0x0564,0xF9B2,0x0568,0xF9B3,0x056B,0xF9B4,0x056E,0xF9B5,0x0571,0xF9B6,0x0574,0xF9B7,0x0577,0xF9B8,0x057A,0xF9B9,0x057D,0xF9BA,0x0580,0xF9BB,0x0583,0xF9BC,0x0586,0xF9BD,0x0589,0xF9BE,0x058C,0xF9BF,0x058F,
	0xF9C0,0x0592,0xF9C1,0x0595,0xF9C2,0x0598,0xF9C3,0x059B,0xF9C4,0x059E,0xF9C5,0x05A1,0xF9C6,0x05A5,0xF9C7,0x05A8,0xF9C8,0x05AB,0xF9C9,0x05AE,0xF9CA,0x05B1,0xF9CB,0x05B4,0xF9CC,0x05B8,0xF9CD,0x05BC,0xF9CE,0x05BF,0xF9CF,0x05C2,
	0xF9D0,0x05C5,0xF9D1,0x05C8,0xF9D2,0x05CB,0xF9D3,0x05CE,0xF9D4,0x05D2,0xF9D5,0x05D5,0xF9D6,0x05D8,0xF9D7,0x05DB,0xF9D8,0x05DE,0xF9D9,0x05E2,0xF9DA,0x05E6,0xF9DB,0x05E9,0xF9DC,0x05EC,0xF9DD,0x05EF,0xF9DE,0x05F3,0xF9DF,0x05F6,
	0xF9E0,0x05F9,0xF9E1,0x05FD,0xF9E2,0x0601,0xF9E3,0x0604,0xF9E4,0x0607,0xF9E5,0x060A,0xF9E6,0x060E,0xF9E7,0x0611,0xF9E8,0x0614,0xF9E9,0x0617,0xF9EA,0x061A,0xF9EB,0x061D,0xF9EC,0x0620,0xF9ED,0x0623,0xF9EE,0x0627,0xF9EF,0x062A,
	0xF9F0,0x062D,0xF9F1,0x0630,0xF9F2,0x0634,0xF9F3,0x0637,0xF9F4,0x063A,0xF9F5,0x063D,0xF9F6,0x0640,0xF9F7,0x0644,0xF9F8,0x0648,0xF9F9,0x064B,0xF9FA,0x064E,0xF9FB,0x0651,0xF9FC,0x0655,0xF9FD,0x0658,0xF9FE,0x065C,0xF9FF,0x065F,
	0xFA00,0x0662,0xFA01,0x0665,0xFA02,0x0669,0xFA03,0x066C,0xFA04,0x066F,0xFA05,0x0672,0xFA06,0x0675,0xFA07,0x0678,0xFA08,0x067B,0xFA09,0x067E,0xFA0A,0x0682,0xFA0B,0x0685,0xFA0C,0x0688,0xFA0D,0x068B,0xFA0E,0x068E,0xFA0F,0x0691,
	0xFA10,0x0694,0xFA11,0x0698,0xFA12,0x069B,0xFA13,0x069F,0xFA14,0x06A3,0xFA15,0x06A7,0xFA16,0x06AA,0xFA17,0x06AD,0xFA18,0x06B0,0xFA19,0x06B3,0xFA1A,0x06B6,0xFA1B,0x06B9,0xFA1C,0x06BC,0xFA1D,0x06BF,0xFFFF,0x06C3,
};
#define mxDecompositionBufferCount 18

#define mxSourceBufferCount 32

#define mxHangulSBase 0xAC00
#define mxHangulSCount 11172
#define mxHangulLBase 0x1100
#define mxHangulLCount 19
#define mxHangulVBase 0x1161
#define mxHangulVCount 21
#define mxHangulTBase 0x11A7
#define mxHangulTCount 28
#define mxHangulNCount 588

static int fxCompareCombination(const void *p1, const void *p2);
static int fxCompareComposition(const void *p1, const void *p2);
static txInteger fxGetCombinationOrder(txInteger character);
static txInteger fxGetCompositionPairs(txInteger character, txU2** pairs, txInteger* pairCount);
static txInteger fxGetCompositionStarterCode(txInteger character, txU2* pairs, txInteger pairCount);
static txInteger fxGetDecompositionBuffer(txInteger character, txInteger* buffer, txFlag compatible);
static void fxInsertDecomposition(txMachine* the, txNormalizeBuffer* buffer, txInteger at, txInteger code);
static void fxNormalizeComposition(txMachine* the, txNormalizeBuffer* buffer);
static void fxNormalizeDecomposition(txMachine* the, txNormalizeBuffer* buffer, txInteger* source, txInteger c, txFlag compatible);

int fxCompareCombination(const void *p1, const void *p2)
{
	txCombination* c1 = (txCombination*)p1;
	txCombination* c2 = (txCombination*)p2;
	if (c1->code + c1->count <= c2->code)
		return -1;
	if (c1->code >= c2->code + c2->count)
		return 1;
	return 0;
}

int fxCompareComposition(const void *p1, const void *p2)
{
	txU2 c1 = *((txU2*)p1);
	txU2 c2 = *((txU2*)p2);
	if (c1 < c2)
		return -1;
	if (c1 > c2)
		return 1;
	return 0;
}

txInteger fxGetCombinationOrder(txInteger character)
{
	txInteger count;
	txCombination *index, *it;
	txCombination combination;
	if (character < 0x10000) {
		count = mxCombinationCount0;
		index = (txCombination*)gxCombinationIndex0;
		combination.code = (txU2)character;
	}
	else {
		count = mxCombinationCount1;
		index = (txCombination*)gxCombinationIndex1;
		combination.code = (txU2)(character & 0xFFFF);
	}
	combination.count = 1;
	combination.order = 0;
	it = (txCombination*)bsearch(&combination, index, count, sizeof(txCombination), fxCompareCombination);
	if (it)
		return it->order;
	return 0;
}

txInteger fxGetCompositionPairs(txInteger character, txU2** pairs, txInteger* pairCount)
{
	txInteger count;
	txU2 *index, *data, code, *it;
	if (character < 0x10000) {
		count = mxCompositionCount0;
		index = (txU2*)gxCompositionIndex0;
		data = (txU2*)gxCompositionData0;
		code = (txU2)character;
	}
	else {
		count = mxCompositionCount1;
		index =(txU2*)gxCompositionIndex1;
		data = (txU2*)gxCompositionData1;
		code = (txU2)(character & 0xFFFF);
	}
	it = (txU2*)bsearch(&code, index, (count - 1) >> 1, sizeof(txU2) << 1, fxCompareComposition);
	if (it) {
		*pairs = data + (it[1] << 1);
		*pairCount = it[3] - it[1];
		return 1;
	}
	return 0;
}

txInteger fxGetCompositionStarterCode(txInteger character, txU2* pairs, txInteger pairCount)
{
	txU2 code, *it;
	txInteger plane;
	if (character < 0x10000) {
		code = (txU2)character;
		plane = 0;
	}
	else {
		code = (txU2)(character & 0xFFFF);
		plane = 0x10000;
	}
	it = (txU2*)bsearch(&code, pairs, pairCount, sizeof(txU2) << 1, fxCompareComposition);
	if (it)
		return ((txInteger)it[1]) | plane;
	return 0;
}

txInteger fxGetDecompositionBuffer(txInteger character, txInteger* buffer, txFlag compatible)
{
	txInteger count;
	txU2 *index, code, *it;
	txString data;
	if (character < 0x10000) {
		count = mxDecompositionCount0;
		index = (txU2*)gxDecompositionIndex0;
		data = (txString)gxDecompositionData0;
		code = (txU2)character;
	}
	else if (character < 0x20000) {
		count = mxDecompositionCount1;
		index = (txU2*)gxDecompositionIndex1;
		data = (txString)gxDecompositionData1;
		code = (txU2)(character & 0xFFFF);
	}
	else {
		count = mxDecompositionCount2;
		index = (txU2*)gxDecompositionIndex2;
		data = (txString)gxDecompositionData2;
		code = (txU2)(character & 0xFFFF);
	}
	it = (txU2*)bsearch(&code, index, (count - 1) >> 1, sizeof(txU2) << 1, fxCompareComposition);
	if (it) {
		txInteger offset = it[1];
		txString p, q;
		txInteger* r;
		if (offset & 0x8000) {
			if (!compatible)
				return 0;
			offset &= 0x7FFF;
		}
		p = data + offset;
		q = p + ((it[3] & 0x7FFF) - offset);
		r = buffer;
		while (p < q)
			p = fxUTF8Decode(p, r++);
		return mxPtrDiff(r - buffer);
	}
	return 0;
}

void fxInsertDecomposition(txMachine* the, txNormalizeBuffer* buffer, txInteger at, txInteger code)
{
	txInteger resultLength = fxGetArrayBufferLength(the, buffer->slot);
	if (buffer->count == resultLength >> 2) {
		fxSetArrayBufferLength(the, the->stack, resultLength + 64);
		buffer->address = fxToArrayBuffer(the, the->stack);
	}
	if (at < buffer->count)
		c_memmove(buffer->address + at + 1, buffer->address + at, (buffer->count - at) << 2);
	buffer->address[at] = code;
	buffer->count++;
}

void fxNormalizeComposition(txMachine* the, txNormalizeBuffer* buffer)
{
	txInteger fromIndex = 1;
	txInteger toIndex = 1;
	if (buffer->count < 2)
		return;
	while (fromIndex < buffer->count) {
		txBoolean flag = 1;
		txInteger code = buffer->address[fromIndex];
		txU2* pairs;
		txInteger pairCount;
		txInteger pairFlag;
		if ((mxHangulVBase <= code) && (code < mxHangulVBase + mxHangulVCount))
			pairFlag = 3;
		else if ((mxHangulTBase <= code) && (code < mxHangulTBase + mxHangulTCount))
			pairFlag = 2;
		else
			pairFlag = fxGetCompositionPairs(code, &pairs, &pairCount);
		if (pairFlag) {
			txInteger order = fxGetCombinationOrder(code);
			txInteger starterIndex = toIndex - 1;
			while (starterIndex >= 0) {
				txInteger starterCode = buffer->address[starterIndex];
				txInteger starterOrder = fxGetCombinationOrder(starterCode);
				if (starterOrder == 0) {
					if (pairFlag == 3) {
						if ((mxHangulLBase <= starterCode) && (starterCode < mxHangulLBase + mxHangulLCount)) {
							starterCode -= mxHangulLBase;
							code -= mxHangulVBase;
							buffer->address[starterIndex] = mxHangulSBase + (starterCode * mxHangulNCount) + (code * mxHangulTCount);
							flag = 0;
						}
					}
					else if (pairFlag == 2) {
						if ((mxHangulSBase <= starterCode) && (starterCode < mxHangulSBase + mxHangulSCount) 
								&& ((starterCode - mxHangulSBase) % mxHangulTCount == 0)) {
							buffer->address[starterIndex] = starterCode + code - mxHangulTBase;
							flag = 0;
						}
					}
					else {
						starterCode = fxGetCompositionStarterCode(starterCode, pairs, pairCount);
						if (starterCode) {
							buffer->address[starterIndex] = starterCode;
							flag = 0;
						}
					}
					break;
				}
				if (starterOrder >= order)
					break;
				starterIndex--;
			}
		}
		if (flag) {
			buffer->address[toIndex] = code;
			toIndex++;
		}
		fromIndex++;
	}
	buffer->count = toIndex;
}

void fxNormalizeDecomposition(txMachine* the, txNormalizeBuffer* buffer, txInteger* source, txInteger c, txFlag compatible)
{
	txInteger i;
	for (i = 0; i < c; i++) {
		txInteger code = source[i];
		if ((mxHangulSBase <= code) && (code < mxHangulSBase + mxHangulSCount)) {
			txInteger sIndex = code - mxHangulSBase;
			txInteger lIndex = sIndex / mxHangulNCount;
			txInteger vIndex = (sIndex % mxHangulNCount) / mxHangulTCount;
			txInteger tIndex = sIndex % mxHangulTCount;
			fxInsertDecomposition(the, buffer, buffer->count, mxHangulLBase + lIndex);
			fxInsertDecomposition(the, buffer, buffer->count, mxHangulVBase + vIndex);
			if (tIndex > 0)
				fxInsertDecomposition(the, buffer, buffer->count, mxHangulTBase + tIndex);
			buffer->starterIndex = buffer->count;
		}
		else {
			txInteger decompositionBuffer[mxDecompositionBufferCount];
			txInteger decompositionCount = fxGetDecompositionBuffer(code, decompositionBuffer, compatible);
			if (decompositionCount == 0) {
				txInteger order = fxGetCombinationOrder(code);
				if (order == 0) {
					fxInsertDecomposition(the, buffer, buffer->count, code);
					buffer->starterIndex = buffer->count;
				}
				else {
					txInteger bufferIndex = buffer->count - 1;
					txInteger starterIndex = buffer->starterIndex - 1;
					while (bufferIndex > starterIndex) {
						txInteger starterCode = buffer->address[bufferIndex];
						txInteger starterOrder = fxGetCombinationOrder(starterCode);
						if (starterOrder <= order) {
							fxInsertDecomposition(the, buffer, bufferIndex + 1, code);
							break;
						}
						bufferIndex--;
					}
					if (bufferIndex == starterIndex)
						fxInsertDecomposition(the, buffer, bufferIndex + 1, code);
				}
			}
			else
				fxNormalizeDecomposition(the, buffer, decompositionBuffer, decompositionCount, compatible);
		}
	}
}

void fxNormalizeString(txMachine* the, txSlot* string, txFlag form)
{
	txNormalizeBuffer _buffer;
	txNormalizeBuffer* buffer = &_buffer;
	txInteger source[mxSourceBufferCount];
	txString p;

	mxPushUndefined();
	buffer->slot = the->stack;
	buffer->address = fxArrayBuffer(the, the->stack, C_NULL, 64, 0x7FFFFFFF);
	buffer->count = 0;
	buffer->starterIndex = 0;

	p = string->value.string;
	for (;;) {
		txInteger* sourceAddress = source;
		txInteger sourceIndex = 0;
		while (sourceIndex < mxSourceBufferCount) {
			p = mxStringByteDecode(p, sourceAddress);
			if (*sourceAddress == C_EOF)
				break;
			sourceAddress++;
			sourceIndex++;
		}
		if (sourceIndex) {
			txInteger offset = mxPtrDiff(p - string->value.string);
			fxNormalizeDecomposition(the, buffer, source, sourceIndex, form & 1);
			p = string->value.string + offset;
		}
		if (sourceIndex < mxSourceBufferCount)
			break;
	}
	if (form & 2)
		fxNormalizeComposition(the, buffer);
	if (buffer->count) {
		txInteger resultIndex;
		txInteger stringLength = 0;
		for (resultIndex = 0; resultIndex < buffer->count; resultIndex++)
			stringLength += mxStringByteLength(buffer->address[resultIndex]);
		stringLength++;
		p = string->value.string = fxNewChunk(the, stringLength);
		buffer->address = fxToArrayBuffer(the, the->stack);
		for (resultIndex = 0; resultIndex < buffer->count; resultIndex++)
			p = mxStringByteEncode(p, buffer->address[resultIndex]);
		*p = 0;
	}
	
	mxPop();
}

#endif
