mirror of
https://github.com/simon987/pg_asciifold.git
synced 2025-04-04 07:12:59 +00:00
758 lines
73 KiB
C
758 lines
73 KiB
C
#include <postgres.h>
|
|
#include <fmgr.h>
|
|
#include "utf8.h"
|
|
|
|
PG_MODULE_MAGIC;
|
|
|
|
static const int offsets[] = {0x00000000, 0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000005, 0x00000006,
|
|
0x00000007, 0x00000008, 0x00000009, 0x0000000A, 0x0000000B, 0x0000000C, 0x0000000D,
|
|
0x0000000E, 0x0000000F, 0x00000010, 0x00000011, 0x00000012, 0x00000013, 0x00000014,
|
|
0x00000015, 0x00000016, 0x00000017, 0x00000018, 0x00000019, 0x0000001A, 0x0000001B,
|
|
0x0000001C, 0x0000001D, 0x0000001E, 0x0000001F, 0x00000020, 0x00000021, 0x00000022,
|
|
0x00000023, 0x00000024, 0x00000025, 0x00000026, 0x00000027, 0x00000028, 0x00000029,
|
|
0x0000002A, 0x0000002B, 0x0000002C, 0x0000002D, 0x0000002E, 0x0000002F, 0x00000030,
|
|
0x00000031, 0x00000032, 0x00000033, 0x00000034, 0x00000035, 0x00000036, 0x00000037,
|
|
0x00000038, 0x00000039, 0x0000003A, 0x0000003B, 0x0000003C, 0x0000003D, 0x0000003E,
|
|
0x0000003F, 0x00000040, 0x00000041, 0x00000042, 0x00000043, 0x00000044, 0x00000045,
|
|
0x00000046, 0x00000047, 0x00000048, 0x00000049, 0x0000004A, 0x0000004B, 0x0000004C,
|
|
0x0000004D, 0x0000004E, 0x0000004F, 0x00000050, 0x00000051, 0x00000052, 0x00000053,
|
|
0x00000054, 0x00000055, 0x00000056, 0x00000057, 0x00000058, 0x00000059, 0x0000005A,
|
|
0x0000005B, 0x0000005C, 0x0000005D, 0x0000005E, 0x0000005F, 0x00000060, 0x00000061,
|
|
0x00000062, 0x00000063, 0x00000064, 0x00000065, 0x00000066, 0x00000067, 0x00000068,
|
|
0x00000069, 0x0000006A, 0x0000006B, 0x0000006C, 0x0000006D, 0x0000006E, 0x0000006F,
|
|
0x00000070, 0x00000071, 0x00000072, 0x00000073, 0x00000074, 0x00000075, 0x00000076,
|
|
0x00000077, 0x00000078, 0x00000079, 0x0000007A, 0x0000007B, 0x0000007C, 0x0000007D,
|
|
0x0000007E, 0x0000007F, 0x000000C0, 0x000000C1, 0x000000C2, 0x000000C3, 0x000000C4,
|
|
0x000000C5, 0x00000100, 0x00000102, 0x00000104, 0x0000018F, 0x000001CD, 0x000001DE,
|
|
0x000001E0, 0x000001FA, 0x00000200, 0x00000202, 0x00000226, 0x0000023A, 0x00001D00,
|
|
0x00001E00, 0x00001EA0, 0x00001EA2, 0x00001EA4, 0x00001EA6, 0x00001EA8, 0x00001EAA,
|
|
0x00001EAC, 0x00001EAE, 0x00001EB0, 0x00001EB2, 0x00001EB4, 0x00001EB6, 0x000024B6,
|
|
0x0000FF21, 0x000000E0, 0x000000E1, 0x000000E2, 0x000000E3, 0x000000E4, 0x000000E5,
|
|
0x00000101, 0x00000103, 0x00000105, 0x000001CE, 0x000001DF, 0x000001E1, 0x000001FB,
|
|
0x00000201, 0x00000203, 0x00000227, 0x00000250, 0x00000259, 0x0000025A, 0x00001D8F,
|
|
0x00001D95, 0x00001E01, 0x00001E9A, 0x00001EA1, 0x00001EA3, 0x00001EA5, 0x00001EA7,
|
|
0x00001EA9, 0x00001EAB, 0x00001EAD, 0x00001EAF, 0x00001EB1, 0x00001EB3, 0x00001EB5,
|
|
0x00001EB7, 0x00002090, 0x00002094, 0x000024D0, 0x00002C65, 0x00002C6F, 0x0000FF41,
|
|
0x0000A732, 0x000000C6, 0x000001E2, 0x000001FC, 0x00001D01, 0x0000A734, 0x0000A736,
|
|
0x0000A738, 0x0000A73A, 0x0000A73C, 0x0000249C, 0x0000A733, 0x000000E6, 0x000001E3,
|
|
0x000001FD, 0x00001D02, 0x0000A735, 0x0000A737, 0x0000A739, 0x0000A73B, 0x0000A73D,
|
|
0x00000181, 0x00000182, 0x00000243, 0x00000299, 0x00001D03, 0x00001E02, 0x00001E04,
|
|
0x00001E06, 0x000024B7, 0x0000FF22, 0x00000180, 0x00000183, 0x00000253, 0x00001D6C,
|
|
0x00001D80, 0x00001E03, 0x00001E05, 0x00001E07, 0x000024D1, 0x0000FF42, 0x0000249D,
|
|
0x000000C7, 0x00000106, 0x00000108, 0x0000010A, 0x0000010C, 0x00000187, 0x0000023B,
|
|
0x00000297, 0x00001D04, 0x00001E08, 0x000024B8, 0x0000FF23, 0x000000E7, 0x00000107,
|
|
0x00000109, 0x0000010B, 0x0000010D, 0x00000188, 0x0000023C, 0x00000255, 0x00001E09,
|
|
0x00002184, 0x000024D2, 0x0000A73E, 0x0000A73F, 0x0000FF43, 0x0000249E, 0x000000D0,
|
|
0x0000010E, 0x00000110, 0x00000189, 0x0000018A, 0x0000018B, 0x00001D05, 0x00001D06,
|
|
0x00001E0A, 0x00001E0C, 0x00001E0E, 0x00001E10, 0x00001E12, 0x000024B9, 0x0000A779,
|
|
0x0000FF24, 0x000000F0, 0x0000010F, 0x00000111, 0x0000018C, 0x00000221, 0x00000256,
|
|
0x00000257, 0x00001D6D, 0x00001D81, 0x00001D91, 0x00001E0B, 0x00001E0D, 0x00001E0F,
|
|
0x00001E11, 0x00001E13, 0x000024D3, 0x0000A77A, 0x0000FF44, 0x000001C4, 0x000001F1,
|
|
0x000001C5, 0x000001F2, 0x0000249F, 0x00000238, 0x000001C6, 0x000001F3, 0x000002A3,
|
|
0x000002A5, 0x000000C8, 0x000000C9, 0x000000CA, 0x000000CB, 0x00000112, 0x00000114,
|
|
0x00000116, 0x00000118, 0x0000011A, 0x0000018E, 0x00000190, 0x00000204, 0x00000206,
|
|
0x00000228, 0x00000246, 0x00001D07, 0x00001E14, 0x00001E16, 0x00001E18, 0x00001E1A,
|
|
0x00001E1C, 0x00001EB8, 0x00001EBA, 0x00001EBC, 0x00001EBE, 0x00001EC0, 0x00001EC2,
|
|
0x00001EC4, 0x00001EC6, 0x000024BA, 0x00002C7B, 0x0000FF25, 0x000000E8, 0x000000E9,
|
|
0x000000EA, 0x000000EB, 0x00000113, 0x00000115, 0x00000117, 0x00000119, 0x0000011B,
|
|
0x000001DD, 0x00000205, 0x00000207, 0x00000229, 0x00000247, 0x00000258, 0x0000025B,
|
|
0x0000025C, 0x0000025D, 0x0000025E, 0x0000029A, 0x00001D08, 0x00001D92, 0x00001D93,
|
|
0x00001D94, 0x00001E15, 0x00001E17, 0x00001E19, 0x00001E1B, 0x00001E1D, 0x00001EB9,
|
|
0x00001EBB, 0x00001EBD, 0x00001EBF, 0x00001EC1, 0x00001EC3, 0x00001EC5, 0x00001EC7,
|
|
0x00002091, 0x000024D4, 0x00002C78, 0x0000FF45, 0x000024A0, 0x00000191, 0x00001E1E,
|
|
0x000024BB, 0x0000A730, 0x0000A77B, 0x0000A7FB, 0x0000FF26, 0x00000192, 0x00001D6E,
|
|
0x00001D82, 0x00001E1F, 0x00001E9B, 0x000024D5, 0x0000A77C, 0x0000FF46, 0x000024A1,
|
|
0x0000FB00, 0x0000FB03, 0x0000FB04, 0x0000FB01, 0x0000FB02, 0x0000011C, 0x0000011E,
|
|
0x00000120, 0x00000122, 0x00000193, 0x000001E4, 0x000001E5, 0x000001E6, 0x000001E7,
|
|
0x000001F4, 0x00000262, 0x0000029B, 0x00001E20, 0x000024BC, 0x0000A77D, 0x0000A77E,
|
|
0x0000FF27, 0x0000011D, 0x0000011F, 0x00000121, 0x00000123, 0x000001F5, 0x00000260,
|
|
0x00000261, 0x00001D77, 0x00001D79, 0x00001D83, 0x00001E21, 0x000024D6, 0x0000A77F,
|
|
0x0000FF47, 0x000024A2, 0x00000124, 0x00000126, 0x0000021E, 0x0000029C, 0x00001E22,
|
|
0x00001E24, 0x00001E26, 0x00001E28, 0x00001E2A, 0x000024BD, 0x00002C67, 0x00002C75,
|
|
0x0000FF28, 0x00000125, 0x00000127, 0x0000021F, 0x00000265, 0x00000266, 0x000002AE,
|
|
0x000002AF, 0x00001E23, 0x00001E25, 0x00001E27, 0x00001E29, 0x00001E2B, 0x00001E96,
|
|
0x000024D7, 0x00002C68, 0x00002C76, 0x0000FF48, 0x000001F6, 0x000024A3, 0x00000195,
|
|
0x000000CC, 0x000000CD, 0x000000CE, 0x000000CF, 0x00000128, 0x0000012A, 0x0000012C,
|
|
0x0000012E, 0x00000130, 0x00000196, 0x00000197, 0x000001CF, 0x00000208, 0x0000020A,
|
|
0x0000026A, 0x00001D7B, 0x00001E2C, 0x00001E2E, 0x00001EC8, 0x00001ECA, 0x000024BE,
|
|
0x0000A7FE, 0x0000FF29, 0x000000EC, 0x000000ED, 0x000000EE, 0x000000EF, 0x00000129,
|
|
0x0000012B, 0x0000012D, 0x0000012F, 0x00000131, 0x000001D0, 0x00000209, 0x0000020B,
|
|
0x00000268, 0x00001D09, 0x00001D62, 0x00001D7C, 0x00001D96, 0x00001E2D, 0x00001E2F,
|
|
0x00001EC9, 0x00001ECB, 0x00002071, 0x000024D8, 0x0000FF49, 0x00000132, 0x000024A4,
|
|
0x00000133, 0x00000134, 0x00000248, 0x00001D0A, 0x000024BF, 0x0000FF2A, 0x00000135,
|
|
0x000001F0, 0x00000237, 0x00000249, 0x0000025F, 0x00000284, 0x0000029D, 0x000024D9,
|
|
0x00002C7C, 0x0000FF4A, 0x000024A5, 0x00000136, 0x00000198, 0x000001E8, 0x00001D0B,
|
|
0x00001E30, 0x00001E32, 0x00001E34, 0x000024C0, 0x00002C69, 0x0000A740, 0x0000A742,
|
|
0x0000A744, 0x0000FF2B, 0x00000137, 0x00000199, 0x000001E9, 0x0000029E, 0x00001D84,
|
|
0x00001E31, 0x00001E33, 0x00001E35, 0x000024DA, 0x00002C6A, 0x0000A741, 0x0000A743,
|
|
0x0000A745, 0x0000FF4B, 0x000024A6, 0x00000139, 0x0000013B, 0x0000013D, 0x0000013F,
|
|
0x00000141, 0x0000023D, 0x0000029F, 0x00001D0C, 0x00001E36, 0x00001E38, 0x00001E3A,
|
|
0x00001E3C, 0x000024C1, 0x00002C60, 0x00002C62, 0x0000A746, 0x0000A748, 0x0000A780,
|
|
0x0000FF2C, 0x0000013A, 0x0000013C, 0x0000013E, 0x00000140, 0x00000142, 0x0000019A,
|
|
0x00000234, 0x0000026B, 0x0000026C, 0x0000026D, 0x00001D85, 0x00001E37, 0x00001E39,
|
|
0x00001E3B, 0x00001E3D, 0x000024DB, 0x00002C61, 0x0000A747, 0x0000A749, 0x0000A781,
|
|
0x0000FF4C, 0x000001C7, 0x00001EFA, 0x000001C8, 0x000024A7, 0x000001C9, 0x00001EFB,
|
|
0x000002AA, 0x000002AB, 0x0000019C, 0x00001D0D, 0x00001E3E, 0x00001E40, 0x00001E42,
|
|
0x000024C2, 0x00002C6E, 0x0000A7FD, 0x0000A7FF, 0x0000FF2D, 0x0000026F, 0x00000270,
|
|
0x00000271, 0x00001D6F, 0x00001D86, 0x00001E3F, 0x00001E41, 0x00001E43, 0x000024DC,
|
|
0x0000FF4D, 0x000024A8, 0x000000D1, 0x00000143, 0x00000145, 0x00000147, 0x0000014A,
|
|
0x0000019D, 0x000001F8, 0x00000220, 0x00000274, 0x00001D0E, 0x00001E44, 0x00001E46,
|
|
0x00001E48, 0x00001E4A, 0x000024C3, 0x0000FF2E, 0x000000F1, 0x00000144, 0x00000146,
|
|
0x00000148, 0x00000149, 0x0000014B, 0x0000019E, 0x000001F9, 0x00000235, 0x00000272,
|
|
0x00000273, 0x00001D70, 0x00001D87, 0x00001E45, 0x00001E47, 0x00001E49, 0x00001E4B,
|
|
0x0000207F, 0x000024DD, 0x0000FF4E, 0x000001CA, 0x000001CB, 0x000024A9, 0x000001CC,
|
|
0x000000D2, 0x000000D3, 0x000000D4, 0x000000D5, 0x000000D6, 0x000000D8, 0x0000014C,
|
|
0x0000014E, 0x00000150, 0x00000186, 0x0000019F, 0x000001A0, 0x000001D1, 0x000001EA,
|
|
0x000001EC, 0x000001FE, 0x0000020C, 0x0000020E, 0x0000022A, 0x0000022C, 0x0000022E,
|
|
0x00000230, 0x00001D0F, 0x00001D10, 0x00001E4C, 0x00001E4E, 0x00001E50, 0x00001E52,
|
|
0x00001ECC, 0x00001ECE, 0x00001ED0, 0x00001ED2, 0x00001ED4, 0x00001ED6, 0x00001ED8,
|
|
0x00001EDA, 0x00001EDC, 0x00001EDE, 0x00001EE0, 0x00001EE2, 0x000024C4, 0x0000A74A,
|
|
0x0000A74C, 0x0000FF2F, 0x000000F2, 0x000000F3, 0x000000F4, 0x000000F5, 0x000000F6,
|
|
0x000000F8, 0x0000014D, 0x0000014F, 0x00000151, 0x000001A1, 0x000001D2, 0x000001EB,
|
|
0x000001ED, 0x000001FF, 0x0000020D, 0x0000020F, 0x0000022B, 0x0000022D, 0x0000022F,
|
|
0x00000231, 0x00000254, 0x00000275, 0x00001D16, 0x00001D17, 0x00001D97, 0x00001E4D,
|
|
0x00001E4F, 0x00001E51, 0x00001E53, 0x00001ECD, 0x00001ECF, 0x00001ED1, 0x00001ED3,
|
|
0x00001ED5, 0x00001ED7, 0x00001ED9, 0x00001EDB, 0x00001EDD, 0x00001EDF, 0x00001EE1,
|
|
0x00001EE3, 0x00002092, 0x000024DE, 0x00002C7A, 0x0000A74B, 0x0000A74D, 0x0000FF4F,
|
|
0x00000152, 0x00000276, 0x0000A74E, 0x00000222, 0x00001D15, 0x000024AA, 0x00000153,
|
|
0x00001D14, 0x0000A74F, 0x00000223, 0x000001A4, 0x00001D18, 0x00001E54, 0x00001E56,
|
|
0x000024C5, 0x00002C63, 0x0000A750, 0x0000A752, 0x0000A754, 0x0000FF30, 0x000001A5,
|
|
0x00001D71, 0x00001D7D, 0x00001D88, 0x00001E55, 0x00001E57, 0x000024DF, 0x0000A751,
|
|
0x0000A753, 0x0000A755, 0x0000A7FC, 0x0000FF50, 0x000024AB, 0x0000024A, 0x000024C6,
|
|
0x0000A756, 0x0000A758, 0x0000FF31, 0x00000138, 0x0000024B, 0x000002A0, 0x000024E0,
|
|
0x0000A757, 0x0000A759, 0x0000FF51, 0x000024AC, 0x00000239, 0x00000154, 0x00000156,
|
|
0x00000158, 0x00000210, 0x00000212, 0x0000024C, 0x00000280, 0x00000281, 0x00001D19,
|
|
0x00001D1A, 0x00001E58, 0x00001E5A, 0x00001E5C, 0x00001E5E, 0x000024C7, 0x00002C64,
|
|
0x0000A75A, 0x0000A782, 0x0000FF32, 0x00000155, 0x00000157, 0x00000159, 0x00000211,
|
|
0x00000213, 0x0000024D, 0x0000027C, 0x0000027D, 0x0000027E, 0x0000027F, 0x00001D63,
|
|
0x00001D72, 0x00001D73, 0x00001D89, 0x00001E59, 0x00001E5B, 0x00001E5D, 0x00001E5F,
|
|
0x000024E1, 0x0000A75B, 0x0000A783, 0x0000FF52, 0x000024AD, 0x0000015A, 0x0000015C,
|
|
0x0000015E, 0x00000160, 0x00000218, 0x00001E60, 0x00001E62, 0x00001E64, 0x00001E66,
|
|
0x00001E68, 0x000024C8, 0x0000A731, 0x0000A785, 0x0000FF33, 0x0000015B, 0x0000015D,
|
|
0x0000015F, 0x00000161, 0x0000017F, 0x00000219, 0x0000023F, 0x00000282, 0x00001D74,
|
|
0x00001D8A, 0x00001E61, 0x00001E63, 0x00001E65, 0x00001E67, 0x00001E69, 0x00001E9C,
|
|
0x00001E9D, 0x000024E2, 0x0000A784, 0x0000FF53, 0x00001E9E, 0x000024AE, 0x000000DF,
|
|
0x0000FB06, 0x00000162, 0x00000164, 0x00000166, 0x000001AC, 0x000001AE, 0x0000021A,
|
|
0x0000023E, 0x00001D1B, 0x00001E6A, 0x00001E6C, 0x00001E6E, 0x00001E70, 0x000024C9,
|
|
0x0000A786, 0x0000FF34, 0x00000163, 0x00000165, 0x00000167, 0x000001AB, 0x000001AD,
|
|
0x0000021B, 0x00000236, 0x00000287, 0x00000288, 0x00001D75, 0x00001E6B, 0x00001E6D,
|
|
0x00001E6F, 0x00001E71, 0x00001E97, 0x000024E3, 0x00002C66, 0x0000FF54, 0x000000DE,
|
|
0x0000A766, 0x0000A728, 0x000024AF, 0x000002A8, 0x000000FE, 0x00001D7A, 0x0000A767,
|
|
0x000002A6, 0x0000A729, 0x000000D9, 0x000000DA, 0x000000DB, 0x000000DC, 0x00000168,
|
|
0x0000016A, 0x0000016C, 0x0000016E, 0x00000170, 0x00000172, 0x000001AF, 0x000001D3,
|
|
0x000001D5, 0x000001D7, 0x000001D9, 0x000001DB, 0x00000214, 0x00000216, 0x00000244,
|
|
0x00001D1C, 0x00001D7E, 0x00001E72, 0x00001E74, 0x00001E76, 0x00001E78, 0x00001E7A,
|
|
0x00001EE4, 0x00001EE6, 0x00001EE8, 0x00001EEA, 0x00001EEC, 0x00001EEE, 0x00001EF0,
|
|
0x000024CA, 0x0000FF35, 0x000000F9, 0x000000FA, 0x000000FB, 0x000000FC, 0x00000169,
|
|
0x0000016B, 0x0000016D, 0x0000016F, 0x00000171, 0x00000173, 0x000001B0, 0x000001D4,
|
|
0x000001D6, 0x000001D8, 0x000001DA, 0x000001DC, 0x00000215, 0x00000217, 0x00000289,
|
|
0x00001D64, 0x00001D99, 0x00001E73, 0x00001E75, 0x00001E77, 0x00001E79, 0x00001E7B,
|
|
0x00001EE5, 0x00001EE7, 0x00001EE9, 0x00001EEB, 0x00001EED, 0x00001EEF, 0x00001EF1,
|
|
0x000024E4, 0x0000FF55, 0x000024B0, 0x00001D6B, 0x000001B2, 0x00000245, 0x00001D20,
|
|
0x00001E7C, 0x00001E7E, 0x00001EFC, 0x000024CB, 0x0000A75E, 0x0000A768, 0x0000FF36,
|
|
0x0000028B, 0x0000028C, 0x00001D65, 0x00001D8C, 0x00001E7D, 0x00001E7F, 0x000024E5,
|
|
0x00002C71, 0x00002C74, 0x0000A75F, 0x0000FF56, 0x0000A760, 0x000024B1, 0x0000A761,
|
|
0x00000174, 0x000001F7, 0x00001D21, 0x00001E80, 0x00001E82, 0x00001E84, 0x00001E86,
|
|
0x00001E88, 0x000024CC, 0x00002C72, 0x0000FF37, 0x00000175, 0x000001BF, 0x0000028D,
|
|
0x00001E81, 0x00001E83, 0x00001E85, 0x00001E87, 0x00001E89, 0x00001E98, 0x000024E6,
|
|
0x00002C73, 0x0000FF57, 0x000024B2, 0x00001E8A, 0x00001E8C, 0x000024CD, 0x0000FF38,
|
|
0x00001D8D, 0x00001E8B, 0x00001E8D, 0x00002093, 0x000024E7, 0x0000FF58, 0x000024B3,
|
|
0x000000DD, 0x00000176, 0x00000178, 0x000001B3, 0x00000232, 0x0000024E, 0x0000028F,
|
|
0x00001E8E, 0x00001EF2, 0x00001EF4, 0x00001EF6, 0x00001EF8, 0x00001EFE, 0x000024CE,
|
|
0x0000FF39, 0x000000FD, 0x000000FF, 0x00000177, 0x000001B4, 0x00000233, 0x0000024F,
|
|
0x0000028E, 0x00001E8F, 0x00001E99, 0x00001EF3, 0x00001EF5, 0x00001EF7, 0x00001EF9,
|
|
0x00001EFF, 0x000024E8, 0x0000FF59, 0x000024B4, 0x00000179, 0x0000017B, 0x0000017D,
|
|
0x000001B5, 0x0000021C, 0x00000224, 0x00001D22, 0x00001E90, 0x00001E92, 0x00001E94,
|
|
0x000024CF, 0x00002C6B, 0x0000A762, 0x0000FF3A, 0x0000017A, 0x0000017C, 0x0000017E,
|
|
0x000001B6, 0x0000021D, 0x00000225, 0x00000240, 0x00000290, 0x00000291, 0x00001D76,
|
|
0x00001D8E, 0x00001E91, 0x00001E93, 0x00001E95, 0x000024E9, 0x00002C6C, 0x0000A763,
|
|
0x0000FF5A, 0x000024B5, 0x00002070, 0x00002080, 0x000024EA, 0x000024FF, 0x0000FF10,
|
|
0x000000B9, 0x00002081, 0x00002460, 0x000024F5, 0x00002776, 0x00002780, 0x0000278A,
|
|
0x0000FF11, 0x00002488, 0x00002474, 0x000000B2, 0x00002082, 0x00002461, 0x000024F6,
|
|
0x00002777, 0x00002781, 0x0000278B, 0x0000FF12, 0x00002489, 0x00002475, 0x000000B3,
|
|
0x00002083, 0x00002462, 0x000024F7, 0x00002778, 0x00002782, 0x0000278C, 0x0000FF13,
|
|
0x0000248A, 0x00002476, 0x00002074, 0x00002084, 0x00002463, 0x000024F8, 0x00002779,
|
|
0x00002783, 0x0000278D, 0x0000FF14, 0x0000248B, 0x00002477, 0x00002075, 0x00002085,
|
|
0x00002464, 0x000024F9, 0x0000277A, 0x00002784, 0x0000278E, 0x0000FF15, 0x0000248C,
|
|
0x00002478, 0x00002076, 0x00002086, 0x00002465, 0x000024FA, 0x0000277B, 0x00002785,
|
|
0x0000278F, 0x0000FF16, 0x0000248D, 0x00002479, 0x00002077, 0x00002087, 0x00002466,
|
|
0x000024FB, 0x0000277C, 0x00002786, 0x00002790, 0x0000FF17, 0x0000248E, 0x0000247A,
|
|
0x00002078, 0x00002088, 0x00002467, 0x000024FC, 0x0000277D, 0x00002787, 0x00002791,
|
|
0x0000FF18, 0x0000248F, 0x0000247B, 0x00002079, 0x00002089, 0x00002468, 0x000024FD,
|
|
0x0000277E, 0x00002788, 0x00002792, 0x0000FF19, 0x00002490, 0x0000247C, 0x00002469,
|
|
0x000024FE, 0x0000277F, 0x00002789, 0x00002793, 0x00002491, 0x0000247D, 0x0000246A,
|
|
0x000024EB, 0x00002492, 0x0000247E, 0x0000246B, 0x000024EC, 0x00002493, 0x0000247F,
|
|
0x0000246C, 0x000024ED, 0x00002494, 0x00002480, 0x0000246D, 0x000024EE, 0x00002495,
|
|
0x00002481, 0x0000246E, 0x000024EF, 0x00002496, 0x00002482, 0x0000246F, 0x000024F0,
|
|
0x00002497, 0x00002483, 0x00002470, 0x000024F1, 0x00002498, 0x00002484, 0x00002471,
|
|
0x000024F2, 0x00002499, 0x00002485, 0x00002472, 0x000024F3, 0x0000249A, 0x00002486,
|
|
0x00002473, 0x000024F4, 0x0000249B, 0x00002487, 0x000000AB, 0x000000BB, 0x0000201C,
|
|
0x0000201D, 0x0000201E, 0x00002033, 0x00002036, 0x0000275D, 0x0000275E, 0x0000276E,
|
|
0x0000276F, 0x0000FF02, 0x00002018, 0x00002019, 0x0000201A, 0x0000201B, 0x00002032,
|
|
0x00002035, 0x00002039, 0x0000203A, 0x0000275B, 0x0000275C, 0x0000FF07, 0x00002010,
|
|
0x00002011, 0x00002012, 0x00002013, 0x00002014, 0x0000207B, 0x0000208B, 0x0000FF0D,
|
|
0x00002045, 0x00002772, 0x0000FF3B, 0x00002046, 0x00002773, 0x0000FF3D, 0x0000207D,
|
|
0x0000208D, 0x00002768, 0x0000276A, 0x0000FF08, 0x00002E28, 0x0000207E, 0x0000208E,
|
|
0x00002769, 0x0000276B, 0x0000FF09, 0x00002E29, 0x0000276C, 0x00002770, 0x0000FF1C,
|
|
0x0000276D, 0x00002771, 0x0000FF1E, 0x00002774, 0x0000FF5B, 0x00002775, 0x0000FF5D,
|
|
0x0000207A, 0x0000208A, 0x0000FF0B, 0x0000207C, 0x0000208C, 0x0000FF1D, 0x0000FF01,
|
|
0x0000203C, 0x00002049, 0x0000FF03, 0x0000FF04, 0x00002052, 0x0000FF05, 0x0000FF06,
|
|
0x0000204E, 0x0000FF0A, 0x0000FF0C, 0x0000FF0E, 0x00002044, 0x0000FF0F, 0x0000FF1A,
|
|
0x0000204F, 0x0000FF1B, 0x0000FF1F, 0x00002047, 0x00002048, 0x0000FF20, 0x0000FF3C,
|
|
0x00002038, 0x0000FF3E, 0x0000FF3F, 0x00002053, 0x0000FF5E};
|
|
static const int replacements[] = {0x00000000, 0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000005, 0x00000006,
|
|
0x00000007, 0x00000008, 0x00000009, 0x0000000A, 0x0000000B, 0x0000000C, 0x0000000D,
|
|
0x0000000E, 0x0000000F, 0x00000010, 0x00000011, 0x00000012, 0x00000013, 0x00000014,
|
|
0x00000015, 0x00000016, 0x00000017, 0x00000018, 0x00000019, 0x0000001A, 0x0000001B,
|
|
0x0000001C, 0x0000001D, 0x0000001E, 0x0000001F, 0x00000020, 0x00000021, 0x00000022,
|
|
0x00000023, 0x00000024, 0x00000025, 0x00000026, 0x00000027, 0x00000028, 0x00000029,
|
|
0x0000002A, 0x0000002B, 0x0000002C, 0x0000002D, 0x0000002E, 0x0000002F, 0x00000030,
|
|
0x00000031, 0x00000032, 0x00000033, 0x00000034, 0x00000035, 0x00000036, 0x00000037,
|
|
0x00000038, 0x00000039, 0x0000003A, 0x0000003B, 0x0000003C, 0x0000003D, 0x0000003E,
|
|
0x0000003F, 0x00000040, 0x00000041, 0x00000042, 0x00000043, 0x00000044, 0x00000045,
|
|
0x00000046, 0x00000047, 0x00000048, 0x00000049, 0x0000004A, 0x0000004B, 0x0000004C,
|
|
0x0000004D, 0x0000004E, 0x0000004F, 0x00000050, 0x00000051, 0x00000052, 0x00000053,
|
|
0x00000054, 0x00000055, 0x00000056, 0x00000057, 0x00000058, 0x00000059, 0x0000005A,
|
|
0x0000005B, 0x0000005C, 0x0000005D, 0x0000005E, 0x0000005F, 0x00000060, 0x00000061,
|
|
0x00000062, 0x00000063, 0x00000064, 0x00000065, 0x00000066, 0x00000067, 0x00000068,
|
|
0x00000069, 0x0000006A, 0x0000006B, 0x0000006C, 0x0000006D, 0x0000006E, 0x0000006F,
|
|
0x00000070, 0x00000071, 0x00000072, 0x00000073, 0x00000074, 0x00000075, 0x00000076,
|
|
0x00000077, 0x00000078, 0x00000079, 0x0000007A, 0x0000007B, 0x0000007C, 0x0000007D,
|
|
0x0000007E, 0x004C4544, 0x00000041, 0x00000041, 0x00000041, 0x00000041, 0x00000041,
|
|
0x00000041, 0x00000041, 0x00000041, 0x00000041, 0x00000041, 0x00000041, 0x00000041,
|
|
0x00000041, 0x00000041, 0x00000041, 0x00000041, 0x00000041, 0x00000041, 0x00000041,
|
|
0x00000041, 0x00000041, 0x00000041, 0x00000041, 0x00000041, 0x00000041, 0x00000041,
|
|
0x00000041, 0x00000041, 0x00000041, 0x00000041, 0x00000041, 0x00000041, 0x00000041,
|
|
0x00000041, 0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061,
|
|
0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061,
|
|
0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061,
|
|
0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061,
|
|
0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061,
|
|
0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061,
|
|
0x00004141, 0x00004541, 0x00004541, 0x00004541, 0x00004541, 0x00004F41, 0x00005541,
|
|
0x00005641, 0x00005641, 0x00005941, 0x00296128, 0x00006161, 0x00006561, 0x00006561,
|
|
0x00006561, 0x00006561, 0x00006F61, 0x00007561, 0x00007661, 0x00007661, 0x00007961,
|
|
0x00000042, 0x00000042, 0x00000042, 0x00000042, 0x00000042, 0x00000042, 0x00000042,
|
|
0x00000042, 0x00000042, 0x00000042, 0x00000062, 0x00000062, 0x00000062, 0x00000062,
|
|
0x00000062, 0x00000062, 0x00000062, 0x00000062, 0x00000062, 0x00000062, 0x00296228,
|
|
0x00000043, 0x00000043, 0x00000043, 0x00000043, 0x00000043, 0x00000043, 0x00000043,
|
|
0x00000043, 0x00000043, 0x00000043, 0x00000043, 0x00000043, 0x00000063, 0x00000063,
|
|
0x00000063, 0x00000063, 0x00000063, 0x00000063, 0x00000063, 0x00000063, 0x00000063,
|
|
0x00000063, 0x00000063, 0x00000063, 0x00000063, 0x00000063, 0x00296328, 0x00000044,
|
|
0x00000044, 0x00000044, 0x00000044, 0x00000044, 0x00000044, 0x00000044, 0x00000044,
|
|
0x00000044, 0x00000044, 0x00000044, 0x00000044, 0x00000044, 0x00000044, 0x00000044,
|
|
0x00000044, 0x00000064, 0x00000064, 0x00000064, 0x00000064, 0x00000064, 0x00000064,
|
|
0x00000064, 0x00000064, 0x00000064, 0x00000064, 0x00000064, 0x00000064, 0x00000064,
|
|
0x00000064, 0x00000064, 0x00000064, 0x00000064, 0x00000064, 0x00005A44, 0x00005A44,
|
|
0x00007A44, 0x00007A44, 0x00296428, 0x00006264, 0x00007A64, 0x00007A64, 0x00007A64,
|
|
0x00007A64, 0x00000045, 0x00000045, 0x00000045, 0x00000045, 0x00000045, 0x00000045,
|
|
0x00000045, 0x00000045, 0x00000045, 0x00000045, 0x00000045, 0x00000045, 0x00000045,
|
|
0x00000045, 0x00000045, 0x00000045, 0x00000045, 0x00000045, 0x00000045, 0x00000045,
|
|
0x00000045, 0x00000045, 0x00000045, 0x00000045, 0x00000045, 0x00000045, 0x00000045,
|
|
0x00000045, 0x00000045, 0x00000045, 0x00000045, 0x00000045, 0x00000065, 0x00000065,
|
|
0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065,
|
|
0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065,
|
|
0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065,
|
|
0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065,
|
|
0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065,
|
|
0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00296528, 0x00000046, 0x00000046,
|
|
0x00000046, 0x00000046, 0x00000046, 0x00000046, 0x00000046, 0x00000066, 0x00000066,
|
|
0x00000066, 0x00000066, 0x00000066, 0x00000066, 0x00000066, 0x00000066, 0x00296628,
|
|
0x00006666, 0x00696666, 0x006C6666, 0x00006966, 0x00006C66, 0x00000047, 0x00000047,
|
|
0x00000047, 0x00000047, 0x00000047, 0x00000047, 0x00000047, 0x00000047, 0x00000047,
|
|
0x00000047, 0x00000047, 0x00000047, 0x00000047, 0x00000047, 0x00000047, 0x00000047,
|
|
0x00000047, 0x00000067, 0x00000067, 0x00000067, 0x00000067, 0x00000067, 0x00000067,
|
|
0x00000067, 0x00000067, 0x00000067, 0x00000067, 0x00000067, 0x00000067, 0x00000067,
|
|
0x00000067, 0x00296728, 0x00000048, 0x00000048, 0x00000048, 0x00000048, 0x00000048,
|
|
0x00000048, 0x00000048, 0x00000048, 0x00000048, 0x00000048, 0x00000048, 0x00000048,
|
|
0x00000048, 0x00000068, 0x00000068, 0x00000068, 0x00000068, 0x00000068, 0x00000068,
|
|
0x00000068, 0x00000068, 0x00000068, 0x00000068, 0x00000068, 0x00000068, 0x00000068,
|
|
0x00000068, 0x00000068, 0x00000068, 0x00000068, 0x00005648, 0x00296828, 0x00007668,
|
|
0x00000049, 0x00000049, 0x00000049, 0x00000049, 0x00000049, 0x00000049, 0x00000049,
|
|
0x00000049, 0x00000049, 0x00000049, 0x00000049, 0x00000049, 0x00000049, 0x00000049,
|
|
0x00000049, 0x00000049, 0x00000049, 0x00000049, 0x00000049, 0x00000049, 0x00000049,
|
|
0x00000049, 0x00000049, 0x00000069, 0x00000069, 0x00000069, 0x00000069, 0x00000069,
|
|
0x00000069, 0x00000069, 0x00000069, 0x00000069, 0x00000069, 0x00000069, 0x00000069,
|
|
0x00000069, 0x00000069, 0x00000069, 0x00000069, 0x00000069, 0x00000069, 0x00000069,
|
|
0x00000069, 0x00000069, 0x00000069, 0x00000069, 0x00000069, 0x00004A49, 0x00296928,
|
|
0x00006A69, 0x0000004A, 0x0000004A, 0x0000004A, 0x0000004A, 0x0000004A, 0x0000006A,
|
|
0x0000006A, 0x0000006A, 0x0000006A, 0x0000006A, 0x0000006A, 0x0000006A, 0x0000006A,
|
|
0x0000006A, 0x0000006A, 0x00296A28, 0x0000004B, 0x0000004B, 0x0000004B, 0x0000004B,
|
|
0x0000004B, 0x0000004B, 0x0000004B, 0x0000004B, 0x0000004B, 0x0000004B, 0x0000004B,
|
|
0x0000004B, 0x0000004B, 0x0000006B, 0x0000006B, 0x0000006B, 0x0000006B, 0x0000006B,
|
|
0x0000006B, 0x0000006B, 0x0000006B, 0x0000006B, 0x0000006B, 0x0000006B, 0x0000006B,
|
|
0x0000006B, 0x0000006B, 0x00296B28, 0x0000004C, 0x0000004C, 0x0000004C, 0x0000004C,
|
|
0x0000004C, 0x0000004C, 0x0000004C, 0x0000004C, 0x0000004C, 0x0000004C, 0x0000004C,
|
|
0x0000004C, 0x0000004C, 0x0000004C, 0x0000004C, 0x0000004C, 0x0000004C, 0x0000004C,
|
|
0x0000004C, 0x0000006C, 0x0000006C, 0x0000006C, 0x0000006C, 0x0000006C, 0x0000006C,
|
|
0x0000006C, 0x0000006C, 0x0000006C, 0x0000006C, 0x0000006C, 0x0000006C, 0x0000006C,
|
|
0x0000006C, 0x0000006C, 0x0000006C, 0x0000006C, 0x0000006C, 0x0000006C, 0x0000006C,
|
|
0x0000006C, 0x00004A4C, 0x00004C4C, 0x00006A4C, 0x00296C28, 0x00006A6C, 0x00006C6C,
|
|
0x0000736C, 0x00007A6C, 0x0000004D, 0x0000004D, 0x0000004D, 0x0000004D, 0x0000004D,
|
|
0x0000004D, 0x0000004D, 0x0000004D, 0x0000004D, 0x0000004D, 0x0000006D, 0x0000006D,
|
|
0x0000006D, 0x0000006D, 0x0000006D, 0x0000006D, 0x0000006D, 0x0000006D, 0x0000006D,
|
|
0x0000006D, 0x00296D28, 0x0000004E, 0x0000004E, 0x0000004E, 0x0000004E, 0x0000004E,
|
|
0x0000004E, 0x0000004E, 0x0000004E, 0x0000004E, 0x0000004E, 0x0000004E, 0x0000004E,
|
|
0x0000004E, 0x0000004E, 0x0000004E, 0x0000004E, 0x0000006E, 0x0000006E, 0x0000006E,
|
|
0x0000006E, 0x0000006E, 0x0000006E, 0x0000006E, 0x0000006E, 0x0000006E, 0x0000006E,
|
|
0x0000006E, 0x0000006E, 0x0000006E, 0x0000006E, 0x0000006E, 0x0000006E, 0x0000006E,
|
|
0x0000006E, 0x0000006E, 0x0000006E, 0x00004A4E, 0x00006A4E, 0x00296E28, 0x00006A6E,
|
|
0x0000004F, 0x0000004F, 0x0000004F, 0x0000004F, 0x0000004F, 0x0000004F, 0x0000004F,
|
|
0x0000004F, 0x0000004F, 0x0000004F, 0x0000004F, 0x0000004F, 0x0000004F, 0x0000004F,
|
|
0x0000004F, 0x0000004F, 0x0000004F, 0x0000004F, 0x0000004F, 0x0000004F, 0x0000004F,
|
|
0x0000004F, 0x0000004F, 0x0000004F, 0x0000004F, 0x0000004F, 0x0000004F, 0x0000004F,
|
|
0x0000004F, 0x0000004F, 0x0000004F, 0x0000004F, 0x0000004F, 0x0000004F, 0x0000004F,
|
|
0x0000004F, 0x0000004F, 0x0000004F, 0x0000004F, 0x0000004F, 0x0000004F, 0x0000004F,
|
|
0x0000004F, 0x0000004F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F,
|
|
0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F,
|
|
0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F,
|
|
0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F,
|
|
0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F,
|
|
0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F,
|
|
0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F,
|
|
0x0000454F, 0x0000454F, 0x00004F4F, 0x0000554F, 0x0000554F, 0x00296F28, 0x0000656F,
|
|
0x0000656F, 0x00006F6F, 0x0000756F, 0x00000050, 0x00000050, 0x00000050, 0x00000050,
|
|
0x00000050, 0x00000050, 0x00000050, 0x00000050, 0x00000050, 0x00000050, 0x00000070,
|
|
0x00000070, 0x00000070, 0x00000070, 0x00000070, 0x00000070, 0x00000070, 0x00000070,
|
|
0x00000070, 0x00000070, 0x00000070, 0x00000070, 0x00297028, 0x00000051, 0x00000051,
|
|
0x00000051, 0x00000051, 0x00000051, 0x00000071, 0x00000071, 0x00000071, 0x00000071,
|
|
0x00000071, 0x00000071, 0x00000071, 0x00297128, 0x00007071, 0x00000052, 0x00000052,
|
|
0x00000052, 0x00000052, 0x00000052, 0x00000052, 0x00000052, 0x00000052, 0x00000052,
|
|
0x00000052, 0x00000052, 0x00000052, 0x00000052, 0x00000052, 0x00000052, 0x00000052,
|
|
0x00000052, 0x00000052, 0x00000052, 0x00000072, 0x00000072, 0x00000072, 0x00000072,
|
|
0x00000072, 0x00000072, 0x00000072, 0x00000072, 0x00000072, 0x00000072, 0x00000072,
|
|
0x00000072, 0x00000072, 0x00000072, 0x00000072, 0x00000072, 0x00000072, 0x00000072,
|
|
0x00000072, 0x00000072, 0x00000072, 0x00000072, 0x00297228, 0x00000053, 0x00000053,
|
|
0x00000053, 0x00000053, 0x00000053, 0x00000053, 0x00000053, 0x00000053, 0x00000053,
|
|
0x00000053, 0x00000053, 0x00000053, 0x00000053, 0x00000053, 0x00000073, 0x00000073,
|
|
0x00000073, 0x00000073, 0x00000073, 0x00000073, 0x00000073, 0x00000073, 0x00000073,
|
|
0x00000073, 0x00000073, 0x00000073, 0x00000073, 0x00000073, 0x00000073, 0x00000073,
|
|
0x00000073, 0x00000073, 0x00000073, 0x00000073, 0x00005353, 0x00297328, 0x00007373,
|
|
0x00007473, 0x00000054, 0x00000054, 0x00000054, 0x00000054, 0x00000054, 0x00000054,
|
|
0x00000054, 0x00000054, 0x00000054, 0x00000054, 0x00000054, 0x00000054, 0x00000054,
|
|
0x00000054, 0x00000054, 0x00000074, 0x00000074, 0x00000074, 0x00000074, 0x00000074,
|
|
0x00000074, 0x00000074, 0x00000074, 0x00000074, 0x00000074, 0x00000074, 0x00000074,
|
|
0x00000074, 0x00000074, 0x00000074, 0x00000074, 0x00000074, 0x00000074, 0x00004854,
|
|
0x00004854, 0x00005A54, 0x00297428, 0x00006374, 0x00006874, 0x00006874, 0x00006874,
|
|
0x00007374, 0x00007A74, 0x00000055, 0x00000055, 0x00000055, 0x00000055, 0x00000055,
|
|
0x00000055, 0x00000055, 0x00000055, 0x00000055, 0x00000055, 0x00000055, 0x00000055,
|
|
0x00000055, 0x00000055, 0x00000055, 0x00000055, 0x00000055, 0x00000055, 0x00000055,
|
|
0x00000055, 0x00000055, 0x00000055, 0x00000055, 0x00000055, 0x00000055, 0x00000055,
|
|
0x00000055, 0x00000055, 0x00000055, 0x00000055, 0x00000055, 0x00000055, 0x00000055,
|
|
0x00000055, 0x00000055, 0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075,
|
|
0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075,
|
|
0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075,
|
|
0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075,
|
|
0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075,
|
|
0x00000075, 0x00000075, 0x00297528, 0x00006575, 0x00000056, 0x00000056, 0x00000056,
|
|
0x00000056, 0x00000056, 0x00000056, 0x00000056, 0x00000056, 0x00000056, 0x00000056,
|
|
0x00000076, 0x00000076, 0x00000076, 0x00000076, 0x00000076, 0x00000076, 0x00000076,
|
|
0x00000076, 0x00000076, 0x00000076, 0x00000076, 0x00005956, 0x00297628, 0x00007976,
|
|
0x00000057, 0x00000057, 0x00000057, 0x00000057, 0x00000057, 0x00000057, 0x00000057,
|
|
0x00000057, 0x00000057, 0x00000057, 0x00000057, 0x00000077, 0x00000077, 0x00000077,
|
|
0x00000077, 0x00000077, 0x00000077, 0x00000077, 0x00000077, 0x00000077, 0x00000077,
|
|
0x00000077, 0x00000077, 0x00297728, 0x00000058, 0x00000058, 0x00000058, 0x00000058,
|
|
0x00000078, 0x00000078, 0x00000078, 0x00000078, 0x00000078, 0x00000078, 0x00297828,
|
|
0x00000059, 0x00000059, 0x00000059, 0x00000059, 0x00000059, 0x00000059, 0x00000059,
|
|
0x00000059, 0x00000059, 0x00000059, 0x00000059, 0x00000059, 0x00000059, 0x00000059,
|
|
0x00000059, 0x00000079, 0x00000079, 0x00000079, 0x00000079, 0x00000079, 0x00000079,
|
|
0x00000079, 0x00000079, 0x00000079, 0x00000079, 0x00000079, 0x00000079, 0x00000079,
|
|
0x00000079, 0x00000079, 0x00000079, 0x00297928, 0x0000005A, 0x0000005A, 0x0000005A,
|
|
0x0000005A, 0x0000005A, 0x0000005A, 0x0000005A, 0x0000005A, 0x0000005A, 0x0000005A,
|
|
0x0000005A, 0x0000005A, 0x0000005A, 0x0000005A, 0x0000007A, 0x0000007A, 0x0000007A,
|
|
0x0000007A, 0x0000007A, 0x0000007A, 0x0000007A, 0x0000007A, 0x0000007A, 0x0000007A,
|
|
0x0000007A, 0x0000007A, 0x0000007A, 0x0000007A, 0x0000007A, 0x0000007A, 0x0000007A,
|
|
0x0000007A, 0x00297A28, 0x00000030, 0x00000030, 0x00000030, 0x00000030, 0x00000030,
|
|
0x00000031, 0x00000031, 0x00000031, 0x00000031, 0x00000031, 0x00000031, 0x00000031,
|
|
0x00000031, 0x00002E31, 0x00293128, 0x00000032, 0x00000032, 0x00000032, 0x00000032,
|
|
0x00000032, 0x00000032, 0x00000032, 0x00000032, 0x00002E32, 0x00293228, 0x00000033,
|
|
0x00000033, 0x00000033, 0x00000033, 0x00000033, 0x00000033, 0x00000033, 0x00000033,
|
|
0x00002E33, 0x00293328, 0x00000034, 0x00000034, 0x00000034, 0x00000034, 0x00000034,
|
|
0x00000034, 0x00000034, 0x00000034, 0x00002E34, 0x00293428, 0x00000035, 0x00000035,
|
|
0x00000035, 0x00000035, 0x00000035, 0x00000035, 0x00000035, 0x00000035, 0x00002E35,
|
|
0x00293528, 0x00000036, 0x00000036, 0x00000036, 0x00000036, 0x00000036, 0x00000036,
|
|
0x00000036, 0x00000036, 0x00002E36, 0x00293628, 0x00000037, 0x00000037, 0x00000037,
|
|
0x00000037, 0x00000037, 0x00000037, 0x00000037, 0x00000037, 0x00002E37, 0x00293728,
|
|
0x00000038, 0x00000038, 0x00000038, 0x00000038, 0x00000038, 0x00000038, 0x00000038,
|
|
0x00000038, 0x00002E38, 0x00293828, 0x00000039, 0x00000039, 0x00000039, 0x00000039,
|
|
0x00000039, 0x00000039, 0x00000039, 0x00000039, 0x00002E39, 0x00293928, 0x00003031,
|
|
0x00003031, 0x00003031, 0x00003031, 0x00003031, 0x002E3031, 0x29303128, 0x00003131,
|
|
0x00003131, 0x002E3131, 0x29313128, 0x00003231, 0x00003231, 0x002E3231, 0x29323128,
|
|
0x00003331, 0x00003331, 0x002E3331, 0x29333128, 0x00003431, 0x00003431, 0x002E3431,
|
|
0x29343128, 0x00003531, 0x00003531, 0x002E3531, 0x29353128, 0x00003631, 0x00003631,
|
|
0x002E3631, 0x29363128, 0x00003731, 0x00003731, 0x002E3731, 0x29373128, 0x00003831,
|
|
0x00003831, 0x002E3831, 0x29383128, 0x00003931, 0x00003931, 0x002E3931, 0x29393128,
|
|
0x00003032, 0x00003032, 0x002E3032, 0x29303228, 0x00000022, 0x00000022, 0x00000022,
|
|
0x00000022, 0x00000022, 0x00000022, 0x00000022, 0x00000022, 0x00000022, 0x00000022,
|
|
0x00000022, 0x00000022, 0x00000027, 0x00000027, 0x00000027, 0x00000027, 0x00000027,
|
|
0x00000027, 0x00000027, 0x00000027, 0x00000027, 0x00000027, 0x00000027, 0x0000002D,
|
|
0x0000002D, 0x0000002D, 0x0000002D, 0x0000002D, 0x0000002D, 0x0000002D, 0x0000002D,
|
|
0x0000005B, 0x0000005B, 0x0000005B, 0x0000005D, 0x0000005D, 0x0000005D, 0x00000028,
|
|
0x00000028, 0x00000028, 0x00000028, 0x00000028, 0x00002828, 0x00000029, 0x00000029,
|
|
0x00000029, 0x00000029, 0x00000029, 0x00002929, 0x0000003C, 0x0000003C, 0x0000003C,
|
|
0x0000003E, 0x0000003E, 0x0000003E, 0x0000007B, 0x0000007B, 0x0000007D, 0x0000007D,
|
|
0x0000002B, 0x0000002B, 0x0000002B, 0x0000003D, 0x0000003D, 0x0000003D, 0x00000021,
|
|
0x00002121, 0x00003F21, 0x00000023, 0x00000024, 0x00000025, 0x00000025, 0x00000026,
|
|
0x0000002A, 0x0000002A, 0x0000002C, 0x0000002E, 0x0000002F, 0x0000002F, 0x0000003A,
|
|
0x0000003B, 0x0000003B, 0x0000003F, 0x00003F3F, 0x0000213F, 0x00000040, 0x0000005C,
|
|
0x0000005E, 0x0000005E, 0x0000005F, 0x0000007E, 0x0000007E};
|
|
static const int replacements_lw[] = {0x00000000, 0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000005,
|
|
0x00000006, 0x00000007, 0x00000008, 0x00000009, 0x0000000A, 0x0000000B,
|
|
0x0000000C, 0x0000000D, 0x0000000E, 0x0000000F, 0x00000010, 0x00000011,
|
|
0x00000012, 0x00000013, 0x00000014, 0x00000015, 0x00000016, 0x00000017,
|
|
0x00000018, 0x00000019, 0x0000001A, 0x0000001B, 0x0000001C, 0x0000001D,
|
|
0x0000001E, 0x0000001F, 0x00000020, 0x00000021, 0x00000022, 0x00000023,
|
|
0x00000024, 0x00000025, 0x00000026, 0x00000027, 0x00000028, 0x00000029,
|
|
0x0000002A, 0x0000002B, 0x0000002C, 0x0000002D, 0x0000002E, 0x0000002F,
|
|
0x00000030, 0x00000031, 0x00000032, 0x00000033, 0x00000034, 0x00000035,
|
|
0x00000036, 0x00000037, 0x00000038, 0x00000039, 0x0000003A, 0x0000003B,
|
|
0x0000003C, 0x0000003D, 0x0000003E, 0x0000003F, 0x00000040, 0x00000061,
|
|
0x00000062, 0x00000063, 0x00000064, 0x00000065, 0x00000066, 0x00000067,
|
|
0x00000068, 0x00000069, 0x0000006A, 0x0000006B, 0x0000006C, 0x0000006D,
|
|
0x0000006E, 0x0000006F, 0x00000070, 0x00000071, 0x00000072, 0x00000073,
|
|
0x00000074, 0x00000075, 0x00000076, 0x00000077, 0x00000078, 0x00000079,
|
|
0x0000007A, 0x0000005B, 0x0000005C, 0x0000005D, 0x0000005E, 0x0000005F,
|
|
0x00000060, 0x00000061, 0x00000062, 0x00000063, 0x00000064, 0x00000065,
|
|
0x00000066, 0x00000067, 0x00000068, 0x00000069, 0x0000006A, 0x0000006B,
|
|
0x0000006C, 0x0000006D, 0x0000006E, 0x0000006F, 0x00000070, 0x00000071,
|
|
0x00000072, 0x00000073, 0x00000074, 0x00000075, 0x00000076, 0x00000077,
|
|
0x00000078, 0x00000079, 0x0000007A, 0x0000007B, 0x0000007C, 0x0000007D,
|
|
0x0000007E, 0x006C6564, 0x00000061, 0x00000061, 0x00000061, 0x00000061,
|
|
0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061,
|
|
0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061,
|
|
0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061,
|
|
0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061,
|
|
0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061,
|
|
0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061,
|
|
0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061,
|
|
0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061,
|
|
0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061,
|
|
0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061,
|
|
0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061,
|
|
0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00000061, 0x00006161,
|
|
0x00006561, 0x00006561, 0x00006561, 0x00006561, 0x00006F61, 0x00007561,
|
|
0x00007661, 0x00007661, 0x00007961, 0x00296128, 0x00006161, 0x00006561,
|
|
0x00006561, 0x00006561, 0x00006561, 0x00006F61, 0x00007561, 0x00007661,
|
|
0x00007661, 0x00007961, 0x00000062, 0x00000062, 0x00000062, 0x00000062,
|
|
0x00000062, 0x00000062, 0x00000062, 0x00000062, 0x00000062, 0x00000062,
|
|
0x00000062, 0x00000062, 0x00000062, 0x00000062, 0x00000062, 0x00000062,
|
|
0x00000062, 0x00000062, 0x00000062, 0x00000062, 0x00296228, 0x00000063,
|
|
0x00000063, 0x00000063, 0x00000063, 0x00000063, 0x00000063, 0x00000063,
|
|
0x00000063, 0x00000063, 0x00000063, 0x00000063, 0x00000063, 0x00000063,
|
|
0x00000063, 0x00000063, 0x00000063, 0x00000063, 0x00000063, 0x00000063,
|
|
0x00000063, 0x00000063, 0x00000063, 0x00000063, 0x00000063, 0x00000063,
|
|
0x00000063, 0x00296328, 0x00000064, 0x00000064, 0x00000064, 0x00000064,
|
|
0x00000064, 0x00000064, 0x00000064, 0x00000064, 0x00000064, 0x00000064,
|
|
0x00000064, 0x00000064, 0x00000064, 0x00000064, 0x00000064, 0x00000064,
|
|
0x00000064, 0x00000064, 0x00000064, 0x00000064, 0x00000064, 0x00000064,
|
|
0x00000064, 0x00000064, 0x00000064, 0x00000064, 0x00000064, 0x00000064,
|
|
0x00000064, 0x00000064, 0x00000064, 0x00000064, 0x00000064, 0x00000064,
|
|
0x00007A64, 0x00007A64, 0x00007A64, 0x00007A64, 0x00296428, 0x00006264,
|
|
0x00007A64, 0x00007A64, 0x00007A64, 0x00007A64, 0x00000065, 0x00000065,
|
|
0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065,
|
|
0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065,
|
|
0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065,
|
|
0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065,
|
|
0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065,
|
|
0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065,
|
|
0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065,
|
|
0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065,
|
|
0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065,
|
|
0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065,
|
|
0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065,
|
|
0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00000065, 0x00296528,
|
|
0x00000066, 0x00000066, 0x00000066, 0x00000066, 0x00000066, 0x00000066,
|
|
0x00000066, 0x00000066, 0x00000066, 0x00000066, 0x00000066, 0x00000066,
|
|
0x00000066, 0x00000066, 0x00000066, 0x00296628, 0x00006666, 0x00696666,
|
|
0x006C6666, 0x00006966, 0x00006C66, 0x00000067, 0x00000067, 0x00000067,
|
|
0x00000067, 0x00000067, 0x00000067, 0x00000067, 0x00000067, 0x00000067,
|
|
0x00000067, 0x00000067, 0x00000067, 0x00000067, 0x00000067, 0x00000067,
|
|
0x00000067, 0x00000067, 0x00000067, 0x00000067, 0x00000067, 0x00000067,
|
|
0x00000067, 0x00000067, 0x00000067, 0x00000067, 0x00000067, 0x00000067,
|
|
0x00000067, 0x00000067, 0x00000067, 0x00000067, 0x00296728, 0x00000068,
|
|
0x00000068, 0x00000068, 0x00000068, 0x00000068, 0x00000068, 0x00000068,
|
|
0x00000068, 0x00000068, 0x00000068, 0x00000068, 0x00000068, 0x00000068,
|
|
0x00000068, 0x00000068, 0x00000068, 0x00000068, 0x00000068, 0x00000068,
|
|
0x00000068, 0x00000068, 0x00000068, 0x00000068, 0x00000068, 0x00000068,
|
|
0x00000068, 0x00000068, 0x00000068, 0x00000068, 0x00000068, 0x00007668,
|
|
0x00296828, 0x00007668, 0x00000069, 0x00000069, 0x00000069, 0x00000069,
|
|
0x00000069, 0x00000069, 0x00000069, 0x00000069, 0x00000069, 0x00000069,
|
|
0x00000069, 0x00000069, 0x00000069, 0x00000069, 0x00000069, 0x00000069,
|
|
0x00000069, 0x00000069, 0x00000069, 0x00000069, 0x00000069, 0x00000069,
|
|
0x00000069, 0x00000069, 0x00000069, 0x00000069, 0x00000069, 0x00000069,
|
|
0x00000069, 0x00000069, 0x00000069, 0x00000069, 0x00000069, 0x00000069,
|
|
0x00000069, 0x00000069, 0x00000069, 0x00000069, 0x00000069, 0x00000069,
|
|
0x00000069, 0x00000069, 0x00000069, 0x00000069, 0x00000069, 0x00000069,
|
|
0x00000069, 0x00006A69, 0x00296928, 0x00006A69, 0x0000006A, 0x0000006A,
|
|
0x0000006A, 0x0000006A, 0x0000006A, 0x0000006A, 0x0000006A, 0x0000006A,
|
|
0x0000006A, 0x0000006A, 0x0000006A, 0x0000006A, 0x0000006A, 0x0000006A,
|
|
0x0000006A, 0x00296A28, 0x0000006B, 0x0000006B, 0x0000006B, 0x0000006B,
|
|
0x0000006B, 0x0000006B, 0x0000006B, 0x0000006B, 0x0000006B, 0x0000006B,
|
|
0x0000006B, 0x0000006B, 0x0000006B, 0x0000006B, 0x0000006B, 0x0000006B,
|
|
0x0000006B, 0x0000006B, 0x0000006B, 0x0000006B, 0x0000006B, 0x0000006B,
|
|
0x0000006B, 0x0000006B, 0x0000006B, 0x0000006B, 0x0000006B, 0x00296B28,
|
|
0x0000006C, 0x0000006C, 0x0000006C, 0x0000006C, 0x0000006C, 0x0000006C,
|
|
0x0000006C, 0x0000006C, 0x0000006C, 0x0000006C, 0x0000006C, 0x0000006C,
|
|
0x0000006C, 0x0000006C, 0x0000006C, 0x0000006C, 0x0000006C, 0x0000006C,
|
|
0x0000006C, 0x0000006C, 0x0000006C, 0x0000006C, 0x0000006C, 0x0000006C,
|
|
0x0000006C, 0x0000006C, 0x0000006C, 0x0000006C, 0x0000006C, 0x0000006C,
|
|
0x0000006C, 0x0000006C, 0x0000006C, 0x0000006C, 0x0000006C, 0x0000006C,
|
|
0x0000006C, 0x0000006C, 0x0000006C, 0x0000006C, 0x00006A6C, 0x00006C6C,
|
|
0x00006A6C, 0x00296C28, 0x00006A6C, 0x00006C6C, 0x0000736C, 0x00007A6C,
|
|
0x0000006D, 0x0000006D, 0x0000006D, 0x0000006D, 0x0000006D, 0x0000006D,
|
|
0x0000006D, 0x0000006D, 0x0000006D, 0x0000006D, 0x0000006D, 0x0000006D,
|
|
0x0000006D, 0x0000006D, 0x0000006D, 0x0000006D, 0x0000006D, 0x0000006D,
|
|
0x0000006D, 0x0000006D, 0x00296D28, 0x0000006E, 0x0000006E, 0x0000006E,
|
|
0x0000006E, 0x0000006E, 0x0000006E, 0x0000006E, 0x0000006E, 0x0000006E,
|
|
0x0000006E, 0x0000006E, 0x0000006E, 0x0000006E, 0x0000006E, 0x0000006E,
|
|
0x0000006E, 0x0000006E, 0x0000006E, 0x0000006E, 0x0000006E, 0x0000006E,
|
|
0x0000006E, 0x0000006E, 0x0000006E, 0x0000006E, 0x0000006E, 0x0000006E,
|
|
0x0000006E, 0x0000006E, 0x0000006E, 0x0000006E, 0x0000006E, 0x0000006E,
|
|
0x0000006E, 0x0000006E, 0x0000006E, 0x00006A6E, 0x00006A6E, 0x00296E28,
|
|
0x00006A6E, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F,
|
|
0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F,
|
|
0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F,
|
|
0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F,
|
|
0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F,
|
|
0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F,
|
|
0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F,
|
|
0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F,
|
|
0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F,
|
|
0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F,
|
|
0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F,
|
|
0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F,
|
|
0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F,
|
|
0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F,
|
|
0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F, 0x0000006F,
|
|
0x0000006F, 0x0000006F, 0x0000656F, 0x0000656F, 0x00006F6F, 0x0000756F,
|
|
0x0000756F, 0x00296F28, 0x0000656F, 0x0000656F, 0x00006F6F, 0x0000756F,
|
|
0x00000070, 0x00000070, 0x00000070, 0x00000070, 0x00000070, 0x00000070,
|
|
0x00000070, 0x00000070, 0x00000070, 0x00000070, 0x00000070, 0x00000070,
|
|
0x00000070, 0x00000070, 0x00000070, 0x00000070, 0x00000070, 0x00000070,
|
|
0x00000070, 0x00000070, 0x00000070, 0x00000070, 0x00297028, 0x00000071,
|
|
0x00000071, 0x00000071, 0x00000071, 0x00000071, 0x00000071, 0x00000071,
|
|
0x00000071, 0x00000071, 0x00000071, 0x00000071, 0x00000071, 0x00297128,
|
|
0x00007071, 0x00000072, 0x00000072, 0x00000072, 0x00000072, 0x00000072,
|
|
0x00000072, 0x00000072, 0x00000072, 0x00000072, 0x00000072, 0x00000072,
|
|
0x00000072, 0x00000072, 0x00000072, 0x00000072, 0x00000072, 0x00000072,
|
|
0x00000072, 0x00000072, 0x00000072, 0x00000072, 0x00000072, 0x00000072,
|
|
0x00000072, 0x00000072, 0x00000072, 0x00000072, 0x00000072, 0x00000072,
|
|
0x00000072, 0x00000072, 0x00000072, 0x00000072, 0x00000072, 0x00000072,
|
|
0x00000072, 0x00000072, 0x00000072, 0x00000072, 0x00000072, 0x00000072,
|
|
0x00297228, 0x00000073, 0x00000073, 0x00000073, 0x00000073, 0x00000073,
|
|
0x00000073, 0x00000073, 0x00000073, 0x00000073, 0x00000073, 0x00000073,
|
|
0x00000073, 0x00000073, 0x00000073, 0x00000073, 0x00000073, 0x00000073,
|
|
0x00000073, 0x00000073, 0x00000073, 0x00000073, 0x00000073, 0x00000073,
|
|
0x00000073, 0x00000073, 0x00000073, 0x00000073, 0x00000073, 0x00000073,
|
|
0x00000073, 0x00000073, 0x00000073, 0x00000073, 0x00000073, 0x00007373,
|
|
0x00297328, 0x00007373, 0x00007473, 0x00000074, 0x00000074, 0x00000074,
|
|
0x00000074, 0x00000074, 0x00000074, 0x00000074, 0x00000074, 0x00000074,
|
|
0x00000074, 0x00000074, 0x00000074, 0x00000074, 0x00000074, 0x00000074,
|
|
0x00000074, 0x00000074, 0x00000074, 0x00000074, 0x00000074, 0x00000074,
|
|
0x00000074, 0x00000074, 0x00000074, 0x00000074, 0x00000074, 0x00000074,
|
|
0x00000074, 0x00000074, 0x00000074, 0x00000074, 0x00000074, 0x00000074,
|
|
0x00006874, 0x00006874, 0x00007A74, 0x00297428, 0x00006374, 0x00006874,
|
|
0x00006874, 0x00006874, 0x00007374, 0x00007A74, 0x00000075, 0x00000075,
|
|
0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075,
|
|
0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075,
|
|
0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075,
|
|
0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075,
|
|
0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075,
|
|
0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075,
|
|
0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075,
|
|
0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075,
|
|
0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075,
|
|
0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075,
|
|
0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075, 0x00000075,
|
|
0x00000075, 0x00000075, 0x00297528, 0x00006575, 0x00000076, 0x00000076,
|
|
0x00000076, 0x00000076, 0x00000076, 0x00000076, 0x00000076, 0x00000076,
|
|
0x00000076, 0x00000076, 0x00000076, 0x00000076, 0x00000076, 0x00000076,
|
|
0x00000076, 0x00000076, 0x00000076, 0x00000076, 0x00000076, 0x00000076,
|
|
0x00000076, 0x00007976, 0x00297628, 0x00007976, 0x00000077, 0x00000077,
|
|
0x00000077, 0x00000077, 0x00000077, 0x00000077, 0x00000077, 0x00000077,
|
|
0x00000077, 0x00000077, 0x00000077, 0x00000077, 0x00000077, 0x00000077,
|
|
0x00000077, 0x00000077, 0x00000077, 0x00000077, 0x00000077, 0x00000077,
|
|
0x00000077, 0x00000077, 0x00000077, 0x00297728, 0x00000078, 0x00000078,
|
|
0x00000078, 0x00000078, 0x00000078, 0x00000078, 0x00000078, 0x00000078,
|
|
0x00000078, 0x00000078, 0x00297828, 0x00000079, 0x00000079, 0x00000079,
|
|
0x00000079, 0x00000079, 0x00000079, 0x00000079, 0x00000079, 0x00000079,
|
|
0x00000079, 0x00000079, 0x00000079, 0x00000079, 0x00000079, 0x00000079,
|
|
0x00000079, 0x00000079, 0x00000079, 0x00000079, 0x00000079, 0x00000079,
|
|
0x00000079, 0x00000079, 0x00000079, 0x00000079, 0x00000079, 0x00000079,
|
|
0x00000079, 0x00000079, 0x00000079, 0x00000079, 0x00297928, 0x0000007A,
|
|
0x0000007A, 0x0000007A, 0x0000007A, 0x0000007A, 0x0000007A, 0x0000007A,
|
|
0x0000007A, 0x0000007A, 0x0000007A, 0x0000007A, 0x0000007A, 0x0000007A,
|
|
0x0000007A, 0x0000007A, 0x0000007A, 0x0000007A, 0x0000007A, 0x0000007A,
|
|
0x0000007A, 0x0000007A, 0x0000007A, 0x0000007A, 0x0000007A, 0x0000007A,
|
|
0x0000007A, 0x0000007A, 0x0000007A, 0x0000007A, 0x0000007A, 0x0000007A,
|
|
0x0000007A, 0x00297A28, 0x00000030, 0x00000030, 0x00000030, 0x00000030,
|
|
0x00000030, 0x00000031, 0x00000031, 0x00000031, 0x00000031, 0x00000031,
|
|
0x00000031, 0x00000031, 0x00000031, 0x00002E31, 0x00293128, 0x00000032,
|
|
0x00000032, 0x00000032, 0x00000032, 0x00000032, 0x00000032, 0x00000032,
|
|
0x00000032, 0x00002E32, 0x00293228, 0x00000033, 0x00000033, 0x00000033,
|
|
0x00000033, 0x00000033, 0x00000033, 0x00000033, 0x00000033, 0x00002E33,
|
|
0x00293328, 0x00000034, 0x00000034, 0x00000034, 0x00000034, 0x00000034,
|
|
0x00000034, 0x00000034, 0x00000034, 0x00002E34, 0x00293428, 0x00000035,
|
|
0x00000035, 0x00000035, 0x00000035, 0x00000035, 0x00000035, 0x00000035,
|
|
0x00000035, 0x00002E35, 0x00293528, 0x00000036, 0x00000036, 0x00000036,
|
|
0x00000036, 0x00000036, 0x00000036, 0x00000036, 0x00000036, 0x00002E36,
|
|
0x00293628, 0x00000037, 0x00000037, 0x00000037, 0x00000037, 0x00000037,
|
|
0x00000037, 0x00000037, 0x00000037, 0x00002E37, 0x00293728, 0x00000038,
|
|
0x00000038, 0x00000038, 0x00000038, 0x00000038, 0x00000038, 0x00000038,
|
|
0x00000038, 0x00002E38, 0x00293828, 0x00000039, 0x00000039, 0x00000039,
|
|
0x00000039, 0x00000039, 0x00000039, 0x00000039, 0x00000039, 0x00002E39,
|
|
0x00293928, 0x00003031, 0x00003031, 0x00003031, 0x00003031, 0x00003031,
|
|
0x002E3031, 0x29303128, 0x00003131, 0x00003131, 0x002E3131, 0x29313128,
|
|
0x00003231, 0x00003231, 0x002E3231, 0x29323128, 0x00003331, 0x00003331,
|
|
0x002E3331, 0x29333128, 0x00003431, 0x00003431, 0x002E3431, 0x29343128,
|
|
0x00003531, 0x00003531, 0x002E3531, 0x29353128, 0x00003631, 0x00003631,
|
|
0x002E3631, 0x29363128, 0x00003731, 0x00003731, 0x002E3731, 0x29373128,
|
|
0x00003831, 0x00003831, 0x002E3831, 0x29383128, 0x00003931, 0x00003931,
|
|
0x002E3931, 0x29393128, 0x00003032, 0x00003032, 0x002E3032, 0x29303228,
|
|
0x00000022, 0x00000022, 0x00000022, 0x00000022, 0x00000022, 0x00000022,
|
|
0x00000022, 0x00000022, 0x00000022, 0x00000022, 0x00000022, 0x00000022,
|
|
0x00000027, 0x00000027, 0x00000027, 0x00000027, 0x00000027, 0x00000027,
|
|
0x00000027, 0x00000027, 0x00000027, 0x00000027, 0x00000027, 0x0000002D,
|
|
0x0000002D, 0x0000002D, 0x0000002D, 0x0000002D, 0x0000002D, 0x0000002D,
|
|
0x0000002D, 0x0000005B, 0x0000005B, 0x0000005B, 0x0000005D, 0x0000005D,
|
|
0x0000005D, 0x00000028, 0x00000028, 0x00000028, 0x00000028, 0x00000028,
|
|
0x00002828, 0x00000029, 0x00000029, 0x00000029, 0x00000029, 0x00000029,
|
|
0x00002929, 0x0000003C, 0x0000003C, 0x0000003C, 0x0000003E, 0x0000003E,
|
|
0x0000003E, 0x0000007B, 0x0000007B, 0x0000007D, 0x0000007D, 0x0000002B,
|
|
0x0000002B, 0x0000002B, 0x0000003D, 0x0000003D, 0x0000003D, 0x00000021,
|
|
0x00002121, 0x00003F21, 0x00000023, 0x00000024, 0x00000025, 0x00000025,
|
|
0x00000026, 0x0000002A, 0x0000002A, 0x0000002C, 0x0000002E, 0x0000002F,
|
|
0x0000002F, 0x0000003A, 0x0000003B, 0x0000003B, 0x0000003F, 0x00003F3F,
|
|
0x0000213F, 0x00000040, 0x0000005C, 0x0000005E, 0x0000005E, 0x0000005F,
|
|
0x0000007E, 0x0000007E};
|
|
|
|
|
|
static int translate_table[0x10FFFF];
|
|
static int translate_table_lw[0x10FFFF];
|
|
|
|
|
|
void _PG_init() {
|
|
for (int i = 0; i < 0x10FFFF; i++) {
|
|
|
|
int found = 0;
|
|
for (int j = 0; j < (sizeof(offsets) / sizeof(offsets[0])); j++) {
|
|
if (offsets[j] == i) {
|
|
translate_table[i] = replacements[j];
|
|
translate_table_lw[i] = replacements_lw[j];
|
|
found = 1;
|
|
break;
|
|
}
|
|
}
|
|
if (!found) {
|
|
int c = i;
|
|
|
|
char *cur = (char *) &translate_table[i];
|
|
|
|
if (((utf8_int32_t) 0xfffff800 & c) == 0) {
|
|
*(cur++) = 0xc0 | (char) (c >> 6);
|
|
*(cur) = 0x80 | (char) (c & 0x3f);
|
|
} else if (((utf8_int32_t) 0xffff0000 & c) == 0) {
|
|
*(cur++) = 0xe0 | (char) (c >> 12);
|
|
*(cur++) = 0x80 | (char) ((c >> 6) & 0x3f);
|
|
*(cur) = 0x80 | (char) (c & 0x3f);
|
|
} else {
|
|
*(cur++) = 0xf0 | (char) (c >> 18);
|
|
*(cur++) = 0x80 | (char) ((c >> 6) & 0x3f);
|
|
*(cur++) = 0x80 | (char) ((c >> 12) & 0x3f);
|
|
*(cur) = 0x80 | (char) (c & 0x3f);
|
|
}
|
|
|
|
cur = (char *) &translate_table_lw[i];
|
|
|
|
c = utf8lwrcodepoint(c);
|
|
if (((utf8_int32_t) 0xfffff800 & c) == 0) {
|
|
*(cur++) = 0xc0 | (char) (c >> 6);
|
|
*(cur) = 0x80 | (char) (c & 0x3f);
|
|
} else if (((utf8_int32_t) 0xffff0000 & c) == 0) {
|
|
*(cur++) = 0xe0 | (char) (c >> 12);
|
|
*(cur++) = 0x80 | (char) ((c >> 6) & 0x3f);
|
|
*(cur) = 0x80 | (char) (c & 0x3f);
|
|
} else {
|
|
*(cur++) = 0xf0 | (char) (c >> 18);
|
|
*(cur++) = 0x80 | (char) ((c >> 6) & 0x3f);
|
|
*(cur++) = 0x80 | (char) ((c >> 12) & 0x3f);
|
|
*(cur) = 0x80 | (char) (c & 0x3f);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
PG_FUNCTION_INFO_V1(asciifold);
|
|
|
|
Datum asciifold(PG_FUNCTION_ARGS) {
|
|
const text *text_input = PG_GETARG_TEXT_P(0);
|
|
const char *str_input = VARDATA(text_input);
|
|
|
|
size_t str_len = VARSIZE(text_input) - VARHDRSZ;
|
|
|
|
int c;
|
|
const char *ptr = str_input;
|
|
const char *end = ptr + str_len;
|
|
|
|
text *str_output = palloc(str_len * 2);
|
|
|
|
char *cur = str_output->vl_dat;
|
|
|
|
do {
|
|
ptr = (char *) utf8codepoint(ptr, &c);
|
|
|
|
c = translate_table[c];
|
|
|
|
*cur++ = ((char *) &c)[0];
|
|
if (((char *) &c)[1]) {
|
|
*cur++ = ((char *) &c)[1];
|
|
if (((char *) &c)[2]) {
|
|
*cur++ = ((char *) &c)[2];
|
|
if (((char *) &c)[3]) { *cur++ = ((char *) &c)[3]; }
|
|
}
|
|
}
|
|
|
|
} while (ptr < end);
|
|
|
|
SET_VARSIZE(str_output, VARHDRSZ + (cur - str_output->vl_dat));
|
|
|
|
PG_RETURN_TEXT_P(str_output);
|
|
}
|
|
|
|
PG_FUNCTION_INFO_V1(asciifold_lower);
|
|
|
|
Datum asciifold_lower(PG_FUNCTION_ARGS) {
|
|
const text *text_input = PG_GETARG_TEXT_P(0);
|
|
const char *str_input = VARDATA(text_input);
|
|
|
|
size_t str_len = VARSIZE(text_input) - VARHDRSZ;
|
|
|
|
int c;
|
|
const char *ptr = str_input;
|
|
const char *end = ptr + str_len;
|
|
|
|
text *str_output = palloc(str_len * 2);
|
|
|
|
char *cur = str_output->vl_dat;
|
|
|
|
do {
|
|
ptr = (char *) utf8codepoint(ptr, &c);
|
|
|
|
c = translate_table_lw[c];
|
|
|
|
*cur++ = ((char *) &c)[0];
|
|
if (((char *) &c)[1]) {
|
|
*cur++ = ((char *) &c)[1];
|
|
if (((char *) &c)[2]) {
|
|
*cur++ = ((char *) &c)[2];
|
|
if (((char *) &c)[3]) { *cur++ = ((char *) &c)[3]; }
|
|
}
|
|
}
|
|
|
|
} while (ptr < end);
|
|
|
|
SET_VARSIZE(str_output, VARHDRSZ + (cur - str_output->vl_dat));
|
|
|
|
PG_RETURN_TEXT_P(str_output);
|
|
}
|