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 */