1
2#line 1 "hb-ot-shape-complex-indic-machine.rl"
3/*
4 * Copyright �� 2011,2012  Google, Inc.
5 *
6 *  This is part of HarfBuzz, a text shaping library.
7 *
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.
13 *
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
18 * DAMAGE.
19 *
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.
25 *
26 * Google Author(s): Behdad Esfahbod
27 */
28
29#ifndef HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH
30#define HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH
31
32#include "hb-private.hh"
33
34
35#line 36 "hb-ot-shape-complex-indic-machine.hh"
36static const unsigned char _indic_syllable_machine_trans_keys[] = {
37        8u, 8u, 1u, 16u, 8u, 13u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u,
38        7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 4u, 8u,
39        6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u,
40        4u, 8u, 6u, 6u, 16u, 16u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u,
41        4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 8u, 8u, 1u, 16u, 8u, 13u,
42        5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u,
43        7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u,
44        6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u,
45        4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u,
46        4u, 14u, 4u, 14u, 8u, 8u, 1u, 16u, 8u, 13u, 5u, 8u, 5u, 7u, 7u, 7u,
47        5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u,
48        7u, 7u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u,
49        6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 14u, 4u, 14u, 4u, 14u,
50        4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 8u, 8u, 1u, 16u,
51        8u, 13u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u,
52        5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 4u, 8u, 6u, 6u, 16u, 16u,
53        4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u,
54        16u, 16u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u,
55        4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 5u, 8u, 4u, 14u, 4u, 14u, 5u, 8u,
56        5u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u,
57        5u, 7u, 7u, 7u, 8u, 8u, 1u, 16u, 8u, 13u, 4u, 8u, 6u, 6u, 16u, 16u,
58        4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u,
59        16u, 16u, 8u, 8u, 1u, 18u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u,
60        3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u,
61        3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 5u, 14u, 5u, 14u,
62        5u, 10u, 9u, 10u, 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 13u,
63        3u, 10u, 5u, 10u, 3u, 10u, 3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u,
64        3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u,
65        5u, 14u, 3u, 14u, 1u, 16u, 4u, 14u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u,
66        1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u,
67        1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
68        1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
69        3u, 17u, 3u, 17u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 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, 5u, 14u, 5u, 14u, 5u, 10u,
72        9u, 10u, 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 13u, 3u, 10u,
73        5u, 10u, 3u, 10u, 3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u,
74        4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u,
75        3u, 14u, 1u, 16u, 4u, 14u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u,
76        1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
77        1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
78        3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 4u, 14u, 1u, 16u,
79        3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u,
80        3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u,
81        3u, 17u, 3u, 17u, 4u, 17u, 5u, 14u, 5u, 14u, 5u, 10u, 9u, 10u, 9u, 9u,
82        9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 13u, 3u, 10u, 5u, 10u, 3u, 10u,
83        3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u,
84        3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 1u, 16u,
85        4u, 14u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
86        3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u,
87        3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u,
88        1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 4u, 14u, 3u, 17u, 4u, 14u,
89        3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u,
90        3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u,
91        3u, 17u, 3u, 17u, 4u, 17u, 5u, 14u, 5u, 14u, 5u, 10u, 9u, 10u, 9u, 9u,
92        9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 13u, 3u, 10u, 5u, 10u, 3u, 10u,
93        3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u,
94        3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 1u, 16u,
95        4u, 14u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
96        3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u,
97        3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u,
98        1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 1u, 17u, 3u, 17u,
99        1u, 17u, 4u, 14u, 5u, 10u, 9u, 10u, 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u,
100        5u, 10u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 3u, 17u, 3u, 17u, 1u, 16u,
101        3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u,
102        5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 13u, 3u, 10u, 5u, 10u, 3u, 10u,
103        3u, 13u, 1u, 16u, 3u, 10u, 5u, 10u, 5u, 10u, 9u, 10u, 9u, 9u, 9u, 10u,
104        9u, 10u, 9u, 9u, 5u, 10u, 0
105};
106
107static const char _indic_syllable_machine_key_spans[] = {
108        1, 16, 6, 4, 3, 1, 4, 3,
109        1, 4, 3, 1, 4, 3, 1, 5,
110        1, 1, 5, 1, 1, 5, 1, 1,
111        5, 1, 1, 11, 11, 11, 11, 11,
112        11, 11, 11, 11, 11, 1, 16, 6,
113        4, 3, 1, 4, 3, 1, 4, 3,
114        1, 4, 3, 1, 5, 1, 1, 5,
115        1, 1, 5, 1, 1, 5, 1, 1,
116        11, 11, 11, 11, 11, 11, 11, 11,
117        11, 11, 1, 16, 6, 4, 3, 1,
118        4, 3, 1, 4, 3, 1, 4, 3,
119        1, 5, 1, 1, 5, 1, 1, 5,
120        1, 1, 5, 1, 1, 11, 11, 11,
121        11, 11, 11, 11, 11, 11, 1, 16,
122        6, 4, 3, 1, 4, 3, 1, 4,
123        3, 1, 4, 3, 1, 5, 1, 1,
124        5, 1, 1, 5, 1, 1, 5, 1,
125        1, 11, 11, 11, 11, 11, 11, 11,
126        11, 11, 11, 11, 4, 11, 11, 4,
127        3, 4, 3, 1, 4, 3, 1, 4,
128        3, 1, 1, 16, 6, 5, 1, 1,
129        5, 1, 1, 5, 1, 1, 5, 1,
130        1, 1, 18, 15, 15, 14, 16, 15,
131        15, 14, 16, 15, 15, 14, 16, 15,
132        15, 14, 16, 15, 15, 14, 10, 10,
133        6, 2, 1, 2, 2, 1, 6, 11,
134        8, 6, 8, 11, 12, 12, 11, 10,
135        12, 11, 10, 12, 11, 10, 12, 11,
136        10, 12, 16, 11, 15, 15, 16, 16,
137        16, 16, 16, 15, 15, 16, 16, 16,
138        16, 16, 15, 15, 16, 16, 16, 16,
139        16, 15, 15, 16, 16, 16, 16, 16,
140        15, 15, 15, 15, 14, 16, 15, 15,
141        14, 16, 15, 15, 14, 16, 15, 15,
142        14, 16, 15, 15, 14, 10, 10, 6,
143        2, 1, 2, 2, 1, 6, 11, 8,
144        6, 8, 11, 12, 12, 11, 10, 12,
145        11, 10, 12, 11, 10, 12, 11, 10,
146        12, 16, 11, 15, 15, 16, 16, 16,
147        16, 16, 15, 15, 16, 16, 16, 16,
148        16, 15, 15, 16, 16, 16, 16, 16,
149        15, 15, 16, 16, 16, 16, 11, 16,
150        15, 15, 14, 16, 15, 15, 14, 16,
151        15, 15, 14, 16, 15, 15, 14, 16,
152        15, 15, 14, 10, 10, 6, 2, 1,
153        2, 2, 1, 6, 11, 8, 6, 8,
154        11, 12, 12, 11, 10, 12, 11, 10,
155        12, 11, 10, 12, 11, 10, 12, 16,
156        11, 15, 15, 16, 16, 16, 16, 16,
157        15, 15, 16, 16, 16, 16, 16, 15,
158        15, 16, 16, 16, 16, 16, 15, 15,
159        16, 16, 16, 16, 16, 11, 15, 11,
160        15, 15, 14, 16, 15, 15, 14, 16,
161        15, 15, 14, 16, 15, 15, 14, 16,
162        15, 15, 14, 10, 10, 6, 2, 1,
163        2, 2, 1, 6, 11, 8, 6, 8,
164        11, 12, 12, 11, 10, 12, 11, 10,
165        12, 11, 10, 12, 11, 10, 12, 16,
166        11, 15, 15, 16, 16, 16, 16, 16,
167        15, 15, 16, 16, 16, 16, 16, 15,
168        15, 16, 16, 16, 16, 16, 15, 15,
169        16, 16, 16, 16, 16, 15, 17, 15,
170        17, 11, 6, 2, 1, 2, 2, 1,
171        6, 16, 15, 15, 14, 15, 15, 16,
172        12, 11, 10, 12, 11, 10, 12, 11,
173        10, 12, 11, 10, 11, 8, 6, 8,
174        11, 16, 8, 6, 6, 2, 1, 2,
175        2, 1, 6
176};
177
178static const short _indic_syllable_machine_index_offsets[] = {
179        0, 2, 19, 26, 31, 35, 37, 42,
180        46, 48, 53, 57, 59, 64, 68, 70,
181        76, 78, 80, 86, 88, 90, 96, 98,
182        100, 106, 108, 110, 122, 134, 146, 158,
183        170, 182, 194, 206, 218, 230, 232, 249,
184        256, 261, 265, 267, 272, 276, 278, 283,
185        287, 289, 294, 298, 300, 306, 308, 310,
186        316, 318, 320, 326, 328, 330, 336, 338,
187        340, 352, 364, 376, 388, 400, 412, 424,
188        436, 448, 460, 462, 479, 486, 491, 495,
189        497, 502, 506, 508, 513, 517, 519, 524,
190        528, 530, 536, 538, 540, 546, 548, 550,
191        556, 558, 560, 566, 568, 570, 582, 594,
192        606, 618, 630, 642, 654, 666, 678, 680,
193        697, 704, 709, 713, 715, 720, 724, 726,
194        731, 735, 737, 742, 746, 748, 754, 756,
195        758, 764, 766, 768, 774, 776, 778, 784,
196        786, 788, 800, 812, 824, 836, 848, 860,
197        872, 884, 896, 908, 920, 925, 937, 949,
198        954, 958, 963, 967, 969, 974, 978, 980,
199        985, 989, 991, 993, 1010, 1017, 1023, 1025,
200        1027, 1033, 1035, 1037, 1043, 1045, 1047, 1053,
201        1055, 1057, 1059, 1078, 1094, 1110, 1125, 1142,
202        1158, 1174, 1189, 1206, 1222, 1238, 1253, 1270,
203        1286, 1302, 1317, 1334, 1350, 1366, 1381, 1392,
204        1403, 1410, 1413, 1415, 1418, 1421, 1423, 1430,
205        1442, 1451, 1458, 1467, 1479, 1492, 1505, 1517,
206        1528, 1541, 1553, 1564, 1577, 1589, 1600, 1613,
207        1625, 1636, 1649, 1666, 1678, 1694, 1710, 1727,
208        1744, 1761, 1778, 1795, 1811, 1827, 1844, 1861,
209        1878, 1895, 1912, 1928, 1944, 1961, 1978, 1995,
210        2012, 2029, 2045, 2061, 2078, 2095, 2112, 2129,
211        2146, 2162, 2178, 2194, 2210, 2225, 2242, 2258,
212        2274, 2289, 2306, 2322, 2338, 2353, 2370, 2386,
213        2402, 2417, 2434, 2450, 2466, 2481, 2492, 2503,
214        2510, 2513, 2515, 2518, 2521, 2523, 2530, 2542,
215        2551, 2558, 2567, 2579, 2592, 2605, 2617, 2628,
216        2641, 2653, 2664, 2677, 2689, 2700, 2713, 2725,
217        2736, 2749, 2766, 2778, 2794, 2810, 2827, 2844,
218        2861, 2878, 2895, 2911, 2927, 2944, 2961, 2978,
219        2995, 3012, 3028, 3044, 3061, 3078, 3095, 3112,
220        3129, 3145, 3161, 3178, 3195, 3212, 3229, 3241,
221        3258, 3274, 3290, 3305, 3322, 3338, 3354, 3369,
222        3386, 3402, 3418, 3433, 3450, 3466, 3482, 3497,
223        3514, 3530, 3546, 3561, 3572, 3583, 3590, 3593,
224        3595, 3598, 3601, 3603, 3610, 3622, 3631, 3638,
225        3647, 3659, 3672, 3685, 3697, 3708, 3721, 3733,
226        3744, 3757, 3769, 3780, 3793, 3805, 3816, 3829,
227        3846, 3858, 3874, 3890, 3907, 3924, 3941, 3958,
228        3975, 3991, 4007, 4024, 4041, 4058, 4075, 4092,
229        4108, 4124, 4141, 4158, 4175, 4192, 4209, 4225,
230        4241, 4258, 4275, 4292, 4309, 4326, 4338, 4354,
231        4366, 4382, 4398, 4413, 4430, 4446, 4462, 4477,
232        4494, 4510, 4526, 4541, 4558, 4574, 4590, 4605,
233        4622, 4638, 4654, 4669, 4680, 4691, 4698, 4701,
234        4703, 4706, 4709, 4711, 4718, 4730, 4739, 4746,
235        4755, 4767, 4780, 4793, 4805, 4816, 4829, 4841,
236        4852, 4865, 4877, 4888, 4901, 4913, 4924, 4937,
237        4954, 4966, 4982, 4998, 5015, 5032, 5049, 5066,
238        5083, 5099, 5115, 5132, 5149, 5166, 5183, 5200,
239        5216, 5232, 5249, 5266, 5283, 5300, 5317, 5333,
240        5349, 5366, 5383, 5400, 5417, 5434, 5450, 5468,
241        5484, 5502, 5514, 5521, 5524, 5526, 5529, 5532,
242        5534, 5541, 5558, 5574, 5590, 5605, 5621, 5637,
243        5654, 5667, 5679, 5690, 5703, 5715, 5726, 5739,
244        5751, 5762, 5775, 5787, 5798, 5810, 5819, 5826,
245        5835, 5847, 5864, 5873, 5880, 5887, 5890, 5892,
246        5895, 5898, 5900
247};
248
249static const short _indic_syllable_machine_indicies[] = {
250        1, 0, 2, 3, 0, 0, 0, 0,
251        0, 0, 0, 0, 0, 0, 0, 0,
252        0, 2, 0, 1, 0, 0, 0, 0,
253        4, 0, 5, 5, 6, 1, 0, 7,
254        7, 6, 0, 6, 0, 8, 8, 9,
255        1, 0, 10, 10, 9, 0, 9, 0,
256        11, 11, 12, 1, 0, 13, 13, 12,
257        0, 12, 0, 14, 14, 15, 1, 0,
258        16, 16, 15, 0, 15, 0, 17, 0,
259        0, 0, 1, 0, 18, 0, 19, 0,
260        20, 14, 14, 15, 1, 0, 21, 0,
261        22, 0, 23, 11, 11, 12, 1, 0,
262        24, 0, 25, 0, 26, 8, 8, 9,
263        1, 0, 27, 0, 28, 0, 29, 5,
264        5, 6, 1, 0, 0, 0, 0, 0,
265        29, 0, 29, 5, 5, 6, 1, 0,
266        0, 0, 0, 30, 29, 0, 31, 5,
267        5, 6, 1, 0, 0, 0, 0, 0,
268        31, 0, 31, 5, 5, 6, 1, 0,
269        0, 0, 0, 32, 31, 0, 33, 5,
270        5, 6, 1, 0, 0, 0, 0, 0,
271        33, 0, 33, 5, 5, 6, 1, 0,
272        0, 0, 0, 34, 33, 0, 35, 5,
273        5, 6, 1, 0, 0, 0, 0, 0,
274        35, 0, 35, 5, 5, 6, 1, 0,
275        0, 0, 0, 36, 35, 0, 37, 5,
276        5, 6, 1, 0, 0, 0, 0, 0,
277        37, 0, 37, 5, 5, 6, 1, 0,
278        0, 0, 0, 38, 37, 0, 40, 39,
279        41, 42, 39, 39, 39, 39, 39, 39,
280        39, 39, 39, 39, 39, 39, 39, 41,
281        39, 40, 39, 39, 39, 39, 43, 39,
282        44, 44, 45, 40, 39, 46, 46, 45,
283        39, 45, 39, 47, 47, 48, 40, 39,
284        49, 49, 48, 39, 48, 39, 50, 50,
285        51, 40, 39, 52, 52, 51, 39, 51,
286        39, 53, 53, 54, 40, 39, 55, 55,
287        54, 39, 54, 39, 56, 39, 39, 39,
288        40, 39, 57, 39, 58, 39, 59, 53,
289        53, 54, 40, 39, 60, 39, 61, 39,
290        62, 50, 50, 51, 40, 39, 63, 39,
291        64, 39, 65, 47, 47, 48, 40, 39,
292        66, 39, 67, 39, 68, 44, 44, 45,
293        40, 39, 39, 39, 39, 39, 68, 39,
294        68, 44, 44, 45, 40, 39, 39, 39,
295        39, 69, 68, 39, 70, 44, 44, 45,
296        40, 39, 39, 39, 39, 39, 70, 39,
297        70, 44, 44, 45, 40, 39, 39, 39,
298        39, 71, 70, 39, 72, 44, 44, 45,
299        40, 39, 39, 39, 39, 39, 72, 39,
300        72, 44, 44, 45, 40, 39, 39, 39,
301        39, 73, 72, 39, 74, 44, 44, 45,
302        40, 39, 39, 39, 39, 39, 74, 39,
303        74, 44, 44, 45, 40, 39, 39, 39,
304        39, 75, 74, 39, 76, 44, 44, 45,
305        40, 39, 39, 39, 39, 39, 76, 39,
306        76, 44, 44, 45, 40, 39, 39, 39,
307        39, 77, 76, 39, 79, 78, 80, 81,
308        78, 78, 78, 78, 78, 78, 78, 78,
309        78, 78, 78, 78, 78, 80, 78, 79,
310        78, 78, 78, 78, 82, 78, 83, 83,
311        84, 79, 78, 86, 86, 84, 85, 84,
312        85, 87, 87, 88, 79, 78, 89, 89,
313        88, 78, 88, 78, 90, 90, 91, 79,
314        78, 92, 92, 91, 78, 91, 78, 93,
315        93, 94, 79, 78, 95, 95, 94, 78,
316        94, 78, 96, 78, 78, 78, 79, 78,
317        97, 78, 98, 78, 99, 93, 93, 94,
318        79, 78, 100, 78, 101, 78, 102, 90,
319        90, 91, 79, 78, 103, 78, 104, 78,
320        105, 87, 87, 88, 79, 78, 106, 78,
321        107, 78, 108, 83, 83, 84, 79, 78,
322        78, 78, 78, 78, 108, 78, 108, 83,
323        83, 84, 79, 78, 78, 78, 78, 109,
324        108, 78, 110, 83, 83, 84, 79, 78,
325        78, 78, 78, 78, 110, 78, 110, 83,
326        83, 84, 79, 78, 78, 78, 78, 111,
327        110, 78, 112, 83, 83, 84, 79, 78,
328        78, 78, 78, 78, 112, 78, 112, 83,
329        83, 84, 79, 78, 78, 78, 78, 113,
330        112, 78, 114, 83, 83, 84, 79, 78,
331        78, 78, 78, 78, 114, 78, 114, 83,
332        83, 84, 79, 78, 78, 78, 78, 115,
333        114, 78, 116, 83, 83, 84, 79, 78,
334        78, 78, 78, 78, 116, 78, 118, 117,
335        119, 120, 117, 117, 117, 117, 117, 117,
336        117, 117, 117, 117, 117, 117, 117, 119,
337        117, 118, 117, 117, 117, 117, 121, 117,
338        122, 122, 123, 118, 117, 124, 124, 123,
339        117, 123, 117, 125, 125, 126, 118, 117,
340        127, 127, 126, 117, 126, 117, 128, 128,
341        129, 118, 117, 130, 130, 129, 117, 129,
342        117, 131, 131, 132, 118, 117, 133, 133,
343        132, 117, 132, 117, 134, 117, 117, 117,
344        118, 117, 135, 117, 136, 117, 137, 131,
345        131, 132, 118, 117, 138, 117, 139, 117,
346        140, 128, 128, 129, 118, 117, 141, 117,
347        142, 117, 143, 125, 125, 126, 118, 117,
348        144, 117, 145, 117, 146, 122, 122, 123,
349        118, 117, 117, 117, 117, 117, 146, 117,
350        146, 122, 122, 123, 118, 117, 117, 117,
351        117, 147, 146, 117, 148, 122, 122, 123,
352        118, 117, 117, 117, 117, 117, 148, 117,
353        148, 122, 122, 123, 118, 117, 117, 117,
354        117, 149, 148, 117, 150, 122, 122, 123,
355        118, 117, 117, 117, 117, 117, 150, 117,
356        150, 122, 122, 123, 118, 117, 117, 117,
357        117, 151, 150, 117, 152, 122, 122, 123,
358        118, 117, 117, 117, 117, 117, 152, 117,
359        152, 122, 122, 123, 118, 117, 117, 117,
360        117, 153, 152, 117, 154, 122, 122, 123,
361        118, 117, 117, 117, 117, 117, 154, 117,
362        154, 122, 122, 123, 118, 117, 117, 117,
363        117, 155, 154, 117, 116, 83, 83, 84,
364        79, 78, 78, 78, 78, 156, 116, 78,
365        86, 86, 84, 1, 0, 114, 83, 83,
366        84, 157, 0, 0, 0, 0, 0, 114,
367        0, 114, 83, 83, 84, 157, 0, 0,
368        0, 0, 158, 114, 0, 159, 159, 160,
369        1, 0, 7, 7, 160, 0, 161, 161,
370        162, 157, 0, 163, 163, 162, 0, 162,
371        0, 164, 164, 165, 157, 0, 166, 166,
372        165, 0, 165, 0, 167, 167, 168, 157,
373        0, 169, 169, 168, 0, 168, 0, 157,
374        0, 170, 171, 0, 0, 0, 0, 0,
375        0, 0, 0, 0, 0, 0, 0, 0,
376        170, 0, 157, 0, 0, 0, 0, 172,
377        0, 173, 0, 0, 0, 157, 0, 174,
378        0, 175, 0, 176, 167, 167, 168, 157,
379        0, 177, 0, 178, 0, 179, 164, 164,
380        165, 157, 0, 180, 0, 181, 0, 182,
381        161, 161, 162, 157, 0, 183, 0, 184,
382        0, 186, 185, 188, 189, 190, 191, 192,
383        193, 84, 79, 194, 195, 196, 196, 156,
384        197, 198, 199, 200, 201, 187, 203, 204,
385        205, 206, 6, 1, 207, 208, 202, 202,
386        38, 209, 202, 202, 210, 202, 211, 204,
387        212, 212, 6, 1, 207, 208, 202, 202,
388        202, 209, 202, 202, 210, 202, 204, 212,
389        212, 6, 1, 207, 208, 202, 202, 202,
390        209, 202, 202, 210, 202, 213, 202, 202,
391        202, 19, 214, 202, 1, 207, 208, 202,
392        202, 202, 215, 202, 213, 202, 216, 217,
393        218, 219, 6, 1, 207, 208, 202, 202,
394        36, 220, 202, 202, 210, 202, 221, 217,
395        222, 222, 6, 1, 207, 208, 202, 202,
396        202, 220, 202, 202, 210, 202, 217, 222,
397        222, 6, 1, 207, 208, 202, 202, 202,
398        220, 202, 202, 210, 202, 223, 202, 202,
399        202, 19, 224, 202, 1, 207, 208, 202,
400        202, 202, 215, 202, 223, 202, 225, 226,
401        227, 228, 6, 1, 207, 208, 202, 202,
402        34, 229, 202, 202, 210, 202, 230, 226,
403        231, 231, 6, 1, 207, 208, 202, 202,
404        202, 229, 202, 202, 210, 202, 226, 231,
405        231, 6, 1, 207, 208, 202, 202, 202,
406        229, 202, 202, 210, 202, 232, 202, 202,
407        202, 19, 233, 202, 1, 207, 208, 202,
408        202, 202, 215, 202, 232, 202, 234, 235,
409        236, 237, 6, 1, 207, 208, 202, 202,
410        32, 238, 202, 202, 210, 202, 239, 235,
411        240, 240, 6, 1, 207, 208, 202, 202,
412        202, 238, 202, 202, 210, 202, 235, 240,
413        240, 6, 1, 207, 208, 202, 202, 202,
414        238, 202, 202, 210, 202, 241, 202, 202,
415        202, 19, 242, 202, 1, 207, 208, 202,
416        202, 202, 215, 202, 241, 202, 243, 244,
417        245, 246, 6, 1, 207, 208, 202, 202,
418        30, 247, 202, 202, 210, 202, 248, 244,
419        249, 249, 6, 1, 207, 208, 202, 202,
420        202, 247, 202, 202, 210, 202, 244, 249,
421        249, 6, 1, 207, 208, 202, 202, 202,
422        247, 202, 202, 210, 202, 19, 250, 202,
423        1, 207, 208, 202, 202, 202, 215, 202,
424        251, 251, 202, 1, 207, 208, 202, 202,
425        202, 215, 202, 252, 202, 202, 253, 207,
426        208, 202, 207, 208, 202, 254, 202, 207,
427        255, 202, 207, 256, 202, 207, 202, 252,
428        202, 202, 202, 207, 208, 202, 257, 202,
429        258, 259, 202, 1, 207, 208, 202, 202,
430        4, 202, 3, 202, 251, 251, 202, 1,
431        207, 208, 202, 251, 251, 202, 1, 207,
432        208, 202, 257, 202, 251, 251, 202, 1,
433        207, 208, 202, 257, 202, 258, 251, 202,
434        1, 207, 208, 202, 202, 4, 202, 19,
435        202, 260, 260, 6, 1, 207, 208, 202,
436        202, 202, 215, 202, 261, 28, 262, 263,
437        9, 1, 207, 208, 202, 202, 202, 215,
438        202, 28, 262, 263, 9, 1, 207, 208,
439        202, 202, 202, 215, 202, 262, 262, 9,
440        1, 207, 208, 202, 202, 202, 215, 202,
441        264, 25, 265, 266, 12, 1, 207, 208,
442        202, 202, 202, 215, 202, 25, 265, 266,
443        12, 1, 207, 208, 202, 202, 202, 215,
444        202, 265, 265, 12, 1, 207, 208, 202,
445        202, 202, 215, 202, 267, 22, 268, 269,
446        15, 1, 207, 208, 202, 202, 202, 215,
447        202, 22, 268, 269, 15, 1, 207, 208,
448        202, 202, 202, 215, 202, 268, 268, 15,
449        1, 207, 208, 202, 202, 202, 215, 202,
450        270, 19, 251, 271, 202, 1, 207, 208,
451        202, 202, 202, 215, 202, 19, 251, 271,
452        202, 1, 207, 208, 202, 202, 202, 215,
453        202, 251, 272, 202, 1, 207, 208, 202,
454        202, 202, 215, 202, 19, 202, 251, 251,
455        202, 1, 207, 208, 202, 202, 202, 215,
456        202, 2, 3, 202, 202, 19, 250, 202,
457        1, 207, 208, 202, 202, 202, 215, 202,
458        2, 202, 244, 249, 249, 6, 1, 207,
459        208, 202, 202, 202, 247, 202, 243, 244,
460        249, 249, 6, 1, 207, 208, 202, 202,
461        202, 247, 202, 202, 210, 202, 243, 244,
462        245, 249, 6, 1, 207, 208, 202, 202,
463        30, 247, 202, 202, 210, 202, 241, 202,
464        273, 202, 260, 260, 6, 1, 207, 208,
465        202, 202, 202, 215, 202, 241, 202, 241,
466        202, 202, 202, 251, 251, 202, 1, 207,
467        208, 202, 202, 202, 215, 202, 241, 202,
468        241, 202, 202, 202, 251, 274, 202, 1,
469        207, 208, 202, 202, 202, 215, 202, 241,
470        202, 241, 202, 273, 202, 251, 251, 202,
471        1, 207, 208, 202, 202, 202, 215, 202,
472        241, 202, 241, 3, 202, 202, 19, 242,
473        202, 1, 207, 208, 202, 202, 202, 215,
474        202, 241, 202, 234, 235, 240, 240, 6,
475        1, 207, 208, 202, 202, 202, 238, 202,
476        202, 210, 202, 234, 235, 236, 240, 6,
477        1, 207, 208, 202, 202, 32, 238, 202,
478        202, 210, 202, 232, 202, 275, 202, 260,
479        260, 6, 1, 207, 208, 202, 202, 202,
480        215, 202, 232, 202, 232, 202, 202, 202,
481        251, 251, 202, 1, 207, 208, 202, 202,
482        202, 215, 202, 232, 202, 232, 202, 202,
483        202, 251, 276, 202, 1, 207, 208, 202,
484        202, 202, 215, 202, 232, 202, 232, 202,
485        275, 202, 251, 251, 202, 1, 207, 208,
486        202, 202, 202, 215, 202, 232, 202, 232,
487        3, 202, 202, 19, 233, 202, 1, 207,
488        208, 202, 202, 202, 215, 202, 232, 202,
489        225, 226, 231, 231, 6, 1, 207, 208,
490        202, 202, 202, 229, 202, 202, 210, 202,
491        225, 226, 227, 231, 6, 1, 207, 208,
492        202, 202, 34, 229, 202, 202, 210, 202,
493        223, 202, 277, 202, 260, 260, 6, 1,
494        207, 208, 202, 202, 202, 215, 202, 223,
495        202, 223, 202, 202, 202, 251, 251, 202,
496        1, 207, 208, 202, 202, 202, 215, 202,
497        223, 202, 223, 202, 202, 202, 251, 278,
498        202, 1, 207, 208, 202, 202, 202, 215,
499        202, 223, 202, 223, 202, 277, 202, 251,
500        251, 202, 1, 207, 208, 202, 202, 202,
501        215, 202, 223, 202, 223, 3, 202, 202,
502        19, 224, 202, 1, 207, 208, 202, 202,
503        202, 215, 202, 223, 202, 216, 217, 222,
504        222, 6, 1, 207, 208, 202, 202, 202,
505        220, 202, 202, 210, 202, 216, 217, 218,
506        222, 6, 1, 207, 208, 202, 202, 36,
507        220, 202, 202, 210, 202, 213, 202, 279,
508        202, 260, 260, 6, 1, 207, 208, 202,
509        202, 202, 215, 202, 213, 202, 213, 202,
510        202, 202, 251, 251, 202, 1, 207, 208,
511        202, 202, 202, 215, 202, 213, 202, 213,
512        202, 202, 202, 251, 280, 202, 1, 207,
513        208, 202, 202, 202, 215, 202, 213, 202,
514        213, 202, 279, 202, 251, 251, 202, 1,
515        207, 208, 202, 202, 202, 215, 202, 213,
516        202, 213, 3, 202, 202, 19, 214, 202,
517        1, 207, 208, 202, 202, 202, 215, 202,
518        213, 202, 203, 204, 212, 212, 6, 1,
519        207, 208, 202, 202, 202, 209, 202, 202,
520        210, 202, 203, 204, 205, 212, 6, 1,
521        207, 208, 202, 202, 38, 209, 202, 202,
522        210, 202, 282, 283, 284, 285, 45, 40,
523        286, 287, 281, 281, 77, 288, 281, 281,
524        289, 281, 290, 283, 291, 285, 45, 40,
525        286, 287, 281, 281, 281, 288, 281, 281,
526        289, 281, 283, 291, 285, 45, 40, 286,
527        287, 281, 281, 281, 288, 281, 281, 289,
528        281, 292, 281, 281, 281, 58, 293, 281,
529        40, 286, 287, 281, 281, 281, 294, 281,
530        292, 281, 295, 296, 297, 298, 45, 40,
531        286, 287, 281, 281, 75, 299, 281, 281,
532        289, 281, 300, 296, 301, 301, 45, 40,
533        286, 287, 281, 281, 281, 299, 281, 281,
534        289, 281, 296, 301, 301, 45, 40, 286,
535        287, 281, 281, 281, 299, 281, 281, 289,
536        281, 302, 281, 281, 281, 58, 303, 281,
537        40, 286, 287, 281, 281, 281, 294, 281,
538        302, 281, 304, 305, 306, 307, 45, 40,
539        286, 287, 281, 281, 73, 308, 281, 281,
540        289, 281, 309, 305, 310, 310, 45, 40,
541        286, 287, 281, 281, 281, 308, 281, 281,
542        289, 281, 305, 310, 310, 45, 40, 286,
543        287, 281, 281, 281, 308, 281, 281, 289,
544        281, 311, 281, 281, 281, 58, 312, 281,
545        40, 286, 287, 281, 281, 281, 294, 281,
546        311, 281, 313, 314, 315, 316, 45, 40,
547        286, 287, 281, 281, 71, 317, 281, 281,
548        289, 281, 318, 314, 319, 319, 45, 40,
549        286, 287, 281, 281, 281, 317, 281, 281,
550        289, 281, 314, 319, 319, 45, 40, 286,
551        287, 281, 281, 281, 317, 281, 281, 289,
552        281, 320, 281, 281, 281, 58, 321, 281,
553        40, 286, 287, 281, 281, 281, 294, 281,
554        320, 281, 322, 323, 324, 325, 45, 40,
555        286, 287, 281, 281, 69, 326, 281, 281,
556        289, 281, 327, 323, 328, 328, 45, 40,
557        286, 287, 281, 281, 281, 326, 281, 281,
558        289, 281, 323, 328, 328, 45, 40, 286,
559        287, 281, 281, 281, 326, 281, 281, 289,
560        281, 58, 329, 281, 40, 286, 287, 281,
561        281, 281, 294, 281, 330, 330, 281, 40,
562        286, 287, 281, 281, 281, 294, 281, 331,
563        281, 281, 332, 286, 287, 281, 286, 287,
564        281, 333, 281, 286, 334, 281, 286, 335,
565        281, 286, 281, 331, 281, 281, 281, 286,
566        287, 281, 336, 281, 337, 338, 281, 40,
567        286, 287, 281, 281, 43, 281, 42, 281,
568        330, 330, 281, 40, 286, 287, 281, 330,
569        330, 281, 40, 286, 287, 281, 336, 281,
570        330, 330, 281, 40, 286, 287, 281, 336,
571        281, 337, 330, 281, 40, 286, 287, 281,
572        281, 43, 281, 58, 281, 339, 339, 45,
573        40, 286, 287, 281, 281, 281, 294, 281,
574        340, 67, 341, 342, 48, 40, 286, 287,
575        281, 281, 281, 294, 281, 67, 341, 342,
576        48, 40, 286, 287, 281, 281, 281, 294,
577        281, 341, 341, 48, 40, 286, 287, 281,
578        281, 281, 294, 281, 343, 64, 344, 345,
579        51, 40, 286, 287, 281, 281, 281, 294,
580        281, 64, 344, 345, 51, 40, 286, 287,
581        281, 281, 281, 294, 281, 344, 344, 51,
582        40, 286, 287, 281, 281, 281, 294, 281,
583        346, 61, 347, 348, 54, 40, 286, 287,
584        281, 281, 281, 294, 281, 61, 347, 348,
585        54, 40, 286, 287, 281, 281, 281, 294,
586        281, 347, 347, 54, 40, 286, 287, 281,
587        281, 281, 294, 281, 349, 58, 330, 350,
588        281, 40, 286, 287, 281, 281, 281, 294,
589        281, 58, 330, 350, 281, 40, 286, 287,
590        281, 281, 281, 294, 281, 330, 351, 281,
591        40, 286, 287, 281, 281, 281, 294, 281,
592        58, 281, 330, 330, 281, 40, 286, 287,
593        281, 281, 281, 294, 281, 41, 42, 281,
594        281, 58, 329, 281, 40, 286, 287, 281,
595        281, 281, 294, 281, 41, 281, 323, 328,
596        328, 45, 40, 286, 287, 281, 281, 281,
597        326, 281, 322, 323, 328, 328, 45, 40,
598        286, 287, 281, 281, 281, 326, 281, 281,
599        289, 281, 322, 323, 324, 328, 45, 40,
600        286, 287, 281, 281, 69, 326, 281, 281,
601        289, 281, 320, 281, 352, 281, 339, 339,
602        45, 40, 286, 287, 281, 281, 281, 294,
603        281, 320, 281, 320, 281, 281, 281, 330,
604        330, 281, 40, 286, 287, 281, 281, 281,
605        294, 281, 320, 281, 320, 281, 281, 281,
606        330, 353, 281, 40, 286, 287, 281, 281,
607        281, 294, 281, 320, 281, 320, 281, 352,
608        281, 330, 330, 281, 40, 286, 287, 281,
609        281, 281, 294, 281, 320, 281, 320, 42,
610        281, 281, 58, 321, 281, 40, 286, 287,
611        281, 281, 281, 294, 281, 320, 281, 313,
612        314, 319, 319, 45, 40, 286, 287, 281,
613        281, 281, 317, 281, 281, 289, 281, 313,
614        314, 315, 319, 45, 40, 286, 287, 281,
615        281, 71, 317, 281, 281, 289, 281, 311,
616        281, 354, 281, 339, 339, 45, 40, 286,
617        287, 281, 281, 281, 294, 281, 311, 281,
618        311, 281, 281, 281, 330, 330, 281, 40,
619        286, 287, 281, 281, 281, 294, 281, 311,
620        281, 311, 281, 281, 281, 330, 355, 281,
621        40, 286, 287, 281, 281, 281, 294, 281,
622        311, 281, 311, 281, 354, 281, 330, 330,
623        281, 40, 286, 287, 281, 281, 281, 294,
624        281, 311, 281, 311, 42, 281, 281, 58,
625        312, 281, 40, 286, 287, 281, 281, 281,
626        294, 281, 311, 281, 304, 305, 310, 310,
627        45, 40, 286, 287, 281, 281, 281, 308,
628        281, 281, 289, 281, 304, 305, 306, 310,
629        45, 40, 286, 287, 281, 281, 73, 308,
630        281, 281, 289, 281, 302, 281, 356, 281,
631        339, 339, 45, 40, 286, 287, 281, 281,
632        281, 294, 281, 302, 281, 302, 281, 281,
633        281, 330, 330, 281, 40, 286, 287, 281,
634        281, 281, 294, 281, 302, 281, 302, 281,
635        281, 281, 330, 357, 281, 40, 286, 287,
636        281, 281, 281, 294, 281, 302, 281, 302,
637        281, 356, 281, 330, 330, 281, 40, 286,
638        287, 281, 281, 281, 294, 281, 302, 281,
639        302, 42, 281, 281, 58, 303, 281, 40,
640        286, 287, 281, 281, 281, 294, 281, 302,
641        281, 295, 296, 301, 301, 45, 40, 286,
642        287, 281, 281, 281, 299, 281, 281, 289,
643        281, 295, 296, 297, 301, 45, 40, 286,
644        287, 281, 281, 75, 299, 281, 281, 289,
645        281, 292, 281, 358, 281, 339, 339, 45,
646        40, 286, 287, 281, 281, 281, 294, 281,
647        292, 281, 292, 281, 281, 281, 330, 330,
648        281, 40, 286, 287, 281, 281, 281, 294,
649        281, 292, 281, 292, 281, 281, 281, 330,
650        359, 281, 40, 286, 287, 281, 281, 281,
651        294, 281, 292, 281, 292, 281, 358, 281,
652        330, 330, 281, 40, 286, 287, 281, 281,
653        281, 294, 281, 292, 281, 76, 44, 44,
654        45, 40, 281, 281, 281, 281, 281, 76,
655        281, 292, 42, 281, 281, 58, 293, 281,
656        40, 286, 287, 281, 281, 281, 294, 281,
657        292, 281, 282, 283, 291, 285, 45, 40,
658        286, 287, 281, 281, 281, 288, 281, 281,
659        289, 281, 361, 191, 362, 362, 84, 79,
660        194, 195, 360, 360, 360, 197, 360, 360,
661        200, 360, 191, 362, 362, 84, 79, 194,
662        195, 360, 360, 360, 197, 360, 360, 200,
663        360, 363, 360, 360, 360, 98, 364, 360,
664        79, 194, 195, 360, 360, 360, 365, 360,
665        363, 360, 366, 367, 368, 369, 84, 79,
666        194, 195, 360, 360, 115, 370, 360, 360,
667        200, 360, 371, 367, 372, 372, 84, 79,
668        194, 195, 360, 360, 360, 370, 360, 360,
669        200, 360, 367, 372, 372, 84, 79, 194,
670        195, 360, 360, 360, 370, 360, 360, 200,
671        360, 373, 360, 360, 360, 98, 374, 360,
672        79, 194, 195, 360, 360, 360, 365, 360,
673        373, 360, 375, 376, 377, 378, 84, 79,
674        194, 195, 360, 360, 113, 379, 360, 360,
675        200, 360, 380, 376, 381, 381, 84, 79,
676        194, 195, 360, 360, 360, 379, 360, 360,
677        200, 360, 376, 381, 381, 84, 79, 194,
678        195, 360, 360, 360, 379, 360, 360, 200,
679        360, 382, 360, 360, 360, 98, 383, 360,
680        79, 194, 195, 360, 360, 360, 365, 360,
681        382, 360, 384, 385, 386, 387, 84, 79,
682        194, 195, 360, 360, 111, 388, 360, 360,
683        200, 360, 389, 385, 390, 390, 84, 79,
684        194, 195, 360, 360, 360, 388, 360, 360,
685        200, 360, 385, 390, 390, 84, 79, 194,
686        195, 360, 360, 360, 388, 360, 360, 200,
687        360, 391, 360, 360, 360, 98, 392, 360,
688        79, 194, 195, 360, 360, 360, 365, 360,
689        391, 360, 393, 394, 395, 396, 84, 79,
690        194, 195, 360, 360, 109, 397, 360, 360,
691        200, 360, 398, 394, 399, 399, 84, 79,
692        194, 195, 360, 360, 360, 397, 360, 360,
693        200, 360, 394, 399, 399, 84, 79, 194,
694        195, 360, 360, 360, 397, 360, 360, 200,
695        360, 98, 400, 360, 79, 194, 195, 360,
696        360, 360, 365, 360, 401, 401, 360, 79,
697        194, 195, 360, 360, 360, 365, 360, 402,
698        360, 360, 403, 194, 195, 360, 194, 195,
699        360, 404, 360, 194, 405, 360, 194, 406,
700        360, 194, 360, 402, 360, 360, 360, 194,
701        195, 360, 407, 360, 408, 409, 360, 79,
702        194, 195, 360, 360, 82, 360, 81, 360,
703        401, 401, 360, 79, 194, 195, 360, 401,
704        401, 360, 79, 194, 195, 360, 407, 360,
705        401, 401, 360, 79, 194, 195, 360, 407,
706        360, 408, 401, 360, 79, 194, 195, 360,
707        360, 82, 360, 98, 360, 410, 410, 84,
708        79, 194, 195, 360, 360, 360, 365, 360,
709        411, 107, 412, 413, 88, 79, 194, 195,
710        360, 360, 360, 365, 360, 107, 412, 413,
711        88, 79, 194, 195, 360, 360, 360, 365,
712        360, 412, 412, 88, 79, 194, 195, 360,
713        360, 360, 365, 360, 414, 104, 415, 416,
714        91, 79, 194, 195, 360, 360, 360, 365,
715        360, 104, 415, 416, 91, 79, 194, 195,
716        360, 360, 360, 365, 360, 415, 415, 91,
717        79, 194, 195, 360, 360, 360, 365, 360,
718        417, 101, 418, 419, 94, 79, 194, 195,
719        360, 360, 360, 365, 360, 101, 418, 419,
720        94, 79, 194, 195, 360, 360, 360, 365,
721        360, 418, 418, 94, 79, 194, 195, 360,
722        360, 360, 365, 360, 420, 98, 401, 421,
723        360, 79, 194, 195, 360, 360, 360, 365,
724        360, 98, 401, 421, 360, 79, 194, 195,
725        360, 360, 360, 365, 360, 401, 422, 360,
726        79, 194, 195, 360, 360, 360, 365, 360,
727        98, 360, 401, 401, 360, 79, 194, 195,
728        360, 360, 360, 365, 360, 80, 81, 360,
729        360, 98, 400, 360, 79, 194, 195, 360,
730        360, 360, 365, 360, 80, 360, 394, 399,
731        399, 84, 79, 194, 195, 360, 360, 360,
732        397, 360, 393, 394, 399, 399, 84, 79,
733        194, 195, 360, 360, 360, 397, 360, 360,
734        200, 360, 393, 394, 395, 399, 84, 79,
735        194, 195, 360, 360, 109, 397, 360, 360,
736        200, 360, 391, 360, 423, 360, 410, 410,
737        84, 79, 194, 195, 360, 360, 360, 365,
738        360, 391, 360, 391, 360, 360, 360, 401,
739        401, 360, 79, 194, 195, 360, 360, 360,
740        365, 360, 391, 360, 391, 360, 360, 360,
741        401, 424, 360, 79, 194, 195, 360, 360,
742        360, 365, 360, 391, 360, 391, 360, 423,
743        360, 401, 401, 360, 79, 194, 195, 360,
744        360, 360, 365, 360, 391, 360, 391, 81,
745        360, 360, 98, 392, 360, 79, 194, 195,
746        360, 360, 360, 365, 360, 391, 360, 384,
747        385, 390, 390, 84, 79, 194, 195, 360,
748        360, 360, 388, 360, 360, 200, 360, 384,
749        385, 386, 390, 84, 79, 194, 195, 360,
750        360, 111, 388, 360, 360, 200, 360, 382,
751        360, 425, 360, 410, 410, 84, 79, 194,
752        195, 360, 360, 360, 365, 360, 382, 360,
753        382, 360, 360, 360, 401, 401, 360, 79,
754        194, 195, 360, 360, 360, 365, 360, 382,
755        360, 382, 360, 360, 360, 401, 426, 360,
756        79, 194, 195, 360, 360, 360, 365, 360,
757        382, 360, 382, 360, 425, 360, 401, 401,
758        360, 79, 194, 195, 360, 360, 360, 365,
759        360, 382, 360, 382, 81, 360, 360, 98,
760        383, 360, 79, 194, 195, 360, 360, 360,
761        365, 360, 382, 360, 375, 376, 381, 381,
762        84, 79, 194, 195, 360, 360, 360, 379,
763        360, 360, 200, 360, 375, 376, 377, 381,
764        84, 79, 194, 195, 360, 360, 113, 379,
765        360, 360, 200, 360, 373, 360, 427, 360,
766        410, 410, 84, 79, 194, 195, 360, 360,
767        360, 365, 360, 373, 360, 373, 360, 360,
768        360, 401, 401, 360, 79, 194, 195, 360,
769        360, 360, 365, 360, 373, 360, 373, 360,
770        360, 360, 401, 428, 360, 79, 194, 195,
771        360, 360, 360, 365, 360, 373, 360, 373,
772        360, 427, 360, 401, 401, 360, 79, 194,
773        195, 360, 360, 360, 365, 360, 373, 360,
774        373, 81, 360, 360, 98, 374, 360, 79,
775        194, 195, 360, 360, 360, 365, 360, 373,
776        360, 366, 367, 372, 372, 84, 79, 194,
777        195, 360, 360, 360, 370, 360, 360, 200,
778        360, 366, 367, 368, 372, 84, 79, 194,
779        195, 360, 360, 115, 370, 360, 360, 200,
780        360, 363, 360, 429, 360, 410, 410, 84,
781        79, 194, 195, 360, 360, 360, 365, 360,
782        363, 360, 363, 360, 360, 360, 401, 401,
783        360, 79, 194, 195, 360, 360, 360, 365,
784        360, 363, 360, 363, 360, 360, 360, 401,
785        430, 360, 79, 194, 195, 360, 360, 360,
786        365, 360, 363, 360, 363, 360, 429, 360,
787        401, 401, 360, 79, 194, 195, 360, 360,
788        360, 365, 360, 363, 360, 363, 81, 360,
789        360, 98, 364, 360, 79, 194, 195, 360,
790        360, 360, 365, 360, 363, 360, 116, 83,
791        83, 84, 79, 431, 431, 431, 431, 156,
792        116, 431, 190, 191, 362, 362, 84, 79,
793        194, 195, 360, 360, 360, 197, 360, 360,
794        200, 360, 116, 83, 83, 84, 79, 431,
795        431, 431, 431, 431, 116, 431, 433, 434,
796        435, 436, 123, 118, 437, 438, 432, 432,
797        155, 439, 432, 432, 440, 432, 441, 434,
798        436, 436, 123, 118, 437, 438, 432, 432,
799        432, 439, 432, 432, 440, 432, 434, 436,
800        436, 123, 118, 437, 438, 432, 432, 432,
801        439, 432, 432, 440, 432, 442, 432, 432,
802        432, 136, 443, 432, 118, 437, 438, 432,
803        432, 432, 444, 432, 442, 432, 445, 446,
804        447, 448, 123, 118, 437, 438, 432, 432,
805        153, 449, 432, 432, 440, 432, 450, 446,
806        451, 451, 123, 118, 437, 438, 432, 432,
807        432, 449, 432, 432, 440, 432, 446, 451,
808        451, 123, 118, 437, 438, 432, 432, 432,
809        449, 432, 432, 440, 432, 452, 432, 432,
810        432, 136, 453, 432, 118, 437, 438, 432,
811        432, 432, 444, 432, 452, 432, 454, 455,
812        456, 457, 123, 118, 437, 438, 432, 432,
813        151, 458, 432, 432, 440, 432, 459, 455,
814        460, 460, 123, 118, 437, 438, 432, 432,
815        432, 458, 432, 432, 440, 432, 455, 460,
816        460, 123, 118, 437, 438, 432, 432, 432,
817        458, 432, 432, 440, 432, 461, 432, 432,
818        432, 136, 462, 432, 118, 437, 438, 432,
819        432, 432, 444, 432, 461, 432, 463, 464,
820        465, 466, 123, 118, 437, 438, 432, 432,
821        149, 467, 432, 432, 440, 432, 468, 464,
822        469, 469, 123, 118, 437, 438, 432, 432,
823        432, 467, 432, 432, 440, 432, 464, 469,
824        469, 123, 118, 437, 438, 432, 432, 432,
825        467, 432, 432, 440, 432, 470, 432, 432,
826        432, 136, 471, 432, 118, 437, 438, 432,
827        432, 432, 444, 432, 470, 432, 472, 473,
828        474, 475, 123, 118, 437, 438, 432, 432,
829        147, 476, 432, 432, 440, 432, 477, 473,
830        478, 478, 123, 118, 437, 438, 432, 432,
831        432, 476, 432, 432, 440, 432, 473, 478,
832        478, 123, 118, 437, 438, 432, 432, 432,
833        476, 432, 432, 440, 432, 136, 479, 432,
834        118, 437, 438, 432, 432, 432, 444, 432,
835        480, 480, 432, 118, 437, 438, 432, 432,
836        432, 444, 432, 481, 432, 432, 482, 437,
837        438, 432, 437, 438, 432, 483, 432, 437,
838        484, 432, 437, 485, 432, 437, 432, 481,
839        432, 432, 432, 437, 438, 432, 486, 432,
840        487, 488, 432, 118, 437, 438, 432, 432,
841        121, 432, 120, 432, 480, 480, 432, 118,
842        437, 438, 432, 480, 480, 432, 118, 437,
843        438, 432, 486, 432, 480, 480, 432, 118,
844        437, 438, 432, 486, 432, 487, 480, 432,
845        118, 437, 438, 432, 432, 121, 432, 136,
846        432, 489, 489, 123, 118, 437, 438, 432,
847        432, 432, 444, 432, 490, 145, 491, 492,
848        126, 118, 437, 438, 432, 432, 432, 444,
849        432, 145, 491, 492, 126, 118, 437, 438,
850        432, 432, 432, 444, 432, 491, 491, 126,
851        118, 437, 438, 432, 432, 432, 444, 432,
852        493, 142, 494, 495, 129, 118, 437, 438,
853        432, 432, 432, 444, 432, 142, 494, 495,
854        129, 118, 437, 438, 432, 432, 432, 444,
855        432, 494, 494, 129, 118, 437, 438, 432,
856        432, 432, 444, 432, 496, 139, 497, 498,
857        132, 118, 437, 438, 432, 432, 432, 444,
858        432, 139, 497, 498, 132, 118, 437, 438,
859        432, 432, 432, 444, 432, 497, 497, 132,
860        118, 437, 438, 432, 432, 432, 444, 432,
861        499, 136, 480, 500, 432, 118, 437, 438,
862        432, 432, 432, 444, 432, 136, 480, 500,
863        432, 118, 437, 438, 432, 432, 432, 444,
864        432, 480, 501, 432, 118, 437, 438, 432,
865        432, 432, 444, 432, 136, 432, 480, 480,
866        432, 118, 437, 438, 432, 432, 432, 444,
867        432, 119, 120, 432, 432, 136, 479, 432,
868        118, 437, 438, 432, 432, 432, 444, 432,
869        119, 432, 473, 478, 478, 123, 118, 437,
870        438, 432, 432, 432, 476, 432, 472, 473,
871        478, 478, 123, 118, 437, 438, 432, 432,
872        432, 476, 432, 432, 440, 432, 472, 473,
873        474, 478, 123, 118, 437, 438, 432, 432,
874        147, 476, 432, 432, 440, 432, 470, 432,
875        502, 432, 489, 489, 123, 118, 437, 438,
876        432, 432, 432, 444, 432, 470, 432, 470,
877        432, 432, 432, 480, 480, 432, 118, 437,
878        438, 432, 432, 432, 444, 432, 470, 432,
879        470, 432, 432, 432, 480, 503, 432, 118,
880        437, 438, 432, 432, 432, 444, 432, 470,
881        432, 470, 432, 502, 432, 480, 480, 432,
882        118, 437, 438, 432, 432, 432, 444, 432,
883        470, 432, 470, 120, 432, 432, 136, 471,
884        432, 118, 437, 438, 432, 432, 432, 444,
885        432, 470, 432, 463, 464, 469, 469, 123,
886        118, 437, 438, 432, 432, 432, 467, 432,
887        432, 440, 432, 463, 464, 465, 469, 123,
888        118, 437, 438, 432, 432, 149, 467, 432,
889        432, 440, 432, 461, 432, 504, 432, 489,
890        489, 123, 118, 437, 438, 432, 432, 432,
891        444, 432, 461, 432, 461, 432, 432, 432,
892        480, 480, 432, 118, 437, 438, 432, 432,
893        432, 444, 432, 461, 432, 461, 432, 432,
894        432, 480, 505, 432, 118, 437, 438, 432,
895        432, 432, 444, 432, 461, 432, 461, 432,
896        504, 432, 480, 480, 432, 118, 437, 438,
897        432, 432, 432, 444, 432, 461, 432, 461,
898        120, 432, 432, 136, 462, 432, 118, 437,
899        438, 432, 432, 432, 444, 432, 461, 432,
900        454, 455, 460, 460, 123, 118, 437, 438,
901        432, 432, 432, 458, 432, 432, 440, 432,
902        454, 455, 456, 460, 123, 118, 437, 438,
903        432, 432, 151, 458, 432, 432, 440, 432,
904        452, 432, 506, 432, 489, 489, 123, 118,
905        437, 438, 432, 432, 432, 444, 432, 452,
906        432, 452, 432, 432, 432, 480, 480, 432,
907        118, 437, 438, 432, 432, 432, 444, 432,
908        452, 432, 452, 432, 432, 432, 480, 507,
909        432, 118, 437, 438, 432, 432, 432, 444,
910        432, 452, 432, 452, 432, 506, 432, 480,
911        480, 432, 118, 437, 438, 432, 432, 432,
912        444, 432, 452, 432, 452, 120, 432, 432,
913        136, 453, 432, 118, 437, 438, 432, 432,
914        432, 444, 432, 452, 432, 445, 446, 451,
915        451, 123, 118, 437, 438, 432, 432, 432,
916        449, 432, 432, 440, 432, 445, 446, 447,
917        451, 123, 118, 437, 438, 432, 432, 153,
918        449, 432, 432, 440, 432, 442, 432, 508,
919        432, 489, 489, 123, 118, 437, 438, 432,
920        432, 432, 444, 432, 442, 432, 442, 432,
921        432, 432, 480, 480, 432, 118, 437, 438,
922        432, 432, 432, 444, 432, 442, 432, 442,
923        432, 432, 432, 480, 509, 432, 118, 437,
924        438, 432, 432, 432, 444, 432, 442, 432,
925        442, 432, 508, 432, 480, 480, 432, 118,
926        437, 438, 432, 432, 432, 444, 432, 442,
927        432, 442, 120, 432, 432, 136, 443, 432,
928        118, 437, 438, 432, 432, 432, 444, 432,
929        442, 432, 433, 434, 436, 436, 123, 118,
930        437, 438, 432, 432, 432, 439, 432, 432,
931        440, 432, 188, 189, 190, 191, 510, 362,
932        84, 79, 194, 195, 196, 196, 156, 197,
933        360, 188, 200, 360, 203, 511, 205, 206,
934        6, 1, 207, 208, 202, 202, 38, 209,
935        202, 202, 210, 202, 213, 189, 190, 191,
936        512, 513, 84, 157, 514, 515, 202, 196,
937        156, 516, 202, 213, 200, 202, 116, 517,
938        517, 84, 157, 207, 208, 202, 202, 156,
939        518, 202, 519, 202, 202, 520, 514, 515,
940        202, 514, 515, 202, 254, 202, 514, 521,
941        202, 514, 522, 202, 514, 202, 519, 202,
942        202, 202, 514, 515, 202, 523, 3, 360,
943        360, 401, 430, 360, 79, 194, 195, 360,
944        360, 360, 365, 360, 523, 360, 524, 367,
945        525, 526, 84, 157, 514, 515, 202, 202,
946        158, 370, 202, 202, 200, 202, 527, 367,
947        528, 528, 84, 157, 514, 515, 202, 202,
948        202, 370, 202, 202, 200, 202, 367, 528,
949        528, 84, 157, 514, 515, 202, 202, 202,
950        370, 202, 202, 200, 202, 524, 367, 528,
951        528, 84, 157, 514, 515, 202, 202, 202,
952        370, 202, 202, 200, 202, 524, 367, 525,
953        528, 84, 157, 514, 515, 202, 202, 158,
954        370, 202, 202, 200, 202, 213, 202, 279,
955        116, 529, 529, 160, 157, 207, 208, 202,
956        202, 202, 518, 202, 213, 202, 530, 184,
957        531, 532, 162, 157, 514, 515, 202, 202,
958        202, 533, 202, 184, 531, 532, 162, 157,
959        514, 515, 202, 202, 202, 533, 202, 531,
960        531, 162, 157, 514, 515, 202, 202, 202,
961        533, 202, 534, 181, 535, 536, 165, 157,
962        514, 515, 202, 202, 202, 533, 202, 181,
963        535, 536, 165, 157, 514, 515, 202, 202,
964        202, 533, 202, 535, 535, 165, 157, 514,
965        515, 202, 202, 202, 533, 202, 537, 178,
966        538, 539, 168, 157, 514, 515, 202, 202,
967        202, 533, 202, 178, 538, 539, 168, 157,
968        514, 515, 202, 202, 202, 533, 202, 538,
969        538, 168, 157, 514, 515, 202, 202, 202,
970        533, 202, 540, 175, 541, 542, 202, 157,
971        514, 515, 202, 202, 202, 533, 202, 175,
972        541, 542, 202, 157, 514, 515, 202, 202,
973        202, 533, 202, 541, 541, 202, 157, 514,
974        515, 202, 202, 202, 533, 202, 543, 202,
975        544, 545, 202, 157, 514, 515, 202, 202,
976        172, 202, 171, 202, 541, 541, 202, 157,
977        514, 515, 202, 541, 541, 202, 157, 514,
978        515, 202, 543, 202, 541, 541, 202, 157,
979        514, 515, 202, 543, 202, 544, 541, 202,
980        157, 514, 515, 202, 202, 172, 202, 523,
981        171, 360, 360, 98, 364, 360, 79, 194,
982        195, 360, 360, 360, 365, 360, 523, 360,
983        547, 546, 548, 548, 546, 186, 549, 550,
984        546, 548, 548, 546, 186, 549, 550, 546,
985        551, 546, 546, 552, 549, 550, 546, 549,
986        550, 546, 553, 546, 549, 554, 546, 549,
987        555, 546, 549, 546, 551, 546, 546, 546,
988        549, 550, 546, 0
989};
990
991static const short _indic_syllable_machine_trans_targs[] = {
992        178, 200, 207, 209, 210, 4, 213, 5,
993        7, 216, 8, 10, 219, 11, 13, 222,
994        14, 16, 17, 199, 19, 20, 221, 22,
995        23, 218, 25, 26, 215, 224, 228, 232,
996        235, 239, 242, 246, 249, 253, 256, 178,
997        279, 286, 288, 289, 41, 292, 42, 44,
998        295, 45, 47, 298, 48, 50, 301, 51,
999        53, 54, 278, 56, 57, 300, 59, 60,
1000        297, 62, 63, 294, 303, 307, 311, 314,
1001        318, 321, 325, 328, 332, 336, 178, 357,
1002        364, 366, 367, 78, 370, 178, 79, 81,
1003        373, 82, 84, 376, 85, 87, 379, 88,
1004        90, 91, 356, 93, 94, 378, 96, 97,
1005        375, 99, 100, 372, 381, 385, 389, 392,
1006        396, 399, 403, 406, 410, 178, 437, 444,
1007        446, 447, 114, 450, 115, 117, 453, 118,
1008        120, 456, 121, 123, 459, 124, 126, 127,
1009        436, 129, 130, 458, 132, 133, 455, 135,
1010        136, 452, 461, 465, 469, 472, 476, 479,
1011        483, 486, 490, 493, 414, 498, 509, 152,
1012        512, 154, 515, 155, 157, 518, 158, 160,
1013        521, 161, 524, 526, 527, 166, 167, 523,
1014        169, 170, 520, 172, 173, 517, 175, 176,
1015        514, 178, 532, 178, 179, 258, 337, 339,
1016        413, 415, 359, 360, 416, 412, 494, 495,
1017        384, 530, 178, 180, 182, 36, 257, 202,
1018        203, 255, 227, 181, 35, 183, 251, 1,
1019        184, 186, 34, 250, 248, 185, 33, 187,
1020        244, 188, 190, 32, 243, 241, 189, 31,
1021        191, 237, 192, 194, 30, 236, 234, 193,
1022        29, 195, 230, 196, 198, 28, 229, 226,
1023        197, 27, 212, 0, 201, 206, 178, 204,
1024        205, 208, 2, 211, 3, 214, 6, 24,
1025        217, 9, 21, 220, 12, 18, 223, 15,
1026        225, 231, 233, 238, 240, 245, 247, 252,
1027        254, 178, 259, 261, 73, 334, 281, 282,
1028        335, 306, 260, 72, 262, 330, 38, 263,
1029        265, 71, 329, 327, 264, 70, 266, 323,
1030        267, 269, 69, 322, 320, 268, 68, 270,
1031        316, 271, 273, 67, 315, 313, 272, 66,
1032        274, 309, 275, 277, 65, 308, 305, 276,
1033        64, 291, 37, 280, 285, 178, 283, 284,
1034        287, 39, 290, 40, 293, 43, 61, 296,
1035        46, 58, 299, 49, 55, 302, 52, 304,
1036        310, 312, 317, 319, 324, 326, 331, 333,
1037        178, 338, 109, 340, 408, 75, 341, 343,
1038        108, 407, 405, 342, 107, 344, 401, 345,
1039        347, 106, 400, 398, 346, 105, 348, 394,
1040        349, 351, 104, 393, 391, 350, 103, 352,
1041        387, 353, 355, 102, 386, 383, 354, 101,
1042        369, 74, 358, 363, 178, 361, 362, 365,
1043        76, 368, 77, 371, 80, 98, 374, 83,
1044        95, 377, 86, 92, 380, 89, 382, 388,
1045        390, 395, 397, 402, 404, 409, 411, 178,
1046        178, 417, 419, 146, 145, 439, 440, 492,
1047        464, 418, 420, 488, 111, 421, 423, 144,
1048        487, 485, 422, 143, 424, 481, 425, 427,
1049        142, 480, 478, 426, 141, 428, 474, 429,
1050        431, 140, 473, 471, 430, 139, 432, 467,
1051        433, 435, 138, 466, 463, 434, 137, 449,
1052        110, 438, 443, 178, 441, 442, 445, 112,
1053        448, 113, 451, 116, 134, 454, 119, 131,
1054        457, 122, 128, 460, 125, 462, 468, 470,
1055        475, 477, 482, 484, 489, 491, 147, 496,
1056        497, 511, 500, 501, 529, 148, 505, 499,
1057        504, 502, 503, 506, 507, 150, 510, 508,
1058        149, 151, 513, 153, 174, 163, 516, 156,
1059        171, 519, 159, 168, 522, 162, 165, 525,
1060        164, 528, 178, 531, 177, 534, 535, 533,
1061        538, 178, 536, 537
1062};
1063
1064static const char _indic_syllable_machine_trans_actions[] = {
1065        1, 0, 2, 2, 2, 0, 2, 0,
1066        0, 2, 0, 0, 2, 0, 0, 2,
1067        0, 0, 0, 2, 0, 0, 2, 0,
1068        0, 2, 0, 0, 2, 2, 2, 2,
1069        2, 2, 2, 2, 2, 2, 2, 3,
1070        0, 2, 2, 2, 0, 2, 0, 0,
1071        2, 0, 0, 2, 0, 0, 2, 0,
1072        0, 0, 2, 0, 0, 2, 0, 0,
1073        2, 0, 0, 2, 2, 2, 2, 2,
1074        2, 2, 2, 2, 2, 2, 4, 0,
1075        2, 2, 2, 0, 2, 5, 0, 0,
1076        2, 0, 0, 2, 0, 0, 2, 0,
1077        0, 0, 2, 0, 0, 2, 0, 0,
1078        2, 0, 0, 2, 2, 6, 2, 6,
1079        2, 6, 2, 6, 2, 7, 0, 2,
1080        2, 2, 0, 2, 0, 0, 2, 0,
1081        0, 2, 0, 0, 2, 0, 0, 0,
1082        2, 0, 0, 2, 0, 0, 2, 0,
1083        0, 2, 2, 2, 2, 2, 2, 2,
1084        2, 2, 2, 2, 6, 0, 8, 0,
1085        2, 0, 2, 0, 0, 2, 0, 0,
1086        2, 0, 2, 2, 2, 0, 0, 2,
1087        0, 0, 2, 0, 0, 2, 0, 0,
1088        2, 9, 0, 12, 2, 2, 6, 2,
1089        13, 13, 0, 0, 2, 2, 6, 2,
1090        6, 2, 14, 2, 2, 0, 2, 0,
1091        0, 2, 2, 2, 0, 2, 2, 0,
1092        2, 2, 0, 2, 2, 2, 0, 2,
1093        2, 2, 2, 0, 2, 2, 2, 0,
1094        2, 2, 2, 2, 0, 2, 2, 2,
1095        0, 2, 2, 2, 2, 0, 2, 2,
1096        2, 0, 2, 0, 0, 0, 15, 0,
1097        0, 2, 0, 2, 0, 2, 0, 0,
1098        2, 0, 0, 2, 0, 0, 2, 0,
1099        2, 2, 2, 2, 2, 2, 2, 2,
1100        2, 16, 2, 2, 0, 2, 0, 0,
1101        2, 2, 2, 0, 2, 2, 0, 2,
1102        2, 0, 2, 2, 2, 0, 2, 2,
1103        2, 2, 0, 2, 2, 2, 0, 2,
1104        2, 2, 2, 0, 2, 2, 2, 0,
1105        2, 2, 2, 2, 0, 2, 2, 2,
1106        0, 2, 0, 0, 0, 17, 0, 0,
1107        2, 0, 2, 0, 2, 0, 0, 2,
1108        0, 0, 2, 0, 0, 2, 0, 2,
1109        2, 2, 2, 2, 2, 2, 2, 2,
1110        18, 6, 0, 6, 6, 0, 6, 2,
1111        0, 6, 2, 6, 0, 6, 6, 6,
1112        2, 0, 6, 2, 6, 0, 6, 6,
1113        6, 2, 0, 6, 2, 6, 0, 6,
1114        6, 6, 2, 0, 6, 2, 6, 0,
1115        6, 0, 0, 0, 19, 0, 0, 2,
1116        0, 2, 0, 2, 0, 0, 2, 0,
1117        0, 2, 0, 0, 2, 0, 2, 2,
1118        2, 2, 2, 2, 2, 2, 2, 20,
1119        21, 2, 2, 0, 0, 0, 0, 2,
1120        2, 2, 2, 2, 0, 2, 2, 0,
1121        2, 2, 2, 0, 2, 2, 2, 2,
1122        0, 2, 2, 2, 0, 2, 2, 2,
1123        2, 0, 2, 2, 2, 0, 2, 2,
1124        2, 2, 0, 2, 2, 2, 0, 2,
1125        0, 0, 0, 22, 0, 0, 2, 0,
1126        2, 0, 2, 0, 0, 2, 0, 0,
1127        2, 0, 0, 2, 0, 2, 2, 2,
1128        2, 2, 2, 2, 2, 2, 0, 0,
1129        8, 2, 0, 0, 2, 0, 2, 0,
1130        0, 0, 0, 8, 8, 0, 8, 8,
1131        0, 0, 2, 0, 0, 0, 2, 0,
1132        0, 2, 0, 0, 2, 0, 0, 2,
1133        0, 2, 23, 2, 0, 0, 0, 0,
1134        0, 24, 0, 0
1135};
1136
1137static const char _indic_syllable_machine_to_state_actions[] = {
1138        0, 0, 0, 0, 0, 0, 0, 0,
1139        0, 0, 0, 0, 0, 0, 0, 0,
1140        0, 0, 0, 0, 0, 0, 0, 0,
1141        0, 0, 0, 0, 0, 0, 0, 0,
1142        0, 0, 0, 0, 0, 0, 0, 0,
1143        0, 0, 0, 0, 0, 0, 0, 0,
1144        0, 0, 0, 0, 0, 0, 0, 0,
1145        0, 0, 0, 0, 0, 0, 0, 0,
1146        0, 0, 0, 0, 0, 0, 0, 0,
1147        0, 0, 0, 0, 0, 0, 0, 0,
1148        0, 0, 0, 0, 0, 0, 0, 0,
1149        0, 0, 0, 0, 0, 0, 0, 0,
1150        0, 0, 0, 0, 0, 0, 0, 0,
1151        0, 0, 0, 0, 0, 0, 0, 0,
1152        0, 0, 0, 0, 0, 0, 0, 0,
1153        0, 0, 0, 0, 0, 0, 0, 0,
1154        0, 0, 0, 0, 0, 0, 0, 0,
1155        0, 0, 0, 0, 0, 0, 0, 0,
1156        0, 0, 0, 0, 0, 0, 0, 0,
1157        0, 0, 0, 0, 0, 0, 0, 0,
1158        0, 0, 0, 0, 0, 0, 0, 0,
1159        0, 0, 0, 0, 0, 0, 0, 0,
1160        0, 0, 10, 0, 0, 0, 0, 0,
1161        0, 0, 0, 0, 0, 0, 0, 0,
1162        0, 0, 0, 0, 0, 0, 0, 0,
1163        0, 0, 0, 0, 0, 0, 0, 0,
1164        0, 0, 0, 0, 0, 0, 0, 0,
1165        0, 0, 0, 0, 0, 0, 0, 0,
1166        0, 0, 0, 0, 0, 0, 0, 0,
1167        0, 0, 0, 0, 0, 0, 0, 0,
1168        0, 0, 0, 0, 0, 0, 0, 0,
1169        0, 0, 0, 0, 0, 0, 0, 0,
1170        0, 0, 0, 0, 0, 0, 0, 0,
1171        0, 0, 0, 0, 0, 0, 0, 0,
1172        0, 0, 0, 0, 0, 0, 0, 0,
1173        0, 0, 0, 0, 0, 0, 0, 0,
1174        0, 0, 0, 0, 0, 0, 0, 0,
1175        0, 0, 0, 0, 0, 0, 0, 0,
1176        0, 0, 0, 0, 0, 0, 0, 0,
1177        0, 0, 0, 0, 0, 0, 0, 0,
1178        0, 0, 0, 0, 0, 0, 0, 0,
1179        0, 0, 0, 0, 0, 0, 0, 0,
1180        0, 0, 0, 0, 0, 0, 0, 0,
1181        0, 0, 0, 0, 0, 0, 0, 0,
1182        0, 0, 0, 0, 0, 0, 0, 0,
1183        0, 0, 0, 0, 0, 0, 0, 0,
1184        0, 0, 0, 0, 0, 0, 0, 0,
1185        0, 0, 0, 0, 0, 0, 0, 0,
1186        0, 0, 0, 0, 0, 0, 0, 0,
1187        0, 0, 0, 0, 0, 0, 0, 0,
1188        0, 0, 0, 0, 0, 0, 0, 0,
1189        0, 0, 0, 0, 0, 0, 0, 0,
1190        0, 0, 0, 0, 0, 0, 0, 0,
1191        0, 0, 0, 0, 0, 0, 0, 0,
1192        0, 0, 0, 0, 0, 0, 0, 0,
1193        0, 0, 0, 0, 0, 0, 0, 0,
1194        0, 0, 0, 0, 0, 0, 0, 0,
1195        0, 0, 0, 0, 0, 0, 0, 0,
1196        0, 0, 0, 0, 0, 0, 0, 0,
1197        0, 0, 0, 0, 0, 0, 0, 0,
1198        0, 0, 0, 0, 0, 0, 0, 0,
1199        0, 0, 0, 0, 0, 0, 0, 0,
1200        0, 0, 0, 0, 0, 0, 0, 0,
1201        0, 0, 0, 0, 0, 0, 0, 0,
1202        0, 0, 0, 0, 0, 0, 0, 0,
1203        0, 0, 0, 0, 0, 0, 0, 0,
1204        0, 0, 0, 0, 0, 0, 0, 0,
1205        0, 0, 0
1206};
1207
1208static const char _indic_syllable_machine_from_state_actions[] = {
1209        0, 0, 0, 0, 0, 0, 0, 0,
1210        0, 0, 0, 0, 0, 0, 0, 0,
1211        0, 0, 0, 0, 0, 0, 0, 0,
1212        0, 0, 0, 0, 0, 0, 0, 0,
1213        0, 0, 0, 0, 0, 0, 0, 0,
1214        0, 0, 0, 0, 0, 0, 0, 0,
1215        0, 0, 0, 0, 0, 0, 0, 0,
1216        0, 0, 0, 0, 0, 0, 0, 0,
1217        0, 0, 0, 0, 0, 0, 0, 0,
1218        0, 0, 0, 0, 0, 0, 0, 0,
1219        0, 0, 0, 0, 0, 0, 0, 0,
1220        0, 0, 0, 0, 0, 0, 0, 0,
1221        0, 0, 0, 0, 0, 0, 0, 0,
1222        0, 0, 0, 0, 0, 0, 0, 0,
1223        0, 0, 0, 0, 0, 0, 0, 0,
1224        0, 0, 0, 0, 0, 0, 0, 0,
1225        0, 0, 0, 0, 0, 0, 0, 0,
1226        0, 0, 0, 0, 0, 0, 0, 0,
1227        0, 0, 0, 0, 0, 0, 0, 0,
1228        0, 0, 0, 0, 0, 0, 0, 0,
1229        0, 0, 0, 0, 0, 0, 0, 0,
1230        0, 0, 0, 0, 0, 0, 0, 0,
1231        0, 0, 11, 0, 0, 0, 0, 0,
1232        0, 0, 0, 0, 0, 0, 0, 0,
1233        0, 0, 0, 0, 0, 0, 0, 0,
1234        0, 0, 0, 0, 0, 0, 0, 0,
1235        0, 0, 0, 0, 0, 0, 0, 0,
1236        0, 0, 0, 0, 0, 0, 0, 0,
1237        0, 0, 0, 0, 0, 0, 0, 0,
1238        0, 0, 0, 0, 0, 0, 0, 0,
1239        0, 0, 0, 0, 0, 0, 0, 0,
1240        0, 0, 0, 0, 0, 0, 0, 0,
1241        0, 0, 0, 0, 0, 0, 0, 0,
1242        0, 0, 0, 0, 0, 0, 0, 0,
1243        0, 0, 0, 0, 0, 0, 0, 0,
1244        0, 0, 0, 0, 0, 0, 0, 0,
1245        0, 0, 0, 0, 0, 0, 0, 0,
1246        0, 0, 0, 0, 0, 0, 0, 0,
1247        0, 0, 0, 0, 0, 0, 0, 0,
1248        0, 0, 0, 0, 0, 0, 0, 0,
1249        0, 0, 0, 0, 0, 0, 0, 0,
1250        0, 0, 0, 0, 0, 0, 0, 0,
1251        0, 0, 0, 0, 0, 0, 0, 0,
1252        0, 0, 0, 0, 0, 0, 0, 0,
1253        0, 0, 0, 0, 0, 0, 0, 0,
1254        0, 0, 0, 0, 0, 0, 0, 0,
1255        0, 0, 0, 0, 0, 0, 0, 0,
1256        0, 0, 0, 0, 0, 0, 0, 0,
1257        0, 0, 0, 0, 0, 0, 0, 0,
1258        0, 0, 0, 0, 0, 0, 0, 0,
1259        0, 0, 0, 0, 0, 0, 0, 0,
1260        0, 0, 0, 0, 0, 0, 0, 0,
1261        0, 0, 0, 0, 0, 0, 0, 0,
1262        0, 0, 0, 0, 0, 0, 0, 0,
1263        0, 0, 0, 0, 0, 0, 0, 0,
1264        0, 0, 0, 0, 0, 0, 0, 0,
1265        0, 0, 0, 0, 0, 0, 0, 0,
1266        0, 0, 0, 0, 0, 0, 0, 0,
1267        0, 0, 0, 0, 0, 0, 0, 0,
1268        0, 0, 0, 0, 0, 0, 0, 0,
1269        0, 0, 0, 0, 0, 0, 0, 0,
1270        0, 0, 0, 0, 0, 0, 0, 0,
1271        0, 0, 0, 0, 0, 0, 0, 0,
1272        0, 0, 0, 0, 0, 0, 0, 0,
1273        0, 0, 0, 0, 0, 0, 0, 0,
1274        0, 0, 0, 0, 0, 0, 0, 0,
1275        0, 0, 0, 0, 0, 0, 0, 0,
1276        0, 0, 0
1277};
1278
1279static const short _indic_syllable_machine_eof_trans[] = {
1280        1, 1, 1, 1, 1, 1, 1, 1,
1281        1, 1, 1, 1, 1, 1, 1, 1,
1282        1, 1, 1, 1, 1, 1, 1, 1,
1283        1, 1, 1, 1, 1, 1, 1, 1,
1284        1, 1, 1, 1, 1, 40, 40, 40,
1285        40, 40, 40, 40, 40, 40, 40, 40,
1286        40, 40, 40, 40, 40, 40, 40, 40,
1287        40, 40, 40, 40, 40, 40, 40, 40,
1288        40, 40, 40, 40, 40, 40, 40, 40,
1289        40, 40, 79, 79, 79, 79, 86, 86,
1290        79, 79, 79, 79, 79, 79, 79, 79,
1291        79, 79, 79, 79, 79, 79, 79, 79,
1292        79, 79, 79, 79, 79, 79, 79, 79,
1293        79, 79, 79, 79, 79, 79, 118, 118,
1294        118, 118, 118, 118, 118, 118, 118, 118,
1295        118, 118, 118, 118, 118, 118, 118, 118,
1296        118, 118, 118, 118, 118, 118, 118, 118,
1297        118, 118, 118, 118, 118, 118, 118, 118,
1298        118, 118, 118, 79, 1, 1, 1, 1,
1299        1, 1, 1, 1, 1, 1, 1, 1,
1300        1, 1, 1, 1, 1, 1, 1, 1,
1301        1, 1, 1, 1, 1, 1, 1, 1,
1302        1, 186, 0, 203, 203, 203, 203, 203,
1303        203, 203, 203, 203, 203, 203, 203, 203,
1304        203, 203, 203, 203, 203, 203, 203, 203,
1305        203, 203, 203, 203, 203, 203, 203, 203,
1306        203, 203, 203, 203, 203, 203, 203, 203,
1307        203, 203, 203, 203, 203, 203, 203, 203,
1308        203, 203, 203, 203, 203, 203, 203, 203,
1309        203, 203, 203, 203, 203, 203, 203, 203,
1310        203, 203, 203, 203, 203, 203, 203, 203,
1311        203, 203, 203, 203, 203, 203, 203, 203,
1312        203, 203, 282, 282, 282, 282, 282, 282,
1313        282, 282, 282, 282, 282, 282, 282, 282,
1314        282, 282, 282, 282, 282, 282, 282, 282,
1315        282, 282, 282, 282, 282, 282, 282, 282,
1316        282, 282, 282, 282, 282, 282, 282, 282,
1317        282, 282, 282, 282, 282, 282, 282, 282,
1318        282, 282, 282, 282, 282, 282, 282, 282,
1319        282, 282, 282, 282, 282, 282, 282, 282,
1320        282, 282, 282, 282, 282, 282, 282, 282,
1321        282, 282, 282, 282, 282, 282, 282, 282,
1322        282, 361, 361, 361, 361, 361, 361, 361,
1323        361, 361, 361, 361, 361, 361, 361, 361,
1324        361, 361, 361, 361, 361, 361, 361, 361,
1325        361, 361, 361, 361, 361, 361, 361, 361,
1326        361, 361, 361, 361, 361, 361, 361, 361,
1327        361, 361, 361, 361, 361, 361, 361, 361,
1328        361, 361, 361, 361, 361, 361, 361, 361,
1329        361, 361, 361, 361, 361, 361, 361, 361,
1330        361, 361, 361, 361, 361, 361, 361, 361,
1331        361, 361, 361, 361, 361, 432, 361, 432,
1332        433, 433, 433, 433, 433, 433, 433, 433,
1333        433, 433, 433, 433, 433, 433, 433, 433,
1334        433, 433, 433, 433, 433, 433, 433, 433,
1335        433, 433, 433, 433, 433, 433, 433, 433,
1336        433, 433, 433, 433, 433, 433, 433, 433,
1337        433, 433, 433, 433, 433, 433, 433, 433,
1338        433, 433, 433, 433, 433, 433, 433, 433,
1339        433, 433, 433, 433, 433, 433, 433, 433,
1340        433, 433, 433, 433, 433, 433, 433, 433,
1341        433, 433, 433, 433, 433, 433, 361, 203,
1342        203, 203, 203, 203, 203, 203, 203, 203,
1343        203, 361, 203, 203, 203, 203, 203, 203,
1344        203, 203, 203, 203, 203, 203, 203, 203,
1345        203, 203, 203, 203, 203, 203, 203, 203,
1346        203, 361, 547, 547, 547, 547, 547, 547,
1347        547, 547, 547
1348};
1349
1350static const int indic_syllable_machine_start = 178;
1351static const int indic_syllable_machine_first_final = 178;
1352static const int indic_syllable_machine_error = -1;
1353
1354static const int indic_syllable_machine_en_main = 178;
1355
1356
1357#line 36 "hb-ot-shape-complex-indic-machine.rl"
1358
1359
1360
1361#line 96 "hb-ot-shape-complex-indic-machine.rl"
1362
1363
1364#define found_syllable(syllable_type) \
1365  HB_STMT_START { \
1366    if (0) fprintf (stderr, "syllable %d..%d %s\n", last, p+1, #syllable_type); \
1367    for (unsigned int i = last; i < p+1; i++) \
1368      info[i].syllable() = (syllable_serial << 4) | syllable_type; \
1369    last = p+1; \
1370    syllable_serial++; \
1371    if (unlikely (syllable_serial == 16)) syllable_serial = 1; \
1372  } HB_STMT_END
1373
1374static void
1375find_syllables (hb_buffer_t *buffer)
1376{
1377  unsigned int p, pe, eof, ts HB_UNUSED, te HB_UNUSED, act HB_UNUSED;
1378  int cs;
1379  hb_glyph_info_t *info = buffer->info;
1380
1381#line 1382 "hb-ot-shape-complex-indic-machine.hh"
1382        {
1383        cs = indic_syllable_machine_start;
1384        ts = 0;
1385        te = 0;
1386        act = 0;
1387        }
1388
1389#line 117 "hb-ot-shape-complex-indic-machine.rl"
1390
1391
1392  p = 0;
1393  pe = eof = buffer->len;
1394
1395  unsigned int last = 0;
1396  unsigned int syllable_serial = 1;
1397
1398#line 1399 "hb-ot-shape-complex-indic-machine.hh"
1399        {
1400        int _slen;
1401        int _trans;
1402        const unsigned char *_keys;
1403        const short *_inds;
1404        if ( p == pe )
1405                goto _test_eof;
1406_resume:
1407        switch ( _indic_syllable_machine_from_state_actions[cs] ) {
1408        case 11:
1409#line 1 "NONE"
1410        {ts = p;}
1411        break;
1412#line 1413 "hb-ot-shape-complex-indic-machine.hh"
1413        }
1414
1415        _keys = _indic_syllable_machine_trans_keys + (cs<<1);
1416        _inds = _indic_syllable_machine_indicies + _indic_syllable_machine_index_offsets[cs];
1417
1418        _slen = _indic_syllable_machine_key_spans[cs];
1419        _trans = _inds[ _slen > 0 && _keys[0] <=( info[p].indic_category()) &&
1420                ( info[p].indic_category()) <= _keys[1] ?
1421                ( info[p].indic_category()) - _keys[0] : _slen ];
1422
1423_eof_trans:
1424        cs = _indic_syllable_machine_trans_targs[_trans];
1425
1426        if ( _indic_syllable_machine_trans_actions[_trans] == 0 )
1427                goto _again;
1428
1429        switch ( _indic_syllable_machine_trans_actions[_trans] ) {
1430        case 2:
1431#line 1 "NONE"
1432        {te = p+1;}
1433        break;
1434        case 15:
1435#line 87 "hb-ot-shape-complex-indic-machine.rl"
1436        {te = p+1;{ found_syllable (consonant_syllable); }}
1437        break;
1438        case 17:
1439#line 88 "hb-ot-shape-complex-indic-machine.rl"
1440        {te = p+1;{ found_syllable (vowel_syllable); }}
1441        break;
1442        case 22:
1443#line 89 "hb-ot-shape-complex-indic-machine.rl"
1444        {te = p+1;{ found_syllable (standalone_cluster); }}
1445        break;
1446        case 24:
1447#line 90 "hb-ot-shape-complex-indic-machine.rl"
1448        {te = p+1;{ found_syllable (symbol_cluster); }}
1449        break;
1450        case 19:
1451#line 91 "hb-ot-shape-complex-indic-machine.rl"
1452        {te = p+1;{ found_syllable (broken_cluster); }}
1453        break;
1454        case 12:
1455#line 92 "hb-ot-shape-complex-indic-machine.rl"
1456        {te = p+1;{ found_syllable (non_indic_cluster); }}
1457        break;
1458        case 14:
1459#line 87 "hb-ot-shape-complex-indic-machine.rl"
1460        {te = p;p--;{ found_syllable (consonant_syllable); }}
1461        break;
1462        case 16:
1463#line 88 "hb-ot-shape-complex-indic-machine.rl"
1464        {te = p;p--;{ found_syllable (vowel_syllable); }}
1465        break;
1466        case 21:
1467#line 89 "hb-ot-shape-complex-indic-machine.rl"
1468        {te = p;p--;{ found_syllable (standalone_cluster); }}
1469        break;
1470        case 23:
1471#line 90 "hb-ot-shape-complex-indic-machine.rl"
1472        {te = p;p--;{ found_syllable (symbol_cluster); }}
1473        break;
1474        case 18:
1475#line 91 "hb-ot-shape-complex-indic-machine.rl"
1476        {te = p;p--;{ found_syllable (broken_cluster); }}
1477        break;
1478        case 20:
1479#line 92 "hb-ot-shape-complex-indic-machine.rl"
1480        {te = p;p--;{ found_syllable (non_indic_cluster); }}
1481        break;
1482        case 1:
1483#line 87 "hb-ot-shape-complex-indic-machine.rl"
1484        {{p = ((te))-1;}{ found_syllable (consonant_syllable); }}
1485        break;
1486        case 3:
1487#line 88 "hb-ot-shape-complex-indic-machine.rl"
1488        {{p = ((te))-1;}{ found_syllable (vowel_syllable); }}
1489        break;
1490        case 7:
1491#line 89 "hb-ot-shape-complex-indic-machine.rl"
1492        {{p = ((te))-1;}{ found_syllable (standalone_cluster); }}
1493        break;
1494        case 9:
1495#line 90 "hb-ot-shape-complex-indic-machine.rl"
1496        {{p = ((te))-1;}{ found_syllable (symbol_cluster); }}
1497        break;
1498        case 4:
1499#line 91 "hb-ot-shape-complex-indic-machine.rl"
1500        {{p = ((te))-1;}{ found_syllable (broken_cluster); }}
1501        break;
1502        case 5:
1503#line 1 "NONE"
1504        {       switch( act ) {
1505        case 1:
1506        {{p = ((te))-1;} found_syllable (consonant_syllable); }
1507        break;
1508        case 5:
1509        {{p = ((te))-1;} found_syllable (broken_cluster); }
1510        break;
1511        case 6:
1512        {{p = ((te))-1;} found_syllable (non_indic_cluster); }
1513        break;
1514        }
1515        }
1516        break;
1517        case 8:
1518#line 1 "NONE"
1519        {te = p+1;}
1520#line 87 "hb-ot-shape-complex-indic-machine.rl"
1521        {act = 1;}
1522        break;
1523        case 6:
1524#line 1 "NONE"
1525        {te = p+1;}
1526#line 91 "hb-ot-shape-complex-indic-machine.rl"
1527        {act = 5;}
1528        break;
1529        case 13:
1530#line 1 "NONE"
1531        {te = p+1;}
1532#line 92 "hb-ot-shape-complex-indic-machine.rl"
1533        {act = 6;}
1534        break;
1535#line 1536 "hb-ot-shape-complex-indic-machine.hh"
1536        }
1537
1538_again:
1539        switch ( _indic_syllable_machine_to_state_actions[cs] ) {
1540        case 10:
1541#line 1 "NONE"
1542        {ts = 0;}
1543        break;
1544#line 1545 "hb-ot-shape-complex-indic-machine.hh"
1545        }
1546
1547        if ( ++p != pe )
1548                goto _resume;
1549        _test_eof: {}
1550        if ( p == eof )
1551        {
1552        if ( _indic_syllable_machine_eof_trans[cs] > 0 ) {
1553                _trans = _indic_syllable_machine_eof_trans[cs] - 1;
1554                goto _eof_trans;
1555        }
1556        }
1557
1558        }
1559
1560#line 126 "hb-ot-shape-complex-indic-machine.rl"
1561
1562}
1563
1564#endif /* HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH */
1565