hb-ot-shape-complex-indic-machine.hh revision 13240:8c09472c3de2
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, 31u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u,
60        3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u,
61        3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 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, 31u, 4u, 14u, 3u, 31u, 3u, 31u, 1u, 16u,
66        1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u,
67        1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u,
68        1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
69        1u, 16u, 3u, 31u, 3u, 31u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u,
70        3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u,
71        3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 5u, 14u, 5u, 14u,
72        5u, 10u, 9u, 10u, 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 13u,
73        3u, 10u, 5u, 10u, 3u, 10u, 3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u,
74        3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u,
75        5u, 14u, 3u, 14u, 1u, 16u, 4u, 31u, 4u, 14u, 3u, 31u, 3u, 31u, 1u, 16u,
76        1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u,
77        1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u,
78        1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
79        4u, 14u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u,
80        4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u,
81        4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 5u, 14u, 5u, 14u, 5u, 10u,
82        9u, 10u, 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 13u, 3u, 10u,
83        5u, 10u, 3u, 10u, 3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u,
84        4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u,
85        3u, 14u, 1u, 16u, 4u, 31u, 4u, 14u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u,
86        1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u,
87        1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
88        1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
89        4u, 14u, 3u, 31u, 4u, 14u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u,
90        3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u,
91        3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 5u, 14u, 5u, 14u,
92        5u, 10u, 9u, 10u, 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 13u,
93        3u, 10u, 5u, 10u, 3u, 10u, 3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u,
94        3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u,
95        5u, 14u, 3u, 14u, 1u, 16u, 4u, 31u, 4u, 14u, 3u, 31u, 3u, 31u, 1u, 16u,
96        1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u,
97        1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u,
98        1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
99        1u, 16u, 3u, 31u, 1u, 31u, 3u, 31u, 1u, 31u, 4u, 14u, 5u, 10u, 9u, 10u,
100        9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 1u, 16u, 3u, 31u, 3u, 31u,
101        4u, 31u, 3u, 31u, 3u, 31u, 1u, 16u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u,
102        4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u,
103        3u, 13u, 3u, 10u, 5u, 10u, 3u, 10u, 3u, 13u, 1u, 16u, 3u, 10u, 5u, 10u,
104        5u, 10u, 9u, 10u, 9u, 9u, 9u, 10u, 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, 31, 29, 29, 28, 16, 29,
131        29, 28, 16, 29, 29, 28, 16, 29,
132        29, 28, 16, 29, 29, 28, 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, 28, 11, 29, 29, 16,
137        16, 16, 16, 16, 29, 29, 16, 16,
138        16, 16, 16, 29, 29, 16, 16, 16,
139        16, 16, 29, 29, 16, 16, 16, 16,
140        16, 29, 29, 29, 29, 28, 16, 29,
141        29, 28, 16, 29, 29, 28, 16, 29,
142        29, 28, 16, 29, 29, 28, 10, 10,
143        6, 2, 1, 2, 2, 1, 6, 11,
144        8, 6, 8, 11, 12, 12, 11, 10,
145        12, 11, 10, 12, 11, 10, 12, 11,
146        10, 12, 16, 28, 11, 29, 29, 16,
147        16, 16, 16, 16, 29, 29, 16, 16,
148        16, 16, 16, 29, 29, 16, 16, 16,
149        16, 16, 29, 29, 16, 16, 16, 16,
150        11, 16, 29, 29, 28, 16, 29, 29,
151        28, 16, 29, 29, 28, 16, 29, 29,
152        28, 16, 29, 29, 28, 10, 10, 6,
153        2, 1, 2, 2, 1, 6, 11, 8,
154        6, 8, 11, 12, 12, 11, 10, 12,
155        11, 10, 12, 11, 10, 12, 11, 10,
156        12, 16, 28, 11, 29, 29, 16, 16,
157        16, 16, 16, 29, 29, 16, 16, 16,
158        16, 16, 29, 29, 16, 16, 16, 16,
159        16, 29, 29, 16, 16, 16, 16, 16,
160        11, 29, 11, 29, 29, 28, 16, 29,
161        29, 28, 16, 29, 29, 28, 16, 29,
162        29, 28, 16, 29, 29, 28, 10, 10,
163        6, 2, 1, 2, 2, 1, 6, 11,
164        8, 6, 8, 11, 12, 12, 11, 10,
165        12, 11, 10, 12, 11, 10, 12, 11,
166        10, 12, 16, 28, 11, 29, 29, 16,
167        16, 16, 16, 16, 29, 29, 16, 16,
168        16, 16, 16, 29, 29, 16, 16, 16,
169        16, 16, 29, 29, 16, 16, 16, 16,
170        16, 29, 31, 29, 31, 11, 6, 2,
171        1, 2, 2, 1, 6, 16, 29, 29,
172        28, 29, 29, 16, 12, 11, 10, 12,
173        11, 10, 12, 11, 10, 12, 11, 10,
174        11, 8, 6, 8, 11, 16, 8, 6,
175        6, 2, 1, 2, 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, 1091, 1121, 1151, 1180, 1197,
202        1227, 1257, 1286, 1303, 1333, 1363, 1392, 1409,
203        1439, 1469, 1498, 1515, 1545, 1575, 1604, 1615,
204        1626, 1633, 1636, 1638, 1641, 1644, 1646, 1653,
205        1665, 1674, 1681, 1690, 1702, 1715, 1728, 1740,
206        1751, 1764, 1776, 1787, 1800, 1812, 1823, 1836,
207        1848, 1859, 1872, 1889, 1918, 1930, 1960, 1990,
208        2007, 2024, 2041, 2058, 2075, 2105, 2135, 2152,
209        2169, 2186, 2203, 2220, 2250, 2280, 2297, 2314,
210        2331, 2348, 2365, 2395, 2425, 2442, 2459, 2476,
211        2493, 2510, 2540, 2570, 2600, 2630, 2659, 2676,
212        2706, 2736, 2765, 2782, 2812, 2842, 2871, 2888,
213        2918, 2948, 2977, 2994, 3024, 3054, 3083, 3094,
214        3105, 3112, 3115, 3117, 3120, 3123, 3125, 3132,
215        3144, 3153, 3160, 3169, 3181, 3194, 3207, 3219,
216        3230, 3243, 3255, 3266, 3279, 3291, 3302, 3315,
217        3327, 3338, 3351, 3368, 3397, 3409, 3439, 3469,
218        3486, 3503, 3520, 3537, 3554, 3584, 3614, 3631,
219        3648, 3665, 3682, 3699, 3729, 3759, 3776, 3793,
220        3810, 3827, 3844, 3874, 3904, 3921, 3938, 3955,
221        3972, 3984, 4001, 4031, 4061, 4090, 4107, 4137,
222        4167, 4196, 4213, 4243, 4273, 4302, 4319, 4349,
223        4379, 4408, 4425, 4455, 4485, 4514, 4525, 4536,
224        4543, 4546, 4548, 4551, 4554, 4556, 4563, 4575,
225        4584, 4591, 4600, 4612, 4625, 4638, 4650, 4661,
226        4674, 4686, 4697, 4710, 4722, 4733, 4746, 4758,
227        4769, 4782, 4799, 4828, 4840, 4870, 4900, 4917,
228        4934, 4951, 4968, 4985, 5015, 5045, 5062, 5079,
229        5096, 5113, 5130, 5160, 5190, 5207, 5224, 5241,
230        5258, 5275, 5305, 5335, 5352, 5369, 5386, 5403,
231        5420, 5432, 5462, 5474, 5504, 5534, 5563, 5580,
232        5610, 5640, 5669, 5686, 5716, 5746, 5775, 5792,
233        5822, 5852, 5881, 5898, 5928, 5958, 5987, 5998,
234        6009, 6016, 6019, 6021, 6024, 6027, 6029, 6036,
235        6048, 6057, 6064, 6073, 6085, 6098, 6111, 6123,
236        6134, 6147, 6159, 6170, 6183, 6195, 6206, 6219,
237        6231, 6242, 6255, 6272, 6301, 6313, 6343, 6373,
238        6390, 6407, 6424, 6441, 6458, 6488, 6518, 6535,
239        6552, 6569, 6586, 6603, 6633, 6663, 6680, 6697,
240        6714, 6731, 6748, 6778, 6808, 6825, 6842, 6859,
241        6876, 6893, 6923, 6955, 6985, 7017, 7029, 7036,
242        7039, 7041, 7044, 7047, 7049, 7056, 7073, 7103,
243        7133, 7162, 7192, 7222, 7239, 7252, 7264, 7275,
244        7288, 7300, 7311, 7324, 7336, 7347, 7360, 7372,
245        7383, 7395, 7404, 7411, 7420, 7432, 7449, 7458,
246        7465, 7472, 7475, 7477, 7480, 7483, 7485
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, 187, 187,
385        187, 187, 187, 187, 187, 187, 187, 187,
386        187, 202, 187, 204, 205, 206, 207, 6,
387        1, 208, 209, 203, 203, 38, 210, 203,
388        203, 211, 203, 203, 203, 203, 203, 203,
389        203, 203, 203, 203, 203, 203, 203, 212,
390        203, 213, 205, 214, 214, 6, 1, 208,
391        209, 203, 203, 203, 210, 203, 203, 211,
392        203, 203, 203, 203, 203, 203, 203, 203,
393        203, 203, 203, 203, 203, 212, 203, 205,
394        214, 214, 6, 1, 208, 209, 203, 203,
395        203, 210, 203, 203, 211, 203, 203, 203,
396        203, 203, 203, 203, 203, 203, 203, 203,
397        203, 203, 212, 203, 215, 203, 203, 203,
398        19, 216, 203, 1, 208, 209, 203, 203,
399        203, 217, 203, 215, 203, 218, 219, 220,
400        221, 6, 1, 208, 209, 203, 203, 36,
401        222, 203, 203, 211, 203, 203, 203, 203,
402        203, 203, 203, 203, 203, 203, 203, 203,
403        203, 212, 203, 223, 219, 224, 224, 6,
404        1, 208, 209, 203, 203, 203, 222, 203,
405        203, 211, 203, 203, 203, 203, 203, 203,
406        203, 203, 203, 203, 203, 203, 203, 212,
407        203, 219, 224, 224, 6, 1, 208, 209,
408        203, 203, 203, 222, 203, 203, 211, 203,
409        203, 203, 203, 203, 203, 203, 203, 203,
410        203, 203, 203, 203, 212, 203, 225, 203,
411        203, 203, 19, 226, 203, 1, 208, 209,
412        203, 203, 203, 217, 203, 225, 203, 227,
413        228, 229, 230, 6, 1, 208, 209, 203,
414        203, 34, 231, 203, 203, 211, 203, 203,
415        203, 203, 203, 203, 203, 203, 203, 203,
416        203, 203, 203, 212, 203, 232, 228, 233,
417        233, 6, 1, 208, 209, 203, 203, 203,
418        231, 203, 203, 211, 203, 203, 203, 203,
419        203, 203, 203, 203, 203, 203, 203, 203,
420        203, 212, 203, 228, 233, 233, 6, 1,
421        208, 209, 203, 203, 203, 231, 203, 203,
422        211, 203, 203, 203, 203, 203, 203, 203,
423        203, 203, 203, 203, 203, 203, 212, 203,
424        234, 203, 203, 203, 19, 235, 203, 1,
425        208, 209, 203, 203, 203, 217, 203, 234,
426        203, 236, 237, 238, 239, 6, 1, 208,
427        209, 203, 203, 32, 240, 203, 203, 211,
428        203, 203, 203, 203, 203, 203, 203, 203,
429        203, 203, 203, 203, 203, 212, 203, 241,
430        237, 242, 242, 6, 1, 208, 209, 203,
431        203, 203, 240, 203, 203, 211, 203, 203,
432        203, 203, 203, 203, 203, 203, 203, 203,
433        203, 203, 203, 212, 203, 237, 242, 242,
434        6, 1, 208, 209, 203, 203, 203, 240,
435        203, 203, 211, 203, 203, 203, 203, 203,
436        203, 203, 203, 203, 203, 203, 203, 203,
437        212, 203, 243, 203, 203, 203, 19, 244,
438        203, 1, 208, 209, 203, 203, 203, 217,
439        203, 243, 203, 245, 246, 247, 248, 6,
440        1, 208, 209, 203, 203, 30, 249, 203,
441        203, 211, 203, 203, 203, 203, 203, 203,
442        203, 203, 203, 203, 203, 203, 203, 212,
443        203, 250, 246, 251, 251, 6, 1, 208,
444        209, 203, 203, 203, 249, 203, 203, 211,
445        203, 203, 203, 203, 203, 203, 203, 203,
446        203, 203, 203, 203, 203, 212, 203, 246,
447        251, 251, 6, 1, 208, 209, 203, 203,
448        203, 249, 203, 203, 211, 203, 203, 203,
449        203, 203, 203, 203, 203, 203, 203, 203,
450        203, 203, 212, 203, 19, 252, 203, 1,
451        208, 209, 203, 203, 203, 217, 203, 253,
452        253, 203, 1, 208, 209, 203, 203, 203,
453        217, 203, 254, 203, 203, 255, 208, 209,
454        203, 208, 209, 203, 256, 203, 208, 257,
455        203, 208, 258, 203, 208, 203, 254, 203,
456        203, 203, 208, 209, 203, 259, 203, 260,
457        261, 203, 1, 208, 209, 203, 203, 4,
458        203, 3, 203, 253, 253, 203, 1, 208,
459        209, 203, 253, 253, 203, 1, 208, 209,
460        203, 259, 203, 253, 253, 203, 1, 208,
461        209, 203, 259, 203, 260, 253, 203, 1,
462        208, 209, 203, 203, 4, 203, 19, 203,
463        262, 262, 6, 1, 208, 209, 203, 203,
464        203, 217, 203, 263, 28, 264, 265, 9,
465        1, 208, 209, 203, 203, 203, 217, 203,
466        28, 264, 265, 9, 1, 208, 209, 203,
467        203, 203, 217, 203, 264, 264, 9, 1,
468        208, 209, 203, 203, 203, 217, 203, 266,
469        25, 267, 268, 12, 1, 208, 209, 203,
470        203, 203, 217, 203, 25, 267, 268, 12,
471        1, 208, 209, 203, 203, 203, 217, 203,
472        267, 267, 12, 1, 208, 209, 203, 203,
473        203, 217, 203, 269, 22, 270, 271, 15,
474        1, 208, 209, 203, 203, 203, 217, 203,
475        22, 270, 271, 15, 1, 208, 209, 203,
476        203, 203, 217, 203, 270, 270, 15, 1,
477        208, 209, 203, 203, 203, 217, 203, 272,
478        19, 253, 273, 203, 1, 208, 209, 203,
479        203, 203, 217, 203, 19, 253, 273, 203,
480        1, 208, 209, 203, 203, 203, 217, 203,
481        253, 274, 203, 1, 208, 209, 203, 203,
482        203, 217, 203, 19, 203, 253, 253, 203,
483        1, 208, 209, 203, 203, 203, 217, 203,
484        2, 3, 203, 203, 19, 252, 203, 1,
485        208, 209, 203, 203, 203, 217, 203, 2,
486        203, 246, 251, 251, 6, 1, 208, 209,
487        203, 203, 203, 249, 203, 203, 203, 203,
488        203, 203, 203, 203, 203, 203, 203, 203,
489        203, 203, 203, 203, 212, 203, 246, 251,
490        251, 6, 1, 208, 209, 203, 203, 203,
491        249, 203, 245, 246, 251, 251, 6, 1,
492        208, 209, 203, 203, 203, 249, 203, 203,
493        211, 203, 203, 203, 203, 203, 203, 203,
494        203, 203, 203, 203, 203, 203, 212, 203,
495        245, 246, 247, 251, 6, 1, 208, 209,
496        203, 203, 30, 249, 203, 203, 211, 203,
497        203, 203, 203, 203, 203, 203, 203, 203,
498        203, 203, 203, 203, 212, 203, 243, 203,
499        275, 203, 262, 262, 6, 1, 208, 209,
500        203, 203, 203, 217, 203, 243, 203, 243,
501        203, 203, 203, 253, 253, 203, 1, 208,
502        209, 203, 203, 203, 217, 203, 243, 203,
503        243, 203, 203, 203, 253, 276, 203, 1,
504        208, 209, 203, 203, 203, 217, 203, 243,
505        203, 243, 203, 275, 203, 253, 253, 203,
506        1, 208, 209, 203, 203, 203, 217, 203,
507        243, 203, 243, 3, 203, 203, 19, 244,
508        203, 1, 208, 209, 203, 203, 203, 217,
509        203, 243, 203, 236, 237, 242, 242, 6,
510        1, 208, 209, 203, 203, 203, 240, 203,
511        203, 211, 203, 203, 203, 203, 203, 203,
512        203, 203, 203, 203, 203, 203, 203, 212,
513        203, 236, 237, 238, 242, 6, 1, 208,
514        209, 203, 203, 32, 240, 203, 203, 211,
515        203, 203, 203, 203, 203, 203, 203, 203,
516        203, 203, 203, 203, 203, 212, 203, 234,
517        203, 277, 203, 262, 262, 6, 1, 208,
518        209, 203, 203, 203, 217, 203, 234, 203,
519        234, 203, 203, 203, 253, 253, 203, 1,
520        208, 209, 203, 203, 203, 217, 203, 234,
521        203, 234, 203, 203, 203, 253, 278, 203,
522        1, 208, 209, 203, 203, 203, 217, 203,
523        234, 203, 234, 203, 277, 203, 253, 253,
524        203, 1, 208, 209, 203, 203, 203, 217,
525        203, 234, 203, 234, 3, 203, 203, 19,
526        235, 203, 1, 208, 209, 203, 203, 203,
527        217, 203, 234, 203, 227, 228, 233, 233,
528        6, 1, 208, 209, 203, 203, 203, 231,
529        203, 203, 211, 203, 203, 203, 203, 203,
530        203, 203, 203, 203, 203, 203, 203, 203,
531        212, 203, 227, 228, 229, 233, 6, 1,
532        208, 209, 203, 203, 34, 231, 203, 203,
533        211, 203, 203, 203, 203, 203, 203, 203,
534        203, 203, 203, 203, 203, 203, 212, 203,
535        225, 203, 279, 203, 262, 262, 6, 1,
536        208, 209, 203, 203, 203, 217, 203, 225,
537        203, 225, 203, 203, 203, 253, 253, 203,
538        1, 208, 209, 203, 203, 203, 217, 203,
539        225, 203, 225, 203, 203, 203, 253, 280,
540        203, 1, 208, 209, 203, 203, 203, 217,
541        203, 225, 203, 225, 203, 279, 203, 253,
542        253, 203, 1, 208, 209, 203, 203, 203,
543        217, 203, 225, 203, 225, 3, 203, 203,
544        19, 226, 203, 1, 208, 209, 203, 203,
545        203, 217, 203, 225, 203, 218, 219, 224,
546        224, 6, 1, 208, 209, 203, 203, 203,
547        222, 203, 203, 211, 203, 203, 203, 203,
548        203, 203, 203, 203, 203, 203, 203, 203,
549        203, 212, 203, 218, 219, 220, 224, 6,
550        1, 208, 209, 203, 203, 36, 222, 203,
551        203, 211, 203, 203, 203, 203, 203, 203,
552        203, 203, 203, 203, 203, 203, 203, 212,
553        203, 215, 203, 281, 203, 262, 262, 6,
554        1, 208, 209, 203, 203, 203, 217, 203,
555        215, 203, 215, 203, 203, 203, 253, 253,
556        203, 1, 208, 209, 203, 203, 203, 217,
557        203, 215, 203, 215, 203, 203, 203, 253,
558        282, 203, 1, 208, 209, 203, 203, 203,
559        217, 203, 215, 203, 215, 203, 281, 203,
560        253, 253, 203, 1, 208, 209, 203, 203,
561        203, 217, 203, 215, 203, 215, 3, 203,
562        203, 19, 216, 203, 1, 208, 209, 203,
563        203, 203, 217, 203, 215, 203, 204, 205,
564        214, 214, 6, 1, 208, 209, 203, 203,
565        203, 210, 203, 203, 211, 203, 203, 203,
566        203, 203, 203, 203, 203, 203, 203, 203,
567        203, 203, 212, 203, 204, 205, 206, 214,
568        6, 1, 208, 209, 203, 203, 38, 210,
569        203, 203, 211, 203, 203, 203, 203, 203,
570        203, 203, 203, 203, 203, 203, 203, 203,
571        212, 203, 284, 285, 286, 287, 45, 40,
572        288, 289, 283, 283, 77, 290, 283, 283,
573        291, 283, 283, 283, 283, 283, 283, 283,
574        283, 283, 283, 283, 283, 283, 292, 283,
575        293, 285, 294, 287, 45, 40, 288, 289,
576        283, 283, 283, 290, 283, 283, 291, 283,
577        283, 283, 283, 283, 283, 283, 283, 283,
578        283, 283, 283, 283, 292, 283, 285, 294,
579        287, 45, 40, 288, 289, 283, 283, 283,
580        290, 283, 283, 291, 283, 283, 283, 283,
581        283, 283, 283, 283, 283, 283, 283, 283,
582        283, 292, 283, 295, 283, 283, 283, 58,
583        296, 283, 40, 288, 289, 283, 283, 283,
584        297, 283, 295, 283, 298, 299, 300, 301,
585        45, 40, 288, 289, 283, 283, 75, 302,
586        283, 283, 291, 283, 283, 283, 283, 283,
587        283, 283, 283, 283, 283, 283, 283, 283,
588        292, 283, 303, 299, 304, 304, 45, 40,
589        288, 289, 283, 283, 283, 302, 283, 283,
590        291, 283, 283, 283, 283, 283, 283, 283,
591        283, 283, 283, 283, 283, 283, 292, 283,
592        299, 304, 304, 45, 40, 288, 289, 283,
593        283, 283, 302, 283, 283, 291, 283, 283,
594        283, 283, 283, 283, 283, 283, 283, 283,
595        283, 283, 283, 292, 283, 305, 283, 283,
596        283, 58, 306, 283, 40, 288, 289, 283,
597        283, 283, 297, 283, 305, 283, 307, 308,
598        309, 310, 45, 40, 288, 289, 283, 283,
599        73, 311, 283, 283, 291, 283, 283, 283,
600        283, 283, 283, 283, 283, 283, 283, 283,
601        283, 283, 292, 283, 312, 308, 313, 313,
602        45, 40, 288, 289, 283, 283, 283, 311,
603        283, 283, 291, 283, 283, 283, 283, 283,
604        283, 283, 283, 283, 283, 283, 283, 283,
605        292, 283, 308, 313, 313, 45, 40, 288,
606        289, 283, 283, 283, 311, 283, 283, 291,
607        283, 283, 283, 283, 283, 283, 283, 283,
608        283, 283, 283, 283, 283, 292, 283, 314,
609        283, 283, 283, 58, 315, 283, 40, 288,
610        289, 283, 283, 283, 297, 283, 314, 283,
611        316, 317, 318, 319, 45, 40, 288, 289,
612        283, 283, 71, 320, 283, 283, 291, 283,
613        283, 283, 283, 283, 283, 283, 283, 283,
614        283, 283, 283, 283, 292, 283, 321, 317,
615        322, 322, 45, 40, 288, 289, 283, 283,
616        283, 320, 283, 283, 291, 283, 283, 283,
617        283, 283, 283, 283, 283, 283, 283, 283,
618        283, 283, 292, 283, 317, 322, 322, 45,
619        40, 288, 289, 283, 283, 283, 320, 283,
620        283, 291, 283, 283, 283, 283, 283, 283,
621        283, 283, 283, 283, 283, 283, 283, 292,
622        283, 323, 283, 283, 283, 58, 324, 283,
623        40, 288, 289, 283, 283, 283, 297, 283,
624        323, 283, 325, 326, 327, 328, 45, 40,
625        288, 289, 283, 283, 69, 329, 283, 283,
626        291, 283, 283, 283, 283, 283, 283, 283,
627        283, 283, 283, 283, 283, 283, 292, 283,
628        330, 326, 331, 331, 45, 40, 288, 289,
629        283, 283, 283, 329, 283, 283, 291, 283,
630        283, 283, 283, 283, 283, 283, 283, 283,
631        283, 283, 283, 283, 292, 283, 326, 331,
632        331, 45, 40, 288, 289, 283, 283, 283,
633        329, 283, 283, 291, 283, 283, 283, 283,
634        283, 283, 283, 283, 283, 283, 283, 283,
635        283, 292, 283, 58, 332, 283, 40, 288,
636        289, 283, 283, 283, 297, 283, 333, 333,
637        283, 40, 288, 289, 283, 283, 283, 297,
638        283, 334, 283, 283, 335, 288, 289, 283,
639        288, 289, 283, 336, 283, 288, 337, 283,
640        288, 338, 283, 288, 283, 334, 283, 283,
641        283, 288, 289, 283, 339, 283, 340, 341,
642        283, 40, 288, 289, 283, 283, 43, 283,
643        42, 283, 333, 333, 283, 40, 288, 289,
644        283, 333, 333, 283, 40, 288, 289, 283,
645        339, 283, 333, 333, 283, 40, 288, 289,
646        283, 339, 283, 340, 333, 283, 40, 288,
647        289, 283, 283, 43, 283, 58, 283, 342,
648        342, 45, 40, 288, 289, 283, 283, 283,
649        297, 283, 343, 67, 344, 345, 48, 40,
650        288, 289, 283, 283, 283, 297, 283, 67,
651        344, 345, 48, 40, 288, 289, 283, 283,
652        283, 297, 283, 344, 344, 48, 40, 288,
653        289, 283, 283, 283, 297, 283, 346, 64,
654        347, 348, 51, 40, 288, 289, 283, 283,
655        283, 297, 283, 64, 347, 348, 51, 40,
656        288, 289, 283, 283, 283, 297, 283, 347,
657        347, 51, 40, 288, 289, 283, 283, 283,
658        297, 283, 349, 61, 350, 351, 54, 40,
659        288, 289, 283, 283, 283, 297, 283, 61,
660        350, 351, 54, 40, 288, 289, 283, 283,
661        283, 297, 283, 350, 350, 54, 40, 288,
662        289, 283, 283, 283, 297, 283, 352, 58,
663        333, 353, 283, 40, 288, 289, 283, 283,
664        283, 297, 283, 58, 333, 353, 283, 40,
665        288, 289, 283, 283, 283, 297, 283, 333,
666        354, 283, 40, 288, 289, 283, 283, 283,
667        297, 283, 58, 283, 333, 333, 283, 40,
668        288, 289, 283, 283, 283, 297, 283, 41,
669        42, 283, 283, 58, 332, 283, 40, 288,
670        289, 283, 283, 283, 297, 283, 41, 283,
671        326, 331, 331, 45, 40, 288, 289, 283,
672        283, 283, 329, 283, 283, 283, 283, 283,
673        283, 283, 283, 283, 283, 283, 283, 283,
674        283, 283, 283, 292, 283, 326, 331, 331,
675        45, 40, 288, 289, 283, 283, 283, 329,
676        283, 325, 326, 331, 331, 45, 40, 288,
677        289, 283, 283, 283, 329, 283, 283, 291,
678        283, 283, 283, 283, 283, 283, 283, 283,
679        283, 283, 283, 283, 283, 292, 283, 325,
680        326, 327, 331, 45, 40, 288, 289, 283,
681        283, 69, 329, 283, 283, 291, 283, 283,
682        283, 283, 283, 283, 283, 283, 283, 283,
683        283, 283, 283, 292, 283, 323, 283, 355,
684        283, 342, 342, 45, 40, 288, 289, 283,
685        283, 283, 297, 283, 323, 283, 323, 283,
686        283, 283, 333, 333, 283, 40, 288, 289,
687        283, 283, 283, 297, 283, 323, 283, 323,
688        283, 283, 283, 333, 356, 283, 40, 288,
689        289, 283, 283, 283, 297, 283, 323, 283,
690        323, 283, 355, 283, 333, 333, 283, 40,
691        288, 289, 283, 283, 283, 297, 283, 323,
692        283, 323, 42, 283, 283, 58, 324, 283,
693        40, 288, 289, 283, 283, 283, 297, 283,
694        323, 283, 316, 317, 322, 322, 45, 40,
695        288, 289, 283, 283, 283, 320, 283, 283,
696        291, 283, 283, 283, 283, 283, 283, 283,
697        283, 283, 283, 283, 283, 283, 292, 283,
698        316, 317, 318, 322, 45, 40, 288, 289,
699        283, 283, 71, 320, 283, 283, 291, 283,
700        283, 283, 283, 283, 283, 283, 283, 283,
701        283, 283, 283, 283, 292, 283, 314, 283,
702        357, 283, 342, 342, 45, 40, 288, 289,
703        283, 283, 283, 297, 283, 314, 283, 314,
704        283, 283, 283, 333, 333, 283, 40, 288,
705        289, 283, 283, 283, 297, 283, 314, 283,
706        314, 283, 283, 283, 333, 358, 283, 40,
707        288, 289, 283, 283, 283, 297, 283, 314,
708        283, 314, 283, 357, 283, 333, 333, 283,
709        40, 288, 289, 283, 283, 283, 297, 283,
710        314, 283, 314, 42, 283, 283, 58, 315,
711        283, 40, 288, 289, 283, 283, 283, 297,
712        283, 314, 283, 307, 308, 313, 313, 45,
713        40, 288, 289, 283, 283, 283, 311, 283,
714        283, 291, 283, 283, 283, 283, 283, 283,
715        283, 283, 283, 283, 283, 283, 283, 292,
716        283, 307, 308, 309, 313, 45, 40, 288,
717        289, 283, 283, 73, 311, 283, 283, 291,
718        283, 283, 283, 283, 283, 283, 283, 283,
719        283, 283, 283, 283, 283, 292, 283, 305,
720        283, 359, 283, 342, 342, 45, 40, 288,
721        289, 283, 283, 283, 297, 283, 305, 283,
722        305, 283, 283, 283, 333, 333, 283, 40,
723        288, 289, 283, 283, 283, 297, 283, 305,
724        283, 305, 283, 283, 283, 333, 360, 283,
725        40, 288, 289, 283, 283, 283, 297, 283,
726        305, 283, 305, 283, 359, 283, 333, 333,
727        283, 40, 288, 289, 283, 283, 283, 297,
728        283, 305, 283, 305, 42, 283, 283, 58,
729        306, 283, 40, 288, 289, 283, 283, 283,
730        297, 283, 305, 283, 298, 299, 304, 304,
731        45, 40, 288, 289, 283, 283, 283, 302,
732        283, 283, 291, 283, 283, 283, 283, 283,
733        283, 283, 283, 283, 283, 283, 283, 283,
734        292, 283, 298, 299, 300, 304, 45, 40,
735        288, 289, 283, 283, 75, 302, 283, 283,
736        291, 283, 283, 283, 283, 283, 283, 283,
737        283, 283, 283, 283, 283, 283, 292, 283,
738        295, 283, 361, 283, 342, 342, 45, 40,
739        288, 289, 283, 283, 283, 297, 283, 295,
740        283, 295, 283, 283, 283, 333, 333, 283,
741        40, 288, 289, 283, 283, 283, 297, 283,
742        295, 283, 295, 283, 283, 283, 333, 362,
743        283, 40, 288, 289, 283, 283, 283, 297,
744        283, 295, 283, 295, 283, 361, 283, 333,
745        333, 283, 40, 288, 289, 283, 283, 283,
746        297, 283, 295, 283, 76, 44, 44, 45,
747        40, 283, 283, 283, 283, 283, 76, 283,
748        295, 42, 283, 283, 58, 296, 283, 40,
749        288, 289, 283, 283, 283, 297, 283, 295,
750        283, 284, 285, 294, 287, 45, 40, 288,
751        289, 283, 283, 283, 290, 283, 283, 291,
752        283, 283, 283, 283, 283, 283, 283, 283,
753        283, 283, 283, 283, 283, 292, 283, 364,
754        191, 365, 365, 84, 79, 194, 195, 363,
755        363, 363, 197, 363, 363, 200, 363, 363,
756        363, 363, 363, 363, 363, 363, 363, 363,
757        363, 363, 363, 202, 363, 191, 365, 365,
758        84, 79, 194, 195, 363, 363, 363, 197,
759        363, 363, 200, 363, 363, 363, 363, 363,
760        363, 363, 363, 363, 363, 363, 363, 363,
761        202, 363, 366, 363, 363, 363, 98, 367,
762        363, 79, 194, 195, 363, 363, 363, 368,
763        363, 366, 363, 369, 370, 371, 372, 84,
764        79, 194, 195, 363, 363, 115, 373, 363,
765        363, 200, 363, 363, 363, 363, 363, 363,
766        363, 363, 363, 363, 363, 363, 363, 202,
767        363, 374, 370, 375, 375, 84, 79, 194,
768        195, 363, 363, 363, 373, 363, 363, 200,
769        363, 363, 363, 363, 363, 363, 363, 363,
770        363, 363, 363, 363, 363, 202, 363, 370,
771        375, 375, 84, 79, 194, 195, 363, 363,
772        363, 373, 363, 363, 200, 363, 363, 363,
773        363, 363, 363, 363, 363, 363, 363, 363,
774        363, 363, 202, 363, 376, 363, 363, 363,
775        98, 377, 363, 79, 194, 195, 363, 363,
776        363, 368, 363, 376, 363, 378, 379, 380,
777        381, 84, 79, 194, 195, 363, 363, 113,
778        382, 363, 363, 200, 363, 363, 363, 363,
779        363, 363, 363, 363, 363, 363, 363, 363,
780        363, 202, 363, 383, 379, 384, 384, 84,
781        79, 194, 195, 363, 363, 363, 382, 363,
782        363, 200, 363, 363, 363, 363, 363, 363,
783        363, 363, 363, 363, 363, 363, 363, 202,
784        363, 379, 384, 384, 84, 79, 194, 195,
785        363, 363, 363, 382, 363, 363, 200, 363,
786        363, 363, 363, 363, 363, 363, 363, 363,
787        363, 363, 363, 363, 202, 363, 385, 363,
788        363, 363, 98, 386, 363, 79, 194, 195,
789        363, 363, 363, 368, 363, 385, 363, 387,
790        388, 389, 390, 84, 79, 194, 195, 363,
791        363, 111, 391, 363, 363, 200, 363, 363,
792        363, 363, 363, 363, 363, 363, 363, 363,
793        363, 363, 363, 202, 363, 392, 388, 393,
794        393, 84, 79, 194, 195, 363, 363, 363,
795        391, 363, 363, 200, 363, 363, 363, 363,
796        363, 363, 363, 363, 363, 363, 363, 363,
797        363, 202, 363, 388, 393, 393, 84, 79,
798        194, 195, 363, 363, 363, 391, 363, 363,
799        200, 363, 363, 363, 363, 363, 363, 363,
800        363, 363, 363, 363, 363, 363, 202, 363,
801        394, 363, 363, 363, 98, 395, 363, 79,
802        194, 195, 363, 363, 363, 368, 363, 394,
803        363, 396, 397, 398, 399, 84, 79, 194,
804        195, 363, 363, 109, 400, 363, 363, 200,
805        363, 363, 363, 363, 363, 363, 363, 363,
806        363, 363, 363, 363, 363, 202, 363, 401,
807        397, 402, 402, 84, 79, 194, 195, 363,
808        363, 363, 400, 363, 363, 200, 363, 363,
809        363, 363, 363, 363, 363, 363, 363, 363,
810        363, 363, 363, 202, 363, 397, 402, 402,
811        84, 79, 194, 195, 363, 363, 363, 400,
812        363, 363, 200, 363, 363, 363, 363, 363,
813        363, 363, 363, 363, 363, 363, 363, 363,
814        202, 363, 98, 403, 363, 79, 194, 195,
815        363, 363, 363, 368, 363, 404, 404, 363,
816        79, 194, 195, 363, 363, 363, 368, 363,
817        405, 363, 363, 406, 194, 195, 363, 194,
818        195, 363, 407, 363, 194, 408, 363, 194,
819        409, 363, 194, 363, 405, 363, 363, 363,
820        194, 195, 363, 410, 363, 411, 412, 363,
821        79, 194, 195, 363, 363, 82, 363, 81,
822        363, 404, 404, 363, 79, 194, 195, 363,
823        404, 404, 363, 79, 194, 195, 363, 410,
824        363, 404, 404, 363, 79, 194, 195, 363,
825        410, 363, 411, 404, 363, 79, 194, 195,
826        363, 363, 82, 363, 98, 363, 413, 413,
827        84, 79, 194, 195, 363, 363, 363, 368,
828        363, 414, 107, 415, 416, 88, 79, 194,
829        195, 363, 363, 363, 368, 363, 107, 415,
830        416, 88, 79, 194, 195, 363, 363, 363,
831        368, 363, 415, 415, 88, 79, 194, 195,
832        363, 363, 363, 368, 363, 417, 104, 418,
833        419, 91, 79, 194, 195, 363, 363, 363,
834        368, 363, 104, 418, 419, 91, 79, 194,
835        195, 363, 363, 363, 368, 363, 418, 418,
836        91, 79, 194, 195, 363, 363, 363, 368,
837        363, 420, 101, 421, 422, 94, 79, 194,
838        195, 363, 363, 363, 368, 363, 101, 421,
839        422, 94, 79, 194, 195, 363, 363, 363,
840        368, 363, 421, 421, 94, 79, 194, 195,
841        363, 363, 363, 368, 363, 423, 98, 404,
842        424, 363, 79, 194, 195, 363, 363, 363,
843        368, 363, 98, 404, 424, 363, 79, 194,
844        195, 363, 363, 363, 368, 363, 404, 425,
845        363, 79, 194, 195, 363, 363, 363, 368,
846        363, 98, 363, 404, 404, 363, 79, 194,
847        195, 363, 363, 363, 368, 363, 80, 81,
848        363, 363, 98, 403, 363, 79, 194, 195,
849        363, 363, 363, 368, 363, 80, 363, 397,
850        402, 402, 84, 79, 194, 195, 363, 363,
851        363, 400, 363, 363, 363, 363, 363, 363,
852        363, 363, 363, 363, 363, 363, 363, 363,
853        363, 363, 202, 363, 397, 402, 402, 84,
854        79, 194, 195, 363, 363, 363, 400, 363,
855        396, 397, 402, 402, 84, 79, 194, 195,
856        363, 363, 363, 400, 363, 363, 200, 363,
857        363, 363, 363, 363, 363, 363, 363, 363,
858        363, 363, 363, 363, 202, 363, 396, 397,
859        398, 402, 84, 79, 194, 195, 363, 363,
860        109, 400, 363, 363, 200, 363, 363, 363,
861        363, 363, 363, 363, 363, 363, 363, 363,
862        363, 363, 202, 363, 394, 363, 426, 363,
863        413, 413, 84, 79, 194, 195, 363, 363,
864        363, 368, 363, 394, 363, 394, 363, 363,
865        363, 404, 404, 363, 79, 194, 195, 363,
866        363, 363, 368, 363, 394, 363, 394, 363,
867        363, 363, 404, 427, 363, 79, 194, 195,
868        363, 363, 363, 368, 363, 394, 363, 394,
869        363, 426, 363, 404, 404, 363, 79, 194,
870        195, 363, 363, 363, 368, 363, 394, 363,
871        394, 81, 363, 363, 98, 395, 363, 79,
872        194, 195, 363, 363, 363, 368, 363, 394,
873        363, 387, 388, 393, 393, 84, 79, 194,
874        195, 363, 363, 363, 391, 363, 363, 200,
875        363, 363, 363, 363, 363, 363, 363, 363,
876        363, 363, 363, 363, 363, 202, 363, 387,
877        388, 389, 393, 84, 79, 194, 195, 363,
878        363, 111, 391, 363, 363, 200, 363, 363,
879        363, 363, 363, 363, 363, 363, 363, 363,
880        363, 363, 363, 202, 363, 385, 363, 428,
881        363, 413, 413, 84, 79, 194, 195, 363,
882        363, 363, 368, 363, 385, 363, 385, 363,
883        363, 363, 404, 404, 363, 79, 194, 195,
884        363, 363, 363, 368, 363, 385, 363, 385,
885        363, 363, 363, 404, 429, 363, 79, 194,
886        195, 363, 363, 363, 368, 363, 385, 363,
887        385, 363, 428, 363, 404, 404, 363, 79,
888        194, 195, 363, 363, 363, 368, 363, 385,
889        363, 385, 81, 363, 363, 98, 386, 363,
890        79, 194, 195, 363, 363, 363, 368, 363,
891        385, 363, 378, 379, 384, 384, 84, 79,
892        194, 195, 363, 363, 363, 382, 363, 363,
893        200, 363, 363, 363, 363, 363, 363, 363,
894        363, 363, 363, 363, 363, 363, 202, 363,
895        378, 379, 380, 384, 84, 79, 194, 195,
896        363, 363, 113, 382, 363, 363, 200, 363,
897        363, 363, 363, 363, 363, 363, 363, 363,
898        363, 363, 363, 363, 202, 363, 376, 363,
899        430, 363, 413, 413, 84, 79, 194, 195,
900        363, 363, 363, 368, 363, 376, 363, 376,
901        363, 363, 363, 404, 404, 363, 79, 194,
902        195, 363, 363, 363, 368, 363, 376, 363,
903        376, 363, 363, 363, 404, 431, 363, 79,
904        194, 195, 363, 363, 363, 368, 363, 376,
905        363, 376, 363, 430, 363, 404, 404, 363,
906        79, 194, 195, 363, 363, 363, 368, 363,
907        376, 363, 376, 81, 363, 363, 98, 377,
908        363, 79, 194, 195, 363, 363, 363, 368,
909        363, 376, 363, 369, 370, 375, 375, 84,
910        79, 194, 195, 363, 363, 363, 373, 363,
911        363, 200, 363, 363, 363, 363, 363, 363,
912        363, 363, 363, 363, 363, 363, 363, 202,
913        363, 369, 370, 371, 375, 84, 79, 194,
914        195, 363, 363, 115, 373, 363, 363, 200,
915        363, 363, 363, 363, 363, 363, 363, 363,
916        363, 363, 363, 363, 363, 202, 363, 366,
917        363, 432, 363, 413, 413, 84, 79, 194,
918        195, 363, 363, 363, 368, 363, 366, 363,
919        366, 363, 363, 363, 404, 404, 363, 79,
920        194, 195, 363, 363, 363, 368, 363, 366,
921        363, 366, 363, 363, 363, 404, 433, 363,
922        79, 194, 195, 363, 363, 363, 368, 363,
923        366, 363, 366, 363, 432, 363, 404, 404,
924        363, 79, 194, 195, 363, 363, 363, 368,
925        363, 366, 363, 366, 81, 363, 363, 98,
926        367, 363, 79, 194, 195, 363, 363, 363,
927        368, 363, 366, 363, 116, 83, 83, 84,
928        79, 434, 434, 434, 434, 156, 116, 434,
929        190, 191, 365, 365, 84, 79, 194, 195,
930        363, 363, 363, 197, 363, 363, 200, 363,
931        363, 363, 363, 363, 363, 363, 363, 363,
932        363, 363, 363, 363, 202, 363, 116, 83,
933        83, 84, 79, 434, 434, 434, 434, 434,
934        116, 434, 436, 437, 438, 439, 123, 118,
935        440, 441, 435, 435, 155, 442, 435, 435,
936        443, 435, 435, 435, 435, 435, 435, 435,
937        435, 435, 435, 435, 435, 435, 444, 435,
938        445, 437, 439, 439, 123, 118, 440, 441,
939        435, 435, 435, 442, 435, 435, 443, 435,
940        435, 435, 435, 435, 435, 435, 435, 435,
941        435, 435, 435, 435, 444, 435, 437, 439,
942        439, 123, 118, 440, 441, 435, 435, 435,
943        442, 435, 435, 443, 435, 435, 435, 435,
944        435, 435, 435, 435, 435, 435, 435, 435,
945        435, 444, 435, 446, 435, 435, 435, 136,
946        447, 435, 118, 440, 441, 435, 435, 435,
947        448, 435, 446, 435, 449, 450, 451, 452,
948        123, 118, 440, 441, 435, 435, 153, 453,
949        435, 435, 443, 435, 435, 435, 435, 435,
950        435, 435, 435, 435, 435, 435, 435, 435,
951        444, 435, 454, 450, 455, 455, 123, 118,
952        440, 441, 435, 435, 435, 453, 435, 435,
953        443, 435, 435, 435, 435, 435, 435, 435,
954        435, 435, 435, 435, 435, 435, 444, 435,
955        450, 455, 455, 123, 118, 440, 441, 435,
956        435, 435, 453, 435, 435, 443, 435, 435,
957        435, 435, 435, 435, 435, 435, 435, 435,
958        435, 435, 435, 444, 435, 456, 435, 435,
959        435, 136, 457, 435, 118, 440, 441, 435,
960        435, 435, 448, 435, 456, 435, 458, 459,
961        460, 461, 123, 118, 440, 441, 435, 435,
962        151, 462, 435, 435, 443, 435, 435, 435,
963        435, 435, 435, 435, 435, 435, 435, 435,
964        435, 435, 444, 435, 463, 459, 464, 464,
965        123, 118, 440, 441, 435, 435, 435, 462,
966        435, 435, 443, 435, 435, 435, 435, 435,
967        435, 435, 435, 435, 435, 435, 435, 435,
968        444, 435, 459, 464, 464, 123, 118, 440,
969        441, 435, 435, 435, 462, 435, 435, 443,
970        435, 435, 435, 435, 435, 435, 435, 435,
971        435, 435, 435, 435, 435, 444, 435, 465,
972        435, 435, 435, 136, 466, 435, 118, 440,
973        441, 435, 435, 435, 448, 435, 465, 435,
974        467, 468, 469, 470, 123, 118, 440, 441,
975        435, 435, 149, 471, 435, 435, 443, 435,
976        435, 435, 435, 435, 435, 435, 435, 435,
977        435, 435, 435, 435, 444, 435, 472, 468,
978        473, 473, 123, 118, 440, 441, 435, 435,
979        435, 471, 435, 435, 443, 435, 435, 435,
980        435, 435, 435, 435, 435, 435, 435, 435,
981        435, 435, 444, 435, 468, 473, 473, 123,
982        118, 440, 441, 435, 435, 435, 471, 435,
983        435, 443, 435, 435, 435, 435, 435, 435,
984        435, 435, 435, 435, 435, 435, 435, 444,
985        435, 474, 435, 435, 435, 136, 475, 435,
986        118, 440, 441, 435, 435, 435, 448, 435,
987        474, 435, 476, 477, 478, 479, 123, 118,
988        440, 441, 435, 435, 147, 480, 435, 435,
989        443, 435, 435, 435, 435, 435, 435, 435,
990        435, 435, 435, 435, 435, 435, 444, 435,
991        481, 477, 482, 482, 123, 118, 440, 441,
992        435, 435, 435, 480, 435, 435, 443, 435,
993        435, 435, 435, 435, 435, 435, 435, 435,
994        435, 435, 435, 435, 444, 435, 477, 482,
995        482, 123, 118, 440, 441, 435, 435, 435,
996        480, 435, 435, 443, 435, 435, 435, 435,
997        435, 435, 435, 435, 435, 435, 435, 435,
998        435, 444, 435, 136, 483, 435, 118, 440,
999        441, 435, 435, 435, 448, 435, 484, 484,
1000        435, 118, 440, 441, 435, 435, 435, 448,
1001        435, 485, 435, 435, 486, 440, 441, 435,
1002        440, 441, 435, 487, 435, 440, 488, 435,
1003        440, 489, 435, 440, 435, 485, 435, 435,
1004        435, 440, 441, 435, 490, 435, 491, 492,
1005        435, 118, 440, 441, 435, 435, 121, 435,
1006        120, 435, 484, 484, 435, 118, 440, 441,
1007        435, 484, 484, 435, 118, 440, 441, 435,
1008        490, 435, 484, 484, 435, 118, 440, 441,
1009        435, 490, 435, 491, 484, 435, 118, 440,
1010        441, 435, 435, 121, 435, 136, 435, 493,
1011        493, 123, 118, 440, 441, 435, 435, 435,
1012        448, 435, 494, 145, 495, 496, 126, 118,
1013        440, 441, 435, 435, 435, 448, 435, 145,
1014        495, 496, 126, 118, 440, 441, 435, 435,
1015        435, 448, 435, 495, 495, 126, 118, 440,
1016        441, 435, 435, 435, 448, 435, 497, 142,
1017        498, 499, 129, 118, 440, 441, 435, 435,
1018        435, 448, 435, 142, 498, 499, 129, 118,
1019        440, 441, 435, 435, 435, 448, 435, 498,
1020        498, 129, 118, 440, 441, 435, 435, 435,
1021        448, 435, 500, 139, 501, 502, 132, 118,
1022        440, 441, 435, 435, 435, 448, 435, 139,
1023        501, 502, 132, 118, 440, 441, 435, 435,
1024        435, 448, 435, 501, 501, 132, 118, 440,
1025        441, 435, 435, 435, 448, 435, 503, 136,
1026        484, 504, 435, 118, 440, 441, 435, 435,
1027        435, 448, 435, 136, 484, 504, 435, 118,
1028        440, 441, 435, 435, 435, 448, 435, 484,
1029        505, 435, 118, 440, 441, 435, 435, 435,
1030        448, 435, 136, 435, 484, 484, 435, 118,
1031        440, 441, 435, 435, 435, 448, 435, 119,
1032        120, 435, 435, 136, 483, 435, 118, 440,
1033        441, 435, 435, 435, 448, 435, 119, 435,
1034        477, 482, 482, 123, 118, 440, 441, 435,
1035        435, 435, 480, 435, 435, 435, 435, 435,
1036        435, 435, 435, 435, 435, 435, 435, 435,
1037        435, 435, 435, 444, 435, 477, 482, 482,
1038        123, 118, 440, 441, 435, 435, 435, 480,
1039        435, 476, 477, 482, 482, 123, 118, 440,
1040        441, 435, 435, 435, 480, 435, 435, 443,
1041        435, 435, 435, 435, 435, 435, 435, 435,
1042        435, 435, 435, 435, 435, 444, 435, 476,
1043        477, 478, 482, 123, 118, 440, 441, 435,
1044        435, 147, 480, 435, 435, 443, 435, 435,
1045        435, 435, 435, 435, 435, 435, 435, 435,
1046        435, 435, 435, 444, 435, 474, 435, 506,
1047        435, 493, 493, 123, 118, 440, 441, 435,
1048        435, 435, 448, 435, 474, 435, 474, 435,
1049        435, 435, 484, 484, 435, 118, 440, 441,
1050        435, 435, 435, 448, 435, 474, 435, 474,
1051        435, 435, 435, 484, 507, 435, 118, 440,
1052        441, 435, 435, 435, 448, 435, 474, 435,
1053        474, 435, 506, 435, 484, 484, 435, 118,
1054        440, 441, 435, 435, 435, 448, 435, 474,
1055        435, 474, 120, 435, 435, 136, 475, 435,
1056        118, 440, 441, 435, 435, 435, 448, 435,
1057        474, 435, 467, 468, 473, 473, 123, 118,
1058        440, 441, 435, 435, 435, 471, 435, 435,
1059        443, 435, 435, 435, 435, 435, 435, 435,
1060        435, 435, 435, 435, 435, 435, 444, 435,
1061        467, 468, 469, 473, 123, 118, 440, 441,
1062        435, 435, 149, 471, 435, 435, 443, 435,
1063        435, 435, 435, 435, 435, 435, 435, 435,
1064        435, 435, 435, 435, 444, 435, 465, 435,
1065        508, 435, 493, 493, 123, 118, 440, 441,
1066        435, 435, 435, 448, 435, 465, 435, 465,
1067        435, 435, 435, 484, 484, 435, 118, 440,
1068        441, 435, 435, 435, 448, 435, 465, 435,
1069        465, 435, 435, 435, 484, 509, 435, 118,
1070        440, 441, 435, 435, 435, 448, 435, 465,
1071        435, 465, 435, 508, 435, 484, 484, 435,
1072        118, 440, 441, 435, 435, 435, 448, 435,
1073        465, 435, 465, 120, 435, 435, 136, 466,
1074        435, 118, 440, 441, 435, 435, 435, 448,
1075        435, 465, 435, 458, 459, 464, 464, 123,
1076        118, 440, 441, 435, 435, 435, 462, 435,
1077        435, 443, 435, 435, 435, 435, 435, 435,
1078        435, 435, 435, 435, 435, 435, 435, 444,
1079        435, 458, 459, 460, 464, 123, 118, 440,
1080        441, 435, 435, 151, 462, 435, 435, 443,
1081        435, 435, 435, 435, 435, 435, 435, 435,
1082        435, 435, 435, 435, 435, 444, 435, 456,
1083        435, 510, 435, 493, 493, 123, 118, 440,
1084        441, 435, 435, 435, 448, 435, 456, 435,
1085        456, 435, 435, 435, 484, 484, 435, 118,
1086        440, 441, 435, 435, 435, 448, 435, 456,
1087        435, 456, 435, 435, 435, 484, 511, 435,
1088        118, 440, 441, 435, 435, 435, 448, 435,
1089        456, 435, 456, 435, 510, 435, 484, 484,
1090        435, 118, 440, 441, 435, 435, 435, 448,
1091        435, 456, 435, 456, 120, 435, 435, 136,
1092        457, 435, 118, 440, 441, 435, 435, 435,
1093        448, 435, 456, 435, 449, 450, 455, 455,
1094        123, 118, 440, 441, 435, 435, 435, 453,
1095        435, 435, 443, 435, 435, 435, 435, 435,
1096        435, 435, 435, 435, 435, 435, 435, 435,
1097        444, 435, 449, 450, 451, 455, 123, 118,
1098        440, 441, 435, 435, 153, 453, 435, 435,
1099        443, 435, 435, 435, 435, 435, 435, 435,
1100        435, 435, 435, 435, 435, 435, 444, 435,
1101        446, 435, 512, 435, 493, 493, 123, 118,
1102        440, 441, 435, 435, 435, 448, 435, 446,
1103        435, 446, 435, 435, 435, 484, 484, 435,
1104        118, 440, 441, 435, 435, 435, 448, 435,
1105        446, 435, 446, 435, 435, 435, 484, 513,
1106        435, 118, 440, 441, 435, 435, 435, 448,
1107        435, 446, 435, 446, 435, 512, 435, 484,
1108        484, 435, 118, 440, 441, 435, 435, 435,
1109        448, 435, 446, 435, 446, 120, 435, 435,
1110        136, 447, 435, 118, 440, 441, 435, 435,
1111        435, 448, 435, 446, 435, 436, 437, 439,
1112        439, 123, 118, 440, 441, 435, 435, 435,
1113        442, 435, 435, 443, 435, 435, 435, 435,
1114        435, 435, 435, 435, 435, 435, 435, 435,
1115        435, 444, 435, 188, 189, 190, 191, 514,
1116        365, 84, 79, 194, 195, 196, 196, 156,
1117        197, 363, 188, 200, 363, 363, 363, 363,
1118        363, 363, 363, 363, 363, 363, 363, 363,
1119        363, 202, 363, 204, 515, 206, 207, 6,
1120        1, 208, 209, 203, 203, 38, 210, 203,
1121        203, 211, 203, 203, 203, 203, 203, 203,
1122        203, 203, 203, 203, 203, 203, 203, 212,
1123        203, 215, 189, 190, 191, 516, 517, 84,
1124        157, 518, 519, 203, 196, 156, 520, 203,
1125        215, 200, 203, 203, 203, 203, 203, 203,
1126        203, 203, 203, 203, 203, 203, 203, 202,
1127        203, 116, 521, 521, 84, 157, 208, 209,
1128        203, 203, 156, 522, 203, 523, 203, 203,
1129        524, 518, 519, 203, 518, 519, 203, 256,
1130        203, 518, 525, 203, 518, 526, 203, 518,
1131        203, 523, 203, 203, 203, 518, 519, 203,
1132        527, 3, 363, 363, 404, 433, 363, 79,
1133        194, 195, 363, 363, 363, 368, 363, 527,
1134        363, 528, 370, 529, 530, 84, 157, 518,
1135        519, 203, 203, 158, 373, 203, 203, 200,
1136        203, 203, 203, 203, 203, 203, 203, 203,
1137        203, 203, 203, 203, 203, 202, 203, 531,
1138        370, 532, 532, 84, 157, 518, 519, 203,
1139        203, 203, 373, 203, 203, 200, 203, 203,
1140        203, 203, 203, 203, 203, 203, 203, 203,
1141        203, 203, 203, 202, 203, 370, 532, 532,
1142        84, 157, 518, 519, 203, 203, 203, 373,
1143        203, 203, 200, 203, 203, 203, 203, 203,
1144        203, 203, 203, 203, 203, 203, 203, 203,
1145        202, 203, 528, 370, 532, 532, 84, 157,
1146        518, 519, 203, 203, 203, 373, 203, 203,
1147        200, 203, 203, 203, 203, 203, 203, 203,
1148        203, 203, 203, 203, 203, 203, 202, 203,
1149        528, 370, 529, 532, 84, 157, 518, 519,
1150        203, 203, 158, 373, 203, 203, 200, 203,
1151        203, 203, 203, 203, 203, 203, 203, 203,
1152        203, 203, 203, 203, 202, 203, 215, 203,
1153        281, 116, 533, 533, 160, 157, 208, 209,
1154        203, 203, 203, 522, 203, 215, 203, 534,
1155        184, 535, 536, 162, 157, 518, 519, 203,
1156        203, 203, 537, 203, 184, 535, 536, 162,
1157        157, 518, 519, 203, 203, 203, 537, 203,
1158        535, 535, 162, 157, 518, 519, 203, 203,
1159        203, 537, 203, 538, 181, 539, 540, 165,
1160        157, 518, 519, 203, 203, 203, 537, 203,
1161        181, 539, 540, 165, 157, 518, 519, 203,
1162        203, 203, 537, 203, 539, 539, 165, 157,
1163        518, 519, 203, 203, 203, 537, 203, 541,
1164        178, 542, 543, 168, 157, 518, 519, 203,
1165        203, 203, 537, 203, 178, 542, 543, 168,
1166        157, 518, 519, 203, 203, 203, 537, 203,
1167        542, 542, 168, 157, 518, 519, 203, 203,
1168        203, 537, 203, 544, 175, 545, 546, 203,
1169        157, 518, 519, 203, 203, 203, 537, 203,
1170        175, 545, 546, 203, 157, 518, 519, 203,
1171        203, 203, 537, 203, 545, 545, 203, 157,
1172        518, 519, 203, 203, 203, 537, 203, 547,
1173        203, 548, 549, 203, 157, 518, 519, 203,
1174        203, 172, 203, 171, 203, 545, 545, 203,
1175        157, 518, 519, 203, 545, 545, 203, 157,
1176        518, 519, 203, 547, 203, 545, 545, 203,
1177        157, 518, 519, 203, 547, 203, 548, 545,
1178        203, 157, 518, 519, 203, 203, 172, 203,
1179        527, 171, 363, 363, 98, 367, 363, 79,
1180        194, 195, 363, 363, 363, 368, 363, 527,
1181        363, 551, 550, 552, 552, 550, 186, 553,
1182        554, 550, 552, 552, 550, 186, 553, 554,
1183        550, 555, 550, 550, 556, 553, 554, 550,
1184        553, 554, 550, 557, 550, 553, 558, 550,
1185        553, 559, 550, 553, 550, 555, 550, 550,
1186        550, 553, 554, 550, 0
1187};
1188
1189static const short _indic_syllable_machine_trans_targs[] = {
1190        178, 200, 207, 209, 210, 4, 213, 5,
1191        7, 216, 8, 10, 219, 11, 13, 222,
1192        14, 16, 17, 199, 19, 20, 221, 22,
1193        23, 218, 25, 26, 215, 224, 229, 233,
1194        236, 240, 243, 247, 250, 254, 257, 178,
1195        280, 287, 289, 290, 41, 293, 42, 44,
1196        296, 45, 47, 299, 48, 50, 302, 51,
1197        53, 54, 279, 56, 57, 301, 59, 60,
1198        298, 62, 63, 295, 304, 309, 313, 316,
1199        320, 323, 327, 330, 334, 338, 178, 359,
1200        366, 368, 369, 78, 372, 178, 79, 81,
1201        375, 82, 84, 378, 85, 87, 381, 88,
1202        90, 91, 358, 93, 94, 380, 96, 97,
1203        377, 99, 100, 374, 383, 388, 392, 395,
1204        399, 402, 406, 409, 413, 178, 440, 447,
1205        449, 450, 114, 453, 115, 117, 456, 118,
1206        120, 459, 121, 123, 462, 124, 126, 127,
1207        439, 129, 130, 461, 132, 133, 458, 135,
1208        136, 455, 464, 469, 473, 476, 480, 483,
1209        487, 490, 494, 497, 417, 502, 513, 152,
1210        516, 154, 519, 155, 157, 522, 158, 160,
1211        525, 161, 528, 530, 531, 166, 167, 527,
1212        169, 170, 524, 172, 173, 521, 175, 176,
1213        518, 178, 536, 178, 179, 259, 339, 341,
1214        416, 418, 361, 362, 419, 415, 498, 499,
1215        386, 534, 387, 178, 180, 182, 36, 258,
1216        202, 203, 256, 227, 228, 181, 35, 183,
1217        252, 1, 184, 186, 34, 251, 249, 185,
1218        33, 187, 245, 188, 190, 32, 244, 242,
1219        189, 31, 191, 238, 192, 194, 30, 237,
1220        235, 193, 29, 195, 231, 196, 198, 28,
1221        230, 226, 197, 27, 212, 0, 201, 206,
1222        178, 204, 205, 208, 2, 211, 3, 214,
1223        6, 24, 217, 9, 21, 220, 12, 18,
1224        223, 15, 225, 232, 234, 239, 241, 246,
1225        248, 253, 255, 178, 260, 262, 73, 336,
1226        282, 283, 337, 307, 308, 261, 72, 263,
1227        332, 38, 264, 266, 71, 331, 329, 265,
1228        70, 267, 325, 268, 270, 69, 324, 322,
1229        269, 68, 271, 318, 272, 274, 67, 317,
1230        315, 273, 66, 275, 311, 276, 278, 65,
1231        310, 306, 277, 64, 292, 37, 281, 286,
1232        178, 284, 285, 288, 39, 291, 40, 294,
1233        43, 61, 297, 46, 58, 300, 49, 55,
1234        303, 52, 305, 312, 314, 319, 321, 326,
1235        328, 333, 335, 178, 340, 109, 342, 411,
1236        75, 343, 345, 108, 410, 408, 344, 107,
1237        346, 404, 347, 349, 106, 403, 401, 348,
1238        105, 350, 397, 351, 353, 104, 396, 394,
1239        352, 103, 354, 390, 355, 357, 102, 389,
1240        385, 356, 101, 371, 74, 360, 365, 178,
1241        363, 364, 367, 76, 370, 77, 373, 80,
1242        98, 376, 83, 95, 379, 86, 92, 382,
1243        89, 384, 391, 393, 398, 400, 405, 407,
1244        412, 414, 178, 178, 420, 422, 146, 145,
1245        442, 443, 496, 467, 468, 421, 423, 492,
1246        111, 424, 426, 144, 491, 489, 425, 143,
1247        427, 485, 428, 430, 142, 484, 482, 429,
1248        141, 431, 478, 432, 434, 140, 477, 475,
1249        433, 139, 435, 471, 436, 438, 138, 470,
1250        466, 437, 137, 452, 110, 441, 446, 178,
1251        444, 445, 448, 112, 451, 113, 454, 116,
1252        134, 457, 119, 131, 460, 122, 128, 463,
1253        125, 465, 472, 474, 479, 481, 486, 488,
1254        493, 495, 147, 500, 501, 515, 504, 505,
1255        533, 148, 509, 503, 508, 506, 507, 510,
1256        511, 150, 514, 512, 149, 151, 517, 153,
1257        174, 163, 520, 156, 171, 523, 159, 168,
1258        526, 162, 165, 529, 164, 532, 178, 535,
1259        177, 538, 539, 537, 542, 178, 540, 541
1260};
1261
1262static const char _indic_syllable_machine_trans_actions[] = {
1263        1, 0, 2, 2, 2, 0, 2, 0,
1264        0, 2, 0, 0, 2, 0, 0, 2,
1265        0, 0, 0, 2, 0, 0, 2, 0,
1266        0, 2, 0, 0, 2, 2, 2, 2,
1267        2, 2, 2, 2, 2, 2, 2, 3,
1268        0, 2, 2, 2, 0, 2, 0, 0,
1269        2, 0, 0, 2, 0, 0, 2, 0,
1270        0, 0, 2, 0, 0, 2, 0, 0,
1271        2, 0, 0, 2, 2, 2, 2, 2,
1272        2, 2, 2, 2, 2, 2, 4, 0,
1273        2, 2, 2, 0, 2, 5, 0, 0,
1274        2, 0, 0, 2, 0, 0, 2, 0,
1275        0, 0, 2, 0, 0, 2, 0, 0,
1276        2, 0, 0, 2, 2, 6, 2, 6,
1277        2, 6, 2, 6, 2, 7, 0, 2,
1278        2, 2, 0, 2, 0, 0, 2, 0,
1279        0, 2, 0, 0, 2, 0, 0, 0,
1280        2, 0, 0, 2, 0, 0, 2, 0,
1281        0, 2, 2, 2, 2, 2, 2, 2,
1282        2, 2, 2, 2, 6, 0, 8, 0,
1283        2, 0, 2, 0, 0, 2, 0, 0,
1284        2, 0, 2, 2, 2, 0, 0, 2,
1285        0, 0, 2, 0, 0, 2, 0, 0,
1286        2, 9, 0, 12, 2, 2, 6, 2,
1287        13, 13, 0, 0, 2, 2, 6, 2,
1288        6, 2, 6, 14, 2, 2, 0, 2,
1289        0, 0, 2, 2, 2, 2, 0, 2,
1290        2, 0, 2, 2, 0, 2, 2, 2,
1291        0, 2, 2, 2, 2, 0, 2, 2,
1292        2, 0, 2, 2, 2, 2, 0, 2,
1293        2, 2, 0, 2, 2, 2, 2, 0,
1294        2, 2, 2, 0, 2, 0, 0, 0,
1295        15, 0, 0, 2, 0, 2, 0, 2,
1296        0, 0, 2, 0, 0, 2, 0, 0,
1297        2, 0, 2, 2, 2, 2, 2, 2,
1298        2, 2, 2, 16, 2, 2, 0, 2,
1299        0, 0, 2, 2, 2, 2, 0, 2,
1300        2, 0, 2, 2, 0, 2, 2, 2,
1301        0, 2, 2, 2, 2, 0, 2, 2,
1302        2, 0, 2, 2, 2, 2, 0, 2,
1303        2, 2, 0, 2, 2, 2, 2, 0,
1304        2, 2, 2, 0, 2, 0, 0, 0,
1305        17, 0, 0, 2, 0, 2, 0, 2,
1306        0, 0, 2, 0, 0, 2, 0, 0,
1307        2, 0, 2, 2, 2, 2, 2, 2,
1308        2, 2, 2, 18, 6, 0, 6, 6,
1309        0, 6, 2, 0, 6, 2, 6, 0,
1310        6, 6, 6, 2, 0, 6, 2, 6,
1311        0, 6, 6, 6, 2, 0, 6, 2,
1312        6, 0, 6, 6, 6, 2, 0, 6,
1313        2, 6, 0, 6, 0, 0, 0, 19,
1314        0, 0, 2, 0, 2, 0, 2, 0,
1315        0, 2, 0, 0, 2, 0, 0, 2,
1316        0, 2, 2, 2, 2, 2, 2, 2,
1317        2, 2, 20, 21, 2, 2, 0, 0,
1318        0, 0, 2, 2, 2, 2, 2, 2,
1319        0, 2, 2, 0, 2, 2, 2, 0,
1320        2, 2, 2, 2, 0, 2, 2, 2,
1321        0, 2, 2, 2, 2, 0, 2, 2,
1322        2, 0, 2, 2, 2, 2, 0, 2,
1323        2, 2, 0, 2, 0, 0, 0, 22,
1324        0, 0, 2, 0, 2, 0, 2, 0,
1325        0, 2, 0, 0, 2, 0, 0, 2,
1326        0, 2, 2, 2, 2, 2, 2, 2,
1327        2, 2, 0, 0, 8, 2, 0, 0,
1328        2, 0, 2, 0, 0, 0, 0, 8,
1329        8, 0, 8, 8, 0, 0, 2, 0,
1330        0, 0, 2, 0, 0, 2, 0, 0,
1331        2, 0, 0, 2, 0, 2, 23, 2,
1332        0, 0, 0, 0, 0, 24, 0, 0
1333};
1334
1335static const char _indic_syllable_machine_to_state_actions[] = {
1336        0, 0, 0, 0, 0, 0, 0, 0,
1337        0, 0, 0, 0, 0, 0, 0, 0,
1338        0, 0, 0, 0, 0, 0, 0, 0,
1339        0, 0, 0, 0, 0, 0, 0, 0,
1340        0, 0, 0, 0, 0, 0, 0, 0,
1341        0, 0, 0, 0, 0, 0, 0, 0,
1342        0, 0, 0, 0, 0, 0, 0, 0,
1343        0, 0, 0, 0, 0, 0, 0, 0,
1344        0, 0, 0, 0, 0, 0, 0, 0,
1345        0, 0, 0, 0, 0, 0, 0, 0,
1346        0, 0, 0, 0, 0, 0, 0, 0,
1347        0, 0, 0, 0, 0, 0, 0, 0,
1348        0, 0, 0, 0, 0, 0, 0, 0,
1349        0, 0, 0, 0, 0, 0, 0, 0,
1350        0, 0, 0, 0, 0, 0, 0, 0,
1351        0, 0, 0, 0, 0, 0, 0, 0,
1352        0, 0, 0, 0, 0, 0, 0, 0,
1353        0, 0, 0, 0, 0, 0, 0, 0,
1354        0, 0, 0, 0, 0, 0, 0, 0,
1355        0, 0, 0, 0, 0, 0, 0, 0,
1356        0, 0, 0, 0, 0, 0, 0, 0,
1357        0, 0, 0, 0, 0, 0, 0, 0,
1358        0, 0, 10, 0, 0, 0, 0, 0,
1359        0, 0, 0, 0, 0, 0, 0, 0,
1360        0, 0, 0, 0, 0, 0, 0, 0,
1361        0, 0, 0, 0, 0, 0, 0, 0,
1362        0, 0, 0, 0, 0, 0, 0, 0,
1363        0, 0, 0, 0, 0, 0, 0, 0,
1364        0, 0, 0, 0, 0, 0, 0, 0,
1365        0, 0, 0, 0, 0, 0, 0, 0,
1366        0, 0, 0, 0, 0, 0, 0, 0,
1367        0, 0, 0, 0, 0, 0, 0, 0,
1368        0, 0, 0, 0, 0, 0, 0, 0,
1369        0, 0, 0, 0, 0, 0, 0, 0,
1370        0, 0, 0, 0, 0, 0, 0, 0,
1371        0, 0, 0, 0, 0, 0, 0, 0,
1372        0, 0, 0, 0, 0, 0, 0, 0,
1373        0, 0, 0, 0, 0, 0, 0, 0,
1374        0, 0, 0, 0, 0, 0, 0, 0,
1375        0, 0, 0, 0, 0, 0, 0, 0,
1376        0, 0, 0, 0, 0, 0, 0, 0,
1377        0, 0, 0, 0, 0, 0, 0, 0,
1378        0, 0, 0, 0, 0, 0, 0, 0,
1379        0, 0, 0, 0, 0, 0, 0, 0,
1380        0, 0, 0, 0, 0, 0, 0, 0,
1381        0, 0, 0, 0, 0, 0, 0, 0,
1382        0, 0, 0, 0, 0, 0, 0, 0,
1383        0, 0, 0, 0, 0, 0, 0, 0,
1384        0, 0, 0, 0, 0, 0, 0, 0,
1385        0, 0, 0, 0, 0, 0, 0, 0,
1386        0, 0, 0, 0, 0, 0, 0, 0,
1387        0, 0, 0, 0, 0, 0, 0, 0,
1388        0, 0, 0, 0, 0, 0, 0, 0,
1389        0, 0, 0, 0, 0, 0, 0, 0,
1390        0, 0, 0, 0, 0, 0, 0, 0,
1391        0, 0, 0, 0, 0, 0, 0, 0,
1392        0, 0, 0, 0, 0, 0, 0, 0,
1393        0, 0, 0, 0, 0, 0, 0, 0,
1394        0, 0, 0, 0, 0, 0, 0, 0,
1395        0, 0, 0, 0, 0, 0, 0, 0,
1396        0, 0, 0, 0, 0, 0, 0, 0,
1397        0, 0, 0, 0, 0, 0, 0, 0,
1398        0, 0, 0, 0, 0, 0, 0, 0,
1399        0, 0, 0, 0, 0, 0, 0, 0,
1400        0, 0, 0, 0, 0, 0, 0, 0,
1401        0, 0, 0, 0, 0, 0, 0, 0,
1402        0, 0, 0, 0, 0, 0, 0, 0,
1403        0, 0, 0, 0, 0, 0, 0
1404};
1405
1406static const char _indic_syllable_machine_from_state_actions[] = {
1407        0, 0, 0, 0, 0, 0, 0, 0,
1408        0, 0, 0, 0, 0, 0, 0, 0,
1409        0, 0, 0, 0, 0, 0, 0, 0,
1410        0, 0, 0, 0, 0, 0, 0, 0,
1411        0, 0, 0, 0, 0, 0, 0, 0,
1412        0, 0, 0, 0, 0, 0, 0, 0,
1413        0, 0, 0, 0, 0, 0, 0, 0,
1414        0, 0, 0, 0, 0, 0, 0, 0,
1415        0, 0, 0, 0, 0, 0, 0, 0,
1416        0, 0, 0, 0, 0, 0, 0, 0,
1417        0, 0, 0, 0, 0, 0, 0, 0,
1418        0, 0, 0, 0, 0, 0, 0, 0,
1419        0, 0, 0, 0, 0, 0, 0, 0,
1420        0, 0, 0, 0, 0, 0, 0, 0,
1421        0, 0, 0, 0, 0, 0, 0, 0,
1422        0, 0, 0, 0, 0, 0, 0, 0,
1423        0, 0, 0, 0, 0, 0, 0, 0,
1424        0, 0, 0, 0, 0, 0, 0, 0,
1425        0, 0, 0, 0, 0, 0, 0, 0,
1426        0, 0, 0, 0, 0, 0, 0, 0,
1427        0, 0, 0, 0, 0, 0, 0, 0,
1428        0, 0, 0, 0, 0, 0, 0, 0,
1429        0, 0, 11, 0, 0, 0, 0, 0,
1430        0, 0, 0, 0, 0, 0, 0, 0,
1431        0, 0, 0, 0, 0, 0, 0, 0,
1432        0, 0, 0, 0, 0, 0, 0, 0,
1433        0, 0, 0, 0, 0, 0, 0, 0,
1434        0, 0, 0, 0, 0, 0, 0, 0,
1435        0, 0, 0, 0, 0, 0, 0, 0,
1436        0, 0, 0, 0, 0, 0, 0, 0,
1437        0, 0, 0, 0, 0, 0, 0, 0,
1438        0, 0, 0, 0, 0, 0, 0, 0,
1439        0, 0, 0, 0, 0, 0, 0, 0,
1440        0, 0, 0, 0, 0, 0, 0, 0,
1441        0, 0, 0, 0, 0, 0, 0, 0,
1442        0, 0, 0, 0, 0, 0, 0, 0,
1443        0, 0, 0, 0, 0, 0, 0, 0,
1444        0, 0, 0, 0, 0, 0, 0, 0,
1445        0, 0, 0, 0, 0, 0, 0, 0,
1446        0, 0, 0, 0, 0, 0, 0, 0,
1447        0, 0, 0, 0, 0, 0, 0, 0,
1448        0, 0, 0, 0, 0, 0, 0, 0,
1449        0, 0, 0, 0, 0, 0, 0, 0,
1450        0, 0, 0, 0, 0, 0, 0, 0,
1451        0, 0, 0, 0, 0, 0, 0, 0,
1452        0, 0, 0, 0, 0, 0, 0, 0,
1453        0, 0, 0, 0, 0, 0, 0, 0,
1454        0, 0, 0, 0, 0, 0, 0, 0,
1455        0, 0, 0, 0, 0, 0, 0, 0,
1456        0, 0, 0, 0, 0, 0, 0, 0,
1457        0, 0, 0, 0, 0, 0, 0, 0,
1458        0, 0, 0, 0, 0, 0, 0, 0,
1459        0, 0, 0, 0, 0, 0, 0, 0,
1460        0, 0, 0, 0, 0, 0, 0, 0,
1461        0, 0, 0, 0, 0, 0, 0, 0,
1462        0, 0, 0, 0, 0, 0, 0, 0,
1463        0, 0, 0, 0, 0, 0, 0, 0,
1464        0, 0, 0, 0, 0, 0, 0, 0,
1465        0, 0, 0, 0, 0, 0, 0, 0,
1466        0, 0, 0, 0, 0, 0, 0, 0,
1467        0, 0, 0, 0, 0, 0, 0, 0,
1468        0, 0, 0, 0, 0, 0, 0, 0,
1469        0, 0, 0, 0, 0, 0, 0, 0,
1470        0, 0, 0, 0, 0, 0, 0, 0,
1471        0, 0, 0, 0, 0, 0, 0, 0,
1472        0, 0, 0, 0, 0, 0, 0, 0,
1473        0, 0, 0, 0, 0, 0, 0, 0,
1474        0, 0, 0, 0, 0, 0, 0
1475};
1476
1477static const short _indic_syllable_machine_eof_trans[] = {
1478        1, 1, 1, 1, 1, 1, 1, 1,
1479        1, 1, 1, 1, 1, 1, 1, 1,
1480        1, 1, 1, 1, 1, 1, 1, 1,
1481        1, 1, 1, 1, 1, 1, 1, 1,
1482        1, 1, 1, 1, 1, 40, 40, 40,
1483        40, 40, 40, 40, 40, 40, 40, 40,
1484        40, 40, 40, 40, 40, 40, 40, 40,
1485        40, 40, 40, 40, 40, 40, 40, 40,
1486        40, 40, 40, 40, 40, 40, 40, 40,
1487        40, 40, 79, 79, 79, 79, 86, 86,
1488        79, 79, 79, 79, 79, 79, 79, 79,
1489        79, 79, 79, 79, 79, 79, 79, 79,
1490        79, 79, 79, 79, 79, 79, 79, 79,
1491        79, 79, 79, 79, 79, 79, 118, 118,
1492        118, 118, 118, 118, 118, 118, 118, 118,
1493        118, 118, 118, 118, 118, 118, 118, 118,
1494        118, 118, 118, 118, 118, 118, 118, 118,
1495        118, 118, 118, 118, 118, 118, 118, 118,
1496        118, 118, 118, 79, 1, 1, 1, 1,
1497        1, 1, 1, 1, 1, 1, 1, 1,
1498        1, 1, 1, 1, 1, 1, 1, 1,
1499        1, 1, 1, 1, 1, 1, 1, 1,
1500        1, 186, 0, 204, 204, 204, 204, 204,
1501        204, 204, 204, 204, 204, 204, 204, 204,
1502        204, 204, 204, 204, 204, 204, 204, 204,
1503        204, 204, 204, 204, 204, 204, 204, 204,
1504        204, 204, 204, 204, 204, 204, 204, 204,
1505        204, 204, 204, 204, 204, 204, 204, 204,
1506        204, 204, 204, 204, 204, 204, 204, 204,
1507        204, 204, 204, 204, 204, 204, 204, 204,
1508        204, 204, 204, 204, 204, 204, 204, 204,
1509        204, 204, 204, 204, 204, 204, 204, 204,
1510        204, 204, 204, 284, 284, 284, 284, 284,
1511        284, 284, 284, 284, 284, 284, 284, 284,
1512        284, 284, 284, 284, 284, 284, 284, 284,
1513        284, 284, 284, 284, 284, 284, 284, 284,
1514        284, 284, 284, 284, 284, 284, 284, 284,
1515        284, 284, 284, 284, 284, 284, 284, 284,
1516        284, 284, 284, 284, 284, 284, 284, 284,
1517        284, 284, 284, 284, 284, 284, 284, 284,
1518        284, 284, 284, 284, 284, 284, 284, 284,
1519        284, 284, 284, 284, 284, 284, 284, 284,
1520        284, 284, 284, 364, 364, 364, 364, 364,
1521        364, 364, 364, 364, 364, 364, 364, 364,
1522        364, 364, 364, 364, 364, 364, 364, 364,
1523        364, 364, 364, 364, 364, 364, 364, 364,
1524        364, 364, 364, 364, 364, 364, 364, 364,
1525        364, 364, 364, 364, 364, 364, 364, 364,
1526        364, 364, 364, 364, 364, 364, 364, 364,
1527        364, 364, 364, 364, 364, 364, 364, 364,
1528        364, 364, 364, 364, 364, 364, 364, 364,
1529        364, 364, 364, 364, 364, 364, 364, 364,
1530        435, 364, 435, 436, 436, 436, 436, 436,
1531        436, 436, 436, 436, 436, 436, 436, 436,
1532        436, 436, 436, 436, 436, 436, 436, 436,
1533        436, 436, 436, 436, 436, 436, 436, 436,
1534        436, 436, 436, 436, 436, 436, 436, 436,
1535        436, 436, 436, 436, 436, 436, 436, 436,
1536        436, 436, 436, 436, 436, 436, 436, 436,
1537        436, 436, 436, 436, 436, 436, 436, 436,
1538        436, 436, 436, 436, 436, 436, 436, 436,
1539        436, 436, 436, 436, 436, 436, 436, 436,
1540        436, 436, 364, 204, 204, 204, 204, 204,
1541        204, 204, 204, 204, 204, 364, 204, 204,
1542        204, 204, 204, 204, 204, 204, 204, 204,
1543        204, 204, 204, 204, 204, 204, 204, 204,
1544        204, 204, 204, 204, 204, 364, 551, 551,
1545        551, 551, 551, 551, 551, 551, 551
1546};
1547
1548static const int indic_syllable_machine_start = 178;
1549static const int indic_syllable_machine_first_final = 178;
1550static const int indic_syllable_machine_error = -1;
1551
1552static const int indic_syllable_machine_en_main = 178;
1553
1554
1555#line 36 "hb-ot-shape-complex-indic-machine.rl"
1556
1557
1558
1559#line 97 "hb-ot-shape-complex-indic-machine.rl"
1560
1561
1562#define found_syllable(syllable_type) \
1563  HB_STMT_START { \
1564    if (0) fprintf (stderr, "syllable %d..%d %s\n", last, p+1, #syllable_type); \
1565    for (unsigned int i = last; i < p+1; i++) \
1566      info[i].syllable() = (syllable_serial << 4) | syllable_type; \
1567    last = p+1; \
1568    syllable_serial++; \
1569    if (unlikely (syllable_serial == 16)) syllable_serial = 1; \
1570  } HB_STMT_END
1571
1572static void
1573find_syllables (hb_buffer_t *buffer)
1574{
1575  unsigned int p, pe, eof, ts HB_UNUSED, te HB_UNUSED, act HB_UNUSED;
1576  int cs;
1577  hb_glyph_info_t *info = buffer->info;
1578
1579#line 1580 "hb-ot-shape-complex-indic-machine.hh"
1580        {
1581        cs = indic_syllable_machine_start;
1582        ts = 0;
1583        te = 0;
1584        act = 0;
1585        }
1586
1587#line 118 "hb-ot-shape-complex-indic-machine.rl"
1588
1589
1590  p = 0;
1591  pe = eof = buffer->len;
1592
1593  unsigned int last = 0;
1594  unsigned int syllable_serial = 1;
1595
1596#line 1597 "hb-ot-shape-complex-indic-machine.hh"
1597        {
1598        int _slen;
1599        int _trans;
1600        const unsigned char *_keys;
1601        const short *_inds;
1602        if ( p == pe )
1603                goto _test_eof;
1604_resume:
1605        switch ( _indic_syllable_machine_from_state_actions[cs] ) {
1606        case 11:
1607#line 1 "NONE"
1608        {ts = p;}
1609        break;
1610#line 1611 "hb-ot-shape-complex-indic-machine.hh"
1611        }
1612
1613        _keys = _indic_syllable_machine_trans_keys + (cs<<1);
1614        _inds = _indic_syllable_machine_indicies + _indic_syllable_machine_index_offsets[cs];
1615
1616        _slen = _indic_syllable_machine_key_spans[cs];
1617        _trans = _inds[ _slen > 0 && _keys[0] <=( info[p].indic_category()) &&
1618                ( info[p].indic_category()) <= _keys[1] ?
1619                ( info[p].indic_category()) - _keys[0] : _slen ];
1620
1621_eof_trans:
1622        cs = _indic_syllable_machine_trans_targs[_trans];
1623
1624        if ( _indic_syllable_machine_trans_actions[_trans] == 0 )
1625                goto _again;
1626
1627        switch ( _indic_syllable_machine_trans_actions[_trans] ) {
1628        case 2:
1629#line 1 "NONE"
1630        {te = p+1;}
1631        break;
1632        case 15:
1633#line 88 "hb-ot-shape-complex-indic-machine.rl"
1634        {te = p+1;{ found_syllable (consonant_syllable); }}
1635        break;
1636        case 17:
1637#line 89 "hb-ot-shape-complex-indic-machine.rl"
1638        {te = p+1;{ found_syllable (vowel_syllable); }}
1639        break;
1640        case 22:
1641#line 90 "hb-ot-shape-complex-indic-machine.rl"
1642        {te = p+1;{ found_syllable (standalone_cluster); }}
1643        break;
1644        case 24:
1645#line 91 "hb-ot-shape-complex-indic-machine.rl"
1646        {te = p+1;{ found_syllable (symbol_cluster); }}
1647        break;
1648        case 19:
1649#line 92 "hb-ot-shape-complex-indic-machine.rl"
1650        {te = p+1;{ found_syllable (broken_cluster); }}
1651        break;
1652        case 12:
1653#line 93 "hb-ot-shape-complex-indic-machine.rl"
1654        {te = p+1;{ found_syllable (non_indic_cluster); }}
1655        break;
1656        case 14:
1657#line 88 "hb-ot-shape-complex-indic-machine.rl"
1658        {te = p;p--;{ found_syllable (consonant_syllable); }}
1659        break;
1660        case 16:
1661#line 89 "hb-ot-shape-complex-indic-machine.rl"
1662        {te = p;p--;{ found_syllable (vowel_syllable); }}
1663        break;
1664        case 21:
1665#line 90 "hb-ot-shape-complex-indic-machine.rl"
1666        {te = p;p--;{ found_syllable (standalone_cluster); }}
1667        break;
1668        case 23:
1669#line 91 "hb-ot-shape-complex-indic-machine.rl"
1670        {te = p;p--;{ found_syllable (symbol_cluster); }}
1671        break;
1672        case 18:
1673#line 92 "hb-ot-shape-complex-indic-machine.rl"
1674        {te = p;p--;{ found_syllable (broken_cluster); }}
1675        break;
1676        case 20:
1677#line 93 "hb-ot-shape-complex-indic-machine.rl"
1678        {te = p;p--;{ found_syllable (non_indic_cluster); }}
1679        break;
1680        case 1:
1681#line 88 "hb-ot-shape-complex-indic-machine.rl"
1682        {{p = ((te))-1;}{ found_syllable (consonant_syllable); }}
1683        break;
1684        case 3:
1685#line 89 "hb-ot-shape-complex-indic-machine.rl"
1686        {{p = ((te))-1;}{ found_syllable (vowel_syllable); }}
1687        break;
1688        case 7:
1689#line 90 "hb-ot-shape-complex-indic-machine.rl"
1690        {{p = ((te))-1;}{ found_syllable (standalone_cluster); }}
1691        break;
1692        case 9:
1693#line 91 "hb-ot-shape-complex-indic-machine.rl"
1694        {{p = ((te))-1;}{ found_syllable (symbol_cluster); }}
1695        break;
1696        case 4:
1697#line 92 "hb-ot-shape-complex-indic-machine.rl"
1698        {{p = ((te))-1;}{ found_syllable (broken_cluster); }}
1699        break;
1700        case 5:
1701#line 1 "NONE"
1702        {       switch( act ) {
1703        case 1:
1704        {{p = ((te))-1;} found_syllable (consonant_syllable); }
1705        break;
1706        case 5:
1707        {{p = ((te))-1;} found_syllable (broken_cluster); }
1708        break;
1709        case 6:
1710        {{p = ((te))-1;} found_syllable (non_indic_cluster); }
1711        break;
1712        }
1713        }
1714        break;
1715        case 8:
1716#line 1 "NONE"
1717        {te = p+1;}
1718#line 88 "hb-ot-shape-complex-indic-machine.rl"
1719        {act = 1;}
1720        break;
1721        case 6:
1722#line 1 "NONE"
1723        {te = p+1;}
1724#line 92 "hb-ot-shape-complex-indic-machine.rl"
1725        {act = 5;}
1726        break;
1727        case 13:
1728#line 1 "NONE"
1729        {te = p+1;}
1730#line 93 "hb-ot-shape-complex-indic-machine.rl"
1731        {act = 6;}
1732        break;
1733#line 1734 "hb-ot-shape-complex-indic-machine.hh"
1734        }
1735
1736_again:
1737        switch ( _indic_syllable_machine_to_state_actions[cs] ) {
1738        case 10:
1739#line 1 "NONE"
1740        {ts = 0;}
1741        break;
1742#line 1743 "hb-ot-shape-complex-indic-machine.hh"
1743        }
1744
1745        if ( ++p != pe )
1746                goto _resume;
1747        _test_eof: {}
1748        if ( p == eof )
1749        {
1750        if ( _indic_syllable_machine_eof_trans[cs] > 0 ) {
1751                _trans = _indic_syllable_machine_eof_trans[cs] - 1;
1752                goto _eof_trans;
1753        }
1754        }
1755
1756        }
1757
1758#line 127 "hb-ot-shape-complex-indic-machine.rl"
1759
1760}
1761
1762#endif /* HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH */
1763