#include "Song.h"
#include "FTables.h"
#include "Effects.h"
#include "GlobHdr.h"

// Positive lobe of sinus wave
static const uint8_t Vibrato_Sin_Table[128] =
{0x00,0x06,0x0D,0x13,0x19,0x1F,0x25,0x2C,0x32,0x38,0x3E,0x44,0x4A,0x50,0x56,0x5C
,0x62,0x67,0x6D,0x73,0x78,0x7E,0x83,0x88,0x8E,0x93,0x98,0x9D,0xA2,0xA7,0xAB,0xB0
,0xB4,0xB9,0xBD,0xC1,0xC5,0xC9,0xCD,0xD0,0xD4,0xD7,0xDB,0xDE,0xE1,0xE4,0xE7,0xE9
,0xEC,0xEE,0xF0,0xF2,0xF4,0xF6,0xF7,0xF9,0xFa,0xFB,0xFC,0xFD,0xFE,0xFE,0xFF,0xFF
,0xFF,0xFF,0xFF,0xFE,0xFE,0xFD,0xFC,0xFB,0xFA,0xF9,0xF7,0xF6,0xF4,0xF2,0xF0,0xEE
,0xEC,0xE9,0xE7,0xE4,0xE1,0xDE,0xDB,0xD7,0xD4,0xD0,0xCD,0xC9,0xC5,0xC1,0xBD,0xB9
,0xB4,0xB0,0xAB,0xA7,0xA2,0x9D,0x98,0x93,0x8E,0x88,0x83,0x7E,0x78,0x73,0x6D,0x67
,0x62,0x5C,0x56,0x50,0x4A,0x44,0x3E,0x38,0x32,0x2C,0x25,0x1F,0x19,0x13,0x0D,0x06
};

/*
 * In  - R0 vibrato type [0-7], + 0x10 if inverted
 *       R1 vibrato pos [0, 255]
 * Out - R0 vibrato value [-255,255]
 */
int32_t Get_VibratoValue(uint32_t type, uint32_t pos)
{
	int32_t val;

	pos &= 0xff;

	switch(type & 0x7) // get rid of extra flags
	{
		case vibrato_type_sin:
		{
			val = Vibrato_Sin_Table[pos & 0x7f];
			if (pos & 0x80)
				val = -val;
		}
		break;
		case vibrato_type_square:
		{
			val = 255;
			if (pos & 0x80)
				val = -val;
		}
		break;
		case vibrato_type_ramp:
		{
			pos ^= 0x80; // Start in the middle of the ramp
			val = (pos << 1) - 255;
		}
		break;
		case vibrato_type_rampdown:
		{
			val = 255 - (pos << 1);
		}
		break;
		case vibrato_type_random:
		{
			val = CRandom(Glb);
			val <<= 23;
			val >>= 23;
		}
		break;
		case vibrato_type_saw:
		{
			val = (pos + 64) << 1;
			if (val & 0x100)
			{
				pos = val & 0xff;
				val = 255 - (pos << 1);
			}
			else
			{
				pos = val & 0xff;
				val = (pos << 1) - 255;
			}
		}
		break;
		case vibrato_type_halfsquare:
		{
			val = 255;
			if (pos & 0x80)
				val = 0;
		}
		break;
		default:
			val = 0;
	}

	if (type & vibrato_type_inverted)
		return -val;

	return val;
}

