/* generated automatically by mkrunetype.c from UnicodeData-5.2.0.txt */

static Rune __isspacer[] = {
	0x0009, 0x000d,
	0x0020, 0x0020,
	0x0085, 0x0085,
	0x00a0, 0x00a0,
	0x1680, 0x1680,
	0x180e, 0x180e,
	0x2000, 0x200a,
	0x2028, 0x2029,
	0x202f, 0x202f,
	0x205f, 0x205f,
	0x3000, 0x3000,
	0xfeff, 0xfeff,
};

int
isspacerune(Rune c)
{
	Rune *p;

	p = rbsearch(c, __isspacer, nelem(__isspacer)/2, 2);
	if(p && c >= p[0] && c <= p[1])
		return 1;
	return 0;
}

static Rune __isdigitr[] = {
	0x0030, 0x0039,
	0x0660, 0x0669,
	0x06f0, 0x06f9,
	0x07c0, 0x07c9,
	0x0966, 0x096f,
	0x09e6, 0x09ef,
	0x0a66, 0x0a6f,
	0x0ae6, 0x0aef,
	0x0b66, 0x0b6f,
	0x0be6, 0x0bef,
	0x0c66, 0x0c6f,
	0x0ce6, 0x0cef,
	0x0d66, 0x0d6f,
	0x0e50, 0x0e59,
	0x0ed0, 0x0ed9,
	0x0f20, 0x0f29,
	0x1040, 0x1049,
	0x1090, 0x1099,
	0x17e0, 0x17e9,
	0x1810, 0x1819,
	0x1946, 0x194f,
	0x19d0, 0x19da,
	0x1a80, 0x1a89,
	0x1a90, 0x1a99,
	0x1b50, 0x1b59,
	0x1bb0, 0x1bb9,
	0x1c40, 0x1c49,
	0x1c50, 0x1c59,
	0xa620, 0xa629,
	0xa8d0, 0xa8d9,
	0xa900, 0xa909,
	0xa9d0, 0xa9d9,
	0xaa50, 0xaa59,
	0xabf0, 0xabf9,
	0xff10, 0xff19,
	0x104a0, 0x104a9,
	0x1d7ce, 0x1d7ff,
};

int
isdigitrune(Rune c)
{
	Rune *p;

	p = rbsearch(c, __isdigitr, nelem(__isdigitr)/2, 2);
	if(p && c >= p[0] && c <= p[1])
		return 1;
	return 0;
}

