2 #line 1 "hb-ot-shape-complex-indic-machine.rl"
4 * Copyright © 2011,2012 Google, Inc.
6 * This is part of HarfBuzz, a text shaping library.
8 * Permission is hereby granted, without written agreement and without
9 * license or royalty fees, to use, copy, modify, and distribute this
10 * software and its documentation for any purpose, provided that the
11 * above copyright notice and the following two paragraphs appear in
12 * all copies of this software.
14 * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
15 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
16 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
17 * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
20 * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
21 * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
22 * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
23 * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
24 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
26 * Google Author(s): Behdad Esfahbod
29 #ifndef HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH
30 #define HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH
35 #line 36 "hb-ot-shape-complex-indic-machine.hh"
36 static const unsigned char _indic_syllable_machine_trans_keys[] = {
37 8u, 8u, 4u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u,
38 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 4u, 8u, 6u, 6u, 16u, 16u,
39 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u,
40 16u, 16u, 4u, 13u, 4u, 8u, 4u, 13u, 4u, 8u, 4u, 13u, 4u, 8u, 4u, 13u,
41 4u, 8u, 4u, 13u, 8u, 8u, 4u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u,
42 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 4u, 8u,
43 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u,
44 4u, 8u, 6u, 6u, 16u, 16u, 4u, 13u, 4u, 8u, 4u, 13u, 4u, 8u, 4u, 13u,
45 4u, 8u, 4u, 13u, 4u, 8u, 4u, 13u, 8u, 8u, 4u, 8u, 5u, 7u, 7u, 7u,
46 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u,
47 7u, 7u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u,
48 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 13u, 4u, 8u, 4u, 13u,
49 4u, 8u, 4u, 13u, 4u, 8u, 4u, 13u, 4u, 8u, 8u, 8u, 4u, 8u, 5u, 7u,
50 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u,
51 5u, 7u, 7u, 7u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u,
52 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 13u, 4u, 8u,
53 4u, 13u, 4u, 8u, 4u, 13u, 4u, 8u, 4u, 13u, 4u, 8u, 4u, 13u, 4u, 13u,
54 5u, 8u, 8u, 8u, 1u, 19u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u,
55 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u,
56 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 5u, 10u, 5u, 10u,
57 5u, 10u, 10u, 10u, 10u, 10u, 10u, 10u, 5u, 10u, 3u, 10u, 5u, 10u, 3u, 10u,
58 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u,
59 3u, 10u, 4u, 10u, 4u, 10u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u,
60 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u,
61 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u,
62 3u, 17u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u,
63 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u,
64 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 5u, 10u, 5u, 10u, 5u, 10u, 10u, 10u,
65 10u, 10u, 10u, 10u, 5u, 10u, 3u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u,
66 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u,
67 4u, 10u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u,
68 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u,
69 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 4u, 8u, 3u, 17u, 3u, 17u,
70 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u,
71 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u,
72 4u, 17u, 5u, 10u, 5u, 10u, 5u, 10u, 10u, 10u, 10u, 10u, 10u, 10u, 5u, 10u,
73 3u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u,
74 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 4u, 10u, 3u, 17u, 3u, 17u,
75 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u,
76 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u,
77 1u, 16u, 1u, 16u, 4u, 13u, 3u, 17u, 4u, 8u, 3u, 17u, 3u, 17u, 4u, 17u,
78 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u,
79 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u,
80 5u, 10u, 5u, 10u, 5u, 10u, 10u, 10u, 10u, 10u, 10u, 10u, 5u, 10u, 3u, 10u,
81 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u,
82 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 4u, 10u, 3u, 17u, 3u, 17u, 1u, 16u,
83 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u,
84 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u,
85 1u, 16u, 3u, 17u, 1u, 17u, 3u, 17u, 1u, 17u, 4u, 13u, 5u, 10u, 10u, 10u,
86 10u, 10u, 10u, 10u, 5u, 10u, 1u, 16u, 3u, 10u, 5u, 10u, 5u, 10u, 10u, 10u,
87 10u, 10u, 10u, 10u, 5u, 10u, 1u, 16u, 0
90 static const char _indic_syllable_machine_key_spans[] = {
91 1, 5, 3, 1, 4, 3, 1, 4,
92 3, 1, 4, 3, 1, 5, 1, 1,
93 5, 1, 1, 5, 1, 1, 5, 1,
94 1, 10, 5, 10, 5, 10, 5, 10,
95 5, 10, 1, 5, 3, 1, 4, 3,
96 1, 4, 3, 1, 4, 3, 1, 5,
97 1, 1, 5, 1, 1, 5, 1, 1,
98 5, 1, 1, 10, 5, 10, 5, 10,
99 5, 10, 5, 10, 1, 5, 3, 1,
100 4, 3, 1, 4, 3, 1, 4, 3,
101 1, 5, 1, 1, 5, 1, 1, 5,
102 1, 1, 5, 1, 1, 10, 5, 10,
103 5, 10, 5, 10, 5, 1, 5, 3,
104 1, 4, 3, 1, 4, 3, 1, 4,
105 3, 1, 5, 1, 1, 5, 1, 1,
106 5, 1, 1, 5, 1, 1, 10, 5,
107 10, 5, 10, 5, 10, 5, 10, 10,
108 4, 1, 19, 15, 15, 14, 16, 15,
109 15, 14, 16, 15, 15, 14, 16, 15,
110 15, 14, 16, 15, 15, 14, 6, 6,
111 6, 1, 1, 1, 6, 8, 6, 8,
112 7, 6, 8, 7, 6, 8, 7, 6,
113 8, 7, 7, 15, 15, 16, 16, 16,
114 15, 15, 16, 16, 16, 15, 15, 16,
115 16, 16, 15, 15, 16, 16, 16, 15,
116 15, 15, 15, 14, 16, 15, 15, 14,
117 16, 15, 15, 14, 16, 15, 15, 14,
118 16, 15, 15, 14, 6, 6, 6, 1,
119 1, 1, 6, 8, 6, 8, 7, 6,
120 8, 7, 6, 8, 7, 6, 8, 7,
121 7, 15, 15, 16, 16, 16, 15, 15,
122 16, 16, 16, 15, 15, 16, 16, 16,
123 15, 15, 16, 16, 16, 5, 15, 15,
124 14, 16, 15, 15, 14, 16, 15, 15,
125 14, 16, 15, 15, 14, 16, 15, 15,
126 14, 6, 6, 6, 1, 1, 1, 6,
127 8, 6, 8, 7, 6, 8, 7, 6,
128 8, 7, 6, 8, 7, 7, 15, 15,
129 16, 16, 16, 15, 15, 16, 16, 16,
130 15, 15, 16, 16, 16, 15, 15, 16,
131 16, 16, 10, 15, 5, 15, 15, 14,
132 16, 15, 15, 14, 16, 15, 15, 14,
133 16, 15, 15, 14, 16, 15, 15, 14,
134 6, 6, 6, 1, 1, 1, 6, 8,
135 6, 8, 7, 6, 8, 7, 6, 8,
136 7, 6, 8, 7, 7, 15, 15, 16,
137 16, 16, 15, 15, 16, 16, 16, 15,
138 15, 16, 16, 16, 15, 15, 16, 16,
139 16, 15, 17, 15, 17, 10, 6, 1,
140 1, 1, 6, 16, 8, 6, 6, 1,
144 static const short _indic_syllable_machine_index_offsets[] = {
145 0, 2, 8, 12, 14, 19, 23, 25,
146 30, 34, 36, 41, 45, 47, 53, 55,
147 57, 63, 65, 67, 73, 75, 77, 83,
148 85, 87, 98, 104, 115, 121, 132, 138,
149 149, 155, 166, 168, 174, 178, 180, 185,
150 189, 191, 196, 200, 202, 207, 211, 213,
151 219, 221, 223, 229, 231, 233, 239, 241,
152 243, 249, 251, 253, 264, 270, 281, 287,
153 298, 304, 315, 321, 332, 334, 340, 344,
154 346, 351, 355, 357, 362, 366, 368, 373,
155 377, 379, 385, 387, 389, 395, 397, 399,
156 405, 407, 409, 415, 417, 419, 430, 436,
157 447, 453, 464, 470, 481, 487, 489, 495,
158 499, 501, 506, 510, 512, 517, 521, 523,
159 528, 532, 534, 540, 542, 544, 550, 552,
160 554, 560, 562, 564, 570, 572, 574, 585,
161 591, 602, 608, 619, 625, 636, 642, 653,
162 664, 669, 671, 691, 707, 723, 738, 755,
163 771, 787, 802, 819, 835, 851, 866, 883,
164 899, 915, 930, 947, 963, 979, 994, 1001,
165 1008, 1015, 1017, 1019, 1021, 1028, 1037, 1044,
166 1053, 1061, 1068, 1077, 1085, 1092, 1101, 1109,
167 1116, 1125, 1133, 1141, 1157, 1173, 1190, 1207,
168 1224, 1240, 1256, 1273, 1290, 1307, 1323, 1339,
169 1356, 1373, 1390, 1406, 1422, 1439, 1456, 1473,
170 1489, 1505, 1521, 1537, 1552, 1569, 1585, 1601,
171 1616, 1633, 1649, 1665, 1680, 1697, 1713, 1729,
172 1744, 1761, 1777, 1793, 1808, 1815, 1822, 1829,
173 1831, 1833, 1835, 1842, 1851, 1858, 1867, 1875,
174 1882, 1891, 1899, 1906, 1915, 1923, 1930, 1939,
175 1947, 1955, 1971, 1987, 2004, 2021, 2038, 2054,
176 2070, 2087, 2104, 2121, 2137, 2153, 2170, 2187,
177 2204, 2220, 2236, 2253, 2270, 2287, 2293, 2309,
178 2325, 2340, 2357, 2373, 2389, 2404, 2421, 2437,
179 2453, 2468, 2485, 2501, 2517, 2532, 2549, 2565,
180 2581, 2596, 2603, 2610, 2617, 2619, 2621, 2623,
181 2630, 2639, 2646, 2655, 2663, 2670, 2679, 2687,
182 2694, 2703, 2711, 2718, 2727, 2735, 2743, 2759,
183 2775, 2792, 2809, 2826, 2842, 2858, 2875, 2892,
184 2909, 2925, 2941, 2958, 2975, 2992, 3008, 3024,
185 3041, 3058, 3075, 3086, 3102, 3108, 3124, 3140,
186 3155, 3172, 3188, 3204, 3219, 3236, 3252, 3268,
187 3283, 3300, 3316, 3332, 3347, 3364, 3380, 3396,
188 3411, 3418, 3425, 3432, 3434, 3436, 3438, 3445,
189 3454, 3461, 3470, 3478, 3485, 3494, 3502, 3509,
190 3518, 3526, 3533, 3542, 3550, 3558, 3574, 3590,
191 3607, 3624, 3641, 3657, 3673, 3690, 3707, 3724,
192 3740, 3756, 3773, 3790, 3807, 3823, 3839, 3856,
193 3873, 3890, 3906, 3924, 3940, 3958, 3969, 3976,
194 3978, 3980, 3982, 3989, 4006, 4015, 4022, 4029,
195 4031, 4033, 4035, 4042
198 static const short _indic_syllable_machine_indicies[] = {
199 1, 0, 2, 3, 3, 4, 1, 0,
200 5, 5, 4, 0, 4, 0, 6, 6,
201 7, 1, 0, 8, 8, 7, 0, 7,
202 0, 9, 9, 10, 1, 0, 11, 11,
203 10, 0, 10, 0, 12, 12, 13, 1,
204 0, 14, 14, 13, 0, 13, 0, 15,
205 0, 0, 0, 1, 0, 16, 0, 17,
206 0, 18, 12, 12, 13, 1, 0, 19,
207 0, 20, 0, 21, 9, 9, 10, 1,
208 0, 22, 0, 23, 0, 24, 6, 6,
209 7, 1, 0, 25, 0, 26, 0, 2,
210 3, 3, 4, 1, 0, 0, 0, 0,
211 27, 0, 28, 3, 3, 4, 1, 0,
212 28, 3, 3, 4, 1, 0, 0, 0,
213 0, 29, 0, 30, 3, 3, 4, 1,
214 0, 30, 3, 3, 4, 1, 0, 0,
215 0, 0, 31, 0, 32, 3, 3, 4,
216 1, 0, 32, 3, 3, 4, 1, 0,
217 0, 0, 0, 33, 0, 34, 3, 3,
218 4, 1, 0, 34, 3, 3, 4, 1,
219 0, 0, 0, 0, 35, 0, 37, 36,
220 38, 39, 39, 40, 37, 36, 41, 41,
221 40, 36, 40, 36, 42, 42, 43, 37,
222 36, 44, 44, 43, 36, 43, 36, 45,
223 45, 46, 37, 36, 47, 47, 46, 36,
224 46, 36, 48, 48, 49, 37, 36, 50,
225 50, 49, 36, 49, 36, 51, 36, 36,
226 36, 37, 36, 52, 36, 53, 36, 54,
227 48, 48, 49, 37, 36, 55, 36, 56,
228 36, 57, 45, 45, 46, 37, 36, 58,
229 36, 59, 36, 60, 42, 42, 43, 37,
230 36, 61, 36, 62, 36, 38, 39, 39,
231 40, 37, 36, 36, 36, 36, 63, 36,
232 64, 39, 39, 40, 37, 36, 64, 39,
233 39, 40, 37, 36, 36, 36, 36, 65,
234 36, 66, 39, 39, 40, 37, 36, 66,
235 39, 39, 40, 37, 36, 36, 36, 36,
236 67, 36, 68, 39, 39, 40, 37, 36,
237 68, 39, 39, 40, 37, 36, 36, 36,
238 36, 69, 36, 70, 39, 39, 40, 37,
239 36, 70, 39, 39, 40, 37, 36, 36,
240 36, 36, 71, 36, 73, 72, 74, 75,
241 75, 76, 73, 72, 78, 78, 76, 77,
242 76, 77, 79, 79, 80, 73, 72, 81,
243 81, 80, 72, 80, 72, 82, 82, 83,
244 73, 72, 84, 84, 83, 72, 83, 72,
245 85, 85, 86, 73, 72, 87, 87, 86,
246 72, 86, 72, 88, 72, 72, 72, 73,
247 72, 89, 72, 90, 72, 91, 85, 85,
248 86, 73, 72, 92, 72, 93, 72, 94,
249 82, 82, 83, 73, 72, 95, 72, 96,
250 72, 97, 79, 79, 80, 73, 72, 98,
251 72, 99, 72, 74, 75, 75, 76, 73,
252 72, 72, 72, 72, 100, 72, 101, 75,
253 75, 76, 73, 72, 101, 75, 75, 76,
254 73, 72, 72, 72, 72, 102, 72, 103,
255 75, 75, 76, 73, 72, 103, 75, 75,
256 76, 73, 72, 72, 72, 72, 104, 72,
257 105, 75, 75, 76, 73, 72, 105, 75,
258 75, 76, 73, 72, 72, 72, 72, 106,
259 72, 107, 75, 75, 76, 73, 72, 109,
260 108, 110, 111, 111, 112, 109, 108, 113,
261 113, 112, 108, 112, 108, 114, 114, 115,
262 109, 108, 116, 116, 115, 108, 115, 108,
263 117, 117, 118, 109, 108, 119, 119, 118,
264 108, 118, 108, 120, 120, 121, 109, 108,
265 122, 122, 121, 108, 121, 108, 123, 108,
266 108, 108, 109, 108, 124, 108, 125, 108,
267 126, 120, 120, 121, 109, 108, 127, 108,
268 128, 108, 129, 117, 117, 118, 109, 108,
269 130, 108, 131, 108, 132, 114, 114, 115,
270 109, 108, 133, 108, 134, 108, 110, 111,
271 111, 112, 109, 108, 108, 108, 108, 135,
272 108, 136, 111, 111, 112, 109, 108, 136,
273 111, 111, 112, 109, 108, 108, 108, 108,
274 137, 108, 138, 111, 111, 112, 109, 108,
275 138, 111, 111, 112, 109, 108, 108, 108,
276 108, 139, 108, 140, 111, 111, 112, 109,
277 108, 140, 111, 111, 112, 109, 108, 108,
278 108, 108, 141, 108, 142, 111, 111, 112,
279 109, 108, 142, 111, 111, 112, 109, 108,
280 108, 108, 108, 143, 108, 107, 75, 75,
281 76, 73, 72, 72, 72, 72, 144, 72,
282 78, 78, 76, 1, 0, 146, 145, 148,
283 149, 150, 151, 152, 153, 76, 73, 147,
284 154, 155, 155, 144, 147, 156, 157, 158,
285 159, 160, 147, 162, 163, 164, 165, 4,
286 1, 161, 166, 161, 161, 35, 161, 161,
287 161, 167, 161, 168, 163, 169, 169, 4,
288 1, 161, 166, 161, 161, 161, 161, 161,
289 161, 167, 161, 163, 169, 169, 4, 1,
290 161, 166, 161, 161, 161, 161, 161, 161,
291 167, 161, 170, 161, 161, 161, 17, 171,
292 161, 1, 161, 166, 161, 161, 161, 161,
293 161, 170, 161, 172, 173, 174, 175, 4,
294 1, 161, 166, 161, 161, 33, 161, 161,
295 161, 167, 161, 176, 173, 177, 177, 4,
296 1, 161, 166, 161, 161, 161, 161, 161,
297 161, 167, 161, 173, 177, 177, 4, 1,
298 161, 166, 161, 161, 161, 161, 161, 161,
299 167, 161, 178, 161, 161, 161, 17, 179,
300 161, 1, 161, 166, 161, 161, 161, 161,
301 161, 178, 161, 180, 181, 182, 183, 4,
302 1, 161, 166, 161, 161, 31, 161, 161,
303 161, 167, 161, 184, 181, 185, 185, 4,
304 1, 161, 166, 161, 161, 161, 161, 161,
305 161, 167, 161, 181, 185, 185, 4, 1,
306 161, 166, 161, 161, 161, 161, 161, 161,
307 167, 161, 186, 161, 161, 161, 17, 187,
308 161, 1, 161, 166, 161, 161, 161, 161,
309 161, 186, 161, 188, 189, 190, 191, 4,
310 1, 161, 166, 161, 161, 29, 161, 161,
311 161, 167, 161, 192, 189, 193, 193, 4,
312 1, 161, 166, 161, 161, 161, 161, 161,
313 161, 167, 161, 189, 193, 193, 4, 1,
314 161, 166, 161, 161, 161, 161, 161, 161,
315 167, 161, 194, 161, 161, 161, 17, 195,
316 161, 1, 161, 166, 161, 161, 161, 161,
317 161, 194, 161, 196, 197, 198, 199, 4,
318 1, 161, 166, 161, 161, 27, 161, 161,
319 161, 167, 161, 200, 197, 201, 201, 4,
320 1, 161, 166, 161, 161, 161, 161, 161,
321 161, 167, 161, 197, 201, 201, 4, 1,
322 161, 166, 161, 161, 161, 161, 161, 161,
323 167, 161, 17, 202, 161, 1, 161, 166,
324 161, 203, 203, 161, 1, 161, 166, 161,
325 204, 161, 161, 205, 161, 166, 161, 166,
326 161, 206, 161, 207, 161, 204, 161, 161,
327 161, 161, 166, 161, 17, 161, 203, 203,
328 161, 1, 161, 166, 161, 203, 202, 161,
329 1, 161, 166, 161, 208, 26, 209, 210,
330 7, 1, 161, 166, 161, 26, 209, 210,
331 7, 1, 161, 166, 161, 209, 209, 7,
332 1, 161, 166, 161, 211, 23, 212, 213,
333 10, 1, 161, 166, 161, 23, 212, 213,
334 10, 1, 161, 166, 161, 212, 212, 10,
335 1, 161, 166, 161, 214, 20, 215, 216,
336 13, 1, 161, 166, 161, 20, 215, 216,
337 13, 1, 161, 166, 161, 215, 215, 13,
338 1, 161, 166, 161, 217, 17, 203, 218,
339 161, 1, 161, 166, 161, 17, 203, 218,
340 161, 1, 161, 166, 161, 197, 201, 201,
341 4, 1, 161, 166, 161, 196, 197, 201,
342 201, 4, 1, 161, 166, 161, 161, 161,
343 161, 161, 161, 167, 161, 196, 197, 198,
344 201, 4, 1, 161, 166, 161, 161, 27,
345 161, 161, 161, 167, 161, 194, 161, 219,
346 161, 203, 203, 161, 1, 161, 166, 161,
347 161, 161, 161, 161, 194, 161, 194, 161,
348 161, 161, 203, 203, 161, 1, 161, 166,
349 161, 161, 161, 161, 161, 194, 161, 194,
350 161, 161, 161, 203, 195, 161, 1, 161,
351 166, 161, 161, 161, 161, 161, 194, 161,
352 188, 189, 193, 193, 4, 1, 161, 166,
353 161, 161, 161, 161, 161, 161, 167, 161,
354 188, 189, 190, 193, 4, 1, 161, 166,
355 161, 161, 29, 161, 161, 161, 167, 161,
356 186, 161, 220, 161, 203, 203, 161, 1,
357 161, 166, 161, 161, 161, 161, 161, 186,
358 161, 186, 161, 161, 161, 203, 203, 161,
359 1, 161, 166, 161, 161, 161, 161, 161,
360 186, 161, 186, 161, 161, 161, 203, 187,
361 161, 1, 161, 166, 161, 161, 161, 161,
362 161, 186, 161, 180, 181, 185, 185, 4,
363 1, 161, 166, 161, 161, 161, 161, 161,
364 161, 167, 161, 180, 181, 182, 185, 4,
365 1, 161, 166, 161, 161, 31, 161, 161,
366 161, 167, 161, 178, 161, 221, 161, 203,
367 203, 161, 1, 161, 166, 161, 161, 161,
368 161, 161, 178, 161, 178, 161, 161, 161,
369 203, 203, 161, 1, 161, 166, 161, 161,
370 161, 161, 161, 178, 161, 178, 161, 161,
371 161, 203, 179, 161, 1, 161, 166, 161,
372 161, 161, 161, 161, 178, 161, 172, 173,
373 177, 177, 4, 1, 161, 166, 161, 161,
374 161, 161, 161, 161, 167, 161, 172, 173,
375 174, 177, 4, 1, 161, 166, 161, 161,
376 33, 161, 161, 161, 167, 161, 170, 161,
377 222, 161, 203, 203, 161, 1, 161, 166,
378 161, 161, 161, 161, 161, 170, 161, 170,
379 161, 161, 161, 203, 203, 161, 1, 161,
380 166, 161, 161, 161, 161, 161, 170, 161,
381 170, 161, 161, 161, 203, 171, 161, 1,
382 161, 166, 161, 161, 161, 161, 161, 170,
383 161, 162, 163, 169, 169, 4, 1, 161,
384 166, 161, 161, 161, 161, 161, 161, 167,
385 161, 162, 163, 164, 169, 4, 1, 161,
386 166, 161, 161, 35, 161, 161, 161, 167,
387 161, 224, 225, 226, 227, 40, 37, 223,
388 228, 223, 223, 71, 223, 223, 223, 229,
389 223, 230, 225, 231, 227, 40, 37, 223,
390 228, 223, 223, 223, 223, 223, 223, 229,
391 223, 225, 231, 227, 40, 37, 223, 228,
392 223, 223, 223, 223, 223, 223, 229, 223,
393 232, 223, 223, 223, 53, 233, 223, 37,
394 223, 228, 223, 223, 223, 223, 223, 232,
395 223, 234, 235, 236, 237, 40, 37, 223,
396 228, 223, 223, 69, 223, 223, 223, 229,
397 223, 238, 235, 239, 239, 40, 37, 223,
398 228, 223, 223, 223, 223, 223, 223, 229,
399 223, 235, 239, 239, 40, 37, 223, 228,
400 223, 223, 223, 223, 223, 223, 229, 223,
401 240, 223, 223, 223, 53, 241, 223, 37,
402 223, 228, 223, 223, 223, 223, 223, 240,
403 223, 242, 243, 244, 245, 40, 37, 223,
404 228, 223, 223, 67, 223, 223, 223, 229,
405 223, 246, 243, 247, 247, 40, 37, 223,
406 228, 223, 223, 223, 223, 223, 223, 229,
407 223, 243, 247, 247, 40, 37, 223, 228,
408 223, 223, 223, 223, 223, 223, 229, 223,
409 248, 223, 223, 223, 53, 249, 223, 37,
410 223, 228, 223, 223, 223, 223, 223, 248,
411 223, 250, 251, 252, 253, 40, 37, 223,
412 228, 223, 223, 65, 223, 223, 223, 229,
413 223, 254, 251, 255, 255, 40, 37, 223,
414 228, 223, 223, 223, 223, 223, 223, 229,
415 223, 251, 255, 255, 40, 37, 223, 228,
416 223, 223, 223, 223, 223, 223, 229, 223,
417 256, 223, 223, 223, 53, 257, 223, 37,
418 223, 228, 223, 223, 223, 223, 223, 256,
419 223, 258, 259, 260, 261, 40, 37, 223,
420 228, 223, 223, 63, 223, 223, 223, 229,
421 223, 262, 259, 263, 263, 40, 37, 223,
422 228, 223, 223, 223, 223, 223, 223, 229,
423 223, 259, 263, 263, 40, 37, 223, 228,
424 223, 223, 223, 223, 223, 223, 229, 223,
425 53, 264, 223, 37, 223, 228, 223, 265,
426 265, 223, 37, 223, 228, 223, 266, 223,
427 223, 267, 223, 228, 223, 228, 223, 268,
428 223, 269, 223, 266, 223, 223, 223, 223,
429 228, 223, 53, 223, 265, 265, 223, 37,
430 223, 228, 223, 265, 264, 223, 37, 223,
431 228, 223, 270, 62, 271, 272, 43, 37,
432 223, 228, 223, 62, 271, 272, 43, 37,
433 223, 228, 223, 271, 271, 43, 37, 223,
434 228, 223, 273, 59, 274, 275, 46, 37,
435 223, 228, 223, 59, 274, 275, 46, 37,
436 223, 228, 223, 274, 274, 46, 37, 223,
437 228, 223, 276, 56, 277, 278, 49, 37,
438 223, 228, 223, 56, 277, 278, 49, 37,
439 223, 228, 223, 277, 277, 49, 37, 223,
440 228, 223, 279, 53, 265, 280, 223, 37,
441 223, 228, 223, 53, 265, 280, 223, 37,
442 223, 228, 223, 259, 263, 263, 40, 37,
443 223, 228, 223, 258, 259, 263, 263, 40,
444 37, 223, 228, 223, 223, 223, 223, 223,
445 223, 229, 223, 258, 259, 260, 263, 40,
446 37, 223, 228, 223, 223, 63, 223, 223,
447 223, 229, 223, 256, 223, 281, 223, 265,
448 265, 223, 37, 223, 228, 223, 223, 223,
449 223, 223, 256, 223, 256, 223, 223, 223,
450 265, 265, 223, 37, 223, 228, 223, 223,
451 223, 223, 223, 256, 223, 256, 223, 223,
452 223, 265, 257, 223, 37, 223, 228, 223,
453 223, 223, 223, 223, 256, 223, 250, 251,
454 255, 255, 40, 37, 223, 228, 223, 223,
455 223, 223, 223, 223, 229, 223, 250, 251,
456 252, 255, 40, 37, 223, 228, 223, 223,
457 65, 223, 223, 223, 229, 223, 248, 223,
458 282, 223, 265, 265, 223, 37, 223, 228,
459 223, 223, 223, 223, 223, 248, 223, 248,
460 223, 223, 223, 265, 265, 223, 37, 223,
461 228, 223, 223, 223, 223, 223, 248, 223,
462 248, 223, 223, 223, 265, 249, 223, 37,
463 223, 228, 223, 223, 223, 223, 223, 248,
464 223, 242, 243, 247, 247, 40, 37, 223,
465 228, 223, 223, 223, 223, 223, 223, 229,
466 223, 242, 243, 244, 247, 40, 37, 223,
467 228, 223, 223, 67, 223, 223, 223, 229,
468 223, 240, 223, 283, 223, 265, 265, 223,
469 37, 223, 228, 223, 223, 223, 223, 223,
470 240, 223, 240, 223, 223, 223, 265, 265,
471 223, 37, 223, 228, 223, 223, 223, 223,
472 223, 240, 223, 240, 223, 223, 223, 265,
473 241, 223, 37, 223, 228, 223, 223, 223,
474 223, 223, 240, 223, 234, 235, 239, 239,
475 40, 37, 223, 228, 223, 223, 223, 223,
476 223, 223, 229, 223, 234, 235, 236, 239,
477 40, 37, 223, 228, 223, 223, 69, 223,
478 223, 223, 229, 223, 232, 223, 284, 223,
479 265, 265, 223, 37, 223, 228, 223, 223,
480 223, 223, 223, 232, 223, 232, 223, 223,
481 223, 265, 265, 223, 37, 223, 228, 223,
482 223, 223, 223, 223, 232, 223, 232, 223,
483 223, 223, 265, 233, 223, 37, 223, 228,
484 223, 223, 223, 223, 223, 232, 223, 70,
485 39, 39, 40, 37, 223, 224, 225, 231,
486 227, 40, 37, 223, 228, 223, 223, 223,
487 223, 223, 223, 229, 223, 286, 151, 287,
488 287, 76, 73, 285, 154, 285, 285, 285,
489 285, 285, 285, 158, 285, 151, 287, 287,
490 76, 73, 285, 154, 285, 285, 285, 285,
491 285, 285, 158, 285, 288, 285, 285, 285,
492 90, 289, 285, 73, 285, 154, 285, 285,
493 285, 285, 285, 288, 285, 290, 291, 292,
494 293, 76, 73, 285, 154, 285, 285, 106,
495 285, 285, 285, 158, 285, 294, 291, 295,
496 295, 76, 73, 285, 154, 285, 285, 285,
497 285, 285, 285, 158, 285, 291, 295, 295,
498 76, 73, 285, 154, 285, 285, 285, 285,
499 285, 285, 158, 285, 296, 285, 285, 285,
500 90, 297, 285, 73, 285, 154, 285, 285,
501 285, 285, 285, 296, 285, 298, 299, 300,
502 301, 76, 73, 285, 154, 285, 285, 104,
503 285, 285, 285, 158, 285, 302, 299, 303,
504 303, 76, 73, 285, 154, 285, 285, 285,
505 285, 285, 285, 158, 285, 299, 303, 303,
506 76, 73, 285, 154, 285, 285, 285, 285,
507 285, 285, 158, 285, 304, 285, 285, 285,
508 90, 305, 285, 73, 285, 154, 285, 285,
509 285, 285, 285, 304, 285, 306, 307, 308,
510 309, 76, 73, 285, 154, 285, 285, 102,
511 285, 285, 285, 158, 285, 310, 307, 311,
512 311, 76, 73, 285, 154, 285, 285, 285,
513 285, 285, 285, 158, 285, 307, 311, 311,
514 76, 73, 285, 154, 285, 285, 285, 285,
515 285, 285, 158, 285, 312, 285, 285, 285,
516 90, 313, 285, 73, 285, 154, 285, 285,
517 285, 285, 285, 312, 285, 314, 315, 316,
518 317, 76, 73, 285, 154, 285, 285, 100,
519 285, 285, 285, 158, 285, 318, 315, 319,
520 319, 76, 73, 285, 154, 285, 285, 285,
521 285, 285, 285, 158, 285, 315, 319, 319,
522 76, 73, 285, 154, 285, 285, 285, 285,
523 285, 285, 158, 285, 90, 320, 285, 73,
524 285, 154, 285, 321, 321, 285, 73, 285,
525 154, 285, 322, 285, 285, 323, 285, 154,
526 285, 154, 285, 324, 285, 325, 285, 322,
527 285, 285, 285, 285, 154, 285, 90, 285,
528 321, 321, 285, 73, 285, 154, 285, 321,
529 320, 285, 73, 285, 154, 285, 326, 99,
530 327, 328, 80, 73, 285, 154, 285, 99,
531 327, 328, 80, 73, 285, 154, 285, 327,
532 327, 80, 73, 285, 154, 285, 329, 96,
533 330, 331, 83, 73, 285, 154, 285, 96,
534 330, 331, 83, 73, 285, 154, 285, 330,
535 330, 83, 73, 285, 154, 285, 332, 93,
536 333, 334, 86, 73, 285, 154, 285, 93,
537 333, 334, 86, 73, 285, 154, 285, 333,
538 333, 86, 73, 285, 154, 285, 335, 90,
539 321, 336, 285, 73, 285, 154, 285, 90,
540 321, 336, 285, 73, 285, 154, 285, 315,
541 319, 319, 76, 73, 285, 154, 285, 314,
542 315, 319, 319, 76, 73, 285, 154, 285,
543 285, 285, 285, 285, 285, 158, 285, 314,
544 315, 316, 319, 76, 73, 285, 154, 285,
545 285, 100, 285, 285, 285, 158, 285, 312,
546 285, 337, 285, 321, 321, 285, 73, 285,
547 154, 285, 285, 285, 285, 285, 312, 285,
548 312, 285, 285, 285, 321, 321, 285, 73,
549 285, 154, 285, 285, 285, 285, 285, 312,
550 285, 312, 285, 285, 285, 321, 313, 285,
551 73, 285, 154, 285, 285, 285, 285, 285,
552 312, 285, 306, 307, 311, 311, 76, 73,
553 285, 154, 285, 285, 285, 285, 285, 285,
554 158, 285, 306, 307, 308, 311, 76, 73,
555 285, 154, 285, 285, 102, 285, 285, 285,
556 158, 285, 304, 285, 338, 285, 321, 321,
557 285, 73, 285, 154, 285, 285, 285, 285,
558 285, 304, 285, 304, 285, 285, 285, 321,
559 321, 285, 73, 285, 154, 285, 285, 285,
560 285, 285, 304, 285, 304, 285, 285, 285,
561 321, 305, 285, 73, 285, 154, 285, 285,
562 285, 285, 285, 304, 285, 298, 299, 303,
563 303, 76, 73, 285, 154, 285, 285, 285,
564 285, 285, 285, 158, 285, 298, 299, 300,
565 303, 76, 73, 285, 154, 285, 285, 104,
566 285, 285, 285, 158, 285, 296, 285, 339,
567 285, 321, 321, 285, 73, 285, 154, 285,
568 285, 285, 285, 285, 296, 285, 296, 285,
569 285, 285, 321, 321, 285, 73, 285, 154,
570 285, 285, 285, 285, 285, 296, 285, 296,
571 285, 285, 285, 321, 297, 285, 73, 285,
572 154, 285, 285, 285, 285, 285, 296, 285,
573 290, 291, 295, 295, 76, 73, 285, 154,
574 285, 285, 285, 285, 285, 285, 158, 285,
575 290, 291, 292, 295, 76, 73, 285, 154,
576 285, 285, 106, 285, 285, 285, 158, 285,
577 288, 285, 340, 285, 321, 321, 285, 73,
578 285, 154, 285, 285, 285, 285, 285, 288,
579 285, 288, 285, 285, 285, 321, 321, 285,
580 73, 285, 154, 285, 285, 285, 285, 285,
581 288, 285, 288, 285, 285, 285, 321, 289,
582 285, 73, 285, 154, 285, 285, 285, 285,
583 285, 288, 285, 107, 75, 75, 76, 73,
584 341, 341, 341, 341, 144, 341, 150, 151,
585 287, 287, 76, 73, 285, 154, 285, 285,
586 285, 285, 285, 285, 158, 285, 107, 75,
587 75, 76, 73, 341, 343, 344, 345, 346,
588 112, 109, 342, 347, 342, 342, 143, 342,
589 342, 342, 348, 342, 349, 344, 346, 346,
590 112, 109, 342, 347, 342, 342, 342, 342,
591 342, 342, 348, 342, 344, 346, 346, 112,
592 109, 342, 347, 342, 342, 342, 342, 342,
593 342, 348, 342, 350, 342, 342, 342, 125,
594 351, 342, 109, 342, 347, 342, 342, 342,
595 342, 342, 350, 342, 352, 353, 354, 355,
596 112, 109, 342, 347, 342, 342, 141, 342,
597 342, 342, 348, 342, 356, 353, 357, 357,
598 112, 109, 342, 347, 342, 342, 342, 342,
599 342, 342, 348, 342, 353, 357, 357, 112,
600 109, 342, 347, 342, 342, 342, 342, 342,
601 342, 348, 342, 358, 342, 342, 342, 125,
602 359, 342, 109, 342, 347, 342, 342, 342,
603 342, 342, 358, 342, 360, 361, 362, 363,
604 112, 109, 342, 347, 342, 342, 139, 342,
605 342, 342, 348, 342, 364, 361, 365, 365,
606 112, 109, 342, 347, 342, 342, 342, 342,
607 342, 342, 348, 342, 361, 365, 365, 112,
608 109, 342, 347, 342, 342, 342, 342, 342,
609 342, 348, 342, 366, 342, 342, 342, 125,
610 367, 342, 109, 342, 347, 342, 342, 342,
611 342, 342, 366, 342, 368, 369, 370, 371,
612 112, 109, 342, 347, 342, 342, 137, 342,
613 342, 342, 348, 342, 372, 369, 373, 373,
614 112, 109, 342, 347, 342, 342, 342, 342,
615 342, 342, 348, 342, 369, 373, 373, 112,
616 109, 342, 347, 342, 342, 342, 342, 342,
617 342, 348, 342, 374, 342, 342, 342, 125,
618 375, 342, 109, 342, 347, 342, 342, 342,
619 342, 342, 374, 342, 376, 377, 378, 379,
620 112, 109, 342, 347, 342, 342, 135, 342,
621 342, 342, 348, 342, 380, 377, 381, 381,
622 112, 109, 342, 347, 342, 342, 342, 342,
623 342, 342, 348, 342, 377, 381, 381, 112,
624 109, 342, 347, 342, 342, 342, 342, 342,
625 342, 348, 342, 125, 382, 342, 109, 342,
626 347, 342, 383, 383, 342, 109, 342, 347,
627 342, 384, 342, 342, 385, 342, 347, 342,
628 347, 342, 386, 342, 387, 342, 384, 342,
629 342, 342, 342, 347, 342, 125, 342, 383,
630 383, 342, 109, 342, 347, 342, 383, 382,
631 342, 109, 342, 347, 342, 388, 134, 389,
632 390, 115, 109, 342, 347, 342, 134, 389,
633 390, 115, 109, 342, 347, 342, 389, 389,
634 115, 109, 342, 347, 342, 391, 131, 392,
635 393, 118, 109, 342, 347, 342, 131, 392,
636 393, 118, 109, 342, 347, 342, 392, 392,
637 118, 109, 342, 347, 342, 394, 128, 395,
638 396, 121, 109, 342, 347, 342, 128, 395,
639 396, 121, 109, 342, 347, 342, 395, 395,
640 121, 109, 342, 347, 342, 397, 125, 383,
641 398, 342, 109, 342, 347, 342, 125, 383,
642 398, 342, 109, 342, 347, 342, 377, 381,
643 381, 112, 109, 342, 347, 342, 376, 377,
644 381, 381, 112, 109, 342, 347, 342, 342,
645 342, 342, 342, 342, 348, 342, 376, 377,
646 378, 381, 112, 109, 342, 347, 342, 342,
647 135, 342, 342, 342, 348, 342, 374, 342,
648 399, 342, 383, 383, 342, 109, 342, 347,
649 342, 342, 342, 342, 342, 374, 342, 374,
650 342, 342, 342, 383, 383, 342, 109, 342,
651 347, 342, 342, 342, 342, 342, 374, 342,
652 374, 342, 342, 342, 383, 375, 342, 109,
653 342, 347, 342, 342, 342, 342, 342, 374,
654 342, 368, 369, 373, 373, 112, 109, 342,
655 347, 342, 342, 342, 342, 342, 342, 348,
656 342, 368, 369, 370, 373, 112, 109, 342,
657 347, 342, 342, 137, 342, 342, 342, 348,
658 342, 366, 342, 400, 342, 383, 383, 342,
659 109, 342, 347, 342, 342, 342, 342, 342,
660 366, 342, 366, 342, 342, 342, 383, 383,
661 342, 109, 342, 347, 342, 342, 342, 342,
662 342, 366, 342, 366, 342, 342, 342, 383,
663 367, 342, 109, 342, 347, 342, 342, 342,
664 342, 342, 366, 342, 360, 361, 365, 365,
665 112, 109, 342, 347, 342, 342, 342, 342,
666 342, 342, 348, 342, 360, 361, 362, 365,
667 112, 109, 342, 347, 342, 342, 139, 342,
668 342, 342, 348, 342, 358, 342, 401, 342,
669 383, 383, 342, 109, 342, 347, 342, 342,
670 342, 342, 342, 358, 342, 358, 342, 342,
671 342, 383, 383, 342, 109, 342, 347, 342,
672 342, 342, 342, 342, 358, 342, 358, 342,
673 342, 342, 383, 359, 342, 109, 342, 347,
674 342, 342, 342, 342, 342, 358, 342, 352,
675 353, 357, 357, 112, 109, 342, 347, 342,
676 342, 342, 342, 342, 342, 348, 342, 352,
677 353, 354, 357, 112, 109, 342, 347, 342,
678 342, 141, 342, 342, 342, 348, 342, 350,
679 342, 402, 342, 383, 383, 342, 109, 342,
680 347, 342, 342, 342, 342, 342, 350, 342,
681 350, 342, 342, 342, 383, 383, 342, 109,
682 342, 347, 342, 342, 342, 342, 342, 350,
683 342, 350, 342, 342, 342, 383, 351, 342,
684 109, 342, 347, 342, 342, 342, 342, 342,
685 350, 342, 343, 344, 346, 346, 112, 109,
686 342, 347, 342, 342, 342, 342, 342, 342,
687 348, 342, 148, 149, 150, 151, 403, 287,
688 76, 73, 285, 154, 155, 155, 144, 285,
689 285, 148, 158, 285, 162, 404, 164, 165,
690 4, 1, 161, 166, 161, 161, 35, 161,
691 161, 161, 167, 161, 170, 149, 150, 151,
692 405, 406, 76, 407, 161, 408, 161, 155,
693 144, 161, 161, 170, 158, 161, 107, 409,
694 409, 76, 407, 161, 166, 161, 161, 144,
695 161, 410, 161, 161, 411, 161, 408, 161,
696 408, 161, 412, 161, 207, 161, 410, 161,
697 161, 161, 161, 408, 161, 170, 161, 222,
698 107, 409, 409, 76, 407, 161, 166, 161,
699 161, 161, 161, 161, 170, 161, 414, 413,
700 415, 415, 413, 146, 413, 416, 413, 415,
701 415, 413, 146, 413, 416, 413, 417, 413,
702 413, 418, 413, 416, 413, 416, 413, 419,
703 413, 420, 413, 417, 413, 413, 413, 413,
704 416, 413, 148, 341, 341, 341, 341, 341,
705 341, 341, 341, 341, 155, 341, 341, 341,
709 static const short _indic_syllable_machine_trans_targs[] = {
710 138, 160, 166, 2, 167, 3, 5, 170,
711 6, 8, 173, 9, 11, 176, 12, 14,
712 15, 159, 17, 18, 175, 20, 21, 172,
713 23, 24, 169, 179, 183, 184, 188, 189,
714 193, 194, 198, 199, 138, 222, 228, 36,
715 229, 37, 39, 232, 40, 42, 235, 43,
716 45, 238, 46, 48, 49, 221, 51, 52,
717 237, 54, 55, 234, 57, 58, 231, 241,
718 245, 246, 250, 251, 255, 256, 260, 262,
719 138, 283, 289, 70, 290, 138, 71, 73,
720 293, 74, 76, 296, 77, 79, 299, 80,
721 82, 83, 282, 85, 86, 298, 88, 89,
722 295, 91, 92, 292, 302, 306, 307, 311,
723 312, 316, 317, 321, 138, 346, 352, 103,
724 353, 104, 106, 356, 107, 109, 359, 110,
725 112, 362, 113, 115, 116, 345, 118, 119,
726 361, 121, 122, 358, 124, 125, 355, 365,
727 369, 370, 374, 375, 379, 380, 384, 385,
728 323, 138, 398, 138, 139, 201, 263, 265,
729 322, 324, 285, 325, 386, 387, 301, 396,
730 403, 138, 140, 142, 33, 200, 162, 178,
731 141, 32, 143, 196, 144, 146, 31, 195,
732 145, 30, 147, 191, 148, 150, 29, 190,
733 149, 28, 151, 186, 152, 154, 27, 185,
734 153, 26, 155, 181, 156, 158, 25, 180,
735 157, 1, 165, 0, 161, 164, 163, 138,
736 168, 4, 22, 171, 7, 19, 174, 10,
737 16, 177, 13, 182, 187, 192, 197, 138,
738 202, 204, 67, 261, 224, 240, 203, 66,
739 205, 258, 206, 208, 65, 257, 207, 64,
740 209, 253, 210, 212, 63, 252, 211, 62,
741 213, 248, 214, 216, 61, 247, 215, 60,
742 217, 243, 218, 220, 59, 242, 219, 35,
743 227, 34, 223, 226, 225, 138, 230, 38,
744 56, 233, 41, 53, 236, 44, 50, 239,
745 47, 244, 249, 254, 259, 138, 264, 100,
746 266, 319, 267, 269, 99, 318, 268, 98,
747 270, 314, 271, 273, 97, 313, 272, 96,
748 274, 309, 275, 277, 95, 308, 276, 94,
749 278, 304, 279, 281, 93, 303, 280, 69,
750 288, 68, 284, 287, 286, 138, 291, 72,
751 90, 294, 75, 87, 297, 78, 84, 300,
752 81, 305, 310, 315, 320, 138, 138, 326,
753 328, 134, 133, 348, 364, 327, 329, 382,
754 330, 332, 132, 381, 331, 131, 333, 377,
755 334, 336, 130, 376, 335, 129, 337, 372,
756 338, 340, 128, 371, 339, 127, 341, 367,
757 342, 344, 126, 366, 343, 102, 351, 101,
758 347, 350, 349, 138, 354, 105, 123, 357,
759 108, 120, 360, 111, 117, 363, 114, 368,
760 373, 378, 383, 135, 388, 389, 395, 390,
761 392, 136, 391, 394, 393, 138, 397, 137,
762 400, 399, 402, 401, 138
765 static const char _indic_syllable_machine_trans_actions[] = {
766 1, 0, 2, 0, 2, 0, 0, 2,
767 0, 0, 2, 0, 0, 2, 0, 0,
768 0, 2, 0, 0, 2, 0, 0, 2,
769 0, 0, 2, 2, 2, 2, 2, 2,
770 2, 2, 2, 2, 3, 0, 2, 0,
771 2, 0, 0, 2, 0, 0, 2, 0,
772 0, 2, 0, 0, 0, 2, 0, 0,
773 2, 0, 0, 2, 0, 0, 2, 2,
774 2, 2, 2, 2, 2, 2, 2, 2,
775 4, 0, 2, 0, 2, 5, 0, 0,
776 2, 0, 0, 2, 0, 0, 2, 0,
777 0, 0, 2, 0, 0, 2, 0, 0,
778 2, 0, 0, 2, 6, 2, 6, 2,
779 6, 2, 6, 2, 7, 0, 2, 0,
780 2, 0, 0, 2, 0, 0, 2, 0,
781 0, 2, 0, 0, 0, 2, 0, 0,
782 2, 0, 0, 2, 0, 0, 2, 2,
783 2, 2, 2, 2, 2, 2, 2, 2,
784 6, 8, 0, 11, 2, 2, 6, 0,
785 12, 12, 0, 2, 6, 2, 6, 2,
786 0, 13, 2, 0, 0, 2, 0, 2,
787 2, 0, 2, 2, 2, 0, 0, 2,
788 2, 0, 2, 2, 2, 0, 0, 2,
789 2, 0, 2, 2, 2, 0, 0, 2,
790 2, 0, 2, 2, 2, 0, 0, 2,
791 2, 0, 2, 0, 0, 0, 0, 14,
792 2, 0, 0, 2, 0, 0, 2, 0,
793 0, 2, 0, 2, 2, 2, 2, 15,
794 2, 0, 0, 2, 0, 2, 2, 0,
795 2, 2, 2, 0, 0, 2, 2, 0,
796 2, 2, 2, 0, 0, 2, 2, 0,
797 2, 2, 2, 0, 0, 2, 2, 0,
798 2, 2, 2, 0, 0, 2, 2, 0,
799 2, 0, 0, 0, 0, 16, 2, 0,
800 0, 2, 0, 0, 2, 0, 0, 2,
801 0, 2, 2, 2, 2, 17, 6, 0,
802 6, 2, 6, 0, 0, 6, 6, 0,
803 6, 2, 6, 0, 0, 6, 6, 0,
804 6, 2, 6, 0, 0, 6, 6, 0,
805 6, 2, 6, 0, 0, 6, 6, 0,
806 2, 0, 0, 0, 0, 18, 2, 0,
807 0, 2, 0, 0, 2, 0, 0, 2,
808 0, 2, 2, 2, 2, 19, 20, 2,
809 0, 0, 0, 0, 2, 2, 2, 2,
810 2, 0, 0, 2, 2, 0, 2, 2,
811 2, 0, 0, 2, 2, 0, 2, 2,
812 2, 0, 0, 2, 2, 0, 2, 2,
813 2, 0, 0, 2, 2, 0, 2, 0,
814 0, 0, 0, 21, 2, 0, 0, 2,
815 0, 0, 2, 0, 0, 2, 0, 2,
816 2, 2, 2, 0, 0, 22, 22, 0,
817 0, 0, 0, 0, 0, 23, 2, 0,
821 static const char _indic_syllable_machine_to_state_actions[] = {
822 0, 0, 0, 0, 0, 0, 0, 0,
823 0, 0, 0, 0, 0, 0, 0, 0,
824 0, 0, 0, 0, 0, 0, 0, 0,
825 0, 0, 0, 0, 0, 0, 0, 0,
826 0, 0, 0, 0, 0, 0, 0, 0,
827 0, 0, 0, 0, 0, 0, 0, 0,
828 0, 0, 0, 0, 0, 0, 0, 0,
829 0, 0, 0, 0, 0, 0, 0, 0,
830 0, 0, 0, 0, 0, 0, 0, 0,
831 0, 0, 0, 0, 0, 0, 0, 0,
832 0, 0, 0, 0, 0, 0, 0, 0,
833 0, 0, 0, 0, 0, 0, 0, 0,
834 0, 0, 0, 0, 0, 0, 0, 0,
835 0, 0, 0, 0, 0, 0, 0, 0,
836 0, 0, 0, 0, 0, 0, 0, 0,
837 0, 0, 0, 0, 0, 0, 0, 0,
838 0, 0, 0, 0, 0, 0, 0, 0,
839 0, 0, 9, 0, 0, 0, 0, 0,
840 0, 0, 0, 0, 0, 0, 0, 0,
841 0, 0, 0, 0, 0, 0, 0, 0,
842 0, 0, 0, 0, 0, 0, 0, 0,
843 0, 0, 0, 0, 0, 0, 0, 0,
844 0, 0, 0, 0, 0, 0, 0, 0,
845 0, 0, 0, 0, 0, 0, 0, 0,
846 0, 0, 0, 0, 0, 0, 0, 0,
847 0, 0, 0, 0, 0, 0, 0, 0,
848 0, 0, 0, 0, 0, 0, 0, 0,
849 0, 0, 0, 0, 0, 0, 0, 0,
850 0, 0, 0, 0, 0, 0, 0, 0,
851 0, 0, 0, 0, 0, 0, 0, 0,
852 0, 0, 0, 0, 0, 0, 0, 0,
853 0, 0, 0, 0, 0, 0, 0, 0,
854 0, 0, 0, 0, 0, 0, 0, 0,
855 0, 0, 0, 0, 0, 0, 0, 0,
856 0, 0, 0, 0, 0, 0, 0, 0,
857 0, 0, 0, 0, 0, 0, 0, 0,
858 0, 0, 0, 0, 0, 0, 0, 0,
859 0, 0, 0, 0, 0, 0, 0, 0,
860 0, 0, 0, 0, 0, 0, 0, 0,
861 0, 0, 0, 0, 0, 0, 0, 0,
862 0, 0, 0, 0, 0, 0, 0, 0,
863 0, 0, 0, 0, 0, 0, 0, 0,
864 0, 0, 0, 0, 0, 0, 0, 0,
865 0, 0, 0, 0, 0, 0, 0, 0,
866 0, 0, 0, 0, 0, 0, 0, 0,
867 0, 0, 0, 0, 0, 0, 0, 0,
868 0, 0, 0, 0, 0, 0, 0, 0,
869 0, 0, 0, 0, 0, 0, 0, 0,
870 0, 0, 0, 0, 0, 0, 0, 0,
871 0, 0, 0, 0, 0, 0, 0, 0,
875 static const char _indic_syllable_machine_from_state_actions[] = {
876 0, 0, 0, 0, 0, 0, 0, 0,
877 0, 0, 0, 0, 0, 0, 0, 0,
878 0, 0, 0, 0, 0, 0, 0, 0,
879 0, 0, 0, 0, 0, 0, 0, 0,
880 0, 0, 0, 0, 0, 0, 0, 0,
881 0, 0, 0, 0, 0, 0, 0, 0,
882 0, 0, 0, 0, 0, 0, 0, 0,
883 0, 0, 0, 0, 0, 0, 0, 0,
884 0, 0, 0, 0, 0, 0, 0, 0,
885 0, 0, 0, 0, 0, 0, 0, 0,
886 0, 0, 0, 0, 0, 0, 0, 0,
887 0, 0, 0, 0, 0, 0, 0, 0,
888 0, 0, 0, 0, 0, 0, 0, 0,
889 0, 0, 0, 0, 0, 0, 0, 0,
890 0, 0, 0, 0, 0, 0, 0, 0,
891 0, 0, 0, 0, 0, 0, 0, 0,
892 0, 0, 0, 0, 0, 0, 0, 0,
893 0, 0, 10, 0, 0, 0, 0, 0,
894 0, 0, 0, 0, 0, 0, 0, 0,
895 0, 0, 0, 0, 0, 0, 0, 0,
896 0, 0, 0, 0, 0, 0, 0, 0,
897 0, 0, 0, 0, 0, 0, 0, 0,
898 0, 0, 0, 0, 0, 0, 0, 0,
899 0, 0, 0, 0, 0, 0, 0, 0,
900 0, 0, 0, 0, 0, 0, 0, 0,
901 0, 0, 0, 0, 0, 0, 0, 0,
902 0, 0, 0, 0, 0, 0, 0, 0,
903 0, 0, 0, 0, 0, 0, 0, 0,
904 0, 0, 0, 0, 0, 0, 0, 0,
905 0, 0, 0, 0, 0, 0, 0, 0,
906 0, 0, 0, 0, 0, 0, 0, 0,
907 0, 0, 0, 0, 0, 0, 0, 0,
908 0, 0, 0, 0, 0, 0, 0, 0,
909 0, 0, 0, 0, 0, 0, 0, 0,
910 0, 0, 0, 0, 0, 0, 0, 0,
911 0, 0, 0, 0, 0, 0, 0, 0,
912 0, 0, 0, 0, 0, 0, 0, 0,
913 0, 0, 0, 0, 0, 0, 0, 0,
914 0, 0, 0, 0, 0, 0, 0, 0,
915 0, 0, 0, 0, 0, 0, 0, 0,
916 0, 0, 0, 0, 0, 0, 0, 0,
917 0, 0, 0, 0, 0, 0, 0, 0,
918 0, 0, 0, 0, 0, 0, 0, 0,
919 0, 0, 0, 0, 0, 0, 0, 0,
920 0, 0, 0, 0, 0, 0, 0, 0,
921 0, 0, 0, 0, 0, 0, 0, 0,
922 0, 0, 0, 0, 0, 0, 0, 0,
923 0, 0, 0, 0, 0, 0, 0, 0,
924 0, 0, 0, 0, 0, 0, 0, 0,
925 0, 0, 0, 0, 0, 0, 0, 0,
929 static const short _indic_syllable_machine_eof_trans[] = {
930 1, 1, 1, 1, 1, 1, 1, 1,
931 1, 1, 1, 1, 1, 1, 1, 1,
932 1, 1, 1, 1, 1, 1, 1, 1,
933 1, 1, 1, 1, 1, 1, 1, 1,
934 1, 1, 37, 37, 37, 37, 37, 37,
935 37, 37, 37, 37, 37, 37, 37, 37,
936 37, 37, 37, 37, 37, 37, 37, 37,
937 37, 37, 37, 37, 37, 37, 37, 37,
938 37, 37, 37, 37, 73, 73, 78, 78,
939 73, 73, 73, 73, 73, 73, 73, 73,
940 73, 73, 73, 73, 73, 73, 73, 73,
941 73, 73, 73, 73, 73, 73, 73, 73,
942 73, 73, 73, 73, 73, 109, 109, 109,
943 109, 109, 109, 109, 109, 109, 109, 109,
944 109, 109, 109, 109, 109, 109, 109, 109,
945 109, 109, 109, 109, 109, 109, 109, 109,
946 109, 109, 109, 109, 109, 109, 109, 73,
947 1, 146, 0, 162, 162, 162, 162, 162,
948 162, 162, 162, 162, 162, 162, 162, 162,
949 162, 162, 162, 162, 162, 162, 162, 162,
950 162, 162, 162, 162, 162, 162, 162, 162,
951 162, 162, 162, 162, 162, 162, 162, 162,
952 162, 162, 162, 162, 162, 162, 162, 162,
953 162, 162, 162, 162, 162, 162, 162, 162,
954 162, 162, 162, 162, 162, 162, 162, 162,
955 162, 224, 224, 224, 224, 224, 224, 224,
956 224, 224, 224, 224, 224, 224, 224, 224,
957 224, 224, 224, 224, 224, 224, 224, 224,
958 224, 224, 224, 224, 224, 224, 224, 224,
959 224, 224, 224, 224, 224, 224, 224, 224,
960 224, 224, 224, 224, 224, 224, 224, 224,
961 224, 224, 224, 224, 224, 224, 224, 224,
962 224, 224, 224, 224, 224, 224, 224, 286,
963 286, 286, 286, 286, 286, 286, 286, 286,
964 286, 286, 286, 286, 286, 286, 286, 286,
965 286, 286, 286, 286, 286, 286, 286, 286,
966 286, 286, 286, 286, 286, 286, 286, 286,
967 286, 286, 286, 286, 286, 286, 286, 286,
968 286, 286, 286, 286, 286, 286, 286, 286,
969 286, 286, 286, 286, 286, 286, 286, 286,
970 286, 286, 342, 286, 342, 343, 343, 343,
971 343, 343, 343, 343, 343, 343, 343, 343,
972 343, 343, 343, 343, 343, 343, 343, 343,
973 343, 343, 343, 343, 343, 343, 343, 343,
974 343, 343, 343, 343, 343, 343, 343, 343,
975 343, 343, 343, 343, 343, 343, 343, 343,
976 343, 343, 343, 343, 343, 343, 343, 343,
977 343, 343, 343, 343, 343, 343, 343, 343,
978 343, 343, 286, 162, 162, 162, 162, 162,
979 162, 162, 162, 162, 414, 414, 414, 414,
983 static const int indic_syllable_machine_start = 138;
984 static const int indic_syllable_machine_first_final = 138;
985 static const int indic_syllable_machine_error = -1;
987 static const int indic_syllable_machine_en_main = 138;
990 #line 36 "hb-ot-shape-complex-indic-machine.rl"
994 #line 93 "hb-ot-shape-complex-indic-machine.rl"
997 #define found_syllable(syllable_type) \
999 if (0) fprintf (stderr, "syllable %d..%d %s\n", ts, te, #syllable_type); \
1000 for (unsigned int i = ts; i < te; i++) \
1001 info[i].syllable() = (syllable_serial << 4) | syllable_type; \
1002 syllable_serial++; \
1003 if (unlikely (syllable_serial == 16)) syllable_serial = 1; \
1007 find_syllables (hb_buffer_t *buffer)
1009 unsigned int p, pe, eof, ts, te, act;
1011 hb_glyph_info_t *info = buffer->info;
1013 #line 1014 "hb-ot-shape-complex-indic-machine.hh"
1015 cs = indic_syllable_machine_start;
1021 #line 113 "hb-ot-shape-complex-indic-machine.rl"
1025 pe = eof = buffer->len;
1027 unsigned int syllable_serial = 1;
1029 #line 1030 "hb-ot-shape-complex-indic-machine.hh"
1033 const unsigned char *_keys;
1038 switch ( _indic_syllable_machine_from_state_actions[cs] ) {
1043 #line 1044 "hb-ot-shape-complex-indic-machine.hh"
1046 _keys = _indic_syllable_machine_trans_keys + (cs<<1);
1047 _inds = _indic_syllable_machine_indicies + _indic_syllable_machine_index_offsets[cs];
1049 _slen = _indic_syllable_machine_key_spans[cs];
1050 _trans = _inds[ _slen > 0 && _keys[0] <=( info[p].indic_category()) &&
1051 ( info[p].indic_category()) <= _keys[1] ?
1052 ( info[p].indic_category()) - _keys[0] : _slen ];
1055 cs = _indic_syllable_machine_trans_targs[_trans];
1057 if ( _indic_syllable_machine_trans_actions[_trans] == 0 )
1060 switch ( _indic_syllable_machine_trans_actions[_trans] ) {
1066 #line 84 "hb-ot-shape-complex-indic-machine.rl"
1067 {te = p+1;{ found_syllable (consonant_syllable); }}
1070 #line 85 "hb-ot-shape-complex-indic-machine.rl"
1071 {te = p+1;{ found_syllable (vowel_syllable); }}
1074 #line 86 "hb-ot-shape-complex-indic-machine.rl"
1075 {te = p+1;{ found_syllable (standalone_cluster); }}
1078 #line 87 "hb-ot-shape-complex-indic-machine.rl"
1079 {te = p+1;{ found_syllable (symbol_cluster); }}
1082 #line 88 "hb-ot-shape-complex-indic-machine.rl"
1083 {te = p+1;{ found_syllable (broken_cluster); }}
1086 #line 89 "hb-ot-shape-complex-indic-machine.rl"
1087 {te = p+1;{ found_syllable (non_indic_cluster); }}
1090 #line 84 "hb-ot-shape-complex-indic-machine.rl"
1091 {te = p;p--;{ found_syllable (consonant_syllable); }}
1094 #line 85 "hb-ot-shape-complex-indic-machine.rl"
1095 {te = p;p--;{ found_syllable (vowel_syllable); }}
1098 #line 86 "hb-ot-shape-complex-indic-machine.rl"
1099 {te = p;p--;{ found_syllable (standalone_cluster); }}
1102 #line 87 "hb-ot-shape-complex-indic-machine.rl"
1103 {te = p;p--;{ found_syllable (symbol_cluster); }}
1106 #line 88 "hb-ot-shape-complex-indic-machine.rl"
1107 {te = p;p--;{ found_syllable (broken_cluster); }}
1110 #line 89 "hb-ot-shape-complex-indic-machine.rl"
1111 {te = p;p--;{ found_syllable (non_indic_cluster); }}
1114 #line 84 "hb-ot-shape-complex-indic-machine.rl"
1115 {{p = ((te))-1;}{ found_syllable (consonant_syllable); }}
1118 #line 85 "hb-ot-shape-complex-indic-machine.rl"
1119 {{p = ((te))-1;}{ found_syllable (vowel_syllable); }}
1122 #line 86 "hb-ot-shape-complex-indic-machine.rl"
1123 {{p = ((te))-1;}{ found_syllable (standalone_cluster); }}
1126 #line 87 "hb-ot-shape-complex-indic-machine.rl"
1127 {{p = ((te))-1;}{ found_syllable (symbol_cluster); }}
1130 #line 88 "hb-ot-shape-complex-indic-machine.rl"
1131 {{p = ((te))-1;}{ found_syllable (broken_cluster); }}
1137 {{p = ((te))-1;} found_syllable (consonant_syllable); }
1140 {{p = ((te))-1;} found_syllable (broken_cluster); }
1143 {{p = ((te))-1;} found_syllable (non_indic_cluster); }
1151 #line 84 "hb-ot-shape-complex-indic-machine.rl"
1157 #line 88 "hb-ot-shape-complex-indic-machine.rl"
1163 #line 89 "hb-ot-shape-complex-indic-machine.rl"
1166 #line 1167 "hb-ot-shape-complex-indic-machine.hh"
1170 switch ( _indic_syllable_machine_to_state_actions[cs] ) {
1175 #line 1176 "hb-ot-shape-complex-indic-machine.hh"
1183 if ( _indic_syllable_machine_eof_trans[cs] > 0 ) {
1184 _trans = _indic_syllable_machine_eof_trans[cs] - 1;
1191 #line 121 "hb-ot-shape-complex-indic-machine.rl"
1195 #endif /* HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH */