[USE] Update the data files

This uses the data files from
<https://github.com/microsoft/font-tools/tree/9e02b86c85d1a98a1d411e565d36723468f9e884/USE>
and closes #4404.
diff --git a/src/gen-use-table.py b/src/gen-use-table.py
index e8b76df..4e87b84 100755
--- a/src/gen-use-table.py
+++ b/src/gen-use-table.py
@@ -140,6 +140,10 @@
 	'Symbol_Modifier',
 	'Hieroglyph',
 	'Hieroglyph_Joiner',
+	'Hieroglyph_Mark_Begin',
+	'Hieroglyph_Mark_End',
+	'Hieroglyph_Mirror',
+	'Hieroglyph_Modifier',
 	'Hieroglyph_Segment_Begin',
 	'Hieroglyph_Segment_End',
 	# Indic_Positional_Category
@@ -234,10 +238,14 @@
 	return UISC == Hieroglyph
 def is_HIEROGLYPH_JOINER(U, UISC, UDI, UGC, AJT):
 	return UISC == Hieroglyph_Joiner
+def is_HIEROGLYPH_MIRROR(U, UISC, UDI, UGC, AJT):
+	return UISC == Hieroglyph_Mirror
+def is_HIEROGLYPH_MOD(U, UISC, UDI, UGC, AJT):
+	return UISC == Hieroglyph_Modifier
 def is_HIEROGLYPH_SEGMENT_BEGIN(U, UISC, UDI, UGC, AJT):
-	return UISC == Hieroglyph_Segment_Begin
+	return UISC in [Hieroglyph_Mark_Begin, Hieroglyph_Segment_Begin]
 def is_HIEROGLYPH_SEGMENT_END(U, UISC, UDI, UGC, AJT):
-	return UISC == Hieroglyph_Segment_End
+	return UISC in [Hieroglyph_Mark_End, Hieroglyph_Segment_End]
 def is_INVISIBLE_STACKER(U, UISC, UDI, UGC, AJT):
 	# Split off of HALANT
 	return (UISC == Invisible_Stacker
@@ -290,6 +298,8 @@
 	'HN':	is_HALANT_NUM,
 	'IS':	is_INVISIBLE_STACKER,
 	'G':	is_HIEROGLYPH,
+	'HM':	is_HIEROGLYPH_MOD,
+	'HR':	is_HIEROGLYPH_MIRROR,
 	'J':	is_HIEROGLYPH_JOINER,
 	'SB':	is_HIEROGLYPH_SEGMENT_BEGIN,
 	'SE':	is_HIEROGLYPH_SEGMENT_END,
@@ -336,6 +346,8 @@
 		'Blw': [Bottom],
 	},
 	'H': None,
+	'HM': None,
+	'HR': None,
 	'HVM': None,
 	'IS': None,
 	'B': None,
diff --git a/src/hb-ot-shaper-use-machine.hh b/src/hb-ot-shaper-use-machine.hh
index 307bb1c..be0a253 100644
--- a/src/hb-ot-shaper-use-machine.hh
+++ b/src/hb-ot-shaper-use-machine.hh
@@ -68,7 +68,9 @@
 #define use_syllable_machine_ex_G 49u
 #define use_syllable_machine_ex_GB 5u
 #define use_syllable_machine_ex_H 12u
+#define use_syllable_machine_ex_HM 54u
 #define use_syllable_machine_ex_HN 13u
+#define use_syllable_machine_ex_HR 55u
 #define use_syllable_machine_ex_HVM 53u
 #define use_syllable_machine_ex_IS 44u
 #define use_syllable_machine_ex_J 50u
@@ -97,651 +99,662 @@
 #define use_syllable_machine_ex_ZWNJ 14u
 
 
-#line 101 "hb-ot-shaper-use-machine.hh"
+#line 103 "hb-ot-shaper-use-machine.hh"
 static const unsigned char _use_syllable_machine_trans_keys[] = {
-	0u, 53u, 11u, 53u, 11u, 53u, 1u, 53u, 14u, 48u, 14u, 47u, 14u, 47u, 14u, 47u, 
-	14u, 46u, 14u, 46u, 14u, 14u, 14u, 48u, 14u, 48u, 14u, 48u, 1u, 14u, 14u, 48u, 
-	14u, 53u, 14u, 53u, 14u, 53u, 14u, 53u, 12u, 53u, 14u, 53u, 12u, 53u, 12u, 53u, 
-	12u, 53u, 11u, 53u, 1u, 14u, 1u, 48u, 14u, 42u, 14u, 42u, 11u, 53u, 1u, 53u, 
-	14u, 48u, 14u, 47u, 14u, 47u, 14u, 47u, 14u, 46u, 14u, 46u, 14u, 14u, 14u, 48u, 
-	14u, 48u, 14u, 48u, 1u, 14u, 14u, 48u, 14u, 53u, 14u, 53u, 14u, 53u, 14u, 53u, 
-	12u, 53u, 14u, 53u, 12u, 53u, 12u, 53u, 12u, 53u, 11u, 53u, 1u, 14u, 1u, 14u, 
-	1u, 48u, 13u, 14u, 4u, 14u, 11u, 53u, 11u, 53u, 1u, 53u, 14u, 48u, 14u, 47u, 
-	14u, 47u, 14u, 47u, 14u, 46u, 14u, 46u, 14u, 14u, 14u, 48u, 14u, 48u, 14u, 48u, 
-	1u, 14u, 14u, 48u, 14u, 53u, 14u, 53u, 14u, 53u, 14u, 53u, 12u, 53u, 14u, 53u, 
-	12u, 53u, 12u, 53u, 12u, 53u, 11u, 53u, 1u, 14u, 1u, 14u, 1u, 48u, 11u, 53u, 
+	49u, 51u, 0u, 53u, 11u, 53u, 11u, 53u, 1u, 53u, 14u, 48u, 14u, 47u, 14u, 47u, 
+	14u, 47u, 14u, 46u, 14u, 46u, 14u, 14u, 14u, 48u, 14u, 48u, 14u, 48u, 1u, 14u, 
+	14u, 48u, 14u, 53u, 14u, 53u, 14u, 53u, 14u, 53u, 12u, 53u, 14u, 53u, 12u, 53u, 
+	12u, 53u, 12u, 53u, 11u, 53u, 1u, 14u, 1u, 48u, 14u, 42u, 14u, 42u, 11u, 53u, 
 	1u, 53u, 14u, 48u, 14u, 47u, 14u, 47u, 14u, 47u, 14u, 46u, 14u, 46u, 14u, 14u, 
 	14u, 48u, 14u, 48u, 14u, 48u, 1u, 14u, 14u, 48u, 14u, 53u, 14u, 53u, 14u, 53u, 
 	14u, 53u, 12u, 53u, 14u, 53u, 12u, 53u, 12u, 53u, 12u, 53u, 11u, 53u, 1u, 14u, 
-	1u, 48u, 4u, 14u, 13u, 14u, 1u, 53u, 14u, 42u, 14u, 42u, 1u, 5u, 14u, 52u, 
-	14u, 52u, 14u, 51u, 0
+	1u, 14u, 1u, 48u, 13u, 14u, 4u, 14u, 11u, 53u, 11u, 53u, 1u, 53u, 14u, 48u, 
+	14u, 47u, 14u, 47u, 14u, 47u, 14u, 46u, 14u, 46u, 14u, 14u, 14u, 48u, 14u, 48u, 
+	14u, 48u, 1u, 14u, 14u, 48u, 14u, 53u, 14u, 53u, 14u, 53u, 14u, 53u, 12u, 53u, 
+	14u, 53u, 12u, 53u, 12u, 53u, 12u, 53u, 11u, 53u, 1u, 14u, 1u, 14u, 1u, 48u, 
+	11u, 53u, 1u, 53u, 14u, 48u, 14u, 47u, 14u, 47u, 14u, 47u, 14u, 46u, 14u, 46u, 
+	14u, 14u, 14u, 48u, 14u, 48u, 14u, 48u, 1u, 14u, 14u, 48u, 14u, 53u, 14u, 53u, 
+	14u, 53u, 14u, 53u, 12u, 53u, 14u, 53u, 12u, 53u, 12u, 53u, 12u, 53u, 11u, 53u, 
+	1u, 14u, 1u, 48u, 4u, 14u, 13u, 14u, 1u, 53u, 14u, 42u, 14u, 42u, 1u, 5u, 
+	14u, 55u, 14u, 51u, 14u, 52u, 14u, 54u, 11u, 53u, 0
 };
 
 static const char _use_syllable_machine_key_spans[] = {
-	54, 43, 43, 53, 35, 34, 34, 34, 
-	33, 33, 1, 35, 35, 35, 14, 35, 
-	40, 40, 40, 40, 42, 40, 42, 42, 
-	42, 43, 14, 48, 29, 29, 43, 53, 
-	35, 34, 34, 34, 33, 33, 1, 35, 
-	35, 35, 14, 35, 40, 40, 40, 40, 
-	42, 40, 42, 42, 42, 43, 14, 14, 
-	48, 2, 11, 43, 43, 53, 35, 34, 
-	34, 34, 33, 33, 1, 35, 35, 35, 
-	14, 35, 40, 40, 40, 40, 42, 40, 
-	42, 42, 42, 43, 14, 14, 48, 43, 
+	3, 54, 43, 43, 53, 35, 34, 34, 
+	34, 33, 33, 1, 35, 35, 35, 14, 
+	35, 40, 40, 40, 40, 42, 40, 42, 
+	42, 42, 43, 14, 48, 29, 29, 43, 
 	53, 35, 34, 34, 34, 33, 33, 1, 
 	35, 35, 35, 14, 35, 40, 40, 40, 
 	40, 42, 40, 42, 42, 42, 43, 14, 
-	48, 11, 2, 53, 29, 29, 5, 39, 
-	39, 38
+	14, 48, 2, 11, 43, 43, 53, 35, 
+	34, 34, 34, 33, 33, 1, 35, 35, 
+	35, 14, 35, 40, 40, 40, 40, 42, 
+	40, 42, 42, 42, 43, 14, 14, 48, 
+	43, 53, 35, 34, 34, 34, 33, 33, 
+	1, 35, 35, 35, 14, 35, 40, 40, 
+	40, 40, 42, 40, 42, 42, 42, 43, 
+	14, 48, 11, 2, 53, 29, 29, 5, 
+	42, 38, 39, 41, 43
 };
 
 static const short _use_syllable_machine_index_offsets[] = {
-	0, 55, 99, 143, 197, 233, 268, 303, 
-	338, 372, 406, 408, 444, 480, 516, 531, 
-	567, 608, 649, 690, 731, 774, 815, 858, 
-	901, 944, 988, 1003, 1052, 1082, 1112, 1156, 
-	1210, 1246, 1281, 1316, 1351, 1385, 1419, 1421, 
-	1457, 1493, 1529, 1544, 1580, 1621, 1662, 1703, 
-	1744, 1787, 1828, 1871, 1914, 1957, 2001, 2016, 
-	2031, 2080, 2083, 2095, 2139, 2183, 2237, 2273, 
-	2308, 2343, 2378, 2412, 2446, 2448, 2484, 2520, 
-	2556, 2571, 2607, 2648, 2689, 2730, 2771, 2814, 
-	2855, 2898, 2941, 2984, 3028, 3043, 3058, 3107, 
-	3151, 3205, 3241, 3276, 3311, 3346, 3380, 3414, 
-	3416, 3452, 3488, 3524, 3539, 3575, 3616, 3657, 
-	3698, 3739, 3782, 3823, 3866, 3909, 3952, 3996, 
-	4011, 4060, 4072, 4075, 4129, 4159, 4189, 4195, 
-	4235, 4275
+	0, 4, 59, 103, 147, 201, 237, 272, 
+	307, 342, 376, 410, 412, 448, 484, 520, 
+	535, 571, 612, 653, 694, 735, 778, 819, 
+	862, 905, 948, 992, 1007, 1056, 1086, 1116, 
+	1160, 1214, 1250, 1285, 1320, 1355, 1389, 1423, 
+	1425, 1461, 1497, 1533, 1548, 1584, 1625, 1666, 
+	1707, 1748, 1791, 1832, 1875, 1918, 1961, 2005, 
+	2020, 2035, 2084, 2087, 2099, 2143, 2187, 2241, 
+	2277, 2312, 2347, 2382, 2416, 2450, 2452, 2488, 
+	2524, 2560, 2575, 2611, 2652, 2693, 2734, 2775, 
+	2818, 2859, 2902, 2945, 2988, 3032, 3047, 3062, 
+	3111, 3155, 3209, 3245, 3280, 3315, 3350, 3384, 
+	3418, 3420, 3456, 3492, 3528, 3543, 3579, 3620, 
+	3661, 3702, 3743, 3786, 3827, 3870, 3913, 3956, 
+	4000, 4015, 4064, 4076, 4079, 4133, 4163, 4193, 
+	4199, 4242, 4281, 4321, 4363
 };
 
 static const unsigned char _use_syllable_machine_indicies[] = {
-	0, 1, 2, 2, 3, 4, 2, 2, 
-	2, 2, 2, 5, 6, 7, 8, 2, 
-	2, 2, 9, 2, 2, 2, 10, 11, 
-	12, 13, 14, 15, 16, 17, 18, 5, 
-	19, 20, 21, 22, 2, 23, 24, 25, 
-	2, 26, 27, 28, 29, 30, 31, 32, 
-	29, 33, 2, 34, 2, 35, 2, 37, 
-	38, 36, 39, 36, 36, 36, 36, 36, 
-	36, 36, 40, 41, 42, 43, 44, 45, 
-	46, 47, 48, 37, 49, 50, 51, 52, 
-	36, 53, 54, 55, 36, 56, 57, 36, 
-	58, 59, 60, 61, 58, 36, 36, 36, 
-	36, 62, 36, 37, 38, 36, 39, 36, 
-	36, 36, 36, 36, 36, 36, 40, 41, 
-	42, 43, 44, 45, 46, 47, 48, 37, 
-	49, 50, 51, 52, 36, 53, 54, 55, 
-	36, 36, 36, 36, 58, 59, 60, 61, 
-	58, 36, 36, 36, 36, 62, 36, 37, 
-	36, 36, 36, 36, 36, 36, 36, 36, 
-	36, 36, 36, 36, 39, 36, 36, 36, 
-	36, 36, 36, 36, 36, 41, 42, 43, 
-	44, 36, 36, 36, 36, 36, 36, 36, 
-	36, 36, 36, 53, 54, 55, 36, 36, 
-	36, 36, 36, 59, 60, 61, 63, 36, 
-	36, 36, 36, 41, 36, 39, 36, 36, 
-	36, 36, 36, 36, 36, 36, 41, 42, 
-	43, 44, 36, 36, 36, 36, 36, 36, 
-	36, 36, 36, 36, 53, 54, 55, 36, 
-	36, 36, 36, 36, 59, 60, 61, 63, 
-	36, 39, 36, 36, 36, 36, 36, 36, 
-	36, 36, 36, 42, 43, 44, 36, 36, 
-	36, 36, 36, 36, 36, 36, 36, 36, 
-	36, 36, 36, 36, 36, 36, 36, 36, 
-	59, 60, 61, 36, 39, 36, 36, 36, 
-	36, 36, 36, 36, 36, 36, 36, 43, 
-	44, 36, 36, 36, 36, 36, 36, 36, 
-	36, 36, 36, 36, 36, 36, 36, 36, 
-	36, 36, 36, 59, 60, 61, 36, 39, 
-	36, 36, 36, 36, 36, 36, 36, 36, 
-	36, 36, 36, 44, 36, 36, 36, 36, 
-	36, 36, 36, 36, 36, 36, 36, 36, 
-	36, 36, 36, 36, 36, 36, 59, 60, 
-	61, 36, 39, 36, 36, 36, 36, 36, 
-	36, 36, 36, 36, 36, 36, 36, 36, 
-	36, 36, 36, 36, 36, 36, 36, 36, 
-	36, 36, 36, 36, 36, 36, 36, 36, 
-	36, 59, 60, 36, 39, 36, 36, 36, 
-	36, 36, 36, 36, 36, 36, 36, 36, 
-	36, 36, 36, 36, 36, 36, 36, 36, 
-	36, 36, 36, 36, 36, 36, 36, 36, 
-	36, 36, 36, 36, 60, 36, 39, 36, 
-	39, 36, 36, 36, 36, 36, 36, 36, 
-	36, 36, 42, 43, 44, 36, 36, 36, 
-	36, 36, 36, 36, 36, 36, 36, 53, 
-	54, 55, 36, 36, 36, 36, 36, 59, 
-	60, 61, 63, 36, 39, 36, 36, 36, 
-	36, 36, 36, 36, 36, 36, 42, 43, 
-	44, 36, 36, 36, 36, 36, 36, 36, 
-	36, 36, 36, 36, 54, 55, 36, 36, 
-	36, 36, 36, 59, 60, 61, 63, 36, 
-	39, 36, 36, 36, 36, 36, 36, 36, 
-	36, 36, 42, 43, 44, 36, 36, 36, 
-	36, 36, 36, 36, 36, 36, 36, 36, 
-	36, 55, 36, 36, 36, 36, 36, 59, 
-	60, 61, 63, 36, 64, 36, 36, 36, 
-	36, 36, 36, 36, 36, 36, 36, 36, 
-	36, 39, 36, 39, 36, 36, 36, 36, 
-	36, 36, 36, 36, 36, 42, 43, 44, 
-	36, 36, 36, 36, 36, 36, 36, 36, 
-	36, 36, 36, 36, 36, 36, 36, 36, 
-	36, 36, 59, 60, 61, 63, 36, 39, 
-	36, 36, 36, 36, 36, 36, 36, 40, 
-	41, 42, 43, 44, 36, 36, 36, 36, 
-	36, 36, 50, 51, 52, 36, 53, 54, 
-	55, 36, 36, 36, 36, 36, 59, 60, 
-	61, 63, 36, 36, 36, 36, 41, 36, 
-	39, 36, 36, 36, 36, 36, 36, 36, 
-	36, 41, 42, 43, 44, 36, 36, 36, 
-	36, 36, 36, 50, 51, 52, 36, 53, 
-	54, 55, 36, 36, 36, 36, 36, 59, 
-	60, 61, 63, 36, 36, 36, 36, 41, 
-	36, 39, 36, 36, 36, 36, 36, 36, 
-	36, 36, 41, 42, 43, 44, 36, 36, 
-	36, 36, 36, 36, 36, 51, 52, 36, 
-	53, 54, 55, 36, 36, 36, 36, 36, 
-	59, 60, 61, 63, 36, 36, 36, 36, 
-	41, 36, 39, 36, 36, 36, 36, 36, 
-	36, 36, 36, 41, 42, 43, 44, 36, 
-	36, 36, 36, 36, 36, 36, 36, 52, 
-	36, 53, 54, 55, 36, 36, 36, 36, 
-	36, 59, 60, 61, 63, 36, 36, 36, 
-	36, 41, 36, 65, 36, 39, 36, 36, 
-	36, 36, 36, 36, 36, 40, 41, 42, 
-	43, 44, 36, 46, 47, 36, 36, 36, 
-	50, 51, 52, 36, 53, 54, 55, 36, 
-	36, 36, 36, 36, 59, 60, 61, 63, 
-	36, 36, 36, 36, 41, 36, 39, 36, 
-	36, 36, 36, 36, 36, 36, 36, 41, 
-	42, 43, 44, 36, 36, 36, 36, 36, 
-	36, 36, 36, 36, 36, 53, 54, 55, 
-	36, 36, 36, 36, 36, 59, 60, 61, 
-	63, 36, 36, 36, 36, 41, 36, 65, 
-	36, 39, 36, 36, 36, 36, 36, 36, 
-	36, 40, 41, 42, 43, 44, 36, 36, 
-	47, 36, 36, 36, 50, 51, 52, 36, 
-	53, 54, 55, 36, 36, 36, 36, 36, 
-	59, 60, 61, 63, 36, 36, 36, 36, 
-	41, 36, 65, 36, 39, 36, 36, 36, 
-	36, 36, 36, 36, 40, 41, 42, 43, 
-	44, 36, 36, 36, 36, 36, 36, 50, 
-	51, 52, 36, 53, 54, 55, 36, 36, 
-	36, 36, 36, 59, 60, 61, 63, 36, 
-	36, 36, 36, 41, 36, 65, 36, 39, 
-	36, 36, 36, 36, 36, 36, 36, 40, 
-	41, 42, 43, 44, 45, 46, 47, 36, 
-	36, 36, 50, 51, 52, 36, 53, 54, 
-	55, 36, 36, 36, 36, 36, 59, 60, 
-	61, 63, 36, 36, 36, 36, 41, 36, 
-	37, 38, 36, 39, 36, 36, 36, 36, 
-	36, 36, 36, 40, 41, 42, 43, 44, 
-	45, 46, 47, 48, 36, 49, 50, 51, 
-	52, 36, 53, 54, 55, 36, 36, 36, 
-	36, 58, 59, 60, 61, 58, 36, 36, 
-	36, 36, 62, 36, 37, 36, 36, 36, 
-	36, 36, 36, 36, 36, 36, 36, 36, 
-	36, 39, 36, 37, 36, 36, 36, 36, 
-	36, 36, 36, 36, 36, 36, 36, 36, 
-	39, 36, 36, 36, 36, 36, 36, 36, 
-	36, 41, 42, 43, 44, 36, 36, 36, 
-	36, 36, 36, 36, 36, 36, 36, 53, 
-	54, 55, 36, 36, 36, 36, 36, 59, 
-	60, 61, 63, 36, 39, 36, 36, 36, 
-	36, 36, 36, 36, 36, 36, 36, 36, 
-	36, 36, 36, 36, 36, 36, 36, 36, 
-	36, 36, 36, 36, 36, 36, 36, 56, 
-	57, 36, 39, 36, 36, 36, 36, 36, 
-	36, 36, 36, 36, 36, 36, 36, 36, 
-	36, 36, 36, 36, 36, 36, 36, 36, 
-	36, 36, 36, 36, 36, 36, 57, 36, 
-	1, 67, 66, 68, 66, 66, 66, 66, 
-	66, 66, 66, 69, 70, 71, 72, 73, 
-	74, 75, 76, 77, 1, 78, 79, 80, 
-	81, 66, 82, 83, 84, 66, 66, 66, 
-	66, 85, 86, 87, 88, 89, 66, 66, 
-	66, 66, 90, 66, 1, 66, 66, 66, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	66, 68, 66, 66, 66, 66, 66, 66, 
-	66, 66, 70, 71, 72, 73, 66, 66, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	82, 83, 84, 66, 66, 66, 66, 66, 
-	86, 87, 88, 91, 66, 66, 66, 66, 
-	70, 66, 68, 66, 66, 66, 66, 66, 
-	66, 66, 66, 70, 71, 72, 73, 66, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	66, 82, 83, 84, 66, 66, 66, 66, 
-	66, 86, 87, 88, 91, 66, 68, 66, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	71, 72, 73, 66, 66, 66, 66, 66, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	66, 66, 66, 66, 66, 86, 87, 88, 
-	66, 68, 66, 66, 66, 66, 66, 66, 
-	66, 66, 66, 66, 72, 73, 66, 66, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	86, 87, 88, 66, 68, 66, 66, 66, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	73, 66, 66, 66, 66, 66, 66, 66, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	66, 66, 66, 86, 87, 88, 66, 68, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	66, 66, 66, 66, 66, 66, 86, 87, 
-	66, 68, 66, 66, 66, 66, 66, 66, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	66, 87, 66, 68, 66, 68, 66, 66, 
-	66, 66, 66, 66, 66, 66, 66, 71, 
-	72, 73, 66, 66, 66, 66, 66, 66, 
-	66, 66, 66, 66, 82, 83, 84, 66, 
-	66, 66, 66, 66, 86, 87, 88, 91, 
-	66, 68, 66, 66, 66, 66, 66, 66, 
-	66, 66, 66, 71, 72, 73, 66, 66, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	66, 83, 84, 66, 66, 66, 66, 66, 
-	86, 87, 88, 91, 66, 68, 66, 66, 
-	66, 66, 66, 66, 66, 66, 66, 71, 
-	72, 73, 66, 66, 66, 66, 66, 66, 
-	66, 66, 66, 66, 66, 66, 84, 66, 
-	66, 66, 66, 66, 86, 87, 88, 91, 
-	66, 93, 92, 92, 92, 92, 92, 92, 
-	92, 92, 92, 92, 92, 92, 94, 92, 
-	68, 66, 66, 66, 66, 66, 66, 66, 
-	66, 66, 71, 72, 73, 66, 66, 66, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	66, 66, 66, 66, 66, 66, 66, 86, 
-	87, 88, 91, 66, 68, 66, 66, 66, 
-	66, 66, 66, 66, 69, 70, 71, 72, 
-	73, 66, 66, 66, 66, 66, 66, 79, 
-	80, 81, 66, 82, 83, 84, 66, 66, 
-	66, 66, 66, 86, 87, 88, 91, 66, 
-	66, 66, 66, 70, 66, 68, 66, 66, 
-	66, 66, 66, 66, 66, 66, 70, 71, 
-	72, 73, 66, 66, 66, 66, 66, 66, 
-	79, 80, 81, 66, 82, 83, 84, 66, 
-	66, 66, 66, 66, 86, 87, 88, 91, 
-	66, 66, 66, 66, 70, 66, 68, 66, 
-	66, 66, 66, 66, 66, 66, 66, 70, 
-	71, 72, 73, 66, 66, 66, 66, 66, 
-	66, 66, 80, 81, 66, 82, 83, 84, 
-	66, 66, 66, 66, 66, 86, 87, 88, 
-	91, 66, 66, 66, 66, 70, 66, 68, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	70, 71, 72, 73, 66, 66, 66, 66, 
-	66, 66, 66, 66, 81, 66, 82, 83, 
-	84, 66, 66, 66, 66, 66, 86, 87, 
-	88, 91, 66, 66, 66, 66, 70, 66, 
-	95, 66, 68, 66, 66, 66, 66, 66, 
-	66, 66, 69, 70, 71, 72, 73, 66, 
-	75, 76, 66, 66, 66, 79, 80, 81, 
-	66, 82, 83, 84, 66, 66, 66, 66, 
-	66, 86, 87, 88, 91, 66, 66, 66, 
-	66, 70, 66, 68, 66, 66, 66, 66, 
-	66, 66, 66, 66, 70, 71, 72, 73, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	66, 66, 82, 83, 84, 66, 66, 66, 
-	66, 66, 86, 87, 88, 91, 66, 66, 
-	66, 66, 70, 66, 95, 66, 68, 66, 
-	66, 66, 66, 66, 66, 66, 69, 70, 
-	71, 72, 73, 66, 66, 76, 66, 66, 
-	66, 79, 80, 81, 66, 82, 83, 84, 
-	66, 66, 66, 66, 66, 86, 87, 88, 
-	91, 66, 66, 66, 66, 70, 66, 95, 
-	66, 68, 66, 66, 66, 66, 66, 66, 
-	66, 69, 70, 71, 72, 73, 66, 66, 
-	66, 66, 66, 66, 79, 80, 81, 66, 
-	82, 83, 84, 66, 66, 66, 66, 66, 
-	86, 87, 88, 91, 66, 66, 66, 66, 
-	70, 66, 95, 66, 68, 66, 66, 66, 
-	66, 66, 66, 66, 69, 70, 71, 72, 
-	73, 74, 75, 76, 66, 66, 66, 79, 
-	80, 81, 66, 82, 83, 84, 66, 66, 
-	66, 66, 66, 86, 87, 88, 91, 66, 
-	66, 66, 66, 70, 66, 1, 67, 66, 
-	68, 66, 66, 66, 66, 66, 66, 66, 
-	69, 70, 71, 72, 73, 74, 75, 76, 
-	77, 66, 78, 79, 80, 81, 66, 82, 
-	83, 84, 66, 66, 66, 66, 85, 86, 
-	87, 88, 89, 66, 66, 66, 66, 90, 
-	66, 1, 96, 96, 96, 96, 96, 96, 
-	96, 96, 96, 96, 96, 96, 97, 96, 
-	1, 92, 92, 92, 92, 92, 92, 92, 
-	92, 92, 92, 92, 92, 94, 92, 1, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	66, 66, 66, 66, 68, 66, 66, 66, 
-	66, 66, 66, 66, 66, 70, 71, 72, 
-	73, 66, 66, 66, 66, 66, 66, 66, 
-	66, 66, 66, 82, 83, 84, 66, 66, 
-	66, 66, 66, 86, 87, 88, 91, 66, 
-	99, 100, 98, 3, 101, 101, 101, 101, 
-	101, 101, 101, 101, 101, 102, 101, 103, 
-	104, 66, 68, 66, 66, 66, 66, 66, 
-	66, 66, 105, 106, 107, 108, 109, 110, 
-	111, 112, 113, 103, 114, 115, 116, 117, 
-	66, 118, 119, 120, 66, 56, 57, 66, 
-	121, 122, 123, 124, 125, 66, 66, 66, 
-	66, 126, 66, 103, 104, 66, 68, 66, 
-	66, 66, 66, 66, 66, 66, 105, 106, 
-	107, 108, 109, 110, 111, 112, 113, 103, 
-	114, 115, 116, 117, 66, 118, 119, 120, 
-	66, 66, 66, 66, 121, 122, 123, 124, 
-	125, 66, 66, 66, 66, 126, 66, 103, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	66, 66, 66, 66, 68, 66, 66, 66, 
-	66, 66, 66, 66, 66, 106, 107, 108, 
-	109, 66, 66, 66, 66, 66, 66, 66, 
-	66, 66, 66, 118, 119, 120, 66, 66, 
-	66, 66, 66, 122, 123, 124, 127, 66, 
-	66, 66, 66, 106, 66, 68, 66, 66, 
-	66, 66, 66, 66, 66, 66, 106, 107, 
-	108, 109, 66, 66, 66, 66, 66, 66, 
-	66, 66, 66, 66, 118, 119, 120, 66, 
-	66, 66, 66, 66, 122, 123, 124, 127, 
-	66, 68, 66, 66, 66, 66, 66, 66, 
-	66, 66, 66, 107, 108, 109, 66, 66, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	122, 123, 124, 66, 68, 66, 66, 66, 
-	66, 66, 66, 66, 66, 66, 66, 108, 
-	109, 66, 66, 66, 66, 66, 66, 66, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	66, 66, 66, 122, 123, 124, 66, 68, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	66, 66, 66, 109, 66, 66, 66, 66, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	66, 66, 66, 66, 66, 66, 122, 123, 
-	124, 66, 68, 66, 66, 66, 66, 66, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	66, 122, 123, 66, 68, 66, 66, 66, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	66, 66, 66, 66, 123, 66, 68, 66, 
-	68, 66, 66, 66, 66, 66, 66, 66, 
-	66, 66, 107, 108, 109, 66, 66, 66, 
-	66, 66, 66, 66, 66, 66, 66, 118, 
-	119, 120, 66, 66, 66, 66, 66, 122, 
-	123, 124, 127, 66, 68, 66, 66, 66, 
-	66, 66, 66, 66, 66, 66, 107, 108, 
-	109, 66, 66, 66, 66, 66, 66, 66, 
-	66, 66, 66, 66, 119, 120, 66, 66, 
-	66, 66, 66, 122, 123, 124, 127, 66, 
-	68, 66, 66, 66, 66, 66, 66, 66, 
-	66, 66, 107, 108, 109, 66, 66, 66, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	66, 120, 66, 66, 66, 66, 66, 122, 
-	123, 124, 127, 66, 128, 92, 92, 92, 
-	92, 92, 92, 92, 92, 92, 92, 92, 
-	92, 94, 92, 68, 66, 66, 66, 66, 
-	66, 66, 66, 66, 66, 107, 108, 109, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	66, 66, 122, 123, 124, 127, 66, 68, 
-	66, 66, 66, 66, 66, 66, 66, 105, 
-	106, 107, 108, 109, 66, 66, 66, 66, 
-	66, 66, 115, 116, 117, 66, 118, 119, 
-	120, 66, 66, 66, 66, 66, 122, 123, 
-	124, 127, 66, 66, 66, 66, 106, 66, 
-	68, 66, 66, 66, 66, 66, 66, 66, 
-	66, 106, 107, 108, 109, 66, 66, 66, 
-	66, 66, 66, 115, 116, 117, 66, 118, 
-	119, 120, 66, 66, 66, 66, 66, 122, 
-	123, 124, 127, 66, 66, 66, 66, 106, 
-	66, 68, 66, 66, 66, 66, 66, 66, 
-	66, 66, 106, 107, 108, 109, 66, 66, 
-	66, 66, 66, 66, 66, 116, 117, 66, 
-	118, 119, 120, 66, 66, 66, 66, 66, 
-	122, 123, 124, 127, 66, 66, 66, 66, 
-	106, 66, 68, 66, 66, 66, 66, 66, 
-	66, 66, 66, 106, 107, 108, 109, 66, 
-	66, 66, 66, 66, 66, 66, 66, 117, 
-	66, 118, 119, 120, 66, 66, 66, 66, 
-	66, 122, 123, 124, 127, 66, 66, 66, 
-	66, 106, 66, 129, 66, 68, 66, 66, 
-	66, 66, 66, 66, 66, 105, 106, 107, 
-	108, 109, 66, 111, 112, 66, 66, 66, 
-	115, 116, 117, 66, 118, 119, 120, 66, 
-	66, 66, 66, 66, 122, 123, 124, 127, 
-	66, 66, 66, 66, 106, 66, 68, 66, 
-	66, 66, 66, 66, 66, 66, 66, 106, 
-	107, 108, 109, 66, 66, 66, 66, 66, 
-	66, 66, 66, 66, 66, 118, 119, 120, 
-	66, 66, 66, 66, 66, 122, 123, 124, 
-	127, 66, 66, 66, 66, 106, 66, 129, 
-	66, 68, 66, 66, 66, 66, 66, 66, 
-	66, 105, 106, 107, 108, 109, 66, 66, 
-	112, 66, 66, 66, 115, 116, 117, 66, 
-	118, 119, 120, 66, 66, 66, 66, 66, 
-	122, 123, 124, 127, 66, 66, 66, 66, 
-	106, 66, 129, 66, 68, 66, 66, 66, 
-	66, 66, 66, 66, 105, 106, 107, 108, 
-	109, 66, 66, 66, 66, 66, 66, 115, 
-	116, 117, 66, 118, 119, 120, 66, 66, 
-	66, 66, 66, 122, 123, 124, 127, 66, 
-	66, 66, 66, 106, 66, 129, 66, 68, 
-	66, 66, 66, 66, 66, 66, 66, 105, 
-	106, 107, 108, 109, 110, 111, 112, 66, 
-	66, 66, 115, 116, 117, 66, 118, 119, 
-	120, 66, 66, 66, 66, 66, 122, 123, 
-	124, 127, 66, 66, 66, 66, 106, 66, 
-	103, 104, 66, 68, 66, 66, 66, 66, 
-	66, 66, 66, 105, 106, 107, 108, 109, 
-	110, 111, 112, 113, 66, 114, 115, 116, 
-	117, 66, 118, 119, 120, 66, 66, 66, 
-	66, 121, 122, 123, 124, 125, 66, 66, 
-	66, 66, 126, 66, 103, 96, 96, 96, 
-	96, 96, 96, 96, 96, 96, 96, 96, 
-	96, 97, 96, 103, 92, 92, 92, 92, 
-	92, 92, 92, 92, 92, 92, 92, 92, 
-	94, 92, 103, 66, 66, 66, 66, 66, 
-	66, 66, 66, 66, 66, 66, 66, 68, 
-	66, 66, 66, 66, 66, 66, 66, 66, 
-	106, 107, 108, 109, 66, 66, 66, 66, 
-	66, 66, 66, 66, 66, 66, 118, 119, 
-	120, 66, 66, 66, 66, 66, 122, 123, 
-	124, 127, 66, 5, 6, 130, 8, 130, 
-	130, 130, 130, 130, 130, 130, 10, 11, 
-	12, 13, 14, 15, 16, 17, 18, 5, 
-	19, 20, 21, 22, 130, 23, 24, 25, 
-	130, 130, 130, 130, 29, 30, 31, 32, 
-	29, 130, 130, 130, 130, 35, 130, 5, 
-	130, 130, 130, 130, 130, 130, 130, 130, 
-	130, 130, 130, 130, 8, 130, 130, 130, 
-	130, 130, 130, 130, 130, 11, 12, 13, 
-	14, 130, 130, 130, 130, 130, 130, 130, 
-	130, 130, 130, 23, 24, 25, 130, 130, 
-	130, 130, 130, 30, 31, 32, 131, 130, 
-	130, 130, 130, 11, 130, 8, 130, 130, 
-	130, 130, 130, 130, 130, 130, 11, 12, 
-	13, 14, 130, 130, 130, 130, 130, 130, 
-	130, 130, 130, 130, 23, 24, 25, 130, 
-	130, 130, 130, 130, 30, 31, 32, 131, 
-	130, 8, 130, 130, 130, 130, 130, 130, 
-	130, 130, 130, 12, 13, 14, 130, 130, 
-	130, 130, 130, 130, 130, 130, 130, 130, 
-	130, 130, 130, 130, 130, 130, 130, 130, 
-	30, 31, 32, 130, 8, 130, 130, 130, 
-	130, 130, 130, 130, 130, 130, 130, 13, 
-	14, 130, 130, 130, 130, 130, 130, 130, 
-	130, 130, 130, 130, 130, 130, 130, 130, 
-	130, 130, 130, 30, 31, 32, 130, 8, 
-	130, 130, 130, 130, 130, 130, 130, 130, 
-	130, 130, 130, 14, 130, 130, 130, 130, 
-	130, 130, 130, 130, 130, 130, 130, 130, 
-	130, 130, 130, 130, 130, 130, 30, 31, 
-	32, 130, 8, 130, 130, 130, 130, 130, 
-	130, 130, 130, 130, 130, 130, 130, 130, 
-	130, 130, 130, 130, 130, 130, 130, 130, 
-	130, 130, 130, 130, 130, 130, 130, 130, 
-	130, 30, 31, 130, 8, 130, 130, 130, 
-	130, 130, 130, 130, 130, 130, 130, 130, 
-	130, 130, 130, 130, 130, 130, 130, 130, 
-	130, 130, 130, 130, 130, 130, 130, 130, 
-	130, 130, 130, 130, 31, 130, 8, 130, 
-	8, 130, 130, 130, 130, 130, 130, 130, 
-	130, 130, 12, 13, 14, 130, 130, 130, 
-	130, 130, 130, 130, 130, 130, 130, 23, 
-	24, 25, 130, 130, 130, 130, 130, 30, 
-	31, 32, 131, 130, 8, 130, 130, 130, 
-	130, 130, 130, 130, 130, 130, 12, 13, 
-	14, 130, 130, 130, 130, 130, 130, 130, 
-	130, 130, 130, 130, 24, 25, 130, 130, 
-	130, 130, 130, 30, 31, 32, 131, 130, 
-	8, 130, 130, 130, 130, 130, 130, 130, 
-	130, 130, 12, 13, 14, 130, 130, 130, 
-	130, 130, 130, 130, 130, 130, 130, 130, 
-	130, 25, 130, 130, 130, 130, 130, 30, 
-	31, 32, 131, 130, 132, 130, 130, 130, 
-	130, 130, 130, 130, 130, 130, 130, 130, 
-	130, 8, 130, 8, 130, 130, 130, 130, 
-	130, 130, 130, 130, 130, 12, 13, 14, 
-	130, 130, 130, 130, 130, 130, 130, 130, 
-	130, 130, 130, 130, 130, 130, 130, 130, 
-	130, 130, 30, 31, 32, 131, 130, 8, 
-	130, 130, 130, 130, 130, 130, 130, 10, 
-	11, 12, 13, 14, 130, 130, 130, 130, 
-	130, 130, 20, 21, 22, 130, 23, 24, 
-	25, 130, 130, 130, 130, 130, 30, 31, 
-	32, 131, 130, 130, 130, 130, 11, 130, 
-	8, 130, 130, 130, 130, 130, 130, 130, 
-	130, 11, 12, 13, 14, 130, 130, 130, 
-	130, 130, 130, 20, 21, 22, 130, 23, 
-	24, 25, 130, 130, 130, 130, 130, 30, 
-	31, 32, 131, 130, 130, 130, 130, 11, 
-	130, 8, 130, 130, 130, 130, 130, 130, 
-	130, 130, 11, 12, 13, 14, 130, 130, 
-	130, 130, 130, 130, 130, 21, 22, 130, 
-	23, 24, 25, 130, 130, 130, 130, 130, 
-	30, 31, 32, 131, 130, 130, 130, 130, 
-	11, 130, 8, 130, 130, 130, 130, 130, 
-	130, 130, 130, 11, 12, 13, 14, 130, 
-	130, 130, 130, 130, 130, 130, 130, 22, 
-	130, 23, 24, 25, 130, 130, 130, 130, 
-	130, 30, 31, 32, 131, 130, 130, 130, 
-	130, 11, 130, 133, 130, 8, 130, 130, 
-	130, 130, 130, 130, 130, 10, 11, 12, 
-	13, 14, 130, 16, 17, 130, 130, 130, 
-	20, 21, 22, 130, 23, 24, 25, 130, 
-	130, 130, 130, 130, 30, 31, 32, 131, 
-	130, 130, 130, 130, 11, 130, 8, 130, 
-	130, 130, 130, 130, 130, 130, 130, 11, 
-	12, 13, 14, 130, 130, 130, 130, 130, 
-	130, 130, 130, 130, 130, 23, 24, 25, 
-	130, 130, 130, 130, 130, 30, 31, 32, 
-	131, 130, 130, 130, 130, 11, 130, 133, 
-	130, 8, 130, 130, 130, 130, 130, 130, 
-	130, 10, 11, 12, 13, 14, 130, 130, 
-	17, 130, 130, 130, 20, 21, 22, 130, 
-	23, 24, 25, 130, 130, 130, 130, 130, 
-	30, 31, 32, 131, 130, 130, 130, 130, 
-	11, 130, 133, 130, 8, 130, 130, 130, 
-	130, 130, 130, 130, 10, 11, 12, 13, 
-	14, 130, 130, 130, 130, 130, 130, 20, 
-	21, 22, 130, 23, 24, 25, 130, 130, 
-	130, 130, 130, 30, 31, 32, 131, 130, 
-	130, 130, 130, 11, 130, 133, 130, 8, 
-	130, 130, 130, 130, 130, 130, 130, 10, 
-	11, 12, 13, 14, 15, 16, 17, 130, 
-	130, 130, 20, 21, 22, 130, 23, 24, 
-	25, 130, 130, 130, 130, 130, 30, 31, 
-	32, 131, 130, 130, 130, 130, 11, 130, 
-	5, 6, 130, 8, 130, 130, 130, 130, 
-	130, 130, 130, 10, 11, 12, 13, 14, 
-	15, 16, 17, 18, 130, 19, 20, 21, 
-	22, 130, 23, 24, 25, 130, 130, 130, 
-	130, 29, 30, 31, 32, 29, 130, 130, 
-	130, 130, 35, 130, 5, 130, 130, 130, 
-	130, 130, 130, 130, 130, 130, 130, 130, 
-	130, 8, 130, 5, 130, 130, 130, 130, 
-	130, 130, 130, 130, 130, 130, 130, 130, 
-	8, 130, 130, 130, 130, 130, 130, 130, 
-	130, 11, 12, 13, 14, 130, 130, 130, 
-	130, 130, 130, 130, 130, 130, 130, 23, 
-	24, 25, 130, 130, 130, 130, 130, 30, 
-	31, 32, 131, 130, 134, 130, 130, 130, 
-	130, 130, 130, 130, 130, 130, 8, 130, 
-	7, 8, 130, 1, 130, 130, 130, 1, 
-	130, 130, 130, 130, 130, 5, 6, 7, 
-	8, 130, 130, 130, 130, 130, 130, 130, 
-	10, 11, 12, 13, 14, 15, 16, 17, 
-	18, 5, 19, 20, 21, 22, 130, 23, 
-	24, 25, 130, 26, 27, 130, 29, 30, 
-	31, 32, 29, 130, 130, 130, 130, 35, 
-	130, 8, 130, 130, 130, 130, 130, 130, 
-	130, 130, 130, 130, 130, 130, 130, 130, 
-	130, 130, 130, 130, 130, 130, 130, 130, 
-	130, 130, 130, 130, 26, 27, 130, 8, 
-	130, 130, 130, 130, 130, 130, 130, 130, 
-	130, 130, 130, 130, 130, 130, 130, 130, 
-	130, 130, 130, 130, 130, 130, 130, 130, 
-	130, 130, 130, 27, 130, 1, 135, 135, 
-	135, 1, 135, 137, 136, 136, 136, 136, 
-	136, 136, 136, 136, 136, 136, 136, 136, 
-	136, 136, 136, 136, 136, 136, 136, 136, 
-	136, 136, 136, 136, 136, 136, 136, 136, 
-	136, 136, 136, 136, 136, 136, 136, 138, 
-	136, 33, 136, 137, 136, 136, 136, 136, 
-	136, 136, 136, 136, 136, 136, 136, 136, 
-	136, 136, 136, 136, 136, 136, 136, 136, 
-	136, 136, 136, 136, 136, 136, 136, 136, 
-	136, 136, 136, 136, 136, 136, 33, 138, 
-	136, 138, 136, 137, 136, 136, 136, 136, 
-	136, 136, 136, 136, 136, 136, 136, 136, 
-	136, 136, 136, 136, 136, 136, 136, 136, 
-	136, 136, 136, 136, 136, 136, 136, 136, 
-	136, 136, 136, 136, 136, 136, 33, 136, 
-	34, 136, 0
+	1, 0, 2, 0, 3, 4, 5, 5, 
+	6, 7, 5, 5, 5, 5, 5, 8, 
+	9, 10, 11, 5, 5, 5, 12, 5, 
+	5, 5, 13, 14, 15, 16, 17, 18, 
+	19, 20, 21, 8, 22, 23, 24, 25, 
+	5, 26, 27, 28, 5, 29, 30, 31, 
+	32, 33, 34, 35, 32, 1, 5, 36, 
+	5, 37, 5, 39, 40, 38, 41, 38, 
+	38, 38, 38, 38, 38, 38, 42, 43, 
+	44, 45, 46, 47, 48, 49, 50, 39, 
+	51, 52, 53, 54, 38, 55, 56, 57, 
+	38, 58, 59, 38, 60, 61, 62, 63, 
+	60, 38, 38, 38, 38, 64, 38, 39, 
+	40, 38, 41, 38, 38, 38, 38, 38, 
+	38, 38, 42, 43, 44, 45, 46, 47, 
+	48, 49, 50, 39, 51, 52, 53, 54, 
+	38, 55, 56, 57, 38, 38, 38, 38, 
+	60, 61, 62, 63, 60, 38, 38, 38, 
+	38, 64, 38, 39, 38, 38, 38, 38, 
+	38, 38, 38, 38, 38, 38, 38, 38, 
+	41, 38, 38, 38, 38, 38, 38, 38, 
+	38, 43, 44, 45, 46, 38, 38, 38, 
+	38, 38, 38, 38, 38, 38, 38, 55, 
+	56, 57, 38, 38, 38, 38, 38, 61, 
+	62, 63, 65, 38, 38, 38, 38, 43, 
+	38, 41, 38, 38, 38, 38, 38, 38, 
+	38, 38, 43, 44, 45, 46, 38, 38, 
+	38, 38, 38, 38, 38, 38, 38, 38, 
+	55, 56, 57, 38, 38, 38, 38, 38, 
+	61, 62, 63, 65, 38, 41, 38, 38, 
+	38, 38, 38, 38, 38, 38, 38, 44, 
+	45, 46, 38, 38, 38, 38, 38, 38, 
+	38, 38, 38, 38, 38, 38, 38, 38, 
+	38, 38, 38, 38, 61, 62, 63, 38, 
+	41, 38, 38, 38, 38, 38, 38, 38, 
+	38, 38, 38, 45, 46, 38, 38, 38, 
+	38, 38, 38, 38, 38, 38, 38, 38, 
+	38, 38, 38, 38, 38, 38, 38, 61, 
+	62, 63, 38, 41, 38, 38, 38, 38, 
+	38, 38, 38, 38, 38, 38, 38, 46, 
+	38, 38, 38, 38, 38, 38, 38, 38, 
+	38, 38, 38, 38, 38, 38, 38, 38, 
+	38, 38, 61, 62, 63, 38, 41, 38, 
+	38, 38, 38, 38, 38, 38, 38, 38, 
+	38, 38, 38, 38, 38, 38, 38, 38, 
+	38, 38, 38, 38, 38, 38, 38, 38, 
+	38, 38, 38, 38, 38, 61, 62, 38, 
+	41, 38, 38, 38, 38, 38, 38, 38, 
+	38, 38, 38, 38, 38, 38, 38, 38, 
+	38, 38, 38, 38, 38, 38, 38, 38, 
+	38, 38, 38, 38, 38, 38, 38, 38, 
+	62, 38, 41, 38, 41, 38, 38, 38, 
+	38, 38, 38, 38, 38, 38, 44, 45, 
+	46, 38, 38, 38, 38, 38, 38, 38, 
+	38, 38, 38, 55, 56, 57, 38, 38, 
+	38, 38, 38, 61, 62, 63, 65, 38, 
+	41, 38, 38, 38, 38, 38, 38, 38, 
+	38, 38, 44, 45, 46, 38, 38, 38, 
+	38, 38, 38, 38, 38, 38, 38, 38, 
+	56, 57, 38, 38, 38, 38, 38, 61, 
+	62, 63, 65, 38, 41, 38, 38, 38, 
+	38, 38, 38, 38, 38, 38, 44, 45, 
+	46, 38, 38, 38, 38, 38, 38, 38, 
+	38, 38, 38, 38, 38, 57, 38, 38, 
+	38, 38, 38, 61, 62, 63, 65, 38, 
+	66, 38, 38, 38, 38, 38, 38, 38, 
+	38, 38, 38, 38, 38, 41, 38, 41, 
+	38, 38, 38, 38, 38, 38, 38, 38, 
+	38, 44, 45, 46, 38, 38, 38, 38, 
+	38, 38, 38, 38, 38, 38, 38, 38, 
+	38, 38, 38, 38, 38, 38, 61, 62, 
+	63, 65, 38, 41, 38, 38, 38, 38, 
+	38, 38, 38, 42, 43, 44, 45, 46, 
+	38, 38, 38, 38, 38, 38, 52, 53, 
+	54, 38, 55, 56, 57, 38, 38, 38, 
+	38, 38, 61, 62, 63, 65, 38, 38, 
+	38, 38, 43, 38, 41, 38, 38, 38, 
+	38, 38, 38, 38, 38, 43, 44, 45, 
+	46, 38, 38, 38, 38, 38, 38, 52, 
+	53, 54, 38, 55, 56, 57, 38, 38, 
+	38, 38, 38, 61, 62, 63, 65, 38, 
+	38, 38, 38, 43, 38, 41, 38, 38, 
+	38, 38, 38, 38, 38, 38, 43, 44, 
+	45, 46, 38, 38, 38, 38, 38, 38, 
+	38, 53, 54, 38, 55, 56, 57, 38, 
+	38, 38, 38, 38, 61, 62, 63, 65, 
+	38, 38, 38, 38, 43, 38, 41, 38, 
+	38, 38, 38, 38, 38, 38, 38, 43, 
+	44, 45, 46, 38, 38, 38, 38, 38, 
+	38, 38, 38, 54, 38, 55, 56, 57, 
+	38, 38, 38, 38, 38, 61, 62, 63, 
+	65, 38, 38, 38, 38, 43, 38, 67, 
+	38, 41, 38, 38, 38, 38, 38, 38, 
+	38, 42, 43, 44, 45, 46, 38, 48, 
+	49, 38, 38, 38, 52, 53, 54, 38, 
+	55, 56, 57, 38, 38, 38, 38, 38, 
+	61, 62, 63, 65, 38, 38, 38, 38, 
+	43, 38, 41, 38, 38, 38, 38, 38, 
+	38, 38, 38, 43, 44, 45, 46, 38, 
+	38, 38, 38, 38, 38, 38, 38, 38, 
+	38, 55, 56, 57, 38, 38, 38, 38, 
+	38, 61, 62, 63, 65, 38, 38, 38, 
+	38, 43, 38, 67, 38, 41, 38, 38, 
+	38, 38, 38, 38, 38, 42, 43, 44, 
+	45, 46, 38, 38, 49, 38, 38, 38, 
+	52, 53, 54, 38, 55, 56, 57, 38, 
+	38, 38, 38, 38, 61, 62, 63, 65, 
+	38, 38, 38, 38, 43, 38, 67, 38, 
+	41, 38, 38, 38, 38, 38, 38, 38, 
+	42, 43, 44, 45, 46, 38, 38, 38, 
+	38, 38, 38, 52, 53, 54, 38, 55, 
+	56, 57, 38, 38, 38, 38, 38, 61, 
+	62, 63, 65, 38, 38, 38, 38, 43, 
+	38, 67, 38, 41, 38, 38, 38, 38, 
+	38, 38, 38, 42, 43, 44, 45, 46, 
+	47, 48, 49, 38, 38, 38, 52, 53, 
+	54, 38, 55, 56, 57, 38, 38, 38, 
+	38, 38, 61, 62, 63, 65, 38, 38, 
+	38, 38, 43, 38, 39, 40, 38, 41, 
+	38, 38, 38, 38, 38, 38, 38, 42, 
+	43, 44, 45, 46, 47, 48, 49, 50, 
+	38, 51, 52, 53, 54, 38, 55, 56, 
+	57, 38, 38, 38, 38, 60, 61, 62, 
+	63, 60, 38, 38, 38, 38, 64, 38, 
+	39, 38, 38, 38, 38, 38, 38, 38, 
+	38, 38, 38, 38, 38, 41, 38, 39, 
+	38, 38, 38, 38, 38, 38, 38, 38, 
+	38, 38, 38, 38, 41, 38, 38, 38, 
+	38, 38, 38, 38, 38, 43, 44, 45, 
+	46, 38, 38, 38, 38, 38, 38, 38, 
+	38, 38, 38, 55, 56, 57, 38, 38, 
+	38, 38, 38, 61, 62, 63, 65, 38, 
+	41, 38, 38, 38, 38, 38, 38, 38, 
+	38, 38, 38, 38, 38, 38, 38, 38, 
+	38, 38, 38, 38, 38, 38, 38, 38, 
+	38, 38, 38, 58, 59, 38, 41, 38, 
+	38, 38, 38, 38, 38, 38, 38, 38, 
+	38, 38, 38, 38, 38, 38, 38, 38, 
+	38, 38, 38, 38, 38, 38, 38, 38, 
+	38, 38, 59, 38, 4, 69, 68, 70, 
+	68, 68, 68, 68, 68, 68, 68, 71, 
+	72, 73, 74, 75, 76, 77, 78, 79, 
+	4, 80, 81, 82, 83, 68, 84, 85, 
+	86, 68, 68, 68, 68, 87, 88, 89, 
+	90, 91, 68, 68, 68, 68, 92, 68, 
+	4, 68, 68, 68, 68, 68, 68, 68, 
+	68, 68, 68, 68, 68, 70, 68, 68, 
+	68, 68, 68, 68, 68, 68, 72, 73, 
+	74, 75, 68, 68, 68, 68, 68, 68, 
+	68, 68, 68, 68, 84, 85, 86, 68, 
+	68, 68, 68, 68, 88, 89, 90, 93, 
+	68, 68, 68, 68, 72, 68, 70, 68, 
+	68, 68, 68, 68, 68, 68, 68, 72, 
+	73, 74, 75, 68, 68, 68, 68, 68, 
+	68, 68, 68, 68, 68, 84, 85, 86, 
+	68, 68, 68, 68, 68, 88, 89, 90, 
+	93, 68, 70, 68, 68, 68, 68, 68, 
+	68, 68, 68, 68, 73, 74, 75, 68, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	68, 88, 89, 90, 68, 70, 68, 68, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	74, 75, 68, 68, 68, 68, 68, 68, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	68, 68, 68, 68, 88, 89, 90, 68, 
+	70, 68, 68, 68, 68, 68, 68, 68, 
+	68, 68, 68, 68, 75, 68, 68, 68, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	68, 68, 68, 68, 68, 68, 68, 88, 
+	89, 90, 68, 70, 68, 68, 68, 68, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	68, 68, 88, 89, 68, 70, 68, 68, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	68, 68, 68, 68, 68, 89, 68, 70, 
+	68, 70, 68, 68, 68, 68, 68, 68, 
+	68, 68, 68, 73, 74, 75, 68, 68, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	84, 85, 86, 68, 68, 68, 68, 68, 
+	88, 89, 90, 93, 68, 70, 68, 68, 
+	68, 68, 68, 68, 68, 68, 68, 73, 
+	74, 75, 68, 68, 68, 68, 68, 68, 
+	68, 68, 68, 68, 68, 85, 86, 68, 
+	68, 68, 68, 68, 88, 89, 90, 93, 
+	68, 70, 68, 68, 68, 68, 68, 68, 
+	68, 68, 68, 73, 74, 75, 68, 68, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	68, 68, 86, 68, 68, 68, 68, 68, 
+	88, 89, 90, 93, 68, 95, 94, 94, 
+	94, 94, 94, 94, 94, 94, 94, 94, 
+	94, 94, 96, 94, 70, 68, 68, 68, 
+	68, 68, 68, 68, 68, 68, 73, 74, 
+	75, 68, 68, 68, 68, 68, 68, 68, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	68, 68, 68, 88, 89, 90, 93, 68, 
+	70, 68, 68, 68, 68, 68, 68, 68, 
+	71, 72, 73, 74, 75, 68, 68, 68, 
+	68, 68, 68, 81, 82, 83, 68, 84, 
+	85, 86, 68, 68, 68, 68, 68, 88, 
+	89, 90, 93, 68, 68, 68, 68, 72, 
+	68, 70, 68, 68, 68, 68, 68, 68, 
+	68, 68, 72, 73, 74, 75, 68, 68, 
+	68, 68, 68, 68, 81, 82, 83, 68, 
+	84, 85, 86, 68, 68, 68, 68, 68, 
+	88, 89, 90, 93, 68, 68, 68, 68, 
+	72, 68, 70, 68, 68, 68, 68, 68, 
+	68, 68, 68, 72, 73, 74, 75, 68, 
+	68, 68, 68, 68, 68, 68, 82, 83, 
+	68, 84, 85, 86, 68, 68, 68, 68, 
+	68, 88, 89, 90, 93, 68, 68, 68, 
+	68, 72, 68, 70, 68, 68, 68, 68, 
+	68, 68, 68, 68, 72, 73, 74, 75, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	83, 68, 84, 85, 86, 68, 68, 68, 
+	68, 68, 88, 89, 90, 93, 68, 68, 
+	68, 68, 72, 68, 97, 68, 70, 68, 
+	68, 68, 68, 68, 68, 68, 71, 72, 
+	73, 74, 75, 68, 77, 78, 68, 68, 
+	68, 81, 82, 83, 68, 84, 85, 86, 
+	68, 68, 68, 68, 68, 88, 89, 90, 
+	93, 68, 68, 68, 68, 72, 68, 70, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	72, 73, 74, 75, 68, 68, 68, 68, 
+	68, 68, 68, 68, 68, 68, 84, 85, 
+	86, 68, 68, 68, 68, 68, 88, 89, 
+	90, 93, 68, 68, 68, 68, 72, 68, 
+	97, 68, 70, 68, 68, 68, 68, 68, 
+	68, 68, 71, 72, 73, 74, 75, 68, 
+	68, 78, 68, 68, 68, 81, 82, 83, 
+	68, 84, 85, 86, 68, 68, 68, 68, 
+	68, 88, 89, 90, 93, 68, 68, 68, 
+	68, 72, 68, 97, 68, 70, 68, 68, 
+	68, 68, 68, 68, 68, 71, 72, 73, 
+	74, 75, 68, 68, 68, 68, 68, 68, 
+	81, 82, 83, 68, 84, 85, 86, 68, 
+	68, 68, 68, 68, 88, 89, 90, 93, 
+	68, 68, 68, 68, 72, 68, 97, 68, 
+	70, 68, 68, 68, 68, 68, 68, 68, 
+	71, 72, 73, 74, 75, 76, 77, 78, 
+	68, 68, 68, 81, 82, 83, 68, 84, 
+	85, 86, 68, 68, 68, 68, 68, 88, 
+	89, 90, 93, 68, 68, 68, 68, 72, 
+	68, 4, 69, 68, 70, 68, 68, 68, 
+	68, 68, 68, 68, 71, 72, 73, 74, 
+	75, 76, 77, 78, 79, 68, 80, 81, 
+	82, 83, 68, 84, 85, 86, 68, 68, 
+	68, 68, 87, 88, 89, 90, 91, 68, 
+	68, 68, 68, 92, 68, 4, 98, 98, 
+	98, 98, 98, 98, 98, 98, 98, 98, 
+	98, 98, 99, 98, 4, 94, 94, 94, 
+	94, 94, 94, 94, 94, 94, 94, 94, 
+	94, 96, 94, 4, 68, 68, 68, 68, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	70, 68, 68, 68, 68, 68, 68, 68, 
+	68, 72, 73, 74, 75, 68, 68, 68, 
+	68, 68, 68, 68, 68, 68, 68, 84, 
+	85, 86, 68, 68, 68, 68, 68, 88, 
+	89, 90, 93, 68, 101, 102, 100, 6, 
+	103, 103, 103, 103, 103, 103, 103, 103, 
+	103, 104, 103, 105, 106, 68, 70, 68, 
+	68, 68, 68, 68, 68, 68, 107, 108, 
+	109, 110, 111, 112, 113, 114, 115, 105, 
+	116, 117, 118, 119, 68, 120, 121, 122, 
+	68, 58, 59, 68, 123, 124, 125, 126, 
+	127, 68, 68, 68, 68, 128, 68, 105, 
+	106, 68, 70, 68, 68, 68, 68, 68, 
+	68, 68, 107, 108, 109, 110, 111, 112, 
+	113, 114, 115, 105, 116, 117, 118, 119, 
+	68, 120, 121, 122, 68, 68, 68, 68, 
+	123, 124, 125, 126, 127, 68, 68, 68, 
+	68, 128, 68, 105, 68, 68, 68, 68, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	70, 68, 68, 68, 68, 68, 68, 68, 
+	68, 108, 109, 110, 111, 68, 68, 68, 
+	68, 68, 68, 68, 68, 68, 68, 120, 
+	121, 122, 68, 68, 68, 68, 68, 124, 
+	125, 126, 129, 68, 68, 68, 68, 108, 
+	68, 70, 68, 68, 68, 68, 68, 68, 
+	68, 68, 108, 109, 110, 111, 68, 68, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	120, 121, 122, 68, 68, 68, 68, 68, 
+	124, 125, 126, 129, 68, 70, 68, 68, 
+	68, 68, 68, 68, 68, 68, 68, 109, 
+	110, 111, 68, 68, 68, 68, 68, 68, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	68, 68, 68, 68, 124, 125, 126, 68, 
+	70, 68, 68, 68, 68, 68, 68, 68, 
+	68, 68, 68, 110, 111, 68, 68, 68, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	68, 68, 68, 68, 68, 68, 68, 124, 
+	125, 126, 68, 70, 68, 68, 68, 68, 
+	68, 68, 68, 68, 68, 68, 68, 111, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	68, 68, 124, 125, 126, 68, 70, 68, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	68, 68, 68, 68, 68, 124, 125, 68, 
+	70, 68, 68, 68, 68, 68, 68, 68, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	125, 68, 70, 68, 70, 68, 68, 68, 
+	68, 68, 68, 68, 68, 68, 109, 110, 
+	111, 68, 68, 68, 68, 68, 68, 68, 
+	68, 68, 68, 120, 121, 122, 68, 68, 
+	68, 68, 68, 124, 125, 126, 129, 68, 
+	70, 68, 68, 68, 68, 68, 68, 68, 
+	68, 68, 109, 110, 111, 68, 68, 68, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	121, 122, 68, 68, 68, 68, 68, 124, 
+	125, 126, 129, 68, 70, 68, 68, 68, 
+	68, 68, 68, 68, 68, 68, 109, 110, 
+	111, 68, 68, 68, 68, 68, 68, 68, 
+	68, 68, 68, 68, 68, 122, 68, 68, 
+	68, 68, 68, 124, 125, 126, 129, 68, 
+	130, 94, 94, 94, 94, 94, 94, 94, 
+	94, 94, 94, 94, 94, 96, 94, 70, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	68, 109, 110, 111, 68, 68, 68, 68, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	68, 68, 68, 68, 68, 68, 124, 125, 
+	126, 129, 68, 70, 68, 68, 68, 68, 
+	68, 68, 68, 107, 108, 109, 110, 111, 
+	68, 68, 68, 68, 68, 68, 117, 118, 
+	119, 68, 120, 121, 122, 68, 68, 68, 
+	68, 68, 124, 125, 126, 129, 68, 68, 
+	68, 68, 108, 68, 70, 68, 68, 68, 
+	68, 68, 68, 68, 68, 108, 109, 110, 
+	111, 68, 68, 68, 68, 68, 68, 117, 
+	118, 119, 68, 120, 121, 122, 68, 68, 
+	68, 68, 68, 124, 125, 126, 129, 68, 
+	68, 68, 68, 108, 68, 70, 68, 68, 
+	68, 68, 68, 68, 68, 68, 108, 109, 
+	110, 111, 68, 68, 68, 68, 68, 68, 
+	68, 118, 119, 68, 120, 121, 122, 68, 
+	68, 68, 68, 68, 124, 125, 126, 129, 
+	68, 68, 68, 68, 108, 68, 70, 68, 
+	68, 68, 68, 68, 68, 68, 68, 108, 
+	109, 110, 111, 68, 68, 68, 68, 68, 
+	68, 68, 68, 119, 68, 120, 121, 122, 
+	68, 68, 68, 68, 68, 124, 125, 126, 
+	129, 68, 68, 68, 68, 108, 68, 131, 
+	68, 70, 68, 68, 68, 68, 68, 68, 
+	68, 107, 108, 109, 110, 111, 68, 113, 
+	114, 68, 68, 68, 117, 118, 119, 68, 
+	120, 121, 122, 68, 68, 68, 68, 68, 
+	124, 125, 126, 129, 68, 68, 68, 68, 
+	108, 68, 70, 68, 68, 68, 68, 68, 
+	68, 68, 68, 108, 109, 110, 111, 68, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	68, 120, 121, 122, 68, 68, 68, 68, 
+	68, 124, 125, 126, 129, 68, 68, 68, 
+	68, 108, 68, 131, 68, 70, 68, 68, 
+	68, 68, 68, 68, 68, 107, 108, 109, 
+	110, 111, 68, 68, 114, 68, 68, 68, 
+	117, 118, 119, 68, 120, 121, 122, 68, 
+	68, 68, 68, 68, 124, 125, 126, 129, 
+	68, 68, 68, 68, 108, 68, 131, 68, 
+	70, 68, 68, 68, 68, 68, 68, 68, 
+	107, 108, 109, 110, 111, 68, 68, 68, 
+	68, 68, 68, 117, 118, 119, 68, 120, 
+	121, 122, 68, 68, 68, 68, 68, 124, 
+	125, 126, 129, 68, 68, 68, 68, 108, 
+	68, 131, 68, 70, 68, 68, 68, 68, 
+	68, 68, 68, 107, 108, 109, 110, 111, 
+	112, 113, 114, 68, 68, 68, 117, 118, 
+	119, 68, 120, 121, 122, 68, 68, 68, 
+	68, 68, 124, 125, 126, 129, 68, 68, 
+	68, 68, 108, 68, 105, 106, 68, 70, 
+	68, 68, 68, 68, 68, 68, 68, 107, 
+	108, 109, 110, 111, 112, 113, 114, 115, 
+	68, 116, 117, 118, 119, 68, 120, 121, 
+	122, 68, 68, 68, 68, 123, 124, 125, 
+	126, 127, 68, 68, 68, 68, 128, 68, 
+	105, 98, 98, 98, 98, 98, 98, 98, 
+	98, 98, 98, 98, 98, 99, 98, 105, 
+	94, 94, 94, 94, 94, 94, 94, 94, 
+	94, 94, 94, 94, 96, 94, 105, 68, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	68, 68, 68, 70, 68, 68, 68, 68, 
+	68, 68, 68, 68, 108, 109, 110, 111, 
+	68, 68, 68, 68, 68, 68, 68, 68, 
+	68, 68, 120, 121, 122, 68, 68, 68, 
+	68, 68, 124, 125, 126, 129, 68, 8, 
+	9, 132, 11, 132, 132, 132, 132, 132, 
+	132, 132, 13, 14, 15, 16, 17, 18, 
+	19, 20, 21, 8, 22, 23, 24, 25, 
+	132, 26, 27, 28, 132, 132, 132, 132, 
+	32, 33, 34, 35, 32, 132, 132, 132, 
+	132, 37, 132, 8, 132, 132, 132, 132, 
+	132, 132, 132, 132, 132, 132, 132, 132, 
+	11, 132, 132, 132, 132, 132, 132, 132, 
+	132, 14, 15, 16, 17, 132, 132, 132, 
+	132, 132, 132, 132, 132, 132, 132, 26, 
+	27, 28, 132, 132, 132, 132, 132, 33, 
+	34, 35, 133, 132, 132, 132, 132, 14, 
+	132, 11, 132, 132, 132, 132, 132, 132, 
+	132, 132, 14, 15, 16, 17, 132, 132, 
+	132, 132, 132, 132, 132, 132, 132, 132, 
+	26, 27, 28, 132, 132, 132, 132, 132, 
+	33, 34, 35, 133, 132, 11, 132, 132, 
+	132, 132, 132, 132, 132, 132, 132, 15, 
+	16, 17, 132, 132, 132, 132, 132, 132, 
+	132, 132, 132, 132, 132, 132, 132, 132, 
+	132, 132, 132, 132, 33, 34, 35, 132, 
+	11, 132, 132, 132, 132, 132, 132, 132, 
+	132, 132, 132, 16, 17, 132, 132, 132, 
+	132, 132, 132, 132, 132, 132, 132, 132, 
+	132, 132, 132, 132, 132, 132, 132, 33, 
+	34, 35, 132, 11, 132, 132, 132, 132, 
+	132, 132, 132, 132, 132, 132, 132, 17, 
+	132, 132, 132, 132, 132, 132, 132, 132, 
+	132, 132, 132, 132, 132, 132, 132, 132, 
+	132, 132, 33, 34, 35, 132, 11, 132, 
+	132, 132, 132, 132, 132, 132, 132, 132, 
+	132, 132, 132, 132, 132, 132, 132, 132, 
+	132, 132, 132, 132, 132, 132, 132, 132, 
+	132, 132, 132, 132, 132, 33, 34, 132, 
+	11, 132, 132, 132, 132, 132, 132, 132, 
+	132, 132, 132, 132, 132, 132, 132, 132, 
+	132, 132, 132, 132, 132, 132, 132, 132, 
+	132, 132, 132, 132, 132, 132, 132, 132, 
+	34, 132, 11, 132, 11, 132, 132, 132, 
+	132, 132, 132, 132, 132, 132, 15, 16, 
+	17, 132, 132, 132, 132, 132, 132, 132, 
+	132, 132, 132, 26, 27, 28, 132, 132, 
+	132, 132, 132, 33, 34, 35, 133, 132, 
+	11, 132, 132, 132, 132, 132, 132, 132, 
+	132, 132, 15, 16, 17, 132, 132, 132, 
+	132, 132, 132, 132, 132, 132, 132, 132, 
+	27, 28, 132, 132, 132, 132, 132, 33, 
+	34, 35, 133, 132, 11, 132, 132, 132, 
+	132, 132, 132, 132, 132, 132, 15, 16, 
+	17, 132, 132, 132, 132, 132, 132, 132, 
+	132, 132, 132, 132, 132, 28, 132, 132, 
+	132, 132, 132, 33, 34, 35, 133, 132, 
+	134, 132, 132, 132, 132, 132, 132, 132, 
+	132, 132, 132, 132, 132, 11, 132, 11, 
+	132, 132, 132, 132, 132, 132, 132, 132, 
+	132, 15, 16, 17, 132, 132, 132, 132, 
+	132, 132, 132, 132, 132, 132, 132, 132, 
+	132, 132, 132, 132, 132, 132, 33, 34, 
+	35, 133, 132, 11, 132, 132, 132, 132, 
+	132, 132, 132, 13, 14, 15, 16, 17, 
+	132, 132, 132, 132, 132, 132, 23, 24, 
+	25, 132, 26, 27, 28, 132, 132, 132, 
+	132, 132, 33, 34, 35, 133, 132, 132, 
+	132, 132, 14, 132, 11, 132, 132, 132, 
+	132, 132, 132, 132, 132, 14, 15, 16, 
+	17, 132, 132, 132, 132, 132, 132, 23, 
+	24, 25, 132, 26, 27, 28, 132, 132, 
+	132, 132, 132, 33, 34, 35, 133, 132, 
+	132, 132, 132, 14, 132, 11, 132, 132, 
+	132, 132, 132, 132, 132, 132, 14, 15, 
+	16, 17, 132, 132, 132, 132, 132, 132, 
+	132, 24, 25, 132, 26, 27, 28, 132, 
+	132, 132, 132, 132, 33, 34, 35, 133, 
+	132, 132, 132, 132, 14, 132, 11, 132, 
+	132, 132, 132, 132, 132, 132, 132, 14, 
+	15, 16, 17, 132, 132, 132, 132, 132, 
+	132, 132, 132, 25, 132, 26, 27, 28, 
+	132, 132, 132, 132, 132, 33, 34, 35, 
+	133, 132, 132, 132, 132, 14, 132, 135, 
+	132, 11, 132, 132, 132, 132, 132, 132, 
+	132, 13, 14, 15, 16, 17, 132, 19, 
+	20, 132, 132, 132, 23, 24, 25, 132, 
+	26, 27, 28, 132, 132, 132, 132, 132, 
+	33, 34, 35, 133, 132, 132, 132, 132, 
+	14, 132, 11, 132, 132, 132, 132, 132, 
+	132, 132, 132, 14, 15, 16, 17, 132, 
+	132, 132, 132, 132, 132, 132, 132, 132, 
+	132, 26, 27, 28, 132, 132, 132, 132, 
+	132, 33, 34, 35, 133, 132, 132, 132, 
+	132, 14, 132, 135, 132, 11, 132, 132, 
+	132, 132, 132, 132, 132, 13, 14, 15, 
+	16, 17, 132, 132, 20, 132, 132, 132, 
+	23, 24, 25, 132, 26, 27, 28, 132, 
+	132, 132, 132, 132, 33, 34, 35, 133, 
+	132, 132, 132, 132, 14, 132, 135, 132, 
+	11, 132, 132, 132, 132, 132, 132, 132, 
+	13, 14, 15, 16, 17, 132, 132, 132, 
+	132, 132, 132, 23, 24, 25, 132, 26, 
+	27, 28, 132, 132, 132, 132, 132, 33, 
+	34, 35, 133, 132, 132, 132, 132, 14, 
+	132, 135, 132, 11, 132, 132, 132, 132, 
+	132, 132, 132, 13, 14, 15, 16, 17, 
+	18, 19, 20, 132, 132, 132, 23, 24, 
+	25, 132, 26, 27, 28, 132, 132, 132, 
+	132, 132, 33, 34, 35, 133, 132, 132, 
+	132, 132, 14, 132, 8, 9, 132, 11, 
+	132, 132, 132, 132, 132, 132, 132, 13, 
+	14, 15, 16, 17, 18, 19, 20, 21, 
+	132, 22, 23, 24, 25, 132, 26, 27, 
+	28, 132, 132, 132, 132, 32, 33, 34, 
+	35, 32, 132, 132, 132, 132, 37, 132, 
+	8, 132, 132, 132, 132, 132, 132, 132, 
+	132, 132, 132, 132, 132, 11, 132, 8, 
+	132, 132, 132, 132, 132, 132, 132, 132, 
+	132, 132, 132, 132, 11, 132, 132, 132, 
+	132, 132, 132, 132, 132, 14, 15, 16, 
+	17, 132, 132, 132, 132, 132, 132, 132, 
+	132, 132, 132, 26, 27, 28, 132, 132, 
+	132, 132, 132, 33, 34, 35, 133, 132, 
+	136, 132, 132, 132, 132, 132, 132, 132, 
+	132, 132, 11, 132, 10, 11, 132, 4, 
+	132, 132, 132, 4, 132, 132, 132, 132, 
+	132, 8, 9, 10, 11, 132, 132, 132, 
+	132, 132, 132, 132, 13, 14, 15, 16, 
+	17, 18, 19, 20, 21, 8, 22, 23, 
+	24, 25, 132, 26, 27, 28, 132, 29, 
+	30, 132, 32, 33, 34, 35, 32, 132, 
+	132, 132, 132, 37, 132, 11, 132, 132, 
+	132, 132, 132, 132, 132, 132, 132, 132, 
+	132, 132, 132, 132, 132, 132, 132, 132, 
+	132, 132, 132, 132, 132, 132, 132, 132, 
+	29, 30, 132, 11, 132, 132, 132, 132, 
+	132, 132, 132, 132, 132, 132, 132, 132, 
+	132, 132, 132, 132, 132, 132, 132, 132, 
+	132, 132, 132, 132, 132, 132, 132, 30, 
+	132, 4, 137, 137, 137, 4, 137, 139, 
+	138, 138, 138, 138, 138, 138, 138, 138, 
+	138, 138, 138, 138, 138, 138, 138, 138, 
+	138, 138, 138, 138, 138, 138, 138, 138, 
+	138, 138, 138, 138, 138, 138, 138, 138, 
+	138, 138, 138, 140, 138, 141, 138, 141, 
+	142, 138, 139, 138, 138, 138, 138, 138, 
+	138, 138, 138, 138, 138, 138, 138, 138, 
+	138, 138, 138, 138, 138, 138, 138, 138, 
+	138, 138, 138, 138, 138, 138, 138, 138, 
+	138, 138, 138, 138, 138, 1, 140, 140, 
+	138, 139, 138, 138, 138, 138, 138, 138, 
+	138, 138, 138, 138, 138, 138, 138, 138, 
+	138, 138, 138, 138, 138, 138, 138, 138, 
+	138, 138, 138, 138, 138, 138, 138, 138, 
+	138, 138, 138, 138, 138, 140, 138, 141, 
+	138, 139, 138, 138, 138, 138, 138, 138, 
+	138, 138, 138, 138, 138, 138, 138, 138, 
+	138, 138, 138, 138, 138, 138, 138, 138, 
+	138, 138, 138, 138, 138, 138, 138, 138, 
+	138, 138, 138, 138, 138, 140, 138, 141, 
+	138, 141, 138, 39, 40, 38, 41, 38, 
+	38, 38, 38, 38, 38, 38, 42, 43, 
+	44, 45, 46, 47, 48, 49, 50, 39, 
+	51, 52, 53, 54, 38, 55, 56, 57, 
+	38, 58, 59, 38, 60, 61, 62, 63, 
+	60, 1, 38, 2, 38, 64, 38, 0
 };
 
 static const char _use_syllable_machine_trans_targs[] = {
-	1, 30, 0, 57, 59, 87, 88, 113, 
-	0, 115, 101, 89, 90, 91, 92, 105, 
-	107, 108, 109, 110, 102, 103, 104, 96, 
-	97, 98, 116, 117, 118, 111, 93, 94, 
-	95, 119, 121, 112, 0, 2, 3, 0, 
-	16, 4, 5, 6, 7, 20, 22, 23, 
-	24, 25, 17, 18, 19, 11, 12, 13, 
-	28, 29, 26, 8, 9, 10, 27, 14, 
-	15, 21, 0, 31, 0, 44, 32, 33, 
-	34, 35, 48, 50, 51, 52, 53, 45, 
-	46, 47, 39, 40, 41, 54, 36, 37, 
-	38, 55, 56, 42, 0, 43, 0, 49, 
-	0, 0, 0, 58, 0, 0, 0, 60, 
-	61, 74, 62, 63, 64, 65, 78, 80, 
-	81, 82, 83, 75, 76, 77, 69, 70, 
-	71, 84, 66, 67, 68, 85, 86, 72, 
-	73, 79, 0, 99, 100, 106, 114, 0, 
-	0, 0, 120
+	1, 120, 0, 2, 31, 1, 58, 60, 
+	88, 89, 114, 1, 116, 102, 90, 91, 
+	92, 93, 106, 108, 109, 110, 111, 103, 
+	104, 105, 97, 98, 99, 117, 118, 119, 
+	112, 94, 95, 96, 124, 113, 1, 3, 
+	4, 1, 17, 5, 6, 7, 8, 21, 
+	23, 24, 25, 26, 18, 19, 20, 12, 
+	13, 14, 29, 30, 27, 9, 10, 11, 
+	28, 15, 16, 22, 1, 32, 1, 45, 
+	33, 34, 35, 36, 49, 51, 52, 53, 
+	54, 46, 47, 48, 40, 41, 42, 55, 
+	37, 38, 39, 56, 57, 43, 1, 44, 
+	1, 50, 1, 1, 1, 59, 1, 1, 
+	1, 61, 62, 75, 63, 64, 65, 66, 
+	79, 81, 82, 83, 84, 76, 77, 78, 
+	70, 71, 72, 85, 67, 68, 69, 86, 
+	87, 73, 74, 80, 1, 100, 101, 107, 
+	115, 1, 1, 1, 121, 122, 123
 };
 
 static const char _use_syllable_machine_trans_actions[] = {
-	0, 0, 3, 0, 0, 0, 0, 0, 
-	4, 0, 0, 0, 0, 0, 0, 0, 
+	1, 0, 0, 0, 0, 4, 0, 0, 
+	0, 0, 0, 5, 0, 0, 0, 0, 
 	0, 0, 0, 0, 0, 0, 0, 0, 
 	0, 0, 0, 0, 0, 0, 0, 0, 
-	0, 0, 0, 0, 5, 0, 0, 6, 
-	0, 0, 0, 0, 0, 0, 0, 0, 
-	0, 0, 0, 0, 0, 0, 0, 0, 
-	0, 0, 0, 0, 0, 0, 0, 0, 
-	0, 0, 7, 0, 8, 0, 0, 0, 
+	0, 0, 0, 0, 6, 0, 7, 0, 
+	0, 8, 0, 0, 0, 0, 0, 0, 
 	0, 0, 0, 0, 0, 0, 0, 0, 
 	0, 0, 0, 0, 0, 0, 0, 0, 
 	0, 0, 0, 0, 9, 0, 10, 0, 
-	11, 12, 13, 0, 14, 15, 16, 0, 
 	0, 0, 0, 0, 0, 0, 0, 0, 
 	0, 0, 0, 0, 0, 0, 0, 0, 
+	0, 0, 0, 0, 0, 0, 11, 0, 
+	12, 0, 13, 14, 15, 0, 16, 17, 
+	18, 0, 0, 0, 0, 0, 0, 0, 
 	0, 0, 0, 0, 0, 0, 0, 0, 
-	0, 0, 17, 0, 0, 0, 0, 18, 
-	19, 20, 0
+	0, 0, 0, 0, 0, 0, 0, 0, 
+	0, 0, 0, 0, 19, 0, 0, 0, 
+	0, 20, 21, 22, 0, 0, 0
 };
 
 static const char _use_syllable_machine_to_state_actions[] = {
-	1, 0, 0, 0, 0, 0, 0, 0, 
+	0, 2, 0, 0, 0, 0, 0, 0, 
 	0, 0, 0, 0, 0, 0, 0, 0, 
 	0, 0, 0, 0, 0, 0, 0, 0, 
 	0, 0, 0, 0, 0, 0, 0, 0, 
@@ -756,11 +769,11 @@
 	0, 0, 0, 0, 0, 0, 0, 0, 
 	0, 0, 0, 0, 0, 0, 0, 0, 
 	0, 0, 0, 0, 0, 0, 0, 0, 
-	0, 0
+	0, 0, 0, 0, 0
 };
 
 static const char _use_syllable_machine_from_state_actions[] = {
-	2, 0, 0, 0, 0, 0, 0, 0, 
+	0, 3, 0, 0, 0, 0, 0, 0, 
 	0, 0, 0, 0, 0, 0, 0, 0, 
 	0, 0, 0, 0, 0, 0, 0, 0, 
 	0, 0, 0, 0, 0, 0, 0, 0, 
@@ -775,40 +788,40 @@
 	0, 0, 0, 0, 0, 0, 0, 0, 
 	0, 0, 0, 0, 0, 0, 0, 0, 
 	0, 0, 0, 0, 0, 0, 0, 0, 
-	0, 0
+	0, 0, 0, 0, 0
 };
 
 static const short _use_syllable_machine_eof_trans[] = {
-	0, 37, 37, 37, 37, 37, 37, 37, 
-	37, 37, 37, 37, 37, 37, 37, 37, 
-	37, 37, 37, 37, 37, 37, 37, 37, 
-	37, 37, 37, 37, 37, 37, 67, 67, 
-	67, 67, 67, 67, 67, 67, 67, 67, 
-	67, 67, 93, 67, 67, 67, 67, 67, 
-	67, 67, 67, 67, 67, 67, 97, 93, 
-	67, 99, 102, 67, 67, 67, 67, 67, 
-	67, 67, 67, 67, 67, 67, 67, 67, 
-	93, 67, 67, 67, 67, 67, 67, 67, 
-	67, 67, 67, 67, 97, 93, 67, 131, 
-	131, 131, 131, 131, 131, 131, 131, 131, 
-	131, 131, 131, 131, 131, 131, 131, 131, 
-	131, 131, 131, 131, 131, 131, 131, 131, 
-	131, 131, 131, 131, 131, 131, 136, 137, 
-	137, 137
+	1, 0, 39, 39, 39, 39, 39, 39, 
+	39, 39, 39, 39, 39, 39, 39, 39, 
+	39, 39, 39, 39, 39, 39, 39, 39, 
+	39, 39, 39, 39, 39, 39, 39, 69, 
+	69, 69, 69, 69, 69, 69, 69, 69, 
+	69, 69, 69, 95, 69, 69, 69, 69, 
+	69, 69, 69, 69, 69, 69, 69, 99, 
+	95, 69, 101, 104, 69, 69, 69, 69, 
+	69, 69, 69, 69, 69, 69, 69, 69, 
+	69, 95, 69, 69, 69, 69, 69, 69, 
+	69, 69, 69, 69, 69, 99, 95, 69, 
+	133, 133, 133, 133, 133, 133, 133, 133, 
+	133, 133, 133, 133, 133, 133, 133, 133, 
+	133, 133, 133, 133, 133, 133, 133, 133, 
+	133, 133, 133, 133, 133, 133, 133, 138, 
+	139, 139, 139, 139, 39
 };
 
-static const int use_syllable_machine_start = 0;
-static const int use_syllable_machine_first_final = 0;
+static const int use_syllable_machine_start = 1;
+static const int use_syllable_machine_first_final = 1;
 static const int use_syllable_machine_error = -1;
 
-static const int use_syllable_machine_en_main = 0;
+static const int use_syllable_machine_en_main = 1;
 
 
 #line 58 "hb-ot-shaper-use-machine.rl"
 
 
 
-#line 182 "hb-ot-shaper-use-machine.rl"
+#line 184 "hb-ot-shaper-use-machine.rl"
 
 
 #define found_syllable(syllable_type) \
@@ -907,7 +920,7 @@
   unsigned int act HB_UNUSED;
   int cs;
   
-#line 911 "hb-ot-shaper-use-machine.hh"
+#line 924 "hb-ot-shaper-use-machine.hh"
 	{
 	cs = use_syllable_machine_start;
 	ts = 0;
@@ -915,12 +928,12 @@
 	act = 0;
 	}
 
-#line 282 "hb-ot-shaper-use-machine.rl"
+#line 284 "hb-ot-shaper-use-machine.rl"
 
 
   unsigned int syllable_serial = 1;
   
-#line 924 "hb-ot-shaper-use-machine.hh"
+#line 937 "hb-ot-shaper-use-machine.hh"
 	{
 	int _slen;
 	int _trans;
@@ -930,11 +943,11 @@
 		goto _test_eof;
 _resume:
 	switch ( _use_syllable_machine_from_state_actions[cs] ) {
-	case 2:
+	case 3:
 #line 1 "NONE"
 	{ts = p;}
 	break;
-#line 938 "hb-ot-shaper-use-machine.hh"
+#line 951 "hb-ot-shaper-use-machine.hh"
 	}
 
 	_keys = _use_syllable_machine_trans_keys + (cs<<1);
@@ -952,88 +965,96 @@
 		goto _again;
 
 	switch ( _use_syllable_machine_trans_actions[_trans] ) {
-	case 12:
-#line 170 "hb-ot-shaper-use-machine.rl"
-	{te = p+1;{ found_syllable (use_virama_terminated_cluster); }}
-	break;
-	case 10:
-#line 171 "hb-ot-shaper-use-machine.rl"
-	{te = p+1;{ found_syllable (use_sakot_terminated_cluster); }}
-	break;
-	case 8:
-#line 172 "hb-ot-shaper-use-machine.rl"
-	{te = p+1;{ found_syllable (use_standard_cluster); }}
-	break;
-	case 16:
-#line 173 "hb-ot-shaper-use-machine.rl"
-	{te = p+1;{ found_syllable (use_number_joiner_terminated_cluster); }}
+	case 6:
+#line 1 "NONE"
+	{te = p+1;}
 	break;
 	case 14:
-#line 174 "hb-ot-shaper-use-machine.rl"
-	{te = p+1;{ found_syllable (use_numeral_cluster); }}
-	break;
-	case 6:
-#line 175 "hb-ot-shaper-use-machine.rl"
-	{te = p+1;{ found_syllable (use_symbol_cluster); }}
-	break;
-	case 20:
-#line 176 "hb-ot-shaper-use-machine.rl"
-	{te = p+1;{ found_syllable (use_hieroglyph_cluster); }}
-	break;
-	case 4:
-#line 177 "hb-ot-shaper-use-machine.rl"
-	{te = p+1;{ found_syllable (use_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; }}
-	break;
-	case 3:
-#line 178 "hb-ot-shaper-use-machine.rl"
-	{te = p+1;{ found_syllable (use_non_cluster); }}
-	break;
-	case 11:
-#line 170 "hb-ot-shaper-use-machine.rl"
-	{te = p;p--;{ found_syllable (use_virama_terminated_cluster); }}
-	break;
-	case 9:
-#line 171 "hb-ot-shaper-use-machine.rl"
-	{te = p;p--;{ found_syllable (use_sakot_terminated_cluster); }}
-	break;
-	case 7:
 #line 172 "hb-ot-shaper-use-machine.rl"
-	{te = p;p--;{ found_syllable (use_standard_cluster); }}
+	{te = p+1;{ found_syllable (use_virama_terminated_cluster); }}
 	break;
-	case 15:
+	case 12:
 #line 173 "hb-ot-shaper-use-machine.rl"
-	{te = p;p--;{ found_syllable (use_number_joiner_terminated_cluster); }}
+	{te = p+1;{ found_syllable (use_sakot_terminated_cluster); }}
 	break;
-	case 13:
+	case 10:
 #line 174 "hb-ot-shaper-use-machine.rl"
-	{te = p;p--;{ found_syllable (use_numeral_cluster); }}
-	break;
-	case 5:
-#line 175 "hb-ot-shaper-use-machine.rl"
-	{te = p;p--;{ found_syllable (use_symbol_cluster); }}
-	break;
-	case 19:
-#line 176 "hb-ot-shaper-use-machine.rl"
-	{te = p;p--;{ found_syllable (use_hieroglyph_cluster); }}
-	break;
-	case 17:
-#line 177 "hb-ot-shaper-use-machine.rl"
-	{te = p;p--;{ found_syllable (use_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; }}
+	{te = p+1;{ found_syllable (use_standard_cluster); }}
 	break;
 	case 18:
+#line 175 "hb-ot-shaper-use-machine.rl"
+	{te = p+1;{ found_syllable (use_number_joiner_terminated_cluster); }}
+	break;
+	case 16:
+#line 176 "hb-ot-shaper-use-machine.rl"
+	{te = p+1;{ found_syllable (use_numeral_cluster); }}
+	break;
+	case 8:
+#line 177 "hb-ot-shaper-use-machine.rl"
+	{te = p+1;{ found_syllable (use_symbol_cluster); }}
+	break;
+	case 22:
 #line 178 "hb-ot-shaper-use-machine.rl"
+	{te = p+1;{ found_syllable (use_hieroglyph_cluster); }}
+	break;
+	case 5:
+#line 179 "hb-ot-shaper-use-machine.rl"
+	{te = p+1;{ found_syllable (use_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; }}
+	break;
+	case 4:
+#line 180 "hb-ot-shaper-use-machine.rl"
+	{te = p+1;{ found_syllable (use_non_cluster); }}
+	break;
+	case 13:
+#line 172 "hb-ot-shaper-use-machine.rl"
+	{te = p;p--;{ found_syllable (use_virama_terminated_cluster); }}
+	break;
+	case 11:
+#line 173 "hb-ot-shaper-use-machine.rl"
+	{te = p;p--;{ found_syllable (use_sakot_terminated_cluster); }}
+	break;
+	case 9:
+#line 174 "hb-ot-shaper-use-machine.rl"
+	{te = p;p--;{ found_syllable (use_standard_cluster); }}
+	break;
+	case 17:
+#line 175 "hb-ot-shaper-use-machine.rl"
+	{te = p;p--;{ found_syllable (use_number_joiner_terminated_cluster); }}
+	break;
+	case 15:
+#line 176 "hb-ot-shaper-use-machine.rl"
+	{te = p;p--;{ found_syllable (use_numeral_cluster); }}
+	break;
+	case 7:
+#line 177 "hb-ot-shaper-use-machine.rl"
+	{te = p;p--;{ found_syllable (use_symbol_cluster); }}
+	break;
+	case 21:
+#line 178 "hb-ot-shaper-use-machine.rl"
+	{te = p;p--;{ found_syllable (use_hieroglyph_cluster); }}
+	break;
+	case 19:
+#line 179 "hb-ot-shaper-use-machine.rl"
+	{te = p;p--;{ found_syllable (use_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; }}
+	break;
+	case 20:
+#line 180 "hb-ot-shaper-use-machine.rl"
 	{te = p;p--;{ found_syllable (use_non_cluster); }}
 	break;
-#line 1028 "hb-ot-shaper-use-machine.hh"
+	case 1:
+#line 177 "hb-ot-shaper-use-machine.rl"
+	{{p = ((te))-1;}{ found_syllable (use_symbol_cluster); }}
+	break;
+#line 1049 "hb-ot-shaper-use-machine.hh"
 	}
 
 _again:
 	switch ( _use_syllable_machine_to_state_actions[cs] ) {
-	case 1:
+	case 2:
 #line 1 "NONE"
 	{ts = 0;}
 	break;
-#line 1037 "hb-ot-shaper-use-machine.hh"
+#line 1058 "hb-ot-shaper-use-machine.hh"
 	}
 
 	if ( ++p != pe )
@@ -1049,7 +1070,7 @@
 
 	}
 
-#line 287 "hb-ot-shaper-use-machine.rl"
+#line 289 "hb-ot-shaper-use-machine.rl"
 
 }
 
diff --git a/src/hb-ot-shaper-use-machine.rl b/src/hb-ot-shaper-use-machine.rl
index bd55380..374fcad 100644
--- a/src/hb-ot-shaper-use-machine.rl
+++ b/src/hb-ot-shaper-use-machine.rl
@@ -83,6 +83,8 @@
 export SB	= 51; # HIEROGLYPH_SEGMENT_BEGIN
 export SE	= 52; # HIEROGLYPH_SEGMENT_END
 export HVM	= 53; # HALANT_OR_VOWEL_MODIFIER
+export HM	= 54; # HIEROGLYPH_MOD
+export HR	= 55; # HIEROGLYPH_MIRROR
 
 export FAbv	= 24; # CONS_FINAL_ABOVE
 export FBlw	= 25; # CONS_FINAL_BELOW
@@ -162,8 +164,8 @@
 
 number_joiner_terminated_cluster = N number_joiner_terminated_cluster_tail;
 numeral_cluster = N numeral_cluster_tail?;
-symbol_cluster = (O | GB) tail?;
-hieroglyph_cluster = SB+ | SB* G SE* (J SE* (G SE*)?)*;
+symbol_cluster = (O | GB | SB) tail?;
+hieroglyph_cluster = SB* G HR? HM? SE* (J SB* (G HR? HM? SE*)?)*;
 other = any;
 
 main := |*
diff --git a/src/hb-ot-shaper-use-table.hh b/src/hb-ot-shaper-use-table.hh
index 6b6b552..66fba6b 100644
--- a/src/hb-ot-shaper-use-table.hh
+++ b/src/hb-ot-shaper-use-table.hh
@@ -26,6 +26,7 @@
  * # Updated for Unicode 13.0 by Andrew Glass 2020-07-28
  * # Updated for Unicode 14.0 by Andrew Glass 2021-09-25
  * # Updated for Unicode 15.0 by Andrew Glass 2022-09-16
+ * # Updated for Unicode 15.1 by Andrew Glass 2023-09-14
  * # Override values For Indic_Positional_Category
  * # Not derivable
  * # Initial version based on Unicode 7.0 by Andrew Glass 2014-03-17
@@ -36,6 +37,7 @@
  * # Updated for Unicode 13.0 by Andrew Glass 2020-07-28
  * # Updated for Unicode 14.0 by Andrew Glass 2021-09-28
  * # Updated for Unicode 15.0 by Andrew Glass 2022-09-16
+ * # Updated for Unicode 15.1 by Andrew Glass 2023-09-14
  * UnicodeData.txt does not have a header.
  */
 
@@ -54,7 +56,9 @@
 #define G	USE(G)	/* HIEROGLYPH */
 #define GB	USE(GB)	/* BASE_OTHER */
 #define H	USE(H)	/* HALANT */
+#define HM	USE(HM)	/* HIEROGLYPH_MOD */
 #define HN	USE(HN)	/* HALANT_NUM */
+#define HR	USE(HR)	/* HIEROGLYPH_MIRROR */
 #define HVM	USE(HVM)	/* HALANT_OR_VOWEL_MODIFIER */
 #define IS	USE(IS)	/* INVISIBLE_STACKER */
 #define J	USE(J)	/* HIEROGLYPH_JOINER */
@@ -95,7 +99,7 @@
 #ifndef HB_OPTIMIZE_SIZE
 
 static const uint8_t
-hb_use_u8[3141] =
+hb_use_u8[3187] =
 {
      16,   50,   51,   51,   51,   52,   51,   83,  118,  131,   51,   57,   58,  179,  195,   61,
      51,   51,   51,   51,   51,   51,   51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
@@ -109,244 +113,249 @@
      18,   19,   20,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,   21,
      22,   23,   24,   25,   26,   27,   28,   29,   30,   31,   32,    2,   33,    2,    2,    2,
       2,   34,   35,    2,    2,    2,    2,    2,    2,    2,    2,    2,   36,    2,    2,    2,
-      2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,   37,    2,    2,    2,    2,
+     37,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,   38,    2,   39,    2,    2,
       2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
       2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
       2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
-      2,   38,   39,   40,   41,   42,   43,    2,   44,    2,    2,    2,    2,    2,    2,    2,
+      2,   40,   41,   42,   43,   44,   45,    2,   46,    2,    2,    2,    2,    2,    2,    2,
       2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
-      2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,   45,   46,    2,
-     47,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,   48,   49,    2,    2,    2,
-      2,    2,    2,    2,    2,   50,   51,    2,   52,    2,    2,   53,    2,    2,   54,   55,
-     56,   57,   58,   59,   60,   61,   62,   63,    2,   64,   65,    2,   66,   67,   68,   69,
-      2,   70,    2,   71,   72,   73,   74,    2,    2,   75,   76,   77,   78,    2,   79,   80,
-      2,   81,   81,   81,   81,   81,   81,   81,   81,   82,    2,    2,    2,    2,    2,    2,
+      2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,   47,   48,    2,
+     49,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,   50,   51,    2,    2,    2,
+      2,    2,    2,    2,    2,   52,   53,    2,   54,    2,    2,   55,    2,    2,   56,   57,
+     58,   59,   60,   61,   62,   63,   64,   65,    2,   66,   67,    2,   68,   69,   70,   71,
+      2,   72,    2,   73,   74,   75,   76,    2,    2,   77,   78,   79,   80,    2,   81,   82,
+      2,   83,   83,   83,   83,   83,   83,   83,   83,   84,    2,    2,    2,    2,    2,    2,
       2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
       2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
-      2,    2,    2,    2,    2,    2,   83,   84,    2,    2,    2,    2,    2,    2,    2,   85,
-     86,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
-      2,    2,    2,    2,    2,    2,    2,   81,   81,   81,   87,    2,    2,    2,    2,    2,
+      2,    2,    2,    2,    2,    2,   85,   86,    2,    2,    2,    2,    2,    2,    2,   87,
+     88,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
+      2,    2,    2,    2,    2,    2,    2,   89,   89,   89,   90,    2,    2,    2,    2,    2,
       2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
-      2,    2,    2,    2,    2,    2,    2,    2,    2,   88,   89,    2,    2,    2,    2,    2,
-      2,    2,    2,   90,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
+      2,    2,    2,    2,    2,    2,    2,    2,    2,   91,   92,    2,    2,    2,    2,    2,
+      2,    2,    2,   93,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
       2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
-      2,    2,    2,   91,    2,    2,   92,    2,    2,    2,   93,    2,    2,    2,    2,    2,
-      2,    2,    2,   94,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
-      2,   95,   95,   96,   97,   95,   95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
-     95,   95,   95,   95,   95,   95,   95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
-     95,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    1,
-      0,    2,    2,    2,    2,    2,    0,    0,    0,    3,    0,    0,    0,    0,    0,    4,
-      0,    0,    5,    0,    0,    0,    0,    0,    0,    0,    0,    0,    1,    0,    0,    0,
-      0,    0,    0,    0,    0,    0,    0,    0,    6,    7,    0,    0,    0,    0,    0,    0,
-      0,    0,    0,    0,    0,    0,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
-      2,    2,    2,    2,    2,    2,    8,    9,    9,    9,    9,    0,    0,    0,    7,   10,
-      0,    2,    2,    2,    2,   11,   12,    0,    0,    9,   13,    2,    2,    2,    2,    2,
-      2,    2,    2,    2,    2,    2,   14,   15,   16,   17,   18,   19,   20,   14,   21,   22,
-     23,   10,   24,   25,   18,    2,    2,    2,    2,    2,   18,    0,    2,    2,    2,    2,
-      2,    0,    2,    2,    2,    2,    2,    2,    2,   26,   27,   28,    2,    2,    2,    7,
-     28,    7,   28,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    7,    2,    2,
-      2,    7,    7,    0,    2,    2,    0,   15,   16,   17,   18,   29,   30,   31,   30,   32,
-      0,    0,    0,    0,   33,    0,    0,    2,   28,    2,    0,    0,    0,    0,    0,    7,
-     34,   10,   13,   28,    2,    2,    7,    0,   28,    7,    2,   28,    7,    2,    0,   35,
-     16,   17,   29,    0,   25,   36,   25,   37,    0,   38,    0,    0,    0,   28,    2,    7,
-      7,    0,    0,    0,    2,    2,    2,    2,    2,   39,   40,   41,    0,    0,    0,    0,
-      0,   10,   13,   28,    2,    2,    2,    2,   28,    2,   28,    2,    2,    2,    2,    2,
-      2,    7,    2,   28,    2,    2,    0,   15,   16,   17,   18,   19,   25,   20,   33,   22,
-      0,    0,    0,    0,    0,   28,   39,   39,   42,   10,   27,   28,    2,    2,    2,    7,
-     28,    7,    2,   28,    2,    2,    0,   15,   43,    0,    0,   25,   20,    0,    0,    2,
-     28,   28,    0,    0,    0,    0,    0,    0,    0,    0,   44,   28,    2,    2,    7,    0,
-      2,    7,    2,    2,    0,   28,    7,    7,    2,    0,   28,    7,    0,    2,    7,    0,
-      2,    2,    2,    2,    2,    2,    0,    0,   21,   14,   45,    0,   46,   31,   46,   32,
-      0,    0,    0,    0,   33,    0,    0,    0,    0,   13,   27,   47,    2,    2,    2,    7,
-      2,    7,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    0,   15,
-     20,   14,   21,   45,   20,   36,   20,   37,    0,    0,    0,   25,   29,    2,    7,    0,
-      0,    8,   27,   28,    2,    2,    2,    7,    2,    2,    2,   28,    2,    2,    0,   15,
-     43,    0,    0,   33,   45,    0,    0,    0,    7,   48,   49,    0,    0,    0,    0,    0,
-      0,    9,   27,    2,    2,    2,    2,    7,    2,    2,    2,    2,    2,    2,   50,   51,
-     21,   21,   17,   29,   46,   31,   46,   32,   52,    0,    0,    0,   33,    0,    0,    0,
-     28,   10,   27,   28,    2,    2,    2,    2,    2,    2,    2,    2,    7,    0,    2,    2,
-      2,    2,   28,    2,    2,    2,    2,   28,    0,    2,    2,    2,    7,    0,   53,    0,
-     33,   21,   20,   29,   29,   16,   46,   46,   23,    0,   21,    0,    0,    0,    0,    0,
-      0,    2,    0,    2,    7,    0,    0,    0,    0,    0,    0,    0,    0,   18,    0,    0,
-      0,    2,    2,   54,   54,   55,    0,    0,   16,    2,    2,    2,    2,   28,    2,    2,
-      2,    2,    2,    2,    2,    2,    2,    7,    0,   56,   19,   57,   20,   20,   18,   18,
-     44,   19,    9,   29,    9,    2,    2,   58,   59,   59,   59,   59,   59,   60,   59,   59,
-     59,   59,   59,   59,   59,   59,   59,   59,   59,   59,   59,   59,   59,   59,   59,   61,
-      0,    0,    0,    0,   62,    0,    0,    0,    0,    2,    2,    2,    2,    2,   63,   43,
-     57,   64,   20,   20,   65,   66,   67,   68,   69,    2,    2,    2,    2,    2,    1,    0,
-      3,    2,    2,    2,   21,   18,    2,    2,   70,   69,   71,   72,   63,   71,   27,   27,
-      2,   50,   20,   51,    2,    2,    2,    2,    2,    2,   73,   74,   75,   27,   27,   76,
-     77,    2,    2,    2,    2,    2,   27,   43,    0,    2,   57,   78,    0,    0,    0,    0,
-     28,    2,   57,   45,    0,    0,    0,    0,    0,    2,   57,    0,    0,    0,    0,    0,
-      0,    2,    2,    2,    2,    2,    2,    7,    2,    7,   57,    0,    0,    0,    0,    0,
-      0,    2,    2,   79,   43,   20,   57,   18,   46,   46,   46,   46,   13,   80,   81,   82,
-     83,   84,   85,    0,    0,    0,    0,   86,    0,    7,    0,    0,   28,    0,   87,   79,
-     88,    2,    2,    2,    2,    7,    0,    0,    0,   40,   40,   89,   90,    2,    2,    2,
-      2,    2,    2,    2,    2,   11,    7,    0,    0,   91,    2,    2,    2,    2,    2,    2,
-      2,    2,    2,    2,    2,    2,    2,    2,    7,   20,   78,   43,   20,   92,   59,    0,
-      0,   93,   94,   93,   93,   95,   96,    0,    0,    2,    2,    2,    2,    2,    2,    2,
-      0,    2,    2,    7,    0,    0,    0,    0,    0,    2,    2,    2,    2,    2,    2,    0,
-      0,    2,    2,    2,    2,   27,    0,    0,    0,    2,    2,    2,    2,    2,    7,    0,
-      0,    2,    2,    2,   50,   97,   43,    0,    0,    2,    2,   98,   99,  100,  101,   59,
-     61,  102,   14,   43,   20,   57,   19,   78,   46,   46,   74,    9,    9,    9,  103,   44,
-     38,    9,  104,   72,    2,    2,    2,    2,    2,    2,    2,  105,   20,   18,   18,   20,
-     46,   46,   20,  106,    2,    2,    2,    7,    0,    0,    0,    0,    0,    0,  107,  108,
-    109,  109,  109,    0,    0,    0,    0,    0,    0,  104,   72,    2,    2,    2,    2,    2,
-      2,   58,   59,   57,   23,   20,  110,   59,    2,    2,    2,    2,  105,   20,   21,   43,
-     43,  100,   12,    0,    0,    0,    0,    0,    0,    2,    2,   59,   16,   46,   21,  111,
-    100,  100,  100,  112,  113,    0,    0,    0,    0,    2,    2,    2,    2,    2,    0,   28,
-      2,    9,   44,  114,  114,  114,    9,  114,  114,   13,  114,  114,  114,   24,    0,   38,
-      0,    0,    0,  115,   49,    9,    3,    0,    0,    0,    0,    0,    0,    0,  116,    0,
-      0,    0,    0,    0,    0,    0,    4,  117,  118,   40,   40,    3,    0,    0,    0,    0,
-      0,    0,    0,    0,    0,    0,  118,  118,  119,  118,  118,  118,  118,  118,  118,  118,
-    118,    0,    0,  120,    0,    0,    0,    0,    0,    0,    5,  120,    0,    0,    0,    0,
-      0,   44,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    7,
-      0,    2,    2,    2,    2,    0,    0,    0,   28,    0,    0,    0,    0,    0,    0,    0,
-    121,    2,   51,    2,  106,    2,    8,    2,    2,    2,   63,   17,   14,    0,    0,   29,
-      0,    2,    2,    0,    0,    0,    0,    0,    0,   27,    2,    2,    2,    2,    2,    2,
-      2,    2,    2,  122,   21,   21,   21,   21,   21,   21,   21,  123,    0,    0,    0,    0,
-      0,    9,    9,    9,    9,    9,    9,    9,    9,    9,    2,    0,    0,    0,    0,    0,
-     50,    2,    2,    2,   20,   20,  124,  114,    0,    2,    2,    2,  125,   18,   57,   18,
-    111,  100,  126,    0,    0,    0,    0,    0,    0,    9,  127,    2,    2,    2,    2,    2,
-      2,    2,  128,   21,   20,   18,   46,  129,  130,  131,    0,    0,    0,    0,    0,    0,
-      0,    2,    2,   50,   28,    2,    2,    2,    2,    2,    2,    2,    2,    8,   20,   57,
-     97,   74,  132,  133,  134,    0,    0,    0,    0,    2,  135,    2,    2,    2,    2,  136,
-      0,   28,    2,   40,    3,    0,   77,   13,    2,   51,   20,  137,   50,   51,    2,    2,
-    103,    8,    7,    0,    0,    0,    0,    0,    0,    2,    2,    2,    2,    2,  138,   19,
-     23,    0,    0,  139,  140,    0,    0,    0,    0,    2,   63,   43,   21,   78,   45,  141,
-      0,   79,   79,   79,   79,   79,   79,   79,   79,    0,    0,    0,    0,    0,    0,    0,
-      4,  118,  118,  118,  118,  119,    0,    0,    0,    2,    2,    2,    2,    2,    7,    2,
-      2,    2,    7,    2,   28,    2,    2,    2,    2,    2,   28,    2,    2,    2,   28,    7,
-      0,  125,   18,   25,   29,    0,    0,  142,  143,    2,    2,   28,    2,   28,    2,    2,
-      2,    2,    2,    2,    0,   12,   35,    0,  144,    2,    2,   11,   35,    0,   28,    2,
-      2,    2,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,   28,    2,    2,
-      7,    2,    2,    9,   39,    0,    0,    0,    0,    2,    2,    2,    2,    2,   25,   36,
-      0,    2,    2,    2,  114,  114,  114,  114,  114,  145,    2,    7,    0,    0,    0,    0,
-      0,    2,   12,   12,    0,    0,    0,    0,    0,    7,    2,    2,    7,    2,    2,    2,
-      2,   28,    2,    7,    0,   28,    2,    0,    0,  146,  147,  148,    2,    2,    2,    2,
-      2,    2,    2,    2,    2,   20,   20,   18,   18,   18,   20,   20,  131,    0,    0,    0,
-      0,    0,  149,  149,  149,  149,  149,  149,  149,  149,  149,  149,    2,    2,    2,    2,
-      2,   51,   50,   51,    0,    0,    0,    0,  150,    9,   72,    2,    2,    2,    2,    2,
-      2,   16,   17,   19,   14,   22,   35,    0,    0,    0,   29,    0,    0,    0,    0,    0,
-      0,    9,   47,    2,    2,    2,    2,    2,    2,    2,    2,    2,  125,   18,   20,  151,
-     20,   19,  152,  153,    2,    2,    2,    2,    2,    0,    0,   63,  154,    0,    0,    0,
-      0,    2,   11,    0,    0,    0,    0,    0,    0,    2,   63,   23,   18,   18,   18,   20,
-     20,  106,  155,    0,    0,   54,  156,   29,  157,   28,    2,    2,    2,    2,    2,    2,
-      2,    2,    2,    2,    2,    2,    2,   21,   17,   20,   20,  158,   42,    0,    0,    0,
-     47,  125,    0,    0,    0,    0,    0,    0,    0,    2,    2,    2,    7,    7,    2,    2,
-     28,    2,    2,    2,    2,    2,    2,    2,   28,    2,    2,    2,    2,    2,    2,    2,
-      8,   16,   17,   19,   20,  159,   29,    0,    0,    9,    9,   28,    2,    2,    2,    7,
-     28,    7,    2,   28,    2,    2,   56,   15,   21,   14,   21,   45,   30,   31,   30,   32,
-      0,    0,    0,    0,   33,    0,    0,    0,    2,    2,   21,    0,    9,    9,    9,   44,
-      0,    9,    9,   44,    0,    0,    0,    0,    0,    2,    2,   63,   23,   18,   18,   18,
-     20,   21,  123,   13,   15,    0,    0,    0,    0,    2,    2,    2,    2,    2,    0,    0,
-    160,  161,    0,    0,    0,    0,    0,    0,    0,   16,   17,   18,   18,   64,   97,   23,
-    157,    9,  162,    7,    0,    0,    0,    0,    0,    2,    2,    2,    2,    2,    2,    2,
-     63,   23,   18,   18,    0,   46,   46,    9,  163,   35,    0,    0,    0,    0,    0,    0,
-      0,    0,    0,    0,    0,    2,    2,   18,    0,   21,   17,   18,   18,   19,   14,   80,
-    163,   36,    0,    0,    0,    0,    0,    0,    0,    2,    2,    2,    2,    2,    8,  164,
-     23,   18,   20,   20,  162,    7,    0,    0,    0,    2,    2,    2,    2,    2,    7,   41,
-    133,   21,   20,   18,   74,   19,   20,    0,    0,    2,    2,    2,    7,    0,    0,    0,
-      0,    2,    2,    2,    2,    2,    2,   16,   17,   18,   19,   20,  103,  163,   35,    0,
-      0,    2,    2,    2,    7,   28,    0,    2,    2,    2,    2,   28,    7,    2,    2,    2,
-      2,   21,   21,   16,   30,   31,   10,  165,  166,  167,  168,    0,    0,    0,    0,    0,
-      0,    2,    2,    2,    2,    0,    2,    2,    2,   63,   23,   18,   18,    0,   20,   21,
-     27,  106,    0,   31,    0,    0,    0,    0,    0,   50,   18,   20,   20,   20,  137,    2,
-      2,    2,  169,  170,    9,   13,  171,   70,  172,    0,    0,    1,  144,    0,    0,    0,
-      0,   50,   18,   20,   14,   17,   18,    2,    2,    2,    2,  155,  155,  155,  173,  173,
-    173,  173,  173,  173,   13,  174,    0,   28,    0,   20,   18,   18,   29,   20,   20,    9,
-    163,    0,   59,   59,   59,   59,   59,   59,   59,   64,   19,   80,   44,    0,    0,    0,
-      0,    2,    2,    2,    7,    2,   28,    2,    2,   50,   20,   20,   29,    0,   36,   20,
-     25,    9,  156,  175,  171,    0,    0,    0,    0,    2,    2,    2,   28,    7,    2,    2,
-      2,    2,    2,    2,    2,    2,   21,   21,   45,   20,   33,   80,   66,    0,    0,    0,
-      0,    2,  176,   64,   45,    0,    0,    0,    0,    9,  177,    2,    2,    2,    2,    2,
-      2,    2,    2,   21,   20,   18,   29,    0,   46,   14,  140,    0,    0,    0,    0,    0,
-      0,  178,  178,  178,  106,  179,  178,    0,    0,  145,    2,    2,  180,  114,  114,  114,
-    114,  114,  114,  114,    0,    0,    0,    0,    0,    9,    9,    9,   44,    0,    0,    0,
-      0,    2,    2,    2,    2,    2,    7,    0,   56,  181,   18,   18,   18,   18,   18,   18,
-     18,   18,   18,   18,   18,   18,   18,   18,   18,   18,   18,   18,   18,    0,    0,    0,
-     38,  114,   24,    0,    0,    0,    0,    0,    0,    0,    0,    7,    0,    0,    0,    0,
-      0,    2,    2,    2,    0,    0,    0,    0,    0,    2,    2,    2,    2,    2,    0,   56,
-     35,    0,    4,  118,  118,  118,  119,    0,    0,    9,    9,    9,   47,    2,    2,    2,
+      2,    2,    2,   94,    2,    2,   95,    2,    2,    2,   96,    2,    2,    2,    2,    2,
+      2,    2,    2,   97,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
+      2,   98,   98,   99,  100,   98,   98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
+     98,   98,   98,   98,   98,   98,   98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
+     98,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    1,
+      0,    2,    2,    2,    2,    2,    0,    0,    0,    0,    0,    0,    0,    0,    3,    4,
+      0,    5,    0,    0,    0,    0,    0,    6,    0,    0,    7,    0,    0,    0,    0,    0,
+      0,    0,    0,    0,    1,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+      8,    9,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    2,    2,
+      2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,   10,   11,
+     11,   11,   11,    0,    0,    0,    9,   12,    0,    2,    2,    2,    2,   13,   14,    0,
+      0,   11,   15,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,   16,   17,
+     18,   19,   20,   21,   22,   16,   23,   24,   25,   12,   26,   27,   20,    2,    2,    2,
+      2,    2,   20,    0,    2,    2,    2,    2,    2,    0,    2,    2,    2,    2,    2,    2,
+      2,   28,   29,   30,    2,    2,    2,    9,   30,    9,   30,    2,    2,    2,    2,    2,
+      2,    2,    2,    2,    2,    9,    2,    2,    2,    9,    9,    0,    2,    2,    0,   17,
+     18,   19,   20,   31,   32,   33,   32,   34,    0,    0,    0,    0,   35,    0,    0,    2,
+     30,    2,    0,    0,    0,    0,    0,    9,   36,   12,   15,   30,    2,    2,    9,    0,
+     30,    9,    2,   30,    9,    2,    0,   37,   18,   19,   31,    0,   27,   38,   27,   39,
+      0,   40,    0,    0,    0,   30,    2,    9,    9,    0,    0,    0,    2,    2,    2,    2,
+      2,   41,   42,   43,    0,    0,    0,    0,    0,   12,   15,   30,    2,    2,    2,    2,
+     30,    2,   30,    2,    2,    2,    2,    2,    2,    9,    2,   30,    2,    2,    0,   17,
+     18,   19,   20,   21,   27,   22,   35,   24,    0,    0,    0,    0,    0,   30,   41,   41,
+     44,   12,   29,   30,    2,    2,    2,    9,   30,    9,    2,   30,    2,    2,    0,   17,
+     45,    0,    0,   27,   22,    0,    0,    2,   30,   30,    0,    0,    0,    0,    0,    0,
+      0,    0,   46,   30,    2,    2,    9,    0,    2,    9,    2,    2,    0,   30,    9,    9,
+      2,    0,   30,    9,    0,    2,    9,    0,    2,    2,    2,    2,    2,    2,    0,    0,
+     23,   16,   47,    0,   48,   33,   48,   34,    0,    0,    0,    0,   35,    0,    0,    0,
+      0,   15,   29,   49,    2,    2,    2,    9,    2,    9,    2,    2,    2,    2,    2,    2,
+      2,    2,    2,    2,    2,    2,    0,   17,   22,   16,   23,   47,   22,   38,   22,   39,
+      0,    0,    0,   27,   31,    2,    9,    0,    0,   10,   29,   30,    2,    2,    2,    9,
+      2,    2,    2,   30,    2,    2,    0,   17,   45,    0,    0,   35,   47,    0,    0,    0,
+      9,   50,   51,    0,    0,    0,    0,    0,    0,   11,   29,    2,    2,    2,    2,    9,
+      2,    2,    2,    2,    2,    2,   52,   53,   23,   23,   19,   31,   48,   33,   48,   34,
+     54,    0,    0,    0,   35,    0,    0,    0,   30,   12,   29,   30,    2,    2,    2,    2,
+      2,    2,    2,    2,    9,    0,    2,    2,    2,    2,   30,    2,    2,    2,    2,   30,
+      0,    2,    2,    2,    9,    0,   55,    0,   35,   23,   22,   31,   31,   18,   48,   48,
+     25,    0,   23,    0,    0,    0,    0,    0,    0,    2,    0,    2,    9,    0,    0,    0,
+      0,    0,    0,    0,    0,   20,    0,    0,    0,    2,    2,   56,   56,   57,    0,    0,
+     18,    2,    2,    2,    2,   30,    2,    2,    2,    2,    2,    2,    2,    2,    2,    9,
+      0,   58,   21,   59,   22,   22,   20,   20,   46,   21,   11,   31,   11,    2,    2,   60,
+     61,   61,   61,   61,   61,   62,   61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
+     61,   61,   61,   61,   61,   61,   61,   63,    0,    0,    0,    0,   64,    0,    0,    0,
+      0,    2,    2,    2,    2,    2,   65,   45,   59,   66,   22,   22,   67,   68,   69,   70,
+     71,    2,    2,    2,    2,    2,    1,    0,    5,    2,    2,    2,   23,   20,    2,    2,
+     72,   71,   73,   74,   65,   73,   29,   29,    2,   52,   22,   53,    2,    2,    2,    2,
+      2,    2,   75,   76,   77,   29,   29,   78,   79,    2,    2,    2,    2,    2,   29,   45,
+      0,    2,   59,   80,    0,    0,    0,    0,   30,    2,   59,   47,    0,    0,    0,    0,
+      0,    2,   59,    0,    0,    0,    0,    0,    0,    2,    2,    2,    2,    2,    2,    9,
+      2,    9,   59,    0,    0,    0,    0,    0,    0,    2,    2,   81,   45,   22,   59,   20,
+     48,   48,   48,   48,   15,   82,   83,   84,   85,   86,   87,    0,    0,    0,    0,   88,
+      0,    9,    0,    0,   30,    0,   89,   81,   90,    2,    2,    2,    2,    9,    0,    0,
+      0,   42,   42,   91,   92,    2,    2,    2,    2,    2,    2,    2,    2,   13,    9,    0,
+      0,   93,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
+      9,   22,   80,   45,   22,   94,   61,    0,    0,   95,   96,   95,   95,   97,   98,    0,
+      0,    2,    2,    2,    2,    2,    2,    2,    0,    2,    2,    9,    0,    0,    0,    0,
+      0,    2,    2,    2,    2,    2,    2,    0,    0,    2,    2,    2,    2,   29,    0,    0,
+      0,    2,    2,    2,    2,    2,    9,    0,    0,    2,    2,    2,   52,   99,   45,    0,
+      0,    2,    2,  100,  101,  102,  103,   61,   63,  104,   16,   45,   22,   59,   21,   80,
+     48,   48,   76,   11,   11,   11,  105,   46,   40,   11,  106,   74,    2,    2,    2,    2,
+      2,    2,    2,  107,   22,   20,   20,   22,   48,   48,   22,  108,    2,    2,    2,    9,
+      0,    0,    0,    0,    0,    0,  109,  110,  111,  111,  111,    0,    0,    0,    0,    0,
+      0,  106,   74,    2,    2,    2,    2,    2,    2,   60,   61,   59,   25,   22,  112,   61,
+      2,    2,    2,    2,  107,   22,   23,   45,   45,  102,   14,    0,    0,    0,    0,    0,
+      0,    2,    2,   61,   18,   48,   23,  113,  102,  102,  102,  114,  115,    0,    0,    0,
+      0,    2,    2,    2,    2,    2,    0,   30,    2,   11,   46,  116,  116,  116,   11,  116,
+    116,   15,  116,  116,  116,   26,    0,   40,    0,    0,    0,  117,   51,   11,    5,    0,
+      0,    0,    0,    0,    0,    0,  118,    0,    0,    0,    0,    0,    0,    0,    6,  119,
+    120,   42,   42,    5,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,  120,  120,
+    121,  120,  120,  120,  120,  120,  120,  120,  120,    0,    0,  122,    0,    0,    0,    0,
+      0,    0,    7,  122,    0,    0,    0,    0,    0,   46,    0,    0,    0,    0,    0,    0,
+      0,    0,    0,    0,    0,    0,    0,    9,    0,    0,    0,    0,  123,  123,    0,    0,
+      0,    2,    2,    2,    2,    0,    0,    0,   30,    0,    0,    0,    0,    0,    0,    0,
+    124,    0,  123,  123,    0,    0,    0,    0,    0,    2,   53,    2,  108,    2,   10,    2,
+      2,    2,   65,   19,   16,    0,    0,   31,    0,    2,    2,    0,    0,    0,    0,    0,
+      0,   29,    2,    2,    2,    2,    2,    2,    2,    2,    2,  125,   23,   23,   23,   23,
+     23,   23,   23,  126,    0,    0,    0,    0,    0,   11,   11,   11,   11,   11,   11,   11,
+     11,   11,    2,    0,    0,    0,    0,    0,   52,    2,    2,    2,   22,   22,  127,  116,
+      0,    2,    2,    2,  128,   20,   59,   20,  113,  102,  129,    0,    0,    0,    0,    0,
+      0,   11,  130,    2,    2,    2,    2,    2,    2,    2,  131,   23,   22,   20,   48,  132,
+    133,  134,    0,    0,    0,    0,    0,    0,    0,    2,    2,   52,   30,    2,    2,    2,
+      2,    2,    2,    2,    2,   10,   22,   59,   99,   76,  135,  136,  137,    0,    0,    0,
+      0,    2,  138,    2,    2,    2,    2,  139,    0,   30,    2,   42,    5,    0,   79,   15,
+      2,   53,   22,  140,   52,   53,    2,    2,  105,   10,    9,    0,    0,    0,    0,    0,
+      0,    2,    2,    2,    2,    2,  141,   21,   25,    0,    0,  142,  143,    0,    0,    0,
+      0,    2,   65,   45,   23,   80,   47,  144,    0,   81,   81,   81,   81,   81,   81,   81,
+     81,    0,    0,    0,    0,    0,    0,    0,    6,  120,  120,  120,  120,  121,    0,    0,
+      0,    2,    2,    2,    2,    2,    9,    2,    2,    2,    9,    2,   30,    2,    2,    2,
+      2,    2,   30,    2,    2,    2,   30,    9,    0,  128,   20,   27,   31,    0,    0,  145,
+    146,    2,    2,   30,    2,   30,    2,    2,    2,    2,    2,    2,    0,   14,   37,    0,
+    147,    2,    2,   13,   37,    0,   30,    2,    2,    2,    0,    0,    0,    0,    0,    0,
+      0,    0,    0,    0,    0,   30,    2,    2,    9,    2,    2,   11,   41,    0,    0,    0,
+      0,    2,    2,    2,    2,    2,   27,   38,    0,    2,    2,    2,  116,  116,  116,  116,
+    116,  148,    2,    9,    0,    0,    0,    0,    0,    2,   14,   14,    0,    0,    0,    0,
+      0,    9,    2,    2,    9,    2,    2,    2,    2,   30,    2,    9,    0,   30,    2,    0,
+      0,  149,  150,  151,    2,    2,    2,    2,    2,    2,    2,    2,    2,   22,   22,   20,
+     20,   20,   22,   22,  134,    0,    0,    0,    0,    0,  152,  152,  152,  152,  152,  152,
+    152,  152,  152,  152,    2,    2,    2,    2,    2,   53,   52,   53,    0,    0,    0,    0,
+    153,   11,   74,    2,    2,    2,    2,    2,    2,   18,   19,   21,   16,   24,   37,    0,
+      0,    0,   31,    0,    0,    0,    0,    0,    0,   11,   49,    2,    2,    2,    2,    2,
+      2,    2,    2,    2,  128,   20,   22,  154,   22,   21,  155,  156,    2,    2,    2,    2,
+      2,    0,    0,   65,  157,    0,    0,    0,    0,    2,   13,    0,    0,    0,    0,    0,
+      0,    2,   65,   25,   20,   20,   20,   22,   22,  108,  158,    0,    0,   56,  159,   31,
+    160,   30,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,   23,
+     19,   22,   22,  161,   44,    0,    0,    0,   49,  128,    0,    0,    0,    0,    0,    0,
+      0,    2,    2,    2,    9,    9,    2,    2,   30,    2,    2,    2,    2,    2,    2,    2,
+     30,    2,    2,    2,    2,    2,    2,    2,   10,   18,   19,   21,   22,  162,   31,    0,
+      0,   11,   11,   30,    2,    2,    2,    9,   30,    9,    2,   30,    2,    2,   58,   17,
+     23,   16,   23,   47,   32,   33,   32,   34,    0,    0,    0,    0,   35,    0,    0,    0,
+      2,    2,   23,    0,   11,   11,   11,   46,    0,   11,   11,   46,    0,    0,    0,    0,
+      0,    2,    2,   65,   25,   20,   20,   20,   22,   23,  126,   15,   17,    0,    0,    0,
+      0,    2,    2,    2,    2,    2,    0,    0,  163,  164,    0,    0,    0,    0,    0,    0,
+      0,   18,   19,   20,   20,   66,   99,   25,  160,   11,  165,    9,    0,    0,    0,    0,
+      0,    2,    2,    2,    2,    2,    2,    2,   65,   25,   20,   20,    0,   48,   48,   11,
+    166,   37,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    2,    2,   20,
+      0,   23,   19,   20,   20,   21,   16,   82,  166,   38,    0,    0,    0,    0,    0,    0,
+      0,    2,    2,    2,    2,    2,   10,  167,   25,   20,   22,   22,  165,    9,    0,    0,
+      0,    2,    2,    2,    2,    2,    9,   43,  136,   23,   22,   20,   76,   21,   22,    0,
+      0,    2,    2,    2,    9,    0,    0,    0,    0,    2,    2,    2,    2,    2,    2,   18,
+     19,   20,   21,   22,  105,  166,   37,    0,    0,    2,    2,    2,    9,   30,    0,    2,
+      2,    2,    2,   30,    9,    2,    2,    2,    2,   23,   23,   18,   32,   33,   12,  168,
+    169,  170,  171,    0,    0,    0,    0,    0,    0,    2,    2,    2,    2,    0,    2,    2,
+      2,   65,   25,   20,   20,    0,   22,   23,   29,  108,    0,   33,    0,    0,    0,    0,
+      0,   52,   20,   22,   22,   22,  140,    2,    2,    2,  172,  173,   11,   15,  174,   72,
+    175,    0,    0,    1,  147,    0,    0,    0,    0,   52,   20,   22,   16,   19,   20,    2,
+      2,    2,    2,  158,  158,  158,  176,  176,  176,  176,  176,  176,   15,  177,    0,   30,
+      0,   22,   20,   20,   31,   22,   22,   11,  166,    0,   61,   61,   61,   61,   61,   61,
+     61,   66,   21,   82,   46,    0,    0,    0,    0,    2,    2,    2,    9,    2,   30,    2,
+      2,   52,   22,   22,   31,    0,   38,   22,   27,   11,  159,  178,  174,    0,    0,    0,
+      0,    2,    2,    2,   30,    9,    2,    2,    2,    2,    2,    2,    2,    2,   23,   23,
+     47,   22,   35,   82,   68,    0,    0,    0,    0,    2,  179,   66,   47,    0,    0,    0,
+      0,   11,  180,    2,    2,    2,    2,    2,    2,    2,    2,   23,   22,   20,   31,    0,
+     48,   16,  143,    0,    0,    0,    0,    0,    0,  181,  181,  181,  181,  181,  181,  181,
+    181,  182,  182,  182,  183,  184,  182,  181,  181,  185,  181,  181,  186,  187,  187,  187,
+    187,  187,  187,  187,    0,    0,    0,    0,    0,   11,   11,   11,   46,    0,    0,    0,
+      0,    2,    2,    2,    2,    2,    9,    0,   58,  188,   20,   20,   20,   20,   20,   20,
+     20,   20,   20,   20,   20,   20,   20,   20,   20,   20,   20,   20,   20,    0,    0,    0,
+     40,  116,   26,    0,    0,    0,    0,    0,    0,    0,    0,    9,    0,    0,    0,    0,
+      0,    2,    2,    2,    0,    0,    0,    0,    0,    2,    2,    2,    2,    2,    0,   58,
+     37,    0,    6,  120,  120,  120,  121,    0,    0,   11,   11,   11,   49,    2,    2,    2,
       0,    2,    2,    2,    2,    2,    0,    0,    2,    2,    2,    2,    2,    2,    2,    2,
-     44,    2,    2,    2,    2,    2,    2,    9,    9,    2,    2,    2,    2,    2,    2,   20,
-     20,    2,    2,   42,   42,   42,   90,    0,    0,    O,    O,    O,   GB,    B,    B,   GB,
-      O,    O,   WJ,FMPst,FMPst,    O,  CGJ,    B,    O,    B,VMAbv,VMAbv,VMAbv,    O,VMAbv,    B,
-  CMBlw,CMBlw,CMBlw,VMAbv,VMPst, VAbv, VPst,CMBlw,    B, VPst, VPre, VPst, VBlw, VBlw, VBlw, VBlw,
-   VAbv, VAbv, VAbv, VPst, VPst, VPst,    H, VPre, VPst,VMBlw,    O,    O, VAbv,   GB,VMAbv,VMPst,
-  VMPst,    O,    B, VBlw,    O,    O, VPre, VPre,    O, VPre,    H,    O, VPst,FMAbv,    O,CMBlw,
-      O, VAbv,    O, VAbv,    H,    O,VMBlw,VMAbv,CMAbv,   GB,   GB,    O, MBlw,CMAbv,CMAbv, VPst,
-   VAbv,VMAbv,    O, VPst,    O, VPre, VPre,VMAbv,    B,    O,   CS,   CS,VMPst,    B, VAbv, VAbv,
-      B,    R,    O,  HVM,    O,    O,FMBlw,    O,CMAbv,    O,CMBlw, VAbv, VBlw,    B,  SUB,  SUB,
-    SUB,    O,  SUB,  SUB,    O,FMBlw,    O,    B, VPst, VBlw, VPre,VMAbv,VMBlw,VMPst,   IS, VAbv,
-   MPst, MPre, MBlw, MBlw,    B, MBlw, MBlw, VPst,VMPst,VMPst,    B, MBlw, VPst, VPre, VAbv, VAbv,
-  VMPst,VMPst,VMBlw,    B,VMPst, VBlw, VPst,  CGJ,  CGJ, VPst,VMAbv,VMAbv,FMAbv, FAbv,CMAbv,FMAbv,
-  VMAbv,FMAbv, VAbv,   IS,FMAbv,    B,FMAbv,    B,  CGJ,   WJ,  CGJ,   GB,CMAbv,CMAbv,    B,   GB,
-      B, VAbv,  SUB, FPst, FPst,VMBlw, FPst, FPst, FBlw,VMAbv,FMBlw, VAbv, VPre,    B, MPre, MBlw,
-    SUB, FAbv, FAbv, MAbv,  SUB,   Sk, VPst, VAbv,VMAbv,VMAbv, FAbv,CMAbv, VPst,    H,    B,    O,
-  SMAbv,SMBlw,SMAbv,SMAbv,SMAbv, VPst,   IS, VBlw, FAbv,VMPre,VMPre,FMAbv,CMBlw,VMBlw,VMBlw,VMAbv,
-     CS,    O,FMAbv, ZWNJ,  CGJ,   WJ,   WJ,   WJ,    O,FMPst,    O,    O,    H, MPst, VPst,    H,
-  VMAbv, VAbv,VMBlw,    B, VBlw, FPst, VPst, FAbv,VMPst,    B,CMAbv, VAbv, MBlw, MPst, MBlw,    H,
-      O, VBlw, MPst, MPre, MAbv, MBlw,    O,    B, FAbv, FAbv, FPst, VBlw,    B,    B, VPre,    O,
-  VMPst,   IS,    O,VMPst, VBlw, VPst,VMBlw,VMBlw,VMAbv,    O,   IS,VMBlw,    B,VMPst,VMAbv,VMPst,
-     CS,   CS,    B,    N,    N,    O,   HN, VPre, VBlw, VAbv,   IS,CMAbv,    O, VPst,    B,    R,
-      R,CMBlw, VAbv, VPre,VMAbv,VMAbv,    H, VAbv,CMBlw,FMAbv,    B,   CS,   CS,    H,CMBlw,VMPst,
-      H,VMPst, VAbv,VMAbv, VPst,   IS,    R, MPst,    R, MPst,CMBlw,    B,FMBlw, VBlw,VMAbv,    R,
-   MBlw, MBlw,   GB, FBlw, FBlw,CMAbv,   IS, VBlw,   IS,   GB, VAbv,    R,VMPst,    H,    H,    B,
-      H,    B,VMBlw,    O, VBlw,
+     46,    2,    2,    2,    2,    2,    2,   11,   11,    2,    2,    2,    2,    2,    2,   22,
+     22,    2,    2,   44,   44,   44,   92,    0,    0,    O,    O,    O,   GB,    B,    B,    O,
+     SB,    O,   SE,   GB,    O,    O,   WJ,FMPst,FMPst,    O,  CGJ,    B,    O,    B,VMAbv,VMAbv,
+  VMAbv,    O,VMAbv,    B,CMBlw,CMBlw,CMBlw,VMAbv,VMPst, VAbv, VPst,CMBlw,    B, VPst, VPre, VPst,
+   VBlw, VBlw, VBlw, VBlw, VAbv, VAbv, VAbv, VPst, VPst, VPst,    H, VPre, VPst,VMBlw,    O,    O,
+   VAbv,   GB,VMAbv,VMPst,VMPst,    O,    B, VBlw,    O,    O, VPre, VPre,    O, VPre,    H,    O,
+   VPst,FMAbv,    O,CMBlw,    O, VAbv,    O, VAbv,    H,    O,VMBlw,VMAbv,CMAbv,   GB,   GB,    O,
+   MBlw,CMAbv,CMAbv, VPst, VAbv,VMAbv,    O, VPst,    O, VPre, VPre,VMAbv,    B,    O,   CS,   CS,
+  VMPst,    B, VAbv, VAbv,    B,    R,    O,  HVM,    O,    O,FMBlw,    O,CMAbv,    O,CMBlw, VAbv,
+   VBlw,    B,  SUB,  SUB,  SUB,    O,  SUB,  SUB,    O,FMBlw,    O,    B, VPst, VBlw, VPre,VMAbv,
+  VMBlw,VMPst,   IS, VAbv, MPst, MPre, MBlw, MBlw,    B, MBlw, MBlw, VPst,VMPst,VMPst,    B, MBlw,
+   VPst, VPre, VAbv, VAbv,VMPst,VMPst,VMBlw,    B,VMPst, VBlw, VPst,  CGJ,  CGJ, VPst,VMAbv,VMAbv,
+  FMAbv, FAbv,CMAbv,FMAbv,VMAbv,FMAbv, VAbv,   IS,FMAbv,    B,FMAbv,    B,  CGJ,   WJ,  CGJ,   GB,
+  CMAbv,CMAbv,    B,   GB,    B, VAbv,  SUB, FPst, FPst,VMBlw, FPst, FPst, FBlw,VMAbv,FMBlw, VAbv,
+   VPre,    B, MPre, MBlw,  SUB, FAbv, FAbv, MAbv,  SUB,   Sk, VPst, VAbv,VMAbv,VMAbv, FAbv,CMAbv,
+   VPst,    H,    B,    O,SMAbv,SMBlw,SMAbv,SMAbv,SMAbv, VPst,   IS, VBlw, FAbv,VMPre,VMPre,FMAbv,
+  CMBlw,VMBlw,VMBlw,VMAbv,   CS,    O,FMAbv, ZWNJ,  CGJ,   WJ,   WJ,   WJ,    O,FMPst,    O,   SB,
+     SE,    O,    H, MPst, VPst,    H,VMAbv, VAbv,VMBlw,    B, VBlw, FPst, VPst, FAbv,VMPst,    B,
+  CMAbv, VAbv, MBlw, MPst, MBlw,    H,    O, VBlw, MPst, MPre, MAbv, MBlw,    O,    B, FAbv, FAbv,
+   FPst, VBlw,    B,    B, VPre,    O,VMPst,   IS,    O,VMPst, VBlw, VPst,VMBlw,VMBlw,VMAbv,    O,
+     IS,VMBlw,    B,VMPst,VMAbv,VMPst,   CS,   CS,    B,    N,    N,    O,   HN, VPre, VBlw, VAbv,
+     IS,CMAbv,    O, VPst,    B,    R,    R,CMBlw, VAbv, VPre,VMAbv,VMAbv,    H, VAbv,CMBlw,FMAbv,
+      B,   CS,   CS,    H,CMBlw,VMPst,    H,VMPst, VAbv,VMAbv, VPst,   IS,    R, MPst,    R, MPst,
+  CMBlw,    B,FMBlw, VBlw,VMAbv,    R, MBlw, MBlw,   GB, FBlw, FBlw,CMAbv,   IS, VBlw,   IS,   GB,
+   VAbv,    R,VMPst,    G,    G,    J,    J,    J,   SB,   SE,    J,   HR,    G,    G,   HM,   HM,
+     HM,    O, VBlw,
 };
 static const uint16_t
-hb_use_u16[784] =
+hb_use_u16[808] =
 {
-    0,  0,  1,  2,  0,  0,  0,  0,  0,  0,  3,  4,  0,  5,  0,  0,
-    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  6,  0,  0,  0,
-    0,  0,  0,  0,  7,  0,  0,  0,  0,  0,  0,  0,  8,  9, 10, 11,
-    0,  0,  0,  0,  9, 12,  0,  0, 13,  9,  9, 14, 15, 16, 17, 18,
-   19, 20, 21, 22, 23, 24, 17, 25, 26, 20, 21, 27, 28, 29, 30, 31,
-   32, 33, 21, 34, 35,  0, 17, 36, 37, 20, 21, 38, 23, 39, 17, 40,
-   41, 42, 43, 44, 45, 46, 30,  0, 47, 48, 21, 49, 50, 51, 17,  0,
-   52, 48, 21, 53, 50, 54, 17, 55, 56, 48,  9, 57, 58, 59, 17,  0,
-   60, 61,  9, 62, 63, 64, 30, 65, 66, 67,  9, 68, 69,  9, 70, 71,
-   72, 73, 74, 75, 76,  0,  0,  0,  9,  9, 77, 78, 79, 80, 81, 82,
-   83, 84,  0,  0,  0,  0,  0,  0,  9, 85,  9, 86,  9, 87, 88, 89,
-    9,  9,  9, 90, 91, 92,  2,  0, 93,  0,  9,  9,  9,  9,  9, 94,
-   95,  9, 96,  0,  0,  0,  0,  0, 97, 98, 99,100, 30,  9,101,102,
-    9,  9,103,  9,104,105,  0,  0,  9,106,  9,  9,  9,107,108,109,
-    2,  2,  0,  0,  0,  0,  0,  0,110,  9,  9,111,112,  2,113,114,
-  115,  9,116,  9,  9,  9,117,118,  9,  9,119,120,121,  0,  0,  0,
-    0,  0,  0,  0,  0,122,123,124,  0,  0,  0,  0,  0,  0,  0,125,
-  126,127,128,  0,  0,  0,129,130,131,  0,  0,  0,  0,  0,  0,132,
-    0,  0,  0,  0,133,  0,  0,  0,  0,  0,  0,  9,  9,  9,134,135,
-  136,  9,137,  0,  9,  9,  9,138,139,  9,  9,140,141,  2,142,143,
-    9,  9,144,  9,145,146,  0,  0,147,  9,  9,148,149,  2,150, 98,
-    9,  9,151,152,153,  2,  9,154,  9,  9,  9,155,156,  0,157,158,
-    0,  0,  0,  0,  9,  9,159,  2,160,  0,  0,  0,  0,  0,  0,  0,
-    0,  0,  0,  0,  0,  0,  0,161,  0,  0,  0,  0,  0,  0,  0,162,
-    0,  0,  0,  0,  0,  0,  0,163,163,164, 33,165,  0,  0,  0,  0,
-  166,167,  9,168, 94,  0,  0,  0,  0,  0,  0,  0, 69,  9,169,  0,
-    9,170,171,  0,  0,  0,  0,  0,  9,  9,172,  2,  0,  0,  0,  0,
-    9,  9,173,170,  0,  0,  0,  0,  0,  0,  0,  9,174,175,  0,  9,
-  176,  0,  0,177,178,  0,  0,  0,179,  9,  9,180,181,182,183,184,
-  185,  9,  9,186,187,  0,  0,  0,188,  9,189,190,191,  9,  9,192,
-  185,  9,  9,193,194,105,195,102,  9, 33,196,197,198,  0,  0,  0,
-  199,200, 94,  9,  9,201,202,  2,203, 20, 21,204,205,206,207,208,
-    9,  9,  9,209,210,211,212,  0,195,  9,  9,213,214,  2,  0,  0,
-    9,  9,215,216,217,218,  0,  0,  9,  9,  9,219,220,  2,  0,  0,
-    9,  9,221,222,  2,  0,  0,  0,  9,223,224,103,225,  0,  0,  0,
-    9,  9,226,227,  0,  0,  0,  0,228,229,  9,230,231,  2,  0,  0,
-    0,  0,232,  9,  9,233,234,  0,235,  9,  9,236,237,238,  9,  9,
-  239,240,  0,  0,  0,  0,  0,  0, 21,  9,215,241,  7,  9, 70, 18,
-    9,242, 73,243,  0,  0,  0,  0,244,  9,  9,245,246,  2,247,  9,
-  248,249,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  9,250,
-  251, 48,  9,252,253,  2,  0,  0,  9,  9,  9,  9,  9,  9,  9,  9,
-    9,  9,  9,254,255,256,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,
-    9,  9,  9,257,  0,  0,  0,  0,  9,  9,  9,  9,258,259,260,260,
-  261,262,  0,  0,  0,  0,263,  0,  9,  9,  9,  9,  9,264,  0,  0,
-    9,  9,  9,  9,  9,  9,105, 70, 94,265,  0,  0,  0,  0,  0,  0,
-    0,  0,  0,  0,  0,  0,  0,266,  9,  9, 70,267,268,  0,  0,  0,
-    0,  9,269,  0,  9,  9,270,  2,  0,  0,  0,  0,  0,  9,271,  2,
-    9,  9,  9,  9,272,  2,  0,  0,129,129,129,129,129,129,129,129,
-  160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,129,
+    0,  0,  1,  2,  0,  3,  0,  3,  0,  0,  4,  5,  0,  6,  0,  0,
+    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,  0,  0,  0,
+    0,  0,  0,  0,  8,  0,  0,  0,  0,  0,  0,  0,  9, 10, 11, 12,
+    0,  0,  0,  0, 10, 13,  0,  0, 14, 10, 10, 15, 16, 17, 18, 19,
+   20, 21, 22, 23, 24, 25, 18, 26, 27, 21, 22, 28, 29, 30, 31, 32,
+   33, 34, 22, 35, 36,  0, 18, 37, 38, 21, 22, 39, 24, 40, 18, 41,
+   42, 43, 44, 45, 46, 47, 31,  0, 48, 49, 22, 50, 51, 52, 18,  0,
+   53, 49, 22, 54, 51, 55, 18, 56, 57, 49, 10, 58, 59, 60, 18,  0,
+   61, 62, 10, 63, 64, 65, 31, 66, 67, 68, 10, 69, 70, 10, 71, 72,
+   73, 74, 75, 76, 77,  0,  0,  0, 10, 10, 78, 79, 80, 81, 82, 83,
+   84, 85,  0,  0,  0,  0,  0,  0, 10, 86, 10, 87, 10, 88, 89, 90,
+   10, 10, 10, 91, 92, 93,  2,  0, 94,  0, 10, 10, 10, 10, 10, 95,
+   96, 10, 97,  0,  0,  0,  0,  0, 98, 99,100,101, 31, 10,102,103,
+   10, 10,104, 10,105,106,  0,  0, 10,107, 10, 10, 10,108,109,110,
+    2,  2,  0,  0,  0,  0,  0,  0,111, 10, 10,112,113,  2,114,115,
+  116, 10,117, 10, 10, 10,118,119, 10, 10,120,121,122,  0,  0,  0,
+    0,  0,  0,  0,  0,123,124,125,  0,  0,  0,  0,  0,  0,  0,126,
+  127,128,129,  0,  0,  0,130,131,132,  0,  0,  0,  0,  0,  0,133,
+    0,  0,  0,  0,134,  0,  0,  0,  0,  0,  0,  0,  0,  0,135,  0,
+    0,  0,  0, 10, 10, 10,136,137,  0,  0,138,  0,  0,  0,  0,  0,
+  139, 10,140,  0, 10, 10, 10,141,142, 10, 10,143,144,  2,145,146,
+   10, 10,147, 10,148,149,  0,  0,150, 10, 10,151,152,  2,153, 99,
+   10, 10,154,155,156,  2, 10,157, 10, 10, 10,158,159,  0,160,161,
+    0,  0,  0,  0, 10, 10,162,  2,163,  0,  0,  0,  0,  0,  0,  0,
+    0,  0,  0,  0,  0,  0,  0,164,  0,  0,  0,  0,  0,  0,  0,165,
+    0,  0,  0,  0,  0,  0,  0,166,166,167, 34,168,  0,  0,  0,  0,
+  169,170, 10,171, 95,  0,  0,  0,  0,  0,  0,  0, 70, 10,172,  0,
+   10,173,174,  0,  0,  0,  0,  0, 10, 10,175,  2,  0,  0,  0,  0,
+   10, 10,176,173,  0,  0,  0,  0,  0,  0,  0, 10,177,178,  0, 10,
+  179,  0,  0,180,181,  0,  0,  0,182, 10, 10,183,184,185,186,187,
+  188, 10, 10,189,190,  0,  0,  0,191, 10,192,193,194, 10, 10,195,
+  188, 10, 10,196,197,106,198,103, 10, 34,199,200,201,  0,  0,  0,
+  202,203, 95, 10, 10,204,205,  2,206, 21, 22,207,208,209,210,211,
+   10, 10, 10,212,213,214,215,  0,198, 10, 10,216,217,  2,  0,  0,
+   10, 10,218,219,220,221,  0,  0, 10, 10, 10,222,223,  2,  0,  0,
+   10, 10,224,225,  2,  0,  0,  0, 10,226,227,104,228,  0,  0,  0,
+   10, 10,229,230,  0,  0,  0,  0,231,232, 10,233,234,  2,  0,  0,
+    0,  0,235, 10, 10,236,237,  0,238, 10, 10,239,240,241, 10, 10,
+  242,243,  0,  0,  0,  0,  0,  0, 22, 10,218,244,  8, 10, 71, 19,
+   10,245, 74,246,  0,  0,  0,  0,247, 10, 10,248,249,  2,250, 10,
+  251,252,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 10,253,
+  254, 49, 10,255,256,  2,  0,  0,257,257,257,257,257,257,257,257,
+  257,257,257,258,259,260,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,
+   10, 10, 10,261,  0,  0,  0,  0, 10, 10, 10, 10,262,263,264,264,
+  265,266,  0,  0,  0,  0,267,  0, 10, 10, 10, 10, 10, 10, 10, 10,
+   10, 10, 10, 10, 10,268,  0,  0, 10, 10, 10, 10, 10, 10,106, 71,
+   95,269,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,270,
+   10, 10, 71,271,272,  0,  0,  0,  0, 10,273,  0, 10, 10,274,  2,
+    0,  0,  0,  0,  0, 10,275,  2, 10, 10, 10, 10,276,  2,  0,  0,
+  130,130,130,130,130,130,130,130,163,163,163,163,163,163,163,163,
+  163,163,163,163,163,163,163,130,
 };
 
 static inline unsigned
@@ -357,14 +366,14 @@
 static inline uint_fast8_t
 hb_use_get_category (unsigned u)
 {
-  return u<921600u?hb_use_u8[2777+(((hb_use_u8[593+(((hb_use_u16[((hb_use_u8[113+(((hb_use_b4(hb_use_u8,u>>1>>3>>3>>5))<<5)+((u>>1>>3>>3)&31u))])<<3)+((u>>1>>3)&7u)])<<3)+((u>>1)&7u))])<<1)+((u)&1u))]:O;
+  return u<921600u?hb_use_u8[2809+(((hb_use_u8[593+(((hb_use_u16[((hb_use_u8[113+(((hb_use_b4(hb_use_u8,u>>1>>3>>3>>5))<<5)+((u>>1>>3>>3)&31u))])<<3)+((u>>1>>3)&7u)])<<3)+((u>>1)&7u))])<<1)+((u)&1u))]:O;
 }
 
 
 #else
 
 static const uint8_t
-hb_use_u8[3413] =
+hb_use_u8[3483] =
 {
      16,   50,   51,   51,   51,   52,   51,   83,  118,  131,   51,   57,   58,  179,  195,   61,
      51,   51,   51,   51,   51,   51,   51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
@@ -375,243 +384,248 @@
      51,   51,   51,   51,   51,   51,   51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
      14,    0,    1,    1,    2,    1,    1,    3,    4,    5,    6,    7,    8,    9,   10,    1,
      11,   12,    1,    1,    1,    1,    1,    1,   13,   14,   15,   16,   17,   18,   19,    1,
-      1,   20,    1,    1,    1,    1,   21,    1,    1,    1,    1,    1,    1,    1,   22,    1,
+      1,   20,    1,    1,    1,    1,   21,    1,   22,    1,    1,    1,    1,    1,   23,   24,
       1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-      1,    1,    1,    1,    1,    1,    1,    1,    1,   23,   24,   25,   26,    1,    1,    1,
-      1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,   27,
-     28,    1,    1,    1,    1,    1,   29,    1,    1,    1,    1,   30,   31,    1,   32,   33,
-     34,   35,   36,   37,   38,   39,   40,   41,   42,   43,   44,   45,    1,   46,   47,   48,
-     49,   50,   50,   50,   50,   51,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-      1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,   52,   53,    1,    1,    1,
-     54,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,   50,   55,    1,    1,
-      1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,   56,    1,    1,
-      1,    1,   57,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-      1,    1,   58,   59,    1,   60,    1,    1,    1,    1,   61,    1,    1,    1,    1,    1,
-      1,   62,   63,   62,   62,   62,   62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
-     62,    0,    1,    0,    0,    0,    2,    3,    0,    0,    0,    0,    0,    0,    0,    0,
-      0,    0,    0,    4,    0,    0,    0,    0,    0,    0,    0,    5,    0,    0,    0,    0,
-      0,    0,    0,    0,    0,    0,    0,    6,    7,    0,    0,    8,    0,    0,    0,    0,
-      0,    9,   10,   11,   12,   13,   14,   15,   16,   17,   18,   19,   20,   21,   22,   23,
-     24,   25,   26,   27,   28,   29,   30,   31,   32,   33,   34,   35,   36,   37,   38,   39,
-     40,   41,   42,   43,   36,   44,   45,   46,   47,   48,   49,   50,   51,   52,   53,   54,
-      0,   55,   56,   57,   58,   59,    0,    0,    0,   60,   61,   62,   63,   55,   64,   65,
-     66,   67,   55,   55,   68,   69,   70,    0,    0,   71,   72,   73,   74,   55,   75,   76,
-      0,   77,   55,   78,   79,   80,    0,    0,    0,   81,   82,   83,   84,   85,   86,   55,
-     87,   55,   88,   89,    0,    0,    0,   90,   91,    0,    0,    0,    0,    0,    0,    0,
-     92,   93,   94,    0,   95,   96,    0,    0,   97,    0,    0,    0,    0,    0,    0,   98,
-      0,    0,   99,   55,  100,    0,    0,    0,    0,  101,  102,   55,  103,  104,  105,  106,
-    107,   55,  108,  109,    0,  110,  111,  112,  113,   55,  114,  115,  116,   55,  117,  118,
-    119,    0,    0,    0,    0,    0,    0,   55,  120,  121,    0,    0,    0,    0,    0,    0,
-    122,    0,    0,    0,    0,    0,    0,    0,  123,    0,    0,    0,  124,  125,  126,    0,
-      0,  127,  128,  129,    0,    0,    0,   50,  130,    0,    0,    0,    0,  131,  132,    0,
-      0,   55,  133,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,   55,  134,    0,
-      0,    0,   99,  135,   99,  136,  137,  138,    0,  139,  140,  141,  142,  143,  144,  145,
-      0,  146,  147,  148,  149,  143,  150,  151,  152,  153,  154,  155,    0,  156,  157,  158,
-    159,  160,  161,  162,  163,    0,    0,    0,    0,   55,  164,  165,  166,  167,  168,  169,
-      0,    0,    0,    0,    0,   55,  170,  171,    0,   55,  172,  173,    0,   55,  174,   66,
-      0,  175,  176,  177,    0,    0,    0,    0,    0,   55,  178,    0,    0,    0,    0,    0,
-      0,  179,  180,  181,    0,    0,  182,  183,  184,  185,  186,  187,   55,  188,    0,    0,
-      0,  189,  190,  191,  192,  193,  194,    0,    0,  195,  196,  197,  198,  199,   66,    0,
-      0,    0,    0,    0,    0,    0,    0,    0,  200,  201,  202,  203,    0,    0,    0,    0,
-      0,   55,   55,   55,   55,   55,   55,   55,   55,   55,  204,  205,    0,    0,    0,    0,
-      0,    0,    0,    0,    0,    0,    0,   66,    0,   55,  206,    0,    0,    0,    0,    0,
-      0,   55,   55,  207,  208,  209,    0,    0,  210,   55,   55,   55,   55,   55,   55,  211,
-      0,   55,   55,   55,  212,  213,    0,    0,    0,    0,    0,    0,  214,    0,    0,    0,
-      0,   55,  215,  216,    0,    0,    0,    0,    0,    0,    0,    0,    0,   99,  217,   55,
-    218,    0,    0,    0,    0,    0,    0,   99,  219,   55,   55,  220,    0,    0,    0,    0,
-      0,  221,  221,  221,  221,  221,  221,  221,  221,  222,  222,  222,  222,  222,  222,  222,
-    223,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    1,
-      0,    2,    2,    2,    2,    2,    0,    0,    0,    3,    0,    0,    0,    0,    0,    4,
-      0,    0,    5,    0,    0,    0,    0,    0,    0,    0,    0,    0,    1,    0,    0,    0,
-      0,    0,    0,    0,    0,    0,    0,    0,    6,    7,    0,    0,    0,    0,    0,    0,
+      1,    1,    1,    1,    1,    1,    1,    1,    1,   25,   26,   27,   28,    1,    1,    1,
+      1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,   29,
+     30,    1,    1,    1,    1,    1,   31,    1,    1,    1,    1,   32,   33,    1,   34,   35,
+     36,   37,   38,   39,   40,   41,   42,   43,   44,   45,   46,   47,    1,   48,   49,   50,
+     51,   52,   52,   52,   52,   53,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+      1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,   54,   55,    1,    1,    1,
+     56,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,   57,   58,    1,    1,
+      1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,   59,    1,    1,
+      1,    1,   60,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+      1,    1,   61,   62,    1,   63,    1,    1,    1,    1,   64,    1,    1,    1,    1,    1,
+      1,   65,   66,   65,   65,   65,   65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
+     65,    0,    1,    2,    2,    0,    3,    4,    0,    0,    0,    0,    0,    0,    0,    0,
+      0,    0,    0,    5,    0,    0,    0,    0,    0,    0,    0,    6,    0,    0,    0,    0,
+      0,    0,    0,    0,    0,    0,    0,    7,    8,    0,    0,    9,    0,    0,    0,    0,
+      0,   10,   11,   12,   13,   14,   15,   16,   17,   18,   19,   20,   21,   22,   23,   24,
+     25,   26,   27,   28,   29,   30,   31,   32,   33,   34,   35,   36,   37,   38,   39,   40,
+     41,   42,   43,   44,   37,   45,   46,   47,   48,   49,   50,   51,   52,   53,   54,   55,
+      0,   56,   57,   58,   59,   60,    0,    0,    0,   61,   62,   63,   64,   56,   65,   66,
+     67,   68,   56,   56,   69,   70,   71,    0,    0,   72,   73,   74,   75,   56,   76,   77,
+      0,   78,   56,   79,   80,   81,    0,    0,    0,   82,   83,   84,   85,   86,   87,   56,
+     88,   56,   89,   90,    0,    0,    0,   91,   92,    0,    0,    0,    0,    0,    0,    0,
+     93,   94,   95,    0,   96,   97,    0,    0,   98,    0,    0,    0,    0,    0,    0,   99,
+      0,    0,    0,    0,    0,    0,    0,    0,  100,    0,  101,   56,  102,    0,    0,    0,
+      0,    0,  103,    0,    0,    0,    0,    0,    0,  104,  105,   56,  106,  107,  108,  109,
+    110,   56,  111,  112,    0,  113,  114,  115,  116,   56,  117,  118,  119,   56,  120,  121,
+    122,    0,    0,    0,    0,    0,    0,   56,  123,  124,    0,    0,    0,    0,    0,    0,
+    125,    0,    0,    0,    0,    0,    0,    0,  126,    0,    0,    0,  127,  128,  129,    0,
+      0,  130,  131,  132,    0,    0,    0,   51,  133,    0,    0,    0,    0,  134,  135,    0,
+      0,   56,  136,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,   56,  137,    0,
+      0,    0,  101,  138,  101,  139,  140,  141,    0,  142,  143,  144,  145,  146,  147,  148,
+      0,  149,  150,  151,  152,  146,  153,  154,  155,  156,  157,  158,    0,  159,  160,  161,
+    162,  163,  164,  165,  166,    0,    0,    0,    0,   56,  167,  168,  169,  170,  171,  172,
+      0,    0,    0,    0,    0,   56,  173,  174,    0,   56,  175,  176,    0,   56,  177,   67,
+      0,  178,  179,  180,    0,    0,    0,    0,    0,   56,  181,    0,    0,    0,    0,    0,
+      0,  182,  183,  184,    0,    0,  185,  186,  187,  188,  189,  190,   56,  191,    0,    0,
+      0,  192,  193,  194,  195,  196,  197,    0,    0,  198,  199,  200,  201,  202,   67,    0,
+      0,    0,    0,    0,    0,    0,    0,    0,  203,  204,  205,  206,    0,    0,    0,    0,
+      0,  207,  207,  207,  207,  207,  207,  207,  207,  207,  208,  209,    0,    0,    0,    0,
+      0,    0,    0,    0,    0,    0,    0,   67,    0,   56,  210,    0,    0,    0,    0,    0,
+      0,   56,   56,  211,  212,  213,    0,    0,  214,   56,   56,   56,   56,   56,   56,   56,
+     56,   56,   56,   56,   56,   56,   56,  215,    0,   56,   56,   56,  216,  217,    0,    0,
+      0,    0,    0,    0,  218,    0,    0,    0,    0,   56,  219,  220,    0,    0,    0,    0,
+      0,    0,    0,    0,    0,  101,  221,   56,  222,    0,    0,    0,    0,    0,    0,  101,
+    223,   56,   56,  224,    0,    0,    0,    0,    0,  225,  225,  225,  225,  225,  225,  225,
+    225,  226,  226,  226,  226,  226,  226,  226,  227,    0,    0,    0,    0,    0,    0,    0,
+      0,    0,    0,    0,    0,    0,    0,    1,    0,    2,    2,    2,    2,    2,    0,    0,
+      0,    0,    0,    0,    0,    0,    3,    4,    0,    5,    0,    0,    0,    0,    0,    6,
+      0,    0,    7,    0,    0,    0,    0,    0,    0,    0,    0,    0,    1,    0,    0,    0,
+      0,    0,    0,    0,    0,    0,    0,    0,    8,    9,    0,    0,    0,    0,    0,    0,
       0,    0,    0,    0,    0,    0,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
-      2,    2,    2,    2,    2,    2,    8,    9,    9,    9,    9,    0,    0,    0,    7,   10,
-      0,    2,    2,    2,    2,   11,   12,    0,    0,    9,   13,    2,    2,    2,    2,    2,
-      2,    2,    2,    2,    2,    2,   14,   15,   16,   17,   18,   19,   20,   14,   21,   22,
-     23,   10,   24,   25,   18,    2,    2,    2,    2,    2,   18,    0,    2,    2,    2,    2,
-      2,    0,    2,    2,    2,    2,    2,    2,    2,   26,   27,   28,    2,    2,    2,    7,
-     28,    7,   28,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    7,    2,    2,
-      2,    7,    7,    0,    2,    2,    0,   15,   16,   17,   18,   29,   30,   31,   30,   32,
-      0,    0,    0,    0,   33,    0,    0,    2,   28,    2,    0,    0,    0,    0,    0,    7,
-     34,   10,   13,   28,    2,    2,    7,    0,   28,    7,    2,   28,    7,    2,    0,   35,
-     16,   17,   29,    0,   25,   36,   25,   37,    0,   38,    0,    0,    0,   28,    2,    7,
-      7,    0,    0,    0,    2,    2,    2,    2,    2,   39,   40,   41,    0,    0,    0,    0,
-      0,   10,   13,   28,    2,    2,    2,    2,   28,    2,   28,    2,    2,    2,    2,    2,
-      2,    7,    2,   28,    2,    2,    0,   15,   16,   17,   18,   19,   25,   20,   33,   22,
-      0,    0,    0,    0,    0,   28,   39,   39,   42,   10,   27,   28,    2,    2,    2,    7,
-     28,    7,    2,   28,    2,    2,    0,   15,   43,    0,    0,   25,   20,    0,    0,    2,
-     28,   28,    0,    0,    0,    0,    0,    0,    0,    0,   44,   28,    2,    2,    7,    0,
-      2,    7,    2,    2,    0,   28,    7,    7,    2,    0,   28,    7,    0,    2,    7,    0,
-      2,    2,    2,    2,    2,    2,    0,    0,   21,   14,   45,    0,   46,   31,   46,   32,
-      0,    0,    0,    0,   33,    0,    0,    0,    0,   13,   27,   47,    2,    2,    2,    7,
-      2,    7,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    0,   15,
-     20,   14,   21,   45,   20,   36,   20,   37,    0,    0,    0,   25,   29,    2,    7,    0,
-      0,    8,   27,   28,    2,    2,    2,    7,    2,    2,    2,   28,    2,    2,    0,   15,
-     43,    0,    0,   33,   45,    0,    0,    0,    7,   48,   49,    0,    0,    0,    0,    0,
-      0,    9,   27,    2,    2,    2,    2,    7,    2,    2,    2,    2,    2,    2,   50,   51,
-     21,   21,   17,   29,   46,   31,   46,   32,   52,    0,    0,    0,   33,    0,    0,    0,
-     28,   10,   27,   28,    2,    2,    2,    2,    2,    2,    2,    2,    7,    0,    2,    2,
-      2,    2,   28,    2,    2,    2,    2,   28,    0,    2,    2,    2,    7,    0,   53,    0,
-     33,   21,   20,   29,   29,   16,   46,   46,   23,    0,   21,    0,    0,    0,    0,    0,
-      0,    2,    0,    2,    7,    0,    0,    0,    0,    0,    0,    0,    0,   18,    0,    0,
-      0,    2,    2,   54,   54,   55,    0,    0,   16,    2,    2,    2,    2,   28,    2,    2,
-      2,    2,    2,    2,    2,    2,    2,    7,    0,   56,   19,   57,   20,   20,   18,   18,
-     44,   19,    9,   29,    9,    2,    2,   58,   59,   59,   59,   59,   59,   60,   59,   59,
-     59,   59,   59,   59,   59,   59,   59,   59,   59,   59,   59,   59,   59,   59,   59,   61,
-      0,    0,    0,    0,   62,    0,    0,    0,    0,    2,    2,    2,    2,    2,   63,   43,
-     57,   64,   20,   20,   65,   66,   67,   68,   69,    2,    2,    2,    2,    2,    1,    0,
-      3,    2,    2,    2,   21,   18,    2,    2,   70,   69,   71,   72,   63,   71,   27,   27,
-      2,   50,   20,   51,    2,    2,    2,    2,    2,    2,   73,   74,   75,   27,   27,   76,
-     77,    2,    2,    2,    2,    2,   27,   43,    0,    2,   57,   78,    0,    0,    0,    0,
-     28,    2,   57,   45,    0,    0,    0,    0,    0,    2,   57,    0,    0,    0,    0,    0,
-      0,    2,    2,    2,    2,    2,    2,    7,    2,    7,   57,    0,    0,    0,    0,    0,
-      0,    2,    2,   79,   43,   20,   57,   18,   46,   46,   46,   46,   13,   80,   81,   82,
-     83,   84,   85,    0,    0,    0,    0,   86,    0,    7,    0,    0,   28,    0,   87,   79,
-     88,    2,    2,    2,    2,    7,    0,    0,    0,   40,   40,   89,   90,    2,    2,    2,
-      2,    2,    2,    2,    2,   11,    7,    0,    0,   91,    2,    2,    2,    2,    2,    2,
-      2,    2,    2,    2,    2,    2,    2,    2,    7,   20,   78,   43,   20,   92,   59,    0,
-      0,   93,   94,   93,   93,   95,   96,    0,    0,    2,    2,    2,    2,    2,    2,    2,
-      0,    2,    2,    7,    0,    0,    0,    0,    0,    2,    2,    2,    2,    2,    2,    0,
-      0,    2,    2,    2,    2,   27,    0,    0,    0,    2,    2,    2,    2,    2,    7,    0,
-      0,    2,    2,    2,   50,   97,   43,    0,    0,    2,    2,   98,   99,  100,  101,   59,
-     61,  102,   14,   43,   20,   57,   19,   78,   46,   46,   74,    9,    9,    9,  103,   44,
-     38,    9,  104,   72,    2,    2,    2,    2,    2,    2,    2,  105,   20,   18,   18,   20,
-     46,   46,   20,  106,    2,    2,    2,    7,    0,    0,    0,    0,    0,    0,  107,  108,
-    109,  109,  109,    0,    0,    0,    0,    0,    0,  104,   72,    2,    2,    2,    2,    2,
-      2,   58,   59,   57,   23,   20,  110,   59,    2,    2,    2,    2,  105,   20,   21,   43,
-     43,  100,   12,    0,    0,    0,    0,    0,    0,    2,    2,   59,   16,   46,   21,  111,
-    100,  100,  100,  112,  113,    0,    0,    0,    0,    2,    2,    2,    2,    2,    0,   28,
-      2,    9,   44,  114,  114,  114,    9,  114,  114,   13,  114,  114,  114,   24,    0,   38,
-      0,    0,    0,  115,   49,    9,    3,    0,    0,    0,    0,    0,    0,    0,  116,    0,
-      0,    0,    0,    0,    0,    0,    4,  117,  118,   40,   40,    3,    0,    0,    0,    0,
-      0,    0,    0,    0,    0,    0,  118,  118,  119,  118,  118,  118,  118,  118,  118,  118,
-    118,    0,    0,  120,    0,    0,    0,    0,    0,    0,    5,  120,    0,    0,    0,    0,
-      0,   44,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    7,
-      0,    2,    2,    2,    2,    0,    0,    0,   28,    0,    0,    0,    0,    0,    0,    0,
-    121,    2,   51,    2,  106,    2,    8,    2,    2,    2,   63,   17,   14,    0,    0,   29,
-      0,    2,    2,    0,    0,    0,    0,    0,    0,   27,    2,    2,    2,    2,    2,    2,
-      2,    2,    2,  122,   21,   21,   21,   21,   21,   21,   21,  123,    0,    0,    0,    0,
-      0,    9,    9,    9,    9,    9,    9,    9,    9,    9,    2,    0,    0,    0,    0,    0,
-     50,    2,    2,    2,   20,   20,  124,  114,    0,    2,    2,    2,  125,   18,   57,   18,
-    111,  100,  126,    0,    0,    0,    0,    0,    0,    9,  127,    2,    2,    2,    2,    2,
-      2,    2,  128,   21,   20,   18,   46,  129,  130,  131,    0,    0,    0,    0,    0,    0,
-      0,    2,    2,   50,   28,    2,    2,    2,    2,    2,    2,    2,    2,    8,   20,   57,
-     97,   74,  132,  133,  134,    0,    0,    0,    0,    2,  135,    2,    2,    2,    2,  136,
-      0,   28,    2,   40,    3,    0,   77,   13,    2,   51,   20,  137,   50,   51,    2,    2,
-    103,    8,    7,    0,    0,    0,    0,    0,    0,    2,    2,    2,    2,    2,  138,   19,
-     23,    0,    0,  139,  140,    0,    0,    0,    0,    2,   63,   43,   21,   78,   45,  141,
-      0,   79,   79,   79,   79,   79,   79,   79,   79,    0,    0,    0,    0,    0,    0,    0,
-      4,  118,  118,  118,  118,  119,    0,    0,    0,    2,    2,    2,    2,    2,    7,    2,
-      2,    2,    7,    2,   28,    2,    2,    2,    2,    2,   28,    2,    2,    2,   28,    7,
-      0,  125,   18,   25,   29,    0,    0,  142,  143,    2,    2,   28,    2,   28,    2,    2,
-      2,    2,    2,    2,    0,   12,   35,    0,  144,    2,    2,   11,   35,    0,   28,    2,
-      2,    2,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,   28,    2,    2,
-      7,    2,    2,    9,   39,    0,    0,    0,    0,    2,    2,    2,    2,    2,   25,   36,
-      0,    2,    2,    2,  114,  114,  114,  114,  114,  145,    2,    7,    0,    0,    0,    0,
-      0,    2,   12,   12,    0,    0,    0,    0,    0,    7,    2,    2,    7,    2,    2,    2,
-      2,   28,    2,    7,    0,   28,    2,    0,    0,  146,  147,  148,    2,    2,    2,    2,
-      2,    2,    2,    2,    2,   20,   20,   18,   18,   18,   20,   20,  131,    0,    0,    0,
-      0,    0,  149,  149,  149,  149,  149,  149,  149,  149,  149,  149,    2,    2,    2,    2,
-      2,   51,   50,   51,    0,    0,    0,    0,  150,    9,   72,    2,    2,    2,    2,    2,
-      2,   16,   17,   19,   14,   22,   35,    0,    0,    0,   29,    0,    0,    0,    0,    0,
-      0,    9,   47,    2,    2,    2,    2,    2,    2,    2,    2,    2,  125,   18,   20,  151,
-     20,   19,  152,  153,    2,    2,    2,    2,    2,    0,    0,   63,  154,    0,    0,    0,
-      0,    2,   11,    0,    0,    0,    0,    0,    0,    2,   63,   23,   18,   18,   18,   20,
-     20,  106,  155,    0,    0,   54,  156,   29,  157,   28,    2,    2,    2,    2,    2,    2,
-      2,    2,    2,    2,    2,    2,    2,   21,   17,   20,   20,  158,   42,    0,    0,    0,
-     47,  125,    0,    0,    0,    0,    0,    0,    0,    2,    2,    2,    7,    7,    2,    2,
-     28,    2,    2,    2,    2,    2,    2,    2,   28,    2,    2,    2,    2,    2,    2,    2,
-      8,   16,   17,   19,   20,  159,   29,    0,    0,    9,    9,   28,    2,    2,    2,    7,
-     28,    7,    2,   28,    2,    2,   56,   15,   21,   14,   21,   45,   30,   31,   30,   32,
-      0,    0,    0,    0,   33,    0,    0,    0,    2,    2,   21,    0,    9,    9,    9,   44,
-      0,    9,    9,   44,    0,    0,    0,    0,    0,    2,    2,   63,   23,   18,   18,   18,
-     20,   21,  123,   13,   15,    0,    0,    0,    0,    2,    2,    2,    2,    2,    0,    0,
-    160,  161,    0,    0,    0,    0,    0,    0,    0,   16,   17,   18,   18,   64,   97,   23,
-    157,    9,  162,    7,    0,    0,    0,    0,    0,    2,    2,    2,    2,    2,    2,    2,
-     63,   23,   18,   18,    0,   46,   46,    9,  163,   35,    0,    0,    0,    0,    0,    0,
-      0,    0,    0,    0,    0,    2,    2,   18,    0,   21,   17,   18,   18,   19,   14,   80,
-    163,   36,    0,    0,    0,    0,    0,    0,    0,    2,    2,    2,    2,    2,    8,  164,
-     23,   18,   20,   20,  162,    7,    0,    0,    0,    2,    2,    2,    2,    2,    7,   41,
-    133,   21,   20,   18,   74,   19,   20,    0,    0,    2,    2,    2,    7,    0,    0,    0,
-      0,    2,    2,    2,    2,    2,    2,   16,   17,   18,   19,   20,  103,  163,   35,    0,
-      0,    2,    2,    2,    7,   28,    0,    2,    2,    2,    2,   28,    7,    2,    2,    2,
-      2,   21,   21,   16,   30,   31,   10,  165,  166,  167,  168,    0,    0,    0,    0,    0,
-      0,    2,    2,    2,    2,    0,    2,    2,    2,   63,   23,   18,   18,    0,   20,   21,
-     27,  106,    0,   31,    0,    0,    0,    0,    0,   50,   18,   20,   20,   20,  137,    2,
-      2,    2,  169,  170,    9,   13,  171,   70,  172,    0,    0,    1,  144,    0,    0,    0,
-      0,   50,   18,   20,   14,   17,   18,    2,    2,    2,    2,  155,  155,  155,  173,  173,
-    173,  173,  173,  173,   13,  174,    0,   28,    0,   20,   18,   18,   29,   20,   20,    9,
-    163,    0,   59,   59,   59,   59,   59,   59,   59,   64,   19,   80,   44,    0,    0,    0,
-      0,    2,    2,    2,    7,    2,   28,    2,    2,   50,   20,   20,   29,    0,   36,   20,
-     25,    9,  156,  175,  171,    0,    0,    0,    0,    2,    2,    2,   28,    7,    2,    2,
-      2,    2,    2,    2,    2,    2,   21,   21,   45,   20,   33,   80,   66,    0,    0,    0,
-      0,    2,  176,   64,   45,    0,    0,    0,    0,    9,  177,    2,    2,    2,    2,    2,
-      2,    2,    2,   21,   20,   18,   29,    0,   46,   14,  140,    0,    0,    0,    0,    0,
-      0,  178,  178,  178,  106,  179,  178,    0,    0,  145,    2,    2,  180,  114,  114,  114,
-    114,  114,  114,  114,    0,    0,    0,    0,    0,    9,    9,    9,   44,    0,    0,    0,
-      0,    2,    2,    2,    2,    2,    7,    0,   56,  181,   18,   18,   18,   18,   18,   18,
-     18,   18,   18,   18,   18,   18,   18,   18,   18,   18,   18,   18,   18,    0,    0,    0,
-     38,  114,   24,    0,    0,    0,    0,    0,    0,    0,    0,    7,    0,    0,    0,    0,
-      0,    2,    2,    2,    0,    0,    0,    0,    0,    2,    2,    2,    2,    2,    0,   56,
-     35,    0,    4,  118,  118,  118,  119,    0,    0,    9,    9,    9,   47,    2,    2,    2,
-      0,    2,    2,    2,    2,    2,    0,    0,    2,    2,    2,    2,    2,    2,    2,    2,
-     44,    2,    2,    2,    2,    2,    2,    9,    9,    2,    2,    2,    2,    2,    2,   20,
-     20,    2,    2,   42,   42,   42,   90,    0,    0,    O,    O,    O,   GB,    B,    B,   GB,
-      O,    O,   WJ,FMPst,FMPst,    O,  CGJ,    B,    O,    B,VMAbv,VMAbv,VMAbv,    O,VMAbv,    B,
-  CMBlw,CMBlw,CMBlw,VMAbv,VMPst, VAbv, VPst,CMBlw,    B, VPst, VPre, VPst, VBlw, VBlw, VBlw, VBlw,
-   VAbv, VAbv, VAbv, VPst, VPst, VPst,    H, VPre, VPst,VMBlw,    O,    O, VAbv,   GB,VMAbv,VMPst,
-  VMPst,    O,    B, VBlw,    O,    O, VPre, VPre,    O, VPre,    H,    O, VPst,FMAbv,    O,CMBlw,
-      O, VAbv,    O, VAbv,    H,    O,VMBlw,VMAbv,CMAbv,   GB,   GB,    O, MBlw,CMAbv,CMAbv, VPst,
-   VAbv,VMAbv,    O, VPst,    O, VPre, VPre,VMAbv,    B,    O,   CS,   CS,VMPst,    B, VAbv, VAbv,
-      B,    R,    O,  HVM,    O,    O,FMBlw,    O,CMAbv,    O,CMBlw, VAbv, VBlw,    B,  SUB,  SUB,
-    SUB,    O,  SUB,  SUB,    O,FMBlw,    O,    B, VPst, VBlw, VPre,VMAbv,VMBlw,VMPst,   IS, VAbv,
-   MPst, MPre, MBlw, MBlw,    B, MBlw, MBlw, VPst,VMPst,VMPst,    B, MBlw, VPst, VPre, VAbv, VAbv,
-  VMPst,VMPst,VMBlw,    B,VMPst, VBlw, VPst,  CGJ,  CGJ, VPst,VMAbv,VMAbv,FMAbv, FAbv,CMAbv,FMAbv,
-  VMAbv,FMAbv, VAbv,   IS,FMAbv,    B,FMAbv,    B,  CGJ,   WJ,  CGJ,   GB,CMAbv,CMAbv,    B,   GB,
-      B, VAbv,  SUB, FPst, FPst,VMBlw, FPst, FPst, FBlw,VMAbv,FMBlw, VAbv, VPre,    B, MPre, MBlw,
-    SUB, FAbv, FAbv, MAbv,  SUB,   Sk, VPst, VAbv,VMAbv,VMAbv, FAbv,CMAbv, VPst,    H,    B,    O,
-  SMAbv,SMBlw,SMAbv,SMAbv,SMAbv, VPst,   IS, VBlw, FAbv,VMPre,VMPre,FMAbv,CMBlw,VMBlw,VMBlw,VMAbv,
-     CS,    O,FMAbv, ZWNJ,  CGJ,   WJ,   WJ,   WJ,    O,FMPst,    O,    O,    H, MPst, VPst,    H,
-  VMAbv, VAbv,VMBlw,    B, VBlw, FPst, VPst, FAbv,VMPst,    B,CMAbv, VAbv, MBlw, MPst, MBlw,    H,
-      O, VBlw, MPst, MPre, MAbv, MBlw,    O,    B, FAbv, FAbv, FPst, VBlw,    B,    B, VPre,    O,
-  VMPst,   IS,    O,VMPst, VBlw, VPst,VMBlw,VMBlw,VMAbv,    O,   IS,VMBlw,    B,VMPst,VMAbv,VMPst,
-     CS,   CS,    B,    N,    N,    O,   HN, VPre, VBlw, VAbv,   IS,CMAbv,    O, VPst,    B,    R,
-      R,CMBlw, VAbv, VPre,VMAbv,VMAbv,    H, VAbv,CMBlw,FMAbv,    B,   CS,   CS,    H,CMBlw,VMPst,
-      H,VMPst, VAbv,VMAbv, VPst,   IS,    R, MPst,    R, MPst,CMBlw,    B,FMBlw, VBlw,VMAbv,    R,
-   MBlw, MBlw,   GB, FBlw, FBlw,CMAbv,   IS, VBlw,   IS,   GB, VAbv,    R,VMPst,    H,    H,    B,
-      H,    B,VMBlw,    O, VBlw,
+      2,    2,    2,    2,    2,    2,   10,   11,   11,   11,   11,    0,    0,    0,    9,   12,
+      0,    2,    2,    2,    2,   13,   14,    0,    0,   11,   15,    2,    2,    2,    2,    2,
+      2,    2,    2,    2,    2,    2,   16,   17,   18,   19,   20,   21,   22,   16,   23,   24,
+     25,   12,   26,   27,   20,    2,    2,    2,    2,    2,   20,    0,    2,    2,    2,    2,
+      2,    0,    2,    2,    2,    2,    2,    2,    2,   28,   29,   30,    2,    2,    2,    9,
+     30,    9,   30,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    9,    2,    2,
+      2,    9,    9,    0,    2,    2,    0,   17,   18,   19,   20,   31,   32,   33,   32,   34,
+      0,    0,    0,    0,   35,    0,    0,    2,   30,    2,    0,    0,    0,    0,    0,    9,
+     36,   12,   15,   30,    2,    2,    9,    0,   30,    9,    2,   30,    9,    2,    0,   37,
+     18,   19,   31,    0,   27,   38,   27,   39,    0,   40,    0,    0,    0,   30,    2,    9,
+      9,    0,    0,    0,    2,    2,    2,    2,    2,   41,   42,   43,    0,    0,    0,    0,
+      0,   12,   15,   30,    2,    2,    2,    2,   30,    2,   30,    2,    2,    2,    2,    2,
+      2,    9,    2,   30,    2,    2,    0,   17,   18,   19,   20,   21,   27,   22,   35,   24,
+      0,    0,    0,    0,    0,   30,   41,   41,   44,   12,   29,   30,    2,    2,    2,    9,
+     30,    9,    2,   30,    2,    2,    0,   17,   45,    0,    0,   27,   22,    0,    0,    2,
+     30,   30,    0,    0,    0,    0,    0,    0,    0,    0,   46,   30,    2,    2,    9,    0,
+      2,    9,    2,    2,    0,   30,    9,    9,    2,    0,   30,    9,    0,    2,    9,    0,
+      2,    2,    2,    2,    2,    2,    0,    0,   23,   16,   47,    0,   48,   33,   48,   34,
+      0,    0,    0,    0,   35,    0,    0,    0,    0,   15,   29,   49,    2,    2,    2,    9,
+      2,    9,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,    0,   17,
+     22,   16,   23,   47,   22,   38,   22,   39,    0,    0,    0,   27,   31,    2,    9,    0,
+      0,   10,   29,   30,    2,    2,    2,    9,    2,    2,    2,   30,    2,    2,    0,   17,
+     45,    0,    0,   35,   47,    0,    0,    0,    9,   50,   51,    0,    0,    0,    0,    0,
+      0,   11,   29,    2,    2,    2,    2,    9,    2,    2,    2,    2,    2,    2,   52,   53,
+     23,   23,   19,   31,   48,   33,   48,   34,   54,    0,    0,    0,   35,    0,    0,    0,
+     30,   12,   29,   30,    2,    2,    2,    2,    2,    2,    2,    2,    9,    0,    2,    2,
+      2,    2,   30,    2,    2,    2,    2,   30,    0,    2,    2,    2,    9,    0,   55,    0,
+     35,   23,   22,   31,   31,   18,   48,   48,   25,    0,   23,    0,    0,    0,    0,    0,
+      0,    2,    0,    2,    9,    0,    0,    0,    0,    0,    0,    0,    0,   20,    0,    0,
+      0,    2,    2,   56,   56,   57,    0,    0,   18,    2,    2,    2,    2,   30,    2,    2,
+      2,    2,    2,    2,    2,    2,    2,    9,    0,   58,   21,   59,   22,   22,   20,   20,
+     46,   21,   11,   31,   11,    2,    2,   60,   61,   61,   61,   61,   61,   62,   61,   61,
+     61,   61,   61,   61,   61,   61,   61,   61,   61,   61,   61,   61,   61,   61,   61,   63,
+      0,    0,    0,    0,   64,    0,    0,    0,    0,    2,    2,    2,    2,    2,   65,   45,
+     59,   66,   22,   22,   67,   68,   69,   70,   71,    2,    2,    2,    2,    2,    1,    0,
+      5,    2,    2,    2,   23,   20,    2,    2,   72,   71,   73,   74,   65,   73,   29,   29,
+      2,   52,   22,   53,    2,    2,    2,    2,    2,    2,   75,   76,   77,   29,   29,   78,
+     79,    2,    2,    2,    2,    2,   29,   45,    0,    2,   59,   80,    0,    0,    0,    0,
+     30,    2,   59,   47,    0,    0,    0,    0,    0,    2,   59,    0,    0,    0,    0,    0,
+      0,    2,    2,    2,    2,    2,    2,    9,    2,    9,   59,    0,    0,    0,    0,    0,
+      0,    2,    2,   81,   45,   22,   59,   20,   48,   48,   48,   48,   15,   82,   83,   84,
+     85,   86,   87,    0,    0,    0,    0,   88,    0,    9,    0,    0,   30,    0,   89,   81,
+     90,    2,    2,    2,    2,    9,    0,    0,    0,   42,   42,   91,   92,    2,    2,    2,
+      2,    2,    2,    2,    2,   13,    9,    0,    0,   93,    2,    2,    2,    2,    2,    2,
+      2,    2,    2,    2,    2,    2,    2,    2,    9,   22,   80,   45,   22,   94,   61,    0,
+      0,   95,   96,   95,   95,   97,   98,    0,    0,    2,    2,    2,    2,    2,    2,    2,
+      0,    2,    2,    9,    0,    0,    0,    0,    0,    2,    2,    2,    2,    2,    2,    0,
+      0,    2,    2,    2,    2,   29,    0,    0,    0,    2,    2,    2,    2,    2,    9,    0,
+      0,    2,    2,    2,   52,   99,   45,    0,    0,    2,    2,  100,  101,  102,  103,   61,
+     63,  104,   16,   45,   22,   59,   21,   80,   48,   48,   76,   11,   11,   11,  105,   46,
+     40,   11,  106,   74,    2,    2,    2,    2,    2,    2,    2,  107,   22,   20,   20,   22,
+     48,   48,   22,  108,    2,    2,    2,    9,    0,    0,    0,    0,    0,    0,  109,  110,
+    111,  111,  111,    0,    0,    0,    0,    0,    0,  106,   74,    2,    2,    2,    2,    2,
+      2,   60,   61,   59,   25,   22,  112,   61,    2,    2,    2,    2,  107,   22,   23,   45,
+     45,  102,   14,    0,    0,    0,    0,    0,    0,    2,    2,   61,   18,   48,   23,  113,
+    102,  102,  102,  114,  115,    0,    0,    0,    0,    2,    2,    2,    2,    2,    0,   30,
+      2,   11,   46,  116,  116,  116,   11,  116,  116,   15,  116,  116,  116,   26,    0,   40,
+      0,    0,    0,  117,   51,   11,    5,    0,    0,    0,    0,    0,    0,    0,  118,    0,
+      0,    0,    0,    0,    0,    0,    6,  119,  120,   42,   42,    5,    0,    0,    0,    0,
+      0,    0,    0,    0,    0,    0,  120,  120,  121,  120,  120,  120,  120,  120,  120,  120,
+    120,    0,    0,  122,    0,    0,    0,    0,    0,    0,    7,  122,    0,    0,    0,    0,
+      0,   46,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    9,
+      0,    0,    0,    0,  123,  123,    0,    0,    0,    2,    2,    2,    2,    0,    0,    0,
+     30,    0,    0,    0,    0,    0,    0,    0,  124,    0,  123,  123,    0,    0,    0,    0,
+      0,    2,   53,    2,  108,    2,   10,    2,    2,    2,   65,   19,   16,    0,    0,   31,
+      0,    2,    2,    0,    0,    0,    0,    0,    0,   29,    2,    2,    2,    2,    2,    2,
+      2,    2,    2,  125,   23,   23,   23,   23,   23,   23,   23,  126,    0,    0,    0,    0,
+      0,   11,   11,   11,   11,   11,   11,   11,   11,   11,    2,    0,    0,    0,    0,    0,
+     52,    2,    2,    2,   22,   22,  127,  116,    0,    2,    2,    2,  128,   20,   59,   20,
+    113,  102,  129,    0,    0,    0,    0,    0,    0,   11,  130,    2,    2,    2,    2,    2,
+      2,    2,  131,   23,   22,   20,   48,  132,  133,  134,    0,    0,    0,    0,    0,    0,
+      0,    2,    2,   52,   30,    2,    2,    2,    2,    2,    2,    2,    2,   10,   22,   59,
+     99,   76,  135,  136,  137,    0,    0,    0,    0,    2,  138,    2,    2,    2,    2,  139,
+      0,   30,    2,   42,    5,    0,   79,   15,    2,   53,   22,  140,   52,   53,    2,    2,
+    105,   10,    9,    0,    0,    0,    0,    0,    0,    2,    2,    2,    2,    2,  141,   21,
+     25,    0,    0,  142,  143,    0,    0,    0,    0,    2,   65,   45,   23,   80,   47,  144,
+      0,   81,   81,   81,   81,   81,   81,   81,   81,    0,    0,    0,    0,    0,    0,    0,
+      6,  120,  120,  120,  120,  121,    0,    0,    0,    2,    2,    2,    2,    2,    9,    2,
+      2,    2,    9,    2,   30,    2,    2,    2,    2,    2,   30,    2,    2,    2,   30,    9,
+      0,  128,   20,   27,   31,    0,    0,  145,  146,    2,    2,   30,    2,   30,    2,    2,
+      2,    2,    2,    2,    0,   14,   37,    0,  147,    2,    2,   13,   37,    0,   30,    2,
+      2,    2,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,   30,    2,    2,
+      9,    2,    2,   11,   41,    0,    0,    0,    0,    2,    2,    2,    2,    2,   27,   38,
+      0,    2,    2,    2,  116,  116,  116,  116,  116,  148,    2,    9,    0,    0,    0,    0,
+      0,    2,   14,   14,    0,    0,    0,    0,    0,    9,    2,    2,    9,    2,    2,    2,
+      2,   30,    2,    9,    0,   30,    2,    0,    0,  149,  150,  151,    2,    2,    2,    2,
+      2,    2,    2,    2,    2,   22,   22,   20,   20,   20,   22,   22,  134,    0,    0,    0,
+      0,    0,  152,  152,  152,  152,  152,  152,  152,  152,  152,  152,    2,    2,    2,    2,
+      2,   53,   52,   53,    0,    0,    0,    0,  153,   11,   74,    2,    2,    2,    2,    2,
+      2,   18,   19,   21,   16,   24,   37,    0,    0,    0,   31,    0,    0,    0,    0,    0,
+      0,   11,   49,    2,    2,    2,    2,    2,    2,    2,    2,    2,  128,   20,   22,  154,
+     22,   21,  155,  156,    2,    2,    2,    2,    2,    0,    0,   65,  157,    0,    0,    0,
+      0,    2,   13,    0,    0,    0,    0,    0,    0,    2,   65,   25,   20,   20,   20,   22,
+     22,  108,  158,    0,    0,   56,  159,   31,  160,   30,    2,    2,    2,    2,    2,    2,
+      2,    2,    2,    2,    2,    2,    2,   23,   19,   22,   22,  161,   44,    0,    0,    0,
+     49,  128,    0,    0,    0,    0,    0,    0,    0,    2,    2,    2,    9,    9,    2,    2,
+     30,    2,    2,    2,    2,    2,    2,    2,   30,    2,    2,    2,    2,    2,    2,    2,
+     10,   18,   19,   21,   22,  162,   31,    0,    0,   11,   11,   30,    2,    2,    2,    9,
+     30,    9,    2,   30,    2,    2,   58,   17,   23,   16,   23,   47,   32,   33,   32,   34,
+      0,    0,    0,    0,   35,    0,    0,    0,    2,    2,   23,    0,   11,   11,   11,   46,
+      0,   11,   11,   46,    0,    0,    0,    0,    0,    2,    2,   65,   25,   20,   20,   20,
+     22,   23,  126,   15,   17,    0,    0,    0,    0,    2,    2,    2,    2,    2,    0,    0,
+    163,  164,    0,    0,    0,    0,    0,    0,    0,   18,   19,   20,   20,   66,   99,   25,
+    160,   11,  165,    9,    0,    0,    0,    0,    0,    2,    2,    2,    2,    2,    2,    2,
+     65,   25,   20,   20,    0,   48,   48,   11,  166,   37,    0,    0,    0,    0,    0,    0,
+      0,    0,    0,    0,    0,    2,    2,   20,    0,   23,   19,   20,   20,   21,   16,   82,
+    166,   38,    0,    0,    0,    0,    0,    0,    0,    2,    2,    2,    2,    2,   10,  167,
+     25,   20,   22,   22,  165,    9,    0,    0,    0,    2,    2,    2,    2,    2,    9,   43,
+    136,   23,   22,   20,   76,   21,   22,    0,    0,    2,    2,    2,    9,    0,    0,    0,
+      0,    2,    2,    2,    2,    2,    2,   18,   19,   20,   21,   22,  105,  166,   37,    0,
+      0,    2,    2,    2,    9,   30,    0,    2,    2,    2,    2,   30,    9,    2,    2,    2,
+      2,   23,   23,   18,   32,   33,   12,  168,  169,  170,  171,    0,    0,    0,    0,    0,
+      0,    2,    2,    2,    2,    0,    2,    2,    2,   65,   25,   20,   20,    0,   22,   23,
+     29,  108,    0,   33,    0,    0,    0,    0,    0,   52,   20,   22,   22,   22,  140,    2,
+      2,    2,  172,  173,   11,   15,  174,   72,  175,    0,    0,    1,  147,    0,    0,    0,
+      0,   52,   20,   22,   16,   19,   20,    2,    2,    2,    2,  158,  158,  158,  176,  176,
+    176,  176,  176,  176,   15,  177,    0,   30,    0,   22,   20,   20,   31,   22,   22,   11,
+    166,    0,   61,   61,   61,   61,   61,   61,   61,   66,   21,   82,   46,    0,    0,    0,
+      0,    2,    2,    2,    9,    2,   30,    2,    2,   52,   22,   22,   31,    0,   38,   22,
+     27,   11,  159,  178,  174,    0,    0,    0,    0,    2,    2,    2,   30,    9,    2,    2,
+      2,    2,    2,    2,    2,    2,   23,   23,   47,   22,   35,   82,   68,    0,    0,    0,
+      0,    2,  179,   66,   47,    0,    0,    0,    0,   11,  180,    2,    2,    2,    2,    2,
+      2,    2,    2,   23,   22,   20,   31,    0,   48,   16,  143,    0,    0,    0,    0,    0,
+      0,  181,  181,  181,  181,  181,  181,  181,  181,  182,  182,  182,  183,  184,  182,  181,
+    181,  185,  181,  181,  186,  187,  187,  187,  187,  187,  187,  187,    0,    0,    0,    0,
+      0,   11,   11,   11,   46,    0,    0,    0,    0,    2,    2,    2,    2,    2,    9,    0,
+     58,  188,   20,   20,   20,   20,   20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
+     20,   20,   20,   20,   20,    0,    0,    0,   40,  116,   26,    0,    0,    0,    0,    0,
+      0,    0,    0,    9,    0,    0,    0,    0,    0,    2,    2,    2,    0,    0,    0,    0,
+      0,    2,    2,    2,    2,    2,    0,   58,   37,    0,    6,  120,  120,  120,  121,    0,
+      0,   11,   11,   11,   49,    2,    2,    2,    0,    2,    2,    2,    2,    2,    0,    0,
+      2,    2,    2,    2,    2,    2,    2,    2,   46,    2,    2,    2,    2,    2,    2,   11,
+     11,    2,    2,    2,    2,    2,    2,   22,   22,    2,    2,   44,   44,   44,   92,    0,
+      0,    O,    O,    O,   GB,    B,    B,    O,   SB,    O,   SE,   GB,    O,    O,   WJ,FMPst,
+  FMPst,    O,  CGJ,    B,    O,    B,VMAbv,VMAbv,VMAbv,    O,VMAbv,    B,CMBlw,CMBlw,CMBlw,VMAbv,
+  VMPst, VAbv, VPst,CMBlw,    B, VPst, VPre, VPst, VBlw, VBlw, VBlw, VBlw, VAbv, VAbv, VAbv, VPst,
+   VPst, VPst,    H, VPre, VPst,VMBlw,    O,    O, VAbv,   GB,VMAbv,VMPst,VMPst,    O,    B, VBlw,
+      O,    O, VPre, VPre,    O, VPre,    H,    O, VPst,FMAbv,    O,CMBlw,    O, VAbv,    O, VAbv,
+      H,    O,VMBlw,VMAbv,CMAbv,   GB,   GB,    O, MBlw,CMAbv,CMAbv, VPst, VAbv,VMAbv,    O, VPst,
+      O, VPre, VPre,VMAbv,    B,    O,   CS,   CS,VMPst,    B, VAbv, VAbv,    B,    R,    O,  HVM,
+      O,    O,FMBlw,    O,CMAbv,    O,CMBlw, VAbv, VBlw,    B,  SUB,  SUB,  SUB,    O,  SUB,  SUB,
+      O,FMBlw,    O,    B, VPst, VBlw, VPre,VMAbv,VMBlw,VMPst,   IS, VAbv, MPst, MPre, MBlw, MBlw,
+      B, MBlw, MBlw, VPst,VMPst,VMPst,    B, MBlw, VPst, VPre, VAbv, VAbv,VMPst,VMPst,VMBlw,    B,
+  VMPst, VBlw, VPst,  CGJ,  CGJ, VPst,VMAbv,VMAbv,FMAbv, FAbv,CMAbv,FMAbv,VMAbv,FMAbv, VAbv,   IS,
+  FMAbv,    B,FMAbv,    B,  CGJ,   WJ,  CGJ,   GB,CMAbv,CMAbv,    B,   GB,    B, VAbv,  SUB, FPst,
+   FPst,VMBlw, FPst, FPst, FBlw,VMAbv,FMBlw, VAbv, VPre,    B, MPre, MBlw,  SUB, FAbv, FAbv, MAbv,
+    SUB,   Sk, VPst, VAbv,VMAbv,VMAbv, FAbv,CMAbv, VPst,    H,    B,    O,SMAbv,SMBlw,SMAbv,SMAbv,
+  SMAbv, VPst,   IS, VBlw, FAbv,VMPre,VMPre,FMAbv,CMBlw,VMBlw,VMBlw,VMAbv,   CS,    O,FMAbv, ZWNJ,
+    CGJ,   WJ,   WJ,   WJ,    O,FMPst,    O,   SB,   SE,    O,    H, MPst, VPst,    H,VMAbv, VAbv,
+  VMBlw,    B, VBlw, FPst, VPst, FAbv,VMPst,    B,CMAbv, VAbv, MBlw, MPst, MBlw,    H,    O, VBlw,
+   MPst, MPre, MAbv, MBlw,    O,    B, FAbv, FAbv, FPst, VBlw,    B,    B, VPre,    O,VMPst,   IS,
+      O,VMPst, VBlw, VPst,VMBlw,VMBlw,VMAbv,    O,   IS,VMBlw,    B,VMPst,VMAbv,VMPst,   CS,   CS,
+      B,    N,    N,    O,   HN, VPre, VBlw, VAbv,   IS,CMAbv,    O, VPst,    B,    R,    R,CMBlw,
+   VAbv, VPre,VMAbv,VMAbv,    H, VAbv,CMBlw,FMAbv,    B,   CS,   CS,    H,CMBlw,VMPst,    H,VMPst,
+   VAbv,VMAbv, VPst,   IS,    R, MPst,    R, MPst,CMBlw,    B,FMBlw, VBlw,VMAbv,    R, MBlw, MBlw,
+     GB, FBlw, FBlw,CMAbv,   IS, VBlw,   IS,   GB, VAbv,    R,VMPst,    G,    G,    J,    J,    J,
+     SB,   SE,    J,   HR,    G,    G,   HM,   HM,   HM,    O, VBlw,
 };
 static const uint16_t
-hb_use_u16[448] =
+hb_use_u16[456] =
 {
-    0,  0,  1,  2,  3,  4,  0,  5,  6,  0,  7,  0,  8,  9, 10, 11,
-    9, 12, 13,  9,  9, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
-   17, 25, 26, 20, 21, 27, 28, 29, 30, 31, 32, 33, 21, 34, 35,  0,
-   17, 36, 37, 20, 21, 38, 23, 39, 17, 40, 41, 42, 43, 44, 45, 46,
-   30,  0, 47, 48, 21, 49, 50, 51, 17,  0, 52, 48, 21, 53, 50, 54,
-   17, 55, 56, 48,  9, 57, 58, 59, 60, 61,  9, 62, 63, 64, 30, 65,
-   66, 67,  9, 68, 69,  9, 70, 71, 72, 73, 74, 75, 76,  0,  9,  9,
-   77, 78, 79, 80, 81, 82, 83, 84,  9, 85,  9, 86,  9, 87, 88, 89,
-    9, 90, 91, 92,  2,  0, 93,  0,  9, 94, 95,  9, 96,  0, 97, 98,
-   99,100, 30,  9,101,102,103,  9,104,105,  9,106,  9,107,108,109,
-    2,  2,110,  9,  9,111,112,  2,113,114,115,  9,116,  9,117,118,
-  119,120,121,  0,  0,122,123,124,  0,125,126,127,128,  0,129,130,
-  131,  0,  0,132,133,  0,  0,  9,134,135,136,  9,137,  0,  9,138,
-  139,  9,  9,140,141,  2,142,143,144,  9,145,146,147,  9,  9,148,
-  149,  2,150, 98,151,152,153,  2,  9,154,  9,155,156,  0,157,158,
-  159,  2,160,  0,  0,161,  0,162,  0,163,163,164, 33,165,166,167,
-    9,168, 94,  0,169,  0,  9,170,171,  0,172,  2,173,170,174,175,
-  176,  0,  0,177,178,  0,179,  9,  9,180,181,182,183,184,185,  9,
-    9,186,187,  0,188,  9,189,190,191,  9,  9,192,  9,193,194,105,
-  195,102,  9, 33,196,197,198,  0,199,200, 94,  9,  9,201,202,  2,
-  203, 20, 21,204,205,206,207,208,  9,209,210,211,212,  0,195,  9,
-    9,213,214,  2,215,216,217,218,  9,219,220,  2,221,222,  9,223,
-  224,103,225,  0,226,227,228,229,  9,230,231,  2,232,  9,  9,233,
-  234,  0,235,  9,  9,236,237,238,239,240, 21,  9,215,241,  7,  9,
-   70, 18,  9,242, 73,243,244,  9,  9,245,246,  2,247,  9,248,249,
-    9,250,251, 48,  9,252,253,  2,  9,254,255,256,  9,257,258,259,
-  260,260,261,262,263,  0,  9,264,105, 70, 94,265,  0,266, 70,267,
-  268,  0,269,  0,270,  2,271,  2,272,  2,129,129,160,160,160,129,
+    0,  0,  1,  2,  0,  3,  4,  5,  0,  6,  7,  0,  8,  0,  9, 10,
+   11, 12, 10, 13, 14, 10, 10, 15, 16, 17, 18, 19, 20, 21, 22, 23,
+   24, 25, 18, 26, 27, 21, 22, 28, 29, 30, 31, 32, 33, 34, 22, 35,
+   36,  0, 18, 37, 38, 21, 22, 39, 24, 40, 18, 41, 42, 43, 44, 45,
+   46, 47, 31,  0, 48, 49, 22, 50, 51, 52, 18,  0, 53, 49, 22, 54,
+   51, 55, 18, 56, 57, 49, 10, 58, 59, 60, 61, 62, 10, 63, 64, 65,
+   31, 66, 67, 68, 10, 69, 70, 10, 71, 72, 73, 74, 75, 76, 77,  0,
+   10, 10, 78, 79, 80, 81, 82, 83, 84, 85, 10, 86, 10, 87, 10, 88,
+   89, 90, 10, 91, 92, 93,  2,  0, 94,  0, 10, 95, 96, 10, 97,  0,
+   98, 99,100,101, 31, 10,102,103,104, 10,105,106, 10,107, 10,108,
+  109,110,  2,  2,111, 10, 10,112,113,  2,114,115,116, 10,117, 10,
+  118,119,120,121,122,  0,  0,123,124,125,  0,126,127,128,129,  0,
+  130,131,132,  0,  0,133,134,  0,135,  0,  0, 10,136,137,138,  0,
+  139, 10,140,  0, 10,141,142, 10, 10,143,144,  2,145,146,147, 10,
+  148,149,150, 10, 10,151,152,  2,153, 99,154,155,156,  2, 10,157,
+   10,158,159,  0,160,161,162,  2,163,  0,  0,164,  0,165,  0,166,
+  166,167, 34,168,169,170, 10,171, 95,  0,172,  0, 10,173,174,  0,
+  175,  2,176,173,177,178,179,  0,  0,180,181,  0,182, 10, 10,183,
+  184,185,186,187,188, 10, 10,189,190,  0,191, 10,192,193,194, 10,
+   10,195, 10,196,197,106,198,103, 10, 34,199,200,201,  0,202,203,
+   95, 10, 10,204,205,  2,206, 21, 22,207,208,209,210,211, 10,212,
+  213,214,215,  0,198, 10, 10,216,217,  2,218,219,220,221, 10,222,
+  223,  2,224,225, 10,226,227,104,228,  0,229,230,231,232, 10,233,
+  234,  2,235, 10, 10,236,237,  0,238, 10, 10,239,240,241,242,243,
+   22, 10,218,244,  8, 10, 71, 19, 10,245, 74,246,247, 10, 10,248,
+  249,  2,250, 10,251,252, 10,253,254, 49, 10,255,256,  2,257,257,
+  257,258,259,260, 10,261,262,263,264,264,265,266,267,  0, 10,268,
+  106, 71, 95,269,  0,270, 71,271,272,  0,273,  0,274,  2,275,  2,
+  276,  2,130,130,163,163,163,130,
 };
 
 static inline unsigned
@@ -622,7 +636,7 @@
 static inline uint_fast8_t
 hb_use_get_category (unsigned u)
 {
-  return u<921600u?hb_use_u8[3049+(((hb_use_u8[865+(((hb_use_u16[((hb_use_u8[353+(((hb_use_u8[113+(((hb_use_b4(hb_use_u8,u>>1>>3>>1>>3>>4))<<4)+((u>>1>>3>>1>>3)&15u))])<<3)+((u>>1>>3>>1)&7u))])<<1)+((u>>1>>3)&1u)])<<3)+((u>>1)&7u))])<<1)+((u)&1u))]:O;
+  return u<921600u?hb_use_u8[3105+(((hb_use_u8[889+(((hb_use_u16[((hb_use_u8[353+(((hb_use_u8[113+(((hb_use_b4(hb_use_u8,u>>1>>3>>1>>3>>4))<<4)+((u>>1>>3>>1>>3)&15u))])<<3)+((u>>1>>3>>1)&7u))])<<1)+((u>>1>>3)&1u)])<<3)+((u>>1)&7u))])<<1)+((u)&1u))]:O;
 }
 
 #endif
@@ -633,7 +647,9 @@
 #undef G
 #undef GB
 #undef H
+#undef HM
 #undef HN
+#undef HR
 #undef HVM
 #undef IS
 #undef J
diff --git a/src/ms-use/IndicPositionalCategory-Additional.txt b/src/ms-use/IndicPositionalCategory-Additional.txt
index 884fee5..cb07643 100644
--- a/src/ms-use/IndicPositionalCategory-Additional.txt
+++ b/src/ms-use/IndicPositionalCategory-Additional.txt
@@ -8,6 +8,7 @@
 # Updated for Unicode 13.0 by Andrew Glass 2020-07-28
 # Updated for Unicode 14.0 by Andrew Glass 2021-09-28
 # Updated for Unicode 15.0 by Andrew Glass 2022-09-16
+# Updated for Unicode 15.1 by Andrew Glass 2023-09-14
 
 # ================================================
 # ================================================
diff --git a/src/ms-use/IndicSyllabicCategory-Additional.txt b/src/ms-use/IndicSyllabicCategory-Additional.txt
index 0ca2aad..43326c1 100644
--- a/src/ms-use/IndicSyllabicCategory-Additional.txt
+++ b/src/ms-use/IndicSyllabicCategory-Additional.txt
@@ -6,6 +6,7 @@
 # Updated for Unicode 13.0 by Andrew Glass 2020-07-28
 # Updated for Unicode 14.0 by Andrew Glass 2021-09-25
 # Updated for Unicode 15.0 by Andrew Glass 2022-09-16
+# Updated for Unicode 15.1 by Andrew Glass 2023-09-14
 
 # ================================================
 # OVERRIDES TO ASSIGNED VALUES
@@ -13,7 +14,7 @@
 
 # Indic_Syllabic_Category=Bindu  
 193A          ; Bindu  # Mn       LIMBU SIGN KEMPHRENG
-AA29          ; Bindu  # Mn       CHAM VOWEL SIGN AA
+AA29          ; Bindu  # Mn       CHAM VOWEL SIGN AA
 10A0D         ; Bindu  # Mn       KHAROSHTHI SIGN DOUBLE RING BELOW
 
 # ================================================
@@ -90,11 +91,6 @@
 10F30..10F45  ; Consonant # Lo   [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN
 10F70..10F81  ; Consonant # Lo   [18] OLD UYGHUR LETTER ALEPH..OLD UYGHUR LETTER LESH
 111DA         ; Consonant # Lo        SHARADA EKAM
-#HIEROGLYPHS to be moved to new category
-13000..1342F  ; Consonant # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
-#For the Begin and End segment to be handled fully correctly, the cluster model needs to be modified.
-13437..13438  ; Consonant # Lo    [2] EGYPTIAN HIEROGLYPH BEGIN SEGMENT..EGYPTIAN HIEROGLYPH END SEGMENT
-13441..13446  ; Consonant # Lo    [6] EGYPTIAN HIEROGLYPH FULL BLANK..HIEROGLYPH WIDE LOST SIGN
 16B00..16B2F  ; Consonant # Lo   [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU
 16F00..16F4A  ; Consonant # Lo   [75] MIAO LETTER PA..MIAO LETTER RTE
 16FE4         ; Consonant # Mn        KHITAN SMALL SCRIPT FILLER          # Avoids Mn pushing this into VOWEL class
@@ -174,9 +170,6 @@
 
 # Indic_Syllabic_Category=Virama
 2D7F          ; Virama              # Mn       TIFINAGH CONSONANT JOINER
-#HIEROGLYPHS to be moved to new category
-13430..13436  ; Virama              # Cf   [7] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH OVERLAY MIDDLE
-13439..1343B  ; Virama              # Cf   [3] EGYPTIAN HIEROGLYPH INSERT AT MIDDLE..EGYPTIAN HIEROGLYPH INSERT AT BOTTOM
 
 # ================================================
 
@@ -198,9 +191,6 @@
 # Indic_Syllabic_Category=Cantillation_Mark
 
 1CF8..1CF9    ; Cantillation_Mark   # Mn   [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
-#HIEROGLYPHS to be moved to new category
-13440         ; Cantillation_Mark   # Mn       EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
-13447..13455  ; Cantillation_Mark   # Mn  [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
 
 # ================================================
 
@@ -214,55 +204,58 @@
 # ================================================
 
 # USE, Extended_Syllabic_Category=Hieroglyph
-# 13000..1342F ; Hieroglyph          # Lo [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
-# 13441..13446 ; Hieroglyph          # Lo    [6] EGYPTIAN HIEROGLYPH FULL BLANK..HIEROGLYPH WIDE LOST SIGN
+13000..1342F ; Hieroglyph          # Lo [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
+1343C..1343F ; Hieroglyph          # Cf    [4] EGYPTIAN HIEROGLYPH BEGIN ENCLOSURE..END WALLED ENCLOSURE
+13441..13446 ; Hieroglyph          # Lo    [6] EGYPTIAN HIEROGLYPH FULL BLANK..HIEROGLYPH WIDE LOST SIGN
 
 # ================================================
 
 # USE, Extended_Syllabic_Category=Hieroglyph_Joiner
-# 13430..13436 ; Hieroglyph_Joiner   # Cf    [7] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH OVERLAY MIDDLE
-# 13439..1343B ; Hieroglyph_Joiner   # Cf    [3] EGYPTIAN HIEROGLYPH INSERT AT MIDDLE..EGYPTIAN HIEROGLYPH INSERT AT BOTTOM
+13430..13436 ; Hieroglyph_Joiner   # Cf    [7] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH OVERLAY MIDDLE
+13439..1343B ; Hieroglyph_Joiner   # Cf    [3] EGYPTIAN HIEROGLYPH INSERT AT MIDDLE..EGYPTIAN HIEROGLYPH INSERT AT BOTTOM
 
 # ================================================
 
 # USE, Extended_Syllabic_Category=Hieroglyph_Mark_Begin
-# 005B        ; Hieroglyph_Mark_Begin  # Ps  LEFT SQUARE BRACKET
-# 007B        ; Hieroglyph_Mark_Begin  # Ps  LEFT CURLY BRACKET
-# 27E6        ; Hieroglyph_Mark_Begin  # Ps  MATHEMATICAL LEFT WHITE SQUARE BRACKET
-# 27E8        ; Hieroglyph_Mark_Begin  # Ps  MATHEMATICAL LEFT ANGLE BRACKET
-# 2E22        ; Hieroglyph_Mark_Begin  # Ps  TOP LEFT HALF BRACKET
-# 2E24        ; Hieroglyph_Mark_Begin  # Ps  BOTTOM LEFT HALF BRACKET
+005B        ; Hieroglyph_Mark_Begin  # Ps  LEFT SQUARE BRACKET
+007B        ; Hieroglyph_Mark_Begin  # Ps  LEFT CURLY BRACKET
+27E6        ; Hieroglyph_Mark_Begin  # Ps  MATHEMATICAL LEFT WHITE SQUARE BRACKET
+27E8        ; Hieroglyph_Mark_Begin  # Ps  MATHEMATICAL LEFT ANGLE BRACKET
+2E22        ; Hieroglyph_Mark_Begin  # Ps  TOP LEFT HALF BRACKET
+2E24        ; Hieroglyph_Mark_Begin  # Ps  BOTTOM LEFT HALF BRACKET
 
 # ================================================
 
 # USE, Extended_Syllabic_Category=Hieroglyph_Mark_End
-# 005D        ; Hieroglyph_Mark_Begin  # Pe  RIGHT SQUARE BRACKET
-# 007D        ; Hieroglyph_Mark_Begin  # Pe  RIGHT CURLY BRACKET
-# 27E7        ; Hieroglyph_Mark_Begin  # Pe  MATHEMATICAL RIGHT WHITE SQUARE BRACKET
-# 27E9        ; Hieroglyph_Mark_Begin  # Pe  MATHEMATICAL RIGHT ANGLE BRACKET
-# 2E23        ; Hieroglyph_Mark_Begin  # Pe  TOP RIGHT HALF BRACKET
-# 2E25        ; Hieroglyph_Mark_Begin  # Pe  BOTTOM RIGHT HALF BRACKET
+005D        ; Hieroglyph_Mark_End  # Pe  RIGHT SQUARE BRACKET
+007D        ; Hieroglyph_Mark_End  # Pe  RIGHT CURLY BRACKET
+27E7        ; Hieroglyph_Mark_End  # Pe  MATHEMATICAL RIGHT WHITE SQUARE BRACKET
+27E9        ; Hieroglyph_Mark_End  # Pe  MATHEMATICAL RIGHT ANGLE BRACKET
+2E23        ; Hieroglyph_Mark_End  # Pe  TOP RIGHT HALF BRACKET
+2E25        ; Hieroglyph_Mark_End  # Pe  BOTTOM RIGHT HALF BRACKET
 
 # ================================================
 
 # USE, Extended_Syllabic_Category=Hieroglyph_Segment_Begin
-# 13437        ; Hieroglyph_Segment_Begin  # Cf  EGYPTIAN HIEROGLYPH BEGIN SEGMENT
+13437        ; Hieroglyph_Segment_Begin  # Cf  EGYPTIAN HIEROGLYPH BEGIN SEGMENT
 
 # ================================================
 
 # USE, Extended_Syllabic_Category=Hieroglyph_Segment_End
-# 13438        ; Hieroglyph_Segment_End    # Cf  EGYPTIAN HIEROGLYPH END SEGMENT 
+13438        ; Hieroglyph_Segment_End    # Cf  EGYPTIAN HIEROGLYPH END SEGMENT 
 
 # ================================================
 
 # USE, Extended_Syllabic_Category=Hieroglyph_Mirror
-# 13440        ; Hieroglyph_Mirror    # Mn       EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+13440        ; Hieroglyph_Mirror    # Mn       EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
 
 # ================================================
 
 # USE, Extended_Syllabic_Category=Hieroglyph_Modifier
-# 13447..13455 ; Hieroglyph_Modifier    # Mn  [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
+13447..13455 ; Hieroglyph_Modifier    # Mn  [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
 
 # ================================================
 
 # eof
+
+