static Rune __isalphar[] = {
	0x0041, 0x005a,
	0x0061, 0x007a,
	0x00c0, 0x00d6,
	0x00d8, 0x00f6,
	0x00f8, 0x02c1,
	0x02c6, 0x02d1,
	0x02e0, 0x02e4,
	0x0370, 0x0374,
	0x0376, 0x0377,
	0x037a, 0x037d,
	0x0388, 0x038a,
	0x038e, 0x03a1,
	0x03a3, 0x03f5,
	0x03f7, 0x0481,
	0x048a, 0x0525,
	0x0531, 0x0556,
	0x0561, 0x0587,
	0x05d0, 0x05ea,
	0x05f0, 0x05f2,
	0x0621, 0x064a,
	0x066e, 0x066f,
	0x0671, 0x06d3,
	0x06e5, 0x06e6,
	0x06ee, 0x06ef,
	0x06fa, 0x06fc,
	0x0712, 0x072f,
	0x074d, 0x07a5,
	0x07ca, 0x07ea,
	0x07f4, 0x07f5,
	0x0800, 0x0815,
	0x0904, 0x0939,
	0x0958, 0x0961,
	0x0971, 0x0972,
	0x0979, 0x097f,
	0x0985, 0x098c,
	0x098f, 0x0990,
	0x0993, 0x09a8,
	0x09aa, 0x09b0,
	0x09b6, 0x09b9,
	0x09dc, 0x09dd,
	0x09df, 0x09e1,
	0x09f0, 0x09f1,
	0x0a05, 0x0a0a,
	0x0a0f, 0x0a10,
	0x0a13, 0x0a28,
	0x0a2a, 0x0a30,
	0x0a32, 0x0a33,
	0x0a35, 0x0a36,
	0x0a38, 0x0a39,
	0x0a59, 0x0a5c,
	0x0a72, 0x0a74,
	0x0a85, 0x0a8d,
	0x0a8f, 0x0a91,
	0x0a93, 0x0aa8,
	0x0aaa, 0x0ab0,
	0x0ab2, 0x0ab3,
	0x0ab5, 0x0ab9,
	0x0ae0, 0x0ae1,
	0x0b05, 0x0b0c,
	0x0b0f, 0x0b10,
	0x0b13, 0x0b28,
	0x0b2a, 0x0b30,
	0x0b32, 0x0b33,
	0x0b35, 0x0b39,
	0x0b5c, 0x0b5d,
	0x0b5f, 0x0b61,
	0x0b85, 0x0b8a,
	0x0b8e, 0x0b90,
	0x0b92, 0x0b95,
	0x0b99, 0x0b9a,
	0x0b9e, 0x0b9f,
	0x0ba3, 0x0ba4,
	0x0ba8, 0x0baa,
	0x0bae, 0x0bb9,
	0x0c05, 0x0c0c,
	0x0c0e, 0x0c10,
	0x0c12, 0x0c28,
	0x0c2a, 0x0c33,
	0x0c35, 0x0c39,
	0x0c58, 0x0c59,
	0x0c60, 0x0c61,
	0x0c85, 0x0c8c,
	0x0c8e, 0x0c90,
	0x0c92, 0x0ca8,
	0x0caa, 0x0cb3,
	0x0cb5, 0x0cb9,
	0x0ce0, 0x0ce1,
	0x0d05, 0x0d0c,
	0x0d0e, 0x0d10,
	0x0d12, 0x0d28,
	0x0d2a, 0x0d39,
	0x0d60, 0x0d61,
	0x0d7a, 0x0d7f,
	0x0d85, 0x0d96,
	0x0d9a, 0x0db1,
	0x0db3, 0x0dbb,
	0x0dc0, 0x0dc6,
	0x0e01, 0x0e30,
	0x0e32, 0x0e33,
	0x0e40, 0x0e46,
	0x0e81, 0x0e82,
	0x0e87, 0x0e88,
	0x0e94, 0x0e97,
	0x0e99, 0x0e9f,
	0x0ea1, 0x0ea3,
	0x0eaa, 0x0eab,
	0x0ead, 0x0eb0,
	0x0eb2, 0x0eb3,
	0x0ec0, 0x0ec4,
	0x0edc, 0x0edd,
	0x0f40, 0x0f47,
	0x0f49, 0x0f6c,
	0x0f88, 0x0f8b,
	0x1000, 0x102a,
	0x1050, 0x1055,
	0x105a, 0x105d,
	0x1065, 0x1066,
	0x106e, 0x1070,
	0x1075, 0x1081,
	0x10a0, 0x10c5,
	0x10d0, 0x10fa,
	0x1100, 0x1248,
	0x124a, 0x124d,
	0x1250, 0x1256,
	0x125a, 0x125d,
	0x1260, 0x1288,
	0x128a, 0x128d,
	0x1290, 0x12b0,
	0x12b2, 0x12b5,
	0x12b8, 0x12be,
	0x12c2, 0x12c5,
	0x12c8, 0x12d6,
	0x12d8, 0x1310,
	0x1312, 0x1315,
	0x1318, 0x135a,
	0x1380, 0x138f,
	0x13a0, 0x13f4,
	0x1401, 0x166c,
	0x166f, 0x167f,
	0x1681, 0x169a,
	0x16a0, 0x16ea,
	0x1700, 0x170c,
	0x170e, 0x1711,
	0x1720, 0x1731,
	0x1740, 0x1751,
	0x1760, 0x176c,
	0x176e, 0x1770,
	0x1780, 0x17b3,
	0x1820, 0x1877,
	0x1880, 0x18a8,
	0x18b0, 0x18f5,
	0x1900, 0x191c,
	0x1950, 0x196d,
	0x1970, 0x1974,
	0x1980, 0x19ab,
	0x19c1, 0x19c7,
	0x1a00, 0x1a16,
	0x1a20, 0x1a54,
	0x1b05, 0x1b33,
	0x1b45, 0x1b4b,
	0x1b83, 0x1ba0,
	0x1bae, 0x1baf,
	0x1c00, 0x1c23,
	0x1c4d, 0x1c4f,
	0x1c5a, 0x1c7d,
	0x1ce9, 0x1cec,
	0x1cee, 0x1cf1,
	0x1d00, 0x1dbf,
	0x1e00, 0x1f15,
	0x1f18, 0x1f1d,
	0x1f20, 0x1f45,
	0x1f48, 0x1f4d,
	0x1f50, 0x1f57,
	0x1f5f, 0x1f7d,
	0x1f80, 0x1fb4,
	0x1fb6, 0x1fbc,
	0x1fc2, 0x1fc4,
	0x1fc6, 0x1fcc,
	0x1fd0, 0x1fd3,
	0x1fd6, 0x1fdb,
	0x1fe0, 0x1fec,
	0x1ff2, 0x1ff4,
	0x1ff6, 0x1ffc,
	0x2090, 0x2094,
	0x210a, 0x2113,
	0x2119, 0x211d,
	0x212a, 0x212d,
	0x212f, 0x2139,
	0x213c, 0x213f,
	0x2145, 0x2149,
	0x2183, 0x2184,
	0x2c00, 0x2c2e,
	0x2c30, 0x2c5e,
	0x2c60, 0x2ce4,
	0x2ceb, 0x2cee,
	0x2d00, 0x2d25,
	0x2d30, 0x2d65,
	0x2d80, 0x2d96,
	0x2da0, 0x2da6,
	0x2da8, 0x2dae,
	0x2db0, 0x2db6,
	0x2db8, 0x2dbe,
	0x2dc0, 0x2dc6,
	0x2dc8, 0x2dce,
	0x2dd0, 0x2dd6,
	0x2dd8, 0x2dde,
	0x3005, 0x3006,
	0x3031, 0x3035,
	0x303b, 0x303c,
	0x3041, 0x3096,
	0x309d, 0x309f,
	0x30a1, 0x30fa,
	0x30fc, 0x30ff,
	0x3105, 0x312d,
	0x3131, 0x318e,
	0x31a0, 0x31b7,
	0x31f0, 0x31ff,
	0x3400, 0x4db5,
	0x4e00, 0x9fcb,
	0xa000, 0xa48c,
	0xa4d0, 0xa4fd,
	0xa500, 0xa60c,
	0xa610, 0xa61f,
	0xa62a, 0xa62b,
	0xa640, 0xa65f,
	0xa662, 0xa66e,
	0xa67f, 0xa697,
	0xa6a0, 0xa6e5,
	0xa717, 0xa71f,
	0xa722, 0xa788,
	0xa78b, 0xa78c,
	0xa7fb, 0xa801,
	0xa803, 0xa805,
	0xa807, 0xa80a,
	0xa80c, 0xa822,
	0xa840, 0xa873,
	0xa882, 0xa8b3,
	0xa8f2, 0xa8f7,
	0xa90a, 0xa925,
	0xa930, 0xa946,
	0xa960, 0xa97c,
	0xa984, 0xa9b2,
	0xaa00, 0xaa28,
	0xaa40, 0xaa42,
	0xaa44, 0xaa4b,
	0xaa60, 0xaa76,
	0xaa80, 0xaaaf,
	0xaab5, 0xaab6,
	0xaab9, 0xaabd,
	0xaadb, 0xaadd,
	0xabc0, 0xabe2,
	0xac00, 0xd7a3,
	0xd7b0, 0xd7c6,
	0xd7cb, 0xd7fb,
	0xf900, 0xfa2d,
	0xfa30, 0xfa6d,
	0xfa70, 0xfad9,
	0xfb00, 0xfb06,
	0xfb13, 0xfb17,
	0xfb1f, 0xfb28,
	0xfb2a, 0xfb36,
	0xfb38, 0xfb3c,
	0xfb40, 0xfb41,
	0xfb43, 0xfb44,
	0xfb46, 0xfbb1,
	0xfbd3, 0xfd3d,
	0xfd50, 0xfd8f,
	0xfd92, 0xfdc7,
	0xfdf0, 0xfdfb,
	0xfe70, 0xfe74,
	0xfe76, 0xfefc,
	0xff21, 0xff3a,
	0xff41, 0xff5a,
	0xff66, 0xffbe,
	0xffc2, 0xffc7,
	0xffca, 0xffcf,
	0xffd2, 0xffd7,
	0xffda, 0xffdc,
	0x10000, 0x1000b,
	0x1000d, 0x10026,
	0x10028, 0x1003a,
	0x1003c, 0x1003d,
	0x1003f, 0x1004d,
	0x10050, 0x1005d,
	0x10080, 0x100fa,
	0x10280, 0x1029c,
	0x102a0, 0x102d0,
	0x10300, 0x1031e,
	0x10330, 0x10340,
	0x10342, 0x10349,
	0x10380, 0x1039d,
	0x103a0, 0x103c3,
	0x103c8, 0x103cf,
	0x10400, 0x1049d,
	0x10800, 0x10805,
	0x1080a, 0x10835,
	0x10837, 0x10838,
	0x1083f, 0x10855,
	0x10900, 0x10915,
	0x10920, 0x10939,
	0x10a10, 0x10a13,
	0x10a15, 0x10a17,
	0x10a19, 0x10a33,
	0x10a60, 0x10a7c,
	0x10b00, 0x10b35,
	0x10b40, 0x10b55,
	0x10b60, 0x10b72,
	0x10c00, 0x10c48,
	0x11083, 0x110af,
	0x12000, 0x1236e,
	0x13000, 0x1342e,
	0x1d400, 0x1d454,
	0x1d456, 0x1d49c,
	0x1d49e, 0x1d49f,
	0x1d4a5, 0x1d4a6,
	0x1d4a9, 0x1d4ac,
	0x1d4ae, 0x1d4b9,
	0x1d4bd, 0x1d4c3,
	0x1d4c5, 0x1d505,
	0x1d507, 0x1d50a,
	0x1d50d, 0x1d514,
	0x1d516, 0x1d51c,
	0x1d51e, 0x1d539,
	0x1d53b, 0x1d53e,
	0x1d540, 0x1d544,
	0x1d54a, 0x1d550,
	0x1d552, 0x1d6a5,
	0x1d6a8, 0x1d6c0,
	0x1d6c2, 0x1d6da,
	0x1d6dc, 0x1d6fa,
	0x1d6fc, 0x1d714,
	0x1d716, 0x1d734,
	0x1d736, 0x1d74e,
	0x1d750, 0x1d76e,
	0x1d770, 0x1d788,
	0x1d78a, 0x1d7a8,
	0x1d7aa, 0x1d7c2,
	0x1d7c4, 0x1d7cb,
	0x20000, 0x2a6d6,
	0x2a700, 0x2b734,
	0x2f800, 0x2fa1d,
};