// Table formula is (428*256*2^((72*256-x)/(12*256))
static const uint32_t Table_PeriodSemitone12256[12*256] =
{ 0x6B0000, 0x6AF9D2, 0x6AF3A4, 0x6AED77, 0x6AE74A, 0x6AE11D
, 0x6ADAF1, 0x6AD4C5, 0x6ACE9A, 0x6AC86E, 0x6AC244, 0x6ABC19
, 0x6AB5EF, 0x6AAFC5, 0x6AA99C, 0x6AA373, 0x6A9D4A, 0x6A9722
, 0x6A90FA, 0x6A8AD2, 0x6A84AB, 0x6A7E84, 0x6A785D, 0x6A7237
, 0x6A6C11, 0x6A65EC, 0x6A5FC7, 0x6A59A2, 0x6A537D, 0x6A4D59
, 0x6A4736, 0x6A4112, 0x6A3AEF, 0x6A34CD, 0x6A2EAA, 0x6A2888
, 0x6A2267, 0x6A1C45, 0x6A1625, 0x6A1004, 0x6A09E4, 0x6A03C4
, 0x69FDA4, 0x69F785, 0x69F167, 0x69EB48, 0x69E52A, 0x69DF0C
, 0x69D8EF, 0x69D2D2, 0x69CCB5, 0x69C699, 0x69C07D, 0x69BA62
, 0x69B446, 0x69AE2B, 0x69A811, 0x69A1F7, 0x699BDD, 0x6995C3
, 0x698FAA, 0x698992, 0x698379, 0x697D61, 0x697749, 0x697132
, 0x696B1B, 0x696504, 0x695EEE, 0x6958D8, 0x6952C2, 0x694CAD
, 0x694698, 0x694084, 0x693A6F, 0x69345C, 0x692E48, 0x692835
, 0x692222, 0x691C10, 0x6915FE, 0x690FEC, 0x6909DB, 0x6903C9
, 0x68FDB9, 0x68F7A8, 0x68F198, 0x68EB89, 0x68E57A, 0x68DF6B
, 0x68D95C, 0x68D34E, 0x68CD40, 0x68C732, 0x68C125, 0x68BB18
, 0x68B50C, 0x68AF00, 0x68A8F4, 0x68A2E8, 0x689CDD, 0x6896D3
, 0x6890C8, 0x688ABE, 0x6884B4, 0x687EAB, 0x6878A2, 0x687299
, 0x686C91, 0x686689, 0x686081, 0x685A7A, 0x685473, 0x684E6D
, 0x684867, 0x684261, 0x683C5B, 0x683656, 0x683051, 0x682A4D
, 0x682449, 0x681E45, 0x681841, 0x68123E, 0x680C3B, 0x680639
, 0x680037, 0x67FA35, 0x67F434, 0x67EE33, 0x67E832, 0x67E232
, 0x67DC32, 0x67D632, 0x67D033, 0x67CA34, 0x67C436, 0x67BE37
, 0x67B839, 0x67B23C, 0x67AC3F, 0x67A642, 0x67A045, 0x679A49
, 0x67944D, 0x678E52, 0x678857, 0x67825C, 0x677C62, 0x677668
, 0x67706E, 0x676A74, 0x67647B, 0x675E83, 0x67588A, 0x675292
, 0x674C9B, 0x6746A3, 0x6740AC, 0x673AB6, 0x6734BF, 0x672EC9
, 0x6728D4, 0x6722DE, 0x671CEA, 0x6716F5, 0x671101, 0x670B0D
, 0x670519, 0x66FF26, 0x66F933, 0x66F341, 0x66ED4F, 0x66E75D
, 0x66E16B, 0x66DB7A, 0x66D589, 0x66CF99, 0x66C9A9, 0x66C3B9
, 0x66BDCA, 0x66B7DB, 0x66B1EC, 0x66ABFD, 0x66A60F, 0x66A022
, 0x669A34, 0x669447, 0x668E5B, 0x66886E, 0x668282, 0x667C97
, 0x6676AB, 0x6670C0, 0x666AD6, 0x6664EB, 0x665F01, 0x665918
, 0x66532F, 0x664D46, 0x66475D, 0x664175, 0x663B8D, 0x6635A5
, 0x662FBE, 0x6629D7, 0x6623F1, 0x661E0B, 0x661825, 0x66123F
, 0x660C5A, 0x660675, 0x660091, 0x65FAAD, 0x65F4C9, 0x65EEE5
, 0x65E902, 0x65E31F, 0x65DD3D, 0x65D75B, 0x65D179, 0x65CB98
, 0x65C5B6, 0x65BFD6, 0x65B9F5, 0x65B415, 0x65AE36, 0x65A856
, 0x65A277, 0x659C98, 0x6596BA, 0x6590DC, 0x658AFE, 0x658521
, 0x657F44, 0x657967, 0x65738B, 0x656DAF, 0x6567D3, 0x6561F8
, 0x655C1D, 0x655642, 0x655068, 0x654A8E, 0x6544B4, 0x653EDB
, 0x653902, 0x653329, 0x652D51, 0x652779, 0x6521A2, 0x651BCA
, 0x6515F3, 0x65101D, 0x650A46, 0x650471, 0x64FE9B, 0x64F8C6
, 0x64F2F1, 0x64ED1C, 0x64E748, 0x64E174, 0x64DBA0, 0x64D5CD
, 0x64CFFA, 0x64CA28, 0x64C456, 0x64BE84, 0x64B8B2, 0x64B2E1
, 0x64AD10, 0x64A73F, 0x64A16F, 0x649B9F, 0x6495D0, 0x649001
, 0x648A32, 0x648463, 0x647E95, 0x6478C7, 0x6472FA, 0x646D2D
, 0x646760, 0x646193, 0x645BC7, 0x6455FB, 0x645030, 0x644A64
, 0x64449A, 0x643ECF, 0x643905, 0x64333B, 0x642D72, 0x6427A8
, 0x6421E0, 0x641C17, 0x64164F, 0x641087, 0x640AC0, 0x6404F8
, 0x63FF32, 0x63F96B, 0x63F3A5, 0x63EDDF, 0x63E81A, 0x63E254
, 0x63DC90, 0x63D6CB, 0x63D107, 0x63CB43, 0x63C580, 0x63BFBC
, 0x63B9FA, 0x63B437, 0x63AE75, 0x63A8B3, 0x63A2F1, 0x639D30
, 0x63976F, 0x6391AF, 0x638BEF, 0x63862F, 0x63806F, 0x637AB0
, 0x6374F1, 0x636F33, 0x636975, 0x6363B7, 0x635DF9, 0x63583C
, 0x63527F, 0x634CC3, 0x634707, 0x63414B, 0x633B8F, 0x6335D4
, 0x633019, 0x632A5F, 0x6324A4, 0x631EEA, 0x631931, 0x631378
, 0x630DBF, 0x630806, 0x63024E, 0x62FC96, 0x62F6DF, 0x62F127
, 0x62EB70, 0x62E5BA, 0x62E004, 0x62DA4E, 0x62D498, 0x62CEE3
, 0x62C92E, 0x62C379, 0x62BDC5, 0x62B811, 0x62B25E, 0x62ACAA
, 0x62A6F7, 0x62A145, 0x629B92, 0x6295E0, 0x62902F, 0x628A7E
, 0x6284CD, 0x627F1C, 0x62796C, 0x6273BC, 0x626E0C, 0x62685D
, 0x6262AE, 0x625CFF, 0x625751, 0x6251A3, 0x624BF5, 0x624648
, 0x62409A, 0x623AEE, 0x623541, 0x622F95, 0x6229EA, 0x62243E
, 0x621E93, 0x6218E8, 0x62133E, 0x620D94, 0x6207EA, 0x620241
, 0x61FC98, 0x61F6EF, 0x61F146, 0x61EB9E, 0x61E5F6, 0x61E04F
, 0x61DAA8, 0x61D501, 0x61CF5B, 0x61C9B4, 0x61C40E, 0x61BE69
, 0x61B8C4, 0x61B31F, 0x61AD7A, 0x61A7D6, 0x61A232, 0x619C8F
, 0x6196EC, 0x619149, 0x618BA6, 0x618604, 0x618062, 0x617AC0
, 0x61751F, 0x616F7E, 0x6169DD, 0x61643D, 0x615E9D, 0x6158FD
, 0x61535E, 0x614DBF, 0x614820, 0x614282, 0x613CE4, 0x613746
, 0x6131A9, 0x612C0C, 0x61266F, 0x6120D3, 0x611B37, 0x61159B
, 0x610FFF, 0x610A64, 0x6104CA, 0x60FF2F, 0x60F995, 0x60F3FB
, 0x60EE62, 0x60E8C8, 0x60E330, 0x60DD97, 0x60D7FF, 0x60D267
, 0x60CCCF, 0x60C738, 0x60C1A1, 0x60BC0B, 0x60B674, 0x60B0DE
, 0x60AB49, 0x60A5B4, 0x60A01F, 0x609A8A, 0x6094F6, 0x608F62
, 0x6089CE, 0x60843B, 0x607EA7, 0x607915, 0x607382, 0x606DF0
, 0x60685F, 0x6062CD, 0x605D3C, 0x6057AB, 0x60521B, 0x604C8B
, 0x6046FB, 0x60416B, 0x603BDC, 0x60364D, 0x6030BF, 0x602B30
, 0x6025A3, 0x602015, 0x601A88, 0x6014FB, 0x600F6E, 0x6009E2
, 0x600456, 0x5FFECA, 0x5FF93F, 0x5FF3B4, 0x5FEE29, 0x5FE89F
, 0x5FE315, 0x5FDD8B, 0x5FD802, 0x5FD279, 0x5FCCF0, 0x5FC767
, 0x5FC1DF, 0x5FBC57, 0x5FB6D0, 0x5FB149, 0x5FABC2, 0x5FA63B
, 0x5FA0B5, 0x5F9B2F, 0x5F95AA, 0x5F9024, 0x5F8A9F, 0x5F851B
, 0x5F7F96, 0x5F7A12, 0x5F748F, 0x5F6F0B, 0x5F6988, 0x5F6406
, 0x5F5E83, 0x5F5901, 0x5F537F, 0x5F4DFE, 0x5F487D, 0x5F42FC
, 0x5F3D7C, 0x5F37FB, 0x5F327C, 0x5F2CFC, 0x5F277D, 0x5F21FE
, 0x5F1C7F, 0x5F1701, 0x5F1183, 0x5F0C05, 0x5F0688, 0x5F010B
, 0x5EFB8E, 0x5EF612, 0x5EF096, 0x5EEB1A, 0x5EE59F, 0x5EE024
, 0x5EDAA9, 0x5ED52F, 0x5ECFB4, 0x5ECA3B, 0x5EC4C1, 0x5EBF48
, 0x5EB9CF, 0x5EB456, 0x5EAEDE, 0x5EA966, 0x5EA3EF, 0x5E9E77
, 0x5E9900, 0x5E938A, 0x5E8E13, 0x5E889D, 0x5E8328, 0x5E7DB2
, 0x5E783D, 0x5E72C8, 0x5E6D54, 0x5E67E0, 0x5E626C, 0x5E5CF8
, 0x5E5785, 0x5E5212, 0x5E4CA0, 0x5E472D, 0x5E41BB, 0x5E3C4A
, 0x5E36D8, 0x5E3167, 0x5E2BF7, 0x5E2686, 0x5E2116, 0x5E1BA7
, 0x5E1637, 0x5E10C8, 0x5E0B59, 0x5E05EB, 0x5E007D, 0x5DFB0F
, 0x5DF5A1, 0x5DF034, 0x5DEAC7, 0x5DE55A, 0x5DDFEE, 0x5DDA82
, 0x5DD516, 0x5DCFAB, 0x5DCA40, 0x5DC4D5, 0x5DBF6B, 0x5DBA01
, 0x5DB497, 0x5DAF2E, 0x5DA9C4, 0x5DA45C, 0x5D9EF3, 0x5D998B
, 0x5D9423, 0x5D8EBB, 0x5D8954, 0x5D83ED, 0x5D7E86, 0x5D7920
, 0x5D73BA, 0x5D6E54, 0x5D68EF, 0x5D638A, 0x5D5E25, 0x5D58C0
, 0x5D535C, 0x5D4DF8, 0x5D4895, 0x5D4332, 0x5D3DCF, 0x5D386C
, 0x5D330A, 0x5D2DA8, 0x5D2846, 0x5D22E5, 0x5D1D84, 0x5D1823
, 0x5D12C2, 0x5D0D62, 0x5D0802, 0x5D02A3, 0x5CFD44, 0x5CF7E5
, 0x5CF286, 0x5CED28, 0x5CE7CA, 0x5CE26C, 0x5CDD0F, 0x5CD7B2
, 0x5CD255, 0x5CCCF9, 0x5CC79D, 0x5CC241, 0x5CBCE5, 0x5CB78A
, 0x5CB22F, 0x5CACD5, 0x5CA77B, 0x5CA221, 0x5C9CC7, 0x5C976E
, 0x5C9215, 0x5C8CBC, 0x5C8764, 0x5C820C, 0x5C7CB4, 0x5C775C
, 0x5C7205, 0x5C6CAE, 0x5C6758, 0x5C6202, 0x5C5CAC, 0x5C5756
, 0x5C5201, 0x5C4CAC, 0x5C4757, 0x5C4203, 0x5C3CAF, 0x5C375B
, 0x5C3207, 0x5C2CB4, 0x5C2761, 0x5C220F, 0x5C1CBD, 0x5C176B
, 0x5C1219, 0x5C0CC8, 0x5C0777, 0x5C0226, 0x5BFCD6, 0x5BF786
, 0x5BF236, 0x5BECE6, 0x5BE797, 0x5BE248, 0x5BDCFA, 0x5BD7AB
, 0x5BD25E, 0x5BCD10, 0x5BC7C3, 0x5BC276, 0x5BBD29, 0x5BB7DC
, 0x5BB290, 0x5BAD45, 0x5BA7F9, 0x5BA2AE, 0x5B9D63, 0x5B9818
, 0x5B92CE, 0x5B8D84, 0x5B883B, 0x5B82F1, 0x5B7DA8, 0x5B785F
, 0x5B7317, 0x5B6DCF, 0x5B6887, 0x5B6340, 0x5B5DF8, 0x5B58B1
, 0x5B536B, 0x5B4E25, 0x5B48DF, 0x5B4399, 0x5B3E54, 0x5B390E
, 0x5B33CA, 0x5B2E85, 0x5B2941, 0x5B23FD, 0x5B1EBA, 0x5B1976
, 0x5B1433, 0x5B0EF1, 0x5B09AE, 0x5B046C, 0x5AFF2B, 0x5AF9E9
, 0x5AF4A8, 0x5AEF67, 0x5AEA27, 0x5AE4E7, 0x5ADFA7, 0x5ADA67
, 0x5AD528, 0x5ACFE9, 0x5ACAAA, 0x5AC56C, 0x5AC02E, 0x5ABAF0
, 0x5AB5B2, 0x5AB075, 0x5AAB38, 0x5AA5FC, 0x5AA0BF, 0x5A9B83
, 0x5A9648, 0x5A910C, 0x5A8BD1, 0x5A8696, 0x5A815C, 0x5A7C22
, 0x5A76E8, 0x5A71AE, 0x5A6C75, 0x5A673C, 0x5A6204, 0x5A5CCB
, 0x5A5793, 0x5A525B, 0x5A4D24, 0x5A47ED, 0x5A42B6, 0x5A3D7F
, 0x5A3849, 0x5A3313, 0x5A2DDE, 0x5A28A8, 0x5A2373, 0x5A1E3E
, 0x5A190A, 0x5A13D6, 0x5A0EA2, 0x5A096E, 0x5A043B, 0x59FF08
, 0x59F9D6, 0x59F4A3, 0x59EF71, 0x59EA40, 0x59E50E, 0x59DFDD
, 0x59DAAC, 0x59D57C, 0x59D04B, 0x59CB1B, 0x59C5EC, 0x59C0BC
, 0x59BB8D, 0x59B65F, 0x59B130, 0x59AC02, 0x59A6D4, 0x59A1A7
, 0x599C79, 0x59974D, 0x599220, 0x598CF4, 0x5987C7, 0x59829C
, 0x597D70, 0x597845, 0x59731A, 0x596DF0, 0x5968C5, 0x59639C
, 0x595E72, 0x595948, 0x59541F, 0x594EF7, 0x5949CE, 0x5944A6
, 0x593F7E, 0x593A57, 0x59352F, 0x593008, 0x592AE2, 0x5925BB
, 0x592095, 0x591B6F, 0x59164A, 0x591125, 0x590C00, 0x5906DB
, 0x5901B7, 0x58FC93, 0x58F76F, 0x58F24C, 0x58ED29, 0x58E806
, 0x58E2E3, 0x58DDC1, 0x58D89F, 0x58D37E, 0x58CE5C, 0x58C93B
, 0x58C41A, 0x58BEFA, 0x58B9DA, 0x58B4BA, 0x58AF9A, 0x58AA7B
, 0x58A55C, 0x58A03D, 0x589B1F, 0x589601, 0x5890E3, 0x588BC6
, 0x5886A9, 0x58818C, 0x587C6F, 0x587753, 0x587237, 0x586D1B
, 0x586800, 0x5862E4, 0x585DCA, 0x5858AF, 0x585395, 0x584E7B
, 0x584961, 0x584448, 0x583F2F, 0x583A16, 0x5834FE, 0x582FE5
, 0x582ACE, 0x5825B6, 0x58209F, 0x581B88, 0x581671, 0x58115A
, 0x580C44, 0x58072F, 0x580219, 0x57FD04, 0x57F7EF, 0x57F2DA
, 0x57EDC6, 0x57E8B2, 0x57E39E, 0x57DE8A, 0x57D977, 0x57D464
, 0x57CF52, 0x57CA3F, 0x57C52D, 0x57C01C, 0x57BB0A, 0x57B5F9
, 0x57B0E8, 0x57ABD8, 0x57A6C7, 0x57A1B8, 0x579CA8, 0x579798
, 0x579289, 0x578D7B, 0x57886C, 0x57835E, 0x577E50, 0x577942
, 0x577435, 0x576F28, 0x576A1B, 0x57650F, 0x576003, 0x575AF7
, 0x5755EB, 0x5750E0, 0x574BD5, 0x5746CA, 0x5741C0, 0x573CB5
, 0x5737AC, 0x5732A2, 0x572D99, 0x572890, 0x572387, 0x571E7F
, 0x571977, 0x57146F, 0x570F67, 0x570A60, 0x570559, 0x570053
, 0x56FB4C, 0x56F646, 0x56F140, 0x56EC3B, 0x56E736, 0x56E231
, 0x56DD2C, 0x56D828, 0x56D324, 0x56CE20, 0x56C91D, 0x56C419
, 0x56BF17, 0x56BA14, 0x56B512, 0x56B010, 0x56AB0E, 0x56A60D
, 0x56A10B, 0x569C0B, 0x56970A, 0x56920A, 0x568D0A, 0x56880A
, 0x56830B, 0x567E0B, 0x56790D, 0x56740E, 0x566F10, 0x566A12
, 0x566514, 0x566017, 0x565B1A, 0x56561D, 0x565120, 0x564C24
, 0x564728, 0x56422D, 0x563D31, 0x563836, 0x56333B, 0x562E41
, 0x562947, 0x56244D, 0x561F53, 0x561A5A, 0x561561, 0x561068
, 0x560B6F, 0x560677, 0x56017F, 0x55FC87, 0x55F790, 0x55F299
, 0x55EDA2, 0x55E8AC, 0x55E3B6, 0x55DEC0, 0x55D9CA, 0x55D4D5
, 0x55CFE0, 0x55CAEB, 0x55C5F6, 0x55C102, 0x55BC0E, 0x55B71B
, 0x55B227, 0x55AD34, 0x55A841, 0x55A34F, 0x559E5D, 0x55996B
, 0x559479, 0x558F88, 0x558A97, 0x5585A6, 0x5580B6, 0x557BC5
, 0x5576D6, 0x5571E6, 0x556CF7, 0x556807, 0x556319, 0x555E2A
, 0x55593C, 0x55544E, 0x554F60, 0x554A73, 0x554586, 0x554099
, 0x553BAD, 0x5536C1, 0x5531D5, 0x552CE9, 0x5527FE, 0x552313
, 0x551E28, 0x55193D, 0x551453, 0x550F69, 0x550A7F, 0x550596
, 0x5500AD, 0x54FBC4, 0x54F6DC, 0x54F1F3, 0x54ED0B, 0x54E824
, 0x54E33C, 0x54DE55, 0x54D96E, 0x54D488, 0x54CFA2, 0x54CABC
, 0x54C5D6, 0x54C0F1, 0x54BC0C, 0x54B727, 0x54B242, 0x54AD5E
, 0x54A87A, 0x54A396, 0x549EB3, 0x5499D0, 0x5494ED, 0x54900A
, 0x548B28, 0x548646, 0x548164, 0x547C83, 0x5477A1, 0x5472C1
, 0x546DE0, 0x546900, 0x546420, 0x545F40, 0x545A60, 0x545581
, 0x5450A2, 0x544BC4, 0x5446E5, 0x544207, 0x543D29, 0x54384C
, 0x54336F, 0x542E92, 0x5429B5, 0x5424D9, 0x541FFC, 0x541B21
, 0x541645, 0x54116A, 0x540C8F, 0x5407B4, 0x5402DA, 0x53FE00
, 0x53F926, 0x53F44C, 0x53EF73, 0x53EA9A, 0x53E5C1, 0x53E0E9
, 0x53DC10, 0x53D739, 0x53D261, 0x53CD8A, 0x53C8B2, 0x53C3DC
, 0x53BF05, 0x53BA2F, 0x53B559, 0x53B083, 0x53ABAE, 0x53A6D9
, 0x53A204, 0x539D2F, 0x53985B, 0x539387, 0x538EB3, 0x5389E0
, 0x53850D, 0x53803A, 0x537B67, 0x537695, 0x5371C3, 0x536CF1
, 0x536820, 0x53634F, 0x535E7E, 0x5359AD, 0x5354DD, 0x53500D
, 0x534B3D, 0x53466D, 0x53419E, 0x533CCF, 0x533800, 0x533332
, 0x532E64, 0x532996, 0x5324C8, 0x531FFB, 0x531B2E, 0x531661
, 0x531195, 0x530CC8, 0x5307FC, 0x530331, 0x52FE65, 0x52F99A
, 0x52F4CF, 0x52F005, 0x52EB3B, 0x52E671, 0x52E1A7, 0x52DCDE
, 0x52D814, 0x52D34B, 0x52CE83, 0x52C9BB, 0x52C4F2, 0x52C02B
, 0x52BB63, 0x52B69C, 0x52B1D5, 0x52AD0E, 0x52A848, 0x52A382
, 0x529EBC, 0x5299F6, 0x529531, 0x52906C, 0x528BA7, 0x5286E3
, 0x52821F, 0x527D5B, 0x527897, 0x5273D4, 0x526F11, 0x526A4E
, 0x52658B, 0x5260C9, 0x525C07, 0x525745, 0x525284, 0x524DC3
, 0x524902, 0x524441, 0x523F81, 0x523AC1, 0x523601, 0x523141
, 0x522C82, 0x5227C3, 0x522304, 0x521E46, 0x521988, 0x5214CA
, 0x52100C, 0x520B4F, 0x520692, 0x5201D5, 0x51FD19, 0x51F85C
, 0x51F3A0, 0x51EEE5, 0x51EA29, 0x51E56E, 0x51E0B3, 0x51DBF9
, 0x51D73E, 0x51D284, 0x51CDCA, 0x51C911, 0x51C458, 0x51BF9F
, 0x51BAE6, 0x51B62E, 0x51B175, 0x51ACBE, 0x51A806, 0x51A34F
, 0x519E98, 0x5199E1, 0x51952A, 0x519074, 0x518BBE, 0x518708
, 0x518253, 0x517D9E, 0x5178E9, 0x517434, 0x516F80, 0x516ACC
, 0x516618, 0x516165, 0x515CB1, 0x5157FE, 0x51534C, 0x514E99
, 0x5149E7, 0x514535, 0x514084, 0x513BD2, 0x513721, 0x513270
, 0x512DC0, 0x512910, 0x512460, 0x511FB0, 0x511B00, 0x511651
, 0x5111A2, 0x510CF4, 0x510845, 0x510397, 0x50FEE9, 0x50FA3C
, 0x50F58F, 0x50F0E2, 0x50EC35, 0x50E788, 0x50E2DC, 0x50DE30
, 0x50D984, 0x50D4D9, 0x50D02E, 0x50CB83, 0x50C6D8, 0x50C22E
, 0x50BD84, 0x50B8DA, 0x50B431, 0x50AF88, 0x50AADF, 0x50A636
, 0x50A18D, 0x509CE5, 0x50983D, 0x509396, 0x508EEE, 0x508A47
, 0x5085A0, 0x5080FA, 0x507C54, 0x5077AE, 0x507308, 0x506E62
, 0x5069BD, 0x506518, 0x506074, 0x505BCF, 0x50572B, 0x505287
, 0x504DE4, 0x504940, 0x50449D, 0x503FFA, 0x503B58, 0x5036B6
, 0x503214, 0x502D72, 0x5028D0, 0x50242F, 0x501F8E, 0x501AEE
, 0x50164D, 0x5011AD, 0x500D0D, 0x50086E, 0x5003CE, 0x4FFF2F
, 0x4FFA90, 0x4FF5F2, 0x4FF154, 0x4FECB6, 0x4FE818, 0x4FE37A
, 0x4FDEDD, 0x4FDA40, 0x4FD5A4, 0x4FD107, 0x4FCC6B, 0x4FC7CF
, 0x4FC334, 0x4FBE98, 0x4FB9FD, 0x4FB563, 0x4FB0C8, 0x4FAC2E
, 0x4FA794, 0x4FA2FA, 0x4F9E61, 0x4F99C7, 0x4F952E, 0x4F9096
, 0x4F8BFD, 0x4F8765, 0x4F82CD, 0x4F7E36, 0x4F799E, 0x4F7507
, 0x4F7070, 0x4F6BDA, 0x4F6744, 0x4F62AE, 0x4F5E18, 0x4F5982
, 0x4F54ED, 0x4F5058, 0x4F4BC4, 0x4F472F, 0x4F429B, 0x4F3E07
, 0x4F3973, 0x4F34E0, 0x4F304D, 0x4F2BBA, 0x4F2728, 0x4F2295
, 0x4F1E03, 0x4F1971, 0x4F14E0, 0x4F104F, 0x4F0BBE, 0x4F072D
, 0x4F029C, 0x4EFE0C, 0x4EF97C, 0x4EF4ED, 0x4EF05D, 0x4EEBCE
, 0x4EE73F, 0x4EE2B0, 0x4EDE22, 0x4ED994, 0x4ED506, 0x4ED079
, 0x4ECBEB, 0x4EC75E, 0x4EC2D2, 0x4EBE45, 0x4EB9B9, 0x4EB52D
, 0x4EB0A1, 0x4EAC16, 0x4EA78A, 0x4EA2FF, 0x4E9E75, 0x4E99EA
, 0x4E9560, 0x4E90D6, 0x4E8C4D, 0x4E87C3, 0x4E833A, 0x4E7EB1
, 0x4E7A29, 0x4E75A0, 0x4E7118, 0x4E6C91, 0x4E6809, 0x4E6382
, 0x4E5EFB, 0x4E5A74, 0x4E55ED, 0x4E5167, 0x4E4CE1, 0x4E485C
, 0x4E43D6, 0x4E3F51, 0x4E3ACC, 0x4E3647, 0x4E31C3, 0x4E2D3F
, 0x4E28BB, 0x4E2437, 0x4E1FB4, 0x4E1B31, 0x4E16AE, 0x4E122B
, 0x4E0DA9, 0x4E0927, 0x4E04A5, 0x4E0024, 0x4DFBA2, 0x4DF721
, 0x4DF2A1, 0x4DEE20, 0x4DE9A0, 0x4DE520, 0x4DE0A0, 0x4DDC21
, 0x4DD7A2, 0x4DD323, 0x4DCEA4, 0x4DCA26, 0x4DC5A7, 0x4DC12A
, 0x4DBCAC, 0x4DB82F, 0x4DB3B1, 0x4DAF35, 0x4DAAB8, 0x4DA63C
, 0x4DA1C0, 0x4D9D44, 0x4D98C8, 0x4D944D, 0x4D8FD2, 0x4D8B57
, 0x4D86DC, 0x4D8262, 0x4D7DE8, 0x4D796E, 0x4D74F5, 0x4D707C
, 0x4D6C03, 0x4D678A, 0x4D6312, 0x4D5E99, 0x4D5A21, 0x4D55AA
, 0x4D5132, 0x4D4CBB, 0x4D4844, 0x4D43CE, 0x4D3F57, 0x4D3AE1
, 0x4D366B, 0x4D31F5, 0x4D2D80, 0x4D290B, 0x4D2496, 0x4D2022
, 0x4D1BAD, 0x4D1739, 0x4D12C5, 0x4D0E52, 0x4D09DE, 0x4D056B
, 0x4D00F9, 0x4CFC86, 0x4CF814, 0x4CF3A2, 0x4CEF30, 0x4CEABE
, 0x4CE64D, 0x4CE1DC, 0x4CDD6B, 0x4CD8FB, 0x4CD48B, 0x4CD01B
, 0x4CCBAB, 0x4CC73C, 0x4CC2CC, 0x4CBE5D, 0x4CB9EF, 0x4CB580
, 0x4CB112, 0x4CACA4, 0x4CA837, 0x4CA3C9, 0x4C9F5C, 0x4C9AEF
, 0x4C9682, 0x4C9216, 0x4C8DAA, 0x4C893E, 0x4C84D2, 0x4C8067
, 0x4C7BFC, 0x4C7791, 0x4C7327, 0x4C6EBC, 0x4C6A52, 0x4C65E8
, 0x4C617F, 0x4C5D15, 0x4C58AC, 0x4C5443, 0x4C4FDB, 0x4C4B73
, 0x4C470B, 0x4C42A3, 0x4C3E3B, 0x4C39D4, 0x4C356D, 0x4C3106
, 0x4C2CA0, 0x4C2839, 0x4C23D3, 0x4C1F6D, 0x4C1B08, 0x4C16A3
, 0x4C123E, 0x4C0DD9, 0x4C0974, 0x4C0510, 0x4C00AC, 0x4BFC49
, 0x4BF7E5, 0x4BF382, 0x4BEF1F, 0x4BEABC, 0x4BE65A, 0x4BE1F7
, 0x4BDD95, 0x4BD934, 0x4BD4D2, 0x4BD071, 0x4BCC10, 0x4BC7AF
, 0x4BC34F, 0x4BBEEF, 0x4BBA8F, 0x4BB62F, 0x4BB1D0, 0x4BAD71
, 0x4BA912, 0x4BA4B3, 0x4BA055, 0x4B9BF6, 0x4B9798, 0x4B933B
, 0x4B8EDD, 0x4B8A80, 0x4B8623, 0x4B81C7, 0x4B7D6A, 0x4B790E
, 0x4B74B2, 0x4B7057, 0x4B6BFB, 0x4B67A0, 0x4B6345, 0x4B5EEA
, 0x4B5A90, 0x4B5636, 0x4B51DC, 0x4B4D82, 0x4B4929, 0x4B44D0
, 0x4B4077, 0x4B3C1E, 0x4B37C6, 0x4B336E, 0x4B2F16, 0x4B2ABE
, 0x4B2667, 0x4B2210, 0x4B1DB9, 0x4B1962, 0x4B150C, 0x4B10B6
, 0x4B0C60, 0x4B080A, 0x4B03B5, 0x4AFF60, 0x4AFB0B, 0x4AF6B6
, 0x4AF262, 0x4AEE0E, 0x4AE9BA, 0x4AE566, 0x4AE113, 0x4ADCC0
, 0x4AD86D, 0x4AD41A, 0x4ACFC8, 0x4ACB76, 0x4AC724, 0x4AC2D2
, 0x4ABE81, 0x4ABA30, 0x4AB5DF, 0x4AB18E, 0x4AAD3E, 0x4AA8EE
, 0x4AA49E, 0x4AA04E, 0x4A9BFF, 0x4A97B0, 0x4A9361, 0x4A8F12
, 0x4A8AC4, 0x4A8676, 0x4A8228, 0x4A7DDA, 0x4A798D, 0x4A7540
, 0x4A70F3, 0x4A6CA6, 0x4A685A, 0x4A640E, 0x4A5FC2, 0x4A5B76
, 0x4A572B, 0x4A52DF, 0x4A4E95, 0x4A4A4A, 0x4A45FF, 0x4A41B5
, 0x4A3D6B, 0x4A3922, 0x4A34D8, 0x4A308F, 0x4A2C46, 0x4A27FD
, 0x4A23B5, 0x4A1F6D, 0x4A1B25, 0x4A16DD, 0x4A1296, 0x4A0E4F
, 0x4A0A08, 0x4A05C1, 0x4A017A, 0x49FD34, 0x49F8EE, 0x49F4A9
, 0x49F063, 0x49EC1E, 0x49E7D9, 0x49E394, 0x49DF50, 0x49DB0B
, 0x49D6C7, 0x49D284, 0x49CE40, 0x49C9FD, 0x49C5BA, 0x49C177
, 0x49BD35, 0x49B8F2, 0x49B4B0, 0x49B06F, 0x49AC2D, 0x49A7EC
, 0x49A3AB, 0x499F6A, 0x499B29, 0x4996E9, 0x4992A9, 0x498E69
, 0x498A2A, 0x4985EA, 0x4981AB, 0x497D6C, 0x49792E, 0x4974F0
, 0x4970B1, 0x496C74, 0x496836, 0x4963F9, 0x495FBC, 0x495B7F
, 0x495742, 0x495306, 0x494ECA, 0x494A8E, 0x494652, 0x494217
, 0x493DDB, 0x4939A1, 0x493566, 0x49312B, 0x492CF1, 0x4928B7
, 0x49247E, 0x492044, 0x491C0B, 0x4917D2, 0x491399, 0x490F61
, 0x490B29, 0x4906F1, 0x4902B9, 0x48FE81, 0x48FA4A, 0x48F613
, 0x48F1DC, 0x48EDA6, 0x48E970, 0x48E53A, 0x48E104, 0x48DCCE
, 0x48D899, 0x48D464, 0x48D02F, 0x48CBFA, 0x48C7C6, 0x48C392
, 0x48BF5E, 0x48BB2B, 0x48B6F7, 0x48B2C4, 0x48AE91, 0x48AA5F
, 0x48A62C, 0x48A1FA, 0x489DC8, 0x489996, 0x489565, 0x489134
, 0x488D03, 0x4888D2, 0x4884A2, 0x488071, 0x487C42, 0x487812
, 0x4873E2, 0x486FB3, 0x486B84, 0x486755, 0x486327, 0x485EF8
, 0x485ACA, 0x48569D, 0x48526F, 0x484E42, 0x484A15, 0x4845E8
, 0x4841BB, 0x483D8F, 0x483963, 0x483537, 0x48310B, 0x482CE0
, 0x4828B5, 0x48248A, 0x48205F, 0x481C35, 0x48180B, 0x4813E1
, 0x480FB7, 0x480B8E, 0x480764, 0x48033B, 0x47FF13, 0x47FAEA
, 0x47F6C2, 0x47F29A, 0x47EE72, 0x47EA4A, 0x47E623, 0x47E1FC
, 0x47DDD5, 0x47D9AF, 0x47D588, 0x47D162, 0x47CD3C, 0x47C917
, 0x47C4F1, 0x47C0CC, 0x47BCA7, 0x47B883, 0x47B45E, 0x47B03A
, 0x47AC16, 0x47A7F2, 0x47A3CF, 0x479FAC, 0x479B89, 0x479766
, 0x479343, 0x478F21, 0x478AFF, 0x4786DD, 0x4782BC, 0x477E9A
, 0x477A79, 0x477659, 0x477238, 0x476E18, 0x4769F7, 0x4765D8
, 0x4761B8, 0x475D99, 0x475979, 0x47555A, 0x47513C, 0x474D1D
, 0x4748FF, 0x4744E1, 0x4740C3, 0x473CA6, 0x473889, 0x47346B
, 0x47304F, 0x472C32, 0x472816, 0x4723FA, 0x471FDE, 0x471BC2
, 0x4717A7, 0x47138C, 0x470F71, 0x470B56, 0x47073C, 0x470322
, 0x46FF08, 0x46FAEE, 0x46F6D4, 0x46F2BB, 0x46EEA2, 0x46EA89
, 0x46E671, 0x46E259, 0x46DE41, 0x46DA29, 0x46D611, 0x46D1FA
, 0x46CDE3, 0x46C9CC, 0x46C5B5, 0x46C19F, 0x46BD89, 0x46B973
, 0x46B55D, 0x46B148, 0x46AD32, 0x46A91D, 0x46A509, 0x46A0F4
, 0x469CE0, 0x4698CC, 0x4694B8, 0x4690A4, 0x468C91, 0x46887E
, 0x46846B, 0x468058, 0x467C46, 0x467834, 0x467422, 0x467010
, 0x466BFF, 0x4667EE, 0x4663DD, 0x465FCC, 0x465BBB, 0x4657AB
, 0x46539B, 0x464F8B, 0x464B7C, 0x46476C, 0x46435D, 0x463F4E
, 0x463B40, 0x463731, 0x463323, 0x462F15, 0x462B07, 0x4626FA
, 0x4622ED, 0x461EE0, 0x461AD3, 0x4616C6, 0x4612BA, 0x460EAE
, 0x460AA2, 0x460697, 0x46028B, 0x45FE80, 0x45FA75, 0x45F66B
, 0x45F260, 0x45EE56, 0x45EA4C, 0x45E642, 0x45E239, 0x45DE30
, 0x45DA26, 0x45D61E, 0x45D215, 0x45CE0D, 0x45CA05, 0x45C5FD
, 0x45C1F5, 0x45BDEE, 0x45B9E7, 0x45B5E0, 0x45B1D9, 0x45ADD3
, 0x45A9CC, 0x45A5C6, 0x45A1C1, 0x459DBB, 0x4599B6, 0x4595B1
, 0x4591AC, 0x458DA7, 0x4589A3, 0x45859F, 0x45819B, 0x457D97
, 0x457994, 0x457590, 0x45718D, 0x456D8B, 0x456988, 0x456586
, 0x456184, 0x455D82, 0x455980, 0x45557F, 0x45517E, 0x454D7D
, 0x45497C, 0x45457C, 0x45417C, 0x453D7C, 0x45397C, 0x45357C
, 0x45317D, 0x452D7E, 0x45297F, 0x452581, 0x452182, 0x451D84
, 0x451986, 0x451588, 0x45118B, 0x450D8E, 0x450991, 0x450594
, 0x450198, 0x44FD9B, 0x44F99F, 0x44F5A3, 0x44F1A8, 0x44EDAC
, 0x44E9B1, 0x44E5B6, 0x44E1BC, 0x44DDC1, 0x44D9C7, 0x44D5CD
, 0x44D1D3, 0x44CDDA, 0x44C9E0, 0x44C5E7, 0x44C1EF, 0x44BDF6
, 0x44B9FE, 0x44B605, 0x44B20D, 0x44AE16, 0x44AA1E, 0x44A627
, 0x44A230, 0x449E39, 0x449A43, 0x44964C, 0x449256, 0x448E60
, 0x448A6B, 0x448675, 0x448280, 0x447E8B, 0x447A97, 0x4476A2
, 0x4472AE, 0x446EBA, 0x446AC6, 0x4466D2, 0x4462DF, 0x445EEC
, 0x445AF9, 0x445706, 0x445314, 0x444F22, 0x444B30, 0x44473E
, 0x44434C, 0x443F5B, 0x443B6A, 0x443779, 0x443389, 0x442F98
, 0x442BA8, 0x4427B8, 0x4423C8, 0x441FD9, 0x441BEA, 0x4417FB
, 0x44140C, 0x44101D, 0x440C2F, 0x440841, 0x440453, 0x440065
, 0x43FC78, 0x43F88B, 0x43F49E, 0x43F0B1, 0x43ECC4, 0x43E8D8
, 0x43E4EC, 0x43E100, 0x43DD15, 0x43D929, 0x43D53E, 0x43D153
, 0x43CD68, 0x43C97E, 0x43C594, 0x43C1AA, 0x43BDC0, 0x43B9D6
, 0x43B5ED, 0x43B204, 0x43AE1B, 0x43AA32, 0x43A64A, 0x43A261
, 0x439E79, 0x439A92, 0x4396AA, 0x4392C3, 0x438EDC, 0x438AF5
, 0x43870E, 0x438328, 0x437F41, 0x437B5B, 0x437776, 0x437390
, 0x436FAB, 0x436BC6, 0x4367E1, 0x4363FC, 0x436018, 0x435C34
, 0x435850, 0x43546C, 0x435089, 0x434CA5, 0x4348C2, 0x4344DF
, 0x4340FD, 0x433D1A, 0x433938, 0x433556, 0x433175, 0x432D93
, 0x4329B2, 0x4325D1, 0x4321F0, 0x431E0F, 0x431A2F, 0x43164F
, 0x43126F, 0x430E8F, 0x430AB0, 0x4306D1, 0x4302F2, 0x42FF13
, 0x42FB34, 0x42F756, 0x42F378, 0x42EF9A, 0x42EBBC, 0x42E7DF
, 0x42E401, 0x42E024, 0x42DC48, 0x42D86B, 0x42D48F, 0x42D0B3
, 0x42CCD7, 0x42C8FB, 0x42C520, 0x42C144, 0x42BD69, 0x42B98F
, 0x42B5B4, 0x42B1DA, 0x42AE00, 0x42AA26, 0x42A64C, 0x42A273
, 0x429E99, 0x429AC0, 0x4296E8, 0x42930F, 0x428F37, 0x428B5F
, 0x428787, 0x4283AF, 0x427FD8, 0x427C00, 0x427829, 0x427453
, 0x42707C, 0x426CA6, 0x4268D0, 0x4264FA, 0x426124, 0x425D4F
, 0x425979, 0x4255A4, 0x4251D0, 0x424DFB, 0x424A27, 0x424653
, 0x42427F, 0x423EAB, 0x423AD7, 0x423704, 0x423331, 0x422F5E
, 0x422B8C, 0x4227B9, 0x4223E7, 0x422015, 0x421C44, 0x421872
, 0x4214A1, 0x4210D0, 0x420CFF, 0x42092F, 0x42055E, 0x42018E
, 0x41FDBE, 0x41F9EE, 0x41F61F, 0x41F250, 0x41EE81, 0x41EAB2
, 0x41E6E3, 0x41E315, 0x41DF47, 0x41DB79, 0x41D7AB, 0x41D3DD
, 0x41D010, 0x41CC43, 0x41C876, 0x41C4AA, 0x41C0DD, 0x41BD11
, 0x41B945, 0x41B579, 0x41B1AE, 0x41ADE2, 0x41AA17, 0x41A64C
, 0x41A282, 0x419EB7, 0x419AED, 0x419723, 0x419359, 0x418F90
, 0x418BC6, 0x4187FD, 0x418434, 0x41806C, 0x417CA3, 0x4178DB
, 0x417513, 0x41714B, 0x416D83, 0x4169BC, 0x4165F5, 0x41622E
, 0x415E67, 0x415AA1, 0x4156DA, 0x415314, 0x414F4F, 0x414B89
, 0x4147C3, 0x4143FE, 0x414039, 0x413C75, 0x4138B0, 0x4134EC
, 0x413128, 0x412D64, 0x4129A0, 0x4125DC, 0x412219, 0x411E56
, 0x411A93, 0x4116D1, 0x41130E, 0x410F4C, 0x410B8A, 0x4107C9
, 0x410407, 0x410046, 0x40FC85, 0x40F8C4, 0x40F503, 0x40F143
, 0x40ED83, 0x40E9C3, 0x40E603, 0x40E243, 0x40DE84, 0x40DAC5
, 0x40D706, 0x40D347, 0x40CF89, 0x40CBCB, 0x40C80D, 0x40C44F
, 0x40C091, 0x40BCD4, 0x40B917, 0x40B55A, 0x40B19D, 0x40ADE0
, 0x40AA24, 0x40A668, 0x40A2AC, 0x409EF0, 0x409B35, 0x40977A
, 0x4093BF, 0x409004, 0x408C49, 0x40888F, 0x4084D5, 0x40811B
, 0x407D61, 0x4079A8, 0x4075EE, 0x407235, 0x406E7C, 0x406AC4
, 0x40670B, 0x406353, 0x405F9B, 0x405BE3, 0x40582C, 0x405474
, 0x4050BD, 0x404D06, 0x40494F, 0x404599, 0x4041E3, 0x403E2D
, 0x403A77, 0x4036C1, 0x40330C, 0x402F56, 0x402BA1, 0x4027ED
, 0x402438, 0x402084, 0x401CD0, 0x40191C, 0x401568, 0x4011B4
, 0x400E01, 0x400A4E, 0x40069B, 0x4002E8, 0x3FFF36, 0x3FFB84
, 0x3FF7D2, 0x3FF420, 0x3FF06E, 0x3FECBD, 0x3FE90C, 0x3FE55B
, 0x3FE1AA, 0x3FDDFA, 0x3FDA49, 0x3FD699, 0x3FD2E9, 0x3FCF3A
, 0x3FCB8A, 0x3FC7DB, 0x3FC42C, 0x3FC07D, 0x3FBCCF, 0x3FB920
, 0x3FB572, 0x3FB1C4, 0x3FAE16, 0x3FAA69, 0x3FA6BB, 0x3FA30E
, 0x3F9F61, 0x3F9BB5, 0x3F9808, 0x3F945C, 0x3F90B0, 0x3F8D04
, 0x3F8958, 0x3F85AD, 0x3F8202, 0x3F7E57, 0x3F7AAC, 0x3F7702
, 0x3F7357, 0x3F6FAD, 0x3F6C03, 0x3F6859, 0x3F64B0, 0x3F6107
, 0x3F5D5D, 0x3F59B5, 0x3F560C, 0x3F5263, 0x3F4EBB, 0x3F4B13
, 0x3F476B, 0x3F43C4, 0x3F401C, 0x3F3C75, 0x3F38CE, 0x3F3527
, 0x3F3181, 0x3F2DDB, 0x3F2A34, 0x3F268E, 0x3F22E9, 0x3F1F43
, 0x3F1B9E, 0x3F17F9, 0x3F1454, 0x3F10AF, 0x3F0D0B, 0x3F0967
, 0x3F05C3, 0x3F021F, 0x3EFE7B, 0x3EFAD8, 0x3EF735, 0x3EF392
, 0x3EEFEF, 0x3EEC4C, 0x3EE8AA, 0x3EE508, 0x3EE166, 0x3EDDC4
, 0x3EDA23, 0x3ED681, 0x3ED2E0, 0x3ECF3F, 0x3ECB9F, 0x3EC7FE
, 0x3EC45E, 0x3EC0BE, 0x3EBD1E, 0x3EB97F, 0x3EB5DF, 0x3EB240
, 0x3EAEA1, 0x3EAB02, 0x3EA764, 0x3EA3C5, 0x3EA027, 0x3E9C89
, 0x3E98EB, 0x3E954E, 0x3E91B1, 0x3E8E13, 0x3E8A77, 0x3E86DA
, 0x3E833D, 0x3E7FA1, 0x3E7C05, 0x3E7869, 0x3E74CD, 0x3E7132
, 0x3E6D97, 0x3E69FC, 0x3E6661, 0x3E62C6, 0x3E5F2C, 0x3E5B92
, 0x3E57F8, 0x3E545E, 0x3E50C4, 0x3E4D2B, 0x3E4992, 0x3E45F9
, 0x3E4260, 0x3E3EC8, 0x3E3B2F, 0x3E3797, 0x3E33FF, 0x3E3068
, 0x3E2CD0, 0x3E2939, 0x3E25A2, 0x3E220B, 0x3E1E74, 0x3E1ADE
, 0x3E1747, 0x3E13B1, 0x3E101C, 0x3E0C86, 0x3E08F1, 0x3E055B
, 0x3E01C6, 0x3DFE32, 0x3DFA9D, 0x3DF709, 0x3DF374, 0x3DEFE0
, 0x3DEC4D, 0x3DE8B9, 0x3DE526, 0x3DE193, 0x3DDE00, 0x3DDA6D
, 0x3DD6DA, 0x3DD348, 0x3DCFB6, 0x3DCC24, 0x3DC892, 0x3DC501
, 0x3DC16F, 0x3DBDDE, 0x3DBA4E, 0x3DB6BD, 0x3DB32C, 0x3DAF9C
, 0x3DAC0C, 0x3DA87C, 0x3DA4ED, 0x3DA15D, 0x3D9DCE, 0x3D9A3F
, 0x3D96B0, 0x3D9321, 0x3D8F93, 0x3D8C05, 0x3D8877, 0x3D84E9
, 0x3D815B, 0x3D7DCE, 0x3D7A41, 0x3D76B4, 0x3D7327, 0x3D6F9B
, 0x3D6C0E, 0x3D6882, 0x3D64F6, 0x3D616A, 0x3D5DDF, 0x3D5A53
, 0x3D56C8, 0x3D533D, 0x3D4FB3, 0x3D4C28, 0x3D489E, 0x3D4514
, 0x3D418A, 0x3D3E00, 0x3D3A77, 0x3D36ED, 0x3D3364, 0x3D2FDB
, 0x3D2C53, 0x3D28CA, 0x3D2542, 0x3D21BA, 0x3D1E32, 0x3D1AAA
, 0x3D1723, 0x3D139C, 0x3D1015, 0x3D0C8E, 0x3D0907, 0x3D0581
, 0x3D01FA, 0x3CFE74, 0x3CFAEF, 0x3CF769, 0x3CF3E4, 0x3CF05E
, 0x3CECD9, 0x3CE955, 0x3CE5D0, 0x3CE24C, 0x3CDEC7, 0x3CDB43
, 0x3CD7C0, 0x3CD43C, 0x3CD0B9, 0x3CCD35, 0x3CC9B2, 0x3CC630
, 0x3CC2AD, 0x3CBF2B, 0x3CBBA9, 0x3CB827, 0x3CB4A5, 0x3CB123
, 0x3CADA2, 0x3CAA21, 0x3CA6A0, 0x3CA31F, 0x3C9F9E, 0x3C9C1E
, 0x3C989E, 0x3C951E, 0x3C919E, 0x3C8E1F, 0x3C8A9F, 0x3C8720
, 0x3C83A1, 0x3C8023, 0x3C7CA4, 0x3C7926, 0x3C75A8, 0x3C722A
, 0x3C6EAC, 0x3C6B2E, 0x3C67B1, 0x3C6434, 0x3C60B7, 0x3C5D3A
, 0x3C59BE, 0x3C5642, 0x3C52C5, 0x3C4F4A, 0x3C4BCE, 0x3C4852
, 0x3C44D7, 0x3C415C, 0x3C3DE1, 0x3C3A66, 0x3C36EC, 0x3C3372
, 0x3C2FF7, 0x3C2C7E, 0x3C2904, 0x3C258A, 0x3C2211, 0x3C1E98
, 0x3C1B1F, 0x3C17A6, 0x3C142E, 0x3C10B6, 0x3C0D3D, 0x3C09C6
, 0x3C064E, 0x3C02D6, 0x3BFF5F, 0x3BFBE8, 0x3BF871, 0x3BF4FA
, 0x3BF184, 0x3BEE0E, 0x3BEA98, 0x3BE722, 0x3BE3AC, 0x3BE036
, 0x3BDCC1, 0x3BD94C, 0x3BD5D7, 0x3BD263, 0x3BCEEE, 0x3BCB7A
, 0x3BC806, 0x3BC492, 0x3BC11E, 0x3BBDAB, 0x3BBA37, 0x3BB6C4
, 0x3BB351, 0x3BAFDF, 0x3BAC6C, 0x3BA8FA, 0x3BA588, 0x3BA216
, 0x3B9EA4, 0x3B9B33, 0x3B97C1, 0x3B9450, 0x3B90DF, 0x3B8D6F
, 0x3B89FE, 0x3B868E, 0x3B831E, 0x3B7FAE, 0x3B7C3E, 0x3B78CE
, 0x3B755F, 0x3B71F0, 0x3B6E81, 0x3B6B12, 0x3B67A4, 0x3B6435
, 0x3B60C7, 0x3B5D59, 0x3B59EC, 0x3B567E, 0x3B5311, 0x3B4FA4
, 0x3B4C37, 0x3B48CA, 0x3B455D, 0x3B41F1, 0x3B3E85, 0x3B3B19
, 0x3B37AD, 0x3B3442, 0x3B30D6, 0x3B2D6B, 0x3B2A00, 0x3B2695
, 0x3B232B, 0x3B1FC0, 0x3B1C56, 0x3B18EC, 0x3B1583, 0x3B1219
, 0x3B0EB0, 0x3B0B46, 0x3B07DD, 0x3B0475, 0x3B010C, 0x3AFDA4
, 0x3AFA3B, 0x3AF6D3, 0x3AF36C, 0x3AF004, 0x3AEC9C, 0x3AE935
, 0x3AE5CE, 0x3AE267, 0x3ADF01, 0x3ADB9A, 0x3AD834, 0x3AD4CE
, 0x3AD168, 0x3ACE03, 0x3ACA9D, 0x3AC738, 0x3AC3D3, 0x3AC06E
, 0x3ABD09, 0x3AB9A5, 0x3AB640, 0x3AB2DC, 0x3AAF79, 0x3AAC15
, 0x3AA8B1, 0x3AA54E, 0x3AA1EB, 0x3A9E88, 0x3A9B25, 0x3A97C3
, 0x3A9460, 0x3A90FE, 0x3A8D9C, 0x3A8A3B, 0x3A86D9, 0x3A8378
, 0x3A8017, 0x3A7CB6, 0x3A7955, 0x3A75F4, 0x3A7294, 0x3A6F34
, 0x3A6BD4, 0x3A6874, 0x3A6514, 0x3A61B5, 0x3A5E56, 0x3A5AF7
, 0x3A5798, 0x3A5439, 0x3A50DB, 0x3A4D7D, 0x3A4A1F, 0x3A46C1
, 0x3A4363, 0x3A4006, 0x3A3CA9, 0x3A394B, 0x3A35EF, 0x3A3292
, 0x3A2F35, 0x3A2BD9, 0x3A287D, 0x3A2521, 0x3A21C6, 0x3A1E6A
, 0x3A1B0F, 0x3A17B4, 0x3A1459, 0x3A10FE, 0x3A0DA3, 0x3A0A49
, 0x3A06EF, 0x3A0395, 0x3A003B, 0x39FCE2, 0x39F988, 0x39F62F
, 0x39F2D6, 0x39EF7D, 0x39EC25, 0x39E8CC, 0x39E574, 0x39E21C
, 0x39DEC4, 0x39DB6D, 0x39D815, 0x39D4BE, 0x39D167, 0x39CE10
, 0x39CAB9, 0x39C763, 0x39C40C, 0x39C0B6, 0x39BD60, 0x39BA0B
, 0x39B6B5, 0x39B360, 0x39B00B, 0x39ACB6, 0x39A961, 0x39A60D
, 0x39A2B8, 0x399F64, 0x399C10, 0x3998BC, 0x399569, 0x399215
, 0x398EC2, 0x398B6F, 0x39881C, 0x3984CA, 0x398177, 0x397E25
, 0x397AD3, 0x397781, 0x39742F, 0x3970DE, 0x396D8C, 0x396A3B
, 0x3966EA, 0x39639A, 0x396049, 0x395CF9, 0x3959A9, 0x395659
, 0x395309, 0x394FB9, 0x394C6A, 0x39491B, 0x3945CC, 0x39427D
, 0x393F2F, 0x393BE0, 0x393892, 0x393544, 0x3931F6, 0x392EA8
, 0x392B5B, 0x39280E, 0x3924C0, 0x392174, 0x391E27, 0x391ADA
, 0x39178E, 0x391442, 0x3910F6, 0x390DAA, 0x390A5F, 0x390713
, 0x3903C8, 0x39007D, 0x38FD32, 0x38F9E8, 0x38F69D, 0x38F353
, 0x38F009, 0x38ECBF, 0x38E976, 0x38E62C, 0x38E2E3, 0x38DF9A
, 0x38DC51, 0x38D908, 0x38D5C0, 0x38D277, 0x38CF2F, 0x38CBE7
, 0x38C89F, 0x38C558, 0x38C210, 0x38BEC9, 0x38BB82, 0x38B83B
, 0x38B4F5, 0x38B1AE, 0x38AE68, 0x38AB22, 0x38A7DC, 0x38A496
, 0x38A151, 0x389E0C, 0x389AC7, 0x389782, 0x38943D, 0x3890F8
, 0x388DB4, 0x388A70, 0x38872C, 0x3883E8, 0x3880A4, 0x387D61
, 0x387A1E, 0x3876DB, 0x387398, 0x387055, 0x386D13, 0x3869D0
, 0x38668E, 0x38634C, 0x38600B, 0x385CC9, 0x385988, 0x385647
, 0x385306, 0x384FC5, 0x384C84, 0x384944, 0x384604, 0x3842C4
, 0x383F84, 0x383C44, 0x383905, 0x3835C5, 0x383286, 0x382F47
, 0x382C09, 0x3828CA, 0x38258C, 0x38224E, 0x381F10, 0x381BD2
, 0x381894, 0x381557, 0x38121A, 0x380EDD, 0x380BA0, 0x380863
, 0x380527, 0x3801EA, 0x37FEAE, 0x37FB72, 0x37F837, 0x37F4FB
, 0x37F1C0, 0x37EE85, 0x37EB4A, 0x37E80F, 0x37E4D4, 0x37E19A
, 0x37DE60, 0x37DB26, 0x37D7EC, 0x37D4B2, 0x37D179, 0x37CE3F
, 0x37CB06, 0x37C7CD, 0x37C495, 0x37C15C, 0x37BE24, 0x37BAEB
, 0x37B7B3, 0x37B47C, 0x37B144, 0x37AE0D, 0x37AAD5, 0x37A79E
, 0x37A467, 0x37A131, 0x379DFA, 0x379AC4, 0x37978E, 0x379458
, 0x379122, 0x378DEC, 0x378AB7, 0x378782, 0x37844D, 0x378118
, 0x377DE3, 0x377AAF, 0x37777A, 0x377446, 0x377112, 0x376DDF
, 0x376AAB, 0x376778, 0x376445, 0x376112, 0x375DDF, 0x375AAC
, 0x37577A, 0x375448, 0x375115, 0x374DE4, 0x374AB2, 0x374780
, 0x37444F, 0x37411E, 0x373DED, 0x373ABC, 0x37378C, 0x37345B
, 0x37312B, 0x372DFB, 0x372ACB, 0x37279B, 0x37246C, 0x37213D
, 0x371E0D, 0x371ADF, 0x3717B0, 0x371481, 0x371153, 0x370E25
, 0x370AF7, 0x3707C9, 0x37049B, 0x37016E, 0x36FE40, 0x36FB13
, 0x36F7E6, 0x36F4BA, 0x36F18D, 0x36EE61, 0x36EB34, 0x36E808
, 0x36E4DD, 0x36E1B1, 0x36DE86, 0x36DB5A, 0x36D82F, 0x36D504
, 0x36D1DA, 0x36CEAF, 0x36CB85, 0x36C85B, 0x36C531, 0x36C207
, 0x36BEDD, 0x36BBB4, 0x36B88A, 0x36B561, 0x36B238, 0x36AF10
, 0x36ABE7, 0x36A8BF, 0x36A597, 0x36A26F, 0x369F47, 0x369C1F
, 0x3698F8, 0x3695D1, 0x3692AA, 0x368F83, 0x368C5C, 0x368936
, 0x36860F, 0x3682E9, 0x367FC3, 0x367C9D, 0x367978, 0x367652
, 0x36732D, 0x367008, 0x366CE3, 0x3669BE, 0x36669A, 0x366375
, 0x366051, 0x365D2D, 0x365A09, 0x3656E6, 0x3653C2, 0x36509F
, 0x364D7C, 0x364A59, 0x364737, 0x364414, 0x3640F2, 0x363DCF
, 0x363AAD, 0x36378C, 0x36346A, 0x363149, 0x362E27, 0x362B06
, 0x3627E5, 0x3624C5, 0x3621A4, 0x361E84, 0x361B64, 0x361844
, 0x361524, 0x361204, 0x360EE5, 0x360BC5, 0x3608A6, 0x360587
, 0x360269, 0x35FF4A, 0x35FC2C, 0x35F90E, 0x35F5F0, 0x35F2D2
, 0x35EFB4, 0x35EC97, 0x35E979, 0x35E65C, 0x35E33F, 0x35E022
, 0x35DD06, 0x35D9E9, 0x35D6CD, 0x35D3B1, 0x35D095, 0x35CD7A
, 0x35CA5E, 0x35C743, 0x35C428, 0x35C10D, 0x35BDF2, 0x35BAD7
, 0x35B7BD, 0x35B4A3, 0x35B189, 0x35AE6F, 0x35AB55, 0x35A83C
, 0x35A522, 0x35A209, 0x359EF0, 0x359BD7, 0x3598BF, 0x3595A6
, 0x35928E, 0x358F76, 0x358C5E, 0x358946, 0x35862F, 0x358317
};

