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.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, 5u, 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, 8u, 4u, 13u, 4u, 8u, 4u, 13u, 4u, 8u, 4u, 13u, 4u, 8u,
41 4u, 13u, 4u, 8u, 4u, 13u, 8u, 8u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u,
42 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u,
43 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u,
44 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 4u, 13u, 4u, 8u, 4u, 13u,
45 4u, 8u, 4u, 13u, 4u, 8u, 4u, 13u, 4u, 8u, 4u, 13u, 8u, 8u, 5u, 8u,
46 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u,
47 5u, 8u, 5u, 7u, 7u, 7u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u,
48 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u,
49 4u, 13u, 4u, 8u, 4u, 13u, 4u, 8u, 4u, 13u, 4u, 8u, 4u, 13u, 4u, 8u,
50 8u, 8u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u,
51 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 4u, 8u, 6u, 6u, 16u, 16u,
52 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u,
53 16u, 16u, 4u, 8u, 4u, 13u, 4u, 8u, 4u, 13u, 4u, 8u, 4u, 13u, 4u, 8u,
54 4u, 13u, 4u, 8u, 4u, 13u, 4u, 13u, 5u, 8u, 5u, 8u, 5u, 7u, 5u, 8u,
55 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u,
56 8u, 8u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u,
57 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 8u, 8u, 1u, 19u, 3u, 17u,
58 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u,
59 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u,
60 3u, 17u, 4u, 17u, 5u, 10u, 5u, 10u, 5u, 10u, 10u, 10u, 10u, 10u, 10u, 10u,
61 5u, 10u, 3u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u,
62 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u,
63 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u,
64 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u,
65 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
66 3u, 17u, 3u, 17u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u,
67 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u,
68 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 5u, 10u, 5u, 10u, 5u, 10u,
69 10u, 10u, 10u, 10u, 10u, 10u, 5u, 10u, 3u, 10u, 3u, 10u, 4u, 10u, 5u, 10u,
70 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u,
71 5u, 10u, 3u, 10u, 4u, 10u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u,
72 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u,
73 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u,
74 1u, 16u, 1u, 16u, 1u, 16u, 4u, 8u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u,
75 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u,
76 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 5u, 10u,
77 5u, 10u, 5u, 10u, 10u, 10u, 10u, 10u, 10u, 10u, 5u, 10u, 3u, 10u, 3u, 10u,
78 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u,
79 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 3u, 17u, 3u, 17u, 1u, 16u,
80 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u,
81 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u,
82 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 4u, 13u, 3u, 17u, 4u, 8u,
83 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u,
84 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u,
85 3u, 17u, 3u, 17u, 4u, 17u, 5u, 10u, 5u, 10u, 5u, 10u, 10u, 10u, 10u, 10u,
86 10u, 10u, 5u, 10u, 3u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u,
87 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u,
88 4u, 10u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u,
89 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u,
90 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u,
91 1u, 16u, 3u, 17u, 1u, 17u, 3u, 17u, 1u, 17u, 4u, 13u, 5u, 10u, 10u, 10u,
92 10u, 10u, 10u, 10u, 5u, 10u, 1u, 16u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u,
93 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u,
94 3u, 10u, 5u, 10u, 5u, 10u, 10u, 10u, 10u, 10u, 10u, 10u, 5u, 10u, 1u, 16u,
95 0
96};
97
98static const char _indic_syllable_machine_key_spans[] = {
99 1, 4, 3, 1, 4, 3, 1, 4,
100 3, 1, 4, 3, 1, 5, 1, 1,
101 5, 1, 1, 5, 1, 1, 5, 1,
102 1, 5, 10, 5, 10, 5, 10, 5,
103 10, 5, 10, 1, 4, 3, 1, 4,
104 3, 1, 4, 3, 1, 4, 3, 1,
105 5, 1, 1, 5, 1, 1, 5, 1,
106 1, 5, 1, 1, 5, 10, 5, 10,
107 5, 10, 5, 10, 5, 10, 1, 4,
108 3, 1, 4, 3, 1, 4, 3, 1,
109 4, 3, 1, 5, 1, 1, 5, 1,
110 1, 5, 1, 1, 5, 1, 1, 5,
111 10, 5, 10, 5, 10, 5, 10, 5,
112 1, 4, 3, 1, 4, 3, 1, 4,
113 3, 1, 4, 3, 1, 5, 1, 1,
114 5, 1, 1, 5, 1, 1, 5, 1,
115 1, 5, 10, 5, 10, 5, 10, 5,
116 10, 5, 10, 10, 4, 4, 3, 4,
117 3, 1, 4, 3, 1, 4, 3, 1,
118 1, 5, 1, 1, 5, 1, 1, 5,
119 1, 1, 5, 1, 1, 1, 19, 15,
120 15, 14, 16, 15, 15, 14, 16, 15,
121 15, 14, 16, 15, 15, 14, 16, 15,
122 15, 14, 6, 6, 6, 1, 1, 1,
123 6, 8, 8, 7, 6, 8, 7, 6,
124 8, 7, 6, 8, 7, 6, 8, 7,
125 15, 15, 16, 16, 16, 16, 15, 15,
126 16, 16, 16, 16, 15, 15, 16, 16,
127 16, 16, 15, 15, 16, 16, 16, 16,
128 15, 15, 15, 15, 14, 16, 15, 15,
129 14, 16, 15, 15, 14, 16, 15, 15,
130 14, 16, 15, 15, 14, 6, 6, 6,
131 1, 1, 1, 6, 8, 8, 7, 6,
132 8, 7, 6, 8, 7, 6, 8, 7,
133 6, 8, 7, 15, 15, 16, 16, 16,
134 16, 15, 15, 16, 16, 16, 16, 15,
135 15, 16, 16, 16, 16, 15, 15, 16,
136 16, 16, 16, 5, 15, 15, 14, 16,
137 15, 15, 14, 16, 15, 15, 14, 16,
138 15, 15, 14, 16, 15, 15, 14, 6,
139 6, 6, 1, 1, 1, 6, 8, 8,
140 7, 6, 8, 7, 6, 8, 7, 6,
141 8, 7, 6, 8, 7, 15, 15, 16,
142 16, 16, 16, 15, 15, 16, 16, 16,
143 16, 15, 15, 16, 16, 16, 16, 15,
144 15, 16, 16, 16, 16, 10, 15, 5,
145 15, 15, 14, 16, 15, 15, 14, 16,
146 15, 15, 14, 16, 15, 15, 14, 16,
147 15, 15, 14, 6, 6, 6, 1, 1,
148 1, 6, 8, 8, 7, 6, 8, 7,
149 6, 8, 7, 6, 8, 7, 6, 8,
150 7, 15, 15, 16, 16, 16, 16, 15,
151 15, 16, 16, 16, 16, 15, 15, 16,
152 16, 16, 16, 15, 15, 16, 16, 16,
153 16, 15, 17, 15, 17, 10, 6, 1,
154 1, 1, 6, 16, 8, 7, 6, 8,
155 7, 6, 8, 7, 6, 8, 7, 6,
156 8, 6, 6, 1, 1, 1, 6, 16
157};
158
159static const short _indic_syllable_machine_index_offsets[] = {
160 0, 2, 7, 11, 13, 18, 22, 24,
161 29, 33, 35, 40, 44, 46, 52, 54,
162 56, 62, 64, 66, 72, 74, 76, 82,
163 84, 86, 92, 103, 109, 120, 126, 137,
164 143, 154, 160, 171, 173, 178, 182, 184,
165 189, 193, 195, 200, 204, 206, 211, 215,
166 217, 223, 225, 227, 233, 235, 237, 243,
167 245, 247, 253, 255, 257, 263, 274, 280,
168 291, 297, 308, 314, 325, 331, 342, 344,
169 349, 353, 355, 360, 364, 366, 371, 375,
170 377, 382, 386, 388, 394, 396, 398, 404,
171 406, 408, 414, 416, 418, 424, 426, 428,
172 434, 445, 451, 462, 468, 479, 485, 496,
173 502, 504, 509, 513, 515, 520, 524, 526,
174 531, 535, 537, 542, 546, 548, 554, 556,
175 558, 564, 566, 568, 574, 576, 578, 584,
176 586, 588, 594, 605, 611, 622, 628, 639,
177 645, 656, 662, 673, 684, 689, 694, 698,
178 703, 707, 709, 714, 718, 720, 725, 729,
179 731, 733, 739, 741, 743, 749, 751, 753,
180 759, 761, 763, 769, 771, 773, 775, 795,
181 811, 827, 842, 859, 875, 891, 906, 923,
182 939, 955, 970, 987, 1003, 1019, 1034, 1051,
183 1067, 1083, 1098, 1105, 1112, 1119, 1121, 1123,
184 1125, 1132, 1141, 1150, 1158, 1165, 1174, 1182,
185 1189, 1198, 1206, 1213, 1222, 1230, 1237, 1246,
186 1254, 1270, 1286, 1303, 1320, 1337, 1354, 1370,
187 1386, 1403, 1420, 1437, 1454, 1470, 1486, 1503,
188 1520, 1537, 1554, 1570, 1586, 1603, 1620, 1637,
189 1654, 1670, 1686, 1702, 1718, 1733, 1750, 1766,
190 1782, 1797, 1814, 1830, 1846, 1861, 1878, 1894,
191 1910, 1925, 1942, 1958, 1974, 1989, 1996, 2003,
192 2010, 2012, 2014, 2016, 2023, 2032, 2041, 2049,
193 2056, 2065, 2073, 2080, 2089, 2097, 2104, 2113,
194 2121, 2128, 2137, 2145, 2161, 2177, 2194, 2211,
195 2228, 2245, 2261, 2277, 2294, 2311, 2328, 2345,
196 2361, 2377, 2394, 2411, 2428, 2445, 2461, 2477,
197 2494, 2511, 2528, 2545, 2551, 2567, 2583, 2598,
198 2615, 2631, 2647, 2662, 2679, 2695, 2711, 2726,
199 2743, 2759, 2775, 2790, 2807, 2823, 2839, 2854,
200 2861, 2868, 2875, 2877, 2879, 2881, 2888, 2897,
201 2906, 2914, 2921, 2930, 2938, 2945, 2954, 2962,
202 2969, 2978, 2986, 2993, 3002, 3010, 3026, 3042,
203 3059, 3076, 3093, 3110, 3126, 3142, 3159, 3176,
204 3193, 3210, 3226, 3242, 3259, 3276, 3293, 3310,
205 3326, 3342, 3359, 3376, 3393, 3410, 3421, 3437,
206 3443, 3459, 3475, 3490, 3507, 3523, 3539, 3554,
207 3571, 3587, 3603, 3618, 3635, 3651, 3667, 3682,
208 3699, 3715, 3731, 3746, 3753, 3760, 3767, 3769,
209 3771, 3773, 3780, 3789, 3798, 3806, 3813, 3822,
210 3830, 3837, 3846, 3854, 3861, 3870, 3878, 3885,
211 3894, 3902, 3918, 3934, 3951, 3968, 3985, 4002,
212 4018, 4034, 4051, 4068, 4085, 4102, 4118, 4134,
213 4151, 4168, 4185, 4202, 4218, 4234, 4251, 4268,
214 4285, 4302, 4318, 4336, 4352, 4370, 4381, 4388,
215 4390, 4392, 4394, 4401, 4418, 4427, 4435, 4442,
216 4451, 4459, 4466, 4475, 4483, 4490, 4499, 4507,
217 4514, 4523, 4530, 4537, 4539, 4541, 4543, 4550
218};
219
220static const short _indic_syllable_machine_indicies[] = {
221 1, 0, 2, 2, 3, 1, 0, 4,
222 4, 3, 0, 3, 0, 5, 5, 6,
223 1, 0, 7, 7, 6, 0, 6, 0,
224 8, 8, 9, 1, 0, 10, 10, 9,
225 0, 9, 0, 11, 11, 12, 1, 0,
226 13, 13, 12, 0, 12, 0, 14, 0,
227 0, 0, 1, 0, 15, 0, 16, 0,
228 17, 11, 11, 12, 1, 0, 18, 0,
229 19, 0, 20, 8, 8, 9, 1, 0,
230 21, 0, 22, 0, 23, 5, 5, 6,
231 1, 0, 24, 0, 25, 0, 26, 2,
232 2, 3, 1, 0, 26, 2, 2, 3,
233 1, 0, 0, 0, 0, 27, 0, 28,
234 2, 2, 3, 1, 0, 28, 2, 2,
235 3, 1, 0, 0, 0, 0, 29, 0,
236 30, 2, 2, 3, 1, 0, 30, 2,
237 2, 3, 1, 0, 0, 0, 0, 31,
238 0, 32, 2, 2, 3, 1, 0, 32,
239 2, 2, 3, 1, 0, 0, 0, 0,
240 33, 0, 34, 2, 2, 3, 1, 0,
241 34, 2, 2, 3, 1, 0, 0, 0,
242 0, 35, 0, 37, 36, 38, 38, 39,
243 37, 36, 40, 40, 39, 36, 39, 36,
244 41, 41, 42, 37, 36, 43, 43, 42,
245 36, 42, 36, 44, 44, 45, 37, 36,
246 46, 46, 45, 36, 45, 36, 47, 47,
247 48, 37, 36, 49, 49, 48, 36, 48,
248 36, 50, 36, 36, 36, 37, 36, 51,
249 36, 52, 36, 53, 47, 47, 48, 37,
250 36, 54, 36, 55, 36, 56, 44, 44,
251 45, 37, 36, 57, 36, 58, 36, 59,
252 41, 41, 42, 37, 36, 60, 36, 61,
253 36, 62, 38, 38, 39, 37, 36, 62,
254 38, 38, 39, 37, 36, 36, 36, 36,
255 63, 36, 64, 38, 38, 39, 37, 36,
256 64, 38, 38, 39, 37, 36, 36, 36,
257 36, 65, 36, 66, 38, 38, 39, 37,
258 36, 66, 38, 38, 39, 37, 36, 36,
259 36, 36, 67, 36, 68, 38, 38, 39,
260 37, 36, 68, 38, 38, 39, 37, 36,
261 36, 36, 36, 69, 36, 70, 38, 38,
262 39, 37, 36, 70, 38, 38, 39, 37,
263 36, 36, 36, 36, 71, 36, 73, 72,
264 74, 74, 75, 73, 72, 77, 77, 75,
265 76, 75, 76, 78, 78, 79, 73, 72,
266 80, 80, 79, 72, 79, 72, 81, 81,
267 82, 73, 72, 83, 83, 82, 72, 82,
268 72, 84, 84, 85, 73, 72, 86, 86,
269 85, 72, 85, 72, 87, 72, 72, 72,
270 73, 72, 88, 72, 89, 72, 90, 84,
271 84, 85, 73, 72, 91, 72, 92, 72,
272 93, 81, 81, 82, 73, 72, 94, 72,
273 95, 72, 96, 78, 78, 79, 73, 72,
274 97, 72, 98, 72, 99, 74, 74, 75,
275 73, 72, 99, 74, 74, 75, 73, 72,
276 72, 72, 72, 100, 72, 101, 74, 74,
277 75, 73, 72, 101, 74, 74, 75, 73,
278 72, 72, 72, 72, 102, 72, 103, 74,
279 74, 75, 73, 72, 103, 74, 74, 75,
280 73, 72, 72, 72, 72, 104, 72, 105,
281 74, 74, 75, 73, 72, 105, 74, 74,
282 75, 73, 72, 72, 72, 72, 106, 72,
283 107, 74, 74, 75, 73, 72, 109, 108,
284 110, 110, 111, 109, 108, 112, 112, 111,
285 108, 111, 108, 113, 113, 114, 109, 108,
286 115, 115, 114, 108, 114, 108, 116, 116,
287 117, 109, 108, 118, 118, 117, 108, 117,
288 108, 119, 119, 120, 109, 108, 121, 121,
289 120, 108, 120, 108, 122, 108, 108, 108,
290 109, 108, 123, 108, 124, 108, 125, 119,
291 119, 120, 109, 108, 126, 108, 127, 108,
292 128, 116, 116, 117, 109, 108, 129, 108,
293 130, 108, 131, 113, 113, 114, 109, 108,
294 132, 108, 133, 108, 134, 110, 110, 111,
295 109, 108, 134, 110, 110, 111, 109, 108,
296 108, 108, 108, 135, 108, 136, 110, 110,
297 111, 109, 108, 136, 110, 110, 111, 109,
298 108, 108, 108, 108, 137, 108, 138, 110,
299 110, 111, 109, 108, 138, 110, 110, 111,
300 109, 108, 108, 108, 108, 139, 108, 140,
301 110, 110, 111, 109, 108, 140, 110, 110,
302 111, 109, 108, 108, 108, 108, 141, 108,
303 142, 110, 110, 111, 109, 108, 142, 110,
304 110, 111, 109, 108, 108, 108, 108, 143,
305 108, 107, 74, 74, 75, 73, 72, 72,
306 72, 72, 144, 72, 77, 77, 75, 1,
307 0, 145, 145, 146, 1, 0, 4, 4,
308 146, 0, 147, 147, 148, 149, 0, 150,
309 150, 148, 0, 148, 0, 151, 151, 152,
310 149, 0, 153, 153, 152, 0, 152, 0,
311 154, 154, 155, 149, 0, 156, 156, 155,
312 0, 155, 0, 149, 0, 157, 0, 0,
313 0, 149, 0, 158, 0, 159, 0, 160,
314 154, 154, 155, 149, 0, 161, 0, 162,
315 0, 163, 151, 151, 152, 149, 0, 164,
316 0, 165, 0, 166, 147, 147, 148, 149,
317 0, 167, 0, 168, 0, 170, 169, 172,
318 173, 174, 175, 176, 177, 75, 73, 171,
319 178, 179, 179, 144, 171, 180, 181, 182,
320 183, 184, 171, 186, 187, 188, 189, 3,
321 1, 185, 190, 185, 185, 35, 185, 185,
322 185, 191, 185, 192, 187, 193, 193, 3,
323 1, 185, 190, 185, 185, 185, 185, 185,
324 185, 191, 185, 187, 193, 193, 3, 1,
325 185, 190, 185, 185, 185, 185, 185, 185,
326 191, 185, 194, 185, 185, 185, 16, 195,
327 185, 1, 185, 190, 185, 185, 185, 185,
328 185, 194, 185, 196, 197, 198, 199, 3,
329 1, 185, 190, 185, 185, 33, 185, 185,
330 185, 191, 185, 200, 197, 201, 201, 3,
331 1, 185, 190, 185, 185, 185, 185, 185,
332 185, 191, 185, 197, 201, 201, 3, 1,
333 185, 190, 185, 185, 185, 185, 185, 185,
334 191, 185, 202, 185, 185, 185, 16, 203,
335 185, 1, 185, 190, 185, 185, 185, 185,
336 185, 202, 185, 204, 205, 206, 207, 3,
337 1, 185, 190, 185, 185, 31, 185, 185,
338 185, 191, 185, 208, 205, 209, 209, 3,
339 1, 185, 190, 185, 185, 185, 185, 185,
340 185, 191, 185, 205, 209, 209, 3, 1,
341 185, 190, 185, 185, 185, 185, 185, 185,
342 191, 185, 210, 185, 185, 185, 16, 211,
343 185, 1, 185, 190, 185, 185, 185, 185,
344 185, 210, 185, 212, 213, 214, 215, 3,
345 1, 185, 190, 185, 185, 29, 185, 185,
346 185, 191, 185, 216, 213, 217, 217, 3,
347 1, 185, 190, 185, 185, 185, 185, 185,
348 185, 191, 185, 213, 217, 217, 3, 1,
349 185, 190, 185, 185, 185, 185, 185, 185,
350 191, 185, 218, 185, 185, 185, 16, 219,
351 185, 1, 185, 190, 185, 185, 185, 185,
352 185, 218, 185, 220, 221, 222, 223, 3,
353 1, 185, 190, 185, 185, 27, 185, 185,
354 185, 191, 185, 224, 221, 225, 225, 3,
355 1, 185, 190, 185, 185, 185, 185, 185,
356 185, 191, 185, 221, 225, 225, 3, 1,
357 185, 190, 185, 185, 185, 185, 185, 185,
358 191, 185, 16, 226, 185, 1, 185, 190,
359 185, 227, 227, 185, 1, 185, 190, 185,
360 228, 185, 185, 229, 185, 190, 185, 190,
361 185, 230, 185, 231, 185, 228, 185, 185,
362 185, 185, 190, 185, 16, 185, 232, 232,
363 3, 1, 185, 190, 185, 233, 25, 234,
364 235, 6, 1, 185, 190, 185, 25, 234,
365 235, 6, 1, 185, 190, 185, 234, 234,
366 6, 1, 185, 190, 185, 236, 22, 237,
367 238, 9, 1, 185, 190, 185, 22, 237,
368 238, 9, 1, 185, 190, 185, 237, 237,
369 9, 1, 185, 190, 185, 239, 19, 240,
370 241, 12, 1, 185, 190, 185, 19, 240,
371 241, 12, 1, 185, 190, 185, 240, 240,
372 12, 1, 185, 190, 185, 242, 16, 227,
373 243, 185, 1, 185, 190, 185, 16, 227,
374 243, 185, 1, 185, 190, 185, 227, 244,
375 185, 1, 185, 190, 185, 16, 185, 227,
376 227, 185, 1, 185, 190, 185, 221, 225,
377 225, 3, 1, 185, 190, 185, 220, 221,
378 225, 225, 3, 1, 185, 190, 185, 185,
379 185, 185, 185, 185, 191, 185, 220, 221,
380 222, 225, 3, 1, 185, 190, 185, 185,
381 27, 185, 185, 185, 191, 185, 218, 185,
382 245, 185, 232, 232, 3, 1, 185, 190,
383 185, 185, 185, 185, 185, 218, 185, 218,
384 185, 185, 185, 227, 227, 185, 1, 185,
385 190, 185, 185, 185, 185, 185, 218, 185,
386 218, 185, 185, 185, 227, 246, 185, 1,
387 185, 190, 185, 185, 185, 185, 185, 218,
388 185, 218, 185, 245, 185, 227, 227, 185,
389 1, 185, 190, 185, 185, 185, 185, 185,
390 218, 185, 212, 213, 217, 217, 3, 1,
391 185, 190, 185, 185, 185, 185, 185, 185,
392 191, 185, 212, 213, 214, 217, 3, 1,
393 185, 190, 185, 185, 29, 185, 185, 185,
394 191, 185, 210, 185, 247, 185, 232, 232,
395 3, 1, 185, 190, 185, 185, 185, 185,
396 185, 210, 185, 210, 185, 185, 185, 227,
397 227, 185, 1, 185, 190, 185, 185, 185,
398 185, 185, 210, 185, 210, 185, 185, 185,
399 227, 248, 185, 1, 185, 190, 185, 185,
400 185, 185, 185, 210, 185, 210, 185, 247,
401 185, 227, 227, 185, 1, 185, 190, 185,
402 185, 185, 185, 185, 210, 185, 204, 205,
403 209, 209, 3, 1, 185, 190, 185, 185,
404 185, 185, 185, 185, 191, 185, 204, 205,
405 206, 209, 3, 1, 185, 190, 185, 185,
406 31, 185, 185, 185, 191, 185, 202, 185,
407 249, 185, 232, 232, 3, 1, 185, 190,
408 185, 185, 185, 185, 185, 202, 185, 202,
409 185, 185, 185, 227, 227, 185, 1, 185,
410 190, 185, 185, 185, 185, 185, 202, 185,
411 202, 185, 185, 185, 227, 250, 185, 1,
412 185, 190, 185, 185, 185, 185, 185, 202,
413 185, 202, 185, 249, 185, 227, 227, 185,
414 1, 185, 190, 185, 185, 185, 185, 185,
415 202, 185, 196, 197, 201, 201, 3, 1,
416 185, 190, 185, 185, 185, 185, 185, 185,
417 191, 185, 196, 197, 198, 201, 3, 1,
418 185, 190, 185, 185, 33, 185, 185, 185,
419 191, 185, 194, 185, 251, 185, 232, 232,
420 3, 1, 185, 190, 185, 185, 185, 185,
421 185, 194, 185, 194, 185, 185, 185, 227,
422 227, 185, 1, 185, 190, 185, 185, 185,
423 185, 185, 194, 185, 194, 185, 185, 185,
424 227, 252, 185, 1, 185, 190, 185, 185,
425 185, 185, 185, 194, 185, 194, 185, 251,
426 185, 227, 227, 185, 1, 185, 190, 185,
427 185, 185, 185, 185, 194, 185, 186, 187,
428 193, 193, 3, 1, 185, 190, 185, 185,
429 185, 185, 185, 185, 191, 185, 186, 187,
430 188, 193, 3, 1, 185, 190, 185, 185,
431 35, 185, 185, 185, 191, 185, 254, 255,
432 256, 257, 39, 37, 253, 258, 253, 253,
433 71, 253, 253, 253, 259, 253, 260, 255,
434 261, 257, 39, 37, 253, 258, 253, 253,
435 253, 253, 253, 253, 259, 253, 255, 261,
436 257, 39, 37, 253, 258, 253, 253, 253,
437 253, 253, 253, 259, 253, 262, 253, 253,
438 253, 52, 263, 253, 37, 253, 258, 253,
439 253, 253, 253, 253, 262, 253, 264, 265,
440 266, 267, 39, 37, 253, 258, 253, 253,
441 69, 253, 253, 253, 259, 253, 268, 265,
442 269, 269, 39, 37, 253, 258, 253, 253,
443 253, 253, 253, 253, 259, 253, 265, 269,
444 269, 39, 37, 253, 258, 253, 253, 253,
445 253, 253, 253, 259, 253, 270, 253, 253,
446 253, 52, 271, 253, 37, 253, 258, 253,
447 253, 253, 253, 253, 270, 253, 272, 273,
448 274, 275, 39, 37, 253, 258, 253, 253,
449 67, 253, 253, 253, 259, 253, 276, 273,
450 277, 277, 39, 37, 253, 258, 253, 253,
451 253, 253, 253, 253, 259, 253, 273, 277,
452 277, 39, 37, 253, 258, 253, 253, 253,
453 253, 253, 253, 259, 253, 278, 253, 253,
454 253, 52, 279, 253, 37, 253, 258, 253,
455 253, 253, 253, 253, 278, 253, 280, 281,
456 282, 283, 39, 37, 253, 258, 253, 253,
457 65, 253, 253, 253, 259, 253, 284, 281,
458 285, 285, 39, 37, 253, 258, 253, 253,
459 253, 253, 253, 253, 259, 253, 281, 285,
460 285, 39, 37, 253, 258, 253, 253, 253,
461 253, 253, 253, 259, 253, 286, 253, 253,
462 253, 52, 287, 253, 37, 253, 258, 253,
463 253, 253, 253, 253, 286, 253, 288, 289,
464 290, 291, 39, 37, 253, 258, 253, 253,
465 63, 253, 253, 253, 259, 253, 292, 289,
466 293, 293, 39, 37, 253, 258, 253, 253,
467 253, 253, 253, 253, 259, 253, 289, 293,
468 293, 39, 37, 253, 258, 253, 253, 253,
469 253, 253, 253, 259, 253, 52, 294, 253,
470 37, 253, 258, 253, 295, 295, 253, 37,
471 253, 258, 253, 296, 253, 253, 297, 253,
472 258, 253, 258, 253, 298, 253, 299, 253,
473 296, 253, 253, 253, 253, 258, 253, 52,
474 253, 300, 300, 39, 37, 253, 258, 253,
475 301, 61, 302, 303, 42, 37, 253, 258,
476 253, 61, 302, 303, 42, 37, 253, 258,
477 253, 302, 302, 42, 37, 253, 258, 253,
478 304, 58, 305, 306, 45, 37, 253, 258,
479 253, 58, 305, 306, 45, 37, 253, 258,
480 253, 305, 305, 45, 37, 253, 258, 253,
481 307, 55, 308, 309, 48, 37, 253, 258,
482 253, 55, 308, 309, 48, 37, 253, 258,
483 253, 308, 308, 48, 37, 253, 258, 253,
484 310, 52, 295, 311, 253, 37, 253, 258,
485 253, 52, 295, 311, 253, 37, 253, 258,
486 253, 295, 312, 253, 37, 253, 258, 253,
487 52, 253, 295, 295, 253, 37, 253, 258,
488 253, 289, 293, 293, 39, 37, 253, 258,
489 253, 288, 289, 293, 293, 39, 37, 253,
490 258, 253, 253, 253, 253, 253, 253, 259,
491 253, 288, 289, 290, 293, 39, 37, 253,
492 258, 253, 253, 63, 253, 253, 253, 259,
493 253, 286, 253, 313, 253, 300, 300, 39,
494 37, 253, 258, 253, 253, 253, 253, 253,
495 286, 253, 286, 253, 253, 253, 295, 295,
496 253, 37, 253, 258, 253, 253, 253, 253,
497 253, 286, 253, 286, 253, 253, 253, 295,
498 314, 253, 37, 253, 258, 253, 253, 253,
499 253, 253, 286, 253, 286, 253, 313, 253,
500 295, 295, 253, 37, 253, 258, 253, 253,
501 253, 253, 253, 286, 253, 280, 281, 285,
502 285, 39, 37, 253, 258, 253, 253, 253,
503 253, 253, 253, 259, 253, 280, 281, 282,
504 285, 39, 37, 253, 258, 253, 253, 65,
505 253, 253, 253, 259, 253, 278, 253, 315,
506 253, 300, 300, 39, 37, 253, 258, 253,
507 253, 253, 253, 253, 278, 253, 278, 253,
508 253, 253, 295, 295, 253, 37, 253, 258,
509 253, 253, 253, 253, 253, 278, 253, 278,
510 253, 253, 253, 295, 316, 253, 37, 253,
511 258, 253, 253, 253, 253, 253, 278, 253,
512 278, 253, 315, 253, 295, 295, 253, 37,
513 253, 258, 253, 253, 253, 253, 253, 278,
514 253, 272, 273, 277, 277, 39, 37, 253,
515 258, 253, 253, 253, 253, 253, 253, 259,
516 253, 272, 273, 274, 277, 39, 37, 253,
517 258, 253, 253, 67, 253, 253, 253, 259,
518 253, 270, 253, 317, 253, 300, 300, 39,
519 37, 253, 258, 253, 253, 253, 253, 253,
520 270, 253, 270, 253, 253, 253, 295, 295,
521 253, 37, 253, 258, 253, 253, 253, 253,
522 253, 270, 253, 270, 253, 253, 253, 295,
523 318, 253, 37, 253, 258, 253, 253, 253,
524 253, 253, 270, 253, 270, 253, 317, 253,
525 295, 295, 253, 37, 253, 258, 253, 253,
526 253, 253, 253, 270, 253, 264, 265, 269,
527 269, 39, 37, 253, 258, 253, 253, 253,
528 253, 253, 253, 259, 253, 264, 265, 266,
529 269, 39, 37, 253, 258, 253, 253, 69,
530 253, 253, 253, 259, 253, 262, 253, 319,
531 253, 300, 300, 39, 37, 253, 258, 253,
532 253, 253, 253, 253, 262, 253, 262, 253,
533 253, 253, 295, 295, 253, 37, 253, 258,
534 253, 253, 253, 253, 253, 262, 253, 262,
535 253, 253, 253, 295, 320, 253, 37, 253,
536 258, 253, 253, 253, 253, 253, 262, 253,
537 262, 253, 319, 253, 295, 295, 253, 37,
538 253, 258, 253, 253, 253, 253, 253, 262,
539 253, 70, 38, 38, 39, 37, 253, 254,
540 255, 261, 257, 39, 37, 253, 258, 253,
541 253, 253, 253, 253, 253, 259, 253, 322,
542 175, 323, 323, 75, 73, 321, 178, 321,
543 321, 321, 321, 321, 321, 182, 321, 175,
544 323, 323, 75, 73, 321, 178, 321, 321,
545 321, 321, 321, 321, 182, 321, 324, 321,
546 321, 321, 89, 325, 321, 73, 321, 178,
547 321, 321, 321, 321, 321, 324, 321, 326,
548 327, 328, 329, 75, 73, 321, 178, 321,
549 321, 106, 321, 321, 321, 182, 321, 330,
550 327, 331, 331, 75, 73, 321, 178, 321,
551 321, 321, 321, 321, 321, 182, 321, 327,
552 331, 331, 75, 73, 321, 178, 321, 321,
553 321, 321, 321, 321, 182, 321, 332, 321,
554 321, 321, 89, 333, 321, 73, 321, 178,
555 321, 321, 321, 321, 321, 332, 321, 334,
556 335, 336, 337, 75, 73, 321, 178, 321,
557 321, 104, 321, 321, 321, 182, 321, 338,
558 335, 339, 339, 75, 73, 321, 178, 321,
559 321, 321, 321, 321, 321, 182, 321, 335,
560 339, 339, 75, 73, 321, 178, 321, 321,
561 321, 321, 321, 321, 182, 321, 340, 321,
562 321, 321, 89, 341, 321, 73, 321, 178,
563 321, 321, 321, 321, 321, 340, 321, 342,
564 343, 344, 345, 75, 73, 321, 178, 321,
565 321, 102, 321, 321, 321, 182, 321, 346,
566 343, 347, 347, 75, 73, 321, 178, 321,
567 321, 321, 321, 321, 321, 182, 321, 343,
568 347, 347, 75, 73, 321, 178, 321, 321,
569 321, 321, 321, 321, 182, 321, 348, 321,
570 321, 321, 89, 349, 321, 73, 321, 178,
571 321, 321, 321, 321, 321, 348, 321, 350,
572 351, 352, 353, 75, 73, 321, 178, 321,
573 321, 100, 321, 321, 321, 182, 321, 354,
574 351, 355, 355, 75, 73, 321, 178, 321,
575 321, 321, 321, 321, 321, 182, 321, 351,
576 355, 355, 75, 73, 321, 178, 321, 321,
577 321, 321, 321, 321, 182, 321, 89, 356,
578 321, 73, 321, 178, 321, 357, 357, 321,
579 73, 321, 178, 321, 358, 321, 321, 359,
580 321, 178, 321, 178, 321, 360, 321, 361,
581 321, 358, 321, 321, 321, 321, 178, 321,
582 89, 321, 362, 362, 75, 73, 321, 178,
583 321, 363, 98, 364, 365, 79, 73, 321,
584 178, 321, 98, 364, 365, 79, 73, 321,
585 178, 321, 364, 364, 79, 73, 321, 178,
586 321, 366, 95, 367, 368, 82, 73, 321,
587 178, 321, 95, 367, 368, 82, 73, 321,
588 178, 321, 367, 367, 82, 73, 321, 178,
589 321, 369, 92, 370, 371, 85, 73, 321,
590 178, 321, 92, 370, 371, 85, 73, 321,
591 178, 321, 370, 370, 85, 73, 321, 178,
592 321, 372, 89, 357, 373, 321, 73, 321,
593 178, 321, 89, 357, 373, 321, 73, 321,
594 178, 321, 357, 374, 321, 73, 321, 178,
595 321, 89, 321, 357, 357, 321, 73, 321,
596 178, 321, 351, 355, 355, 75, 73, 321,
597 178, 321, 350, 351, 355, 355, 75, 73,
598 321, 178, 321, 321, 321, 321, 321, 321,
599 182, 321, 350, 351, 352, 355, 75, 73,
600 321, 178, 321, 321, 100, 321, 321, 321,
601 182, 321, 348, 321, 375, 321, 362, 362,
602 75, 73, 321, 178, 321, 321, 321, 321,
603 321, 348, 321, 348, 321, 321, 321, 357,
604 357, 321, 73, 321, 178, 321, 321, 321,
605 321, 321, 348, 321, 348, 321, 321, 321,
606 357, 376, 321, 73, 321, 178, 321, 321,
607 321, 321, 321, 348, 321, 348, 321, 375,
608 321, 357, 357, 321, 73, 321, 178, 321,
609 321, 321, 321, 321, 348, 321, 342, 343,
610 347, 347, 75, 73, 321, 178, 321, 321,
611 321, 321, 321, 321, 182, 321, 342, 343,
612 344, 347, 75, 73, 321, 178, 321, 321,
613 102, 321, 321, 321, 182, 321, 340, 321,
614 377, 321, 362, 362, 75, 73, 321, 178,
615 321, 321, 321, 321, 321, 340, 321, 340,
616 321, 321, 321, 357, 357, 321, 73, 321,
617 178, 321, 321, 321, 321, 321, 340, 321,
618 340, 321, 321, 321, 357, 378, 321, 73,
619 321, 178, 321, 321, 321, 321, 321, 340,
620 321, 340, 321, 377, 321, 357, 357, 321,
621 73, 321, 178, 321, 321, 321, 321, 321,
622 340, 321, 334, 335, 339, 339, 75, 73,
623 321, 178, 321, 321, 321, 321, 321, 321,
624 182, 321, 334, 335, 336, 339, 75, 73,
625 321, 178, 321, 321, 104, 321, 321, 321,
626 182, 321, 332, 321, 379, 321, 362, 362,
627 75, 73, 321, 178, 321, 321, 321, 321,
628 321, 332, 321, 332, 321, 321, 321, 357,
629 357, 321, 73, 321, 178, 321, 321, 321,
630 321, 321, 332, 321, 332, 321, 321, 321,
631 357, 380, 321, 73, 321, 178, 321, 321,
632 321, 321, 321, 332, 321, 332, 321, 379,
633 321, 357, 357, 321, 73, 321, 178, 321,
634 321, 321, 321, 321, 332, 321, 326, 327,
635 331, 331, 75, 73, 321, 178, 321, 321,
636 321, 321, 321, 321, 182, 321, 326, 327,
637 328, 331, 75, 73, 321, 178, 321, 321,
638 106, 321, 321, 321, 182, 321, 324, 321,
639 381, 321, 362, 362, 75, 73, 321, 178,
640 321, 321, 321, 321, 321, 324, 321, 324,
641 321, 321, 321, 357, 357, 321, 73, 321,
642 178, 321, 321, 321, 321, 321, 324, 321,
643 324, 321, 321, 321, 357, 382, 321, 73,
644 321, 178, 321, 321, 321, 321, 321, 324,
645 321, 324, 321, 381, 321, 357, 357, 321,
646 73, 321, 178, 321, 321, 321, 321, 321,
647 324, 321, 107, 74, 74, 75, 73, 383,
648 383, 383, 383, 144, 383, 174, 175, 323,
649 323, 75, 73, 321, 178, 321, 321, 321,
650 321, 321, 321, 182, 321, 107, 74, 74,
651 75, 73, 383, 385, 386, 387, 388, 111,
652 109, 384, 389, 384, 384, 143, 384, 384,
653 384, 390, 384, 391, 386, 388, 388, 111,
654 109, 384, 389, 384, 384, 384, 384, 384,
655 384, 390, 384, 386, 388, 388, 111, 109,
656 384, 389, 384, 384, 384, 384, 384, 384,
657 390, 384, 392, 384, 384, 384, 124, 393,
658 384, 109, 384, 389, 384, 384, 384, 384,
659 384, 392, 384, 394, 395, 396, 397, 111,
660 109, 384, 389, 384, 384, 141, 384, 384,
661 384, 390, 384, 398, 395, 399, 399, 111,
662 109, 384, 389, 384, 384, 384, 384, 384,
663 384, 390, 384, 395, 399, 399, 111, 109,
664 384, 389, 384, 384, 384, 384, 384, 384,
665 390, 384, 400, 384, 384, 384, 124, 401,
666 384, 109, 384, 389, 384, 384, 384, 384,
667 384, 400, 384, 402, 403, 404, 405, 111,
668 109, 384, 389, 384, 384, 139, 384, 384,
669 384, 390, 384, 406, 403, 407, 407, 111,
670 109, 384, 389, 384, 384, 384, 384, 384,
671 384, 390, 384, 403, 407, 407, 111, 109,
672 384, 389, 384, 384, 384, 384, 384, 384,
673 390, 384, 408, 384, 384, 384, 124, 409,
674 384, 109, 384, 389, 384, 384, 384, 384,
675 384, 408, 384, 410, 411, 412, 413, 111,
676 109, 384, 389, 384, 384, 137, 384, 384,
677 384, 390, 384, 414, 411, 415, 415, 111,
678 109, 384, 389, 384, 384, 384, 384, 384,
679 384, 390, 384, 411, 415, 415, 111, 109,
680 384, 389, 384, 384, 384, 384, 384, 384,
681 390, 384, 416, 384, 384, 384, 124, 417,
682 384, 109, 384, 389, 384, 384, 384, 384,
683 384, 416, 384, 418, 419, 420, 421, 111,
684 109, 384, 389, 384, 384, 135, 384, 384,
685 384, 390, 384, 422, 419, 423, 423, 111,
686 109, 384, 389, 384, 384, 384, 384, 384,
687 384, 390, 384, 419, 423, 423, 111, 109,
688 384, 389, 384, 384, 384, 384, 384, 384,
689 390, 384, 124, 424, 384, 109, 384, 389,
690 384, 425, 425, 384, 109, 384, 389, 384,
691 426, 384, 384, 427, 384, 389, 384, 389,
692 384, 428, 384, 429, 384, 426, 384, 384,
693 384, 384, 389, 384, 124, 384, 430, 430,
694 111, 109, 384, 389, 384, 431, 133, 432,
695 433, 114, 109, 384, 389, 384, 133, 432,
696 433, 114, 109, 384, 389, 384, 432, 432,
697 114, 109, 384, 389, 384, 434, 130, 435,
698 436, 117, 109, 384, 389, 384, 130, 435,
699 436, 117, 109, 384, 389, 384, 435, 435,
700 117, 109, 384, 389, 384, 437, 127, 438,
701 439, 120, 109, 384, 389, 384, 127, 438,
702 439, 120, 109, 384, 389, 384, 438, 438,
703 120, 109, 384, 389, 384, 440, 124, 425,
704 441, 384, 109, 384, 389, 384, 124, 425,
705 441, 384, 109, 384, 389, 384, 425, 442,
706 384, 109, 384, 389, 384, 124, 384, 425,
707 425, 384, 109, 384, 389, 384, 419, 423,
708 423, 111, 109, 384, 389, 384, 418, 419,
709 423, 423, 111, 109, 384, 389, 384, 384,
710 384, 384, 384, 384, 390, 384, 418, 419,
711 420, 423, 111, 109, 384, 389, 384, 384,
712 135, 384, 384, 384, 390, 384, 416, 384,
713 443, 384, 430, 430, 111, 109, 384, 389,
714 384, 384, 384, 384, 384, 416, 384, 416,
715 384, 384, 384, 425, 425, 384, 109, 384,
716 389, 384, 384, 384, 384, 384, 416, 384,
717 416, 384, 384, 384, 425, 444, 384, 109,
718 384, 389, 384, 384, 384, 384, 384, 416,
719 384, 416, 384, 443, 384, 425, 425, 384,
720 109, 384, 389, 384, 384, 384, 384, 384,
721 416, 384, 410, 411, 415, 415, 111, 109,
722 384, 389, 384, 384, 384, 384, 384, 384,
723 390, 384, 410, 411, 412, 415, 111, 109,
724 384, 389, 384, 384, 137, 384, 384, 384,
725 390, 384, 408, 384, 445, 384, 430, 430,
726 111, 109, 384, 389, 384, 384, 384, 384,
727 384, 408, 384, 408, 384, 384, 384, 425,
728 425, 384, 109, 384, 389, 384, 384, 384,
729 384, 384, 408, 384, 408, 384, 384, 384,
730 425, 446, 384, 109, 384, 389, 384, 384,
731 384, 384, 384, 408, 384, 408, 384, 445,
732 384, 425, 425, 384, 109, 384, 389, 384,
733 384, 384, 384, 384, 408, 384, 402, 403,
734 407, 407, 111, 109, 384, 389, 384, 384,
735 384, 384, 384, 384, 390, 384, 402, 403,
736 404, 407, 111, 109, 384, 389, 384, 384,
737 139, 384, 384, 384, 390, 384, 400, 384,
738 447, 384, 430, 430, 111, 109, 384, 389,
739 384, 384, 384, 384, 384, 400, 384, 400,
740 384, 384, 384, 425, 425, 384, 109, 384,
741 389, 384, 384, 384, 384, 384, 400, 384,
742 400, 384, 384, 384, 425, 448, 384, 109,
743 384, 389, 384, 384, 384, 384, 384, 400,
744 384, 400, 384, 447, 384, 425, 425, 384,
745 109, 384, 389, 384, 384, 384, 384, 384,
746 400, 384, 394, 395, 399, 399, 111, 109,
747 384, 389, 384, 384, 384, 384, 384, 384,
748 390, 384, 394, 395, 396, 399, 111, 109,
749 384, 389, 384, 384, 141, 384, 384, 384,
750 390, 384, 392, 384, 449, 384, 430, 430,
751 111, 109, 384, 389, 384, 384, 384, 384,
752 384, 392, 384, 392, 384, 384, 384, 425,
753 425, 384, 109, 384, 389, 384, 384, 384,
754 384, 384, 392, 384, 392, 384, 384, 384,
755 425, 450, 384, 109, 384, 389, 384, 384,
756 384, 384, 384, 392, 384, 392, 384, 449,
757 384, 425, 425, 384, 109, 384, 389, 384,
758 384, 384, 384, 384, 392, 384, 385, 386,
759 388, 388, 111, 109, 384, 389, 384, 384,
760 384, 384, 384, 384, 390, 384, 172, 173,
761 174, 175, 451, 323, 75, 73, 321, 178,
762 179, 179, 144, 321, 321, 172, 182, 321,
763 186, 452, 188, 189, 3, 1, 185, 190,
764 185, 185, 35, 185, 185, 185, 191, 185,
765 194, 173, 174, 175, 453, 454, 75, 149,
766 185, 455, 185, 179, 144, 185, 185, 194,
767 182, 185, 107, 456, 456, 75, 149, 185,
768 190, 185, 185, 144, 185, 457, 185, 185,
769 458, 185, 455, 185, 455, 185, 459, 185,
770 231, 185, 457, 185, 185, 185, 185, 455,
771 185, 194, 185, 251, 107, 460, 460, 146,
772 149, 185, 190, 185, 185, 185, 185, 185,
773 194, 185, 461, 168, 462, 463, 148, 149,
774 185, 455, 185, 168, 462, 463, 148, 149,
775 185, 455, 185, 462, 462, 148, 149, 185,
776 455, 185, 464, 165, 465, 466, 152, 149,
777 185, 455, 185, 165, 465, 466, 152, 149,
778 185, 455, 185, 465, 465, 152, 149, 185,
779 455, 185, 467, 162, 468, 469, 155, 149,
780 185, 455, 185, 162, 468, 469, 155, 149,
781 185, 455, 185, 468, 468, 155, 149, 185,
782 455, 185, 470, 159, 471, 472, 185, 149,
783 185, 455, 185, 159, 471, 472, 185, 149,
784 185, 455, 185, 471, 471, 185, 149, 185,
785 455, 185, 474, 473, 475, 475, 473, 170,
786 473, 476, 473, 475, 475, 473, 170, 473,
787 476, 473, 477, 473, 473, 478, 473, 476,
788 473, 476, 473, 479, 473, 480, 473, 477,
789 473, 473, 473, 473, 476, 473, 172, 383,
790 383, 383, 383, 383, 383, 383, 383, 383,
791 179, 383, 383, 383, 383, 172, 383, 0
792};
793
794static const short _indic_syllable_machine_trans_targs[] = {
795 166, 188, 2, 194, 3, 5, 197, 6,
796 8, 200, 9, 11, 203, 12, 14, 15,
797 187, 17, 18, 202, 20, 21, 199, 23,
798 24, 196, 205, 208, 212, 214, 218, 220,
799 224, 226, 230, 232, 166, 255, 37, 261,
800 38, 40, 264, 41, 43, 267, 44, 46,
801 270, 47, 49, 50, 254, 52, 53, 269,
802 55, 56, 266, 58, 59, 263, 272, 275,
803 279, 281, 285, 287, 291, 293, 297, 300,
804 166, 321, 72, 327, 166, 73, 75, 330,
805 76, 78, 333, 79, 81, 336, 82, 84,
806 85, 320, 87, 88, 335, 90, 91, 332,
807 93, 94, 329, 338, 341, 345, 347, 351,
808 353, 357, 359, 363, 166, 389, 106, 395,
809 107, 109, 398, 110, 112, 401, 113, 115,
810 404, 116, 118, 119, 388, 121, 122, 403,
811 124, 125, 400, 127, 128, 397, 406, 409,
812 413, 415, 419, 421, 425, 427, 431, 433,
813 366, 142, 444, 144, 447, 438, 145, 147,
814 450, 148, 150, 453, 151, 154, 155, 455,
815 157, 158, 452, 160, 161, 449, 163, 164,
816 446, 166, 458, 166, 167, 234, 301, 303,
817 365, 367, 323, 368, 434, 435, 340, 456,
818 463, 166, 168, 170, 34, 233, 190, 207,
819 169, 33, 171, 228, 172, 174, 32, 227,
820 173, 31, 175, 222, 176, 178, 30, 221,
821 177, 29, 179, 216, 180, 182, 28, 215,
822 181, 27, 183, 210, 184, 186, 26, 209,
823 185, 25, 193, 0, 189, 192, 191, 166,
824 1, 195, 4, 22, 198, 7, 19, 201,
825 10, 16, 204, 13, 206, 211, 213, 217,
826 219, 223, 225, 229, 231, 166, 235, 237,
827 69, 299, 257, 274, 236, 68, 238, 295,
828 239, 241, 67, 294, 240, 66, 242, 289,
829 243, 245, 65, 288, 244, 64, 246, 283,
830 247, 249, 63, 282, 248, 62, 250, 277,
831 251, 253, 61, 276, 252, 60, 260, 35,
832 256, 259, 258, 166, 36, 262, 39, 57,
833 265, 42, 54, 268, 45, 51, 271, 48,
834 273, 278, 280, 284, 286, 290, 292, 296,
835 298, 166, 302, 103, 304, 361, 305, 307,
836 102, 360, 306, 101, 308, 355, 309, 311,
837 100, 354, 310, 99, 312, 349, 313, 315,
838 98, 348, 314, 97, 316, 343, 317, 319,
839 96, 342, 318, 95, 326, 70, 322, 325,
840 324, 166, 71, 328, 74, 92, 331, 77,
841 89, 334, 80, 86, 337, 83, 339, 344,
842 346, 350, 352, 356, 358, 362, 364, 166,
843 166, 369, 371, 138, 137, 391, 408, 370,
844 372, 429, 373, 375, 136, 428, 374, 135,
845 376, 423, 377, 379, 134, 422, 378, 133,
846 380, 417, 381, 383, 132, 416, 382, 131,
847 384, 411, 385, 387, 130, 410, 386, 129,
848 394, 104, 390, 393, 392, 166, 105, 396,
849 108, 126, 399, 111, 123, 402, 114, 120,
850 405, 117, 407, 412, 414, 418, 420, 424,
851 426, 430, 432, 139, 436, 437, 443, 440,
852 140, 439, 442, 441, 141, 445, 143, 162,
853 448, 146, 159, 451, 149, 156, 454, 152,
854 153, 166, 457, 165, 460, 459, 462, 461,
855 166
856};
857
858static const char _indic_syllable_machine_trans_actions[] = {
859 1, 0, 0, 2, 0, 0, 2, 0,
860 0, 2, 0, 0, 2, 0, 0, 0,
861 2, 0, 0, 2, 0, 0, 2, 0,
862 0, 2, 2, 2, 2, 2, 2, 2,
863 2, 2, 2, 2, 3, 0, 0, 2,
864 0, 0, 2, 0, 0, 2, 0, 0,
865 2, 0, 0, 0, 2, 0, 0, 2,
866 0, 0, 2, 0, 0, 2, 2, 2,
867 2, 2, 2, 2, 2, 2, 2, 2,
868 4, 0, 0, 2, 5, 0, 0, 2,
869 0, 0, 2, 0, 0, 2, 0, 0,
870 0, 2, 0, 0, 2, 0, 0, 2,
871 0, 0, 2, 2, 6, 2, 6, 2,
872 6, 2, 6, 2, 7, 0, 0, 2,
873 0, 0, 2, 0, 0, 2, 0, 0,
874 2, 0, 0, 0, 2, 0, 0, 2,
875 0, 0, 2, 0, 0, 2, 2, 2,
876 2, 2, 2, 2, 2, 2, 2, 2,
877 6, 0, 2, 0, 2, 0, 0, 0,
878 2, 0, 0, 2, 0, 0, 0, 2,
879 0, 0, 2, 0, 0, 2, 0, 0,
880 2, 8, 0, 11, 2, 2, 6, 0,
881 12, 12, 0, 2, 6, 2, 6, 2,
882 0, 13, 2, 0, 0, 2, 0, 2,
883 2, 0, 2, 2, 2, 0, 0, 2,
884 2, 0, 2, 2, 2, 0, 0, 2,
885 2, 0, 2, 2, 2, 0, 0, 2,
886 2, 0, 2, 2, 2, 0, 0, 2,
887 2, 0, 2, 0, 0, 0, 0, 14,
888 0, 2, 0, 0, 2, 0, 0, 2,
889 0, 0, 2, 0, 2, 2, 2, 2,
890 2, 2, 2, 2, 2, 15, 2, 0,
891 0, 2, 0, 2, 2, 0, 2, 2,
892 2, 0, 0, 2, 2, 0, 2, 2,
893 2, 0, 0, 2, 2, 0, 2, 2,
894 2, 0, 0, 2, 2, 0, 2, 2,
895 2, 0, 0, 2, 2, 0, 2, 0,
896 0, 0, 0, 16, 0, 2, 0, 0,
897 2, 0, 0, 2, 0, 0, 2, 0,
898 2, 2, 2, 2, 2, 2, 2, 2,
899 2, 17, 6, 0, 6, 6, 6, 0,
900 0, 6, 6, 0, 6, 6, 6, 0,
901 0, 6, 6, 0, 6, 6, 6, 0,
902 0, 6, 6, 0, 6, 6, 6, 0,
903 0, 6, 6, 0, 6, 0, 0, 0,
904 0, 18, 0, 2, 0, 0, 2, 0,
905 0, 2, 0, 0, 2, 0, 2, 2,
906 2, 2, 2, 2, 2, 2, 2, 19,
907 20, 2, 0, 0, 0, 0, 2, 2,
908 2, 2, 2, 0, 0, 2, 2, 0,
909 2, 2, 2, 0, 0, 2, 2, 0,
910 2, 2, 2, 0, 0, 2, 2, 0,
911 2, 2, 2, 0, 0, 2, 2, 0,
912 2, 0, 0, 0, 0, 21, 0, 2,
913 0, 0, 2, 0, 0, 2, 0, 0,
914 2, 0, 2, 2, 2, 2, 2, 2,
915 2, 2, 2, 0, 0, 22, 2, 0,
916 0, 0, 0, 0, 0, 2, 0, 0,
917 2, 0, 0, 2, 0, 0, 2, 0,
918 0, 23, 2, 0, 0, 0, 0, 0,
919 24
920};
921
922static const char _indic_syllable_machine_to_state_actions[] = {
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,
926 0, 0, 0, 0, 0, 0, 0, 0,
927 0, 0, 0, 0, 0, 0, 0, 0,
928 0, 0, 0, 0, 0, 0, 0, 0,
929 0, 0, 0, 0, 0, 0, 0, 0,
930 0, 0, 0, 0, 0, 0, 0, 0,
931 0, 0, 0, 0, 0, 0, 0, 0,
932 0, 0, 0, 0, 0, 0, 0, 0,
933 0, 0, 0, 0, 0, 0, 0, 0,
934 0, 0, 0, 0, 0, 0, 0, 0,
935 0, 0, 0, 0, 0, 0, 0, 0,
936 0, 0, 0, 0, 0, 0, 0, 0,
937 0, 0, 0, 0, 0, 0, 0, 0,
938 0, 0, 0, 0, 0, 0, 0, 0,
939 0, 0, 0, 0, 0, 0, 0, 0,
940 0, 0, 0, 0, 0, 0, 0, 0,
941 0, 0, 0, 0, 0, 0, 0, 0,
942 0, 0, 0, 0, 0, 0, 0, 0,
943 0, 0, 0, 0, 0, 0, 9, 0,
944 0, 0, 0, 0, 0, 0, 0, 0,
945 0, 0, 0, 0, 0, 0, 0, 0,
946 0, 0, 0, 0, 0, 0, 0, 0,
947 0, 0, 0, 0, 0, 0, 0, 0,
948 0, 0, 0, 0, 0, 0, 0, 0,
949 0, 0, 0, 0, 0, 0, 0, 0,
950 0, 0, 0, 0, 0, 0, 0, 0,
951 0, 0, 0, 0, 0, 0, 0, 0,
952 0, 0, 0, 0, 0, 0, 0, 0,
953 0, 0, 0, 0, 0, 0, 0, 0,
954 0, 0, 0, 0, 0, 0, 0, 0,
955 0, 0, 0, 0, 0, 0, 0, 0,
956 0, 0, 0, 0, 0, 0, 0, 0,
957 0, 0, 0, 0, 0, 0, 0, 0,
958 0, 0, 0, 0, 0, 0, 0, 0,
959 0, 0, 0, 0, 0, 0, 0, 0,
960 0, 0, 0, 0, 0, 0, 0, 0,
961 0, 0, 0, 0, 0, 0, 0, 0,
962 0, 0, 0, 0, 0, 0, 0, 0,
963 0, 0, 0, 0, 0, 0, 0, 0,
964 0, 0, 0, 0, 0, 0, 0, 0,
965 0, 0, 0, 0, 0, 0, 0, 0,
966 0, 0, 0, 0, 0, 0, 0, 0,
967 0, 0, 0, 0, 0, 0, 0, 0,
968 0, 0, 0, 0, 0, 0, 0, 0,
969 0, 0, 0, 0, 0, 0, 0, 0,
970 0, 0, 0, 0, 0, 0, 0, 0,
971 0, 0, 0, 0, 0, 0, 0, 0,
972 0, 0, 0, 0, 0, 0, 0, 0,
973 0, 0, 0, 0, 0, 0, 0, 0,
974 0, 0, 0, 0, 0, 0, 0, 0,
975 0, 0, 0, 0, 0, 0, 0, 0,
976 0, 0, 0, 0, 0, 0, 0, 0,
977 0, 0, 0, 0, 0, 0, 0, 0,
978 0, 0, 0, 0, 0, 0, 0, 0,
979 0, 0, 0, 0, 0, 0, 0, 0,
980 0, 0, 0, 0, 0, 0, 0, 0
981};
982
983static const char _indic_syllable_machine_from_state_actions[] = {
984 0, 0, 0, 0, 0, 0, 0, 0,
985 0, 0, 0, 0, 0, 0, 0, 0,
986 0, 0, 0, 0, 0, 0, 0, 0,
987 0, 0, 0, 0, 0, 0, 0, 0,
988 0, 0, 0, 0, 0, 0, 0, 0,
989 0, 0, 0, 0, 0, 0, 0, 0,
990 0, 0, 0, 0, 0, 0, 0, 0,
991 0, 0, 0, 0, 0, 0, 0, 0,
992 0, 0, 0, 0, 0, 0, 0, 0,
993 0, 0, 0, 0, 0, 0, 0, 0,
994 0, 0, 0, 0, 0, 0, 0, 0,
995 0, 0, 0, 0, 0, 0, 0, 0,
996 0, 0, 0, 0, 0, 0, 0, 0,
997 0, 0, 0, 0, 0, 0, 0, 0,
998 0, 0, 0, 0, 0, 0, 0, 0,
999 0, 0, 0, 0, 0, 0, 0, 0,
1000 0, 0, 0, 0, 0, 0, 0, 0,
1001 0, 0, 0, 0, 0, 0, 0, 0,
1002 0, 0, 0, 0, 0, 0, 0, 0,
1003 0, 0, 0, 0, 0, 0, 0, 0,
1004 0, 0, 0, 0, 0, 0, 10, 0,
1005 0, 0, 0, 0, 0, 0, 0, 0,
1006 0, 0, 0, 0, 0, 0, 0, 0,
1007 0, 0, 0, 0, 0, 0, 0, 0,
1008 0, 0, 0, 0, 0, 0, 0, 0,
1009 0, 0, 0, 0, 0, 0, 0, 0,
1010 0, 0, 0, 0, 0, 0, 0, 0,
1011 0, 0, 0, 0, 0, 0, 0, 0,
1012 0, 0, 0, 0, 0, 0, 0, 0,
1013 0, 0, 0, 0, 0, 0, 0, 0,
1014 0, 0, 0, 0, 0, 0, 0, 0,
1015 0, 0, 0, 0, 0, 0, 0, 0,
1016 0, 0, 0, 0, 0, 0, 0, 0,
1017 0, 0, 0, 0, 0, 0, 0, 0,
1018 0, 0, 0, 0, 0, 0, 0, 0,
1019 0, 0, 0, 0, 0, 0, 0, 0,
1020 0, 0, 0, 0, 0, 0, 0, 0,
1021 0, 0, 0, 0, 0, 0, 0, 0,
1022 0, 0, 0, 0, 0, 0, 0, 0,
1023 0, 0, 0, 0, 0, 0, 0, 0,
1024 0, 0, 0, 0, 0, 0, 0, 0,
1025 0, 0, 0, 0, 0, 0, 0, 0,
1026 0, 0, 0, 0, 0, 0, 0, 0,
1027 0, 0, 0, 0, 0, 0, 0, 0,
1028 0, 0, 0, 0, 0, 0, 0, 0,
1029 0, 0, 0, 0, 0, 0, 0, 0,
1030 0, 0, 0, 0, 0, 0, 0, 0,
1031 0, 0, 0, 0, 0, 0, 0, 0,
1032 0, 0, 0, 0, 0, 0, 0, 0,
1033 0, 0, 0, 0, 0, 0, 0, 0,
1034 0, 0, 0, 0, 0, 0, 0, 0,
1035 0, 0, 0, 0, 0, 0, 0, 0,
1036 0, 0, 0, 0, 0, 0, 0, 0,
1037 0, 0, 0, 0, 0, 0, 0, 0,
1038 0, 0, 0, 0, 0, 0, 0, 0,
1039 0, 0, 0, 0, 0, 0, 0, 0,
1040 0, 0, 0, 0, 0, 0, 0, 0,
1041 0, 0, 0, 0, 0, 0, 0, 0
1042};
1043
1044static const short _indic_syllable_machine_eof_trans[] = {
1045 1, 1, 1, 1, 1, 1, 1, 1,
1046 1, 1, 1, 1, 1, 1, 1, 1,
1047 1, 1, 1, 1, 1, 1, 1, 1,
1048 1, 1, 1, 1, 1, 1, 1, 1,
1049 1, 1, 1, 37, 37, 37, 37, 37,
1050 37, 37, 37, 37, 37, 37, 37, 37,
1051 37, 37, 37, 37, 37, 37, 37, 37,
1052 37, 37, 37, 37, 37, 37, 37, 37,
1053 37, 37, 37, 37, 37, 37, 73, 73,
1054 77, 77, 73, 73, 73, 73, 73, 73,
1055 73, 73, 73, 73, 73, 73, 73, 73,
1056 73, 73, 73, 73, 73, 73, 73, 73,
1057 73, 73, 73, 73, 73, 73, 73, 73,
1058 109, 109, 109, 109, 109, 109, 109, 109,
1059 109, 109, 109, 109, 109, 109, 109, 109,
1060 109, 109, 109, 109, 109, 109, 109, 109,
1061 109, 109, 109, 109, 109, 109, 109, 109,
1062 109, 109, 109, 73, 1, 1, 1, 1,
1063 1, 1, 1, 1, 1, 1, 1, 1,
1064 1, 1, 1, 1, 1, 1, 1, 1,
1065 1, 1, 1, 1, 1, 170, 0, 186,
1066 186, 186, 186, 186, 186, 186, 186, 186,
1067 186, 186, 186, 186, 186, 186, 186, 186,
1068 186, 186, 186, 186, 186, 186, 186, 186,
1069 186, 186, 186, 186, 186, 186, 186, 186,
1070 186, 186, 186, 186, 186, 186, 186, 186,
1071 186, 186, 186, 186, 186, 186, 186, 186,
1072 186, 186, 186, 186, 186, 186, 186, 186,
1073 186, 186, 186, 186, 186, 186, 186, 186,
1074 186, 186, 254, 254, 254, 254, 254, 254,
1075 254, 254, 254, 254, 254, 254, 254, 254,
1076 254, 254, 254, 254, 254, 254, 254, 254,
1077 254, 254, 254, 254, 254, 254, 254, 254,
1078 254, 254, 254, 254, 254, 254, 254, 254,
1079 254, 254, 254, 254, 254, 254, 254, 254,
1080 254, 254, 254, 254, 254, 254, 254, 254,
1081 254, 254, 254, 254, 254, 254, 254, 254,
1082 254, 254, 254, 254, 254, 322, 322, 322,
1083 322, 322, 322, 322, 322, 322, 322, 322,
1084 322, 322, 322, 322, 322, 322, 322, 322,
1085 322, 322, 322, 322, 322, 322, 322, 322,
1086 322, 322, 322, 322, 322, 322, 322, 322,
1087 322, 322, 322, 322, 322, 322, 322, 322,
1088 322, 322, 322, 322, 322, 322, 322, 322,
1089 322, 322, 322, 322, 322, 322, 322, 322,
1090 322, 322, 322, 322, 322, 384, 322, 384,
1091 385, 385, 385, 385, 385, 385, 385, 385,
1092 385, 385, 385, 385, 385, 385, 385, 385,
1093 385, 385, 385, 385, 385, 385, 385, 385,
1094 385, 385, 385, 385, 385, 385, 385, 385,
1095 385, 385, 385, 385, 385, 385, 385, 385,
1096 385, 385, 385, 385, 385, 385, 385, 385,
1097 385, 385, 385, 385, 385, 385, 385, 385,
1098 385, 385, 385, 385, 385, 385, 385, 385,
1099 385, 385, 322, 186, 186, 186, 186, 186,
1100 186, 186, 186, 186, 186, 186, 186, 186,
1101 186, 186, 186, 186, 186, 186, 186, 186,
1102 474, 474, 474, 474, 474, 474, 474, 384
1103};
1104
1105static const int indic_syllable_machine_start = 166;
1106static const int indic_syllable_machine_first_final = 166;
1107static const int indic_syllable_machine_error = -1;
1108
1109static const int indic_syllable_machine_en_main = 166;
1110
1111
1112#line 36 "hb-ot-shape-complex-indic-machine.rl"
1113
1114
1115
1116#line 92 "hb-ot-shape-complex-indic-machine.rl"
1117
1118
1119#define found_syllable(syllable_type) \
1120 HB_STMT_START { \
1121 if (0) fprintf (stderr, "syllable %d..%d %s\n", last, p+1, #syllable_type); \
1122 for (unsigned int i = last; i < p+1; i++) \
1123 info[i].syllable() = (syllable_serial << 4) | syllable_type; \
1124 last = p+1; \
1125 syllable_serial++; \
1126 if (unlikely (syllable_serial == 16)) syllable_serial = 1; \
1127 } HB_STMT_END
1128
1129static void
1130find_syllables (hb_buffer_t *buffer)
1131{
1132 unsigned int p, pe, eof, ts HB_UNUSED, te, act;
1133 int cs;
1134 hb_glyph_info_t *info = buffer->info;
1135
1136#line 1137 "hb-ot-shape-complex-indic-machine.hh"
1137 {
1138 cs = indic_syllable_machine_start;
1139 ts = 0;
1140 te = 0;
1141 act = 0;
1142 }
1143
1144#line 113 "hb-ot-shape-complex-indic-machine.rl"
1145
1146
1147 p = 0;
1148 pe = eof = buffer->len;
1149
1150 unsigned int last = 0;
1151 unsigned int syllable_serial = 1;
1152
1153#line 1154 "hb-ot-shape-complex-indic-machine.hh"
1154 {
1155 int _slen;
1156 int _trans;
1157 const unsigned char *_keys;
1158 const short *_inds;
1159 if ( p == pe )
1160 goto _test_eof;
1161_resume:
1162 switch ( _indic_syllable_machine_from_state_actions[cs] ) {
1163 case 10:
1164#line 1 "NONE"
1165 {ts = p;}
1166 break;
1167#line 1168 "hb-ot-shape-complex-indic-machine.hh"
1168 }
1169
1170 _keys = _indic_syllable_machine_trans_keys + (cs<<1);
1171 _inds = _indic_syllable_machine_indicies + _indic_syllable_machine_index_offsets[cs];
1172
1173 _slen = _indic_syllable_machine_key_spans[cs];
1174 _trans = _inds[ _slen > 0 && _keys[0] <=( info[p].indic_category()) &&
1175 ( info[p].indic_category()) <= _keys[1] ?
1176 ( info[p].indic_category()) - _keys[0] : _slen ];
1177
1178_eof_trans:
1179 cs = _indic_syllable_machine_trans_targs[_trans];
1180
1181 if ( _indic_syllable_machine_trans_actions[_trans] == 0 )
1182 goto _again;
1183
1184 switch ( _indic_syllable_machine_trans_actions[_trans] ) {
1185 case 2:
1186#line 1 "NONE"
1187 {te = p+1;}
1188 break;
1189 case 14:
1190#line 83 "hb-ot-shape-complex-indic-machine.rl"
1191 {te = p+1;{ found_syllable (consonant_syllable); }}
1192 break;
1193 case 16:
1194#line 84 "hb-ot-shape-complex-indic-machine.rl"
1195 {te = p+1;{ found_syllable (vowel_syllable); }}
1196 break;
1197 case 21:
1198#line 85 "hb-ot-shape-complex-indic-machine.rl"
1199 {te = p+1;{ found_syllable (standalone_cluster); }}
1200 break;
1201 case 24:
1202#line 86 "hb-ot-shape-complex-indic-machine.rl"
1203 {te = p+1;{ found_syllable (symbol_cluster); }}
1204 break;
1205 case 18:
1206#line 87 "hb-ot-shape-complex-indic-machine.rl"
1207 {te = p+1;{ found_syllable (broken_cluster); }}
1208 break;
1209 case 11:
1210#line 88 "hb-ot-shape-complex-indic-machine.rl"
1211 {te = p+1;{ found_syllable (non_indic_cluster); }}
1212 break;
1213 case 13:
1214#line 83 "hb-ot-shape-complex-indic-machine.rl"
1215 {te = p;p--;{ found_syllable (consonant_syllable); }}
1216 break;
1217 case 15:
1218#line 84 "hb-ot-shape-complex-indic-machine.rl"
1219 {te = p;p--;{ found_syllable (vowel_syllable); }}
1220 break;
1221 case 20:
1222#line 85 "hb-ot-shape-complex-indic-machine.rl"
1223 {te = p;p--;{ found_syllable (standalone_cluster); }}
1224 break;
1225 case 23:
1226#line 86 "hb-ot-shape-complex-indic-machine.rl"
1227 {te = p;p--;{ found_syllable (symbol_cluster); }}
1228 break;
1229 case 17:
1230#line 87 "hb-ot-shape-complex-indic-machine.rl"
1231 {te = p;p--;{ found_syllable (broken_cluster); }}
1232 break;
1233 case 19:
1234#line 88 "hb-ot-shape-complex-indic-machine.rl"
1235 {te = p;p--;{ found_syllable (non_indic_cluster); }}
1236 break;
1237 case 1:
1238#line 83 "hb-ot-shape-complex-indic-machine.rl"
1239 {{p = ((te))-1;}{ found_syllable (consonant_syllable); }}
1240 break;
1241 case 3:
1242#line 84 "hb-ot-shape-complex-indic-machine.rl"
1243 {{p = ((te))-1;}{ found_syllable (vowel_syllable); }}
1244 break;
1245 case 7:
1246#line 85 "hb-ot-shape-complex-indic-machine.rl"
1247 {{p = ((te))-1;}{ found_syllable (standalone_cluster); }}
1248 break;
1249 case 8:
1250#line 86 "hb-ot-shape-complex-indic-machine.rl"
1251 {{p = ((te))-1;}{ found_syllable (symbol_cluster); }}
1252 break;
1253 case 4:
1254#line 87 "hb-ot-shape-complex-indic-machine.rl"
1255 {{p = ((te))-1;}{ found_syllable (broken_cluster); }}
1256 break;
1257 case 5:
1258#line 1 "NONE"
1259 { switch( act ) {
1260 case 1:
1261 {{p = ((te))-1;} found_syllable (consonant_syllable); }
1262 break;
1263 case 5:
1264 {{p = ((te))-1;} found_syllable (broken_cluster); }
1265 break;
1266 case 6:
1267 {{p = ((te))-1;} found_syllable (non_indic_cluster); }
1268 break;
1269 }
1270 }
1271 break;
1272 case 22:
1273#line 1 "NONE"
1274 {te = p+1;}
1275#line 83 "hb-ot-shape-complex-indic-machine.rl"
1276 {act = 1;}
1277 break;
1278 case 6:
1279#line 1 "NONE"
1280 {te = p+1;}
1281#line 87 "hb-ot-shape-complex-indic-machine.rl"
1282 {act = 5;}
1283 break;
1284 case 12:
1285#line 1 "NONE"
1286 {te = p+1;}
1287#line 88 "hb-ot-shape-complex-indic-machine.rl"
1288 {act = 6;}
1289 break;
1290#line 1291 "hb-ot-shape-complex-indic-machine.hh"
1291 }
1292
1293_again:
1294 switch ( _indic_syllable_machine_to_state_actions[cs] ) {
1295 case 9:
1296#line 1 "NONE"
1297 {ts = 0;}
1298 break;
1299#line 1300 "hb-ot-shape-complex-indic-machine.hh"
1300 }
1301
1302 if ( ++p != pe )
1303 goto _resume;
1304 _test_eof: {}
1305 if ( p == eof )
1306 {
1307 if ( _indic_syllable_machine_eof_trans[cs] > 0 ) {
1308 _trans = _indic_syllable_machine_eof_trans[cs] - 1;
1309 goto _eof_trans;
1310 }
1311 }
1312
1313 }
1314
1315#line 122 "hb-ot-shape-complex-indic-machine.rl"
1316
1317}
1318
1319#endif /* HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH */
1320