static Rune __isalphas[] = {
	0x00aa,
	0x00b5,
	0x00ba,
	0x02ec,
	0x02ee,
	0x0386,
	0x038c,
	0x0559,
	0x06d5,
	0x06ff,
	0x0710,
	0x07b1,
	0x07fa,
	0x081a,
	0x0824,
	0x0828,
	0x093d,
	0x0950,
	0x09b2,
	0x09bd,
	0x09ce,
	0x0a5e,
	0x0abd,
	0x0ad0,
	0x0b3d,
	0x0b71,
	0x0b83,
	0x0b9c,
	0x0bd0,
	0x0c3d,
	0x0cbd,
	0x0cde,
	0x0d3d,
	0x0dbd,
	0x0e84,
	0x0e8a,
	0x0e8d,
	0x0ea5,
	0x0ea7,
	0x0ebd,
	0x0ec6,
	0x0f00,
	0x103f,
	0x1061,
	0x108e,
	0x10fc,
	0x1258,
	0x12c0,
	0x17d7,
	0x17dc,
	0x18aa,
	0x1aa7,
	0x1f59,
	0x1f5b,
	0x1f5d,
	0x1fbe,
	0x2071,
	0x207f,
	0x2102,
	0x2107,
	0x2115,
	0x2124,
	0x2126,
	0x2128,
	0x214e,
	0x2d6f,
	0x2e2f,
	0xa8fb,
	0xa9cf,
	0xaa7a,
	0xaab1,
	0xaac0,
	0xaac2,
	0xfb1d,
	0xfb3e,
	0x10808,
	0x1083c,
	0x10a00,
	0x1d4a2,
	0x1d4bb,
	0x1d546,
};

int
isalpharune(Rune c)
{
	Rune *p;

	p = rbsearch(c, __isalphar, nelem(__isalphar)/2, 2);
	if(p && c >= p[0] && c <= p[1])
		return 1;
	p = rbsearch(c, __isalphas, nelem(__isalphas), 1);
	if(p && c == p[0])
		return 1;
	return 0;
}

static Rune __isupperr[] = {
	0x0041, 0x005a,
	0x00c0, 0x00d6,
	0x00d8, 0x00de,
	0x0178, 0x0179,
	0x0181, 0x0182,
	0x0186, 0x0187,
	0x0189, 0x018b,
	0x018e, 0x0191,
	0x0193, 0x0194,
	0x0196, 0x0198,
	0x019c, 0x019d,
	0x019f, 0x01a0,
	0x01a6, 0x01a7,
	0x01ae, 0x01af,
	0x01b1, 0x01b3,
	0x01b7, 0x01b8,
	0x01f6, 0x01f8,
	0x023a, 0x023b,
	0x023d, 0x023e,
	0x0243, 0x0246,
	0x0388, 0x038a,
	0x038e, 0x038f,
	0x0391, 0x03a1,
	0x03a3, 0x03ab,
	0x03d2, 0x03d4,
	0x03f9, 0x03fa,
	0x03fd, 0x042f,
	0x04c0, 0x04c1,
	0x0531, 0x0556,
	0x10a0, 0x10c5,
	0x1f08, 0x1f0f,
	0x1f18, 0x1f1d,
	0x1f28, 0x1f2f,
	0x1f38, 0x1f3f,
	0x1f48, 0x1f4d,
	0x1f68, 0x1f6f,
	0x1f88, 0x1f8f,
	0x1f98, 0x1f9f,
	0x1fa8, 0x1faf,
	0x1fb8, 0x1fbc,
	0x1fc8, 0x1fcc,
	0x1fd8, 0x1fdb,
	0x1fe8, 0x1fec,
	0x1ff8, 0x1ffc,
	0x210b, 0x210d,
	0x2110, 0x2112,
	0x2119, 0x211d,
	0x212a, 0x212d,
	0x2130, 0x2133,
	0x213e, 0x213f,
	0x2160, 0x216f,
	0x24b6, 0x24cf,
	0x2c00, 0x2c2e,
	0x2c62, 0x2c64,
	0x2c6d, 0x2c70,
	0x2c7e, 0x2c80,
	0xa77d, 0xa77e,
	0xff21, 0xff3a,
	0x10400, 0x10427,
	0x1d400, 0x1d419,
	0x1d434, 0x1d44d,
	0x1d468, 0x1d481,
	0x1d49e, 0x1d49f,
	0x1d4a5, 0x1d4a6,
	0x1d4a9, 0x1d4ac,
	0x1d4ae, 0x1d4b5,
	0x1d4d0, 0x1d4e9,
	0x1d504, 0x1d505,
	0x1d507, 0x1d50a,
	0x1d50d, 0x1d514,
	0x1d516, 0x1d51c,
	0x1d538, 0x1d539,
	0x1d53b, 0x1d53e,
	0x1d540, 0x1d544,
	0x1d54a, 0x1d550,
	0x1d56c, 0x1d585,
	0x1d5a0, 0x1d5b9,
	0x1d5d4, 0x1d5ed,
	0x1d608, 0x1d621,
	0x1d63c, 0x1d655,
	0x1d670, 0x1d689,
	0x1d6a8, 0x1d6c0,
	0x1d6e2, 0x1d6fa,
	0x1d71c, 0x1d734,
	0x1d756, 0x1d76e,
	0x1d790, 0x1d7a8,
};