/*
 * In  - tone [-119*256..64*256..261*256[ in 1/256 semitone
 * Out - period [&FFFFFFFF..428*256..1] in 1/256 Amiga period
 *       using formula 428*256*2^((64*256-x)/(12*256))
 */
uint32_t Convert_ToneToPeriod(int32_t tone)
{
	int32_t octave;

	// Limits of validity of calculations below
	if (tone >= (261 * 256)) return 1;
	if (tone < (-119 * 256 - 26)) return 0xFFFFFFFF;

	// Period is divided by 2 with each octave ( = 12 seminotes) so
	// period = period_base_octave[octave_frac(note)] >> octave(note)

	tone += 8*256; // Octave start is at -8*256
	if (tone < 0)
	{
		octave = (tone + 1 - 12 * 256) / (12 * 256);
		tone -= octave * 12 * 256;
		return Table_PeriodSemitone12256[tone] << -octave;
	}
	else
	{
		octave = tone / (12 * 256);
		tone -= octave * 12 * 256;
		return Table_PeriodSemitone12256[tone] >> octave;
	}
}

// Table formula is 12*256*(LOG2(4096+x)-LOG2(4096))
static const uint16_t SemitoneFrac_Table[4096] =
{ 0x000, 0x001, 0x002, 0x003, 0x004, 0x005, 0x006, 0x008
, 0x009, 0x00A, 0x00B, 0x00C, 0x00D, 0x00E, 0x00F, 0x010
, 0x011, 0x012, 0x013, 0x015, 0x016, 0x017, 0x018, 0x019
, 0x01A, 0x01B, 0x01C, 0x01D, 0x01E, 0x01F, 0x020, 0x021
, 0x022, 0x024, 0x025, 0x026, 0x027, 0x028, 0x029, 0x02A
, 0x02B, 0x02C, 0x02D, 0x02E, 0x02F, 0x030, 0x031, 0x033
, 0x034, 0x035, 0x036, 0x037, 0x038, 0x039, 0x03A, 0x03B
, 0x03C, 0x03D, 0x03E, 0x03F, 0x040, 0x042, 0x043, 0x044
, 0x045, 0x046, 0x047, 0x048, 0x049, 0x04A, 0x04B, 0x04C
, 0x04D, 0x04E, 0x04F, 0x050, 0x051, 0x053, 0x054, 0x055
, 0x056, 0x057, 0x058, 0x059, 0x05A, 0x05B, 0x05C, 0x05D
, 0x05E, 0x05F, 0x060, 0x061, 0x062, 0x064, 0x065, 0x066
, 0x067, 0x068, 0x069, 0x06A, 0x06B, 0x06C, 0x06D, 0x06E
, 0x06F, 0x070, 0x071, 0x072, 0x073, 0x074, 0x075, 0x077
, 0x078, 0x079, 0x07A, 0x07B, 0x07C, 0x07D, 0x07E, 0x07F
, 0x080, 0x081, 0x082, 0x083, 0x084, 0x085, 0x086, 0x087
, 0x088, 0x089, 0x08A, 0x08C, 0x08D, 0x08E, 0x08F, 0x090
, 0x091, 0x092, 0x093, 0x094, 0x095, 0x096, 0x097, 0x098
, 0x099, 0x09A, 0x09B, 0x09C, 0x09D, 0x09E, 0x09F, 0x0A0
, 0x0A1, 0x0A3, 0x0A4, 0x0A5, 0x0A6, 0x0A7, 0x0A8, 0x0A9
, 0x0AA, 0x0AB, 0x0AC, 0x0AD, 0x0AE, 0x0AF, 0x0B0, 0x0B1
, 0x0B2, 0x0B3, 0x0B4, 0x0B5, 0x0B6, 0x0B7, 0x0B8, 0x0B9
, 0x0BA, 0x0BB, 0x0BD, 0x0BE, 0x0BF, 0x0C0, 0x0C1, 0x0C2
, 0x0C3, 0x0C4, 0x0C5, 0x0C6, 0x0C7, 0x0C8, 0x0C9, 0x0CA
, 0x0CB, 0x0CC, 0x0CD, 0x0CE, 0x0CF, 0x0D0, 0x0D1, 0x0D2
, 0x0D3, 0x0D4, 0x0D5, 0x0D6, 0x0D7, 0x0D8, 0x0D9, 0x0DB
, 0x0DC, 0x0DD, 0x0DE, 0x0DF, 0x0E0, 0x0E1, 0x0E2, 0x0E3
, 0x0E4, 0x0E5, 0x0E6, 0x0E7, 0x0E8, 0x0E9, 0x0EA, 0x0EB
, 0x0EC, 0x0ED, 0x0EE, 0x0EF, 0x0F0, 0x0F1, 0x0F2, 0x0F3
, 0x0F4, 0x0F5, 0x0F6, 0x0F7, 0x0F8, 0x0F9, 0x0FA, 0x0FB
, 0x0FC, 0x0FD, 0x0FE, 0x0FF, 0x100, 0x101, 0x102, 0x104
, 0x105, 0x106, 0x107, 0x108, 0x109, 0x10A, 0x10B, 0x10C
, 0x10D, 0x10E, 0x10F, 0x110, 0x111, 0x112, 0x113, 0x114
, 0x115, 0x116, 0x117, 0x118, 0x119, 0x11A, 0x11B, 0x11C
, 0x11D, 0x11E, 0x11F, 0x120, 0x121, 0x122, 0x123, 0x124
, 0x125, 0x126, 0x127, 0x128, 0x129, 0x12A, 0x12B, 0x12C
, 0x12D, 0x12E, 0x12F, 0x130, 0x131, 0x132, 0x133, 0x134
, 0x135, 0x136, 0x137, 0x138, 0x139, 0x13A, 0x13B, 0x13C
, 0x13D, 0x13E, 0x13F, 0x140, 0x141, 0x142, 0x143, 0x144
, 0x145, 0x146, 0x147, 0x148, 0x149, 0x14A, 0x14B, 0x14C
, 0x14D, 0x14E, 0x14F, 0x150, 0x151, 0x152, 0x153, 0x154
, 0x155, 0x156, 0x157, 0x158, 0x159, 0x15A, 0x15B, 0x15C
, 0x15D, 0x15E, 0x15F, 0x160, 0x161, 0x162, 0x163, 0x164
, 0x165, 0x166, 0x167, 0x168, 0x169, 0x16A, 0x16B, 0x16C
, 0x16D, 0x16E, 0x16F, 0x170, 0x171, 0x172, 0x173, 0x174
, 0x175, 0x176, 0x177, 0x178, 0x179, 0x17A, 0x17B, 0x17C
, 0x17D, 0x17E, 0x17F, 0x180, 0x181, 0x182, 0x183, 0x184
, 0x185, 0x186, 0x187, 0x188, 0x189, 0x18A, 0x18B, 0x18C
, 0x18D, 0x18E, 0x18F, 0x190, 0x191, 0x192, 0x193, 0x194
, 0x195, 0x196, 0x197, 0x198, 0x199, 0x19A, 0x19B, 0x19C
, 0x19D, 0x19E, 0x19F, 0x1A0, 0x1A1, 0x1A2, 0x1A3, 0x1A4
, 0x1A5, 0x1A6, 0x1A7, 0x1A8, 0x1A9, 0x1AA, 0x1AB, 0x1AC
, 0x1AD, 0x1AE, 0x1AF, 0x1B0, 0x1B1, 0x1B2, 0x1B3, 0x1B4
, 0x1B5, 0x1B6, 0x1B7, 0x1B7, 0x1B8, 0x1B9, 0x1BA, 0x1BB
, 0x1BC, 0x1BD, 0x1BE, 0x1BF, 0x1C0, 0x1C1, 0x1C2, 0x1C3
, 0x1C4, 0x1C5, 0x1C6, 0x1C7, 0x1C8, 0x1C9, 0x1CA, 0x1CB
, 0x1CC, 0x1CD, 0x1CE, 0x1CF, 0x1D0, 0x1D1, 0x1D2, 0x1D3
, 0x1D4, 0x1D5, 0x1D6, 0x1D7, 0x1D8, 0x1D9, 0x1DA, 0x1DB
, 0x1DC, 0x1DD, 0x1DE, 0x1DF, 0x1DF, 0x1E0, 0x1E1, 0x1E2
, 0x1E3, 0x1E4, 0x1E5, 0x1E6, 0x1E7, 0x1E8, 0x1E9, 0x1EA
, 0x1EB, 0x1EC, 0x1ED, 0x1EE, 0x1EF, 0x1F0, 0x1F1, 0x1F2
, 0x1F3, 0x1F4, 0x1F5, 0x1F6, 0x1F7, 0x1F8, 0x1F9, 0x1FA
, 0x1FB, 0x1FC, 0x1FD, 0x1FD, 0x1FE, 0x1FF, 0x200, 0x201
, 0x202, 0x203, 0x204, 0x205, 0x206, 0x207, 0x208, 0x209
, 0x20A, 0x20B, 0x20C, 0x20D, 0x20E, 0x20F, 0x210, 0x211
, 0x212, 0x213, 0x214, 0x215, 0x216, 0x216, 0x217, 0x218
, 0x219, 0x21A, 0x21B, 0x21C, 0x21D, 0x21E, 0x21F, 0x220
, 0x221, 0x222, 0x223, 0x224, 0x225, 0x226, 0x227, 0x228
, 0x229, 0x22A, 0x22B, 0x22C, 0x22C, 0x22D, 0x22E, 0x22F
, 0x230, 0x231, 0x232, 0x233, 0x234, 0x235, 0x236, 0x237
, 0x238, 0x239, 0x23A, 0x23B, 0x23C, 0x23D, 0x23E, 0x23F
, 0x240, 0x240, 0x241, 0x242, 0x243, 0x244, 0x245, 0x246
, 0x247, 0x248, 0x249, 0x24A, 0x24B, 0x24C, 0x24D, 0x24E
, 0x24F, 0x250, 0x251, 0x252, 0x253, 0x253, 0x254, 0x255
, 0x256, 0x257, 0x258, 0x259, 0x25A, 0x25B, 0x25C, 0x25D
, 0x25E, 0x25F, 0x260, 0x261, 0x262, 0x263, 0x264, 0x264
, 0x265, 0x266, 0x267, 0x268, 0x269, 0x26A, 0x26B, 0x26C
, 0x26D, 0x26E, 0x26F, 0x270, 0x271, 0x272, 0x273, 0x274
, 0x274, 0x275, 0x276, 0x277, 0x278, 0x279, 0x27A, 0x27B
, 0x27C, 0x27D, 0x27E, 0x27F, 0x280, 0x281, 0x282, 0x283
, 0x283, 0x284, 0x285, 0x286, 0x287, 0x288, 0x289, 0x28A
, 0x28B, 0x28C, 0x28D, 0x28E, 0x28F, 0x290, 0x291, 0x291
, 0x292, 0x293, 0x294, 0x295, 0x296, 0x297, 0x298, 0x299
, 0x29A, 0x29B, 0x29C, 0x29D, 0x29E, 0x29E, 0x29F, 0x2A0
, 0x2A1, 0x2A2, 0x2A3, 0x2A4, 0x2A5, 0x2A6, 0x2A7, 0x2A8
, 0x2A9, 0x2AA, 0x2AB, 0x2AB, 0x2AC, 0x2AD, 0x2AE, 0x2AF
, 0x2B0, 0x2B1, 0x2B2, 0x2B3, 0x2B4, 0x2B5, 0x2B6, 0x2B7
, 0x2B8, 0x2B8, 0x2B9, 0x2BA, 0x2BB, 0x2BC, 0x2BD, 0x2BE
, 0x2BF, 0x2C0, 0x2C1, 0x2C2, 0x2C3, 0x2C4, 0x2C4, 0x2C5
, 0x2C6, 0x2C7, 0x2C8, 0x2C9, 0x2CA, 0x2CB, 0x2CC, 0x2CD
, 0x2CE, 0x2CF, 0x2D0, 0x2D0, 0x2D1, 0x2D2, 0x2D3, 0x2D4
, 0x2D5, 0x2D6, 0x2D7, 0x2D8, 0x2D9, 0x2DA, 0x2DB, 0x2DB
, 0x2DC, 0x2DD, 0x2DE, 0x2DF, 0x2E0, 0x2E1, 0x2E2, 0x2E3
, 0x2E4, 0x2E5, 0x2E6, 0x2E6, 0x2E7, 0x2E8, 0x2E9, 0x2EA
, 0x2EB, 0x2EC, 0x2ED, 0x2EE, 0x2EF, 0x2F0, 0x2F1, 0x2F1
, 0x2F2, 0x2F3, 0x2F4, 0x2F5, 0x2F6, 0x2F7, 0x2F8, 0x2F9
, 0x2FA, 0x2FB, 0x2FB, 0x2FC, 0x2FD, 0x2FE, 0x2FF, 0x300
, 0x301, 0x302, 0x303, 0x304, 0x305, 0x305, 0x306, 0x307
, 0x308, 0x309, 0x30A, 0x30B, 0x30C, 0x30D, 0x30E, 0x30F
, 0x30F, 0x310, 0x311, 0x312, 0x313, 0x314, 0x315, 0x316
, 0x317, 0x318, 0x319, 0x319, 0x31A, 0x31B, 0x31C, 0x31D
, 0x31E, 0x31F, 0x320, 0x321, 0x322, 0x322, 0x323, 0x324
, 0x325, 0x326, 0x327, 0x328, 0x329, 0x32A, 0x32B, 0x32B
, 0x32C, 0x32D, 0x32E, 0x32F, 0x330, 0x331, 0x332, 0x333
, 0x334, 0x334, 0x335, 0x336, 0x337, 0x338, 0x339, 0x33A
, 0x33B, 0x33C, 0x33D, 0x33D, 0x33E, 0x33F, 0x340, 0x341
, 0x342, 0x343, 0x344, 0x345, 0x346, 0x346, 0x347, 0x348
, 0x349, 0x34A, 0x34B, 0x34C, 0x34D, 0x34E, 0x34E, 0x34F
, 0x350, 0x351, 0x352, 0x353, 0x354, 0x355, 0x356, 0x357
, 0x357, 0x358, 0x359, 0x35A, 0x35B, 0x35C, 0x35D, 0x35E
, 0x35F, 0x35F, 0x360, 0x361, 0x362, 0x363, 0x364, 0x365
, 0x366, 0x367, 0x367, 0x368, 0x369, 0x36A, 0x36B, 0x36C
, 0x36D, 0x36E, 0x36F, 0x36F, 0x370, 0x371, 0x372, 0x373
, 0x374, 0x375, 0x376, 0x377, 0x377, 0x378, 0x379, 0x37A
, 0x37B, 0x37C, 0x37D, 0x37E, 0x37E, 0x37F, 0x380, 0x381
, 0x382, 0x383, 0x384, 0x385, 0x386, 0x386, 0x387, 0x388
, 0x389, 0x38A, 0x38B, 0x38C, 0x38D, 0x38D, 0x38E, 0x38F
, 0x390, 0x391, 0x392, 0x393, 0x394, 0x395, 0x395, 0x396
, 0x397, 0x398, 0x399, 0x39A, 0x39B, 0x39C, 0x39C, 0x39D
, 0x39E, 0x39F, 0x3A0, 0x3A1, 0x3A2, 0x3A3, 0x3A3, 0x3A4
, 0x3A5, 0x3A6, 0x3A7, 0x3A8, 0x3A9, 0x3AA, 0x3AA, 0x3AB
, 0x3AC, 0x3AD, 0x3AE, 0x3AF, 0x3B0, 0x3B1, 0x3B1, 0x3B2
, 0x3B3, 0x3B4, 0x3B5, 0x3B6, 0x3B7, 0x3B8, 0x3B8, 0x3B9
, 0x3BA, 0x3BB, 0x3BC, 0x3BD, 0x3BE, 0x3BF, 0x3BF, 0x3C0
, 0x3C1, 0x3C2, 0x3C3, 0x3C4, 0x3C5, 0x3C6, 0x3C6, 0x3C7
, 0x3C8, 0x3C9, 0x3CA, 0x3CB, 0x3CC, 0x3CC, 0x3CD, 0x3CE
, 0x3CF, 0x3D0, 0x3D1, 0x3D2, 0x3D3, 0x3D3, 0x3D4, 0x3D5
, 0x3D6, 0x3D7, 0x3D8, 0x3D9, 0x3D9, 0x3DA, 0x3DB, 0x3DC
, 0x3DD, 0x3DE, 0x3DF, 0x3E0, 0x3E0, 0x3E1, 0x3E2, 0x3E3
, 0x3E4, 0x3E5, 0x3E6, 0x3E6, 0x3E7, 0x3E8, 0x3E9, 0x3EA
, 0x3EB, 0x3EC, 0x3ED, 0x3ED, 0x3EE, 0x3EF, 0x3F0, 0x3F1
, 0x3F2, 0x3F3, 0x3F3, 0x3F4, 0x3F5, 0x3F6, 0x3F7, 0x3F8
, 0x3F9, 0x3F9, 0x3FA, 0x3FB, 0x3FC, 0x3FD, 0x3FE, 0x3FF
, 0x3FF, 0x400, 0x401, 0x402, 0x403, 0x404, 0x405, 0x405
, 0x406, 0x407, 0x408, 0x409, 0x40A, 0x40B, 0x40B, 0x40C
, 0x40D, 0x40E, 0x40F, 0x410, 0x411, 0x411, 0x412, 0x413
, 0x414, 0x415, 0x416, 0x417, 0x417, 0x418, 0x419, 0x41A
, 0x41B, 0x41C, 0x41D, 0x41D, 0x41E, 0x41F, 0x420, 0x421
, 0x422, 0x423, 0x423, 0x424, 0x425, 0x426, 0x427, 0x428
, 0x428, 0x429, 0x42A, 0x42B, 0x42C, 0x42D, 0x42E, 0x42E
, 0x42F, 0x430, 0x431, 0x432, 0x433, 0x434, 0x434, 0x435
, 0x436, 0x437, 0x438, 0x439, 0x439, 0x43A, 0x43B, 0x43C
, 0x43D, 0x43E, 0x43F, 0x43F, 0x440, 0x441, 0x442, 0x443
, 0x444, 0x444, 0x445, 0x446, 0x447, 0x448, 0x449, 0x44A
, 0x44A, 0x44B, 0x44C, 0x44D, 0x44E, 0x44F, 0x44F, 0x450
, 0x451, 0x452, 0x453, 0x454, 0x455, 0x455, 0x456, 0x457
, 0x458, 0x459, 0x45A, 0x45A, 0x45B, 0x45C, 0x45D, 0x45E
, 0x45F, 0x45F, 0x460, 0x461, 0x462, 0x463, 0x464, 0x465
, 0x465, 0x466, 0x467, 0x468, 0x469, 0x46A, 0x46A, 0x46B
, 0x46C, 0x46D, 0x46E, 0x46F, 0x46F, 0x470, 0x471, 0x472
, 0x473, 0x474, 0x474, 0x475, 0x476, 0x477, 0x478, 0x479
, 0x479, 0x47A, 0x47B, 0x47C, 0x47D, 0x47E, 0x47E, 0x47F
, 0x480, 0x481, 0x482, 0x483, 0x483, 0x484, 0x485, 0x486
, 0x487, 0x488, 0x488, 0x489, 0x48A, 0x48B, 0x48C, 0x48D
, 0x48D, 0x48E, 0x48F, 0x490, 0x491, 0x492, 0x492, 0x493
, 0x494, 0x495, 0x496, 0x497, 0x497, 0x498, 0x499, 0x49A
, 0x49B, 0x49C, 0x49C, 0x49D, 0x49E, 0x49F, 0x4A0, 0x4A1
, 0x4A1, 0x4A2, 0x4A3, 0x4A4, 0x4A5, 0x4A6, 0x4A6, 0x4A7
, 0x4A8, 0x4A9, 0x4AA, 0x4AA, 0x4AB, 0x4AC, 0x4AD, 0x4AE
, 0x4AF, 0x4AF, 0x4B0, 0x4B1, 0x4B2, 0x4B3, 0x4B4, 0x4B4
, 0x4B5, 0x4B6, 0x4B7, 0x4B8, 0x4B8, 0x4B9, 0x4BA, 0x4BB
, 0x4BC, 0x4BD, 0x4BD, 0x4BE, 0x4BF, 0x4C0, 0x4C1, 0x4C2
, 0x4C2, 0x4C3, 0x4C4, 0x4C5, 0x4C6, 0x4C6, 0x4C7, 0x4C8
, 0x4C9, 0x4CA, 0x4CB, 0x4CB, 0x4CC, 0x4CD, 0x4CE, 0x4CF
, 0x4D0, 0x4D0, 0x4D1, 0x4D2, 0x4D3, 0x4D4, 0x4D4, 0x4D5
, 0x4D6, 0x4D7, 0x4D8, 0x4D9, 0x4D9, 0x4DA, 0x4DB, 0x4DC
, 0x4DD, 0x4DD, 0x4DE, 0x4DF, 0x4E0, 0x4E1, 0x4E1, 0x4E2
, 0x4E3, 0x4E4, 0x4E5, 0x4E6, 0x4E6, 0x4E7, 0x4E8, 0x4E9
, 0x4EA, 0x4EA, 0x4EB, 0x4EC, 0x4ED, 0x4EE, 0x4EF, 0x4EF
, 0x4F0, 0x4F1, 0x4F2, 0x4F3, 0x4F3, 0x4F4, 0x4F5, 0x4F6
, 0x4F7, 0x4F7, 0x4F8, 0x4F9, 0x4FA, 0x4FB, 0x4FC, 0x4FC
, 0x4FD, 0x4FE, 0x4FF, 0x500, 0x500, 0x501, 0x502, 0x503
, 0x504, 0x504, 0x505, 0x506, 0x507, 0x508, 0x508, 0x509
, 0x50A, 0x50B, 0x50C, 0x50D, 0x50D, 0x50E, 0x50F, 0x510
, 0x511, 0x511, 0x512, 0x513, 0x514, 0x515, 0x515, 0x516
, 0x517, 0x518, 0x519, 0x519, 0x51A, 0x51B, 0x51C, 0x51D
, 0x51D, 0x51E, 0x51F, 0x520, 0x521, 0x522, 0x522, 0x523
, 0x524, 0x525, 0x526, 0x526, 0x527, 0x528, 0x529, 0x52A
, 0x52A, 0x52B, 0x52C, 0x52D, 0x52E, 0x52E, 0x52F, 0x530
, 0x531, 0x532, 0x532, 0x533, 0x534, 0x535, 0x536, 0x536
, 0x537, 0x538, 0x539, 0x53A, 0x53A, 0x53B, 0x53C, 0x53D
, 0x53E, 0x53E, 0x53F, 0x540, 0x541, 0x542, 0x542, 0x543
, 0x544, 0x545, 0x546, 0x546, 0x547, 0x548, 0x549, 0x54A
, 0x54A, 0x54B, 0x54C, 0x54D, 0x54E, 0x54E, 0x54F, 0x550
, 0x551, 0x552, 0x552, 0x553, 0x554, 0x555, 0x555, 0x556
, 0x557, 0x558, 0x559, 0x559, 0x55A, 0x55B, 0x55C, 0x55D
, 0x55D, 0x55E, 0x55F, 0x560, 0x561, 0x561, 0x562, 0x563
, 0x564, 0x565, 0x565, 0x566, 0x567, 0x568, 0x569, 0x569
, 0x56A, 0x56B, 0x56C, 0x56C, 0x56D, 0x56E, 0x56F, 0x570
, 0x570, 0x571, 0x572, 0x573, 0x574, 0x574, 0x575, 0x576
, 0x577, 0x578, 0x578, 0x579, 0x57A, 0x57B, 0x57B, 0x57C
, 0x57D, 0x57E, 0x57F, 0x57F, 0x580, 0x581, 0x582, 0x583
, 0x583, 0x584, 0x585, 0x586, 0x587, 0x587, 0x588, 0x589
, 0x58A, 0x58A, 0x58B, 0x58C, 0x58D, 0x58E, 0x58E, 0x58F
, 0x590, 0x591, 0x592, 0x592, 0x593, 0x594, 0x595, 0x595
, 0x596, 0x597, 0x598, 0x599, 0x599, 0x59A, 0x59B, 0x59C
, 0x59C, 0x59D, 0x59E, 0x59F, 0x5A0, 0x5A0, 0x5A1, 0x5A2
, 0x5A3, 0x5A4, 0x5A4, 0x5A5, 0x5A6, 0x5A7, 0x5A7, 0x5A8
, 0x5A9, 0x5AA, 0x5AB, 0x5AB, 0x5AC, 0x5AD, 0x5AE, 0x5AE
, 0x5AF, 0x5B0, 0x5B1, 0x5B2, 0x5B2, 0x5B3, 0x5B4, 0x5B5
, 0x5B5, 0x5B6, 0x5B7, 0x5B8, 0x5B9, 0x5B9, 0x5BA, 0x5BB
, 0x5BC, 0x5BC, 0x5BD, 0x5BE, 0x5BF, 0x5C0, 0x5C0, 0x5C1
, 0x5C2, 0x5C3, 0x5C3, 0x5C4, 0x5C5, 0x5C6, 0x5C7, 0x5C7
, 0x5C8, 0x5C9, 0x5CA, 0x5CA, 0x5CB, 0x5CC, 0x5CD, 0x5CE
, 0x5CE, 0x5CF, 0x5D0, 0x5D1, 0x5D1, 0x5D2, 0x5D3, 0x5D4
, 0x5D4, 0x5D5, 0x5D6, 0x5D7, 0x5D8, 0x5D8, 0x5D9, 0x5DA
, 0x5DB, 0x5DB, 0x5DC, 0x5DD, 0x5DE, 0x5DF, 0x5DF, 0x5E0
, 0x5E1, 0x5E2, 0x5E2, 0x5E3, 0x5E4, 0x5E5, 0x5E5, 0x5E6
, 0x5E7, 0x5E8, 0x5E9, 0x5E9, 0x5EA, 0x5EB, 0x5EC, 0x5EC
, 0x5ED, 0x5EE, 0x5EF, 0x5EF, 0x5F0, 0x5F1, 0x5F2, 0x5F2
, 0x5F3, 0x5F4, 0x5F5, 0x5F6, 0x5F6, 0x5F7, 0x5F8, 0x5F9
, 0x5F9, 0x5FA, 0x5FB, 0x5FC, 0x5FC, 0x5FD, 0x5FE, 0x5FF
, 0x600, 0x600, 0x601, 0x602, 0x603, 0x603, 0x604, 0x605
, 0x606, 0x606, 0x607, 0x608, 0x609, 0x609, 0x60A, 0x60B
, 0x60C, 0x60D, 0x60D, 0x60E, 0x60F, 0x610, 0x610, 0x611
, 0x612, 0x613, 0x613, 0x614, 0x615, 0x616, 0x616, 0x617
, 0x618, 0x619, 0x619, 0x61A, 0x61B, 0x61C, 0x61D, 0x61D
, 0x61E, 0x61F, 0x620, 0x620, 0x621, 0x622, 0x623, 0x623
, 0x624, 0x625, 0x626, 0x626, 0x627, 0x628, 0x629, 0x629
, 0x62A, 0x62B, 0x62C, 0x62C, 0x62D, 0x62E, 0x62F, 0x62F
, 0x630, 0x631, 0x632, 0x632, 0x633, 0x634, 0x635, 0x636
, 0x636, 0x637, 0x638, 0x639, 0x639, 0x63A, 0x63B, 0x63C
, 0x63C, 0x63D, 0x63E, 0x63F, 0x63F, 0x640, 0x641, 0x642
, 0x642, 0x643, 0x644, 0x645, 0x645, 0x646, 0x647, 0x648
, 0x648, 0x649, 0x64A, 0x64B, 0x64B, 0x64C, 0x64D, 0x64E
, 0x64E, 0x64F, 0x650, 0x651, 0x651, 0x652, 0x653, 0x654
, 0x654, 0x655, 0x656, 0x657, 0x657, 0x658, 0x659, 0x65A
, 0x65A, 0x65B, 0x65C, 0x65D, 0x65D, 0x65E, 0x65F, 0x660
, 0x660, 0x661, 0x662, 0x663, 0x663, 0x664, 0x665, 0x666
, 0x666, 0x667, 0x668, 0x669, 0x669, 0x66A, 0x66B, 0x66C
, 0x66C, 0x66D, 0x66E, 0x66F, 0x66F, 0x670, 0x671, 0x672
, 0x672, 0x673, 0x674, 0x675, 0x675, 0x676, 0x677, 0x678
, 0x678, 0x679, 0x67A, 0x67B, 0x67B, 0x67C, 0x67D, 0x67E
, 0x67E, 0x67F, 0x680, 0x680, 0x681, 0x682, 0x683, 0x683
, 0x684, 0x685, 0x686, 0x686, 0x687, 0x688, 0x689, 0x689
, 0x68A, 0x68B, 0x68C, 0x68C, 0x68D, 0x68E, 0x68F, 0x68F
, 0x690, 0x691, 0x692, 0x692, 0x693, 0x694, 0x695, 0x695
, 0x696, 0x697, 0x697, 0x698, 0x699, 0x69A, 0x69A, 0x69B
, 0x69C, 0x69D, 0x69D, 0x69E, 0x69F, 0x6A0, 0x6A0, 0x6A1
, 0x6A2, 0x6A3, 0x6A3, 0x6A4, 0x6A5, 0x6A5, 0x6A6, 0x6A7
, 0x6A8, 0x6A8, 0x6A9, 0x6AA, 0x6AB, 0x6AB, 0x6AC, 0x6AD
, 0x6AE, 0x6AE, 0x6AF, 0x6B0, 0x6B1, 0x6B1, 0x6B2, 0x6B3
, 0x6B3, 0x6B4, 0x6B5, 0x6B6, 0x6B6, 0x6B7, 0x6B8, 0x6B9
, 0x6B9, 0x6BA, 0x6BB, 0x6BC, 0x6BC, 0x6BD, 0x6BE, 0x6BE
, 0x6BF, 0x6C0, 0x6C1, 0x6C1, 0x6C2, 0x6C3, 0x6C4, 0x6C4
, 0x6C5, 0x6C6, 0x6C7, 0x6C7, 0x6C8, 0x6C9, 0x6C9, 0x6CA
, 0x6CB, 0x6CC, 0x6CC, 0x6CD, 0x6CE, 0x6CF, 0x6CF, 0x6D0
, 0x6D1, 0x6D1, 0x6D2, 0x6D3, 0x6D4, 0x6D4, 0x6D5, 0x6D6
, 0x6D7, 0x6D7, 0x6D8, 0x6D9, 0x6DA, 0x6DA, 0x6DB, 0x6DC
, 0x6DC, 0x6DD, 0x6DE, 0x6DF, 0x6DF, 0x6E0, 0x6E1, 0x6E2
, 0x6E2, 0x6E3, 0x6E4, 0x6E4, 0x6E5, 0x6E6, 0x6E7, 0x6E7
, 0x6E8, 0x6E9, 0x6EA, 0x6EA, 0x6EB, 0x6EC, 0x6EC, 0x6ED
, 0x6EE, 0x6EF, 0x6EF, 0x6F0, 0x6F1, 0x6F1, 0x6F2, 0x6F3
, 0x6F4, 0x6F4, 0x6F5, 0x6F6, 0x6F7, 0x6F7, 0x6F8, 0x6F9
, 0x6F9, 0x6FA, 0x6FB, 0x6FC, 0x6FC, 0x6FD, 0x6FE, 0x6FF
, 0x6FF, 0x700, 0x701, 0x701, 0x702, 0x703, 0x704, 0x704
, 0x705, 0x706, 0x706, 0x707, 0x708, 0x709, 0x709, 0x70A
, 0x70B, 0x70B, 0x70C, 0x70D, 0x70E, 0x70E, 0x70F, 0x710
, 0x711, 0x711, 0x712, 0x713, 0x713, 0x714, 0x715, 0x716
, 0x716, 0x717, 0x718, 0x718, 0x719, 0x71A, 0x71B, 0x71B
, 0x71C, 0x71D, 0x71D, 0x71E, 0x71F, 0x720, 0x720, 0x721
, 0x722, 0x722, 0x723, 0x724, 0x725, 0x725, 0x726, 0x727
, 0x727, 0x728, 0x729, 0x72A, 0x72A, 0x72B, 0x72C, 0x72D
, 0x72D, 0x72E, 0x72F, 0x72F, 0x730, 0x731, 0x732, 0x732
, 0x733, 0x734, 0x734, 0x735, 0x736, 0x737, 0x737, 0x738
, 0x739, 0x739, 0x73A, 0x73B, 0x73B, 0x73C, 0x73D, 0x73E
, 0x73E, 0x73F, 0x740, 0x740, 0x741, 0x742, 0x743, 0x743
, 0x744, 0x745, 0x745, 0x746, 0x747, 0x748, 0x748, 0x749
, 0x74A, 0x74A, 0x74B, 0x74C, 0x74D, 0x74D, 0x74E, 0x74F
, 0x74F, 0x750, 0x751, 0x752, 0x752, 0x753, 0x754, 0x754
, 0x755, 0x756, 0x756, 0x757, 0x758, 0x759, 0x759, 0x75A
, 0x75B, 0x75B, 0x75C, 0x75D, 0x75E, 0x75E, 0x75F, 0x760
, 0x760, 0x761, 0x762, 0x763, 0x763, 0x764, 0x765, 0x765
, 0x766, 0x767, 0x767, 0x768, 0x769, 0x76A, 0x76A, 0x76B
, 0x76C, 0x76C, 0x76D, 0x76E, 0x76E, 0x76F, 0x770, 0x771
, 0x771, 0x772, 0x773, 0x773, 0x774, 0x775, 0x776, 0x776
, 0x777, 0x778, 0x778, 0x779, 0x77A, 0x77A, 0x77B, 0x77C
, 0x77D, 0x77D, 0x77E, 0x77F, 0x77F, 0x780, 0x781, 0x781
, 0x782, 0x783, 0x784, 0x784, 0x785, 0x786, 0x786, 0x787
, 0x788, 0x788, 0x789, 0x78A, 0x78B, 0x78B, 0x78C, 0x78D
, 0x78D, 0x78E, 0x78F, 0x78F, 0x790, 0x791, 0x792, 0x792
, 0x793, 0x794, 0x794, 0x795, 0x796, 0x796, 0x797, 0x798
, 0x799, 0x799, 0x79A, 0x79B, 0x79B, 0x79C, 0x79D, 0x79D
, 0x79E, 0x79F, 0x7A0, 0x7A0, 0x7A1, 0x7A2, 0x7A2, 0x7A3
, 0x7A4, 0x7A4, 0x7A5, 0x7A6, 0x7A6, 0x7A7, 0x7A8, 0x7A9
, 0x7A9, 0x7AA, 0x7AB, 0x7AB, 0x7AC, 0x7AD, 0x7AD, 0x7AE
, 0x7AF, 0x7B0, 0x7B0, 0x7B1, 0x7B2, 0x7B2, 0x7B3, 0x7B4
, 0x7B4, 0x7B5, 0x7B6, 0x7B6, 0x7B7, 0x7B8, 0x7B9, 0x7B9
, 0x7BA, 0x7BB, 0x7BB, 0x7BC, 0x7BD, 0x7BD, 0x7BE, 0x7BF
, 0x7BF, 0x7C0, 0x7C1, 0x7C2, 0x7C2, 0x7C3, 0x7C4, 0x7C4
, 0x7C5, 0x7C6, 0x7C6, 0x7C7, 0x7C8, 0x7C8, 0x7C9, 0x7CA
, 0x7CB, 0x7CB, 0x7CC, 0x7CD, 0x7CD, 0x7CE, 0x7CF, 0x7CF
, 0x7D0, 0x7D1, 0x7D1, 0x7D2, 0x7D3, 0x7D3, 0x7D4, 0x7D5
, 0x7D6, 0x7D6, 0x7D7, 0x7D8, 0x7D8, 0x7D9, 0x7DA, 0x7DA
, 0x7DB, 0x7DC, 0x7DC, 0x7DD, 0x7DE, 0x7DE, 0x7DF, 0x7E0
, 0x7E1, 0x7E1, 0x7E2, 0x7E3, 0x7E3, 0x7E4, 0x7E5, 0x7E5
, 0x7E6, 0x7E7, 0x7E7, 0x7E8, 0x7E9, 0x7E9, 0x7EA, 0x7EB
, 0x7EC, 0x7EC, 0x7ED, 0x7EE, 0x7EE, 0x7EF, 0x7F0, 0x7F0
, 0x7F1, 0x7F2, 0x7F2, 0x7F3, 0x7F4, 0x7F4, 0x7F5, 0x7F6
, 0x7F6, 0x7F7, 0x7F8, 0x7F8, 0x7F9, 0x7FA, 0x7FB, 0x7FB
, 0x7FC, 0x7FD, 0x7FD, 0x7FE, 0x7FF, 0x7FF, 0x800, 0x801
, 0x801, 0x802, 0x803, 0x803, 0x804, 0x805, 0x805, 0x806
, 0x807, 0x807, 0x808, 0x809, 0x80A, 0x80A, 0x80B, 0x80C
, 0x80C, 0x80D, 0x80E, 0x80E, 0x80F, 0x810, 0x810, 0x811
, 0x812, 0x812, 0x813, 0x814, 0x814, 0x815, 0x816, 0x816
, 0x817, 0x818, 0x818, 0x819, 0x81A, 0x81B, 0x81B, 0x81C
, 0x81D, 0x81D, 0x81E, 0x81F, 0x81F, 0x820, 0x821, 0x821
, 0x822, 0x823, 0x823, 0x824, 0x825, 0x825, 0x826, 0x827
, 0x827, 0x828, 0x829, 0x829, 0x82A, 0x82B, 0x82B, 0x82C
, 0x82D, 0x82D, 0x82E, 0x82F, 0x82F, 0x830, 0x831, 0x831
, 0x832, 0x833, 0x834, 0x834, 0x835, 0x836, 0x836, 0x837
, 0x838, 0x838, 0x839, 0x83A, 0x83A, 0x83B, 0x83C, 0x83C
, 0x83D, 0x83E, 0x83E, 0x83F, 0x840, 0x840, 0x841, 0x842
, 0x842, 0x843, 0x844, 0x844, 0x845, 0x846, 0x846, 0x847
, 0x848, 0x848, 0x849, 0x84A, 0x84A, 0x84B, 0x84C, 0x84C
, 0x84D, 0x84E, 0x84E, 0x84F, 0x850, 0x850, 0x851, 0x852
, 0x852, 0x853, 0x854, 0x854, 0x855, 0x856, 0x856, 0x857
, 0x858, 0x858, 0x859, 0x85A, 0x85A, 0x85B, 0x85C, 0x85C
, 0x85D, 0x85E, 0x85E, 0x85F, 0x860, 0x860, 0x861, 0x862
, 0x862, 0x863, 0x864, 0x864, 0x865, 0x866, 0x866, 0x867
, 0x868, 0x868, 0x869, 0x86A, 0x86A, 0x86B, 0x86C, 0x86C
, 0x86D, 0x86E, 0x86E, 0x86F, 0x870, 0x870, 0x871, 0x872
, 0x872, 0x873, 0x874, 0x874, 0x875, 0x876, 0x876, 0x877
, 0x878, 0x878, 0x879, 0x87A, 0x87A, 0x87B, 0x87C, 0x87C
, 0x87D, 0x87E, 0x87E, 0x87F, 0x880, 0x880, 0x881, 0x882
, 0x882, 0x883, 0x884, 0x884, 0x885, 0x886, 0x886, 0x887
, 0x888, 0x888, 0x889, 0x88A, 0x88A, 0x88B, 0x88C, 0x88C
, 0x88D, 0x88E, 0x88E, 0x88F, 0x890, 0x890, 0x891, 0x892
, 0x892, 0x893, 0x893, 0x894, 0x895, 0x895, 0x896, 0x897
, 0x897, 0x898, 0x899, 0x899, 0x89A, 0x89B, 0x89B, 0x89C
, 0x89D, 0x89D, 0x89E, 0x89F, 0x89F, 0x8A0, 0x8A1, 0x8A1
, 0x8A2, 0x8A3, 0x8A3, 0x8A4, 0x8A5, 0x8A5, 0x8A6, 0x8A7
, 0x8A7, 0x8A8, 0x8A9, 0x8A9, 0x8AA, 0x8AA, 0x8AB, 0x8AC
, 0x8AC, 0x8AD, 0x8AE, 0x8AE, 0x8AF, 0x8B0, 0x8B0, 0x8B1
, 0x8B2, 0x8B2, 0x8B3, 0x8B4, 0x8B4, 0x8B5, 0x8B6, 0x8B6
, 0x8B7, 0x8B8, 0x8B8, 0x8B9, 0x8BA, 0x8BA, 0x8BB, 0x8BC
, 0x8BC, 0x8BD, 0x8BD, 0x8BE, 0x8BF, 0x8BF, 0x8C0, 0x8C1
, 0x8C1, 0x8C2, 0x8C3, 0x8C3, 0x8C4, 0x8C5, 0x8C5, 0x8C6
, 0x8C7, 0x8C7, 0x8C8, 0x8C9, 0x8C9, 0x8CA, 0x8CB, 0x8CB
, 0x8CC, 0x8CC, 0x8CD, 0x8CE, 0x8CE, 0x8CF, 0x8D0, 0x8D0
, 0x8D1, 0x8D2, 0x8D2, 0x8D3, 0x8D4, 0x8D4, 0x8D5, 0x8D6
, 0x8D6, 0x8D7, 0x8D8, 0x8D8, 0x8D9, 0x8D9, 0x8DA, 0x8DB
, 0x8DB, 0x8DC, 0x8DD, 0x8DD, 0x8DE, 0x8DF, 0x8DF, 0x8E0
, 0x8E1, 0x8E1, 0x8E2, 0x8E3, 0x8E3, 0x8E4, 0x8E4, 0x8E5
, 0x8E6, 0x8E6, 0x8E7, 0x8E8, 0x8E8, 0x8E9, 0x8EA, 0x8EA
, 0x8EB, 0x8EC, 0x8EC, 0x8ED, 0x8EE, 0x8EE, 0x8EF, 0x8EF
, 0x8F0, 0x8F1, 0x8F1, 0x8F2, 0x8F3, 0x8F3, 0x8F4, 0x8F5
, 0x8F5, 0x8F6, 0x8F7, 0x8F7, 0x8F8, 0x8F9, 0x8F9, 0x8FA
, 0x8FA, 0x8FB, 0x8FC, 0x8FC, 0x8FD, 0x8FE, 0x8FE, 0x8FF
, 0x900, 0x900, 0x901, 0x902, 0x902, 0x903, 0x903, 0x904
, 0x905, 0x905, 0x906, 0x907, 0x907, 0x908, 0x909, 0x909
, 0x90A, 0x90B, 0x90B, 0x90C, 0x90C, 0x90D, 0x90E, 0x90E
, 0x90F, 0x910, 0x910, 0x911, 0x912, 0x912, 0x913, 0x914
, 0x914, 0x915, 0x915, 0x916, 0x917, 0x917, 0x918, 0x919
, 0x919, 0x91A, 0x91B, 0x91B, 0x91C, 0x91C, 0x91D, 0x91E
, 0x91E, 0x91F, 0x920, 0x920, 0x921, 0x922, 0x922, 0x923
, 0x923, 0x924, 0x925, 0x925, 0x926, 0x927, 0x927, 0x928
, 0x929, 0x929, 0x92A, 0x92B, 0x92B, 0x92C, 0x92C, 0x92D
, 0x92E, 0x92E, 0x92F, 0x930, 0x930, 0x931, 0x932, 0x932
, 0x933, 0x933, 0x934, 0x935, 0x935, 0x936, 0x937, 0x937
, 0x938, 0x938, 0x939, 0x93A, 0x93A, 0x93B, 0x93C, 0x93C
, 0x93D, 0x93E, 0x93E, 0x93F, 0x93F, 0x940, 0x941, 0x941
, 0x942, 0x943, 0x943, 0x944, 0x945, 0x945, 0x946, 0x946
, 0x947, 0x948, 0x948, 0x949, 0x94A, 0x94A, 0x94B, 0x94C
, 0x94C, 0x94D, 0x94D, 0x94E, 0x94F, 0x94F, 0x950, 0x951
, 0x951, 0x952, 0x952, 0x953, 0x954, 0x954, 0x955, 0x956
, 0x956, 0x957, 0x958, 0x958, 0x959, 0x959, 0x95A, 0x95B
, 0x95B, 0x95C, 0x95D, 0x95D, 0x95E, 0x95E, 0x95F, 0x960
, 0x960, 0x961, 0x962, 0x962, 0x963, 0x963, 0x964, 0x965
, 0x965, 0x966, 0x967, 0x967, 0x968, 0x969, 0x969, 0x96A
, 0x96A, 0x96B, 0x96C, 0x96C, 0x96D, 0x96E, 0x96E, 0x96F
, 0x96F, 0x970, 0x971, 0x971, 0x972, 0x973, 0x973, 0x974
, 0x974, 0x975, 0x976, 0x976, 0x977, 0x978, 0x978, 0x979
, 0x979, 0x97A, 0x97B, 0x97B, 0x97C, 0x97D, 0x97D, 0x97E
, 0x97E, 0x97F, 0x980, 0x980, 0x981, 0x982, 0x982, 0x983
, 0x983, 0x984, 0x985, 0x985, 0x986, 0x987, 0x987, 0x988
, 0x988, 0x989, 0x98A, 0x98A, 0x98B, 0x98C, 0x98C, 0x98D
, 0x98D, 0x98E, 0x98F, 0x98F, 0x990, 0x991, 0x991, 0x992
, 0x992, 0x993, 0x994, 0x994, 0x995, 0x996, 0x996, 0x997
, 0x997, 0x998, 0x999, 0x999, 0x99A, 0x99B, 0x99B, 0x99C
, 0x99C, 0x99D, 0x99E, 0x99E, 0x99F, 0x99F, 0x9A0, 0x9A1
, 0x9A1, 0x9A2, 0x9A3, 0x9A3, 0x9A4, 0x9A4, 0x9A5, 0x9A6
, 0x9A6, 0x9A7, 0x9A8, 0x9A8, 0x9A9, 0x9A9, 0x9AA, 0x9AB
, 0x9AB, 0x9AC, 0x9AC, 0x9AD, 0x9AE, 0x9AE, 0x9AF, 0x9B0
, 0x9B0, 0x9B1, 0x9B1, 0x9B2, 0x9B3, 0x9B3, 0x9B4, 0x9B5
, 0x9B5, 0x9B6, 0x9B6, 0x9B7, 0x9B8, 0x9B8, 0x9B9, 0x9B9
, 0x9BA, 0x9BB, 0x9BB, 0x9BC, 0x9BD, 0x9BD, 0x9BE, 0x9BE
, 0x9BF, 0x9C0, 0x9C0, 0x9C1, 0x9C1, 0x9C2, 0x9C3, 0x9C3
, 0x9C4, 0x9C5, 0x9C5, 0x9C6, 0x9C6, 0x9C7, 0x9C8, 0x9C8
, 0x9C9, 0x9C9, 0x9CA, 0x9CB, 0x9CB, 0x9CC, 0x9CD, 0x9CD
, 0x9CE, 0x9CE, 0x9CF, 0x9D0, 0x9D0, 0x9D1, 0x9D1, 0x9D2
, 0x9D3, 0x9D3, 0x9D4, 0x9D5, 0x9D5, 0x9D6, 0x9D6, 0x9D7
, 0x9D8, 0x9D8, 0x9D9, 0x9D9, 0x9DA, 0x9DB, 0x9DB, 0x9DC
, 0x9DC, 0x9DD, 0x9DE, 0x9DE, 0x9DF, 0x9E0, 0x9E0, 0x9E1
, 0x9E1, 0x9E2, 0x9E3, 0x9E3, 0x9E4, 0x9E4, 0x9E5, 0x9E6
, 0x9E6, 0x9E7, 0x9E7, 0x9E8, 0x9E9, 0x9E9, 0x9EA, 0x9EB
, 0x9EB, 0x9EC, 0x9EC, 0x9ED, 0x9EE, 0x9EE, 0x9EF, 0x9EF
, 0x9F0, 0x9F1, 0x9F1, 0x9F2, 0x9F2, 0x9F3, 0x9F4, 0x9F4
, 0x9F5, 0x9F6, 0x9F6, 0x9F7, 0x9F7, 0x9F8, 0x9F9, 0x9F9
, 0x9FA, 0x9FA, 0x9FB, 0x9FC, 0x9FC, 0x9FD, 0x9FD, 0x9FE
, 0x9FF, 0x9FF, 0xA00, 0xA00, 0xA01, 0xA02, 0xA02, 0xA03
, 0xA03, 0xA04, 0xA05, 0xA05, 0xA06, 0xA07, 0xA07, 0xA08
, 0xA08, 0xA09, 0xA0A, 0xA0A, 0xA0B, 0xA0B, 0xA0C, 0xA0D
, 0xA0D, 0xA0E, 0xA0E, 0xA0F, 0xA10, 0xA10, 0xA11, 0xA11
, 0xA12, 0xA13, 0xA13, 0xA14, 0xA14, 0xA15, 0xA16, 0xA16
, 0xA17, 0xA17, 0xA18, 0xA19, 0xA19, 0xA1A, 0xA1A, 0xA1B
, 0xA1C, 0xA1C, 0xA1D, 0xA1E, 0xA1E, 0xA1F, 0xA1F, 0xA20
, 0xA21, 0xA21, 0xA22, 0xA22, 0xA23, 0xA24, 0xA24, 0xA25
, 0xA25, 0xA26, 0xA27, 0xA27, 0xA28, 0xA28, 0xA29, 0xA2A
, 0xA2A, 0xA2B, 0xA2B, 0xA2C, 0xA2D, 0xA2D, 0xA2E, 0xA2E
, 0xA2F, 0xA30, 0xA30, 0xA31, 0xA31, 0xA32, 0xA33, 0xA33
, 0xA34, 0xA34, 0xA35, 0xA36, 0xA36, 0xA37, 0xA37, 0xA38
, 0xA39, 0xA39, 0xA3A, 0xA3A, 0xA3B, 0xA3C, 0xA3C, 0xA3D
, 0xA3D, 0xA3E, 0xA3F, 0xA3F, 0xA40, 0xA40, 0xA41, 0xA42
, 0xA42, 0xA43, 0xA43, 0xA44, 0xA45, 0xA45, 0xA46, 0xA46
, 0xA47, 0xA48, 0xA48, 0xA49, 0xA49, 0xA4A, 0xA4B, 0xA4B
, 0xA4C, 0xA4C, 0xA4D, 0xA4E, 0xA4E, 0xA4F, 0xA4F, 0xA50
, 0xA50, 0xA51, 0xA52, 0xA52, 0xA53, 0xA53, 0xA54, 0xA55
, 0xA55, 0xA56, 0xA56, 0xA57, 0xA58, 0xA58, 0xA59, 0xA59
, 0xA5A, 0xA5B, 0xA5B, 0xA5C, 0xA5C, 0xA5D, 0xA5E, 0xA5E
, 0xA5F, 0xA5F, 0xA60, 0xA61, 0xA61, 0xA62, 0xA62, 0xA63
, 0xA64, 0xA64, 0xA65, 0xA65, 0xA66, 0xA67, 0xA67, 0xA68
, 0xA68, 0xA69, 0xA69, 0xA6A, 0xA6B, 0xA6B, 0xA6C, 0xA6C
, 0xA6D, 0xA6E, 0xA6E, 0xA6F, 0xA6F, 0xA70, 0xA71, 0xA71
, 0xA72, 0xA72, 0xA73, 0xA74, 0xA74, 0xA75, 0xA75, 0xA76
, 0xA76, 0xA77, 0xA78, 0xA78, 0xA79, 0xA79, 0xA7A, 0xA7B
, 0xA7B, 0xA7C, 0xA7C, 0xA7D, 0xA7E, 0xA7E, 0xA7F, 0xA7F
, 0xA80, 0xA81, 0xA81, 0xA82, 0xA82, 0xA83, 0xA83, 0xA84
, 0xA85, 0xA85, 0xA86, 0xA86, 0xA87, 0xA88, 0xA88, 0xA89
, 0xA89, 0xA8A, 0xA8B, 0xA8B, 0xA8C, 0xA8C, 0xA8D, 0xA8D
, 0xA8E, 0xA8F, 0xA8F, 0xA90, 0xA90, 0xA91, 0xA92, 0xA92
, 0xA93, 0xA93, 0xA94, 0xA95, 0xA95, 0xA96, 0xA96, 0xA97
, 0xA97, 0xA98, 0xA99, 0xA99, 0xA9A, 0xA9A, 0xA9B, 0xA9C
, 0xA9C, 0xA9D, 0xA9D, 0xA9E, 0xA9F, 0xA9F, 0xAA0, 0xAA0
, 0xAA1, 0xAA1, 0xAA2, 0xAA3, 0xAA3, 0xAA4, 0xAA4, 0xAA5
, 0xAA6, 0xAA6, 0xAA7, 0xAA7, 0xAA8, 0xAA8, 0xAA9, 0xAAA
, 0xAAA, 0xAAB, 0xAAB, 0xAAC, 0xAAD, 0xAAD, 0xAAE, 0xAAE
, 0xAAF, 0xAAF, 0xAB0, 0xAB1, 0xAB1, 0xAB2, 0xAB2, 0xAB3
, 0xAB4, 0xAB4, 0xAB5, 0xAB5, 0xAB6, 0xAB6, 0xAB7, 0xAB8
, 0xAB8, 0xAB9, 0xAB9, 0xABA, 0xABB, 0xABB, 0xABC, 0xABC
, 0xABD, 0xABD, 0xABE, 0xABF, 0xABF, 0xAC0, 0xAC0, 0xAC1
, 0xAC2, 0xAC2, 0xAC3, 0xAC3, 0xAC4, 0xAC4, 0xAC5, 0xAC6
, 0xAC6, 0xAC7, 0xAC7, 0xAC8, 0xAC9, 0xAC9, 0xACA, 0xACA
, 0xACB, 0xACB, 0xACC, 0xACD, 0xACD, 0xACE, 0xACE, 0xACF
, 0xACF, 0xAD0, 0xAD1, 0xAD1, 0xAD2, 0xAD2, 0xAD3, 0xAD4
, 0xAD4, 0xAD5, 0xAD5, 0xAD6, 0xAD6, 0xAD7, 0xAD8, 0xAD8
, 0xAD9, 0xAD9, 0xADA, 0xADA, 0xADB, 0xADC, 0xADC, 0xADD
, 0xADD, 0xADE, 0xADF, 0xADF, 0xAE0, 0xAE0, 0xAE1, 0xAE1
, 0xAE2, 0xAE3, 0xAE3, 0xAE4, 0xAE4, 0xAE5, 0xAE5, 0xAE6
, 0xAE7, 0xAE7, 0xAE8, 0xAE8, 0xAE9, 0xAE9, 0xAEA, 0xAEB
, 0xAEB, 0xAEC, 0xAEC, 0xAED, 0xAED, 0xAEE, 0xAEF, 0xAEF
, 0xAF0, 0xAF0, 0xAF1, 0xAF2, 0xAF2, 0xAF3, 0xAF3, 0xAF4
, 0xAF4, 0xAF5, 0xAF6, 0xAF6, 0xAF7, 0xAF7, 0xAF8, 0xAF8
, 0xAF9, 0xAFA, 0xAFA, 0xAFB, 0xAFB, 0xAFC, 0xAFC, 0xAFD
, 0xAFE, 0xAFE, 0xAFF, 0xAFF, 0xB00, 0xB00, 0xB01, 0xB02
, 0xB02, 0xB03, 0xB03, 0xB04, 0xB04, 0xB05, 0xB06, 0xB06
, 0xB07, 0xB07, 0xB08, 0xB08, 0xB09, 0xB0A, 0xB0A, 0xB0B
, 0xB0B, 0xB0C, 0xB0C, 0xB0D, 0xB0E, 0xB0E, 0xB0F, 0xB0F
, 0xB10, 0xB10, 0xB11, 0xB12, 0xB12, 0xB13, 0xB13, 0xB14
, 0xB14, 0xB15, 0xB16, 0xB16, 0xB17, 0xB17, 0xB18, 0xB18
, 0xB19, 0xB1A, 0xB1A, 0xB1B, 0xB1B, 0xB1C, 0xB1C, 0xB1D
, 0xB1E, 0xB1E, 0xB1F, 0xB1F, 0xB20, 0xB20, 0xB21, 0xB22
, 0xB22, 0xB23, 0xB23, 0xB24, 0xB24, 0xB25, 0xB26, 0xB26
, 0xB27, 0xB27, 0xB28, 0xB28, 0xB29, 0xB2A, 0xB2A, 0xB2B
, 0xB2B, 0xB2C, 0xB2C, 0xB2D, 0xB2D, 0xB2E, 0xB2F, 0xB2F
, 0xB30, 0xB30, 0xB31, 0xB31, 0xB32, 0xB33, 0xB33, 0xB34
, 0xB34, 0xB35, 0xB35, 0xB36, 0xB37, 0xB37, 0xB38, 0xB38
, 0xB39, 0xB39, 0xB3A, 0xB3B, 0xB3B, 0xB3C, 0xB3C, 0xB3D
, 0xB3D, 0xB3E, 0xB3E, 0xB3F, 0xB40, 0xB40, 0xB41, 0xB41
, 0xB42, 0xB42, 0xB43, 0xB44, 0xB44, 0xB45, 0xB45, 0xB46
, 0xB46, 0xB47, 0xB48, 0xB48, 0xB49, 0xB49, 0xB4A, 0xB4A
, 0xB4B, 0xB4B, 0xB4C, 0xB4D, 0xB4D, 0xB4E, 0xB4E, 0xB4F
, 0xB4F, 0xB50, 0xB51, 0xB51, 0xB52, 0xB52, 0xB53, 0xB53
, 0xB54, 0xB54, 0xB55, 0xB56, 0xB56, 0xB57, 0xB57, 0xB58
, 0xB58, 0xB59, 0xB5A, 0xB5A, 0xB5B, 0xB5B, 0xB5C, 0xB5C
, 0xB5D, 0xB5D, 0xB5E, 0xB5F, 0xB5F, 0xB60, 0xB60, 0xB61
, 0xB61, 0xB62, 0xB63, 0xB63, 0xB64, 0xB64, 0xB65, 0xB65
, 0xB66, 0xB66, 0xB67, 0xB68, 0xB68, 0xB69, 0xB69, 0xB6A
, 0xB6A, 0xB6B, 0xB6B, 0xB6C, 0xB6D, 0xB6D, 0xB6E, 0xB6E
, 0xB6F, 0xB6F, 0xB70, 0xB70, 0xB71, 0xB72, 0xB72, 0xB73
, 0xB73, 0xB74, 0xB74, 0xB75, 0xB76, 0xB76, 0xB77, 0xB77
, 0xB78, 0xB78, 0xB79, 0xB79, 0xB7A, 0xB7B, 0xB7B, 0xB7C
, 0xB7C, 0xB7D, 0xB7D, 0xB7E, 0xB7E, 0xB7F, 0xB80, 0xB80
, 0xB81, 0xB81, 0xB82, 0xB82, 0xB83, 0xB83, 0xB84, 0xB85
, 0xB85, 0xB86, 0xB86, 0xB87, 0xB87, 0xB88, 0xB88, 0xB89
, 0xB8A, 0xB8A, 0xB8B, 0xB8B, 0xB8C, 0xB8C, 0xB8D, 0xB8D
, 0xB8E, 0xB8F, 0xB8F, 0xB90, 0xB90, 0xB91, 0xB91, 0xB92
, 0xB92, 0xB93, 0xB94, 0xB94, 0xB95, 0xB95, 0xB96, 0xB96
, 0xB97, 0xB97, 0xB98, 0xB99, 0xB99, 0xB9A, 0xB9A, 0xB9B
, 0xB9B, 0xB9C, 0xB9C, 0xB9D, 0xB9E, 0xB9E, 0xB9F, 0xB9F
, 0xBA0, 0xBA0, 0xBA1, 0xBA1, 0xBA2, 0xBA3, 0xBA3, 0xBA4
, 0xBA4, 0xBA5, 0xBA5, 0xBA6, 0xBA6, 0xBA7, 0xBA7, 0xBA8
, 0xBA9, 0xBA9, 0xBAA, 0xBAA, 0xBAB, 0xBAB, 0xBAC, 0xBAC
, 0xBAD, 0xBAE, 0xBAE, 0xBAF, 0xBAF, 0xBB0, 0xBB0, 0xBB1
, 0xBB1, 0xBB2, 0xBB3, 0xBB3, 0xBB4, 0xBB4, 0xBB5, 0xBB5
, 0xBB6, 0xBB6, 0xBB7, 0xBB7, 0xBB8, 0xBB9, 0xBB9, 0xBBA
, 0xBBA, 0xBBB, 0xBBB, 0xBBC, 0xBBC, 0xBBD, 0xBBE, 0xBBE
, 0xBBF, 0xBBF, 0xBC0, 0xBC0, 0xBC1, 0xBC1, 0xBC2, 0xBC2
, 0xBC3, 0xBC4, 0xBC4, 0xBC5, 0xBC5, 0xBC6, 0xBC6, 0xBC7
, 0xBC7, 0xBC8, 0xBC8, 0xBC9, 0xBCA, 0xBCA, 0xBCB, 0xBCB
, 0xBCC, 0xBCC, 0xBCD, 0xBCD, 0xBCE, 0xBCE, 0xBCF, 0xBD0
, 0xBD0, 0xBD1, 0xBD1, 0xBD2, 0xBD2, 0xBD3, 0xBD3, 0xBD4
, 0xBD5, 0xBD5, 0xBD6, 0xBD6, 0xBD7, 0xBD7, 0xBD8, 0xBD8
, 0xBD9, 0xBD9, 0xBDA, 0xBDB, 0xBDB, 0xBDC, 0xBDC, 0xBDD
, 0xBDD, 0xBDE, 0xBDE, 0xBDF, 0xBDF, 0xBE0, 0xBE1, 0xBE1
, 0xBE2, 0xBE2, 0xBE3, 0xBE3, 0xBE4, 0xBE4, 0xBE5, 0xBE5
, 0xBE6, 0xBE6, 0xBE7, 0xBE8, 0xBE8, 0xBE9, 0xBE9, 0xBEA
, 0xBEA, 0xBEB, 0xBEB, 0xBEC, 0xBEC, 0xBED, 0xBEE, 0xBEE
, 0xBEF, 0xBEF, 0xBF0, 0xBF0, 0xBF1, 0xBF1, 0xBF2, 0xBF2
, 0xBF3, 0xBF4, 0xBF4, 0xBF5, 0xBF5, 0xBF6, 0xBF6, 0xBF7
, 0xBF7, 0xBF8, 0xBF8, 0xBF9, 0xBFA, 0xBFA, 0xBFB, 0xBFB
, 0xBFC, 0xBFC, 0xBFD, 0xBFD, 0xBFE, 0xBFE, 0xBFF, 0xBFF
};

