• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2017 Google Inc.
3  *
4  * Use of this source code is governed by a BSD-style license that can be
5  * found in the LICENSE file.
6  */
7 /*****************************************************************************************
8  ******************** This file was generated by sksllex. Do not edit. *******************
9  *****************************************************************************************/
10 #include "src/sksl/SkSLLexer.h"
11 
12 namespace SkSL {
13 
14 using State = uint16_t;
15 static constexpr uint8_t kInvalidChar = 18;
16 static constexpr uint8_t kMappings[118] = {
17         1,  2,  3,  3,  1,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
18         3,  3,  3,  1,  4,  3,  5,  6,  7,  8,  3,  9,  10, 11, 12, 13, 14, 15, 16, 17,
19         18, 19, 20, 21, 22, 22, 22, 23, 23, 24, 25, 26, 27, 28, 29, 3,  30, 30, 31, 32,
20         33, 30, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 35, 36, 34, 37, 34, 34, 38,
21         34, 34, 39, 3,  40, 41, 42, 3,  43, 44, 45, 46, 47, 48, 49, 50, 51, 34, 52, 53,
22         54, 55, 56, 57, 34, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
23 };
24 using IndexEntry = int16_t;
25 struct FullEntry {
26     State data[71];
27 };
28 struct CompactEntry {
29     uint32_t values;
30     uint8_t data[18];
31 };
32 static constexpr FullEntry kFull[] = {
33         {
34                 0,   2,   3,   4,   5,   7,   9,   23,  25,  28,  29,  30,  32,  35,  36,
35                 39,  44,  50,  69,  69,  69,  69,  69,  69,  71,  72,  73,  77,  79,  83,
36                 84,  84,  84,  84,  84,  84,  84,  84,  84,  86,  87,  88,  84,  91,  104,
37                 114, 130, 150, 162, 178, 183, 191, 84,  215, 225, 232, 258, 263, 289, 301,
38                 355, 372, 388, 400, 84,  84,  84,  421, 422, 425, 426,
39         },
40         {
41                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0,  0,  51, 0,  59, 59, 59, 59, 59, 59, 60,
42                 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, 66, 67, 0,  0,  0,  0,  0,  0,  0,  0,  61,
43                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 66, 0,  0,  67, 0,  0,  0,  0,  0,  0,
44         },
45         {
46                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0,  0, 51, 0, 59, 59, 59, 59, 59, 59, 60,
47                 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, 65, 0, 0,  0, 0,  0,  0,  0,  0,  0,  61,
48                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 65, 0, 0,  0, 0,  0,  0,  0,  0,  0,
49         },
50         {
51                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0,  0, 51, 0, 60, 60, 60, 60, 60, 60, 60,
52                 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, 64, 0, 0,  0, 0,  0,  0,  0,  0,  0,  61,
53                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 64, 0, 0,  0, 0,  0,  0,  0,  0,  0,
54         },
55         {
56                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0,  0, 51, 0, 70, 70, 70, 70, 70, 70, 70,
57                 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, 66, 0, 0,  0, 0,  0,  0,  0,  0,  0,  61,
58                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 66, 0, 0,  0, 0,  0,  0,  0,  0,  0,
59         },
60         {
61                 0,  0,  0,   0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  85,
62                 85, 85, 85,  85, 85, 85, 0,  0,   0,  0,  0,  0,  85, 85, 85, 85, 85, 85,
63                 85, 85, 85,  0,  0,  0,  85, 115, 85, 85, 85, 85, 85, 85, 85, 85, 85, 118,
64                 85, 85, 121, 85, 85, 85, 85, 85,  85, 85, 85, 85, 85, 0,  0,  0,  0,
65         },
66         {
67                 0,  0,  0,   0,  0,  0,  0,  0,  0,   0,  0,  0,   0,  0,  0,  0,   0,  85,
68                 85, 85, 85,  85, 85, 85, 0,  0,  0,   0,  0,  0,   85, 85, 85, 85,  85, 85,
69                 85, 85, 85,  0,  0,  0,  85, 85, 85,  85, 85, 131, 85, 85, 85, 137, 85, 85,
70                 85, 85, 143, 85, 85, 85, 85, 85, 147, 85, 85, 85,  85, 0,  0,  0,   0,
71         },
72         {
73                 0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  85,
74                 85, 85,  85, 85, 85, 85, 0,  0,  0,  0,  0,   0,  85, 85, 85, 85, 85, 85,
75                 85, 85,  85, 0,  0,  0,  85, 85, 85, 85, 85,  85, 85, 85, 85, 85, 85, 151,
76                 85, 154, 85, 85, 85, 85, 85, 85, 85, 85, 156, 85, 85, 0,  0,  0,  0,
77         },
78         {
79                 0,  0,  0,   0,  0,  0,  0,  0,   0,   0,  0,  0,  0,  0,  0,  0,   0,  85,
80                 85, 85, 85,  85, 85, 85, 0,  0,   0,   0,  0,  0,  85, 85, 85, 85,  85, 85,
81                 85, 85, 85,  0,  0,  0,  85, 163, 85,  85, 85, 85, 85, 85, 85, 167, 85, 170,
82                 85, 85, 173, 85, 85, 85, 85, 85,  175, 85, 85, 85, 85, 0,  0,  0,   0,
83         },
84         {
85                 0,  0,  0,   0,   0,  0,  0,   0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  85,
86                 85, 85, 85,  85,  85, 85, 0,   0,  0,   0,  0,  0,  85, 85, 85, 85, 85, 85,
87                 85, 85, 85,  0,   0,  0,  85,  85, 85,  85, 85, 85, 85, 85, 85, 85, 85, 194,
88                 85, 85, 198, 201, 85, 85, 203, 85, 209, 85, 85, 85, 85, 0,  0,  0,  0,
89         },
90         {
91                 0,  0,  0,  0,  0,   0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,   0,  85,
92                 85, 85, 85, 85, 85,  85, 0,  0,   0,  0,  0,  0,  85, 85, 85, 85,  85, 85,
93                 85, 85, 85, 0,  0,   0,  85, 264, 85, 85, 85, 85, 85, 85, 85, 268, 85, 85,
94                 85, 85, 85, 85, 278, 85, 85, 285, 85, 85, 85, 85, 85, 0,  0,  0,   0,
95         },
96         {
97                 0,  0,  0,  0,  0,  0,  0,   0,   0,  0,   0,  0,  0,  0,  0,  0,   0,  85,
98                 85, 85, 85, 85, 85, 85, 0,   0,   0,  0,   0,  0,  85, 85, 85, 85,  85, 85,
99                 85, 85, 85, 0,  0,  0,  85,  302, 85, 85,  85, 85, 85, 85, 85, 334, 85, 85,
100                 85, 85, 85, 85, 85, 85, 338, 346, 85, 350, 85, 85, 85, 0,  0,  0,   0,
101         },
102         {
103                 0,   0,   0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  85,
104                 308, 315, 326, 85, 85, 85, 0,  0,  0,  0,  0,  0,  85, 331, 85, 85, 85, 85,
105                 85,  85,  85,  0,  0,  0,  85, 85, 85, 85, 85, 85, 85, 85,  85, 85, 85, 85,
106                 85,  85,  85,  85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 0,   0,  0,  0,
107         },
108         {
109                 0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,   0,  0,  0,   0,  0,  85,
110                 85, 85, 85, 85, 85,  85, 0,  0,  0,  0,  0,  0,   85, 85, 85,  85, 85, 85,
111                 85, 85, 85, 0,  0,   0,  85, 85, 85, 85, 85, 356, 85, 85, 362, 85, 85, 85,
112                 85, 85, 85, 85, 364, 85, 85, 85, 85, 85, 85, 367, 85, 0,  0,   0,  0,
113         },
114         {
115                 0,  0,  0,   0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  85,
116                 85, 85, 85,  85, 85,  85, 0,  0,  0,  0,  0,  0,  85, 85, 85,  85, 85, 85,
117                 85, 85, 85,  0,  0,   0,  85, 85, 85, 85, 85, 85, 85, 85, 401, 85, 85, 85,
118                 85, 85, 405, 85, 413, 85, 85, 85, 85, 85, 85, 85, 85, 0,  0,   0,  0,
119         },
120 };
121 static constexpr CompactEntry kCompact[] = {
122         {0,
123          {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63}},
124         {3,
125          {195, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63}},
126         {6,
127          {255, 255, 255, 255, 255, 255, 63, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63}},
128         {8, {255, 255, 255, 255, 255, 255, 255, 15, 0, 192, 15, 0, 0, 0, 0, 0, 192, 63}},
129         {8, {255, 255, 255, 255, 3, 0, 255, 15, 0, 192, 15, 0, 0, 0, 0, 0, 192, 63}},
130         {19 | (11 << 9) | (10 << 18),
131          {255, 255, 255, 255, 171, 170, 255, 175, 170, 234, 175, 106, 170, 170, 162, 170, 234, 63}},
132         {10, {255, 255, 255, 255, 3, 0, 255, 15, 0, 192, 15, 0, 0, 0, 0, 0, 192, 63}},
133         {14 | (12 << 9) | (10 << 18),
134          {255, 255, 255, 255, 171, 170, 255, 175, 170, 234, 175, 170, 170, 170, 106, 170, 232, 63}},
135         {13 | (10 << 9),
136          {255, 255, 255, 255, 87, 84, 255, 95, 85, 213, 95, 85, 85, 85, 85, 85, 213, 63}},
137         {15 | (10 << 9),
138          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 81, 85, 213, 63}},
139         {16 | (10 << 9),
140          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 84, 85, 213, 63}},
141         {17 | (10 << 9),
142          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 69, 85, 213, 63}},
143         {18 | (10 << 9),
144          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 84, 213, 63}},
145         {20 | (10 << 9),
146          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 81, 213, 63}},
147         {21 | (10 << 9),
148          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 69, 85, 213, 63}},
149         {22 | (10 << 9),
150          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
151         {24,
152          {255, 255, 255, 255, 255, 255, 63, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63}},
153         {27 | (26 << 9),
154          {255, 255, 253, 255, 255, 255, 63, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63}},
155         {31,
156          {255, 255, 255, 255, 255, 255, 63, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63}},
157         {34 | (33 << 9),
158          {255, 255, 255, 253, 255, 255, 63, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63}},
159         {38 | (37 << 9),
160          {255, 255, 255, 223, 255, 255, 63, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63}},
161         {40, {255, 255, 255, 255, 3, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63}},
162         {41 | (40 << 9),
163          {255, 255, 255, 255, 87, 85, 255, 255, 243, 255, 255, 63, 255, 255, 255, 255, 255, 63}},
164         {43 | (42 << 9),
165          {255, 255, 255, 221, 3, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63}},
166         {43, {255, 255, 255, 255, 3, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63}},
167         {49 | (48 << 9) | (45 << 18),
168          {255, 255, 191, 255, 253, 255, 63, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63}},
169         {46 | (45 << 9), {87, 85, 21, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 21}},
170         {47 | (45 << 9), {87, 85, 85, 85, 84, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 21}},
171         {48, {51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}},
172         {56 | (52 << 9),
173          {255, 255, 255, 255, 87, 85, 255, 255, 243, 255, 255, 63, 255, 255, 255, 255, 255, 63}},
174         {53 | (52 << 9),
175          {255, 255, 255, 255, 87, 85, 255, 255, 243, 255, 255, 63, 255, 255, 255, 255, 255, 63}},
176         {55 | (54 << 9),
177          {255, 255, 255, 221, 3, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63}},
178         {55, {255, 255, 255, 255, 3, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63}},
179         {58 | (57 << 9),
180          {255, 255, 255, 221, 3, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63}},
181         {58, {255, 255, 255, 255, 3, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63}},
182         {63 | (62 << 9),
183          {255, 255, 255, 221, 3, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63}},
184         {63, {255, 255, 255, 255, 3, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63}},
185         {68, {255, 255, 255, 255, 3, 0, 255, 15, 240, 255, 63, 0, 252, 255, 255, 255, 255, 63}},
186         {68 | (66 << 9),
187          {255, 255, 255, 255, 3, 0, 255, 15, 240, 247, 63, 0, 252, 255, 255, 247, 255, 63}},
188         {76 | (74 << 9),
189          {255, 255, 255, 255, 255, 255, 31, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63}},
190         {75,
191          {255, 255, 255, 255, 255, 255, 63, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63}},
192         {78,
193          {255, 255, 255, 255, 255, 255, 63, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63}},
194         {81 | (80 << 9),
195          {255, 255, 255, 255, 255, 255, 127, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63}},
196         {82,
197          {255, 255, 255, 255, 255, 255, 63, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63}},
198         {85, {255, 255, 255, 255, 3, 0, 255, 15, 0, 192, 15, 0, 0, 0, 0, 0, 192, 63}},
199         {90 | (89 << 9),
200          {255, 255, 255, 255, 255, 255, 127, 255, 255, 255, 243, 255, 255, 255, 255, 255, 255, 63}},
201         {94 | (92 << 9) | (85 << 18),
202          {255, 255, 255, 255, 171, 170, 255, 175, 170, 234, 175, 170, 170, 170, 106, 168, 234, 63}},
203         {93 | (85 << 9),
204          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 69, 85, 85, 213, 63}},
205         {98 | (95 << 9) | (85 << 18),
206          {255, 255, 255, 255, 171, 170, 255, 175, 170, 234, 175, 170, 170, 170, 169, 168, 234, 63}},
207         {96 | (85 << 9),
208          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 69, 85, 85, 213, 63}},
209         {97 | (85 << 9),
210          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 21, 85, 85, 85, 213, 63}},
211         {93 | (85 << 9),
212          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 81, 85, 85, 85, 85, 213, 63}},
213         {99 | (85 << 9),
214          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 69, 85, 213, 63}},
215         {100 | (85 << 9),
216          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 21, 85, 85, 85, 213, 63}},
217         {101 | (85 << 9),
218          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 84, 85, 85, 85, 85, 213, 63}},
219         {102 | (85 << 9),
220          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 81, 213, 63}},
221         {103 | (85 << 9),
222          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 84, 213, 63}},
223         {93 | (85 << 9),
224          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
225         {109 | (105 << 9) | (85 << 18),
226          {255, 255, 255, 255, 171, 170, 255, 175, 170, 234, 175, 170, 170, 170, 154, 162, 234, 63}},
227         {106 | (85 << 9),
228          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
229         {107 | (85 << 9),
230          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 31, 85, 85, 85, 85, 85, 213, 63}},
231         {108 | (85 << 9),
232          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 84, 85, 85, 213, 63}},
233         {110 | (85 << 9),
234          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 84, 85, 85, 85, 213, 63}},
235         {111 | (85 << 9),
236          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 84, 85, 85, 85, 213, 63}},
237         {112 | (85 << 9),
238          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
239         {113 | (85 << 9),
240          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 69, 85, 213, 63}},
241         {116 | (85 << 9),
242          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 21, 85, 213, 63}},
243         {117 | (93 << 9) | (85 << 18),
244          {255, 255, 255, 255, 171, 170, 255, 175, 170, 234, 175, 42, 170, 170, 170, 169, 234, 63}},
245         {119 | (85 << 9),
246          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 31, 85, 85, 85, 85, 85, 213, 63}},
247         {120 | (85 << 9),
248          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 21, 85, 213, 63}},
249         {93 | (85 << 9),
250          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 21, 85, 213, 63}},
251         {122 | (85 << 9),
252          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 21, 85, 85, 213, 63}},
253         {125 | (123 << 9) | (85 << 18),
254          {255, 255, 255, 255, 171, 170, 255, 175, 170, 234, 175, 170, 170, 170, 106, 168, 234, 63}},
255         {124 | (85 << 9),
256          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 84, 213, 63}},
257         {126 | (85 << 9),
258          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 21, 85, 85, 85, 213, 63}},
259         {127 | (85 << 9),
260          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 21, 85, 85, 213, 63}},
261         {128 | (85 << 9),
262          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 81, 213, 63}},
263         {129 | (85 << 9),
264          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
265         {132 | (85 << 9),
266          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 84, 85, 85, 85, 213, 63}},
267         {133 | (85 << 9),
268          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 31, 85, 85, 85, 85, 85, 213, 63}},
269         {134 | (85 << 9),
270          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 81, 213, 63}},
271         {135 | (85 << 9),
272          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 81, 85, 85, 213, 63}},
273         {136 | (85 << 9),
274          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 84, 213, 63}},
275         {138 | (85 << 9),
276          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 21, 85, 213, 63}},
277         {139 | (85 << 9),
278          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 81, 85, 85, 85, 85, 213, 63}},
279         {140 | (85 << 9),
280          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 31, 85, 85, 85, 85, 85, 213, 63}},
281         {141 | (85 << 9),
282          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 69, 85, 213, 63}},
283         {142 | (85 << 9),
284          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 69, 85, 85, 85, 85, 213, 63}},
285         {144 | (85 << 9),
286          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 81, 213, 63}},
287         {145 | (85 << 9),
288          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 84, 85, 85, 85, 85, 213, 63}},
289         {146 | (85 << 9),
290          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 81, 85, 85, 213, 63}},
291         {148 | (85 << 9),
292          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
293         {149 | (85 << 9),
294          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 81, 85, 85, 85, 85, 213, 63}},
295         {93 | (85 << 9),
296          {255, 255, 255, 255, 23, 80, 255, 95, 85, 213, 95, 85, 85, 85, 85, 85, 213, 63}},
297         {152 | (85 << 9),
298          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 21, 85, 213, 63}},
299         {153 | (85 << 9),
300          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
301         {155 | (85 << 9),
302          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 81, 213, 63}},
303         {157 | (85 << 9),
304          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 84, 213, 63}},
305         {158 | (85 << 9),
306          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
307         {159 | (85 << 9),
308          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 69, 85, 213, 63}},
309         {160 | (85 << 9),
310          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 21, 85, 85, 213, 63}},
311         {161 | (85 << 9),
312          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 31, 85, 85, 85, 85, 85, 213, 63}},
313         {93 | (85 << 9),
314          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 81, 85, 85, 213, 63}},
315         {164 | (85 << 9),
316          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 81, 85, 85, 213, 63}},
317         {165 | (85 << 9),
318          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 21, 85, 213, 63}},
319         {166 | (85 << 9),
320          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
321         {168 | (85 << 9),
322          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 85, 212, 63}},
323         {169 | (85 << 9),
324          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
325         {93 | (85 << 9),
326          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 69, 85, 85, 85, 85, 213, 63}},
327         {171 | (85 << 9),
328          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 31, 85, 85, 85, 85, 85, 213, 63}},
329         {172 | (85 << 9),
330          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 84, 213, 63}},
331         {174 | (85 << 9),
332          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 69, 85, 213, 63}},
333         {176 | (85 << 9),
334          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
335         {177 | (85 << 9),
336          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 81, 85, 85, 85, 85, 213, 63}},
337         {181 | (179 << 9) | (85 << 18),
338          {255, 255, 255, 255, 171, 170, 255, 175, 170, 234, 175, 170, 170, 166, 168, 170, 234, 63}},
339         {180 | (85 << 9),
340          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 79, 85, 85, 85, 85, 85, 213, 63}},
341         {180, {255, 255, 255, 255, 3, 0, 255, 15, 0, 192, 15, 0, 0, 0, 0, 0, 192, 63}},
342         {182 | (85 << 9),
343          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 84, 213, 63}},
344         {93 | (85 << 9),
345          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 84, 85, 213, 63}},
346         {188 | (184 << 9) | (85 << 18),
347          {255, 255, 255, 255, 171, 170, 255, 175, 170, 234, 175, 170, 106, 170, 170, 138, 234, 63}},
348         {185 | (85 << 9),
349          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 81, 85, 85, 85, 213, 63}},
350         {186 | (85 << 9),
351          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 69, 85, 85, 85, 213, 63}},
352         {187 | (85 << 9),
353          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 81, 85, 213, 63}},
354         {189 | (85 << 9),
355          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
356         {190 | (85 << 9),
357          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 81, 85, 85, 85, 85, 213, 63}},
358         {193 | (192 << 9) | (85 << 18),
359          {255, 255, 255, 255, 171, 170, 255, 175, 170, 234, 175, 170, 169, 42, 170, 170, 234, 63}},
360         {195 | (85 << 9),
361          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 21, 85, 85, 85, 213, 63}},
362         {196 | (85 << 9),
363          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 21, 85, 85, 213, 63}},
364         {197 | (85 << 9),
365          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
366         {199 | (85 << 9),
367          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 81, 213, 63}},
368         {200 | (85 << 9),
369          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 84, 213, 63}},
370         {202 | (85 << 9),
371          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 81, 213, 63}},
372         {93 | (85 << 9),
373          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 84, 213, 63}},
374         {204 | (85 << 9),
375          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
376         {205 | (85 << 9),
377          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 69, 85, 213, 63}},
378         {206 | (85 << 9),
379          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 84, 85, 85, 85, 213, 63}},
380         {207 | (85 << 9),
381          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 31, 85, 85, 85, 85, 85, 213, 63}},
382         {208 | (85 << 9),
383          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 81, 85, 85, 85, 85, 213, 63}},
384         {210 | (85 << 9),
385          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 31, 85, 85, 85, 85, 85, 213, 63}},
386         {211 | (85 << 9),
387          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 69, 85, 213, 63}},
388         {212 | (85 << 9),
389          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 21, 85, 85, 85, 213, 63}},
390         {213 | (85 << 9),
391          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 31, 85, 85, 85, 85, 85, 213, 63}},
392         {214 | (85 << 9),
393          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 21, 85, 85, 213, 63}},
394         {221 | (216 << 9) | (85 << 18),
395          {255, 255, 255, 255, 171, 170, 255, 175, 170, 234, 111, 170, 170, 170, 168, 170, 234, 63}},
396         {217 | (85 << 9),
397          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 85, 209, 63}},
398         {218 | (85 << 9),
399          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 84, 85, 213, 63}},
400         {219 | (85 << 9),
401          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 81, 213, 63}},
402         {220 | (85 << 9),
403          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 84, 213, 63}},
404         {223 | (222 << 9) | (85 << 18),
405          {255, 255, 255, 255, 171, 170, 255, 175, 170, 234, 175, 170, 170, 106, 170, 42, 234, 63}},
406         {93 | (85 << 9),
407          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 81, 85, 85, 85, 213, 63}},
408         {224 | (85 << 9),
409          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 81, 85, 213, 63}},
410         {226 | (85 << 9),
411          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
412         {227 | (85 << 9),
413          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 69, 85, 85, 85, 85, 213, 63}},
414         {228 | (85 << 9),
415          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 21, 85, 85, 85, 213, 63}},
416         {229 | (85 << 9),
417          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 81, 213, 63}},
418         {230 | (85 << 9),
419          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 69, 85, 85, 213, 63}},
420         {231 | (85 << 9),
421          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 81, 85, 213, 63}},
422         {240 | (233 << 9) | (85 << 18),
423          {255, 255, 255, 255, 171, 170, 255, 175, 170, 234, 111, 170, 170, 170, 168, 170, 234, 63}},
424         {234 | (85 << 9),
425          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 69, 85, 85, 213, 63}},
426         {235 | (85 << 9),
427          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
428         {236 | (85 << 9),
429          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 21, 85, 213, 63}},
430         {237 | (85 << 9),
431          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 81, 85, 213, 63}},
432         {238 | (85 << 9),
433          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 31, 85, 85, 85, 85, 85, 213, 63}},
434         {239 | (85 << 9),
435          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 81, 85, 85, 85, 85, 213, 63}},
436         {247 | (241 << 9) | (85 << 18),
437          {255, 255, 255, 255, 171, 170, 255, 175, 170, 234, 175, 170, 106, 170, 162, 170, 234, 63}},
438         {242 | (85 << 9),
439          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 21, 85, 85, 213, 63}},
440         {243 | (85 << 9),
441          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 81, 85, 85, 213, 63}},
442         {244 | (85 << 9),
443          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 21, 85, 85, 85, 213, 63}},
444         {245 | (85 << 9),
445          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 21, 85, 85, 213, 63}},
446         {246 | (85 << 9),
447          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
448         {248 | (85 << 9),
449          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
450         {249 | (85 << 9),
451          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 69, 85, 213, 63}},
452         {250 | (85 << 9),
453          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 21, 85, 213, 63}},
454         {251 | (85 << 9),
455          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 81, 85, 213, 63}},
456         {252 | (85 << 9),
457          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
458         {253 | (85 << 9),
459          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 81, 85, 85, 85, 85, 213, 63}},
460         {254 | (85 << 9),
461          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 84, 213, 63}},
462         {255 | (85 << 9),
463          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 21, 85, 85, 85, 213, 63}},
464         {256 | (85 << 9),
465          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 69, 213, 63}},
466         {257 | (85 << 9),
467          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
468         {259 | (85 << 9),
469          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 81, 213, 63}},
470         {260 | (85 << 9),
471          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 84, 213, 63}},
472         {261 | (85 << 9),
473          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 81, 85, 213, 63}},
474         {262 | (85 << 9),
475          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 81, 213, 63}},
476         {265 | (85 << 9),
477          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 81, 85, 85, 85, 85, 213, 63}},
478         {266 | (85 << 9),
479          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 84, 85, 85, 213, 63}},
480         {267 | (85 << 9),
481          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
482         {269 | (85 << 9),
483          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 85, 212, 63}},
484         {270 | (85 << 9),
485          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
486         {271 | (85 << 9),
487          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 81, 85, 85, 213, 63}},
488         {272 | (85 << 9),
489          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 79, 85, 85, 85, 85, 85, 213, 63}},
490         {273 | (85 << 9),
491          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 81, 85, 85, 213, 63}},
492         {274 | (85 << 9),
493          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 84, 85, 213, 63}},
494         {275 | (85 << 9),
495          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 81, 85, 85, 85, 85, 213, 63}},
496         {276 | (85 << 9),
497          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 31, 85, 85, 85, 85, 85, 213, 63}},
498         {277 | (85 << 9),
499          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 81, 85, 85, 213, 63}},
500         {279 | (85 << 9),
501          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
502         {280 | (85 << 9),
503          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 81, 85, 85, 85, 85, 213, 63}},
504         {281 | (85 << 9),
505          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 21, 85, 85, 85, 213, 63}},
506         {282 | (85 << 9),
507          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 21, 85, 213, 63}},
508         {283 | (85 << 9),
509          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 21, 85, 85, 85, 213, 63}},
510         {284 | (85 << 9),
511          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 84, 85, 213, 63}},
512         {93 | (85 << 9),
513          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 21, 85, 85, 213, 63}},
514         {286 | (85 << 9),
515          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 84, 85, 85, 85, 85, 213, 63}},
516         {287 | (85 << 9),
517          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 81, 85, 85, 213, 63}},
518         {288 | (85 << 9),
519          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 21, 85, 85, 85, 213, 63}},
520         {290 | (85 << 9),
521          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
522         {297 | (291 << 9) | (85 << 18),
523          {255, 255, 255, 255, 171, 170, 255, 175, 170, 234, 111, 170, 170, 170, 170, 168, 234, 63}},
524         {292 | (85 << 9),
525          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 69, 85, 85, 85, 85, 213, 63}},
526         {293 | (85 << 9),
527          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 84, 85, 213, 63}},
528         {294 | (85 << 9),
529          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 21, 85, 85, 213, 63}},
530         {295 | (85 << 9),
531          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 81, 85, 85, 213, 63}},
532         {296 | (85 << 9),
533          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 85, 209, 63}},
534         {298 | (85 << 9),
535          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 81, 213, 63}},
536         {299 | (85 << 9),
537          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 69, 85, 213, 63}},
538         {300 | (85 << 9),
539          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 21, 85, 85, 213, 63}},
540         {303 | (85 << 9),
541          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 69, 85, 85, 213, 63}},
542         {304 | (85 << 9),
543          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 81, 85, 213, 63}},
544         {305 | (85 << 9),
545          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 81, 85, 85, 213, 63}},
546         {306 | (85 << 9),
547          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
548         {307 | (85 << 9),
549          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 69, 85, 213, 63}},
550         {309 | (85 << 9),
551          {255, 255, 255, 255, 87, 85, 255, 95, 84, 213, 95, 85, 85, 85, 85, 85, 213, 63}},
552         {310 | (85 << 9),
553          {255, 255, 255, 255, 87, 85, 255, 95, 85, 212, 95, 85, 85, 85, 85, 85, 213, 63}},
554         {311 | (85 << 9),
555          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 69, 85, 85, 85, 213, 63}},
556         {312 | (85 << 9),
557          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 31, 85, 85, 85, 85, 85, 213, 63}},
558         {313 | (85 << 9),
559          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 69, 85, 85, 85, 85, 213, 63}},
560         {314 | (85 << 9),
561          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 84, 85, 213, 63}},
562         {93 | (85 << 9),
563          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 21, 213, 63}},
564         {316 | (85 << 9),
565          {255, 255, 255, 255, 87, 85, 255, 95, 84, 213, 95, 85, 85, 85, 85, 85, 213, 63}},
566         {317 | (310 << 9) | (85 << 18),
567          {255, 255, 255, 255, 171, 170, 255, 175, 42, 233, 175, 170, 170, 170, 170, 170, 234, 63}},
568         {318 | (85 << 9),
569          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
570         {319 | (85 << 9),
571          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 81, 85, 85, 85, 85, 213, 63}},
572         {320 | (85 << 9),
573          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 84, 213, 63}},
574         {321 | (85 << 9),
575          {255, 255, 255, 255, 87, 85, 255, 95, 85, 212, 95, 85, 85, 85, 85, 85, 213, 63}},
576         {322 | (85 << 9),
577          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 69, 85, 85, 85, 213, 63}},
578         {323 | (85 << 9),
579          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 31, 85, 85, 85, 85, 85, 213, 63}},
580         {324 | (85 << 9),
581          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 69, 85, 85, 85, 85, 213, 63}},
582         {325 | (85 << 9),
583          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 84, 85, 213, 63}},
584         {327 | (85 << 9),
585          {255, 255, 255, 255, 87, 85, 255, 95, 84, 213, 95, 85, 85, 85, 85, 85, 213, 63}},
586         {328 | (85 << 9),
587          {255, 255, 255, 255, 87, 85, 255, 95, 21, 213, 95, 85, 85, 85, 85, 85, 213, 63}},
588         {329 | (85 << 9),
589          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
590         {330 | (85 << 9),
591          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 81, 85, 85, 85, 85, 213, 63}},
592         {332 | (85 << 9),
593          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 81, 213, 63}},
594         {333 | (85 << 9),
595          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 84, 85, 85, 85, 85, 213, 63}},
596         {335 | (85 << 9),
597          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 85, 197, 63}},
598         {336 | (85 << 9),
599          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
600         {337 | (85 << 9),
601          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 84, 85, 213, 63}},
602         {93 | (85 << 9),
603          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 84, 85, 85, 85, 213, 63}},
604         {342 | (339 << 9) | (85 << 18),
605          {255, 255, 255, 255, 171, 170, 255, 175, 170, 234, 111, 170, 170, 170, 138, 170, 234, 63}},
606         {340 | (85 << 9),
607          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 84, 213, 63}},
608         {341 | (85 << 9),
609          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 21, 85, 85, 85, 213, 63}},
610         {343 | (85 << 9),
611          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 81, 213, 63}},
612         {344 | (85 << 9),
613          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 81, 85, 85, 85, 85, 213, 63}},
614         {345 | (85 << 9),
615          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 84, 213, 63}},
616         {347 | (85 << 9),
617          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 81, 85, 213, 63}},
618         {348 | (85 << 9),
619          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
620         {349 | (85 << 9),
621          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 69, 85, 213, 63}},
622         {93 | (85 << 9),
623          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 81, 85, 213, 63}},
624         {351 | (85 << 9),
625          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 21, 85, 85, 85, 213, 63}},
626         {352 | (85 << 9),
627          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 84, 213, 63}},
628         {353 | (85 << 9),
629          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 81, 85, 85, 85, 85, 213, 63}},
630         {354 | (85 << 9),
631          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 69, 85, 85, 85, 213, 63}},
632         {357 | (85 << 9),
633          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 69, 85, 85, 213, 63}},
634         {358 | (85 << 9),
635          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 81, 85, 213, 63}},
636         {359 | (85 << 9),
637          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 81, 85, 85, 213, 63}},
638         {360 | (85 << 9),
639          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 31, 85, 85, 85, 85, 85, 213, 63}},
640         {361 | (85 << 9),
641          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 84, 213, 63}},
642         {363 | (85 << 9),
643          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 21, 85, 85, 85, 213, 63}},
644         {365 | (85 << 9),
645          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 81, 213, 63}},
646         {366 | (85 << 9),
647          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
648         {368 | (85 << 9),
649          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 81, 85, 213, 63}},
650         {369 | (85 << 9),
651          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
652         {370 | (85 << 9),
653          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 69, 85, 85, 85, 85, 213, 63}},
654         {371 | (85 << 9),
655          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
656         {385 | (373 << 9) | (85 << 18),
657          {255, 255, 255, 255, 171, 170, 255, 175, 170, 234, 175, 170, 170, 106, 42, 170, 234, 63}},
658         {380 | (374 << 9) | (85 << 18),
659          {255, 255, 255, 255, 171, 170, 255, 175, 170, 234, 175, 170, 106, 170, 42, 170, 234, 63}},
660         {379 | (375 << 9) | (85 << 18),
661          {255, 255, 255, 255, 171, 170, 255, 175, 170, 234, 175, 170, 169, 170, 168, 170, 234, 63}},
662         {376 | (85 << 9),
663          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 84, 85, 213, 63}},
664         {377 | (85 << 9),
665          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 69, 85, 213, 63}},
666         {378 | (85 << 9),
667          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 69, 85, 85, 213, 63}},
668         {381 | (85 << 9),
669          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 21, 85, 85, 85, 213, 63}},
670         {382 | (85 << 9),
671          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 81, 85, 85, 85, 213, 63}},
672         {383 | (85 << 9),
673          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 21, 85, 85, 213, 63}},
674         {384 | (85 << 9),
675          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
676         {386 | (85 << 9),
677          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 21, 85, 85, 85, 213, 63}},
678         {387 | (85 << 9),
679          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 21, 85, 85, 213, 63}},
680         {394 | (389 << 9) | (85 << 18),
681          {255, 255, 255, 255, 171, 170, 255, 175, 170, 234, 111, 170, 170, 170, 168, 170, 234, 63}},
682         {390 | (85 << 9),
683          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 69, 85, 213, 63}},
684         {391 | (85 << 9),
685          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 85, 209, 63}},
686         {392 | (85 << 9),
687          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 21, 85, 85, 85, 213, 63}},
688         {393 | (85 << 9),
689          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 21, 85, 85, 213, 63}},
690         {395 | (85 << 9),
691          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 81, 85, 85, 213, 63}},
692         {396 | (85 << 9),
693          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 31, 85, 85, 85, 85, 85, 213, 63}},
694         {397 | (85 << 9),
695          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 84, 213, 63}},
696         {398 | (85 << 9),
697          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 21, 85, 85, 85, 213, 63}},
698         {399 | (85 << 9),
699          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 81, 85, 85, 213, 63}},
700         {402 | (85 << 9),
701          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 21, 85, 85, 85, 213, 63}},
702         {403 | (85 << 9),
703          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 81, 85, 85, 213, 63}},
704         {404 | (85 << 9),
705          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
706         {406 | (85 << 9),
707          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 69, 85, 213, 63}},
708         {407 | (85 << 9),
709          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 84, 85, 85, 213, 63}},
710         {408 | (85 << 9),
711          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 81, 85, 85, 85, 213, 63}},
712         {409 | (85 << 9),
713          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 69, 85, 213, 63}},
714         {410 | (85 << 9),
715          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 84, 85, 213, 63}},
716         {411 | (85 << 9),
717          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 81, 213, 63}},
718         {412 | (85 << 9),
719          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 81, 85, 213, 63}},
720         {414 | (85 << 9),
721          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 21, 85, 85, 85, 213, 63}},
722         {415 | (85 << 9),
723          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 84, 213, 63}},
724         {416 | (85 << 9),
725          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 21, 85, 85, 85, 85, 213, 63}},
726         {417 | (85 << 9),
727          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 84, 85, 213, 63}},
728         {418 | (85 << 9),
729          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 21, 85, 85, 213, 63}},
730         {419 | (85 << 9),
731          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 81, 85, 85, 213, 63}},
732         {420 | (85 << 9),
733          {255, 255, 255, 255, 87, 85, 255, 95, 85, 213, 95, 85, 85, 85, 85, 85, 209, 63}},
734         {424 | (423 << 9),
735          {255, 255, 255, 255, 255, 255, 127, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 60}},
736 };
737 static constexpr IndexEntry kIndices[] = {
738         0,   -1,  1,   1,   0,   2,   0,   3,   4,   5,   6,   7,   8,   6,   9,   10,  11,  12,
739         6,   13,  14,  15,  6,   16,  0,   17,  0,   0,   0,   0,   18,  0,   19,  0,   0,   0,
740         20,  0,   0,   21,  22,  23,  24,  24,  25,  26,  27,  0,   28,  0,   -2,  29,  30,  31,
741         32,  32,  33,  34,  34,  -3,  -4,  35,  36,  36,  0,   0,   0,   37,  38,  -5,  -5,  0,
742         0,   39,  40,  0,   0,   41,  0,   42,  0,   43,  0,   0,   44,  44,  0,   0,   45,  0,
743         0,   46,  47,  44,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,
744         44,  62,  63,  64,  65,  44,  -6,  66,  67,  44,  68,  69,  70,  71,  72,  73,  44,  74,
745         75,  76,  77,  44,  -7,  78,  79,  80,  81,  82,  44,  83,  84,  85,  86,  87,  44,  88,
746         89,  90,  57,  91,  92,  93,  -8,  94,  95,  44,  96,  47,  97,  98,  99,  100, 101, 102,
747         -9,  103, 104, 105, 44,  106, 107, 108, 109, 110, 44,  111, 44,  112, 113, 93,  114, 115,
748         116, 117, 118, 119, 120, 121, 122, 44,  123, 124, 93,  125, 44,  -10, 126, 127, 128, 44,
749         129, 130, 44,  131, 132, 133, 134, 135, 136, 137, 57,  138, 139, 140, 141, 142, 132, 143,
750         144, 145, 146, 147, 44,  148, 149, 150, 44,  151, 152, 153, 154, 155, 156, 44,  157, 158,
751         159, 160, 161, 162, 163, 57,  164, 165, 166, 167, 168, 169, 44,  170, 171, 172, 173, 174,
752         175, 176, 177, 178, 179, 44,  180, 181, 182, 183, 132, -11, 184, 185, 186, 108, 187, 188,
753         189, 190, 191, 192, 193, 194, 195, 44,  196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
754         51,  206, 207, 208, 209, 210, 211, 212, 44,  213, 214, 215, 44,  -12, 216, 217, 218, 219,
755         220, -13, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
756         237, 227, 238, 239, 240, 241, 132, 242, 243, 57,  244, 245, 246, 247, 248, 249, 250, 51,
757         251, 252, 253, 44,  254, 255, 256, 257, 258, 259, 260, 261, 44,  -14, 262, 263, 264, 265,
758         266, 57,  267, 70,  268, 269, 44,  270, 271, 272, 273, 247, 274, 275, 276, 277, 278, 279,
759         44,  202, 280, 281, 282, 283, 108, 284, 285, 149, 286, 287, 288, 289, 290, 149, 291, 292,
760         293, 294, 295, 57,  -15, 296, 297, 298, 44,  299, 300, 301, 302, 303, 304, 305, 44,  306,
761         307, 308, 309, 310, 311, 312, 44,  0,   313, 0,   0,   0,   0,
762 };
get_transition(uint8_t transition,State state)763 static State get_transition(uint8_t transition, State state) {
764     IndexEntry index = kIndices[state];
765     if (index < 0) {
766         return kFull[~index].data[transition];
767     }
768     const CompactEntry& entry = kCompact[index];
769     int v = entry.data[transition >> 2];
770     v >>= 2 * (transition & 3);
771     v &= 3;
772     v *= 9;
773     return (entry.values >> v) & 511;
774 }
775 static const uint8_t kAccepts[427] = {
776         255, 255, 89,  89, 92, 68,  73,  92,  43, 41, 41, 41, 41, 36,  41,  41, 41,  41,  37, 41,
777         41,  41,  27,  58, 82, 63,  67,  87,  44, 45, 56, 80, 54, 52,  78,  51, 55,  53,  79, 50,
778         1,   255, 255, 1,  57, 255, 255, 91,  90, 81, 2,  1,  1,  255, 255, 1,  255, 255, 1,  2,
779         3,   255, 255, 1,  3,  2,   2,   255, 2,  2,  2,  70, 88, 75,  59,  83, 77,  71,  72, 74,
780         76,  60,  84,  69, 42, 42,  48,  49,  62, 86, 66, 42, 42, 40,  42,  42, 42,  42,  42, 42,
781         42,  42,  42,  42, 42, 42,  42,  42,  14, 42, 42, 42, 42, 30,  42,  42, 42,  12,  42, 42,
782         42,  42,  42,  42, 22, 42,  42,  42,  42, 15, 42, 42, 42, 42,  42,  42, 13,  42,  42, 42,
783         42,  42,  16,  10, 42, 42,  42,  42,  42, 42, 42, 42, 42, 7,   42,  42, 42,  42,  42, 42,
784         40,  42,  42,  42, 42, 42,  5,   42,  42, 42, 42, 42, 23, 42,  8,   42, 42,  42,  42, 42,
785         40,  42,  42,  42, 42, 42,  42,  33,  42, 42, 42, 42, 6,  18,  42,  42, 42,  25,  42, 42,
786         20,  42,  42,  42, 42, 42,  42,  42,  42, 42, 42, 42, 42, 42,  42,  42, 42,  42,  42, 42,
787         32,  42,  42,  42, 35, 42,  42,  42,  42, 42, 42, 34, 42, 42,  42,  42, 42,  42,  42, 42,
788         42,  42,  42,  42, 42, 42,  26,  42,  42, 42, 42, 42, 42, 42,  42,  42, 42,  24,  42, 42,
789         19,  42,  42,  42, 42, 42,  42,  42,  42, 42, 42, 42, 42, 42,  42,  42, 42,  39,  42, 42,
790         42,  42,  42,  42, 42, 42,  42,  42,  42, 42, 42, 42, 42, 42,  42,  42, 28,  42,  42, 42,
791         17,  42,  42,  42, 42, 42,  42,  42,  42, 40, 42, 42, 42, 42,  42,  42, 42,  42,  42, 42,
792         42,  42,  42,  42, 42, 42,  42,  40,  42, 42, 42, 42, 42, 42,  42,  42, 42,  42,  42, 42,
793         42,  42,  42,  42, 42, 31,  42,  42,  42, 42, 42, 42, 42, 42,  11,  42, 42,  42,  42, 42,
794         42,  42,  42,  42, 42, 42,  4,   42,  42, 42, 42, 42, 42, 42,  42,  42, 42,  42,  21, 42,
795         42,  42,  42,  42, 42, 42,  42,  42,  42, 42, 42, 42, 42, 42,  42,  42, 42,  42,  42, 42,
796         42,  42,  42,  42, 9,  42,  42,  42,  42, 42, 42, 42, 38, 42,  42,  42, 42,  42,  42, 42,
797         29,  46,  61,  85, 65, 47,  64,
798 };
799 
next()800 Token Lexer::next() {
801     // Note that we cheat here: normally a lexer needs to worry about the case
802     // where a token has a prefix which is not itself a valid token - for instance,
803     // maybe we have a valid token 'while', but 'w', 'wh', etc. are not valid
804     // tokens. Our grammar doesn't have this property, so we can simplify the logic
805     // a bit.
806     int32_t startOffset = fOffset;
807     State state = 1;
808     for (;;) {
809         if (fOffset >= (int32_t)fText.length()) {
810             if (startOffset == (int32_t)fText.length() || kAccepts[state] == 255) {
811                 return Token(Token::Kind::TK_END_OF_FILE, startOffset, 0);
812             }
813             break;
814         }
815         uint8_t c = (uint8_t)(fText[fOffset] - 9);
816         if (c >= 118) {
817             c = kInvalidChar;
818         }
819         State newState = get_transition(kMappings[c], state);
820         if (!newState) {
821             break;
822         }
823         state = newState;
824         ++fOffset;
825     }
826     Token::Kind kind = (Token::Kind)kAccepts[state];
827     return Token(kind, startOffset, fOffset - startOffset);
828 }
829 
830 }  // namespace SkSL
831