static Rune __isupperp[] = {
	0x0100, 0x0136,
	0x0139, 0x0147,
	0x014a, 0x0176,
	0x017b, 0x017d,
	0x01a2, 0x01a4,
	0x01cd, 0x01db,
	0x01de, 0x01ee,
	0x01fa, 0x0232,
	0x0248, 0x024e,
	0x0370, 0x0372,
	0x03d8, 0x03ee,
	0x0460, 0x0480,
	0x048a, 0x04be,
	0x04c3, 0x04cd,
	0x04d0, 0x0524,
	0x1e00, 0x1e94,
	0x1e9e, 0x1efe,
	0x1f59, 0x1f5f,
	0x2124, 0x2128,
	0x2c67, 0x2c6b,
	0x2c82, 0x2ce2,
	0x2ceb, 0x2ced,
	0xa640, 0xa65e,
	0xa662, 0xa66c,
	0xa680, 0xa696,
	0xa722, 0xa72e,
	0xa732, 0xa76e,
	0xa779, 0xa77b,
	0xa780, 0xa786,
};

static Rune __isuppers[] = {
	0x0184,
	0x01a9,
	0x01ac,
	0x01b5,
	0x01bc,
	0x01c4,
	0x01c7,
	0x01ca,
	0x01f1,
	0x01f4,
	0x0241,
	0x0376,
	0x0386,
	0x038c,
	0x03cf,
	0x03f4,
	0x03f7,
	0x2102,
	0x2107,
	0x2115,
	0x2145,
	0x2183,
	0x2c60,
	0x2c72,
	0x2c75,
	0xa78b,
	0x1d49c,
	0x1d4a2,
	0x1d546,
	0x1d7ca,
};

int
isupperrune(Rune c)
{
	Rune *p;

	p = rbsearch(c, __isupperr, nelem(__isupperr)/2, 2);
	if(p && c >= p[0] && c <= p[1])
		return 1;
	p = rbsearch(c, __isupperp, nelem(__isupperp)/2, 2);
	if(p && c >= p[0] && c <= p[1] && !((c - p[0]) & 1))
		return 1;
	p = rbsearch(c, __isuppers, nelem(__isuppers), 1);
	if(p && c == p[0])
		return 1;
	return 0;
}

static Rune __islowerr[] = {
	0x0061, 0x007a,
	0x00df, 0x00f6,
	0x00f8, 0x00ff,
	0x0137, 0x0138,
	0x0148, 0x0149,
	0x017e, 0x0180,
	0x018c, 0x018d,
	0x0199, 0x019b,
	0x01aa, 0x01ab,
	0x01b9, 0x01ba,
	0x01bd, 0x01bf,
	0x01dc, 0x01dd,
	0x01ef, 0x01f0,
	0x0233, 0x0239,
	0x023f, 0x0240,
	0x024f, 0x0293,
	0x0295, 0x02af,
	0x037b, 0x037d,
	0x03ac, 0x03ce,
	0x03d0, 0x03d1,
	0x03d5, 0x03d7,
	0x03ef, 0x03f3,
	0x03fb, 0x03fc,
	0x0430, 0x045f,
	0x04ce, 0x04cf,
	0x0561, 0x0587,
	0x1d00, 0x1d2b,
	0x1d62, 0x1d77,
	0x1d79, 0x1d9a,
	0x1e95, 0x1e9d,
	0x1eff, 0x1f07,
	0x1f10, 0x1f15,
	0x1f20, 0x1f27,
	0x1f30, 0x1f37,
	0x1f40, 0x1f45,
	0x1f50, 0x1f57,
	0x1f60, 0x1f67,
	0x1f70, 0x1f7d,
	0x1f80, 0x1f87,
	0x1f90, 0x1f97,
	0x1fa0, 0x1fa7,
	0x1fb0, 0x1fb4,
	0x1fb6, 0x1fb7,
	0x1fc2, 0x1fc4,
	0x1fc6, 0x1fc7,
	0x1fd0, 0x1fd3,
	0x1fd6, 0x1fd7,
	0x1fe0, 0x1fe7,
	0x1ff2, 0x1ff4,
	0x1ff6, 0x1ff7,
	0x210e, 0x210f,
	0x213c, 0x213d,
	0x2146, 0x2149,
	0x2170, 0x217f,
	0x24d0, 0x24e9,
	0x2c30, 0x2c5e,
	0x2c65, 0x2c66,
	0x2c73, 0x2c74,
	0x2c76, 0x2c7c,
	0x2ce3, 0x2ce4,
	0x2d00, 0x2d25,
	0xa72f, 0xa731,
	0xa771, 0xa778,
	0xfb00, 0xfb06,
	0xfb13, 0xfb17,
	0xff41, 0xff5a,
	0x10428, 0x1044f,
	0x1d41a, 0x1d433,
	0x1d44e, 0x1d454,
	0x1d456, 0x1d467,
	0x1d482, 0x1d49b,
	0x1d4b6, 0x1d4b9,
	0x1d4bd, 0x1d4c3,
	0x1d4c5, 0x1d4cf,
	0x1d4ea, 0x1d503,
	0x1d51e, 0x1d537,
	0x1d552, 0x1d56b,
	0x1d586, 0x1d59f,
	0x1d5ba, 0x1d5d3,
	0x1d5ee, 0x1d607,
	0x1d622, 0x1d63b,
	0x1d656, 0x1d66f,
	0x1d68a, 0x1d6a5,
	0x1d6c2, 0x1d6da,
	0x1d6dc, 0x1d6e1,
	0x1d6fc, 0x1d714,
	0x1d716, 0x1d71b,
	0x1d736, 0x1d74e,
	0x1d750, 0x1d755,
	0x1d770, 0x1d788,
	0x1d78a, 0x1d78f,
	0x1d7aa, 0x1d7c2,
	0x1d7c4, 0x1d7c9,
};