/*
 * In  - period [&FFFFFFFF..428*256..1]
 * Out - tone in 1/256 of semitone ~[-119*256..64*256..265*256]
 */
int32_t Convert_PeriodToTone(uint32_t period)
{
	uint32_t log2, temp;
	int32_t tone;
	// tone = central tone + 12*256*LOG2(central period/period)
	// tone = central tone + 12*256*LOG2(central period) - 12*256*LOG2(period)

	// LOG2(period)
	// Find highest set bit = Integer part of LOG2(period)
	log2 = 0;
	temp = period;
	if (temp >= 0x10000)
	{
		log2 += 16;
		temp >>= 16;
	}
	if (temp >= 0x100)
	{
		log2 += 8;
		temp >>= 8;
	}
	if (temp >= 0x10)
	{
		log2 += 4;
		temp >>= 4;
	}
	if (temp >= 0x4)
	{
		log2 += 2;
		temp >>= 2;
	}
	if (temp >= 0x2)
		log2 += 1;
	// Keep the 12 most significant bits of period
	period = ((period << (32 - log2)) >> 20);
	// Read Fraction part of LOG2(period) in 1/256 semitones
	tone = SemitoneFrac_Table[period];
	// Convert octave in 1/256 semitones and add to fraction
	tone += log2 * 12 * 256;

	// tone = 64*256 + 12*256*LOG2(428*256) - value
	return 0x108e6 - tone;
}

