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 12namespace SkSL { 13 14using State = uint16_t; 15static const uint8_t INVALID_CHAR = 18; 16static const int8_t kMappings[127] = { 17 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 18 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 4, 3, 5, 6, 7, 8, 3, 9, 10, 11, 12, 19 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, 25, 26, 27, 28, 29, 30, 20 30, 31, 32, 33, 30, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 35, 36, 34, 34, 34, 34, 21 37, 34, 34, 38, 3, 39, 40, 41, 3, 42, 43, 44, 45, 46, 47, 48, 49, 50, 34, 51, 52, 53, 22 54, 55, 56, 34, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69}; 23struct IndexEntry { 24 uint16_t type : 2; 25 uint16_t pos : 14; 26}; 27struct FullEntry { 28 State data[70]; 29}; 30struct CompactEntry { 31 State v0 : 6; 32 State v1 : 9; 33 State v2 : 9; 34 uint8_t data[18]; 35}; 36static constexpr FullEntry kFull[] = { 37 { 38 0, 2, 3, 4, 5, 7, 9, 14, 16, 19, 20, 21, 23, 26, 39 27, 31, 36, 42, 57, 57, 57, 57, 57, 58, 59, 60, 64, 66, 40 70, 71, 80, 80, 80, 80, 80, 80, 80, 80, 81, 82, 83, 80, 41 86, 96, 101, 117, 137, 149, 165, 170, 178, 80, 202, 212, 219, 245, 42 250, 266, 272, 344, 361, 377, 389, 80, 80, 80, 394, 395, 398, 399, 43 }, 44 { 45 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 51, 51, 51, 51, 51, 51, 0, 46 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 47 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 48 }, 49 { 50 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 51 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 52 10, 10, 0, 0, 0, 10, 102, 10, 10, 10, 10, 10, 10, 10, 10, 10, 105, 10, 53 10, 108, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 54 }, 55 { 56 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 57 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 58 10, 10, 0, 0, 0, 10, 10, 10, 10, 10, 118, 10, 10, 10, 124, 10, 10, 10, 59 10, 130, 10, 10, 10, 10, 10, 134, 10, 10, 10, 10, 0, 0, 0, 0, 60 }, 61 { 62 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 63 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 64 10, 10, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 138, 10, 65 141, 10, 10, 10, 10, 10, 10, 10, 10, 143, 10, 10, 0, 0, 0, 0, 66 }, 67 { 68 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 69 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 70 10, 10, 0, 0, 0, 10, 150, 10, 10, 10, 10, 10, 10, 10, 154, 10, 157, 10, 71 10, 160, 10, 10, 10, 10, 10, 162, 10, 10, 10, 10, 0, 0, 0, 0, 72 }, 73 { 74 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 75 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 76 10, 10, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 181, 10, 77 10, 185, 188, 10, 10, 190, 10, 196, 10, 10, 10, 10, 0, 0, 0, 0, 78 }, 79 { 80 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 81 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 82 10, 10, 0, 0, 0, 10, 251, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 83 10, 10, 10, 255, 10, 10, 262, 10, 10, 10, 10, 10, 0, 0, 0, 0, 84 }, 85 { 86 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 87 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 88 10, 10, 0, 0, 0, 10, 273, 10, 10, 10, 10, 10, 10, 10, 305, 309, 10, 10, 89 10, 10, 10, 10, 10, 327, 335, 10, 339, 10, 10, 10, 0, 0, 0, 0, 90 }, 91 { 92 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 93 279, 286, 297, 10, 10, 0, 0, 0, 0, 0, 0, 0, 10, 302, 10, 10, 10, 10, 94 10, 10, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 95 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 96 }, 97 { 98 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 99 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 100 10, 10, 0, 0, 0, 10, 10, 10, 10, 10, 345, 10, 10, 351, 10, 10, 10, 10, 101 10, 10, 10, 353, 10, 10, 10, 10, 10, 10, 356, 10, 0, 0, 0, 0, 102 }, 103}; 104static constexpr CompactEntry kCompact[] = { 105 {0, 0, 3, {60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 106 {0, 0, 6, {0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 107 {0, 0, 8, {0, 48, 0, 0, 0, 0, 0, 240, 255, 15, 252, 255, 255, 255, 255, 255, 15, 0}}, 108 {0, 0, 8, {0, 48, 0, 0, 252, 63, 0, 240, 255, 15, 252, 255, 255, 255, 255, 255, 15, 0}}, 109 {0, 10, 11, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 110 {0, 0, 10, {0, 48, 0, 0, 252, 63, 0, 240, 255, 15, 252, 255, 255, 255, 255, 255, 15, 0}}, 111 {0, 10, 12, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 186, 170, 10, 0}}, 112 {0, 10, 13, {0, 32, 0, 0, 168, 43, 0, 160, 170, 10, 168, 170, 170, 170, 170, 170, 10, 0}}, 113 {0, 0, 15, {0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 114 {0, 17, 18, {0, 0, 2, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 115 {0, 0, 22, {0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 116 {0, 24, 25, {0, 0, 0, 2, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 117 {28, 29, 30, {0, 0, 0, 16, 0, 0, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 118 {0, 0, 32, {0, 0, 0, 0, 252, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 119 {0, 32, 33, {0, 0, 0, 0, 168, 42, 0, 0, 12, 0, 0, 48, 0, 0, 0, 0, 0, 0}}, 120 {0, 34, 35, {0, 0, 0, 34, 252, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 121 {0, 0, 35, {0, 0, 0, 0, 252, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 122 {37, 40, 41, {0, 0, 64, 0, 2, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 123 {0, 124 37, 125 38, 126 {168, 170, 234, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 10}}, 127 {0, 128 37, 129 39, 130 {168, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 10}}, 131 {0, 132 0, 133 40, 134 {204, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 15}}, 135 {0, 44, 48, {0, 0, 0, 0, 168, 42, 0, 0, 12, 0, 0, 48, 0, 0, 0, 0, 0, 0}}, 136 {0, 44, 45, {0, 0, 0, 0, 168, 42, 0, 0, 12, 0, 0, 48, 0, 0, 0, 0, 0, 0}}, 137 {0, 46, 47, {0, 0, 0, 34, 252, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 138 {0, 0, 47, {0, 0, 0, 0, 252, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 139 {0, 49, 50, {0, 0, 0, 34, 252, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 140 {0, 0, 50, {0, 0, 0, 0, 252, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 141 {43, 51, 52, {0, 0, 0, 64, 168, 42, 0, 0, 12, 0, 0, 48, 0, 0, 0, 0, 0, 0}}, 142 {0, 53, 54, {0, 0, 0, 34, 252, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 143 {0, 0, 54, {0, 0, 0, 0, 252, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 144 {0, 0, 56, {0, 0, 0, 0, 252, 63, 0, 240, 15, 0, 240, 255, 0, 0, 0, 0, 0, 0}}, 145 {0, 61, 63, {0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 146 {0, 0, 62, {0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 147 {0, 0, 65, {0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 148 {0, 67, 68, {0, 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 149 {0, 0, 69, {0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 150 {0, 72, 74, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 48, 0, 0, 0}}, 151 {0, 0, 73, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 0, 0, 0, 0, 0, 0}}, 152 {0, 0, 75, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0}}, 153 {0, 0, 76, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0}}, 154 {0, 0, 77, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 0, 0, 0}}, 155 {0, 0, 78, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0}}, 156 {0, 0, 79, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0}}, 157 {0, 84, 85, {0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0}}, 158 {10, 87, 89, {0, 16, 0, 0, 84, 21, 0, 80, 85, 5, 84, 85, 85, 85, 229, 85, 5, 0}}, 159 {0, 10, 88, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 174, 170, 170, 10, 0}}, 160 {0, 10, 90, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 234, 170, 10, 0}}, 161 {0, 10, 91, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 174, 170, 10, 0}}, 162 {0, 10, 92, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 186, 170, 170, 170, 10, 0}}, 163 {0, 10, 93, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 232, 170, 170, 170, 170, 170, 10, 0}}, 164 {0, 10, 94, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 170, 171, 10, 0}}, 165 {0, 10, 95, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 234, 170, 10, 0}}, 166 {0, 10, 88, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 167 {0, 10, 97, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 174, 170, 10, 0}}, 168 {0, 10, 98, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 169 {0, 10, 99, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 184, 170, 170, 170, 170, 170, 10, 0}}, 170 {0, 10, 100, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 234, 170, 170, 170, 10, 0}}, 171 {0, 10, 103, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 186, 170, 10, 0}}, 172 {10, 88, 104, {0, 16, 0, 0, 84, 21, 0, 80, 85, 5, 84, 117, 85, 85, 149, 85, 5, 0}}, 173 {0, 10, 106, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 184, 170, 170, 170, 170, 170, 10, 0}}, 174 {0, 10, 107, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 186, 170, 10, 0}}, 175 {0, 10, 88, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 186, 170, 10, 0}}, 176 {0, 10, 109, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 186, 170, 170, 10, 0}}, 177 {10, 110, 112, {0, 16, 0, 0, 84, 21, 0, 80, 85, 5, 84, 85, 85, 85, 229, 85, 5, 0}}, 178 {0, 10, 111, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 234, 170, 10, 0}}, 179 {0, 10, 113, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 186, 170, 170, 170, 10, 0}}, 180 {0, 10, 114, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 186, 170, 170, 10, 0}}, 181 {0, 10, 115, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 170, 171, 10, 0}}, 182 {0, 10, 116, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 183 {0, 10, 119, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 234, 170, 170, 170, 170, 10, 0}}, 184 {0, 10, 120, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 184, 170, 170, 170, 170, 170, 10, 0}}, 185 {0, 10, 121, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 170, 171, 10, 0}}, 186 {0, 10, 122, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 171, 170, 170, 10, 0}}, 187 {0, 10, 123, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 234, 170, 10, 0}}, 188 {0, 10, 125, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 186, 170, 10, 0}}, 189 {0, 10, 126, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 171, 170, 170, 170, 170, 10, 0}}, 190 {0, 10, 127, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 184, 170, 170, 170, 170, 170, 10, 0}}, 191 {0, 10, 128, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 174, 170, 10, 0}}, 192 {0, 10, 129, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 174, 170, 170, 170, 170, 10, 0}}, 193 {0, 10, 131, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 170, 171, 10, 0}}, 194 {0, 10, 132, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 232, 170, 170, 170, 170, 170, 10, 0}}, 195 {0, 10, 133, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 171, 170, 170, 10, 0}}, 196 {0, 10, 135, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 197 {0, 10, 136, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 171, 170, 170, 170, 170, 10, 0}}, 198 {0, 10, 88, {0, 32, 0, 0, 232, 47, 0, 160, 170, 10, 168, 170, 170, 170, 170, 170, 10, 0}}, 199 {0, 10, 139, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 186, 170, 10, 0}}, 200 {0, 10, 140, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 201 {0, 10, 142, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 170, 171, 10, 0}}, 202 {0, 10, 144, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 234, 170, 10, 0}}, 203 {0, 10, 145, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 204 {0, 10, 146, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 174, 170, 10, 0}}, 205 {0, 10, 147, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 186, 170, 170, 10, 0}}, 206 {0, 10, 148, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 184, 170, 170, 170, 170, 170, 10, 0}}, 207 {0, 10, 88, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 171, 170, 170, 10, 0}}, 208 {0, 10, 151, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 171, 170, 170, 10, 0}}, 209 {0, 10, 152, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 186, 170, 10, 0}}, 210 {0, 10, 153, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 211 {0, 10, 155, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 170, 234, 10, 0}}, 212 {0, 10, 156, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 213 {0, 10, 88, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 174, 170, 170, 170, 170, 10, 0}}, 214 {0, 10, 158, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 184, 170, 170, 170, 170, 170, 10, 0}}, 215 {0, 10, 159, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 234, 170, 10, 0}}, 216 {0, 10, 161, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 174, 170, 10, 0}}, 217 {0, 10, 163, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 218 {0, 10, 164, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 171, 170, 170, 170, 170, 10, 0}}, 219 {10, 166, 168, {0, 16, 0, 0, 84, 21, 0, 80, 85, 5, 84, 85, 85, 214, 85, 85, 5, 0}}, 220 {0, 10, 167, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 172, 170, 170, 170, 170, 170, 10, 0}}, 221 {0, 0, 167, {0, 48, 0, 0, 252, 63, 0, 240, 255, 15, 252, 255, 255, 255, 255, 255, 15, 0}}, 222 {0, 10, 169, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 234, 170, 10, 0}}, 223 {0, 10, 88, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 234, 170, 170, 10, 0}}, 224 {10, 171, 175, {0, 16, 0, 0, 84, 21, 0, 80, 85, 5, 84, 85, 101, 85, 85, 93, 5, 0}}, 225 {0, 10, 172, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 171, 170, 170, 170, 10, 0}}, 226 {0, 10, 173, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 174, 170, 170, 170, 10, 0}}, 227 {0, 10, 174, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 171, 170, 10, 0}}, 228 {0, 10, 176, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 229 {0, 10, 177, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 171, 170, 170, 170, 170, 10, 0}}, 230 {10, 179, 180, {0, 16, 0, 0, 84, 21, 0, 80, 85, 5, 84, 149, 85, 117, 85, 85, 5, 0}}, 231 {0, 10, 182, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 186, 170, 170, 170, 10, 0}}, 232 {0, 10, 183, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 186, 170, 170, 10, 0}}, 233 {0, 10, 184, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 234 {0, 10, 186, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 170, 171, 10, 0}}, 235 {0, 10, 187, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 234, 170, 10, 0}}, 236 {0, 10, 189, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 170, 171, 10, 0}}, 237 {0, 10, 88, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 234, 170, 10, 0}}, 238 {0, 10, 191, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 239 {0, 10, 192, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 174, 170, 10, 0}}, 240 {0, 10, 193, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 234, 170, 170, 170, 170, 10, 0}}, 241 {0, 10, 194, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 184, 170, 170, 170, 170, 170, 10, 0}}, 242 {0, 10, 195, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 171, 170, 170, 170, 170, 10, 0}}, 243 {0, 10, 197, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 184, 170, 170, 170, 170, 170, 10, 0}}, 244 {0, 10, 198, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 174, 170, 10, 0}}, 245 {0, 10, 199, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 186, 170, 170, 170, 10, 0}}, 246 {0, 10, 200, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 184, 170, 170, 170, 170, 170, 10, 0}}, 247 {0, 10, 201, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 186, 170, 170, 10, 0}}, 248 {10, 203, 208, {0, 16, 0, 0, 84, 21, 0, 80, 85, 5, 100, 85, 85, 213, 85, 85, 5, 0}}, 249 {0, 10, 204, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 170, 170, 11, 0}}, 250 {0, 10, 205, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 234, 170, 170, 10, 0}}, 251 {0, 10, 206, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 170, 171, 10, 0}}, 252 {0, 10, 207, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 234, 170, 10, 0}}, 253 {10, 209, 210, {0, 16, 0, 0, 84, 21, 0, 80, 85, 5, 84, 85, 85, 101, 85, 117, 5, 0}}, 254 {0, 10, 88, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 171, 170, 170, 170, 10, 0}}, 255 {0, 10, 211, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 171, 170, 10, 0}}, 256 {0, 10, 213, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 257 {0, 10, 214, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 174, 170, 170, 170, 170, 10, 0}}, 258 {0, 10, 215, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 186, 170, 170, 170, 10, 0}}, 259 {0, 10, 216, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 170, 171, 10, 0}}, 260 {0, 10, 217, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 174, 170, 170, 10, 0}}, 261 {0, 10, 218, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 171, 170, 10, 0}}, 262 {10, 220, 227, {0, 16, 0, 0, 84, 21, 0, 80, 85, 5, 100, 85, 85, 213, 85, 85, 5, 0}}, 263 {0, 10, 221, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 174, 170, 170, 10, 0}}, 264 {0, 10, 222, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 265 {0, 10, 223, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 186, 170, 10, 0}}, 266 {0, 10, 224, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 171, 170, 10, 0}}, 267 {0, 10, 225, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 184, 170, 170, 170, 170, 170, 10, 0}}, 268 {0, 10, 226, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 171, 170, 170, 170, 170, 10, 0}}, 269 {10, 228, 234, {0, 16, 0, 0, 84, 21, 0, 80, 85, 5, 84, 85, 101, 85, 87, 85, 5, 0}}, 270 {0, 10, 229, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 186, 170, 170, 10, 0}}, 271 {0, 10, 230, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 171, 170, 170, 10, 0}}, 272 {0, 10, 231, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 186, 170, 170, 170, 10, 0}}, 273 {0, 10, 232, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 186, 170, 170, 10, 0}}, 274 {0, 10, 233, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 275 {0, 10, 235, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 276 {0, 10, 236, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 174, 170, 10, 0}}, 277 {0, 10, 237, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 186, 170, 10, 0}}, 278 {0, 10, 238, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 171, 170, 10, 0}}, 279 {0, 10, 239, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 280 {0, 10, 240, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 171, 170, 170, 170, 170, 10, 0}}, 281 {0, 10, 241, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 234, 170, 10, 0}}, 282 {0, 10, 242, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 186, 170, 170, 170, 10, 0}}, 283 {0, 10, 243, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 170, 174, 10, 0}}, 284 {0, 10, 244, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 285 {0, 10, 246, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 170, 171, 10, 0}}, 286 {0, 10, 247, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 234, 170, 10, 0}}, 287 {0, 10, 248, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 171, 170, 10, 0}}, 288 {0, 10, 249, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 170, 171, 10, 0}}, 289 {0, 10, 252, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 171, 170, 170, 170, 170, 10, 0}}, 290 {0, 10, 253, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 234, 170, 170, 170, 10, 0}}, 291 {0, 10, 254, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 292 {0, 10, 256, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 293 {0, 10, 257, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 171, 170, 170, 170, 170, 10, 0}}, 294 {0, 10, 258, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 186, 170, 170, 170, 10, 0}}, 295 {0, 10, 259, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 186, 170, 10, 0}}, 296 {0, 10, 260, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 186, 170, 170, 170, 10, 0}}, 297 {0, 10, 261, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 234, 170, 170, 10, 0}}, 298 {0, 10, 88, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 186, 170, 170, 10, 0}}, 299 {0, 10, 263, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 232, 170, 170, 170, 170, 170, 10, 0}}, 300 {0, 10, 264, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 171, 170, 170, 10, 0}}, 301 {0, 10, 265, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 186, 170, 170, 170, 10, 0}}, 302 {0, 10, 88, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 171, 170, 170, 170, 170, 10, 0}}, 303 {0, 10, 267, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 304 {0, 10, 268, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 234, 170, 10, 0}}, 305 {0, 10, 269, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 170, 171, 10, 0}}, 306 {0, 10, 270, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 174, 170, 10, 0}}, 307 {0, 10, 271, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 186, 170, 170, 10, 0}}, 308 {0, 10, 274, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 174, 170, 170, 10, 0}}, 309 {0, 10, 275, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 171, 170, 10, 0}}, 310 {0, 10, 276, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 171, 170, 170, 10, 0}}, 311 {0, 10, 277, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 312 {0, 10, 278, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 174, 170, 10, 0}}, 313 {0, 10, 280, {0, 32, 0, 0, 168, 42, 0, 160, 171, 10, 168, 170, 170, 170, 170, 170, 10, 0}}, 314 {0, 10, 281, {0, 32, 0, 0, 168, 42, 0, 160, 170, 11, 168, 170, 170, 170, 170, 170, 10, 0}}, 315 {0, 10, 282, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 174, 170, 170, 170, 10, 0}}, 316 {0, 10, 283, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 184, 170, 170, 170, 170, 170, 10, 0}}, 317 {0, 10, 284, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 174, 170, 170, 170, 170, 10, 0}}, 318 {0, 10, 285, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 234, 170, 170, 10, 0}}, 319 {0, 10, 88, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 170, 186, 10, 0}}, 320 {0, 10, 287, {0, 32, 0, 0, 168, 42, 0, 160, 171, 10, 168, 170, 170, 170, 170, 170, 10, 0}}, 321 {10, 281, 288, {0, 16, 0, 0, 84, 21, 0, 80, 213, 6, 84, 85, 85, 85, 85, 85, 5, 0}}, 322 {0, 10, 289, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 323 {0, 10, 290, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 171, 170, 170, 170, 170, 10, 0}}, 324 {0, 10, 291, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 234, 170, 10, 0}}, 325 {0, 10, 292, {0, 32, 0, 0, 168, 42, 0, 160, 170, 11, 168, 170, 170, 170, 170, 170, 10, 0}}, 326 {0, 10, 293, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 174, 170, 170, 170, 10, 0}}, 327 {0, 10, 294, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 184, 170, 170, 170, 170, 170, 10, 0}}, 328 {0, 10, 295, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 174, 170, 170, 170, 170, 10, 0}}, 329 {0, 10, 296, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 234, 170, 170, 10, 0}}, 330 {0, 10, 298, {0, 32, 0, 0, 168, 42, 0, 160, 171, 10, 168, 170, 170, 170, 170, 170, 10, 0}}, 331 {0, 10, 299, {0, 32, 0, 0, 168, 42, 0, 160, 234, 10, 168, 170, 170, 170, 170, 170, 10, 0}}, 332 {0, 10, 300, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 333 {0, 10, 301, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 171, 170, 170, 170, 170, 10, 0}}, 334 {0, 10, 303, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 170, 171, 10, 0}}, 335 {0, 10, 304, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 232, 170, 170, 170, 170, 170, 10, 0}}, 336 {0, 10, 306, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 170, 170, 14, 0}}, 337 {0, 10, 307, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 338 {0, 10, 308, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 234, 170, 170, 10, 0}}, 339 {0, 10, 88, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 234, 170, 170, 170, 170, 10, 0}}, 340 {0, 10, 310, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 172, 170, 170, 170, 170, 170, 10, 0}}, 341 {0, 10, 311, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 174, 170, 170, 170, 10, 0}}, 342 {0, 10, 312, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 184, 170, 170, 170, 170, 170, 10, 0}}, 343 {0, 10, 313, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 186, 170, 10, 0}}, 344 {0, 10, 314, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 172, 170, 170, 170, 170, 170, 10, 0}}, 345 {0, 10, 315, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 186, 170, 10, 0}}, 346 {0, 10, 316, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 186, 170, 170, 170, 10, 0}}, 347 {0, 10, 317, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 174, 170, 170, 170, 170, 10, 0}}, 348 {0, 10, 318, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 349 {0, 10, 319, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 172, 170, 170, 170, 170, 170, 10, 0}}, 350 {0, 10, 320, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 351 {0, 10, 321, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 234, 170, 170, 170, 170, 10, 0}}, 352 {0, 10, 322, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 234, 170, 170, 170, 170, 10, 0}}, 353 {0, 10, 323, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 354 {0, 10, 324, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 171, 170, 170, 170, 170, 10, 0}}, 355 {0, 10, 325, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 234, 170, 10, 0}}, 356 {0, 10, 326, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 186, 170, 10, 0}}, 357 {10, 328, 331, {0, 16, 0, 0, 84, 21, 0, 80, 85, 5, 100, 85, 85, 85, 93, 85, 5, 0}}, 358 {0, 10, 329, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 234, 170, 10, 0}}, 359 {0, 10, 330, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 186, 170, 170, 170, 10, 0}}, 360 {0, 10, 332, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 170, 171, 10, 0}}, 361 {0, 10, 333, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 171, 170, 170, 170, 170, 10, 0}}, 362 {0, 10, 334, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 234, 170, 10, 0}}, 363 {0, 10, 336, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 171, 170, 10, 0}}, 364 {0, 10, 337, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 365 {0, 10, 338, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 174, 170, 10, 0}}, 366 {0, 10, 88, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 171, 170, 10, 0}}, 367 {0, 10, 340, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 186, 170, 170, 170, 10, 0}}, 368 {0, 10, 341, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 234, 170, 10, 0}}, 369 {0, 10, 342, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 171, 170, 170, 170, 170, 10, 0}}, 370 {0, 10, 343, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 174, 170, 170, 170, 10, 0}}, 371 {0, 10, 346, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 174, 170, 170, 10, 0}}, 372 {0, 10, 347, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 171, 170, 10, 0}}, 373 {0, 10, 348, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 171, 170, 170, 10, 0}}, 374 {0, 10, 349, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 184, 170, 170, 170, 170, 170, 10, 0}}, 375 {0, 10, 350, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 234, 170, 10, 0}}, 376 {0, 10, 352, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 186, 170, 170, 170, 10, 0}}, 377 {0, 10, 354, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 170, 171, 10, 0}}, 378 {0, 10, 355, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 379 {0, 10, 357, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 171, 170, 10, 0}}, 380 {0, 10, 358, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 381 {0, 10, 359, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 174, 170, 170, 170, 170, 10, 0}}, 382 {0, 10, 360, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 383 {10, 362, 374, {0, 16, 0, 0, 84, 21, 0, 80, 85, 5, 84, 85, 85, 101, 117, 85, 5, 0}}, 384 {10, 363, 369, {0, 16, 0, 0, 84, 21, 0, 80, 85, 5, 84, 85, 101, 85, 117, 85, 5, 0}}, 385 {10, 364, 368, {0, 16, 0, 0, 84, 21, 0, 80, 85, 5, 84, 149, 85, 213, 85, 85, 5, 0}}, 386 {0, 10, 365, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 234, 170, 170, 10, 0}}, 387 {0, 10, 366, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 174, 170, 10, 0}}, 388 {0, 10, 367, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 174, 170, 170, 10, 0}}, 389 {0, 10, 370, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 186, 170, 170, 170, 10, 0}}, 390 {0, 10, 371, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 171, 170, 170, 170, 10, 0}}, 391 {0, 10, 372, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 186, 170, 170, 10, 0}}, 392 {0, 10, 373, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 393 {0, 10, 375, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 186, 170, 170, 170, 10, 0}}, 394 {0, 10, 376, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 186, 170, 170, 10, 0}}, 395 {10, 378, 383, {0, 16, 0, 0, 84, 21, 0, 80, 85, 5, 100, 85, 85, 213, 85, 85, 5, 0}}, 396 {0, 10, 379, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 174, 170, 10, 0}}, 397 {0, 10, 380, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 170, 170, 11, 0}}, 398 {0, 10, 381, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 186, 170, 170, 170, 10, 0}}, 399 {0, 10, 382, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 186, 170, 170, 10, 0}}, 400 {0, 10, 384, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 171, 170, 170, 10, 0}}, 401 {0, 10, 385, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 184, 170, 170, 170, 170, 170, 10, 0}}, 402 {0, 10, 386, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 170, 234, 170, 10, 0}}, 403 {0, 10, 387, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 186, 170, 170, 170, 10, 0}}, 404 {0, 10, 388, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 171, 170, 170, 10, 0}}, 405 {0, 10, 390, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 174, 170, 170, 170, 10, 0}}, 406 {0, 10, 391, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 186, 170, 170, 170, 10, 0}}, 407 {0, 10, 392, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 170, 170, 171, 170, 170, 10, 0}}, 408 {0, 10, 393, {0, 32, 0, 0, 168, 42, 0, 160, 170, 10, 168, 186, 170, 170, 170, 170, 10, 0}}, 409 {0, 396, 397, {0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 0}}, 410}; 411static constexpr IndexEntry kIndices[] = { 412 {0, 0}, {1, 0}, {2, 0}, {2, 0}, {0, 0}, {2, 1}, {0, 0}, {2, 2}, {2, 3}, 413 {2, 4}, {2, 5}, {2, 6}, {2, 7}, {2, 5}, {2, 8}, {0, 0}, {2, 9}, {0, 0}, 414 {0, 0}, {0, 0}, {0, 0}, {2, 10}, {0, 0}, {2, 11}, {0, 0}, {0, 0}, {0, 0}, 415 {2, 12}, {0, 0}, {0, 0}, {0, 0}, {2, 13}, {2, 14}, {2, 15}, {2, 16}, {2, 16}, 416 {2, 17}, {2, 18}, {2, 19}, {0, 0}, {2, 20}, {0, 0}, {1, 1}, {2, 21}, {2, 22}, 417 {2, 23}, {2, 24}, {2, 24}, {2, 25}, {2, 26}, {2, 26}, {2, 27}, {2, 28}, {2, 29}, 418 {2, 29}, {2, 30}, {2, 30}, {2, 27}, {0, 0}, {0, 0}, {2, 31}, {2, 32}, {0, 0}, 419 {0, 0}, {2, 33}, {0, 0}, {2, 34}, {0, 0}, {2, 35}, {0, 0}, {0, 0}, {2, 36}, 420 {2, 37}, {0, 0}, {2, 38}, {2, 39}, {2, 40}, {2, 41}, {2, 42}, {0, 0}, {2, 5}, 421 {0, 0}, {0, 0}, {2, 43}, {0, 0}, {0, 0}, {2, 44}, {2, 45}, {2, 5}, {2, 46}, 422 {2, 47}, {2, 48}, {2, 49}, {2, 50}, {2, 51}, {2, 52}, {2, 53}, {2, 54}, {2, 55}, 423 {2, 56}, {2, 5}, {1, 2}, {2, 57}, {2, 58}, {2, 5}, {2, 59}, {2, 60}, {2, 61}, 424 {2, 62}, {2, 63}, {2, 64}, {2, 5}, {2, 65}, {2, 66}, {2, 67}, {2, 68}, {2, 5}, 425 {1, 3}, {2, 69}, {2, 70}, {2, 71}, {2, 72}, {2, 73}, {2, 5}, {2, 74}, {2, 75}, 426 {2, 76}, {2, 77}, {2, 78}, {2, 5}, {2, 79}, {2, 80}, {2, 81}, {2, 52}, {2, 82}, 427 {2, 83}, {2, 84}, {1, 4}, {2, 85}, {2, 86}, {2, 5}, {2, 87}, {2, 45}, {2, 88}, 428 {2, 89}, {2, 90}, {2, 91}, {2, 92}, {2, 93}, {1, 5}, {2, 94}, {2, 95}, {2, 96}, 429 {2, 5}, {2, 97}, {2, 98}, {2, 99}, {2, 100}, {2, 101}, {2, 5}, {2, 102}, {2, 5}, 430 {2, 103}, {2, 104}, {2, 84}, {2, 105}, {2, 106}, {2, 107}, {2, 108}, {2, 109}, {2, 110}, 431 {2, 111}, {2, 112}, {2, 113}, {2, 5}, {2, 114}, {2, 115}, {2, 84}, {2, 116}, {2, 5}, 432 {1, 6}, {2, 117}, {2, 118}, {2, 119}, {2, 5}, {2, 120}, {2, 121}, {2, 5}, {2, 122}, 433 {2, 123}, {2, 124}, {2, 125}, {2, 126}, {2, 127}, {2, 128}, {2, 52}, {2, 129}, {2, 130}, 434 {2, 131}, {2, 132}, {2, 133}, {2, 123}, {2, 134}, {2, 135}, {2, 136}, {2, 137}, {2, 138}, 435 {2, 5}, {2, 139}, {2, 140}, {2, 141}, {2, 5}, {2, 142}, {2, 143}, {2, 144}, {2, 145}, 436 {2, 146}, {2, 147}, {2, 5}, {2, 148}, {2, 149}, {2, 150}, {2, 151}, {2, 152}, {2, 153}, 437 {2, 154}, {2, 52}, {2, 155}, {2, 156}, {2, 157}, {2, 158}, {2, 159}, {2, 160}, {2, 5}, 438 {2, 161}, {2, 162}, {2, 163}, {2, 164}, {2, 165}, {2, 166}, {2, 167}, {2, 168}, {2, 169}, 439 {2, 170}, {2, 5}, {2, 171}, {2, 172}, {2, 173}, {2, 174}, {2, 123}, {1, 7}, {2, 175}, 440 {2, 176}, {2, 177}, {2, 99}, {2, 178}, {2, 179}, {2, 180}, {2, 181}, {2, 182}, {2, 183}, 441 {2, 184}, {2, 185}, {2, 186}, {2, 187}, {2, 188}, {2, 189}, {2, 190}, {2, 191}, {2, 192}, 442 {2, 193}, {2, 5}, {1, 8}, {2, 194}, {2, 195}, {2, 196}, {2, 197}, {2, 198}, {1, 9}, 443 {2, 199}, {2, 200}, {2, 201}, {2, 202}, {2, 203}, {2, 204}, {2, 205}, {2, 206}, {2, 207}, 444 {2, 208}, {2, 209}, {2, 210}, {2, 211}, {2, 212}, {2, 213}, {2, 214}, {2, 215}, {2, 205}, 445 {2, 216}, {2, 217}, {2, 218}, {2, 219}, {2, 123}, {2, 220}, {2, 221}, {2, 52}, {2, 222}, 446 {2, 223}, {2, 224}, {2, 225}, {2, 226}, {2, 227}, {2, 228}, {2, 229}, {2, 230}, {2, 231}, 447 {2, 232}, {2, 233}, {2, 234}, {2, 235}, {2, 236}, {2, 237}, {2, 238}, {2, 239}, {2, 240}, 448 {2, 241}, {2, 242}, {2, 5}, {2, 243}, {2, 244}, {2, 245}, {2, 188}, {2, 246}, {2, 247}, 449 {2, 248}, {2, 5}, {2, 249}, {2, 250}, {2, 251}, {2, 252}, {2, 253}, {2, 254}, {2, 255}, 450 {2, 256}, {2, 5}, {1, 10}, {2, 257}, {2, 258}, {2, 259}, {2, 260}, {2, 261}, {2, 52}, 451 {2, 262}, {2, 61}, {2, 263}, {2, 264}, {2, 5}, {2, 265}, {2, 266}, {2, 267}, {2, 268}, 452 {2, 225}, {2, 269}, {2, 270}, {2, 271}, {2, 272}, {2, 273}, {2, 274}, {2, 5}, {2, 184}, 453 {2, 275}, {2, 276}, {2, 277}, {2, 278}, {2, 99}, {2, 279}, {2, 280}, {2, 140}, {2, 281}, 454 {2, 282}, {2, 283}, {2, 284}, {2, 285}, {2, 140}, {2, 286}, {2, 287}, {2, 288}, {2, 289}, 455 {2, 290}, {2, 52}, {2, 291}, {2, 292}, {2, 293}, {2, 294}, {2, 5}, {0, 0}, {2, 295}, 456 {0, 0}, {0, 0}, {0, 0}, {0, 0}, 457}; 458State get_transition(int transition, int state) { 459 IndexEntry index = kIndices[state]; 460 if (index.type == 0) { 461 return 0; 462 } 463 if (index.type == 1) { 464 return kFull[index.pos].data[transition]; 465 } 466 const CompactEntry& entry = kCompact[index.pos]; 467 int value = entry.data[transition >> 2]; 468 value >>= 2 * (transition & 3); 469 value &= 3; 470 State table[] = {0, entry.v0, entry.v1, entry.v2}; 471 return table[value]; 472} 473static const int8_t kAccepts[400] = { 474 -1, -1, 84, 84, 87, 62, 67, 87, 37, 36, 36, 36, 36, 34, 52, 76, 57, 61, 81, 38, 39, 50, 74, 475 48, 46, 72, 45, 49, 47, 73, 83, 44, 1, -1, -1, 1, 51, -1, -1, 86, 85, 75, 2, 1, 1, -1, 476 -1, 1, -1, -1, 1, 2, -1, -1, 1, -1, 2, 2, 64, 82, 69, 53, 77, 71, 65, 66, 68, 70, 54, 477 78, 63, 87, -1, 6, -1, -1, -1, -1, -1, 12, 36, 42, 43, 56, 80, 60, 36, 36, 35, 36, 36, 36, 478 36, 36, 36, 36, 36, 36, 36, 36, 15, 36, 36, 36, 13, 36, 36, 36, 36, 36, 36, 23, 36, 36, 36, 479 36, 16, 36, 36, 36, 36, 36, 36, 14, 36, 36, 36, 36, 36, 17, 10, 36, 36, 36, 36, 36, 36, 36, 480 36, 36, 7, 36, 36, 36, 36, 36, 36, 35, 36, 36, 36, 36, 36, 4, 36, 36, 36, 36, 36, 24, 36, 481 8, 36, 36, 36, 36, 36, 35, 36, 36, 36, 36, 36, 36, 31, 36, 36, 36, 36, 5, 19, 36, 36, 36, 482 26, 36, 36, 21, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 483 30, 36, 36, 36, 33, 36, 36, 36, 36, 36, 36, 32, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 484 36, 36, 36, 27, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 25, 36, 36, 20, 36, 36, 36, 36, 36, 485 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 18, 36, 36, 36, 36, 486 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 487 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 488 36, 36, 36, 36, 28, 36, 36, 36, 36, 36, 36, 36, 29, 36, 36, 36, 36, 36, 36, 36, 36, 11, 36, 489 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 3, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 22, 490 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 491 36, 36, 9, 40, 55, 79, 59, 41, 58, 492}; 493 494Token Lexer::next() { 495 // note that we cheat here: normally a lexer needs to worry about the case 496 // where a token has a prefix which is not itself a valid token - for instance, 497 // maybe we have a valid token 'while', but 'w', 'wh', etc. are not valid 498 // tokens. Our grammar doesn't have this property, so we can simplify the logic 499 // a bit. 500 int32_t startOffset = fOffset; 501 if (startOffset == (int32_t)fText.length()) { 502 return Token(Token::Kind::TK_END_OF_FILE, startOffset, 0, fLine); 503 } 504 State state = 1; 505 for (;;) { 506 if (fOffset >= (int32_t)fText.length()) { 507 if (kAccepts[state] == -1) { 508 return Token(Token::Kind::TK_END_OF_FILE, startOffset, 0, fLine); 509 } 510 break; 511 } 512 uint8_t c = (uint8_t)fText[fOffset]; 513 if (c <= 8 || c >= 127) { 514 c = INVALID_CHAR; 515 } 516 State newState = get_transition(kMappings[c], state); 517 if (!newState) { 518 break; 519 } 520 state = newState; 521 ++fOffset; 522 if (c == '\n') { 523 ++fLine; 524 } 525 } 526 Token::Kind kind = (Token::Kind)kAccepts[state]; 527 return Token(kind, startOffset, fOffset - startOffset, fLine); 528} 529 530} // namespace SkSL 531