static Rune __islowerp[] = {
	0x0101, 0x0135,
	0x013a, 0x0146,
	0x014b, 0x0177,
	0x017a, 0x017c,
	0x0183, 0x0185,
	0x01a1, 0x01a5,
	0x01b4, 0x01b6,
	0x01cc, 0x01da,
	0x01df, 0x01ed,
	0x01f3, 0x01f5,
	0x01f9, 0x0231,
	0x0247, 0x024d,
	0x0371, 0x0373,
	0x03d9, 0x03ed,
	0x0461, 0x0481,
	0x048b, 0x04bf,
	0x04c2, 0x04cc,
	0x04d1, 0x0525,
	0x1e01, 0x1e93,
	0x1e9f, 0x1efd,
	0x2c68, 0x2c6c,
	0x2c81, 0x2ce1,
	0x2cec, 0x2cee,
	0xa641, 0xa65f,
	0xa663, 0xa66d,
	0xa681, 0xa697,
	0xa723, 0xa72d,
	0xa733, 0xa76f,
	0xa77a, 0xa77c,
	0xa77f, 0xa787,
};

static Rune __islowers[] = {
	0x00aa,
	0x00b5,
	0x00ba,
	0x0188,
	0x0192,
	0x0195,
	0x019e,
	0x01a8,
	0x01ad,
	0x01b0,
	0x01c6,
	0x01c9,
	0x023c,
	0x0242,
	0x0377,
	0x0390,
	0x03f5,
	0x03f8,
	0x1fbe,
	0x210a,
	0x2113,
	0x212f,
	0x2134,
	0x2139,
	0x214e,
	0x2184,
	0x2c61,
	0x2c71,
	0xa78c,
	0x1d4bb,
	0x1d7cb,
};

int
islowerrune(Rune c)
{
	Rune *p;

	p = rbsearch(c, __islowerr, nelem(__islowerr)/2, 2);
	if(p && c >= p[0] && c <= p[1])
		return 1;
	p = rbsearch(c, __islowerp, nelem(__islowerp)/2, 2);
	if(p && c >= p[0] && c <= p[1] && !((c - p[0]) & 1))
		return 1;
	p = rbsearch(c, __islowers, nelem(__islowers), 1);
	if(p && c == p[0])
		return 1;
	return 0;
}

static Rune __istitler[] = {
	0x0041, 0x005a,
	0x00c0, 0x00d6,
	0x00d8, 0x00de,
	0x0178, 0x0179,
	0x0181, 0x0182,
	0x0186, 0x0187,
	0x0189, 0x018b,
	0x018e, 0x0191,
	0x0193, 0x0194,
	0x0196, 0x0198,
	0x019c, 0x019d,
	0x019f, 0x01a0,
	0x01a6, 0x01a7,
	0x01ae, 0x01af,
	0x01b1, 0x01b3,
	0x01b7, 0x01b8,
	0x01f6, 0x01f8,
	0x023a, 0x023b,
	0x023d, 0x023e,
	0x0243, 0x0246,
	0x0388, 0x038a,
	0x038e, 0x038f,
	0x0391, 0x03a1,
	0x03a3, 0x03ab,
	0x03f9, 0x03fa,
	0x03fd, 0x042f,
	0x04c0, 0x04c1,
	0x0531, 0x0556,
	0x10a0, 0x10c5,
	0x1f08, 0x1f0f,
	0x1f18, 0x1f1d,
	0x1f28, 0x1f2f,
	0x1f38, 0x1f3f,
	0x1f48, 0x1f4d,
	0x1f68, 0x1f6f,
	0x1f88, 0x1f8f,
	0x1f98, 0x1f9f,
	0x1fa8, 0x1faf,
	0x1fb8, 0x1fbc,
	0x1fc8, 0x1fcc,
	0x1fd8, 0x1fdb,
	0x1fe8, 0x1fec,
	0x1ff8, 0x1ffc,
	0x2160, 0x216f,
	0x24b6, 0x24cf,
	0x2c00, 0x2c2e,
	0x2c62, 0x2c64,
	0x2c6d, 0x2c70,
	0x2c7e, 0x2c80,
	0xa77d, 0xa77e,
	0xff21, 0xff3a,
	0x10400, 0x10427,
};

static Rune __istitlep[] = {
	0x0100, 0x012e,
	0x0132, 0x0136,
	0x0139, 0x0147,
	0x014a, 0x0176,
	0x017b, 0x017d,
	0x01a2, 0x01a4,
	0x01cb, 0x01db,
	0x01de, 0x01ee,
	0x01f2, 0x01f4,
	0x01fa, 0x0232,
	0x0248, 0x024e,
	0x0370, 0x0372,
	0x03d8, 0x03ee,
	0x0460, 0x0480,
	0x048a, 0x04be,
	0x04c3, 0x04cd,
	0x04d0, 0x0524,
	0x1e00, 0x1e94,
	0x1ea0, 0x1efe,
	0x1f59, 0x1f5f,
	0x2c67, 0x2c6b,
	0x2c82, 0x2ce2,
	0x2ceb, 0x2ced,
	0xa640, 0xa65e,
	0xa662, 0xa66c,
	0xa680, 0xa696,
	0xa722, 0xa72e,
	0xa732, 0xa76e,
	0xa779, 0xa77b,
	0xa780, 0xa786,
};

static Rune __istitles[] = {
	0x0184,
	0x01a9,
	0x01ac,
	0x01b5,
	0x01bc,
	0x01c5,
	0x01c8,
	0x0241,
	0x0376,
	0x0386,
	0x038c,
	0x03cf,
	0x03f7,
	0x2132,
	0x2183,
	0x2c60,
	0x2c72,
	0x2c75,
	0xa78b,
};

int
istitlerune(Rune c)
{
	Rune *p;

	p = rbsearch(c, __istitler, nelem(__istitler)/2, 2);
	if(p && c >= p[0] && c <= p[1])
		return 1;
	p = rbsearch(c, __istitlep, nelem(__istitlep)/2, 2);
	if(p && c >= p[0] && c <= p[1] && !((c - p[0]) & 1))
		return 1;
	p = rbsearch(c, __istitles, nelem(__istitles), 1);
	if(p && c == p[0])
		return 1;
	return 0;
}