/*
 * Converts the difference between to frequencies into x/256 semitones.
 *
 * In  - base, base freqency in Hz [1 - 39199], usually 8363
 *       freq, frequency in Hz
 * Out - tone difference in 1/256 semitone
 */
int32_t Convert_RelTone(uint32_t base, uint32_t freq)
{
	if (!freq) return 0;

	// We will use the Convert_PeriodToSemitone()
	// as helper so we define the period: central period * base / freq
	base = (base << 16) / freq;
	return 0x4000 - Convert_FracToTone(base);
//	base *= 428*256;
//	base /= freq;
//	return Convert_PeriodToTone(base) - Note_Central*256;
}

static const uint32_t Table_FracSemitone12256[12*256+1] =
{ 0x40000000, 0x3FFC4DBB, 0x3FF89BAB, 0x3FF4E9D4, 0x3FF13834, 0x3FED86C7
, 0x3FE9D594, 0x3FE62498, 0x3FE273CF, 0x3FDEC340, 0x3FDB12E7, 0x3FD762C2
, 0x3FD3B2D6, 0x3FD00321, 0x3FCC539F, 0x3FC8A457, 0x3FC4F545, 0x3FC14667
, 0x3FBD97C2, 0x3FB9E954, 0x3FB63B19, 0x3FB28D18, 0x3FAEDF4D, 0x3FAB31B5
, 0x3FA78457, 0x3FA3D72F, 0x3FA02A3A, 0x3F9C7D7F, 0x3F98D0FA, 0x3F9524A9
, 0x3F917890, 0x3F8DCCAE, 0x3F8A2100, 0x3F86758A, 0x3F82CA4B, 0x3F7F1F3F
, 0x3F7B746D, 0x3F77C9D0, 0x3F741F67, 0x3F707537, 0x3F6CCB3D, 0x3F692177
, 0x3F6577E9, 0x3F61CE92, 0x3F5E256E, 0x3F5A7C82, 0x3F56D3CD, 0x3F532B4C
, 0x3F4F8303, 0x3F4BDAF0, 0x3F483311, 0x3F448B6A, 0x3F40E3F9, 0x3F3D3CBC
, 0x3F3995B7, 0x3F35EEE9, 0x3F32484D, 0x3F2EA1EB, 0x3F2AFBBE, 0x3F2755C5
, 0x3F23B004, 0x3F200A79, 0x3F1C6521, 0x3F18C002, 0x3F151B19, 0x3F117663
, 0x3F0DD1E6, 0x3F0A2D9E, 0x3F06898A, 0x3F02E5AE, 0x3EFF4208, 0x3EFB9E95
, 0x3EF7FB5B, 0x3EF45856, 0x3EF0B585, 0x3EED12EC, 0x3EE97088, 0x3EE5CE58
, 0x3EE22C60, 0x3EDE8A9E, 0x3EDAE90F, 0x3ED747B8, 0x3ED3A697, 0x3ED005A8
, 0x3ECC64F3, 0x3EC8C473, 0x3EC52425, 0x3EC18410, 0x3EBDE431, 0x3EBA4485
, 0x3EB6A510, 0x3EB305D2, 0x3EAF66C6, 0x3EABC7F3, 0x3EA82955, 0x3EA48AE9
, 0x3EA0ECB6, 0x3E9D4EB9, 0x3E99B0EE, 0x3E96135C, 0x3E9275FF, 0x3E8ED8D5
, 0x3E8B3BE2, 0x3E879F26, 0x3E84029C, 0x3E80664A, 0x3E7CCA2D, 0x3E792E43
, 0x3E759291, 0x3E71F715, 0x3E6E5BCB, 0x3E6AC0B9, 0x3E6725DD, 0x3E638B33
, 0x3E5FF0C1, 0x3E5C5684, 0x3E58BC7A, 0x3E5522A8, 0x3E51890B, 0x3E4DEFA1
, 0x3E4A566E, 0x3E46BD71, 0x3E4324A7, 0x3E3F8C14, 0x3E3BF3B6, 0x3E385B8B
, 0x3E34C397, 0x3E312BD9, 0x3E2D944D, 0x3E29FCF9, 0x3E2665DA, 0x3E22CEEE
, 0x3E1F3839, 0x3E1BA1B9, 0x3E180B6C, 0x3E147556, 0x3E10DF76, 0x3E0D49C8
, 0x3E09B451, 0x3E061F0F, 0x3E028A00, 0x3DFEF528, 0x3DFB6086, 0x3DF7CC15
, 0x3DF437DC, 0x3DF0A3D8, 0x3DED1007, 0x3DE97C6D, 0x3DE5E907, 0x3DE255D4
, 0x3DDEC2D9, 0x3DDB3012, 0x3DD79D7E, 0x3DD40B21, 0x3DD078F8, 0x3DCCE702
, 0x3DC95544, 0x3DC5C3BA, 0x3DC23262, 0x3DBEA142, 0x3DBB1056, 0x3DB77F9D
, 0x3DB3EF1B, 0x3DB05ECD, 0x3DACCEB2, 0x3DA93ECE, 0x3DA5AF1E, 0x3DA21FA1
, 0x3D9E905B, 0x3D9B0149, 0x3D97726A, 0x3D93E3C1, 0x3D90554E, 0x3D8CC70C
, 0x3D893902, 0x3D85AB2C, 0x3D821D88, 0x3D7E901B, 0x3D7B02E2, 0x3D7775DC
, 0x3D73E90D, 0x3D705C72, 0x3D6CD009, 0x3D6943D7, 0x3D65B7D9, 0x3D622C0E
, 0x3D5EA079, 0x3D5B1519, 0x3D5789EB, 0x3D53FEF3, 0x3D507430, 0x3D4CE99F
, 0x3D495F45, 0x3D45D51F, 0x3D424B2B, 0x3D3EC16E, 0x3D3B37E5, 0x3D37AE8D
, 0x3D34256D, 0x3D309C81, 0x3D2D13C7, 0x3D298B43, 0x3D2602F4, 0x3D227AD6
, 0x3D1EF2EF, 0x3D1B6B3D, 0x3D17E3BC, 0x3D145C71, 0x3D10D55B, 0x3D0D4E77
, 0x3D09C7C9, 0x3D06414F, 0x3D02BB07, 0x3CFF34F6, 0x3CFBAF18, 0x3CF8296C
, 0x3CF4A3F7, 0x3CF11EB6, 0x3CED99A6, 0x3CEA14CD, 0x3CE69028, 0x3CE30BB5
, 0x3CDF8778, 0x3CDC036F, 0x3CD87F97, 0x3CD4FBF6, 0x3CD17889, 0x3CCDF54E
, 0x3CCA7248, 0x3CC6EF77, 0x3CC36CD7, 0x3CBFEA6E, 0x3CBC6838, 0x3CB8E634
, 0x3CB56466, 0x3CB1E2CC, 0x3CAE6164, 0x3CAAE031, 0x3CA75F33, 0x3CA3DE66
, 0x3CA05DCF, 0x3C9CDD6C, 0x3C995D3A, 0x3C95DD3E, 0x3C925D76, 0x3C8EDDE0
, 0x3C8B5E7F, 0x3C87DF53, 0x3C846057, 0x3C80E192, 0x3C7D6301, 0x3C79E4A0
, 0x3C766676, 0x3C72E87F, 0x3C6F6ABA, 0x3C6BED2A, 0x3C686FCF, 0x3C64F2A4
, 0x3C6175AF, 0x3C5DF8EE, 0x3C5A7C5E, 0x3C570005, 0x3C5383DE, 0x3C5007E9
, 0x3C4C8C2A, 0x3C49109E, 0x3C459543, 0x3C421A1E, 0x3C3E9F2D, 0x3C3B246C
, 0x3C37A9E2, 0x3C342F8B, 0x3C30B565, 0x3C2D3B75, 0x3C29C1B8, 0x3C26482C
, 0x3C22CED6, 0x3C1F55B3, 0x3C1BDCC1, 0x3C186405, 0x3C14EB7D, 0x3C117325
, 0x3C0DFB03, 0x3C0A8314, 0x3C070B56, 0x3C0393CE, 0x3C001C79, 0x3BFCA555
, 0x3BF92E67, 0x3BF5B7AB, 0x3BF24121, 0x3BEECACC, 0x3BEB54AB, 0x3BE7DEBA
, 0x3BE468FE, 0x3BE0F376, 0x3BDD7E1F, 0x3BDA08FD, 0x3BD6940E, 0x3BD31F50
, 0x3BCFAAC8, 0x3BCC3672, 0x3BC8C24E, 0x3BC54E5E, 0x3BC1DAA2, 0x3BBE6717
, 0x3BBAF3C0, 0x3BB7809D, 0x3BB40DAB, 0x3BB09AEE, 0x3BAD2863, 0x3BA9B60A
, 0x3BA643E6, 0x3BA2D1F4, 0x3B9F6034, 0x3B9BEEA8, 0x3B987D50, 0x3B950C28
, 0x3B919B35, 0x3B8E2A75, 0x3B8AB9E6, 0x3B87498C, 0x3B83D965, 0x3B80696E
, 0x3B7CF9AC, 0x3B798A1D, 0x3B761ABF, 0x3B72AB96, 0x3B6F3C9F, 0x3B6BCDD9
, 0x3B685F48, 0x3B64F0EA, 0x3B6182BC, 0x3B5E14C4, 0x3B5AA6FE, 0x3B573968
, 0x3B53CC07, 0x3B505ED9, 0x3B4CF1DC, 0x3B498513, 0x3B46187D, 0x3B42AC17
, 0x3B3F3FE7, 0x3B3BD3E9, 0x3B38681A, 0x3B34FC82, 0x3B31911B, 0x3B2E25E5
, 0x3B2ABAE4, 0x3B275015, 0x3B23E576, 0x3B207B0D, 0x3B1D10D5, 0x3B19A6CE
, 0x3B163CFC, 0x3B12D35C, 0x3B0F69EC, 0x3B0C00B2, 0x3B0897A9, 0x3B052ED1
, 0x3B01C62D, 0x3AFE5DBC, 0x3AFAF57B, 0x3AF78D6E, 0x3AF42594, 0x3AF0BDEA
, 0x3AED5675, 0x3AE9EF32, 0x3AE6881F, 0x3AE32140, 0x3ADFBA94, 0x3ADC5418
, 0x3AD8EDD0, 0x3AD587BB, 0x3AD221D6, 0x3ACEBC25, 0x3ACB56A6, 0x3AC7F158
, 0x3AC48C3D, 0x3AC12756, 0x3ABDC29D, 0x3ABA5E1A, 0x3AB6F9C8, 0x3AB395A7
, 0x3AB031BA, 0x3AACCDFF, 0x3AA96A73, 0x3AA6071D, 0x3AA2A3F8, 0x3A9F4103
, 0x3A9BDE42, 0x3A987BB4, 0x3A951955, 0x3A91B72B, 0x3A8E5532, 0x3A8AF36A
, 0x3A8791D5, 0x3A843073, 0x3A80CF40, 0x3A7D6E42, 0x3A7A0D75, 0x3A76ACD8
, 0x3A734C70, 0x3A6FEC39, 0x3A6C8C32, 0x3A692C5F, 0x3A65CCBE, 0x3A626D4D
, 0x3A5F0E10, 0x3A5BAF04, 0x3A585029, 0x3A54F181, 0x3A51930B, 0x3A4E34C5
, 0x3A4AD6B3, 0x3A4778D2, 0x3A441B21, 0x3A40BDA4, 0x3A3D6059, 0x3A3A033D
, 0x3A36A656, 0x3A3349A0, 0x3A2FED19, 0x3A2C90C7, 0x3A2934A6, 0x3A25D8B4
, 0x3A227CF7, 0x3A1F216B, 0x3A1BC60E, 0x3A186AE6, 0x3A150FEF, 0x3A11B527
, 0x3A0E5A94, 0x3A0B0032, 0x3A07A5FF, 0x3A044C00, 0x3A00F232, 0x39FD9894
, 0x39FA3F2A, 0x39F6E5F1, 0x39F38CE7, 0x39F03411, 0x39ECDB6D, 0x39E982F8
, 0x39E62AB6, 0x39E2D2A6, 0x39DF7AC5, 0x39DC2318, 0x39D8CB9D, 0x39D57450
, 0x39D21D37, 0x39CEC650, 0x39CB6F97, 0x39C81913, 0x39C4C2BF, 0x39C16C9B
, 0x39BE16AA, 0x39BAC0EB, 0x39B76B5B, 0x39B415FE, 0x39B0C0D2, 0x39AD6BD6
, 0x39AA170D, 0x39A6C275, 0x39A36E0C, 0x39A019D7, 0x399CC5D3, 0x399971FE
, 0x39961E5C, 0x3992CAEC, 0x398F77AA, 0x398C249C, 0x3988D1C0, 0x39857F11
, 0x39822C97, 0x397EDA4D, 0x397B8833, 0x3978364B, 0x3974E495, 0x3971930E
, 0x396E41BA, 0x396AF097, 0x39679FA2, 0x39644EE1, 0x3960FE51, 0x395DADF0
, 0x395A5DC2, 0x39570DC5, 0x3953BDF7, 0x39506E5C, 0x394D1EF2, 0x3949CFB6
, 0x394680AE, 0x394331D7, 0x393FE32E, 0x393C94B9, 0x39394674, 0x3935F85E
, 0x3932AA7C, 0x392F5CCA, 0x392C0F46, 0x3928C1F6, 0x392574D7, 0x392227E5
, 0x391EDB28, 0x391B8E9B, 0x3918423C, 0x3914F611, 0x3911AA16, 0x390E5E49
, 0x390B12B0, 0x3907C748, 0x39047C0D, 0x39013106, 0x38FDE630, 0x38FA9B88
, 0x38F75113, 0x38F406CE, 0x38F0BCB8, 0x38ED72D5, 0x38EA2923, 0x38E6DF9E
, 0x38E3964D, 0x38E04D2C, 0x38DD043A, 0x38D9BB7A, 0x38D672EB, 0x38D32A8A
, 0x38CFE25C, 0x38CC9A5F, 0x38C95290, 0x38C60AF3, 0x38C2C387, 0x38BF7C4A
, 0x38BC353F, 0x38B8EE64, 0x38B5A7B8, 0x38B2613E, 0x38AF1AF5, 0x38ABD4DA
, 0x38A88EF2, 0x38A5493A, 0x38A203B0, 0x389EBE59, 0x389B7932, 0x38983439
, 0x3894EF73, 0x3891AADD, 0x388E6675, 0x388B2240, 0x3887DE3B, 0x38849A64
, 0x388156C0, 0x387E134C, 0x387AD005, 0x38778CF2, 0x38744A0E, 0x38710759
, 0x386DC4D6, 0x386A8283, 0x3867405E, 0x3863FE6C, 0x3860BCAA, 0x385D7B15
, 0x385A39B4, 0x3856F882, 0x3853B77E, 0x385076AC, 0x384D360B, 0x3849F597
, 0x3846B556, 0x38437545, 0x38403561, 0x383CF5B0, 0x3839B62F, 0x383676DC
, 0x383337BB, 0x382FF8CA, 0x382CBA06, 0x38297B75, 0x38263D14, 0x3822FEE1
, 0x381FC0E0, 0x381C830E, 0x3819456B, 0x381607F9, 0x3812CAB8, 0x380F8DA4
, 0x380C50C2, 0x38091410, 0x3805D78C, 0x38029B3A, 0x37FF5F18, 0x37FC2323
, 0x37F8E760, 0x37F5ABCD, 0x37F27068, 0x37EF3535, 0x37EBFA31, 0x37E8BF5B
, 0x37E584B7, 0x37E24A43, 0x37DF0FFC, 0x37DBD5E8, 0x37D89C03, 0x37D5624B
, 0x37D228C5, 0x37CEEF6F, 0x37CBB647, 0x37C87D50, 0x37C54489, 0x37C20BEF
, 0x37BED388, 0x37BB9B4F, 0x37B86344, 0x37B52B6C, 0x37B1F3C2, 0x37AEBC46
, 0x37AB84FC, 0x37A84DE1, 0x37A516F4, 0x37A1E038, 0x379EA9AC, 0x379B734D
, 0x37983D20, 0x37950723, 0x3791D152, 0x378E9BB4, 0x378B6644, 0x37883102
, 0x3784FBF2, 0x3781C711, 0x377E925D, 0x377B5DDB, 0x37782988, 0x3774F563
, 0x3771C16F, 0x376E8DAA, 0x376B5A13, 0x376826AD, 0x3764F376, 0x3761C06D
, 0x375E8D95, 0x375B5AEC, 0x37582870, 0x3754F626, 0x3751C40B, 0x374E921D
, 0x374B6061, 0x37482ED4, 0x3744FD73, 0x3741CC45, 0x373E9B45, 0x373B6A73
, 0x373839D1, 0x3735095F, 0x3731D91A, 0x372EA907, 0x372B7922, 0x3728496A
, 0x372519E4, 0x3721EA8D, 0x371EBB62, 0x371B8C69, 0x37185D9F, 0x37152F02
, 0x37120096, 0x370ED259, 0x370BA449, 0x3708766A, 0x370548BB, 0x37021B37
, 0x36FEEDE6, 0x36FBC0C3, 0x36F893CC, 0x36F56708, 0x36F23A72, 0x36EF0E08
, 0x36EBE1D0, 0x36E8B5C7, 0x36E589EA, 0x36E25E3F, 0x36DF32C2, 0x36DC0772
, 0x36D8DC54, 0x36D5B164, 0x36D286A0, 0x36CF5C0E, 0x36CC31AA, 0x36C90773
, 0x36C5DD6D, 0x36C2B396, 0x36BF89EC, 0x36BC6072, 0x36B93727, 0x36B60E09
, 0x36B2E51B, 0x36AFBC5D, 0x36AC93CA, 0x36A96B69, 0x36A64337, 0x36A31B31
, 0x369FF35B, 0x369CCBB5, 0x3699A43B, 0x36967CF1, 0x369355D7, 0x36902EE8
, 0x368D082B, 0x3689E19C, 0x3686BB3A, 0x36839508, 0x36806F05, 0x367D492E
, 0x367A2388, 0x3676FE11, 0x3673D8C5, 0x3670B3AB, 0x366D8EBF, 0x366A69FF
, 0x36674570, 0x36642110, 0x3660FCDB, 0x365DD8D8, 0x365AB503, 0x3657915A
, 0x36546DE1, 0x36514A97, 0x364E277A, 0x364B048C, 0x3647E1CE, 0x3644BF3B
, 0x36419CD9, 0x363E7AA5, 0x363B589D, 0x363836C6, 0x3635151E, 0x3631F3A1
, 0x362ED255, 0x362BB137, 0x36289045, 0x36256F84, 0x36224EF1, 0x361F2E89
, 0x361C0E53, 0x3618EE4A, 0x3615CE6E, 0x3612AEC2, 0x360F8F44, 0x360C6FF2
, 0x360950D1, 0x360631DD, 0x36031316, 0x35FFF47F, 0x35FCD616, 0x35F9B7D9
, 0x35F699CC, 0x35F37BED, 0x35F05E3A, 0x35ED40B8, 0x35EA2364, 0x35E7063B
, 0x35E3E943, 0x35E0CC78, 0x35DDAFDA, 0x35DA936B, 0x35D7772B, 0x35D45B17
, 0x35D13F32, 0x35CE237C, 0x35CB07F1, 0x35C7EC97, 0x35C4D16A, 0x35C1B66A
, 0x35BE9B99, 0x35BB80F6, 0x35B8667F, 0x35B54C38, 0x35B2321F, 0x35AF1831
, 0x35ABFE74, 0x35A8E4E5, 0x35A5CB81, 0x35A2B24D, 0x359F9947, 0x359C806C
, 0x359967C2, 0x35964F45, 0x359336F4, 0x35901ED3, 0x358D06DF, 0x3589EF17
, 0x3586D77F, 0x3583C015, 0x3580A8D6, 0x357D91C7, 0x357A7AE6, 0x35776431
, 0x35744DAB, 0x35713753, 0x356E2126, 0x356B0B29, 0x3567F55A, 0x3564DFB6
, 0x3561CA42, 0x355EB4FC, 0x355B9FE1, 0x35588AF5, 0x35557638, 0x355261A5
, 0x354F4D43, 0x354C390E, 0x35492504, 0x3546112A, 0x3542FD7D, 0x353FE9FC
, 0x353CD6AB, 0x3539C386, 0x3536B08E, 0x35339DC5, 0x35308B29, 0x352D78B8
, 0x352A6677, 0x35275464, 0x3524427C, 0x352130C3, 0x351E1F38, 0x351B0DD8
, 0x3517FCA7, 0x3514EBA4, 0x3511DACC, 0x350ECA23, 0x350BB9A8, 0x3508A958
, 0x35059937, 0x35028944, 0x34FF797C, 0x34FC69E3, 0x34F95A78, 0x34F64B37
, 0x34F33C26, 0x34F02D42, 0x34ED1E89, 0x34EA1000, 0x34E701A4, 0x34E3F373
, 0x34E0E571, 0x34DDD79C, 0x34DAC9F2, 0x34D7BC78, 0x34D4AF2B, 0x34D1A208
, 0x34CE9516, 0x34CB8850, 0x34C87BB5, 0x34C56F49, 0x34C2630A, 0x34BF56F7
, 0x34BC4B12, 0x34B93F5B, 0x34B633CE, 0x34B32870, 0x34B01D40, 0x34AD123B
, 0x34AA0764, 0x34A6FCBB, 0x34A3F23C, 0x34A0E7ED, 0x349DDDCA, 0x349AD3D2
, 0x3497CA0A, 0x3494C06E, 0x3491B6FD, 0x348EADBB, 0x348BA4A6, 0x34889BBB
, 0x34859300, 0x34828A72, 0x347F820E, 0x347C79D9, 0x347971D1, 0x347669F4
, 0x34736246, 0x34705AC4, 0x346D536D, 0x346A4C45, 0x3467454A, 0x34643E7A
, 0x346137D8, 0x345E3163, 0x345B2B19, 0x345824FE, 0x34551F0F, 0x3452194B
, 0x344F13B5, 0x344C0E4D, 0x3449090E, 0x344603FF, 0x3442FF1C, 0x343FFA64
, 0x343CF5DB, 0x3439F17E, 0x3436ED4C, 0x3433E948, 0x3430E571, 0x342DE1C4
, 0x342ADE47, 0x3427DAF5, 0x3424D7CE, 0x3421D4D6, 0x341ED20A, 0x341BCF69
, 0x3418CCF6, 0x3415CAB0, 0x3412C894, 0x340FC6A7, 0x340CC4E6, 0x3409C350
, 0x3406C1E8, 0x3403C0AD, 0x3400BF9C, 0x33FDBEB9, 0x33FABE03, 0x33F7BD77
, 0x33F4BD1A, 0x33F1BCE9, 0x33EEBCE2, 0x33EBBD0A, 0x33E8BD5E, 0x33E5BDDC
, 0x33E2BE89, 0x33DFBF62, 0x33DCC065, 0x33D9C197, 0x33D6C2F5, 0x33D3C47D
, 0x33D0C633, 0x33CDC816, 0x33CACA23, 0x33C7CC5E, 0x33C4CEC6, 0x33C1D157
, 0x33BED417, 0x33BBD703, 0x33B8DA19, 0x33B5DD5E, 0x33B2E0CF, 0x33AFE469
, 0x33ACE832, 0x33A9EC27, 0x33A6F046, 0x33A3F494, 0x33A0F90D, 0x339DFDB1
, 0x339B0282, 0x33980780, 0x33950CA7, 0x339211FD, 0x338F177F, 0x338C1D2B
, 0x33892305, 0x3386290B, 0x33832F3B, 0x33803599, 0x337D3C23, 0x337A42D6
, 0x337749B8, 0x337450C6, 0x337157FE, 0x336E5F64, 0x336B66F5, 0x33686EB1
, 0x3365769A, 0x33627EB0, 0x335F86EF, 0x335C8F5C, 0x335997F5, 0x3356A0B8
, 0x3353A9A9, 0x3350B2C5, 0x334DBC0C, 0x334AC580, 0x3347CF20, 0x3344D8EA
, 0x3341E2E1, 0x333EED05, 0x333BF752, 0x333901CD, 0x33360C73, 0x33331744
, 0x33302242, 0x332D2D6C, 0x332A38BF, 0x33274441, 0x33244FEE, 0x33215BC4
, 0x331E67C9, 0x331B73F9, 0x33188052, 0x33158CDA, 0x3312998C, 0x330FA669
, 0x330CB373, 0x3309C0A9, 0x3306CE08, 0x3303DB95, 0x3300E94E, 0x32FDF730
, 0x32FB053F, 0x32F8137B, 0x32F521DF, 0x32F23072, 0x32EF3F2F, 0x32EC4E16
, 0x32E95D2B, 0x32E66C6B, 0x32E37BD5, 0x32E08B6C, 0x32DD9B2F, 0x32DAAB1B
, 0x32D7BB35, 0x32D4CB7A, 0x32D1DBE8, 0x32CEEC84, 0x32CBFD4B, 0x32C90E3B
, 0x32C61F59, 0x32C330A3, 0x32C04215, 0x32BD53B5, 0x32BA6581, 0x32B77775
, 0x32B48997, 0x32B19BE5, 0x32AEAE5B, 0x32ABC0FF, 0x32A8D3CE, 0x32A5E6C7
, 0x32A2F9EC, 0x32A00D3D, 0x329D20B7, 0x329A345F, 0x32974832, 0x32945C2D
, 0x32917056, 0x328E84AB, 0x328B9928, 0x3288ADD3, 0x3285C2A9, 0x3282D7A7
, 0x327FECD3, 0x327D022B, 0x327A17AB, 0x32772D58, 0x32744331, 0x32715932
, 0x326E6F61, 0x326B85BB, 0x32689C3E, 0x3265B2EE, 0x3262C9C9, 0x325FE0CD
, 0x325CF7FE, 0x325A0F5A, 0x325726DF, 0x32543E91, 0x3251566E, 0x324E6E74
, 0x324B86A7, 0x32489F05, 0x3245B78C, 0x3242D040, 0x323FE91E, 0x323D0226
, 0x323A1B5B, 0x323734BA, 0x32344E43, 0x323167F8, 0x322E81D8, 0x322B9BE1
, 0x3228B617, 0x3225D078, 0x3222EB01, 0x322005B7, 0x321D2099, 0x321A3BA2
, 0x321756D9, 0x3214723B, 0x32118DC5, 0x320EA97C, 0x320BC55E, 0x3208E169
, 0x3205FDA0, 0x32031A02, 0x3200368D, 0x31FD5344, 0x31FA7027, 0x31F78D31
, 0x31F4AA69, 0x31F1C7CB, 0x31EEE556, 0x31EC030D, 0x31E920F0, 0x31E63EFA
, 0x31E35D32, 0x31E07B94, 0x31DD9A1E, 0x31DAB8D6, 0x31D7D7B8, 0x31D4F6C2
, 0x31D215F9, 0x31CF355A, 0x31CC54E4, 0x31C9749B, 0x31C6947C, 0x31C3B486
, 0x31C0D4BC, 0x31BDF51C, 0x31BB15A5, 0x31B8365B, 0x31B5573B, 0x31B27843
, 0x31AF9979, 0x31ACBAD8, 0x31A9DC60, 0x31A6FE14, 0x31A41FF3, 0x31A141FA
, 0x319E642D, 0x319B868B, 0x3198A911, 0x3195CBC4, 0x3192EEA1, 0x319011A6
, 0x318D34D7, 0x318A5833, 0x31877BB7, 0x31849F68, 0x3181C343, 0x317EE746
, 0x317C0B75, 0x31792FCF, 0x31765451, 0x317378FF, 0x31709DD7, 0x316DC2D8
, 0x316AE805, 0x31680D5C, 0x316532DB, 0x31625887, 0x315F7E5C, 0x315CA45A
, 0x3159CA84, 0x3156F0D8, 0x31541754, 0x31513DFD, 0x314E64CF, 0x314B8BCA
, 0x3148B2F1, 0x3145DA41, 0x314301BA, 0x3140295F, 0x313D512E, 0x313A7925
, 0x3137A149, 0x3134C996, 0x3131F20B, 0x312F1AAC, 0x312C4378, 0x31296C6B
, 0x3126958A, 0x3123BED3, 0x3120E844, 0x311E11E2, 0x311B3BA9, 0x31186598
, 0x31158FB3, 0x3112B9F8, 0x310FE464, 0x310D0EFD, 0x310A39C0, 0x310764AA
, 0x31048FC1, 0x3101BB01, 0x30FEE669, 0x30FC11FD, 0x30F93DBB, 0x30F669A1
, 0x30F395B2, 0x30F0C1ED, 0x30EDEE50, 0x30EB1ADF, 0x30E84798, 0x30E57478
, 0x30E2A184, 0x30DFCEBB, 0x30DCFC18, 0x30DA29A2, 0x30D75755, 0x30D48530
, 0x30D1B336, 0x30CEE166, 0x30CC0FBE, 0x30C93E42, 0x30C66CF0, 0x30C39BC4
, 0x30C0CAC5, 0x30BDF9EF, 0x30BB2941, 0x30B858BF, 0x30B58866, 0x30B2B835
, 0x30AFE82F, 0x30AD1853, 0x30AA489E, 0x30A77915, 0x30A4A9B6, 0x30A1DA7E
, 0x309F0B72, 0x309C3C8F, 0x30996DD4, 0x30969F44, 0x3093D0DE, 0x3091029F
, 0x308E348C, 0x308B66A2, 0x308898E0, 0x3085CB49, 0x3082FDDC, 0x30803096
, 0x307D637B, 0x307A968A, 0x3077C9C0, 0x3074FD22, 0x307230AD, 0x306F645F
, 0x306C983D, 0x3069CC44, 0x30670073, 0x306434CD, 0x30616950, 0x305E9DFA
, 0x305BD2D0, 0x305907CF, 0x30563CF6, 0x30537247, 0x3050A7C3, 0x304DDD65
, 0x304B1332, 0x30484929, 0x30457F47, 0x3042B590, 0x303FEC03, 0x303D229D
, 0x303A5961, 0x3037904F, 0x3034C765, 0x3031FEA5, 0x302F360F, 0x302C6D9F
, 0x3029A55B, 0x3026DD40, 0x3024154C, 0x30214D84, 0x301E85E4, 0x301BBE6C
, 0x3018F71E, 0x30162FFA, 0x301368FD, 0x3010A22A, 0x300DDB81, 0x300B14FF
, 0x30084EA8, 0x3005887A, 0x3002C273, 0x2FFFFC97, 0x2FFD36E4, 0x2FFA7158
, 0x2FF7ABF7, 0x2FF4E6BF, 0x2FF221AE, 0x2FEF5CC8, 0x2FEC980A, 0x2FE9D374
, 0x2FE70F09, 0x2FE44AC6, 0x2FE186AB, 0x2FDEC2BA, 0x2FDBFEF2, 0x2FD93B52
, 0x2FD677DC, 0x2FD3B48E, 0x2FD0F168, 0x2FCE2E6D, 0x2FCB6B9A, 0x2FC8A8EE
, 0x2FC5E66D, 0x2FC32415, 0x2FC061E4, 0x2FBD9FDD, 0x2FBADDFF, 0x2FB81C48
, 0x2FB55ABC, 0x2FB29958, 0x2FAFD81C, 0x2FAD170A, 0x2FAA5620, 0x2FA7955D
, 0x2FA4D4C6, 0x2FA21456, 0x2F9F540E, 0x2F9C93F0, 0x2F99D3FB, 0x2F97142C
, 0x2F945488, 0x2F91950D, 0x2F8ED5B8, 0x2F8C168E, 0x2F89578D, 0x2F8698B2
, 0x2F83DA02, 0x2F811B7A, 0x2F7E5D19, 0x2F7B9EE3, 0x2F78E0D5, 0x2F7622EE
, 0x2F736531, 0x2F70A79C, 0x2F6DEA2F, 0x2F6B2CEB, 0x2F686FD1, 0x2F65B2DC
, 0x2F62F613, 0x2F603971, 0x2F5D7CF6, 0x2F5AC0A6, 0x2F58047E, 0x2F55487D
, 0x2F528CA5, 0x2F4FD0F7, 0x2F4D156F, 0x2F4A5A11, 0x2F479EDB, 0x2F44E3CC
, 0x2F4228E8, 0x2F3F6E2B, 0x2F3CB395, 0x2F39F92A, 0x2F373EE6, 0x2F3484C9
, 0x2F31CAD7, 0x2F2F110C, 0x2F2C5768, 0x2F299DEF, 0x2F26E49D, 0x2F242B72
, 0x2F217271, 0x2F1EB998, 0x2F1C00E6, 0x2F19485E, 0x2F168FFE, 0x2F13D7C4
, 0x2F111FB5, 0x2F0E67CD, 0x2F0BB00C, 0x2F08F875, 0x2F064106, 0x2F0389BE
, 0x2F00D29F, 0x2EFE1BA9, 0x2EFB64D9, 0x2EF8AE33, 0x2EF5F7B5, 0x2EF3415D
, 0x2EF08B2F, 0x2EEDD52A, 0x2EEB1F4A, 0x2EE86995, 0x2EE5B408, 0x2EE2FEA0
, 0x2EE04963, 0x2EDD944E, 0x2EDADF5E, 0x2ED82A99, 0x2ED575FC, 0x2ED2C185
, 0x2ED00D38, 0x2ECD5913, 0x2ECAA513, 0x2EC7F13E, 0x2EC53D91, 0x2EC28A0A
, 0x2EBFD6AC, 0x2EBD2377, 0x2EBA7067, 0x2EB7BD81, 0x2EB50AC4, 0x2EB2582C
, 0x2EAFA5BE, 0x2EACF378, 0x2EAA4158, 0x2EA78F61, 0x2EA4DD93, 0x2EA22BEA
, 0x2E9F7A6B, 0x2E9CC914, 0x2E9A17E3, 0x2E9766DC, 0x2E94B5FC, 0x2E920542
, 0x2E8F54B2, 0x2E8CA44A, 0x2E89F407, 0x2E8743EF, 0x2E8493FE, 0x2E81E433
, 0x2E7F3491, 0x2E7C8517, 0x2E79D5C3, 0x2E772699, 0x2E747796, 0x2E71C8B9
, 0x2E6F1A05, 0x2E6C6B7A, 0x2E69BD14, 0x2E670ED7, 0x2E6460C2, 0x2E61B2D3
, 0x2E5F050E, 0x2E5C5770, 0x2E59A9F7, 0x2E56FCA8, 0x2E544F81, 0x2E51A280
, 0x2E4EF5A7, 0x2E4C48F7, 0x2E499C6C, 0x2E46F00B, 0x2E4443D1, 0x2E4197BC
, 0x2E3EEBD1, 0x2E3C400E, 0x2E399470, 0x2E36E8FC, 0x2E343DAF, 0x2E319288
, 0x2E2EE789, 0x2E2C3CB3, 0x2E299202, 0x2E26E77A, 0x2E243D1A, 0x2E2192DF
, 0x2E1EE8CE, 0x2E1C3EE3, 0x2E19951F, 0x2E16EB84, 0x2E144210, 0x2E1198C1
, 0x2E0EEF9C, 0x2E0C469E, 0x2E099DC5, 0x2E06F516, 0x2E044C8E, 0x2E01A42C
, 0x2DFEFBF2, 0x2DFC53E0, 0x2DF9ABF3, 0x2DF70430, 0x2DF45C94, 0x2DF1B51D
, 0x2DEF0DCF, 0x2DEC66A9, 0x2DE9BFA7, 0x2DE718CF, 0x2DE4721E, 0x2DE1CB93
, 0x2DDF2530, 0x2DDC7EF5, 0x2DD9D8DF, 0x2DD732F2, 0x2DD48D2C, 0x2DD1E78C
, 0x2DCF4214, 0x2DCC9CC4, 0x2DC9F798, 0x2DC75296, 0x2DC4ADBB, 0x2DC20905
, 0x2DBF6478, 0x2DBCC013, 0x2DBA1BD2, 0x2DB777BA, 0x2DB4D3CA, 0x2DB22FFE
, 0x2DAF8C5C, 0x2DACE8E0, 0x2DAA4589, 0x2DA7A25C, 0x2DA4FF55, 0x2DA25C74
, 0x2D9FB9BB, 0x2D9D172A, 0x2D9A74BD, 0x2D97D279, 0x2D95305D, 0x2D928E65
, 0x2D8FEC96, 0x2D8D4AEE, 0x2D8AA96B, 0x2D880811, 0x2D8566DE, 0x2D82C5CF
, 0x2D8024EA, 0x2D7D842B, 0x2D7AE391, 0x2D784320, 0x2D75A2D6, 0x2D7302B1
, 0x2D7062B4, 0x2D6DC2DF, 0x2D6B232E, 0x2D6883A6, 0x2D65E445, 0x2D634508
, 0x2D60A5F5, 0x2D5E0708, 0x2D5B683F, 0x2D58C9A0, 0x2D562B27, 0x2D538CD3
, 0x2D50EEA8, 0x2D4E50A3, 0x2D4BB2C4, 0x2D49150C, 0x2D46777C, 0x2D43DA10
, 0x2D413CCD, 0x2D3E9FB0, 0x2D3C02B8, 0x2D3965E9, 0x2D36C940, 0x2D342CBC
, 0x2D319061, 0x2D2EF42C, 0x2D2C581C, 0x2D29BC34, 0x2D272073, 0x2D2484D7
, 0x2D21E963, 0x2D1F4E15, 0x2D1CB2ED, 0x2D1A17EC, 0x2D177D12, 0x2D14E25D
, 0x2D1247D1, 0x2D0FAD6A, 0x2D0D1328, 0x2D0A790F, 0x2D07DF1C, 0x2D05454E
, 0x2D02ABA8, 0x2D001229, 0x2CFD78CE, 0x2CFADF9B, 0x2CF8468F, 0x2CF5ADA7
, 0x2CF314E8, 0x2CF07C4F, 0x2CEDE3DA, 0x2CEB4B8E, 0x2CE8B368, 0x2CE61B67
, 0x2CE3838E, 0x2CE0EBDB, 0x2CDE544C, 0x2CDBBCE6, 0x2CD925A6, 0x2CD68E8B
, 0x2CD3F798, 0x2CD160CB, 0x2CCECA22, 0x2CCC33A2, 0x2CC99D48, 0x2CC70712
, 0x2CC47104, 0x2CC1DB1D, 0x2CBF455A, 0x2CBCAFBF, 0x2CBA1A4A, 0x2CB784F9
, 0x2CB4EFD1, 0x2CB25ACF, 0x2CAFC5F1, 0x2CAD313B, 0x2CAA9CAC, 0x2CA80840
, 0x2CA573FD, 0x2CA2DFE0, 0x2CA04BE7, 0x2C9DB816, 0x2C9B246B, 0x2C9890E4
, 0x2C95FD86, 0x2C936A4D, 0x2C90D738, 0x2C8E444C, 0x2C8BB186, 0x2C891EE3
, 0x2C868C69, 0x2C83FA15, 0x2C8167E5, 0x2C7ED5DC, 0x2C7C43FA, 0x2C79B23C
, 0x2C7720A6, 0x2C748F36, 0x2C71FDE9, 0x2C6F6CC5, 0x2C6CDBC7, 0x2C6A4AEC
, 0x2C67BA3A, 0x2C6529AD, 0x2C629945, 0x2C600904, 0x2C5D78E9, 0x2C5AE8F2
, 0x2C585923, 0x2C55C97A, 0x2C5339F5, 0x2C50AA97, 0x2C4E1B60, 0x2C4B8C4C
, 0x2C48FD60, 0x2C466E9A, 0x2C43DFF8, 0x2C41517D, 0x2C3EC329, 0x2C3C34F8
, 0x2C39A6EF, 0x2C37190B, 0x2C348B4C, 0x2C31FDB4, 0x2C2F7042, 0x2C2CE2F4
, 0x2C2A55CD, 0x2C27C8CC, 0x2C253BEF, 0x2C22AF3A, 0x2C2022AA, 0x2C1D963E
, 0x2C1B09FA, 0x2C187DDB, 0x2C15F1E0, 0x2C13660D, 0x2C10DA5F, 0x2C0E4ED5
, 0x2C0BC372, 0x2C093836, 0x2C06AD1C, 0x2C04222B, 0x2C01975F, 0x2BFF0CB7
, 0x2BFC8236, 0x2BF9F7DA, 0x2BF76DA3, 0x2BF4E392, 0x2BF259A8, 0x2BEFCFE1
, 0x2BED4641, 0x2BEABCC7, 0x2BE83371, 0x2BE5AA42, 0x2BE32138, 0x2BE09852
, 0x2BDE0F94, 0x2BDB86FB, 0x2BD8FE85, 0x2BD67637, 0x2BD3EE0E, 0x2BD16609
, 0x2BCEDE2B, 0x2BCC5672, 0x2BC9CEDD, 0x2BC74770, 0x2BC4C028, 0x2BC23903
, 0x2BBFB205, 0x2BBD2B2D, 0x2BBAA478, 0x2BB81DEB, 0x2BB59783, 0x2BB3113E
, 0x2BB08B21, 0x2BAE0529, 0x2BAB7F54, 0x2BA8F9A6, 0x2BA6741E, 0x2BA3EEB9
, 0x2BA1697C, 0x2B9EE463, 0x2B9C5F6E, 0x2B99DAA0, 0x2B9755F8, 0x2B94D172
, 0x2B924D14, 0x2B8FC8DB, 0x2B8D44C6, 0x2B8AC0D7, 0x2B883D0E, 0x2B85B968
, 0x2B8335E9, 0x2B80B28F, 0x2B7E2F58, 0x2B7BAC49, 0x2B79295E, 0x2B76A697
, 0x2B7423F7, 0x2B71A17C, 0x2B6F1F24, 0x2B6C9CF3, 0x2B6A1AE7, 0x2B6798FF
, 0x2B65173D, 0x2B6295A1, 0x2B601427, 0x2B5D92D5, 0x2B5B11A8, 0x2B58909D
, 0x2B560FBA, 0x2B538EFC, 0x2B510E61, 0x2B4E8DEC, 0x2B4C0D9D, 0x2B498D71
, 0x2B470D6B, 0x2B448D8B, 0x2B420DCE, 0x2B3F8E37, 0x2B3D0EC6, 0x2B3A8F77
, 0x2B38104F, 0x2B35914D, 0x2B33126D, 0x2B3093B4, 0x2B2E1520, 0x2B2B96AF
, 0x2B291865, 0x2B269A3F, 0x2B241C3D, 0x2B219E61, 0x2B1F20AA, 0x2B1CA316
, 0x2B1A25A9, 0x2B17A860, 0x2B152B3B, 0x2B12AE3C, 0x2B103162, 0x2B0DB4AB
, 0x2B0B381A, 0x2B08BBAF, 0x2B063F66, 0x2B03C343, 0x2B014746, 0x2AFECB6B
, 0x2AFC4FB7, 0x2AF9D428, 0x2AF758BC, 0x2AF4DD76, 0x2AF26254, 0x2AEFE756
, 0x2AED6C7E, 0x2AEAF1CB, 0x2AE8773B, 0x2AE5FCD1, 0x2AE3828B, 0x2AE10869
, 0x2ADE8E6D, 0x2ADC1496, 0x2AD99AE1, 0x2AD72153, 0x2AD4A7E9, 0x2AD22EA2
, 0x2ACFB582, 0x2ACD3C86, 0x2ACAC3AD, 0x2AC84AFA, 0x2AC5D26C, 0x2AC35A01
, 0x2AC0E1BB, 0x2ABE699B, 0x2ABBF19D, 0x2AB979C5, 0x2AB70212, 0x2AB48A82
, 0x2AB21317, 0x2AAF9BD2, 0x2AAD24AF, 0x2AAAADB2, 0x2AA836DA, 0x2AA5C024
, 0x2AA34994, 0x2AA0D329, 0x2A9E5CE1, 0x2A9BE6BF, 0x2A9970C1, 0x2A96FAE5
, 0x2A948530, 0x2A920FA0, 0x2A8F9A31, 0x2A8D24E9, 0x2A8AAFC6, 0x2A883AC4
, 0x2A85C5E9, 0x2A835133, 0x2A80DC9F, 0x2A7E6831, 0x2A7BF3E7, 0x2A797FBF
, 0x2A770BBE, 0x2A7497E1, 0x2A722427, 0x2A6FB092, 0x2A6D3D22, 0x2A6AC9D4
, 0x2A6856AD, 0x2A65E3A9, 0x2A6370C8, 0x2A60FE0D, 0x2A5E8B76, 0x2A5C1902
, 0x2A59A6B3, 0x2A573489, 0x2A54C281, 0x2A52509F, 0x2A4FDEE1, 0x2A4D6D46
, 0x2A4AFBD0, 0x2A488A7F, 0x2A46194F, 0x2A43A846, 0x2A413761, 0x2A3EC69E
, 0x2A3C5601, 0x2A39E588, 0x2A377532, 0x2A350501, 0x2A3294F4, 0x2A30250A
, 0x2A2DB545, 0x2A2B45A5, 0x2A28D626, 0x2A2666CE, 0x2A23F799, 0x2A218887
, 0x2A1F199A, 0x2A1CAAD1, 0x2A1A3C2B, 0x2A17CDAA, 0x2A155F4E, 0x2A12F113
, 0x2A1082FE, 0x2A0E150D, 0x2A0BA73E, 0x2A093995, 0x2A06CC10, 0x2A045EAD
, 0x2A01F170, 0x29FF8456, 0x29FD175F, 0x29FAAA8D, 0x29F83DDF, 0x29F5D153
, 0x29F364ED, 0x29F0F8AA, 0x29EE8C8A, 0x29EC208F, 0x29E9B4B8, 0x29E74903
, 0x29E4DD74, 0x29E27208, 0x29E006BF, 0x29DD9B9B, 0x29DB309A, 0x29D8C5BC
, 0x29D65B03, 0x29D3F06E, 0x29D185FB, 0x29CF1BAD, 0x29CCB184, 0x29CA477C
, 0x29C7DD99, 0x29C573DA, 0x29C30A3D, 0x29C0A0C6, 0x29BE3772, 0x29BBCE40
, 0x29B96533, 0x29B6FC4B, 0x29B49384, 0x29B22AE2, 0x29AFC264, 0x29AD5A08
, 0x29AAF1D1, 0x29A889BE, 0x29A621CC, 0x29A3BA00, 0x29A15258, 0x299EEAD1
, 0x299C8370, 0x299A1C32, 0x2997B516, 0x29954E1F, 0x2992E74C, 0x2990809A
, 0x298E1A0E, 0x298BB3A5, 0x29894D5E, 0x2986E73C, 0x2984813E, 0x29821B61
, 0x297FB5AA, 0x297D5016, 0x297AEAA4, 0x29788557, 0x2976202D, 0x2973BB25
, 0x29715642, 0x296EF183, 0x296C8CE5, 0x296A286C, 0x2967C417, 0x29655FE3
, 0x2962FBD4, 0x296097E9, 0x295E3420, 0x295BD07B, 0x29596CFA, 0x2957099A
, 0x2954A65F, 0x29524348, 0x294FE052, 0x294D7D81, 0x294B1AD4, 0x2948B848
, 0x294655E1, 0x2943F39E, 0x2941917B, 0x293F2F7E, 0x293CCDA4, 0x293A6BEC
, 0x29380A58, 0x2935A8E8, 0x29334799, 0x2930E66F, 0x292E8568, 0x292C2483
, 0x2929C3C3, 0x29276326, 0x292502AA, 0x2922A253, 0x2920421F, 0x291DE20C
, 0x291B821F, 0x29192254, 0x2916C2AB, 0x29146327, 0x291203C6, 0x290FA486
, 0x290D456B, 0x290AE673, 0x2908879C, 0x290628EB, 0x2903CA5C, 0x29016BEE
, 0x28FF0DA6, 0x28FCAF80, 0x28FA517B, 0x28F7F39C, 0x28F595DF, 0x28F33843
, 0x28F0DACD, 0x28EE7D79, 0x28EC2046, 0x28E9C338, 0x28E7664D, 0x28E50984
, 0x28E2ACDF, 0x28E0505C, 0x28DDF3FB, 0x28DB97BF, 0x28D93BA6, 0x28D6DFAD
, 0x28D483DA, 0x28D22829, 0x28CFCC99, 0x28CD712E, 0x28CB15E6, 0x28C8BABF
, 0x28C65FBC, 0x28C404DD, 0x28C1AA1E, 0x28BF4F84, 0x28BCF50D, 0x28BA9AB7
, 0x28B84085, 0x28B5E676, 0x28B38C88, 0x28B132BF, 0x28AED918, 0x28AC7F93
, 0x28AA2631, 0x28A7CCF3, 0x28A573D6, 0x28A31ADD, 0x28A0C206, 0x289E6951
, 0x289C10C0, 0x2899B852, 0x28976005, 0x289507DC, 0x2892AFD6, 0x289057F1
, 0x288E0030, 0x288BA892, 0x28895114, 0x2886F9BC, 0x2884A285, 0x28824B70
, 0x287FF47F, 0x287D9DB0, 0x287B4702, 0x2878F079, 0x28769A12, 0x287443CC
, 0x2871EDAB, 0x286F97AB, 0x286D41CD, 0x286AEC13, 0x2868967B, 0x28664105
, 0x2863EBB2, 0x28619682, 0x285F4173, 0x285CEC88, 0x285A97BF, 0x28584317
, 0x2855EE94, 0x28539A33, 0x285145F2, 0x284EF1D6, 0x284C9DDC, 0x284A4A03
, 0x2847F64E, 0x2845A2BB, 0x28434F49, 0x2840FBFB, 0x283EA8D0, 0x283C55C5
, 0x283A02DE, 0x2837B01A, 0x28355D76, 0x28330AF6, 0x2830B899, 0x282E665C
, 0x282C1443, 0x2829C24D, 0x28277077, 0x28251EC6, 0x2822CD36, 0x28207BC7
, 0x281E2A7C, 0x281BD953, 0x2819884B, 0x28173767, 0x2814E6A5, 0x28129604
, 0x28104586, 0x280DF52B, 0x280BA4F0, 0x280954D9, 0x280704E5, 0x2804B511
, 0x28026561, 0x280015D2, 0x27FDC665, 0x27FB771B, 0x27F927F3, 0x27F6D8EC
, 0x27F48A09, 0x27F23B48, 0x27EFECA7, 0x27ED9E2A, 0x27EB4FCF, 0x27E90195
, 0x27E6B37E, 0x27E46589, 0x27E217B5, 0x27DFCA05, 0x27DD7C76, 0x27DB2F08
, 0x27D8E1BE, 0x27D69495, 0x27D4478E, 0x27D1FAA9, 0x27CFADE7, 0x27CD6145
, 0x27CB14C7, 0x27C8C86B, 0x27C67C2F, 0x27C43016, 0x27C1E420, 0x27BF984A
, 0x27BD4C98, 0x27BB0107, 0x27B8B597, 0x27B66A4A, 0x27B41F20, 0x27B1D415
, 0x27AF892E, 0x27AD3E69, 0x27AAF3C5, 0x27A8A944, 0x27A65EE4, 0x27A414A5
, 0x27A1CA89, 0x279F8090, 0x279D36B6, 0x279AED00, 0x2798A36C, 0x279659F8
, 0x279410A7, 0x2791C778, 0x278F7E6A, 0x278D357E, 0x278AECB5, 0x2788A40C
, 0x27865B86, 0x27841322, 0x2781CADE, 0x277F82BD, 0x277D3ABE, 0x277AF2DF
, 0x2778AB24, 0x2776638A, 0x27741C10, 0x2771D4BA, 0x276F8D85, 0x276D4671
, 0x276AFF7F, 0x2768B8B0, 0x27667200, 0x27642B74, 0x2761E509, 0x275F9EBF
, 0x275D5897, 0x275B1291, 0x2758CCAC, 0x275686E9, 0x27544148, 0x2751FBC7
, 0x274FB669, 0x274D712D, 0x274B2C11, 0x2748E718, 0x2746A240, 0x27445D89
, 0x274218F4, 0x273FD481, 0x273D902E, 0x273B4BFF, 0x273907F0, 0x2736C402
, 0x27348037, 0x27323C8D, 0x272FF903, 0x272DB59C, 0x272B7256, 0x27292F31
, 0x2726EC2E, 0x2724A94D, 0x2722668C, 0x272023ED, 0x271DE171, 0x271B9F14
, 0x27195CDA, 0x27171AC1, 0x2714D8C8, 0x271296F2, 0x2710553E, 0x270E13A9
, 0x270BD237, 0x270990E7, 0x27074FB6, 0x27050EA9, 0x2702CDBC, 0x27008CF0
, 0x26FE4C46, 0x26FC0BBD, 0x26F9CB55, 0x26F78B0F, 0x26F54AEA, 0x26F30AE5
, 0x26F0CB03, 0x26EE8B42, 0x26EC4BA1, 0x26EA0C23, 0x26E7CCC6, 0x26E58D89
, 0x26E34E6E, 0x26E10F75, 0x26DED09B, 0x26DC91E4, 0x26DA534E, 0x26D814D8
, 0x26D5D685, 0x26D39852, 0x26D15A40, 0x26CF1C50, 0x26CCDE81, 0x26CAA0D2
, 0x26C86345, 0x26C625DA, 0x26C3E88E, 0x26C1AB65, 0x26BF6E5D, 0x26BD3174
, 0x26BAF4AF, 0x26B8B80A, 0x26B67B84, 0x26B43F22, 0x26B202E0, 0x26AFC6BE
, 0x26AD8ABF, 0x26AB4EE0, 0x26A91321, 0x26A6D785, 0x26A49C0A, 0x26A260AE
, 0x26A02574, 0x269DEA5C, 0x269BAF63, 0x2699748C, 0x269739D7, 0x2694FF41
, 0x2692C4CD, 0x26908A7B, 0x268E5048, 0x268C1637, 0x2689DC47, 0x2687A277
, 0x268568C9, 0x26832F3C, 0x2680F5CE, 0x267EBC83, 0x267C8358, 0x267A4A4D
, 0x26781164, 0x2675D89D, 0x26739FF4, 0x2671676E, 0x266F2F09, 0x266CF6C3
, 0x266ABE9F, 0x2668869C, 0x26664EB9, 0x266416F7, 0x2661DF57, 0x265FA7D6
, 0x265D7077, 0x265B3939, 0x2659021A, 0x2656CB1D, 0x26549442, 0x26525D85
, 0x265026EB, 0x264DF071, 0x264BBA16, 0x264983DE, 0x26474DC7, 0x264517CE
, 0x2642E1F8, 0x2640AC43, 0x263E76AC, 0x263C4138, 0x263A0BE5, 0x2637D6B0
, 0x2635A19E, 0x26336CAD, 0x263137DA, 0x262F032A, 0x262CCE9B, 0x262A9A2A
, 0x262865DB, 0x262631AE, 0x2623FD9F, 0x2621C9B2, 0x261F95E6, 0x261D6239
, 0x261B2EAE, 0x2618FB43, 0x2616C7F8, 0x261494CF, 0x261261C6, 0x26102EDC
, 0x260DFC14, 0x260BC96D, 0x260996E4, 0x2607647E, 0x26053238, 0x26030011
, 0x2600CE0C, 0x25FE9C28, 0x25FC6A62, 0x25FA38BF, 0x25F8073C, 0x25F5D5D7
, 0x25F3A495, 0x25F17373, 0x25EF4270, 0x25ED118F, 0x25EAE0CF, 0x25E8B02D
, 0x25E67FAD, 0x25E44F4D, 0x25E21F0D, 0x25DFEEEE, 0x25DDBEEF, 0x25DB8F10
, 0x25D95F52, 0x25D72FB5, 0x25D50036, 0x25D2D0D9, 0x25D0A19D, 0x25CE727F
, 0x25CC4383, 0x25CA14A8, 0x25C7E5EB, 0x25C5B750, 0x25C388D5, 0x25C15A79
, 0x25BF2C3E, 0x25BCFE24, 0x25BAD029, 0x25B8A24F, 0x25B67496, 0x25B446FB
, 0x25B21982, 0x25AFEC2A, 0x25ADBEEF, 0x25AB91D7, 0x25A964DF, 0x25A73805
, 0x25A50B4D, 0x25A2DEB6, 0x25A0B23C, 0x259E85E5, 0x259C59AE, 0x259A2D95
, 0x2598019E, 0x2595D5C7, 0x2593AA0F, 0x25917E78, 0x258F5301, 0x258D27A9
, 0x258AFC73, 0x2588D15C, 0x2586A664, 0x25847B8E, 0x258250D8, 0x25802640
, 0x257DFBC9, 0x257BD173, 0x2579A73C, 0x25777D25, 0x2575532F, 0x25732957
, 0x2570FFA1, 0x256ED60B, 0x256CAC93, 0x256A833D, 0x25685A07, 0x256630EF
, 0x256407F8, 0x2561DF22, 0x255FB66A, 0x255D8DD3, 0x255B655D, 0x25593D04
, 0x255714CD, 0x2554ECB6, 0x2552C4BE, 0x25509CE6, 0x254E752F, 0x254C4D96
, 0x254A261E, 0x2547FEC6, 0x2545D78D, 0x2543B075, 0x2541897D, 0x253F62A2
, 0x253D3BEA, 0x253B1551, 0x2538EED6, 0x2536C87D, 0x2534A244, 0x25327C28
, 0x2530562F, 0x252E3054, 0x252C0A98, 0x2529E4FE, 0x2527BF83, 0x25259A26
, 0x252374EB, 0x25214FCF, 0x251F2AD1, 0x251D05F5, 0x251AE139, 0x2518BC9A
, 0x2516981D, 0x251473BF, 0x25124F80, 0x25102B62, 0x250E0763, 0x250BE383
, 0x2509BFC4, 0x25079C24, 0x250578A2, 0x25035542, 0x25013201, 0x24FF0EDF
, 0x24FCEBDD, 0x24FAC8FB, 0x24F8A637, 0x24F68394, 0x24F46111, 0x24F23EAC
, 0x24F01C68, 0x24EDFA43, 0x24EBD83D, 0x24E9B657, 0x24E79491, 0x24E572E9
, 0x24E35162, 0x24E12FFB, 0x24DF0EB2, 0x24DCED89, 0x24DACC80, 0x24D8AB95
, 0x24D68ACB, 0x24D46A21, 0x24D24994, 0x24D02929, 0x24CE08DD, 0x24CBE8AE
, 0x24C9C8A1, 0x24C7A8B3, 0x24C588E3, 0x24C36934, 0x24C149A5, 0x24BF2A33
, 0x24BD0AE2, 0x24BAEBB0, 0x24B8CC9D, 0x24B6ADAA, 0x24B48ED7, 0x24B27021
, 0x24B0518C, 0x24AE3317, 0x24AC14BF, 0x24A9F689, 0x24A7D871, 0x24A5BA78
, 0x24A39C9F, 0x24A17EE6, 0x249F614A, 0x249D43CF, 0x249B2673, 0x24990935
, 0x2496EC18, 0x2494CF1A, 0x2492B23A, 0x2490957B, 0x248E78DB, 0x248C5C58
, 0x248A3FF7, 0x248823B4, 0x2486078F, 0x2483EB8B, 0x2481CFA6, 0x247FB3DF
, 0x247D9839, 0x247B7CB1, 0x24796147, 0x247745FE, 0x24752AD4, 0x24730FC8
, 0x2470F4DD, 0x246EDA10, 0x246CBF61, 0x246AA4D3, 0x24688A64, 0x24667012
, 0x246455E1, 0x24623BCF, 0x246021DB, 0x245E0807, 0x245BEE52, 0x2459D4BB
, 0x2457BB45, 0x2455A1ED, 0x245388B3, 0x24516F99, 0x244F569F, 0x244D3DC2
, 0x244B2506, 0x24490C68, 0x2446F3E8, 0x2444DB89, 0x2442C348, 0x2440AB25
, 0x243E9323, 0x243C7B3F, 0x243A6379, 0x24384BD3, 0x2436344C, 0x24341CE3
, 0x2432059A, 0x242FEE70, 0x242DD763, 0x242BC077, 0x2429A9AA, 0x242792FA
, 0x24257C6A, 0x242365FA, 0x24214FA7, 0x241F3974, 0x241D2360, 0x241B0D69
, 0x2418F792, 0x2416E1DB, 0x2414CC41, 0x2412B6C7, 0x2410A16C, 0x240E8C2E
, 0x240C7710, 0x240A6212, 0x24084D30, 0x2406386F, 0x240423CD, 0x24020F48
, 0x23FFFAE3, 0x23FDE69D, 0x23FBD274, 0x23F9BE6B, 0x23F7AA81, 0x23F596B5
, 0x23F38308, 0x23F16F7A, 0x23EF5C0A, 0x23ED48B9, 0x23EB3588, 0x23E92273
, 0x23E70F7F, 0x23E4FCA9, 0x23E2E9F1, 0x23E0D758, 0x23DEC4DF, 0x23DCB282
, 0x23DAA046, 0x23D88E28, 0x23D67C27, 0x23D46A46, 0x23D25885, 0x23D046E0
, 0x23CE355B, 0x23CC23F5, 0x23CA12AB, 0x23C80182, 0x23C5F078, 0x23C3DF8A
, 0x23C1CEBD, 0x23BFBE0E, 0x23BDAD7C, 0x23BB9D0B, 0x23B98CB7, 0x23B77C81
, 0x23B56C6B, 0x23B35C73, 0x23B14C98, 0x23AF3CDD, 0x23AD2D41, 0x23AB1DC2
, 0x23A90E62, 0x23A6FF22, 0x23A4EFFE, 0x23A2E0FA, 0x23A0D214, 0x239EC34B
, 0x239CB4A3, 0x239AA618, 0x239897AB, 0x2396895D, 0x23947B2E, 0x23926D1C
, 0x23905F2A, 0x238E5156, 0x238C439F, 0x238A3608, 0x2388288F, 0x23861B33
, 0x23840DF7, 0x238200D9, 0x237FF3D8, 0x237DE6F7, 0x237BDA34, 0x2379CD8E
, 0x2377C108, 0x2375B4A0, 0x2373A855, 0x23719C29, 0x236F901C, 0x236D842C
, 0x236B785B, 0x23696CA9, 0x23676113, 0x2365559D, 0x23634A46, 0x23613F0B
, 0x235F33F0, 0x235D28F3, 0x235B1E13, 0x23591352, 0x235708B0, 0x2354FE2A
, 0x2352F3C4, 0x2350E97C, 0x234EDF51, 0x234CD546, 0x234ACB58, 0x2348C187
, 0x2346B7D6, 0x2344AE44, 0x2342A4CD, 0x23409B77, 0x233E923E, 0x233C8922
, 0x233A8026, 0x23387747, 0x23366E86, 0x233465E4, 0x23325D5F, 0x233054F8
, 0x232E4CB0, 0x232C4486, 0x232A3C79, 0x2328348B, 0x23262CBB, 0x23242508
, 0x23221D74, 0x232015FE, 0x231E0EA5, 0x231C076B, 0x231A0050, 0x2317F950
, 0x2315F271, 0x2313EBAF, 0x2311E50A, 0x230FDE84, 0x230DD81C, 0x230BD1D0
, 0x2309CBA4, 0x2307C596, 0x2305BFA4, 0x2303B9D2, 0x2301B41D, 0x22FFAE85
, 0x22FDA90D, 0x22FBA3B2, 0x22F99E74, 0x22F79955, 0x22F59454, 0x22F38F6F
, 0x22F18AA9, 0x22EF8602, 0x22ED8177, 0x22EB7D0B, 0x22E978BD, 0x22E7748B
, 0x22E57079, 0x22E36C84, 0x22E168AC, 0x22DF64F3, 0x22DD6157, 0x22DB5DD8
, 0x22D95A79, 0x22D75737, 0x22D55411, 0x22D3510B, 0x22D14E22, 0x22CF4B56
, 0x22CD48A8, 0x22CB4619, 0x22C943A6, 0x22C74152, 0x22C53F1B, 0x22C33D01
, 0x22C13B06, 0x22BF3929, 0x22BD3768, 0x22BB35C6, 0x22B93442, 0x22B732DA
, 0x22B53191, 0x22B33066, 0x22B12F56, 0x22AF2E66, 0x22AD2D94, 0x22AB2CDE
, 0x22A92C47, 0x22A72BCD, 0x22A52B70, 0x22A32B31, 0x22A12B11, 0x229F2B0C
, 0x229D2B26, 0x229B2B5E, 0x22992BB2, 0x22972C25, 0x22952CB6, 0x22932D62
, 0x22912E2E, 0x228F2F17, 0x228D301D, 0x228B3141, 0x22893282, 0x228733E0
, 0x2285355D, 0x228336F7, 0x228138AD, 0x227F3A82, 0x227D3C75, 0x227B3E84
, 0x227940B1, 0x227742FC, 0x22754563, 0x227347E9, 0x22714A8C, 0x226F4D4B
, 0x226D5029, 0x226B5325, 0x2269563C, 0x22675973, 0x22655CC6, 0x22636036
, 0x226163C4, 0x225F6770, 0x225D6B38, 0x225B6F1E, 0x22597322, 0x22577742
, 0x22557B80, 0x22537FDC, 0x22518454, 0x224F88EA, 0x224D8D9E, 0x224B926E
, 0x2249975C, 0x22479C68, 0x2245A18F, 0x2243A6D6, 0x2241AC39, 0x223FB1B8
, 0x223DB756, 0x223BBD12, 0x2239C2E9, 0x2237C8DE, 0x2235CEF1, 0x2233D520
, 0x2231DB6D, 0x222FE1D8, 0x222DE85E, 0x222BEF03, 0x2229F5C5, 0x2227FCA3
, 0x222603A0, 0x22240AB9, 0x222211EF, 0x22201943, 0x221E20B4, 0x221C2841
, 0x221A2FEC, 0x221837B5, 0x22163F99, 0x2214479C, 0x22124FBC, 0x221057F7
, 0x220E6051, 0x220C68C8, 0x220A715B, 0x22087A0D, 0x220682DB, 0x22048BC5
, 0x220294CE, 0x22009DF3, 0x21FEA734, 0x21FCB094, 0x21FABA11, 0x21F8C3A9
, 0x21F6CD60, 0x21F4D733, 0x21F2E123, 0x21F0EB30, 0x21EEF55B, 0x21ECFFA1
, 0x21EB0A06, 0x21E91488, 0x21E71F25, 0x21E529E0, 0x21E334B9, 0x21E13FAD
, 0x21DF4ABF, 0x21DD55EF, 0x21DB613A, 0x21D96CA3, 0x21D77829, 0x21D583CA
, 0x21D38F8A, 0x21D19B67, 0x21CFA75F, 0x21CDB376, 0x21CBBFA9, 0x21C9CBF8
, 0x21C7D865, 0x21C5E4EF, 0x21C3F195, 0x21C1FE58, 0x21C00B39, 0x21BE1835
, 0x21BC254F, 0x21BA3286, 0x21B83FD8, 0x21B64D49, 0x21B45AD6, 0x21B2687F
, 0x21B07646, 0x21AE842A, 0x21AC9229, 0x21AAA046, 0x21A8AE80, 0x21A6BCD5
, 0x21A4CB49, 0x21A2D9D9, 0x21A0E885, 0x219EF74F, 0x219D0635, 0x219B1537
, 0x21992457, 0x21973393, 0x219542EB, 0x21935261, 0x219161F3, 0x218F71A1
, 0x218D816D, 0x218B9156, 0x2189A159, 0x2187B17B, 0x2185C1BA, 0x2183D214
, 0x2181E28B, 0x217FF320, 0x217E03CF, 0x217C149D, 0x217A2587, 0x2178368D
, 0x217647B0, 0x217458F0, 0x21726A4B, 0x21707BC4, 0x216E8D5A, 0x216C9F0B
, 0x216AB0DA, 0x2168C2C5, 0x2166D4CB, 0x2164E6F0, 0x2162F931, 0x21610B8D
, 0x215F1E07, 0x215D309D, 0x215B434F, 0x2159561E, 0x2157690A, 0x21557C11
, 0x21538F36, 0x2151A277, 0x214FB5D4, 0x214DC94E, 0x214BDCE5, 0x2149F096
, 0x21480466, 0x21461852, 0x21442C59, 0x2142407E, 0x214054BF, 0x213E691B
, 0x213C7D95, 0x213A922C, 0x2138A6DD, 0x2136BBAC, 0x2134D098, 0x2132E59E
, 0x2130FAC2, 0x212F1003, 0x212D255F, 0x212B3AD8, 0x2129506E, 0x2127661E
, 0x21257BEC, 0x212391D7, 0x2121A7DC, 0x211FBE00, 0x211DD43F, 0x211BEA9A
, 0x211A0112, 0x211817A6, 0x21162E55, 0x21144522, 0x21125C0B, 0x2110730F
, 0x210E8A31, 0x210CA16E, 0x210AB8C7, 0x2108D03D, 0x2106E7D0, 0x2104FF7D
, 0x21031748, 0x21012F2F, 0x20FF4731, 0x20FD5F50, 0x20FB778C, 0x20F98FE3
, 0x20F7A857, 0x20F5C0E7, 0x20F3D992, 0x20F1F25A, 0x20F00B3F, 0x20EE243E
, 0x20EC3D5B, 0x20EA5694, 0x20E86FE7, 0x20E68959, 0x20E4A2E6, 0x20E2BC8E
, 0x20E0D653, 0x20DEF035, 0x20DD0A31, 0x20DB244B, 0x20D93E81, 0x20D758D1
, 0x20D5733F, 0x20D38DC9, 0x20D1A86D, 0x20CFC32F, 0x20CDDE0D, 0x20CBF906
, 0x20CA141C, 0x20C82F4E, 0x20C64A9B, 0x20C46605, 0x20C2818B, 0x20C09D2C
, 0x20BEB8E9, 0x20BCD4C3, 0x20BAF0B8, 0x20B90CCA, 0x20B728F8, 0x20B54540
, 0x20B361A6, 0x20B17E27, 0x20AF9AC4, 0x20ADB77D, 0x20ABD452, 0x20A9F142
, 0x20A80E50, 0x20A62B79, 0x20A448BC, 0x20A2661D, 0x20A0839A, 0x209EA131
, 0x209CBEE6, 0x209ADCB6, 0x2098FAA1, 0x209718A9, 0x209536CD, 0x2093550B
, 0x20917366, 0x208F91DE, 0x208DB06F, 0x208BCF1E, 0x2089EDE9, 0x20880CCE
, 0x20862BD0, 0x20844AEF, 0x20826A27, 0x2080897D, 0x207EA8EE, 0x207CC87A
, 0x207AE823, 0x207907E7, 0x207727C6, 0x207547C3, 0x207367DA, 0x2071880C
, 0x206FA85C, 0x206DC8C7, 0x206BE94C, 0x206A09EE, 0x20682AAC, 0x20664B85
, 0x20646C7A, 0x20628D8B, 0x2060AEB7, 0x205ECFFF, 0x205CF163, 0x205B12E1
, 0x2059347D, 0x20575633, 0x20557805, 0x205399F3, 0x2051BBFD, 0x204FDE21
, 0x204E0062, 0x204C22BE, 0x204A4535, 0x204867C9, 0x20468A78, 0x2044AD42
, 0x2042D028, 0x2040F32A, 0x203F1646, 0x203D397F, 0x203B5CD4, 0x20398043
, 0x2037A3CF, 0x2035C776, 0x2033EB37, 0x20320F15, 0x2030330F, 0x202E5723
, 0x202C7B54, 0x202A9FA0, 0x2028C406, 0x2026E889, 0x20250D28, 0x202331E0
, 0x202156B6, 0x201F7BA7, 0x201DA0B2, 0x201BC5DA, 0x2019EB1D, 0x2018107A
, 0x201635F4, 0x20145B8A, 0x20128139, 0x2010A706, 0x200ECCED, 0x200CF2EF
, 0x200B190D, 0x20093F47, 0x2007659B, 0x20058C0B, 0x2003B297, 0x2001D93D
, 0x20000000};

