Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(432)

Side by Side Diff: third_party/harfbuzz/hb-ot-shape-complex-indic-machine.hh

Issue 1940393002: Start building Harfbuzz+Skia example (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: 2016-05-03 (Tuesday) 17:58:47 EDT Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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"
36 static 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
107 static 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
178 static 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
249 static 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
1189 static 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
1262 static 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
1335 static 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
1406 static 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
1477 static 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
1548 static const int indic_syllable_machine_start = 178;
1549 static const int indic_syllable_machine_first_final = 178;
1550 static const int indic_syllable_machine_error = -1;
1551
1552 static 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
1572 static void
1573 find_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 */
OLDNEW
« no previous file with comments | « third_party/harfbuzz/hb-buffer-deserialize-text.hh ('k') | third_party/harfbuzz/hb-ot-shape-complex-myanmar-machine.hh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698