static Rune __toupperr[] = {
	0x0061, 0x007a, 1048544,
	0x00e0, 0x00f6, 1048544,
	0x00f8, 0x00fe, 1048544,
	0x023f, 0x0240, 1059391,
	0x0256, 0x0257, 1048371,
	0x028a, 0x028b, 1048359,
	0x037b, 0x037d, 1048706,
	0x03ad, 0x03af, 1048539,
	0x03b1, 0x03c1, 1048544,
	0x03c3, 0x03cb, 1048544,
	0x03cd, 0x03ce, 1048513,
	0x0430, 0x044f, 1048544,
	0x0450, 0x045f, 1048496,
	0x0561, 0x0586, 1048528,
	0x1f00, 0x1f07, 1048584,
	0x1f10, 0x1f15, 1048584,
	0x1f20, 0x1f27, 1048584,
	0x1f30, 0x1f37, 1048584,
	0x1f40, 0x1f45, 1048584,
	0x1f60, 0x1f67, 1048584,
	0x1f70, 0x1f71, 1048650,
	0x1f72, 0x1f75, 1048662,
	0x1f76, 0x1f77, 1048676,
	0x1f78, 0x1f79, 1048704,
	0x1f7a, 0x1f7b, 1048688,
	0x1f7c, 0x1f7d, 1048702,
	0x1f80, 0x1f87, 1048584,
	0x1f90, 0x1f97, 1048584,
	0x1fa0, 0x1fa7, 1048584,
	0x1fb0, 0x1fb1, 1048584,
	0x1fd0, 0x1fd1, 1048584,
	0x1fe0, 0x1fe1, 1048584,
	0x2170, 0x217f, 1048560,
	0x24d0, 0x24e9, 1048550,
	0x2c30, 0x2c5e, 1048528,
	0x2d00, 0x2d25, 1041312,
	0xff41, 0xff5a, 1048544,
	0x10428, 0x1044f, 1048536,
};

static Rune __toupperp[] = {
	0x0101, 0x012f, 1048575,
	0x0133, 0x0137, 1048575,
	0x013a, 0x0148, 1048575,
	0x014b, 0x0177, 1048575,
	0x017a, 0x017e, 1048575,
	0x0183, 0x0185, 1048575,
	0x01a1, 0x01a5, 1048575,
	0x01b4, 0x01b6, 1048575,
	0x01ce, 0x01dc, 1048575,
	0x01df, 0x01ef, 1048575,
	0x01f9, 0x021f, 1048575,
	0x0223, 0x0233, 1048575,
	0x0247, 0x024f, 1048575,
	0x0371, 0x0373, 1048575,
	0x03d9, 0x03ef, 1048575,
	0x0461, 0x0481, 1048575,
	0x048b, 0x04bf, 1048575,
	0x04c2, 0x04ce, 1048575,
	0x04d1, 0x0525, 1048575,
	0x1e01, 0x1e95, 1048575,
	0x1ea1, 0x1eff, 1048575,
	0x1f51, 0x1f57, 1048584,
	0x2c68, 0x2c6c, 1048575,
	0x2c81, 0x2ce3, 1048575,
	0x2cec, 0x2cee, 1048575,
	0xa641, 0xa65f, 1048575,
	0xa663, 0xa66d, 1048575,
	0xa681, 0xa697, 1048575,
	0xa723, 0xa72f, 1048575,
	0xa733, 0xa76f, 1048575,
	0xa77a, 0xa77c, 1048575,
	0xa77f, 0xa787, 1048575,
};

static Rune __touppers[] = {
	0x00b5, 1049319,
	0x00ff, 1048697,
	0x0131, 1048344,
	0x017f, 1048276,
	0x0180, 1048771,
	0x0188, 1048575,
	0x018c, 1048575,
	0x0192, 1048575,
	0x0195, 1048673,
	0x0199, 1048575,
	0x019a, 1048739,
	0x019e, 1048706,
	0x01a8, 1048575,
	0x01ad, 1048575,
	0x01b0, 1048575,
	0x01b9, 1048575,
	0x01bd, 1048575,
	0x01bf, 1048632,
	0x01c5, 1048575,
	0x01c6, 1048574,
	0x01c8, 1048575,
	0x01c9, 1048574,
	0x01cb, 1048575,
	0x01cc, 1048574,
	0x01dd, 1048497,
	0x01f2, 1048575,
	0x01f3, 1048574,
	0x01f5, 1048575,
	0x023c, 1048575,
	0x0242, 1048575,
	0x0250, 1059359,
	0x0251, 1059356,
	0x0252, 1059358,
	0x0253, 1048366,
	0x0254, 1048370,
	0x0259, 1048374,
	0x025b, 1048373,
	0x0260, 1048371,
	0x0263, 1048369,
	0x0268, 1048367,
	0x0269, 1048365,
	0x026b, 1059319,
	0x026f, 1048365,
	0x0271, 1059325,
	0x0272, 1048363,
	0x0275, 1048362,
	0x027d, 1059303,
	0x0280, 1048358,
	0x0283, 1048358,
	0x0288, 1048358,
	0x0289, 1048507,
	0x028c, 1048505,
	0x0292, 1048357,
	0x0345, 1048660,
	0x0377, 1048575,
	0x03ac, 1048538,
	0x03c2, 1048545,
	0x03cc, 1048512,
	0x03d0, 1048514,
	0x03d1, 1048519,
	0x03d5, 1048529,
	0x03d6, 1048522,
	0x03d7, 1048568,
	0x03f0, 1048490,
	0x03f1, 1048496,
	0x03f2, 1048583,
	0x03f5, 1048480,
	0x03f8, 1048575,
	0x03fb, 1048575,
	0x04cf, 1048561,
	0x1d79, 1083908,
	0x1d7d, 1052390,
	0x1e9b, 1048517,
	0x1fb3, 1048585,
	0x1fbe, 1041371,
	0x1fc3, 1048585,
	0x1fe5, 1048583,
	0x1ff3, 1048585,
	0x214e, 1048548,
	0x2184, 1048575,
	0x2c61, 1048575,
	0x2c65, 1037781,
	0x2c66, 1037784,
	0x2c73, 1048575,
	0x2c76, 1048575,
	0xa78c, 1048575,
};

Rune
toupperrune(Rune c)
{
	Rune *p;

	p = rbsearch(c, __toupperr, nelem(__toupperr)/3, 3);
	if(p && c >= p[0] && c <= p[1])
		return c + p[2] - 1048576;
	p = rbsearch(c, __toupperp, nelem(__toupperp)/3, 3);
	if(p && c >= p[0] && c <= p[1] && !((c - p[0]) & 1))
		return c + p[2] - 1048576;
	p = rbsearch(c, __touppers, nelem(__touppers)/2, 2);
	if(p && c == p[0])
		return c + p[1] - 1048576;
	return c;
}