/*
 * In  - frac in 1/65536 of base freq
 * Out - tone [-128*256..64*256..256*256] in 1/256 semitones
 */
int32_t Convert_FracToTone(uint32_t frac)
{
	int32_t tone, min, max, cur;
	uint32_t cfrac;

	// freq is multiplied by 2 with each octave ( = 12 seminotes)
	if (frac == 0)
		return -128*256;

	// Start from highest octave go down octave by octave
	// till freq fits in range of values from Table_FracSemitone12256
	tone = 232*256;
	while (frac > 0x40000000)
	{
		frac >>= 1;
		tone += 12*256;
	}

	while (frac <= 0x20000000)
	{
		frac <<= 1;
		tone -= 12*256;
	}

	// frac is index from table, use bissection
	min = 0;
	max = 12*256;

	do
	{
		cur = (min + max) /2;
		cfrac = Table_FracSemitone12256[cur];
		if (cfrac >= frac)
			min = cur;
		if (cfrac <= frac)
			max = cur;
		cur = max - min;
		cur--; // real value may be between consecutive values
	}
	while (cur > 0);

	// Substract frac from octave tone
	return tone - min;
}

/*
 * In  - tone [-128*256..64*256..256*256[ in 1/256 semitone
 * Out - frac in 1/65536 of base freq
 */
uint32_t Convert_ToneToFrac(int32_t tone)
{
	int32_t octave;

	// Limits of validity of calculations below
	if (tone <= (-128 * 256)) return 1;
	if (tone >= (256 * 256)) return 0xffffffff;

	tone = 232*256 - tone; // octave start is at -232*256

	// freq is multiplied by 2 with each octave ( = 12 seminotes) so
	// freq = freq_top[12*256-1-octave_frac(note)] >> octave(note)

	if (tone < 0)
	{
		octave = (tone + 1 - 12 * 256) / (12 * 256);
		tone -= octave * 12 * 256;
		return Table_FracSemitone12256[tone] << -octave;
	}
	else
	{
		octave = tone / (12 * 256);
		tone -= octave * 12 * 256;
		return Table_FracSemitone12256[tone] >> octave;
	}
}

/*
 * In  - frac in 1/65536 of base freq
 * Out - period [&ffffffff..428*256..1] in 1/256 Amiga period
 */
uint32_t Convert_FracToPeriod(uint32_t frac)
{
	uint64_t period;

	if (frac < 2) return 0xffffffff;

	period = 428 * 256 * UINT64_C(65536);
	period /= frac;

	return (uint32_t) period;
}

/*
 * In  - period [&FFFFFFFF..428*256..1]
 * Out - frac in 1/65536 of base freq
 */