static Rune __tolowerr[] = {
	0x0041, 0x005a, 1048608,
	0x00c0, 0x00d6, 1048608,
	0x00d8, 0x00de, 1048608,
	0x0189, 0x018a, 1048781,
	0x01b1, 0x01b2, 1048793,
	0x0388, 0x038a, 1048613,
	0x038e, 0x038f, 1048639,
	0x0391, 0x03a1, 1048608,
	0x03a3, 0x03ab, 1048608,
	0x03fd, 0x03ff, 1048446,
	0x0400, 0x040f, 1048656,
	0x0410, 0x042f, 1048608,
	0x0531, 0x0556, 1048624,
	0x10a0, 0x10c5, 1055840,
	0x1f08, 0x1f0f, 1048568,
	0x1f18, 0x1f1d, 1048568,
	0x1f28, 0x1f2f, 1048568,
	0x1f38, 0x1f3f, 1048568,
	0x1f48, 0x1f4d, 1048568,
	0x1f68, 0x1f6f, 1048568,
	0x1f88, 0x1f8f, 1048568,
	0x1f98, 0x1f9f, 1048568,
	0x1fa8, 0x1faf, 1048568,
	0x1fb8, 0x1fb9, 1048568,
	0x1fba, 0x1fbb, 1048502,
	0x1fc8, 0x1fcb, 1048490,
	0x1fd8, 0x1fd9, 1048568,
	0x1fda, 0x1fdb, 1048476,
	0x1fe8, 0x1fe9, 1048568,
	0x1fea, 0x1feb, 1048464,
	0x1ff8, 0x1ff9, 1048448,
	0x1ffa, 0x1ffb, 1048450,
	0x2160, 0x216f, 1048592,
	0x24b6, 0x24cf, 1048602,
	0x2c00, 0x2c2e, 1048624,
	0x2c7e, 0x2c7f, 1037761,
	0xff21, 0xff3a, 1048608,
	0x10400, 0x10427, 1048616,
};

static Rune __tolowerp[] = {
	0x0100, 0x012e, 1048577,
	0x0132, 0x0136, 1048577,
	0x0139, 0x0147, 1048577,
	0x014a, 0x0176, 1048577,
	0x017b, 0x017d, 1048577,
	0x01a2, 0x01a4, 1048577,
	0x01b3, 0x01b5, 1048577,
	0x01cd, 0x01db, 1048577,
	0x01de, 0x01ee, 1048577,
	0x01f8, 0x021e, 1048577,
	0x0222, 0x0232, 1048577,
	0x0248, 0x024e, 1048577,
	0x0370, 0x0372, 1048577,
	0x03d8, 0x03ee, 1048577,
	0x0460, 0x0480, 1048577,
	0x048a, 0x04be, 1048577,
	0x04c3, 0x04cd, 1048577,
	0x04d0, 0x0524, 1048577,
	0x1e00, 0x1e94, 1048577,
	0x1ea0, 0x1efe, 1048577,
	0x1f59, 0x1f5f, 1048568,
	0x2c67, 0x2c6b, 1048577,
	0x2c80, 0x2ce2, 1048577,
	0x2ceb, 0x2ced, 1048577,
	0xa640, 0xa65e, 1048577,
	0xa662, 0xa66c, 1048577,
	0xa680, 0xa696, 1048577,
	0xa722, 0xa72e, 1048577,
	0xa732, 0xa76e, 1048577,
	0xa779, 0xa77b, 1048577,
	0xa780, 0xa786, 1048577,
};

static Rune __tolowers[] = {
	0x0130, 1048377,
	0x0178, 1048455,
	0x0179, 1048577,
	0x0181, 1048786,
	0x0182, 1048577,
	0x0184, 1048577,
	0x0186, 1048782,
	0x0187, 1048577,
	0x018b, 1048577,
	0x018e, 1048655,
	0x018f, 1048778,
	0x0190, 1048779,
	0x0191, 1048577,
	0x0193, 1048781,
	0x0194, 1048783,
	0x0196, 1048787,
	0x0197, 1048785,
	0x0198, 1048577,
	0x019c, 1048787,
	0x019d, 1048789,
	0x019f, 1048790,
	0x01a0, 1048577,
	0x01a6, 1048794,
	0x01a7, 1048577,
	0x01a9, 1048794,
	0x01ac, 1048577,
	0x01ae, 1048794,
	0x01af, 1048577,
	0x01b7, 1048795,
	0x01b8, 1048577,
	0x01bc, 1048577,
	0x01c4, 1048578,
	0x01c5, 1048577,
	0x01c7, 1048578,
	0x01c8, 1048577,
	0x01ca, 1048578,
	0x01cb, 1048577,
	0x01f1, 1048578,
	0x01f2, 1048577,
	0x01f4, 1048577,
	0x01f6, 1048479,
	0x01f7, 1048520,
	0x0220, 1048446,
	0x023a, 1059371,
	0x023b, 1048577,
	0x023d, 1048413,
	0x023e, 1059368,
	0x0241, 1048577,
	0x0243, 1048381,
	0x0244, 1048645,
	0x0245, 1048647,
	0x0246, 1048577,
	0x0376, 1048577,
	0x0386, 1048614,
	0x038c, 1048640,
	0x03cf, 1048584,
	0x03f4, 1048516,
	0x03f7, 1048577,
	0x03f9, 1048569,
	0x03fa, 1048577,
	0x04c0, 1048591,
	0x04c1, 1048577,
	0x1e9e, 1040961,
	0x1fbc, 1048567,
	0x1fcc, 1048567,
	0x1fec, 1048569,
	0x1ffc, 1048567,
	0x2126, 1041059,
	0x212a, 1040193,
	0x212b, 1040314,
	0x2132, 1048604,
	0x2183, 1048577,
	0x2c60, 1048577,
	0x2c62, 1037833,
	0x2c63, 1044762,
	0x2c64, 1037849,
	0x2c6d, 1037796,
	0x2c6e, 1037827,
	0x2c6f, 1037793,
	0x2c70, 1037794,
	0x2c72, 1048577,
	0x2c75, 1048577,
	0xa77d, 1013244,
	0xa77e, 1048577,
	0xa78b, 1048577,
};

Rune
tolowerrune(Rune c)
{
	Rune *p;

	p = rbsearch(c, __tolowerr, nelem(__tolowerr)/3, 3);
	if(p && c >= p[0] && c <= p[1])
		return c + p[2] - 1048576;
	p = rbsearch(c, __tolowerp, nelem(__tolowerp)/3, 3);
	if(p && c >= p[0] && c <= p[1] && !((c - p[0]) & 1))
		return c + p[2] - 1048576;
	p = rbsearch(c, __tolowers, nelem(__tolowers)/2, 2);
	if(p && c == p[0])
		return c + p[1] - 1048576;
	return c;
}