uint32_t Convert_PeriodToFrac(uint32_t period)
{
	uint64_t frac;

	if (period < 2) return 0xffffffff;

	frac = 428 * 256 * UINT64_C(65536);
	frac /= period;

	return (uint32_t) frac;
}

/*
 * In  - cutoff [0..127*256]
 * Out - (2^-(cutoff/(24*256)) in 1/(1<<30)
 */
uint32_t Convert_Cutoff(uint32_t cutoff)
{
	uint32_t octave, frac;
	// out is divided by 2 each 24*256 (an "octave")
	// out = frac[octave_frac(cutoff)] >> octave(cutoff)

	octave = cutoff / (24 * 256);
	frac = cutoff - octave * 24 * 256;
	// We will use Table_FracSemitone12256, table unit is 2^30.
	// Table step is 12*256 instead of 24*256 so we will interpolate
	// for odd values
	const uint32_t* p = Table_FracSemitone12256 + (frac >> 1);
	if (frac & 1)
		frac = (p[0] + p[1]) / 2;
	else
		frac = p[0];

	return frac >> octave;
}

/*
 * In  - tempo
 *     - base [0-2]
 * Out - period (in 1/256000000th of second)
 */
uint32_t Get_TempoTime(uint32_t tempo, uint32_t base)
{
	static const uint32_t Tempo_Base[] =
		{ 0x02625A00 // 256000000*2.5 /16
		, 0x1312D000 // 256000000*20  /16
		, 0x03D09000 // 256000000*4   /16
		};

	if (!tempo) tempo = 1;
	return (Tempo_Base[base] / tempo) << 4;
}

static const uint32_t PreAmp_Table[65] =
{ 0x010000
, 0x010000    / 1
, 0x01C831*2/3/ 2
, 0x02802F*2/3/ 3
, 0x032EC2*2/3/ 4
, 0x03D6EF*2/3/ 5
, 0x047A6B*2/3/ 6
, 0x051A4C*2/3/ 7
, 0x05B754*2/3/ 8
, 0x065210*2/3/ 9
, 0x06EAEC*2/3/10
, 0x07823C*2/3/11
, 0x081846*2/3/12
, 0x08AD41*2/3/13
, 0x09415D*2/3/14
, 0x09D4C2*2/3/15
, 0x0A6793*2/3/16
, 0x0AF9EE*2/3/17
, 0x0B8BED*2/3/18
, 0x0C1DA8*2/3/19
, 0x0CAF33*2/3/20
, 0x0D40A2*2/3/21
, 0x0DD206*2/3/22
, 0x0E636E*2/3/23
, 0x0EF4E8*2/3/24
, 0x0F8681*2/3/25
, 0x101846*2/3/26
, 0x10AA41*2/3/27
, 0x113C7E*2/3/28
, 0x11CF05*2/3/29
, 0x1261E0*2/3/30
, 0x12F517*2/3/31
, 0x1388B3*2/3/32
, 0x141CBB*2/3/33
, 0x14B136*2/3/34
, 0x15462C*2/3/35
, 0x15DBA2*2/3/36
, 0x1671A0*2/3/37
, 0x17082A*2/3/38
, 0x179F48*2/3/39
, 0x1836FE*2/3/40
, 0x18CF52*2/3/41
, 0x196848*2/3/42
, 0x1A01E7*2/3/43
, 0x1A9C32*2/3/44
, 0x1B372F*2/3/45
, 0x1BD2E1*2/3/46
, 0x1C6F4E*2/3/47
, 0x1D0C79*2/3/48
, 0x1DAA68*2/3/49
, 0x1E491D*2/3/50
, 0x1EE89D*2/3/51
, 0x1F88EC*2/3/52
, 0x202A0D*2/3/53
, 0x20CC05*2/3/54
, 0x216ED7*2/3/55
, 0x221286*2/3/56
, 0x22B717*2/3/57
, 0x235C8C*2/3/58
, 0x2402EA*2/3/59
, 0x24AA33*2/3/60
, 0x25526B*2/3/61
, 0x25FB96*2/3/62
, 0x26A5B6*2/3/63
, 0x2750CE*2/3/64
};

/*
 * In  - number of channels
 * Out - scale volume in 1/(1<<16)
 */
uint32_t Get_PreAmp(uint32_t channels)
{
	if (channels > 64) channels = 64;

	return PreAmp_Table[channels];
}