static Rune __totitler[] = {
	0x0061, 0x007a, 1048544,
	0x00e0, 0x00f6, 1048544,
	0x00f8, 0x00fe, 1048544,
	0x023f, 0x0240, 1059391,
	0x0256, 0x0257, 1048371,
	0x028a, 0x028b, 1048359,
	0x037b, 0x037d, 1048706,
	0x03ad, 0x03af, 1048539,
	0x03b1, 0x03c1, 1048544,
	0x03c3, 0x03cb, 1048544,
	0x03cd, 0x03ce, 1048513,
	0x0430, 0x044f, 1048544,
	0x0450, 0x045f, 1048496,
	0x0561, 0x0586, 1048528,
	0x1f00, 0x1f07, 1048584,
	0x1f10, 0x1f15, 1048584,
	0x1f20, 0x1f27, 1048584,
	0x1f30, 0x1f37, 1048584,
	0x1f40, 0x1f45, 1048584,
	0x1f60, 0x1f67, 1048584,
	0x1f70, 0x1f71, 1048650,
	0x1f72, 0x1f75, 1048662,
	0x1f76, 0x1f77, 1048676,
	0x1f78, 0x1f79, 1048704,
	0x1f7a, 0x1f7b, 1048688,
	0x1f7c, 0x1f7d, 1048702,
	0x1f80, 0x1f87, 1048584,
	0x1f90, 0x1f97, 1048584,
	0x1fa0, 0x1fa7, 1048584,
	0x1fb0, 0x1fb1, 1048584,
	0x1fd0, 0x1fd1, 1048584,
	0x1fe0, 0x1fe1, 1048584,
	0x2170, 0x217f, 1048560,
	0x24d0, 0x24e9, 1048550,
	0x2c30, 0x2c5e, 1048528,
	0x2d00, 0x2d25, 1041312,
	0xff41, 0xff5a, 1048544,
	0x10428, 0x1044f, 1048536,
};

static Rune __totitlep[] = {
	0x0101, 0x012f, 1048575,
	0x0133, 0x0137, 1048575,
	0x013a, 0x0148, 1048575,
	0x014b, 0x0177, 1048575,
	0x017a, 0x017e, 1048575,
	0x0183, 0x0185, 1048575,
	0x01a1, 0x01a5, 1048575,
	0x01b4, 0x01b6, 1048575,
	0x01cc, 0x01dc, 1048575,
	0x01df, 0x01ef, 1048575,
	0x01f3, 0x01f5, 1048575,
	0x01f9, 0x021f, 1048575,
	0x0223, 0x0233, 1048575,
	0x0247, 0x024f, 1048575,
	0x0371, 0x0373, 1048575,
	0x03d9, 0x03ef, 1048575,
	0x0461, 0x0481, 1048575,
	0x048b, 0x04bf, 1048575,
	0x04c2, 0x04ce, 1048575,
	0x04d1, 0x0525, 1048575,
	0x1e01, 0x1e95, 1048575,
	0x1ea1, 0x1eff, 1048575,
	0x1f51, 0x1f57, 1048584,
	0x2c68, 0x2c6c, 1048575,
	0x2c81, 0x2ce3, 1048575,
	0x2cec, 0x2cee, 1048575,
	0xa641, 0xa65f, 1048575,
	0xa663, 0xa66d, 1048575,
	0xa681, 0xa697, 1048575,
	0xa723, 0xa72f, 1048575,
	0xa733, 0xa76f, 1048575,
	0xa77a, 0xa77c, 1048575,
	0xa77f, 0xa787, 1048575,
};

static Rune __totitles[] = {
	0x00b5, 1049319,
	0x00ff, 1048697,
	0x0131, 1048344,
	0x017f, 1048276,
	0x0180, 1048771,
	0x0188, 1048575,
	0x018c, 1048575,
	0x0192, 1048575,
	0x0195, 1048673,
	0x0199, 1048575,
	0x019a, 1048739,
	0x019e, 1048706,
	0x01a8, 1048575,
	0x01ad, 1048575,
	0x01b0, 1048575,
	0x01b9, 1048575,
	0x01bd, 1048575,
	0x01bf, 1048632,
	0x01c4, 1048577,
	0x01c6, 1048575,
	0x01c7, 1048577,
	0x01c9, 1048575,
	0x01ca, 1048577,
	0x01dd, 1048497,
	0x01f1, 1048577,
	0x023c, 1048575,
	0x0242, 1048575,
	0x0250, 1059359,
	0x0251, 1059356,
	0x0252, 1059358,
	0x0253, 1048366,
	0x0254, 1048370,
	0x0259, 1048374,
	0x025b, 1048373,
	0x0260, 1048371,
	0x0263, 1048369,
	0x0268, 1048367,
	0x0269, 1048365,
	0x026b, 1059319,
	0x026f, 1048365,
	0x0271, 1059325,
	0x0272, 1048363,
	0x0275, 1048362,
	0x027d, 1059303,
	0x0280, 1048358,
	0x0283, 1048358,
	0x0288, 1048358,
	0x0289, 1048507,
	0x028c, 1048505,
	0x0292, 1048357,
	0x0345, 1048660,
	0x0377, 1048575,
	0x03ac, 1048538,
	0x03c2, 1048545,
	0x03cc, 1048512,
	0x03d0, 1048514,
	0x03d1, 1048519,
	0x03d5, 1048529,
	0x03d6, 1048522,
	0x03d7, 1048568,
	0x03f0, 1048490,
	0x03f1, 1048496,
	0x03f2, 1048583,
	0x03f5, 1048480,
	0x03f8, 1048575,
	0x03fb, 1048575,
	0x04cf, 1048561,
	0x1d79, 1083908,
	0x1d7d, 1052390,
	0x1e9b, 1048517,
	0x1fb3, 1048585,
	0x1fbe, 1041371,
	0x1fc3, 1048585,
	0x1fe5, 1048583,
	0x1ff3, 1048585,
	0x214e, 1048548,
	0x2184, 1048575,
	0x2c61, 1048575,
	0x2c65, 1037781,
	0x2c66, 1037784,
	0x2c73, 1048575,
	0x2c76, 1048575,
	0xa78c, 1048575,
};

Rune
totitlerune(Rune c)
{
	Rune *p;

	p = rbsearch(c, __totitler, nelem(__totitler)/3, 3);
	if(p && c >= p[0] && c <= p[1])
		return c + p[2] - 1048576;
	p = rbsearch(c, __totitlep, nelem(__totitlep)/3, 3);
	if(p && c >= p[0] && c <= p[1] && !((c - p[0]) & 1))
		return c + p[2] - 1048576;
	p = rbsearch(c, __totitles, nelem(__totitles)/2, 2);
	if(p && c == p[0])
		return c + p[1] - 1048576;
	return c;
}

