github.com/shadialtarsha/go-pcre@v0.0.0-20220904164957-b4f1834ceecc/lib/pcre2_linux_amd64.go (about) 1 // Code generated by 'ccgo -o pcre2.go -pkgname lib -trace-translation-units -export-externs X -export-defines D -export-fields F -export-structs S -export-typedefs T pcre.json .libs/libpcre2-8.a', DO NOT EDIT. 2 3 package lib 4 5 import ( 6 "math" 7 "reflect" 8 "sync/atomic" 9 "unsafe" 10 11 "modernc.org/libc" 12 "modernc.org/libc/sys/types" 13 ) 14 15 var _ = math.Pi 16 var _ reflect.Kind 17 var _ atomic.Value 18 var _ unsafe.Pointer 19 var _ *libc.TLS 20 var _ types.Size_t 21 22 const ( 23 DAIO_PRIO_DELTA_MAX = 20 // local_lim.h:78:1: 24 DBC_BASE_MAX = 99 // posix2_lim.h:63:1: 25 DBC_DIM_MAX = 2048 // posix2_lim.h:66:1: 26 DBC_SCALE_MAX = 99 // posix2_lim.h:69:1: 27 DBC_STRING_MAX = 1000 // posix2_lim.h:72:1: 28 DBIG_ENDIAN = 4321 // endian.h:28:1: 29 DBOOL_MAX = 1 // limits.h:186:1: 30 DBOOL_WIDTH = 1 // limits.h:189:1: 31 DBSR_DEFAULT = 1 // pcre2_internal.h:243:1: 32 DBUFSIZ = 8192 // stdio.h:99:1: 33 DBYTE_ORDER = 1234 // endian.h:30:1: 34 DCHARCLASS_NAME_MAX = 2048 // posix2_lim.h:84:1: 35 DCHAR_0 = 48 // pcre2_internal.h:999:1: 36 DCHAR_1 = 49 // pcre2_internal.h:1000:1: 37 DCHAR_2 = 50 // pcre2_internal.h:1001:1: 38 DCHAR_3 = 51 // pcre2_internal.h:1002:1: 39 DCHAR_4 = 52 // pcre2_internal.h:1003:1: 40 DCHAR_5 = 53 // pcre2_internal.h:1004:1: 41 DCHAR_6 = 54 // pcre2_internal.h:1005:1: 42 DCHAR_7 = 55 // pcre2_internal.h:1006:1: 43 DCHAR_8 = 56 // pcre2_internal.h:1007:1: 44 DCHAR_9 = 57 // pcre2_internal.h:1008:1: 45 DCHAR_A = 65 // pcre2_internal.h:1016:1: 46 DCHAR_AMPERSAND = 38 // pcre2_internal.h:989:1: 47 DCHAR_APOSTROPHE = 39 // pcre2_internal.h:990:1: 48 DCHAR_ASTERISK = 42 // pcre2_internal.h:993:1: 49 DCHAR_B = 66 // pcre2_internal.h:1017:1: 50 DCHAR_BACKSLASH = 92 // pcre2_internal.h:1043:1: 51 DCHAR_BEL = 7 // pcre2_internal.h:978:1: 52 DCHAR_BIT = 8 // limits.h:64:1: 53 DCHAR_BS = 8 // pcre2_internal.h:977:1: 54 DCHAR_C = 67 // pcre2_internal.h:1018:1: 55 DCHAR_CIRCUMFLEX_ACCENT = 94 // pcre2_internal.h:1045:1: 56 DCHAR_COLON = 58 // pcre2_internal.h:1009:1: 57 DCHAR_COMMA = 44 // pcre2_internal.h:995:1: 58 DCHAR_COMMERCIAL_AT = 64 // pcre2_internal.h:1015:1: 59 DCHAR_CR = 13 // pcre2_internal.h:973:1: 60 DCHAR_D = 68 // pcre2_internal.h:1019:1: 61 DCHAR_DEL = 127 // pcre2_internal.h:980:1: 62 DCHAR_DOLLAR_SIGN = 36 // pcre2_internal.h:987:1: 63 DCHAR_DOT = 46 // pcre2_internal.h:997:1: 64 DCHAR_E = 69 // pcre2_internal.h:1020:1: 65 DCHAR_EQUALS_SIGN = 61 // pcre2_internal.h:1012:1: 66 DCHAR_ESC = 27 // pcre2_internal.h:979:1: 67 DCHAR_EXCLAMATION_MARK = 33 // pcre2_internal.h:984:1: 68 DCHAR_F = 70 // pcre2_internal.h:1021:1: 69 DCHAR_FF = 12 // pcre2_internal.h:972:1: 70 DCHAR_G = 71 // pcre2_internal.h:1022:1: 71 DCHAR_GRAVE_ACCENT = 96 // pcre2_internal.h:1047:1: 72 DCHAR_GREATER_THAN_SIGN = 62 // pcre2_internal.h:1013:1: 73 DCHAR_H = 72 // pcre2_internal.h:1023:1: 74 DCHAR_HT = 9 // pcre2_internal.h:970:1: 75 DCHAR_I = 73 // pcre2_internal.h:1024:1: 76 DCHAR_J = 74 // pcre2_internal.h:1025:1: 77 DCHAR_K = 75 // pcre2_internal.h:1026:1: 78 DCHAR_L = 76 // pcre2_internal.h:1027:1: 79 DCHAR_LEFT_CURLY_BRACKET = 123 // pcre2_internal.h:1074:1: 80 DCHAR_LEFT_PARENTHESIS = 40 // pcre2_internal.h:991:1: 81 DCHAR_LEFT_SQUARE_BRACKET = 91 // pcre2_internal.h:1042:1: 82 DCHAR_LESS_THAN_SIGN = 60 // pcre2_internal.h:1011:1: 83 DCHAR_LF = 10 // pcre2_internal.h:974:1: 84 DCHAR_M = 77 // pcre2_internal.h:1028:1: 85 DCHAR_MAX = 127 // limits.h:99:1: 86 DCHAR_MIN = -128 // limits.h:97:1: 87 DCHAR_MINUS = 45 // pcre2_internal.h:996:1: 88 DCHAR_N = 78 // pcre2_internal.h:1029:1: 89 DCHAR_NL = 10 // pcre2_internal.h:975:1: 90 DCHAR_NUL = 0 // pcre2_internal.h:982:1: 91 DCHAR_NUMBER_SIGN = 35 // pcre2_internal.h:986:1: 92 DCHAR_O = 79 // pcre2_internal.h:1030:1: 93 DCHAR_P = 80 // pcre2_internal.h:1031:1: 94 DCHAR_PERCENT_SIGN = 37 // pcre2_internal.h:988:1: 95 DCHAR_PLUS = 43 // pcre2_internal.h:994:1: 96 DCHAR_Q = 81 // pcre2_internal.h:1032:1: 97 DCHAR_QUESTION_MARK = 63 // pcre2_internal.h:1014:1: 98 DCHAR_QUOTATION_MARK = 34 // pcre2_internal.h:985:1: 99 DCHAR_R = 82 // pcre2_internal.h:1033:1: 100 DCHAR_RIGHT_CURLY_BRACKET = 125 // pcre2_internal.h:1076:1: 101 DCHAR_RIGHT_PARENTHESIS = 41 // pcre2_internal.h:992:1: 102 DCHAR_RIGHT_SQUARE_BRACKET = 93 // pcre2_internal.h:1044:1: 103 DCHAR_S = 83 // pcre2_internal.h:1034:1: 104 DCHAR_SEMICOLON = 59 // pcre2_internal.h:1010:1: 105 DCHAR_SLASH = 47 // pcre2_internal.h:998:1: 106 DCHAR_SPACE = 32 // pcre2_internal.h:983:1: 107 DCHAR_T = 84 // pcre2_internal.h:1035:1: 108 DCHAR_TILDE = 126 // pcre2_internal.h:1077:1: 109 DCHAR_U = 85 // pcre2_internal.h:1036:1: 110 DCHAR_UNDERSCORE = 95 // pcre2_internal.h:1046:1: 111 DCHAR_V = 86 // pcre2_internal.h:1037:1: 112 DCHAR_VERTICAL_LINE = 124 // pcre2_internal.h:1075:1: 113 DCHAR_VT = 11 // pcre2_internal.h:971:1: 114 DCHAR_W = 87 // pcre2_internal.h:1038:1: 115 DCHAR_WIDTH = 8 // limits.h:165:1: 116 DCHAR_X = 88 // pcre2_internal.h:1039:1: 117 DCHAR_Y = 89 // pcre2_internal.h:1040:1: 118 DCHAR_Z = 90 // pcre2_internal.h:1041:1: 119 DCHAR_a = 97 // pcre2_internal.h:1048:1: 120 DCHAR_b = 98 // pcre2_internal.h:1049:1: 121 DCHAR_c = 99 // pcre2_internal.h:1050:1: 122 DCHAR_d = 100 // pcre2_internal.h:1051:1: 123 DCHAR_e = 101 // pcre2_internal.h:1052:1: 124 DCHAR_f = 102 // pcre2_internal.h:1053:1: 125 DCHAR_g = 103 // pcre2_internal.h:1054:1: 126 DCHAR_h = 104 // pcre2_internal.h:1055:1: 127 DCHAR_i = 105 // pcre2_internal.h:1056:1: 128 DCHAR_j = 106 // pcre2_internal.h:1057:1: 129 DCHAR_k = 107 // pcre2_internal.h:1058:1: 130 DCHAR_l = 108 // pcre2_internal.h:1059:1: 131 DCHAR_m = 109 // pcre2_internal.h:1060:1: 132 DCHAR_n = 110 // pcre2_internal.h:1061:1: 133 DCHAR_o = 111 // pcre2_internal.h:1062:1: 134 DCHAR_p = 112 // pcre2_internal.h:1063:1: 135 DCHAR_q = 113 // pcre2_internal.h:1064:1: 136 DCHAR_r = 114 // pcre2_internal.h:1065:1: 137 DCHAR_s = 115 // pcre2_internal.h:1066:1: 138 DCHAR_t = 116 // pcre2_internal.h:1067:1: 139 DCHAR_u = 117 // pcre2_internal.h:1068:1: 140 DCHAR_v = 118 // pcre2_internal.h:1069:1: 141 DCHAR_w = 119 // pcre2_internal.h:1070:1: 142 DCHAR_x = 120 // pcre2_internal.h:1071:1: 143 DCHAR_y = 121 // pcre2_internal.h:1072:1: 144 DCHAR_z = 122 // pcre2_internal.h:1073:1: 145 DCOLL_WEIGHTS_MAX = 255 // posix2_lim.h:75:1: 146 DCOMPILE_ERROR_BASE = 100 // pcre2_internal.h:221:1: 147 DDELAYTIMER_MAX = 2147483647 // local_lim.h:84:1: 148 DDFA_START_RWS_SIZE = 30720 // pcre2_internal.h:236:1: 149 DEOF = -1 // stdio.h:104:1: 150 DEXIT_FAILURE = 1 // stdlib.h:92:1: 151 DEXIT_SUCCESS = 0 // stdlib.h:93:1: 152 DEXPR_NEST_MAX = 32 // posix2_lim.h:78:1: 153 DFALSE = 0 // pcre2_internal.h:69:1: 154 DFD_SETSIZE = 1024 // select.h:73:1: 155 DFILENAME_MAX = 4096 // stdio_lim.h:27:1: 156 DFOPEN_MAX = 16 // stdio_lim.h:37:1: 157 DHAVE_BCOPY = 1 // config.h:60:1: 158 DHAVE_BZLIB_H = 1 // config.h:63:1: 159 DHAVE_CONFIG_H = 1 // <defines>:1:1: 160 DHAVE_DIRENT_H = 1 // config.h:66:1: 161 DHAVE_DLFCN_H = 1 // config.h:69:1: 162 DHAVE_INTTYPES_H = 1 // config.h:78:1: 163 DHAVE_LIMITS_H = 1 // config.h:81:1: 164 DHAVE_MEMFD_CREATE = 1 // config.h:84:1: 165 DHAVE_MEMMOVE = 1 // config.h:87:1: 166 DHAVE_MKOSTEMP = 1 // config.h:93:1: 167 DHAVE_REALPATH = 1 // config.h:111:1: 168 DHAVE_SECURE_GETENV = 1 // config.h:114:1: 169 DHAVE_STDINT_H = 1 // config.h:117:1: 170 DHAVE_STDIO_H = 1 // config.h:120:1: 171 DHAVE_STDLIB_H = 1 // config.h:123:1: 172 DHAVE_STRERROR = 1 // config.h:126:1: 173 DHAVE_STRINGS_H = 1 // config.h:129:1: 174 DHAVE_STRING_H = 1 // config.h:132:1: 175 DHAVE_SYS_STAT_H = 1 // config.h:135:1: 176 DHAVE_SYS_TYPES_H = 1 // config.h:138:1: 177 DHAVE_SYS_WAIT_H = 1 // config.h:141:1: 178 DHAVE_UNISTD_H = 1 // config.h:144:1: 179 DHAVE_VISIBILITY = 1 // config.h:147:1: 180 DHAVE_WCHAR_H = 1 // config.h:150:1: 181 DHAVE_ZLIB_H = 1 // config.h:156:1: 182 DHEAP_LIMIT = 20000000 // config.h:161:1: 183 DHOST_NAME_MAX = 64 // local_lim.h:93:1: 184 DIMM2_SIZE = 2 // pcre2_intmodedep.h:193:1: 185 DINT16_MAX = 32767 // stdint.h:122:1: 186 DINT16_MIN = -32768 // stdint.h:117:1: 187 DINT16_WIDTH = 16 // stdint.h:280:1: 188 DINT32_MAX = 2147483647 // stdint.h:123:1: 189 DINT32_MIN = -2147483648 // stdint.h:118:1: 190 DINT32_WIDTH = 32 // stdint.h:282:1: 191 DINT64_MAX = 9223372036854775807 // stdint.h:124:1: 192 DINT64_MIN = -9223372036854775808 // stdint.h:119:1: 193 DINT64_WIDTH = 64 // stdint.h:284:1: 194 DINT8_MAX = 127 // stdint.h:121:1: 195 DINT8_MIN = -128 // stdint.h:116:1: 196 DINT8_WIDTH = 8 // stdint.h:278:1: 197 DINTMAX_MAX = 9223372036854775807 // stdint.h:199:1: 198 DINTMAX_MIN = -9223372036854775808 // stdint.h:197:1: 199 DINTMAX_WIDTH = 64 // stdint.h:308:1: 200 DINTPTR_MAX = 9223372036854775807 // stdint.h:187:1: 201 DINTPTR_MIN = -9223372036854775808 // stdint.h:186:1: 202 DINTPTR_WIDTH = 64 // stdint.h:305:1: 203 DINT_FAST16_MAX = 9223372036854775807 // stdint.h:164:1: 204 DINT_FAST16_MIN = -9223372036854775808 // stdint.h:154:1: 205 DINT_FAST16_WIDTH = 64 // stdint.h:298:1: 206 DINT_FAST32_MAX = 9223372036854775807 // stdint.h:165:1: 207 DINT_FAST32_MIN = -9223372036854775808 // stdint.h:155:1: 208 DINT_FAST32_WIDTH = 64 // stdint.h:300:1: 209 DINT_FAST64_MAX = 9223372036854775807 // stdint.h:170:1: 210 DINT_FAST64_MIN = -9223372036854775808 // stdint.h:160:1: 211 DINT_FAST64_WIDTH = 64 // stdint.h:302:1: 212 DINT_FAST8_MAX = 127 // stdint.h:162:1: 213 DINT_FAST8_MIN = -128 // stdint.h:152:1: 214 DINT_FAST8_WIDTH = 8 // stdint.h:296:1: 215 DINT_LEAST16_MAX = 32767 // stdint.h:140:1: 216 DINT_LEAST16_MIN = -32768 // stdint.h:135:1: 217 DINT_LEAST16_WIDTH = 16 // stdint.h:289:1: 218 DINT_LEAST32_MAX = 2147483647 // stdint.h:141:1: 219 DINT_LEAST32_MIN = -2147483648 // stdint.h:136:1: 220 DINT_LEAST32_WIDTH = 32 // stdint.h:291:1: 221 DINT_LEAST64_MAX = 9223372036854775807 // stdint.h:142:1: 222 DINT_LEAST64_MIN = -9223372036854775808 // stdint.h:137:1: 223 DINT_LEAST64_WIDTH = 64 // stdint.h:293:1: 224 DINT_LEAST8_MAX = 127 // stdint.h:139:1: 225 DINT_LEAST8_MIN = -128 // stdint.h:134:1: 226 DINT_LEAST8_WIDTH = 8 // stdint.h:287:1: 227 DINT_MAX = 2147483647 // limits.h:120:1: 228 DINT_MIN = -2147483648 // limits.h:118:1: 229 DINT_WIDTH = 32 // limits.h:175:1: 230 DIOV_MAX = 1024 // xopen_lim.h:66:1: 231 DLINE_MAX = 2048 // posix2_lim.h:81:1: 232 DLINK_SIZE = 2 // config.h:168:1: 233 DLITTLE_ENDIAN = 1234 // endian.h:27:1: 234 DLLONG_MAX = 9223372036854775807 // limits.h:142:1: 235 DLLONG_MIN = -9223372036854775808 // limits.h:140:1: 236 DLLONG_WIDTH = 64 // limits.h:183:1: 237 DLOGIN_NAME_MAX = 256 // local_lim.h:90:1: 238 DLONG_BIT = 64 // xopen_lim.h:137:1: 239 DLONG_LONG_MAX = 9223372036854775807 // limits.h:154:1: 240 DLONG_LONG_MIN = -9223372036854775808 // limits.h:152:1: 241 DLONG_MAX = 9223372036854775807 // limits.h:131:1: 242 DLONG_MIN = -9223372036854775808 // limits.h:129:1: 243 DLONG_WIDTH = 64 // limits.h:179:1: 244 DLOOKBEHIND_MAX = 65535 // pcre2_intmodedep.h:616:1: 245 DLT_OBJDIR = ".libs/" // config.h:171:1: 246 DL_ctermid = 9 // stdio_lim.h:30:1: 247 DL_cuserid = 9 // stdio_lim.h:32:1: 248 DL_tmpnam = 20 // stdio_lim.h:25:1: 249 DMAGIC_NUMBER = 0x50435245 // pcre2_internal.h:547:1: 250 DMATCH_LIMIT = 10000000 // config.h:180:1: 251 DMATCH_LIMIT_DEPTH = 10000000 // config.h:192:1: 252 DMAX_CANON = 255 // limits.h:10:1: 253 DMAX_INPUT = 255 // limits.h:11:1: 254 DMAX_MARK = 255 // pcre2_intmodedep.h:213:1: 255 DMAX_NAME_COUNT = 10000 // config.h:197:1: 256 DMAX_NAME_SIZE = 32 // config.h:202:1: 257 DMAX_NON_UTF_CHAR = 255 // pcre2_internal.h:1894:1: 258 DMAX_PATTERN_SIZE = 65536 // pcre2_intmodedep.h:110:1: 259 DMAX_UTF_CODE_POINT = 0x10ffff // pcre2_internal.h:209:1: 260 DMAX_UTF_SINGLE_CU = 127 // pcre2_intmodedep.h:282:1: 261 DMAYBE_UTF_MULTI = 0 // pcre2_intmodedep.h:278:1: 262 DMB_LEN_MAX = 16 // limits.h:32:1: 263 DMQ_PRIO_MAX = 32768 // local_lim.h:96:1: 264 DNAME_MAX = 255 // limits.h:12:1: 265 DNEWLINE_DEFAULT = 2 // config.h:211:1: 266 DNGROUPS_MAX = 65536 // limits.h:7:1: 267 DNLTYPE_ANY = 1 // pcre2_internal.h:474:1: 268 DNLTYPE_ANYCRLF = 2 // pcre2_internal.h:475:1: 269 DNLTYPE_FIXED = 0 // pcre2_internal.h:473:1: 270 DNL_ARGMAX = 4096 // xopen_lim.h:73:1: 271 DNL_LANGMAX = 2048 // xopen_lim.h:76:1: 272 DNL_MSGMAX = 2147483647 // xopen_lim.h:79:1: 273 DNL_NMAX = 2147483647 // xopen_lim.h:84:1: 274 DNL_SETMAX = 2147483647 // xopen_lim.h:88:1: 275 DNL_TEXTMAX = 2147483647 // xopen_lim.h:91:1: 276 DNOTACHAR = 0xffffffff // pcre2_internal.h:205:1: 277 DNZERO = 20 // xopen_lim.h:94:1: 278 DPACKAGE = "pcre2" // config.h:214:1: 279 DPACKAGE_BUGREPORT = "" // config.h:217:1: 280 DPACKAGE_NAME = "PCRE2" // config.h:220:1: 281 DPACKAGE_STRING = "PCRE2 10.40" // config.h:223:1: 282 DPACKAGE_TARNAME = "pcre2" // config.h:226:1: 283 DPACKAGE_URL = "" // config.h:229:1: 284 DPACKAGE_VERSION = "10.40" // config.h:232:1: 285 DPARENS_NEST_LIMIT = 250 // config.h:237:1: 286 DPATH_MAX = 4096 // limits.h:13:1: 287 DPCRE2GREP_BUFSIZE = 20480 // config.h:245:1: 288 DPCRE2GREP_MAX_BUFSIZE = 1048576 // config.h:251:1: 289 DPCRE2_ALLOW_EMPTY_CLASS = 0x00000001 // pcre2.h:119:1: 290 DPCRE2_ALT_BSUX = 0x00000002 // pcre2.h:120:1: 291 DPCRE2_ALT_CIRCUMFLEX = 0x00200000 // pcre2.h:140:1: 292 DPCRE2_ALT_VERBNAMES = 0x00400000 // pcre2.h:141:1: 293 DPCRE2_ANCHORED = 0x80000000 // pcre2.h:105:1: 294 DPCRE2_AUTO_CALLOUT = 0x00000004 // pcre2.h:121:1: 295 DPCRE2_BSR_ANYCRLF = 2 // pcre2.h:211:1: 296 DPCRE2_BSR_SET = 0x00004000 // pcre2_internal.h:522:1: 297 DPCRE2_BSR_UNICODE = 1 // pcre2.h:210:1: 298 DPCRE2_CALLOUT_BACKTRACK = 0x00000002 // pcre2.h:513:1: 299 DPCRE2_CALLOUT_STARTMATCH = 0x00000001 // pcre2.h:512:1: 300 DPCRE2_CALL_CONVENTION = 0 // pcre2.h:81:1: 301 DPCRE2_CASELESS = 0x00000008 // pcre2.h:122:1: 302 DPCRE2_CODE_UNIT_WIDTH = 8 // <defines>:2:1: 303 DPCRE2_CONFIG_BSR = 0 // pcre2.h:437:1: 304 DPCRE2_CONFIG_COMPILED_WIDTHS = 14 // pcre2.h:452:1: 305 DPCRE2_CONFIG_DEPTHLIMIT = 7 // pcre2.h:444:1: 306 DPCRE2_CONFIG_HEAPLIMIT = 12 // pcre2.h:450:1: 307 DPCRE2_CONFIG_JIT = 1 // pcre2.h:438:1: 308 DPCRE2_CONFIG_JITTARGET = 2 // pcre2.h:439:1: 309 DPCRE2_CONFIG_LINKSIZE = 3 // pcre2.h:440:1: 310 DPCRE2_CONFIG_MATCHLIMIT = 4 // pcre2.h:441:1: 311 DPCRE2_CONFIG_NEVER_BACKSLASH_C = 13 // pcre2.h:451:1: 312 DPCRE2_CONFIG_NEWLINE = 5 // pcre2.h:442:1: 313 DPCRE2_CONFIG_PARENSLIMIT = 6 // pcre2.h:443:1: 314 DPCRE2_CONFIG_RECURSIONLIMIT = 7 // pcre2.h:445:1: 315 DPCRE2_CONFIG_STACKRECURSE = 8 // pcre2.h:446:1: 316 DPCRE2_CONFIG_TABLES_LENGTH = 15 // pcre2.h:453:1: 317 DPCRE2_CONFIG_UNICODE = 9 // pcre2.h:447:1: 318 DPCRE2_CONFIG_UNICODE_VERSION = 10 // pcre2.h:448:1: 319 DPCRE2_CONFIG_VERSION = 11 // pcre2.h:449:1: 320 DPCRE2_CONVERT_GLOB = 0x00000010 // pcre2.h:195:1: 321 DPCRE2_CONVERT_GLOB_NO_STARSTAR = 0x00000050 // pcre2.h:197:1: 322 DPCRE2_CONVERT_GLOB_NO_WILD_SEPARATOR = 0x00000030 // pcre2.h:196:1: 323 DPCRE2_CONVERT_NO_UTF_CHECK = 0x00000002 // pcre2.h:192:1: 324 DPCRE2_CONVERT_POSIX_BASIC = 0x00000004 // pcre2.h:193:1: 325 DPCRE2_CONVERT_POSIX_EXTENDED = 0x00000008 // pcre2.h:194:1: 326 DPCRE2_CONVERT_UTF = 0x00000001 // pcre2.h:191:1: 327 DPCRE2_COPY_MATCHED_SUBJECT = 0x00004000 // pcre2.h:184:1: 328 DPCRE2_DATE = 2004 // pcre2.h:47:1: 329 DPCRE2_DEREF_TABLES = 0x00040000 // pcre2_internal.h:526:1: 330 DPCRE2_DFA_RESTART = 0x00000040 // pcre2.h:176:1: 331 DPCRE2_DFA_SHORTEST = 0x00000080 // pcre2.h:177:1: 332 DPCRE2_DOLLAR_ENDONLY = 0x00000010 // pcre2.h:123:1: 333 DPCRE2_DOTALL = 0x00000020 // pcre2.h:124:1: 334 DPCRE2_DUPCAPUSED = 0x00200000 // pcre2_internal.h:529:1: 335 DPCRE2_DUPNAMES = 0x00000040 // pcre2.h:125:1: 336 DPCRE2_ENDANCHORED = 0x20000000 // pcre2.h:107:1: 337 DPCRE2_ERROR_ALPHA_ASSERTION_UNKNOWN = 195 // pcre2.h:311:1: 338 DPCRE2_ERROR_BACKSLASH_C_CALLER_DISABLED = 183 // pcre2.h:299:1: 339 DPCRE2_ERROR_BACKSLASH_C_LIBRARY_DISABLED = 185 // pcre2.h:301:1: 340 DPCRE2_ERROR_BACKSLASH_C_SYNTAX = 168 // pcre2.h:284:1: 341 DPCRE2_ERROR_BACKSLASH_G_SYNTAX = 157 // pcre2.h:272:1: 342 DPCRE2_ERROR_BACKSLASH_K_IN_LOOKAROUND = 199 // pcre2.h:315:1: 343 DPCRE2_ERROR_BACKSLASH_K_SYNTAX = 169 // pcre2.h:285:1: 344 DPCRE2_ERROR_BACKSLASH_N_IN_CLASS = 171 // pcre2.h:287:1: 345 DPCRE2_ERROR_BACKSLASH_O_MISSING_BRACE = 155 // pcre2.h:270:1: 346 DPCRE2_ERROR_BACKSLASH_U_CODE_POINT_TOO_BIG = 177 // pcre2.h:293:1: 347 DPCRE2_ERROR_BADDATA = -29 // pcre2.h:363:1: 348 DPCRE2_ERROR_BADMAGIC = -31 // pcre2.h:365:1: 349 DPCRE2_ERROR_BADMODE = -32 // pcre2.h:366:1: 350 DPCRE2_ERROR_BADOFFSET = -33 // pcre2.h:367:1: 351 DPCRE2_ERROR_BADOFFSETLIMIT = -56 // pcre2.h:391:1: 352 DPCRE2_ERROR_BADOPTION = -34 // pcre2.h:368:1: 353 DPCRE2_ERROR_BADREPESCAPE = -57 // pcre2.h:392:1: 354 DPCRE2_ERROR_BADREPLACEMENT = -35 // pcre2.h:369:1: 355 DPCRE2_ERROR_BADSERIALIZEDDATA = -62 // pcre2.h:397:1: 356 DPCRE2_ERROR_BADSUBSPATTERN = -60 // pcre2.h:395:1: 357 DPCRE2_ERROR_BADSUBSTITUTION = -59 // pcre2.h:394:1: 358 DPCRE2_ERROR_BADUTFOFFSET = -36 // pcre2.h:370:1: 359 DPCRE2_ERROR_BAD_LITERAL_OPTIONS = 192 // pcre2.h:308:1: 360 DPCRE2_ERROR_BAD_OPTIONS = 117 // pcre2.h:232:1: 361 DPCRE2_ERROR_BAD_RELATIVE_REFERENCE = 129 // pcre2.h:244:1: 362 DPCRE2_ERROR_BAD_SUBPATTERN_REFERENCE = 115 // pcre2.h:230:1: 363 DPCRE2_ERROR_CALLOUT = -37 // pcre2.h:371:1: 364 DPCRE2_ERROR_CALLOUT_BAD_STRING_DELIMITER = 182 // pcre2.h:298:1: 365 DPCRE2_ERROR_CALLOUT_NO_STRING_DELIMITER = 181 // pcre2.h:297:1: 366 DPCRE2_ERROR_CALLOUT_NUMBER_TOO_BIG = 138 // pcre2.h:253:1: 367 DPCRE2_ERROR_CALLOUT_STRING_TOO_LONG = 172 // pcre2.h:288:1: 368 DPCRE2_ERROR_CLASS_INVALID_RANGE = 150 // pcre2.h:265:1: 369 DPCRE2_ERROR_CLASS_RANGE_ORDER = 108 // pcre2.h:223:1: 370 DPCRE2_ERROR_CODE_POINT_TOO_BIG = 134 // pcre2.h:249:1: 371 DPCRE2_ERROR_CONDITION_ASSERTION_EXPECTED = 128 // pcre2.h:243:1: 372 DPCRE2_ERROR_CONDITION_ATOMIC_ASSERTION_EXPECTED = 198 // pcre2.h:314:1: 373 DPCRE2_ERROR_CONVERT_SYNTAX = -64 // pcre2.h:399:1: 374 DPCRE2_ERROR_DEFINE_TOO_MANY_BRANCHES = 154 // pcre2.h:269:1: 375 DPCRE2_ERROR_DEPTHLIMIT = -53 // pcre2.h:387:1: 376 DPCRE2_ERROR_DFA_BADRESTART = -38 // pcre2.h:372:1: 377 DPCRE2_ERROR_DFA_RECURSE = -39 // pcre2.h:373:1: 378 DPCRE2_ERROR_DFA_UCOND = -40 // pcre2.h:374:1: 379 DPCRE2_ERROR_DFA_UFUNC = -41 // pcre2.h:375:1: 380 DPCRE2_ERROR_DFA_UINVALID_UTF = -66 // pcre2.h:401:1: 381 DPCRE2_ERROR_DFA_UITEM = -42 // pcre2.h:376:1: 382 DPCRE2_ERROR_DFA_WSSIZE = -43 // pcre2.h:377:1: 383 DPCRE2_ERROR_DUPLICATE_SUBPATTERN_NAME = 143 // pcre2.h:258:1: 384 DPCRE2_ERROR_END_BACKSLASH = 101 // pcre2.h:216:1: 385 DPCRE2_ERROR_END_BACKSLASH_C = 102 // pcre2.h:217:1: 386 DPCRE2_ERROR_ESCAPE_INVALID_IN_CLASS = 107 // pcre2.h:222:1: 387 DPCRE2_ERROR_ESCAPE_INVALID_IN_VERB = 140 // pcre2.h:255:1: 388 DPCRE2_ERROR_HEAPLIMIT = -63 // pcre2.h:398:1: 389 DPCRE2_ERROR_HEAP_FAILED = 121 // pcre2.h:236:1: 390 DPCRE2_ERROR_INTERNAL = -44 // pcre2.h:378:1: 391 DPCRE2_ERROR_INTERNAL_BAD_CODE = 189 // pcre2.h:305:1: 392 DPCRE2_ERROR_INTERNAL_BAD_CODE_AUTO_POSSESS = 180 // pcre2.h:296:1: 393 DPCRE2_ERROR_INTERNAL_BAD_CODE_IN_SKIP = 190 // pcre2.h:306:1: 394 DPCRE2_ERROR_INTERNAL_BAD_CODE_LOOKBEHINDS = 170 // pcre2.h:286:1: 395 DPCRE2_ERROR_INTERNAL_CODE_OVERFLOW = 123 // pcre2.h:238:1: 396 DPCRE2_ERROR_INTERNAL_DUPMATCH = -65 // pcre2.h:400:1: 397 DPCRE2_ERROR_INTERNAL_MISSING_SUBPATTERN = 153 // pcre2.h:268:1: 398 DPCRE2_ERROR_INTERNAL_OVERRAN_WORKSPACE = 152 // pcre2.h:267:1: 399 DPCRE2_ERROR_INTERNAL_PARSED_OVERFLOW = 163 // pcre2.h:279:1: 400 DPCRE2_ERROR_INTERNAL_STUDY_ERROR = 131 // pcre2.h:246:1: 401 DPCRE2_ERROR_INTERNAL_UNEXPECTED_REPEAT = 110 // pcre2.h:225:1: 402 DPCRE2_ERROR_INTERNAL_UNKNOWN_NEWLINE = 156 // pcre2.h:271:1: 403 DPCRE2_ERROR_INVALID_AFTER_PARENS_QUERY = 111 // pcre2.h:226:1: 404 DPCRE2_ERROR_INVALID_HEXADECIMAL = 167 // pcre2.h:283:1: 405 DPCRE2_ERROR_INVALID_HYPHEN_IN_OPTIONS = 194 // pcre2.h:310:1: 406 DPCRE2_ERROR_INVALID_OCTAL = 164 // pcre2.h:280:1: 407 DPCRE2_ERROR_INVALID_SUBPATTERN_NAME = 144 // pcre2.h:259:1: 408 DPCRE2_ERROR_JIT_BADOPTION = -45 // pcre2.h:379:1: 409 DPCRE2_ERROR_JIT_STACKLIMIT = -46 // pcre2.h:380:1: 410 DPCRE2_ERROR_LOOKBEHIND_INVALID_BACKSLASH_C = 136 // pcre2.h:251:1: 411 DPCRE2_ERROR_LOOKBEHIND_NOT_FIXED_LENGTH = 125 // pcre2.h:240:1: 412 DPCRE2_ERROR_LOOKBEHIND_TOO_COMPLICATED = 135 // pcre2.h:250:1: 413 DPCRE2_ERROR_LOOKBEHIND_TOO_LONG = 187 // pcre2.h:303:1: 414 DPCRE2_ERROR_MALFORMED_UNICODE_PROPERTY = 146 // pcre2.h:261:1: 415 DPCRE2_ERROR_MARK_MISSING_ARGUMENT = 166 // pcre2.h:282:1: 416 DPCRE2_ERROR_MATCHLIMIT = -47 // pcre2.h:381:1: 417 DPCRE2_ERROR_MISSING_CALLOUT_CLOSING = 139 // pcre2.h:254:1: 418 DPCRE2_ERROR_MISSING_CLOSING_PARENTHESIS = 114 // pcre2.h:229:1: 419 DPCRE2_ERROR_MISSING_COMMENT_CLOSING = 118 // pcre2.h:233:1: 420 DPCRE2_ERROR_MISSING_CONDITION_CLOSING = 124 // pcre2.h:239:1: 421 DPCRE2_ERROR_MISSING_NAME_TERMINATOR = 142 // pcre2.h:257:1: 422 DPCRE2_ERROR_MISSING_OCTAL_OR_HEX_DIGITS = 178 // pcre2.h:294:1: 423 DPCRE2_ERROR_MISSING_SQUARE_BRACKET = 106 // pcre2.h:221:1: 424 DPCRE2_ERROR_MIXEDTABLES = -30 // pcre2.h:364:1: 425 DPCRE2_ERROR_NOMATCH = -1 // pcre2.h:320:1: 426 DPCRE2_ERROR_NOMEMORY = -48 // pcre2.h:382:1: 427 DPCRE2_ERROR_NOSUBSTRING = -49 // pcre2.h:383:1: 428 DPCRE2_ERROR_NOUNIQUESUBSTRING = -50 // pcre2.h:384:1: 429 DPCRE2_ERROR_NO_SURROGATES_IN_UTF16 = 191 // pcre2.h:307:1: 430 DPCRE2_ERROR_NULL = -51 // pcre2.h:385:1: 431 DPCRE2_ERROR_NULL_PATTERN = 116 // pcre2.h:231:1: 432 DPCRE2_ERROR_OCTAL_BYTE_TOO_BIG = 151 // pcre2.h:266:1: 433 DPCRE2_ERROR_PARENS_QUERY_R_MISSING_CLOSING = 158 // pcre2.h:273:1: 434 DPCRE2_ERROR_PARENTHESES_NEST_TOO_DEEP = 119 // pcre2.h:234:1: 435 DPCRE2_ERROR_PARENTHESES_STACK_CHECK = 133 // pcre2.h:248:1: 436 DPCRE2_ERROR_PARTIAL = -2 // pcre2.h:321:1: 437 DPCRE2_ERROR_PATTERN_STRING_TOO_LONG = 188 // pcre2.h:304:1: 438 DPCRE2_ERROR_PATTERN_TOO_COMPLICATED = 186 // pcre2.h:302:1: 439 DPCRE2_ERROR_PATTERN_TOO_LARGE = 120 // pcre2.h:235:1: 440 DPCRE2_ERROR_POSIX_CLASS_NOT_IN_CLASS = 112 // pcre2.h:227:1: 441 DPCRE2_ERROR_POSIX_NO_SUPPORT_COLLATING = 113 // pcre2.h:228:1: 442 DPCRE2_ERROR_QUANTIFIER_INVALID = 109 // pcre2.h:224:1: 443 DPCRE2_ERROR_QUANTIFIER_OUT_OF_ORDER = 104 // pcre2.h:219:1: 444 DPCRE2_ERROR_QUANTIFIER_TOO_BIG = 105 // pcre2.h:220:1: 445 DPCRE2_ERROR_QUERY_BARJX_NEST_TOO_DEEP = 184 // pcre2.h:300:1: 446 DPCRE2_ERROR_RECURSELOOP = -52 // pcre2.h:386:1: 447 DPCRE2_ERROR_RECURSIONLIMIT = -53 // pcre2.h:388:1: 448 DPCRE2_ERROR_REPMISSINGBRACE = -58 // pcre2.h:393:1: 449 DPCRE2_ERROR_SCRIPT_RUN_NOT_AVAILABLE = 196 // pcre2.h:312:1: 450 DPCRE2_ERROR_SUBPATTERN_NAMES_MISMATCH = 165 // pcre2.h:281:1: 451 DPCRE2_ERROR_SUBPATTERN_NAME_EXPECTED = 162 // pcre2.h:278:1: 452 DPCRE2_ERROR_SUBPATTERN_NAME_TOO_LONG = 148 // pcre2.h:263:1: 453 DPCRE2_ERROR_SUBPATTERN_NUMBER_TOO_BIG = 161 // pcre2.h:277:1: 454 DPCRE2_ERROR_SUPPORTED_ONLY_IN_UNICODE = 193 // pcre2.h:309:1: 455 DPCRE2_ERROR_TOOMANYREPLACE = -61 // pcre2.h:396:1: 456 DPCRE2_ERROR_TOO_MANY_CAPTURES = 197 // pcre2.h:313:1: 457 DPCRE2_ERROR_TOO_MANY_CONDITION_BRANCHES = 127 // pcre2.h:242:1: 458 DPCRE2_ERROR_TOO_MANY_NAMED_SUBPATTERNS = 149 // pcre2.h:264:1: 459 DPCRE2_ERROR_UCP_IS_DISABLED = 175 // pcre2.h:291:1: 460 DPCRE2_ERROR_UNAVAILABLE = -54 // pcre2.h:389:1: 461 DPCRE2_ERROR_UNICODE_DISALLOWED_CODE_POINT = 173 // pcre2.h:289:1: 462 DPCRE2_ERROR_UNICODE_NOT_SUPPORTED = 132 // pcre2.h:247:1: 463 DPCRE2_ERROR_UNICODE_PROPERTIES_UNAVAILABLE = 145 // pcre2.h:260:1: 464 DPCRE2_ERROR_UNKNOWN_ESCAPE = 103 // pcre2.h:218:1: 465 DPCRE2_ERROR_UNKNOWN_POSIX_CLASS = 130 // pcre2.h:245:1: 466 DPCRE2_ERROR_UNKNOWN_UNICODE_PROPERTY = 147 // pcre2.h:262:1: 467 DPCRE2_ERROR_UNMATCHED_CLOSING_PARENTHESIS = 122 // pcre2.h:237:1: 468 DPCRE2_ERROR_UNRECOGNIZED_AFTER_QUERY_P = 141 // pcre2.h:256:1: 469 DPCRE2_ERROR_UNSET = -55 // pcre2.h:390:1: 470 DPCRE2_ERROR_UNSUPPORTED_ESCAPE_SEQUENCE = 137 // pcre2.h:252:1: 471 DPCRE2_ERROR_UTF16_ERR1 = -24 // pcre2.h:349:1: 472 DPCRE2_ERROR_UTF16_ERR2 = -25 // pcre2.h:350:1: 473 DPCRE2_ERROR_UTF16_ERR3 = -26 // pcre2.h:351:1: 474 DPCRE2_ERROR_UTF32_ERR1 = -27 // pcre2.h:355:1: 475 DPCRE2_ERROR_UTF32_ERR2 = -28 // pcre2.h:356:1: 476 DPCRE2_ERROR_UTF8_ERR1 = -3 // pcre2.h:325:1: 477 DPCRE2_ERROR_UTF8_ERR10 = -12 // pcre2.h:334:1: 478 DPCRE2_ERROR_UTF8_ERR11 = -13 // pcre2.h:335:1: 479 DPCRE2_ERROR_UTF8_ERR12 = -14 // pcre2.h:336:1: 480 DPCRE2_ERROR_UTF8_ERR13 = -15 // pcre2.h:337:1: 481 DPCRE2_ERROR_UTF8_ERR14 = -16 // pcre2.h:338:1: 482 DPCRE2_ERROR_UTF8_ERR15 = -17 // pcre2.h:339:1: 483 DPCRE2_ERROR_UTF8_ERR16 = -18 // pcre2.h:340:1: 484 DPCRE2_ERROR_UTF8_ERR17 = -19 // pcre2.h:341:1: 485 DPCRE2_ERROR_UTF8_ERR18 = -20 // pcre2.h:342:1: 486 DPCRE2_ERROR_UTF8_ERR19 = -21 // pcre2.h:343:1: 487 DPCRE2_ERROR_UTF8_ERR2 = -4 // pcre2.h:326:1: 488 DPCRE2_ERROR_UTF8_ERR20 = -22 // pcre2.h:344:1: 489 DPCRE2_ERROR_UTF8_ERR21 = -23 // pcre2.h:345:1: 490 DPCRE2_ERROR_UTF8_ERR3 = -5 // pcre2.h:327:1: 491 DPCRE2_ERROR_UTF8_ERR4 = -6 // pcre2.h:328:1: 492 DPCRE2_ERROR_UTF8_ERR5 = -7 // pcre2.h:329:1: 493 DPCRE2_ERROR_UTF8_ERR6 = -8 // pcre2.h:330:1: 494 DPCRE2_ERROR_UTF8_ERR7 = -9 // pcre2.h:331:1: 495 DPCRE2_ERROR_UTF8_ERR8 = -10 // pcre2.h:332:1: 496 DPCRE2_ERROR_UTF8_ERR9 = -11 // pcre2.h:333:1: 497 DPCRE2_ERROR_UTF_IS_DISABLED = 174 // pcre2.h:290:1: 498 DPCRE2_ERROR_VERB_ARGUMENT_NOT_ALLOWED = 159 // pcre2.h:275:1: 499 DPCRE2_ERROR_VERB_NAME_TOO_LONG = 176 // pcre2.h:292:1: 500 DPCRE2_ERROR_VERB_UNKNOWN = 160 // pcre2.h:276:1: 501 DPCRE2_ERROR_VERSION_CONDITION_SYNTAX = 179 // pcre2.h:295:1: 502 DPCRE2_ERROR_ZERO_RELATIVE_REFERENCE = 126 // pcre2.h:241:1: 503 DPCRE2_EXTENDED = 0x00000080 // pcre2.h:126:1: 504 DPCRE2_EXTENDED_MORE = 0x01000000 // pcre2.h:143:1: 505 DPCRE2_EXTRA_ALLOW_LOOKAROUND_BSK = 0x00000040 // pcre2.h:155:1: 506 DPCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES = 0x00000001 // pcre2.h:149:1: 507 DPCRE2_EXTRA_ALT_BSUX = 0x00000020 // pcre2.h:154:1: 508 DPCRE2_EXTRA_BAD_ESCAPE_IS_LITERAL = 0x00000002 // pcre2.h:150:1: 509 DPCRE2_EXTRA_ESCAPED_CR_IS_LF = 0x00000010 // pcre2.h:153:1: 510 DPCRE2_EXTRA_MATCH_LINE = 0x00000008 // pcre2.h:152:1: 511 DPCRE2_EXTRA_MATCH_WORD = 0x00000004 // pcre2.h:151:1: 512 DPCRE2_FIRSTCASELESS = 0x00000020 // pcre2_internal.h:513:1: 513 DPCRE2_FIRSTLINE = 0x00000100 // pcre2.h:127:1: 514 DPCRE2_FIRSTMAPSET = 0x00000040 // pcre2_internal.h:514:1: 515 DPCRE2_FIRSTSET = 0x00000010 // pcre2_internal.h:512:1: 516 DPCRE2_HASACCEPT = 0x00800000 // pcre2_internal.h:531:1: 517 DPCRE2_HASBKC = 0x00400000 // pcre2_internal.h:530:1: 518 DPCRE2_HASBKPORX = 0x00100000 // pcre2_internal.h:528:1: 519 DPCRE2_HASCRORLF = 0x00000800 // pcre2_internal.h:519:1: 520 DPCRE2_HASTHEN = 0x00001000 // pcre2_internal.h:520:1: 521 DPCRE2_H_IDEMPOTENT_GUARD = 0 // pcre2.h:40:1: 522 DPCRE2_INFO_ALLOPTIONS = 0 // pcre2.h:406:1: 523 DPCRE2_INFO_ARGOPTIONS = 1 // pcre2.h:407:1: 524 DPCRE2_INFO_BACKREFMAX = 2 // pcre2.h:408:1: 525 DPCRE2_INFO_BSR = 3 // pcre2.h:409:1: 526 DPCRE2_INFO_CAPTURECOUNT = 4 // pcre2.h:410:1: 527 DPCRE2_INFO_DEPTHLIMIT = 21 // pcre2.h:427:1: 528 DPCRE2_INFO_EXTRAOPTIONS = 26 // pcre2.h:433:1: 529 DPCRE2_INFO_FIRSTBITMAP = 7 // pcre2.h:413:1: 530 DPCRE2_INFO_FIRSTCODETYPE = 6 // pcre2.h:412:1: 531 DPCRE2_INFO_FIRSTCODEUNIT = 5 // pcre2.h:411:1: 532 DPCRE2_INFO_FRAMESIZE = 24 // pcre2.h:431:1: 533 DPCRE2_INFO_HASBACKSLASHC = 23 // pcre2.h:430:1: 534 DPCRE2_INFO_HASCRORLF = 8 // pcre2.h:414:1: 535 DPCRE2_INFO_HEAPLIMIT = 25 // pcre2.h:432:1: 536 DPCRE2_INFO_JCHANGED = 9 // pcre2.h:415:1: 537 DPCRE2_INFO_JITSIZE = 10 // pcre2.h:416:1: 538 DPCRE2_INFO_LASTCODETYPE = 12 // pcre2.h:418:1: 539 DPCRE2_INFO_LASTCODEUNIT = 11 // pcre2.h:417:1: 540 DPCRE2_INFO_MATCHEMPTY = 13 // pcre2.h:419:1: 541 DPCRE2_INFO_MATCHLIMIT = 14 // pcre2.h:420:1: 542 DPCRE2_INFO_MAXLOOKBEHIND = 15 // pcre2.h:421:1: 543 DPCRE2_INFO_MINLENGTH = 16 // pcre2.h:422:1: 544 DPCRE2_INFO_NAMECOUNT = 17 // pcre2.h:423:1: 545 DPCRE2_INFO_NAMEENTRYSIZE = 18 // pcre2.h:424:1: 546 DPCRE2_INFO_NAMETABLE = 19 // pcre2.h:425:1: 547 DPCRE2_INFO_NEWLINE = 20 // pcre2.h:426:1: 548 DPCRE2_INFO_RECURSIONLIMIT = 21 // pcre2.h:428:1: 549 DPCRE2_INFO_SIZE = 22 // pcre2.h:429:1: 550 DPCRE2_INTERNAL_H_IDEMPOTENT_GUARD = 0 // pcre2_internal.h:42:1: 551 DPCRE2_JCHANGED = 0x00000400 // pcre2_internal.h:518:1: 552 DPCRE2_JIT_COMPLETE = 0x00000001 // pcre2.h:159:1: 553 DPCRE2_JIT_INVALID_UTF = 0x00000100 // pcre2.h:162:1: 554 DPCRE2_JIT_PARTIAL_HARD = 0x00000004 // pcre2.h:161:1: 555 DPCRE2_JIT_PARTIAL_SOFT = 0x00000002 // pcre2.h:160:1: 556 DPCRE2_KEEP_UNINITIALIZED = 0 // pcre2_internal.h:87:1: 557 DPCRE2_LASTCASELESS = 0x00000100 // pcre2_internal.h:516:1: 558 DPCRE2_LASTSET = 0x00000080 // pcre2_internal.h:515:1: 559 DPCRE2_LITERAL = 0x02000000 // pcre2.h:144:1: 560 DPCRE2_MAJOR = 10 // pcre2.h:44:1: 561 DPCRE2_MATCH_EMPTY = 0x00002000 // pcre2_internal.h:521:1: 562 DPCRE2_MATCH_INVALID_UTF = 0x04000000 // pcre2.h:145:1: 563 DPCRE2_MATCH_UNSET_BACKREF = 0x00000200 // pcre2.h:128:1: 564 DPCRE2_MD_COPIED_SUBJECT = 0x01 // pcre2_internal.h:543:1: 565 DPCRE2_MINOR = 40 // pcre2.h:45:1: 566 DPCRE2_MODE16 = 0x00000002 // pcre2_internal.h:510:1: 567 DPCRE2_MODE32 = 0x00000004 // pcre2_internal.h:511:1: 568 DPCRE2_MODE8 = 0x00000001 // pcre2_internal.h:509:1: 569 DPCRE2_MODE_MASK = 7 // pcre2_internal.h:533:1: 570 DPCRE2_MULTILINE = 0x00000400 // pcre2.h:129:1: 571 DPCRE2_NEVER_BACKSLASH_C = 0x00100000 // pcre2.h:139:1: 572 DPCRE2_NEVER_UCP = 0x00000800 // pcre2.h:130:1: 573 DPCRE2_NEVER_UTF = 0x00001000 // pcre2.h:131:1: 574 DPCRE2_NEWLINE_ANY = 4 // pcre2.h:206:1: 575 DPCRE2_NEWLINE_ANYCRLF = 5 // pcre2.h:207:1: 576 DPCRE2_NEWLINE_CR = 1 // pcre2.h:203:1: 577 DPCRE2_NEWLINE_CRLF = 3 // pcre2.h:205:1: 578 DPCRE2_NEWLINE_LF = 2 // pcre2.h:204:1: 579 DPCRE2_NEWLINE_NUL = 6 // pcre2.h:208:1: 580 DPCRE2_NE_ATST_SET = 0x00020000 // pcre2_internal.h:525:1: 581 DPCRE2_NL_SET = 0x00008000 // pcre2_internal.h:523:1: 582 DPCRE2_NOJIT = 0x00080000 // pcre2_internal.h:527:1: 583 DPCRE2_NOTBOL = 0x00000001 // pcre2.h:170:1: 584 DPCRE2_NOTEMPTY = 0x00000004 // pcre2.h:172:1: 585 DPCRE2_NOTEMPTY_ATSTART = 0x00000008 // pcre2.h:173:1: 586 DPCRE2_NOTEMPTY_SET = 0x00010000 // pcre2_internal.h:524:1: 587 DPCRE2_NOTEOL = 0x00000002 // pcre2.h:171:1: 588 DPCRE2_NO_AUTO_CAPTURE = 0x00002000 // pcre2.h:132:1: 589 DPCRE2_NO_AUTO_POSSESS = 0x00004000 // pcre2.h:133:1: 590 DPCRE2_NO_DOTSTAR_ANCHOR = 0x00008000 // pcre2.h:134:1: 591 DPCRE2_NO_JIT = 0x00002000 // pcre2.h:183:1: 592 DPCRE2_NO_START_OPTIMIZE = 0x00010000 // pcre2.h:135:1: 593 DPCRE2_NO_UTF_CHECK = 0x40000000 // pcre2.h:106:1: 594 DPCRE2_PARTIAL_HARD = 0x00000020 // pcre2.h:175:1: 595 DPCRE2_PARTIAL_SOFT = 0x00000010 // pcre2.h:174:1: 596 DPCRE2_PRERELEASE = 0 // pcre2.h:46:1: 597 DPCRE2_SIZE_MAX = 18446744073709551615 // pcre2.h:472:1: 598 DPCRE2_STARTLINE = 0x00000200 // pcre2_internal.h:517:1: 599 DPCRE2_SUBSTITUTE_EXTENDED = 0x00000200 // pcre2.h:179:1: 600 DPCRE2_SUBSTITUTE_GLOBAL = 0x00000100 // pcre2.h:178:1: 601 DPCRE2_SUBSTITUTE_LITERAL = 0x00008000 // pcre2.h:185:1: 602 DPCRE2_SUBSTITUTE_MATCHED = 0x00010000 // pcre2.h:186:1: 603 DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH = 0x00001000 // pcre2.h:182:1: 604 DPCRE2_SUBSTITUTE_REPLACEMENT_ONLY = 0x00020000 // pcre2.h:187:1: 605 DPCRE2_SUBSTITUTE_UNKNOWN_UNSET = 0x00000800 // pcre2.h:181:1: 606 DPCRE2_SUBSTITUTE_UNSET_EMPTY = 0x00000400 // pcre2.h:180:1: 607 DPCRE2_UCP = 0x00020000 // pcre2.h:136:1: 608 DPCRE2_UCP_H_IDEMPOTENT_GUARD = 0 // pcre2_ucp.h:46:1: 609 DPCRE2_UNGREEDY = 0x00040000 // pcre2.h:137:1: 610 DPCRE2_USE_OFFSET_LIMIT = 0x00800000 // pcre2.h:142:1: 611 DPCRE2_UTF = 0x00080000 // pcre2.h:138:1: 612 DPDP_ENDIAN = 3412 // endian.h:29:1: 613 DPIPE_BUF = 4096 // limits.h:14:1: 614 DPRIX16 = "X" // inttypes.h:135:1: 615 DPRIX32 = "X" // inttypes.h:136:1: 616 DPRIX8 = "X" // inttypes.h:134:1: 617 DPRIXFAST8 = "X" // inttypes.h:144:1: 618 DPRIXLEAST16 = "X" // inttypes.h:140:1: 619 DPRIXLEAST32 = "X" // inttypes.h:141:1: 620 DPRIXLEAST8 = "X" // inttypes.h:139:1: 621 DPRId16 = "d" // inttypes.h:55:1: 622 DPRId32 = "d" // inttypes.h:56:1: 623 DPRId8 = "d" // inttypes.h:54:1: 624 DPRIdFAST8 = "d" // inttypes.h:64:1: 625 DPRIdLEAST16 = "d" // inttypes.h:60:1: 626 DPRIdLEAST32 = "d" // inttypes.h:61:1: 627 DPRIdLEAST8 = "d" // inttypes.h:59:1: 628 DPRIi16 = "i" // inttypes.h:71:1: 629 DPRIi32 = "i" // inttypes.h:72:1: 630 DPRIi8 = "i" // inttypes.h:70:1: 631 DPRIiFAST8 = "i" // inttypes.h:80:1: 632 DPRIiLEAST16 = "i" // inttypes.h:76:1: 633 DPRIiLEAST32 = "i" // inttypes.h:77:1: 634 DPRIiLEAST8 = "i" // inttypes.h:75:1: 635 DPRIo16 = "o" // inttypes.h:87:1: 636 DPRIo32 = "o" // inttypes.h:88:1: 637 DPRIo8 = "o" // inttypes.h:86:1: 638 DPRIoFAST8 = "o" // inttypes.h:96:1: 639 DPRIoLEAST16 = "o" // inttypes.h:92:1: 640 DPRIoLEAST32 = "o" // inttypes.h:93:1: 641 DPRIoLEAST8 = "o" // inttypes.h:91:1: 642 DPRIu16 = "u" // inttypes.h:103:1: 643 DPRIu32 = "u" // inttypes.h:104:1: 644 DPRIu8 = "u" // inttypes.h:102:1: 645 DPRIuFAST8 = "u" // inttypes.h:112:1: 646 DPRIuLEAST16 = "u" // inttypes.h:108:1: 647 DPRIuLEAST32 = "u" // inttypes.h:109:1: 648 DPRIuLEAST8 = "u" // inttypes.h:107:1: 649 DPRIx16 = "x" // inttypes.h:119:1: 650 DPRIx32 = "x" // inttypes.h:120:1: 651 DPRIx8 = "x" // inttypes.h:118:1: 652 DPRIxFAST8 = "x" // inttypes.h:128:1: 653 DPRIxLEAST16 = "x" // inttypes.h:124:1: 654 DPRIxLEAST32 = "x" // inttypes.h:125:1: 655 DPRIxLEAST8 = "x" // inttypes.h:123:1: 656 DPTHREAD_DESTRUCTOR_ITERATIONS = 4 // local_lim.h:69:1: 657 DPTHREAD_KEYS_MAX = 1024 // local_lim.h:64:1: 658 DPTRDIFF_MAX = 9223372036854775807 // stdint.h:210:1: 659 DPTRDIFF_MIN = -9223372036854775808 // stdint.h:209:1: 660 DPTRDIFF_WIDTH = 64 // stdint.h:311:1: 661 DPT_ALNUM = 6 // pcre2_internal.h:1282:1: 662 DPT_ANY = 0 // pcre2_internal.h:1276:1: 663 DPT_BIDICL = 12 // pcre2_internal.h:1288:1: 664 DPT_BOOL = 13 // pcre2_internal.h:1289:1: 665 DPT_CLIST = 10 // pcre2_internal.h:1286:1: 666 DPT_GC = 2 // pcre2_internal.h:1278:1: 667 DPT_LAMP = 1 // pcre2_internal.h:1277:1: 668 DPT_NOTSCRIPT = 255 // pcre2_internal.h:1305:1: 669 DPT_PC = 3 // pcre2_internal.h:1279:1: 670 DPT_PXGRAPH = 14 // pcre2_internal.h:1298:1: 671 DPT_PXPRINT = 15 // pcre2_internal.h:1299:1: 672 DPT_PXPUNCT = 16 // pcre2_internal.h:1300:1: 673 DPT_PXSPACE = 8 // pcre2_internal.h:1284:1: 674 DPT_SC = 4 // pcre2_internal.h:1280:1: 675 DPT_SCX = 5 // pcre2_internal.h:1281:1: 676 DPT_SPACE = 7 // pcre2_internal.h:1283:1: 677 DPT_TABSIZE = 14 // pcre2_internal.h:1290:1: 678 DPT_UCNC = 11 // pcre2_internal.h:1287:1: 679 DPT_WORD = 9 // pcre2_internal.h:1285:1: 680 DP_tmpdir = "/tmp" // stdio.h:120:1: 681 DRAND_MAX = 2147483647 // stdlib.h:87:1: 682 DRENAME_EXCHANGE = 2 // stdio.h:165:1: 683 DRENAME_NOREPLACE = 1 // stdio.h:164:1: 684 DRENAME_WHITEOUT = 4 // stdio.h:166:1: 685 DREQ_CU_MAX = 5000 // pcre2_internal.h:555:1: 686 DRE_DUP_MAX = 32767 // posix2_lim.h:88:1: 687 DRREF_ANY = 0xffff // pcre2_internal.h:1783:1: 688 DRTSIG_MAX = 32 // limits.h:19:1: 689 DSCHAR_MAX = 127 // limits.h:75:1: 690 DSCHAR_MIN = -128 // limits.h:73:1: 691 DSCHAR_WIDTH = 8 // limits.h:167:1: 692 DSCNd16 = "hd" // inttypes.h:172:1: 693 DSCNd32 = "d" // inttypes.h:173:1: 694 DSCNd8 = "hhd" // inttypes.h:171:1: 695 DSCNdFAST8 = "hhd" // inttypes.h:181:1: 696 DSCNdLEAST16 = "hd" // inttypes.h:177:1: 697 DSCNdLEAST32 = "d" // inttypes.h:178:1: 698 DSCNdLEAST8 = "hhd" // inttypes.h:176:1: 699 DSCNi16 = "hi" // inttypes.h:188:1: 700 DSCNi32 = "i" // inttypes.h:189:1: 701 DSCNi8 = "hhi" // inttypes.h:187:1: 702 DSCNiFAST8 = "hhi" // inttypes.h:197:1: 703 DSCNiLEAST16 = "hi" // inttypes.h:193:1: 704 DSCNiLEAST32 = "i" // inttypes.h:194:1: 705 DSCNiLEAST8 = "hhi" // inttypes.h:192:1: 706 DSCNo16 = "ho" // inttypes.h:220:1: 707 DSCNo32 = "o" // inttypes.h:221:1: 708 DSCNo8 = "hho" // inttypes.h:219:1: 709 DSCNoFAST8 = "hho" // inttypes.h:229:1: 710 DSCNoLEAST16 = "ho" // inttypes.h:225:1: 711 DSCNoLEAST32 = "o" // inttypes.h:226:1: 712 DSCNoLEAST8 = "hho" // inttypes.h:224:1: 713 DSCNu16 = "hu" // inttypes.h:204:1: 714 DSCNu32 = "u" // inttypes.h:205:1: 715 DSCNu8 = "hhu" // inttypes.h:203:1: 716 DSCNuFAST8 = "hhu" // inttypes.h:213:1: 717 DSCNuLEAST16 = "hu" // inttypes.h:209:1: 718 DSCNuLEAST32 = "u" // inttypes.h:210:1: 719 DSCNuLEAST8 = "hhu" // inttypes.h:208:1: 720 DSCNx16 = "hx" // inttypes.h:236:1: 721 DSCNx32 = "x" // inttypes.h:237:1: 722 DSCNx8 = "hhx" // inttypes.h:235:1: 723 DSCNxFAST8 = "hhx" // inttypes.h:245:1: 724 DSCNxLEAST16 = "hx" // inttypes.h:241:1: 725 DSCNxLEAST32 = "x" // inttypes.h:242:1: 726 DSCNxLEAST8 = "hhx" // inttypes.h:240:1: 727 DSEEK_CUR = 1 // stdio.h:110:1: 728 DSEEK_DATA = 3 // stdio.h:113:1: 729 DSEEK_END = 2 // stdio.h:111:1: 730 DSEEK_HOLE = 4 // stdio.h:114:1: 731 DSEEK_SET = 0 // stdio.h:109:1: 732 DSEM_VALUE_MAX = 2147483647 // local_lim.h:99:1: 733 DSHRT_MAX = 32767 // limits.h:106:1: 734 DSHRT_MIN = -32768 // limits.h:104:1: 735 DSHRT_WIDTH = 16 // limits.h:171:1: 736 DSIG_ATOMIC_MAX = 2147483647 // stdint.h:223:1: 737 DSIG_ATOMIC_MIN = -2147483648 // stdint.h:222:1: 738 DSIG_ATOMIC_WIDTH = 32 // stdint.h:312:1: 739 DSIZE_MAX = 18446744073709551615 // stdint.h:227:1: 740 DSIZE_WIDTH = 64 // stdint.h:313:1: 741 DSSIZE_MAX = 9223372036854775807 // posix1_lim.h:169:1: 742 DSTART_FRAMES_SIZE = 20480 // pcre2_internal.h:231:1: 743 DSTDC_HEADERS = 1 // config.h:292:1: 744 DSTR_0 = "\060" // pcre2_internal.h:1106:1: 745 DSTR_1 = "\061" // pcre2_internal.h:1107:1: 746 DSTR_2 = "\062" // pcre2_internal.h:1108:1: 747 DSTR_3 = "\063" // pcre2_internal.h:1109:1: 748 DSTR_4 = "\064" // pcre2_internal.h:1110:1: 749 DSTR_5 = "\065" // pcre2_internal.h:1111:1: 750 DSTR_6 = "\066" // pcre2_internal.h:1112:1: 751 DSTR_7 = "\067" // pcre2_internal.h:1113:1: 752 DSTR_8 = "\070" // pcre2_internal.h:1114:1: 753 DSTR_9 = "\071" // pcre2_internal.h:1115:1: 754 DSTR_A = "\101" // pcre2_internal.h:1123:1: 755 DSTR_AMPERSAND = "\046" // pcre2_internal.h:1096:1: 756 DSTR_APOSTROPHE = "\047" // pcre2_internal.h:1097:1: 757 DSTR_ASTERISK = "\052" // pcre2_internal.h:1100:1: 758 DSTR_B = "\102" // pcre2_internal.h:1124:1: 759 DSTR_BACKSLASH = "\134" // pcre2_internal.h:1150:1: 760 DSTR_BEL = "\007" // pcre2_internal.h:1086:1: 761 DSTR_BS = "\010" // pcre2_internal.h:1085:1: 762 DSTR_C = "\103" // pcre2_internal.h:1125:1: 763 DSTR_CIRCUMFLEX_ACCENT = "\136" // pcre2_internal.h:1152:1: 764 DSTR_COLON = "\072" // pcre2_internal.h:1116:1: 765 DSTR_COMMA = "\054" // pcre2_internal.h:1102:1: 766 DSTR_COMMERCIAL_AT = "\100" // pcre2_internal.h:1122:1: 767 DSTR_CR = "\015" // pcre2_internal.h:1083:1: 768 DSTR_D = "\104" // pcre2_internal.h:1126:1: 769 DSTR_DEL = "\177" // pcre2_internal.h:1088:1: 770 DSTR_DOLLAR_SIGN = "\044" // pcre2_internal.h:1094:1: 771 DSTR_DOT = "\056" // pcre2_internal.h:1104:1: 772 DSTR_E = "\105" // pcre2_internal.h:1127:1: 773 DSTR_EQUALS_SIGN = "\075" // pcre2_internal.h:1119:1: 774 DSTR_ESC = "\033" // pcre2_internal.h:1087:1: 775 DSTR_EXCLAMATION_MARK = "\041" // pcre2_internal.h:1091:1: 776 DSTR_F = "\106" // pcre2_internal.h:1128:1: 777 DSTR_FF = "\014" // pcre2_internal.h:1082:1: 778 DSTR_G = "\107" // pcre2_internal.h:1129:1: 779 DSTR_GRAVE_ACCENT = "\140" // pcre2_internal.h:1154:1: 780 DSTR_GREATER_THAN_SIGN = "\076" // pcre2_internal.h:1120:1: 781 DSTR_H = "\110" // pcre2_internal.h:1130:1: 782 DSTR_HT = "\011" // pcre2_internal.h:1080:1: 783 DSTR_I = "\111" // pcre2_internal.h:1131:1: 784 DSTR_J = "\112" // pcre2_internal.h:1132:1: 785 DSTR_K = "\113" // pcre2_internal.h:1133:1: 786 DSTR_L = "\114" // pcre2_internal.h:1134:1: 787 DSTR_LEFT_CURLY_BRACKET = "\173" // pcre2_internal.h:1181:1: 788 DSTR_LEFT_PARENTHESIS = "\050" // pcre2_internal.h:1098:1: 789 DSTR_LEFT_SQUARE_BRACKET = "\133" // pcre2_internal.h:1149:1: 790 DSTR_LESS_THAN_SIGN = "\074" // pcre2_internal.h:1118:1: 791 DSTR_M = "\115" // pcre2_internal.h:1135:1: 792 DSTR_MINUS = "\055" // pcre2_internal.h:1103:1: 793 DSTR_N = "\116" // pcre2_internal.h:1136:1: 794 DSTR_NL = "\012" // pcre2_internal.h:1084:1: 795 DSTR_NUMBER_SIGN = "\043" // pcre2_internal.h:1093:1: 796 DSTR_O = "\117" // pcre2_internal.h:1137:1: 797 DSTR_P = "\120" // pcre2_internal.h:1138:1: 798 DSTR_PERCENT_SIGN = "\045" // pcre2_internal.h:1095:1: 799 DSTR_PLUS = "\053" // pcre2_internal.h:1101:1: 800 DSTR_Q = "\121" // pcre2_internal.h:1139:1: 801 DSTR_QUESTION_MARK = "\077" // pcre2_internal.h:1121:1: 802 DSTR_QUOTATION_MARK = "\042" // pcre2_internal.h:1092:1: 803 DSTR_R = "\122" // pcre2_internal.h:1140:1: 804 DSTR_RIGHT_CURLY_BRACKET = "\175" // pcre2_internal.h:1183:1: 805 DSTR_RIGHT_PARENTHESIS = "\051" // pcre2_internal.h:1099:1: 806 DSTR_RIGHT_SQUARE_BRACKET = "\135" // pcre2_internal.h:1151:1: 807 DSTR_S = "\123" // pcre2_internal.h:1141:1: 808 DSTR_SEMICOLON = "\073" // pcre2_internal.h:1117:1: 809 DSTR_SLASH = "\057" // pcre2_internal.h:1105:1: 810 DSTR_SPACE = "\040" // pcre2_internal.h:1090:1: 811 DSTR_T = "\124" // pcre2_internal.h:1142:1: 812 DSTR_TILDE = "\176" // pcre2_internal.h:1184:1: 813 DSTR_U = "\125" // pcre2_internal.h:1143:1: 814 DSTR_UNDERSCORE = "\137" // pcre2_internal.h:1153:1: 815 DSTR_V = "\126" // pcre2_internal.h:1144:1: 816 DSTR_VERTICAL_LINE = "\174" // pcre2_internal.h:1182:1: 817 DSTR_VT = "\013" // pcre2_internal.h:1081:1: 818 DSTR_W = "\127" // pcre2_internal.h:1145:1: 819 DSTR_X = "\130" // pcre2_internal.h:1146:1: 820 DSTR_Y = "\131" // pcre2_internal.h:1147:1: 821 DSTR_Z = "\132" // pcre2_internal.h:1148:1: 822 DSTR_a = "\141" // pcre2_internal.h:1155:1: 823 DSTR_b = "\142" // pcre2_internal.h:1156:1: 824 DSTR_c = "\143" // pcre2_internal.h:1157:1: 825 DSTR_d = "\144" // pcre2_internal.h:1158:1: 826 DSTR_e = "\145" // pcre2_internal.h:1159:1: 827 DSTR_f = "\146" // pcre2_internal.h:1160:1: 828 DSTR_g = "\147" // pcre2_internal.h:1161:1: 829 DSTR_h = "\150" // pcre2_internal.h:1162:1: 830 DSTR_i = "\151" // pcre2_internal.h:1163:1: 831 DSTR_j = "\152" // pcre2_internal.h:1164:1: 832 DSTR_k = "\153" // pcre2_internal.h:1165:1: 833 DSTR_l = "\154" // pcre2_internal.h:1166:1: 834 DSTR_m = "\155" // pcre2_internal.h:1167:1: 835 DSTR_n = "\156" // pcre2_internal.h:1168:1: 836 DSTR_o = "\157" // pcre2_internal.h:1169:1: 837 DSTR_p = "\160" // pcre2_internal.h:1170:1: 838 DSTR_q = "\161" // pcre2_internal.h:1171:1: 839 DSTR_r = "\162" // pcre2_internal.h:1172:1: 840 DSTR_s = "\163" // pcre2_internal.h:1173:1: 841 DSTR_t = "\164" // pcre2_internal.h:1174:1: 842 DSTR_u = "\165" // pcre2_internal.h:1175:1: 843 DSTR_v = "\166" // pcre2_internal.h:1176:1: 844 DSTR_w = "\167" // pcre2_internal.h:1177:1: 845 DSTR_x = "\170" // pcre2_internal.h:1178:1: 846 DSTR_y = "\171" // pcre2_internal.h:1179:1: 847 DSTR_z = "\172" // pcre2_internal.h:1180:1: 848 DSUPPORT_PCRE2GREP_CALLOUT = 0 // config.h:312:1: 849 DSUPPORT_PCRE2GREP_CALLOUT_FORK = 0 // config.h:317:1: 850 DSUPPORT_PCRE2_8 = 0 // config.h:330:1: 851 DSUPPORT_UNICODE = 0 // config.h:336:1: 852 DSUPPORT_WIDE_CHARS = 0 // pcre2_intmodedep.h:216:1: 853 DTABLES_LENGTH = 1088 // pcre2_internal.h:593:1: 854 DTMP_MAX = 238328 // stdio_lim.h:26:1: 855 DTRUE = 1 // pcre2_internal.h:70:1: 856 DTTY_NAME_MAX = 32 // local_lim.h:87:1: 857 DUCD_BIDICLASS_SHIFT = 11 // pcre2_internal.h:1844:1: 858 DUCD_BLOCK_SIZE = 128 // pcre2_internal.h:1831:1: 859 DUCD_BPROPS_MASK = 0xfff // pcre2_internal.h:1845:1: 860 DUCD_SCRIPTX_MASK = 0x3ff // pcre2_internal.h:1843:1: 861 DUCHAR_MAX = 255 // limits.h:82:1: 862 DUCHAR_WIDTH = 8 // limits.h:169:1: 863 DUINT16_MAX = 65535 // stdint.h:128:1: 864 DUINT16_WIDTH = 16 // stdint.h:281:1: 865 DUINT32_MAX = 4294967295 // stdint.h:129:1: 866 DUINT32_WIDTH = 32 // stdint.h:283:1: 867 DUINT64_MAX = 18446744073709551615 // stdint.h:130:1: 868 DUINT64_WIDTH = 64 // stdint.h:285:1: 869 DUINT8_MAX = 255 // stdint.h:127:1: 870 DUINT8_WIDTH = 8 // stdint.h:279:1: 871 DUINTMAX_MAX = 18446744073709551615 // stdint.h:202:1: 872 DUINTMAX_WIDTH = 64 // stdint.h:309:1: 873 DUINTPTR_MAX = 18446744073709551615 // stdint.h:188:1: 874 DUINTPTR_WIDTH = 64 // stdint.h:306:1: 875 DUINT_FAST16_MAX = 18446744073709551615 // stdint.h:175:1: 876 DUINT_FAST16_WIDTH = 64 // stdint.h:299:1: 877 DUINT_FAST32_MAX = 18446744073709551615 // stdint.h:176:1: 878 DUINT_FAST32_WIDTH = 64 // stdint.h:301:1: 879 DUINT_FAST64_MAX = 18446744073709551615 // stdint.h:181:1: 880 DUINT_FAST64_WIDTH = 64 // stdint.h:303:1: 881 DUINT_FAST8_MAX = 255 // stdint.h:173:1: 882 DUINT_FAST8_WIDTH = 8 // stdint.h:297:1: 883 DUINT_LEAST16_MAX = 65535 // stdint.h:146:1: 884 DUINT_LEAST16_WIDTH = 16 // stdint.h:290:1: 885 DUINT_LEAST32_MAX = 4294967295 // stdint.h:147:1: 886 DUINT_LEAST32_WIDTH = 32 // stdint.h:292:1: 887 DUINT_LEAST64_MAX = 18446744073709551615 // stdint.h:148:1: 888 DUINT_LEAST64_WIDTH = 64 // stdint.h:294:1: 889 DUINT_LEAST8_MAX = 255 // stdint.h:145:1: 890 DUINT_LEAST8_WIDTH = 8 // stdint.h:288:1: 891 DUINT_MAX = 4294967295 // limits.h:124:1: 892 DUINT_WIDTH = 32 // limits.h:177:1: 893 DULLONG_MAX = 18446744073709551615 // limits.h:146:1: 894 DULLONG_WIDTH = 64 // limits.h:185:1: 895 DULONG_LONG_MAX = 18446744073709551615 // limits.h:158:1: 896 DULONG_MAX = 18446744073709551615 // limits.h:135:1: 897 DULONG_WIDTH = 64 // limits.h:181:1: 898 DUSHRT_MAX = 65535 // limits.h:113:1: 899 DUSHRT_WIDTH = 16 // limits.h:173:1: 900 DVERSION = "10.40" // config.h:430:1: 901 DWCHAR_MAX = 2147483647 // stdint.h:240:1: 902 DWCHAR_MIN = -2147483648 // stdint.h:239:1: 903 DWCHAR_WIDTH = 32 // stdint.h:314:1: 904 DWCONTINUED = 8 // waitflags.h:32:1: 905 DWEXITED = 4 // waitflags.h:31:1: 906 DWINT_MAX = 4294967295 // stdint.h:245:1: 907 DWINT_MIN = 0 // stdint.h:244:1: 908 DWINT_WIDTH = 32 // stdint.h:315:1: 909 DWNOHANG = 1 // waitflags.h:25:1: 910 DWNOWAIT = 0x01000000 // waitflags.h:33:1: 911 DWORD_BIT = 32 // xopen_lim.h:114:1: 912 DWSTOPPED = 2 // waitflags.h:30:1: 913 DWUNTRACED = 2 // waitflags.h:26:1: 914 DXATTR_LIST_MAX = 65536 // limits.h:17:1: 915 DXATTR_NAME_MAX = 255 // limits.h:15:1: 916 DXATTR_SIZE_MAX = 65536 // limits.h:16:1: 917 DXCL_END = 0 // pcre2_internal.h:1314:1: 918 DXCL_HASPROP = 0x04 // pcre2_internal.h:1312:1: 919 DXCL_MAP = 0x02 // pcre2_internal.h:1311:1: 920 DXCL_NOT = 0x01 // pcre2_internal.h:1310:1: 921 DXCL_NOTPROP = 4 // pcre2_internal.h:1318:1: 922 DXCL_PROP = 3 // pcre2_internal.h:1317:1: 923 DXCL_RANGE = 2 // pcre2_internal.h:1316:1: 924 DXCL_SINGLE = 1 // pcre2_internal.h:1315:1: 925 D_ALLOCA_H = 1 // alloca.h:19:1: 926 D_ALL_SOURCE = 1 // config.h:343:1: 927 D_ANSI_STDDEF_H = 0 // stddef.h:42:1: 928 D_ATFILE_SOURCE = 1 // features.h:351:1: 929 D_BITS_ATOMIC_WIDE_COUNTER_H = 0 // atomic_wide_counter.h:20:1: 930 D_BITS_BYTESWAP_H = 1 // byteswap.h:24:1: 931 D_BITS_ENDIANNESS_H = 1 // endianness.h:2:1: 932 D_BITS_ENDIAN_H = 1 // endian.h:20:1: 933 D_BITS_FLOATN_COMMON_H = 0 // floatn-common.h:21:1: 934 D_BITS_FLOATN_H = 0 // floatn.h:20:1: 935 D_BITS_POSIX1_LIM_H = 1 // posix1_lim.h:25:1: 936 D_BITS_POSIX2_LIM_H = 1 // posix2_lim.h:23:1: 937 D_BITS_PTHREADTYPES_ARCH_H = 1 // pthreadtypes-arch.h:19:1: 938 D_BITS_PTHREADTYPES_COMMON_H = 1 // pthreadtypes.h:20:1: 939 D_BITS_STDINT_INTN_H = 1 // stdint-intn.h:20:1: 940 D_BITS_STDINT_UINTN_H = 1 // stdint-uintn.h:20:1: 941 D_BITS_STDIO_LIM_H = 1 // stdio_lim.h:19:1: 942 D_BITS_TIME64_H = 1 // time64.h:24:1: 943 D_BITS_TYPESIZES_H = 1 // typesizes.h:24:1: 944 D_BITS_TYPES_H = 1 // types.h:24:1: 945 D_BITS_TYPES_LOCALE_T_H = 1 // locale_t.h:20:1: 946 D_BITS_TYPES___LOCALE_T_H = 1 // __locale_t.h:20:1: 947 D_BITS_UINTN_IDENTITY_H = 1 // uintn-identity.h:24:1: 948 D_BITS_UIO_LIM_H = 1 // uio_lim.h:20:1: 949 D_BITS_WCHAR_H = 1 // wchar.h:20:1: 950 D_BSD_PTRDIFF_T_ = 0 // stddef.h:136:1: 951 D_BSD_SIZE_T_ = 0 // stddef.h:189:1: 952 D_BSD_SIZE_T_DEFINED_ = 0 // stddef.h:192:1: 953 D_CTYPE_H = 1 // ctype.h:23:1: 954 D_DARWIN_C_SOURCE = 1 // config.h:347:1: 955 D_DEFAULT_SOURCE = 1 // features.h:236:1: 956 D_DYNAMIC_STACK_SIZE_SOURCE = 1 // features.h:224:1: 957 D_ENDIAN_H = 1 // endian.h:19:1: 958 D_FEATURES_H = 1 // features.h:19:1: 959 D_FILE_OFFSET_BITS = 64 // <builtin>:25:1: 960 D_GCC_LIMITS_H_ = 0 // limits.h:30:1: 961 D_GCC_MAX_ALIGN_T = 0 // stddef.h:411:1: 962 D_GCC_PTRDIFF_T = 0 // stddef.h:138:1: 963 D_GCC_SIZE_T = 0 // stddef.h:195:1: 964 D_GCC_WCHAR_T = 0 // stddef.h:273:1: 965 D_GCC_WRAP_STDINT_H = 0 // stdint.h:13:1: 966 D_GNU_SOURCE = 1 // config.h:355:1: 967 D_HPUX_ALT_XOPEN_SOCKET_API = 1 // config.h:360:1: 968 D_INTTYPES_H = 1 // inttypes.h:23:1: 969 D_IOFBF = 0 // stdio.h:93:1: 970 D_IOLBF = 1 // stdio.h:94:1: 971 D_IONBF = 2 // stdio.h:95:1: 972 D_IO_EOF_SEEN = 0x0010 // struct_FILE.h:111:1: 973 D_IO_ERR_SEEN = 0x0020 // struct_FILE.h:114:1: 974 D_IO_USER_LOCK = 0x8000 // struct_FILE.h:117:1: 975 D_ISOC11_SOURCE = 1 // features.h:206:1: 976 D_ISOC2X_SOURCE = 1 // features.h:208:1: 977 D_ISOC95_SOURCE = 1 // features.h:202:1: 978 D_ISOC99_SOURCE = 1 // features.h:204:1: 979 D_LARGEFILE64_SOURCE = 1 // features.h:218:1: 980 D_LARGEFILE_SOURCE = 1 // features.h:360:1: 981 D_LIBC_LIMITS_H_ = 1 // limits.h:23:1: 982 D_LIMITS_H___ = 0 // limits.h:60:1: 983 D_LINUX_LIMITS_H = 0 // limits.h:3:1: 984 D_LP64 = 1 // <predefined>:297:1: 985 D_NETBSD_SOURCE = 1 // config.h:371:1: 986 D_OPENBSD_SOURCE = 1 // config.h:376:1: 987 D_POSIX2_BC_BASE_MAX = 99 // posix2_lim.h:27:1: 988 D_POSIX2_BC_DIM_MAX = 2048 // posix2_lim.h:30:1: 989 D_POSIX2_BC_SCALE_MAX = 99 // posix2_lim.h:33:1: 990 D_POSIX2_BC_STRING_MAX = 1000 // posix2_lim.h:36:1: 991 D_POSIX2_CHARCLASS_NAME_MAX = 14 // posix2_lim.h:55:1: 992 D_POSIX2_COLL_WEIGHTS_MAX = 2 // posix2_lim.h:40:1: 993 D_POSIX2_EXPR_NEST_MAX = 32 // posix2_lim.h:44:1: 994 D_POSIX2_LINE_MAX = 2048 // posix2_lim.h:47:1: 995 D_POSIX2_RE_DUP_MAX = 255 // posix2_lim.h:51:1: 996 D_POSIX_AIO_LISTIO_MAX = 2 // posix1_lim.h:32:1: 997 D_POSIX_AIO_MAX = 1 // posix1_lim.h:35:1: 998 D_POSIX_ARG_MAX = 4096 // posix1_lim.h:38:1: 999 D_POSIX_CHILD_MAX = 25 // posix1_lim.h:42:1: 1000 D_POSIX_CLOCKRES_MIN = 20000000 // posix1_lim.h:157:1: 1001 D_POSIX_C_SOURCE = 200809 // features.h:290:1: 1002 D_POSIX_DELAYTIMER_MAX = 32 // posix1_lim.h:48:1: 1003 D_POSIX_FD_SETSIZE = 20 // posix1_lim.h:93:1: 1004 D_POSIX_HIWAT = 512 // posix1_lim.h:150:1: 1005 D_POSIX_HOST_NAME_MAX = 255 // posix1_lim.h:52:1: 1006 D_POSIX_LINK_MAX = 8 // posix1_lim.h:55:1: 1007 D_POSIX_LOGIN_NAME_MAX = 9 // posix1_lim.h:58:1: 1008 D_POSIX_MAX_CANON = 255 // posix1_lim.h:61:1: 1009 D_POSIX_MAX_INPUT = 255 // posix1_lim.h:65:1: 1010 D_POSIX_MQ_OPEN_MAX = 8 // posix1_lim.h:68:1: 1011 D_POSIX_MQ_PRIO_MAX = 32 // posix1_lim.h:71:1: 1012 D_POSIX_NAME_MAX = 14 // posix1_lim.h:74:1: 1013 D_POSIX_NGROUPS_MAX = 8 // posix1_lim.h:78:1: 1014 D_POSIX_OPEN_MAX = 20 // posix1_lim.h:85:1: 1015 D_POSIX_PATH_MAX = 256 // posix1_lim.h:97:1: 1016 D_POSIX_PIPE_BUF = 512 // posix1_lim.h:100:1: 1017 D_POSIX_PTHREAD_SEMANTICS = 1 // config.h:388:1: 1018 D_POSIX_QLIMIT = 1 // posix1_lim.h:146:1: 1019 D_POSIX_RE_DUP_MAX = 255 // posix1_lim.h:104:1: 1020 D_POSIX_RTSIG_MAX = 8 // posix1_lim.h:107:1: 1021 D_POSIX_SEM_NSEMS_MAX = 256 // posix1_lim.h:110:1: 1022 D_POSIX_SEM_VALUE_MAX = 32767 // posix1_lim.h:113:1: 1023 D_POSIX_SIGQUEUE_MAX = 32 // posix1_lim.h:116:1: 1024 D_POSIX_SOURCE = 1 // features.h:288:1: 1025 D_POSIX_SSIZE_MAX = 32767 // posix1_lim.h:119:1: 1026 D_POSIX_STREAM_MAX = 8 // posix1_lim.h:122:1: 1027 D_POSIX_SYMLINK_MAX = 255 // posix1_lim.h:125:1: 1028 D_POSIX_SYMLOOP_MAX = 8 // posix1_lim.h:129:1: 1029 D_POSIX_THREAD_DESTRUCTOR_ITERATIONS = 4 // local_lim.h:67:1: 1030 D_POSIX_THREAD_KEYS_MAX = 128 // local_lim.h:62:1: 1031 D_POSIX_THREAD_THREADS_MAX = 64 // local_lim.h:72:1: 1032 D_POSIX_TIMER_MAX = 32 // posix1_lim.h:132:1: 1033 D_POSIX_TTY_NAME_MAX = 9 // posix1_lim.h:135:1: 1034 D_POSIX_TZNAME_MAX = 6 // posix1_lim.h:139:1: 1035 D_POSIX_UIO_MAXIOV = 16 // posix1_lim.h:153:1: 1036 D_PRINTF_NAN_LEN_MAX = 4 // stdio.h:138:1: 1037 D_PTRDIFF_T = 0 // stddef.h:131:1: 1038 D_PTRDIFF_T_ = 0 // stddef.h:135:1: 1039 D_PTRDIFF_T_DECLARED = 0 // stddef.h:139:1: 1040 D_RWLOCK_INTERNAL_H = 0 // struct_rwlock.h:21:1: 1041 D_SIZET_ = 0 // stddef.h:196:1: 1042 D_SIZE_T = 0 // stddef.h:183:1: 1043 D_SIZE_T_ = 0 // stddef.h:188:1: 1044 D_SIZE_T_DECLARED = 0 // stddef.h:193:1: 1045 D_SIZE_T_DEFINED = 0 // stddef.h:191:1: 1046 D_SIZE_T_DEFINED_ = 0 // stddef.h:190:1: 1047 D_STDC_PREDEF_H = 1 // <predefined>:168:1: 1048 D_STDDEF_H = 0 // stddef.h:39:1: 1049 D_STDDEF_H_ = 0 // stddef.h:40:1: 1050 D_STDINT_H = 1 // stdint.h:23:1: 1051 D_STDIO_H = 1 // stdio.h:24:1: 1052 D_STDLIB_H = 1 // stdlib.h:36:1: 1053 D_STRINGS_H = 1 // strings.h:19:1: 1054 D_STRING_H = 1 // string.h:23:1: 1055 D_STRUCT_TIMESPEC = 1 // struct_timespec.h:3:1: 1056 D_SYS_CDEFS_H = 1 // cdefs.h:20:1: 1057 D_SYS_SELECT_H = 1 // select.h:22:1: 1058 D_SYS_SIZE_T_H = 0 // stddef.h:184:1: 1059 D_SYS_TYPES_H = 1 // types.h:23:1: 1060 D_TANDEM_SOURCE = 1 // config.h:420:1: 1061 D_THREAD_MUTEX_INTERNAL_H = 1 // struct_mutex.h:20:1: 1062 D_THREAD_SHARED_TYPES_H = 1 // thread-shared-types.h:20:1: 1063 D_T_PTRDIFF = 0 // stddef.h:133:1: 1064 D_T_PTRDIFF_ = 0 // stddef.h:132:1: 1065 D_T_SIZE = 0 // stddef.h:186:1: 1066 D_T_SIZE_ = 0 // stddef.h:185:1: 1067 D_T_WCHAR = 0 // stddef.h:264:1: 1068 D_T_WCHAR_ = 0 // stddef.h:263:1: 1069 D_VA_LIST_DEFINED = 0 // stdio.h:53:1: 1070 D_WCHAR_T = 0 // stddef.h:262:1: 1071 D_WCHAR_T_ = 0 // stddef.h:266:1: 1072 D_WCHAR_T_DECLARED = 0 // stddef.h:274:1: 1073 D_WCHAR_T_DEFINED = 0 // stddef.h:269:1: 1074 D_WCHAR_T_DEFINED_ = 0 // stddef.h:268:1: 1075 D_WCHAR_T_H = 0 // stddef.h:270:1: 1076 D_XOPEN_IOV_MAX = 16 // xopen_lim.h:62:1: 1077 D_XOPEN_LIM_H = 1 // xopen_lim.h:30:1: 1078 D_XOPEN_SOURCE = 700 // features.h:214:1: 1079 D_XOPEN_SOURCE_EXTENDED = 1 // features.h:216:1: 1080 Dcbit_cntrl = 288 // pcre2_internal.h:573:1: 1081 Dcbit_digit = 64 // pcre2_internal.h:566:1: 1082 Dcbit_graph = 192 // pcre2_internal.h:570:1: 1083 Dcbit_length = 320 // pcre2_internal.h:574:1: 1084 Dcbit_lower = 128 // pcre2_internal.h:568:1: 1085 Dcbit_print = 224 // pcre2_internal.h:571:1: 1086 Dcbit_punct = 256 // pcre2_internal.h:572:1: 1087 Dcbit_space = 0 // pcre2_internal.h:564:1: 1088 Dcbit_upper = 96 // pcre2_internal.h:567:1: 1089 Dcbit_word = 160 // pcre2_internal.h:569:1: 1090 Dcbit_xdigit = 32 // pcre2_internal.h:565:1: 1091 Dcbits_offset = 512 // pcre2_internal.h:591:1: 1092 Dctype_digit = 0x08 // pcre2_internal.h:583:1: 1093 Dctype_lcletter = 0x04 // pcre2_internal.h:582:1: 1094 Dctype_letter = 0x02 // pcre2_internal.h:581:1: 1095 Dctype_space = 0x01 // pcre2_internal.h:580:1: 1096 Dctype_word = 0x10 // pcre2_internal.h:584:1: 1097 Dctypes_offset = 832 // pcre2_internal.h:592:1: 1098 Dfcc_offset = 256 // pcre2_internal.h:590:1: 1099 Dlcc_offset = 0 // pcre2_internal.h:589:1: 1100 Dlinux = 1 // <predefined>:243:1: 1101 Ducd_boolprop_sets_item_size = 2 // pcre2_ucp.h:164:1: 1102 Ducd_script_sets_item_size = 3 // pcre2_ucp.h:390:1: 1103 Dunix = 1 // <predefined>:184:1: 1104 DCOMPILE_WORK_SIZE = 6000 // pcre2_compile.c:166:1: 1105 DESCAPES_FIRST = 48 // pcre2_compile.c:507:1: 1106 DESCAPES_LAST = 122 // pcre2_compile.c:508:1: 1107 DGI_FIXED_LENGTH_MASK = 0x0000ffff // pcre2_compile.c:402:1: 1108 DGI_NOT_FIXED_LENGTH = 0x40000000 // pcre2_compile.c:401:1: 1109 DGI_SET_FIXED_LENGTH = 0x80000000 // pcre2_compile.c:400:1: 1110 DGROUPINFO_DEFAULT_SIZE = 256 // pcre2_compile.c:175:1: 1111 DMAX_GROUP_NUMBER = 65535 // pcre2_compile.c:147:1: 1112 DMAX_REPEAT_COUNT = 65535 // pcre2_compile.c:148:1: 1113 DMETA_ACCEPT = 0x802a0000 // pcre2_compile.c:266:1: 1114 DMETA_ALT = 0x80010000 // pcre2_compile.c:213:1: 1115 DMETA_ASTERISK = 0x80340000 // pcre2_compile.c:279:1: 1116 DMETA_ASTERISK_PLUS = 0x80350000 // pcre2_compile.c:280:1: 1117 DMETA_ASTERISK_QUERY = 0x80360000 // pcre2_compile.c:281:1: 1118 DMETA_ATOMIC = 0x80020000 // pcre2_compile.c:214:1: 1119 DMETA_ATOMIC_SCRIPT_RUN = 0x8fff0000 // pcre2_compile.c:300:1: 1120 DMETA_BACKREF = 0x80030000 // pcre2_compile.c:215:1: 1121 DMETA_BACKREF_BYNAME = 0x80040000 // pcre2_compile.c:216:1: 1122 DMETA_BIGVALUE = 0x80050000 // pcre2_compile.c:217:1: 1123 DMETA_CALLOUT_NUMBER = 0x80060000 // pcre2_compile.c:218:1: 1124 DMETA_CALLOUT_STRING = 0x80070000 // pcre2_compile.c:219:1: 1125 DMETA_CAPTURE = 0x80080000 // pcre2_compile.c:220:1: 1126 DMETA_CIRCUMFLEX = 0x80090000 // pcre2_compile.c:221:1: 1127 DMETA_CLASS = 0x800a0000 // pcre2_compile.c:222:1: 1128 DMETA_CLASS_EMPTY = 0x800b0000 // pcre2_compile.c:223:1: 1129 DMETA_CLASS_EMPTY_NOT = 0x800c0000 // pcre2_compile.c:224:1: 1130 DMETA_CLASS_END = 0x800d0000 // pcre2_compile.c:225:1: 1131 DMETA_CLASS_NOT = 0x800e0000 // pcre2_compile.c:226:1: 1132 DMETA_COMMIT = 0x802c0000 // pcre2_compile.c:268:1: 1133 DMETA_COMMIT_ARG = 0x802d0000 // pcre2_compile.c:269:1: 1134 DMETA_COND_ASSERT = 0x800f0000 // pcre2_compile.c:227:1: 1135 DMETA_COND_DEFINE = 0x80100000 // pcre2_compile.c:228:1: 1136 DMETA_COND_NAME = 0x80110000 // pcre2_compile.c:229:1: 1137 DMETA_COND_NUMBER = 0x80120000 // pcre2_compile.c:230:1: 1138 DMETA_COND_RNAME = 0x80130000 // pcre2_compile.c:231:1: 1139 DMETA_COND_RNUMBER = 0x80140000 // pcre2_compile.c:232:1: 1140 DMETA_COND_VERSION = 0x80150000 // pcre2_compile.c:233:1: 1141 DMETA_DOLLAR = 0x80160000 // pcre2_compile.c:234:1: 1142 DMETA_DOT = 0x80170000 // pcre2_compile.c:235:1: 1143 DMETA_END = 0x80000000 // pcre2_compile.c:211:1: 1144 DMETA_ESCAPE = 0x80180000 // pcre2_compile.c:236:1: 1145 DMETA_FAIL = 0x802b0000 // pcre2_compile.c:267:1: 1146 DMETA_FIRST_QUANTIFIER = 2150891520 // pcre2_compile.c:292:1: 1147 DMETA_KET = 0x80190000 // pcre2_compile.c:237:1: 1148 DMETA_LAST_QUANTIFIER = 2151612416 // pcre2_compile.c:293:1: 1149 DMETA_LOOKAHEAD = 0x80230000 // pcre2_compile.c:251:1: 1150 DMETA_LOOKAHEADNOT = 0x80240000 // pcre2_compile.c:252:1: 1151 DMETA_LOOKAHEAD_NA = 0x80270000 // pcre2_compile.c:258:1: 1152 DMETA_LOOKBEHIND = 0x80250000 // pcre2_compile.c:253:1: 1153 DMETA_LOOKBEHINDNOT = 0x80260000 // pcre2_compile.c:254:1: 1154 DMETA_LOOKBEHIND_NA = 0x80280000 // pcre2_compile.c:259:1: 1155 DMETA_MARK = 0x80290000 // pcre2_compile.c:265:1: 1156 DMETA_MINMAX = 0x803d0000 // pcre2_compile.c:288:1: 1157 DMETA_MINMAX_PLUS = 0x803e0000 // pcre2_compile.c:289:1: 1158 DMETA_MINMAX_QUERY = 0x803f0000 // pcre2_compile.c:290:1: 1159 DMETA_NOCAPTURE = 0x801a0000 // pcre2_compile.c:238:1: 1160 DMETA_OPTIONS = 0x801b0000 // pcre2_compile.c:239:1: 1161 DMETA_PLUS = 0x80370000 // pcre2_compile.c:282:1: 1162 DMETA_PLUS_PLUS = 0x80380000 // pcre2_compile.c:283:1: 1163 DMETA_PLUS_QUERY = 0x80390000 // pcre2_compile.c:284:1: 1164 DMETA_POSIX = 0x801c0000 // pcre2_compile.c:240:1: 1165 DMETA_POSIX_NEG = 0x801d0000 // pcre2_compile.c:241:1: 1166 DMETA_PRUNE = 0x802e0000 // pcre2_compile.c:270:1: 1167 DMETA_PRUNE_ARG = 0x802f0000 // pcre2_compile.c:271:1: 1168 DMETA_QUERY = 0x803a0000 // pcre2_compile.c:285:1: 1169 DMETA_QUERY_PLUS = 0x803b0000 // pcre2_compile.c:286:1: 1170 DMETA_QUERY_QUERY = 0x803c0000 // pcre2_compile.c:287:1: 1171 DMETA_RANGE_ESCAPED = 0x801e0000 // pcre2_compile.c:242:1: 1172 DMETA_RANGE_LITERAL = 0x801f0000 // pcre2_compile.c:243:1: 1173 DMETA_RECURSE = 0x80200000 // pcre2_compile.c:244:1: 1174 DMETA_RECURSE_BYNAME = 0x80210000 // pcre2_compile.c:245:1: 1175 DMETA_SCRIPT_RUN = 0x80220000 // pcre2_compile.c:246:1: 1176 DMETA_SKIP = 0x80300000 // pcre2_compile.c:272:1: 1177 DMETA_SKIP_ARG = 0x80310000 // pcre2_compile.c:273:1: 1178 DMETA_THEN = 0x80320000 // pcre2_compile.c:274:1: 1179 DMETA_THEN_ARG = 0x80330000 // pcre2_compile.c:275:1: 1180 DNAMED_GROUP_LIST_SIZE = 20 // pcre2_compile.c:187:1: 1181 DNSF_ATOMICSR = 0x0004 // pcre2_compile.c:2565:1: 1182 DNSF_CONDASSERT = 0x0002 // pcre2_compile.c:2564:1: 1183 DNSF_RESET = 0x0001 // pcre2_compile.c:2563:1: 1184 DOFLOW_MAX = 2147483627 // pcre2_compile.c:200:1: 1185 DPARSED_PATTERN_DEFAULT_SIZE = 1024 // pcre2_compile.c:193:1: 1186 DPARSE_TRACKED_OPTIONS = 17048808 // pcre2_compile.c:2572:1: 1187 DPC_GRAPH = 8 // pcre2_compile.c:709:1: 1188 DPC_PRINT = 9 // pcre2_compile.c:710:1: 1189 DPC_PUNCT = 10 // pcre2_compile.c:711:1: 1190 DPUBLIC_COMPILE_EXTRA_OPTIONS = 127 // pcre2_compile.c:784:1: 1191 DPUBLIC_COMPILE_OPTIONS = 3892314111 // pcre2_compile.c:772:1: 1192 DPUBLIC_LITERAL_COMPILE_EXTRA_OPTIONS = 12 // pcre2_compile.c:781:1: 1193 DPUBLIC_LITERAL_COMPILE_OPTIONS = 3867738380 // pcre2_compile.c:767:1: 1194 DREPEAT_UNLIMITED = 65536 // pcre2_compile.c:149:1: 1195 DREQ_CASELESS = 0x00000001 // pcre2_compile.c:395:1: 1196 DREQ_NONE = 0xfffffffe // pcre2_compile.c:394:1: 1197 DREQ_UNSET = 0xffffffff // pcre2_compile.c:393:1: 1198 DREQ_VARY = 0x00000002 // pcre2_compile.c:396:1: 1199 DRSCAN_CACHE_SIZE = 8 // pcre2_compile.c:10359:1: 1200 DSIZEOFFSET = 2 // pcre2_compile.c:108:1: 1201 DWORK_SIZE_SAFETY_MARGIN = 100 // pcre2_compile.c:180:1: 1202 DALL_OPTIONS = 127 // pcre2_convert.c:51:1: 1203 DDUMMY_BUFFER_SIZE = 100 // pcre2_convert.c:56:1: 1204 DTYPE_OPTIONS = 28 // pcre2_convert.c:48:1: 1205 DOP_ANYNL_EXTRA = 340 // pcre2_dfa_match.c:103:1: 1206 DOP_EXTUNI_EXTRA = 320 // pcre2_dfa_match.c:102:1: 1207 DOP_HSPACE_EXTRA = 360 // pcre2_dfa_match.c:104:1: 1208 DOP_PROP_EXTRA = 300 // pcre2_dfa_match.c:101:1: 1209 DOP_VSPACE_EXTRA = 380 // pcre2_dfa_match.c:105:1: 1210 DPUBLIC_DFA_MATCH_OPTIONS = 3758113023 // pcre2_dfa_match.c:85:1: 1211 DRWS_RSIZE = 1000 // pcre2_dfa_match.c:318:1: 1212 DINCLUDED_FROM_PCRE2_JIT_COMPILE = 0 // pcre2_jit_compile.c:14504:1: 1213 DPUBLIC_JIT_COMPILE_OPTIONS = 263 // pcre2_jit_compile.c:14378:1: 1214 DGF_CAPTURE = 0x00010000 // pcre2_match.c:106:1: 1215 DGF_CONDASSERT = 0x00030000 // pcre2_match.c:108:1: 1216 DGF_NOCAPTURE = 0x00020000 // pcre2_match.c:107:1: 1217 DGF_RECURSE = 0x00040000 // pcre2_match.c:109:1: 1218 DMATCH_ACCEPT = -999 // pcre2_match.c:88:1: 1219 DMATCH_BACKTRACK_MAX = -993 // pcre2_match.c:97:1: 1220 DMATCH_BACKTRACK_MIN = -997 // pcre2_match.c:98:1: 1221 DMATCH_COMMIT = -997 // pcre2_match.c:92:1: 1222 DMATCH_KETRPOS = -998 // pcre2_match.c:89:1: 1223 DMATCH_MATCH = 1 // pcre2_match.c:82:1: 1224 DMATCH_NOMATCH = 0 // pcre2_match.c:83:1: 1225 DMATCH_PRUNE = -996 // pcre2_match.c:93:1: 1226 DMATCH_SKIP = -995 // pcre2_match.c:94:1: 1227 DMATCH_SKIP_ARG = -994 // pcre2_match.c:95:1: 1228 DMATCH_THEN = -993 // pcre2_match.c:96:1: 1229 DPUBLIC_JIT_MATCH_OPTIONS = 1073758271 // pcre2_match.c:74:1: 1230 DPUBLIC_MATCH_OPTIONS = 3758121023 // pcre2_match.c:69:1: 1231 DRECURSE_UNSET = 0xffffffff // pcre2_match.c:65:1: 1232 DFOUND_BOPOMOFO = 1 // pcre2_script_run.c:199:1: 1233 DFOUND_HANGUL = 8 // pcre2_script_run.c:202:1: 1234 DFOUND_HIRAGANA = 2 // pcre2_script_run.c:200:1: 1235 DFOUND_KATAKANA = 4 // pcre2_script_run.c:201:1: 1236 DSERIALIZED_DATA_MAGIC = 0x50523253 // pcre2_serialize.c:54:1: 1237 DSERIALIZED_DATA_VERSION = 2621450 // pcre2_serialize.c:59:1: 1238 DMAX_CACHE_BACKREF = 128 // pcre2_study.c:53:1: 1239 DPTR_STACK_SIZE = 20 // pcre2_substitute.c:48:1: 1240 DSUBSTITUTE_OPTIONS = 237312 // pcre2_substitute.c:50:1: 1241 ) 1242 1243 // Seconds since the Epoch, visible to user code when time_t is too 1244 // narrow only for consistency with the old way of widening too-narrow 1245 // types. User code should never use __time64_t. 1246 1247 // These are all the characteristics of characters. 1248 // If there get to be more than 16 distinct characteristics, 1249 // many things must be changed that use `unsigned short int's. 1250 // 1251 // The characteristics are stored always in network byte order (big 1252 // endian). We define the bit value interpretations here dependent on the 1253 // machine's byte order. 1254 1255 // Endian macros for string.h functions 1256 // Copyright (C) 1992-2022 Free Software Foundation, Inc. 1257 // This file is part of the GNU C Library. 1258 // 1259 // The GNU C Library is free software; you can redistribute it and/or 1260 // modify it under the terms of the GNU Lesser General Public 1261 // License as published by the Free Software Foundation; either 1262 // version 2.1 of the License, or (at your option) any later version. 1263 // 1264 // The GNU C Library is distributed in the hope that it will be useful, 1265 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1266 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1267 // Lesser General Public License for more details. 1268 // 1269 // You should have received a copy of the GNU Lesser General Public 1270 // License along with the GNU C Library; if not, see 1271 // <http://www.gnu.org/licenses/>. 1272 1273 // Definitions for byte order, according to significance of bytes, 1274 // from low addresses to high addresses. The value is what you get by 1275 // putting '4' in the most significant byte, '3' in the second most 1276 // significant byte, '2' in the second least significant byte, and '1' 1277 // in the least significant byte, and then writing down one digit for 1278 // each byte, starting with the byte at the lowest address at the left, 1279 // and proceeding to the byte with the highest address at the right. 1280 1281 // This file defines `__BYTE_ORDER' for the particular machine. 1282 1283 // i386/x86_64 are little-endian. 1284 1285 // Some machines may need to use a different endianness for floating point 1286 // values. 1287 1288 const ( /* ctype.h:46:1: */ 1289 _ISupper = 256 // UPPERCASE. 1290 _ISlower = 512 // lowercase. 1291 _ISalpha = 1024 // Alphabetic. 1292 _ISdigit = 2048 // Numeric. 1293 _ISxdigit = 4096 // Hexadecimal numeric. 1294 _ISspace = 8192 // Whitespace. 1295 _ISprint = 16384 // Printing. 1296 _ISgraph = 32768 // Graphical. 1297 _ISblank = 1 // Blank (usually SPC and TAB). 1298 _IScntrl = 2 // Control character. 1299 _ISpunct = 4 // Punctuation. 1300 _ISalnum = 8 1301 ) 1302 1303 // Options that are changeable within the pattern must be tracked during 1304 // parsing. Some (e.g. PCRE2_EXTENDED) are implemented entirely during parsing, 1305 // but all must be tracked so that META_OPTIONS items set the correct values for 1306 // the main compiling phase. 1307 1308 // States used for analyzing ranges in character classes. The two OK values 1309 // must be last. 1310 1311 const ( /* pcre2_compile.c:2579:1: */ 1312 RANGE_NO = 0 1313 RANGE_OK_ESCAPED = 2 1314 RANGE_OK_LITERAL = 3 1315 ) 1316 1317 // Types for skipping parts of a parsed pattern. 1318 1319 const ( /* pcre2_compile.c:375:1: */ 1320 PSKIP_ALT = 0 1321 PSKIP_CLASS = 1 1322 PSKIP_KET = 2 1323 ) 1324 1325 // Masks for checking option settings. When PCRE2_LITERAL is set, only a subset 1326 // are allowed. 1327 1328 // Compile time error code numbers. They are given names so that they can more 1329 // easily be tracked. When a new number is added, the tables called eint1 and 1330 // eint2 in pcre2posix.c may need to be updated, and a new error text must be 1331 // added to compile_error_texts in pcre2_error.c. Also, the error codes in 1332 // pcre2.h.in must be updated - their values are exactly 100 greater than these 1333 // values. 1334 1335 const ( /* pcre2_compile.c:797:1: */ 1336 ERR0 = 100 1337 ERR1 = 101 1338 ERR2 = 102 1339 ERR3 = 103 1340 ERR4 = 104 1341 ERR5 = 105 1342 ERR6 = 106 1343 ERR7 = 107 1344 ERR8 = 108 1345 ERR9 = 109 1346 ERR10 = 110 1347 ERR11 = 111 1348 ERR12 = 112 1349 ERR13 = 113 1350 ERR14 = 114 1351 ERR15 = 115 1352 ERR16 = 116 1353 ERR17 = 117 1354 ERR18 = 118 1355 ERR19 = 119 1356 ERR20 = 120 1357 ERR21 = 121 1358 ERR22 = 122 1359 ERR23 = 123 1360 ERR24 = 124 1361 ERR25 = 125 1362 ERR26 = 126 1363 ERR27 = 127 1364 ERR28 = 128 1365 ERR29 = 129 1366 ERR30 = 130 1367 ERR31 = 131 1368 ERR32 = 132 1369 ERR33 = 133 1370 ERR34 = 134 1371 ERR35 = 135 1372 ERR36 = 136 1373 ERR37 = 137 1374 ERR38 = 138 1375 ERR39 = 139 1376 ERR40 = 140 1377 ERR41 = 141 1378 ERR42 = 142 1379 ERR43 = 143 1380 ERR44 = 144 1381 ERR45 = 145 1382 ERR46 = 146 1383 ERR47 = 147 1384 ERR48 = 148 1385 ERR49 = 149 1386 ERR50 = 150 1387 ERR51 = 151 1388 ERR52 = 152 1389 ERR53 = 153 1390 ERR54 = 154 1391 ERR55 = 155 1392 ERR56 = 156 1393 ERR57 = 157 1394 ERR58 = 158 1395 ERR59 = 159 1396 ERR60 = 160 1397 ERR61 = 161 1398 ERR62 = 162 1399 ERR63 = 163 1400 ERR64 = 164 1401 ERR65 = 165 1402 ERR66 = 166 1403 ERR67 = 167 1404 ERR68 = 168 1405 ERR69 = 169 1406 ERR70 = 170 1407 ERR71 = 171 1408 ERR72 = 172 1409 ERR73 = 173 1410 ERR74 = 174 1411 ERR75 = 175 1412 ERR76 = 176 1413 ERR77 = 177 1414 ERR78 = 178 1415 ERR79 = 179 1416 ERR80 = 180 1417 ERR81 = 181 1418 ERR82 = 182 1419 ERR83 = 183 1420 ERR84 = 184 1421 ERR85 = 185 1422 ERR86 = 186 1423 ERR87 = 187 1424 ERR88 = 188 1425 ERR89 = 189 1426 ERR90 = 190 1427 ERR91 = 191 1428 ERR92 = 192 1429 ERR93 = 193 1430 ERR94 = 194 1431 ERR95 = 195 1432 ERR96 = 196 1433 ERR97 = 197 1434 ERR98 = 198 1435 ERR99 = 199 1436 ) 1437 1438 // This is a table of start-of-pattern options such as (*UTF) and settings such 1439 // as (*LIMIT_MATCH=nnnn) and (*CRLF). For completeness and backward 1440 // compatibility, (*UTFn) is supported in the relevant libraries, but (*UTF) is 1441 // generic and always supported. 1442 1443 const ( /* pcre2_compile.c:814:1: */ 1444 PSO_OPT = 0 // Value is an option bit 1445 PSO_FLG = 1 // Value is a flag bit 1446 PSO_NL = 2 // Value is a newline type 1447 PSO_BSR = 3 // Value is a \R type 1448 PSO_LIMH = 4 // Read integer value for heap limit 1449 PSO_LIMM = 5 // Read integer value for match limit 1450 PSO_LIMD = 6 1451 ) 1452 1453 // This function is needed only when memmove() is not available. 1454 1455 // End of pcre2_internal.h 1456 1457 // Generated pattern fragments 1458 1459 // States for range and POSIX processing 1460 1461 const ( /* pcre2_convert.c:70:1: */ 1462 RANGE_NOT_STARTED = 0 1463 RANGE_STARTING = 1 1464 ) 1465 const ( /* pcre2_convert.c:71:1: */ 1466 POSIX_START_REGEX = 0 1467 POSIX_ANCHORED = 1 1468 POSIX_NOT_BRACKET = 2 1469 POSIX_CLASS_NOT_STARTED = 3 1470 POSIX_CLASS_STARTING = 4 1471 POSIX_CLASS_STARTED = 5 1472 ) // pcre2_jit_match() 1473 1474 // Values for the flags field in a match data block. 1475 1476 // Magic number to provide a small check against being handed junk. 1477 1478 // The maximum remaining length of subject we are prepared to search for a 1479 // req_unit match from an anchored pattern. In 8-bit mode, memchr() is used and is 1480 // much faster than the search loop that has to be used in 16-bit and 32-bit 1481 // modes. 1482 1483 // Offsets for the bitmap tables in the cbits set of tables. Each table 1484 // contains a set of bits for a class map. Some classes are built by combining 1485 // these tables. 1486 1487 // Bit definitions for entries in the ctypes table. Do not change these values 1488 // without checking pcre2_jit_compile.c, which has an assertion to ensure that 1489 // ctype_word has the value 16. 1490 1491 // Offsets of the various tables from the base tables pointer, and 1492 // total length of the tables. 1493 1494 // -------------------- Character and string names ------------------------ 1495 1496 // If PCRE2 is to support UTF-8 on EBCDIC platforms, we cannot use normal 1497 // character constants like '*' because the compiler would emit their EBCDIC code, 1498 // which is different from their ASCII/UTF-8 code. Instead we define macros for 1499 // the characters so that they always use the ASCII/UTF-8 code when UTF-8 support 1500 // is enabled. When UTF-8 support is not enabled, the definitions use character 1501 // literals. Both character and string versions of each character are needed, and 1502 // there are some longer strings as well. 1503 // 1504 // This means that, on EBCDIC platforms, the PCRE2 library can handle either 1505 // EBCDIC, or UTF-8, but not both. To support both in the same compiled library 1506 // would need different lookups depending on whether PCRE2_UTF was set or not. 1507 // This would make it impossible to use characters in switch/case statements, 1508 // which would reduce performance. For a theoretical use (which nobody has asked 1509 // for) in a minority area (EBCDIC platforms), this is not sensible. Any 1510 // application that did need both could compile two versions of the library, using 1511 // macros to give the functions distinct names. 1512 1513 // UTF-8 support is enabled; always use UTF-8 (=ASCII) character codes. This 1514 // works in both modes non-EBCDIC platforms, and on EBCDIC platforms in UTF-8 mode 1515 // only. 1516 1517 // -------------------- End of character and string names ------------------- 1518 1519 // -------------------- Definitions for compiled patterns ------------------- 1520 1521 // Codes for different types of Unicode property. If these definitions are 1522 // changed, the autopossessifying table in pcre2_auto_possess.c must be updated to 1523 // match. 1524 1525 // The following special properties are used only in XCLASS items, when POSIX 1526 // classes are specified and PCRE2_UCP is set - in other words, for Unicode 1527 // handling of these classes. They are not available via the \p or \P escapes like 1528 // those in the above list, and so they do not take part in the autopossessifying 1529 // table. 1530 1531 // This value is used when parsing \p and \P escapes to indicate that neither 1532 // \p{script:...} nor \p{scx:...} has been encountered. 1533 1534 // Flag bits and data types for the extended class (OP_XCLASS) for classes that 1535 // contain characters with values greater than 255. 1536 1537 // These are escaped items that aren't just an encoding of a particular data 1538 // value such as \n. They must have non-zero values, as check_escape() returns 0 1539 // for a data character. In the escapes[] table in pcre2_compile.c their values 1540 // are negated in order to distinguish them from data values. 1541 // 1542 // They must appear here in the same order as in the opcode definitions below, up 1543 // to ESC_z. There's a dummy for OP_ALLANY because it corresponds to "." in DOTALL 1544 // mode rather than an escape sequence. It is also used for [^] in JavaScript 1545 // compatibility mode, and for \C in non-utf mode. In non-DOTALL mode, "." behaves 1546 // like \N. 1547 // 1548 // Negative numbers are used to encode a backreference (\1, \2, \3, etc.) in 1549 // check_escape(). There are tests in the code for an escape greater than ESC_b 1550 // and less than ESC_Z to detect the types that may be repeated. These are the 1551 // types that consume characters. If any new escapes are put in between that don't 1552 // consume a character, that code will have to change. 1553 1554 const ( /* pcre2_internal.h:1337:1: */ 1555 ESC_A = 1 1556 ESC_G = 2 1557 ESC_K = 3 1558 ESC_B = 4 1559 ESC_b = 5 1560 ESC_D = 6 1561 ESC_d = 7 1562 ESC_S = 8 1563 ESC_s = 9 1564 ESC_W = 10 1565 ESC_w = 11 1566 ESC_N = 12 1567 ESC_dum = 13 1568 ESC_C = 14 1569 ESC_P = 15 1570 ESC_p = 16 1571 ESC_R = 17 1572 ESC_H = 18 1573 ESC_h = 19 1574 ESC_V = 20 1575 ESC_v = 21 1576 ESC_X = 22 1577 ESC_Z = 23 1578 ESC_z = 24 1579 ESC_E = 25 1580 ESC_Q = 26 1581 ESC_g = 27 1582 ESC_k = 28 1583 ) 1584 1585 //********************* Opcode definitions ***************** 1586 1587 //***** NOTE NOTE NOTE ****** 1588 // 1589 // Starting from 1 (i.e. after OP_END), the values up to OP_EOD must correspond in 1590 // order to the list of escapes immediately above. Furthermore, values up to 1591 // OP_DOLLM must not be changed without adjusting the table called autoposstab in 1592 // pcre2_auto_possess.c. 1593 // 1594 // Whenever this list is updated, the two macro definitions that follow must be 1595 // updated to match. The possessification table called "opcode_possessify" in 1596 // pcre2_compile.c must also be updated, and also the tables called "coptable" 1597 // and "poptable" in pcre2_dfa_match.c. 1598 // 1599 // ****** NOTE NOTE NOTE ***** 1600 1601 // The values between FIRST_AUTOTAB_OP and LAST_AUTOTAB_RIGHT_OP, inclusive, 1602 // are used in a table for deciding whether a repeated character type can be 1603 // auto-possessified. 1604 1605 const ( /* pcre2_internal.h:1368:1: */ 1606 OP_END = 0 // 0 End of pattern 1607 1608 // Values corresponding to backslashed metacharacters 1609 1610 OP_SOD = 1 // 1 Start of data: \A 1611 OP_SOM = 2 // 2 Start of match (subject + offset): \G 1612 OP_SET_SOM = 3 // 3 Set start of match (\K) 1613 OP_NOT_WORD_BOUNDARY = 4 // 4 \B 1614 OP_WORD_BOUNDARY = 5 // 5 \b 1615 OP_NOT_DIGIT = 6 // 6 \D 1616 OP_DIGIT = 7 // 7 \d 1617 OP_NOT_WHITESPACE = 8 // 8 \S 1618 OP_WHITESPACE = 9 // 9 \s 1619 OP_NOT_WORDCHAR = 10 // 10 \W 1620 OP_WORDCHAR = 11 // 11 \w 1621 1622 OP_ANY = 12 // 12 Match any character except newline (\N) 1623 OP_ALLANY = 13 // 13 Match any character 1624 OP_ANYBYTE = 14 // 14 Match any byte (\C); different to OP_ANY for UTF-8 1625 OP_NOTPROP = 15 // 15 \P (not Unicode property) 1626 OP_PROP = 16 // 16 \p (Unicode property) 1627 OP_ANYNL = 17 // 17 \R (any newline sequence) 1628 OP_NOT_HSPACE = 18 // 18 \H (not horizontal whitespace) 1629 OP_HSPACE = 19 // 19 \h (horizontal whitespace) 1630 OP_NOT_VSPACE = 20 // 20 \V (not vertical whitespace) 1631 OP_VSPACE = 21 // 21 \v (vertical whitespace) 1632 OP_EXTUNI = 22 // 22 \X (extended Unicode sequence 1633 OP_EODN = 23 // 23 End of data or \n at end of data (\Z) 1634 OP_EOD = 24 // 24 End of data (\z) 1635 1636 // Line end assertions 1637 1638 OP_DOLL = 25 // 25 End of line - not multiline 1639 OP_DOLLM = 26 // 26 End of line - multiline 1640 OP_CIRC = 27 // 27 Start of line - not multiline 1641 OP_CIRCM = 28 // 28 Start of line - multiline 1642 1643 // Single characters; caseful must precede the caseless ones, and these 1644 // must remain in this order, and adjacent. 1645 1646 OP_CHAR = 29 // 29 Match one character, casefully 1647 OP_CHARI = 30 // 30 Match one character, caselessly 1648 OP_NOT = 31 // 31 Match one character, not the given one, casefully 1649 OP_NOTI = 32 // 32 Match one character, not the given one, caselessly 1650 1651 // The following sets of 13 opcodes must always be kept in step because 1652 // the offset from the first one is used to generate the others. 1653 1654 // Repeated characters; caseful must precede the caseless ones 1655 1656 OP_STAR = 33 // 33 The maximizing and minimizing versions of 1657 OP_MINSTAR = 34 // 34 these six opcodes must come in pairs, with 1658 OP_PLUS = 35 // 35 the minimizing one second. 1659 OP_MINPLUS = 36 // 36 1660 OP_QUERY = 37 // 37 1661 OP_MINQUERY = 38 // 38 1662 1663 OP_UPTO = 39 // 39 From 0 to n matches of one character, caseful 1664 OP_MINUPTO = 40 // 40 1665 OP_EXACT = 41 // 41 Exactly n matches 1666 1667 OP_POSSTAR = 42 // 42 Possessified star, caseful 1668 OP_POSPLUS = 43 // 43 Possessified plus, caseful 1669 OP_POSQUERY = 44 // 44 Posesssified query, caseful 1670 OP_POSUPTO = 45 // 45 Possessified upto, caseful 1671 1672 // Repeated characters; caseless must follow the caseful ones 1673 1674 OP_STARI = 46 // 46 1675 OP_MINSTARI = 47 // 47 1676 OP_PLUSI = 48 // 48 1677 OP_MINPLUSI = 49 // 49 1678 OP_QUERYI = 50 // 50 1679 OP_MINQUERYI = 51 // 51 1680 1681 OP_UPTOI = 52 // 52 From 0 to n matches of one character, caseless 1682 OP_MINUPTOI = 53 // 53 1683 OP_EXACTI = 54 // 54 1684 1685 OP_POSSTARI = 55 // 55 Possessified star, caseless 1686 OP_POSPLUSI = 56 // 56 Possessified plus, caseless 1687 OP_POSQUERYI = 57 // 57 Posesssified query, caseless 1688 OP_POSUPTOI = 58 // 58 Possessified upto, caseless 1689 1690 // The negated ones must follow the non-negated ones, and match them 1691 // Negated repeated character, caseful; must precede the caseless ones 1692 1693 OP_NOTSTAR = 59 // 59 The maximizing and minimizing versions of 1694 OP_NOTMINSTAR = 60 // 60 these six opcodes must come in pairs, with 1695 OP_NOTPLUS = 61 // 61 the minimizing one second. They must be in 1696 OP_NOTMINPLUS = 62 // 62 exactly the same order as those above. 1697 OP_NOTQUERY = 63 // 63 1698 OP_NOTMINQUERY = 64 // 64 1699 1700 OP_NOTUPTO = 65 // 65 From 0 to n matches, caseful 1701 OP_NOTMINUPTO = 66 // 66 1702 OP_NOTEXACT = 67 // 67 Exactly n matches 1703 1704 OP_NOTPOSSTAR = 68 // 68 Possessified versions, caseful 1705 OP_NOTPOSPLUS = 69 // 69 1706 OP_NOTPOSQUERY = 70 // 70 1707 OP_NOTPOSUPTO = 71 // 71 1708 1709 // Negated repeated character, caseless; must follow the caseful ones 1710 1711 OP_NOTSTARI = 72 // 72 1712 OP_NOTMINSTARI = 73 // 73 1713 OP_NOTPLUSI = 74 // 74 1714 OP_NOTMINPLUSI = 75 // 75 1715 OP_NOTQUERYI = 76 // 76 1716 OP_NOTMINQUERYI = 77 // 77 1717 1718 OP_NOTUPTOI = 78 // 78 From 0 to n matches, caseless 1719 OP_NOTMINUPTOI = 79 // 79 1720 OP_NOTEXACTI = 80 // 80 Exactly n matches 1721 1722 OP_NOTPOSSTARI = 81 // 81 Possessified versions, caseless 1723 OP_NOTPOSPLUSI = 82 // 82 1724 OP_NOTPOSQUERYI = 83 // 83 1725 OP_NOTPOSUPTOI = 84 // 84 1726 1727 // Character types 1728 1729 OP_TYPESTAR = 85 // 85 The maximizing and minimizing versions of 1730 OP_TYPEMINSTAR = 86 // 86 these six opcodes must come in pairs, with 1731 OP_TYPEPLUS = 87 // 87 the minimizing one second. These codes must 1732 OP_TYPEMINPLUS = 88 // 88 be in exactly the same order as those above. 1733 OP_TYPEQUERY = 89 // 89 1734 OP_TYPEMINQUERY = 90 // 90 1735 1736 OP_TYPEUPTO = 91 // 91 From 0 to n matches 1737 OP_TYPEMINUPTO = 92 // 92 1738 OP_TYPEEXACT = 93 // 93 Exactly n matches 1739 1740 OP_TYPEPOSSTAR = 94 // 94 Possessified versions 1741 OP_TYPEPOSPLUS = 95 // 95 1742 OP_TYPEPOSQUERY = 96 // 96 1743 OP_TYPEPOSUPTO = 97 // 97 1744 1745 // These are used for character classes and back references; only the 1746 // first six are the same as the sets above. 1747 1748 OP_CRSTAR = 98 // 98 The maximizing and minimizing versions of 1749 OP_CRMINSTAR = 99 // 99 all these opcodes must come in pairs, with 1750 OP_CRPLUS = 100 // 100 the minimizing one second. These codes must 1751 OP_CRMINPLUS = 101 // 101 be in exactly the same order as those above. 1752 OP_CRQUERY = 102 // 102 1753 OP_CRMINQUERY = 103 // 103 1754 1755 OP_CRRANGE = 104 // 104 These are different to the three sets above. 1756 OP_CRMINRANGE = 105 // 105 1757 1758 OP_CRPOSSTAR = 106 // 106 Possessified versions 1759 OP_CRPOSPLUS = 107 // 107 1760 OP_CRPOSQUERY = 108 // 108 1761 OP_CRPOSRANGE = 109 // 109 1762 1763 // End of quantifier opcodes 1764 1765 OP_CLASS = 110 // 110 Match a character class, chars < 256 only 1766 OP_NCLASS = 111 // 111 Same, but the bitmap was created from a negative 1767 // class - the difference is relevant only when a 1768 // character > 255 is encountered. 1769 OP_XCLASS = 112 // 112 Extended class for handling > 255 chars within the 1770 // class. This does both positive and negative. 1771 OP_REF = 113 // 113 Match a back reference, casefully 1772 OP_REFI = 114 // 114 Match a back reference, caselessly 1773 OP_DNREF = 115 // 115 Match a duplicate name backref, casefully 1774 OP_DNREFI = 116 // 116 Match a duplicate name backref, caselessly 1775 OP_RECURSE = 117 // 117 Match a numbered subpattern (possibly recursive) 1776 OP_CALLOUT = 118 // 118 Call out to external function if provided 1777 OP_CALLOUT_STR = 119 // 119 Call out with string argument 1778 1779 OP_ALT = 120 // 120 Start of alternation 1780 OP_KET = 121 // 121 End of group that doesn't have an unbounded repeat 1781 OP_KETRMAX = 122 // 122 These two must remain together and in this 1782 OP_KETRMIN = 123 // 123 order. They are for groups the repeat for ever. 1783 OP_KETRPOS = 124 // 124 Possessive unlimited repeat. 1784 1785 // The assertions must come before BRA, CBRA, ONCE, and COND. 1786 1787 OP_REVERSE = 125 // 125 Move pointer back - used in lookbehind assertions 1788 OP_ASSERT = 126 // 126 Positive lookahead 1789 OP_ASSERT_NOT = 127 // 127 Negative lookahead 1790 OP_ASSERTBACK = 128 // 128 Positive lookbehind 1791 OP_ASSERTBACK_NOT = 129 // 129 Negative lookbehind 1792 OP_ASSERT_NA = 130 // 130 Positive non-atomic lookahead 1793 OP_ASSERTBACK_NA = 131 // 131 Positive non-atomic lookbehind 1794 1795 // ONCE, SCRIPT_RUN, BRA, BRAPOS, CBRA, CBRAPOS, and COND must come 1796 // immediately after the assertions, with ONCE first, as there's a test for >= 1797 // ONCE for a subpattern that isn't an assertion. The POS versions must 1798 // immediately follow the non-POS versions in each case. 1799 1800 OP_ONCE = 132 // 132 Atomic group, contains captures 1801 OP_SCRIPT_RUN = 133 // 133 Non-capture, but check characters' scripts 1802 OP_BRA = 134 // 134 Start of non-capturing bracket 1803 OP_BRAPOS = 135 // 135 Ditto, with unlimited, possessive repeat 1804 OP_CBRA = 136 // 136 Start of capturing bracket 1805 OP_CBRAPOS = 137 // 137 Ditto, with unlimited, possessive repeat 1806 OP_COND = 138 // 138 Conditional group 1807 1808 // These five must follow the previous five, in the same order. There's a 1809 // check for >= SBRA to distinguish the two sets. 1810 1811 OP_SBRA = 139 // 139 Start of non-capturing bracket, check empty 1812 OP_SBRAPOS = 140 // 149 Ditto, with unlimited, possessive repeat 1813 OP_SCBRA = 141 // 141 Start of capturing bracket, check empty 1814 OP_SCBRAPOS = 142 // 142 Ditto, with unlimited, possessive repeat 1815 OP_SCOND = 143 // 143 Conditional group, check empty 1816 1817 // The next two pairs must (respectively) be kept together. 1818 1819 OP_CREF = 144 // 144 Used to hold a capture number as condition 1820 OP_DNCREF = 145 // 145 Used to point to duplicate names as a condition 1821 OP_RREF = 146 // 146 Used to hold a recursion number as condition 1822 OP_DNRREF = 147 // 147 Used to point to duplicate names as a condition 1823 OP_FALSE = 148 // 148 Always false (used by DEFINE and VERSION) 1824 OP_TRUE = 149 // 149 Always true (used by VERSION) 1825 1826 OP_BRAZERO = 150 // 150 These two must remain together and in this 1827 OP_BRAMINZERO = 151 // 151 order. 1828 OP_BRAPOSZERO = 152 // 152 1829 1830 // These are backtracking control verbs 1831 1832 OP_MARK = 153 // 153 always has an argument 1833 OP_PRUNE = 154 // 154 1834 OP_PRUNE_ARG = 155 // 155 same, but with argument 1835 OP_SKIP = 156 // 156 1836 OP_SKIP_ARG = 157 // 157 same, but with argument 1837 OP_THEN = 158 // 158 1838 OP_THEN_ARG = 159 // 159 same, but with argument 1839 OP_COMMIT = 160 // 160 1840 OP_COMMIT_ARG = 161 // 161 same, but with argument 1841 1842 // These are forced failure and success verbs. FAIL and ACCEPT do accept an 1843 // argument, but these cases can be compiled as, for example, (*MARK:X)(*FAIL) 1844 // without the need for a special opcode. 1845 1846 OP_FAIL = 162 // 162 1847 OP_ACCEPT = 163 // 163 1848 OP_ASSERT_ACCEPT = 164 // 164 Used inside assertions 1849 OP_CLOSE = 165 // 165 Used before OP_ACCEPT to close open captures 1850 1851 // This is used to skip a subpattern with a {0} quantifier 1852 1853 OP_SKIPZERO = 166 // 166 1854 1855 // This is used to identify a DEFINE group during compilation so that it can 1856 // be checked for having only one branch. It is changed to OP_FALSE before 1857 // compilation finishes. 1858 1859 OP_DEFINE = 167 // 167 1860 1861 // This is not an opcode, but is used to check that tables indexed by opcode 1862 // are the correct length, in order to catch updating errors - there have been 1863 // some in the past. 1864 1865 OP_TABLE_LENGTH = 168 1866 ) 1867 1868 // Size of entries in ucd_script_sets[] 1869 1870 // End of pcre2_ucp.h 1871 1872 // When PCRE2 is compiled as a C++ library, the subject pointer can be replaced 1873 // with a custom type. This makes it possible, for example, to allow pcre2_match() 1874 // to process subject strings that are discontinuous by using a smart pointer 1875 // class. It must always be possible to inspect all of the subject string in 1876 // pcre2_match() because of the way it backtracks. 1877 1878 // WARNING: This is as yet untested for PCRE2. 1879 1880 // When checking for integer overflow in pcre2_compile(), we need to handle 1881 // large integers. If a 64-bit integer type is available, we can use that. 1882 // Otherwise we have to cast to double, which of course requires floating point 1883 // arithmetic. Handle this by defining a macro for the appropriate type. 1884 1885 // External (in the C sense) functions and tables that are private to the 1886 // libraries are always referenced using the PRIV macro. This makes it possible 1887 // for pcre2test.c to include some of the source files from the libraries using a 1888 // different PRIV definition to avoid name clashes. It also makes it clear in the 1889 // code that a non-static object is being referenced. 1890 1891 // When compiling for use with the Virtual Pascal compiler, these functions 1892 // need to have their names changed. PCRE2 must be compiled with the -DVPCOMPAT 1893 // option on the command line. 1894 1895 // Otherwise, to cope with SunOS4 and other systems that lack memmove(), define 1896 // a macro that calls an emulating function. 1897 1898 // This is an unsigned int value that no UTF character can ever have, as 1899 // Unicode doesn't go beyond 0x0010ffff. 1900 1901 // This is the largest valid UTF/Unicode code point. 1902 1903 // Compile-time positive error numbers (all except UTF errors, which are 1904 // negative) start at this value. It should probably never be changed, in case 1905 // some application is checking for specific numbers. There is a copy of this 1906 // #define in pcre2posix.c (which now no longer includes this file). Ideally, a 1907 // way of having a single definition should be found, but as the number is 1908 // unlikely to change, this is not a pressing issue. The original reason for 1909 // having a base other than 0 was to keep the absolute values of compile-time and 1910 // run-time error numbers numerically different, but in the event the code does 1911 // not rely on this. 1912 1913 // The initial frames vector for remembering backtracking points in 1914 // pcre2_match() is allocated on the system stack, of this size (bytes). The size 1915 // must be a multiple of sizeof(PCRE2_SPTR) in all environments, so making it a 1916 // multiple of 8 is best. Typical frame sizes are a few hundred bytes (it depends 1917 // on the number of capturing parentheses) so 20KiB handles quite a few frames. A 1918 // larger vector on the heap is obtained for patterns that need more frames. The 1919 // maximum size of this can be limited. 1920 1921 // Similarly, for DFA matching, an initial internal workspace vector is 1922 // allocated on the stack. 1923 1924 // Define the default BSR convention. 1925 1926 // ---------------- Basic UTF-8 macros ---------------- 1927 1928 // These UTF-8 macros are always defined because they are used in pcre2test for 1929 // handling wide characters in 16-bit and 32-bit modes, even if an 8-bit library 1930 // is not supported. 1931 1932 // Tests whether a UTF-8 code point needs extra bytes to decode. 1933 1934 // The following macros were originally written in the form of loops that used 1935 // data from the tables whose names start with PRIV(utf8_table). They were 1936 // rewritten by a user so as not to use loops, because in some environments this 1937 // gives a significant performance advantage, and it seems never to do any harm. 1938 1939 // Base macro to pick up the remaining bytes of a UTF-8 character, not 1940 // advancing the pointer. 1941 1942 // Base macro to pick up the remaining bytes of a UTF-8 character, advancing 1943 // the pointer. 1944 1945 // Base macro to pick up the remaining bytes of a UTF-8 character, not 1946 // advancing the pointer, incrementing the length. 1947 1948 // --------------- Whitespace macros ---------------- 1949 1950 // Tests for Unicode horizontal and vertical whitespace characters must check a 1951 // number of different values. Using a switch statement for this generates the 1952 // fastest code (no loop, no memory access), and there are several places in the 1953 // interpreter code where this happens. In order to ensure that all the case lists 1954 // remain in step, we use macros so that there is only one place where the lists 1955 // are defined. 1956 // 1957 // These values are also required as lists in pcre2_compile.c when processing \h, 1958 // \H, \v and \V in a character class. The lists are defined in pcre2_tables.c, 1959 // but macros that define the values are here so that all the definitions are 1960 // together. The lists must be in ascending character order, terminated by 1961 // NOTACHAR (which is 0xffffffff). 1962 // 1963 // Any changes should ensure that the various macros are kept in step with each 1964 // other. NOTE: The values also appear in pcre2_jit_compile.c. 1965 1966 // -------------- ASCII/Unicode environments -------------- 1967 1968 // Character U+180E (Mongolian Vowel Separator) is not included in the list of 1969 // spaces in the Unicode file PropList.txt, and Perl does not recognize it as a 1970 // space. However, in many other sources it is listed as a space and has been in 1971 // PCRE (both APIs) for a long time. 1972 1973 // -------------- EBCDIC environments -------------- 1974 1975 // -------------- End of whitespace macros -------------- 1976 1977 // PCRE2 is able to support several different kinds of newline (CR, LF, CRLF, 1978 // "any" and "anycrlf" at present). The following macros are used to package up 1979 // testing for newlines. NLBLOCK, PSSTART, and PSEND are defined in the various 1980 // modules to indicate in which datablock the parameters exist, and what the 1981 // start/end of string field names are. 1982 1983 // This macro checks for a newline at the given position 1984 1985 // This macro checks for a newline immediately preceding the given position 1986 1987 // Private flags containing information about the compiled pattern. The first 1988 // three must not be changed, because whichever is set is actually the number of 1989 // bytes in a code unit in that mode. 1990 1991 // Values for the matchedby field in a match data block. 1992 1993 const ( /* pcre2_internal.h:537:1: */ 1994 PCRE2_MATCHEDBY_INTERPRETER = 0 // pcre2_match() 1995 PCRE2_MATCHEDBY_DFA_INTERPRETER = 1 // pcre2_dfa_match() 1996 PCRE2_MATCHEDBY_JIT = 2 1997 ) 1998 1999 // This function is needed only when memmove() is not available. 2000 2001 // End of pcre2_internal.h 2002 2003 // Masks for identifying the public options that are permitted at match time. 2004 2005 // Non-error returns from and within the match() function. Error returns are 2006 // externally defined PCRE2_ERROR_xxx codes, which are all negative. 2007 2008 // Special internal returns used in the match() function. Make them 2009 // sufficiently negative to avoid the external error codes. 2010 2011 // The next 5 must be kept together and in sequence so that a test that checks 2012 // for any one of them can use a range. 2013 2014 // Group frame type values. Zero means the frame is not a group frame. The 2015 // lower 16 bits are used for data (e.g. the capture number). Group frames are 2016 // used for most groups so that information about the start is easily available at 2017 // the end without having to scan back through intermediate frames (backtrack 2018 // points). 2019 2020 // Masks for the identity and data parts of the group frame type. 2021 2022 // Repetition types 2023 2024 const ( /* pcre2_match.c:118:1: */ 2025 REPTYPE_MIN = 0 2026 REPTYPE_MAX = 1 2027 REPTYPE_POS = 2 2028 ) // OP_CRPOSQUERY, OP_CRPOSRANGE 2029 2030 // Numbers for RMATCH calls at backtracking points. When these lists are 2031 // changed, the code at RETURN_SWITCH below must be updated in sync. 2032 2033 const ( /* pcre2_match.c:150:1: */ 2034 RM1 = 1 2035 RM2 = 2 2036 RM3 = 3 2037 RM4 = 4 2038 RM5 = 5 2039 RM6 = 6 2040 RM7 = 7 2041 RM8 = 8 2042 RM9 = 9 2043 RM10 = 10 2044 RM11 = 11 2045 RM12 = 12 2046 RM13 = 13 2047 RM14 = 14 2048 RM15 = 15 2049 RM16 = 16 2050 RM17 = 17 2051 RM18 = 18 2052 RM19 = 19 2053 RM20 = 20 2054 RM21 = 21 2055 RM22 = 22 2056 RM23 = 23 2057 RM24 = 24 2058 RM25 = 25 2059 RM26 = 26 2060 RM27 = 27 2061 RM28 = 28 2062 RM29 = 29 2063 RM30 = 30 2064 RM31 = 31 2065 RM32 = 32 2066 RM33 = 33 2067 RM34 = 34 2068 RM35 = 35 2069 RM36 = 36 2070 ) 2071 2072 const ( /* pcre2_match.c:156:1: */ 2073 RM100 = 100 2074 RM101 = 101 2075 ) 2076 2077 const ( /* pcre2_match.c:160:1: */ 2078 RM200 = 200 2079 RM201 = 201 2080 RM202 = 202 2081 RM203 = 203 2082 RM204 = 204 2083 RM205 = 205 2084 RM206 = 206 2085 RM207 = 207 2086 RM208 = 208 2087 RM209 = 209 2088 RM210 = 210 2089 RM211 = 211 2090 RM212 = 212 2091 RM213 = 213 2092 RM214 = 214 2093 RM215 = 215 2094 RM216 = 216 2095 RM217 = 217 2096 RM218 = 218 2097 RM219 = 219 2098 RM220 = 220 2099 RM221 = 221 2100 RM222 = 222 2101 RM223 = 223 2102 RM224 = 224 2103 RM225 = 225 2104 ) 2105 2106 // This function is needed only when memmove() is not available. 2107 2108 // End of pcre2_internal.h 2109 2110 // ************************************************ 2111 // 2112 // Check script run * 2113 // 2114 2115 // A script run is conceptually a sequence of characters all in the same 2116 // Unicode script. However, it isn't quite that simple. There are special rules 2117 // for scripts that are commonly used together, and also special rules for digits. 2118 // This function implements the appropriate checks, which is possible only when 2119 // PCRE2 is compiled with Unicode support. The function returns TRUE if there is 2120 // no Unicode support; however, it should never be called in that circumstance 2121 // because an error is given by pcre2_compile() if a script run is called for in a 2122 // version of PCRE2 compiled without Unicode support. 2123 // 2124 // Arguments: 2125 // pgr point to the first character 2126 // endptr point after the last character 2127 // utf TRUE if in UTF mode 2128 // 2129 // Returns: TRUE if this is a valid script run 2130 2131 // These are states in the checking process. 2132 2133 const ( /* pcre2_script_run.c:73:1: */ 2134 SCRIPT_UNSET = 0 // Requirement as yet unknown 2135 SCRIPT_MAP = 1 // Bitmap contains acceptable scripts 2136 SCRIPT_HANPENDING = 2 // Have had only Han characters 2137 SCRIPT_HANHIRAKATA = 3 // Expect Han or Hirikata 2138 SCRIPT_HANBOPOMOFO = 4 // Expect Han or Bopomofo 2139 SCRIPT_HANHANGUL = 5 2140 ) 2141 2142 // This function is needed only when memmove() is not available. 2143 2144 // End of pcre2_internal.h 2145 2146 // The maximum remembered capturing brackets minimum. 2147 2148 // Set a bit in the starting code unit bit map. 2149 2150 // Returns from set_start_bits() 2151 2152 const ( /* pcre2_study.c:61:1: */ 2153 SSB_FAIL = 0 2154 SSB_DONE = 1 2155 SSB_CONTINUE = 2 2156 SSB_UNKNOWN = 3 2157 SSB_TOODEEP = 4 2158 ) 2159 2160 // These are Boolean properties. 2161 2162 const ( /* pcre2_ucp.h:105:1: */ 2163 ucp_ASCII = 0 2164 ucp_ASCII_Hex_Digit = 1 2165 ucp_Alphabetic = 2 2166 ucp_Bidi_Control = 3 2167 ucp_Bidi_Mirrored = 4 2168 ucp_Case_Ignorable = 5 2169 ucp_Cased = 6 2170 ucp_Changes_When_Casefolded = 7 2171 ucp_Changes_When_Casemapped = 8 2172 ucp_Changes_When_Lowercased = 9 2173 ucp_Changes_When_Titlecased = 10 2174 ucp_Changes_When_Uppercased = 11 2175 ucp_Dash = 12 2176 ucp_Default_Ignorable_Code_Point = 13 2177 ucp_Deprecated = 14 2178 ucp_Diacritic = 15 2179 ucp_Emoji = 16 2180 ucp_Emoji_Component = 17 2181 ucp_Emoji_Modifier = 18 2182 ucp_Emoji_Modifier_Base = 19 2183 ucp_Emoji_Presentation = 20 2184 ucp_Extended_Pictographic = 21 2185 ucp_Extender = 22 2186 ucp_Grapheme_Base = 23 2187 ucp_Grapheme_Extend = 24 2188 ucp_Grapheme_Link = 25 2189 ucp_Hex_Digit = 26 2190 ucp_IDS_Binary_Operator = 27 2191 ucp_IDS_Trinary_Operator = 28 2192 ucp_ID_Continue = 29 2193 ucp_ID_Start = 30 2194 ucp_Ideographic = 31 2195 ucp_Join_Control = 32 2196 ucp_Logical_Order_Exception = 33 2197 ucp_Lowercase = 34 2198 ucp_Math = 35 2199 ucp_Noncharacter_Code_Point = 36 2200 ucp_Pattern_Syntax = 37 2201 ucp_Pattern_White_Space = 38 2202 ucp_Prepended_Concatenation_Mark = 39 2203 ucp_Quotation_Mark = 40 2204 ucp_Radical = 41 2205 ucp_Regional_Indicator = 42 2206 ucp_Sentence_Terminal = 43 2207 ucp_Soft_Dotted = 44 2208 ucp_Terminal_Punctuation = 45 2209 ucp_Unified_Ideograph = 46 2210 ucp_Uppercase = 47 2211 ucp_Variation_Selector = 48 2212 ucp_White_Space = 49 2213 ucp_XID_Continue = 50 2214 ucp_XID_Start = 51 2215 // This must be last 2216 ucp_Bprop_Count = 52 2217 ) 2218 2219 // Size of entries in ucd_boolprop_sets[] 2220 2221 // These are the bidi class values. 2222 2223 const ( /* pcre2_ucp.h:168:1: */ 2224 ucp_bidiAL = 0 // Arabic letter 2225 ucp_bidiAN = 1 // Arabic number 2226 ucp_bidiB = 2 // Paragraph separator 2227 ucp_bidiBN = 3 // Boundary neutral 2228 ucp_bidiCS = 4 // Common separator 2229 ucp_bidiEN = 5 // European number 2230 ucp_bidiES = 6 // European separator 2231 ucp_bidiET = 7 // European terminator 2232 ucp_bidiFSI = 8 // First strong isolate 2233 ucp_bidiL = 9 // Left to right 2234 ucp_bidiLRE = 10 // Left to right embedding 2235 ucp_bidiLRI = 11 // Left to right isolate 2236 ucp_bidiLRO = 12 // Left to right override 2237 ucp_bidiNSM = 13 // Non-spacing mark 2238 ucp_bidiON = 14 // Other neutral 2239 ucp_bidiPDF = 15 // Pop directional format 2240 ucp_bidiPDI = 16 // Pop directional isolate 2241 ucp_bidiR = 17 // Right to left 2242 ucp_bidiRLE = 18 // Right to left embedding 2243 ucp_bidiRLI = 19 // Right to left isolate 2244 ucp_bidiRLO = 20 // Right to left override 2245 ucp_bidiS = 21 // Segment separator 2246 ucp_bidiWS = 22 2247 ) 2248 2249 // These are grapheme break properties. The Extended Pictographic property 2250 // comes from the emoji-data.txt file. 2251 2252 const ( /* pcre2_ucp.h:197:1: */ 2253 ucp_gbCR = 0 // 0 2254 ucp_gbLF = 1 // 1 2255 ucp_gbControl = 2 // 2 2256 ucp_gbExtend = 3 // 3 2257 ucp_gbPrepend = 4 // 4 2258 ucp_gbSpacingMark = 5 // 5 2259 ucp_gbL = 6 // 6 Hangul syllable type L 2260 ucp_gbV = 7 // 7 Hangul syllable type V 2261 ucp_gbT = 8 // 8 Hangul syllable type T 2262 ucp_gbLV = 9 // 9 Hangul syllable type LV 2263 ucp_gbLVT = 10 // 10 Hangul syllable type LVT 2264 ucp_gbRegional_Indicator = 11 // 11 2265 ucp_gbOther = 12 // 12 2266 ucp_gbZWJ = 13 // 13 2267 ucp_gbExtended_Pictographic = 14 2268 ) 2269 2270 // These are the script identifications. 2271 2272 const ( /* pcre2_ucp.h:217:1: */ 2273 // Scripts which has characters in other scripts. 2274 ucp_Latin = 0 2275 ucp_Greek = 1 2276 ucp_Cyrillic = 2 2277 ucp_Arabic = 3 2278 ucp_Syriac = 4 2279 ucp_Thaana = 5 2280 ucp_Devanagari = 6 2281 ucp_Bengali = 7 2282 ucp_Gurmukhi = 8 2283 ucp_Gujarati = 9 2284 ucp_Oriya = 10 2285 ucp_Tamil = 11 2286 ucp_Telugu = 12 2287 ucp_Kannada = 13 2288 ucp_Malayalam = 14 2289 ucp_Sinhala = 15 2290 ucp_Myanmar = 16 2291 ucp_Georgian = 17 2292 ucp_Hangul = 18 2293 ucp_Mongolian = 19 2294 ucp_Hiragana = 20 2295 ucp_Katakana = 21 2296 ucp_Bopomofo = 22 2297 ucp_Han = 23 2298 ucp_Yi = 24 2299 ucp_Tagalog = 25 2300 ucp_Hanunoo = 26 2301 ucp_Buhid = 27 2302 ucp_Tagbanwa = 28 2303 ucp_Limbu = 29 2304 ucp_Tai_Le = 30 2305 ucp_Linear_B = 31 2306 ucp_Cypriot = 32 2307 ucp_Buginese = 33 2308 ucp_Coptic = 34 2309 ucp_Glagolitic = 35 2310 ucp_Syloti_Nagri = 36 2311 ucp_Phags_Pa = 37 2312 ucp_Nko = 38 2313 ucp_Kayah_Li = 39 2314 ucp_Javanese = 40 2315 ucp_Kaithi = 41 2316 ucp_Mandaic = 42 2317 ucp_Chakma = 43 2318 ucp_Sharada = 44 2319 ucp_Takri = 45 2320 ucp_Duployan = 46 2321 ucp_Grantha = 47 2322 ucp_Khojki = 48 2323 ucp_Linear_A = 49 2324 ucp_Mahajani = 50 2325 ucp_Manichaean = 51 2326 ucp_Modi = 52 2327 ucp_Old_Permic = 53 2328 ucp_Psalter_Pahlavi = 54 2329 ucp_Khudawadi = 55 2330 ucp_Tirhuta = 56 2331 ucp_Multani = 57 2332 ucp_Adlam = 58 2333 ucp_Masaram_Gondi = 59 2334 ucp_Dogra = 60 2335 ucp_Gunjala_Gondi = 61 2336 ucp_Hanifi_Rohingya = 62 2337 ucp_Sogdian = 63 2338 ucp_Nandinagari = 64 2339 ucp_Yezidi = 65 2340 ucp_Cypro_Minoan = 66 2341 ucp_Old_Uyghur = 67 2342 2343 // Scripts which has no characters in other scripts. 2344 ucp_Unknown = 68 2345 ucp_Common = 69 2346 ucp_Armenian = 70 2347 ucp_Hebrew = 71 2348 ucp_Thai = 72 2349 ucp_Lao = 73 2350 ucp_Tibetan = 74 2351 ucp_Ethiopic = 75 2352 ucp_Cherokee = 76 2353 ucp_Canadian_Aboriginal = 77 2354 ucp_Ogham = 78 2355 ucp_Runic = 79 2356 ucp_Khmer = 80 2357 ucp_Old_Italic = 81 2358 ucp_Gothic = 82 2359 ucp_Deseret = 83 2360 ucp_Inherited = 84 2361 ucp_Ugaritic = 85 2362 ucp_Shavian = 86 2363 ucp_Osmanya = 87 2364 ucp_Braille = 88 2365 ucp_New_Tai_Lue = 89 2366 ucp_Tifinagh = 90 2367 ucp_Old_Persian = 91 2368 ucp_Kharoshthi = 92 2369 ucp_Balinese = 93 2370 ucp_Cuneiform = 94 2371 ucp_Phoenician = 95 2372 ucp_Sundanese = 96 2373 ucp_Lepcha = 97 2374 ucp_Ol_Chiki = 98 2375 ucp_Vai = 99 2376 ucp_Saurashtra = 100 2377 ucp_Rejang = 101 2378 ucp_Lycian = 102 2379 ucp_Carian = 103 2380 ucp_Lydian = 104 2381 ucp_Cham = 105 2382 ucp_Tai_Tham = 106 2383 ucp_Tai_Viet = 107 2384 ucp_Avestan = 108 2385 ucp_Egyptian_Hieroglyphs = 109 2386 ucp_Samaritan = 110 2387 ucp_Lisu = 111 2388 ucp_Bamum = 112 2389 ucp_Meetei_Mayek = 113 2390 ucp_Imperial_Aramaic = 114 2391 ucp_Old_South_Arabian = 115 2392 ucp_Inscriptional_Parthian = 116 2393 ucp_Inscriptional_Pahlavi = 117 2394 ucp_Old_Turkic = 118 2395 ucp_Batak = 119 2396 ucp_Brahmi = 120 2397 ucp_Meroitic_Cursive = 121 2398 ucp_Meroitic_Hieroglyphs = 122 2399 ucp_Miao = 123 2400 ucp_Sora_Sompeng = 124 2401 ucp_Caucasian_Albanian = 125 2402 ucp_Bassa_Vah = 126 2403 ucp_Elbasan = 127 2404 ucp_Pahawh_Hmong = 128 2405 ucp_Mende_Kikakui = 129 2406 ucp_Mro = 130 2407 ucp_Old_North_Arabian = 131 2408 ucp_Nabataean = 132 2409 ucp_Palmyrene = 133 2410 ucp_Pau_Cin_Hau = 134 2411 ucp_Siddham = 135 2412 ucp_Warang_Citi = 136 2413 ucp_Ahom = 137 2414 ucp_Anatolian_Hieroglyphs = 138 2415 ucp_Hatran = 139 2416 ucp_Old_Hungarian = 140 2417 ucp_SignWriting = 141 2418 ucp_Bhaiksuki = 142 2419 ucp_Marchen = 143 2420 ucp_Newa = 144 2421 ucp_Osage = 145 2422 ucp_Tangut = 146 2423 ucp_Nushu = 147 2424 ucp_Soyombo = 148 2425 ucp_Zanabazar_Square = 149 2426 ucp_Makasar = 150 2427 ucp_Medefaidrin = 151 2428 ucp_Old_Sogdian = 152 2429 ucp_Elymaic = 153 2430 ucp_Nyiakeng_Puachue_Hmong = 154 2431 ucp_Wancho = 155 2432 ucp_Chorasmian = 156 2433 ucp_Dives_Akuru = 157 2434 ucp_Khitan_Small_Script = 158 2435 ucp_Tangsa = 159 2436 ucp_Toto = 160 2437 ucp_Vithkuqi = 161 2438 2439 // This must be last 2440 ucp_Script_Count = 162 2441 ) 2442 2443 // Undefine the list macros; they are no longer needed. 2444 2445 // PCRE2_CODE_UNIT_WIDTH must be defined. If it is 8, 16, or 32, redefine 2446 // PCRE2_SUFFIX to use it. If it is 0, undefine the other macros and make 2447 // PCRE2_SUFFIX a no-op. Otherwise, generate an error. 2448 2449 // End of pcre2.h 2450 // ************************************************ 2451 // 2452 // Perl-Compatible Regular Expressions * 2453 // 2454 2455 // PCRE is a library of functions to support regular expressions whose syntax 2456 // and semantics are as close as possible to those of the Perl 5 language. 2457 // 2458 // Written by Philip Hazel 2459 // Original API code Copyright (c) 1997-2012 University of Cambridge 2460 // New API code Copyright (c) 2016-2022 University of Cambridge 2461 // 2462 // This module is auto-generated from Unicode data files. DO NOT EDIT MANUALLY! 2463 // Instead, modify the maint/GenerateUcpHeader.py script and run it to generate 2464 // a new version of this code. 2465 // 2466 // ----------------------------------------------------------------------------- 2467 // Redistribution and use in source and binary forms, with or without 2468 // modification, are permitted provided that the following conditions are met: 2469 // 2470 // * Redistributions of source code must retain the above copyright notice, 2471 // this list of conditions and the following disclaimer. 2472 // 2473 // * Redistributions in binary form must reproduce the above copyright 2474 // notice, this list of conditions and the following disclaimer in the 2475 // documentation and/or other materials provided with the distribution. 2476 // 2477 // * Neither the name of the University of Cambridge nor the names of its 2478 // contributors may be used to endorse or promote products derived from 2479 // this software without specific prior written permission. 2480 // 2481 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 2482 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 2483 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2484 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 2485 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 2486 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 2487 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 2488 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 2489 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 2490 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 2491 // POSSIBILITY OF SUCH DAMAGE. 2492 // ----------------------------------------------------------------------------- 2493 2494 // This file contains definitions of the Unicode property values that are 2495 // returned by the UCD access macros and used throughout PCRE2. 2496 // 2497 // IMPORTANT: The specific values of the first two enums (general and particular 2498 // character categories) are assumed by the table called catposstab in the file 2499 // pcre2_auto_possess.c. They are unlikely to change, but should be checked after 2500 // an update. 2501 2502 // These are the general character categories. 2503 2504 const ( /* pcre2_ucp.h:58:1: */ 2505 ucp_C = 0 2506 ucp_L = 1 2507 ucp_M = 2 2508 ucp_N = 3 2509 ucp_P = 4 2510 ucp_S = 5 2511 ucp_Z = 6 2512 ) 2513 2514 // These are the particular character categories. 2515 2516 const ( /* pcre2_ucp.h:70:1: */ 2517 ucp_Cc = 0 // Control 2518 ucp_Cf = 1 // Format 2519 ucp_Cn = 2 // Unassigned 2520 ucp_Co = 3 // Private use 2521 ucp_Cs = 4 // Surrogate 2522 ucp_Ll = 5 // Lower case letter 2523 ucp_Lm = 6 // Modifier letter 2524 ucp_Lo = 7 // Other letter 2525 ucp_Lt = 8 // Title case letter 2526 ucp_Lu = 9 // Upper case letter 2527 ucp_Mc = 10 // Spacing mark 2528 ucp_Me = 11 // Enclosing mark 2529 ucp_Mn = 12 // Non-spacing mark 2530 ucp_Nd = 13 // Decimal number 2531 ucp_Nl = 14 // Letter number 2532 ucp_No = 15 // Other number 2533 ucp_Pc = 16 // Connector punctuation 2534 ucp_Pd = 17 // Dash punctuation 2535 ucp_Pe = 18 // Close punctuation 2536 ucp_Pf = 19 // Final punctuation 2537 ucp_Pi = 20 // Initial punctuation 2538 ucp_Po = 21 // Other punctuation 2539 ucp_Ps = 22 // Open punctuation 2540 ucp_Sc = 23 // Currency symbol 2541 ucp_Sk = 24 // Modifier symbol 2542 ucp_Sm = 25 // Mathematical symbol 2543 ucp_So = 26 // Other symbol 2544 ucp_Zl = 27 // Line separator 2545 ucp_Zp = 28 // Paragraph separator 2546 ucp_Zs = 29 2547 ) 2548 2549 type Tptrdiff_t = int64 /* <builtin>:3:26 */ 2550 2551 type Tsize_t = uint64 /* <builtin>:9:23 */ 2552 2553 type Twchar_t = int32 /* <builtin>:15:24 */ 2554 2555 type T__int128_t = struct { 2556 Flo int64 2557 Fhi int64 2558 } /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128 2559 type T__uint128_t = struct { 2560 Flo uint64 2561 Fhi uint64 2562 } /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128 2563 2564 type T__builtin_va_list = uintptr /* <builtin>:46:14 */ 2565 type T__float128 = float64 /* <builtin>:47:21 */ 2566 2567 // ************************************************ 2568 // 2569 // Perl-Compatible Regular Expressions * 2570 // 2571 2572 // PCRE is a library of functions to support regular expressions whose syntax 2573 // and semantics are as close as possible to those of the Perl 5 language. 2574 // 2575 // Written by Philip Hazel 2576 // Original API code Copyright (c) 1997-2012 University of Cambridge 2577 // New API code Copyright (c) 2016-2022 University of Cambridge 2578 // 2579 // ----------------------------------------------------------------------------- 2580 // Redistribution and use in source and binary forms, with or without 2581 // modification, are permitted provided that the following conditions are met: 2582 // 2583 // * Redistributions of source code must retain the above copyright notice, 2584 // this list of conditions and the following disclaimer. 2585 // 2586 // * Redistributions in binary form must reproduce the above copyright 2587 // notice, this list of conditions and the following disclaimer in the 2588 // documentation and/or other materials provided with the distribution. 2589 // 2590 // * Neither the name of the University of Cambridge nor the names of its 2591 // contributors may be used to endorse or promote products derived from 2592 // this software without specific prior written permission. 2593 // 2594 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 2595 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 2596 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2597 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 2598 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 2599 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 2600 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 2601 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 2602 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 2603 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 2604 // POSSIBILITY OF SUCH DAMAGE. 2605 // ----------------------------------------------------------------------------- 2606 2607 // This module contains functions that scan a compiled pattern and change 2608 // repeats into possessive repeats where possible. 2609 2610 // src/config.h. Generated from config.h.in by configure. 2611 // src/config.h.in. Generated from configure.ac by autoheader. 2612 2613 // PCRE2 is written in Standard C, but there are a few non-standard things it 2614 // can cope with, allowing it to run on SunOS4 and other "close to standard" 2615 // systems. 2616 // 2617 // In environments that support the GNU autotools, config.h.in is converted into 2618 // config.h by the "configure" script. In environments that use CMake, 2619 // config-cmake.in is converted into config.h. If you are going to build PCRE2 "by 2620 // hand" without using "configure" or CMake, you should copy the distributed 2621 // config.h.generic to config.h, and edit the macro definitions to be the way you 2622 // need them. You must then add -DHAVE_CONFIG_H to all of your compile commands, 2623 // so that config.h is included at the start of every source. 2624 // 2625 // Alternatively, you can avoid editing by using -D on the compiler command line 2626 // to set the macro values. In this case, you do not have to set -DHAVE_CONFIG_H, 2627 // but if you do, default values will be taken from config.h for non-boolean 2628 // macros that are not defined on the command line. 2629 // 2630 // Boolean macros such as HAVE_STDLIB_H and SUPPORT_PCRE2_8 should either be 2631 // defined (conventionally to 1) for TRUE, and not defined at all for FALSE. All 2632 // such macros are listed as a commented #undef in config.h.generic. Macros such 2633 // as MATCH_LIMIT, whose actual value is relevant, have defaults defined, but are 2634 // surrounded by #ifndef/#endif lines so that the value can be overridden by -D. 2635 // 2636 // PCRE2 uses memmove() if HAVE_MEMMOVE is defined; otherwise it uses bcopy() if 2637 // HAVE_BCOPY is defined. If your system has neither bcopy() nor memmove(), make 2638 // sure both macros are undefined; an emulation function will then be used. 2639 2640 // By default, the \R escape sequence matches any Unicode line ending 2641 // character or sequence of characters. If BSR_ANYCRLF is defined (to any 2642 // value), this is changed so that backslash-R matches only CR, LF, or CRLF. 2643 // The build-time default can be overridden by the user of PCRE2 at runtime. 2644 // 2645 // #undef BSR_ANYCRLF 2646 2647 // Define to any value to disable the use of the z and t modifiers in 2648 // formatting settings such as %zu or %td (this is rarely needed). 2649 // #undef DISABLE_PERCENT_ZT 2650 2651 // If you are compiling for a system that uses EBCDIC instead of ASCII 2652 // character codes, define this macro to any value. When EBCDIC is set, PCRE2 2653 // assumes that all input strings are in EBCDIC. If you do not define this 2654 // macro, PCRE2 will assume input strings are ASCII or UTF-8/16/32 Unicode. It 2655 // is not possible to build a version of PCRE2 that supports both EBCDIC and 2656 // UTF-8/16/32. 2657 // #undef EBCDIC 2658 2659 // In an EBCDIC environment, define this macro to any value to arrange for the 2660 // NL character to be 0x25 instead of the default 0x15. NL plays the role that 2661 // LF does in an ASCII/Unicode environment. 2662 // #undef EBCDIC_NL25 2663 2664 // Define this if your compiler supports __attribute__((uninitialized)) 2665 // #undef HAVE_ATTRIBUTE_UNINITIALIZED 2666 2667 // Define to 1 if you have the `bcopy' function. 2668 2669 // Define to 1 if you have the <bzlib.h> header file. 2670 2671 // Define to 1 if you have the <dirent.h> header file. 2672 2673 // Define to 1 if you have the <dlfcn.h> header file. 2674 2675 // Define to 1 if you have the <editline/readline.h> header file. 2676 // #undef HAVE_EDITLINE_READLINE_H 2677 2678 // Define to 1 if you have the <edit/readline/readline.h> header file. 2679 // #undef HAVE_EDIT_READLINE_READLINE_H 2680 2681 // Define to 1 if you have the <inttypes.h> header file. 2682 2683 // Define to 1 if you have the <limits.h> header file. 2684 2685 // Define to 1 if you have the `memfd_create' function. 2686 2687 // Define to 1 if you have the `memmove' function. 2688 2689 // Define to 1 if you have the <minix/config.h> header file. 2690 // #undef HAVE_MINIX_CONFIG_H 2691 2692 // Define to 1 if you have the `mkostemp' function. 2693 2694 // Define if you have POSIX threads libraries and header files. 2695 // #undef HAVE_PTHREAD 2696 2697 // Have PTHREAD_PRIO_INHERIT. 2698 // #undef HAVE_PTHREAD_PRIO_INHERIT 2699 2700 // Define to 1 if you have the <readline.h> header file. 2701 // #undef HAVE_READLINE_H 2702 2703 // Define to 1 if you have the <readline/history.h> header file. 2704 // #undef HAVE_READLINE_HISTORY_H 2705 2706 // Define to 1 if you have the <readline/readline.h> header file. 2707 // #undef HAVE_READLINE_READLINE_H 2708 2709 // Define to 1 if you have the `realpath' function. 2710 2711 // Define to 1 if you have the `secure_getenv' function. 2712 2713 // Define to 1 if you have the <stdint.h> header file. 2714 2715 // Define to 1 if you have the <stdio.h> header file. 2716 2717 // Define to 1 if you have the <stdlib.h> header file. 2718 2719 // Define to 1 if you have the `strerror' function. 2720 2721 // Define to 1 if you have the <strings.h> header file. 2722 2723 // Define to 1 if you have the <string.h> header file. 2724 2725 // Define to 1 if you have the <sys/stat.h> header file. 2726 2727 // Define to 1 if you have the <sys/types.h> header file. 2728 2729 // Define to 1 if you have the <sys/wait.h> header file. 2730 2731 // Define to 1 if you have the <unistd.h> header file. 2732 2733 // Define to 1 if the compiler supports simple visibility declarations. 2734 2735 // Define to 1 if you have the <wchar.h> header file. 2736 2737 // Define to 1 if you have the <windows.h> header file. 2738 // #undef HAVE_WINDOWS_H 2739 2740 // Define to 1 if you have the <zlib.h> header file. 2741 2742 // This limits the amount of memory that may be used while matching a pattern. 2743 // It applies to both pcre2_match() and pcre2_dfa_match(). It does not apply 2744 // to JIT matching. The value is in kibibytes (units of 1024 bytes). 2745 2746 // The value of LINK_SIZE determines the number of bytes used to store links 2747 // as offsets within the compiled regex. The default is 2, which allows for 2748 // compiled patterns up to 65535 code units long. This covers the vast 2749 // majority of cases. However, PCRE2 can also be compiled to use 3 or 4 bytes 2750 // instead. This allows for longer patterns in extreme cases. 2751 2752 // Define to the sub-directory where libtool stores uninstalled libraries. 2753 2754 // The value of MATCH_LIMIT determines the default number of times the 2755 // pcre2_match() function can record a backtrack position during a single 2756 // matching attempt. The value is also used to limit a loop counter in 2757 // pcre2_dfa_match(). There is a runtime interface for setting a different 2758 // limit. The limit exists in order to catch runaway regular expressions that 2759 // take for ever to determine that they do not match. The default is set very 2760 // large so that it does not accidentally catch legitimate cases. 2761 2762 // The above limit applies to all backtracks, whether or not they are nested. 2763 // In some environments it is desirable to limit the nesting of backtracking 2764 // (that is, the depth of tree that is searched) more strictly, in order to 2765 // restrict the maximum amount of heap memory that is used. The value of 2766 // MATCH_LIMIT_DEPTH provides this facility. To have any useful effect, it 2767 // must be less than the value of MATCH_LIMIT. The default is to use the same 2768 // value as MATCH_LIMIT. There is a runtime method for setting a different 2769 // limit. In the case of pcre2_dfa_match(), this limit controls the depth of 2770 // the internal nested function calls that are used for pattern recursions, 2771 // lookarounds, and atomic groups. 2772 2773 // This limit is parameterized just in case anybody ever wants to change it. 2774 // Care must be taken if it is increased, because it guards against integer 2775 // overflow caused by enormously large patterns. 2776 2777 // This limit is parameterized just in case anybody ever wants to change it. 2778 // Care must be taken if it is increased, because it guards against integer 2779 // overflow caused by enormously large patterns. 2780 2781 // Defining NEVER_BACKSLASH_C locks out the use of \C in all patterns. 2782 // #undef NEVER_BACKSLASH_C 2783 2784 // The value of NEWLINE_DEFAULT determines the default newline character 2785 // sequence. PCRE2 client programs can override this by selecting other values 2786 // at run time. The valid values are 1 (CR), 2 (LF), 3 (CRLF), 4 (ANY), 5 2787 // (ANYCRLF), and 6 (NUL). 2788 2789 // Name of package 2790 2791 // Define to the address where bug reports for this package should be sent. 2792 2793 // Define to the full name of this package. 2794 2795 // Define to the full name and version of this package. 2796 2797 // Define to the one symbol short name of this package. 2798 2799 // Define to the home page for this package. 2800 2801 // Define to the version of this package. 2802 2803 // The value of PARENS_NEST_LIMIT specifies the maximum depth of nested 2804 // parentheses (of any kind) in a pattern. This limits the amount of system 2805 // stack that is used while compiling a pattern. 2806 2807 // The value of PCRE2GREP_BUFSIZE is the starting size of the buffer used by 2808 // pcre2grep to hold parts of the file it is searching. The buffer will be 2809 // expanded up to PCRE2GREP_MAX_BUFSIZE if necessary, for files containing 2810 // very long lines. The actual amount of memory used by pcre2grep is three 2811 // times this number, because it allows for the buffering of "before" and 2812 // "after" lines. 2813 2814 // The value of PCRE2GREP_MAX_BUFSIZE specifies the maximum size of the buffer 2815 // used by pcre2grep to hold parts of the file it is searching. The actual 2816 // amount of memory used by pcre2grep is three times this number, because it 2817 // allows for the buffering of "before" and "after" lines. 2818 2819 // to make a symbol visible 2820 2821 // to make a symbol visible 2822 2823 // Define to any value to include debugging code. 2824 // #undef PCRE2_DEBUG 2825 2826 // to make a symbol visible 2827 2828 // If you are compiling for a system other than a Unix-like system or 2829 // Win32, and it needs some magic to be inserted before the definition 2830 // of a function that is exported by the library, define this macro to 2831 // contain the relevant magic. If you do not define this macro, a suitable 2832 // __declspec value is used for Windows systems; in other environments 2833 // "extern" is used for a C compiler and "extern C" for a C++ compiler. 2834 // This macro apears at the start of every exported function that is part 2835 // of the external API. It does not appear on functions that are "external" 2836 // in the C sense, but which are internal to the library. 2837 2838 // Define to any value if linking statically (TODO: make nice with Libtool) 2839 // #undef PCRE2_STATIC 2840 2841 // Define to necessary symbol if this constant uses a non-standard name on 2842 // your system. 2843 // #undef PTHREAD_CREATE_JOINABLE 2844 2845 // Define to any non-zero number to enable support for SELinux compatible 2846 // executable memory allocator in JIT. Note that this will have no effect 2847 // unless SUPPORT_JIT is also defined. 2848 // #undef SLJIT_PROT_EXECUTABLE_ALLOCATOR 2849 2850 // Define to 1 if all of the C90 standard headers exist (not just the ones 2851 // required in a freestanding environment). This macro is provided for 2852 // backward compatibility; new code need not use it. 2853 2854 // Define to any value to enable support for Just-In-Time compiling. 2855 // #undef SUPPORT_JIT 2856 2857 // Define to any value to allow pcre2grep to be linked with libbz2, so that it 2858 // is able to handle .bz2 files. 2859 // #undef SUPPORT_LIBBZ2 2860 2861 // Define to any value to allow pcre2test to be linked with libedit. 2862 // #undef SUPPORT_LIBEDIT 2863 2864 // Define to any value to allow pcre2test to be linked with libreadline. 2865 // #undef SUPPORT_LIBREADLINE 2866 2867 // Define to any value to allow pcre2grep to be linked with libz, so that it 2868 // is able to handle .gz files. 2869 // #undef SUPPORT_LIBZ 2870 2871 // Define to any value to enable callout script support in pcre2grep. 2872 2873 // Define to any value to enable fork support in pcre2grep callout scripts. 2874 // This will have no effect unless SUPPORT_PCRE2GREP_CALLOUT is also defined. 2875 // 2876 2877 // Define to any value to enable JIT support in pcre2grep. Note that this will 2878 // have no effect unless SUPPORT_JIT is also defined. 2879 // #undef SUPPORT_PCRE2GREP_JIT 2880 2881 // Define to any value to enable the 16 bit PCRE2 library. 2882 // #undef SUPPORT_PCRE2_16 2883 2884 // Define to any value to enable the 32 bit PCRE2 library. 2885 // #undef SUPPORT_PCRE2_32 2886 2887 // Define to any value to enable the 8 bit PCRE2 library. 2888 2889 // Define to any value to enable support for Unicode and UTF encoding. This 2890 // will work even in an EBCDIC environment, but it is incompatible with the 2891 // EBCDIC macro. That is, PCRE2 can support *either* EBCDIC code *or* 2892 // ASCII/Unicode, but not both at once. 2893 2894 // Define to any value for valgrind support to find invalid memory reads. 2895 // #undef SUPPORT_VALGRIND 2896 2897 // Enable extensions on AIX 3, Interix. 2898 // Enable general extensions on macOS. 2899 // Enable general extensions on Solaris. 2900 // Enable GNU extensions on systems that have them. 2901 // Enable X/Open compliant socket functions that do not require linking 2902 // with -lxnet on HP-UX 11.11. 2903 // Identify the host operating system as Minix. 2904 // This macro does not affect the system headers' behavior. 2905 // A future release of Autoconf may stop defining this macro. 2906 // # undef _MINIX 2907 // Enable general extensions on NetBSD. 2908 // Enable NetBSD compatibility extensions on Minix. 2909 // Enable OpenBSD compatibility extensions on NetBSD. 2910 // Oddly enough, this does nothing on OpenBSD. 2911 // Define to 1 if needed for POSIX-compatible behavior. 2912 // # undef _POSIX_SOURCE 2913 // Define to 2 if needed for POSIX-compatible behavior. 2914 // # undef _POSIX_1_SOURCE 2915 // Enable POSIX-compatible threading on Solaris. 2916 // Enable extensions specified by ISO/IEC TS 18661-5:2014. 2917 // Enable extensions specified by ISO/IEC TS 18661-1:2014. 2918 // Enable extensions specified by ISO/IEC TS 18661-2:2015. 2919 // Enable extensions specified by ISO/IEC TS 18661-4:2015. 2920 // Enable extensions specified by ISO/IEC TS 18661-3:2015. 2921 // Enable extensions specified by ISO/IEC TR 24731-2:2010. 2922 // Enable extensions specified by ISO/IEC 24747:2009. 2923 // Enable extensions on HP NonStop. 2924 // Enable X/Open extensions. Define to 500 only if necessary 2925 // to make mbstate_t available. 2926 // # undef _XOPEN_SOURCE 2927 2928 // Version number of package 2929 2930 // Define to empty if `const' does not conform to ANSI C. 2931 // #undef const 2932 2933 // Define to the type of a signed integer type of width exactly 64 bits if 2934 // such a type exists and the standard includes do not define it. 2935 // #undef int64_t 2936 2937 // Define to `unsigned int' if <sys/types.h> does not define. 2938 // #undef size_t 2939 2940 // ************************************************ 2941 // 2942 // Perl-Compatible Regular Expressions * 2943 // 2944 2945 // PCRE2 is a library of functions to support regular expressions whose syntax 2946 // and semantics are as close as possible to those of the Perl 5 language. 2947 // 2948 // Written by Philip Hazel 2949 // Original API code Copyright (c) 1997-2012 University of Cambridge 2950 // New API code Copyright (c) 2016-2022 University of Cambridge 2951 // 2952 // ----------------------------------------------------------------------------- 2953 // Redistribution and use in source and binary forms, with or without 2954 // modification, are permitted provided that the following conditions are met: 2955 // 2956 // * Redistributions of source code must retain the above copyright notice, 2957 // this list of conditions and the following disclaimer. 2958 // 2959 // * Redistributions in binary form must reproduce the above copyright 2960 // notice, this list of conditions and the following disclaimer in the 2961 // documentation and/or other materials provided with the distribution. 2962 // 2963 // * Neither the name of the University of Cambridge nor the names of its 2964 // contributors may be used to endorse or promote products derived from 2965 // this software without specific prior written permission. 2966 // 2967 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 2968 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 2969 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2970 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 2971 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 2972 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 2973 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 2974 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 2975 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 2976 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 2977 // POSSIBILITY OF SUCH DAMAGE. 2978 // ----------------------------------------------------------------------------- 2979 2980 // We do not support both EBCDIC and Unicode at the same time. The "configure" 2981 // script prevents both being selected, but not everybody uses "configure". EBCDIC 2982 // is only supported for the 8-bit library, but the check for this has to be later 2983 // in this file, because the first part is not width-dependent, and is included by 2984 // pcre2test.c with CODE_UNIT_WIDTH == 0. 2985 2986 // Standard C headers 2987 2988 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 2989 // This file is part of the GNU C Library. 2990 // 2991 // The GNU C Library is free software; you can redistribute it and/or 2992 // modify it under the terms of the GNU Lesser General Public 2993 // License as published by the Free Software Foundation; either 2994 // version 2.1 of the License, or (at your option) any later version. 2995 // 2996 // The GNU C Library is distributed in the hope that it will be useful, 2997 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2998 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2999 // Lesser General Public License for more details. 3000 // 3001 // You should have received a copy of the GNU Lesser General Public 3002 // License along with the GNU C Library; if not, see 3003 // <https://www.gnu.org/licenses/>. 3004 3005 // ISO C99 Standard 7.4: Character handling <ctype.h> 3006 3007 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 3008 // This file is part of the GNU C Library. 3009 // 3010 // The GNU C Library is free software; you can redistribute it and/or 3011 // modify it under the terms of the GNU Lesser General Public 3012 // License as published by the Free Software Foundation; either 3013 // version 2.1 of the License, or (at your option) any later version. 3014 // 3015 // The GNU C Library is distributed in the hope that it will be useful, 3016 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3017 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3018 // Lesser General Public License for more details. 3019 // 3020 // You should have received a copy of the GNU Lesser General Public 3021 // License along with the GNU C Library; if not, see 3022 // <https://www.gnu.org/licenses/>. 3023 3024 // These are defined by the user (or the compiler) 3025 // to specify the desired environment: 3026 // 3027 // __STRICT_ANSI__ ISO Standard C. 3028 // _ISOC99_SOURCE Extensions to ISO C89 from ISO C99. 3029 // _ISOC11_SOURCE Extensions to ISO C99 from ISO C11. 3030 // _ISOC2X_SOURCE Extensions to ISO C99 from ISO C2X. 3031 // __STDC_WANT_LIB_EXT2__ 3032 // Extensions to ISO C99 from TR 27431-2:2010. 3033 // __STDC_WANT_IEC_60559_BFP_EXT__ 3034 // Extensions to ISO C11 from TS 18661-1:2014. 3035 // __STDC_WANT_IEC_60559_FUNCS_EXT__ 3036 // Extensions to ISO C11 from TS 18661-4:2015. 3037 // __STDC_WANT_IEC_60559_TYPES_EXT__ 3038 // Extensions to ISO C11 from TS 18661-3:2015. 3039 // __STDC_WANT_IEC_60559_EXT__ 3040 // ISO C2X interfaces defined only in Annex F. 3041 // 3042 // _POSIX_SOURCE IEEE Std 1003.1. 3043 // _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2; 3044 // if >=199309L, add IEEE Std 1003.1b-1993; 3045 // if >=199506L, add IEEE Std 1003.1c-1995; 3046 // if >=200112L, all of IEEE 1003.1-2004 3047 // if >=200809L, all of IEEE 1003.1-2008 3048 // _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if 3049 // Single Unix conformance is wanted, to 600 for the 3050 // sixth revision, to 700 for the seventh revision. 3051 // _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions. 3052 // _LARGEFILE_SOURCE Some more functions for correct standard I/O. 3053 // _LARGEFILE64_SOURCE Additional functionality from LFS for large files. 3054 // _FILE_OFFSET_BITS=N Select default filesystem interface. 3055 // _ATFILE_SOURCE Additional *at interfaces. 3056 // _DYNAMIC_STACK_SIZE_SOURCE Select correct (but non compile-time constant) 3057 // MINSIGSTKSZ, SIGSTKSZ and PTHREAD_STACK_MIN. 3058 // _GNU_SOURCE All of the above, plus GNU extensions. 3059 // _DEFAULT_SOURCE The default set of features (taking precedence over 3060 // __STRICT_ANSI__). 3061 // 3062 // _FORTIFY_SOURCE Add security hardening to many library functions. 3063 // Set to 1 or 2; 2 performs stricter checks than 1. 3064 // 3065 // _REENTRANT, _THREAD_SAFE 3066 // Obsolete; equivalent to _POSIX_C_SOURCE=199506L. 3067 // 3068 // The `-ansi' switch to the GNU C compiler, and standards conformance 3069 // options such as `-std=c99', define __STRICT_ANSI__. If none of 3070 // these are defined, or if _DEFAULT_SOURCE is defined, the default is 3071 // to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to 3072 // 200809L, as well as enabling miscellaneous functions from BSD and 3073 // SVID. If more than one of these are defined, they accumulate. For 3074 // example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together 3075 // give you ISO C, 1003.1, and 1003.2, but nothing else. 3076 // 3077 // These are defined by this file and are used by the 3078 // header files to decide what to declare or define: 3079 // 3080 // __GLIBC_USE (F) Define things from feature set F. This is defined 3081 // to 1 or 0; the subsequent macros are either defined 3082 // or undefined, and those tests should be moved to 3083 // __GLIBC_USE. 3084 // __USE_ISOC11 Define ISO C11 things. 3085 // __USE_ISOC99 Define ISO C99 things. 3086 // __USE_ISOC95 Define ISO C90 AMD1 (C95) things. 3087 // __USE_ISOCXX11 Define ISO C++11 things. 3088 // __USE_POSIX Define IEEE Std 1003.1 things. 3089 // __USE_POSIX2 Define IEEE Std 1003.2 things. 3090 // __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things. 3091 // __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things. 3092 // __USE_XOPEN Define XPG things. 3093 // __USE_XOPEN_EXTENDED Define X/Open Unix things. 3094 // __USE_UNIX98 Define Single Unix V2 things. 3095 // __USE_XOPEN2K Define XPG6 things. 3096 // __USE_XOPEN2KXSI Define XPG6 XSI things. 3097 // __USE_XOPEN2K8 Define XPG7 things. 3098 // __USE_XOPEN2K8XSI Define XPG7 XSI things. 3099 // __USE_LARGEFILE Define correct standard I/O things. 3100 // __USE_LARGEFILE64 Define LFS things with separate names. 3101 // __USE_FILE_OFFSET64 Define 64bit interface as default. 3102 // __USE_MISC Define things from 4.3BSD or System V Unix. 3103 // __USE_ATFILE Define *at interfaces and AT_* constants for them. 3104 // __USE_DYNAMIC_STACK_SIZE Define correct (but non compile-time constant) 3105 // MINSIGSTKSZ, SIGSTKSZ and PTHREAD_STACK_MIN. 3106 // __USE_GNU Define GNU extensions. 3107 // __USE_FORTIFY_LEVEL Additional security measures used, according to level. 3108 // 3109 // The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are 3110 // defined by this file unconditionally. `__GNU_LIBRARY__' is provided 3111 // only for compatibility. All new code should use the other symbols 3112 // to test for features. 3113 // 3114 // All macros listed above as possibly being defined by this file are 3115 // explicitly undefined if they are not explicitly defined. 3116 // Feature-test macros that are not defined by the user or compiler 3117 // but are implied by the other feature-test macros defined (or by the 3118 // lack of any definitions) are defined by the file. 3119 // 3120 // ISO C feature test macros depend on the definition of the macro 3121 // when an affected header is included, not when the first system 3122 // header is included, and so they are handled in 3123 // <bits/libc-header-start.h>, which does not have a multiple include 3124 // guard. Feature test macros that can be handled from the first 3125 // system header included are handled here. 3126 3127 // Undefine everything, so we get a clean slate. 3128 3129 // Suppress kernel-name space pollution unless user expressedly asks 3130 // for it. 3131 3132 // Convenience macro to test the version of gcc. 3133 // Use like this: 3134 // #if __GNUC_PREREQ (2,8) 3135 // ... code requiring gcc 2.8 or later ... 3136 // #endif 3137 // Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was 3138 // added in 2.0. 3139 3140 // Similarly for clang. Features added to GCC after version 4.2 may 3141 // or may not also be available in clang, and clang's definitions of 3142 // __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such 3143 // features can be queried via __has_extension/__has_feature. 3144 3145 // Whether to use feature set F. 3146 3147 // _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for 3148 // _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not 3149 // issue a warning; the expectation is that the source is being 3150 // transitioned to use the new macro. 3151 3152 // If _GNU_SOURCE was defined by the user, turn on all the other features. 3153 3154 // If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined, 3155 // define _DEFAULT_SOURCE. 3156 3157 // This is to enable the ISO C2X extension. 3158 3159 // This is to enable the ISO C11 extension. 3160 3161 // This is to enable the ISO C99 extension. 3162 3163 // This is to enable the ISO C90 Amendment 1:1995 extension. 3164 3165 // If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE 3166 // is defined, use POSIX.1-2008 (or another version depending on 3167 // _XOPEN_SOURCE). 3168 3169 // Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be 3170 // defined in all multithreaded code. GNU libc has not required this 3171 // for many years. We now treat them as compatibility synonyms for 3172 // _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with 3173 // comprehensive support for multithreaded code. Using them never 3174 // lowers the selected level of POSIX conformance, only raises it. 3175 3176 // Features part to handle 64-bit time_t support. 3177 // Copyright (C) 2021-2022 Free Software Foundation, Inc. 3178 // This file is part of the GNU C Library. 3179 // 3180 // The GNU C Library is free software; you can redistribute it and/or 3181 // modify it under the terms of the GNU Lesser General Public 3182 // License as published by the Free Software Foundation; either 3183 // version 2.1 of the License, or (at your option) any later version. 3184 // 3185 // The GNU C Library is distributed in the hope that it will be useful, 3186 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3187 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3188 // Lesser General Public License for more details. 3189 // 3190 // You should have received a copy of the GNU Lesser General Public 3191 // License along with the GNU C Library; if not, see 3192 // <https://www.gnu.org/licenses/>. 3193 3194 // We need to know the word size in order to check the time size. 3195 // Determine the wordsize from the preprocessor defines. 3196 3197 // Both x86-64 and x32 use the 64-bit system call interface. 3198 // Bit size of the time_t type at glibc build time, x86-64 and x32 case. 3199 // Copyright (C) 2018-2022 Free Software Foundation, Inc. 3200 // This file is part of the GNU C Library. 3201 // 3202 // The GNU C Library is free software; you can redistribute it and/or 3203 // modify it under the terms of the GNU Lesser General Public 3204 // License as published by the Free Software Foundation; either 3205 // version 2.1 of the License, or (at your option) any later version. 3206 // 3207 // The GNU C Library is distributed in the hope that it will be useful, 3208 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3209 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3210 // Lesser General Public License for more details. 3211 // 3212 // You should have received a copy of the GNU Lesser General Public 3213 // License along with the GNU C Library; if not, see 3214 // <https://www.gnu.org/licenses/>. 3215 3216 // Determine the wordsize from the preprocessor defines. 3217 3218 // Both x86-64 and x32 use the 64-bit system call interface. 3219 3220 // For others, time size is word size. 3221 3222 // The function 'gets' existed in C89, but is impossible to use 3223 // safely. It has been removed from ISO C11 and ISO C++14. Note: for 3224 // compatibility with various implementations of <cstdio>, this test 3225 // must consider only the value of __cplusplus when compiling C++. 3226 3227 // GNU formerly extended the scanf functions with modified format 3228 // specifiers %as, %aS, and %a[...] that allocate a buffer for the 3229 // input using malloc. This extension conflicts with ISO C99, which 3230 // defines %a as a standalone format specifier that reads a floating- 3231 // point number; moreover, POSIX.1-2008 provides the same feature 3232 // using the modifier letter 'm' instead (%ms, %mS, %m[...]). 3233 // 3234 // We now follow C99 unless GNU extensions are active and the compiler 3235 // is specifically in C89 or C++98 mode (strict or not). For 3236 // instance, with GCC, -std=gnu11 will have C99-compliant scanf with 3237 // or without -D_GNU_SOURCE, but -std=c89 -D_GNU_SOURCE will have the 3238 // old extension. 3239 3240 // Get definitions of __STDC_* predefined macros, if the compiler has 3241 // not preincluded this header automatically. 3242 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 3243 // This file is part of the GNU C Library. 3244 // 3245 // The GNU C Library is free software; you can redistribute it and/or 3246 // modify it under the terms of the GNU Lesser General Public 3247 // License as published by the Free Software Foundation; either 3248 // version 2.1 of the License, or (at your option) any later version. 3249 // 3250 // The GNU C Library is distributed in the hope that it will be useful, 3251 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3252 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3253 // Lesser General Public License for more details. 3254 // 3255 // You should have received a copy of the GNU Lesser General Public 3256 // License along with the GNU C Library; if not, see 3257 // <https://www.gnu.org/licenses/>. 3258 3259 // This macro indicates that the installed library is the GNU C Library. 3260 // For historic reasons the value now is 6 and this will stay from now 3261 // on. The use of this variable is deprecated. Use __GLIBC__ and 3262 // __GLIBC_MINOR__ now (see below) when you want to test for a specific 3263 // GNU C library version and use the values in <gnu/lib-names.h> to get 3264 // the sonames of the shared libraries. 3265 3266 // Major and minor version number of the GNU C library package. Use 3267 // these macros to test for features in specific releases. 3268 3269 // This is here only because every header file already includes this one. 3270 // Copyright (C) 1992-2022 Free Software Foundation, Inc. 3271 // Copyright The GNU Toolchain Authors. 3272 // This file is part of the GNU C Library. 3273 // 3274 // The GNU C Library is free software; you can redistribute it and/or 3275 // modify it under the terms of the GNU Lesser General Public 3276 // License as published by the Free Software Foundation; either 3277 // version 2.1 of the License, or (at your option) any later version. 3278 // 3279 // The GNU C Library is distributed in the hope that it will be useful, 3280 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3281 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3282 // Lesser General Public License for more details. 3283 // 3284 // You should have received a copy of the GNU Lesser General Public 3285 // License along with the GNU C Library; if not, see 3286 // <https://www.gnu.org/licenses/>. 3287 3288 // We are almost always included from features.h. 3289 3290 // The GNU libc does not support any K&R compilers or the traditional mode 3291 // of ISO C compilers anymore. Check for some of the combinations not 3292 // supported anymore. 3293 3294 // Some user header file might have defined this before. 3295 3296 // Compilers that lack __has_attribute may object to 3297 // #if defined __has_attribute && __has_attribute (...) 3298 // even though they do not need to evaluate the right-hand side of the &&. 3299 // Similarly for __has_builtin, etc. 3300 3301 // All functions, except those with callbacks or those that 3302 // synchronize memory, are leaf functions. 3303 3304 // GCC can always grok prototypes. For C++ programs we add throw() 3305 // to help it optimize the function calls. But this only works with 3306 // gcc 2.8.x and egcs. For gcc 3.4 and up we even mark C functions 3307 // as non-throwing using a function attribute since programs can use 3308 // the -fexceptions options for C code as well. 3309 3310 // These two macros are not used in glibc anymore. They are kept here 3311 // only because some other projects expect the macros to be defined. 3312 3313 // For these things, GCC behaves the ANSI way normally, 3314 // and the non-ANSI way under -traditional. 3315 3316 // This is not a typedef so `const __ptr_t' does the right thing. 3317 3318 // C++ needs to know that types and declarations are C, not C++. 3319 3320 // Fortify support. 3321 3322 // Use __builtin_dynamic_object_size at _FORTIFY_SOURCE=3 when available. 3323 3324 // Compile time conditions to choose between the regular, _chk and _chk_warn 3325 // variants. These conditions should get evaluated to constant and optimized 3326 // away. 3327 3328 // Length is known to be safe at compile time if the __L * __S <= __OBJSZ 3329 // condition can be folded to a constant and if it is true. The -1 check is 3330 // redundant because since it implies that __glibc_safe_len_cond is true. 3331 3332 // Conversely, we know at compile time that the length is unsafe if the 3333 // __L * __S <= __OBJSZ condition can be folded to a constant and if it is 3334 // false. 3335 3336 // Fortify function f. __f_alias, __f_chk and __f_chk_warn must be 3337 // declared. 3338 3339 // Fortify function f, where object size argument passed to f is the number of 3340 // elements and not total size. 3341 3342 // Support for flexible arrays. 3343 // Headers that should use flexible arrays only if they're "real" 3344 // (e.g. only if they won't affect sizeof()) should test 3345 // #if __glibc_c99_flexarr_available. 3346 3347 // __asm__ ("xyz") is used throughout the headers to rename functions 3348 // at the assembly language level. This is wrapped by the __REDIRECT 3349 // macro, in order to support compilers that can do this some other 3350 // way. When compilers don't support asm-names at all, we have to do 3351 // preprocessor tricks instead (which don't have exactly the right 3352 // semantics, but it's the best we can do). 3353 // 3354 // Example: 3355 // int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid); 3356 3357 // 3358 // #elif __SOME_OTHER_COMPILER__ 3359 // 3360 // # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias) 3361 3362 // GCC and clang have various useful declarations that can be made with 3363 // the '__attribute__' syntax. All of the ways we use this do fine if 3364 // they are omitted for compilers that don't understand it. 3365 3366 // At some point during the gcc 2.96 development the `malloc' attribute 3367 // for functions was introduced. We don't want to use it unconditionally 3368 // (although this would be possible) since it generates warnings. 3369 3370 // Tell the compiler which arguments to an allocation function 3371 // indicate the size of the allocation. 3372 3373 // Tell the compiler which argument to an allocation function 3374 // indicates the alignment of the allocation. 3375 3376 // At some point during the gcc 2.96 development the `pure' attribute 3377 // for functions was introduced. We don't want to use it unconditionally 3378 // (although this would be possible) since it generates warnings. 3379 3380 // This declaration tells the compiler that the value is constant. 3381 3382 // At some point during the gcc 3.1 development the `used' attribute 3383 // for functions was introduced. We don't want to use it unconditionally 3384 // (although this would be possible) since it generates warnings. 3385 3386 // Since version 3.2, gcc allows marking deprecated functions. 3387 3388 // Since version 4.5, gcc also allows one to specify the message printed 3389 // when a deprecated function is used. clang claims to be gcc 4.2, but 3390 // may also support this feature. 3391 3392 // At some point during the gcc 2.8 development the `format_arg' attribute 3393 // for functions was introduced. We don't want to use it unconditionally 3394 // (although this would be possible) since it generates warnings. 3395 // If several `format_arg' attributes are given for the same function, in 3396 // gcc-3.0 and older, all but the last one are ignored. In newer gccs, 3397 // all designated arguments are considered. 3398 3399 // At some point during the gcc 2.97 development the `strfmon' format 3400 // attribute for functions was introduced. We don't want to use it 3401 // unconditionally (although this would be possible) since it 3402 // generates warnings. 3403 3404 // The nonnull function attribute marks pointer parameters that 3405 // must not be NULL. This has the name __nonnull in glibc, 3406 // and __attribute_nonnull__ in files shared with Gnulib to avoid 3407 // collision with a different __nonnull in DragonFlyBSD 5.9. 3408 3409 // The returns_nonnull function attribute marks the return type of the function 3410 // as always being non-null. 3411 3412 // If fortification mode, we warn about unused results of certain 3413 // function calls which can lead to problems. 3414 3415 // Forces a function to be always inlined. 3416 // The Linux kernel defines __always_inline in stddef.h (283d7573), and 3417 // it conflicts with this definition. Therefore undefine it first to 3418 // allow either header to be included first. 3419 3420 // Associate error messages with the source location of the call site rather 3421 // than with the source location inside the function. 3422 3423 // GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 3424 // inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__ 3425 // or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions 3426 // older than 4.3 may define these macros and still not guarantee GNU inlining 3427 // semantics. 3428 // 3429 // clang++ identifies itself as gcc-4.2, but has support for GNU inlining 3430 // semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and 3431 // __GNUC_GNU_INLINE__ macro definitions. 3432 3433 // GCC 4.3 and above allow passing all anonymous arguments of an 3434 // __extern_always_inline function to some other vararg function. 3435 3436 // It is possible to compile containing GCC extensions even if GCC is 3437 // run in pedantic mode if the uses are carefully marked using the 3438 // `__extension__' keyword. But this is not generally available before 3439 // version 2.8. 3440 3441 // __restrict is known in EGCS 1.2 and above, and in clang. 3442 // It works also in C++ mode (outside of arrays), but only when spelled 3443 // as '__restrict', not 'restrict'. 3444 3445 // ISO C99 also allows to declare arrays as non-overlapping. The syntax is 3446 // array_name[restrict] 3447 // GCC 3.1 and clang support this. 3448 // This syntax is not usable in C++ mode. 3449 3450 // Describes a char array whose address can safely be passed as the first 3451 // argument to strncpy and strncat, as the char array is not necessarily 3452 // a NUL-terminated string. 3453 3454 // Undefine (also defined in libc-symbols.h). 3455 // Copies attributes from the declaration or type referenced by 3456 // the argument. 3457 3458 // Gnulib avoids including these, as they don't work on non-glibc or 3459 // older glibc platforms. 3460 // Determine the wordsize from the preprocessor defines. 3461 3462 // Both x86-64 and x32 use the 64-bit system call interface. 3463 // Properties of long double type. ldbl-96 version. 3464 // Copyright (C) 2016-2022 Free Software Foundation, Inc. 3465 // This file is part of the GNU C Library. 3466 // 3467 // The GNU C Library is free software; you can redistribute it and/or 3468 // modify it under the terms of the GNU Lesser General Public 3469 // License published by the Free Software Foundation; either 3470 // version 2.1 of the License, or (at your option) any later version. 3471 // 3472 // The GNU C Library is distributed in the hope that it will be useful, 3473 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3474 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3475 // Lesser General Public License for more details. 3476 // 3477 // You should have received a copy of the GNU Lesser General Public 3478 // License along with the GNU C Library; if not, see 3479 // <https://www.gnu.org/licenses/>. 3480 3481 // long double is distinct from double, so there is nothing to 3482 // define here. 3483 3484 // __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is 3485 // intended for use in preprocessor macros. 3486 // 3487 // Note: MESSAGE must be a _single_ string; concatenation of string 3488 // literals is not supported. 3489 3490 // Generic selection (ISO C11) is a C-only feature, available in GCC 3491 // since version 4.9. Previous versions do not provide generic 3492 // selection, even though they might set __STDC_VERSION__ to 201112L, 3493 // when in -std=c11 mode. Thus, we must check for !defined __GNUC__ 3494 // when testing __STDC_VERSION__ for generic selection support. 3495 // On the other hand, Clang also defines __GNUC__, so a clang-specific 3496 // check is required to enable the use of generic selection. 3497 3498 // Designates a 1-based positional argument ref-index of pointer type 3499 // that can be used to access size-index elements of the pointed-to 3500 // array according to access mode, or at least one element when 3501 // size-index is not provided: 3502 // access (access-mode, <ref-index> [, <size-index>]) 3503 // For _FORTIFY_SOURCE == 3 we use __builtin_dynamic_object_size, which may 3504 // use the access attribute to get object sizes from function definition 3505 // arguments, so we can't use them on functions we fortify. Drop the object 3506 // size hints for such functions. 3507 3508 // Designates dealloc as a function to call to deallocate objects 3509 // allocated by the declared function. 3510 3511 // Specify that a function such as setjmp or vfork may return 3512 // twice. 3513 3514 // If we don't have __REDIRECT, prototypes will be missing if 3515 // __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64]. 3516 3517 // Decide whether we can define 'extern inline' functions in headers. 3518 3519 // This is here only because every header file already includes this one. 3520 // Get the definitions of all the appropriate `__stub_FUNCTION' symbols. 3521 // <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub 3522 // that will always return failure (and set errno to ENOSYS). 3523 // This file is automatically generated. 3524 // This file selects the right generated file of `__stub_FUNCTION' macros 3525 // based on the architecture being compiled for. 3526 3527 // This file is automatically generated. 3528 // It defines a symbol `__stub_FUNCTION' for each function 3529 // in the C library which is a stub, meaning it will fail 3530 // every time called, usually setting errno to ENOSYS. 3531 3532 // bits/types.h -- definitions of __*_t types underlying *_t types. 3533 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 3534 // This file is part of the GNU C Library. 3535 // 3536 // The GNU C Library is free software; you can redistribute it and/or 3537 // modify it under the terms of the GNU Lesser General Public 3538 // License as published by the Free Software Foundation; either 3539 // version 2.1 of the License, or (at your option) any later version. 3540 // 3541 // The GNU C Library is distributed in the hope that it will be useful, 3542 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3543 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3544 // Lesser General Public License for more details. 3545 // 3546 // You should have received a copy of the GNU Lesser General Public 3547 // License along with the GNU C Library; if not, see 3548 // <https://www.gnu.org/licenses/>. 3549 3550 // Never include this file directly; use <sys/types.h> instead. 3551 3552 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 3553 // This file is part of the GNU C Library. 3554 // 3555 // The GNU C Library is free software; you can redistribute it and/or 3556 // modify it under the terms of the GNU Lesser General Public 3557 // License as published by the Free Software Foundation; either 3558 // version 2.1 of the License, or (at your option) any later version. 3559 // 3560 // The GNU C Library is distributed in the hope that it will be useful, 3561 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3562 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3563 // Lesser General Public License for more details. 3564 // 3565 // You should have received a copy of the GNU Lesser General Public 3566 // License along with the GNU C Library; if not, see 3567 // <https://www.gnu.org/licenses/>. 3568 3569 // Determine the wordsize from the preprocessor defines. 3570 3571 // Both x86-64 and x32 use the 64-bit system call interface. 3572 // Bit size of the time_t type at glibc build time, x86-64 and x32 case. 3573 // Copyright (C) 2018-2022 Free Software Foundation, Inc. 3574 // This file is part of the GNU C Library. 3575 // 3576 // The GNU C Library is free software; you can redistribute it and/or 3577 // modify it under the terms of the GNU Lesser General Public 3578 // License as published by the Free Software Foundation; either 3579 // version 2.1 of the License, or (at your option) any later version. 3580 // 3581 // The GNU C Library is distributed in the hope that it will be useful, 3582 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3583 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3584 // Lesser General Public License for more details. 3585 // 3586 // You should have received a copy of the GNU Lesser General Public 3587 // License along with the GNU C Library; if not, see 3588 // <https://www.gnu.org/licenses/>. 3589 3590 // Determine the wordsize from the preprocessor defines. 3591 3592 // Both x86-64 and x32 use the 64-bit system call interface. 3593 3594 // For others, time size is word size. 3595 3596 // Convenience types. 3597 type T__u_char = uint8 /* types.h:31:23 */ 3598 type T__u_short = uint16 /* types.h:32:28 */ 3599 type T__u_int = uint32 /* types.h:33:22 */ 3600 type T__u_long = uint64 /* types.h:34:27 */ 3601 3602 // Fixed-size types, underlying types depend on word size and compiler. 3603 type T__int8_t = int8 /* types.h:37:21 */ 3604 type T__uint8_t = uint8 /* types.h:38:23 */ 3605 type T__int16_t = int16 /* types.h:39:26 */ 3606 type T__uint16_t = uint16 /* types.h:40:28 */ 3607 type T__int32_t = int32 /* types.h:41:20 */ 3608 type T__uint32_t = uint32 /* types.h:42:22 */ 3609 type T__int64_t = int64 /* types.h:44:25 */ 3610 type T__uint64_t = uint64 /* types.h:45:27 */ 3611 3612 // Smallest types with at least a given width. 3613 type T__int_least8_t = T__int8_t /* types.h:52:18 */ 3614 type T__uint_least8_t = T__uint8_t /* types.h:53:19 */ 3615 type T__int_least16_t = T__int16_t /* types.h:54:19 */ 3616 type T__uint_least16_t = T__uint16_t /* types.h:55:20 */ 3617 type T__int_least32_t = T__int32_t /* types.h:56:19 */ 3618 type T__uint_least32_t = T__uint32_t /* types.h:57:20 */ 3619 type T__int_least64_t = T__int64_t /* types.h:58:19 */ 3620 type T__uint_least64_t = T__uint64_t /* types.h:59:20 */ 3621 3622 // quad_t is also 64 bits. 3623 type T__quad_t = int64 /* types.h:63:18 */ 3624 type T__u_quad_t = uint64 /* types.h:64:27 */ 3625 3626 // Largest integral types. 3627 type T__intmax_t = int64 /* types.h:72:18 */ 3628 type T__uintmax_t = uint64 /* types.h:73:27 */ 3629 3630 // The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE 3631 // macros for each of the OS types we define below. The definitions 3632 // of those macros must use the following macros for underlying types. 3633 // We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned 3634 // variants of each of the following integer types on this machine. 3635 // 3636 // 16 -- "natural" 16-bit type (always short) 3637 // 32 -- "natural" 32-bit type (always int) 3638 // 64 -- "natural" 64-bit type (long or long long) 3639 // LONG32 -- 32-bit type, traditionally long 3640 // QUAD -- 64-bit type, traditionally long long 3641 // WORD -- natural type of __WORDSIZE bits (int or long) 3642 // LONGWORD -- type of __WORDSIZE bits, traditionally long 3643 // 3644 // We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the 3645 // conventional uses of `long' or `long long' type modifiers match the 3646 // types we define, even when a less-adorned type would be the same size. 3647 // This matters for (somewhat) portably writing printf/scanf formats for 3648 // these types, where using the appropriate l or ll format modifiers can 3649 // make the typedefs and the formats match up across all GNU platforms. If 3650 // we used `long' when it's 64 bits where `long long' is expected, then the 3651 // compiler would warn about the formats not matching the argument types, 3652 // and the programmer changing them to shut up the compiler would break the 3653 // program's portability. 3654 // 3655 // Here we assume what is presently the case in all the GCC configurations 3656 // we support: long long is always 64 bits, long is always word/address size, 3657 // and int is always 32 bits. 3658 3659 // No need to mark the typedef with __extension__. 3660 // bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version. 3661 // Copyright (C) 2012-2022 Free Software Foundation, Inc. 3662 // This file is part of the GNU C Library. 3663 // 3664 // The GNU C Library is free software; you can redistribute it and/or 3665 // modify it under the terms of the GNU Lesser General Public 3666 // License as published by the Free Software Foundation; either 3667 // version 2.1 of the License, or (at your option) any later version. 3668 // 3669 // The GNU C Library is distributed in the hope that it will be useful, 3670 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3671 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3672 // Lesser General Public License for more details. 3673 // 3674 // You should have received a copy of the GNU Lesser General Public 3675 // License along with the GNU C Library; if not, see 3676 // <https://www.gnu.org/licenses/>. 3677 3678 // See <bits/types.h> for the meaning of these macros. This file exists so 3679 // that <bits/types.h> need not vary across different GNU platforms. 3680 3681 // X32 kernel interface is 64-bit. 3682 3683 // Tell the libc code that off_t and off64_t are actually the same type 3684 // for all ABI purposes, even if possibly expressed as different base types 3685 // for C type-checking purposes. 3686 3687 // Same for ino_t and ino64_t. 3688 3689 // And for __rlim_t and __rlim64_t. 3690 3691 // And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. 3692 3693 // And for getitimer, setitimer and rusage 3694 3695 // Number of descriptors that can fit in an `fd_set'. 3696 3697 // bits/time64.h -- underlying types for __time64_t. Generic version. 3698 // Copyright (C) 2018-2022 Free Software Foundation, Inc. 3699 // This file is part of the GNU C Library. 3700 // 3701 // The GNU C Library is free software; you can redistribute it and/or 3702 // modify it under the terms of the GNU Lesser General Public 3703 // License as published by the Free Software Foundation; either 3704 // version 2.1 of the License, or (at your option) any later version. 3705 // 3706 // The GNU C Library is distributed in the hope that it will be useful, 3707 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3708 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3709 // Lesser General Public License for more details. 3710 // 3711 // You should have received a copy of the GNU Lesser General Public 3712 // License along with the GNU C Library; if not, see 3713 // <https://www.gnu.org/licenses/>. 3714 3715 // Define __TIME64_T_TYPE so that it is always a 64-bit type. 3716 3717 // If we already have 64-bit time type then use it. 3718 3719 type T__dev_t = uint64 /* types.h:145:25 */ // Type of device numbers. 3720 type T__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications. 3721 type T__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications. 3722 type T__ino_t = uint64 /* types.h:148:25 */ // Type of file serial numbers. 3723 type T__ino64_t = uint64 /* types.h:149:27 */ // Type of file serial numbers (LFS). 3724 type T__mode_t = uint32 /* types.h:150:26 */ // Type of file attribute bitmasks. 3725 type T__nlink_t = uint64 /* types.h:151:27 */ // Type of file link counts. 3726 type T__off_t = int64 /* types.h:152:25 */ // Type of file sizes and offsets. 3727 type T__off64_t = int64 /* types.h:153:27 */ // Type of file sizes and offsets (LFS). 3728 type T__pid_t = int32 /* types.h:154:25 */ // Type of process identifications. 3729 type T__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs. 3730 type T__clock_t = int64 /* types.h:156:27 */ // Type of CPU usage counts. 3731 type T__rlim_t = uint64 /* types.h:157:26 */ // Type for resource measurement. 3732 type T__rlim64_t = uint64 /* types.h:158:28 */ // Type for resource measurement (LFS). 3733 type T__id_t = uint32 /* types.h:159:24 */ // General type for IDs. 3734 type T__time_t = int64 /* types.h:160:26 */ // Seconds since the Epoch. 3735 type T__useconds_t = uint32 /* types.h:161:30 */ // Count of microseconds. 3736 type T__suseconds_t = int64 /* types.h:162:31 */ // Signed count of microseconds. 3737 type T__suseconds64_t = int64 /* types.h:163:33 */ 3738 3739 type T__daddr_t = int32 /* types.h:165:27 */ // The type of a disk address. 3740 type T__key_t = int32 /* types.h:166:25 */ // Type of an IPC key. 3741 3742 // Clock ID used in clock and timer functions. 3743 type T__clockid_t = int32 /* types.h:169:29 */ 3744 3745 // Timer ID returned by `timer_create'. 3746 type T__timer_t = uintptr /* types.h:172:12 */ 3747 3748 // Type to represent block size. 3749 type T__blksize_t = int64 /* types.h:175:29 */ 3750 3751 // Types from the Large File Support interface. 3752 3753 // Type to count number of disk blocks. 3754 type T__blkcnt_t = int64 /* types.h:180:28 */ 3755 type T__blkcnt64_t = int64 /* types.h:181:30 */ 3756 3757 // Type to count file system blocks. 3758 type T__fsblkcnt_t = uint64 /* types.h:184:30 */ 3759 type T__fsblkcnt64_t = uint64 /* types.h:185:32 */ 3760 3761 // Type to count file system nodes. 3762 type T__fsfilcnt_t = uint64 /* types.h:188:30 */ 3763 type T__fsfilcnt64_t = uint64 /* types.h:189:32 */ 3764 3765 // Type of miscellaneous file system fields. 3766 type T__fsword_t = int64 /* types.h:192:28 */ 3767 3768 type T__ssize_t = int64 /* types.h:194:27 */ // Type of a byte count, or error. 3769 3770 // Signed long type used in system calls. 3771 type T__syscall_slong_t = int64 /* types.h:197:33 */ 3772 // Unsigned long type used in system calls. 3773 type T__syscall_ulong_t = uint64 /* types.h:199:33 */ 3774 3775 // These few don't really vary by system, they always correspond 3776 // to one of the other defined types. 3777 type T__loff_t = T__off64_t /* types.h:203:19 */ // Type of file sizes and offsets (LFS). 3778 type T__caddr_t = uintptr /* types.h:204:14 */ 3779 3780 // Duplicates info from stdint.h but this is used in unistd.h. 3781 type T__intptr_t = int64 /* types.h:207:25 */ 3782 3783 // Duplicate info from sys/socket.h. 3784 type T__socklen_t = uint32 /* types.h:210:23 */ 3785 3786 // C99: An integer type that can be accessed as an atomic entity, 3787 // even in the presence of asynchronous interrupts. 3788 // It is not currently necessary for this to be machine-specific. 3789 type T__sig_atomic_t = int32 /* types.h:215:13 */ 3790 3791 // This code is needed for the optimized mapping functions. 3792 3793 // POSIX.1-2008 extended locale interface (see locale.h). 3794 // Definition of locale_t. 3795 // Copyright (C) 2017-2022 Free Software Foundation, Inc. 3796 // This file is part of the GNU C Library. 3797 // 3798 // The GNU C Library is free software; you can redistribute it and/or 3799 // modify it under the terms of the GNU Lesser General Public 3800 // License as published by the Free Software Foundation; either 3801 // version 2.1 of the License, or (at your option) any later version. 3802 // 3803 // The GNU C Library is distributed in the hope that it will be useful, 3804 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3805 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3806 // Lesser General Public License for more details. 3807 // 3808 // You should have received a copy of the GNU Lesser General Public 3809 // License along with the GNU C Library; if not, see 3810 // <https://www.gnu.org/licenses/>. 3811 3812 // Definition of struct __locale_struct and __locale_t. 3813 // Copyright (C) 1997-2022 Free Software Foundation, Inc. 3814 // This file is part of the GNU C Library. 3815 // 3816 // The GNU C Library is free software; you can redistribute it and/or 3817 // modify it under the terms of the GNU Lesser General Public 3818 // License as published by the Free Software Foundation; either 3819 // version 2.1 of the License, or (at your option) any later version. 3820 // 3821 // The GNU C Library is distributed in the hope that it will be useful, 3822 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3823 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3824 // Lesser General Public License for more details. 3825 // 3826 // You should have received a copy of the GNU Lesser General Public 3827 // License along with the GNU C Library; if not, see 3828 // <https://www.gnu.org/licenses/>. 3829 3830 // POSIX.1-2008: the locale_t type, representing a locale context 3831 // (implementation-namespace version). This type should be treated 3832 // as opaque by applications; some details are exposed for the sake of 3833 // efficiency in e.g. ctype functions. 3834 3835 type S__locale_struct = struct { 3836 F__locales [13]uintptr 3837 F__ctype_b uintptr 3838 F__ctype_tolower uintptr 3839 F__ctype_toupper uintptr 3840 F__names [13]uintptr 3841 } /* __locale_t.h:27:1 */ 3842 3843 type T__locale_t = uintptr /* __locale_t.h:41:32 */ 3844 3845 type Tlocale_t = T__locale_t /* locale_t.h:24:20 */ 3846 3847 // A null pointer constant. 3848 3849 // Offset of member MEMBER in a struct of type TYPE. 3850 3851 // Type whose alignment is supported in every context and is at least 3852 // as great as that of any standard type not using alignment 3853 // specifiers. 3854 type Tmax_align_t = struct { 3855 F__max_align_ll int64 3856 F__max_align_ld float64 3857 } /* stddef.h:426:3 */ 3858 3859 // Define ISO C stdio on top of C++ iostreams. 3860 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 3861 // This file is part of the GNU C Library. 3862 // 3863 // The GNU C Library is free software; you can redistribute it and/or 3864 // modify it under the terms of the GNU Lesser General Public 3865 // License as published by the Free Software Foundation; either 3866 // version 2.1 of the License, or (at your option) any later version. 3867 // 3868 // The GNU C Library is distributed in the hope that it will be useful, 3869 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3870 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3871 // Lesser General Public License for more details. 3872 // 3873 // You should have received a copy of the GNU Lesser General Public 3874 // License along with the GNU C Library; if not, see 3875 // <https://www.gnu.org/licenses/>. 3876 3877 // ISO C99 Standard: 7.19 Input/output <stdio.h> 3878 3879 // Handle feature test macros at the start of a header. 3880 // Copyright (C) 2016-2022 Free Software Foundation, Inc. 3881 // This file is part of the GNU C Library. 3882 // 3883 // The GNU C Library is free software; you can redistribute it and/or 3884 // modify it under the terms of the GNU Lesser General Public 3885 // License as published by the Free Software Foundation; either 3886 // version 2.1 of the License, or (at your option) any later version. 3887 // 3888 // The GNU C Library is distributed in the hope that it will be useful, 3889 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3890 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3891 // Lesser General Public License for more details. 3892 // 3893 // You should have received a copy of the GNU Lesser General Public 3894 // License along with the GNU C Library; if not, see 3895 // <https://www.gnu.org/licenses/>. 3896 3897 // This header is internal to glibc and should not be included outside 3898 // of glibc headers. Headers including it must define 3899 // __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first. This header 3900 // cannot have multiple include guards because ISO C feature test 3901 // macros depend on the definition of the macro when an affected 3902 // header is included, not when the first system header is 3903 // included. 3904 3905 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 3906 // This file is part of the GNU C Library. 3907 // 3908 // The GNU C Library is free software; you can redistribute it and/or 3909 // modify it under the terms of the GNU Lesser General Public 3910 // License as published by the Free Software Foundation; either 3911 // version 2.1 of the License, or (at your option) any later version. 3912 // 3913 // The GNU C Library is distributed in the hope that it will be useful, 3914 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3915 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3916 // Lesser General Public License for more details. 3917 // 3918 // You should have received a copy of the GNU Lesser General Public 3919 // License along with the GNU C Library; if not, see 3920 // <https://www.gnu.org/licenses/>. 3921 3922 // ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__ 3923 // macro. 3924 3925 // ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__ 3926 // macro. Most but not all symbols enabled by that macro in TS 3927 // 18661-1 are enabled unconditionally in C2X. In C2X, the symbols in 3928 // Annex F still require a new feature test macro 3929 // __STDC_WANT_IEC_60559_EXT__ instead (C2X does not define 3930 // __STDC_WANT_IEC_60559_BFP_EXT__), while a few features from TS 3931 // 18661-1 are not included in C2X (and thus should depend on 3932 // __STDC_WANT_IEC_60559_BFP_EXT__ even when C2X features are 3933 // enabled). 3934 // 3935 // __GLIBC_USE (IEC_60559_BFP_EXT) controls those features from TS 3936 // 18661-1 not included in C2X. 3937 // 3938 // __GLIBC_USE (IEC_60559_BFP_EXT_C2X) controls those features from TS 3939 // 18661-1 that are also included in C2X (with no feature test macro 3940 // required in C2X). 3941 // 3942 // __GLIBC_USE (IEC_60559_EXT) controls those features from TS 18661-1 3943 // that are included in C2X but conditional on 3944 // __STDC_WANT_IEC_60559_EXT__. (There are currently no features 3945 // conditional on __STDC_WANT_IEC_60559_EXT__ that are not in TS 3946 // 18661-1.) 3947 3948 // ISO/IEC TS 18661-4:2015 defines the 3949 // __STDC_WANT_IEC_60559_FUNCS_EXT__ macro. Other than the reduction 3950 // functions, the symbols from this TS are enabled unconditionally in 3951 // C2X. 3952 3953 // ISO/IEC TS 18661-3:2015 defines the 3954 // __STDC_WANT_IEC_60559_TYPES_EXT__ macro. 3955 3956 // Copyright (C) 1989-2021 Free Software Foundation, Inc. 3957 // 3958 // This file is part of GCC. 3959 // 3960 // GCC is free software; you can redistribute it and/or modify 3961 // it under the terms of the GNU General Public License as published by 3962 // the Free Software Foundation; either version 3, or (at your option) 3963 // any later version. 3964 // 3965 // GCC is distributed in the hope that it will be useful, 3966 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3967 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 3968 // GNU General Public License for more details. 3969 // 3970 // Under Section 7 of GPL version 3, you are granted additional 3971 // permissions described in the GCC Runtime Library Exception, version 3972 // 3.1, as published by the Free Software Foundation. 3973 // 3974 // You should have received a copy of the GNU General Public License and 3975 // a copy of the GCC Runtime Library Exception along with this program; 3976 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 3977 // <http://www.gnu.org/licenses/>. 3978 3979 // ISO C Standard: 7.17 Common definitions <stddef.h> 3980 3981 // Any one of these symbols __need_* means that GNU libc 3982 // wants us just to define one data type. So don't define 3983 // the symbols that indicate this file's entire job has been done. 3984 3985 // This avoids lossage on SunOS but only if stdtypes.h comes first. 3986 // There's no way to win with the other order! Sun lossage. 3987 3988 // Sequent's header files use _PTRDIFF_T_ in some conflicting way. 3989 // Just ignore it. 3990 3991 // On VxWorks, <type/vxTypesBase.h> may have defined macros like 3992 // _TYPE_size_t which will typedef size_t. fixincludes patched the 3993 // vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is 3994 // not defined, and so that defining this macro defines _GCC_SIZE_T. 3995 // If we find that the macros are still defined at this point, we must 3996 // invoke them so that the type is defined as expected. 3997 3998 // In case nobody has defined these types, but we aren't running under 3999 // GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and 4000 // __WCHAR_TYPE__ have reasonable values. This can happen if the 4001 // parts of GCC is compiled by an older compiler, that actually 4002 // include gstddef.h, such as collect2. 4003 4004 // Signed type of difference of two pointers. 4005 4006 // Define this type if we are doing the whole job, 4007 // or if we want this type in particular. 4008 4009 // If this symbol has done its job, get rid of it. 4010 4011 // Unsigned type of `sizeof' something. 4012 4013 // Define this type if we are doing the whole job, 4014 // or if we want this type in particular. 4015 4016 // Wide character type. 4017 // Locale-writers should change this as necessary to 4018 // be big enough to hold unique values not between 0 and 127, 4019 // and not (wchar_t) -1, for each defined multibyte character. 4020 4021 // Define this type if we are doing the whole job, 4022 // or if we want this type in particular. 4023 4024 // A null pointer constant. 4025 4026 // Offset of member MEMBER in a struct of type TYPE. 4027 4028 // Copyright (C) 1989-2021 Free Software Foundation, Inc. 4029 // 4030 // This file is part of GCC. 4031 // 4032 // GCC is free software; you can redistribute it and/or modify 4033 // it under the terms of the GNU General Public License as published by 4034 // the Free Software Foundation; either version 3, or (at your option) 4035 // any later version. 4036 // 4037 // GCC is distributed in the hope that it will be useful, 4038 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4039 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 4040 // GNU General Public License for more details. 4041 // 4042 // Under Section 7 of GPL version 3, you are granted additional 4043 // permissions described in the GCC Runtime Library Exception, version 4044 // 3.1, as published by the Free Software Foundation. 4045 // 4046 // You should have received a copy of the GNU General Public License and 4047 // a copy of the GCC Runtime Library Exception along with this program; 4048 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 4049 // <http://www.gnu.org/licenses/>. 4050 4051 // ISO C Standard: 7.15 Variable arguments <stdarg.h> 4052 4053 // Define __gnuc_va_list. 4054 4055 type T__gnuc_va_list = T__builtin_va_list /* stdarg.h:40:27 */ 4056 4057 // Define the standard macros for the user, 4058 // if this invocation was from the user program. 4059 4060 // bits/types.h -- definitions of __*_t types underlying *_t types. 4061 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4062 // This file is part of the GNU C Library. 4063 // 4064 // The GNU C Library is free software; you can redistribute it and/or 4065 // modify it under the terms of the GNU Lesser General Public 4066 // License as published by the Free Software Foundation; either 4067 // version 2.1 of the License, or (at your option) any later version. 4068 // 4069 // The GNU C Library is distributed in the hope that it will be useful, 4070 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4071 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4072 // Lesser General Public License for more details. 4073 // 4074 // You should have received a copy of the GNU Lesser General Public 4075 // License along with the GNU C Library; if not, see 4076 // <https://www.gnu.org/licenses/>. 4077 4078 // Never include this file directly; use <sys/types.h> instead. 4079 4080 // bits/types.h -- definitions of __*_t types underlying *_t types. 4081 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4082 // This file is part of the GNU C Library. 4083 // 4084 // The GNU C Library is free software; you can redistribute it and/or 4085 // modify it under the terms of the GNU Lesser General Public 4086 // License as published by the Free Software Foundation; either 4087 // version 2.1 of the License, or (at your option) any later version. 4088 // 4089 // The GNU C Library is distributed in the hope that it will be useful, 4090 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4091 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4092 // Lesser General Public License for more details. 4093 // 4094 // You should have received a copy of the GNU Lesser General Public 4095 // License along with the GNU C Library; if not, see 4096 // <https://www.gnu.org/licenses/>. 4097 4098 // Never include this file directly; use <sys/types.h> instead. 4099 4100 // Integral type unchanged by default argument promotions that can 4101 // hold any value corresponding to members of the extended character 4102 // set, as well as at least one value that does not correspond to any 4103 // member of the extended character set. 4104 4105 // Conversion state information. 4106 type T__mbstate_t = struct { 4107 F__count int32 4108 F__value struct{ F__wch uint32 } 4109 } /* __mbstate_t.h:21:3 */ 4110 4111 // The tag name of this struct is _G_fpos_t to preserve historic 4112 // C++ mangled names for functions taking fpos_t arguments. 4113 // That name should not be used in new code. 4114 type S_G_fpos_t = struct { 4115 F__pos T__off_t 4116 F__state T__mbstate_t 4117 } /* __fpos_t.h:10:9 */ 4118 4119 // The tag name of this struct is _G_fpos_t to preserve historic 4120 // C++ mangled names for functions taking fpos_t arguments. 4121 // That name should not be used in new code. 4122 type T__fpos_t = S_G_fpos_t /* __fpos_t.h:14:3 */ 4123 4124 // bits/types.h -- definitions of __*_t types underlying *_t types. 4125 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4126 // This file is part of the GNU C Library. 4127 // 4128 // The GNU C Library is free software; you can redistribute it and/or 4129 // modify it under the terms of the GNU Lesser General Public 4130 // License as published by the Free Software Foundation; either 4131 // version 2.1 of the License, or (at your option) any later version. 4132 // 4133 // The GNU C Library is distributed in the hope that it will be useful, 4134 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4135 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4136 // Lesser General Public License for more details. 4137 // 4138 // You should have received a copy of the GNU Lesser General Public 4139 // License along with the GNU C Library; if not, see 4140 // <https://www.gnu.org/licenses/>. 4141 4142 // Never include this file directly; use <sys/types.h> instead. 4143 4144 // The tag name of this struct is _G_fpos64_t to preserve historic 4145 // C++ mangled names for functions taking fpos_t and/or fpos64_t 4146 // arguments. That name should not be used in new code. 4147 type S_G_fpos64_t = struct { 4148 F__pos T__off64_t 4149 F__state T__mbstate_t 4150 } /* __fpos64_t.h:10:9 */ 4151 4152 // bits/types.h -- definitions of __*_t types underlying *_t types. 4153 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4154 // This file is part of the GNU C Library. 4155 // 4156 // The GNU C Library is free software; you can redistribute it and/or 4157 // modify it under the terms of the GNU Lesser General Public 4158 // License as published by the Free Software Foundation; either 4159 // version 2.1 of the License, or (at your option) any later version. 4160 // 4161 // The GNU C Library is distributed in the hope that it will be useful, 4162 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4163 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4164 // Lesser General Public License for more details. 4165 // 4166 // You should have received a copy of the GNU Lesser General Public 4167 // License along with the GNU C Library; if not, see 4168 // <https://www.gnu.org/licenses/>. 4169 4170 // Never include this file directly; use <sys/types.h> instead. 4171 4172 // The tag name of this struct is _G_fpos64_t to preserve historic 4173 // C++ mangled names for functions taking fpos_t and/or fpos64_t 4174 // arguments. That name should not be used in new code. 4175 type T__fpos64_t = S_G_fpos64_t /* __fpos64_t.h:14:3 */ 4176 4177 type S_IO_FILE = struct { 4178 F_flags int32 4179 F__ccgo_pad1 [4]byte 4180 F_IO_read_ptr uintptr 4181 F_IO_read_end uintptr 4182 F_IO_read_base uintptr 4183 F_IO_write_base uintptr 4184 F_IO_write_ptr uintptr 4185 F_IO_write_end uintptr 4186 F_IO_buf_base uintptr 4187 F_IO_buf_end uintptr 4188 F_IO_save_base uintptr 4189 F_IO_backup_base uintptr 4190 F_IO_save_end uintptr 4191 F_markers uintptr 4192 F_chain uintptr 4193 F_fileno int32 4194 F_flags2 int32 4195 F_old_offset T__off_t 4196 F_cur_column uint16 4197 F_vtable_offset int8 4198 F_shortbuf [1]int8 4199 F__ccgo_pad2 [4]byte 4200 F_lock uintptr 4201 F_offset T__off64_t 4202 F_codecvt uintptr 4203 F_wide_data uintptr 4204 F_freeres_list uintptr 4205 F_freeres_buf uintptr 4206 F__pad5 Tsize_t 4207 F_mode int32 4208 F_unused2 [20]int8 4209 } /* __FILE.h:4:1 */ 4210 4211 type T__FILE = S_IO_FILE /* __FILE.h:5:25 */ 4212 4213 // The opaque type of streams. This is the definition used elsewhere. 4214 type TFILE = S_IO_FILE /* FILE.h:7:25 */ 4215 4216 // The structure with the cookie function pointers. 4217 // The tag name of this struct is _IO_cookie_io_functions_t to 4218 // preserve historic C++ mangled names for functions taking 4219 // cookie_io_functions_t arguments. That name should not be used in 4220 // new code. 4221 type S_IO_cookie_io_functions_t = struct { 4222 Fread uintptr 4223 Fwrite uintptr 4224 Fseek uintptr 4225 Fclose uintptr 4226 } /* cookie_io_functions_t.h:55:9 */ 4227 4228 // The structure with the cookie function pointers. 4229 // The tag name of this struct is _IO_cookie_io_functions_t to 4230 // preserve historic C++ mangled names for functions taking 4231 // cookie_io_functions_t arguments. That name should not be used in 4232 // new code. 4233 type Tcookie_io_functions_t = S_IO_cookie_io_functions_t /* cookie_io_functions_t.h:61:3 */ 4234 4235 type Tva_list = T__gnuc_va_list /* stdio.h:52:24 */ 4236 4237 type Toff_t = T__off64_t /* stdio.h:65:19 */ 4238 type Toff64_t = T__off64_t /* stdio.h:70:19 */ 4239 4240 type Tssize_t = T__ssize_t /* stdio.h:77:19 */ 4241 4242 // The type of the second argument to `fgetpos' and `fsetpos'. 4243 type Tfpos_t = T__fpos64_t /* stdio.h:86:20 */ 4244 type Tfpos64_t = T__fpos64_t /* stdio.h:89:20 */ 4245 4246 // If we are compiling with optimizing read this file. It contains 4247 // several optimizing inline functions and macros. 4248 4249 // Macros to control TS 18661-3 glibc features on x86. 4250 // Copyright (C) 2017-2022 Free Software Foundation, Inc. 4251 // This file is part of the GNU C Library. 4252 // 4253 // The GNU C Library is free software; you can redistribute it and/or 4254 // modify it under the terms of the GNU Lesser General Public 4255 // License as published by the Free Software Foundation; either 4256 // version 2.1 of the License, or (at your option) any later version. 4257 // 4258 // The GNU C Library is distributed in the hope that it will be useful, 4259 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4260 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4261 // Lesser General Public License for more details. 4262 // 4263 // You should have received a copy of the GNU Lesser General Public 4264 // License along with the GNU C Library; if not, see 4265 // <https://www.gnu.org/licenses/>. 4266 4267 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 4268 // Copyright The GNU Toolchain Authors. 4269 // This file is part of the GNU C Library. 4270 // 4271 // The GNU C Library is free software; you can redistribute it and/or 4272 // modify it under the terms of the GNU Lesser General Public 4273 // License as published by the Free Software Foundation; either 4274 // version 2.1 of the License, or (at your option) any later version. 4275 // 4276 // The GNU C Library is distributed in the hope that it will be useful, 4277 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4278 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4279 // Lesser General Public License for more details. 4280 // 4281 // You should have received a copy of the GNU Lesser General Public 4282 // License along with the GNU C Library; if not, see 4283 // <https://www.gnu.org/licenses/>. 4284 4285 // ISO C99 Standard: 7.20 General utilities <stdlib.h> 4286 4287 // Handle feature test macros at the start of a header. 4288 // Copyright (C) 2016-2022 Free Software Foundation, Inc. 4289 // This file is part of the GNU C Library. 4290 // 4291 // The GNU C Library is free software; you can redistribute it and/or 4292 // modify it under the terms of the GNU Lesser General Public 4293 // License as published by the Free Software Foundation; either 4294 // version 2.1 of the License, or (at your option) any later version. 4295 // 4296 // The GNU C Library is distributed in the hope that it will be useful, 4297 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4298 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4299 // Lesser General Public License for more details. 4300 // 4301 // You should have received a copy of the GNU Lesser General Public 4302 // License along with the GNU C Library; if not, see 4303 // <https://www.gnu.org/licenses/>. 4304 4305 // This header is internal to glibc and should not be included outside 4306 // of glibc headers. Headers including it must define 4307 // __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first. This header 4308 // cannot have multiple include guards because ISO C feature test 4309 // macros depend on the definition of the macro when an affected 4310 // header is included, not when the first system header is 4311 // included. 4312 4313 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 4314 // This file is part of the GNU C Library. 4315 // 4316 // The GNU C Library is free software; you can redistribute it and/or 4317 // modify it under the terms of the GNU Lesser General Public 4318 // License as published by the Free Software Foundation; either 4319 // version 2.1 of the License, or (at your option) any later version. 4320 // 4321 // The GNU C Library is distributed in the hope that it will be useful, 4322 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4323 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4324 // Lesser General Public License for more details. 4325 // 4326 // You should have received a copy of the GNU Lesser General Public 4327 // License along with the GNU C Library; if not, see 4328 // <https://www.gnu.org/licenses/>. 4329 4330 // ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__ 4331 // macro. 4332 4333 // ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__ 4334 // macro. Most but not all symbols enabled by that macro in TS 4335 // 18661-1 are enabled unconditionally in C2X. In C2X, the symbols in 4336 // Annex F still require a new feature test macro 4337 // __STDC_WANT_IEC_60559_EXT__ instead (C2X does not define 4338 // __STDC_WANT_IEC_60559_BFP_EXT__), while a few features from TS 4339 // 18661-1 are not included in C2X (and thus should depend on 4340 // __STDC_WANT_IEC_60559_BFP_EXT__ even when C2X features are 4341 // enabled). 4342 // 4343 // __GLIBC_USE (IEC_60559_BFP_EXT) controls those features from TS 4344 // 18661-1 not included in C2X. 4345 // 4346 // __GLIBC_USE (IEC_60559_BFP_EXT_C2X) controls those features from TS 4347 // 18661-1 that are also included in C2X (with no feature test macro 4348 // required in C2X). 4349 // 4350 // __GLIBC_USE (IEC_60559_EXT) controls those features from TS 18661-1 4351 // that are included in C2X but conditional on 4352 // __STDC_WANT_IEC_60559_EXT__. (There are currently no features 4353 // conditional on __STDC_WANT_IEC_60559_EXT__ that are not in TS 4354 // 18661-1.) 4355 4356 // ISO/IEC TS 18661-4:2015 defines the 4357 // __STDC_WANT_IEC_60559_FUNCS_EXT__ macro. Other than the reduction 4358 // functions, the symbols from this TS are enabled unconditionally in 4359 // C2X. 4360 4361 // ISO/IEC TS 18661-3:2015 defines the 4362 // __STDC_WANT_IEC_60559_TYPES_EXT__ macro. 4363 4364 // Get size_t, wchar_t and NULL from <stddef.h>. 4365 // Copyright (C) 1989-2021 Free Software Foundation, Inc. 4366 // 4367 // This file is part of GCC. 4368 // 4369 // GCC is free software; you can redistribute it and/or modify 4370 // it under the terms of the GNU General Public License as published by 4371 // the Free Software Foundation; either version 3, or (at your option) 4372 // any later version. 4373 // 4374 // GCC is distributed in the hope that it will be useful, 4375 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4376 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 4377 // GNU General Public License for more details. 4378 // 4379 // Under Section 7 of GPL version 3, you are granted additional 4380 // permissions described in the GCC Runtime Library Exception, version 4381 // 3.1, as published by the Free Software Foundation. 4382 // 4383 // You should have received a copy of the GNU General Public License and 4384 // a copy of the GCC Runtime Library Exception along with this program; 4385 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 4386 // <http://www.gnu.org/licenses/>. 4387 4388 // ISO C Standard: 7.17 Common definitions <stddef.h> 4389 4390 // Any one of these symbols __need_* means that GNU libc 4391 // wants us just to define one data type. So don't define 4392 // the symbols that indicate this file's entire job has been done. 4393 4394 // This avoids lossage on SunOS but only if stdtypes.h comes first. 4395 // There's no way to win with the other order! Sun lossage. 4396 4397 // Sequent's header files use _PTRDIFF_T_ in some conflicting way. 4398 // Just ignore it. 4399 4400 // On VxWorks, <type/vxTypesBase.h> may have defined macros like 4401 // _TYPE_size_t which will typedef size_t. fixincludes patched the 4402 // vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is 4403 // not defined, and so that defining this macro defines _GCC_SIZE_T. 4404 // If we find that the macros are still defined at this point, we must 4405 // invoke them so that the type is defined as expected. 4406 4407 // In case nobody has defined these types, but we aren't running under 4408 // GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and 4409 // __WCHAR_TYPE__ have reasonable values. This can happen if the 4410 // parts of GCC is compiled by an older compiler, that actually 4411 // include gstddef.h, such as collect2. 4412 4413 // Signed type of difference of two pointers. 4414 4415 // Define this type if we are doing the whole job, 4416 // or if we want this type in particular. 4417 4418 // If this symbol has done its job, get rid of it. 4419 4420 // Unsigned type of `sizeof' something. 4421 4422 // Define this type if we are doing the whole job, 4423 // or if we want this type in particular. 4424 4425 // Wide character type. 4426 // Locale-writers should change this as necessary to 4427 // be big enough to hold unique values not between 0 and 127, 4428 // and not (wchar_t) -1, for each defined multibyte character. 4429 4430 // Define this type if we are doing the whole job, 4431 // or if we want this type in particular. 4432 4433 // A null pointer constant. 4434 4435 // Offset of member MEMBER in a struct of type TYPE. 4436 4437 // XPG requires a few symbols from <sys/wait.h> being defined. 4438 // Definitions of flag bits for `waitpid' et al. 4439 // Copyright (C) 1992-2022 Free Software Foundation, Inc. 4440 // This file is part of the GNU C Library. 4441 // 4442 // The GNU C Library is free software; you can redistribute it and/or 4443 // modify it under the terms of the GNU Lesser General Public 4444 // License as published by the Free Software Foundation; either 4445 // version 2.1 of the License, or (at your option) any later version. 4446 // 4447 // The GNU C Library is distributed in the hope that it will be useful, 4448 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4449 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4450 // Lesser General Public License for more details. 4451 // 4452 // You should have received a copy of the GNU Lesser General Public 4453 // License along with the GNU C Library; if not, see 4454 // <https://www.gnu.org/licenses/>. 4455 4456 // Bits in the third argument to `waitpid'. 4457 4458 // Bits in the fourth argument to `waitid'. 4459 4460 // Definitions of status bits for `wait' et al. 4461 // Copyright (C) 1992-2022 Free Software Foundation, Inc. 4462 // This file is part of the GNU C Library. 4463 // 4464 // The GNU C Library is free software; you can redistribute it and/or 4465 // modify it under the terms of the GNU Lesser General Public 4466 // License as published by the Free Software Foundation; either 4467 // version 2.1 of the License, or (at your option) any later version. 4468 // 4469 // The GNU C Library is distributed in the hope that it will be useful, 4470 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4471 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4472 // Lesser General Public License for more details. 4473 // 4474 // You should have received a copy of the GNU Lesser General Public 4475 // License along with the GNU C Library; if not, see 4476 // <https://www.gnu.org/licenses/>. 4477 4478 // Everything extant so far uses these same bits. 4479 4480 // If WIFEXITED(STATUS), the low-order 8 bits of the status. 4481 4482 // If WIFSIGNALED(STATUS), the terminating signal. 4483 4484 // If WIFSTOPPED(STATUS), the signal that stopped the child. 4485 4486 // Nonzero if STATUS indicates normal termination. 4487 4488 // Nonzero if STATUS indicates termination by a signal. 4489 4490 // Nonzero if STATUS indicates the child is stopped. 4491 4492 // Nonzero if STATUS indicates the child continued after a stop. We only 4493 // define this if <bits/waitflags.h> provides the WCONTINUED flag bit. 4494 4495 // Nonzero if STATUS indicates the child dumped core. 4496 4497 // Macros for constructing status values. 4498 4499 // Define the macros <sys/wait.h> also would define this way. 4500 4501 // _FloatN API tests for enablement. 4502 // Macros to control TS 18661-3 glibc features on x86. 4503 // Copyright (C) 2017-2022 Free Software Foundation, Inc. 4504 // This file is part of the GNU C Library. 4505 // 4506 // The GNU C Library is free software; you can redistribute it and/or 4507 // modify it under the terms of the GNU Lesser General Public 4508 // License as published by the Free Software Foundation; either 4509 // version 2.1 of the License, or (at your option) any later version. 4510 // 4511 // The GNU C Library is distributed in the hope that it will be useful, 4512 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4513 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4514 // Lesser General Public License for more details. 4515 // 4516 // You should have received a copy of the GNU Lesser General Public 4517 // License along with the GNU C Library; if not, see 4518 // <https://www.gnu.org/licenses/>. 4519 4520 // Returned by `div'. 4521 type Tdiv_t = struct { 4522 Fquot int32 4523 Frem int32 4524 } /* stdlib.h:63:5 */ 4525 4526 // Returned by `ldiv'. 4527 type Tldiv_t = struct { 4528 Fquot int64 4529 Frem int64 4530 } /* stdlib.h:71:5 */ 4531 4532 // Returned by `lldiv'. 4533 type Tlldiv_t = struct { 4534 Fquot int64 4535 Frem int64 4536 } /* stdlib.h:81:5 */ 4537 4538 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 4539 // This file is part of the GNU C Library. 4540 // 4541 // The GNU C Library is free software; you can redistribute it and/or 4542 // modify it under the terms of the GNU Lesser General Public 4543 // License as published by the Free Software Foundation; either 4544 // version 2.1 of the License, or (at your option) any later version. 4545 // 4546 // The GNU C Library is distributed in the hope that it will be useful, 4547 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4548 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4549 // Lesser General Public License for more details. 4550 // 4551 // You should have received a copy of the GNU Lesser General Public 4552 // License along with the GNU C Library; if not, see 4553 // <https://www.gnu.org/licenses/>. 4554 4555 // POSIX Standard: 2.6 Primitive System Data Types <sys/types.h> 4556 4557 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 4558 // This file is part of the GNU C Library. 4559 // 4560 // The GNU C Library is free software; you can redistribute it and/or 4561 // modify it under the terms of the GNU Lesser General Public 4562 // License as published by the Free Software Foundation; either 4563 // version 2.1 of the License, or (at your option) any later version. 4564 // 4565 // The GNU C Library is distributed in the hope that it will be useful, 4566 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4567 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4568 // Lesser General Public License for more details. 4569 // 4570 // You should have received a copy of the GNU Lesser General Public 4571 // License along with the GNU C Library; if not, see 4572 // <https://www.gnu.org/licenses/>. 4573 4574 // bits/types.h -- definitions of __*_t types underlying *_t types. 4575 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4576 // This file is part of the GNU C Library. 4577 // 4578 // The GNU C Library is free software; you can redistribute it and/or 4579 // modify it under the terms of the GNU Lesser General Public 4580 // License as published by the Free Software Foundation; either 4581 // version 2.1 of the License, or (at your option) any later version. 4582 // 4583 // The GNU C Library is distributed in the hope that it will be useful, 4584 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4585 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4586 // Lesser General Public License for more details. 4587 // 4588 // You should have received a copy of the GNU Lesser General Public 4589 // License along with the GNU C Library; if not, see 4590 // <https://www.gnu.org/licenses/>. 4591 4592 // Never include this file directly; use <sys/types.h> instead. 4593 4594 type Tu_char = T__u_char /* types.h:33:18 */ 4595 type Tu_short = T__u_short /* types.h:34:19 */ 4596 type Tu_int = T__u_int /* types.h:35:17 */ 4597 type Tu_long = T__u_long /* types.h:36:18 */ 4598 type Tquad_t = T__quad_t /* types.h:37:18 */ 4599 type Tu_quad_t = T__u_quad_t /* types.h:38:20 */ 4600 type Tfsid_t = T__fsid_t /* types.h:39:18 */ 4601 type Tloff_t = T__loff_t /* types.h:42:18 */ 4602 4603 type Tino_t = T__ino64_t /* types.h:49:19 */ 4604 type Tino64_t = T__ino64_t /* types.h:54:19 */ 4605 4606 type Tdev_t = T__dev_t /* types.h:59:17 */ 4607 4608 type Tgid_t = T__gid_t /* types.h:64:17 */ 4609 4610 type Tmode_t = T__mode_t /* types.h:69:18 */ 4611 4612 type Tnlink_t = T__nlink_t /* types.h:74:19 */ 4613 4614 type Tuid_t = T__uid_t /* types.h:79:17 */ 4615 4616 type Tpid_t = T__pid_t /* types.h:97:17 */ 4617 4618 type Tid_t = T__id_t /* types.h:103:16 */ 4619 4620 type Tdaddr_t = T__daddr_t /* types.h:114:19 */ 4621 type Tcaddr_t = T__caddr_t /* types.h:115:19 */ 4622 4623 type Tkey_t = T__key_t /* types.h:121:17 */ 4624 4625 // bits/types.h -- definitions of __*_t types underlying *_t types. 4626 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4627 // This file is part of the GNU C Library. 4628 // 4629 // The GNU C Library is free software; you can redistribute it and/or 4630 // modify it under the terms of the GNU Lesser General Public 4631 // License as published by the Free Software Foundation; either 4632 // version 2.1 of the License, or (at your option) any later version. 4633 // 4634 // The GNU C Library is distributed in the hope that it will be useful, 4635 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4636 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4637 // Lesser General Public License for more details. 4638 // 4639 // You should have received a copy of the GNU Lesser General Public 4640 // License along with the GNU C Library; if not, see 4641 // <https://www.gnu.org/licenses/>. 4642 4643 // Never include this file directly; use <sys/types.h> instead. 4644 4645 // Returned by `clock'. 4646 type Tclock_t = T__clock_t /* clock_t.h:7:19 */ 4647 4648 // bits/types.h -- definitions of __*_t types underlying *_t types. 4649 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4650 // This file is part of the GNU C Library. 4651 // 4652 // The GNU C Library is free software; you can redistribute it and/or 4653 // modify it under the terms of the GNU Lesser General Public 4654 // License as published by the Free Software Foundation; either 4655 // version 2.1 of the License, or (at your option) any later version. 4656 // 4657 // The GNU C Library is distributed in the hope that it will be useful, 4658 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4659 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4660 // Lesser General Public License for more details. 4661 // 4662 // You should have received a copy of the GNU Lesser General Public 4663 // License along with the GNU C Library; if not, see 4664 // <https://www.gnu.org/licenses/>. 4665 4666 // Never include this file directly; use <sys/types.h> instead. 4667 4668 // Clock ID used in clock and timer functions. 4669 type Tclockid_t = T__clockid_t /* clockid_t.h:7:21 */ 4670 4671 // bits/types.h -- definitions of __*_t types underlying *_t types. 4672 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4673 // This file is part of the GNU C Library. 4674 // 4675 // The GNU C Library is free software; you can redistribute it and/or 4676 // modify it under the terms of the GNU Lesser General Public 4677 // License as published by the Free Software Foundation; either 4678 // version 2.1 of the License, or (at your option) any later version. 4679 // 4680 // The GNU C Library is distributed in the hope that it will be useful, 4681 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4682 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4683 // Lesser General Public License for more details. 4684 // 4685 // You should have received a copy of the GNU Lesser General Public 4686 // License along with the GNU C Library; if not, see 4687 // <https://www.gnu.org/licenses/>. 4688 4689 // Never include this file directly; use <sys/types.h> instead. 4690 4691 // Returned by `time'. 4692 type Ttime_t = T__time_t /* time_t.h:10:18 */ 4693 4694 // bits/types.h -- definitions of __*_t types underlying *_t types. 4695 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4696 // This file is part of the GNU C Library. 4697 // 4698 // The GNU C Library is free software; you can redistribute it and/or 4699 // modify it under the terms of the GNU Lesser General Public 4700 // License as published by the Free Software Foundation; either 4701 // version 2.1 of the License, or (at your option) any later version. 4702 // 4703 // The GNU C Library is distributed in the hope that it will be useful, 4704 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4705 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4706 // Lesser General Public License for more details. 4707 // 4708 // You should have received a copy of the GNU Lesser General Public 4709 // License along with the GNU C Library; if not, see 4710 // <https://www.gnu.org/licenses/>. 4711 4712 // Never include this file directly; use <sys/types.h> instead. 4713 4714 // Timer ID returned by `timer_create'. 4715 type Ttimer_t = T__timer_t /* timer_t.h:7:19 */ 4716 4717 type Tuseconds_t = T__useconds_t /* types.h:134:22 */ 4718 type Tsuseconds_t = T__suseconds_t /* types.h:138:23 */ 4719 4720 // Copyright (C) 1989-2021 Free Software Foundation, Inc. 4721 // 4722 // This file is part of GCC. 4723 // 4724 // GCC is free software; you can redistribute it and/or modify 4725 // it under the terms of the GNU General Public License as published by 4726 // the Free Software Foundation; either version 3, or (at your option) 4727 // any later version. 4728 // 4729 // GCC is distributed in the hope that it will be useful, 4730 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4731 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 4732 // GNU General Public License for more details. 4733 // 4734 // Under Section 7 of GPL version 3, you are granted additional 4735 // permissions described in the GCC Runtime Library Exception, version 4736 // 3.1, as published by the Free Software Foundation. 4737 // 4738 // You should have received a copy of the GNU General Public License and 4739 // a copy of the GCC Runtime Library Exception along with this program; 4740 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 4741 // <http://www.gnu.org/licenses/>. 4742 4743 // ISO C Standard: 7.17 Common definitions <stddef.h> 4744 4745 // Any one of these symbols __need_* means that GNU libc 4746 // wants us just to define one data type. So don't define 4747 // the symbols that indicate this file's entire job has been done. 4748 4749 // This avoids lossage on SunOS but only if stdtypes.h comes first. 4750 // There's no way to win with the other order! Sun lossage. 4751 4752 // Sequent's header files use _PTRDIFF_T_ in some conflicting way. 4753 // Just ignore it. 4754 4755 // On VxWorks, <type/vxTypesBase.h> may have defined macros like 4756 // _TYPE_size_t which will typedef size_t. fixincludes patched the 4757 // vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is 4758 // not defined, and so that defining this macro defines _GCC_SIZE_T. 4759 // If we find that the macros are still defined at this point, we must 4760 // invoke them so that the type is defined as expected. 4761 4762 // In case nobody has defined these types, but we aren't running under 4763 // GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and 4764 // __WCHAR_TYPE__ have reasonable values. This can happen if the 4765 // parts of GCC is compiled by an older compiler, that actually 4766 // include gstddef.h, such as collect2. 4767 4768 // Signed type of difference of two pointers. 4769 4770 // Define this type if we are doing the whole job, 4771 // or if we want this type in particular. 4772 4773 // If this symbol has done its job, get rid of it. 4774 4775 // Unsigned type of `sizeof' something. 4776 4777 // Define this type if we are doing the whole job, 4778 // or if we want this type in particular. 4779 4780 // Wide character type. 4781 // Locale-writers should change this as necessary to 4782 // be big enough to hold unique values not between 0 and 127, 4783 // and not (wchar_t) -1, for each defined multibyte character. 4784 4785 // Define this type if we are doing the whole job, 4786 // or if we want this type in particular. 4787 4788 // A null pointer constant. 4789 4790 // Offset of member MEMBER in a struct of type TYPE. 4791 4792 // Old compatibility names for C types. 4793 type Tulong = uint64 /* types.h:148:27 */ 4794 type Tushort = uint16 /* types.h:149:28 */ 4795 type Tuint = uint32 /* types.h:150:22 */ 4796 4797 // These size-specific names are used by some of the inet code. 4798 4799 // Define intN_t types. 4800 // Copyright (C) 2017-2022 Free Software Foundation, Inc. 4801 // This file is part of the GNU C Library. 4802 // 4803 // The GNU C Library is free software; you can redistribute it and/or 4804 // modify it under the terms of the GNU Lesser General Public 4805 // License as published by the Free Software Foundation; either 4806 // version 2.1 of the License, or (at your option) any later version. 4807 // 4808 // The GNU C Library is distributed in the hope that it will be useful, 4809 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4810 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4811 // Lesser General Public License for more details. 4812 // 4813 // You should have received a copy of the GNU Lesser General Public 4814 // License along with the GNU C Library; if not, see 4815 // <https://www.gnu.org/licenses/>. 4816 4817 // bits/types.h -- definitions of __*_t types underlying *_t types. 4818 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4819 // This file is part of the GNU C Library. 4820 // 4821 // The GNU C Library is free software; you can redistribute it and/or 4822 // modify it under the terms of the GNU Lesser General Public 4823 // License as published by the Free Software Foundation; either 4824 // version 2.1 of the License, or (at your option) any later version. 4825 // 4826 // The GNU C Library is distributed in the hope that it will be useful, 4827 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4828 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4829 // Lesser General Public License for more details. 4830 // 4831 // You should have received a copy of the GNU Lesser General Public 4832 // License along with the GNU C Library; if not, see 4833 // <https://www.gnu.org/licenses/>. 4834 4835 // Never include this file directly; use <sys/types.h> instead. 4836 4837 type Tint8_t = T__int8_t /* stdint-intn.h:24:18 */ 4838 type Tint16_t = T__int16_t /* stdint-intn.h:25:19 */ 4839 type Tint32_t = T__int32_t /* stdint-intn.h:26:19 */ 4840 type Tint64_t = T__int64_t /* stdint-intn.h:27:19 */ 4841 4842 // These were defined by ISO C without the first `_'. 4843 type Tu_int8_t = T__uint8_t /* types.h:158:19 */ 4844 type Tu_int16_t = T__uint16_t /* types.h:159:20 */ 4845 type Tu_int32_t = T__uint32_t /* types.h:160:20 */ 4846 type Tu_int64_t = T__uint64_t /* types.h:161:20 */ 4847 4848 type Tregister_t = int32 /* types.h:164:13 */ 4849 4850 // It also defines `fd_set' and the FD_* macros for `select'. 4851 // `fd_set' type and related macros, and `select'/`pselect' declarations. 4852 // Copyright (C) 1996-2022 Free Software Foundation, Inc. 4853 // This file is part of the GNU C Library. 4854 // 4855 // The GNU C Library is free software; you can redistribute it and/or 4856 // modify it under the terms of the GNU Lesser General Public 4857 // License as published by the Free Software Foundation; either 4858 // version 2.1 of the License, or (at your option) any later version. 4859 // 4860 // The GNU C Library is distributed in the hope that it will be useful, 4861 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4862 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4863 // Lesser General Public License for more details. 4864 // 4865 // You should have received a copy of the GNU Lesser General Public 4866 // License along with the GNU C Library; if not, see 4867 // <https://www.gnu.org/licenses/>. 4868 4869 // POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h> 4870 4871 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 4872 // This file is part of the GNU C Library. 4873 // 4874 // The GNU C Library is free software; you can redistribute it and/or 4875 // modify it under the terms of the GNU Lesser General Public 4876 // License as published by the Free Software Foundation; either 4877 // version 2.1 of the License, or (at your option) any later version. 4878 // 4879 // The GNU C Library is distributed in the hope that it will be useful, 4880 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4881 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4882 // Lesser General Public License for more details. 4883 // 4884 // You should have received a copy of the GNU Lesser General Public 4885 // License along with the GNU C Library; if not, see 4886 // <https://www.gnu.org/licenses/>. 4887 4888 // Get definition of needed basic types. 4889 // bits/types.h -- definitions of __*_t types underlying *_t types. 4890 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4891 // This file is part of the GNU C Library. 4892 // 4893 // The GNU C Library is free software; you can redistribute it and/or 4894 // modify it under the terms of the GNU Lesser General Public 4895 // License as published by the Free Software Foundation; either 4896 // version 2.1 of the License, or (at your option) any later version. 4897 // 4898 // The GNU C Library is distributed in the hope that it will be useful, 4899 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4900 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4901 // Lesser General Public License for more details. 4902 // 4903 // You should have received a copy of the GNU Lesser General Public 4904 // License along with the GNU C Library; if not, see 4905 // <https://www.gnu.org/licenses/>. 4906 4907 // Never include this file directly; use <sys/types.h> instead. 4908 4909 // Get __FD_* definitions. 4910 // Copyright (C) 1997-2022 Free Software Foundation, Inc. 4911 // This file is part of the GNU C Library. 4912 // 4913 // The GNU C Library is free software; you can redistribute it and/or 4914 // modify it under the terms of the GNU Lesser General Public 4915 // License as published by the Free Software Foundation; either 4916 // version 2.1 of the License, or (at your option) any later version. 4917 // 4918 // The GNU C Library is distributed in the hope that it will be useful, 4919 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4920 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4921 // Lesser General Public License for more details. 4922 // 4923 // You should have received a copy of the GNU Lesser General Public 4924 // License along with the GNU C Library; if not, see 4925 // <https://www.gnu.org/licenses/>. 4926 4927 // We don't use `memset' because this would require a prototype and 4928 // the array isn't too big. 4929 4930 // Get sigset_t. 4931 4932 type T__sigset_t = struct{ F__val [16]uint64 } /* __sigset_t.h:8:3 */ 4933 4934 // A set of signals to be blocked, unblocked, or waited for. 4935 type Tsigset_t = T__sigset_t /* sigset_t.h:7:20 */ 4936 4937 // Get definition of timer specification structures. 4938 4939 // bits/types.h -- definitions of __*_t types underlying *_t types. 4940 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4941 // This file is part of the GNU C Library. 4942 // 4943 // The GNU C Library is free software; you can redistribute it and/or 4944 // modify it under the terms of the GNU Lesser General Public 4945 // License as published by the Free Software Foundation; either 4946 // version 2.1 of the License, or (at your option) any later version. 4947 // 4948 // The GNU C Library is distributed in the hope that it will be useful, 4949 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4950 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4951 // Lesser General Public License for more details. 4952 // 4953 // You should have received a copy of the GNU Lesser General Public 4954 // License along with the GNU C Library; if not, see 4955 // <https://www.gnu.org/licenses/>. 4956 4957 // Never include this file directly; use <sys/types.h> instead. 4958 4959 // A time value that is accurate to the nearest 4960 // microsecond but also has a range of years. 4961 type Stimeval = struct { 4962 Ftv_sec T__time_t 4963 Ftv_usec T__suseconds_t 4964 } /* struct_timeval.h:8:1 */ 4965 4966 // NB: Include guard matches what <linux/time.h> uses. 4967 4968 // bits/types.h -- definitions of __*_t types underlying *_t types. 4969 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 4970 // This file is part of the GNU C Library. 4971 // 4972 // The GNU C Library is free software; you can redistribute it and/or 4973 // modify it under the terms of the GNU Lesser General Public 4974 // License as published by the Free Software Foundation; either 4975 // version 2.1 of the License, or (at your option) any later version. 4976 // 4977 // The GNU C Library is distributed in the hope that it will be useful, 4978 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4979 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4980 // Lesser General Public License for more details. 4981 // 4982 // You should have received a copy of the GNU Lesser General Public 4983 // License along with the GNU C Library; if not, see 4984 // <https://www.gnu.org/licenses/>. 4985 4986 // Never include this file directly; use <sys/types.h> instead. 4987 4988 // Endian macros for string.h functions 4989 // Copyright (C) 1992-2022 Free Software Foundation, Inc. 4990 // This file is part of the GNU C Library. 4991 // 4992 // The GNU C Library is free software; you can redistribute it and/or 4993 // modify it under the terms of the GNU Lesser General Public 4994 // License as published by the Free Software Foundation; either 4995 // version 2.1 of the License, or (at your option) any later version. 4996 // 4997 // The GNU C Library is distributed in the hope that it will be useful, 4998 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4999 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5000 // Lesser General Public License for more details. 5001 // 5002 // You should have received a copy of the GNU Lesser General Public 5003 // License along with the GNU C Library; if not, see 5004 // <http://www.gnu.org/licenses/>. 5005 5006 // POSIX.1b structure for a time value. This is like a `struct timeval' but 5007 // has nanoseconds instead of microseconds. 5008 type Stimespec = struct { 5009 Ftv_sec T__time_t 5010 Ftv_nsec T__syscall_slong_t 5011 } /* struct_timespec.h:11:1 */ 5012 5013 // The fd_set member is required to be an array of longs. 5014 type T__fd_mask = int64 /* select.h:49:18 */ 5015 5016 // Some versions of <linux/posix_types.h> define this macros. 5017 // It's easier to assume 8-bit bytes than to get CHAR_BIT. 5018 5019 // fd_set for select and pselect. 5020 type Tfd_set = struct{ Ffds_bits [16]T__fd_mask } /* select.h:70:5 */ 5021 5022 // Maximum number of file descriptors in `fd_set'. 5023 5024 // Sometimes the fd_set member is assumed to have this type. 5025 type Tfd_mask = T__fd_mask /* select.h:77:19 */ 5026 5027 // Define some inlines helping to catch common problems. 5028 5029 type Tblksize_t = T__blksize_t /* types.h:185:21 */ 5030 5031 // Types from the Large File Support interface. 5032 type Tblkcnt_t = T__blkcnt64_t /* types.h:205:22 */ // Type to count number of disk blocks. 5033 type Tfsblkcnt_t = T__fsblkcnt64_t /* types.h:209:24 */ // Type to count file system blocks. 5034 type Tfsfilcnt_t = T__fsfilcnt64_t /* types.h:213:24 */ // Type to count file system inodes. 5035 5036 type Tblkcnt64_t = T__blkcnt64_t /* types.h:219:22 */ // Type to count number of disk blocks. 5037 type Tfsblkcnt64_t = T__fsblkcnt64_t /* types.h:220:24 */ // Type to count file system blocks. 5038 type Tfsfilcnt64_t = T__fsfilcnt64_t /* types.h:221:24 */ // Type to count file system inodes. 5039 5040 // Now add the thread types. 5041 // Declaration of common pthread types for all architectures. 5042 // Copyright (C) 2017-2022 Free Software Foundation, Inc. 5043 // This file is part of the GNU C Library. 5044 // 5045 // The GNU C Library is free software; you can redistribute it and/or 5046 // modify it under the terms of the GNU Lesser General Public 5047 // License as published by the Free Software Foundation; either 5048 // version 2.1 of the License, or (at your option) any later version. 5049 // 5050 // The GNU C Library is distributed in the hope that it will be useful, 5051 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5052 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5053 // Lesser General Public License for more details. 5054 // 5055 // You should have received a copy of the GNU Lesser General Public 5056 // License along with the GNU C Library; if not, see 5057 // <https://www.gnu.org/licenses/>. 5058 5059 // For internal mutex and condition variable definitions. 5060 // Common threading primitives definitions for both POSIX and C11. 5061 // Copyright (C) 2017-2022 Free Software Foundation, Inc. 5062 // This file is part of the GNU C Library. 5063 // 5064 // The GNU C Library is free software; you can redistribute it and/or 5065 // modify it under the terms of the GNU Lesser General Public 5066 // License as published by the Free Software Foundation; either 5067 // version 2.1 of the License, or (at your option) any later version. 5068 // 5069 // The GNU C Library is distributed in the hope that it will be useful, 5070 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5071 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5072 // Lesser General Public License for more details. 5073 // 5074 // You should have received a copy of the GNU Lesser General Public 5075 // License along with the GNU C Library; if not, see 5076 // <https://www.gnu.org/licenses/>. 5077 5078 // Arch-specific definitions. Each architecture must define the following 5079 // macros to define the expected sizes of pthread data types: 5080 // 5081 // __SIZEOF_PTHREAD_ATTR_T - size of pthread_attr_t. 5082 // __SIZEOF_PTHREAD_MUTEX_T - size of pthread_mutex_t. 5083 // __SIZEOF_PTHREAD_MUTEXATTR_T - size of pthread_mutexattr_t. 5084 // __SIZEOF_PTHREAD_COND_T - size of pthread_cond_t. 5085 // __SIZEOF_PTHREAD_CONDATTR_T - size of pthread_condattr_t. 5086 // __SIZEOF_PTHREAD_RWLOCK_T - size of pthread_rwlock_t. 5087 // __SIZEOF_PTHREAD_RWLOCKATTR_T - size of pthread_rwlockattr_t. 5088 // __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t. 5089 // __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t. 5090 // 5091 // The additional macro defines any constraint for the lock alignment 5092 // inside the thread structures: 5093 // 5094 // __LOCK_ALIGNMENT - for internal lock/futex usage. 5095 // 5096 // Same idea but for the once locking primitive: 5097 // 5098 // __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition. 5099 5100 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 5101 // This file is part of the GNU C Library. 5102 // 5103 // The GNU C Library is free software; you can redistribute it and/or 5104 // modify it under the terms of the GNU Lesser General Public 5105 // License as published by the Free Software Foundation; either 5106 // version 2.1 of the License, or (at your option) any later version. 5107 // 5108 // The GNU C Library is distributed in the hope that it will be useful, 5109 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5110 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5111 // Lesser General Public License for more details. 5112 // 5113 // You should have received a copy of the GNU Lesser General Public 5114 // License along with the GNU C Library; if not, see 5115 // <https://www.gnu.org/licenses/>. 5116 5117 // Determine the wordsize from the preprocessor defines. 5118 5119 // Both x86-64 and x32 use the 64-bit system call interface. 5120 5121 // Monotonically increasing wide counters (at least 62 bits). 5122 // Copyright (C) 2016-2022 Free Software Foundation, Inc. 5123 // This file is part of the GNU C Library. 5124 // 5125 // The GNU C Library is free software; you can redistribute it and/or 5126 // modify it under the terms of the GNU Lesser General Public 5127 // License as published by the Free Software Foundation; either 5128 // version 2.1 of the License, or (at your option) any later version. 5129 // 5130 // The GNU C Library is distributed in the hope that it will be useful, 5131 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5132 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5133 // Lesser General Public License for more details. 5134 // 5135 // You should have received a copy of the GNU Lesser General Public 5136 // License along with the GNU C Library; if not, see 5137 // <https://www.gnu.org/licenses/>. 5138 5139 // Counter that is monotonically increasing (by less than 2**31 per 5140 // increment), with a single writer, and an arbitrary number of 5141 // readers. 5142 type T__atomic_wide_counter = struct{ F__value64 uint64 } /* atomic_wide_counter.h:33:3 */ 5143 5144 // Common definition of pthread_mutex_t. 5145 5146 type S__pthread_internal_list = struct { 5147 F__prev uintptr 5148 F__next uintptr 5149 } /* thread-shared-types.h:51:9 */ 5150 5151 // Common definition of pthread_mutex_t. 5152 5153 type T__pthread_list_t = S__pthread_internal_list /* thread-shared-types.h:55:3 */ 5154 5155 type S__pthread_internal_slist = struct{ F__next uintptr } /* thread-shared-types.h:57:9 */ 5156 5157 type T__pthread_slist_t = S__pthread_internal_slist /* thread-shared-types.h:60:3 */ 5158 5159 // Arch-specific mutex definitions. A generic implementation is provided 5160 // by sysdeps/nptl/bits/struct_mutex.h. If required, an architecture 5161 // can override it by defining: 5162 // 5163 // 1. struct __pthread_mutex_s (used on both pthread_mutex_t and mtx_t 5164 // definition). It should contains at least the internal members 5165 // defined in the generic version. 5166 // 5167 // 2. __LOCK_ALIGNMENT for any extra attribute for internal lock used with 5168 // atomic operations. 5169 // 5170 // 3. The macro __PTHREAD_MUTEX_INITIALIZER used for static initialization. 5171 // It should initialize the mutex internal flag. 5172 5173 // x86 internal mutex struct definitions. 5174 // Copyright (C) 2019-2022 Free Software Foundation, Inc. 5175 // This file is part of the GNU C Library. 5176 // 5177 // The GNU C Library is free software; you can redistribute it and/or 5178 // modify it under the terms of the GNU Lesser General Public 5179 // License as published by the Free Software Foundation; either 5180 // version 2.1 of the License, or (at your option) any later version. 5181 // 5182 // The GNU C Library is distributed in the hope that it will be useful, 5183 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5184 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5185 // Lesser General Public License for more details. 5186 // 5187 // You should have received a copy of the GNU Lesser General Public 5188 // License along with the GNU C Library; if not, see 5189 // <http://www.gnu.org/licenses/>. 5190 5191 type S__pthread_mutex_s = struct { 5192 F__lock int32 5193 F__count uint32 5194 F__owner int32 5195 F__nusers uint32 5196 F__kind int32 5197 F__spins int16 5198 F__elision int16 5199 F__list T__pthread_list_t 5200 } /* struct_mutex.h:22:1 */ 5201 5202 // Arch-sepecific read-write lock definitions. A generic implementation is 5203 // provided by struct_rwlock.h. If required, an architecture can override it 5204 // by defining: 5205 // 5206 // 1. struct __pthread_rwlock_arch_t (used on pthread_rwlock_t definition). 5207 // It should contain at least the internal members defined in the 5208 // generic version. 5209 // 5210 // 2. The macro __PTHREAD_RWLOCK_INITIALIZER used for static initialization. 5211 // It should initialize the rwlock internal type. 5212 5213 // x86 internal rwlock struct definitions. 5214 // Copyright (C) 2019-2022 Free Software Foundation, Inc. 5215 // 5216 // This file is part of the GNU C Library. 5217 // 5218 // The GNU C Library is free software; you can redistribute it and/or 5219 // modify it under the terms of the GNU Lesser General Public 5220 // License as published by the Free Software Foundation; either 5221 // version 2.1 of the License, or (at your option) any later version. 5222 // 5223 // The GNU C Library is distributed in the hope that it will be useful, 5224 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5225 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5226 // Lesser General Public License for more details. 5227 // 5228 // You should have received a copy of the GNU Lesser General Public 5229 // License along with the GNU C Library; if not, see 5230 // <http://www.gnu.org/licenses/>. 5231 5232 type S__pthread_rwlock_arch_t = struct { 5233 F__readers uint32 5234 F__writers uint32 5235 F__wrphase_futex uint32 5236 F__writers_futex uint32 5237 F__pad3 uint32 5238 F__pad4 uint32 5239 F__cur_writer int32 5240 F__shared int32 5241 F__rwelision int8 5242 F__pad1 [7]uint8 5243 F__pad2 uint64 5244 F__flags uint32 5245 F__ccgo_pad1 [4]byte 5246 } /* struct_rwlock.h:23:1 */ 5247 5248 // Common definition of pthread_cond_t. 5249 5250 type S__pthread_cond_s = struct { 5251 F__wseq T__atomic_wide_counter 5252 F__g1_start T__atomic_wide_counter 5253 F__g_refs [2]uint32 5254 F__g_size [2]uint32 5255 F__g1_orig_size uint32 5256 F__wrefs uint32 5257 F__g_signals [2]uint32 5258 } /* thread-shared-types.h:94:1 */ 5259 5260 type T__tss_t = uint32 /* thread-shared-types.h:105:22 */ 5261 type T__thrd_t = uint64 /* thread-shared-types.h:106:27 */ 5262 5263 type T__once_flag = struct{ F__data int32 } /* thread-shared-types.h:111:3 */ 5264 5265 // Thread identifiers. The structure of the attribute type is not 5266 // exposed on purpose. 5267 type Tpthread_t = uint64 /* pthreadtypes.h:27:27 */ 5268 5269 // Data structures for mutex handling. The structure of the attribute 5270 // type is not exposed on purpose. 5271 type Tpthread_mutexattr_t = struct { 5272 F__ccgo_pad1 [0]uint32 5273 F__size [4]int8 5274 } /* pthreadtypes.h:36:3 */ 5275 5276 // Data structure for condition variable handling. The structure of 5277 // the attribute type is not exposed on purpose. 5278 type Tpthread_condattr_t = struct { 5279 F__ccgo_pad1 [0]uint32 5280 F__size [4]int8 5281 } /* pthreadtypes.h:45:3 */ 5282 5283 // Keys for thread-specific data 5284 type Tpthread_key_t = uint32 /* pthreadtypes.h:49:22 */ 5285 5286 // Once-only execution 5287 type Tpthread_once_t = int32 /* pthreadtypes.h:53:30 */ 5288 5289 type Spthread_attr_t = struct { 5290 F__ccgo_pad1 [0]uint64 5291 F__size [56]int8 5292 } /* pthreadtypes.h:56:1 */ 5293 5294 type Tpthread_attr_t = Spthread_attr_t /* pthreadtypes.h:62:30 */ 5295 5296 type Tpthread_mutex_t = struct{ F__data S__pthread_mutex_s } /* pthreadtypes.h:72:3 */ 5297 5298 type Tpthread_cond_t = struct{ F__data S__pthread_cond_s } /* pthreadtypes.h:80:3 */ 5299 5300 // Data structure for reader-writer lock variable handling. The 5301 // structure of the attribute type is deliberately not exposed. 5302 type Tpthread_rwlock_t = struct{ F__data S__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */ 5303 5304 type Tpthread_rwlockattr_t = struct { 5305 F__ccgo_pad1 [0]uint64 5306 F__size [8]int8 5307 } /* pthreadtypes.h:97:3 */ 5308 5309 // POSIX spinlock data type. 5310 type Tpthread_spinlock_t = int32 /* pthreadtypes.h:103:22 */ 5311 5312 // POSIX barriers data type. The structure of the type is 5313 // deliberately not exposed. 5314 type Tpthread_barrier_t = struct { 5315 F__ccgo_pad1 [0]uint64 5316 F__size [32]int8 5317 } /* pthreadtypes.h:112:3 */ 5318 5319 type Tpthread_barrierattr_t = struct { 5320 F__ccgo_pad1 [0]uint32 5321 F__size [4]int8 5322 } /* pthreadtypes.h:118:3 */ 5323 5324 // Reentrant versions of the `random' family of functions. 5325 // These functions all use the following data structure to contain 5326 // state, rather than global state variables. 5327 5328 type Srandom_data = struct { 5329 Ffptr uintptr 5330 Frptr uintptr 5331 Fstate uintptr 5332 Frand_type int32 5333 Frand_deg int32 5334 Frand_sep int32 5335 F__ccgo_pad1 [4]byte 5336 Fend_ptr uintptr 5337 } /* stdlib.h:424:1 */ 5338 5339 // Data structure for communication with thread safe versions. This 5340 // type is to be regarded as opaque. It's only exported because users 5341 // have to allocate objects of this type. 5342 type Sdrand48_data = struct { 5343 F__x [3]uint16 5344 F__old_x [3]uint16 5345 F__c uint16 5346 F__init uint16 5347 F__a uint64 5348 } /* stdlib.h:491:1 */ 5349 5350 // Shorthand for type of comparison functions. 5351 type T__compar_fn_t = uintptr /* stdlib.h:816:13 */ 5352 5353 type Tcomparison_fn_t = T__compar_fn_t /* stdlib.h:819:23 */ 5354 type T__compar_d_fn_t = uintptr /* stdlib.h:823:13 */ 5355 5356 // Macros to make boolean values more obvious. The #ifndef is to pacify 5357 // compiler warnings in environments where these macros are defined elsewhere. 5358 // Unfortunately, there is no way to do the same for the typedef. 5359 5360 type TBOOL = int32 /* pcre2_internal.h:67:13 */ 5361 5362 // Valgrind (memcheck) support 5363 5364 // -ftrivial-auto-var-init support supports initializing all local variables 5365 // to avoid some classes of bug, but this can cause an unacceptable slowdown 5366 // for large on-stack arrays in hot functions. This macro lets us annotate 5367 // such arrays. 5368 5369 // Older versions of MSVC lack snprintf(). This define allows for 5370 // warning/error-free compilation and testing with MSVC compilers back to at least 5371 // MSVC 10/2010. Except for VC6 (which is missing some fundamentals and fails). 5372 5373 // When compiling a DLL for Windows, the exported symbols have to be declared 5374 // using some MS magic. I found some useful information on this web page: 5375 // http://msdn2.microsoft.com/en-us/library/y4h7bcy6(VS.80).aspx. According to the 5376 // information there, using __declspec(dllexport) without "extern" we have a 5377 // definition; with "extern" we have a declaration. The settings here override the 5378 // setting in pcre2.h (which is included below); it defines only PCRE2_EXP_DECL, 5379 // which is all that is needed for applications (they just import the symbols). We 5380 // use: 5381 // 5382 // PCRE2_EXP_DECL for declarations 5383 // PCRE2_EXP_DEFN for definitions 5384 // 5385 // The reason for wrapping this in #ifndef PCRE2_EXP_DECL is so that pcre2test, 5386 // which is an application, but needs to import this file in order to "peek" at 5387 // internals, can #include pcre2.h first to get an application's-eye view. 5388 // 5389 // In principle, people compiling for non-Windows, non-Unix-like (i.e. uncommon, 5390 // special-purpose environments) might want to stick other stuff in front of 5391 // exported symbols. That's why, in the non-Windows case, we set PCRE2_EXP_DEFN 5392 // only if it is not already set. 5393 5394 // Include the public PCRE2 header and the definitions of UCP character 5395 // property values. This must follow the setting of PCRE2_EXP_DECL above. 5396 5397 // ************************************************ 5398 // 5399 // Perl-Compatible Regular Expressions * 5400 // 5401 5402 // This is the public header file for the PCRE library, second API, to be 5403 // #included by applications that call PCRE2 functions. 5404 // 5405 // Copyright (c) 2016-2021 University of Cambridge 5406 // 5407 // ----------------------------------------------------------------------------- 5408 // Redistribution and use in source and binary forms, with or without 5409 // modification, are permitted provided that the following conditions are met: 5410 // 5411 // * Redistributions of source code must retain the above copyright notice, 5412 // this list of conditions and the following disclaimer. 5413 // 5414 // * Redistributions in binary form must reproduce the above copyright 5415 // notice, this list of conditions and the following disclaimer in the 5416 // documentation and/or other materials provided with the distribution. 5417 // 5418 // * Neither the name of the University of Cambridge nor the names of its 5419 // contributors may be used to endorse or promote products derived from 5420 // this software without specific prior written permission. 5421 // 5422 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 5423 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 5424 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 5425 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 5426 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 5427 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 5428 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 5429 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 5430 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 5431 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 5432 // POSSIBILITY OF SUCH DAMAGE. 5433 // ----------------------------------------------------------------------------- 5434 5435 // The current PCRE version information. 5436 5437 // When an application links to a PCRE DLL in Windows, the symbols that are 5438 // imported have to be identified as such. When building PCRE2, the appropriate 5439 // export setting is defined in pcre2_internal.h, which includes this file. So we 5440 // don't change existing definitions of PCRE2_EXP_DECL. 5441 5442 // By default, we use the standard "extern" declarations. 5443 5444 // When compiling with the MSVC compiler, it is sometimes necessary to include 5445 // a "calling convention" before exported function names. (This is secondhand 5446 // information; I know nothing about MSVC myself). For example, something like 5447 // 5448 // void __cdecl function(....) 5449 // 5450 // might be needed. In order so make this easy, all the exported functions have 5451 // PCRE2_CALL_CONVENTION just before their names. It is rarely needed; if not 5452 // set, we ensure here that it has no effect. 5453 5454 // Have to include limits.h, stdlib.h, and inttypes.h to ensure that size_t and 5455 // uint8_t, UCHAR_MAX, etc are defined. Some systems that do have inttypes.h do 5456 // not have stdint.h, which is why we use inttypes.h, which according to the C 5457 // standard is a superset of stdint.h. If inttypes.h is not available the build 5458 // will break and the relevant values must be provided by some other means. 5459 5460 // Copyright (C) 1992-2021 Free Software Foundation, Inc. 5461 // 5462 // This file is part of GCC. 5463 // 5464 // GCC is free software; you can redistribute it and/or modify it under 5465 // the terms of the GNU General Public License as published by the Free 5466 // Software Foundation; either version 3, or (at your option) any later 5467 // version. 5468 // 5469 // GCC is distributed in the hope that it will be useful, but WITHOUT ANY 5470 // WARRANTY; without even the implied warranty of MERCHANTABILITY or 5471 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 5472 // for more details. 5473 // 5474 // Under Section 7 of GPL version 3, you are granted additional 5475 // permissions described in the GCC Runtime Library Exception, version 5476 // 3.1, as published by the Free Software Foundation. 5477 // 5478 // You should have received a copy of the GNU General Public License and 5479 // a copy of the GCC Runtime Library Exception along with this program; 5480 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 5481 // <http://www.gnu.org/licenses/>. 5482 5483 // This administrivia gets added to the beginning of limits.h 5484 // if the system has its own version of limits.h. 5485 5486 // We use _GCC_LIMITS_H_ because we want this not to match 5487 // any macros that the system's limits.h uses for its own purposes. 5488 5489 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 5490 // Copyright The GNU Toolchain Authors. 5491 // This file is part of the GNU C Library. 5492 // 5493 // The GNU C Library is free software; you can redistribute it and/or 5494 // modify it under the terms of the GNU Lesser General Public 5495 // License as published by the Free Software Foundation; either 5496 // version 2.1 of the License, or (at your option) any later version. 5497 // 5498 // The GNU C Library is distributed in the hope that it will be useful, 5499 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5500 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5501 // Lesser General Public License for more details. 5502 // 5503 // You should have received a copy of the GNU Lesser General Public 5504 // License along with the GNU C Library; if not, see 5505 // <https://www.gnu.org/licenses/>. 5506 5507 // ISO C99 Standard: 7.20 General utilities <stdlib.h> 5508 5509 // Copyright (C) 1997-2022 Free Software Foundation, Inc. 5510 // This file is part of the GNU C Library. 5511 // 5512 // The GNU C Library is free software; you can redistribute it and/or 5513 // modify it under the terms of the GNU Lesser General Public 5514 // License as published by the Free Software Foundation; either 5515 // version 2.1 of the License, or (at your option) any later version. 5516 // 5517 // The GNU C Library is distributed in the hope that it will be useful, 5518 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5519 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5520 // Lesser General Public License for more details. 5521 // 5522 // You should have received a copy of the GNU Lesser General Public 5523 // License along with the GNU C Library; if not, see 5524 // <https://www.gnu.org/licenses/>. 5525 5526 // ISO C99: 7.8 Format conversion of integer types <inttypes.h> 5527 5528 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 5529 // This file is part of the GNU C Library. 5530 // 5531 // The GNU C Library is free software; you can redistribute it and/or 5532 // modify it under the terms of the GNU Lesser General Public 5533 // License as published by the Free Software Foundation; either 5534 // version 2.1 of the License, or (at your option) any later version. 5535 // 5536 // The GNU C Library is distributed in the hope that it will be useful, 5537 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5538 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5539 // Lesser General Public License for more details. 5540 // 5541 // You should have received a copy of the GNU Lesser General Public 5542 // License along with the GNU C Library; if not, see 5543 // <https://www.gnu.org/licenses/>. 5544 5545 // Get the type definitions. 5546 // Copyright (C) 1997-2022 Free Software Foundation, Inc. 5547 // This file is part of the GNU C Library. 5548 // 5549 // The GNU C Library is free software; you can redistribute it and/or 5550 // modify it under the terms of the GNU Lesser General Public 5551 // License as published by the Free Software Foundation; either 5552 // version 2.1 of the License, or (at your option) any later version. 5553 // 5554 // The GNU C Library is distributed in the hope that it will be useful, 5555 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5556 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5557 // Lesser General Public License for more details. 5558 // 5559 // You should have received a copy of the GNU Lesser General Public 5560 // License along with the GNU C Library; if not, see 5561 // <https://www.gnu.org/licenses/>. 5562 5563 // ISO C99: 7.18 Integer types <stdint.h> 5564 5565 // Handle feature test macros at the start of a header. 5566 // Copyright (C) 2016-2022 Free Software Foundation, Inc. 5567 // This file is part of the GNU C Library. 5568 // 5569 // The GNU C Library is free software; you can redistribute it and/or 5570 // modify it under the terms of the GNU Lesser General Public 5571 // License as published by the Free Software Foundation; either 5572 // version 2.1 of the License, or (at your option) any later version. 5573 // 5574 // The GNU C Library is distributed in the hope that it will be useful, 5575 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5576 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5577 // Lesser General Public License for more details. 5578 // 5579 // You should have received a copy of the GNU Lesser General Public 5580 // License along with the GNU C Library; if not, see 5581 // <https://www.gnu.org/licenses/>. 5582 5583 // This header is internal to glibc and should not be included outside 5584 // of glibc headers. Headers including it must define 5585 // __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first. This header 5586 // cannot have multiple include guards because ISO C feature test 5587 // macros depend on the definition of the macro when an affected 5588 // header is included, not when the first system header is 5589 // included. 5590 5591 // Copyright (C) 1991-2022 Free Software Foundation, Inc. 5592 // This file is part of the GNU C Library. 5593 // 5594 // The GNU C Library is free software; you can redistribute it and/or 5595 // modify it under the terms of the GNU Lesser General Public 5596 // License as published by the Free Software Foundation; either 5597 // version 2.1 of the License, or (at your option) any later version. 5598 // 5599 // The GNU C Library is distributed in the hope that it will be useful, 5600 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5601 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5602 // Lesser General Public License for more details. 5603 // 5604 // You should have received a copy of the GNU Lesser General Public 5605 // License along with the GNU C Library; if not, see 5606 // <https://www.gnu.org/licenses/>. 5607 5608 // ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__ 5609 // macro. 5610 5611 // ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__ 5612 // macro. Most but not all symbols enabled by that macro in TS 5613 // 18661-1 are enabled unconditionally in C2X. In C2X, the symbols in 5614 // Annex F still require a new feature test macro 5615 // __STDC_WANT_IEC_60559_EXT__ instead (C2X does not define 5616 // __STDC_WANT_IEC_60559_BFP_EXT__), while a few features from TS 5617 // 18661-1 are not included in C2X (and thus should depend on 5618 // __STDC_WANT_IEC_60559_BFP_EXT__ even when C2X features are 5619 // enabled). 5620 // 5621 // __GLIBC_USE (IEC_60559_BFP_EXT) controls those features from TS 5622 // 18661-1 not included in C2X. 5623 // 5624 // __GLIBC_USE (IEC_60559_BFP_EXT_C2X) controls those features from TS 5625 // 18661-1 that are also included in C2X (with no feature test macro 5626 // required in C2X). 5627 // 5628 // __GLIBC_USE (IEC_60559_EXT) controls those features from TS 18661-1 5629 // that are included in C2X but conditional on 5630 // __STDC_WANT_IEC_60559_EXT__. (There are currently no features 5631 // conditional on __STDC_WANT_IEC_60559_EXT__ that are not in TS 5632 // 18661-1.) 5633 5634 // ISO/IEC TS 18661-4:2015 defines the 5635 // __STDC_WANT_IEC_60559_FUNCS_EXT__ macro. Other than the reduction 5636 // functions, the symbols from this TS are enabled unconditionally in 5637 // C2X. 5638 5639 // ISO/IEC TS 18661-3:2015 defines the 5640 // __STDC_WANT_IEC_60559_TYPES_EXT__ macro. 5641 // bits/types.h -- definitions of __*_t types underlying *_t types. 5642 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 5643 // This file is part of the GNU C Library. 5644 // 5645 // The GNU C Library is free software; you can redistribute it and/or 5646 // modify it under the terms of the GNU Lesser General Public 5647 // License as published by the Free Software Foundation; either 5648 // version 2.1 of the License, or (at your option) any later version. 5649 // 5650 // The GNU C Library is distributed in the hope that it will be useful, 5651 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5652 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5653 // Lesser General Public License for more details. 5654 // 5655 // You should have received a copy of the GNU Lesser General Public 5656 // License along with the GNU C Library; if not, see 5657 // <https://www.gnu.org/licenses/>. 5658 5659 // Never include this file directly; use <sys/types.h> instead. 5660 5661 // wchar_t type related definitions. 5662 // Copyright (C) 2000-2022 Free Software Foundation, Inc. 5663 // This file is part of the GNU C Library. 5664 // 5665 // The GNU C Library is free software; you can redistribute it and/or 5666 // modify it under the terms of the GNU Lesser General Public 5667 // License as published by the Free Software Foundation; either 5668 // version 2.1 of the License, or (at your option) any later version. 5669 // 5670 // The GNU C Library is distributed in the hope that it will be useful, 5671 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5672 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5673 // Lesser General Public License for more details. 5674 // 5675 // You should have received a copy of the GNU Lesser General Public 5676 // License along with the GNU C Library; if not, see 5677 // <https://www.gnu.org/licenses/>. 5678 5679 // The fallback definitions, for when __WCHAR_MAX__ or __WCHAR_MIN__ 5680 // are not defined, give the right value and type as long as both int 5681 // and wchar_t are 32-bit types. Adding L'\0' to a constant value 5682 // ensures that the type is correct; it is necessary to use (L'\0' + 5683 // 0) rather than just L'\0' so that the type in C++ is the promoted 5684 // version of wchar_t rather than the distinct wchar_t type itself. 5685 // Because wchar_t in preprocessor #if expressions is treated as 5686 // intmax_t or uintmax_t, the expression (L'\0' - 1) would have the 5687 // wrong value for WCHAR_MAX in such expressions and so cannot be used 5688 // to define __WCHAR_MAX in the unsigned case. 5689 5690 // Determine the wordsize from the preprocessor defines. 5691 5692 // Both x86-64 and x32 use the 64-bit system call interface. 5693 5694 // Exact integral types. 5695 5696 // Signed. 5697 // Define intN_t types. 5698 // Copyright (C) 2017-2022 Free Software Foundation, Inc. 5699 // This file is part of the GNU C Library. 5700 // 5701 // The GNU C Library is free software; you can redistribute it and/or 5702 // modify it under the terms of the GNU Lesser General Public 5703 // License as published by the Free Software Foundation; either 5704 // version 2.1 of the License, or (at your option) any later version. 5705 // 5706 // The GNU C Library is distributed in the hope that it will be useful, 5707 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5708 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5709 // Lesser General Public License for more details. 5710 // 5711 // You should have received a copy of the GNU Lesser General Public 5712 // License along with the GNU C Library; if not, see 5713 // <https://www.gnu.org/licenses/>. 5714 5715 // Unsigned. 5716 // Define uintN_t types. 5717 // Copyright (C) 2017-2022 Free Software Foundation, Inc. 5718 // This file is part of the GNU C Library. 5719 // 5720 // The GNU C Library is free software; you can redistribute it and/or 5721 // modify it under the terms of the GNU Lesser General Public 5722 // License as published by the Free Software Foundation; either 5723 // version 2.1 of the License, or (at your option) any later version. 5724 // 5725 // The GNU C Library is distributed in the hope that it will be useful, 5726 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5727 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5728 // Lesser General Public License for more details. 5729 // 5730 // You should have received a copy of the GNU Lesser General Public 5731 // License along with the GNU C Library; if not, see 5732 // <https://www.gnu.org/licenses/>. 5733 5734 // bits/types.h -- definitions of __*_t types underlying *_t types. 5735 // Copyright (C) 2002-2022 Free Software Foundation, Inc. 5736 // This file is part of the GNU C Library. 5737 // 5738 // The GNU C Library is free software; you can redistribute it and/or 5739 // modify it under the terms of the GNU Lesser General Public 5740 // License as published by the Free Software Foundation; either 5741 // version 2.1 of the License, or (at your option) any later version. 5742 // 5743 // The GNU C Library is distributed in the hope that it will be useful, 5744 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5745 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5746 // Lesser General Public License for more details. 5747 // 5748 // You should have received a copy of the GNU Lesser General Public 5749 // License along with the GNU C Library; if not, see 5750 // <https://www.gnu.org/licenses/>. 5751 5752 // Never include this file directly; use <sys/types.h> instead. 5753 5754 type Tuint8_t = T__uint8_t /* stdint-uintn.h:24:19 */ 5755 type Tuint16_t = T__uint16_t /* stdint-uintn.h:25:20 */ 5756 type Tuint32_t = T__uint32_t /* stdint-uintn.h:26:20 */ 5757 type Tuint64_t = T__uint64_t /* stdint-uintn.h:27:20 */ 5758 5759 // Small types. 5760 5761 // Signed. 5762 type Tint_least8_t = T__int_least8_t /* stdint.h:43:24 */ 5763 type Tint_least16_t = T__int_least16_t /* stdint.h:44:25 */ 5764 type Tint_least32_t = T__int_least32_t /* stdint.h:45:25 */ 5765 type Tint_least64_t = T__int_least64_t /* stdint.h:46:25 */ 5766 5767 // Unsigned. 5768 type Tuint_least8_t = T__uint_least8_t /* stdint.h:49:25 */ 5769 type Tuint_least16_t = T__uint_least16_t /* stdint.h:50:26 */ 5770 type Tuint_least32_t = T__uint_least32_t /* stdint.h:51:26 */ 5771 type Tuint_least64_t = T__uint_least64_t /* stdint.h:52:26 */ 5772 5773 // Fast types. 5774 5775 // Signed. 5776 type Tint_fast8_t = int8 /* stdint.h:58:22 */ 5777 type Tint_fast16_t = int64 /* stdint.h:60:19 */ 5778 type Tint_fast32_t = int64 /* stdint.h:61:19 */ 5779 type Tint_fast64_t = int64 /* stdint.h:62:19 */ 5780 5781 // Unsigned. 5782 type Tuint_fast8_t = uint8 /* stdint.h:71:24 */ 5783 type Tuint_fast16_t = uint64 /* stdint.h:73:27 */ 5784 type Tuint_fast32_t = uint64 /* stdint.h:74:27 */ 5785 type Tuint_fast64_t = uint64 /* stdint.h:75:27 */ 5786 5787 // Types for `void *' pointers. 5788 type Tintptr_t = int64 /* stdint.h:87:19 */ 5789 type Tuintptr_t = uint64 /* stdint.h:90:27 */ 5790 5791 // Largest integral types. 5792 type Tintmax_t = T__intmax_t /* stdint.h:101:21 */ 5793 type Tuintmax_t = T__uintmax_t /* stdint.h:102:22 */ 5794 5795 // Limits of integral types. 5796 5797 // Minimum of signed integral types. 5798 // Maximum of signed integral types. 5799 5800 // Maximum of unsigned integral types. 5801 5802 // Minimum of signed integral types having a minimum size. 5803 // Maximum of signed integral types having a minimum size. 5804 5805 // Maximum of unsigned integral types having a minimum size. 5806 5807 // Minimum of fast signed integral types having a minimum size. 5808 // Maximum of fast signed integral types having a minimum size. 5809 5810 // Maximum of fast unsigned integral types having a minimum size. 5811 5812 // Values to test for integral types holding `void *' pointer. 5813 5814 // Minimum for largest signed integral type. 5815 // Maximum for largest signed integral type. 5816 5817 // Maximum for largest unsigned integral type. 5818 5819 // Limits of other integer types. 5820 5821 // Limits of `ptrdiff_t' type. 5822 5823 // Limits of `sig_atomic_t'. 5824 5825 // Limit of `size_t' type. 5826 5827 // Limits of `wchar_t'. 5828 // These constants might also be defined in <wchar.h>. 5829 5830 // Limits of `wint_t'. 5831 5832 // Signed. 5833 5834 // Unsigned. 5835 5836 // Maximal type. 5837 5838 // Get a definition for wchar_t. But we must not define wchar_t itself. 5839 type T__gwchar_t = int32 /* inttypes.h:34:24 */ 5840 5841 // Macros for printing format specifiers. 5842 5843 // Decimal notation. 5844 5845 // Octal notation. 5846 5847 // Unsigned integers. 5848 5849 // lowercase hexadecimal notation. 5850 5851 // UPPERCASE hexadecimal notation. 5852 5853 // Macros for printing `intmax_t' and `uintmax_t'. 5854 5855 // Macros for printing `intptr_t' and `uintptr_t'. 5856 5857 // Macros for scanning format specifiers. 5858 5859 // Signed decimal notation. 5860 5861 // Signed decimal notation. 5862 5863 // Unsigned decimal notation. 5864 5865 // Octal notation. 5866 5867 // Hexadecimal notation. 5868 5869 // Macros for scanning `intmax_t' and `uintmax_t'. 5870 5871 // Macros for scaning `intptr_t' and `uintptr_t'. 5872 5873 // We have to define the `uintmax_t' type using `ldiv_t'. 5874 type Timaxdiv_t = struct { 5875 Fquot int64 5876 Frem int64 5877 } /* inttypes.h:275:5 */ 5878 5879 // Allow for C++ users compiling this directly. 5880 5881 // The following option bits can be passed to pcre2_compile(), pcre2_match(), 5882 // or pcre2_dfa_match(). PCRE2_NO_UTF_CHECK affects only the function to which it 5883 // is passed. Put these bits at the most significant end of the options word so 5884 // others can be added next to them 5885 5886 // The following option bits can be passed only to pcre2_compile(). However, 5887 // they may affect compilation, JIT compilation, and/or interpretive execution. 5888 // The following tags indicate which: 5889 // 5890 // C alters what is compiled by pcre2_compile() 5891 // J alters what is compiled by pcre2_jit_compile() 5892 // M is inspected during pcre2_match() execution 5893 // D is inspected during pcre2_dfa_match() execution 5894 5895 // An additional compile options word is available in the compile context. 5896 5897 // These are for pcre2_jit_compile(). 5898 5899 // These are for pcre2_match(), pcre2_dfa_match(), pcre2_jit_match(), and 5900 // pcre2_substitute(). Some are allowed only for one of the functions, and in 5901 // these cases it is noted below. Note that PCRE2_ANCHORED, PCRE2_ENDANCHORED and 5902 // PCRE2_NO_UTF_CHECK can also be passed to these functions (though 5903 // pcre2_jit_match() ignores the latter since it bypasses all sanity checks). 5904 5905 // Options for pcre2_pattern_convert(). 5906 5907 // Newline and \R settings, for use in compile contexts. The newline values 5908 // must be kept in step with values set in config.h and both sets must all be 5909 // greater than zero. 5910 5911 // Error codes for pcre2_compile(). Some of these are also used by 5912 // pcre2_pattern_convert(). 5913 5914 // Error 159 is obsolete and should now never occur 5915 5916 // "Expected" matching error codes: no match and partial match. 5917 5918 // Error codes for UTF-8 validity checks 5919 5920 // Error codes for UTF-16 validity checks 5921 5922 // Error codes for UTF-32 validity checks 5923 5924 // Miscellaneous error codes for pcre2[_dfa]_match(), substring extraction 5925 // functions, context functions, and serializing functions. They are in numerical 5926 // order. Originally they were in alphabetical order too, but now that PCRE2 is 5927 // released, the numbers must not be changed. 5928 5929 // Request types for pcre2_pattern_info() 5930 5931 // Request types for pcre2_config(). 5932 5933 // Types for code units in patterns and subject strings. 5934 5935 type TPCRE2_UCHAR8 = Tuint8_t /* pcre2.h:458:18 */ 5936 type TPCRE2_UCHAR16 = Tuint16_t /* pcre2.h:459:18 */ 5937 type TPCRE2_UCHAR32 = Tuint32_t /* pcre2.h:460:18 */ 5938 5939 type TPCRE2_SPTR8 = uintptr /* pcre2.h:462:29 */ 5940 type TPCRE2_SPTR16 = uintptr /* pcre2.h:463:29 */ 5941 type TPCRE2_SPTR32 = uintptr /* pcre2.h:464:29 */ 5942 5943 // The PCRE2_SIZE type is used for all string lengths and offsets in PCRE2, 5944 // including pattern offsets for errors and subject offsets after a match. We 5945 // define special values to indicate zero-terminated strings and unset offsets in 5946 // the offset vector (ovector). 5947 5948 // Generic types for opaque structures and JIT callback functions. These 5949 // declarations are defined in a macro that is expanded for each width later. 5950 5951 // The structures for passing out data via callout functions. We use structures 5952 // so that new fields can be added on the end in future versions, without changing 5953 // the API of the function, thereby allowing old clients to work without 5954 // modification. Define the generic versions in a macro; the width-specific 5955 // versions are generated from this macro below. 5956 5957 // Flags for the callout_flags field. These are cleared after a callout. 5958 5959 // List the generic forms of all other functions in macros, which will be 5960 // expanded for each width below. Start with functions that give general 5961 // information. 5962 5963 // Functions for manipulating contexts. 5964 5965 // Functions concerned with compiling a pattern to PCRE internal code. 5966 5967 // Functions that give information about a compiled pattern. 5968 5969 // Functions for running a match and inspecting the result. 5970 5971 // Convenience functions for handling matched substrings. 5972 5973 // Functions for serializing / deserializing compiled patterns. 5974 5975 // Convenience function for match + substitute. 5976 5977 // Functions for converting pattern source strings. 5978 5979 // Functions for JIT processing 5980 5981 // Other miscellaneous functions. 5982 5983 // Define macros that generate width-specific names from generic versions. The 5984 // three-level macro scheme is necessary to get the macros expanded when we want 5985 // them to be. First we get the width from PCRE2_LOCAL_WIDTH, which is used for 5986 // generating three versions of everything below. After that, PCRE2_SUFFIX will be 5987 // re-defined to use PCRE2_CODE_UNIT_WIDTH, for use when macros such as 5988 // pcre2_compile are called by application code. 5989 5990 // Data types 5991 5992 // Data blocks 5993 5994 // Functions: the complete list in alphabetical order 5995 5996 // Keep this old function name for backwards compatibility 5997 5998 // Keep this obsolete function for backwards compatibility: it is now a noop. 5999 6000 // Now generate all three sets of width-specific structures and function 6001 // prototypes. 6002 6003 type Spcre2_real_general_context_8 = struct{ Fmemctl Tpcre2_memctl } /* pcre2.h:935:1 */ 6004 6005 type Tpcre2_general_context_8 = Spcre2_real_general_context_8 /* pcre2.h:935:1 */ 6006 type Spcre2_real_compile_context_8 = struct { 6007 Fmemctl Tpcre2_memctl 6008 Fstack_guard uintptr 6009 Fstack_guard_data uintptr 6010 Ftables uintptr 6011 Fmax_pattern_length Tsize_t 6012 Fbsr_convention Tuint16_t 6013 Fnewline_convention Tuint16_t 6014 Fparens_nest_limit Tuint32_t 6015 Fextra_options Tuint32_t 6016 F__ccgo_pad1 [4]byte 6017 } /* pcre2.h:935:1 */ 6018 6019 type Tpcre2_compile_context_8 = Spcre2_real_compile_context_8 /* pcre2.h:935:1 */ 6020 type Spcre2_real_match_context_8 = struct { 6021 Fmemctl Tpcre2_memctl 6022 Fcallout uintptr 6023 Fcallout_data uintptr 6024 Fsubstitute_callout uintptr 6025 Fsubstitute_callout_data uintptr 6026 Foffset_limit Tsize_t 6027 Fheap_limit Tuint32_t 6028 Fmatch_limit Tuint32_t 6029 Fdepth_limit Tuint32_t 6030 F__ccgo_pad1 [4]byte 6031 } /* pcre2.h:935:1 */ 6032 6033 type Tpcre2_match_context_8 = Spcre2_real_match_context_8 /* pcre2.h:935:1 */ 6034 type Spcre2_real_convert_context_8 = struct { 6035 Fmemctl Tpcre2_memctl 6036 Fglob_separator Tuint32_t 6037 Fglob_escape Tuint32_t 6038 } /* pcre2.h:935:1 */ 6039 6040 type Tpcre2_convert_context_8 = Spcre2_real_convert_context_8 /* pcre2.h:935:1 */ 6041 type Spcre2_real_code_8 = struct { 6042 Fmemctl Tpcre2_memctl 6043 Ftables uintptr 6044 Fexecutable_jit uintptr 6045 Fstart_bitmap [32]Tuint8_t 6046 Fblocksize Tsize_t 6047 Fmagic_number Tuint32_t 6048 Fcompile_options Tuint32_t 6049 Foverall_options Tuint32_t 6050 Fextra_options Tuint32_t 6051 Fflags Tuint32_t 6052 Flimit_heap Tuint32_t 6053 Flimit_match Tuint32_t 6054 Flimit_depth Tuint32_t 6055 Ffirst_codeunit Tuint32_t 6056 Flast_codeunit Tuint32_t 6057 Fbsr_convention Tuint16_t 6058 Fnewline_convention Tuint16_t 6059 Fmax_lookbehind Tuint16_t 6060 Fminlength Tuint16_t 6061 Ftop_bracket Tuint16_t 6062 Ftop_backref Tuint16_t 6063 Fname_entry_size Tuint16_t 6064 Fname_count Tuint16_t 6065 } /* pcre2.h:935:1 */ 6066 6067 type Tpcre2_code_8 = Spcre2_real_code_8 /* pcre2.h:935:1 */ 6068 type Spcre2_real_match_data_8 = struct { 6069 Fmemctl Tpcre2_memctl 6070 Fcode uintptr 6071 Fsubject TPCRE2_SPTR8 6072 Fmark TPCRE2_SPTR8 6073 Fleftchar Tsize_t 6074 Frightchar Tsize_t 6075 Fstartchar Tsize_t 6076 Fmatchedby Tuint8_t 6077 Fflags Tuint8_t 6078 Foveccount Tuint16_t 6079 Frc int32 6080 Fovector [131072]Tsize_t 6081 } /* pcre2.h:935:1 */ 6082 6083 type Tpcre2_match_data_8 = Spcre2_real_match_data_8 /* pcre2.h:935:1 */ 6084 type Spcre2_real_jit_stack_8 = struct { 6085 Fmemctl Tpcre2_memctl 6086 Fstack uintptr 6087 } /* pcre2.h:935:1 */ 6088 6089 type Tpcre2_jit_stack_8 = Spcre2_real_jit_stack_8 /* pcre2.h:935:1 */ 6090 type Tpcre2_jit_callback_8 = uintptr /* pcre2.h:935:1 */ 6091 type Spcre2_callout_block_8 = struct { 6092 Fversion Tuint32_t 6093 Fcallout_number Tuint32_t 6094 Fcapture_top Tuint32_t 6095 Fcapture_last Tuint32_t 6096 Foffset_vector uintptr 6097 Fmark TPCRE2_SPTR8 6098 Fsubject TPCRE2_SPTR8 6099 Fsubject_length Tsize_t 6100 Fstart_match Tsize_t 6101 Fcurrent_position Tsize_t 6102 Fpattern_position Tsize_t 6103 Fnext_item_length Tsize_t 6104 Fcallout_string_offset Tsize_t 6105 Fcallout_string_length Tsize_t 6106 Fcallout_string TPCRE2_SPTR8 6107 Fcallout_flags Tuint32_t 6108 F__ccgo_pad1 [4]byte 6109 } /* pcre2.h:935:1 */ 6110 6111 type Tpcre2_callout_block_8 = Spcre2_callout_block_8 /* pcre2.h:935:1 */ 6112 type Spcre2_callout_enumerate_block_8 = struct { 6113 Fversion Tuint32_t 6114 F__ccgo_pad1 [4]byte 6115 Fpattern_position Tsize_t 6116 Fnext_item_length Tsize_t 6117 Fcallout_number Tuint32_t 6118 F__ccgo_pad2 [4]byte 6119 Fcallout_string_offset Tsize_t 6120 Fcallout_string_length Tsize_t 6121 Fcallout_string TPCRE2_SPTR8 6122 } /* pcre2.h:935:1 */ 6123 6124 type Tpcre2_callout_enumerate_block_8 = Spcre2_callout_enumerate_block_8 /* pcre2.h:935:1 */ 6125 type Spcre2_substitute_callout_block_8 = struct { 6126 Fversion Tuint32_t 6127 F__ccgo_pad1 [4]byte 6128 Finput TPCRE2_SPTR8 6129 Foutput TPCRE2_SPTR8 6130 Foutput_offsets [2]Tsize_t 6131 Fovector uintptr 6132 Foveccount Tuint32_t 6133 Fsubscount Tuint32_t 6134 } /* pcre2.h:935:1 */ 6135 6136 type Tpcre2_substitute_callout_block_8 = Spcre2_substitute_callout_block_8 /* pcre2.h:935:1 */ 6137 type Tpcre2_jit_callback_16 = uintptr /* pcre2.h:939:1 */ 6138 type Spcre2_callout_block_16 = struct { 6139 Fversion Tuint32_t 6140 Fcallout_number Tuint32_t 6141 Fcapture_top Tuint32_t 6142 Fcapture_last Tuint32_t 6143 Foffset_vector uintptr 6144 Fmark TPCRE2_SPTR16 6145 Fsubject TPCRE2_SPTR16 6146 Fsubject_length Tsize_t 6147 Fstart_match Tsize_t 6148 Fcurrent_position Tsize_t 6149 Fpattern_position Tsize_t 6150 Fnext_item_length Tsize_t 6151 Fcallout_string_offset Tsize_t 6152 Fcallout_string_length Tsize_t 6153 Fcallout_string TPCRE2_SPTR16 6154 Fcallout_flags Tuint32_t 6155 F__ccgo_pad1 [4]byte 6156 } /* pcre2.h:939:1 */ 6157 6158 type Tpcre2_callout_block_16 = Spcre2_callout_block_16 /* pcre2.h:939:1 */ 6159 type Spcre2_callout_enumerate_block_16 = struct { 6160 Fversion Tuint32_t 6161 F__ccgo_pad1 [4]byte 6162 Fpattern_position Tsize_t 6163 Fnext_item_length Tsize_t 6164 Fcallout_number Tuint32_t 6165 F__ccgo_pad2 [4]byte 6166 Fcallout_string_offset Tsize_t 6167 Fcallout_string_length Tsize_t 6168 Fcallout_string TPCRE2_SPTR16 6169 } /* pcre2.h:939:1 */ 6170 6171 type Tpcre2_callout_enumerate_block_16 = Spcre2_callout_enumerate_block_16 /* pcre2.h:939:1 */ 6172 type Spcre2_substitute_callout_block_16 = struct { 6173 Fversion Tuint32_t 6174 F__ccgo_pad1 [4]byte 6175 Finput TPCRE2_SPTR16 6176 Foutput TPCRE2_SPTR16 6177 Foutput_offsets [2]Tsize_t 6178 Fovector uintptr 6179 Foveccount Tuint32_t 6180 Fsubscount Tuint32_t 6181 } /* pcre2.h:939:1 */ 6182 6183 type Tpcre2_substitute_callout_block_16 = Spcre2_substitute_callout_block_16 /* pcre2.h:939:1 */ 6184 type Tpcre2_jit_callback_32 = uintptr /* pcre2.h:943:1 */ 6185 type Spcre2_callout_block_32 = struct { 6186 Fversion Tuint32_t 6187 Fcallout_number Tuint32_t 6188 Fcapture_top Tuint32_t 6189 Fcapture_last Tuint32_t 6190 Foffset_vector uintptr 6191 Fmark TPCRE2_SPTR32 6192 Fsubject TPCRE2_SPTR32 6193 Fsubject_length Tsize_t 6194 Fstart_match Tsize_t 6195 Fcurrent_position Tsize_t 6196 Fpattern_position Tsize_t 6197 Fnext_item_length Tsize_t 6198 Fcallout_string_offset Tsize_t 6199 Fcallout_string_length Tsize_t 6200 Fcallout_string TPCRE2_SPTR32 6201 Fcallout_flags Tuint32_t 6202 F__ccgo_pad1 [4]byte 6203 } /* pcre2.h:943:1 */ 6204 6205 type Tpcre2_callout_block_32 = Spcre2_callout_block_32 /* pcre2.h:943:1 */ 6206 type Spcre2_callout_enumerate_block_32 = struct { 6207 Fversion Tuint32_t 6208 F__ccgo_pad1 [4]byte 6209 Fpattern_position Tsize_t 6210 Fnext_item_length Tsize_t 6211 Fcallout_number Tuint32_t 6212 F__ccgo_pad2 [4]byte 6213 Fcallout_string_offset Tsize_t 6214 Fcallout_string_length Tsize_t 6215 Fcallout_string TPCRE2_SPTR32 6216 } /* pcre2.h:943:1 */ 6217 6218 type Tpcre2_callout_enumerate_block_32 = Spcre2_callout_enumerate_block_32 /* pcre2.h:943:1 */ 6219 type Spcre2_substitute_callout_block_32 = struct { 6220 Fversion Tuint32_t 6221 F__ccgo_pad1 [4]byte 6222 Finput TPCRE2_SPTR32 6223 Foutput TPCRE2_SPTR32 6224 Foutput_offsets [2]Tsize_t 6225 Fovector uintptr 6226 Foveccount Tuint32_t 6227 Fsubscount Tuint32_t 6228 } /* pcre2.h:943:1 */ 6229 6230 type Tpcre2_substitute_callout_block_32 = Spcre2_substitute_callout_block_32 /* pcre2.h:943:1 */ 6231 6232 // *** NOTE NOTE NOTE *** Whenever the list above is updated, the two macro 6233 // definitions that follow must also be updated to match. There are also tables 6234 // called "opcode_possessify" in pcre2_compile.c and "coptable" and "poptable" in 6235 // pcre2_dfa_match.c that must be updated. 6236 6237 // This macro defines textual names for all the opcodes. These are used only 6238 // for debugging, and some of them are only partial names. The macro is referenced 6239 // only in pcre2_printint.c, which fills out the full names in many cases (and in 6240 // some cases doesn't actually use these names at all). 6241 6242 // This macro defines the length of fixed length operations in the compiled 6243 // regex. The lengths are used when searching for specific things, and also in the 6244 // debugging printing of a compiled regex. We use a macro so that it can be 6245 // defined close to the definitions of the opcodes themselves. 6246 // 6247 // As things have been extended, some of these are no longer fixed lenths, but are 6248 // minima instead. For example, the length of a single-character repeat may vary 6249 // in UTF-8 mode. The code that uses this table must know about such things. 6250 6251 // A magic value for OP_RREF to indicate the "any recursion" condition. 6252 6253 // ---------- Private structures that are mode-independent. ---------- 6254 6255 // Structure to hold data for custom memory management. 6256 6257 type Spcre2_memctl = struct { 6258 Fmalloc uintptr 6259 Ffree uintptr 6260 Fmemory_data uintptr 6261 } /* pcre2.h:935:1 */ 6262 6263 // *** NOTE NOTE NOTE *** Whenever the list above is updated, the two macro 6264 // definitions that follow must also be updated to match. There are also tables 6265 // called "opcode_possessify" in pcre2_compile.c and "coptable" and "poptable" in 6266 // pcre2_dfa_match.c that must be updated. 6267 6268 // This macro defines textual names for all the opcodes. These are used only 6269 // for debugging, and some of them are only partial names. The macro is referenced 6270 // only in pcre2_printint.c, which fills out the full names in many cases (and in 6271 // some cases doesn't actually use these names at all). 6272 6273 // This macro defines the length of fixed length operations in the compiled 6274 // regex. The lengths are used when searching for specific things, and also in the 6275 // debugging printing of a compiled regex. We use a macro so that it can be 6276 // defined close to the definitions of the opcodes themselves. 6277 // 6278 // As things have been extended, some of these are no longer fixed lenths, but are 6279 // minima instead. For example, the length of a single-character repeat may vary 6280 // in UTF-8 mode. The code that uses this table must know about such things. 6281 6282 // A magic value for OP_RREF to indicate the "any recursion" condition. 6283 6284 // ---------- Private structures that are mode-independent. ---------- 6285 6286 // Structure to hold data for custom memory management. 6287 6288 type Tpcre2_memctl = Spcre2_memctl /* pcre2_internal.h:1794:3 */ 6289 6290 // Structure for building a chain of open capturing subpatterns during 6291 // compiling, so that instructions to close them can be compiled when (*ACCEPT) is 6292 // encountered. 6293 6294 type Sopen_capitem = struct { 6295 Fnext uintptr 6296 Fnumber Tuint16_t 6297 Fassert_depth Tuint16_t 6298 F__ccgo_pad1 [4]byte 6299 } /* pcre2_internal.h:1800:9 */ 6300 6301 // Structure for building a chain of open capturing subpatterns during 6302 // compiling, so that instructions to close them can be compiled when (*ACCEPT) is 6303 // encountered. 6304 6305 type Topen_capitem = Sopen_capitem /* pcre2_internal.h:1804:3 */ 6306 6307 // Layout of the UCP type table that translates property names into types and 6308 // codes. Each entry used to point directly to a name, but to reduce the number of 6309 // relocations in shared libraries, it now has an offset into a single string 6310 // instead. 6311 6312 type Tucp_type_table = struct { 6313 Fname_offset Tuint16_t 6314 Ftype Tuint16_t 6315 Fvalue Tuint16_t 6316 } /* pcre2_internal.h:1815:3 */ 6317 6318 // Unicode character database (UCD) record format 6319 6320 type Tucd_record = struct { 6321 Fscript Tuint8_t 6322 Fchartype Tuint8_t 6323 Fgbprop Tuint8_t 6324 Fcaseset Tuint8_t 6325 Fother_case Tint32_t 6326 Fscriptx_bidiclass Tuint16_t 6327 Fbprops Tuint16_t 6328 } /* pcre2_internal.h:1827:3 */ 6329 6330 // UCD access macros 6331 6332 // The "scriptx" and bprops fields contain offsets into vectors of 32-bit words 6333 // that form a bitmap representing a list of scripts or boolean properties. These 6334 // macros test or set a bit in the map by number. 6335 6336 // Header for serialized pcre2 codes. 6337 6338 type Spcre2_serialized_data = struct { 6339 Fmagic Tuint32_t 6340 Fversion Tuint32_t 6341 Fconfig Tuint32_t 6342 Fnumber_of_codes Tint32_t 6343 } /* pcre2_internal.h:1870:9 */ 6344 6345 // UCD access macros 6346 6347 // The "scriptx" and bprops fields contain offsets into vectors of 32-bit words 6348 // that form a bitmap representing a list of scripts or boolean properties. These 6349 // macros test or set a bit in the map by number. 6350 6351 // Header for serialized pcre2 codes. 6352 6353 type Tpcre2_serialized_data = Spcre2_serialized_data /* pcre2_internal.h:1875:3 */ 6354 6355 // Mode-dependent macros and hidden and private structures are defined in a 6356 // separate file so that pcre2test can include them at all supported widths. When 6357 // compiling the library, PCRE2_CODE_UNIT_WIDTH will be defined, and we can 6358 // include them at the appropriate width, after setting up suffix macros for the 6359 // private structures. 6360 6361 // ************************************************ 6362 // 6363 // Perl-Compatible Regular Expressions * 6364 // 6365 6366 // PCRE is a library of functions to support regular expressions whose syntax 6367 // and semantics are as close as possible to those of the Perl 5 language. 6368 // 6369 // Written by Philip Hazel 6370 // Original API code Copyright (c) 1997-2012 University of Cambridge 6371 // New API code Copyright (c) 2016-2018 University of Cambridge 6372 // 6373 // ----------------------------------------------------------------------------- 6374 // Redistribution and use in source and binary forms, with or without 6375 // modification, are permitted provided that the following conditions are met: 6376 // 6377 // * Redistributions of source code must retain the above copyright notice, 6378 // this list of conditions and the following disclaimer. 6379 // 6380 // * Redistributions in binary form must reproduce the above copyright 6381 // notice, this list of conditions and the following disclaimer in the 6382 // documentation and/or other materials provided with the distribution. 6383 // 6384 // * Neither the name of the University of Cambridge nor the names of its 6385 // contributors may be used to endorse or promote products derived from 6386 // this software without specific prior written permission. 6387 // 6388 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 6389 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 6390 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 6391 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 6392 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 6393 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 6394 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 6395 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 6396 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 6397 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 6398 // POSSIBILITY OF SUCH DAMAGE. 6399 // ----------------------------------------------------------------------------- 6400 6401 // This module contains mode-dependent macro and structure definitions. The 6402 // file is #included by pcre2_internal.h if PCRE2_CODE_UNIT_WIDTH is defined. 6403 // These mode-dependent items are kept in a separate file so that they can also be 6404 // #included multiple times for different code unit widths by pcre2test in order 6405 // to have access to the hidden structures at all supported widths. 6406 // 6407 // Some of the mode-dependent macros are required at different widths for 6408 // different parts of the pcre2test code (in particular, the included 6409 // pcre_printint.c file). We undefine them here so that they can be re-defined for 6410 // multiple inclusions. Not all of these are used in pcre2test, but it's easier 6411 // just to undefine them all. 6412 6413 // -------------------------- MACROS ----------------------------- 6414 6415 // PCRE keeps offsets in its compiled code as at least 16-bit quantities 6416 // (always stored in big-endian order in 8-bit mode) by default. These are used, 6417 // for example, to link from the start of a subpattern to its alternatives and its 6418 // end. The use of 16 bits per offset limits the size of an 8-bit compiled regex 6419 // to around 64K, which is big enough for almost everybody. However, I received a 6420 // request for an even bigger limit. For this reason, and also to make the code 6421 // easier to maintain, the storing and loading of offsets from the compiled code 6422 // unit string is now handled by the macros that are defined here. 6423 // 6424 // The macros are controlled by the value of LINK_SIZE. This defaults to 2, but 6425 // values of 3 or 4 are also supported. 6426 6427 // ------------------- 8-bit support ------------------ 6428 6429 // ------------------- 16-bit support ------------------ 6430 6431 // --------------- Other mode-specific macros ----------------- 6432 6433 // PCRE uses some other (at least) 16-bit quantities that do not change when 6434 // the size of offsets changes. There are used for repeat counts and for other 6435 // things such as capturing parenthesis numbers in back references. 6436 // 6437 // Define the number of code units required to hold a 16-bit count/offset, and 6438 // macros to load and store such a value. For reasons that I do not understand, 6439 // the expression in the 8-bit GET2 macro is treated by gcc as a signed 6440 // expression, even when a is declared as unsigned. It seems that any kind of 6441 // arithmetic results in a signed value. Hence the cast. 6442 6443 // Other macros that are different for 8-bit mode. The MAX_255 macro checks 6444 // whether its argument, which is assumed to be one code unit, is less than 256. 6445 // The CHMAX_255 macro does not assume one code unit. The maximum length of a MARK 6446 // name must fit in one code unit; currently it is set to 255 or 65535. The 6447 // TABLE_GET macro is used to access elements of tables containing exactly 256 6448 // items. Its argument is a code unit. When code points can be greater than 255, a 6449 // check is needed before accessing these tables. 6450 6451 // ----------------- Character-handling macros ----------------- 6452 6453 // There is a proposed future special "UTF-21" mode, in which only the lowest 6454 // 21 bits of a 32-bit character are interpreted as UTF, with the remaining 11 6455 // high-order bits available to the application for other uses. In preparation for 6456 // the future implementation of this mode, there are macros that load a data item 6457 // and, if in this special mode, mask it to 21 bits. These macros all have names 6458 // starting with UCHAR21. In all other modes, including the normal 32-bit 6459 // library, the macros all have the same simple definitions. When the new mode is 6460 // implemented, it is expected that these definitions will be varied appropriately 6461 // using #ifdef when compiling the library that supports the special mode. 6462 6463 // When UTF encoding is being used, a character is no longer just a single 6464 // byte in 8-bit mode or a single short in 16-bit mode. The macros for character 6465 // handling generate simple sequences when used in the basic mode, and more 6466 // complicated ones for UTF characters. GETCHARLENTEST and other macros are not 6467 // used when UTF is not supported. To make sure they can never even appear when 6468 // UTF support is omitted, we don't even define them. 6469 6470 // ------------------- 8-bit support ------------------ 6471 6472 // The largest UTF code point that can be encoded as a single code unit. 6473 6474 // Tests whether the code point needs extra characters to decode. 6475 6476 // Returns with the additional number of characters if IS_MULTICHAR(c) is TRUE. 6477 // Otherwise it has an undefined behaviour. 6478 6479 // Returns TRUE, if the given value is not the first code unit of a UTF 6480 // sequence. 6481 6482 // Get the next UTF-8 character, not advancing the pointer. This is called when 6483 // we know we are in UTF-8 mode. 6484 6485 // Get the next UTF-8 character, testing for UTF-8 mode, and not advancing the 6486 // pointer. 6487 6488 // Get the next UTF-8 character, advancing the pointer. This is called when we 6489 // know we are in UTF-8 mode. 6490 6491 // Get the next character, testing for UTF-8 mode, and advancing the pointer. 6492 // This is called when we don't know if we are in UTF-8 mode. 6493 6494 // Get the next UTF-8 character, not advancing the pointer, incrementing length 6495 // if there are extra bytes. This is called when we know we are in UTF-8 mode. 6496 6497 // Get the next UTF-8 character, testing for UTF-8 mode, not advancing the 6498 // pointer, incrementing length if there are extra bytes. This is called when we 6499 // do not know if we are in UTF-8 mode. 6500 6501 // If the pointer is not at the start of a character, move it back until 6502 // it is. This is called only in UTF-8 mode - we don't put a test within the macro 6503 // because almost all calls are already within a block of UTF-8 only code. 6504 6505 // Same as above, just in the other direction. 6506 6507 // Same as above, but it allows a fully customizable form. 6508 6509 // Deposit a character into memory, returning the number of code units. 6510 6511 // ------------------- 16-bit support ------------------ 6512 6513 // Mode-dependent macros that have the same definition in all modes. 6514 6515 // ----------------------- HIDDEN STRUCTURES ----------------------------- 6516 6517 // NOTE: All these structures *must* start with a pcre2_memctl structure. The 6518 // code that uses them is simpler because it assumes this. 6519 6520 // The real general context structure. At present it holds only data for custom 6521 // memory control. 6522 6523 type Tpcre2_real_general_context_8 = Spcre2_real_general_context_8 /* pcre2_intmodedep.h:561:3 */ 6524 6525 // The real compile context structure 6526 6527 type Tpcre2_real_compile_context_8 = Spcre2_real_compile_context_8 /* pcre2_intmodedep.h:575:3 */ 6528 6529 // The real match context structure. 6530 6531 type Tpcre2_real_match_context_8 = Spcre2_real_match_context_8 /* pcre2_intmodedep.h:593:3 */ 6532 6533 // The real convert context structure. 6534 6535 type Tpcre2_real_convert_context_8 = Spcre2_real_convert_context_8 /* pcre2_intmodedep.h:601:3 */ 6536 6537 // The real compiled code structure. The type for the blocksize field is 6538 // defined specially because it is required in pcre2_serialize_decode() when 6539 // copying the size from possibly unaligned memory into a variable of the same 6540 // type. Use a macro rather than a typedef to avoid compiler warnings when this 6541 // file is included multiple times by pcre2test. LOOKBEHIND_MAX specifies the 6542 // largest lookbehind that is supported. (OP_REVERSE in a pattern has a 16-bit 6543 // argument in 8-bit and 16-bit modes, so we need no more than a 16-bit field 6544 // here.) 6545 6546 type Tpcre2_real_code_8 = Spcre2_real_code_8 /* pcre2_intmodedep.h:642:3 */ 6547 6548 // The real match data structure. Define ovector as large as it can ever 6549 // actually be so that array bound checkers don't grumble. Memory for this 6550 // structure is obtained by calling pcre2_match_data_create(), which sets the size 6551 // as the offset of ovector plus a pair of elements for each capturable string, so 6552 // the size varies from call to call. As the maximum number of capturing 6553 // subpatterns is 65535 we must allow for 65536 strings to include the overall 6554 // match. (See also the heapframe structure below.) 6555 6556 type Tpcre2_real_match_data_8 = Spcre2_real_match_data_8 /* pcre2_intmodedep.h:665:3 */ 6557 6558 // ----------------------- PRIVATE STRUCTURES ----------------------------- 6559 6560 // These structures are not needed for pcre2test. 6561 6562 // Structures for checking for mutual recursion when scanning compiled or 6563 // parsed code. 6564 6565 type Srecurse_check = struct { 6566 Fprev uintptr 6567 Fgroup TPCRE2_SPTR8 6568 } /* pcre2_intmodedep.h:677:9 */ 6569 6570 // ----------------------- PRIVATE STRUCTURES ----------------------------- 6571 6572 // These structures are not needed for pcre2test. 6573 6574 // Structures for checking for mutual recursion when scanning compiled or 6575 // parsed code. 6576 6577 type Trecurse_check = Srecurse_check /* pcre2_intmodedep.h:680:3 */ 6578 6579 type Sparsed_recurse_check = struct { 6580 Fprev uintptr 6581 Fgroupptr uintptr 6582 } /* pcre2_intmodedep.h:682:9 */ 6583 6584 type Tparsed_recurse_check = Sparsed_recurse_check /* pcre2_intmodedep.h:685:3 */ 6585 6586 // Structure for building a cache when filling in recursion offsets. 6587 6588 type Srecurse_cache = struct { 6589 Fgroup TPCRE2_SPTR8 6590 Fgroupnumber int32 6591 F__ccgo_pad1 [4]byte 6592 } /* pcre2_intmodedep.h:689:9 */ 6593 6594 // Structure for building a cache when filling in recursion offsets. 6595 6596 type Trecurse_cache = Srecurse_cache /* pcre2_intmodedep.h:692:3 */ 6597 6598 // Structure for maintaining a chain of pointers to the currently incomplete 6599 // branches, for testing for left recursion while compiling. 6600 6601 type Sbranch_chain_8 = struct { 6602 Fouter uintptr 6603 Fcurrent_branch uintptr 6604 } /* pcre2_intmodedep.h:697:9 */ 6605 6606 // Structure for maintaining a chain of pointers to the currently incomplete 6607 // branches, for testing for left recursion while compiling. 6608 6609 type Tbranch_chain_8 = Sbranch_chain_8 /* pcre2_intmodedep.h:700:3 */ 6610 6611 // Structure for building a list of named groups during the first pass of 6612 // compiling. 6613 6614 type Snamed_group_8 = struct { 6615 Fname TPCRE2_SPTR8 6616 Fnumber Tuint32_t 6617 Flength Tuint16_t 6618 Fisdup Tuint16_t 6619 } /* pcre2_intmodedep.h:705:9 */ 6620 6621 // Structure for building a list of named groups during the first pass of 6622 // compiling. 6623 6624 type Tnamed_group_8 = Snamed_group_8 /* pcre2_intmodedep.h:710:3 */ 6625 6626 // Structure for passing "static" information around between the functions 6627 // doing the compiling, so that they are thread-safe. 6628 6629 type Scompile_block_8 = struct { 6630 Fcx uintptr 6631 Flcc uintptr 6632 Ffcc uintptr 6633 Fcbits uintptr 6634 Fctypes uintptr 6635 Fstart_workspace TPCRE2_SPTR8 6636 Fstart_code TPCRE2_SPTR8 6637 Fstart_pattern TPCRE2_SPTR8 6638 Fend_pattern TPCRE2_SPTR8 6639 Fname_table uintptr 6640 Fworkspace_size Tsize_t 6641 Fsmall_ref_offset [10]Tsize_t 6642 Ferroroffset Tsize_t 6643 Fnames_found Tuint16_t 6644 Fname_entry_size Tuint16_t 6645 Fparens_depth Tuint16_t 6646 Fassert_depth Tuint16_t 6647 Fopen_caps uintptr 6648 Fnamed_groups uintptr 6649 Fnamed_group_list_size Tuint32_t 6650 Fexternal_options Tuint32_t 6651 Fexternal_flags Tuint32_t 6652 Fbracount Tuint32_t 6653 Flastcapture Tuint32_t 6654 F__ccgo_pad1 [4]byte 6655 Fparsed_pattern uintptr 6656 Fparsed_pattern_end uintptr 6657 Fgroupinfo uintptr 6658 Ftop_backref Tuint32_t 6659 Fbackref_map Tuint32_t 6660 Fnltype Tuint32_t 6661 Fnllen Tuint32_t 6662 Fclass_range_start Tuint32_t 6663 Fclass_range_end Tuint32_t 6664 Fnl [4]TPCRE2_UCHAR8 6665 Freq_varyopt Tuint32_t 6666 Fmax_lookbehind int32 6667 Fhad_accept TBOOL 6668 Fhad_pruneorskip TBOOL 6669 Fhad_recurse TBOOL 6670 Fdupnames TBOOL 6671 F__ccgo_pad2 [4]byte 6672 } /* pcre2_intmodedep.h:715:9 */ 6673 6674 // Structure for passing "static" information around between the functions 6675 // doing the compiling, so that they are thread-safe. 6676 6677 type Tcompile_block_8 = Scompile_block_8 /* pcre2_intmodedep.h:756:3 */ 6678 6679 // Structure for keeping the properties of the in-memory stack used 6680 // by the JIT matcher. 6681 6682 type Tpcre2_real_jit_stack_8 = Spcre2_real_jit_stack_8 /* pcre2_intmodedep.h:764:3 */ 6683 6684 // Structure for items in a linked list that represents an explicit recursive 6685 // call within the pattern when running pcre2_dfa_match(). 6686 6687 type Sdfa_recursion_info = struct { 6688 Fprevrec uintptr 6689 Fsubject_position TPCRE2_SPTR8 6690 Fgroup_num Tuint32_t 6691 F__ccgo_pad1 [4]byte 6692 } /* pcre2_intmodedep.h:769:9 */ 6693 6694 // Structure for items in a linked list that represents an explicit recursive 6695 // call within the pattern when running pcre2_dfa_match(). 6696 6697 type Tdfa_recursion_info = Sdfa_recursion_info /* pcre2_intmodedep.h:773:3 */ 6698 6699 // Structure for "stack" frames that are used for remembering backtracking 6700 // positions during matching. As these are used in a vector, with the ovector item 6701 // being extended, the size of the structure must be a multiple of PCRE2_SIZE. The 6702 // only way to check this at compile time is to force an error by generating an 6703 // array with a negative size. By putting this in a typedef (which is never used), 6704 // we don't generate any code when all is well. 6705 6706 type Sheapframe = struct { 6707 Fecode TPCRE2_SPTR8 6708 Ftemp_sptr [2]TPCRE2_SPTR8 6709 Flength Tsize_t 6710 Fback_frame Tsize_t 6711 Ftemp_size Tsize_t 6712 Frdepth Tuint32_t 6713 Fgroup_frame_type Tuint32_t 6714 Ftemp_32 [4]Tuint32_t 6715 Freturn_id Tuint8_t 6716 Fop Tuint8_t 6717 Foccu [6]TPCRE2_UCHAR8 6718 Feptr TPCRE2_SPTR8 6719 Fstart_match TPCRE2_SPTR8 6720 Fmark TPCRE2_SPTR8 6721 Fcurrent_recurse Tuint32_t 6722 Fcapture_last Tuint32_t 6723 Flast_group_offset Tsize_t 6724 Foffset_top Tsize_t 6725 Fovector [131072]Tsize_t 6726 } /* pcre2_intmodedep.h:782:9 */ 6727 6728 // Structure for "stack" frames that are used for remembering backtracking 6729 // positions during matching. As these are used in a vector, with the ovector item 6730 // being extended, the size of the structure must be a multiple of PCRE2_SIZE. The 6731 // only way to check this at compile time is to force an error by generating an 6732 // array with a negative size. By putting this in a typedef (which is never used), 6733 // we don't generate any code when all is well. 6734 6735 type Theapframe = Sheapframe /* pcre2_intmodedep.h:833:3 */ 6736 6737 // This typedef is a check that the size of the heapframe structure is a 6738 // multiple of PCRE2_SIZE. See various comments above. 6739 6740 type Tcheck_heapframe_size = [1]int8 /* pcre2_intmodedep.h:838:14 */ 6741 6742 // Structure for computing the alignment of heapframe. 6743 6744 type Sheapframe_align = struct { 6745 Funalign int8 6746 F__ccgo_pad1 [7]byte 6747 Fframe Theapframe 6748 } /* pcre2_intmodedep.h:843:9 */ 6749 6750 // Structure for computing the alignment of heapframe. 6751 6752 type Theapframe_align = Sheapframe_align /* pcre2_intmodedep.h:846:3 */ 6753 6754 // This define is the minimum alignment required for a heapframe, in bytes. 6755 6756 // Structure for passing "static" information around between the functions 6757 // doing traditional NFA matching (pcre2_match() and friends). 6758 6759 type Smatch_block_8 = struct { 6760 Fmemctl Tpcre2_memctl 6761 Fframe_vector_size Tsize_t 6762 Fmatch_frames uintptr 6763 Fmatch_frames_top uintptr 6764 Fstack_frames uintptr 6765 Fheap_limit Tsize_t 6766 Fmatch_limit Tuint32_t 6767 Fmatch_limit_depth Tuint32_t 6768 Fmatch_call_count Tuint32_t 6769 Fhitend TBOOL 6770 Fhasthen TBOOL 6771 Fallowemptypartial TBOOL 6772 Flcc uintptr 6773 Ffcc uintptr 6774 Fctypes uintptr 6775 Fstart_offset Tsize_t 6776 Fend_offset_top Tsize_t 6777 Fpartial Tuint16_t 6778 Fbsr_convention Tuint16_t 6779 Fname_count Tuint16_t 6780 Fname_entry_size Tuint16_t 6781 Fname_table TPCRE2_SPTR8 6782 Fstart_code TPCRE2_SPTR8 6783 Fstart_subject TPCRE2_SPTR8 6784 Fcheck_subject TPCRE2_SPTR8 6785 Fend_subject TPCRE2_SPTR8 6786 Fend_match_ptr TPCRE2_SPTR8 6787 Fstart_used_ptr TPCRE2_SPTR8 6788 Flast_used_ptr TPCRE2_SPTR8 6789 Fmark TPCRE2_SPTR8 6790 Fnomatch_mark TPCRE2_SPTR8 6791 Fverb_ecode_ptr TPCRE2_SPTR8 6792 Fverb_skip_ptr TPCRE2_SPTR8 6793 Fverb_current_recurse Tuint32_t 6794 Fmoptions Tuint32_t 6795 Fpoptions Tuint32_t 6796 Fskip_arg_count Tuint32_t 6797 Fignore_skip_arg Tuint32_t 6798 Fnltype Tuint32_t 6799 Fnllen Tuint32_t 6800 Fnl [4]TPCRE2_UCHAR8 6801 Fcb uintptr 6802 Fcallout_data uintptr 6803 Fcallout uintptr 6804 } /* pcre2_intmodedep.h:855:9 */ 6805 6806 // This define is the minimum alignment required for a heapframe, in bytes. 6807 6808 // Structure for passing "static" information around between the functions 6809 // doing traditional NFA matching (pcre2_match() and friends). 6810 6811 type Tmatch_block_8 = Smatch_block_8 /* pcre2_intmodedep.h:900:3 */ 6812 6813 // A similar structure is used for the same purpose by the DFA matching 6814 // functions. 6815 6816 type Sdfa_match_block_8 = struct { 6817 Fmemctl Tpcre2_memctl 6818 Fstart_code TPCRE2_SPTR8 6819 Fstart_subject TPCRE2_SPTR8 6820 Fend_subject TPCRE2_SPTR8 6821 Fstart_used_ptr TPCRE2_SPTR8 6822 Flast_used_ptr TPCRE2_SPTR8 6823 Ftables uintptr 6824 Fstart_offset Tsize_t 6825 Fheap_limit Tsize_t 6826 Fheap_used Tsize_t 6827 Fmatch_limit Tuint32_t 6828 Fmatch_limit_depth Tuint32_t 6829 Fmatch_call_count Tuint32_t 6830 Fmoptions Tuint32_t 6831 Fpoptions Tuint32_t 6832 Fnltype Tuint32_t 6833 Fnllen Tuint32_t 6834 Fallowemptypartial TBOOL 6835 Fnl [4]TPCRE2_UCHAR8 6836 Fbsr_convention Tuint16_t 6837 F__ccgo_pad1 [2]byte 6838 Fcb uintptr 6839 Fcallout_data uintptr 6840 Fcallout uintptr 6841 Frecursive uintptr 6842 } /* pcre2_intmodedep.h:905:9 */ 6843 6844 // A similar structure is used for the same purpose by the DFA matching 6845 // functions. 6846 6847 type Tdfa_match_block_8 = Sdfa_match_block_8 /* pcre2_intmodedep.h:930:3 */ 6848 6849 // This function is needed only when memmove() is not available. 6850 6851 // End of pcre2_internal.h 6852 6853 // ************************************************ 6854 // 6855 // Tables for auto-possessification * 6856 // 6857 6858 // This table is used to check whether auto-possessification is possible 6859 // between adjacent character-type opcodes. The left-hand (repeated) opcode is 6860 // used to select the row, and the right-hand opcode is use to select the column. 6861 // A value of 1 means that auto-possessification is OK. For example, the second 6862 // value in the first row means that \D+\d can be turned into \D++\d. 6863 // 6864 // The Unicode property types (\P and \p) have to be present to fill out the table 6865 // because of what their opcode values are, but the table values should always be 6866 // zero because property types are handled separately in the code. The last four 6867 // columns apply to items that cannot be repeated, so there is no need to have 6868 // rows for them. Note that OP_DIGIT etc. are generated only when PCRE_UCP is 6869 // *not* set. When it is set, \d etc. are converted into OP_(NOT_)PROP codes. 6870 6871 var autoposstab = [17][21]Tuint8_t{ 6872 // \D \d \S \s \W \w . .+ \C \P \p \R \H \h \V \v \X \Z \z $ $M 6873 {Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0)}, // \D 6874 {Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1)}, // \d 6875 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1)}, // \S 6876 {Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0)}, // \s 6877 {Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0)}, // \W 6878 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1)}, // \w 6879 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0)}, // . 6880 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0)}, // .+ 6881 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0)}, // \C 6882 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0)}, // \P 6883 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0)}, // \p 6884 {Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0)}, // \R 6885 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0)}, // \H 6886 {Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0)}, // \h 6887 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0)}, // \V 6888 {Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0)}, // \v 6889 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0)}, // \X 6890 } /* pcre2_auto_possess.c:73:22 */ 6891 6892 // This table is used to check whether auto-possessification is possible 6893 // between adjacent Unicode property opcodes (OP_PROP and OP_NOTPROP). The 6894 // left-hand (repeated) opcode is used to select the row, and the right-hand 6895 // opcode is used to select the column. The values are as follows: 6896 // 6897 // 0 Always return FALSE (never auto-possessify) 6898 // 1 Character groups are distinct (possessify if both are OP_PROP) 6899 // 2 Check character categories in the same group (general or particular) 6900 // 3 TRUE if the two opcodes are not the same (PROP vs NOTPROP) 6901 // 6902 // 4 Check left general category vs right particular category 6903 // 5 Check right general category vs left particular category 6904 // 6905 // 6 Left alphanum vs right general category 6906 // 7 Left space vs right general category 6907 // 8 Left word vs right general category 6908 // 6909 // 9 Right alphanum vs left general category 6910 // 10 Right space vs left general category 6911 // 11 Right word vs left general category 6912 // 6913 // 12 Left alphanum vs right particular category 6914 // 13 Left space vs right particular category 6915 // 14 Left word vs right particular category 6916 // 6917 // 15 Right alphanum vs left particular category 6918 // 16 Right space vs left particular category 6919 // 17 Right word vs left particular category 6920 6921 var propposstab = [14][14]Tuint8_t{ 6922 // ANY LAMP GC PC SC SCX ALNUM SPACE PXSPACE WORD CLIST UCNC BIDICL BOOL 6923 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0)}, // PT_ANY 6924 {Tuint8_t(0), Tuint8_t(3), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(3), Tuint8_t(1), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0)}, // PT_LAMP 6925 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(2), Tuint8_t(4), Tuint8_t(0), Tuint8_t(0), Tuint8_t(9), Tuint8_t(10), Tuint8_t(10), Tuint8_t(11), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0)}, // PT_GC 6926 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(5), Tuint8_t(2), Tuint8_t(0), Tuint8_t(0), Tuint8_t(15), Tuint8_t(16), Tuint8_t(16), Tuint8_t(17), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0)}, // PT_PC 6927 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(2), Tuint8_t(2), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0)}, // PT_SC 6928 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(2), Tuint8_t(2), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0)}, // PT_SCX 6929 {Tuint8_t(0), Tuint8_t(3), Tuint8_t(6), Tuint8_t(12), Tuint8_t(0), Tuint8_t(0), Tuint8_t(3), Tuint8_t(1), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0)}, // PT_ALNUM 6930 {Tuint8_t(0), Tuint8_t(1), Tuint8_t(7), Tuint8_t(13), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(3), Tuint8_t(3), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0)}, // PT_SPACE 6931 {Tuint8_t(0), Tuint8_t(1), Tuint8_t(7), Tuint8_t(13), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(3), Tuint8_t(3), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0)}, // PT_PXSPACE 6932 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(8), Tuint8_t(14), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(3), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0)}, // PT_WORD 6933 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0)}, // PT_CLIST 6934 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(3), Tuint8_t(0), Tuint8_t(0)}, // PT_UCNC 6935 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0)}, // PT_BIDICL 6936 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0)}, // PT_BOOL 6937 } /* pcre2_auto_possess.c:125:22 */ 6938 6939 // This table is used to check whether auto-possessification is possible 6940 // between adjacent Unicode property opcodes (OP_PROP and OP_NOTPROP) when one 6941 // specifies a general category and the other specifies a particular category. The 6942 // row is selected by the general category and the column by the particular 6943 // category. The value is 1 if the particular category is not part of the general 6944 // category. 6945 6946 var catposstab = [7][30]Tuint8_t{ 6947 // Cc Cf Cn Co Cs Ll Lm Lo Lt Lu Mc Me Mn Nd Nl No Pc Pd Pe Pf Pi Po Ps Sc Sk Sm So Zl Zp Zs 6948 {Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1)}, // C 6949 {Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1)}, // L 6950 {Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1)}, // M 6951 {Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1)}, // N 6952 {Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1)}, // P 6953 {Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1)}, // S 6954 {Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0)}, // Z 6955 } /* pcre2_auto_possess.c:150:22 */ 6956 6957 // This table is used when checking ALNUM, (PX)SPACE, SPACE, and WORD against 6958 // a general or particular category. The properties in each row are those 6959 // that apply to the character set in question. Duplication means that a little 6960 // unnecessary work is done when checking, but this keeps things much simpler 6961 // because they can all use the same code. For more details see the comment where 6962 // this table is used. 6963 // 6964 // Note: SPACE and PXSPACE used to be different because Perl excluded VT from 6965 // "space", but from Perl 5.18 it's included, so both categories are treated the 6966 // same here. 6967 6968 var posspropstab = [3][4]Tuint8_t{ 6969 {ucp_L, ucp_N, ucp_N, ucp_Nl}, // ALNUM, 3rd and 4th values redundant 6970 {ucp_Z, ucp_Z, ucp_C, ucp_Cc}, // SPACE and PXSPACE, 2nd value redundant 6971 {ucp_L, ucp_N, ucp_P, ucp_Po}, // WORD 6972 } /* pcre2_auto_possess.c:172:22 */ 6973 6974 // ************************************************ 6975 // 6976 // Check a character and a property * 6977 // 6978 6979 // This function is called by compare_opcodes() when a property item is 6980 // adjacent to a fixed character. 6981 // 6982 // Arguments: 6983 // c the character 6984 // ptype the property type 6985 // pdata the data for the type 6986 // negated TRUE if it's a negated property (\P or \p{^) 6987 // 6988 // Returns: TRUE if auto-possessifying is OK 6989 6990 func check_char_prop(tls *libc.TLS, c Tuint32_t, ptype uint32, pdata uint32, negated TBOOL) TBOOL { /* pcre2_auto_possess.c:199:1: */ 6991 var ok TBOOL 6992 var p uintptr 6993 var prop uintptr = uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12 6994 6995 switch ptype { 6996 case uint32(DPT_LAMP): 6997 return libc.Bool32(libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) == ucp_Lu || int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) == ucp_Ll || int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) == ucp_Lt) == negated) 6998 6999 case uint32(DPT_GC): 7000 return libc.Bool32(libc.Bool32(pdata == X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype]) == negated) 7001 7002 case uint32(DPT_PC): 7003 return libc.Bool32(libc.Bool32(pdata == uint32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype)) == negated) 7004 7005 case uint32(DPT_SC): 7006 return libc.Bool32(libc.Bool32(pdata == uint32((*Tucd_record)(unsafe.Pointer(prop)).Fscript)) == negated) 7007 7008 case uint32(DPT_SCX): 7009 ok = libc.Bool32(pdata == uint32((*Tucd_record)(unsafe.Pointer(prop)).Fscript) || 7010 *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_script_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop)).Fscriptx_bidiclass)&DUCD_SCRIPTX_MASK)*4 + uintptr(pdata/uint32(32))*4))&(uint32(1)<<(pdata%uint32(32))) != Tuint32_t(0)) 7011 return libc.Bool32(ok == negated) 7012 7013 // These are specials 7014 7015 case uint32(DPT_ALNUM): 7016 return libc.Bool32(libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_L || X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_N) == negated) 7017 7018 // Perl space used to exclude VT, but from Perl 5.18 it is included, which 7019 // means that Perl space and POSIX space are now identical. PCRE was changed 7020 // at release 8.34. 7021 7022 case uint32(DPT_SPACE): 7023 fallthrough // Perl space 7024 case uint32(DPT_PXSPACE): // POSIX space 7025 switch c { 7026 case Tuint32_t('\011'): 7027 fallthrough 7028 case Tuint32_t('\040'): 7029 fallthrough 7030 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 7031 fallthrough 7032 case Tuint32_t(0x1680): 7033 fallthrough /* OGHAM SPACE MARK */ 7034 case Tuint32_t(0x180e): 7035 fallthrough /* MONGOLIAN VOWEL SEPARATOR */ 7036 case Tuint32_t(0x2000): 7037 fallthrough /* EN QUAD */ 7038 case Tuint32_t(0x2001): 7039 fallthrough /* EM QUAD */ 7040 case Tuint32_t(0x2002): 7041 fallthrough /* EN SPACE */ 7042 case Tuint32_t(0x2003): 7043 fallthrough /* EM SPACE */ 7044 case Tuint32_t(0x2004): 7045 fallthrough /* THREE-PER-EM SPACE */ 7046 case Tuint32_t(0x2005): 7047 fallthrough /* FOUR-PER-EM SPACE */ 7048 case Tuint32_t(0x2006): 7049 fallthrough /* SIX-PER-EM SPACE */ 7050 case Tuint32_t(0x2007): 7051 fallthrough /* FIGURE SPACE */ 7052 case Tuint32_t(0x2008): 7053 fallthrough /* PUNCTUATION SPACE */ 7054 case Tuint32_t(0x2009): 7055 fallthrough /* THIN SPACE */ 7056 case Tuint32_t(0x200A): 7057 fallthrough /* HAIR SPACE */ 7058 case Tuint32_t(0x202f): 7059 fallthrough /* NARROW NO-BREAK SPACE */ 7060 case Tuint32_t(0x205f): 7061 fallthrough /* MEDIUM MATHEMATICAL SPACE */ 7062 case Tuint32_t(0x3000): 7063 fallthrough 7064 case Tuint32_t('\012'): 7065 fallthrough 7066 case Tuint32_t('\013'): 7067 fallthrough 7068 case Tuint32_t('\014'): 7069 fallthrough 7070 case Tuint32_t('\015'): 7071 fallthrough 7072 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 7073 fallthrough 7074 case Tuint32_t(0x2028): 7075 fallthrough /* LINE SEPARATOR */ 7076 case Tuint32_t(0x2029): 7077 return negated 7078 7079 default: 7080 return libc.Bool32(libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_Z) == negated) 7081 } 7082 break // Control never reaches here 7083 7084 case uint32(DPT_WORD): 7085 return libc.Bool32(libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_L || X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_N || c == Tuint32_t('\137')) == negated) 7086 7087 case uint32(DPT_CLIST): 7088 p = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr((*Tucd_record)(unsafe.Pointer(prop)).Fcaseset)*4 7089 for { 7090 if c < *(*Tuint32_t)(unsafe.Pointer(p)) { 7091 return libc.BoolInt32(!(negated != 0)) 7092 } 7093 if c == *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&p, 4))) { 7094 return negated 7095 } 7096 } 7097 break // Control never reaches here 7098 7099 // Haven't yet thought these through. 7100 7101 case uint32(DPT_BIDICL): 7102 return DFALSE 7103 7104 case uint32(DPT_BOOL): 7105 return DFALSE 7106 } 7107 7108 return DFALSE 7109 } 7110 7111 // ************************************************ 7112 // 7113 // Base opcode of repeated opcodes * 7114 // 7115 7116 // Returns the base opcode for repeated single character type opcodes. If the 7117 // opcode is not a repeated character type, it returns with the original value. 7118 // 7119 // Arguments: c opcode 7120 // Returns: base opcode for the type 7121 7122 func get_repeat_base(tls *libc.TLS, c TPCRE2_UCHAR8) TPCRE2_UCHAR8 { /* pcre2_auto_possess.c:291:1: */ 7123 if int32(c) > OP_TYPEPOSUPTO { 7124 return c 7125 } 7126 if int32(c) >= OP_TYPESTAR { 7127 return OP_TYPESTAR 7128 } 7129 if int32(c) >= OP_NOTSTARI { 7130 return OP_NOTSTARI 7131 } 7132 if int32(c) >= OP_NOTSTAR { 7133 return OP_NOTSTAR 7134 } 7135 if int32(c) >= OP_STARI { 7136 return OP_STARI 7137 } 7138 return OP_STAR 7139 } 7140 7141 // ************************************************ 7142 // 7143 // Fill the character property list * 7144 // 7145 7146 // Checks whether the code points to an opcode that can take part in auto- 7147 // possessification, and if so, fills a list with its properties. 7148 // 7149 // Arguments: 7150 // code points to start of expression 7151 // utf TRUE if in UTF mode 7152 // ucp TRUE if in UCP mode 7153 // fcc points to the case-flipping table 7154 // list points to output list 7155 // list[0] will be filled with the opcode 7156 // list[1] will be non-zero if this opcode 7157 // can match an empty character string 7158 // list[2..7] depends on the opcode 7159 // 7160 // Returns: points to the start of the next opcode if *code is accepted 7161 // NULL if *code is not accepted 7162 7163 func get_chr_property_list(tls *libc.TLS, code TPCRE2_SPTR8, utf TBOOL, ucp TBOOL, fcc uintptr, list uintptr) TPCRE2_SPTR8 { /* pcre2_auto_possess.c:325:1: */ 7164 var c TPCRE2_UCHAR8 = *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) 7165 var base TPCRE2_UCHAR8 7166 var end TPCRE2_SPTR8 7167 var chr Tuint32_t 7168 var clist_dest uintptr 7169 var clist_src uintptr 7170 7171 *(*Tuint32_t)(unsafe.Pointer(list)) = Tuint32_t(c) 7172 *(*Tuint32_t)(unsafe.Pointer(list + 1*4)) = Tuint32_t(DFALSE) 7173 code++ 7174 7175 if int32(c) >= OP_STAR && int32(c) <= OP_TYPEPOSUPTO { 7176 base = get_repeat_base(tls, c) 7177 c = TPCRE2_UCHAR8(int32(c) - (int32(base) - OP_STAR)) 7178 7179 if int32(c) == OP_UPTO || int32(c) == OP_MINUPTO || int32(c) == OP_EXACT || int32(c) == OP_POSUPTO { 7180 code += TPCRE2_SPTR8(DIMM2_SIZE) 7181 } 7182 7183 *(*Tuint32_t)(unsafe.Pointer(list + 1*4)) = Tuint32_t(libc.Bool32(int32(c) != OP_PLUS && int32(c) != OP_MINPLUS && int32(c) != OP_EXACT && int32(c) != OP_POSPLUS)) 7184 7185 switch int32(base) { 7186 case OP_STAR: 7187 *(*Tuint32_t)(unsafe.Pointer(list)) = OP_CHAR 7188 break 7189 fallthrough 7190 7191 case OP_STARI: 7192 *(*Tuint32_t)(unsafe.Pointer(list)) = OP_CHARI 7193 break 7194 fallthrough 7195 7196 case OP_NOTSTAR: 7197 *(*Tuint32_t)(unsafe.Pointer(list)) = OP_NOT 7198 break 7199 fallthrough 7200 7201 case OP_NOTSTARI: 7202 *(*Tuint32_t)(unsafe.Pointer(list)) = OP_NOTI 7203 break 7204 fallthrough 7205 7206 case OP_TYPESTAR: 7207 *(*Tuint32_t)(unsafe.Pointer(list)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) 7208 code++ 7209 break 7210 } 7211 c = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(list))) 7212 } 7213 7214 switch int32(c) { 7215 case OP_NOT_DIGIT: 7216 fallthrough 7217 case OP_DIGIT: 7218 fallthrough 7219 case OP_NOT_WHITESPACE: 7220 fallthrough 7221 case OP_WHITESPACE: 7222 fallthrough 7223 case OP_NOT_WORDCHAR: 7224 fallthrough 7225 case OP_WORDCHAR: 7226 fallthrough 7227 case OP_ANY: 7228 fallthrough 7229 case OP_ALLANY: 7230 fallthrough 7231 case OP_ANYNL: 7232 fallthrough 7233 case OP_NOT_HSPACE: 7234 fallthrough 7235 case OP_HSPACE: 7236 fallthrough 7237 case OP_NOT_VSPACE: 7238 fallthrough 7239 case OP_VSPACE: 7240 fallthrough 7241 case OP_EXTUNI: 7242 fallthrough 7243 case OP_EODN: 7244 fallthrough 7245 case OP_EOD: 7246 fallthrough 7247 case OP_DOLL: 7248 fallthrough 7249 case OP_DOLLM: 7250 return code 7251 7252 case OP_CHAR: 7253 fallthrough 7254 case OP_NOT: 7255 chr = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1)))) 7256 if utf != 0 && chr >= 0xc0 { 7257 if chr&0x20 == Tuint32_t(0) { 7258 chr = chr&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))))&0x3f 7259 } else if chr&0x10 == Tuint32_t(0) { 7260 chr = chr&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))&0x3f 7261 code += uintptr(2) 7262 } else if chr&0x08 == Tuint32_t(0) { 7263 chr = chr&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))&0x3f 7264 code += uintptr(3) 7265 } else if chr&0x04 == Tuint32_t(0) { 7266 chr = chr&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))&0x3f 7267 code += uintptr(4) 7268 } else { 7269 chr = chr&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 4)))&0x3f 7270 code += uintptr(5) 7271 } 7272 } 7273 7274 *(*Tuint32_t)(unsafe.Pointer(list + 2*4)) = chr 7275 *(*Tuint32_t)(unsafe.Pointer(list + 3*4)) = DNOTACHAR 7276 return code 7277 7278 case OP_CHARI: 7279 fallthrough 7280 case OP_NOTI: 7281 *(*Tuint32_t)(unsafe.Pointer(list)) = func() uint32 { 7282 if int32(c) == OP_CHARI { 7283 return OP_CHAR 7284 } 7285 return OP_NOT 7286 }() 7287 chr = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1)))) 7288 if utf != 0 && chr >= 0xc0 { 7289 if chr&0x20 == Tuint32_t(0) { 7290 chr = chr&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))))&0x3f 7291 } else if chr&0x10 == Tuint32_t(0) { 7292 chr = chr&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))&0x3f 7293 code += uintptr(2) 7294 } else if chr&0x08 == Tuint32_t(0) { 7295 chr = chr&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))&0x3f 7296 code += uintptr(3) 7297 } else if chr&0x04 == Tuint32_t(0) { 7298 chr = chr&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))&0x3f 7299 code += uintptr(4) 7300 } else { 7301 chr = chr&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 4)))&0x3f 7302 code += uintptr(5) 7303 } 7304 } 7305 7306 *(*Tuint32_t)(unsafe.Pointer(list + 2*4)) = chr 7307 7308 if chr < Tuint32_t(128) || chr < Tuint32_t(256) && !(utf != 0) && !(ucp != 0) { 7309 *(*Tuint32_t)(unsafe.Pointer(list + 3*4)) = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(fcc + uintptr(chr)))) 7310 } else { 7311 *(*Tuint32_t)(unsafe.Pointer(list + 3*4)) = Tuint32_t(int32(chr) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(chr)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(chr)%DUCD_BLOCK_SIZE])*12)).Fother_case) 7312 } 7313 7314 // The othercase might be the same value. 7315 7316 if chr == *(*Tuint32_t)(unsafe.Pointer(list + 3*4)) { 7317 *(*Tuint32_t)(unsafe.Pointer(list + 3*4)) = DNOTACHAR 7318 } else { 7319 *(*Tuint32_t)(unsafe.Pointer(list + 4*4)) = DNOTACHAR 7320 } 7321 return code 7322 7323 case OP_PROP: 7324 fallthrough 7325 case OP_NOTPROP: 7326 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) != DPT_CLIST { 7327 *(*Tuint32_t)(unsafe.Pointer(list + 2*4)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) 7328 *(*Tuint32_t)(unsafe.Pointer(list + 3*4)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) 7329 return code + uintptr(2) 7330 } 7331 7332 // Convert only if we have enough space. 7333 7334 clist_src = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))*4 7335 clist_dest = list + uintptr(2)*4 7336 code += uintptr(2) 7337 7338 for __ccgo := true; __ccgo; __ccgo = *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&clist_src, 4))) != DNOTACHAR { 7339 if clist_dest >= list+uintptr(8)*4 { 7340 // Early return if there is not enough space. This should never 7341 // happen, since all clists are shorter than 5 character now. 7342 *(*Tuint32_t)(unsafe.Pointer(list + 2*4)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) 7343 *(*Tuint32_t)(unsafe.Pointer(list + 3*4)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) 7344 return code 7345 } 7346 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&clist_dest, 4))) = *(*Tuint32_t)(unsafe.Pointer(clist_src)) 7347 } 7348 7349 // All characters are stored. The terminating NOTACHAR is copied from the 7350 // clist itself. 7351 7352 *(*Tuint32_t)(unsafe.Pointer(list)) = func() uint32 { 7353 if int32(c) == OP_PROP { 7354 return OP_CHAR 7355 } 7356 return OP_NOT 7357 }() 7358 return code 7359 7360 case OP_NCLASS: 7361 fallthrough 7362 case OP_CLASS: 7363 fallthrough 7364 case OP_XCLASS: 7365 if int32(c) == OP_XCLASS { 7366 end = code + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))))) - uintptr(1) 7367 } else { 7368 end = code + uintptr(uint64(32)/uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0)))) 7369 } 7370 7371 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end))) { 7372 case OP_CRSTAR: 7373 fallthrough 7374 case OP_CRMINSTAR: 7375 fallthrough 7376 case OP_CRQUERY: 7377 fallthrough 7378 case OP_CRMINQUERY: 7379 fallthrough 7380 case OP_CRPOSSTAR: 7381 fallthrough 7382 case OP_CRPOSQUERY: 7383 *(*Tuint32_t)(unsafe.Pointer(list + 1*4)) = Tuint32_t(DTRUE) 7384 end++ 7385 break 7386 7387 case OP_CRPLUS: 7388 fallthrough 7389 case OP_CRMINPLUS: 7390 fallthrough 7391 case OP_CRPOSPLUS: 7392 end++ 7393 break 7394 7395 case OP_CRRANGE: 7396 fallthrough 7397 case OP_CRMINRANGE: 7398 fallthrough 7399 case OP_CRPOSRANGE: 7400 *(*Tuint32_t)(unsafe.Pointer(list + 1*4)) = Tuint32_t(libc.Bool32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end + 2)))) == uint32(0))) 7401 end += TPCRE2_SPTR8(1 + 2*DIMM2_SIZE) 7402 break 7403 } 7404 *(*Tuint32_t)(unsafe.Pointer(list + 2*4)) = Tuint32_t((int64(end) - int64(code)) / 1) 7405 return end 7406 } 7407 7408 return uintptr(0) // Opcode not accepted 7409 } 7410 7411 // ************************************************ 7412 // 7413 // Scan further character sets for match * 7414 // 7415 7416 // Checks whether the base and the current opcode have a common character, in 7417 // which case the base cannot be possessified. 7418 // 7419 // Arguments: 7420 // code points to the byte code 7421 // utf TRUE in UTF mode 7422 // ucp TRUE in UCP mode 7423 // cb compile data block 7424 // base_list the data list of the base opcode 7425 // base_end the end of the base opcode 7426 // rec_limit points to recursion depth counter 7427 // 7428 // Returns: TRUE if the auto-possessification is possible 7429 7430 func compare_opcodes(tls *libc.TLS, code TPCRE2_SPTR8, utf TBOOL, ucp TBOOL, cb uintptr, base_list uintptr, base_end TPCRE2_SPTR8, rec_limit uintptr) TBOOL { /* pcre2_auto_possess.c:536:1: */ 7431 bp := tls.Alloc(32) 7432 defer tls.Free(32) 7433 7434 var c TPCRE2_UCHAR8 7435 // var list [8]Tuint32_t at bp, 32 7436 7437 var chr_ptr uintptr 7438 var ochr_ptr uintptr 7439 var list_ptr uintptr 7440 var next_code TPCRE2_SPTR8 7441 var xclass_flags TPCRE2_SPTR8 7442 var class_bitset uintptr 7443 var set1 uintptr 7444 var set2 uintptr 7445 var set_end uintptr 7446 var chr Tuint32_t 7447 var accepted TBOOL 7448 var invert_bits TBOOL 7449 var entered_a_group TBOOL = DFALSE 7450 7451 if libc.PreDecInt32(&*(*int32)(unsafe.Pointer(rec_limit)), 1) <= 0 { 7452 return DFALSE 7453 } // Recursion has gone too deep 7454 7455 // Note: the base_list[1] contains whether the current opcode has a greedy 7456 // (represented by a non-zero value) quantifier. This is a different from 7457 // other character type lists, which store here that the character iterator 7458 // matches to an empty string (also represented by a non-zero value). 7459 7460 for { 7461 // All operations move the code pointer forward. 7462 // Therefore infinite recursions are not possible. 7463 7464 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) 7465 7466 // Skip over callouts 7467 7468 if int32(c) == OP_CALLOUT { 7469 code += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[c]) 7470 continue 7471 } 7472 7473 if int32(c) == OP_CALLOUT_STR { 7474 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 6))))) 7475 continue 7476 } 7477 7478 // At the end of a branch, skip to the end of the group. 7479 7480 if int32(c) == OP_ALT { 7481 for __ccgo := true; __ccgo; __ccgo = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_ALT { 7482 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 7483 } 7484 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) 7485 } 7486 7487 // Inspect the next opcode. 7488 7489 switch int32(c) { 7490 // We can always possessify a greedy iterator at the end of the pattern, 7491 // which is reached after skipping over the final OP_KET. A non-greedy 7492 // iterator must never be possessified. 7493 7494 case OP_END: 7495 return libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(base_list + 1*4)) != Tuint32_t(0)) 7496 7497 // When an iterator is at the end of certain kinds of group we can inspect 7498 // what follows the group by skipping over the closing ket. Note that this 7499 // does not apply to OP_KETRMAX or OP_KETRMIN because what follows any given 7500 // iteration is variable (could be another iteration or could be the next 7501 // item). As these two opcodes are not listed in the next switch, they will 7502 // end up as the next code to inspect, and return FALSE by virtue of being 7503 // unsupported. 7504 7505 case OP_KET: 7506 fallthrough 7507 case OP_KETRPOS: 7508 // The non-greedy case cannot be converted to a possessive form. 7509 7510 if *(*Tuint32_t)(unsafe.Pointer(base_list + 1*4)) == Tuint32_t(0) { 7511 return DFALSE 7512 } 7513 7514 // If the bracket is capturing it might be referenced by an OP_RECURSE 7515 // so its last iterator can never be possessified if the pattern contains 7516 // recursions. (This could be improved by keeping a list of group numbers that 7517 // are called by recursion.) 7518 7519 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code - uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))))))) { 7520 case OP_CBRA: 7521 fallthrough 7522 case OP_SCBRA: 7523 fallthrough 7524 case OP_CBRAPOS: 7525 fallthrough 7526 case OP_SCBRAPOS: 7527 if (*Tcompile_block_8)(unsafe.Pointer(cb)).Fhad_recurse != 0 { 7528 return DFALSE 7529 } 7530 break 7531 7532 // A script run might have to backtrack if the iterated item can match 7533 // characters from more than one script. So give up unless repeating an 7534 // explicit character. 7535 7536 case OP_SCRIPT_RUN: 7537 if *(*Tuint32_t)(unsafe.Pointer(base_list)) != OP_CHAR && *(*Tuint32_t)(unsafe.Pointer(base_list)) != OP_CHARI { 7538 return DFALSE 7539 } 7540 break 7541 7542 // Atomic sub-patterns and assertions can always auto-possessify their 7543 // last iterator. However, if the group was entered as a result of checking 7544 // a previous iterator, this is not possible. 7545 7546 case OP_ASSERT: 7547 fallthrough 7548 case OP_ASSERT_NOT: 7549 fallthrough 7550 case OP_ASSERTBACK: 7551 fallthrough 7552 case OP_ASSERTBACK_NOT: 7553 fallthrough 7554 case OP_ONCE: 7555 return libc.BoolInt32(!(entered_a_group != 0)) 7556 7557 // Non-atomic assertions - don't possessify last iterator. This needs 7558 // more thought. 7559 7560 case OP_ASSERT_NA: 7561 fallthrough 7562 case OP_ASSERTBACK_NA: 7563 return DFALSE 7564 } 7565 7566 // Skip over the bracket and inspect what comes next. 7567 7568 code += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[c]) 7569 continue 7570 7571 // Handle cases where the next item is a group. 7572 7573 case OP_ONCE: 7574 fallthrough 7575 case OP_BRA: 7576 fallthrough 7577 case OP_CBRA: 7578 next_code = code + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 7579 code += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[c]) 7580 7581 // Check each branch. We have to recurse a level for all but the last 7582 // branch. 7583 7584 for int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(next_code))) == OP_ALT { 7585 if !(compare_opcodes(tls, code, utf, ucp, cb, base_list, base_end, rec_limit) != 0) { 7586 return DFALSE 7587 } 7588 code = next_code + uintptr(1) + uintptr(DLINK_SIZE) 7589 next_code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(next_code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(next_code + 2))))) 7590 } 7591 7592 entered_a_group = DTRUE 7593 continue 7594 7595 case OP_BRAZERO: 7596 fallthrough 7597 case OP_BRAMINZERO: 7598 7599 next_code = code + uintptr(1) 7600 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(next_code))) != OP_BRA && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(next_code))) != OP_CBRA && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(next_code))) != OP_ONCE { 7601 return DFALSE 7602 } 7603 7604 for __ccgo1 := true; __ccgo1; __ccgo1 = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(next_code))) == OP_ALT { 7605 next_code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(next_code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(next_code + 2))))) 7606 } 7607 7608 // The bracket content will be checked by the OP_BRA/OP_CBRA case above. 7609 7610 next_code += TPCRE2_SPTR8(1 + DLINK_SIZE) 7611 if !(compare_opcodes(tls, next_code, utf, ucp, cb, base_list, base_end, 7612 rec_limit) != 0) { 7613 return DFALSE 7614 } 7615 7616 code += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[c]) 7617 continue 7618 7619 // The next opcode does not need special handling; fall through and use it 7620 // to see if the base can be possessified. 7621 7622 default: 7623 break 7624 } 7625 7626 // We now have the next appropriate opcode to compare with the base. Check 7627 // for a supported opcode, and load its properties. 7628 7629 code = get_chr_property_list(tls, code, utf, ucp, (*Tcompile_block_8)(unsafe.Pointer(cb)).Ffcc, bp) 7630 if code == uintptr(0) { 7631 return DFALSE 7632 } // Unsupported 7633 7634 // If either opcode is a small character list, set pointers for comparing 7635 // characters from that list with another list, or with a property. 7636 7637 if *(*Tuint32_t)(unsafe.Pointer(base_list)) == OP_CHAR { 7638 chr_ptr = base_list + uintptr(2)*4 7639 list_ptr = bp /* &list[0] */ 7640 } else if *(*Tuint32_t)(unsafe.Pointer(bp)) == OP_CHAR { 7641 chr_ptr = bp + uintptr(2)*4 7642 list_ptr = base_list 7643 } else if *(*Tuint32_t)(unsafe.Pointer(base_list)) == OP_CLASS || *(*Tuint32_t)(unsafe.Pointer(bp)) == OP_CLASS || 7644 7645 !(utf != 0) && (*(*Tuint32_t)(unsafe.Pointer(base_list)) == OP_NCLASS || *(*Tuint32_t)(unsafe.Pointer(bp)) == OP_NCLASS) { 7646 if *(*Tuint32_t)(unsafe.Pointer(base_list)) == OP_CLASS || !(utf != 0) && *(*Tuint32_t)(unsafe.Pointer(base_list)) == OP_NCLASS { 7647 set1 = base_end - uintptr(*(*Tuint32_t)(unsafe.Pointer(base_list + 2*4))) 7648 list_ptr = bp /* &list[0] */ 7649 } else { 7650 set1 = code - uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 2*4))) 7651 list_ptr = base_list 7652 } 7653 7654 invert_bits = DFALSE 7655 switch *(*Tuint32_t)(unsafe.Pointer(list_ptr)) { 7656 case OP_CLASS: 7657 fallthrough 7658 case OP_NCLASS: 7659 set2 = func() uintptr { 7660 if list_ptr == bp { 7661 return code 7662 } 7663 return base_end 7664 }() - uintptr(*(*Tuint32_t)(unsafe.Pointer(list_ptr + 2*4))) 7665 break 7666 fallthrough 7667 7668 case OP_XCLASS: 7669 xclass_flags = func() uintptr { 7670 if list_ptr == bp { 7671 return code 7672 } 7673 return base_end 7674 }() - uintptr(*(*Tuint32_t)(unsafe.Pointer(list_ptr + 2*4))) + uintptr(DLINK_SIZE) 7675 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(xclass_flags)))&DXCL_HASPROP != 0 { 7676 return DFALSE 7677 } 7678 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(xclass_flags)))&DXCL_MAP == 0 { 7679 // No bits are set for characters < 256. 7680 if *(*Tuint32_t)(unsafe.Pointer(bp + 1*4)) == Tuint32_t(0) { 7681 return libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(xclass_flags)))&DXCL_NOT == 0) 7682 } 7683 // Might be an empty repeat. 7684 continue 7685 } 7686 set2 = xclass_flags + uintptr(1) 7687 break 7688 fallthrough 7689 7690 case OP_NOT_DIGIT: 7691 invert_bits = DTRUE 7692 fallthrough 7693 // Fall through 7694 case OP_DIGIT: 7695 set2 = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fcbits + uintptr(Dcbit_digit) 7696 break 7697 fallthrough 7698 7699 case OP_NOT_WHITESPACE: 7700 invert_bits = DTRUE 7701 fallthrough 7702 // Fall through 7703 case OP_WHITESPACE: 7704 set2 = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fcbits + uintptr(Dcbit_space) 7705 break 7706 fallthrough 7707 7708 case OP_NOT_WORDCHAR: 7709 invert_bits = DTRUE 7710 fallthrough 7711 // Fall through 7712 case OP_WORDCHAR: 7713 set2 = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fcbits + uintptr(Dcbit_word) 7714 break 7715 fallthrough 7716 7717 default: 7718 return DFALSE 7719 } 7720 7721 // Because the bit sets are unaligned bytes, we need to perform byte 7722 // comparison here. 7723 7724 set_end = set1 + uintptr(32) 7725 if invert_bits != 0 { 7726 for __ccgo2 := true; __ccgo2; __ccgo2 = set1 < set_end { 7727 if int32(*(*Tuint8_t)(unsafe.Pointer(libc.PostIncUintptr(&set1, 1)))) & ^int32(*(*Tuint8_t)(unsafe.Pointer(libc.PostIncUintptr(&set2, 1)))) != 0 { 7728 return DFALSE 7729 } 7730 } 7731 } else { 7732 for __ccgo3 := true; __ccgo3; __ccgo3 = set1 < set_end { 7733 if int32(*(*Tuint8_t)(unsafe.Pointer(libc.PostIncUintptr(&set1, 1))))&int32(*(*Tuint8_t)(unsafe.Pointer(libc.PostIncUintptr(&set2, 1)))) != 0 { 7734 return DFALSE 7735 } 7736 } 7737 } 7738 7739 if *(*Tuint32_t)(unsafe.Pointer(bp + 1*4)) == Tuint32_t(0) { 7740 return DTRUE 7741 } 7742 // Might be an empty repeat. 7743 continue 7744 } else { 7745 var leftop Tuint32_t 7746 var rightop Tuint32_t 7747 7748 leftop = *(*Tuint32_t)(unsafe.Pointer(base_list)) 7749 rightop = *(*Tuint32_t)(unsafe.Pointer(bp)) 7750 7751 accepted = DFALSE // Always set in non-unicode case. 7752 if leftop == OP_PROP || leftop == OP_NOTPROP { 7753 if rightop == OP_EOD { 7754 accepted = DTRUE 7755 } else if rightop == OP_PROP || rightop == OP_NOTPROP { 7756 var n int32 7757 var p uintptr 7758 var same TBOOL = libc.Bool32(leftop == rightop) 7759 var lisprop TBOOL = libc.Bool32(leftop == OP_PROP) 7760 var risprop TBOOL = libc.Bool32(rightop == OP_PROP) 7761 var bothprop TBOOL = libc.Bool32(lisprop != 0 && risprop != 0) 7762 7763 // There's a table that specifies how each combination is to be 7764 // processed: 7765 // 0 Always return FALSE (never auto-possessify) 7766 // 1 Character groups are distinct (possessify if both are OP_PROP) 7767 // 2 Check character categories in the same group (general or particular) 7768 // 3 Return TRUE if the two opcodes are not the same 7769 // ... see comments below 7770 // 7771 7772 n = int32(*(*Tuint8_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&propposstab)) + uintptr(*(*Tuint32_t)(unsafe.Pointer(base_list + 2*4)))*14 + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 2*4)))))) 7773 switch n { 7774 case 0: 7775 break 7776 fallthrough 7777 case 1: 7778 accepted = bothprop 7779 break 7780 fallthrough 7781 case 2: 7782 accepted = libc.Bool32(libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(base_list + 3*4)) == *(*Tuint32_t)(unsafe.Pointer(bp + 3*4))) != same) 7783 break 7784 fallthrough 7785 case 3: 7786 accepted = libc.BoolInt32(!(same != 0)) 7787 break 7788 fallthrough 7789 7790 case 4: // Left general category, right particular category 7791 accepted = libc.Bool32(risprop != 0 && int32(*(*Tuint8_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&catposstab)) + uintptr(*(*Tuint32_t)(unsafe.Pointer(base_list + 3*4)))*30 + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 3*4)))))) == same) 7792 break 7793 fallthrough 7794 7795 case 5: // Right general category, left particular category 7796 accepted = libc.Bool32(lisprop != 0 && int32(*(*Tuint8_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&catposstab)) + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 3*4)))*30 + uintptr(*(*Tuint32_t)(unsafe.Pointer(base_list + 3*4)))))) == same) 7797 break 7798 fallthrough 7799 7800 // This code is logically tricky. Think hard before fiddling with it. 7801 // The posspropstab table has four entries per row. Each row relates to 7802 // one of PCRE's special properties such as ALNUM or SPACE or WORD. 7803 // Only WORD actually needs all four entries, but using repeats for the 7804 // others means they can all use the same code below. 7805 // 7806 // The first two entries in each row are Unicode general categories, and 7807 // apply always, because all the characters they include are part of the 7808 // PCRE character set. The third and fourth entries are a general and a 7809 // particular category, respectively, that include one or more relevant 7810 // characters. One or the other is used, depending on whether the check 7811 // is for a general or a particular category. However, in both cases the 7812 // category contains more characters than the specials that are defined 7813 // for the property being tested against. Therefore, it cannot be used 7814 // in a NOTPROP case. 7815 // 7816 // Example: the row for WORD contains ucp_L, ucp_N, ucp_P, ucp_Po. 7817 // Underscore is covered by ucp_P or ucp_Po. 7818 7819 case 6: 7820 fallthrough // Left alphanum vs right general category 7821 case 7: 7822 fallthrough // Left space vs right general category 7823 case 8: // Left word vs right general category 7824 p = uintptr(unsafe.Pointer(&posspropstab)) + uintptr(n-6)*4 7825 accepted = libc.Bool32(risprop != 0 && lisprop == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(bp + 3*4)) != Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(p))) && *(*Tuint32_t)(unsafe.Pointer(bp + 3*4)) != Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(p + 1))) && (*(*Tuint32_t)(unsafe.Pointer(bp + 3*4)) != Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(p + 2))) || !(lisprop != 0)))) 7826 break 7827 fallthrough 7828 7829 case 9: 7830 fallthrough // Right alphanum vs left general category 7831 case 10: 7832 fallthrough // Right space vs left general category 7833 case 11: // Right word vs left general category 7834 p = uintptr(unsafe.Pointer(&posspropstab)) + uintptr(n-9)*4 7835 accepted = libc.Bool32(lisprop != 0 && risprop == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(base_list + 3*4)) != Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(p))) && *(*Tuint32_t)(unsafe.Pointer(base_list + 3*4)) != Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(p + 1))) && (*(*Tuint32_t)(unsafe.Pointer(base_list + 3*4)) != Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(p + 2))) || !(risprop != 0)))) 7836 break 7837 fallthrough 7838 7839 case 12: 7840 fallthrough // Left alphanum vs right particular category 7841 case 13: 7842 fallthrough // Left space vs right particular category 7843 case 14: // Left word vs right particular category 7844 p = uintptr(unsafe.Pointer(&posspropstab)) + uintptr(n-12)*4 7845 accepted = libc.Bool32(risprop != 0 && lisprop == libc.Bool32(*(*Tuint8_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&catposstab)) + uintptr(*(*Tuint8_t)(unsafe.Pointer(p)))*30 + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 3*4))))) != 0 && *(*Tuint8_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&catposstab)) + uintptr(*(*Tuint8_t)(unsafe.Pointer(p + 1)))*30 + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 3*4))))) != 0 && (*(*Tuint32_t)(unsafe.Pointer(bp + 3*4)) != Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(p + 3))) || !(lisprop != 0)))) 7846 break 7847 fallthrough 7848 7849 case 15: 7850 fallthrough // Right alphanum vs left particular category 7851 case 16: 7852 fallthrough // Right space vs left particular category 7853 case 17: // Right word vs left particular category 7854 p = uintptr(unsafe.Pointer(&posspropstab)) + uintptr(n-15)*4 7855 accepted = libc.Bool32(lisprop != 0 && risprop == libc.Bool32(*(*Tuint8_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&catposstab)) + uintptr(*(*Tuint8_t)(unsafe.Pointer(p)))*30 + uintptr(*(*Tuint32_t)(unsafe.Pointer(base_list + 3*4))))) != 0 && *(*Tuint8_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&catposstab)) + uintptr(*(*Tuint8_t)(unsafe.Pointer(p + 1)))*30 + uintptr(*(*Tuint32_t)(unsafe.Pointer(base_list + 3*4))))) != 0 && (*(*Tuint32_t)(unsafe.Pointer(base_list + 3*4)) != Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(p + 3))) || !(risprop != 0)))) 7856 break 7857 } 7858 } 7859 } else { 7860 7861 accepted = libc.Bool32(leftop >= OP_NOT_DIGIT && leftop <= OP_EXTUNI && rightop >= OP_NOT_DIGIT && rightop <= OP_DOLLM && *(*Tuint8_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&autoposstab)) + uintptr(leftop-OP_NOT_DIGIT)*21 + uintptr(rightop-OP_NOT_DIGIT))) != 0) 7862 } 7863 7864 if !(accepted != 0) { 7865 return DFALSE 7866 } 7867 7868 if *(*Tuint32_t)(unsafe.Pointer(bp + 1*4)) == Tuint32_t(0) { 7869 return DTRUE 7870 } 7871 // Might be an empty repeat. 7872 continue 7873 } 7874 7875 // Control reaches here only if one of the items is a small character list. 7876 // All characters are checked against the other side. 7877 7878 for __ccgo4 := true; __ccgo4; __ccgo4 = *(*Tuint32_t)(unsafe.Pointer(chr_ptr)) != DNOTACHAR { 7879 chr = *(*Tuint32_t)(unsafe.Pointer(chr_ptr)) 7880 7881 switch *(*Tuint32_t)(unsafe.Pointer(list_ptr)) { 7882 case OP_CHAR: 7883 ochr_ptr = list_ptr + uintptr(2)*4 7884 for __ccgo5 := true; __ccgo5; __ccgo5 = *(*Tuint32_t)(unsafe.Pointer(ochr_ptr)) != DNOTACHAR { 7885 if chr == *(*Tuint32_t)(unsafe.Pointer(ochr_ptr)) { 7886 return DFALSE 7887 } 7888 ochr_ptr += 4 7889 } 7890 break 7891 7892 case OP_NOT: 7893 ochr_ptr = list_ptr + uintptr(2)*4 7894 for __ccgo6 := true; __ccgo6; __ccgo6 = *(*Tuint32_t)(unsafe.Pointer(ochr_ptr)) != DNOTACHAR { 7895 if chr == *(*Tuint32_t)(unsafe.Pointer(ochr_ptr)) { 7896 break 7897 } 7898 ochr_ptr += 4 7899 } 7900 if *(*Tuint32_t)(unsafe.Pointer(ochr_ptr)) == DNOTACHAR { 7901 return DFALSE 7902 } // Not found 7903 break 7904 7905 // Note that OP_DIGIT etc. are generated only when PCRE2_UCP is *not* 7906 // set. When it is set, \d etc. are converted into OP_(NOT_)PROP codes. 7907 7908 case OP_DIGIT: 7909 if chr < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fctypes + uintptr(chr))))&Dctype_digit != 0 { 7910 return DFALSE 7911 } 7912 break 7913 7914 case OP_NOT_DIGIT: 7915 if chr > Tuint32_t(255) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fctypes + uintptr(chr))))&Dctype_digit == 0 { 7916 return DFALSE 7917 } 7918 break 7919 7920 case OP_WHITESPACE: 7921 if chr < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fctypes + uintptr(chr))))&Dctype_space != 0 { 7922 return DFALSE 7923 } 7924 break 7925 7926 case OP_NOT_WHITESPACE: 7927 if chr > Tuint32_t(255) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fctypes + uintptr(chr))))&Dctype_space == 0 { 7928 return DFALSE 7929 } 7930 break 7931 7932 case OP_WORDCHAR: 7933 if chr < Tuint32_t(255) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fctypes + uintptr(chr))))&Dctype_word != 0 { 7934 return DFALSE 7935 } 7936 break 7937 7938 case OP_NOT_WORDCHAR: 7939 if chr > Tuint32_t(255) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fctypes + uintptr(chr))))&Dctype_word == 0 { 7940 return DFALSE 7941 } 7942 break 7943 7944 case OP_HSPACE: 7945 switch chr { 7946 case Tuint32_t('\011'): 7947 fallthrough 7948 case Tuint32_t('\040'): 7949 fallthrough 7950 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 7951 fallthrough 7952 case Tuint32_t(0x1680): 7953 fallthrough /* OGHAM SPACE MARK */ 7954 case Tuint32_t(0x180e): 7955 fallthrough /* MONGOLIAN VOWEL SEPARATOR */ 7956 case Tuint32_t(0x2000): 7957 fallthrough /* EN QUAD */ 7958 case Tuint32_t(0x2001): 7959 fallthrough /* EM QUAD */ 7960 case Tuint32_t(0x2002): 7961 fallthrough /* EN SPACE */ 7962 case Tuint32_t(0x2003): 7963 fallthrough /* EM SPACE */ 7964 case Tuint32_t(0x2004): 7965 fallthrough /* THREE-PER-EM SPACE */ 7966 case Tuint32_t(0x2005): 7967 fallthrough /* FOUR-PER-EM SPACE */ 7968 case Tuint32_t(0x2006): 7969 fallthrough /* SIX-PER-EM SPACE */ 7970 case Tuint32_t(0x2007): 7971 fallthrough /* FIGURE SPACE */ 7972 case Tuint32_t(0x2008): 7973 fallthrough /* PUNCTUATION SPACE */ 7974 case Tuint32_t(0x2009): 7975 fallthrough /* THIN SPACE */ 7976 case Tuint32_t(0x200A): 7977 fallthrough /* HAIR SPACE */ 7978 case Tuint32_t(0x202f): 7979 fallthrough /* NARROW NO-BREAK SPACE */ 7980 case Tuint32_t(0x205f): 7981 fallthrough /* MEDIUM MATHEMATICAL SPACE */ 7982 case Tuint32_t(0x3000): 7983 return DFALSE 7984 default: 7985 break 7986 } 7987 break 7988 7989 case OP_NOT_HSPACE: 7990 switch chr { 7991 case Tuint32_t('\011'): 7992 fallthrough 7993 case Tuint32_t('\040'): 7994 fallthrough 7995 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 7996 fallthrough 7997 case Tuint32_t(0x1680): 7998 fallthrough /* OGHAM SPACE MARK */ 7999 case Tuint32_t(0x180e): 8000 fallthrough /* MONGOLIAN VOWEL SEPARATOR */ 8001 case Tuint32_t(0x2000): 8002 fallthrough /* EN QUAD */ 8003 case Tuint32_t(0x2001): 8004 fallthrough /* EM QUAD */ 8005 case Tuint32_t(0x2002): 8006 fallthrough /* EN SPACE */ 8007 case Tuint32_t(0x2003): 8008 fallthrough /* EM SPACE */ 8009 case Tuint32_t(0x2004): 8010 fallthrough /* THREE-PER-EM SPACE */ 8011 case Tuint32_t(0x2005): 8012 fallthrough /* FOUR-PER-EM SPACE */ 8013 case Tuint32_t(0x2006): 8014 fallthrough /* SIX-PER-EM SPACE */ 8015 case Tuint32_t(0x2007): 8016 fallthrough /* FIGURE SPACE */ 8017 case Tuint32_t(0x2008): 8018 fallthrough /* PUNCTUATION SPACE */ 8019 case Tuint32_t(0x2009): 8020 fallthrough /* THIN SPACE */ 8021 case Tuint32_t(0x200A): 8022 fallthrough /* HAIR SPACE */ 8023 case Tuint32_t(0x202f): 8024 fallthrough /* NARROW NO-BREAK SPACE */ 8025 case Tuint32_t(0x205f): 8026 fallthrough /* MEDIUM MATHEMATICAL SPACE */ 8027 case Tuint32_t(0x3000): 8028 break 8029 default: 8030 return DFALSE 8031 } 8032 break 8033 8034 case OP_ANYNL: 8035 fallthrough 8036 case OP_VSPACE: 8037 switch chr { 8038 case Tuint32_t('\012'): 8039 fallthrough 8040 case Tuint32_t('\013'): 8041 fallthrough 8042 case Tuint32_t('\014'): 8043 fallthrough 8044 case Tuint32_t('\015'): 8045 fallthrough 8046 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 8047 fallthrough 8048 case Tuint32_t(0x2028): 8049 fallthrough /* LINE SEPARATOR */ 8050 case Tuint32_t(0x2029): 8051 return DFALSE 8052 default: 8053 break 8054 } 8055 break 8056 8057 case OP_NOT_VSPACE: 8058 switch chr { 8059 case Tuint32_t('\012'): 8060 fallthrough 8061 case Tuint32_t('\013'): 8062 fallthrough 8063 case Tuint32_t('\014'): 8064 fallthrough 8065 case Tuint32_t('\015'): 8066 fallthrough 8067 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 8068 fallthrough 8069 case Tuint32_t(0x2028): 8070 fallthrough /* LINE SEPARATOR */ 8071 case Tuint32_t(0x2029): 8072 break 8073 default: 8074 return DFALSE 8075 } 8076 break 8077 8078 case OP_DOLL: 8079 fallthrough 8080 case OP_EODN: 8081 switch chr { 8082 case Tuint32_t('\015'): 8083 fallthrough 8084 case Tuint32_t('\012'): 8085 fallthrough 8086 case Tuint32_t('\013'): 8087 fallthrough 8088 case Tuint32_t('\014'): 8089 fallthrough 8090 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 8091 fallthrough 8092 case Tuint32_t(0x2028): 8093 fallthrough 8094 case Tuint32_t(0x2029): 8095 return DFALSE 8096 } 8097 break 8098 8099 case OP_EOD: // Can always possessify before \z 8100 break 8101 8102 case OP_PROP: 8103 fallthrough 8104 case OP_NOTPROP: 8105 if !(check_char_prop(tls, chr, *(*Tuint32_t)(unsafe.Pointer(list_ptr + 2*4)), *(*Tuint32_t)(unsafe.Pointer(list_ptr + 3*4)), 8106 libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(list_ptr)) == OP_NOTPROP)) != 0) { 8107 return DFALSE 8108 } 8109 break 8110 8111 case OP_NCLASS: 8112 if chr > Tuint32_t(255) { 8113 return DFALSE 8114 } 8115 fallthrough 8116 // Fall through 8117 8118 case OP_CLASS: 8119 if chr > Tuint32_t(255) { 8120 break 8121 } 8122 class_bitset = func() uintptr { 8123 if list_ptr == bp { 8124 return code 8125 } 8126 return base_end 8127 }() - uintptr(*(*Tuint32_t)(unsafe.Pointer(list_ptr + 2*4))) 8128 if uint32(*(*Tuint8_t)(unsafe.Pointer(class_bitset + uintptr(chr>>3))))&(uint32(1)<<(chr&Tuint32_t(7))) != uint32(0) { 8129 return DFALSE 8130 } 8131 break 8132 8133 case OP_XCLASS: 8134 if X_pcre2_xclass_8(tls, chr, func() uintptr { 8135 if list_ptr == bp { 8136 return code 8137 } 8138 return base_end 8139 }()-uintptr(*(*Tuint32_t)(unsafe.Pointer(list_ptr + 2*4)))+uintptr(DLINK_SIZE), utf) != 0 { 8140 return DFALSE 8141 } 8142 break 8143 8144 default: 8145 return DFALSE 8146 } 8147 8148 chr_ptr += 4 8149 } 8150 8151 // At least one character must be matched from this opcode. 8152 8153 if *(*Tuint32_t)(unsafe.Pointer(bp + 1*4)) == Tuint32_t(0) { 8154 return DTRUE 8155 } 8156 } 8157 return TBOOL(0) 8158 8159 // Control never reaches here. There used to be a fail-save return FALSE; here, 8160 // but some compilers complain about an unreachable statement. 8161 } 8162 8163 // ************************************************ 8164 // 8165 // Scan compiled regex for auto-possession * 8166 // 8167 8168 // Replaces single character iterations with their possessive alternatives 8169 // if appropriate. This function modifies the compiled opcode! Hitting a 8170 // non-existent opcode may indicate a bug in PCRE2, but it can also be caused if a 8171 // bad UTF string was compiled with PCRE2_NO_UTF_CHECK. The rec_limit catches 8172 // overly complicated or large patterns. In these cases, the check just stops, 8173 // leaving the remainder of the pattern unpossessified. 8174 // 8175 // Arguments: 8176 // code points to start of the byte code 8177 // cb compile data block 8178 // 8179 // Returns: 0 for success 8180 // -1 if a non-existant opcode is encountered 8181 8182 func X_pcre2_auto_possessify_8(tls *libc.TLS, code uintptr, cb uintptr) int32 { /* pcre2_auto_possess.c:1132:1: */ 8183 bp := tls.Alloc(36) 8184 defer tls.Free(36) 8185 8186 var c TPCRE2_UCHAR8 8187 var end TPCRE2_SPTR8 8188 var repeat_opcode uintptr 8189 // var list [8]Tuint32_t at bp, 32 8190 8191 *(*int32)(unsafe.Pointer(bp + 32 /* rec_limit */)) = 1000 // Was 10,000 but clang+ASAN uses a lot of stack. 8192 var utf TBOOL = libc.Bool32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fexternal_options&DPCRE2_UTF != Tuint32_t(0)) 8193 var ucp TBOOL = libc.Bool32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fexternal_options&DPCRE2_UCP != Tuint32_t(0)) 8194 8195 for { 8196 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) 8197 8198 if int32(c) >= OP_TABLE_LENGTH { 8199 return -1 8200 } // Something gone wrong 8201 8202 if int32(c) >= OP_STAR && int32(c) <= OP_TYPEPOSUPTO { 8203 c = TPCRE2_UCHAR8(int32(c) - (int32(get_repeat_base(tls, c)) - OP_STAR)) 8204 if int32(c) <= OP_MINUPTO { 8205 end = get_chr_property_list(tls, code, utf, ucp, (*Tcompile_block_8)(unsafe.Pointer(cb)).Ffcc, bp) 8206 } else { 8207 end = uintptr(0) 8208 } 8209 *(*Tuint32_t)(unsafe.Pointer(bp + 1*4)) = Tuint32_t(libc.Bool32(int32(c) == OP_STAR || int32(c) == OP_PLUS || int32(c) == OP_QUERY || int32(c) == OP_UPTO)) 8210 8211 if end != uintptr(0) && compare_opcodes(tls, end, utf, ucp, cb, bp, end, 8212 bp+32) != 0 { 8213 switch int32(c) { 8214 case OP_STAR: 8215 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) += TPCRE2_UCHAR8(OP_POSSTAR - OP_STAR) 8216 break 8217 fallthrough 8218 8219 case OP_MINSTAR: 8220 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) += TPCRE2_UCHAR8(OP_POSSTAR - OP_MINSTAR) 8221 break 8222 fallthrough 8223 8224 case OP_PLUS: 8225 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) += TPCRE2_UCHAR8(OP_POSPLUS - OP_PLUS) 8226 break 8227 fallthrough 8228 8229 case OP_MINPLUS: 8230 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) += TPCRE2_UCHAR8(OP_POSPLUS - OP_MINPLUS) 8231 break 8232 fallthrough 8233 8234 case OP_QUERY: 8235 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) += TPCRE2_UCHAR8(OP_POSQUERY - OP_QUERY) 8236 break 8237 fallthrough 8238 8239 case OP_MINQUERY: 8240 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) += TPCRE2_UCHAR8(OP_POSQUERY - OP_MINQUERY) 8241 break 8242 fallthrough 8243 8244 case OP_UPTO: 8245 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) += TPCRE2_UCHAR8(OP_POSUPTO - OP_UPTO) 8246 break 8247 fallthrough 8248 8249 case OP_MINUPTO: 8250 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) += TPCRE2_UCHAR8(OP_POSUPTO - OP_MINUPTO) 8251 break 8252 } 8253 } 8254 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) 8255 } else if int32(c) == OP_CLASS || int32(c) == OP_NCLASS || int32(c) == OP_XCLASS { 8256 if int32(c) == OP_XCLASS { 8257 repeat_opcode = code + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 8258 } else { 8259 repeat_opcode = code + uintptr(1) + uintptr(uint64(32)/uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0)))) 8260 } 8261 8262 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(repeat_opcode)) 8263 if int32(c) >= OP_CRSTAR && int32(c) <= OP_CRMINRANGE { 8264 // The return from get_chr_property_list() will never be NULL when 8265 // code (aka c) is one of the three class opcodes. However, gcc with 8266 // -fanalyzer notes that a NULL return is possible, and grumbles. Hence we 8267 // put in a check. 8268 8269 end = get_chr_property_list(tls, code, utf, ucp, (*Tcompile_block_8)(unsafe.Pointer(cb)).Ffcc, bp) 8270 *(*Tuint32_t)(unsafe.Pointer(bp + 1*4)) = Tuint32_t(libc.Bool32(int32(c)&1 == 0)) 8271 8272 if end != uintptr(0) && compare_opcodes(tls, end, utf, ucp, cb, bp, end, bp+32) != 0 { 8273 switch int32(c) { 8274 case OP_CRSTAR: 8275 fallthrough 8276 case OP_CRMINSTAR: 8277 *(*TPCRE2_UCHAR8)(unsafe.Pointer(repeat_opcode)) = OP_CRPOSSTAR 8278 break 8279 fallthrough 8280 8281 case OP_CRPLUS: 8282 fallthrough 8283 case OP_CRMINPLUS: 8284 *(*TPCRE2_UCHAR8)(unsafe.Pointer(repeat_opcode)) = OP_CRPOSPLUS 8285 break 8286 fallthrough 8287 8288 case OP_CRQUERY: 8289 fallthrough 8290 case OP_CRMINQUERY: 8291 *(*TPCRE2_UCHAR8)(unsafe.Pointer(repeat_opcode)) = OP_CRPOSQUERY 8292 break 8293 fallthrough 8294 8295 case OP_CRRANGE: 8296 fallthrough 8297 case OP_CRMINRANGE: 8298 *(*TPCRE2_UCHAR8)(unsafe.Pointer(repeat_opcode)) = OP_CRPOSRANGE 8299 break 8300 } 8301 } 8302 } 8303 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) 8304 } 8305 8306 switch int32(c) { 8307 case OP_END: 8308 return 0 8309 8310 case OP_TYPESTAR: 8311 fallthrough 8312 case OP_TYPEMINSTAR: 8313 fallthrough 8314 case OP_TYPEPLUS: 8315 fallthrough 8316 case OP_TYPEMINPLUS: 8317 fallthrough 8318 case OP_TYPEQUERY: 8319 fallthrough 8320 case OP_TYPEMINQUERY: 8321 fallthrough 8322 case OP_TYPEPOSSTAR: 8323 fallthrough 8324 case OP_TYPEPOSPLUS: 8325 fallthrough 8326 case OP_TYPEPOSQUERY: 8327 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) == OP_PROP || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) == OP_NOTPROP { 8328 code += uintptr(2) 8329 } 8330 break 8331 8332 case OP_TYPEUPTO: 8333 fallthrough 8334 case OP_TYPEMINUPTO: 8335 fallthrough 8336 case OP_TYPEEXACT: 8337 fallthrough 8338 case OP_TYPEPOSUPTO: 8339 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))) == OP_PROP || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))) == OP_NOTPROP { 8340 code += uintptr(2) 8341 } 8342 break 8343 8344 case OP_CALLOUT_STR: 8345 code += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 6))))) 8346 break 8347 8348 case OP_XCLASS: 8349 code += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 8350 break 8351 8352 case OP_MARK: 8353 fallthrough 8354 case OP_COMMIT_ARG: 8355 fallthrough 8356 case OP_PRUNE_ARG: 8357 fallthrough 8358 case OP_SKIP_ARG: 8359 fallthrough 8360 case OP_THEN_ARG: 8361 code += uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) 8362 break 8363 } 8364 8365 // Add in the fixed length from the table 8366 8367 code += uintptr(X_pcre2_OP_lengths_8[c]) 8368 8369 // In UTF-8 and UTF-16 modes, opcodes that are followed by a character may be 8370 // followed by a multi-byte character. The length in the table is a minimum, so 8371 // we have to arrange to skip the extra code units. 8372 8373 if utf != 0 { 8374 switch int32(c) { 8375 case OP_CHAR: 8376 fallthrough 8377 case OP_CHARI: 8378 fallthrough 8379 case OP_NOT: 8380 fallthrough 8381 case OP_NOTI: 8382 fallthrough 8383 case OP_STAR: 8384 fallthrough 8385 case OP_MINSTAR: 8386 fallthrough 8387 case OP_PLUS: 8388 fallthrough 8389 case OP_MINPLUS: 8390 fallthrough 8391 case OP_QUERY: 8392 fallthrough 8393 case OP_MINQUERY: 8394 fallthrough 8395 case OP_UPTO: 8396 fallthrough 8397 case OP_MINUPTO: 8398 fallthrough 8399 case OP_EXACT: 8400 fallthrough 8401 case OP_POSSTAR: 8402 fallthrough 8403 case OP_POSPLUS: 8404 fallthrough 8405 case OP_POSQUERY: 8406 fallthrough 8407 case OP_POSUPTO: 8408 fallthrough 8409 case OP_STARI: 8410 fallthrough 8411 case OP_MINSTARI: 8412 fallthrough 8413 case OP_PLUSI: 8414 fallthrough 8415 case OP_MINPLUSI: 8416 fallthrough 8417 case OP_QUERYI: 8418 fallthrough 8419 case OP_MINQUERYI: 8420 fallthrough 8421 case OP_UPTOI: 8422 fallthrough 8423 case OP_MINUPTOI: 8424 fallthrough 8425 case OP_EXACTI: 8426 fallthrough 8427 case OP_POSSTARI: 8428 fallthrough 8429 case OP_POSPLUSI: 8430 fallthrough 8431 case OP_POSQUERYI: 8432 fallthrough 8433 case OP_POSUPTOI: 8434 fallthrough 8435 case OP_NOTSTAR: 8436 fallthrough 8437 case OP_NOTMINSTAR: 8438 fallthrough 8439 case OP_NOTPLUS: 8440 fallthrough 8441 case OP_NOTMINPLUS: 8442 fallthrough 8443 case OP_NOTQUERY: 8444 fallthrough 8445 case OP_NOTMINQUERY: 8446 fallthrough 8447 case OP_NOTUPTO: 8448 fallthrough 8449 case OP_NOTMINUPTO: 8450 fallthrough 8451 case OP_NOTEXACT: 8452 fallthrough 8453 case OP_NOTPOSSTAR: 8454 fallthrough 8455 case OP_NOTPOSPLUS: 8456 fallthrough 8457 case OP_NOTPOSQUERY: 8458 fallthrough 8459 case OP_NOTPOSUPTO: 8460 fallthrough 8461 case OP_NOTSTARI: 8462 fallthrough 8463 case OP_NOTMINSTARI: 8464 fallthrough 8465 case OP_NOTPLUSI: 8466 fallthrough 8467 case OP_NOTMINPLUSI: 8468 fallthrough 8469 case OP_NOTQUERYI: 8470 fallthrough 8471 case OP_NOTMINQUERYI: 8472 fallthrough 8473 case OP_NOTUPTOI: 8474 fallthrough 8475 case OP_NOTMINUPTOI: 8476 fallthrough 8477 case OP_NOTEXACTI: 8478 fallthrough 8479 case OP_NOTPOSSTARI: 8480 fallthrough 8481 case OP_NOTPOSPLUSI: 8482 fallthrough 8483 case OP_NOTPOSQUERYI: 8484 fallthrough 8485 case OP_NOTPOSUPTOI: 8486 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + libc.UintptrFromInt32(-1)))) >= 0xc0 { 8487 code += uintptr(X_pcre2_utf8_table4[uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + libc.UintptrFromInt32(-1))))&0x3f]) 8488 } 8489 break 8490 } 8491 } 8492 } 8493 return int32(0) 8494 } 8495 8496 // End of pcre2_auto_possess.c 8497 8498 // This function is needed only when memmove() is not available. 8499 8500 // End of pcre2_internal.h 8501 8502 var X_pcre2_default_tables_8 = [1088]Tuint8_t{ 8503 8504 // This table is a lower casing table. 8505 8506 Tuint8_t(0), Tuint8_t(1), Tuint8_t(2), Tuint8_t(3), Tuint8_t(4), Tuint8_t(5), Tuint8_t(6), Tuint8_t(7), 8507 Tuint8_t(8), Tuint8_t(9), Tuint8_t(10), Tuint8_t(11), Tuint8_t(12), Tuint8_t(13), Tuint8_t(14), Tuint8_t(15), 8508 Tuint8_t(16), Tuint8_t(17), Tuint8_t(18), Tuint8_t(19), Tuint8_t(20), Tuint8_t(21), Tuint8_t(22), Tuint8_t(23), 8509 Tuint8_t(24), Tuint8_t(25), Tuint8_t(26), Tuint8_t(27), Tuint8_t(28), Tuint8_t(29), Tuint8_t(30), Tuint8_t(31), 8510 Tuint8_t(32), Tuint8_t(33), Tuint8_t(34), Tuint8_t(35), Tuint8_t(36), Tuint8_t(37), Tuint8_t(38), Tuint8_t(39), 8511 Tuint8_t(40), Tuint8_t(41), Tuint8_t(42), Tuint8_t(43), Tuint8_t(44), Tuint8_t(45), Tuint8_t(46), Tuint8_t(47), 8512 Tuint8_t(48), Tuint8_t(49), Tuint8_t(50), Tuint8_t(51), Tuint8_t(52), Tuint8_t(53), Tuint8_t(54), Tuint8_t(55), 8513 Tuint8_t(56), Tuint8_t(57), Tuint8_t(58), Tuint8_t(59), Tuint8_t(60), Tuint8_t(61), Tuint8_t(62), Tuint8_t(63), 8514 Tuint8_t(64), Tuint8_t(97), Tuint8_t(98), Tuint8_t(99), Tuint8_t(100), Tuint8_t(101), Tuint8_t(102), Tuint8_t(103), 8515 Tuint8_t(104), Tuint8_t(105), Tuint8_t(106), Tuint8_t(107), Tuint8_t(108), Tuint8_t(109), Tuint8_t(110), Tuint8_t(111), 8516 Tuint8_t(112), Tuint8_t(113), Tuint8_t(114), Tuint8_t(115), Tuint8_t(116), Tuint8_t(117), Tuint8_t(118), Tuint8_t(119), 8517 Tuint8_t(120), Tuint8_t(121), Tuint8_t(122), Tuint8_t(91), Tuint8_t(92), Tuint8_t(93), Tuint8_t(94), Tuint8_t(95), 8518 Tuint8_t(96), Tuint8_t(97), Tuint8_t(98), Tuint8_t(99), Tuint8_t(100), Tuint8_t(101), Tuint8_t(102), Tuint8_t(103), 8519 Tuint8_t(104), Tuint8_t(105), Tuint8_t(106), Tuint8_t(107), Tuint8_t(108), Tuint8_t(109), Tuint8_t(110), Tuint8_t(111), 8520 Tuint8_t(112), Tuint8_t(113), Tuint8_t(114), Tuint8_t(115), Tuint8_t(116), Tuint8_t(117), Tuint8_t(118), Tuint8_t(119), 8521 Tuint8_t(120), Tuint8_t(121), Tuint8_t(122), Tuint8_t(123), Tuint8_t(124), Tuint8_t(125), Tuint8_t(126), Tuint8_t(127), 8522 Tuint8_t(128), Tuint8_t(129), Tuint8_t(130), Tuint8_t(131), Tuint8_t(132), Tuint8_t(133), Tuint8_t(134), Tuint8_t(135), 8523 Tuint8_t(136), Tuint8_t(137), Tuint8_t(138), Tuint8_t(139), Tuint8_t(140), Tuint8_t(141), Tuint8_t(142), Tuint8_t(143), 8524 Tuint8_t(144), Tuint8_t(145), Tuint8_t(146), Tuint8_t(147), Tuint8_t(148), Tuint8_t(149), Tuint8_t(150), Tuint8_t(151), 8525 Tuint8_t(152), Tuint8_t(153), Tuint8_t(154), Tuint8_t(155), Tuint8_t(156), Tuint8_t(157), Tuint8_t(158), Tuint8_t(159), 8526 Tuint8_t(160), Tuint8_t(161), Tuint8_t(162), Tuint8_t(163), Tuint8_t(164), Tuint8_t(165), Tuint8_t(166), Tuint8_t(167), 8527 Tuint8_t(168), Tuint8_t(169), Tuint8_t(170), Tuint8_t(171), Tuint8_t(172), Tuint8_t(173), Tuint8_t(174), Tuint8_t(175), 8528 Tuint8_t(176), Tuint8_t(177), Tuint8_t(178), Tuint8_t(179), Tuint8_t(180), Tuint8_t(181), Tuint8_t(182), Tuint8_t(183), 8529 Tuint8_t(184), Tuint8_t(185), Tuint8_t(186), Tuint8_t(187), Tuint8_t(188), Tuint8_t(189), Tuint8_t(190), Tuint8_t(191), 8530 Tuint8_t(192), Tuint8_t(193), Tuint8_t(194), Tuint8_t(195), Tuint8_t(196), Tuint8_t(197), Tuint8_t(198), Tuint8_t(199), 8531 Tuint8_t(200), Tuint8_t(201), Tuint8_t(202), Tuint8_t(203), Tuint8_t(204), Tuint8_t(205), Tuint8_t(206), Tuint8_t(207), 8532 Tuint8_t(208), Tuint8_t(209), Tuint8_t(210), Tuint8_t(211), Tuint8_t(212), Tuint8_t(213), Tuint8_t(214), Tuint8_t(215), 8533 Tuint8_t(216), Tuint8_t(217), Tuint8_t(218), Tuint8_t(219), Tuint8_t(220), Tuint8_t(221), Tuint8_t(222), Tuint8_t(223), 8534 Tuint8_t(224), Tuint8_t(225), Tuint8_t(226), Tuint8_t(227), Tuint8_t(228), Tuint8_t(229), Tuint8_t(230), Tuint8_t(231), 8535 Tuint8_t(232), Tuint8_t(233), Tuint8_t(234), Tuint8_t(235), Tuint8_t(236), Tuint8_t(237), Tuint8_t(238), Tuint8_t(239), 8536 Tuint8_t(240), Tuint8_t(241), Tuint8_t(242), Tuint8_t(243), Tuint8_t(244), Tuint8_t(245), Tuint8_t(246), Tuint8_t(247), 8537 Tuint8_t(248), Tuint8_t(249), Tuint8_t(250), Tuint8_t(251), Tuint8_t(252), Tuint8_t(253), Tuint8_t(254), Tuint8_t(255), 8538 8539 // This table is a case flipping table. 8540 8541 Tuint8_t(0), Tuint8_t(1), Tuint8_t(2), Tuint8_t(3), Tuint8_t(4), Tuint8_t(5), Tuint8_t(6), Tuint8_t(7), 8542 Tuint8_t(8), Tuint8_t(9), Tuint8_t(10), Tuint8_t(11), Tuint8_t(12), Tuint8_t(13), Tuint8_t(14), Tuint8_t(15), 8543 Tuint8_t(16), Tuint8_t(17), Tuint8_t(18), Tuint8_t(19), Tuint8_t(20), Tuint8_t(21), Tuint8_t(22), Tuint8_t(23), 8544 Tuint8_t(24), Tuint8_t(25), Tuint8_t(26), Tuint8_t(27), Tuint8_t(28), Tuint8_t(29), Tuint8_t(30), Tuint8_t(31), 8545 Tuint8_t(32), Tuint8_t(33), Tuint8_t(34), Tuint8_t(35), Tuint8_t(36), Tuint8_t(37), Tuint8_t(38), Tuint8_t(39), 8546 Tuint8_t(40), Tuint8_t(41), Tuint8_t(42), Tuint8_t(43), Tuint8_t(44), Tuint8_t(45), Tuint8_t(46), Tuint8_t(47), 8547 Tuint8_t(48), Tuint8_t(49), Tuint8_t(50), Tuint8_t(51), Tuint8_t(52), Tuint8_t(53), Tuint8_t(54), Tuint8_t(55), 8548 Tuint8_t(56), Tuint8_t(57), Tuint8_t(58), Tuint8_t(59), Tuint8_t(60), Tuint8_t(61), Tuint8_t(62), Tuint8_t(63), 8549 Tuint8_t(64), Tuint8_t(97), Tuint8_t(98), Tuint8_t(99), Tuint8_t(100), Tuint8_t(101), Tuint8_t(102), Tuint8_t(103), 8550 Tuint8_t(104), Tuint8_t(105), Tuint8_t(106), Tuint8_t(107), Tuint8_t(108), Tuint8_t(109), Tuint8_t(110), Tuint8_t(111), 8551 Tuint8_t(112), Tuint8_t(113), Tuint8_t(114), Tuint8_t(115), Tuint8_t(116), Tuint8_t(117), Tuint8_t(118), Tuint8_t(119), 8552 Tuint8_t(120), Tuint8_t(121), Tuint8_t(122), Tuint8_t(91), Tuint8_t(92), Tuint8_t(93), Tuint8_t(94), Tuint8_t(95), 8553 Tuint8_t(96), Tuint8_t(65), Tuint8_t(66), Tuint8_t(67), Tuint8_t(68), Tuint8_t(69), Tuint8_t(70), Tuint8_t(71), 8554 Tuint8_t(72), Tuint8_t(73), Tuint8_t(74), Tuint8_t(75), Tuint8_t(76), Tuint8_t(77), Tuint8_t(78), Tuint8_t(79), 8555 Tuint8_t(80), Tuint8_t(81), Tuint8_t(82), Tuint8_t(83), Tuint8_t(84), Tuint8_t(85), Tuint8_t(86), Tuint8_t(87), 8556 Tuint8_t(88), Tuint8_t(89), Tuint8_t(90), Tuint8_t(123), Tuint8_t(124), Tuint8_t(125), Tuint8_t(126), Tuint8_t(127), 8557 Tuint8_t(128), Tuint8_t(129), Tuint8_t(130), Tuint8_t(131), Tuint8_t(132), Tuint8_t(133), Tuint8_t(134), Tuint8_t(135), 8558 Tuint8_t(136), Tuint8_t(137), Tuint8_t(138), Tuint8_t(139), Tuint8_t(140), Tuint8_t(141), Tuint8_t(142), Tuint8_t(143), 8559 Tuint8_t(144), Tuint8_t(145), Tuint8_t(146), Tuint8_t(147), Tuint8_t(148), Tuint8_t(149), Tuint8_t(150), Tuint8_t(151), 8560 Tuint8_t(152), Tuint8_t(153), Tuint8_t(154), Tuint8_t(155), Tuint8_t(156), Tuint8_t(157), Tuint8_t(158), Tuint8_t(159), 8561 Tuint8_t(160), Tuint8_t(161), Tuint8_t(162), Tuint8_t(163), Tuint8_t(164), Tuint8_t(165), Tuint8_t(166), Tuint8_t(167), 8562 Tuint8_t(168), Tuint8_t(169), Tuint8_t(170), Tuint8_t(171), Tuint8_t(172), Tuint8_t(173), Tuint8_t(174), Tuint8_t(175), 8563 Tuint8_t(176), Tuint8_t(177), Tuint8_t(178), Tuint8_t(179), Tuint8_t(180), Tuint8_t(181), Tuint8_t(182), Tuint8_t(183), 8564 Tuint8_t(184), Tuint8_t(185), Tuint8_t(186), Tuint8_t(187), Tuint8_t(188), Tuint8_t(189), Tuint8_t(190), Tuint8_t(191), 8565 Tuint8_t(192), Tuint8_t(193), Tuint8_t(194), Tuint8_t(195), Tuint8_t(196), Tuint8_t(197), Tuint8_t(198), Tuint8_t(199), 8566 Tuint8_t(200), Tuint8_t(201), Tuint8_t(202), Tuint8_t(203), Tuint8_t(204), Tuint8_t(205), Tuint8_t(206), Tuint8_t(207), 8567 Tuint8_t(208), Tuint8_t(209), Tuint8_t(210), Tuint8_t(211), Tuint8_t(212), Tuint8_t(213), Tuint8_t(214), Tuint8_t(215), 8568 Tuint8_t(216), Tuint8_t(217), Tuint8_t(218), Tuint8_t(219), Tuint8_t(220), Tuint8_t(221), Tuint8_t(222), Tuint8_t(223), 8569 Tuint8_t(224), Tuint8_t(225), Tuint8_t(226), Tuint8_t(227), Tuint8_t(228), Tuint8_t(229), Tuint8_t(230), Tuint8_t(231), 8570 Tuint8_t(232), Tuint8_t(233), Tuint8_t(234), Tuint8_t(235), Tuint8_t(236), Tuint8_t(237), Tuint8_t(238), Tuint8_t(239), 8571 Tuint8_t(240), Tuint8_t(241), Tuint8_t(242), Tuint8_t(243), Tuint8_t(244), Tuint8_t(245), Tuint8_t(246), Tuint8_t(247), 8572 Tuint8_t(248), Tuint8_t(249), Tuint8_t(250), Tuint8_t(251), Tuint8_t(252), Tuint8_t(253), Tuint8_t(254), Tuint8_t(255), 8573 8574 // This table contains bit maps for various character classes. Each map is 32 8575 // bytes long and the bits run from the least significant end of each byte. The 8576 // classes that have their own maps are: space, xdigit, digit, upper, lower, word, 8577 // graph, print, punct, and cntrl. Other classes are built from combinations. 8578 8579 Tuint8_t(0x00), Tuint8_t(0x3e), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x01), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // space 8580 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8581 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8582 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8583 8584 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0xff), Tuint8_t(0x03), // xdigit 8585 Tuint8_t(0x7e), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x7e), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8586 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8587 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8588 8589 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0xff), Tuint8_t(0x03), // digit 8590 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8591 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8592 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8593 8594 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // upper 8595 Tuint8_t(0xfe), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0x07), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8596 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8597 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8598 8599 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // lower 8600 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0xfe), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0x07), 8601 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8602 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8603 8604 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0xff), Tuint8_t(0x03), // word 8605 Tuint8_t(0xfe), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0x87), Tuint8_t(0xfe), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0x07), 8606 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8607 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8608 8609 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0xfe), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // graph 8610 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0x7f), 8611 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8612 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8613 8614 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // print 8615 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0x7f), 8616 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8617 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8618 8619 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0xfe), Tuint8_t(0xff), Tuint8_t(0x00), Tuint8_t(0xfc), // punct 8620 Tuint8_t(0x01), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0xf8), Tuint8_t(0x01), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x78), 8621 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8622 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8623 8624 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // cntrl 8625 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x80), 8626 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8627 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), 8628 8629 // This table identifies various classes of character by individual bits: 8630 // 0x01 white space character 8631 // 0x02 letter 8632 // 0x04 lower case letter 8633 // 0x08 decimal digit 8634 // 0x10 alphanumeric or '_' 8635 8636 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 0- 7 8637 Tuint8_t(0x00), Tuint8_t(0x01), Tuint8_t(0x01), Tuint8_t(0x01), Tuint8_t(0x01), Tuint8_t(0x01), Tuint8_t(0x00), Tuint8_t(0x00), // 8- 15 8638 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 16- 23 8639 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 24- 31 8640 Tuint8_t(0x01), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // - ' 8641 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // ( - / 8642 Tuint8_t(0x18), Tuint8_t(0x18), Tuint8_t(0x18), Tuint8_t(0x18), Tuint8_t(0x18), Tuint8_t(0x18), Tuint8_t(0x18), Tuint8_t(0x18), // 0 - 7 8643 Tuint8_t(0x18), Tuint8_t(0x18), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 8 - ? 8644 Tuint8_t(0x00), Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), // @ - G 8645 Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), // H - O 8646 Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), // P - W 8647 Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x12), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x10), // X - _ 8648 Tuint8_t(0x00), Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), // ` - g 8649 Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), // h - o 8650 Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), // p - w 8651 Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x16), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // x -127 8652 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 128-135 8653 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 136-143 8654 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 144-151 8655 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 152-159 8656 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 160-167 8657 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 168-175 8658 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 176-183 8659 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 184-191 8660 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 192-199 8661 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 200-207 8662 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 208-215 8663 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 216-223 8664 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 224-231 8665 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 232-239 8666 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), // 240-247 8667 Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00), Tuint8_t(0x00)} /* pcre2_chartables.c:34:15 */ // 248-255 8668 8669 // End of pcre2_chartables.c 8670 8671 // ************************************************ 8672 // 8673 // Code parameters and static tables * 8674 // 8675 8676 // COMPILE_WORK_SIZE specifies the size of stack workspace, which is used in 8677 // different ways in the different pattern scans. The parsing and group- 8678 // identifying pre-scan uses it to handle nesting, and needs it to be 16-bit 8679 // aligned for this. Having defined the size in code units, we set up 8680 // C16_WORK_SIZE as the number of elements in the 16-bit vector. 8681 // 8682 // During the first compiling phase, when determining how much memory is required, 8683 // the regex is partly compiled into this space, but the compiled parts are 8684 // discarded as soon as they can be, so that hopefully there will never be an 8685 // overrun. The code does, however, check for an overrun, which can occur for 8686 // pathological patterns. The size of the workspace depends on LINK_SIZE because 8687 // the length of compiled items varies with this. 8688 // 8689 // In the real compile phase, this workspace is not currently used. 8690 8691 // A uint32_t vector is used for caching information about the size of 8692 // capturing groups, to improve performance. A default is created on the stack of 8693 // this size. 8694 8695 // The overrun tests check for a slightly smaller size so that they detect the 8696 // overrun before it actually does run off the end of the data block. 8697 8698 // This value determines the size of the initial vector that is used for 8699 // remembering named groups during the pre-compile. It is allocated on the stack, 8700 // but if it is too small, it is expanded, in a similar way to the workspace. The 8701 // value is the number of slots in the list. 8702 8703 // The pre-compiling pass over the pattern creates a parsed pattern in a vector 8704 // of uint32_t. For short patterns this lives on the stack, with this size. Heap 8705 // memory is used for longer patterns. 8706 8707 // Maximum length value to check against when making sure that the variable 8708 // that holds the compiled pattern length does not overflow. We make it a bit less 8709 // than INT_MAX to allow for adding in group terminating code units, so that we 8710 // don't have to check them every time. 8711 8712 // Code values for parsed patterns, which are stored in a vector of 32-bit 8713 // unsigned ints. Values less than META_END are literal data values. The coding 8714 // for identifying the item is in the top 16-bits, leaving 16 bits for the 8715 // additional data that some of them need. The META_CODE, META_DATA, and META_DIFF 8716 // macros are used to manipulate parsed pattern elements. 8717 // 8718 // NOTE: When these definitions are changed, the table of extra lengths for each 8719 // code (meta_extra_lengths, just below) must be updated to remain in step. 8720 8721 // These must be kept together to make it easy to check that an assertion 8722 // is present where expected in a conditional group. 8723 8724 // These cannot be conditions 8725 8726 // These must be kept in this order, with consecutive values, and the _ARG 8727 // versions of COMMIT, PRUNE, SKIP, and THEN immediately after their non-argument 8728 // versions. 8729 8730 // These must be kept in groups of adjacent 3 values, and all together. 8731 8732 // This is a special "meta code" that is used only to distinguish (*asr: from 8733 // (*sr: in the table of aphabetic assertions. It is never stored in the parsed 8734 // pattern because (*asr: is turned into (*sr:(*atomic: at that stage. There is 8735 // therefore no need for it to have a length entry, so use a high value. 8736 8737 // Table of extra lengths for each of the meta codes. Must be kept in step with 8738 // the definitions above. For some items these values are a basic length to which 8739 // a variable amount has to be added. 8740 8741 var meta_extra_lengths = [64]uint8{ 8742 uint8(0), // META_END 8743 uint8(0), // META_ALT 8744 uint8(0), // META_ATOMIC 8745 uint8(0), // META_BACKREF - more if group is >= 10 8746 uint8(1 + DSIZEOFFSET), 8747 uint8(1), // META_BIGVALUE 8748 uint8(3), // META_CALLOUT_NUMBER 8749 uint8(3 + DSIZEOFFSET), 8750 uint8(0), // META_CAPTURE 8751 uint8(0), // META_CIRCUMFLEX 8752 uint8(0), // META_CLASS 8753 uint8(0), // META_CLASS_EMPTY 8754 uint8(0), // META_CLASS_EMPTY_NOT 8755 uint8(0), // META_CLASS_END 8756 uint8(0), // META_CLASS_NOT 8757 uint8(0), // META_COND_ASSERT 8758 uint8(DSIZEOFFSET), // META_COND_DEFINE 8759 uint8(1 + DSIZEOFFSET), 8760 uint8(1 + DSIZEOFFSET), 8761 uint8(1 + DSIZEOFFSET), 8762 uint8(1 + DSIZEOFFSET), 8763 uint8(3), // META_COND_VERSION 8764 uint8(0), // META_DOLLAR 8765 uint8(0), // META_DOT 8766 uint8(0), // META_ESCAPE - more for ESC_P, ESC_p, ESC_g, ESC_k 8767 uint8(0), // META_KET 8768 uint8(0), // META_NOCAPTURE 8769 uint8(1), // META_OPTIONS 8770 uint8(1), // META_POSIX 8771 uint8(1), // META_POSIX_NEG 8772 uint8(0), // META_RANGE_ESCAPED 8773 uint8(0), // META_RANGE_LITERAL 8774 uint8(DSIZEOFFSET), // META_RECURSE 8775 uint8(1 + DSIZEOFFSET), 8776 uint8(0), // META_SCRIPT_RUN 8777 uint8(0), // META_LOOKAHEAD 8778 uint8(0), // META_LOOKAHEADNOT 8779 uint8(DSIZEOFFSET), // META_LOOKBEHIND 8780 uint8(DSIZEOFFSET), // META_LOOKBEHINDNOT 8781 uint8(0), // META_LOOKAHEAD_NA 8782 uint8(DSIZEOFFSET), // META_LOOKBEHIND_NA 8783 uint8(1), // META_MARK - plus the string length 8784 uint8(0), // META_ACCEPT 8785 uint8(0), // META_FAIL 8786 uint8(0), // META_COMMIT 8787 uint8(1), // META_COMMIT_ARG - plus the string length 8788 uint8(0), // META_PRUNE 8789 uint8(1), // META_PRUNE_ARG - plus the string length 8790 uint8(0), // META_SKIP 8791 uint8(1), // META_SKIP_ARG - plus the string length 8792 uint8(0), // META_THEN 8793 uint8(1), // META_THEN_ARG - plus the string length 8794 uint8(0), // META_ASTERISK 8795 uint8(0), // META_ASTERISK_PLUS 8796 uint8(0), // META_ASTERISK_QUERY 8797 uint8(0), // META_PLUS 8798 uint8(0), // META_PLUS_PLUS 8799 uint8(0), // META_PLUS_QUERY 8800 uint8(0), // META_QUERY 8801 uint8(0), // META_QUERY_PLUS 8802 uint8(0), // META_QUERY_QUERY 8803 uint8(2), // META_MINMAX 8804 uint8(2), // META_MINMAX_PLUS 8805 uint8(2), // META_MINMAX_QUERY 8806 } /* pcre2_compile.c:306:22 */ 8807 8808 // Macro for setting individual bits in class bitmaps. It took some 8809 // experimenting to figure out how to stop gcc 5.3.0 from warning with 8810 // -Wconversion. This version gets a warning: 8811 // 8812 // #define SETBIT(a,b) a[(b)/8] |= (uint8_t)(1u << ((b)&7)) 8813 // 8814 // Let's hope the apparently less efficient version isn't actually so bad if the 8815 // compiler is clever with identical subexpressions. 8816 8817 // Values and flags for the unsigned xxcuflags variables that accompany xxcu 8818 // variables, which are concerned with first and required code units. A value 8819 // greater than or equal to REQ_NONE means "no code unit set"; otherwise the 8820 // matching xxcu variable is set, and the low valued bits are relevant. 8821 8822 // These flags are used in the groupinfo vector. 8823 8824 // This simple test for a decimal digit works for both ASCII/Unicode and EBCDIC 8825 // and is fast (a good compiler can turn it into a subtraction and unsigned 8826 // comparison). 8827 8828 // Table to identify hex digits. The tables in chartables are dependent on the 8829 // locale, and may mark arbitrary characters as digits. We want to recognize only 8830 // 0-9, a-z, and A-Z as hex digits, which is why we have a private table here. It 8831 // costs 256 bytes, but it is a lot faster than doing character value tests (at 8832 // least in some simple cases I timed), and in some applications one wants PCRE2 8833 // to compile efficiently as well as match efficiently. The value in the table is 8834 // the binary hex digit value, or 0xff for non-hex digits. 8835 8836 // This is the "normal" case, for ASCII systems, and EBCDIC systems running in 8837 // UTF-8 mode. 8838 8839 var xdigitab = [256]Tuint8_t{ 8840 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 0- 7 8841 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 8- 15 8842 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 16- 23 8843 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 24- 31 8844 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // - ' 8845 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // ( - / 8846 Tuint8_t(0x00), Tuint8_t(0x01), Tuint8_t(0x02), Tuint8_t(0x03), Tuint8_t(0x04), Tuint8_t(0x05), Tuint8_t(0x06), Tuint8_t(0x07), // 0 - 7 8847 Tuint8_t(0x08), Tuint8_t(0x09), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 8 - ? 8848 Tuint8_t(0xff), Tuint8_t(0x0a), Tuint8_t(0x0b), Tuint8_t(0x0c), Tuint8_t(0x0d), Tuint8_t(0x0e), Tuint8_t(0x0f), Tuint8_t(0xff), // @ - G 8849 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // H - O 8850 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // P - W 8851 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // X - _ 8852 Tuint8_t(0xff), Tuint8_t(0x0a), Tuint8_t(0x0b), Tuint8_t(0x0c), Tuint8_t(0x0d), Tuint8_t(0x0e), Tuint8_t(0x0f), Tuint8_t(0xff), // ` - g 8853 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // h - o 8854 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // p - w 8855 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // x -127 8856 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 128-135 8857 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 136-143 8858 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 144-151 8859 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 152-159 8860 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 160-167 8861 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 168-175 8862 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 176-183 8863 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 184-191 8864 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 192-199 8865 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 2ff-207 8866 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 208-215 8867 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 216-223 8868 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 224-231 8869 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 232-239 8870 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), // 240-247 8871 Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff), Tuint8_t(0xff)} /* pcre2_compile.c:422:22 */ // 248-255 8872 8873 // Table for handling alphanumeric escaped characters. Positive returns are 8874 // simple data values; negative values are for special things like \d and so on. 8875 // Zero means further processing is needed (for things like \x), or the escape is 8876 // invalid. 8877 8878 // This is the "normal" table for ASCII systems or for EBCDIC systems running 8879 // in UTF-8 mode. It runs from '0' to 'z'. 8880 8881 var escapes = [75]int16{ 8882 int16(0), int16(0), 8883 int16(0), int16(0), 8884 int16(0), int16(0), 8885 int16(0), int16(0), 8886 int16(0), int16(0), 8887 int16('\072'), int16('\073'), 8888 int16('\074'), int16('\075'), 8889 int16('\076'), int16('\077'), 8890 int16('\100'), int16(-ESC_A), 8891 int16(-ESC_B), int16(-ESC_C), 8892 int16(-ESC_D), int16(-ESC_E), 8893 int16(0), int16(-ESC_G), 8894 int16(-ESC_H), int16(0), 8895 int16(0), int16(-ESC_K), 8896 int16(0), int16(0), 8897 int16(-ESC_N), int16(0), 8898 int16(-ESC_P), int16(-ESC_Q), 8899 int16(-ESC_R), int16(-ESC_S), 8900 int16(0), int16(0), 8901 int16(-ESC_V), int16(-ESC_W), 8902 int16(-ESC_X), int16(0), 8903 int16(-ESC_Z), int16('\133'), 8904 int16('\134'), int16('\135'), 8905 int16('\136'), int16('\137'), 8906 int16('\140'), int16('\007'), 8907 int16(-ESC_b), int16(0), 8908 int16(-ESC_d), int16('\033'), 8909 int16('\014'), int16(0), 8910 int16(-ESC_h), int16(0), 8911 int16(0), int16(-ESC_k), 8912 int16(0), int16(0), 8913 int16('\012'), int16(0), 8914 int16(-ESC_p), int16(0), 8915 int16('\015'), int16(-ESC_s), 8916 int16('\011'), int16(0), 8917 int16(-ESC_v), int16(-ESC_w), 8918 int16(0), int16(0), 8919 int16(-ESC_z), 8920 } /* pcre2_compile.c:511:24 */ 8921 8922 // Table of special "verbs" like (*PRUNE). This is a short table, so it is 8923 // searched linearly. Put all the names into a single string, in order to reduce 8924 // the number of relocations when a shared library is dynamically linked. The 8925 // string is built from string macros so that it works in UTF-8 mode on EBCDIC 8926 // platforms. 8927 8928 type Sverbitem = struct { 8929 Flen uint32 8930 Fmeta Tuint32_t 8931 Fhas_arg int32 8932 } /* pcre2_compile.c:602:9 */ 8933 8934 // Table of special "verbs" like (*PRUNE). This is a short table, so it is 8935 // searched linearly. Put all the names into a single string, in order to reduce 8936 // the number of relocations when a shared library is dynamically linked. The 8937 // string is built from string macros so that it works in UTF-8 mode on EBCDIC 8938 // platforms. 8939 8940 type Tverbitem = Sverbitem /* pcre2_compile.c:606:3 */ 8941 8942 var verbnames = 8943 // Empty name is a shorthand for MARK 8944 8945 *(*[43]int8)(unsafe.Pointer(ts)) /* pcre2_compile.c:608:19 */ 8946 8947 var verbs = [9]Tverbitem{ 8948 {Fmeta: DMETA_MARK, Fhas_arg: +1}, // > 0 => must have an argument 8949 {Flen: uint32(4), Fmeta: DMETA_MARK, Fhas_arg: +1}, 8950 {Flen: uint32(6), Fmeta: DMETA_ACCEPT, Fhas_arg: -1}, // < 0 => Optional argument, convert to pre-MARK 8951 {Flen: uint32(1), Fmeta: DMETA_FAIL, Fhas_arg: -1}, 8952 {Flen: uint32(4), Fmeta: DMETA_FAIL, Fhas_arg: -1}, 8953 {Flen: uint32(6), Fmeta: DMETA_COMMIT}, 8954 {Flen: uint32(5), Fmeta: DMETA_PRUNE}, // Optional argument; bump META code if found 8955 {Flen: uint32(4), Fmeta: DMETA_SKIP}, 8956 {Flen: uint32(4), Fmeta: DMETA_THEN}, 8957 } /* pcre2_compile.c:619:23 */ 8958 8959 var verbcount int32 = int32(uint64(unsafe.Sizeof(verbs)) / uint64(unsafe.Sizeof(Tverbitem{}))) /* pcre2_compile.c:631:18 */ 8960 8961 // Verb opcodes, indexed by their META code offset from META_MARK. 8962 8963 var verbops = [11]Tuint32_t{ 8964 OP_MARK, OP_ACCEPT, OP_FAIL, OP_COMMIT, OP_COMMIT_ARG, OP_PRUNE, 8965 OP_PRUNE_ARG, OP_SKIP, OP_SKIP_ARG, OP_THEN, OP_THEN_ARG} /* pcre2_compile.c:635:23 */ 8966 8967 // Table of "alpha assertions" like (*pla:...), similar to the (*VERB) table. 8968 8969 type Salasitem = struct { 8970 Flen uint32 8971 Fmeta Tuint32_t 8972 } /* pcre2_compile.c:641:9 */ 8973 8974 // Table of "alpha assertions" like (*pla:...), similar to the (*VERB) table. 8975 8976 type Talasitem = Salasitem /* pcre2_compile.c:644:3 */ 8977 8978 var alasnames = *(*[210]int8)(unsafe.Pointer(ts + 43)) /* pcre2_compile.c:646:19 */ 8979 8980 var alasmeta = [17]Talasitem{ 8981 {Flen: uint32(3), Fmeta: DMETA_LOOKAHEAD}, 8982 {Flen: uint32(3), Fmeta: DMETA_LOOKBEHIND}, 8983 {Flen: uint32(5), Fmeta: DMETA_LOOKAHEAD_NA}, 8984 {Flen: uint32(5), Fmeta: DMETA_LOOKBEHIND_NA}, 8985 {Flen: uint32(3), Fmeta: DMETA_LOOKAHEADNOT}, 8986 {Flen: uint32(3), Fmeta: DMETA_LOOKBEHINDNOT}, 8987 {Flen: uint32(18), Fmeta: DMETA_LOOKAHEAD}, 8988 {Flen: uint32(19), Fmeta: DMETA_LOOKBEHIND}, 8989 {Flen: uint32(29), Fmeta: DMETA_LOOKAHEAD_NA}, 8990 {Flen: uint32(30), Fmeta: DMETA_LOOKBEHIND_NA}, 8991 {Flen: uint32(18), Fmeta: DMETA_LOOKAHEADNOT}, 8992 {Flen: uint32(19), Fmeta: DMETA_LOOKBEHINDNOT}, 8993 {Flen: uint32(6), Fmeta: DMETA_ATOMIC}, 8994 {Flen: uint32(2), Fmeta: DMETA_SCRIPT_RUN}, // sr = script run 8995 {Flen: uint32(3), Fmeta: DMETA_ATOMIC_SCRIPT_RUN}, // asr = atomic script run 8996 {Flen: uint32(10), Fmeta: DMETA_SCRIPT_RUN}, // script run 8997 {Flen: uint32(17), Fmeta: DMETA_ATOMIC_SCRIPT_RUN}, // atomic script run 8998 } /* pcre2_compile.c:665:23 */ 8999 9000 var alascount int32 = int32(uint64(unsafe.Sizeof(alasmeta)) / uint64(unsafe.Sizeof(Talasitem{}))) /* pcre2_compile.c:685:18 */ 9001 9002 // Offsets from OP_STAR for case-independent and negative repeat opcodes. 9003 9004 var chartypeoffset = [4]Tuint32_t{ 9005 Tuint32_t(OP_STAR - OP_STAR), Tuint32_t(OP_STARI - OP_STAR), 9006 Tuint32_t(OP_NOTSTAR - OP_STAR), Tuint32_t(OP_NOTSTARI - OP_STAR)} /* pcre2_compile.c:689:17 */ 9007 9008 // Tables of names of POSIX character classes and their lengths. The names are 9009 // now all in a single string, to reduce the number of relocations when a shared 9010 // library is dynamically loaded. The list of lengths is terminated by a zero 9011 // length entry. The first three must be alpha, lower, upper, as this is assumed 9012 // for handling case independence. The indices for graph, print, and punct are 9013 // needed, so identify them. 9014 9015 var posix_names = *(*[84]int8)(unsafe.Pointer(ts + 253)) /* pcre2_compile.c:700:19 */ 9016 9017 var posix_name_lengths = [15]Tuint8_t{ 9018 Tuint8_t(5), Tuint8_t(5), Tuint8_t(5), Tuint8_t(5), Tuint8_t(5), Tuint8_t(5), Tuint8_t(5), Tuint8_t(5), Tuint8_t(5), Tuint8_t(5), Tuint8_t(5), Tuint8_t(5), Tuint8_t(4), Tuint8_t(6), Tuint8_t(0)} /* pcre2_compile.c:706:22 */ 9019 9020 // Table of class bit maps for each POSIX class. Each class is formed from a 9021 // base map, with an optional addition or removal of another map. Then, for some 9022 // classes, there is some additional tweaking: for [:blank:] the vertical space 9023 // characters are removed, and for [:alpha:] and [:alnum:] the underscore 9024 // character is removed. The triples in the table consist of the base map offset, 9025 // second map offset or -1 if no second map, and a non-negative value for map 9026 // addition or a negative value for map subtraction (if there are two maps). The 9027 // absolute value of the third field has these meanings: 0 => no tweaking, 1 => 9028 // remove vertical space characters, 2 => remove underscore. 9029 9030 var posix_class_maps = [42]int32{ 9031 Dcbit_word, Dcbit_digit, -2, // alpha 9032 Dcbit_lower, -1, 0, // lower 9033 Dcbit_upper, -1, 0, // upper 9034 Dcbit_word, -1, 2, // alnum - word without underscore 9035 Dcbit_print, Dcbit_cntrl, 0, // ascii 9036 Dcbit_space, -1, 1, // blank - a GNU extension 9037 Dcbit_cntrl, -1, 0, // cntrl 9038 Dcbit_digit, -1, 0, // digit 9039 Dcbit_graph, -1, 0, // graph 9040 Dcbit_print, -1, 0, // print 9041 Dcbit_punct, -1, 0, // punct 9042 Dcbit_space, -1, 0, // space 9043 Dcbit_word, -1, 0, // word - a Perl extension 9044 Dcbit_xdigit, -1, 0, // xdigit 9045 } /* pcre2_compile.c:723:18 */ 9046 9047 // The POSIX class Unicode property substitutes that are used in UCP mode must 9048 // be in the order of the POSIX class names, defined above. 9049 9050 var posix_substitutes = [28]int32{ 9051 DPT_GC, ucp_L, // alpha 9052 DPT_PC, ucp_Ll, // lower 9053 DPT_PC, ucp_Lu, // upper 9054 DPT_ALNUM, 0, // alnum 9055 -1, 0, // ascii, treat as non-UCP 9056 -1, 1, // blank, treat as \h 9057 DPT_PC, ucp_Cc, // cntrl 9058 DPT_PC, ucp_Nd, // digit 9059 DPT_PXGRAPH, 0, // graph 9060 DPT_PXPRINT, 0, // print 9061 DPT_PXPUNCT, 0, // punct 9062 DPT_PXSPACE, 0, /* space */ // Xps is POSIX space, but from 8.34 9063 DPT_WORD, 0, /* word */ // Perl and POSIX space are the same 9064 -1, 0, // xdigit, treat as non-UCP 9065 } /* pcre2_compile.c:745:12 */ // Read integer value for depth limit 9066 9067 type Spso = struct { 9068 Fname uintptr 9069 Flength Tuint16_t 9070 Ftype Tuint16_t 9071 Fvalue Tuint32_t 9072 } /* pcre2_compile.c:822:9 */ 9073 9074 // Read integer value for depth limit 9075 9076 type Tpso = Spso /* pcre2_compile.c:827:3 */ 9077 9078 // NB: STRING_UTFn_RIGHTPAR contains the length as well 9079 9080 var pso_list = [21]Tpso{ 9081 {Fname: uintptr(ts + 337), Flength: Tuint16_t(5), Fvalue: DPCRE2_UTF}, 9082 {Fname: uintptr(ts + 343), Flength: Tuint16_t(4), Fvalue: DPCRE2_UTF}, 9083 {Fname: uintptr(ts + 348), Flength: Tuint16_t(4), Fvalue: DPCRE2_UCP}, 9084 {Fname: uintptr(ts + 353), Flength: Tuint16_t(9), Ftype: PSO_FLG, Fvalue: Tuint32_t(DPCRE2_NOTEMPTY_SET)}, 9085 {Fname: uintptr(ts + 363), Flength: Tuint16_t(17), Ftype: PSO_FLG, Fvalue: Tuint32_t(DPCRE2_NE_ATST_SET)}, 9086 {Fname: uintptr(ts + 381), Flength: Tuint16_t(16), Fvalue: DPCRE2_NO_AUTO_POSSESS}, 9087 {Fname: uintptr(ts + 398), Flength: Tuint16_t(18), Fvalue: DPCRE2_NO_DOTSTAR_ANCHOR}, 9088 {Fname: uintptr(ts + 417), Flength: Tuint16_t(7), Ftype: PSO_FLG, Fvalue: Tuint32_t(DPCRE2_NOJIT)}, 9089 {Fname: uintptr(ts + 425), Flength: Tuint16_t(13), Fvalue: DPCRE2_NO_START_OPTIMIZE}, 9090 {Fname: uintptr(ts + 439), Flength: Tuint16_t(11), Ftype: PSO_LIMH}, 9091 {Fname: uintptr(ts + 451), Flength: Tuint16_t(12), Ftype: PSO_LIMM}, 9092 {Fname: uintptr(ts + 464), Flength: Tuint16_t(12), Ftype: PSO_LIMD}, 9093 {Fname: uintptr(ts + 477), Flength: Tuint16_t(16), Ftype: PSO_LIMD}, 9094 {Fname: uintptr(ts + 494), Flength: Tuint16_t(3), Ftype: PSO_NL, Fvalue: Tuint32_t(DPCRE2_NEWLINE_CR)}, 9095 {Fname: uintptr(ts + 498), Flength: Tuint16_t(3), Ftype: PSO_NL, Fvalue: Tuint32_t(DPCRE2_NEWLINE_LF)}, 9096 {Fname: uintptr(ts + 502), Flength: Tuint16_t(5), Ftype: PSO_NL, Fvalue: Tuint32_t(DPCRE2_NEWLINE_CRLF)}, 9097 {Fname: uintptr(ts + 508), Flength: Tuint16_t(4), Ftype: PSO_NL, Fvalue: Tuint32_t(DPCRE2_NEWLINE_ANY)}, 9098 {Fname: uintptr(ts + 513), Flength: Tuint16_t(4), Ftype: PSO_NL, Fvalue: Tuint32_t(DPCRE2_NEWLINE_NUL)}, 9099 {Fname: uintptr(ts + 518), Flength: Tuint16_t(8), Ftype: PSO_NL, Fvalue: Tuint32_t(DPCRE2_NEWLINE_ANYCRLF)}, 9100 {Fname: uintptr(ts + 527), Flength: Tuint16_t(12), Ftype: PSO_BSR, Fvalue: Tuint32_t(DPCRE2_BSR_ANYCRLF)}, 9101 {Fname: uintptr(ts + 540), Flength: Tuint16_t(12), Ftype: PSO_BSR, Fvalue: Tuint32_t(DPCRE2_BSR_UNICODE)}, 9102 } /* pcre2_compile.c:831:12 */ 9103 9104 // This table is used when converting repeating opcodes into possessified 9105 // versions as a result of an explicit possessive quantifier such as ++. A zero 9106 // value means there is no possessified version - in those cases the item in 9107 // question must be wrapped in ONCE brackets. The table is truncated at OP_CALLOUT 9108 // because all relevant opcodes are less than that. 9109 9110 var opcode_possessify = [119]Tuint8_t{ 9111 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // 0 - 15 9112 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // 16 - 31 9113 9114 Tuint8_t(0), // NOTI 9115 OP_POSSTAR, Tuint8_t(0), // STAR, MINSTAR 9116 OP_POSPLUS, Tuint8_t(0), // PLUS, MINPLUS 9117 OP_POSQUERY, Tuint8_t(0), // QUERY, MINQUERY 9118 OP_POSUPTO, Tuint8_t(0), // UPTO, MINUPTO 9119 Tuint8_t(0), // EXACT 9120 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // POS{STAR,PLUS,QUERY,UPTO} 9121 9122 OP_POSSTARI, Tuint8_t(0), // STARI, MINSTARI 9123 OP_POSPLUSI, Tuint8_t(0), // PLUSI, MINPLUSI 9124 OP_POSQUERYI, Tuint8_t(0), // QUERYI, MINQUERYI 9125 OP_POSUPTOI, Tuint8_t(0), // UPTOI, MINUPTOI 9126 Tuint8_t(0), // EXACTI 9127 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // POS{STARI,PLUSI,QUERYI,UPTOI} 9128 9129 OP_NOTPOSSTAR, Tuint8_t(0), // NOTSTAR, NOTMINSTAR 9130 OP_NOTPOSPLUS, Tuint8_t(0), // NOTPLUS, NOTMINPLUS 9131 OP_NOTPOSQUERY, Tuint8_t(0), // NOTQUERY, NOTMINQUERY 9132 OP_NOTPOSUPTO, Tuint8_t(0), // NOTUPTO, NOTMINUPTO 9133 Tuint8_t(0), // NOTEXACT 9134 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // NOTPOS{STAR,PLUS,QUERY,UPTO} 9135 9136 OP_NOTPOSSTARI, Tuint8_t(0), // NOTSTARI, NOTMINSTARI 9137 OP_NOTPOSPLUSI, Tuint8_t(0), // NOTPLUSI, NOTMINPLUSI 9138 OP_NOTPOSQUERYI, Tuint8_t(0), // NOTQUERYI, NOTMINQUERYI 9139 OP_NOTPOSUPTOI, Tuint8_t(0), // NOTUPTOI, NOTMINUPTOI 9140 Tuint8_t(0), // NOTEXACTI 9141 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // NOTPOS{STARI,PLUSI,QUERYI,UPTOI} 9142 9143 OP_TYPEPOSSTAR, Tuint8_t(0), // TYPESTAR, TYPEMINSTAR 9144 OP_TYPEPOSPLUS, Tuint8_t(0), // TYPEPLUS, TYPEMINPLUS 9145 OP_TYPEPOSQUERY, Tuint8_t(0), // TYPEQUERY, TYPEMINQUERY 9146 OP_TYPEPOSUPTO, Tuint8_t(0), // TYPEUPTO, TYPEMINUPTO 9147 Tuint8_t(0), // TYPEEXACT 9148 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // TYPEPOS{STAR,PLUS,QUERY,UPTO} 9149 9150 OP_CRPOSSTAR, Tuint8_t(0), // CRSTAR, CRMINSTAR 9151 OP_CRPOSPLUS, Tuint8_t(0), // CRPLUS, CRMINPLUS 9152 OP_CRPOSQUERY, Tuint8_t(0), // CRQUERY, CRMINQUERY 9153 OP_CRPOSRANGE, Tuint8_t(0), // CRRANGE, CRMINRANGE 9154 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // CRPOS{STAR,PLUS,QUERY,RANGE} 9155 9156 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // CLASS, NCLASS, XCLASS 9157 Tuint8_t(0), Tuint8_t(0), // REF, REFI 9158 Tuint8_t(0), Tuint8_t(0), // DNREF, DNREFI 9159 Tuint8_t(0), Tuint8_t(0), // RECURSE, CALLOUT 9160 } /* pcre2_compile.c:861:22 */ 9161 9162 // ************************************************ 9163 // 9164 // Copy compiled code * 9165 // 9166 9167 // Compiled JIT code cannot be copied, so the new compiled block has no 9168 // associated JIT data. 9169 9170 func Xpcre2_code_copy_8(tls *libc.TLS, code uintptr) uintptr { /* pcre2_compile.c:1193:27: */ 9171 var ref_count uintptr 9172 var newcode uintptr 9173 9174 if code == uintptr(0) { 9175 return uintptr(0) 9176 } 9177 newcode = (*struct { 9178 f func(*libc.TLS, Tsize_t, uintptr) uintptr 9179 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_code_8)(unsafe.Pointer(code)).Fmemctl.Fmalloc})).f(tls, (*Tpcre2_code_8)(unsafe.Pointer(code)).Fblocksize, (*Tpcre2_code_8)(unsafe.Pointer(code)).Fmemctl.Fmemory_data) 9180 if newcode == uintptr(0) { 9181 return uintptr(0) 9182 } 9183 libc.Xmemcpy(tls, newcode, code, (*Tpcre2_code_8)(unsafe.Pointer(code)).Fblocksize) 9184 (*Tpcre2_code_8)(unsafe.Pointer(newcode)).Fexecutable_jit = uintptr(0) 9185 9186 // If the code is one that has been deserialized, increment the reference count 9187 // in the decoded tables. 9188 9189 if (*Tpcre2_code_8)(unsafe.Pointer(code)).Fflags&Tuint32_t(DPCRE2_DEREF_TABLES) != Tuint32_t(0) { 9190 ref_count = (*Tpcre2_code_8)(unsafe.Pointer(code)).Ftables + uintptr(Dcbits_offset+Dcbit_length+256) 9191 *(*Tsize_t)(unsafe.Pointer(ref_count))++ 9192 } 9193 9194 return newcode 9195 } 9196 9197 // ************************************************ 9198 // 9199 // Copy compiled code and character tables * 9200 // 9201 9202 // Compiled JIT code cannot be copied, so the new compiled block has no 9203 // associated JIT data. This version of code_copy also makes a separate copy of 9204 // the character tables. 9205 9206 func Xpcre2_code_copy_with_tables_8(tls *libc.TLS, code uintptr) uintptr { /* pcre2_compile.c:1227:27: */ 9207 var ref_count uintptr 9208 var newcode uintptr 9209 var newtables uintptr 9210 9211 if code == uintptr(0) { 9212 return uintptr(0) 9213 } 9214 newcode = (*struct { 9215 f func(*libc.TLS, Tsize_t, uintptr) uintptr 9216 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_code_8)(unsafe.Pointer(code)).Fmemctl.Fmalloc})).f(tls, (*Tpcre2_code_8)(unsafe.Pointer(code)).Fblocksize, (*Tpcre2_code_8)(unsafe.Pointer(code)).Fmemctl.Fmemory_data) 9217 if newcode == uintptr(0) { 9218 return uintptr(0) 9219 } 9220 libc.Xmemcpy(tls, newcode, code, (*Tpcre2_code_8)(unsafe.Pointer(code)).Fblocksize) 9221 (*Tpcre2_code_8)(unsafe.Pointer(newcode)).Fexecutable_jit = uintptr(0) 9222 9223 newtables = (*struct { 9224 f func(*libc.TLS, Tsize_t, uintptr) uintptr 9225 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_code_8)(unsafe.Pointer(code)).Fmemctl.Fmalloc})).f(tls, uint64(Dcbits_offset+Dcbit_length+256)+uint64(unsafe.Sizeof(Tsize_t(0))), 9226 (*Tpcre2_code_8)(unsafe.Pointer(code)).Fmemctl.Fmemory_data) 9227 if newtables == uintptr(0) { 9228 (*struct { 9229 f func(*libc.TLS, uintptr, uintptr) 9230 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_code_8)(unsafe.Pointer(code)).Fmemctl.Ffree})).f(tls, newcode, (*Tpcre2_code_8)(unsafe.Pointer(code)).Fmemctl.Fmemory_data) 9231 return uintptr(0) 9232 } 9233 libc.Xmemcpy(tls, newtables, (*Tpcre2_code_8)(unsafe.Pointer(code)).Ftables, uint64(Dcbits_offset+Dcbit_length+256)) 9234 ref_count = newtables + uintptr(Dcbits_offset+Dcbit_length+256) 9235 *(*Tsize_t)(unsafe.Pointer(ref_count)) = uint64(1) 9236 9237 (*Tpcre2_code_8)(unsafe.Pointer(newcode)).Ftables = newtables 9238 *(*Tuint32_t)(unsafe.Pointer(newcode + 96)) |= Tuint32_t(DPCRE2_DEREF_TABLES) 9239 return newcode 9240 } 9241 9242 // ************************************************ 9243 // 9244 // Free compiled code * 9245 // 9246 9247 func Xpcre2_code_free_8(tls *libc.TLS, code uintptr) { /* pcre2_compile.c:1263:1: */ 9248 var ref_count uintptr 9249 9250 if code != uintptr(0) { 9251 if (*Tpcre2_code_8)(unsafe.Pointer(code)).Fexecutable_jit != uintptr(0) { 9252 X_pcre2_jit_free_8(tls, (*Tpcre2_code_8)(unsafe.Pointer(code)).Fexecutable_jit, code) 9253 } 9254 9255 if (*Tpcre2_code_8)(unsafe.Pointer(code)).Fflags&Tuint32_t(DPCRE2_DEREF_TABLES) != Tuint32_t(0) { 9256 // Decoded tables belong to the codes after deserialization, and they must 9257 // be freed when there are no more references to them. The *ref_count should 9258 // always be > 0. 9259 9260 ref_count = (*Tpcre2_code_8)(unsafe.Pointer(code)).Ftables + uintptr(Dcbits_offset+Dcbit_length+256) 9261 if *(*Tsize_t)(unsafe.Pointer(ref_count)) > uint64(0) { 9262 *(*Tsize_t)(unsafe.Pointer(ref_count))-- 9263 if *(*Tsize_t)(unsafe.Pointer(ref_count)) == uint64(0) { 9264 (*struct { 9265 f func(*libc.TLS, uintptr, uintptr) 9266 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_code_8)(unsafe.Pointer(code)).Fmemctl.Ffree})).f(tls, (*Tpcre2_code_8)(unsafe.Pointer(code)).Ftables, (*Tpcre2_code_8)(unsafe.Pointer(code)).Fmemctl.Fmemory_data) 9267 } 9268 } 9269 } 9270 9271 (*struct { 9272 f func(*libc.TLS, uintptr, uintptr) 9273 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_code_8)(unsafe.Pointer(code)).Fmemctl.Ffree})).f(tls, code, (*Tpcre2_code_8)(unsafe.Pointer(code)).Fmemctl.Fmemory_data) 9274 } 9275 } 9276 9277 // ************************************************ 9278 // 9279 // Read a number, possibly signed * 9280 // 9281 9282 // This function is used to read numbers in the pattern. The initial pointer 9283 // must be the sign or first digit of the number. When relative values (introduced 9284 // by + or -) are allowed, they are relative group numbers, and the result must be 9285 // greater than zero. 9286 // 9287 // Arguments: 9288 // ptrptr points to the character pointer variable 9289 // ptrend points to the end of the input string 9290 // allow_sign if < 0, sign not allowed; if >= 0, sign is relative to this 9291 // max_value the largest number allowed 9292 // max_error the error to give for an over-large number 9293 // intptr where to put the result 9294 // errcodeptr where to put an error code 9295 // 9296 // Returns: TRUE - a number was read 9297 // FALSE - errorcode == 0 => no number was found 9298 // errorcode != 0 => an error occurred 9299 9300 func read_number(tls *libc.TLS, ptrptr uintptr, ptrend TPCRE2_SPTR8, allow_sign Tint32_t, max_value Tuint32_t, max_error Tuint32_t, intptr uintptr, errorcodeptr uintptr) TBOOL { /* pcre2_compile.c:1317:1: */ 9301 var sign int32 9302 var n Tuint32_t 9303 var ptr TPCRE2_SPTR8 9304 var yield TBOOL 9305 sign = 0 9306 n = Tuint32_t(0) 9307 ptr = *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) 9308 yield = DFALSE 9309 9310 *(*int32)(unsafe.Pointer(errorcodeptr)) = 0 9311 9312 if !(allow_sign >= 0 && ptr < ptrend) { 9313 goto __1 9314 } 9315 9316 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == '\053') { 9317 goto __2 9318 } 9319 9320 sign = +1 9321 max_value = max_value - Tuint32_t(allow_sign) 9322 ptr++ 9323 goto __3 9324 __2: 9325 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == '\055') { 9326 goto __4 9327 } 9328 9329 sign = -1 9330 ptr++ 9331 __4: 9332 ; 9333 __3: 9334 ; 9335 __1: 9336 ; 9337 9338 if !(ptr >= ptrend || !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) <= '\071')) { 9339 goto __5 9340 } 9341 return DFALSE 9342 __5: 9343 ; 9344 __6: 9345 if !(ptr < ptrend && (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) <= '\071')) { 9346 goto __7 9347 } 9348 9349 n = n*Tuint32_t(10) + Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&ptr, 1)))) - Tuint32_t('\060') 9350 if !(n > max_value) { 9351 goto __8 9352 } 9353 9354 *(*int32)(unsafe.Pointer(errorcodeptr)) = int32(max_error) 9355 goto EXIT 9356 __8: 9357 ; 9358 goto __6 9359 __7: 9360 ; 9361 9362 if !(allow_sign >= 0 && sign != 0) { 9363 goto __9 9364 } 9365 9366 if !(n == Tuint32_t(0)) { 9367 goto __10 9368 } 9369 9370 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR26 // +0 and -0 are not allowed 9371 goto EXIT 9372 __10: 9373 ; 9374 9375 if !(sign > 0) { 9376 goto __11 9377 } 9378 n = n + Tuint32_t(allow_sign) 9379 goto __12 9380 __11: 9381 if !(int32(n) > allow_sign) { 9382 goto __13 9383 } 9384 9385 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR15 // Non-existent subpattern 9386 goto EXIT 9387 goto __14 9388 __13: 9389 n = Tuint32_t(allow_sign+1) - n 9390 __14: 9391 ; 9392 __12: 9393 ; 9394 __9: 9395 ; 9396 9397 yield = DTRUE 9398 9399 EXIT: 9400 *(*int32)(unsafe.Pointer(intptr)) = int32(n) 9401 *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) = ptr 9402 return yield 9403 } 9404 9405 // ************************************************ 9406 // 9407 // Read repeat counts * 9408 // 9409 9410 // Read an item of the form {n,m} and return the values if non-NULL pointers 9411 // are supplied. Repeat counts must be less than 65536 (MAX_REPEAT_COUNT); a 9412 // larger value is used for "unlimited". We have to use signed arguments for 9413 // read_number() because it is capable of returning a signed value. 9414 // 9415 // Arguments: 9416 // ptrptr points to pointer to character after'{' 9417 // ptrend pointer to end of input 9418 // minp if not NULL, pointer to int for min 9419 // maxp if not NULL, pointer to int for max (-1 if no max) 9420 // returned as -1 if no max 9421 // errorcodeptr points to error code variable 9422 // 9423 // Returns: FALSE if not a repeat quantifier, errorcode set zero 9424 // FALSE on error, with errorcode set non-zero 9425 // TRUE on success, with pointer updated to point after '}' 9426 9427 func read_repeat_counts(tls *libc.TLS, ptrptr uintptr, ptrend TPCRE2_SPTR8, minp uintptr, maxp uintptr, errorcodeptr uintptr) TBOOL { /* pcre2_compile.c:1403:1: */ 9428 bp := tls.Alloc(16) 9429 defer tls.Free(16) 9430 9431 // var p TPCRE2_SPTR8 at bp, 8 9432 9433 var yield TBOOL 9434 var had_comma TBOOL 9435 // var min Tint32_t at bp+8, 4 9436 9437 // var max Tint32_t at bp+12, 4 9438 9439 var c Tuint32_t 9440 yield = DFALSE 9441 had_comma = DFALSE 9442 *(*Tint32_t)(unsafe.Pointer(bp + 8 /* min */)) = 0 9443 *(*Tint32_t)(unsafe.Pointer(bp + 12 /* max */)) = int32(DMAX_REPEAT_COUNT + uint32(1)) // This value is larger than MAX_REPEAT_COUNT 9444 9445 // Check the syntax 9446 9447 *(*int32)(unsafe.Pointer(errorcodeptr)) = 0 9448 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* p */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) 9449 __1: 9450 ; 9451 9452 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp)) >= ptrend) { 9453 goto __4 9454 } 9455 return DFALSE 9456 __4: 9457 ; 9458 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* p */))))) 9459 if !(c >= Tuint32_t('\060') && c <= Tuint32_t('\071')) { 9460 goto __5 9461 } 9462 goto __2 9463 __5: 9464 ; 9465 if !(c == Tuint32_t('\175')) { 9466 goto __6 9467 } 9468 goto __3 9469 __6: 9470 ; 9471 if !(c == Tuint32_t('\054')) { 9472 goto __7 9473 } 9474 9475 if !(had_comma != 0) { 9476 goto __9 9477 } 9478 return DFALSE 9479 __9: 9480 ; 9481 had_comma = DTRUE 9482 goto __8 9483 __7: 9484 return DFALSE 9485 __8: 9486 ; 9487 goto __2 9488 __2: 9489 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* p */))++ 9490 goto __1 9491 goto __3 9492 __3: 9493 ; 9494 9495 // The only error from read_number() is for a number that is too big. 9496 9497 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* p */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) 9498 if !!(read_number(tls, bp, ptrend, -1, DMAX_REPEAT_COUNT, ERR5, bp+8, errorcodeptr) != 0) { 9499 goto __10 9500 } 9501 goto EXIT 9502 __10: 9503 ; 9504 9505 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp))))) == '\175') { 9506 goto __11 9507 } 9508 9509 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* p */))++ 9510 *(*Tint32_t)(unsafe.Pointer(bp + 12 /* max */)) = *(*Tint32_t)(unsafe.Pointer(bp + 8 /* min */)) 9511 goto __12 9512 __11: 9513 9514 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp)), 1)))) != '\175') { 9515 goto __13 9516 } 9517 9518 if !!(read_number(tls, bp, ptrend, -1, DMAX_REPEAT_COUNT, ERR5, bp+12, 9519 errorcodeptr) != 0) { 9520 goto __14 9521 } 9522 goto EXIT 9523 __14: 9524 ; 9525 if !(*(*Tint32_t)(unsafe.Pointer(bp + 12)) < *(*Tint32_t)(unsafe.Pointer(bp + 8))) { 9526 goto __15 9527 } 9528 9529 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR4 9530 goto EXIT 9531 __15: 9532 ; 9533 __13: 9534 ; 9535 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* p */))++ 9536 __12: 9537 ; 9538 9539 yield = DTRUE 9540 if !(minp != uintptr(0)) { 9541 goto __16 9542 } 9543 *(*Tuint32_t)(unsafe.Pointer(minp)) = Tuint32_t(*(*Tint32_t)(unsafe.Pointer(bp + 8 /* min */))) 9544 __16: 9545 ; 9546 if !(maxp != uintptr(0)) { 9547 goto __17 9548 } 9549 *(*Tuint32_t)(unsafe.Pointer(maxp)) = Tuint32_t(*(*Tint32_t)(unsafe.Pointer(bp + 12 /* max */))) 9550 __17: 9551 ; 9552 9553 // Update the pattern pointer 9554 9555 EXIT: 9556 *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* p */)) 9557 return yield 9558 } 9559 9560 // ************************************************ 9561 // 9562 // Handle escapes * 9563 // 9564 9565 // This function is called when a \ has been encountered. It either returns a 9566 // positive value for a simple escape such as \d, or 0 for a data character, which 9567 // is placed in chptr. A backreference to group n is returned as negative n. On 9568 // entry, ptr is pointing at the character after \. On exit, it points after the 9569 // final code unit of the escape sequence. 9570 // 9571 // This function is also called from pcre2_substitute() to handle escape sequences 9572 // in replacement strings. In this case, the cb argument is NULL, and in the case 9573 // of escapes that have further processing, only sequences that define a data 9574 // character are recognised. The isclass argument is not relevant; the options 9575 // argument is the final value of the compiled pattern's options. 9576 // 9577 // Arguments: 9578 // ptrptr points to the input position pointer 9579 // ptrend points to the end of the input 9580 // chptr points to a returned data character 9581 // errorcodeptr points to the errorcode variable (containing zero) 9582 // options the current options bits 9583 // isclass TRUE if inside a character class 9584 // cb compile data block or NULL when called from pcre2_substitute() 9585 // 9586 // Returns: zero => a data character 9587 // positive => a special escape sequence 9588 // negative => a numerical back reference 9589 // on error, errorcodeptr is set non-zero 9590 9591 func X_pcre2_check_escape_8(tls *libc.TLS, ptrptr uintptr, ptrend TPCRE2_SPTR8, chptr uintptr, errorcodeptr uintptr, options Tuint32_t, extra_options Tuint32_t, isclass TBOOL, cb uintptr) int32 { /* pcre2_compile.c:1502:1: */ 9592 bp := tls.Alloc(32) 9593 defer tls.Free(32) 9594 9595 var utf TBOOL 9596 // var ptr TPCRE2_SPTR8 at bp+24, 8 9597 9598 var c Tuint32_t 9599 var cc Tuint32_t 9600 var escape int32 9601 var i int32 9602 // var p TPCRE2_SPTR8 at bp, 8 9603 9604 var hptr TPCRE2_SPTR8 9605 var xc Tuint32_t 9606 // var p1 TPCRE2_SPTR8 at bp+8, 8 9607 9608 var xc1 Tuint32_t 9609 // var s int32 at bp+16, 4 9610 9611 var oldptr TPCRE2_SPTR8 9612 var overflow TBOOL 9613 var alt_bsux TBOOL 9614 utf = libc.Bool32(options&DPCRE2_UTF != Tuint32_t(0)) 9615 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) 9616 escape = 0 9617 9618 // If backslash is at the end of the string, it's an error. 9619 9620 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) >= ptrend) { 9621 goto __1 9622 } 9623 9624 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR1 9625 return 0 9626 __1: 9627 ; 9628 9629 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */)), 1)))) 9630 if !(utf != 0 && c >= 0xc0) { 9631 goto __2 9632 } 9633 if !(c&0x20 == Tuint32_t(0)) { 9634 goto __3 9635 } 9636 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)), 1))))&0x3f 9637 goto __4 9638 __3: 9639 if !(c&0x10 == Tuint32_t(0)) { 9640 goto __5 9641 } 9642 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)))))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + 1)))&0x3f 9643 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */)) += uintptr(2) 9644 goto __6 9645 __5: 9646 if !(c&0x08 == Tuint32_t(0)) { 9647 goto __7 9648 } 9649 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)))))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + 2)))&0x3f 9650 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */)) += uintptr(3) 9651 goto __8 9652 __7: 9653 if !(c&0x04 == Tuint32_t(0)) { 9654 goto __9 9655 } 9656 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)))))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + 3)))&0x3f 9657 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */)) += uintptr(4) 9658 goto __10 9659 __9: 9660 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)))))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + 4)))&0x3f 9661 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */)) += uintptr(5) 9662 __10: 9663 ; 9664 __8: 9665 ; 9666 __6: 9667 ; 9668 __4: 9669 ; 9670 __2: 9671 ; 9672 9673 // Get character value, increment pointer 9674 *(*int32)(unsafe.Pointer(errorcodeptr)) = 0 // Be optimistic 9675 9676 // Non-alphanumerics are literals, so we just leave the value in c. An initial 9677 // value test saves a memory lookup for code points outside the alphanumeric 9678 // range. 9679 9680 if !(c < Tuint32_t('\060') || c > Tuint32_t('\172')) { 9681 goto __11 9682 } 9683 goto __12 9684 __11: 9685 if !(libc.AssignInt32(&i, int32(escapes[c-Tuint32_t('\060')])) != 0) { 9686 goto __13 9687 } 9688 9689 if !(i > 0) { 9690 goto __15 9691 } 9692 9693 c = Tuint32_t(i) 9694 if !(c == Tuint32_t('\015') && extra_options&DPCRE2_EXTRA_ESCAPED_CR_IS_LF != Tuint32_t(0)) { 9695 goto __17 9696 } 9697 c = Tuint32_t('\012') 9698 __17: 9699 ; 9700 goto __16 9701 __15: /* Negative table entry */ 9702 9703 escape = -i // Else return a special escape 9704 if !(cb != uintptr(0) && (escape == ESC_P || escape == ESC_p || escape == ESC_X)) { 9705 goto __18 9706 } 9707 *(*Tuint32_t)(unsafe.Pointer(cb + 208)) |= Tuint32_t(DPCRE2_HASBKPORX) 9708 __18: 9709 ; // Note \P, \p, or \X 9710 9711 // Perl supports \N{name} for character names and \N{U+dddd} for numerical 9712 // Unicode code points, as well as plain \N for "not newline". PCRE does not 9713 // support \N{name}. However, it does support quantification such as \N{2,3}, 9714 // so if \N{ is not followed by U+dddd we check for a quantifier. 9715 9716 if !(escape == ESC_N && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))) == '\173') { 9717 goto __19 9718 } 9719 9720 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* p */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + uintptr(1) 9721 9722 // \N{U+ can be handled by the \x{ code. However, this construction is 9723 // not valid in EBCDIC environments because it specifies a Unicode 9724 // character, not a codepoint in the local code. For example \N{U+0041} 9725 // must be "A" in all environments. Also, in Perl, \N{U+ forces Unicode 9726 // casing semantics for the entire pattern, so allow it only in UTF (i.e. 9727 // Unicode) mode. 9728 9729 if !((int64(ptrend)-int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp))))/1 > int64(1) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp))))) == '\125' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp)) + 1))) == '\053') { 9730 goto __20 9731 } 9732 9733 if !(utf != 0) { 9734 goto __22 9735 } 9736 9737 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp)) + uintptr(1) 9738 escape = 0 // Not a fancy escape after all 9739 goto COME_FROM_NU 9740 goto __23 9741 __22: 9742 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR93 9743 __23: 9744 ; 9745 goto __21 9746 __20: 9747 9748 if !(!(read_repeat_counts(tls, bp, ptrend, uintptr(0), uintptr(0), errorcodeptr) != 0) && *(*int32)(unsafe.Pointer(errorcodeptr)) == 0) { 9749 goto __24 9750 } 9751 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR37 9752 __24: 9753 ; 9754 __21: 9755 ; 9756 __19: 9757 ; 9758 __16: 9759 ; 9760 goto __14 9761 __13: 9762 alt_bsux = 9763 libc.Bool32(options&DPCRE2_ALT_BSUX|extra_options&DPCRE2_EXTRA_ALT_BSUX != Tuint32_t(0)) 9764 9765 // Filter calls from pcre2_substitute(). 9766 9767 if !(cb == uintptr(0)) { 9768 goto __25 9769 } 9770 9771 if !(c != Tuint32_t('\143') && c != Tuint32_t('\157') && c != Tuint32_t('\170')) { 9772 goto __26 9773 } 9774 9775 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR3 9776 return 0 9777 __26: 9778 ; 9779 alt_bsux = DFALSE // Do not modify \x handling 9780 __25: 9781 ; 9782 9783 switch c { 9784 // A number of Perl escapes are not handled by PCRE. We give an explicit 9785 // error. 9786 9787 case Tuint32_t('\106'): 9788 goto __28 9789 case Tuint32_t('\154'): 9790 goto __29 9791 case Tuint32_t('\114'): 9792 goto __30 9793 9794 // \u is unrecognized when neither PCRE2_ALT_BSUX nor PCRE2_EXTRA_ALT_BSUX 9795 // is set. Otherwise, \u must be followed by exactly four hex digits or, if 9796 // PCRE2_EXTRA_ALT_BSUX is set, by any number of hex digits in braces. 9797 // Otherwise it is a lowercase u letter. This gives some compatibility with 9798 // ECMAScript (aka JavaScript). 9799 9800 case Tuint32_t('\165'): 9801 goto __31 9802 9803 // \U is unrecognized unless PCRE2_ALT_BSUX or PCRE2_EXTRA_ALT_BSUX is set, 9804 // in which case it is an upper case letter. 9805 9806 case Tuint32_t('\125'): 9807 goto __32 9808 9809 // In a character class, \g is just a literal "g". Outside a character 9810 // class, \g must be followed by one of a number of specific things: 9811 // 9812 // (1) A number, either plain or braced. If positive, it is an absolute 9813 // backreference. If negative, it is a relative backreference. This is a Perl 9814 // 5.10 feature. 9815 // 9816 // (2) Perl 5.10 also supports \g{name} as a reference to a named group. This 9817 // is part of Perl's movement towards a unified syntax for back references. As 9818 // this is synonymous with \k{name}, we fudge it up by pretending it really 9819 // was \k{name}. 9820 // 9821 // (3) For Oniguruma compatibility we also support \g followed by a name or a 9822 // number either in angle brackets or in single quotes. However, these are 9823 // (possibly recursive) subroutine calls, _not_ backreferences. We return 9824 // the ESC_g code. 9825 // 9826 // Summary: Return a negative number for a numerical back reference, ESC_k for 9827 // a named back reference, and ESC_g for a named or numbered subroutine call. 9828 // 9829 9830 case Tuint32_t('\147'): 9831 goto __33 9832 9833 // The handling of escape sequences consisting of a string of digits 9834 // starting with one that is not zero is not straightforward. Perl has changed 9835 // over the years. Nowadays \g{} for backreferences and \o{} for octal are 9836 // recommended to avoid the ambiguities in the old syntax. 9837 // 9838 // Outside a character class, the digits are read as a decimal number. If the 9839 // number is less than 10, or if there are that many previous extracting left 9840 // brackets, it is a back reference. Otherwise, up to three octal digits are 9841 // read to form an escaped character code. Thus \123 is likely to be octal 123 9842 // (cf \0123, which is octal 012 followed by the literal 3). 9843 // 9844 // Inside a character class, \ followed by a digit is always either a literal 9845 // 8 or 9 or an octal number. 9846 9847 case Tuint32_t('\061'): 9848 goto __34 9849 case Tuint32_t('\062'): 9850 goto __35 9851 case Tuint32_t('\063'): 9852 goto __36 9853 case Tuint32_t('\064'): 9854 goto __37 9855 case Tuint32_t('\065'): 9856 goto __38 9857 case Tuint32_t('\066'): 9858 goto __39 9859 case Tuint32_t('\067'): 9860 goto __40 9861 case Tuint32_t('\070'): 9862 goto __41 9863 case Tuint32_t('\071'): 9864 goto __42 9865 9866 // Fall through 9867 9868 // \0 always starts an octal number, but we may drop through to here with a 9869 // larger first octal digit. The original code used just to take the least 9870 // significant 8 bits of octal numbers (I think this is what early Perls used 9871 // to do). Nowadays we allow for larger numbers in UTF-8 mode and 16-bit mode, 9872 // but no more than 3 octal digits. 9873 9874 case Tuint32_t('\060'): 9875 goto __43 9876 9877 // \o is a relatively new Perl feature, supporting a more general way of 9878 // specifying character codes in octal. The only supported form is \o{ddd}. 9879 9880 case Tuint32_t('\157'): 9881 goto __44 9882 9883 // When PCRE2_ALT_BSUX or PCRE2_EXTRA_ALT_BSUX is set, \x must be followed 9884 // by two hexadecimal digits. Otherwise it is a lowercase x letter. 9885 9886 case Tuint32_t('\170'): 9887 goto __45 9888 9889 // The handling of \c is different in ASCII and EBCDIC environments. In an 9890 // ASCII (or Unicode) environment, an error is given if the character 9891 // following \c is not a printable ASCII character. Otherwise, the following 9892 // character is upper-cased if it is a letter, and after that the 0x40 bit is 9893 // flipped. The result is the value of the escape. 9894 // 9895 // In an EBCDIC environment the handling of \c is compatible with the 9896 // specification in the perlebcdic document. The following character must be 9897 // a letter or one of small number of special characters. These provide a 9898 // means of defining the character values 0-31. 9899 // 9900 // For testing the EBCDIC handling of \c in an ASCII environment, recognize 9901 // the EBCDIC value of 'c' explicitly. 9902 9903 case Tuint32_t('\143'): 9904 goto __46 9905 9906 // Any other alphanumeric following \ is an error. Perl gives an error only 9907 // if in warning mode, but PCRE doesn't have a warning mode. 9908 9909 default: 9910 goto __47 9911 } 9912 goto __27 9913 9914 // A number of Perl escapes are not handled by PCRE. We give an explicit 9915 // error. 9916 9917 __28: 9918 __29: 9919 __30: 9920 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR37 9921 goto __27 9922 9923 // \u is unrecognized when neither PCRE2_ALT_BSUX nor PCRE2_EXTRA_ALT_BSUX 9924 // is set. Otherwise, \u must be followed by exactly four hex digits or, if 9925 // PCRE2_EXTRA_ALT_BSUX is set, by any number of hex digits in braces. 9926 // Otherwise it is a lowercase u letter. This gives some compatibility with 9927 // ECMAScript (aka JavaScript). 9928 9929 __31: 9930 if !!(alt_bsux != 0) { 9931 goto __48 9932 } 9933 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR37 9934 goto __49 9935 __48: 9936 9937 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) >= ptrend) { 9938 goto __50 9939 } 9940 goto __27 9941 __50: 9942 ; 9943 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))) == '\173' && extra_options&DPCRE2_EXTRA_ALT_BSUX != Tuint32_t(0)) { 9944 goto __51 9945 } 9946 9947 hptr = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + uintptr(1) 9948 cc = Tuint32_t(0) 9949 9950 __53: 9951 if !(hptr < ptrend && libc.AssignUint32(&xc, Tuint32_t(xdigitab[*(*TPCRE2_UCHAR8)(unsafe.Pointer(hptr))])) != Tuint32_t(0xff)) { 9952 goto __54 9953 } 9954 9955 if !(cc&0xf0000000 != Tuint32_t(0)) { 9956 goto __55 9957 } /* Test for 32-bit overflow */ 9958 9959 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR77 9960 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */)) = hptr // Show where 9961 goto __54 // *hptr != } will cause another break below 9962 __55: 9963 ; 9964 cc = cc<<4 | xc 9965 hptr++ 9966 goto __53 9967 __54: 9968 ; 9969 9970 if !(hptr == *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))+uintptr(1) || hptr >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(hptr))) != '\175') { 9971 goto __56 9972 } // No } terminator 9973 goto __27 9974 __56: 9975 ; // Hex escape not recognized 9976 9977 c = cc // Accept the code point 9978 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */)) = hptr + uintptr(1) 9979 goto __52 9980 __51: /* Must be exactly 4 hex digits */ 9981 9982 if !((int64(ptrend)-int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))/1 < int64(4)) { 9983 goto __57 9984 } 9985 goto __27 9986 __57: 9987 ; // Less than 4 chars 9988 if !(libc.AssignUint32(&cc, Tuint32_t(xdigitab[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))])) == Tuint32_t(0xff)) { 9989 goto __58 9990 } 9991 goto __27 9992 __58: 9993 ; // Not a hex digit 9994 if !(libc.AssignUint32(&xc, Tuint32_t(xdigitab[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + 1))])) == Tuint32_t(0xff)) { 9995 goto __59 9996 } 9997 goto __27 9998 __59: 9999 ; // Not a hex digit 10000 cc = cc<<4 | xc 10001 if !(libc.AssignUint32(&xc, Tuint32_t(xdigitab[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + 2))])) == Tuint32_t(0xff)) { 10002 goto __60 10003 } 10004 goto __27 10005 __60: 10006 ; // Not a hex digit 10007 cc = cc<<4 | xc 10008 if !(libc.AssignUint32(&xc, Tuint32_t(xdigitab[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + 3))])) == Tuint32_t(0xff)) { 10009 goto __61 10010 } 10011 goto __27 10012 __61: 10013 ; // Not a hex digit 10014 c = cc<<4 | xc 10015 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */)) += uintptr(4) 10016 __52: 10017 ; 10018 10019 if !(utf != 0) { 10020 goto __62 10021 } 10022 10023 if !(c > 0x10ffff) { 10024 goto __64 10025 } 10026 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR77 10027 goto __65 10028 __64: 10029 if !(c >= Tuint32_t(0xd800) && c <= Tuint32_t(0xdfff) && extra_options&DPCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES == Tuint32_t(0)) { 10030 goto __66 10031 } 10032 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR73 10033 __66: 10034 ; 10035 __65: 10036 ; 10037 goto __63 10038 __62: 10039 if !(c > uint32(0xffffffff)>>(32-DPCRE2_CODE_UNIT_WIDTH)) { 10040 goto __67 10041 } 10042 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR77 10043 __67: 10044 ; 10045 __63: 10046 ; 10047 __49: 10048 ; 10049 goto __27 10050 10051 // \U is unrecognized unless PCRE2_ALT_BSUX or PCRE2_EXTRA_ALT_BSUX is set, 10052 // in which case it is an upper case letter. 10053 10054 __32: 10055 if !!(alt_bsux != 0) { 10056 goto __68 10057 } 10058 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR37 10059 __68: 10060 ; 10061 goto __27 10062 10063 // In a character class, \g is just a literal "g". Outside a character 10064 // class, \g must be followed by one of a number of specific things: 10065 // 10066 // (1) A number, either plain or braced. If positive, it is an absolute 10067 // backreference. If negative, it is a relative backreference. This is a Perl 10068 // 5.10 feature. 10069 // 10070 // (2) Perl 5.10 also supports \g{name} as a reference to a named group. This 10071 // is part of Perl's movement towards a unified syntax for back references. As 10072 // this is synonymous with \k{name}, we fudge it up by pretending it really 10073 // was \k{name}. 10074 // 10075 // (3) For Oniguruma compatibility we also support \g followed by a name or a 10076 // number either in angle brackets or in single quotes. However, these are 10077 // (possibly recursive) subroutine calls, _not_ backreferences. We return 10078 // the ESC_g code. 10079 // 10080 // Summary: Return a negative number for a numerical back reference, ESC_k for 10081 // a named back reference, and ESC_g for a named or numbered subroutine call. 10082 // 10083 10084 __33: 10085 if !(isclass != 0) { 10086 goto __69 10087 } 10088 goto __27 10089 __69: 10090 ; 10091 10092 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) >= ptrend) { 10093 goto __70 10094 } 10095 10096 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR57 10097 goto __27 10098 __70: 10099 ; 10100 10101 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))) == '\074' || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))) == '\047') { 10102 goto __71 10103 } 10104 10105 escape = ESC_g 10106 goto __27 10107 __71: 10108 ; 10109 10110 // If there is a brace delimiter, try to read a numerical reference. If 10111 // there isn't one, assume we have a name and treat it as \k. 10112 10113 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))) == '\173') { 10114 goto __72 10115 } 10116 10117 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* p1 */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + uintptr(1) 10118 if !!(read_number(tls, bp+8, ptrend, int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount), DMAX_GROUP_NUMBER, ERR61, bp+16, 10119 errorcodeptr) != 0) { 10120 goto __74 10121 } 10122 10123 if !(*(*int32)(unsafe.Pointer(errorcodeptr)) == 0) { 10124 goto __75 10125 } 10126 escape = ESC_k 10127 __75: 10128 ; // No number found 10129 goto __27 10130 __74: 10131 ; 10132 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\175') { 10133 goto __76 10134 } 10135 10136 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR57 10137 goto __27 10138 __76: 10139 ; 10140 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + uintptr(1) 10141 goto __73 10142 __72: 10143 10144 if !!(read_number(tls, bp+24, ptrend, int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount), DMAX_GROUP_NUMBER, ERR61, bp+16, 10145 errorcodeptr) != 0) { 10146 goto __77 10147 } 10148 10149 if !(*(*int32)(unsafe.Pointer(errorcodeptr)) == 0) { 10150 goto __78 10151 } 10152 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR57 10153 __78: 10154 ; // No number found 10155 goto __27 10156 __77: 10157 ; 10158 __73: 10159 ; 10160 10161 if !(*(*int32)(unsafe.Pointer(bp + 16)) <= 0) { 10162 goto __79 10163 } 10164 10165 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR15 10166 goto __27 10167 __79: 10168 ; 10169 10170 escape = -*(*int32)(unsafe.Pointer(bp + 16 /* s */)) 10171 goto __27 10172 10173 // The handling of escape sequences consisting of a string of digits 10174 // starting with one that is not zero is not straightforward. Perl has changed 10175 // over the years. Nowadays \g{} for backreferences and \o{} for octal are 10176 // recommended to avoid the ambiguities in the old syntax. 10177 // 10178 // Outside a character class, the digits are read as a decimal number. If the 10179 // number is less than 10, or if there are that many previous extracting left 10180 // brackets, it is a back reference. Otherwise, up to three octal digits are 10181 // read to form an escaped character code. Thus \123 is likely to be octal 123 10182 // (cf \0123, which is octal 012 followed by the literal 3). 10183 // 10184 // Inside a character class, \ followed by a digit is always either a literal 10185 // 8 or 9 or an octal number. 10186 10187 __34: 10188 __35: 10189 __36: 10190 __37: 10191 __38: 10192 __39: 10193 __40: 10194 __41: 10195 __42: 10196 10197 if !!(isclass != 0) { 10198 goto __80 10199 } 10200 10201 oldptr = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */)) 10202 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */))-- // Back to the digit 10203 10204 // As we know we are at a digit, the only possible error from 10205 // read_number() is a number that is too large to be a group number. In this 10206 // case we fall through handle this as not a group reference. If we have 10207 // read a small enough number, check for a back reference. 10208 // 10209 // \1 to \9 are always back references. \8x and \9x are too; \1x to \7x 10210 // are octal escapes if there are not that many previous captures. 10211 10212 if !(read_number(tls, bp+24, ptrend, -1, uint32(0x7fffffff/10-1), uint32(0), bp+16, errorcodeptr) != 0 && (*(*int32)(unsafe.Pointer(bp + 16)) < 10 || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(oldptr + libc.UintptrFromInt32(-1)))) >= '\070' || *(*int32)(unsafe.Pointer(bp + 16)) <= int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount))) { 10213 goto __81 10214 } 10215 10216 if !(*(*int32)(unsafe.Pointer(bp + 16)) > int32(DMAX_GROUP_NUMBER)) { 10217 goto __82 10218 } 10219 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR61 10220 goto __83 10221 __82: 10222 escape = -*(*int32)(unsafe.Pointer(bp + 16 /* s */)) 10223 __83: 10224 ; // Indicates a back reference 10225 goto __27 10226 __81: 10227 ; 10228 10229 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */)) = oldptr // Put the pointer back and fall through 10230 __80: 10231 ; 10232 10233 // Handle a digit following \ when the number is not a back reference, or 10234 // we are within a character class. If the first digit is 8 or 9, Perl used to 10235 // generate a binary zero and then treat the digit as a following literal. At 10236 // least by Perl 5.18 this changed so as not to insert the binary zero. 10237 10238 if !(c >= Tuint32_t('\070')) { 10239 goto __84 10240 } 10241 goto __27 10242 __84: 10243 ; 10244 10245 // Fall through 10246 10247 // \0 always starts an octal number, but we may drop through to here with a 10248 // larger first octal digit. The original code used just to take the least 10249 // significant 8 bits of octal numbers (I think this is what early Perls used 10250 // to do). Nowadays we allow for larger numbers in UTF-8 mode and 16-bit mode, 10251 // but no more than 3 octal digits. 10252 10253 __43: 10254 c = c - Tuint32_t('\060') 10255 __85: 10256 if !(libc.PostIncInt32(&i, 1) < 2 && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))) <= '\067') { 10257 goto __86 10258 } 10259 c = c*Tuint32_t(8) + Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)), 1)))) - Tuint32_t('\060') 10260 goto __85 10261 __86: 10262 ; 10263 if !(!(utf != 0) && c > Tuint32_t(0xff)) { 10264 goto __87 10265 } 10266 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR51 10267 __87: 10268 ; 10269 goto __27 10270 10271 // \o is a relatively new Perl feature, supporting a more general way of 10272 // specifying character codes in octal. The only supported form is \o{ddd}. 10273 10274 __44: 10275 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)), 1)))) != '\173') { 10276 goto __88 10277 } 10278 10279 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */))-- 10280 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR55 10281 goto __89 10282 __88: 10283 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))) == '\175') { 10284 goto __90 10285 } 10286 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR78 10287 goto __91 10288 __90: 10289 10290 c = Tuint32_t(0) 10291 overflow = DFALSE 10292 __92: 10293 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))) <= '\067') { 10294 goto __93 10295 } 10296 10297 cc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */)), 1)))) 10298 if !(c == Tuint32_t(0) && cc == Tuint32_t('\060')) { 10299 goto __94 10300 } 10301 goto __92 10302 __94: 10303 ; // Leading zeroes 10304 c = c<<3 + (cc - Tuint32_t('\060')) 10305 if !(c > func() uint32 { 10306 if utf != 0 { 10307 return 0x10ffff 10308 } 10309 return 0xff 10310 }()) { 10311 goto __95 10312 } 10313 overflow = DTRUE 10314 goto __93 10315 __95: 10316 ; 10317 goto __92 10318 __93: 10319 ; 10320 if !(overflow != 0) { 10321 goto __96 10322 } 10323 10324 __98: 10325 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))) <= '\067') { 10326 goto __99 10327 } 10328 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */))++ 10329 goto __98 10330 __99: 10331 ; 10332 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR34 10333 goto __97 10334 __96: 10335 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)), 1)))) == '\175') { 10336 goto __100 10337 } 10338 10339 if !(utf != 0 && c >= Tuint32_t(0xd800) && c <= Tuint32_t(0xdfff) && extra_options&DPCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES == Tuint32_t(0)) { 10340 goto __102 10341 } 10342 10343 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */))-- 10344 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR73 10345 __102: 10346 ; 10347 goto __101 10348 __100: 10349 10350 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */))-- 10351 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR64 10352 __101: 10353 ; 10354 __97: 10355 ; 10356 __91: 10357 ; 10358 __89: 10359 ; 10360 goto __27 10361 10362 // When PCRE2_ALT_BSUX or PCRE2_EXTRA_ALT_BSUX is set, \x must be followed 10363 // by two hexadecimal digits. Otherwise it is a lowercase x letter. 10364 10365 __45: 10366 if !(alt_bsux != 0) { 10367 goto __103 10368 } 10369 10370 if !((int64(ptrend)-int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))/1 < int64(2)) { 10371 goto __105 10372 } 10373 goto __27 10374 __105: 10375 ; // Less than 2 characters 10376 if !(libc.AssignUint32(&cc, Tuint32_t(xdigitab[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))])) == Tuint32_t(0xff)) { 10377 goto __106 10378 } 10379 goto __27 10380 __106: 10381 ; // Not a hex digit 10382 if !(libc.AssignUint32(&xc1, Tuint32_t(xdigitab[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + 1))])) == Tuint32_t(0xff)) { 10383 goto __107 10384 } 10385 goto __27 10386 __107: 10387 ; // Not a hex digit 10388 c = cc<<4 | xc1 10389 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */)) += uintptr(2) 10390 goto __104 10391 __103: 10392 10393 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))) == '\173') { 10394 goto __108 10395 } 10396 10397 COME_FROM_NU: 10398 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)), 1) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))) == '\175') { 10399 goto __110 10400 } 10401 10402 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR78 10403 goto __27 10404 __110: 10405 ; 10406 c = Tuint32_t(0) 10407 overflow = DFALSE 10408 10409 __111: 10410 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) < ptrend && libc.AssignUint32(&cc, Tuint32_t(xdigitab[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))])) != Tuint32_t(0xff)) { 10411 goto __112 10412 } 10413 10414 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */))++ 10415 if !(c == Tuint32_t(0) && cc == Tuint32_t(0)) { 10416 goto __113 10417 } 10418 goto __111 10419 __113: 10420 ; // Leading zeroes 10421 c = c<<4 | cc 10422 if !(utf != 0 && c > 0x10ffff || !(utf != 0) && c > uint32(0xffffffff)>>(32-DPCRE2_CODE_UNIT_WIDTH)) { 10423 goto __114 10424 } 10425 10426 overflow = DTRUE 10427 goto __112 10428 __114: 10429 ; 10430 goto __111 10431 __112: 10432 ; 10433 10434 if !(overflow != 0) { 10435 goto __115 10436 } 10437 10438 __117: 10439 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) < ptrend && int32(xdigitab[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))]) != 0xff) { 10440 goto __118 10441 } 10442 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */))++ 10443 goto __117 10444 __118: 10445 ; 10446 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR34 10447 goto __116 10448 __115: 10449 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)), 1)))) == '\175') { 10450 goto __119 10451 } 10452 10453 if !(utf != 0 && c >= Tuint32_t(0xd800) && c <= Tuint32_t(0xdfff) && extra_options&DPCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES == Tuint32_t(0)) { 10454 goto __121 10455 } 10456 10457 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */))-- 10458 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR73 10459 __121: 10460 ; 10461 goto __120 10462 __119: 10463 10464 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */))-- 10465 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR67 10466 __120: 10467 ; 10468 __116: 10469 ; 10470 goto __109 10471 __108: 10472 10473 c = Tuint32_t(0) 10474 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) >= ptrend || libc.AssignUint32(&cc, Tuint32_t(xdigitab[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))])) == Tuint32_t(0xff)) { 10475 goto __122 10476 } 10477 goto __27 10478 __122: 10479 ; // Not a hex digit 10480 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */))++ 10481 c = cc 10482 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) >= ptrend || libc.AssignUint32(&cc, Tuint32_t(xdigitab[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24))))])) == Tuint32_t(0xff)) { 10483 goto __123 10484 } 10485 goto __27 10486 __123: 10487 ; // Not a hex digit 10488 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */))++ 10489 c = c<<4 | cc 10490 __109: 10491 ; // End of \xdd handling 10492 __104: 10493 ; // End of Perl-style \x handling 10494 goto __27 10495 10496 // The handling of \c is different in ASCII and EBCDIC environments. In an 10497 // ASCII (or Unicode) environment, an error is given if the character 10498 // following \c is not a printable ASCII character. Otherwise, the following 10499 // character is upper-cased if it is a letter, and after that the 0x40 bit is 10500 // flipped. The result is the value of the escape. 10501 // 10502 // In an EBCDIC environment the handling of \c is compatible with the 10503 // specification in the perlebcdic document. The following character must be 10504 // a letter or one of small number of special characters. These provide a 10505 // means of defining the character values 0-31. 10506 // 10507 // For testing the EBCDIC handling of \c in an ASCII environment, recognize 10508 // the EBCDIC value of 'c' explicitly. 10509 10510 __46: 10511 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) >= ptrend) { 10512 goto __124 10513 } 10514 10515 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR2 10516 goto __27 10517 __124: 10518 ; 10519 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */))))) 10520 if !(c >= Tuint32_t('\141') && c <= Tuint32_t('\172')) { 10521 goto __125 10522 } 10523 c = c - Tuint32_t(32) 10524 __125: 10525 ; 10526 10527 // Handle \c in an ASCII/Unicode environment. 10528 10529 if !(c < Tuint32_t(32) || c > Tuint32_t(126)) { 10530 goto __126 10531 } /* Excludes all non-printable ASCII */ 10532 10533 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR68 10534 goto __27 10535 __126: 10536 ; 10537 c = c ^ Tuint32_t(0x40) 10538 10539 // Handle \c in an EBCDIC environment. The special case \c? is converted to 10540 // 255 (0xff) or 95 (0x5f) if other characters suggest we are using the 10541 // POSIX-BC encoding. (This is the way Perl indicates that it handles \c?.) 10542 // The other valid sequences correspond to a list of specific characters. 10543 10544 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */))++ 10545 goto __27 10546 10547 // Any other alphanumeric following \ is an error. Perl gives an error only 10548 // if in warning mode, but PCRE doesn't have a warning mode. 10549 10550 __47: 10551 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR3 10552 *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) - uintptr(1) // Point to the character at fault 10553 return 0 10554 __27: 10555 ; 10556 __14: 10557 ; 10558 __12: 10559 ; 10560 10561 // Set the pointer to the next character before returning. 10562 10563 *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* ptr */)) 10564 *(*Tuint32_t)(unsafe.Pointer(chptr)) = c 10565 return escape 10566 } 10567 10568 // ************************************************ 10569 // 10570 // Handle \P and \p * 10571 // 10572 10573 // This function is called after \P or \p has been encountered, provided that 10574 // PCRE2 is compiled with support for UTF and Unicode properties. On entry, the 10575 // contents of ptrptr are pointing after the P or p. On exit, it is left pointing 10576 // after the final code unit of the escape sequence. 10577 // 10578 // Arguments: 10579 // ptrptr the pattern position pointer 10580 // negptr a boolean that is set TRUE for negation else FALSE 10581 // ptypeptr an unsigned int that is set to the type value 10582 // pdataptr an unsigned int that is set to the detailed property value 10583 // errorcodeptr the error code variable 10584 // cb the compile data 10585 // 10586 // Returns: TRUE if the type value was found, or FALSE for an invalid type 10587 10588 func get_ucp(tls *libc.TLS, ptrptr uintptr, negptr uintptr, ptypeptr uintptr, pdataptr uintptr, errorcodeptr uintptr, cb uintptr) TBOOL { /* pcre2_compile.c:2087:1: */ 10589 bp := tls.Alloc(58) 10590 defer tls.Free(58) 10591 10592 var c TPCRE2_UCHAR8 10593 var i Tsize_t 10594 var bot Tsize_t 10595 var top Tsize_t 10596 var ptr TPCRE2_SPTR8 10597 // var name [50]TPCRE2_UCHAR8 at bp, 50 10598 10599 var vptr uintptr 10600 var ptscript Tuint16_t 10601 var offset int32 10602 // var sname [8]TPCRE2_UCHAR8 at bp+50, 8 10603 10604 var r int32 10605 ptr = *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) 10606 vptr = uintptr(0) 10607 ptscript = Tuint16_t(DPT_NOTSCRIPT) 10608 10609 if !(ptr >= (*Tcompile_block_8)(unsafe.Pointer(cb)).Fend_pattern) { 10610 goto __1 10611 } 10612 goto ERROR_RETURN 10613 __1: 10614 ; 10615 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&ptr, 1))) 10616 *(*TBOOL)(unsafe.Pointer(negptr)) = DFALSE 10617 10618 // \P or \p can be followed by a name in {}, optionally preceded by ^ for 10619 // negation. 10620 10621 if !(int32(c) == '\173') { 10622 goto __2 10623 } 10624 10625 if !(ptr >= (*Tcompile_block_8)(unsafe.Pointer(cb)).Fend_pattern) { 10626 goto __4 10627 } 10628 goto ERROR_RETURN 10629 __4: 10630 ; 10631 10632 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == '\136') { 10633 goto __5 10634 } 10635 10636 *(*TBOOL)(unsafe.Pointer(negptr)) = DTRUE 10637 ptr++ 10638 __5: 10639 ; 10640 10641 i = uint64(0) 10642 __6: 10643 if !(i < uint64(int32(uint64(unsafe.Sizeof([50]TPCRE2_UCHAR8{}))/uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0))))-1)) { 10644 goto __8 10645 } 10646 10647 if !(ptr >= (*Tcompile_block_8)(unsafe.Pointer(cb)).Fend_pattern) { 10648 goto __9 10649 } 10650 goto ERROR_RETURN 10651 __9: 10652 ; 10653 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&ptr, 1))) 10654 __10: 10655 if !(int32(c) == '_' || int32(c) == '-' || int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2)))&int32(_ISspace) != 0) { 10656 goto __11 10657 } 10658 10659 if !(ptr >= (*Tcompile_block_8)(unsafe.Pointer(cb)).Fend_pattern) { 10660 goto __12 10661 } 10662 goto ERROR_RETURN 10663 __12: 10664 ; 10665 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&ptr, 1))) 10666 goto __10 10667 __11: 10668 ; 10669 if !(int32(c) == 0) { 10670 goto __13 10671 } 10672 goto ERROR_RETURN 10673 __13: 10674 ; 10675 if !(int32(c) == '\175') { 10676 goto __14 10677 } 10678 goto __8 10679 __14: 10680 ; 10681 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + uintptr(i))) = TPCRE2_UCHAR8(libc.Xtolower(tls, int32(c))) 10682 if !((int32(c) == ':' || int32(c) == '=') && vptr == uintptr(0)) { 10683 goto __15 10684 } 10685 vptr = bp + uintptr(i) 10686 __15: 10687 ; 10688 goto __7 10689 __7: 10690 i++ 10691 goto __6 10692 goto __8 10693 __8: 10694 ; 10695 10696 if !(int32(c) != '\175') { 10697 goto __16 10698 } 10699 goto ERROR_RETURN 10700 __16: 10701 ; 10702 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + uintptr(i))) = TPCRE2_UCHAR8(0) 10703 goto __3 10704 __2: 10705 if !(1 != 0 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fctypes + uintptr(c))))&Dctype_letter != 0) { 10706 goto __17 10707 } 10708 10709 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp)) = TPCRE2_UCHAR8(libc.Xtolower(tls, int32(c))) 10710 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 1)) = TPCRE2_UCHAR8(0) 10711 goto __18 10712 __17: 10713 goto ERROR_RETURN 10714 __18: 10715 ; 10716 __3: 10717 ; 10718 10719 *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) = ptr 10720 10721 // If the property contains ':' or '=' we have class name and value separately 10722 // specified. The following are supported: 10723 // 10724 // . Bidi_Class (synonym bc), for which the property names are "bidi<name>". 10725 // . Script (synonym sc) for which the property name is the script name 10726 // . Script_Extensions (synonym scx), ditto 10727 // 10728 // As this is a small number, we currently just check the names directly. If this 10729 // grows, a sorted table and a switch will be neater. 10730 // 10731 // For both the script properties, set a PT_xxx value so that (1) they can be 10732 // distinguished and (2) invalid script names that happen to be the name of 10733 // another property can be diagnosed. 10734 10735 if !(vptr != uintptr(0)) { 10736 goto __19 10737 } 10738 10739 offset = 0 10740 10741 *(*TPCRE2_UCHAR8)(unsafe.Pointer(vptr)) = TPCRE2_UCHAR8(0) // Terminate property name 10742 if !(X_pcre2_strcmp_c8_8(tls, bp, ts+553) == 0 || X_pcre2_strcmp_c8_8(tls, bp, ts+563) == 0) { 10743 goto __20 10744 } 10745 10746 offset = 4 10747 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 50)) = TPCRE2_UCHAR8('\142') 10748 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 50 + 1)) = TPCRE2_UCHAR8('\151') // There is no strcpy_c8 function 10749 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 50 + 2)) = TPCRE2_UCHAR8('\144') 10750 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 50 + 3)) = TPCRE2_UCHAR8('\151') 10751 goto __21 10752 __20: 10753 if !(X_pcre2_strcmp_c8_8(tls, bp, ts+566) == 0 || X_pcre2_strcmp_c8_8(tls, bp, ts+573) == 0) { 10754 goto __22 10755 } 10756 ptscript = Tuint16_t(DPT_SC) 10757 goto __23 10758 __22: 10759 if !(X_pcre2_strcmp_c8_8(tls, bp, ts+576) == 0 || X_pcre2_strcmp_c8_8(tls, bp, ts+593) == 0) { 10760 goto __24 10761 } 10762 ptscript = Tuint16_t(DPT_SCX) 10763 goto __25 10764 __24: 10765 10766 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR47 10767 return DFALSE 10768 __25: 10769 ; 10770 __23: 10771 ; 10772 __21: 10773 ; 10774 10775 // Adjust the string in name[] as needed 10776 10777 libc.Xmemmove(tls, bp+uintptr(offset), vptr+uintptr(1), uint64((int64(bp+uintptr(i))-int64(vptr))/1)*uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0)))) 10778 if !(offset != 0) { 10779 goto __26 10780 } 10781 libc.Xmemmove(tls, bp, bp+50, uint64(offset)*uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0)))) 10782 __26: 10783 ; 10784 __19: 10785 ; 10786 10787 // Search for a recognized property using binary chop. 10788 10789 bot = uint64(0) 10790 top = X_pcre2_utt_size_8 10791 10792 __27: 10793 if !(bot < top) { 10794 goto __28 10795 } 10796 10797 i = (bot + top) >> 1 10798 r = X_pcre2_strcmp_c8_8(tls, bp, uintptr(unsafe.Pointer(&X_pcre2_utt_names_8))+uintptr(X_pcre2_utt_8[i].Fname_offset)) 10799 10800 // When a matching property is found, some extra checking is needed when the 10801 // \p{xx:yy} syntax is used and xx is either sc or scx. 10802 10803 if !(r == 0) { 10804 goto __29 10805 } 10806 10807 *(*Tuint16_t)(unsafe.Pointer(pdataptr)) = X_pcre2_utt_8[i].Fvalue 10808 if !(vptr == uintptr(0) || int32(ptscript) == DPT_NOTSCRIPT) { 10809 goto __30 10810 } 10811 10812 *(*Tuint16_t)(unsafe.Pointer(ptypeptr)) = X_pcre2_utt_8[i].Ftype 10813 return DTRUE 10814 __30: 10815 ; 10816 10817 switch int32(X_pcre2_utt_8[i].Ftype) { 10818 case DPT_SC: 10819 goto __32 10820 10821 case DPT_SCX: 10822 goto __33 10823 } 10824 goto __31 10825 10826 __32: 10827 *(*Tuint16_t)(unsafe.Pointer(ptypeptr)) = Tuint16_t(DPT_SC) 10828 return DTRUE 10829 10830 __33: 10831 *(*Tuint16_t)(unsafe.Pointer(ptypeptr)) = ptscript 10832 return DTRUE 10833 __31: 10834 ; 10835 10836 goto __28 // Non-script found 10837 __29: 10838 ; 10839 10840 if !(r > 0) { 10841 goto __34 10842 } 10843 bot = i + uint64(1) 10844 goto __35 10845 __34: 10846 top = i 10847 __35: 10848 ; 10849 goto __27 10850 __28: 10851 ; 10852 10853 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR47 // Unrecognized property 10854 return DFALSE 10855 10856 ERROR_RETURN: // Malformed \P or \p 10857 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR46 10858 *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) = ptr 10859 return DFALSE 10860 } 10861 10862 // ************************************************ 10863 // 10864 // Check for POSIX class syntax * 10865 // 10866 10867 // This function is called when the sequence "[:" or "[." or "[=" is 10868 // encountered in a character class. It checks whether this is followed by a 10869 // sequence of characters terminated by a matching ":]" or ".]" or "=]". If we 10870 // reach an unescaped ']' without the special preceding character, return FALSE. 10871 // 10872 // Originally, this function only recognized a sequence of letters between the 10873 // terminators, but it seems that Perl recognizes any sequence of characters, 10874 // though of course unknown POSIX names are subsequently rejected. Perl gives an 10875 // "Unknown POSIX class" error for [:f\oo:] for example, where previously PCRE 10876 // didn't consider this to be a POSIX class. Likewise for [:1234:]. 10877 // 10878 // The problem in trying to be exactly like Perl is in the handling of escapes. We 10879 // have to be sure that [abc[:x\]pqr] is *not* treated as containing a POSIX 10880 // class, but [abc[:x\]pqr:]] is (so that an error can be generated). The code 10881 // below handles the special cases \\ and \], but does not try to do any other 10882 // escape processing. This makes it different from Perl for cases such as 10883 // [:l\ower:] where Perl recognizes it as the POSIX class "lower" but PCRE does 10884 // not recognize "l\ower". This is a lesser evil than not diagnosing bad classes 10885 // when Perl does, I think. 10886 // 10887 // A user pointed out that PCRE was rejecting [:a[:digit:]] whereas Perl was not. 10888 // It seems that the appearance of a nested POSIX class supersedes an apparent 10889 // external class. For example, [:a[:digit:]b:] matches "a", "b", ":", or 10890 // a digit. This is handled by returning FALSE if the start of a new group with 10891 // the same terminator is encountered, since the next closing sequence must close 10892 // the nested group, not the outer one. 10893 // 10894 // In Perl, unescaped square brackets may also appear as part of class names. For 10895 // example, [:a[:abc]b:] gives unknown POSIX class "[:abc]b:]". However, for 10896 // [:a[:abc]b][b:] it gives unknown POSIX class "[:abc]b][b:]", which does not 10897 // seem right at all. PCRE does not allow closing square brackets in POSIX class 10898 // names. 10899 // 10900 // Arguments: 10901 // ptr pointer to the character after the initial [ (colon, dot, equals) 10902 // ptrend pointer to the end of the pattern 10903 // endptr where to return a pointer to the terminating ':', '.', or '=' 10904 // 10905 // Returns: TRUE or FALSE 10906 10907 func check_posix_syntax(tls *libc.TLS, ptr TPCRE2_SPTR8, ptrend TPCRE2_SPTR8, endptr uintptr) TBOOL { /* pcre2_compile.c:2293:1: */ 10908 var terminator TPCRE2_UCHAR8 // Don't combine these lines; the Solaris cc 10909 terminator = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&ptr, 1))) // compiler warns about "non-constant" initializer. 10910 10911 for ; (int64(ptrend)-int64(ptr))/1 >= int64(2); ptr++ { 10912 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == '\134' && (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1))) == '\135' || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1))) == '\134') { 10913 ptr++ 10914 } else if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == '\133' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1))) == int32(terminator) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == '\135' { 10915 return DFALSE 10916 } else if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == int32(terminator) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1))) == '\135' { 10917 *(*TPCRE2_SPTR8)(unsafe.Pointer(endptr)) = ptr 10918 return DTRUE 10919 } 10920 } 10921 10922 return DFALSE 10923 } 10924 10925 // ************************************************ 10926 // 10927 // Check POSIX class name * 10928 // 10929 10930 // This function is called to check the name given in a POSIX-style class entry 10931 // such as [:alnum:]. 10932 // 10933 // Arguments: 10934 // ptr points to the first letter 10935 // len the length of the name 10936 // 10937 // Returns: a value representing the name, or -1 if unknown 10938 10939 func check_posix_name(tls *libc.TLS, ptr TPCRE2_SPTR8, len int32) int32 { /* pcre2_compile.c:2334:1: */ 10940 var pn uintptr = uintptr(unsafe.Pointer(&posix_names)) 10941 var yield int32 = 0 10942 for int32(posix_name_lengths[yield]) != 0 { 10943 if len == int32(posix_name_lengths[yield]) && X_pcre2_strncmp_c8_8(tls, ptr, pn, uint64(uint32(len))) == 0 { 10944 return yield 10945 } 10946 pn += uintptr(int32(posix_name_lengths[yield]) + 1) 10947 yield++ 10948 } 10949 return -1 10950 } 10951 10952 // ************************************************ 10953 // 10954 // Read a subpattern or VERB name * 10955 // 10956 10957 // This function is called from parse_regex() below whenever it needs to read 10958 // the name of a subpattern or a (*VERB) or an (*alpha_assertion). The initial 10959 // pointer must be to the character before the name. If that character is '*' we 10960 // are reading a verb or alpha assertion name. The pointer is updated to point 10961 // after the name, for a VERB or alpha assertion name, or after tha name's 10962 // terminator for a subpattern name. Returning both the offset and the name 10963 // pointer is redundant information, but some callers use one and some the other, 10964 // so it is simplest just to return both. 10965 // 10966 // Arguments: 10967 // ptrptr points to the character pointer variable 10968 // ptrend points to the end of the input string 10969 // utf true if the input is UTF-encoded 10970 // terminator the terminator of a subpattern name must be this 10971 // offsetptr where to put the offset from the start of the pattern 10972 // nameptr where to put a pointer to the name in the input 10973 // namelenptr where to put the length of the name 10974 // errcodeptr where to put an error code 10975 // cb pointer to the compile data block 10976 // 10977 // Returns: TRUE if a name was read 10978 // FALSE otherwise, with error code set 10979 10980 func read_name(tls *libc.TLS, ptrptr uintptr, ptrend TPCRE2_SPTR8, utf TBOOL, terminator Tuint32_t, offsetptr uintptr, nameptr uintptr, namelenptr uintptr, errorcodeptr uintptr, cb uintptr) TBOOL { /* pcre2_compile.c:2379:1: */ 10981 var ptr TPCRE2_SPTR8 10982 var is_group TBOOL 10983 var c Tuint32_t 10984 var type1 Tuint32_t 10985 ptr = *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) 10986 is_group = libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) != '\052') 10987 10988 if !(libc.PreIncUintptr(&ptr, 1) >= ptrend) { 10989 goto __1 10990 } /* No characters in name */ 10991 10992 *(*int32)(unsafe.Pointer(errorcodeptr)) = func() int32 { 10993 if is_group != 0 { 10994 return ERR62 10995 } 10996 return ERR60 10997 }() // Verb not recognized or malformed 10998 goto FAILED 10999 __1: 11000 ; 11001 11002 *(*TPCRE2_SPTR8)(unsafe.Pointer(nameptr)) = ptr 11003 *(*Tsize_t)(unsafe.Pointer(offsetptr)) = Tsize_t((int64(ptr) - int64((*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern)) / 1) 11004 11005 // In UTF mode, a group name may contain letters and decimal digits as defined 11006 // by Unicode properties, and underscores, but must not start with a digit. 11007 11008 if !(utf != 0 && is_group != 0) { 11009 goto __2 11010 } 11011 11012 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) 11013 if !(c >= 0xc0) { 11014 goto __4 11015 } 11016 if !(c&0x20 == Tuint32_t(0)) { 11017 goto __5 11018 } 11019 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f 11020 goto __6 11021 __5: 11022 if !(c&0x10 == Tuint32_t(0)) { 11023 goto __7 11024 } 11025 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f 11026 goto __8 11027 __7: 11028 if !(c&0x08 == Tuint32_t(0)) { 11029 goto __9 11030 } 11031 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f 11032 goto __10 11033 __9: 11034 if !(c&0x04 == Tuint32_t(0)) { 11035 goto __11 11036 } 11037 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 4)))&0x3f 11038 goto __12 11039 __11: 11040 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 5)))&0x3f 11041 __12: 11042 ; 11043 __10: 11044 ; 11045 __8: 11046 ; 11047 __6: 11048 ; 11049 __4: 11050 ; 11051 11052 type1 = Tuint32_t((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12)).Fchartype) 11053 11054 if !(type1 == ucp_Nd) { 11055 goto __13 11056 } 11057 11058 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR44 11059 goto FAILED 11060 __13: 11061 ; 11062 11063 __14: 11064 11065 if !(type1 != ucp_Nd && X_pcre2_ucp_gentype_8[type1] != ucp_L && c != Tuint32_t('\137')) { 11066 goto __17 11067 } 11068 goto __16 11069 __17: 11070 ; 11071 ptr++ 11072 __18: 11073 if !(ptr < ptrend && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr)))&0xc0 == 0x80) { 11074 goto __19 11075 } 11076 ptr++ 11077 goto __18 11078 __19: 11079 ; 11080 if !(ptr >= ptrend) { 11081 goto __20 11082 } 11083 goto __16 11084 __20: 11085 ; 11086 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) 11087 if !(c >= 0xc0) { 11088 goto __21 11089 } 11090 if !(c&0x20 == Tuint32_t(0)) { 11091 goto __22 11092 } 11093 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f 11094 goto __23 11095 __22: 11096 if !(c&0x10 == Tuint32_t(0)) { 11097 goto __24 11098 } 11099 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f 11100 goto __25 11101 __24: 11102 if !(c&0x08 == Tuint32_t(0)) { 11103 goto __26 11104 } 11105 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f 11106 goto __27 11107 __26: 11108 if !(c&0x04 == Tuint32_t(0)) { 11109 goto __28 11110 } 11111 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 4)))&0x3f 11112 goto __29 11113 __28: 11114 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 5)))&0x3f 11115 __29: 11116 ; 11117 __27: 11118 ; 11119 __25: 11120 ; 11121 __23: 11122 ; 11123 __21: 11124 ; 11125 11126 type1 = Tuint32_t((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12)).Fchartype) 11127 goto __15 11128 __15: 11129 goto __14 11130 goto __16 11131 __16: 11132 ; 11133 goto __3 11134 __2: 11135 11136 /* Handle non-group names and group names in non-UTF modes. A group name must 11137 not start with a digit. If either of the others start with a digit it just 11138 won't be recognized. */ 11139 11140 if !(is_group != 0 && (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) <= '\071')) { 11141 goto __30 11142 } 11143 11144 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR44 11145 goto FAILED 11146 __30: 11147 ; 11148 11149 __31: 11150 if !(ptr < ptrend && 1 != 0 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fctypes + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))))))&Dctype_word != 0) { 11151 goto __32 11152 } 11153 11154 ptr++ 11155 goto __31 11156 __32: 11157 ; 11158 __3: 11159 ; 11160 11161 // Check name length 11162 11163 if !(ptr > *(*TPCRE2_SPTR8)(unsafe.Pointer(nameptr))+uintptr(DMAX_NAME_SIZE)) { 11164 goto __33 11165 } 11166 11167 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR48 11168 goto FAILED 11169 __33: 11170 ; 11171 *(*Tuint32_t)(unsafe.Pointer(namelenptr)) = Tuint32_t((int64(ptr) - int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(nameptr)))) / 1) 11172 11173 // Subpattern names must not be empty, and their terminator is checked here. 11174 // (What follows a verb or alpha assertion name is checked separately.) 11175 11176 if !(is_group != 0) { 11177 goto __34 11178 } 11179 11180 if !(ptr == *(*TPCRE2_SPTR8)(unsafe.Pointer(nameptr))) { 11181 goto __35 11182 } 11183 11184 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR62 // Subpattern name expected 11185 goto FAILED 11186 __35: 11187 ; 11188 if !(ptr >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) != int32(TPCRE2_UCHAR8(terminator))) { 11189 goto __36 11190 } 11191 11192 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR42 11193 goto FAILED 11194 __36: 11195 ; 11196 ptr++ 11197 __34: 11198 ; 11199 11200 *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) = ptr 11201 return DTRUE 11202 11203 FAILED: 11204 *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) = ptr 11205 return DFALSE 11206 } 11207 11208 // ************************************************ 11209 // 11210 // Manage callouts at start of cycle * 11211 // 11212 11213 // At the start of a new item in parse_regex() we are able to record the 11214 // details of the previous item in a prior callout, and also to set up an 11215 // automatic callout if enabled. Avoid having two adjacent automatic callouts, 11216 // which would otherwise happen for items such as \Q that contribute nothing to 11217 // the parsed pattern. 11218 // 11219 // Arguments: 11220 // ptr current pattern pointer 11221 // pcalloutptr points to a pointer to previous callout, or NULL 11222 // auto_callout TRUE if auto_callouts are enabled 11223 // parsed_pattern the parsed pattern pointer 11224 // cb compile block 11225 // 11226 // Returns: possibly updated parsed_pattern pointer. 11227 11228 func manage_callouts(tls *libc.TLS, ptr TPCRE2_SPTR8, pcalloutptr uintptr, auto_callout TBOOL, parsed_pattern uintptr, cb uintptr) uintptr { /* pcre2_compile.c:2503:17: */ 11229 var previous_callout uintptr = *(*uintptr)(unsafe.Pointer(pcalloutptr)) 11230 11231 if previous_callout != uintptr(0) { 11232 *(*Tuint32_t)(unsafe.Pointer(previous_callout + 2*4)) = Tuint32_t(Tsize_t((int64(ptr)-int64((*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern))/1) - Tsize_t(*(*Tuint32_t)(unsafe.Pointer(previous_callout + 1*4)))) 11233 } 11234 11235 if !(auto_callout != 0) { 11236 previous_callout = uintptr(0) 11237 } else { 11238 if previous_callout == uintptr(0) || previous_callout != parsed_pattern-uintptr(4)*4 || *(*Tuint32_t)(unsafe.Pointer(previous_callout + 3*4)) != Tuint32_t(255) { 11239 previous_callout = parsed_pattern // Set up new automatic callout 11240 parsed_pattern += 4 * uintptr(4) 11241 *(*Tuint32_t)(unsafe.Pointer(previous_callout)) = DMETA_CALLOUT_NUMBER 11242 *(*Tuint32_t)(unsafe.Pointer(previous_callout + 2*4)) = Tuint32_t(0) 11243 *(*Tuint32_t)(unsafe.Pointer(previous_callout + 3*4)) = Tuint32_t(255) 11244 } 11245 *(*Tuint32_t)(unsafe.Pointer(previous_callout + 1*4)) = Tuint32_t((int64(ptr) - int64((*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern)) / 1) 11246 } 11247 11248 *(*uintptr)(unsafe.Pointer(pcalloutptr)) = previous_callout 11249 return parsed_pattern 11250 } 11251 11252 // ************************************************ 11253 // 11254 // Parse regex and identify named groups * 11255 // 11256 11257 // This function is called first of all. It scans the pattern and does two 11258 // things: (1) It identifies capturing groups and makes a table of named capturing 11259 // groups so that information about them is fully available to both the compiling 11260 // scans. (2) It writes a parsed version of the pattern with comments omitted and 11261 // escapes processed into the parsed_pattern vector. 11262 // 11263 // Arguments: 11264 // ptr points to the start of the pattern 11265 // options compiling dynamic options (may change during the scan) 11266 // has_lookbehind points to a boolean, set TRUE if a lookbehind is found 11267 // cb pointer to the compile data block 11268 // 11269 // Returns: zero on success or a non-zero error code, with the 11270 // error offset placed in the cb field 11271 11272 // A structure and some flags for dealing with nested groups. 11273 11274 type Snest_save = struct { 11275 Fnest_depth Tuint16_t 11276 Freset_group Tuint16_t 11277 Fmax_group Tuint16_t 11278 Fflags Tuint16_t 11279 Foptions Tuint32_t 11280 } /* pcre2_compile.c:2555:9 */ 11281 11282 // ************************************************ 11283 // 11284 // Parse regex and identify named groups * 11285 // 11286 11287 // This function is called first of all. It scans the pattern and does two 11288 // things: (1) It identifies capturing groups and makes a table of named capturing 11289 // groups so that information about them is fully available to both the compiling 11290 // scans. (2) It writes a parsed version of the pattern with comments omitted and 11291 // escapes processed into the parsed_pattern vector. 11292 // 11293 // Arguments: 11294 // ptr points to the start of the pattern 11295 // options compiling dynamic options (may change during the scan) 11296 // has_lookbehind points to a boolean, set TRUE if a lookbehind is found 11297 // cb pointer to the compile data block 11298 // 11299 // Returns: zero on success or a non-zero error code, with the 11300 // error offset placed in the cb field 11301 11302 // A structure and some flags for dealing with nested groups. 11303 11304 type Tnest_save = Snest_save /* pcre2_compile.c:2561:3 */ 11305 11306 // Only in 32-bit mode can there be literals > META_END. A macro encapsulates 11307 // the storing of literal values in the main parsed pattern, where they can always 11308 // be quantified. 11309 11310 // Here's the actual function. 11311 11312 func parse_regex(tls *libc.TLS, ptr TPCRE2_SPTR8, options Tuint32_t, has_lookbehind uintptr, cb uintptr) int32 { /* pcre2_compile.c:2598:12: */ 11313 bp := tls.Alloc(104) 11314 defer tls.Free(104) 11315 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) = ptr 11316 11317 // var c Tuint32_t at bp+16, 4 11318 11319 var delimiter Tuint32_t 11320 // var namelen Tuint32_t at bp+72, 4 11321 11322 var class_range_state Tuint32_t 11323 var verblengthptr uintptr // Value avoids compiler warning 11324 var verbstartptr uintptr 11325 // var previous_callout uintptr at bp, 8 11326 11327 var parsed_pattern uintptr 11328 var parsed_pattern_end uintptr 11329 var meta_quantifier Tuint32_t 11330 var add_after_mark Tuint32_t 11331 var extra_options Tuint32_t 11332 var nest_depth Tuint16_t 11333 var after_manual_callout int32 11334 var expect_cond_assert int32 11335 // var errorcode int32 at bp+20, 4 11336 11337 var escape int32 11338 // var i int32 at bp+48, 4 11339 11340 var inescq TBOOL 11341 var inverbname TBOOL 11342 var utf TBOOL 11343 var auto_callout TBOOL 11344 var isdupname TBOOL 11345 var negate_class TBOOL 11346 var okquantifier TBOOL 11347 var thisptr TPCRE2_SPTR8 11348 // var name TPCRE2_SPTR8 at bp+64, 8 11349 11350 var ptrend TPCRE2_SPTR8 11351 var verbnamestart TPCRE2_SPTR8 // Value avoids compiler warning 11352 var ng uintptr 11353 var top_nest uintptr 11354 var end_nests uintptr 11355 var verbnamelength Tsize_t 11356 var ok TBOOL 11357 // var negated TBOOL at bp+32, 4 11358 11359 // var ptype Tuint16_t at bp+36, 2 11360 11361 // var pdata Tuint16_t at bp+38, 2 11362 11363 // var p TPCRE2_SPTR8 at bp+40, 8 11364 11365 var p1 uintptr 11366 var ptype1 int32 11367 var pvalue int32 11368 var posix_negate TBOOL 11369 var posix_class int32 11370 // var negated1 TBOOL at bp+84, 4 11371 11372 // var ptype2 Tuint16_t at bp+88, 2 11373 11374 // var pdata1 Tuint16_t at bp+90, 2 11375 11376 var char_is_literal TBOOL 11377 var meta Tuint32_t 11378 var vn uintptr 11379 var hyphenok TBOOL 11380 var oldoptions Tuint32_t 11381 var calloutlength Tsize_t 11382 var startptr TPCRE2_SPTR8 11383 var n int32 11384 var ge Tuint32_t 11385 // var major int32 at bp+100, 4 11386 11387 var minor int32 11388 var was_r_ampersand TBOOL 11389 var newsize Tuint32_t 11390 var newspace uintptr 11391 var prev_expect_cond_assert int32 11392 // var min_repeat Tuint32_t at bp+76, 4 11393 11394 // var max_repeat Tuint32_t at bp+80, 4 11395 11396 // var set Tuint32_t at bp+92, 4 11397 11398 // var unset Tuint32_t at bp+96, 4 11399 11400 var optset uintptr 11401 var terminator Tuint32_t 11402 var prev_meta_quantifier Tuint32_t 11403 var prev_okquantifier TBOOL 11404 // var tempptr TPCRE2_SPTR8 at bp+24, 8 11405 11406 // var offset Tsize_t at bp+56, 8 11407 verblengthptr = uintptr(0) 11408 verbstartptr = uintptr(0) 11409 *(*uintptr)(unsafe.Pointer(bp /* previous_callout */)) = uintptr(0) 11410 parsed_pattern = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fparsed_pattern 11411 parsed_pattern_end = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fparsed_pattern_end 11412 meta_quantifier = Tuint32_t(0) 11413 add_after_mark = Tuint32_t(0) 11414 extra_options = (*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fextra_options 11415 nest_depth = Tuint16_t(0) 11416 after_manual_callout = 0 11417 expect_cond_assert = 0 11418 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = 0 11419 inescq = DFALSE 11420 inverbname = DFALSE 11421 utf = libc.Bool32(options&DPCRE2_UTF != Tuint32_t(0)) 11422 auto_callout = libc.Bool32(options&DPCRE2_AUTO_CALLOUT != Tuint32_t(0)) 11423 okquantifier = DFALSE 11424 ptrend = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fend_pattern 11425 verbnamestart = uintptr(0) 11426 11427 // Insert leading items for word and line matching (features provided for the 11428 // benefit of pcre2grep). 11429 11430 if !(extra_options&DPCRE2_EXTRA_MATCH_LINE != Tuint32_t(0)) { 11431 goto __1 11432 } 11433 11434 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_CIRCUMFLEX 11435 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_NOCAPTURE 11436 goto __2 11437 __1: 11438 if !(extra_options&DPCRE2_EXTRA_MATCH_WORD != Tuint32_t(0)) { 11439 goto __3 11440 } 11441 11442 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + ESC_b 11443 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_NOCAPTURE 11444 __3: 11445 ; 11446 __2: 11447 ; 11448 11449 // If the pattern is actually a literal string, process it separately to avoid 11450 // cluttering up the main loop. 11451 11452 if !(options&DPCRE2_LITERAL != Tuint32_t(0)) { 11453 goto __4 11454 } 11455 11456 __5: 11457 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) < ptrend) { 11458 goto __6 11459 } 11460 11461 if !(parsed_pattern >= parsed_pattern_end) { 11462 goto __7 11463 } 11464 11465 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR63 // Internal error (parsed pattern overflow) 11466 goto FAILED 11467 __7: 11468 ; 11469 thisptr = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) 11470 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)), 1)))) 11471 if !(utf != 0 && *(*Tuint32_t)(unsafe.Pointer(bp + 16)) >= 0xc0) { 11472 goto __8 11473 } 11474 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x20 == Tuint32_t(0)) { 11475 goto __9 11476 } 11477 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1))))&0x3f 11478 goto __10 11479 __9: 11480 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x10 == Tuint32_t(0)) { 11481 goto __11 11482 } 11483 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f 11484 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(2) 11485 goto __12 11486 __11: 11487 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x08 == Tuint32_t(0)) { 11488 goto __13 11489 } 11490 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f 11491 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(3) 11492 goto __14 11493 __13: 11494 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x04 == Tuint32_t(0)) { 11495 goto __15 11496 } 11497 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 3)))&0x3f 11498 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(4) 11499 goto __16 11500 __15: 11501 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 4)))&0x3f 11502 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(5) 11503 __16: 11504 ; 11505 __14: 11506 ; 11507 __12: 11508 ; 11509 __10: 11510 ; 11511 __8: 11512 ; 11513 11514 if !(auto_callout != 0) { 11515 goto __17 11516 } 11517 parsed_pattern = manage_callouts(tls, thisptr, bp, 11518 auto_callout, parsed_pattern, cb) 11519 __17: 11520 ; 11521 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) 11522 okquantifier = DTRUE 11523 11524 goto __5 11525 __6: 11526 ; 11527 goto PARSED_END 11528 __4: 11529 ; 11530 11531 // Process a real regex which may contain meta-characters. 11532 11533 top_nest = uintptr(0) 11534 end_nests = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_workspace + uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fworkspace_size) 11535 11536 // The size of the nest_save structure might not be a factor of the size of the 11537 // workspace. Therefore we must round down end_nests so as to correctly avoid 11538 // creating a nest_save that spans the end of the workspace. 11539 11540 end_nests = end_nests - uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fworkspace_size*Tsize_t(unsafe.Sizeof(TPCRE2_UCHAR8(0)))%Tsize_t(unsafe.Sizeof(Tnest_save{}))) 11541 11542 // PCRE2_EXTENDED_MORE implies PCRE2_EXTENDED 11543 11544 if !(options&DPCRE2_EXTENDED_MORE != Tuint32_t(0)) { 11545 goto __18 11546 } 11547 options = options | DPCRE2_EXTENDED 11548 __18: 11549 ; 11550 11551 // Now scan the pattern 11552 11553 __19: 11554 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) < ptrend) { 11555 goto __20 11556 } 11557 11558 if !(parsed_pattern >= parsed_pattern_end) { 11559 goto __21 11560 } 11561 11562 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR63 // Internal error (parsed pattern overflow) 11563 goto FAILED 11564 __21: 11565 ; 11566 11567 if !(Tuint32_t(nest_depth) > (*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fparens_nest_limit) { 11568 goto __22 11569 } 11570 11571 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR19 11572 goto FAILED // Parentheses too deeply nested 11573 __22: 11574 ; 11575 11576 // Get next input character, save its position for callout handling. 11577 11578 thisptr = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) 11579 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)), 1)))) 11580 if !(utf != 0 && *(*Tuint32_t)(unsafe.Pointer(bp + 16)) >= 0xc0) { 11581 goto __23 11582 } 11583 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x20 == Tuint32_t(0)) { 11584 goto __24 11585 } 11586 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1))))&0x3f 11587 goto __25 11588 __24: 11589 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x10 == Tuint32_t(0)) { 11590 goto __26 11591 } 11592 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f 11593 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(2) 11594 goto __27 11595 __26: 11596 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x08 == Tuint32_t(0)) { 11597 goto __28 11598 } 11599 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f 11600 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(3) 11601 goto __29 11602 __28: 11603 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x04 == Tuint32_t(0)) { 11604 goto __30 11605 } 11606 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 3)))&0x3f 11607 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(4) 11608 goto __31 11609 __30: 11610 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 4)))&0x3f 11611 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(5) 11612 __31: 11613 ; 11614 __29: 11615 ; 11616 __27: 11617 ; 11618 __25: 11619 ; 11620 __23: 11621 ; 11622 11623 // Copy quoted literals until \E, allowing for the possibility of automatic 11624 // callouts, except when processing a (*VERB) "name". 11625 11626 if !(inescq != 0) { 11627 goto __32 11628 } 11629 11630 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\134') && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\105') { 11631 goto __33 11632 } 11633 11634 inescq = DFALSE 11635 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ // Skip E 11636 goto __34 11637 __33: 11638 11639 if !(expect_cond_assert > 0) { 11640 goto __35 11641 } /* A literal is not allowed if we are */ 11642 // expecting a conditional assertion, 11643 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))-- // but an empty \Q\E sequence is OK. 11644 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR28 11645 goto FAILED 11646 __35: 11647 ; 11648 if !(inverbname != 0) { 11649 goto __36 11650 } 11651 // Don't use PARSED_LITERAL() because it 11652 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) 11653 goto __37 11654 __36: 11655 11656 if !(libc.PostDecInt32(&after_manual_callout, 1) <= 0) { 11657 goto __38 11658 } 11659 parsed_pattern = manage_callouts(tls, thisptr, bp, 11660 auto_callout, parsed_pattern, cb) 11661 __38: 11662 ; 11663 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) 11664 okquantifier = DTRUE 11665 11666 __37: 11667 ; 11668 meta_quantifier = Tuint32_t(0) 11669 __34: 11670 ; 11671 goto __19 // Next character 11672 __32: 11673 ; 11674 11675 // If we are processing the "name" part of a (*VERB:NAME) item, all 11676 // characters up to the closing parenthesis are literals except when 11677 // PCRE2_ALT_VERBNAMES is set. That causes backslash interpretation, but only \Q 11678 // and \E and escaped characters are allowed (no character types such as \d). If 11679 // PCRE2_EXTENDED is also set, we must ignore white space and # comments. Do 11680 // this by not entering the special (*VERB:NAME) processing - they are then 11681 // picked up below. Note that c is a character, not a code unit, so we must not 11682 // use MAX_255 to test its size because MAX_255 tests code units and is assumed 11683 // TRUE in 8-bit mode. 11684 11685 if !(inverbname != 0 && (options&(DPCRE2_EXTENDED|DPCRE2_ALT_VERBNAMES) != DPCRE2_EXTENDED|DPCRE2_ALT_VERBNAMES || *(*Tuint32_t)(unsafe.Pointer(bp + 16)) > Tuint32_t(255) && *(*Tuint32_t)(unsafe.Pointer(bp + 16))|Tuint32_t(1) != Tuint32_t(0x200f) && *(*Tuint32_t)(unsafe.Pointer(bp + 16))|Tuint32_t(1) != Tuint32_t(0x2029) || *(*Tuint32_t)(unsafe.Pointer(bp + 16)) < Tuint32_t(256) && *(*Tuint32_t)(unsafe.Pointer(bp + 16)) != Tuint32_t('\043') && int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fctypes + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 16))))))&Dctype_space == 0 && 11686 11687 *(*Tuint32_t)(unsafe.Pointer(bp + 16)) != libc.Uint32FromUint8(libc.Uint8FromInt32(133)))) { 11688 goto __39 11689 } 11690 11691 switch *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) { 11692 default: 11693 goto __41 11694 11695 case Tuint32_t('\051'): 11696 goto __42 11697 11698 case Tuint32_t('\134'): 11699 goto __43 11700 } 11701 goto __40 11702 11703 __41: // Don't use PARSED_LITERAL() because it 11704 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) 11705 goto __40 11706 11707 __42: 11708 inverbname = DFALSE 11709 // This is the length in characters 11710 verbnamelength = Tsize_t((int64(parsed_pattern)-int64(verblengthptr))/4 - int64(1)) 11711 // But the limit on the length is in code units 11712 if !((int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))-int64(verbnamestart))/1-int64(1) > int64(int32(uint32(1)<<8-uint32(1)))) { 11713 goto __44 11714 } 11715 11716 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))-- 11717 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR76 11718 goto FAILED 11719 __44: 11720 ; 11721 *(*Tuint32_t)(unsafe.Pointer(verblengthptr)) = Tuint32_t(verbnamelength) 11722 11723 // If this name was on a verb such as (*ACCEPT) which does not continue, 11724 // a (*MARK) was generated for the name. We now add the original verb as the 11725 // next item. 11726 11727 if !(add_after_mark != Tuint32_t(0)) { 11728 goto __45 11729 } 11730 11731 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = add_after_mark 11732 add_after_mark = Tuint32_t(0) 11733 __45: 11734 ; 11735 goto __40 11736 11737 __43: 11738 if !(options&DPCRE2_ALT_VERBNAMES != Tuint32_t(0)) { 11739 goto __46 11740 } 11741 11742 escape = X_pcre2_check_escape_8(tls, bp+8, ptrend, bp+16, bp+20, options, 11743 (*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fextra_options, DFALSE, cb) 11744 if !(*(*int32)(unsafe.Pointer(bp + 20)) != 0) { 11745 goto __48 11746 } 11747 goto FAILED 11748 __48: 11749 ; 11750 goto __47 11751 __46: 11752 escape = 0 11753 __47: 11754 ; // Treat all as literal 11755 11756 switch escape { 11757 case 0: 11758 goto __50 11759 11760 case ESC_Q: 11761 goto __51 11762 11763 case ESC_E: 11764 goto __52 11765 11766 default: 11767 goto __53 11768 } 11769 goto __49 11770 11771 __50: // Don't use PARSED_LITERAL() because it 11772 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) 11773 goto __49 11774 11775 __51: 11776 inescq = DTRUE 11777 goto __49 11778 11779 __52: // Ignore 11780 goto __49 11781 11782 __53: 11783 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR40 // Invalid in verb name 11784 goto FAILED 11785 __49: 11786 ; 11787 __40: 11788 ; 11789 goto __19 // Next character in pattern 11790 __39: 11791 ; 11792 11793 // Not a verb name character. At this point we must process everything that 11794 // must not change the quantification state. This is mainly comments, but we 11795 // handle \Q and \E here as well, so that an item such as A\Q\E+ is treated as 11796 // A+, as in Perl. An isolated \E is ignored. 11797 11798 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\134') && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) < ptrend) { 11799 goto __54 11800 } 11801 11802 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\121' || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\105') { 11803 goto __55 11804 } 11805 11806 inescq = libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\121') 11807 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 11808 goto __19 11809 __55: 11810 ; 11811 __54: 11812 ; 11813 11814 // Skip over whitespace and # comments in extended mode. Note that c is a 11815 // character, not a code unit, so we must not use MAX_255 to test its size 11816 // because MAX_255 tests code units and is assumed TRUE in 8-bit mode. The 11817 // whitespace characters are those designated as "Pattern White Space" by 11818 // Unicode, which are the isspace() characters plus CHAR_NEL (newline), which is 11819 // U+0085 in Unicode, plus U+200E, U+200F, U+2028, and U+2029. These are a 11820 // subset of space characters that match \h and \v. 11821 11822 if !(options&DPCRE2_EXTENDED != Tuint32_t(0)) { 11823 goto __56 11824 } 11825 11826 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fctypes + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 16))))))&Dctype_space != 0) { 11827 goto __57 11828 } 11829 goto __19 11830 __57: 11831 ; 11832 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) == libc.Uint32FromUint8(libc.Uint8FromInt32(133)) || *(*Tuint32_t)(unsafe.Pointer(bp + 16))|Tuint32_t(1) == Tuint32_t(0x200f) || *(*Tuint32_t)(unsafe.Pointer(bp + 16))|Tuint32_t(1) == Tuint32_t(0x2029)) { 11833 goto __58 11834 } 11835 goto __19 11836 __58: 11837 ; 11838 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\043')) { 11839 goto __59 11840 } 11841 11842 __60: 11843 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) < ptrend) { 11844 goto __61 11845 } 11846 11847 if !(func() int32 { 11848 if (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 11849 return libc.Bool32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) < (*Tcompile_block_8)(unsafe.Pointer(cb)).Fend_pattern && X_pcre2_is_newline_8(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnltype, (*Tcompile_block_8)(unsafe.Pointer(cb)).Fend_pattern, cb+260, utf) != 0) 11850 } 11851 return libc.Bool32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) <= (*Tcompile_block_8)(unsafe.Pointer(cb)).Fend_pattern-uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cb + 272))) && ((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cb + 272 + 1))))) 11852 }() != 0) { 11853 goto __62 11854 } /* For non-fixed-length newline cases, */ 11855 // IS_NEWLINE sets cb->nllen. 11856 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += TPCRE2_SPTR8((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnllen) 11857 goto __61 11858 __62: 11859 ; 11860 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 11861 if !(utf != 0) { 11862 goto __63 11863 } 11864 __64: 11865 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) < ptrend && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0xc0 == 0x80) { 11866 goto __65 11867 } 11868 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 11869 goto __64 11870 __65: 11871 ; 11872 __63: 11873 ; 11874 goto __60 11875 __61: 11876 ; 11877 goto __19 // Next character in pattern 11878 __59: 11879 ; 11880 __56: 11881 ; 11882 11883 // Skip over bracketed comments 11884 11885 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\050') && (int64(ptrend)-int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))/1 >= int64(2) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\077' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1))) == '\043') { 11886 goto __66 11887 } 11888 11889 __67: 11890 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\051') { 11891 goto __68 11892 } 11893 goto __67 11894 __68: 11895 ; 11896 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend) { 11897 goto __69 11898 } 11899 11900 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR18 // A special error for missing ) in a comment 11901 goto FAILED // to make it easier to debug. 11902 __69: 11903 ; 11904 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 11905 goto __19 // Next character in pattern 11906 __66: 11907 ; 11908 11909 // If the next item is not a quantifier, fill in length of any previous 11910 // callout and create an auto callout if required. 11911 11912 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) != Tuint32_t('\052') && *(*Tuint32_t)(unsafe.Pointer(bp + 16)) != Tuint32_t('\053') && *(*Tuint32_t)(unsafe.Pointer(bp + 16)) != Tuint32_t('\077') && (*(*Tuint32_t)(unsafe.Pointer(bp + 16)) != Tuint32_t('\173') || func() bool { 11913 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) 11914 return !(read_repeat_counts(tls, bp+24, ptrend, uintptr(0), uintptr(0), bp+20) != 0) 11915 }())) { 11916 goto __70 11917 } 11918 11919 if !(libc.PostDecInt32(&after_manual_callout, 1) <= 0) { 11920 goto __71 11921 } 11922 parsed_pattern = manage_callouts(tls, thisptr, bp, auto_callout, 11923 parsed_pattern, cb) 11924 __71: 11925 ; 11926 __70: 11927 ; 11928 11929 // If expect_cond_assert is 2, we have just passed (?( and are expecting an 11930 // assertion, possibly preceded by a callout. If the value is 1, we have just 11931 // had the callout and expect an assertion. There must be at least 3 more 11932 // characters in all cases. When expect_cond_assert is 2, we know that the 11933 // current character is an opening parenthesis, as otherwise we wouldn't be 11934 // here. However, when it is 1, we need to check, and it's easiest just to check 11935 // always. Note that expect_cond_assert may be negative, since all callouts just 11936 // decrement it. 11937 11938 if !(expect_cond_assert > 0) { 11939 goto __72 11940 } 11941 11942 ok = libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\050') && (int64(ptrend)-int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))/1 >= int64(3) && (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\077' || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\052')) 11943 if !(ok != 0) { 11944 goto __73 11945 } 11946 11947 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\052') { 11948 goto __74 11949 } /* New alpha assertion format, possibly */ 11950 11951 ok = libc.Bool32(1 != 0 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fctypes + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1))))))&Dctype_lcletter != 0) 11952 goto __75 11953 __74: 11954 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) + 1))) { 11955 case '\103': 11956 goto __77 11957 11958 case '\075': 11959 goto __78 11960 case '\041': 11961 goto __79 11962 11963 case '\074': 11964 goto __80 11965 11966 default: 11967 goto __81 11968 } 11969 goto __76 /* Traditional symbolic format */ 11970 11971 __77: 11972 ok = libc.Bool32(expect_cond_assert == 2) 11973 goto __76 11974 11975 __78: 11976 __79: 11977 goto __76 11978 11979 __80: 11980 ok = libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2))) == '\075' || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2))) == '\041') 11981 goto __76 11982 11983 __81: 11984 ok = DFALSE 11985 __76: 11986 ; 11987 __75: 11988 ; 11989 __73: 11990 ; 11991 11992 if !!(ok != 0) { 11993 goto __82 11994 } 11995 11996 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))-- // Adjust error offset 11997 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR28 11998 goto FAILED 11999 __82: 12000 ; 12001 __72: 12002 ; 12003 12004 // Remember whether we are expecting a conditional assertion, and set the 12005 // default for this item. 12006 12007 prev_expect_cond_assert = expect_cond_assert 12008 expect_cond_assert = 0 12009 12010 // Remember quantification status for the previous significant item, then set 12011 // default for this item. 12012 12013 prev_okquantifier = okquantifier 12014 prev_meta_quantifier = meta_quantifier 12015 okquantifier = DFALSE 12016 meta_quantifier = Tuint32_t(0) 12017 12018 // If the previous significant item was a quantifier, adjust the parsed code 12019 // if there is a following modifier. The base meta value is always followed by 12020 // the PLUS and QUERY values, in that order. We do this here rather than after 12021 // reading a quantifier so that intervening comments and /x whitespace can be 12022 // ignored without having to replicate code. 12023 12024 if !(prev_meta_quantifier != Tuint32_t(0) && (*(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\077') || *(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\053'))) { 12025 goto __83 12026 } 12027 12028 *(*Tuint32_t)(unsafe.Pointer(parsed_pattern + uintptr(func() int32 { 12029 if prev_meta_quantifier == DMETA_MINMAX { 12030 return -3 12031 } 12032 return -1 12033 }())*4)) = prev_meta_quantifier + func() uint32 { 12034 if *(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\077') { 12035 return 0x00020000 12036 } 12037 return 0x00010000 12038 }() 12039 goto __19 // Next character in pattern 12040 __83: 12041 ; 12042 12043 // Process the next item in the main part of a pattern. 12044 12045 switch *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) { 12046 default: 12047 goto __85 12048 12049 // ---- Escape sequence ---- 12050 12051 case Tuint32_t('\134'): 12052 goto __86 // End escape sequence processing 12053 12054 // ---- Single-character special items ---- 12055 12056 case Tuint32_t('\136'): 12057 goto __87 12058 12059 case Tuint32_t('\044'): 12060 goto __88 12061 12062 case Tuint32_t('\056'): 12063 goto __89 12064 12065 // ---- Single-character quantifiers ---- 12066 12067 case Tuint32_t('\052'): 12068 goto __90 12069 12070 case Tuint32_t('\053'): 12071 goto __91 12072 12073 case Tuint32_t('\077'): 12074 goto __92 12075 12076 // ---- Potential {n,m} quantifier ---- 12077 12078 case Tuint32_t('\173'): 12079 goto __93 12080 12081 // ---- Character class ---- 12082 12083 case Tuint32_t('\133'): 12084 goto __94 // End of character class 12085 12086 // ---- Opening parenthesis ---- 12087 12088 case Tuint32_t('\050'): 12089 goto __95 // End of ( handling 12090 12091 // ---- Branch terminators ---- 12092 12093 // Alternation: reset the capture count if we are in a (?| group. 12094 12095 case Tuint32_t('\174'): 12096 goto __96 12097 12098 // End of group; reset the capture count to the maximum if we are in a (?| 12099 // group and/or reset the options that are tracked during parsing. Disallow 12100 // quantifier for a condition that is an assertion. 12101 12102 case Tuint32_t('\051'): 12103 goto __97 12104 } 12105 goto __84 12106 12107 __85: // Non-special character 12108 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) 12109 okquantifier = DTRUE 12110 12111 goto __84 12112 12113 // ---- Escape sequence ---- 12114 12115 __86: 12116 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* tempptr */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) 12117 escape = X_pcre2_check_escape_8(tls, bp+8, ptrend, bp+16, bp+20, options, 12118 (*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fextra_options, DFALSE, cb) 12119 if !(*(*int32)(unsafe.Pointer(bp + 20)) != 0) { 12120 goto __98 12121 } 12122 12123 ESCAPE_FAILED: 12124 if !(extra_options&DPCRE2_EXTRA_BAD_ESCAPE_IS_LITERAL == Tuint32_t(0)) { 12125 goto __99 12126 } 12127 goto FAILED 12128 __99: 12129 ; 12130 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* tempptr */)) 12131 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend) { 12132 goto __100 12133 } 12134 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = Tuint32_t('\134') 12135 goto __101 12136 __100: 12137 12138 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)), 1)))) 12139 if !(utf != 0 && *(*Tuint32_t)(unsafe.Pointer(bp + 16)) >= 0xc0) { 12140 goto __102 12141 } 12142 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x20 == Tuint32_t(0)) { 12143 goto __103 12144 } 12145 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1))))&0x3f 12146 goto __104 12147 __103: 12148 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x10 == Tuint32_t(0)) { 12149 goto __105 12150 } 12151 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f 12152 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(2) 12153 goto __106 12154 __105: 12155 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x08 == Tuint32_t(0)) { 12156 goto __107 12157 } 12158 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f 12159 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(3) 12160 goto __108 12161 __107: 12162 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x04 == Tuint32_t(0)) { 12163 goto __109 12164 } 12165 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 3)))&0x3f 12166 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(4) 12167 goto __110 12168 __109: 12169 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 4)))&0x3f 12170 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(5) 12171 __110: 12172 ; 12173 __108: 12174 ; 12175 __106: 12176 ; 12177 __104: 12178 ; 12179 __102: 12180 ; 12181 12182 // Get character value, increment pointer 12183 __101: 12184 ; 12185 escape = 0 // Treat as literal character 12186 __98: 12187 ; 12188 12189 // The escape was a data escape or literal character. 12190 12191 if !(escape == 0) { 12192 goto __111 12193 } 12194 12195 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) 12196 okquantifier = DTRUE 12197 12198 goto __112 12199 __111: 12200 if !(escape < 0) { 12201 goto __113 12202 } 12203 12204 *(*Tsize_t)(unsafe.Pointer(bp + 56 /* offset */)) = Tsize_t((int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))-int64((*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern))/1 - int64(1)) 12205 escape = -escape 12206 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_BACKREF | Tuint32_t(escape) 12207 if !(escape < 10) { 12208 goto __115 12209 } 12210 12211 if !(*(*Tsize_t)(unsafe.Pointer(cb + 88 + uintptr(escape)*8)) == libc.CplUint64(uint64(0))) { 12212 goto __117 12213 } 12214 *(*Tsize_t)(unsafe.Pointer(cb + 88 + uintptr(escape)*8)) = *(*Tsize_t)(unsafe.Pointer(bp + 56 /* offset */)) 12215 __117: 12216 ; 12217 goto __116 12218 __115: 12219 12220 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) >> 32) 12221 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) & uint64(0xffffffff)) 12222 12223 __116: 12224 ; 12225 okquantifier = DTRUE 12226 goto __114 12227 __113: 12228 switch escape { 12229 case ESC_C: 12230 goto __119 12231 12232 case ESC_X: 12233 goto __120 12234 case ESC_H: 12235 goto __121 12236 case ESC_h: 12237 goto __122 12238 case ESC_N: 12239 goto __123 12240 case ESC_R: 12241 goto __124 12242 case ESC_V: 12243 goto __125 12244 case ESC_v: 12245 goto __126 12246 12247 default: 12248 goto __127 12249 12250 // Escapes that change in UCP mode. Note that PCRE2_UCP will never be set 12251 // without Unicode support because it is checked when pcre2_compile() is 12252 // called. 12253 12254 case ESC_d: 12255 goto __128 12256 case ESC_D: 12257 goto __129 12258 case ESC_s: 12259 goto __130 12260 case ESC_S: 12261 goto __131 12262 case ESC_w: 12263 goto __132 12264 case ESC_W: 12265 goto __133 12266 12267 // Unicode property matching 12268 12269 case ESC_P: 12270 goto __134 12271 case ESC_p: 12272 goto __135 // End \P and \p 12273 12274 // When \g is used with quotes or angle brackets as delimiters, it is a 12275 // numerical or named subroutine call, and control comes here. When used 12276 // with brace delimiters it is a numberical back reference and does not come 12277 // here because check_escape() returns it directly as a reference. \k is 12278 // always a named back reference. 12279 12280 case ESC_g: 12281 goto __136 12282 case ESC_k: 12283 goto __137 12284 } 12285 goto __118 12286 12287 __119: 12288 if !(options&DPCRE2_NEVER_BACKSLASH_C != Tuint32_t(0)) { 12289 goto __138 12290 } 12291 12292 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR83 12293 goto ESCAPE_FAILED 12294 __138: 12295 ; 12296 okquantifier = DTRUE 12297 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + uint32(escape) 12298 goto __118 12299 12300 __120: 12301 __121: 12302 __122: 12303 __123: 12304 __124: 12305 __125: 12306 __126: 12307 okquantifier = DTRUE 12308 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + uint32(escape) 12309 goto __118 12310 12311 __127: // \A, \B, \b, \G, \K, \Z, \z cannot be quantified. 12312 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + uint32(escape) 12313 goto __118 12314 12315 // Escapes that change in UCP mode. Note that PCRE2_UCP will never be set 12316 // without Unicode support because it is checked when pcre2_compile() is 12317 // called. 12318 12319 __128: 12320 __129: 12321 __130: 12322 __131: 12323 __132: 12324 __133: 12325 okquantifier = DTRUE 12326 if !(options&DPCRE2_UCP == Tuint32_t(0)) { 12327 goto __139 12328 } 12329 12330 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + uint32(escape) 12331 goto __140 12332 __139: 12333 12334 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + func() uint32 { 12335 if escape == ESC_d || escape == ESC_s || escape == ESC_w { 12336 return ESC_p 12337 } 12338 return ESC_P 12339 }() 12340 switch escape { 12341 case ESC_d: 12342 goto __142 12343 case ESC_D: 12344 goto __143 12345 12346 case ESC_s: 12347 goto __144 12348 case ESC_S: 12349 goto __145 12350 12351 case ESC_w: 12352 goto __146 12353 case ESC_W: 12354 goto __147 12355 } 12356 goto __141 12357 12358 __142: 12359 __143: 12360 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(int32(DPT_PC)<<16 | ucp_Nd) 12361 goto __141 12362 12363 __144: 12364 __145: 12365 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(int32(DPT_SPACE) << 16) 12366 goto __141 12367 12368 __146: 12369 __147: 12370 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(int32(DPT_WORD) << 16) 12371 goto __141 12372 __141: 12373 ; 12374 __140: 12375 ; 12376 goto __118 12377 12378 // Unicode property matching 12379 12380 __134: 12381 __135: 12382 12383 *(*Tuint16_t)(unsafe.Pointer(bp + 36 /* ptype */)) = Tuint16_t(0) 12384 *(*Tuint16_t)(unsafe.Pointer(bp + 38 /* pdata */)) = Tuint16_t(0) 12385 if !!(get_ucp(tls, bp+8, bp+32, bp+36, bp+38, bp+20, cb) != 0) { 12386 goto __148 12387 } 12388 goto ESCAPE_FAILED 12389 __148: 12390 ; 12391 if !(*(*TBOOL)(unsafe.Pointer(bp + 32)) != 0) { 12392 goto __149 12393 } 12394 if escape == ESC_P { 12395 escape = ESC_p 12396 } else { 12397 escape = ESC_P 12398 } 12399 __149: 12400 ; 12401 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + uint32(escape) 12402 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(int32(*(*Tuint16_t)(unsafe.Pointer(bp + 36)))<<16 | int32(*(*Tuint16_t)(unsafe.Pointer(bp + 38)))) 12403 okquantifier = DTRUE 12404 12405 goto __118 // End \P and \p 12406 12407 // When \g is used with quotes or angle brackets as delimiters, it is a 12408 // numerical or named subroutine call, and control comes here. When used 12409 // with brace delimiters it is a numberical back reference and does not come 12410 // here because check_escape() returns it directly as a reference. \k is 12411 // always a named back reference. 12412 12413 __136: 12414 __137: 12415 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\173' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\074' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\047') { 12416 goto __150 12417 } 12418 12419 if escape == ESC_g { 12420 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR57 12421 } else { 12422 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR69 12423 } 12424 goto ESCAPE_FAILED 12425 __150: 12426 ; 12427 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\074' { 12428 terminator = uint32('\076') 12429 } else { 12430 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\047' { 12431 terminator = uint32('\047') 12432 } else { 12433 terminator = uint32('\175') 12434 } 12435 } 12436 12437 // For a non-braced \g, check for a numerical recursion. 12438 12439 if !(escape == ESC_g && terminator != Tuint32_t('\175')) { 12440 goto __151 12441 } 12442 12443 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 40 /* p */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + uintptr(1) 12444 12445 if !(read_number(tls, bp+40, ptrend, int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount), DMAX_GROUP_NUMBER, ERR61, bp+48, 12446 bp+20) != 0) { 12447 goto __152 12448 } 12449 12450 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 40)) >= ptrend || Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 40))))) != terminator) { 12451 goto __153 12452 } 12453 12454 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR57 12455 goto ESCAPE_FAILED 12456 __153: 12457 ; 12458 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 40 /* p */)) 12459 goto SET_RECURSION 12460 __152: 12461 ; 12462 if !(*(*int32)(unsafe.Pointer(bp + 20)) != 0) { 12463 goto __154 12464 } 12465 goto ESCAPE_FAILED 12466 __154: 12467 ; 12468 __151: 12469 ; 12470 12471 // Not a numerical recursion 12472 12473 if !!(read_name(tls, bp+8, ptrend, utf, terminator, bp+56, bp+64, bp+72, 12474 bp+20, cb) != 0) { 12475 goto __155 12476 } 12477 goto ESCAPE_FAILED 12478 __155: 12479 ; 12480 12481 // \k and \g when used with braces are back references, whereas \g used 12482 // with quotes or angle brackets is a recursion 12483 12484 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = func() uint32 { 12485 if escape == ESC_k || terminator == Tuint32_t('\175') { 12486 return DMETA_BACKREF_BYNAME 12487 } 12488 return DMETA_RECURSE_BYNAME 12489 }() 12490 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 72 /* namelen */)) 12491 12492 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) >> 32) 12493 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) & uint64(0xffffffff)) 12494 12495 okquantifier = DTRUE 12496 goto __118 // End special escape processing 12497 __118: 12498 ; 12499 __114: 12500 ; 12501 __112: 12502 ; 12503 goto __84 // End escape sequence processing 12504 12505 // ---- Single-character special items ---- 12506 12507 __87: 12508 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_CIRCUMFLEX 12509 goto __84 12510 12511 __88: 12512 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_DOLLAR 12513 goto __84 12514 12515 __89: 12516 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_DOT 12517 okquantifier = DTRUE 12518 goto __84 12519 12520 // ---- Single-character quantifiers ---- 12521 12522 __90: 12523 meta_quantifier = DMETA_ASTERISK 12524 goto CHECK_QUANTIFIER 12525 12526 __91: 12527 meta_quantifier = DMETA_PLUS 12528 goto CHECK_QUANTIFIER 12529 12530 __92: 12531 meta_quantifier = DMETA_QUERY 12532 goto CHECK_QUANTIFIER 12533 12534 // ---- Potential {n,m} quantifier ---- 12535 12536 __93: 12537 if !!(read_repeat_counts(tls, bp+8, ptrend, bp+76, bp+80, 12538 bp+20) != 0) { 12539 goto __156 12540 } 12541 12542 if !(*(*int32)(unsafe.Pointer(bp + 20)) != 0) { 12543 goto __157 12544 } 12545 goto FAILED 12546 __157: 12547 ; // Error in quantifier. 12548 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) 12549 okquantifier = DTRUE 12550 // Not a quantifier 12551 goto __84 // No more quantifier processing 12552 __156: 12553 ; 12554 meta_quantifier = DMETA_MINMAX 12555 // Fall through 12556 12557 // ---- Quantifier post-processing ---- 12558 12559 // Check that a quantifier is allowed after the previous item. 12560 12561 CHECK_QUANTIFIER: 12562 if !!(prev_okquantifier != 0) { 12563 goto __158 12564 } 12565 12566 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR9 12567 goto FAILED_BACK 12568 __158: 12569 ; 12570 12571 // Most (*VERB)s are not allowed to be quantified, but an ungreedy 12572 // quantifier can be useful for (*ACCEPT) - meaning "succeed on backtrack", a 12573 // sort of negated (*COMMIT). We therefore allow (*ACCEPT) to be quantified by 12574 // wrapping it in non-capturing brackets, but we have to allow for a preceding 12575 // (*MARK) for when (*ACCEPT) has an argument. 12576 12577 if !(*(*Tuint32_t)(unsafe.Pointer(parsed_pattern + libc.UintptrFromInt32(-1)*4)) == DMETA_ACCEPT) { 12578 goto __159 12579 } 12580 12581 p1 = parsed_pattern - uintptr(1)*4 12582 __160: 12583 if !(p1 >= verbstartptr) { 12584 goto __162 12585 } 12586 *(*Tuint32_t)(unsafe.Pointer(p1 + 1*4)) = *(*Tuint32_t)(unsafe.Pointer(p1)) 12587 goto __161 12588 __161: 12589 p1 -= 4 12590 goto __160 12591 goto __162 12592 __162: 12593 ; 12594 *(*Tuint32_t)(unsafe.Pointer(verbstartptr)) = DMETA_NOCAPTURE 12595 *(*Tuint32_t)(unsafe.Pointer(parsed_pattern + 1*4)) = DMETA_KET 12596 parsed_pattern += 4 * uintptr(2) 12597 __159: 12598 ; 12599 12600 // Now we can put the quantifier into the parsed pattern vector. At this 12601 // stage, we have only the basic quantifier. The check for a following + or ? 12602 // modifier happens at the top of the loop, after any intervening comments 12603 // have been removed. 12604 12605 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = meta_quantifier 12606 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\173')) { 12607 goto __163 12608 } 12609 12610 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 76 /* min_repeat */)) 12611 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 80 /* max_repeat */)) 12612 __163: 12613 ; 12614 goto __84 12615 12616 // ---- Character class ---- 12617 12618 __94: 12619 okquantifier = DTRUE 12620 12621 // In another (POSIX) regex library, the ugly syntax [[:<:]] and [[:>:]] is 12622 // used for "start of word" and "end of word". As these are otherwise illegal 12623 // sequences, we don't break anything by recognizing them. They are replaced 12624 // by \b(?=\w) and \b(?<=\w) respectively. Sequences like [a[:<:]] are 12625 // erroneous and are handled by the normal code below. 12626 12627 if !((int64(ptrend)-int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))/1 >= int64(6) && (X_pcre2_strncmp_c8_8(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), ts+597, uint64(6)) == 0 || X_pcre2_strncmp_c8_8(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), ts+604, uint64(6)) == 0)) { 12628 goto __164 12629 } 12630 12631 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + ESC_b 12632 12633 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2))) == '\074') { 12634 goto __165 12635 } 12636 12637 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_LOOKAHEAD 12638 goto __166 12639 __165: 12640 12641 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_LOOKBEHIND 12642 *(*TBOOL)(unsafe.Pointer(has_lookbehind)) = DTRUE 12643 12644 /* The offset is used only for the "non-fixed length" error; this won't 12645 occur here, so just store zero. */ 12646 12647 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = uint32(Tsize_t(uint64(0)) >> 32) 12648 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = uint32(uint64(0) & uint64(0xffffffff)) 12649 12650 __166: 12651 ; 12652 12653 if !(options&DPCRE2_UCP == Tuint32_t(0)) { 12654 goto __167 12655 } 12656 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + ESC_w 12657 goto __168 12658 __167: 12659 12660 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + ESC_p 12661 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(int32(DPT_WORD) << 16) 12662 __168: 12663 ; 12664 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_KET 12665 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(6) 12666 goto __84 12667 __164: 12668 ; 12669 12670 // PCRE supports POSIX class stuff inside a class. Perl gives an error if 12671 // they are encountered at the top level, so we'll do that too. 12672 12673 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) < ptrend && (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\072' || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\056' || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\075') && check_posix_syntax(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), ptrend, bp+24) != 0) { 12674 goto __169 12675 } 12676 12677 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostDecUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1)))) == '\072' { 12678 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR12 12679 } else { 12680 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR13 12681 } 12682 goto FAILED 12683 __169: 12684 ; 12685 12686 // Process a regular character class. If the first character is '^', set 12687 // the negation flag. If the first few characters (either before or after ^) 12688 // are \Q\E or \E or space or tab in extended-more mode, we skip them too. 12689 // This makes for compatibility with Perl. 12690 12691 negate_class = DFALSE 12692 __170: 12693 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) < ptrend) { 12694 goto __171 12695 } 12696 12697 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)), 1)))) 12698 if !(utf != 0 && *(*Tuint32_t)(unsafe.Pointer(bp + 16)) >= 0xc0) { 12699 goto __172 12700 } 12701 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x20 == Tuint32_t(0)) { 12702 goto __173 12703 } 12704 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1))))&0x3f 12705 goto __174 12706 __173: 12707 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x10 == Tuint32_t(0)) { 12708 goto __175 12709 } 12710 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f 12711 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(2) 12712 goto __176 12713 __175: 12714 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x08 == Tuint32_t(0)) { 12715 goto __177 12716 } 12717 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f 12718 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(3) 12719 goto __178 12720 __177: 12721 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x04 == Tuint32_t(0)) { 12722 goto __179 12723 } 12724 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 3)))&0x3f 12725 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(4) 12726 goto __180 12727 __179: 12728 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 4)))&0x3f 12729 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(5) 12730 __180: 12731 ; 12732 __178: 12733 ; 12734 __176: 12735 ; 12736 __174: 12737 ; 12738 __172: 12739 ; 12740 12741 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\134')) { 12742 goto __181 12743 } 12744 12745 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\105') { 12746 goto __183 12747 } 12748 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 12749 goto __184 12750 __183: 12751 if !((int64(ptrend)-int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))/1 >= int64(3) && X_pcre2_strncmp_c8_8(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), ts+611, uint64(3)) == 0) { 12752 goto __185 12753 } 12754 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(3) 12755 goto __186 12756 __185: 12757 goto __171 12758 __186: 12759 ; 12760 __184: 12761 ; 12762 goto __182 12763 __181: 12764 if !(options&DPCRE2_EXTENDED_MORE != Tuint32_t(0) && (*(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\040') || *(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\011'))) { 12765 goto __187 12766 } // Note: just these two 12767 goto __170 12768 goto __188 12769 __187: 12770 if !(!(negate_class != 0) && *(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\136')) { 12771 goto __189 12772 } 12773 negate_class = DTRUE 12774 goto __190 12775 __189: 12776 goto __171 12777 __190: 12778 ; 12779 __188: 12780 ; 12781 __182: 12782 ; 12783 goto __170 12784 __171: 12785 ; 12786 12787 // Now the real contents of the class; c has the first "real" character. 12788 // Empty classes are permitted only if the option is set. 12789 12790 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\135') && (*Tcompile_block_8)(unsafe.Pointer(cb)).Fexternal_options&DPCRE2_ALLOW_EMPTY_CLASS != Tuint32_t(0)) { 12791 goto __191 12792 } 12793 12794 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = func() uint32 { 12795 if negate_class != 0 { 12796 return DMETA_CLASS_EMPTY_NOT 12797 } 12798 return DMETA_CLASS_EMPTY 12799 }() 12800 goto __84 // End of class processing 12801 __191: 12802 ; 12803 12804 // Process a non-empty class. 12805 12806 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = func() uint32 { 12807 if negate_class != 0 { 12808 return DMETA_CLASS_NOT 12809 } 12810 return DMETA_CLASS 12811 }() 12812 class_range_state = RANGE_NO 12813 12814 // In an EBCDIC environment, Perl treats alphabetic ranges specially 12815 // because there are holes in the encoding, and simply using the range A-Z 12816 // (for example) would include the characters in the holes. This applies only 12817 // to ranges where both values are literal; [\xC1-\xE9] is different to [A-Z] 12818 // in this respect. In order to accommodate this, we keep track of whether 12819 // character values are literal or not, and a state variable for handling 12820 // ranges. 12821 12822 // Loop for the contents of the class 12823 12824 __192: 12825 char_is_literal = DTRUE 12826 12827 // Inside \Q...\E everything is literal except \E 12828 12829 if !(inescq != 0) { 12830 goto __195 12831 } 12832 12833 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\134') && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\105') { 12834 goto __196 12835 } 12836 12837 inescq = DFALSE // Reset literal state 12838 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ // Skip the 'E' 12839 goto CLASS_CONTINUE 12840 __196: 12841 ; 12842 goto CLASS_LITERAL 12843 __195: 12844 ; 12845 12846 // Skip over space and tab (only) in extended-more mode. 12847 12848 if !(options&DPCRE2_EXTENDED_MORE != Tuint32_t(0) && (*(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\040') || *(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\011'))) { 12849 goto __197 12850 } 12851 goto CLASS_CONTINUE 12852 __197: 12853 ; 12854 12855 // Handle POSIX class names. Perl allows a negation extension of the 12856 // form [:^name:]. A square bracket that doesn't match the syntax is 12857 // treated as a literal. We also recognize the POSIX constructions 12858 // [.ch.] and [=ch=] ("collating elements") and fault them, as Perl 12859 // 5.6 and 5.8 do. 12860 12861 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\133') && (int64(ptrend)-int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))/1 >= int64(3) && (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\072' || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\056' || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\075') && check_posix_syntax(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), ptrend, bp+24) != 0) { 12862 goto __198 12863 } 12864 12865 posix_negate = DFALSE 12866 12867 // Perl treats a hyphen before a POSIX class as a literal, not the 12868 // start of a range. However, it gives a warning in its warning mode. PCRE 12869 // does not have a warning mode, so we give an error, because this is 12870 // likely an error on the user's part. 12871 12872 if !(class_range_state == Tuint32_t(1)) { 12873 goto __200 12874 } 12875 12876 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR50 12877 goto FAILED 12878 __200: 12879 ; 12880 12881 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\072') { 12882 goto __201 12883 } 12884 12885 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR13 12886 goto FAILED_BACK 12887 __201: 12888 ; 12889 12890 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1)))) == '\136') { 12891 goto __202 12892 } 12893 12894 posix_negate = DTRUE 12895 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 12896 __202: 12897 ; 12898 12899 posix_class = check_posix_name(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)), int32((int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)))-int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))/1)) 12900 if !(posix_class < 0) { 12901 goto __203 12902 } 12903 12904 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR30 12905 goto FAILED 12906 __203: 12907 ; 12908 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24)) + uintptr(2) 12909 12910 // Perl treats a hyphen after a POSIX class as a literal, not the 12911 // start of a range. However, it gives a warning in its warning mode 12912 // unless the hyphen is the last character in the class. PCRE does not 12913 // have a warning mode, so we give an error, because this is likely an 12914 // error on the user's part. 12915 12916 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) < ptrend-uintptr(1) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\055' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1))) != '\135') { 12917 goto __204 12918 } 12919 12920 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR50 12921 goto FAILED 12922 __204: 12923 ; 12924 12925 // Set "a hyphen is not the start of a range" for the -] case, and also 12926 // in case the POSIX class is followed by \E or \Q\E (possibly repeated - 12927 // fuzzers do that kind of thing) and *then* a hyphen. This causes that 12928 // hyphen to be treated as a literal. I don't think it's worth setting up 12929 // special apparatus to do otherwise. 12930 12931 class_range_state = RANGE_NO 12932 12933 // When PCRE2_UCP is set, some of the POSIX classes are converted to 12934 // use Unicode properties \p or \P or, in one case, \h or \H. The 12935 // substitutes table has two values per class, containing the type and 12936 // value of a \p or \P item. The special cases are specified with a 12937 // negative type: a non-zero value causes \h or \H to be used, and a zero 12938 // value falls through to behave like a non-UCP POSIX class. 12939 12940 if !(options&DPCRE2_UCP != Tuint32_t(0)) { 12941 goto __205 12942 } 12943 12944 ptype1 = posix_substitutes[2*posix_class] 12945 pvalue = posix_substitutes[2*posix_class+1] 12946 if !(ptype1 >= 0) { 12947 goto __206 12948 } 12949 12950 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + func() uint32 { 12951 if posix_negate != 0 { 12952 return ESC_P 12953 } 12954 return ESC_p 12955 }() 12956 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(ptype1<<16 | pvalue) 12957 goto CLASS_CONTINUE 12958 __206: 12959 ; 12960 12961 if !(pvalue != 0) { 12962 goto __207 12963 } 12964 12965 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + func() uint32 { 12966 if posix_negate != 0 { 12967 return ESC_H 12968 } 12969 return ESC_h 12970 }() 12971 goto CLASS_CONTINUE 12972 __207: 12973 ; 12974 12975 // Fall through 12976 __205: 12977 ; 12978 12979 // Non-UCP POSIX class 12980 12981 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = func() uint32 { 12982 if posix_negate != 0 { 12983 return DMETA_POSIX_NEG 12984 } 12985 return DMETA_POSIX 12986 }() 12987 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(posix_class) 12988 goto __199 12989 __198: 12990 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\055') && class_range_state >= RANGE_OK_ESCAPED) { 12991 goto __208 12992 } 12993 12994 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = func() uint32 { 12995 if class_range_state == RANGE_OK_LITERAL { 12996 return DMETA_RANGE_LITERAL 12997 } 12998 return DMETA_RANGE_ESCAPED 12999 }() 13000 class_range_state = Tuint32_t(1) /* RANGE_STARTED */ 13001 goto __209 13002 __208: 13003 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) != Tuint32_t('\134')) { 13004 goto __210 13005 } 13006 13007 CLASS_LITERAL: 13008 if !(class_range_state == Tuint32_t(1)) { 13009 goto __212 13010 } 13011 13012 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) == *(*Tuint32_t)(unsafe.Pointer(parsed_pattern + libc.UintptrFromInt32(-2)*4))) { 13013 goto __214 13014 } // Optimize one-char range 13015 parsed_pattern -= 4 13016 goto __215 13017 __214: 13018 if !(*(*Tuint32_t)(unsafe.Pointer(parsed_pattern + libc.UintptrFromInt32(-2)*4)) > *(*Tuint32_t)(unsafe.Pointer(bp + 16))) { 13019 goto __216 13020 } /* Check range is in order */ 13021 13022 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR8 13023 goto FAILED_BACK 13024 goto __217 13025 __216: 13026 13027 if !(!(char_is_literal != 0) && *(*Tuint32_t)(unsafe.Pointer(parsed_pattern + libc.UintptrFromInt32(-1)*4)) == DMETA_RANGE_LITERAL) { 13028 goto __218 13029 } 13030 *(*Tuint32_t)(unsafe.Pointer(parsed_pattern + libc.UintptrFromInt32(-1)*4)) = DMETA_RANGE_ESCAPED 13031 __218: 13032 ; 13033 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) 13034 okquantifier = DTRUE 13035 13036 __217: 13037 ; 13038 __215: 13039 ; 13040 class_range_state = RANGE_NO 13041 goto __213 13042 __212: /* Potential start of range */ 13043 13044 if char_is_literal != 0 { 13045 class_range_state = RANGE_OK_LITERAL 13046 } else { 13047 class_range_state = RANGE_OK_ESCAPED 13048 } 13049 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) 13050 okquantifier = DTRUE 13051 13052 __213: 13053 ; 13054 goto __211 13055 __210: 13056 13057 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* tempptr */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) 13058 escape = X_pcre2_check_escape_8(tls, bp+8, ptrend, bp+16, bp+20, options, 13059 (*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fextra_options, DTRUE, cb) 13060 13061 if !(*(*int32)(unsafe.Pointer(bp + 20)) != 0) { 13062 goto __219 13063 } 13064 13065 if !(extra_options&DPCRE2_EXTRA_BAD_ESCAPE_IS_LITERAL == Tuint32_t(0)) { 13066 goto __220 13067 } 13068 goto FAILED 13069 __220: 13070 ; 13071 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 24 /* tempptr */)) 13072 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend) { 13073 goto __221 13074 } 13075 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = Tuint32_t('\134') 13076 goto __222 13077 __221: 13078 13079 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)), 1)))) 13080 if !(utf != 0 && *(*Tuint32_t)(unsafe.Pointer(bp + 16)) >= 0xc0) { 13081 goto __223 13082 } 13083 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x20 == Tuint32_t(0)) { 13084 goto __224 13085 } 13086 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1))))&0x3f 13087 goto __225 13088 __224: 13089 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x10 == Tuint32_t(0)) { 13090 goto __226 13091 } 13092 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f 13093 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(2) 13094 goto __227 13095 __226: 13096 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x08 == Tuint32_t(0)) { 13097 goto __228 13098 } 13099 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f 13100 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(3) 13101 goto __229 13102 __228: 13103 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x04 == Tuint32_t(0)) { 13104 goto __230 13105 } 13106 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 3)))&0x3f 13107 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(4) 13108 goto __231 13109 __230: 13110 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 4)))&0x3f 13111 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(5) 13112 __231: 13113 ; 13114 __229: 13115 ; 13116 __227: 13117 ; 13118 __225: 13119 ; 13120 __223: 13121 ; 13122 13123 // Get character value, increment pointer 13124 __222: 13125 ; 13126 escape = 0 // Treat as literal character 13127 __219: 13128 ; 13129 13130 switch escape { 13131 case 0: 13132 goto __233 13133 13134 case ESC_b: 13135 goto __234 13136 13137 case ESC_Q: 13138 goto __235 13139 13140 case ESC_E: 13141 goto __236 13142 13143 case ESC_B: 13144 goto __237 // Always an error in a class 13145 case ESC_R: 13146 goto __238 13147 case ESC_X: 13148 goto __239 13149 } 13150 goto __232 13151 13152 __233: // Escaped character code point is in c 13153 char_is_literal = DFALSE 13154 goto CLASS_LITERAL 13155 13156 __234: 13157 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = Tuint32_t('\010') // \b is backspace in a class 13158 char_is_literal = DFALSE 13159 goto CLASS_LITERAL 13160 13161 __235: 13162 inescq = DTRUE // Enter literal mode 13163 goto CLASS_CONTINUE 13164 13165 __236: // Ignore orphan \E 13166 goto CLASS_CONTINUE 13167 13168 __237: // Always an error in a class 13169 __238: 13170 __239: 13171 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR7 13172 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))-- 13173 goto FAILED 13174 __232: 13175 ; 13176 13177 // The second part of a range can be a single-character escape 13178 // sequence (detected above), but not any of the other escapes. Perl 13179 // treats a hyphen as a literal in such circumstances. However, in Perl's 13180 // warning mode, a warning is given, so PCRE now faults it, as it is 13181 // almost certainly a mistake on the user's part. 13182 13183 if !(class_range_state == Tuint32_t(1)) { 13184 goto __240 13185 } 13186 13187 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR50 13188 goto FAILED // Not CLASS_ESCAPE_FAILED; always an error 13189 __240: 13190 ; 13191 13192 // Of the remaining escapes, only those that define characters are 13193 // allowed in a class. None may start a range. 13194 13195 class_range_state = RANGE_NO 13196 switch escape { 13197 case ESC_N: 13198 goto __242 13199 13200 case ESC_H: 13201 goto __243 13202 case ESC_h: 13203 goto __244 13204 case ESC_V: 13205 goto __245 13206 case ESC_v: 13207 goto __246 13208 13209 // These escapes are converted to Unicode property tests when 13210 // PCRE2_UCP is set. 13211 13212 case ESC_d: 13213 goto __247 13214 case ESC_D: 13215 goto __248 13216 case ESC_s: 13217 goto __249 13218 case ESC_S: 13219 goto __250 13220 case ESC_w: 13221 goto __251 13222 case ESC_W: 13223 goto __252 13224 13225 // Explicit Unicode property matching 13226 13227 case ESC_P: 13228 goto __253 13229 case ESC_p: 13230 goto __254 // End \P and \p 13231 13232 default: 13233 goto __255 13234 } 13235 goto __241 13236 13237 __242: 13238 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR71 13239 goto FAILED 13240 13241 __243: 13242 __244: 13243 __245: 13244 __246: 13245 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + uint32(escape) 13246 goto __241 13247 13248 // These escapes are converted to Unicode property tests when 13249 // PCRE2_UCP is set. 13250 13251 __247: 13252 __248: 13253 __249: 13254 __250: 13255 __251: 13256 __252: 13257 if !(options&DPCRE2_UCP == Tuint32_t(0)) { 13258 goto __256 13259 } 13260 13261 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + uint32(escape) 13262 goto __257 13263 __256: 13264 13265 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + func() uint32 { 13266 if escape == ESC_d || escape == ESC_s || escape == ESC_w { 13267 return ESC_p 13268 } 13269 return ESC_P 13270 }() 13271 switch escape { 13272 case ESC_d: 13273 goto __259 13274 case ESC_D: 13275 goto __260 13276 13277 case ESC_s: 13278 goto __261 13279 case ESC_S: 13280 goto __262 13281 13282 case ESC_w: 13283 goto __263 13284 case ESC_W: 13285 goto __264 13286 } 13287 goto __258 13288 13289 __259: 13290 __260: 13291 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(int32(DPT_PC)<<16 | ucp_Nd) 13292 goto __258 13293 13294 __261: 13295 __262: 13296 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(int32(DPT_SPACE) << 16) 13297 goto __258 13298 13299 __263: 13300 __264: 13301 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(int32(DPT_WORD) << 16) 13302 goto __258 13303 __258: 13304 ; 13305 __257: 13306 ; 13307 goto __241 13308 13309 // Explicit Unicode property matching 13310 13311 __253: 13312 __254: 13313 13314 *(*Tuint16_t)(unsafe.Pointer(bp + 88 /* ptype2 */)) = Tuint16_t(0) 13315 *(*Tuint16_t)(unsafe.Pointer(bp + 90 /* pdata1 */)) = Tuint16_t(0) 13316 if !!(get_ucp(tls, bp+8, bp+84, bp+88, bp+90, bp+20, cb) != 0) { 13317 goto __265 13318 } 13319 goto FAILED 13320 __265: 13321 ; 13322 if !(*(*TBOOL)(unsafe.Pointer(bp + 84)) != 0) { 13323 goto __266 13324 } 13325 if escape == ESC_P { 13326 escape = ESC_p 13327 } else { 13328 escape = ESC_P 13329 } 13330 __266: 13331 ; 13332 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + uint32(escape) 13333 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(int32(*(*Tuint16_t)(unsafe.Pointer(bp + 88)))<<16 | int32(*(*Tuint16_t)(unsafe.Pointer(bp + 90)))) 13334 13335 goto __241 // End \P and \p 13336 13337 __255: // All others are not allowed in a class 13338 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR7 13339 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))-- 13340 goto FAILED 13341 __241: 13342 ; 13343 13344 // Perl gives a warning unless a following hyphen is the last character 13345 // in the class. PCRE throws an error. 13346 13347 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) < ptrend-uintptr(1) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\055' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1))) != '\135') { 13348 goto __267 13349 } 13350 13351 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR50 13352 goto FAILED 13353 __267: 13354 ; 13355 __211: 13356 ; 13357 __209: 13358 ; 13359 __199: 13360 ; 13361 13362 // Proceed to next thing in the class. 13363 13364 CLASS_CONTINUE: 13365 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend) { 13366 goto __268 13367 } 13368 13369 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR6 // Missing terminating ']' 13370 goto FAILED 13371 __268: 13372 ; 13373 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)), 1)))) 13374 if !(utf != 0 && *(*Tuint32_t)(unsafe.Pointer(bp + 16)) >= 0xc0) { 13375 goto __269 13376 } 13377 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x20 == Tuint32_t(0)) { 13378 goto __270 13379 } 13380 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1))))&0x3f 13381 goto __271 13382 __270: 13383 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x10 == Tuint32_t(0)) { 13384 goto __272 13385 } 13386 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f 13387 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(2) 13388 goto __273 13389 __272: 13390 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x08 == Tuint32_t(0)) { 13391 goto __274 13392 } 13393 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f 13394 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(3) 13395 goto __275 13396 __274: 13397 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x04 == Tuint32_t(0)) { 13398 goto __276 13399 } 13400 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 3)))&0x3f 13401 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(4) 13402 goto __277 13403 __276: 13404 *(*Tuint32_t)(unsafe.Pointer(bp + 16 /* c */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 16))&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 4)))&0x3f 13405 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(5) 13406 __277: 13407 ; 13408 __275: 13409 ; 13410 __273: 13411 ; 13412 __271: 13413 ; 13414 __269: 13415 ; 13416 13417 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) == Tuint32_t('\135') && !(inescq != 0)) { 13418 goto __278 13419 } 13420 goto __194 13421 __278: 13422 ; 13423 goto __193 13424 __193: 13425 goto __192 13426 goto __194 13427 __194: 13428 ; // End of class-processing loop 13429 13430 // -] at the end of a class is a literal '-' 13431 13432 if !(class_range_state == Tuint32_t(1)) { 13433 goto __279 13434 } 13435 13436 *(*Tuint32_t)(unsafe.Pointer(parsed_pattern + libc.UintptrFromInt32(-1)*4)) = Tuint32_t('\055') 13437 class_range_state = RANGE_NO 13438 __279: 13439 ; 13440 13441 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_CLASS_END 13442 goto __84 // End of character class 13443 13444 // ---- Opening parenthesis ---- 13445 13446 __95: 13447 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend) { 13448 goto __280 13449 } 13450 goto UNCLOSED_PARENTHESIS 13451 __280: 13452 ; 13453 13454 // If ( is not followed by ? it is either a capture or a special verb or an 13455 // alpha assertion or a positive non-atomic lookahead. 13456 13457 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\077') { 13458 goto __281 13459 } 13460 13461 // Handle capturing brackets (or non-capturing if auto-capture is turned 13462 // off). 13463 13464 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\052') { 13465 goto __282 13466 } 13467 13468 nest_depth++ 13469 if !(options&DPCRE2_NO_AUTO_CAPTURE == Tuint32_t(0)) { 13470 goto __284 13471 } 13472 13473 if !((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount >= DMAX_GROUP_NUMBER) { 13474 goto __286 13475 } 13476 13477 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR97 13478 goto FAILED 13479 __286: 13480 ; 13481 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount++ 13482 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_CAPTURE | (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount 13483 goto __285 13484 __284: 13485 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_NOCAPTURE 13486 __285: 13487 ; 13488 goto __283 13489 __282: 13490 if !((int64(ptrend)-int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))/1 <= int64(1) || libc.AssignPtrUint32(bp+16, Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1)))) == Tuint32_t('\051')) { 13491 goto __287 13492 } 13493 goto __84 13494 goto __288 13495 __287: 13496 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 16)) <= 255 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fctypes + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 16))))))&Dctype_lcletter != 0) { 13497 goto __289 13498 } 13499 13500 vn = uintptr(unsafe.Pointer(&alasnames)) 13501 if !!(read_name(tls, bp+8, ptrend, utf, uint32(0), bp+56, bp+64, bp+72, 13502 bp+20, cb) != 0) { 13503 goto __291 13504 } 13505 goto FAILED 13506 __291: 13507 ; 13508 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\072') { 13509 goto __292 13510 } 13511 13512 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR95 // Malformed 13513 goto FAILED 13514 __292: 13515 ; 13516 13517 // Scan the table of alpha assertion names 13518 13519 *(*int32)(unsafe.Pointer(bp + 48 /* i */)) = 0 13520 __293: 13521 if !(*(*int32)(unsafe.Pointer(bp + 48)) < alascount) { 13522 goto __295 13523 } 13524 13525 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 72)) == alasmeta[*(*int32)(unsafe.Pointer(bp + 48))].Flen && X_pcre2_strncmp_c8_8(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 64)), vn, uint64(*(*Tuint32_t)(unsafe.Pointer(bp + 72)))) == 0) { 13526 goto __296 13527 } 13528 goto __295 13529 __296: 13530 ; 13531 vn += uintptr(alasmeta[*(*int32)(unsafe.Pointer(bp + 48))].Flen + uint32(1)) 13532 goto __294 13533 __294: 13534 *(*int32)(unsafe.Pointer(bp + 48 /* i */))++ 13535 goto __293 13536 goto __295 13537 __295: 13538 ; 13539 13540 if !(*(*int32)(unsafe.Pointer(bp + 48)) >= alascount) { 13541 goto __297 13542 } 13543 13544 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR95 // Alpha assertion not recognized 13545 goto FAILED 13546 __297: 13547 ; 13548 13549 // Check for expecting an assertion condition. If so, only atomic 13550 // lookaround assertions are valid. 13551 13552 meta = alasmeta[*(*int32)(unsafe.Pointer(bp + 48 /* i */))].Fmeta 13553 if !(prev_expect_cond_assert > 0 && (meta < DMETA_LOOKAHEAD || meta > DMETA_LOOKBEHINDNOT)) { 13554 goto __298 13555 } 13556 13557 if meta == DMETA_LOOKAHEAD_NA || meta == DMETA_LOOKBEHIND_NA { 13558 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR98 13559 } else { 13560 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR28 13561 } // (Atomic) assertion expected 13562 goto FAILED 13563 __298: 13564 ; 13565 13566 // The lookaround alphabetic synonyms can mostly be handled by jumping 13567 // to the code that handles the traditional symbolic forms. 13568 13569 switch meta { 13570 default: 13571 goto __300 // the meta values come from a table above. 13572 13573 case DMETA_ATOMIC: 13574 goto __301 13575 13576 case DMETA_LOOKAHEAD: 13577 goto __302 13578 13579 case DMETA_LOOKAHEAD_NA: 13580 goto __303 13581 13582 case DMETA_LOOKAHEADNOT: 13583 goto __304 13584 13585 case DMETA_LOOKBEHIND: 13586 goto __305 13587 case DMETA_LOOKBEHINDNOT: 13588 goto __306 13589 case DMETA_LOOKBEHIND_NA: 13590 goto __307 13591 13592 // The script run facilities are handled here. Unicode support is 13593 // required (give an error if not, as this is a security issue). Always 13594 // record a META_SCRIPT_RUN item. Then, for the atomic version, insert 13595 // META_ATOMIC and remember that we need two META_KETs at the end. 13596 13597 case DMETA_SCRIPT_RUN: 13598 goto __308 13599 case DMETA_ATOMIC_SCRIPT_RUN: 13600 goto __309 13601 } 13602 goto __299 13603 13604 __300: 13605 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR89 // Unknown code; should never occur because 13606 goto FAILED // the meta values come from a table above. 13607 13608 __301: 13609 goto ATOMIC_GROUP 13610 13611 __302: 13612 goto POSITIVE_LOOK_AHEAD 13613 13614 __303: 13615 goto POSITIVE_NONATOMIC_LOOK_AHEAD 13616 13617 __304: 13618 goto NEGATIVE_LOOK_AHEAD 13619 13620 __305: 13621 __306: 13622 __307: 13623 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = meta 13624 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))-- 13625 goto POST_LOOKBEHIND 13626 13627 // The script run facilities are handled here. Unicode support is 13628 // required (give an error if not, as this is a security issue). Always 13629 // record a META_SCRIPT_RUN item. Then, for the atomic version, insert 13630 // META_ATOMIC and remember that we need two META_KETs at the end. 13631 13632 __308: 13633 __309: 13634 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_SCRIPT_RUN 13635 nest_depth++ 13636 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 13637 if !(meta == DMETA_ATOMIC_SCRIPT_RUN) { 13638 goto __310 13639 } 13640 13641 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ATOMIC 13642 if !(top_nest == uintptr(0)) { 13643 goto __311 13644 } 13645 top_nest = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_workspace 13646 goto __312 13647 __311: 13648 if !(libc.PreIncUintptr(&top_nest, 12) >= end_nests) { 13649 goto __313 13650 } 13651 13652 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR84 13653 goto FAILED 13654 __313: 13655 ; 13656 __312: 13657 ; 13658 (*Tnest_save)(unsafe.Pointer(top_nest)).Fnest_depth = nest_depth 13659 (*Tnest_save)(unsafe.Pointer(top_nest)).Fflags = uint16(DNSF_ATOMICSR) 13660 (*Tnest_save)(unsafe.Pointer(top_nest)).Foptions = options & (DPCRE2_CASELESS | DPCRE2_DOTALL | DPCRE2_DUPNAMES | DPCRE2_EXTENDED | DPCRE2_EXTENDED_MORE | DPCRE2_MULTILINE | DPCRE2_NO_AUTO_CAPTURE | DPCRE2_UNGREEDY) 13661 __310: 13662 ; 13663 goto __299 13664 __299: 13665 ; 13666 goto __290 13667 __289: 13668 13669 vn = uintptr(unsafe.Pointer(&verbnames)) 13670 if !!(read_name(tls, bp+8, ptrend, utf, uint32(0), bp+56, bp+64, bp+72, 13671 bp+20, cb) != 0) { 13672 goto __314 13673 } 13674 goto FAILED 13675 __314: 13676 ; 13677 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\072' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\051') { 13678 goto __315 13679 } 13680 13681 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR60 // Malformed 13682 goto FAILED 13683 __315: 13684 ; 13685 13686 // Scan the table of verb names 13687 13688 *(*int32)(unsafe.Pointer(bp + 48 /* i */)) = 0 13689 __316: 13690 if !(*(*int32)(unsafe.Pointer(bp + 48)) < verbcount) { 13691 goto __318 13692 } 13693 13694 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 72)) == verbs[*(*int32)(unsafe.Pointer(bp + 48))].Flen && X_pcre2_strncmp_c8_8(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 64)), vn, uint64(*(*Tuint32_t)(unsafe.Pointer(bp + 72)))) == 0) { 13695 goto __319 13696 } 13697 goto __318 13698 __319: 13699 ; 13700 vn += uintptr(verbs[*(*int32)(unsafe.Pointer(bp + 48))].Flen + uint32(1)) 13701 goto __317 13702 __317: 13703 *(*int32)(unsafe.Pointer(bp + 48 /* i */))++ 13704 goto __316 13705 goto __318 13706 __318: 13707 ; 13708 13709 if !(*(*int32)(unsafe.Pointer(bp + 48)) >= verbcount) { 13710 goto __320 13711 } 13712 13713 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR60 // Verb not recognized 13714 goto FAILED 13715 __320: 13716 ; 13717 13718 // An empty argument is treated as no argument. 13719 13720 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\072' && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))+uintptr(1) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1))) == '\051') { 13721 goto __321 13722 } 13723 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 13724 __321: 13725 ; // Advance to the closing parens 13726 13727 // Check for mandatory non-empty argument; this is (*MARK) 13728 13729 if !(verbs[*(*int32)(unsafe.Pointer(bp + 48))].Fhas_arg > 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\072') { 13730 goto __322 13731 } 13732 13733 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR66 13734 goto FAILED 13735 __322: 13736 ; 13737 13738 // Remember where this verb, possibly with a preceding (*MARK), starts, 13739 // for handling quantified (*ACCEPT). 13740 13741 verbstartptr = parsed_pattern 13742 okquantifier = libc.Bool32(verbs[*(*int32)(unsafe.Pointer(bp + 48))].Fmeta == DMETA_ACCEPT) 13743 13744 // It appears that Perl allows any characters whatsoever, other than a 13745 // closing parenthesis, to appear in arguments ("names"), so we no longer 13746 // insist on letters, digits, and underscores. Perl does not, however, do 13747 // any interpretation within arguments, and has no means of including a 13748 // closing parenthesis. PCRE supports escape processing but only when it 13749 // is requested by an option. We set inverbname TRUE here, and let the 13750 // main loop take care of this so that escape and \x processing is done by 13751 // the main code above. 13752 13753 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1)))) == '\072') { 13754 goto __323 13755 } /* Skip past : or ) */ 13756 13757 // Some optional arguments can be treated as a preceding (*MARK) 13758 13759 if !(verbs[*(*int32)(unsafe.Pointer(bp + 48))].Fhas_arg < 0) { 13760 goto __325 13761 } 13762 13763 add_after_mark = verbs[*(*int32)(unsafe.Pointer(bp + 48 /* i */))].Fmeta 13764 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_MARK 13765 goto __326 13766 __325: 13767 13768 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = verbs[*(*int32)(unsafe.Pointer(bp + 48))].Fmeta + func() uint32 { 13769 if verbs[*(*int32)(unsafe.Pointer(bp + 48))].Fmeta != DMETA_MARK { 13770 return 0x00010000 13771 } 13772 return uint32(0) 13773 }() 13774 __326: 13775 ; 13776 13777 // Set up for reading the name in the main loop. 13778 13779 verblengthptr = libc.PostIncUintptr(&parsed_pattern, 4) 13780 verbnamestart = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) 13781 inverbname = DTRUE 13782 goto __324 13783 __323: /* No verb "name" argument */ 13784 13785 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = verbs[*(*int32)(unsafe.Pointer(bp + 48 /* i */))].Fmeta 13786 __324: 13787 ; 13788 __290: 13789 ; 13790 __288: 13791 ; 13792 __283: 13793 ; // End of (*VERB) handling 13794 goto __84 // Done with this parenthesis 13795 __281: 13796 ; // End of groups that don't start with (? 13797 13798 // ---- Items starting (? ---- 13799 13800 // The type of item is determined by what follows (?. Handle (?| and option 13801 // changes under "default" because both need a new block on the nest stack. 13802 // Comments starting with (?# are handled above. Note that there is some 13803 // ambiguity about the sequence (?- because if a digit follows it's a relative 13804 // recursion or subroutine call whereas otherwise it's an option unsetting. 13805 13806 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1) >= ptrend) { 13807 goto __327 13808 } 13809 goto UNCLOSED_PARENTHESIS 13810 __327: 13811 ; 13812 13813 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))))) { 13814 default: 13815 goto __329 // End default case after (? 13816 13817 // ---- Python syntax support ---- 13818 13819 case '\120': 13820 goto __330 // End of (?P processing 13821 13822 // ---- Recursion/subroutine calls by number ---- 13823 13824 case '\122': 13825 goto __331 13826 13827 // An item starting (?- followed by a digit comes here via the "default" 13828 // case because (?- followed by a non-digit is an options setting. 13829 13830 case '\053': 13831 goto __332 13832 // Fall through 13833 13834 case '\060': 13835 goto __333 13836 case '\061': 13837 goto __334 13838 case '\062': 13839 goto __335 13840 case '\063': 13841 goto __336 13842 case '\064': 13843 goto __337 13844 case '\065': 13845 goto __338 13846 case '\066': 13847 goto __339 13848 case '\067': 13849 goto __340 13850 case '\070': 13851 goto __341 13852 case '\071': 13853 goto __342 // End of recursive call by number handling 13854 13855 // ---- Recursion/subroutine calls by name ---- 13856 13857 case '\046': 13858 goto __343 13859 13860 // ---- Callout with numerical or string argument ---- 13861 13862 case '\103': 13863 goto __344 // End callout 13864 13865 // ---- Conditional group ---- 13866 13867 // A condition can be an assertion, a number (referring to a numbered 13868 // group's having been set), a name (referring to a named group), or 'R', 13869 // referring to overall recursion. R<digits> and R&name are also permitted 13870 // for recursion state tests. Numbers may be preceded by + or - to specify a 13871 // relative group number. 13872 // 13873 // There are several syntaxes for testing a named group: (?(name)) is used 13874 // by Python; Perl 5.10 onwards uses (?(<name>) or (?('name')). 13875 // 13876 // There are two unfortunate ambiguities. 'R' can be the recursive thing or 13877 // the name 'R' (and similarly for 'R' followed by digits). 'DEFINE' can be 13878 // the Perl DEFINE feature or the Python named test. We look for a name 13879 // first; if not found, we try the other case. 13880 // 13881 // For compatibility with auto-callouts, we allow a callout to be specified 13882 // before a condition that is an assertion. 13883 13884 case '\050': 13885 goto __345 // End of condition processing 13886 13887 // ---- Atomic group ---- 13888 13889 case '\076': 13890 goto __346 13891 13892 // ---- Lookahead assertions ---- 13893 13894 case '\075': 13895 goto __347 13896 13897 case '\052': 13898 goto __348 13899 13900 case '\041': 13901 goto __349 13902 13903 // ---- Lookbehind assertions ---- 13904 13905 // (?< followed by = or ! or * is a lookbehind assertion. Otherwise (?< 13906 // is the start of the name of a capturing group. 13907 13908 case '\074': 13909 goto __350 13910 13911 // ---- Define a named group ---- 13912 13913 // A named group may be defined as (?'name') or (?<name>). In the latter 13914 // case we jump to DEFINE_NAME from the disambiguation of (?< above with the 13915 // terminator set to '>'. 13916 13917 case '\047': 13918 goto __351 13919 } 13920 goto __328 13921 13922 __329: 13923 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\055' && (int64(ptrend)-int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))/1 > int64(1) && (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1))) <= '\071')) { 13924 goto __352 13925 } 13926 goto RECURSION_BYNUMBER 13927 __352: 13928 ; // The + case is handled by CHAR_PLUS 13929 13930 // We now have either (?| or a (possibly empty) option setting, 13931 // optionally followed by a non-capturing group. 13932 13933 nest_depth++ 13934 if !(top_nest == uintptr(0)) { 13935 goto __353 13936 } 13937 top_nest = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_workspace 13938 goto __354 13939 __353: 13940 if !(libc.PreIncUintptr(&top_nest, 12) >= end_nests) { 13941 goto __355 13942 } 13943 13944 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR84 13945 goto FAILED 13946 __355: 13947 ; 13948 __354: 13949 ; 13950 (*Tnest_save)(unsafe.Pointer(top_nest)).Fnest_depth = nest_depth 13951 (*Tnest_save)(unsafe.Pointer(top_nest)).Fflags = Tuint16_t(0) 13952 (*Tnest_save)(unsafe.Pointer(top_nest)).Foptions = options & (DPCRE2_CASELESS | DPCRE2_DOTALL | DPCRE2_DUPNAMES | DPCRE2_EXTENDED | DPCRE2_EXTENDED_MORE | DPCRE2_MULTILINE | DPCRE2_NO_AUTO_CAPTURE | DPCRE2_UNGREEDY) 13953 13954 // Start of non-capturing group that resets the capture count for each 13955 // branch. 13956 13957 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\174') { 13958 goto __356 13959 } 13960 13961 (*Tnest_save)(unsafe.Pointer(top_nest)).Freset_group = Tuint16_t((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) 13962 (*Tnest_save)(unsafe.Pointer(top_nest)).Fmax_group = Tuint16_t((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) 13963 *(*Tuint16_t)(unsafe.Pointer(top_nest + 6)) |= uint16(DNSF_RESET) 13964 *(*Tuint32_t)(unsafe.Pointer(cb + 208)) |= Tuint32_t(DPCRE2_DUPCAPUSED) 13965 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_NOCAPTURE 13966 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 13967 goto __357 13968 __356: 13969 13970 hyphenok = DTRUE 13971 oldoptions = options 13972 13973 (*Tnest_save)(unsafe.Pointer(top_nest)).Freset_group = Tuint16_t(0) 13974 (*Tnest_save)(unsafe.Pointer(top_nest)).Fmax_group = Tuint16_t(0) 13975 *(*Tuint32_t)(unsafe.Pointer(bp + 92 /* set */)) = libc.AssignPtrUint32(bp+96 /* unset */, Tuint32_t(0)) 13976 optset = bp + 92 /* &set */ 13977 13978 // ^ at the start unsets imnsx and disables the subsequent use of - 13979 13980 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\136') { 13981 goto __358 13982 } 13983 13984 options = options & libc.CplUint32(DPCRE2_CASELESS|DPCRE2_MULTILINE|DPCRE2_NO_AUTO_CAPTURE|DPCRE2_DOTALL|DPCRE2_EXTENDED|DPCRE2_EXTENDED_MORE) 13985 hyphenok = DFALSE 13986 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 13987 __358: 13988 ; 13989 13990 __359: 13991 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\051' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\072') { 13992 goto __360 13993 } 13994 13995 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)), 1)))) { 13996 case '\055': 13997 goto __362 13998 13999 case '\112': 14000 goto __363 14001 14002 case '\151': 14003 goto __364 14004 case '\155': 14005 goto __365 14006 case '\156': 14007 goto __366 14008 case '\163': 14009 goto __367 14010 case '\125': 14011 goto __368 14012 14013 // If x appears twice it sets the extended extended option. 14014 14015 case '\170': 14016 goto __369 14017 14018 default: 14019 goto __370 14020 } 14021 goto __361 14022 14023 __362: 14024 if !!(hyphenok != 0) { 14025 goto __371 14026 } 14027 14028 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR94 14029 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))-- // Correct the offset 14030 goto FAILED 14031 __371: 14032 ; 14033 optset = bp + 96 /* &unset */ 14034 hyphenok = DFALSE 14035 goto __361 14036 14037 __363: // Record that it changed in the external options 14038 *(*Tuint32_t)(unsafe.Pointer(optset)) |= DPCRE2_DUPNAMES 14039 *(*Tuint32_t)(unsafe.Pointer(cb + 208)) |= Tuint32_t(DPCRE2_JCHANGED) 14040 goto __361 14041 14042 __364: 14043 *(*Tuint32_t)(unsafe.Pointer(optset)) |= DPCRE2_CASELESS 14044 goto __361 14045 __365: 14046 *(*Tuint32_t)(unsafe.Pointer(optset)) |= DPCRE2_MULTILINE 14047 goto __361 14048 __366: 14049 *(*Tuint32_t)(unsafe.Pointer(optset)) |= DPCRE2_NO_AUTO_CAPTURE 14050 goto __361 14051 __367: 14052 *(*Tuint32_t)(unsafe.Pointer(optset)) |= DPCRE2_DOTALL 14053 goto __361 14054 __368: 14055 *(*Tuint32_t)(unsafe.Pointer(optset)) |= DPCRE2_UNGREEDY 14056 goto __361 14057 14058 // If x appears twice it sets the extended extended option. 14059 14060 __369: 14061 *(*Tuint32_t)(unsafe.Pointer(optset)) |= DPCRE2_EXTENDED 14062 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) < ptrend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\170') { 14063 goto __372 14064 } 14065 14066 *(*Tuint32_t)(unsafe.Pointer(optset)) |= DPCRE2_EXTENDED_MORE 14067 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 14068 __372: 14069 ; 14070 goto __361 14071 14072 __370: 14073 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR11 14074 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))-- // Correct the offset 14075 goto FAILED 14076 __361: 14077 ; 14078 goto __359 14079 __360: 14080 ; 14081 14082 // If we are setting extended without extended-more, ensure that any 14083 // existing extended-more gets unset. Also, unsetting extended must also 14084 // unset extended-more. 14085 14086 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 92))&(DPCRE2_EXTENDED|DPCRE2_EXTENDED_MORE) == DPCRE2_EXTENDED || *(*Tuint32_t)(unsafe.Pointer(bp + 96))&DPCRE2_EXTENDED != Tuint32_t(0)) { 14087 goto __373 14088 } 14089 *(*Tuint32_t)(unsafe.Pointer(bp + 96 /* unset */)) |= DPCRE2_EXTENDED_MORE 14090 __373: 14091 ; 14092 14093 options = (options | *(*Tuint32_t)(unsafe.Pointer(bp + 92))) & ^*(*Tuint32_t)(unsafe.Pointer(bp + 96)) 14094 14095 // If the options ended with ')' this is not the start of a nested 14096 // group with option changes, so the options change at this level. 14097 // In this case, if the previous level set up a nest block, discard the 14098 // one we have just created. Otherwise adjust it for the previous level. 14099 // If the options ended with ':' we are starting a non-capturing group, 14100 // possibly with an options setting. 14101 14102 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend) { 14103 goto __374 14104 } 14105 goto UNCLOSED_PARENTHESIS 14106 __374: 14107 ; 14108 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1)))) == '\051') { 14109 goto __375 14110 } 14111 14112 nest_depth-- // This is not a nested group after all. 14113 if !(top_nest > (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_workspace && int32((*Tnest_save)(unsafe.Pointer(top_nest-uintptr(1)*12)).Fnest_depth) == int32(nest_depth)) { 14114 goto __377 14115 } 14116 top_nest -= 12 14117 goto __378 14118 __377: 14119 (*Tnest_save)(unsafe.Pointer(top_nest)).Fnest_depth = nest_depth 14120 __378: 14121 ; 14122 goto __376 14123 __375: 14124 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_NOCAPTURE 14125 __376: 14126 ; 14127 14128 // If nothing changed, no need to record. 14129 14130 if !(options != oldoptions) { 14131 goto __379 14132 } 14133 14134 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_OPTIONS 14135 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = options 14136 __379: 14137 ; 14138 __357: 14139 ; // End options processing 14140 goto __328 // End default case after (? 14141 14142 // ---- Python syntax support ---- 14143 14144 __330: 14145 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1) >= ptrend) { 14146 goto __380 14147 } 14148 goto UNCLOSED_PARENTHESIS 14149 __380: 14150 ; 14151 14152 // (?P<name> is the same as (?<name>, which defines a named group. 14153 14154 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\074') { 14155 goto __381 14156 } 14157 14158 terminator = Tuint32_t('\076') 14159 goto DEFINE_NAME 14160 __381: 14161 ; 14162 14163 // (?P>name) is the same as (?&name), which is a recursion or subroutine 14164 // call. 14165 14166 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\076') { 14167 goto __382 14168 } 14169 goto RECURSE_BY_NAME 14170 __382: 14171 ; 14172 14173 // (?P=name) is the same as \k<name>, a back reference by name. Anything 14174 // else after (?P is an error. 14175 14176 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\075') { 14177 goto __383 14178 } 14179 14180 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR41 14181 goto FAILED 14182 __383: 14183 ; 14184 if !!(read_name(tls, bp+8, ptrend, utf, uint32('\051'), bp+56, bp+64, 14185 bp+72, bp+20, cb) != 0) { 14186 goto __384 14187 } 14188 goto FAILED 14189 __384: 14190 ; 14191 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_BACKREF_BYNAME 14192 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 72 /* namelen */)) 14193 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) >> 32) 14194 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) & uint64(0xffffffff)) 14195 14196 okquantifier = DTRUE 14197 goto __328 // End of (?P processing 14198 14199 // ---- Recursion/subroutine calls by number ---- 14200 14201 __331: 14202 *(*int32)(unsafe.Pointer(bp + 48 /* i */)) = 0 // (?R) == (?R0) 14203 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 14204 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\051') { 14205 goto __385 14206 } 14207 14208 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR58 14209 goto FAILED 14210 __385: 14211 ; 14212 goto SET_RECURSION 14213 14214 // An item starting (?- followed by a digit comes here via the "default" 14215 // case because (?- followed by a non-digit is an options setting. 14216 14217 __332: 14218 if !((int64(ptrend)-int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))/1 < int64(2) || !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1))) <= '\071')) { 14219 goto __386 14220 } 14221 14222 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR29 // Missing number 14223 goto FAILED 14224 __386: 14225 ; 14226 // Fall through 14227 14228 __333: 14229 __334: 14230 __335: 14231 __336: 14232 __337: 14233 __338: 14234 __339: 14235 __340: 14236 __341: 14237 __342: 14238 RECURSION_BYNUMBER: 14239 if !!(read_number(tls, bp+8, ptrend, 14240 func() int32 { 14241 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) <= '\071' { 14242 return -1 14243 } 14244 return int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) 14245 }(), 14246 DMAX_GROUP_NUMBER, ERR61, 14247 bp+48, bp+20) != 0) { 14248 goto __387 14249 } 14250 goto FAILED 14251 __387: 14252 ; 14253 if !(*(*int32)(unsafe.Pointer(bp + 48)) < 0) { 14254 goto __388 14255 } /* NB (?0) is permitted */ 14256 14257 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR15 // Unknown group 14258 goto FAILED_BACK 14259 __388: 14260 ; 14261 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\051') { 14262 goto __389 14263 } 14264 goto UNCLOSED_PARENTHESIS 14265 __389: 14266 ; 14267 14268 SET_RECURSION: 14269 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_RECURSE | Tuint32_t(*(*int32)(unsafe.Pointer(bp + 48))) 14270 *(*Tsize_t)(unsafe.Pointer(bp + 56 /* offset */)) = Tsize_t((int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))) - int64((*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern)) / 1) 14271 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 14272 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) >> 32) 14273 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) & uint64(0xffffffff)) 14274 14275 okquantifier = DTRUE 14276 goto __328 // End of recursive call by number handling 14277 14278 // ---- Recursion/subroutine calls by name ---- 14279 14280 __343: 14281 RECURSE_BY_NAME: 14282 if !!(read_name(tls, bp+8, ptrend, utf, uint32('\051'), bp+56, bp+64, 14283 bp+72, bp+20, cb) != 0) { 14284 goto __390 14285 } 14286 goto FAILED 14287 __390: 14288 ; 14289 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_RECURSE_BYNAME 14290 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 72 /* namelen */)) 14291 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) >> 32) 14292 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) & uint64(0xffffffff)) 14293 14294 okquantifier = DTRUE 14295 goto __328 14296 14297 // ---- Callout with numerical or string argument ---- 14298 14299 __344: 14300 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1) >= ptrend) { 14301 goto __391 14302 } 14303 goto UNCLOSED_PARENTHESIS 14304 __391: 14305 ; 14306 14307 // If the previous item was a condition starting (?(? an assertion, 14308 // optionally preceded by a callout, is expected. This is checked later on, 14309 // during actual compilation. However we need to identify this kind of 14310 // assertion in this pass because it must not be qualified. The value of 14311 // expect_cond_assert is set to 2 after (?(? is processed. We decrement it 14312 // for a callout - still leaving a positive value that identifies the 14313 // assertion. Multiple callouts or any other items will make it zero or 14314 // less, which doesn't matter because they will cause an error later. 14315 14316 expect_cond_assert = prev_expect_cond_assert - 1 14317 14318 // If previous_callout is not NULL, it means this follows a previous 14319 // callout. If it was a manual callout, do nothing; this means its "length 14320 // of next pattern item" field will remain zero. If it was an automatic 14321 // callout, abolish it. 14322 14323 if !(*(*uintptr)(unsafe.Pointer(bp)) != uintptr(0) && options&DPCRE2_AUTO_CALLOUT != Tuint32_t(0) && *(*uintptr)(unsafe.Pointer(bp)) == parsed_pattern-uintptr(4)*4 && *(*Tuint32_t)(unsafe.Pointer(parsed_pattern + libc.UintptrFromInt32(-1)*4)) == Tuint32_t(255)) { 14324 goto __392 14325 } 14326 parsed_pattern = *(*uintptr)(unsafe.Pointer(bp /* previous_callout */)) 14327 __392: 14328 ; 14329 14330 // Save for updating next pattern item length, and skip one item before 14331 // completing. 14332 14333 *(*uintptr)(unsafe.Pointer(bp /* previous_callout */)) = parsed_pattern 14334 after_manual_callout = 1 14335 14336 // Handle a string argument; specific delimiter is required. 14337 14338 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\051' && !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) <= '\071')) { 14339 goto __393 14340 } 14341 14342 startptr = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) 14343 14344 delimiter = Tuint32_t(0) 14345 *(*int32)(unsafe.Pointer(bp + 48 /* i */)) = 0 14346 __395: 14347 if !(X_pcre2_callout_start_delims_8[*(*int32)(unsafe.Pointer(bp + 48))] != Tuint32_t(0)) { 14348 goto __397 14349 } 14350 14351 if !(Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == X_pcre2_callout_start_delims_8[*(*int32)(unsafe.Pointer(bp + 48))]) { 14352 goto __398 14353 } 14354 14355 delimiter = X_pcre2_callout_end_delims_8[*(*int32)(unsafe.Pointer(bp + 48 /* i */))] 14356 goto __397 14357 __398: 14358 ; 14359 goto __396 14360 __396: 14361 *(*int32)(unsafe.Pointer(bp + 48 /* i */))++ 14362 goto __395 14363 goto __397 14364 __397: 14365 ; 14366 if !(delimiter == Tuint32_t(0)) { 14367 goto __399 14368 } 14369 14370 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR82 14371 goto FAILED 14372 __399: 14373 ; 14374 14375 *(*Tuint32_t)(unsafe.Pointer(parsed_pattern)) = DMETA_CALLOUT_STRING 14376 parsed_pattern += 4 * uintptr(3) // Skip pattern info 14377 14378 __400: 14379 14380 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1) >= ptrend) { 14381 goto __403 14382 } 14383 14384 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR81 14385 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) = startptr // To give a more useful message 14386 goto FAILED 14387 __403: 14388 ; 14389 if !(Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == delimiter && (libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1) >= ptrend || Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != delimiter)) { 14390 goto __404 14391 } 14392 goto __402 14393 __404: 14394 ; 14395 goto __401 14396 __401: 14397 goto __400 14398 goto __402 14399 __402: 14400 ; 14401 14402 calloutlength = Tsize_t((int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))) - int64(startptr)) / 1) 14403 if !(calloutlength > uint64(4294967295)) { 14404 goto __405 14405 } 14406 14407 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR72 14408 goto FAILED 14409 __405: 14410 ; 14411 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(calloutlength) 14412 *(*Tsize_t)(unsafe.Pointer(bp + 56 /* offset */)) = Tsize_t((int64(startptr) - int64((*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern)) / 1) 14413 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) >> 32) 14414 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) & uint64(0xffffffff)) 14415 14416 goto __394 14417 __393: 14418 14419 n = 0 14420 *(*Tuint32_t)(unsafe.Pointer(parsed_pattern)) = DMETA_CALLOUT_NUMBER // Numerical callout 14421 parsed_pattern += 4 * uintptr(3) // Skip pattern info 14422 __406: 14423 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) < ptrend && (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) <= '\071')) { 14424 goto __407 14425 } 14426 14427 n = n*10 + int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1)))) - '\060' 14428 if !(n > 255) { 14429 goto __408 14430 } 14431 14432 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR38 14433 goto FAILED 14434 __408: 14435 ; 14436 goto __406 14437 __407: 14438 ; 14439 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(n) 14440 __394: 14441 ; 14442 14443 // Both formats must have a closing parenthesis 14444 14445 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\051') { 14446 goto __409 14447 } 14448 14449 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR39 14450 goto FAILED 14451 __409: 14452 ; 14453 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 14454 14455 // Remember the offset to the next item in the pattern, and set a default 14456 // length. This should get updated after the next item is read. 14457 14458 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp /* previous_callout */)) + 1*4)) = Tuint32_t((int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))) - int64((*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern)) / 1) 14459 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp /* previous_callout */)) + 2*4)) = Tuint32_t(0) 14460 goto __328 // End callout 14461 14462 // ---- Conditional group ---- 14463 14464 // A condition can be an assertion, a number (referring to a numbered 14465 // group's having been set), a name (referring to a named group), or 'R', 14466 // referring to overall recursion. R<digits> and R&name are also permitted 14467 // for recursion state tests. Numbers may be preceded by + or - to specify a 14468 // relative group number. 14469 // 14470 // There are several syntaxes for testing a named group: (?(name)) is used 14471 // by Python; Perl 5.10 onwards uses (?(<name>) or (?('name')). 14472 // 14473 // There are two unfortunate ambiguities. 'R' can be the recursive thing or 14474 // the name 'R' (and similarly for 'R' followed by digits). 'DEFINE' can be 14475 // the Perl DEFINE feature or the Python named test. We look for a name 14476 // first; if not found, we try the other case. 14477 // 14478 // For compatibility with auto-callouts, we allow a callout to be specified 14479 // before a condition that is an assertion. 14480 14481 __345: 14482 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1) >= ptrend) { 14483 goto __410 14484 } 14485 goto UNCLOSED_PARENTHESIS 14486 __410: 14487 ; 14488 nest_depth++ 14489 14490 // If the next character is ? or * there must be an assertion next 14491 // (optionally preceded by a callout). We do not check this here, but 14492 // instead we set expect_cond_assert to 2. If this is still greater than 14493 // zero (callouts decrement it) when the next assertion is read, it will be 14494 // marked as a condition that must not be repeated. A value greater than 14495 // zero also causes checking that an assertion (possibly with callout) 14496 // follows. 14497 14498 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\077' || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\052') { 14499 goto __411 14500 } 14501 14502 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_COND_ASSERT 14503 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))-- // Pull pointer back to the opening parenthesis. 14504 expect_cond_assert = 2 14505 goto __328 // End of conditional 14506 __411: 14507 ; 14508 14509 // Handle (?([+-]number)... 14510 14511 if !(read_number(tls, bp+8, ptrend, int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount), DMAX_GROUP_NUMBER, ERR61, bp+48, 14512 bp+20) != 0) { 14513 goto __412 14514 } 14515 14516 if !(*(*int32)(unsafe.Pointer(bp + 48)) <= 0) { 14517 goto __414 14518 } 14519 14520 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR15 14521 goto FAILED 14522 __414: 14523 ; 14524 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_COND_NUMBER 14525 *(*Tsize_t)(unsafe.Pointer(bp + 56 /* offset */)) = Tsize_t((int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))-int64((*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern))/1 - int64(2)) 14526 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) >> 32) 14527 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) & uint64(0xffffffff)) 14528 14529 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*int32)(unsafe.Pointer(bp + 48 /* i */))) 14530 goto __413 14531 __412: 14532 if !(*(*int32)(unsafe.Pointer(bp + 20)) != 0) { 14533 goto __415 14534 } 14535 goto FAILED 14536 goto __416 14537 __415: 14538 if !((int64(ptrend)-int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))/1 >= int64(10) && X_pcre2_strncmp_c8_8(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), ts+615, uint64(7)) == 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 7))) != '\051') { 14539 goto __417 14540 } 14541 14542 ge = Tuint32_t(0) 14543 *(*int32)(unsafe.Pointer(bp + 100 /* major */)) = 0 14544 minor = 0 14545 14546 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(7) 14547 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\076') { 14548 goto __419 14549 } 14550 14551 ge = Tuint32_t(1) 14552 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 14553 __419: 14554 ; 14555 14556 // NOTE: cannot write IS_DIGIT(*(++ptr)) here because IS_DIGIT 14557 // references its argument twice. 14558 14559 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\075' || func() bool { 14560 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))++ 14561 return !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) <= '\071') 14562 }()) { 14563 goto __420 14564 } 14565 goto BAD_VERSION_CONDITION 14566 __420: 14567 ; 14568 14569 if !!(read_number(tls, bp+8, ptrend, -1, uint32(1000), ERR79, bp+100, bp+20) != 0) { 14570 goto __421 14571 } 14572 goto FAILED 14573 __421: 14574 ; 14575 14576 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend) { 14577 goto __422 14578 } 14579 goto BAD_VERSION_CONDITION 14580 __422: 14581 ; 14582 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\056') { 14583 goto __423 14584 } 14585 14586 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1) >= ptrend || !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) <= '\071')) { 14587 goto __424 14588 } 14589 goto BAD_VERSION_CONDITION 14590 __424: 14591 ; 14592 minor = (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1)))) - '\060') * 10 14593 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend) { 14594 goto __425 14595 } 14596 goto BAD_VERSION_CONDITION 14597 __425: 14598 ; 14599 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) <= '\071') { 14600 goto __426 14601 } 14602 minor = minor + (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)), 1)))) - '\060') 14603 __426: 14604 ; 14605 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\051') { 14606 goto __427 14607 } 14608 goto BAD_VERSION_CONDITION 14609 __427: 14610 ; 14611 __423: 14612 ; 14613 14614 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_COND_VERSION 14615 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = ge 14616 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*int32)(unsafe.Pointer(bp + 100 /* major */))) 14617 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(minor) 14618 goto __418 14619 __417: 14620 14621 was_r_ampersand = DFALSE 14622 14623 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\122' && (int64(ptrend)-int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))/1 > int64(1) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1))) == '\046') { 14624 goto __428 14625 } 14626 14627 terminator = Tuint32_t('\051') 14628 was_r_ampersand = DTRUE 14629 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 14630 goto __429 14631 __428: 14632 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\074') { 14633 goto __430 14634 } 14635 terminator = Tuint32_t('\076') 14636 goto __431 14637 __430: 14638 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) == '\047') { 14639 goto __432 14640 } 14641 terminator = Tuint32_t('\047') 14642 goto __433 14643 __432: 14644 14645 terminator = Tuint32_t('\051') 14646 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))-- // Point to char before name 14647 __433: 14648 ; 14649 __431: 14650 ; 14651 __429: 14652 ; 14653 if !!(read_name(tls, bp+8, ptrend, utf, terminator, bp+56, bp+64, bp+72, 14654 bp+20, cb) != 0) { 14655 goto __434 14656 } 14657 goto FAILED 14658 __434: 14659 ; 14660 14661 // Handle (?(R&name) 14662 14663 if !(was_r_ampersand != 0) { 14664 goto __435 14665 } 14666 14667 *(*Tuint32_t)(unsafe.Pointer(parsed_pattern)) = DMETA_COND_RNAME 14668 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))-- // Back to closing parens 14669 goto __436 14670 __435: 14671 if !(terminator == Tuint32_t('\051')) { 14672 goto __437 14673 } 14674 14675 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 72)) == Tuint32_t(6) && X_pcre2_strncmp_c8_8(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 64)), ts+623, uint64(6)) == 0) { 14676 goto __439 14677 } 14678 *(*Tuint32_t)(unsafe.Pointer(parsed_pattern)) = DMETA_COND_DEFINE 14679 goto __440 14680 __439: 14681 14682 *(*int32)(unsafe.Pointer(bp + 48 /* i */)) = 1 14683 __441: 14684 if !(*(*int32)(unsafe.Pointer(bp + 48)) < int32(*(*Tuint32_t)(unsafe.Pointer(bp + 72)))) { 14685 goto __443 14686 } 14687 if !!(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 64)) + uintptr(*(*int32)(unsafe.Pointer(bp + 48)))))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 64)) + uintptr(*(*int32)(unsafe.Pointer(bp + 48)))))) <= '\071') { 14688 goto __444 14689 } 14690 goto __443 14691 __444: 14692 ; 14693 goto __442 14694 __442: 14695 *(*int32)(unsafe.Pointer(bp + 48 /* i */))++ 14696 goto __441 14697 goto __443 14698 __443: 14699 ; 14700 *(*Tuint32_t)(unsafe.Pointer(parsed_pattern)) = func() uint32 { 14701 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 64))))) == '\122' && *(*int32)(unsafe.Pointer(bp + 48)) >= int32(*(*Tuint32_t)(unsafe.Pointer(bp + 72))) { 14702 return DMETA_COND_RNUMBER 14703 } 14704 return DMETA_COND_NAME 14705 }() 14706 __440: 14707 ; 14708 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))-- // Back to closing parens 14709 goto __438 14710 __437: 14711 *(*Tuint32_t)(unsafe.Pointer(parsed_pattern)) = DMETA_COND_NAME 14712 __438: 14713 ; 14714 __436: 14715 ; 14716 14717 // All these cases except DEFINE end with the name length and offset; 14718 // DEFINE just has an offset (for the "too many branches" error). 14719 14720 if !(*(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) != DMETA_COND_DEFINE) { 14721 goto __445 14722 } 14723 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = *(*Tuint32_t)(unsafe.Pointer(bp + 72 /* namelen */)) 14724 __445: 14725 ; 14726 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) >> 32) 14727 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) & uint64(0xffffffff)) 14728 14729 __418: 14730 ; 14731 __416: 14732 ; 14733 __413: 14734 ; // End cases that read a name 14735 14736 // Check the closing parenthesis of the condition 14737 14738 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))) != '\051') { 14739 goto __446 14740 } 14741 14742 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR24 14743 goto FAILED 14744 __446: 14745 ; 14746 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 14747 goto __328 // End of condition processing 14748 14749 // ---- Atomic group ---- 14750 14751 __346: 14752 ATOMIC_GROUP: // Come from (*atomic: 14753 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ATOMIC 14754 nest_depth++ 14755 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 14756 goto __328 14757 14758 // ---- Lookahead assertions ---- 14759 14760 __347: 14761 POSITIVE_LOOK_AHEAD: // Come from (*pla: 14762 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_LOOKAHEAD 14763 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 14764 goto POST_ASSERTION 14765 14766 __348: 14767 POSITIVE_NONATOMIC_LOOK_AHEAD: // Come from (?* 14768 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_LOOKAHEAD_NA 14769 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 14770 goto POST_ASSERTION 14771 14772 __349: 14773 NEGATIVE_LOOK_AHEAD: // Come from (*nla: 14774 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_LOOKAHEADNOT 14775 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))++ 14776 goto POST_ASSERTION 14777 14778 // ---- Lookbehind assertions ---- 14779 14780 // (?< followed by = or ! or * is a lookbehind assertion. Otherwise (?< 14781 // is the start of the name of a capturing group. 14782 14783 __350: 14784 if !((int64(ptrend)-int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))))/1 <= int64(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1))) != '\075' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1))) != '\041' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1))) != '\052') { 14785 goto __447 14786 } 14787 14788 terminator = Tuint32_t('\076') 14789 goto DEFINE_NAME 14790 __447: 14791 ; 14792 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = func() uint32 { 14793 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1))) == '\075' { 14794 return DMETA_LOOKBEHIND 14795 } 14796 return func() uint32 { 14797 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) + 1))) == '\041' { 14798 return DMETA_LOOKBEHINDNOT 14799 } 14800 return DMETA_LOOKBEHIND_NA 14801 }() 14802 }() 14803 14804 POST_LOOKBEHIND: // Come from (*plb: (*naplb: and (*nlb: 14805 *(*TBOOL)(unsafe.Pointer(has_lookbehind)) = DTRUE 14806 *(*Tsize_t)(unsafe.Pointer(bp + 56 /* offset */)) = Tsize_t((int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)))-int64((*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern))/1 - int64(2)) 14807 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) >> 32) 14808 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = Tuint32_t(*(*Tsize_t)(unsafe.Pointer(bp + 56)) & uint64(0xffffffff)) 14809 14810 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)) += uintptr(2) 14811 // Fall through 14812 14813 // If the previous item was a condition starting (?(? an assertion, 14814 // optionally preceded by a callout, is expected. This is checked later on, 14815 // during actual compilation. However we need to identify this kind of 14816 // assertion in this pass because it must not be qualified. The value of 14817 // expect_cond_assert is set to 2 after (?(? is processed. We decrement it 14818 // for a callout - still leaving a positive value that identifies the 14819 // assertion. Multiple callouts or any other items will make it zero or 14820 // less, which doesn't matter because they will cause an error later. 14821 14822 POST_ASSERTION: 14823 nest_depth++ 14824 if !(prev_expect_cond_assert > 0) { 14825 goto __448 14826 } 14827 14828 if !(top_nest == uintptr(0)) { 14829 goto __449 14830 } 14831 top_nest = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_workspace 14832 goto __450 14833 __449: 14834 if !(libc.PreIncUintptr(&top_nest, 12) >= end_nests) { 14835 goto __451 14836 } 14837 14838 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR84 14839 goto FAILED 14840 __451: 14841 ; 14842 __450: 14843 ; 14844 (*Tnest_save)(unsafe.Pointer(top_nest)).Fnest_depth = nest_depth 14845 (*Tnest_save)(unsafe.Pointer(top_nest)).Fflags = uint16(DNSF_CONDASSERT) 14846 (*Tnest_save)(unsafe.Pointer(top_nest)).Foptions = options & (DPCRE2_CASELESS | DPCRE2_DOTALL | DPCRE2_DUPNAMES | DPCRE2_EXTENDED | DPCRE2_EXTENDED_MORE | DPCRE2_MULTILINE | DPCRE2_NO_AUTO_CAPTURE | DPCRE2_UNGREEDY) 14847 __448: 14848 ; 14849 goto __328 14850 14851 // ---- Define a named group ---- 14852 14853 // A named group may be defined as (?'name') or (?<name>). In the latter 14854 // case we jump to DEFINE_NAME from the disambiguation of (?< above with the 14855 // terminator set to '>'. 14856 14857 __351: 14858 terminator = Tuint32_t('\047') // Terminator 14859 14860 DEFINE_NAME: 14861 if !!(read_name(tls, bp+8, ptrend, utf, terminator, bp+56, bp+64, bp+72, 14862 bp+20, cb) != 0) { 14863 goto __452 14864 } 14865 goto FAILED 14866 __452: 14867 ; 14868 14869 // We have a name for this capturing group. It is also assigned a number, 14870 // which is its primary means of identification. 14871 14872 if !((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount >= DMAX_GROUP_NUMBER) { 14873 goto __453 14874 } 14875 14876 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR97 14877 goto FAILED 14878 __453: 14879 ; 14880 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount++ 14881 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_CAPTURE | (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount 14882 nest_depth++ 14883 14884 // Check not too many names 14885 14886 if !(int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found) >= DMAX_NAME_COUNT) { 14887 goto __454 14888 } 14889 14890 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR49 14891 goto FAILED 14892 __454: 14893 ; 14894 14895 // Adjust the entry size to accommodate the longest name found. 14896 14897 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 72))+Tuint32_t(DIMM2_SIZE)+Tuint32_t(1) > Tuint32_t((*Tcompile_block_8)(unsafe.Pointer(cb)).Fname_entry_size)) { 14898 goto __455 14899 } 14900 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fname_entry_size = Tuint16_t(*(*Tuint32_t)(unsafe.Pointer(bp + 72)) + Tuint32_t(DIMM2_SIZE) + Tuint32_t(1)) 14901 __455: 14902 ; 14903 14904 // Scan the list to check for duplicates. For duplicate names, if the 14905 // number is the same, break the loop, which causes the name to be 14906 // discarded; otherwise, if DUPNAMES is not set, give an error. 14907 // If it is set, allow the name with a different number, but continue 14908 // scanning in case this is a duplicate with the same number. For 14909 // non-duplicate names, give an error if the number is duplicated. 14910 14911 isdupname = DFALSE 14912 ng = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_groups 14913 *(*int32)(unsafe.Pointer(bp + 48 /* i */)) = 0 14914 __456: 14915 if !(*(*int32)(unsafe.Pointer(bp + 48)) < int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found)) { 14916 goto __458 14917 } 14918 14919 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 72)) == Tuint32_t((*Tnamed_group_8)(unsafe.Pointer(ng)).Flength) && X_pcre2_strncmp_8(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 64)), (*Tnamed_group_8)(unsafe.Pointer(ng)).Fname, Tsize_t(*(*Tuint32_t)(unsafe.Pointer(bp + 72)))) == 0) { 14920 goto __459 14921 } 14922 14923 if !((*Tnamed_group_8)(unsafe.Pointer(ng)).Fnumber == (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) { 14924 goto __461 14925 } 14926 goto __458 14927 __461: 14928 ; 14929 if !(options&DPCRE2_DUPNAMES == Tuint32_t(0)) { 14930 goto __462 14931 } 14932 14933 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR43 14934 goto FAILED 14935 __462: 14936 ; 14937 isdupname = TBOOL(libc.AssignPtrUint16(ng+14, Tuint16_t(DTRUE))) // Mark as a duplicate 14938 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fdupnames = DTRUE // Duplicate names exist 14939 goto __460 14940 __459: 14941 if !((*Tnamed_group_8)(unsafe.Pointer(ng)).Fnumber == (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) { 14942 goto __463 14943 } 14944 14945 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR65 14946 goto FAILED 14947 __463: 14948 ; 14949 __460: 14950 ; 14951 goto __457 14952 __457: 14953 *(*int32)(unsafe.Pointer(bp + 48 /* i */))++ 14954 ng += 16 14955 goto __456 14956 goto __458 14957 __458: 14958 ; 14959 14960 if !(*(*int32)(unsafe.Pointer(bp + 48)) < int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found)) { 14961 goto __464 14962 } 14963 goto __328 14964 __464: 14965 ; // Ignore duplicate with same number 14966 14967 // Increase the list size if necessary 14968 14969 if !(Tuint32_t((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found) >= (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_group_list_size) { 14970 goto __465 14971 } 14972 14973 newsize = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_group_list_size * Tuint32_t(2) 14974 newspace = 14975 (*struct { 14976 f func(*libc.TLS, Tsize_t, uintptr) uintptr 14977 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fmemctl.Fmalloc})).f(tls, uint64(newsize)*uint64(unsafe.Sizeof(Tnamed_group_8{})), 14978 (*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fmemctl.Fmemory_data) 14979 if !(newspace == uintptr(0)) { 14980 goto __466 14981 } 14982 14983 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR21 14984 goto FAILED 14985 __466: 14986 ; 14987 14988 libc.Xmemcpy(tls, newspace, (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_groups, 14989 uint64((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_group_list_size)*uint64(unsafe.Sizeof(Tnamed_group_8{}))) 14990 if !((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_group_list_size > Tuint32_t(DNAMED_GROUP_LIST_SIZE)) { 14991 goto __467 14992 } 14993 (*struct { 14994 f func(*libc.TLS, uintptr, uintptr) 14995 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fmemctl.Ffree})).f(tls, (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_groups, 14996 (*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fmemctl.Fmemory_data) 14997 __467: 14998 ; 14999 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_groups = newspace 15000 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_group_list_size = newsize 15001 __465: 15002 ; 15003 15004 // Add this name to the list 15005 15006 (*Tnamed_group_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_groups + uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found)*16)).Fname = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 64 /* name */)) 15007 (*Tnamed_group_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_groups + uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found)*16)).Flength = Tuint16_t(*(*Tuint32_t)(unsafe.Pointer(bp + 72 /* namelen */))) 15008 (*Tnamed_group_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_groups + uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found)*16)).Fnumber = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount 15009 (*Tnamed_group_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_groups + uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found)*16)).Fisdup = Tuint16_t(isdupname) 15010 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found++ 15011 goto __328 15012 __328: 15013 ; // End of (? switch 15014 goto __84 // End of ( handling 15015 15016 // ---- Branch terminators ---- 15017 15018 // Alternation: reset the capture count if we are in a (?| group. 15019 15020 __96: 15021 if !(top_nest != uintptr(0) && int32((*Tnest_save)(unsafe.Pointer(top_nest)).Fnest_depth) == int32(nest_depth) && uint32((*Tnest_save)(unsafe.Pointer(top_nest)).Fflags)&DNSF_RESET != uint32(0)) { 15022 goto __468 15023 } 15024 15025 if !((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount > Tuint32_t((*Tnest_save)(unsafe.Pointer(top_nest)).Fmax_group)) { 15026 goto __469 15027 } 15028 (*Tnest_save)(unsafe.Pointer(top_nest)).Fmax_group = Tuint16_t((*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) 15029 __469: 15030 ; 15031 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount = Tuint32_t((*Tnest_save)(unsafe.Pointer(top_nest)).Freset_group) 15032 __468: 15033 ; 15034 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ALT 15035 goto __84 15036 15037 // End of group; reset the capture count to the maximum if we are in a (?| 15038 // group and/or reset the options that are tracked during parsing. Disallow 15039 // quantifier for a condition that is an assertion. 15040 15041 __97: 15042 okquantifier = DTRUE 15043 if !(top_nest != uintptr(0) && int32((*Tnest_save)(unsafe.Pointer(top_nest)).Fnest_depth) == int32(nest_depth)) { 15044 goto __470 15045 } 15046 15047 options = options&libc.CplUint32(DPCRE2_CASELESS|DPCRE2_DOTALL|DPCRE2_DUPNAMES|DPCRE2_EXTENDED|DPCRE2_EXTENDED_MORE|DPCRE2_MULTILINE|DPCRE2_NO_AUTO_CAPTURE|DPCRE2_UNGREEDY) | (*Tnest_save)(unsafe.Pointer(top_nest)).Foptions 15048 if !(uint32((*Tnest_save)(unsafe.Pointer(top_nest)).Fflags)&DNSF_RESET != uint32(0) && Tuint32_t((*Tnest_save)(unsafe.Pointer(top_nest)).Fmax_group) > (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) { 15049 goto __471 15050 } 15051 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount = Tuint32_t((*Tnest_save)(unsafe.Pointer(top_nest)).Fmax_group) 15052 __471: 15053 ; 15054 if !(uint32((*Tnest_save)(unsafe.Pointer(top_nest)).Fflags)&DNSF_CONDASSERT != uint32(0)) { 15055 goto __472 15056 } 15057 okquantifier = DFALSE 15058 __472: 15059 ; 15060 15061 if !(uint32((*Tnest_save)(unsafe.Pointer(top_nest)).Fflags)&DNSF_ATOMICSR != uint32(0)) { 15062 goto __473 15063 } 15064 15065 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_KET 15066 __473: 15067 ; 15068 15069 if !(top_nest == (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_workspace) { 15070 goto __474 15071 } 15072 top_nest = uintptr(0) 15073 goto __475 15074 __474: 15075 top_nest -= 12 15076 __475: 15077 ; 15078 __470: 15079 ; 15080 if !(int32(nest_depth) == 0) { 15081 goto __476 15082 } /* Unmatched closing parenthesis */ 15083 15084 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR22 15085 goto FAILED_BACK 15086 __476: 15087 ; 15088 nest_depth-- 15089 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_KET 15090 goto __84 15091 __84: 15092 ; // End of switch on pattern character 15093 goto __19 15094 __20: 15095 ; // End of main character scan loop 15096 15097 // End of pattern reached. Check for missing ) at the end of a verb name. 15098 15099 if !(inverbname != 0 && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8)) >= ptrend) { 15100 goto __477 15101 } 15102 15103 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR60 15104 goto FAILED 15105 __477: 15106 ; 15107 15108 // Manage callout for the final item 15109 15110 PARSED_END: 15111 parsed_pattern = manage_callouts(tls, *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */)), bp, auto_callout, 15112 parsed_pattern, cb) 15113 15114 // Insert trailing items for word and line matching (features provided for the 15115 // benefit of pcre2grep). 15116 15117 if !(extra_options&DPCRE2_EXTRA_MATCH_LINE != Tuint32_t(0)) { 15118 goto __478 15119 } 15120 15121 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_KET 15122 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_DOLLAR 15123 goto __479 15124 __478: 15125 if !(extra_options&DPCRE2_EXTRA_MATCH_WORD != Tuint32_t(0)) { 15126 goto __480 15127 } 15128 15129 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_KET 15130 *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&parsed_pattern, 4))) = DMETA_ESCAPE + ESC_b 15131 __480: 15132 ; 15133 __479: 15134 ; 15135 15136 // Terminate the parsed pattern, then return success if all groups are closed. 15137 // Otherwise we have unclosed parentheses. 15138 15139 if !(parsed_pattern >= parsed_pattern_end) { 15140 goto __481 15141 } 15142 15143 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR63 // Internal error (parsed pattern overflow) 15144 goto FAILED 15145 __481: 15146 ; 15147 15148 *(*Tuint32_t)(unsafe.Pointer(parsed_pattern)) = DMETA_END 15149 if !(int32(nest_depth) == 0) { 15150 goto __482 15151 } 15152 return 0 15153 __482: 15154 ; 15155 15156 UNCLOSED_PARENTHESIS: 15157 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR14 15158 15159 // Come here for all failures. 15160 15161 FAILED: 15162 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = Tsize_t((int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8))) - int64((*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern)) / 1) 15163 return *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) 15164 15165 // Some errors need to indicate the previous character. 15166 15167 FAILED_BACK: 15168 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* ptr */))-- 15169 goto FAILED 15170 15171 // This failure happens several times. 15172 15173 BAD_VERSION_CONDITION: 15174 *(*int32)(unsafe.Pointer(bp + 20 /* errorcode */)) = ERR79 15175 goto FAILED 15176 return int32(0) 15177 } 15178 15179 // ************************************************ 15180 // 15181 // Find first significant opcode * 15182 // 15183 15184 // This is called by several functions that scan a compiled expression looking 15185 // for a fixed first character, or an anchoring opcode etc. It skips over things 15186 // that do not influence this. For some calls, it makes sense to skip negative 15187 // forward and all backward assertions, and also the \b assertion; for others it 15188 // does not. 15189 // 15190 // Arguments: 15191 // code pointer to the start of the group 15192 // skipassert TRUE if certain assertions are to be skipped 15193 // 15194 // Returns: pointer to the first significant opcode 15195 15196 func first_significant_code(tls *libc.TLS, code TPCRE2_SPTR8, skipassert TBOOL) uintptr { /* pcre2_compile.c:4845:25: */ 15197 for { 15198 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) { 15199 case OP_ASSERT_NOT: 15200 fallthrough 15201 case OP_ASSERTBACK: 15202 fallthrough 15203 case OP_ASSERTBACK_NOT: 15204 fallthrough 15205 case OP_ASSERTBACK_NA: 15206 if !(skipassert != 0) { 15207 return code 15208 } 15209 for __ccgo := true; __ccgo; __ccgo = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_ALT { 15210 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 15211 } 15212 code += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))]) 15213 break 15214 15215 case OP_WORD_BOUNDARY: 15216 fallthrough 15217 case OP_NOT_WORD_BOUNDARY: 15218 if !(skipassert != 0) { 15219 return code 15220 } 15221 fallthrough 15222 // Fall through 15223 15224 case OP_CALLOUT: 15225 fallthrough 15226 case OP_CREF: 15227 fallthrough 15228 case OP_DNCREF: 15229 fallthrough 15230 case OP_RREF: 15231 fallthrough 15232 case OP_DNRREF: 15233 fallthrough 15234 case OP_FALSE: 15235 fallthrough 15236 case OP_TRUE: 15237 code += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))]) 15238 break 15239 15240 case OP_CALLOUT_STR: 15241 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 6))))) 15242 break 15243 15244 case OP_SKIPZERO: 15245 code += TPCRE2_SPTR8(uint32(2) + uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))) + uint32(DLINK_SIZE)) 15246 break 15247 15248 case OP_COND: 15249 fallthrough 15250 case OP_SCOND: 15251 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))) != OP_FALSE || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))))))) != OP_KET { // More than one branch 15252 return code 15253 } 15254 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))) + uint32(1) + uint32(DLINK_SIZE)) 15255 break 15256 15257 case OP_MARK: 15258 fallthrough 15259 case OP_COMMIT_ARG: 15260 fallthrough 15261 case OP_PRUNE_ARG: 15262 fallthrough 15263 case OP_SKIP_ARG: 15264 fallthrough 15265 case OP_THEN_ARG: 15266 code += TPCRE2_SPTR8(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) + int32(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))])) 15267 break 15268 15269 default: 15270 return code 15271 } 15272 } 15273 return uintptr(0) 15274 // Control never reaches here 15275 } 15276 15277 // ************************************************ 15278 // 15279 // Get othercase range * 15280 // 15281 15282 // This function is passed the start and end of a class range in UCP mode. It 15283 // searches up the characters, looking for ranges of characters in the "other" 15284 // case. Each call returns the next one, updating the start address. A character 15285 // with multiple other cases is returned on its own with a special return value. 15286 // 15287 // Arguments: 15288 // cptr points to starting character value; updated 15289 // d end value 15290 // ocptr where to put start of othercase range 15291 // odptr where to put end of othercase range 15292 // 15293 // Yield: -1 when no more 15294 // 0 when a range is returned 15295 // >0 the CASESET offset for char with multiple other cases 15296 // in this case, ocptr contains the original 15297 15298 func get_othercase_range(tls *libc.TLS, cptr uintptr, d Tuint32_t, ocptr uintptr, odptr uintptr) int32 { /* pcre2_compile.c:4932:1: */ 15299 var c Tuint32_t 15300 var othercase Tuint32_t 15301 var next Tuint32_t 15302 var co uint32 15303 15304 // Find the first character that has an other case. If it has multiple other 15305 // cases, return its case offset value. 15306 15307 for c = *(*Tuint32_t)(unsafe.Pointer(cptr)); c <= d; c++ { 15308 if libc.AssignUint32(&co, uint32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12)).Fcaseset)) != uint32(0) { 15309 *(*Tuint32_t)(unsafe.Pointer(ocptr)) = libc.PostIncUint32(&c, 1) // Character that has the set 15310 *(*Tuint32_t)(unsafe.Pointer(cptr)) = c // Rest of input range 15311 return int32(co) 15312 } 15313 if libc.AssignUint32(&othercase, Tuint32_t(int32(c)+(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12)).Fother_case)) != c { 15314 break 15315 } 15316 } 15317 15318 if c > d { 15319 return -1 15320 } // Reached end of range 15321 15322 // Found a character that has a single other case. Search for the end of the 15323 // range, which is either the end of the input range, or a character that has zero 15324 // or more than one other cases. 15325 15326 *(*Tuint32_t)(unsafe.Pointer(ocptr)) = othercase 15327 next = othercase + Tuint32_t(1) 15328 15329 for c++; c <= d; c++ { 15330 if libc.AssignUint32(&co, uint32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12)).Fcaseset)) != uint32(0) || Tuint32_t(int32(c)+(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12)).Fother_case) != next { 15331 break 15332 } 15333 next++ 15334 } 15335 15336 *(*Tuint32_t)(unsafe.Pointer(odptr)) = next - Tuint32_t(1) // End of othercase range 15337 *(*Tuint32_t)(unsafe.Pointer(cptr)) = c // Rest of input range 15338 return 0 15339 } 15340 15341 // ************************************************ 15342 // 15343 // Add a character or range to a class (internal) * 15344 // 15345 15346 // This function packages up the logic of adding a character or range of 15347 // characters to a class. The character values in the arguments will be within the 15348 // valid values for the current mode (8-bit, 16-bit, UTF, etc). This function is 15349 // called only from within the "add to class" group of functions, some of which 15350 // are recursive and mutually recursive. The external entry point is 15351 // add_to_class(). 15352 // 15353 // Arguments: 15354 // classbits the bit map for characters < 256 15355 // uchardptr points to the pointer for extra data 15356 // options the options word 15357 // cb compile data 15358 // start start of range character 15359 // end end of range character 15360 // 15361 // Returns: the number of < 256 characters added 15362 // the pointer to extra data is updated 15363 15364 func add_to_class_internal(tls *libc.TLS, classbits uintptr, uchardptr uintptr, options Tuint32_t, cb uintptr, start Tuint32_t, end Tuint32_t) uint32 { /* pcre2_compile.c:4999:1: */ 15365 bp := tls.Alloc(12) 15366 defer tls.Free(12) 15367 15368 // var c Tuint32_t at bp, 4 15369 15370 var classbits_end Tuint32_t = func() uint32 { 15371 if end <= Tuint32_t(0xff) { 15372 return end 15373 } 15374 return uint32(0xff) 15375 }() 15376 var n8 uint32 = uint32(0) 15377 15378 // If caseless matching is required, scan the range and process alternate 15379 // cases. In Unicode, there are 8-bit characters that have alternate cases that 15380 // are greater than 255 and vice-versa. Sometimes we can just extend the original 15381 // range. 15382 15383 if options&DPCRE2_CASELESS != Tuint32_t(0) { 15384 if options&(DPCRE2_UTF|DPCRE2_UCP) != Tuint32_t(0) { 15385 var rc int32 15386 // var oc Tuint32_t at bp+4, 4 15387 15388 // var od Tuint32_t at bp+8, 4 15389 15390 options = options & libc.CplUint32(DPCRE2_CASELESS) // Remove for recursive calls 15391 *(*Tuint32_t)(unsafe.Pointer(bp /* c */)) = start 15392 15393 for libc.AssignInt32(&rc, get_othercase_range(tls, bp, end, bp+4, bp+8)) >= 0 { 15394 // Handle a single character that has more than one other case. 15395 15396 if rc > 0 { 15397 n8 = n8 + add_list_to_class_internal(tls, classbits, uchardptr, options, cb, 15398 uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8))+uintptr(rc)*4, *(*Tuint32_t)(unsafe.Pointer(bp + 4))) 15399 } else if *(*Tuint32_t)(unsafe.Pointer(bp + 4)) >= (*Tcompile_block_8)(unsafe.Pointer(cb)).Fclass_range_start && *(*Tuint32_t)(unsafe.Pointer(bp + 8)) <= (*Tcompile_block_8)(unsafe.Pointer(cb)).Fclass_range_end { 15400 continue 15401 } else if *(*Tuint32_t)(unsafe.Pointer(bp + 4)) < start && *(*Tuint32_t)(unsafe.Pointer(bp + 8)) >= start-Tuint32_t(1) { 15402 start = *(*Tuint32_t)(unsafe.Pointer(bp + 4 /* oc */)) 15403 } else if *(*Tuint32_t)(unsafe.Pointer(bp + 8)) > end && *(*Tuint32_t)(unsafe.Pointer(bp + 4)) <= end+Tuint32_t(1) { 15404 end = *(*Tuint32_t)(unsafe.Pointer(bp + 8 /* od */)) // Extend upwards 15405 if end > classbits_end { 15406 classbits_end = func() uint32 { 15407 if end <= Tuint32_t(0xff) { 15408 return end 15409 } 15410 return uint32(0xff) 15411 }() 15412 } 15413 } else { 15414 n8 = n8 + add_to_class_internal(tls, classbits, uchardptr, options, cb, *(*Tuint32_t)(unsafe.Pointer(bp + 4)), *(*Tuint32_t)(unsafe.Pointer(bp + 8))) 15415 } 15416 } 15417 } else { 15418 15419 // Not UTF mode 15420 15421 for *(*Tuint32_t)(unsafe.Pointer(bp /* c */)) = start; *(*Tuint32_t)(unsafe.Pointer(bp /* c */)) <= classbits_end; *(*Tuint32_t)(unsafe.Pointer(bp /* c */))++ { 15422 *(*Tuint8_t)(unsafe.Pointer(classbits + uintptr(int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Ffcc + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp))))))/8))) = Tuint8_t(uint32(*(*Tuint8_t)(unsafe.Pointer(classbits + uintptr(int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Ffcc + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp))))))/8)))) | uint32(1)<<(int32(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Ffcc + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp))))))&7)) 15423 n8++ 15424 } 15425 } 15426 } 15427 15428 // Now handle the originally supplied range. Adjust the final value according 15429 // to the bit length - this means that the same lists of (e.g.) horizontal spaces 15430 // can be used in all cases. 15431 15432 if options&DPCRE2_UTF == Tuint32_t(0) && end > uint32(0xffffffff)>>(32-DPCRE2_CODE_UNIT_WIDTH) { 15433 end = uint32(0xffffffff) >> (32 - DPCRE2_CODE_UNIT_WIDTH) 15434 } 15435 15436 if start > (*Tcompile_block_8)(unsafe.Pointer(cb)).Fclass_range_start && end < (*Tcompile_block_8)(unsafe.Pointer(cb)).Fclass_range_end { 15437 return n8 15438 } 15439 15440 // Use the bitmap for characters < 256. Otherwise use extra data. 15441 15442 for *(*Tuint32_t)(unsafe.Pointer(bp /* c */)) = start; *(*Tuint32_t)(unsafe.Pointer(bp /* c */)) <= classbits_end; *(*Tuint32_t)(unsafe.Pointer(bp /* c */))++ { 15443 // Regardless of start, c will always be <= 255. 15444 *(*Tuint8_t)(unsafe.Pointer(classbits + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp))/Tuint32_t(8)))) = Tuint8_t(uint32(*(*Tuint8_t)(unsafe.Pointer(classbits + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp))/Tuint32_t(8))))) | uint32(1)<<(*(*Tuint32_t)(unsafe.Pointer(bp))&Tuint32_t(7))) 15445 n8++ 15446 } 15447 15448 if start <= Tuint32_t(0xff) { 15449 start = Tuint32_t(0xff + 1) 15450 } 15451 15452 if end >= start { 15453 var uchardata uintptr = *(*uintptr)(unsafe.Pointer(uchardptr)) 15454 15455 if options&DPCRE2_UTF != Tuint32_t(0) { 15456 if start < end { 15457 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&uchardata, 1))) = TPCRE2_UCHAR8(DXCL_RANGE) 15458 uchardata += uintptr(X_pcre2_ord2utf_8(tls, start, uchardata)) 15459 uchardata += uintptr(X_pcre2_ord2utf_8(tls, end, uchardata)) 15460 } else if start == end { 15461 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&uchardata, 1))) = TPCRE2_UCHAR8(DXCL_SINGLE) 15462 uchardata += uintptr(X_pcre2_ord2utf_8(tls, start, uchardata)) 15463 } 15464 } else { 15465 } 15466 *(*uintptr)(unsafe.Pointer(uchardptr)) = uchardata // Updata extra data pointer 15467 } 15468 15469 return n8 // Number of 8-bit characters 15470 } 15471 15472 // ************************************************ 15473 // 15474 // Add a list of characters to a class (internal) * 15475 // 15476 15477 // This function is used for adding a list of case-equivalent characters to a 15478 // class when in UTF mode. This function is called only from within 15479 // add_to_class_internal(), with which it is mutually recursive. 15480 // 15481 // Arguments: 15482 // classbits the bit map for characters < 256 15483 // uchardptr points to the pointer for extra data 15484 // options the options word 15485 // cb contains pointers to tables etc. 15486 // p points to row of 32-bit values, terminated by NOTACHAR 15487 // except character to omit; this is used when adding lists of 15488 // case-equivalent characters to avoid including the one we 15489 // already know about 15490 // 15491 // Returns: the number of < 256 characters added 15492 // the pointer to extra data is updated 15493 15494 func add_list_to_class_internal(tls *libc.TLS, classbits uintptr, uchardptr uintptr, options Tuint32_t, cb uintptr, p uintptr, except uint32) uint32 { /* pcre2_compile.c:5154:1: */ 15495 var n8 uint32 = uint32(0) 15496 for *(*Tuint32_t)(unsafe.Pointer(p)) < DNOTACHAR { 15497 var n uint32 = uint32(0) 15498 if *(*Tuint32_t)(unsafe.Pointer(p)) != except { 15499 for *(*Tuint32_t)(unsafe.Pointer(p + uintptr(n+uint32(1))*4)) == *(*Tuint32_t)(unsafe.Pointer(p))+n+Tuint32_t(1) { 15500 n++ 15501 } 15502 n8 = n8 + add_to_class_internal(tls, classbits, uchardptr, options, cb, *(*Tuint32_t)(unsafe.Pointer(p)), *(*Tuint32_t)(unsafe.Pointer(p + uintptr(n)*4))) 15503 } 15504 p += 4 * uintptr(n+uint32(1)) 15505 } 15506 return n8 15507 } 15508 15509 // ************************************************ 15510 // 15511 // External entry point for add range to class * 15512 // 15513 15514 // This function sets the overall range so that the internal functions can try 15515 // to avoid duplication when handling case-independence. 15516 // 15517 // Arguments: 15518 // classbits the bit map for characters < 256 15519 // uchardptr points to the pointer for extra data 15520 // options the options word 15521 // cb compile data 15522 // start start of range character 15523 // end end of range character 15524 // 15525 // Returns: the number of < 256 characters added 15526 // the pointer to extra data is updated 15527 15528 func add_to_class(tls *libc.TLS, classbits uintptr, uchardptr uintptr, options Tuint32_t, cb uintptr, start Tuint32_t, end Tuint32_t) uint32 { /* pcre2_compile.c:5194:1: */ 15529 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fclass_range_start = start 15530 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fclass_range_end = end 15531 return add_to_class_internal(tls, classbits, uchardptr, options, cb, start, end) 15532 } 15533 15534 // ************************************************ 15535 // 15536 // External entry point for add list to class * 15537 // 15538 15539 // This function is used for adding a list of horizontal or vertical whitespace 15540 // characters to a class. The list must be in order so that ranges of characters 15541 // can be detected and handled appropriately. This function sets the overall range 15542 // so that the internal functions can try to avoid duplication when handling 15543 // case-independence. 15544 // 15545 // Arguments: 15546 // classbits the bit map for characters < 256 15547 // uchardptr points to the pointer for extra data 15548 // options the options word 15549 // cb contains pointers to tables etc. 15550 // p points to row of 32-bit values, terminated by NOTACHAR 15551 // except character to omit; this is used when adding lists of 15552 // case-equivalent characters to avoid including the one we 15553 // already know about 15554 // 15555 // Returns: the number of < 256 characters added 15556 // the pointer to extra data is updated 15557 15558 func add_list_to_class(tls *libc.TLS, classbits uintptr, uchardptr uintptr, options Tuint32_t, cb uintptr, p uintptr, except uint32) uint32 { /* pcre2_compile.c:5228:1: */ 15559 var n8 uint32 = uint32(0) 15560 for *(*Tuint32_t)(unsafe.Pointer(p)) < DNOTACHAR { 15561 var n uint32 = uint32(0) 15562 if *(*Tuint32_t)(unsafe.Pointer(p)) != except { 15563 for *(*Tuint32_t)(unsafe.Pointer(p + uintptr(n+uint32(1))*4)) == *(*Tuint32_t)(unsafe.Pointer(p))+n+Tuint32_t(1) { 15564 n++ 15565 } 15566 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fclass_range_start = *(*Tuint32_t)(unsafe.Pointer(p)) 15567 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fclass_range_end = *(*Tuint32_t)(unsafe.Pointer(p + uintptr(n)*4)) 15568 n8 = n8 + add_to_class_internal(tls, classbits, uchardptr, options, cb, *(*Tuint32_t)(unsafe.Pointer(p)), *(*Tuint32_t)(unsafe.Pointer(p + uintptr(n)*4))) 15569 } 15570 p += 4 * uintptr(n+uint32(1)) 15571 } 15572 return n8 15573 } 15574 15575 // ************************************************ 15576 // 15577 // Add characters not in a list to a class * 15578 // 15579 15580 // This function is used for adding the complement of a list of horizontal or 15581 // vertical whitespace to a class. The list must be in order. 15582 // 15583 // Arguments: 15584 // classbits the bit map for characters < 256 15585 // uchardptr points to the pointer for extra data 15586 // options the options word 15587 // cb contains pointers to tables etc. 15588 // p points to row of 32-bit values, terminated by NOTACHAR 15589 // 15590 // Returns: the number of < 256 characters added 15591 // the pointer to extra data is updated 15592 15593 func add_not_list_to_class(tls *libc.TLS, classbits uintptr, uchardptr uintptr, options Tuint32_t, cb uintptr, p uintptr) uint32 { /* pcre2_compile.c:5268:1: */ 15594 var utf TBOOL = libc.Bool32(options&DPCRE2_UTF != Tuint32_t(0)) 15595 var n8 uint32 = uint32(0) 15596 if *(*Tuint32_t)(unsafe.Pointer(p)) > Tuint32_t(0) { 15597 n8 = n8 + add_to_class(tls, classbits, uchardptr, options, cb, uint32(0), *(*Tuint32_t)(unsafe.Pointer(p))-Tuint32_t(1)) 15598 } 15599 for *(*Tuint32_t)(unsafe.Pointer(p)) < DNOTACHAR { 15600 for *(*Tuint32_t)(unsafe.Pointer(p + 1*4)) == *(*Tuint32_t)(unsafe.Pointer(p))+Tuint32_t(1) { 15601 p += 4 15602 } 15603 n8 = n8 + add_to_class(tls, classbits, uchardptr, options, cb, *(*Tuint32_t)(unsafe.Pointer(p))+Tuint32_t(1), 15604 func() uint32 { 15605 if *(*Tuint32_t)(unsafe.Pointer(p + 1*4)) == DNOTACHAR { 15606 return func() uint32 { 15607 if utf != 0 { 15608 return 0x10ffff 15609 } 15610 return 0xffffffff 15611 }() 15612 } 15613 return *(*Tuint32_t)(unsafe.Pointer(p + 1*4)) - Tuint32_t(1) 15614 }()) 15615 p += 4 15616 } 15617 return n8 15618 } 15619 15620 // ************************************************ 15621 // 15622 // Find details of duplicate group names * 15623 // 15624 15625 // This is called from compile_branch() when it needs to know the index and 15626 // count of duplicates in the names table when processing named backreferences, 15627 // either directly, or as conditions. 15628 // 15629 // Arguments: 15630 // name points to the name 15631 // length the length of the name 15632 // indexptr where to put the index 15633 // countptr where to put the count of duplicates 15634 // errorcodeptr where to put an error code 15635 // cb the compile block 15636 // 15637 // Returns: TRUE if OK, FALSE if not, error code set 15638 15639 func find_dupname_details(tls *libc.TLS, name TPCRE2_SPTR8, length Tuint32_t, indexptr uintptr, countptr uintptr, errorcodeptr uintptr, cb uintptr) TBOOL { /* pcre2_compile.c:5307:1: */ 15640 var i Tuint32_t 15641 var groupnumber Tuint32_t 15642 var count int32 15643 var slot uintptr = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fname_table 15644 15645 // Find the first entry in the table 15646 15647 for i = Tuint32_t(0); i < Tuint32_t((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found); i++ { 15648 if X_pcre2_strncmp_8(tls, name, slot+uintptr(DIMM2_SIZE), uint64(length)) == 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot + uintptr(Tuint32_t(DIMM2_SIZE)+length)))) == 0 { 15649 break 15650 } 15651 slot += uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fname_entry_size) 15652 } 15653 15654 // This should not occur, because this function is called only when we know we 15655 // have duplicate names. Give an internal error. 15656 15657 if i >= Tuint32_t((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found) { 15658 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR53 15659 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = Tsize_t((int64(name) - int64((*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern)) / 1) 15660 return DFALSE 15661 } 15662 15663 // Record the index and then see how many duplicates there are, updating the 15664 // backref map and maximum back reference as we do. 15665 15666 *(*int32)(unsafe.Pointer(indexptr)) = int32(i) 15667 count = 0 15668 15669 for { 15670 count++ 15671 groupnumber = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot + 1)))) 15672 *(*Tuint32_t)(unsafe.Pointer(cb + 252)) |= func() uint32 { 15673 if groupnumber < Tuint32_t(32) { 15674 return uint32(1) << groupnumber 15675 } 15676 return uint32(1) 15677 }() 15678 if groupnumber > (*Tcompile_block_8)(unsafe.Pointer(cb)).Ftop_backref { 15679 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ftop_backref = groupnumber 15680 } 15681 if libc.PreIncUint32(&i, 1) >= Tuint32_t((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found) { 15682 break 15683 } 15684 slot += uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fname_entry_size) 15685 if X_pcre2_strncmp_8(tls, name, slot+uintptr(DIMM2_SIZE), uint64(length)) != 0 || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot + uintptr(DIMM2_SIZE) + uintptr(length)))) != 0 { 15686 break 15687 } 15688 } 15689 15690 *(*int32)(unsafe.Pointer(countptr)) = count 15691 return DTRUE 15692 } 15693 15694 // ************************************************ 15695 // 15696 // Compile one branch * 15697 // 15698 15699 // Scan the parsed pattern, compiling it into the a vector of PCRE2_UCHAR. If 15700 // the options are changed during the branch, the pointer is used to change the 15701 // external options bits. This function is used during the pre-compile phase when 15702 // we are trying to find out the amount of memory needed, as well as during the 15703 // real compile phase. The value of lengthptr distinguishes the two phases. 15704 // 15705 // Arguments: 15706 // optionsptr pointer to the option bits 15707 // codeptr points to the pointer to the current code point 15708 // pptrptr points to the current parsed pattern pointer 15709 // errorcodeptr points to error code variable 15710 // firstcuptr place to put the first required code unit 15711 // firstcuflagsptr place to put the first code unit flags 15712 // reqcuptr place to put the last required code unit 15713 // reqcuflagsptr place to put the last required code unit flags 15714 // bcptr points to current branch chain 15715 // cb contains pointers to tables etc. 15716 // lengthptr NULL during the real compile phase 15717 // points to length accumulator during pre-compile phase 15718 // 15719 // Returns: 0 There's been an error, *errorcodeptr is non-zero 15720 // +1 Success, this branch must match at least one character 15721 // -1 Success, this branch may match an empty string 15722 15723 func compile_branch(tls *libc.TLS, optionsptr uintptr, codeptr uintptr, pptrptr uintptr, errorcodeptr uintptr, firstcuptr uintptr, firstcuflagsptr uintptr, reqcuptr uintptr, reqcuflagsptr uintptr, bcptr uintptr, cb uintptr, lengthptr uintptr) int32 { /* pcre2_compile.c:5387:1: */ 15724 bp := tls.Alloc(136) 15725 defer tls.Free(136) 15726 15727 var bravalue int32 15728 var okreturn int32 15729 var group_return int32 15730 var repeat_min Tuint32_t 15731 var repeat_max Tuint32_t // To please picky compilers 15732 var greedy_default Tuint32_t 15733 var greedy_non_default Tuint32_t 15734 var repeat_type Tuint32_t 15735 var op_type Tuint32_t 15736 var options Tuint32_t // May change dynamically 15737 var firstcu Tuint32_t 15738 var reqcu Tuint32_t 15739 var zeroreqcu Tuint32_t 15740 var zerofirstcu Tuint32_t 15741 var escape Tuint32_t 15742 // var pptr uintptr at bp+96, 8 15743 15744 var meta Tuint32_t 15745 var meta_arg Tuint32_t 15746 var firstcuflags Tuint32_t 15747 var reqcuflags Tuint32_t 15748 var zeroreqcuflags Tuint32_t 15749 var zerofirstcuflags Tuint32_t 15750 var req_caseopt Tuint32_t 15751 var reqvary Tuint32_t 15752 var tempreqvary Tuint32_t 15753 var offset Tsize_t 15754 // var length_prevgroup Tsize_t at bp+120, 8 15755 15756 var code uintptr 15757 var last_code uintptr 15758 var orig_code uintptr 15759 // var tempcode uintptr at bp+88, 8 15760 15761 var previous uintptr 15762 var op_previous TPCRE2_UCHAR8 15763 var groupsetfirstcu TBOOL 15764 var had_accept TBOOL 15765 var matched_char TBOOL 15766 var previous_matched_char TBOOL 15767 var reset_caseful TBOOL 15768 var cbits uintptr 15769 // var classbits [32]Tuint8_t at bp, 32 15770 15771 // We can fish out the UTF setting once and for all into a BOOL, but we must 15772 // not do this for other options (e.g. PCRE2_EXTENDED) because they may change 15773 // dynamically as we process the pattern. 15774 15775 var utf TBOOL 15776 var ucp TBOOL 15777 15778 // Helper variables for OP_XCLASS opcode (for characters > 255). We define 15779 // class_uchardata always so that it can be passed to add_to_class() always, 15780 // though it will not be used in non-UTF 8-bit cases. This avoids having to supply 15781 // alternative calls for the different cases. 15782 15783 // var class_uchardata uintptr at bp+64, 8 15784 15785 var xclass TBOOL 15786 var class_uchardata_base uintptr 15787 var d Tuint32_t 15788 var c Tuint32_t 15789 var d1 Tuint32_t 15790 var c1 Tuint32_t 15791 var i int32 15792 var i1 int32 15793 var local_negate TBOOL 15794 var posix_class int32 15795 var taboffset int32 15796 var tabopt int32 15797 // var pbits [32]Tuint8_t at bp+32, 32 15798 15799 var i2 int32 15800 var i3 int32 15801 var ptype Tuint32_t 15802 var pdata Tuint32_t 15803 var i4 int32 15804 var i5 int32 15805 var i6 int32 15806 var i7 int32 15807 var i8 int32 15808 var i9 int32 15809 var c2 Tuint32_t 15810 var d2 Tuint32_t 15811 var i10 int32 15812 var i11 int32 15813 // var count int32 at bp+84, 4 15814 15815 // var index int32 at bp+80, 4 15816 15817 var i12 uint32 15818 var name TPCRE2_SPTR8 15819 var ng uintptr 15820 var length Tuint32_t 15821 var tc uintptr 15822 var condcount int32 15823 // var count1 int32 at bp+132, 4 15824 15825 // var index1 int32 at bp+128, 4 15826 15827 var name1 TPCRE2_SPTR8 15828 var is_dupname TBOOL 15829 var ng1 uintptr 15830 var length1 Tuint32_t 15831 var i13 uint32 15832 var pp TPCRE2_SPTR8 15833 var delimiter Tuint32_t 15834 var length2 Tuint32_t 15835 var callout_string uintptr 15836 var lastchar uintptr 15837 var delta Tsize_t 15838 var replicate int32 15839 var i14 int32 15840 var linkoffset int32 15841 var delta1 Tsize_t 15842 var i15 Tuint32_t 15843 var delta2 Tsize_t 15844 var linkoffset1 int32 15845 var oldlinkoffset int32 15846 var linkoffset2 int32 15847 var bra uintptr 15848 var i16 Tuint32_t 15849 var nlen int32 15850 var ketcode uintptr 15851 var bracode uintptr 15852 var len int32 15853 var bralink uintptr 15854 var brazeroptr uintptr 15855 var prop_type int32 15856 var prop_value int32 15857 var oldcode uintptr 15858 var repcode uint32 15859 var len1 int32 15860 var ptype1 Tuint32_t 15861 var pdata1 Tuint32_t 15862 var caseset Tuint32_t 15863 var i17 int32 15864 var xclass_has_prop TBOOL 15865 var negate_class TBOOL 15866 var should_flip_negation TBOOL 15867 var match_all_or_no_wide_chars TBOOL 15868 var possessive_quantifier TBOOL 15869 var note_group_empty TBOOL 15870 var class_has_8bitchar int32 15871 var mclength Tuint32_t 15872 var skipunits Tuint32_t 15873 // var subreqcu Tuint32_t at bp+112, 4 15874 15875 // var subfirstcu Tuint32_t at bp+104, 4 15876 15877 var groupnumber Tuint32_t 15878 var verbarglen Tuint32_t 15879 var verbculen Tuint32_t 15880 // var subreqcuflags Tuint32_t at bp+116, 4 15881 15882 // var subfirstcuflags Tuint32_t at bp+108, 4 15883 15884 var oc uintptr 15885 // var mcbuffer [8]TPCRE2_UCHAR8 at bp+72, 8 15886 bravalue = 0 15887 okreturn = -1 15888 group_return = 0 15889 repeat_min = Tuint32_t(0) 15890 repeat_max = Tuint32_t(0) 15891 options = *(*Tuint32_t)(unsafe.Pointer(optionsptr)) 15892 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) = *(*uintptr)(unsafe.Pointer(pptrptr)) 15893 offset = uint64(0) 15894 *(*Tsize_t)(unsafe.Pointer(bp + 120 /* length_prevgroup */)) = uint64(0) 15895 code = *(*uintptr)(unsafe.Pointer(codeptr)) 15896 last_code = code 15897 orig_code = code 15898 previous = uintptr(0) 15899 groupsetfirstcu = DFALSE 15900 had_accept = DFALSE 15901 matched_char = DFALSE 15902 previous_matched_char = DFALSE 15903 reset_caseful = DFALSE 15904 cbits = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fcbits 15905 utf = libc.Bool32(options&DPCRE2_UTF != Tuint32_t(0)) 15906 ucp = libc.Bool32(options&DPCRE2_UCP != Tuint32_t(0)) 15907 15908 // Set up the default and non-default settings for greediness 15909 15910 greedy_default = Tuint32_t(libc.Bool32(options&DPCRE2_UNGREEDY != Tuint32_t(0))) 15911 greedy_non_default = greedy_default ^ Tuint32_t(1) 15912 15913 // Initialize no first unit, no required unit. REQ_UNSET means "no char 15914 // matching encountered yet". It gets changed to REQ_NONE if we hit something that 15915 // matches a non-fixed first unit; reqcu just remains unset if we never find one. 15916 // 15917 // When we hit a repeat whose minimum is zero, we may have to adjust these values 15918 // to take the zero repeat into account. This is implemented by setting them to 15919 // zerofirstcu and zeroreqcu when such a repeat is encountered. The individual 15920 // item types that can be repeated set these backoff variables appropriately. 15921 15922 firstcu = libc.AssignUint32(&reqcu, libc.AssignUint32(&zerofirstcu, libc.AssignUint32(&zeroreqcu, Tuint32_t(0)))) 15923 firstcuflags = libc.AssignUint32(&reqcuflags, libc.AssignUint32(&zerofirstcuflags, libc.AssignUint32(&zeroreqcuflags, DREQ_UNSET))) 15924 15925 // The variable req_caseopt contains either the REQ_CASELESS bit or zero, 15926 // according to the current setting of the caseless flag. The REQ_CASELESS value 15927 // leaves the lower 28 bit empty. It is added into the firstcu or reqcu variables 15928 // to record the case status of the value. This is used only for ASCII characters. 15929 15930 if options&DPCRE2_CASELESS != Tuint32_t(0) { 15931 req_caseopt = DREQ_CASELESS 15932 } else { 15933 req_caseopt = uint32(0) 15934 } 15935 15936 // Switch on next META item until the end of the branch 15937 15938 __1: 15939 ; 15940 15941 // Get next META item in the pattern and its potential argument. 15942 15943 meta = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))) & 0xffff0000 15944 meta_arg = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))) & 0x0000ffff 15945 15946 // If we are in the pre-compile phase, accumulate the length used for the 15947 // previous cycle of this loop, unless the next item is a quantifier. 15948 15949 if !(lengthptr != uintptr(0)) { 15950 goto __4 15951 } 15952 15953 if !(code > (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_workspace+uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fworkspace_size)-uintptr(100)) { 15954 goto __5 15955 } /* Check for overrun */ 15956 15957 *(*int32)(unsafe.Pointer(errorcodeptr)) = func() int32 { 15958 if code >= (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_workspace+uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fworkspace_size) { 15959 return ERR52 15960 } 15961 return ERR86 15962 }() 15963 return 0 15964 __5: 15965 ; 15966 15967 // There is at least one situation where code goes backwards: this is the 15968 // case of a zero quantifier after a class (e.g. [ab]{0}). When the quantifier 15969 // is processed, the whole class is eliminated. However, it is created first, 15970 // so we have to allow memory for it. Therefore, don't ever reduce the length 15971 // at this point. 15972 15973 if !(code < last_code) { 15974 goto __6 15975 } 15976 code = last_code 15977 __6: 15978 ; 15979 15980 // If the next thing is not a quantifier, we add the length of the previous 15981 // item into the total, and reset the code pointer to the start of the 15982 // workspace. Otherwise leave the previous item available to be quantified. 15983 15984 if !(meta < DMETA_ASTERISK || meta > DMETA_MINMAX_QUERY) { 15985 goto __7 15986 } 15987 15988 if !(uint64(0x7fffffff-20)-*(*Tsize_t)(unsafe.Pointer(lengthptr)) < Tsize_t((int64(code)-int64(orig_code))/1)) { 15989 goto __8 15990 } 15991 15992 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR20 // Integer overflow 15993 return 0 15994 __8: 15995 ; 15996 *(*Tsize_t)(unsafe.Pointer(lengthptr)) += Tsize_t((int64(code) - int64(orig_code)) / 1) 15997 if !(*(*Tsize_t)(unsafe.Pointer(lengthptr)) > uint64(int32(1)<<16)) { 15998 goto __9 15999 } 16000 16001 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR20 // Pattern is too large 16002 return 0 16003 __9: 16004 ; 16005 code = orig_code 16006 __7: 16007 ; 16008 16009 // Remember where this code item starts so we can catch the "backwards" 16010 // case above next time round. 16011 16012 last_code = code 16013 __4: 16014 ; 16015 16016 // Process the next parsed pattern item. If it is not a quantifier, remember 16017 // where it starts so that it can be quantified when a quantifier follows. 16018 // Checking for the legality of quantifiers happens in parse_regex(), except for 16019 // a quantifier after an assertion that is a condition. 16020 16021 if !(meta < DMETA_ASTERISK || meta > DMETA_MINMAX_QUERY) { 16022 goto __10 16023 } 16024 16025 previous = code 16026 if !(matched_char != 0 && !(had_accept != 0)) { 16027 goto __11 16028 } 16029 okreturn = 1 16030 __11: 16031 ; 16032 __10: 16033 ; 16034 16035 previous_matched_char = matched_char 16036 matched_char = DFALSE 16037 note_group_empty = DFALSE 16038 skipunits = Tuint32_t(0) // Default value for most subgroups 16039 16040 switch meta { 16041 // =================================================================== 16042 // The branch terminates at pattern end or | or ) 16043 16044 case DMETA_END: 16045 goto __13 16046 case DMETA_ALT: 16047 goto __14 16048 case DMETA_KET: 16049 goto __15 16050 16051 // =================================================================== 16052 // Handle single-character metacharacters. In multiline mode, ^ disables 16053 // the setting of any following char as a first character. 16054 16055 case DMETA_CIRCUMFLEX: 16056 goto __16 16057 16058 case DMETA_DOLLAR: 16059 goto __17 16060 16061 // There can never be a first char if '.' is first, whatever happens about 16062 // repeats. The value of reqcu doesn't change either. 16063 16064 case DMETA_DOT: 16065 goto __18 16066 16067 // =================================================================== 16068 // Empty character classes are allowed if PCRE2_ALLOW_EMPTY_CLASS is set. 16069 // Otherwise, an initial ']' is taken as a data character. When empty classes 16070 // are allowed, [] must always fail, so generate OP_FAIL, whereas [^] must 16071 // match any character, so generate OP_ALLANY. 16072 16073 case DMETA_CLASS_EMPTY: 16074 goto __19 16075 case DMETA_CLASS_EMPTY_NOT: 16076 goto __20 16077 16078 // =================================================================== 16079 // Non-empty character class. If the included characters are all < 256, we 16080 // build a 32-byte bitmap of the permitted characters, except in the special 16081 // case where there is only one such character. For negated classes, we build 16082 // the map as usual, then invert it at the end. However, we use a different 16083 // opcode so that data characters > 255 can be handled correctly. 16084 // 16085 // If the class contains characters outside the 0-255 range, a different 16086 // opcode is compiled. It may optionally have a bit map for characters < 256, 16087 // but those above are are explicitly listed afterwards. A flag code unit 16088 // tells whether the bitmap is present, and whether this is a negated class or 16089 // not. 16090 16091 case DMETA_CLASS_NOT: 16092 goto __21 16093 case DMETA_CLASS: 16094 goto __22 // End of class processing 16095 16096 // =================================================================== 16097 // Deal with (*VERB)s. 16098 16099 // Check for open captures before ACCEPT and close those that are within 16100 // the same assertion level, also converting ACCEPT to ASSERT_ACCEPT in an 16101 // assertion. In the first pass, just accumulate the length required; 16102 // otherwise hitting (*ACCEPT) inside many nested parentheses can cause 16103 // workspace overflow. Do not set firstcu after *ACCEPT. 16104 16105 case DMETA_ACCEPT: 16106 goto __23 16107 16108 case DMETA_PRUNE: 16109 goto __24 16110 case DMETA_SKIP: 16111 goto __25 16112 // Fall through 16113 case DMETA_COMMIT: 16114 goto __26 16115 case DMETA_FAIL: 16116 goto __27 16117 16118 case DMETA_THEN: 16119 goto __28 16120 16121 // Handle verbs with arguments. Arguments can be very long, especially in 16122 // 16- and 32-bit modes, and can overflow the workspace in the first pass. 16123 // However, the argument length is constrained to be small enough to fit in 16124 // one code unit. This check happens in parse_regex(). In the first pass, 16125 // instead of putting the argument into memory, we just update the length 16126 // counter and set up an empty argument. 16127 16128 case DMETA_THEN_ARG: 16129 goto __29 16130 16131 case DMETA_PRUNE_ARG: 16132 goto __30 16133 case DMETA_SKIP_ARG: 16134 goto __31 16135 // Fall through 16136 case DMETA_MARK: 16137 goto __32 16138 case DMETA_COMMIT_ARG: 16139 goto __33 16140 16141 // =================================================================== 16142 // Handle options change. The new setting must be passed back for use in 16143 // subsequent branches. Reset the greedy defaults and the case value for 16144 // firstcu and reqcu. 16145 16146 case DMETA_OPTIONS: 16147 goto __34 16148 16149 // =================================================================== 16150 // Handle conditional subpatterns. The case of (?(Rdigits) is ambiguous 16151 // because it could be a numerical check on recursion, or a name check on a 16152 // group's being set. The pre-pass sets up META_COND_RNUMBER as a name so that 16153 // we can handle it either way. We first try for a name; if not found, process 16154 // the number. 16155 16156 case DMETA_COND_RNUMBER: 16157 goto __35 // (?(Rdigits) 16158 case DMETA_COND_NAME: 16159 goto __36 // (?(name) or (?'name') or ?(<name>) 16160 case DMETA_COND_RNAME: 16161 goto __37 16162 16163 // The DEFINE condition is always false. Its internal groups may never 16164 // be called, so matched_char must remain false, hence the jump to 16165 // GROUP_PROCESS rather than GROUP_PROCESS_NOTE_EMPTY. 16166 16167 case DMETA_COND_DEFINE: 16168 goto __38 16169 16170 // Conditional test of a group's being set. 16171 16172 case DMETA_COND_NUMBER: 16173 goto __39 16174 16175 // Test for the PCRE2 version. 16176 16177 case DMETA_COND_VERSION: 16178 goto __40 16179 16180 // The condition is an assertion, possibly preceded by a callout. 16181 16182 case DMETA_COND_ASSERT: 16183 goto __41 16184 16185 // =================================================================== 16186 // Handle all kinds of nested bracketed groups. The non-capturing, 16187 // non-conditional cases are here; others come to GROUP_PROCESS via goto. 16188 16189 case DMETA_LOOKAHEAD: 16190 goto __42 16191 16192 case DMETA_LOOKAHEAD_NA: 16193 goto __43 16194 16195 // Optimize (?!) to (*FAIL) unless it is quantified - which is a weird 16196 // thing to do, but Perl allows all assertions to be quantified, and when 16197 // they contain capturing parentheses there may be a potential use for 16198 // this feature. Not that that applies to a quantified (?!) but we allow 16199 // it for uniformity. 16200 16201 case DMETA_LOOKAHEADNOT: 16202 goto __44 16203 16204 case DMETA_LOOKBEHIND: 16205 goto __45 16206 16207 case DMETA_LOOKBEHINDNOT: 16208 goto __46 16209 16210 case DMETA_LOOKBEHIND_NA: 16211 goto __47 16212 16213 case DMETA_ATOMIC: 16214 goto __48 16215 16216 case DMETA_SCRIPT_RUN: 16217 goto __49 16218 16219 case DMETA_NOCAPTURE: 16220 goto __50 // End of nested group handling 16221 16222 // =================================================================== 16223 // Handle named backreferences and recursions. 16224 16225 case DMETA_BACKREF_BYNAME: 16226 goto __51 16227 case DMETA_RECURSE_BYNAME: 16228 goto __52 16229 16230 // =================================================================== 16231 // Handle a numerical callout. 16232 16233 case DMETA_CALLOUT_NUMBER: 16234 goto __53 16235 16236 // =================================================================== 16237 // Handle a callout with a string argument. In the pre-pass we just compute 16238 // the length without generating anything. The length in pptr[3] includes both 16239 // delimiters; in the actual compile only the first one is copied, but a 16240 // terminating zero is added. Any doubled delimiters within the string make 16241 // this an overestimate, but it is not worth bothering about. 16242 16243 case DMETA_CALLOUT_STRING: 16244 goto __54 16245 16246 // =================================================================== 16247 // Handle repetition. The different types are all sorted out in the parsing 16248 // pass. 16249 16250 case DMETA_MINMAX_PLUS: 16251 goto __55 16252 case DMETA_MINMAX_QUERY: 16253 goto __56 16254 case DMETA_MINMAX: 16255 goto __57 16256 16257 case DMETA_ASTERISK: 16258 goto __58 16259 case DMETA_ASTERISK_PLUS: 16260 goto __59 16261 case DMETA_ASTERISK_QUERY: 16262 goto __60 16263 16264 case DMETA_PLUS: 16265 goto __61 16266 case DMETA_PLUS_PLUS: 16267 goto __62 16268 case DMETA_PLUS_QUERY: 16269 goto __63 16270 16271 case DMETA_QUERY: 16272 goto __64 16273 case DMETA_QUERY_PLUS: 16274 goto __65 16275 case DMETA_QUERY_QUERY: 16276 goto __66 16277 16278 // =================================================================== 16279 // Handle a 32-bit data character with a value greater than META_END. 16280 16281 case DMETA_BIGVALUE: 16282 goto __67 16283 16284 // =============================================================== 16285 // Handle a back reference by number, which is the meta argument. The 16286 // pattern offsets for back references to group numbers less than 10 are held 16287 // in a special vector, to avoid using more than two parsed pattern elements 16288 // in 64-bit environments. We only need the offset to the first occurrence, 16289 // because if that doesn't fail, subsequent ones will also be OK. 16290 16291 case DMETA_BACKREF: 16292 goto __68 16293 16294 // =============================================================== 16295 // Handle recursion by inserting the number of the called group (which is 16296 // the meta argument) after OP_RECURSE. At the end of compiling the pattern is 16297 // scanned and these numbers are replaced by offsets within the pattern. It is 16298 // done like this to avoid problems with forward references and adjusting 16299 // offsets when groups are duplicated and moved (as discovered in previous 16300 // implementations). Note that a recursion does not have a set first 16301 // character. 16302 16303 case DMETA_RECURSE: 16304 goto __69 16305 16306 // =============================================================== 16307 // Handle capturing parentheses; the number is the meta argument. 16308 16309 case DMETA_CAPTURE: 16310 goto __70 16311 16312 // =============================================================== 16313 // Handle escape sequence items. For ones like \d, the ESC_values are 16314 // arranged to be the same as the corresponding OP_values in the default case 16315 // when PCRE2_UCP is not set (which is the only case in which they will appear 16316 // here). 16317 // 16318 // Note: \Q and \E are never seen here, as they were dealt with in 16319 // parse_pattern(). Neither are numerical back references or recursions, which 16320 // were turned into META_BACKREF or META_RECURSE items, respectively. \k and 16321 // \g, when followed by names, are turned into META_BACKREF_BYNAME or 16322 // META_RECURSE_BYNAME. 16323 16324 case DMETA_ESCAPE: 16325 goto __71 // End META_ESCAPE 16326 16327 // =================================================================== 16328 // Handle an unrecognized meta value. A parsed pattern value less than 16329 // META_END is a literal. Otherwise we have a problem. 16330 16331 default: 16332 goto __72 16333 } 16334 goto __12 16335 16336 // =================================================================== 16337 // The branch terminates at pattern end or | or ) 16338 16339 __13: 16340 __14: 16341 __15: 16342 *(*Tuint32_t)(unsafe.Pointer(firstcuptr)) = firstcu 16343 *(*Tuint32_t)(unsafe.Pointer(firstcuflagsptr)) = firstcuflags 16344 *(*Tuint32_t)(unsafe.Pointer(reqcuptr)) = reqcu 16345 *(*Tuint32_t)(unsafe.Pointer(reqcuflagsptr)) = reqcuflags 16346 *(*uintptr)(unsafe.Pointer(codeptr)) = code 16347 *(*uintptr)(unsafe.Pointer(pptrptr)) = *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) 16348 return okreturn 16349 16350 // =================================================================== 16351 // Handle single-character metacharacters. In multiline mode, ^ disables 16352 // the setting of any following char as a first character. 16353 16354 __16: 16355 if !(options&DPCRE2_MULTILINE != Tuint32_t(0)) { 16356 goto __73 16357 } 16358 16359 if !(firstcuflags == DREQ_UNSET) { 16360 goto __75 16361 } 16362 zerofirstcuflags = libc.AssignUint32(&firstcuflags, DREQ_NONE) 16363 __75: 16364 ; 16365 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_CIRCM 16366 goto __74 16367 __73: 16368 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_CIRC 16369 __74: 16370 ; 16371 goto __12 16372 16373 __17: 16374 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = func() uint8 { 16375 if options&DPCRE2_MULTILINE != Tuint32_t(0) { 16376 return OP_DOLLM 16377 } 16378 return OP_DOLL 16379 }() 16380 goto __12 16381 16382 // There can never be a first char if '.' is first, whatever happens about 16383 // repeats. The value of reqcu doesn't change either. 16384 16385 __18: 16386 matched_char = DTRUE 16387 if !(firstcuflags == DREQ_UNSET) { 16388 goto __76 16389 } 16390 firstcuflags = DREQ_NONE 16391 __76: 16392 ; 16393 zerofirstcu = firstcu 16394 zerofirstcuflags = firstcuflags 16395 zeroreqcu = reqcu 16396 zeroreqcuflags = reqcuflags 16397 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = func() uint8 { 16398 if options&DPCRE2_DOTALL != Tuint32_t(0) { 16399 return OP_ALLANY 16400 } 16401 return OP_ANY 16402 }() 16403 goto __12 16404 16405 // =================================================================== 16406 // Empty character classes are allowed if PCRE2_ALLOW_EMPTY_CLASS is set. 16407 // Otherwise, an initial ']' is taken as a data character. When empty classes 16408 // are allowed, [] must always fail, so generate OP_FAIL, whereas [^] must 16409 // match any character, so generate OP_ALLANY. 16410 16411 __19: 16412 __20: 16413 matched_char = DTRUE 16414 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = func() uint8 { 16415 if meta == DMETA_CLASS_EMPTY_NOT { 16416 return OP_ALLANY 16417 } 16418 return OP_FAIL 16419 }() 16420 if !(firstcuflags == DREQ_UNSET) { 16421 goto __77 16422 } 16423 firstcuflags = DREQ_NONE 16424 __77: 16425 ; 16426 zerofirstcu = firstcu 16427 zerofirstcuflags = firstcuflags 16428 goto __12 16429 16430 // =================================================================== 16431 // Non-empty character class. If the included characters are all < 256, we 16432 // build a 32-byte bitmap of the permitted characters, except in the special 16433 // case where there is only one such character. For negated classes, we build 16434 // the map as usual, then invert it at the end. However, we use a different 16435 // opcode so that data characters > 255 can be handled correctly. 16436 // 16437 // If the class contains characters outside the 0-255 range, a different 16438 // opcode is compiled. It may optionally have a bit map for characters < 256, 16439 // but those above are are explicitly listed afterwards. A flag code unit 16440 // tells whether the bitmap is present, and whether this is a negated class or 16441 // not. 16442 16443 __21: 16444 __22: 16445 matched_char = DTRUE 16446 negate_class = libc.Bool32(meta == DMETA_CLASS_NOT) 16447 16448 // We can optimize the case of a single character in a class by generating 16449 // OP_CHAR or OP_CHARI if it's positive, or OP_NOT or OP_NOTI if it's 16450 // negative. In the negative case there can be no first char if this item is 16451 // first, whatever repeat count may follow. In the case of reqcu, save the 16452 // previous value for reinstating. 16453 16454 // NOTE: at present this optimization is not effective if the only 16455 // character in a class in 32-bit, non-UCP mode has its top bit set. 16456 16457 if !(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 1*4)) < DMETA_END && *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4)) == DMETA_CLASS_END) { 16458 goto __78 16459 } 16460 16461 c = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) + 1*4)) 16462 16463 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 * uintptr(2) // Move on to class end 16464 if !(meta == DMETA_CLASS) { 16465 goto __79 16466 } /* A positive one-char class can be */ 16467 // handled as a normal literal character. 16468 meta = c // Set up the character 16469 goto NORMAL_CHAR_SET 16470 __79: 16471 ; 16472 16473 // Handle a negative one-character class 16474 16475 zeroreqcu = reqcu 16476 zeroreqcuflags = reqcuflags 16477 if !(firstcuflags == DREQ_UNSET) { 16478 goto __80 16479 } 16480 firstcuflags = DREQ_NONE 16481 __80: 16482 ; 16483 zerofirstcu = firstcu 16484 zerofirstcuflags = firstcuflags 16485 16486 // For caseless UTF or UCP mode, check whether this character has more 16487 // than one other case. If so, generate a special OP_NOTPROP item instead of 16488 // OP_NOTI. 16489 16490 if !((utf != 0 || ucp != 0) && options&DPCRE2_CASELESS != Tuint32_t(0) && libc.AssignUint32(&d, Tuint32_t((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12)).Fcaseset)) != Tuint32_t(0)) { 16491 goto __81 16492 } 16493 16494 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_NOTPROP 16495 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(DPT_CLIST) 16496 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(d) 16497 goto __12 // We are finished with this class 16498 __81: 16499 ; 16500 // Char has only one other case, or UCP not available 16501 16502 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = func() uint8 { 16503 if options&DPCRE2_CASELESS != Tuint32_t(0) { 16504 return OP_NOTI 16505 } 16506 return OP_NOT 16507 }() 16508 code += func() uintptr { 16509 if utf != 0 && c > Tuint32_t(DMAX_UTF_SINGLE_CU) { 16510 return uintptr(X_pcre2_ord2utf_8(tls, c, code)) 16511 } 16512 return uintptr(func() int32 { *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(c); return 1 }()) 16513 }() 16514 goto __12 // We are finished with this class 16515 __78: 16516 ; // End of 1-char optimization 16517 16518 // Handle character classes that contain more than just one literal 16519 // character. If there are exactly two characters in a positive class, see if 16520 // they are case partners. This can be optimized to generate a caseless single 16521 // character match (which also sets first/required code units if relevant). 16522 16523 if !(meta == DMETA_CLASS && *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 1*4)) < DMETA_END && *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4)) < DMETA_END && *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 3*4)) == DMETA_CLASS_END) { 16524 goto __82 16525 } 16526 16527 c1 = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) + 1*4)) 16528 16529 if !(int32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c1)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c1)%DUCD_BLOCK_SIZE])*12)).Fcaseset) == 0) { 16530 goto __83 16531 } 16532 16533 if !((utf != 0 || ucp != 0) && c1 > Tuint32_t(127)) { 16534 goto __84 16535 } 16536 d1 = Tuint32_t(int32(c1) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c1)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c1)%DUCD_BLOCK_SIZE])*12)).Fother_case) 16537 goto __85 16538 __84: 16539 16540 d1 = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Ffcc + uintptr(c1)))) 16541 __85: 16542 ; 16543 16544 if !(c1 != d1 && *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4)) == d1) { 16545 goto __86 16546 } 16547 16548 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 * uintptr(3) // Move on to class end 16549 meta = c1 16550 if !(options&DPCRE2_CASELESS == Tuint32_t(0)) { 16551 goto __87 16552 } 16553 16554 reset_caseful = DTRUE 16555 options = options | DPCRE2_CASELESS 16556 req_caseopt = DREQ_CASELESS 16557 __87: 16558 ; 16559 goto CLASS_CASELESS_CHAR 16560 __86: 16561 ; 16562 __83: 16563 ; 16564 __82: 16565 ; 16566 16567 // If a non-extended class contains a negative special such as \S, we need 16568 // to flip the negation flag at the end, so that support for characters > 255 16569 // works correctly (they are all included in the class). An extended class may 16570 // need to insert specific matching or non-matching code for wide characters. 16571 // 16572 16573 should_flip_negation = libc.AssignInt32(&match_all_or_no_wide_chars, DFALSE) 16574 16575 // Extended class (xclass) will be used when characters > 255 16576 // might match. 16577 16578 xclass = DFALSE 16579 *(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)) = code + uintptr(DLINK_SIZE) + uintptr(2) // For XCLASS items 16580 class_uchardata_base = *(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)) // Save the start 16581 16582 // For optimization purposes, we track some properties of the class: 16583 // class_has_8bitchar will be non-zero if the class contains at least one 16584 // character with a code point less than 256; xclass_has_prop will be TRUE if 16585 // Unicode property checks are present in the class. 16586 16587 class_has_8bitchar = 0 16588 xclass_has_prop = DFALSE 16589 16590 // Initialize the 256-bit (32-byte) bit map to all zeros. We build the map 16591 // in a temporary bit of memory, in case the class contains fewer than two 16592 // 8-bit characters because in that case the compiled code doesn't use the bit 16593 // map. 16594 16595 libc.Xmemset(tls, bp, 0, uint64(32)*uint64(unsafe.Sizeof(Tuint8_t(0)))) 16596 16597 // Process items until META_CLASS_END is reached. 16598 16599 __88: 16600 if !(libc.AssignUint32(&meta, *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 96)), 4)))) != DMETA_CLASS_END) { 16601 goto __89 16602 } 16603 16604 // Handle POSIX classes such as [:alpha:] etc. 16605 16606 if !(meta == DMETA_POSIX || meta == DMETA_POSIX_NEG) { 16607 goto __90 16608 } 16609 16610 local_negate = libc.Bool32(meta == DMETA_POSIX_NEG) 16611 posix_class = int32(*(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 96)), 4)))) 16612 16613 should_flip_negation = local_negate // Note negative special 16614 16615 // If matching is caseless, upper and lower are converted to alpha. 16616 // This relies on the fact that the class table starts with alpha, 16617 // lower, upper as the first 3 entries. 16618 16619 if !(options&DPCRE2_CASELESS != Tuint32_t(0) && posix_class <= 2) { 16620 goto __91 16621 } 16622 posix_class = 0 16623 __91: 16624 ; 16625 16626 // When PCRE2_UCP is set, some of the POSIX classes are converted to 16627 // different escape sequences that use Unicode properties \p or \P. 16628 // Others that are not available via \p or \P have to generate 16629 // XCL_PROP/XCL_NOTPROP directly, which is done here. 16630 16631 if !(options&DPCRE2_UCP != Tuint32_t(0)) { 16632 goto __92 16633 } 16634 switch posix_class { 16635 case DPC_GRAPH: 16636 goto __94 16637 case DPC_PRINT: 16638 goto __95 16639 case DPC_PUNCT: 16640 goto __96 16641 16642 // For the other POSIX classes (ascii, xdigit) we are going to 16643 // fall through to the non-UCP case and build a bit map for 16644 // characters with code points less than 256. However, if we are in 16645 // a negated POSIX class, characters with code points greater than 16646 // 255 must either all match or all not match, depending on whether 16647 // the whole class is not or is negated. For example, for 16648 // [[:^ascii:]... they must all match, whereas for [^[:^xdigit:]... 16649 // they must not. 16650 // 16651 // In the special case where there are no xclass items, this is 16652 // automatically handled by the use of OP_CLASS or OP_NCLASS, but an 16653 // explicit range is needed for OP_XCLASS. Setting a flag here 16654 // causes the range to be generated later when it is known that 16655 // OP_XCLASS is required. In the 8-bit library this is relevant only in 16656 // utf mode, since no wide characters can exist otherwise. 16657 16658 default: 16659 goto __97 16660 } 16661 goto __93 16662 16663 __94: 16664 __95: 16665 __96: 16666 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)), 1))) = func() uint8 { 16667 if local_negate != 0 { 16668 return uint8(DXCL_NOTPROP) 16669 } 16670 return uint8(DXCL_PROP) 16671 }() 16672 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)), 1))) = func() uint8 { 16673 if posix_class == DPC_GRAPH { 16674 return uint8(DPT_PXGRAPH) 16675 } 16676 return func() uint8 { 16677 if posix_class == DPC_PRINT { 16678 return uint8(DPT_PXPRINT) 16679 } 16680 return uint8(DPT_PXPUNCT) 16681 }() 16682 }() 16683 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)), 1))) = TPCRE2_UCHAR8(0) 16684 xclass_has_prop = DTRUE 16685 goto CONTINUE_CLASS 16686 16687 // For the other POSIX classes (ascii, xdigit) we are going to 16688 // fall through to the non-UCP case and build a bit map for 16689 // characters with code points less than 256. However, if we are in 16690 // a negated POSIX class, characters with code points greater than 16691 // 255 must either all match or all not match, depending on whether 16692 // the whole class is not or is negated. For example, for 16693 // [[:^ascii:]... they must all match, whereas for [^[:^xdigit:]... 16694 // they must not. 16695 // 16696 // In the special case where there are no xclass items, this is 16697 // automatically handled by the use of OP_CLASS or OP_NCLASS, but an 16698 // explicit range is needed for OP_XCLASS. Setting a flag here 16699 // causes the range to be generated later when it is known that 16700 // OP_XCLASS is required. In the 8-bit library this is relevant only in 16701 // utf mode, since no wide characters can exist otherwise. 16702 16703 __97: 16704 if !(utf != 0) { 16705 goto __98 16706 } 16707 match_all_or_no_wide_chars = match_all_or_no_wide_chars | local_negate 16708 __98: 16709 ; 16710 goto __93 16711 __93: 16712 ; 16713 __92: 16714 ; 16715 16716 // In the non-UCP case, or when UCP makes no difference, we build the 16717 // bit map for the POSIX class in a chunk of local store because we may 16718 // be adding and subtracting from it, and we don't want to subtract bits 16719 // that may be in the main map already. At the end we or the result into 16720 // the bit map that is being built. 16721 16722 posix_class = posix_class * 3 16723 16724 // Copy in the first table (always present) 16725 16726 libc.Xmemcpy(tls, bp+32, cbits+uintptr(posix_class_maps[posix_class]), 16727 uint64(32)*uint64(unsafe.Sizeof(Tuint8_t(0)))) 16728 16729 // If there is a second table, add or remove it as required. 16730 16731 taboffset = posix_class_maps[posix_class+1] 16732 tabopt = posix_class_maps[posix_class+2] 16733 16734 if !(taboffset >= 0) { 16735 goto __99 16736 } 16737 16738 if !(tabopt >= 0) { 16739 goto __100 16740 } 16741 { 16742 i = 0 16743 __102: 16744 if !(i < 32) { 16745 goto __104 16746 } 16747 *(*Tuint8_t)(unsafe.Pointer(bp + 32 + uintptr(i))) |= Tuint8_t(int32(*(*Tuint8_t)(unsafe.Pointer(cbits + uintptr(i+taboffset))))) 16748 goto __103 16749 __103: 16750 i++ 16751 goto __102 16752 goto __104 16753 __104: 16754 } 16755 goto __101 16756 __100: 16757 { 16758 i1 = 0 16759 __105: 16760 if !(i1 < 32) { 16761 goto __107 16762 } 16763 *(*Tuint8_t)(unsafe.Pointer(bp + 32 + uintptr(i1))) &= Tuint8_t(^int32(*(*Tuint8_t)(unsafe.Pointer(cbits + uintptr(i1+taboffset))))) 16764 goto __106 16765 __106: 16766 i1++ 16767 goto __105 16768 goto __107 16769 __107: 16770 } 16771 __101: 16772 ; 16773 __99: 16774 ; 16775 16776 // Now see if we need to remove any special characters. An option 16777 // value of 1 removes vertical space and 2 removes underscore. 16778 16779 if !(tabopt < 0) { 16780 goto __108 16781 } 16782 tabopt = -tabopt 16783 __108: 16784 ; 16785 if !(tabopt == 1) { 16786 goto __109 16787 } 16788 *(*Tuint8_t)(unsafe.Pointer(bp + 32 + 1)) &= libc.Uint8FromInt32(libc.CplInt32(0x3c)) 16789 goto __110 16790 __109: 16791 if !(tabopt == 2) { 16792 goto __111 16793 } 16794 *(*Tuint8_t)(unsafe.Pointer(bp + 32 + 11)) &= Tuint8_t(0x7f) 16795 __111: 16796 ; 16797 __110: 16798 ; 16799 16800 // Add the POSIX table or its complement into the main table that is 16801 // being built and we are done. 16802 16803 if !(local_negate != 0) { 16804 goto __112 16805 } 16806 { 16807 i2 = 0 16808 __114: 16809 if !(i2 < 32) { 16810 goto __116 16811 } 16812 *(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i2))) |= Tuint8_t(int32(Tuint8_t(^int32(*(*Tuint8_t)(unsafe.Pointer(bp + 32 + uintptr(i2))))))) 16813 goto __115 16814 __115: 16815 i2++ 16816 goto __114 16817 goto __116 16818 __116: 16819 } 16820 goto __113 16821 __112: 16822 { 16823 i3 = 0 16824 __117: 16825 if !(i3 < 32) { 16826 goto __119 16827 } 16828 *(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i3))) |= Tuint8_t(int32(*(*Tuint8_t)(unsafe.Pointer(bp + 32 + uintptr(i3))))) 16829 goto __118 16830 __118: 16831 i3++ 16832 goto __117 16833 goto __119 16834 __119: 16835 } 16836 __113: 16837 ; 16838 16839 // Every class contains at least one < 256 character. 16840 16841 class_has_8bitchar = 1 16842 goto CONTINUE_CLASS // End of POSIX handling 16843 __90: 16844 ; 16845 16846 // Other than POSIX classes, the only items we should encounter are 16847 // \d-type escapes and literal characters (possibly as ranges). 16848 16849 if !(meta == DMETA_BIGVALUE) { 16850 goto __120 16851 } 16852 16853 meta = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 96)), 4))) 16854 goto CLASS_LITERAL 16855 __120: 16856 ; 16857 16858 // Any other non-literal must be an escape 16859 16860 if !(meta >= DMETA_END) { 16861 goto __121 16862 } 16863 16864 if !(meta&0xffff0000 != DMETA_ESCAPE) { 16865 goto __123 16866 } 16867 16868 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR89 // Internal error - unrecognized. 16869 return 0 16870 __123: 16871 ; 16872 escape = meta & 0x0000ffff 16873 16874 // Every class contains at least one < 256 character. 16875 16876 class_has_8bitchar++ 16877 16878 switch escape { 16879 case ESC_d: 16880 goto __125 16881 16882 case ESC_D: 16883 goto __126 16884 16885 case ESC_w: 16886 goto __127 16887 16888 case ESC_W: 16889 goto __128 16890 16891 // Perl 5.004 onwards omitted VT from \s, but restored it at Perl 16892 // 5.18. Before PCRE 8.34, we had to preserve the VT bit if it was 16893 // previously set by something earlier in the character class. 16894 // Luckily, the value of CHAR_VT is 0x0b in both ASCII and EBCDIC, so 16895 // we could just adjust the appropriate bit. From PCRE 8.34 we no 16896 // longer treat \s and \S specially. 16897 16898 case ESC_s: 16899 goto __129 16900 16901 case ESC_S: 16902 goto __130 16903 16904 // When adding the horizontal or vertical space lists to a class, or 16905 // their complements, disable PCRE2_CASELESS, because it justs wastes 16906 // time, and in the "not-x" UTF cases can create unwanted duplicates in 16907 // the XCLASS list (provoked by characters that have more than one other 16908 // case and by both cases being in the same "not-x" sublist). 16909 16910 case ESC_h: 16911 goto __131 16912 16913 case ESC_H: 16914 goto __132 16915 16916 case ESC_v: 16917 goto __133 16918 16919 case ESC_V: 16920 goto __134 16921 16922 // If Unicode is not supported, \P and \p are not allowed and are 16923 // faulted at parse time, so will never appear here. 16924 16925 case ESC_p: 16926 goto __135 16927 case ESC_P: 16928 goto __136 16929 } 16930 goto __124 16931 16932 __125: 16933 { 16934 i4 = 0 16935 __137: 16936 if !(i4 < 32) { 16937 goto __139 16938 } 16939 *(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i4))) |= Tuint8_t(int32(*(*Tuint8_t)(unsafe.Pointer(cbits + uintptr(i4+Dcbit_digit))))) 16940 goto __138 16941 __138: 16942 i4++ 16943 goto __137 16944 goto __139 16945 __139: 16946 } 16947 goto __124 16948 16949 __126: 16950 should_flip_negation = DTRUE 16951 { 16952 i5 = 0 16953 __140: 16954 if !(i5 < 32) { 16955 goto __142 16956 } 16957 *(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i5))) |= Tuint8_t(int32(Tuint8_t(^int32(*(*Tuint8_t)(unsafe.Pointer(cbits + uintptr(i5+Dcbit_digit))))))) 16958 goto __141 16959 __141: 16960 i5++ 16961 goto __140 16962 goto __142 16963 __142: 16964 } 16965 goto __124 16966 16967 __127: 16968 { 16969 i6 = 0 16970 __143: 16971 if !(i6 < 32) { 16972 goto __145 16973 } 16974 *(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i6))) |= Tuint8_t(int32(*(*Tuint8_t)(unsafe.Pointer(cbits + uintptr(i6+Dcbit_word))))) 16975 goto __144 16976 __144: 16977 i6++ 16978 goto __143 16979 goto __145 16980 __145: 16981 } 16982 goto __124 16983 16984 __128: 16985 should_flip_negation = DTRUE 16986 { 16987 i7 = 0 16988 __146: 16989 if !(i7 < 32) { 16990 goto __148 16991 } 16992 *(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i7))) |= Tuint8_t(int32(Tuint8_t(^int32(*(*Tuint8_t)(unsafe.Pointer(cbits + uintptr(i7+Dcbit_word))))))) 16993 goto __147 16994 __147: 16995 i7++ 16996 goto __146 16997 goto __148 16998 __148: 16999 } 17000 goto __124 17001 17002 // Perl 5.004 onwards omitted VT from \s, but restored it at Perl 17003 // 5.18. Before PCRE 8.34, we had to preserve the VT bit if it was 17004 // previously set by something earlier in the character class. 17005 // Luckily, the value of CHAR_VT is 0x0b in both ASCII and EBCDIC, so 17006 // we could just adjust the appropriate bit. From PCRE 8.34 we no 17007 // longer treat \s and \S specially. 17008 17009 __129: 17010 { 17011 i8 = 0 17012 __149: 17013 if !(i8 < 32) { 17014 goto __151 17015 } 17016 *(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i8))) |= Tuint8_t(int32(*(*Tuint8_t)(unsafe.Pointer(cbits + uintptr(i8+Dcbit_space))))) 17017 goto __150 17018 __150: 17019 i8++ 17020 goto __149 17021 goto __151 17022 __151: 17023 } 17024 goto __124 17025 17026 __130: 17027 should_flip_negation = DTRUE 17028 { 17029 i9 = 0 17030 __152: 17031 if !(i9 < 32) { 17032 goto __154 17033 } 17034 *(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i9))) |= Tuint8_t(int32(Tuint8_t(^int32(*(*Tuint8_t)(unsafe.Pointer(cbits + uintptr(i9+Dcbit_space))))))) 17035 goto __153 17036 __153: 17037 i9++ 17038 goto __152 17039 goto __154 17040 __154: 17041 } 17042 goto __124 17043 17044 // When adding the horizontal or vertical space lists to a class, or 17045 // their complements, disable PCRE2_CASELESS, because it justs wastes 17046 // time, and in the "not-x" UTF cases can create unwanted duplicates in 17047 // the XCLASS list (provoked by characters that have more than one other 17048 // case and by both cases being in the same "not-x" sublist). 17049 17050 __131: 17051 add_list_to_class(tls, bp, bp+64, 17052 options&libc.CplUint32(DPCRE2_CASELESS), cb, uintptr(unsafe.Pointer(&X_pcre2_hspace_list_8)), DNOTACHAR) 17053 goto __124 17054 17055 __132: 17056 add_not_list_to_class(tls, bp, bp+64, 17057 options&libc.CplUint32(DPCRE2_CASELESS), cb, uintptr(unsafe.Pointer(&X_pcre2_hspace_list_8))) 17058 goto __124 17059 17060 __133: 17061 add_list_to_class(tls, bp, bp+64, 17062 options&libc.CplUint32(DPCRE2_CASELESS), cb, uintptr(unsafe.Pointer(&X_pcre2_vspace_list_8)), DNOTACHAR) 17063 goto __124 17064 17065 __134: 17066 add_not_list_to_class(tls, bp, bp+64, 17067 options&libc.CplUint32(DPCRE2_CASELESS), cb, uintptr(unsafe.Pointer(&X_pcre2_vspace_list_8))) 17068 goto __124 17069 17070 // If Unicode is not supported, \P and \p are not allowed and are 17071 // faulted at parse time, so will never appear here. 17072 17073 __135: 17074 __136: 17075 17076 ptype = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 96)), 4))) >> 16 17077 pdata = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))) & Tuint32_t(0xffff) 17078 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)), 1))) = func() uint8 { 17079 if escape == ESC_p { 17080 return uint8(DXCL_PROP) 17081 } 17082 return uint8(DXCL_NOTPROP) 17083 }() 17084 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)), 1))) = TPCRE2_UCHAR8(ptype) 17085 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)), 1))) = TPCRE2_UCHAR8(pdata) 17086 xclass_has_prop = DTRUE 17087 class_has_8bitchar-- // Undo! 17088 17089 goto __124 17090 __124: 17091 ; 17092 17093 goto CONTINUE_CLASS 17094 goto __122 17095 __121: 17096 17097 CLASS_LITERAL: 17098 c2 = libc.AssignUint32(&d2, meta) 17099 17100 // Remember if \r or \n were explicitly used 17101 17102 if !(c2 == Tuint32_t('\015') || c2 == Tuint32_t('\012')) { 17103 goto __155 17104 } 17105 *(*Tuint32_t)(unsafe.Pointer(cb + 208)) |= Tuint32_t(DPCRE2_HASCRORLF) 17106 __155: 17107 ; 17108 17109 // Process a character range 17110 17111 if !(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 1*4)) == DMETA_RANGE_LITERAL || *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 1*4)) == DMETA_RANGE_ESCAPED) { 17112 goto __156 17113 } 17114 17115 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 * uintptr(2) 17116 d2 = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)))) 17117 if !(d2 == DMETA_BIGVALUE) { 17118 goto __157 17119 } 17120 d2 = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 96)), 4))) 17121 __157: 17122 ; 17123 17124 // Remember an explicit \r or \n, and add the range to the class. 17125 17126 if !(d2 == Tuint32_t('\015') || d2 == Tuint32_t('\012')) { 17127 goto __158 17128 } 17129 *(*Tuint32_t)(unsafe.Pointer(cb + 208)) |= Tuint32_t(DPCRE2_HASCRORLF) 17130 __158: 17131 ; 17132 17133 // In an EBCDIC environment, Perl treats alphabetic ranges specially 17134 // because there are holes in the encoding, and simply using the range 17135 // A-Z (for example) would include the characters in the holes. This 17136 // applies only to literal ranges; [\xC1-\xE9] is different to [A-Z]. 17137 17138 // Not an EBCDIC special range 17139 17140 class_has_8bitchar = int32(uint32(class_has_8bitchar) + add_to_class(tls, bp, bp+64, options, cb, c2, d2)) 17141 goto CONTINUE_CLASS // Go get the next char in the class 17142 __156: 17143 ; // End of range handling 17144 17145 // Handle a single character. 17146 17147 class_has_8bitchar = int32(uint32(class_has_8bitchar) + add_to_class(tls, bp, bp+64, options, cb, meta, meta)) 17148 __122: 17149 ; 17150 17151 // Continue to the next item in the class. 17152 17153 CONTINUE_CLASS: 17154 17155 // If any wide characters or Unicode properties have been encountered, 17156 // set xclass = TRUE. Then, in the pre-compile phase, accumulate the length 17157 // of the extra data and reset the pointer. This is so that very large 17158 // classes that contain a zillion wide characters or Unicode property tests 17159 // do not overwrite the workspace (which is on the stack). 17160 17161 if !(*(*uintptr)(unsafe.Pointer(bp + 64)) > class_uchardata_base) { 17162 goto __159 17163 } 17164 17165 xclass = DTRUE 17166 if !(lengthptr != uintptr(0)) { 17167 goto __160 17168 } 17169 17170 *(*Tsize_t)(unsafe.Pointer(lengthptr)) += Tsize_t((int64(*(*uintptr)(unsafe.Pointer(bp + 64))) - int64(class_uchardata_base)) / 1) 17171 *(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)) = class_uchardata_base 17172 __160: 17173 ; 17174 __159: 17175 ; 17176 17177 goto __88 // Needed to avoid error when not supporting wide chars 17178 goto __88 17179 __89: 17180 ; // End of main class-processing loop 17181 17182 // If this class is the first thing in the branch, there can be no first 17183 // char setting, whatever the repeat count. Any reqcu setting must remain 17184 // unchanged after any kind of repeat. 17185 17186 if !(firstcuflags == DREQ_UNSET) { 17187 goto __161 17188 } 17189 firstcuflags = DREQ_NONE 17190 __161: 17191 ; 17192 zerofirstcu = firstcu 17193 zerofirstcuflags = firstcuflags 17194 zeroreqcu = reqcu 17195 zeroreqcuflags = reqcuflags 17196 17197 // If there are characters with values > 255, or Unicode property settings 17198 // (\p or \P), we have to compile an extended class, with its own opcode, 17199 // unless there were no property settings and there was a negated special such 17200 // as \S in the class, and PCRE2_UCP is not set, because in that case all 17201 // characters > 255 are in or not in the class, so any that were explicitly 17202 // given as well can be ignored. 17203 // 17204 // In the UCP case, if certain negated POSIX classes ([:^ascii:] or 17205 // [^:xdigit:]) were present in a class, we either have to match or not match 17206 // all wide characters (depending on whether the whole class is or is not 17207 // negated). This requirement is indicated by match_all_or_no_wide_chars being 17208 // true. We do this by including an explicit range, which works in both cases. 17209 // This applies only in UTF and 16-bit and 32-bit non-UTF modes, since there 17210 // cannot be any wide characters in 8-bit non-UTF mode. 17211 // 17212 // When there *are* properties in a positive UTF-8 or any 16-bit or 32_bit 17213 // class where \S etc is present without PCRE2_UCP, causing an extended class 17214 // to be compiled, we make sure that all characters > 255 are included by 17215 // forcing match_all_or_no_wide_chars to be true. 17216 // 17217 // If, when generating an xclass, there are no characters < 256, we can omit 17218 // the bitmap in the actual compiled code. 17219 17220 if !(xclass != 0 && (options&DPCRE2_UCP != Tuint32_t(0) || xclass_has_prop != 0 || !(should_flip_negation != 0))) { 17221 goto __162 17222 } 17223 17224 if !(match_all_or_no_wide_chars != 0 || utf != 0 && should_flip_negation != 0 && !(negate_class != 0) && options&DPCRE2_UCP == Tuint32_t(0)) { 17225 goto __163 17226 } 17227 17228 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)), 1))) = TPCRE2_UCHAR8(DXCL_RANGE) 17229 if !(utf != 0) { 17230 goto __164 17231 } /* Will always be utf in the 8-bit library */ 17232 17233 *(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)) += uintptr(X_pcre2_ord2utf_8(tls, uint32(0x100), *(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)))) 17234 *(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)) += uintptr(X_pcre2_ord2utf_8(tls, uint32(DMAX_UTF_CODE_POINT), *(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)))) 17235 goto __165 17236 __164: /* Can only happen for the 16-bit & 32-bit libraries */ 17237 17238 ; 17239 __165: 17240 ; 17241 __163: 17242 ; 17243 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)), 1))) = TPCRE2_UCHAR8(DXCL_END) // Marks the end of extra data 17244 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_XCLASS 17245 code += uintptr(DLINK_SIZE) 17246 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = func() uint8 { 17247 if negate_class != 0 { 17248 return uint8(DXCL_NOT) 17249 } 17250 return uint8(0) 17251 }() 17252 if !(xclass_has_prop != 0) { 17253 goto __166 17254 } 17255 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) |= TPCRE2_UCHAR8(DXCL_HASPROP) 17256 __166: 17257 ; 17258 17259 // If the map is required, move up the extra data to make room for it; 17260 // otherwise just move the code pointer to the end of the extra data. 17261 17262 if !(class_has_8bitchar > 0) { 17263 goto __167 17264 } 17265 17266 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) |= TPCRE2_UCHAR8(DXCL_MAP) 17267 libc.Xmemmove(tls, code+uintptr(uint64(32)/uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0)))), code, 17268 uint64((int64(*(*uintptr)(unsafe.Pointer(bp + 64)))-int64(code))/1*int64(DPCRE2_CODE_UNIT_WIDTH/8))) 17269 if !(negate_class != 0 && !(xclass_has_prop != 0)) { 17270 goto __169 17271 } 17272 17273 // Using 255 ^ instead of ~ avoids clang sanitize warning. 17274 { 17275 i10 = 0 17276 __170: 17277 if !(i10 < 32) { 17278 goto __172 17279 } 17280 *(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i10))) = Tuint8_t(255 ^ int32(*(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i10))))) 17281 goto __171 17282 __171: 17283 i10++ 17284 goto __170 17285 goto __172 17286 __172: 17287 } 17288 __169: 17289 ; 17290 libc.Xmemcpy(tls, code, bp, uint64(32)) 17291 code = *(*uintptr)(unsafe.Pointer(bp + 64)) + uintptr(uint64(32)/uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0)))) 17292 goto __168 17293 __167: 17294 code = *(*uintptr)(unsafe.Pointer(bp + 64 /* class_uchardata */)) 17295 __168: 17296 ; 17297 17298 // Now fill in the complete length of the item 17299 17300 *(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 1)) = TPCRE2_UCHAR8(int32((int64(code)-int64(previous))/1) >> 8) 17301 *(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 2)) = TPCRE2_UCHAR8(int32((int64(code)-int64(previous))/1) & 255) 17302 goto __12 // End of class handling 17303 __162: 17304 ; 17305 17306 // If there are no characters > 255, or they are all to be included or 17307 // excluded, set the opcode to OP_CLASS or OP_NCLASS, depending on whether the 17308 // whole class was negated and whether there were negative specials such as \S 17309 // (non-UCP) in the class. Then copy the 32-byte map into the code vector, 17310 // negating it if necessary. 17311 17312 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = func() uint8 { 17313 if negate_class == should_flip_negation { 17314 return OP_CLASS 17315 } 17316 return OP_NCLASS 17317 }() 17318 if !(lengthptr == uintptr(0)) { 17319 goto __173 17320 } /* Save time in the pre-compile phase */ 17321 17322 if !(negate_class != 0) { 17323 goto __174 17324 } 17325 17326 // Using 255 ^ instead of ~ avoids clang sanitize warning. 17327 { 17328 i11 = 0 17329 __175: 17330 if !(i11 < 32) { 17331 goto __177 17332 } 17333 *(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i11))) = Tuint8_t(255 ^ int32(*(*Tuint8_t)(unsafe.Pointer(bp + uintptr(i11))))) 17334 goto __176 17335 __176: 17336 i11++ 17337 goto __175 17338 goto __177 17339 __177: 17340 } 17341 __174: 17342 ; 17343 libc.Xmemcpy(tls, code, bp, uint64(32)) 17344 __173: 17345 ; 17346 code += uintptr(uint64(32) / uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0)))) 17347 goto __12 // End of class processing 17348 17349 // =================================================================== 17350 // Deal with (*VERB)s. 17351 17352 // Check for open captures before ACCEPT and close those that are within 17353 // the same assertion level, also converting ACCEPT to ASSERT_ACCEPT in an 17354 // assertion. In the first pass, just accumulate the length required; 17355 // otherwise hitting (*ACCEPT) inside many nested parentheses can cause 17356 // workspace overflow. Do not set firstcu after *ACCEPT. 17357 17358 __23: 17359 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fhad_accept = libc.AssignInt32(&had_accept, DTRUE) 17360 oc = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fopen_caps 17361 __178: 17362 if !(oc != uintptr(0) && int32((*Topen_capitem)(unsafe.Pointer(oc)).Fassert_depth) >= int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fassert_depth)) { 17363 goto __180 17364 } 17365 17366 if !(lengthptr != uintptr(0)) { 17367 goto __181 17368 } 17369 17370 *(*Tsize_t)(unsafe.Pointer(lengthptr)) += uint64(1*(DPCRE2_CODE_UNIT_WIDTH/8) + DIMM2_SIZE) 17371 goto __182 17372 __181: 17373 17374 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_CLOSE 17375 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(int32((*Topen_capitem)(unsafe.Pointer(oc)).Fnumber) >> 8) 17376 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(int32((*Topen_capitem)(unsafe.Pointer(oc)).Fnumber) & 255) 17377 code += uintptr(DIMM2_SIZE) 17378 __182: 17379 ; 17380 goto __179 17381 __179: 17382 oc = (*Topen_capitem)(unsafe.Pointer(oc)).Fnext 17383 goto __178 17384 goto __180 17385 __180: 17386 ; 17387 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = func() uint8 { 17388 if int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fassert_depth) > 0 { 17389 return OP_ASSERT_ACCEPT 17390 } 17391 return OP_ACCEPT 17392 }() 17393 if !(firstcuflags == DREQ_UNSET) { 17394 goto __183 17395 } 17396 firstcuflags = DREQ_NONE 17397 __183: 17398 ; 17399 goto __12 17400 17401 __24: 17402 __25: 17403 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fhad_pruneorskip = DTRUE 17404 // Fall through 17405 __26: 17406 __27: 17407 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(verbops[(meta-DMETA_MARK)>>16]) 17408 goto __12 17409 17410 __28: 17411 *(*Tuint32_t)(unsafe.Pointer(cb + 208)) |= Tuint32_t(DPCRE2_HASTHEN) 17412 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_THEN 17413 goto __12 17414 17415 // Handle verbs with arguments. Arguments can be very long, especially in 17416 // 16- and 32-bit modes, and can overflow the workspace in the first pass. 17417 // However, the argument length is constrained to be small enough to fit in 17418 // one code unit. This check happens in parse_regex(). In the first pass, 17419 // instead of putting the argument into memory, we just update the length 17420 // counter and set up an empty argument. 17421 17422 __29: 17423 *(*Tuint32_t)(unsafe.Pointer(cb + 208)) |= Tuint32_t(DPCRE2_HASTHEN) 17424 goto VERB_ARG 17425 17426 __30: 17427 __31: 17428 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fhad_pruneorskip = DTRUE 17429 // Fall through 17430 __32: 17431 __33: 17432 VERB_ARG: 17433 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(verbops[(meta-DMETA_MARK)>>16]) 17434 // The length is in characters. 17435 verbarglen = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 96)), 4))) 17436 verbculen = Tuint32_t(0) 17437 *(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */)) = libc.PostIncUintptr(&code, 1) 17438 { 17439 i17 = 0 17440 __184: 17441 if !(i17 < int32(verbarglen)) { 17442 goto __186 17443 } 17444 17445 meta = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 96)), 4))) 17446 if !(utf != 0) { 17447 goto __187 17448 } 17449 mclength = X_pcre2_ord2utf_8(tls, meta, bp+72) 17450 goto __188 17451 __187: 17452 17453 mclength = Tuint32_t(1) 17454 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 72)) = TPCRE2_UCHAR8(meta) 17455 __188: 17456 ; 17457 if !(lengthptr != uintptr(0)) { 17458 goto __189 17459 } 17460 *(*Tsize_t)(unsafe.Pointer(lengthptr)) += Tsize_t(mclength) 17461 goto __190 17462 __189: 17463 17464 libc.Xmemcpy(tls, code, bp+72, uint64(mclength*Tuint32_t(DPCRE2_CODE_UNIT_WIDTH/8))) 17465 code += uintptr(mclength) 17466 verbculen = verbculen + mclength 17467 __190: 17468 ; 17469 goto __185 17470 __185: 17471 i17++ 17472 goto __184 17473 goto __186 17474 __186: 17475 } 17476 17477 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */)))) = TPCRE2_UCHAR8(verbculen) // Fill in the code unit length 17478 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(0) // Terminating zero 17479 goto __12 17480 17481 // =================================================================== 17482 // Handle options change. The new setting must be passed back for use in 17483 // subsequent branches. Reset the greedy defaults and the case value for 17484 // firstcu and reqcu. 17485 17486 __34: 17487 *(*Tuint32_t)(unsafe.Pointer(optionsptr)) = libc.AssignUint32(&options, *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 96)), 4)))) 17488 greedy_default = Tuint32_t(libc.Bool32(options&DPCRE2_UNGREEDY != Tuint32_t(0))) 17489 greedy_non_default = greedy_default ^ Tuint32_t(1) 17490 if options&DPCRE2_CASELESS != Tuint32_t(0) { 17491 req_caseopt = DREQ_CASELESS 17492 } else { 17493 req_caseopt = uint32(0) 17494 } 17495 goto __12 17496 17497 // =================================================================== 17498 // Handle conditional subpatterns. The case of (?(Rdigits) is ambiguous 17499 // because it could be a numerical check on recursion, or a name check on a 17500 // group's being set. The pre-pass sets up META_COND_RNUMBER as a name so that 17501 // we can handle it either way. We first try for a name; if not found, process 17502 // the number. 17503 17504 __35: // (?(Rdigits) 17505 __36: // (?(name) or (?'name') or ?(<name>) 17506 __37: // (?(R&name) - test for recursion 17507 bravalue = OP_COND 17508 17509 ng = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_groups 17510 length = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 96)), 4))) 17511 17512 offset = Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 1*4)))<<32 | Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4))) 17513 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 * uintptr(2) 17514 17515 name = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern + uintptr(offset) 17516 17517 // In the first pass, the names generated in the pre-pass are available, 17518 // but the main name table has not yet been created. Scan the list of names 17519 // generated in the pre-pass in order to get a number and whether or not 17520 // this name is duplicated. If it is not duplicated, we can handle it as a 17521 // numerical group. 17522 17523 i12 = uint32(0) 17524 __191: 17525 if !(i12 < uint32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found)) { 17526 goto __193 17527 } 17528 17529 if !(length == Tuint32_t((*Tnamed_group_8)(unsafe.Pointer(ng)).Flength) && X_pcre2_strncmp_8(tls, name, (*Tnamed_group_8)(unsafe.Pointer(ng)).Fname, uint64(length)) == 0) { 17530 goto __194 17531 } 17532 17533 if !!(int32((*Tnamed_group_8)(unsafe.Pointer(ng)).Fisdup) != 0) { 17534 goto __195 17535 } 17536 17537 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) = func() uint8 { 17538 if meta == DMETA_COND_RNAME { 17539 return OP_RREF 17540 } 17541 return OP_CREF 17542 }() 17543 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 4)) = TPCRE2_UCHAR8((*Tnamed_group_8)(unsafe.Pointer(ng)).Fnumber >> 8) 17544 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)) = TPCRE2_UCHAR8((*Tnamed_group_8)(unsafe.Pointer(ng)).Fnumber & Tuint32_t(255)) 17545 if !((*Tnamed_group_8)(unsafe.Pointer(ng)).Fnumber > (*Tcompile_block_8)(unsafe.Pointer(cb)).Ftop_backref) { 17546 goto __196 17547 } 17548 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ftop_backref = (*Tnamed_group_8)(unsafe.Pointer(ng)).Fnumber 17549 __196: 17550 ; 17551 skipunits = Tuint32_t(1 + DIMM2_SIZE) 17552 goto GROUP_PROCESS_NOTE_EMPTY 17553 __195: 17554 ; 17555 goto __193 // Found a duplicated name 17556 __194: 17557 ; 17558 goto __192 17559 __192: 17560 i12++ 17561 ng += 16 17562 goto __191 17563 goto __193 17564 __193: 17565 ; 17566 17567 // If the name was not found we have a bad reference, unless we are 17568 // dealing with R<digits>, which is treated as a recursion test by number. 17569 // 17570 17571 if !(i12 >= uint32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found)) { 17572 goto __197 17573 } 17574 17575 groupnumber = Tuint32_t(0) 17576 if !(meta == DMETA_COND_RNUMBER) { 17577 goto __198 17578 } 17579 17580 i12 = uint32(1) 17581 __199: 17582 if !(i12 < length) { 17583 goto __201 17584 } 17585 17586 groupnumber = groupnumber*Tuint32_t(10) + Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(name + uintptr(i12)))) - Tuint32_t('\060') 17587 if !(groupnumber > DMAX_GROUP_NUMBER) { 17588 goto __202 17589 } 17590 17591 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR61 17592 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = offset + Tsize_t(i12) 17593 return 0 17594 __202: 17595 ; 17596 goto __200 17597 __200: 17598 i12++ 17599 goto __199 17600 goto __201 17601 __201: 17602 ; 17603 __198: 17604 ; 17605 17606 if !(meta != DMETA_COND_RNUMBER || groupnumber > (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) { 17607 goto __203 17608 } 17609 17610 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR15 17611 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = offset 17612 return 0 17613 __203: 17614 ; 17615 17616 // (?Rdigits) treated as a recursion reference by number. A value of 17617 // zero (which is the result of both (?R) and (?R0)) means "any", and is 17618 // translated into RREF_ANY (which is 0xffff). 17619 17620 if !(groupnumber == Tuint32_t(0)) { 17621 goto __204 17622 } 17623 groupnumber = Tuint32_t(DRREF_ANY) 17624 __204: 17625 ; 17626 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) = OP_RREF 17627 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 4)) = TPCRE2_UCHAR8(groupnumber >> 8) 17628 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)) = TPCRE2_UCHAR8(groupnumber & Tuint32_t(255)) 17629 skipunits = Tuint32_t(1 + DIMM2_SIZE) 17630 goto GROUP_PROCESS_NOTE_EMPTY 17631 __197: 17632 ; 17633 17634 // A duplicated name was found. Note that if an R<digits> name is found 17635 // (META_COND_RNUMBER), it is a reference test, not a recursion test. 17636 17637 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) = func() uint8 { 17638 if meta == DMETA_COND_RNAME { 17639 return OP_RREF 17640 } 17641 return OP_CREF 17642 }() 17643 17644 // We have a duplicated name. In the compile pass we have to search the 17645 // main table in order to get the index and count values. 17646 17647 *(*int32)(unsafe.Pointer(bp + 84 /* count */)) = 0 // Values for first pass (avoids compiler warning) 17648 *(*int32)(unsafe.Pointer(bp + 80 /* index */)) = 0 17649 if !(lengthptr == uintptr(0) && !(find_dupname_details(tls, name, length, bp+80, 17650 bp+84, errorcodeptr, cb) != 0)) { 17651 goto __205 17652 } 17653 return 0 17654 __205: 17655 ; 17656 17657 // Add one to the opcode to change CREF/RREF into DNCREF/DNRREF and 17658 // insert appropriate data values. 17659 17660 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))++ 17661 skipunits = Tuint32_t(1 + 2*DIMM2_SIZE) 17662 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 4)) = TPCRE2_UCHAR8(*(*int32)(unsafe.Pointer(bp + 80)) >> 8) 17663 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)) = TPCRE2_UCHAR8(*(*int32)(unsafe.Pointer(bp + 80)) & 255) 17664 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 6)) = TPCRE2_UCHAR8(*(*int32)(unsafe.Pointer(bp + 84)) >> 8) 17665 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 7)) = TPCRE2_UCHAR8(*(*int32)(unsafe.Pointer(bp + 84)) & 255) 17666 17667 goto GROUP_PROCESS_NOTE_EMPTY 17668 17669 // The DEFINE condition is always false. Its internal groups may never 17670 // be called, so matched_char must remain false, hence the jump to 17671 // GROUP_PROCESS rather than GROUP_PROCESS_NOTE_EMPTY. 17672 17673 __38: 17674 bravalue = OP_COND 17675 offset = Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 1*4)))<<32 | Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4))) 17676 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 * uintptr(2) 17677 17678 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) = OP_DEFINE 17679 skipunits = Tuint32_t(1) 17680 goto GROUP_PROCESS 17681 17682 // Conditional test of a group's being set. 17683 17684 __39: 17685 bravalue = OP_COND 17686 offset = Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 1*4)))<<32 | Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4))) 17687 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 * uintptr(2) 17688 17689 groupnumber = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 96)), 4))) 17690 if !(groupnumber > (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) { 17691 goto __206 17692 } 17693 17694 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR15 17695 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = offset 17696 return 0 17697 __206: 17698 ; 17699 if !(groupnumber > (*Tcompile_block_8)(unsafe.Pointer(cb)).Ftop_backref) { 17700 goto __207 17701 } 17702 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ftop_backref = groupnumber 17703 __207: 17704 ; 17705 offset = offset - uint64(2) // Point at initial ( for too many branches error 17706 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) = OP_CREF 17707 skipunits = Tuint32_t(1 + DIMM2_SIZE) 17708 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 4)) = TPCRE2_UCHAR8(groupnumber >> 8) 17709 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)) = TPCRE2_UCHAR8(groupnumber & Tuint32_t(255)) 17710 goto GROUP_PROCESS_NOTE_EMPTY 17711 17712 // Test for the PCRE2 version. 17713 17714 __40: 17715 bravalue = OP_COND 17716 if !(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 1*4)) > Tuint32_t(0)) { 17717 goto __208 17718 } 17719 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) = func() uint8 { 17720 if Tuint32_t(DPCRE2_MAJOR) > *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4)) || Tuint32_t(DPCRE2_MAJOR) == *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4)) && Tuint32_t(DPCRE2_MINOR) >= *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 3*4)) { 17721 return OP_TRUE 17722 } 17723 return OP_FALSE 17724 }() 17725 goto __209 17726 __208: 17727 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) = func() uint8 { 17728 if Tuint32_t(DPCRE2_MAJOR) == *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4)) && Tuint32_t(DPCRE2_MINOR) == *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 3*4)) { 17729 return OP_TRUE 17730 } 17731 return OP_FALSE 17732 }() 17733 __209: 17734 ; 17735 skipunits = Tuint32_t(1) 17736 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 * uintptr(3) 17737 goto GROUP_PROCESS_NOTE_EMPTY 17738 17739 // The condition is an assertion, possibly preceded by a callout. 17740 17741 __41: 17742 bravalue = OP_COND 17743 goto GROUP_PROCESS_NOTE_EMPTY 17744 17745 // =================================================================== 17746 // Handle all kinds of nested bracketed groups. The non-capturing, 17747 // non-conditional cases are here; others come to GROUP_PROCESS via goto. 17748 17749 __42: 17750 bravalue = OP_ASSERT 17751 *(*Tuint16_t)(unsafe.Pointer(cb + 182)) += Tuint16_t(1) 17752 goto GROUP_PROCESS 17753 17754 __43: 17755 bravalue = OP_ASSERT_NA 17756 *(*Tuint16_t)(unsafe.Pointer(cb + 182)) += Tuint16_t(1) 17757 goto GROUP_PROCESS 17758 17759 // Optimize (?!) to (*FAIL) unless it is quantified - which is a weird 17760 // thing to do, but Perl allows all assertions to be quantified, and when 17761 // they contain capturing parentheses there may be a potential use for 17762 // this feature. Not that that applies to a quantified (?!) but we allow 17763 // it for uniformity. 17764 17765 __44: 17766 if !(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 1*4)) == DMETA_KET && (*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4)) < DMETA_ASTERISK || *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4)) > DMETA_MINMAX_QUERY)) { 17767 goto __210 17768 } 17769 17770 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_FAIL 17771 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 17772 goto __211 17773 __210: 17774 17775 bravalue = OP_ASSERT_NOT 17776 *(*Tuint16_t)(unsafe.Pointer(cb + 182)) += Tuint16_t(1) 17777 goto GROUP_PROCESS 17778 __211: 17779 ; 17780 goto __12 17781 17782 __45: 17783 bravalue = OP_ASSERTBACK 17784 *(*Tuint16_t)(unsafe.Pointer(cb + 182)) += Tuint16_t(1) 17785 goto GROUP_PROCESS 17786 17787 __46: 17788 bravalue = OP_ASSERTBACK_NOT 17789 *(*Tuint16_t)(unsafe.Pointer(cb + 182)) += Tuint16_t(1) 17790 goto GROUP_PROCESS 17791 17792 __47: 17793 bravalue = OP_ASSERTBACK_NA 17794 *(*Tuint16_t)(unsafe.Pointer(cb + 182)) += Tuint16_t(1) 17795 goto GROUP_PROCESS 17796 17797 __48: 17798 bravalue = OP_ONCE 17799 goto GROUP_PROCESS_NOTE_EMPTY 17800 17801 __49: 17802 bravalue = OP_SCRIPT_RUN 17803 goto GROUP_PROCESS_NOTE_EMPTY 17804 17805 __50: 17806 bravalue = OP_BRA 17807 // Fall through 17808 17809 // Process nested bracketed regex. The nesting depth is maintained for the 17810 // benefit of the stackguard function. The test for too deep nesting is now 17811 // done in parse_regex(). Assertion and DEFINE groups come to GROUP_PROCESS; 17812 // others come to GROUP_PROCESS_NOTE_EMPTY, to indicate that we need to take 17813 // note of whether or not they may match an empty string. 17814 17815 GROUP_PROCESS_NOTE_EMPTY: 17816 note_group_empty = DTRUE 17817 17818 GROUP_PROCESS: 17819 *(*Tuint16_t)(unsafe.Pointer(cb + 180)) += Tuint16_t(1) 17820 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(bravalue) 17821 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 17822 *(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */)) = code 17823 tempreqvary = (*Tcompile_block_8)(unsafe.Pointer(cb)).Freq_varyopt // Save value before group 17824 *(*Tsize_t)(unsafe.Pointer(bp + 120 /* length_prevgroup */)) = uint64(0) // Initialize for pre-compile phase 17825 17826 if !(libc.AssignInt32(&group_return, compile_regex(tls, 17827 options, 17828 bp+88, 17829 bp+96, 17830 errorcodeptr, 17831 skipunits, 17832 bp+104, 17833 bp+108, 17834 bp+112, 17835 bp+116, 17836 bcptr, 17837 cb, 17838 func() uintptr { 17839 if lengthptr == uintptr(0) { 17840 return uintptr(0) 17841 } 17842 return bp + 120 17843 }())) == 0) { 17844 goto __212 17845 } 17846 return 0 17847 __212: 17848 ; // Error 17849 17850 *(*Tuint16_t)(unsafe.Pointer(cb + 180)) -= Tuint16_t(1) 17851 17852 // If that was a non-conditional significant group (not an assertion, not a 17853 // DEFINE) that matches at least one character, then the current item matches 17854 // a character. Conditionals are handled below. 17855 17856 if !(note_group_empty != 0 && bravalue != OP_COND && group_return > 0) { 17857 goto __213 17858 } 17859 matched_char = DTRUE 17860 __213: 17861 ; 17862 17863 // If we've just compiled an assertion, pop the assert depth. 17864 17865 if !(bravalue >= OP_ASSERT && bravalue <= OP_ASSERTBACK_NA) { 17866 goto __214 17867 } 17868 *(*Tuint16_t)(unsafe.Pointer(cb + 182)) -= Tuint16_t(1) 17869 __214: 17870 ; 17871 17872 // At the end of compiling, code is still pointing to the start of the 17873 // group, while tempcode has been updated to point past the end of the group. 17874 // The parsed pattern pointer (pptr) is on the closing META_KET. 17875 // 17876 // If this is a conditional bracket, check that there are no more than 17877 // two branches in the group, or just one if it's a DEFINE group. We do this 17878 // in the real compile phase, not in the pre-pass, where the whole group may 17879 // not be available. 17880 17881 if !(bravalue == OP_COND && lengthptr == uintptr(0)) { 17882 goto __215 17883 } 17884 17885 tc = code 17886 condcount = 0 17887 17888 __216: 17889 condcount++ 17890 tc += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tc + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tc + 2))))) 17891 goto __217 17892 __217: 17893 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tc))) != OP_KET { 17894 goto __216 17895 } 17896 goto __218 17897 __218: 17898 ; 17899 17900 // A DEFINE group is never obeyed inline (the "condition" is always 17901 // false). It must have only one branch. Having checked this, change the 17902 // opcode to OP_FALSE. 17903 17904 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))) == OP_DEFINE) { 17905 goto __219 17906 } 17907 17908 if !(condcount > 1) { 17909 goto __221 17910 } 17911 17912 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = offset 17913 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR54 17914 return 0 17915 __221: 17916 ; 17917 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) = OP_FALSE 17918 bravalue = OP_DEFINE // A flag to suppress char handling below 17919 goto __220 17920 __219: 17921 17922 if !(condcount > 2) { 17923 goto __222 17924 } 17925 17926 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = offset 17927 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR27 17928 return 0 17929 __222: 17930 ; 17931 if !(condcount == 1) { 17932 goto __223 17933 } 17934 *(*Tuint32_t)(unsafe.Pointer(bp + 108 /* subfirstcuflags */)) = libc.AssignPtrUint32(bp+116 /* subreqcuflags */, DREQ_NONE) 17935 goto __224 17936 __223: 17937 if !(group_return > 0) { 17938 goto __225 17939 } 17940 matched_char = DTRUE 17941 __225: 17942 ; 17943 __224: 17944 ; 17945 __220: 17946 ; 17947 __215: 17948 ; 17949 17950 // In the pre-compile phase, update the length by the length of the group, 17951 // less the brackets at either end. Then reduce the compiled code to just a 17952 // set of non-capturing brackets so that it doesn't use much memory if it is 17953 // duplicated by a quantifier. 17954 17955 if !(lengthptr != uintptr(0)) { 17956 goto __226 17957 } 17958 17959 if !(uint64(0x7fffffff-20)-*(*Tsize_t)(unsafe.Pointer(lengthptr)) < *(*Tsize_t)(unsafe.Pointer(bp + 120))-uint64(2)-uint64(2*DLINK_SIZE)) { 17960 goto __227 17961 } 17962 17963 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR20 17964 return 0 17965 __227: 17966 ; 17967 *(*Tsize_t)(unsafe.Pointer(lengthptr)) += *(*Tsize_t)(unsafe.Pointer(bp + 120)) - uint64(2) - uint64(2*DLINK_SIZE) 17968 code++ // This already contains bravalue 17969 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(int32(1+DLINK_SIZE) >> 8) 17970 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8((1 + DLINK_SIZE) & 255) 17971 code += uintptr(DLINK_SIZE) 17972 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_KET 17973 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(int32(1+DLINK_SIZE) >> 8) 17974 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8((1 + DLINK_SIZE) & 255) 17975 code += uintptr(DLINK_SIZE) 17976 goto __12 // No need to waste time with special character handling 17977 __226: 17978 ; 17979 17980 // Otherwise update the main code pointer to the end of the group. 17981 17982 code = *(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */)) 17983 17984 // For a DEFINE group, required and first character settings are not 17985 // relevant. 17986 17987 if !(bravalue == OP_DEFINE) { 17988 goto __228 17989 } 17990 goto __12 17991 __228: 17992 ; 17993 17994 // Handle updating of the required and first code units for other types of 17995 // group. Update for normal brackets of all kinds, and conditions with two 17996 // branches (see code above). If the bracket is followed by a quantifier with 17997 // zero repeat, we have to back off. Hence the definition of zeroreqcu and 17998 // zerofirstcu outside the main loop so that they can be accessed for the back 17999 // off. 18000 18001 zeroreqcu = reqcu 18002 zeroreqcuflags = reqcuflags 18003 zerofirstcu = firstcu 18004 zerofirstcuflags = firstcuflags 18005 groupsetfirstcu = DFALSE 18006 18007 if !(bravalue >= OP_ONCE) { 18008 goto __229 18009 } /* Not an assertion */ 18010 18011 // If we have not yet set a firstcu in this branch, take it from the 18012 // subpattern, remembering that it was set here so that a repeat of more 18013 // than one can replicate it as reqcu if necessary. If the subpattern has 18014 // no firstcu, set "none" for the whole branch. In both cases, a zero 18015 // repeat forces firstcu to "none". 18016 18017 if !(firstcuflags == DREQ_UNSET && *(*Tuint32_t)(unsafe.Pointer(bp + 108)) != DREQ_UNSET) { 18018 goto __231 18019 } 18020 18021 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 108)) < DREQ_NONE) { 18022 goto __233 18023 } 18024 18025 firstcu = *(*Tuint32_t)(unsafe.Pointer(bp + 104 /* subfirstcu */)) 18026 firstcuflags = *(*Tuint32_t)(unsafe.Pointer(bp + 108 /* subfirstcuflags */)) 18027 groupsetfirstcu = DTRUE 18028 goto __234 18029 __233: 18030 firstcuflags = DREQ_NONE 18031 __234: 18032 ; 18033 zerofirstcuflags = DREQ_NONE 18034 goto __232 18035 __231: 18036 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 108)) < DREQ_NONE && *(*Tuint32_t)(unsafe.Pointer(bp + 116)) >= DREQ_NONE) { 18037 goto __235 18038 } 18039 18040 *(*Tuint32_t)(unsafe.Pointer(bp + 112 /* subreqcu */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 104 /* subfirstcu */)) 18041 *(*Tuint32_t)(unsafe.Pointer(bp + 116 /* subreqcuflags */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 108)) | tempreqvary 18042 __235: 18043 ; 18044 __232: 18045 ; 18046 18047 // If the subpattern set a required code unit (or set a first code unit 18048 // that isn't really the first code unit - see above), set it. 18049 18050 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 116)) < DREQ_NONE) { 18051 goto __236 18052 } 18053 18054 reqcu = *(*Tuint32_t)(unsafe.Pointer(bp + 112 /* subreqcu */)) 18055 reqcuflags = *(*Tuint32_t)(unsafe.Pointer(bp + 116 /* subreqcuflags */)) 18056 __236: 18057 ; 18058 goto __230 18059 __229: 18060 if !((bravalue == OP_ASSERT || bravalue == OP_ASSERT_NA) && *(*Tuint32_t)(unsafe.Pointer(bp + 116)) < DREQ_NONE && *(*Tuint32_t)(unsafe.Pointer(bp + 108)) < DREQ_NONE) { 18061 goto __237 18062 } 18063 18064 reqcu = *(*Tuint32_t)(unsafe.Pointer(bp + 112 /* subreqcu */)) 18065 reqcuflags = *(*Tuint32_t)(unsafe.Pointer(bp + 116 /* subreqcuflags */)) 18066 __237: 18067 ; 18068 __230: 18069 ; 18070 18071 goto __12 // End of nested group handling 18072 18073 // =================================================================== 18074 // Handle named backreferences and recursions. 18075 18076 __51: 18077 __52: 18078 18079 is_dupname = DFALSE 18080 ng1 = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_groups 18081 length1 = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 96)), 4))) 18082 18083 offset = Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 1*4)))<<32 | Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4))) 18084 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 * uintptr(2) 18085 18086 name1 = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern + uintptr(offset) 18087 18088 // In the first pass, the names generated in the pre-pass are available, 18089 // but the main name table has not yet been created. Scan the list of names 18090 // generated in the pre-pass in order to get a number and whether or not 18091 // this name is duplicated. 18092 18093 groupnumber = Tuint32_t(0) 18094 { 18095 i13 = uint32(0) 18096 __238: 18097 if !(i13 < uint32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found)) { 18098 goto __240 18099 } 18100 18101 if !(length1 == Tuint32_t((*Tnamed_group_8)(unsafe.Pointer(ng1)).Flength) && X_pcre2_strncmp_8(tls, name1, (*Tnamed_group_8)(unsafe.Pointer(ng1)).Fname, uint64(length1)) == 0) { 18102 goto __241 18103 } 18104 18105 is_dupname = TBOOL((*Tnamed_group_8)(unsafe.Pointer(ng1)).Fisdup) 18106 groupnumber = (*Tnamed_group_8)(unsafe.Pointer(ng1)).Fnumber 18107 18108 // For a recursion, that's all that is needed. We can now go to 18109 // the code that handles numerical recursion, applying it to the first 18110 // group with the given name. 18111 18112 if !(meta == DMETA_RECURSE_BYNAME) { 18113 goto __242 18114 } 18115 18116 meta_arg = groupnumber 18117 goto HANDLE_NUMERICAL_RECURSION 18118 __242: 18119 ; 18120 18121 // For a back reference, update the back reference map and the 18122 // maximum back reference. 18123 18124 *(*Tuint32_t)(unsafe.Pointer(cb + 252)) |= func() uint32 { 18125 if groupnumber < Tuint32_t(32) { 18126 return uint32(1) << groupnumber 18127 } 18128 return uint32(1) 18129 }() 18130 if !(groupnumber > (*Tcompile_block_8)(unsafe.Pointer(cb)).Ftop_backref) { 18131 goto __243 18132 } 18133 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ftop_backref = groupnumber 18134 __243: 18135 ; 18136 __241: 18137 ; 18138 goto __239 18139 __239: 18140 i13++ 18141 ng1 += 16 18142 goto __238 18143 goto __240 18144 __240: 18145 } 18146 18147 // If the name was not found we have a bad reference. 18148 18149 if !(groupnumber == Tuint32_t(0)) { 18150 goto __244 18151 } 18152 18153 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR15 18154 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = offset 18155 return 0 18156 __244: 18157 ; 18158 18159 // If a back reference name is not duplicated, we can handle it as 18160 // a numerical reference. 18161 18162 if !!(is_dupname != 0) { 18163 goto __245 18164 } 18165 18166 meta_arg = groupnumber 18167 goto HANDLE_SINGLE_REFERENCE 18168 __245: 18169 ; 18170 18171 // If a back reference name is duplicated, we generate a different 18172 // opcode to a numerical back reference. In the second pass we must 18173 // search for the index and count in the final name table. 18174 18175 *(*int32)(unsafe.Pointer(bp + 132 /* count1 */)) = 0 // Values for first pass (avoids compiler warning) 18176 *(*int32)(unsafe.Pointer(bp + 128 /* index1 */)) = 0 18177 if !(lengthptr == uintptr(0) && !(find_dupname_details(tls, name1, length1, bp+128, 18178 bp+132, errorcodeptr, cb) != 0)) { 18179 goto __246 18180 } 18181 return 0 18182 __246: 18183 ; 18184 18185 if !(firstcuflags == DREQ_UNSET) { 18186 goto __247 18187 } 18188 firstcuflags = DREQ_NONE 18189 __247: 18190 ; 18191 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = func() uint8 { 18192 if options&DPCRE2_CASELESS != Tuint32_t(0) { 18193 return OP_DNREFI 18194 } 18195 return OP_DNREF 18196 }() 18197 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(*(*int32)(unsafe.Pointer(bp + 128)) >> 8) 18198 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(*(*int32)(unsafe.Pointer(bp + 128)) & 255) 18199 code += uintptr(DIMM2_SIZE) 18200 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(*(*int32)(unsafe.Pointer(bp + 132)) >> 8) 18201 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(*(*int32)(unsafe.Pointer(bp + 132)) & 255) 18202 code += uintptr(DIMM2_SIZE) 18203 18204 goto __12 18205 18206 // =================================================================== 18207 // Handle a numerical callout. 18208 18209 __53: 18210 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = OP_CALLOUT 18211 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 1*4)) >> 8) 18212 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)) = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 1*4)) & Tuint32_t(255)) // Offset to next pattern item 18213 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4)) >> 8) 18214 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 4)) = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4)) & Tuint32_t(255)) // Length of next pattern item 18215 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)) = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) + 3*4))) 18216 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 * uintptr(3) 18217 code += uintptr(X_pcre2_OP_lengths_8[OP_CALLOUT]) 18218 goto __12 18219 18220 // =================================================================== 18221 // Handle a callout with a string argument. In the pre-pass we just compute 18222 // the length without generating anything. The length in pptr[3] includes both 18223 // delimiters; in the actual compile only the first one is copied, but a 18224 // terminating zero is added. Any doubled delimiters within the string make 18225 // this an overestimate, but it is not worth bothering about. 18226 18227 __54: 18228 if !(lengthptr != uintptr(0)) { 18229 goto __248 18230 } 18231 18232 *(*Tsize_t)(unsafe.Pointer(lengthptr)) += Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 3*4)) + Tuint32_t(1+4*DLINK_SIZE)) 18233 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 * uintptr(3) 18234 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 * uintptr(2) 18235 goto __249 18236 __248: 18237 18238 length2 = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) + 3*4)) 18239 callout_string = code + uintptr(1+4*DLINK_SIZE) 18240 18241 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = OP_CALLOUT_STR 18242 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 1*4)) >> 8) 18243 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)) = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 1*4)) & Tuint32_t(255)) // Offset to next pattern item 18244 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4)) >> 8) 18245 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 4)) = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4)) & Tuint32_t(255)) // Length of next pattern item 18246 18247 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 * uintptr(3) 18248 offset = Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 1*4)))<<32 | Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4))) 18249 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 * uintptr(2) 18250 // Offset to string in pattern 18251 pp = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern + uintptr(offset) 18252 delimiter = Tuint32_t(libc.AssignPtrUint8(libc.PostIncUintptr(&callout_string, 1), *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&pp, 1))))) 18253 if !(delimiter == Tuint32_t('\173')) { 18254 goto __250 18255 } 18256 delimiter = Tuint32_t('\175') 18257 __250: 18258 ; 18259 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 7)) = TPCRE2_UCHAR8(int32(offset+uint64(1)) >> 8) 18260 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 8)) = TPCRE2_UCHAR8(int32(offset+uint64(1)) & 255) // One after delimiter 18261 18262 // The syntax of the pattern was checked in the parsing scan. The length 18263 // includes both delimiters, but we have passed the opening one just above, 18264 // so we reduce length before testing it. The test is for > 1 because we do 18265 // not want to copy the final delimiter. This also ensures that pp[1] is 18266 // accessible. 18267 18268 __251: 18269 if !(libc.PreDecUint32(&length2, 1) > Tuint32_t(1)) { 18270 goto __252 18271 } 18272 18273 if !(Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pp))) == delimiter && Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pp + 1))) == delimiter) { 18274 goto __253 18275 } 18276 18277 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&callout_string, 1))) = TPCRE2_UCHAR8(delimiter) 18278 pp += uintptr(2) 18279 length2-- 18280 goto __254 18281 __253: 18282 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&callout_string, 1))) = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&pp, 1))) 18283 __254: 18284 ; 18285 goto __251 18286 __252: 18287 ; 18288 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&callout_string, 1))) = TPCRE2_UCHAR8(0) 18289 18290 // Set the length of the entire item, the advance to its end. 18291 18292 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)) = TPCRE2_UCHAR8(int32((int64(callout_string)-int64(code))/1) >> 8) 18293 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 6)) = TPCRE2_UCHAR8(int32((int64(callout_string)-int64(code))/1) & 255) 18294 code = callout_string 18295 __249: 18296 ; 18297 goto __12 18298 18299 // =================================================================== 18300 // Handle repetition. The different types are all sorted out in the parsing 18301 // pass. 18302 18303 __55: 18304 __56: 18305 __57: 18306 repeat_min = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 96)), 4))) 18307 repeat_max = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 96)), 4))) 18308 goto REPEAT 18309 18310 __58: 18311 __59: 18312 __60: 18313 repeat_min = Tuint32_t(0) 18314 repeat_max = DMAX_REPEAT_COUNT + uint32(1) 18315 goto REPEAT 18316 18317 __61: 18318 __62: 18319 __63: 18320 repeat_min = Tuint32_t(1) 18321 repeat_max = DMAX_REPEAT_COUNT + uint32(1) 18322 goto REPEAT 18323 18324 __64: 18325 __65: 18326 __66: 18327 repeat_min = Tuint32_t(0) 18328 repeat_max = Tuint32_t(1) 18329 18330 REPEAT: 18331 if !(previous_matched_char != 0 && repeat_min > Tuint32_t(0)) { 18332 goto __255 18333 } 18334 matched_char = DTRUE 18335 __255: 18336 ; 18337 18338 // Remember whether this is a variable length repeat, and default to 18339 // single-char opcodes. 18340 18341 if repeat_min == repeat_max { 18342 reqvary = uint32(0) 18343 } else { 18344 reqvary = DREQ_VARY 18345 } 18346 op_type = Tuint32_t(0) 18347 18348 // Adjust first and required code units for a zero repeat. 18349 18350 if !(repeat_min == Tuint32_t(0)) { 18351 goto __256 18352 } 18353 18354 firstcu = zerofirstcu 18355 firstcuflags = zerofirstcuflags 18356 reqcu = zeroreqcu 18357 reqcuflags = zeroreqcuflags 18358 __256: 18359 ; 18360 18361 // Note the greediness and possessiveness. 18362 18363 switch meta { 18364 case DMETA_MINMAX_PLUS: 18365 goto __258 18366 case DMETA_ASTERISK_PLUS: 18367 goto __259 18368 case DMETA_PLUS_PLUS: 18369 goto __260 18370 case DMETA_QUERY_PLUS: 18371 goto __261 18372 18373 case DMETA_MINMAX_QUERY: 18374 goto __262 18375 case DMETA_ASTERISK_QUERY: 18376 goto __263 18377 case DMETA_PLUS_QUERY: 18378 goto __264 18379 case DMETA_QUERY_QUERY: 18380 goto __265 18381 18382 default: 18383 goto __266 18384 } 18385 goto __257 18386 18387 __258: 18388 __259: 18389 __260: 18390 __261: 18391 repeat_type = Tuint32_t(0) // Force greedy 18392 possessive_quantifier = DTRUE 18393 goto __257 18394 18395 __262: 18396 __263: 18397 __264: 18398 __265: 18399 repeat_type = greedy_non_default 18400 possessive_quantifier = DFALSE 18401 goto __257 18402 18403 __266: 18404 repeat_type = greedy_default 18405 possessive_quantifier = DFALSE 18406 goto __257 18407 __257: 18408 ; 18409 18410 // Save start of previous item, in case we have to move it up in order to 18411 // insert something before it, and remember what it was. 18412 18413 *(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */)) = previous 18414 op_previous = *(*TPCRE2_UCHAR8)(unsafe.Pointer(previous)) 18415 18416 // Now handle repetition for the different types of item. If the repeat 18417 // minimum and the repeat maximum are both 1, we can ignore the quantifier for 18418 // non-parenthesized items, as they have only one alternative. For anything in 18419 // parentheses, we must not ignore if {1} is possessive. 18420 18421 switch int32(op_previous) { 18422 // If previous was a character or negated character match, abolish the 18423 // item and generate a repeat item instead. If a char item has a minimum of 18424 // more than one, ensure that it is set in reqcu - it might not be if a 18425 // sequence such as x{3} is the first thing in a branch because the x will 18426 // have gone into firstcu instead. 18427 18428 case OP_CHAR: 18429 goto __268 18430 case OP_CHARI: 18431 goto __269 18432 case OP_NOT: 18433 goto __270 18434 case OP_NOTI: 18435 goto __271 // Code shared with single character types 18436 18437 // If previous was a character class or a back reference, we put the 18438 // repeat stuff after it, but just skip the item if the repeat was {0,0}. 18439 18440 case OP_XCLASS: 18441 goto __272 18442 case OP_CLASS: 18443 goto __273 18444 case OP_NCLASS: 18445 goto __274 18446 case OP_REF: 18447 goto __275 18448 case OP_REFI: 18449 goto __276 18450 case OP_DNREF: 18451 goto __277 18452 case OP_DNREFI: 18453 goto __278 18454 18455 // If previous is OP_FAIL, it was generated by an empty class [] 18456 // (PCRE2_ALLOW_EMPTY_CLASS is set). The other ways in which OP_FAIL can be 18457 // generated, that is by (*FAIL) or (?!), disallow a quantifier at parse 18458 // time. We can just ignore this repeat. 18459 18460 case OP_FAIL: 18461 goto __279 18462 18463 // Prior to 10.30, repeated recursions were wrapped in OP_ONCE brackets 18464 // because pcre2_match() could not handle backtracking into recursively 18465 // called groups. Now that this backtracking is available, we no longer need 18466 // to do this. However, we still need to replicate recursions as we do for 18467 // groups so as to have independent backtracking points. We can replicate 18468 // for the minimum number of repeats directly. For optional repeats we now 18469 // wrap the recursion in OP_BRA brackets and make use of the bracket 18470 // repetition. 18471 18472 case OP_RECURSE: 18473 goto __280 // Set "may match empty string" 18474 18475 // Now treat as a repeated OP_BRA. 18476 // Fall through 18477 18478 // If previous was a bracket group, we may have to replicate it in 18479 // certain cases. Note that at this point we can encounter only the "basic" 18480 // bracket opcodes such as BRA and CBRA, as this is the place where they get 18481 // converted into the more special varieties such as BRAPOS and SBRA. 18482 // Originally, PCRE did not allow repetition of assertions, but now it does, 18483 // for Perl compatibility. 18484 18485 case OP_ASSERT: 18486 goto __281 18487 case OP_ASSERT_NOT: 18488 goto __282 18489 case OP_ASSERT_NA: 18490 goto __283 18491 case OP_ASSERTBACK: 18492 goto __284 18493 case OP_ASSERTBACK_NOT: 18494 goto __285 18495 case OP_ASSERTBACK_NA: 18496 goto __286 18497 case OP_ONCE: 18498 goto __287 18499 case OP_SCRIPT_RUN: 18500 goto __288 18501 case OP_BRA: 18502 goto __289 18503 case OP_CBRA: 18504 goto __290 18505 case OP_COND: 18506 goto __291 18507 18508 // If previous was a character type match (\d or similar), abolish it and 18509 // create a suitable repeat item. The code is shared with single-character 18510 // repeats by setting op_type to add a suitable offset into repeat_type. 18511 // Note the the Unicode property types will be present only when 18512 // SUPPORT_UNICODE is defined, but we don't wrap the little bits of code 18513 // here because it just makes it horribly messy. 18514 18515 default: 18516 goto __292 18517 } 18518 goto __267 18519 18520 // If previous was a character or negated character match, abolish the 18521 // item and generate a repeat item instead. If a char item has a minimum of 18522 // more than one, ensure that it is set in reqcu - it might not be if a 18523 // sequence such as x{3} is the first thing in a branch because the x will 18524 // have gone into firstcu instead. 18525 18526 __268: 18527 __269: 18528 __270: 18529 __271: 18530 if !(repeat_max == Tuint32_t(1) && repeat_min == Tuint32_t(1)) { 18531 goto __293 18532 } 18533 goto END_REPEAT 18534 __293: 18535 ; 18536 op_type = chartypeoffset[int32(op_previous)-OP_CHAR] 18537 18538 // Deal with UTF characters that take up more than one code unit. 18539 18540 if !(utf != 0 && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + libc.UintptrFromInt32(-1))))&0xc0 == 0x80) { 18541 goto __294 18542 } 18543 18544 lastchar = code - uintptr(1) 18545 __296: 18546 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastchar)))&0xc0 == 0x80) { 18547 goto __297 18548 } 18549 lastchar-- 18550 goto __296 18551 __297: 18552 ; 18553 mclength = Tuint32_t((int64(code) - int64(lastchar)) / 1) // Length of UTF character 18554 libc.Xmemcpy(tls, bp+72, lastchar, uint64(mclength*Tuint32_t(DPCRE2_CODE_UNIT_WIDTH/8))) // Save the char 18555 goto __295 18556 __294: 18557 18558 /* Handle the case of a single code unit - either with no UTF support, or 18559 with UTF disabled, or for a single-code-unit UTF character. In the latter 18560 case, for a repeated positive match, get the caseless flag for the 18561 required code unit from the previous character, because a class like [Aa] 18562 sets a caseless A but by now the req_caseopt flag has been reset. */ 18563 18564 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 72)) = *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + libc.UintptrFromInt32(-1))) 18565 mclength = Tuint32_t(1) 18566 if !(int32(op_previous) <= OP_CHARI && repeat_min > Tuint32_t(1)) { 18567 goto __298 18568 } 18569 18570 reqcu = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 72))) 18571 reqcuflags = (*Tcompile_block_8)(unsafe.Pointer(cb)).Freq_varyopt 18572 if !(int32(op_previous) == OP_CHARI) { 18573 goto __299 18574 } 18575 reqcuflags = reqcuflags | DREQ_CASELESS 18576 __299: 18577 ; 18578 __298: 18579 ; 18580 __295: 18581 ; 18582 goto OUTPUT_SINGLE_REPEAT // Code shared with single character types 18583 18584 // If previous was a character class or a back reference, we put the 18585 // repeat stuff after it, but just skip the item if the repeat was {0,0}. 18586 18587 __272: 18588 __273: 18589 __274: 18590 __275: 18591 __276: 18592 __277: 18593 __278: 18594 18595 if !(repeat_max == Tuint32_t(0)) { 18596 goto __300 18597 } 18598 18599 code = previous 18600 goto END_REPEAT 18601 __300: 18602 ; 18603 if !(repeat_max == Tuint32_t(1) && repeat_min == Tuint32_t(1)) { 18604 goto __301 18605 } 18606 goto END_REPEAT 18607 __301: 18608 ; 18609 18610 if !(repeat_min == Tuint32_t(0) && repeat_max == DMAX_REPEAT_COUNT+uint32(1)) { 18611 goto __302 18612 } 18613 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_CRSTAR + repeat_type) 18614 goto __303 18615 __302: 18616 if !(repeat_min == Tuint32_t(1) && repeat_max == DMAX_REPEAT_COUNT+uint32(1)) { 18617 goto __304 18618 } 18619 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_CRPLUS + repeat_type) 18620 goto __305 18621 __304: 18622 if !(repeat_min == Tuint32_t(0) && repeat_max == Tuint32_t(1)) { 18623 goto __306 18624 } 18625 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_CRQUERY + repeat_type) 18626 goto __307 18627 __306: 18628 18629 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_CRRANGE + repeat_type) 18630 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(repeat_min >> 8) 18631 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(repeat_min & Tuint32_t(255)) 18632 code += uintptr(DIMM2_SIZE) 18633 if !(repeat_max == DMAX_REPEAT_COUNT+uint32(1)) { 18634 goto __308 18635 } 18636 repeat_max = Tuint32_t(0) 18637 __308: 18638 ; // 2-byte encoding for max 18639 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(repeat_max >> 8) 18640 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(repeat_max & Tuint32_t(255)) 18641 code += uintptr(DIMM2_SIZE) 18642 __307: 18643 ; 18644 __305: 18645 ; 18646 __303: 18647 ; 18648 goto __267 18649 18650 // If previous is OP_FAIL, it was generated by an empty class [] 18651 // (PCRE2_ALLOW_EMPTY_CLASS is set). The other ways in which OP_FAIL can be 18652 // generated, that is by (*FAIL) or (?!), disallow a quantifier at parse 18653 // time. We can just ignore this repeat. 18654 18655 __279: 18656 goto END_REPEAT 18657 18658 // Prior to 10.30, repeated recursions were wrapped in OP_ONCE brackets 18659 // because pcre2_match() could not handle backtracking into recursively 18660 // called groups. Now that this backtracking is available, we no longer need 18661 // to do this. However, we still need to replicate recursions as we do for 18662 // groups so as to have independent backtracking points. We can replicate 18663 // for the minimum number of repeats directly. For optional repeats we now 18664 // wrap the recursion in OP_BRA brackets and make use of the bracket 18665 // repetition. 18666 18667 __280: 18668 if !(repeat_max == Tuint32_t(1) && repeat_min == Tuint32_t(1) && !(possessive_quantifier != 0)) { 18669 goto __309 18670 } 18671 goto END_REPEAT 18672 __309: 18673 ; 18674 18675 // Generate unwrapped repeats for a non-zero minimum, except when the 18676 // minimum is 1 and the maximum unlimited, because that can be handled with 18677 // OP_BRA terminated by OP_KETRMAX/MIN. When the maximum is equal to the 18678 // minimum, we just need to generate the appropriate additional copies. 18679 // Otherwise we need to generate one more, to simulate the situation when 18680 // the minimum is zero. 18681 18682 if !(repeat_min > Tuint32_t(0) && (repeat_min != Tuint32_t(1) || repeat_max != DMAX_REPEAT_COUNT+uint32(1))) { 18683 goto __310 18684 } 18685 18686 replicate = int32(repeat_min) 18687 if !(repeat_min == repeat_max) { 18688 goto __311 18689 } 18690 replicate-- 18691 __311: 18692 ; 18693 18694 // In the pre-compile phase, we don't actually do the replication. We 18695 // just adjust the length as if we had. Do some paranoid checks for 18696 // potential integer overflow. The INT64_OR_DOUBLE type is a 64-bit 18697 // integer type when available, otherwise double. 18698 18699 if !(lengthptr != uintptr(0)) { 18700 goto __312 18701 } 18702 18703 delta = Tsize_t(replicate * (1 + DLINK_SIZE)) 18704 if !(Tint64_t(replicate)*int64(1+DLINK_SIZE) > int64(0x7fffffff) || uint64(0x7fffffff-20)-*(*Tsize_t)(unsafe.Pointer(lengthptr)) < delta) { 18705 goto __314 18706 } 18707 18708 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR20 18709 return 0 18710 __314: 18711 ; 18712 *(*Tsize_t)(unsafe.Pointer(lengthptr)) += delta 18713 goto __313 18714 __312: 18715 { 18716 i14 = 0 18717 __315: 18718 if !(i14 < replicate) { 18719 goto __317 18720 } 18721 18722 libc.Xmemcpy(tls, code, previous, uint64((1+DLINK_SIZE)*(DPCRE2_CODE_UNIT_WIDTH/8))) 18723 previous = code 18724 code += uintptr(1 + DLINK_SIZE) 18725 goto __316 18726 __316: 18727 i14++ 18728 goto __315 18729 goto __317 18730 __317: 18731 } 18732 __313: 18733 ; 18734 18735 // If the number of repeats is fixed, we are done. Otherwise, adjust 18736 // the counts and fall through. 18737 18738 if !(repeat_min == repeat_max) { 18739 goto __318 18740 } 18741 goto __267 18742 __318: 18743 ; 18744 if !(repeat_max != DMAX_REPEAT_COUNT+uint32(1)) { 18745 goto __319 18746 } 18747 repeat_max = repeat_max - repeat_min 18748 __319: 18749 ; 18750 repeat_min = Tuint32_t(0) 18751 __310: 18752 ; 18753 18754 // Wrap the recursion call in OP_BRA brackets. 18755 18756 libc.Xmemmove(tls, previous+uintptr(1)+uintptr(DLINK_SIZE), previous, uint64((1+DLINK_SIZE)*(DPCRE2_CODE_UNIT_WIDTH/8))) 18757 op_previous = libc.AssignPtrUint8(previous, OP_BRA) 18758 *(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 1)) = TPCRE2_UCHAR8(int32(2+2*DLINK_SIZE) >> 8) 18759 *(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 2)) = TPCRE2_UCHAR8((2 + 2*DLINK_SIZE) & 255) 18760 *(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 6)) = OP_KET 18761 *(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 7)) = TPCRE2_UCHAR8(int32(2+2*DLINK_SIZE) >> 8) 18762 *(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 8)) = TPCRE2_UCHAR8((2 + 2*DLINK_SIZE) & 255) 18763 code += uintptr(2 + 2*DLINK_SIZE) 18764 *(*Tsize_t)(unsafe.Pointer(bp + 120 /* length_prevgroup */)) = uint64(3 + 3*DLINK_SIZE) 18765 group_return = -1 // Set "may match empty string" 18766 18767 // Now treat as a repeated OP_BRA. 18768 // Fall through 18769 18770 // If previous was a bracket group, we may have to replicate it in 18771 // certain cases. Note that at this point we can encounter only the "basic" 18772 // bracket opcodes such as BRA and CBRA, as this is the place where they get 18773 // converted into the more special varieties such as BRAPOS and SBRA. 18774 // Originally, PCRE did not allow repetition of assertions, but now it does, 18775 // for Perl compatibility. 18776 18777 __281: 18778 __282: 18779 __283: 18780 __284: 18781 __285: 18782 __286: 18783 __287: 18784 __288: 18785 __289: 18786 __290: 18787 __291: 18788 18789 len = int32((int64(code) - int64(previous)) / 1) 18790 bralink = uintptr(0) 18791 brazeroptr = uintptr(0) 18792 18793 if !(repeat_max == Tuint32_t(1) && repeat_min == Tuint32_t(1) && !(possessive_quantifier != 0)) { 18794 goto __320 18795 } 18796 goto END_REPEAT 18797 __320: 18798 ; 18799 18800 // Repeating a DEFINE group (or any group where the condition is always 18801 // FALSE and there is only one branch) is pointless, but Perl allows the 18802 // syntax, so we just ignore the repeat. 18803 18804 if !(int32(op_previous) == OP_COND && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 3))) == OP_FALSE && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 2)))))))) != OP_ALT) { 18805 goto __321 18806 } 18807 goto END_REPEAT 18808 __321: 18809 ; 18810 18811 // Perl allows all assertions to be quantified, and when they contain 18812 // capturing parentheses and/or are optional there are potential uses for 18813 // this feature. PCRE2 used to force the maximum quantifier to 1 on the 18814 // invalid grounds that further repetition was never useful. This was 18815 // always a bit pointless, since an assertion could be wrapped with a 18816 // repeated group to achieve the effect. General repetition is now 18817 // permitted, but if the maximum is unlimited it is set to one more than 18818 // the minimum. 18819 18820 if !(int32(op_previous) < OP_ONCE) { 18821 goto __322 18822 } /* Assertion */ 18823 18824 if !(repeat_max == DMAX_REPEAT_COUNT+uint32(1)) { 18825 goto __323 18826 } 18827 repeat_max = repeat_min + Tuint32_t(1) 18828 __323: 18829 ; 18830 __322: 18831 ; 18832 18833 // The case of a zero minimum is special because of the need to stick 18834 // OP_BRAZERO in front of it, and because the group appears once in the 18835 // data, whereas in other cases it appears the minimum number of times. For 18836 // this reason, it is simplest to treat this case separately, as otherwise 18837 // the code gets far too messy. There are several special subcases when the 18838 // minimum is zero. 18839 18840 if !(repeat_min == Tuint32_t(0)) { 18841 goto __324 18842 } 18843 18844 // If the maximum is also zero, we used to just omit the group from 18845 // the output altogether, like this: 18846 // 18847 // ** if (repeat_max == 0) 18848 // ** { 18849 // ** code = previous; 18850 // ** goto END_REPEAT; 18851 // ** } 18852 // 18853 // However, that fails when a group or a subgroup within it is 18854 // referenced as a subroutine from elsewhere in the pattern, so now we 18855 // stick in OP_SKIPZERO in front of it so that it is skipped on 18856 // execution. As we don't have a list of which groups are referenced, we 18857 // cannot do this selectively. 18858 // 18859 // If the maximum is 1 or unlimited, we just have to stick in the 18860 // BRAZERO and do no more at this point. 18861 18862 if !(repeat_max <= Tuint32_t(1) || repeat_max == DMAX_REPEAT_COUNT+uint32(1)) { 18863 goto __326 18864 } 18865 18866 libc.Xmemmove(tls, previous+uintptr(1), previous, uint64(len*(DPCRE2_CODE_UNIT_WIDTH/8))) 18867 code++ 18868 if !(repeat_max == Tuint32_t(0)) { 18869 goto __328 18870 } 18871 18872 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&previous, 1))) = OP_SKIPZERO 18873 goto END_REPEAT 18874 __328: 18875 ; 18876 brazeroptr = previous // Save for possessive optimizing 18877 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&previous, 1))) = TPCRE2_UCHAR8(OP_BRAZERO + repeat_type) 18878 goto __327 18879 __326: 18880 18881 libc.Xmemmove(tls, previous+uintptr(2)+uintptr(DLINK_SIZE), previous, uint64(len*(DPCRE2_CODE_UNIT_WIDTH/8))) 18882 code += uintptr(2 + DLINK_SIZE) 18883 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&previous, 1))) = TPCRE2_UCHAR8(OP_BRAZERO + repeat_type) 18884 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&previous, 1))) = OP_BRA 18885 18886 // We chain together the bracket link offset fields that have to be 18887 // filled in later when the ends of the brackets are reached. 18888 18889 if bralink == uintptr(0) { 18890 linkoffset = 0 18891 } else { 18892 linkoffset = int32((int64(previous) - int64(bralink)) / 1) 18893 } 18894 bralink = previous 18895 *(*TPCRE2_UCHAR8)(unsafe.Pointer(previous)) = TPCRE2_UCHAR8(linkoffset >> 8) 18896 *(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 1)) = TPCRE2_UCHAR8(linkoffset & 255) 18897 previous += uintptr(DLINK_SIZE) 18898 __327: 18899 ; 18900 18901 if !(repeat_max != DMAX_REPEAT_COUNT+uint32(1)) { 18902 goto __329 18903 } 18904 repeat_max-- 18905 __329: 18906 ; 18907 goto __325 18908 __324: 18909 18910 if !(repeat_min > Tuint32_t(1)) { 18911 goto __330 18912 } 18913 18914 // In the pre-compile phase, we don't actually do the replication. 18915 // We just adjust the length as if we had. Do some paranoid checks for 18916 // potential integer overflow. The INT64_OR_DOUBLE type is a 64-bit 18917 // integer type when available, otherwise double. 18918 18919 if !(lengthptr != uintptr(0)) { 18920 goto __331 18921 } 18922 18923 delta1 = Tsize_t(repeat_min-Tuint32_t(1)) * *(*Tsize_t)(unsafe.Pointer(bp + 120)) 18924 if !(Tint64_t(repeat_min-Tuint32_t(1))*Tint64_t(*(*Tsize_t)(unsafe.Pointer(bp + 120))) > int64(0x7fffffff) || uint64(0x7fffffff-20)-*(*Tsize_t)(unsafe.Pointer(lengthptr)) < delta1) { 18925 goto __333 18926 } 18927 18928 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR20 18929 return 0 18930 __333: 18931 ; 18932 *(*Tsize_t)(unsafe.Pointer(lengthptr)) += delta1 18933 goto __332 18934 __331: 18935 18936 if !(groupsetfirstcu != 0 && reqcuflags >= DREQ_NONE) { 18937 goto __334 18938 } 18939 18940 reqcu = firstcu 18941 reqcuflags = firstcuflags 18942 __334: 18943 ; 18944 { 18945 i15 = Tuint32_t(1) 18946 __335: 18947 if !(i15 < repeat_min) { 18948 goto __337 18949 } 18950 18951 libc.Xmemcpy(tls, code, previous, uint64(len*(DPCRE2_CODE_UNIT_WIDTH/8))) 18952 code += uintptr(len) 18953 goto __336 18954 __336: 18955 i15++ 18956 goto __335 18957 goto __337 18958 __337: 18959 } 18960 __332: 18961 ; 18962 __330: 18963 ; 18964 18965 if !(repeat_max != DMAX_REPEAT_COUNT+uint32(1)) { 18966 goto __338 18967 } 18968 repeat_max = repeat_max - repeat_min 18969 __338: 18970 ; 18971 __325: 18972 ; 18973 18974 // This code is common to both the zero and non-zero minimum cases. If 18975 // the maximum is limited, it replicates the group in a nested fashion, 18976 // remembering the bracket starts on a stack. In the case of a zero 18977 // minimum, the first one was set up above. In all cases the repeat_max 18978 // now specifies the number of additional copies needed. Again, we must 18979 // remember to replicate entries on the forward reference list. 18980 18981 if !(repeat_max != DMAX_REPEAT_COUNT+uint32(1)) { 18982 goto __339 18983 } 18984 18985 // In the pre-compile phase, we don't actually do the replication. We 18986 // just adjust the length as if we had. For each repetition we must add 18987 // 1 to the length for BRAZERO and for all but the last repetition we 18988 // must add 2 + 2*LINKSIZE to allow for the nesting that occurs. Do some 18989 // paranoid checks to avoid integer overflow. The INT64_OR_DOUBLE type 18990 // is a 64-bit integer type when available, otherwise double. 18991 18992 if !(lengthptr != uintptr(0) && repeat_max > Tuint32_t(0)) { 18993 goto __341 18994 } 18995 18996 delta2 = Tsize_t(repeat_max)*(*(*Tsize_t)(unsafe.Pointer(bp + 120))+uint64(1)+uint64(2)+uint64(2*DLINK_SIZE)) - uint64(2) - uint64(2*DLINK_SIZE) // Last one doesn't nest 18997 if !(Tint64_t(repeat_max)*Tint64_t(*(*Tsize_t)(unsafe.Pointer(bp + 120))+uint64(1)+uint64(2)+uint64(2*DLINK_SIZE)) > 18998 int64(0x7fffffff) || uint64(0x7fffffff-20)-*(*Tsize_t)(unsafe.Pointer(lengthptr)) < delta2) { 18999 goto __343 19000 } 19001 19002 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR20 19003 return 0 19004 __343: 19005 ; 19006 *(*Tsize_t)(unsafe.Pointer(lengthptr)) += delta2 19007 goto __342 19008 __341: 19009 { 19010 i16 = repeat_max 19011 __344: 19012 if !(i16 >= Tuint32_t(1)) { 19013 goto __346 19014 } 19015 19016 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_BRAZERO + repeat_type) 19017 19018 // All but the final copy start a new nesting, maintaining the 19019 // chain of brackets outstanding. 19020 19021 if !(i16 != Tuint32_t(1)) { 19022 goto __347 19023 } 19024 19025 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_BRA 19026 if bralink == uintptr(0) { 19027 linkoffset1 = 0 19028 } else { 19029 linkoffset1 = int32((int64(code) - int64(bralink)) / 1) 19030 } 19031 bralink = code 19032 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(linkoffset1 >> 8) 19033 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(linkoffset1 & 255) 19034 code += uintptr(DLINK_SIZE) 19035 __347: 19036 ; 19037 19038 libc.Xmemcpy(tls, code, previous, uint64(len*(DPCRE2_CODE_UNIT_WIDTH/8))) 19039 code += uintptr(len) 19040 goto __345 19041 __345: 19042 i16-- 19043 goto __344 19044 goto __346 19045 __346: 19046 } 19047 __342: 19048 ; 19049 19050 // Now chain through the pending brackets, and fill in their length 19051 // fields (which are holding the chain links pro tem). 19052 19053 __348: 19054 if !(bralink != uintptr(0)) { 19055 goto __349 19056 } 19057 19058 linkoffset2 = int32((int64(code)-int64(bralink))/1 + int64(1)) 19059 bra = code - uintptr(linkoffset2) 19060 oldlinkoffset = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bra + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bra + 2))))) 19061 if oldlinkoffset == 0 { 19062 bralink = uintptr(0) 19063 } else { 19064 bralink = bralink - uintptr(oldlinkoffset) 19065 } 19066 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_KET 19067 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(linkoffset2 >> 8) 19068 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(linkoffset2 & 255) 19069 code += uintptr(DLINK_SIZE) 19070 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bra + 1)) = TPCRE2_UCHAR8(linkoffset2 >> 8) 19071 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bra + 2)) = TPCRE2_UCHAR8(linkoffset2 & 255) 19072 goto __348 19073 __349: 19074 ; 19075 goto __340 19076 __339: 19077 19078 ketcode = code - uintptr(1) - uintptr(DLINK_SIZE) 19079 bracode = ketcode - uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ketcode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ketcode + 2))))) 19080 19081 // Convert possessive ONCE brackets to non-capturing 19082 19083 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode))) == OP_ONCE && possessive_quantifier != 0) { 19084 goto __350 19085 } 19086 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode)) = OP_BRA 19087 __350: 19088 ; 19089 19090 // For non-possessive ONCE and for SCRIPT_RUN brackets, all we need 19091 // to do is to set the KET. 19092 19093 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode))) == OP_ONCE || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode))) == OP_SCRIPT_RUN) { 19094 goto __351 19095 } 19096 *(*TPCRE2_UCHAR8)(unsafe.Pointer(ketcode)) = TPCRE2_UCHAR8(OP_KETRMAX + repeat_type) 19097 goto __352 19098 __351: 19099 19100 // In the compile phase, adjust the opcode if the group can match 19101 // an empty string. For a conditional group with only one branch, the 19102 // value of group_return will not show "could be empty", so we must 19103 // check that separately. 19104 19105 if !(lengthptr == uintptr(0)) { 19106 goto __353 19107 } 19108 19109 if !(group_return < 0) { 19110 goto __354 19111 } 19112 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode)) += TPCRE2_UCHAR8(OP_SBRA - OP_BRA) 19113 __354: 19114 ; 19115 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode))) == OP_COND && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode + 2)))))))) != OP_ALT) { 19116 goto __355 19117 } 19118 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode)) = OP_SCOND 19119 __355: 19120 ; 19121 __353: 19122 ; 19123 19124 // Handle possessive quantifiers. 19125 19126 if !(possessive_quantifier != 0) { 19127 goto __356 19128 } 19129 19130 // For COND brackets, we wrap the whole thing in a possessively 19131 // repeated non-capturing bracket, because we have not invented POS 19132 // versions of the COND opcodes. 19133 19134 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode))) == OP_COND || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode))) == OP_SCOND) { 19135 goto __358 19136 } 19137 19138 nlen = int32((int64(code) - int64(bracode)) / 1) 19139 libc.Xmemmove(tls, bracode+uintptr(1)+uintptr(DLINK_SIZE), bracode, uint64(nlen*(DPCRE2_CODE_UNIT_WIDTH/8))) 19140 code += uintptr(1 + DLINK_SIZE) 19141 nlen = nlen + (1 + DLINK_SIZE) 19142 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode)) = func() uint8 { 19143 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode))) == OP_COND { 19144 return OP_BRAPOS 19145 } 19146 return OP_SBRAPOS 19147 }() 19148 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_KETRPOS 19149 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(nlen >> 8) 19150 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(nlen & 255) 19151 code += uintptr(DLINK_SIZE) 19152 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode + 1)) = TPCRE2_UCHAR8(nlen >> 8) 19153 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode + 2)) = TPCRE2_UCHAR8(nlen & 255) 19154 goto __359 19155 __358: 19156 19157 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode)) += TPCRE2_UCHAR8(1) // Switch to xxxPOS opcodes 19158 *(*TPCRE2_UCHAR8)(unsafe.Pointer(ketcode)) = OP_KETRPOS 19159 __359: 19160 ; 19161 19162 // If the minimum is zero, mark it as possessive, then unset the 19163 // possessive flag when the minimum is 0 or 1. 19164 19165 if !(brazeroptr != uintptr(0)) { 19166 goto __360 19167 } 19168 *(*TPCRE2_UCHAR8)(unsafe.Pointer(brazeroptr)) = OP_BRAPOSZERO 19169 __360: 19170 ; 19171 if !(repeat_min < Tuint32_t(2)) { 19172 goto __361 19173 } 19174 possessive_quantifier = DFALSE 19175 __361: 19176 ; 19177 goto __357 19178 __356: 19179 *(*TPCRE2_UCHAR8)(unsafe.Pointer(ketcode)) = TPCRE2_UCHAR8(OP_KETRMAX + repeat_type) 19180 __357: 19181 ; 19182 __352: 19183 ; 19184 __340: 19185 ; 19186 19187 goto __267 19188 19189 // If previous was a character type match (\d or similar), abolish it and 19190 // create a suitable repeat item. The code is shared with single-character 19191 // repeats by setting op_type to add a suitable offset into repeat_type. 19192 // Note the the Unicode property types will be present only when 19193 // SUPPORT_UNICODE is defined, but we don't wrap the little bits of code 19194 // here because it just makes it horribly messy. 19195 19196 __292: 19197 if !(int32(op_previous) >= OP_EODN) { 19198 goto __362 19199 } /* Not a character type - internal error */ 19200 19201 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR10 19202 return 0 19203 goto __363 19204 __362: 19205 19206 if !(repeat_max == Tuint32_t(1) && repeat_min == Tuint32_t(1)) { 19207 goto __364 19208 } 19209 goto END_REPEAT 19210 __364: 19211 ; 19212 19213 op_type = Tuint32_t(OP_TYPESTAR - OP_STAR) // Use type opcodes 19214 mclength = Tuint32_t(0) // Not a character 19215 19216 if !(int32(op_previous) == OP_PROP || int32(op_previous) == OP_NOTPROP) { 19217 goto __365 19218 } 19219 19220 prop_type = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 1))) 19221 prop_value = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(previous + 2))) 19222 goto __366 19223 __365: 19224 19225 // Come here from just above with a character in mcbuffer/mclength. 19226 OUTPUT_SINGLE_REPEAT: 19227 prop_type = libc.AssignInt32(&prop_value, -1) 19228 __366: 19229 ; 19230 19231 // At this point, if prop_type == prop_value == -1 we either have a 19232 // character in mcbuffer when mclength is greater than zero, or we have 19233 // mclength zero, in which case there is a non-property character type in 19234 // op_previous. If prop_type/value are not negative, we have a property 19235 // character type in op_previous. 19236 19237 oldcode = code // Save where we were 19238 code = previous // Usually overwrite previous item 19239 19240 // If the maximum is zero then the minimum must also be zero; Perl allows 19241 // this case, so we do too - by simply omitting the item altogether. 19242 19243 if !(repeat_max == Tuint32_t(0)) { 19244 goto __367 19245 } 19246 goto END_REPEAT 19247 __367: 19248 ; 19249 19250 // Combine the op_type with the repeat_type 19251 19252 repeat_type = repeat_type + op_type 19253 19254 // A minimum of zero is handled either as the special case * or ?, or as 19255 // an UPTO, with the maximum given. 19256 19257 if !(repeat_min == Tuint32_t(0)) { 19258 goto __368 19259 } 19260 19261 if !(repeat_max == DMAX_REPEAT_COUNT+uint32(1)) { 19262 goto __370 19263 } 19264 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_STAR + repeat_type) 19265 goto __371 19266 __370: 19267 if !(repeat_max == Tuint32_t(1)) { 19268 goto __372 19269 } 19270 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_QUERY + repeat_type) 19271 goto __373 19272 __372: 19273 19274 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_UPTO + repeat_type) 19275 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(repeat_max >> 8) 19276 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(repeat_max & Tuint32_t(255)) 19277 code += uintptr(DIMM2_SIZE) 19278 __373: 19279 ; 19280 __371: 19281 ; 19282 goto __369 19283 __368: 19284 if !(repeat_min == Tuint32_t(1)) { 19285 goto __374 19286 } 19287 19288 if !(repeat_max == DMAX_REPEAT_COUNT+uint32(1)) { 19289 goto __376 19290 } 19291 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_PLUS + repeat_type) 19292 goto __377 19293 __376: 19294 19295 code = oldcode // Leave previous item in place 19296 if !(repeat_max == Tuint32_t(1)) { 19297 goto __378 19298 } 19299 goto END_REPEAT 19300 __378: 19301 ; 19302 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_UPTO + repeat_type) 19303 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8((repeat_max - Tuint32_t(1)) >> 8) 19304 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8((repeat_max - Tuint32_t(1)) & Tuint32_t(255)) 19305 code += uintptr(DIMM2_SIZE) 19306 __377: 19307 ; 19308 goto __375 19309 __374: 19310 19311 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_EXACT + op_type) // NB EXACT doesn't have repeat_type 19312 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(repeat_min >> 8) 19313 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(repeat_min & Tuint32_t(255)) 19314 code += uintptr(DIMM2_SIZE) 19315 19316 // Unless repeat_max equals repeat_min, fill in the data for EXACT, 19317 // and then generate the second opcode. For a repeated Unicode property 19318 // match, there are two extra values that define the required property, 19319 // and mclength is set zero to indicate this. 19320 19321 if !(repeat_max != repeat_min) { 19322 goto __379 19323 } 19324 19325 if !(mclength > Tuint32_t(0)) { 19326 goto __380 19327 } 19328 19329 libc.Xmemcpy(tls, code, bp+72, uint64(mclength*Tuint32_t(DPCRE2_CODE_UNIT_WIDTH/8))) 19330 code += uintptr(mclength) 19331 goto __381 19332 __380: 19333 19334 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = op_previous 19335 if !(prop_type >= 0) { 19336 goto __382 19337 } 19338 19339 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(prop_type) 19340 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(prop_value) 19341 __382: 19342 ; 19343 __381: 19344 ; 19345 19346 // Now set up the following opcode 19347 19348 if !(repeat_max == DMAX_REPEAT_COUNT+uint32(1)) { 19349 goto __383 19350 } 19351 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_STAR + repeat_type) 19352 goto __384 19353 __383: 19354 19355 repeat_max = repeat_max - repeat_min 19356 if !(repeat_max == Tuint32_t(1)) { 19357 goto __385 19358 } 19359 19360 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_QUERY + repeat_type) 19361 goto __386 19362 __385: 19363 19364 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(OP_UPTO + repeat_type) 19365 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(repeat_max >> 8) 19366 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(repeat_max & Tuint32_t(255)) 19367 code += uintptr(DIMM2_SIZE) 19368 __386: 19369 ; 19370 __384: 19371 ; 19372 __379: 19373 ; 19374 __375: 19375 ; 19376 __369: 19377 ; 19378 19379 // Fill in the character or character type for the final opcode. 19380 19381 if !(mclength > Tuint32_t(0)) { 19382 goto __387 19383 } 19384 19385 libc.Xmemcpy(tls, code, bp+72, uint64(mclength*Tuint32_t(DPCRE2_CODE_UNIT_WIDTH/8))) 19386 code += uintptr(mclength) 19387 goto __388 19388 __387: 19389 19390 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = op_previous 19391 if !(prop_type >= 0) { 19392 goto __389 19393 } 19394 19395 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(prop_type) 19396 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(prop_value) 19397 __389: 19398 ; 19399 __388: 19400 ; 19401 __363: 19402 ; 19403 goto __267 19404 __267: 19405 ; // End of switch on different op_previous values 19406 19407 // If the character following a repeat is '+', possessive_quantifier is 19408 // TRUE. For some opcodes, there are special alternative opcodes for this 19409 // case. For anything else, we wrap the entire repeated item inside OP_ONCE 19410 // brackets. Logically, the '+' notation is just syntactic sugar, taken from 19411 // Sun's Java package, but the special opcodes can optimize it. 19412 // 19413 // Some (but not all) possessively repeated subpatterns have already been 19414 // completely handled in the code just above. For them, possessive_quantifier 19415 // is always FALSE at this stage. Note that the repeated item starts at 19416 // tempcode, not at previous, which might be the first part of a string whose 19417 // (former) last char we repeated. 19418 19419 if !(possessive_quantifier != 0) { 19420 goto __390 19421 } 19422 19423 // Possessifying an EXACT quantifier has no effect, so we can ignore it. 19424 // However, QUERY, STAR, or UPTO may follow (for quantifiers such as {5,6}, 19425 // {5,}, or {5,10}). We skip over an EXACT item; if the length of what 19426 // remains is greater than zero, there's a further opcode that can be 19427 // handled. If not, do nothing, leaving the EXACT alone. 19428 19429 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */))))) { 19430 case OP_TYPEEXACT: 19431 goto __392 19432 19433 // CHAR opcodes are used for exacts whose count is 1. 19434 19435 case OP_CHAR: 19436 goto __393 19437 case OP_CHARI: 19438 goto __394 19439 case OP_NOT: 19440 goto __395 19441 case OP_NOTI: 19442 goto __396 19443 case OP_EXACT: 19444 goto __397 19445 case OP_EXACTI: 19446 goto __398 19447 case OP_NOTEXACT: 19448 goto __399 19449 case OP_NOTEXACTI: 19450 goto __400 19451 19452 // For the class opcodes, the repeat operator appears at the end; 19453 // adjust tempcode to point to it. 19454 19455 case OP_CLASS: 19456 goto __401 19457 case OP_NCLASS: 19458 goto __402 19459 19460 case OP_XCLASS: 19461 goto __403 19462 } 19463 goto __391 19464 19465 __392: 19466 *(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */)) += uintptr(int32(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88))))]) + func() int32 { 19467 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 3))) == OP_PROP || 19468 int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 3))) == OP_NOTPROP { 19469 return 2 19470 } 19471 return 0 19472 }()) 19473 goto __391 19474 19475 // CHAR opcodes are used for exacts whose count is 1. 19476 19477 __393: 19478 __394: 19479 __395: 19480 __396: 19481 __397: 19482 __398: 19483 __399: 19484 __400: 19485 *(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */)) += uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */))))]) 19486 if !(utf != 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + libc.UintptrFromInt32(-1)))) >= 0xc0) { 19487 goto __404 19488 } 19489 *(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */)) += uintptr(X_pcre2_utf8_table4[uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + libc.UintptrFromInt32(-1))))&0x3f]) 19490 __404: 19491 ; 19492 goto __391 19493 19494 // For the class opcodes, the repeat operator appears at the end; 19495 // adjust tempcode to point to it. 19496 19497 __401: 19498 __402: 19499 *(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */)) += uintptr(uint64(1) + uint64(32)/uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0)))) 19500 goto __391 19501 19502 __403: 19503 *(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */)) += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88)) + 2))))) 19504 goto __391 19505 __391: 19506 ; 19507 19508 // If tempcode is equal to code (which points to the end of the repeated 19509 // item), it means we have skipped an EXACT item but there is no following 19510 // QUERY, STAR, or UPTO; the value of len will be 0, and we do nothing. In 19511 // all other cases, tempcode will be pointing to the repeat opcode, and will 19512 // be less than code, so the value of len will be greater than 0. 19513 19514 len1 = int32((int64(code) - int64(*(*uintptr)(unsafe.Pointer(bp + 88)))) / 1) 19515 if !(len1 > 0) { 19516 goto __405 19517 } 19518 19519 repcode = uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */))))) 19520 19521 // There is a table for possessifying opcodes, all of which are less 19522 // than OP_CALLOUT. A zero entry means there is no possessified version. 19523 // 19524 19525 if !(repcode < OP_CALLOUT && int32(opcode_possessify[repcode]) > 0) { 19526 goto __406 19527 } 19528 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */)))) = opcode_possessify[repcode] 19529 goto __407 19530 __406: 19531 19532 libc.Xmemmove(tls, *(*uintptr)(unsafe.Pointer(bp + 88))+uintptr(1)+uintptr(DLINK_SIZE), *(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */)), uint64(len1*(DPCRE2_CODE_UNIT_WIDTH/8))) 19533 code += uintptr(1 + DLINK_SIZE) 19534 len1 = len1 + (1 + DLINK_SIZE) 19535 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */)))) = OP_ONCE 19536 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_KET 19537 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(len1 >> 8) 19538 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(len1 & 255) 19539 code += uintptr(DLINK_SIZE) 19540 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */)) + 1)) = TPCRE2_UCHAR8(len1 >> 8) 19541 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 88 /* tempcode */)) + 2)) = TPCRE2_UCHAR8(len1 & 255) 19542 __407: 19543 ; 19544 __405: 19545 ; 19546 __390: 19547 ; 19548 19549 // We set the "follows varying string" flag for subsequently encountered 19550 // reqcus if it isn't already set and we have just passed a varying length 19551 // item. 19552 19553 END_REPEAT: 19554 *(*Tuint32_t)(unsafe.Pointer(cb + 276)) |= reqvary 19555 goto __12 19556 19557 // =================================================================== 19558 // Handle a 32-bit data character with a value greater than META_END. 19559 19560 __67: 19561 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 19562 goto NORMAL_CHAR 19563 19564 // =============================================================== 19565 // Handle a back reference by number, which is the meta argument. The 19566 // pattern offsets for back references to group numbers less than 10 are held 19567 // in a special vector, to avoid using more than two parsed pattern elements 19568 // in 64-bit environments. We only need the offset to the first occurrence, 19569 // because if that doesn't fail, subsequent ones will also be OK. 19570 19571 __68: 19572 if !(meta_arg < Tuint32_t(10)) { 19573 goto __408 19574 } 19575 offset = *(*Tsize_t)(unsafe.Pointer(cb + 88 + uintptr(meta_arg)*8)) 19576 goto __409 19577 __408: 19578 offset = Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 1*4)))<<32 | Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4))) 19579 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 * uintptr(2) 19580 __409: 19581 ; 19582 19583 if !(meta_arg > (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) { 19584 goto __410 19585 } 19586 19587 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = offset 19588 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR15 // Non-existent subpattern 19589 return 0 19590 __410: 19591 ; 19592 19593 // Come here from named backref handling when the reference is to a 19594 // single group (that is, not to a duplicated name). The back reference 19595 // data will have already been updated. We must disable firstcu if not 19596 // set, to cope with cases like (?=(\w+))\1: which would otherwise set ':' 19597 // later. 19598 19599 HANDLE_SINGLE_REFERENCE: 19600 if !(firstcuflags == DREQ_UNSET) { 19601 goto __411 19602 } 19603 zerofirstcuflags = libc.AssignUint32(&firstcuflags, DREQ_NONE) 19604 __411: 19605 ; 19606 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = func() uint8 { 19607 if options&DPCRE2_CASELESS != Tuint32_t(0) { 19608 return OP_REFI 19609 } 19610 return OP_REF 19611 }() 19612 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = TPCRE2_UCHAR8(meta_arg >> 8) 19613 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(meta_arg & Tuint32_t(255)) 19614 code += uintptr(DIMM2_SIZE) 19615 19616 // Update the map of back references, and keep the highest one. We 19617 // could do this in parse_regex() for numerical back references, but not 19618 // for named back references, because we don't know the numbers to which 19619 // named back references refer. So we do it all in this function. 19620 19621 *(*Tuint32_t)(unsafe.Pointer(cb + 252)) |= func() uint32 { 19622 if meta_arg < Tuint32_t(32) { 19623 return uint32(1) << meta_arg 19624 } 19625 return uint32(1) 19626 }() 19627 if !(meta_arg > (*Tcompile_block_8)(unsafe.Pointer(cb)).Ftop_backref) { 19628 goto __412 19629 } 19630 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ftop_backref = meta_arg 19631 __412: 19632 ; 19633 goto __12 19634 19635 // =============================================================== 19636 // Handle recursion by inserting the number of the called group (which is 19637 // the meta argument) after OP_RECURSE. At the end of compiling the pattern is 19638 // scanned and these numbers are replaced by offsets within the pattern. It is 19639 // done like this to avoid problems with forward references and adjusting 19640 // offsets when groups are duplicated and moved (as discovered in previous 19641 // implementations). Note that a recursion does not have a set first 19642 // character. 19643 19644 __69: 19645 offset = Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 1*4)))<<32 | Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)) + 2*4))) 19646 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 * uintptr(2) 19647 19648 if !(meta_arg > (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) { 19649 goto __413 19650 } 19651 19652 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = offset 19653 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR15 // Non-existent subpattern 19654 return 0 19655 __413: 19656 ; 19657 HANDLE_NUMERICAL_RECURSION: 19658 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) = OP_RECURSE 19659 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)) = TPCRE2_UCHAR8(meta_arg >> 8) 19660 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)) = TPCRE2_UCHAR8(meta_arg & Tuint32_t(255)) 19661 code += uintptr(1 + DLINK_SIZE) 19662 groupsetfirstcu = DFALSE 19663 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fhad_recurse = DTRUE 19664 if !(firstcuflags == DREQ_UNSET) { 19665 goto __414 19666 } 19667 firstcuflags = DREQ_NONE 19668 __414: 19669 ; 19670 zerofirstcu = firstcu 19671 zerofirstcuflags = firstcuflags 19672 goto __12 19673 19674 // =============================================================== 19675 // Handle capturing parentheses; the number is the meta argument. 19676 19677 __70: 19678 bravalue = OP_CBRA 19679 skipunits = Tuint32_t(DIMM2_SIZE) 19680 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) = TPCRE2_UCHAR8(meta_arg >> 8) 19681 *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 4)) = TPCRE2_UCHAR8(meta_arg & Tuint32_t(255)) 19682 (*Tcompile_block_8)(unsafe.Pointer(cb)).Flastcapture = meta_arg 19683 goto GROUP_PROCESS_NOTE_EMPTY 19684 19685 // =============================================================== 19686 // Handle escape sequence items. For ones like \d, the ESC_values are 19687 // arranged to be the same as the corresponding OP_values in the default case 19688 // when PCRE2_UCP is not set (which is the only case in which they will appear 19689 // here). 19690 // 19691 // Note: \Q and \E are never seen here, as they were dealt with in 19692 // parse_pattern(). Neither are numerical back references or recursions, which 19693 // were turned into META_BACKREF or META_RECURSE items, respectively. \k and 19694 // \g, when followed by names, are turned into META_BACKREF_BYNAME or 19695 // META_RECURSE_BYNAME. 19696 19697 __71: 19698 19699 // We can test for escape sequences that consume a character because their 19700 // values lie between ESC_b and ESC_Z; this may have to change if any new ones 19701 // are ever created. For these sequences, we disable the setting of a first 19702 // character if it hasn't already been set. 19703 19704 if !(meta_arg > ESC_b && meta_arg < ESC_Z) { 19705 goto __415 19706 } 19707 19708 matched_char = DTRUE 19709 if !(firstcuflags == DREQ_UNSET) { 19710 goto __416 19711 } 19712 firstcuflags = DREQ_NONE 19713 __416: 19714 ; 19715 __415: 19716 ; 19717 19718 // Set values to reset to if this is followed by a zero repeat. 19719 19720 zerofirstcu = firstcu 19721 zerofirstcuflags = firstcuflags 19722 zeroreqcu = reqcu 19723 zeroreqcuflags = reqcuflags 19724 19725 // If Unicode is not supported, \P and \p are not allowed and are 19726 // faulted at parse time, so will never appear here. 19727 19728 if !(meta_arg == ESC_P || meta_arg == ESC_p) { 19729 goto __417 19730 } 19731 19732 ptype1 = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 96)), 4))) >> 16 19733 pdata1 = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))) & Tuint32_t(0xffff) 19734 19735 // The special case of \p{Any} is compiled to OP_ALLANY so as to benefit 19736 // from the auto-anchoring code. 19737 19738 if !(meta_arg == ESC_p && ptype1 == Tuint32_t(DPT_ANY)) { 19739 goto __418 19740 } 19741 19742 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_ALLANY 19743 goto __419 19744 __418: 19745 19746 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = func() uint8 { 19747 if meta_arg == ESC_p { 19748 return OP_PROP 19749 } 19750 return OP_NOTPROP 19751 }() 19752 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(ptype1) 19753 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(pdata1) 19754 __419: 19755 ; 19756 goto __12 // End META_ESCAPE 19757 __417: 19758 ; 19759 19760 // \K is forbidden in lookarounds since 10.38 because that's what Perl has 19761 // done. However, there's an option, in case anyone was relying on it. 19762 19763 if !(int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fassert_depth) > 0 && meta_arg == ESC_K && (*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fextra_options&DPCRE2_EXTRA_ALLOW_LOOKAROUND_BSK == Tuint32_t(0)) { 19764 goto __420 19765 } 19766 19767 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR99 19768 return 0 19769 __420: 19770 ; 19771 19772 // For the rest (including \X when Unicode is supported - if not it's 19773 // faulted at parse time), the OP value is the escape value when PCRE2_UCP is 19774 // not set; if it is set, these escapes do not show up here because they are 19775 // converted into Unicode property tests in parse_regex(). Note that \b and \B 19776 // do a one-character lookbehind, and \A also behaves as if it does. 19777 19778 if !(meta_arg == ESC_C) { 19779 goto __421 19780 } 19781 *(*Tuint32_t)(unsafe.Pointer(cb + 208)) |= Tuint32_t(DPCRE2_HASBKC) 19782 __421: 19783 ; // Record 19784 if !((meta_arg == ESC_b || meta_arg == ESC_B || meta_arg == ESC_A) && (*Tcompile_block_8)(unsafe.Pointer(cb)).Fmax_lookbehind == 0) { 19785 goto __422 19786 } 19787 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fmax_lookbehind = 1 19788 __422: 19789 ; 19790 19791 // In non-UTF mode, and for both 32-bit modes, we turn \C into OP_ALLANY 19792 // instead of OP_ANYBYTE so that it works in DFA mode and in lookbehinds. 19793 19794 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = func() uint8 { 19795 if !(utf != 0) && meta_arg == ESC_C { 19796 return OP_ALLANY 19797 } 19798 return uint8(meta_arg) 19799 }() 19800 goto __12 // End META_ESCAPE 19801 19802 // =================================================================== 19803 // Handle an unrecognized meta value. A parsed pattern value less than 19804 // META_END is a literal. Otherwise we have a problem. 19805 19806 __72: 19807 if !(meta >= DMETA_END) { 19808 goto __423 19809 } 19810 19811 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR89 // Internal error - unrecognized. 19812 return 0 19813 __423: 19814 ; 19815 19816 // Handle a literal character. We come here by goto in the case of a 19817 // 32-bit, non-UTF character whose value is greater than META_END. 19818 19819 NORMAL_CHAR: 19820 meta = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)))) // Get the full 32 bits 19821 NORMAL_CHAR_SET: // Character is already in meta 19822 matched_char = DTRUE 19823 19824 // For caseless UTF or UCP mode, check whether this character has more than 19825 // one other case. If so, generate a special OP_PROP item instead of OP_CHARI. 19826 // 19827 19828 if !((utf != 0 || ucp != 0) && options&DPCRE2_CASELESS != Tuint32_t(0)) { 19829 goto __424 19830 } 19831 19832 caseset = Tuint32_t((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(meta)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(meta)%DUCD_BLOCK_SIZE])*12)).Fcaseset) 19833 if !(caseset != Tuint32_t(0)) { 19834 goto __425 19835 } 19836 19837 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = OP_PROP 19838 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(DPT_CLIST) 19839 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = TPCRE2_UCHAR8(caseset) 19840 if !(firstcuflags == DREQ_UNSET) { 19841 goto __426 19842 } 19843 firstcuflags = libc.AssignUint32(&zerofirstcuflags, DREQ_NONE) 19844 __426: 19845 ; 19846 goto __12 // End handling this meta item 19847 __425: 19848 ; 19849 __424: 19850 ; 19851 19852 // Caseful matches, or caseless and not one of the multicase characters. We 19853 // come here by goto in the case of a positive class that contains only 19854 // case-partners of a character with just two cases; matched_char has already 19855 // been set TRUE and options fudged if necessary. 19856 19857 CLASS_CASELESS_CHAR: 19858 19859 // Get the character's code units into mcbuffer, with the length in 19860 // mclength. When not in UTF mode, the length is always 1. 19861 19862 if !(utf != 0) { 19863 goto __427 19864 } 19865 mclength = X_pcre2_ord2utf_8(tls, meta, bp+72) 19866 goto __428 19867 __427: 19868 19869 mclength = Tuint32_t(1) 19870 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 72)) = TPCRE2_UCHAR8(meta) 19871 __428: 19872 ; 19873 19874 // Generate the appropriate code 19875 19876 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&code, 1))) = func() uint8 { 19877 if options&DPCRE2_CASELESS != Tuint32_t(0) { 19878 return OP_CHARI 19879 } 19880 return OP_CHAR 19881 }() 19882 libc.Xmemcpy(tls, code, bp+72, uint64(mclength*Tuint32_t(DPCRE2_CODE_UNIT_WIDTH/8))) 19883 code += uintptr(mclength) 19884 19885 // Remember if \r or \n were seen 19886 19887 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 72))) == '\015' || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 72))) == '\012') { 19888 goto __429 19889 } 19890 *(*Tuint32_t)(unsafe.Pointer(cb + 208)) |= Tuint32_t(DPCRE2_HASCRORLF) 19891 __429: 19892 ; 19893 19894 // Set the first and required code units appropriately. If no previous 19895 // first code unit, set it from this character, but revert to none on a zero 19896 // repeat. Otherwise, leave the firstcu value alone, and don't change it on 19897 // a zero repeat. 19898 19899 if !(firstcuflags == DREQ_UNSET) { 19900 goto __430 19901 } 19902 19903 zerofirstcuflags = DREQ_NONE 19904 zeroreqcu = reqcu 19905 zeroreqcuflags = reqcuflags 19906 19907 // If the character is more than one code unit long, we can set a single 19908 // firstcu only if it is not to be matched caselessly. Multiple possible 19909 // starting code units may be picked up later in the studying code. 19910 19911 if !(mclength == Tuint32_t(1) || req_caseopt == Tuint32_t(0)) { 19912 goto __432 19913 } 19914 19915 firstcu = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 72))) 19916 firstcuflags = req_caseopt 19917 if !(mclength != Tuint32_t(1)) { 19918 goto __434 19919 } 19920 19921 reqcu = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + libc.UintptrFromInt32(-1)))) 19922 reqcuflags = (*Tcompile_block_8)(unsafe.Pointer(cb)).Freq_varyopt 19923 __434: 19924 ; 19925 goto __433 19926 __432: 19927 firstcuflags = libc.AssignUint32(&reqcuflags, DREQ_NONE) 19928 __433: 19929 ; 19930 goto __431 19931 __430: 19932 19933 zerofirstcu = firstcu 19934 zerofirstcuflags = firstcuflags 19935 zeroreqcu = reqcu 19936 zeroreqcuflags = reqcuflags 19937 if !(mclength == Tuint32_t(1) || req_caseopt == Tuint32_t(0)) { 19938 goto __435 19939 } 19940 19941 reqcu = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + libc.UintptrFromInt32(-1)))) 19942 reqcuflags = req_caseopt | (*Tcompile_block_8)(unsafe.Pointer(cb)).Freq_varyopt 19943 __435: 19944 ; 19945 __431: 19946 ; 19947 19948 // If caselessness was temporarily instated, reset it. 19949 19950 if !(reset_caseful != 0) { 19951 goto __436 19952 } 19953 19954 options = options & libc.CplUint32(DPCRE2_CASELESS) 19955 req_caseopt = Tuint32_t(0) 19956 reset_caseful = DFALSE 19957 __436: 19958 ; 19959 19960 goto __12 // End literal character handling 19961 __12: 19962 ; // End of big switch 19963 goto __2 19964 __2: 19965 *(*uintptr)(unsafe.Pointer(bp + 96 /* pptr */)) += 4 19966 goto __1 19967 goto __3 19968 __3: 19969 ; 19970 return int32(0) // End of big loop 19971 19972 // Control never reaches here. 19973 } 19974 19975 // ************************************************ 19976 // 19977 // Compile regex: a sequence of alternatives * 19978 // 19979 19980 // On entry, pptr is pointing past the bracket meta, but on return it points to 19981 // the closing bracket or META_END. The code variable is pointing at the code unit 19982 // into which the BRA operator has been stored. This function is used during the 19983 // pre-compile phase when we are trying to find out the amount of memory needed, 19984 // as well as during the real compile phase. The value of lengthptr distinguishes 19985 // the two phases. 19986 // 19987 // Arguments: 19988 // options option bits, including any changes for this subpattern 19989 // codeptr -> the address of the current code pointer 19990 // pptrptr -> the address of the current parsed pattern pointer 19991 // errorcodeptr -> pointer to error code variable 19992 // skipunits skip this many code units at start (for brackets and OP_COND) 19993 // firstcuptr place to put the first required code unit 19994 // firstcuflagsptr place to put the first code unit flags 19995 // reqcuptr place to put the last required code unit 19996 // reqcuflagsptr place to put the last required code unit flags 19997 // bcptr pointer to the chain of currently open branches 19998 // cb points to the data block with tables pointers etc. 19999 // lengthptr NULL during the real compile phase 20000 // points to length accumulator during pre-compile phase 20001 // 20002 // Returns: 0 There has been an error 20003 // +1 Success, this group must match at least one character 20004 // -1 Success, this group may match an empty string 20005 20006 func compile_regex(tls *libc.TLS, options Tuint32_t, codeptr uintptr, pptrptr uintptr, errorcodeptr uintptr, skipunits Tuint32_t, firstcuptr uintptr, firstcuflagsptr uintptr, reqcuptr uintptr, reqcuflagsptr uintptr, bcptr uintptr, cb uintptr, lengthptr uintptr) int32 { /* pcre2_compile.c:8095:1: */ 20007 bp := tls.Alloc(80) 20008 defer tls.Free(80) 20009 *(*Tuint32_t)(unsafe.Pointer(bp + 16)) = options 20010 20011 *(*uintptr)(unsafe.Pointer(bp + 24 /* code */)) = *(*uintptr)(unsafe.Pointer(codeptr)) 20012 var last_branch uintptr = *(*uintptr)(unsafe.Pointer(bp + 24 /* code */)) 20013 var start_bracket uintptr = *(*uintptr)(unsafe.Pointer(bp + 24 /* code */)) 20014 var lookbehind TBOOL 20015 // var capitem Topen_capitem at bp, 16 20016 20017 var capnumber int32 = 0 20018 var okreturn int32 = 1 20019 *(*uintptr)(unsafe.Pointer(bp + 32 /* pptr */)) = *(*uintptr)(unsafe.Pointer(pptrptr)) 20020 var firstcu Tuint32_t 20021 var reqcu Tuint32_t 20022 var lookbehindlength Tuint32_t 20023 var firstcuflags Tuint32_t 20024 var reqcuflags Tuint32_t 20025 // var branchfirstcu Tuint32_t at bp+40, 4 20026 20027 // var branchreqcu Tuint32_t at bp+48, 4 20028 20029 // var branchfirstcuflags Tuint32_t at bp+44, 4 20030 20031 // var branchreqcuflags Tuint32_t at bp+52, 4 20032 20033 // var length Tsize_t at bp+72, 8 20034 20035 // var bc Tbranch_chain_8 at bp+56, 16 20036 20037 // If set, call the external function that checks for stack availability. 20038 20039 if (*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fstack_guard != uintptr(0) && (*struct { 20040 f func(*libc.TLS, Tuint32_t, uintptr) int32 20041 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fstack_guard})).f(tls, uint32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fparens_depth), (*Tpcre2_real_compile_context_8)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fcx)).Fstack_guard_data) != 0 { 20042 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR33 20043 return 0 20044 } 20045 20046 // Miscellaneous initialization 20047 20048 (*Tbranch_chain_8)(unsafe.Pointer(bp + 56 /* &bc */)).Fouter = bcptr 20049 (*Tbranch_chain_8)(unsafe.Pointer(bp + 56 /* &bc */)).Fcurrent_branch = *(*uintptr)(unsafe.Pointer(bp + 24 /* code */)) 20050 20051 firstcu = libc.AssignUint32(&reqcu, Tuint32_t(0)) 20052 firstcuflags = libc.AssignUint32(&reqcuflags, DREQ_UNSET) 20053 20054 // Accumulate the length for use in the pre-compile phase. Start with the 20055 // length of the BRA and KET and any extra code units that are required at the 20056 // beginning. We accumulate in a local variable to save frequent testing of 20057 // lengthptr for NULL. We cannot do this by looking at the value of 'code' at the 20058 // start and end of each alternative, because compiled items are discarded during 20059 // the pre-compile phase so that the workspace is not exceeded. 20060 20061 *(*Tsize_t)(unsafe.Pointer(bp + 72 /* length */)) = Tsize_t(Tuint32_t(2+2*DLINK_SIZE) + skipunits) 20062 20063 // Remember if this is a lookbehind assertion, and if it is, save its length 20064 // and skip over the pattern offset. 20065 20066 lookbehind = libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24))))) == OP_ASSERTBACK || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24))))) == OP_ASSERTBACK_NOT || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24))))) == OP_ASSERTBACK_NA) 20067 20068 if lookbehind != 0 { 20069 lookbehindlength = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32)) + libc.UintptrFromInt32(-1)*4)) & 0x0000ffff 20070 *(*uintptr)(unsafe.Pointer(bp + 32 /* pptr */)) += 4 * uintptr(DSIZEOFFSET) 20071 } else { 20072 lookbehindlength = Tuint32_t(0) 20073 } 20074 20075 // If this is a capturing subpattern, add to the chain of open capturing items 20076 // so that we can detect them if (*ACCEPT) is encountered. Note that only OP_CBRA 20077 // need be tested here; changing this opcode to one of its variants, e.g. 20078 // OP_SCBRAPOS, happens later, after the group has been compiled. 20079 20080 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24))))) == OP_CBRA { 20081 capnumber = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)) + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24)) + 4))))) 20082 (*Topen_capitem)(unsafe.Pointer(bp /* &capitem */)).Fnumber = Tuint16_t(capnumber) 20083 (*Topen_capitem)(unsafe.Pointer(bp /* &capitem */)).Fnext = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fopen_caps 20084 (*Topen_capitem)(unsafe.Pointer(bp /* &capitem */)).Fassert_depth = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fassert_depth 20085 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fopen_caps = bp /* &capitem */ 20086 } 20087 20088 // Offset is set zero to mark that this bracket is still open 20089 20090 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24 /* code */)) + 1)) = TPCRE2_UCHAR8(int32(0) >> 8) 20091 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24 /* code */)) + 2)) = TPCRE2_UCHAR8(0 & 255) 20092 *(*uintptr)(unsafe.Pointer(bp + 24 /* code */)) += uintptr(Tuint32_t(1+DLINK_SIZE) + skipunits) 20093 20094 // Loop for each alternative branch 20095 20096 for { 20097 var branch_return int32 20098 20099 // Insert OP_REVERSE if this is as lookbehind assertion. 20100 20101 if lookbehind != 0 && lookbehindlength > Tuint32_t(0) { 20102 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 24 /* code */)), 1))) = OP_REVERSE 20103 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24 /* code */)))) = TPCRE2_UCHAR8(lookbehindlength >> 8) 20104 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24 /* code */)) + 1)) = TPCRE2_UCHAR8(lookbehindlength & Tuint32_t(255)) 20105 *(*uintptr)(unsafe.Pointer(bp + 24 /* code */)) += uintptr(DLINK_SIZE) 20106 *(*Tsize_t)(unsafe.Pointer(bp + 72 /* length */)) += uint64(1 + DLINK_SIZE) 20107 } 20108 20109 // Now compile the branch; in the pre-compile phase its length gets added 20110 // into the length. 20111 20112 if libc.AssignInt32(&branch_return, compile_branch(tls, bp+16, bp+24, bp+32, errorcodeptr, bp+40, 20113 bp+44, bp+48, bp+52, bp+56, 20114 cb, func() uintptr { 20115 if lengthptr == uintptr(0) { 20116 return uintptr(0) 20117 } 20118 return bp + 72 20119 }())) == 0 { 20120 return 0 20121 } 20122 20123 // If a branch can match an empty string, so can the whole group. 20124 20125 if branch_return < 0 { 20126 okreturn = -1 20127 } 20128 20129 // In the real compile phase, there is some post-processing to be done. 20130 20131 if lengthptr == uintptr(0) { 20132 // If this is the first branch, the firstcu and reqcu values for the 20133 // branch become the values for the regex. 20134 20135 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(last_branch))) != OP_ALT { 20136 firstcu = *(*Tuint32_t)(unsafe.Pointer(bp + 40 /* branchfirstcu */)) 20137 firstcuflags = *(*Tuint32_t)(unsafe.Pointer(bp + 44 /* branchfirstcuflags */)) 20138 reqcu = *(*Tuint32_t)(unsafe.Pointer(bp + 48 /* branchreqcu */)) 20139 reqcuflags = *(*Tuint32_t)(unsafe.Pointer(bp + 52 /* branchreqcuflags */)) 20140 } else { 20141 // If we previously had a firstcu, but it doesn't match the new branch, 20142 // we have to abandon the firstcu for the regex, but if there was 20143 // previously no reqcu, it takes on the value of the old firstcu. 20144 20145 if firstcuflags != *(*Tuint32_t)(unsafe.Pointer(bp + 44)) || firstcu != *(*Tuint32_t)(unsafe.Pointer(bp + 40)) { 20146 if firstcuflags < DREQ_NONE { 20147 if reqcuflags >= DREQ_NONE { 20148 reqcu = firstcu 20149 reqcuflags = firstcuflags 20150 } 20151 } 20152 firstcuflags = DREQ_NONE 20153 } 20154 20155 // If we (now or from before) have no firstcu, a firstcu from the 20156 // branch becomes a reqcu if there isn't a branch reqcu. 20157 20158 if firstcuflags >= DREQ_NONE && *(*Tuint32_t)(unsafe.Pointer(bp + 44)) < DREQ_NONE && *(*Tuint32_t)(unsafe.Pointer(bp + 52)) >= DREQ_NONE { 20159 *(*Tuint32_t)(unsafe.Pointer(bp + 48 /* branchreqcu */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 40 /* branchfirstcu */)) 20160 *(*Tuint32_t)(unsafe.Pointer(bp + 52 /* branchreqcuflags */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 44 /* branchfirstcuflags */)) 20161 } 20162 20163 // Now ensure that the reqcus match 20164 20165 if reqcuflags&libc.CplUint32(DREQ_VARY) != *(*Tuint32_t)(unsafe.Pointer(bp + 52))&libc.CplUint32(DREQ_VARY) || reqcu != *(*Tuint32_t)(unsafe.Pointer(bp + 48)) { 20166 reqcuflags = DREQ_NONE 20167 } else { 20168 reqcu = *(*Tuint32_t)(unsafe.Pointer(bp + 48 /* branchreqcu */)) 20169 reqcuflags = reqcuflags | *(*Tuint32_t)(unsafe.Pointer(bp + 52)) // To "or" REQ_VARY if present 20170 } 20171 } 20172 } 20173 20174 // Handle reaching the end of the expression, either ')' or end of pattern. 20175 // In the real compile phase, go back through the alternative branches and 20176 // reverse the chain of offsets, with the field in the BRA item now becoming an 20177 // offset to the first alternative. If there are no alternatives, it points to 20178 // the end of the group. The length in the terminating ket is always the length 20179 // of the whole bracketed item. Return leaving the pointer at the terminating 20180 // char. 20181 20182 if *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32))))&0xffff0000 != DMETA_ALT { 20183 if lengthptr == uintptr(0) { 20184 var branch_length Tsize_t = Tsize_t((int64(*(*uintptr)(unsafe.Pointer(bp + 24))) - int64(last_branch)) / 1) 20185 for __ccgo := true; __ccgo; __ccgo = branch_length > uint64(0) { 20186 var prev_length Tsize_t = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(last_branch + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(last_branch + 2))))) 20187 *(*TPCRE2_UCHAR8)(unsafe.Pointer(last_branch + 1)) = TPCRE2_UCHAR8(branch_length >> 8) 20188 *(*TPCRE2_UCHAR8)(unsafe.Pointer(last_branch + 2)) = TPCRE2_UCHAR8(branch_length & uint64(255)) 20189 branch_length = prev_length 20190 last_branch -= uintptr(branch_length) 20191 } 20192 } 20193 20194 // Fill in the ket 20195 20196 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24 /* code */)))) = OP_KET 20197 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24 /* code */)) + 1)) = TPCRE2_UCHAR8(int32((int64(*(*uintptr)(unsafe.Pointer(bp + 24)))-int64(start_bracket))/1) >> 8) 20198 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24 /* code */)) + 2)) = TPCRE2_UCHAR8(int32((int64(*(*uintptr)(unsafe.Pointer(bp + 24)))-int64(start_bracket))/1) & 255) 20199 *(*uintptr)(unsafe.Pointer(bp + 24 /* code */)) += uintptr(1 + DLINK_SIZE) 20200 20201 // If it was a capturing subpattern, remove the block from the chain. 20202 20203 if capnumber > 0 { 20204 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fopen_caps = (*Topen_capitem)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fopen_caps)).Fnext 20205 } 20206 20207 // Set values to pass back 20208 20209 *(*uintptr)(unsafe.Pointer(codeptr)) = *(*uintptr)(unsafe.Pointer(bp + 24 /* code */)) 20210 *(*uintptr)(unsafe.Pointer(pptrptr)) = *(*uintptr)(unsafe.Pointer(bp + 32 /* pptr */)) 20211 *(*Tuint32_t)(unsafe.Pointer(firstcuptr)) = firstcu 20212 *(*Tuint32_t)(unsafe.Pointer(firstcuflagsptr)) = firstcuflags 20213 *(*Tuint32_t)(unsafe.Pointer(reqcuptr)) = reqcu 20214 *(*Tuint32_t)(unsafe.Pointer(reqcuflagsptr)) = reqcuflags 20215 if lengthptr != uintptr(0) { 20216 if uint64(0x7fffffff-20)-*(*Tsize_t)(unsafe.Pointer(lengthptr)) < *(*Tsize_t)(unsafe.Pointer(bp + 72)) { 20217 *(*int32)(unsafe.Pointer(errorcodeptr)) = ERR20 20218 return 0 20219 } 20220 *(*Tsize_t)(unsafe.Pointer(lengthptr)) += *(*Tsize_t)(unsafe.Pointer(bp + 72)) 20221 } 20222 return okreturn 20223 } 20224 20225 // Another branch follows. In the pre-compile phase, we can move the code 20226 // pointer back to where it was for the start of the first branch. (That is, 20227 // pretend that each branch is the only one.) 20228 // 20229 // In the real compile phase, insert an ALT node. Its length field points back 20230 // to the previous branch while the bracket remains open. At the end the chain 20231 // is reversed. It's done like this so that the start of the bracket has a 20232 // zero offset until it is closed, making it possible to detect recursion. 20233 20234 if lengthptr != uintptr(0) { 20235 *(*uintptr)(unsafe.Pointer(bp + 24 /* code */)) = *(*uintptr)(unsafe.Pointer(codeptr)) + uintptr(1) + uintptr(DLINK_SIZE) + uintptr(skipunits) 20236 *(*Tsize_t)(unsafe.Pointer(bp + 72 /* length */)) += uint64(1 + DLINK_SIZE) 20237 } else { 20238 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24 /* code */)))) = OP_ALT 20239 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24 /* code */)) + 1)) = TPCRE2_UCHAR8(int32((int64(*(*uintptr)(unsafe.Pointer(bp + 24)))-int64(last_branch))/1) >> 8) 20240 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 24 /* code */)) + 2)) = TPCRE2_UCHAR8(int32((int64(*(*uintptr)(unsafe.Pointer(bp + 24)))-int64(last_branch))/1) & 255) 20241 (*Tbranch_chain_8)(unsafe.Pointer(bp + 56 /* &bc */)).Fcurrent_branch = libc.AssignUintptr(&last_branch, *(*uintptr)(unsafe.Pointer(bp + 24 /* code */))) 20242 *(*uintptr)(unsafe.Pointer(bp + 24 /* code */)) += uintptr(1 + DLINK_SIZE) 20243 } 20244 20245 // Set the lookbehind length (if not in a lookbehind the value will be zero) 20246 // and then advance past the vertical bar. 20247 20248 lookbehindlength = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32)))) & 0x0000ffff 20249 *(*uintptr)(unsafe.Pointer(bp + 32 /* pptr */)) += 4 20250 } 20251 return int32(0) 20252 // Control never reaches here 20253 } 20254 20255 // ************************************************ 20256 // 20257 // Check for anchored pattern * 20258 // 20259 20260 // Try to find out if this is an anchored regular expression. Consider each 20261 // alternative branch. If they all start with OP_SOD or OP_CIRC, or with a bracket 20262 // all of whose alternatives start with OP_SOD or OP_CIRC (recurse ad lib), then 20263 // it's anchored. However, if this is a multiline pattern, then only OP_SOD will 20264 // be found, because ^ generates OP_CIRCM in that mode. 20265 // 20266 // We can also consider a regex to be anchored if OP_SOM starts all its branches. 20267 // This is the code for \G, which means "match at start of match position, taking 20268 // into account the match offset". 20269 // 20270 // A branch is also implicitly anchored if it starts with .* and DOTALL is set, 20271 // because that will try the rest of the pattern at all possible matching points, 20272 // so there is no point trying again.... er .... 20273 // 20274 // .... except when the .* appears inside capturing parentheses, and there is a 20275 // subsequent back reference to those parentheses. We haven't enough information 20276 // to catch that case precisely. 20277 // 20278 // At first, the best we could do was to detect when .* was in capturing brackets 20279 // and the highest back reference was greater than or equal to that level. 20280 // However, by keeping a bitmap of the first 31 back references, we can catch some 20281 // of the more common cases more precisely. 20282 // 20283 // ... A second exception is when the .* appears inside an atomic group, because 20284 // this prevents the number of characters it matches from being adjusted. 20285 // 20286 // Arguments: 20287 // code points to start of the compiled pattern 20288 // bracket_map a bitmap of which brackets we are inside while testing; this 20289 // handles up to substring 31; after that we just have to take 20290 // the less precise approach 20291 // cb points to the compile data block 20292 // atomcount atomic group level 20293 // inassert TRUE if in an assertion 20294 // 20295 // Returns: TRUE or FALSE 20296 20297 func is_anchored(tls *libc.TLS, code TPCRE2_SPTR8, bracket_map Tuint32_t, cb uintptr, atomcount int32, inassert TBOOL) TBOOL { /* pcre2_compile.c:8394:1: */ 20298 for __ccgo := true; __ccgo; __ccgo = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_ALT { 20299 var scode TPCRE2_SPTR8 = first_significant_code(tls, 20300 code+uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))]), DFALSE) 20301 var op int32 = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode))) 20302 20303 // Non-capturing brackets 20304 20305 if op == OP_BRA || op == OP_BRAPOS || op == OP_SBRA || op == OP_SBRAPOS { 20306 if !(is_anchored(tls, scode, bracket_map, cb, atomcount, inassert) != 0) { 20307 return DFALSE 20308 } 20309 } else if op == OP_CBRA || op == OP_CBRAPOS || op == OP_SCBRA || op == OP_SCBRAPOS { 20310 var n int32 = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 4))))) 20311 var new_map Tuint32_t = bracket_map | func() uint32 { 20312 if n < 32 { 20313 return uint32(1) << n 20314 } 20315 return uint32(1) 20316 }() 20317 if !(is_anchored(tls, scode, new_map, cb, atomcount, inassert) != 0) { 20318 return DFALSE 20319 } 20320 } else if op == OP_ASSERT || op == OP_ASSERT_NA { 20321 if !(is_anchored(tls, scode, bracket_map, cb, atomcount, DTRUE) != 0) { 20322 return DFALSE 20323 } 20324 } else if op == OP_COND || op == OP_SCOND { 20325 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 2)))))))) != OP_ALT { 20326 return DFALSE 20327 } 20328 if !(is_anchored(tls, scode, bracket_map, cb, atomcount, inassert) != 0) { 20329 return DFALSE 20330 } 20331 } else if op == OP_ONCE { 20332 if !(is_anchored(tls, scode, bracket_map, cb, atomcount+1, inassert) != 0) { 20333 return DFALSE 20334 } 20335 } else if op == OP_TYPESTAR || op == OP_TYPEMINSTAR || op == OP_TYPEPOSSTAR { 20336 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 1))) != OP_ALLANY || bracket_map&(*Tcompile_block_8)(unsafe.Pointer(cb)).Fbackref_map != Tuint32_t(0) || atomcount > 0 || (*Tcompile_block_8)(unsafe.Pointer(cb)).Fhad_pruneorskip != 0 || inassert != 0 || (*Tcompile_block_8)(unsafe.Pointer(cb)).Fexternal_options&DPCRE2_NO_DOTSTAR_ANCHOR != Tuint32_t(0) { 20337 return DFALSE 20338 } 20339 } else if op != OP_SOD && op != OP_SOM && op != OP_CIRC { 20340 return DFALSE 20341 } 20342 20343 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 20344 } // Loop for each alternative 20345 return DTRUE 20346 } 20347 20348 // ************************************************ 20349 // 20350 // Check for starting with ^ or .* * 20351 // 20352 20353 // This is called to find out if every branch starts with ^ or .* so that 20354 // "first char" processing can be done to speed things up in multiline 20355 // matching and for non-DOTALL patterns that start with .* (which must start at 20356 // the beginning or after \n). As in the case of is_anchored() (see above), we 20357 // have to take account of back references to capturing brackets that contain .* 20358 // because in that case we can't make the assumption. Also, the appearance of .* 20359 // inside atomic brackets or in an assertion, or in a pattern that contains *PRUNE 20360 // or *SKIP does not count, because once again the assumption no longer holds. 20361 // 20362 // Arguments: 20363 // code points to start of the compiled pattern or a group 20364 // bracket_map a bitmap of which brackets we are inside while testing; this 20365 // handles up to substring 31; after that we just have to take 20366 // the less precise approach 20367 // cb points to the compile data 20368 // atomcount atomic group level 20369 // inassert TRUE if in an assertion 20370 // 20371 // Returns: TRUE or FALSE 20372 20373 func is_startline(tls *libc.TLS, code TPCRE2_SPTR8, bracket_map uint32, cb uintptr, atomcount int32, inassert TBOOL) TBOOL { /* pcre2_compile.c:8499:1: */ 20374 for __ccgo := true; __ccgo; __ccgo = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_ALT { 20375 var scode TPCRE2_SPTR8 = first_significant_code(tls, 20376 code+uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))]), DFALSE) 20377 var op int32 = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode))) 20378 20379 // If we are at the start of a conditional assertion group, *both* the 20380 // conditional assertion *and* what follows the condition must satisfy the test 20381 // for start of line. Other kinds of condition fail. Note that there may be an 20382 // auto-callout at the start of a condition. 20383 20384 if op == OP_COND { 20385 scode += TPCRE2_SPTR8(1 + DLINK_SIZE) 20386 20387 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode))) == OP_CALLOUT { 20388 scode += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[OP_CALLOUT]) 20389 } else if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode))) == OP_CALLOUT_STR { 20390 scode += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 5)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 6))))) 20391 } 20392 20393 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode))) { 20394 case OP_CREF: 20395 fallthrough 20396 case OP_DNCREF: 20397 fallthrough 20398 case OP_RREF: 20399 fallthrough 20400 case OP_DNRREF: 20401 fallthrough 20402 case OP_FAIL: 20403 fallthrough 20404 case OP_FALSE: 20405 fallthrough 20406 case OP_TRUE: 20407 return DFALSE 20408 fallthrough 20409 20410 default: // Assertion 20411 if !(is_startline(tls, scode, bracket_map, cb, atomcount, DTRUE) != 0) { 20412 return DFALSE 20413 } 20414 for __ccgo1 := true; __ccgo1; __ccgo1 = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode))) == OP_ALT { 20415 scode += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 2))))) 20416 } 20417 scode += TPCRE2_SPTR8(1 + DLINK_SIZE) 20418 break 20419 } 20420 scode = first_significant_code(tls, scode, DFALSE) 20421 op = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode))) 20422 } 20423 20424 // Non-capturing brackets 20425 20426 if op == OP_BRA || op == OP_BRAPOS || op == OP_SBRA || op == OP_SBRAPOS { 20427 if !(is_startline(tls, scode, bracket_map, cb, atomcount, inassert) != 0) { 20428 return DFALSE 20429 } 20430 } else if op == OP_CBRA || op == OP_CBRAPOS || op == OP_SCBRA || op == OP_SCBRAPOS { 20431 var n int32 = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 4))))) 20432 var new_map int32 = int32(bracket_map | func() uint32 { 20433 if n < 32 { 20434 return uint32(1) << n 20435 } 20436 return uint32(1) 20437 }()) 20438 if !(is_startline(tls, scode, uint32(new_map), cb, atomcount, inassert) != 0) { 20439 return DFALSE 20440 } 20441 } else if op == OP_ASSERT || op == OP_ASSERT_NA { 20442 if !(is_startline(tls, scode, bracket_map, cb, atomcount, DTRUE) != 0) { 20443 return DFALSE 20444 } 20445 } else if op == OP_ONCE { 20446 if !(is_startline(tls, scode, bracket_map, cb, atomcount+1, inassert) != 0) { 20447 return DFALSE 20448 } 20449 } else if op == OP_TYPESTAR || op == OP_TYPEMINSTAR || op == OP_TYPEPOSSTAR { 20450 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 1))) != OP_ANY || bracket_map&(*Tcompile_block_8)(unsafe.Pointer(cb)).Fbackref_map != uint32(0) || atomcount > 0 || (*Tcompile_block_8)(unsafe.Pointer(cb)).Fhad_pruneorskip != 0 || inassert != 0 || (*Tcompile_block_8)(unsafe.Pointer(cb)).Fexternal_options&DPCRE2_NO_DOTSTAR_ANCHOR != Tuint32_t(0) { 20451 return DFALSE 20452 } 20453 } else if op != OP_CIRC && op != OP_CIRCM { 20454 return DFALSE 20455 } 20456 20457 // Move on to the next alternative 20458 20459 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 20460 } // Loop for each alternative 20461 return DTRUE 20462 } 20463 20464 // ************************************************ 20465 // 20466 // Scan compiled regex for recursion reference * 20467 // 20468 20469 // This function scans through a compiled pattern until it finds an instance of 20470 // OP_RECURSE. 20471 // 20472 // Arguments: 20473 // code points to start of expression 20474 // utf TRUE in UTF mode 20475 // 20476 // Returns: pointer to the opcode for OP_RECURSE, or NULL if not found 20477 20478 func find_recurse(tls *libc.TLS, code TPCRE2_SPTR8, utf TBOOL) TPCRE2_SPTR8 { /* pcre2_compile.c:8621:1: */ 20479 for { 20480 var c TPCRE2_UCHAR8 = *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) 20481 if int32(c) == OP_END { 20482 return uintptr(0) 20483 } 20484 if int32(c) == OP_RECURSE { 20485 return code 20486 } 20487 20488 // XCLASS is used for classes that cannot be represented just by a bit map. 20489 // This includes negated single high-valued characters. CALLOUT_STR is used for 20490 // callouts with string arguments. In both cases the length in the table is 20491 // zero; the actual length is stored in the compiled code. 20492 20493 if int32(c) == OP_XCLASS { 20494 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 20495 } else if int32(c) == OP_CALLOUT_STR { 20496 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 6))))) 20497 } else { 20498 switch int32(c) { 20499 case OP_TYPESTAR: 20500 fallthrough 20501 case OP_TYPEMINSTAR: 20502 fallthrough 20503 case OP_TYPEPLUS: 20504 fallthrough 20505 case OP_TYPEMINPLUS: 20506 fallthrough 20507 case OP_TYPEQUERY: 20508 fallthrough 20509 case OP_TYPEMINQUERY: 20510 fallthrough 20511 case OP_TYPEPOSSTAR: 20512 fallthrough 20513 case OP_TYPEPOSPLUS: 20514 fallthrough 20515 case OP_TYPEPOSQUERY: 20516 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) == OP_PROP || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) == OP_NOTPROP { 20517 code += uintptr(2) 20518 } 20519 break 20520 fallthrough 20521 20522 case OP_TYPEPOSUPTO: 20523 fallthrough 20524 case OP_TYPEUPTO: 20525 fallthrough 20526 case OP_TYPEMINUPTO: 20527 fallthrough 20528 case OP_TYPEEXACT: 20529 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))) == OP_PROP || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))) == OP_NOTPROP { 20530 code += uintptr(2) 20531 } 20532 break 20533 fallthrough 20534 20535 case OP_MARK: 20536 fallthrough 20537 case OP_COMMIT_ARG: 20538 fallthrough 20539 case OP_PRUNE_ARG: 20540 fallthrough 20541 case OP_SKIP_ARG: 20542 fallthrough 20543 case OP_THEN_ARG: 20544 code += TPCRE2_SPTR8(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) 20545 break 20546 } 20547 20548 // Add in the fixed length from the table 20549 20550 code += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[c]) 20551 20552 // In UTF-8 and UTF-16 modes, opcodes that are followed by a character may 20553 // be followed by a multi-unit character. The length in the table is a 20554 // minimum, so we have to arrange to skip the extra units. 20555 20556 if utf != 0 { 20557 switch int32(c) { 20558 case OP_CHAR: 20559 fallthrough 20560 case OP_CHARI: 20561 fallthrough 20562 case OP_NOT: 20563 fallthrough 20564 case OP_NOTI: 20565 fallthrough 20566 case OP_EXACT: 20567 fallthrough 20568 case OP_EXACTI: 20569 fallthrough 20570 case OP_NOTEXACT: 20571 fallthrough 20572 case OP_NOTEXACTI: 20573 fallthrough 20574 case OP_UPTO: 20575 fallthrough 20576 case OP_UPTOI: 20577 fallthrough 20578 case OP_NOTUPTO: 20579 fallthrough 20580 case OP_NOTUPTOI: 20581 fallthrough 20582 case OP_MINUPTO: 20583 fallthrough 20584 case OP_MINUPTOI: 20585 fallthrough 20586 case OP_NOTMINUPTO: 20587 fallthrough 20588 case OP_NOTMINUPTOI: 20589 fallthrough 20590 case OP_POSUPTO: 20591 fallthrough 20592 case OP_POSUPTOI: 20593 fallthrough 20594 case OP_NOTPOSUPTO: 20595 fallthrough 20596 case OP_NOTPOSUPTOI: 20597 fallthrough 20598 case OP_STAR: 20599 fallthrough 20600 case OP_STARI: 20601 fallthrough 20602 case OP_NOTSTAR: 20603 fallthrough 20604 case OP_NOTSTARI: 20605 fallthrough 20606 case OP_MINSTAR: 20607 fallthrough 20608 case OP_MINSTARI: 20609 fallthrough 20610 case OP_NOTMINSTAR: 20611 fallthrough 20612 case OP_NOTMINSTARI: 20613 fallthrough 20614 case OP_POSSTAR: 20615 fallthrough 20616 case OP_POSSTARI: 20617 fallthrough 20618 case OP_NOTPOSSTAR: 20619 fallthrough 20620 case OP_NOTPOSSTARI: 20621 fallthrough 20622 case OP_PLUS: 20623 fallthrough 20624 case OP_PLUSI: 20625 fallthrough 20626 case OP_NOTPLUS: 20627 fallthrough 20628 case OP_NOTPLUSI: 20629 fallthrough 20630 case OP_MINPLUS: 20631 fallthrough 20632 case OP_MINPLUSI: 20633 fallthrough 20634 case OP_NOTMINPLUS: 20635 fallthrough 20636 case OP_NOTMINPLUSI: 20637 fallthrough 20638 case OP_POSPLUS: 20639 fallthrough 20640 case OP_POSPLUSI: 20641 fallthrough 20642 case OP_NOTPOSPLUS: 20643 fallthrough 20644 case OP_NOTPOSPLUSI: 20645 fallthrough 20646 case OP_QUERY: 20647 fallthrough 20648 case OP_QUERYI: 20649 fallthrough 20650 case OP_NOTQUERY: 20651 fallthrough 20652 case OP_NOTQUERYI: 20653 fallthrough 20654 case OP_MINQUERY: 20655 fallthrough 20656 case OP_MINQUERYI: 20657 fallthrough 20658 case OP_NOTMINQUERY: 20659 fallthrough 20660 case OP_NOTMINQUERYI: 20661 fallthrough 20662 case OP_POSQUERY: 20663 fallthrough 20664 case OP_POSQUERYI: 20665 fallthrough 20666 case OP_NOTPOSQUERY: 20667 fallthrough 20668 case OP_NOTPOSQUERYI: 20669 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + libc.UintptrFromInt32(-1)))) >= 0xc0 { 20670 code += TPCRE2_SPTR8(X_pcre2_utf8_table4[uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + libc.UintptrFromInt32(-1))))&0x3f]) 20671 } 20672 break 20673 } 20674 } 20675 } 20676 } 20677 return TPCRE2_SPTR8(0) 20678 } 20679 20680 // ************************************************ 20681 // 20682 // Check for asserted fixed first code unit * 20683 // 20684 20685 // During compilation, the "first code unit" settings from forward assertions 20686 // are discarded, because they can cause conflicts with actual literals that 20687 // follow. However, if we end up without a first code unit setting for an 20688 // unanchored pattern, it is worth scanning the regex to see if there is an 20689 // initial asserted first code unit. If all branches start with the same asserted 20690 // code unit, or with a non-conditional bracket all of whose alternatives start 20691 // with the same asserted code unit (recurse ad lib), then we return that code 20692 // unit, with the flags set to zero or REQ_CASELESS; otherwise return zero with 20693 // REQ_NONE in the flags. 20694 // 20695 // Arguments: 20696 // code points to start of compiled pattern 20697 // flags points to the first code unit flags 20698 // inassert non-zero if in an assertion 20699 // 20700 // Returns: the fixed first code unit, or 0 with REQ_NONE in flags 20701 20702 func find_firstassertedcu(tls *libc.TLS, code TPCRE2_SPTR8, flags uintptr, inassert Tuint32_t) Tuint32_t { /* pcre2_compile.c:8777:1: */ 20703 bp := tls.Alloc(4) 20704 defer tls.Free(4) 20705 20706 var c Tuint32_t = Tuint32_t(0) 20707 var cflags Tuint32_t = DREQ_NONE 20708 20709 *(*Tuint32_t)(unsafe.Pointer(flags)) = DREQ_NONE 20710 for __ccgo := true; __ccgo; __ccgo = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_ALT { 20711 var d Tuint32_t 20712 // var dflags Tuint32_t at bp, 4 20713 20714 var xl int32 20715 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_CBRA || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_SCBRA || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_CBRAPOS || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_SCBRAPOS { 20716 xl = DIMM2_SIZE 20717 } else { 20718 xl = 0 20719 } 20720 var scode TPCRE2_SPTR8 = first_significant_code(tls, code+uintptr(1)+uintptr(DLINK_SIZE)+uintptr(xl), DTRUE) 20721 var op TPCRE2_UCHAR8 = *(*TPCRE2_UCHAR8)(unsafe.Pointer(scode)) 20722 20723 switch int32(op) { 20724 default: 20725 return Tuint32_t(0) 20726 20727 case OP_BRA: 20728 fallthrough 20729 case OP_BRAPOS: 20730 fallthrough 20731 case OP_CBRA: 20732 fallthrough 20733 case OP_SCBRA: 20734 fallthrough 20735 case OP_CBRAPOS: 20736 fallthrough 20737 case OP_SCBRAPOS: 20738 fallthrough 20739 case OP_ASSERT: 20740 fallthrough 20741 case OP_ASSERT_NA: 20742 fallthrough 20743 case OP_ONCE: 20744 fallthrough 20745 case OP_SCRIPT_RUN: 20746 d = find_firstassertedcu(tls, scode, bp, inassert+func() uint32 { 20747 if int32(op) == OP_ASSERT || int32(op) == OP_ASSERT_NA { 20748 return uint32(1) 20749 } 20750 return uint32(0) 20751 }()) 20752 if *(*Tuint32_t)(unsafe.Pointer(bp)) >= DREQ_NONE { 20753 return Tuint32_t(0) 20754 } 20755 if cflags >= DREQ_NONE { 20756 c = d 20757 cflags = *(*Tuint32_t)(unsafe.Pointer(bp /* dflags */)) 20758 } else if c != d || cflags != *(*Tuint32_t)(unsafe.Pointer(bp)) { 20759 return Tuint32_t(0) 20760 } 20761 break 20762 20763 case OP_EXACT: 20764 scode += TPCRE2_SPTR8(DIMM2_SIZE) 20765 fallthrough 20766 // Fall through 20767 20768 case OP_CHAR: 20769 fallthrough 20770 case OP_PLUS: 20771 fallthrough 20772 case OP_MINPLUS: 20773 fallthrough 20774 case OP_POSPLUS: 20775 if inassert == Tuint32_t(0) { 20776 return Tuint32_t(0) 20777 } 20778 if cflags >= DREQ_NONE { 20779 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 1))) 20780 cflags = Tuint32_t(0) 20781 } else if c != Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 1))) { 20782 return Tuint32_t(0) 20783 } 20784 break 20785 20786 case OP_EXACTI: 20787 scode += TPCRE2_SPTR8(DIMM2_SIZE) 20788 fallthrough 20789 // Fall through 20790 20791 case OP_CHARI: 20792 fallthrough 20793 case OP_PLUSI: 20794 fallthrough 20795 case OP_MINPLUSI: 20796 fallthrough 20797 case OP_POSPLUSI: 20798 if inassert == Tuint32_t(0) { 20799 return Tuint32_t(0) 20800 } 20801 20802 // If the character is more than one code unit long, we cannot set its 20803 // first code unit when matching caselessly. Later scanning may pick up 20804 // multiple code units. 20805 20806 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 1))) >= 0x80 { 20807 return Tuint32_t(0) 20808 } 20809 20810 if cflags >= DREQ_NONE { 20811 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 1))) 20812 cflags = DREQ_CASELESS 20813 } else if c != Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(scode + 1))) { 20814 return Tuint32_t(0) 20815 } 20816 break 20817 } 20818 20819 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 20820 } 20821 20822 *(*Tuint32_t)(unsafe.Pointer(flags)) = cflags 20823 return c 20824 } 20825 20826 // ************************************************ 20827 // 20828 // Add an entry to the name/number table * 20829 // 20830 20831 // This function is called between compiling passes to add an entry to the 20832 // name/number table, maintaining alphabetical order. Checking for permitted 20833 // and forbidden duplicates has already been done. 20834 // 20835 // Arguments: 20836 // cb the compile data block 20837 // name the name to add 20838 // length the length of the name 20839 // groupno the group number 20840 // tablecount the count of names in the table so far 20841 // 20842 // Returns: nothing 20843 20844 func add_name_to_table(tls *libc.TLS, cb uintptr, name TPCRE2_SPTR8, length int32, groupno uint32, tablecount Tuint32_t) { /* pcre2_compile.c:8882:1: */ 20845 var i Tuint32_t 20846 var slot uintptr = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fname_table 20847 20848 for i = Tuint32_t(0); i < tablecount; i++ { 20849 var crc int32 = libc.Xmemcmp(tls, name, slot+uintptr(DIMM2_SIZE), uint64(length*(DPCRE2_CODE_UNIT_WIDTH/8))) 20850 if crc == 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot + uintptr(DIMM2_SIZE+length)))) != 0 { 20851 crc = -1 20852 } // Current name is a substring 20853 20854 // Make space in the table and break the loop for an earlier name. For a 20855 // duplicate or later name, carry on. We do this for duplicates so that in the 20856 // simple case (when ?(| is not used) they are in order of their numbers. In all 20857 // cases they are in the order in which they appear in the pattern. 20858 20859 if crc < 0 { 20860 libc.Xmemmove(tls, slot+uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fname_entry_size), slot, 20861 uint64((tablecount-i)*Tuint32_t((*Tcompile_block_8)(unsafe.Pointer(cb)).Fname_entry_size)*Tuint32_t(DPCRE2_CODE_UNIT_WIDTH/8))) 20862 break 20863 } 20864 20865 // Continue the loop for a later or duplicate name 20866 20867 slot += uintptr((*Tcompile_block_8)(unsafe.Pointer(cb)).Fname_entry_size) 20868 } 20869 20870 *(*TPCRE2_UCHAR8)(unsafe.Pointer(slot)) = TPCRE2_UCHAR8(groupno >> 8) 20871 *(*TPCRE2_UCHAR8)(unsafe.Pointer(slot + 1)) = TPCRE2_UCHAR8(groupno & uint32(255)) 20872 libc.Xmemcpy(tls, slot+uintptr(DIMM2_SIZE), name, uint64(length*(DPCRE2_CODE_UNIT_WIDTH/8))) 20873 20874 // Add a terminating zero and fill the rest of the slot with zeroes so that 20875 // the memory is all initialized. Otherwise valgrind moans about uninitialized 20876 // memory when saving serialized compiled patterns. 20877 20878 libc.Xmemset(tls, slot+uintptr(DIMM2_SIZE)+uintptr(length), 0, 20879 uint64((int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fname_entry_size)-length-DIMM2_SIZE)*(DPCRE2_CODE_UNIT_WIDTH/8))) 20880 } 20881 20882 // ************************************************ 20883 // 20884 // Skip in parsed pattern * 20885 // 20886 20887 // This function is called to skip parts of the parsed pattern when finding the 20888 // length of a lookbehind branch. It is called after (*ACCEPT) and (*FAIL) to find 20889 // the end of the branch, it is called to skip over an internal lookaround or 20890 // (DEFINE) group, and it is also called to skip to the end of a class, during 20891 // which it will never encounter nested groups (but there's no need to have 20892 // special code for that). 20893 // 20894 // When called to find the end of a branch or group, pptr must point to the first 20895 // meta code inside the branch, not the branch-starting code. In other cases it 20896 // can point to the item that causes the function to be called. 20897 // 20898 // Arguments: 20899 // pptr current pointer to skip from 20900 // skiptype PSKIP_CLASS when skipping to end of class 20901 // PSKIP_ALT when META_ALT ends the skip 20902 // PSKIP_KET when only META_KET ends the skip 20903 // 20904 // Returns: new value of pptr 20905 // NULL if META_END is reached - should never occur 20906 // or for an unknown meta value - likewise 20907 20908 func parsed_skip(tls *libc.TLS, pptr uintptr, skiptype Tuint32_t) uintptr { /* pcre2_compile.c:8950:17: */ 20909 var nestlevel Tuint32_t = Tuint32_t(0) 20910 20911 for ; ; pptr += 4 { 20912 var meta Tuint32_t = *(*Tuint32_t)(unsafe.Pointer(pptr)) & 0xffff0000 20913 20914 switch meta { 20915 default: // Just skip over most items 20916 if meta < DMETA_END { 20917 continue 20918 } // Literal 20919 break 20920 20921 // This should never occur. 20922 20923 case DMETA_END: 20924 return uintptr(0) 20925 20926 // The data for these items is variable in length. 20927 20928 case DMETA_BACKREF: // Offset is present only if group >= 10 20929 if *(*Tuint32_t)(unsafe.Pointer(pptr))&0x0000ffff >= Tuint32_t(10) { 20930 pptr += 4 * uintptr(DSIZEOFFSET) 20931 } 20932 break 20933 20934 case DMETA_ESCAPE: // A few escapes are followed by data items. 20935 switch *(*Tuint32_t)(unsafe.Pointer(pptr)) & 0x0000ffff { 20936 case ESC_P: 20937 fallthrough 20938 case ESC_p: 20939 pptr += 4 * uintptr(1) 20940 break 20941 20942 case ESC_g: 20943 fallthrough 20944 case ESC_k: 20945 pptr += 4 * uintptr(1+DSIZEOFFSET) 20946 break 20947 } 20948 break 20949 20950 case DMETA_MARK: 20951 fallthrough // Add the length of the name. 20952 case DMETA_COMMIT_ARG: 20953 fallthrough 20954 case DMETA_PRUNE_ARG: 20955 fallthrough 20956 case DMETA_SKIP_ARG: 20957 fallthrough 20958 case DMETA_THEN_ARG: 20959 pptr += 4 * uintptr(*(*Tuint32_t)(unsafe.Pointer(pptr + 1*4))) 20960 break 20961 20962 // These are the "active" items in this loop. 20963 20964 case DMETA_CLASS_END: 20965 if skiptype == PSKIP_CLASS { 20966 return pptr 20967 } 20968 break 20969 20970 case DMETA_ATOMIC: 20971 fallthrough 20972 case DMETA_CAPTURE: 20973 fallthrough 20974 case DMETA_COND_ASSERT: 20975 fallthrough 20976 case DMETA_COND_DEFINE: 20977 fallthrough 20978 case DMETA_COND_NAME: 20979 fallthrough 20980 case DMETA_COND_NUMBER: 20981 fallthrough 20982 case DMETA_COND_RNAME: 20983 fallthrough 20984 case DMETA_COND_RNUMBER: 20985 fallthrough 20986 case DMETA_COND_VERSION: 20987 fallthrough 20988 case DMETA_LOOKAHEAD: 20989 fallthrough 20990 case DMETA_LOOKAHEADNOT: 20991 fallthrough 20992 case DMETA_LOOKAHEAD_NA: 20993 fallthrough 20994 case DMETA_LOOKBEHIND: 20995 fallthrough 20996 case DMETA_LOOKBEHINDNOT: 20997 fallthrough 20998 case DMETA_LOOKBEHIND_NA: 20999 fallthrough 21000 case DMETA_NOCAPTURE: 21001 fallthrough 21002 case DMETA_SCRIPT_RUN: 21003 nestlevel++ 21004 break 21005 21006 case DMETA_ALT: 21007 if nestlevel == Tuint32_t(0) && skiptype == PSKIP_ALT { 21008 return pptr 21009 } 21010 break 21011 21012 case DMETA_KET: 21013 if nestlevel == Tuint32_t(0) { 21014 return pptr 21015 } 21016 nestlevel-- 21017 break 21018 } 21019 21020 // The extra data item length for each meta is in a table. 21021 21022 meta = meta >> 16 & Tuint32_t(0x7fff) 21023 if uint64(meta) >= uint64(unsafe.Sizeof(meta_extra_lengths)) { 21024 return uintptr(0) 21025 } 21026 pptr += 4 * uintptr(meta_extra_lengths[meta]) 21027 } 21028 // Control never reaches here 21029 return pptr 21030 } 21031 21032 // ************************************************ 21033 // 21034 // Find length of a parsed group * 21035 // 21036 21037 // This is called for nested groups within a branch of a lookbehind whose 21038 // length is being computed. If all the branches in the nested group have the same 21039 // length, that is OK. On entry, the pointer must be at the first element after 21040 // the group initializing code. On exit it points to OP_KET. Caching is used to 21041 // improve processing speed when the same capturing group occurs many times. 21042 // 21043 // Arguments: 21044 // pptrptr pointer to pointer in the parsed pattern 21045 // isinline FALSE if a reference or recursion; TRUE for inline group 21046 // errcodeptr pointer to the errorcode 21047 // lcptr pointer to the loop counter 21048 // group number of captured group or -1 for a non-capturing group 21049 // recurses chain of recurse_check to catch mutual recursion 21050 // cb pointer to the compile data 21051 // 21052 // Returns: the group length or a negative number 21053 21054 func get_grouplength(tls *libc.TLS, pptrptr uintptr, isinline TBOOL, errcodeptr uintptr, lcptr uintptr, group int32, recurses uintptr, cb uintptr) int32 { /* pcre2_compile.c:9070:1: */ 21055 var branchlength int32 21056 var grouplength int32 21057 var groupinfo Tuint32_t 21058 grouplength = -1 21059 21060 // The cache can be used only if there is no possibility of there being two 21061 // groups with the same number. We do not need to set the end pointer for a group 21062 // that is being processed as a back reference or recursion, but we must do so for 21063 // an inline group. 21064 21065 if !(group > 0 && (*Tcompile_block_8)(unsafe.Pointer(cb)).Fexternal_flags&Tuint32_t(DPCRE2_DUPCAPUSED) == Tuint32_t(0)) { 21066 goto __1 21067 } 21068 21069 groupinfo = *(*Tuint32_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fgroupinfo + uintptr(group)*4)) 21070 if !(groupinfo&DGI_NOT_FIXED_LENGTH != Tuint32_t(0)) { 21071 goto __2 21072 } 21073 return -1 21074 __2: 21075 ; 21076 if !(groupinfo&DGI_SET_FIXED_LENGTH != Tuint32_t(0)) { 21077 goto __3 21078 } 21079 21080 if !(isinline != 0) { 21081 goto __4 21082 } 21083 *(*uintptr)(unsafe.Pointer(pptrptr)) = parsed_skip(tls, *(*uintptr)(unsafe.Pointer(pptrptr)), PSKIP_KET) 21084 __4: 21085 ; 21086 return int32(groupinfo & DGI_FIXED_LENGTH_MASK) 21087 __3: 21088 ; 21089 __1: 21090 ; 21091 21092 // Scan the group. In this case we find the end pointer of necessity. 21093 21094 __5: 21095 21096 branchlength = get_branchlength(tls, pptrptr, errcodeptr, lcptr, recurses, cb) 21097 if !(branchlength < 0) { 21098 goto __8 21099 } 21100 goto ISNOTFIXED 21101 __8: 21102 ; 21103 if !(grouplength == -1) { 21104 goto __9 21105 } 21106 grouplength = branchlength 21107 goto __10 21108 __9: 21109 if !(grouplength != branchlength) { 21110 goto __11 21111 } 21112 goto ISNOTFIXED 21113 __11: 21114 ; 21115 __10: 21116 ; 21117 if !(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pptrptr)))) == DMETA_KET) { 21118 goto __12 21119 } 21120 goto __7 21121 __12: 21122 ; 21123 *(*uintptr)(unsafe.Pointer(pptrptr)) += uintptr(1) * 4 // Skip META_ALT 21124 goto __6 21125 __6: 21126 goto __5 21127 goto __7 21128 __7: 21129 ; 21130 21131 if !(group > 0) { 21132 goto __13 21133 } 21134 *(*Tuint32_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fgroupinfo + uintptr(group)*4)) |= DGI_SET_FIXED_LENGTH | uint32(grouplength) 21135 __13: 21136 ; 21137 return grouplength 21138 21139 ISNOTFIXED: 21140 if !(group > 0) { 21141 goto __14 21142 } 21143 *(*Tuint32_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(cb)).Fgroupinfo + uintptr(group)*4)) |= DGI_NOT_FIXED_LENGTH 21144 __14: 21145 ; 21146 return -1 21147 } 21148 21149 // ************************************************ 21150 // 21151 // Find length of a parsed branch * 21152 // 21153 21154 // Return a fixed length for a branch in a lookbehind, giving an error if the 21155 // length is not fixed. On entry, *pptrptr points to the first element inside the 21156 // branch. On exit it is set to point to the ALT or KET. 21157 // 21158 // Arguments: 21159 // pptrptr pointer to pointer in the parsed pattern 21160 // errcodeptr pointer to error code 21161 // lcptr pointer to loop counter 21162 // recurses chain of recurse_check to catch mutual recursion 21163 // cb pointer to compile block 21164 // 21165 // Returns: the length, or a negative value on error 21166 21167 func get_branchlength(tls *libc.TLS, pptrptr uintptr, errcodeptr uintptr, lcptr uintptr, recurses uintptr, cb uintptr) int32 { /* pcre2_compile.c:9134:1: */ 21168 bp := tls.Alloc(32) 21169 defer tls.Free(32) 21170 21171 var branchlength int32 21172 var grouplength int32 21173 var lastitemlength Tuint32_t 21174 // var pptr uintptr at bp, 8 21175 21176 var offset Tsize_t 21177 // var this_recurse Tparsed_recurse_check at bp+16, 16 21178 21179 var i int32 21180 var name TPCRE2_SPTR8 21181 var is_dupname TBOOL 21182 var ng uintptr 21183 var meta_code Tuint32_t 21184 var length Tuint32_t 21185 var r uintptr 21186 // var gptr uintptr at bp+8, 8 21187 21188 var gptrend uintptr 21189 var escape Tuint32_t 21190 var group Tuint32_t 21191 var itemlength Tuint32_t 21192 branchlength = 0 21193 lastitemlength = Tuint32_t(0) 21194 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) = *(*uintptr)(unsafe.Pointer(pptrptr)) 21195 21196 // A large and/or complex regex can take too long to process. This can happen 21197 // more often when (?| groups are present in the pattern because their length 21198 // cannot be cached. 21199 21200 if !(libc.PostIncInt32(&*(*int32)(unsafe.Pointer(lcptr)), 1) > 2000) { 21201 goto __1 21202 } 21203 21204 *(*int32)(unsafe.Pointer(errcodeptr)) = ERR35 // Lookbehind is too complicated 21205 return -1 21206 __1: 21207 ; 21208 21209 // Scan the branch, accumulating the length. 21210 21211 __2: 21212 ; 21213 group = Tuint32_t(0) 21214 itemlength = Tuint32_t(0) 21215 21216 if !(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) < DMETA_END) { 21217 goto __5 21218 } 21219 21220 itemlength = Tuint32_t(1) 21221 goto __6 21222 __5: 21223 switch *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) & 0xffff0000 { 21224 case DMETA_KET: 21225 goto __8 21226 case DMETA_ALT: 21227 goto __9 21228 21229 // (*ACCEPT) and (*FAIL) terminate the branch, but we must skip to the 21230 // actual termination. 21231 21232 case DMETA_ACCEPT: 21233 goto __10 21234 case DMETA_FAIL: 21235 goto __11 21236 21237 case DMETA_MARK: 21238 goto __12 21239 case DMETA_COMMIT_ARG: 21240 goto __13 21241 case DMETA_PRUNE_ARG: 21242 goto __14 21243 case DMETA_SKIP_ARG: 21244 goto __15 21245 case DMETA_THEN_ARG: 21246 goto __16 21247 21248 case DMETA_CIRCUMFLEX: 21249 goto __17 21250 case DMETA_COMMIT: 21251 goto __18 21252 case DMETA_DOLLAR: 21253 goto __19 21254 case DMETA_PRUNE: 21255 goto __20 21256 case DMETA_SKIP: 21257 goto __21 21258 case DMETA_THEN: 21259 goto __22 21260 21261 case DMETA_OPTIONS: 21262 goto __23 21263 21264 case DMETA_BIGVALUE: 21265 goto __24 21266 21267 case DMETA_CLASS: 21268 goto __25 21269 case DMETA_CLASS_NOT: 21270 goto __26 21271 21272 case DMETA_CLASS_EMPTY_NOT: 21273 goto __27 21274 case DMETA_DOT: 21275 goto __28 21276 21277 case DMETA_CALLOUT_NUMBER: 21278 goto __29 21279 21280 case DMETA_CALLOUT_STRING: 21281 goto __30 21282 21283 // Only some escapes consume a character. Of those, \R and \X are never 21284 // allowed because they might match more than character. \C is allowed only in 21285 // 32-bit and non-UTF 8/16-bit modes. 21286 21287 case DMETA_ESCAPE: 21288 goto __31 21289 21290 // Lookaheads do not contribute to the length of this branch, but they may 21291 // contain lookbehinds within them whose lengths need to be set. 21292 21293 case DMETA_LOOKAHEAD: 21294 goto __32 21295 case DMETA_LOOKAHEADNOT: 21296 goto __33 21297 case DMETA_LOOKAHEAD_NA: 21298 goto __34 21299 21300 // A nested lookbehind does not contribute any length to this lookbehind, 21301 // but must itself be checked and have its lengths set. 21302 21303 case DMETA_LOOKBEHIND: 21304 goto __35 21305 case DMETA_LOOKBEHINDNOT: 21306 goto __36 21307 case DMETA_LOOKBEHIND_NA: 21308 goto __37 21309 21310 // Back references and recursions are handled by very similar code. At this 21311 // stage, the names generated in the parsing pass are available, but the main 21312 // name table has not yet been created. So for the named varieties, scan the 21313 // list of names in order to get the number of the first one in the pattern, 21314 // and whether or not this name is duplicated. 21315 21316 case DMETA_BACKREF_BYNAME: 21317 goto __38 21318 // Fall through 21319 21320 case DMETA_RECURSE_BYNAME: 21321 goto __39 // Duplicate name or number 21322 21323 // The offset values for back references < 10 are in a separate vector 21324 // because otherwise they would use more than two parsed pattern elements on 21325 // 64-bit systems. 21326 21327 case DMETA_BACKREF: 21328 goto __40 21329 21330 // Fall through 21331 // For groups >= 10 - picking up group twice does no harm. 21332 21333 // A true recursion implies not fixed length, but a subroutine call may 21334 // be OK. Back reference "recursions" are also failed. 21335 21336 case DMETA_RECURSE: 21337 goto __41 21338 21339 // A (DEFINE) group is never obeyed inline and so it does not contribute to 21340 // the length of this branch. Skip from the following item to the next 21341 // unpaired ket. 21342 21343 case DMETA_COND_DEFINE: 21344 goto __42 21345 21346 // Check other nested groups - advance past the initial data for each type 21347 // and then seek a fixed length with get_grouplength(). 21348 21349 case DMETA_COND_NAME: 21350 goto __43 21351 case DMETA_COND_NUMBER: 21352 goto __44 21353 case DMETA_COND_RNAME: 21354 goto __45 21355 case DMETA_COND_RNUMBER: 21356 goto __46 21357 21358 case DMETA_COND_ASSERT: 21359 goto __47 21360 21361 case DMETA_COND_VERSION: 21362 goto __48 21363 21364 case DMETA_CAPTURE: 21365 goto __49 21366 // Fall through 21367 21368 case DMETA_ATOMIC: 21369 goto __50 21370 case DMETA_NOCAPTURE: 21371 goto __51 21372 case DMETA_SCRIPT_RUN: 21373 goto __52 21374 21375 // Exact repetition is OK; variable repetition is not. A repetition of zero 21376 // must subtract the length that has already been added. 21377 21378 case DMETA_MINMAX: 21379 goto __53 21380 case DMETA_MINMAX_PLUS: 21381 goto __54 21382 case DMETA_MINMAX_QUERY: 21383 goto __55 21384 // Fall through 21385 21386 // Any other item means this branch does not have a fixed length. 21387 21388 default: 21389 goto __56 21390 } 21391 goto __7 21392 21393 __8: 21394 __9: 21395 goto EXIT 21396 21397 // (*ACCEPT) and (*FAIL) terminate the branch, but we must skip to the 21398 // actual termination. 21399 21400 __10: 21401 __11: 21402 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) = parsed_skip(tls, *(*uintptr)(unsafe.Pointer(bp /* pptr */)), PSKIP_ALT) 21403 if !(*(*uintptr)(unsafe.Pointer(bp)) == uintptr(0)) { 21404 goto __57 21405 } 21406 goto PARSED_SKIP_FAILED 21407 __57: 21408 ; 21409 goto EXIT 21410 21411 __12: 21412 __13: 21413 __14: 21414 __15: 21415 __16: 21416 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 1*4))+Tuint32_t(1)) 21417 goto __7 21418 21419 __17: 21420 __18: 21421 __19: 21422 __20: 21423 __21: 21424 __22: 21425 goto __7 21426 21427 __23: 21428 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(1) 21429 goto __7 21430 21431 __24: 21432 itemlength = Tuint32_t(1) 21433 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(1) 21434 goto __7 21435 21436 __25: 21437 __26: 21438 itemlength = Tuint32_t(1) 21439 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) = parsed_skip(tls, *(*uintptr)(unsafe.Pointer(bp /* pptr */)), PSKIP_CLASS) 21440 if !(*(*uintptr)(unsafe.Pointer(bp)) == uintptr(0)) { 21441 goto __58 21442 } 21443 goto PARSED_SKIP_FAILED 21444 __58: 21445 ; 21446 goto __7 21447 21448 __27: 21449 __28: 21450 itemlength = Tuint32_t(1) 21451 goto __7 21452 21453 __29: 21454 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(3) 21455 goto __7 21456 21457 __30: 21458 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(3+DSIZEOFFSET) 21459 goto __7 21460 21461 // Only some escapes consume a character. Of those, \R and \X are never 21462 // allowed because they might match more than character. \C is allowed only in 21463 // 32-bit and non-UTF 8/16-bit modes. 21464 21465 __31: 21466 escape = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) & 0x0000ffff 21467 if !(escape == ESC_R || escape == ESC_X) { 21468 goto __59 21469 } 21470 return -1 21471 __59: 21472 ; 21473 if !(escape > ESC_b && escape < ESC_Z) { 21474 goto __60 21475 } 21476 21477 if !((*Tcompile_block_8)(unsafe.Pointer(cb)).Fexternal_options&DPCRE2_UTF != Tuint32_t(0) && escape == ESC_C) { 21478 goto __61 21479 } 21480 21481 *(*int32)(unsafe.Pointer(errcodeptr)) = ERR36 21482 return -1 21483 __61: 21484 ; 21485 itemlength = Tuint32_t(1) 21486 if !(escape == ESC_p || escape == ESC_P) { 21487 goto __62 21488 } 21489 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 21490 __62: 21491 ; // Skip prop data 21492 __60: 21493 ; 21494 goto __7 21495 21496 // Lookaheads do not contribute to the length of this branch, but they may 21497 // contain lookbehinds within them whose lengths need to be set. 21498 21499 __32: 21500 __33: 21501 __34: 21502 *(*int32)(unsafe.Pointer(errcodeptr)) = check_lookbehinds(tls, *(*uintptr)(unsafe.Pointer(bp))+uintptr(1)*4, bp, recurses, cb, lcptr) 21503 if !(*(*int32)(unsafe.Pointer(errcodeptr)) != 0) { 21504 goto __63 21505 } 21506 return -1 21507 __63: 21508 ; 21509 21510 // Ignore any qualifiers that follow a lookahead assertion. 21511 21512 switch *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp /* pptr */)) + 1*4)) { 21513 case DMETA_ASTERISK: 21514 goto __65 21515 case DMETA_ASTERISK_PLUS: 21516 goto __66 21517 case DMETA_ASTERISK_QUERY: 21518 goto __67 21519 case DMETA_PLUS: 21520 goto __68 21521 case DMETA_PLUS_PLUS: 21522 goto __69 21523 case DMETA_PLUS_QUERY: 21524 goto __70 21525 case DMETA_QUERY: 21526 goto __71 21527 case DMETA_QUERY_PLUS: 21528 goto __72 21529 case DMETA_QUERY_QUERY: 21530 goto __73 21531 21532 case DMETA_MINMAX: 21533 goto __74 21534 case DMETA_MINMAX_PLUS: 21535 goto __75 21536 case DMETA_MINMAX_QUERY: 21537 goto __76 21538 21539 default: 21540 goto __77 21541 } 21542 goto __64 21543 21544 __65: 21545 __66: 21546 __67: 21547 __68: 21548 __69: 21549 __70: 21550 __71: 21551 __72: 21552 __73: 21553 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 21554 goto __64 21555 21556 __74: 21557 __75: 21558 __76: 21559 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(3) 21560 goto __64 21561 21562 __77: 21563 goto __64 21564 __64: 21565 ; 21566 goto __7 21567 21568 // A nested lookbehind does not contribute any length to this lookbehind, 21569 // but must itself be checked and have its lengths set. 21570 21571 __35: 21572 __36: 21573 __37: 21574 if !!(set_lookbehind_lengths(tls, bp, errcodeptr, lcptr, recurses, cb) != 0) { 21575 goto __78 21576 } 21577 return -1 21578 __78: 21579 ; 21580 goto __7 21581 21582 // Back references and recursions are handled by very similar code. At this 21583 // stage, the names generated in the parsing pass are available, but the main 21584 // name table has not yet been created. So for the named varieties, scan the 21585 // list of names in order to get the number of the first one in the pattern, 21586 // and whether or not this name is duplicated. 21587 21588 __38: 21589 if !((*Tcompile_block_8)(unsafe.Pointer(cb)).Fexternal_options&DPCRE2_MATCH_UNSET_BACKREF != Tuint32_t(0)) { 21590 goto __79 21591 } 21592 goto ISNOTFIXED 21593 __79: 21594 ; 21595 // Fall through 21596 21597 __39: 21598 21599 is_dupname = DFALSE 21600 ng = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fnamed_groups 21601 meta_code = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) & 0xffff0000 21602 length = *(*Tuint32_t)(unsafe.Pointer(libc.PreIncUintptr(&*(*uintptr)(unsafe.Pointer(bp)), 4))) 21603 21604 offset = Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 1*4)))<<32 | Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 2*4))) 21605 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(2) 21606 21607 name = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fstart_pattern + uintptr(offset) 21608 i = 0 21609 __80: 21610 if !(i < int32((*Tcompile_block_8)(unsafe.Pointer(cb)).Fnames_found)) { 21611 goto __82 21612 } 21613 21614 if !(length == Tuint32_t((*Tnamed_group_8)(unsafe.Pointer(ng)).Flength) && X_pcre2_strncmp_8(tls, name, (*Tnamed_group_8)(unsafe.Pointer(ng)).Fname, uint64(length)) == 0) { 21615 goto __83 21616 } 21617 21618 group = (*Tnamed_group_8)(unsafe.Pointer(ng)).Fnumber 21619 is_dupname = TBOOL((*Tnamed_group_8)(unsafe.Pointer(ng)).Fisdup) 21620 goto __82 21621 __83: 21622 ; 21623 goto __81 21624 __81: 21625 i++ 21626 ng += 16 21627 goto __80 21628 goto __82 21629 __82: 21630 ; 21631 21632 if !(group == Tuint32_t(0)) { 21633 goto __84 21634 } 21635 21636 *(*int32)(unsafe.Pointer(errcodeptr)) = ERR15 // Non-existent subpattern 21637 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = offset 21638 return -1 21639 __84: 21640 ; 21641 21642 // A numerical back reference can be fixed length if duplicate capturing 21643 // groups are not being used. A non-duplicate named back reference can also 21644 // be handled. 21645 21646 if !(meta_code == DMETA_RECURSE_BYNAME || !(is_dupname != 0) && (*Tcompile_block_8)(unsafe.Pointer(cb)).Fexternal_flags&Tuint32_t(DPCRE2_DUPCAPUSED) == Tuint32_t(0)) { 21647 goto __85 21648 } 21649 goto RECURSE_OR_BACKREF_LENGTH 21650 __85: 21651 ; // Handle as a numbered version. 21652 21653 goto ISNOTFIXED // Duplicate name or number 21654 21655 // The offset values for back references < 10 are in a separate vector 21656 // because otherwise they would use more than two parsed pattern elements on 21657 // 64-bit systems. 21658 21659 __40: 21660 if !((*Tcompile_block_8)(unsafe.Pointer(cb)).Fexternal_options&DPCRE2_MATCH_UNSET_BACKREF != Tuint32_t(0) || (*Tcompile_block_8)(unsafe.Pointer(cb)).Fexternal_flags&Tuint32_t(DPCRE2_DUPCAPUSED) != Tuint32_t(0)) { 21661 goto __86 21662 } 21663 goto ISNOTFIXED 21664 __86: 21665 ; 21666 group = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) & 0x0000ffff 21667 if !(group < Tuint32_t(10)) { 21668 goto __87 21669 } 21670 21671 offset = *(*Tsize_t)(unsafe.Pointer(cb + 88 + uintptr(group)*8)) 21672 goto RECURSE_OR_BACKREF_LENGTH 21673 __87: 21674 ; 21675 21676 // Fall through 21677 // For groups >= 10 - picking up group twice does no harm. 21678 21679 // A true recursion implies not fixed length, but a subroutine call may 21680 // be OK. Back reference "recursions" are also failed. 21681 21682 __41: 21683 group = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) & 0x0000ffff 21684 offset = Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 1*4)))<<32 | Tsize_t(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 2*4))) 21685 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(2) 21686 21687 RECURSE_OR_BACKREF_LENGTH: 21688 if !(group > (*Tcompile_block_8)(unsafe.Pointer(cb)).Fbracount) { 21689 goto __88 21690 } 21691 21692 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = offset 21693 *(*int32)(unsafe.Pointer(errcodeptr)) = ERR15 // Non-existent subpattern 21694 return -1 21695 __88: 21696 ; 21697 if !(group == Tuint32_t(0)) { 21698 goto __89 21699 } 21700 goto ISNOTFIXED 21701 __89: 21702 ; // Local recursion 21703 *(*uintptr)(unsafe.Pointer(bp + 8 /* gptr */)) = (*Tcompile_block_8)(unsafe.Pointer(cb)).Fparsed_pattern 21704 __90: 21705 if !(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))) != DMETA_END) { 21706 goto __92 21707 } 21708 21709 if !(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8))))&0xffff0000 == DMETA_BIGVALUE) { 21710 goto __93 21711 } 21712 *(*uintptr)(unsafe.Pointer(bp + 8 /* gptr */)) += 4 21713 goto __94 21714 __93: 21715 if !(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))) == DMETA_CAPTURE|group) { 21716 goto __95 21717 } 21718 goto __92 21719 __95: 21720 ; 21721 __94: 21722 ; 21723 goto __91 21724 __91: 21725 *(*uintptr)(unsafe.Pointer(bp + 8 /* gptr */)) += 4 21726 goto __90 21727 goto __92 21728 __92: 21729 ; 21730 21731 // We must start the search for the end of the group at the first meta code 21732 // inside the group. Otherwise it will be treated as an enclosed group. 21733 21734 gptrend = parsed_skip(tls, *(*uintptr)(unsafe.Pointer(bp + 8))+uintptr(1)*4, PSKIP_KET) 21735 if !(gptrend == uintptr(0)) { 21736 goto __96 21737 } 21738 goto PARSED_SKIP_FAILED 21739 __96: 21740 ; 21741 if !(*(*uintptr)(unsafe.Pointer(bp)) > *(*uintptr)(unsafe.Pointer(bp + 8)) && *(*uintptr)(unsafe.Pointer(bp)) < gptrend) { 21742 goto __97 21743 } 21744 goto ISNOTFIXED 21745 __97: 21746 ; // Local recursion 21747 r = recurses 21748 __98: 21749 if !(r != uintptr(0)) { 21750 goto __100 21751 } 21752 if !((*Tparsed_recurse_check)(unsafe.Pointer(r)).Fgroupptr == *(*uintptr)(unsafe.Pointer(bp + 8))) { 21753 goto __101 21754 } 21755 goto __100 21756 __101: 21757 ; 21758 goto __99 21759 __99: 21760 r = (*Tparsed_recurse_check)(unsafe.Pointer(r)).Fprev 21761 goto __98 21762 goto __100 21763 __100: 21764 ; 21765 if !(r != uintptr(0)) { 21766 goto __102 21767 } 21768 goto ISNOTFIXED 21769 __102: 21770 ; // Mutual recursion 21771 (*Tparsed_recurse_check)(unsafe.Pointer(bp + 16 /* &this_recurse */)).Fprev = recurses 21772 (*Tparsed_recurse_check)(unsafe.Pointer(bp + 16 /* &this_recurse */)).Fgroupptr = *(*uintptr)(unsafe.Pointer(bp + 8 /* gptr */)) 21773 21774 // We do not need to know the position of the end of the group, that is, 21775 // gptr is not used after the call to get_grouplength(). Setting the second 21776 // argument FALSE stops it scanning for the end when the length can be found 21777 // in the cache. 21778 21779 *(*uintptr)(unsafe.Pointer(bp + 8 /* gptr */)) += 4 21780 grouplength = get_grouplength(tls, bp+8, DFALSE, errcodeptr, lcptr, int32(group), 21781 bp+16, cb) 21782 if !(grouplength < 0) { 21783 goto __103 21784 } 21785 21786 if !(*(*int32)(unsafe.Pointer(errcodeptr)) == 0) { 21787 goto __104 21788 } 21789 goto ISNOTFIXED 21790 __104: 21791 ; 21792 return -1 // Error already set 21793 __103: 21794 ; 21795 itemlength = Tuint32_t(grouplength) 21796 goto __7 21797 21798 // A (DEFINE) group is never obeyed inline and so it does not contribute to 21799 // the length of this branch. Skip from the following item to the next 21800 // unpaired ket. 21801 21802 __42: 21803 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) = parsed_skip(tls, *(*uintptr)(unsafe.Pointer(bp))+uintptr(1)*4, PSKIP_KET) 21804 goto __7 21805 21806 // Check other nested groups - advance past the initial data for each type 21807 // and then seek a fixed length with get_grouplength(). 21808 21809 __43: 21810 __44: 21811 __45: 21812 __46: 21813 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(2+DSIZEOFFSET) 21814 goto CHECK_GROUP 21815 21816 __47: 21817 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(1) 21818 goto CHECK_GROUP 21819 21820 __48: 21821 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(4) 21822 goto CHECK_GROUP 21823 21824 __49: 21825 group = *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) & 0x0000ffff 21826 // Fall through 21827 21828 __50: 21829 __51: 21830 __52: 21831 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 21832 CHECK_GROUP: 21833 grouplength = get_grouplength(tls, bp, DTRUE, errcodeptr, lcptr, int32(group), 21834 recurses, cb) 21835 if !(grouplength < 0) { 21836 goto __105 21837 } 21838 return -1 21839 __105: 21840 ; 21841 itemlength = Tuint32_t(grouplength) 21842 goto __7 21843 21844 // Exact repetition is OK; variable repetition is not. A repetition of zero 21845 // must subtract the length that has already been added. 21846 21847 __53: 21848 __54: 21849 __55: 21850 if !(*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 1*4)) == *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 2*4))) { 21851 goto __106 21852 } 21853 21854 switch *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp /* pptr */)) + 1*4)) { 21855 case Tuint32_t(0): 21856 goto __108 21857 21858 case Tuint32_t(1): 21859 goto __109 21860 21861 default: 21862 goto __110 21863 } 21864 goto __107 21865 21866 __108: 21867 branchlength = int32(Tuint32_t(branchlength) - lastitemlength) 21868 goto __107 21869 21870 __109: 21871 itemlength = Tuint32_t(0) 21872 goto __107 21873 21874 __110: // Check for integer overflow 21875 if !(lastitemlength != Tuint32_t(0) && Tuint32_t(0x7fffffff)/lastitemlength < *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 1*4))-Tuint32_t(1)) { 21876 goto __111 21877 } 21878 21879 *(*int32)(unsafe.Pointer(errcodeptr)) = ERR87 // Integer overflow; lookbehind too big 21880 return -1 21881 __111: 21882 ; 21883 itemlength = (*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 1*4)) - Tuint32_t(1)) * lastitemlength 21884 goto __107 21885 __107: 21886 ; 21887 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(2) 21888 goto __7 21889 __106: 21890 ; 21891 // Fall through 21892 21893 // Any other item means this branch does not have a fixed length. 21894 21895 __56: 21896 ISNOTFIXED: 21897 *(*int32)(unsafe.Pointer(errcodeptr)) = ERR25 // Not fixed length 21898 return -1 21899 __7: 21900 ; 21901 __6: 21902 ; 21903 21904 // Add the item length to the branchlength, checking for integer overflow and 21905 // for the branch length exceeding the limit. 21906 21907 if !(0x7fffffff-branchlength < int32(itemlength) || libc.AssignAddInt32(&branchlength, int32(itemlength)) > 65535) { 21908 goto __112 21909 } 21910 21911 *(*int32)(unsafe.Pointer(errcodeptr)) = ERR87 21912 return -1 21913 __112: 21914 ; 21915 21916 // Save this item length for use if the next item is a quantifier. 21917 21918 lastitemlength = itemlength 21919 goto __3 21920 __3: 21921 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 21922 goto __2 21923 goto __4 21924 __4: 21925 ; 21926 21927 EXIT: 21928 *(*uintptr)(unsafe.Pointer(pptrptr)) = *(*uintptr)(unsafe.Pointer(bp /* pptr */)) 21929 return branchlength 21930 21931 PARSED_SKIP_FAILED: 21932 *(*int32)(unsafe.Pointer(errcodeptr)) = ERR90 21933 return -1 21934 } 21935 21936 // ************************************************ 21937 // 21938 // Set lengths in a lookbehind * 21939 // 21940 21941 // This function is called for each lookbehind, to set the lengths in its 21942 // branches. An error occurs if any branch does not have a fixed length that is 21943 // less than the maximum (65535). On exit, the pointer must be left on the final 21944 // ket. 21945 // 21946 // The function also maintains the max_lookbehind value. Any lookbehind branch 21947 // that contains a nested lookbehind may actually look further back than the 21948 // length of the branch. The additional amount is passed back from 21949 // get_branchlength() as an "extra" value. 21950 // 21951 // Arguments: 21952 // pptrptr pointer to pointer in the parsed pattern 21953 // errcodeptr pointer to error code 21954 // lcptr pointer to loop counter 21955 // recurses chain of recurse_check to catch mutual recursion 21956 // cb pointer to compile block 21957 // 21958 // Returns: TRUE if all is well 21959 // FALSE otherwise, with error code and offset set 21960 21961 func set_lookbehind_lengths(tls *libc.TLS, pptrptr uintptr, errcodeptr uintptr, lcptr uintptr, recurses uintptr, cb uintptr) TBOOL { /* pcre2_compile.c:9545:1: */ 21962 var offset Tsize_t 21963 var branchlength int32 21964 var bptr uintptr = *(*uintptr)(unsafe.Pointer(pptrptr)) 21965 21966 { 21967 offset = Tsize_t(*(*Tuint32_t)(unsafe.Pointer(bptr + 1*4)))<<32 | Tsize_t(*(*Tuint32_t)(unsafe.Pointer(bptr + 2*4))) 21968 } 21969 // Offset for error messages 21970 *(*uintptr)(unsafe.Pointer(pptrptr)) += uintptr(DSIZEOFFSET) * 4 21971 21972 for __ccgo := true; __ccgo; __ccgo = *(*Tuint32_t)(unsafe.Pointer(bptr)) == DMETA_ALT { 21973 *(*uintptr)(unsafe.Pointer(pptrptr)) += uintptr(1) * 4 21974 branchlength = get_branchlength(tls, pptrptr, errcodeptr, lcptr, recurses, cb) 21975 if branchlength < 0 { 21976 // The errorcode and offset may already be set from a nested lookbehind. 21977 if *(*int32)(unsafe.Pointer(errcodeptr)) == 0 { 21978 *(*int32)(unsafe.Pointer(errcodeptr)) = ERR25 21979 } 21980 if (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset == libc.CplUint64(uint64(0)) { 21981 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = offset 21982 } 21983 return DFALSE 21984 } 21985 if branchlength > (*Tcompile_block_8)(unsafe.Pointer(cb)).Fmax_lookbehind { 21986 (*Tcompile_block_8)(unsafe.Pointer(cb)).Fmax_lookbehind = branchlength 21987 } 21988 *(*Tuint32_t)(unsafe.Pointer(bptr)) |= Tuint32_t(branchlength) // branchlength never more than 65535 21989 bptr = *(*uintptr)(unsafe.Pointer(pptrptr)) 21990 } 21991 21992 return DTRUE 21993 } 21994 21995 // ************************************************ 21996 // 21997 // Check parsed pattern lookbehinds * 21998 // 21999 22000 // This function is called at the end of parsing a pattern if any lookbehinds 22001 // were encountered. It scans the parsed pattern for them, calling 22002 // set_lookbehind_lengths() for each one. At the start, the errorcode is zero and 22003 // the error offset is marked unset. The enables the functions above not to 22004 // override settings from deeper nestings. 22005 // 22006 // This function is called recursively from get_branchlength() for lookaheads in 22007 // order to process any lookbehinds that they may contain. It stops when it hits a 22008 // non-nested closing parenthesis in this case, returning a pointer to it. 22009 // 22010 // Arguments 22011 // pptr points to where to start (start of pattern or start of lookahead) 22012 // retptr if not NULL, return the ket pointer here 22013 // recurses chain of recurse_check to catch mutual recursion 22014 // cb points to the compile block 22015 // lcptr points to loop counter 22016 // 22017 // Returns: 0 on success, or an errorcode (cb->erroroffset will be set) 22018 22019 func check_lookbehinds(tls *libc.TLS, pptr uintptr, retptr uintptr, recurses uintptr, cb uintptr, lcptr uintptr) int32 { /* pcre2_compile.c:9602:1: */ 22020 bp := tls.Alloc(12) 22021 defer tls.Free(12) 22022 *(*uintptr)(unsafe.Pointer(bp)) = pptr 22023 22024 *(*int32)(unsafe.Pointer(bp + 8 /* errorcode */)) = 0 22025 var nestlevel int32 = 0 22026 22027 (*Tcompile_block_8)(unsafe.Pointer(cb)).Ferroroffset = libc.CplUint64(uint64(0)) 22028 22029 for ; *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) != DMETA_END; *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 { 22030 if *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) < DMETA_END { 22031 continue 22032 } // Literal 22033 22034 switch *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))) & 0xffff0000 { 22035 default: 22036 return ERR70 // Unrecognized meta code 22037 22038 case DMETA_ESCAPE: 22039 if *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))-DMETA_ESCAPE == ESC_P || *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp))))-DMETA_ESCAPE == ESC_p { 22040 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(1) 22041 } 22042 break 22043 22044 case DMETA_KET: 22045 if libc.PreDecInt32(&nestlevel, 1) < 0 { 22046 if retptr != uintptr(0) { 22047 *(*uintptr)(unsafe.Pointer(retptr)) = *(*uintptr)(unsafe.Pointer(bp /* pptr */)) 22048 } 22049 return 0 22050 } 22051 break 22052 22053 case DMETA_ATOMIC: 22054 fallthrough 22055 case DMETA_CAPTURE: 22056 fallthrough 22057 case DMETA_COND_ASSERT: 22058 fallthrough 22059 case DMETA_LOOKAHEAD: 22060 fallthrough 22061 case DMETA_LOOKAHEADNOT: 22062 fallthrough 22063 case DMETA_LOOKAHEAD_NA: 22064 fallthrough 22065 case DMETA_NOCAPTURE: 22066 fallthrough 22067 case DMETA_SCRIPT_RUN: 22068 nestlevel++ 22069 break 22070 22071 case DMETA_ACCEPT: 22072 fallthrough 22073 case DMETA_ALT: 22074 fallthrough 22075 case DMETA_ASTERISK: 22076 fallthrough 22077 case DMETA_ASTERISK_PLUS: 22078 fallthrough 22079 case DMETA_ASTERISK_QUERY: 22080 fallthrough 22081 case DMETA_BACKREF: 22082 fallthrough 22083 case DMETA_CIRCUMFLEX: 22084 fallthrough 22085 case DMETA_CLASS: 22086 fallthrough 22087 case DMETA_CLASS_EMPTY: 22088 fallthrough 22089 case DMETA_CLASS_EMPTY_NOT: 22090 fallthrough 22091 case DMETA_CLASS_END: 22092 fallthrough 22093 case DMETA_CLASS_NOT: 22094 fallthrough 22095 case DMETA_COMMIT: 22096 fallthrough 22097 case DMETA_DOLLAR: 22098 fallthrough 22099 case DMETA_DOT: 22100 fallthrough 22101 case DMETA_FAIL: 22102 fallthrough 22103 case DMETA_PLUS: 22104 fallthrough 22105 case DMETA_PLUS_PLUS: 22106 fallthrough 22107 case DMETA_PLUS_QUERY: 22108 fallthrough 22109 case DMETA_PRUNE: 22110 fallthrough 22111 case DMETA_QUERY: 22112 fallthrough 22113 case DMETA_QUERY_PLUS: 22114 fallthrough 22115 case DMETA_QUERY_QUERY: 22116 fallthrough 22117 case DMETA_RANGE_ESCAPED: 22118 fallthrough 22119 case DMETA_RANGE_LITERAL: 22120 fallthrough 22121 case DMETA_SKIP: 22122 fallthrough 22123 case DMETA_THEN: 22124 break 22125 22126 case DMETA_RECURSE: 22127 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(DSIZEOFFSET) 22128 break 22129 22130 case DMETA_BACKREF_BYNAME: 22131 fallthrough 22132 case DMETA_RECURSE_BYNAME: 22133 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(1+DSIZEOFFSET) 22134 break 22135 22136 case DMETA_COND_DEFINE: 22137 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(DSIZEOFFSET) 22138 nestlevel++ 22139 break 22140 22141 case DMETA_COND_NAME: 22142 fallthrough 22143 case DMETA_COND_NUMBER: 22144 fallthrough 22145 case DMETA_COND_RNAME: 22146 fallthrough 22147 case DMETA_COND_RNUMBER: 22148 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(1+DSIZEOFFSET) 22149 nestlevel++ 22150 break 22151 22152 case DMETA_COND_VERSION: 22153 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(3) 22154 nestlevel++ 22155 break 22156 22157 case DMETA_CALLOUT_STRING: 22158 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(3+DSIZEOFFSET) 22159 break 22160 22161 case DMETA_BIGVALUE: 22162 fallthrough 22163 case DMETA_OPTIONS: 22164 fallthrough 22165 case DMETA_POSIX: 22166 fallthrough 22167 case DMETA_POSIX_NEG: 22168 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(1) 22169 break 22170 22171 case DMETA_MINMAX: 22172 fallthrough 22173 case DMETA_MINMAX_QUERY: 22174 fallthrough 22175 case DMETA_MINMAX_PLUS: 22176 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(2) 22177 break 22178 22179 case DMETA_CALLOUT_NUMBER: 22180 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(3) 22181 break 22182 22183 case DMETA_MARK: 22184 fallthrough 22185 case DMETA_COMMIT_ARG: 22186 fallthrough 22187 case DMETA_PRUNE_ARG: 22188 fallthrough 22189 case DMETA_SKIP_ARG: 22190 fallthrough 22191 case DMETA_THEN_ARG: 22192 *(*uintptr)(unsafe.Pointer(bp /* pptr */)) += 4 * uintptr(Tuint32_t(1)+*(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 1*4))) 22193 break 22194 22195 case DMETA_LOOKBEHIND: 22196 fallthrough 22197 case DMETA_LOOKBEHINDNOT: 22198 fallthrough 22199 case DMETA_LOOKBEHIND_NA: 22200 if !(set_lookbehind_lengths(tls, bp, bp+8, lcptr, recurses, cb) != 0) { 22201 return *(*int32)(unsafe.Pointer(bp + 8 /* errorcode */)) 22202 } 22203 break 22204 } 22205 } 22206 22207 return 0 22208 } 22209 22210 // ************************************************ 22211 // 22212 // External function to compile a pattern * 22213 // 22214 22215 // This function reads a regular expression in the form of a string and returns 22216 // a pointer to a block of store holding a compiled version of the expression. 22217 // 22218 // Arguments: 22219 // pattern the regular expression 22220 // patlen the length of the pattern, or PCRE2_ZERO_TERMINATED 22221 // options option bits 22222 // errorptr pointer to errorcode 22223 // erroroffset pointer to error offset 22224 // ccontext points to a compile context or is NULL 22225 // 22226 // Returns: pointer to compiled data block, or NULL on error, 22227 // with errorcode and erroroffset set 22228 22229 func Xpcre2_compile_8(tls *libc.TLS, pattern TPCRE2_SPTR8, patlen Tsize_t, options Tuint32_t, errorptr uintptr, erroroffset uintptr, ccontext uintptr) uintptr { /* pcre2_compile.c:9761:27: */ 22230 bp := tls.Alloc(17928) 22231 defer tls.Free(17928) 22232 22233 var utf TBOOL // Set TRUE for UTF mode 22234 var ucp TBOOL // Set TRUE for UCP mode 22235 // var has_lookbehind TBOOL at bp+17744, 4 22236 // Set TRUE if a lookbehind is found 22237 var zero_terminated TBOOL 22238 _ = zero_terminated // Set TRUE for zero-terminated pattern 22239 var re uintptr // What we will return 22240 // var cb Tcompile_block_8 at bp+17440, 304 22241 // "Static" compile-time data 22242 var tables uintptr // Char tables base pointer 22243 22244 // var code uintptr at bp+17752, 8 22245 // Current pointer in compiled code 22246 var codestart TPCRE2_SPTR8 // Start of compiled code 22247 var ptr TPCRE2_SPTR8 // Current pointer in pattern 22248 // var pptr uintptr at bp+17760, 8 22249 // Current pointer in parsed pattern 22250 22251 // var length Tsize_t at bp+17792, 8 22252 // Allow for final END opcode 22253 var usedlength Tsize_t // Actual length used 22254 var re_blocksize Tsize_t // Size of memory block 22255 var big32count Tsize_t // 32-bit literals >= 0x80000000 22256 var parsed_size_needed Tsize_t // Needed for parsed pattern 22257 22258 // var firstcuflags Tuint32_t at bp+17776, 4 22259 22260 // var reqcuflags Tuint32_t at bp+17784, 4 22261 // Type of first/req code unit 22262 // var firstcu Tuint32_t at bp+17772, 4 22263 22264 // var reqcu Tuint32_t at bp+17780, 4 22265 // Value of first/req code unit 22266 var setflags Tuint32_t // NL and BSR set flags 22267 22268 var skipatstart Tuint32_t // When checking (*UTF) etc 22269 var limit_heap Tuint32_t 22270 var limit_match Tuint32_t // Unset match limits 22271 var limit_depth Tuint32_t 22272 var newline int32 // Unset; can be set by the pattern 22273 var bsr int32 // Unset; can be set by the pattern 22274 // var errorcode int32 at bp+17768, 4 22275 // Initialize to avoid compiler warn 22276 var regexrc int32 // Return from compile 22277 22278 var i Tuint32_t // Local loop counter 22279 22280 // Comments at the head of this file explain about these variables. 22281 22282 // var stack_groupinfo [256]Tuint32_t at bp+12000, 1024 22283 22284 // var stack_parsed_pattern [1024]Tuint32_t at bp+13344, 4096 22285 22286 // var named_groups [20]Tnamed_group_8 at bp+13024, 320 22287 22288 // The workspace is used in different ways in the different compiling phases. 22289 // It needs to be 16-bit aligned for the preliminary parsing scan. 22290 22291 // var c16workspace [3000]Tuint32_t at bp, 12000 22292 22293 var cworkspace uintptr 22294 var c Tuint32_t 22295 var pp Tuint32_t 22296 var p uintptr 22297 var heap_parsed_pattern uintptr 22298 // var loopcount int32 at bp+17748, 4 22299 22300 var ng uintptr 22301 var search_from TPCRE2_SPTR8 22302 var p1 int32 22303 var groupnumber int32 22304 var rcode uintptr 22305 var rgroup TPCRE2_SPTR8 22306 var ccount uint32 22307 var start int32 22308 // var rc [8]Trecurse_cache at bp+17800, 128 22309 22310 var temp uintptr 22311 var minminlength int32 22312 *(*TBOOL)(unsafe.Pointer(bp + 17744 /* has_lookbehind */)) = DFALSE 22313 re = uintptr(0) 22314 *(*Tsize_t)(unsafe.Pointer(bp + 17792 /* length */)) = uint64(1) 22315 big32count = uint64(0) 22316 setflags = Tuint32_t(0) 22317 limit_heap = 4294967295 22318 limit_match = 4294967295 22319 limit_depth = 4294967295 22320 newline = 0 22321 bsr = 0 22322 *(*int32)(unsafe.Pointer(bp + 17768 /* errorcode */)) = 0 22323 cworkspace = bp /* c16workspace */ 22324 22325 // -------------- Check arguments and set up the pattern ----------------- 22326 22327 // There must be error code and offset pointers. 22328 22329 if !(errorptr == uintptr(0) || erroroffset == uintptr(0)) { 22330 goto __1 22331 } 22332 return uintptr(0) 22333 __1: 22334 ; 22335 *(*int32)(unsafe.Pointer(errorptr)) = ERR0 22336 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = uint64(0) 22337 22338 // There must be a pattern! 22339 22340 if !(pattern == uintptr(0)) { 22341 goto __2 22342 } 22343 22344 *(*int32)(unsafe.Pointer(errorptr)) = ERR16 22345 return uintptr(0) 22346 __2: 22347 ; 22348 22349 // A NULL compile context means "use a default context" 22350 22351 if !(ccontext == uintptr(0)) { 22352 goto __3 22353 } 22354 ccontext = uintptr(unsafe.Pointer(&X_pcre2_default_compile_context_8)) 22355 __3: 22356 ; 22357 22358 // PCRE2_MATCH_INVALID_UTF implies UTF 22359 22360 if !(options&DPCRE2_MATCH_INVALID_UTF != Tuint32_t(0)) { 22361 goto __4 22362 } 22363 options = options | DPCRE2_UTF 22364 __4: 22365 ; 22366 22367 // Check that all undefined public option bits are zero. 22368 22369 if !(options&libc.CplUint32(DPCRE2_ANCHORED|DPCRE2_AUTO_CALLOUT|DPCRE2_CASELESS|DPCRE2_ENDANCHORED|DPCRE2_FIRSTLINE|DPCRE2_LITERAL|DPCRE2_MATCH_INVALID_UTF|DPCRE2_NO_START_OPTIMIZE|DPCRE2_NO_UTF_CHECK|DPCRE2_USE_OFFSET_LIMIT|DPCRE2_UTF|DPCRE2_ALLOW_EMPTY_CLASS|DPCRE2_ALT_BSUX|DPCRE2_ALT_CIRCUMFLEX|DPCRE2_ALT_VERBNAMES|DPCRE2_DOLLAR_ENDONLY|DPCRE2_DOTALL|DPCRE2_DUPNAMES|DPCRE2_EXTENDED|DPCRE2_EXTENDED_MORE|DPCRE2_MATCH_UNSET_BACKREF|DPCRE2_MULTILINE|DPCRE2_NEVER_BACKSLASH_C|DPCRE2_NEVER_UCP|DPCRE2_NEVER_UTF|DPCRE2_NO_AUTO_CAPTURE|DPCRE2_NO_AUTO_POSSESS|DPCRE2_NO_DOTSTAR_ANCHOR|DPCRE2_UCP|DPCRE2_UNGREEDY) != Tuint32_t(0) || (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fextra_options&libc.CplUint32(DPCRE2_EXTRA_MATCH_LINE|DPCRE2_EXTRA_MATCH_WORD|DPCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES|DPCRE2_EXTRA_BAD_ESCAPE_IS_LITERAL|DPCRE2_EXTRA_ESCAPED_CR_IS_LF|DPCRE2_EXTRA_ALT_BSUX|DPCRE2_EXTRA_ALLOW_LOOKAROUND_BSK) != Tuint32_t(0)) { 22370 goto __5 22371 } 22372 22373 *(*int32)(unsafe.Pointer(errorptr)) = ERR17 22374 return uintptr(0) 22375 __5: 22376 ; 22377 22378 if !(options&DPCRE2_LITERAL != Tuint32_t(0) && (options&libc.CplUint32(DPCRE2_ANCHORED|DPCRE2_AUTO_CALLOUT|DPCRE2_CASELESS|DPCRE2_ENDANCHORED|DPCRE2_FIRSTLINE|DPCRE2_LITERAL|DPCRE2_MATCH_INVALID_UTF|DPCRE2_NO_START_OPTIMIZE|DPCRE2_NO_UTF_CHECK|DPCRE2_USE_OFFSET_LIMIT|DPCRE2_UTF) != Tuint32_t(0) || (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fextra_options&libc.CplUint32(DPCRE2_EXTRA_MATCH_LINE|DPCRE2_EXTRA_MATCH_WORD) != Tuint32_t(0))) { 22379 goto __6 22380 } 22381 22382 *(*int32)(unsafe.Pointer(errorptr)) = ERR92 22383 return uintptr(0) 22384 __6: 22385 ; 22386 22387 // A zero-terminated pattern is indicated by the special length value 22388 // PCRE2_ZERO_TERMINATED. Check for an overlong pattern. 22389 22390 if !(libc.AssignInt32(&zero_terminated, libc.Bool32(patlen == libc.CplUint64(uint64(0)))) != 0) { 22391 goto __7 22392 } 22393 patlen = X_pcre2_strlen_8(tls, pattern) 22394 __7: 22395 ; 22396 22397 if !(patlen > (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmax_pattern_length) { 22398 goto __8 22399 } 22400 22401 *(*int32)(unsafe.Pointer(errorptr)) = ERR88 22402 return uintptr(0) 22403 __8: 22404 ; 22405 22406 // From here on, all returns from this function should end up going via the 22407 // EXIT label. 22408 22409 // ------------ Initialize the "static" compile data -------------- 22410 22411 if (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Ftables != uintptr(0) { 22412 tables = (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Ftables 22413 } else { 22414 tables = uintptr(unsafe.Pointer(&X_pcre2_default_tables_8)) 22415 } 22416 22417 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Flcc = tables + uintptr(Dlcc_offset) // Individual 22418 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Ffcc = tables + uintptr(Dfcc_offset) // character 22419 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fcbits = tables + uintptr(Dcbits_offset) // tables 22420 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fctypes = tables + uintptr(Dcbits_offset+Dcbit_length) 22421 22422 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fassert_depth = Tuint16_t(0) 22423 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fbracount = Tuint32_t(0) 22424 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fcx = ccontext 22425 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fdupnames = DFALSE 22426 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fend_pattern = pattern + uintptr(patlen) 22427 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Ferroroffset = uint64(0) 22428 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fexternal_flags = Tuint32_t(0) 22429 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fexternal_options = options 22430 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fgroupinfo = bp + 12000 /* &stack_groupinfo[0] */ 22431 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fhad_recurse = DFALSE 22432 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Flastcapture = Tuint32_t(0) 22433 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fmax_lookbehind = 0 22434 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fname_entry_size = Tuint16_t(0) 22435 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fname_table = uintptr(0) 22436 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fnamed_groups = bp + 13024 /* &named_groups[0] */ 22437 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fnamed_group_list_size = Tuint32_t(DNAMED_GROUP_LIST_SIZE) 22438 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fnames_found = Tuint16_t(0) 22439 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fopen_caps = uintptr(0) 22440 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fparens_depth = Tuint16_t(0) 22441 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fparsed_pattern = bp + 13344 /* &stack_parsed_pattern[0] */ 22442 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Freq_varyopt = Tuint32_t(0) 22443 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fstart_code = cworkspace 22444 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fstart_pattern = pattern 22445 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fstart_workspace = cworkspace 22446 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fworkspace_size = uint64(3000 * DLINK_SIZE) 22447 22448 // Maximum back reference and backref bitmap. The bitmap records up to 31 back 22449 // references to help in deciding whether (.*) can be treated as anchored or not. 22450 22451 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Ftop_backref = Tuint32_t(0) 22452 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fbackref_map = Tuint32_t(0) 22453 22454 // Escape sequences \1 to \9 are always back references, but as they are only 22455 // two characters long, only two elements can be used in the parsed_pattern 22456 // vector. The first contains the reference, and we'd like to use the second to 22457 // record the offset in the pattern, so that forward references to non-existent 22458 // groups can be diagnosed later with an offset. However, on 64-bit systems, 22459 // PCRE2_SIZE won't fit. Instead, we have a vector of offsets for the first 22460 // occurrence of \1 to \9, indexed by the second parsed_pattern value. All other 22461 // references have enough space for the offset to be put into the parsed pattern. 22462 22463 i = Tuint32_t(0) 22464 __9: 22465 if !(i < Tuint32_t(10)) { 22466 goto __11 22467 } 22468 *(*Tsize_t)(unsafe.Pointer(bp + 17440 + 88 + uintptr(i)*8)) = libc.CplUint64(uint64(0)) 22469 goto __10 22470 __10: 22471 i++ 22472 goto __9 22473 goto __11 22474 __11: 22475 ; 22476 22477 // --------------- Start looking at the pattern --------------- 22478 22479 // Unless PCRE2_LITERAL is set, check for global one-time option settings at 22480 // the start of the pattern, and remember the offset to the actual regex. With 22481 // valgrind support, make the terminator of a zero-terminated pattern 22482 // inaccessible. This catches bugs that would otherwise only show up for 22483 // non-zero-terminated patterns. 22484 22485 ptr = pattern 22486 skipatstart = Tuint32_t(0) 22487 22488 if !(options&DPCRE2_LITERAL == Tuint32_t(0)) { 22489 goto __12 22490 } 22491 22492 __13: 22493 if !(patlen-Tsize_t(skipatstart) >= uint64(2) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(skipatstart)))) == '\050' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(skipatstart+Tuint32_t(1))))) == '\052') { 22494 goto __14 22495 } 22496 22497 i = Tuint32_t(0) 22498 __15: 22499 if !(uint64(i) < uint64(unsafe.Sizeof(pso_list))/uint64(unsafe.Sizeof(Tpso{}))) { 22500 goto __17 22501 } 22502 22503 p = uintptr(unsafe.Pointer(&pso_list)) + uintptr(i)*16 22504 22505 if !(patlen-Tsize_t(skipatstart)-uint64(2) >= Tsize_t((*Tpso)(unsafe.Pointer(p)).Flength) && X_pcre2_strncmp_c8_8(tls, ptr+uintptr(skipatstart)+uintptr(2), (*Tpso)(unsafe.Pointer(p)).Fname, 22506 uint64((*Tpso)(unsafe.Pointer(p)).Flength)) == 0) { 22507 goto __18 22508 } 22509 22510 skipatstart = skipatstart + Tuint32_t(int32((*Tpso)(unsafe.Pointer(p)).Flength)+2) 22511 switch int32((*Tpso)(unsafe.Pointer(p)).Ftype) { 22512 case PSO_OPT: 22513 goto __20 22514 22515 case PSO_FLG: 22516 goto __21 22517 22518 case PSO_NL: 22519 goto __22 22520 22521 case PSO_BSR: 22522 goto __23 22523 22524 case PSO_LIMM: 22525 goto __24 22526 case PSO_LIMD: 22527 goto __25 22528 case PSO_LIMH: 22529 goto __26 22530 } 22531 goto __19 22532 22533 __20: 22534 *(*Tuint32_t)(unsafe.Pointer(bp + 17440 + 204)) |= (*Tpso)(unsafe.Pointer(p)).Fvalue 22535 goto __19 22536 22537 __21: 22538 setflags = setflags | (*Tpso)(unsafe.Pointer(p)).Fvalue 22539 goto __19 22540 22541 __22: 22542 newline = int32((*Tpso)(unsafe.Pointer(p)).Fvalue) 22543 setflags = setflags | Tuint32_t(DPCRE2_NL_SET) 22544 goto __19 22545 22546 __23: 22547 bsr = int32((*Tpso)(unsafe.Pointer(p)).Fvalue) 22548 setflags = setflags | Tuint32_t(DPCRE2_BSR_SET) 22549 goto __19 22550 22551 __24: 22552 __25: 22553 __26: 22554 c = Tuint32_t(0) 22555 pp = skipatstart 22556 if !!(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(pp)))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(pp)))) <= '\071') { 22557 goto __27 22558 } 22559 22560 *(*int32)(unsafe.Pointer(bp + 17768 /* errorcode */)) = ERR60 22561 ptr += TPCRE2_SPTR8(pp) 22562 goto HAD_EARLY_ERROR 22563 __27: 22564 ; 22565 __28: 22566 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(pp)))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(pp)))) <= '\071') { 22567 goto __29 22568 } 22569 22570 if !(c > 4294967295/uint32(10)-uint32(1)) { 22571 goto __30 22572 } 22573 goto __29 22574 __30: 22575 ; // Integer overflow 22576 c = c*Tuint32_t(10) + Tuint32_t(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(libc.PostIncUint32(&pp, 1)))))-'\060') 22577 goto __28 22578 __29: 22579 ; 22580 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(libc.PostIncUint32(&pp, 1))))) != '\051') { 22581 goto __31 22582 } 22583 22584 *(*int32)(unsafe.Pointer(bp + 17768 /* errorcode */)) = ERR60 22585 ptr += TPCRE2_SPTR8(pp) 22586 goto HAD_EARLY_ERROR 22587 __31: 22588 ; 22589 if !(int32((*Tpso)(unsafe.Pointer(p)).Ftype) == PSO_LIMH) { 22590 goto __32 22591 } 22592 limit_heap = c 22593 goto __33 22594 __32: 22595 if !(int32((*Tpso)(unsafe.Pointer(p)).Ftype) == PSO_LIMM) { 22596 goto __34 22597 } 22598 limit_match = c 22599 goto __35 22600 __34: 22601 limit_depth = c 22602 __35: 22603 ; 22604 __33: 22605 ; 22606 skipatstart = skipatstart + (pp - skipatstart) 22607 goto __19 22608 __19: 22609 ; 22610 goto __17 // Out of the table scan loop 22611 __18: 22612 ; 22613 goto __16 22614 __16: 22615 i++ 22616 goto __15 22617 goto __17 22618 __17: 22619 ; 22620 if !(uint64(i) >= uint64(unsafe.Sizeof(pso_list))/uint64(unsafe.Sizeof(Tpso{}))) { 22621 goto __36 22622 } 22623 goto __14 22624 __36: 22625 ; // Out of pso loop 22626 goto __13 22627 __14: 22628 ; 22629 __12: 22630 ; 22631 22632 // End of pattern-start options; advance to start of real regex. 22633 22634 ptr += TPCRE2_SPTR8(skipatstart) 22635 22636 // Can't support UTF or UCP if PCRE2 was built without Unicode support. 22637 22638 // Check UTF. We have the original options in 'options', with that value as 22639 // modified by (*UTF) etc in cb->external_options. The extra option 22640 // PCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES is not permitted in UTF-16 mode because the 22641 // surrogate code points cannot be represented in UTF-16. 22642 22643 utf = libc.Bool32((*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fexternal_options&DPCRE2_UTF != Tuint32_t(0)) 22644 if !(utf != 0) { 22645 goto __37 22646 } 22647 22648 if !(options&DPCRE2_NEVER_UTF != Tuint32_t(0)) { 22649 goto __38 22650 } 22651 22652 *(*int32)(unsafe.Pointer(bp + 17768 /* errorcode */)) = ERR74 22653 goto HAD_EARLY_ERROR 22654 __38: 22655 ; 22656 if !(options&DPCRE2_NO_UTF_CHECK == Tuint32_t(0) && libc.AssignPtrInt32(bp+17768, X_pcre2_valid_utf_8(tls, pattern, patlen, erroroffset)) != 0) { 22657 goto __39 22658 } 22659 goto HAD_ERROR 22660 __39: 22661 ; // Offset was set by valid_utf() 22662 22663 __37: 22664 ; 22665 22666 // Check UCP lockout. 22667 22668 ucp = libc.Bool32((*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fexternal_options&DPCRE2_UCP != Tuint32_t(0)) 22669 if !(ucp != 0 && (*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fexternal_options&DPCRE2_NEVER_UCP != Tuint32_t(0)) { 22670 goto __40 22671 } 22672 22673 *(*int32)(unsafe.Pointer(bp + 17768 /* errorcode */)) = ERR75 22674 goto HAD_EARLY_ERROR 22675 __40: 22676 ; 22677 22678 // Process the BSR setting. 22679 22680 if !(bsr == 0) { 22681 goto __41 22682 } 22683 bsr = int32((*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fbsr_convention) 22684 __41: 22685 ; 22686 22687 // Process the newline setting. 22688 22689 if !(newline == 0) { 22690 goto __42 22691 } 22692 newline = int32((*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fnewline_convention) 22693 __42: 22694 ; 22695 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fnltype = Tuint32_t(DNLTYPE_FIXED) 22696 switch newline { 22697 case DPCRE2_NEWLINE_CR: 22698 goto __44 22699 22700 case DPCRE2_NEWLINE_LF: 22701 goto __45 22702 22703 case DPCRE2_NEWLINE_NUL: 22704 goto __46 22705 22706 case DPCRE2_NEWLINE_CRLF: 22707 goto __47 22708 22709 case DPCRE2_NEWLINE_ANY: 22710 goto __48 22711 22712 case DPCRE2_NEWLINE_ANYCRLF: 22713 goto __49 22714 22715 default: 22716 goto __50 22717 } 22718 goto __43 22719 22720 __44: 22721 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fnllen = Tuint32_t(1) 22722 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 17440 + 272)) = TPCRE2_UCHAR8('\015') 22723 goto __43 22724 22725 __45: 22726 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fnllen = Tuint32_t(1) 22727 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 17440 + 272)) = TPCRE2_UCHAR8('\012') 22728 goto __43 22729 22730 __46: 22731 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fnllen = Tuint32_t(1) 22732 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 17440 + 272)) = TPCRE2_UCHAR8(0) 22733 goto __43 22734 22735 __47: 22736 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fnllen = Tuint32_t(2) 22737 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 17440 + 272)) = TPCRE2_UCHAR8('\015') 22738 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 17440 + 272 + 1)) = TPCRE2_UCHAR8('\012') 22739 goto __43 22740 22741 __48: 22742 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fnltype = Tuint32_t(DNLTYPE_ANY) 22743 goto __43 22744 22745 __49: 22746 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fnltype = Tuint32_t(DNLTYPE_ANYCRLF) 22747 goto __43 22748 22749 __50: 22750 *(*int32)(unsafe.Pointer(bp + 17768 /* errorcode */)) = ERR56 22751 goto HAD_EARLY_ERROR 22752 __43: 22753 ; 22754 22755 // Pre-scan the pattern to do two things: (1) Discover the named groups and 22756 // their numerical equivalents, so that this information is always available for 22757 // the remaining processing. (2) At the same time, parse the pattern and put a 22758 // processed version into the parsed_pattern vector. This has escapes interpreted 22759 // and comments removed (amongst other things). 22760 // 22761 // In all but one case, when PCRE2_AUTO_CALLOUT is not set, the number of unsigned 22762 // 32-bit ints in the parsed pattern is bounded by the length of the pattern plus 22763 // one (for the terminator) plus four if PCRE2_EXTRA_WORD or PCRE2_EXTRA_LINE is 22764 // set. The exceptional case is when running in 32-bit, non-UTF mode, when literal 22765 // characters greater than META_END (0x80000000) have to be coded as two units. In 22766 // this case, therefore, we scan the pattern to check for such values. 22767 22768 // Ensure that the parsed pattern buffer is big enough. When PCRE2_AUTO_CALLOUT 22769 // is set we have to assume a numerical callout (4 elements) for each character 22770 // plus one at the end. This is overkill, but memory is plentiful these days. For 22771 // many smaller patterns the vector on the stack (which was set up above) can be 22772 // used. 22773 22774 parsed_size_needed = patlen - Tsize_t(skipatstart) + big32count 22775 22776 if !((*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fextra_options&(DPCRE2_EXTRA_MATCH_WORD|DPCRE2_EXTRA_MATCH_LINE) != Tuint32_t(0)) { 22777 goto __51 22778 } 22779 parsed_size_needed = parsed_size_needed + uint64(4) 22780 __51: 22781 ; 22782 22783 if !(options&DPCRE2_AUTO_CALLOUT != Tuint32_t(0)) { 22784 goto __52 22785 } 22786 parsed_size_needed = (parsed_size_needed + uint64(1)) * uint64(5) 22787 __52: 22788 ; 22789 22790 if !(parsed_size_needed >= uint64(DPARSED_PATTERN_DEFAULT_SIZE)) { 22791 goto __53 22792 } 22793 22794 heap_parsed_pattern = (*struct { 22795 f func(*libc.TLS, Tsize_t, uintptr) uintptr 22796 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmalloc})).f(tls, 22797 (parsed_size_needed+uint64(1))*Tsize_t(unsafe.Sizeof(Tuint32_t(0))), (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmemory_data) 22798 if !(heap_parsed_pattern == uintptr(0)) { 22799 goto __54 22800 } 22801 22802 *(*int32)(unsafe.Pointer(errorptr)) = ERR21 22803 goto EXIT 22804 __54: 22805 ; 22806 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fparsed_pattern = heap_parsed_pattern 22807 __53: 22808 ; 22809 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fparsed_pattern_end = (*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fparsed_pattern + uintptr(parsed_size_needed)*4 + uintptr(1)*4 22810 22811 // Do the parsing scan. 22812 22813 *(*int32)(unsafe.Pointer(bp + 17768 /* errorcode */)) = parse_regex(tls, ptr, (*Tcompile_block_8)(unsafe.Pointer(bp+17440 /* &cb */)).Fexternal_options, bp+17744, bp+17440) 22814 if !(*(*int32)(unsafe.Pointer(bp + 17768)) != 0) { 22815 goto __55 22816 } 22817 goto HAD_CB_ERROR 22818 __55: 22819 ; 22820 22821 // Workspace is needed to remember information about numbered groups: whether a 22822 // group can match an empty string and what its fixed length is. This is done to 22823 // avoid the possibility of recursive references causing very long compile times 22824 // when checking these features. Unnumbered groups do not have this exposure since 22825 // they cannot be referenced. We use an indexed vector for this purpose. If there 22826 // are sufficiently few groups, the default vector on the stack, as set up above, 22827 // can be used. Otherwise we have to get/free a special vector. The vector must be 22828 // initialized to zero. 22829 22830 if !((*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fbracount >= Tuint32_t(DGROUPINFO_DEFAULT_SIZE)) { 22831 goto __56 22832 } 22833 22834 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fgroupinfo = (*struct { 22835 f func(*libc.TLS, Tsize_t, uintptr) uintptr 22836 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmalloc})).f(tls, 22837 uint64((*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fbracount+Tuint32_t(1))*uint64(unsafe.Sizeof(Tuint32_t(0))), (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmemory_data) 22838 if !((*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fgroupinfo == uintptr(0)) { 22839 goto __57 22840 } 22841 22842 *(*int32)(unsafe.Pointer(bp + 17768 /* errorcode */)) = ERR21 22843 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Ferroroffset = uint64(0) 22844 goto HAD_CB_ERROR 22845 __57: 22846 ; 22847 __56: 22848 ; 22849 libc.Xmemset(tls, (*Tcompile_block_8)(unsafe.Pointer(bp+17440 /* &cb */)).Fgroupinfo, 0, uint64((*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fbracount+Tuint32_t(1))*uint64(unsafe.Sizeof(Tuint32_t(0)))) 22850 22851 // If there were any lookbehinds, scan the parsed pattern to figure out their 22852 // lengths. 22853 22854 if !(*(*TBOOL)(unsafe.Pointer(bp + 17744)) != 0) { 22855 goto __58 22856 } 22857 22858 *(*int32)(unsafe.Pointer(bp + 17748 /* loopcount */)) = 0 22859 *(*int32)(unsafe.Pointer(bp + 17768 /* errorcode */)) = check_lookbehinds(tls, (*Tcompile_block_8)(unsafe.Pointer(bp+17440 /* &cb */)).Fparsed_pattern, uintptr(0), uintptr(0), bp+17440, bp+17748) 22860 if !(*(*int32)(unsafe.Pointer(bp + 17768)) != 0) { 22861 goto __59 22862 } 22863 goto HAD_CB_ERROR 22864 __59: 22865 ; 22866 __58: 22867 ; 22868 22869 // For debugging, there is a function that shows the parsed data vector. 22870 22871 // For debugging capturing information this code can be enabled. 22872 22873 // Pretend to compile the pattern while actually just accumulating the amount 22874 // of memory required in the 'length' variable. This behaviour is triggered by 22875 // passing a non-NULL final argument to compile_regex(). We pass a block of 22876 // workspace (cworkspace) for it to compile parts of the pattern into; the 22877 // compiled code is discarded when it is no longer needed, so hopefully this 22878 // workspace will never overflow, though there is a test for its doing so. 22879 // 22880 // On error, errorcode will be set non-zero, so we don't need to look at the 22881 // result of the function. The initial options have been put into the cb block, 22882 // but we still have to pass a separate options variable (the first argument) 22883 // because the options may change as the pattern is processed. 22884 22885 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Ferroroffset = patlen // For any subsequent errors that do not set it 22886 *(*uintptr)(unsafe.Pointer(bp + 17760 /* pptr */)) = (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fparsed_pattern 22887 *(*uintptr)(unsafe.Pointer(bp + 17752 /* code */)) = cworkspace 22888 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 17752 /* code */)))) = OP_BRA 22889 22890 compile_regex(tls, (*Tcompile_block_8)(unsafe.Pointer(bp+17440 /* &cb */)).Fexternal_options, bp+17752, bp+17760, bp+17768, uint32(0), bp+17772, 22891 bp+17776, bp+17780, bp+17784, uintptr(0), bp+17440, bp+17792) 22892 22893 if !(*(*int32)(unsafe.Pointer(bp + 17768)) != 0) { 22894 goto __60 22895 } 22896 goto HAD_CB_ERROR 22897 __60: 22898 ; // Offset is in cb.erroroffset 22899 22900 // This should be caught in compile_regex(), but just in case... 22901 22902 if !(*(*Tsize_t)(unsafe.Pointer(bp + 17792)) > uint64(int32(1)<<16)) { 22903 goto __61 22904 } 22905 22906 *(*int32)(unsafe.Pointer(bp + 17768 /* errorcode */)) = ERR20 22907 goto HAD_CB_ERROR 22908 __61: 22909 ; 22910 22911 // Compute the size of, and then get and initialize, the data block for storing 22912 // the compiled pattern and names table. Integer overflow should no longer be 22913 // possible because nowadays we limit the maximum value of cb.names_found and 22914 // cb.name_entry_size. 22915 22916 re_blocksize = uint64(unsafe.Sizeof(Tpcre2_real_code_8{})) + (*(*Tsize_t)(unsafe.Pointer(bp + 17792))+Tsize_t((*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fnames_found)*Tsize_t((*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fname_entry_size))*uint64(DPCRE2_CODE_UNIT_WIDTH/8) 22917 re = (*struct { 22918 f func(*libc.TLS, Tsize_t, uintptr) uintptr 22919 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmalloc})).f(tls, re_blocksize, (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmemory_data) 22920 if !(re == uintptr(0)) { 22921 goto __62 22922 } 22923 22924 *(*int32)(unsafe.Pointer(bp + 17768 /* errorcode */)) = ERR21 22925 goto HAD_CB_ERROR 22926 __62: 22927 ; 22928 22929 // The compiler may put padding at the end of the pcre2_real_code structure in 22930 // order to round it up to a multiple of 4 or 8 bytes. This means that when a 22931 // compiled pattern is copied (for example, when serialized) undefined bytes are 22932 // read, and this annoys debuggers such as valgrind. To avoid this, we explicitly 22933 // write to the last 8 bytes of the structure before setting the fields. 22934 22935 libc.Xmemset(tls, re+uintptr(uint64(unsafe.Sizeof(Tpcre2_real_code_8{})))-uintptr(8), 0, uint64(8)) 22936 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmemctl = (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl 22937 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftables = tables 22938 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fexecutable_jit = uintptr(0) 22939 libc.Xmemset(tls, re+40, 0, uint64(32)*uint64(unsafe.Sizeof(Tuint8_t(0)))) 22940 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fblocksize = re_blocksize 22941 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmagic_number = uint32(DMAGIC_NUMBER) 22942 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fcompile_options = options 22943 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options = (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fexternal_options 22944 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fextra_options = (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fextra_options 22945 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags = Tuint32_t(DPCRE2_CODE_UNIT_WIDTH/8) | (*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fexternal_flags | setflags 22946 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_heap = limit_heap 22947 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_match = limit_match 22948 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_depth = limit_depth 22949 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ffirst_codeunit = Tuint32_t(0) 22950 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flast_codeunit = Tuint32_t(0) 22951 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fbsr_convention = Tuint16_t(bsr) 22952 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fnewline_convention = Tuint16_t(newline) 22953 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmax_lookbehind = Tuint16_t(0) 22954 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fminlength = Tuint16_t(0) 22955 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftop_bracket = Tuint16_t(0) 22956 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftop_backref = Tuint16_t(0) 22957 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_entry_size = (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fname_entry_size 22958 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_count = (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fnames_found 22959 22960 // The basic block is immediately followed by the name table, and the compiled 22961 // code follows after that. 22962 22963 codestart = re + uintptr(uint64(unsafe.Sizeof(Tpcre2_real_code_8{}))) + uintptr(int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_entry_size)*int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_count)) 22964 22965 // Update the compile data block for the actual compile. The starting points of 22966 // the name/number translation table and of the code are passed around in the 22967 // compile data block. The start/end pattern and initial options are already set 22968 // from the pre-compile phase, as is the name_entry_size field. 22969 22970 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fparens_depth = Tuint16_t(0) 22971 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fassert_depth = Tuint16_t(0) 22972 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Flastcapture = Tuint32_t(0) 22973 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fname_table = re + uintptr(uint64(unsafe.Sizeof(Tpcre2_real_code_8{}))) 22974 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fstart_code = codestart 22975 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Freq_varyopt = Tuint32_t(0) 22976 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fhad_accept = DFALSE 22977 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fhad_pruneorskip = DFALSE 22978 (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fopen_caps = uintptr(0) 22979 22980 // If any named groups were found, create the name/number table from the list 22981 // created in the pre-pass. 22982 22983 if !(int32((*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fnames_found) > 0) { 22984 goto __63 22985 } 22986 22987 ng = (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fnamed_groups 22988 i = Tuint32_t(0) 22989 __64: 22990 if !(i < Tuint32_t((*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fnames_found)) { 22991 goto __66 22992 } 22993 add_name_to_table(tls, bp+17440, (*Tnamed_group_8)(unsafe.Pointer(ng)).Fname, int32((*Tnamed_group_8)(unsafe.Pointer(ng)).Flength), (*Tnamed_group_8)(unsafe.Pointer(ng)).Fnumber, i) 22994 goto __65 22995 __65: 22996 i++ 22997 ng += 16 22998 goto __64 22999 goto __66 23000 __66: 23001 ; 23002 __63: 23003 ; 23004 23005 // Set up a starting, non-extracting bracket, then compile the expression. On 23006 // error, errorcode will be set non-zero, so we don't need to look at the result 23007 // of the function here. 23008 23009 *(*uintptr)(unsafe.Pointer(bp + 17760 /* pptr */)) = (*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fparsed_pattern 23010 *(*uintptr)(unsafe.Pointer(bp + 17752 /* code */)) = codestart 23011 *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 17752 /* code */)))) = OP_BRA 23012 regexrc = compile_regex(tls, (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options, bp+17752, bp+17760, bp+17768, uint32(0), 23013 bp+17772, bp+17776, bp+17780, bp+17784, uintptr(0), bp+17440, uintptr(0)) 23014 if !(regexrc < 0) { 23015 goto __67 23016 } 23017 *(*Tuint32_t)(unsafe.Pointer(re + 96)) |= Tuint32_t(DPCRE2_MATCH_EMPTY) 23018 __67: 23019 ; 23020 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftop_bracket = Tuint16_t((*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fbracount) 23021 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftop_backref = Tuint16_t((*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Ftop_backref) 23022 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmax_lookbehind = Tuint16_t((*Tcompile_block_8)(unsafe.Pointer(bp + 17440 /* &cb */)).Fmax_lookbehind) 23023 23024 if !((*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fhad_accept != 0) { 23025 goto __68 23026 } 23027 23028 *(*Tuint32_t)(unsafe.Pointer(bp + 17780 /* reqcu */)) = Tuint32_t(0) // Must disable after (*ACCEPT) 23029 *(*Tuint32_t)(unsafe.Pointer(bp + 17784 /* reqcuflags */)) = DREQ_NONE 23030 *(*Tuint32_t)(unsafe.Pointer(re + 96)) |= Tuint32_t(DPCRE2_HASACCEPT) // Disables minimum length 23031 __68: 23032 ; 23033 23034 // Fill in the final opcode and check for disastrous overflow. If no overflow, 23035 // but the estimated length exceeds the really used length, adjust the value of 23036 // re->blocksize, and if valgrind support is configured, mark the extra allocated 23037 // memory as unaddressable, so that any out-of-bound reads can be detected. 23038 23039 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*uintptr)(unsafe.Pointer(bp + 17752 /* code */)), 1))) = OP_END 23040 usedlength = Tsize_t((int64(*(*uintptr)(unsafe.Pointer(bp + 17752))) - int64(codestart)) / 1) 23041 if !(usedlength > *(*Tsize_t)(unsafe.Pointer(bp + 17792))) { 23042 goto __69 23043 } 23044 *(*int32)(unsafe.Pointer(bp + 17768 /* errorcode */)) = ERR23 23045 goto __70 23046 __69: 23047 23048 *(*Tsize_t)(unsafe.Pointer(re + 72)) -= (*(*Tsize_t)(unsafe.Pointer(bp + 17792)) - usedlength) * uint64(DPCRE2_CODE_UNIT_WIDTH/8) 23049 __70: 23050 ; 23051 23052 // Scan the pattern for recursion/subroutine calls and convert the group 23053 // numbers into offsets. Maintain a small cache so that repeated groups containing 23054 // recursions are efficiently handled. 23055 23056 if !(*(*int32)(unsafe.Pointer(bp + 17768)) == 0 && (*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fhad_recurse != 0) { 23057 goto __71 23058 } 23059 23060 ccount = uint32(0) 23061 start = DRSCAN_CACHE_SIZE 23062 23063 rcode = find_recurse(tls, codestart, utf) 23064 __72: 23065 if !(rcode != uintptr(0)) { 23066 goto __74 23067 } 23068 23069 groupnumber = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(rcode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(rcode + 2))))) 23070 if !(groupnumber == 0) { 23071 goto __75 23072 } 23073 rgroup = codestart 23074 goto __76 23075 __75: 23076 23077 search_from = codestart 23078 rgroup = uintptr(0) 23079 i = Tuint32_t(0) 23080 p1 = start 23081 __77: 23082 if !(i < ccount) { 23083 goto __79 23084 } 23085 23086 if !(groupnumber == (*Trecurse_cache)(unsafe.Pointer(bp+17800+uintptr(p1)*16)).Fgroupnumber) { 23087 goto __80 23088 } 23089 23090 rgroup = (*Trecurse_cache)(unsafe.Pointer(bp + 17800 + uintptr(p1)*16)).Fgroup 23091 goto __79 23092 __80: 23093 ; 23094 23095 // Group n+1 must always start to the right of group n, so we can save 23096 // search time below when the new group number is greater than any of the 23097 // previously found groups. 23098 23099 if !(groupnumber > (*Trecurse_cache)(unsafe.Pointer(bp+17800+uintptr(p1)*16)).Fgroupnumber) { 23100 goto __81 23101 } 23102 search_from = (*Trecurse_cache)(unsafe.Pointer(bp + 17800 + uintptr(p1)*16)).Fgroup 23103 __81: 23104 ; 23105 goto __78 23106 __78: 23107 i++ 23108 p1 = (p1 + 1) & 7 23109 goto __77 23110 goto __79 23111 __79: 23112 ; 23113 23114 if !(rgroup == uintptr(0)) { 23115 goto __82 23116 } 23117 23118 rgroup = X_pcre2_find_bracket_8(tls, search_from, utf, groupnumber) 23119 if !(rgroup == uintptr(0)) { 23120 goto __83 23121 } 23122 23123 *(*int32)(unsafe.Pointer(bp + 17768 /* errorcode */)) = ERR53 23124 goto __74 23125 __83: 23126 ; 23127 if !(libc.PreDecInt32(&start, 1) < 0) { 23128 goto __84 23129 } 23130 start = DRSCAN_CACHE_SIZE - 1 23131 __84: 23132 ; 23133 (*Trecurse_cache)(unsafe.Pointer(bp + 17800 + uintptr(start)*16)).Fgroupnumber = groupnumber 23134 (*Trecurse_cache)(unsafe.Pointer(bp + 17800 + uintptr(start)*16)).Fgroup = rgroup 23135 if !(ccount < uint32(DRSCAN_CACHE_SIZE)) { 23136 goto __85 23137 } 23138 ccount++ 23139 __85: 23140 ; 23141 __82: 23142 ; 23143 __76: 23144 ; 23145 23146 *(*TPCRE2_UCHAR8)(unsafe.Pointer(rcode + 1)) = TPCRE2_UCHAR8((int64(rgroup) - int64(codestart)) / 1 >> 8) 23147 *(*TPCRE2_UCHAR8)(unsafe.Pointer(rcode + 2)) = TPCRE2_UCHAR8((int64(rgroup) - int64(codestart)) / 1 & int64(255)) 23148 goto __73 23149 __73: 23150 rcode = find_recurse(tls, rcode+uintptr(1)+uintptr(DLINK_SIZE), utf) 23151 goto __72 23152 goto __74 23153 __74: 23154 ; 23155 __71: 23156 ; 23157 23158 // In rare debugging situations we sometimes need to look at the compiled code 23159 // at this stage. 23160 23161 // Unless disabled, check whether any single character iterators can be 23162 // auto-possessified. The function overwrites the appropriate opcode values, so 23163 // the type of the pointer must be cast. NOTE: the intermediate variable "temp" is 23164 // used in this code because at least one compiler gives a warning about loss of 23165 // "const" attribute if the cast (PCRE2_UCHAR *)codestart is used directly in the 23166 // function call. 23167 23168 if !(*(*int32)(unsafe.Pointer(bp + 17768)) == 0 && (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_NO_AUTO_POSSESS == Tuint32_t(0)) { 23169 goto __86 23170 } 23171 23172 temp = codestart 23173 if !(X_pcre2_auto_possessify_8(tls, temp, bp+17440) != 0) { 23174 goto __87 23175 } 23176 *(*int32)(unsafe.Pointer(bp + 17768 /* errorcode */)) = ERR80 23177 __87: 23178 ; 23179 __86: 23180 ; 23181 23182 // Failed to compile, or error while post-processing. 23183 23184 if !(*(*int32)(unsafe.Pointer(bp + 17768)) != 0) { 23185 goto __88 23186 } 23187 goto HAD_CB_ERROR 23188 __88: 23189 ; 23190 23191 // Successful compile. If the anchored option was not passed, set it if 23192 // we can determine that the pattern is anchored by virtue of ^ characters or \A 23193 // or anything else, such as starting with non-atomic .* when DOTALL is set and 23194 // there are no occurrences of *PRUNE or *SKIP (though there is an option to 23195 // disable this case). 23196 23197 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_ANCHORED == Tuint32_t(0) && is_anchored(tls, codestart, uint32(0), bp+17440, 0, DFALSE) != 0) { 23198 goto __89 23199 } 23200 *(*Tuint32_t)(unsafe.Pointer(re + 88)) |= DPCRE2_ANCHORED 23201 __89: 23202 ; 23203 23204 // Set up the first code unit or startline flag, the required code unit, and 23205 // then study the pattern. This code need not be obeyed if PCRE2_NO_START_OPTIMIZE 23206 // is set, as the data it would create will not be used. Note that a first code 23207 // unit (but not the startline flag) is useful for anchored patterns because it 23208 // can still give a quick "no match" and also avoid searching for a last code 23209 // unit. 23210 23211 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_NO_START_OPTIMIZE == Tuint32_t(0)) { 23212 goto __90 23213 } 23214 23215 minminlength = 0 // For minimal minlength from first/required CU 23216 23217 // If we do not have a first code unit, see if there is one that is asserted 23218 // (these are not saved during the compile because they can cause conflicts with 23219 // actual literals that follow). 23220 23221 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 17776)) >= DREQ_NONE) { 23222 goto __91 23223 } 23224 *(*Tuint32_t)(unsafe.Pointer(bp + 17772 /* firstcu */)) = find_firstassertedcu(tls, codestart, bp+17776, uint32(0)) 23225 __91: 23226 ; 23227 23228 // Save the data for a first code unit. The existence of one means the 23229 // minimum length must be at least 1. 23230 23231 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 17776)) < DREQ_NONE) { 23232 goto __92 23233 } 23234 23235 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ffirst_codeunit = *(*Tuint32_t)(unsafe.Pointer(bp + 17772 /* firstcu */)) 23236 *(*Tuint32_t)(unsafe.Pointer(re + 96)) |= Tuint32_t(DPCRE2_FIRSTSET) 23237 minminlength++ 23238 23239 // Handle caseless first code units. 23240 23241 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 17776))&DREQ_CASELESS != Tuint32_t(0)) { 23242 goto __94 23243 } 23244 23245 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 17772)) < Tuint32_t(128) || !(utf != 0) && !(ucp != 0) && *(*Tuint32_t)(unsafe.Pointer(bp + 17772)) < Tuint32_t(255)) { 23246 goto __95 23247 } 23248 23249 if !(Tuint32_t(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Ffcc + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 17772)))))) != *(*Tuint32_t)(unsafe.Pointer(bp + 17772))) { 23250 goto __97 23251 } 23252 *(*Tuint32_t)(unsafe.Pointer(re + 96)) |= Tuint32_t(DPCRE2_FIRSTCASELESS) 23253 __97: 23254 ; 23255 goto __96 23256 __95: 23257 if !(ucp != 0 && !(utf != 0) && Tuint32_t(int32(*(*Tuint32_t)(unsafe.Pointer(bp + 17772)))+(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(*(*Tuint32_t)(unsafe.Pointer(bp + 17772)))/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(*(*Tuint32_t)(unsafe.Pointer(bp + 17772)))%DUCD_BLOCK_SIZE])*12)).Fother_case) != *(*Tuint32_t)(unsafe.Pointer(bp + 17772))) { 23258 goto __98 23259 } 23260 *(*Tuint32_t)(unsafe.Pointer(re + 96)) |= Tuint32_t(DPCRE2_FIRSTCASELESS) 23261 __98: 23262 ; 23263 __96: 23264 ; 23265 __94: 23266 ; 23267 goto __93 23268 __92: 23269 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_ANCHORED == Tuint32_t(0) && is_startline(tls, codestart, uint32(0), bp+17440, 0, DFALSE) != 0) { 23270 goto __99 23271 } 23272 *(*Tuint32_t)(unsafe.Pointer(re + 96)) |= Tuint32_t(DPCRE2_STARTLINE) 23273 __99: 23274 ; 23275 __93: 23276 ; 23277 23278 // Handle the "required code unit", if one is set. In the UTF case we can 23279 // increment the minimum minimum length only if we are sure this really is a 23280 // different character and not a non-starting code unit of the first character, 23281 // because the minimum length count is in characters, not code units. 23282 23283 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 17784)) < DREQ_NONE) { 23284 goto __100 23285 } 23286 23287 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_UTF == Tuint32_t(0) || *(*Tuint32_t)(unsafe.Pointer(bp + 17776)) >= DREQ_NONE || *(*Tuint32_t)(unsafe.Pointer(bp + 17772))&Tuint32_t(0x80) == Tuint32_t(0) || *(*Tuint32_t)(unsafe.Pointer(bp + 17780))&Tuint32_t(0x80) == Tuint32_t(0)) { 23288 goto __101 23289 } /* Req is ASCII */ 23290 23291 minminlength++ 23292 __101: 23293 ; 23294 23295 // In the case of an anchored pattern, set up the value only if it follows 23296 // a variable length item in the pattern. 23297 23298 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_ANCHORED == Tuint32_t(0) || *(*Tuint32_t)(unsafe.Pointer(bp + 17784))&DREQ_VARY != Tuint32_t(0)) { 23299 goto __102 23300 } 23301 23302 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flast_codeunit = *(*Tuint32_t)(unsafe.Pointer(bp + 17780 /* reqcu */)) 23303 *(*Tuint32_t)(unsafe.Pointer(re + 96)) |= Tuint32_t(DPCRE2_LASTSET) 23304 23305 // Handle caseless required code units as for first code units (above). 23306 23307 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 17784))&DREQ_CASELESS != Tuint32_t(0)) { 23308 goto __103 23309 } 23310 23311 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 17780)) < Tuint32_t(128) || !(utf != 0) && !(ucp != 0) && *(*Tuint32_t)(unsafe.Pointer(bp + 17780)) < Tuint32_t(255)) { 23312 goto __104 23313 } 23314 23315 if !(Tuint32_t(*(*Tuint8_t)(unsafe.Pointer((*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Ffcc + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 17780)))))) != *(*Tuint32_t)(unsafe.Pointer(bp + 17780))) { 23316 goto __106 23317 } 23318 *(*Tuint32_t)(unsafe.Pointer(re + 96)) |= Tuint32_t(DPCRE2_LASTCASELESS) 23319 __106: 23320 ; 23321 goto __105 23322 __104: 23323 if !(ucp != 0 && !(utf != 0) && Tuint32_t(int32(*(*Tuint32_t)(unsafe.Pointer(bp + 17780)))+(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(*(*Tuint32_t)(unsafe.Pointer(bp + 17780)))/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(*(*Tuint32_t)(unsafe.Pointer(bp + 17780)))%DUCD_BLOCK_SIZE])*12)).Fother_case) != *(*Tuint32_t)(unsafe.Pointer(bp + 17780))) { 23324 goto __107 23325 } 23326 *(*Tuint32_t)(unsafe.Pointer(re + 96)) |= Tuint32_t(DPCRE2_LASTCASELESS) 23327 __107: 23328 ; 23329 __105: 23330 ; 23331 __103: 23332 ; 23333 __102: 23334 ; 23335 __100: 23336 ; 23337 23338 // Study the compiled pattern to set up information such as a bitmap of 23339 // starting code units and a minimum matching length. 23340 23341 if !(X_pcre2_study_8(tls, re) != 0) { 23342 goto __108 23343 } 23344 23345 *(*int32)(unsafe.Pointer(bp + 17768 /* errorcode */)) = ERR31 23346 goto HAD_CB_ERROR 23347 __108: 23348 ; 23349 23350 // If study() set a bitmap of starting code units, it implies a minimum 23351 // length of at least one. 23352 23353 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_FIRSTMAPSET) != Tuint32_t(0) && minminlength == 0) { 23354 goto __109 23355 } 23356 minminlength = 1 23357 __109: 23358 ; 23359 23360 // If the minimum length set (or not set) by study() is less than the minimum 23361 // implied by required code units, override it. 23362 23363 if !(int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fminlength) < minminlength) { 23364 goto __110 23365 } 23366 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fminlength = Tuint16_t(minminlength) 23367 __110: 23368 ; 23369 __90: 23370 ; // End of start-of-match optimizations. 23371 23372 // Control ends up here in all cases. When running under valgrind, make a 23373 // pattern's terminating zero defined again. If memory was obtained for the parsed 23374 // version of the pattern, free it before returning. Also free the list of named 23375 // groups if a larger one had to be obtained, and likewise the group information 23376 // vector. 23377 23378 EXIT: 23379 if !((*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fparsed_pattern != bp+13344) { 23380 goto __111 23381 } 23382 (*struct { 23383 f func(*libc.TLS, uintptr, uintptr) 23384 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Ffree})).f(tls, (*Tcompile_block_8)(unsafe.Pointer(bp+17440 /* &cb */)).Fparsed_pattern, (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmemory_data) 23385 __111: 23386 ; 23387 if !((*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fnamed_group_list_size > Tuint32_t(DNAMED_GROUP_LIST_SIZE)) { 23388 goto __112 23389 } 23390 (*struct { 23391 f func(*libc.TLS, uintptr, uintptr) 23392 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Ffree})).f(tls, (*Tcompile_block_8)(unsafe.Pointer(bp+17440 /* &cb */)).Fnamed_groups, (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmemory_data) 23393 __112: 23394 ; 23395 if !((*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Fgroupinfo != bp+12000) { 23396 goto __113 23397 } 23398 (*struct { 23399 f func(*libc.TLS, uintptr, uintptr) 23400 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Ffree})).f(tls, (*Tcompile_block_8)(unsafe.Pointer(bp+17440 /* &cb */)).Fgroupinfo, (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmemory_data) 23401 __113: 23402 ; 23403 return re // Will be NULL after an error 23404 23405 // Errors discovered in parse_regex() set the offset value in the compile 23406 // block. Errors discovered before it is called must compute it from the ptr 23407 // value. After parse_regex() is called, the offset in the compile block is set to 23408 // the end of the pattern, but certain errors in compile_regex() may reset it if 23409 // an offset is available in the parsed pattern. 23410 23411 HAD_CB_ERROR: 23412 ptr = pattern + uintptr((*Tcompile_block_8)(unsafe.Pointer(bp+17440)).Ferroroffset) 23413 23414 HAD_EARLY_ERROR: 23415 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t((int64(ptr) - int64(pattern)) / 1) 23416 23417 HAD_ERROR: 23418 *(*int32)(unsafe.Pointer(errorptr)) = *(*int32)(unsafe.Pointer(bp + 17768 /* errorcode */)) 23419 Xpcre2_code_free_8(tls, re) 23420 re = uintptr(0) 23421 goto EXIT 23422 return uintptr(0) 23423 } 23424 23425 // End of pcre2_compile.c 23426 23427 // ************************************************ 23428 // 23429 // Perl-Compatible Regular Expressions * 23430 // 23431 23432 // PCRE is a library of functions to support regular expressions whose syntax 23433 // and semantics are as close as possible to those of the Perl 5 language. 23434 // 23435 // Written by Philip Hazel 23436 // Original API code Copyright (c) 1997-2012 University of Cambridge 23437 // New API code Copyright (c) 2016-2020 University of Cambridge 23438 // 23439 // ----------------------------------------------------------------------------- 23440 // Redistribution and use in source and binary forms, with or without 23441 // modification, are permitted provided that the following conditions are met: 23442 // 23443 // * Redistributions of source code must retain the above copyright notice, 23444 // this list of conditions and the following disclaimer. 23445 // 23446 // * Redistributions in binary form must reproduce the above copyright 23447 // notice, this list of conditions and the following disclaimer in the 23448 // documentation and/or other materials provided with the distribution. 23449 // 23450 // * Neither the name of the University of Cambridge nor the names of its 23451 // contributors may be used to endorse or promote products derived from 23452 // this software without specific prior written permission. 23453 // 23454 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 23455 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23456 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23457 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 23458 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 23459 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23460 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23461 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 23462 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 23463 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 23464 // POSSIBILITY OF SUCH DAMAGE. 23465 // ----------------------------------------------------------------------------- 23466 23467 // src/config.h. Generated from config.h.in by configure. 23468 // src/config.h.in. Generated from configure.ac by autoheader. 23469 23470 // PCRE2 is written in Standard C, but there are a few non-standard things it 23471 // can cope with, allowing it to run on SunOS4 and other "close to standard" 23472 // systems. 23473 // 23474 // In environments that support the GNU autotools, config.h.in is converted into 23475 // config.h by the "configure" script. In environments that use CMake, 23476 // config-cmake.in is converted into config.h. If you are going to build PCRE2 "by 23477 // hand" without using "configure" or CMake, you should copy the distributed 23478 // config.h.generic to config.h, and edit the macro definitions to be the way you 23479 // need them. You must then add -DHAVE_CONFIG_H to all of your compile commands, 23480 // so that config.h is included at the start of every source. 23481 // 23482 // Alternatively, you can avoid editing by using -D on the compiler command line 23483 // to set the macro values. In this case, you do not have to set -DHAVE_CONFIG_H, 23484 // but if you do, default values will be taken from config.h for non-boolean 23485 // macros that are not defined on the command line. 23486 // 23487 // Boolean macros such as HAVE_STDLIB_H and SUPPORT_PCRE2_8 should either be 23488 // defined (conventionally to 1) for TRUE, and not defined at all for FALSE. All 23489 // such macros are listed as a commented #undef in config.h.generic. Macros such 23490 // as MATCH_LIMIT, whose actual value is relevant, have defaults defined, but are 23491 // surrounded by #ifndef/#endif lines so that the value can be overridden by -D. 23492 // 23493 // PCRE2 uses memmove() if HAVE_MEMMOVE is defined; otherwise it uses bcopy() if 23494 // HAVE_BCOPY is defined. If your system has neither bcopy() nor memmove(), make 23495 // sure both macros are undefined; an emulation function will then be used. 23496 23497 // By default, the \R escape sequence matches any Unicode line ending 23498 // character or sequence of characters. If BSR_ANYCRLF is defined (to any 23499 // value), this is changed so that backslash-R matches only CR, LF, or CRLF. 23500 // The build-time default can be overridden by the user of PCRE2 at runtime. 23501 // 23502 // #undef BSR_ANYCRLF 23503 23504 // Define to any value to disable the use of the z and t modifiers in 23505 // formatting settings such as %zu or %td (this is rarely needed). 23506 // #undef DISABLE_PERCENT_ZT 23507 23508 // If you are compiling for a system that uses EBCDIC instead of ASCII 23509 // character codes, define this macro to any value. When EBCDIC is set, PCRE2 23510 // assumes that all input strings are in EBCDIC. If you do not define this 23511 // macro, PCRE2 will assume input strings are ASCII or UTF-8/16/32 Unicode. It 23512 // is not possible to build a version of PCRE2 that supports both EBCDIC and 23513 // UTF-8/16/32. 23514 // #undef EBCDIC 23515 23516 // In an EBCDIC environment, define this macro to any value to arrange for the 23517 // NL character to be 0x25 instead of the default 0x15. NL plays the role that 23518 // LF does in an ASCII/Unicode environment. 23519 // #undef EBCDIC_NL25 23520 23521 // Define this if your compiler supports __attribute__((uninitialized)) 23522 // #undef HAVE_ATTRIBUTE_UNINITIALIZED 23523 23524 // Define to 1 if you have the `bcopy' function. 23525 23526 // Define to 1 if you have the <bzlib.h> header file. 23527 23528 // Define to 1 if you have the <dirent.h> header file. 23529 23530 // Define to 1 if you have the <dlfcn.h> header file. 23531 23532 // Define to 1 if you have the <editline/readline.h> header file. 23533 // #undef HAVE_EDITLINE_READLINE_H 23534 23535 // Define to 1 if you have the <edit/readline/readline.h> header file. 23536 // #undef HAVE_EDIT_READLINE_READLINE_H 23537 23538 // Define to 1 if you have the <inttypes.h> header file. 23539 23540 // Define to 1 if you have the <limits.h> header file. 23541 23542 // Define to 1 if you have the `memfd_create' function. 23543 23544 // Define to 1 if you have the `memmove' function. 23545 23546 // Define to 1 if you have the <minix/config.h> header file. 23547 // #undef HAVE_MINIX_CONFIG_H 23548 23549 // Define to 1 if you have the `mkostemp' function. 23550 23551 // Define if you have POSIX threads libraries and header files. 23552 // #undef HAVE_PTHREAD 23553 23554 // Have PTHREAD_PRIO_INHERIT. 23555 // #undef HAVE_PTHREAD_PRIO_INHERIT 23556 23557 // Define to 1 if you have the <readline.h> header file. 23558 // #undef HAVE_READLINE_H 23559 23560 // Define to 1 if you have the <readline/history.h> header file. 23561 // #undef HAVE_READLINE_HISTORY_H 23562 23563 // Define to 1 if you have the <readline/readline.h> header file. 23564 // #undef HAVE_READLINE_READLINE_H 23565 23566 // Define to 1 if you have the `realpath' function. 23567 23568 // Define to 1 if you have the `secure_getenv' function. 23569 23570 // Define to 1 if you have the <stdint.h> header file. 23571 23572 // Define to 1 if you have the <stdio.h> header file. 23573 23574 // Define to 1 if you have the <stdlib.h> header file. 23575 23576 // Define to 1 if you have the `strerror' function. 23577 23578 // Define to 1 if you have the <strings.h> header file. 23579 23580 // Define to 1 if you have the <string.h> header file. 23581 23582 // Define to 1 if you have the <sys/stat.h> header file. 23583 23584 // Define to 1 if you have the <sys/types.h> header file. 23585 23586 // Define to 1 if you have the <sys/wait.h> header file. 23587 23588 // Define to 1 if you have the <unistd.h> header file. 23589 23590 // Define to 1 if the compiler supports simple visibility declarations. 23591 23592 // Define to 1 if you have the <wchar.h> header file. 23593 23594 // Define to 1 if you have the <windows.h> header file. 23595 // #undef HAVE_WINDOWS_H 23596 23597 // Define to 1 if you have the <zlib.h> header file. 23598 23599 // This limits the amount of memory that may be used while matching a pattern. 23600 // It applies to both pcre2_match() and pcre2_dfa_match(). It does not apply 23601 // to JIT matching. The value is in kibibytes (units of 1024 bytes). 23602 23603 // The value of LINK_SIZE determines the number of bytes used to store links 23604 // as offsets within the compiled regex. The default is 2, which allows for 23605 // compiled patterns up to 65535 code units long. This covers the vast 23606 // majority of cases. However, PCRE2 can also be compiled to use 3 or 4 bytes 23607 // instead. This allows for longer patterns in extreme cases. 23608 23609 // Define to the sub-directory where libtool stores uninstalled libraries. 23610 23611 // The value of MATCH_LIMIT determines the default number of times the 23612 // pcre2_match() function can record a backtrack position during a single 23613 // matching attempt. The value is also used to limit a loop counter in 23614 // pcre2_dfa_match(). There is a runtime interface for setting a different 23615 // limit. The limit exists in order to catch runaway regular expressions that 23616 // take for ever to determine that they do not match. The default is set very 23617 // large so that it does not accidentally catch legitimate cases. 23618 23619 // The above limit applies to all backtracks, whether or not they are nested. 23620 // In some environments it is desirable to limit the nesting of backtracking 23621 // (that is, the depth of tree that is searched) more strictly, in order to 23622 // restrict the maximum amount of heap memory that is used. The value of 23623 // MATCH_LIMIT_DEPTH provides this facility. To have any useful effect, it 23624 // must be less than the value of MATCH_LIMIT. The default is to use the same 23625 // value as MATCH_LIMIT. There is a runtime method for setting a different 23626 // limit. In the case of pcre2_dfa_match(), this limit controls the depth of 23627 // the internal nested function calls that are used for pattern recursions, 23628 // lookarounds, and atomic groups. 23629 23630 // This limit is parameterized just in case anybody ever wants to change it. 23631 // Care must be taken if it is increased, because it guards against integer 23632 // overflow caused by enormously large patterns. 23633 23634 // This limit is parameterized just in case anybody ever wants to change it. 23635 // Care must be taken if it is increased, because it guards against integer 23636 // overflow caused by enormously large patterns. 23637 23638 // Defining NEVER_BACKSLASH_C locks out the use of \C in all patterns. 23639 // #undef NEVER_BACKSLASH_C 23640 23641 // The value of NEWLINE_DEFAULT determines the default newline character 23642 // sequence. PCRE2 client programs can override this by selecting other values 23643 // at run time. The valid values are 1 (CR), 2 (LF), 3 (CRLF), 4 (ANY), 5 23644 // (ANYCRLF), and 6 (NUL). 23645 23646 // Name of package 23647 23648 // Define to the address where bug reports for this package should be sent. 23649 23650 // Define to the full name of this package. 23651 23652 // Define to the full name and version of this package. 23653 23654 // Define to the one symbol short name of this package. 23655 23656 // Define to the home page for this package. 23657 23658 // Define to the version of this package. 23659 23660 // The value of PARENS_NEST_LIMIT specifies the maximum depth of nested 23661 // parentheses (of any kind) in a pattern. This limits the amount of system 23662 // stack that is used while compiling a pattern. 23663 23664 // The value of PCRE2GREP_BUFSIZE is the starting size of the buffer used by 23665 // pcre2grep to hold parts of the file it is searching. The buffer will be 23666 // expanded up to PCRE2GREP_MAX_BUFSIZE if necessary, for files containing 23667 // very long lines. The actual amount of memory used by pcre2grep is three 23668 // times this number, because it allows for the buffering of "before" and 23669 // "after" lines. 23670 23671 // The value of PCRE2GREP_MAX_BUFSIZE specifies the maximum size of the buffer 23672 // used by pcre2grep to hold parts of the file it is searching. The actual 23673 // amount of memory used by pcre2grep is three times this number, because it 23674 // allows for the buffering of "before" and "after" lines. 23675 23676 // to make a symbol visible 23677 23678 // to make a symbol visible 23679 23680 // Define to any value to include debugging code. 23681 // #undef PCRE2_DEBUG 23682 23683 // to make a symbol visible 23684 23685 // If you are compiling for a system other than a Unix-like system or 23686 // Win32, and it needs some magic to be inserted before the definition 23687 // of a function that is exported by the library, define this macro to 23688 // contain the relevant magic. If you do not define this macro, a suitable 23689 // __declspec value is used for Windows systems; in other environments 23690 // "extern" is used for a C compiler and "extern C" for a C++ compiler. 23691 // This macro apears at the start of every exported function that is part 23692 // of the external API. It does not appear on functions that are "external" 23693 // in the C sense, but which are internal to the library. 23694 23695 // Define to any value if linking statically (TODO: make nice with Libtool) 23696 // #undef PCRE2_STATIC 23697 23698 // Define to necessary symbol if this constant uses a non-standard name on 23699 // your system. 23700 // #undef PTHREAD_CREATE_JOINABLE 23701 23702 // Define to any non-zero number to enable support for SELinux compatible 23703 // executable memory allocator in JIT. Note that this will have no effect 23704 // unless SUPPORT_JIT is also defined. 23705 // #undef SLJIT_PROT_EXECUTABLE_ALLOCATOR 23706 23707 // Define to 1 if all of the C90 standard headers exist (not just the ones 23708 // required in a freestanding environment). This macro is provided for 23709 // backward compatibility; new code need not use it. 23710 23711 // Define to any value to enable support for Just-In-Time compiling. 23712 // #undef SUPPORT_JIT 23713 23714 // Define to any value to allow pcre2grep to be linked with libbz2, so that it 23715 // is able to handle .bz2 files. 23716 // #undef SUPPORT_LIBBZ2 23717 23718 // Define to any value to allow pcre2test to be linked with libedit. 23719 // #undef SUPPORT_LIBEDIT 23720 23721 // Define to any value to allow pcre2test to be linked with libreadline. 23722 // #undef SUPPORT_LIBREADLINE 23723 23724 // Define to any value to allow pcre2grep to be linked with libz, so that it 23725 // is able to handle .gz files. 23726 // #undef SUPPORT_LIBZ 23727 23728 // Define to any value to enable callout script support in pcre2grep. 23729 23730 // Define to any value to enable fork support in pcre2grep callout scripts. 23731 // This will have no effect unless SUPPORT_PCRE2GREP_CALLOUT is also defined. 23732 // 23733 23734 // Define to any value to enable JIT support in pcre2grep. Note that this will 23735 // have no effect unless SUPPORT_JIT is also defined. 23736 // #undef SUPPORT_PCRE2GREP_JIT 23737 23738 // Define to any value to enable the 16 bit PCRE2 library. 23739 // #undef SUPPORT_PCRE2_16 23740 23741 // Define to any value to enable the 32 bit PCRE2 library. 23742 // #undef SUPPORT_PCRE2_32 23743 23744 // Define to any value to enable the 8 bit PCRE2 library. 23745 23746 // Define to any value to enable support for Unicode and UTF encoding. This 23747 // will work even in an EBCDIC environment, but it is incompatible with the 23748 // EBCDIC macro. That is, PCRE2 can support *either* EBCDIC code *or* 23749 // ASCII/Unicode, but not both at once. 23750 23751 // Define to any value for valgrind support to find invalid memory reads. 23752 // #undef SUPPORT_VALGRIND 23753 23754 // Enable extensions on AIX 3, Interix. 23755 // Enable general extensions on macOS. 23756 // Enable general extensions on Solaris. 23757 // Enable GNU extensions on systems that have them. 23758 // Enable X/Open compliant socket functions that do not require linking 23759 // with -lxnet on HP-UX 11.11. 23760 // Identify the host operating system as Minix. 23761 // This macro does not affect the system headers' behavior. 23762 // A future release of Autoconf may stop defining this macro. 23763 // # undef _MINIX 23764 // Enable general extensions on NetBSD. 23765 // Enable NetBSD compatibility extensions on Minix. 23766 // Enable OpenBSD compatibility extensions on NetBSD. 23767 // Oddly enough, this does nothing on OpenBSD. 23768 // Define to 1 if needed for POSIX-compatible behavior. 23769 // # undef _POSIX_SOURCE 23770 // Define to 2 if needed for POSIX-compatible behavior. 23771 // # undef _POSIX_1_SOURCE 23772 // Enable POSIX-compatible threading on Solaris. 23773 // Enable extensions specified by ISO/IEC TS 18661-5:2014. 23774 // Enable extensions specified by ISO/IEC TS 18661-1:2014. 23775 // Enable extensions specified by ISO/IEC TS 18661-2:2015. 23776 // Enable extensions specified by ISO/IEC TS 18661-4:2015. 23777 // Enable extensions specified by ISO/IEC TS 18661-3:2015. 23778 // Enable extensions specified by ISO/IEC TR 24731-2:2010. 23779 // Enable extensions specified by ISO/IEC 24747:2009. 23780 // Enable extensions on HP NonStop. 23781 // Enable X/Open extensions. Define to 500 only if necessary 23782 // to make mbstate_t available. 23783 // # undef _XOPEN_SOURCE 23784 23785 // Version number of package 23786 23787 // Define to empty if `const' does not conform to ANSI C. 23788 // #undef const 23789 23790 // Define to the type of a signed integer type of width exactly 64 bits if 23791 // such a type exists and the standard includes do not define it. 23792 // #undef int64_t 23793 23794 // Define to `unsigned int' if <sys/types.h> does not define. 23795 // #undef size_t 23796 23797 // Save the configured link size, which is in bytes. In 16-bit and 32-bit modes 23798 // its value gets changed by pcre2_intmodedep.h (included by pcre2_internal.h) to 23799 // be in code units. 23800 23801 var configured_link_size int32 = DLINK_SIZE /* pcre2_config.c:49:12 */ 23802 23803 // This function is needed only when memmove() is not available. 23804 23805 // End of pcre2_internal.h 23806 23807 // These macros are the standard way of turning unquoted text into C strings. 23808 // They allow macros like PCRE2_MAJOR to be defined without quotes, which is 23809 // convenient for user programs that want to test their values. 23810 23811 // ************************************************ 23812 // 23813 // Return info about what features are configured * 23814 // 23815 23816 // If where is NULL, the length of memory required is returned. 23817 // 23818 // Arguments: 23819 // what what information is required 23820 // where where to put the information 23821 // 23822 // Returns: 0 if a numerical value is returned 23823 // >= 0 if a string value 23824 // PCRE2_ERROR_BADOPTION if "where" not recognized 23825 // or JIT target requested when JIT not enabled 23826 23827 func Xpcre2_config_8(tls *libc.TLS, what Tuint32_t, where uintptr) int32 { /* pcre2_config.c:78:1: */ 23828 if where == uintptr(0) { 23829 switch what { 23830 default: 23831 return -34 23832 fallthrough 23833 23834 case Tuint32_t(DPCRE2_CONFIG_BSR): 23835 fallthrough 23836 case Tuint32_t(DPCRE2_CONFIG_COMPILED_WIDTHS): 23837 fallthrough 23838 case Tuint32_t(DPCRE2_CONFIG_DEPTHLIMIT): 23839 fallthrough 23840 case Tuint32_t(DPCRE2_CONFIG_HEAPLIMIT): 23841 fallthrough 23842 case Tuint32_t(DPCRE2_CONFIG_JIT): 23843 fallthrough 23844 case Tuint32_t(DPCRE2_CONFIG_LINKSIZE): 23845 fallthrough 23846 case Tuint32_t(DPCRE2_CONFIG_MATCHLIMIT): 23847 fallthrough 23848 case Tuint32_t(DPCRE2_CONFIG_NEVER_BACKSLASH_C): 23849 fallthrough 23850 case Tuint32_t(DPCRE2_CONFIG_NEWLINE): 23851 fallthrough 23852 case Tuint32_t(DPCRE2_CONFIG_PARENSLIMIT): 23853 fallthrough 23854 case Tuint32_t(DPCRE2_CONFIG_STACKRECURSE): 23855 fallthrough // Obsolete 23856 case Tuint32_t(DPCRE2_CONFIG_TABLES_LENGTH): 23857 fallthrough 23858 case Tuint32_t(DPCRE2_CONFIG_UNICODE): 23859 return int32(unsafe.Sizeof(Tuint32_t(0))) 23860 fallthrough 23861 23862 // These are handled below 23863 23864 case Tuint32_t(DPCRE2_CONFIG_JITTARGET): 23865 fallthrough 23866 case Tuint32_t(DPCRE2_CONFIG_UNICODE_VERSION): 23867 fallthrough 23868 case Tuint32_t(DPCRE2_CONFIG_VERSION): 23869 break 23870 } 23871 } 23872 23873 switch what { 23874 default: 23875 return -34 23876 23877 case Tuint32_t(DPCRE2_CONFIG_BSR): 23878 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(DPCRE2_BSR_UNICODE) 23879 break 23880 23881 case Tuint32_t(DPCRE2_CONFIG_COMPILED_WIDTHS): 23882 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(0 + 23883 1) 23884 break 23885 23886 case Tuint32_t(DPCRE2_CONFIG_DEPTHLIMIT): 23887 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(DMATCH_LIMIT) 23888 break 23889 23890 case Tuint32_t(DPCRE2_CONFIG_HEAPLIMIT): 23891 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(DHEAP_LIMIT) 23892 break 23893 23894 case Tuint32_t(DPCRE2_CONFIG_JIT): 23895 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(0) 23896 break 23897 23898 case Tuint32_t(DPCRE2_CONFIG_JITTARGET): 23899 return -34 23900 23901 case Tuint32_t(DPCRE2_CONFIG_LINKSIZE): 23902 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(configured_link_size) 23903 break 23904 23905 case Tuint32_t(DPCRE2_CONFIG_MATCHLIMIT): 23906 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(DMATCH_LIMIT) 23907 break 23908 23909 case Tuint32_t(DPCRE2_CONFIG_NEWLINE): 23910 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(DNEWLINE_DEFAULT) 23911 break 23912 23913 case Tuint32_t(DPCRE2_CONFIG_NEVER_BACKSLASH_C): 23914 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(0) 23915 break 23916 23917 case Tuint32_t(DPCRE2_CONFIG_PARENSLIMIT): 23918 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(DPARENS_NEST_LIMIT) 23919 break 23920 23921 // This is now obsolete. The stack is no longer used via recursion for 23922 // handling backtracking in pcre2_match(). 23923 23924 case Tuint32_t(DPCRE2_CONFIG_STACKRECURSE): 23925 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(0) 23926 break 23927 23928 case Tuint32_t(DPCRE2_CONFIG_TABLES_LENGTH): 23929 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(Dcbits_offset + Dcbit_length + 256) 23930 break 23931 23932 case Tuint32_t(DPCRE2_CONFIG_UNICODE_VERSION): 23933 { 23934 var v uintptr = X_pcre2_unicode_version_8 23935 return int32(uint64(1) + func() uint64 { 23936 if where == uintptr(0) { 23937 return libc.Xstrlen(tls, v) 23938 } 23939 return X_pcre2_strcpy_c8_8(tls, where, v) 23940 }()) 23941 23942 } 23943 break 23944 23945 case Tuint32_t(DPCRE2_CONFIG_UNICODE): 23946 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(1) 23947 break 23948 23949 // The hackery in setting "v" below is to cope with the case when 23950 // PCRE2_PRERELEASE is set to an empty string (which it is for real releases). 23951 // If the second alternative is used in this case, it does not leave a space 23952 // before the date. On the other hand, if all four macros are put into a single 23953 // XSTRING when PCRE2_PRERELEASE is not empty, an unwanted space is inserted. 23954 // There are problems using an "obvious" approach like this: 23955 // 23956 // XSTRING(PCRE2_MAJOR) "." XSTRING(PCRE_MINOR) 23957 // XSTRING(PCRE2_PRERELEASE) " " XSTRING(PCRE_DATE) 23958 // 23959 // because, when PCRE2_PRERELEASE is empty, this leads to an attempted expansion 23960 // of STRING(). The C standard states: "If (before argument substitution) any 23961 // argument consists of no preprocessing tokens, the behavior is undefined." It 23962 // turns out the gcc treats this case as a single empty string - which is what 23963 // we really want - but Visual C grumbles about the lack of an argument for the 23964 // macro. Unfortunately, both are within their rights. As there seems to be no 23965 // way to test for a macro's value being empty at compile time, we have to 23966 // resort to a runtime test. 23967 23968 case Tuint32_t(DPCRE2_CONFIG_VERSION): 23969 { 23970 var v uintptr 23971 if int32(*(*int8)(unsafe.Pointer(ts + 630 + 1))) == 0 { 23972 v = ts + 632 /* "10.40 2022-04-14" */ 23973 } else { 23974 v = ts + 649 /* "10.402022-04-14" */ 23975 } 23976 return int32(uint64(1) + func() uint64 { 23977 if where == uintptr(0) { 23978 return libc.Xstrlen(tls, v) 23979 } 23980 return X_pcre2_strcpy_c8_8(tls, where, v) 23981 }()) 23982 23983 } 23984 } 23985 23986 return 0 23987 } 23988 23989 // End of pcre2_config.c 23990 23991 // This function is needed only when memmove() is not available. 23992 23993 // End of pcre2_internal.h 23994 23995 // ************************************************ 23996 // 23997 // Default malloc/free functions * 23998 // 23999 24000 // Ignore the "user data" argument in each case. 24001 24002 func default_malloc(tls *libc.TLS, size Tsize_t, data uintptr) uintptr { /* pcre2_context.c:56:13: */ 24003 _ = data 24004 return libc.Xmalloc(tls, size) 24005 } 24006 24007 func default_free(tls *libc.TLS, block uintptr, data uintptr) { /* pcre2_context.c:63:13: */ 24008 _ = data 24009 libc.Xfree(tls, block) 24010 } 24011 24012 // ************************************************ 24013 // 24014 // Get a block and save memory control * 24015 // 24016 24017 // This internal function is called to get a block of memory in which the 24018 // memory control data is to be stored at the start for future use. 24019 // 24020 // Arguments: 24021 // size amount of memory required 24022 // memctl pointer to a memctl block or NULL 24023 // 24024 // Returns: pointer to memory or NULL on failure 24025 24026 func X_pcre2_memctl_malloc_8(tls *libc.TLS, size Tsize_t, memctl uintptr) uintptr { /* pcre2_context.c:85:13: */ 24027 var newmemctl uintptr 24028 var yield uintptr 24029 if memctl == uintptr(0) { 24030 yield = libc.Xmalloc(tls, size) 24031 } else { 24032 yield = (*struct { 24033 f func(*libc.TLS, Tsize_t, uintptr) uintptr 24034 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmalloc})).f(tls, size, (*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmemory_data) 24035 } 24036 if yield == uintptr(0) { 24037 return uintptr(0) 24038 } 24039 newmemctl = yield 24040 if memctl == uintptr(0) { 24041 (*Tpcre2_memctl)(unsafe.Pointer(newmemctl)).Fmalloc = *(*uintptr)(unsafe.Pointer(&struct { 24042 f func(*libc.TLS, Tsize_t, uintptr) uintptr 24043 }{default_malloc})) 24044 (*Tpcre2_memctl)(unsafe.Pointer(newmemctl)).Ffree = *(*uintptr)(unsafe.Pointer(&struct { 24045 f func(*libc.TLS, uintptr, uintptr) 24046 }{default_free})) 24047 (*Tpcre2_memctl)(unsafe.Pointer(newmemctl)).Fmemory_data = uintptr(0) 24048 } else { 24049 *(*Tpcre2_memctl)(unsafe.Pointer(newmemctl)) = *(*Tpcre2_memctl)(unsafe.Pointer(memctl)) 24050 } 24051 return yield 24052 } 24053 24054 // ************************************************ 24055 // 24056 // Create and initialize contexts * 24057 // 24058 24059 // Initializing for compile and match contexts is done in separate, private 24060 // functions so that these can be called from functions such as pcre2_compile() 24061 // when an external context is not supplied. The initializing functions have an 24062 // option to set up default memory management. 24063 24064 func Xpcre2_general_context_create_8(tls *libc.TLS, private_malloc uintptr, private_free uintptr, memory_data uintptr) uintptr { /* pcre2_context.c:114:38: */ 24065 var gcontext uintptr 24066 if private_malloc == uintptr(0) { 24067 private_malloc = *(*uintptr)(unsafe.Pointer(&struct { 24068 f func(*libc.TLS, Tsize_t, uintptr) uintptr 24069 }{default_malloc})) 24070 } 24071 if private_free == uintptr(0) { 24072 private_free = *(*uintptr)(unsafe.Pointer(&struct { 24073 f func(*libc.TLS, uintptr, uintptr) 24074 }{default_free})) 24075 } 24076 gcontext = (*struct { 24077 f func(*libc.TLS, Tsize_t, uintptr) uintptr 24078 })(unsafe.Pointer(&struct{ uintptr }{private_malloc})).f(tls, uint64(unsafe.Sizeof(Tpcre2_real_general_context_8{})), memory_data) 24079 if gcontext == uintptr(0) { 24080 return uintptr(0) 24081 } 24082 (*Tpcre2_general_context_8)(unsafe.Pointer(gcontext)).Fmemctl.Fmalloc = private_malloc 24083 (*Tpcre2_general_context_8)(unsafe.Pointer(gcontext)).Fmemctl.Ffree = private_free 24084 (*Tpcre2_general_context_8)(unsafe.Pointer(gcontext)).Fmemctl.Fmemory_data = memory_data 24085 return gcontext 24086 } 24087 24088 // A default compile context is set up to save having to initialize at run time 24089 // when no context is supplied to the compile function. 24090 24091 var X_pcre2_default_compile_context_8 = Tpcre2_compile_context_8{ 24092 Fmemctl: Tpcre2_memctl{Fmalloc: 0, Ffree: 0}, // Stack guard data 24093 Ftables: 0, // Character tables 24094 Fmax_pattern_length: libc.CplUint64(uint64(0)), 24095 Fbsr_convention: Tuint16_t(DPCRE2_BSR_UNICODE), // Backslash R default 24096 Fnewline_convention: Tuint16_t(DNEWLINE_DEFAULT), // Newline convention 24097 Fparens_nest_limit: Tuint32_t(DPARENS_NEST_LIMIT)} /* pcre2_context.c:133:29 */ 24098 24099 // Extra options 24100 24101 // The create function copies the default into the new memory, but must 24102 // override the default memory handling functions if a gcontext was provided. 24103 24104 func Xpcre2_compile_context_create_8(tls *libc.TLS, gcontext uintptr) uintptr { /* pcre2_context.c:147:38: */ 24105 var ccontext uintptr = X_pcre2_memctl_malloc_8(tls, 24106 uint64(unsafe.Sizeof(Tpcre2_real_compile_context_8{})), gcontext) 24107 if ccontext == uintptr(0) { 24108 return uintptr(0) 24109 } 24110 *(*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)) = X_pcre2_default_compile_context_8 24111 if gcontext != uintptr(0) { 24112 *(*Tpcre2_memctl)(unsafe.Pointer(ccontext)) = *(*Tpcre2_memctl)(unsafe.Pointer(gcontext)) 24113 } 24114 return ccontext 24115 } 24116 24117 // A default match context is set up to save having to initialize at run time 24118 // when no context is supplied to a match function. 24119 24120 var X_pcre2_default_match_context_8 = Tpcre2_match_context_8{ 24121 Fmemctl: Tpcre2_memctl{Fmalloc: 0, Ffree: 0}, // Substitute callout data 24122 Foffset_limit: libc.CplUint64(uint64(0)), 24123 Fheap_limit: Tuint32_t(DHEAP_LIMIT), 24124 Fmatch_limit: Tuint32_t(DMATCH_LIMIT), 24125 Fdepth_limit: Tuint32_t(DMATCH_LIMIT)} /* pcre2_context.c:163:27 */ 24126 24127 // The create function copies the default into the new memory, but must 24128 // override the default memory handling functions if a gcontext was provided. 24129 24130 func Xpcre2_match_context_create_8(tls *libc.TLS, gcontext uintptr) uintptr { /* pcre2_context.c:181:36: */ 24131 var mcontext uintptr = X_pcre2_memctl_malloc_8(tls, 24132 uint64(unsafe.Sizeof(Tpcre2_real_match_context_8{})), gcontext) 24133 if mcontext == uintptr(0) { 24134 return uintptr(0) 24135 } 24136 *(*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)) = X_pcre2_default_match_context_8 24137 if gcontext != uintptr(0) { 24138 *(*Tpcre2_memctl)(unsafe.Pointer(mcontext)) = *(*Tpcre2_memctl)(unsafe.Pointer(gcontext)) 24139 } 24140 return mcontext 24141 } 24142 24143 // A default convert context is set up to save having to initialize at run time 24144 // when no context is supplied to the convert function. 24145 24146 var X_pcre2_default_convert_context_8 = Tpcre2_convert_context_8{ 24147 Fmemctl: Tpcre2_memctl{Fmalloc: 0, Ffree: 0}, // Default memory handling 24148 Fglob_separator: Tuint32_t('\057'), // Default path separator 24149 Fglob_escape: Tuint32_t('\134'), // Default escape character 24150 } /* pcre2_context.c:197:29 */ 24151 24152 // The create function copies the default into the new memory, but must 24153 // override the default memory handling functions if a gcontext was provided. 24154 24155 func Xpcre2_convert_context_create_8(tls *libc.TLS, gcontext uintptr) uintptr { /* pcre2_context.c:211:38: */ 24156 var ccontext uintptr = X_pcre2_memctl_malloc_8(tls, 24157 uint64(unsafe.Sizeof(Tpcre2_real_convert_context_8{})), gcontext) 24158 if ccontext == uintptr(0) { 24159 return uintptr(0) 24160 } 24161 *(*Tpcre2_convert_context_8)(unsafe.Pointer(ccontext)) = X_pcre2_default_convert_context_8 24162 if gcontext != uintptr(0) { 24163 *(*Tpcre2_memctl)(unsafe.Pointer(ccontext)) = *(*Tpcre2_memctl)(unsafe.Pointer(gcontext)) 24164 } 24165 return ccontext 24166 } 24167 24168 // ************************************************ 24169 // 24170 // Context copy functions * 24171 // 24172 24173 func Xpcre2_general_context_copy_8(tls *libc.TLS, gcontext uintptr) uintptr { /* pcre2_context.c:228:38: */ 24174 var new uintptr = (*struct { 24175 f func(*libc.TLS, Tsize_t, uintptr) uintptr 24176 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_general_context_8)(unsafe.Pointer(gcontext)).Fmemctl.Fmalloc})).f(tls, uint64(unsafe.Sizeof(Tpcre2_real_general_context_8{})), 24177 (*Tpcre2_general_context_8)(unsafe.Pointer(gcontext)).Fmemctl.Fmemory_data) 24178 if new == uintptr(0) { 24179 return uintptr(0) 24180 } 24181 libc.Xmemcpy(tls, new, gcontext, uint64(unsafe.Sizeof(Tpcre2_real_general_context_8{}))) 24182 return new 24183 } 24184 24185 func Xpcre2_compile_context_copy_8(tls *libc.TLS, ccontext uintptr) uintptr { /* pcre2_context.c:240:38: */ 24186 var new uintptr = (*struct { 24187 f func(*libc.TLS, Tsize_t, uintptr) uintptr 24188 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmalloc})).f(tls, uint64(unsafe.Sizeof(Tpcre2_real_compile_context_8{})), 24189 (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmemory_data) 24190 if new == uintptr(0) { 24191 return uintptr(0) 24192 } 24193 libc.Xmemcpy(tls, new, ccontext, uint64(unsafe.Sizeof(Tpcre2_real_compile_context_8{}))) 24194 return new 24195 } 24196 24197 func Xpcre2_match_context_copy_8(tls *libc.TLS, mcontext uintptr) uintptr { /* pcre2_context.c:252:36: */ 24198 var new uintptr = (*struct { 24199 f func(*libc.TLS, Tsize_t, uintptr) uintptr 24200 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fmemctl.Fmalloc})).f(tls, uint64(unsafe.Sizeof(Tpcre2_real_match_context_8{})), 24201 (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fmemctl.Fmemory_data) 24202 if new == uintptr(0) { 24203 return uintptr(0) 24204 } 24205 libc.Xmemcpy(tls, new, mcontext, uint64(unsafe.Sizeof(Tpcre2_real_match_context_8{}))) 24206 return new 24207 } 24208 24209 func Xpcre2_convert_context_copy_8(tls *libc.TLS, ccontext uintptr) uintptr { /* pcre2_context.c:265:38: */ 24210 var new uintptr = (*struct { 24211 f func(*libc.TLS, Tsize_t, uintptr) uintptr 24212 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_convert_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmalloc})).f(tls, uint64(unsafe.Sizeof(Tpcre2_real_convert_context_8{})), 24213 (*Tpcre2_convert_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmemory_data) 24214 if new == uintptr(0) { 24215 return uintptr(0) 24216 } 24217 libc.Xmemcpy(tls, new, ccontext, uint64(unsafe.Sizeof(Tpcre2_real_convert_context_8{}))) 24218 return new 24219 } 24220 24221 // ************************************************ 24222 // 24223 // Context free functions * 24224 // 24225 24226 func Xpcre2_general_context_free_8(tls *libc.TLS, gcontext uintptr) { /* pcre2_context.c:282:1: */ 24227 if gcontext != uintptr(0) { 24228 (*struct { 24229 f func(*libc.TLS, uintptr, uintptr) 24230 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_general_context_8)(unsafe.Pointer(gcontext)).Fmemctl.Ffree})).f(tls, gcontext, (*Tpcre2_general_context_8)(unsafe.Pointer(gcontext)).Fmemctl.Fmemory_data) 24231 } 24232 } 24233 24234 func Xpcre2_compile_context_free_8(tls *libc.TLS, ccontext uintptr) { /* pcre2_context.c:290:1: */ 24235 if ccontext != uintptr(0) { 24236 (*struct { 24237 f func(*libc.TLS, uintptr, uintptr) 24238 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Ffree})).f(tls, ccontext, (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmemory_data) 24239 } 24240 } 24241 24242 func Xpcre2_match_context_free_8(tls *libc.TLS, mcontext uintptr) { /* pcre2_context.c:298:1: */ 24243 if mcontext != uintptr(0) { 24244 (*struct { 24245 f func(*libc.TLS, uintptr, uintptr) 24246 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fmemctl.Ffree})).f(tls, mcontext, (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fmemctl.Fmemory_data) 24247 } 24248 } 24249 24250 func Xpcre2_convert_context_free_8(tls *libc.TLS, ccontext uintptr) { /* pcre2_context.c:306:1: */ 24251 if ccontext != uintptr(0) { 24252 (*struct { 24253 f func(*libc.TLS, uintptr, uintptr) 24254 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_convert_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Ffree})).f(tls, ccontext, (*Tpcre2_convert_context_8)(unsafe.Pointer(ccontext)).Fmemctl.Fmemory_data) 24255 } 24256 } 24257 24258 // ************************************************ 24259 // 24260 // Set values in contexts * 24261 // 24262 24263 // All these functions return 0 for success or PCRE2_ERROR_BADDATA if invalid 24264 // data is given. Only some of the functions are able to test the validity of the 24265 // data. 24266 24267 // ------------ Compile context ------------ 24268 24269 func Xpcre2_set_character_tables_8(tls *libc.TLS, ccontext uintptr, tables uintptr) int32 { /* pcre2_context.c:325:1: */ 24270 (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Ftables = tables 24271 return 0 24272 } 24273 24274 func Xpcre2_set_bsr_8(tls *libc.TLS, ccontext uintptr, value Tuint32_t) int32 { /* pcre2_context.c:333:1: */ 24275 switch value { 24276 case Tuint32_t(DPCRE2_BSR_ANYCRLF): 24277 fallthrough 24278 case Tuint32_t(DPCRE2_BSR_UNICODE): 24279 (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fbsr_convention = Tuint16_t(value) 24280 return 0 24281 24282 default: 24283 return -29 24284 } 24285 return int32(0) 24286 } 24287 24288 func Xpcre2_set_max_pattern_length_8(tls *libc.TLS, ccontext uintptr, length Tsize_t) int32 { /* pcre2_context.c:348:1: */ 24289 (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fmax_pattern_length = length 24290 return 0 24291 } 24292 24293 func Xpcre2_set_newline_8(tls *libc.TLS, ccontext uintptr, newline Tuint32_t) int32 { /* pcre2_context.c:355:1: */ 24294 switch newline { 24295 case Tuint32_t(DPCRE2_NEWLINE_CR): 24296 fallthrough 24297 case Tuint32_t(DPCRE2_NEWLINE_LF): 24298 fallthrough 24299 case Tuint32_t(DPCRE2_NEWLINE_CRLF): 24300 fallthrough 24301 case Tuint32_t(DPCRE2_NEWLINE_ANY): 24302 fallthrough 24303 case Tuint32_t(DPCRE2_NEWLINE_ANYCRLF): 24304 fallthrough 24305 case Tuint32_t(DPCRE2_NEWLINE_NUL): 24306 (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fnewline_convention = Tuint16_t(newline) 24307 return 0 24308 24309 default: 24310 return -29 24311 } 24312 return int32(0) 24313 } 24314 24315 func Xpcre2_set_parens_nest_limit_8(tls *libc.TLS, ccontext uintptr, limit Tuint32_t) int32 { /* pcre2_context.c:374:1: */ 24316 (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fparens_nest_limit = limit 24317 return 0 24318 } 24319 24320 func Xpcre2_set_compile_extra_options_8(tls *libc.TLS, ccontext uintptr, options Tuint32_t) int32 { /* pcre2_context.c:381:1: */ 24321 (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fextra_options = options 24322 return 0 24323 } 24324 24325 func Xpcre2_set_compile_recursion_guard_8(tls *libc.TLS, ccontext uintptr, guard uintptr, user_data uintptr) int32 { /* pcre2_context.c:388:1: */ 24326 (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fstack_guard = guard 24327 (*Tpcre2_compile_context_8)(unsafe.Pointer(ccontext)).Fstack_guard_data = user_data 24328 return 0 24329 } 24330 24331 // ------------ Match context ------------ 24332 24333 func Xpcre2_set_callout_8(tls *libc.TLS, mcontext uintptr, callout uintptr, callout_data uintptr) int32 { /* pcre2_context.c:400:1: */ 24334 (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fcallout = callout 24335 (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fcallout_data = callout_data 24336 return 0 24337 } 24338 24339 func Xpcre2_set_substitute_callout_8(tls *libc.TLS, mcontext uintptr, substitute_callout uintptr, substitute_callout_data uintptr) int32 { /* pcre2_context.c:409:1: */ 24340 (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fsubstitute_callout = substitute_callout 24341 (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fsubstitute_callout_data = substitute_callout_data 24342 return 0 24343 } 24344 24345 func Xpcre2_set_heap_limit_8(tls *libc.TLS, mcontext uintptr, limit Tuint32_t) int32 { /* pcre2_context.c:419:1: */ 24346 (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fheap_limit = limit 24347 return 0 24348 } 24349 24350 func Xpcre2_set_match_limit_8(tls *libc.TLS, mcontext uintptr, limit Tuint32_t) int32 { /* pcre2_context.c:426:1: */ 24351 (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fmatch_limit = limit 24352 return 0 24353 } 24354 24355 func Xpcre2_set_depth_limit_8(tls *libc.TLS, mcontext uintptr, limit Tuint32_t) int32 { /* pcre2_context.c:433:1: */ 24356 (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fdepth_limit = limit 24357 return 0 24358 } 24359 24360 func Xpcre2_set_offset_limit_8(tls *libc.TLS, mcontext uintptr, limit Tsize_t) int32 { /* pcre2_context.c:440:1: */ 24361 (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Foffset_limit = limit 24362 return 0 24363 } 24364 24365 // This function became obsolete at release 10.30. It is kept as a synonym for 24366 // backwards compatibility. 24367 24368 func Xpcre2_set_recursion_limit_8(tls *libc.TLS, mcontext uintptr, limit Tuint32_t) int32 { /* pcre2_context.c:450:1: */ 24369 return Xpcre2_set_depth_limit_8(tls, mcontext, limit) 24370 } 24371 24372 func Xpcre2_set_recursion_memory_management_8(tls *libc.TLS, mcontext uintptr, mymalloc uintptr, myfree uintptr, mydata uintptr) int32 { /* pcre2_context.c:456:1: */ 24373 _ = mcontext 24374 _ = mymalloc 24375 _ = myfree 24376 _ = mydata 24377 return 0 24378 } 24379 24380 // ------------ Convert context ------------ 24381 24382 func Xpcre2_set_glob_separator_8(tls *libc.TLS, ccontext uintptr, separator Tuint32_t) int32 { /* pcre2_context.c:470:1: */ 24383 if separator != Tuint32_t('\057') && separator != Tuint32_t('\134') && separator != Tuint32_t('\056') { 24384 return -29 24385 } 24386 (*Tpcre2_convert_context_8)(unsafe.Pointer(ccontext)).Fglob_separator = separator 24387 return 0 24388 } 24389 24390 func Xpcre2_set_glob_escape_8(tls *libc.TLS, ccontext uintptr, escape Tuint32_t) int32 { /* pcre2_context.c:479:1: */ 24391 if escape > Tuint32_t(255) || escape != Tuint32_t(0) && !(int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(escape))*2)))&int32(_ISpunct) != 0) { 24392 return -29 24393 } 24394 (*Tpcre2_convert_context_8)(unsafe.Pointer(ccontext)).Fglob_escape = escape 24395 return 0 24396 } 24397 24398 // End of pcre2_context.c 24399 24400 // Macro to add a character string to the output buffer, checking for overflow. 24401 24402 // Literals that must be escaped: \ ? * + | . ^ $ { } [ ] ( ) 24403 24404 var pcre2_escaped_literals uintptr = ts + 665 /* "\\?*+|.^${}[]()" */ /* pcre2_convert.c:87:19 */ 24405 24406 // Recognized escaped metacharacters in POSIX basic patterns. 24407 24408 var posix_meta_escapes uintptr = ts + 680 /* "(){}123456789" */ /* pcre2_convert.c:96:19 */ 24409 24410 // ************************************************ 24411 // 24412 // Convert a POSIX pattern * 24413 // 24414 24415 // This function handles both basic and extended POSIX patterns. 24416 // 24417 // Arguments: 24418 // pattype the pattern type 24419 // pattern the pattern 24420 // plength length in code units 24421 // utf TRUE if UTF 24422 // use_buffer where to put the output 24423 // use_length length of use_buffer 24424 // bufflenptr where to put the used length 24425 // dummyrun TRUE if a dummy run 24426 // ccontext the convert context 24427 // 24428 // Returns: 0 => success 24429 // !0 => error code 24430 24431 func convert_posix(tls *libc.TLS, pattype Tuint32_t, pattern TPCRE2_SPTR8, plength Tsize_t, utf TBOOL, use_buffer uintptr, use_length Tsize_t, bufflenptr uintptr, dummyrun TBOOL, ccontext uintptr) int32 { /* pcre2_convert.c:125:1: */ 24432 var s uintptr 24433 var posix TPCRE2_SPTR8 24434 var p uintptr 24435 var pp uintptr 24436 var endp uintptr // Allow for trailing zero 24437 var convlength Tsize_t 24438 var bracount Tuint32_t 24439 var posix_state Tuint32_t 24440 var lastspecial Tuint32_t 24441 var extended TBOOL 24442 var nextisliteral TBOOL 24443 var c Tuint32_t 24444 var sc Tuint32_t 24445 var clength int32 24446 posix = pattern 24447 p = use_buffer 24448 pp = p 24449 endp = p + uintptr(use_length) - uintptr(1) 24450 convlength = uint64(0) 24451 bracount = Tuint32_t(0) 24452 posix_state = POSIX_START_REGEX 24453 lastspecial = Tuint32_t(0) 24454 extended = libc.Bool32(pattype&DPCRE2_CONVERT_POSIX_EXTENDED != Tuint32_t(0)) 24455 nextisliteral = DFALSE 24456 24457 _ = utf // Not used when Unicode not supported 24458 _ = ccontext // Not currently used 24459 24460 // Initialize default for error offset as end of input. 24461 24462 *(*Tsize_t)(unsafe.Pointer(bufflenptr)) = plength 24463 s = ts + 694 24464 __1: 24465 if !(int32(*(*int8)(unsafe.Pointer(s))) != 0) { 24466 goto __3 24467 } 24468 if !(p >= endp) { 24469 goto __4 24470 } 24471 return -48 24472 __4: 24473 ; 24474 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = TPCRE2_UCHAR8(*(*int8)(unsafe.Pointer(s))) 24475 goto __2 24476 __2: 24477 s++ 24478 goto __1 24479 goto __3 24480 __3: 24481 ; 24482 24483 // Now scan the input. 24484 24485 __5: 24486 if !(plength > uint64(0)) { 24487 goto __6 24488 } 24489 clength = 1 24490 24491 // Add in the length of the last item, then, if in the dummy run, pull the 24492 // pointer back to the start of the (temporary) buffer and then remember the 24493 // start of the next item. 24494 24495 convlength = convlength + Tsize_t((int64(p)-int64(pp))/1) 24496 if !(dummyrun != 0) { 24497 goto __7 24498 } 24499 p = use_buffer 24500 __7: 24501 ; 24502 pp = p 24503 24504 // Pick up the next character 24505 24506 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix))) 24507 if !(utf != 0 && c >= 0xc0) { 24508 goto __8 24509 } 24510 if !(c&0x20 == Tuint32_t(0)) { 24511 goto __9 24512 } 24513 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix + 1)))&0x3f 24514 clength++ 24515 goto __10 24516 __9: 24517 if !(c&0x10 == Tuint32_t(0)) { 24518 goto __11 24519 } 24520 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix + 2)))&0x3f 24521 clength = clength + 2 24522 goto __12 24523 __11: 24524 if !(c&0x08 == Tuint32_t(0)) { 24525 goto __13 24526 } 24527 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix + 3)))&0x3f 24528 clength = clength + 3 24529 goto __14 24530 __13: 24531 if !(c&0x04 == Tuint32_t(0)) { 24532 goto __15 24533 } 24534 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix + 4)))&0x3f 24535 clength = clength + 4 24536 goto __16 24537 __15: 24538 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix + 5)))&0x3f 24539 clength = clength + 5 24540 __16: 24541 ; 24542 __14: 24543 ; 24544 __12: 24545 ; 24546 __10: 24547 ; 24548 __8: 24549 ; 24550 24551 posix += TPCRE2_SPTR8(clength) 24552 plength = plength - Tsize_t(clength) 24553 24554 if nextisliteral != 0 { 24555 sc = uint32(0) 24556 } else { 24557 sc = c 24558 } 24559 nextisliteral = DFALSE 24560 24561 // Handle a character within a class. 24562 24563 if !(posix_state >= POSIX_CLASS_NOT_STARTED) { 24564 goto __17 24565 } 24566 24567 if !(c == Tuint32_t('\135')) { 24568 goto __19 24569 } 24570 24571 s = ts + 701 24572 __21: 24573 if !(int32(*(*int8)(unsafe.Pointer(s))) != 0) { 24574 goto __23 24575 } 24576 if !(p >= endp) { 24577 goto __24 24578 } 24579 return -48 24580 __24: 24581 ; 24582 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = TPCRE2_UCHAR8(*(*int8)(unsafe.Pointer(s))) 24583 goto __22 24584 __22: 24585 s++ 24586 goto __21 24587 goto __23 24588 __23: 24589 ; 24590 24591 posix_state = POSIX_NOT_BRACKET 24592 goto __20 24593 __19: 24594 24595 switch posix_state { 24596 case POSIX_CLASS_STARTED: 24597 goto __26 24598 // Fall through 24599 24600 case POSIX_CLASS_NOT_STARTED: 24601 goto __27 24602 24603 case POSIX_CLASS_STARTING: 24604 goto __28 24605 } 24606 goto __25 24607 24608 __26: 24609 if !(c <= Tuint32_t(127) && int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2)))&int32(_ISlower) != 0) { 24610 goto __29 24611 } 24612 goto __25 24613 __29: 24614 ; // Remain in started state 24615 posix_state = POSIX_CLASS_NOT_STARTED 24616 if !(c == Tuint32_t('\072') && plength > uint64(0) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix))) == '\135') { 24617 goto __30 24618 } 24619 24620 s = ts + 703 24621 __31: 24622 if !(int32(*(*int8)(unsafe.Pointer(s))) != 0) { 24623 goto __33 24624 } 24625 if !(p >= endp) { 24626 goto __34 24627 } 24628 return -48 24629 __34: 24630 ; 24631 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = TPCRE2_UCHAR8(*(*int8)(unsafe.Pointer(s))) 24632 goto __32 24633 __32: 24634 s++ 24635 goto __31 24636 goto __33 24637 __33: 24638 ; 24639 24640 plength-- 24641 posix++ 24642 goto __5 // With next character after :] 24643 __30: 24644 ; 24645 // Fall through 24646 24647 __27: 24648 if !(c == Tuint32_t('\133')) { 24649 goto __35 24650 } 24651 posix_state = POSIX_CLASS_STARTING 24652 __35: 24653 ; 24654 goto __25 24655 24656 __28: 24657 if !(c == Tuint32_t('\072')) { 24658 goto __36 24659 } 24660 posix_state = POSIX_CLASS_STARTED 24661 __36: 24662 ; 24663 goto __25 24664 __25: 24665 ; 24666 24667 if !(c == Tuint32_t('\134')) { 24668 goto __37 24669 } 24670 s = ts + 706 24671 __38: 24672 if !(int32(*(*int8)(unsafe.Pointer(s))) != 0) { 24673 goto __40 24674 } 24675 if !(p >= endp) { 24676 goto __41 24677 } 24678 return -48 24679 __41: 24680 ; 24681 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = TPCRE2_UCHAR8(*(*int8)(unsafe.Pointer(s))) 24682 goto __39 24683 __39: 24684 s++ 24685 goto __38 24686 goto __40 24687 __40: 24688 ; 24689 __37: 24690 ; 24691 24692 if !(p+uintptr(clength) > endp) { 24693 goto __42 24694 } 24695 return -48 24696 __42: 24697 ; 24698 libc.Xmemcpy(tls, p, posix-uintptr(clength), uint64(clength*(DPCRE2_CODE_UNIT_WIDTH/8))) 24699 p += uintptr(clength) 24700 __20: 24701 ; 24702 goto __18 24703 __17: 24704 switch sc { 24705 case Tuint32_t('\133'): 24706 goto __44 24707 24708 case Tuint32_t('\134'): 24709 goto __45 24710 24711 case Tuint32_t('\051'): 24712 goto __46 24713 24714 case Tuint32_t('\050'): 24715 goto __47 24716 // Fall through 24717 24718 case Tuint32_t('\077'): 24719 goto __48 24720 case Tuint32_t('\053'): 24721 goto __49 24722 case Tuint32_t('\173'): 24723 goto __50 24724 case Tuint32_t('\175'): 24725 goto __51 24726 case Tuint32_t('\174'): 24727 goto __52 24728 // Fall through 24729 24730 case Tuint32_t('\056'): 24731 goto __53 24732 case Tuint32_t('\044'): 24733 goto __54 24734 24735 case Tuint32_t('\052'): 24736 goto __55 // Ignore second and subsequent asterisks 24737 24738 case Tuint32_t('\136'): 24739 goto __56 24740 // Fall through 24741 24742 default: 24743 goto __57 24744 } 24745 goto __43 24746 24747 __44: 24748 s = ts + 708 24749 __58: 24750 if !(int32(*(*int8)(unsafe.Pointer(s))) != 0) { 24751 goto __60 24752 } 24753 if !(p >= endp) { 24754 goto __61 24755 } 24756 return -48 24757 __61: 24758 ; 24759 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = TPCRE2_UCHAR8(*(*int8)(unsafe.Pointer(s))) 24760 goto __59 24761 __59: 24762 s++ 24763 goto __58 24764 goto __60 24765 __60: 24766 ; 24767 24768 // Handle start of "normal" character classes 24769 24770 posix_state = POSIX_CLASS_NOT_STARTED 24771 24772 // Handle ^ and ] as first characters 24773 24774 if !(plength > uint64(0)) { 24775 goto __62 24776 } 24777 24778 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix))) == '\136') { 24779 goto __63 24780 } 24781 24782 posix++ 24783 plength-- 24784 s = ts + 710 24785 __64: 24786 if !(int32(*(*int8)(unsafe.Pointer(s))) != 0) { 24787 goto __66 24788 } 24789 if !(p >= endp) { 24790 goto __67 24791 } 24792 return -48 24793 __67: 24794 ; 24795 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = TPCRE2_UCHAR8(*(*int8)(unsafe.Pointer(s))) 24796 goto __65 24797 __65: 24798 s++ 24799 goto __64 24800 goto __66 24801 __66: 24802 ; 24803 24804 __63: 24805 ; 24806 if !(plength > uint64(0) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix))) == '\135') { 24807 goto __68 24808 } 24809 24810 posix++ 24811 plength-- 24812 s = ts + 701 24813 __69: 24814 if !(int32(*(*int8)(unsafe.Pointer(s))) != 0) { 24815 goto __71 24816 } 24817 if !(p >= endp) { 24818 goto __72 24819 } 24820 return -48 24821 __72: 24822 ; 24823 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = TPCRE2_UCHAR8(*(*int8)(unsafe.Pointer(s))) 24824 goto __70 24825 __70: 24826 s++ 24827 goto __69 24828 goto __71 24829 __71: 24830 ; 24831 24832 __68: 24833 ; 24834 __62: 24835 ; 24836 goto __43 24837 24838 __45: 24839 if !(plength == uint64(0)) { 24840 goto __73 24841 } 24842 return DPCRE2_ERROR_END_BACKSLASH 24843 __73: 24844 ; 24845 if !(extended != 0) { 24846 goto __74 24847 } 24848 nextisliteral = DTRUE 24849 goto __75 24850 __74: 24851 24852 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix))) < 127 && libc.Xstrchr(tls, posix_meta_escapes, int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix)))) != uintptr(0)) { 24853 goto __76 24854 } 24855 24856 if !(int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(posix))))*2)))&int32(_ISdigit) != 0) { 24857 goto __78 24858 } 24859 s = ts + 706 24860 __79: 24861 if !(int32(*(*int8)(unsafe.Pointer(s))) != 0) { 24862 goto __81 24863 } 24864 if !(p >= endp) { 24865 goto __82 24866 } 24867 return -48 24868 __82: 24869 ; 24870 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = TPCRE2_UCHAR8(*(*int8)(unsafe.Pointer(s))) 24871 goto __80 24872 __80: 24873 s++ 24874 goto __79 24875 goto __81 24876 __81: 24877 ; 24878 __78: 24879 ; 24880 24881 if !(p+uintptr(1) > endp) { 24882 goto __83 24883 } 24884 return -48 24885 __83: 24886 ; 24887 lastspecial = Tuint32_t(libc.AssignPtrUint8(libc.PostIncUintptr(&p, 1), *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&posix, 1))))) 24888 plength-- 24889 goto __77 24890 __76: 24891 nextisliteral = DTRUE 24892 __77: 24893 ; 24894 __75: 24895 ; 24896 goto __43 24897 24898 __46: 24899 if !(!(extended != 0) || bracount == Tuint32_t(0)) { 24900 goto __84 24901 } 24902 goto ESCAPE_LITERAL 24903 __84: 24904 ; 24905 bracount-- 24906 goto COPY_SPECIAL 24907 24908 __47: 24909 bracount++ 24910 // Fall through 24911 24912 __48: 24913 __49: 24914 __50: 24915 __51: 24916 __52: 24917 if !!(extended != 0) { 24918 goto __85 24919 } 24920 goto ESCAPE_LITERAL 24921 __85: 24922 ; 24923 // Fall through 24924 24925 __53: 24926 __54: 24927 posix_state = POSIX_NOT_BRACKET 24928 COPY_SPECIAL: 24929 lastspecial = c 24930 if !(p+uintptr(1) > endp) { 24931 goto __86 24932 } 24933 return -48 24934 __86: 24935 ; 24936 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = TPCRE2_UCHAR8(c) 24937 goto __43 24938 24939 __55: 24940 if !(lastspecial != Tuint32_t('\052')) { 24941 goto __87 24942 } 24943 24944 if !(!(extended != 0) && (posix_state < POSIX_NOT_BRACKET || lastspecial == Tuint32_t('\050'))) { 24945 goto __88 24946 } 24947 goto ESCAPE_LITERAL 24948 __88: 24949 ; 24950 goto COPY_SPECIAL 24951 __87: 24952 ; 24953 goto __43 // Ignore second and subsequent asterisks 24954 24955 __56: 24956 if !(extended != 0) { 24957 goto __89 24958 } 24959 goto COPY_SPECIAL 24960 __89: 24961 ; 24962 if !(posix_state == POSIX_START_REGEX || lastspecial == Tuint32_t('\050')) { 24963 goto __90 24964 } 24965 24966 posix_state = POSIX_ANCHORED 24967 goto COPY_SPECIAL 24968 __90: 24969 ; 24970 // Fall through 24971 24972 __57: 24973 if !(c < Tuint32_t(128) && libc.Xstrchr(tls, pcre2_escaped_literals, int32(c)) != uintptr(0)) { 24974 goto __91 24975 } 24976 24977 ESCAPE_LITERAL: 24978 s = ts + 706 24979 __92: 24980 if !(int32(*(*int8)(unsafe.Pointer(s))) != 0) { 24981 goto __94 24982 } 24983 if !(p >= endp) { 24984 goto __95 24985 } 24986 return -48 24987 __95: 24988 ; 24989 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = TPCRE2_UCHAR8(*(*int8)(unsafe.Pointer(s))) 24990 goto __93 24991 __93: 24992 s++ 24993 goto __92 24994 goto __94 24995 __94: 24996 ; 24997 24998 __91: 24999 ; 25000 lastspecial = Tuint32_t(0xff) // Indicates nothing special 25001 if !(p+uintptr(clength) > endp) { 25002 goto __96 25003 } 25004 return -48 25005 __96: 25006 ; 25007 libc.Xmemcpy(tls, p, posix-uintptr(clength), uint64(clength*(DPCRE2_CODE_UNIT_WIDTH/8))) 25008 p += uintptr(clength) 25009 posix_state = POSIX_NOT_BRACKET 25010 goto __43 25011 __43: 25012 ; 25013 __18: 25014 ; 25015 goto __5 25016 __6: 25017 ; 25018 25019 if !(posix_state >= POSIX_CLASS_NOT_STARTED) { 25020 goto __97 25021 } 25022 return DPCRE2_ERROR_MISSING_SQUARE_BRACKET 25023 __97: 25024 ; 25025 convlength = convlength + Tsize_t((int64(p)-int64(pp))/1) // Final segment 25026 *(*Tsize_t)(unsafe.Pointer(bufflenptr)) = convlength 25027 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = TPCRE2_UCHAR8(0) 25028 return 0 25029 } 25030 25031 // ************************************************ 25032 // 25033 // Convert a glob pattern * 25034 // 25035 25036 // Context for writing the output into a buffer. 25037 25038 type Spcre2_output_context = struct { 25039 Foutput uintptr 25040 Foutput_end TPCRE2_SPTR8 25041 Foutput_size Tsize_t 25042 Fout_str [8]Tuint8_t 25043 } /* pcre2_convert.c:369:9 */ 25044 25045 // ************************************************ 25046 // 25047 // Convert a glob pattern * 25048 // 25049 25050 // Context for writing the output into a buffer. 25051 25052 type Tpcre2_output_context = Spcre2_output_context /* pcre2_convert.c:374:3 */ 25053 25054 // Write a character into the output. 25055 // 25056 // Arguments: 25057 // out output context 25058 // chr the next character 25059 25060 func convert_glob_write(tls *libc.TLS, out uintptr, chr TPCRE2_UCHAR8) { /* pcre2_convert.c:385:1: */ 25061 (*Tpcre2_output_context)(unsafe.Pointer(out)).Foutput_size++ 25062 25063 if (*Tpcre2_output_context)(unsafe.Pointer(out)).Foutput < (*Tpcre2_output_context)(unsafe.Pointer(out)).Foutput_end { 25064 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Tpcre2_output_context)(unsafe.Pointer(out)).Foutput, 1))) = chr 25065 } 25066 } 25067 25068 // Write a string into the output. 25069 // 25070 // Arguments: 25071 // out output context 25072 // length length of out->out_str 25073 25074 func convert_glob_write_str(tls *libc.TLS, out uintptr, length Tsize_t) { /* pcre2_convert.c:402:1: */ 25075 var out_str uintptr = out + 24 /* &.out_str */ 25076 var output uintptr = (*Tpcre2_output_context)(unsafe.Pointer(out)).Foutput 25077 var output_end TPCRE2_SPTR8 = (*Tpcre2_output_context)(unsafe.Pointer(out)).Foutput_end 25078 var output_size Tsize_t = (*Tpcre2_output_context)(unsafe.Pointer(out)).Foutput_size 25079 25080 for __ccgo := true; __ccgo; __ccgo = libc.PreDecUint64(&length, 1) != uint64(0) { 25081 output_size++ 25082 25083 if output < output_end { 25084 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&output, 1))) = *(*Tuint8_t)(unsafe.Pointer(libc.PostIncUintptr(&out_str, 1))) 25085 } 25086 } 25087 25088 (*Tpcre2_output_context)(unsafe.Pointer(out)).Foutput = output 25089 (*Tpcre2_output_context)(unsafe.Pointer(out)).Foutput_size = output_size 25090 } 25091 25092 // Prints the separator into the output. 25093 // 25094 // Arguments: 25095 // out output context 25096 // separator glob separator 25097 // with_escape backslash is needed before separator 25098 25099 func convert_glob_print_separator(tls *libc.TLS, out uintptr, separator TPCRE2_UCHAR8, with_escape TBOOL) { /* pcre2_convert.c:432:1: */ 25100 if with_escape != 0 { 25101 convert_glob_write(tls, out, uint8('\134')) 25102 } 25103 25104 convert_glob_write(tls, out, separator) 25105 } 25106 25107 // Prints a wildcard into the output. 25108 // 25109 // Arguments: 25110 // out output context 25111 // separator glob separator 25112 // with_escape backslash is needed before separator 25113 25114 func convert_glob_print_wildcard(tls *libc.TLS, out uintptr, separator TPCRE2_UCHAR8, with_escape TBOOL) { /* pcre2_convert.c:451:1: */ 25115 *(*Tuint8_t)(unsafe.Pointer(out + 24)) = Tuint8_t('\133') 25116 *(*Tuint8_t)(unsafe.Pointer(out + 24 + 1)) = Tuint8_t('\136') 25117 convert_glob_write_str(tls, out, uint64(2)) 25118 25119 convert_glob_print_separator(tls, out, separator, with_escape) 25120 25121 convert_glob_write(tls, out, uint8('\135')) 25122 } 25123 25124 // Parse a posix class. 25125 // 25126 // Arguments: 25127 // from starting point of scanning the range 25128 // pattern_end end of pattern 25129 // out output context 25130 // 25131 // Returns: >0 => class index 25132 // 0 => malformed class 25133 25134 func convert_glob_parse_class(tls *libc.TLS, from uintptr, pattern_end TPCRE2_SPTR8, out uintptr) int32 { /* pcre2_convert.c:476:1: */ 25135 var start TPCRE2_SPTR8 = *(*TPCRE2_SPTR8)(unsafe.Pointer(from)) + uintptr(1) 25136 var pattern TPCRE2_SPTR8 = start 25137 var class_ptr uintptr 25138 var c TPCRE2_UCHAR8 25139 var class_index int32 25140 25141 for 1 != 0 { 25142 if pattern >= pattern_end { 25143 return 0 25144 } 25145 25146 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&pattern, 1))) 25147 25148 if int32(c) < '\141' || int32(c) > '\172' { 25149 break 25150 } 25151 } 25152 25153 if int32(c) != '\072' || pattern >= pattern_end || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern))) != '\135' { 25154 return 0 25155 } 25156 25157 class_ptr = posix_classes 25158 class_index = 1 25159 25160 for 1 != 0 { 25161 if int32(*(*int8)(unsafe.Pointer(class_ptr))) == 0 { 25162 return 0 25163 } 25164 25165 pattern = start 25166 25167 for int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern))) == int32(TPCRE2_UCHAR8(*(*int8)(unsafe.Pointer(class_ptr)))) { 25168 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern))) == '\072' { 25169 pattern += uintptr(2) 25170 start -= uintptr(2) 25171 25172 for __ccgo := true; __ccgo; __ccgo = start < pattern { 25173 convert_glob_write(tls, out, *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&start, 1)))) 25174 } 25175 25176 *(*TPCRE2_SPTR8)(unsafe.Pointer(from)) = pattern 25177 return class_index 25178 } 25179 pattern++ 25180 class_ptr++ 25181 } 25182 25183 for int32(*(*int8)(unsafe.Pointer(class_ptr))) != '\072' { 25184 class_ptr++ 25185 } 25186 class_ptr++ 25187 class_index++ 25188 } 25189 return int32(0) 25190 } 25191 25192 var posix_classes uintptr = ts + 712 /* "alnum:alpha:asci..." */ /* pcre2_convert.c:479:19 */ 25193 25194 // Checks whether the character is in the class. 25195 // 25196 // Arguments: 25197 // class_index class index 25198 // c character 25199 // 25200 // Returns: !0 => character is found in the class 25201 // 0 => otherwise 25202 25203 func convert_glob_char_in_class(tls *libc.TLS, class_index int32, c TPCRE2_UCHAR8) TBOOL { /* pcre2_convert.c:542:1: */ 25204 switch class_index { 25205 case 1: 25206 return int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2))) & int32(_ISalnum) 25207 case 2: 25208 return int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2))) & int32(_ISalpha) 25209 case 3: 25210 return 1 25211 case 4: 25212 return libc.Bool32(int32(c) == '\011' || int32(c) == '\040') 25213 case 5: 25214 return int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2))) & int32(_IScntrl) 25215 case 6: 25216 return int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2))) & int32(_ISdigit) 25217 case 7: 25218 return int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2))) & int32(_ISgraph) 25219 case 8: 25220 return int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2))) & int32(_ISlower) 25221 case 9: 25222 return int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2))) & int32(_ISprint) 25223 case 10: 25224 return int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2))) & int32(_ISpunct) 25225 case 11: 25226 return int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2))) & int32(_ISspace) 25227 case 12: 25228 return int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2))) & int32(_ISupper) 25229 case 13: 25230 return libc.Bool32(int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2)))&int32(_ISalnum) != 0 || int32(c) == '\137') 25231 default: 25232 return int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(int32(c))*2))) & int32(_ISxdigit) 25233 } 25234 return TBOOL(0) 25235 } 25236 25237 // Parse a range of characters. 25238 // 25239 // Arguments: 25240 // from starting point of scanning the range 25241 // pattern_end end of pattern 25242 // out output context 25243 // separator glob separator 25244 // with_escape backslash is needed before separator 25245 // 25246 // Returns: 0 => success 25247 // !0 => error code 25248 25249 func convert_glob_parse_range(tls *libc.TLS, from uintptr, pattern_end TPCRE2_SPTR8, out uintptr, utf TBOOL, separator TPCRE2_UCHAR8, with_escape TBOOL, escape TPCRE2_UCHAR8, no_wildsep TBOOL) int32 { /* pcre2_convert.c:577:1: */ 25250 var is_negative TBOOL = DFALSE 25251 var separator_seen TBOOL = DFALSE 25252 var has_prev_c TBOOL 25253 var pattern TPCRE2_SPTR8 = *(*TPCRE2_SPTR8)(unsafe.Pointer(from)) 25254 var char_start TPCRE2_SPTR8 = uintptr(0) 25255 var c Tuint32_t 25256 var prev_c Tuint32_t 25257 var len int32 25258 var class_index int32 25259 25260 _ = utf // Avoid compiler warning. 25261 25262 if pattern >= pattern_end { 25263 *(*TPCRE2_SPTR8)(unsafe.Pointer(from)) = pattern 25264 return DPCRE2_ERROR_MISSING_SQUARE_BRACKET 25265 } 25266 25267 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern))) == '\041' || 25268 int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern))) == '\136' { 25269 pattern++ 25270 25271 if pattern >= pattern_end { 25272 *(*TPCRE2_SPTR8)(unsafe.Pointer(from)) = pattern 25273 return DPCRE2_ERROR_MISSING_SQUARE_BRACKET 25274 } 25275 25276 is_negative = DTRUE 25277 25278 *(*Tuint8_t)(unsafe.Pointer(out + 24)) = Tuint8_t('\133') 25279 *(*Tuint8_t)(unsafe.Pointer(out + 24 + 1)) = Tuint8_t('\136') 25280 len = 2 25281 25282 if !(no_wildsep != 0) { 25283 if with_escape != 0 { 25284 *(*Tuint8_t)(unsafe.Pointer(out + 24 + uintptr(len))) = Tuint8_t('\134') 25285 len++ 25286 } 25287 *(*Tuint8_t)(unsafe.Pointer(out + 24 + uintptr(len))) = separator 25288 } 25289 25290 convert_glob_write_str(tls, out, uint64(len+1)) 25291 } else { 25292 convert_glob_write(tls, out, uint8('\133')) 25293 } 25294 25295 has_prev_c = DFALSE 25296 prev_c = Tuint32_t(0) 25297 25298 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern))) == '\135' { 25299 *(*Tuint8_t)(unsafe.Pointer(out + 24)) = Tuint8_t('\134') 25300 *(*Tuint8_t)(unsafe.Pointer(out + 24 + 1)) = Tuint8_t('\135') 25301 convert_glob_write_str(tls, out, uint64(2)) 25302 has_prev_c = DTRUE 25303 prev_c = Tuint32_t('\135') 25304 pattern++ 25305 } 25306 25307 for pattern < pattern_end { 25308 char_start = pattern 25309 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&pattern, 1)))) 25310 if utf != 0 && c >= 0xc0 { 25311 if c&0x20 == Tuint32_t(0) { 25312 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&pattern, 1))))&0x3f 25313 } else if c&0x10 == Tuint32_t(0) { 25314 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f 25315 pattern += uintptr(2) 25316 } else if c&0x08 == Tuint32_t(0) { 25317 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 2)))&0x3f 25318 pattern += uintptr(3) 25319 } else if c&0x04 == Tuint32_t(0) { 25320 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 3)))&0x3f 25321 pattern += uintptr(4) 25322 } else { 25323 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 4)))&0x3f 25324 pattern += uintptr(5) 25325 } 25326 } 25327 25328 if c == Tuint32_t('\135') { 25329 convert_glob_write(tls, out, uint8(c)) 25330 25331 if !(is_negative != 0) && !(no_wildsep != 0) && separator_seen != 0 { 25332 *(*Tuint8_t)(unsafe.Pointer(out + 24)) = Tuint8_t('\050') 25333 *(*Tuint8_t)(unsafe.Pointer(out + 24 + 1)) = Tuint8_t('\077') 25334 *(*Tuint8_t)(unsafe.Pointer(out + 24 + 2)) = Tuint8_t('\074') 25335 *(*Tuint8_t)(unsafe.Pointer(out + 24 + 3)) = Tuint8_t('\041') 25336 convert_glob_write_str(tls, out, uint64(4)) 25337 25338 convert_glob_print_separator(tls, out, separator, with_escape) 25339 convert_glob_write(tls, out, uint8('\051')) 25340 } 25341 25342 *(*TPCRE2_SPTR8)(unsafe.Pointer(from)) = pattern 25343 return 0 25344 } 25345 25346 if pattern >= pattern_end { 25347 break 25348 } 25349 25350 if c == Tuint32_t('\133') && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern))) == '\072' { 25351 *(*TPCRE2_SPTR8)(unsafe.Pointer(from)) = pattern 25352 class_index = convert_glob_parse_class(tls, from, pattern_end, out) 25353 25354 if class_index != 0 { 25355 pattern = *(*TPCRE2_SPTR8)(unsafe.Pointer(from)) 25356 25357 has_prev_c = DFALSE 25358 prev_c = Tuint32_t(0) 25359 25360 if !(is_negative != 0) && convert_glob_char_in_class(tls, class_index, separator) != 0 { 25361 separator_seen = DTRUE 25362 } 25363 continue 25364 } 25365 } else if c == Tuint32_t('\055') && has_prev_c != 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern))) != '\135' { 25366 convert_glob_write(tls, out, uint8('\055')) 25367 25368 char_start = pattern 25369 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&pattern, 1)))) 25370 if utf != 0 && c >= 0xc0 { 25371 if c&0x20 == Tuint32_t(0) { 25372 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&pattern, 1))))&0x3f 25373 } else if c&0x10 == Tuint32_t(0) { 25374 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f 25375 pattern += uintptr(2) 25376 } else if c&0x08 == Tuint32_t(0) { 25377 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 2)))&0x3f 25378 pattern += uintptr(3) 25379 } else if c&0x04 == Tuint32_t(0) { 25380 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 3)))&0x3f 25381 pattern += uintptr(4) 25382 } else { 25383 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 4)))&0x3f 25384 pattern += uintptr(5) 25385 } 25386 } 25387 25388 if pattern >= pattern_end { 25389 break 25390 } 25391 25392 if int32(escape) != 0 && c == Tuint32_t(escape) { 25393 char_start = pattern 25394 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&pattern, 1)))) 25395 if utf != 0 && c >= 0xc0 { 25396 if c&0x20 == Tuint32_t(0) { 25397 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&pattern, 1))))&0x3f 25398 } else if c&0x10 == Tuint32_t(0) { 25399 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f 25400 pattern += uintptr(2) 25401 } else if c&0x08 == Tuint32_t(0) { 25402 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 2)))&0x3f 25403 pattern += uintptr(3) 25404 } else if c&0x04 == Tuint32_t(0) { 25405 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 3)))&0x3f 25406 pattern += uintptr(4) 25407 } else { 25408 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 4)))&0x3f 25409 pattern += uintptr(5) 25410 } 25411 } 25412 25413 } else if c == Tuint32_t('\133') && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern))) == '\072' { 25414 *(*TPCRE2_SPTR8)(unsafe.Pointer(from)) = pattern 25415 return -64 25416 } 25417 25418 if prev_c > c { 25419 *(*TPCRE2_SPTR8)(unsafe.Pointer(from)) = pattern 25420 return -64 25421 } 25422 25423 if prev_c < Tuint32_t(separator) && Tuint32_t(separator) < c { 25424 separator_seen = DTRUE 25425 } 25426 25427 has_prev_c = DFALSE 25428 prev_c = Tuint32_t(0) 25429 } else { 25430 if int32(escape) != 0 && c == Tuint32_t(escape) { 25431 char_start = pattern 25432 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&pattern, 1)))) 25433 if utf != 0 && c >= 0xc0 { 25434 if c&0x20 == Tuint32_t(0) { 25435 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&pattern, 1))))&0x3f 25436 } else if c&0x10 == Tuint32_t(0) { 25437 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f 25438 pattern += uintptr(2) 25439 } else if c&0x08 == Tuint32_t(0) { 25440 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 2)))&0x3f 25441 pattern += uintptr(3) 25442 } else if c&0x04 == Tuint32_t(0) { 25443 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 3)))&0x3f 25444 pattern += uintptr(4) 25445 } else { 25446 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(pattern + 4)))&0x3f 25447 pattern += uintptr(5) 25448 } 25449 } 25450 25451 if pattern >= pattern_end { 25452 break 25453 } 25454 } 25455 25456 has_prev_c = DTRUE 25457 prev_c = c 25458 } 25459 25460 if c == Tuint32_t('\133') || c == Tuint32_t('\135') || c == Tuint32_t('\134') || c == Tuint32_t('\055') { 25461 convert_glob_write(tls, out, uint8('\134')) 25462 } 25463 25464 if c == Tuint32_t(separator) { 25465 separator_seen = DTRUE 25466 } 25467 25468 for __ccgo := true; __ccgo; __ccgo = char_start < pattern { 25469 convert_glob_write(tls, out, *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&char_start, 1)))) 25470 } 25471 } 25472 25473 *(*TPCRE2_SPTR8)(unsafe.Pointer(from)) = pattern 25474 return DPCRE2_ERROR_MISSING_SQUARE_BRACKET 25475 } 25476 25477 // Prints a (*COMMIT) into the output. 25478 // 25479 // Arguments: 25480 // out output context 25481 25482 func convert_glob_print_commit(tls *libc.TLS, out uintptr) { /* pcre2_convert.c:754:1: */ 25483 *(*Tuint8_t)(unsafe.Pointer(out + 24)) = Tuint8_t('\050') 25484 *(*Tuint8_t)(unsafe.Pointer(out + 24 + 1)) = Tuint8_t('\052') 25485 *(*Tuint8_t)(unsafe.Pointer(out + 24 + 2)) = Tuint8_t('\103') 25486 *(*Tuint8_t)(unsafe.Pointer(out + 24 + 3)) = Tuint8_t('\117') 25487 *(*Tuint8_t)(unsafe.Pointer(out + 24 + 4)) = Tuint8_t('\115') 25488 *(*Tuint8_t)(unsafe.Pointer(out + 24 + 5)) = Tuint8_t('\115') 25489 *(*Tuint8_t)(unsafe.Pointer(out + 24 + 6)) = Tuint8_t('\111') 25490 *(*Tuint8_t)(unsafe.Pointer(out + 24 + 7)) = Tuint8_t('\124') 25491 convert_glob_write_str(tls, out, uint64(8)) 25492 convert_glob_write(tls, out, uint8('\051')) 25493 } 25494 25495 // Bash glob converter. 25496 // 25497 // Arguments: 25498 // pattype the pattern type 25499 // pattern the pattern 25500 // plength length in code units 25501 // utf TRUE if UTF 25502 // use_buffer where to put the output 25503 // use_length length of use_buffer 25504 // bufflenptr where to put the used length 25505 // dummyrun TRUE if a dummy run 25506 // ccontext the convert context 25507 // 25508 // Returns: 0 => success 25509 // !0 => error code 25510 25511 func convert_glob(tls *libc.TLS, options Tuint32_t, pattern TPCRE2_SPTR8, plength Tsize_t, utf TBOOL, use_buffer uintptr, use_length Tsize_t, bufflenptr uintptr, dummyrun TBOOL, ccontext uintptr) int32 { /* pcre2_convert.c:787:1: */ 25512 bp := tls.Alloc(40) 25513 defer tls.Free(40) 25514 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32)) = pattern 25515 25516 // var out Tpcre2_output_context at bp, 32 25517 25518 var pattern_start TPCRE2_SPTR8 = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32 /* pattern */)) 25519 var pattern_end TPCRE2_SPTR8 = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32)) + uintptr(plength) 25520 var separator TPCRE2_UCHAR8 = TPCRE2_UCHAR8((*Tpcre2_convert_context_8)(unsafe.Pointer(ccontext)).Fglob_separator) 25521 var escape TPCRE2_UCHAR8 = TPCRE2_UCHAR8((*Tpcre2_convert_context_8)(unsafe.Pointer(ccontext)).Fglob_escape) 25522 var c TPCRE2_UCHAR8 25523 var no_wildsep TBOOL = libc.Bool32(options&DPCRE2_CONVERT_GLOB_NO_WILD_SEPARATOR != Tuint32_t(0)) 25524 var no_starstar TBOOL = libc.Bool32(options&DPCRE2_CONVERT_GLOB_NO_STARSTAR != Tuint32_t(0)) 25525 var in_atomic TBOOL = DFALSE 25526 var after_starstar TBOOL = DFALSE 25527 var no_slash_z TBOOL = DFALSE 25528 var with_escape TBOOL 25529 var is_start TBOOL 25530 var after_separator TBOOL 25531 var result int32 = 0 25532 25533 _ = utf // Avoid compiler warning. 25534 25535 if utf != 0 && (int32(separator) >= 128 || int32(escape) >= 128) { 25536 // Currently only ASCII characters are supported. 25537 *(*Tsize_t)(unsafe.Pointer(bufflenptr)) = uint64(0) 25538 return -64 25539 } 25540 25541 with_escape = libc.Bool32(libc.Xstrchr(tls, pcre2_escaped_literals, int32(separator)) != uintptr(0)) 25542 25543 // Initialize default for error offset as end of input. 25544 (*Tpcre2_output_context)(unsafe.Pointer(bp /* &out */)).Foutput = use_buffer 25545 (*Tpcre2_output_context)(unsafe.Pointer(bp /* &out */)).Foutput_end = use_buffer + uintptr(use_length) 25546 (*Tpcre2_output_context)(unsafe.Pointer(bp /* &out */)).Foutput_size = uint64(0) 25547 25548 *(*Tuint8_t)(unsafe.Pointer(bp + 24)) = Tuint8_t('\050') 25549 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 1)) = Tuint8_t('\077') 25550 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 2)) = Tuint8_t('\163') 25551 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 3)) = Tuint8_t('\051') 25552 convert_glob_write_str(tls, bp, uint64(4)) 25553 25554 is_start = DTRUE 25555 25556 if *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32)) < pattern_end && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32))))) == '\052' { 25557 if no_wildsep != 0 { 25558 is_start = DFALSE 25559 } else if !(no_starstar != 0) && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32))+uintptr(1) < pattern_end && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32)) + 1))) == '\052' { 25560 is_start = DFALSE 25561 } 25562 } 25563 25564 if is_start != 0 { 25565 *(*Tuint8_t)(unsafe.Pointer(bp + 24)) = Tuint8_t('\134') 25566 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 1)) = Tuint8_t('\101') 25567 convert_glob_write_str(tls, bp, uint64(2)) 25568 } 25569 25570 for *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32)) < pattern_end { 25571 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32 /* pattern */)), 1))) 25572 25573 if int32(c) == '\052' { 25574 is_start = libc.Bool32(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32)) == pattern_start+uintptr(1)) 25575 25576 if in_atomic != 0 { 25577 convert_glob_write(tls, bp, uint8('\051')) 25578 in_atomic = DFALSE 25579 } 25580 25581 if !(no_starstar != 0) && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32)) < pattern_end && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32))))) == '\052' { 25582 after_separator = libc.Bool32(is_start != 0 || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32)) + libc.UintptrFromInt32(-2)))) == int32(separator)) 25583 25584 for __ccgo := true; __ccgo; __ccgo = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32)) < pattern_end && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32))))) == '\052' { 25585 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32 /* pattern */))++ 25586 } 25587 25588 if *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32)) >= pattern_end { 25589 no_slash_z = DTRUE 25590 break 25591 } 25592 25593 after_starstar = DTRUE 25594 25595 if after_separator != 0 && int32(escape) != 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32))))) == int32(escape) && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32))+uintptr(1) < pattern_end && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32)) + 1))) == int32(separator) { 25596 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32 /* pattern */))++ 25597 } 25598 25599 if is_start != 0 { 25600 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32))))) != int32(separator) { 25601 continue 25602 } 25603 25604 *(*Tuint8_t)(unsafe.Pointer(bp + 24)) = Tuint8_t('\050') 25605 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 1)) = Tuint8_t('\077') 25606 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 2)) = Tuint8_t('\072') 25607 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 3)) = Tuint8_t('\134') 25608 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 4)) = Tuint8_t('\101') 25609 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 5)) = Tuint8_t('\174') 25610 convert_glob_write_str(tls, bp, uint64(6)) 25611 25612 convert_glob_print_separator(tls, bp, separator, with_escape) 25613 convert_glob_write(tls, bp, uint8('\051')) 25614 25615 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32 /* pattern */))++ 25616 continue 25617 } 25618 25619 convert_glob_print_commit(tls, bp) 25620 25621 if !(after_separator != 0) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32))))) != int32(separator) { 25622 *(*Tuint8_t)(unsafe.Pointer(bp + 24)) = Tuint8_t('\056') 25623 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 1)) = Tuint8_t('\052') 25624 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 2)) = Tuint8_t('\077') 25625 convert_glob_write_str(tls, bp, uint64(3)) 25626 continue 25627 } 25628 25629 *(*Tuint8_t)(unsafe.Pointer(bp + 24)) = Tuint8_t('\050') 25630 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 1)) = Tuint8_t('\077') 25631 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 2)) = Tuint8_t('\072') 25632 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 3)) = Tuint8_t('\056') 25633 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 4)) = Tuint8_t('\052') 25634 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 5)) = Tuint8_t('\077') 25635 25636 convert_glob_write_str(tls, bp, uint64(6)) 25637 25638 convert_glob_print_separator(tls, bp, separator, with_escape) 25639 25640 *(*Tuint8_t)(unsafe.Pointer(bp + 24)) = Tuint8_t('\051') 25641 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 1)) = Tuint8_t('\077') 25642 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 2)) = Tuint8_t('\077') 25643 convert_glob_write_str(tls, bp, uint64(3)) 25644 25645 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32 /* pattern */))++ 25646 continue 25647 } 25648 25649 if *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32)) < pattern_end && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32))))) == '\052' { 25650 for __ccgo1 := true; __ccgo1; __ccgo1 = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32)) < pattern_end && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32))))) == '\052' { 25651 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32 /* pattern */))++ 25652 } 25653 } 25654 25655 if no_wildsep != 0 { 25656 if *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32)) >= pattern_end { 25657 no_slash_z = DTRUE 25658 break 25659 } 25660 25661 // Start check must be after the end check. 25662 if is_start != 0 { 25663 continue 25664 } 25665 } 25666 25667 if !(is_start != 0) { 25668 if after_starstar != 0 { 25669 *(*Tuint8_t)(unsafe.Pointer(bp + 24)) = Tuint8_t('\050') 25670 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 1)) = Tuint8_t('\077') 25671 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 2)) = Tuint8_t('\076') 25672 convert_glob_write_str(tls, bp, uint64(3)) 25673 in_atomic = DTRUE 25674 } else { 25675 convert_glob_print_commit(tls, bp) 25676 } 25677 } 25678 25679 if no_wildsep != 0 { 25680 convert_glob_write(tls, bp, uint8('\056')) 25681 } else { 25682 convert_glob_print_wildcard(tls, bp, separator, with_escape) 25683 } 25684 25685 *(*Tuint8_t)(unsafe.Pointer(bp + 24)) = Tuint8_t('\052') 25686 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 1)) = Tuint8_t('\077') 25687 if *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32)) >= pattern_end { 25688 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 1)) = Tuint8_t('\053') 25689 } 25690 convert_glob_write_str(tls, bp, uint64(2)) 25691 continue 25692 } 25693 25694 if int32(c) == '\077' { 25695 if no_wildsep != 0 { 25696 convert_glob_write(tls, bp, uint8('\056')) 25697 } else { 25698 convert_glob_print_wildcard(tls, bp, separator, with_escape) 25699 } 25700 continue 25701 } 25702 25703 if int32(c) == '\133' { 25704 result = convert_glob_parse_range(tls, bp+32, pattern_end, 25705 bp, utf, separator, with_escape, escape, no_wildsep) 25706 if result != 0 { 25707 break 25708 } 25709 continue 25710 } 25711 25712 if int32(escape) != 0 && int32(c) == int32(escape) { 25713 if *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32)) >= pattern_end { 25714 result = -64 25715 break 25716 } 25717 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32 /* pattern */)), 1))) 25718 } 25719 25720 if int32(c) < 128 && libc.Xstrchr(tls, pcre2_escaped_literals, int32(c)) != uintptr(0) { 25721 convert_glob_write(tls, bp, uint8('\134')) 25722 } 25723 25724 convert_glob_write(tls, bp, c) 25725 } 25726 25727 if result == 0 { 25728 if !(no_slash_z != 0) { 25729 *(*Tuint8_t)(unsafe.Pointer(bp + 24)) = Tuint8_t('\134') 25730 *(*Tuint8_t)(unsafe.Pointer(bp + 24 + 1)) = Tuint8_t('\172') 25731 convert_glob_write_str(tls, bp, uint64(2)) 25732 } 25733 25734 if in_atomic != 0 { 25735 convert_glob_write(tls, bp, uint8('\051')) 25736 } 25737 25738 convert_glob_write(tls, bp, uint8(0)) 25739 25740 if !(dummyrun != 0) && (*Tpcre2_output_context)(unsafe.Pointer(bp)).Foutput_size != Tsize_t((int64((*Tpcre2_output_context)(unsafe.Pointer(bp)).Foutput)-int64(use_buffer))/1) { 25741 result = -48 25742 } 25743 } 25744 25745 if result != 0 { 25746 *(*Tsize_t)(unsafe.Pointer(bufflenptr)) = Tsize_t((int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 32))) - int64(pattern_start)) / 1) 25747 return result 25748 } 25749 25750 *(*Tsize_t)(unsafe.Pointer(bufflenptr)) = (*Tpcre2_output_context)(unsafe.Pointer(bp)).Foutput_size - uint64(1) 25751 return 0 25752 } 25753 25754 // ************************************************ 25755 // 25756 // Convert pattern * 25757 // 25758 25759 // This is the external-facing function for converting other forms of pattern 25760 // into PCRE2 regular expression patterns. On error, the bufflenptr argument is 25761 // used to return an offset in the original pattern. 25762 // 25763 // Arguments: 25764 // pattern the input pattern 25765 // plength length of input, or PCRE2_ZERO_TERMINATED 25766 // options options bits 25767 // buffptr pointer to pointer to output buffer 25768 // bufflenptr pointer to length of output buffer 25769 // ccontext convert context or NULL 25770 // 25771 // Returns: 0 for success, else an error code (+ve or -ve) 25772 25773 func Xpcre2_pattern_convert_8(tls *libc.TLS, pattern TPCRE2_SPTR8, plength Tsize_t, options Tuint32_t, buffptr uintptr, bufflenptr uintptr, ccontext uintptr) int32 { /* pcre2_convert.c:1057:1: */ 25774 bp := tls.Alloc(112) 25775 defer tls.Free(112) 25776 25777 var i int32 25778 var rc int32 25779 // var dummy_buffer [100]TPCRE2_UCHAR8 at bp, 100 25780 25781 var use_buffer uintptr = bp /* dummy_buffer */ 25782 var use_length Tsize_t = uint64(DDUMMY_BUFFER_SIZE) 25783 var utf TBOOL = libc.Bool32(options&DPCRE2_CONVERT_UTF != Tuint32_t(0)) 25784 var pattype Tuint32_t = options & (DPCRE2_CONVERT_GLOB | DPCRE2_CONVERT_POSIX_BASIC | DPCRE2_CONVERT_POSIX_EXTENDED) 25785 25786 if pattern == uintptr(0) || bufflenptr == uintptr(0) { 25787 return -51 25788 } 25789 25790 if options&libc.CplUint32(DPCRE2_CONVERT_UTF|DPCRE2_CONVERT_NO_UTF_CHECK|DPCRE2_CONVERT_GLOB_NO_WILD_SEPARATOR|DPCRE2_CONVERT_GLOB_NO_STARSTAR|(DPCRE2_CONVERT_GLOB|DPCRE2_CONVERT_POSIX_BASIC|DPCRE2_CONVERT_POSIX_EXTENDED)) != Tuint32_t(0) || pattype&(^pattype+Tuint32_t(1)) != pattype || pattype == Tuint32_t(0) { 25791 *(*Tsize_t)(unsafe.Pointer(bufflenptr)) = uint64(0) // Error offset 25792 return -34 25793 } 25794 25795 if plength == libc.CplUint64(uint64(0)) { 25796 plength = X_pcre2_strlen_8(tls, pattern) 25797 } 25798 if ccontext == uintptr(0) { 25799 ccontext = uintptr(unsafe.Pointer(&X_pcre2_default_convert_context_8)) 25800 } 25801 25802 // Check UTF if required. 25803 25804 if utf != 0 && options&DPCRE2_CONVERT_NO_UTF_CHECK == Tuint32_t(0) { 25805 // var erroroffset Tsize_t at bp+104, 8 25806 25807 rc = X_pcre2_valid_utf_8(tls, pattern, plength, bp+104) 25808 if rc != 0 { 25809 *(*Tsize_t)(unsafe.Pointer(bufflenptr)) = *(*Tsize_t)(unsafe.Pointer(bp + 104 /* erroroffset */)) 25810 return rc 25811 } 25812 } 25813 25814 // If buffptr is not NULL, and what it points to is not NULL, we are being 25815 // provided with a buffer and a length, so set them as the buffer to use. 25816 25817 if buffptr != uintptr(0) && *(*uintptr)(unsafe.Pointer(buffptr)) != uintptr(0) { 25818 use_buffer = *(*uintptr)(unsafe.Pointer(buffptr)) 25819 use_length = *(*Tsize_t)(unsafe.Pointer(bufflenptr)) 25820 } 25821 25822 // Call an individual converter, either just once (if a buffer was provided or 25823 // just the length is needed), or twice (if a memory allocation is required). 25824 25825 for i = 0; i < 2; i++ { 25826 var allocated uintptr 25827 var dummyrun TBOOL = libc.Bool32(buffptr == uintptr(0) || *(*uintptr)(unsafe.Pointer(buffptr)) == uintptr(0)) 25828 25829 switch pattype { 25830 case DPCRE2_CONVERT_GLOB: 25831 rc = convert_glob(tls, options&libc.CplUint32(DPCRE2_CONVERT_GLOB), pattern, plength, utf, 25832 use_buffer, use_length, bufflenptr, dummyrun, ccontext) 25833 break 25834 25835 case DPCRE2_CONVERT_POSIX_BASIC: 25836 fallthrough 25837 case DPCRE2_CONVERT_POSIX_EXTENDED: 25838 rc = convert_posix(tls, pattype, pattern, plength, utf, use_buffer, use_length, 25839 bufflenptr, dummyrun, ccontext) 25840 break 25841 25842 default: 25843 *(*Tsize_t)(unsafe.Pointer(bufflenptr)) = uint64(0) // Error offset 25844 return -44 25845 } 25846 25847 if rc != 0 || buffptr == uintptr(0) || *(*uintptr)(unsafe.Pointer(buffptr)) != uintptr(0) { // Buffer was provided or allocated 25848 return rc 25849 } 25850 25851 // Allocate memory for the buffer, with hidden space for an allocator at 25852 // the start. The next time round the loop runs the conversion for real. 25853 25854 allocated = X_pcre2_memctl_malloc_8(tls, uint64(unsafe.Sizeof(Tpcre2_memctl{}))+(*(*Tsize_t)(unsafe.Pointer(bufflenptr))+uint64(1))*uint64(DPCRE2_CODE_UNIT_WIDTH), ccontext) 25855 if allocated == uintptr(0) { 25856 return -48 25857 } 25858 *(*uintptr)(unsafe.Pointer(buffptr)) = allocated + uintptr(uint64(unsafe.Sizeof(Tpcre2_memctl{}))) 25859 25860 use_buffer = *(*uintptr)(unsafe.Pointer(buffptr)) 25861 use_length = *(*Tsize_t)(unsafe.Pointer(bufflenptr)) + uint64(1) 25862 } 25863 25864 // Control should never get here. 25865 25866 return -44 25867 } 25868 25869 // ************************************************ 25870 // 25871 // Free converted pattern * 25872 // 25873 25874 // This frees a converted pattern that was put in newly-allocated memory. 25875 // 25876 // Argument: the converted pattern 25877 // Returns: nothing 25878 25879 func Xpcre2_converted_pattern_free_8(tls *libc.TLS, converted uintptr) { /* pcre2_convert.c:1172:1: */ 25880 if converted != uintptr(0) { 25881 var memctl uintptr = converted - uintptr(uint64(unsafe.Sizeof(Tpcre2_memctl{}))) 25882 (*struct { 25883 f func(*libc.TLS, uintptr, uintptr) 25884 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_memctl)(unsafe.Pointer(memctl)).Ffree})).f(tls, memctl, (*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmemory_data) 25885 } 25886 } 25887 25888 // End of pcre2_convert.c 25889 25890 // This function is needed only when memmove() is not available. 25891 25892 // End of pcre2_internal.h 25893 25894 // ************************************************ 25895 // 25896 // Code parameters and static tables * 25897 // 25898 25899 // These are offsets that are used to turn the OP_TYPESTAR and friends opcodes 25900 // into others, under special conditions. A gap of 20 between the blocks should be 25901 // enough. The resulting opcodes don't have to be less than 256 because they are 25902 // never stored, so we push them well clear of the normal opcodes. 25903 25904 // This table identifies those opcodes that are followed immediately by a 25905 // character that is to be tested in some way. This makes it possible to 25906 // centralize the loading of these characters. In the case of Type * etc, the 25907 // "character" is the opcode for \D, \d, \S, \s, \W, or \w, which will always be a 25908 // small value. Non-zero values in the table are the offsets from the opcode where 25909 // the character is to be found. ***NOTE*** If the start of this table is 25910 // modified, the three tables that follow must also be modified. 25911 25912 var coptable = [168]Tuint8_t{ 25913 Tuint8_t(0), // End 25914 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // \A, \G, \K, \B, \b 25915 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // \D, \d, \S, \s, \W, \w 25916 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // Any, AllAny, Anybyte 25917 Tuint8_t(0), Tuint8_t(0), // \P, \p 25918 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // \R, \H, \h, \V, \v 25919 Tuint8_t(0), // \X 25920 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // \Z, \z, $, $M, ^, ^M 25921 Tuint8_t(1), // Char 25922 Tuint8_t(1), // Chari 25923 Tuint8_t(1), // not 25924 Tuint8_t(1), // noti 25925 // Positive single-char repeats 25926 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // *, *?, +, +?, ?, ?? 25927 Tuint8_t(1 + DIMM2_SIZE), Tuint8_t(1 + DIMM2_SIZE), 25928 Tuint8_t(1 + DIMM2_SIZE), 25929 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1 + DIMM2_SIZE), 25930 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // *I, *?I, +I, +?I, ?I, ??I 25931 Tuint8_t(1 + DIMM2_SIZE), Tuint8_t(1 + DIMM2_SIZE), 25932 Tuint8_t(1 + DIMM2_SIZE), 25933 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1 + DIMM2_SIZE), 25934 // Negative single-char repeats - only for chars < 256 25935 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // NOT *, *?, +, +?, ?, ?? 25936 Tuint8_t(1 + DIMM2_SIZE), Tuint8_t(1 + DIMM2_SIZE), 25937 Tuint8_t(1 + DIMM2_SIZE), 25938 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1 + DIMM2_SIZE), 25939 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // NOT *I, *?I, +I, +?I, ?I, ??I 25940 Tuint8_t(1 + DIMM2_SIZE), Tuint8_t(1 + DIMM2_SIZE), 25941 Tuint8_t(1 + DIMM2_SIZE), 25942 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1 + DIMM2_SIZE), 25943 // Positive type repeats 25944 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // Type *, *?, +, +?, ?, ?? 25945 Tuint8_t(1 + DIMM2_SIZE), Tuint8_t(1 + DIMM2_SIZE), 25946 Tuint8_t(1 + DIMM2_SIZE), 25947 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1 + DIMM2_SIZE), 25948 // Character class & ref repeats 25949 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // *, *?, +, +?, ?, ?? 25950 Tuint8_t(0), Tuint8_t(0), // CRRANGE, CRMINRANGE 25951 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // Possessive *+, ++, ?+, CRPOSRANGE 25952 Tuint8_t(0), // CLASS 25953 Tuint8_t(0), // NCLASS 25954 Tuint8_t(0), // XCLASS - variable length 25955 Tuint8_t(0), // REF 25956 Tuint8_t(0), // REFI 25957 Tuint8_t(0), // DNREF 25958 Tuint8_t(0), // DNREFI 25959 Tuint8_t(0), // RECURSE 25960 Tuint8_t(0), // CALLOUT 25961 Tuint8_t(0), // CALLOUT_STR 25962 Tuint8_t(0), // Alt 25963 Tuint8_t(0), // Ket 25964 Tuint8_t(0), // KetRmax 25965 Tuint8_t(0), // KetRmin 25966 Tuint8_t(0), // KetRpos 25967 Tuint8_t(0), // Reverse 25968 Tuint8_t(0), // Assert 25969 Tuint8_t(0), // Assert not 25970 Tuint8_t(0), // Assert behind 25971 Tuint8_t(0), // Assert behind not 25972 Tuint8_t(0), // NA assert 25973 Tuint8_t(0), // NA assert behind 25974 Tuint8_t(0), // ONCE 25975 Tuint8_t(0), // SCRIPT_RUN 25976 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // BRA, BRAPOS, CBRA, CBRAPOS, COND 25977 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // SBRA, SBRAPOS, SCBRA, SCBRAPOS, SCOND 25978 Tuint8_t(0), Tuint8_t(0), // CREF, DNCREF 25979 Tuint8_t(0), Tuint8_t(0), // RREF, DNRREF 25980 Tuint8_t(0), Tuint8_t(0), // FALSE, TRUE 25981 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // BRAZERO, BRAMINZERO, BRAPOSZERO 25982 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // MARK, PRUNE, PRUNE_ARG 25983 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // SKIP, SKIP_ARG, THEN, THEN_ARG 25984 Tuint8_t(0), Tuint8_t(0), // COMMIT, COMMIT_ARG 25985 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // FAIL, ACCEPT, ASSERT_ACCEPT 25986 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // CLOSE, SKIPZERO, DEFINE 25987 } /* pcre2_dfa_match.c:116:22 */ 25988 25989 // This table identifies those opcodes that inspect a character. It is used to 25990 // remember the fact that a character could have been inspected when the end of 25991 // the subject is reached. ***NOTE*** If the start of this table is modified, the 25992 // two tables that follow must also be modified. 25993 25994 var poptable = [168]Tuint8_t{ 25995 Tuint8_t(0), // End 25996 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(1), Tuint8_t(1), // \A, \G, \K, \B, \b 25997 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // \D, \d, \S, \s, \W, \w 25998 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // Any, AllAny, Anybyte 25999 Tuint8_t(1), Tuint8_t(1), // \P, \p 26000 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // \R, \H, \h, \V, \v 26001 Tuint8_t(1), // \X 26002 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // \Z, \z, $, $M, ^, ^M 26003 Tuint8_t(1), // Char 26004 Tuint8_t(1), // Chari 26005 Tuint8_t(1), // not 26006 Tuint8_t(1), // noti 26007 // Positive single-char repeats 26008 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // *, *?, +, +?, ?, ?? 26009 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // upto, minupto, exact 26010 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // *+, ++, ?+, upto+ 26011 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // *I, *?I, +I, +?I, ?I, ??I 26012 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // upto I, minupto I, exact I 26013 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // *+I, ++I, ?+I, upto+I 26014 // Negative single-char repeats - only for chars < 256 26015 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // NOT *, *?, +, +?, ?, ?? 26016 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // NOT upto, minupto, exact 26017 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // NOT *+, ++, ?+, upto+ 26018 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // NOT *I, *?I, +I, +?I, ?I, ??I 26019 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // NOT upto I, minupto I, exact I 26020 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // NOT *+I, ++I, ?+I, upto+I 26021 // Positive type repeats 26022 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // Type *, *?, +, +?, ?, ?? 26023 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // Type upto, minupto, exact 26024 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // Type *+, ++, ?+, upto+ 26025 // Character class & ref repeats 26026 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // *, *?, +, +?, ?, ?? 26027 Tuint8_t(1), Tuint8_t(1), // CRRANGE, CRMINRANGE 26028 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), // Possessive *+, ++, ?+, CRPOSRANGE 26029 Tuint8_t(1), // CLASS 26030 Tuint8_t(1), // NCLASS 26031 Tuint8_t(1), // XCLASS - variable length 26032 Tuint8_t(0), // REF 26033 Tuint8_t(0), // REFI 26034 Tuint8_t(0), // DNREF 26035 Tuint8_t(0), // DNREFI 26036 Tuint8_t(0), // RECURSE 26037 Tuint8_t(0), // CALLOUT 26038 Tuint8_t(0), // CALLOUT_STR 26039 Tuint8_t(0), // Alt 26040 Tuint8_t(0), // Ket 26041 Tuint8_t(0), // KetRmax 26042 Tuint8_t(0), // KetRmin 26043 Tuint8_t(0), // KetRpos 26044 Tuint8_t(0), // Reverse 26045 Tuint8_t(0), // Assert 26046 Tuint8_t(0), // Assert not 26047 Tuint8_t(0), // Assert behind 26048 Tuint8_t(0), // Assert behind not 26049 Tuint8_t(0), // NA assert 26050 Tuint8_t(0), // NA assert behind 26051 Tuint8_t(0), // ONCE 26052 Tuint8_t(0), // SCRIPT_RUN 26053 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // BRA, BRAPOS, CBRA, CBRAPOS, COND 26054 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // SBRA, SBRAPOS, SCBRA, SCBRAPOS, SCOND 26055 Tuint8_t(0), Tuint8_t(0), // CREF, DNCREF 26056 Tuint8_t(0), Tuint8_t(0), // RREF, DNRREF 26057 Tuint8_t(0), Tuint8_t(0), // FALSE, TRUE 26058 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // BRAZERO, BRAMINZERO, BRAPOSZERO 26059 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // MARK, PRUNE, PRUNE_ARG 26060 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // SKIP, SKIP_ARG, THEN, THEN_ARG 26061 Tuint8_t(0), Tuint8_t(0), // COMMIT, COMMIT_ARG 26062 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // FAIL, ACCEPT, ASSERT_ACCEPT 26063 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), // CLOSE, SKIPZERO, DEFINE 26064 } /* pcre2_dfa_match.c:198:22 */ 26065 26066 // These 2 tables allow for compact code for testing for \D, \d, \S, \s, \W, 26067 // and \w 26068 26069 var toptable1 = [14]Tuint8_t{ 26070 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), 26071 Tuint8_t(Dctype_digit), Tuint8_t(Dctype_digit), 26072 Tuint8_t(Dctype_space), Tuint8_t(Dctype_space), 26073 Tuint8_t(Dctype_word), Tuint8_t(Dctype_word), 26074 Tuint8_t(0), Tuint8_t(0), // OP_ANY, OP_ALLANY 26075 } /* pcre2_dfa_match.c:273:22 */ 26076 26077 var toptable2 = [14]Tuint8_t{ 26078 Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), Tuint8_t(0), 26079 Tuint8_t(Dctype_digit), Tuint8_t(0), 26080 Tuint8_t(Dctype_space), Tuint8_t(0), 26081 Tuint8_t(Dctype_word), Tuint8_t(0), 26082 Tuint8_t(1), Tuint8_t(1), // OP_ANY, OP_ALLANY 26083 } /* pcre2_dfa_match.c:281:22 */ 26084 26085 // Structure for holding data about a particular state, which is in effect the 26086 // current data for an active path through the match tree. It must consist 26087 // entirely of ints because the working vector we are passed, and which we put 26088 // these structures in, is a vector of ints. 26089 26090 type Sstateblock = struct { 26091 Foffset int32 26092 Fcount int32 26093 Fdata int32 26094 } /* pcre2_dfa_match.c:295:9 */ 26095 26096 // Structure for holding data about a particular state, which is in effect the 26097 // current data for an active path through the match tree. It must consist 26098 // entirely of ints because the working vector we are passed, and which we put 26099 // these structures in, is a vector of ints. 26100 26101 type Tstateblock = Sstateblock /* pcre2_dfa_match.c:299:3 */ 26102 26103 // Before version 10.32 the recursive calls of internal_dfa_match() were passed 26104 // local working space and output vectors that were created on the stack. This has 26105 // caused issues for some patterns, especially in small-stack environments such as 26106 // Windows. A new scheme is now in use which sets up a vector on the stack, but if 26107 // this is too small, heap memory is used, up to the heap_limit. The main 26108 // parameters are all numbers of ints because the workspace is a vector of ints. 26109 // 26110 // The size of the starting stack vector, DFA_START_RWS_SIZE, is in bytes, and is 26111 // defined in pcre2_internal.h so as to be available to pcre2test when it is 26112 // finding the minimum heap requirement for a match. 26113 26114 // This structure is at the start of each workspace block. 26115 26116 type SRWS_anchor = struct { 26117 Fnext uintptr 26118 Fsize Tuint32_t 26119 Ffree Tuint32_t 26120 } /* pcre2_dfa_match.c:324:9 */ 26121 26122 // Before version 10.32 the recursive calls of internal_dfa_match() were passed 26123 // local working space and output vectors that were created on the stack. This has 26124 // caused issues for some patterns, especially in small-stack environments such as 26125 // Windows. A new scheme is now in use which sets up a vector on the stack, but if 26126 // this is too small, heap memory is used, up to the heap_limit. The main 26127 // parameters are all numbers of ints because the workspace is a vector of ints. 26128 // 26129 // The size of the starting stack vector, DFA_START_RWS_SIZE, is in bytes, and is 26130 // defined in pcre2_internal.h so as to be available to pcre2test when it is 26131 // finding the minimum heap requirement for a match. 26132 26133 // This structure is at the start of each workspace block. 26134 26135 type TRWS_anchor = SRWS_anchor /* pcre2_dfa_match.c:328:3 */ 26136 26137 // ************************************************ 26138 // 26139 // Process a callout * 26140 // 26141 26142 // This function is called to perform a callout. 26143 // 26144 // Arguments: 26145 // code current code pointer 26146 // offsets points to current capture offsets 26147 // current_subject start of current subject match 26148 // ptr current position in subject 26149 // mb the match block 26150 // extracode extra code offset when called from condition 26151 // lengthptr where to return the callout length 26152 // 26153 // Returns: the return from the callout 26154 26155 func do_callout(tls *libc.TLS, code TPCRE2_SPTR8, offsets uintptr, current_subject TPCRE2_SPTR8, ptr TPCRE2_SPTR8, mb uintptr, extracode Tsize_t, lengthptr uintptr) int32 { /* pcre2_dfa_match.c:353:1: */ 26156 var cb uintptr = (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fcb 26157 26158 *(*Tsize_t)(unsafe.Pointer(lengthptr)) = func() uint64 { 26159 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(extracode)))) == OP_CALLOUT { 26160 return Tsize_t(X_pcre2_OP_lengths_8[OP_CALLOUT]) 26161 } 26162 return Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(uint64(1+2*DLINK_SIZE)+extracode))))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(uint64(1+2*DLINK_SIZE)+extracode+uint64(1))))))) 26163 }() 26164 26165 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fcallout == uintptr(0) { 26166 return 0 26167 } // No callout provided 26168 26169 // Fixed fields in the callout block are set once and for all at the start of 26170 // matching. 26171 26172 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Foffset_vector = offsets 26173 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fstart_match = Tsize_t((int64(current_subject) - int64((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject)) / 1) 26174 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcurrent_position = Tsize_t((int64(ptr) - int64((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject)) / 1) 26175 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fpattern_position = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(uint64(1)+extracode))))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(uint64(1)+extracode+uint64(1))))))) 26176 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fnext_item_length = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(uint64(1+DLINK_SIZE)+extracode))))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(uint64(1+DLINK_SIZE)+extracode+uint64(1))))))) 26177 26178 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(extracode)))) == OP_CALLOUT { 26179 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_number = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(uint64(1+2*DLINK_SIZE)+extracode)))) 26180 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string_offset = uint64(0) 26181 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string = uintptr(0) 26182 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string_length = uint64(0) 26183 } else { 26184 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_number = Tuint32_t(0) 26185 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string_offset = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(uint64(1+3*DLINK_SIZE)+extracode))))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(uint64(1+3*DLINK_SIZE)+extracode+uint64(1))))))) 26186 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string = code + uintptr(uint64(1+4*DLINK_SIZE)+extracode) + uintptr(1) 26187 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string_length = *(*Tsize_t)(unsafe.Pointer(lengthptr)) - uint64(1+4*DLINK_SIZE) - uint64(2) 26188 } 26189 26190 return (*struct { 26191 f func(*libc.TLS, uintptr, uintptr) int32 26192 })(unsafe.Pointer(&struct{ uintptr }{(*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fcallout})).f(tls, cb, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fcallout_data) 26193 } 26194 26195 // ************************************************ 26196 // 26197 // Expand local workspace memory * 26198 // 26199 26200 // This function is called when internal_dfa_match() is about to be called 26201 // recursively and there is insufficient working space left in the current 26202 // workspace block. If there's an existing next block, use it; otherwise get a new 26203 // block unless the heap limit is reached. 26204 // 26205 // Arguments: 26206 // rwsptr pointer to block pointer (updated) 26207 // ovecsize space needed for an ovector 26208 // mb the match block 26209 // 26210 // Returns: 0 rwsptr has been updated 26211 // !0 an error code 26212 26213 func more_workspace(tls *libc.TLS, rwsptr uintptr, ovecsize uint32, mb uintptr) int32 { /* pcre2_dfa_match.c:413:1: */ 26214 var rws uintptr = *(*uintptr)(unsafe.Pointer(rwsptr)) 26215 var new uintptr 26216 26217 if (*TRWS_anchor)(unsafe.Pointer(rws)).Fnext != uintptr(0) { 26218 new = (*TRWS_anchor)(unsafe.Pointer(rws)).Fnext 26219 } else { 26220 var newsize Tuint32_t 26221 if (*TRWS_anchor)(unsafe.Pointer(rws)).Fsize >= 4294967295/uint32(2) { 26222 newsize = 4294967295 / uint32(2) 26223 } else { 26224 newsize = (*TRWS_anchor)(unsafe.Pointer(rws)).Fsize * Tuint32_t(2) 26225 } 26226 var newsizeK Tuint32_t = Tuint32_t(uint64(newsize) / (uint64(1024) / uint64(unsafe.Sizeof(int32(0))))) 26227 26228 if Tsize_t(newsizeK)+(*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fheap_used > (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fheap_limit { 26229 newsizeK = Tuint32_t((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fheap_limit - (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fheap_used) 26230 } 26231 newsize = Tuint32_t(uint64(newsizeK) * (uint64(1024) / uint64(unsafe.Sizeof(int32(0))))) 26232 26233 if uint64(newsize) < uint64(uint32(DRWS_RSIZE)+ovecsize)+uint64(unsafe.Sizeof(TRWS_anchor{}))/uint64(unsafe.Sizeof(int32(0))) { 26234 return -63 26235 } 26236 new = (*struct { 26237 f func(*libc.TLS, Tsize_t, uintptr) uintptr 26238 })(unsafe.Pointer(&struct{ uintptr }{(*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmemctl.Fmalloc})).f(tls, uint64(newsize)*uint64(unsafe.Sizeof(int32(0))), (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmemctl.Fmemory_data) 26239 if new == uintptr(0) { 26240 return -48 26241 } 26242 *(*Tsize_t)(unsafe.Pointer(mb + 88)) += Tsize_t(newsizeK) 26243 (*TRWS_anchor)(unsafe.Pointer(new)).Fnext = uintptr(0) 26244 (*TRWS_anchor)(unsafe.Pointer(new)).Fsize = newsize 26245 (*TRWS_anchor)(unsafe.Pointer(rws)).Fnext = new 26246 } 26247 26248 (*TRWS_anchor)(unsafe.Pointer(new)).Ffree = Tuint32_t(uint64((*TRWS_anchor)(unsafe.Pointer(new)).Fsize) - uint64(unsafe.Sizeof(TRWS_anchor{}))/uint64(unsafe.Sizeof(int32(0)))) 26249 *(*uintptr)(unsafe.Pointer(rwsptr)) = new 26250 return 0 26251 } 26252 26253 // ************************************************ 26254 // 26255 // Match a Regular Expression - DFA engine * 26256 // 26257 26258 // This internal function applies a compiled pattern to a subject string, 26259 // starting at a given point, using a DFA engine. This function is called from the 26260 // external one, possibly multiple times if the pattern is not anchored. The 26261 // function calls itself recursively for some kinds of subpattern. 26262 // 26263 // Arguments: 26264 // mb the match_data block with fixed information 26265 // this_start_code the opening bracket of this subexpression's code 26266 // current_subject where we currently are in the subject string 26267 // start_offset start offset in the subject string 26268 // offsets vector to contain the matching string offsets 26269 // offsetcount size of same 26270 // workspace vector of workspace 26271 // wscount size of same 26272 // rlevel function call recursion level 26273 // 26274 // Returns: > 0 => number of match offset pairs placed in offsets 26275 // = 0 => offsets overflowed; longest matches are present 26276 // -1 => failed to match 26277 // < -1 => some kind of unexpected problem 26278 // 26279 // The following macros are used for adding states to the two state vectors (one 26280 // for the current character, one for the following character). 26281 26282 // And now, here is the code 26283 26284 func internal_dfa_match(tls *libc.TLS, mb uintptr, this_start_code TPCRE2_SPTR8, current_subject TPCRE2_SPTR8, start_offset Tsize_t, offsets uintptr, offsetcount Tuint32_t, workspace uintptr, wscount int32, rlevel Tuint32_t, RWS uintptr) int32 { /* pcre2_dfa_match.c:522:1: */ 26285 bp := tls.Alloc(96) 26286 defer tls.Free(96) 26287 26288 var active_states uintptr 26289 var new_states uintptr 26290 var temp_states uintptr 26291 var next_active_state uintptr 26292 var next_new_state uintptr 26293 var ctypes uintptr 26294 var lcc uintptr 26295 var fcc uintptr 26296 var ptr TPCRE2_SPTR8 26297 var end_code TPCRE2_SPTR8 26298 // var new_recursive Tdfa_recursion_info at bp+48, 24 26299 26300 var active_count int32 26301 var new_count int32 26302 var match_count int32 26303 26304 // Some fields in the mb block are frequently referenced, so we load them into 26305 // independent variables in the hope that this will perform better. 26306 26307 var start_subject TPCRE2_SPTR8 26308 var end_subject TPCRE2_SPTR8 26309 var start_code TPCRE2_SPTR8 26310 var utf TBOOL 26311 var utf_or_ucp TBOOL 26312 var reset_could_continue TBOOL 26313 var back Tsize_t 26314 var current_offset Tsize_t 26315 var bstate int32 26316 var revlen Tuint32_t 26317 var back1 Tsize_t 26318 var max_back Tsize_t 26319 var gone_back Tsize_t 26320 var length int32 26321 var cat Tuint32_t 26322 var temp TPCRE2_SPTR8 26323 var temp1 TPCRE2_SPTR8 26324 var cat1 Tuint32_t 26325 var left_word int32 26326 var right_word int32 26327 var OK TBOOL 26328 var cp uintptr 26329 var prop uintptr 26330 var OK1 TBOOL 26331 var cp1 uintptr 26332 var prop1 uintptr 26333 // var ncount int32 at bp, 4 26334 26335 var ncount1 int32 26336 var OK2 TBOOL 26337 var OK3 TBOOL 26338 var OK4 TBOOL 26339 var cp2 uintptr 26340 var prop2 uintptr 26341 // var ncount2 int32 at bp+4, 4 26342 26343 var ncount3 int32 26344 var OK5 TBOOL 26345 var OK6 TBOOL 26346 var OK7 TBOOL 26347 var cp3 uintptr 26348 var prop3 uintptr 26349 var nptr TPCRE2_SPTR8 26350 // var ncount4 int32 at bp+8, 4 26351 26352 var ncount5 int32 26353 var OK8 TBOOL 26354 var OK9 TBOOL 26355 var othercase uint32 26356 // var ncount6 int32 at bp+12, 4 26357 26358 var nptr1 TPCRE2_SPTR8 26359 var otherd Tuint32_t 26360 var otherd1 Tuint32_t 26361 var otherd2 Tuint32_t 26362 var otherd3 Tuint32_t 26363 var otherd4 Tuint32_t 26364 var otherd5 Tuint32_t 26365 var max int32 26366 var isinclass TBOOL 26367 var next_state_offset int32 26368 var ecode TPCRE2_SPTR8 26369 var rc int32 26370 var local_workspace uintptr 26371 var local_offsets uintptr 26372 var endasscode TPCRE2_SPTR8 26373 // var rws uintptr at bp+16, 8 26374 26375 // var callout_length Tsize_t at bp+24, 8 26376 26377 var value uint32 26378 var rc1 int32 26379 var local_workspace1 uintptr 26380 var local_offsets1 uintptr 26381 var asscode TPCRE2_SPTR8 26382 var endasscode1 TPCRE2_SPTR8 26383 // var rws1 uintptr at bp+32, 8 26384 26385 var codelink int32 26386 var condcode TPCRE2_UCHAR8 26387 var p TPCRE2_SPTR8 26388 var pp TPCRE2_SPTR8 26389 var charcount Tsize_t 26390 var rc2 int32 26391 var local_workspace2 uintptr 26392 var local_offsets2 uintptr 26393 // var rws2 uintptr at bp+40, 8 26394 26395 var ri uintptr 26396 var callpat TPCRE2_SPTR8 26397 var recno Tuint32_t 26398 var p1 TPCRE2_SPTR8 26399 var pp1 TPCRE2_SPTR8 26400 var end_subpattern TPCRE2_SPTR8 26401 var next_state_offset1 int32 26402 var rc3 int32 26403 var local_workspace3 uintptr 26404 var local_offsets3 uintptr 26405 var charcount1 Tsize_t 26406 var matched_count Tsize_t 26407 var local_ptr TPCRE2_SPTR8 26408 // var rws3 uintptr at bp+72, 8 26409 26410 var allow_zero TBOOL 26411 var p2 TPCRE2_SPTR8 26412 var pp2 TPCRE2_SPTR8 26413 var end_subpattern1 TPCRE2_SPTR8 26414 var charcount2 Tsize_t 26415 var next_state_offset2 int32 26416 var repeat_state_offset int32 26417 var rc4 int32 26418 var local_workspace4 uintptr 26419 var local_offsets4 uintptr 26420 // var rws4 uintptr at bp+80, 8 26421 26422 // var callout_length1 Tsize_t at bp+88, 8 26423 26424 var current_state uintptr 26425 var caseless TBOOL 26426 var code TPCRE2_SPTR8 26427 var codevalue Tuint32_t 26428 var state_offset int32 26429 var rrc int32 26430 var count int32 26431 var i int32 26432 var j int32 26433 var clen int32 26434 var dlen int32 26435 var c Tuint32_t 26436 var d Tuint32_t 26437 var forced_fail int32 26438 var partial_newline TBOOL 26439 var could_continue TBOOL 26440 start_subject = (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject 26441 end_subject = (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject 26442 start_code = (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_code 26443 utf = libc.Bool32((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_UTF != Tuint32_t(0)) 26444 utf_or_ucp = libc.Bool32(utf != 0 || (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_UCP != Tuint32_t(0)) 26445 reset_could_continue = DFALSE 26446 26447 if !(libc.PostIncUint32(&(*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_call_count, 1) >= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_limit) { 26448 goto __1 26449 } 26450 return -47 26451 __1: 26452 ; 26453 if !(libc.PostIncUint32(&rlevel, 1) > (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_limit_depth) { 26454 goto __2 26455 } 26456 return -53 26457 __2: 26458 ; 26459 offsetcount = offsetcount & libc.Uint32(libc.Uint32FromInt32(-2)) // Round down 26460 26461 wscount = wscount - 2 26462 wscount = (wscount - wscount%(int32(uint64(unsafe.Sizeof(Tstateblock{}))/uint64(unsafe.Sizeof(int32(0))))*2)) / (2 * int32(uint64(unsafe.Sizeof(Tstateblock{}))/uint64(unsafe.Sizeof(int32(0))))) 26463 26464 ctypes = (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Ftables + uintptr(Dcbits_offset+Dcbit_length) 26465 lcc = (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Ftables + uintptr(Dlcc_offset) 26466 fcc = (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Ftables + uintptr(Dfcc_offset) 26467 26468 match_count = -1 // A negative number 26469 26470 active_states = workspace + uintptr(2)*4 26471 next_new_state = libc.AssignUintptr(&new_states, active_states+uintptr(wscount)*12) 26472 new_count = 0 26473 26474 // The first thing in any (sub) pattern is a bracket of some sort. Push all 26475 // the alternative states onto the list, and find out where the end is. This 26476 // makes is possible to use this function recursively, when we want to stop at a 26477 // matching internal ket rather than at the end. 26478 // 26479 // If we are dealing with a backward assertion we have to find out the maximum 26480 // amount to move back, and set up each alternative appropriately. 26481 26482 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(this_start_code))) == OP_ASSERTBACK || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(this_start_code))) == OP_ASSERTBACK_NOT) { 26483 goto __3 26484 } 26485 26486 max_back = uint64(0) 26487 26488 end_code = this_start_code 26489 __5: 26490 26491 back = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 4)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 5))))) 26492 if !(back > max_back) { 26493 goto __8 26494 } 26495 max_back = back 26496 __8: 26497 ; 26498 end_code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 2))))) 26499 goto __6 26500 __6: 26501 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code))) == OP_ALT { 26502 goto __5 26503 } 26504 goto __7 26505 __7: 26506 ; 26507 26508 // If we can't go back the amount required for the longest lookbehind 26509 // pattern, go back as far as we can; some alternatives may still be viable. 26510 26511 // In character mode we have to step back character by character 26512 26513 if !(utf != 0) { 26514 goto __9 26515 } 26516 26517 gone_back = uint64(0) 26518 __11: 26519 if !(gone_back < max_back) { 26520 goto __13 26521 } 26522 26523 if !(current_subject <= start_subject) { 26524 goto __14 26525 } 26526 goto __13 26527 __14: 26528 ; 26529 current_subject-- 26530 __15: 26531 if !(current_subject > start_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(current_subject)))&0xc0 == 0x80) { 26532 goto __16 26533 } 26534 current_subject-- 26535 goto __15 26536 __16: 26537 ; 26538 goto __12 26539 __12: 26540 gone_back++ 26541 goto __11 26542 goto __13 26543 __13: 26544 ; 26545 goto __10 26546 __9: 26547 26548 /* In byte-mode we can do this quickly. */ 26549 26550 current_offset = Tsize_t((int64(current_subject) - int64(start_subject)) / 1) 26551 if current_offset < max_back { 26552 gone_back = current_offset 26553 } else { 26554 gone_back = max_back 26555 } 26556 current_subject -= TPCRE2_SPTR8(gone_back) 26557 __10: 26558 ; 26559 26560 // Save the earliest consulted character 26561 26562 if !(current_subject < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr) { 26563 goto __17 26564 } 26565 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr = current_subject 26566 __17: 26567 ; 26568 26569 // Now we can process the individual branches. There will be an OP_REVERSE at 26570 // the start of each branch, except when the length of the branch is zero. 26571 26572 end_code = this_start_code 26573 __18: 26574 26575 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 3))) == OP_REVERSE { 26576 revlen = uint32(1 + DLINK_SIZE) 26577 } else { 26578 revlen = uint32(0) 26579 } 26580 if revlen == Tuint32_t(0) { 26581 back1 = uint64(0) 26582 } else { 26583 back1 = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 4)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 5))))) 26584 } 26585 if !(back1 <= gone_back) { 26586 goto __21 26587 } 26588 26589 bstate = int32((int64(end_code)-int64(start_code))/1 + int64(1) + int64(DLINK_SIZE) + int64(revlen)) 26590 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 26591 goto __22 26592 } 26593 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -bstate 26594 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 26595 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = int32(gone_back - back1) 26596 next_new_state += 12 26597 goto __23 26598 __22: 26599 return -43 26600 __23: 26601 ; 26602 __21: 26603 ; 26604 end_code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 2))))) 26605 goto __19 26606 __19: 26607 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code))) == OP_ALT { 26608 goto __18 26609 } 26610 goto __20 26611 __20: 26612 ; 26613 goto __4 26614 __3: 26615 26616 end_code = this_start_code 26617 26618 // Restarting 26619 26620 if !(rlevel == Tuint32_t(1) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_DFA_RESTART != Tuint32_t(0)) { 26621 goto __24 26622 } 26623 26624 __26: 26625 end_code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 2))))) 26626 goto __27 26627 __27: 26628 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code))) == OP_ALT { 26629 goto __26 26630 } 26631 goto __28 26632 __28: 26633 ; 26634 new_count = *(*int32)(unsafe.Pointer(workspace + 1*4)) 26635 if !!(*(*int32)(unsafe.Pointer(workspace)) != 0) { 26636 goto __29 26637 } 26638 libc.Xmemcpy(tls, new_states, active_states, Tsize_t(new_count)*Tsize_t(unsafe.Sizeof(Tstateblock{}))) 26639 __29: 26640 ; 26641 goto __25 26642 __24: 26643 26644 length = 1 + DLINK_SIZE + func() int32 { 26645 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(this_start_code))) == OP_CBRA || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(this_start_code))) == OP_SCBRA || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(this_start_code))) == OP_CBRAPOS || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(this_start_code))) == OP_SCBRAPOS { 26646 return DIMM2_SIZE 26647 } 26648 return 0 26649 }() 26650 __30: 26651 26652 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 26653 goto __33 26654 } 26655 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = int32((int64(end_code)-int64(start_code))/1 + int64(length)) 26656 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 26657 next_new_state += 12 26658 goto __34 26659 __33: 26660 return -43 26661 __34: 26662 ; 26663 end_code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code + 2))))) 26664 length = 1 + DLINK_SIZE 26665 goto __31 26666 __31: 26667 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_code))) == OP_ALT { 26668 goto __30 26669 } 26670 goto __32 26671 __32: 26672 ; 26673 __25: 26674 ; 26675 __4: 26676 ; 26677 26678 *(*int32)(unsafe.Pointer(workspace)) = 0 // Bit indicating which vector is current 26679 26680 // Loop for scanning the subject 26681 26682 ptr = current_subject 26683 __35: 26684 forced_fail = 0 26685 partial_newline = DFALSE 26686 could_continue = reset_could_continue 26687 reset_could_continue = DFALSE 26688 26689 if !(ptr > (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Flast_used_ptr) { 26690 goto __38 26691 } 26692 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Flast_used_ptr = ptr 26693 __38: 26694 ; 26695 26696 // Make the new state list into the active state list and empty the 26697 // new state list. 26698 26699 temp_states = active_states 26700 active_states = new_states 26701 new_states = temp_states 26702 active_count = new_count 26703 new_count = 0 26704 26705 *(*int32)(unsafe.Pointer(workspace)) ^= 1 // Remember for the restarting feature 26706 *(*int32)(unsafe.Pointer(workspace + 1*4)) = active_count 26707 26708 // Set the pointers for adding new states 26709 26710 next_active_state = active_states + uintptr(active_count)*12 26711 next_new_state = new_states 26712 26713 // Load the current character from the subject outside the loop, as many 26714 // different states may want to look at it, and we assume that at least one 26715 // will. 26716 26717 if !(ptr < end_subject) { 26718 goto __39 26719 } 26720 26721 clen = 1 // Number of data items in the character 26722 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) 26723 if !(utf != 0 && c >= 0xc0) { 26724 goto __41 26725 } 26726 if !(c&0x20 == Tuint32_t(0)) { 26727 goto __42 26728 } 26729 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f 26730 clen++ 26731 goto __43 26732 __42: 26733 if !(c&0x10 == Tuint32_t(0)) { 26734 goto __44 26735 } 26736 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f 26737 clen = clen + 2 26738 goto __45 26739 __44: 26740 if !(c&0x08 == Tuint32_t(0)) { 26741 goto __46 26742 } 26743 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f 26744 clen = clen + 3 26745 goto __47 26746 __46: 26747 if !(c&0x04 == Tuint32_t(0)) { 26748 goto __48 26749 } 26750 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 4)))&0x3f 26751 clen = clen + 4 26752 goto __49 26753 __48: 26754 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 5)))&0x3f 26755 clen = clen + 5 26756 __49: 26757 ; 26758 __47: 26759 ; 26760 __45: 26761 ; 26762 __43: 26763 ; 26764 __41: 26765 ; 26766 26767 goto __40 26768 __39: 26769 26770 clen = 0 // This indicates the end of the subject 26771 c = DNOTACHAR // This value should never actually be used 26772 __40: 26773 ; 26774 26775 // Scan up the active states and act on each one. The result of an action 26776 // may be to add more states to the currently active list (e.g. on hitting a 26777 // parenthesis) or it may be to put states on the new list, for considering 26778 // when we move the character pointer on. 26779 26780 i = 0 26781 __50: 26782 if !(i < active_count) { 26783 goto __52 26784 } 26785 current_state = active_states + uintptr(i)*12 26786 caseless = DFALSE 26787 state_offset = (*Tstateblock)(unsafe.Pointer(current_state)).Foffset 26788 26789 // A negative offset is a special case meaning "hold off going to this 26790 // (negated) state until the number of characters in the data field have 26791 // been skipped". If the could_continue flag was passed over from a previous 26792 // state, arrange for it to passed on. 26793 26794 if !(state_offset < 0) { 26795 goto __53 26796 } 26797 26798 if !((*Tstateblock)(unsafe.Pointer(current_state)).Fdata > 0) { 26799 goto __54 26800 } 26801 26802 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 26803 goto __56 26804 } 26805 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 26806 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount 26807 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = (*Tstateblock)(unsafe.Pointer(current_state)).Fdata - 1 26808 next_new_state += 12 26809 goto __57 26810 __56: 26811 return -43 26812 __57: 26813 ; 26814 if !(could_continue != 0) { 26815 goto __58 26816 } 26817 reset_could_continue = DTRUE 26818 __58: 26819 ; 26820 goto __51 26821 goto __55 26822 __54: 26823 26824 (*Tstateblock)(unsafe.Pointer(current_state)).Foffset = libc.AssignInt32(&state_offset, -state_offset) 26825 __55: 26826 ; 26827 __53: 26828 ; 26829 26830 // Check for a duplicate state with the same count, and skip if found. 26831 // See the note at the head of this module about the possibility of improving 26832 // performance here. 26833 26834 j = 0 26835 __59: 26836 if !(j < i) { 26837 goto __61 26838 } 26839 26840 if !((*Tstateblock)(unsafe.Pointer(active_states+uintptr(j)*12)).Foffset == state_offset && (*Tstateblock)(unsafe.Pointer(active_states+uintptr(j)*12)).Fcount == (*Tstateblock)(unsafe.Pointer(current_state)).Fcount) { 26841 goto __62 26842 } 26843 goto NEXT_ACTIVE_STATE 26844 __62: 26845 ; 26846 goto __60 26847 __60: 26848 j++ 26849 goto __59 26850 goto __61 26851 __61: 26852 ; 26853 26854 // The state offset is the offset to the opcode 26855 26856 code = start_code + uintptr(state_offset) 26857 codevalue = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) 26858 26859 // If this opcode inspects a character, but we are at the end of the 26860 // subject, remember the fact for use when testing for a partial match. 26861 26862 if !(clen == 0 && int32(poptable[codevalue]) != 0) { 26863 goto __63 26864 } 26865 could_continue = DTRUE 26866 __63: 26867 ; 26868 26869 // If this opcode is followed by an inline character, load it. It is 26870 // tempting to test for the presence of a subject character here, but that 26871 // is wrong, because sometimes zero repetitions of the subject are 26872 // permitted. 26873 // 26874 // We also use this mechanism for opcodes such as OP_TYPEPLUS that take an 26875 // argument that is not a data character - but is always one byte long because 26876 // the values are small. We have to take special action to deal with \P, \p, 26877 // \H, \h, \V, \v and \X in this case. To keep the other cases fast, convert 26878 // these ones to new opcodes. 26879 26880 if !(int32(coptable[codevalue]) > 0) { 26881 goto __64 26882 } 26883 26884 dlen = 1 26885 if !(utf != 0) { 26886 goto __66 26887 } 26888 d = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue])))) 26889 if !(d >= 0xc0) { 26890 goto __68 26891 } 26892 if !(d&0x20 == Tuint32_t(0)) { 26893 goto __69 26894 } 26895 d = d&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue]) + 1)))&0x3f 26896 dlen++ 26897 goto __70 26898 __69: 26899 if !(d&0x10 == Tuint32_t(0)) { 26900 goto __71 26901 } 26902 d = d&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue]) + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue]) + 2)))&0x3f 26903 dlen = dlen + 2 26904 goto __72 26905 __71: 26906 if !(d&0x08 == Tuint32_t(0)) { 26907 goto __73 26908 } 26909 d = d&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue]) + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue]) + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue]) + 3)))&0x3f 26910 dlen = dlen + 3 26911 goto __74 26912 __73: 26913 if !(d&0x04 == Tuint32_t(0)) { 26914 goto __75 26915 } 26916 d = d&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue]) + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue]) + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue]) + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue]) + 4)))&0x3f 26917 dlen = dlen + 4 26918 goto __76 26919 __75: 26920 d = d&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue]) + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue]) + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue]) + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue]) + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue]) + 5)))&0x3f 26921 dlen = dlen + 5 26922 __76: 26923 ; 26924 __74: 26925 ; 26926 __72: 26927 ; 26928 __70: 26929 ; 26930 __68: 26931 ; 26932 26933 goto __67 26934 __66: 26935 d = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + uintptr(coptable[codevalue])))) 26936 __67: 26937 ; 26938 if !(codevalue >= OP_TYPESTAR) { 26939 goto __77 26940 } 26941 26942 switch d { 26943 case OP_ANYBYTE: 26944 goto __79 26945 case OP_NOTPROP: 26946 goto __80 26947 case OP_PROP: 26948 goto __81 26949 case OP_ANYNL: 26950 goto __82 26951 case OP_EXTUNI: 26952 goto __83 26953 case OP_NOT_HSPACE: 26954 goto __84 26955 case OP_HSPACE: 26956 goto __85 26957 case OP_NOT_VSPACE: 26958 goto __86 26959 case OP_VSPACE: 26960 goto __87 26961 default: 26962 goto __88 26963 } 26964 goto __78 26965 26966 __79: 26967 return -42 26968 __80: 26969 __81: 26970 codevalue = codevalue + Tuint32_t(DOP_PROP_EXTRA) 26971 goto __78 26972 __82: 26973 codevalue = codevalue + Tuint32_t(DOP_ANYNL_EXTRA) 26974 goto __78 26975 __83: 26976 codevalue = codevalue + Tuint32_t(DOP_EXTUNI_EXTRA) 26977 goto __78 26978 __84: 26979 __85: 26980 codevalue = codevalue + Tuint32_t(DOP_HSPACE_EXTRA) 26981 goto __78 26982 __86: 26983 __87: 26984 codevalue = codevalue + Tuint32_t(DOP_VSPACE_EXTRA) 26985 goto __78 26986 __88: 26987 goto __78 26988 __78: 26989 ; 26990 __77: 26991 ; 26992 goto __65 26993 __64: 26994 26995 dlen = 0 // Not strictly necessary, but compilers moan 26996 d = DNOTACHAR // if these variables are not set. 26997 __65: 26998 ; 26999 27000 // Now process the individual opcodes 27001 27002 switch codevalue { 27003 // ========================================================================== 27004 // These cases are never obeyed. This is a fudge that causes a compile- 27005 // time error if the vectors coptable or poptable, which are indexed by 27006 // opcode, are not the correct length. It seems to be the only way to do 27007 // such a check at compile time, as the sizeof() operator does not work 27008 // in the C preprocessor. 27009 27010 case OP_TABLE_LENGTH: 27011 goto __90 27012 case Tuint32_t(OP_TABLE_LENGTH + libc.Bool32(uint64(unsafe.Sizeof(coptable)) == OP_TABLE_LENGTH && uint64(unsafe.Sizeof(poptable)) == OP_TABLE_LENGTH)): 27013 goto __91 27014 27015 // ========================================================================== 27016 // Reached a closing bracket. If not at the end of the pattern, carry 27017 // on with the next opcode. For repeating opcodes, also add the repeat 27018 // state. Note that KETRPOS will always be encountered at the end of the 27019 // subpattern, because the possessive subpattern repeats are always handled 27020 // using recursive calls. Thus, it never adds any new states. 27021 // 27022 // At the end of the (sub)pattern, unless we have an empty string and 27023 // PCRE2_NOTEMPTY is set, or PCRE2_NOTEMPTY_ATSTART is set and we are at the 27024 // start of the subject, save the match data, shifting up all previous 27025 // matches so we always have the longest first. 27026 27027 case OP_KET: 27028 goto __92 27029 case OP_KETRMIN: 27030 goto __93 27031 case OP_KETRMAX: 27032 goto __94 27033 case OP_KETRPOS: 27034 goto __95 27035 27036 // ========================================================================== 27037 // These opcodes add to the current list of states without looking 27038 // at the current character. 27039 27040 //----------------------------------------------------------------- 27041 case OP_ALT: 27042 goto __96 27043 27044 //----------------------------------------------------------------- 27045 case OP_BRA: 27046 goto __97 27047 case OP_SBRA: 27048 goto __98 27049 27050 //----------------------------------------------------------------- 27051 case OP_CBRA: 27052 goto __99 27053 case OP_SCBRA: 27054 goto __100 27055 27056 //----------------------------------------------------------------- 27057 case OP_BRAZERO: 27058 goto __101 27059 case OP_BRAMINZERO: 27060 goto __102 27061 27062 //----------------------------------------------------------------- 27063 case OP_SKIPZERO: 27064 goto __103 27065 27066 //----------------------------------------------------------------- 27067 case OP_CIRC: 27068 goto __104 27069 27070 //----------------------------------------------------------------- 27071 case OP_CIRCM: 27072 goto __105 27073 27074 //----------------------------------------------------------------- 27075 case OP_EOD: 27076 goto __106 27077 27078 //----------------------------------------------------------------- 27079 case OP_SOD: 27080 goto __107 27081 27082 //----------------------------------------------------------------- 27083 case OP_SOM: 27084 goto __108 27085 27086 // ========================================================================== 27087 // These opcodes inspect the next subject character, and sometimes 27088 // the previous one as well, but do not have an argument. The variable 27089 // clen contains the length of the current character and is zero if we are 27090 // at the end of the subject. 27091 27092 //----------------------------------------------------------------- 27093 case OP_ANY: 27094 goto __109 27095 27096 //----------------------------------------------------------------- 27097 case OP_ALLANY: 27098 goto __110 27099 27100 //----------------------------------------------------------------- 27101 case OP_EODN: 27102 goto __111 27103 27104 //----------------------------------------------------------------- 27105 case OP_DOLL: 27106 goto __112 27107 27108 //----------------------------------------------------------------- 27109 case OP_DOLLM: 27110 goto __113 27111 27112 //----------------------------------------------------------------- 27113 27114 case OP_DIGIT: 27115 goto __114 27116 case OP_WHITESPACE: 27117 goto __115 27118 case OP_WORDCHAR: 27119 goto __116 27120 27121 //----------------------------------------------------------------- 27122 case OP_NOT_DIGIT: 27123 goto __117 27124 case OP_NOT_WHITESPACE: 27125 goto __118 27126 case OP_NOT_WORDCHAR: 27127 goto __119 27128 27129 //----------------------------------------------------------------- 27130 case OP_WORD_BOUNDARY: 27131 goto __120 27132 case OP_NOT_WORD_BOUNDARY: 27133 goto __121 27134 27135 //----------------------------------------------------------------- 27136 // Check the next character by Unicode property. We will get here only 27137 // if the support is in the binary; otherwise a compile-time error occurs. 27138 // 27139 27140 case OP_PROP: 27141 goto __122 27142 case OP_NOTPROP: 27143 goto __123 27144 27145 // ========================================================================== 27146 // These opcodes likewise inspect the subject character, but have an 27147 // argument that is not a data character. It is one of these opcodes: 27148 // OP_ANY, OP_ALLANY, OP_DIGIT, OP_NOT_DIGIT, OP_WHITESPACE, OP_NOT_SPACE, 27149 // OP_WORDCHAR, OP_NOT_WORDCHAR. The value is loaded into d. 27150 27151 case OP_TYPEPLUS: 27152 goto __124 27153 case OP_TYPEMINPLUS: 27154 goto __125 27155 case OP_TYPEPOSPLUS: 27156 goto __126 27157 27158 //----------------------------------------------------------------- 27159 case OP_TYPEQUERY: 27160 goto __127 27161 case OP_TYPEMINQUERY: 27162 goto __128 27163 case OP_TYPEPOSQUERY: 27164 goto __129 27165 27166 //----------------------------------------------------------------- 27167 case OP_TYPESTAR: 27168 goto __130 27169 case OP_TYPEMINSTAR: 27170 goto __131 27171 case OP_TYPEPOSSTAR: 27172 goto __132 27173 27174 //----------------------------------------------------------------- 27175 case OP_TYPEEXACT: 27176 goto __133 27177 27178 //----------------------------------------------------------------- 27179 case OP_TYPEUPTO: 27180 goto __134 27181 case OP_TYPEMINUPTO: 27182 goto __135 27183 case OP_TYPEPOSUPTO: 27184 goto __136 27185 27186 // ========================================================================== 27187 // These are virtual opcodes that are used when something like 27188 // OP_TYPEPLUS has OP_PROP, OP_NOTPROP, OP_ANYNL, or OP_EXTUNI as its 27189 // argument. It keeps the code above fast for the other cases. The argument 27190 // is in the d variable. 27191 27192 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEPLUS): 27193 goto __137 27194 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEMINPLUS): 27195 goto __138 27196 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEPOSPLUS): 27197 goto __139 27198 27199 //----------------------------------------------------------------- 27200 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEPLUS): 27201 goto __140 27202 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEMINPLUS): 27203 goto __141 27204 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEPOSPLUS): 27205 goto __142 27206 27207 //----------------------------------------------------------------- 27208 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEPLUS): 27209 goto __143 27210 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEMINPLUS): 27211 goto __144 27212 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEPOSPLUS): 27213 goto __145 27214 27215 //----------------------------------------------------------------- 27216 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEPLUS): 27217 goto __146 27218 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEMINPLUS): 27219 goto __147 27220 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEPOSPLUS): 27221 goto __148 27222 27223 //----------------------------------------------------------------- 27224 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEPLUS): 27225 goto __149 27226 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEMINPLUS): 27227 goto __150 27228 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEPOSPLUS): 27229 goto __151 27230 27231 //----------------------------------------------------------------- 27232 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEQUERY): 27233 goto __152 27234 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEMINQUERY): 27235 goto __153 27236 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEPOSQUERY): 27237 goto __154 27238 27239 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPESTAR): 27240 goto __155 27241 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEMINSTAR): 27242 goto __156 27243 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEPOSSTAR): 27244 goto __157 27245 27246 //----------------------------------------------------------------- 27247 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEQUERY): 27248 goto __158 27249 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEMINQUERY): 27250 goto __159 27251 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEPOSQUERY): 27252 goto __160 27253 27254 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPESTAR): 27255 goto __161 27256 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEMINSTAR): 27257 goto __162 27258 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEPOSSTAR): 27259 goto __163 27260 27261 //----------------------------------------------------------------- 27262 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEQUERY): 27263 goto __164 27264 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEMINQUERY): 27265 goto __165 27266 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEPOSQUERY): 27267 goto __166 27268 27269 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPESTAR): 27270 goto __167 27271 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEMINSTAR): 27272 goto __168 27273 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEPOSSTAR): 27274 goto __169 27275 27276 //----------------------------------------------------------------- 27277 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEQUERY): 27278 goto __170 27279 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEMINQUERY): 27280 goto __171 27281 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEPOSQUERY): 27282 goto __172 27283 27284 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPESTAR): 27285 goto __173 27286 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEMINSTAR): 27287 goto __174 27288 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEPOSSTAR): 27289 goto __175 27290 27291 //----------------------------------------------------------------- 27292 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEQUERY): 27293 goto __176 27294 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEMINQUERY): 27295 goto __177 27296 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEPOSQUERY): 27297 goto __178 27298 27299 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPESTAR): 27300 goto __179 27301 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEMINSTAR): 27302 goto __180 27303 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEPOSSTAR): 27304 goto __181 27305 27306 //----------------------------------------------------------------- 27307 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEEXACT): 27308 goto __182 27309 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEUPTO): 27310 goto __183 27311 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEMINUPTO): 27312 goto __184 27313 case Tuint32_t(DOP_PROP_EXTRA + OP_TYPEPOSUPTO): 27314 goto __185 27315 27316 //----------------------------------------------------------------- 27317 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEEXACT): 27318 goto __186 27319 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEUPTO): 27320 goto __187 27321 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEMINUPTO): 27322 goto __188 27323 case Tuint32_t(DOP_EXTUNI_EXTRA + OP_TYPEPOSUPTO): 27324 goto __189 27325 27326 //----------------------------------------------------------------- 27327 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEEXACT): 27328 goto __190 27329 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEUPTO): 27330 goto __191 27331 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEMINUPTO): 27332 goto __192 27333 case Tuint32_t(DOP_ANYNL_EXTRA + OP_TYPEPOSUPTO): 27334 goto __193 27335 27336 //----------------------------------------------------------------- 27337 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEEXACT): 27338 goto __194 27339 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEUPTO): 27340 goto __195 27341 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEMINUPTO): 27342 goto __196 27343 case Tuint32_t(DOP_VSPACE_EXTRA + OP_TYPEPOSUPTO): 27344 goto __197 27345 27346 //----------------------------------------------------------------- 27347 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEEXACT): 27348 goto __198 27349 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEUPTO): 27350 goto __199 27351 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEMINUPTO): 27352 goto __200 27353 case Tuint32_t(DOP_HSPACE_EXTRA + OP_TYPEPOSUPTO): 27354 goto __201 27355 27356 // ========================================================================== 27357 // These opcodes are followed by a character that is usually compared 27358 // to the current subject character; it is loaded into d. We still get 27359 // here even if there is no subject character, because in some cases zero 27360 // repetitions are permitted. 27361 27362 //----------------------------------------------------------------- 27363 case OP_CHAR: 27364 goto __202 27365 27366 //----------------------------------------------------------------- 27367 case OP_CHARI: 27368 goto __203 27369 27370 //----------------------------------------------------------------- 27371 // This is a tricky one because it can match more than one character. 27372 // Find out how many characters to skip, and then set up a negative state 27373 // to wait for them to pass before continuing. 27374 27375 case OP_EXTUNI: 27376 goto __204 27377 27378 //----------------------------------------------------------------- 27379 // This is a tricky like EXTUNI because it too can match more than one 27380 // character (when CR is followed by LF). In this case, set up a negative 27381 // state to wait for one character to pass before continuing. 27382 27383 case OP_ANYNL: 27384 goto __205 27385 27386 //----------------------------------------------------------------- 27387 case OP_NOT_VSPACE: 27388 goto __206 27389 27390 //----------------------------------------------------------------- 27391 case OP_VSPACE: 27392 goto __207 27393 27394 //----------------------------------------------------------------- 27395 case OP_NOT_HSPACE: 27396 goto __208 27397 27398 //----------------------------------------------------------------- 27399 case OP_HSPACE: 27400 goto __209 27401 27402 //----------------------------------------------------------------- 27403 // Match a negated single character casefully. 27404 27405 case OP_NOT: 27406 goto __210 27407 27408 //----------------------------------------------------------------- 27409 // Match a negated single character caselessly. 27410 27411 case OP_NOTI: 27412 goto __211 27413 27414 //----------------------------------------------------------------- 27415 case OP_PLUSI: 27416 goto __212 27417 case OP_MINPLUSI: 27418 goto __213 27419 case OP_POSPLUSI: 27420 goto __214 27421 case OP_NOTPLUSI: 27422 goto __215 27423 case OP_NOTMINPLUSI: 27424 goto __216 27425 case OP_NOTPOSPLUSI: 27426 goto __217 27427 27428 // Fall through 27429 case OP_PLUS: 27430 goto __218 27431 case OP_MINPLUS: 27432 goto __219 27433 case OP_POSPLUS: 27434 goto __220 27435 case OP_NOTPLUS: 27436 goto __221 27437 case OP_NOTMINPLUS: 27438 goto __222 27439 case OP_NOTPOSPLUS: 27440 goto __223 27441 27442 //----------------------------------------------------------------- 27443 case OP_QUERYI: 27444 goto __224 27445 case OP_MINQUERYI: 27446 goto __225 27447 case OP_POSQUERYI: 27448 goto __226 27449 case OP_NOTQUERYI: 27450 goto __227 27451 case OP_NOTMINQUERYI: 27452 goto __228 27453 case OP_NOTPOSQUERYI: 27454 goto __229 27455 // Fall through 27456 case OP_QUERY: 27457 goto __230 27458 case OP_MINQUERY: 27459 goto __231 27460 case OP_POSQUERY: 27461 goto __232 27462 case OP_NOTQUERY: 27463 goto __233 27464 case OP_NOTMINQUERY: 27465 goto __234 27466 case OP_NOTPOSQUERY: 27467 goto __235 27468 27469 //----------------------------------------------------------------- 27470 case OP_STARI: 27471 goto __236 27472 case OP_MINSTARI: 27473 goto __237 27474 case OP_POSSTARI: 27475 goto __238 27476 case OP_NOTSTARI: 27477 goto __239 27478 case OP_NOTMINSTARI: 27479 goto __240 27480 case OP_NOTPOSSTARI: 27481 goto __241 27482 // Fall through 27483 case OP_STAR: 27484 goto __242 27485 case OP_MINSTAR: 27486 goto __243 27487 case OP_POSSTAR: 27488 goto __244 27489 case OP_NOTSTAR: 27490 goto __245 27491 case OP_NOTMINSTAR: 27492 goto __246 27493 case OP_NOTPOSSTAR: 27494 goto __247 27495 27496 //----------------------------------------------------------------- 27497 case OP_EXACTI: 27498 goto __248 27499 case OP_NOTEXACTI: 27500 goto __249 27501 // Fall through 27502 case OP_EXACT: 27503 goto __250 27504 case OP_NOTEXACT: 27505 goto __251 27506 27507 //----------------------------------------------------------------- 27508 case OP_UPTOI: 27509 goto __252 27510 case OP_MINUPTOI: 27511 goto __253 27512 case OP_POSUPTOI: 27513 goto __254 27514 case OP_NOTUPTOI: 27515 goto __255 27516 case OP_NOTMINUPTOI: 27517 goto __256 27518 case OP_NOTPOSUPTOI: 27519 goto __257 27520 // Fall through 27521 case OP_UPTO: 27522 goto __258 27523 case OP_MINUPTO: 27524 goto __259 27525 case OP_POSUPTO: 27526 goto __260 27527 case OP_NOTUPTO: 27528 goto __261 27529 case OP_NOTMINUPTO: 27530 goto __262 27531 case OP_NOTPOSUPTO: 27532 goto __263 27533 27534 // ========================================================================== 27535 // These are the class-handling opcodes 27536 27537 case OP_CLASS: 27538 goto __264 27539 case OP_NCLASS: 27540 goto __265 27541 case OP_XCLASS: 27542 goto __266 27543 27544 // ========================================================================== 27545 // These are the opcodes for fancy brackets of various kinds. We have 27546 // to use recursion in order to handle them. The "always failing" assertion 27547 // (?!) is optimised to OP_FAIL when compiling, so we have to support that, 27548 // though the other "backtracking verbs" are not supported. 27549 27550 case OP_FAIL: 27551 goto __267 27552 27553 case OP_ASSERT: 27554 goto __268 27555 case OP_ASSERT_NOT: 27556 goto __269 27557 case OP_ASSERTBACK: 27558 goto __270 27559 case OP_ASSERTBACK_NOT: 27560 goto __271 27561 27562 //----------------------------------------------------------------- 27563 case OP_COND: 27564 goto __272 27565 case OP_SCOND: 27566 goto __273 27567 27568 //----------------------------------------------------------------- 27569 case OP_RECURSE: 27570 goto __274 27571 27572 //----------------------------------------------------------------- 27573 case OP_BRAPOS: 27574 goto __275 27575 case OP_SBRAPOS: 27576 goto __276 27577 case OP_CBRAPOS: 27578 goto __277 27579 case OP_SCBRAPOS: 27580 goto __278 27581 case OP_BRAPOSZERO: 27582 goto __279 27583 27584 //----------------------------------------------------------------- 27585 case OP_ONCE: 27586 goto __280 27587 27588 // ========================================================================== 27589 // Handle callouts 27590 27591 case OP_CALLOUT: 27592 goto __281 27593 case OP_CALLOUT_STR: 27594 goto __282 27595 27596 // ========================================================================== 27597 default: 27598 goto __283 27599 } 27600 goto __89 27601 27602 // ========================================================================== 27603 // These cases are never obeyed. This is a fudge that causes a compile- 27604 // time error if the vectors coptable or poptable, which are indexed by 27605 // opcode, are not the correct length. It seems to be the only way to do 27606 // such a check at compile time, as the sizeof() operator does not work 27607 // in the C preprocessor. 27608 27609 __90: 27610 __91: 27611 return 0 27612 27613 // ========================================================================== 27614 // Reached a closing bracket. If not at the end of the pattern, carry 27615 // on with the next opcode. For repeating opcodes, also add the repeat 27616 // state. Note that KETRPOS will always be encountered at the end of the 27617 // subpattern, because the possessive subpattern repeats are always handled 27618 // using recursive calls. Thus, it never adds any new states. 27619 // 27620 // At the end of the (sub)pattern, unless we have an empty string and 27621 // PCRE2_NOTEMPTY is set, or PCRE2_NOTEMPTY_ATSTART is set and we are at the 27622 // start of the subject, save the match data, shifting up all previous 27623 // matches so we always have the longest first. 27624 27625 __92: 27626 __93: 27627 __94: 27628 __95: 27629 if !(code != end_code) { 27630 goto __284 27631 } 27632 27633 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27634 goto __286 27635 } 27636 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 + DLINK_SIZE 27637 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27638 next_active_state += 12 27639 goto __287 27640 __286: 27641 return -43 27642 __287: 27643 ; 27644 if !(codevalue != OP_KET) { 27645 goto __288 27646 } 27647 27648 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27649 goto __289 27650 } 27651 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset - int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 27652 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27653 next_active_state += 12 27654 goto __290 27655 __289: 27656 return -43 27657 __290: 27658 ; 27659 __288: 27660 ; 27661 goto __285 27662 __284: 27663 27664 if !(ptr > current_subject || (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_NOTEMPTY == Tuint32_t(0) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_NOTEMPTY_ATSTART == Tuint32_t(0) || current_subject > start_subject+uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_offset))) { 27665 goto __291 27666 } 27667 27668 if !(match_count < 0) { 27669 goto __292 27670 } 27671 if offsetcount >= Tuint32_t(2) { 27672 match_count = 1 27673 } else { 27674 match_count = 0 27675 } 27676 goto __293 27677 __292: 27678 if !(match_count > 0 && libc.PreIncInt32(&match_count, 1)*2 > int32(offsetcount)) { 27679 goto __294 27680 } 27681 match_count = 0 27682 __294: 27683 ; 27684 __293: 27685 ; 27686 count = func() int32 { 27687 if match_count == 0 { 27688 return int32(offsetcount) 27689 } 27690 return match_count * 2 27691 }() - 2 27692 if !(count > 0) { 27693 goto __295 27694 } 27695 libc.Xmemmove(tls, offsets+uintptr(2)*8, offsets, 27696 Tsize_t(count)*Tsize_t(unsafe.Sizeof(Tsize_t(0)))) 27697 __295: 27698 ; 27699 if !(offsetcount >= Tuint32_t(2)) { 27700 goto __296 27701 } 27702 27703 *(*Tsize_t)(unsafe.Pointer(offsets)) = Tsize_t((int64(current_subject) - int64(start_subject)) / 1) 27704 *(*Tsize_t)(unsafe.Pointer(offsets + 1*8)) = Tsize_t((int64(ptr) - int64(start_subject)) / 1) 27705 __296: 27706 ; 27707 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_DFA_SHORTEST != Tuint32_t(0)) { 27708 goto __297 27709 } 27710 return match_count 27711 __297: 27712 ; 27713 __291: 27714 ; 27715 __285: 27716 ; 27717 goto __89 27718 27719 // ========================================================================== 27720 // These opcodes add to the current list of states without looking 27721 // at the current character. 27722 27723 //----------------------------------------------------------------- 27724 __96: 27725 __298: 27726 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 27727 goto __299 27728 __299: 27729 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_ALT { 27730 goto __298 27731 } 27732 goto __300 27733 __300: 27734 ; 27735 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27736 goto __301 27737 } 27738 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = int32((int64(code) - int64(start_code)) / 1) 27739 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27740 next_active_state += 12 27741 goto __302 27742 __301: 27743 return -43 27744 __302: 27745 ; 27746 goto __89 27747 27748 //----------------------------------------------------------------- 27749 __97: 27750 __98: 27751 __303: 27752 27753 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27754 goto __306 27755 } 27756 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = int32((int64(code)-int64(start_code))/1 + int64(1) + int64(DLINK_SIZE)) 27757 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27758 next_active_state += 12 27759 goto __307 27760 __306: 27761 return -43 27762 __307: 27763 ; 27764 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 27765 goto __304 27766 __304: 27767 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_ALT { 27768 goto __303 27769 } 27770 goto __305 27771 __305: 27772 ; 27773 goto __89 27774 27775 //----------------------------------------------------------------- 27776 __99: 27777 __100: 27778 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27779 goto __308 27780 } 27781 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = int32((int64(code)-int64(start_code))/1 + int64(1) + int64(DLINK_SIZE) + int64(DIMM2_SIZE)) 27782 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27783 next_active_state += 12 27784 goto __309 27785 __308: 27786 return -43 27787 __309: 27788 ; 27789 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 27790 __310: 27791 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_ALT) { 27792 goto __311 27793 } 27794 27795 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27796 goto __312 27797 } 27798 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = int32((int64(code)-int64(start_code))/1 + int64(1) + int64(DLINK_SIZE)) 27799 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27800 next_active_state += 12 27801 goto __313 27802 __312: 27803 return -43 27804 __313: 27805 ; 27806 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 27807 goto __310 27808 __311: 27809 ; 27810 goto __89 27811 27812 //----------------------------------------------------------------- 27813 __101: 27814 __102: 27815 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27816 goto __314 27817 } 27818 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 27819 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27820 next_active_state += 12 27821 goto __315 27822 __314: 27823 return -43 27824 __315: 27825 ; 27826 code += TPCRE2_SPTR8(uint32(1) + uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))))) 27827 __316: 27828 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_ALT) { 27829 goto __317 27830 } 27831 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 27832 goto __316 27833 __317: 27834 ; 27835 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27836 goto __318 27837 } 27838 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = int32((int64(code)-int64(start_code))/1 + int64(1) + int64(DLINK_SIZE)) 27839 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27840 next_active_state += 12 27841 goto __319 27842 __318: 27843 return -43 27844 __319: 27845 ; 27846 goto __89 27847 27848 //----------------------------------------------------------------- 27849 __103: 27850 code += TPCRE2_SPTR8(uint32(1) + uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))))) 27851 __320: 27852 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_ALT) { 27853 goto __321 27854 } 27855 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 27856 goto __320 27857 __321: 27858 ; 27859 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27860 goto __322 27861 } 27862 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = int32((int64(code)-int64(start_code))/1 + int64(1) + int64(DLINK_SIZE)) 27863 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27864 next_active_state += 12 27865 goto __323 27866 __322: 27867 return -43 27868 __323: 27869 ; 27870 goto __89 27871 27872 //----------------------------------------------------------------- 27873 __104: 27874 if !(ptr == start_subject && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_NOTBOL == Tuint32_t(0)) { 27875 goto __324 27876 } 27877 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27878 goto __325 27879 } 27880 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 27881 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27882 next_active_state += 12 27883 goto __326 27884 __325: 27885 return -43 27886 __326: 27887 ; 27888 __324: 27889 ; 27890 goto __89 27891 27892 //----------------------------------------------------------------- 27893 __105: 27894 if !(ptr == start_subject && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_NOTBOL == Tuint32_t(0) || (ptr != end_subject || (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_ALT_CIRCUMFLEX != Tuint32_t(0)) && 27895 func() int32 { 27896 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 27897 return libc.Bool32(ptr > (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject && X_pcre2_was_newline_8(tls, ptr, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject, mb+120, utf) != 0) 27898 } 27899 return libc.Bool32(ptr >= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject+uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr - uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128))) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr - uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128 + 1))))) 27900 }() != 0) { 27901 goto __327 27902 } 27903 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27904 goto __328 27905 } 27906 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 27907 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27908 next_active_state += 12 27909 goto __329 27910 __328: 27911 return -43 27912 __329: 27913 ; 27914 __327: 27915 ; 27916 goto __89 27917 27918 //----------------------------------------------------------------- 27919 __106: 27920 if !(ptr >= end_subject) { 27921 goto __330 27922 } 27923 27924 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0)) { 27925 goto __331 27926 } 27927 return -2 27928 goto __332 27929 __331: 27930 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27931 goto __333 27932 } 27933 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 27934 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27935 next_active_state += 12 27936 goto __334 27937 __333: 27938 return -43 27939 __334: 27940 ; 27941 __332: 27942 ; 27943 __330: 27944 ; 27945 goto __89 27946 27947 //----------------------------------------------------------------- 27948 __107: 27949 if !(ptr == start_subject) { 27950 goto __335 27951 } 27952 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27953 goto __336 27954 } 27955 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 27956 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27957 next_active_state += 12 27958 goto __337 27959 __336: 27960 return -43 27961 __337: 27962 ; 27963 __335: 27964 ; 27965 goto __89 27966 27967 //----------------------------------------------------------------- 27968 __108: 27969 if !(ptr == start_subject+uintptr(start_offset)) { 27970 goto __338 27971 } 27972 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 27973 goto __339 27974 } 27975 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 27976 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 27977 next_active_state += 12 27978 goto __340 27979 __339: 27980 return -43 27981 __340: 27982 ; 27983 __338: 27984 ; 27985 goto __89 27986 27987 // ========================================================================== 27988 // These opcodes inspect the next subject character, and sometimes 27989 // the previous one as well, but do not have an argument. The variable 27990 // clen contains the length of the current character and is zero if we are 27991 // at the end of the subject. 27992 27993 //----------------------------------------------------------------- 27994 __109: 27995 if !(clen > 0 && !(func() int32 { 27996 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 27997 return libc.Bool32(ptr < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, ptr, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+120, utf) != 0) 27998 } 27999 return libc.Bool32(ptr <= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128))) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128 + 1))))) 28000 }() != 0)) { 28001 goto __341 28002 } 28003 28004 if !(ptr+uintptr(1) >= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_FIXED) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2) && c == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128)))) { 28005 goto __342 28006 } 28007 28008 could_continue = libc.AssignInt32(&partial_newline, DTRUE) 28009 goto __343 28010 __342: 28011 28012 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28013 goto __344 28014 } 28015 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 28016 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 28017 next_new_state += 12 28018 goto __345 28019 __344: 28020 return -43 28021 __345: 28022 ; 28023 __343: 28024 ; 28025 __341: 28026 ; 28027 goto __89 28028 28029 //----------------------------------------------------------------- 28030 __110: 28031 if !(clen > 0) { 28032 goto __346 28033 } 28034 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28035 goto __347 28036 } 28037 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 28038 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 28039 next_new_state += 12 28040 goto __348 28041 __347: 28042 return -43 28043 __348: 28044 ; 28045 __346: 28046 ; 28047 goto __89 28048 28049 //----------------------------------------------------------------- 28050 __111: 28051 if !(clen == 0 || func() int32 { 28052 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 28053 return libc.Bool32(ptr < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, ptr, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+120, utf) != 0) 28054 } 28055 return libc.Bool32(ptr <= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128))) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128 + 1))))) 28056 }() != 0 && ptr == end_subject-uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen)) { 28057 goto __349 28058 } 28059 28060 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0)) { 28061 goto __350 28062 } 28063 return -2 28064 __350: 28065 ; 28066 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 28067 goto __351 28068 } 28069 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 28070 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 28071 next_active_state += 12 28072 goto __352 28073 __351: 28074 return -43 28075 __352: 28076 ; 28077 __349: 28078 ; 28079 goto __89 28080 28081 //----------------------------------------------------------------- 28082 __112: 28083 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_NOTEOL == Tuint32_t(0)) { 28084 goto __353 28085 } 28086 28087 if !(clen == 0 && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0)) { 28088 goto __354 28089 } 28090 could_continue = DTRUE 28091 goto __355 28092 __354: 28093 if !(clen == 0 || (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_DOLLAR_ENDONLY == Tuint32_t(0) && func() int32 { 28094 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 28095 return libc.Bool32(ptr < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, ptr, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+120, utf) != 0) 28096 } 28097 return libc.Bool32(ptr <= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128))) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128 + 1))))) 28098 }() != 0 && ptr == end_subject-uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen)) { 28099 goto __356 28100 } 28101 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 28102 goto __358 28103 } 28104 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 28105 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 28106 next_active_state += 12 28107 goto __359 28108 __358: 28109 return -43 28110 __359: 28111 ; 28112 goto __357 28113 __356: 28114 if !(ptr+uintptr(1) >= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&(DPCRE2_PARTIAL_HARD|DPCRE2_PARTIAL_SOFT) != Tuint32_t(0) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_FIXED) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2) && c == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128)))) { 28115 goto __360 28116 } 28117 28118 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0)) { 28119 goto __361 28120 } 28121 28122 reset_could_continue = DTRUE 28123 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28124 goto __363 28125 } 28126 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + 1) 28127 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 28128 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = 1 28129 next_new_state += 12 28130 goto __364 28131 __363: 28132 return -43 28133 __364: 28134 ; 28135 goto __362 28136 __361: 28137 could_continue = libc.AssignInt32(&partial_newline, DTRUE) 28138 __362: 28139 ; 28140 __360: 28141 ; 28142 __357: 28143 ; 28144 __355: 28145 ; 28146 __353: 28147 ; 28148 goto __89 28149 28150 //----------------------------------------------------------------- 28151 __113: 28152 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_NOTEOL == Tuint32_t(0)) { 28153 goto __365 28154 } 28155 28156 if !(clen == 0 && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0)) { 28157 goto __367 28158 } 28159 could_continue = DTRUE 28160 goto __368 28161 __367: 28162 if !(clen == 0 || (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_DOLLAR_ENDONLY == Tuint32_t(0) && func() int32 { 28163 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 28164 return libc.Bool32(ptr < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, ptr, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+120, utf) != 0) 28165 } 28166 return libc.Bool32(ptr <= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128))) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128 + 1))))) 28167 }() != 0) { 28168 goto __369 28169 } 28170 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 28171 goto __371 28172 } 28173 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 28174 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 28175 next_active_state += 12 28176 goto __372 28177 __371: 28178 return -43 28179 __372: 28180 ; 28181 goto __370 28182 __369: 28183 if !(ptr+uintptr(1) >= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&(DPCRE2_PARTIAL_HARD|DPCRE2_PARTIAL_SOFT) != Tuint32_t(0) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_FIXED) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2) && c == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128)))) { 28184 goto __373 28185 } 28186 28187 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0)) { 28188 goto __374 28189 } 28190 28191 reset_could_continue = DTRUE 28192 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28193 goto __376 28194 } 28195 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + 1) 28196 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 28197 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = 1 28198 next_new_state += 12 28199 goto __377 28200 __376: 28201 return -43 28202 __377: 28203 ; 28204 goto __375 28205 __374: 28206 could_continue = libc.AssignInt32(&partial_newline, DTRUE) 28207 __375: 28208 ; 28209 __373: 28210 ; 28211 __370: 28212 ; 28213 __368: 28214 ; 28215 goto __366 28216 __365: 28217 if !(func() int32 { 28218 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 28219 return libc.Bool32(ptr < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, ptr, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+120, utf) != 0) 28220 } 28221 return libc.Bool32(ptr <= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128))) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128 + 1))))) 28222 }() != 0) { 28223 goto __378 28224 } 28225 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 28226 goto __379 28227 } 28228 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 28229 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 28230 next_active_state += 12 28231 goto __380 28232 __379: 28233 return -43 28234 __380: 28235 ; 28236 __378: 28237 ; 28238 __366: 28239 ; 28240 goto __89 28241 28242 //----------------------------------------------------------------- 28243 28244 __114: 28245 __115: 28246 __116: 28247 if !(clen > 0 && c < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer(ctypes + uintptr(c))))&int32(toptable1[codevalue])^int32(toptable2[codevalue]) != 0) { 28248 goto __381 28249 } 28250 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28251 goto __382 28252 } 28253 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 28254 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 28255 next_new_state += 12 28256 goto __383 28257 __382: 28258 return -43 28259 __383: 28260 ; 28261 __381: 28262 ; 28263 goto __89 28264 28265 //----------------------------------------------------------------- 28266 __117: 28267 __118: 28268 __119: 28269 if !(clen > 0 && (c >= Tuint32_t(256) || int32(*(*Tuint8_t)(unsafe.Pointer(ctypes + uintptr(c))))&int32(toptable1[codevalue])^int32(toptable2[codevalue]) != 0)) { 28270 goto __384 28271 } 28272 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28273 goto __385 28274 } 28275 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 28276 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 28277 next_new_state += 12 28278 goto __386 28279 __385: 28280 return -43 28281 __386: 28282 ; 28283 __384: 28284 ; 28285 goto __89 28286 28287 //----------------------------------------------------------------- 28288 __120: 28289 __121: 28290 28291 if !(ptr > start_subject) { 28292 goto __387 28293 } 28294 28295 temp = ptr - uintptr(1) 28296 if !(temp < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr) { 28297 goto __389 28298 } 28299 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr = temp 28300 __389: 28301 ; 28302 if !(utf != 0) { 28303 goto __390 28304 } 28305 __391: 28306 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp)))&0xc0 == 0x80) { 28307 goto __392 28308 } 28309 temp-- 28310 goto __391 28311 __392: 28312 ; 28313 __390: 28314 ; 28315 d = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp))) 28316 if !(utf != 0 && d >= 0xc0) { 28317 goto __393 28318 } 28319 if !(d&0x20 == Tuint32_t(0)) { 28320 goto __394 28321 } 28322 d = d&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp + 1)))&0x3f 28323 goto __395 28324 __394: 28325 if !(d&0x10 == Tuint32_t(0)) { 28326 goto __396 28327 } 28328 d = d&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp + 2)))&0x3f 28329 goto __397 28330 __396: 28331 if !(d&0x08 == Tuint32_t(0)) { 28332 goto __398 28333 } 28334 d = d&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp + 3)))&0x3f 28335 goto __399 28336 __398: 28337 if !(d&0x04 == Tuint32_t(0)) { 28338 goto __400 28339 } 28340 d = d&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp + 4)))&0x3f 28341 goto __401 28342 __400: 28343 d = d&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp + 5)))&0x3f 28344 __401: 28345 ; 28346 __399: 28347 ; 28348 __397: 28349 ; 28350 __395: 28351 ; 28352 __393: 28353 ; 28354 28355 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_UCP != Tuint32_t(0)) { 28356 goto __402 28357 } 28358 28359 if !(d == Tuint32_t('_')) { 28360 goto __404 28361 } 28362 left_word = DTRUE 28363 goto __405 28364 __404: 28365 28366 cat = X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(d)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(d)%DUCD_BLOCK_SIZE])*12)).Fchartype] 28367 left_word = libc.Bool32(cat == ucp_L || cat == ucp_N) 28368 __405: 28369 ; 28370 goto __403 28371 __402: 28372 left_word = libc.Bool32(d < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer(ctypes + uintptr(d))))&Dctype_word != 0) 28373 __403: 28374 ; 28375 goto __388 28376 __387: 28377 left_word = DFALSE 28378 __388: 28379 ; 28380 28381 if !(clen > 0) { 28382 goto __406 28383 } 28384 28385 if !(ptr >= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Flast_used_ptr) { 28386 goto __408 28387 } 28388 28389 temp1 = ptr + uintptr(1) 28390 if !(utf != 0) { 28391 goto __409 28392 } 28393 __410: 28394 if !(temp1 < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(temp1)))&0xc0 == 0x80) { 28395 goto __411 28396 } 28397 temp1++ 28398 goto __410 28399 __411: 28400 ; 28401 __409: 28402 ; 28403 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Flast_used_ptr = temp1 28404 __408: 28405 ; 28406 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_UCP != Tuint32_t(0)) { 28407 goto __412 28408 } 28409 28410 if !(c == Tuint32_t('_')) { 28411 goto __414 28412 } 28413 right_word = DTRUE 28414 goto __415 28415 __414: 28416 28417 cat1 = X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12)).Fchartype] 28418 right_word = libc.Bool32(cat1 == ucp_L || cat1 == ucp_N) 28419 __415: 28420 ; 28421 goto __413 28422 __412: 28423 right_word = libc.Bool32(c < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer(ctypes + uintptr(c))))&Dctype_word != 0) 28424 __413: 28425 ; 28426 goto __407 28427 __406: 28428 right_word = DFALSE 28429 __407: 28430 ; 28431 28432 if !(libc.Bool32(left_word == right_word) == libc.Bool32(codevalue == OP_NOT_WORD_BOUNDARY)) { 28433 goto __416 28434 } 28435 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 28436 goto __417 28437 } 28438 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 28439 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 28440 next_active_state += 12 28441 goto __418 28442 __417: 28443 return -43 28444 __418: 28445 ; 28446 __416: 28447 ; 28448 28449 goto __89 28450 28451 //----------------------------------------------------------------- 28452 // Check the next character by Unicode property. We will get here only 28453 // if the support is in the binary; otherwise a compile-time error occurs. 28454 // 28455 28456 __122: 28457 __123: 28458 if !(clen > 0) { 28459 goto __419 28460 } 28461 28462 prop = uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12 28463 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) { 28464 case DPT_ANY: 28465 goto __421 28466 28467 case DPT_LAMP: 28468 goto __422 28469 28470 case DPT_GC: 28471 goto __423 28472 28473 case DPT_PC: 28474 goto __424 28475 28476 case DPT_SC: 28477 goto __425 28478 28479 case DPT_SCX: 28480 goto __426 28481 28482 // These are specials for combination cases. 28483 28484 case DPT_ALNUM: 28485 goto __427 28486 28487 // Perl space used to exclude VT, but from Perl 5.18 it is included, 28488 // which means that Perl space and POSIX space are now identical. PCRE 28489 // was changed at release 8.34. 28490 28491 case DPT_SPACE: 28492 goto __428 // Perl space 28493 case DPT_PXSPACE: 28494 goto __429 28495 28496 case DPT_WORD: 28497 goto __430 28498 28499 case DPT_CLIST: 28500 goto __431 28501 28502 case DPT_UCNC: 28503 goto __432 28504 28505 case DPT_BIDICL: 28506 goto __433 28507 28508 case DPT_BOOL: 28509 goto __434 28510 28511 // Should never occur, but keep compilers from grumbling. 28512 28513 default: 28514 goto __435 28515 } 28516 goto __420 28517 28518 __421: 28519 OK = DTRUE 28520 goto __420 28521 28522 __422: 28523 OK = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) == ucp_Lu || int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) == ucp_Ll || int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) == ucp_Lt) 28524 goto __420 28525 28526 __423: 28527 OK = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))) 28528 goto __420 28529 28530 __424: 28531 OK = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))) 28532 goto __420 28533 28534 __425: 28535 OK = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop)).Fscript) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))) 28536 goto __420 28537 28538 __426: 28539 OK = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop)).Fscript) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))) || *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_script_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop)).Fscriptx_bidiclass)&DUCD_SCRIPTX_MASK)*4 + uintptr(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))/32)*4))&(uint32(1)<<(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))%32)) != Tuint32_t(0)) 28540 goto __420 28541 28542 // These are specials for combination cases. 28543 28544 __427: 28545 OK = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_L || X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_N) 28546 goto __420 28547 28548 // Perl space used to exclude VT, but from Perl 5.18 it is included, 28549 // which means that Perl space and POSIX space are now identical. PCRE 28550 // was changed at release 8.34. 28551 28552 __428: // Perl space 28553 __429: // POSIX space 28554 switch c { 28555 case Tuint32_t('\011'): 28556 goto __437 28557 case Tuint32_t('\040'): 28558 goto __438 28559 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 28560 goto __439 28561 case Tuint32_t(0x1680): 28562 goto __440 /* OGHAM SPACE MARK */ 28563 case Tuint32_t(0x180e): 28564 goto __441 /* MONGOLIAN VOWEL SEPARATOR */ 28565 case Tuint32_t(0x2000): 28566 goto __442 /* EN QUAD */ 28567 case Tuint32_t(0x2001): 28568 goto __443 /* EM QUAD */ 28569 case Tuint32_t(0x2002): 28570 goto __444 /* EN SPACE */ 28571 case Tuint32_t(0x2003): 28572 goto __445 /* EM SPACE */ 28573 case Tuint32_t(0x2004): 28574 goto __446 /* THREE-PER-EM SPACE */ 28575 case Tuint32_t(0x2005): 28576 goto __447 /* FOUR-PER-EM SPACE */ 28577 case Tuint32_t(0x2006): 28578 goto __448 /* SIX-PER-EM SPACE */ 28579 case Tuint32_t(0x2007): 28580 goto __449 /* FIGURE SPACE */ 28581 case Tuint32_t(0x2008): 28582 goto __450 /* PUNCTUATION SPACE */ 28583 case Tuint32_t(0x2009): 28584 goto __451 /* THIN SPACE */ 28585 case Tuint32_t(0x200A): 28586 goto __452 /* HAIR SPACE */ 28587 case Tuint32_t(0x202f): 28588 goto __453 /* NARROW NO-BREAK SPACE */ 28589 case Tuint32_t(0x205f): 28590 goto __454 /* MEDIUM MATHEMATICAL SPACE */ 28591 case Tuint32_t(0x3000): 28592 goto __455 28593 case Tuint32_t('\012'): 28594 goto __456 28595 case Tuint32_t('\013'): 28596 goto __457 28597 case Tuint32_t('\014'): 28598 goto __458 28599 case Tuint32_t('\015'): 28600 goto __459 28601 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 28602 goto __460 28603 case Tuint32_t(0x2028): 28604 goto __461 /* LINE SEPARATOR */ 28605 case Tuint32_t(0x2029): 28606 goto __462 28607 28608 default: 28609 goto __463 28610 } 28611 goto __436 28612 28613 __437: 28614 __438: 28615 __439: 28616 __440: /* OGHAM SPACE MARK */ 28617 __441: /* MONGOLIAN VOWEL SEPARATOR */ 28618 __442: /* EN QUAD */ 28619 __443: /* EM QUAD */ 28620 __444: /* EN SPACE */ 28621 __445: /* EM SPACE */ 28622 __446: /* THREE-PER-EM SPACE */ 28623 __447: /* FOUR-PER-EM SPACE */ 28624 __448: /* SIX-PER-EM SPACE */ 28625 __449: /* FIGURE SPACE */ 28626 __450: /* PUNCTUATION SPACE */ 28627 __451: /* THIN SPACE */ 28628 __452: /* HAIR SPACE */ 28629 __453: /* NARROW NO-BREAK SPACE */ 28630 __454: /* MEDIUM MATHEMATICAL SPACE */ 28631 __455: 28632 __456: 28633 __457: 28634 __458: 28635 __459: 28636 __460: 28637 __461: /* LINE SEPARATOR */ 28638 __462: 28639 OK = DTRUE 28640 goto __436 28641 28642 __463: 28643 OK = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_Z) 28644 goto __436 28645 __436: 28646 ; 28647 goto __420 28648 28649 __430: 28650 OK = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_L || X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_N || c == Tuint32_t('\137')) 28651 goto __420 28652 28653 __431: 28654 cp = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))*4 28655 __464: 28656 28657 if !(c < *(*Tuint32_t)(unsafe.Pointer(cp))) { 28658 goto __467 28659 } 28660 OK = DFALSE 28661 goto __466 28662 __467: 28663 ; 28664 if !(c == *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&cp, 4)))) { 28665 goto __468 28666 } 28667 OK = DTRUE 28668 goto __466 28669 __468: 28670 ; 28671 goto __465 28672 __465: 28673 goto __464 28674 goto __466 28675 __466: 28676 ; 28677 goto __420 28678 28679 __432: 28680 OK = libc.Bool32(c == Tuint32_t('\044') || c == Tuint32_t('\100') || c == Tuint32_t('\140') || c >= Tuint32_t(0xa0) && c <= Tuint32_t(0xd7ff) || c >= Tuint32_t(0xe000)) 28681 goto __420 28682 28683 __433: 28684 OK = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12)).Fscriptx_bidiclass)>>DUCD_BIDICLASS_SHIFT == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))) 28685 goto __420 28686 28687 __434: 28688 OK = libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_boolprop_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop)).Fbprops)&DUCD_BPROPS_MASK)*4 + uintptr(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))/32)*4))&(uint32(1)<<(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))%32)) != Tuint32_t(0)) 28689 goto __420 28690 28691 // Should never occur, but keep compilers from grumbling. 28692 28693 __435: 28694 OK = libc.Bool32(codevalue != OP_PROP) 28695 goto __420 28696 __420: 28697 ; 28698 28699 if !(OK == libc.Bool32(codevalue == OP_PROP)) { 28700 goto __469 28701 } 28702 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28703 goto __470 28704 } 28705 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 3 28706 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 28707 next_new_state += 12 28708 goto __471 28709 __470: 28710 return -43 28711 __471: 28712 ; 28713 __469: 28714 ; 28715 __419: 28716 ; 28717 goto __89 28718 28719 // ========================================================================== 28720 // These opcodes likewise inspect the subject character, but have an 28721 // argument that is not a data character. It is one of these opcodes: 28722 // OP_ANY, OP_ALLANY, OP_DIGIT, OP_NOT_DIGIT, OP_WHITESPACE, OP_NOT_SPACE, 28723 // OP_WORDCHAR, OP_NOT_WORDCHAR. The value is loaded into d. 28724 28725 __124: 28726 __125: 28727 __126: 28728 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Already matched 28729 if !(count > 0) { 28730 goto __472 28731 } 28732 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 28733 goto __473 28734 } 28735 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 28736 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 28737 next_active_state += 12 28738 goto __474 28739 __473: 28740 return -43 28741 __474: 28742 ; 28743 __472: 28744 ; 28745 if !(clen > 0) { 28746 goto __475 28747 } 28748 28749 if !(d == OP_ANY && ptr+uintptr(1) >= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_FIXED) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2) && c == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128)))) { 28750 goto __476 28751 } 28752 28753 could_continue = libc.AssignInt32(&partial_newline, DTRUE) 28754 goto __477 28755 __476: 28756 if !(c >= Tuint32_t(256) && d != OP_DIGIT && d != OP_WHITESPACE && d != OP_WORDCHAR || c < Tuint32_t(256) && (d != OP_ANY || !(func() int32 { 28757 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 28758 return libc.Bool32(ptr < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, ptr, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+120, utf) != 0) 28759 } 28760 return libc.Bool32(ptr <= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128))) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128 + 1))))) 28761 }() != 0)) && int32(*(*Tuint8_t)(unsafe.Pointer(ctypes + uintptr(c))))&int32(toptable1[d])^int32(toptable2[d]) != 0) { 28762 goto __478 28763 } 28764 28765 if !(count > 0 && codevalue == OP_TYPEPOSPLUS) { 28766 goto __479 28767 } 28768 28769 active_count-- // Remove non-match possibility 28770 next_active_state -= 12 28771 __479: 28772 ; 28773 count++ 28774 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28775 goto __480 28776 } 28777 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 28778 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 28779 next_new_state += 12 28780 goto __481 28781 __480: 28782 return -43 28783 __481: 28784 ; 28785 __478: 28786 ; 28787 __477: 28788 ; 28789 __475: 28790 ; 28791 goto __89 28792 28793 //----------------------------------------------------------------- 28794 __127: 28795 __128: 28796 __129: 28797 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 28798 goto __482 28799 } 28800 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 28801 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 28802 next_active_state += 12 28803 goto __483 28804 __482: 28805 return -43 28806 __483: 28807 ; 28808 if !(clen > 0) { 28809 goto __484 28810 } 28811 28812 if !(d == OP_ANY && ptr+uintptr(1) >= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_FIXED) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2) && c == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128)))) { 28813 goto __485 28814 } 28815 28816 could_continue = libc.AssignInt32(&partial_newline, DTRUE) 28817 goto __486 28818 __485: 28819 if !(c >= Tuint32_t(256) && d != OP_DIGIT && d != OP_WHITESPACE && d != OP_WORDCHAR || c < Tuint32_t(256) && (d != OP_ANY || !(func() int32 { 28820 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 28821 return libc.Bool32(ptr < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, ptr, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+120, utf) != 0) 28822 } 28823 return libc.Bool32(ptr <= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128))) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128 + 1))))) 28824 }() != 0)) && int32(*(*Tuint8_t)(unsafe.Pointer(ctypes + uintptr(c))))&int32(toptable1[d])^int32(toptable2[d]) != 0) { 28825 goto __487 28826 } 28827 28828 if !(codevalue == OP_TYPEPOSQUERY) { 28829 goto __488 28830 } 28831 28832 active_count-- // Remove non-match possibility 28833 next_active_state -= 12 28834 __488: 28835 ; 28836 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28837 goto __489 28838 } 28839 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 2 28840 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 28841 next_new_state += 12 28842 goto __490 28843 __489: 28844 return -43 28845 __490: 28846 ; 28847 __487: 28848 ; 28849 __486: 28850 ; 28851 __484: 28852 ; 28853 goto __89 28854 28855 //----------------------------------------------------------------- 28856 __130: 28857 __131: 28858 __132: 28859 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 28860 goto __491 28861 } 28862 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 28863 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 28864 next_active_state += 12 28865 goto __492 28866 __491: 28867 return -43 28868 __492: 28869 ; 28870 if !(clen > 0) { 28871 goto __493 28872 } 28873 28874 if !(d == OP_ANY && ptr+uintptr(1) >= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_FIXED) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2) && c == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128)))) { 28875 goto __494 28876 } 28877 28878 could_continue = libc.AssignInt32(&partial_newline, DTRUE) 28879 goto __495 28880 __494: 28881 if !(c >= Tuint32_t(256) && d != OP_DIGIT && d != OP_WHITESPACE && d != OP_WORDCHAR || c < Tuint32_t(256) && (d != OP_ANY || !(func() int32 { 28882 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 28883 return libc.Bool32(ptr < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, ptr, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+120, utf) != 0) 28884 } 28885 return libc.Bool32(ptr <= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128))) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128 + 1))))) 28886 }() != 0)) && int32(*(*Tuint8_t)(unsafe.Pointer(ctypes + uintptr(c))))&int32(toptable1[d])^int32(toptable2[d]) != 0) { 28887 goto __496 28888 } 28889 28890 if !(codevalue == OP_TYPEPOSSTAR) { 28891 goto __497 28892 } 28893 28894 active_count-- // Remove non-match possibility 28895 next_active_state -= 12 28896 __497: 28897 ; 28898 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28899 goto __498 28900 } 28901 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 28902 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 28903 next_new_state += 12 28904 goto __499 28905 __498: 28906 return -43 28907 __499: 28908 ; 28909 __496: 28910 ; 28911 __495: 28912 ; 28913 __493: 28914 ; 28915 goto __89 28916 28917 //----------------------------------------------------------------- 28918 __133: 28919 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Number already matched 28920 if !(clen > 0) { 28921 goto __500 28922 } 28923 28924 if !(d == OP_ANY && ptr+uintptr(1) >= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_FIXED) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2) && c == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128)))) { 28925 goto __501 28926 } 28927 28928 could_continue = libc.AssignInt32(&partial_newline, DTRUE) 28929 goto __502 28930 __501: 28931 if !(c >= Tuint32_t(256) && d != OP_DIGIT && d != OP_WHITESPACE && d != OP_WORDCHAR || c < Tuint32_t(256) && (d != OP_ANY || !(func() int32 { 28932 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 28933 return libc.Bool32(ptr < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, ptr, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+120, utf) != 0) 28934 } 28935 return libc.Bool32(ptr <= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128))) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128 + 1))))) 28936 }() != 0)) && int32(*(*Tuint8_t)(unsafe.Pointer(ctypes + uintptr(c))))&int32(toptable1[d])^int32(toptable2[d]) != 0) { 28937 goto __503 28938 } 28939 28940 if !(libc.PreIncInt32(&count, 1) >= int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))))) { 28941 goto __504 28942 } 28943 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28944 goto __506 28945 } 28946 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 + DIMM2_SIZE + 1 28947 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 28948 next_new_state += 12 28949 goto __507 28950 __506: 28951 return -43 28952 __507: 28953 ; 28954 goto __505 28955 __504: 28956 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 28957 goto __508 28958 } 28959 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 28960 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 28961 next_new_state += 12 28962 goto __509 28963 __508: 28964 return -43 28965 __509: 28966 ; 28967 __505: 28968 ; 28969 __503: 28970 ; 28971 __502: 28972 ; 28973 __500: 28974 ; 28975 goto __89 28976 28977 //----------------------------------------------------------------- 28978 __134: 28979 __135: 28980 __136: 28981 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 28982 goto __510 28983 } 28984 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 + DIMM2_SIZE 28985 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 28986 next_active_state += 12 28987 goto __511 28988 __510: 28989 return -43 28990 __511: 28991 ; 28992 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Number already matched 28993 if !(clen > 0) { 28994 goto __512 28995 } 28996 28997 if !(d == OP_ANY && ptr+uintptr(1) >= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_FIXED) && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2) && c == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128)))) { 28998 goto __513 28999 } 29000 29001 could_continue = libc.AssignInt32(&partial_newline, DTRUE) 29002 goto __514 29003 __513: 29004 if !(c >= Tuint32_t(256) && d != OP_DIGIT && d != OP_WHITESPACE && d != OP_WORDCHAR || c < Tuint32_t(256) && (d != OP_ANY || !(func() int32 { 29005 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 29006 return libc.Bool32(ptr < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, ptr, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+120, utf) != 0) 29007 } 29008 return libc.Bool32(ptr <= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128))) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128 + 1))))) 29009 }() != 0)) && int32(*(*Tuint8_t)(unsafe.Pointer(ctypes + uintptr(c))))&int32(toptable1[d])^int32(toptable2[d]) != 0) { 29010 goto __515 29011 } 29012 29013 if !(codevalue == OP_TYPEPOSUPTO) { 29014 goto __516 29015 } 29016 29017 active_count-- // Remove non-match possibility 29018 next_active_state -= 12 29019 __516: 29020 ; 29021 if !(libc.PreIncInt32(&count, 1) >= int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))))) { 29022 goto __517 29023 } 29024 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 29025 goto __519 29026 } 29027 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 2 + DIMM2_SIZE 29028 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 29029 next_new_state += 12 29030 goto __520 29031 __519: 29032 return -43 29033 __520: 29034 ; 29035 goto __518 29036 __517: 29037 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 29038 goto __521 29039 } 29040 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 29041 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 29042 next_new_state += 12 29043 goto __522 29044 __521: 29045 return -43 29046 __522: 29047 ; 29048 __518: 29049 ; 29050 __515: 29051 ; 29052 __514: 29053 ; 29054 __512: 29055 ; 29056 goto __89 29057 29058 // ========================================================================== 29059 // These are virtual opcodes that are used when something like 29060 // OP_TYPEPLUS has OP_PROP, OP_NOTPROP, OP_ANYNL, or OP_EXTUNI as its 29061 // argument. It keeps the code above fast for the other cases. The argument 29062 // is in the d variable. 29063 29064 __137: 29065 __138: 29066 __139: 29067 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Already matched 29068 if !(count > 0) { 29069 goto __523 29070 } 29071 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 29072 goto __524 29073 } 29074 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 4 29075 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 29076 next_active_state += 12 29077 goto __525 29078 __524: 29079 return -43 29080 __525: 29081 ; 29082 __523: 29083 ; 29084 if !(clen > 0) { 29085 goto __526 29086 } 29087 29088 prop1 = uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12 29089 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))) { 29090 case DPT_ANY: 29091 goto __528 29092 29093 case DPT_LAMP: 29094 goto __529 29095 29096 case DPT_GC: 29097 goto __530 29098 29099 case DPT_PC: 29100 goto __531 29101 29102 case DPT_SC: 29103 goto __532 29104 29105 case DPT_SCX: 29106 goto __533 29107 29108 // These are specials for combination cases. 29109 29110 case DPT_ALNUM: 29111 goto __534 29112 29113 // Perl space used to exclude VT, but from Perl 5.18 it is included, 29114 // which means that Perl space and POSIX space are now identical. PCRE 29115 // was changed at release 8.34. 29116 29117 case DPT_SPACE: 29118 goto __535 // Perl space 29119 case DPT_PXSPACE: 29120 goto __536 29121 29122 case DPT_WORD: 29123 goto __537 29124 29125 case DPT_CLIST: 29126 goto __538 29127 29128 case DPT_UCNC: 29129 goto __539 29130 29131 case DPT_BIDICL: 29132 goto __540 29133 29134 case DPT_BOOL: 29135 goto __541 29136 29137 // Should never occur, but keep compilers from grumbling. 29138 29139 default: 29140 goto __542 29141 } 29142 goto __527 29143 29144 __528: 29145 OK1 = DTRUE 29146 goto __527 29147 29148 __529: 29149 OK1 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop1)).Fchartype) == ucp_Lu || int32((*Tucd_record)(unsafe.Pointer(prop1)).Fchartype) == ucp_Ll || int32((*Tucd_record)(unsafe.Pointer(prop1)).Fchartype) == ucp_Lt) 29150 goto __527 29151 29152 __530: 29153 OK1 = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop1)).Fchartype] == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))) 29154 goto __527 29155 29156 __531: 29157 OK1 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop1)).Fchartype) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))) 29158 goto __527 29159 29160 __532: 29161 OK1 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop1)).Fscript) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))) 29162 goto __527 29163 29164 __533: 29165 OK1 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop1)).Fscript) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))) || *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_script_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop1)).Fscriptx_bidiclass)&DUCD_SCRIPTX_MASK)*4 + uintptr(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))/32)*4))&(uint32(1)<<(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))%32)) != Tuint32_t(0)) 29166 goto __527 29167 29168 // These are specials for combination cases. 29169 29170 __534: 29171 OK1 = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop1)).Fchartype] == ucp_L || X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop1)).Fchartype] == ucp_N) 29172 goto __527 29173 29174 // Perl space used to exclude VT, but from Perl 5.18 it is included, 29175 // which means that Perl space and POSIX space are now identical. PCRE 29176 // was changed at release 8.34. 29177 29178 __535: // Perl space 29179 __536: // POSIX space 29180 switch c { 29181 case Tuint32_t('\011'): 29182 goto __544 29183 case Tuint32_t('\040'): 29184 goto __545 29185 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 29186 goto __546 29187 case Tuint32_t(0x1680): 29188 goto __547 /* OGHAM SPACE MARK */ 29189 case Tuint32_t(0x180e): 29190 goto __548 /* MONGOLIAN VOWEL SEPARATOR */ 29191 case Tuint32_t(0x2000): 29192 goto __549 /* EN QUAD */ 29193 case Tuint32_t(0x2001): 29194 goto __550 /* EM QUAD */ 29195 case Tuint32_t(0x2002): 29196 goto __551 /* EN SPACE */ 29197 case Tuint32_t(0x2003): 29198 goto __552 /* EM SPACE */ 29199 case Tuint32_t(0x2004): 29200 goto __553 /* THREE-PER-EM SPACE */ 29201 case Tuint32_t(0x2005): 29202 goto __554 /* FOUR-PER-EM SPACE */ 29203 case Tuint32_t(0x2006): 29204 goto __555 /* SIX-PER-EM SPACE */ 29205 case Tuint32_t(0x2007): 29206 goto __556 /* FIGURE SPACE */ 29207 case Tuint32_t(0x2008): 29208 goto __557 /* PUNCTUATION SPACE */ 29209 case Tuint32_t(0x2009): 29210 goto __558 /* THIN SPACE */ 29211 case Tuint32_t(0x200A): 29212 goto __559 /* HAIR SPACE */ 29213 case Tuint32_t(0x202f): 29214 goto __560 /* NARROW NO-BREAK SPACE */ 29215 case Tuint32_t(0x205f): 29216 goto __561 /* MEDIUM MATHEMATICAL SPACE */ 29217 case Tuint32_t(0x3000): 29218 goto __562 29219 case Tuint32_t('\012'): 29220 goto __563 29221 case Tuint32_t('\013'): 29222 goto __564 29223 case Tuint32_t('\014'): 29224 goto __565 29225 case Tuint32_t('\015'): 29226 goto __566 29227 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 29228 goto __567 29229 case Tuint32_t(0x2028): 29230 goto __568 /* LINE SEPARATOR */ 29231 case Tuint32_t(0x2029): 29232 goto __569 29233 29234 default: 29235 goto __570 29236 } 29237 goto __543 29238 29239 __544: 29240 __545: 29241 __546: 29242 __547: /* OGHAM SPACE MARK */ 29243 __548: /* MONGOLIAN VOWEL SEPARATOR */ 29244 __549: /* EN QUAD */ 29245 __550: /* EM QUAD */ 29246 __551: /* EN SPACE */ 29247 __552: /* EM SPACE */ 29248 __553: /* THREE-PER-EM SPACE */ 29249 __554: /* FOUR-PER-EM SPACE */ 29250 __555: /* SIX-PER-EM SPACE */ 29251 __556: /* FIGURE SPACE */ 29252 __557: /* PUNCTUATION SPACE */ 29253 __558: /* THIN SPACE */ 29254 __559: /* HAIR SPACE */ 29255 __560: /* NARROW NO-BREAK SPACE */ 29256 __561: /* MEDIUM MATHEMATICAL SPACE */ 29257 __562: 29258 __563: 29259 __564: 29260 __565: 29261 __566: 29262 __567: 29263 __568: /* LINE SEPARATOR */ 29264 __569: 29265 OK1 = DTRUE 29266 goto __543 29267 29268 __570: 29269 OK1 = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop1)).Fchartype] == ucp_Z) 29270 goto __543 29271 __543: 29272 ; 29273 goto __527 29274 29275 __537: 29276 OK1 = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop1)).Fchartype] == ucp_L || X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop1)).Fchartype] == ucp_N || c == Tuint32_t('\137')) 29277 goto __527 29278 29279 __538: 29280 cp1 = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))*4 29281 __571: 29282 29283 if !(c < *(*Tuint32_t)(unsafe.Pointer(cp1))) { 29284 goto __574 29285 } 29286 OK1 = DFALSE 29287 goto __573 29288 __574: 29289 ; 29290 if !(c == *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&cp1, 4)))) { 29291 goto __575 29292 } 29293 OK1 = DTRUE 29294 goto __573 29295 __575: 29296 ; 29297 goto __572 29298 __572: 29299 goto __571 29300 goto __573 29301 __573: 29302 ; 29303 goto __527 29304 29305 __539: 29306 OK1 = libc.Bool32(c == Tuint32_t('\044') || c == Tuint32_t('\100') || c == Tuint32_t('\140') || c >= Tuint32_t(0xa0) && c <= Tuint32_t(0xd7ff) || c >= Tuint32_t(0xe000)) 29307 goto __527 29308 29309 __540: 29310 OK1 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12)).Fscriptx_bidiclass)>>DUCD_BIDICLASS_SHIFT == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))) 29311 goto __527 29312 29313 __541: 29314 OK1 = libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_boolprop_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop1)).Fbprops)&DUCD_BPROPS_MASK)*4 + uintptr(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))/32)*4))&(uint32(1)<<(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))%32)) != Tuint32_t(0)) 29315 goto __527 29316 29317 // Should never occur, but keep compilers from grumbling. 29318 29319 __542: 29320 OK1 = libc.Bool32(codevalue != OP_PROP) 29321 goto __527 29322 __527: 29323 ; 29324 29325 if !(OK1 == libc.Bool32(d == OP_PROP)) { 29326 goto __576 29327 } 29328 29329 if !(count > 0 && codevalue == Tuint32_t(DOP_PROP_EXTRA+OP_TYPEPOSPLUS)) { 29330 goto __577 29331 } 29332 29333 active_count-- // Remove non-match possibility 29334 next_active_state -= 12 29335 __577: 29336 ; 29337 count++ 29338 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 29339 goto __578 29340 } 29341 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 29342 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 29343 next_new_state += 12 29344 goto __579 29345 __578: 29346 return -43 29347 __579: 29348 ; 29349 __576: 29350 ; 29351 __526: 29352 ; 29353 goto __89 29354 29355 //----------------------------------------------------------------- 29356 __140: 29357 __141: 29358 __142: 29359 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Already matched 29360 if !(count > 0) { 29361 goto __580 29362 } 29363 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 29364 goto __581 29365 } 29366 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 29367 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 29368 next_active_state += 12 29369 goto __582 29370 __581: 29371 return -43 29372 __582: 29373 ; 29374 __580: 29375 ; 29376 if !(clen > 0) { 29377 goto __583 29378 } 29379 29380 *(*int32)(unsafe.Pointer(bp /* ncount */)) = 0 29381 if !(count > 0 && codevalue == Tuint32_t(DOP_EXTUNI_EXTRA+OP_TYPEPOSPLUS)) { 29382 goto __584 29383 } 29384 29385 active_count-- // Remove non-match possibility 29386 next_active_state -= 12 29387 __584: 29388 ; 29389 X_pcre2_extuni_8(tls, c, ptr+uintptr(clen), (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject, end_subject, utf, 29390 bp) 29391 count++ 29392 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 29393 goto __585 29394 } 29395 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -state_offset 29396 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 29397 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = *(*int32)(unsafe.Pointer(bp)) 29398 next_new_state += 12 29399 goto __586 29400 __585: 29401 return -43 29402 __586: 29403 ; 29404 __583: 29405 ; 29406 goto __89 29407 29408 //----------------------------------------------------------------- 29409 __143: 29410 __144: 29411 __145: 29412 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Already matched 29413 if !(count > 0) { 29414 goto __587 29415 } 29416 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 29417 goto __588 29418 } 29419 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 29420 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 29421 next_active_state += 12 29422 goto __589 29423 __588: 29424 return -43 29425 __589: 29426 ; 29427 __587: 29428 ; 29429 if !(clen > 0) { 29430 goto __590 29431 } 29432 ncount1 = 0 29433 switch c { 29434 case Tuint32_t('\013'): 29435 goto __592 29436 case Tuint32_t('\014'): 29437 goto __593 29438 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 29439 goto __594 29440 case Tuint32_t(0x2028): 29441 goto __595 29442 case Tuint32_t(0x2029): 29443 goto __596 29444 29445 case Tuint32_t('\015'): 29446 goto __597 29447 case Tuint32_t('\012'): 29448 goto __598 29449 29450 default: 29451 goto __599 29452 } 29453 goto __591 29454 29455 __592: 29456 __593: 29457 __594: 29458 __595: 29459 __596: 29460 if !(int32((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fbsr_convention) == DPCRE2_BSR_ANYCRLF) { 29461 goto __600 29462 } 29463 goto __591 29464 __600: 29465 ; 29466 goto ANYNL01 29467 29468 __597: 29469 if !(ptr+uintptr(1) < end_subject && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(1)))) == '\012') { 29470 goto __601 29471 } 29472 ncount1 = 1 29473 __601: 29474 ; 29475 // Fall through 29476 29477 ANYNL01: 29478 __598: 29479 if !(count > 0 && codevalue == Tuint32_t(DOP_ANYNL_EXTRA+OP_TYPEPOSPLUS)) { 29480 goto __602 29481 } 29482 29483 active_count-- // Remove non-match possibility 29484 next_active_state -= 12 29485 __602: 29486 ; 29487 count++ 29488 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 29489 goto __603 29490 } 29491 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -state_offset 29492 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 29493 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = ncount1 29494 next_new_state += 12 29495 goto __604 29496 __603: 29497 return -43 29498 __604: 29499 ; 29500 goto __591 29501 29502 __599: 29503 goto __591 29504 __591: 29505 ; 29506 __590: 29507 ; 29508 goto __89 29509 29510 //----------------------------------------------------------------- 29511 __146: 29512 __147: 29513 __148: 29514 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Already matched 29515 if !(count > 0) { 29516 goto __605 29517 } 29518 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 29519 goto __606 29520 } 29521 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 29522 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 29523 next_active_state += 12 29524 goto __607 29525 __606: 29526 return -43 29527 __607: 29528 ; 29529 __605: 29530 ; 29531 if !(clen > 0) { 29532 goto __608 29533 } 29534 29535 switch c { 29536 case Tuint32_t('\012'): 29537 goto __610 29538 case Tuint32_t('\013'): 29539 goto __611 29540 case Tuint32_t('\014'): 29541 goto __612 29542 case Tuint32_t('\015'): 29543 goto __613 29544 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 29545 goto __614 29546 case Tuint32_t(0x2028): 29547 goto __615 /* LINE SEPARATOR */ 29548 case Tuint32_t(0x2029): 29549 goto __616 29550 29551 default: 29552 goto __617 29553 } 29554 goto __609 29555 29556 __610: 29557 __611: 29558 __612: 29559 __613: 29560 __614: 29561 __615: /* LINE SEPARATOR */ 29562 __616: 29563 OK2 = DTRUE 29564 goto __609 29565 29566 __617: 29567 OK2 = DFALSE 29568 goto __609 29569 __609: 29570 ; 29571 29572 if !(OK2 == libc.Bool32(d == OP_VSPACE)) { 29573 goto __618 29574 } 29575 29576 if !(count > 0 && codevalue == Tuint32_t(DOP_VSPACE_EXTRA+OP_TYPEPOSPLUS)) { 29577 goto __619 29578 } 29579 29580 active_count-- // Remove non-match possibility 29581 next_active_state -= 12 29582 __619: 29583 ; 29584 count++ 29585 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 29586 goto __620 29587 } 29588 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -state_offset 29589 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 29590 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = 0 29591 next_new_state += 12 29592 goto __621 29593 __620: 29594 return -43 29595 __621: 29596 ; 29597 __618: 29598 ; 29599 __608: 29600 ; 29601 goto __89 29602 29603 //----------------------------------------------------------------- 29604 __149: 29605 __150: 29606 __151: 29607 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Already matched 29608 if !(count > 0) { 29609 goto __622 29610 } 29611 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 29612 goto __623 29613 } 29614 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 29615 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 29616 next_active_state += 12 29617 goto __624 29618 __623: 29619 return -43 29620 __624: 29621 ; 29622 __622: 29623 ; 29624 if !(clen > 0) { 29625 goto __625 29626 } 29627 29628 switch c { 29629 case Tuint32_t('\011'): 29630 goto __627 29631 case Tuint32_t('\040'): 29632 goto __628 29633 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 29634 goto __629 29635 case Tuint32_t(0x1680): 29636 goto __630 /* OGHAM SPACE MARK */ 29637 case Tuint32_t(0x180e): 29638 goto __631 /* MONGOLIAN VOWEL SEPARATOR */ 29639 case Tuint32_t(0x2000): 29640 goto __632 /* EN QUAD */ 29641 case Tuint32_t(0x2001): 29642 goto __633 /* EM QUAD */ 29643 case Tuint32_t(0x2002): 29644 goto __634 /* EN SPACE */ 29645 case Tuint32_t(0x2003): 29646 goto __635 /* EM SPACE */ 29647 case Tuint32_t(0x2004): 29648 goto __636 /* THREE-PER-EM SPACE */ 29649 case Tuint32_t(0x2005): 29650 goto __637 /* FOUR-PER-EM SPACE */ 29651 case Tuint32_t(0x2006): 29652 goto __638 /* SIX-PER-EM SPACE */ 29653 case Tuint32_t(0x2007): 29654 goto __639 /* FIGURE SPACE */ 29655 case Tuint32_t(0x2008): 29656 goto __640 /* PUNCTUATION SPACE */ 29657 case Tuint32_t(0x2009): 29658 goto __641 /* THIN SPACE */ 29659 case Tuint32_t(0x200A): 29660 goto __642 /* HAIR SPACE */ 29661 case Tuint32_t(0x202f): 29662 goto __643 /* NARROW NO-BREAK SPACE */ 29663 case Tuint32_t(0x205f): 29664 goto __644 /* MEDIUM MATHEMATICAL SPACE */ 29665 case Tuint32_t(0x3000): 29666 goto __645 29667 29668 default: 29669 goto __646 29670 } 29671 goto __626 29672 29673 __627: 29674 __628: 29675 __629: 29676 __630: /* OGHAM SPACE MARK */ 29677 __631: /* MONGOLIAN VOWEL SEPARATOR */ 29678 __632: /* EN QUAD */ 29679 __633: /* EM QUAD */ 29680 __634: /* EN SPACE */ 29681 __635: /* EM SPACE */ 29682 __636: /* THREE-PER-EM SPACE */ 29683 __637: /* FOUR-PER-EM SPACE */ 29684 __638: /* SIX-PER-EM SPACE */ 29685 __639: /* FIGURE SPACE */ 29686 __640: /* PUNCTUATION SPACE */ 29687 __641: /* THIN SPACE */ 29688 __642: /* HAIR SPACE */ 29689 __643: /* NARROW NO-BREAK SPACE */ 29690 __644: /* MEDIUM MATHEMATICAL SPACE */ 29691 __645: 29692 OK3 = DTRUE 29693 goto __626 29694 29695 __646: 29696 OK3 = DFALSE 29697 goto __626 29698 __626: 29699 ; 29700 29701 if !(OK3 == libc.Bool32(d == OP_HSPACE)) { 29702 goto __647 29703 } 29704 29705 if !(count > 0 && codevalue == Tuint32_t(DOP_HSPACE_EXTRA+OP_TYPEPOSPLUS)) { 29706 goto __648 29707 } 29708 29709 active_count-- // Remove non-match possibility 29710 next_active_state -= 12 29711 __648: 29712 ; 29713 count++ 29714 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 29715 goto __649 29716 } 29717 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -state_offset 29718 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 29719 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = 0 29720 next_new_state += 12 29721 goto __650 29722 __649: 29723 return -43 29724 __650: 29725 ; 29726 __647: 29727 ; 29728 __625: 29729 ; 29730 goto __89 29731 29732 //----------------------------------------------------------------- 29733 __152: 29734 __153: 29735 __154: 29736 count = 4 29737 goto QS1 29738 29739 __155: 29740 __156: 29741 __157: 29742 count = 0 29743 29744 QS1: 29745 29746 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 29747 goto __651 29748 } 29749 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 4 29750 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 29751 next_active_state += 12 29752 goto __652 29753 __651: 29754 return -43 29755 __652: 29756 ; 29757 if !(clen > 0) { 29758 goto __653 29759 } 29760 29761 prop2 = uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12 29762 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))) { 29763 case DPT_ANY: 29764 goto __655 29765 29766 case DPT_LAMP: 29767 goto __656 29768 29769 case DPT_GC: 29770 goto __657 29771 29772 case DPT_PC: 29773 goto __658 29774 29775 case DPT_SC: 29776 goto __659 29777 29778 case DPT_SCX: 29779 goto __660 29780 29781 // These are specials for combination cases. 29782 29783 case DPT_ALNUM: 29784 goto __661 29785 29786 // Perl space used to exclude VT, but from Perl 5.18 it is included, 29787 // which means that Perl space and POSIX space are now identical. PCRE 29788 // was changed at release 8.34. 29789 29790 case DPT_SPACE: 29791 goto __662 // Perl space 29792 case DPT_PXSPACE: 29793 goto __663 29794 29795 case DPT_WORD: 29796 goto __664 29797 29798 case DPT_CLIST: 29799 goto __665 29800 29801 case DPT_UCNC: 29802 goto __666 29803 29804 case DPT_BIDICL: 29805 goto __667 29806 29807 case DPT_BOOL: 29808 goto __668 29809 29810 // Should never occur, but keep compilers from grumbling. 29811 29812 default: 29813 goto __669 29814 } 29815 goto __654 29816 29817 __655: 29818 OK4 = DTRUE 29819 goto __654 29820 29821 __656: 29822 OK4 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop2)).Fchartype) == ucp_Lu || int32((*Tucd_record)(unsafe.Pointer(prop2)).Fchartype) == ucp_Ll || int32((*Tucd_record)(unsafe.Pointer(prop2)).Fchartype) == ucp_Lt) 29823 goto __654 29824 29825 __657: 29826 OK4 = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop2)).Fchartype] == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))) 29827 goto __654 29828 29829 __658: 29830 OK4 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop2)).Fchartype) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))) 29831 goto __654 29832 29833 __659: 29834 OK4 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop2)).Fscript) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))) 29835 goto __654 29836 29837 __660: 29838 OK4 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop2)).Fscript) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))) || *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_script_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop2)).Fscriptx_bidiclass)&DUCD_SCRIPTX_MASK)*4 + uintptr(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))/32)*4))&(uint32(1)<<(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))%32)) != Tuint32_t(0)) 29839 goto __654 29840 29841 // These are specials for combination cases. 29842 29843 __661: 29844 OK4 = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop2)).Fchartype] == ucp_L || X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop2)).Fchartype] == ucp_N) 29845 goto __654 29846 29847 // Perl space used to exclude VT, but from Perl 5.18 it is included, 29848 // which means that Perl space and POSIX space are now identical. PCRE 29849 // was changed at release 8.34. 29850 29851 __662: // Perl space 29852 __663: // POSIX space 29853 switch c { 29854 case Tuint32_t('\011'): 29855 goto __671 29856 case Tuint32_t('\040'): 29857 goto __672 29858 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 29859 goto __673 29860 case Tuint32_t(0x1680): 29861 goto __674 /* OGHAM SPACE MARK */ 29862 case Tuint32_t(0x180e): 29863 goto __675 /* MONGOLIAN VOWEL SEPARATOR */ 29864 case Tuint32_t(0x2000): 29865 goto __676 /* EN QUAD */ 29866 case Tuint32_t(0x2001): 29867 goto __677 /* EM QUAD */ 29868 case Tuint32_t(0x2002): 29869 goto __678 /* EN SPACE */ 29870 case Tuint32_t(0x2003): 29871 goto __679 /* EM SPACE */ 29872 case Tuint32_t(0x2004): 29873 goto __680 /* THREE-PER-EM SPACE */ 29874 case Tuint32_t(0x2005): 29875 goto __681 /* FOUR-PER-EM SPACE */ 29876 case Tuint32_t(0x2006): 29877 goto __682 /* SIX-PER-EM SPACE */ 29878 case Tuint32_t(0x2007): 29879 goto __683 /* FIGURE SPACE */ 29880 case Tuint32_t(0x2008): 29881 goto __684 /* PUNCTUATION SPACE */ 29882 case Tuint32_t(0x2009): 29883 goto __685 /* THIN SPACE */ 29884 case Tuint32_t(0x200A): 29885 goto __686 /* HAIR SPACE */ 29886 case Tuint32_t(0x202f): 29887 goto __687 /* NARROW NO-BREAK SPACE */ 29888 case Tuint32_t(0x205f): 29889 goto __688 /* MEDIUM MATHEMATICAL SPACE */ 29890 case Tuint32_t(0x3000): 29891 goto __689 29892 case Tuint32_t('\012'): 29893 goto __690 29894 case Tuint32_t('\013'): 29895 goto __691 29896 case Tuint32_t('\014'): 29897 goto __692 29898 case Tuint32_t('\015'): 29899 goto __693 29900 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 29901 goto __694 29902 case Tuint32_t(0x2028): 29903 goto __695 /* LINE SEPARATOR */ 29904 case Tuint32_t(0x2029): 29905 goto __696 29906 29907 default: 29908 goto __697 29909 } 29910 goto __670 29911 29912 __671: 29913 __672: 29914 __673: 29915 __674: /* OGHAM SPACE MARK */ 29916 __675: /* MONGOLIAN VOWEL SEPARATOR */ 29917 __676: /* EN QUAD */ 29918 __677: /* EM QUAD */ 29919 __678: /* EN SPACE */ 29920 __679: /* EM SPACE */ 29921 __680: /* THREE-PER-EM SPACE */ 29922 __681: /* FOUR-PER-EM SPACE */ 29923 __682: /* SIX-PER-EM SPACE */ 29924 __683: /* FIGURE SPACE */ 29925 __684: /* PUNCTUATION SPACE */ 29926 __685: /* THIN SPACE */ 29927 __686: /* HAIR SPACE */ 29928 __687: /* NARROW NO-BREAK SPACE */ 29929 __688: /* MEDIUM MATHEMATICAL SPACE */ 29930 __689: 29931 __690: 29932 __691: 29933 __692: 29934 __693: 29935 __694: 29936 __695: /* LINE SEPARATOR */ 29937 __696: 29938 OK4 = DTRUE 29939 goto __670 29940 29941 __697: 29942 OK4 = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop2)).Fchartype] == ucp_Z) 29943 goto __670 29944 __670: 29945 ; 29946 goto __654 29947 29948 __664: 29949 OK4 = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop2)).Fchartype] == ucp_L || X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop2)).Fchartype] == ucp_N || c == Tuint32_t('\137')) 29950 goto __654 29951 29952 __665: 29953 cp2 = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))*4 29954 __698: 29955 29956 if !(c < *(*Tuint32_t)(unsafe.Pointer(cp2))) { 29957 goto __701 29958 } 29959 OK4 = DFALSE 29960 goto __700 29961 __701: 29962 ; 29963 if !(c == *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&cp2, 4)))) { 29964 goto __702 29965 } 29966 OK4 = DTRUE 29967 goto __700 29968 __702: 29969 ; 29970 goto __699 29971 __699: 29972 goto __698 29973 goto __700 29974 __700: 29975 ; 29976 goto __654 29977 29978 __666: 29979 OK4 = libc.Bool32(c == Tuint32_t('\044') || c == Tuint32_t('\100') || c == Tuint32_t('\140') || c >= Tuint32_t(0xa0) && c <= Tuint32_t(0xd7ff) || c >= Tuint32_t(0xe000)) 29980 goto __654 29981 29982 __667: 29983 OK4 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12)).Fscriptx_bidiclass)>>DUCD_BIDICLASS_SHIFT == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))) 29984 goto __654 29985 29986 __668: 29987 OK4 = libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_boolprop_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop2)).Fbprops)&DUCD_BPROPS_MASK)*4 + uintptr(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))/32)*4))&(uint32(1)<<(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))%32)) != Tuint32_t(0)) 29988 goto __654 29989 29990 // Should never occur, but keep compilers from grumbling. 29991 29992 __669: 29993 OK4 = libc.Bool32(codevalue != OP_PROP) 29994 goto __654 29995 __654: 29996 ; 29997 29998 if !(OK4 == libc.Bool32(d == OP_PROP)) { 29999 goto __703 30000 } 30001 30002 if !(codevalue == Tuint32_t(DOP_PROP_EXTRA+OP_TYPEPOSSTAR) || codevalue == Tuint32_t(DOP_PROP_EXTRA+OP_TYPEPOSQUERY)) { 30003 goto __704 30004 } 30005 30006 active_count-- // Remove non-match possibility 30007 next_active_state -= 12 30008 __704: 30009 ; 30010 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30011 goto __705 30012 } 30013 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + count 30014 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 30015 next_new_state += 12 30016 goto __706 30017 __705: 30018 return -43 30019 __706: 30020 ; 30021 __703: 30022 ; 30023 __653: 30024 ; 30025 goto __89 30026 30027 //----------------------------------------------------------------- 30028 __158: 30029 __159: 30030 __160: 30031 count = 2 30032 goto QS2 30033 30034 __161: 30035 __162: 30036 __163: 30037 count = 0 30038 30039 QS2: 30040 30041 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 30042 goto __707 30043 } 30044 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 30045 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 30046 next_active_state += 12 30047 goto __708 30048 __707: 30049 return -43 30050 __708: 30051 ; 30052 if !(clen > 0) { 30053 goto __709 30054 } 30055 30056 *(*int32)(unsafe.Pointer(bp + 4 /* ncount2 */)) = 0 30057 if !(codevalue == Tuint32_t(DOP_EXTUNI_EXTRA+OP_TYPEPOSSTAR) || codevalue == Tuint32_t(DOP_EXTUNI_EXTRA+OP_TYPEPOSQUERY)) { 30058 goto __710 30059 } 30060 30061 active_count-- // Remove non-match possibility 30062 next_active_state -= 12 30063 __710: 30064 ; 30065 X_pcre2_extuni_8(tls, c, ptr+uintptr(clen), (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject, end_subject, utf, 30066 bp+4) 30067 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30068 goto __711 30069 } 30070 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + count) 30071 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 30072 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = *(*int32)(unsafe.Pointer(bp + 4)) 30073 next_new_state += 12 30074 goto __712 30075 __711: 30076 return -43 30077 __712: 30078 ; 30079 __709: 30080 ; 30081 goto __89 30082 30083 //----------------------------------------------------------------- 30084 __164: 30085 __165: 30086 __166: 30087 count = 2 30088 goto QS3 30089 30090 __167: 30091 __168: 30092 __169: 30093 count = 0 30094 30095 QS3: 30096 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 30097 goto __713 30098 } 30099 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 30100 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 30101 next_active_state += 12 30102 goto __714 30103 __713: 30104 return -43 30105 __714: 30106 ; 30107 if !(clen > 0) { 30108 goto __715 30109 } 30110 ncount3 = 0 30111 switch c { 30112 case Tuint32_t('\013'): 30113 goto __717 30114 case Tuint32_t('\014'): 30115 goto __718 30116 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 30117 goto __719 30118 case Tuint32_t(0x2028): 30119 goto __720 30120 case Tuint32_t(0x2029): 30121 goto __721 30122 30123 case Tuint32_t('\015'): 30124 goto __722 30125 case Tuint32_t('\012'): 30126 goto __723 30127 30128 default: 30129 goto __724 30130 } 30131 goto __716 30132 30133 __717: 30134 __718: 30135 __719: 30136 __720: 30137 __721: 30138 if !(int32((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fbsr_convention) == DPCRE2_BSR_ANYCRLF) { 30139 goto __725 30140 } 30141 goto __716 30142 __725: 30143 ; 30144 goto ANYNL02 30145 30146 __722: 30147 if !(ptr+uintptr(1) < end_subject && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(1)))) == '\012') { 30148 goto __726 30149 } 30150 ncount3 = 1 30151 __726: 30152 ; 30153 // Fall through 30154 30155 ANYNL02: 30156 __723: 30157 if !(codevalue == Tuint32_t(DOP_ANYNL_EXTRA+OP_TYPEPOSSTAR) || codevalue == Tuint32_t(DOP_ANYNL_EXTRA+OP_TYPEPOSQUERY)) { 30158 goto __727 30159 } 30160 30161 active_count-- // Remove non-match possibility 30162 next_active_state -= 12 30163 __727: 30164 ; 30165 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30166 goto __728 30167 } 30168 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + count) 30169 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 30170 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = ncount3 30171 next_new_state += 12 30172 goto __729 30173 __728: 30174 return -43 30175 __729: 30176 ; 30177 goto __716 30178 30179 __724: 30180 goto __716 30181 __716: 30182 ; 30183 __715: 30184 ; 30185 goto __89 30186 30187 //----------------------------------------------------------------- 30188 __170: 30189 __171: 30190 __172: 30191 count = 2 30192 goto QS4 30193 30194 __173: 30195 __174: 30196 __175: 30197 count = 0 30198 30199 QS4: 30200 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 30201 goto __730 30202 } 30203 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 30204 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 30205 next_active_state += 12 30206 goto __731 30207 __730: 30208 return -43 30209 __731: 30210 ; 30211 if !(clen > 0) { 30212 goto __732 30213 } 30214 30215 switch c { 30216 case Tuint32_t('\012'): 30217 goto __734 30218 case Tuint32_t('\013'): 30219 goto __735 30220 case Tuint32_t('\014'): 30221 goto __736 30222 case Tuint32_t('\015'): 30223 goto __737 30224 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 30225 goto __738 30226 case Tuint32_t(0x2028): 30227 goto __739 /* LINE SEPARATOR */ 30228 case Tuint32_t(0x2029): 30229 goto __740 30230 30231 default: 30232 goto __741 30233 } 30234 goto __733 30235 30236 __734: 30237 __735: 30238 __736: 30239 __737: 30240 __738: 30241 __739: /* LINE SEPARATOR */ 30242 __740: 30243 OK5 = DTRUE 30244 goto __733 30245 30246 __741: 30247 OK5 = DFALSE 30248 goto __733 30249 __733: 30250 ; 30251 if !(OK5 == libc.Bool32(d == OP_VSPACE)) { 30252 goto __742 30253 } 30254 30255 if !(codevalue == Tuint32_t(DOP_VSPACE_EXTRA+OP_TYPEPOSSTAR) || codevalue == Tuint32_t(DOP_VSPACE_EXTRA+OP_TYPEPOSQUERY)) { 30256 goto __743 30257 } 30258 30259 active_count-- // Remove non-match possibility 30260 next_active_state -= 12 30261 __743: 30262 ; 30263 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30264 goto __744 30265 } 30266 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + count) 30267 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 30268 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = 0 30269 next_new_state += 12 30270 goto __745 30271 __744: 30272 return -43 30273 __745: 30274 ; 30275 __742: 30276 ; 30277 __732: 30278 ; 30279 goto __89 30280 30281 //----------------------------------------------------------------- 30282 __176: 30283 __177: 30284 __178: 30285 count = 2 30286 goto QS5 30287 30288 __179: 30289 __180: 30290 __181: 30291 count = 0 30292 30293 QS5: 30294 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 30295 goto __746 30296 } 30297 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 30298 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 30299 next_active_state += 12 30300 goto __747 30301 __746: 30302 return -43 30303 __747: 30304 ; 30305 if !(clen > 0) { 30306 goto __748 30307 } 30308 30309 switch c { 30310 case Tuint32_t('\011'): 30311 goto __750 30312 case Tuint32_t('\040'): 30313 goto __751 30314 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 30315 goto __752 30316 case Tuint32_t(0x1680): 30317 goto __753 /* OGHAM SPACE MARK */ 30318 case Tuint32_t(0x180e): 30319 goto __754 /* MONGOLIAN VOWEL SEPARATOR */ 30320 case Tuint32_t(0x2000): 30321 goto __755 /* EN QUAD */ 30322 case Tuint32_t(0x2001): 30323 goto __756 /* EM QUAD */ 30324 case Tuint32_t(0x2002): 30325 goto __757 /* EN SPACE */ 30326 case Tuint32_t(0x2003): 30327 goto __758 /* EM SPACE */ 30328 case Tuint32_t(0x2004): 30329 goto __759 /* THREE-PER-EM SPACE */ 30330 case Tuint32_t(0x2005): 30331 goto __760 /* FOUR-PER-EM SPACE */ 30332 case Tuint32_t(0x2006): 30333 goto __761 /* SIX-PER-EM SPACE */ 30334 case Tuint32_t(0x2007): 30335 goto __762 /* FIGURE SPACE */ 30336 case Tuint32_t(0x2008): 30337 goto __763 /* PUNCTUATION SPACE */ 30338 case Tuint32_t(0x2009): 30339 goto __764 /* THIN SPACE */ 30340 case Tuint32_t(0x200A): 30341 goto __765 /* HAIR SPACE */ 30342 case Tuint32_t(0x202f): 30343 goto __766 /* NARROW NO-BREAK SPACE */ 30344 case Tuint32_t(0x205f): 30345 goto __767 /* MEDIUM MATHEMATICAL SPACE */ 30346 case Tuint32_t(0x3000): 30347 goto __768 30348 30349 default: 30350 goto __769 30351 } 30352 goto __749 30353 30354 __750: 30355 __751: 30356 __752: 30357 __753: /* OGHAM SPACE MARK */ 30358 __754: /* MONGOLIAN VOWEL SEPARATOR */ 30359 __755: /* EN QUAD */ 30360 __756: /* EM QUAD */ 30361 __757: /* EN SPACE */ 30362 __758: /* EM SPACE */ 30363 __759: /* THREE-PER-EM SPACE */ 30364 __760: /* FOUR-PER-EM SPACE */ 30365 __761: /* SIX-PER-EM SPACE */ 30366 __762: /* FIGURE SPACE */ 30367 __763: /* PUNCTUATION SPACE */ 30368 __764: /* THIN SPACE */ 30369 __765: /* HAIR SPACE */ 30370 __766: /* NARROW NO-BREAK SPACE */ 30371 __767: /* MEDIUM MATHEMATICAL SPACE */ 30372 __768: 30373 OK6 = DTRUE 30374 goto __749 30375 30376 __769: 30377 OK6 = DFALSE 30378 goto __749 30379 __749: 30380 ; 30381 30382 if !(OK6 == libc.Bool32(d == OP_HSPACE)) { 30383 goto __770 30384 } 30385 30386 if !(codevalue == Tuint32_t(DOP_HSPACE_EXTRA+OP_TYPEPOSSTAR) || codevalue == Tuint32_t(DOP_HSPACE_EXTRA+OP_TYPEPOSQUERY)) { 30387 goto __771 30388 } 30389 30390 active_count-- // Remove non-match possibility 30391 next_active_state -= 12 30392 __771: 30393 ; 30394 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30395 goto __772 30396 } 30397 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + count) 30398 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 30399 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = 0 30400 next_new_state += 12 30401 goto __773 30402 __772: 30403 return -43 30404 __773: 30405 ; 30406 __770: 30407 ; 30408 __748: 30409 ; 30410 goto __89 30411 30412 //----------------------------------------------------------------- 30413 __182: 30414 __183: 30415 __184: 30416 __185: 30417 if !(codevalue != Tuint32_t(DOP_PROP_EXTRA+OP_TYPEEXACT)) { 30418 goto __774 30419 } 30420 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 30421 goto __775 30422 } 30423 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 1 + DIMM2_SIZE + 3 30424 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 30425 next_active_state += 12 30426 goto __776 30427 __775: 30428 return -43 30429 __776: 30430 ; 30431 __774: 30432 ; 30433 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Number already matched 30434 if !(clen > 0) { 30435 goto __777 30436 } 30437 30438 prop3 = uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12 30439 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 4))) { 30440 case DPT_ANY: 30441 goto __779 30442 30443 case DPT_LAMP: 30444 goto __780 30445 30446 case DPT_GC: 30447 goto __781 30448 30449 case DPT_PC: 30450 goto __782 30451 30452 case DPT_SC: 30453 goto __783 30454 30455 case DPT_SCX: 30456 goto __784 30457 30458 // These are specials for combination cases. 30459 30460 case DPT_ALNUM: 30461 goto __785 30462 30463 // Perl space used to exclude VT, but from Perl 5.18 it is included, 30464 // which means that Perl space and POSIX space are now identical. PCRE 30465 // was changed at release 8.34. 30466 30467 case DPT_SPACE: 30468 goto __786 // Perl space 30469 case DPT_PXSPACE: 30470 goto __787 30471 30472 case DPT_WORD: 30473 goto __788 30474 30475 case DPT_CLIST: 30476 goto __789 30477 30478 case DPT_UCNC: 30479 goto __790 30480 30481 case DPT_BIDICL: 30482 goto __791 30483 30484 case DPT_BOOL: 30485 goto __792 30486 30487 // Should never occur, but keep compilers from grumbling. 30488 30489 default: 30490 goto __793 30491 } 30492 goto __778 30493 30494 __779: 30495 OK7 = DTRUE 30496 goto __778 30497 30498 __780: 30499 OK7 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop3)).Fchartype) == ucp_Lu || int32((*Tucd_record)(unsafe.Pointer(prop3)).Fchartype) == ucp_Ll || int32((*Tucd_record)(unsafe.Pointer(prop3)).Fchartype) == ucp_Lt) 30500 goto __778 30501 30502 __781: 30503 OK7 = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop3)).Fchartype] == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))) 30504 goto __778 30505 30506 __782: 30507 OK7 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop3)).Fchartype) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))) 30508 goto __778 30509 30510 __783: 30511 OK7 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop3)).Fscript) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))) 30512 goto __778 30513 30514 __784: 30515 OK7 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop3)).Fscript) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5))) || *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_script_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop3)).Fscriptx_bidiclass)&DUCD_SCRIPTX_MASK)*4 + uintptr(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))/32)*4))&(uint32(1)<<(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))%32)) != Tuint32_t(0)) 30516 goto __778 30517 30518 // These are specials for combination cases. 30519 30520 __785: 30521 OK7 = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop3)).Fchartype] == ucp_L || X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop3)).Fchartype] == ucp_N) 30522 goto __778 30523 30524 // Perl space used to exclude VT, but from Perl 5.18 it is included, 30525 // which means that Perl space and POSIX space are now identical. PCRE 30526 // was changed at release 8.34. 30527 30528 __786: // Perl space 30529 __787: // POSIX space 30530 switch c { 30531 case Tuint32_t('\011'): 30532 goto __795 30533 case Tuint32_t('\040'): 30534 goto __796 30535 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 30536 goto __797 30537 case Tuint32_t(0x1680): 30538 goto __798 /* OGHAM SPACE MARK */ 30539 case Tuint32_t(0x180e): 30540 goto __799 /* MONGOLIAN VOWEL SEPARATOR */ 30541 case Tuint32_t(0x2000): 30542 goto __800 /* EN QUAD */ 30543 case Tuint32_t(0x2001): 30544 goto __801 /* EM QUAD */ 30545 case Tuint32_t(0x2002): 30546 goto __802 /* EN SPACE */ 30547 case Tuint32_t(0x2003): 30548 goto __803 /* EM SPACE */ 30549 case Tuint32_t(0x2004): 30550 goto __804 /* THREE-PER-EM SPACE */ 30551 case Tuint32_t(0x2005): 30552 goto __805 /* FOUR-PER-EM SPACE */ 30553 case Tuint32_t(0x2006): 30554 goto __806 /* SIX-PER-EM SPACE */ 30555 case Tuint32_t(0x2007): 30556 goto __807 /* FIGURE SPACE */ 30557 case Tuint32_t(0x2008): 30558 goto __808 /* PUNCTUATION SPACE */ 30559 case Tuint32_t(0x2009): 30560 goto __809 /* THIN SPACE */ 30561 case Tuint32_t(0x200A): 30562 goto __810 /* HAIR SPACE */ 30563 case Tuint32_t(0x202f): 30564 goto __811 /* NARROW NO-BREAK SPACE */ 30565 case Tuint32_t(0x205f): 30566 goto __812 /* MEDIUM MATHEMATICAL SPACE */ 30567 case Tuint32_t(0x3000): 30568 goto __813 30569 case Tuint32_t('\012'): 30570 goto __814 30571 case Tuint32_t('\013'): 30572 goto __815 30573 case Tuint32_t('\014'): 30574 goto __816 30575 case Tuint32_t('\015'): 30576 goto __817 30577 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 30578 goto __818 30579 case Tuint32_t(0x2028): 30580 goto __819 /* LINE SEPARATOR */ 30581 case Tuint32_t(0x2029): 30582 goto __820 30583 30584 default: 30585 goto __821 30586 } 30587 goto __794 30588 30589 __795: 30590 __796: 30591 __797: 30592 __798: /* OGHAM SPACE MARK */ 30593 __799: /* MONGOLIAN VOWEL SEPARATOR */ 30594 __800: /* EN QUAD */ 30595 __801: /* EM QUAD */ 30596 __802: /* EN SPACE */ 30597 __803: /* EM SPACE */ 30598 __804: /* THREE-PER-EM SPACE */ 30599 __805: /* FOUR-PER-EM SPACE */ 30600 __806: /* SIX-PER-EM SPACE */ 30601 __807: /* FIGURE SPACE */ 30602 __808: /* PUNCTUATION SPACE */ 30603 __809: /* THIN SPACE */ 30604 __810: /* HAIR SPACE */ 30605 __811: /* NARROW NO-BREAK SPACE */ 30606 __812: /* MEDIUM MATHEMATICAL SPACE */ 30607 __813: 30608 __814: 30609 __815: 30610 __816: 30611 __817: 30612 __818: 30613 __819: /* LINE SEPARATOR */ 30614 __820: 30615 OK7 = DTRUE 30616 goto __794 30617 30618 __821: 30619 OK7 = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop3)).Fchartype] == ucp_Z) 30620 goto __794 30621 __794: 30622 ; 30623 goto __778 30624 30625 __788: 30626 OK7 = libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop3)).Fchartype] == ucp_L || X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop3)).Fchartype] == ucp_N || c == Tuint32_t('\137')) 30627 goto __778 30628 30629 __789: 30630 cp3 = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))*4 30631 __822: 30632 30633 if !(c < *(*Tuint32_t)(unsafe.Pointer(cp3))) { 30634 goto __825 30635 } 30636 OK7 = DFALSE 30637 goto __824 30638 __825: 30639 ; 30640 if !(c == *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&cp3, 4)))) { 30641 goto __826 30642 } 30643 OK7 = DTRUE 30644 goto __824 30645 __826: 30646 ; 30647 goto __823 30648 __823: 30649 goto __822 30650 goto __824 30651 __824: 30652 ; 30653 goto __778 30654 30655 __790: 30656 OK7 = libc.Bool32(c == Tuint32_t('\044') || c == Tuint32_t('\100') || c == Tuint32_t('\140') || c >= Tuint32_t(0xa0) && c <= Tuint32_t(0xd7ff) || c >= Tuint32_t(0xe000)) 30657 goto __778 30658 30659 __791: 30660 OK7 = libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12)).Fscriptx_bidiclass)>>DUCD_BIDICLASS_SHIFT == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))) 30661 goto __778 30662 30663 __792: 30664 OK7 = libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_boolprop_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop3)).Fbprops)&DUCD_BPROPS_MASK)*4 + uintptr(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))/32)*4))&(uint32(1)<<(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))%32)) != Tuint32_t(0)) 30665 goto __778 30666 30667 // Should never occur, but keep compilers from grumbling. 30668 30669 __793: 30670 OK7 = libc.Bool32(codevalue != OP_PROP) 30671 goto __778 30672 __778: 30673 ; 30674 30675 if !(OK7 == libc.Bool32(d == OP_PROP)) { 30676 goto __827 30677 } 30678 30679 if !(codevalue == Tuint32_t(DOP_PROP_EXTRA+OP_TYPEPOSUPTO)) { 30680 goto __828 30681 } 30682 30683 active_count-- // Remove non-match possibility 30684 next_active_state -= 12 30685 __828: 30686 ; 30687 if !(libc.PreIncInt32(&count, 1) >= int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))))) { 30688 goto __829 30689 } 30690 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30691 goto __831 30692 } 30693 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 + DIMM2_SIZE + 3 30694 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 30695 next_new_state += 12 30696 goto __832 30697 __831: 30698 return -43 30699 __832: 30700 ; 30701 goto __830 30702 __829: 30703 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30704 goto __833 30705 } 30706 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 30707 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 30708 next_new_state += 12 30709 goto __834 30710 __833: 30711 return -43 30712 __834: 30713 ; 30714 __830: 30715 ; 30716 __827: 30717 ; 30718 __777: 30719 ; 30720 goto __89 30721 30722 //----------------------------------------------------------------- 30723 __186: 30724 __187: 30725 __188: 30726 __189: 30727 if !(codevalue != Tuint32_t(DOP_EXTUNI_EXTRA+OP_TYPEEXACT)) { 30728 goto __835 30729 } 30730 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 30731 goto __836 30732 } 30733 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 + DIMM2_SIZE 30734 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 30735 next_active_state += 12 30736 goto __837 30737 __836: 30738 return -43 30739 __837: 30740 ; 30741 __835: 30742 ; 30743 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Number already matched 30744 if !(clen > 0) { 30745 goto __838 30746 } 30747 30748 *(*int32)(unsafe.Pointer(bp + 8 /* ncount4 */)) = 0 30749 if !(codevalue == Tuint32_t(DOP_EXTUNI_EXTRA+OP_TYPEPOSUPTO)) { 30750 goto __839 30751 } 30752 30753 active_count-- // Remove non-match possibility 30754 next_active_state -= 12 30755 __839: 30756 ; 30757 nptr = X_pcre2_extuni_8(tls, c, ptr+uintptr(clen), (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject, end_subject, utf, 30758 bp+8) 30759 if !(nptr >= end_subject && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0)) { 30760 goto __840 30761 } 30762 reset_could_continue = DTRUE 30763 __840: 30764 ; 30765 if !(libc.PreIncInt32(&count, 1) >= int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))))) { 30766 goto __841 30767 } 30768 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30769 goto __843 30770 } 30771 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + 2 + DIMM2_SIZE) 30772 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 30773 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = *(*int32)(unsafe.Pointer(bp + 8)) 30774 next_new_state += 12 30775 goto __844 30776 __843: 30777 return -43 30778 __844: 30779 ; 30780 goto __842 30781 __841: 30782 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30783 goto __845 30784 } 30785 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -state_offset 30786 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 30787 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = *(*int32)(unsafe.Pointer(bp + 8)) 30788 next_new_state += 12 30789 goto __846 30790 __845: 30791 return -43 30792 __846: 30793 ; 30794 __842: 30795 ; 30796 __838: 30797 ; 30798 goto __89 30799 30800 //----------------------------------------------------------------- 30801 __190: 30802 __191: 30803 __192: 30804 __193: 30805 if !(codevalue != Tuint32_t(DOP_ANYNL_EXTRA+OP_TYPEEXACT)) { 30806 goto __847 30807 } 30808 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 30809 goto __848 30810 } 30811 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 + DIMM2_SIZE 30812 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 30813 next_active_state += 12 30814 goto __849 30815 __848: 30816 return -43 30817 __849: 30818 ; 30819 __847: 30820 ; 30821 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Number already matched 30822 if !(clen > 0) { 30823 goto __850 30824 } 30825 ncount5 = 0 30826 switch c { 30827 case Tuint32_t('\013'): 30828 goto __852 30829 case Tuint32_t('\014'): 30830 goto __853 30831 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 30832 goto __854 30833 case Tuint32_t(0x2028): 30834 goto __855 30835 case Tuint32_t(0x2029): 30836 goto __856 30837 30838 case Tuint32_t('\015'): 30839 goto __857 30840 case Tuint32_t('\012'): 30841 goto __858 30842 30843 default: 30844 goto __859 30845 } 30846 goto __851 30847 30848 __852: 30849 __853: 30850 __854: 30851 __855: 30852 __856: 30853 if !(int32((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fbsr_convention) == DPCRE2_BSR_ANYCRLF) { 30854 goto __860 30855 } 30856 goto __851 30857 __860: 30858 ; 30859 goto ANYNL03 30860 30861 __857: 30862 if !(ptr+uintptr(1) < end_subject && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(1)))) == '\012') { 30863 goto __861 30864 } 30865 ncount5 = 1 30866 __861: 30867 ; 30868 // Fall through 30869 30870 ANYNL03: 30871 __858: 30872 if !(codevalue == Tuint32_t(DOP_ANYNL_EXTRA+OP_TYPEPOSUPTO)) { 30873 goto __862 30874 } 30875 30876 active_count-- // Remove non-match possibility 30877 next_active_state -= 12 30878 __862: 30879 ; 30880 if !(libc.PreIncInt32(&count, 1) >= int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))))) { 30881 goto __863 30882 } 30883 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30884 goto __865 30885 } 30886 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + 2 + DIMM2_SIZE) 30887 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 30888 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = ncount5 30889 next_new_state += 12 30890 goto __866 30891 __865: 30892 return -43 30893 __866: 30894 ; 30895 goto __864 30896 __863: 30897 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30898 goto __867 30899 } 30900 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -state_offset 30901 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 30902 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = ncount5 30903 next_new_state += 12 30904 goto __868 30905 __867: 30906 return -43 30907 __868: 30908 ; 30909 __864: 30910 ; 30911 goto __851 30912 30913 __859: 30914 goto __851 30915 __851: 30916 ; 30917 __850: 30918 ; 30919 goto __89 30920 30921 //----------------------------------------------------------------- 30922 __194: 30923 __195: 30924 __196: 30925 __197: 30926 if !(codevalue != Tuint32_t(DOP_VSPACE_EXTRA+OP_TYPEEXACT)) { 30927 goto __869 30928 } 30929 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 30930 goto __870 30931 } 30932 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 + DIMM2_SIZE 30933 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 30934 next_active_state += 12 30935 goto __871 30936 __870: 30937 return -43 30938 __871: 30939 ; 30940 __869: 30941 ; 30942 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Number already matched 30943 if !(clen > 0) { 30944 goto __872 30945 } 30946 30947 switch c { 30948 case Tuint32_t('\012'): 30949 goto __874 30950 case Tuint32_t('\013'): 30951 goto __875 30952 case Tuint32_t('\014'): 30953 goto __876 30954 case Tuint32_t('\015'): 30955 goto __877 30956 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 30957 goto __878 30958 case Tuint32_t(0x2028): 30959 goto __879 /* LINE SEPARATOR */ 30960 case Tuint32_t(0x2029): 30961 goto __880 30962 30963 default: 30964 goto __881 30965 } 30966 goto __873 30967 30968 __874: 30969 __875: 30970 __876: 30971 __877: 30972 __878: 30973 __879: /* LINE SEPARATOR */ 30974 __880: 30975 OK8 = DTRUE 30976 goto __873 30977 30978 __881: 30979 OK8 = DFALSE 30980 __873: 30981 ; 30982 30983 if !(OK8 == libc.Bool32(d == OP_VSPACE)) { 30984 goto __882 30985 } 30986 30987 if !(codevalue == Tuint32_t(DOP_VSPACE_EXTRA+OP_TYPEPOSUPTO)) { 30988 goto __883 30989 } 30990 30991 active_count-- // Remove non-match possibility 30992 next_active_state -= 12 30993 __883: 30994 ; 30995 if !(libc.PreIncInt32(&count, 1) >= int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))))) { 30996 goto __884 30997 } 30998 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 30999 goto __886 31000 } 31001 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + 2 + DIMM2_SIZE) 31002 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31003 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = 0 31004 next_new_state += 12 31005 goto __887 31006 __886: 31007 return -43 31008 __887: 31009 ; 31010 goto __885 31011 __884: 31012 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31013 goto __888 31014 } 31015 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -state_offset 31016 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 31017 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = 0 31018 next_new_state += 12 31019 goto __889 31020 __888: 31021 return -43 31022 __889: 31023 ; 31024 __885: 31025 ; 31026 __882: 31027 ; 31028 __872: 31029 ; 31030 goto __89 31031 31032 //----------------------------------------------------------------- 31033 __198: 31034 __199: 31035 __200: 31036 __201: 31037 if !(codevalue != Tuint32_t(DOP_HSPACE_EXTRA+OP_TYPEEXACT)) { 31038 goto __890 31039 } 31040 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 31041 goto __891 31042 } 31043 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + 2 + DIMM2_SIZE 31044 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 31045 next_active_state += 12 31046 goto __892 31047 __891: 31048 return -43 31049 __892: 31050 ; 31051 __890: 31052 ; 31053 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Number already matched 31054 if !(clen > 0) { 31055 goto __893 31056 } 31057 31058 switch c { 31059 case Tuint32_t('\011'): 31060 goto __895 31061 case Tuint32_t('\040'): 31062 goto __896 31063 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 31064 goto __897 31065 case Tuint32_t(0x1680): 31066 goto __898 /* OGHAM SPACE MARK */ 31067 case Tuint32_t(0x180e): 31068 goto __899 /* MONGOLIAN VOWEL SEPARATOR */ 31069 case Tuint32_t(0x2000): 31070 goto __900 /* EN QUAD */ 31071 case Tuint32_t(0x2001): 31072 goto __901 /* EM QUAD */ 31073 case Tuint32_t(0x2002): 31074 goto __902 /* EN SPACE */ 31075 case Tuint32_t(0x2003): 31076 goto __903 /* EM SPACE */ 31077 case Tuint32_t(0x2004): 31078 goto __904 /* THREE-PER-EM SPACE */ 31079 case Tuint32_t(0x2005): 31080 goto __905 /* FOUR-PER-EM SPACE */ 31081 case Tuint32_t(0x2006): 31082 goto __906 /* SIX-PER-EM SPACE */ 31083 case Tuint32_t(0x2007): 31084 goto __907 /* FIGURE SPACE */ 31085 case Tuint32_t(0x2008): 31086 goto __908 /* PUNCTUATION SPACE */ 31087 case Tuint32_t(0x2009): 31088 goto __909 /* THIN SPACE */ 31089 case Tuint32_t(0x200A): 31090 goto __910 /* HAIR SPACE */ 31091 case Tuint32_t(0x202f): 31092 goto __911 /* NARROW NO-BREAK SPACE */ 31093 case Tuint32_t(0x205f): 31094 goto __912 /* MEDIUM MATHEMATICAL SPACE */ 31095 case Tuint32_t(0x3000): 31096 goto __913 31097 31098 default: 31099 goto __914 31100 } 31101 goto __894 31102 31103 __895: 31104 __896: 31105 __897: 31106 __898: /* OGHAM SPACE MARK */ 31107 __899: /* MONGOLIAN VOWEL SEPARATOR */ 31108 __900: /* EN QUAD */ 31109 __901: /* EM QUAD */ 31110 __902: /* EN SPACE */ 31111 __903: /* EM SPACE */ 31112 __904: /* THREE-PER-EM SPACE */ 31113 __905: /* FOUR-PER-EM SPACE */ 31114 __906: /* SIX-PER-EM SPACE */ 31115 __907: /* FIGURE SPACE */ 31116 __908: /* PUNCTUATION SPACE */ 31117 __909: /* THIN SPACE */ 31118 __910: /* HAIR SPACE */ 31119 __911: /* NARROW NO-BREAK SPACE */ 31120 __912: /* MEDIUM MATHEMATICAL SPACE */ 31121 __913: 31122 OK9 = DTRUE 31123 goto __894 31124 31125 __914: 31126 OK9 = DFALSE 31127 goto __894 31128 __894: 31129 ; 31130 31131 if !(OK9 == libc.Bool32(d == OP_HSPACE)) { 31132 goto __915 31133 } 31134 31135 if !(codevalue == Tuint32_t(DOP_HSPACE_EXTRA+OP_TYPEPOSUPTO)) { 31136 goto __916 31137 } 31138 31139 active_count-- // Remove non-match possibility 31140 next_active_state -= 12 31141 __916: 31142 ; 31143 if !(libc.PreIncInt32(&count, 1) >= int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))))) { 31144 goto __917 31145 } 31146 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31147 goto __919 31148 } 31149 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + 2 + DIMM2_SIZE) 31150 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31151 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = 0 31152 next_new_state += 12 31153 goto __920 31154 __919: 31155 return -43 31156 __920: 31157 ; 31158 goto __918 31159 __917: 31160 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31161 goto __921 31162 } 31163 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -state_offset 31164 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 31165 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = 0 31166 next_new_state += 12 31167 goto __922 31168 __921: 31169 return -43 31170 __922: 31171 ; 31172 __918: 31173 ; 31174 __915: 31175 ; 31176 __893: 31177 ; 31178 goto __89 31179 31180 // ========================================================================== 31181 // These opcodes are followed by a character that is usually compared 31182 // to the current subject character; it is loaded into d. We still get 31183 // here even if there is no subject character, because in some cases zero 31184 // repetitions are permitted. 31185 31186 //----------------------------------------------------------------- 31187 __202: 31188 if !(clen > 0 && c == d) { 31189 goto __923 31190 } 31191 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31192 goto __924 31193 } 31194 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + dlen + 1 31195 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31196 next_new_state += 12 31197 goto __925 31198 __924: 31199 return -43 31200 __925: 31201 ; 31202 __923: 31203 ; 31204 goto __89 31205 31206 //----------------------------------------------------------------- 31207 __203: 31208 if !(clen == 0) { 31209 goto __926 31210 } 31211 goto __89 31212 __926: 31213 ; 31214 31215 if !(utf_or_ucp != 0) { 31216 goto __927 31217 } 31218 31219 if !(c == d) { 31220 goto __929 31221 } 31222 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31223 goto __931 31224 } 31225 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + dlen + 1 31226 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31227 next_new_state += 12 31228 goto __932 31229 __931: 31230 return -43 31231 __932: 31232 ; 31233 goto __930 31234 __929: 31235 31236 if !(c < Tuint32_t(128)) { 31237 goto __933 31238 } 31239 othercase = uint32(*(*Tuint8_t)(unsafe.Pointer(fcc + uintptr(c)))) 31240 goto __934 31241 __933: 31242 othercase = Tuint32_t(int32(c) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12)).Fother_case) 31243 __934: 31244 ; 31245 if !(d == othercase) { 31246 goto __935 31247 } 31248 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31249 goto __936 31250 } 31251 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + dlen + 1 31252 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31253 next_new_state += 12 31254 goto __937 31255 __936: 31256 return -43 31257 __937: 31258 ; 31259 __935: 31260 ; 31261 __930: 31262 ; 31263 goto __928 31264 __927: 31265 /* Not UTF or UCP mode */ 31266 31267 if !(int32(*(*Tuint8_t)(unsafe.Pointer(lcc + uintptr(c)))) == int32(*(*Tuint8_t)(unsafe.Pointer(lcc + uintptr(d))))) { 31268 goto __938 31269 } 31270 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31271 goto __939 31272 } 31273 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 2 31274 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31275 next_new_state += 12 31276 goto __940 31277 __939: 31278 return -43 31279 __940: 31280 ; 31281 __938: 31282 ; 31283 __928: 31284 ; 31285 goto __89 31286 31287 //----------------------------------------------------------------- 31288 // This is a tricky one because it can match more than one character. 31289 // Find out how many characters to skip, and then set up a negative state 31290 // to wait for them to pass before continuing. 31291 31292 __204: 31293 if !(clen > 0) { 31294 goto __941 31295 } 31296 31297 *(*int32)(unsafe.Pointer(bp + 12 /* ncount6 */)) = 0 31298 nptr1 = X_pcre2_extuni_8(tls, c, ptr+uintptr(clen), (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject, 31299 end_subject, utf, bp+12) 31300 if !(nptr1 >= end_subject && (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0)) { 31301 goto __942 31302 } 31303 reset_could_continue = DTRUE 31304 __942: 31305 ; 31306 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31307 goto __943 31308 } 31309 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + 1) 31310 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31311 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = *(*int32)(unsafe.Pointer(bp + 12)) 31312 next_new_state += 12 31313 goto __944 31314 __943: 31315 return -43 31316 __944: 31317 ; 31318 __941: 31319 ; 31320 goto __89 31321 31322 //----------------------------------------------------------------- 31323 // This is a tricky like EXTUNI because it too can match more than one 31324 // character (when CR is followed by LF). In this case, set up a negative 31325 // state to wait for one character to pass before continuing. 31326 31327 __205: 31328 if !(clen > 0) { 31329 goto __945 31330 } 31331 switch c { 31332 case Tuint32_t('\013'): 31333 goto __947 31334 case Tuint32_t('\014'): 31335 goto __948 31336 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 31337 goto __949 31338 case Tuint32_t(0x2028): 31339 goto __950 31340 case Tuint32_t(0x2029): 31341 goto __951 31342 // Fall through 31343 31344 case Tuint32_t('\012'): 31345 goto __952 31346 31347 case Tuint32_t('\015'): 31348 goto __953 31349 } 31350 goto __946 31351 31352 __947: 31353 __948: 31354 __949: 31355 __950: 31356 __951: 31357 if !(int32((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fbsr_convention) == DPCRE2_BSR_ANYCRLF) { 31358 goto __954 31359 } 31360 goto __946 31361 __954: 31362 ; 31363 // Fall through 31364 31365 __952: 31366 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31367 goto __955 31368 } 31369 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 31370 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31371 next_new_state += 12 31372 goto __956 31373 __955: 31374 return -43 31375 __956: 31376 ; 31377 goto __946 31378 31379 __953: 31380 if !(ptr+uintptr(1) >= end_subject) { 31381 goto __957 31382 } 31383 31384 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31385 goto __959 31386 } 31387 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 31388 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31389 next_new_state += 12 31390 goto __960 31391 __959: 31392 return -43 31393 __960: 31394 ; 31395 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0)) { 31396 goto __961 31397 } 31398 reset_could_continue = DTRUE 31399 __961: 31400 ; 31401 goto __958 31402 __957: 31403 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + uintptr(1)))) == '\012') { 31404 goto __962 31405 } 31406 31407 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31408 goto __964 31409 } 31410 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + 1) 31411 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31412 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = 1 31413 next_new_state += 12 31414 goto __965 31415 __964: 31416 return -43 31417 __965: 31418 ; 31419 goto __963 31420 __962: 31421 31422 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31423 goto __966 31424 } 31425 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 31426 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31427 next_new_state += 12 31428 goto __967 31429 __966: 31430 return -43 31431 __967: 31432 ; 31433 __963: 31434 ; 31435 __958: 31436 ; 31437 goto __946 31438 __946: 31439 ; 31440 __945: 31441 ; 31442 goto __89 31443 31444 //----------------------------------------------------------------- 31445 __206: 31446 if !(clen > 0) { 31447 goto __968 31448 } 31449 switch c { 31450 case Tuint32_t('\012'): 31451 goto __970 31452 case Tuint32_t('\013'): 31453 goto __971 31454 case Tuint32_t('\014'): 31455 goto __972 31456 case Tuint32_t('\015'): 31457 goto __973 31458 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 31459 goto __974 31460 case Tuint32_t(0x2028): 31461 goto __975 /* LINE SEPARATOR */ 31462 case Tuint32_t(0x2029): 31463 goto __976 31464 31465 default: 31466 goto __977 31467 } 31468 goto __969 31469 31470 __970: 31471 __971: 31472 __972: 31473 __973: 31474 __974: 31475 __975: /* LINE SEPARATOR */ 31476 __976: 31477 goto __969 31478 31479 __977: 31480 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31481 goto __978 31482 } 31483 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 31484 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31485 next_new_state += 12 31486 goto __979 31487 __978: 31488 return -43 31489 __979: 31490 ; 31491 goto __969 31492 __969: 31493 ; 31494 __968: 31495 ; 31496 goto __89 31497 31498 //----------------------------------------------------------------- 31499 __207: 31500 if !(clen > 0) { 31501 goto __980 31502 } 31503 switch c { 31504 case Tuint32_t('\012'): 31505 goto __982 31506 case Tuint32_t('\013'): 31507 goto __983 31508 case Tuint32_t('\014'): 31509 goto __984 31510 case Tuint32_t('\015'): 31511 goto __985 31512 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 31513 goto __986 31514 case Tuint32_t(0x2028): 31515 goto __987 /* LINE SEPARATOR */ 31516 case Tuint32_t(0x2029): 31517 goto __988 31518 31519 default: 31520 goto __989 31521 } 31522 goto __981 31523 31524 __982: 31525 __983: 31526 __984: 31527 __985: 31528 __986: 31529 __987: /* LINE SEPARATOR */ 31530 __988: 31531 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31532 goto __990 31533 } 31534 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 31535 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31536 next_new_state += 12 31537 goto __991 31538 __990: 31539 return -43 31540 __991: 31541 ; 31542 goto __981 31543 31544 __989: 31545 goto __981 31546 __981: 31547 ; 31548 __980: 31549 ; 31550 goto __89 31551 31552 //----------------------------------------------------------------- 31553 __208: 31554 if !(clen > 0) { 31555 goto __992 31556 } 31557 switch c { 31558 case Tuint32_t('\011'): 31559 goto __994 31560 case Tuint32_t('\040'): 31561 goto __995 31562 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 31563 goto __996 31564 case Tuint32_t(0x1680): 31565 goto __997 /* OGHAM SPACE MARK */ 31566 case Tuint32_t(0x180e): 31567 goto __998 /* MONGOLIAN VOWEL SEPARATOR */ 31568 case Tuint32_t(0x2000): 31569 goto __999 /* EN QUAD */ 31570 case Tuint32_t(0x2001): 31571 goto __1000 /* EM QUAD */ 31572 case Tuint32_t(0x2002): 31573 goto __1001 /* EN SPACE */ 31574 case Tuint32_t(0x2003): 31575 goto __1002 /* EM SPACE */ 31576 case Tuint32_t(0x2004): 31577 goto __1003 /* THREE-PER-EM SPACE */ 31578 case Tuint32_t(0x2005): 31579 goto __1004 /* FOUR-PER-EM SPACE */ 31580 case Tuint32_t(0x2006): 31581 goto __1005 /* SIX-PER-EM SPACE */ 31582 case Tuint32_t(0x2007): 31583 goto __1006 /* FIGURE SPACE */ 31584 case Tuint32_t(0x2008): 31585 goto __1007 /* PUNCTUATION SPACE */ 31586 case Tuint32_t(0x2009): 31587 goto __1008 /* THIN SPACE */ 31588 case Tuint32_t(0x200A): 31589 goto __1009 /* HAIR SPACE */ 31590 case Tuint32_t(0x202f): 31591 goto __1010 /* NARROW NO-BREAK SPACE */ 31592 case Tuint32_t(0x205f): 31593 goto __1011 /* MEDIUM MATHEMATICAL SPACE */ 31594 case Tuint32_t(0x3000): 31595 goto __1012 31596 31597 default: 31598 goto __1013 31599 } 31600 goto __993 31601 31602 __994: 31603 __995: 31604 __996: 31605 __997: /* OGHAM SPACE MARK */ 31606 __998: /* MONGOLIAN VOWEL SEPARATOR */ 31607 __999: /* EN QUAD */ 31608 __1000: /* EM QUAD */ 31609 __1001: /* EN SPACE */ 31610 __1002: /* EM SPACE */ 31611 __1003: /* THREE-PER-EM SPACE */ 31612 __1004: /* FOUR-PER-EM SPACE */ 31613 __1005: /* SIX-PER-EM SPACE */ 31614 __1006: /* FIGURE SPACE */ 31615 __1007: /* PUNCTUATION SPACE */ 31616 __1008: /* THIN SPACE */ 31617 __1009: /* HAIR SPACE */ 31618 __1010: /* NARROW NO-BREAK SPACE */ 31619 __1011: /* MEDIUM MATHEMATICAL SPACE */ 31620 __1012: 31621 goto __993 31622 31623 __1013: 31624 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31625 goto __1014 31626 } 31627 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 31628 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31629 next_new_state += 12 31630 goto __1015 31631 __1014: 31632 return -43 31633 __1015: 31634 ; 31635 goto __993 31636 __993: 31637 ; 31638 __992: 31639 ; 31640 goto __89 31641 31642 //----------------------------------------------------------------- 31643 __209: 31644 if !(clen > 0) { 31645 goto __1016 31646 } 31647 switch c { 31648 case Tuint32_t('\011'): 31649 goto __1018 31650 case Tuint32_t('\040'): 31651 goto __1019 31652 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 31653 goto __1020 31654 case Tuint32_t(0x1680): 31655 goto __1021 /* OGHAM SPACE MARK */ 31656 case Tuint32_t(0x180e): 31657 goto __1022 /* MONGOLIAN VOWEL SEPARATOR */ 31658 case Tuint32_t(0x2000): 31659 goto __1023 /* EN QUAD */ 31660 case Tuint32_t(0x2001): 31661 goto __1024 /* EM QUAD */ 31662 case Tuint32_t(0x2002): 31663 goto __1025 /* EN SPACE */ 31664 case Tuint32_t(0x2003): 31665 goto __1026 /* EM SPACE */ 31666 case Tuint32_t(0x2004): 31667 goto __1027 /* THREE-PER-EM SPACE */ 31668 case Tuint32_t(0x2005): 31669 goto __1028 /* FOUR-PER-EM SPACE */ 31670 case Tuint32_t(0x2006): 31671 goto __1029 /* SIX-PER-EM SPACE */ 31672 case Tuint32_t(0x2007): 31673 goto __1030 /* FIGURE SPACE */ 31674 case Tuint32_t(0x2008): 31675 goto __1031 /* PUNCTUATION SPACE */ 31676 case Tuint32_t(0x2009): 31677 goto __1032 /* THIN SPACE */ 31678 case Tuint32_t(0x200A): 31679 goto __1033 /* HAIR SPACE */ 31680 case Tuint32_t(0x202f): 31681 goto __1034 /* NARROW NO-BREAK SPACE */ 31682 case Tuint32_t(0x205f): 31683 goto __1035 /* MEDIUM MATHEMATICAL SPACE */ 31684 case Tuint32_t(0x3000): 31685 goto __1036 31686 31687 default: 31688 goto __1037 31689 } 31690 goto __1017 31691 31692 __1018: 31693 __1019: 31694 __1020: 31695 __1021: /* OGHAM SPACE MARK */ 31696 __1022: /* MONGOLIAN VOWEL SEPARATOR */ 31697 __1023: /* EN QUAD */ 31698 __1024: /* EM QUAD */ 31699 __1025: /* EN SPACE */ 31700 __1026: /* EM SPACE */ 31701 __1027: /* THREE-PER-EM SPACE */ 31702 __1028: /* FOUR-PER-EM SPACE */ 31703 __1029: /* SIX-PER-EM SPACE */ 31704 __1030: /* FIGURE SPACE */ 31705 __1031: /* PUNCTUATION SPACE */ 31706 __1032: /* THIN SPACE */ 31707 __1033: /* HAIR SPACE */ 31708 __1034: /* NARROW NO-BREAK SPACE */ 31709 __1035: /* MEDIUM MATHEMATICAL SPACE */ 31710 __1036: 31711 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31712 goto __1038 31713 } 31714 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + 1 31715 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31716 next_new_state += 12 31717 goto __1039 31718 __1038: 31719 return -43 31720 __1039: 31721 ; 31722 goto __1017 31723 31724 __1037: 31725 goto __1017 31726 __1017: 31727 ; 31728 __1016: 31729 ; 31730 goto __89 31731 31732 //----------------------------------------------------------------- 31733 // Match a negated single character casefully. 31734 31735 __210: 31736 if !(clen > 0 && c != d) { 31737 goto __1040 31738 } 31739 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31740 goto __1041 31741 } 31742 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + dlen + 1 31743 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31744 next_new_state += 12 31745 goto __1042 31746 __1041: 31747 return -43 31748 __1042: 31749 ; 31750 __1040: 31751 ; 31752 goto __89 31753 31754 //----------------------------------------------------------------- 31755 // Match a negated single character caselessly. 31756 31757 __211: 31758 if !(clen > 0) { 31759 goto __1043 31760 } 31761 31762 if !(utf_or_ucp != 0 && d >= Tuint32_t(128)) { 31763 goto __1044 31764 } 31765 otherd = Tuint32_t(int32(d) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(d)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(d)%DUCD_BLOCK_SIZE])*12)).Fother_case) 31766 goto __1045 31767 __1044: 31768 otherd = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(fcc + uintptr(d)))) 31769 __1045: 31770 ; 31771 if !(c != d && c != otherd) { 31772 goto __1046 31773 } 31774 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31775 goto __1047 31776 } 31777 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + dlen + 1 31778 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31779 next_new_state += 12 31780 goto __1048 31781 __1047: 31782 return -43 31783 __1048: 31784 ; 31785 __1046: 31786 ; 31787 __1043: 31788 ; 31789 goto __89 31790 31791 //----------------------------------------------------------------- 31792 __212: 31793 __213: 31794 __214: 31795 __215: 31796 __216: 31797 __217: 31798 caseless = DTRUE 31799 codevalue = codevalue - Tuint32_t(OP_STARI-OP_STAR) 31800 31801 // Fall through 31802 __218: 31803 __219: 31804 __220: 31805 __221: 31806 __222: 31807 __223: 31808 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Already matched 31809 if !(count > 0) { 31810 goto __1049 31811 } 31812 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 31813 goto __1050 31814 } 31815 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + dlen + 1 31816 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 31817 next_active_state += 12 31818 goto __1051 31819 __1050: 31820 return -43 31821 __1051: 31822 ; 31823 __1049: 31824 ; 31825 if !(clen > 0) { 31826 goto __1052 31827 } 31828 31829 otherd1 = DNOTACHAR 31830 if !(caseless != 0) { 31831 goto __1053 31832 } 31833 31834 if !(utf_or_ucp != 0 && d >= Tuint32_t(128)) { 31835 goto __1054 31836 } 31837 otherd1 = Tuint32_t(int32(d) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(d)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(d)%DUCD_BLOCK_SIZE])*12)).Fother_case) 31838 goto __1055 31839 __1054: 31840 otherd1 = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(fcc + uintptr(d)))) 31841 __1055: 31842 ; 31843 __1053: 31844 ; 31845 if !(libc.Bool32(c == d || c == otherd1) == libc.Bool32(codevalue < OP_NOTSTAR)) { 31846 goto __1056 31847 } 31848 31849 if !(count > 0 && (codevalue == OP_POSPLUS || codevalue == OP_NOTPOSPLUS)) { 31850 goto __1057 31851 } 31852 31853 active_count-- // Remove non-match possibility 31854 next_active_state -= 12 31855 __1057: 31856 ; 31857 count++ 31858 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31859 goto __1058 31860 } 31861 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 31862 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 31863 next_new_state += 12 31864 goto __1059 31865 __1058: 31866 return -43 31867 __1059: 31868 ; 31869 __1056: 31870 ; 31871 __1052: 31872 ; 31873 goto __89 31874 31875 //----------------------------------------------------------------- 31876 __224: 31877 __225: 31878 __226: 31879 __227: 31880 __228: 31881 __229: 31882 caseless = DTRUE 31883 codevalue = codevalue - Tuint32_t(OP_STARI-OP_STAR) 31884 // Fall through 31885 __230: 31886 __231: 31887 __232: 31888 __233: 31889 __234: 31890 __235: 31891 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 31892 goto __1060 31893 } 31894 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + dlen + 1 31895 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 31896 next_active_state += 12 31897 goto __1061 31898 __1060: 31899 return -43 31900 __1061: 31901 ; 31902 if !(clen > 0) { 31903 goto __1062 31904 } 31905 31906 otherd2 = DNOTACHAR 31907 if !(caseless != 0) { 31908 goto __1063 31909 } 31910 31911 if !(utf_or_ucp != 0 && d >= Tuint32_t(128)) { 31912 goto __1064 31913 } 31914 otherd2 = Tuint32_t(int32(d) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(d)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(d)%DUCD_BLOCK_SIZE])*12)).Fother_case) 31915 goto __1065 31916 __1064: 31917 otherd2 = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(fcc + uintptr(d)))) 31918 __1065: 31919 ; 31920 __1063: 31921 ; 31922 if !(libc.Bool32(c == d || c == otherd2) == libc.Bool32(codevalue < OP_NOTSTAR)) { 31923 goto __1066 31924 } 31925 31926 if !(codevalue == OP_POSQUERY || codevalue == OP_NOTPOSQUERY) { 31927 goto __1067 31928 } 31929 31930 active_count-- // Remove non-match possibility 31931 next_active_state -= 12 31932 __1067: 31933 ; 31934 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 31935 goto __1068 31936 } 31937 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + dlen + 1 31938 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 31939 next_new_state += 12 31940 goto __1069 31941 __1068: 31942 return -43 31943 __1069: 31944 ; 31945 __1066: 31946 ; 31947 __1062: 31948 ; 31949 goto __89 31950 31951 //----------------------------------------------------------------- 31952 __236: 31953 __237: 31954 __238: 31955 __239: 31956 __240: 31957 __241: 31958 caseless = DTRUE 31959 codevalue = codevalue - Tuint32_t(OP_STARI-OP_STAR) 31960 // Fall through 31961 __242: 31962 __243: 31963 __244: 31964 __245: 31965 __246: 31966 __247: 31967 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 31968 goto __1070 31969 } 31970 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + dlen + 1 31971 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 31972 next_active_state += 12 31973 goto __1071 31974 __1070: 31975 return -43 31976 __1071: 31977 ; 31978 if !(clen > 0) { 31979 goto __1072 31980 } 31981 31982 otherd3 = DNOTACHAR 31983 if !(caseless != 0) { 31984 goto __1073 31985 } 31986 31987 if !(utf_or_ucp != 0 && d >= Tuint32_t(128)) { 31988 goto __1074 31989 } 31990 otherd3 = Tuint32_t(int32(d) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(d)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(d)%DUCD_BLOCK_SIZE])*12)).Fother_case) 31991 goto __1075 31992 __1074: 31993 otherd3 = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(fcc + uintptr(d)))) 31994 __1075: 31995 ; 31996 __1073: 31997 ; 31998 if !(libc.Bool32(c == d || c == otherd3) == libc.Bool32(codevalue < OP_NOTSTAR)) { 31999 goto __1076 32000 } 32001 32002 if !(codevalue == OP_POSSTAR || codevalue == OP_NOTPOSSTAR) { 32003 goto __1077 32004 } 32005 32006 active_count-- // Remove non-match possibility 32007 next_active_state -= 12 32008 __1077: 32009 ; 32010 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32011 goto __1078 32012 } 32013 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 32014 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 32015 next_new_state += 12 32016 goto __1079 32017 __1078: 32018 return -43 32019 __1079: 32020 ; 32021 __1076: 32022 ; 32023 __1072: 32024 ; 32025 goto __89 32026 32027 //----------------------------------------------------------------- 32028 __248: 32029 __249: 32030 caseless = DTRUE 32031 codevalue = codevalue - Tuint32_t(OP_STARI-OP_STAR) 32032 // Fall through 32033 __250: 32034 __251: 32035 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Number already matched 32036 if !(clen > 0) { 32037 goto __1080 32038 } 32039 32040 otherd4 = DNOTACHAR 32041 if !(caseless != 0) { 32042 goto __1081 32043 } 32044 32045 if !(utf_or_ucp != 0 && d >= Tuint32_t(128)) { 32046 goto __1082 32047 } 32048 otherd4 = Tuint32_t(int32(d) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(d)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(d)%DUCD_BLOCK_SIZE])*12)).Fother_case) 32049 goto __1083 32050 __1082: 32051 otherd4 = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(fcc + uintptr(d)))) 32052 __1083: 32053 ; 32054 __1081: 32055 ; 32056 if !(libc.Bool32(c == d || c == otherd4) == libc.Bool32(codevalue < OP_NOTSTAR)) { 32057 goto __1084 32058 } 32059 32060 if !(libc.PreIncInt32(&count, 1) >= int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))))) { 32061 goto __1085 32062 } 32063 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32064 goto __1087 32065 } 32066 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + dlen + 1 + DIMM2_SIZE 32067 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 32068 next_new_state += 12 32069 goto __1088 32070 __1087: 32071 return -43 32072 __1088: 32073 ; 32074 goto __1086 32075 __1085: 32076 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32077 goto __1089 32078 } 32079 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 32080 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 32081 next_new_state += 12 32082 goto __1090 32083 __1089: 32084 return -43 32085 __1090: 32086 ; 32087 __1086: 32088 ; 32089 __1084: 32090 ; 32091 __1080: 32092 ; 32093 goto __89 32094 32095 //----------------------------------------------------------------- 32096 __252: 32097 __253: 32098 __254: 32099 __255: 32100 __256: 32101 __257: 32102 caseless = DTRUE 32103 codevalue = codevalue - Tuint32_t(OP_STARI-OP_STAR) 32104 // Fall through 32105 __258: 32106 __259: 32107 __260: 32108 __261: 32109 __262: 32110 __263: 32111 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32112 goto __1091 32113 } 32114 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + dlen + 1 + DIMM2_SIZE 32115 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32116 next_active_state += 12 32117 goto __1092 32118 __1091: 32119 return -43 32120 __1092: 32121 ; 32122 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Number already matched 32123 if !(clen > 0) { 32124 goto __1093 32125 } 32126 32127 otherd5 = DNOTACHAR 32128 if !(caseless != 0) { 32129 goto __1094 32130 } 32131 32132 if !(utf_or_ucp != 0 && d >= Tuint32_t(128)) { 32133 goto __1095 32134 } 32135 otherd5 = Tuint32_t(int32(d) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(d)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(d)%DUCD_BLOCK_SIZE])*12)).Fother_case) 32136 goto __1096 32137 __1095: 32138 otherd5 = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer(fcc + uintptr(d)))) 32139 __1096: 32140 ; 32141 __1094: 32142 ; 32143 if !(libc.Bool32(c == d || c == otherd5) == libc.Bool32(codevalue < OP_NOTSTAR)) { 32144 goto __1097 32145 } 32146 32147 if !(codevalue == OP_POSUPTO || codevalue == OP_NOTPOSUPTO) { 32148 goto __1098 32149 } 32150 32151 active_count-- // Remove non-match possibility 32152 next_active_state -= 12 32153 __1098: 32154 ; 32155 if !(libc.PreIncInt32(&count, 1) >= int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2)))))) { 32156 goto __1099 32157 } 32158 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32159 goto __1101 32160 } 32161 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset + dlen + 1 + DIMM2_SIZE 32162 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 32163 next_new_state += 12 32164 goto __1102 32165 __1101: 32166 return -43 32167 __1102: 32168 ; 32169 goto __1100 32170 __1099: 32171 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32172 goto __1103 32173 } 32174 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 32175 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 32176 next_new_state += 12 32177 goto __1104 32178 __1103: 32179 return -43 32180 __1104: 32181 ; 32182 __1100: 32183 ; 32184 __1097: 32185 ; 32186 __1093: 32187 ; 32188 goto __89 32189 32190 // ========================================================================== 32191 // These are the class-handling opcodes 32192 32193 __264: 32194 __265: 32195 __266: 32196 32197 isinclass = DFALSE 32198 32199 // For a simple class, there is always just a 32-byte table, and we 32200 // can set isinclass from it. 32201 32202 if !(codevalue != OP_XCLASS) { 32203 goto __1105 32204 } 32205 32206 ecode = code + uintptr(1) + uintptr(uint64(32)/uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0)))) 32207 if !(clen > 0) { 32208 goto __1107 32209 } 32210 32211 if c > Tuint32_t(255) { 32212 isinclass = libc.Bool32(codevalue == OP_NCLASS) 32213 } else { 32214 isinclass = libc.Bool32(uint32(*(*Tuint8_t)(unsafe.Pointer(code + uintptr(1) + uintptr(c/Tuint32_t(8)))))&(uint32(1)<<(c&Tuint32_t(7))) != uint32(0)) 32215 } 32216 __1107: 32217 ; 32218 goto __1106 32219 __1105: 32220 32221 ecode = code + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 32222 if !(clen > 0) { 32223 goto __1108 32224 } 32225 isinclass = X_pcre2_xclass_8(tls, c, code+uintptr(1)+uintptr(DLINK_SIZE), utf) 32226 __1108: 32227 ; 32228 __1106: 32229 ; 32230 32231 // At this point, isinclass is set for all kinds of class, and ecode 32232 // points to the byte after the end of the class. If there is a 32233 // quantifier, this is where it will be. 32234 32235 next_state_offset = int32((int64(ecode) - int64(start_code)) / 1) 32236 32237 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ecode))) { 32238 case OP_CRSTAR: 32239 goto __1110 32240 case OP_CRMINSTAR: 32241 goto __1111 32242 case OP_CRPOSSTAR: 32243 goto __1112 32244 32245 case OP_CRPLUS: 32246 goto __1113 32247 case OP_CRMINPLUS: 32248 goto __1114 32249 case OP_CRPOSPLUS: 32250 goto __1115 32251 32252 case OP_CRQUERY: 32253 goto __1116 32254 case OP_CRMINQUERY: 32255 goto __1117 32256 case OP_CRPOSQUERY: 32257 goto __1118 32258 32259 case OP_CRRANGE: 32260 goto __1119 32261 case OP_CRMINRANGE: 32262 goto __1120 32263 case OP_CRPOSRANGE: 32264 goto __1121 32265 32266 default: 32267 goto __1122 32268 } 32269 goto __1109 32270 32271 __1110: 32272 __1111: 32273 __1112: 32274 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32275 goto __1123 32276 } 32277 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = next_state_offset + 1 32278 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32279 next_active_state += 12 32280 goto __1124 32281 __1123: 32282 return -43 32283 __1124: 32284 ; 32285 if !(isinclass != 0) { 32286 goto __1125 32287 } 32288 32289 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ecode))) == OP_CRPOSSTAR) { 32290 goto __1126 32291 } 32292 32293 active_count-- // Remove non-match possibility 32294 next_active_state -= 12 32295 __1126: 32296 ; 32297 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32298 goto __1127 32299 } 32300 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 32301 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 32302 next_new_state += 12 32303 goto __1128 32304 __1127: 32305 return -43 32306 __1128: 32307 ; 32308 __1125: 32309 ; 32310 goto __1109 32311 32312 __1113: 32313 __1114: 32314 __1115: 32315 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Already matched 32316 if !(count > 0) { 32317 goto __1129 32318 } 32319 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32320 goto __1130 32321 } 32322 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = next_state_offset + 1 32323 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32324 next_active_state += 12 32325 goto __1131 32326 __1130: 32327 return -43 32328 __1131: 32329 ; 32330 __1129: 32331 ; 32332 if !(isinclass != 0) { 32333 goto __1132 32334 } 32335 32336 if !(count > 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ecode))) == OP_CRPOSPLUS) { 32337 goto __1133 32338 } 32339 32340 active_count-- // Remove non-match possibility 32341 next_active_state -= 12 32342 __1133: 32343 ; 32344 count++ 32345 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32346 goto __1134 32347 } 32348 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 32349 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 32350 next_new_state += 12 32351 goto __1135 32352 __1134: 32353 return -43 32354 __1135: 32355 ; 32356 __1132: 32357 ; 32358 goto __1109 32359 32360 __1116: 32361 __1117: 32362 __1118: 32363 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32364 goto __1136 32365 } 32366 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = next_state_offset + 1 32367 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32368 next_active_state += 12 32369 goto __1137 32370 __1136: 32371 return -43 32372 __1137: 32373 ; 32374 if !(isinclass != 0) { 32375 goto __1138 32376 } 32377 32378 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ecode))) == OP_CRPOSQUERY) { 32379 goto __1139 32380 } 32381 32382 active_count-- // Remove non-match possibility 32383 next_active_state -= 12 32384 __1139: 32385 ; 32386 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32387 goto __1140 32388 } 32389 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = next_state_offset + 1 32390 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 32391 next_new_state += 12 32392 goto __1141 32393 __1140: 32394 return -43 32395 __1141: 32396 ; 32397 __1138: 32398 ; 32399 goto __1109 32400 32401 __1119: 32402 __1120: 32403 __1121: 32404 count = (*Tstateblock)(unsafe.Pointer(current_state)).Fcount // Already matched 32405 if !(count >= int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ecode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ecode + 2)))))) { 32406 goto __1142 32407 } 32408 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32409 goto __1143 32410 } 32411 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = next_state_offset + 1 + 2*DIMM2_SIZE 32412 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32413 next_active_state += 12 32414 goto __1144 32415 __1143: 32416 return -43 32417 __1144: 32418 ; 32419 __1142: 32420 ; 32421 if !(isinclass != 0) { 32422 goto __1145 32423 } 32424 32425 max = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ecode + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ecode + 4))))) 32426 32427 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ecode))) == OP_CRPOSRANGE && count >= int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ecode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ecode + 2)))))) { 32428 goto __1146 32429 } 32430 32431 active_count-- // Remove non-match possibility 32432 next_active_state -= 12 32433 __1146: 32434 ; 32435 32436 if !(libc.PreIncInt32(&count, 1) >= max && max != 0) { 32437 goto __1147 32438 } /* Max 0 => no limit */ 32439 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32440 goto __1149 32441 } 32442 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = next_state_offset + 1 + 2*DIMM2_SIZE 32443 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 32444 next_new_state += 12 32445 goto __1150 32446 __1149: 32447 return -43 32448 __1150: 32449 ; 32450 goto __1148 32451 __1147: 32452 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32453 goto __1151 32454 } 32455 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = state_offset 32456 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = count 32457 next_new_state += 12 32458 goto __1152 32459 __1151: 32460 return -43 32461 __1152: 32462 ; 32463 __1148: 32464 ; 32465 __1145: 32466 ; 32467 goto __1109 32468 32469 __1122: 32470 if !(isinclass != 0) { 32471 goto __1153 32472 } 32473 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32474 goto __1154 32475 } 32476 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = next_state_offset 32477 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 32478 next_new_state += 12 32479 goto __1155 32480 __1154: 32481 return -43 32482 __1155: 32483 ; 32484 __1153: 32485 ; 32486 goto __1109 32487 __1109: 32488 ; 32489 32490 goto __89 32491 32492 // ========================================================================== 32493 // These are the opcodes for fancy brackets of various kinds. We have 32494 // to use recursion in order to handle them. The "always failing" assertion 32495 // (?!) is optimised to OP_FAIL when compiling, so we have to support that, 32496 // though the other "backtracking verbs" are not supported. 32497 32498 __267: 32499 forced_fail++ // Count FAILs for multiple states 32500 goto __89 32501 32502 __268: 32503 __269: 32504 __270: 32505 __271: 32506 32507 endasscode = code + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 32508 *(*uintptr)(unsafe.Pointer(bp + 16 /* rws */)) = RWS 32509 32510 if !(uint64((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).Ffree) < uint64(DRWS_RSIZE)+uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))) { 32511 goto __1156 32512 } 32513 32514 rc = more_workspace(tls, bp+16, uint32(uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))), mb) 32515 if !(rc != 0) { 32516 goto __1157 32517 } 32518 return rc 32519 __1157: 32520 ; 32521 RWS = *(*uintptr)(unsafe.Pointer(bp + 16 /* rws */)) 32522 __1156: 32523 ; 32524 32525 local_offsets = RWS + uintptr((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).Fsize)*4 - uintptr((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)))).Ffree)*4 32526 local_workspace = local_offsets + uintptr(uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0)))))*4 32527 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)) + 12)) -= uint32(uint64(DRWS_RSIZE) + uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))) 32528 32529 __1158: 32530 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(endasscode))) == OP_ALT) { 32531 goto __1159 32532 } 32533 endasscode += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(endasscode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(endasscode + 2))))) 32534 goto __1158 32535 __1159: 32536 ; 32537 32538 rc = internal_dfa_match(tls, 32539 mb, // static match data 32540 code, // this subexpression's code 32541 ptr, // where we currently are 32542 Tsize_t((int64(ptr)-int64(start_subject))/1), 32543 local_offsets, // offset vector 32544 uint32(uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))/(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))), 32545 local_workspace, // workspace vector 32546 DRWS_RSIZE, // size of same 32547 rlevel, // function recursion level 32548 RWS) // recursion workspace 32549 32550 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 16)) + 12)) += uint32(uint64(DRWS_RSIZE) + uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))) 32551 32552 if !(rc < 0 && rc != -1) { 32553 goto __1160 32554 } 32555 return rc 32556 __1160: 32557 ; 32558 if !(libc.Bool32(rc >= 0) == libc.Bool32(codevalue == OP_ASSERT || codevalue == OP_ASSERTBACK)) { 32559 goto __1161 32560 } 32561 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32562 goto __1162 32563 } 32564 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = int32((int64(endasscode+uintptr(DLINK_SIZE)+uintptr(1)) - int64(start_code)) / 1) 32565 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32566 next_active_state += 12 32567 goto __1163 32568 __1162: 32569 return -43 32570 __1163: 32571 ; 32572 __1161: 32573 ; 32574 32575 goto __89 32576 32577 //----------------------------------------------------------------- 32578 __272: 32579 __273: 32580 32581 codelink = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 32582 32583 // Because of the way auto-callout works during compile, a callout item 32584 // is inserted between OP_COND and an assertion condition. This does not 32585 // happen for the other conditions. 32586 32587 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))) == OP_CALLOUT || 32588 int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))) == OP_CALLOUT_STR) { 32589 goto __1164 32590 } 32591 32592 rrc = do_callout(tls, code, offsets, current_subject, ptr, mb, 32593 uint64(1+DLINK_SIZE), bp+24) 32594 if !(rrc < 0) { 32595 goto __1165 32596 } 32597 return rrc 32598 __1165: 32599 ; // Abandon 32600 if !(rrc > 0) { 32601 goto __1166 32602 } 32603 goto __89 32604 __1166: 32605 ; // Fail this thread 32606 code += TPCRE2_SPTR8(*(*Tsize_t)(unsafe.Pointer(bp + 24 /* callout_length */))) // Skip callout data 32607 __1164: 32608 ; 32609 32610 condcode = *(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)) 32611 32612 // Back reference conditions and duplicate named recursion conditions 32613 // are not supported 32614 32615 if !(int32(condcode) == OP_CREF || int32(condcode) == OP_DNCREF || int32(condcode) == OP_DNRREF) { 32616 goto __1167 32617 } 32618 return -40 32619 __1167: 32620 ; 32621 32622 // The DEFINE condition is always false, and the assertion (?!) is 32623 // converted to OP_FAIL. 32624 32625 if !(int32(condcode) == OP_FALSE || int32(condcode) == OP_FAIL) { 32626 goto __1168 32627 } 32628 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32629 goto __1170 32630 } 32631 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + codelink + DLINK_SIZE + 1 32632 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32633 next_active_state += 12 32634 goto __1171 32635 __1170: 32636 return -43 32637 __1171: 32638 ; 32639 goto __1169 32640 __1168: 32641 if !(int32(condcode) == OP_TRUE) { 32642 goto __1172 32643 } 32644 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32645 goto __1174 32646 } 32647 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + DLINK_SIZE + 2 32648 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32649 next_active_state += 12 32650 goto __1175 32651 __1174: 32652 return -43 32653 __1175: 32654 ; 32655 goto __1173 32656 __1172: 32657 if !(int32(condcode) == OP_RREF) { 32658 goto __1176 32659 } 32660 32661 value = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 4)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))) 32662 if !(value != uint32(DRREF_ANY)) { 32663 goto __1178 32664 } 32665 return -40 32666 __1178: 32667 ; 32668 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Frecursive != uintptr(0)) { 32669 goto __1179 32670 } 32671 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32672 goto __1181 32673 } 32674 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + DLINK_SIZE + 2 + DIMM2_SIZE 32675 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32676 next_active_state += 12 32677 goto __1182 32678 __1181: 32679 return -43 32680 __1182: 32681 ; 32682 goto __1180 32683 __1179: 32684 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32685 goto __1183 32686 } 32687 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + codelink + DLINK_SIZE + 1 32688 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32689 next_active_state += 12 32690 goto __1184 32691 __1183: 32692 return -43 32693 __1184: 32694 ; 32695 __1180: 32696 ; 32697 goto __1177 32698 __1176: 32699 32700 asscode = code + uintptr(DLINK_SIZE) + uintptr(1) 32701 endasscode1 = asscode + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(asscode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(asscode + 2))))) 32702 *(*uintptr)(unsafe.Pointer(bp + 32 /* rws1 */)) = RWS 32703 32704 if !(uint64((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32)))).Ffree) < uint64(DRWS_RSIZE)+uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))) { 32705 goto __1185 32706 } 32707 32708 rc1 = more_workspace(tls, bp+32, uint32(uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))), mb) 32709 if !(rc1 != 0) { 32710 goto __1186 32711 } 32712 return rc1 32713 __1186: 32714 ; 32715 RWS = *(*uintptr)(unsafe.Pointer(bp + 32 /* rws1 */)) 32716 __1185: 32717 ; 32718 32719 local_offsets1 = RWS + uintptr((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32)))).Fsize)*4 - uintptr((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32)))).Ffree)*4 32720 local_workspace1 = local_offsets1 + uintptr(uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0)))))*4 32721 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32)) + 12)) -= uint32(uint64(DRWS_RSIZE) + uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))) 32722 32723 __1187: 32724 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(endasscode1))) == OP_ALT) { 32725 goto __1188 32726 } 32727 endasscode1 += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(endasscode1 + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(endasscode1 + 2))))) 32728 goto __1187 32729 __1188: 32730 ; 32731 32732 rc1 = internal_dfa_match(tls, 32733 mb, // fixed match data 32734 asscode, // this subexpression's code 32735 ptr, // where we currently are 32736 Tsize_t((int64(ptr)-int64(start_subject))/1), 32737 local_offsets1, // offset vector 32738 uint32(uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))/(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))), 32739 local_workspace1, // workspace vector 32740 DRWS_RSIZE, // size of same 32741 rlevel, // function recursion level 32742 RWS) // recursion workspace 32743 32744 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 32)) + 12)) += uint32(uint64(DRWS_RSIZE) + uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))) 32745 32746 if !(rc1 < 0 && rc1 != -1) { 32747 goto __1189 32748 } 32749 return rc1 32750 __1189: 32751 ; 32752 if !(libc.Bool32(rc1 >= 0) == libc.Bool32(int32(condcode) == OP_ASSERT || int32(condcode) == OP_ASSERTBACK)) { 32753 goto __1190 32754 } 32755 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32756 goto __1192 32757 } 32758 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = int32((int64(endasscode1+uintptr(DLINK_SIZE)+uintptr(1)) - int64(start_code)) / 1) 32759 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32760 next_active_state += 12 32761 goto __1193 32762 __1192: 32763 return -43 32764 __1193: 32765 ; 32766 goto __1191 32767 __1190: 32768 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32769 goto __1194 32770 } 32771 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + codelink + DLINK_SIZE + 1 32772 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32773 next_active_state += 12 32774 goto __1195 32775 __1194: 32776 return -43 32777 __1195: 32778 ; 32779 __1191: 32780 ; 32781 __1177: 32782 ; 32783 __1173: 32784 ; 32785 __1169: 32786 ; 32787 32788 goto __89 32789 32790 //----------------------------------------------------------------- 32791 __274: 32792 32793 *(*uintptr)(unsafe.Pointer(bp + 40 /* rws2 */)) = RWS 32794 callpat = start_code + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 32795 if callpat == (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_code { 32796 recno = uint32(0) 32797 } else { 32798 recno = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(callpat + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(callpat + 4)))) 32799 } 32800 32801 if !(uint64((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 40)))).Ffree) < uint64(DRWS_RSIZE)+uint64(1000)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))) { 32802 goto __1196 32803 } 32804 32805 rc2 = more_workspace(tls, bp+40, uint32(uint64(1000)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))), mb) 32806 if !(rc2 != 0) { 32807 goto __1197 32808 } 32809 return rc2 32810 __1197: 32811 ; 32812 RWS = *(*uintptr)(unsafe.Pointer(bp + 40 /* rws2 */)) 32813 __1196: 32814 ; 32815 32816 local_offsets2 = RWS + uintptr((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 40)))).Fsize)*4 - uintptr((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 40)))).Ffree)*4 32817 local_workspace2 = local_offsets2 + uintptr(uint64(1000)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0)))))*4 32818 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 40)) + 12)) -= uint32(uint64(DRWS_RSIZE) + uint64(1000)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))) 32819 32820 // Check for repeating a recursion without advancing the subject 32821 // pointer. This should catch convoluted mutual recursions. (Some simple 32822 // cases are caught at compile time.) 32823 32824 ri = (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Frecursive 32825 __1198: 32826 if !(ri != uintptr(0)) { 32827 goto __1200 32828 } 32829 if !(recno == (*Tdfa_recursion_info)(unsafe.Pointer(ri)).Fgroup_num && ptr == (*Tdfa_recursion_info)(unsafe.Pointer(ri)).Fsubject_position) { 32830 goto __1201 32831 } 32832 return -52 32833 __1201: 32834 ; 32835 goto __1199 32836 __1199: 32837 ri = (*Tdfa_recursion_info)(unsafe.Pointer(ri)).Fprevrec 32838 goto __1198 32839 goto __1200 32840 __1200: 32841 ; 32842 32843 // Remember this recursion and where we started it so as to 32844 // catch infinite loops. 32845 32846 (*Tdfa_recursion_info)(unsafe.Pointer(bp + 48 /* &new_recursive */)).Fgroup_num = recno 32847 (*Tdfa_recursion_info)(unsafe.Pointer(bp + 48 /* &new_recursive */)).Fsubject_position = ptr 32848 (*Tdfa_recursion_info)(unsafe.Pointer(bp + 48 /* &new_recursive */)).Fprevrec = (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Frecursive 32849 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Frecursive = bp + 48 /* &new_recursive */ 32850 32851 rc2 = internal_dfa_match(tls, 32852 mb, // fixed match data 32853 callpat, // this subexpression's code 32854 ptr, // where we currently are 32855 Tsize_t((int64(ptr)-int64(start_subject))/1), 32856 local_offsets2, // offset vector 32857 uint32(uint64(1000)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))/(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))), 32858 local_workspace2, // workspace vector 32859 DRWS_RSIZE, // size of same 32860 rlevel, // function recursion level 32861 RWS) // recursion workspace 32862 32863 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 40)) + 12)) += uint32(uint64(DRWS_RSIZE) + uint64(1000)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))) 32864 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Frecursive = (*Tdfa_recursion_info)(unsafe.Pointer(bp + 48 /* &new_recursive */)).Fprevrec // Done this recursion 32865 32866 // Ran out of internal offsets 32867 32868 if !(rc2 == 0) { 32869 goto __1202 32870 } 32871 return -39 32872 __1202: 32873 ; 32874 32875 // For each successful matched substring, set up the next state with a 32876 // count of characters to skip before trying it. Note that the count is in 32877 // characters, not bytes. 32878 32879 if !(rc2 > 0) { 32880 goto __1203 32881 } 32882 32883 rc2 = rc2*2 - 2 32884 __1205: 32885 if !(rc2 >= 0) { 32886 goto __1207 32887 } 32888 32889 charcount = *(*Tsize_t)(unsafe.Pointer(local_offsets2 + uintptr(rc2+1)*8)) - *(*Tsize_t)(unsafe.Pointer(local_offsets2 + uintptr(rc2)*8)) 32890 if !(utf != 0) { 32891 goto __1208 32892 } 32893 32894 p = start_subject + uintptr(*(*Tsize_t)(unsafe.Pointer(local_offsets2 + uintptr(rc2)*8))) 32895 pp = start_subject + uintptr(*(*Tsize_t)(unsafe.Pointer(local_offsets2 + uintptr(rc2+1)*8))) 32896 __1209: 32897 if !(p < pp) { 32898 goto __1210 32899 } 32900 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))))&0xc0 == 0x80) { 32901 goto __1211 32902 } 32903 charcount-- 32904 __1211: 32905 ; 32906 goto __1209 32907 __1210: 32908 ; 32909 __1208: 32910 ; 32911 if !(charcount > uint64(0)) { 32912 goto __1212 32913 } 32914 32915 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 32916 goto __1214 32917 } 32918 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -(state_offset + DLINK_SIZE + 1) 32919 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 32920 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = int32(charcount - uint64(1)) 32921 next_new_state += 12 32922 goto __1215 32923 __1214: 32924 return -43 32925 __1215: 32926 ; 32927 goto __1213 32928 __1212: 32929 32930 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 32931 goto __1216 32932 } 32933 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + DLINK_SIZE + 1 32934 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 32935 next_active_state += 12 32936 goto __1217 32937 __1216: 32938 return -43 32939 __1217: 32940 ; 32941 __1213: 32942 ; 32943 goto __1206 32944 __1206: 32945 rc2 = rc2 - 2 32946 goto __1205 32947 goto __1207 32948 __1207: 32949 ; 32950 goto __1204 32951 __1203: 32952 if !(rc2 != -1) { 32953 goto __1218 32954 } 32955 return rc2 32956 __1218: 32957 ; 32958 __1204: 32959 ; 32960 32961 goto __89 32962 32963 //----------------------------------------------------------------- 32964 __275: 32965 __276: 32966 __277: 32967 __278: 32968 __279: 32969 32970 local_ptr = ptr 32971 *(*uintptr)(unsafe.Pointer(bp + 72 /* rws3 */)) = RWS 32972 32973 if !(uint64((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 72)))).Ffree) < uint64(DRWS_RSIZE)+uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))) { 32974 goto __1219 32975 } 32976 32977 rc3 = more_workspace(tls, bp+72, uint32(uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))), mb) 32978 if !(rc3 != 0) { 32979 goto __1220 32980 } 32981 return rc3 32982 __1220: 32983 ; 32984 RWS = *(*uintptr)(unsafe.Pointer(bp + 72 /* rws3 */)) 32985 __1219: 32986 ; 32987 32988 local_offsets3 = RWS + uintptr((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 72)))).Fsize)*4 - uintptr((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 72)))).Ffree)*4 32989 local_workspace3 = local_offsets3 + uintptr(uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0)))))*4 32990 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 72)) + 12)) -= uint32(uint64(DRWS_RSIZE) + uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))) 32991 32992 if !(codevalue == OP_BRAPOSZERO) { 32993 goto __1221 32994 } 32995 32996 allow_zero = DTRUE 32997 codevalue = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&code, 1)))) // Codevalue will be one of above BRAs 32998 goto __1222 32999 __1221: 33000 allow_zero = DFALSE 33001 __1222: 33002 ; 33003 33004 // Loop to match the subpattern as many times as possible as if it were 33005 // a complete pattern. 33006 33007 matched_count = uint64(0) 33008 __1223: 33009 ; 33010 33011 rc3 = internal_dfa_match(tls, 33012 mb, // fixed match data 33013 code, // this subexpression's code 33014 local_ptr, // where we currently are 33015 Tsize_t((int64(ptr)-int64(start_subject))/1), 33016 local_offsets3, // offset vector 33017 uint32(uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))/(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))), 33018 local_workspace3, // workspace vector 33019 DRWS_RSIZE, // size of same 33020 rlevel, // function recursion level 33021 RWS) // recursion workspace 33022 33023 // Failed to match 33024 33025 if !(rc3 < 0) { 33026 goto __1226 33027 } 33028 33029 if !(rc3 != -1) { 33030 goto __1227 33031 } 33032 return rc3 33033 __1227: 33034 ; 33035 goto __1225 33036 __1226: 33037 ; 33038 33039 // Matched: break the loop if zero characters matched. 33040 33041 charcount1 = *(*Tsize_t)(unsafe.Pointer(local_offsets3 + 1*8)) - *(*Tsize_t)(unsafe.Pointer(local_offsets3)) 33042 if !(charcount1 == uint64(0)) { 33043 goto __1228 33044 } 33045 goto __1225 33046 __1228: 33047 ; 33048 local_ptr += TPCRE2_SPTR8(charcount1) // Advance temporary position ptr 33049 goto __1224 33050 __1224: 33051 matched_count++ 33052 goto __1223 33053 goto __1225 33054 __1225: 33055 ; 33056 33057 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 72)) + 12)) += uint32(uint64(DRWS_RSIZE) + uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))) 33058 33059 // At this point we have matched the subpattern matched_count 33060 // times, and local_ptr is pointing to the character after the end of the 33061 // last match. 33062 33063 if !(matched_count > uint64(0) || allow_zero != 0) { 33064 goto __1229 33065 } 33066 33067 end_subpattern = code 33068 33069 __1230: 33070 end_subpattern += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_subpattern + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_subpattern + 2))))) 33071 goto __1231 33072 __1231: 33073 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_subpattern))) == OP_ALT { 33074 goto __1230 33075 } 33076 goto __1232 33077 __1232: 33078 ; 33079 next_state_offset1 = int32((int64(end_subpattern)-int64(start_code))/1 + int64(DLINK_SIZE) + int64(1)) 33080 33081 // Optimization: if there are no more active states, and there 33082 // are no new states yet set up, then skip over the subject string 33083 // right here, to save looping. Otherwise, set up the new state to swing 33084 // into action when the end of the matched substring is reached. 33085 33086 if !(i+1 >= active_count && new_count == 0) { 33087 goto __1233 33088 } 33089 33090 ptr = local_ptr 33091 clen = 0 33092 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 33093 goto __1235 33094 } 33095 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = next_state_offset1 33096 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 33097 next_new_state += 12 33098 goto __1236 33099 __1235: 33100 return -43 33101 __1236: 33102 ; 33103 goto __1234 33104 __1233: 33105 33106 p1 = ptr 33107 pp1 = local_ptr 33108 charcount1 = Tsize_t((int64(pp1) - int64(p1)) / 1) 33109 if !(utf != 0) { 33110 goto __1237 33111 } 33112 __1238: 33113 if !(p1 < pp1) { 33114 goto __1239 33115 } 33116 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p1, 1))))&0xc0 == 0x80) { 33117 goto __1240 33118 } 33119 charcount1-- 33120 __1240: 33121 ; 33122 goto __1238 33123 __1239: 33124 ; 33125 __1237: 33126 ; 33127 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 33128 goto __1241 33129 } 33130 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -next_state_offset1 33131 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 33132 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = int32(charcount1 - uint64(1)) 33133 next_new_state += 12 33134 goto __1242 33135 __1241: 33136 return -43 33137 __1242: 33138 ; 33139 __1234: 33140 ; 33141 __1229: 33142 ; 33143 33144 goto __89 33145 33146 //----------------------------------------------------------------- 33147 __280: 33148 33149 *(*uintptr)(unsafe.Pointer(bp + 80 /* rws4 */)) = RWS 33150 33151 if !(uint64((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 80)))).Ffree) < uint64(DRWS_RSIZE)+uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))) { 33152 goto __1243 33153 } 33154 33155 rc4 = more_workspace(tls, bp+80, uint32(uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))), mb) 33156 if !(rc4 != 0) { 33157 goto __1244 33158 } 33159 return rc4 33160 __1244: 33161 ; 33162 RWS = *(*uintptr)(unsafe.Pointer(bp + 80 /* rws4 */)) 33163 __1243: 33164 ; 33165 33166 local_offsets4 = RWS + uintptr((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 80)))).Fsize)*4 - uintptr((*TRWS_anchor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 80)))).Ffree)*4 33167 local_workspace4 = local_offsets4 + uintptr(uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0)))))*4 33168 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 80)) + 12)) -= uint32(uint64(DRWS_RSIZE) + uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))) 33169 33170 rc4 = internal_dfa_match(tls, 33171 mb, // fixed match data 33172 code, // this subexpression's code 33173 ptr, // where we currently are 33174 Tsize_t((int64(ptr)-int64(start_subject))/1), 33175 local_offsets4, // offset vector 33176 uint32(uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))/(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))), 33177 local_workspace4, // workspace vector 33178 DRWS_RSIZE, // size of same 33179 rlevel, // function recursion level 33180 RWS) // recursion workspace 33181 33182 *(*Tuint32_t)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 80)) + 12)) += uint32(uint64(DRWS_RSIZE) + uint64(2)*(uint64(unsafe.Sizeof(Tsize_t(0)))/uint64(unsafe.Sizeof(int32(0))))) 33183 33184 if !(rc4 >= 0) { 33185 goto __1245 33186 } 33187 33188 end_subpattern1 = code 33189 charcount2 = *(*Tsize_t)(unsafe.Pointer(local_offsets4 + 1*8)) - *(*Tsize_t)(unsafe.Pointer(local_offsets4)) 33190 33191 __1247: 33192 end_subpattern1 += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_subpattern1 + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_subpattern1 + 2))))) 33193 goto __1248 33194 __1248: 33195 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_subpattern1))) == OP_ALT { 33196 goto __1247 33197 } 33198 goto __1249 33199 __1249: 33200 ; 33201 next_state_offset2 = int32((int64(end_subpattern1)-int64(start_code))/1 + int64(DLINK_SIZE) + int64(1)) 33202 33203 // If the end of this subpattern is KETRMAX or KETRMIN, we must 33204 // arrange for the repeat state also to be added to the relevant list. 33205 // Calculate the offset, or set -1 for no repeat. 33206 33207 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_subpattern1))) == OP_KETRMAX || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_subpattern1))) == OP_KETRMIN { 33208 repeat_state_offset = int32((int64(end_subpattern1)-int64(start_code))/1 - int64(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_subpattern1 + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(end_subpattern1 + 2)))))) 33209 } else { 33210 repeat_state_offset = -1 33211 } 33212 33213 // If we have matched an empty string, add the next state at the 33214 // current character pointer. This is important so that the duplicate 33215 // checking kicks in, which is what breaks infinite loops that match an 33216 // empty string. 33217 33218 if !(charcount2 == uint64(0)) { 33219 goto __1250 33220 } 33221 33222 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 33223 goto __1252 33224 } 33225 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = next_state_offset2 33226 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 33227 next_active_state += 12 33228 goto __1253 33229 __1252: 33230 return -43 33231 __1253: 33232 ; 33233 goto __1251 33234 __1250: 33235 if !(i+1 >= active_count && new_count == 0) { 33236 goto __1254 33237 } 33238 33239 ptr += TPCRE2_SPTR8(charcount2) 33240 clen = 0 33241 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 33242 goto __1256 33243 } 33244 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = next_state_offset2 33245 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 33246 next_new_state += 12 33247 goto __1257 33248 __1256: 33249 return -43 33250 __1257: 33251 ; 33252 33253 // If we are adding a repeat state at the new character position, 33254 // we must fudge things so that it is the only current state. 33255 // Otherwise, it might be a duplicate of one we processed before, and 33256 // that would cause it to be skipped. 33257 33258 if !(repeat_state_offset >= 0) { 33259 goto __1258 33260 } 33261 33262 next_active_state = active_states 33263 active_count = 0 33264 i = -1 33265 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 33266 goto __1259 33267 } 33268 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = repeat_state_offset 33269 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 33270 next_active_state += 12 33271 goto __1260 33272 __1259: 33273 return -43 33274 __1260: 33275 ; 33276 __1258: 33277 ; 33278 goto __1255 33279 __1254: 33280 33281 if !(utf != 0) { 33282 goto __1261 33283 } 33284 33285 p2 = start_subject + uintptr(*(*Tsize_t)(unsafe.Pointer(local_offsets4))) 33286 pp2 = start_subject + uintptr(*(*Tsize_t)(unsafe.Pointer(local_offsets4 + 1*8))) 33287 __1262: 33288 if !(p2 < pp2) { 33289 goto __1263 33290 } 33291 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p2, 1))))&0xc0 == 0x80) { 33292 goto __1264 33293 } 33294 charcount2-- 33295 __1264: 33296 ; 33297 goto __1262 33298 __1263: 33299 ; 33300 __1261: 33301 ; 33302 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 33303 goto __1265 33304 } 33305 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -next_state_offset2 33306 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 33307 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = int32(charcount2 - uint64(1)) 33308 next_new_state += 12 33309 goto __1266 33310 __1265: 33311 return -43 33312 __1266: 33313 ; 33314 if !(repeat_state_offset >= 0) { 33315 goto __1267 33316 } 33317 if !(libc.PostIncInt32(&new_count, 1) < wscount) { 33318 goto __1268 33319 } 33320 (*Tstateblock)(unsafe.Pointer(next_new_state)).Foffset = -repeat_state_offset 33321 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fcount = 0 33322 (*Tstateblock)(unsafe.Pointer(next_new_state)).Fdata = int32(charcount2 - uint64(1)) 33323 next_new_state += 12 33324 goto __1269 33325 __1268: 33326 return -43 33327 __1269: 33328 ; 33329 __1267: 33330 ; 33331 __1255: 33332 ; 33333 __1251: 33334 ; 33335 goto __1246 33336 __1245: 33337 if !(rc4 != -1) { 33338 goto __1270 33339 } 33340 return rc4 33341 __1270: 33342 ; 33343 __1246: 33344 ; 33345 33346 goto __89 33347 33348 // ========================================================================== 33349 // Handle callouts 33350 33351 __281: 33352 __282: 33353 33354 rrc = do_callout(tls, code, offsets, current_subject, ptr, mb, uint64(0), 33355 bp+88) 33356 if !(rrc < 0) { 33357 goto __1271 33358 } 33359 return rrc 33360 __1271: 33361 ; // Abandon 33362 if !(rrc == 0) { 33363 goto __1272 33364 } 33365 if !(libc.PostIncInt32(&active_count, 1) < wscount) { 33366 goto __1273 33367 } 33368 (*Tstateblock)(unsafe.Pointer(next_active_state)).Foffset = state_offset + int32(*(*Tsize_t)(unsafe.Pointer(bp + 88))) 33369 (*Tstateblock)(unsafe.Pointer(next_active_state)).Fcount = 0 33370 next_active_state += 12 33371 goto __1274 33372 __1273: 33373 return -43 33374 __1274: 33375 ; 33376 __1272: 33377 ; 33378 33379 goto __89 33380 33381 // ========================================================================== 33382 __283: // Unsupported opcode 33383 return -42 33384 __89: 33385 ; 33386 33387 NEXT_ACTIVE_STATE: 33388 goto __51 33389 33390 goto __51 33391 __51: 33392 i++ 33393 goto __50 33394 goto __52 33395 __52: 33396 ; // End of loop scanning active states 33397 33398 // We have finished the processing at the current subject character. If no 33399 // new states have been set for the next character, we have found all the 33400 // matches that we are going to find. If partial matching has been requested, 33401 // check for appropriate conditions. 33402 // 33403 // The "forced_ fail" variable counts the number of (*F) encountered for the 33404 // character. If it is equal to the original active_count (saved in 33405 // workspace[1]) it means that (*F) was found on every active state. In this 33406 // case we don't want to give a partial match. 33407 // 33408 // The "could_continue" variable is true if a state could have continued but 33409 // for the fact that the end of the subject was reached. 33410 33411 if !(new_count <= 0) { 33412 goto __1275 33413 } 33414 33415 if !(could_continue != 0 && forced_fail != *(*int32)(unsafe.Pointer(workspace + 1*4)) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_HARD != Tuint32_t(0) || 33416 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_PARTIAL_SOFT != Tuint32_t(0) && match_count < 0) && (partial_newline != 0 || ptr >= end_subject && (ptr > (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0))) { 33417 goto __1276 33418 } 33419 match_count = -2 33420 __1276: 33421 ; 33422 goto __37 // Exit from loop along the subject string 33423 __1275: 33424 ; 33425 33426 // One or more states are active for the next character. 33427 33428 ptr += TPCRE2_SPTR8(clen) // Advance to next subject character 33429 goto __36 33430 __36: 33431 goto __35 33432 goto __37 33433 __37: 33434 ; // Loop to move along the subject string 33435 33436 // Control gets here from "break" a few lines above. If we have a match and 33437 // PCRE2_ENDANCHORED is set, the match fails. 33438 33439 if !(match_count >= 0 && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions|(*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fpoptions)&DPCRE2_ENDANCHORED != Tuint32_t(0) && ptr < end_subject) { 33440 goto __1277 33441 } 33442 match_count = -1 33443 __1277: 33444 ; 33445 33446 return match_count 33447 } 33448 33449 // ************************************************ 33450 // 33451 // Match a pattern using the DFA algorithm * 33452 // 33453 33454 // This function matches a compiled pattern to a subject string, using the 33455 // alternate matching algorithm that finds all matches at once. 33456 // 33457 // Arguments: 33458 // code points to the compiled pattern 33459 // subject subject string 33460 // length length of subject string 33461 // startoffset where to start matching in the subject 33462 // options option bits 33463 // match_data points to a match data structure 33464 // gcontext points to a match context 33465 // workspace pointer to workspace 33466 // wscount size of workspace 33467 // 33468 // Returns: > 0 => number of match offset pairs placed in offsets 33469 // = 0 => offsets overflowed; longest matches are present 33470 // -1 => failed to match 33471 // < -1 => some kind of unexpected problem 33472 33473 func Xpcre2_dfa_match_8(tls *libc.TLS, code uintptr, subject TPCRE2_SPTR8, length Tsize_t, start_offset Tsize_t, options Tuint32_t, match_data uintptr, mcontext uintptr, workspace uintptr, wscount Tsize_t) int32 { /* pcre2_dfa_match.c:3297:1: */ 33474 bp := tls.Alloc(31000) 33475 defer tls.Free(31000) 33476 33477 var rc int32 33478 var was_zero_terminated int32 33479 var re uintptr 33480 var start_match TPCRE2_SPTR8 33481 var end_subject TPCRE2_SPTR8 33482 var bumpalong_limit TPCRE2_SPTR8 33483 var req_cu_ptr TPCRE2_SPTR8 33484 var utf TBOOL 33485 var anchored TBOOL 33486 var startline TBOOL 33487 var firstline TBOOL 33488 var has_first_cu TBOOL 33489 var has_req_cu TBOOL 33490 var memchr_found_first_cu TPCRE2_SPTR8 33491 var memchr_found_first_cu2 TPCRE2_SPTR8 33492 var first_cu TPCRE2_UCHAR8 33493 var first_cu2 TPCRE2_UCHAR8 33494 var req_cu TPCRE2_UCHAR8 33495 var req_cu2 TPCRE2_UCHAR8 33496 var start_bits uintptr 33497 33498 // We need to have mb pointing to a match block, because the IS_NEWLINE macro 33499 // is used below, and it expects NLBLOCK to be defined as a pointer. 33500 33501 // var cb Tpcre2_callout_block_8 at bp+30888, 112 33502 33503 // var actual_match_block Tdfa_match_block_8 at bp, 168 33504 33505 var mb uintptr 33506 33507 // Set up a starting block of memory for use during recursive calls to 33508 // internal_dfa_match(). By putting this on the stack, it minimizes resource use 33509 // in the case when it is not needed. If this is too small, more memory is 33510 // obtained from the heap. At the start of each block is an anchor structure. 33511 33512 // var base_recursion_workspace [7680]int32 at bp+168, 30720 33513 33514 var rws uintptr 33515 var i uint32 33516 var check_subject TPCRE2_SPTR8 33517 var t TPCRE2_SPTR8 33518 var c TPCRE2_UCHAR8 33519 var ok TBOOL 33520 // In 16-bit and 32_bit modes we have to do our own search, so can 33521 // look for both cases at once. 33522 33523 // In 8-bit mode, the use of memchr() gives a big speed up, even 33524 // though we have to call it twice in order to find the earliest 33525 // occurrence of the code unit in either of its cases. Caching is used 33526 // to remember the positions of previously found code units. This can 33527 // make a huge difference when the strings are very long and only one 33528 // case is actually present. 33529 33530 var pp1 TPCRE2_SPTR8 33531 var pp2 TPCRE2_SPTR8 33532 var searchlength Tsize_t 33533 var c1 Tuint32_t 33534 var pp TPCRE2_SPTR8 33535 var check_length Tsize_t 33536 var p TPCRE2_SPTR8 33537 var next uintptr 33538 was_zero_terminated = 0 33539 re = code 33540 has_first_cu = DFALSE 33541 has_req_cu = DFALSE 33542 memchr_found_first_cu = uintptr(0) 33543 memchr_found_first_cu2 = uintptr(0) 33544 first_cu = TPCRE2_UCHAR8(0) 33545 first_cu2 = TPCRE2_UCHAR8(0) 33546 req_cu = TPCRE2_UCHAR8(0) 33547 req_cu2 = TPCRE2_UCHAR8(0) 33548 start_bits = uintptr(0) 33549 mb = bp /* &actual_match_block */ 33550 rws = bp + 168 /* base_recursion_workspace */ 33551 (*TRWS_anchor)(unsafe.Pointer(rws)).Fnext = uintptr(0) 33552 (*TRWS_anchor)(unsafe.Pointer(rws)).Fsize = uint32(uint64(DDFA_START_RWS_SIZE) / uint64(unsafe.Sizeof(int32(0)))) 33553 (*TRWS_anchor)(unsafe.Pointer(rws)).Ffree = uint32(uint64(DDFA_START_RWS_SIZE)/uint64(unsafe.Sizeof(int32(0))) - uint64(unsafe.Sizeof(TRWS_anchor{}))/uint64(unsafe.Sizeof(int32(0)))) 33554 33555 // Recognize NULL, length 0 as an empty string. 33556 33557 if !(subject == uintptr(0) && length == uint64(0)) { 33558 goto __1 33559 } 33560 subject = ts + 797 /* "" */ 33561 __1: 33562 ; 33563 33564 // Plausibility checks 33565 33566 if !(options&libc.CplUint32(DPCRE2_ANCHORED|DPCRE2_ENDANCHORED|DPCRE2_NOTBOL|DPCRE2_NOTEOL|DPCRE2_NOTEMPTY|DPCRE2_NOTEMPTY_ATSTART|DPCRE2_NO_UTF_CHECK|DPCRE2_PARTIAL_HARD|DPCRE2_PARTIAL_SOFT|DPCRE2_DFA_SHORTEST|DPCRE2_DFA_RESTART|DPCRE2_COPY_MATCHED_SUBJECT) != Tuint32_t(0)) { 33567 goto __2 33568 } 33569 return -34 33570 __2: 33571 ; 33572 if !(re == uintptr(0) || subject == uintptr(0) || workspace == uintptr(0) || match_data == uintptr(0)) { 33573 goto __3 33574 } 33575 return -51 33576 __3: 33577 ; 33578 33579 if !(length == libc.CplUint64(uint64(0))) { 33580 goto __4 33581 } 33582 33583 length = X_pcre2_strlen_8(tls, subject) 33584 was_zero_terminated = 1 33585 __4: 33586 ; 33587 33588 if !(wscount < uint64(20)) { 33589 goto __5 33590 } 33591 return -43 33592 __5: 33593 ; 33594 if !(start_offset > length) { 33595 goto __6 33596 } 33597 return -33 33598 __6: 33599 ; 33600 33601 // Partial matching and PCRE2_ENDANCHORED are currently not allowed at the same 33602 // time. 33603 33604 if !(options&(DPCRE2_PARTIAL_HARD|DPCRE2_PARTIAL_SOFT) != Tuint32_t(0) && ((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options|options)&DPCRE2_ENDANCHORED != Tuint32_t(0)) { 33605 goto __7 33606 } 33607 return -34 33608 __7: 33609 ; 33610 33611 // Invalid UTF support is not available for DFA matching. 33612 33613 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_MATCH_INVALID_UTF != Tuint32_t(0)) { 33614 goto __8 33615 } 33616 return -66 33617 __8: 33618 ; 33619 33620 // Check that the first field in the block is the magic number. If it is not, 33621 // return with PCRE2_ERROR_BADMAGIC. 33622 33623 if !(uint64((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmagic_number) != DMAGIC_NUMBER) { 33624 goto __9 33625 } 33626 return -31 33627 __9: 33628 ; 33629 33630 // Check the code unit width. 33631 33632 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_MODE8|DPCRE2_MODE16|DPCRE2_MODE32) != Tuint32_t(DPCRE2_CODE_UNIT_WIDTH/8)) { 33633 goto __10 33634 } 33635 return -32 33636 __10: 33637 ; 33638 33639 // PCRE2_NOTEMPTY and PCRE2_NOTEMPTY_ATSTART are match-time flags in the 33640 // options variable for this function. Users of PCRE2 who are not calling the 33641 // function directly would like to have a way of setting these flags, in the same 33642 // way that they can set pcre2_compile() flags like PCRE2_NO_AUTOPOSSESS with 33643 // constructions like (*NO_AUTOPOSSESS). To enable this, (*NOTEMPTY) and 33644 // (*NOTEMPTY_ATSTART) set bits in the pattern's "flag" function which can now be 33645 // transferred to the options for this function. The bits are guaranteed to be 33646 // adjacent, but do not have the same values. This bit of Boolean trickery assumes 33647 // that the match-time bits are not more significant than the flag bits. If by 33648 // accident this is not the case, a compile-time division by zero error will 33649 // occur. 33650 33651 options = options | (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_NOTEMPTY_SET|DPCRE2_NE_ATST_SET)/(uint32((DPCRE2_NOTEMPTY_SET|DPCRE2_NE_ATST_SET)&(libc.CplInt32(DPCRE2_NOTEMPTY_SET|DPCRE2_NE_ATST_SET)+1))/((DPCRE2_NOTEMPTY|DPCRE2_NOTEMPTY_ATSTART)&(libc.CplUint32(DPCRE2_NOTEMPTY|DPCRE2_NOTEMPTY_ATSTART)+uint32(1)))) 33652 33653 // If restarting after a partial match, do some sanity checks on the contents 33654 // of the workspace. 33655 33656 if !(options&DPCRE2_DFA_RESTART != Tuint32_t(0)) { 33657 goto __11 33658 } 33659 33660 if !(*(*int32)(unsafe.Pointer(workspace))&-2 != 0 || *(*int32)(unsafe.Pointer(workspace + 1*4)) < 1 || *(*int32)(unsafe.Pointer(workspace + 1*4)) > int32((wscount-uint64(2))/Tsize_t(int32(uint64(unsafe.Sizeof(Tstateblock{}))/uint64(unsafe.Sizeof(int32(0))))))) { 33661 goto __12 33662 } 33663 return -38 33664 __12: 33665 ; 33666 __11: 33667 ; 33668 33669 // Set some local values 33670 33671 utf = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_UTF != Tuint32_t(0)) 33672 start_match = subject + uintptr(start_offset) 33673 end_subject = subject + uintptr(length) 33674 req_cu_ptr = start_match - uintptr(1) 33675 anchored = libc.Bool32(options&(DPCRE2_ANCHORED|DPCRE2_DFA_RESTART) != Tuint32_t(0) || (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_ANCHORED != Tuint32_t(0)) 33676 33677 // The "must be at the start of a line" flags are used in a loop when finding 33678 // where to start. 33679 33680 startline = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_STARTLINE) != Tuint32_t(0)) 33681 firstline = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_FIRSTLINE != Tuint32_t(0)) 33682 bumpalong_limit = end_subject 33683 33684 // Initialize and set up the fixed fields in the callout block, with a pointer 33685 // in the match block. 33686 33687 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fcb = bp + 30888 /* &cb */ 33688 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 30888 /* &cb */)).Fversion = Tuint32_t(2) 33689 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 30888 /* &cb */)).Fsubject = subject 33690 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 30888 /* &cb */)).Fsubject_length = Tsize_t((int64(end_subject) - int64(subject)) / 1) 33691 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 30888 /* &cb */)).Fcallout_flags = Tuint32_t(0) 33692 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 30888 /* &cb */)).Fcapture_top = Tuint32_t(1) // No capture support 33693 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 30888 /* &cb */)).Fcapture_last = Tuint32_t(0) 33694 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 30888 /* &cb */)).Fmark = uintptr(0) // No (*MARK) support 33695 33696 // Get data from the match context, if present, and fill in the remaining 33697 // fields in the match block. It is an error to set an offset limit without 33698 // setting the flag at compile time. 33699 33700 if !(mcontext == uintptr(0)) { 33701 goto __13 33702 } 33703 33704 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fcallout = uintptr(0) 33705 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmemctl = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmemctl 33706 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_limit = X_pcre2_default_match_context_8.Fmatch_limit 33707 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_limit_depth = X_pcre2_default_match_context_8.Fdepth_limit 33708 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fheap_limit = Tsize_t(X_pcre2_default_match_context_8.Fheap_limit) 33709 goto __14 33710 __13: 33711 33712 if !((*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Foffset_limit != libc.CplUint64(uint64(0))) { 33713 goto __15 33714 } 33715 33716 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_USE_OFFSET_LIMIT == Tuint32_t(0)) { 33717 goto __16 33718 } 33719 return -56 33720 __16: 33721 ; 33722 bumpalong_limit = subject + uintptr((*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Foffset_limit) 33723 __15: 33724 ; 33725 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fcallout = (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fcallout 33726 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fcallout_data = (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fcallout_data 33727 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmemctl = (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fmemctl 33728 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_limit = (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fmatch_limit 33729 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_limit_depth = (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fdepth_limit 33730 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fheap_limit = Tsize_t((*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fheap_limit) 33731 __14: 33732 ; 33733 33734 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_limit > (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_match) { 33735 goto __17 33736 } 33737 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_limit = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_match 33738 __17: 33739 ; 33740 33741 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_limit_depth > (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_depth) { 33742 goto __18 33743 } 33744 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_limit_depth = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_depth 33745 __18: 33746 ; 33747 33748 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fheap_limit > Tsize_t((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_heap)) { 33749 goto __19 33750 } 33751 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fheap_limit = Tsize_t((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_heap) 33752 __19: 33753 ; 33754 33755 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_code = re + uintptr(uint64(unsafe.Sizeof(Tpcre2_real_code_8{}))) + uintptr(int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_count)*int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_entry_size)) 33756 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Ftables = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftables 33757 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject = subject 33758 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject = end_subject 33759 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_offset = start_offset 33760 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fallowemptypartial = libc.Bool32(int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmax_lookbehind) > 0 || (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_MATCH_EMPTY) != Tuint32_t(0)) 33761 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions = options 33762 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fpoptions = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options 33763 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmatch_call_count = Tuint32_t(0) 33764 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fheap_used = uint64(0) 33765 33766 // Process the \R and newline settings. 33767 33768 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fbsr_convention = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fbsr_convention 33769 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype = Tuint32_t(DNLTYPE_FIXED) 33770 switch int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fnewline_convention) { 33771 case DPCRE2_NEWLINE_CR: 33772 goto __21 33773 33774 case DPCRE2_NEWLINE_LF: 33775 goto __22 33776 33777 case DPCRE2_NEWLINE_NUL: 33778 goto __23 33779 33780 case DPCRE2_NEWLINE_CRLF: 33781 goto __24 33782 33783 case DPCRE2_NEWLINE_ANY: 33784 goto __25 33785 33786 case DPCRE2_NEWLINE_ANYCRLF: 33787 goto __26 33788 33789 default: 33790 goto __27 33791 } 33792 goto __20 33793 33794 __21: 33795 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen = Tuint32_t(1) 33796 *(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128)) = TPCRE2_UCHAR8('\015') 33797 goto __20 33798 33799 __22: 33800 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen = Tuint32_t(1) 33801 *(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128)) = TPCRE2_UCHAR8('\012') 33802 goto __20 33803 33804 __23: 33805 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen = Tuint32_t(1) 33806 *(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128)) = TPCRE2_UCHAR8(0) 33807 goto __20 33808 33809 __24: 33810 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen = Tuint32_t(2) 33811 *(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128)) = TPCRE2_UCHAR8('\015') 33812 *(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128 + 1)) = TPCRE2_UCHAR8('\012') 33813 goto __20 33814 33815 __25: 33816 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype = Tuint32_t(DNLTYPE_ANY) 33817 goto __20 33818 33819 __26: 33820 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype = Tuint32_t(DNLTYPE_ANYCRLF) 33821 goto __20 33822 33823 __27: 33824 return -44 33825 __20: 33826 ; 33827 33828 // Check a UTF string for validity if required. For 8-bit and 16-bit strings, 33829 // we must also check that a starting offset does not point into the middle of a 33830 // multiunit character. We check only the portion of the subject that is going to 33831 // be inspected during matching - from the offset minus the maximum back reference 33832 // to the given length. This saves time when a small part of a large subject is 33833 // being matched by the use of a starting offset. Note that the maximum lookbehind 33834 // is a number of characters, not code units. 33835 33836 if !(utf != 0 && options&DPCRE2_NO_UTF_CHECK == Tuint32_t(0)) { 33837 goto __28 33838 } 33839 33840 check_subject = start_match // start_match includes offset 33841 33842 if !(start_offset > uint64(0)) { 33843 goto __29 33844 } 33845 33846 if !(start_match < end_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match)))&0xc0 == 0x80) { 33847 goto __30 33848 } 33849 return -36 33850 __30: 33851 ; 33852 i = uint32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmax_lookbehind) 33853 __31: 33854 if !(i > uint32(0) && check_subject > subject) { 33855 goto __33 33856 } 33857 33858 check_subject-- 33859 __34: 33860 if !(check_subject > subject && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(check_subject)))&0xc0 == 0x80) { 33861 goto __35 33862 } 33863 check_subject-- 33864 goto __34 33865 __35: 33866 ; 33867 goto __32 33868 __32: 33869 i-- 33870 goto __31 33871 goto __33 33872 __33: 33873 ; 33874 __29: 33875 ; 33876 33877 // Validate the relevant portion of the subject. After an error, adjust the 33878 // offset to be an absolute offset in the whole string. 33879 33880 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc = X_pcre2_valid_utf_8(tls, check_subject, 33881 length-Tsize_t((int64(check_subject)-int64(subject))/1), match_data+64) 33882 if !((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc != 0) { 33883 goto __36 33884 } 33885 33886 *(*Tsize_t)(unsafe.Pointer(match_data + 64)) += Tsize_t((int64(check_subject) - int64(subject)) / 1) 33887 return (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc 33888 __36: 33889 ; 33890 __28: 33891 ; 33892 33893 // Set up the first code unit to match, if available. If there's no first code 33894 // unit there may be a bitmap of possible first characters. 33895 33896 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_FIRSTSET) != Tuint32_t(0)) { 33897 goto __37 33898 } 33899 33900 has_first_cu = DTRUE 33901 first_cu = libc.AssignUint8(&first_cu2, TPCRE2_UCHAR8((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ffirst_codeunit)) 33902 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_FIRSTCASELESS) != Tuint32_t(0)) { 33903 goto __39 33904 } 33905 33906 first_cu2 = *(*Tuint8_t)(unsafe.Pointer((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Ftables + uintptr(Dfcc_offset) + uintptr(first_cu))) 33907 if !(int32(first_cu) > 127 && !(utf != 0) && (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_UCP != Tuint32_t(0)) { 33908 goto __40 33909 } 33910 first_cu2 = TPCRE2_UCHAR8(Tuint32_t(int32(first_cu) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(first_cu)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(first_cu)%DUCD_BLOCK_SIZE])*12)).Fother_case)) 33911 __40: 33912 ; 33913 __39: 33914 ; 33915 goto __38 33916 __37: 33917 if !(!(startline != 0) && (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_FIRSTMAPSET) != Tuint32_t(0)) { 33918 goto __41 33919 } 33920 start_bits = re + 40 /* &.start_bitmap */ 33921 __41: 33922 ; 33923 __38: 33924 ; 33925 33926 // There may be a "last known required code unit" set. 33927 33928 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_LASTSET) != Tuint32_t(0)) { 33929 goto __42 33930 } 33931 33932 has_req_cu = DTRUE 33933 req_cu = libc.AssignUint8(&req_cu2, TPCRE2_UCHAR8((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flast_codeunit)) 33934 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_LASTCASELESS) != Tuint32_t(0)) { 33935 goto __43 33936 } 33937 33938 req_cu2 = *(*Tuint8_t)(unsafe.Pointer((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Ftables + uintptr(Dfcc_offset) + uintptr(req_cu))) 33939 if !(int32(req_cu) > 127 && !(utf != 0) && (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_UCP != Tuint32_t(0)) { 33940 goto __44 33941 } 33942 req_cu2 = TPCRE2_UCHAR8(Tuint32_t(int32(req_cu) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(req_cu)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(req_cu)%DUCD_BLOCK_SIZE])*12)).Fother_case)) 33943 __44: 33944 ; 33945 __43: 33946 ; 33947 __42: 33948 ; 33949 33950 // If the match data block was previously used with PCRE2_COPY_MATCHED_SUBJECT, 33951 // free the memory that was obtained. 33952 33953 if !(uint32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fflags)&DPCRE2_MD_COPIED_SUBJECT != uint32(0)) { 33954 goto __45 33955 } 33956 33957 (*struct { 33958 f func(*libc.TLS, uintptr, uintptr) 33959 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmemctl.Ffree})).f(tls, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject, 33960 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmemctl.Fmemory_data) 33961 *(*Tuint8_t)(unsafe.Pointer(match_data + 73)) &= libc.Uint8FromUint32(libc.CplUint32(DPCRE2_MD_COPIED_SUBJECT)) 33962 __45: 33963 ; 33964 33965 // Fill in fields that are always returned in the match data. 33966 33967 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fcode = re 33968 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject = uintptr(0) // Default for no match 33969 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmark = uintptr(0) 33970 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmatchedby = PCRE2_MATCHEDBY_DFA_INTERPRETER 33971 33972 // Call the main matching function, looping for a non-anchored regex after a 33973 // failed match. If not restarting, perform certain optimizations at the start of 33974 // a match. 33975 33976 __46: 33977 33978 // ----------------- Start of match optimizations ---------------- 33979 33980 // There are some optimizations that avoid running the match if a known 33981 // starting point is not found, or if a known later code unit is not present. 33982 // However, there is an option (settable at compile time) that disables 33983 // these, for testing and for ensuring that all callouts do actually occur. 33984 // The optimizations must also be avoided when restarting a DFA match. 33985 33986 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_NO_START_OPTIMIZE == Tuint32_t(0) && options&DPCRE2_DFA_RESTART == Tuint32_t(0)) { 33987 goto __49 33988 } 33989 33990 // If firstline is TRUE, the start of the match is constrained to the first 33991 // line of a multiline string. That is, the match must be before or at the 33992 // first newline following the start of matching. Temporarily adjust 33993 // end_subject so that we stop the optimization scans for a first code unit 33994 // immediately after the first character of a newline (the first code unit can 33995 // legitimately be a newline). If the match fails at the newline, later code 33996 // breaks this loop. 33997 33998 if !(firstline != 0) { 33999 goto __50 34000 } 34001 34002 t = start_match 34003 if !(utf != 0) { 34004 goto __51 34005 } 34006 34007 __53: 34008 if !(t < end_subject && !(func() int32 { 34009 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 34010 return libc.Bool32(t < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, t, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+120, utf) != 0) 34011 } 34012 return libc.Bool32(t <= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(t))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128))) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(t + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128 + 1))))) 34013 }() != 0)) { 34014 goto __54 34015 } 34016 34017 t++ 34018 __55: 34019 if !(t < end_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(t)))&0xc0 == 0x80) { 34020 goto __56 34021 } 34022 t++ 34023 goto __55 34024 __56: 34025 ; 34026 goto __53 34027 __54: 34028 ; 34029 goto __52 34030 __51: 34031 __57: 34032 if !(t < end_subject && !(func() int32 { 34033 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 34034 return libc.Bool32(t < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, t, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+120, utf) != 0) 34035 } 34036 return libc.Bool32(t <= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(t))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128))) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(t + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128 + 1))))) 34037 }() != 0)) { 34038 goto __58 34039 } 34040 t++ 34041 goto __57 34042 __58: 34043 ; 34044 __52: 34045 ; 34046 end_subject = t 34047 __50: 34048 ; 34049 34050 // Anchored: check the first code unit if one is recorded. This may seem 34051 // pointless but it can help in detecting a no match case without scanning for 34052 // the required code unit. 34053 34054 if !(anchored != 0) { 34055 goto __59 34056 } 34057 34058 if !(has_first_cu != 0 || start_bits != uintptr(0)) { 34059 goto __61 34060 } 34061 34062 ok = libc.Bool32(start_match < end_subject) 34063 if !(ok != 0) { 34064 goto __62 34065 } 34066 34067 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match)) 34068 ok = libc.Bool32(has_first_cu != 0 && (int32(c) == int32(first_cu) || int32(c) == int32(first_cu2))) 34069 if !(!(ok != 0) && start_bits != uintptr(0)) { 34070 goto __63 34071 } 34072 34073 ok = libc.Bool32(uint32(*(*Tuint8_t)(unsafe.Pointer(start_bits + uintptr(int32(c)/8))))&(uint32(1)<<(int32(c)&7)) != uint32(0)) 34074 __63: 34075 ; 34076 __62: 34077 ; 34078 if !!(ok != 0) { 34079 goto __64 34080 } 34081 goto __48 34082 __64: 34083 ; 34084 __61: 34085 ; 34086 goto __60 34087 __59: 34088 34089 if !(has_first_cu != 0) { 34090 goto __65 34091 } 34092 34093 if !(int32(first_cu) != int32(first_cu2)) { 34094 goto __67 34095 } /* Caseless */ 34096 34097 // In 16-bit and 32_bit modes we have to do our own search, so can 34098 // look for both cases at once. 34099 34100 // In 8-bit mode, the use of memchr() gives a big speed up, even 34101 // though we have to call it twice in order to find the earliest 34102 // occurrence of the code unit in either of its cases. Caching is used 34103 // to remember the positions of previously found code units. This can 34104 // make a huge difference when the strings are very long and only one 34105 // case is actually present. 34106 34107 pp1 = uintptr(0) 34108 pp2 = uintptr(0) 34109 searchlength = Tsize_t((int64(end_subject) - int64(start_match)) / 1) 34110 34111 // If we haven't got a previously found position for first_cu, or if 34112 // the current starting position is later, we need to do a search. If 34113 // the code unit is not found, set it to the end. 34114 34115 if !(memchr_found_first_cu == uintptr(0) || start_match > memchr_found_first_cu) { 34116 goto __69 34117 } 34118 34119 pp1 = libc.Xmemchr(tls, start_match, int32(first_cu), searchlength) 34120 if pp1 == uintptr(0) { 34121 memchr_found_first_cu = end_subject 34122 } else { 34123 memchr_found_first_cu = pp1 34124 } 34125 goto __70 34126 __69: 34127 if memchr_found_first_cu == end_subject { 34128 pp1 = uintptr(0) 34129 } else { 34130 pp1 = memchr_found_first_cu 34131 } 34132 __70: 34133 ; 34134 34135 // Do the same thing for the other case. 34136 34137 if !(memchr_found_first_cu2 == uintptr(0) || start_match > memchr_found_first_cu2) { 34138 goto __71 34139 } 34140 34141 pp2 = libc.Xmemchr(tls, start_match, int32(first_cu2), searchlength) 34142 if pp2 == uintptr(0) { 34143 memchr_found_first_cu2 = end_subject 34144 } else { 34145 memchr_found_first_cu2 = pp2 34146 } 34147 goto __72 34148 __71: 34149 if memchr_found_first_cu2 == end_subject { 34150 pp2 = uintptr(0) 34151 } else { 34152 pp2 = memchr_found_first_cu2 34153 } 34154 __72: 34155 ; 34156 34157 // Set the start to the end of the subject if neither case was found. 34158 // Otherwise, use the earlier found point. 34159 34160 if !(pp1 == uintptr(0)) { 34161 goto __73 34162 } 34163 if pp2 == uintptr(0) { 34164 start_match = end_subject 34165 } else { 34166 start_match = pp2 34167 } 34168 goto __74 34169 __73: 34170 if pp2 == uintptr(0) || pp1 < pp2 { 34171 start_match = pp1 34172 } else { 34173 start_match = pp2 34174 } 34175 __74: 34176 ; 34177 34178 goto __68 34179 __67: 34180 34181 start_match = libc.Xmemchr(tls, start_match, int32(first_cu), uint64((int64(end_subject)-int64(start_match))/1)) 34182 if !(start_match == uintptr(0)) { 34183 goto __75 34184 } 34185 start_match = end_subject 34186 __75: 34187 ; 34188 __68: 34189 ; 34190 34191 // If we can't find the required code unit, having reached the true end 34192 // of the subject, break the bumpalong loop, to force a match failure, 34193 // except when doing partial matching, when we let the next cycle run at 34194 // the end of the subject. To see why, consider the pattern /(?<=abc)def/, 34195 // which partially matches "abc", even though the string does not contain 34196 // the starting character "d". If we have not reached the true end of the 34197 // subject (PCRE2_FIRSTLINE caused end_subject to be temporarily modified) 34198 // we also let the cycle run, because the matching string is legitimately 34199 // allowed to start with the first code unit of a newline. 34200 34201 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&(DPCRE2_PARTIAL_HARD|DPCRE2_PARTIAL_SOFT) == Tuint32_t(0) && start_match >= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject) { 34202 goto __76 34203 } 34204 goto __48 34205 __76: 34206 ; 34207 goto __66 34208 __65: 34209 if !(startline != 0) { 34210 goto __77 34211 } 34212 34213 if !(start_match > (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject+uintptr(start_offset)) { 34214 goto __79 34215 } 34216 34217 if !(utf != 0) { 34218 goto __80 34219 } 34220 34221 __82: 34222 if !(start_match < end_subject && !(func() int32 { 34223 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 34224 return libc.Bool32(start_match > (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject && X_pcre2_was_newline_8(tls, start_match, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject, mb+120, utf) != 0) 34225 } 34226 return libc.Bool32(start_match >= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject+uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match - uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128))) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match - uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128 + 1))))) 34227 }() != 0)) { 34228 goto __83 34229 } 34230 34231 start_match++ 34232 __84: 34233 if !(start_match < end_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match)))&0xc0 == 0x80) { 34234 goto __85 34235 } 34236 start_match++ 34237 goto __84 34238 __85: 34239 ; 34240 goto __82 34241 __83: 34242 ; 34243 goto __81 34244 __80: 34245 __86: 34246 if !(start_match < end_subject && !(func() int32 { 34247 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 34248 return libc.Bool32(start_match > (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject && X_pcre2_was_newline_8(tls, start_match, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject, mb+120, utf) != 0) 34249 } 34250 return libc.Bool32(start_match >= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_subject+uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match - uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128))) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match - uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128 + 1))))) 34251 }() != 0)) { 34252 goto __87 34253 } 34254 start_match++ 34255 goto __86 34256 __87: 34257 ; 34258 __81: 34259 ; 34260 34261 // If we have just passed a CR and the newline option is ANY or 34262 // ANYCRLF, and we are now at a LF, advance the match position by one 34263 // more code unit. 34264 34265 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match + libc.UintptrFromInt32(-1)))) == '\015' && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_ANY) || (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_ANYCRLF)) && start_match < end_subject && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match))) == '\012') { 34266 goto __88 34267 } 34268 start_match++ 34269 __88: 34270 ; 34271 __79: 34272 ; 34273 goto __78 34274 __77: 34275 if !(start_bits != uintptr(0)) { 34276 goto __89 34277 } 34278 34279 __90: 34280 if !(start_match < end_subject) { 34281 goto __91 34282 } 34283 34284 c1 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match))) 34285 if !(uint32(*(*Tuint8_t)(unsafe.Pointer(start_bits + uintptr(c1/Tuint32_t(8)))))&(uint32(1)<<(c1&Tuint32_t(7))) != uint32(0)) { 34286 goto __92 34287 } 34288 goto __91 34289 __92: 34290 ; 34291 start_match++ 34292 goto __90 34293 __91: 34294 ; 34295 34296 // See comment above in first_cu checking about the next line. 34297 34298 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&(DPCRE2_PARTIAL_HARD|DPCRE2_PARTIAL_SOFT) == Tuint32_t(0) && start_match >= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject) { 34299 goto __93 34300 } 34301 goto __48 34302 __93: 34303 ; 34304 __89: 34305 ; 34306 __78: 34307 ; 34308 __66: 34309 ; 34310 __60: 34311 ; // End of first code unit handling 34312 34313 // Restore fudged end_subject 34314 34315 end_subject = (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject 34316 34317 // The following two optimizations are disabled for partial matching. 34318 34319 if !((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmoptions&(DPCRE2_PARTIAL_HARD|DPCRE2_PARTIAL_SOFT) == Tuint32_t(0)) { 34320 goto __94 34321 } 34322 34323 // The minimum matching length is a lower bound; no actual string of that 34324 // length may actually match the pattern. Although the value is, strictly, 34325 // in characters, we treat it as code units to avoid spending too much time 34326 // in this optimization. 34327 34328 if !((int64(end_subject)-int64(start_match))/1 < int64((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fminlength)) { 34329 goto __95 34330 } 34331 goto NOMATCH_EXIT 34332 __95: 34333 ; 34334 34335 // If req_cu is set, we know that that code unit must appear in the 34336 // subject for the match to succeed. If the first code unit is set, req_cu 34337 // must be later in the subject; otherwise the test starts at the match 34338 // point. This optimization can save a huge amount of backtracking in 34339 // patterns with nested unlimited repeats that aren't going to match. 34340 // Writing separate code for cased/caseless versions makes it go faster, as 34341 // does using an autoincrement and backing off on a match. As in the case of 34342 // the first code unit, using memchr() in the 8-bit library gives a big 34343 // speed up. Unlike the first_cu check above, we do not need to call 34344 // memchr() twice in the caseless case because we only need to check for the 34345 // presence of the character in either case, not find the first occurrence. 34346 // 34347 // The search can be skipped if the code unit was found later than the 34348 // current starting point in a previous iteration of the bumpalong loop. 34349 // 34350 // HOWEVER: when the subject string is very, very long, searching to its end 34351 // can take a long time, and give bad performance on quite ordinary 34352 // patterns. This showed up when somebody was matching something like 34353 // /^\d+C/ on a 32-megabyte string... so we don't do this when the string is 34354 // sufficiently long, but it's worth searching a lot more for unanchored 34355 // patterns. 34356 34357 p = start_match + uintptr(func() int32 { 34358 if has_first_cu != 0 { 34359 return 1 34360 } 34361 return 0 34362 }()) 34363 if !(has_req_cu != 0 && p > req_cu_ptr) { 34364 goto __96 34365 } 34366 34367 check_length = Tsize_t((int64(end_subject) - int64(start_match)) / 1) 34368 34369 if !(check_length < uint64(DREQ_CU_MAX) || !(anchored != 0) && check_length < uint64(DREQ_CU_MAX*1000)) { 34370 goto __97 34371 } 34372 34373 if !(int32(req_cu) != int32(req_cu2)) { 34374 goto __98 34375 } /* Caseless */ 34376 34377 pp = p 34378 p = libc.Xmemchr(tls, pp, int32(req_cu), uint64((int64(end_subject)-int64(pp))/1)) 34379 if !(p == uintptr(0)) { 34380 goto __100 34381 } 34382 34383 p = libc.Xmemchr(tls, pp, int32(req_cu2), uint64((int64(end_subject)-int64(pp))/1)) 34384 if !(p == uintptr(0)) { 34385 goto __101 34386 } 34387 p = end_subject 34388 __101: 34389 ; 34390 __100: 34391 ; 34392 goto __99 34393 __98: 34394 34395 p = libc.Xmemchr(tls, p, int32(req_cu), uint64((int64(end_subject)-int64(p))/1)) 34396 if !(p == uintptr(0)) { 34397 goto __102 34398 } 34399 p = end_subject 34400 __102: 34401 ; 34402 __99: 34403 ; 34404 34405 // If we can't find the required code unit, break the matching loop, 34406 // forcing a match failure. 34407 34408 if !(p >= end_subject) { 34409 goto __103 34410 } 34411 goto __48 34412 __103: 34413 ; 34414 34415 // If we have found the required code unit, save the point where we 34416 // found it, so that we don't search again next time round the loop if 34417 // the start hasn't passed this code unit yet. 34418 34419 req_cu_ptr = p 34420 __97: 34421 ; 34422 __96: 34423 ; 34424 __94: 34425 ; 34426 __49: 34427 ; 34428 34429 // ------------ End of start of match optimizations ------------ 34430 34431 // Give no match if we have passed the bumpalong limit. 34432 34433 if !(start_match > bumpalong_limit) { 34434 goto __104 34435 } 34436 goto __48 34437 __104: 34438 ; 34439 34440 // OK, now we can do the business 34441 34442 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr = start_match 34443 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Flast_used_ptr = start_match 34444 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Frecursive = uintptr(0) 34445 34446 rc = internal_dfa_match(tls, 34447 mb, // fixed match data 34448 (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_code, // this subexpression's code 34449 start_match, // where we currently are 34450 start_offset, // start offset in subject 34451 match_data+80, 34452 Tuint32_t((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount)*Tuint32_t(2), 34453 workspace, // workspace vector 34454 int32(wscount), // size of same 34455 uint32(0), // function recurse level 34456 bp+168) // initial workspace for recursion 34457 34458 // Anything other than "no match" means we are done, always; otherwise, carry 34459 // on only if not anchored. 34460 34461 if !(rc != -1 || anchored != 0) { 34462 goto __105 34463 } 34464 34465 if !(rc == -2 && int32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount) > 0) { 34466 goto __106 34467 } 34468 34469 *(*Tsize_t)(unsafe.Pointer(match_data + 80)) = Tsize_t((int64(start_match) - int64(subject)) / 1) 34470 *(*Tsize_t)(unsafe.Pointer(match_data + 80 + 1*8)) = Tsize_t((int64(end_subject) - int64(subject)) / 1) 34471 __106: 34472 ; 34473 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fleftchar = Tsize_t((int64((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr) - int64(subject)) / 1) 34474 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frightchar = Tsize_t((int64((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Flast_used_ptr) - int64(subject)) / 1) 34475 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fstartchar = Tsize_t((int64(start_match) - int64(subject)) / 1) 34476 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc = rc 34477 34478 if !(rc >= 0 && options&DPCRE2_COPY_MATCHED_SUBJECT != Tuint32_t(0)) { 34479 goto __107 34480 } 34481 34482 length = (length + Tsize_t(was_zero_terminated)) * uint64(DPCRE2_CODE_UNIT_WIDTH/8) 34483 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject = (*struct { 34484 f func(*libc.TLS, Tsize_t, uintptr) uintptr 34485 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmemctl.Fmalloc})).f(tls, length, 34486 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmemctl.Fmemory_data) 34487 if !((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject == uintptr(0)) { 34488 goto __109 34489 } 34490 return -48 34491 __109: 34492 ; 34493 libc.Xmemcpy(tls, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject, subject, length) 34494 *(*Tuint8_t)(unsafe.Pointer(match_data + 73)) |= uint8(DPCRE2_MD_COPIED_SUBJECT) 34495 goto __108 34496 __107: 34497 34498 if !(rc >= 0 || rc == -2) { 34499 goto __110 34500 } 34501 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject = subject 34502 __110: 34503 ; 34504 __108: 34505 ; 34506 goto EXIT 34507 __105: 34508 ; 34509 34510 // Advance to the next subject character unless we are at the end of a line 34511 // and firstline is set. 34512 34513 if !(firstline != 0 && func() int32 { 34514 if (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 34515 return libc.Bool32(start_match < (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, start_match, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+120, utf) != 0) 34516 } 34517 return libc.Bool32(start_match <= (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128))) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 128 + 1))))) 34518 }() != 0) { 34519 goto __111 34520 } 34521 goto __48 34522 __111: 34523 ; 34524 start_match++ 34525 if !(utf != 0) { 34526 goto __112 34527 } 34528 34529 __113: 34530 if !(start_match < end_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match)))&0xc0 == 0x80) { 34531 goto __114 34532 } 34533 start_match++ 34534 goto __113 34535 __114: 34536 ; 34537 __112: 34538 ; 34539 if !(start_match > end_subject) { 34540 goto __115 34541 } 34542 goto __48 34543 __115: 34544 ; 34545 34546 // If we have just passed a CR and we are now at a LF, and the pattern does 34547 // not contain any explicit matches for \r or \n, and the newline option is CRLF 34548 // or ANY or ANYCRLF, advance the match position by one more character. 34549 34550 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match - uintptr(1)))) == '\015' && start_match < end_subject && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match))) == '\012' && (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_HASCRORLF) == Tuint32_t(0) && ((*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_ANY) || (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_ANYCRLF) || (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2))) { 34551 goto __116 34552 } 34553 start_match++ 34554 __116: 34555 ; 34556 34557 goto __47 34558 __47: 34559 goto __46 34560 goto __48 34561 __48: 34562 ; // "Bumpalong" loop 34563 34564 NOMATCH_EXIT: 34565 rc = -1 34566 34567 EXIT: 34568 __117: 34569 if !((*TRWS_anchor)(unsafe.Pointer(rws)).Fnext != uintptr(0)) { 34570 goto __118 34571 } 34572 34573 next = (*TRWS_anchor)(unsafe.Pointer(rws)).Fnext 34574 (*TRWS_anchor)(unsafe.Pointer(rws)).Fnext = (*TRWS_anchor)(unsafe.Pointer(next)).Fnext 34575 (*struct { 34576 f func(*libc.TLS, uintptr, uintptr) 34577 })(unsafe.Pointer(&struct{ uintptr }{(*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmemctl.Ffree})).f(tls, next, (*Tdfa_match_block_8)(unsafe.Pointer(mb)).Fmemctl.Fmemory_data) 34578 goto __117 34579 __118: 34580 ; 34581 34582 return rc 34583 } 34584 34585 // End of pcre2_dfa_match.c 34586 34587 // This function is needed only when memmove() is not available. 34588 34589 // End of pcre2_internal.h 34590 34591 // The texts of compile-time error messages. Compile-time error numbers start 34592 // at COMPILE_ERROR_BASE (100). 34593 // 34594 // This used to be a table of strings, but in order to reduce the number of 34595 // relocations needed when a shared library is loaded dynamically, it is now one 34596 // long string. We cannot use a table of offsets, because the lengths of inserts 34597 // such as XSTRING(MAX_NAME_SIZE) are not known. Instead, 34598 // pcre2_get_error_message() counts through to the one it wants - this isn't a 34599 // performance issue because these strings are used only when there is an error. 34600 // 34601 // Each substring ends with \0 to insert a null character. This includes the final 34602 // substring, so that the whole string ends with \0\0, which can be detected when 34603 // counting through. 34604 34605 var compile_error_texts = 34606 34607 // 5 34608 34609 // 10 34610 34611 // 15 34612 34613 // 20 34614 34615 // 25 34616 34617 // 30 34618 34619 // 35 34620 34621 // 40 34622 34623 // 45 34624 34625 // 50 34626 34627 // 55 34628 34629 // "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)\0" 34630 // Was the above 34631 // 60 34632 34633 // 65 34634 34635 // 70 34636 34637 // 75 34638 34639 // 80 34640 34641 // 85 34642 34643 // 90 34644 34645 // 95 34646 34647 *(*[4381]uint8)(unsafe.Pointer(ts + 798)) /* pcre2_error.c:65:28 */ 34648 34649 // Match-time and UTF error texts are in the same format. 34650 34651 var match_error_texts = 34652 34653 // 5 34654 34655 // 10 34656 34657 // 15 34658 34659 // 20 34660 34661 // 25 34662 34663 // 30 34664 34665 // 35 34666 34667 // Never returned by PCRE2 itself 34668 34669 // 40 34670 34671 // 45 34672 34673 // 50 34674 34675 // 55 34676 34677 // 60 34678 34679 // 65 34680 34681 *(*[2476]uint8)(unsafe.Pointer(ts + 5179)) /* pcre2_error.c:194:28 */ 34682 34683 // ************************************************ 34684 // 34685 // Return error message * 34686 // 34687 34688 // This function copies an error message into a buffer whose units are of an 34689 // appropriate width. Error numbers are positive for compile-time errors, and 34690 // negative for match-time errors (except for UTF errors), but the numbers are all 34691 // distinct. 34692 // 34693 // Arguments: 34694 // enumber error number 34695 // buffer where to put the message (zero terminated) 34696 // size size of the buffer in code units 34697 // 34698 // Returns: length of message if all is well 34699 // negative on error 34700 34701 func Xpcre2_get_error_message_8(tls *libc.TLS, enumber int32, buffer uintptr, size Tsize_t) int32 { /* pcre2_error.c:297:1: */ 34702 var message uintptr 34703 var i Tsize_t 34704 var n int32 34705 34706 if size == uint64(0) { 34707 return -48 34708 } 34709 34710 if enumber >= DCOMPILE_ERROR_BASE { 34711 message = uintptr(unsafe.Pointer(&compile_error_texts)) 34712 n = enumber - DCOMPILE_ERROR_BASE 34713 } else if enumber < 0 { 34714 message = uintptr(unsafe.Pointer(&match_error_texts)) 34715 n = -enumber 34716 } else { 34717 message = ts + 7655 /* "\x00" */ // Empty message list 34718 n = 1 34719 } 34720 34721 for ; n > 0; n-- { 34722 for int32(*(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&message, 1)))) != 0 { 34723 } 34724 34725 if int32(*(*uint8)(unsafe.Pointer(message))) == 0 { 34726 return -29 34727 } 34728 } 34729 34730 for i = uint64(0); int32(*(*uint8)(unsafe.Pointer(message))) != 0; i++ { 34731 if i >= size-uint64(1) { 34732 *(*TPCRE2_UCHAR8)(unsafe.Pointer(buffer + uintptr(i))) = TPCRE2_UCHAR8(0) // Terminate partial message 34733 return -48 34734 } 34735 *(*TPCRE2_UCHAR8)(unsafe.Pointer(buffer + uintptr(i))) = *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&message, 1))) 34736 } 34737 34738 *(*TPCRE2_UCHAR8)(unsafe.Pointer(buffer + uintptr(i))) = TPCRE2_UCHAR8(0) 34739 return int32(i) 34740 } 34741 34742 // End of pcre2_error.c 34743 34744 // This function is needed only when memmove() is not available. 34745 34746 // End of pcre2_internal.h 34747 34748 // Dummy function 34749 34750 // ************************************************ 34751 // 34752 // Match an extended grapheme sequence * 34753 // 34754 34755 // 34756 // Arguments: 34757 // c the first character 34758 // eptr pointer to next character 34759 // start_subject pointer to start of subject 34760 // end_subject pointer to end of subject 34761 // utf TRUE if in UTF mode 34762 // xcount pointer to count of additional characters, 34763 // or NULL if count not needed 34764 // 34765 // Returns: pointer after the end of the sequence 34766 34767 func X_pcre2_extuni_8(tls *libc.TLS, c Tuint32_t, eptr TPCRE2_SPTR8, start_subject TPCRE2_SPTR8, end_subject TPCRE2_SPTR8, utf TBOOL, xcount uintptr) TPCRE2_SPTR8 { /* pcre2_extuni.c:92:1: */ 34768 var lgb int32 = int32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12)).Fgbprop) 34769 34770 for eptr < end_subject { 34771 var rgb int32 34772 var len int32 = 1 34773 if !(utf != 0) { 34774 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr))) 34775 } else { 34776 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr))) 34777 if c >= 0xc0 { 34778 if c&0x20 == Tuint32_t(0) { 34779 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 1)))&0x3f 34780 len++ 34781 } else if c&0x10 == Tuint32_t(0) { 34782 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 2)))&0x3f 34783 len = len + 2 34784 } else if c&0x08 == Tuint32_t(0) { 34785 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 3)))&0x3f 34786 len = len + 3 34787 } else if c&0x04 == Tuint32_t(0) { 34788 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 4)))&0x3f 34789 len = len + 4 34790 } else { 34791 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 5)))&0x3f 34792 len = len + 5 34793 } 34794 } 34795 34796 } 34797 rgb = int32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12)).Fgbprop) 34798 if X_pcre2_ucp_gbtable_8[lgb]&(uint32(1)<<rgb) == Tuint32_t(0) { 34799 break 34800 } 34801 34802 // Not breaking between Regional Indicators is allowed only if there 34803 // are an even number of preceding RIs. 34804 34805 if lgb == ucp_gbRegional_Indicator && rgb == ucp_gbRegional_Indicator { 34806 var ricount int32 = 0 34807 var bptr TPCRE2_SPTR8 = eptr - uintptr(1) 34808 if utf != 0 { 34809 for uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr)))&0xc0 == 0x80 { 34810 bptr-- 34811 } 34812 } 34813 34814 // bptr is pointing to the left-hand character 34815 34816 for bptr > start_subject { 34817 bptr-- 34818 if utf != 0 { 34819 for uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr)))&0xc0 == 0x80 { 34820 bptr-- 34821 } 34822 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr))) 34823 if c >= 0xc0 { 34824 if c&0x20 == Tuint32_t(0) { 34825 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr + 1)))&0x3f 34826 } else if c&0x10 == Tuint32_t(0) { 34827 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr + 2)))&0x3f 34828 } else if c&0x08 == Tuint32_t(0) { 34829 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr + 3)))&0x3f 34830 } else if c&0x04 == Tuint32_t(0) { 34831 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr + 4)))&0x3f 34832 } else { 34833 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr + 5)))&0x3f 34834 } 34835 } 34836 34837 } else { 34838 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bptr))) 34839 } 34840 if int32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12)).Fgbprop) != ucp_gbRegional_Indicator { 34841 break 34842 } 34843 ricount++ 34844 } 34845 if ricount&1 != 0 { 34846 break 34847 } // Grapheme break required 34848 } 34849 34850 // If Extend or ZWJ follows Extended_Pictographic, do not update lgb; this 34851 // allows any number of them before a following Extended_Pictographic. 34852 34853 if rgb != ucp_gbExtend && rgb != ucp_gbZWJ || lgb != ucp_gbExtended_Pictographic { 34854 lgb = rgb 34855 } 34856 34857 eptr += TPCRE2_SPTR8(len) 34858 if xcount != uintptr(0) { 34859 *(*int32)(unsafe.Pointer(xcount)) += 1 34860 } 34861 } 34862 34863 return eptr 34864 } 34865 34866 // End of pcre2_extuni.c 34867 34868 // This function is needed only when memmove() is not available. 34869 34870 // End of pcre2_internal.h 34871 34872 // ************************************************ 34873 // 34874 // Scan compiled regex for specific bracket * 34875 // 34876 34877 // 34878 // Arguments: 34879 // code points to start of expression 34880 // utf TRUE in UTF mode 34881 // number the required bracket number or negative to find a lookbehind 34882 // 34883 // Returns: pointer to the opcode for the bracket, or NULL if not found 34884 34885 func X_pcre2_find_bracket_8(tls *libc.TLS, code TPCRE2_SPTR8, utf TBOOL, number int32) TPCRE2_SPTR8 { /* pcre2_find_bracket.c:70:1: */ 34886 for { 34887 var c TPCRE2_UCHAR8 = *(*TPCRE2_UCHAR8)(unsafe.Pointer(code)) 34888 34889 if int32(c) == OP_END { 34890 return uintptr(0) 34891 } 34892 34893 // XCLASS is used for classes that cannot be represented just by a bit map. 34894 // This includes negated single high-valued characters. CALLOUT_STR is used for 34895 // callouts with string arguments. In both cases the length in the table is 34896 // zero; the actual length is stored in the compiled code. 34897 34898 if int32(c) == OP_XCLASS { 34899 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 34900 } else if int32(c) == OP_CALLOUT_STR { 34901 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 5)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 6))))) 34902 } else if int32(c) == OP_REVERSE { 34903 if number < 0 { 34904 return code 34905 } 34906 code += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[c]) 34907 } else if int32(c) == OP_CBRA || int32(c) == OP_SCBRA || int32(c) == OP_CBRAPOS || int32(c) == OP_SCBRAPOS { 34908 var n int32 = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 4))))) 34909 if n == number { 34910 return code 34911 } 34912 code += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[c]) 34913 } else { 34914 switch int32(c) { 34915 case OP_TYPESTAR: 34916 fallthrough 34917 case OP_TYPEMINSTAR: 34918 fallthrough 34919 case OP_TYPEPLUS: 34920 fallthrough 34921 case OP_TYPEMINPLUS: 34922 fallthrough 34923 case OP_TYPEQUERY: 34924 fallthrough 34925 case OP_TYPEMINQUERY: 34926 fallthrough 34927 case OP_TYPEPOSSTAR: 34928 fallthrough 34929 case OP_TYPEPOSPLUS: 34930 fallthrough 34931 case OP_TYPEPOSQUERY: 34932 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) == OP_PROP || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) == OP_NOTPROP { 34933 code += uintptr(2) 34934 } 34935 break 34936 fallthrough 34937 34938 case OP_TYPEUPTO: 34939 fallthrough 34940 case OP_TYPEMINUPTO: 34941 fallthrough 34942 case OP_TYPEEXACT: 34943 fallthrough 34944 case OP_TYPEPOSUPTO: 34945 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))) == OP_PROP || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 3))) == OP_NOTPROP { 34946 code += uintptr(2) 34947 } 34948 break 34949 fallthrough 34950 34951 case OP_MARK: 34952 fallthrough 34953 case OP_COMMIT_ARG: 34954 fallthrough 34955 case OP_PRUNE_ARG: 34956 fallthrough 34957 case OP_SKIP_ARG: 34958 fallthrough 34959 case OP_THEN_ARG: 34960 code += TPCRE2_SPTR8(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1))) 34961 break 34962 } 34963 34964 // Add in the fixed length from the table 34965 34966 code += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[c]) 34967 34968 // In UTF-8 and UTF-16 modes, opcodes that are followed by a character may be 34969 // followed by a multi-byte character. The length in the table is a minimum, so 34970 // we have to arrange to skip the extra bytes. 34971 34972 if utf != 0 { 34973 switch int32(c) { 34974 case OP_CHAR: 34975 fallthrough 34976 case OP_CHARI: 34977 fallthrough 34978 case OP_NOT: 34979 fallthrough 34980 case OP_NOTI: 34981 fallthrough 34982 case OP_EXACT: 34983 fallthrough 34984 case OP_EXACTI: 34985 fallthrough 34986 case OP_NOTEXACT: 34987 fallthrough 34988 case OP_NOTEXACTI: 34989 fallthrough 34990 case OP_UPTO: 34991 fallthrough 34992 case OP_UPTOI: 34993 fallthrough 34994 case OP_NOTUPTO: 34995 fallthrough 34996 case OP_NOTUPTOI: 34997 fallthrough 34998 case OP_MINUPTO: 34999 fallthrough 35000 case OP_MINUPTOI: 35001 fallthrough 35002 case OP_NOTMINUPTO: 35003 fallthrough 35004 case OP_NOTMINUPTOI: 35005 fallthrough 35006 case OP_POSUPTO: 35007 fallthrough 35008 case OP_POSUPTOI: 35009 fallthrough 35010 case OP_NOTPOSUPTO: 35011 fallthrough 35012 case OP_NOTPOSUPTOI: 35013 fallthrough 35014 case OP_STAR: 35015 fallthrough 35016 case OP_STARI: 35017 fallthrough 35018 case OP_NOTSTAR: 35019 fallthrough 35020 case OP_NOTSTARI: 35021 fallthrough 35022 case OP_MINSTAR: 35023 fallthrough 35024 case OP_MINSTARI: 35025 fallthrough 35026 case OP_NOTMINSTAR: 35027 fallthrough 35028 case OP_NOTMINSTARI: 35029 fallthrough 35030 case OP_POSSTAR: 35031 fallthrough 35032 case OP_POSSTARI: 35033 fallthrough 35034 case OP_NOTPOSSTAR: 35035 fallthrough 35036 case OP_NOTPOSSTARI: 35037 fallthrough 35038 case OP_PLUS: 35039 fallthrough 35040 case OP_PLUSI: 35041 fallthrough 35042 case OP_NOTPLUS: 35043 fallthrough 35044 case OP_NOTPLUSI: 35045 fallthrough 35046 case OP_MINPLUS: 35047 fallthrough 35048 case OP_MINPLUSI: 35049 fallthrough 35050 case OP_NOTMINPLUS: 35051 fallthrough 35052 case OP_NOTMINPLUSI: 35053 fallthrough 35054 case OP_POSPLUS: 35055 fallthrough 35056 case OP_POSPLUSI: 35057 fallthrough 35058 case OP_NOTPOSPLUS: 35059 fallthrough 35060 case OP_NOTPOSPLUSI: 35061 fallthrough 35062 case OP_QUERY: 35063 fallthrough 35064 case OP_QUERYI: 35065 fallthrough 35066 case OP_NOTQUERY: 35067 fallthrough 35068 case OP_NOTQUERYI: 35069 fallthrough 35070 case OP_MINQUERY: 35071 fallthrough 35072 case OP_MINQUERYI: 35073 fallthrough 35074 case OP_NOTMINQUERY: 35075 fallthrough 35076 case OP_NOTMINQUERYI: 35077 fallthrough 35078 case OP_POSQUERY: 35079 fallthrough 35080 case OP_POSQUERYI: 35081 fallthrough 35082 case OP_NOTPOSQUERY: 35083 fallthrough 35084 case OP_NOTPOSQUERYI: 35085 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + libc.UintptrFromInt32(-1)))) >= 0xc0 { 35086 code += TPCRE2_SPTR8(X_pcre2_utf8_table4[uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + libc.UintptrFromInt32(-1))))&0x3f]) 35087 } 35088 break 35089 } 35090 } 35091 } 35092 } 35093 return TPCRE2_SPTR8(0) 35094 } 35095 35096 // End of pcre2_find_bracket.c 35097 35098 // This function is needed only when memmove() is not available. 35099 35100 // End of pcre2_internal.h 35101 35102 // ************************************************ 35103 // 35104 // JIT compile a Regular Expression * 35105 // 35106 35107 // This function used JIT to convert a previously-compiled pattern into machine 35108 // code. 35109 // 35110 // Arguments: 35111 // code a compiled pattern 35112 // options JIT option bits 35113 // 35114 // Returns: 0: success or (*NOJIT) was used 35115 // <0: an error code 35116 35117 func Xpcre2_jit_compile_8(tls *libc.TLS, code uintptr, options Tuint32_t) int32 { /* pcre2_jit_compile.c:14382:1: */ 35118 var re uintptr = code 35119 35120 if code == uintptr(0) { 35121 return -51 35122 } 35123 35124 if options&libc.CplUint32(DPCRE2_JIT_COMPLETE|DPCRE2_JIT_PARTIAL_SOFT|DPCRE2_JIT_PARTIAL_HARD|DPCRE2_JIT_INVALID_UTF) != Tuint32_t(0) { 35125 return -45 35126 } 35127 35128 // Support for invalid UTF was first introduced in JIT, with the option 35129 // PCRE2_JIT_INVALID_UTF. Later, support was added to the interpreter, and the 35130 // compile-time option PCRE2_MATCH_INVALID_UTF was created. This is now the 35131 // preferred feature, with the earlier option deprecated. However, for backward 35132 // compatibility, if the earlier option is set, it forces the new option so that 35133 // if JIT matching falls back to the interpreter, there is still support for 35134 // invalid UTF. However, if this function has already been successfully called 35135 // without PCRE2_JIT_INVALID_UTF and without PCRE2_MATCH_INVALID_UTF (meaning that 35136 // non-invalid-supporting JIT code was compiled), give an error. 35137 // 35138 // If in the future support for PCRE2_JIT_INVALID_UTF is withdrawn, the following 35139 // actions are needed: 35140 // 35141 // 1. Remove the definition from pcre2.h.in and from the list in 35142 // PUBLIC_JIT_COMPILE_OPTIONS above. 35143 // 35144 // 2. Replace PCRE2_JIT_INVALID_UTF with a local flag in this module. 35145 // 35146 // 3. Replace PCRE2_JIT_INVALID_UTF in pcre2_jit_test.c. 35147 // 35148 // 4. Delete the following short block of code. The setting of "re" and 35149 // "functions" can be moved into the JIT-only block below, but if that is 35150 // done, (void)re and (void)functions will be needed in the non-JIT case, to 35151 // avoid compiler warnings. 35152 35153 if options&DPCRE2_JIT_INVALID_UTF != Tuint32_t(0) { 35154 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_MATCH_INVALID_UTF == Tuint32_t(0) { 35155 *(*Tuint32_t)(unsafe.Pointer(re + 88)) |= DPCRE2_MATCH_INVALID_UTF 35156 } 35157 } 35158 35159 // The above tests are run with and without JIT support. This means that 35160 // PCRE2_JIT_INVALID_UTF propagates back into the regex options (ensuring 35161 // interpreter support) even in the absence of JIT. But now, if there is no JIT 35162 // support, give an error return. 35163 35164 return -45 35165 } 35166 35167 // JIT compiler uses an all-in-one approach. This improves security, 35168 // since the code generator functions are not exported. 35169 35170 // ************************************************ 35171 // 35172 // Perl-Compatible Regular Expressions * 35173 // 35174 35175 // PCRE is a library of functions to support regular expressions whose syntax 35176 // and semantics are as close as possible to those of the Perl 5 language. 35177 // 35178 // Written by Philip Hazel 35179 // Original API code Copyright (c) 1997-2012 University of Cambridge 35180 // New API code Copyright (c) 2016-2018 University of Cambridge 35181 // 35182 // ----------------------------------------------------------------------------- 35183 // Redistribution and use in source and binary forms, with or without 35184 // modification, are permitted provided that the following conditions are met: 35185 // 35186 // * Redistributions of source code must retain the above copyright notice, 35187 // this list of conditions and the following disclaimer. 35188 // 35189 // * Redistributions in binary form must reproduce the above copyright 35190 // notice, this list of conditions and the following disclaimer in the 35191 // documentation and/or other materials provided with the distribution. 35192 // 35193 // * Neither the name of the University of Cambridge nor the names of its 35194 // contributors may be used to endorse or promote products derived from 35195 // this software without specific prior written permission. 35196 // 35197 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 35198 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 35199 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 35200 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 35201 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 35202 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 35203 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 35204 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 35205 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 35206 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 35207 // POSSIBILITY OF SUCH DAMAGE. 35208 // ----------------------------------------------------------------------------- 35209 35210 // ************************************************ 35211 // 35212 // Do a JIT pattern match * 35213 // 35214 35215 // This function runs a JIT pattern match. 35216 // 35217 // Arguments: 35218 // code points to the compiled expression 35219 // subject points to the subject string 35220 // length length of subject string (may contain binary zeros) 35221 // start_offset where to start in the subject string 35222 // options option bits 35223 // match_data points to a match_data block 35224 // mcontext points to a match context 35225 // 35226 // Returns: > 0 => success; value is the number of ovector pairs filled 35227 // = 0 => success, but ovector is not big enough 35228 // -1 => failed to match (PCRE_ERROR_NOMATCH) 35229 // < -1 => some kind of unexpected problem 35230 35231 func Xpcre2_jit_match_8(tls *libc.TLS, code uintptr, subject TPCRE2_SPTR8, length Tsize_t, start_offset Tsize_t, options Tuint32_t, match_data uintptr, mcontext uintptr) int32 { /* pcre2_jit_match.c:85:1: */ 35232 35233 _ = code 35234 _ = subject 35235 _ = length 35236 _ = start_offset 35237 _ = options 35238 _ = match_data 35239 _ = mcontext 35240 return -45 35241 35242 } 35243 35244 // End of pcre2_jit_match.c 35245 // ************************************************ 35246 // 35247 // Perl-Compatible Regular Expressions * 35248 // 35249 35250 // PCRE is a library of functions to support regular expressions whose syntax 35251 // and semantics are as close as possible to those of the Perl 5 language. 35252 // 35253 // Written by Philip Hazel 35254 // Original API code Copyright (c) 1997-2012 University of Cambridge 35255 // New API code Copyright (c) 2016 University of Cambridge 35256 // 35257 // ----------------------------------------------------------------------------- 35258 // Redistribution and use in source and binary forms, with or without 35259 // modification, are permitted provided that the following conditions are met: 35260 // 35261 // * Redistributions of source code must retain the above copyright notice, 35262 // this list of conditions and the following disclaimer. 35263 // 35264 // * Redistributions in binary form must reproduce the above copyright 35265 // notice, this list of conditions and the following disclaimer in the 35266 // documentation and/or other materials provided with the distribution. 35267 // 35268 // * Neither the name of the University of Cambridge nor the names of its 35269 // contributors may be used to endorse or promote products derived from 35270 // this software without specific prior written permission. 35271 // 35272 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 35273 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 35274 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 35275 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 35276 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 35277 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 35278 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 35279 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 35280 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 35281 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 35282 // POSSIBILITY OF SUCH DAMAGE. 35283 // ----------------------------------------------------------------------------- 35284 35285 // ************************************************ 35286 // 35287 // Free JIT read-only data * 35288 // 35289 35290 func X_pcre2_jit_free_rodata_8(tls *libc.TLS, current uintptr, allocator_data uintptr) { /* pcre2_jit_misc.c:53:1: */ 35291 _ = current 35292 _ = allocator_data 35293 } 35294 35295 // ************************************************ 35296 // 35297 // Free JIT compiled code * 35298 // 35299 35300 func X_pcre2_jit_free_8(tls *libc.TLS, executable_jit uintptr, memctl uintptr) { /* pcre2_jit_misc.c:78:1: */ 35301 _ = executable_jit 35302 _ = memctl 35303 } 35304 35305 // ************************************************ 35306 // 35307 // Free unused JIT memory * 35308 // 35309 35310 func Xpcre2_jit_free_unused_memory_8(tls *libc.TLS, gcontext uintptr) { /* pcre2_jit_misc.c:107:1: */ 35311 _ = gcontext // Suppress warning 35312 } 35313 35314 // ************************************************ 35315 // 35316 // Allocate a JIT stack * 35317 // 35318 35319 func Xpcre2_jit_stack_create_8(tls *libc.TLS, startsize Tsize_t, maxsize Tsize_t, gcontext uintptr) uintptr { /* pcre2_jit_misc.c:123:32: */ 35320 35321 _ = gcontext 35322 _ = startsize 35323 _ = maxsize 35324 return uintptr(0) 35325 35326 } 35327 35328 // ************************************************ 35329 // 35330 // Assign a JIT stack to a pattern * 35331 // 35332 35333 func Xpcre2_jit_stack_assign_8(tls *libc.TLS, mcontext uintptr, callback Tpcre2_jit_callback_8, callback_data uintptr) { /* pcre2_jit_misc.c:164:1: */ 35334 _ = mcontext 35335 _ = callback 35336 _ = callback_data 35337 } 35338 35339 // ************************************************ 35340 // 35341 // Free a JIT stack * 35342 // 35343 35344 func Xpcre2_jit_stack_free_8(tls *libc.TLS, jit_stack uintptr) { /* pcre2_jit_misc.c:186:1: */ 35345 _ = jit_stack 35346 } 35347 35348 // ************************************************ 35349 // 35350 // Get target CPU type * 35351 // 35352 35353 func X_pcre2_jit_get_target_8(tls *libc.TLS) uintptr { /* pcre2_jit_misc.c:204:11: */ 35354 return ts + 7657 /* "JIT is not suppo..." */ 35355 } 35356 35357 // ************************************************ 35358 // 35359 // Get size of JIT code * 35360 // 35361 35362 func X_pcre2_jit_get_size_8(tls *libc.TLS, executable_jit uintptr) Tsize_t { /* pcre2_jit_misc.c:220:1: */ 35363 _ = executable_jit 35364 return uint64(0) 35365 } 35366 35367 // End of pcre2_jit_misc.c 35368 35369 // End of pcre2_jit_compile.c 35370 35371 // This function is needed only when memmove() is not available. 35372 35373 // End of pcre2_internal.h 35374 35375 // ************************************************ 35376 // 35377 // Create PCRE2 character tables * 35378 // 35379 35380 // This function builds a set of character tables for use by PCRE2 and returns 35381 // a pointer to them. They are build using the ctype functions, and consequently 35382 // their contents will depend upon the current locale setting. When compiled as 35383 // part of the library, the store is obtained via a general context malloc, if 35384 // supplied, but when PCRE2_DFTABLES is defined (when compiling the pcre2_dftables 35385 // freestanding auxiliary program) malloc() is used, and the function has a 35386 // different name so as not to clash with the prototype in pcre2.h. 35387 // 35388 // Arguments: none when PCRE2_DFTABLES is defined 35389 // else a PCRE2 general context or NULL 35390 // Returns: pointer to the contiguous block of data 35391 // else NULL if memory allocation failed 35392 35393 func Xpcre2_maketables_8(tls *libc.TLS, gcontext uintptr) uintptr { /* pcre2_maketables.c:81:30: */ 35394 var yield uintptr = func() uintptr { 35395 if gcontext != uintptr(0) { 35396 return (*struct { 35397 f func(*libc.TLS, Tsize_t, uintptr) uintptr 35398 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_general_context_8)(unsafe.Pointer(gcontext)).Fmemctl.Fmalloc})).f(tls, uint64(Dcbits_offset+Dcbit_length+256), (*Tpcre2_general_context_8)(unsafe.Pointer(gcontext)).Fmemctl.Fmemory_data) 35399 } 35400 return libc.Xmalloc(tls, uint64(Dcbits_offset+Dcbit_length+256)) 35401 }() 35402 var i int32 35403 var p uintptr 35404 35405 if yield == uintptr(0) { 35406 return uintptr(0) 35407 } 35408 p = yield 35409 35410 // First comes the lower casing table 35411 35412 for i = 0; i < 256; i++ { 35413 *(*Tuint8_t)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = Tuint8_t(libc.Xtolower(tls, i)) 35414 } 35415 35416 // Next the case-flipping table 35417 35418 for i = 0; i < 256; i++ { 35419 *(*Tuint8_t)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = func() uint8 { 35420 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISlower) != 0 { 35421 return uint8(libc.Xtoupper(tls, i)) 35422 } 35423 return uint8(libc.Xtolower(tls, i)) 35424 }() 35425 } 35426 35427 // Then the character class tables. Don't try to be clever and save effort on 35428 // exclusive ones - in some locales things may be different. 35429 // 35430 // Note that the table for "space" includes everything "isspace" gives, including 35431 // VT in the default locale. This makes it work for the POSIX class [:space:]. 35432 // From PCRE1 release 8.34 and for all PCRE2 releases it is also correct for Perl 35433 // space, because Perl added VT at release 5.18. 35434 // 35435 // Note also that it is possible for a character to be alnum or alpha without 35436 // being lower or upper, such as "male and female ordinals" (\xAA and \xBA) in the 35437 // fr_FR locale (at least under Debian Linux's locales as of 12/2005). So we must 35438 // test for alnum specially. 35439 35440 libc.Xmemset(tls, p, 0, uint64(Dcbit_length)) 35441 for i = 0; i < 256; i++ { 35442 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISdigit) != 0 { 35443 *(*Tuint8_t)(unsafe.Pointer(p + uintptr(Dcbit_digit+i/8))) |= Tuint8_t(uint32(1) << (i & 7)) 35444 } 35445 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISupper) != 0 { 35446 *(*Tuint8_t)(unsafe.Pointer(p + uintptr(Dcbit_upper+i/8))) |= Tuint8_t(uint32(1) << (i & 7)) 35447 } 35448 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISlower) != 0 { 35449 *(*Tuint8_t)(unsafe.Pointer(p + uintptr(Dcbit_lower+i/8))) |= Tuint8_t(uint32(1) << (i & 7)) 35450 } 35451 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISalnum) != 0 { 35452 *(*Tuint8_t)(unsafe.Pointer(p + uintptr(Dcbit_word+i/8))) |= Tuint8_t(uint32(1) << (i & 7)) 35453 } 35454 if i == '_' { 35455 *(*Tuint8_t)(unsafe.Pointer(p + uintptr(Dcbit_word+i/8))) |= Tuint8_t(uint32(1) << (i & 7)) 35456 } 35457 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISspace) != 0 { 35458 *(*Tuint8_t)(unsafe.Pointer(p + uintptr(Dcbit_space+i/8))) |= Tuint8_t(uint32(1) << (i & 7)) 35459 } 35460 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISxdigit) != 0 { 35461 *(*Tuint8_t)(unsafe.Pointer(p + uintptr(Dcbit_xdigit+i/8))) |= Tuint8_t(uint32(1) << (i & 7)) 35462 } 35463 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISgraph) != 0 { 35464 *(*Tuint8_t)(unsafe.Pointer(p + uintptr(Dcbit_graph+i/8))) |= Tuint8_t(uint32(1) << (i & 7)) 35465 } 35466 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISprint) != 0 { 35467 *(*Tuint8_t)(unsafe.Pointer(p + uintptr(Dcbit_print+i/8))) |= Tuint8_t(uint32(1) << (i & 7)) 35468 } 35469 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISpunct) != 0 { 35470 *(*Tuint8_t)(unsafe.Pointer(p + uintptr(Dcbit_punct+i/8))) |= Tuint8_t(uint32(1) << (i & 7)) 35471 } 35472 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_IScntrl) != 0 { 35473 *(*Tuint8_t)(unsafe.Pointer(p + uintptr(Dcbit_cntrl+i/8))) |= Tuint8_t(uint32(1) << (i & 7)) 35474 } 35475 } 35476 p += uintptr(Dcbit_length) 35477 35478 // Finally, the character type table. In this, we used to exclude VT from the 35479 // white space chars, because Perl didn't recognize it as such for \s and for 35480 // comments within regexes. However, Perl changed at release 5.18, so PCRE1 35481 // changed at release 8.34 and it's always been this way for PCRE2. 35482 35483 for i = 0; i < 256; i++ { 35484 var x int32 = 0 35485 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISspace) != 0 { 35486 x = x + Dctype_space 35487 } 35488 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISalpha) != 0 { 35489 x = x + Dctype_letter 35490 } 35491 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISlower) != 0 { 35492 x = x + Dctype_lcletter 35493 } 35494 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISdigit) != 0 { 35495 x = x + Dctype_digit 35496 } 35497 if int32(*(*uint16)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(libc.X__ctype_b_loc(tls))) + uintptr(i)*2)))&int32(_ISalnum) != 0 || i == '_' { 35498 x = x + Dctype_word 35499 } 35500 *(*Tuint8_t)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))) = Tuint8_t(x) 35501 } 35502 35503 return yield 35504 } 35505 35506 func Xpcre2_maketables_free_8(tls *libc.TLS, gcontext uintptr, tables uintptr) { /* pcre2_maketables.c:154:1: */ 35507 if gcontext != 0 { 35508 (*struct { 35509 f func(*libc.TLS, uintptr, uintptr) 35510 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_general_context_8)(unsafe.Pointer(gcontext)).Fmemctl.Ffree})).f(tls, tables, (*Tpcre2_general_context_8)(unsafe.Pointer(gcontext)).Fmemctl.Fmemory_data) 35511 } else { 35512 libc.Xfree(tls, tables) 35513 } 35514 } 35515 35516 // End of pcre2_maketables.c 35517 35518 // Min and max values for the common repeats; a maximum of UINT32_MAX => 35519 // infinity. 35520 35521 var rep_min = [11]Tuint32_t{ 35522 Tuint32_t(0), Tuint32_t(0), // * and *? 35523 Tuint32_t(1), Tuint32_t(1), // + and +? 35524 Tuint32_t(0), Tuint32_t(0), // ? and ?? 35525 Tuint32_t(0), Tuint32_t(0), // dummy placefillers for OP_CR[MIN]RANGE 35526 Tuint32_t(0), Tuint32_t(1), Tuint32_t(0)} /* pcre2_match.c:123:23 */ // OP_CRPOS{STAR, PLUS, QUERY} 35527 35528 var rep_max = [11]Tuint32_t{ 35529 4294967295, 4294967295, 35530 4294967295, 4294967295, 35531 Tuint32_t(1), Tuint32_t(1), // ? and ?? 35532 Tuint32_t(0), Tuint32_t(0), // dummy placefillers for OP_CR[MIN]RANGE 35533 4294967295, 4294967295, Tuint32_t(1)} /* pcre2_match.c:130:23 */ // OP_CRPOS{STAR, PLUS, QUERY} 35534 35535 // Repetition types - must include OP_CRPOSRANGE (not needed above) 35536 35537 var rep_typ = [12]Tuint32_t{ 35538 REPTYPE_MAX, REPTYPE_MIN, // * and *? 35539 REPTYPE_MAX, REPTYPE_MIN, // + and +? 35540 REPTYPE_MAX, REPTYPE_MIN, // ? and ?? 35541 REPTYPE_MAX, REPTYPE_MIN, // OP_CRRANGE and OP_CRMINRANGE 35542 REPTYPE_POS, REPTYPE_POS, // OP_CRPOSSTAR, OP_CRPOSPLUS 35543 REPTYPE_POS, REPTYPE_POS} /* pcre2_match.c:139:23 */ 35544 35545 // Define short names for general fields in the current backtrack frame, which 35546 // is always pointed to by the F variable. Occasional references to fields in 35547 // other frames are written out explicitly. There are also some fields in the 35548 // current frame whose names start with "temp" that are used for short-term, 35549 // localised backtracking memory. These are #defined with Lxxx names at the point 35550 // of use and undefined afterwards. 35551 35552 // ************************************************ 35553 // 35554 // Process a callout * 35555 // 35556 35557 // This function is called for all callouts, whether "standalone" or at the 35558 // start of a conditional group. Feptr will be pointing to either OP_CALLOUT or 35559 // OP_CALLOUT_STR. A callout block is allocated in pcre2_match() and initialized 35560 // with fixed values. 35561 // 35562 // Arguments: 35563 // F points to the current backtracking frame 35564 // mb points to the match block 35565 // lengthptr where to return the length of the callout item 35566 // 35567 // Returns: the return from the callout 35568 // or 0 if no callout function exists 35569 35570 func do_callout1(tls *libc.TLS, F uintptr, mb uintptr, lengthptr uintptr) int32 { /* pcre2_match.c:267:1: */ 35571 var rc int32 35572 var save0 Tsize_t 35573 var save1 Tsize_t 35574 var callout_ovector uintptr 35575 var cb uintptr 35576 35577 *(*Tsize_t)(unsafe.Pointer(lengthptr)) = func() uint64 { 35578 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_CALLOUT { 35579 return uint64(X_pcre2_OP_lengths_8[OP_CALLOUT]) 35580 } 35581 return uint64(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 5)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 6))))) 35582 }() 35583 35584 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcallout == uintptr(0) { 35585 return 0 35586 } // No callout function provided 35587 35588 // The original matching code (pre 10.30) worked directly with the ovector 35589 // passed by the user, and this was passed to callouts. Now that the working 35590 // ovector is in the backtracking frame, it no longer needs to reserve space for 35591 // the overall match offsets (which would waste space in the frame). For backward 35592 // compatibility, however, we pass capture_top and offset_vector to the callout as 35593 // if for the extended ovector, and we ensure that the first two slots are unset 35594 // by preserving and restoring their current contents. Picky compilers complain if 35595 // references such as Fovector[-2] are use directly, so we set up a separate 35596 // pointer. 35597 35598 callout_ovector = F + 128 - uintptr(2)*8 35599 35600 // The cb->version, cb->subject, cb->subject_length, and cb->start_match fields 35601 // are set externally. The first 3 never change; the last is updated for each 35602 // bumpalong. 35603 35604 cb = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcb 35605 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcapture_top = Tuint32_t((*Theapframe)(unsafe.Pointer(F)).Foffset_top)/Tuint32_t(2) + Tuint32_t(1) 35606 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcapture_last = (*Theapframe)(unsafe.Pointer(F)).Fcapture_last 35607 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Foffset_vector = callout_ovector 35608 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fmark = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnomatch_mark 35609 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcurrent_position = Tsize_t((int64((*Theapframe)(unsafe.Pointer(F)).Feptr) - int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject)) / 1) 35610 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fpattern_position = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 35611 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fnext_item_length = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 4))))) 35612 35613 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_CALLOUT { 35614 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_number = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 5))) 35615 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string_offset = uint64(0) 35616 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string = uintptr(0) 35617 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string_length = uint64(0) 35618 } else { 35619 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_number = Tuint32_t(0) 35620 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string_offset = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 7)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 8))))) 35621 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(1+4*DLINK_SIZE) + uintptr(1) 35622 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_string_length = *(*Tsize_t)(unsafe.Pointer(lengthptr)) - uint64(1+4*DLINK_SIZE) - uint64(2) 35623 } 35624 35625 save0 = *(*Tsize_t)(unsafe.Pointer(callout_ovector)) 35626 save1 = *(*Tsize_t)(unsafe.Pointer(callout_ovector + 1*8)) 35627 *(*Tsize_t)(unsafe.Pointer(callout_ovector)) = libc.AssignPtrUint64(callout_ovector+1*8, libc.CplUint64(uint64(0))) 35628 rc = (*struct { 35629 f func(*libc.TLS, uintptr, uintptr) int32 35630 })(unsafe.Pointer(&struct{ uintptr }{(*Tmatch_block_8)(unsafe.Pointer(mb)).Fcallout})).f(tls, cb, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcallout_data) 35631 *(*Tsize_t)(unsafe.Pointer(callout_ovector)) = save0 35632 *(*Tsize_t)(unsafe.Pointer(callout_ovector + 1*8)) = save1 35633 (*Tpcre2_callout_block_8)(unsafe.Pointer(cb)).Fcallout_flags = Tuint32_t(0) 35634 return rc 35635 } 35636 35637 // ************************************************ 35638 // 35639 // Match a back-reference * 35640 // 35641 35642 // This function is called only when it is known that the offset lies within 35643 // the offsets that have so far been used in the match. Note that in caseless 35644 // UTF-8 mode, the number of subject bytes matched may be different to the number 35645 // of reference bytes. (In theory this could also happen in UTF-16 mode, but it 35646 // seems unlikely.) 35647 // 35648 // Arguments: 35649 // offset index into the offset vector 35650 // caseless TRUE if caseless 35651 // F the current backtracking frame pointer 35652 // mb points to match block 35653 // lengthptr pointer for returning the length matched 35654 // 35655 // Returns: = 0 sucessful match; number of code units matched is set 35656 // < 0 no match 35657 // > 0 partial match 35658 35659 func match_ref(tls *libc.TLS, offset Tsize_t, caseless TBOOL, F uintptr, mb uintptr, lengthptr uintptr) int32 { /* pcre2_match.c:355:1: */ 35660 var p TPCRE2_SPTR8 35661 var length Tsize_t 35662 var eptr TPCRE2_SPTR8 35663 var eptr_start TPCRE2_SPTR8 35664 35665 // Deal with an unset group. The default is no match, but there is an option to 35666 // match an empty string. 35667 35668 if offset >= (*Theapframe)(unsafe.Pointer(F)).Foffset_top || *(*Tsize_t)(unsafe.Pointer(F + 128 + uintptr(offset)*8)) == libc.CplUint64(uint64(0)) { 35669 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_MATCH_UNSET_BACKREF != Tuint32_t(0) { 35670 *(*Tsize_t)(unsafe.Pointer(lengthptr)) = uint64(0) 35671 return 0 // Match 35672 } else { 35673 return -1 35674 } // No match 35675 } 35676 35677 // Separate the caseless and UTF cases for speed. 35678 35679 eptr = libc.AssignUintptr(&eptr_start, (*Theapframe)(unsafe.Pointer(F)).Feptr) 35680 p = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject + uintptr(*(*Tsize_t)(unsafe.Pointer(F + 128 + uintptr(offset)*8))) 35681 length = *(*Tsize_t)(unsafe.Pointer(F + 128 + uintptr(offset+uint64(1))*8)) - *(*Tsize_t)(unsafe.Pointer(F + 128 + uintptr(offset)*8)) 35682 35683 if caseless != 0 { 35684 var utf TBOOL = libc.Bool32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_UTF != Tuint32_t(0)) 35685 35686 if utf != 0 || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_UCP != Tuint32_t(0) { 35687 var endptr TPCRE2_SPTR8 = p + uintptr(length) 35688 35689 // Match characters up to the end of the reference. NOTE: the number of 35690 // code units matched may differ, because in UTF-8 there are some characters 35691 // whose upper and lower case codes have different numbers of bytes. For 35692 // example, U+023A (2 bytes in UTF-8) is the upper case version of U+2C65 (3 35693 // bytes in UTF-8); a sequence of 3 of the former uses 6 bytes, as does a 35694 // sequence of two of the latter. It is important, therefore, to check the 35695 // length along the reference, not along the subject (earlier code did this 35696 // wrong). UCP without uses Unicode properties but without UTF encoding. 35697 35698 for p < endptr { 35699 var c Tuint32_t 35700 var d Tuint32_t 35701 var ur uintptr 35702 if eptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject { 35703 return 1 35704 } // Partial match 35705 35706 if utf != 0 { 35707 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&eptr, 1)))) 35708 if c >= 0xc0 { 35709 if c&0x20 == Tuint32_t(0) { 35710 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&eptr, 1))))&0x3f 35711 } else if c&0x10 == Tuint32_t(0) { 35712 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 1)))&0x3f 35713 eptr += uintptr(2) 35714 } else if c&0x08 == Tuint32_t(0) { 35715 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 2)))&0x3f 35716 eptr += uintptr(3) 35717 } else if c&0x04 == Tuint32_t(0) { 35718 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 3)))&0x3f 35719 eptr += uintptr(4) 35720 } else { 35721 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr + 4)))&0x3f 35722 eptr += uintptr(5) 35723 } 35724 } 35725 35726 d = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1)))) 35727 if d >= 0xc0 { 35728 if d&0x20 == Tuint32_t(0) { 35729 d = d&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))))&0x3f 35730 } else if d&0x10 == Tuint32_t(0) { 35731 d = d&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 1)))&0x3f 35732 p += uintptr(2) 35733 } else if d&0x08 == Tuint32_t(0) { 35734 d = d&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 2)))&0x3f 35735 p += uintptr(3) 35736 } else if d&0x04 == Tuint32_t(0) { 35737 d = d&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 3)))&0x3f 35738 p += uintptr(4) 35739 } else { 35740 d = d&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 4)))&0x3f 35741 p += uintptr(5) 35742 } 35743 } 35744 35745 } else { 35746 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&eptr, 1)))) 35747 d = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1)))) 35748 } 35749 35750 ur = uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(d)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(d)%DUCD_BLOCK_SIZE])*12 35751 if c != d && c != Tuint32_t(int32(d)+(*Tucd_record)(unsafe.Pointer(ur)).Fother_case) { 35752 var pp uintptr = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr((*Tucd_record)(unsafe.Pointer(ur)).Fcaseset)*4 35753 for { 35754 if c < *(*Tuint32_t)(unsafe.Pointer(pp)) { 35755 return -1 35756 } // No match 35757 if c == *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&pp, 4))) { 35758 break 35759 } 35760 } 35761 } 35762 } 35763 } else { 35764 for ; length > uint64(0); length-- { 35765 var cc Tuint32_t 35766 var cp Tuint32_t 35767 if eptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject { 35768 return 1 35769 } // Partial match 35770 cc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(eptr))) 35771 cp = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p))) 35772 if int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Flcc + uintptr(cp)))) != int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Flcc + uintptr(cc)))) { 35773 return -1 35774 } // No match 35775 p++ 35776 eptr++ 35777 } 35778 } 35779 } else { 35780 if int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 { 35781 for ; length > uint64(0); length-- { 35782 if eptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject { 35783 return 1 35784 } // Partial match 35785 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1)))) != int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&eptr, 1)))) { 35786 return -1 35787 } // No match 35788 } 35789 } else { 35790 if Tsize_t((int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject)-int64(eptr))/1) < length { 35791 return 1 35792 } // Partial 35793 if libc.Xmemcmp(tls, p, eptr, length*uint64(DPCRE2_CODE_UNIT_WIDTH/8)) != 0 { 35794 return -1 35795 } // No match 35796 eptr += TPCRE2_SPTR8(length) 35797 } 35798 } 35799 35800 *(*Tsize_t)(unsafe.Pointer(lengthptr)) = Tsize_t((int64(eptr) - int64(eptr_start)) / 1) 35801 return 0 // Match 35802 } 35803 35804 //***************************************************************************** 35805 // 35806 // "Recursion" in the match() function 35807 // 35808 // The original match() function was highly recursive, but this proved to be the 35809 // source of a number of problems over the years, mostly because of the relatively 35810 // small system stacks that are commonly found. As new features were added to 35811 // patterns, various kludges were invented to reduce the amount of stack used, 35812 // making the code hard to understand in places. 35813 // 35814 // A version did exist that used individual frames on the heap instead of calling 35815 // match() recursively, but this ran substantially slower. The current version is 35816 // a refactoring that uses a vector of frames to remember backtracking points. 35817 // This runs no slower, and possibly even a bit faster than the original recursive 35818 // implementation. An initial vector of size START_FRAMES_SIZE (enough for maybe 35819 // 50 frames) is allocated on the system stack. If this is not big enough, the 35820 // heap is used for a larger vector. 35821 // 35822 // ******************************************************************************* 35823 // ***************************************************************************** 35824 35825 // ************************************************ 35826 // 35827 // Macros for the match() function * 35828 // 35829 35830 // These macros pack up tests that are used for partial matching several times 35831 // in the code. The second one is used when we already know we are past the end of 35832 // the subject. We set the "hit end" flag if the pointer is at the end of the 35833 // subject and either (a) the pointer is past the earliest inspected character 35834 // (i.e. something has been matched, even if not part of the actual matched 35835 // string), or (b) the pattern contains a lookbehind. These are the conditions for 35836 // which adding more characters may allow the current match to continue. 35837 // 35838 // For hard partial matching, we immediately return a partial match. Otherwise, 35839 // carrying on means that a complete match on the current subject will be sought. 35840 // A partial match is returned only if no complete match can be found. 35841 35842 // These macros are used to implement backtracking. They simulate a recursive 35843 // call to the match() function by means of a local vector of frames which 35844 // remember the backtracking points. 35845 35846 // ************************************************ 35847 // 35848 // Match from current position * 35849 // 35850 35851 // This function is called to run one match attempt at a single starting point 35852 // in the subject. 35853 // 35854 // Performance note: It might be tempting to extract commonly used fields from the 35855 // mb structure (e.g. end_subject) into individual variables to improve 35856 // performance. Tests using gcc on a SPARC disproved this; in the first case, it 35857 // made performance worse. 35858 // 35859 // Arguments: 35860 // start_eptr starting character in subject 35861 // start_ecode starting position in compiled code 35862 // ovector pointer to the final output vector 35863 // oveccount number of pairs in ovector 35864 // top_bracket number of capturing parentheses in the pattern 35865 // frame_size size of each backtracking frame 35866 // mb pointer to "static" variables block 35867 // 35868 // Returns: MATCH_MATCH if matched ) these values are >= 0 35869 // MATCH_NOMATCH if failed to match ) 35870 // negative MATCH_xxx value for PRUNE, SKIP, etc 35871 // negative PCRE2_ERROR_xxx value if aborted by an error condition 35872 // (e.g. stopped by repeated call or depth limit) 35873 35874 func match(tls *libc.TLS, start_eptr TPCRE2_SPTR8, start_ecode TPCRE2_SPTR8, ovector uintptr, oveccount Tuint16_t, top_bracket Tuint16_t, frame_size Tsize_t, mb uintptr) int32 { /* pcre2_match.c:583:1: */ 35875 bp := tls.Alloc(40) 35876 defer tls.Free(40) 35877 35878 // Frame-handling variables 35879 35880 var F uintptr // Current frame pointer 35881 var N uintptr // Temporary frame pointers 35882 var P uintptr 35883 var assert_accept_frame uintptr // For passing back a frame with captures 35884 var frame_copy_size Tsize_t // Amount to copy when creating a new frame 35885 35886 // Local variables that do not need to be preserved over calls to RRMATCH(). 35887 35888 var bracode TPCRE2_SPTR8 // Temp pointer to start of group 35889 var offset Tsize_t // Used for group offsets 35890 // var length Tsize_t at bp, 8 35891 // Used for various length calculations 35892 35893 var rrc int32 // Return from functions & backtracking "recursions" 35894 var proptype int32 // Type of character property 35895 35896 var i Tuint32_t // Used for local loops 35897 var fc Tuint32_t // Character values 35898 var number Tuint32_t // Used for group and other numbers 35899 var reptype Tuint32_t // Type of repetition (0 to avoid compiler warning) 35900 var group_frame_type Tuint32_t // Specifies type for new group frames 35901 35902 var condition TBOOL // Used in conditional groups 35903 var cur_is_word TBOOL // Used in "word" tests 35904 var prev_is_word TBOOL // Used in "word" tests 35905 35906 // UTF and UCP flags 35907 35908 var utf TBOOL 35909 var ucp TBOOL 35910 var maxsize Tsize_t 35911 var newsize Tsize_t 35912 var new uintptr 35913 var cc Tuint32_t 35914 var dc Tuint32_t 35915 var cc1 Tuint32_t 35916 var ch Tuint32_t 35917 var ch1 Tuint32_t 35918 var ch2 Tuint32_t 35919 var othercase Tuint32_t 35920 var cc2 Tuint32_t 35921 var cc3 Tuint32_t 35922 var cc4 Tuint32_t 35923 var d Tuint32_t 35924 var d1 Tuint32_t 35925 var len int32 35926 var d2 Tuint32_t 35927 var d3 Tuint32_t 35928 var d4 Tuint32_t 35929 var len1 int32 35930 var d5 Tuint32_t 35931 var len2 int32 35932 var len3 int32 35933 var ok TBOOL 35934 var ok1 TBOOL 35935 var cp uintptr 35936 var prop uintptr 35937 var notmatch TBOOL 35938 var chartype int32 35939 var ok2 TBOOL 35940 var prop1 uintptr 35941 var category int32 35942 var category1 int32 35943 var cp1 uintptr 35944 var ok3 TBOOL 35945 var prop2 uintptr 35946 var notmatch1 TBOOL 35947 var cc5 Tuint32_t 35948 var cc6 Tuint32_t 35949 var cc7 Tuint32_t 35950 var cc8 Tuint32_t 35951 var cc9 Tuint32_t 35952 var chartype1 int32 35953 var ok4 TBOOL 35954 var prop3 uintptr 35955 var category2 int32 35956 var category3 int32 35957 var cp2 uintptr 35958 var ok5 TBOOL 35959 var prop4 uintptr 35960 var len4 int32 35961 var chartype2 int32 35962 var len5 int32 35963 var len6 int32 35964 var len7 int32 35965 var len8 int32 35966 var ok6 TBOOL 35967 var prop5 uintptr 35968 var len9 int32 35969 var category4 int32 35970 var len10 int32 35971 var len11 int32 35972 var category5 int32 35973 var len12 int32 35974 var cp3 uintptr 35975 var len13 int32 35976 var len14 int32 35977 var len15 int32 35978 var ok7 TBOOL 35979 var prop6 uintptr 35980 var len16 int32 35981 var notmatch2 TBOOL 35982 var lgb int32 35983 var rgb int32 35984 var fptr TPCRE2_SPTR8 35985 var len17 int32 35986 var gotspace TBOOL 35987 var len18 int32 35988 var gotspace1 TBOOL 35989 var len19 int32 35990 var len20 int32 35991 var len21 int32 35992 var len22 int32 35993 var len23 int32 35994 var len24 int32 35995 var len25 int32 35996 var count int32 35997 var slot TPCRE2_SPTR8 35998 // var slength Tsize_t at bp+8, 8 35999 36000 // var slength1 Tsize_t at bp+16, 8 36001 36002 // var slength2 Tsize_t at bp+24, 8 36003 36004 // var slength3 Tsize_t at bp+32, 8 36005 36006 var samelengths TBOOL 36007 var next_ecode TPCRE2_SPTR8 36008 var next_ecode1 TPCRE2_SPTR8 36009 var next_ecode2 TPCRE2_SPTR8 36010 var count1 int32 36011 var slot1 TPCRE2_SPTR8 36012 var count2 int32 36013 var slot2 TPCRE2_SPTR8 36014 var y Tuint32_t 36015 var cat int32 36016 var lastptr TPCRE2_SPTR8 36017 var cat1 int32 36018 var nextptr TPCRE2_SPTR8 36019 N = uintptr(0) 36020 P = uintptr(0) 36021 assert_accept_frame = uintptr(0) 36022 reptype = Tuint32_t(0) 36023 utf = libc.Bool32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_UTF != Tuint32_t(0)) 36024 ucp = libc.Bool32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_UCP != Tuint32_t(0)) 36025 36026 // This is the length of the last part of a backtracking frame that must be 36027 // copied when a new frame is created. 36028 36029 frame_copy_size = frame_size - Tsize_t(uintptr(0)+80) 36030 36031 // Set up the first current frame at the start of the vector, and initialize 36032 // fields that are not reset for new frames. 36033 36034 F = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames 36035 (*Theapframe)(unsafe.Pointer(F)).Frdepth = Tuint32_t(0) // "Recursion" depth 36036 (*Theapframe)(unsafe.Pointer(F)).Fcapture_last = Tuint32_t(0) // Number of most recent capture 36037 (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse = DRECURSE_UNSET // Not pattern recursing. 36038 (*Theapframe)(unsafe.Pointer(F)).Fstart_match = libc.AssignPtrUintptr(F+80, start_eptr) // Current data pointer and start match 36039 (*Theapframe)(unsafe.Pointer(F)).Fmark = uintptr(0) // Most recent mark 36040 (*Theapframe)(unsafe.Pointer(F)).Foffset_top = uint64(0) // End of captures within the frame 36041 (*Theapframe)(unsafe.Pointer(F)).Flast_group_offset = libc.CplUint64(uint64(0)) // Saved frame of most recent group 36042 group_frame_type = Tuint32_t(0) // Not a start of group frame 36043 goto NEW_FRAME // Start processing with this frame 36044 36045 // Come back here when we want to create a new frame for remembering a 36046 // backtracking point. 36047 36048 MATCH_RECURSE: 36049 36050 // Set up a new backtracking frame. If the vector is full, get a new one 36051 // on the heap, doubling the size, but constrained by the heap limit. 36052 36053 N = F + uintptr(frame_size) 36054 if !(N >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames_top) { 36055 goto __1 36056 } 36057 36058 newsize = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fframe_vector_size * uint64(2) 36059 36060 if !(newsize/uint64(1024) > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fheap_limit) { 36061 goto __2 36062 } 36063 36064 maxsize = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fheap_limit * uint64(1024) / frame_size * frame_size 36065 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fframe_vector_size >= maxsize) { 36066 goto __3 36067 } 36068 return -63 36069 __3: 36070 ; 36071 newsize = maxsize 36072 __2: 36073 ; 36074 36075 new = (*struct { 36076 f func(*libc.TLS, Tsize_t, uintptr) uintptr 36077 })(unsafe.Pointer(&struct{ uintptr }{(*Tmatch_block_8)(unsafe.Pointer(mb)).Fmemctl.Fmalloc})).f(tls, newsize, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmemctl.Fmemory_data) 36078 if !(new == uintptr(0)) { 36079 goto __4 36080 } 36081 return -48 36082 __4: 36083 ; 36084 libc.Xmemcpy(tls, new, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fframe_vector_size) 36085 36086 F = new + uintptr((int64(F)-int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames))/1) 36087 N = F + uintptr(frame_size) 36088 36089 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames != (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstack_frames) { 36090 goto __5 36091 } 36092 (*struct { 36093 f func(*libc.TLS, uintptr, uintptr) 36094 })(unsafe.Pointer(&struct{ uintptr }{(*Tmatch_block_8)(unsafe.Pointer(mb)).Fmemctl.Ffree})).f(tls, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmemctl.Fmemory_data) 36095 __5: 36096 ; 36097 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames = new 36098 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames_top = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames + uintptr(newsize) 36099 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fframe_vector_size = newsize 36100 __1: 36101 ; 36102 36103 // Copy those fields that must be copied into the new frame, increase the 36104 // "recursion" depth (i.e. the new frame's index) and then make the new frame 36105 // current. 36106 36107 libc.Xmemcpy(tls, N+uintptr(uint64(uintptr(0)+80)), 36108 F+uintptr(uint64(uintptr(0)+80)), 36109 frame_copy_size) 36110 36111 (*Theapframe)(unsafe.Pointer(N)).Frdepth = (*Theapframe)(unsafe.Pointer(F)).Frdepth + Tuint32_t(1) 36112 F = N 36113 36114 // Carry on processing with a new frame. 36115 36116 NEW_FRAME: 36117 (*Theapframe)(unsafe.Pointer(F)).Fgroup_frame_type = group_frame_type 36118 (*Theapframe)(unsafe.Pointer(F)).Fecode = start_ecode // Starting code pointer 36119 (*Theapframe)(unsafe.Pointer(F)).Fback_frame = frame_size // Default is go back one frame 36120 36121 // If this is a special type of group frame, remember its offset for quick 36122 // access at the end of the group. If this is a recursion, set a new current 36123 // recursion value. 36124 36125 if !(group_frame_type != Tuint32_t(0)) { 36126 goto __6 36127 } 36128 36129 (*Theapframe)(unsafe.Pointer(F)).Flast_group_offset = Tsize_t((int64(F) - int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames)) / 1) 36130 if !(group_frame_type&0xffff0000 == DGF_RECURSE) { 36131 goto __7 36132 } 36133 (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse = group_frame_type & 0x0000ffff 36134 __7: 36135 ; 36136 group_frame_type = Tuint32_t(0) 36137 __6: 36138 ; 36139 36140 // ========================================================================= 36141 // This is the main processing loop. First check that we haven't recorded too 36142 // many backtracks (search tree is too large), or that we haven't exceeded the 36143 // recursive depth limit (used too many backtracking frames). If not, process the 36144 // opcodes. 36145 36146 if !(libc.PostIncUint32(&(*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_call_count, 1) >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_limit) { 36147 goto __8 36148 } 36149 return -47 36150 __8: 36151 ; 36152 if !((*Theapframe)(unsafe.Pointer(F)).Frdepth >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_limit_depth) { 36153 goto __9 36154 } 36155 return -53 36156 __9: 36157 ; 36158 36159 __10: 36160 36161 (*Theapframe)(unsafe.Pointer(F)).Fop = *(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode)) // Cast needed for 16-bit and 32-bit modes 36162 switch int32((*Theapframe)(unsafe.Pointer(F)).Fop) { 36163 // ===================================================================== 36164 // Before OP_ACCEPT there may be any number of OP_CLOSE opcodes, to close 36165 // any currently open capturing brackets. Unlike reaching the end of a group, 36166 // where we know the starting frame is at the top of the chained frames, in 36167 // this case we have to search back for the relevant frame in case other types 36168 // of group that use chained frames have intervened. Multiple OP_CLOSEs always 36169 // come innermost first, which matches the chain order. We can ignore this in 36170 // a recursion, because captures are not passed out of recursions. 36171 36172 case OP_CLOSE: 36173 goto __14 36174 36175 // ===================================================================== 36176 // Real or forced end of the pattern, assertion, or recursion. In an 36177 // assertion ACCEPT, update the last used pointer and remember the current 36178 // frame so that the captures and mark can be fished out of it. 36179 36180 case OP_ASSERT_ACCEPT: 36181 goto __15 36182 36183 // If recursing, we have to find the most recent recursion. 36184 36185 case OP_ACCEPT: 36186 goto __16 36187 case OP_END: 36188 goto __17 // Note: NOT RRETURN 36189 36190 //===================================================================== 36191 // Match any single character type except newline; have to take care with 36192 // CRLF newlines and partial matching. 36193 36194 case OP_ANY: 36195 goto __18 36196 // Fall through 36197 36198 // Match any single character whatsoever. 36199 36200 case OP_ALLANY: 36201 goto __19 36202 36203 // ===================================================================== 36204 // Match a single code unit, even in UTF mode. This opcode really does 36205 // match any code unit, even newline. (It really should be called ANYCODEUNIT, 36206 // of course - the byte name is from pre-16 bit days.) 36207 36208 case OP_ANYBYTE: 36209 goto __20 36210 36211 // ===================================================================== 36212 // Match a single character, casefully 36213 36214 case OP_CHAR: 36215 goto __21 36216 36217 // ===================================================================== 36218 // Match a single character, caselessly. If we are at the end of the 36219 // subject, give up immediately. We get here only when the pattern character 36220 // has at most one other case. Characters with more than two cases are coded 36221 // as OP_PROP with the pseudo-property PT_CLIST. 36222 36223 case OP_CHARI: 36224 goto __22 36225 36226 // ===================================================================== 36227 // Match not a single character. 36228 36229 case OP_NOT: 36230 goto __23 36231 case OP_NOTI: 36232 goto __24 36233 36234 // ===================================================================== 36235 // Match a single character repeatedly. 36236 36237 case OP_EXACT: 36238 goto __25 36239 case OP_EXACTI: 36240 goto __26 36241 36242 case OP_POSUPTO: 36243 goto __27 36244 case OP_POSUPTOI: 36245 goto __28 36246 36247 case OP_UPTO: 36248 goto __29 36249 case OP_UPTOI: 36250 goto __30 36251 36252 case OP_MINUPTO: 36253 goto __31 36254 case OP_MINUPTOI: 36255 goto __32 36256 36257 case OP_POSSTAR: 36258 goto __33 36259 case OP_POSSTARI: 36260 goto __34 36261 36262 case OP_POSPLUS: 36263 goto __35 36264 case OP_POSPLUSI: 36265 goto __36 36266 36267 case OP_POSQUERY: 36268 goto __37 36269 case OP_POSQUERYI: 36270 goto __38 36271 36272 case OP_STAR: 36273 goto __39 36274 case OP_STARI: 36275 goto __40 36276 case OP_MINSTAR: 36277 goto __41 36278 case OP_MINSTARI: 36279 goto __42 36280 case OP_PLUS: 36281 goto __43 36282 case OP_PLUSI: 36283 goto __44 36284 case OP_MINPLUS: 36285 goto __45 36286 case OP_MINPLUSI: 36287 goto __46 36288 case OP_QUERY: 36289 goto __47 36290 case OP_QUERYI: 36291 goto __48 36292 case OP_MINQUERY: 36293 goto __49 36294 case OP_MINQUERYI: 36295 goto __50 36296 36297 // ===================================================================== 36298 // Match a negated single one-byte character repeatedly. This is almost a 36299 // repeat of the code for a repeated single character, but I haven't found a 36300 // nice way of commoning these up that doesn't require a test of the 36301 // positive/negative option for each character match. Maybe that wouldn't add 36302 // very much to the time taken, but character matching *is* what this is all 36303 // about... 36304 36305 case OP_NOTEXACT: 36306 goto __51 36307 case OP_NOTEXACTI: 36308 goto __52 36309 36310 case OP_NOTUPTO: 36311 goto __53 36312 case OP_NOTUPTOI: 36313 goto __54 36314 36315 case OP_NOTMINUPTO: 36316 goto __55 36317 case OP_NOTMINUPTOI: 36318 goto __56 36319 36320 case OP_NOTPOSSTAR: 36321 goto __57 36322 case OP_NOTPOSSTARI: 36323 goto __58 36324 36325 case OP_NOTPOSPLUS: 36326 goto __59 36327 case OP_NOTPOSPLUSI: 36328 goto __60 36329 36330 case OP_NOTPOSQUERY: 36331 goto __61 36332 case OP_NOTPOSQUERYI: 36333 goto __62 36334 36335 case OP_NOTPOSUPTO: 36336 goto __63 36337 case OP_NOTPOSUPTOI: 36338 goto __64 36339 36340 case OP_NOTSTAR: 36341 goto __65 36342 case OP_NOTSTARI: 36343 goto __66 36344 case OP_NOTMINSTAR: 36345 goto __67 36346 case OP_NOTMINSTARI: 36347 goto __68 36348 case OP_NOTPLUS: 36349 goto __69 36350 case OP_NOTPLUSI: 36351 goto __70 36352 case OP_NOTMINPLUS: 36353 goto __71 36354 case OP_NOTMINPLUSI: 36355 goto __72 36356 case OP_NOTQUERY: 36357 goto __73 36358 case OP_NOTQUERYI: 36359 goto __74 36360 case OP_NOTMINQUERY: 36361 goto __75 36362 case OP_NOTMINQUERYI: 36363 goto __76 36364 36365 // ===================================================================== 36366 // Match a bit-mapped character class, possibly repeatedly. These opcodes 36367 // are used when all the characters in the class have values in the range 36368 // 0-255, and either the matching is caseful, or the characters are in the 36369 // range 0-127 when UTF processing is enabled. The only difference between 36370 // OP_CLASS and OP_NCLASS occurs when a data character outside the range is 36371 // encountered. 36372 36373 case OP_NCLASS: 36374 goto __77 36375 case OP_CLASS: 36376 goto __78 36377 // Control never gets here 36378 36379 // ===================================================================== 36380 // Match an extended character class. In the 8-bit library, this opcode is 36381 // encountered only when UTF-8 mode mode is supported. In the 16-bit and 36382 // 32-bit libraries, codepoints greater than 255 may be encountered even when 36383 // UTF is not supported. 36384 36385 case OP_XCLASS: 36386 goto __79 36387 36388 // ===================================================================== 36389 // Match various character types when PCRE2_UCP is not set. These opcodes 36390 // are not generated when PCRE2_UCP is set - instead appropriate property 36391 // tests are compiled. 36392 36393 case OP_NOT_DIGIT: 36394 goto __80 36395 36396 case OP_DIGIT: 36397 goto __81 36398 36399 case OP_NOT_WHITESPACE: 36400 goto __82 36401 36402 case OP_WHITESPACE: 36403 goto __83 36404 36405 case OP_NOT_WORDCHAR: 36406 goto __84 36407 36408 case OP_WORDCHAR: 36409 goto __85 36410 36411 case OP_ANYNL: 36412 goto __86 36413 36414 case OP_NOT_HSPACE: 36415 goto __87 36416 36417 case OP_HSPACE: 36418 goto __88 36419 36420 case OP_NOT_VSPACE: 36421 goto __89 36422 36423 case OP_VSPACE: 36424 goto __90 36425 36426 // ===================================================================== 36427 // Check the next character by Unicode property. We will get here only 36428 // if the support is in the binary; otherwise a compile-time error occurs. 36429 36430 case OP_PROP: 36431 goto __91 36432 case OP_NOTPROP: 36433 goto __92 36434 36435 // ===================================================================== 36436 // Match an extended Unicode sequence. We will get here only if the support 36437 // is in the binary; otherwise a compile-time error occurs. 36438 36439 case OP_EXTUNI: 36440 goto __93 36441 36442 // ===================================================================== 36443 // Match a single character type repeatedly. Note that the property type 36444 // does not need to be in a stack frame as it is not used within an RMATCH() 36445 // loop. 36446 36447 case OP_TYPEEXACT: 36448 goto __94 36449 36450 case OP_TYPEUPTO: 36451 goto __95 36452 case OP_TYPEMINUPTO: 36453 goto __96 36454 36455 case OP_TYPEPOSSTAR: 36456 goto __97 36457 36458 case OP_TYPEPOSPLUS: 36459 goto __98 36460 36461 case OP_TYPEPOSQUERY: 36462 goto __99 36463 36464 case OP_TYPEPOSUPTO: 36465 goto __100 36466 36467 case OP_TYPESTAR: 36468 goto __101 36469 case OP_TYPEMINSTAR: 36470 goto __102 36471 case OP_TYPEPLUS: 36472 goto __103 36473 case OP_TYPEMINPLUS: 36474 goto __104 36475 case OP_TYPEQUERY: 36476 goto __105 36477 case OP_TYPEMINQUERY: 36478 goto __106 // End of repeat character type processing 36479 36480 // ===================================================================== 36481 // Match a back reference, possibly repeatedly. Look past the end of the 36482 // item to see if there is repeat information following. The OP_REF and 36483 // OP_REFI opcodes are used for a reference to a numbered group or to a 36484 // non-duplicated named group. For a duplicated named group, OP_DNREF and 36485 // OP_DNREFI are used. In this case we must scan the list of groups to which 36486 // the name refers, and use the first one that is set. 36487 36488 case OP_DNREF: 36489 goto __107 36490 case OP_DNREFI: 36491 goto __108 36492 36493 case OP_REF: 36494 goto __109 36495 case OP_REFI: 36496 goto __110 36497 // Control never gets here 36498 36499 // ========================================================================= 36500 // Opcodes for the start of various parenthesized items 36501 // ========================================================================= 36502 36503 // In all cases, if the result of RMATCH() is MATCH_THEN, check whether the 36504 // (*THEN) is within the current branch by comparing the address of OP_THEN 36505 // that is passed back with the end of the branch. If (*THEN) is within the 36506 // current branch, and the branch is one of two or more alternatives (it 36507 // either starts or ends with OP_ALT), we have reached the limit of THEN's 36508 // action, so convert the return code to NOMATCH, which will cause normal 36509 // backtracking to happen from now on. Otherwise, THEN is passed back to an 36510 // outer alternative. This implements Perl's treatment of parenthesized 36511 // groups, where a group not containing | does not affect the current 36512 // alternative, that is, (X) is NOT the same as (X|(*F)). 36513 36514 // ===================================================================== 36515 // BRAZERO, BRAMINZERO and SKIPZERO occur just before a non-possessive 36516 // bracket group, indicating that it may occur zero times. It may repeat 36517 // infinitely, or not at all - i.e. it could be ()* or ()? or even (){0} in 36518 // the pattern. Brackets with fixed upper repeat limits are compiled as a 36519 // number of copies, with the optional ones preceded by BRAZERO or BRAMINZERO. 36520 // Possessive groups with possible zero repeats are preceded by BRAPOSZERO. 36521 36522 case OP_BRAZERO: 36523 goto __111 36524 36525 case OP_BRAMINZERO: 36526 goto __112 36527 36528 case OP_SKIPZERO: 36529 goto __113 36530 36531 // ===================================================================== 36532 // Handle possessive brackets with an unlimited repeat. The end of these 36533 // brackets will always be OP_KETRPOS, which returns MATCH_KETRPOS without 36534 // going further in the pattern. 36535 36536 case OP_BRAPOSZERO: 36537 goto __114 36538 36539 case OP_BRAPOS: 36540 goto __115 36541 case OP_SBRAPOS: 36542 goto __116 36543 36544 case OP_CBRAPOS: 36545 goto __117 36546 case OP_SCBRAPOS: 36547 goto __118 36548 36549 // ===================================================================== 36550 // Handle non-capturing brackets that cannot match an empty string. When we 36551 // get to the final alternative within the brackets, as long as there are no 36552 // THEN's in the pattern, we can optimize by not recording a new backtracking 36553 // point. (Ideally we should test for a THEN within this group, but we don't 36554 // have that information.) Don't do this if we are at the very top level, 36555 // however, because that would make handling assertions and once-only brackets 36556 // messier when there is nothing to go back to. 36557 36558 case OP_BRA: 36559 goto __119 36560 36561 // ===================================================================== 36562 // Handle a capturing bracket, other than those that are possessive with an 36563 // unlimited repeat. 36564 36565 case OP_CBRA: 36566 goto __120 36567 case OP_SCBRA: 36568 goto __121 36569 36570 // ===================================================================== 36571 // Atomic groups and non-capturing brackets that can match an empty string 36572 // must record a backtracking point and also set up a chained frame. 36573 36574 case OP_ONCE: 36575 goto __122 36576 case OP_SCRIPT_RUN: 36577 goto __123 36578 case OP_SBRA: 36579 goto __124 36580 // Control never reaches here. 36581 36582 // ===================================================================== 36583 // Recursion either matches the current regex, or some subexpression. The 36584 // offset data is the offset to the starting bracket from the start of the 36585 // whole pattern. (This is so that it works from duplicated subpatterns.) 36586 36587 case OP_RECURSE: 36588 goto __125 36589 // Control never reaches here. 36590 36591 // ===================================================================== 36592 // Positive assertions are like other groups except that PCRE doesn't allow 36593 // the effect of (*THEN) to escape beyond an assertion; it is therefore 36594 // treated as NOMATCH. (*ACCEPT) is treated as successful assertion, with its 36595 // captures and mark retained. Any other return is an error. 36596 36597 case OP_ASSERT: 36598 goto __126 36599 case OP_ASSERTBACK: 36600 goto __127 36601 case OP_ASSERT_NA: 36602 goto __128 36603 case OP_ASSERTBACK_NA: 36604 goto __129 36605 36606 // ===================================================================== 36607 // Handle negative assertions. Loop for each non-matching branch as for 36608 // positive assertions. 36609 36610 case OP_ASSERT_NOT: 36611 goto __130 36612 case OP_ASSERTBACK_NOT: 36613 goto __131 36614 36615 // ===================================================================== 36616 // The callout item calls an external function, if one is provided, passing 36617 // details of the match so far. This is mainly for debugging, though the 36618 // function is able to force a failure. 36619 36620 case OP_CALLOUT: 36621 goto __132 36622 case OP_CALLOUT_STR: 36623 goto __133 36624 36625 // ===================================================================== 36626 // Conditional group: compilation checked that there are no more than two 36627 // branches. If the condition is false, skipping the first branch takes us 36628 // past the end of the item if there is only one branch, but that's exactly 36629 // what we want. 36630 36631 case OP_COND: 36632 goto __134 36633 case OP_SCOND: 36634 goto __135 36635 36636 // ========================================================================= 36637 // End of start of parenthesis opcodes 36638 // ========================================================================= 36639 36640 // ===================================================================== 36641 // Move the subject pointer back. This occurs only at the start of each 36642 // branch of a lookbehind assertion. If we are too close to the start to move 36643 // back, fail. When working with UTF-8 we move back a number of characters, 36644 // not bytes. 36645 36646 case OP_REVERSE: 36647 goto __136 36648 36649 // ===================================================================== 36650 // An alternation is the end of a branch; scan along to find the end of the 36651 // bracketed group. 36652 36653 case OP_ALT: 36654 goto __137 36655 36656 // ===================================================================== 36657 // The end of a parenthesized group. For all but OP_BRA and OP_COND, the 36658 // starting frame was added to the chained frames in order to remember the 36659 // starting subject position for the group. 36660 36661 case OP_KET: 36662 goto __138 36663 case OP_KETRMIN: 36664 goto __139 36665 case OP_KETRMAX: 36666 goto __140 36667 case OP_KETRPOS: 36668 goto __141 36669 36670 // ===================================================================== 36671 // Start and end of line assertions, not multiline mode. 36672 36673 case OP_CIRC: 36674 goto __142 36675 36676 case OP_SOD: 36677 goto __143 36678 36679 // When PCRE2_NOTEOL is unset, assert before the subject end, or a 36680 // terminating newline unless PCRE2_DOLLAR_ENDONLY is set. 36681 36682 case OP_DOLL: 36683 goto __144 36684 36685 // Fall through 36686 // Unconditional end of subject assertion (\z) 36687 36688 case OP_EOD: 36689 goto __145 36690 36691 // End of subject or ending \n assertion (\Z) 36692 36693 case OP_EODN: 36694 goto __146 36695 36696 // ===================================================================== 36697 // Start and end of line assertions, multiline mode. 36698 36699 // Start of subject unless notbol, or after any newline except for one at 36700 // the very end, unless PCRE2_ALT_CIRCUMFLEX is set. 36701 36702 case OP_CIRCM: 36703 goto __147 36704 36705 // Assert before any newline, or before end of subject unless noteol is 36706 // set. 36707 36708 case OP_DOLLM: 36709 goto __148 36710 36711 // ===================================================================== 36712 // Start of match assertion 36713 36714 case OP_SOM: 36715 goto __149 36716 36717 // ===================================================================== 36718 // Reset the start of match point 36719 36720 case OP_SET_SOM: 36721 goto __150 36722 36723 // ===================================================================== 36724 // Word boundary assertions. Find out if the previous and current 36725 // characters are "word" characters. It takes a bit more work in UTF mode. 36726 // Characters > 255 are assumed to be "non-word" characters when PCRE2_UCP is 36727 // not set. When it is set, use Unicode properties if available, even when not 36728 // in UTF mode. Remember the earliest and latest consulted characters. 36729 36730 case OP_NOT_WORD_BOUNDARY: 36731 goto __151 36732 case OP_WORD_BOUNDARY: 36733 goto __152 36734 36735 // ===================================================================== 36736 // Backtracking (*VERB)s, with and without arguments. Note that if the 36737 // pattern is successfully matched, we do not come back from RMATCH. 36738 36739 case OP_MARK: 36740 goto __153 36741 36742 case OP_FAIL: 36743 goto __154 36744 36745 // Record the current recursing group number in mb->verb_current_recurse 36746 // when a backtracking return such as MATCH_COMMIT is given. This enables the 36747 // recurse processing to catch verbs from within the recursion. 36748 36749 case OP_COMMIT: 36750 goto __155 36751 36752 case OP_COMMIT_ARG: 36753 goto __156 36754 36755 case OP_PRUNE: 36756 goto __157 36757 36758 case OP_PRUNE_ARG: 36759 goto __158 36760 36761 case OP_SKIP: 36762 goto __159 36763 36764 // Note that, for Perl compatibility, SKIP with an argument does NOT set 36765 // nomatch_mark. When a pattern match ends with a SKIP_ARG for which there was 36766 // not a matching mark, we have to re-run the match, ignoring the SKIP_ARG 36767 // that failed and any that precede it (either they also failed, or were not 36768 // triggered). To do this, we maintain a count of executed SKIP_ARGs. If a 36769 // SKIP_ARG gets to top level, the match is re-run with mb->ignore_skip_arg 36770 // set to the count of the one that failed. 36771 36772 case OP_SKIP_ARG: 36773 goto __160 36774 36775 // For THEN (and THEN_ARG) we pass back the address of the opcode, so that 36776 // the branch in which it occurs can be determined. 36777 36778 case OP_THEN: 36779 goto __161 36780 36781 case OP_THEN_ARG: 36782 goto __162 36783 36784 // ===================================================================== 36785 // There's been some horrible disaster. Arrival here can only mean there is 36786 // something seriously wrong in the code above or the OP_xxx definitions. 36787 36788 default: 36789 goto __163 36790 } 36791 goto __13 36792 36793 // ===================================================================== 36794 // Before OP_ACCEPT there may be any number of OP_CLOSE opcodes, to close 36795 // any currently open capturing brackets. Unlike reaching the end of a group, 36796 // where we know the starting frame is at the top of the chained frames, in 36797 // this case we have to search back for the relevant frame in case other types 36798 // of group that use chained frames have intervened. Multiple OP_CLOSEs always 36799 // come innermost first, which matches the chain order. We can ignore this in 36800 // a recursion, because captures are not passed out of recursions. 36801 36802 __14: 36803 if !((*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse == DRECURSE_UNSET) { 36804 goto __164 36805 } 36806 36807 number = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))) 36808 offset = (*Theapframe)(unsafe.Pointer(F)).Flast_group_offset 36809 __165: 36810 36811 if !(offset == libc.CplUint64(uint64(0))) { 36812 goto __168 36813 } 36814 return -44 36815 __168: 36816 ; 36817 N = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames + uintptr(offset) 36818 P = N - uintptr(frame_size) 36819 if !((*Theapframe)(unsafe.Pointer(N)).Fgroup_frame_type == DGF_CAPTURE|number) { 36820 goto __169 36821 } 36822 goto __167 36823 __169: 36824 ; 36825 offset = (*Theapframe)(unsafe.Pointer(P)).Flast_group_offset 36826 goto __166 36827 __166: 36828 goto __165 36829 goto __167 36830 __167: 36831 ; 36832 offset = Tsize_t(number<<1 - Tuint32_t(2)) 36833 (*Theapframe)(unsafe.Pointer(F)).Fcapture_last = number 36834 *(*Tsize_t)(unsafe.Pointer(F + 128 + uintptr(offset)*8)) = Tsize_t((int64((*Theapframe)(unsafe.Pointer(P)).Feptr) - int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject)) / 1) 36835 *(*Tsize_t)(unsafe.Pointer(F + 128 + uintptr(offset+uint64(1))*8)) = Tsize_t((int64((*Theapframe)(unsafe.Pointer(F)).Feptr) - int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject)) / 1) 36836 if !(offset >= (*Theapframe)(unsafe.Pointer(F)).Foffset_top) { 36837 goto __170 36838 } 36839 (*Theapframe)(unsafe.Pointer(F)).Foffset_top = offset + uint64(2) 36840 __170: 36841 ; 36842 __164: 36843 ; 36844 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 36845 goto __13 36846 36847 // ===================================================================== 36848 // Real or forced end of the pattern, assertion, or recursion. In an 36849 // assertion ACCEPT, update the last used pointer and remember the current 36850 // frame so that the captures and mark can be fished out of it. 36851 36852 __15: 36853 if !((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr) { 36854 goto __171 36855 } 36856 (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr = (*Theapframe)(unsafe.Pointer(F)).Feptr 36857 __171: 36858 ; 36859 assert_accept_frame = F 36860 rrc = -999 36861 goto RETURN_SWITCH 36862 36863 // If recursing, we have to find the most recent recursion. 36864 36865 __16: 36866 __17: 36867 36868 // Handle end of a recursion. 36869 36870 if !((*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse != DRECURSE_UNSET) { 36871 goto __172 36872 } 36873 36874 offset = (*Theapframe)(unsafe.Pointer(F)).Flast_group_offset 36875 __173: 36876 36877 if !(offset == libc.CplUint64(uint64(0))) { 36878 goto __176 36879 } 36880 return -44 36881 __176: 36882 ; 36883 N = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames + uintptr(offset) 36884 P = N - uintptr(frame_size) 36885 if !((*Theapframe)(unsafe.Pointer(N)).Fgroup_frame_type&0xffff0000 == DGF_RECURSE) { 36886 goto __177 36887 } 36888 goto __175 36889 __177: 36890 ; 36891 offset = (*Theapframe)(unsafe.Pointer(P)).Flast_group_offset 36892 goto __174 36893 __174: 36894 goto __173 36895 goto __175 36896 __175: 36897 ; 36898 36899 // N is now the frame of the recursion; the previous frame is at the 36900 // OP_RECURSE position. Go back there, copying the current subject position 36901 // and mark, and the start_match position (\K might have changed it), and 36902 // then move on past the OP_RECURSE. 36903 36904 (*Theapframe)(unsafe.Pointer(P)).Feptr = (*Theapframe)(unsafe.Pointer(F)).Feptr 36905 (*Theapframe)(unsafe.Pointer(P)).Fmark = (*Theapframe)(unsafe.Pointer(F)).Fmark 36906 (*Theapframe)(unsafe.Pointer(P)).Fstart_match = (*Theapframe)(unsafe.Pointer(F)).Fstart_match 36907 F = P 36908 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DLINK_SIZE) 36909 goto __11 36910 __172: 36911 ; 36912 36913 // Not a recursion. Fail for an empty string match if either PCRE2_NOTEMPTY 36914 // is set, or if PCRE2_NOTEMPTY_ATSTART is set and we have matched at the 36915 // start of the subject. In both cases, backtracking will then try other 36916 // alternatives, if any. 36917 36918 if !((*Theapframe)(unsafe.Pointer(F)).Feptr == (*Theapframe)(unsafe.Pointer(F)).Fstart_match && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_NOTEMPTY != Tuint32_t(0) || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_NOTEMPTY_ATSTART != Tuint32_t(0) && (*Theapframe)(unsafe.Pointer(F)).Fstart_match == (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject+uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_offset))) { 36919 goto __178 36920 } 36921 rrc = DMATCH_NOMATCH 36922 goto RETURN_SWITCH 36923 __178: 36924 ; 36925 36926 // Also fail if PCRE2_ENDANCHORED is set and the end of the match is not 36927 // the end of the subject. After (*ACCEPT) we fail the entire match (at this 36928 // position) but backtrack on reaching the end of the pattern. 36929 36930 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fmoptions|(*Tmatch_block_8)(unsafe.Pointer(mb)).Fpoptions)&DPCRE2_ENDANCHORED != Tuint32_t(0)) { 36931 goto __179 36932 } 36933 36934 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_END) { 36935 goto __180 36936 } 36937 rrc = DMATCH_NOMATCH 36938 goto RETURN_SWITCH 36939 __180: 36940 ; 36941 36942 return DMATCH_NOMATCH 36943 __179: 36944 ; 36945 36946 // We have a successful match of the whole pattern. Record the result and 36947 // then do a direct return from the function. If there is space in the offset 36948 // vector, set any pairs that follow the highest-numbered captured string but 36949 // are less than the number of capturing groups in the pattern to PCRE2_UNSET. 36950 // It is documented that this happens. "Gaps" are set to PCRE2_UNSET 36951 // dynamically. It is only those at the end that need setting here. 36952 36953 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_match_ptr = (*Theapframe)(unsafe.Pointer(F)).Feptr // Record where we ended 36954 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_offset_top = (*Theapframe)(unsafe.Pointer(F)).Foffset_top // and how many extracts were taken 36955 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmark = (*Theapframe)(unsafe.Pointer(F)).Fmark // and the last success mark 36956 if !((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr) { 36957 goto __181 36958 } 36959 (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr = (*Theapframe)(unsafe.Pointer(F)).Feptr 36960 __181: 36961 ; 36962 36963 *(*Tsize_t)(unsafe.Pointer(ovector)) = Tsize_t((int64((*Theapframe)(unsafe.Pointer(F)).Fstart_match) - int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject)) / 1) 36964 *(*Tsize_t)(unsafe.Pointer(ovector + 1*8)) = Tsize_t((int64((*Theapframe)(unsafe.Pointer(F)).Feptr) - int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject)) / 1) 36965 36966 // Set i to the smaller of the sizes of the external and frame ovectors. 36967 36968 i = Tuint32_t(2 * func() int32 { 36969 if int32(top_bracket)+1 > int32(oveccount) { 36970 return int32(oveccount) 36971 } 36972 return int32(top_bracket) + 1 36973 }()) 36974 libc.Xmemcpy(tls, ovector+uintptr(2)*8, F+128, uint64(i-Tuint32_t(2))*uint64(unsafe.Sizeof(Tsize_t(0)))) 36975 __182: 36976 if !(Tsize_t(libc.PreDecUint32(&i, 1)) >= (*Theapframe)(unsafe.Pointer(F)).Foffset_top+uint64(2)) { 36977 goto __183 36978 } 36979 *(*Tsize_t)(unsafe.Pointer(ovector + uintptr(i)*8)) = libc.CplUint64(uint64(0)) 36980 goto __182 36981 __183: 36982 ; 36983 return DMATCH_MATCH // Note: NOT RRETURN 36984 36985 //===================================================================== 36986 // Match any single character type except newline; have to take care with 36987 // CRLF newlines and partial matching. 36988 36989 __18: 36990 if !(func() int32 { 36991 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 36992 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, (*Theapframe)(unsafe.Pointer(F)).Feptr, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+256, utf) != 0) 36993 } 36994 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260))) && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260 + 1))))) 36995 }() != 0) { 36996 goto __184 36997 } 36998 rrc = DMATCH_NOMATCH 36999 goto RETURN_SWITCH 37000 __184: 37001 ; 37002 37003 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && (*Theapframe)(unsafe.Pointer(F)).Feptr == (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr(1) && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_FIXED) && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260)))) { 37004 goto __185 37005 } 37006 37007 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 37008 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 37009 goto __186 37010 } 37011 return -2 37012 __186: 37013 ; 37014 __185: 37015 ; 37016 // Fall through 37017 37018 // Match any single character whatsoever. 37019 37020 __19: 37021 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 37022 goto __187 37023 } /* DO NOT merge the Feptr++ here; it must */ 37024 // not be updated before SCHECK_PARTIAL. 37025 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 37026 goto __188 37027 } 37028 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 37029 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 37030 goto __189 37031 } 37032 return -2 37033 __189: 37034 ; 37035 __188: 37036 ; 37037 37038 rrc = DMATCH_NOMATCH 37039 goto RETURN_SWITCH 37040 37041 __187: 37042 ; 37043 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 37044 if !(utf != 0) { 37045 goto __190 37046 } 37047 __191: 37048 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 37049 goto __192 37050 } 37051 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 37052 goto __191 37053 __192: 37054 ; 37055 __190: 37056 ; 37057 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 37058 goto __13 37059 37060 // ===================================================================== 37061 // Match a single code unit, even in UTF mode. This opcode really does 37062 // match any code unit, even newline. (It really should be called ANYCODEUNIT, 37063 // of course - the byte name is from pre-16 bit days.) 37064 37065 __20: 37066 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 37067 goto __193 37068 } /* DO NOT merge the Feptr++ here; it must */ 37069 // not be updated before SCHECK_PARTIAL. 37070 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 37071 goto __194 37072 } 37073 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 37074 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 37075 goto __195 37076 } 37077 return -2 37078 __195: 37079 ; 37080 __194: 37081 ; 37082 37083 rrc = DMATCH_NOMATCH 37084 goto RETURN_SWITCH 37085 37086 __193: 37087 ; 37088 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 37089 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 37090 goto __13 37091 37092 // ===================================================================== 37093 // Match a single character, casefully 37094 37095 __21: 37096 if !(utf != 0) { 37097 goto __196 37098 } 37099 37100 (*Theapframe)(unsafe.Pointer(F)).Flength = uint64(1) 37101 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 37102 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) 37103 if !(fc >= 0xc0) { 37104 goto __198 37105 } 37106 if !(fc&0x20 == Tuint32_t(0)) { 37107 goto __199 37108 } 37109 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f 37110 (*Theapframe)(unsafe.Pointer(F)).Flength++ 37111 goto __200 37112 __199: 37113 if !(fc&0x10 == Tuint32_t(0)) { 37114 goto __201 37115 } 37116 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f 37117 *(*Tsize_t)(unsafe.Pointer(F + 24)) += uint64(2) 37118 goto __202 37119 __201: 37120 if !(fc&0x08 == Tuint32_t(0)) { 37121 goto __203 37122 } 37123 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))&0x3f 37124 *(*Tsize_t)(unsafe.Pointer(F + 24)) += uint64(3) 37125 goto __204 37126 __203: 37127 if !(fc&0x04 == Tuint32_t(0)) { 37128 goto __205 37129 } 37130 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 4)))&0x3f 37131 *(*Tsize_t)(unsafe.Pointer(F + 24)) += uint64(4) 37132 goto __206 37133 __205: 37134 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 5)))&0x3f 37135 *(*Tsize_t)(unsafe.Pointer(F + 24)) += uint64(5) 37136 __206: 37137 ; 37138 __204: 37139 ; 37140 __202: 37141 ; 37142 __200: 37143 ; 37144 __198: 37145 ; 37146 37147 if !((*Theapframe)(unsafe.Pointer(F)).Flength > Tsize_t((int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject)-int64((*Theapframe)(unsafe.Pointer(F)).Feptr))/1)) { 37148 goto __207 37149 } 37150 37151 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 37152 goto __208 37153 } 37154 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 37155 goto __209 37156 } 37157 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 37158 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 37159 goto __210 37160 } 37161 return -2 37162 __210: 37163 ; 37164 __209: 37165 ; 37166 __208: 37167 ; 37168 /* Not SCHECK_PARTIAL() */ 37169 rrc = DMATCH_NOMATCH 37170 goto RETURN_SWITCH 37171 37172 __207: 37173 ; 37174 __211: 37175 if !((*Theapframe)(unsafe.Pointer(F)).Flength > uint64(0)) { 37176 goto __213 37177 } 37178 37179 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) != int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))) { 37180 goto __214 37181 } 37182 rrc = DMATCH_NOMATCH 37183 goto RETURN_SWITCH 37184 __214: 37185 ; 37186 37187 goto __212 37188 __212: 37189 (*Theapframe)(unsafe.Pointer(F)).Flength-- 37190 goto __211 37191 goto __213 37192 __213: 37193 ; 37194 goto __197 37195 __196: 37196 37197 /* Not UTF mode */ 37198 37199 if !((int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject)-int64((*Theapframe)(unsafe.Pointer(F)).Feptr))/1 < int64(1)) { 37200 goto __215 37201 } 37202 37203 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 37204 goto __216 37205 } 37206 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 37207 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 37208 goto __217 37209 } 37210 return -2 37211 __217: 37212 ; 37213 __216: 37214 ; 37215 /* This one can use SCHECK_PARTIAL() */ 37216 rrc = DMATCH_NOMATCH 37217 goto RETURN_SWITCH 37218 37219 __215: 37220 ; 37221 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1))) != int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))) { 37222 goto __218 37223 } 37224 rrc = DMATCH_NOMATCH 37225 goto RETURN_SWITCH 37226 __218: 37227 ; 37228 37229 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(2) 37230 __197: 37231 ; 37232 goto __13 37233 37234 // ===================================================================== 37235 // Match a single character, caselessly. If we are at the end of the 37236 // subject, give up immediately. We get here only when the pattern character 37237 // has at most one other case. Characters with more than two cases are coded 37238 // as OP_PROP with the pseudo-property PT_CLIST. 37239 37240 __22: 37241 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 37242 goto __219 37243 } 37244 37245 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 37246 goto __220 37247 } 37248 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 37249 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 37250 goto __221 37251 } 37252 return -2 37253 __221: 37254 ; 37255 __220: 37256 ; 37257 37258 rrc = DMATCH_NOMATCH 37259 goto RETURN_SWITCH 37260 37261 __219: 37262 ; 37263 37264 if !(utf != 0) { 37265 goto __222 37266 } 37267 37268 (*Theapframe)(unsafe.Pointer(F)).Flength = uint64(1) 37269 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 37270 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) 37271 if !(fc >= 0xc0) { 37272 goto __224 37273 } 37274 if !(fc&0x20 == Tuint32_t(0)) { 37275 goto __225 37276 } 37277 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f 37278 (*Theapframe)(unsafe.Pointer(F)).Flength++ 37279 goto __226 37280 __225: 37281 if !(fc&0x10 == Tuint32_t(0)) { 37282 goto __227 37283 } 37284 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f 37285 *(*Tsize_t)(unsafe.Pointer(F + 24)) += uint64(2) 37286 goto __228 37287 __227: 37288 if !(fc&0x08 == Tuint32_t(0)) { 37289 goto __229 37290 } 37291 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))&0x3f 37292 *(*Tsize_t)(unsafe.Pointer(F + 24)) += uint64(3) 37293 goto __230 37294 __229: 37295 if !(fc&0x04 == Tuint32_t(0)) { 37296 goto __231 37297 } 37298 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 4)))&0x3f 37299 *(*Tsize_t)(unsafe.Pointer(F + 24)) += uint64(4) 37300 goto __232 37301 __231: 37302 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 5)))&0x3f 37303 *(*Tsize_t)(unsafe.Pointer(F + 24)) += uint64(5) 37304 __232: 37305 ; 37306 __230: 37307 ; 37308 __228: 37309 ; 37310 __226: 37311 ; 37312 __224: 37313 ; 37314 37315 // If the pattern character's value is < 128, we know that its other case 37316 // (if any) is also < 128 (and therefore only one code unit long in all 37317 // code-unit widths), so we can use the fast lookup table. We checked above 37318 // that there is at least one character left in the subject. 37319 37320 if !(fc < Tuint32_t(128)) { 37321 goto __233 37322 } 37323 37324 cc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 37325 if !(int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Flcc + uintptr(fc)))) != int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Flcc + uintptr(cc))))) { 37326 goto __235 37327 } 37328 rrc = DMATCH_NOMATCH 37329 goto RETURN_SWITCH 37330 __235: 37331 ; 37332 37333 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 37334 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 37335 goto __234 37336 __233: 37337 37338 dc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 37339 if !(dc >= 0xc0) { 37340 goto __236 37341 } 37342 if !(dc&0x20 == Tuint32_t(0)) { 37343 goto __237 37344 } 37345 dc = dc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 37346 goto __238 37347 __237: 37348 if !(dc&0x10 == Tuint32_t(0)) { 37349 goto __239 37350 } 37351 dc = dc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 37352 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 37353 goto __240 37354 __239: 37355 if !(dc&0x08 == Tuint32_t(0)) { 37356 goto __241 37357 } 37358 dc = dc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 37359 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 37360 goto __242 37361 __241: 37362 if !(dc&0x04 == Tuint32_t(0)) { 37363 goto __243 37364 } 37365 dc = dc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 37366 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 37367 goto __244 37368 __243: 37369 dc = dc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 37370 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 37371 __244: 37372 ; 37373 __242: 37374 ; 37375 __240: 37376 ; 37377 __238: 37378 ; 37379 __236: 37380 ; 37381 37382 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8((*Theapframe)(unsafe.Pointer(F)).Flength) 37383 if !(dc != fc && dc != Tuint32_t(int32(fc)+(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fother_case)) { 37384 goto __245 37385 } 37386 rrc = DMATCH_NOMATCH 37387 goto RETURN_SWITCH 37388 __245: 37389 ; 37390 37391 __234: 37392 ; 37393 goto __223 37394 __222: 37395 if !(ucp != 0) { 37396 goto __246 37397 } 37398 37399 cc1 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 37400 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1))) 37401 if !(fc < Tuint32_t(128)) { 37402 goto __248 37403 } 37404 37405 if !(int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Flcc + uintptr(fc)))) != int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Flcc + uintptr(cc1))))) { 37406 goto __250 37407 } 37408 rrc = DMATCH_NOMATCH 37409 goto RETURN_SWITCH 37410 __250: 37411 ; 37412 37413 goto __249 37414 __248: 37415 37416 if !(cc1 != fc && cc1 != Tuint32_t(int32(fc)+(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fother_case)) { 37417 goto __251 37418 } 37419 rrc = DMATCH_NOMATCH 37420 goto RETURN_SWITCH 37421 __251: 37422 ; 37423 37424 __249: 37425 ; 37426 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 37427 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(2) 37428 goto __247 37429 __246: 37430 37431 /* Not UTF or UCP mode; use the table for characters < 256. */ 37432 37433 if !(int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Flcc + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))))) != 37434 int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Flcc + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))))))) { 37435 goto __252 37436 } 37437 rrc = DMATCH_NOMATCH 37438 goto RETURN_SWITCH 37439 __252: 37440 ; 37441 37442 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 37443 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(2) 37444 __247: 37445 ; 37446 __223: 37447 ; 37448 goto __13 37449 37450 // ===================================================================== 37451 // Match not a single character. 37452 37453 __23: 37454 __24: 37455 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 37456 goto __253 37457 } 37458 37459 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 37460 goto __254 37461 } 37462 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 37463 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 37464 goto __255 37465 } 37466 return -2 37467 __255: 37468 ; 37469 __254: 37470 ; 37471 37472 rrc = DMATCH_NOMATCH 37473 goto RETURN_SWITCH 37474 37475 __253: 37476 ; 37477 37478 if !(utf != 0) { 37479 goto __256 37480 } 37481 37482 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 37483 ch = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) 37484 if !(ch >= 0xc0) { 37485 goto __258 37486 } 37487 if !(ch&0x20 == Tuint32_t(0)) { 37488 goto __259 37489 } 37490 ch = ch&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1))))&0x3f 37491 goto __260 37492 __259: 37493 if !(ch&0x10 == Tuint32_t(0)) { 37494 goto __261 37495 } 37496 ch = ch&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f 37497 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(2) 37498 goto __262 37499 __261: 37500 if !(ch&0x08 == Tuint32_t(0)) { 37501 goto __263 37502 } 37503 ch = ch&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f 37504 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(3) 37505 goto __264 37506 __263: 37507 if !(ch&0x04 == Tuint32_t(0)) { 37508 goto __265 37509 } 37510 ch = ch&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))&0x3f 37511 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(4) 37512 goto __266 37513 __265: 37514 ch = ch&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 4)))&0x3f 37515 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(5) 37516 __266: 37517 ; 37518 __264: 37519 ; 37520 __262: 37521 ; 37522 __260: 37523 ; 37524 __258: 37525 ; 37526 37527 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 37528 if !(fc >= 0xc0) { 37529 goto __267 37530 } 37531 if !(fc&0x20 == Tuint32_t(0)) { 37532 goto __268 37533 } 37534 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 37535 goto __269 37536 __268: 37537 if !(fc&0x10 == Tuint32_t(0)) { 37538 goto __270 37539 } 37540 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 37541 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 37542 goto __271 37543 __270: 37544 if !(fc&0x08 == Tuint32_t(0)) { 37545 goto __272 37546 } 37547 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 37548 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 37549 goto __273 37550 __272: 37551 if !(fc&0x04 == Tuint32_t(0)) { 37552 goto __274 37553 } 37554 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 37555 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 37556 goto __275 37557 __274: 37558 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 37559 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 37560 __275: 37561 ; 37562 __273: 37563 ; 37564 __271: 37565 ; 37566 __269: 37567 ; 37568 __267: 37569 ; 37570 37571 if !(ch == fc) { 37572 goto __276 37573 } 37574 37575 rrc = DMATCH_NOMATCH 37576 goto RETURN_SWITCH 37577 // Caseful match 37578 goto __277 37579 __276: 37580 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_NOTI) { 37581 goto __278 37582 } /* If caseless */ 37583 37584 if !(ch > Tuint32_t(127)) { 37585 goto __279 37586 } 37587 ch = Tuint32_t(int32(ch) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(ch)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(ch)%DUCD_BLOCK_SIZE])*12)).Fother_case) 37588 goto __280 37589 __279: 37590 ch = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Ffcc + uintptr(ch)))) 37591 __280: 37592 ; 37593 if !(ch == fc) { 37594 goto __281 37595 } 37596 rrc = DMATCH_NOMATCH 37597 goto RETURN_SWITCH 37598 __281: 37599 ; 37600 37601 __278: 37602 ; 37603 __277: 37604 ; 37605 goto __257 37606 __256: 37607 if !(ucp != 0) { 37608 goto __282 37609 } 37610 37611 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 37612 ch1 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1))) 37613 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(2) 37614 37615 if !(ch1 == fc) { 37616 goto __284 37617 } 37618 37619 rrc = DMATCH_NOMATCH 37620 goto RETURN_SWITCH 37621 // Caseful match 37622 goto __285 37623 __284: 37624 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_NOTI) { 37625 goto __286 37626 } /* If caseless */ 37627 37628 if !(ch1 > Tuint32_t(127)) { 37629 goto __287 37630 } 37631 ch1 = Tuint32_t(int32(ch1) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(ch1)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(ch1)%DUCD_BLOCK_SIZE])*12)).Fother_case) 37632 goto __288 37633 __287: 37634 ch1 = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Ffcc + uintptr(ch1)))) 37635 __288: 37636 ; 37637 if !(ch1 == fc) { 37638 goto __289 37639 } 37640 rrc = DMATCH_NOMATCH 37641 goto RETURN_SWITCH 37642 __289: 37643 ; 37644 37645 __286: 37646 ; 37647 __285: 37648 ; 37649 goto __283 37650 __282: 37651 37652 /* Neither UTF nor UCP is set */ 37653 37654 ch2 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1))) 37655 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 37656 if !(ch2 == fc || int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_NOTI && Tuint32_t(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Ffcc + uintptr(ch2)))) == fc) { 37657 goto __290 37658 } 37659 rrc = DMATCH_NOMATCH 37660 goto RETURN_SWITCH 37661 __290: 37662 ; 37663 37664 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(2) 37665 __283: 37666 ; 37667 __257: 37668 ; 37669 goto __13 37670 37671 // ===================================================================== 37672 // Match a single character repeatedly. 37673 37674 __25: 37675 __26: 37676 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = libc.AssignPtrUint32(F+56+1*4, uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 37677 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 37678 goto REPEATCHAR 37679 37680 __27: 37681 __28: 37682 reptype = REPTYPE_POS 37683 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(0) 37684 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))) 37685 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 37686 goto REPEATCHAR 37687 37688 __29: 37689 __30: 37690 reptype = REPTYPE_MAX 37691 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(0) 37692 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))) 37693 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 37694 goto REPEATCHAR 37695 37696 __31: 37697 __32: 37698 reptype = REPTYPE_MIN 37699 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(0) 37700 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))) 37701 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 37702 goto REPEATCHAR 37703 37704 __33: 37705 __34: 37706 reptype = REPTYPE_POS 37707 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(0) 37708 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = 4294967295 37709 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 37710 goto REPEATCHAR 37711 37712 __35: 37713 __36: 37714 reptype = REPTYPE_POS 37715 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(1) 37716 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = 4294967295 37717 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 37718 goto REPEATCHAR 37719 37720 __37: 37721 __38: 37722 reptype = REPTYPE_POS 37723 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(0) 37724 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = Tuint32_t(1) 37725 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 37726 goto REPEATCHAR 37727 37728 __39: 37729 __40: 37730 __41: 37731 __42: 37732 __43: 37733 __44: 37734 __45: 37735 __46: 37736 __47: 37737 __48: 37738 __49: 37739 __50: 37740 fc = Tuint32_t(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) - func() int32 { 37741 if int32((*Theapframe)(unsafe.Pointer(F)).Fop) < OP_STARI { 37742 return OP_STAR 37743 } 37744 return OP_STARI 37745 }()) 37746 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = rep_min[fc] 37747 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = rep_max[fc] 37748 reptype = rep_typ[fc] 37749 37750 // Common code for all repeated single-character matches. We first check 37751 // for the minimum number of characters. If the minimum equals the maximum, we 37752 // are done. Otherwise, if minimizing, check the rest of the pattern for a 37753 // match; if there isn't one, advance up to the maximum, one character at a 37754 // time. 37755 // 37756 // If maximizing, advance up to the maximum number of matching characters, 37757 // until Feptr is past the end of the maximum run. If possessive, we are 37758 // then done (no backing up). Otherwise, match at this position; anything 37759 // other than no match is immediately returned. For nomatch, back up one 37760 // character, unless we are matching \R and the last thing matched was 37761 // \r\n, in which case, back up two code units until we reach the first 37762 // optional character position. 37763 // 37764 // The various UTF/non-UTF and caseful/caseless cases are handled separately, 37765 // for speed. 37766 37767 REPEATCHAR: 37768 if !(utf != 0) { 37769 goto __291 37770 } 37771 37772 (*Theapframe)(unsafe.Pointer(F)).Flength = uint64(1) 37773 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8 + 1*8)) = (*Theapframe)(unsafe.Pointer(F)).Fecode 37774 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) 37775 if !(fc >= 0xc0) { 37776 goto __293 37777 } 37778 if !(fc&0x20 == Tuint32_t(0)) { 37779 goto __294 37780 } 37781 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f 37782 (*Theapframe)(unsafe.Pointer(F)).Flength++ 37783 goto __295 37784 __294: 37785 if !(fc&0x10 == Tuint32_t(0)) { 37786 goto __296 37787 } 37788 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f 37789 *(*Tsize_t)(unsafe.Pointer(F + 24)) += uint64(2) 37790 goto __297 37791 __296: 37792 if !(fc&0x08 == Tuint32_t(0)) { 37793 goto __298 37794 } 37795 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))&0x3f 37796 *(*Tsize_t)(unsafe.Pointer(F + 24)) += uint64(3) 37797 goto __299 37798 __298: 37799 if !(fc&0x04 == Tuint32_t(0)) { 37800 goto __300 37801 } 37802 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 4)))&0x3f 37803 *(*Tsize_t)(unsafe.Pointer(F + 24)) += uint64(4) 37804 goto __301 37805 __300: 37806 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 5)))&0x3f 37807 *(*Tsize_t)(unsafe.Pointer(F + 24)) += uint64(5) 37808 __301: 37809 ; 37810 __299: 37811 ; 37812 __297: 37813 ; 37814 __295: 37815 ; 37816 __293: 37817 ; 37818 37819 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8((*Theapframe)(unsafe.Pointer(F)).Flength) 37820 37821 // Handle multi-code-unit character matching, caseful and caseless. 37822 37823 if !((*Theapframe)(unsafe.Pointer(F)).Flength > uint64(1)) { 37824 goto __302 37825 } 37826 37827 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) >= OP_STARI && libc.AssignUint32(&othercase, Tuint32_t(int32(fc)+(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fother_case)) != fc) { 37828 goto __303 37829 } 37830 (*Theapframe)(unsafe.Pointer(F)).Ftemp_size = Tsize_t(X_pcre2_ord2utf_8(tls, othercase, F+74)) 37831 goto __304 37832 __303: 37833 (*Theapframe)(unsafe.Pointer(F)).Ftemp_size = uint64(0) 37834 __304: 37835 ; 37836 37837 i = Tuint32_t(1) 37838 __305: 37839 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 37840 goto __307 37841 } 37842 37843 if !((*Theapframe)(unsafe.Pointer(F)).Feptr <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Theapframe)(unsafe.Pointer(F)).Flength) && libc.Xmemcmp(tls, (*Theapframe)(unsafe.Pointer(F)).Feptr, *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8 + 1*8)), (*Theapframe)(unsafe.Pointer(F)).Flength*uint64(DPCRE2_CODE_UNIT_WIDTH/8)) == 0) { 37844 goto __308 37845 } 37846 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8((*Theapframe)(unsafe.Pointer(F)).Flength) 37847 goto __309 37848 __308: 37849 if !((*Theapframe)(unsafe.Pointer(F)).Ftemp_size > uint64(0) && (*Theapframe)(unsafe.Pointer(F)).Feptr <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Theapframe)(unsafe.Pointer(F)).Ftemp_size) && libc.Xmemcmp(tls, (*Theapframe)(unsafe.Pointer(F)).Feptr, F+74, (*Theapframe)(unsafe.Pointer(F)).Ftemp_size*uint64(DPCRE2_CODE_UNIT_WIDTH/8)) == 0) { 37850 goto __310 37851 } 37852 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8((*Theapframe)(unsafe.Pointer(F)).Ftemp_size) 37853 goto __311 37854 __310: 37855 37856 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 37857 goto __312 37858 } 37859 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 37860 goto __313 37861 } 37862 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 37863 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 37864 goto __314 37865 } 37866 return -2 37867 __314: 37868 ; 37869 __313: 37870 ; 37871 __312: 37872 ; 37873 37874 rrc = DMATCH_NOMATCH 37875 goto RETURN_SWITCH 37876 37877 __311: 37878 ; 37879 __309: 37880 ; 37881 goto __306 37882 __306: 37883 i++ 37884 goto __305 37885 goto __307 37886 __307: 37887 ; 37888 37889 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56)) == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 37890 goto __315 37891 } 37892 goto __11 37893 __315: 37894 ; 37895 37896 if !(reptype == REPTYPE_MIN) { 37897 goto __316 37898 } 37899 37900 __318: 37901 37902 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 37903 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM202 37904 goto MATCH_RECURSE 37905 L_RM202: 37906 ; 37907 37908 if !(rrc != DMATCH_NOMATCH) { 37909 goto __321 37910 } 37911 rrc = rrc 37912 goto RETURN_SWITCH 37913 __321: 37914 ; 37915 37916 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 37917 goto __322 37918 } 37919 rrc = DMATCH_NOMATCH 37920 goto RETURN_SWITCH 37921 __322: 37922 ; 37923 37924 if !((*Theapframe)(unsafe.Pointer(F)).Feptr <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Theapframe)(unsafe.Pointer(F)).Flength) && libc.Xmemcmp(tls, (*Theapframe)(unsafe.Pointer(F)).Feptr, *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8 + 1*8)), (*Theapframe)(unsafe.Pointer(F)).Flength*uint64(DPCRE2_CODE_UNIT_WIDTH/8)) == 0) { 37925 goto __323 37926 } 37927 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8((*Theapframe)(unsafe.Pointer(F)).Flength) 37928 goto __324 37929 __323: 37930 if !((*Theapframe)(unsafe.Pointer(F)).Ftemp_size > uint64(0) && (*Theapframe)(unsafe.Pointer(F)).Feptr <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Theapframe)(unsafe.Pointer(F)).Ftemp_size) && libc.Xmemcmp(tls, (*Theapframe)(unsafe.Pointer(F)).Feptr, F+74, (*Theapframe)(unsafe.Pointer(F)).Ftemp_size*uint64(DPCRE2_CODE_UNIT_WIDTH/8)) == 0) { 37931 goto __325 37932 } 37933 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8((*Theapframe)(unsafe.Pointer(F)).Ftemp_size) 37934 goto __326 37935 __325: 37936 37937 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 37938 goto __327 37939 } 37940 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 37941 goto __328 37942 } 37943 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 37944 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 37945 goto __329 37946 } 37947 return -2 37948 __329: 37949 ; 37950 __328: 37951 ; 37952 __327: 37953 ; 37954 37955 rrc = DMATCH_NOMATCH 37956 goto RETURN_SWITCH 37957 37958 __326: 37959 ; 37960 __324: 37961 ; 37962 goto __319 37963 __319: 37964 goto __318 37965 goto __320 37966 __320: 37967 ; 37968 // Control never gets here 37969 goto __317 37970 __316: /* Maximize */ 37971 37972 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) = (*Theapframe)(unsafe.Pointer(F)).Feptr 37973 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 37974 __330: 37975 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 37976 goto __332 37977 } 37978 37979 if !((*Theapframe)(unsafe.Pointer(F)).Feptr <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Theapframe)(unsafe.Pointer(F)).Flength) && libc.Xmemcmp(tls, (*Theapframe)(unsafe.Pointer(F)).Feptr, *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8 + 1*8)), (*Theapframe)(unsafe.Pointer(F)).Flength*uint64(DPCRE2_CODE_UNIT_WIDTH/8)) == 0) { 37980 goto __333 37981 } 37982 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8((*Theapframe)(unsafe.Pointer(F)).Flength) 37983 goto __334 37984 __333: 37985 if !((*Theapframe)(unsafe.Pointer(F)).Ftemp_size > uint64(0) && (*Theapframe)(unsafe.Pointer(F)).Feptr <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Theapframe)(unsafe.Pointer(F)).Ftemp_size) && libc.Xmemcmp(tls, (*Theapframe)(unsafe.Pointer(F)).Feptr, F+74, (*Theapframe)(unsafe.Pointer(F)).Ftemp_size*uint64(DPCRE2_CODE_UNIT_WIDTH/8)) == 0) { 37986 goto __335 37987 } 37988 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8((*Theapframe)(unsafe.Pointer(F)).Ftemp_size) 37989 goto __336 37990 __335: 37991 37992 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 37993 goto __337 37994 } 37995 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 37996 goto __338 37997 } 37998 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 37999 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 38000 goto __339 38001 } 38002 return -2 38003 __339: 38004 ; 38005 __338: 38006 ; 38007 __337: 38008 ; 38009 38010 goto __332 38011 __336: 38012 ; 38013 __334: 38014 ; 38015 goto __331 38016 __331: 38017 i++ 38018 goto __330 38019 goto __332 38020 __332: 38021 ; 38022 38023 // After \C in UTF mode, Lstart_eptr might be in the middle of a 38024 // Unicode character. Use <= Lstart_eptr to ensure backtracking doesn't 38025 // go too far. 38026 38027 if !(reptype != REPTYPE_POS) { 38028 goto __340 38029 } 38030 __341: 38031 38032 if !((*Theapframe)(unsafe.Pointer(F)).Feptr <= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 38033 goto __344 38034 } 38035 goto __343 38036 __344: 38037 ; 38038 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 38039 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM203 38040 goto MATCH_RECURSE 38041 L_RM203: 38042 ; 38043 38044 if !(rrc != DMATCH_NOMATCH) { 38045 goto __345 38046 } 38047 rrc = rrc 38048 goto RETURN_SWITCH 38049 __345: 38050 ; 38051 38052 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 38053 __346: 38054 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 38055 goto __347 38056 } 38057 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 38058 goto __346 38059 __347: 38060 ; 38061 goto __342 38062 __342: 38063 goto __341 38064 goto __343 38065 __343: 38066 ; 38067 __340: 38068 ; 38069 __317: 38070 ; 38071 goto __13 // End of repeated wide character handling 38072 __302: 38073 ; 38074 38075 // Length of UTF character is 1. Put it into the preserved variable and 38076 // fall through to the non-UTF code. 38077 38078 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) = fc 38079 goto __292 38080 __291: 38081 38082 // When not in UTF mode, load a single-code-unit character. Then proceed as 38083 // above, using Unicode casing if either UTF or UCP is set. 38084 38085 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) 38086 __292: 38087 ; 38088 38089 // Caseless comparison 38090 38091 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) >= OP_STARI) { 38092 goto __348 38093 } 38094 38095 if !(ucp != 0 && !(utf != 0) && *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) > Tuint32_t(127)) { 38096 goto __350 38097 } 38098 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)) = Tuint32_t(int32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4))) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)))/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)))%DUCD_BLOCK_SIZE])*12)).Fother_case) 38099 goto __351 38100 __350: 38101 // Lc will be < 128 in UTF-8 mode. 38102 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)) = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Ffcc + uintptr(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)))))) 38103 __351: 38104 ; 38105 38106 i = Tuint32_t(1) 38107 __352: 38108 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 38109 goto __354 38110 } 38111 // Faster than PCRE2_UCHAR 38112 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 38113 goto __355 38114 } 38115 38116 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 38117 goto __356 38118 } 38119 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 38120 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 38121 goto __357 38122 } 38123 return -2 38124 __357: 38125 ; 38126 __356: 38127 ; 38128 38129 rrc = DMATCH_NOMATCH 38130 goto RETURN_SWITCH 38131 38132 __355: 38133 ; 38134 cc2 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 38135 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) != cc2 && *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)) != cc2) { 38136 goto __358 38137 } 38138 rrc = DMATCH_NOMATCH 38139 goto RETURN_SWITCH 38140 __358: 38141 ; 38142 38143 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 38144 goto __353 38145 __353: 38146 i++ 38147 goto __352 38148 goto __354 38149 __354: 38150 ; 38151 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56)) == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 38152 goto __359 38153 } 38154 goto __11 38155 __359: 38156 ; 38157 38158 if !(reptype == REPTYPE_MIN) { 38159 goto __360 38160 } 38161 38162 __362: 38163 /* Faster than PCRE2_UCHAR */ 38164 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 38165 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM25 38166 goto MATCH_RECURSE 38167 L_RM25: 38168 ; 38169 38170 if !(rrc != DMATCH_NOMATCH) { 38171 goto __365 38172 } 38173 rrc = rrc 38174 goto RETURN_SWITCH 38175 __365: 38176 ; 38177 38178 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 38179 goto __366 38180 } 38181 rrc = DMATCH_NOMATCH 38182 goto RETURN_SWITCH 38183 __366: 38184 ; 38185 38186 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 38187 goto __367 38188 } 38189 38190 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 38191 goto __368 38192 } 38193 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 38194 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 38195 goto __369 38196 } 38197 return -2 38198 __369: 38199 ; 38200 __368: 38201 ; 38202 38203 rrc = DMATCH_NOMATCH 38204 goto RETURN_SWITCH 38205 38206 __367: 38207 ; 38208 cc3 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 38209 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) != cc3 && *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)) != cc3) { 38210 goto __370 38211 } 38212 rrc = DMATCH_NOMATCH 38213 goto RETURN_SWITCH 38214 __370: 38215 ; 38216 38217 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 38218 goto __363 38219 __363: 38220 goto __362 38221 goto __364 38222 __364: 38223 ; 38224 // Control never gets here 38225 goto __361 38226 __360: /* Maximize */ 38227 38228 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) = (*Theapframe)(unsafe.Pointer(F)).Feptr 38229 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 38230 __371: 38231 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 38232 goto __373 38233 } 38234 // Faster than PCRE2_UCHAR 38235 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 38236 goto __374 38237 } 38238 38239 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 38240 goto __375 38241 } 38242 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 38243 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 38244 goto __376 38245 } 38246 return -2 38247 __376: 38248 ; 38249 __375: 38250 ; 38251 38252 goto __373 38253 __374: 38254 ; 38255 cc4 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 38256 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) != cc4 && *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)) != cc4) { 38257 goto __377 38258 } 38259 goto __373 38260 __377: 38261 ; 38262 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 38263 goto __372 38264 __372: 38265 i++ 38266 goto __371 38267 goto __373 38268 __373: 38269 ; 38270 if !(reptype != REPTYPE_POS) { 38271 goto __378 38272 } 38273 __379: 38274 38275 if !((*Theapframe)(unsafe.Pointer(F)).Feptr == *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 38276 goto __382 38277 } 38278 goto __381 38279 __382: 38280 ; 38281 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 38282 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM26 38283 goto MATCH_RECURSE 38284 L_RM26: 38285 ; 38286 38287 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 38288 if !(rrc != DMATCH_NOMATCH) { 38289 goto __383 38290 } 38291 rrc = rrc 38292 goto RETURN_SWITCH 38293 __383: 38294 ; 38295 38296 goto __380 38297 __380: 38298 goto __379 38299 goto __381 38300 __381: 38301 ; 38302 __378: 38303 ; 38304 __361: 38305 ; 38306 goto __349 38307 __348: 38308 38309 i = Tuint32_t(1) 38310 __384: 38311 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 38312 goto __386 38313 } 38314 38315 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 38316 goto __387 38317 } 38318 38319 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 38320 goto __388 38321 } 38322 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 38323 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 38324 goto __389 38325 } 38326 return -2 38327 __389: 38328 ; 38329 __388: 38330 ; 38331 38332 rrc = DMATCH_NOMATCH 38333 goto RETURN_SWITCH 38334 38335 __387: 38336 ; 38337 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) != Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))) { 38338 goto __390 38339 } 38340 rrc = DMATCH_NOMATCH 38341 goto RETURN_SWITCH 38342 __390: 38343 ; 38344 38345 goto __385 38346 __385: 38347 i++ 38348 goto __384 38349 goto __386 38350 __386: 38351 ; 38352 38353 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56)) == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 38354 goto __391 38355 } 38356 goto __11 38357 __391: 38358 ; 38359 38360 if !(reptype == REPTYPE_MIN) { 38361 goto __392 38362 } 38363 38364 __394: 38365 38366 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 38367 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM27 38368 goto MATCH_RECURSE 38369 L_RM27: 38370 ; 38371 38372 if !(rrc != DMATCH_NOMATCH) { 38373 goto __397 38374 } 38375 rrc = rrc 38376 goto RETURN_SWITCH 38377 __397: 38378 ; 38379 38380 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 38381 goto __398 38382 } 38383 rrc = DMATCH_NOMATCH 38384 goto RETURN_SWITCH 38385 __398: 38386 ; 38387 38388 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 38389 goto __399 38390 } 38391 38392 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 38393 goto __400 38394 } 38395 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 38396 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 38397 goto __401 38398 } 38399 return -2 38400 __401: 38401 ; 38402 __400: 38403 ; 38404 38405 rrc = DMATCH_NOMATCH 38406 goto RETURN_SWITCH 38407 38408 __399: 38409 ; 38410 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) != Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))) { 38411 goto __402 38412 } 38413 rrc = DMATCH_NOMATCH 38414 goto RETURN_SWITCH 38415 __402: 38416 ; 38417 38418 goto __395 38419 __395: 38420 goto __394 38421 goto __396 38422 __396: 38423 ; 38424 // Control never gets here 38425 goto __393 38426 __392: /* Maximize */ 38427 38428 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) = (*Theapframe)(unsafe.Pointer(F)).Feptr 38429 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 38430 __403: 38431 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 38432 goto __405 38433 } 38434 38435 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 38436 goto __406 38437 } 38438 38439 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 38440 goto __407 38441 } 38442 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 38443 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 38444 goto __408 38445 } 38446 return -2 38447 __408: 38448 ; 38449 __407: 38450 ; 38451 38452 goto __405 38453 __406: 38454 ; 38455 38456 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) != Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))) { 38457 goto __409 38458 } 38459 goto __405 38460 __409: 38461 ; 38462 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 38463 goto __404 38464 __404: 38465 i++ 38466 goto __403 38467 goto __405 38468 __405: 38469 ; 38470 38471 if !(reptype != REPTYPE_POS) { 38472 goto __410 38473 } 38474 __411: 38475 38476 if !((*Theapframe)(unsafe.Pointer(F)).Feptr <= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 38477 goto __414 38478 } 38479 goto __413 38480 __414: 38481 ; 38482 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 38483 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM28 38484 goto MATCH_RECURSE 38485 L_RM28: 38486 ; 38487 38488 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 38489 if !(rrc != DMATCH_NOMATCH) { 38490 goto __415 38491 } 38492 rrc = rrc 38493 goto RETURN_SWITCH 38494 __415: 38495 ; 38496 38497 goto __412 38498 __412: 38499 goto __411 38500 goto __413 38501 __413: 38502 ; 38503 __410: 38504 ; 38505 __393: 38506 ; 38507 __349: 38508 ; 38509 goto __13 38510 38511 // ===================================================================== 38512 // Match a negated single one-byte character repeatedly. This is almost a 38513 // repeat of the code for a repeated single character, but I haven't found a 38514 // nice way of commoning these up that doesn't require a test of the 38515 // positive/negative option for each character match. Maybe that wouldn't add 38516 // very much to the time taken, but character matching *is* what this is all 38517 // about... 38518 38519 __51: 38520 __52: 38521 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = libc.AssignPtrUint32(F+56+1*4, uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 38522 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 38523 goto REPEATNOTCHAR 38524 38525 __53: 38526 __54: 38527 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(0) 38528 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))) 38529 reptype = REPTYPE_MAX 38530 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 38531 goto REPEATNOTCHAR 38532 38533 __55: 38534 __56: 38535 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(0) 38536 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))) 38537 reptype = REPTYPE_MIN 38538 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 38539 goto REPEATNOTCHAR 38540 38541 __57: 38542 __58: 38543 reptype = REPTYPE_POS 38544 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(0) 38545 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = 4294967295 38546 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 38547 goto REPEATNOTCHAR 38548 38549 __59: 38550 __60: 38551 reptype = REPTYPE_POS 38552 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(1) 38553 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = 4294967295 38554 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 38555 goto REPEATNOTCHAR 38556 38557 __61: 38558 __62: 38559 reptype = REPTYPE_POS 38560 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(0) 38561 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = Tuint32_t(1) 38562 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 38563 goto REPEATNOTCHAR 38564 38565 __63: 38566 __64: 38567 reptype = REPTYPE_POS 38568 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(0) 38569 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))) 38570 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 38571 goto REPEATNOTCHAR 38572 38573 __65: 38574 __66: 38575 __67: 38576 __68: 38577 __69: 38578 __70: 38579 __71: 38580 __72: 38581 __73: 38582 __74: 38583 __75: 38584 __76: 38585 fc = Tuint32_t(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) - func() int32 { 38586 if int32((*Theapframe)(unsafe.Pointer(F)).Fop) >= OP_NOTSTARI { 38587 return OP_NOTSTARI 38588 } 38589 return OP_NOTSTAR 38590 }()) 38591 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = rep_min[fc] 38592 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = rep_max[fc] 38593 reptype = rep_typ[fc] 38594 38595 // Common code for all repeated single-character non-matches. 38596 38597 REPEATNOTCHAR: 38598 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) 38599 if !(utf != 0 && *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) >= 0xc0) { 38600 goto __416 38601 } 38602 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4))&0x20 == Tuint32_t(0)) { 38603 goto __417 38604 } 38605 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) = *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4))&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1))))&0x3f 38606 goto __418 38607 __417: 38608 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4))&0x10 == Tuint32_t(0)) { 38609 goto __419 38610 } 38611 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) = *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4))&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f 38612 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(2) 38613 goto __420 38614 __419: 38615 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4))&0x08 == Tuint32_t(0)) { 38616 goto __421 38617 } 38618 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) = *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4))&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f 38619 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(3) 38620 goto __422 38621 __421: 38622 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4))&0x04 == Tuint32_t(0)) { 38623 goto __423 38624 } 38625 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) = *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4))&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))&0x3f 38626 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(4) 38627 goto __424 38628 __423: 38629 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) = *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4))&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 4)))&0x3f 38630 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(5) 38631 __424: 38632 ; 38633 __422: 38634 ; 38635 __420: 38636 ; 38637 __418: 38638 ; 38639 __416: 38640 ; 38641 38642 // The code is duplicated for the caseless and caseful cases, for speed, 38643 // since matching characters is likely to be quite common. First, ensure the 38644 // minimum number of matches are present. If Lmin = Lmax, we are done. 38645 // Otherwise, if minimizing, keep trying the rest of the expression and 38646 // advancing one matching character if failing, up to the maximum. 38647 // Alternatively, if maximizing, find the maximum number of characters and 38648 // work backwards. 38649 38650 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) >= OP_NOTSTARI) { 38651 goto __425 38652 } /* Caseless */ 38653 38654 if !((utf != 0 || ucp != 0) && *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) > Tuint32_t(127)) { 38655 goto __427 38656 } 38657 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)) = Tuint32_t(int32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4))) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)))/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)))%DUCD_BLOCK_SIZE])*12)).Fother_case) 38658 goto __428 38659 __427: 38660 38661 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)) = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Ffcc + uintptr(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)))))) 38662 __428: 38663 ; // Other case from table 38664 38665 if !(utf != 0) { 38666 goto __429 38667 } 38668 38669 i = Tuint32_t(1) 38670 __431: 38671 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 38672 goto __433 38673 } 38674 38675 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 38676 goto __434 38677 } 38678 38679 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 38680 goto __435 38681 } 38682 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 38683 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 38684 goto __436 38685 } 38686 return -2 38687 __436: 38688 ; 38689 __435: 38690 ; 38691 38692 rrc = DMATCH_NOMATCH 38693 goto RETURN_SWITCH 38694 38695 __434: 38696 ; 38697 d = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 38698 if !(d >= 0xc0) { 38699 goto __437 38700 } 38701 if !(d&0x20 == Tuint32_t(0)) { 38702 goto __438 38703 } 38704 d = d&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 38705 goto __439 38706 __438: 38707 if !(d&0x10 == Tuint32_t(0)) { 38708 goto __440 38709 } 38710 d = d&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 38711 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 38712 goto __441 38713 __440: 38714 if !(d&0x08 == Tuint32_t(0)) { 38715 goto __442 38716 } 38717 d = d&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 38718 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 38719 goto __443 38720 __442: 38721 if !(d&0x04 == Tuint32_t(0)) { 38722 goto __444 38723 } 38724 d = d&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 38725 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 38726 goto __445 38727 __444: 38728 d = d&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 38729 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 38730 __445: 38731 ; 38732 __443: 38733 ; 38734 __441: 38735 ; 38736 __439: 38737 ; 38738 __437: 38739 ; 38740 38741 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == d || *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)) == d) { 38742 goto __446 38743 } 38744 rrc = DMATCH_NOMATCH 38745 goto RETURN_SWITCH 38746 __446: 38747 ; 38748 38749 goto __432 38750 __432: 38751 i++ 38752 goto __431 38753 goto __433 38754 __433: 38755 ; 38756 goto __430 38757 __429: 38758 38759 /* Not UTF mode */ 38760 38761 i = Tuint32_t(1) 38762 __447: 38763 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 38764 goto __449 38765 } 38766 38767 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 38768 goto __450 38769 } 38770 38771 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 38772 goto __451 38773 } 38774 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 38775 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 38776 goto __452 38777 } 38778 return -2 38779 __452: 38780 ; 38781 __451: 38782 ; 38783 38784 rrc = DMATCH_NOMATCH 38785 goto RETURN_SWITCH 38786 38787 __450: 38788 ; 38789 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) || *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)) == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))) { 38790 goto __453 38791 } 38792 rrc = DMATCH_NOMATCH 38793 goto RETURN_SWITCH 38794 __453: 38795 ; 38796 38797 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 38798 goto __448 38799 __448: 38800 i++ 38801 goto __447 38802 goto __449 38803 __449: 38804 ; 38805 __430: 38806 ; 38807 38808 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56)) == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 38809 goto __454 38810 } 38811 goto __11 38812 __454: 38813 ; // Finished for exact count 38814 38815 if !(reptype == REPTYPE_MIN) { 38816 goto __455 38817 } 38818 38819 if !(utf != 0) { 38820 goto __457 38821 } 38822 38823 __459: 38824 38825 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 38826 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM204 38827 goto MATCH_RECURSE 38828 L_RM204: 38829 ; 38830 38831 if !(rrc != DMATCH_NOMATCH) { 38832 goto __462 38833 } 38834 rrc = rrc 38835 goto RETURN_SWITCH 38836 __462: 38837 ; 38838 38839 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 38840 goto __463 38841 } 38842 rrc = DMATCH_NOMATCH 38843 goto RETURN_SWITCH 38844 __463: 38845 ; 38846 38847 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 38848 goto __464 38849 } 38850 38851 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 38852 goto __465 38853 } 38854 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 38855 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 38856 goto __466 38857 } 38858 return -2 38859 __466: 38860 ; 38861 __465: 38862 ; 38863 38864 rrc = DMATCH_NOMATCH 38865 goto RETURN_SWITCH 38866 38867 __464: 38868 ; 38869 d1 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 38870 if !(d1 >= 0xc0) { 38871 goto __467 38872 } 38873 if !(d1&0x20 == Tuint32_t(0)) { 38874 goto __468 38875 } 38876 d1 = d1&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 38877 goto __469 38878 __468: 38879 if !(d1&0x10 == Tuint32_t(0)) { 38880 goto __470 38881 } 38882 d1 = d1&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 38883 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 38884 goto __471 38885 __470: 38886 if !(d1&0x08 == Tuint32_t(0)) { 38887 goto __472 38888 } 38889 d1 = d1&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 38890 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 38891 goto __473 38892 __472: 38893 if !(d1&0x04 == Tuint32_t(0)) { 38894 goto __474 38895 } 38896 d1 = d1&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 38897 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 38898 goto __475 38899 __474: 38900 d1 = d1&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 38901 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 38902 __475: 38903 ; 38904 __473: 38905 ; 38906 __471: 38907 ; 38908 __469: 38909 ; 38910 __467: 38911 ; 38912 38913 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == d1 || *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)) == d1) { 38914 goto __476 38915 } 38916 rrc = DMATCH_NOMATCH 38917 goto RETURN_SWITCH 38918 __476: 38919 ; 38920 38921 goto __460 38922 __460: 38923 goto __459 38924 goto __461 38925 __461: 38926 ; 38927 goto __458 38928 __457: 38929 38930 /* Not UTF mode */ 38931 38932 __477: 38933 38934 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 38935 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM29 38936 goto MATCH_RECURSE 38937 L_RM29: 38938 ; 38939 38940 if !(rrc != DMATCH_NOMATCH) { 38941 goto __480 38942 } 38943 rrc = rrc 38944 goto RETURN_SWITCH 38945 __480: 38946 ; 38947 38948 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 38949 goto __481 38950 } 38951 rrc = DMATCH_NOMATCH 38952 goto RETURN_SWITCH 38953 __481: 38954 ; 38955 38956 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 38957 goto __482 38958 } 38959 38960 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 38961 goto __483 38962 } 38963 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 38964 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 38965 goto __484 38966 } 38967 return -2 38968 __484: 38969 ; 38970 __483: 38971 ; 38972 38973 rrc = DMATCH_NOMATCH 38974 goto RETURN_SWITCH 38975 38976 __482: 38977 ; 38978 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) || *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)) == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))) { 38979 goto __485 38980 } 38981 rrc = DMATCH_NOMATCH 38982 goto RETURN_SWITCH 38983 __485: 38984 ; 38985 38986 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 38987 goto __478 38988 __478: 38989 goto __477 38990 goto __479 38991 __479: 38992 ; 38993 __458: 38994 ; 38995 // Control never gets here 38996 goto __456 38997 __455: 38998 38999 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) = (*Theapframe)(unsafe.Pointer(F)).Feptr 39000 39001 if !(utf != 0) { 39002 goto __486 39003 } 39004 39005 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 39006 __488: 39007 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 39008 goto __490 39009 } 39010 39011 len = 1 39012 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 39013 goto __491 39014 } 39015 39016 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 39017 goto __492 39018 } 39019 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 39020 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 39021 goto __493 39022 } 39023 return -2 39024 __493: 39025 ; 39026 __492: 39027 ; 39028 39029 goto __490 39030 __491: 39031 ; 39032 d2 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 39033 if !(d2 >= 0xc0) { 39034 goto __494 39035 } 39036 if !(d2&0x20 == Tuint32_t(0)) { 39037 goto __495 39038 } 39039 d2 = d2&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 39040 len++ 39041 goto __496 39042 __495: 39043 if !(d2&0x10 == Tuint32_t(0)) { 39044 goto __497 39045 } 39046 d2 = d2&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 39047 len = len + 2 39048 goto __498 39049 __497: 39050 if !(d2&0x08 == Tuint32_t(0)) { 39051 goto __499 39052 } 39053 d2 = d2&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 39054 len = len + 3 39055 goto __500 39056 __499: 39057 if !(d2&0x04 == Tuint32_t(0)) { 39058 goto __501 39059 } 39060 d2 = d2&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 39061 len = len + 4 39062 goto __502 39063 __501: 39064 d2 = d2&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 39065 len = len + 5 39066 __502: 39067 ; 39068 __500: 39069 ; 39070 __498: 39071 ; 39072 __496: 39073 ; 39074 __494: 39075 ; 39076 39077 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == d2 || *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)) == d2) { 39078 goto __503 39079 } 39080 goto __490 39081 __503: 39082 ; 39083 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len) 39084 goto __489 39085 __489: 39086 i++ 39087 goto __488 39088 goto __490 39089 __490: 39090 ; 39091 39092 // After \C in UTF mode, Lstart_eptr might be in the middle of a 39093 // Unicode character. Use <= Lstart_eptr to ensure backtracking doesn't 39094 // go too far. 39095 39096 if !(reptype != REPTYPE_POS) { 39097 goto __504 39098 } 39099 __505: 39100 39101 if !((*Theapframe)(unsafe.Pointer(F)).Feptr <= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 39102 goto __508 39103 } 39104 goto __507 39105 __508: 39106 ; 39107 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 39108 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM205 39109 goto MATCH_RECURSE 39110 L_RM205: 39111 ; 39112 39113 if !(rrc != DMATCH_NOMATCH) { 39114 goto __509 39115 } 39116 rrc = rrc 39117 goto RETURN_SWITCH 39118 __509: 39119 ; 39120 39121 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 39122 __510: 39123 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 39124 goto __511 39125 } 39126 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 39127 goto __510 39128 __511: 39129 ; 39130 goto __506 39131 __506: 39132 goto __505 39133 goto __507 39134 __507: 39135 ; 39136 __504: 39137 ; 39138 goto __487 39139 __486: 39140 39141 /* Not UTF mode */ 39142 39143 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 39144 __512: 39145 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 39146 goto __514 39147 } 39148 39149 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 39150 goto __515 39151 } 39152 39153 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 39154 goto __516 39155 } 39156 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 39157 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 39158 goto __517 39159 } 39160 return -2 39161 __517: 39162 ; 39163 __516: 39164 ; 39165 39166 goto __514 39167 __515: 39168 ; 39169 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) || *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)) == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))) { 39170 goto __518 39171 } 39172 goto __514 39173 __518: 39174 ; 39175 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 39176 goto __513 39177 __513: 39178 i++ 39179 goto __512 39180 goto __514 39181 __514: 39182 ; 39183 if !(reptype != REPTYPE_POS) { 39184 goto __519 39185 } 39186 __520: 39187 39188 if !((*Theapframe)(unsafe.Pointer(F)).Feptr == *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 39189 goto __523 39190 } 39191 goto __522 39192 __523: 39193 ; 39194 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 39195 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM30 39196 goto MATCH_RECURSE 39197 L_RM30: 39198 ; 39199 39200 if !(rrc != DMATCH_NOMATCH) { 39201 goto __524 39202 } 39203 rrc = rrc 39204 goto RETURN_SWITCH 39205 __524: 39206 ; 39207 39208 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 39209 goto __521 39210 __521: 39211 goto __520 39212 goto __522 39213 __522: 39214 ; 39215 __519: 39216 ; 39217 __487: 39218 ; 39219 __456: 39220 ; 39221 goto __426 39222 __425: 39223 39224 if !(utf != 0) { 39225 goto __525 39226 } 39227 39228 i = Tuint32_t(1) 39229 __527: 39230 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 39231 goto __529 39232 } 39233 39234 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 39235 goto __530 39236 } 39237 39238 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 39239 goto __531 39240 } 39241 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 39242 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 39243 goto __532 39244 } 39245 return -2 39246 __532: 39247 ; 39248 __531: 39249 ; 39250 39251 rrc = DMATCH_NOMATCH 39252 goto RETURN_SWITCH 39253 39254 __530: 39255 ; 39256 d3 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 39257 if !(d3 >= 0xc0) { 39258 goto __533 39259 } 39260 if !(d3&0x20 == Tuint32_t(0)) { 39261 goto __534 39262 } 39263 d3 = d3&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 39264 goto __535 39265 __534: 39266 if !(d3&0x10 == Tuint32_t(0)) { 39267 goto __536 39268 } 39269 d3 = d3&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 39270 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 39271 goto __537 39272 __536: 39273 if !(d3&0x08 == Tuint32_t(0)) { 39274 goto __538 39275 } 39276 d3 = d3&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 39277 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 39278 goto __539 39279 __538: 39280 if !(d3&0x04 == Tuint32_t(0)) { 39281 goto __540 39282 } 39283 d3 = d3&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 39284 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 39285 goto __541 39286 __540: 39287 d3 = d3&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 39288 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 39289 __541: 39290 ; 39291 __539: 39292 ; 39293 __537: 39294 ; 39295 __535: 39296 ; 39297 __533: 39298 ; 39299 39300 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == d3) { 39301 goto __542 39302 } 39303 rrc = DMATCH_NOMATCH 39304 goto RETURN_SWITCH 39305 __542: 39306 ; 39307 39308 goto __528 39309 __528: 39310 i++ 39311 goto __527 39312 goto __529 39313 __529: 39314 ; 39315 goto __526 39316 __525: 39317 /* Not UTF mode */ 39318 39319 i = Tuint32_t(1) 39320 __543: 39321 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 39322 goto __545 39323 } 39324 39325 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 39326 goto __546 39327 } 39328 39329 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 39330 goto __547 39331 } 39332 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 39333 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 39334 goto __548 39335 } 39336 return -2 39337 __548: 39338 ; 39339 __547: 39340 ; 39341 39342 rrc = DMATCH_NOMATCH 39343 goto RETURN_SWITCH 39344 39345 __546: 39346 ; 39347 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))) { 39348 goto __549 39349 } 39350 rrc = DMATCH_NOMATCH 39351 goto RETURN_SWITCH 39352 __549: 39353 ; 39354 39355 goto __544 39356 __544: 39357 i++ 39358 goto __543 39359 goto __545 39360 __545: 39361 ; 39362 __526: 39363 ; 39364 39365 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56)) == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 39366 goto __550 39367 } 39368 goto __11 39369 __550: 39370 ; 39371 39372 if !(reptype == REPTYPE_MIN) { 39373 goto __551 39374 } 39375 39376 if !(utf != 0) { 39377 goto __553 39378 } 39379 39380 __555: 39381 39382 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 39383 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM206 39384 goto MATCH_RECURSE 39385 L_RM206: 39386 ; 39387 39388 if !(rrc != DMATCH_NOMATCH) { 39389 goto __558 39390 } 39391 rrc = rrc 39392 goto RETURN_SWITCH 39393 __558: 39394 ; 39395 39396 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 39397 goto __559 39398 } 39399 rrc = DMATCH_NOMATCH 39400 goto RETURN_SWITCH 39401 __559: 39402 ; 39403 39404 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 39405 goto __560 39406 } 39407 39408 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 39409 goto __561 39410 } 39411 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 39412 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 39413 goto __562 39414 } 39415 return -2 39416 __562: 39417 ; 39418 __561: 39419 ; 39420 39421 rrc = DMATCH_NOMATCH 39422 goto RETURN_SWITCH 39423 39424 __560: 39425 ; 39426 d4 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 39427 if !(d4 >= 0xc0) { 39428 goto __563 39429 } 39430 if !(d4&0x20 == Tuint32_t(0)) { 39431 goto __564 39432 } 39433 d4 = d4&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 39434 goto __565 39435 __564: 39436 if !(d4&0x10 == Tuint32_t(0)) { 39437 goto __566 39438 } 39439 d4 = d4&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 39440 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 39441 goto __567 39442 __566: 39443 if !(d4&0x08 == Tuint32_t(0)) { 39444 goto __568 39445 } 39446 d4 = d4&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 39447 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 39448 goto __569 39449 __568: 39450 if !(d4&0x04 == Tuint32_t(0)) { 39451 goto __570 39452 } 39453 d4 = d4&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 39454 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 39455 goto __571 39456 __570: 39457 d4 = d4&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 39458 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 39459 __571: 39460 ; 39461 __569: 39462 ; 39463 __567: 39464 ; 39465 __565: 39466 ; 39467 __563: 39468 ; 39469 39470 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == d4) { 39471 goto __572 39472 } 39473 rrc = DMATCH_NOMATCH 39474 goto RETURN_SWITCH 39475 __572: 39476 ; 39477 39478 goto __556 39479 __556: 39480 goto __555 39481 goto __557 39482 __557: 39483 ; 39484 goto __554 39485 __553: 39486 /* Not UTF mode */ 39487 39488 __573: 39489 39490 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 39491 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM31 39492 goto MATCH_RECURSE 39493 L_RM31: 39494 ; 39495 39496 if !(rrc != DMATCH_NOMATCH) { 39497 goto __576 39498 } 39499 rrc = rrc 39500 goto RETURN_SWITCH 39501 __576: 39502 ; 39503 39504 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 39505 goto __577 39506 } 39507 rrc = DMATCH_NOMATCH 39508 goto RETURN_SWITCH 39509 __577: 39510 ; 39511 39512 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 39513 goto __578 39514 } 39515 39516 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 39517 goto __579 39518 } 39519 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 39520 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 39521 goto __580 39522 } 39523 return -2 39524 __580: 39525 ; 39526 __579: 39527 ; 39528 39529 rrc = DMATCH_NOMATCH 39530 goto RETURN_SWITCH 39531 39532 __578: 39533 ; 39534 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))) { 39535 goto __581 39536 } 39537 rrc = DMATCH_NOMATCH 39538 goto RETURN_SWITCH 39539 __581: 39540 ; 39541 39542 goto __574 39543 __574: 39544 goto __573 39545 goto __575 39546 __575: 39547 ; 39548 __554: 39549 ; 39550 // Control never gets here 39551 goto __552 39552 __551: 39553 39554 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) = (*Theapframe)(unsafe.Pointer(F)).Feptr 39555 39556 if !(utf != 0) { 39557 goto __582 39558 } 39559 39560 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 39561 __584: 39562 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 39563 goto __586 39564 } 39565 39566 len1 = 1 39567 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 39568 goto __587 39569 } 39570 39571 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 39572 goto __588 39573 } 39574 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 39575 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 39576 goto __589 39577 } 39578 return -2 39579 __589: 39580 ; 39581 __588: 39582 ; 39583 39584 goto __586 39585 __587: 39586 ; 39587 d5 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 39588 if !(d5 >= 0xc0) { 39589 goto __590 39590 } 39591 if !(d5&0x20 == Tuint32_t(0)) { 39592 goto __591 39593 } 39594 d5 = d5&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 39595 len1++ 39596 goto __592 39597 __591: 39598 if !(d5&0x10 == Tuint32_t(0)) { 39599 goto __593 39600 } 39601 d5 = d5&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 39602 len1 = len1 + 2 39603 goto __594 39604 __593: 39605 if !(d5&0x08 == Tuint32_t(0)) { 39606 goto __595 39607 } 39608 d5 = d5&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 39609 len1 = len1 + 3 39610 goto __596 39611 __595: 39612 if !(d5&0x04 == Tuint32_t(0)) { 39613 goto __597 39614 } 39615 d5 = d5&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 39616 len1 = len1 + 4 39617 goto __598 39618 __597: 39619 d5 = d5&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 39620 len1 = len1 + 5 39621 __598: 39622 ; 39623 __596: 39624 ; 39625 __594: 39626 ; 39627 __592: 39628 ; 39629 __590: 39630 ; 39631 39632 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == d5) { 39633 goto __599 39634 } 39635 goto __586 39636 __599: 39637 ; 39638 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len1) 39639 goto __585 39640 __585: 39641 i++ 39642 goto __584 39643 goto __586 39644 __586: 39645 ; 39646 39647 // After \C in UTF mode, Lstart_eptr might be in the middle of a 39648 // Unicode character. Use <= Lstart_eptr to ensure backtracking doesn't 39649 // go too far. 39650 39651 if !(reptype != REPTYPE_POS) { 39652 goto __600 39653 } 39654 __601: 39655 39656 if !((*Theapframe)(unsafe.Pointer(F)).Feptr <= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 39657 goto __604 39658 } 39659 goto __603 39660 __604: 39661 ; 39662 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 39663 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM207 39664 goto MATCH_RECURSE 39665 L_RM207: 39666 ; 39667 39668 if !(rrc != DMATCH_NOMATCH) { 39669 goto __605 39670 } 39671 rrc = rrc 39672 goto RETURN_SWITCH 39673 __605: 39674 ; 39675 39676 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 39677 __606: 39678 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 39679 goto __607 39680 } 39681 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 39682 goto __606 39683 __607: 39684 ; 39685 goto __602 39686 __602: 39687 goto __601 39688 goto __603 39689 __603: 39690 ; 39691 __600: 39692 ; 39693 goto __583 39694 __582: 39695 /* Not UTF mode */ 39696 39697 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 39698 __608: 39699 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 39700 goto __610 39701 } 39702 39703 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 39704 goto __611 39705 } 39706 39707 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 39708 goto __612 39709 } 39710 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 39711 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 39712 goto __613 39713 } 39714 return -2 39715 __613: 39716 ; 39717 __612: 39718 ; 39719 39720 goto __610 39721 __611: 39722 ; 39723 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))) { 39724 goto __614 39725 } 39726 goto __610 39727 __614: 39728 ; 39729 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 39730 goto __609 39731 __609: 39732 i++ 39733 goto __608 39734 goto __610 39735 __610: 39736 ; 39737 if !(reptype != REPTYPE_POS) { 39738 goto __615 39739 } 39740 __616: 39741 39742 if !((*Theapframe)(unsafe.Pointer(F)).Feptr == *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 39743 goto __619 39744 } 39745 goto __618 39746 __619: 39747 ; 39748 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 39749 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM32 39750 goto MATCH_RECURSE 39751 L_RM32: 39752 ; 39753 39754 if !(rrc != DMATCH_NOMATCH) { 39755 goto __620 39756 } 39757 rrc = rrc 39758 goto RETURN_SWITCH 39759 __620: 39760 ; 39761 39762 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 39763 goto __617 39764 __617: 39765 goto __616 39766 goto __618 39767 __618: 39768 ; 39769 __615: 39770 ; 39771 __583: 39772 ; 39773 __552: 39774 ; 39775 __426: 39776 ; 39777 goto __13 39778 39779 // ===================================================================== 39780 // Match a bit-mapped character class, possibly repeatedly. These opcodes 39781 // are used when all the characters in the class have values in the range 39782 // 0-255, and either the matching is caseful, or the characters are in the 39783 // range 0-127 when UTF processing is enabled. The only difference between 39784 // OP_CLASS and OP_NCLASS occurs when a data character outside the range is 39785 // encountered. 39786 39787 __77: 39788 __78: 39789 39790 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8 + 1*8)) = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(1) // Save for matching 39791 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(uint64(1) + uint64(32)/uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0)))) // Advance past the item 39792 39793 // Look past the end of the item to see if there is repeat information 39794 // following. Then obey similar code to character type repeats. 39795 39796 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) { 39797 case OP_CRSTAR: 39798 goto __622 39799 case OP_CRMINSTAR: 39800 goto __623 39801 case OP_CRPLUS: 39802 goto __624 39803 case OP_CRMINPLUS: 39804 goto __625 39805 case OP_CRQUERY: 39806 goto __626 39807 case OP_CRMINQUERY: 39808 goto __627 39809 case OP_CRPOSSTAR: 39810 goto __628 39811 case OP_CRPOSPLUS: 39812 goto __629 39813 case OP_CRPOSQUERY: 39814 goto __630 39815 39816 case OP_CRRANGE: 39817 goto __631 39818 case OP_CRMINRANGE: 39819 goto __632 39820 case OP_CRPOSRANGE: 39821 goto __633 39822 39823 default: 39824 goto __634 39825 } 39826 goto __621 39827 39828 __622: 39829 __623: 39830 __624: 39831 __625: 39832 __626: 39833 __627: 39834 __628: 39835 __629: 39836 __630: 39837 fc = Tuint32_t(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) - OP_CRSTAR) 39838 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = rep_min[fc] 39839 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = rep_max[fc] 39840 reptype = rep_typ[fc] 39841 goto __621 39842 39843 __631: 39844 __632: 39845 __633: 39846 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))) 39847 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 4)))) 39848 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) == Tuint32_t(0)) { 39849 goto __635 39850 } 39851 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = 4294967295 39852 __635: 39853 ; // Max 0 => infinity 39854 reptype = rep_typ[int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode)))-OP_CRSTAR] 39855 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + 2*DIMM2_SIZE) 39856 goto __621 39857 39858 __634: // No repeat follows 39859 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = libc.AssignPtrUint32(F+56+1*4, Tuint32_t(1)) 39860 goto __621 39861 __621: 39862 ; 39863 39864 // First, ensure the minimum number of matches are present. 39865 39866 if !(utf != 0) { 39867 goto __636 39868 } 39869 39870 i = Tuint32_t(1) 39871 __638: 39872 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 39873 goto __640 39874 } 39875 39876 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 39877 goto __641 39878 } 39879 39880 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 39881 goto __642 39882 } 39883 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 39884 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 39885 goto __643 39886 } 39887 return -2 39888 __643: 39889 ; 39890 __642: 39891 ; 39892 39893 rrc = DMATCH_NOMATCH 39894 goto RETURN_SWITCH 39895 39896 __641: 39897 ; 39898 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 39899 if !(fc >= 0xc0) { 39900 goto __644 39901 } 39902 if !(fc&0x20 == Tuint32_t(0)) { 39903 goto __645 39904 } 39905 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 39906 goto __646 39907 __645: 39908 if !(fc&0x10 == Tuint32_t(0)) { 39909 goto __647 39910 } 39911 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 39912 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 39913 goto __648 39914 __647: 39915 if !(fc&0x08 == Tuint32_t(0)) { 39916 goto __649 39917 } 39918 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 39919 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 39920 goto __650 39921 __649: 39922 if !(fc&0x04 == Tuint32_t(0)) { 39923 goto __651 39924 } 39925 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 39926 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 39927 goto __652 39928 __651: 39929 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 39930 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 39931 __652: 39932 ; 39933 __650: 39934 ; 39935 __648: 39936 ; 39937 __646: 39938 ; 39939 __644: 39940 ; 39941 39942 if !(fc > Tuint32_t(255)) { 39943 goto __653 39944 } 39945 39946 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_CLASS) { 39947 goto __655 39948 } 39949 rrc = DMATCH_NOMATCH 39950 goto RETURN_SWITCH 39951 __655: 39952 ; 39953 39954 goto __654 39955 __653: 39956 if !(uint32(*(*uint8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8 + 1*8)) + uintptr(fc/Tuint32_t(8)))))&(uint32(1)<<(fc&Tuint32_t(7))) == uint32(0)) { 39957 goto __656 39958 } 39959 rrc = DMATCH_NOMATCH 39960 goto RETURN_SWITCH 39961 __656: 39962 ; 39963 __654: 39964 ; 39965 39966 goto __639 39967 __639: 39968 i++ 39969 goto __638 39970 goto __640 39971 __640: 39972 ; 39973 goto __637 39974 __636: 39975 /* Not UTF mode */ 39976 39977 i = Tuint32_t(1) 39978 __657: 39979 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 39980 goto __659 39981 } 39982 39983 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 39984 goto __660 39985 } 39986 39987 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 39988 goto __661 39989 } 39990 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 39991 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 39992 goto __662 39993 } 39994 return -2 39995 __662: 39996 ; 39997 __661: 39998 ; 39999 40000 rrc = DMATCH_NOMATCH 40001 goto RETURN_SWITCH 40002 40003 __660: 40004 ; 40005 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 40006 if !(uint32(*(*uint8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8 + 1*8)) + uintptr(fc/Tuint32_t(8)))))&(uint32(1)<<(fc&Tuint32_t(7))) == uint32(0)) { 40007 goto __663 40008 } 40009 rrc = DMATCH_NOMATCH 40010 goto RETURN_SWITCH 40011 __663: 40012 ; 40013 40014 goto __658 40015 __658: 40016 i++ 40017 goto __657 40018 goto __659 40019 __659: 40020 ; 40021 __637: 40022 ; 40023 40024 // If Lmax == Lmin we are done. Continue with main loop. 40025 40026 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56)) == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 40027 goto __664 40028 } 40029 goto __11 40030 __664: 40031 ; 40032 40033 // If minimizing, keep testing the rest of the expression and advancing 40034 // the pointer while it matches the class. 40035 40036 if !(reptype == REPTYPE_MIN) { 40037 goto __665 40038 } 40039 40040 if !(utf != 0) { 40041 goto __667 40042 } 40043 40044 __669: 40045 40046 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 40047 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM200 40048 goto MATCH_RECURSE 40049 L_RM200: 40050 ; 40051 40052 if !(rrc != DMATCH_NOMATCH) { 40053 goto __672 40054 } 40055 rrc = rrc 40056 goto RETURN_SWITCH 40057 __672: 40058 ; 40059 40060 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 40061 goto __673 40062 } 40063 rrc = DMATCH_NOMATCH 40064 goto RETURN_SWITCH 40065 __673: 40066 ; 40067 40068 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 40069 goto __674 40070 } 40071 40072 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 40073 goto __675 40074 } 40075 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 40076 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 40077 goto __676 40078 } 40079 return -2 40080 __676: 40081 ; 40082 __675: 40083 ; 40084 40085 rrc = DMATCH_NOMATCH 40086 goto RETURN_SWITCH 40087 40088 __674: 40089 ; 40090 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 40091 if !(fc >= 0xc0) { 40092 goto __677 40093 } 40094 if !(fc&0x20 == Tuint32_t(0)) { 40095 goto __678 40096 } 40097 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 40098 goto __679 40099 __678: 40100 if !(fc&0x10 == Tuint32_t(0)) { 40101 goto __680 40102 } 40103 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 40104 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 40105 goto __681 40106 __680: 40107 if !(fc&0x08 == Tuint32_t(0)) { 40108 goto __682 40109 } 40110 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 40111 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 40112 goto __683 40113 __682: 40114 if !(fc&0x04 == Tuint32_t(0)) { 40115 goto __684 40116 } 40117 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 40118 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 40119 goto __685 40120 __684: 40121 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 40122 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 40123 __685: 40124 ; 40125 __683: 40126 ; 40127 __681: 40128 ; 40129 __679: 40130 ; 40131 __677: 40132 ; 40133 40134 if !(fc > Tuint32_t(255)) { 40135 goto __686 40136 } 40137 40138 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_CLASS) { 40139 goto __688 40140 } 40141 rrc = DMATCH_NOMATCH 40142 goto RETURN_SWITCH 40143 __688: 40144 ; 40145 40146 goto __687 40147 __686: 40148 if !(uint32(*(*uint8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8 + 1*8)) + uintptr(fc/Tuint32_t(8)))))&(uint32(1)<<(fc&Tuint32_t(7))) == uint32(0)) { 40149 goto __689 40150 } 40151 rrc = DMATCH_NOMATCH 40152 goto RETURN_SWITCH 40153 __689: 40154 ; 40155 __687: 40156 ; 40157 40158 goto __670 40159 __670: 40160 goto __669 40161 goto __671 40162 __671: 40163 ; 40164 goto __668 40165 __667: 40166 /* Not UTF mode */ 40167 40168 __690: 40169 40170 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 40171 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM23 40172 goto MATCH_RECURSE 40173 L_RM23: 40174 ; 40175 40176 if !(rrc != DMATCH_NOMATCH) { 40177 goto __693 40178 } 40179 rrc = rrc 40180 goto RETURN_SWITCH 40181 __693: 40182 ; 40183 40184 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 40185 goto __694 40186 } 40187 rrc = DMATCH_NOMATCH 40188 goto RETURN_SWITCH 40189 __694: 40190 ; 40191 40192 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 40193 goto __695 40194 } 40195 40196 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 40197 goto __696 40198 } 40199 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 40200 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 40201 goto __697 40202 } 40203 return -2 40204 __697: 40205 ; 40206 __696: 40207 ; 40208 40209 rrc = DMATCH_NOMATCH 40210 goto RETURN_SWITCH 40211 40212 __695: 40213 ; 40214 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 40215 if !(uint32(*(*uint8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8 + 1*8)) + uintptr(fc/Tuint32_t(8)))))&(uint32(1)<<(fc&Tuint32_t(7))) == uint32(0)) { 40216 goto __698 40217 } 40218 rrc = DMATCH_NOMATCH 40219 goto RETURN_SWITCH 40220 __698: 40221 ; 40222 40223 goto __691 40224 __691: 40225 goto __690 40226 goto __692 40227 __692: 40228 ; 40229 __668: 40230 ; 40231 // Control never gets here 40232 goto __666 40233 __665: 40234 40235 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) = (*Theapframe)(unsafe.Pointer(F)).Feptr 40236 40237 if !(utf != 0) { 40238 goto __699 40239 } 40240 40241 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 40242 __701: 40243 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 40244 goto __703 40245 } 40246 40247 len2 = 1 40248 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 40249 goto __704 40250 } 40251 40252 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 40253 goto __705 40254 } 40255 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 40256 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 40257 goto __706 40258 } 40259 return -2 40260 __706: 40261 ; 40262 __705: 40263 ; 40264 40265 goto __703 40266 __704: 40267 ; 40268 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 40269 if !(fc >= 0xc0) { 40270 goto __707 40271 } 40272 if !(fc&0x20 == Tuint32_t(0)) { 40273 goto __708 40274 } 40275 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 40276 len2++ 40277 goto __709 40278 __708: 40279 if !(fc&0x10 == Tuint32_t(0)) { 40280 goto __710 40281 } 40282 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 40283 len2 = len2 + 2 40284 goto __711 40285 __710: 40286 if !(fc&0x08 == Tuint32_t(0)) { 40287 goto __712 40288 } 40289 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 40290 len2 = len2 + 3 40291 goto __713 40292 __712: 40293 if !(fc&0x04 == Tuint32_t(0)) { 40294 goto __714 40295 } 40296 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 40297 len2 = len2 + 4 40298 goto __715 40299 __714: 40300 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 40301 len2 = len2 + 5 40302 __715: 40303 ; 40304 __713: 40305 ; 40306 __711: 40307 ; 40308 __709: 40309 ; 40310 __707: 40311 ; 40312 40313 if !(fc > Tuint32_t(255)) { 40314 goto __716 40315 } 40316 40317 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_CLASS) { 40318 goto __718 40319 } 40320 goto __703 40321 __718: 40322 ; 40323 goto __717 40324 __716: 40325 if !(uint32(*(*uint8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8 + 1*8)) + uintptr(fc/Tuint32_t(8)))))&(uint32(1)<<(fc&Tuint32_t(7))) == uint32(0)) { 40326 goto __719 40327 } 40328 goto __703 40329 __719: 40330 ; 40331 __717: 40332 ; 40333 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len2) 40334 goto __702 40335 __702: 40336 i++ 40337 goto __701 40338 goto __703 40339 __703: 40340 ; 40341 40342 if !(reptype == REPTYPE_POS) { 40343 goto __720 40344 } 40345 goto __11 40346 __720: 40347 ; // No backtracking 40348 40349 // After \C in UTF mode, Lstart_eptr might be in the middle of a 40350 // Unicode character. Use <= Lstart_eptr to ensure backtracking doesn't 40351 // go too far. 40352 40353 __721: 40354 40355 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 40356 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM201 40357 goto MATCH_RECURSE 40358 L_RM201: 40359 ; 40360 40361 if !(rrc != DMATCH_NOMATCH) { 40362 goto __724 40363 } 40364 rrc = rrc 40365 goto RETURN_SWITCH 40366 __724: 40367 ; 40368 40369 if !(libc.PostDecUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1) <= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 40370 goto __725 40371 } 40372 goto __723 40373 __725: 40374 ; // Tried at original position 40375 __726: 40376 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 40377 goto __727 40378 } 40379 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 40380 goto __726 40381 __727: 40382 ; 40383 goto __722 40384 __722: 40385 goto __721 40386 goto __723 40387 __723: 40388 ; 40389 goto __700 40390 __699: 40391 /* Not UTF mode */ 40392 40393 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 40394 __728: 40395 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 40396 goto __730 40397 } 40398 40399 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 40400 goto __731 40401 } 40402 40403 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 40404 goto __732 40405 } 40406 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 40407 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 40408 goto __733 40409 } 40410 return -2 40411 __733: 40412 ; 40413 __732: 40414 ; 40415 40416 goto __730 40417 __731: 40418 ; 40419 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 40420 if !(uint32(*(*uint8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8 + 1*8)) + uintptr(fc/Tuint32_t(8)))))&(uint32(1)<<(fc&Tuint32_t(7))) == uint32(0)) { 40421 goto __734 40422 } 40423 goto __730 40424 __734: 40425 ; 40426 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 40427 goto __729 40428 __729: 40429 i++ 40430 goto __728 40431 goto __730 40432 __730: 40433 ; 40434 40435 if !(reptype == REPTYPE_POS) { 40436 goto __735 40437 } 40438 goto __11 40439 __735: 40440 ; // No backtracking 40441 40442 __736: 40443 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 40444 goto __737 40445 } 40446 40447 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 40448 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM24 40449 goto MATCH_RECURSE 40450 L_RM24: 40451 ; 40452 40453 if !(rrc != DMATCH_NOMATCH) { 40454 goto __738 40455 } 40456 rrc = rrc 40457 goto RETURN_SWITCH 40458 __738: 40459 ; 40460 40461 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 40462 goto __736 40463 __737: 40464 ; 40465 __700: 40466 ; 40467 40468 rrc = DMATCH_NOMATCH 40469 goto RETURN_SWITCH 40470 40471 __666: 40472 ; 40473 40474 // Control never gets here 40475 40476 // ===================================================================== 40477 // Match an extended character class. In the 8-bit library, this opcode is 40478 // encountered only when UTF-8 mode mode is supported. In the 16-bit and 40479 // 32-bit libraries, codepoints greater than 255 may be encountered even when 40480 // UTF is not supported. 40481 40482 __79: 40483 40484 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8 + 1*8)) = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(1) + uintptr(DLINK_SIZE) // Save for matching 40485 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) // Advance past the item 40486 40487 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) { 40488 case OP_CRSTAR: 40489 goto __740 40490 case OP_CRMINSTAR: 40491 goto __741 40492 case OP_CRPLUS: 40493 goto __742 40494 case OP_CRMINPLUS: 40495 goto __743 40496 case OP_CRQUERY: 40497 goto __744 40498 case OP_CRMINQUERY: 40499 goto __745 40500 case OP_CRPOSSTAR: 40501 goto __746 40502 case OP_CRPOSPLUS: 40503 goto __747 40504 case OP_CRPOSQUERY: 40505 goto __748 40506 40507 case OP_CRRANGE: 40508 goto __749 40509 case OP_CRMINRANGE: 40510 goto __750 40511 case OP_CRPOSRANGE: 40512 goto __751 40513 40514 default: 40515 goto __752 40516 } 40517 goto __739 40518 40519 __740: 40520 __741: 40521 __742: 40522 __743: 40523 __744: 40524 __745: 40525 __746: 40526 __747: 40527 __748: 40528 fc = Tuint32_t(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) - OP_CRSTAR) 40529 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = rep_min[fc] 40530 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = rep_max[fc] 40531 reptype = rep_typ[fc] 40532 goto __739 40533 40534 __749: 40535 __750: 40536 __751: 40537 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))) 40538 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 4)))) 40539 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) == Tuint32_t(0)) { 40540 goto __753 40541 } 40542 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = 4294967295 40543 __753: 40544 ; // Max 0 => infinity 40545 reptype = rep_typ[int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode)))-OP_CRSTAR] 40546 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + 2*DIMM2_SIZE) 40547 goto __739 40548 40549 __752: // No repeat follows 40550 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = libc.AssignPtrUint32(F+56+1*4, Tuint32_t(1)) 40551 goto __739 40552 __739: 40553 ; 40554 40555 // First, ensure the minimum number of matches are present. 40556 40557 i = Tuint32_t(1) 40558 __754: 40559 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 40560 goto __756 40561 } 40562 40563 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 40564 goto __757 40565 } 40566 40567 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 40568 goto __758 40569 } 40570 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 40571 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 40572 goto __759 40573 } 40574 return -2 40575 __759: 40576 ; 40577 __758: 40578 ; 40579 40580 rrc = DMATCH_NOMATCH 40581 goto RETURN_SWITCH 40582 40583 __757: 40584 ; 40585 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 40586 if !(utf != 0 && fc >= 0xc0) { 40587 goto __760 40588 } 40589 if !(fc&0x20 == Tuint32_t(0)) { 40590 goto __761 40591 } 40592 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 40593 goto __762 40594 __761: 40595 if !(fc&0x10 == Tuint32_t(0)) { 40596 goto __763 40597 } 40598 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 40599 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 40600 goto __764 40601 __763: 40602 if !(fc&0x08 == Tuint32_t(0)) { 40603 goto __765 40604 } 40605 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 40606 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 40607 goto __766 40608 __765: 40609 if !(fc&0x04 == Tuint32_t(0)) { 40610 goto __767 40611 } 40612 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 40613 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 40614 goto __768 40615 __767: 40616 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 40617 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 40618 __768: 40619 ; 40620 __766: 40621 ; 40622 __764: 40623 ; 40624 __762: 40625 ; 40626 __760: 40627 ; 40628 40629 if !!(X_pcre2_xclass_8(tls, fc, *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8 + 1*8)), utf) != 0) { 40630 goto __769 40631 } 40632 rrc = DMATCH_NOMATCH 40633 goto RETURN_SWITCH 40634 __769: 40635 ; 40636 40637 goto __755 40638 __755: 40639 i++ 40640 goto __754 40641 goto __756 40642 __756: 40643 ; 40644 40645 // If Lmax == Lmin we can just continue with the main loop. 40646 40647 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56)) == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 40648 goto __770 40649 } 40650 goto __11 40651 __770: 40652 ; 40653 40654 // If minimizing, keep testing the rest of the expression and advancing 40655 // the pointer while it matches the class. 40656 40657 if !(reptype == REPTYPE_MIN) { 40658 goto __771 40659 } 40660 40661 __773: 40662 40663 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 40664 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM100 40665 goto MATCH_RECURSE 40666 L_RM100: 40667 ; 40668 40669 if !(rrc != DMATCH_NOMATCH) { 40670 goto __776 40671 } 40672 rrc = rrc 40673 goto RETURN_SWITCH 40674 __776: 40675 ; 40676 40677 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 40678 goto __777 40679 } 40680 rrc = DMATCH_NOMATCH 40681 goto RETURN_SWITCH 40682 __777: 40683 ; 40684 40685 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 40686 goto __778 40687 } 40688 40689 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 40690 goto __779 40691 } 40692 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 40693 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 40694 goto __780 40695 } 40696 return -2 40697 __780: 40698 ; 40699 __779: 40700 ; 40701 40702 rrc = DMATCH_NOMATCH 40703 goto RETURN_SWITCH 40704 40705 __778: 40706 ; 40707 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 40708 if !(utf != 0 && fc >= 0xc0) { 40709 goto __781 40710 } 40711 if !(fc&0x20 == Tuint32_t(0)) { 40712 goto __782 40713 } 40714 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 40715 goto __783 40716 __782: 40717 if !(fc&0x10 == Tuint32_t(0)) { 40718 goto __784 40719 } 40720 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 40721 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 40722 goto __785 40723 __784: 40724 if !(fc&0x08 == Tuint32_t(0)) { 40725 goto __786 40726 } 40727 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 40728 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 40729 goto __787 40730 __786: 40731 if !(fc&0x04 == Tuint32_t(0)) { 40732 goto __788 40733 } 40734 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 40735 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 40736 goto __789 40737 __788: 40738 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 40739 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 40740 __789: 40741 ; 40742 __787: 40743 ; 40744 __785: 40745 ; 40746 __783: 40747 ; 40748 __781: 40749 ; 40750 40751 if !!(X_pcre2_xclass_8(tls, fc, *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8 + 1*8)), utf) != 0) { 40752 goto __790 40753 } 40754 rrc = DMATCH_NOMATCH 40755 goto RETURN_SWITCH 40756 __790: 40757 ; 40758 40759 goto __774 40760 __774: 40761 goto __773 40762 goto __775 40763 __775: 40764 ; 40765 // Control never gets here 40766 goto __772 40767 __771: 40768 40769 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) = (*Theapframe)(unsafe.Pointer(F)).Feptr 40770 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 40771 __791: 40772 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 40773 goto __793 40774 } 40775 40776 len3 = 1 40777 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 40778 goto __794 40779 } 40780 40781 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 40782 goto __795 40783 } 40784 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 40785 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 40786 goto __796 40787 } 40788 return -2 40789 __796: 40790 ; 40791 __795: 40792 ; 40793 40794 goto __793 40795 __794: 40796 ; 40797 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 40798 if !(utf != 0 && fc >= 0xc0) { 40799 goto __797 40800 } 40801 if !(fc&0x20 == Tuint32_t(0)) { 40802 goto __798 40803 } 40804 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 40805 len3++ 40806 goto __799 40807 __798: 40808 if !(fc&0x10 == Tuint32_t(0)) { 40809 goto __800 40810 } 40811 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 40812 len3 = len3 + 2 40813 goto __801 40814 __800: 40815 if !(fc&0x08 == Tuint32_t(0)) { 40816 goto __802 40817 } 40818 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 40819 len3 = len3 + 3 40820 goto __803 40821 __802: 40822 if !(fc&0x04 == Tuint32_t(0)) { 40823 goto __804 40824 } 40825 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 40826 len3 = len3 + 4 40827 goto __805 40828 __804: 40829 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 40830 len3 = len3 + 5 40831 __805: 40832 ; 40833 __803: 40834 ; 40835 __801: 40836 ; 40837 __799: 40838 ; 40839 __797: 40840 ; 40841 40842 if !!(X_pcre2_xclass_8(tls, fc, *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8 + 1*8)), utf) != 0) { 40843 goto __806 40844 } 40845 goto __793 40846 __806: 40847 ; 40848 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len3) 40849 goto __792 40850 __792: 40851 i++ 40852 goto __791 40853 goto __793 40854 __793: 40855 ; 40856 40857 if !(reptype == REPTYPE_POS) { 40858 goto __807 40859 } 40860 goto __11 40861 __807: 40862 ; // No backtracking 40863 40864 // After \C in UTF mode, Lstart_eptr might be in the middle of a 40865 // Unicode character. Use <= Lstart_eptr to ensure backtracking doesn't 40866 // go too far. 40867 40868 __808: 40869 40870 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 40871 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM101 40872 goto MATCH_RECURSE 40873 L_RM101: 40874 ; 40875 40876 if !(rrc != DMATCH_NOMATCH) { 40877 goto __811 40878 } 40879 rrc = rrc 40880 goto RETURN_SWITCH 40881 __811: 40882 ; 40883 40884 if !(libc.PostDecUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1) <= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 40885 goto __812 40886 } 40887 goto __810 40888 __812: 40889 ; // Tried at original position 40890 if !(utf != 0) { 40891 goto __813 40892 } 40893 __814: 40894 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 40895 goto __815 40896 } 40897 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 40898 goto __814 40899 __815: 40900 ; 40901 __813: 40902 ; 40903 goto __809 40904 __809: 40905 goto __808 40906 goto __810 40907 __810: 40908 ; 40909 rrc = DMATCH_NOMATCH 40910 goto RETURN_SWITCH 40911 40912 __772: 40913 ; 40914 40915 // Control never gets here 40916 40917 // ===================================================================== 40918 // Match various character types when PCRE2_UCP is not set. These opcodes 40919 // are not generated when PCRE2_UCP is set - instead appropriate property 40920 // tests are compiled. 40921 40922 __80: 40923 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 40924 goto __816 40925 } 40926 40927 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 40928 goto __817 40929 } 40930 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 40931 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 40932 goto __818 40933 } 40934 return -2 40935 __818: 40936 ; 40937 __817: 40938 ; 40939 40940 rrc = DMATCH_NOMATCH 40941 goto RETURN_SWITCH 40942 40943 __816: 40944 ; 40945 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 40946 if !(utf != 0 && fc >= 0xc0) { 40947 goto __819 40948 } 40949 if !(fc&0x20 == Tuint32_t(0)) { 40950 goto __820 40951 } 40952 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 40953 goto __821 40954 __820: 40955 if !(fc&0x10 == Tuint32_t(0)) { 40956 goto __822 40957 } 40958 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 40959 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 40960 goto __823 40961 __822: 40962 if !(fc&0x08 == Tuint32_t(0)) { 40963 goto __824 40964 } 40965 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 40966 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 40967 goto __825 40968 __824: 40969 if !(fc&0x04 == Tuint32_t(0)) { 40970 goto __826 40971 } 40972 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 40973 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 40974 goto __827 40975 __826: 40976 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 40977 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 40978 __827: 40979 ; 40980 __825: 40981 ; 40982 __823: 40983 ; 40984 __821: 40985 ; 40986 __819: 40987 ; 40988 40989 if !(fc <= 255 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_digit != 0) { 40990 goto __828 40991 } 40992 rrc = DMATCH_NOMATCH 40993 goto RETURN_SWITCH 40994 __828: 40995 ; 40996 40997 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 40998 goto __13 40999 41000 __81: 41001 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 41002 goto __829 41003 } 41004 41005 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 41006 goto __830 41007 } 41008 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 41009 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 41010 goto __831 41011 } 41012 return -2 41013 __831: 41014 ; 41015 __830: 41016 ; 41017 41018 rrc = DMATCH_NOMATCH 41019 goto RETURN_SWITCH 41020 41021 __829: 41022 ; 41023 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 41024 if !(utf != 0 && fc >= 0xc0) { 41025 goto __832 41026 } 41027 if !(fc&0x20 == Tuint32_t(0)) { 41028 goto __833 41029 } 41030 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 41031 goto __834 41032 __833: 41033 if !(fc&0x10 == Tuint32_t(0)) { 41034 goto __835 41035 } 41036 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 41037 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 41038 goto __836 41039 __835: 41040 if !(fc&0x08 == Tuint32_t(0)) { 41041 goto __837 41042 } 41043 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 41044 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 41045 goto __838 41046 __837: 41047 if !(fc&0x04 == Tuint32_t(0)) { 41048 goto __839 41049 } 41050 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 41051 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 41052 goto __840 41053 __839: 41054 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 41055 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 41056 __840: 41057 ; 41058 __838: 41059 ; 41060 __836: 41061 ; 41062 __834: 41063 ; 41064 __832: 41065 ; 41066 41067 if !(!(fc <= 255) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_digit == 0) { 41068 goto __841 41069 } 41070 rrc = DMATCH_NOMATCH 41071 goto RETURN_SWITCH 41072 __841: 41073 ; 41074 41075 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 41076 goto __13 41077 41078 __82: 41079 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 41080 goto __842 41081 } 41082 41083 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 41084 goto __843 41085 } 41086 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 41087 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 41088 goto __844 41089 } 41090 return -2 41091 __844: 41092 ; 41093 __843: 41094 ; 41095 41096 rrc = DMATCH_NOMATCH 41097 goto RETURN_SWITCH 41098 41099 __842: 41100 ; 41101 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 41102 if !(utf != 0 && fc >= 0xc0) { 41103 goto __845 41104 } 41105 if !(fc&0x20 == Tuint32_t(0)) { 41106 goto __846 41107 } 41108 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 41109 goto __847 41110 __846: 41111 if !(fc&0x10 == Tuint32_t(0)) { 41112 goto __848 41113 } 41114 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 41115 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 41116 goto __849 41117 __848: 41118 if !(fc&0x08 == Tuint32_t(0)) { 41119 goto __850 41120 } 41121 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 41122 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 41123 goto __851 41124 __850: 41125 if !(fc&0x04 == Tuint32_t(0)) { 41126 goto __852 41127 } 41128 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 41129 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 41130 goto __853 41131 __852: 41132 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 41133 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 41134 __853: 41135 ; 41136 __851: 41137 ; 41138 __849: 41139 ; 41140 __847: 41141 ; 41142 __845: 41143 ; 41144 41145 if !(fc <= 255 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_space != 0) { 41146 goto __854 41147 } 41148 rrc = DMATCH_NOMATCH 41149 goto RETURN_SWITCH 41150 __854: 41151 ; 41152 41153 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 41154 goto __13 41155 41156 __83: 41157 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 41158 goto __855 41159 } 41160 41161 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 41162 goto __856 41163 } 41164 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 41165 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 41166 goto __857 41167 } 41168 return -2 41169 __857: 41170 ; 41171 __856: 41172 ; 41173 41174 rrc = DMATCH_NOMATCH 41175 goto RETURN_SWITCH 41176 41177 __855: 41178 ; 41179 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 41180 if !(utf != 0 && fc >= 0xc0) { 41181 goto __858 41182 } 41183 if !(fc&0x20 == Tuint32_t(0)) { 41184 goto __859 41185 } 41186 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 41187 goto __860 41188 __859: 41189 if !(fc&0x10 == Tuint32_t(0)) { 41190 goto __861 41191 } 41192 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 41193 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 41194 goto __862 41195 __861: 41196 if !(fc&0x08 == Tuint32_t(0)) { 41197 goto __863 41198 } 41199 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 41200 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 41201 goto __864 41202 __863: 41203 if !(fc&0x04 == Tuint32_t(0)) { 41204 goto __865 41205 } 41206 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 41207 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 41208 goto __866 41209 __865: 41210 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 41211 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 41212 __866: 41213 ; 41214 __864: 41215 ; 41216 __862: 41217 ; 41218 __860: 41219 ; 41220 __858: 41221 ; 41222 41223 if !(!(fc <= 255) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_space == 0) { 41224 goto __867 41225 } 41226 rrc = DMATCH_NOMATCH 41227 goto RETURN_SWITCH 41228 __867: 41229 ; 41230 41231 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 41232 goto __13 41233 41234 __84: 41235 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 41236 goto __868 41237 } 41238 41239 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 41240 goto __869 41241 } 41242 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 41243 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 41244 goto __870 41245 } 41246 return -2 41247 __870: 41248 ; 41249 __869: 41250 ; 41251 41252 rrc = DMATCH_NOMATCH 41253 goto RETURN_SWITCH 41254 41255 __868: 41256 ; 41257 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 41258 if !(utf != 0 && fc >= 0xc0) { 41259 goto __871 41260 } 41261 if !(fc&0x20 == Tuint32_t(0)) { 41262 goto __872 41263 } 41264 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 41265 goto __873 41266 __872: 41267 if !(fc&0x10 == Tuint32_t(0)) { 41268 goto __874 41269 } 41270 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 41271 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 41272 goto __875 41273 __874: 41274 if !(fc&0x08 == Tuint32_t(0)) { 41275 goto __876 41276 } 41277 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 41278 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 41279 goto __877 41280 __876: 41281 if !(fc&0x04 == Tuint32_t(0)) { 41282 goto __878 41283 } 41284 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 41285 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 41286 goto __879 41287 __878: 41288 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 41289 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 41290 __879: 41291 ; 41292 __877: 41293 ; 41294 __875: 41295 ; 41296 __873: 41297 ; 41298 __871: 41299 ; 41300 41301 if !(fc <= 255 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_word != 0) { 41302 goto __880 41303 } 41304 rrc = DMATCH_NOMATCH 41305 goto RETURN_SWITCH 41306 __880: 41307 ; 41308 41309 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 41310 goto __13 41311 41312 __85: 41313 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 41314 goto __881 41315 } 41316 41317 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 41318 goto __882 41319 } 41320 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 41321 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 41322 goto __883 41323 } 41324 return -2 41325 __883: 41326 ; 41327 __882: 41328 ; 41329 41330 rrc = DMATCH_NOMATCH 41331 goto RETURN_SWITCH 41332 41333 __881: 41334 ; 41335 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 41336 if !(utf != 0 && fc >= 0xc0) { 41337 goto __884 41338 } 41339 if !(fc&0x20 == Tuint32_t(0)) { 41340 goto __885 41341 } 41342 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 41343 goto __886 41344 __885: 41345 if !(fc&0x10 == Tuint32_t(0)) { 41346 goto __887 41347 } 41348 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 41349 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 41350 goto __888 41351 __887: 41352 if !(fc&0x08 == Tuint32_t(0)) { 41353 goto __889 41354 } 41355 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 41356 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 41357 goto __890 41358 __889: 41359 if !(fc&0x04 == Tuint32_t(0)) { 41360 goto __891 41361 } 41362 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 41363 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 41364 goto __892 41365 __891: 41366 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 41367 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 41368 __892: 41369 ; 41370 __890: 41371 ; 41372 __888: 41373 ; 41374 __886: 41375 ; 41376 __884: 41377 ; 41378 41379 if !(!(fc <= 255) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_word == 0) { 41380 goto __893 41381 } 41382 rrc = DMATCH_NOMATCH 41383 goto RETURN_SWITCH 41384 __893: 41385 ; 41386 41387 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 41388 goto __13 41389 41390 __86: 41391 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 41392 goto __894 41393 } 41394 41395 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 41396 goto __895 41397 } 41398 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 41399 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 41400 goto __896 41401 } 41402 return -2 41403 __896: 41404 ; 41405 __895: 41406 ; 41407 41408 rrc = DMATCH_NOMATCH 41409 goto RETURN_SWITCH 41410 41411 __894: 41412 ; 41413 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 41414 if !(utf != 0 && fc >= 0xc0) { 41415 goto __897 41416 } 41417 if !(fc&0x20 == Tuint32_t(0)) { 41418 goto __898 41419 } 41420 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 41421 goto __899 41422 __898: 41423 if !(fc&0x10 == Tuint32_t(0)) { 41424 goto __900 41425 } 41426 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 41427 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 41428 goto __901 41429 __900: 41430 if !(fc&0x08 == Tuint32_t(0)) { 41431 goto __902 41432 } 41433 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 41434 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 41435 goto __903 41436 __902: 41437 if !(fc&0x04 == Tuint32_t(0)) { 41438 goto __904 41439 } 41440 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 41441 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 41442 goto __905 41443 __904: 41444 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 41445 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 41446 __905: 41447 ; 41448 __903: 41449 ; 41450 __901: 41451 ; 41452 __899: 41453 ; 41454 __897: 41455 ; 41456 41457 switch fc { 41458 default: 41459 goto __907 41460 41461 case Tuint32_t('\015'): 41462 goto __908 41463 41464 case Tuint32_t('\012'): 41465 goto __909 41466 41467 case Tuint32_t('\013'): 41468 goto __910 41469 case Tuint32_t('\014'): 41470 goto __911 41471 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 41472 goto __912 41473 case Tuint32_t(0x2028): 41474 goto __913 41475 case Tuint32_t(0x2029): 41476 goto __914 41477 } 41478 goto __906 41479 41480 __907: 41481 rrc = DMATCH_NOMATCH 41482 goto RETURN_SWITCH 41483 41484 __908: 41485 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 41486 goto __915 41487 } 41488 41489 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 41490 goto __917 41491 } 41492 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 41493 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 41494 goto __918 41495 } 41496 return -2 41497 __918: 41498 ; 41499 __917: 41500 ; 41501 41502 goto __916 41503 __915: 41504 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == '\012') { 41505 goto __919 41506 } 41507 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 41508 __919: 41509 ; 41510 __916: 41511 ; 41512 goto __906 41513 41514 __909: 41515 goto __906 41516 41517 __910: 41518 __911: 41519 __912: 41520 __913: 41521 __914: 41522 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fbsr_convention) == DPCRE2_BSR_ANYCRLF) { 41523 goto __920 41524 } 41525 rrc = DMATCH_NOMATCH 41526 goto RETURN_SWITCH 41527 __920: 41528 ; 41529 41530 goto __906 41531 __906: 41532 ; 41533 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 41534 goto __13 41535 41536 __87: 41537 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 41538 goto __921 41539 } 41540 41541 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 41542 goto __922 41543 } 41544 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 41545 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 41546 goto __923 41547 } 41548 return -2 41549 __923: 41550 ; 41551 __922: 41552 ; 41553 41554 rrc = DMATCH_NOMATCH 41555 goto RETURN_SWITCH 41556 41557 __921: 41558 ; 41559 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 41560 if !(utf != 0 && fc >= 0xc0) { 41561 goto __924 41562 } 41563 if !(fc&0x20 == Tuint32_t(0)) { 41564 goto __925 41565 } 41566 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 41567 goto __926 41568 __925: 41569 if !(fc&0x10 == Tuint32_t(0)) { 41570 goto __927 41571 } 41572 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 41573 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 41574 goto __928 41575 __927: 41576 if !(fc&0x08 == Tuint32_t(0)) { 41577 goto __929 41578 } 41579 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 41580 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 41581 goto __930 41582 __929: 41583 if !(fc&0x04 == Tuint32_t(0)) { 41584 goto __931 41585 } 41586 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 41587 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 41588 goto __932 41589 __931: 41590 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 41591 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 41592 __932: 41593 ; 41594 __930: 41595 ; 41596 __928: 41597 ; 41598 __926: 41599 ; 41600 __924: 41601 ; 41602 41603 switch fc { 41604 case Tuint32_t('\011'): 41605 goto __934 41606 case Tuint32_t('\040'): 41607 goto __935 41608 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 41609 goto __936 41610 case Tuint32_t(0x1680): 41611 goto __937 /* OGHAM SPACE MARK */ 41612 case Tuint32_t(0x180e): 41613 goto __938 /* MONGOLIAN VOWEL SEPARATOR */ 41614 case Tuint32_t(0x2000): 41615 goto __939 /* EN QUAD */ 41616 case Tuint32_t(0x2001): 41617 goto __940 /* EM QUAD */ 41618 case Tuint32_t(0x2002): 41619 goto __941 /* EN SPACE */ 41620 case Tuint32_t(0x2003): 41621 goto __942 /* EM SPACE */ 41622 case Tuint32_t(0x2004): 41623 goto __943 /* THREE-PER-EM SPACE */ 41624 case Tuint32_t(0x2005): 41625 goto __944 /* FOUR-PER-EM SPACE */ 41626 case Tuint32_t(0x2006): 41627 goto __945 /* SIX-PER-EM SPACE */ 41628 case Tuint32_t(0x2007): 41629 goto __946 /* FIGURE SPACE */ 41630 case Tuint32_t(0x2008): 41631 goto __947 /* PUNCTUATION SPACE */ 41632 case Tuint32_t(0x2009): 41633 goto __948 /* THIN SPACE */ 41634 case Tuint32_t(0x200A): 41635 goto __949 /* HAIR SPACE */ 41636 case Tuint32_t(0x202f): 41637 goto __950 /* NARROW NO-BREAK SPACE */ 41638 case Tuint32_t(0x205f): 41639 goto __951 /* MEDIUM MATHEMATICAL SPACE */ 41640 case Tuint32_t(0x3000): 41641 goto __952 // Byte and multibyte cases 41642 default: 41643 goto __953 41644 } 41645 goto __933 41646 41647 __934: 41648 __935: 41649 __936: 41650 __937: /* OGHAM SPACE MARK */ 41651 __938: /* MONGOLIAN VOWEL SEPARATOR */ 41652 __939: /* EN QUAD */ 41653 __940: /* EM QUAD */ 41654 __941: /* EN SPACE */ 41655 __942: /* EM SPACE */ 41656 __943: /* THREE-PER-EM SPACE */ 41657 __944: /* FOUR-PER-EM SPACE */ 41658 __945: /* SIX-PER-EM SPACE */ 41659 __946: /* FIGURE SPACE */ 41660 __947: /* PUNCTUATION SPACE */ 41661 __948: /* THIN SPACE */ 41662 __949: /* HAIR SPACE */ 41663 __950: /* NARROW NO-BREAK SPACE */ 41664 __951: /* MEDIUM MATHEMATICAL SPACE */ 41665 __952: 41666 rrc = DMATCH_NOMATCH 41667 goto RETURN_SWITCH 41668 // Byte and multibyte cases 41669 __953: 41670 goto __933 41671 __933: 41672 ; 41673 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 41674 goto __13 41675 41676 __88: 41677 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 41678 goto __954 41679 } 41680 41681 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 41682 goto __955 41683 } 41684 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 41685 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 41686 goto __956 41687 } 41688 return -2 41689 __956: 41690 ; 41691 __955: 41692 ; 41693 41694 rrc = DMATCH_NOMATCH 41695 goto RETURN_SWITCH 41696 41697 __954: 41698 ; 41699 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 41700 if !(utf != 0 && fc >= 0xc0) { 41701 goto __957 41702 } 41703 if !(fc&0x20 == Tuint32_t(0)) { 41704 goto __958 41705 } 41706 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 41707 goto __959 41708 __958: 41709 if !(fc&0x10 == Tuint32_t(0)) { 41710 goto __960 41711 } 41712 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 41713 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 41714 goto __961 41715 __960: 41716 if !(fc&0x08 == Tuint32_t(0)) { 41717 goto __962 41718 } 41719 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 41720 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 41721 goto __963 41722 __962: 41723 if !(fc&0x04 == Tuint32_t(0)) { 41724 goto __964 41725 } 41726 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 41727 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 41728 goto __965 41729 __964: 41730 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 41731 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 41732 __965: 41733 ; 41734 __963: 41735 ; 41736 __961: 41737 ; 41738 __959: 41739 ; 41740 __957: 41741 ; 41742 41743 switch fc { 41744 case Tuint32_t('\011'): 41745 goto __967 41746 case Tuint32_t('\040'): 41747 goto __968 41748 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 41749 goto __969 41750 case Tuint32_t(0x1680): 41751 goto __970 /* OGHAM SPACE MARK */ 41752 case Tuint32_t(0x180e): 41753 goto __971 /* MONGOLIAN VOWEL SEPARATOR */ 41754 case Tuint32_t(0x2000): 41755 goto __972 /* EN QUAD */ 41756 case Tuint32_t(0x2001): 41757 goto __973 /* EM QUAD */ 41758 case Tuint32_t(0x2002): 41759 goto __974 /* EN SPACE */ 41760 case Tuint32_t(0x2003): 41761 goto __975 /* EM SPACE */ 41762 case Tuint32_t(0x2004): 41763 goto __976 /* THREE-PER-EM SPACE */ 41764 case Tuint32_t(0x2005): 41765 goto __977 /* FOUR-PER-EM SPACE */ 41766 case Tuint32_t(0x2006): 41767 goto __978 /* SIX-PER-EM SPACE */ 41768 case Tuint32_t(0x2007): 41769 goto __979 /* FIGURE SPACE */ 41770 case Tuint32_t(0x2008): 41771 goto __980 /* PUNCTUATION SPACE */ 41772 case Tuint32_t(0x2009): 41773 goto __981 /* THIN SPACE */ 41774 case Tuint32_t(0x200A): 41775 goto __982 /* HAIR SPACE */ 41776 case Tuint32_t(0x202f): 41777 goto __983 /* NARROW NO-BREAK SPACE */ 41778 case Tuint32_t(0x205f): 41779 goto __984 /* MEDIUM MATHEMATICAL SPACE */ 41780 case Tuint32_t(0x3000): 41781 goto __985 // Byte and multibyte cases 41782 default: 41783 goto __986 41784 } 41785 goto __966 41786 41787 __967: 41788 __968: 41789 __969: 41790 __970: /* OGHAM SPACE MARK */ 41791 __971: /* MONGOLIAN VOWEL SEPARATOR */ 41792 __972: /* EN QUAD */ 41793 __973: /* EM QUAD */ 41794 __974: /* EN SPACE */ 41795 __975: /* EM SPACE */ 41796 __976: /* THREE-PER-EM SPACE */ 41797 __977: /* FOUR-PER-EM SPACE */ 41798 __978: /* SIX-PER-EM SPACE */ 41799 __979: /* FIGURE SPACE */ 41800 __980: /* PUNCTUATION SPACE */ 41801 __981: /* THIN SPACE */ 41802 __982: /* HAIR SPACE */ 41803 __983: /* NARROW NO-BREAK SPACE */ 41804 __984: /* MEDIUM MATHEMATICAL SPACE */ 41805 __985: 41806 goto __966 // Byte and multibyte cases 41807 __986: 41808 rrc = DMATCH_NOMATCH 41809 goto RETURN_SWITCH 41810 41811 __966: 41812 ; 41813 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 41814 goto __13 41815 41816 __89: 41817 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 41818 goto __987 41819 } 41820 41821 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 41822 goto __988 41823 } 41824 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 41825 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 41826 goto __989 41827 } 41828 return -2 41829 __989: 41830 ; 41831 __988: 41832 ; 41833 41834 rrc = DMATCH_NOMATCH 41835 goto RETURN_SWITCH 41836 41837 __987: 41838 ; 41839 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 41840 if !(utf != 0 && fc >= 0xc0) { 41841 goto __990 41842 } 41843 if !(fc&0x20 == Tuint32_t(0)) { 41844 goto __991 41845 } 41846 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 41847 goto __992 41848 __991: 41849 if !(fc&0x10 == Tuint32_t(0)) { 41850 goto __993 41851 } 41852 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 41853 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 41854 goto __994 41855 __993: 41856 if !(fc&0x08 == Tuint32_t(0)) { 41857 goto __995 41858 } 41859 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 41860 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 41861 goto __996 41862 __995: 41863 if !(fc&0x04 == Tuint32_t(0)) { 41864 goto __997 41865 } 41866 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 41867 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 41868 goto __998 41869 __997: 41870 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 41871 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 41872 __998: 41873 ; 41874 __996: 41875 ; 41876 __994: 41877 ; 41878 __992: 41879 ; 41880 __990: 41881 ; 41882 41883 switch fc { 41884 case Tuint32_t('\012'): 41885 goto __1000 41886 case Tuint32_t('\013'): 41887 goto __1001 41888 case Tuint32_t('\014'): 41889 goto __1002 41890 case Tuint32_t('\015'): 41891 goto __1003 41892 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 41893 goto __1004 41894 case Tuint32_t(0x2028): 41895 goto __1005 /* LINE SEPARATOR */ 41896 case Tuint32_t(0x2029): 41897 goto __1006 41898 default: 41899 goto __1007 41900 } 41901 goto __999 41902 41903 __1000: 41904 __1001: 41905 __1002: 41906 __1003: 41907 __1004: 41908 __1005: /* LINE SEPARATOR */ 41909 __1006: 41910 rrc = DMATCH_NOMATCH 41911 goto RETURN_SWITCH 41912 41913 __1007: 41914 goto __999 41915 __999: 41916 ; 41917 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 41918 goto __13 41919 41920 __90: 41921 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 41922 goto __1008 41923 } 41924 41925 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 41926 goto __1009 41927 } 41928 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 41929 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 41930 goto __1010 41931 } 41932 return -2 41933 __1010: 41934 ; 41935 __1009: 41936 ; 41937 41938 rrc = DMATCH_NOMATCH 41939 goto RETURN_SWITCH 41940 41941 __1008: 41942 ; 41943 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 41944 if !(utf != 0 && fc >= 0xc0) { 41945 goto __1011 41946 } 41947 if !(fc&0x20 == Tuint32_t(0)) { 41948 goto __1012 41949 } 41950 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 41951 goto __1013 41952 __1012: 41953 if !(fc&0x10 == Tuint32_t(0)) { 41954 goto __1014 41955 } 41956 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 41957 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 41958 goto __1015 41959 __1014: 41960 if !(fc&0x08 == Tuint32_t(0)) { 41961 goto __1016 41962 } 41963 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 41964 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 41965 goto __1017 41966 __1016: 41967 if !(fc&0x04 == Tuint32_t(0)) { 41968 goto __1018 41969 } 41970 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 41971 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 41972 goto __1019 41973 __1018: 41974 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 41975 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 41976 __1019: 41977 ; 41978 __1017: 41979 ; 41980 __1015: 41981 ; 41982 __1013: 41983 ; 41984 __1011: 41985 ; 41986 41987 switch fc { 41988 case Tuint32_t('\012'): 41989 goto __1021 41990 case Tuint32_t('\013'): 41991 goto __1022 41992 case Tuint32_t('\014'): 41993 goto __1023 41994 case Tuint32_t('\015'): 41995 goto __1024 41996 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 41997 goto __1025 41998 case Tuint32_t(0x2028): 41999 goto __1026 /* LINE SEPARATOR */ 42000 case Tuint32_t(0x2029): 42001 goto __1027 42002 default: 42003 goto __1028 42004 } 42005 goto __1020 42006 42007 __1021: 42008 __1022: 42009 __1023: 42010 __1024: 42011 __1025: 42012 __1026: /* LINE SEPARATOR */ 42013 __1027: 42014 goto __1020 42015 __1028: 42016 rrc = DMATCH_NOMATCH 42017 goto RETURN_SWITCH 42018 42019 __1020: 42020 ; 42021 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 42022 goto __13 42023 42024 // ===================================================================== 42025 // Check the next character by Unicode property. We will get here only 42026 // if the support is in the binary; otherwise a compile-time error occurs. 42027 42028 __91: 42029 __92: 42030 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 42031 goto __1029 42032 } 42033 42034 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 42035 goto __1030 42036 } 42037 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 42038 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 42039 goto __1031 42040 } 42041 return -2 42042 __1031: 42043 ; 42044 __1030: 42045 ; 42046 42047 rrc = DMATCH_NOMATCH 42048 goto RETURN_SWITCH 42049 42050 __1029: 42051 ; 42052 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 42053 if !(utf != 0 && fc >= 0xc0) { 42054 goto __1032 42055 } 42056 if !(fc&0x20 == Tuint32_t(0)) { 42057 goto __1033 42058 } 42059 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 42060 goto __1034 42061 __1033: 42062 if !(fc&0x10 == Tuint32_t(0)) { 42063 goto __1035 42064 } 42065 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 42066 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 42067 goto __1036 42068 __1035: 42069 if !(fc&0x08 == Tuint32_t(0)) { 42070 goto __1037 42071 } 42072 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 42073 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 42074 goto __1038 42075 __1037: 42076 if !(fc&0x04 == Tuint32_t(0)) { 42077 goto __1039 42078 } 42079 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 42080 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 42081 goto __1040 42082 __1039: 42083 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 42084 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 42085 __1040: 42086 ; 42087 __1038: 42088 ; 42089 __1036: 42090 ; 42091 __1034: 42092 ; 42093 __1032: 42094 ; 42095 42096 prop = uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12 42097 notmatch = libc.Bool32(int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_NOTPROP) 42098 42099 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1))) { 42100 case DPT_ANY: 42101 goto __1042 42102 42103 case DPT_LAMP: 42104 goto __1043 42105 42106 case DPT_GC: 42107 goto __1044 42108 42109 case DPT_PC: 42110 goto __1045 42111 42112 case DPT_SC: 42113 goto __1046 42114 42115 case DPT_SCX: 42116 goto __1047 42117 42118 // These are specials 42119 42120 case DPT_ALNUM: 42121 goto __1048 42122 42123 // Perl space used to exclude VT, but from Perl 5.18 it is included, 42124 // which means that Perl space and POSIX space are now identical. PCRE 42125 // was changed at release 8.34. 42126 42127 case DPT_SPACE: 42128 goto __1049 // Perl space 42129 case DPT_PXSPACE: 42130 goto __1050 42131 42132 case DPT_WORD: 42133 goto __1051 42134 42135 case DPT_CLIST: 42136 goto __1052 42137 42138 case DPT_UCNC: 42139 goto __1053 42140 42141 case DPT_BIDICL: 42142 goto __1054 42143 42144 case DPT_BOOL: 42145 goto __1055 42146 42147 // This should never occur 42148 42149 default: 42150 goto __1056 42151 } 42152 goto __1041 42153 42154 __1042: 42155 if !(notmatch != 0) { 42156 goto __1057 42157 } 42158 rrc = DMATCH_NOMATCH 42159 goto RETURN_SWITCH 42160 __1057: 42161 ; 42162 42163 goto __1041 42164 42165 __1043: 42166 if !(libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) == ucp_Lu || int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) == ucp_Ll || int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) == ucp_Lt) == notmatch) { 42167 goto __1058 42168 } 42169 rrc = DMATCH_NOMATCH 42170 goto RETURN_SWITCH 42171 __1058: 42172 ; 42173 42174 goto __1041 42175 42176 __1044: 42177 if !(libc.Bool32(Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))) == X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype]) == notmatch) { 42178 goto __1059 42179 } 42180 rrc = DMATCH_NOMATCH 42181 goto RETURN_SWITCH 42182 __1059: 42183 ; 42184 42185 goto __1041 42186 42187 __1045: 42188 if !(libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))) == int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype)) == notmatch) { 42189 goto __1060 42190 } 42191 rrc = DMATCH_NOMATCH 42192 goto RETURN_SWITCH 42193 __1060: 42194 ; 42195 42196 goto __1041 42197 42198 __1046: 42199 if !(libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))) == int32((*Tucd_record)(unsafe.Pointer(prop)).Fscript)) == notmatch) { 42200 goto __1061 42201 } 42202 rrc = DMATCH_NOMATCH 42203 goto RETURN_SWITCH 42204 __1061: 42205 ; 42206 42207 goto __1041 42208 42209 __1047: 42210 42211 ok = libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))) == int32((*Tucd_record)(unsafe.Pointer(prop)).Fscript) || *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_script_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop)).Fscriptx_bidiclass)&DUCD_SCRIPTX_MASK)*4 + uintptr(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))/32)*4))&(uint32(1)<<(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))%32)) != Tuint32_t(0)) 42212 if !(ok == notmatch) { 42213 goto __1062 42214 } 42215 rrc = DMATCH_NOMATCH 42216 goto RETURN_SWITCH 42217 __1062: 42218 ; 42219 42220 goto __1041 42221 42222 // These are specials 42223 42224 __1048: 42225 if !(libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_L || X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_N) == notmatch) { 42226 goto __1063 42227 } 42228 rrc = DMATCH_NOMATCH 42229 goto RETURN_SWITCH 42230 __1063: 42231 ; 42232 42233 goto __1041 42234 42235 // Perl space used to exclude VT, but from Perl 5.18 it is included, 42236 // which means that Perl space and POSIX space are now identical. PCRE 42237 // was changed at release 8.34. 42238 42239 __1049: // Perl space 42240 __1050: // POSIX space 42241 switch fc { 42242 case Tuint32_t('\011'): 42243 goto __1065 42244 case Tuint32_t('\040'): 42245 goto __1066 42246 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 42247 goto __1067 42248 case Tuint32_t(0x1680): 42249 goto __1068 /* OGHAM SPACE MARK */ 42250 case Tuint32_t(0x180e): 42251 goto __1069 /* MONGOLIAN VOWEL SEPARATOR */ 42252 case Tuint32_t(0x2000): 42253 goto __1070 /* EN QUAD */ 42254 case Tuint32_t(0x2001): 42255 goto __1071 /* EM QUAD */ 42256 case Tuint32_t(0x2002): 42257 goto __1072 /* EN SPACE */ 42258 case Tuint32_t(0x2003): 42259 goto __1073 /* EM SPACE */ 42260 case Tuint32_t(0x2004): 42261 goto __1074 /* THREE-PER-EM SPACE */ 42262 case Tuint32_t(0x2005): 42263 goto __1075 /* FOUR-PER-EM SPACE */ 42264 case Tuint32_t(0x2006): 42265 goto __1076 /* SIX-PER-EM SPACE */ 42266 case Tuint32_t(0x2007): 42267 goto __1077 /* FIGURE SPACE */ 42268 case Tuint32_t(0x2008): 42269 goto __1078 /* PUNCTUATION SPACE */ 42270 case Tuint32_t(0x2009): 42271 goto __1079 /* THIN SPACE */ 42272 case Tuint32_t(0x200A): 42273 goto __1080 /* HAIR SPACE */ 42274 case Tuint32_t(0x202f): 42275 goto __1081 /* NARROW NO-BREAK SPACE */ 42276 case Tuint32_t(0x205f): 42277 goto __1082 /* MEDIUM MATHEMATICAL SPACE */ 42278 case Tuint32_t(0x3000): 42279 goto __1083 42280 case Tuint32_t('\012'): 42281 goto __1084 42282 case Tuint32_t('\013'): 42283 goto __1085 42284 case Tuint32_t('\014'): 42285 goto __1086 42286 case Tuint32_t('\015'): 42287 goto __1087 42288 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 42289 goto __1088 42290 case Tuint32_t(0x2028): 42291 goto __1089 /* LINE SEPARATOR */ 42292 case Tuint32_t(0x2029): 42293 goto __1090 42294 42295 default: 42296 goto __1091 42297 } 42298 goto __1064 42299 42300 __1065: 42301 __1066: 42302 __1067: 42303 __1068: /* OGHAM SPACE MARK */ 42304 __1069: /* MONGOLIAN VOWEL SEPARATOR */ 42305 __1070: /* EN QUAD */ 42306 __1071: /* EM QUAD */ 42307 __1072: /* EN SPACE */ 42308 __1073: /* EM SPACE */ 42309 __1074: /* THREE-PER-EM SPACE */ 42310 __1075: /* FOUR-PER-EM SPACE */ 42311 __1076: /* SIX-PER-EM SPACE */ 42312 __1077: /* FIGURE SPACE */ 42313 __1078: /* PUNCTUATION SPACE */ 42314 __1079: /* THIN SPACE */ 42315 __1080: /* HAIR SPACE */ 42316 __1081: /* NARROW NO-BREAK SPACE */ 42317 __1082: /* MEDIUM MATHEMATICAL SPACE */ 42318 __1083: 42319 __1084: 42320 __1085: 42321 __1086: 42322 __1087: 42323 __1088: 42324 __1089: /* LINE SEPARATOR */ 42325 __1090: 42326 if !(notmatch != 0) { 42327 goto __1092 42328 } 42329 rrc = DMATCH_NOMATCH 42330 goto RETURN_SWITCH 42331 __1092: 42332 ; 42333 42334 goto __1064 42335 42336 __1091: 42337 if !(libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_Z) == notmatch) { 42338 goto __1093 42339 } 42340 rrc = DMATCH_NOMATCH 42341 goto RETURN_SWITCH 42342 __1093: 42343 ; 42344 42345 goto __1064 42346 __1064: 42347 ; 42348 goto __1041 42349 42350 __1051: 42351 if !(libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_L || X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_N || fc == Tuint32_t('\137')) == notmatch) { 42352 goto __1094 42353 } 42354 rrc = DMATCH_NOMATCH 42355 goto RETURN_SWITCH 42356 __1094: 42357 ; 42358 42359 goto __1041 42360 42361 __1052: 42362 cp = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))*4 42363 __1095: 42364 42365 if !(fc < *(*Tuint32_t)(unsafe.Pointer(cp))) { 42366 goto __1098 42367 } 42368 if !(notmatch != 0) { 42369 goto __1099 42370 } 42371 goto __1097 42372 goto __1100 42373 __1099: 42374 rrc = DMATCH_NOMATCH 42375 goto RETURN_SWITCH 42376 __1100: 42377 ; 42378 __1098: 42379 ; 42380 if !(fc == *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&cp, 4)))) { 42381 goto __1101 42382 } 42383 if !(notmatch != 0) { 42384 goto __1102 42385 } 42386 rrc = DMATCH_NOMATCH 42387 goto RETURN_SWITCH 42388 goto __1103 42389 __1102: 42390 goto __1097 42391 __1103: 42392 ; 42393 __1101: 42394 ; 42395 goto __1096 42396 __1096: 42397 goto __1095 42398 goto __1097 42399 __1097: 42400 ; 42401 goto __1041 42402 42403 __1053: 42404 if !(libc.Bool32(fc == Tuint32_t('\044') || fc == Tuint32_t('\100') || fc == Tuint32_t('\140') || fc >= Tuint32_t(0xa0) && fc <= Tuint32_t(0xd7ff) || fc >= Tuint32_t(0xe000)) == notmatch) { 42405 goto __1104 42406 } 42407 rrc = DMATCH_NOMATCH 42408 goto RETURN_SWITCH 42409 __1104: 42410 ; 42411 42412 goto __1041 42413 42414 __1054: 42415 if !(libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop)).Fscriptx_bidiclass)>>DUCD_BIDICLASS_SHIFT == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))) == notmatch) { 42416 goto __1105 42417 } 42418 rrc = DMATCH_NOMATCH 42419 goto RETURN_SWITCH 42420 __1105: 42421 ; 42422 42423 goto __1041 42424 42425 __1055: 42426 42427 ok1 = libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_boolprop_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop)).Fbprops)&DUCD_BPROPS_MASK)*4 + uintptr(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))/32)*4))&(uint32(1)<<(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))%32)) != Tuint32_t(0)) 42428 if !(ok1 == notmatch) { 42429 goto __1106 42430 } 42431 rrc = DMATCH_NOMATCH 42432 goto RETURN_SWITCH 42433 __1106: 42434 ; 42435 42436 goto __1041 42437 42438 // This should never occur 42439 42440 __1056: 42441 return -44 42442 __1041: 42443 ; 42444 42445 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(3) 42446 42447 goto __13 42448 42449 // ===================================================================== 42450 // Match an extended Unicode sequence. We will get here only if the support 42451 // is in the binary; otherwise a compile-time error occurs. 42452 42453 __93: 42454 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 42455 goto __1107 42456 } 42457 42458 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 42459 goto __1109 42460 } 42461 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 42462 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 42463 goto __1110 42464 } 42465 return -2 42466 __1110: 42467 ; 42468 __1109: 42469 ; 42470 42471 rrc = DMATCH_NOMATCH 42472 goto RETURN_SWITCH 42473 42474 goto __1108 42475 __1107: 42476 42477 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 42478 if !(utf != 0 && fc >= 0xc0) { 42479 goto __1111 42480 } 42481 if !(fc&0x20 == Tuint32_t(0)) { 42482 goto __1112 42483 } 42484 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 42485 goto __1113 42486 __1112: 42487 if !(fc&0x10 == Tuint32_t(0)) { 42488 goto __1114 42489 } 42490 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 42491 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 42492 goto __1115 42493 __1114: 42494 if !(fc&0x08 == Tuint32_t(0)) { 42495 goto __1116 42496 } 42497 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 42498 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 42499 goto __1117 42500 __1116: 42501 if !(fc&0x04 == Tuint32_t(0)) { 42502 goto __1118 42503 } 42504 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 42505 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 42506 goto __1119 42507 __1118: 42508 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 42509 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 42510 __1119: 42511 ; 42512 __1117: 42513 ; 42514 __1115: 42515 ; 42516 __1113: 42517 ; 42518 __1111: 42519 ; 42520 42521 (*Theapframe)(unsafe.Pointer(F)).Feptr = X_pcre2_extuni_8(tls, fc, (*Theapframe)(unsafe.Pointer(F)).Feptr, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject, utf, 42522 uintptr(0)) 42523 __1108: 42524 ; 42525 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 42526 goto __1120 42527 } 42528 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 42529 goto __1121 42530 } 42531 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 42532 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 42533 goto __1122 42534 } 42535 return -2 42536 __1122: 42537 ; 42538 __1121: 42539 ; 42540 __1120: 42541 ; 42542 42543 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 42544 goto __13 42545 42546 // ===================================================================== 42547 // Match a single character type repeatedly. Note that the property type 42548 // does not need to be in a stack frame as it is not used within an RMATCH() 42549 // loop. 42550 42551 __94: 42552 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = libc.AssignPtrUint32(F+56+1*4, uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 42553 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 42554 goto REPEATTYPE 42555 42556 __95: 42557 __96: 42558 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(0) 42559 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))) 42560 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_TYPEMINUPTO { 42561 reptype = REPTYPE_MIN 42562 } else { 42563 reptype = REPTYPE_MAX 42564 } 42565 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 42566 goto REPEATTYPE 42567 42568 __97: 42569 reptype = REPTYPE_POS 42570 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(0) 42571 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = 4294967295 42572 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 42573 goto REPEATTYPE 42574 42575 __98: 42576 reptype = REPTYPE_POS 42577 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(1) 42578 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = 4294967295 42579 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 42580 goto REPEATTYPE 42581 42582 __99: 42583 reptype = REPTYPE_POS 42584 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(0) 42585 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = Tuint32_t(1) 42586 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 42587 goto REPEATTYPE 42588 42589 __100: 42590 reptype = REPTYPE_POS 42591 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(0) 42592 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))) 42593 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 42594 goto REPEATTYPE 42595 42596 __101: 42597 __102: 42598 __103: 42599 __104: 42600 __105: 42601 __106: 42602 fc = Tuint32_t(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) - OP_TYPESTAR) 42603 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = rep_min[fc] 42604 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = rep_max[fc] 42605 reptype = rep_typ[fc] 42606 42607 // Common code for all repeated character type matches. 42608 42609 REPEATTYPE: 42610 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) // Code for the character type 42611 42612 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_PROP || *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOTPROP) { 42613 goto __1123 42614 } 42615 42616 proptype = int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) 42617 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) 42618 goto __1124 42619 __1123: 42620 proptype = -1 42621 __1124: 42622 ; 42623 42624 // First, ensure the minimum number of matches are present. Use inline 42625 // code for maximizing the speed, and do the type test once at the start 42626 // (i.e. keep it out of the loops). As there are no calls to RMATCH in the 42627 // loops, we can use an ordinary variable for "notmatch". The code for UTF 42628 // mode is separated out for tidiness, except for Unicode property tests. 42629 42630 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56)) > Tuint32_t(0)) { 42631 goto __1125 42632 } 42633 42634 if !(proptype >= 0) { 42635 goto __1126 42636 } /* Property tests in all modes */ 42637 42638 notmatch1 = libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOTPROP) 42639 switch proptype { 42640 case DPT_ANY: 42641 goto __1129 42642 42643 case DPT_LAMP: 42644 goto __1130 42645 42646 case DPT_GC: 42647 goto __1131 42648 42649 case DPT_PC: 42650 goto __1132 42651 42652 case DPT_SC: 42653 goto __1133 42654 42655 case DPT_SCX: 42656 goto __1134 42657 42658 case DPT_ALNUM: 42659 goto __1135 42660 42661 // Perl space used to exclude VT, but from Perl 5.18 it is included, 42662 // which means that Perl space and POSIX space are now identical. PCRE 42663 // was changed at release 8.34. 42664 42665 case DPT_SPACE: 42666 goto __1136 // Perl space 42667 case DPT_PXSPACE: 42668 goto __1137 42669 42670 case DPT_WORD: 42671 goto __1138 42672 42673 case DPT_CLIST: 42674 goto __1139 42675 42676 case DPT_UCNC: 42677 goto __1140 42678 42679 case DPT_BIDICL: 42680 goto __1141 42681 42682 case DPT_BOOL: 42683 goto __1142 42684 42685 // This should not occur 42686 42687 default: 42688 goto __1143 42689 } 42690 goto __1128 42691 42692 __1129: 42693 if !(notmatch1 != 0) { 42694 goto __1144 42695 } 42696 rrc = DMATCH_NOMATCH 42697 goto RETURN_SWITCH 42698 __1144: 42699 ; 42700 42701 i = Tuint32_t(1) 42702 __1145: 42703 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 42704 goto __1147 42705 } 42706 42707 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 42708 goto __1148 42709 } 42710 42711 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 42712 goto __1149 42713 } 42714 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 42715 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 42716 goto __1150 42717 } 42718 return -2 42719 __1150: 42720 ; 42721 __1149: 42722 ; 42723 42724 rrc = DMATCH_NOMATCH 42725 goto RETURN_SWITCH 42726 42727 __1148: 42728 ; 42729 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 42730 if !(utf != 0 && fc >= 0xc0) { 42731 goto __1151 42732 } 42733 if !(fc&0x20 == Tuint32_t(0)) { 42734 goto __1152 42735 } 42736 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 42737 goto __1153 42738 __1152: 42739 if !(fc&0x10 == Tuint32_t(0)) { 42740 goto __1154 42741 } 42742 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 42743 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 42744 goto __1155 42745 __1154: 42746 if !(fc&0x08 == Tuint32_t(0)) { 42747 goto __1156 42748 } 42749 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 42750 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 42751 goto __1157 42752 __1156: 42753 if !(fc&0x04 == Tuint32_t(0)) { 42754 goto __1158 42755 } 42756 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 42757 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 42758 goto __1159 42759 __1158: 42760 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 42761 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 42762 __1159: 42763 ; 42764 __1157: 42765 ; 42766 __1155: 42767 ; 42768 __1153: 42769 ; 42770 __1151: 42771 ; 42772 42773 goto __1146 42774 __1146: 42775 i++ 42776 goto __1145 42777 goto __1147 42778 __1147: 42779 ; 42780 goto __1128 42781 42782 __1130: 42783 i = Tuint32_t(1) 42784 __1160: 42785 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 42786 goto __1162 42787 } 42788 42789 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 42790 goto __1163 42791 } 42792 42793 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 42794 goto __1164 42795 } 42796 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 42797 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 42798 goto __1165 42799 } 42800 return -2 42801 __1165: 42802 ; 42803 __1164: 42804 ; 42805 42806 rrc = DMATCH_NOMATCH 42807 goto RETURN_SWITCH 42808 42809 __1163: 42810 ; 42811 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 42812 if !(utf != 0 && fc >= 0xc0) { 42813 goto __1166 42814 } 42815 if !(fc&0x20 == Tuint32_t(0)) { 42816 goto __1167 42817 } 42818 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 42819 goto __1168 42820 __1167: 42821 if !(fc&0x10 == Tuint32_t(0)) { 42822 goto __1169 42823 } 42824 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 42825 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 42826 goto __1170 42827 __1169: 42828 if !(fc&0x08 == Tuint32_t(0)) { 42829 goto __1171 42830 } 42831 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 42832 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 42833 goto __1172 42834 __1171: 42835 if !(fc&0x04 == Tuint32_t(0)) { 42836 goto __1173 42837 } 42838 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 42839 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 42840 goto __1174 42841 __1173: 42842 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 42843 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 42844 __1174: 42845 ; 42846 __1172: 42847 ; 42848 __1170: 42849 ; 42850 __1168: 42851 ; 42852 __1166: 42853 ; 42854 42855 chartype = int32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype) 42856 if !(libc.Bool32(chartype == ucp_Lu || chartype == ucp_Ll || chartype == ucp_Lt) == notmatch1) { 42857 goto __1175 42858 } 42859 rrc = DMATCH_NOMATCH 42860 goto RETURN_SWITCH 42861 __1175: 42862 ; 42863 42864 goto __1161 42865 __1161: 42866 i++ 42867 goto __1160 42868 goto __1162 42869 __1162: 42870 ; 42871 goto __1128 42872 42873 __1131: 42874 i = Tuint32_t(1) 42875 __1176: 42876 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 42877 goto __1178 42878 } 42879 42880 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 42881 goto __1179 42882 } 42883 42884 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 42885 goto __1180 42886 } 42887 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 42888 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 42889 goto __1181 42890 } 42891 return -2 42892 __1181: 42893 ; 42894 __1180: 42895 ; 42896 42897 rrc = DMATCH_NOMATCH 42898 goto RETURN_SWITCH 42899 42900 __1179: 42901 ; 42902 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 42903 if !(utf != 0 && fc >= 0xc0) { 42904 goto __1182 42905 } 42906 if !(fc&0x20 == Tuint32_t(0)) { 42907 goto __1183 42908 } 42909 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 42910 goto __1184 42911 __1183: 42912 if !(fc&0x10 == Tuint32_t(0)) { 42913 goto __1185 42914 } 42915 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 42916 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 42917 goto __1186 42918 __1185: 42919 if !(fc&0x08 == Tuint32_t(0)) { 42920 goto __1187 42921 } 42922 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 42923 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 42924 goto __1188 42925 __1187: 42926 if !(fc&0x04 == Tuint32_t(0)) { 42927 goto __1189 42928 } 42929 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 42930 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 42931 goto __1190 42932 __1189: 42933 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 42934 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 42935 __1190: 42936 ; 42937 __1188: 42938 ; 42939 __1186: 42940 ; 42941 __1184: 42942 ; 42943 __1182: 42944 ; 42945 42946 if !(libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype] == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4))) == notmatch1) { 42947 goto __1191 42948 } 42949 rrc = DMATCH_NOMATCH 42950 goto RETURN_SWITCH 42951 __1191: 42952 ; 42953 42954 goto __1177 42955 __1177: 42956 i++ 42957 goto __1176 42958 goto __1178 42959 __1178: 42960 ; 42961 goto __1128 42962 42963 __1132: 42964 i = Tuint32_t(1) 42965 __1192: 42966 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 42967 goto __1194 42968 } 42969 42970 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 42971 goto __1195 42972 } 42973 42974 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 42975 goto __1196 42976 } 42977 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 42978 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 42979 goto __1197 42980 } 42981 return -2 42982 __1197: 42983 ; 42984 __1196: 42985 ; 42986 42987 rrc = DMATCH_NOMATCH 42988 goto RETURN_SWITCH 42989 42990 __1195: 42991 ; 42992 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 42993 if !(utf != 0 && fc >= 0xc0) { 42994 goto __1198 42995 } 42996 if !(fc&0x20 == Tuint32_t(0)) { 42997 goto __1199 42998 } 42999 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 43000 goto __1200 43001 __1199: 43002 if !(fc&0x10 == Tuint32_t(0)) { 43003 goto __1201 43004 } 43005 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 43006 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 43007 goto __1202 43008 __1201: 43009 if !(fc&0x08 == Tuint32_t(0)) { 43010 goto __1203 43011 } 43012 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 43013 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 43014 goto __1204 43015 __1203: 43016 if !(fc&0x04 == Tuint32_t(0)) { 43017 goto __1205 43018 } 43019 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 43020 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 43021 goto __1206 43022 __1205: 43023 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 43024 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 43025 __1206: 43026 ; 43027 __1204: 43028 ; 43029 __1202: 43030 ; 43031 __1200: 43032 ; 43033 __1198: 43034 ; 43035 43036 if !(libc.Bool32(Tuint32_t((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype) == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4))) == notmatch1) { 43037 goto __1207 43038 } 43039 rrc = DMATCH_NOMATCH 43040 goto RETURN_SWITCH 43041 __1207: 43042 ; 43043 43044 goto __1193 43045 __1193: 43046 i++ 43047 goto __1192 43048 goto __1194 43049 __1194: 43050 ; 43051 goto __1128 43052 43053 __1133: 43054 i = Tuint32_t(1) 43055 __1208: 43056 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 43057 goto __1210 43058 } 43059 43060 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 43061 goto __1211 43062 } 43063 43064 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 43065 goto __1212 43066 } 43067 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 43068 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 43069 goto __1213 43070 } 43071 return -2 43072 __1213: 43073 ; 43074 __1212: 43075 ; 43076 43077 rrc = DMATCH_NOMATCH 43078 goto RETURN_SWITCH 43079 43080 __1211: 43081 ; 43082 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 43083 if !(utf != 0 && fc >= 0xc0) { 43084 goto __1214 43085 } 43086 if !(fc&0x20 == Tuint32_t(0)) { 43087 goto __1215 43088 } 43089 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 43090 goto __1216 43091 __1215: 43092 if !(fc&0x10 == Tuint32_t(0)) { 43093 goto __1217 43094 } 43095 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 43096 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 43097 goto __1218 43098 __1217: 43099 if !(fc&0x08 == Tuint32_t(0)) { 43100 goto __1219 43101 } 43102 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 43103 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 43104 goto __1220 43105 __1219: 43106 if !(fc&0x04 == Tuint32_t(0)) { 43107 goto __1221 43108 } 43109 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 43110 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 43111 goto __1222 43112 __1221: 43113 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 43114 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 43115 __1222: 43116 ; 43117 __1220: 43118 ; 43119 __1218: 43120 ; 43121 __1216: 43122 ; 43123 __1214: 43124 ; 43125 43126 if !(libc.Bool32(Tuint32_t((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fscript) == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4))) == notmatch1) { 43127 goto __1223 43128 } 43129 rrc = DMATCH_NOMATCH 43130 goto RETURN_SWITCH 43131 __1223: 43132 ; 43133 43134 goto __1209 43135 __1209: 43136 i++ 43137 goto __1208 43138 goto __1210 43139 __1210: 43140 ; 43141 goto __1128 43142 43143 __1134: 43144 i = Tuint32_t(1) 43145 __1224: 43146 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 43147 goto __1226 43148 } 43149 43150 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 43151 goto __1227 43152 } 43153 43154 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 43155 goto __1228 43156 } 43157 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 43158 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 43159 goto __1229 43160 } 43161 return -2 43162 __1229: 43163 ; 43164 __1228: 43165 ; 43166 43167 rrc = DMATCH_NOMATCH 43168 goto RETURN_SWITCH 43169 43170 __1227: 43171 ; 43172 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 43173 if !(utf != 0 && fc >= 0xc0) { 43174 goto __1230 43175 } 43176 if !(fc&0x20 == Tuint32_t(0)) { 43177 goto __1231 43178 } 43179 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 43180 goto __1232 43181 __1231: 43182 if !(fc&0x10 == Tuint32_t(0)) { 43183 goto __1233 43184 } 43185 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 43186 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 43187 goto __1234 43188 __1233: 43189 if !(fc&0x08 == Tuint32_t(0)) { 43190 goto __1235 43191 } 43192 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 43193 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 43194 goto __1236 43195 __1235: 43196 if !(fc&0x04 == Tuint32_t(0)) { 43197 goto __1237 43198 } 43199 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 43200 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 43201 goto __1238 43202 __1237: 43203 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 43204 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 43205 __1238: 43206 ; 43207 __1236: 43208 ; 43209 __1234: 43210 ; 43211 __1232: 43212 ; 43213 __1230: 43214 ; 43215 43216 prop1 = uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12 43217 ok2 = libc.Bool32(Tuint32_t((*Tucd_record)(unsafe.Pointer(prop1)).Fscript) == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)) || *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_script_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop1)).Fscriptx_bidiclass)&DUCD_SCRIPTX_MASK)*4 + uintptr(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4))/Tuint32_t(32))*4))&(uint32(1)<<(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4))%Tuint32_t(32))) != Tuint32_t(0)) 43218 if !(ok2 == notmatch1) { 43219 goto __1239 43220 } 43221 rrc = DMATCH_NOMATCH 43222 goto RETURN_SWITCH 43223 __1239: 43224 ; 43225 43226 goto __1225 43227 __1225: 43228 i++ 43229 goto __1224 43230 goto __1226 43231 __1226: 43232 ; 43233 goto __1128 43234 43235 __1135: 43236 i = Tuint32_t(1) 43237 __1240: 43238 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 43239 goto __1242 43240 } 43241 43242 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 43243 goto __1243 43244 } 43245 43246 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 43247 goto __1244 43248 } 43249 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 43250 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 43251 goto __1245 43252 } 43253 return -2 43254 __1245: 43255 ; 43256 __1244: 43257 ; 43258 43259 rrc = DMATCH_NOMATCH 43260 goto RETURN_SWITCH 43261 43262 __1243: 43263 ; 43264 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 43265 if !(utf != 0 && fc >= 0xc0) { 43266 goto __1246 43267 } 43268 if !(fc&0x20 == Tuint32_t(0)) { 43269 goto __1247 43270 } 43271 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 43272 goto __1248 43273 __1247: 43274 if !(fc&0x10 == Tuint32_t(0)) { 43275 goto __1249 43276 } 43277 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 43278 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 43279 goto __1250 43280 __1249: 43281 if !(fc&0x08 == Tuint32_t(0)) { 43282 goto __1251 43283 } 43284 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 43285 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 43286 goto __1252 43287 __1251: 43288 if !(fc&0x04 == Tuint32_t(0)) { 43289 goto __1253 43290 } 43291 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 43292 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 43293 goto __1254 43294 __1253: 43295 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 43296 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 43297 __1254: 43298 ; 43299 __1252: 43300 ; 43301 __1250: 43302 ; 43303 __1248: 43304 ; 43305 __1246: 43306 ; 43307 43308 category = int32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype]) 43309 if !(libc.Bool32(category == ucp_L || category == ucp_N) == notmatch1) { 43310 goto __1255 43311 } 43312 rrc = DMATCH_NOMATCH 43313 goto RETURN_SWITCH 43314 __1255: 43315 ; 43316 43317 goto __1241 43318 __1241: 43319 i++ 43320 goto __1240 43321 goto __1242 43322 __1242: 43323 ; 43324 goto __1128 43325 43326 // Perl space used to exclude VT, but from Perl 5.18 it is included, 43327 // which means that Perl space and POSIX space are now identical. PCRE 43328 // was changed at release 8.34. 43329 43330 __1136: // Perl space 43331 __1137: // POSIX space 43332 i = Tuint32_t(1) 43333 __1256: 43334 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 43335 goto __1258 43336 } 43337 43338 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 43339 goto __1259 43340 } 43341 43342 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 43343 goto __1260 43344 } 43345 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 43346 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 43347 goto __1261 43348 } 43349 return -2 43350 __1261: 43351 ; 43352 __1260: 43353 ; 43354 43355 rrc = DMATCH_NOMATCH 43356 goto RETURN_SWITCH 43357 43358 __1259: 43359 ; 43360 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 43361 if !(utf != 0 && fc >= 0xc0) { 43362 goto __1262 43363 } 43364 if !(fc&0x20 == Tuint32_t(0)) { 43365 goto __1263 43366 } 43367 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 43368 goto __1264 43369 __1263: 43370 if !(fc&0x10 == Tuint32_t(0)) { 43371 goto __1265 43372 } 43373 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 43374 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 43375 goto __1266 43376 __1265: 43377 if !(fc&0x08 == Tuint32_t(0)) { 43378 goto __1267 43379 } 43380 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 43381 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 43382 goto __1268 43383 __1267: 43384 if !(fc&0x04 == Tuint32_t(0)) { 43385 goto __1269 43386 } 43387 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 43388 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 43389 goto __1270 43390 __1269: 43391 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 43392 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 43393 __1270: 43394 ; 43395 __1268: 43396 ; 43397 __1266: 43398 ; 43399 __1264: 43400 ; 43401 __1262: 43402 ; 43403 43404 switch fc { 43405 case Tuint32_t('\011'): 43406 goto __1272 43407 case Tuint32_t('\040'): 43408 goto __1273 43409 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 43410 goto __1274 43411 case Tuint32_t(0x1680): 43412 goto __1275 /* OGHAM SPACE MARK */ 43413 case Tuint32_t(0x180e): 43414 goto __1276 /* MONGOLIAN VOWEL SEPARATOR */ 43415 case Tuint32_t(0x2000): 43416 goto __1277 /* EN QUAD */ 43417 case Tuint32_t(0x2001): 43418 goto __1278 /* EM QUAD */ 43419 case Tuint32_t(0x2002): 43420 goto __1279 /* EN SPACE */ 43421 case Tuint32_t(0x2003): 43422 goto __1280 /* EM SPACE */ 43423 case Tuint32_t(0x2004): 43424 goto __1281 /* THREE-PER-EM SPACE */ 43425 case Tuint32_t(0x2005): 43426 goto __1282 /* FOUR-PER-EM SPACE */ 43427 case Tuint32_t(0x2006): 43428 goto __1283 /* SIX-PER-EM SPACE */ 43429 case Tuint32_t(0x2007): 43430 goto __1284 /* FIGURE SPACE */ 43431 case Tuint32_t(0x2008): 43432 goto __1285 /* PUNCTUATION SPACE */ 43433 case Tuint32_t(0x2009): 43434 goto __1286 /* THIN SPACE */ 43435 case Tuint32_t(0x200A): 43436 goto __1287 /* HAIR SPACE */ 43437 case Tuint32_t(0x202f): 43438 goto __1288 /* NARROW NO-BREAK SPACE */ 43439 case Tuint32_t(0x205f): 43440 goto __1289 /* MEDIUM MATHEMATICAL SPACE */ 43441 case Tuint32_t(0x3000): 43442 goto __1290 43443 case Tuint32_t('\012'): 43444 goto __1291 43445 case Tuint32_t('\013'): 43446 goto __1292 43447 case Tuint32_t('\014'): 43448 goto __1293 43449 case Tuint32_t('\015'): 43450 goto __1294 43451 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 43452 goto __1295 43453 case Tuint32_t(0x2028): 43454 goto __1296 /* LINE SEPARATOR */ 43455 case Tuint32_t(0x2029): 43456 goto __1297 43457 43458 default: 43459 goto __1298 43460 } 43461 goto __1271 43462 43463 __1272: 43464 __1273: 43465 __1274: 43466 __1275: /* OGHAM SPACE MARK */ 43467 __1276: /* MONGOLIAN VOWEL SEPARATOR */ 43468 __1277: /* EN QUAD */ 43469 __1278: /* EM QUAD */ 43470 __1279: /* EN SPACE */ 43471 __1280: /* EM SPACE */ 43472 __1281: /* THREE-PER-EM SPACE */ 43473 __1282: /* FOUR-PER-EM SPACE */ 43474 __1283: /* SIX-PER-EM SPACE */ 43475 __1284: /* FIGURE SPACE */ 43476 __1285: /* PUNCTUATION SPACE */ 43477 __1286: /* THIN SPACE */ 43478 __1287: /* HAIR SPACE */ 43479 __1288: /* NARROW NO-BREAK SPACE */ 43480 __1289: /* MEDIUM MATHEMATICAL SPACE */ 43481 __1290: 43482 __1291: 43483 __1292: 43484 __1293: 43485 __1294: 43486 __1295: 43487 __1296: /* LINE SEPARATOR */ 43488 __1297: 43489 if !(notmatch1 != 0) { 43490 goto __1299 43491 } 43492 rrc = DMATCH_NOMATCH 43493 goto RETURN_SWITCH 43494 __1299: 43495 ; 43496 43497 goto __1271 43498 43499 __1298: 43500 if !(libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype] == ucp_Z) == notmatch1) { 43501 goto __1300 43502 } 43503 rrc = DMATCH_NOMATCH 43504 goto RETURN_SWITCH 43505 __1300: 43506 ; 43507 43508 goto __1271 43509 __1271: 43510 ; 43511 goto __1257 43512 __1257: 43513 i++ 43514 goto __1256 43515 goto __1258 43516 __1258: 43517 ; 43518 goto __1128 43519 43520 __1138: 43521 i = Tuint32_t(1) 43522 __1301: 43523 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 43524 goto __1303 43525 } 43526 43527 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 43528 goto __1304 43529 } 43530 43531 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 43532 goto __1305 43533 } 43534 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 43535 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 43536 goto __1306 43537 } 43538 return -2 43539 __1306: 43540 ; 43541 __1305: 43542 ; 43543 43544 rrc = DMATCH_NOMATCH 43545 goto RETURN_SWITCH 43546 43547 __1304: 43548 ; 43549 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 43550 if !(utf != 0 && fc >= 0xc0) { 43551 goto __1307 43552 } 43553 if !(fc&0x20 == Tuint32_t(0)) { 43554 goto __1308 43555 } 43556 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 43557 goto __1309 43558 __1308: 43559 if !(fc&0x10 == Tuint32_t(0)) { 43560 goto __1310 43561 } 43562 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 43563 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 43564 goto __1311 43565 __1310: 43566 if !(fc&0x08 == Tuint32_t(0)) { 43567 goto __1312 43568 } 43569 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 43570 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 43571 goto __1313 43572 __1312: 43573 if !(fc&0x04 == Tuint32_t(0)) { 43574 goto __1314 43575 } 43576 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 43577 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 43578 goto __1315 43579 __1314: 43580 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 43581 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 43582 __1315: 43583 ; 43584 __1313: 43585 ; 43586 __1311: 43587 ; 43588 __1309: 43589 ; 43590 __1307: 43591 ; 43592 43593 category1 = int32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype]) 43594 if !(libc.Bool32(category1 == ucp_L || category1 == ucp_N || fc == Tuint32_t('\137')) == notmatch1) { 43595 goto __1316 43596 } 43597 rrc = DMATCH_NOMATCH 43598 goto RETURN_SWITCH 43599 __1316: 43600 ; 43601 43602 goto __1302 43603 __1302: 43604 i++ 43605 goto __1301 43606 goto __1303 43607 __1303: 43608 ; 43609 goto __1128 43610 43611 __1139: 43612 i = Tuint32_t(1) 43613 __1317: 43614 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 43615 goto __1319 43616 } 43617 43618 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 43619 goto __1320 43620 } 43621 43622 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 43623 goto __1321 43624 } 43625 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 43626 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 43627 goto __1322 43628 } 43629 return -2 43630 __1322: 43631 ; 43632 __1321: 43633 ; 43634 43635 rrc = DMATCH_NOMATCH 43636 goto RETURN_SWITCH 43637 43638 __1320: 43639 ; 43640 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 43641 if !(utf != 0 && fc >= 0xc0) { 43642 goto __1323 43643 } 43644 if !(fc&0x20 == Tuint32_t(0)) { 43645 goto __1324 43646 } 43647 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 43648 goto __1325 43649 __1324: 43650 if !(fc&0x10 == Tuint32_t(0)) { 43651 goto __1326 43652 } 43653 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 43654 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 43655 goto __1327 43656 __1326: 43657 if !(fc&0x08 == Tuint32_t(0)) { 43658 goto __1328 43659 } 43660 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 43661 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 43662 goto __1329 43663 __1328: 43664 if !(fc&0x04 == Tuint32_t(0)) { 43665 goto __1330 43666 } 43667 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 43668 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 43669 goto __1331 43670 __1330: 43671 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 43672 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 43673 __1331: 43674 ; 43675 __1329: 43676 ; 43677 __1327: 43678 ; 43679 __1325: 43680 ; 43681 __1323: 43682 ; 43683 43684 cp1 = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)))*4 43685 __1332: 43686 43687 if !(fc < *(*Tuint32_t)(unsafe.Pointer(cp1))) { 43688 goto __1335 43689 } 43690 43691 if !(notmatch1 != 0) { 43692 goto __1336 43693 } 43694 goto __1334 43695 __1336: 43696 ; 43697 rrc = DMATCH_NOMATCH 43698 goto RETURN_SWITCH 43699 43700 __1335: 43701 ; 43702 if !(fc == *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&cp1, 4)))) { 43703 goto __1337 43704 } 43705 43706 if !(notmatch1 != 0) { 43707 goto __1338 43708 } 43709 rrc = DMATCH_NOMATCH 43710 goto RETURN_SWITCH 43711 __1338: 43712 ; 43713 43714 goto __1334 43715 __1337: 43716 ; 43717 goto __1333 43718 __1333: 43719 goto __1332 43720 goto __1334 43721 __1334: 43722 ; 43723 goto __1318 43724 __1318: 43725 i++ 43726 goto __1317 43727 goto __1319 43728 __1319: 43729 ; 43730 goto __1128 43731 43732 __1140: 43733 i = Tuint32_t(1) 43734 __1339: 43735 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 43736 goto __1341 43737 } 43738 43739 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 43740 goto __1342 43741 } 43742 43743 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 43744 goto __1343 43745 } 43746 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 43747 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 43748 goto __1344 43749 } 43750 return -2 43751 __1344: 43752 ; 43753 __1343: 43754 ; 43755 43756 rrc = DMATCH_NOMATCH 43757 goto RETURN_SWITCH 43758 43759 __1342: 43760 ; 43761 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 43762 if !(utf != 0 && fc >= 0xc0) { 43763 goto __1345 43764 } 43765 if !(fc&0x20 == Tuint32_t(0)) { 43766 goto __1346 43767 } 43768 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 43769 goto __1347 43770 __1346: 43771 if !(fc&0x10 == Tuint32_t(0)) { 43772 goto __1348 43773 } 43774 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 43775 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 43776 goto __1349 43777 __1348: 43778 if !(fc&0x08 == Tuint32_t(0)) { 43779 goto __1350 43780 } 43781 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 43782 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 43783 goto __1351 43784 __1350: 43785 if !(fc&0x04 == Tuint32_t(0)) { 43786 goto __1352 43787 } 43788 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 43789 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 43790 goto __1353 43791 __1352: 43792 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 43793 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 43794 __1353: 43795 ; 43796 __1351: 43797 ; 43798 __1349: 43799 ; 43800 __1347: 43801 ; 43802 __1345: 43803 ; 43804 43805 if !(libc.Bool32(fc == Tuint32_t('\044') || fc == Tuint32_t('\100') || fc == Tuint32_t('\140') || fc >= Tuint32_t(0xa0) && fc <= Tuint32_t(0xd7ff) || fc >= Tuint32_t(0xe000)) == notmatch1) { 43806 goto __1354 43807 } 43808 rrc = DMATCH_NOMATCH 43809 goto RETURN_SWITCH 43810 __1354: 43811 ; 43812 43813 goto __1340 43814 __1340: 43815 i++ 43816 goto __1339 43817 goto __1341 43818 __1341: 43819 ; 43820 goto __1128 43821 43822 __1141: 43823 i = Tuint32_t(1) 43824 __1355: 43825 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 43826 goto __1357 43827 } 43828 43829 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 43830 goto __1358 43831 } 43832 43833 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 43834 goto __1359 43835 } 43836 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 43837 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 43838 goto __1360 43839 } 43840 return -2 43841 __1360: 43842 ; 43843 __1359: 43844 ; 43845 43846 rrc = DMATCH_NOMATCH 43847 goto RETURN_SWITCH 43848 43849 __1358: 43850 ; 43851 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 43852 if !(utf != 0 && fc >= 0xc0) { 43853 goto __1361 43854 } 43855 if !(fc&0x20 == Tuint32_t(0)) { 43856 goto __1362 43857 } 43858 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 43859 goto __1363 43860 __1362: 43861 if !(fc&0x10 == Tuint32_t(0)) { 43862 goto __1364 43863 } 43864 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 43865 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 43866 goto __1365 43867 __1364: 43868 if !(fc&0x08 == Tuint32_t(0)) { 43869 goto __1366 43870 } 43871 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 43872 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 43873 goto __1367 43874 __1366: 43875 if !(fc&0x04 == Tuint32_t(0)) { 43876 goto __1368 43877 } 43878 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 43879 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 43880 goto __1369 43881 __1368: 43882 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 43883 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 43884 __1369: 43885 ; 43886 __1367: 43887 ; 43888 __1365: 43889 ; 43890 __1363: 43891 ; 43892 __1361: 43893 ; 43894 43895 if !(libc.Bool32(Tuint32_t(int32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fscriptx_bidiclass)>>DUCD_BIDICLASS_SHIFT) == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4))) == notmatch1) { 43896 goto __1370 43897 } 43898 rrc = DMATCH_NOMATCH 43899 goto RETURN_SWITCH 43900 __1370: 43901 ; 43902 43903 goto __1356 43904 __1356: 43905 i++ 43906 goto __1355 43907 goto __1357 43908 __1357: 43909 ; 43910 goto __1128 43911 43912 __1142: 43913 i = Tuint32_t(1) 43914 __1371: 43915 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 43916 goto __1373 43917 } 43918 43919 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 43920 goto __1374 43921 } 43922 43923 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 43924 goto __1375 43925 } 43926 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 43927 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 43928 goto __1376 43929 } 43930 return -2 43931 __1376: 43932 ; 43933 __1375: 43934 ; 43935 43936 rrc = DMATCH_NOMATCH 43937 goto RETURN_SWITCH 43938 43939 __1374: 43940 ; 43941 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 43942 if !(utf != 0 && fc >= 0xc0) { 43943 goto __1377 43944 } 43945 if !(fc&0x20 == Tuint32_t(0)) { 43946 goto __1378 43947 } 43948 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 43949 goto __1379 43950 __1378: 43951 if !(fc&0x10 == Tuint32_t(0)) { 43952 goto __1380 43953 } 43954 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 43955 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 43956 goto __1381 43957 __1380: 43958 if !(fc&0x08 == Tuint32_t(0)) { 43959 goto __1382 43960 } 43961 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 43962 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 43963 goto __1383 43964 __1382: 43965 if !(fc&0x04 == Tuint32_t(0)) { 43966 goto __1384 43967 } 43968 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 43969 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 43970 goto __1385 43971 __1384: 43972 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 43973 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 43974 __1385: 43975 ; 43976 __1383: 43977 ; 43978 __1381: 43979 ; 43980 __1379: 43981 ; 43982 __1377: 43983 ; 43984 43985 prop2 = uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12 43986 ok3 = libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_boolprop_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop2)).Fbprops)&DUCD_BPROPS_MASK)*4 + uintptr(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4))/Tuint32_t(32))*4))&(uint32(1)<<(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4))%Tuint32_t(32))) != Tuint32_t(0)) 43987 if !(ok3 == notmatch1) { 43988 goto __1386 43989 } 43990 rrc = DMATCH_NOMATCH 43991 goto RETURN_SWITCH 43992 __1386: 43993 ; 43994 43995 goto __1372 43996 __1372: 43997 i++ 43998 goto __1371 43999 goto __1373 44000 __1373: 44001 ; 44002 goto __1128 44003 44004 // This should not occur 44005 44006 __1143: 44007 return -44 44008 __1128: 44009 ; 44010 goto __1127 44011 __1126: 44012 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_EXTUNI) { 44013 goto __1387 44014 } 44015 44016 i = Tuint32_t(1) 44017 __1389: 44018 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 44019 goto __1391 44020 } 44021 44022 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 44023 goto __1392 44024 } 44025 44026 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 44027 goto __1394 44028 } 44029 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 44030 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 44031 goto __1395 44032 } 44033 return -2 44034 __1395: 44035 ; 44036 __1394: 44037 ; 44038 44039 rrc = DMATCH_NOMATCH 44040 goto RETURN_SWITCH 44041 44042 goto __1393 44043 __1392: 44044 44045 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 44046 if !(utf != 0 && fc >= 0xc0) { 44047 goto __1396 44048 } 44049 if !(fc&0x20 == Tuint32_t(0)) { 44050 goto __1397 44051 } 44052 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 44053 goto __1398 44054 __1397: 44055 if !(fc&0x10 == Tuint32_t(0)) { 44056 goto __1399 44057 } 44058 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 44059 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 44060 goto __1400 44061 __1399: 44062 if !(fc&0x08 == Tuint32_t(0)) { 44063 goto __1401 44064 } 44065 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 44066 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 44067 goto __1402 44068 __1401: 44069 if !(fc&0x04 == Tuint32_t(0)) { 44070 goto __1403 44071 } 44072 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 44073 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 44074 goto __1404 44075 __1403: 44076 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 44077 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 44078 __1404: 44079 ; 44080 __1402: 44081 ; 44082 __1400: 44083 ; 44084 __1398: 44085 ; 44086 __1396: 44087 ; 44088 44089 (*Theapframe)(unsafe.Pointer(F)).Feptr = X_pcre2_extuni_8(tls, fc, (*Theapframe)(unsafe.Pointer(F)).Feptr, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject, 44090 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject, utf, uintptr(0)) 44091 __1393: 44092 ; 44093 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 44094 goto __1405 44095 } 44096 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 44097 goto __1406 44098 } 44099 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 44100 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 44101 goto __1407 44102 } 44103 return -2 44104 __1407: 44105 ; 44106 __1406: 44107 ; 44108 __1405: 44109 ; 44110 44111 goto __1390 44112 __1390: 44113 i++ 44114 goto __1389 44115 goto __1391 44116 __1391: 44117 ; 44118 goto __1388 44119 __1387: 44120 44121 // Handle all other cases in UTF mode 44122 44123 if !(utf != 0) { 44124 goto __1408 44125 } 44126 switch *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) { 44127 case OP_ANY: 44128 goto __1411 44129 44130 case OP_ALLANY: 44131 goto __1412 44132 44133 case OP_ANYBYTE: 44134 goto __1413 44135 44136 case OP_ANYNL: 44137 goto __1414 44138 44139 case OP_NOT_HSPACE: 44140 goto __1415 44141 44142 case OP_HSPACE: 44143 goto __1416 44144 44145 case OP_NOT_VSPACE: 44146 goto __1417 44147 44148 case OP_VSPACE: 44149 goto __1418 44150 44151 case OP_NOT_DIGIT: 44152 goto __1419 44153 44154 case OP_DIGIT: 44155 goto __1420 44156 44157 case OP_NOT_WHITESPACE: 44158 goto __1421 44159 44160 case OP_WHITESPACE: 44161 goto __1422 44162 44163 case OP_NOT_WORDCHAR: 44164 goto __1423 44165 44166 case OP_WORDCHAR: 44167 goto __1424 44168 44169 default: 44170 goto __1425 44171 } 44172 goto __1410 44173 44174 __1411: 44175 i = Tuint32_t(1) 44176 __1426: 44177 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 44178 goto __1428 44179 } 44180 44181 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 44182 goto __1429 44183 } 44184 44185 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 44186 goto __1430 44187 } 44188 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 44189 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 44190 goto __1431 44191 } 44192 return -2 44193 __1431: 44194 ; 44195 __1430: 44196 ; 44197 44198 rrc = DMATCH_NOMATCH 44199 goto RETURN_SWITCH 44200 44201 __1429: 44202 ; 44203 if !(func() int32 { 44204 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 44205 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, (*Theapframe)(unsafe.Pointer(F)).Feptr, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+256, utf) != 0) 44206 } 44207 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260))) && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260 + 1))))) 44208 }() != 0) { 44209 goto __1432 44210 } 44211 rrc = DMATCH_NOMATCH 44212 goto RETURN_SWITCH 44213 __1432: 44214 ; 44215 44216 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && (*Theapframe)(unsafe.Pointer(F)).Feptr+uintptr(1) >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_FIXED) && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260)))) { 44217 goto __1433 44218 } 44219 44220 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 44221 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 44222 goto __1434 44223 } 44224 return -2 44225 __1434: 44226 ; 44227 __1433: 44228 ; 44229 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 44230 __1435: 44231 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 44232 goto __1436 44233 } 44234 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 44235 goto __1435 44236 __1436: 44237 ; 44238 goto __1427 44239 __1427: 44240 i++ 44241 goto __1426 44242 goto __1428 44243 __1428: 44244 ; 44245 goto __1410 44246 44247 __1412: 44248 i = Tuint32_t(1) 44249 __1437: 44250 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 44251 goto __1439 44252 } 44253 44254 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 44255 goto __1440 44256 } 44257 44258 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 44259 goto __1441 44260 } 44261 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 44262 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 44263 goto __1442 44264 } 44265 return -2 44266 __1442: 44267 ; 44268 __1441: 44269 ; 44270 44271 rrc = DMATCH_NOMATCH 44272 goto RETURN_SWITCH 44273 44274 __1440: 44275 ; 44276 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 44277 __1443: 44278 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 44279 goto __1444 44280 } 44281 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 44282 goto __1443 44283 __1444: 44284 ; 44285 goto __1438 44286 __1438: 44287 i++ 44288 goto __1437 44289 goto __1439 44290 __1439: 44291 ; 44292 goto __1410 44293 44294 __1413: 44295 if !((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr(*(*Tuint32_t)(unsafe.Pointer(F + 56)))) { 44296 goto __1445 44297 } 44298 rrc = DMATCH_NOMATCH 44299 goto RETURN_SWITCH 44300 __1445: 44301 ; 44302 44303 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(*(*Tuint32_t)(unsafe.Pointer(F + 56))) 44304 goto __1410 44305 44306 __1414: 44307 i = Tuint32_t(1) 44308 __1446: 44309 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 44310 goto __1448 44311 } 44312 44313 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 44314 goto __1449 44315 } 44316 44317 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 44318 goto __1450 44319 } 44320 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 44321 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 44322 goto __1451 44323 } 44324 return -2 44325 __1451: 44326 ; 44327 __1450: 44328 ; 44329 44330 rrc = DMATCH_NOMATCH 44331 goto RETURN_SWITCH 44332 44333 __1449: 44334 ; 44335 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 44336 if !(fc >= 0xc0) { 44337 goto __1452 44338 } 44339 if !(fc&0x20 == Tuint32_t(0)) { 44340 goto __1453 44341 } 44342 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 44343 goto __1454 44344 __1453: 44345 if !(fc&0x10 == Tuint32_t(0)) { 44346 goto __1455 44347 } 44348 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 44349 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 44350 goto __1456 44351 __1455: 44352 if !(fc&0x08 == Tuint32_t(0)) { 44353 goto __1457 44354 } 44355 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 44356 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 44357 goto __1458 44358 __1457: 44359 if !(fc&0x04 == Tuint32_t(0)) { 44360 goto __1459 44361 } 44362 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 44363 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 44364 goto __1460 44365 __1459: 44366 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 44367 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 44368 __1460: 44369 ; 44370 __1458: 44371 ; 44372 __1456: 44373 ; 44374 __1454: 44375 ; 44376 __1452: 44377 ; 44378 44379 switch fc { 44380 default: 44381 goto __1462 44382 44383 case Tuint32_t('\015'): 44384 goto __1463 44385 44386 case Tuint32_t('\012'): 44387 goto __1464 44388 44389 case Tuint32_t('\013'): 44390 goto __1465 44391 case Tuint32_t('\014'): 44392 goto __1466 44393 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 44394 goto __1467 44395 case Tuint32_t(0x2028): 44396 goto __1468 44397 case Tuint32_t(0x2029): 44398 goto __1469 44399 } 44400 goto __1461 44401 44402 __1462: 44403 rrc = DMATCH_NOMATCH 44404 goto RETURN_SWITCH 44405 44406 __1463: 44407 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == '\012') { 44408 goto __1470 44409 } 44410 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 44411 __1470: 44412 ; 44413 goto __1461 44414 44415 __1464: 44416 goto __1461 44417 44418 __1465: 44419 __1466: 44420 __1467: 44421 __1468: 44422 __1469: 44423 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fbsr_convention) == DPCRE2_BSR_ANYCRLF) { 44424 goto __1471 44425 } 44426 rrc = DMATCH_NOMATCH 44427 goto RETURN_SWITCH 44428 __1471: 44429 ; 44430 44431 goto __1461 44432 __1461: 44433 ; 44434 goto __1447 44435 __1447: 44436 i++ 44437 goto __1446 44438 goto __1448 44439 __1448: 44440 ; 44441 goto __1410 44442 44443 __1415: 44444 i = Tuint32_t(1) 44445 __1472: 44446 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 44447 goto __1474 44448 } 44449 44450 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 44451 goto __1475 44452 } 44453 44454 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 44455 goto __1476 44456 } 44457 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 44458 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 44459 goto __1477 44460 } 44461 return -2 44462 __1477: 44463 ; 44464 __1476: 44465 ; 44466 44467 rrc = DMATCH_NOMATCH 44468 goto RETURN_SWITCH 44469 44470 __1475: 44471 ; 44472 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 44473 if !(fc >= 0xc0) { 44474 goto __1478 44475 } 44476 if !(fc&0x20 == Tuint32_t(0)) { 44477 goto __1479 44478 } 44479 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 44480 goto __1480 44481 __1479: 44482 if !(fc&0x10 == Tuint32_t(0)) { 44483 goto __1481 44484 } 44485 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 44486 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 44487 goto __1482 44488 __1481: 44489 if !(fc&0x08 == Tuint32_t(0)) { 44490 goto __1483 44491 } 44492 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 44493 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 44494 goto __1484 44495 __1483: 44496 if !(fc&0x04 == Tuint32_t(0)) { 44497 goto __1485 44498 } 44499 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 44500 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 44501 goto __1486 44502 __1485: 44503 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 44504 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 44505 __1486: 44506 ; 44507 __1484: 44508 ; 44509 __1482: 44510 ; 44511 __1480: 44512 ; 44513 __1478: 44514 ; 44515 44516 switch fc { 44517 case Tuint32_t('\011'): 44518 goto __1488 44519 case Tuint32_t('\040'): 44520 goto __1489 44521 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 44522 goto __1490 44523 case Tuint32_t(0x1680): 44524 goto __1491 /* OGHAM SPACE MARK */ 44525 case Tuint32_t(0x180e): 44526 goto __1492 /* MONGOLIAN VOWEL SEPARATOR */ 44527 case Tuint32_t(0x2000): 44528 goto __1493 /* EN QUAD */ 44529 case Tuint32_t(0x2001): 44530 goto __1494 /* EM QUAD */ 44531 case Tuint32_t(0x2002): 44532 goto __1495 /* EN SPACE */ 44533 case Tuint32_t(0x2003): 44534 goto __1496 /* EM SPACE */ 44535 case Tuint32_t(0x2004): 44536 goto __1497 /* THREE-PER-EM SPACE */ 44537 case Tuint32_t(0x2005): 44538 goto __1498 /* FOUR-PER-EM SPACE */ 44539 case Tuint32_t(0x2006): 44540 goto __1499 /* SIX-PER-EM SPACE */ 44541 case Tuint32_t(0x2007): 44542 goto __1500 /* FIGURE SPACE */ 44543 case Tuint32_t(0x2008): 44544 goto __1501 /* PUNCTUATION SPACE */ 44545 case Tuint32_t(0x2009): 44546 goto __1502 /* THIN SPACE */ 44547 case Tuint32_t(0x200A): 44548 goto __1503 /* HAIR SPACE */ 44549 case Tuint32_t(0x202f): 44550 goto __1504 /* NARROW NO-BREAK SPACE */ 44551 case Tuint32_t(0x205f): 44552 goto __1505 /* MEDIUM MATHEMATICAL SPACE */ 44553 case Tuint32_t(0x3000): 44554 goto __1506 44555 default: 44556 goto __1507 44557 } 44558 goto __1487 44559 44560 __1488: 44561 __1489: 44562 __1490: 44563 __1491: /* OGHAM SPACE MARK */ 44564 __1492: /* MONGOLIAN VOWEL SEPARATOR */ 44565 __1493: /* EN QUAD */ 44566 __1494: /* EM QUAD */ 44567 __1495: /* EN SPACE */ 44568 __1496: /* EM SPACE */ 44569 __1497: /* THREE-PER-EM SPACE */ 44570 __1498: /* FOUR-PER-EM SPACE */ 44571 __1499: /* SIX-PER-EM SPACE */ 44572 __1500: /* FIGURE SPACE */ 44573 __1501: /* PUNCTUATION SPACE */ 44574 __1502: /* THIN SPACE */ 44575 __1503: /* HAIR SPACE */ 44576 __1504: /* NARROW NO-BREAK SPACE */ 44577 __1505: /* MEDIUM MATHEMATICAL SPACE */ 44578 __1506: 44579 rrc = DMATCH_NOMATCH 44580 goto RETURN_SWITCH 44581 44582 __1507: 44583 goto __1487 44584 __1487: 44585 ; 44586 goto __1473 44587 __1473: 44588 i++ 44589 goto __1472 44590 goto __1474 44591 __1474: 44592 ; 44593 goto __1410 44594 44595 __1416: 44596 i = Tuint32_t(1) 44597 __1508: 44598 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 44599 goto __1510 44600 } 44601 44602 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 44603 goto __1511 44604 } 44605 44606 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 44607 goto __1512 44608 } 44609 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 44610 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 44611 goto __1513 44612 } 44613 return -2 44614 __1513: 44615 ; 44616 __1512: 44617 ; 44618 44619 rrc = DMATCH_NOMATCH 44620 goto RETURN_SWITCH 44621 44622 __1511: 44623 ; 44624 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 44625 if !(fc >= 0xc0) { 44626 goto __1514 44627 } 44628 if !(fc&0x20 == Tuint32_t(0)) { 44629 goto __1515 44630 } 44631 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 44632 goto __1516 44633 __1515: 44634 if !(fc&0x10 == Tuint32_t(0)) { 44635 goto __1517 44636 } 44637 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 44638 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 44639 goto __1518 44640 __1517: 44641 if !(fc&0x08 == Tuint32_t(0)) { 44642 goto __1519 44643 } 44644 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 44645 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 44646 goto __1520 44647 __1519: 44648 if !(fc&0x04 == Tuint32_t(0)) { 44649 goto __1521 44650 } 44651 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 44652 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 44653 goto __1522 44654 __1521: 44655 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 44656 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 44657 __1522: 44658 ; 44659 __1520: 44660 ; 44661 __1518: 44662 ; 44663 __1516: 44664 ; 44665 __1514: 44666 ; 44667 44668 switch fc { 44669 case Tuint32_t('\011'): 44670 goto __1524 44671 case Tuint32_t('\040'): 44672 goto __1525 44673 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 44674 goto __1526 44675 case Tuint32_t(0x1680): 44676 goto __1527 /* OGHAM SPACE MARK */ 44677 case Tuint32_t(0x180e): 44678 goto __1528 /* MONGOLIAN VOWEL SEPARATOR */ 44679 case Tuint32_t(0x2000): 44680 goto __1529 /* EN QUAD */ 44681 case Tuint32_t(0x2001): 44682 goto __1530 /* EM QUAD */ 44683 case Tuint32_t(0x2002): 44684 goto __1531 /* EN SPACE */ 44685 case Tuint32_t(0x2003): 44686 goto __1532 /* EM SPACE */ 44687 case Tuint32_t(0x2004): 44688 goto __1533 /* THREE-PER-EM SPACE */ 44689 case Tuint32_t(0x2005): 44690 goto __1534 /* FOUR-PER-EM SPACE */ 44691 case Tuint32_t(0x2006): 44692 goto __1535 /* SIX-PER-EM SPACE */ 44693 case Tuint32_t(0x2007): 44694 goto __1536 /* FIGURE SPACE */ 44695 case Tuint32_t(0x2008): 44696 goto __1537 /* PUNCTUATION SPACE */ 44697 case Tuint32_t(0x2009): 44698 goto __1538 /* THIN SPACE */ 44699 case Tuint32_t(0x200A): 44700 goto __1539 /* HAIR SPACE */ 44701 case Tuint32_t(0x202f): 44702 goto __1540 /* NARROW NO-BREAK SPACE */ 44703 case Tuint32_t(0x205f): 44704 goto __1541 /* MEDIUM MATHEMATICAL SPACE */ 44705 case Tuint32_t(0x3000): 44706 goto __1542 44707 default: 44708 goto __1543 44709 } 44710 goto __1523 44711 44712 __1524: 44713 __1525: 44714 __1526: 44715 __1527: /* OGHAM SPACE MARK */ 44716 __1528: /* MONGOLIAN VOWEL SEPARATOR */ 44717 __1529: /* EN QUAD */ 44718 __1530: /* EM QUAD */ 44719 __1531: /* EN SPACE */ 44720 __1532: /* EM SPACE */ 44721 __1533: /* THREE-PER-EM SPACE */ 44722 __1534: /* FOUR-PER-EM SPACE */ 44723 __1535: /* SIX-PER-EM SPACE */ 44724 __1536: /* FIGURE SPACE */ 44725 __1537: /* PUNCTUATION SPACE */ 44726 __1538: /* THIN SPACE */ 44727 __1539: /* HAIR SPACE */ 44728 __1540: /* NARROW NO-BREAK SPACE */ 44729 __1541: /* MEDIUM MATHEMATICAL SPACE */ 44730 __1542: 44731 goto __1523 44732 __1543: 44733 rrc = DMATCH_NOMATCH 44734 goto RETURN_SWITCH 44735 44736 __1523: 44737 ; 44738 goto __1509 44739 __1509: 44740 i++ 44741 goto __1508 44742 goto __1510 44743 __1510: 44744 ; 44745 goto __1410 44746 44747 __1417: 44748 i = Tuint32_t(1) 44749 __1544: 44750 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 44751 goto __1546 44752 } 44753 44754 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 44755 goto __1547 44756 } 44757 44758 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 44759 goto __1548 44760 } 44761 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 44762 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 44763 goto __1549 44764 } 44765 return -2 44766 __1549: 44767 ; 44768 __1548: 44769 ; 44770 44771 rrc = DMATCH_NOMATCH 44772 goto RETURN_SWITCH 44773 44774 __1547: 44775 ; 44776 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 44777 if !(fc >= 0xc0) { 44778 goto __1550 44779 } 44780 if !(fc&0x20 == Tuint32_t(0)) { 44781 goto __1551 44782 } 44783 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 44784 goto __1552 44785 __1551: 44786 if !(fc&0x10 == Tuint32_t(0)) { 44787 goto __1553 44788 } 44789 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 44790 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 44791 goto __1554 44792 __1553: 44793 if !(fc&0x08 == Tuint32_t(0)) { 44794 goto __1555 44795 } 44796 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 44797 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 44798 goto __1556 44799 __1555: 44800 if !(fc&0x04 == Tuint32_t(0)) { 44801 goto __1557 44802 } 44803 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 44804 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 44805 goto __1558 44806 __1557: 44807 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 44808 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 44809 __1558: 44810 ; 44811 __1556: 44812 ; 44813 __1554: 44814 ; 44815 __1552: 44816 ; 44817 __1550: 44818 ; 44819 44820 switch fc { 44821 case Tuint32_t('\012'): 44822 goto __1560 44823 case Tuint32_t('\013'): 44824 goto __1561 44825 case Tuint32_t('\014'): 44826 goto __1562 44827 case Tuint32_t('\015'): 44828 goto __1563 44829 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 44830 goto __1564 44831 case Tuint32_t(0x2028): 44832 goto __1565 /* LINE SEPARATOR */ 44833 case Tuint32_t(0x2029): 44834 goto __1566 44835 default: 44836 goto __1567 44837 } 44838 goto __1559 44839 44840 __1560: 44841 __1561: 44842 __1562: 44843 __1563: 44844 __1564: 44845 __1565: /* LINE SEPARATOR */ 44846 __1566: 44847 rrc = DMATCH_NOMATCH 44848 goto RETURN_SWITCH 44849 44850 __1567: 44851 goto __1559 44852 __1559: 44853 ; 44854 goto __1545 44855 __1545: 44856 i++ 44857 goto __1544 44858 goto __1546 44859 __1546: 44860 ; 44861 goto __1410 44862 44863 __1418: 44864 i = Tuint32_t(1) 44865 __1568: 44866 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 44867 goto __1570 44868 } 44869 44870 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 44871 goto __1571 44872 } 44873 44874 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 44875 goto __1572 44876 } 44877 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 44878 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 44879 goto __1573 44880 } 44881 return -2 44882 __1573: 44883 ; 44884 __1572: 44885 ; 44886 44887 rrc = DMATCH_NOMATCH 44888 goto RETURN_SWITCH 44889 44890 __1571: 44891 ; 44892 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 44893 if !(fc >= 0xc0) { 44894 goto __1574 44895 } 44896 if !(fc&0x20 == Tuint32_t(0)) { 44897 goto __1575 44898 } 44899 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 44900 goto __1576 44901 __1575: 44902 if !(fc&0x10 == Tuint32_t(0)) { 44903 goto __1577 44904 } 44905 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 44906 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 44907 goto __1578 44908 __1577: 44909 if !(fc&0x08 == Tuint32_t(0)) { 44910 goto __1579 44911 } 44912 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 44913 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 44914 goto __1580 44915 __1579: 44916 if !(fc&0x04 == Tuint32_t(0)) { 44917 goto __1581 44918 } 44919 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 44920 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 44921 goto __1582 44922 __1581: 44923 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 44924 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 44925 __1582: 44926 ; 44927 __1580: 44928 ; 44929 __1578: 44930 ; 44931 __1576: 44932 ; 44933 __1574: 44934 ; 44935 44936 switch fc { 44937 case Tuint32_t('\012'): 44938 goto __1584 44939 case Tuint32_t('\013'): 44940 goto __1585 44941 case Tuint32_t('\014'): 44942 goto __1586 44943 case Tuint32_t('\015'): 44944 goto __1587 44945 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 44946 goto __1588 44947 case Tuint32_t(0x2028): 44948 goto __1589 /* LINE SEPARATOR */ 44949 case Tuint32_t(0x2029): 44950 goto __1590 44951 default: 44952 goto __1591 44953 } 44954 goto __1583 44955 44956 __1584: 44957 __1585: 44958 __1586: 44959 __1587: 44960 __1588: 44961 __1589: /* LINE SEPARATOR */ 44962 __1590: 44963 goto __1583 44964 __1591: 44965 rrc = DMATCH_NOMATCH 44966 goto RETURN_SWITCH 44967 44968 __1583: 44969 ; 44970 goto __1569 44971 __1569: 44972 i++ 44973 goto __1568 44974 goto __1570 44975 __1570: 44976 ; 44977 goto __1410 44978 44979 __1419: 44980 i = Tuint32_t(1) 44981 __1592: 44982 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 44983 goto __1594 44984 } 44985 44986 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 44987 goto __1595 44988 } 44989 44990 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 44991 goto __1596 44992 } 44993 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 44994 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 44995 goto __1597 44996 } 44997 return -2 44998 __1597: 44999 ; 45000 __1596: 45001 ; 45002 45003 rrc = DMATCH_NOMATCH 45004 goto RETURN_SWITCH 45005 45006 __1595: 45007 ; 45008 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 45009 if !(fc >= 0xc0) { 45010 goto __1598 45011 } 45012 if !(fc&0x20 == Tuint32_t(0)) { 45013 goto __1599 45014 } 45015 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 45016 goto __1600 45017 __1599: 45018 if !(fc&0x10 == Tuint32_t(0)) { 45019 goto __1601 45020 } 45021 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 45022 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 45023 goto __1602 45024 __1601: 45025 if !(fc&0x08 == Tuint32_t(0)) { 45026 goto __1603 45027 } 45028 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 45029 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 45030 goto __1604 45031 __1603: 45032 if !(fc&0x04 == Tuint32_t(0)) { 45033 goto __1605 45034 } 45035 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 45036 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 45037 goto __1606 45038 __1605: 45039 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 45040 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 45041 __1606: 45042 ; 45043 __1604: 45044 ; 45045 __1602: 45046 ; 45047 __1600: 45048 ; 45049 __1598: 45050 ; 45051 45052 if !(fc < Tuint32_t(128) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_digit != 0) { 45053 goto __1607 45054 } 45055 rrc = DMATCH_NOMATCH 45056 goto RETURN_SWITCH 45057 __1607: 45058 ; 45059 45060 goto __1593 45061 __1593: 45062 i++ 45063 goto __1592 45064 goto __1594 45065 __1594: 45066 ; 45067 goto __1410 45068 45069 __1420: 45070 i = Tuint32_t(1) 45071 __1608: 45072 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 45073 goto __1610 45074 } 45075 45076 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45077 goto __1611 45078 } 45079 45080 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 45081 goto __1612 45082 } 45083 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45084 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45085 goto __1613 45086 } 45087 return -2 45088 __1613: 45089 ; 45090 __1612: 45091 ; 45092 45093 rrc = DMATCH_NOMATCH 45094 goto RETURN_SWITCH 45095 45096 __1611: 45097 ; 45098 cc5 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 45099 if !(cc5 >= Tuint32_t(128) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(cc5))))&Dctype_digit == 0) { 45100 goto __1614 45101 } 45102 rrc = DMATCH_NOMATCH 45103 goto RETURN_SWITCH 45104 __1614: 45105 ; 45106 45107 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45108 // No need to skip more code units - we know it has only one. 45109 goto __1609 45110 __1609: 45111 i++ 45112 goto __1608 45113 goto __1610 45114 __1610: 45115 ; 45116 goto __1410 45117 45118 __1421: 45119 i = Tuint32_t(1) 45120 __1615: 45121 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 45122 goto __1617 45123 } 45124 45125 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45126 goto __1618 45127 } 45128 45129 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 45130 goto __1619 45131 } 45132 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45133 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45134 goto __1620 45135 } 45136 return -2 45137 __1620: 45138 ; 45139 __1619: 45140 ; 45141 45142 rrc = DMATCH_NOMATCH 45143 goto RETURN_SWITCH 45144 45145 __1618: 45146 ; 45147 cc6 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 45148 if !(cc6 < Tuint32_t(128) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(cc6))))&Dctype_space != 0) { 45149 goto __1621 45150 } 45151 rrc = DMATCH_NOMATCH 45152 goto RETURN_SWITCH 45153 __1621: 45154 ; 45155 45156 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45157 __1622: 45158 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 45159 goto __1623 45160 } 45161 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45162 goto __1622 45163 __1623: 45164 ; 45165 goto __1616 45166 __1616: 45167 i++ 45168 goto __1615 45169 goto __1617 45170 __1617: 45171 ; 45172 goto __1410 45173 45174 __1422: 45175 i = Tuint32_t(1) 45176 __1624: 45177 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 45178 goto __1626 45179 } 45180 45181 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45182 goto __1627 45183 } 45184 45185 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 45186 goto __1628 45187 } 45188 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45189 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45190 goto __1629 45191 } 45192 return -2 45193 __1629: 45194 ; 45195 __1628: 45196 ; 45197 45198 rrc = DMATCH_NOMATCH 45199 goto RETURN_SWITCH 45200 45201 __1627: 45202 ; 45203 cc7 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 45204 if !(cc7 >= Tuint32_t(128) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(cc7))))&Dctype_space == 0) { 45205 goto __1630 45206 } 45207 rrc = DMATCH_NOMATCH 45208 goto RETURN_SWITCH 45209 __1630: 45210 ; 45211 45212 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45213 // No need to skip more code units - we know it has only one. 45214 goto __1625 45215 __1625: 45216 i++ 45217 goto __1624 45218 goto __1626 45219 __1626: 45220 ; 45221 goto __1410 45222 45223 __1423: 45224 i = Tuint32_t(1) 45225 __1631: 45226 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 45227 goto __1633 45228 } 45229 45230 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45231 goto __1634 45232 } 45233 45234 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 45235 goto __1635 45236 } 45237 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45238 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45239 goto __1636 45240 } 45241 return -2 45242 __1636: 45243 ; 45244 __1635: 45245 ; 45246 45247 rrc = DMATCH_NOMATCH 45248 goto RETURN_SWITCH 45249 45250 __1634: 45251 ; 45252 cc8 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 45253 if !(cc8 < Tuint32_t(128) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(cc8))))&Dctype_word != 0) { 45254 goto __1637 45255 } 45256 rrc = DMATCH_NOMATCH 45257 goto RETURN_SWITCH 45258 __1637: 45259 ; 45260 45261 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45262 __1638: 45263 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 45264 goto __1639 45265 } 45266 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45267 goto __1638 45268 __1639: 45269 ; 45270 goto __1632 45271 __1632: 45272 i++ 45273 goto __1631 45274 goto __1633 45275 __1633: 45276 ; 45277 goto __1410 45278 45279 __1424: 45280 i = Tuint32_t(1) 45281 __1640: 45282 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 45283 goto __1642 45284 } 45285 45286 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45287 goto __1643 45288 } 45289 45290 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 45291 goto __1644 45292 } 45293 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45294 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45295 goto __1645 45296 } 45297 return -2 45298 __1645: 45299 ; 45300 __1644: 45301 ; 45302 45303 rrc = DMATCH_NOMATCH 45304 goto RETURN_SWITCH 45305 45306 __1643: 45307 ; 45308 cc9 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 45309 if !(cc9 >= Tuint32_t(128) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(cc9))))&Dctype_word == 0) { 45310 goto __1646 45311 } 45312 rrc = DMATCH_NOMATCH 45313 goto RETURN_SWITCH 45314 __1646: 45315 ; 45316 45317 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45318 // No need to skip more code units - we know it has only one. 45319 goto __1641 45320 __1641: 45321 i++ 45322 goto __1640 45323 goto __1642 45324 __1642: 45325 ; 45326 goto __1410 45327 45328 __1425: 45329 return -44 45330 __1410: 45331 ; 45332 goto __1409 45333 __1408: 45334 45335 // Code for the non-UTF case for minimum matching of operators other 45336 // than OP_PROP and OP_NOTPROP. 45337 45338 switch *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) { 45339 case OP_ANY: 45340 goto __1648 45341 45342 case OP_ALLANY: 45343 goto __1649 45344 45345 // This OP_ANYBYTE case will never be reached because \C gets turned 45346 // into OP_ALLANY in non-UTF mode. Cut out the code so that coverage 45347 // reports don't complain about it's never being used. 45348 45349 // case OP_ANYBYTE: 45350 // if (Feptr > mb->end_subject - Lmin) 45351 // { 45352 // SCHECK_PARTIAL(); 45353 // RRETURN(MATCH_NOMATCH); 45354 // } 45355 // Feptr += Lmin; 45356 // break; 45357 case OP_ANYNL: 45358 goto __1650 45359 45360 case OP_NOT_HSPACE: 45361 goto __1651 45362 45363 case OP_HSPACE: 45364 goto __1652 45365 45366 case OP_NOT_VSPACE: 45367 goto __1653 45368 45369 case OP_VSPACE: 45370 goto __1654 45371 45372 case OP_NOT_DIGIT: 45373 goto __1655 45374 45375 case OP_DIGIT: 45376 goto __1656 45377 45378 case OP_NOT_WHITESPACE: 45379 goto __1657 45380 45381 case OP_WHITESPACE: 45382 goto __1658 45383 45384 case OP_NOT_WORDCHAR: 45385 goto __1659 45386 45387 case OP_WORDCHAR: 45388 goto __1660 45389 45390 default: 45391 goto __1661 45392 } 45393 goto __1647 45394 45395 __1648: 45396 i = Tuint32_t(1) 45397 __1662: 45398 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 45399 goto __1664 45400 } 45401 45402 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45403 goto __1665 45404 } 45405 45406 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 45407 goto __1666 45408 } 45409 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45410 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45411 goto __1667 45412 } 45413 return -2 45414 __1667: 45415 ; 45416 __1666: 45417 ; 45418 45419 rrc = DMATCH_NOMATCH 45420 goto RETURN_SWITCH 45421 45422 __1665: 45423 ; 45424 if !(func() int32 { 45425 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 45426 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, (*Theapframe)(unsafe.Pointer(F)).Feptr, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+256, utf) != 0) 45427 } 45428 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260))) && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260 + 1))))) 45429 }() != 0) { 45430 goto __1668 45431 } 45432 rrc = DMATCH_NOMATCH 45433 goto RETURN_SWITCH 45434 __1668: 45435 ; 45436 45437 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && (*Theapframe)(unsafe.Pointer(F)).Feptr+uintptr(1) >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_FIXED) && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260)))) { 45438 goto __1669 45439 } 45440 45441 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45442 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45443 goto __1670 45444 } 45445 return -2 45446 __1670: 45447 ; 45448 __1669: 45449 ; 45450 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45451 goto __1663 45452 __1663: 45453 i++ 45454 goto __1662 45455 goto __1664 45456 __1664: 45457 ; 45458 goto __1647 45459 45460 __1649: 45461 if !((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr(*(*Tuint32_t)(unsafe.Pointer(F + 56)))) { 45462 goto __1671 45463 } 45464 45465 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 45466 goto __1672 45467 } 45468 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45469 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45470 goto __1673 45471 } 45472 return -2 45473 __1673: 45474 ; 45475 __1672: 45476 ; 45477 45478 rrc = DMATCH_NOMATCH 45479 goto RETURN_SWITCH 45480 45481 __1671: 45482 ; 45483 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(*(*Tuint32_t)(unsafe.Pointer(F + 56))) 45484 goto __1647 45485 45486 // This OP_ANYBYTE case will never be reached because \C gets turned 45487 // into OP_ALLANY in non-UTF mode. Cut out the code so that coverage 45488 // reports don't complain about it's never being used. 45489 45490 // case OP_ANYBYTE: 45491 // if (Feptr > mb->end_subject - Lmin) 45492 // { 45493 // SCHECK_PARTIAL(); 45494 // RRETURN(MATCH_NOMATCH); 45495 // } 45496 // Feptr += Lmin; 45497 // break; 45498 __1650: 45499 i = Tuint32_t(1) 45500 __1674: 45501 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 45502 goto __1676 45503 } 45504 45505 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45506 goto __1677 45507 } 45508 45509 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 45510 goto __1678 45511 } 45512 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45513 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45514 goto __1679 45515 } 45516 return -2 45517 __1679: 45518 ; 45519 __1678: 45520 ; 45521 45522 rrc = DMATCH_NOMATCH 45523 goto RETURN_SWITCH 45524 45525 __1677: 45526 ; 45527 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) { 45528 default: 45529 goto __1681 45530 45531 case '\015': 45532 goto __1682 45533 45534 case '\012': 45535 goto __1683 45536 45537 case '\013': 45538 goto __1684 45539 case '\014': 45540 goto __1685 45541 case int32(libc.Uint8FromInt32(133)): 45542 goto __1686 45543 } 45544 goto __1680 45545 45546 __1681: 45547 rrc = DMATCH_NOMATCH 45548 goto RETURN_SWITCH 45549 45550 __1682: 45551 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == '\012') { 45552 goto __1687 45553 } 45554 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45555 __1687: 45556 ; 45557 goto __1680 45558 45559 __1683: 45560 goto __1680 45561 45562 __1684: 45563 __1685: 45564 __1686: 45565 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fbsr_convention) == DPCRE2_BSR_ANYCRLF) { 45566 goto __1688 45567 } 45568 rrc = DMATCH_NOMATCH 45569 goto RETURN_SWITCH 45570 __1688: 45571 ; 45572 45573 goto __1680 45574 __1680: 45575 ; 45576 goto __1675 45577 __1675: 45578 i++ 45579 goto __1674 45580 goto __1676 45581 __1676: 45582 ; 45583 goto __1647 45584 45585 __1651: 45586 i = Tuint32_t(1) 45587 __1689: 45588 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 45589 goto __1691 45590 } 45591 45592 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45593 goto __1692 45594 } 45595 45596 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 45597 goto __1693 45598 } 45599 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45600 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45601 goto __1694 45602 } 45603 return -2 45604 __1694: 45605 ; 45606 __1693: 45607 ; 45608 45609 rrc = DMATCH_NOMATCH 45610 goto RETURN_SWITCH 45611 45612 __1692: 45613 ; 45614 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) { 45615 default: 45616 goto __1696 45617 case '\011': 45618 goto __1697 45619 case '\040': 45620 goto __1698 45621 case int32(libc.Uint8FromInt32(160)): 45622 goto __1699 45623 } 45624 goto __1695 45625 45626 __1696: 45627 goto __1695 45628 __1697: 45629 __1698: 45630 __1699: 45631 rrc = DMATCH_NOMATCH 45632 goto RETURN_SWITCH 45633 45634 __1695: 45635 ; 45636 goto __1690 45637 __1690: 45638 i++ 45639 goto __1689 45640 goto __1691 45641 __1691: 45642 ; 45643 goto __1647 45644 45645 __1652: 45646 i = Tuint32_t(1) 45647 __1700: 45648 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 45649 goto __1702 45650 } 45651 45652 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45653 goto __1703 45654 } 45655 45656 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 45657 goto __1704 45658 } 45659 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45660 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45661 goto __1705 45662 } 45663 return -2 45664 __1705: 45665 ; 45666 __1704: 45667 ; 45668 45669 rrc = DMATCH_NOMATCH 45670 goto RETURN_SWITCH 45671 45672 __1703: 45673 ; 45674 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) { 45675 default: 45676 goto __1707 45677 case '\011': 45678 goto __1708 45679 case '\040': 45680 goto __1709 45681 case int32(libc.Uint8FromInt32(160)): 45682 goto __1710 45683 } 45684 goto __1706 45685 45686 __1707: 45687 rrc = DMATCH_NOMATCH 45688 goto RETURN_SWITCH 45689 45690 __1708: 45691 __1709: 45692 __1710: 45693 goto __1706 45694 __1706: 45695 ; 45696 goto __1701 45697 __1701: 45698 i++ 45699 goto __1700 45700 goto __1702 45701 __1702: 45702 ; 45703 goto __1647 45704 45705 __1653: 45706 i = Tuint32_t(1) 45707 __1711: 45708 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 45709 goto __1713 45710 } 45711 45712 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45713 goto __1714 45714 } 45715 45716 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 45717 goto __1715 45718 } 45719 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45720 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45721 goto __1716 45722 } 45723 return -2 45724 __1716: 45725 ; 45726 __1715: 45727 ; 45728 45729 rrc = DMATCH_NOMATCH 45730 goto RETURN_SWITCH 45731 45732 __1714: 45733 ; 45734 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) { 45735 case '\012': 45736 goto __1718 45737 case '\013': 45738 goto __1719 45739 case '\014': 45740 goto __1720 45741 case '\015': 45742 goto __1721 45743 case int32(libc.Uint8FromInt32(133)): 45744 goto __1722 45745 default: 45746 goto __1723 45747 } 45748 goto __1717 45749 45750 __1718: 45751 __1719: 45752 __1720: 45753 __1721: 45754 __1722: 45755 rrc = DMATCH_NOMATCH 45756 goto RETURN_SWITCH 45757 45758 __1723: 45759 goto __1717 45760 __1717: 45761 ; 45762 goto __1712 45763 __1712: 45764 i++ 45765 goto __1711 45766 goto __1713 45767 __1713: 45768 ; 45769 goto __1647 45770 45771 __1654: 45772 i = Tuint32_t(1) 45773 __1724: 45774 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 45775 goto __1726 45776 } 45777 45778 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45779 goto __1727 45780 } 45781 45782 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 45783 goto __1728 45784 } 45785 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45786 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45787 goto __1729 45788 } 45789 return -2 45790 __1729: 45791 ; 45792 __1728: 45793 ; 45794 45795 rrc = DMATCH_NOMATCH 45796 goto RETURN_SWITCH 45797 45798 __1727: 45799 ; 45800 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) { 45801 default: 45802 goto __1731 45803 case '\012': 45804 goto __1732 45805 case '\013': 45806 goto __1733 45807 case '\014': 45808 goto __1734 45809 case '\015': 45810 goto __1735 45811 case int32(libc.Uint8FromInt32(133)): 45812 goto __1736 45813 } 45814 goto __1730 45815 45816 __1731: 45817 rrc = DMATCH_NOMATCH 45818 goto RETURN_SWITCH 45819 45820 __1732: 45821 __1733: 45822 __1734: 45823 __1735: 45824 __1736: 45825 goto __1730 45826 __1730: 45827 ; 45828 goto __1725 45829 __1725: 45830 i++ 45831 goto __1724 45832 goto __1726 45833 __1726: 45834 ; 45835 goto __1647 45836 45837 __1655: 45838 i = Tuint32_t(1) 45839 __1737: 45840 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 45841 goto __1739 45842 } 45843 45844 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45845 goto __1740 45846 } 45847 45848 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 45849 goto __1741 45850 } 45851 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45852 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45853 goto __1742 45854 } 45855 return -2 45856 __1742: 45857 ; 45858 __1741: 45859 ; 45860 45861 rrc = DMATCH_NOMATCH 45862 goto RETURN_SWITCH 45863 45864 __1740: 45865 ; 45866 if !(1 != 0 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))))))&Dctype_digit != 0) { 45867 goto __1743 45868 } 45869 rrc = DMATCH_NOMATCH 45870 goto RETURN_SWITCH 45871 __1743: 45872 ; 45873 45874 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45875 goto __1738 45876 __1738: 45877 i++ 45878 goto __1737 45879 goto __1739 45880 __1739: 45881 ; 45882 goto __1647 45883 45884 __1656: 45885 i = Tuint32_t(1) 45886 __1744: 45887 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 45888 goto __1746 45889 } 45890 45891 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45892 goto __1747 45893 } 45894 45895 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 45896 goto __1748 45897 } 45898 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45899 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45900 goto __1749 45901 } 45902 return -2 45903 __1749: 45904 ; 45905 __1748: 45906 ; 45907 45908 rrc = DMATCH_NOMATCH 45909 goto RETURN_SWITCH 45910 45911 __1747: 45912 ; 45913 if !(!(1 != 0) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))))))&Dctype_digit == 0) { 45914 goto __1750 45915 } 45916 rrc = DMATCH_NOMATCH 45917 goto RETURN_SWITCH 45918 __1750: 45919 ; 45920 45921 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45922 goto __1745 45923 __1745: 45924 i++ 45925 goto __1744 45926 goto __1746 45927 __1746: 45928 ; 45929 goto __1647 45930 45931 __1657: 45932 i = Tuint32_t(1) 45933 __1751: 45934 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 45935 goto __1753 45936 } 45937 45938 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45939 goto __1754 45940 } 45941 45942 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 45943 goto __1755 45944 } 45945 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45946 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45947 goto __1756 45948 } 45949 return -2 45950 __1756: 45951 ; 45952 __1755: 45953 ; 45954 45955 rrc = DMATCH_NOMATCH 45956 goto RETURN_SWITCH 45957 45958 __1754: 45959 ; 45960 if !(1 != 0 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))))))&Dctype_space != 0) { 45961 goto __1757 45962 } 45963 rrc = DMATCH_NOMATCH 45964 goto RETURN_SWITCH 45965 __1757: 45966 ; 45967 45968 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 45969 goto __1752 45970 __1752: 45971 i++ 45972 goto __1751 45973 goto __1753 45974 __1753: 45975 ; 45976 goto __1647 45977 45978 __1658: 45979 i = Tuint32_t(1) 45980 __1758: 45981 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 45982 goto __1760 45983 } 45984 45985 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 45986 goto __1761 45987 } 45988 45989 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 45990 goto __1762 45991 } 45992 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 45993 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 45994 goto __1763 45995 } 45996 return -2 45997 __1763: 45998 ; 45999 __1762: 46000 ; 46001 46002 rrc = DMATCH_NOMATCH 46003 goto RETURN_SWITCH 46004 46005 __1761: 46006 ; 46007 if !(!(1 != 0) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))))))&Dctype_space == 0) { 46008 goto __1764 46009 } 46010 rrc = DMATCH_NOMATCH 46011 goto RETURN_SWITCH 46012 __1764: 46013 ; 46014 46015 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 46016 goto __1759 46017 __1759: 46018 i++ 46019 goto __1758 46020 goto __1760 46021 __1760: 46022 ; 46023 goto __1647 46024 46025 __1659: 46026 i = Tuint32_t(1) 46027 __1765: 46028 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 46029 goto __1767 46030 } 46031 46032 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 46033 goto __1768 46034 } 46035 46036 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 46037 goto __1769 46038 } 46039 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 46040 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 46041 goto __1770 46042 } 46043 return -2 46044 __1770: 46045 ; 46046 __1769: 46047 ; 46048 46049 rrc = DMATCH_NOMATCH 46050 goto RETURN_SWITCH 46051 46052 __1768: 46053 ; 46054 if !(1 != 0 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))))))&Dctype_word != 0) { 46055 goto __1771 46056 } 46057 rrc = DMATCH_NOMATCH 46058 goto RETURN_SWITCH 46059 __1771: 46060 ; 46061 46062 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 46063 goto __1766 46064 __1766: 46065 i++ 46066 goto __1765 46067 goto __1767 46068 __1767: 46069 ; 46070 goto __1647 46071 46072 __1660: 46073 i = Tuint32_t(1) 46074 __1772: 46075 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 46076 goto __1774 46077 } 46078 46079 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 46080 goto __1775 46081 } 46082 46083 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 46084 goto __1776 46085 } 46086 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 46087 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 46088 goto __1777 46089 } 46090 return -2 46091 __1777: 46092 ; 46093 __1776: 46094 ; 46095 46096 rrc = DMATCH_NOMATCH 46097 goto RETURN_SWITCH 46098 46099 __1775: 46100 ; 46101 if !(!(1 != 0) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))))))&Dctype_word == 0) { 46102 goto __1778 46103 } 46104 rrc = DMATCH_NOMATCH 46105 goto RETURN_SWITCH 46106 __1778: 46107 ; 46108 46109 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 46110 goto __1773 46111 __1773: 46112 i++ 46113 goto __1772 46114 goto __1774 46115 __1774: 46116 ; 46117 goto __1647 46118 46119 __1661: 46120 return -44 46121 __1647: 46122 ; 46123 __1409: 46124 ; 46125 __1388: 46126 ; 46127 __1127: 46128 ; 46129 __1125: 46130 ; 46131 46132 // If Lmin = Lmax we are done. Continue with the main loop. 46133 46134 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56)) == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 46135 goto __1779 46136 } 46137 goto __11 46138 __1779: 46139 ; 46140 46141 // If minimizing, we have to test the rest of the pattern before each 46142 // subsequent match. This means we cannot use a local "notmatch" variable as 46143 // in the other cases. As all 4 temporary 32-bit values in the frame are 46144 // already in use, just test the type each time. 46145 46146 if !(reptype == REPTYPE_MIN) { 46147 goto __1780 46148 } 46149 46150 if !(proptype >= 0) { 46151 goto __1782 46152 } 46153 46154 switch proptype { 46155 case DPT_ANY: 46156 goto __1785 46157 // Control never gets here 46158 46159 case DPT_LAMP: 46160 goto __1786 46161 // Control never gets here 46162 46163 case DPT_GC: 46164 goto __1787 46165 // Control never gets here 46166 46167 case DPT_PC: 46168 goto __1788 46169 // Control never gets here 46170 46171 case DPT_SC: 46172 goto __1789 46173 // Control never gets here 46174 46175 case DPT_SCX: 46176 goto __1790 46177 // Control never gets here 46178 46179 case DPT_ALNUM: 46180 goto __1791 46181 // Control never gets here 46182 46183 // Perl space used to exclude VT, but from Perl 5.18 it is included, 46184 // which means that Perl space and POSIX space are now identical. PCRE 46185 // was changed at release 8.34. 46186 46187 case DPT_SPACE: 46188 goto __1792 // Perl space 46189 case DPT_PXSPACE: 46190 goto __1793 46191 // Control never gets here 46192 46193 case DPT_WORD: 46194 goto __1794 46195 // Control never gets here 46196 46197 case DPT_CLIST: 46198 goto __1795 46199 // Control never gets here 46200 46201 case DPT_UCNC: 46202 goto __1796 46203 // Control never gets here 46204 46205 case DPT_BIDICL: 46206 goto __1797 46207 // Control never gets here 46208 46209 case DPT_BOOL: 46210 goto __1798 46211 // Control never gets here 46212 46213 // This should never occur 46214 default: 46215 goto __1799 46216 } 46217 goto __1784 46218 46219 __1785: 46220 __1800: 46221 46222 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 46223 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM208 46224 goto MATCH_RECURSE 46225 L_RM208: 46226 ; 46227 46228 if !(rrc != DMATCH_NOMATCH) { 46229 goto __1803 46230 } 46231 rrc = rrc 46232 goto RETURN_SWITCH 46233 __1803: 46234 ; 46235 46236 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 46237 goto __1804 46238 } 46239 rrc = DMATCH_NOMATCH 46240 goto RETURN_SWITCH 46241 __1804: 46242 ; 46243 46244 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 46245 goto __1805 46246 } 46247 46248 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 46249 goto __1806 46250 } 46251 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 46252 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 46253 goto __1807 46254 } 46255 return -2 46256 __1807: 46257 ; 46258 __1806: 46259 ; 46260 46261 rrc = DMATCH_NOMATCH 46262 goto RETURN_SWITCH 46263 46264 __1805: 46265 ; 46266 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 46267 if !(utf != 0 && fc >= 0xc0) { 46268 goto __1808 46269 } 46270 if !(fc&0x20 == Tuint32_t(0)) { 46271 goto __1809 46272 } 46273 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 46274 goto __1810 46275 __1809: 46276 if !(fc&0x10 == Tuint32_t(0)) { 46277 goto __1811 46278 } 46279 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 46280 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 46281 goto __1812 46282 __1811: 46283 if !(fc&0x08 == Tuint32_t(0)) { 46284 goto __1813 46285 } 46286 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 46287 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 46288 goto __1814 46289 __1813: 46290 if !(fc&0x04 == Tuint32_t(0)) { 46291 goto __1815 46292 } 46293 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 46294 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 46295 goto __1816 46296 __1815: 46297 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 46298 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 46299 __1816: 46300 ; 46301 __1814: 46302 ; 46303 __1812: 46304 ; 46305 __1810: 46306 ; 46307 __1808: 46308 ; 46309 46310 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOTPROP) { 46311 goto __1817 46312 } 46313 rrc = DMATCH_NOMATCH 46314 goto RETURN_SWITCH 46315 __1817: 46316 ; 46317 46318 goto __1801 46319 __1801: 46320 goto __1800 46321 goto __1802 46322 __1802: 46323 ; 46324 // Control never gets here 46325 46326 __1786: 46327 __1818: 46328 46329 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 46330 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM209 46331 goto MATCH_RECURSE 46332 L_RM209: 46333 ; 46334 46335 if !(rrc != DMATCH_NOMATCH) { 46336 goto __1821 46337 } 46338 rrc = rrc 46339 goto RETURN_SWITCH 46340 __1821: 46341 ; 46342 46343 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 46344 goto __1822 46345 } 46346 rrc = DMATCH_NOMATCH 46347 goto RETURN_SWITCH 46348 __1822: 46349 ; 46350 46351 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 46352 goto __1823 46353 } 46354 46355 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 46356 goto __1824 46357 } 46358 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 46359 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 46360 goto __1825 46361 } 46362 return -2 46363 __1825: 46364 ; 46365 __1824: 46366 ; 46367 46368 rrc = DMATCH_NOMATCH 46369 goto RETURN_SWITCH 46370 46371 __1823: 46372 ; 46373 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 46374 if !(utf != 0 && fc >= 0xc0) { 46375 goto __1826 46376 } 46377 if !(fc&0x20 == Tuint32_t(0)) { 46378 goto __1827 46379 } 46380 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 46381 goto __1828 46382 __1827: 46383 if !(fc&0x10 == Tuint32_t(0)) { 46384 goto __1829 46385 } 46386 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 46387 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 46388 goto __1830 46389 __1829: 46390 if !(fc&0x08 == Tuint32_t(0)) { 46391 goto __1831 46392 } 46393 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 46394 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 46395 goto __1832 46396 __1831: 46397 if !(fc&0x04 == Tuint32_t(0)) { 46398 goto __1833 46399 } 46400 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 46401 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 46402 goto __1834 46403 __1833: 46404 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 46405 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 46406 __1834: 46407 ; 46408 __1832: 46409 ; 46410 __1830: 46411 ; 46412 __1828: 46413 ; 46414 __1826: 46415 ; 46416 46417 chartype1 = int32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype) 46418 if !(libc.Bool32(chartype1 == ucp_Lu || chartype1 == ucp_Ll || chartype1 == ucp_Lt) == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOTPROP)) { 46419 goto __1835 46420 } 46421 rrc = DMATCH_NOMATCH 46422 goto RETURN_SWITCH 46423 __1835: 46424 ; 46425 46426 goto __1819 46427 __1819: 46428 goto __1818 46429 goto __1820 46430 __1820: 46431 ; 46432 // Control never gets here 46433 46434 __1787: 46435 __1836: 46436 46437 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 46438 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM210 46439 goto MATCH_RECURSE 46440 L_RM210: 46441 ; 46442 46443 if !(rrc != DMATCH_NOMATCH) { 46444 goto __1839 46445 } 46446 rrc = rrc 46447 goto RETURN_SWITCH 46448 __1839: 46449 ; 46450 46451 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 46452 goto __1840 46453 } 46454 rrc = DMATCH_NOMATCH 46455 goto RETURN_SWITCH 46456 __1840: 46457 ; 46458 46459 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 46460 goto __1841 46461 } 46462 46463 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 46464 goto __1842 46465 } 46466 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 46467 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 46468 goto __1843 46469 } 46470 return -2 46471 __1843: 46472 ; 46473 __1842: 46474 ; 46475 46476 rrc = DMATCH_NOMATCH 46477 goto RETURN_SWITCH 46478 46479 __1841: 46480 ; 46481 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 46482 if !(utf != 0 && fc >= 0xc0) { 46483 goto __1844 46484 } 46485 if !(fc&0x20 == Tuint32_t(0)) { 46486 goto __1845 46487 } 46488 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 46489 goto __1846 46490 __1845: 46491 if !(fc&0x10 == Tuint32_t(0)) { 46492 goto __1847 46493 } 46494 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 46495 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 46496 goto __1848 46497 __1847: 46498 if !(fc&0x08 == Tuint32_t(0)) { 46499 goto __1849 46500 } 46501 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 46502 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 46503 goto __1850 46504 __1849: 46505 if !(fc&0x04 == Tuint32_t(0)) { 46506 goto __1851 46507 } 46508 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 46509 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 46510 goto __1852 46511 __1851: 46512 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 46513 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 46514 __1852: 46515 ; 46516 __1850: 46517 ; 46518 __1848: 46519 ; 46520 __1846: 46521 ; 46522 __1844: 46523 ; 46524 46525 if !(libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype] == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4))) == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOTPROP)) { 46526 goto __1853 46527 } 46528 rrc = DMATCH_NOMATCH 46529 goto RETURN_SWITCH 46530 __1853: 46531 ; 46532 46533 goto __1837 46534 __1837: 46535 goto __1836 46536 goto __1838 46537 __1838: 46538 ; 46539 // Control never gets here 46540 46541 __1788: 46542 __1854: 46543 46544 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 46545 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM211 46546 goto MATCH_RECURSE 46547 L_RM211: 46548 ; 46549 46550 if !(rrc != DMATCH_NOMATCH) { 46551 goto __1857 46552 } 46553 rrc = rrc 46554 goto RETURN_SWITCH 46555 __1857: 46556 ; 46557 46558 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 46559 goto __1858 46560 } 46561 rrc = DMATCH_NOMATCH 46562 goto RETURN_SWITCH 46563 __1858: 46564 ; 46565 46566 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 46567 goto __1859 46568 } 46569 46570 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 46571 goto __1860 46572 } 46573 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 46574 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 46575 goto __1861 46576 } 46577 return -2 46578 __1861: 46579 ; 46580 __1860: 46581 ; 46582 46583 rrc = DMATCH_NOMATCH 46584 goto RETURN_SWITCH 46585 46586 __1859: 46587 ; 46588 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 46589 if !(utf != 0 && fc >= 0xc0) { 46590 goto __1862 46591 } 46592 if !(fc&0x20 == Tuint32_t(0)) { 46593 goto __1863 46594 } 46595 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 46596 goto __1864 46597 __1863: 46598 if !(fc&0x10 == Tuint32_t(0)) { 46599 goto __1865 46600 } 46601 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 46602 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 46603 goto __1866 46604 __1865: 46605 if !(fc&0x08 == Tuint32_t(0)) { 46606 goto __1867 46607 } 46608 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 46609 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 46610 goto __1868 46611 __1867: 46612 if !(fc&0x04 == Tuint32_t(0)) { 46613 goto __1869 46614 } 46615 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 46616 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 46617 goto __1870 46618 __1869: 46619 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 46620 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 46621 __1870: 46622 ; 46623 __1868: 46624 ; 46625 __1866: 46626 ; 46627 __1864: 46628 ; 46629 __1862: 46630 ; 46631 46632 if !(libc.Bool32(Tuint32_t((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype) == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4))) == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOTPROP)) { 46633 goto __1871 46634 } 46635 rrc = DMATCH_NOMATCH 46636 goto RETURN_SWITCH 46637 __1871: 46638 ; 46639 46640 goto __1855 46641 __1855: 46642 goto __1854 46643 goto __1856 46644 __1856: 46645 ; 46646 // Control never gets here 46647 46648 __1789: 46649 __1872: 46650 46651 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 46652 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM212 46653 goto MATCH_RECURSE 46654 L_RM212: 46655 ; 46656 46657 if !(rrc != DMATCH_NOMATCH) { 46658 goto __1875 46659 } 46660 rrc = rrc 46661 goto RETURN_SWITCH 46662 __1875: 46663 ; 46664 46665 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 46666 goto __1876 46667 } 46668 rrc = DMATCH_NOMATCH 46669 goto RETURN_SWITCH 46670 __1876: 46671 ; 46672 46673 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 46674 goto __1877 46675 } 46676 46677 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 46678 goto __1878 46679 } 46680 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 46681 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 46682 goto __1879 46683 } 46684 return -2 46685 __1879: 46686 ; 46687 __1878: 46688 ; 46689 46690 rrc = DMATCH_NOMATCH 46691 goto RETURN_SWITCH 46692 46693 __1877: 46694 ; 46695 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 46696 if !(utf != 0 && fc >= 0xc0) { 46697 goto __1880 46698 } 46699 if !(fc&0x20 == Tuint32_t(0)) { 46700 goto __1881 46701 } 46702 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 46703 goto __1882 46704 __1881: 46705 if !(fc&0x10 == Tuint32_t(0)) { 46706 goto __1883 46707 } 46708 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 46709 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 46710 goto __1884 46711 __1883: 46712 if !(fc&0x08 == Tuint32_t(0)) { 46713 goto __1885 46714 } 46715 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 46716 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 46717 goto __1886 46718 __1885: 46719 if !(fc&0x04 == Tuint32_t(0)) { 46720 goto __1887 46721 } 46722 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 46723 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 46724 goto __1888 46725 __1887: 46726 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 46727 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 46728 __1888: 46729 ; 46730 __1886: 46731 ; 46732 __1884: 46733 ; 46734 __1882: 46735 ; 46736 __1880: 46737 ; 46738 46739 if !(libc.Bool32(Tuint32_t((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fscript) == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4))) == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOTPROP)) { 46740 goto __1889 46741 } 46742 rrc = DMATCH_NOMATCH 46743 goto RETURN_SWITCH 46744 __1889: 46745 ; 46746 46747 goto __1873 46748 __1873: 46749 goto __1872 46750 goto __1874 46751 __1874: 46752 ; 46753 // Control never gets here 46754 46755 __1790: 46756 __1890: 46757 46758 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 46759 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM225 46760 goto MATCH_RECURSE 46761 L_RM225: 46762 ; 46763 46764 if !(rrc != DMATCH_NOMATCH) { 46765 goto __1893 46766 } 46767 rrc = rrc 46768 goto RETURN_SWITCH 46769 __1893: 46770 ; 46771 46772 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 46773 goto __1894 46774 } 46775 rrc = DMATCH_NOMATCH 46776 goto RETURN_SWITCH 46777 __1894: 46778 ; 46779 46780 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 46781 goto __1895 46782 } 46783 46784 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 46785 goto __1896 46786 } 46787 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 46788 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 46789 goto __1897 46790 } 46791 return -2 46792 __1897: 46793 ; 46794 __1896: 46795 ; 46796 46797 rrc = DMATCH_NOMATCH 46798 goto RETURN_SWITCH 46799 46800 __1895: 46801 ; 46802 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 46803 if !(utf != 0 && fc >= 0xc0) { 46804 goto __1898 46805 } 46806 if !(fc&0x20 == Tuint32_t(0)) { 46807 goto __1899 46808 } 46809 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 46810 goto __1900 46811 __1899: 46812 if !(fc&0x10 == Tuint32_t(0)) { 46813 goto __1901 46814 } 46815 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 46816 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 46817 goto __1902 46818 __1901: 46819 if !(fc&0x08 == Tuint32_t(0)) { 46820 goto __1903 46821 } 46822 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 46823 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 46824 goto __1904 46825 __1903: 46826 if !(fc&0x04 == Tuint32_t(0)) { 46827 goto __1905 46828 } 46829 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 46830 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 46831 goto __1906 46832 __1905: 46833 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 46834 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 46835 __1906: 46836 ; 46837 __1904: 46838 ; 46839 __1902: 46840 ; 46841 __1900: 46842 ; 46843 __1898: 46844 ; 46845 46846 prop3 = uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12 46847 ok4 = libc.Bool32(Tuint32_t((*Tucd_record)(unsafe.Pointer(prop3)).Fscript) == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)) || 46848 *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_script_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop3)).Fscriptx_bidiclass)&DUCD_SCRIPTX_MASK)*4 + uintptr(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4))/Tuint32_t(32))*4))&(uint32(1)<<(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4))%Tuint32_t(32))) != Tuint32_t(0)) 46849 if !(ok4 == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOTPROP)) { 46850 goto __1907 46851 } 46852 rrc = DMATCH_NOMATCH 46853 goto RETURN_SWITCH 46854 __1907: 46855 ; 46856 46857 goto __1891 46858 __1891: 46859 goto __1890 46860 goto __1892 46861 __1892: 46862 ; 46863 // Control never gets here 46864 46865 __1791: 46866 __1908: 46867 46868 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 46869 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM213 46870 goto MATCH_RECURSE 46871 L_RM213: 46872 ; 46873 46874 if !(rrc != DMATCH_NOMATCH) { 46875 goto __1911 46876 } 46877 rrc = rrc 46878 goto RETURN_SWITCH 46879 __1911: 46880 ; 46881 46882 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 46883 goto __1912 46884 } 46885 rrc = DMATCH_NOMATCH 46886 goto RETURN_SWITCH 46887 __1912: 46888 ; 46889 46890 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 46891 goto __1913 46892 } 46893 46894 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 46895 goto __1914 46896 } 46897 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 46898 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 46899 goto __1915 46900 } 46901 return -2 46902 __1915: 46903 ; 46904 __1914: 46905 ; 46906 46907 rrc = DMATCH_NOMATCH 46908 goto RETURN_SWITCH 46909 46910 __1913: 46911 ; 46912 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 46913 if !(utf != 0 && fc >= 0xc0) { 46914 goto __1916 46915 } 46916 if !(fc&0x20 == Tuint32_t(0)) { 46917 goto __1917 46918 } 46919 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 46920 goto __1918 46921 __1917: 46922 if !(fc&0x10 == Tuint32_t(0)) { 46923 goto __1919 46924 } 46925 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 46926 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 46927 goto __1920 46928 __1919: 46929 if !(fc&0x08 == Tuint32_t(0)) { 46930 goto __1921 46931 } 46932 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 46933 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 46934 goto __1922 46935 __1921: 46936 if !(fc&0x04 == Tuint32_t(0)) { 46937 goto __1923 46938 } 46939 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 46940 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 46941 goto __1924 46942 __1923: 46943 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 46944 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 46945 __1924: 46946 ; 46947 __1922: 46948 ; 46949 __1920: 46950 ; 46951 __1918: 46952 ; 46953 __1916: 46954 ; 46955 46956 category2 = int32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype]) 46957 if !(libc.Bool32(category2 == ucp_L || category2 == ucp_N) == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOTPROP)) { 46958 goto __1925 46959 } 46960 rrc = DMATCH_NOMATCH 46961 goto RETURN_SWITCH 46962 __1925: 46963 ; 46964 46965 goto __1909 46966 __1909: 46967 goto __1908 46968 goto __1910 46969 __1910: 46970 ; 46971 // Control never gets here 46972 46973 // Perl space used to exclude VT, but from Perl 5.18 it is included, 46974 // which means that Perl space and POSIX space are now identical. PCRE 46975 // was changed at release 8.34. 46976 46977 __1792: // Perl space 46978 __1793: // POSIX space 46979 __1926: 46980 46981 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 46982 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM214 46983 goto MATCH_RECURSE 46984 L_RM214: 46985 ; 46986 46987 if !(rrc != DMATCH_NOMATCH) { 46988 goto __1929 46989 } 46990 rrc = rrc 46991 goto RETURN_SWITCH 46992 __1929: 46993 ; 46994 46995 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 46996 goto __1930 46997 } 46998 rrc = DMATCH_NOMATCH 46999 goto RETURN_SWITCH 47000 __1930: 47001 ; 47002 47003 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 47004 goto __1931 47005 } 47006 47007 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 47008 goto __1932 47009 } 47010 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 47011 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 47012 goto __1933 47013 } 47014 return -2 47015 __1933: 47016 ; 47017 __1932: 47018 ; 47019 47020 rrc = DMATCH_NOMATCH 47021 goto RETURN_SWITCH 47022 47023 __1931: 47024 ; 47025 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 47026 if !(utf != 0 && fc >= 0xc0) { 47027 goto __1934 47028 } 47029 if !(fc&0x20 == Tuint32_t(0)) { 47030 goto __1935 47031 } 47032 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 47033 goto __1936 47034 __1935: 47035 if !(fc&0x10 == Tuint32_t(0)) { 47036 goto __1937 47037 } 47038 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 47039 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 47040 goto __1938 47041 __1937: 47042 if !(fc&0x08 == Tuint32_t(0)) { 47043 goto __1939 47044 } 47045 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 47046 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 47047 goto __1940 47048 __1939: 47049 if !(fc&0x04 == Tuint32_t(0)) { 47050 goto __1941 47051 } 47052 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 47053 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 47054 goto __1942 47055 __1941: 47056 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 47057 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 47058 __1942: 47059 ; 47060 __1940: 47061 ; 47062 __1938: 47063 ; 47064 __1936: 47065 ; 47066 __1934: 47067 ; 47068 47069 switch fc { 47070 case Tuint32_t('\011'): 47071 goto __1944 47072 case Tuint32_t('\040'): 47073 goto __1945 47074 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 47075 goto __1946 47076 case Tuint32_t(0x1680): 47077 goto __1947 /* OGHAM SPACE MARK */ 47078 case Tuint32_t(0x180e): 47079 goto __1948 /* MONGOLIAN VOWEL SEPARATOR */ 47080 case Tuint32_t(0x2000): 47081 goto __1949 /* EN QUAD */ 47082 case Tuint32_t(0x2001): 47083 goto __1950 /* EM QUAD */ 47084 case Tuint32_t(0x2002): 47085 goto __1951 /* EN SPACE */ 47086 case Tuint32_t(0x2003): 47087 goto __1952 /* EM SPACE */ 47088 case Tuint32_t(0x2004): 47089 goto __1953 /* THREE-PER-EM SPACE */ 47090 case Tuint32_t(0x2005): 47091 goto __1954 /* FOUR-PER-EM SPACE */ 47092 case Tuint32_t(0x2006): 47093 goto __1955 /* SIX-PER-EM SPACE */ 47094 case Tuint32_t(0x2007): 47095 goto __1956 /* FIGURE SPACE */ 47096 case Tuint32_t(0x2008): 47097 goto __1957 /* PUNCTUATION SPACE */ 47098 case Tuint32_t(0x2009): 47099 goto __1958 /* THIN SPACE */ 47100 case Tuint32_t(0x200A): 47101 goto __1959 /* HAIR SPACE */ 47102 case Tuint32_t(0x202f): 47103 goto __1960 /* NARROW NO-BREAK SPACE */ 47104 case Tuint32_t(0x205f): 47105 goto __1961 /* MEDIUM MATHEMATICAL SPACE */ 47106 case Tuint32_t(0x3000): 47107 goto __1962 47108 case Tuint32_t('\012'): 47109 goto __1963 47110 case Tuint32_t('\013'): 47111 goto __1964 47112 case Tuint32_t('\014'): 47113 goto __1965 47114 case Tuint32_t('\015'): 47115 goto __1966 47116 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 47117 goto __1967 47118 case Tuint32_t(0x2028): 47119 goto __1968 /* LINE SEPARATOR */ 47120 case Tuint32_t(0x2029): 47121 goto __1969 47122 47123 default: 47124 goto __1970 47125 } 47126 goto __1943 47127 47128 __1944: 47129 __1945: 47130 __1946: 47131 __1947: /* OGHAM SPACE MARK */ 47132 __1948: /* MONGOLIAN VOWEL SEPARATOR */ 47133 __1949: /* EN QUAD */ 47134 __1950: /* EM QUAD */ 47135 __1951: /* EN SPACE */ 47136 __1952: /* EM SPACE */ 47137 __1953: /* THREE-PER-EM SPACE */ 47138 __1954: /* FOUR-PER-EM SPACE */ 47139 __1955: /* SIX-PER-EM SPACE */ 47140 __1956: /* FIGURE SPACE */ 47141 __1957: /* PUNCTUATION SPACE */ 47142 __1958: /* THIN SPACE */ 47143 __1959: /* HAIR SPACE */ 47144 __1960: /* NARROW NO-BREAK SPACE */ 47145 __1961: /* MEDIUM MATHEMATICAL SPACE */ 47146 __1962: 47147 __1963: 47148 __1964: 47149 __1965: 47150 __1966: 47151 __1967: 47152 __1968: /* LINE SEPARATOR */ 47153 __1969: 47154 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOTPROP) { 47155 goto __1971 47156 } 47157 rrc = DMATCH_NOMATCH 47158 goto RETURN_SWITCH 47159 __1971: 47160 ; 47161 47162 goto __1943 47163 47164 __1970: 47165 if !(libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype] == ucp_Z) == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOTPROP)) { 47166 goto __1972 47167 } 47168 rrc = DMATCH_NOMATCH 47169 goto RETURN_SWITCH 47170 __1972: 47171 ; 47172 47173 goto __1943 47174 __1943: 47175 ; 47176 goto __1927 47177 __1927: 47178 goto __1926 47179 goto __1928 47180 __1928: 47181 ; 47182 // Control never gets here 47183 47184 __1794: 47185 __1973: 47186 47187 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 47188 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM215 47189 goto MATCH_RECURSE 47190 L_RM215: 47191 ; 47192 47193 if !(rrc != DMATCH_NOMATCH) { 47194 goto __1976 47195 } 47196 rrc = rrc 47197 goto RETURN_SWITCH 47198 __1976: 47199 ; 47200 47201 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 47202 goto __1977 47203 } 47204 rrc = DMATCH_NOMATCH 47205 goto RETURN_SWITCH 47206 __1977: 47207 ; 47208 47209 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 47210 goto __1978 47211 } 47212 47213 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 47214 goto __1979 47215 } 47216 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 47217 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 47218 goto __1980 47219 } 47220 return -2 47221 __1980: 47222 ; 47223 __1979: 47224 ; 47225 47226 rrc = DMATCH_NOMATCH 47227 goto RETURN_SWITCH 47228 47229 __1978: 47230 ; 47231 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 47232 if !(utf != 0 && fc >= 0xc0) { 47233 goto __1981 47234 } 47235 if !(fc&0x20 == Tuint32_t(0)) { 47236 goto __1982 47237 } 47238 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 47239 goto __1983 47240 __1982: 47241 if !(fc&0x10 == Tuint32_t(0)) { 47242 goto __1984 47243 } 47244 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 47245 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 47246 goto __1985 47247 __1984: 47248 if !(fc&0x08 == Tuint32_t(0)) { 47249 goto __1986 47250 } 47251 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 47252 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 47253 goto __1987 47254 __1986: 47255 if !(fc&0x04 == Tuint32_t(0)) { 47256 goto __1988 47257 } 47258 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 47259 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 47260 goto __1989 47261 __1988: 47262 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 47263 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 47264 __1989: 47265 ; 47266 __1987: 47267 ; 47268 __1985: 47269 ; 47270 __1983: 47271 ; 47272 __1981: 47273 ; 47274 47275 category3 = int32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype]) 47276 if !(libc.Bool32(category3 == ucp_L || category3 == ucp_N || fc == Tuint32_t('\137')) == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOTPROP)) { 47277 goto __1990 47278 } 47279 rrc = DMATCH_NOMATCH 47280 goto RETURN_SWITCH 47281 __1990: 47282 ; 47283 47284 goto __1974 47285 __1974: 47286 goto __1973 47287 goto __1975 47288 __1975: 47289 ; 47290 // Control never gets here 47291 47292 __1795: 47293 __1991: 47294 47295 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 47296 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM216 47297 goto MATCH_RECURSE 47298 L_RM216: 47299 ; 47300 47301 if !(rrc != DMATCH_NOMATCH) { 47302 goto __1994 47303 } 47304 rrc = rrc 47305 goto RETURN_SWITCH 47306 __1994: 47307 ; 47308 47309 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 47310 goto __1995 47311 } 47312 rrc = DMATCH_NOMATCH 47313 goto RETURN_SWITCH 47314 __1995: 47315 ; 47316 47317 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 47318 goto __1996 47319 } 47320 47321 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 47322 goto __1997 47323 } 47324 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 47325 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 47326 goto __1998 47327 } 47328 return -2 47329 __1998: 47330 ; 47331 __1997: 47332 ; 47333 47334 rrc = DMATCH_NOMATCH 47335 goto RETURN_SWITCH 47336 47337 __1996: 47338 ; 47339 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 47340 if !(utf != 0 && fc >= 0xc0) { 47341 goto __1999 47342 } 47343 if !(fc&0x20 == Tuint32_t(0)) { 47344 goto __2000 47345 } 47346 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 47347 goto __2001 47348 __2000: 47349 if !(fc&0x10 == Tuint32_t(0)) { 47350 goto __2002 47351 } 47352 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 47353 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 47354 goto __2003 47355 __2002: 47356 if !(fc&0x08 == Tuint32_t(0)) { 47357 goto __2004 47358 } 47359 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 47360 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 47361 goto __2005 47362 __2004: 47363 if !(fc&0x04 == Tuint32_t(0)) { 47364 goto __2006 47365 } 47366 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 47367 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 47368 goto __2007 47369 __2006: 47370 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 47371 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 47372 __2007: 47373 ; 47374 __2005: 47375 ; 47376 __2003: 47377 ; 47378 __2001: 47379 ; 47380 __1999: 47381 ; 47382 47383 cp2 = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)))*4 47384 __2008: 47385 47386 if !(fc < *(*Tuint32_t)(unsafe.Pointer(cp2))) { 47387 goto __2011 47388 } 47389 47390 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOTPROP) { 47391 goto __2012 47392 } 47393 goto __2010 47394 __2012: 47395 ; 47396 rrc = DMATCH_NOMATCH 47397 goto RETURN_SWITCH 47398 47399 __2011: 47400 ; 47401 if !(fc == *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&cp2, 4)))) { 47402 goto __2013 47403 } 47404 47405 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOTPROP) { 47406 goto __2014 47407 } 47408 rrc = DMATCH_NOMATCH 47409 goto RETURN_SWITCH 47410 __2014: 47411 ; 47412 47413 goto __2010 47414 __2013: 47415 ; 47416 goto __2009 47417 __2009: 47418 goto __2008 47419 goto __2010 47420 __2010: 47421 ; 47422 goto __1992 47423 __1992: 47424 goto __1991 47425 goto __1993 47426 __1993: 47427 ; 47428 // Control never gets here 47429 47430 __1796: 47431 __2015: 47432 47433 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 47434 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM217 47435 goto MATCH_RECURSE 47436 L_RM217: 47437 ; 47438 47439 if !(rrc != DMATCH_NOMATCH) { 47440 goto __2018 47441 } 47442 rrc = rrc 47443 goto RETURN_SWITCH 47444 __2018: 47445 ; 47446 47447 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 47448 goto __2019 47449 } 47450 rrc = DMATCH_NOMATCH 47451 goto RETURN_SWITCH 47452 __2019: 47453 ; 47454 47455 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 47456 goto __2020 47457 } 47458 47459 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 47460 goto __2021 47461 } 47462 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 47463 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 47464 goto __2022 47465 } 47466 return -2 47467 __2022: 47468 ; 47469 __2021: 47470 ; 47471 47472 rrc = DMATCH_NOMATCH 47473 goto RETURN_SWITCH 47474 47475 __2020: 47476 ; 47477 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 47478 if !(utf != 0 && fc >= 0xc0) { 47479 goto __2023 47480 } 47481 if !(fc&0x20 == Tuint32_t(0)) { 47482 goto __2024 47483 } 47484 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 47485 goto __2025 47486 __2024: 47487 if !(fc&0x10 == Tuint32_t(0)) { 47488 goto __2026 47489 } 47490 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 47491 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 47492 goto __2027 47493 __2026: 47494 if !(fc&0x08 == Tuint32_t(0)) { 47495 goto __2028 47496 } 47497 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 47498 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 47499 goto __2029 47500 __2028: 47501 if !(fc&0x04 == Tuint32_t(0)) { 47502 goto __2030 47503 } 47504 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 47505 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 47506 goto __2031 47507 __2030: 47508 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 47509 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 47510 __2031: 47511 ; 47512 __2029: 47513 ; 47514 __2027: 47515 ; 47516 __2025: 47517 ; 47518 __2023: 47519 ; 47520 47521 if !(libc.Bool32(fc == Tuint32_t('\044') || fc == Tuint32_t('\100') || fc == Tuint32_t('\140') || fc >= Tuint32_t(0xa0) && fc <= Tuint32_t(0xd7ff) || fc >= Tuint32_t(0xe000)) == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOTPROP)) { 47522 goto __2032 47523 } 47524 rrc = DMATCH_NOMATCH 47525 goto RETURN_SWITCH 47526 __2032: 47527 ; 47528 47529 goto __2016 47530 __2016: 47531 goto __2015 47532 goto __2017 47533 __2017: 47534 ; 47535 // Control never gets here 47536 47537 __1797: 47538 __2033: 47539 47540 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 47541 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM224 47542 goto MATCH_RECURSE 47543 L_RM224: 47544 ; 47545 47546 if !(rrc != DMATCH_NOMATCH) { 47547 goto __2036 47548 } 47549 rrc = rrc 47550 goto RETURN_SWITCH 47551 __2036: 47552 ; 47553 47554 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 47555 goto __2037 47556 } 47557 rrc = DMATCH_NOMATCH 47558 goto RETURN_SWITCH 47559 __2037: 47560 ; 47561 47562 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 47563 goto __2038 47564 } 47565 47566 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 47567 goto __2039 47568 } 47569 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 47570 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 47571 goto __2040 47572 } 47573 return -2 47574 __2040: 47575 ; 47576 __2039: 47577 ; 47578 47579 rrc = DMATCH_NOMATCH 47580 goto RETURN_SWITCH 47581 47582 __2038: 47583 ; 47584 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 47585 if !(utf != 0 && fc >= 0xc0) { 47586 goto __2041 47587 } 47588 if !(fc&0x20 == Tuint32_t(0)) { 47589 goto __2042 47590 } 47591 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 47592 goto __2043 47593 __2042: 47594 if !(fc&0x10 == Tuint32_t(0)) { 47595 goto __2044 47596 } 47597 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 47598 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 47599 goto __2045 47600 __2044: 47601 if !(fc&0x08 == Tuint32_t(0)) { 47602 goto __2046 47603 } 47604 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 47605 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 47606 goto __2047 47607 __2046: 47608 if !(fc&0x04 == Tuint32_t(0)) { 47609 goto __2048 47610 } 47611 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 47612 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 47613 goto __2049 47614 __2048: 47615 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 47616 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 47617 __2049: 47618 ; 47619 __2047: 47620 ; 47621 __2045: 47622 ; 47623 __2043: 47624 ; 47625 __2041: 47626 ; 47627 47628 if !(libc.Bool32(Tuint32_t(int32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fscriptx_bidiclass)>>DUCD_BIDICLASS_SHIFT) == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4))) == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOTPROP)) { 47629 goto __2050 47630 } 47631 rrc = DMATCH_NOMATCH 47632 goto RETURN_SWITCH 47633 __2050: 47634 ; 47635 47636 goto __2034 47637 __2034: 47638 goto __2033 47639 goto __2035 47640 __2035: 47641 ; 47642 // Control never gets here 47643 47644 __1798: 47645 __2051: 47646 47647 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 47648 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM223 47649 goto MATCH_RECURSE 47650 L_RM223: 47651 ; 47652 47653 if !(rrc != DMATCH_NOMATCH) { 47654 goto __2054 47655 } 47656 rrc = rrc 47657 goto RETURN_SWITCH 47658 __2054: 47659 ; 47660 47661 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 47662 goto __2055 47663 } 47664 rrc = DMATCH_NOMATCH 47665 goto RETURN_SWITCH 47666 __2055: 47667 ; 47668 47669 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 47670 goto __2056 47671 } 47672 47673 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 47674 goto __2057 47675 } 47676 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 47677 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 47678 goto __2058 47679 } 47680 return -2 47681 __2058: 47682 ; 47683 __2057: 47684 ; 47685 47686 rrc = DMATCH_NOMATCH 47687 goto RETURN_SWITCH 47688 47689 __2056: 47690 ; 47691 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 47692 if !(utf != 0 && fc >= 0xc0) { 47693 goto __2059 47694 } 47695 if !(fc&0x20 == Tuint32_t(0)) { 47696 goto __2060 47697 } 47698 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 47699 goto __2061 47700 __2060: 47701 if !(fc&0x10 == Tuint32_t(0)) { 47702 goto __2062 47703 } 47704 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 47705 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 47706 goto __2063 47707 __2062: 47708 if !(fc&0x08 == Tuint32_t(0)) { 47709 goto __2064 47710 } 47711 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 47712 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 47713 goto __2065 47714 __2064: 47715 if !(fc&0x04 == Tuint32_t(0)) { 47716 goto __2066 47717 } 47718 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 47719 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 47720 goto __2067 47721 __2066: 47722 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 47723 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 47724 __2067: 47725 ; 47726 __2065: 47727 ; 47728 __2063: 47729 ; 47730 __2061: 47731 ; 47732 __2059: 47733 ; 47734 47735 prop4 = uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12 47736 ok5 = libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_boolprop_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop4)).Fbprops)&DUCD_BPROPS_MASK)*4 + uintptr(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4))/Tuint32_t(32))*4))&(uint32(1)<<(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4))%Tuint32_t(32))) != Tuint32_t(0)) 47737 if !(ok5 == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOTPROP)) { 47738 goto __2068 47739 } 47740 rrc = DMATCH_NOMATCH 47741 goto RETURN_SWITCH 47742 __2068: 47743 ; 47744 47745 goto __2052 47746 __2052: 47747 goto __2051 47748 goto __2053 47749 __2053: 47750 ; 47751 // Control never gets here 47752 47753 // This should never occur 47754 __1799: 47755 return -44 47756 __1784: 47757 ; 47758 goto __1783 47759 __1782: 47760 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_EXTUNI) { 47761 goto __2069 47762 } 47763 47764 __2071: 47765 47766 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 47767 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM218 47768 goto MATCH_RECURSE 47769 L_RM218: 47770 ; 47771 47772 if !(rrc != DMATCH_NOMATCH) { 47773 goto __2074 47774 } 47775 rrc = rrc 47776 goto RETURN_SWITCH 47777 __2074: 47778 ; 47779 47780 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 47781 goto __2075 47782 } 47783 rrc = DMATCH_NOMATCH 47784 goto RETURN_SWITCH 47785 __2075: 47786 ; 47787 47788 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 47789 goto __2076 47790 } 47791 47792 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 47793 goto __2078 47794 } 47795 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 47796 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 47797 goto __2079 47798 } 47799 return -2 47800 __2079: 47801 ; 47802 __2078: 47803 ; 47804 47805 rrc = DMATCH_NOMATCH 47806 goto RETURN_SWITCH 47807 47808 goto __2077 47809 __2076: 47810 47811 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 47812 if !(utf != 0 && fc >= 0xc0) { 47813 goto __2080 47814 } 47815 if !(fc&0x20 == Tuint32_t(0)) { 47816 goto __2081 47817 } 47818 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 47819 goto __2082 47820 __2081: 47821 if !(fc&0x10 == Tuint32_t(0)) { 47822 goto __2083 47823 } 47824 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 47825 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 47826 goto __2084 47827 __2083: 47828 if !(fc&0x08 == Tuint32_t(0)) { 47829 goto __2085 47830 } 47831 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 47832 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 47833 goto __2086 47834 __2085: 47835 if !(fc&0x04 == Tuint32_t(0)) { 47836 goto __2087 47837 } 47838 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 47839 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 47840 goto __2088 47841 __2087: 47842 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 47843 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 47844 __2088: 47845 ; 47846 __2086: 47847 ; 47848 __2084: 47849 ; 47850 __2082: 47851 ; 47852 __2080: 47853 ; 47854 47855 (*Theapframe)(unsafe.Pointer(F)).Feptr = X_pcre2_extuni_8(tls, fc, (*Theapframe)(unsafe.Pointer(F)).Feptr, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject, 47856 utf, uintptr(0)) 47857 __2077: 47858 ; 47859 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 47860 goto __2089 47861 } 47862 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 47863 goto __2090 47864 } 47865 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 47866 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 47867 goto __2091 47868 } 47869 return -2 47870 __2091: 47871 ; 47872 __2090: 47873 ; 47874 __2089: 47875 ; 47876 47877 goto __2072 47878 __2072: 47879 goto __2071 47880 goto __2073 47881 __2073: 47882 ; 47883 goto __2070 47884 __2069: 47885 47886 // UTF mode for non-property testing character types. 47887 47888 if !(utf != 0) { 47889 goto __2092 47890 } 47891 47892 __2094: 47893 47894 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 47895 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM219 47896 goto MATCH_RECURSE 47897 L_RM219: 47898 ; 47899 47900 if !(rrc != DMATCH_NOMATCH) { 47901 goto __2097 47902 } 47903 rrc = rrc 47904 goto RETURN_SWITCH 47905 __2097: 47906 ; 47907 47908 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 47909 goto __2098 47910 } 47911 rrc = DMATCH_NOMATCH 47912 goto RETURN_SWITCH 47913 __2098: 47914 ; 47915 47916 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 47917 goto __2099 47918 } 47919 47920 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 47921 goto __2100 47922 } 47923 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 47924 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 47925 goto __2101 47926 } 47927 return -2 47928 __2101: 47929 ; 47930 __2100: 47931 ; 47932 47933 rrc = DMATCH_NOMATCH 47934 goto RETURN_SWITCH 47935 47936 __2099: 47937 ; 47938 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_ANY && func() int32 { 47939 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 47940 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, (*Theapframe)(unsafe.Pointer(F)).Feptr, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+256, utf) != 0) 47941 } 47942 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260))) && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260 + 1))))) 47943 }() != 0) { 47944 goto __2102 47945 } 47946 rrc = DMATCH_NOMATCH 47947 goto RETURN_SWITCH 47948 __2102: 47949 ; 47950 47951 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 47952 if !(fc >= 0xc0) { 47953 goto __2103 47954 } 47955 if !(fc&0x20 == Tuint32_t(0)) { 47956 goto __2104 47957 } 47958 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 47959 goto __2105 47960 __2104: 47961 if !(fc&0x10 == Tuint32_t(0)) { 47962 goto __2106 47963 } 47964 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 47965 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 47966 goto __2107 47967 __2106: 47968 if !(fc&0x08 == Tuint32_t(0)) { 47969 goto __2108 47970 } 47971 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 47972 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 47973 goto __2109 47974 __2108: 47975 if !(fc&0x04 == Tuint32_t(0)) { 47976 goto __2110 47977 } 47978 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 47979 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 47980 goto __2111 47981 __2110: 47982 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 47983 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 47984 __2111: 47985 ; 47986 __2109: 47987 ; 47988 __2107: 47989 ; 47990 __2105: 47991 ; 47992 __2103: 47993 ; 47994 47995 switch *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) { 47996 case OP_ANY: 47997 goto __2113 47998 47999 case OP_ALLANY: 48000 goto __2114 48001 case OP_ANYBYTE: 48002 goto __2115 48003 48004 case OP_ANYNL: 48005 goto __2116 48006 48007 case OP_NOT_HSPACE: 48008 goto __2117 48009 48010 case OP_HSPACE: 48011 goto __2118 48012 48013 case OP_NOT_VSPACE: 48014 goto __2119 48015 48016 case OP_VSPACE: 48017 goto __2120 48018 48019 case OP_NOT_DIGIT: 48020 goto __2121 48021 48022 case OP_DIGIT: 48023 goto __2122 48024 48025 case OP_NOT_WHITESPACE: 48026 goto __2123 48027 48028 case OP_WHITESPACE: 48029 goto __2124 48030 48031 case OP_NOT_WORDCHAR: 48032 goto __2125 48033 48034 case OP_WORDCHAR: 48035 goto __2126 48036 48037 default: 48038 goto __2127 48039 } 48040 goto __2112 48041 48042 __2113: // This is the non-NL case 48043 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && (*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_FIXED) && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2) && fc == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260)))) { 48044 goto __2128 48045 } 48046 48047 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 48048 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 48049 goto __2129 48050 } 48051 return -2 48052 __2129: 48053 ; 48054 __2128: 48055 ; 48056 goto __2112 48057 48058 __2114: 48059 __2115: 48060 goto __2112 48061 48062 __2116: 48063 switch fc { 48064 default: 48065 goto __2131 48066 48067 case Tuint32_t('\015'): 48068 goto __2132 48069 48070 case Tuint32_t('\012'): 48071 goto __2133 48072 48073 case Tuint32_t('\013'): 48074 goto __2134 48075 case Tuint32_t('\014'): 48076 goto __2135 48077 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 48078 goto __2136 48079 case Tuint32_t(0x2028): 48080 goto __2137 48081 case Tuint32_t(0x2029): 48082 goto __2138 48083 } 48084 goto __2130 48085 48086 __2131: 48087 rrc = DMATCH_NOMATCH 48088 goto RETURN_SWITCH 48089 48090 __2132: 48091 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == '\012') { 48092 goto __2139 48093 } 48094 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 48095 __2139: 48096 ; 48097 goto __2130 48098 48099 __2133: 48100 goto __2130 48101 48102 __2134: 48103 __2135: 48104 __2136: 48105 __2137: 48106 __2138: 48107 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fbsr_convention) == DPCRE2_BSR_ANYCRLF) { 48108 goto __2140 48109 } 48110 rrc = DMATCH_NOMATCH 48111 goto RETURN_SWITCH 48112 __2140: 48113 ; 48114 48115 goto __2130 48116 __2130: 48117 ; 48118 goto __2112 48119 48120 __2117: 48121 switch fc { 48122 case Tuint32_t('\011'): 48123 goto __2142 48124 case Tuint32_t('\040'): 48125 goto __2143 48126 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 48127 goto __2144 48128 case Tuint32_t(0x1680): 48129 goto __2145 /* OGHAM SPACE MARK */ 48130 case Tuint32_t(0x180e): 48131 goto __2146 /* MONGOLIAN VOWEL SEPARATOR */ 48132 case Tuint32_t(0x2000): 48133 goto __2147 /* EN QUAD */ 48134 case Tuint32_t(0x2001): 48135 goto __2148 /* EM QUAD */ 48136 case Tuint32_t(0x2002): 48137 goto __2149 /* EN SPACE */ 48138 case Tuint32_t(0x2003): 48139 goto __2150 /* EM SPACE */ 48140 case Tuint32_t(0x2004): 48141 goto __2151 /* THREE-PER-EM SPACE */ 48142 case Tuint32_t(0x2005): 48143 goto __2152 /* FOUR-PER-EM SPACE */ 48144 case Tuint32_t(0x2006): 48145 goto __2153 /* SIX-PER-EM SPACE */ 48146 case Tuint32_t(0x2007): 48147 goto __2154 /* FIGURE SPACE */ 48148 case Tuint32_t(0x2008): 48149 goto __2155 /* PUNCTUATION SPACE */ 48150 case Tuint32_t(0x2009): 48151 goto __2156 /* THIN SPACE */ 48152 case Tuint32_t(0x200A): 48153 goto __2157 /* HAIR SPACE */ 48154 case Tuint32_t(0x202f): 48155 goto __2158 /* NARROW NO-BREAK SPACE */ 48156 case Tuint32_t(0x205f): 48157 goto __2159 /* MEDIUM MATHEMATICAL SPACE */ 48158 case Tuint32_t(0x3000): 48159 goto __2160 48160 default: 48161 goto __2161 48162 } 48163 goto __2141 48164 48165 __2142: 48166 __2143: 48167 __2144: 48168 __2145: /* OGHAM SPACE MARK */ 48169 __2146: /* MONGOLIAN VOWEL SEPARATOR */ 48170 __2147: /* EN QUAD */ 48171 __2148: /* EM QUAD */ 48172 __2149: /* EN SPACE */ 48173 __2150: /* EM SPACE */ 48174 __2151: /* THREE-PER-EM SPACE */ 48175 __2152: /* FOUR-PER-EM SPACE */ 48176 __2153: /* SIX-PER-EM SPACE */ 48177 __2154: /* FIGURE SPACE */ 48178 __2155: /* PUNCTUATION SPACE */ 48179 __2156: /* THIN SPACE */ 48180 __2157: /* HAIR SPACE */ 48181 __2158: /* NARROW NO-BREAK SPACE */ 48182 __2159: /* MEDIUM MATHEMATICAL SPACE */ 48183 __2160: 48184 rrc = DMATCH_NOMATCH 48185 goto RETURN_SWITCH 48186 48187 __2161: 48188 goto __2141 48189 __2141: 48190 ; 48191 goto __2112 48192 48193 __2118: 48194 switch fc { 48195 case Tuint32_t('\011'): 48196 goto __2163 48197 case Tuint32_t('\040'): 48198 goto __2164 48199 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 48200 goto __2165 48201 case Tuint32_t(0x1680): 48202 goto __2166 /* OGHAM SPACE MARK */ 48203 case Tuint32_t(0x180e): 48204 goto __2167 /* MONGOLIAN VOWEL SEPARATOR */ 48205 case Tuint32_t(0x2000): 48206 goto __2168 /* EN QUAD */ 48207 case Tuint32_t(0x2001): 48208 goto __2169 /* EM QUAD */ 48209 case Tuint32_t(0x2002): 48210 goto __2170 /* EN SPACE */ 48211 case Tuint32_t(0x2003): 48212 goto __2171 /* EM SPACE */ 48213 case Tuint32_t(0x2004): 48214 goto __2172 /* THREE-PER-EM SPACE */ 48215 case Tuint32_t(0x2005): 48216 goto __2173 /* FOUR-PER-EM SPACE */ 48217 case Tuint32_t(0x2006): 48218 goto __2174 /* SIX-PER-EM SPACE */ 48219 case Tuint32_t(0x2007): 48220 goto __2175 /* FIGURE SPACE */ 48221 case Tuint32_t(0x2008): 48222 goto __2176 /* PUNCTUATION SPACE */ 48223 case Tuint32_t(0x2009): 48224 goto __2177 /* THIN SPACE */ 48225 case Tuint32_t(0x200A): 48226 goto __2178 /* HAIR SPACE */ 48227 case Tuint32_t(0x202f): 48228 goto __2179 /* NARROW NO-BREAK SPACE */ 48229 case Tuint32_t(0x205f): 48230 goto __2180 /* MEDIUM MATHEMATICAL SPACE */ 48231 case Tuint32_t(0x3000): 48232 goto __2181 48233 default: 48234 goto __2182 48235 } 48236 goto __2162 48237 48238 __2163: 48239 __2164: 48240 __2165: 48241 __2166: /* OGHAM SPACE MARK */ 48242 __2167: /* MONGOLIAN VOWEL SEPARATOR */ 48243 __2168: /* EN QUAD */ 48244 __2169: /* EM QUAD */ 48245 __2170: /* EN SPACE */ 48246 __2171: /* EM SPACE */ 48247 __2172: /* THREE-PER-EM SPACE */ 48248 __2173: /* FOUR-PER-EM SPACE */ 48249 __2174: /* SIX-PER-EM SPACE */ 48250 __2175: /* FIGURE SPACE */ 48251 __2176: /* PUNCTUATION SPACE */ 48252 __2177: /* THIN SPACE */ 48253 __2178: /* HAIR SPACE */ 48254 __2179: /* NARROW NO-BREAK SPACE */ 48255 __2180: /* MEDIUM MATHEMATICAL SPACE */ 48256 __2181: 48257 goto __2162 48258 __2182: 48259 rrc = DMATCH_NOMATCH 48260 goto RETURN_SWITCH 48261 48262 __2162: 48263 ; 48264 goto __2112 48265 48266 __2119: 48267 switch fc { 48268 case Tuint32_t('\012'): 48269 goto __2184 48270 case Tuint32_t('\013'): 48271 goto __2185 48272 case Tuint32_t('\014'): 48273 goto __2186 48274 case Tuint32_t('\015'): 48275 goto __2187 48276 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 48277 goto __2188 48278 case Tuint32_t(0x2028): 48279 goto __2189 /* LINE SEPARATOR */ 48280 case Tuint32_t(0x2029): 48281 goto __2190 48282 default: 48283 goto __2191 48284 } 48285 goto __2183 48286 48287 __2184: 48288 __2185: 48289 __2186: 48290 __2187: 48291 __2188: 48292 __2189: /* LINE SEPARATOR */ 48293 __2190: 48294 rrc = DMATCH_NOMATCH 48295 goto RETURN_SWITCH 48296 48297 __2191: 48298 goto __2183 48299 __2183: 48300 ; 48301 goto __2112 48302 48303 __2120: 48304 switch fc { 48305 case Tuint32_t('\012'): 48306 goto __2193 48307 case Tuint32_t('\013'): 48308 goto __2194 48309 case Tuint32_t('\014'): 48310 goto __2195 48311 case Tuint32_t('\015'): 48312 goto __2196 48313 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 48314 goto __2197 48315 case Tuint32_t(0x2028): 48316 goto __2198 /* LINE SEPARATOR */ 48317 case Tuint32_t(0x2029): 48318 goto __2199 48319 default: 48320 goto __2200 48321 } 48322 goto __2192 48323 48324 __2193: 48325 __2194: 48326 __2195: 48327 __2196: 48328 __2197: 48329 __2198: /* LINE SEPARATOR */ 48330 __2199: 48331 goto __2192 48332 __2200: 48333 rrc = DMATCH_NOMATCH 48334 goto RETURN_SWITCH 48335 48336 __2192: 48337 ; 48338 goto __2112 48339 48340 __2121: 48341 if !(fc < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_digit != 0) { 48342 goto __2201 48343 } 48344 rrc = DMATCH_NOMATCH 48345 goto RETURN_SWITCH 48346 __2201: 48347 ; 48348 48349 goto __2112 48350 48351 __2122: 48352 if !(fc >= Tuint32_t(256) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_digit == 0) { 48353 goto __2202 48354 } 48355 rrc = DMATCH_NOMATCH 48356 goto RETURN_SWITCH 48357 __2202: 48358 ; 48359 48360 goto __2112 48361 48362 __2123: 48363 if !(fc < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_space != 0) { 48364 goto __2203 48365 } 48366 rrc = DMATCH_NOMATCH 48367 goto RETURN_SWITCH 48368 __2203: 48369 ; 48370 48371 goto __2112 48372 48373 __2124: 48374 if !(fc >= Tuint32_t(256) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_space == 0) { 48375 goto __2204 48376 } 48377 rrc = DMATCH_NOMATCH 48378 goto RETURN_SWITCH 48379 __2204: 48380 ; 48381 48382 goto __2112 48383 48384 __2125: 48385 if !(fc < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_word != 0) { 48386 goto __2205 48387 } 48388 rrc = DMATCH_NOMATCH 48389 goto RETURN_SWITCH 48390 __2205: 48391 ; 48392 48393 goto __2112 48394 48395 __2126: 48396 if !(fc >= Tuint32_t(256) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_word == 0) { 48397 goto __2206 48398 } 48399 rrc = DMATCH_NOMATCH 48400 goto RETURN_SWITCH 48401 __2206: 48402 ; 48403 48404 goto __2112 48405 48406 __2127: 48407 return -44 48408 __2112: 48409 ; 48410 goto __2095 48411 __2095: 48412 goto __2094 48413 goto __2096 48414 __2096: 48415 ; 48416 goto __2093 48417 __2092: 48418 48419 /* Not UTF mode */ 48420 48421 __2207: 48422 48423 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 48424 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM33 48425 goto MATCH_RECURSE 48426 L_RM33: 48427 ; 48428 48429 if !(rrc != DMATCH_NOMATCH) { 48430 goto __2210 48431 } 48432 rrc = rrc 48433 goto RETURN_SWITCH 48434 __2210: 48435 ; 48436 48437 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 48438 goto __2211 48439 } 48440 rrc = DMATCH_NOMATCH 48441 goto RETURN_SWITCH 48442 __2211: 48443 ; 48444 48445 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 48446 goto __2212 48447 } 48448 48449 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 48450 goto __2213 48451 } 48452 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 48453 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 48454 goto __2214 48455 } 48456 return -2 48457 __2214: 48458 ; 48459 __2213: 48460 ; 48461 48462 rrc = DMATCH_NOMATCH 48463 goto RETURN_SWITCH 48464 48465 __2212: 48466 ; 48467 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_ANY && func() int32 { 48468 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 48469 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, (*Theapframe)(unsafe.Pointer(F)).Feptr, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+256, utf) != 0) 48470 } 48471 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260))) && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260 + 1))))) 48472 }() != 0) { 48473 goto __2215 48474 } 48475 rrc = DMATCH_NOMATCH 48476 goto RETURN_SWITCH 48477 __2215: 48478 ; 48479 48480 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 48481 switch *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) { 48482 case OP_ANY: 48483 goto __2217 48484 48485 case OP_ALLANY: 48486 goto __2218 48487 case OP_ANYBYTE: 48488 goto __2219 48489 48490 case OP_ANYNL: 48491 goto __2220 48492 48493 case OP_NOT_HSPACE: 48494 goto __2221 48495 48496 case OP_HSPACE: 48497 goto __2222 48498 48499 case OP_NOT_VSPACE: 48500 goto __2223 48501 48502 case OP_VSPACE: 48503 goto __2224 48504 48505 case OP_NOT_DIGIT: 48506 goto __2225 48507 48508 case OP_DIGIT: 48509 goto __2226 48510 48511 case OP_NOT_WHITESPACE: 48512 goto __2227 48513 48514 case OP_WHITESPACE: 48515 goto __2228 48516 48517 case OP_NOT_WORDCHAR: 48518 goto __2229 48519 48520 case OP_WORDCHAR: 48521 goto __2230 48522 48523 default: 48524 goto __2231 48525 } 48526 goto __2216 48527 48528 __2217: // This is the non-NL case 48529 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && (*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_FIXED) && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2) && fc == Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260)))) { 48530 goto __2232 48531 } 48532 48533 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 48534 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 48535 goto __2233 48536 } 48537 return -2 48538 __2233: 48539 ; 48540 __2232: 48541 ; 48542 goto __2216 48543 48544 __2218: 48545 __2219: 48546 goto __2216 48547 48548 __2220: 48549 switch fc { 48550 default: 48551 goto __2235 48552 48553 case Tuint32_t('\015'): 48554 goto __2236 48555 48556 case Tuint32_t('\012'): 48557 goto __2237 48558 48559 case Tuint32_t('\013'): 48560 goto __2238 48561 case Tuint32_t('\014'): 48562 goto __2239 48563 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 48564 goto __2240 48565 } 48566 goto __2234 48567 48568 __2235: 48569 rrc = DMATCH_NOMATCH 48570 goto RETURN_SWITCH 48571 48572 __2236: 48573 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == '\012') { 48574 goto __2241 48575 } 48576 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 48577 __2241: 48578 ; 48579 goto __2234 48580 48581 __2237: 48582 goto __2234 48583 48584 __2238: 48585 __2239: 48586 __2240: 48587 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fbsr_convention) == DPCRE2_BSR_ANYCRLF) { 48588 goto __2242 48589 } 48590 rrc = DMATCH_NOMATCH 48591 goto RETURN_SWITCH 48592 __2242: 48593 ; 48594 48595 goto __2234 48596 __2234: 48597 ; 48598 goto __2216 48599 48600 __2221: 48601 switch fc { 48602 default: 48603 goto __2244 48604 case Tuint32_t('\011'): 48605 goto __2245 48606 case Tuint32_t('\040'): 48607 goto __2246 48608 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 48609 goto __2247 48610 } 48611 goto __2243 48612 48613 __2244: 48614 goto __2243 48615 __2245: 48616 __2246: 48617 __2247: 48618 rrc = DMATCH_NOMATCH 48619 goto RETURN_SWITCH 48620 48621 __2243: 48622 ; 48623 goto __2216 48624 48625 __2222: 48626 switch fc { 48627 default: 48628 goto __2249 48629 case Tuint32_t('\011'): 48630 goto __2250 48631 case Tuint32_t('\040'): 48632 goto __2251 48633 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 48634 goto __2252 48635 } 48636 goto __2248 48637 48638 __2249: 48639 rrc = DMATCH_NOMATCH 48640 goto RETURN_SWITCH 48641 48642 __2250: 48643 __2251: 48644 __2252: 48645 goto __2248 48646 __2248: 48647 ; 48648 goto __2216 48649 48650 __2223: 48651 switch fc { 48652 default: 48653 goto __2254 48654 case Tuint32_t('\012'): 48655 goto __2255 48656 case Tuint32_t('\013'): 48657 goto __2256 48658 case Tuint32_t('\014'): 48659 goto __2257 48660 case Tuint32_t('\015'): 48661 goto __2258 48662 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 48663 goto __2259 48664 } 48665 goto __2253 48666 48667 __2254: 48668 goto __2253 48669 __2255: 48670 __2256: 48671 __2257: 48672 __2258: 48673 __2259: 48674 rrc = DMATCH_NOMATCH 48675 goto RETURN_SWITCH 48676 48677 __2253: 48678 ; 48679 goto __2216 48680 48681 __2224: 48682 switch fc { 48683 default: 48684 goto __2261 48685 case Tuint32_t('\012'): 48686 goto __2262 48687 case Tuint32_t('\013'): 48688 goto __2263 48689 case Tuint32_t('\014'): 48690 goto __2264 48691 case Tuint32_t('\015'): 48692 goto __2265 48693 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 48694 goto __2266 48695 } 48696 goto __2260 48697 48698 __2261: 48699 rrc = DMATCH_NOMATCH 48700 goto RETURN_SWITCH 48701 48702 __2262: 48703 __2263: 48704 __2264: 48705 __2265: 48706 __2266: 48707 goto __2260 48708 __2260: 48709 ; 48710 goto __2216 48711 48712 __2225: 48713 if !(1 != 0 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_digit != 0) { 48714 goto __2267 48715 } 48716 rrc = DMATCH_NOMATCH 48717 goto RETURN_SWITCH 48718 __2267: 48719 ; 48720 48721 goto __2216 48722 48723 __2226: 48724 if !(!(1 != 0) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_digit == 0) { 48725 goto __2268 48726 } 48727 rrc = DMATCH_NOMATCH 48728 goto RETURN_SWITCH 48729 __2268: 48730 ; 48731 48732 goto __2216 48733 48734 __2227: 48735 if !(1 != 0 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_space != 0) { 48736 goto __2269 48737 } 48738 rrc = DMATCH_NOMATCH 48739 goto RETURN_SWITCH 48740 __2269: 48741 ; 48742 48743 goto __2216 48744 48745 __2228: 48746 if !(!(1 != 0) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_space == 0) { 48747 goto __2270 48748 } 48749 rrc = DMATCH_NOMATCH 48750 goto RETURN_SWITCH 48751 __2270: 48752 ; 48753 48754 goto __2216 48755 48756 __2229: 48757 if !(1 != 0 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_word != 0) { 48758 goto __2271 48759 } 48760 rrc = DMATCH_NOMATCH 48761 goto RETURN_SWITCH 48762 __2271: 48763 ; 48764 48765 goto __2216 48766 48767 __2230: 48768 if !(!(1 != 0) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_word == 0) { 48769 goto __2272 48770 } 48771 rrc = DMATCH_NOMATCH 48772 goto RETURN_SWITCH 48773 __2272: 48774 ; 48775 48776 goto __2216 48777 48778 __2231: 48779 return -44 48780 __2216: 48781 ; 48782 goto __2208 48783 __2208: 48784 goto __2207 48785 goto __2209 48786 __2209: 48787 ; 48788 __2093: 48789 ; 48790 __2070: 48791 ; 48792 __1783: 48793 ; 48794 // Control never gets here 48795 goto __1781 48796 __1780: 48797 48798 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) = (*Theapframe)(unsafe.Pointer(F)).Feptr // Remember where we started 48799 48800 if !(proptype >= 0) { 48801 goto __2273 48802 } 48803 notmatch2 = libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOTPROP) 48804 switch proptype { 48805 case DPT_ANY: 48806 goto __2276 48807 48808 case DPT_LAMP: 48809 goto __2277 48810 48811 case DPT_GC: 48812 goto __2278 48813 48814 case DPT_PC: 48815 goto __2279 48816 48817 case DPT_SC: 48818 goto __2280 48819 48820 case DPT_SCX: 48821 goto __2281 48822 48823 case DPT_ALNUM: 48824 goto __2282 48825 48826 // Perl space used to exclude VT, but from Perl 5.18 it is included, 48827 // which means that Perl space and POSIX space are now identical. PCRE 48828 // was changed at release 8.34. 48829 48830 case DPT_SPACE: 48831 goto __2283 // Perl space 48832 case DPT_PXSPACE: 48833 goto __2284 48834 48835 case DPT_WORD: 48836 goto __2285 48837 48838 case DPT_CLIST: 48839 goto __2286 48840 48841 case DPT_UCNC: 48842 goto __2287 48843 48844 case DPT_BIDICL: 48845 goto __2288 48846 48847 case DPT_BOOL: 48848 goto __2289 48849 48850 default: 48851 goto __2290 48852 } 48853 goto __2275 48854 48855 __2276: 48856 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 48857 __2291: 48858 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 48859 goto __2293 48860 } 48861 48862 len4 = 1 48863 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 48864 goto __2294 48865 } 48866 48867 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 48868 goto __2295 48869 } 48870 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 48871 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 48872 goto __2296 48873 } 48874 return -2 48875 __2296: 48876 ; 48877 __2295: 48878 ; 48879 48880 goto __2293 48881 __2294: 48882 ; 48883 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 48884 if !(utf != 0 && fc >= 0xc0) { 48885 goto __2297 48886 } 48887 if !(fc&0x20 == Tuint32_t(0)) { 48888 goto __2298 48889 } 48890 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 48891 len4++ 48892 goto __2299 48893 __2298: 48894 if !(fc&0x10 == Tuint32_t(0)) { 48895 goto __2300 48896 } 48897 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 48898 len4 = len4 + 2 48899 goto __2301 48900 __2300: 48901 if !(fc&0x08 == Tuint32_t(0)) { 48902 goto __2302 48903 } 48904 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 48905 len4 = len4 + 3 48906 goto __2303 48907 __2302: 48908 if !(fc&0x04 == Tuint32_t(0)) { 48909 goto __2304 48910 } 48911 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 48912 len4 = len4 + 4 48913 goto __2305 48914 __2304: 48915 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 48916 len4 = len4 + 5 48917 __2305: 48918 ; 48919 __2303: 48920 ; 48921 __2301: 48922 ; 48923 __2299: 48924 ; 48925 __2297: 48926 ; 48927 48928 if !(notmatch2 != 0) { 48929 goto __2306 48930 } 48931 goto __2293 48932 __2306: 48933 ; 48934 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len4) 48935 goto __2292 48936 __2292: 48937 i++ 48938 goto __2291 48939 goto __2293 48940 __2293: 48941 ; 48942 goto __2275 48943 48944 __2277: 48945 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 48946 __2307: 48947 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 48948 goto __2309 48949 } 48950 48951 len5 = 1 48952 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 48953 goto __2310 48954 } 48955 48956 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 48957 goto __2311 48958 } 48959 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 48960 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 48961 goto __2312 48962 } 48963 return -2 48964 __2312: 48965 ; 48966 __2311: 48967 ; 48968 48969 goto __2309 48970 __2310: 48971 ; 48972 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 48973 if !(utf != 0 && fc >= 0xc0) { 48974 goto __2313 48975 } 48976 if !(fc&0x20 == Tuint32_t(0)) { 48977 goto __2314 48978 } 48979 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 48980 len5++ 48981 goto __2315 48982 __2314: 48983 if !(fc&0x10 == Tuint32_t(0)) { 48984 goto __2316 48985 } 48986 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 48987 len5 = len5 + 2 48988 goto __2317 48989 __2316: 48990 if !(fc&0x08 == Tuint32_t(0)) { 48991 goto __2318 48992 } 48993 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 48994 len5 = len5 + 3 48995 goto __2319 48996 __2318: 48997 if !(fc&0x04 == Tuint32_t(0)) { 48998 goto __2320 48999 } 49000 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 49001 len5 = len5 + 4 49002 goto __2321 49003 __2320: 49004 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 49005 len5 = len5 + 5 49006 __2321: 49007 ; 49008 __2319: 49009 ; 49010 __2317: 49011 ; 49012 __2315: 49013 ; 49014 __2313: 49015 ; 49016 49017 chartype2 = int32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype) 49018 if !(libc.Bool32(chartype2 == ucp_Lu || chartype2 == ucp_Ll || chartype2 == ucp_Lt) == notmatch2) { 49019 goto __2322 49020 } 49021 goto __2309 49022 __2322: 49023 ; 49024 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len5) 49025 goto __2308 49026 __2308: 49027 i++ 49028 goto __2307 49029 goto __2309 49030 __2309: 49031 ; 49032 goto __2275 49033 49034 __2278: 49035 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 49036 __2323: 49037 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 49038 goto __2325 49039 } 49040 49041 len6 = 1 49042 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 49043 goto __2326 49044 } 49045 49046 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 49047 goto __2327 49048 } 49049 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 49050 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 49051 goto __2328 49052 } 49053 return -2 49054 __2328: 49055 ; 49056 __2327: 49057 ; 49058 49059 goto __2325 49060 __2326: 49061 ; 49062 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 49063 if !(utf != 0 && fc >= 0xc0) { 49064 goto __2329 49065 } 49066 if !(fc&0x20 == Tuint32_t(0)) { 49067 goto __2330 49068 } 49069 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 49070 len6++ 49071 goto __2331 49072 __2330: 49073 if !(fc&0x10 == Tuint32_t(0)) { 49074 goto __2332 49075 } 49076 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 49077 len6 = len6 + 2 49078 goto __2333 49079 __2332: 49080 if !(fc&0x08 == Tuint32_t(0)) { 49081 goto __2334 49082 } 49083 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 49084 len6 = len6 + 3 49085 goto __2335 49086 __2334: 49087 if !(fc&0x04 == Tuint32_t(0)) { 49088 goto __2336 49089 } 49090 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 49091 len6 = len6 + 4 49092 goto __2337 49093 __2336: 49094 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 49095 len6 = len6 + 5 49096 __2337: 49097 ; 49098 __2335: 49099 ; 49100 __2333: 49101 ; 49102 __2331: 49103 ; 49104 __2329: 49105 ; 49106 49107 if !(libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype] == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4))) == notmatch2) { 49108 goto __2338 49109 } 49110 goto __2325 49111 __2338: 49112 ; 49113 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len6) 49114 goto __2324 49115 __2324: 49116 i++ 49117 goto __2323 49118 goto __2325 49119 __2325: 49120 ; 49121 goto __2275 49122 49123 __2279: 49124 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 49125 __2339: 49126 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 49127 goto __2341 49128 } 49129 49130 len7 = 1 49131 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 49132 goto __2342 49133 } 49134 49135 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 49136 goto __2343 49137 } 49138 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 49139 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 49140 goto __2344 49141 } 49142 return -2 49143 __2344: 49144 ; 49145 __2343: 49146 ; 49147 49148 goto __2341 49149 __2342: 49150 ; 49151 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 49152 if !(utf != 0 && fc >= 0xc0) { 49153 goto __2345 49154 } 49155 if !(fc&0x20 == Tuint32_t(0)) { 49156 goto __2346 49157 } 49158 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 49159 len7++ 49160 goto __2347 49161 __2346: 49162 if !(fc&0x10 == Tuint32_t(0)) { 49163 goto __2348 49164 } 49165 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 49166 len7 = len7 + 2 49167 goto __2349 49168 __2348: 49169 if !(fc&0x08 == Tuint32_t(0)) { 49170 goto __2350 49171 } 49172 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 49173 len7 = len7 + 3 49174 goto __2351 49175 __2350: 49176 if !(fc&0x04 == Tuint32_t(0)) { 49177 goto __2352 49178 } 49179 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 49180 len7 = len7 + 4 49181 goto __2353 49182 __2352: 49183 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 49184 len7 = len7 + 5 49185 __2353: 49186 ; 49187 __2351: 49188 ; 49189 __2349: 49190 ; 49191 __2347: 49192 ; 49193 __2345: 49194 ; 49195 49196 if !(libc.Bool32(Tuint32_t((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype) == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4))) == notmatch2) { 49197 goto __2354 49198 } 49199 goto __2341 49200 __2354: 49201 ; 49202 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len7) 49203 goto __2340 49204 __2340: 49205 i++ 49206 goto __2339 49207 goto __2341 49208 __2341: 49209 ; 49210 goto __2275 49211 49212 __2280: 49213 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 49214 __2355: 49215 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 49216 goto __2357 49217 } 49218 49219 len8 = 1 49220 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 49221 goto __2358 49222 } 49223 49224 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 49225 goto __2359 49226 } 49227 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 49228 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 49229 goto __2360 49230 } 49231 return -2 49232 __2360: 49233 ; 49234 __2359: 49235 ; 49236 49237 goto __2357 49238 __2358: 49239 ; 49240 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 49241 if !(utf != 0 && fc >= 0xc0) { 49242 goto __2361 49243 } 49244 if !(fc&0x20 == Tuint32_t(0)) { 49245 goto __2362 49246 } 49247 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 49248 len8++ 49249 goto __2363 49250 __2362: 49251 if !(fc&0x10 == Tuint32_t(0)) { 49252 goto __2364 49253 } 49254 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 49255 len8 = len8 + 2 49256 goto __2365 49257 __2364: 49258 if !(fc&0x08 == Tuint32_t(0)) { 49259 goto __2366 49260 } 49261 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 49262 len8 = len8 + 3 49263 goto __2367 49264 __2366: 49265 if !(fc&0x04 == Tuint32_t(0)) { 49266 goto __2368 49267 } 49268 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 49269 len8 = len8 + 4 49270 goto __2369 49271 __2368: 49272 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 49273 len8 = len8 + 5 49274 __2369: 49275 ; 49276 __2367: 49277 ; 49278 __2365: 49279 ; 49280 __2363: 49281 ; 49282 __2361: 49283 ; 49284 49285 if !(libc.Bool32(Tuint32_t((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fscript) == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4))) == notmatch2) { 49286 goto __2370 49287 } 49288 goto __2357 49289 __2370: 49290 ; 49291 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len8) 49292 goto __2356 49293 __2356: 49294 i++ 49295 goto __2355 49296 goto __2357 49297 __2357: 49298 ; 49299 goto __2275 49300 49301 __2281: 49302 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 49303 __2371: 49304 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 49305 goto __2373 49306 } 49307 49308 len9 = 1 49309 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 49310 goto __2374 49311 } 49312 49313 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 49314 goto __2375 49315 } 49316 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 49317 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 49318 goto __2376 49319 } 49320 return -2 49321 __2376: 49322 ; 49323 __2375: 49324 ; 49325 49326 goto __2373 49327 __2374: 49328 ; 49329 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 49330 if !(utf != 0 && fc >= 0xc0) { 49331 goto __2377 49332 } 49333 if !(fc&0x20 == Tuint32_t(0)) { 49334 goto __2378 49335 } 49336 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 49337 len9++ 49338 goto __2379 49339 __2378: 49340 if !(fc&0x10 == Tuint32_t(0)) { 49341 goto __2380 49342 } 49343 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 49344 len9 = len9 + 2 49345 goto __2381 49346 __2380: 49347 if !(fc&0x08 == Tuint32_t(0)) { 49348 goto __2382 49349 } 49350 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 49351 len9 = len9 + 3 49352 goto __2383 49353 __2382: 49354 if !(fc&0x04 == Tuint32_t(0)) { 49355 goto __2384 49356 } 49357 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 49358 len9 = len9 + 4 49359 goto __2385 49360 __2384: 49361 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 49362 len9 = len9 + 5 49363 __2385: 49364 ; 49365 __2383: 49366 ; 49367 __2381: 49368 ; 49369 __2379: 49370 ; 49371 __2377: 49372 ; 49373 49374 prop5 = uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12 49375 ok6 = libc.Bool32(Tuint32_t((*Tucd_record)(unsafe.Pointer(prop5)).Fscript) == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)) || *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_script_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop5)).Fscriptx_bidiclass)&DUCD_SCRIPTX_MASK)*4 + uintptr(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4))/Tuint32_t(32))*4))&(uint32(1)<<(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4))%Tuint32_t(32))) != Tuint32_t(0)) 49376 if !(ok6 == notmatch2) { 49377 goto __2386 49378 } 49379 goto __2373 49380 __2386: 49381 ; 49382 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len9) 49383 goto __2372 49384 __2372: 49385 i++ 49386 goto __2371 49387 goto __2373 49388 __2373: 49389 ; 49390 goto __2275 49391 49392 __2282: 49393 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 49394 __2387: 49395 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 49396 goto __2389 49397 } 49398 49399 len10 = 1 49400 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 49401 goto __2390 49402 } 49403 49404 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 49405 goto __2391 49406 } 49407 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 49408 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 49409 goto __2392 49410 } 49411 return -2 49412 __2392: 49413 ; 49414 __2391: 49415 ; 49416 49417 goto __2389 49418 __2390: 49419 ; 49420 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 49421 if !(utf != 0 && fc >= 0xc0) { 49422 goto __2393 49423 } 49424 if !(fc&0x20 == Tuint32_t(0)) { 49425 goto __2394 49426 } 49427 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 49428 len10++ 49429 goto __2395 49430 __2394: 49431 if !(fc&0x10 == Tuint32_t(0)) { 49432 goto __2396 49433 } 49434 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 49435 len10 = len10 + 2 49436 goto __2397 49437 __2396: 49438 if !(fc&0x08 == Tuint32_t(0)) { 49439 goto __2398 49440 } 49441 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 49442 len10 = len10 + 3 49443 goto __2399 49444 __2398: 49445 if !(fc&0x04 == Tuint32_t(0)) { 49446 goto __2400 49447 } 49448 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 49449 len10 = len10 + 4 49450 goto __2401 49451 __2400: 49452 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 49453 len10 = len10 + 5 49454 __2401: 49455 ; 49456 __2399: 49457 ; 49458 __2397: 49459 ; 49460 __2395: 49461 ; 49462 __2393: 49463 ; 49464 49465 category4 = int32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype]) 49466 if !(libc.Bool32(category4 == ucp_L || category4 == ucp_N) == notmatch2) { 49467 goto __2402 49468 } 49469 goto __2389 49470 __2402: 49471 ; 49472 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len10) 49473 goto __2388 49474 __2388: 49475 i++ 49476 goto __2387 49477 goto __2389 49478 __2389: 49479 ; 49480 goto __2275 49481 49482 // Perl space used to exclude VT, but from Perl 5.18 it is included, 49483 // which means that Perl space and POSIX space are now identical. PCRE 49484 // was changed at release 8.34. 49485 49486 __2283: // Perl space 49487 __2284: // POSIX space 49488 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 49489 __2403: 49490 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 49491 goto __2405 49492 } 49493 49494 len11 = 1 49495 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 49496 goto __2406 49497 } 49498 49499 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 49500 goto __2407 49501 } 49502 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 49503 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 49504 goto __2408 49505 } 49506 return -2 49507 __2408: 49508 ; 49509 __2407: 49510 ; 49511 49512 goto __2405 49513 __2406: 49514 ; 49515 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 49516 if !(utf != 0 && fc >= 0xc0) { 49517 goto __2409 49518 } 49519 if !(fc&0x20 == Tuint32_t(0)) { 49520 goto __2410 49521 } 49522 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 49523 len11++ 49524 goto __2411 49525 __2410: 49526 if !(fc&0x10 == Tuint32_t(0)) { 49527 goto __2412 49528 } 49529 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 49530 len11 = len11 + 2 49531 goto __2413 49532 __2412: 49533 if !(fc&0x08 == Tuint32_t(0)) { 49534 goto __2414 49535 } 49536 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 49537 len11 = len11 + 3 49538 goto __2415 49539 __2414: 49540 if !(fc&0x04 == Tuint32_t(0)) { 49541 goto __2416 49542 } 49543 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 49544 len11 = len11 + 4 49545 goto __2417 49546 __2416: 49547 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 49548 len11 = len11 + 5 49549 __2417: 49550 ; 49551 __2415: 49552 ; 49553 __2413: 49554 ; 49555 __2411: 49556 ; 49557 __2409: 49558 ; 49559 49560 switch fc { 49561 case Tuint32_t('\011'): 49562 goto __2419 49563 case Tuint32_t('\040'): 49564 goto __2420 49565 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 49566 goto __2421 49567 case Tuint32_t(0x1680): 49568 goto __2422 /* OGHAM SPACE MARK */ 49569 case Tuint32_t(0x180e): 49570 goto __2423 /* MONGOLIAN VOWEL SEPARATOR */ 49571 case Tuint32_t(0x2000): 49572 goto __2424 /* EN QUAD */ 49573 case Tuint32_t(0x2001): 49574 goto __2425 /* EM QUAD */ 49575 case Tuint32_t(0x2002): 49576 goto __2426 /* EN SPACE */ 49577 case Tuint32_t(0x2003): 49578 goto __2427 /* EM SPACE */ 49579 case Tuint32_t(0x2004): 49580 goto __2428 /* THREE-PER-EM SPACE */ 49581 case Tuint32_t(0x2005): 49582 goto __2429 /* FOUR-PER-EM SPACE */ 49583 case Tuint32_t(0x2006): 49584 goto __2430 /* SIX-PER-EM SPACE */ 49585 case Tuint32_t(0x2007): 49586 goto __2431 /* FIGURE SPACE */ 49587 case Tuint32_t(0x2008): 49588 goto __2432 /* PUNCTUATION SPACE */ 49589 case Tuint32_t(0x2009): 49590 goto __2433 /* THIN SPACE */ 49591 case Tuint32_t(0x200A): 49592 goto __2434 /* HAIR SPACE */ 49593 case Tuint32_t(0x202f): 49594 goto __2435 /* NARROW NO-BREAK SPACE */ 49595 case Tuint32_t(0x205f): 49596 goto __2436 /* MEDIUM MATHEMATICAL SPACE */ 49597 case Tuint32_t(0x3000): 49598 goto __2437 49599 case Tuint32_t('\012'): 49600 goto __2438 49601 case Tuint32_t('\013'): 49602 goto __2439 49603 case Tuint32_t('\014'): 49604 goto __2440 49605 case Tuint32_t('\015'): 49606 goto __2441 49607 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 49608 goto __2442 49609 case Tuint32_t(0x2028): 49610 goto __2443 /* LINE SEPARATOR */ 49611 case Tuint32_t(0x2029): 49612 goto __2444 49613 49614 default: 49615 goto __2445 49616 } 49617 goto __2418 49618 49619 __2419: 49620 __2420: 49621 __2421: 49622 __2422: /* OGHAM SPACE MARK */ 49623 __2423: /* MONGOLIAN VOWEL SEPARATOR */ 49624 __2424: /* EN QUAD */ 49625 __2425: /* EM QUAD */ 49626 __2426: /* EN SPACE */ 49627 __2427: /* EM SPACE */ 49628 __2428: /* THREE-PER-EM SPACE */ 49629 __2429: /* FOUR-PER-EM SPACE */ 49630 __2430: /* SIX-PER-EM SPACE */ 49631 __2431: /* FIGURE SPACE */ 49632 __2432: /* PUNCTUATION SPACE */ 49633 __2433: /* THIN SPACE */ 49634 __2434: /* HAIR SPACE */ 49635 __2435: /* NARROW NO-BREAK SPACE */ 49636 __2436: /* MEDIUM MATHEMATICAL SPACE */ 49637 __2437: 49638 __2438: 49639 __2439: 49640 __2440: 49641 __2441: 49642 __2442: 49643 __2443: /* LINE SEPARATOR */ 49644 __2444: 49645 if !(notmatch2 != 0) { 49646 goto __2446 49647 } 49648 goto ENDLOOP99 49649 __2446: 49650 ; // Break the loop 49651 goto __2418 49652 49653 __2445: 49654 if !(libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype] == ucp_Z) == notmatch2) { 49655 goto __2447 49656 } 49657 goto ENDLOOP99 49658 __2447: 49659 ; // Break the loop 49660 goto __2418 49661 __2418: 49662 ; 49663 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len11) 49664 goto __2404 49665 __2404: 49666 i++ 49667 goto __2403 49668 goto __2405 49669 __2405: 49670 ; 49671 ENDLOOP99: 49672 goto __2275 49673 49674 __2285: 49675 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 49676 __2448: 49677 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 49678 goto __2450 49679 } 49680 49681 len12 = 1 49682 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 49683 goto __2451 49684 } 49685 49686 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 49687 goto __2452 49688 } 49689 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 49690 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 49691 goto __2453 49692 } 49693 return -2 49694 __2453: 49695 ; 49696 __2452: 49697 ; 49698 49699 goto __2450 49700 __2451: 49701 ; 49702 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 49703 if !(utf != 0 && fc >= 0xc0) { 49704 goto __2454 49705 } 49706 if !(fc&0x20 == Tuint32_t(0)) { 49707 goto __2455 49708 } 49709 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 49710 len12++ 49711 goto __2456 49712 __2455: 49713 if !(fc&0x10 == Tuint32_t(0)) { 49714 goto __2457 49715 } 49716 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 49717 len12 = len12 + 2 49718 goto __2458 49719 __2457: 49720 if !(fc&0x08 == Tuint32_t(0)) { 49721 goto __2459 49722 } 49723 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 49724 len12 = len12 + 3 49725 goto __2460 49726 __2459: 49727 if !(fc&0x04 == Tuint32_t(0)) { 49728 goto __2461 49729 } 49730 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 49731 len12 = len12 + 4 49732 goto __2462 49733 __2461: 49734 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 49735 len12 = len12 + 5 49736 __2462: 49737 ; 49738 __2460: 49739 ; 49740 __2458: 49741 ; 49742 __2456: 49743 ; 49744 __2454: 49745 ; 49746 49747 category5 = int32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype]) 49748 if !(libc.Bool32(category5 == ucp_L || category5 == ucp_N || fc == Tuint32_t('\137')) == notmatch2) { 49749 goto __2463 49750 } 49751 goto __2450 49752 __2463: 49753 ; 49754 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len12) 49755 goto __2449 49756 __2449: 49757 i++ 49758 goto __2448 49759 goto __2450 49760 __2450: 49761 ; 49762 goto __2275 49763 49764 __2286: 49765 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 49766 __2464: 49767 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 49768 goto __2466 49769 } 49770 49771 len13 = 1 49772 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 49773 goto __2467 49774 } 49775 49776 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 49777 goto __2468 49778 } 49779 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 49780 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 49781 goto __2469 49782 } 49783 return -2 49784 __2469: 49785 ; 49786 __2468: 49787 ; 49788 49789 goto __2466 49790 __2467: 49791 ; 49792 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 49793 if !(utf != 0 && fc >= 0xc0) { 49794 goto __2470 49795 } 49796 if !(fc&0x20 == Tuint32_t(0)) { 49797 goto __2471 49798 } 49799 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 49800 len13++ 49801 goto __2472 49802 __2471: 49803 if !(fc&0x10 == Tuint32_t(0)) { 49804 goto __2473 49805 } 49806 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 49807 len13 = len13 + 2 49808 goto __2474 49809 __2473: 49810 if !(fc&0x08 == Tuint32_t(0)) { 49811 goto __2475 49812 } 49813 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 49814 len13 = len13 + 3 49815 goto __2476 49816 __2475: 49817 if !(fc&0x04 == Tuint32_t(0)) { 49818 goto __2477 49819 } 49820 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 49821 len13 = len13 + 4 49822 goto __2478 49823 __2477: 49824 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 49825 len13 = len13 + 5 49826 __2478: 49827 ; 49828 __2476: 49829 ; 49830 __2474: 49831 ; 49832 __2472: 49833 ; 49834 __2470: 49835 ; 49836 49837 cp3 = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4)))*4 49838 __2479: 49839 49840 if !(fc < *(*Tuint32_t)(unsafe.Pointer(cp3))) { 49841 goto __2482 49842 } 49843 if !(notmatch2 != 0) { 49844 goto __2483 49845 } 49846 goto __2481 49847 goto __2484 49848 __2483: 49849 goto GOT_MAX 49850 __2484: 49851 ; 49852 __2482: 49853 ; 49854 if !(fc == *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&cp3, 4)))) { 49855 goto __2485 49856 } 49857 if !(notmatch2 != 0) { 49858 goto __2486 49859 } 49860 goto GOT_MAX 49861 goto __2487 49862 __2486: 49863 goto __2481 49864 __2487: 49865 ; 49866 __2485: 49867 ; 49868 goto __2480 49869 __2480: 49870 goto __2479 49871 goto __2481 49872 __2481: 49873 ; 49874 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len13) 49875 goto __2465 49876 __2465: 49877 i++ 49878 goto __2464 49879 goto __2466 49880 __2466: 49881 ; 49882 GOT_MAX: 49883 goto __2275 49884 49885 __2287: 49886 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 49887 __2488: 49888 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 49889 goto __2490 49890 } 49891 49892 len14 = 1 49893 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 49894 goto __2491 49895 } 49896 49897 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 49898 goto __2492 49899 } 49900 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 49901 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 49902 goto __2493 49903 } 49904 return -2 49905 __2493: 49906 ; 49907 __2492: 49908 ; 49909 49910 goto __2490 49911 __2491: 49912 ; 49913 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 49914 if !(utf != 0 && fc >= 0xc0) { 49915 goto __2494 49916 } 49917 if !(fc&0x20 == Tuint32_t(0)) { 49918 goto __2495 49919 } 49920 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 49921 len14++ 49922 goto __2496 49923 __2495: 49924 if !(fc&0x10 == Tuint32_t(0)) { 49925 goto __2497 49926 } 49927 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 49928 len14 = len14 + 2 49929 goto __2498 49930 __2497: 49931 if !(fc&0x08 == Tuint32_t(0)) { 49932 goto __2499 49933 } 49934 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 49935 len14 = len14 + 3 49936 goto __2500 49937 __2499: 49938 if !(fc&0x04 == Tuint32_t(0)) { 49939 goto __2501 49940 } 49941 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 49942 len14 = len14 + 4 49943 goto __2502 49944 __2501: 49945 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 49946 len14 = len14 + 5 49947 __2502: 49948 ; 49949 __2500: 49950 ; 49951 __2498: 49952 ; 49953 __2496: 49954 ; 49955 __2494: 49956 ; 49957 49958 if !(libc.Bool32(fc == Tuint32_t('\044') || fc == Tuint32_t('\100') || fc == Tuint32_t('\140') || fc >= Tuint32_t(0xa0) && fc <= Tuint32_t(0xd7ff) || fc >= Tuint32_t(0xe000)) == notmatch2) { 49959 goto __2503 49960 } 49961 goto __2490 49962 __2503: 49963 ; 49964 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len14) 49965 goto __2489 49966 __2489: 49967 i++ 49968 goto __2488 49969 goto __2490 49970 __2490: 49971 ; 49972 goto __2275 49973 49974 __2288: 49975 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 49976 __2504: 49977 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 49978 goto __2506 49979 } 49980 49981 len15 = 1 49982 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 49983 goto __2507 49984 } 49985 49986 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 49987 goto __2508 49988 } 49989 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 49990 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 49991 goto __2509 49992 } 49993 return -2 49994 __2509: 49995 ; 49996 __2508: 49997 ; 49998 49999 goto __2506 50000 __2507: 50001 ; 50002 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 50003 if !(utf != 0 && fc >= 0xc0) { 50004 goto __2510 50005 } 50006 if !(fc&0x20 == Tuint32_t(0)) { 50007 goto __2511 50008 } 50009 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 50010 len15++ 50011 goto __2512 50012 __2511: 50013 if !(fc&0x10 == Tuint32_t(0)) { 50014 goto __2513 50015 } 50016 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 50017 len15 = len15 + 2 50018 goto __2514 50019 __2513: 50020 if !(fc&0x08 == Tuint32_t(0)) { 50021 goto __2515 50022 } 50023 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 50024 len15 = len15 + 3 50025 goto __2516 50026 __2515: 50027 if !(fc&0x04 == Tuint32_t(0)) { 50028 goto __2517 50029 } 50030 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 50031 len15 = len15 + 4 50032 goto __2518 50033 __2517: 50034 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 50035 len15 = len15 + 5 50036 __2518: 50037 ; 50038 __2516: 50039 ; 50040 __2514: 50041 ; 50042 __2512: 50043 ; 50044 __2510: 50045 ; 50046 50047 if !(libc.Bool32(Tuint32_t(int32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fscriptx_bidiclass)>>DUCD_BIDICLASS_SHIFT) == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4))) == notmatch2) { 50048 goto __2519 50049 } 50050 goto __2506 50051 __2519: 50052 ; 50053 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len15) 50054 goto __2505 50055 __2505: 50056 i++ 50057 goto __2504 50058 goto __2506 50059 __2506: 50060 ; 50061 goto __2275 50062 50063 __2289: 50064 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 50065 __2520: 50066 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 50067 goto __2522 50068 } 50069 50070 len16 = 1 50071 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 50072 goto __2523 50073 } 50074 50075 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 50076 goto __2524 50077 } 50078 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 50079 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 50080 goto __2525 50081 } 50082 return -2 50083 __2525: 50084 ; 50085 __2524: 50086 ; 50087 50088 goto __2522 50089 __2523: 50090 ; 50091 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 50092 if !(utf != 0 && fc >= 0xc0) { 50093 goto __2526 50094 } 50095 if !(fc&0x20 == Tuint32_t(0)) { 50096 goto __2527 50097 } 50098 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 50099 len16++ 50100 goto __2528 50101 __2527: 50102 if !(fc&0x10 == Tuint32_t(0)) { 50103 goto __2529 50104 } 50105 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 50106 len16 = len16 + 2 50107 goto __2530 50108 __2529: 50109 if !(fc&0x08 == Tuint32_t(0)) { 50110 goto __2531 50111 } 50112 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 50113 len16 = len16 + 3 50114 goto __2532 50115 __2531: 50116 if !(fc&0x04 == Tuint32_t(0)) { 50117 goto __2533 50118 } 50119 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 50120 len16 = len16 + 4 50121 goto __2534 50122 __2533: 50123 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 50124 len16 = len16 + 5 50125 __2534: 50126 ; 50127 __2532: 50128 ; 50129 __2530: 50130 ; 50131 __2528: 50132 ; 50133 __2526: 50134 ; 50135 50136 prop6 = uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12 50137 ok7 = libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_boolprop_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop6)).Fbprops)&DUCD_BPROPS_MASK)*4 + uintptr(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4))/Tuint32_t(32))*4))&(uint32(1)<<(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 3*4))%Tuint32_t(32))) != Tuint32_t(0)) 50138 if !(ok7 == notmatch2) { 50139 goto __2535 50140 } 50141 goto __2522 50142 __2535: 50143 ; 50144 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len16) 50145 goto __2521 50146 __2521: 50147 i++ 50148 goto __2520 50149 goto __2522 50150 __2522: 50151 ; 50152 goto __2275 50153 50154 __2290: 50155 return -44 50156 __2275: 50157 ; 50158 50159 // Feptr is now past the end of the maximum run 50160 50161 if !(reptype == REPTYPE_POS) { 50162 goto __2536 50163 } 50164 goto __11 50165 __2536: 50166 ; // No backtracking 50167 50168 // After \C in UTF mode, Lstart_eptr might be in the middle of a 50169 // Unicode character. Use <= Lstart_eptr to ensure backtracking doesn't 50170 // go too far. 50171 50172 __2537: 50173 50174 if !((*Theapframe)(unsafe.Pointer(F)).Feptr <= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 50175 goto __2540 50176 } 50177 goto __2539 50178 __2540: 50179 ; 50180 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 50181 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM222 50182 goto MATCH_RECURSE 50183 L_RM222: 50184 ; 50185 50186 if !(rrc != DMATCH_NOMATCH) { 50187 goto __2541 50188 } 50189 rrc = rrc 50190 goto RETURN_SWITCH 50191 __2541: 50192 ; 50193 50194 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 50195 if !(utf != 0) { 50196 goto __2542 50197 } 50198 __2543: 50199 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 50200 goto __2544 50201 } 50202 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 50203 goto __2543 50204 __2544: 50205 ; 50206 __2542: 50207 ; 50208 goto __2538 50209 __2538: 50210 goto __2537 50211 goto __2539 50212 __2539: 50213 ; 50214 goto __2274 50215 __2273: 50216 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_EXTUNI) { 50217 goto __2545 50218 } 50219 50220 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 50221 __2547: 50222 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 50223 goto __2549 50224 } 50225 50226 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 50227 goto __2550 50228 } 50229 50230 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 50231 goto __2552 50232 } 50233 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 50234 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 50235 goto __2553 50236 } 50237 return -2 50238 __2553: 50239 ; 50240 __2552: 50241 ; 50242 50243 goto __2549 50244 goto __2551 50245 __2550: 50246 50247 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1)))) 50248 if !(utf != 0 && fc >= 0xc0) { 50249 goto __2554 50250 } 50251 if !(fc&0x20 == Tuint32_t(0)) { 50252 goto __2555 50253 } 50254 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1))))&0x3f 50255 goto __2556 50256 __2555: 50257 if !(fc&0x10 == Tuint32_t(0)) { 50258 goto __2557 50259 } 50260 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 50261 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(2) 50262 goto __2558 50263 __2557: 50264 if !(fc&0x08 == Tuint32_t(0)) { 50265 goto __2559 50266 } 50267 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 50268 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(3) 50269 goto __2560 50270 __2559: 50271 if !(fc&0x04 == Tuint32_t(0)) { 50272 goto __2561 50273 } 50274 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 50275 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(4) 50276 goto __2562 50277 __2561: 50278 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 50279 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += uintptr(5) 50280 __2562: 50281 ; 50282 __2560: 50283 ; 50284 __2558: 50285 ; 50286 __2556: 50287 ; 50288 __2554: 50289 ; 50290 50291 (*Theapframe)(unsafe.Pointer(F)).Feptr = X_pcre2_extuni_8(tls, fc, (*Theapframe)(unsafe.Pointer(F)).Feptr, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject, 50292 utf, uintptr(0)) 50293 __2551: 50294 ; 50295 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 50296 goto __2563 50297 } 50298 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 50299 goto __2564 50300 } 50301 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 50302 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 50303 goto __2565 50304 } 50305 return -2 50306 __2565: 50307 ; 50308 __2564: 50309 ; 50310 __2563: 50311 ; 50312 50313 goto __2548 50314 __2548: 50315 i++ 50316 goto __2547 50317 goto __2549 50318 __2549: 50319 ; 50320 50321 // Feptr is now past the end of the maximum run 50322 50323 if !(reptype == REPTYPE_POS) { 50324 goto __2566 50325 } 50326 goto __11 50327 __2566: 50328 ; // No backtracking 50329 50330 // We use <= Lstart_eptr rather than == Lstart_eptr to detect the start 50331 // of the run while backtracking because the use of \C in UTF mode can 50332 // cause BACKCHAR to move back past Lstart_eptr. This is just palliative; 50333 // the use of \C in UTF mode is fraught with danger. 50334 50335 __2567: 50336 50337 if !((*Theapframe)(unsafe.Pointer(F)).Feptr <= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 50338 goto __2570 50339 } 50340 goto __2569 50341 __2570: 50342 ; /* At start of char run */ 50343 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 50344 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM220 50345 goto MATCH_RECURSE 50346 L_RM220: 50347 ; 50348 50349 if !(rrc != DMATCH_NOMATCH) { 50350 goto __2571 50351 } 50352 rrc = rrc 50353 goto RETURN_SWITCH 50354 __2571: 50355 ; 50356 50357 // Backtracking over an extended grapheme cluster involves inspecting 50358 // the previous two characters (if present) to see if a break is 50359 // permitted between them. 50360 50361 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 50362 if !!(utf != 0) { 50363 goto __2572 50364 } 50365 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 50366 goto __2573 50367 __2572: 50368 50369 __2574: 50370 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 50371 goto __2575 50372 } 50373 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 50374 goto __2574 50375 __2575: 50376 ; 50377 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 50378 if !(fc >= 0xc0) { 50379 goto __2576 50380 } 50381 if !(fc&0x20 == Tuint32_t(0)) { 50382 goto __2577 50383 } 50384 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 50385 goto __2578 50386 __2577: 50387 if !(fc&0x10 == Tuint32_t(0)) { 50388 goto __2579 50389 } 50390 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 50391 goto __2580 50392 __2579: 50393 if !(fc&0x08 == Tuint32_t(0)) { 50394 goto __2581 50395 } 50396 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 50397 goto __2582 50398 __2581: 50399 if !(fc&0x04 == Tuint32_t(0)) { 50400 goto __2583 50401 } 50402 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 50403 goto __2584 50404 __2583: 50405 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 50406 __2584: 50407 ; 50408 __2582: 50409 ; 50410 __2580: 50411 ; 50412 __2578: 50413 ; 50414 __2576: 50415 ; 50416 50417 __2573: 50418 ; 50419 rgb = int32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fgbprop) 50420 50421 __2585: 50422 50423 if !((*Theapframe)(unsafe.Pointer(F)).Feptr <= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 50424 goto __2588 50425 } 50426 goto __2587 50427 __2588: 50428 ; // At start of char run 50429 fptr = (*Theapframe)(unsafe.Pointer(F)).Feptr - uintptr(1) 50430 if !!(utf != 0) { 50431 goto __2589 50432 } 50433 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr))) 50434 goto __2590 50435 __2589: 50436 50437 __2591: 50438 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr)))&0xc0 == 0x80) { 50439 goto __2592 50440 } 50441 fptr-- 50442 goto __2591 50443 __2592: 50444 ; 50445 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr))) 50446 if !(fc >= 0xc0) { 50447 goto __2593 50448 } 50449 if !(fc&0x20 == Tuint32_t(0)) { 50450 goto __2594 50451 } 50452 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr + 1)))&0x3f 50453 goto __2595 50454 __2594: 50455 if !(fc&0x10 == Tuint32_t(0)) { 50456 goto __2596 50457 } 50458 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr + 2)))&0x3f 50459 goto __2597 50460 __2596: 50461 if !(fc&0x08 == Tuint32_t(0)) { 50462 goto __2598 50463 } 50464 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr + 3)))&0x3f 50465 goto __2599 50466 __2598: 50467 if !(fc&0x04 == Tuint32_t(0)) { 50468 goto __2600 50469 } 50470 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr + 4)))&0x3f 50471 goto __2601 50472 __2600: 50473 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(fptr + 5)))&0x3f 50474 __2601: 50475 ; 50476 __2599: 50477 ; 50478 __2597: 50479 ; 50480 __2595: 50481 ; 50482 __2593: 50483 ; 50484 50485 __2590: 50486 ; 50487 lgb = int32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fgbprop) 50488 if !(X_pcre2_ucp_gbtable_8[lgb]&(uint32(1)<<rgb) == Tuint32_t(0)) { 50489 goto __2602 50490 } 50491 goto __2587 50492 __2602: 50493 ; 50494 (*Theapframe)(unsafe.Pointer(F)).Feptr = fptr 50495 rgb = lgb 50496 goto __2586 50497 __2586: 50498 goto __2585 50499 goto __2587 50500 __2587: 50501 ; 50502 goto __2568 50503 __2568: 50504 goto __2567 50505 goto __2569 50506 __2569: 50507 ; 50508 goto __2546 50509 __2545: 50510 50511 if !(utf != 0) { 50512 goto __2603 50513 } 50514 50515 switch *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) { 50516 case OP_ANY: 50517 goto __2606 50518 50519 case OP_ALLANY: 50520 goto __2607 50521 50522 // The "byte" (i.e. "code unit") case is the same as non-UTF 50523 50524 case OP_ANYBYTE: 50525 goto __2608 50526 50527 case OP_ANYNL: 50528 goto __2609 50529 50530 case OP_NOT_HSPACE: 50531 goto __2610 50532 case OP_HSPACE: 50533 goto __2611 50534 50535 case OP_NOT_VSPACE: 50536 goto __2612 50537 case OP_VSPACE: 50538 goto __2613 50539 50540 case OP_NOT_DIGIT: 50541 goto __2614 50542 50543 case OP_DIGIT: 50544 goto __2615 50545 50546 case OP_NOT_WHITESPACE: 50547 goto __2616 50548 50549 case OP_WHITESPACE: 50550 goto __2617 50551 50552 case OP_NOT_WORDCHAR: 50553 goto __2618 50554 50555 case OP_WORDCHAR: 50556 goto __2619 50557 50558 default: 50559 goto __2620 50560 } 50561 goto __2605 50562 50563 __2606: 50564 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 50565 __2621: 50566 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 50567 goto __2623 50568 } 50569 50570 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 50571 goto __2624 50572 } 50573 50574 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 50575 goto __2625 50576 } 50577 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 50578 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 50579 goto __2626 50580 } 50581 return -2 50582 __2626: 50583 ; 50584 __2625: 50585 ; 50586 50587 goto __2623 50588 __2624: 50589 ; 50590 if !(func() int32 { 50591 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 50592 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, (*Theapframe)(unsafe.Pointer(F)).Feptr, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+256, utf) != 0) 50593 } 50594 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260))) && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260 + 1))))) 50595 }() != 0) { 50596 goto __2627 50597 } 50598 goto __2623 50599 __2627: 50600 ; 50601 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && (*Theapframe)(unsafe.Pointer(F)).Feptr+uintptr(1) >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_FIXED) && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260)))) { 50602 goto __2628 50603 } 50604 50605 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 50606 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 50607 goto __2629 50608 } 50609 return -2 50610 __2629: 50611 ; 50612 __2628: 50613 ; 50614 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 50615 __2630: 50616 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 50617 goto __2631 50618 } 50619 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 50620 goto __2630 50621 __2631: 50622 ; 50623 goto __2622 50624 __2622: 50625 i++ 50626 goto __2621 50627 goto __2623 50628 __2623: 50629 ; 50630 goto __2605 50631 50632 __2607: 50633 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) < 4294967295) { 50634 goto __2632 50635 } 50636 50637 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 50638 __2634: 50639 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 50640 goto __2636 50641 } 50642 50643 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 50644 goto __2637 50645 } 50646 50647 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 50648 goto __2638 50649 } 50650 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 50651 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 50652 goto __2639 50653 } 50654 return -2 50655 __2639: 50656 ; 50657 __2638: 50658 ; 50659 50660 goto __2636 50661 __2637: 50662 ; 50663 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 50664 __2640: 50665 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 50666 goto __2641 50667 } 50668 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 50669 goto __2640 50670 __2641: 50671 ; 50672 goto __2635 50673 __2635: 50674 i++ 50675 goto __2634 50676 goto __2636 50677 __2636: 50678 ; 50679 goto __2633 50680 __2632: 50681 50682 (*Theapframe)(unsafe.Pointer(F)).Feptr = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject // Unlimited UTF-8 repeat 50683 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 50684 goto __2642 50685 } 50686 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 50687 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 50688 goto __2643 50689 } 50690 return -2 50691 __2643: 50692 ; 50693 __2642: 50694 ; 50695 50696 __2633: 50697 ; 50698 goto __2605 50699 50700 // The "byte" (i.e. "code unit") case is the same as non-UTF 50701 50702 __2608: 50703 fc = *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) - *(*Tuint32_t)(unsafe.Pointer(F + 56)) 50704 if !(fc > Tuint32_t((int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject)-int64((*Theapframe)(unsafe.Pointer(F)).Feptr))/1)) { 50705 goto __2644 50706 } 50707 50708 (*Theapframe)(unsafe.Pointer(F)).Feptr = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject 50709 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 50710 goto __2646 50711 } 50712 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 50713 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 50714 goto __2647 50715 } 50716 return -2 50717 __2647: 50718 ; 50719 __2646: 50720 ; 50721 50722 goto __2645 50723 __2644: 50724 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(fc) 50725 __2645: 50726 ; 50727 goto __2605 50728 50729 __2609: 50730 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 50731 __2648: 50732 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 50733 goto __2650 50734 } 50735 50736 len17 = 1 50737 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 50738 goto __2651 50739 } 50740 50741 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 50742 goto __2652 50743 } 50744 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 50745 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 50746 goto __2653 50747 } 50748 return -2 50749 __2653: 50750 ; 50751 __2652: 50752 ; 50753 50754 goto __2650 50755 __2651: 50756 ; 50757 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 50758 if !(fc >= 0xc0) { 50759 goto __2654 50760 } 50761 if !(fc&0x20 == Tuint32_t(0)) { 50762 goto __2655 50763 } 50764 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 50765 len17++ 50766 goto __2656 50767 __2655: 50768 if !(fc&0x10 == Tuint32_t(0)) { 50769 goto __2657 50770 } 50771 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 50772 len17 = len17 + 2 50773 goto __2658 50774 __2657: 50775 if !(fc&0x08 == Tuint32_t(0)) { 50776 goto __2659 50777 } 50778 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 50779 len17 = len17 + 3 50780 goto __2660 50781 __2659: 50782 if !(fc&0x04 == Tuint32_t(0)) { 50783 goto __2661 50784 } 50785 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 50786 len17 = len17 + 4 50787 goto __2662 50788 __2661: 50789 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 50790 len17 = len17 + 5 50791 __2662: 50792 ; 50793 __2660: 50794 ; 50795 __2658: 50796 ; 50797 __2656: 50798 ; 50799 __2654: 50800 ; 50801 50802 if !(fc == Tuint32_t('\015')) { 50803 goto __2663 50804 } 50805 50806 if !(libc.PreIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1) >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 50807 goto __2665 50808 } 50809 goto __2650 50810 __2665: 50811 ; 50812 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == '\012') { 50813 goto __2666 50814 } 50815 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 50816 __2666: 50817 ; 50818 goto __2664 50819 __2663: 50820 50821 if !(fc != Tuint32_t('\012') && (int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fbsr_convention) == DPCRE2_BSR_ANYCRLF || fc != Tuint32_t('\013') && fc != Tuint32_t('\014') && fc != libc.Uint32FromUint8(libc.Uint8FromInt32(133)) && 50822 fc != Tuint32_t(0x2028) && fc != Tuint32_t(0x2029))) { 50823 goto __2667 50824 } 50825 goto __2650 50826 __2667: 50827 ; 50828 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len17) 50829 __2664: 50830 ; 50831 goto __2649 50832 __2649: 50833 i++ 50834 goto __2648 50835 goto __2650 50836 __2650: 50837 ; 50838 goto __2605 50839 50840 __2610: 50841 __2611: 50842 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 50843 __2668: 50844 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 50845 goto __2670 50846 } 50847 50848 len18 = 1 50849 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 50850 goto __2671 50851 } 50852 50853 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 50854 goto __2672 50855 } 50856 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 50857 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 50858 goto __2673 50859 } 50860 return -2 50861 __2673: 50862 ; 50863 __2672: 50864 ; 50865 50866 goto __2670 50867 __2671: 50868 ; 50869 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 50870 if !(fc >= 0xc0) { 50871 goto __2674 50872 } 50873 if !(fc&0x20 == Tuint32_t(0)) { 50874 goto __2675 50875 } 50876 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 50877 len18++ 50878 goto __2676 50879 __2675: 50880 if !(fc&0x10 == Tuint32_t(0)) { 50881 goto __2677 50882 } 50883 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 50884 len18 = len18 + 2 50885 goto __2678 50886 __2677: 50887 if !(fc&0x08 == Tuint32_t(0)) { 50888 goto __2679 50889 } 50890 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 50891 len18 = len18 + 3 50892 goto __2680 50893 __2679: 50894 if !(fc&0x04 == Tuint32_t(0)) { 50895 goto __2681 50896 } 50897 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 50898 len18 = len18 + 4 50899 goto __2682 50900 __2681: 50901 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 50902 len18 = len18 + 5 50903 __2682: 50904 ; 50905 __2680: 50906 ; 50907 __2678: 50908 ; 50909 __2676: 50910 ; 50911 __2674: 50912 ; 50913 50914 switch fc { 50915 case Tuint32_t('\011'): 50916 goto __2684 50917 case Tuint32_t('\040'): 50918 goto __2685 50919 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 50920 goto __2686 50921 case Tuint32_t(0x1680): 50922 goto __2687 /* OGHAM SPACE MARK */ 50923 case Tuint32_t(0x180e): 50924 goto __2688 /* MONGOLIAN VOWEL SEPARATOR */ 50925 case Tuint32_t(0x2000): 50926 goto __2689 /* EN QUAD */ 50927 case Tuint32_t(0x2001): 50928 goto __2690 /* EM QUAD */ 50929 case Tuint32_t(0x2002): 50930 goto __2691 /* EN SPACE */ 50931 case Tuint32_t(0x2003): 50932 goto __2692 /* EM SPACE */ 50933 case Tuint32_t(0x2004): 50934 goto __2693 /* THREE-PER-EM SPACE */ 50935 case Tuint32_t(0x2005): 50936 goto __2694 /* FOUR-PER-EM SPACE */ 50937 case Tuint32_t(0x2006): 50938 goto __2695 /* SIX-PER-EM SPACE */ 50939 case Tuint32_t(0x2007): 50940 goto __2696 /* FIGURE SPACE */ 50941 case Tuint32_t(0x2008): 50942 goto __2697 /* PUNCTUATION SPACE */ 50943 case Tuint32_t(0x2009): 50944 goto __2698 /* THIN SPACE */ 50945 case Tuint32_t(0x200A): 50946 goto __2699 /* HAIR SPACE */ 50947 case Tuint32_t(0x202f): 50948 goto __2700 /* NARROW NO-BREAK SPACE */ 50949 case Tuint32_t(0x205f): 50950 goto __2701 /* MEDIUM MATHEMATICAL SPACE */ 50951 case Tuint32_t(0x3000): 50952 goto __2702 50953 default: 50954 goto __2703 50955 } 50956 goto __2683 50957 50958 __2684: 50959 __2685: 50960 __2686: 50961 __2687: /* OGHAM SPACE MARK */ 50962 __2688: /* MONGOLIAN VOWEL SEPARATOR */ 50963 __2689: /* EN QUAD */ 50964 __2690: /* EM QUAD */ 50965 __2691: /* EN SPACE */ 50966 __2692: /* EM SPACE */ 50967 __2693: /* THREE-PER-EM SPACE */ 50968 __2694: /* FOUR-PER-EM SPACE */ 50969 __2695: /* SIX-PER-EM SPACE */ 50970 __2696: /* FIGURE SPACE */ 50971 __2697: /* PUNCTUATION SPACE */ 50972 __2698: /* THIN SPACE */ 50973 __2699: /* HAIR SPACE */ 50974 __2700: /* NARROW NO-BREAK SPACE */ 50975 __2701: /* MEDIUM MATHEMATICAL SPACE */ 50976 __2702: 50977 gotspace = DTRUE 50978 goto __2683 50979 __2703: 50980 gotspace = DFALSE 50981 goto __2683 50982 __2683: 50983 ; 50984 if !(gotspace == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOT_HSPACE)) { 50985 goto __2704 50986 } 50987 goto __2670 50988 __2704: 50989 ; 50990 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len18) 50991 goto __2669 50992 __2669: 50993 i++ 50994 goto __2668 50995 goto __2670 50996 __2670: 50997 ; 50998 goto __2605 50999 51000 __2612: 51001 __2613: 51002 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 51003 __2705: 51004 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 51005 goto __2707 51006 } 51007 51008 len19 = 1 51009 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51010 goto __2708 51011 } 51012 51013 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 51014 goto __2709 51015 } 51016 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51017 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51018 goto __2710 51019 } 51020 return -2 51021 __2710: 51022 ; 51023 __2709: 51024 ; 51025 51026 goto __2707 51027 __2708: 51028 ; 51029 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 51030 if !(fc >= 0xc0) { 51031 goto __2711 51032 } 51033 if !(fc&0x20 == Tuint32_t(0)) { 51034 goto __2712 51035 } 51036 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 51037 len19++ 51038 goto __2713 51039 __2712: 51040 if !(fc&0x10 == Tuint32_t(0)) { 51041 goto __2714 51042 } 51043 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 51044 len19 = len19 + 2 51045 goto __2715 51046 __2714: 51047 if !(fc&0x08 == Tuint32_t(0)) { 51048 goto __2716 51049 } 51050 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 51051 len19 = len19 + 3 51052 goto __2717 51053 __2716: 51054 if !(fc&0x04 == Tuint32_t(0)) { 51055 goto __2718 51056 } 51057 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 51058 len19 = len19 + 4 51059 goto __2719 51060 __2718: 51061 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 51062 len19 = len19 + 5 51063 __2719: 51064 ; 51065 __2717: 51066 ; 51067 __2715: 51068 ; 51069 __2713: 51070 ; 51071 __2711: 51072 ; 51073 51074 switch fc { 51075 case Tuint32_t('\012'): 51076 goto __2721 51077 case Tuint32_t('\013'): 51078 goto __2722 51079 case Tuint32_t('\014'): 51080 goto __2723 51081 case Tuint32_t('\015'): 51082 goto __2724 51083 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 51084 goto __2725 51085 case Tuint32_t(0x2028): 51086 goto __2726 /* LINE SEPARATOR */ 51087 case Tuint32_t(0x2029): 51088 goto __2727 51089 default: 51090 goto __2728 51091 } 51092 goto __2720 51093 51094 __2721: 51095 __2722: 51096 __2723: 51097 __2724: 51098 __2725: 51099 __2726: /* LINE SEPARATOR */ 51100 __2727: 51101 gotspace1 = DTRUE 51102 goto __2720 51103 __2728: 51104 gotspace1 = DFALSE 51105 goto __2720 51106 __2720: 51107 ; 51108 if !(gotspace1 == libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_NOT_VSPACE)) { 51109 goto __2729 51110 } 51111 goto __2707 51112 __2729: 51113 ; 51114 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len19) 51115 goto __2706 51116 __2706: 51117 i++ 51118 goto __2705 51119 goto __2707 51120 __2707: 51121 ; 51122 goto __2605 51123 51124 __2614: 51125 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 51126 __2730: 51127 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 51128 goto __2732 51129 } 51130 51131 len20 = 1 51132 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51133 goto __2733 51134 } 51135 51136 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 51137 goto __2734 51138 } 51139 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51140 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51141 goto __2735 51142 } 51143 return -2 51144 __2735: 51145 ; 51146 __2734: 51147 ; 51148 51149 goto __2732 51150 __2733: 51151 ; 51152 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 51153 if !(fc >= 0xc0) { 51154 goto __2736 51155 } 51156 if !(fc&0x20 == Tuint32_t(0)) { 51157 goto __2737 51158 } 51159 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 51160 len20++ 51161 goto __2738 51162 __2737: 51163 if !(fc&0x10 == Tuint32_t(0)) { 51164 goto __2739 51165 } 51166 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 51167 len20 = len20 + 2 51168 goto __2740 51169 __2739: 51170 if !(fc&0x08 == Tuint32_t(0)) { 51171 goto __2741 51172 } 51173 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 51174 len20 = len20 + 3 51175 goto __2742 51176 __2741: 51177 if !(fc&0x04 == Tuint32_t(0)) { 51178 goto __2743 51179 } 51180 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 51181 len20 = len20 + 4 51182 goto __2744 51183 __2743: 51184 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 51185 len20 = len20 + 5 51186 __2744: 51187 ; 51188 __2742: 51189 ; 51190 __2740: 51191 ; 51192 __2738: 51193 ; 51194 __2736: 51195 ; 51196 51197 if !(fc < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_digit != 0) { 51198 goto __2745 51199 } 51200 goto __2732 51201 __2745: 51202 ; 51203 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len20) 51204 goto __2731 51205 __2731: 51206 i++ 51207 goto __2730 51208 goto __2732 51209 __2732: 51210 ; 51211 goto __2605 51212 51213 __2615: 51214 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 51215 __2746: 51216 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 51217 goto __2748 51218 } 51219 51220 len21 = 1 51221 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51222 goto __2749 51223 } 51224 51225 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 51226 goto __2750 51227 } 51228 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51229 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51230 goto __2751 51231 } 51232 return -2 51233 __2751: 51234 ; 51235 __2750: 51236 ; 51237 51238 goto __2748 51239 __2749: 51240 ; 51241 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 51242 if !(fc >= 0xc0) { 51243 goto __2752 51244 } 51245 if !(fc&0x20 == Tuint32_t(0)) { 51246 goto __2753 51247 } 51248 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 51249 len21++ 51250 goto __2754 51251 __2753: 51252 if !(fc&0x10 == Tuint32_t(0)) { 51253 goto __2755 51254 } 51255 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 51256 len21 = len21 + 2 51257 goto __2756 51258 __2755: 51259 if !(fc&0x08 == Tuint32_t(0)) { 51260 goto __2757 51261 } 51262 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 51263 len21 = len21 + 3 51264 goto __2758 51265 __2757: 51266 if !(fc&0x04 == Tuint32_t(0)) { 51267 goto __2759 51268 } 51269 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 51270 len21 = len21 + 4 51271 goto __2760 51272 __2759: 51273 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 51274 len21 = len21 + 5 51275 __2760: 51276 ; 51277 __2758: 51278 ; 51279 __2756: 51280 ; 51281 __2754: 51282 ; 51283 __2752: 51284 ; 51285 51286 if !(fc >= Tuint32_t(256) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_digit == 0) { 51287 goto __2761 51288 } 51289 goto __2748 51290 __2761: 51291 ; 51292 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len21) 51293 goto __2747 51294 __2747: 51295 i++ 51296 goto __2746 51297 goto __2748 51298 __2748: 51299 ; 51300 goto __2605 51301 51302 __2616: 51303 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 51304 __2762: 51305 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 51306 goto __2764 51307 } 51308 51309 len22 = 1 51310 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51311 goto __2765 51312 } 51313 51314 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 51315 goto __2766 51316 } 51317 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51318 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51319 goto __2767 51320 } 51321 return -2 51322 __2767: 51323 ; 51324 __2766: 51325 ; 51326 51327 goto __2764 51328 __2765: 51329 ; 51330 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 51331 if !(fc >= 0xc0) { 51332 goto __2768 51333 } 51334 if !(fc&0x20 == Tuint32_t(0)) { 51335 goto __2769 51336 } 51337 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 51338 len22++ 51339 goto __2770 51340 __2769: 51341 if !(fc&0x10 == Tuint32_t(0)) { 51342 goto __2771 51343 } 51344 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 51345 len22 = len22 + 2 51346 goto __2772 51347 __2771: 51348 if !(fc&0x08 == Tuint32_t(0)) { 51349 goto __2773 51350 } 51351 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 51352 len22 = len22 + 3 51353 goto __2774 51354 __2773: 51355 if !(fc&0x04 == Tuint32_t(0)) { 51356 goto __2775 51357 } 51358 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 51359 len22 = len22 + 4 51360 goto __2776 51361 __2775: 51362 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 51363 len22 = len22 + 5 51364 __2776: 51365 ; 51366 __2774: 51367 ; 51368 __2772: 51369 ; 51370 __2770: 51371 ; 51372 __2768: 51373 ; 51374 51375 if !(fc < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_space != 0) { 51376 goto __2777 51377 } 51378 goto __2764 51379 __2777: 51380 ; 51381 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len22) 51382 goto __2763 51383 __2763: 51384 i++ 51385 goto __2762 51386 goto __2764 51387 __2764: 51388 ; 51389 goto __2605 51390 51391 __2617: 51392 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 51393 __2778: 51394 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 51395 goto __2780 51396 } 51397 51398 len23 = 1 51399 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51400 goto __2781 51401 } 51402 51403 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 51404 goto __2782 51405 } 51406 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51407 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51408 goto __2783 51409 } 51410 return -2 51411 __2783: 51412 ; 51413 __2782: 51414 ; 51415 51416 goto __2780 51417 __2781: 51418 ; 51419 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 51420 if !(fc >= 0xc0) { 51421 goto __2784 51422 } 51423 if !(fc&0x20 == Tuint32_t(0)) { 51424 goto __2785 51425 } 51426 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 51427 len23++ 51428 goto __2786 51429 __2785: 51430 if !(fc&0x10 == Tuint32_t(0)) { 51431 goto __2787 51432 } 51433 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 51434 len23 = len23 + 2 51435 goto __2788 51436 __2787: 51437 if !(fc&0x08 == Tuint32_t(0)) { 51438 goto __2789 51439 } 51440 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 51441 len23 = len23 + 3 51442 goto __2790 51443 __2789: 51444 if !(fc&0x04 == Tuint32_t(0)) { 51445 goto __2791 51446 } 51447 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 51448 len23 = len23 + 4 51449 goto __2792 51450 __2791: 51451 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 51452 len23 = len23 + 5 51453 __2792: 51454 ; 51455 __2790: 51456 ; 51457 __2788: 51458 ; 51459 __2786: 51460 ; 51461 __2784: 51462 ; 51463 51464 if !(fc >= Tuint32_t(256) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_space == 0) { 51465 goto __2793 51466 } 51467 goto __2780 51468 __2793: 51469 ; 51470 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len23) 51471 goto __2779 51472 __2779: 51473 i++ 51474 goto __2778 51475 goto __2780 51476 __2780: 51477 ; 51478 goto __2605 51479 51480 __2618: 51481 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 51482 __2794: 51483 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 51484 goto __2796 51485 } 51486 51487 len24 = 1 51488 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51489 goto __2797 51490 } 51491 51492 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 51493 goto __2798 51494 } 51495 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51496 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51497 goto __2799 51498 } 51499 return -2 51500 __2799: 51501 ; 51502 __2798: 51503 ; 51504 51505 goto __2796 51506 __2797: 51507 ; 51508 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 51509 if !(fc >= 0xc0) { 51510 goto __2800 51511 } 51512 if !(fc&0x20 == Tuint32_t(0)) { 51513 goto __2801 51514 } 51515 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 51516 len24++ 51517 goto __2802 51518 __2801: 51519 if !(fc&0x10 == Tuint32_t(0)) { 51520 goto __2803 51521 } 51522 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 51523 len24 = len24 + 2 51524 goto __2804 51525 __2803: 51526 if !(fc&0x08 == Tuint32_t(0)) { 51527 goto __2805 51528 } 51529 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 51530 len24 = len24 + 3 51531 goto __2806 51532 __2805: 51533 if !(fc&0x04 == Tuint32_t(0)) { 51534 goto __2807 51535 } 51536 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 51537 len24 = len24 + 4 51538 goto __2808 51539 __2807: 51540 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 51541 len24 = len24 + 5 51542 __2808: 51543 ; 51544 __2806: 51545 ; 51546 __2804: 51547 ; 51548 __2802: 51549 ; 51550 __2800: 51551 ; 51552 51553 if !(fc < Tuint32_t(256) && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_word != 0) { 51554 goto __2809 51555 } 51556 goto __2796 51557 __2809: 51558 ; 51559 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len24) 51560 goto __2795 51561 __2795: 51562 i++ 51563 goto __2794 51564 goto __2796 51565 __2796: 51566 ; 51567 goto __2605 51568 51569 __2619: 51570 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 51571 __2810: 51572 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 51573 goto __2812 51574 } 51575 51576 len25 = 1 51577 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51578 goto __2813 51579 } 51580 51581 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 51582 goto __2814 51583 } 51584 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51585 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51586 goto __2815 51587 } 51588 return -2 51589 __2815: 51590 ; 51591 __2814: 51592 ; 51593 51594 goto __2812 51595 __2813: 51596 ; 51597 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 51598 if !(fc >= 0xc0) { 51599 goto __2816 51600 } 51601 if !(fc&0x20 == Tuint32_t(0)) { 51602 goto __2817 51603 } 51604 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 51605 len25++ 51606 goto __2818 51607 __2817: 51608 if !(fc&0x10 == Tuint32_t(0)) { 51609 goto __2819 51610 } 51611 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 51612 len25 = len25 + 2 51613 goto __2820 51614 __2819: 51615 if !(fc&0x08 == Tuint32_t(0)) { 51616 goto __2821 51617 } 51618 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 51619 len25 = len25 + 3 51620 goto __2822 51621 __2821: 51622 if !(fc&0x04 == Tuint32_t(0)) { 51623 goto __2823 51624 } 51625 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 51626 len25 = len25 + 4 51627 goto __2824 51628 __2823: 51629 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 51630 len25 = len25 + 5 51631 __2824: 51632 ; 51633 __2822: 51634 ; 51635 __2820: 51636 ; 51637 __2818: 51638 ; 51639 __2816: 51640 ; 51641 51642 if !(fc >= Tuint32_t(256) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_word == 0) { 51643 goto __2825 51644 } 51645 goto __2812 51646 __2825: 51647 ; 51648 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(len25) 51649 goto __2811 51650 __2811: 51651 i++ 51652 goto __2810 51653 goto __2812 51654 __2812: 51655 ; 51656 goto __2605 51657 51658 __2620: 51659 return -44 51660 __2605: 51661 ; 51662 51663 if !(reptype == REPTYPE_POS) { 51664 goto __2826 51665 } 51666 goto __11 51667 __2826: 51668 ; // No backtracking 51669 51670 // After \C in UTF mode, Lstart_eptr might be in the middle of a 51671 // Unicode character. Use <= Lstart_eptr to ensure backtracking doesn't go 51672 // too far. 51673 51674 __2827: 51675 51676 if !((*Theapframe)(unsafe.Pointer(F)).Feptr <= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 51677 goto __2830 51678 } 51679 goto __2829 51680 __2830: 51681 ; 51682 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 51683 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM221 51684 goto MATCH_RECURSE 51685 L_RM221: 51686 ; 51687 51688 if !(rrc != DMATCH_NOMATCH) { 51689 goto __2831 51690 } 51691 rrc = rrc 51692 goto RETURN_SWITCH 51693 __2831: 51694 ; 51695 51696 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 51697 __2832: 51698 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 51699 goto __2833 51700 } 51701 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 51702 goto __2832 51703 __2833: 51704 ; 51705 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_ANYNL && (*Theapframe)(unsafe.Pointer(F)).Feptr > *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == '\012' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr - uintptr(1)))) == '\015') { 51706 goto __2834 51707 } 51708 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 51709 __2834: 51710 ; 51711 goto __2828 51712 __2828: 51713 goto __2827 51714 goto __2829 51715 __2829: 51716 ; 51717 goto __2604 51718 __2603: 51719 51720 /* Not UTF mode */ 51721 51722 switch *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) { 51723 case OP_ANY: 51724 goto __2836 51725 51726 case OP_ALLANY: 51727 goto __2837 51728 case OP_ANYBYTE: 51729 goto __2838 51730 51731 case OP_ANYNL: 51732 goto __2839 51733 51734 case OP_NOT_HSPACE: 51735 goto __2840 51736 51737 case OP_HSPACE: 51738 goto __2841 51739 51740 case OP_NOT_VSPACE: 51741 goto __2842 51742 51743 case OP_VSPACE: 51744 goto __2843 51745 51746 case OP_NOT_DIGIT: 51747 goto __2844 51748 51749 case OP_DIGIT: 51750 goto __2845 51751 51752 case OP_NOT_WHITESPACE: 51753 goto __2846 51754 51755 case OP_WHITESPACE: 51756 goto __2847 51757 51758 case OP_NOT_WORDCHAR: 51759 goto __2848 51760 51761 case OP_WORDCHAR: 51762 goto __2849 51763 51764 default: 51765 goto __2850 51766 } 51767 goto __2835 51768 51769 __2836: 51770 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 51771 __2851: 51772 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 51773 goto __2853 51774 } 51775 51776 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51777 goto __2854 51778 } 51779 51780 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 51781 goto __2855 51782 } 51783 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51784 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51785 goto __2856 51786 } 51787 return -2 51788 __2856: 51789 ; 51790 __2855: 51791 ; 51792 51793 goto __2853 51794 __2854: 51795 ; 51796 if !(func() int32 { 51797 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 51798 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, (*Theapframe)(unsafe.Pointer(F)).Feptr, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+256, utf) != 0) 51799 } 51800 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260))) && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260 + 1))))) 51801 }() != 0) { 51802 goto __2857 51803 } 51804 goto __2853 51805 __2857: 51806 ; 51807 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && (*Theapframe)(unsafe.Pointer(F)).Feptr+uintptr(1) >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_FIXED) && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260)))) { 51808 goto __2858 51809 } 51810 51811 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51812 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51813 goto __2859 51814 } 51815 return -2 51816 __2859: 51817 ; 51818 __2858: 51819 ; 51820 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 51821 goto __2852 51822 __2852: 51823 i++ 51824 goto __2851 51825 goto __2853 51826 __2853: 51827 ; 51828 goto __2835 51829 51830 __2837: 51831 __2838: 51832 fc = *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) - *(*Tuint32_t)(unsafe.Pointer(F + 56)) 51833 if !(fc > Tuint32_t((int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject)-int64((*Theapframe)(unsafe.Pointer(F)).Feptr))/1)) { 51834 goto __2860 51835 } 51836 51837 (*Theapframe)(unsafe.Pointer(F)).Feptr = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject 51838 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 51839 goto __2862 51840 } 51841 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51842 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51843 goto __2863 51844 } 51845 return -2 51846 __2863: 51847 ; 51848 __2862: 51849 ; 51850 51851 goto __2861 51852 __2860: 51853 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(fc) 51854 __2861: 51855 ; 51856 goto __2835 51857 51858 __2839: 51859 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 51860 __2864: 51861 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 51862 goto __2866 51863 } 51864 51865 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51866 goto __2867 51867 } 51868 51869 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 51870 goto __2868 51871 } 51872 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51873 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51874 goto __2869 51875 } 51876 return -2 51877 __2869: 51878 ; 51879 __2868: 51880 ; 51881 51882 goto __2866 51883 __2867: 51884 ; 51885 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 51886 if !(fc == Tuint32_t('\015')) { 51887 goto __2870 51888 } 51889 51890 if !(libc.PreIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Feptr, 1) >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51891 goto __2872 51892 } 51893 goto __2866 51894 __2872: 51895 ; 51896 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == '\012') { 51897 goto __2873 51898 } 51899 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 51900 __2873: 51901 ; 51902 goto __2871 51903 __2870: 51904 51905 if !(fc != Tuint32_t('\012') && (int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fbsr_convention) == DPCRE2_BSR_ANYCRLF || fc != Tuint32_t('\013') && fc != Tuint32_t('\014') && fc != libc.Uint32FromUint8(libc.Uint8FromInt32(133)))) { 51906 goto __2874 51907 } 51908 goto __2866 51909 __2874: 51910 ; 51911 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 51912 __2871: 51913 ; 51914 goto __2865 51915 __2865: 51916 i++ 51917 goto __2864 51918 goto __2866 51919 __2866: 51920 ; 51921 goto __2835 51922 51923 __2840: 51924 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 51925 __2875: 51926 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 51927 goto __2877 51928 } 51929 51930 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51931 goto __2878 51932 } 51933 51934 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 51935 goto __2879 51936 } 51937 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51938 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51939 goto __2880 51940 } 51941 return -2 51942 __2880: 51943 ; 51944 __2879: 51945 ; 51946 51947 goto __2877 51948 __2878: 51949 ; 51950 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) { 51951 default: 51952 goto __2882 51953 case '\011': 51954 goto __2883 51955 case '\040': 51956 goto __2884 51957 case int32(libc.Uint8FromInt32(160)): 51958 goto __2885 51959 } 51960 goto __2881 51961 51962 __2882: 51963 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 51964 goto __2881 51965 __2883: 51966 __2884: 51967 __2885: 51968 goto ENDLOOP00 51969 __2881: 51970 ; 51971 goto __2876 51972 __2876: 51973 i++ 51974 goto __2875 51975 goto __2877 51976 __2877: 51977 ; 51978 ENDLOOP00: 51979 goto __2835 51980 51981 __2841: 51982 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 51983 __2886: 51984 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 51985 goto __2888 51986 } 51987 51988 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 51989 goto __2889 51990 } 51991 51992 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 51993 goto __2890 51994 } 51995 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 51996 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 51997 goto __2891 51998 } 51999 return -2 52000 __2891: 52001 ; 52002 __2890: 52003 ; 52004 52005 goto __2888 52006 __2889: 52007 ; 52008 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) { 52009 default: 52010 goto __2893 52011 case '\011': 52012 goto __2894 52013 case '\040': 52014 goto __2895 52015 case int32(libc.Uint8FromInt32(160)): 52016 goto __2896 52017 } 52018 goto __2892 52019 52020 __2893: 52021 goto ENDLOOP01 52022 __2894: 52023 __2895: 52024 __2896: 52025 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 52026 goto __2892 52027 __2892: 52028 ; 52029 goto __2887 52030 __2887: 52031 i++ 52032 goto __2886 52033 goto __2888 52034 __2888: 52035 ; 52036 ENDLOOP01: 52037 goto __2835 52038 52039 __2842: 52040 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 52041 __2897: 52042 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 52043 goto __2899 52044 } 52045 52046 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 52047 goto __2900 52048 } 52049 52050 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 52051 goto __2901 52052 } 52053 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52054 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52055 goto __2902 52056 } 52057 return -2 52058 __2902: 52059 ; 52060 __2901: 52061 ; 52062 52063 goto __2899 52064 __2900: 52065 ; 52066 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) { 52067 default: 52068 goto __2904 52069 case '\012': 52070 goto __2905 52071 case '\013': 52072 goto __2906 52073 case '\014': 52074 goto __2907 52075 case '\015': 52076 goto __2908 52077 case int32(libc.Uint8FromInt32(133)): 52078 goto __2909 52079 } 52080 goto __2903 52081 52082 __2904: 52083 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 52084 goto __2903 52085 __2905: 52086 __2906: 52087 __2907: 52088 __2908: 52089 __2909: 52090 goto ENDLOOP02 52091 __2903: 52092 ; 52093 goto __2898 52094 __2898: 52095 i++ 52096 goto __2897 52097 goto __2899 52098 __2899: 52099 ; 52100 ENDLOOP02: 52101 goto __2835 52102 52103 __2843: 52104 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 52105 __2910: 52106 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 52107 goto __2912 52108 } 52109 52110 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 52111 goto __2913 52112 } 52113 52114 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 52115 goto __2914 52116 } 52117 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52118 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52119 goto __2915 52120 } 52121 return -2 52122 __2915: 52123 ; 52124 __2914: 52125 ; 52126 52127 goto __2912 52128 __2913: 52129 ; 52130 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) { 52131 default: 52132 goto __2917 52133 case '\012': 52134 goto __2918 52135 case '\013': 52136 goto __2919 52137 case '\014': 52138 goto __2920 52139 case '\015': 52140 goto __2921 52141 case int32(libc.Uint8FromInt32(133)): 52142 goto __2922 52143 } 52144 goto __2916 52145 52146 __2917: 52147 goto ENDLOOP03 52148 __2918: 52149 __2919: 52150 __2920: 52151 __2921: 52152 __2922: 52153 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 52154 goto __2916 52155 __2916: 52156 ; 52157 goto __2911 52158 __2911: 52159 i++ 52160 goto __2910 52161 goto __2912 52162 __2912: 52163 ; 52164 ENDLOOP03: 52165 goto __2835 52166 52167 __2844: 52168 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 52169 __2923: 52170 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 52171 goto __2925 52172 } 52173 52174 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 52175 goto __2926 52176 } 52177 52178 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 52179 goto __2927 52180 } 52181 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52182 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52183 goto __2928 52184 } 52185 return -2 52186 __2928: 52187 ; 52188 __2927: 52189 ; 52190 52191 goto __2925 52192 __2926: 52193 ; 52194 if !(1 != 0 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))))))&Dctype_digit != 0) { 52195 goto __2929 52196 } 52197 goto __2925 52198 __2929: 52199 ; 52200 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 52201 goto __2924 52202 __2924: 52203 i++ 52204 goto __2923 52205 goto __2925 52206 __2925: 52207 ; 52208 goto __2835 52209 52210 __2845: 52211 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 52212 __2930: 52213 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 52214 goto __2932 52215 } 52216 52217 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 52218 goto __2933 52219 } 52220 52221 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 52222 goto __2934 52223 } 52224 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52225 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52226 goto __2935 52227 } 52228 return -2 52229 __2935: 52230 ; 52231 __2934: 52232 ; 52233 52234 goto __2932 52235 __2933: 52236 ; 52237 if !(!(1 != 0) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))))))&Dctype_digit == 0) { 52238 goto __2936 52239 } 52240 goto __2932 52241 __2936: 52242 ; 52243 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 52244 goto __2931 52245 __2931: 52246 i++ 52247 goto __2930 52248 goto __2932 52249 __2932: 52250 ; 52251 goto __2835 52252 52253 __2846: 52254 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 52255 __2937: 52256 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 52257 goto __2939 52258 } 52259 52260 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 52261 goto __2940 52262 } 52263 52264 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 52265 goto __2941 52266 } 52267 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52268 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52269 goto __2942 52270 } 52271 return -2 52272 __2942: 52273 ; 52274 __2941: 52275 ; 52276 52277 goto __2939 52278 __2940: 52279 ; 52280 if !(1 != 0 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))))))&Dctype_space != 0) { 52281 goto __2943 52282 } 52283 goto __2939 52284 __2943: 52285 ; 52286 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 52287 goto __2938 52288 __2938: 52289 i++ 52290 goto __2937 52291 goto __2939 52292 __2939: 52293 ; 52294 goto __2835 52295 52296 __2847: 52297 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 52298 __2944: 52299 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 52300 goto __2946 52301 } 52302 52303 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 52304 goto __2947 52305 } 52306 52307 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 52308 goto __2948 52309 } 52310 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52311 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52312 goto __2949 52313 } 52314 return -2 52315 __2949: 52316 ; 52317 __2948: 52318 ; 52319 52320 goto __2946 52321 __2947: 52322 ; 52323 if !(!(1 != 0) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))))))&Dctype_space == 0) { 52324 goto __2950 52325 } 52326 goto __2946 52327 __2950: 52328 ; 52329 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 52330 goto __2945 52331 __2945: 52332 i++ 52333 goto __2944 52334 goto __2946 52335 __2946: 52336 ; 52337 goto __2835 52338 52339 __2848: 52340 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 52341 __2951: 52342 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 52343 goto __2953 52344 } 52345 52346 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 52347 goto __2954 52348 } 52349 52350 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 52351 goto __2955 52352 } 52353 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52354 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52355 goto __2956 52356 } 52357 return -2 52358 __2956: 52359 ; 52360 __2955: 52361 ; 52362 52363 goto __2953 52364 __2954: 52365 ; 52366 if !(1 != 0 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))))))&Dctype_word != 0) { 52367 goto __2957 52368 } 52369 goto __2953 52370 __2957: 52371 ; 52372 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 52373 goto __2952 52374 __2952: 52375 i++ 52376 goto __2951 52377 goto __2953 52378 __2953: 52379 ; 52380 goto __2835 52381 52382 __2849: 52383 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 52384 __2958: 52385 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 52386 goto __2960 52387 } 52388 52389 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 52390 goto __2961 52391 } 52392 52393 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 52394 goto __2962 52395 } 52396 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52397 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52398 goto __2963 52399 } 52400 return -2 52401 __2963: 52402 ; 52403 __2962: 52404 ; 52405 52406 goto __2960 52407 __2961: 52408 ; 52409 if !(!(1 != 0) || int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))))))&Dctype_word == 0) { 52410 goto __2964 52411 } 52412 goto __2960 52413 __2964: 52414 ; 52415 (*Theapframe)(unsafe.Pointer(F)).Feptr++ 52416 goto __2959 52417 __2959: 52418 i++ 52419 goto __2958 52420 goto __2960 52421 __2960: 52422 ; 52423 goto __2835 52424 52425 __2850: 52426 return -44 52427 __2835: 52428 ; 52429 52430 if !(reptype == REPTYPE_POS) { 52431 goto __2965 52432 } 52433 goto __11 52434 __2965: 52435 ; // No backtracking 52436 52437 __2966: 52438 52439 if !((*Theapframe)(unsafe.Pointer(F)).Feptr == *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 52440 goto __2969 52441 } 52442 goto __2968 52443 __2969: 52444 ; 52445 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 52446 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM34 52447 goto MATCH_RECURSE 52448 L_RM34: 52449 ; 52450 52451 if !(rrc != DMATCH_NOMATCH) { 52452 goto __2970 52453 } 52454 rrc = rrc 52455 goto RETURN_SWITCH 52456 __2970: 52457 ; 52458 52459 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 52460 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) == OP_ANYNL && (*Theapframe)(unsafe.Pointer(F)).Feptr > *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == '\012' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + libc.UintptrFromInt32(-1)))) == '\015') { 52461 goto __2971 52462 } 52463 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 52464 __2971: 52465 ; 52466 goto __2967 52467 __2967: 52468 goto __2966 52469 goto __2968 52470 __2968: 52471 ; 52472 __2604: 52473 ; 52474 __2546: 52475 ; 52476 __2274: 52477 ; 52478 __1781: 52479 ; 52480 goto __13 // End of repeat character type processing 52481 52482 // ===================================================================== 52483 // Match a back reference, possibly repeatedly. Look past the end of the 52484 // item to see if there is repeat information following. The OP_REF and 52485 // OP_REFI opcodes are used for a reference to a numbered group or to a 52486 // non-duplicated named group. For a duplicated named group, OP_DNREF and 52487 // OP_DNREFI are used. In this case we must scan the list of groups to which 52488 // the name refers, and use the first one that is set. 52489 52490 __107: 52491 __108: 52492 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) = Tuint32_t(libc.Bool32(int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_DNREFI)) 52493 52494 count = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 4))))) 52495 slot = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fname_table + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))*uint32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fname_entry_size)) 52496 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + 2*DIMM2_SIZE) 52497 52498 __2972: 52499 if !(libc.PostDecInt32(&count, 1) > 0) { 52500 goto __2973 52501 } 52502 52503 (*Theapframe)(unsafe.Pointer(F)).Ftemp_size = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot + 1))))<<1 - uint32(2)) 52504 if !((*Theapframe)(unsafe.Pointer(F)).Ftemp_size < (*Theapframe)(unsafe.Pointer(F)).Foffset_top && *(*Tsize_t)(unsafe.Pointer(F + 128 + uintptr((*Theapframe)(unsafe.Pointer(F)).Ftemp_size)*8)) != libc.CplUint64(uint64(0))) { 52505 goto __2974 52506 } 52507 goto __2973 52508 __2974: 52509 ; 52510 slot += TPCRE2_SPTR8((*Tmatch_block_8)(unsafe.Pointer(mb)).Fname_entry_size) 52511 goto __2972 52512 __2973: 52513 ; 52514 52515 goto REF_REPEAT 52516 52517 __109: 52518 __110: 52519 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) = Tuint32_t(libc.Bool32(int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_REFI)) 52520 (*Theapframe)(unsafe.Pointer(F)).Ftemp_size = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))<<1 - uint32(2)) 52521 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DIMM2_SIZE) 52522 52523 // Set up for repetition, or handle the non-repeated case. The maximum and 52524 // minimum must be in the heap frame, but as they are short-term values, we 52525 // use temporary fields. 52526 52527 REF_REPEAT: 52528 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) { 52529 case OP_CRSTAR: 52530 goto __2976 52531 case OP_CRMINSTAR: 52532 goto __2977 52533 case OP_CRPLUS: 52534 goto __2978 52535 case OP_CRMINPLUS: 52536 goto __2979 52537 case OP_CRQUERY: 52538 goto __2980 52539 case OP_CRMINQUERY: 52540 goto __2981 52541 52542 case OP_CRRANGE: 52543 goto __2982 52544 case OP_CRMINRANGE: 52545 goto __2983 52546 52547 default: 52548 goto __2984 52549 } 52550 goto __2975 52551 52552 __2976: 52553 __2977: 52554 __2978: 52555 __2979: 52556 __2980: 52557 __2981: 52558 fc = Tuint32_t(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) - OP_CRSTAR) 52559 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = rep_min[fc] 52560 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = rep_max[fc] 52561 reptype = rep_typ[fc] 52562 goto __2975 52563 52564 __2982: 52565 __2983: 52566 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))) 52567 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 4)))) 52568 reptype = rep_typ[int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode)))-OP_CRSTAR] 52569 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) == Tuint32_t(0)) { 52570 goto __2985 52571 } 52572 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = 4294967295 52573 __2985: 52574 ; // Max 0 => infinity 52575 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + 2*DIMM2_SIZE) 52576 goto __2975 52577 52578 __2984: /* No repeat follows */ 52579 52580 rrc = match_ref(tls, (*Theapframe)(unsafe.Pointer(F)).Ftemp_size, int32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4))), F, mb, bp) 52581 if !(rrc != 0) { 52582 goto __2986 52583 } 52584 52585 if !(rrc > 0) { 52586 goto __2987 52587 } 52588 (*Theapframe)(unsafe.Pointer(F)).Feptr = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject 52589 __2987: 52590 ; // Partial match 52591 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 52592 goto __2988 52593 } 52594 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 52595 goto __2989 52596 } 52597 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52598 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52599 goto __2990 52600 } 52601 return -2 52602 __2990: 52603 ; 52604 __2989: 52605 ; 52606 __2988: 52607 ; 52608 52609 rrc = DMATCH_NOMATCH 52610 goto RETURN_SWITCH 52611 52612 __2986: 52613 ; 52614 52615 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(*(*Tsize_t)(unsafe.Pointer(bp))) 52616 goto __11 // With the main loop 52617 __2975: 52618 ; 52619 52620 // Handle repeated back references. If a set group has length zero, just 52621 // continue with the main loop, because it matches however many times. For an 52622 // unset reference, if the minimum is zero, we can also just continue. We can 52623 // also continue if PCRE2_MATCH_UNSET_BACKREF is set, because this makes unset 52624 // group behave as a zero-length group. For any other unset cases, carrying 52625 // on will result in NOMATCH. 52626 52627 if !((*Theapframe)(unsafe.Pointer(F)).Ftemp_size < (*Theapframe)(unsafe.Pointer(F)).Foffset_top && *(*Tsize_t)(unsafe.Pointer(F + 128 + uintptr((*Theapframe)(unsafe.Pointer(F)).Ftemp_size)*8)) != libc.CplUint64(uint64(0))) { 52628 goto __2991 52629 } 52630 52631 if !(*(*Tsize_t)(unsafe.Pointer(F + 128 + uintptr((*Theapframe)(unsafe.Pointer(F)).Ftemp_size)*8)) == *(*Tsize_t)(unsafe.Pointer(F + 128 + uintptr((*Theapframe)(unsafe.Pointer(F)).Ftemp_size+uint64(1))*8))) { 52632 goto __2993 52633 } 52634 goto __11 52635 __2993: 52636 ; 52637 goto __2992 52638 __2991: /* Group is not set */ 52639 52640 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56)) == Tuint32_t(0) || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_MATCH_UNSET_BACKREF != Tuint32_t(0)) { 52641 goto __2994 52642 } 52643 goto __11 52644 __2994: 52645 ; 52646 __2992: 52647 ; 52648 52649 // First, ensure the minimum number of matches are present. 52650 52651 i = Tuint32_t(1) 52652 __2995: 52653 if !(i <= *(*Tuint32_t)(unsafe.Pointer(F + 56))) { 52654 goto __2997 52655 } 52656 52657 rrc = match_ref(tls, (*Theapframe)(unsafe.Pointer(F)).Ftemp_size, int32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4))), F, mb, bp+8) 52658 if !(rrc != 0) { 52659 goto __2998 52660 } 52661 52662 if !(rrc > 0) { 52663 goto __2999 52664 } 52665 (*Theapframe)(unsafe.Pointer(F)).Feptr = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject 52666 __2999: 52667 ; // Partial match 52668 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 52669 goto __3000 52670 } 52671 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 52672 goto __3001 52673 } 52674 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52675 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52676 goto __3002 52677 } 52678 return -2 52679 __3002: 52680 ; 52681 __3001: 52682 ; 52683 __3000: 52684 ; 52685 52686 rrc = DMATCH_NOMATCH 52687 goto RETURN_SWITCH 52688 52689 __2998: 52690 ; 52691 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(*(*Tsize_t)(unsafe.Pointer(bp + 8))) 52692 goto __2996 52693 __2996: 52694 i++ 52695 goto __2995 52696 goto __2997 52697 __2997: 52698 ; 52699 52700 // If min = max, we are done. They are not both allowed to be zero. 52701 52702 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56)) == *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 52703 goto __3003 52704 } 52705 goto __11 52706 __3003: 52707 ; 52708 52709 // If minimizing, keep trying and advancing the pointer. 52710 52711 if !(reptype == REPTYPE_MIN) { 52712 goto __3004 52713 } 52714 52715 __3006: 52716 52717 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 52718 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM20 52719 goto MATCH_RECURSE 52720 L_RM20: 52721 ; 52722 52723 if !(rrc != DMATCH_NOMATCH) { 52724 goto __3009 52725 } 52726 rrc = rrc 52727 goto RETURN_SWITCH 52728 __3009: 52729 ; 52730 52731 if !(libc.PostIncUint32(&*(*Tuint32_t)(unsafe.Pointer(F + 56)), 1) >= *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 52732 goto __3010 52733 } 52734 rrc = DMATCH_NOMATCH 52735 goto RETURN_SWITCH 52736 __3010: 52737 ; 52738 52739 rrc = match_ref(tls, (*Theapframe)(unsafe.Pointer(F)).Ftemp_size, int32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4))), F, mb, bp+16) 52740 if !(rrc != 0) { 52741 goto __3011 52742 } 52743 52744 if !(rrc > 0) { 52745 goto __3012 52746 } 52747 (*Theapframe)(unsafe.Pointer(F)).Feptr = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject 52748 __3012: 52749 ; // Partial match 52750 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 52751 goto __3013 52752 } 52753 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 52754 goto __3014 52755 } 52756 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52757 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52758 goto __3015 52759 } 52760 return -2 52761 __3015: 52762 ; 52763 __3014: 52764 ; 52765 __3013: 52766 ; 52767 52768 rrc = DMATCH_NOMATCH 52769 goto RETURN_SWITCH 52770 52771 __3011: 52772 ; 52773 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(*(*Tsize_t)(unsafe.Pointer(bp + 16))) 52774 goto __3007 52775 __3007: 52776 goto __3006 52777 goto __3008 52778 __3008: 52779 ; 52780 // Control never gets here 52781 goto __3005 52782 __3004: 52783 samelengths = DTRUE 52784 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) = (*Theapframe)(unsafe.Pointer(F)).Feptr // Starting position 52785 (*Theapframe)(unsafe.Pointer(F)).Flength = *(*Tsize_t)(unsafe.Pointer(F + 128 + uintptr((*Theapframe)(unsafe.Pointer(F)).Ftemp_size+uint64(1))*8)) - *(*Tsize_t)(unsafe.Pointer(F + 128 + uintptr((*Theapframe)(unsafe.Pointer(F)).Ftemp_size)*8)) 52786 52787 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 52788 __3016: 52789 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 52790 goto __3018 52791 } 52792 52793 rrc = match_ref(tls, (*Theapframe)(unsafe.Pointer(F)).Ftemp_size, int32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4))), F, mb, bp+24) 52794 if !(rrc != 0) { 52795 goto __3019 52796 } 52797 52798 // Can't use CHECK_PARTIAL because we don't want to update Feptr in 52799 // the soft partial matching case. 52800 52801 if !(rrc > 0 && int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr) { 52802 goto __3020 52803 } 52804 52805 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 52806 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 52807 goto __3021 52808 } 52809 return -2 52810 __3021: 52811 ; 52812 __3020: 52813 ; 52814 goto __3018 52815 __3019: 52816 ; 52817 52818 if !(*(*Tsize_t)(unsafe.Pointer(bp + 24)) != (*Theapframe)(unsafe.Pointer(F)).Flength) { 52819 goto __3022 52820 } 52821 samelengths = DFALSE 52822 __3022: 52823 ; 52824 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(*(*Tsize_t)(unsafe.Pointer(bp + 24))) 52825 goto __3017 52826 __3017: 52827 i++ 52828 goto __3016 52829 goto __3018 52830 __3018: 52831 ; 52832 52833 // If the length matched for each repetition is the same as the length of 52834 // the captured group, we can easily work backwards. This is the normal 52835 // case. However, in caseless UTF-8 mode there are pairs of case-equivalent 52836 // characters whose lengths (in terms of code units) differ. However, this 52837 // is very rare, so we handle it by re-matching fewer and fewer times. 52838 52839 if !(samelengths != 0) { 52840 goto __3023 52841 } 52842 52843 __3025: 52844 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 52845 goto __3026 52846 } 52847 52848 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 52849 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM21 52850 goto MATCH_RECURSE 52851 L_RM21: 52852 ; 52853 52854 if !(rrc != DMATCH_NOMATCH) { 52855 goto __3027 52856 } 52857 rrc = rrc 52858 goto RETURN_SWITCH 52859 __3027: 52860 ; 52861 52862 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) -= TPCRE2_SPTR8((*Theapframe)(unsafe.Pointer(F)).Flength) 52863 goto __3025 52864 __3026: 52865 ; 52866 goto __3024 52867 __3023: 52868 52869 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = i 52870 __3028: 52871 52872 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 52873 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM22 52874 goto MATCH_RECURSE 52875 L_RM22: 52876 ; 52877 52878 if !(rrc != DMATCH_NOMATCH) { 52879 goto __3031 52880 } 52881 rrc = rrc 52882 goto RETURN_SWITCH 52883 __3031: 52884 ; 52885 52886 if !((*Theapframe)(unsafe.Pointer(F)).Feptr == *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 52887 goto __3032 52888 } 52889 goto __3030 52890 __3032: 52891 ; // Failed after minimal repetition 52892 (*Theapframe)(unsafe.Pointer(F)).Feptr = *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) 52893 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))-- 52894 i = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 52895 __3033: 52896 if !(i < *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4))) { 52897 goto __3035 52898 } 52899 52900 match_ref(tls, (*Theapframe)(unsafe.Pointer(F)).Ftemp_size, int32(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4))), F, mb, bp+32) 52901 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) += TPCRE2_SPTR8(*(*Tsize_t)(unsafe.Pointer(bp + 32))) 52902 goto __3034 52903 __3034: 52904 i++ 52905 goto __3033 52906 goto __3035 52907 __3035: 52908 ; 52909 goto __3029 52910 __3029: 52911 goto __3028 52912 goto __3030 52913 __3030: 52914 ; 52915 __3024: 52916 ; 52917 52918 rrc = DMATCH_NOMATCH 52919 goto RETURN_SWITCH 52920 52921 __3005: 52922 ; 52923 // Control never gets here 52924 52925 // ========================================================================= 52926 // Opcodes for the start of various parenthesized items 52927 // ========================================================================= 52928 52929 // In all cases, if the result of RMATCH() is MATCH_THEN, check whether the 52930 // (*THEN) is within the current branch by comparing the address of OP_THEN 52931 // that is passed back with the end of the branch. If (*THEN) is within the 52932 // current branch, and the branch is one of two or more alternatives (it 52933 // either starts or ends with OP_ALT), we have reached the limit of THEN's 52934 // action, so convert the return code to NOMATCH, which will cause normal 52935 // backtracking to happen from now on. Otherwise, THEN is passed back to an 52936 // outer alternative. This implements Perl's treatment of parenthesized 52937 // groups, where a group not containing | does not affect the current 52938 // alternative, that is, (X) is NOT the same as (X|(*F)). 52939 52940 // ===================================================================== 52941 // BRAZERO, BRAMINZERO and SKIPZERO occur just before a non-possessive 52942 // bracket group, indicating that it may occur zero times. It may repeat 52943 // infinitely, or not at all - i.e. it could be ()* or ()? or even (){0} in 52944 // the pattern. Brackets with fixed upper repeat limits are compiled as a 52945 // number of copies, with the optional ones preceded by BRAZERO or BRAMINZERO. 52946 // Possessive groups with possible zero repeats are preceded by BRAPOSZERO. 52947 52948 __111: 52949 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(1) 52950 start_ecode = *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) 52951 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM9 52952 goto MATCH_RECURSE 52953 L_RM9: 52954 ; 52955 52956 if !(rrc != DMATCH_NOMATCH) { 52957 goto __3036 52958 } 52959 rrc = rrc 52960 goto RETURN_SWITCH 52961 __3036: 52962 ; 52963 52964 __3037: 52965 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) + 2))))) 52966 goto __3038 52967 __3038: 52968 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))))) == OP_ALT { 52969 goto __3037 52970 } 52971 goto __3039 52972 __3039: 52973 ; 52974 (*Theapframe)(unsafe.Pointer(F)).Fecode = *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) + uintptr(1) + uintptr(DLINK_SIZE) 52975 goto __13 52976 52977 __112: 52978 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(1) 52979 __3040: 52980 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) + 2))))) 52981 goto __3041 52982 __3041: 52983 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))))) == OP_ALT { 52984 goto __3040 52985 } 52986 goto __3042 52987 __3042: 52988 ; 52989 start_ecode = *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) + uintptr(1) + uintptr(DLINK_SIZE) 52990 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM10 52991 goto MATCH_RECURSE 52992 L_RM10: 52993 ; 52994 52995 if !(rrc != DMATCH_NOMATCH) { 52996 goto __3043 52997 } 52998 rrc = rrc 52999 goto RETURN_SWITCH 53000 __3043: 53001 ; 53002 53003 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 53004 goto __13 53005 53006 __113: 53007 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 53008 __3044: 53009 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 53010 goto __3045 53011 __3045: 53012 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_ALT { 53013 goto __3044 53014 } 53015 goto __3046 53016 __3046: 53017 ; 53018 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DLINK_SIZE) 53019 goto __13 53020 53021 // ===================================================================== 53022 // Handle possessive brackets with an unlimited repeat. The end of these 53023 // brackets will always be OP_KETRPOS, which returns MATCH_KETRPOS without 53024 // going further in the pattern. 53025 53026 __114: 53027 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) = Tuint32_t(DTRUE) // Zero repeat is allowed 53028 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += uintptr(1) 53029 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_CBRAPOS || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_SCBRAPOS) { 53030 goto __3047 53031 } 53032 goto POSSESSIVE_CAPTURE 53033 __3047: 53034 ; 53035 goto POSSESSIVE_NON_CAPTURE 53036 53037 __115: 53038 __116: 53039 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) = Tuint32_t(DFALSE) // Zero repeat not allowed 53040 53041 POSSESSIVE_NON_CAPTURE: 53042 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = DGF_NOCAPTURE // Remembered frame type 53043 goto POSSESSIVE_GROUP 53044 53045 __117: 53046 __118: 53047 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) = Tuint32_t(DFALSE) // Zero repeat not allowed 53048 53049 POSSESSIVE_CAPTURE: 53050 number = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 4)))) 53051 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = DGF_CAPTURE | number // Remembered frame type 53052 53053 POSSESSIVE_GROUP: 53054 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = Tuint32_t(DFALSE) // Never matched 53055 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8 + 1*8)) = (*Theapframe)(unsafe.Pointer(F)).Fecode // Start of this group 53056 53057 __3048: 53058 53059 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) = (*Theapframe)(unsafe.Pointer(F)).Feptr // Position at group start 53060 group_frame_type = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 53061 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 53062 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM8 53063 goto MATCH_RECURSE 53064 L_RM8: 53065 ; 53066 53067 if !(rrc == -998) { 53068 goto __3051 53069 } 53070 53071 *(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) = Tuint32_t(DTRUE) // Matched at least once 53072 if !((*Theapframe)(unsafe.Pointer(F)).Feptr == *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))) { 53073 goto __3052 53074 } /* Empty match; skip to end */ 53075 53076 __3053: 53077 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 53078 goto __3054 53079 __3054: 53080 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_ALT { 53081 goto __3053 53082 } 53083 goto __3055 53084 __3055: 53085 ; 53086 goto __3050 53087 __3052: 53088 ; 53089 53090 (*Theapframe)(unsafe.Pointer(F)).Fecode = *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8 + 1*8)) 53091 goto __3049 53092 __3051: 53093 ; 53094 53095 // See comment above about handling THEN. 53096 53097 if !(rrc == -993) { 53098 goto __3056 53099 } 53100 53101 next_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 53102 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_ecode_ptr < next_ecode && (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_ALT || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(next_ecode))) == OP_ALT)) { 53103 goto __3057 53104 } 53105 rrc = DMATCH_NOMATCH 53106 __3057: 53107 ; 53108 __3056: 53109 ; 53110 53111 if !(rrc != DMATCH_NOMATCH) { 53112 goto __3058 53113 } 53114 rrc = rrc 53115 goto RETURN_SWITCH 53116 __3058: 53117 ; 53118 53119 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 53120 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) != OP_ALT) { 53121 goto __3059 53122 } 53123 goto __3050 53124 __3059: 53125 ; 53126 goto __3049 53127 __3049: 53128 goto __3048 53129 goto __3050 53130 __3050: 53131 ; 53132 53133 // Success if matched something or zero repeat allowed 53134 53135 if !(*(*Tuint32_t)(unsafe.Pointer(F + 56 + 1*4)) != 0 || *(*Tuint32_t)(unsafe.Pointer(F + 56 + 2*4)) != 0) { 53136 goto __3060 53137 } 53138 53139 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DLINK_SIZE) 53140 goto __13 53141 __3060: 53142 ; 53143 53144 rrc = DMATCH_NOMATCH 53145 goto RETURN_SWITCH 53146 53147 // ===================================================================== 53148 // Handle non-capturing brackets that cannot match an empty string. When we 53149 // get to the final alternative within the brackets, as long as there are no 53150 // THEN's in the pattern, we can optimize by not recording a new backtracking 53151 // point. (Ideally we should test for a THEN within this group, but we don't 53152 // have that information.) Don't do this if we are at the very top level, 53153 // however, because that would make handling assertions and once-only brackets 53154 // messier when there is nothing to go back to. 53155 53156 __119: 53157 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fhasthen != 0 || (*Theapframe)(unsafe.Pointer(F)).Frdepth == Tuint32_t(0)) { 53158 goto __3061 53159 } 53160 53161 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(0) 53162 goto GROUPLOOP 53163 __3061: 53164 ; 53165 53166 __3062: 53167 53168 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 53169 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))))) != OP_ALT) { 53170 goto __3065 53171 } 53172 goto __3064 53173 __3065: 53174 ; 53175 53176 /* This is never the final branch. We do not need to test for MATCH_THEN 53177 here because this code is not used when there is a THEN in the pattern. */ 53178 53179 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 53180 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM1 53181 goto MATCH_RECURSE 53182 L_RM1: 53183 ; 53184 53185 if !(rrc != DMATCH_NOMATCH) { 53186 goto __3066 53187 } 53188 rrc = rrc 53189 goto RETURN_SWITCH 53190 __3066: 53191 ; 53192 53193 (*Theapframe)(unsafe.Pointer(F)).Fecode = *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) 53194 goto __3063 53195 __3063: 53196 goto __3062 53197 goto __3064 53198 __3064: 53199 ; 53200 53201 // Hit the start of the final branch. Continue at this level. 53202 53203 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 53204 goto __13 53205 53206 // ===================================================================== 53207 // Handle a capturing bracket, other than those that are possessive with an 53208 // unlimited repeat. 53209 53210 __120: 53211 __121: 53212 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = DGF_CAPTURE | uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 4)))) 53213 goto GROUPLOOP 53214 53215 // ===================================================================== 53216 // Atomic groups and non-capturing brackets that can match an empty string 53217 // must record a backtracking point and also set up a chained frame. 53218 53219 __122: 53220 __123: 53221 __124: 53222 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = DGF_NOCAPTURE | uint32((*Theapframe)(unsafe.Pointer(F)).Fop) 53223 53224 GROUPLOOP: 53225 __3067: 53226 53227 group_frame_type = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 53228 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 53229 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM2 53230 goto MATCH_RECURSE 53231 L_RM2: 53232 ; 53233 53234 if !(rrc == -993) { 53235 goto __3070 53236 } 53237 53238 next_ecode1 = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 53239 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_ecode_ptr < next_ecode1 && (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_ALT || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(next_ecode1))) == OP_ALT)) { 53240 goto __3071 53241 } 53242 rrc = DMATCH_NOMATCH 53243 __3071: 53244 ; 53245 __3070: 53246 ; 53247 if !(rrc != DMATCH_NOMATCH) { 53248 goto __3072 53249 } 53250 rrc = rrc 53251 goto RETURN_SWITCH 53252 __3072: 53253 ; 53254 53255 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 53256 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) != OP_ALT) { 53257 goto __3073 53258 } 53259 rrc = DMATCH_NOMATCH 53260 goto RETURN_SWITCH 53261 __3073: 53262 ; 53263 53264 goto __3068 53265 __3068: 53266 goto __3067 53267 goto __3069 53268 __3069: 53269 ; 53270 // Control never reaches here. 53271 53272 // ===================================================================== 53273 // Recursion either matches the current regex, or some subexpression. The 53274 // offset data is the offset to the starting bracket from the start of the 53275 // whole pattern. (This is so that it works from duplicated subpatterns.) 53276 53277 __125: 53278 bracode = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_code + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 53279 if bracode == (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_code { 53280 number = uint32(0) 53281 } else { 53282 number = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode + 4)))) 53283 } 53284 53285 // If we are already in a recursion, check for repeating the same one 53286 // without advancing the subject pointer. This should catch convoluted mutual 53287 // recursions. (Some simple cases are caught at compile time.) 53288 53289 if !((*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse != DRECURSE_UNSET) { 53290 goto __3074 53291 } 53292 53293 offset = (*Theapframe)(unsafe.Pointer(F)).Flast_group_offset 53294 __3075: 53295 if !(offset != libc.CplUint64(uint64(0))) { 53296 goto __3076 53297 } 53298 53299 N = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames + uintptr(offset) 53300 P = N - uintptr(frame_size) 53301 if !((*Theapframe)(unsafe.Pointer(N)).Fgroup_frame_type == DGF_RECURSE|number) { 53302 goto __3077 53303 } 53304 53305 if !((*Theapframe)(unsafe.Pointer(F)).Feptr == (*Theapframe)(unsafe.Pointer(P)).Feptr) { 53306 goto __3078 53307 } 53308 return -52 53309 __3078: 53310 ; 53311 goto __3076 53312 __3077: 53313 ; 53314 offset = (*Theapframe)(unsafe.Pointer(P)).Flast_group_offset 53315 goto __3075 53316 __3076: 53317 ; 53318 __3074: 53319 ; 53320 53321 // Now run the recursion, branch by branch. 53322 53323 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) = bracode 53324 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = DGF_RECURSE | number 53325 53326 __3079: 53327 53328 group_frame_type = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 53329 start_ecode = *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))))]) 53330 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM11 53331 goto MATCH_RECURSE 53332 L_RM11: 53333 ; 53334 53335 next_ecode2 = *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) + 2))))) 53336 53337 // Handle backtracking verbs, which are defined in a range that can 53338 // easily be tested for. PCRE does not allow THEN, SKIP, PRUNE or COMMIT to 53339 // escape beyond a recursion; they cause a NOMATCH for the entire recursion. 53340 // 53341 // When one of these verbs triggers, the current recursion group number is 53342 // recorded. If it matches the recursion we are processing, the verb 53343 // happened within the recursion and we must deal with it. Otherwise it must 53344 // have happened after the recursion completed, and so has to be passed 53345 // back. See comment above about handling THEN. 53346 53347 if !(rrc >= -997 && rrc <= -993 && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_current_recurse == *(*Tuint32_t)(unsafe.Pointer(F + 56))^DGF_RECURSE) { 53348 goto __3082 53349 } 53350 53351 if !(rrc == -993 && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_ecode_ptr < next_ecode2 && (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))))) == OP_ALT || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(next_ecode2))) == OP_ALT)) { 53352 goto __3083 53353 } 53354 rrc = DMATCH_NOMATCH 53355 goto __3084 53356 __3083: 53357 rrc = DMATCH_NOMATCH 53358 goto RETURN_SWITCH 53359 __3084: 53360 ; 53361 53362 __3082: 53363 ; 53364 53365 // Note that carrying on after (*ACCEPT) in a recursion is handled in the 53366 // OP_ACCEPT code. Nothing needs to be done here. 53367 53368 if !(rrc != DMATCH_NOMATCH) { 53369 goto __3085 53370 } 53371 rrc = rrc 53372 goto RETURN_SWITCH 53373 __3085: 53374 ; 53375 53376 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) = next_ecode2 53377 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))))) != OP_ALT) { 53378 goto __3086 53379 } 53380 rrc = DMATCH_NOMATCH 53381 goto RETURN_SWITCH 53382 __3086: 53383 ; 53384 53385 goto __3080 53386 __3080: 53387 goto __3079 53388 goto __3081 53389 __3081: 53390 ; 53391 // Control never reaches here. 53392 53393 // ===================================================================== 53394 // Positive assertions are like other groups except that PCRE doesn't allow 53395 // the effect of (*THEN) to escape beyond an assertion; it is therefore 53396 // treated as NOMATCH. (*ACCEPT) is treated as successful assertion, with its 53397 // captures and mark retained. Any other return is an error. 53398 53399 __126: 53400 __127: 53401 __128: 53402 __129: 53403 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = DGF_NOCAPTURE | uint32((*Theapframe)(unsafe.Pointer(F)).Fop) 53404 __3087: 53405 53406 group_frame_type = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 53407 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 53408 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM3 53409 goto MATCH_RECURSE 53410 L_RM3: 53411 ; 53412 53413 if !(rrc == -999) { 53414 goto __3090 53415 } 53416 53417 libc.Xmemcpy(tls, F+128, 53418 assert_accept_frame+uintptr(uint64(uintptr(0)+128)), 53419 (*Theapframe)(unsafe.Pointer(assert_accept_frame)).Foffset_top*Tsize_t(unsafe.Sizeof(Tsize_t(0)))) 53420 (*Theapframe)(unsafe.Pointer(F)).Foffset_top = (*Theapframe)(unsafe.Pointer(assert_accept_frame)).Foffset_top 53421 (*Theapframe)(unsafe.Pointer(F)).Fmark = (*Theapframe)(unsafe.Pointer(assert_accept_frame)).Fmark 53422 goto __3089 53423 __3090: 53424 ; 53425 if !(rrc != DMATCH_NOMATCH && rrc != -993) { 53426 goto __3091 53427 } 53428 rrc = rrc 53429 goto RETURN_SWITCH 53430 __3091: 53431 ; 53432 53433 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 53434 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) != OP_ALT) { 53435 goto __3092 53436 } 53437 rrc = DMATCH_NOMATCH 53438 goto RETURN_SWITCH 53439 __3092: 53440 ; 53441 53442 goto __3088 53443 __3088: 53444 goto __3087 53445 goto __3089 53446 __3089: 53447 ; 53448 53449 __3093: 53450 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 53451 goto __3094 53452 __3094: 53453 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_ALT { 53454 goto __3093 53455 } 53456 goto __3095 53457 __3095: 53458 ; 53459 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DLINK_SIZE) 53460 goto __13 53461 53462 // ===================================================================== 53463 // Handle negative assertions. Loop for each non-matching branch as for 53464 // positive assertions. 53465 53466 __130: 53467 __131: 53468 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = DGF_NOCAPTURE | uint32((*Theapframe)(unsafe.Pointer(F)).Fop) 53469 53470 __3096: 53471 53472 group_frame_type = *(*Tuint32_t)(unsafe.Pointer(F + 56)) 53473 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 53474 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM4 53475 goto MATCH_RECURSE 53476 L_RM4: 53477 ; 53478 53479 switch rrc { 53480 case -999: 53481 goto __3100 // Assertion matched, therefore it fails. 53482 case DMATCH_MATCH: 53483 goto __3101 53484 53485 case DMATCH_NOMATCH: 53486 goto __3102 // Branch failed, try next if present. 53487 case -993: 53488 goto __3103 53489 53490 case -997: 53491 goto __3104 // Assertion forced to fail, therefore continue. 53492 case -995: 53493 goto __3105 53494 case -996: 53495 goto __3106 53496 53497 default: 53498 goto __3107 53499 } 53500 goto __3099 53501 53502 __3100: // Assertion matched, therefore it fails. 53503 __3101: 53504 rrc = DMATCH_NOMATCH 53505 goto RETURN_SWITCH 53506 53507 __3102: // Branch failed, try next if present. 53508 __3103: 53509 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 53510 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) != OP_ALT) { 53511 goto __3108 53512 } 53513 goto ASSERT_NOT_FAILED 53514 __3108: 53515 ; 53516 goto __3099 53517 53518 __3104: // Assertion forced to fail, therefore continue. 53519 __3105: 53520 __3106: 53521 __3109: 53522 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 53523 goto __3110 53524 __3110: 53525 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_ALT { 53526 goto __3109 53527 } 53528 goto __3111 53529 __3111: 53530 ; 53531 goto ASSERT_NOT_FAILED 53532 53533 __3107: /* Pass back any other return */ 53534 rrc = rrc 53535 goto RETURN_SWITCH 53536 53537 __3099: 53538 ; 53539 goto __3097 53540 __3097: 53541 goto __3096 53542 goto __3098 53543 __3098: 53544 ; 53545 53546 // None of the branches have matched or there was a backtrack to (*COMMIT), 53547 // (*SKIP), (*PRUNE), or (*THEN) in the last branch. This is success for a 53548 // negative assertion, so carry on. 53549 53550 ASSERT_NOT_FAILED: 53551 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DLINK_SIZE) 53552 goto __13 53553 53554 // ===================================================================== 53555 // The callout item calls an external function, if one is provided, passing 53556 // details of the match so far. This is mainly for debugging, though the 53557 // function is able to force a failure. 53558 53559 __132: 53560 __133: 53561 rrc = do_callout1(tls, F, mb, bp) 53562 if !(rrc > 0) { 53563 goto __3112 53564 } 53565 rrc = DMATCH_NOMATCH 53566 goto RETURN_SWITCH 53567 __3112: 53568 ; 53569 53570 if !(rrc < 0) { 53571 goto __3113 53572 } 53573 rrc = rrc 53574 goto RETURN_SWITCH 53575 __3113: 53576 ; 53577 53578 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(*(*Tsize_t)(unsafe.Pointer(bp))) 53579 goto __13 53580 53581 // ===================================================================== 53582 // Conditional group: compilation checked that there are no more than two 53583 // branches. If the condition is false, skipping the first branch takes us 53584 // past the end of the item if there is only one branch, but that's exactly 53585 // what we want. 53586 53587 __134: 53588 __135: 53589 53590 // The variable Flength will be added to Fecode when the condition is 53591 // false, to get to the second branch. Setting it to the offset to the ALT or 53592 // KET, then incrementing Fecode achieves this effect. However, if the second 53593 // branch is non-existent, we must point to the KET so that the end of the 53594 // group is correctly processed. We now have Fecode pointing to the condition 53595 // or callout. 53596 53597 (*Theapframe)(unsafe.Pointer(F)).Flength = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) // Offset to the second branch 53598 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr((*Theapframe)(unsafe.Pointer(F)).Flength)))) != OP_ALT) { 53599 goto __3114 53600 } 53601 *(*Tsize_t)(unsafe.Pointer(F + 24)) -= uint64(1 + DLINK_SIZE) 53602 __3114: 53603 ; 53604 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DLINK_SIZE) // From this opcode 53605 53606 // Because of the way auto-callout works during compile, a callout item is 53607 // inserted between OP_COND and an assertion condition. Such a callout can 53608 // also be inserted manually. 53609 53610 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_CALLOUT || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_CALLOUT_STR) { 53611 goto __3115 53612 } 53613 53614 rrc = do_callout1(tls, F, mb, bp) 53615 if !(rrc > 0) { 53616 goto __3116 53617 } 53618 rrc = DMATCH_NOMATCH 53619 goto RETURN_SWITCH 53620 __3116: 53621 ; 53622 53623 if !(rrc < 0) { 53624 goto __3117 53625 } 53626 rrc = rrc 53627 goto RETURN_SWITCH 53628 __3117: 53629 ; 53630 53631 // Advance Fecode past the callout, so it now points to the condition. We 53632 // must adjust Flength so that the value of Fecode+Flength is unchanged. 53633 53634 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(*(*Tsize_t)(unsafe.Pointer(bp))) 53635 *(*Tsize_t)(unsafe.Pointer(F + 24)) -= *(*Tsize_t)(unsafe.Pointer(bp)) 53636 __3115: 53637 ; 53638 53639 // Test the various possible conditions 53640 53641 condition = DFALSE 53642 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) { 53643 case OP_RREF: 53644 goto __3119 53645 53646 case OP_DNRREF: 53647 goto __3120 53648 53649 case OP_CREF: 53650 goto __3121 53651 53652 case OP_DNCREF: 53653 goto __3122 53654 53655 case OP_FALSE: 53656 goto __3123 53657 case OP_FAIL: 53658 goto __3124 53659 53660 case OP_TRUE: 53661 goto __3125 53662 53663 // The condition is an assertion. Run code similar to the assertion code 53664 // above. 53665 53666 default: 53667 goto __3126 53668 } 53669 goto __3118 53670 53671 __3119: // Group recursion test 53672 if !((*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse != DRECURSE_UNSET) { 53673 goto __3127 53674 } 53675 53676 number = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))) 53677 condition = libc.Bool32(number == Tuint32_t(DRREF_ANY) || number == (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse) 53678 __3127: 53679 ; 53680 goto __3118 53681 53682 __3120: // Duplicate named group recursion test 53683 if !((*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse != DRECURSE_UNSET) { 53684 goto __3128 53685 } 53686 53687 count1 = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 4))))) 53688 slot1 = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fname_table + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))*uint32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fname_entry_size)) 53689 __3129: 53690 if !(libc.PostDecInt32(&count1, 1) > 0) { 53691 goto __3130 53692 } 53693 53694 number = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot1 + 1)))) 53695 condition = libc.Bool32(number == (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse) 53696 if !(condition != 0) { 53697 goto __3131 53698 } 53699 goto __3130 53700 __3131: 53701 ; 53702 slot1 += TPCRE2_SPTR8((*Tmatch_block_8)(unsafe.Pointer(mb)).Fname_entry_size) 53703 goto __3129 53704 __3130: 53705 ; 53706 __3128: 53707 ; 53708 goto __3118 53709 53710 __3121: // Numbered group used test 53711 offset = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))<<1 - uint32(2)) // Doubled ref number 53712 condition = libc.Bool32(offset < (*Theapframe)(unsafe.Pointer(F)).Foffset_top && *(*Tsize_t)(unsafe.Pointer(F + 128 + uintptr(offset)*8)) != libc.CplUint64(uint64(0))) 53713 goto __3118 53714 53715 __3122: /* Duplicate named group used test */ 53716 53717 count2 = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 4))))) 53718 slot2 = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fname_table + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))*uint32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fname_entry_size)) 53719 __3132: 53720 if !(libc.PostDecInt32(&count2, 1) > 0) { 53721 goto __3133 53722 } 53723 53724 offset = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot2)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot2 + 1))))<<1 - uint32(2)) 53725 condition = libc.Bool32(offset < (*Theapframe)(unsafe.Pointer(F)).Foffset_top && *(*Tsize_t)(unsafe.Pointer(F + 128 + uintptr(offset)*8)) != libc.CplUint64(uint64(0))) 53726 if !(condition != 0) { 53727 goto __3134 53728 } 53729 goto __3133 53730 __3134: 53731 ; 53732 slot2 += TPCRE2_SPTR8((*Tmatch_block_8)(unsafe.Pointer(mb)).Fname_entry_size) 53733 goto __3132 53734 __3133: 53735 ; 53736 53737 goto __3118 53738 53739 __3123: 53740 __3124: // The assertion (?!) becomes OP_FAIL 53741 goto __3118 53742 53743 __3125: 53744 condition = DTRUE 53745 goto __3118 53746 53747 // The condition is an assertion. Run code similar to the assertion code 53748 // above. 53749 53750 __3126: 53751 *(*Tuint32_t)(unsafe.Pointer(F + 56)) = Tuint32_t(libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_ASSERT || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_ASSERTBACK)) 53752 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) = (*Theapframe)(unsafe.Pointer(F)).Fecode 53753 53754 __3135: 53755 53756 group_frame_type = DGF_CONDASSERT | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) 53757 start_ecode = *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))))]) 53758 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM5 53759 goto MATCH_RECURSE 53760 L_RM5: 53761 ; 53762 53763 switch rrc { 53764 case -999: 53765 goto __3139 53766 53767 // Fall through 53768 // In the case of a match, the captures have already been put into 53769 // the current frame. 53770 53771 case DMATCH_MATCH: 53772 goto __3140 53773 53774 // PCRE doesn't allow the effect of (*THEN) to escape beyond an 53775 // assertion; it is therefore always treated as NOMATCH. 53776 53777 case DMATCH_NOMATCH: 53778 goto __3141 53779 case -993: 53780 goto __3142 53781 53782 // These force no match without checking other branches. 53783 53784 case -997: 53785 goto __3143 53786 case -995: 53787 goto __3144 53788 case -996: 53789 goto __3145 53790 53791 default: 53792 goto __3146 53793 } 53794 goto __3138 53795 53796 __3139: // Save captures 53797 libc.Xmemcpy(tls, F+128, 53798 assert_accept_frame+uintptr(uint64(uintptr(0)+128)), 53799 (*Theapframe)(unsafe.Pointer(assert_accept_frame)).Foffset_top*Tsize_t(unsafe.Sizeof(Tsize_t(0)))) 53800 (*Theapframe)(unsafe.Pointer(F)).Foffset_top = (*Theapframe)(unsafe.Pointer(assert_accept_frame)).Foffset_top 53801 53802 // Fall through 53803 // In the case of a match, the captures have already been put into 53804 // the current frame. 53805 53806 __3140: 53807 condition = TBOOL(*(*Tuint32_t)(unsafe.Pointer(F + 56))) // TRUE for positive assertion 53808 goto __3138 53809 53810 // PCRE doesn't allow the effect of (*THEN) to escape beyond an 53811 // assertion; it is therefore always treated as NOMATCH. 53812 53813 __3141: 53814 __3142: 53815 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8)) + 2))))) 53816 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(F + 8))))) == OP_ALT) { 53817 goto __3147 53818 } 53819 goto __3136 53820 __3147: 53821 ; // Try next branch 53822 condition = libc.BoolInt32(!(*(*Tuint32_t)(unsafe.Pointer(F + 56)) != 0)) // TRUE for negative assertion 53823 goto __3138 53824 53825 // These force no match without checking other branches. 53826 53827 __3143: 53828 __3144: 53829 __3145: 53830 condition = libc.BoolInt32(!(*(*Tuint32_t)(unsafe.Pointer(F + 56)) != 0)) 53831 goto __3138 53832 53833 __3146: 53834 rrc = rrc 53835 goto RETURN_SWITCH 53836 53837 __3138: 53838 ; 53839 goto __3137 // Out of the branch loop 53840 goto __3136 53841 __3136: 53842 goto __3135 53843 goto __3137 53844 __3137: 53845 ; 53846 53847 // If the condition is true, find the end of the assertion so that 53848 // advancing past it gets us to the start of the first branch. 53849 53850 if !(condition != 0) { 53851 goto __3148 53852 } 53853 53854 __3149: 53855 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 53856 goto __3150 53857 __3150: 53858 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_ALT { 53859 goto __3149 53860 } 53861 goto __3151 53862 __3151: 53863 ; 53864 __3148: 53865 ; 53866 goto __3118 // End of assertion condition 53867 __3118: 53868 ; 53869 53870 // Choose branch according to the condition. 53871 53872 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += func() uintptr { 53873 if condition != 0 { 53874 return uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 53875 } 53876 return uintptr((*Theapframe)(unsafe.Pointer(F)).Flength) 53877 }() 53878 53879 // If the opcode is OP_SCOND it means we are at a repeated conditional 53880 // group that might match an empty string. We must therefore descend a level 53881 // so that the start is remembered for checking. For OP_COND we can just 53882 // continue at this level. 53883 53884 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_SCOND) { 53885 goto __3152 53886 } 53887 53888 group_frame_type = DGF_NOCAPTURE | uint32((*Theapframe)(unsafe.Pointer(F)).Fop) 53889 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode 53890 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM35 53891 goto MATCH_RECURSE 53892 L_RM35: 53893 ; 53894 53895 rrc = rrc 53896 goto RETURN_SWITCH 53897 53898 __3152: 53899 ; 53900 goto __13 53901 53902 // ========================================================================= 53903 // End of start of parenthesis opcodes 53904 // ========================================================================= 53905 53906 // ===================================================================== 53907 // Move the subject pointer back. This occurs only at the start of each 53908 // branch of a lookbehind assertion. If we are too close to the start to move 53909 // back, fail. When working with UTF-8 we move back a number of characters, 53910 // not bytes. 53911 53912 __136: 53913 number = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2)))) 53914 if !(utf != 0) { 53915 goto __3153 53916 } 53917 53918 __3155: 53919 if !(libc.PostDecUint32(&number, 1) > Tuint32_t(0)) { 53920 goto __3156 53921 } 53922 53923 if !((*Theapframe)(unsafe.Pointer(F)).Feptr <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject) { 53924 goto __3157 53925 } 53926 rrc = DMATCH_NOMATCH 53927 goto RETURN_SWITCH 53928 __3157: 53929 ; 53930 53931 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 53932 __3158: 53933 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr)))&0xc0 == 0x80) { 53934 goto __3159 53935 } 53936 (*Theapframe)(unsafe.Pointer(F)).Feptr-- 53937 goto __3158 53938 __3159: 53939 ; 53940 goto __3155 53941 __3156: 53942 ; 53943 goto __3154 53944 __3153: 53945 53946 /* No UTF-8 support, or not in UTF-8 mode: count is code unit count */ 53947 53948 if !(Tptrdiff_t(number) > (int64((*Theapframe)(unsafe.Pointer(F)).Feptr)-int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject))/1) { 53949 goto __3160 53950 } 53951 rrc = DMATCH_NOMATCH 53952 goto RETURN_SWITCH 53953 __3160: 53954 ; 53955 53956 *(*TPCRE2_SPTR8)(unsafe.Pointer(F + 80)) -= TPCRE2_SPTR8(number) 53957 __3154: 53958 ; 53959 53960 // Save the earliest consulted character, then skip to next opcode 53961 53962 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr) { 53963 goto __3161 53964 } 53965 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr = (*Theapframe)(unsafe.Pointer(F)).Feptr 53966 __3161: 53967 ; 53968 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DLINK_SIZE) 53969 goto __13 53970 53971 // ===================================================================== 53972 // An alternation is the end of a branch; scan along to find the end of the 53973 // bracketed group. 53974 53975 __137: 53976 __3162: 53977 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 53978 goto __3163 53979 __3163: 53980 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_ALT { 53981 goto __3162 53982 } 53983 goto __3164 53984 __3164: 53985 ; 53986 goto __13 53987 53988 // ===================================================================== 53989 // The end of a parenthesized group. For all but OP_BRA and OP_COND, the 53990 // starting frame was added to the chained frames in order to remember the 53991 // starting subject position for the group. 53992 53993 __138: 53994 __139: 53995 __140: 53996 __141: 53997 53998 bracode = (*Theapframe)(unsafe.Pointer(F)).Fecode - uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 53999 54000 // Point N to the frame at the start of the most recent group. 54001 // Remember the subject pointer at the start of the group. 54002 54003 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode))) != OP_BRA && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode))) != OP_COND) { 54004 goto __3165 54005 } 54006 54007 N = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames + uintptr((*Theapframe)(unsafe.Pointer(F)).Flast_group_offset) 54008 P = N - uintptr(frame_size) 54009 (*Theapframe)(unsafe.Pointer(F)).Flast_group_offset = (*Theapframe)(unsafe.Pointer(P)).Flast_group_offset 54010 54011 // If we are at the end of an assertion that is a condition, return a 54012 // match, discarding any intermediate backtracking points. Copy back the 54013 // mark setting and the captures into the frame before N so that they are 54014 // set on return. Doing this for all assertions, both positive and negative, 54015 // seems to match what Perl does. 54016 54017 if !((*Theapframe)(unsafe.Pointer(N)).Fgroup_frame_type&0xffff0000 == DGF_CONDASSERT) { 54018 goto __3167 54019 } 54020 54021 libc.Xmemcpy(tls, P+uintptr(uint64(uintptr(0)+128)), F+128, 54022 (*Theapframe)(unsafe.Pointer(F)).Foffset_top*Tsize_t(unsafe.Sizeof(Tsize_t(0)))) 54023 (*Theapframe)(unsafe.Pointer(P)).Foffset_top = (*Theapframe)(unsafe.Pointer(F)).Foffset_top 54024 (*Theapframe)(unsafe.Pointer(P)).Fmark = (*Theapframe)(unsafe.Pointer(F)).Fmark 54025 (*Theapframe)(unsafe.Pointer(F)).Fback_frame = Tsize_t((int64(F) - int64(P)) / 1) 54026 rrc = DMATCH_MATCH 54027 goto RETURN_SWITCH 54028 54029 __3167: 54030 ; 54031 goto __3166 54032 __3165: 54033 P = uintptr(0) 54034 __3166: 54035 ; // Indicates starting frame not recorded 54036 54037 // The group was not a conditional assertion. 54038 54039 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode))) { 54040 case OP_BRA: 54041 goto __3169 // No need to do anything for these 54042 case OP_COND: 54043 goto __3170 54044 case OP_SCOND: 54045 goto __3171 54046 54047 // Non-atomic positive assertions are like OP_BRA, except that the 54048 // subject pointer must be put back to where it was at the start of the 54049 // assertion. 54050 54051 case OP_ASSERT_NA: 54052 goto __3172 54053 case OP_ASSERTBACK_NA: 54054 goto __3173 54055 54056 // Atomic positive assertions are like OP_ONCE, except that in addition 54057 // the subject pointer must be put back to where it was at the start of the 54058 // assertion. 54059 54060 case OP_ASSERT: 54061 goto __3174 54062 case OP_ASSERTBACK: 54063 goto __3175 54064 // Fall through 54065 54066 // For an atomic group, discard internal backtracking points. We must 54067 // also ensure that any remaining branches within the top-level of the group 54068 // are not tried. Do this by adjusting the code pointer within the backtrack 54069 // frame so that it points to the final branch. 54070 54071 case OP_ONCE: 54072 goto __3176 54073 54074 // A matching negative assertion returns MATCH, which is turned into 54075 // NOMATCH at the assertion level. 54076 54077 case OP_ASSERT_NOT: 54078 goto __3177 54079 case OP_ASSERTBACK_NOT: 54080 goto __3178 54081 54082 // At the end of a script run, apply the script-checking rules. This code 54083 // will never by exercised if Unicode support it not compiled, because in 54084 // that environment script runs cause an error at compile time. 54085 54086 case OP_SCRIPT_RUN: 54087 goto __3179 54088 54089 // Whole-pattern recursion is coded as a recurse into group 0, so it 54090 // won't be picked up here. Instead, we catch it when the OP_END is reached. 54091 // Other recursion is handled here. 54092 54093 case OP_CBRA: 54094 goto __3180 54095 case OP_CBRAPOS: 54096 goto __3181 54097 case OP_SCBRA: 54098 goto __3182 54099 case OP_SCBRAPOS: 54100 goto __3183 54101 } 54102 goto __3168 54103 54104 __3169: // No need to do anything for these 54105 __3170: 54106 __3171: 54107 goto __3168 54108 54109 // Non-atomic positive assertions are like OP_BRA, except that the 54110 // subject pointer must be put back to where it was at the start of the 54111 // assertion. 54112 54113 __3172: 54114 __3173: 54115 if !((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr) { 54116 goto __3184 54117 } 54118 (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr = (*Theapframe)(unsafe.Pointer(F)).Feptr 54119 __3184: 54120 ; 54121 (*Theapframe)(unsafe.Pointer(F)).Feptr = (*Theapframe)(unsafe.Pointer(P)).Feptr 54122 goto __3168 54123 54124 // Atomic positive assertions are like OP_ONCE, except that in addition 54125 // the subject pointer must be put back to where it was at the start of the 54126 // assertion. 54127 54128 __3174: 54129 __3175: 54130 if !((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr) { 54131 goto __3185 54132 } 54133 (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr = (*Theapframe)(unsafe.Pointer(F)).Feptr 54134 __3185: 54135 ; 54136 (*Theapframe)(unsafe.Pointer(F)).Feptr = (*Theapframe)(unsafe.Pointer(P)).Feptr 54137 // Fall through 54138 54139 // For an atomic group, discard internal backtracking points. We must 54140 // also ensure that any remaining branches within the top-level of the group 54141 // are not tried. Do this by adjusting the code pointer within the backtrack 54142 // frame so that it points to the final branch. 54143 54144 __3176: 54145 (*Theapframe)(unsafe.Pointer(F)).Fback_frame = Tsize_t((int64(F) - int64(P)) / 1) 54146 __3186: 54147 54148 y = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(P)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(P)).Fecode + 2)))) 54149 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(P)).Fecode + uintptr(y)))) != OP_ALT) { 54150 goto __3189 54151 } 54152 goto __3188 54153 __3189: 54154 ; 54155 *(*TPCRE2_SPTR8)(unsafe.Pointer(P)) += TPCRE2_SPTR8(y) 54156 goto __3187 54157 __3187: 54158 goto __3186 54159 goto __3188 54160 __3188: 54161 ; 54162 goto __3168 54163 54164 // A matching negative assertion returns MATCH, which is turned into 54165 // NOMATCH at the assertion level. 54166 54167 __3177: 54168 __3178: 54169 rrc = DMATCH_MATCH 54170 goto RETURN_SWITCH 54171 54172 // At the end of a script run, apply the script-checking rules. This code 54173 // will never by exercised if Unicode support it not compiled, because in 54174 // that environment script runs cause an error at compile time. 54175 54176 __3179: 54177 if !!(X_pcre2_script_run_8(tls, (*Theapframe)(unsafe.Pointer(P)).Feptr, (*Theapframe)(unsafe.Pointer(F)).Feptr, utf) != 0) { 54178 goto __3190 54179 } 54180 rrc = DMATCH_NOMATCH 54181 goto RETURN_SWITCH 54182 __3190: 54183 ; 54184 54185 goto __3168 54186 54187 // Whole-pattern recursion is coded as a recurse into group 0, so it 54188 // won't be picked up here. Instead, we catch it when the OP_END is reached. 54189 // Other recursion is handled here. 54190 54191 __3180: 54192 __3181: 54193 __3182: 54194 __3183: 54195 number = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bracode + 4)))) 54196 54197 // Handle a recursively called group. We reinstate the previous set of 54198 // captures and then carry on after the recursion call. 54199 54200 if !((*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse == number) { 54201 goto __3191 54202 } 54203 54204 P = N - uintptr(frame_size) 54205 libc.Xmemcpy(tls, F+uintptr(uint64(uintptr(0)+128)), P+128, 54206 (*Theapframe)(unsafe.Pointer(P)).Foffset_top*Tsize_t(unsafe.Sizeof(Tsize_t(0)))) 54207 (*Theapframe)(unsafe.Pointer(F)).Foffset_top = (*Theapframe)(unsafe.Pointer(P)).Foffset_top 54208 (*Theapframe)(unsafe.Pointer(F)).Fcapture_last = (*Theapframe)(unsafe.Pointer(P)).Fcapture_last 54209 (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse = (*Theapframe)(unsafe.Pointer(P)).Fcurrent_recurse 54210 (*Theapframe)(unsafe.Pointer(F)).Fecode = (*Theapframe)(unsafe.Pointer(P)).Fecode + uintptr(1) + uintptr(DLINK_SIZE) 54211 goto __11 // With next opcode 54212 __3191: 54213 ; 54214 54215 // Deal with actual capturing. 54216 54217 offset = Tsize_t(number<<1 - Tuint32_t(2)) 54218 (*Theapframe)(unsafe.Pointer(F)).Fcapture_last = number 54219 *(*Tsize_t)(unsafe.Pointer(F + 128 + uintptr(offset)*8)) = Tsize_t((int64((*Theapframe)(unsafe.Pointer(P)).Feptr) - int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject)) / 1) 54220 *(*Tsize_t)(unsafe.Pointer(F + 128 + uintptr(offset+uint64(1))*8)) = Tsize_t((int64((*Theapframe)(unsafe.Pointer(F)).Feptr) - int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject)) / 1) 54221 if !(offset >= (*Theapframe)(unsafe.Pointer(F)).Foffset_top) { 54222 goto __3192 54223 } 54224 (*Theapframe)(unsafe.Pointer(F)).Foffset_top = offset + uint64(2) 54225 __3192: 54226 ; 54227 goto __3168 54228 __3168: 54229 ; // End actions relating to the starting opcode 54230 54231 // OP_KETRPOS is a possessive repeating ket. Remember the current position, 54232 // and return the MATCH_KETRPOS. This makes it possible to do the repeats one 54233 // at a time from the outer level. This must precede the empty string test - 54234 // in this case that test is done at the outer level. 54235 54236 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))) == OP_KETRPOS) { 54237 goto __3193 54238 } 54239 54240 libc.Xmemcpy(tls, P+uintptr(uint64(uintptr(0)+80)), 54241 F+uintptr(uint64(uintptr(0)+80)), 54242 frame_copy_size) 54243 rrc = -998 54244 goto RETURN_SWITCH 54245 54246 __3193: 54247 ; 54248 54249 // Handle the different kinds of closing brackets. A non-repeating ket 54250 // needs no special action, just continuing at this level. This also happens 54251 // for the repeating kets if the group matched no characters, in order to 54252 // forcibly break infinite loops. Otherwise, the repeating kets try the rest 54253 // of the pattern or restart from the preceding bracket, in the appropriate 54254 // order. 54255 54256 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) != OP_KET && (P == uintptr(0) || (*Theapframe)(unsafe.Pointer(F)).Feptr != (*Theapframe)(unsafe.Pointer(P)).Feptr)) { 54257 goto __3194 54258 } 54259 54260 if !(int32((*Theapframe)(unsafe.Pointer(F)).Fop) == OP_KETRMIN) { 54261 goto __3195 54262 } 54263 54264 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(1) + uintptr(DLINK_SIZE) 54265 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM6 54266 goto MATCH_RECURSE 54267 L_RM6: 54268 ; 54269 54270 if !(rrc != DMATCH_NOMATCH) { 54271 goto __3196 54272 } 54273 rrc = rrc 54274 goto RETURN_SWITCH 54275 __3196: 54276 ; 54277 54278 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) -= TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 2))))) 54279 goto __13 // End of ket processing 54280 __3195: 54281 ; 54282 54283 /* Repeat the maximum number of times (KETRMAX) */ 54284 54285 start_ecode = bracode 54286 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM7 54287 goto MATCH_RECURSE 54288 L_RM7: 54289 ; 54290 54291 if !(rrc != DMATCH_NOMATCH) { 54292 goto __3197 54293 } 54294 rrc = rrc 54295 goto RETURN_SWITCH 54296 __3197: 54297 ; 54298 54299 __3194: 54300 ; 54301 54302 // Carry on at this level for a non-repeating ket, or after matching an 54303 // empty string, or after repeating for a maximum number of times. 54304 54305 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(1 + DLINK_SIZE) 54306 goto __13 54307 54308 // ===================================================================== 54309 // Start and end of line assertions, not multiline mode. 54310 54311 __142: // Start of line, unless PCRE2_NOTBOL is set. 54312 if !((*Theapframe)(unsafe.Pointer(F)).Feptr != (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_NOTBOL != Tuint32_t(0)) { 54313 goto __3198 54314 } 54315 rrc = DMATCH_NOMATCH 54316 goto RETURN_SWITCH 54317 __3198: 54318 ; 54319 54320 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 54321 goto __13 54322 54323 __143: // Unconditional start of subject 54324 if !((*Theapframe)(unsafe.Pointer(F)).Feptr != (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject) { 54325 goto __3199 54326 } 54327 rrc = DMATCH_NOMATCH 54328 goto RETURN_SWITCH 54329 __3199: 54330 ; 54331 54332 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 54333 goto __13 54334 54335 // When PCRE2_NOTEOL is unset, assert before the subject end, or a 54336 // terminating newline unless PCRE2_DOLLAR_ENDONLY is set. 54337 54338 __144: 54339 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_NOTEOL != Tuint32_t(0)) { 54340 goto __3200 54341 } 54342 rrc = DMATCH_NOMATCH 54343 goto RETURN_SWITCH 54344 __3200: 54345 ; 54346 54347 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_DOLLAR_ENDONLY == Tuint32_t(0)) { 54348 goto __3201 54349 } 54350 goto ASSERT_NL_OR_EOS 54351 __3201: 54352 ; 54353 54354 // Fall through 54355 // Unconditional end of subject assertion (\z) 54356 54357 __145: 54358 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 54359 goto __3202 54360 } 54361 rrc = DMATCH_NOMATCH 54362 goto RETURN_SWITCH 54363 __3202: 54364 ; 54365 54366 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0) { 54367 goto __3203 54368 } 54369 54370 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 54371 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 54372 goto __3204 54373 } 54374 return -2 54375 __3204: 54376 ; 54377 __3203: 54378 ; 54379 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 54380 goto __13 54381 54382 // End of subject or ending \n assertion (\Z) 54383 54384 __146: 54385 ASSERT_NL_OR_EOS: 54386 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && (!(func() int32 { 54387 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 54388 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, (*Theapframe)(unsafe.Pointer(F)).Feptr, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+256, utf) != 0) 54389 } 54390 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260))) && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260 + 1))))) 54391 }() != 0) || (*Theapframe)(unsafe.Pointer(F)).Feptr != (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen))) { 54392 goto __3205 54393 } 54394 54395 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && (*Theapframe)(unsafe.Pointer(F)).Feptr+uintptr(1) >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_FIXED) && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260)))) { 54396 goto __3206 54397 } 54398 54399 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 54400 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 54401 goto __3207 54402 } 54403 return -2 54404 __3207: 54405 ; 54406 __3206: 54407 ; 54408 rrc = DMATCH_NOMATCH 54409 goto RETURN_SWITCH 54410 54411 __3205: 54412 ; 54413 54414 // Either at end of string or \n before end. 54415 54416 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0) { 54417 goto __3208 54418 } 54419 54420 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 54421 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 54422 goto __3209 54423 } 54424 return -2 54425 __3209: 54426 ; 54427 __3208: 54428 ; 54429 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 54430 goto __13 54431 54432 // ===================================================================== 54433 // Start and end of line assertions, multiline mode. 54434 54435 // Start of subject unless notbol, or after any newline except for one at 54436 // the very end, unless PCRE2_ALT_CIRCUMFLEX is set. 54437 54438 __147: 54439 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_NOTBOL != Tuint32_t(0) && (*Theapframe)(unsafe.Pointer(F)).Feptr == (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject) { 54440 goto __3210 54441 } 54442 rrc = DMATCH_NOMATCH 54443 goto RETURN_SWITCH 54444 __3210: 54445 ; 54446 54447 if !((*Theapframe)(unsafe.Pointer(F)).Feptr != (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject && ((*Theapframe)(unsafe.Pointer(F)).Feptr == (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_ALT_CIRCUMFLEX == Tuint32_t(0) || !(func() int32 { 54448 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 54449 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject && X_pcre2_was_newline_8(tls, (*Theapframe)(unsafe.Pointer(F)).Feptr, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject, mb+256, utf) != 0) 54450 } 54451 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject+uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr - uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260))) && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr - uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260 + 1))))) 54452 }() != 0))) { 54453 goto __3211 54454 } 54455 rrc = DMATCH_NOMATCH 54456 goto RETURN_SWITCH 54457 __3211: 54458 ; 54459 54460 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 54461 goto __13 54462 54463 // Assert before any newline, or before end of subject unless noteol is 54464 // set. 54465 54466 __148: 54467 if !((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 54468 goto __3212 54469 } 54470 54471 if !!(func() int32 { 54472 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 54473 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, (*Theapframe)(unsafe.Pointer(F)).Feptr, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+256, utf) != 0) 54474 } 54475 return libc.Bool32((*Theapframe)(unsafe.Pointer(F)).Feptr <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260))) && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260 + 1))))) 54476 }() != 0) { 54477 goto __3214 54478 } 54479 54480 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && (*Theapframe)(unsafe.Pointer(F)).Feptr+uintptr(1) >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_FIXED) && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260)))) { 54481 goto __3215 54482 } 54483 54484 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 54485 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 54486 goto __3216 54487 } 54488 return -2 54489 __3216: 54490 ; 54491 __3215: 54492 ; 54493 rrc = DMATCH_NOMATCH 54494 goto RETURN_SWITCH 54495 54496 __3214: 54497 ; 54498 goto __3213 54499 __3212: 54500 54501 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fmoptions&DPCRE2_NOTEOL != Tuint32_t(0)) { 54502 goto __3217 54503 } 54504 rrc = DMATCH_NOMATCH 54505 goto RETURN_SWITCH 54506 __3217: 54507 ; 54508 54509 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 54510 goto __3218 54511 } 54512 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 54513 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 54514 goto __3219 54515 } 54516 return -2 54517 __3219: 54518 ; 54519 __3218: 54520 ; 54521 54522 __3213: 54523 ; 54524 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 54525 goto __13 54526 54527 // ===================================================================== 54528 // Start of match assertion 54529 54530 __149: 54531 if !((*Theapframe)(unsafe.Pointer(F)).Feptr != (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject+uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_offset)) { 54532 goto __3220 54533 } 54534 rrc = DMATCH_NOMATCH 54535 goto RETURN_SWITCH 54536 __3220: 54537 ; 54538 54539 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 54540 goto __13 54541 54542 // ===================================================================== 54543 // Reset the start of match point 54544 54545 __150: 54546 (*Theapframe)(unsafe.Pointer(F)).Fstart_match = (*Theapframe)(unsafe.Pointer(F)).Feptr 54547 (*Theapframe)(unsafe.Pointer(F)).Fecode++ 54548 goto __13 54549 54550 // ===================================================================== 54551 // Word boundary assertions. Find out if the previous and current 54552 // characters are "word" characters. It takes a bit more work in UTF mode. 54553 // Characters > 255 are assumed to be "non-word" characters when PCRE2_UCP is 54554 // not set. When it is set, use Unicode properties if available, even when not 54555 // in UTF mode. Remember the earliest and latest consulted characters. 54556 54557 __151: 54558 __152: 54559 if !((*Theapframe)(unsafe.Pointer(F)).Feptr == (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject) { 54560 goto __3221 54561 } 54562 prev_is_word = DFALSE 54563 goto __3222 54564 __3221: 54565 54566 lastptr = (*Theapframe)(unsafe.Pointer(F)).Feptr - uintptr(1) 54567 if !(utf != 0) { 54568 goto __3223 54569 } 54570 54571 __3225: 54572 if !(uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr)))&0xc0 == 0x80) { 54573 goto __3226 54574 } 54575 lastptr-- 54576 goto __3225 54577 __3226: 54578 ; 54579 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr))) 54580 if !(fc >= 0xc0) { 54581 goto __3227 54582 } 54583 if !(fc&0x20 == Tuint32_t(0)) { 54584 goto __3228 54585 } 54586 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr + 1)))&0x3f 54587 goto __3229 54588 __3228: 54589 if !(fc&0x10 == Tuint32_t(0)) { 54590 goto __3230 54591 } 54592 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr + 2)))&0x3f 54593 goto __3231 54594 __3230: 54595 if !(fc&0x08 == Tuint32_t(0)) { 54596 goto __3232 54597 } 54598 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr + 3)))&0x3f 54599 goto __3233 54600 __3232: 54601 if !(fc&0x04 == Tuint32_t(0)) { 54602 goto __3234 54603 } 54604 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr + 4)))&0x3f 54605 goto __3235 54606 __3234: 54607 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr + 5)))&0x3f 54608 __3235: 54609 ; 54610 __3233: 54611 ; 54612 __3231: 54613 ; 54614 __3229: 54615 ; 54616 __3227: 54617 ; 54618 54619 goto __3224 54620 __3223: 54621 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(lastptr))) 54622 __3224: 54623 ; 54624 if !(lastptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr) { 54625 goto __3236 54626 } 54627 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr = lastptr 54628 __3236: 54629 ; 54630 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_UCP != Tuint32_t(0)) { 54631 goto __3237 54632 } 54633 54634 if !(fc == Tuint32_t('_')) { 54635 goto __3239 54636 } 54637 prev_is_word = DTRUE 54638 goto __3240 54639 __3239: 54640 54641 cat = int32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype]) 54642 prev_is_word = libc.Bool32(cat == ucp_L || cat == ucp_N) 54643 __3240: 54644 ; 54645 goto __3238 54646 __3237: 54647 prev_is_word = libc.Bool32(fc <= 255 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_word != 0) 54648 __3238: 54649 ; 54650 __3222: 54651 ; 54652 54653 // Get status of next character 54654 54655 if !((*Theapframe)(unsafe.Pointer(F)).Feptr >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 54656 goto __3241 54657 } 54658 54659 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial != 0)) { 54660 goto __3243 54661 } 54662 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DTRUE 54663 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) > 1) { 54664 goto __3244 54665 } 54666 return -2 54667 __3244: 54668 ; 54669 __3243: 54670 ; 54671 54672 cur_is_word = DFALSE 54673 goto __3242 54674 __3241: 54675 54676 nextptr = (*Theapframe)(unsafe.Pointer(F)).Feptr + uintptr(1) 54677 if !(utf != 0) { 54678 goto __3245 54679 } 54680 54681 __3247: 54682 if !(nextptr < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(nextptr)))&0xc0 == 0x80) { 54683 goto __3248 54684 } 54685 nextptr++ 54686 goto __3247 54687 __3248: 54688 ; 54689 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 54690 if !(fc >= 0xc0) { 54691 goto __3249 54692 } 54693 if !(fc&0x20 == Tuint32_t(0)) { 54694 goto __3250 54695 } 54696 fc = fc&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f 54697 goto __3251 54698 __3250: 54699 if !(fc&0x10 == Tuint32_t(0)) { 54700 goto __3252 54701 } 54702 fc = fc&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f 54703 goto __3253 54704 __3252: 54705 if !(fc&0x08 == Tuint32_t(0)) { 54706 goto __3254 54707 } 54708 fc = fc&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f 54709 goto __3255 54710 __3254: 54711 if !(fc&0x04 == Tuint32_t(0)) { 54712 goto __3256 54713 } 54714 fc = fc&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f 54715 goto __3257 54716 __3256: 54717 fc = fc&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr + 5)))&0x3f 54718 __3257: 54719 ; 54720 __3255: 54721 ; 54722 __3253: 54723 ; 54724 __3251: 54725 ; 54726 __3249: 54727 ; 54728 54729 goto __3246 54730 __3245: 54731 fc = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Feptr))) 54732 __3246: 54733 ; 54734 if !(nextptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr) { 54735 goto __3258 54736 } 54737 (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr = nextptr 54738 __3258: 54739 ; 54740 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpoptions&DPCRE2_UCP != Tuint32_t(0)) { 54741 goto __3259 54742 } 54743 54744 if !(fc == Tuint32_t('_')) { 54745 goto __3261 54746 } 54747 cur_is_word = DTRUE 54748 goto __3262 54749 __3261: 54750 54751 cat1 = int32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(fc)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(fc)%DUCD_BLOCK_SIZE])*12)).Fchartype]) 54752 cur_is_word = libc.Bool32(cat1 == ucp_L || cat1 == ucp_N) 54753 __3262: 54754 ; 54755 goto __3260 54756 __3259: 54757 cur_is_word = libc.Bool32(fc <= 255 && int32(*(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes + uintptr(fc))))&Dctype_word != 0) 54758 __3260: 54759 ; 54760 __3242: 54761 ; 54762 54763 // Now see if the situation is what we want 54764 54765 if !(func() int32 { 54766 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&(*Theapframe)(unsafe.Pointer(F)).Fecode, 1)))) == OP_WORD_BOUNDARY { 54767 return libc.Bool32(cur_is_word == prev_is_word) 54768 } 54769 return libc.Bool32(cur_is_word != prev_is_word) 54770 }() != 0) { 54771 goto __3263 54772 } 54773 rrc = DMATCH_NOMATCH 54774 goto RETURN_SWITCH 54775 __3263: 54776 ; 54777 54778 goto __13 54779 54780 // ===================================================================== 54781 // Backtracking (*VERB)s, with and without arguments. Note that if the 54782 // pattern is successfully matched, we do not come back from RMATCH. 54783 54784 __153: 54785 (*Theapframe)(unsafe.Pointer(F)).Fmark = libc.AssignPtrUintptr(mb+208, (*Theapframe)(unsafe.Pointer(F)).Fecode+uintptr(2)) 54786 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1))) 54787 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM12 54788 goto MATCH_RECURSE 54789 L_RM12: 54790 ; 54791 54792 // A return of MATCH_SKIP_ARG means that matching failed at SKIP with an 54793 // argument, and we must check whether that argument matches this MARK's 54794 // argument. It is passed back in mb->verb_skip_ptr. If it does match, we 54795 // return MATCH_SKIP with mb->verb_skip_ptr now pointing to the subject 54796 // position that corresponds to this mark. Otherwise, pass back the return 54797 // code unaltered. 54798 54799 if !(rrc == -994 && X_pcre2_strcmp_8(tls, (*Theapframe)(unsafe.Pointer(F)).Fecode+uintptr(2), (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_skip_ptr) == 0) { 54800 goto __3264 54801 } 54802 54803 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_skip_ptr = (*Theapframe)(unsafe.Pointer(F)).Feptr /* Pass back current position */ 54804 rrc = -995 54805 goto RETURN_SWITCH 54806 54807 __3264: 54808 ; 54809 rrc = rrc 54810 goto RETURN_SWITCH 54811 54812 __154: 54813 rrc = DMATCH_NOMATCH 54814 goto RETURN_SWITCH 54815 54816 // Record the current recursing group number in mb->verb_current_recurse 54817 // when a backtracking return such as MATCH_COMMIT is given. This enables the 54818 // recurse processing to catch verbs from within the recursion. 54819 54820 __155: 54821 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 54822 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM13 54823 goto MATCH_RECURSE 54824 L_RM13: 54825 ; 54826 54827 if !(rrc != DMATCH_NOMATCH) { 54828 goto __3265 54829 } 54830 rrc = rrc 54831 goto RETURN_SWITCH 54832 __3265: 54833 ; 54834 54835 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_current_recurse = (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse 54836 rrc = -997 54837 goto RETURN_SWITCH 54838 54839 __156: 54840 (*Theapframe)(unsafe.Pointer(F)).Fmark = libc.AssignPtrUintptr(mb+208, (*Theapframe)(unsafe.Pointer(F)).Fecode+uintptr(2)) 54841 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1))) 54842 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM36 54843 goto MATCH_RECURSE 54844 L_RM36: 54845 ; 54846 54847 if !(rrc != DMATCH_NOMATCH) { 54848 goto __3266 54849 } 54850 rrc = rrc 54851 goto RETURN_SWITCH 54852 __3266: 54853 ; 54854 54855 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_current_recurse = (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse 54856 rrc = -997 54857 goto RETURN_SWITCH 54858 54859 __157: 54860 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 54861 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM14 54862 goto MATCH_RECURSE 54863 L_RM14: 54864 ; 54865 54866 if !(rrc != DMATCH_NOMATCH) { 54867 goto __3267 54868 } 54869 rrc = rrc 54870 goto RETURN_SWITCH 54871 __3267: 54872 ; 54873 54874 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_current_recurse = (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse 54875 rrc = -996 54876 goto RETURN_SWITCH 54877 54878 __158: 54879 (*Theapframe)(unsafe.Pointer(F)).Fmark = libc.AssignPtrUintptr(mb+208, (*Theapframe)(unsafe.Pointer(F)).Fecode+uintptr(2)) 54880 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1))) 54881 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM15 54882 goto MATCH_RECURSE 54883 L_RM15: 54884 ; 54885 54886 if !(rrc != DMATCH_NOMATCH) { 54887 goto __3268 54888 } 54889 rrc = rrc 54890 goto RETURN_SWITCH 54891 __3268: 54892 ; 54893 54894 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_current_recurse = (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse 54895 rrc = -996 54896 goto RETURN_SWITCH 54897 54898 __159: 54899 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 54900 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM16 54901 goto MATCH_RECURSE 54902 L_RM16: 54903 ; 54904 54905 if !(rrc != DMATCH_NOMATCH) { 54906 goto __3269 54907 } 54908 rrc = rrc 54909 goto RETURN_SWITCH 54910 __3269: 54911 ; 54912 54913 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_skip_ptr = (*Theapframe)(unsafe.Pointer(F)).Feptr // Pass back current position 54914 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_current_recurse = (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse 54915 rrc = -995 54916 goto RETURN_SWITCH 54917 54918 // Note that, for Perl compatibility, SKIP with an argument does NOT set 54919 // nomatch_mark. When a pattern match ends with a SKIP_ARG for which there was 54920 // not a matching mark, we have to re-run the match, ignoring the SKIP_ARG 54921 // that failed and any that precede it (either they also failed, or were not 54922 // triggered). To do this, we maintain a count of executed SKIP_ARGs. If a 54923 // SKIP_ARG gets to top level, the match is re-run with mb->ignore_skip_arg 54924 // set to the count of the one that failed. 54925 54926 __160: 54927 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fskip_arg_count++ 54928 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fskip_arg_count <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fignore_skip_arg) { 54929 goto __3270 54930 } 54931 54932 *(*TPCRE2_SPTR8)(unsafe.Pointer(F)) += TPCRE2_SPTR8(int32(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) + int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1)))) 54933 goto __13 54934 __3270: 54935 ; 54936 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1))) 54937 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM17 54938 goto MATCH_RECURSE 54939 L_RM17: 54940 ; 54941 54942 if !(rrc != DMATCH_NOMATCH) { 54943 goto __3271 54944 } 54945 rrc = rrc 54946 goto RETURN_SWITCH 54947 __3271: 54948 ; 54949 54950 // Pass back the current skip name and return the special MATCH_SKIP_ARG 54951 // return code. This will either be caught by a matching MARK, or get to the 54952 // top, where it causes a rematch with mb->ignore_skip_arg set to the value of 54953 // mb->skip_arg_count. 54954 54955 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_skip_ptr = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(2) 54956 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_current_recurse = (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse 54957 rrc = -994 54958 goto RETURN_SWITCH 54959 54960 // For THEN (and THEN_ARG) we pass back the address of the opcode, so that 54961 // the branch in which it occurs can be determined. 54962 54963 __161: 54964 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) 54965 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM18 54966 goto MATCH_RECURSE 54967 L_RM18: 54968 ; 54969 54970 if !(rrc != DMATCH_NOMATCH) { 54971 goto __3272 54972 } 54973 rrc = rrc 54974 goto RETURN_SWITCH 54975 __3272: 54976 ; 54977 54978 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_ecode_ptr = (*Theapframe)(unsafe.Pointer(F)).Fecode 54979 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_current_recurse = (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse 54980 rrc = -993 54981 goto RETURN_SWITCH 54982 54983 __162: 54984 (*Theapframe)(unsafe.Pointer(F)).Fmark = libc.AssignPtrUintptr(mb+208, (*Theapframe)(unsafe.Pointer(F)).Fecode+uintptr(2)) 54985 start_ecode = (*Theapframe)(unsafe.Pointer(F)).Fecode + uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode))]) + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Theapframe)(unsafe.Pointer(F)).Fecode + 1))) 54986 (*Theapframe)(unsafe.Pointer(F)).Freturn_id = RM19 54987 goto MATCH_RECURSE 54988 L_RM19: 54989 ; 54990 54991 if !(rrc != DMATCH_NOMATCH) { 54992 goto __3273 54993 } 54994 rrc = rrc 54995 goto RETURN_SWITCH 54996 __3273: 54997 ; 54998 54999 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_ecode_ptr = (*Theapframe)(unsafe.Pointer(F)).Fecode 55000 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_current_recurse = (*Theapframe)(unsafe.Pointer(F)).Fcurrent_recurse 55001 rrc = -993 55002 goto RETURN_SWITCH 55003 55004 // ===================================================================== 55005 // There's been some horrible disaster. Arrival here can only mean there is 55006 // something seriously wrong in the code above or the OP_xxx definitions. 55007 55008 __163: 55009 return -44 55010 __13: 55011 ; 55012 55013 // Do not insert any code in here without much thought; it is assumed 55014 // that "continue" in the code above comes out to here to repeat the main 55015 // loop. 55016 55017 goto __11 55018 __11: 55019 goto __10 55020 goto __12 55021 __12: 55022 ; // End of main loop 55023 // Control never reaches here 55024 55025 // ========================================================================= 55026 // The RRETURN() macro jumps here. The number that is saved in Freturn_id 55027 // indicates which label we actually want to return to. The value in Frdepth is 55028 // the index number of the frame in the vector. The return value has been placed 55029 // in rrc. 55030 55031 RETURN_SWITCH: 55032 if !((*Theapframe)(unsafe.Pointer(F)).Feptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr) { 55033 goto __3274 55034 } 55035 (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr = (*Theapframe)(unsafe.Pointer(F)).Feptr 55036 __3274: 55037 ; 55038 if !((*Theapframe)(unsafe.Pointer(F)).Frdepth == Tuint32_t(0)) { 55039 goto __3275 55040 } 55041 return rrc 55042 __3275: 55043 ; // Exit from the top level 55044 F = F - uintptr((*Theapframe)(unsafe.Pointer(F)).Fback_frame) // Backtrack 55045 *(*Tuint32_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fcb + 104)) |= DPCRE2_CALLOUT_BACKTRACK // Note for callouts 55046 55047 switch int32((*Theapframe)(unsafe.Pointer(F)).Freturn_id) { 55048 case 1: 55049 goto __3277 55050 case 2: 55051 goto __3278 55052 case 3: 55053 goto __3279 55054 case 4: 55055 goto __3280 55056 case 5: 55057 goto __3281 55058 case 6: 55059 goto __3282 55060 case 7: 55061 goto __3283 55062 case 8: 55063 goto __3284 55064 case 9: 55065 goto __3285 55066 case 10: 55067 goto __3286 55068 case 11: 55069 goto __3287 55070 case 12: 55071 goto __3288 55072 case 13: 55073 goto __3289 55074 case 14: 55075 goto __3290 55076 case 15: 55077 goto __3291 55078 case 16: 55079 goto __3292 55080 case 17: 55081 goto __3293 55082 case 18: 55083 goto __3294 55084 case 19: 55085 goto __3295 55086 case 20: 55087 goto __3296 55088 case 21: 55089 goto __3297 55090 case 22: 55091 goto __3298 55092 case 23: 55093 goto __3299 55094 case 24: 55095 goto __3300 55096 case 25: 55097 goto __3301 55098 case 26: 55099 goto __3302 55100 case 27: 55101 goto __3303 55102 case 28: 55103 goto __3304 55104 case 29: 55105 goto __3305 55106 case 30: 55107 goto __3306 55108 case 31: 55109 goto __3307 55110 case 32: 55111 goto __3308 55112 case 33: 55113 goto __3309 55114 case 34: 55115 goto __3310 55116 case 35: 55117 goto __3311 55118 case 36: 55119 goto __3312 55120 55121 case 100: 55122 goto __3313 55123 case 101: 55124 goto __3314 55125 55126 case 200: 55127 goto __3315 55128 case 201: 55129 goto __3316 55130 case 202: 55131 goto __3317 55132 case 203: 55133 goto __3318 55134 case 204: 55135 goto __3319 55136 case 205: 55137 goto __3320 55138 case 206: 55139 goto __3321 55140 case 207: 55141 goto __3322 55142 case 208: 55143 goto __3323 55144 case 209: 55145 goto __3324 55146 case 210: 55147 goto __3325 55148 case 211: 55149 goto __3326 55150 case 212: 55151 goto __3327 55152 case 213: 55153 goto __3328 55154 case 214: 55155 goto __3329 55156 case 215: 55157 goto __3330 55158 case 216: 55159 goto __3331 55160 case 217: 55161 goto __3332 55162 case 218: 55163 goto __3333 55164 case 219: 55165 goto __3334 55166 case 220: 55167 goto __3335 55168 case 221: 55169 goto __3336 55170 case 222: 55171 goto __3337 55172 case 223: 55173 goto __3338 55174 case 224: 55175 goto __3339 55176 case 225: 55177 goto __3340 55178 55179 default: 55180 goto __3341 55181 } 55182 goto __3276 55183 55184 __3277: 55185 goto L_RM1 55186 __3278: 55187 goto L_RM2 55188 __3279: 55189 goto L_RM3 55190 __3280: 55191 goto L_RM4 55192 __3281: 55193 goto L_RM5 55194 __3282: 55195 goto L_RM6 55196 __3283: 55197 goto L_RM7 55198 __3284: 55199 goto L_RM8 55200 __3285: 55201 goto L_RM9 55202 __3286: 55203 goto L_RM10 55204 __3287: 55205 goto L_RM11 55206 __3288: 55207 goto L_RM12 55208 __3289: 55209 goto L_RM13 55210 __3290: 55211 goto L_RM14 55212 __3291: 55213 goto L_RM15 55214 __3292: 55215 goto L_RM16 55216 __3293: 55217 goto L_RM17 55218 __3294: 55219 goto L_RM18 55220 __3295: 55221 goto L_RM19 55222 __3296: 55223 goto L_RM20 55224 __3297: 55225 goto L_RM21 55226 __3298: 55227 goto L_RM22 55228 __3299: 55229 goto L_RM23 55230 __3300: 55231 goto L_RM24 55232 __3301: 55233 goto L_RM25 55234 __3302: 55235 goto L_RM26 55236 __3303: 55237 goto L_RM27 55238 __3304: 55239 goto L_RM28 55240 __3305: 55241 goto L_RM29 55242 __3306: 55243 goto L_RM30 55244 __3307: 55245 goto L_RM31 55246 __3308: 55247 goto L_RM32 55248 __3309: 55249 goto L_RM33 55250 __3310: 55251 goto L_RM34 55252 __3311: 55253 goto L_RM35 55254 __3312: 55255 goto L_RM36 55256 55257 __3313: 55258 goto L_RM100 55259 __3314: 55260 goto L_RM101 55261 55262 __3315: 55263 goto L_RM200 55264 __3316: 55265 goto L_RM201 55266 __3317: 55267 goto L_RM202 55268 __3318: 55269 goto L_RM203 55270 __3319: 55271 goto L_RM204 55272 __3320: 55273 goto L_RM205 55274 __3321: 55275 goto L_RM206 55276 __3322: 55277 goto L_RM207 55278 __3323: 55279 goto L_RM208 55280 __3324: 55281 goto L_RM209 55282 __3325: 55283 goto L_RM210 55284 __3326: 55285 goto L_RM211 55286 __3327: 55287 goto L_RM212 55288 __3328: 55289 goto L_RM213 55290 __3329: 55291 goto L_RM214 55292 __3330: 55293 goto L_RM215 55294 __3331: 55295 goto L_RM216 55296 __3332: 55297 goto L_RM217 55298 __3333: 55299 goto L_RM218 55300 __3334: 55301 goto L_RM219 55302 __3335: 55303 goto L_RM220 55304 __3336: 55305 goto L_RM221 55306 __3337: 55307 goto L_RM222 55308 __3338: 55309 goto L_RM223 55310 __3339: 55311 goto L_RM224 55312 __3340: 55313 goto L_RM225 55314 55315 __3341: 55316 return -44 55317 __3276: 55318 ; 55319 return int32(0) 55320 } 55321 55322 // ************************************************ 55323 // 55324 // Match a Regular Expression * 55325 // 55326 55327 // This function applies a compiled pattern to a subject string and picks out 55328 // portions of the string if it matches. Two elements in the vector are set for 55329 // each substring: the offsets to the start and end of the substring. 55330 // 55331 // Arguments: 55332 // code points to the compiled expression 55333 // subject points to the subject string 55334 // length length of subject string (may contain binary zeros) 55335 // start_offset where to start in the subject string 55336 // options option bits 55337 // match_data points to a match_data block 55338 // mcontext points a PCRE2 context 55339 // 55340 // Returns: > 0 => success; value is the number of ovector pairs filled 55341 // = 0 => success, but ovector is not big enough 55342 // = -1 => failed to match (PCRE2_ERROR_NOMATCH) 55343 // = -2 => partial match (PCRE2_ERROR_PARTIAL) 55344 // < -2 => some kind of unexpected problem 55345 55346 func Xpcre2_match_8(tls *libc.TLS, code uintptr, subject TPCRE2_SPTR8, length Tsize_t, start_offset Tsize_t, options Tuint32_t, match_data uintptr, mcontext uintptr) int32 { /* pcre2_match.c:6297:1: */ 55347 bp := tls.Alloc(20880) 55348 defer tls.Free(20880) 55349 55350 var rc int32 55351 var was_zero_terminated int32 55352 var start_bits uintptr 55353 var re uintptr 55354 var anchored TBOOL 55355 var firstline TBOOL 55356 var has_first_cu TBOOL 55357 var has_req_cu TBOOL 55358 var startline TBOOL 55359 var memchr_found_first_cu TPCRE2_SPTR8 55360 var memchr_found_first_cu2 TPCRE2_SPTR8 55361 var first_cu TPCRE2_UCHAR8 55362 var first_cu2 TPCRE2_UCHAR8 55363 var req_cu TPCRE2_UCHAR8 55364 var req_cu2 TPCRE2_UCHAR8 55365 var bumpalong_limit TPCRE2_SPTR8 55366 var end_subject TPCRE2_SPTR8 55367 var true_end_subject TPCRE2_SPTR8 55368 var start_match TPCRE2_SPTR8 55369 var req_cu_ptr TPCRE2_SPTR8 55370 var start_partial TPCRE2_SPTR8 55371 var match_partial TPCRE2_SPTR8 55372 55373 // This flag is needed even when Unicode is not supported for convenience 55374 // (it is used by the IS_NEWLINE macro). 55375 55376 var utf TBOOL 55377 var ucp TBOOL 55378 var allow_invalid TBOOL 55379 var fragment_options Tuint32_t 55380 var frame_size Tsize_t 55381 55382 // We need to have mb as a pointer to a match block, because the IS_NEWLINE 55383 // macro is used below, and it expects NLBLOCK to be defined as a pointer. 55384 55385 // var cb Tpcre2_callout_block_8 at bp+20768, 112 55386 55387 // var actual_match_block Tmatch_block_8 at bp, 288 55388 55389 var mb uintptr 55390 55391 // Allocate an initial vector of backtracking frames on the stack. If this 55392 // proves to be too small, it is replaced by a larger one on the heap. To get a 55393 // vector of the size required that is aligned for pointers, allocate it as a 55394 // vector of pointers. 55395 55396 // var stack_frames_vector [2560]TPCRE2_SPTR8 at bp+288, 20480 55397 55398 var i uint32 55399 var skipped_bad_start TBOOL 55400 var t TPCRE2_SPTR8 55401 var c TPCRE2_UCHAR8 55402 var ok TBOOL 55403 // In 16-bit and 32_bit modes we have to do our own search, so can 55404 // look for both cases at once. 55405 55406 // In 8-bit mode, the use of memchr() gives a big speed up, even 55407 // though we have to call it twice in order to find the earliest 55408 // occurrence of the code unit in either of its cases. Caching is used 55409 // to remember the positions of previously found code units. This can 55410 // make a huge difference when the strings are very long and only one 55411 // case is actually present. 55412 55413 var pp1 TPCRE2_SPTR8 55414 var pp2 TPCRE2_SPTR8 55415 var searchlength Tsize_t 55416 var c1 Tuint32_t 55417 var pp TPCRE2_SPTR8 55418 var check_length Tsize_t 55419 var p TPCRE2_SPTR8 55420 var new_start_match TPCRE2_SPTR8 55421 was_zero_terminated = 0 55422 start_bits = uintptr(0) 55423 re = code 55424 has_first_cu = DFALSE 55425 has_req_cu = DFALSE 55426 first_cu = TPCRE2_UCHAR8(0) 55427 first_cu2 = TPCRE2_UCHAR8(0) 55428 req_cu = TPCRE2_UCHAR8(0) 55429 req_cu2 = TPCRE2_UCHAR8(0) 55430 utf = DFALSE 55431 ucp = DFALSE 55432 fragment_options = Tuint32_t(0) 55433 mb = bp /* &actual_match_block */ 55434 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstack_frames = bp + 288 /* stack_frames_vector */ 55435 55436 // Recognize NULL, length 0 as an empty string. 55437 55438 if !(subject == uintptr(0) && length == uint64(0)) { 55439 goto __1 55440 } 55441 subject = ts + 797 /* "" */ 55442 __1: 55443 ; 55444 55445 // Plausibility checks 55446 55447 if !(options&libc.CplUint32(DPCRE2_ANCHORED|DPCRE2_ENDANCHORED|DPCRE2_NOTBOL|DPCRE2_NOTEOL|DPCRE2_NOTEMPTY|DPCRE2_NOTEMPTY_ATSTART|DPCRE2_NO_UTF_CHECK|DPCRE2_PARTIAL_HARD|DPCRE2_PARTIAL_SOFT|DPCRE2_NO_JIT|DPCRE2_COPY_MATCHED_SUBJECT) != Tuint32_t(0)) { 55448 goto __2 55449 } 55450 return -34 55451 __2: 55452 ; 55453 if !(code == uintptr(0) || subject == uintptr(0) || match_data == uintptr(0)) { 55454 goto __3 55455 } 55456 return -51 55457 __3: 55458 ; 55459 55460 start_match = subject + uintptr(start_offset) 55461 req_cu_ptr = start_match - uintptr(1) 55462 if !(length == libc.CplUint64(uint64(0))) { 55463 goto __4 55464 } 55465 55466 length = X_pcre2_strlen_8(tls, subject) 55467 was_zero_terminated = 1 55468 __4: 55469 ; 55470 true_end_subject = libc.AssignUintptr(&end_subject, subject+uintptr(length)) 55471 55472 if !(start_offset > length) { 55473 goto __5 55474 } 55475 return -33 55476 __5: 55477 ; 55478 55479 // Check that the first field in the block is the magic number. 55480 55481 if !(uint64((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmagic_number) != DMAGIC_NUMBER) { 55482 goto __6 55483 } 55484 return -31 55485 __6: 55486 ; 55487 55488 // Check the code unit width. 55489 55490 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_MODE8|DPCRE2_MODE16|DPCRE2_MODE32) != Tuint32_t(DPCRE2_CODE_UNIT_WIDTH/8)) { 55491 goto __7 55492 } 55493 return -32 55494 __7: 55495 ; 55496 55497 // PCRE2_NOTEMPTY and PCRE2_NOTEMPTY_ATSTART are match-time flags in the 55498 // options variable for this function. Users of PCRE2 who are not calling the 55499 // function directly would like to have a way of setting these flags, in the same 55500 // way that they can set pcre2_compile() flags like PCRE2_NO_AUTOPOSSESS with 55501 // constructions like (*NO_AUTOPOSSESS). To enable this, (*NOTEMPTY) and 55502 // (*NOTEMPTY_ATSTART) set bits in the pattern's "flag" function which we now 55503 // transfer to the options for this function. The bits are guaranteed to be 55504 // adjacent, but do not have the same values. This bit of Boolean trickery assumes 55505 // that the match-time bits are not more significant than the flag bits. If by 55506 // accident this is not the case, a compile-time division by zero error will 55507 // occur. 55508 55509 options = options | (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_NOTEMPTY_SET|DPCRE2_NE_ATST_SET)/(uint32((DPCRE2_NOTEMPTY_SET|DPCRE2_NE_ATST_SET)&(libc.CplInt32(DPCRE2_NOTEMPTY_SET|DPCRE2_NE_ATST_SET)+1))/((DPCRE2_NOTEMPTY|DPCRE2_NOTEMPTY_ATSTART)&(libc.CplUint32(DPCRE2_NOTEMPTY|DPCRE2_NOTEMPTY_ATSTART)+uint32(1)))) 55510 55511 // If the pattern was successfully studied with JIT support, we will run the 55512 // JIT executable instead of the rest of this function. Most options must be set 55513 // at compile time for the JIT code to be usable. 55514 55515 // Initialize UTF/UCP parameters. 55516 55517 utf = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_UTF != Tuint32_t(0)) 55518 allow_invalid = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_MATCH_INVALID_UTF != Tuint32_t(0)) 55519 ucp = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_UCP != Tuint32_t(0)) 55520 55521 // Convert the partial matching flags into an integer. 55522 55523 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial = func() uint16 { 55524 if options&DPCRE2_PARTIAL_HARD != Tuint32_t(0) { 55525 return uint16(2) 55526 } 55527 return func() uint16 { 55528 if options&DPCRE2_PARTIAL_SOFT != Tuint32_t(0) { 55529 return uint16(1) 55530 } 55531 return uint16(0) 55532 }() 55533 }() 55534 55535 // Partial matching and PCRE2_ENDANCHORED are currently not allowed at the same 55536 // time. 55537 55538 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) != 0 && ((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options|options)&DPCRE2_ENDANCHORED != Tuint32_t(0)) { 55539 goto __8 55540 } 55541 return -34 55542 __8: 55543 ; 55544 55545 // It is an error to set an offset limit without setting the flag at compile 55546 // time. 55547 55548 if !(mcontext != uintptr(0) && (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Foffset_limit != libc.CplUint64(uint64(0)) && (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_USE_OFFSET_LIMIT == Tuint32_t(0)) { 55549 goto __9 55550 } 55551 return -56 55552 __9: 55553 ; 55554 55555 // If the match data block was previously used with PCRE2_COPY_MATCHED_SUBJECT, 55556 // free the memory that was obtained. Set the field to NULL for no match cases. 55557 55558 if !(uint32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fflags)&DPCRE2_MD_COPIED_SUBJECT != uint32(0)) { 55559 goto __10 55560 } 55561 55562 (*struct { 55563 f func(*libc.TLS, uintptr, uintptr) 55564 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmemctl.Ffree})).f(tls, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject, 55565 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmemctl.Fmemory_data) 55566 *(*Tuint8_t)(unsafe.Pointer(match_data + 73)) &= libc.Uint8FromUint32(libc.CplUint32(DPCRE2_MD_COPIED_SUBJECT)) 55567 __10: 55568 ; 55569 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject = uintptr(0) 55570 55571 // Zero the error offset in case the first code unit is invalid UTF. 55572 55573 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fstartchar = uint64(0) 55574 55575 // ============================= JIT matching ============================== 55576 55577 // Prepare for JIT matching. Check a UTF string for validity unless no check is 55578 // requested or invalid UTF can be handled. We check only the portion of the 55579 // subject that might be be inspected during matching - from the offset minus the 55580 // maximum lookbehind to the given length. This saves time when a small part of a 55581 // large subject is being matched by the use of a starting offset. Note that the 55582 // maximum lookbehind is a number of characters, not code units. 55583 55584 // ========================= End of JIT matching ========================== 55585 55586 // Proceed with non-JIT matching. The default is to allow lookbehinds to the 55587 // start of the subject. A UTF check when there is a non-zero offset may change 55588 // this. 55589 55590 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject = subject 55591 55592 // If a UTF subject string was not checked for validity in the JIT code above, 55593 // check it here, and handle support for invalid UTF strings. The check above 55594 // happens only when invalid UTF is not supported and PCRE2_NO_CHECK_UTF is unset. 55595 // If we get here in those circumstances, it means the subject string is valid, 55596 // but for some reason JIT matching was not successful. There is no need to check 55597 // the subject again. 55598 // 55599 // We check only the portion of the subject that might be be inspected during 55600 // matching - from the offset minus the maximum lookbehind to the given length. 55601 // This saves time when a small part of a large subject is being matched by the 55602 // use of a starting offset. Note that the maximum lookbehind is a number of 55603 // characters, not code units. 55604 // 55605 // Note also that support for invalid UTF forces a check, overriding the setting 55606 // of PCRE2_NO_CHECK_UTF. 55607 55608 if !(utf != 0 && (options&DPCRE2_NO_UTF_CHECK == Tuint32_t(0) || allow_invalid != 0)) { 55609 goto __11 55610 } 55611 55612 skipped_bad_start = DFALSE 55613 55614 // For 8-bit and 16-bit UTF, check that the first code unit is a valid 55615 // character start. If we are handling invalid UTF, just skip over such code 55616 // units. Otherwise, give an appropriate error. 55617 55618 if !(allow_invalid != 0) { 55619 goto __12 55620 } 55621 55622 __14: 55623 if !(start_match < end_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match)))&0xc0 == 0x80) { 55624 goto __15 55625 } 55626 55627 start_match++ 55628 skipped_bad_start = DTRUE 55629 goto __14 55630 __15: 55631 ; 55632 goto __13 55633 __12: 55634 if !(start_match < end_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match)))&0xc0 == 0x80) { 55635 goto __16 55636 } 55637 55638 if !(start_offset > uint64(0)) { 55639 goto __17 55640 } 55641 return -36 55642 __17: 55643 ; 55644 return -22 // Isolated 0x80 byte 55645 __16: 55646 ; 55647 __13: 55648 ; 55649 55650 // The mb->check_subject field points to the start of UTF checking; 55651 // lookbehinds can go back no further than this. 55652 55653 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject = start_match 55654 55655 // Move back by the maximum lookbehind, just in case it happens at the very 55656 // start of matching, but don't do this if we skipped bad 8-bit or 16-bit code 55657 // units above. 55658 55659 if !!(skipped_bad_start != 0) { 55660 goto __18 55661 } 55662 55663 i = uint32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmax_lookbehind) 55664 __19: 55665 if !(i > uint32(0) && (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject > subject) { 55666 goto __21 55667 } 55668 55669 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject-- 55670 __22: 55671 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject > subject && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject)))&0xc0 == 0x80) { 55672 goto __23 55673 } 55674 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject-- 55675 goto __22 55676 __23: 55677 ; 55678 goto __20 55679 __20: 55680 i-- 55681 goto __19 55682 goto __21 55683 __21: 55684 ; 55685 __18: 55686 ; 55687 55688 // Validate the relevant portion of the subject. There's a loop in case we 55689 // encounter bad UTF in the characters preceding start_match which we are 55690 // scanning because of a lookbehind. 55691 55692 __24: 55693 55694 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc = X_pcre2_valid_utf_8(tls, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject, 55695 length-Tsize_t((int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject)-int64(subject))/1), match_data+64) 55696 55697 if !((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc == 0) { 55698 goto __27 55699 } 55700 goto __26 55701 __27: 55702 ; // Valid UTF string 55703 55704 // Invalid UTF string. Adjust the offset to be an absolute offset in the 55705 // whole string. If we are handling invalid UTF strings, set end_subject to 55706 // stop before the bad code unit, and set the options to "not end of line". 55707 // Otherwise return the error. 55708 55709 *(*Tsize_t)(unsafe.Pointer(match_data + 64)) += Tsize_t((int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject) - int64(subject)) / 1) 55710 if !(!(allow_invalid != 0) || (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc > 0) { 55711 goto __28 55712 } 55713 return (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc 55714 __28: 55715 ; 55716 end_subject = subject + uintptr((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fstartchar) 55717 55718 // If the end precedes start_match, it means there is invalid UTF in the 55719 // extra code units we reversed over because of a lookbehind. Advance past the 55720 // first bad code unit, and then skip invalid character starting code units in 55721 // 8-bit and 16-bit modes, and try again with the original end point. 55722 55723 if !(end_subject < start_match) { 55724 goto __29 55725 } 55726 55727 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject = end_subject + uintptr(1) 55728 __31: 55729 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject < start_match && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject)))&0xc0 == 0x80) { 55730 goto __32 55731 } 55732 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject++ 55733 goto __31 55734 __32: 55735 ; 55736 end_subject = true_end_subject 55737 goto __30 55738 __29: 55739 55740 fragment_options = DPCRE2_NOTEOL 55741 goto __26 55742 __30: 55743 ; 55744 goto __25 55745 __25: 55746 goto __24 55747 goto __26 55748 __26: 55749 ; 55750 __11: 55751 ; 55752 55753 // A NULL match context means "use a default context", but we take the memory 55754 // control functions from the pattern. 55755 55756 if !(mcontext == uintptr(0)) { 55757 goto __33 55758 } 55759 55760 mcontext = uintptr(unsafe.Pointer(&X_pcre2_default_match_context_8)) 55761 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmemctl = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmemctl 55762 goto __34 55763 __33: 55764 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmemctl = (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fmemctl 55765 __34: 55766 ; 55767 55768 anchored = libc.Bool32(((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options|options)&DPCRE2_ANCHORED != Tuint32_t(0)) 55769 firstline = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_FIRSTLINE != Tuint32_t(0)) 55770 startline = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_STARTLINE) != Tuint32_t(0)) 55771 if (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Foffset_limit == libc.CplUint64(uint64(0)) { 55772 bumpalong_limit = true_end_subject 55773 } else { 55774 bumpalong_limit = subject + uintptr((*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Foffset_limit) 55775 } 55776 55777 // Initialize and set up the fixed fields in the callout block, with a pointer 55778 // in the match block. 55779 55780 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcb = bp + 20768 /* &cb */ 55781 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 20768 /* &cb */)).Fversion = Tuint32_t(2) 55782 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 20768 /* &cb */)).Fsubject = subject 55783 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 20768 /* &cb */)).Fsubject_length = Tsize_t((int64(end_subject) - int64(subject)) / 1) 55784 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 20768 /* &cb */)).Fcallout_flags = Tuint32_t(0) 55785 55786 // Fill in the remaining fields in the match block, except for moptions, which 55787 // gets set later. 55788 55789 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcallout = (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fcallout 55790 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcallout_data = (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fcallout_data 55791 55792 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject = subject 55793 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_offset = start_offset 55794 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject = end_subject 55795 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhasthen = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_HASTHEN) != Tuint32_t(0)) 55796 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fallowemptypartial = libc.Bool32(int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmax_lookbehind) > 0 || (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_MATCH_EMPTY) != Tuint32_t(0)) 55797 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fpoptions = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options // Pattern options 55798 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fignore_skip_arg = Tuint32_t(0) 55799 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmark = libc.AssignPtrUintptr(mb+208, uintptr(0)) // In case never set 55800 55801 // The name table is needed for finding all the numbers associated with a 55802 // given name, for condition testing. The code follows the name table. 55803 55804 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fname_table = re + uintptr(uint64(unsafe.Sizeof(Tpcre2_real_code_8{}))) 55805 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fname_count = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_count 55806 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fname_entry_size = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_entry_size 55807 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_code = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fname_table + uintptr(int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_count)*int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_entry_size)) 55808 55809 // Process the \R and newline settings. 55810 55811 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fbsr_convention = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fbsr_convention 55812 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype = Tuint32_t(DNLTYPE_FIXED) 55813 switch int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fnewline_convention) { 55814 case DPCRE2_NEWLINE_CR: 55815 goto __36 55816 55817 case DPCRE2_NEWLINE_LF: 55818 goto __37 55819 55820 case DPCRE2_NEWLINE_NUL: 55821 goto __38 55822 55823 case DPCRE2_NEWLINE_CRLF: 55824 goto __39 55825 55826 case DPCRE2_NEWLINE_ANY: 55827 goto __40 55828 55829 case DPCRE2_NEWLINE_ANYCRLF: 55830 goto __41 55831 55832 default: 55833 goto __42 55834 } 55835 goto __35 55836 55837 __36: 55838 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen = Tuint32_t(1) 55839 *(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260)) = TPCRE2_UCHAR8('\015') 55840 goto __35 55841 55842 __37: 55843 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen = Tuint32_t(1) 55844 *(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260)) = TPCRE2_UCHAR8('\012') 55845 goto __35 55846 55847 __38: 55848 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen = Tuint32_t(1) 55849 *(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260)) = TPCRE2_UCHAR8(0) 55850 goto __35 55851 55852 __39: 55853 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen = Tuint32_t(2) 55854 *(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260)) = TPCRE2_UCHAR8('\015') 55855 *(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260 + 1)) = TPCRE2_UCHAR8('\012') 55856 goto __35 55857 55858 __40: 55859 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype = Tuint32_t(DNLTYPE_ANY) 55860 goto __35 55861 55862 __41: 55863 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype = Tuint32_t(DNLTYPE_ANYCRLF) 55864 goto __35 55865 55866 __42: 55867 return -44 55868 __35: 55869 ; 55870 55871 // The backtracking frames have fixed data at the front, and a PCRE2_SIZE 55872 // vector at the end, whose size depends on the number of capturing parentheses in 55873 // the pattern. It is not used at all if there are no capturing parentheses. 55874 // 55875 // frame_size is the total size of each frame 55876 // mb->frame_vector_size is the total usable size of the vector (rounded down 55877 // to a whole number of frames) 55878 // 55879 // The last of these is changed within the match() function if the frame vector 55880 // has to be expanded. We therefore put it into the match block so that it is 55881 // correct when calling match() more than once for non-anchored patterns. 55882 // 55883 // We must also pad frame_size for alignment to ensure subsequent frames are as 55884 // aligned as heapframe. Whilst ovector is word-aligned due to being a PCRE2_SIZE 55885 // array, that does not guarantee it is suitably aligned for pointers, as some 55886 // architectures have pointers that are larger than a size_t. 55887 55888 frame_size = (uint64(uintptr(0)+128) + uint64(int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftop_bracket)*2)*uint64(unsafe.Sizeof(Tsize_t(0))) + uint64(uintptr(0)+8) - uint64(1)) & libc.CplUint64(uint64(uintptr(0)+8)-uint64(1)) 55889 55890 // Limits set in the pattern override the match context only if they are 55891 // smaller. 55892 55893 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fheap_limit = func() uint64 { 55894 if (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fheap_limit < (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_heap { 55895 return uint64((*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fheap_limit) 55896 } 55897 return uint64((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_heap) 55898 }() 55899 55900 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_limit = func() uint32 { 55901 if (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fmatch_limit < (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_match { 55902 return (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fmatch_limit 55903 } 55904 return (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_match 55905 }() 55906 55907 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_limit_depth = func() uint32 { 55908 if (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fdepth_limit < (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_depth { 55909 return (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fdepth_limit 55910 } 55911 return (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_depth 55912 }() 55913 55914 // If a pattern has very many capturing parentheses, the frame size may be very 55915 // large. Ensure that there are at least 10 available frames by getting an initial 55916 // vector on the heap if necessary, except when the heap limit prevents this. Get 55917 // fewer if possible. (The heap limit is in kibibytes.) 55918 55919 if !(frame_size <= uint64(DSTART_FRAMES_SIZE/10)) { 55920 goto __43 55921 } 55922 55923 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstack_frames // Initial frame vector on the stack 55924 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fframe_vector_size = uint64(DSTART_FRAMES_SIZE) / frame_size * frame_size 55925 goto __44 55926 __43: 55927 55928 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fframe_vector_size = frame_size * uint64(10) 55929 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fframe_vector_size/uint64(1024) > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fheap_limit) { 55930 goto __45 55931 } 55932 55933 if !(frame_size > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fheap_limit*uint64(1024)) { 55934 goto __46 55935 } 55936 return -63 55937 __46: 55938 ; 55939 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fframe_vector_size = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fheap_limit * uint64(1024) / frame_size * frame_size 55940 __45: 55941 ; 55942 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames = (*struct { 55943 f func(*libc.TLS, Tsize_t, uintptr) uintptr 55944 })(unsafe.Pointer(&struct{ uintptr }{(*Tmatch_block_8)(unsafe.Pointer(mb)).Fmemctl.Fmalloc})).f(tls, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fframe_vector_size, 55945 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmemctl.Fmemory_data) 55946 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames == uintptr(0)) { 55947 goto __47 55948 } 55949 return -48 55950 __47: 55951 ; 55952 __44: 55953 ; 55954 55955 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames_top = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames + uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fframe_vector_size) 55956 55957 // Write to the ovector within the first frame to mark every capture unset and 55958 // to avoid uninitialized memory read errors when it is copied to a new frame. 55959 55960 libc.Xmemset(tls, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames+uintptr(uint64(uintptr(0)+128)), 0xff, 55961 frame_size-Tsize_t(uintptr(0)+128)) 55962 55963 // Pointers to the individual character tables 55964 55965 (*Tmatch_block_8)(unsafe.Pointer(mb)).Flcc = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftables + uintptr(Dlcc_offset) 55966 (*Tmatch_block_8)(unsafe.Pointer(mb)).Ffcc = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftables + uintptr(Dfcc_offset) 55967 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fctypes = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftables + uintptr(Dcbits_offset+Dcbit_length) 55968 55969 // Set up the first code unit to match, if available. If there's no first code 55970 // unit there may be a bitmap of possible first characters. 55971 55972 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_FIRSTSET) != Tuint32_t(0)) { 55973 goto __48 55974 } 55975 55976 has_first_cu = DTRUE 55977 first_cu = libc.AssignUint8(&first_cu2, TPCRE2_UCHAR8((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ffirst_codeunit)) 55978 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_FIRSTCASELESS) != Tuint32_t(0)) { 55979 goto __50 55980 } 55981 55982 first_cu2 = *(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Ffcc + uintptr(first_cu))) 55983 if !(int32(first_cu) > 127 && ucp != 0 && !(utf != 0)) { 55984 goto __51 55985 } 55986 first_cu2 = TPCRE2_UCHAR8(Tuint32_t(int32(first_cu) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(first_cu)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(first_cu)%DUCD_BLOCK_SIZE])*12)).Fother_case)) 55987 __51: 55988 ; 55989 __50: 55990 ; 55991 goto __49 55992 __48: 55993 if !(!(startline != 0) && (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_FIRSTMAPSET) != Tuint32_t(0)) { 55994 goto __52 55995 } 55996 start_bits = re + 40 /* &.start_bitmap */ 55997 __52: 55998 ; 55999 __49: 56000 ; 56001 56002 // There may also be a "last known required character" set. 56003 56004 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_LASTSET) != Tuint32_t(0)) { 56005 goto __53 56006 } 56007 56008 has_req_cu = DTRUE 56009 req_cu = libc.AssignUint8(&req_cu2, TPCRE2_UCHAR8((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flast_codeunit)) 56010 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_LASTCASELESS) != Tuint32_t(0)) { 56011 goto __54 56012 } 56013 56014 req_cu2 = *(*Tuint8_t)(unsafe.Pointer((*Tmatch_block_8)(unsafe.Pointer(mb)).Ffcc + uintptr(req_cu))) 56015 if !(int32(req_cu) > 127 && ucp != 0 && !(utf != 0)) { 56016 goto __55 56017 } 56018 req_cu2 = TPCRE2_UCHAR8(Tuint32_t(int32(req_cu) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(req_cu)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(req_cu)%DUCD_BLOCK_SIZE])*12)).Fother_case)) 56019 __55: 56020 ; 56021 __54: 56022 ; 56023 __53: 56024 ; 56025 56026 // ========================================================================== 56027 56028 // Loop for handling unanchored repeated matching attempts; for anchored regexs 56029 // the loop runs just once. 56030 56031 FRAGMENT_RESTART: 56032 56033 start_partial = libc.AssignUintptr(&match_partial, uintptr(0)) 56034 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend = DFALSE 56035 56036 memchr_found_first_cu = uintptr(0) 56037 memchr_found_first_cu2 = uintptr(0) 56038 56039 __56: 56040 56041 // ----------------- Start of match optimizations ---------------- 56042 56043 // There are some optimizations that avoid running the match if a known 56044 // starting point is not found, or if a known later code unit is not present. 56045 // However, there is an option (settable at compile time) that disables these, 56046 // for testing and for ensuring that all callouts do actually occur. 56047 56048 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_NO_START_OPTIMIZE == Tuint32_t(0)) { 56049 goto __59 56050 } 56051 56052 // If firstline is TRUE, the start of the match is constrained to the first 56053 // line of a multiline string. That is, the match must be before or at the 56054 // first newline following the start of matching. Temporarily adjust 56055 // end_subject so that we stop the scans for a first code unit at a newline. 56056 // If the match fails at the newline, later code breaks the loop. 56057 56058 if !(firstline != 0) { 56059 goto __60 56060 } 56061 56062 t = start_match 56063 if !(utf != 0) { 56064 goto __61 56065 } 56066 56067 __63: 56068 if !(t < end_subject && !(func() int32 { 56069 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 56070 return libc.Bool32(t < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, t, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+256, utf) != 0) 56071 } 56072 return libc.Bool32(t <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(t))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260))) && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(t + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260 + 1))))) 56073 }() != 0)) { 56074 goto __64 56075 } 56076 56077 t++ 56078 __65: 56079 if !(t < end_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(t)))&0xc0 == 0x80) { 56080 goto __66 56081 } 56082 t++ 56083 goto __65 56084 __66: 56085 ; 56086 goto __63 56087 __64: 56088 ; 56089 goto __62 56090 __61: 56091 __67: 56092 if !(t < end_subject && !(func() int32 { 56093 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 56094 return libc.Bool32(t < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, t, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+256, utf) != 0) 56095 } 56096 return libc.Bool32(t <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(t))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260))) && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(t + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260 + 1))))) 56097 }() != 0)) { 56098 goto __68 56099 } 56100 t++ 56101 goto __67 56102 __68: 56103 ; 56104 __62: 56105 ; 56106 end_subject = t 56107 __60: 56108 ; 56109 56110 // Anchored: check the first code unit if one is recorded. This may seem 56111 // pointless but it can help in detecting a no match case without scanning for 56112 // the required code unit. 56113 56114 if !(anchored != 0) { 56115 goto __69 56116 } 56117 56118 if !(has_first_cu != 0 || start_bits != uintptr(0)) { 56119 goto __71 56120 } 56121 56122 ok = libc.Bool32(start_match < end_subject) 56123 if !(ok != 0) { 56124 goto __72 56125 } 56126 56127 c = *(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match)) 56128 ok = libc.Bool32(has_first_cu != 0 && (int32(c) == int32(first_cu) || int32(c) == int32(first_cu2))) 56129 if !(!(ok != 0) && start_bits != uintptr(0)) { 56130 goto __73 56131 } 56132 56133 ok = libc.Bool32(uint32(*(*Tuint8_t)(unsafe.Pointer(start_bits + uintptr(int32(c)/8))))&(uint32(1)<<(int32(c)&7)) != uint32(0)) 56134 __73: 56135 ; 56136 __72: 56137 ; 56138 if !!(ok != 0) { 56139 goto __74 56140 } 56141 56142 rc = DMATCH_NOMATCH 56143 goto __58 56144 __74: 56145 ; 56146 __71: 56147 ; 56148 goto __70 56149 __69: 56150 56151 if !(has_first_cu != 0) { 56152 goto __75 56153 } 56154 56155 if !(int32(first_cu) != int32(first_cu2)) { 56156 goto __77 56157 } /* Caseless */ 56158 56159 // In 16-bit and 32_bit modes we have to do our own search, so can 56160 // look for both cases at once. 56161 56162 // In 8-bit mode, the use of memchr() gives a big speed up, even 56163 // though we have to call it twice in order to find the earliest 56164 // occurrence of the code unit in either of its cases. Caching is used 56165 // to remember the positions of previously found code units. This can 56166 // make a huge difference when the strings are very long and only one 56167 // case is actually present. 56168 56169 pp1 = uintptr(0) 56170 pp2 = uintptr(0) 56171 searchlength = Tsize_t((int64(end_subject) - int64(start_match)) / 1) 56172 56173 // If we haven't got a previously found position for first_cu, or if 56174 // the current starting position is later, we need to do a search. If 56175 // the code unit is not found, set it to the end. 56176 56177 if !(memchr_found_first_cu == uintptr(0) || start_match > memchr_found_first_cu) { 56178 goto __79 56179 } 56180 56181 pp1 = libc.Xmemchr(tls, start_match, int32(first_cu), searchlength) 56182 if pp1 == uintptr(0) { 56183 memchr_found_first_cu = end_subject 56184 } else { 56185 memchr_found_first_cu = pp1 56186 } 56187 goto __80 56188 __79: 56189 if memchr_found_first_cu == end_subject { 56190 pp1 = uintptr(0) 56191 } else { 56192 pp1 = memchr_found_first_cu 56193 } 56194 __80: 56195 ; 56196 56197 // Do the same thing for the other case. 56198 56199 if !(memchr_found_first_cu2 == uintptr(0) || start_match > memchr_found_first_cu2) { 56200 goto __81 56201 } 56202 56203 pp2 = libc.Xmemchr(tls, start_match, int32(first_cu2), searchlength) 56204 if pp2 == uintptr(0) { 56205 memchr_found_first_cu2 = end_subject 56206 } else { 56207 memchr_found_first_cu2 = pp2 56208 } 56209 goto __82 56210 __81: 56211 if memchr_found_first_cu2 == end_subject { 56212 pp2 = uintptr(0) 56213 } else { 56214 pp2 = memchr_found_first_cu2 56215 } 56216 __82: 56217 ; 56218 56219 // Set the start to the end of the subject if neither case was found. 56220 // Otherwise, use the earlier found point. 56221 56222 if !(pp1 == uintptr(0)) { 56223 goto __83 56224 } 56225 if pp2 == uintptr(0) { 56226 start_match = end_subject 56227 } else { 56228 start_match = pp2 56229 } 56230 goto __84 56231 __83: 56232 if pp2 == uintptr(0) || pp1 < pp2 { 56233 start_match = pp1 56234 } else { 56235 start_match = pp2 56236 } 56237 __84: 56238 ; 56239 56240 goto __78 56241 __77: 56242 56243 start_match = libc.Xmemchr(tls, start_match, int32(first_cu), uint64((int64(end_subject)-int64(start_match))/1)) 56244 if !(start_match == uintptr(0)) { 56245 goto __85 56246 } 56247 start_match = end_subject 56248 __85: 56249 ; 56250 __78: 56251 ; 56252 56253 // If we can't find the required first code unit, having reached the 56254 // true end of the subject, break the bumpalong loop, to force a match 56255 // failure, except when doing partial matching, when we let the next cycle 56256 // run at the end of the subject. To see why, consider the pattern 56257 // /(?<=abc)def/, which partially matches "abc", even though the string 56258 // does not contain the starting character "d". If we have not reached the 56259 // true end of the subject (PCRE2_FIRSTLINE caused end_subject to be 56260 // temporarily modified) we also let the cycle run, because the matching 56261 // string is legitimately allowed to start with the first code unit of a 56262 // newline. 56263 56264 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) == 0 && start_match >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 56265 goto __86 56266 } 56267 56268 rc = DMATCH_NOMATCH 56269 goto __58 56270 __86: 56271 ; 56272 goto __76 56273 __75: 56274 if !(startline != 0) { 56275 goto __87 56276 } 56277 56278 if !(start_match > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject+uintptr(start_offset)) { 56279 goto __89 56280 } 56281 56282 if !(utf != 0) { 56283 goto __90 56284 } 56285 56286 __92: 56287 if !(start_match < end_subject && !(func() int32 { 56288 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 56289 return libc.Bool32(start_match > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject && X_pcre2_was_newline_8(tls, start_match, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject, mb+256, utf) != 0) 56290 } 56291 return libc.Bool32(start_match >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject+uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match - uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260))) && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match - uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260 + 1))))) 56292 }() != 0)) { 56293 goto __93 56294 } 56295 56296 start_match++ 56297 __94: 56298 if !(start_match < end_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match)))&0xc0 == 0x80) { 56299 goto __95 56300 } 56301 start_match++ 56302 goto __94 56303 __95: 56304 ; 56305 goto __92 56306 __93: 56307 ; 56308 goto __91 56309 __90: 56310 __96: 56311 if !(start_match < end_subject && !(func() int32 { 56312 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 56313 return libc.Bool32(start_match > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject && X_pcre2_was_newline_8(tls, start_match, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject, mb+256, utf) != 0) 56314 } 56315 return libc.Bool32(start_match >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_subject+uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match - uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260))) && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match - uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260 + 1))))) 56316 }() != 0)) { 56317 goto __97 56318 } 56319 start_match++ 56320 goto __96 56321 __97: 56322 ; 56323 __91: 56324 ; 56325 56326 // If we have just passed a CR and the newline option is ANY or 56327 // ANYCRLF, and we are now at a LF, advance the match position by one 56328 // more code unit. 56329 56330 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match + libc.UintptrFromInt32(-1)))) == '\015' && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_ANY) || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_ANYCRLF)) && start_match < end_subject && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match))) == '\012') { 56331 goto __98 56332 } 56333 start_match++ 56334 __98: 56335 ; 56336 __89: 56337 ; 56338 goto __88 56339 __87: 56340 if !(start_bits != uintptr(0)) { 56341 goto __99 56342 } 56343 56344 __100: 56345 if !(start_match < end_subject) { 56346 goto __101 56347 } 56348 56349 c1 = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match))) 56350 if !(uint32(*(*Tuint8_t)(unsafe.Pointer(start_bits + uintptr(c1/Tuint32_t(8)))))&(uint32(1)<<(c1&Tuint32_t(7))) != uint32(0)) { 56351 goto __102 56352 } 56353 goto __101 56354 __102: 56355 ; 56356 start_match++ 56357 goto __100 56358 __101: 56359 ; 56360 56361 // See comment above in first_cu checking about the next few lines. 56362 56363 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) == 0 && start_match >= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject) { 56364 goto __103 56365 } 56366 56367 rc = DMATCH_NOMATCH 56368 goto __58 56369 __103: 56370 ; 56371 __99: 56372 ; 56373 __88: 56374 ; 56375 __76: 56376 ; 56377 __70: 56378 ; // End first code unit handling 56379 56380 // Restore fudged end_subject 56381 56382 end_subject = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject 56383 56384 // The following two optimizations must be disabled for partial matching. 56385 56386 if !(int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fpartial) == 0) { 56387 goto __104 56388 } 56389 56390 // The minimum matching length is a lower bound; no string of that length 56391 // may actually match the pattern. Although the value is, strictly, in 56392 // characters, we treat it as code units to avoid spending too much time in 56393 // this optimization. 56394 56395 if !((int64(end_subject)-int64(start_match))/1 < int64((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fminlength)) { 56396 goto __105 56397 } 56398 56399 rc = DMATCH_NOMATCH 56400 goto __58 56401 __105: 56402 ; 56403 56404 // If req_cu is set, we know that that code unit must appear in the 56405 // subject for the (non-partial) match to succeed. If the first code unit is 56406 // set, req_cu must be later in the subject; otherwise the test starts at 56407 // the match point. This optimization can save a huge amount of backtracking 56408 // in patterns with nested unlimited repeats that aren't going to match. 56409 // Writing separate code for caseful/caseless versions makes it go faster, 56410 // as does using an autoincrement and backing off on a match. As in the case 56411 // of the first code unit, using memchr() in the 8-bit library gives a big 56412 // speed up. Unlike the first_cu check above, we do not need to call 56413 // memchr() twice in the caseless case because we only need to check for the 56414 // presence of the character in either case, not find the first occurrence. 56415 // 56416 // The search can be skipped if the code unit was found later than the 56417 // current starting point in a previous iteration of the bumpalong loop. 56418 // 56419 // HOWEVER: when the subject string is very, very long, searching to its end 56420 // can take a long time, and give bad performance on quite ordinary 56421 // anchored patterns. This showed up when somebody was matching something 56422 // like /^\d+C/ on a 32-megabyte string... so we don't do this when the 56423 // string is sufficiently long, but it's worth searching a lot more for 56424 // unanchored patterns. 56425 56426 p = start_match + uintptr(func() int32 { 56427 if has_first_cu != 0 { 56428 return 1 56429 } 56430 return 0 56431 }()) 56432 if !(has_req_cu != 0 && p > req_cu_ptr) { 56433 goto __106 56434 } 56435 56436 check_length = Tsize_t((int64(end_subject) - int64(start_match)) / 1) 56437 56438 if !(check_length < uint64(DREQ_CU_MAX) || !(anchored != 0) && check_length < uint64(DREQ_CU_MAX*1000)) { 56439 goto __107 56440 } 56441 56442 if !(int32(req_cu) != int32(req_cu2)) { 56443 goto __108 56444 } /* Caseless */ 56445 56446 pp = p 56447 p = libc.Xmemchr(tls, pp, int32(req_cu), uint64((int64(end_subject)-int64(pp))/1)) 56448 if !(p == uintptr(0)) { 56449 goto __110 56450 } 56451 56452 p = libc.Xmemchr(tls, pp, int32(req_cu2), uint64((int64(end_subject)-int64(pp))/1)) 56453 if !(p == uintptr(0)) { 56454 goto __111 56455 } 56456 p = end_subject 56457 __111: 56458 ; 56459 __110: 56460 ; 56461 goto __109 56462 __108: 56463 56464 p = libc.Xmemchr(tls, p, int32(req_cu), uint64((int64(end_subject)-int64(p))/1)) 56465 if !(p == uintptr(0)) { 56466 goto __112 56467 } 56468 p = end_subject 56469 __112: 56470 ; 56471 __109: 56472 ; 56473 56474 // If we can't find the required code unit, break the bumpalong loop, 56475 // forcing a match failure. 56476 56477 if !(p >= end_subject) { 56478 goto __113 56479 } 56480 56481 rc = DMATCH_NOMATCH 56482 goto __58 56483 __113: 56484 ; 56485 56486 // If we have found the required code unit, save the point where we 56487 // found it, so that we don't search again next time round the bumpalong 56488 // loop if the start hasn't yet passed this code unit. 56489 56490 req_cu_ptr = p 56491 __107: 56492 ; 56493 __106: 56494 ; 56495 __104: 56496 ; 56497 __59: 56498 ; 56499 56500 // ------------ End of start of match optimizations ------------ 56501 56502 // Give no match if we have passed the bumpalong limit. 56503 56504 if !(start_match > bumpalong_limit) { 56505 goto __114 56506 } 56507 56508 rc = DMATCH_NOMATCH 56509 goto __58 56510 __114: 56511 ; 56512 56513 // OK, we can now run the match. If "hitend" is set afterwards, remember the 56514 // first starting point for which a partial match was found. 56515 56516 (*Tpcre2_callout_block_8)(unsafe.Pointer(bp + 20768 /* &cb */)).Fstart_match = Tsize_t((int64(start_match) - int64(subject)) / 1) 56517 *(*Tuint32_t)(unsafe.Pointer(bp + 20768 + 104)) |= DPCRE2_CALLOUT_STARTMATCH 56518 56519 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr = start_match 56520 (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr = start_match 56521 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmoptions = options | fragment_options 56522 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_call_count = Tuint32_t(0) 56523 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_offset_top = uint64(0) 56524 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fskip_arg_count = Tuint32_t(0) 56525 56526 rc = match(tls, start_match, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_code, match_data+80, 56527 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount, (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftop_bracket, frame_size, mb) 56528 56529 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fhitend != 0 && start_partial == uintptr(0)) { 56530 goto __115 56531 } 56532 56533 start_partial = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr 56534 match_partial = start_match 56535 __115: 56536 ; 56537 56538 switch rc { 56539 // If MATCH_SKIP_ARG reaches this level it means that a MARK that matched 56540 // the SKIP's arg was not found. In this circumstance, Perl ignores the SKIP 56541 // entirely. The only way we can do that is to re-do the match at the same 56542 // point, with a flag to force SKIP with an argument to be ignored. Just 56543 // treating this case as NOMATCH does not work because it does not check other 56544 // alternatives in patterns such as A(*SKIP:A)B|AC when the subject is AC. 56545 56546 case -994: 56547 goto __117 56548 56549 // SKIP passes back the next starting point explicitly, but if it is no 56550 // greater than the match we have just done, treat it as NOMATCH. 56551 56552 case -995: 56553 goto __118 56554 // Fall through 56555 56556 // NOMATCH and PRUNE advance by one character. THEN at this level acts 56557 // exactly like PRUNE. Unset ignore SKIP-with-argument. 56558 56559 case DMATCH_NOMATCH: 56560 goto __119 56561 case -996: 56562 goto __120 56563 case -993: 56564 goto __121 56565 56566 // COMMIT disables the bumpalong, but otherwise behaves as NOMATCH. 56567 56568 case -997: 56569 goto __122 56570 56571 // Any other return is either a match, or some kind of error. 56572 56573 default: 56574 goto __123 56575 } 56576 goto __116 56577 56578 // If MATCH_SKIP_ARG reaches this level it means that a MARK that matched 56579 // the SKIP's arg was not found. In this circumstance, Perl ignores the SKIP 56580 // entirely. The only way we can do that is to re-do the match at the same 56581 // point, with a flag to force SKIP with an argument to be ignored. Just 56582 // treating this case as NOMATCH does not work because it does not check other 56583 // alternatives in patterns such as A(*SKIP:A)B|AC when the subject is AC. 56584 56585 __117: 56586 new_start_match = start_match 56587 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fignore_skip_arg = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fskip_arg_count 56588 goto __116 56589 56590 // SKIP passes back the next starting point explicitly, but if it is no 56591 // greater than the match we have just done, treat it as NOMATCH. 56592 56593 __118: 56594 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_skip_ptr > start_match) { 56595 goto __124 56596 } 56597 56598 new_start_match = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fverb_skip_ptr 56599 goto __116 56600 __124: 56601 ; 56602 // Fall through 56603 56604 // NOMATCH and PRUNE advance by one character. THEN at this level acts 56605 // exactly like PRUNE. Unset ignore SKIP-with-argument. 56606 56607 __119: 56608 __120: 56609 __121: 56610 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fignore_skip_arg = Tuint32_t(0) 56611 new_start_match = start_match + uintptr(1) 56612 if !(utf != 0) { 56613 goto __125 56614 } 56615 __126: 56616 if !(new_start_match < end_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(new_start_match)))&0xc0 == 0x80) { 56617 goto __127 56618 } 56619 new_start_match++ 56620 goto __126 56621 __127: 56622 ; 56623 __125: 56624 ; 56625 goto __116 56626 56627 // COMMIT disables the bumpalong, but otherwise behaves as NOMATCH. 56628 56629 __122: 56630 rc = DMATCH_NOMATCH 56631 goto ENDLOOP 56632 56633 // Any other return is either a match, or some kind of error. 56634 56635 __123: 56636 goto ENDLOOP 56637 __116: 56638 ; 56639 56640 // Control reaches here for the various types of "no match at this point" 56641 // result. Reset the code to MATCH_NOMATCH for subsequent checking. 56642 56643 rc = DMATCH_NOMATCH 56644 56645 // If PCRE2_FIRSTLINE is set, the match must happen before or at the first 56646 // newline in the subject (though it may continue over the newline). Therefore, 56647 // if we have just failed to match, starting at a newline, do not continue. 56648 56649 if !(firstline != 0 && func() int32 { 56650 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype != Tuint32_t(DNLTYPE_FIXED) { 56651 return libc.Bool32(start_match < (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject && X_pcre2_is_newline_8(tls, start_match, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject, mb+256, utf) != 0) 56652 } 56653 return libc.Bool32(start_match <= (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject-uintptr((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260))) && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(1) || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match + uintptr(1)))) == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mb + 260 + 1))))) 56654 }() != 0) { 56655 goto __128 56656 } 56657 goto __58 56658 __128: 56659 ; 56660 56661 // Advance to new matching position 56662 56663 start_match = new_start_match 56664 56665 // Break the loop if the pattern is anchored or if we have passed the end of 56666 // the subject. 56667 56668 if !(anchored != 0 || start_match > end_subject) { 56669 goto __129 56670 } 56671 goto __58 56672 __129: 56673 ; 56674 56675 // If we have just passed a CR and we are now at a LF, and the pattern does 56676 // not contain any explicit matches for \r or \n, and the newline option is CRLF 56677 // or ANY or ANYCRLF, advance the match position by one more code unit. In 56678 // normal matching start_match will aways be greater than the first position at 56679 // this stage, but a failed *SKIP can cause a return at the same point, which is 56680 // why the first test exists. 56681 56682 if !(start_match > subject+uintptr(start_offset) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match + libc.UintptrFromInt32(-1)))) == '\015' && start_match < end_subject && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match))) == '\012' && (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_HASCRORLF) == Tuint32_t(0) && ((*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_ANY) || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnltype == Tuint32_t(DNLTYPE_ANYCRLF) || (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnllen == Tuint32_t(2))) { 56683 goto __130 56684 } 56685 start_match++ 56686 __130: 56687 ; 56688 56689 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmark = uintptr(0) // Reset for start of next match attempt 56690 goto __57 56691 __57: 56692 goto __56 56693 goto __58 56694 __58: 56695 ; // End of for(;;) "bumpalong" loop 56696 56697 // ========================================================================== 56698 56699 // When we reach here, one of the following stopping conditions is true: 56700 // 56701 // (1) The match succeeded, either completely, or partially; 56702 // 56703 // (2) The pattern is anchored or the match was failed after (*COMMIT); 56704 // 56705 // (3) We are past the end of the subject or the bumpalong limit; 56706 // 56707 // (4) PCRE2_FIRSTLINE is set and we have failed to match at a newline, because 56708 // this option requests that a match occur at or before the first newline in 56709 // the subject. 56710 // 56711 // (5) Some kind of error occurred. 56712 // 56713 56714 ENDLOOP: 56715 56716 // If end_subject != true_end_subject, it means we are handling invalid UTF, 56717 // and have just processed a non-terminal fragment. If this resulted in no match 56718 // or a partial match we must carry on to the next fragment (a partial match is 56719 // returned to the caller only at the very end of the subject). A loop is used to 56720 // avoid trying to match against empty fragments; if the pattern can match an 56721 // empty string it would have done so already. 56722 56723 if !(utf != 0 && end_subject != true_end_subject && (rc == DMATCH_NOMATCH || rc == -2)) { 56724 goto __131 56725 } 56726 56727 __132: 56728 56729 // Advance past the first bad code unit, and then skip invalid character 56730 // starting code units in 8-bit and 16-bit modes. 56731 56732 start_match = end_subject + uintptr(1) 56733 56734 __135: 56735 if !(start_match < true_end_subject && uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(start_match)))&0xc0 == 0x80) { 56736 goto __136 56737 } 56738 start_match++ 56739 goto __135 56740 __136: 56741 ; 56742 56743 // If we have hit the end of the subject, there isn't another non-empty 56744 // fragment, so give up. 56745 56746 if !(start_match >= true_end_subject) { 56747 goto __137 56748 } 56749 56750 rc = DMATCH_NOMATCH // In case it was partial 56751 goto __134 56752 __137: 56753 ; 56754 56755 // Check the rest of the subject 56756 56757 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fcheck_subject = start_match 56758 rc = X_pcre2_valid_utf_8(tls, start_match, length-Tsize_t((int64(start_match)-int64(subject))/1), 56759 match_data+64) 56760 56761 // The rest of the subject is valid UTF. 56762 56763 if !(rc == 0) { 56764 goto __138 56765 } 56766 56767 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject = libc.AssignUintptr(&end_subject, true_end_subject) 56768 fragment_options = DPCRE2_NOTBOL 56769 goto FRAGMENT_RESTART 56770 goto __139 56771 __138: 56772 if !(rc < 0) { 56773 goto __140 56774 } 56775 56776 (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_subject = libc.AssignUintptr(&end_subject, start_match+uintptr((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fstartchar)) 56777 if !(end_subject > start_match) { 56778 goto __141 56779 } 56780 56781 fragment_options = DPCRE2_NOTBOL | DPCRE2_NOTEOL 56782 goto FRAGMENT_RESTART 56783 __141: 56784 ; 56785 __140: 56786 ; 56787 __139: 56788 ; 56789 goto __133 56790 __133: 56791 goto __132 56792 goto __134 56793 __134: 56794 ; 56795 __131: 56796 ; 56797 56798 // Release an enlarged frame vector that is on the heap. 56799 56800 if !((*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames != (*Tmatch_block_8)(unsafe.Pointer(mb)).Fstack_frames) { 56801 goto __142 56802 } 56803 (*struct { 56804 f func(*libc.TLS, uintptr, uintptr) 56805 })(unsafe.Pointer(&struct{ uintptr }{(*Tmatch_block_8)(unsafe.Pointer(mb)).Fmemctl.Ffree})).f(tls, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmatch_frames, (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmemctl.Fmemory_data) 56806 __142: 56807 ; 56808 56809 // Fill in fields that are always returned in the match data. 56810 56811 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fcode = re 56812 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmark = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fmark 56813 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmatchedby = PCRE2_MATCHEDBY_INTERPRETER 56814 56815 // Handle a fully successful match. Set the return code to the number of 56816 // captured strings, or 0 if there were too many to fit into the ovector, and then 56817 // set the remaining returned values before returning. Make a copy of the subject 56818 // string if requested. 56819 56820 if !(rc == DMATCH_MATCH) { 56821 goto __143 56822 } 56823 56824 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc = func() int32 { 56825 if int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_offset_top) >= 2*int32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount) { 56826 return 0 56827 } 56828 return int32((*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_offset_top)/2 + 1 56829 }() 56830 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fstartchar = Tsize_t((int64(start_match) - int64(subject)) / 1) 56831 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fleftchar = Tsize_t((int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fstart_used_ptr) - int64(subject)) / 1) 56832 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frightchar = Tsize_t((func() int64 { 56833 if (*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr > (*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_match_ptr { 56834 return int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Flast_used_ptr) 56835 } 56836 return int64((*Tmatch_block_8)(unsafe.Pointer(mb)).Fend_match_ptr) 56837 }() - int64(subject)) / 1) 56838 if !(options&DPCRE2_COPY_MATCHED_SUBJECT != Tuint32_t(0)) { 56839 goto __144 56840 } 56841 56842 length = (length + Tsize_t(was_zero_terminated)) * uint64(DPCRE2_CODE_UNIT_WIDTH/8) 56843 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject = (*struct { 56844 f func(*libc.TLS, Tsize_t, uintptr) uintptr 56845 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmemctl.Fmalloc})).f(tls, length, 56846 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmemctl.Fmemory_data) 56847 if !((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject == uintptr(0)) { 56848 goto __146 56849 } 56850 return -48 56851 __146: 56852 ; 56853 libc.Xmemcpy(tls, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject, subject, length) 56854 *(*Tuint8_t)(unsafe.Pointer(match_data + 73)) |= uint8(DPCRE2_MD_COPIED_SUBJECT) 56855 goto __145 56856 __144: 56857 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject = subject 56858 __145: 56859 ; 56860 return (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc 56861 __143: 56862 ; 56863 56864 // Control gets here if there has been a partial match, an error, or if the 56865 // overall match attempt has failed at all permitted starting positions. Any mark 56866 // data is in the nomatch_mark field. 56867 56868 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmark = (*Tmatch_block_8)(unsafe.Pointer(mb)).Fnomatch_mark 56869 56870 // For anything other than nomatch or partial match, just return the code. 56871 56872 if !(rc != DMATCH_NOMATCH && rc != -2) { 56873 goto __147 56874 } 56875 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc = rc 56876 goto __148 56877 __147: 56878 if !(match_partial != uintptr(0)) { 56879 goto __149 56880 } 56881 56882 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject = subject 56883 *(*Tsize_t)(unsafe.Pointer(match_data + 80)) = Tsize_t((int64(match_partial) - int64(subject)) / 1) 56884 *(*Tsize_t)(unsafe.Pointer(match_data + 80 + 1*8)) = Tsize_t((int64(end_subject) - int64(subject)) / 1) 56885 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fstartchar = Tsize_t((int64(match_partial) - int64(subject)) / 1) 56886 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fleftchar = Tsize_t((int64(start_partial) - int64(subject)) / 1) 56887 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frightchar = Tsize_t((int64(end_subject) - int64(subject)) / 1) 56888 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc = -2 56889 goto __150 56890 __149: 56891 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc = -1 56892 __150: 56893 ; 56894 __148: 56895 ; 56896 56897 return (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc 56898 } 56899 56900 // End of pcre2_match.c 56901 56902 // This function is needed only when memmove() is not available. 56903 56904 // End of pcre2_internal.h 56905 56906 // ************************************************ 56907 // 56908 // Create a match data block given ovector size * 56909 // 56910 56911 // A minimum of 1 is imposed on the number of ovector pairs. 56912 56913 func Xpcre2_match_data_create_8(tls *libc.TLS, oveccount Tuint32_t, gcontext uintptr) uintptr { /* pcre2_match_data.c:56:33: */ 56914 var yield uintptr 56915 if oveccount < Tuint32_t(1) { 56916 oveccount = Tuint32_t(1) 56917 } 56918 yield = X_pcre2_memctl_malloc_8(tls, 56919 uint64(uintptr(0)+80)+uint64(Tuint32_t(2)*oveccount)*uint64(unsafe.Sizeof(Tsize_t(0))), 56920 gcontext) 56921 if yield == uintptr(0) { 56922 return uintptr(0) 56923 } 56924 (*Tpcre2_match_data_8)(unsafe.Pointer(yield)).Foveccount = Tuint16_t(oveccount) 56925 (*Tpcre2_match_data_8)(unsafe.Pointer(yield)).Fflags = Tuint8_t(0) 56926 return yield 56927 } 56928 56929 // ************************************************ 56930 // 56931 // Create a match data block using pattern data * 56932 // 56933 56934 // If no context is supplied, use the memory allocator from the code. 56935 56936 func Xpcre2_match_data_create_from_pattern_8(tls *libc.TLS, code uintptr, gcontext uintptr) uintptr { /* pcre2_match_data.c:78:33: */ 56937 if gcontext == uintptr(0) { 56938 gcontext = code 56939 } 56940 return Xpcre2_match_data_create_8(tls, uint32(int32((*Tpcre2_real_code_8)(unsafe.Pointer(code)).Ftop_bracket)+1), 56941 gcontext) 56942 } 56943 56944 // ************************************************ 56945 // 56946 // Free a match data block * 56947 // 56948 56949 func Xpcre2_match_data_free_8(tls *libc.TLS, match_data uintptr) { /* pcre2_match_data.c:94:1: */ 56950 if match_data != uintptr(0) { 56951 if uint32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fflags)&DPCRE2_MD_COPIED_SUBJECT != uint32(0) { 56952 (*struct { 56953 f func(*libc.TLS, uintptr, uintptr) 56954 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmemctl.Ffree})).f(tls, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject, 56955 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmemctl.Fmemory_data) 56956 } 56957 (*struct { 56958 f func(*libc.TLS, uintptr, uintptr) 56959 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmemctl.Ffree})).f(tls, match_data, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmemctl.Fmemory_data) 56960 } 56961 } 56962 56963 // ************************************************ 56964 // 56965 // Get last mark in match * 56966 // 56967 56968 func Xpcre2_get_mark_8(tls *libc.TLS, match_data uintptr) TPCRE2_SPTR8 { /* pcre2_match_data.c:112:1: */ 56969 return (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmark 56970 } 56971 56972 // ************************************************ 56973 // 56974 // Get pointer to ovector * 56975 // 56976 56977 func Xpcre2_get_ovector_pointer_8(tls *libc.TLS, match_data uintptr) uintptr { /* pcre2_match_data.c:123:27: */ 56978 return match_data + 80 /* &.ovector */ 56979 } 56980 56981 // ************************************************ 56982 // 56983 // Get number of ovector slots * 56984 // 56985 56986 func Xpcre2_get_ovector_count_8(tls *libc.TLS, match_data uintptr) Tuint32_t { /* pcre2_match_data.c:136:1: */ 56987 return Tuint32_t((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount) 56988 } 56989 56990 // ************************************************ 56991 // 56992 // Get starting code unit in match * 56993 // 56994 56995 func Xpcre2_get_startchar_8(tls *libc.TLS, match_data uintptr) Tsize_t { /* pcre2_match_data.c:148:1: */ 56996 return (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fstartchar 56997 } 56998 56999 // ************************************************ 57000 // 57001 // Get size of match data block * 57002 // 57003 57004 func Xpcre2_get_match_data_size_8(tls *libc.TLS, match_data uintptr) Tsize_t { /* pcre2_match_data.c:160:1: */ 57005 return uint64(uintptr(0)+80) + uint64(2*int32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount))*uint64(unsafe.Sizeof(Tsize_t(0))) 57006 } 57007 57008 // End of pcre2_match_data.c 57009 57010 // This function is needed only when memmove() is not available. 57011 57012 // End of pcre2_internal.h 57013 57014 // ************************************************ 57015 // 57016 // Check for newline at given position * 57017 // 57018 57019 // This function is called only via the IS_NEWLINE macro, which does so only 57020 // when the newline type is NLTYPE_ANY or NLTYPE_ANYCRLF. The case of a fixed 57021 // newline (NLTYPE_FIXED) is handled inline. It is guaranteed that the code unit 57022 // pointed to by ptr is less than the end of the string. 57023 // 57024 // Arguments: 57025 // ptr pointer to possible newline 57026 // type the newline type 57027 // endptr pointer to the end of the string 57028 // lenptr where to return the length 57029 // utf TRUE if in utf mode 57030 // 57031 // Returns: TRUE or FALSE 57032 57033 func X_pcre2_is_newline_8(tls *libc.TLS, ptr TPCRE2_SPTR8, type1 Tuint32_t, endptr TPCRE2_SPTR8, lenptr uintptr, utf TBOOL) TBOOL { /* pcre2_newline.c:79:1: */ 57034 var c Tuint32_t 57035 57036 if utf != 0 { 57037 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) 57038 if c >= 0xc0 { 57039 if c&0x20 == Tuint32_t(0) { 57040 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f 57041 } else if c&0x10 == Tuint32_t(0) { 57042 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f 57043 } else if c&0x08 == Tuint32_t(0) { 57044 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f 57045 } else if c&0x04 == Tuint32_t(0) { 57046 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 4)))&0x3f 57047 } else { 57048 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 5)))&0x3f 57049 } 57050 } 57051 57052 } else { 57053 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) 57054 } 57055 57056 if type1 == Tuint32_t(DNLTYPE_ANYCRLF) { 57057 switch c { 57058 case Tuint32_t('\012'): 57059 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = Tuint32_t(1) 57060 return DTRUE 57061 fallthrough 57062 57063 case Tuint32_t('\015'): 57064 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = func() uint32 { 57065 if ptr < endptr-uintptr(1) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1))) == '\012' { 57066 return uint32(2) 57067 } 57068 return uint32(1) 57069 }() 57070 return DTRUE 57071 fallthrough 57072 57073 default: 57074 return DFALSE 57075 } 57076 } else { 57077 switch c { 57078 case Tuint32_t('\012'): 57079 fallthrough 57080 case Tuint32_t('\013'): 57081 fallthrough 57082 case Tuint32_t('\014'): 57083 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = Tuint32_t(1) 57084 return DTRUE 57085 fallthrough 57086 57087 case Tuint32_t('\015'): 57088 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = func() uint32 { 57089 if ptr < endptr-uintptr(1) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1))) == '\012' { 57090 return uint32(2) 57091 } 57092 return uint32(1) 57093 }() 57094 return DTRUE 57095 fallthrough 57096 57097 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 57098 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = func() uint32 { 57099 if utf != 0 { 57100 return uint32(2) 57101 } 57102 return uint32(1) 57103 }() 57104 return DTRUE 57105 fallthrough 57106 57107 case Tuint32_t(0x2028): 57108 fallthrough // LS 57109 case Tuint32_t(0x2029): // PS 57110 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = Tuint32_t(3) 57111 return DTRUE 57112 fallthrough 57113 57114 default: 57115 return DFALSE 57116 } 57117 } 57118 return TBOOL(0) 57119 } 57120 57121 // ************************************************ 57122 // 57123 // Check for newline at previous position * 57124 // 57125 57126 // This function is called only via the WAS_NEWLINE macro, which does so only 57127 // when the newline type is NLTYPE_ANY or NLTYPE_ANYCRLF. The case of a fixed 57128 // newline (NLTYPE_FIXED) is handled inline. It is guaranteed that the initial 57129 // value of ptr is greater than the start of the string that is being processed. 57130 // 57131 // Arguments: 57132 // ptr pointer to possible newline 57133 // type the newline type 57134 // startptr pointer to the start of the string 57135 // lenptr where to return the length 57136 // utf TRUE if in utf mode 57137 // 57138 // Returns: TRUE or FALSE 57139 57140 func X_pcre2_was_newline_8(tls *libc.TLS, ptr TPCRE2_SPTR8, type1 Tuint32_t, startptr TPCRE2_SPTR8, lenptr uintptr, utf TBOOL) TBOOL { /* pcre2_newline.c:169:1: */ 57141 var c Tuint32_t 57142 ptr-- 57143 57144 if utf != 0 { 57145 for uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr)))&0xc0 == 0x80 { 57146 ptr-- 57147 } 57148 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) 57149 if c >= 0xc0 { 57150 if c&0x20 == Tuint32_t(0) { 57151 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f 57152 } else if c&0x10 == Tuint32_t(0) { 57153 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f 57154 } else if c&0x08 == Tuint32_t(0) { 57155 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f 57156 } else if c&0x04 == Tuint32_t(0) { 57157 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 4)))&0x3f 57158 } else { 57159 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 4)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 5)))&0x3f 57160 } 57161 } 57162 57163 } else { 57164 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr))) 57165 } 57166 57167 if type1 == Tuint32_t(DNLTYPE_ANYCRLF) { 57168 switch c { 57169 case Tuint32_t('\012'): 57170 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = func() uint32 { 57171 if ptr > startptr && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + libc.UintptrFromInt32(-1)))) == '\015' { 57172 return uint32(2) 57173 } 57174 return uint32(1) 57175 }() 57176 return DTRUE 57177 fallthrough 57178 57179 case Tuint32_t('\015'): 57180 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = Tuint32_t(1) 57181 return DTRUE 57182 fallthrough 57183 57184 default: 57185 return DFALSE 57186 } 57187 } else { 57188 switch c { 57189 case Tuint32_t('\012'): 57190 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = func() uint32 { 57191 if ptr > startptr && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + libc.UintptrFromInt32(-1)))) == '\015' { 57192 return uint32(2) 57193 } 57194 return uint32(1) 57195 }() 57196 return DTRUE 57197 fallthrough 57198 57199 case Tuint32_t('\013'): 57200 fallthrough 57201 case Tuint32_t('\014'): 57202 fallthrough 57203 case Tuint32_t('\015'): 57204 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = Tuint32_t(1) 57205 return DTRUE 57206 fallthrough 57207 57208 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 57209 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = func() uint32 { 57210 if utf != 0 { 57211 return uint32(2) 57212 } 57213 return uint32(1) 57214 }() 57215 return DTRUE 57216 fallthrough 57217 57218 case Tuint32_t(0x2028): 57219 fallthrough // LS 57220 case Tuint32_t(0x2029): // PS 57221 *(*Tuint32_t)(unsafe.Pointer(lenptr)) = Tuint32_t(3) 57222 return DTRUE 57223 fallthrough 57224 57225 default: 57226 return DFALSE 57227 } 57228 } 57229 return TBOOL(0) 57230 } 57231 57232 // End of pcre2_newline.c 57233 57234 // This function is needed only when memmove() is not available. 57235 57236 // End of pcre2_internal.h 57237 57238 // If SUPPORT_UNICODE is not defined, this function will never be called. 57239 // Supply a dummy function because some compilers do not like empty source 57240 // modules. 57241 57242 // ************************************************ 57243 // 57244 // Convert code point to UTF * 57245 // 57246 57247 // 57248 // Arguments: 57249 // cvalue the character value 57250 // buffer pointer to buffer for result 57251 // 57252 // Returns: number of code units placed in the buffer 57253 57254 func X_pcre2_ord2utf_8(tls *libc.TLS, cvalue Tuint32_t, buffer uintptr) uint32 { /* pcre2_ord2utf.c:81:1: */ 57255 // Convert to UTF-8 57256 57257 var i int32 57258 var j int32 57259 for i = 0; i < X_pcre2_utf8_table1_size; i++ { 57260 if int32(cvalue) <= X_pcre2_utf8_table1[i] { 57261 break 57262 } 57263 } 57264 buffer += uintptr(i) 57265 for j = i; j > 0; j-- { 57266 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostDecUintptr(&buffer, 1))) = TPCRE2_UCHAR8(Tuint32_t(0x80) | cvalue&Tuint32_t(0x3f)) 57267 cvalue >>= 6 57268 } 57269 *(*TPCRE2_UCHAR8)(unsafe.Pointer(buffer)) = TPCRE2_UCHAR8(Tuint32_t(X_pcre2_utf8_table2[i]) | cvalue) 57270 return uint32(i + 1) 57271 57272 // Convert to UTF-16 57273 57274 } 57275 57276 // End of pcre_ord2utf.c 57277 57278 // This function is needed only when memmove() is not available. 57279 57280 // End of pcre2_internal.h 57281 57282 // ************************************************ 57283 // 57284 // Return info about compiled pattern * 57285 // 57286 57287 // 57288 // Arguments: 57289 // code points to compiled code 57290 // what what information is required 57291 // where where to put the information; if NULL, return length 57292 // 57293 // Returns: 0 when data returned 57294 // > 0 when length requested 57295 // < 0 on error or unset value 57296 57297 func Xpcre2_pattern_info_8(tls *libc.TLS, code uintptr, what Tuint32_t, where uintptr) int32 { /* pcre2_pattern_info.c:65:1: */ 57298 var re uintptr = code 57299 57300 if where == uintptr(0) { 57301 switch what { 57302 case Tuint32_t(DPCRE2_INFO_ALLOPTIONS): 57303 fallthrough 57304 case Tuint32_t(DPCRE2_INFO_ARGOPTIONS): 57305 fallthrough 57306 case Tuint32_t(DPCRE2_INFO_BACKREFMAX): 57307 fallthrough 57308 case Tuint32_t(DPCRE2_INFO_BSR): 57309 fallthrough 57310 case Tuint32_t(DPCRE2_INFO_CAPTURECOUNT): 57311 fallthrough 57312 case Tuint32_t(DPCRE2_INFO_DEPTHLIMIT): 57313 fallthrough 57314 case Tuint32_t(DPCRE2_INFO_EXTRAOPTIONS): 57315 fallthrough 57316 case Tuint32_t(DPCRE2_INFO_FIRSTCODETYPE): 57317 fallthrough 57318 case Tuint32_t(DPCRE2_INFO_FIRSTCODEUNIT): 57319 fallthrough 57320 case Tuint32_t(DPCRE2_INFO_HASBACKSLASHC): 57321 fallthrough 57322 case Tuint32_t(DPCRE2_INFO_HASCRORLF): 57323 fallthrough 57324 case Tuint32_t(DPCRE2_INFO_HEAPLIMIT): 57325 fallthrough 57326 case Tuint32_t(DPCRE2_INFO_JCHANGED): 57327 fallthrough 57328 case Tuint32_t(DPCRE2_INFO_LASTCODETYPE): 57329 fallthrough 57330 case Tuint32_t(DPCRE2_INFO_LASTCODEUNIT): 57331 fallthrough 57332 case Tuint32_t(DPCRE2_INFO_MATCHEMPTY): 57333 fallthrough 57334 case Tuint32_t(DPCRE2_INFO_MATCHLIMIT): 57335 fallthrough 57336 case Tuint32_t(DPCRE2_INFO_MAXLOOKBEHIND): 57337 fallthrough 57338 case Tuint32_t(DPCRE2_INFO_MINLENGTH): 57339 fallthrough 57340 case Tuint32_t(DPCRE2_INFO_NAMEENTRYSIZE): 57341 fallthrough 57342 case Tuint32_t(DPCRE2_INFO_NAMECOUNT): 57343 fallthrough 57344 case Tuint32_t(DPCRE2_INFO_NEWLINE): 57345 return int32(unsafe.Sizeof(Tuint32_t(0))) 57346 fallthrough 57347 57348 case Tuint32_t(DPCRE2_INFO_FIRSTBITMAP): 57349 return int32(unsafe.Sizeof(uintptr(0))) 57350 fallthrough 57351 57352 case Tuint32_t(DPCRE2_INFO_JITSIZE): 57353 fallthrough 57354 case Tuint32_t(DPCRE2_INFO_SIZE): 57355 fallthrough 57356 case Tuint32_t(DPCRE2_INFO_FRAMESIZE): 57357 return int32(unsafe.Sizeof(Tsize_t(0))) 57358 fallthrough 57359 57360 case Tuint32_t(DPCRE2_INFO_NAMETABLE): 57361 return int32(unsafe.Sizeof(TPCRE2_SPTR8(0))) 57362 } 57363 } 57364 57365 if re == uintptr(0) { 57366 return -51 57367 } 57368 57369 // Check that the first field in the block is the magic number. If it is not, 57370 // return with PCRE2_ERROR_BADMAGIC. 57371 57372 if uint64((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmagic_number) != DMAGIC_NUMBER { 57373 return -31 57374 } 57375 57376 // Check that this pattern was compiled in the correct bit mode 57377 57378 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_CODE_UNIT_WIDTH/8) == Tuint32_t(0) { 57379 return -32 57380 } 57381 57382 switch what { 57383 case Tuint32_t(DPCRE2_INFO_ALLOPTIONS): 57384 *(*Tuint32_t)(unsafe.Pointer(where)) = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options 57385 break 57386 57387 case Tuint32_t(DPCRE2_INFO_ARGOPTIONS): 57388 *(*Tuint32_t)(unsafe.Pointer(where)) = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fcompile_options 57389 break 57390 57391 case Tuint32_t(DPCRE2_INFO_BACKREFMAX): 57392 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftop_backref) 57393 break 57394 57395 case Tuint32_t(DPCRE2_INFO_BSR): 57396 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fbsr_convention) 57397 break 57398 57399 case Tuint32_t(DPCRE2_INFO_CAPTURECOUNT): 57400 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftop_bracket) 57401 break 57402 57403 case Tuint32_t(DPCRE2_INFO_DEPTHLIMIT): 57404 *(*Tuint32_t)(unsafe.Pointer(where)) = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_depth 57405 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_depth == 4294967295 { 57406 return -55 57407 } 57408 break 57409 57410 case Tuint32_t(DPCRE2_INFO_EXTRAOPTIONS): 57411 *(*Tuint32_t)(unsafe.Pointer(where)) = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fextra_options 57412 break 57413 57414 case Tuint32_t(DPCRE2_INFO_FIRSTCODETYPE): 57415 *(*Tuint32_t)(unsafe.Pointer(where)) = func() uint32 { 57416 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_FIRSTSET) != Tuint32_t(0) { 57417 return uint32(1) 57418 } 57419 return func() uint32 { 57420 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_STARTLINE) != Tuint32_t(0) { 57421 return uint32(2) 57422 } 57423 return uint32(0) 57424 }() 57425 }() 57426 break 57427 57428 case Tuint32_t(DPCRE2_INFO_FIRSTCODEUNIT): 57429 *(*Tuint32_t)(unsafe.Pointer(where)) = func() uint32 { 57430 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_FIRSTSET) != Tuint32_t(0) { 57431 return (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ffirst_codeunit 57432 } 57433 return uint32(0) 57434 }() 57435 break 57436 57437 case Tuint32_t(DPCRE2_INFO_FIRSTBITMAP): 57438 *(*uintptr)(unsafe.Pointer(where)) = func() uintptr { 57439 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_FIRSTMAPSET) != Tuint32_t(0) { 57440 return re + 40 57441 } 57442 return uintptr(0) 57443 }() 57444 break 57445 57446 case Tuint32_t(DPCRE2_INFO_FRAMESIZE): 57447 *(*Tsize_t)(unsafe.Pointer(where)) = uint64(uintptr(0)+128) + uint64(int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftop_bracket)*2)*uint64(unsafe.Sizeof(Tsize_t(0))) 57448 break 57449 57450 case Tuint32_t(DPCRE2_INFO_HASBACKSLASHC): 57451 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_HASBKC) != Tuint32_t(0))) 57452 break 57453 57454 case Tuint32_t(DPCRE2_INFO_HASCRORLF): 57455 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_HASCRORLF) != Tuint32_t(0))) 57456 break 57457 57458 case Tuint32_t(DPCRE2_INFO_HEAPLIMIT): 57459 *(*Tuint32_t)(unsafe.Pointer(where)) = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_heap 57460 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_heap == 4294967295 { 57461 return -55 57462 } 57463 break 57464 57465 case Tuint32_t(DPCRE2_INFO_JCHANGED): 57466 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_JCHANGED) != Tuint32_t(0))) 57467 break 57468 57469 case Tuint32_t(DPCRE2_INFO_JITSIZE): 57470 *(*Tsize_t)(unsafe.Pointer(where)) = uint64(0) 57471 break 57472 57473 case Tuint32_t(DPCRE2_INFO_LASTCODETYPE): 57474 *(*Tuint32_t)(unsafe.Pointer(where)) = func() uint32 { 57475 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_LASTSET) != Tuint32_t(0) { 57476 return uint32(1) 57477 } 57478 return uint32(0) 57479 }() 57480 break 57481 57482 case Tuint32_t(DPCRE2_INFO_LASTCODEUNIT): 57483 *(*Tuint32_t)(unsafe.Pointer(where)) = func() uint32 { 57484 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_LASTSET) != Tuint32_t(0) { 57485 return (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flast_codeunit 57486 } 57487 return uint32(0) 57488 }() 57489 break 57490 57491 case Tuint32_t(DPCRE2_INFO_MATCHEMPTY): 57492 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t(libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_MATCH_EMPTY) != Tuint32_t(0))) 57493 break 57494 57495 case Tuint32_t(DPCRE2_INFO_MATCHLIMIT): 57496 *(*Tuint32_t)(unsafe.Pointer(where)) = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_match 57497 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flimit_match == 4294967295 { 57498 return -55 57499 } 57500 break 57501 57502 case Tuint32_t(DPCRE2_INFO_MAXLOOKBEHIND): 57503 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmax_lookbehind) 57504 break 57505 57506 case Tuint32_t(DPCRE2_INFO_MINLENGTH): 57507 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fminlength) 57508 break 57509 57510 case Tuint32_t(DPCRE2_INFO_NAMEENTRYSIZE): 57511 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_entry_size) 57512 break 57513 57514 case Tuint32_t(DPCRE2_INFO_NAMECOUNT): 57515 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_count) 57516 break 57517 57518 case Tuint32_t(DPCRE2_INFO_NAMETABLE): 57519 *(*TPCRE2_SPTR8)(unsafe.Pointer(where)) = re + uintptr(uint64(unsafe.Sizeof(Tpcre2_real_code_8{}))) 57520 break 57521 57522 case Tuint32_t(DPCRE2_INFO_NEWLINE): 57523 *(*Tuint32_t)(unsafe.Pointer(where)) = Tuint32_t((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fnewline_convention) 57524 break 57525 57526 case Tuint32_t(DPCRE2_INFO_SIZE): 57527 *(*Tsize_t)(unsafe.Pointer(where)) = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fblocksize 57528 break 57529 57530 default: 57531 return -34 57532 } 57533 57534 return 0 57535 } 57536 57537 // ************************************************ 57538 // 57539 // Callout enumerator * 57540 // 57541 57542 // 57543 // Arguments: 57544 // code points to compiled code 57545 // callback function called for each callout block 57546 // callout_data user data passed to the callback 57547 // 57548 // Returns: 0 when successfully completed 57549 // < 0 on local error 57550 // != 0 for callback error 57551 57552 func Xpcre2_callout_enumerate_8(tls *libc.TLS, code uintptr, callback uintptr, callout_data uintptr) int32 { /* pcre2_pattern_info.c:268:1: */ 57553 bp := tls.Alloc(56) 57554 defer tls.Free(56) 57555 57556 var re uintptr = code 57557 // var cb Tpcre2_callout_enumerate_block_8 at bp, 56 57558 57559 var cc TPCRE2_SPTR8 57560 var utf TBOOL 57561 57562 if re == uintptr(0) { 57563 return -51 57564 } 57565 57566 utf = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_UTF != Tuint32_t(0)) 57567 57568 // Check that the first field in the block is the magic number. If it is not, 57569 // return with PCRE2_ERROR_BADMAGIC. 57570 57571 if uint64((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmagic_number) != DMAGIC_NUMBER { 57572 return -31 57573 } 57574 57575 // Check that this pattern was compiled in the correct bit mode 57576 57577 if (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_CODE_UNIT_WIDTH/8) == Tuint32_t(0) { 57578 return -32 57579 } 57580 57581 (*Tpcre2_callout_enumerate_block_8)(unsafe.Pointer(bp /* &cb */)).Fversion = Tuint32_t(0) 57582 cc = re + uintptr(uint64(unsafe.Sizeof(Tpcre2_real_code_8{}))) + 57583 uintptr(int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_count)*int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_entry_size)) 57584 57585 for 1 != 0 { 57586 var rc int32 57587 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))) { 57588 case OP_END: 57589 return 0 57590 57591 case OP_CHAR: 57592 fallthrough 57593 case OP_CHARI: 57594 fallthrough 57595 case OP_NOT: 57596 fallthrough 57597 case OP_NOTI: 57598 fallthrough 57599 case OP_STAR: 57600 fallthrough 57601 case OP_MINSTAR: 57602 fallthrough 57603 case OP_PLUS: 57604 fallthrough 57605 case OP_MINPLUS: 57606 fallthrough 57607 case OP_QUERY: 57608 fallthrough 57609 case OP_MINQUERY: 57610 fallthrough 57611 case OP_UPTO: 57612 fallthrough 57613 case OP_MINUPTO: 57614 fallthrough 57615 case OP_EXACT: 57616 fallthrough 57617 case OP_POSSTAR: 57618 fallthrough 57619 case OP_POSPLUS: 57620 fallthrough 57621 case OP_POSQUERY: 57622 fallthrough 57623 case OP_POSUPTO: 57624 fallthrough 57625 case OP_STARI: 57626 fallthrough 57627 case OP_MINSTARI: 57628 fallthrough 57629 case OP_PLUSI: 57630 fallthrough 57631 case OP_MINPLUSI: 57632 fallthrough 57633 case OP_QUERYI: 57634 fallthrough 57635 case OP_MINQUERYI: 57636 fallthrough 57637 case OP_UPTOI: 57638 fallthrough 57639 case OP_MINUPTOI: 57640 fallthrough 57641 case OP_EXACTI: 57642 fallthrough 57643 case OP_POSSTARI: 57644 fallthrough 57645 case OP_POSPLUSI: 57646 fallthrough 57647 case OP_POSQUERYI: 57648 fallthrough 57649 case OP_POSUPTOI: 57650 fallthrough 57651 case OP_NOTSTAR: 57652 fallthrough 57653 case OP_NOTMINSTAR: 57654 fallthrough 57655 case OP_NOTPLUS: 57656 fallthrough 57657 case OP_NOTMINPLUS: 57658 fallthrough 57659 case OP_NOTQUERY: 57660 fallthrough 57661 case OP_NOTMINQUERY: 57662 fallthrough 57663 case OP_NOTUPTO: 57664 fallthrough 57665 case OP_NOTMINUPTO: 57666 fallthrough 57667 case OP_NOTEXACT: 57668 fallthrough 57669 case OP_NOTPOSSTAR: 57670 fallthrough 57671 case OP_NOTPOSPLUS: 57672 fallthrough 57673 case OP_NOTPOSQUERY: 57674 fallthrough 57675 case OP_NOTPOSUPTO: 57676 fallthrough 57677 case OP_NOTSTARI: 57678 fallthrough 57679 case OP_NOTMINSTARI: 57680 fallthrough 57681 case OP_NOTPLUSI: 57682 fallthrough 57683 case OP_NOTMINPLUSI: 57684 fallthrough 57685 case OP_NOTQUERYI: 57686 fallthrough 57687 case OP_NOTMINQUERYI: 57688 fallthrough 57689 case OP_NOTUPTOI: 57690 fallthrough 57691 case OP_NOTMINUPTOI: 57692 fallthrough 57693 case OP_NOTEXACTI: 57694 fallthrough 57695 case OP_NOTPOSSTARI: 57696 fallthrough 57697 case OP_NOTPOSPLUSI: 57698 fallthrough 57699 case OP_NOTPOSQUERYI: 57700 fallthrough 57701 case OP_NOTPOSUPTOI: 57702 cc += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))]) 57703 if utf != 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + libc.UintptrFromInt32(-1)))) >= 0xc0 { 57704 cc += TPCRE2_SPTR8(X_pcre2_utf8_table4[uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + libc.UintptrFromInt32(-1))))&0x3f]) 57705 } 57706 break 57707 57708 case OP_TYPESTAR: 57709 fallthrough 57710 case OP_TYPEMINSTAR: 57711 fallthrough 57712 case OP_TYPEPLUS: 57713 fallthrough 57714 case OP_TYPEMINPLUS: 57715 fallthrough 57716 case OP_TYPEQUERY: 57717 fallthrough 57718 case OP_TYPEMINQUERY: 57719 fallthrough 57720 case OP_TYPEUPTO: 57721 fallthrough 57722 case OP_TYPEMINUPTO: 57723 fallthrough 57724 case OP_TYPEEXACT: 57725 fallthrough 57726 case OP_TYPEPOSSTAR: 57727 fallthrough 57728 case OP_TYPEPOSPLUS: 57729 fallthrough 57730 case OP_TYPEPOSQUERY: 57731 fallthrough 57732 case OP_TYPEPOSUPTO: 57733 cc += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))]) 57734 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + libc.UintptrFromInt32(-1)))) == OP_PROP || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + libc.UintptrFromInt32(-1)))) == OP_NOTPROP { 57735 cc += uintptr(2) 57736 } 57737 break 57738 57739 case OP_XCLASS: 57740 cc += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 57741 break 57742 57743 case OP_MARK: 57744 fallthrough 57745 case OP_COMMIT_ARG: 57746 fallthrough 57747 case OP_PRUNE_ARG: 57748 fallthrough 57749 case OP_SKIP_ARG: 57750 fallthrough 57751 case OP_THEN_ARG: 57752 cc += TPCRE2_SPTR8(int32(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))]) + int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))) 57753 break 57754 57755 case OP_CALLOUT: 57756 (*Tpcre2_callout_enumerate_block_8)(unsafe.Pointer(bp /* &cb */)).Fpattern_position = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 57757 (*Tpcre2_callout_enumerate_block_8)(unsafe.Pointer(bp /* &cb */)).Fnext_item_length = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 4))))) 57758 (*Tpcre2_callout_enumerate_block_8)(unsafe.Pointer(bp /* &cb */)).Fcallout_number = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 5))) 57759 (*Tpcre2_callout_enumerate_block_8)(unsafe.Pointer(bp /* &cb */)).Fcallout_string_offset = uint64(0) 57760 (*Tpcre2_callout_enumerate_block_8)(unsafe.Pointer(bp /* &cb */)).Fcallout_string_length = uint64(0) 57761 (*Tpcre2_callout_enumerate_block_8)(unsafe.Pointer(bp /* &cb */)).Fcallout_string = uintptr(0) 57762 rc = (*struct { 57763 f func(*libc.TLS, uintptr, uintptr) int32 57764 })(unsafe.Pointer(&struct{ uintptr }{callback})).f(tls, bp /* &cb */, callout_data) 57765 if rc != 0 { 57766 return rc 57767 } 57768 cc += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))]) 57769 break 57770 57771 case OP_CALLOUT_STR: 57772 (*Tpcre2_callout_enumerate_block_8)(unsafe.Pointer(bp /* &cb */)).Fpattern_position = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 57773 (*Tpcre2_callout_enumerate_block_8)(unsafe.Pointer(bp /* &cb */)).Fnext_item_length = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 4))))) 57774 (*Tpcre2_callout_enumerate_block_8)(unsafe.Pointer(bp /* &cb */)).Fcallout_number = Tuint32_t(0) 57775 (*Tpcre2_callout_enumerate_block_8)(unsafe.Pointer(bp /* &cb */)).Fcallout_string_offset = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 7)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 8))))) 57776 (*Tpcre2_callout_enumerate_block_8)(unsafe.Pointer(bp /* &cb */)).Fcallout_string_length = Tsize_t(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 5)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 6)))) - uint32(1+4*DLINK_SIZE) - uint32(2)) 57777 (*Tpcre2_callout_enumerate_block_8)(unsafe.Pointer(bp /* &cb */)).Fcallout_string = cc + uintptr(1+4*DLINK_SIZE) + uintptr(1) 57778 rc = (*struct { 57779 f func(*libc.TLS, uintptr, uintptr) int32 57780 })(unsafe.Pointer(&struct{ uintptr }{callback})).f(tls, bp /* &cb */, callout_data) 57781 if rc != 0 { 57782 return rc 57783 } 57784 cc += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 5)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 6))))) 57785 break 57786 57787 default: 57788 cc += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))]) 57789 break 57790 } 57791 } 57792 return int32(0) 57793 } 57794 57795 // End of pcre2_pattern_info.c 57796 57797 func X_pcre2_script_run_8(tls *libc.TLS, ptr TPCRE2_SPTR8, endptr TPCRE2_SPTR8, utf TBOOL) TBOOL { /* pcre2_script_run.c:85:1: */ 57798 bp := tls.Alloc(48) 57799 defer tls.Free(48) 57800 57801 var require_state Tuint32_t = SCRIPT_UNSET 57802 // var require_map [6]Tuint32_t at bp, 24 57803 57804 // var map1 [6]Tuint32_t at bp+24, 24 57805 57806 var require_digitset Tuint32_t = Tuint32_t(0) 57807 var c Tuint32_t 57808 57809 // Any string containing fewer than 2 characters is a valid script run. 57810 57811 if ptr >= endptr { 57812 return DTRUE 57813 } 57814 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&ptr, 1)))) 57815 if utf != 0 && c >= 0xc0 { 57816 if c&0x20 == Tuint32_t(0) { 57817 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&ptr, 1))))&0x3f 57818 } else if c&0x10 == Tuint32_t(0) { 57819 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f 57820 ptr += uintptr(2) 57821 } else if c&0x08 == Tuint32_t(0) { 57822 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f 57823 ptr += uintptr(3) 57824 } else if c&0x04 == Tuint32_t(0) { 57825 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f 57826 ptr += uintptr(4) 57827 } else { 57828 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 4)))&0x3f 57829 ptr += uintptr(5) 57830 } 57831 } 57832 57833 if ptr >= endptr { 57834 return DTRUE 57835 } 57836 57837 // Initialize the require map. This is a full-size bitmap that has a bit for 57838 // every script, as opposed to the maps in ucd_script_sets, which only have bits 57839 // for scripts less than ucp_Unknown - those that appear in script extension 57840 // lists. 57841 57842 { 57843 var i int32 = 0 57844 __1: 57845 if !(i < ucp_Script_Count/32+1) { 57846 goto __3 57847 } 57848 *(*Tuint32_t)(unsafe.Pointer(bp + uintptr(i)*4)) = Tuint32_t(0) 57849 goto __2 57850 __2: 57851 i++ 57852 goto __1 57853 goto __3 57854 __3: 57855 } 57856 57857 // Scan strings of two or more characters, checking the Unicode characteristics 57858 // of each code point. There is special code for scripts that can be combined with 57859 // characters from the Han Chinese script. This may be used in conjunction with 57860 // four other scripts in these combinations: 57861 // 57862 // . Han with Hiragana and Katakana is allowed (for Japanese). 57863 // . Han with Bopomofo is allowed (for Taiwanese Mandarin). 57864 // . Han with Hangul is allowed (for Korean). 57865 // 57866 // If the first significant character's script is one of the four, the required 57867 // script type is immediately known. However, if the first significant 57868 // character's script is Han, we have to keep checking for a non-Han character. 57869 // Hence the SCRIPT_HANPENDING state. 57870 57871 for { 57872 var ucd uintptr = uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12 57873 var script Tuint32_t = Tuint32_t((*Tucd_record)(unsafe.Pointer(ucd)).Fscript) 57874 57875 // If the script is Unknown, the string is not a valid script run. Such 57876 // characters can only form script runs of length one (see test above). 57877 57878 if script == ucp_Unknown { 57879 return DFALSE 57880 } 57881 57882 // A character without any script extensions whose script is Inherited or 57883 // Common is always accepted with any script. If there are extensions, the 57884 // following processing happens for all scripts. 57885 57886 if int32((*Tucd_record)(unsafe.Pointer(ucd)).Fscriptx_bidiclass)&DUCD_SCRIPTX_MASK != 0 || script != ucp_Inherited && script != ucp_Common { 57887 var OK TBOOL 57888 57889 // Set up a full-sized map for this character that can include bits for all 57890 // scripts. Copy the scriptx map for this character (which covers those 57891 // scripts that appear in script extension lists), set the remaining values to 57892 // zero, and then, except for Common or Inherited, add this script's bit to 57893 // the map. 57894 57895 libc.Xmemcpy(tls, bp+24, uintptr(unsafe.Pointer(&X_pcre2_ucd_script_sets_8))+uintptr(int32((*Tucd_record)(unsafe.Pointer(ucd)).Fscriptx_bidiclass)&DUCD_SCRIPTX_MASK)*4, uint64(ucp_Unknown/32+1)*uint64(unsafe.Sizeof(Tuint32_t(0)))) 57896 libc.Xmemset(tls, bp+24+uintptr(ucp_Unknown/32+1)*4, 0, uint64(ucp_Script_Count/32+1-(ucp_Unknown/32+1))*uint64(unsafe.Sizeof(Tuint32_t(0)))) 57897 if script != ucp_Common && script != ucp_Inherited { 57898 *(*Tuint32_t)(unsafe.Pointer(bp + 24 + uintptr(script/Tuint32_t(32))*4)) |= uint32(1) << (script % Tuint32_t(32)) 57899 } 57900 57901 // Handle the different checking states 57902 57903 switch require_state { 57904 // First significant character - it might follow Common or Inherited 57905 // characters that do not have any script extensions. 57906 57907 case SCRIPT_UNSET: 57908 switch script { 57909 case ucp_Han: 57910 require_state = SCRIPT_HANPENDING 57911 break 57912 fallthrough 57913 57914 case ucp_Hiragana: 57915 fallthrough 57916 case ucp_Katakana: 57917 require_state = SCRIPT_HANHIRAKATA 57918 break 57919 fallthrough 57920 57921 case ucp_Bopomofo: 57922 require_state = SCRIPT_HANBOPOMOFO 57923 break 57924 fallthrough 57925 57926 case ucp_Hangul: 57927 require_state = SCRIPT_HANHANGUL 57928 break 57929 fallthrough 57930 57931 default: 57932 libc.Xmemcpy(tls, bp, bp+24, uint64(ucp_Script_Count/32+1)*uint64(unsafe.Sizeof(Tuint32_t(0)))) 57933 require_state = SCRIPT_MAP 57934 break 57935 } 57936 break 57937 fallthrough 57938 57939 // The first significant character was Han. An inspection of the Unicode 57940 // 11.0.0 files shows that there are the following types of Script Extension 57941 // list that involve the Han, Bopomofo, Hiragana, Katakana, and Hangul 57942 // scripts: 57943 // 57944 // . Bopomofo + Han 57945 // . Han + Hiragana + Katakana 57946 // . Hiragana + Katakana 57947 // . Bopopmofo + Hangul + Han + Hiragana + Katakana 57948 // 57949 // The following code tries to make sense of this. 57950 57951 case SCRIPT_HANPENDING: 57952 if script != ucp_Han { 57953 var chspecial Tuint32_t = Tuint32_t(0) 57954 57955 if *(*Tuint32_t)(unsafe.Pointer(bp + 24))&(uint32(1)<<(ucp_Bopomofo%32)) != Tuint32_t(0) { 57956 chspecial = chspecial | Tuint32_t(DFOUND_BOPOMOFO) 57957 } 57958 if *(*Tuint32_t)(unsafe.Pointer(bp + 24))&(uint32(1)<<(ucp_Hiragana%32)) != Tuint32_t(0) { 57959 chspecial = chspecial | Tuint32_t(DFOUND_HIRAGANA) 57960 } 57961 if *(*Tuint32_t)(unsafe.Pointer(bp + 24))&(uint32(1)<<(ucp_Katakana%32)) != Tuint32_t(0) { 57962 chspecial = chspecial | Tuint32_t(DFOUND_KATAKANA) 57963 } 57964 if *(*Tuint32_t)(unsafe.Pointer(bp + 24))&(uint32(1)<<(ucp_Hangul%32)) != Tuint32_t(0) { 57965 chspecial = chspecial | Tuint32_t(DFOUND_HANGUL) 57966 } 57967 57968 if chspecial == Tuint32_t(0) { 57969 return DFALSE 57970 } // Not allowed with Han 57971 57972 if chspecial == Tuint32_t(DFOUND_BOPOMOFO) { 57973 require_state = SCRIPT_HANBOPOMOFO 57974 } else if chspecial == Tuint32_t(DFOUND_HIRAGANA|DFOUND_KATAKANA) { 57975 require_state = SCRIPT_HANHIRAKATA 57976 } 57977 57978 // Otherwise this character must be allowed with all of them, so remain 57979 // in the pending state. 57980 } 57981 break 57982 fallthrough 57983 57984 // Previously encountered one of the "with Han" scripts. Check that 57985 // this character is appropriate. 57986 57987 case SCRIPT_HANHIRAKATA: 57988 if *(*Tuint32_t)(unsafe.Pointer(bp + 24))&(uint32(1)<<(ucp_Han%32))+*(*Tuint32_t)(unsafe.Pointer(bp + 24))&(uint32(1)<<(ucp_Hiragana%32))+*(*Tuint32_t)(unsafe.Pointer(bp + 24))&(uint32(1)<<(ucp_Katakana%32)) == Tuint32_t(0) { 57989 return DFALSE 57990 } 57991 break 57992 fallthrough 57993 57994 case SCRIPT_HANBOPOMOFO: 57995 if *(*Tuint32_t)(unsafe.Pointer(bp + 24))&(uint32(1)<<(ucp_Han%32))+*(*Tuint32_t)(unsafe.Pointer(bp + 24))&(uint32(1)<<(ucp_Bopomofo%32)) == Tuint32_t(0) { 57996 return DFALSE 57997 } 57998 break 57999 fallthrough 58000 58001 case SCRIPT_HANHANGUL: 58002 if *(*Tuint32_t)(unsafe.Pointer(bp + 24))&(uint32(1)<<(ucp_Han%32))+*(*Tuint32_t)(unsafe.Pointer(bp + 24))&(uint32(1)<<(ucp_Hangul%32)) == Tuint32_t(0) { 58003 return DFALSE 58004 } 58005 break 58006 fallthrough 58007 58008 // Previously encountered one or more characters that are allowed with a 58009 // list of scripts. 58010 58011 case SCRIPT_MAP: 58012 OK = DFALSE 58013 58014 { 58015 var i int32 = 0 58016 __4: 58017 if !(i < ucp_Script_Count/32+1) { 58018 goto __6 58019 } 58020 { 58021 if *(*Tuint32_t)(unsafe.Pointer(bp + uintptr(i)*4))&*(*Tuint32_t)(unsafe.Pointer(bp + 24 + uintptr(i)*4)) != Tuint32_t(0) { 58022 OK = DTRUE 58023 goto __6 58024 } 58025 58026 } 58027 goto __5 58028 __5: 58029 i++ 58030 goto __4 58031 goto __6 58032 __6: 58033 } 58034 58035 if !(OK != 0) { 58036 return DFALSE 58037 } 58038 58039 // The rest of the string must be in this script, but we have to 58040 // allow for the Han complications. 58041 58042 switch script { 58043 case ucp_Han: 58044 require_state = SCRIPT_HANPENDING 58045 break 58046 fallthrough 58047 58048 case ucp_Hiragana: 58049 fallthrough 58050 case ucp_Katakana: 58051 require_state = SCRIPT_HANHIRAKATA 58052 break 58053 fallthrough 58054 58055 case ucp_Bopomofo: 58056 require_state = SCRIPT_HANBOPOMOFO 58057 break 58058 fallthrough 58059 58060 case ucp_Hangul: 58061 require_state = SCRIPT_HANHANGUL 58062 break 58063 fallthrough 58064 58065 // Compute the intersection of the required list of scripts and the 58066 // allowed scripts for this character. 58067 58068 default: 58069 { 58070 var i int32 = 0 58071 __7: 58072 if !(i < ucp_Script_Count/32+1) { 58073 goto __9 58074 } 58075 *(*Tuint32_t)(unsafe.Pointer(bp + uintptr(i)*4)) &= *(*Tuint32_t)(unsafe.Pointer(bp + 24 + uintptr(i)*4)) 58076 goto __8 58077 __8: 58078 i++ 58079 goto __7 58080 goto __9 58081 __9: 58082 } 58083 break 58084 } 58085 58086 break 58087 } 58088 } // End checking character's script and extensions. 58089 58090 // The character is in an acceptable script. We must now ensure that all 58091 // decimal digits in the string come from the same set. Some scripts (e.g. 58092 // Common, Arabic) have more than one set of decimal digits. This code does 58093 // not allow mixing sets, even within the same script. The vector called 58094 // PRIV(ucd_digit_sets)[] contains, in its first element, the number of 58095 // following elements, and then, in ascending order, the code points of the 58096 // '9' characters in every set of 10 digits. Each set is identified by the 58097 // offset in the vector of its '9' character. An initial check of the first 58098 // value picks up ASCII digits quickly. Otherwise, a binary chop is used. 58099 58100 if int32((*Tucd_record)(unsafe.Pointer(ucd)).Fchartype) == ucp_Nd { 58101 var digitset Tuint32_t 58102 58103 if c <= X_pcre2_ucd_digit_sets_8[1] { 58104 digitset = Tuint32_t(1) 58105 } else { 58106 var mid int32 58107 var bot int32 = 1 58108 var top int32 = int32(X_pcre2_ucd_digit_sets_8[0]) 58109 for { 58110 if top <= bot+1 { 58111 digitset = Tuint32_t(top) 58112 break 58113 } 58114 mid = (top + bot) / 2 58115 if c <= X_pcre2_ucd_digit_sets_8[mid] { 58116 top = mid 58117 } else { 58118 bot = mid 58119 } 58120 } 58121 } 58122 58123 // A required value of 0 means "unset". 58124 58125 if require_digitset == Tuint32_t(0) { 58126 require_digitset = digitset 58127 } else if digitset != require_digitset { 58128 return DFALSE 58129 } 58130 } // End digit handling 58131 58132 // If we haven't yet got to the end, pick up the next character. 58133 58134 if ptr >= endptr { 58135 return DTRUE 58136 } 58137 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&ptr, 1)))) 58138 if utf != 0 && c >= 0xc0 { 58139 if c&0x20 == Tuint32_t(0) { 58140 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&ptr, 1))))&0x3f 58141 } else if c&0x10 == Tuint32_t(0) { 58142 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f 58143 ptr += uintptr(2) 58144 } else if c&0x08 == Tuint32_t(0) { 58145 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f 58146 ptr += uintptr(3) 58147 } else if c&0x04 == Tuint32_t(0) { 58148 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f 58149 ptr += uintptr(4) 58150 } else { 58151 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ptr + 4)))&0x3f 58152 ptr += uintptr(5) 58153 } 58154 } 58155 58156 } 58157 return TBOOL(0) // End checking loop 58158 58159 } 58160 58161 // End of pcre2_script_run.c 58162 58163 // This function is needed only when memmove() is not available. 58164 58165 // End of pcre2_internal.h 58166 58167 // Magic number to provide a small check against being handed junk. 58168 58169 // Deserialization is limited to the current PCRE version and 58170 // character width. 58171 58172 // ************************************************ 58173 // 58174 // Serialize compiled patterns * 58175 // 58176 58177 func Xpcre2_serialize_encode_8(tls *libc.TLS, codes uintptr, number_of_codes Tint32_t, serialized_bytes uintptr, serialized_size uintptr, gcontext uintptr) Tint32_t { /* pcre2_serialize.c:72:1: */ 58178 var bytes uintptr 58179 var dst_bytes uintptr 58180 var i Tint32_t 58181 var total_size Tsize_t 58182 var re uintptr 58183 var tables uintptr 58184 var data uintptr 58185 58186 var memctl uintptr 58187 if gcontext != uintptr(0) { 58188 memctl = gcontext 58189 } else { 58190 memctl = uintptr(unsafe.Pointer(&X_pcre2_default_compile_context_8)) 58191 } 58192 58193 if codes == uintptr(0) || serialized_bytes == uintptr(0) || serialized_size == uintptr(0) { 58194 return -51 58195 } 58196 58197 if number_of_codes <= 0 { 58198 return -29 58199 } 58200 58201 // Compute total size. 58202 total_size = uint64(unsafe.Sizeof(Tpcre2_serialized_data{})) + uint64(Dcbits_offset+Dcbit_length+256) 58203 tables = uintptr(0) 58204 58205 for i = 0; i < number_of_codes; i++ { 58206 if *(*uintptr)(unsafe.Pointer(codes + uintptr(i)*8)) == uintptr(0) { 58207 return -51 58208 } 58209 re = *(*uintptr)(unsafe.Pointer(codes + uintptr(i)*8)) 58210 if uint64((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fmagic_number) != DMAGIC_NUMBER { 58211 return -31 58212 } 58213 if tables == uintptr(0) { 58214 tables = (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftables 58215 } else if tables != (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftables { 58216 return -30 58217 } 58218 total_size = total_size + (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fblocksize 58219 } 58220 58221 // Initialize the byte stream. 58222 bytes = (*struct { 58223 f func(*libc.TLS, Tsize_t, uintptr) uintptr 58224 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmalloc})).f(tls, total_size+Tsize_t(unsafe.Sizeof(Tpcre2_memctl{})), (*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmemory_data) 58225 if bytes == uintptr(0) { 58226 return -48 58227 } 58228 58229 // The controller is stored as a hidden parameter. 58230 libc.Xmemcpy(tls, bytes, memctl, uint64(unsafe.Sizeof(Tpcre2_memctl{}))) 58231 bytes += uintptr(unsafe.Sizeof(Tpcre2_memctl{})) 58232 58233 data = bytes 58234 (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fmagic = DSERIALIZED_DATA_MAGIC 58235 (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fversion = Tuint32_t(DPCRE2_MAJOR | int32(DPCRE2_MINOR)<<16) 58236 (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fconfig = uint32(uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0))) | uint64(uint64(unsafe.Sizeof(uintptr(0))))<<8 | uint64(uint64(unsafe.Sizeof(Tsize_t(0))))<<16) 58237 (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fnumber_of_codes = number_of_codes 58238 58239 // Copy all compiled code data. 58240 dst_bytes = bytes + uintptr(uint64(unsafe.Sizeof(Tpcre2_serialized_data{}))) 58241 libc.Xmemcpy(tls, dst_bytes, tables, uint64(Dcbits_offset+Dcbit_length+256)) 58242 dst_bytes += uintptr(Dcbits_offset + Dcbit_length + 256) 58243 58244 for i = 0; i < number_of_codes; i++ { 58245 re = *(*uintptr)(unsafe.Pointer(codes + uintptr(i)*8)) 58246 libc.Xmemcpy(tls, dst_bytes, re, (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fblocksize) 58247 58248 // Certain fields in the compiled code block are re-set during 58249 // deserialization. In order to ensure that the serialized data stream is always 58250 // the same for the same pattern, set them to zero here. We can't assume the 58251 // copy of the pattern is correctly aligned for accessing the fields as part of 58252 // a structure. Note the use of sizeof(void *) in the second of these, to 58253 // specify the size of a pointer. If sizeof(uint8_t *) is used (tables is a 58254 // pointer to uint8_t), gcc gives a warning because the first argument is also a 58255 // pointer to uint8_t. Casting the first argument to (void *) can stop this, but 58256 // it didn't stop Coverity giving the same complaint. 58257 58258 libc.Xmemset(tls, dst_bytes+uintptr(uint64(uintptr(0))), 0, 58259 uint64(unsafe.Sizeof(Tpcre2_memctl{}))) 58260 libc.Xmemset(tls, dst_bytes+uintptr(uint64(uintptr(0)+24)), 0, 58261 uint64(unsafe.Sizeof(uintptr(0)))) 58262 libc.Xmemset(tls, dst_bytes+uintptr(uint64(uintptr(0)+32)), 0, 58263 uint64(unsafe.Sizeof(uintptr(0)))) 58264 58265 dst_bytes += uintptr((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fblocksize) 58266 } 58267 58268 *(*uintptr)(unsafe.Pointer(serialized_bytes)) = bytes 58269 *(*Tsize_t)(unsafe.Pointer(serialized_size)) = total_size 58270 return number_of_codes 58271 } 58272 58273 // ************************************************ 58274 // 58275 // Deserialize compiled patterns * 58276 // 58277 58278 func Xpcre2_serialize_decode_8(tls *libc.TLS, codes uintptr, number_of_codes Tint32_t, bytes uintptr, gcontext uintptr) Tint32_t { /* pcre2_serialize.c:163:1: */ 58279 bp := tls.Alloc(8) 58280 defer tls.Free(8) 58281 58282 var data uintptr = bytes 58283 var memctl uintptr 58284 if gcontext != uintptr(0) { 58285 memctl = gcontext 58286 } else { 58287 memctl = uintptr(unsafe.Pointer(&X_pcre2_default_compile_context_8)) 58288 } 58289 var src_bytes uintptr 58290 var dst_re uintptr 58291 var tables uintptr 58292 var i Tint32_t 58293 var j Tint32_t 58294 58295 // Sanity checks. 58296 58297 if data == uintptr(0) || codes == uintptr(0) { 58298 return -51 58299 } 58300 if number_of_codes <= 0 { 58301 return -29 58302 } 58303 if (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fnumber_of_codes <= 0 { 58304 return -62 58305 } 58306 if (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fmagic != DSERIALIZED_DATA_MAGIC { 58307 return -31 58308 } 58309 if (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fversion != Tuint32_t(DPCRE2_MAJOR|int32(DPCRE2_MINOR)<<16) { 58310 return -32 58311 } 58312 if uint64((*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fconfig) != uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0)))|uint64(uint64(unsafe.Sizeof(uintptr(0))))<<8|uint64(uint64(unsafe.Sizeof(Tsize_t(0))))<<16 { 58313 return -32 58314 } 58315 58316 if number_of_codes > (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fnumber_of_codes { 58317 number_of_codes = (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fnumber_of_codes 58318 } 58319 58320 src_bytes = bytes + uintptr(uint64(unsafe.Sizeof(Tpcre2_serialized_data{}))) 58321 58322 // Decode tables. The reference count for the tables is stored immediately 58323 // following them. 58324 58325 tables = (*struct { 58326 f func(*libc.TLS, Tsize_t, uintptr) uintptr 58327 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmalloc})).f(tls, uint64(Dcbits_offset+Dcbit_length+256)+uint64(unsafe.Sizeof(Tsize_t(0))), (*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmemory_data) 58328 if tables == uintptr(0) { 58329 return -48 58330 } 58331 58332 libc.Xmemcpy(tls, tables, src_bytes, uint64(Dcbits_offset+Dcbit_length+256)) 58333 *(*Tsize_t)(unsafe.Pointer(tables + uintptr(Dcbits_offset+Dcbit_length+256))) = Tsize_t(number_of_codes) 58334 src_bytes += uintptr(Dcbits_offset + Dcbit_length + 256) 58335 58336 // Decode the byte stream. We must not try to read the size from the compiled 58337 // code block in the stream, because it might be unaligned, which causes errors on 58338 // hardware such as Sparc-64 that doesn't like unaligned memory accesses. The type 58339 // of the blocksize field is given its own name to ensure that it is the same here 58340 // as in the block. 58341 58342 for i = 0; i < number_of_codes; i++ { 58343 // var blocksize Tsize_t at bp, 8 58344 58345 libc.Xmemcpy(tls, bp, src_bytes+uintptr(uint64(uintptr(0)+72)), 58346 uint64(unsafe.Sizeof(Tsize_t(0)))) 58347 if *(*Tsize_t)(unsafe.Pointer(bp)) <= Tsize_t(unsafe.Sizeof(Tpcre2_real_code_8{})) { 58348 return -62 58349 } 58350 58351 // The allocator provided by gcontext replaces the original one. 58352 58353 dst_re = X_pcre2_memctl_malloc_8(tls, *(*Tsize_t)(unsafe.Pointer(bp /* blocksize */)), 58354 gcontext) 58355 if dst_re == uintptr(0) { 58356 (*struct { 58357 f func(*libc.TLS, uintptr, uintptr) 58358 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_memctl)(unsafe.Pointer(memctl)).Ffree})).f(tls, tables, (*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmemory_data) 58359 for j = 0; j < i; j++ { 58360 (*struct { 58361 f func(*libc.TLS, uintptr, uintptr) 58362 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_memctl)(unsafe.Pointer(memctl)).Ffree})).f(tls, *(*uintptr)(unsafe.Pointer(codes + uintptr(j)*8)), (*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmemory_data) 58363 *(*uintptr)(unsafe.Pointer(codes + uintptr(j)*8)) = uintptr(0) 58364 } 58365 return -48 58366 } 58367 58368 // The new allocator must be preserved. 58369 58370 libc.Xmemcpy(tls, dst_re+uintptr(uint64(unsafe.Sizeof(Tpcre2_memctl{}))), 58371 src_bytes+uintptr(uint64(unsafe.Sizeof(Tpcre2_memctl{}))), *(*Tsize_t)(unsafe.Pointer(bp))-Tsize_t(unsafe.Sizeof(Tpcre2_memctl{}))) 58372 if uint64((*Tpcre2_real_code_8)(unsafe.Pointer(dst_re)).Fmagic_number) != DMAGIC_NUMBER || int32((*Tpcre2_real_code_8)(unsafe.Pointer(dst_re)).Fname_entry_size) > DMAX_NAME_SIZE+DIMM2_SIZE+1 || int32((*Tpcre2_real_code_8)(unsafe.Pointer(dst_re)).Fname_count) > DMAX_NAME_COUNT { 58373 (*struct { 58374 f func(*libc.TLS, uintptr, uintptr) 58375 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_memctl)(unsafe.Pointer(memctl)).Ffree})).f(tls, dst_re, (*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmemory_data) 58376 return -62 58377 } 58378 58379 // At the moment only one table is supported. 58380 58381 (*Tpcre2_real_code_8)(unsafe.Pointer(dst_re)).Ftables = tables 58382 (*Tpcre2_real_code_8)(unsafe.Pointer(dst_re)).Fexecutable_jit = uintptr(0) 58383 *(*Tuint32_t)(unsafe.Pointer(dst_re + 96)) |= Tuint32_t(DPCRE2_DEREF_TABLES) 58384 58385 *(*uintptr)(unsafe.Pointer(codes + uintptr(i)*8)) = dst_re 58386 src_bytes += uintptr(*(*Tsize_t)(unsafe.Pointer(bp /* blocksize */))) 58387 } 58388 58389 return number_of_codes 58390 } 58391 58392 // ************************************************ 58393 // 58394 // Get the number of serialized patterns * 58395 // 58396 58397 func Xpcre2_serialize_get_number_of_codes_8(tls *libc.TLS, bytes uintptr) Tint32_t { /* pcre2_serialize.c:259:1: */ 58398 var data uintptr = bytes 58399 58400 if data == uintptr(0) { 58401 return -51 58402 } 58403 if (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fmagic != DSERIALIZED_DATA_MAGIC { 58404 return -31 58405 } 58406 if (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fversion != Tuint32_t(DPCRE2_MAJOR|int32(DPCRE2_MINOR)<<16) { 58407 return -32 58408 } 58409 if uint64((*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fconfig) != uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0)))|uint64(uint64(unsafe.Sizeof(uintptr(0))))<<8|uint64(uint64(unsafe.Sizeof(Tsize_t(0))))<<16 { 58410 return -32 58411 } 58412 58413 return (*Tpcre2_serialized_data)(unsafe.Pointer(data)).Fnumber_of_codes 58414 } 58415 58416 // ************************************************ 58417 // 58418 // Free the allocated stream * 58419 // 58420 58421 func Xpcre2_serialize_free_8(tls *libc.TLS, bytes uintptr) { /* pcre2_serialize.c:277:1: */ 58422 if bytes != uintptr(0) { 58423 var memctl uintptr = bytes - uintptr(uint64(unsafe.Sizeof(Tpcre2_memctl{}))) 58424 (*struct { 58425 f func(*libc.TLS, uintptr, uintptr) 58426 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_memctl)(unsafe.Pointer(memctl)).Ffree})).f(tls, memctl, (*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmemory_data) 58427 } 58428 } 58429 58430 // End of pcre2_serialize.c 58431 58432 // This function is needed only when memmove() is not available. 58433 58434 // End of pcre2_internal.h 58435 58436 // ************************************************ 58437 // 58438 // Emulated memmove() for systems without it * 58439 // 58440 58441 // This function can make use of bcopy() if it is available. Otherwise do it by 58442 // steam, as there some non-Unix environments that lack both memmove() and 58443 // bcopy(). 58444 58445 // ************************************************ 58446 // 58447 // Compare two zero-terminated PCRE2 strings * 58448 // 58449 58450 // 58451 // Arguments: 58452 // str1 first string 58453 // str2 second string 58454 // 58455 // Returns: 0, 1, or -1 58456 58457 func X_pcre2_strcmp_8(tls *libc.TLS, str1 TPCRE2_SPTR8, str2 TPCRE2_SPTR8) int32 { /* pcre2_string_utils.c:102:1: */ 58458 var c1 TPCRE2_UCHAR8 58459 var c2 TPCRE2_UCHAR8 58460 for int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(str1))) != 0 || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(str2))) != 0 { 58461 c1 = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&str1, 1))) 58462 c2 = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&str2, 1))) 58463 if int32(c1) != int32(c2) { 58464 return libc.Bool32(int32(c1) > int32(c2))<<1 - 1 58465 } 58466 } 58467 return 0 58468 } 58469 58470 // ************************************************ 58471 // 58472 // Compare zero-terminated PCRE2 & 8-bit strings * 58473 // 58474 58475 // As the 8-bit string is almost always a literal, its type is specified as 58476 // const char *. 58477 // 58478 // Arguments: 58479 // str1 first string 58480 // str2 second string 58481 // 58482 // Returns: 0, 1, or -1 58483 58484 func X_pcre2_strcmp_c8_8(tls *libc.TLS, str1 TPCRE2_SPTR8, str2 uintptr) int32 { /* pcre2_string_utils.c:130:1: */ 58485 var c1 TPCRE2_UCHAR8 58486 var c2 TPCRE2_UCHAR8 58487 for int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(str1))) != 0 || int32(*(*int8)(unsafe.Pointer(str2))) != 0 { 58488 c1 = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&str1, 1))) 58489 c2 = TPCRE2_UCHAR8(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&str2, 1)))) 58490 if int32(c1) != int32(c2) { 58491 return libc.Bool32(int32(c1) > int32(c2))<<1 - 1 58492 } 58493 } 58494 return 0 58495 } 58496 58497 // ************************************************ 58498 // 58499 // Compare two PCRE2 strings, given a length * 58500 // 58501 58502 // 58503 // Arguments: 58504 // str1 first string 58505 // str2 second string 58506 // len the length 58507 // 58508 // Returns: 0, 1, or -1 58509 58510 func X_pcre2_strncmp_8(tls *libc.TLS, str1 TPCRE2_SPTR8, str2 TPCRE2_SPTR8, len Tsize_t) int32 { /* pcre2_string_utils.c:157:1: */ 58511 var c1 TPCRE2_UCHAR8 58512 var c2 TPCRE2_UCHAR8 58513 for ; len > uint64(0); len-- { 58514 c1 = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&str1, 1))) 58515 c2 = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&str2, 1))) 58516 if int32(c1) != int32(c2) { 58517 return libc.Bool32(int32(c1) > int32(c2))<<1 - 1 58518 } 58519 } 58520 return 0 58521 } 58522 58523 // ************************************************ 58524 // 58525 // Compare PCRE2 string to 8-bit string by length * 58526 // 58527 58528 // As the 8-bit string is almost always a literal, its type is specified as 58529 // const char *. 58530 // 58531 // Arguments: 58532 // str1 first string 58533 // str2 second string 58534 // len the length 58535 // 58536 // Returns: 0, 1, or -1 58537 58538 func X_pcre2_strncmp_c8_8(tls *libc.TLS, str1 TPCRE2_SPTR8, str2 uintptr, len Tsize_t) int32 { /* pcre2_string_utils.c:186:1: */ 58539 var c1 TPCRE2_UCHAR8 58540 var c2 TPCRE2_UCHAR8 58541 for ; len > uint64(0); len-- { 58542 c1 = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&str1, 1))) 58543 c2 = TPCRE2_UCHAR8(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&str2, 1)))) 58544 if int32(c1) != int32(c2) { 58545 return libc.Bool32(int32(c1) > int32(c2))<<1 - 1 58546 } 58547 } 58548 return 0 58549 } 58550 58551 // ************************************************ 58552 // 58553 // Find the length of a PCRE2 string * 58554 // 58555 58556 // 58557 // Argument: the string 58558 // Returns: the length 58559 58560 func X_pcre2_strlen_8(tls *libc.TLS, str TPCRE2_SPTR8) Tsize_t { /* pcre2_string_utils.c:209:1: */ 58561 var c Tsize_t = uint64(0) 58562 for int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&str, 1)))) != 0 { 58563 c++ 58564 } 58565 return c 58566 } 58567 58568 // ************************************************ 58569 // 58570 // Copy 8-bit 0-terminated string to PCRE2 string * 58571 // 58572 58573 // Arguments: 58574 // str1 buffer to receive the string 58575 // str2 8-bit string to be copied 58576 // 58577 // Returns: the number of code units used (excluding trailing zero) 58578 58579 func X_pcre2_strcpy_c8_8(tls *libc.TLS, str1 uintptr, str2 uintptr) Tsize_t { /* pcre2_string_utils.c:229:1: */ 58580 var t uintptr = str1 58581 for int32(*(*int8)(unsafe.Pointer(str2))) != 0 { 58582 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&t, 1))) = TPCRE2_UCHAR8(*(*int8)(unsafe.Pointer(libc.PostIncUintptr(&str2, 1)))) 58583 } 58584 *(*TPCRE2_UCHAR8)(unsafe.Pointer(t)) = TPCRE2_UCHAR8(0) 58585 return Tsize_t((int64(t) - int64(str1)) / 1) 58586 } 58587 58588 // End of pcre2_string_utils.c 58589 58590 // ************************************************ 58591 // 58592 // Find the minimum subject length for a group * 58593 // 58594 58595 // Scan a parenthesized group and compute the minimum length of subject that 58596 // is needed to match it. This is a lower bound; it does not mean there is a 58597 // string of that length that matches. In UTF mode, the result is in characters 58598 // rather than code units. The field in a compiled pattern for storing the minimum 58599 // length is 16-bits long (on the grounds that anything longer than that is 58600 // pathological), so we give up when we reach that amount. This also means that 58601 // integer overflow for really crazy patterns cannot happen. 58602 // 58603 // Backreference minimum lengths are cached to speed up multiple references. This 58604 // function is called only when the highest back reference in the pattern is less 58605 // than or equal to MAX_CACHE_BACKREF, which is one less than the size of the 58606 // caching vector. The zeroth element contains the number of the highest set 58607 // value. 58608 // 58609 // Arguments: 58610 // re compiled pattern block 58611 // code pointer to start of group (the bracket) 58612 // startcode pointer to start of the whole pattern's code 58613 // utf UTF flag 58614 // recurses chain of recurse_check to catch mutual recursion 58615 // countptr pointer to call count (to catch over complexity) 58616 // backref_cache vector for caching back references. 58617 // 58618 // This function is no longer called when the pattern contains (*ACCEPT); however, 58619 // the old code for returning -1 is retained, just in case. 58620 // 58621 // Returns: the minimum length 58622 // -1 \C in UTF-8 mode 58623 // or (*ACCEPT) 58624 // or pattern too complicated 58625 // -2 internal error (missing capturing bracket) 58626 // -3 internal error (opcode not listed) 58627 58628 func find_minlength(tls *libc.TLS, re uintptr, code TPCRE2_SPTR8, startcode TPCRE2_SPTR8, utf TBOOL, recurses uintptr, countptr uintptr, backref_cache uintptr) int32 { /* pcre2_study.c:103:1: */ 58629 bp := tls.Alloc(16) 58630 defer tls.Free(16) 58631 58632 var length int32 58633 var branchlength int32 58634 var prev_cap_recno int32 58635 var prev_cap_d int32 58636 var prev_recurse_recno int32 58637 var prev_recurse_d int32 58638 var once_fudge Tuint32_t 58639 var had_recurse TBOOL 58640 var dupcapused TBOOL 58641 var nextbranch TPCRE2_SPTR8 58642 var cc uintptr 58643 // var this_recurse Trecurse_check at bp, 16 58644 58645 var r uintptr 58646 var dd int32 58647 var i int32 58648 var count int32 58649 var slot uintptr 58650 var r1 uintptr 58651 var i1 int32 58652 var r2 uintptr 58653 var d int32 58654 var min int32 58655 var recno int32 58656 var op TPCRE2_UCHAR8 58657 var cs uintptr 58658 var ce uintptr 58659 length = -1 58660 branchlength = 0 58661 prev_cap_recno = -1 58662 prev_cap_d = 0 58663 prev_recurse_recno = -1 58664 prev_recurse_d = 0 58665 once_fudge = Tuint32_t(0) 58666 had_recurse = DFALSE 58667 dupcapused = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_DUPCAPUSED) != Tuint32_t(0)) 58668 nextbranch = code + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) 58669 cc = code + uintptr(1) + uintptr(DLINK_SIZE) 58670 58671 // If this is a "could be empty" group, its minimum length is 0. 58672 58673 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) >= OP_SBRA && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) <= OP_SCOND) { 58674 goto __1 58675 } 58676 return 0 58677 __1: 58678 ; 58679 58680 // Skip over capturing bracket number 58681 58682 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_CBRA || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_CBRAPOS) { 58683 goto __2 58684 } 58685 cc += uintptr(DIMM2_SIZE) 58686 __2: 58687 ; 58688 58689 // A large and/or complex regex can take too long to process. 58690 58691 if !(libc.PostIncInt32(&*(*int32)(unsafe.Pointer(countptr)), 1) > 1000) { 58692 goto __3 58693 } 58694 return -1 58695 __3: 58696 ; 58697 58698 // Scan along the opcodes for this branch. If we get to the end of the branch, 58699 // check the length against that of the other branches. If the accumulated length 58700 // passes 16-bits, reset to that value and skip the rest of the branch. 58701 58702 __4: 58703 58704 if !(branchlength >= 65535) { 58705 goto __7 58706 } 58707 58708 branchlength = 65535 58709 cc = nextbranch 58710 __7: 58711 ; 58712 58713 op = *(*TPCRE2_UCHAR8)(unsafe.Pointer(cc)) 58714 switch int32(op) { 58715 case OP_COND: 58716 goto __9 58717 case OP_SCOND: 58718 goto __10 58719 58720 case OP_BRA: 58721 goto __11 58722 // Fall through 58723 58724 case OP_ONCE: 58725 goto __12 58726 case OP_SCRIPT_RUN: 58727 goto __13 58728 case OP_SBRA: 58729 goto __14 58730 case OP_BRAPOS: 58731 goto __15 58732 case OP_SBRAPOS: 58733 goto __16 58734 58735 // To save time for repeated capturing subpatterns, we remember the 58736 // length of the previous one. Unfortunately we can't do the same for 58737 // the unnumbered ones above. Nor can we do this if (?| is present in the 58738 // pattern because captures with the same number are not then identical. 58739 58740 case OP_CBRA: 58741 goto __17 58742 case OP_SCBRA: 58743 goto __18 58744 case OP_CBRAPOS: 58745 goto __19 58746 case OP_SCBRAPOS: 58747 goto __20 58748 58749 // ACCEPT makes things far too complicated; we have to give up. In fact, 58750 // from 10.34 onwards, if a pattern contains (*ACCEPT), this function is not 58751 // used. However, leave the code in place, just in case. 58752 58753 case OP_ACCEPT: 58754 goto __21 58755 case OP_ASSERT_ACCEPT: 58756 goto __22 58757 58758 // Reached end of a branch; if it's a ket it is the end of a nested 58759 // call. If it's ALT it is an alternation in a nested call. If it is END it's 58760 // the end of the outer call. All can be handled by the same code. If the 58761 // length of any branch is zero, there is no need to scan any subsequent 58762 // branches. 58763 58764 case OP_ALT: 58765 goto __23 58766 case OP_KET: 58767 goto __24 58768 case OP_KETRMAX: 58769 goto __25 58770 case OP_KETRMIN: 58771 goto __26 58772 case OP_KETRPOS: 58773 goto __27 58774 case OP_END: 58775 goto __28 58776 58777 // Skip over assertive subpatterns 58778 58779 case OP_ASSERT: 58780 goto __29 58781 case OP_ASSERT_NOT: 58782 goto __30 58783 case OP_ASSERTBACK: 58784 goto __31 58785 case OP_ASSERTBACK_NOT: 58786 goto __32 58787 case OP_ASSERT_NA: 58788 goto __33 58789 case OP_ASSERTBACK_NA: 58790 goto __34 58791 // Fall through 58792 58793 // Skip over things that don't match chars 58794 58795 case OP_REVERSE: 58796 goto __35 58797 case OP_CREF: 58798 goto __36 58799 case OP_DNCREF: 58800 goto __37 58801 case OP_RREF: 58802 goto __38 58803 case OP_DNRREF: 58804 goto __39 58805 case OP_FALSE: 58806 goto __40 58807 case OP_TRUE: 58808 goto __41 58809 case OP_CALLOUT: 58810 goto __42 58811 case OP_SOD: 58812 goto __43 58813 case OP_SOM: 58814 goto __44 58815 case OP_EOD: 58816 goto __45 58817 case OP_EODN: 58818 goto __46 58819 case OP_CIRC: 58820 goto __47 58821 case OP_CIRCM: 58822 goto __48 58823 case OP_DOLL: 58824 goto __49 58825 case OP_DOLLM: 58826 goto __50 58827 case OP_NOT_WORD_BOUNDARY: 58828 goto __51 58829 case OP_WORD_BOUNDARY: 58830 goto __52 58831 58832 case OP_CALLOUT_STR: 58833 goto __53 58834 58835 // Skip over a subpattern that has a {0} or {0,x} quantifier 58836 58837 case OP_BRAZERO: 58838 goto __54 58839 case OP_BRAMINZERO: 58840 goto __55 58841 case OP_BRAPOSZERO: 58842 goto __56 58843 case OP_SKIPZERO: 58844 goto __57 58845 58846 // Handle literal characters and + repetitions 58847 58848 case OP_CHAR: 58849 goto __58 58850 case OP_CHARI: 58851 goto __59 58852 case OP_NOT: 58853 goto __60 58854 case OP_NOTI: 58855 goto __61 58856 case OP_PLUS: 58857 goto __62 58858 case OP_PLUSI: 58859 goto __63 58860 case OP_MINPLUS: 58861 goto __64 58862 case OP_MINPLUSI: 58863 goto __65 58864 case OP_POSPLUS: 58865 goto __66 58866 case OP_POSPLUSI: 58867 goto __67 58868 case OP_NOTPLUS: 58869 goto __68 58870 case OP_NOTPLUSI: 58871 goto __69 58872 case OP_NOTMINPLUS: 58873 goto __70 58874 case OP_NOTMINPLUSI: 58875 goto __71 58876 case OP_NOTPOSPLUS: 58877 goto __72 58878 case OP_NOTPOSPLUSI: 58879 goto __73 58880 58881 case OP_TYPEPLUS: 58882 goto __74 58883 case OP_TYPEMINPLUS: 58884 goto __75 58885 case OP_TYPEPOSPLUS: 58886 goto __76 58887 58888 // Handle exact repetitions. The count is already in characters, but we 58889 // may need to skip over a multibyte character in UTF mode. 58890 58891 case OP_EXACT: 58892 goto __77 58893 case OP_EXACTI: 58894 goto __78 58895 case OP_NOTEXACT: 58896 goto __79 58897 case OP_NOTEXACTI: 58898 goto __80 58899 58900 case OP_TYPEEXACT: 58901 goto __81 58902 58903 // Handle single-char non-literal matchers 58904 58905 case OP_PROP: 58906 goto __82 58907 case OP_NOTPROP: 58908 goto __83 58909 // Fall through 58910 58911 case OP_NOT_DIGIT: 58912 goto __84 58913 case OP_DIGIT: 58914 goto __85 58915 case OP_NOT_WHITESPACE: 58916 goto __86 58917 case OP_WHITESPACE: 58918 goto __87 58919 case OP_NOT_WORDCHAR: 58920 goto __88 58921 case OP_WORDCHAR: 58922 goto __89 58923 case OP_ANY: 58924 goto __90 58925 case OP_ALLANY: 58926 goto __91 58927 case OP_EXTUNI: 58928 goto __92 58929 case OP_HSPACE: 58930 goto __93 58931 case OP_NOT_HSPACE: 58932 goto __94 58933 case OP_VSPACE: 58934 goto __95 58935 case OP_NOT_VSPACE: 58936 goto __96 58937 58938 // "Any newline" might match two characters, but it also might match just 58939 // one. 58940 58941 case OP_ANYNL: 58942 goto __97 58943 58944 // The single-byte matcher means we can't proceed in UTF mode. (In 58945 // non-UTF mode \C will actually be turned into OP_ALLANY, so won't ever 58946 // appear, but leave the code, just in case.) 58947 58948 case OP_ANYBYTE: 58949 goto __98 58950 58951 // For repeated character types, we have to test for \p and \P, which have 58952 // an extra two bytes of parameters. 58953 58954 case OP_TYPESTAR: 58955 goto __99 58956 case OP_TYPEMINSTAR: 58957 goto __100 58958 case OP_TYPEQUERY: 58959 goto __101 58960 case OP_TYPEMINQUERY: 58961 goto __102 58962 case OP_TYPEPOSSTAR: 58963 goto __103 58964 case OP_TYPEPOSQUERY: 58965 goto __104 58966 58967 case OP_TYPEUPTO: 58968 goto __105 58969 case OP_TYPEMINUPTO: 58970 goto __106 58971 case OP_TYPEPOSUPTO: 58972 goto __107 58973 58974 // Check a class for variable quantification 58975 58976 case OP_CLASS: 58977 goto __108 58978 case OP_NCLASS: 58979 goto __109 58980 case OP_XCLASS: 58981 goto __110 58982 58983 // Backreferences and subroutine calls (OP_RECURSE) are treated in the same 58984 // way: we find the minimum length for the subpattern. A recursion 58985 // (backreference or subroutine) causes an a flag to be set that causes the 58986 // length of this branch to be ignored. The logic is that a recursion can only 58987 // make sense if there is another alternative that stops the recursing. That 58988 // will provide the minimum length (when no recursion happens). 58989 // 58990 // If PCRE2_MATCH_UNSET_BACKREF is set, a backreference to an unset bracket 58991 // matches an empty string (by default it causes a matching failure), so in 58992 // that case we must set the minimum length to zero. 58993 // 58994 // For backreferenes, if duplicate numbers are present in the pattern we check 58995 // for a reference to a duplicate. If it is, we don't know which version will 58996 // be referenced, so we have to set the minimum length to zero. 58997 58998 // Duplicate named pattern back reference. 58999 59000 case OP_DNREF: 59001 goto __111 59002 case OP_DNREFI: 59003 goto __112 59004 59005 // Single back reference by number. References by name are converted to by 59006 // number when there is no duplication. 59007 59008 case OP_REF: 59009 goto __113 59010 case OP_REFI: 59011 goto __114 59012 59013 // Recursion always refers to the first occurrence of a subpattern with a 59014 // given number. Therefore, we can always make use of caching, even when the 59015 // pattern contains multiple subpatterns with the same number. 59016 59017 case OP_RECURSE: 59018 goto __115 59019 59020 // Anything else does not or need not match a character. We can get the 59021 // item's length from the table, but for those that can match zero occurrences 59022 // of a character, we must take special action for UTF-8 characters. As it 59023 // happens, the "NOT" versions of these opcodes are used at present only for 59024 // ASCII characters, so they could be omitted from this list. However, in 59025 // future that may change, so we include them here so as not to leave a 59026 // gotcha for a future maintainer. 59027 59028 case OP_UPTO: 59029 goto __116 59030 case OP_UPTOI: 59031 goto __117 59032 case OP_NOTUPTO: 59033 goto __118 59034 case OP_NOTUPTOI: 59035 goto __119 59036 case OP_MINUPTO: 59037 goto __120 59038 case OP_MINUPTOI: 59039 goto __121 59040 case OP_NOTMINUPTO: 59041 goto __122 59042 case OP_NOTMINUPTOI: 59043 goto __123 59044 case OP_POSUPTO: 59045 goto __124 59046 case OP_POSUPTOI: 59047 goto __125 59048 case OP_NOTPOSUPTO: 59049 goto __126 59050 case OP_NOTPOSUPTOI: 59051 goto __127 59052 59053 case OP_STAR: 59054 goto __128 59055 case OP_STARI: 59056 goto __129 59057 case OP_NOTSTAR: 59058 goto __130 59059 case OP_NOTSTARI: 59060 goto __131 59061 case OP_MINSTAR: 59062 goto __132 59063 case OP_MINSTARI: 59064 goto __133 59065 case OP_NOTMINSTAR: 59066 goto __134 59067 case OP_NOTMINSTARI: 59068 goto __135 59069 case OP_POSSTAR: 59070 goto __136 59071 case OP_POSSTARI: 59072 goto __137 59073 case OP_NOTPOSSTAR: 59074 goto __138 59075 case OP_NOTPOSSTARI: 59076 goto __139 59077 59078 case OP_QUERY: 59079 goto __140 59080 case OP_QUERYI: 59081 goto __141 59082 case OP_NOTQUERY: 59083 goto __142 59084 case OP_NOTQUERYI: 59085 goto __143 59086 case OP_MINQUERY: 59087 goto __144 59088 case OP_MINQUERYI: 59089 goto __145 59090 case OP_NOTMINQUERY: 59091 goto __146 59092 case OP_NOTMINQUERYI: 59093 goto __147 59094 case OP_POSQUERY: 59095 goto __148 59096 case OP_POSQUERYI: 59097 goto __149 59098 case OP_NOTPOSQUERY: 59099 goto __150 59100 case OP_NOTPOSQUERYI: 59101 goto __151 59102 59103 // Skip these, but we need to add in the name length. 59104 59105 case OP_MARK: 59106 goto __152 59107 case OP_COMMIT_ARG: 59108 goto __153 59109 case OP_PRUNE_ARG: 59110 goto __154 59111 case OP_SKIP_ARG: 59112 goto __155 59113 case OP_THEN_ARG: 59114 goto __156 59115 59116 // The remaining opcodes are just skipped over. 59117 59118 case OP_CLOSE: 59119 goto __157 59120 case OP_COMMIT: 59121 goto __158 59122 case OP_FAIL: 59123 goto __159 59124 case OP_PRUNE: 59125 goto __160 59126 case OP_SET_SOM: 59127 goto __161 59128 case OP_SKIP: 59129 goto __162 59130 case OP_THEN: 59131 goto __163 59132 59133 // This should not occur: we list all opcodes explicitly so that when 59134 // new ones get added they are properly considered. 59135 59136 default: 59137 goto __164 59138 } 59139 goto __8 59140 59141 __9: 59142 __10: 59143 59144 // If there is only one branch in a condition, the implied branch has zero 59145 // length, so we don't add anything. This covers the DEFINE "condition" 59146 // automatically. If there are two branches we can treat it the same as any 59147 // other non-capturing subpattern. 59148 59149 cs = cc + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59150 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cs))) != OP_ALT) { 59151 goto __165 59152 } 59153 59154 cc = cs + uintptr(1) + uintptr(DLINK_SIZE) 59155 goto __8 59156 __165: 59157 ; 59158 goto PROCESS_NON_CAPTURE 59159 59160 __11: 59161 // There's a special case of OP_BRA, when it is wrapped round a repeated 59162 // OP_RECURSE. We'd like to process the latter at this level so that 59163 // remembering the value works for repeated cases. So we do nothing, but 59164 // set a fudge value to skip over the OP_KET after the recurse. 59165 59166 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 3))) == OP_RECURSE && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 6))) == OP_KET) { 59167 goto __166 59168 } 59169 59170 once_fudge = Tuint32_t(1 + DLINK_SIZE) 59171 cc += uintptr(1 + DLINK_SIZE) 59172 goto __8 59173 __166: 59174 ; 59175 // Fall through 59176 59177 __12: 59178 __13: 59179 __14: 59180 __15: 59181 __16: 59182 PROCESS_NON_CAPTURE: 59183 d = find_minlength(tls, re, cc, startcode, utf, recurses, countptr, 59184 backref_cache) 59185 if !(d < 0) { 59186 goto __167 59187 } 59188 return d 59189 __167: 59190 ; 59191 branchlength = branchlength + d 59192 __168: 59193 cc += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59194 goto __169 59195 __169: 59196 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))) == OP_ALT { 59197 goto __168 59198 } 59199 goto __170 59200 __170: 59201 ; 59202 cc += uintptr(1 + DLINK_SIZE) 59203 goto __8 59204 59205 // To save time for repeated capturing subpatterns, we remember the 59206 // length of the previous one. Unfortunately we can't do the same for 59207 // the unnumbered ones above. Nor can we do this if (?| is present in the 59208 // pattern because captures with the same number are not then identical. 59209 59210 __17: 59211 __18: 59212 __19: 59213 __20: 59214 recno = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 4))))) 59215 if !(dupcapused != 0 || recno != prev_cap_recno) { 59216 goto __171 59217 } 59218 59219 prev_cap_recno = recno 59220 prev_cap_d = find_minlength(tls, re, cc, startcode, utf, recurses, countptr, 59221 backref_cache) 59222 if !(prev_cap_d < 0) { 59223 goto __172 59224 } 59225 return prev_cap_d 59226 __172: 59227 ; 59228 __171: 59229 ; 59230 branchlength = branchlength + prev_cap_d 59231 __173: 59232 cc += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59233 goto __174 59234 __174: 59235 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))) == OP_ALT { 59236 goto __173 59237 } 59238 goto __175 59239 __175: 59240 ; 59241 cc += uintptr(1 + DLINK_SIZE) 59242 goto __8 59243 59244 // ACCEPT makes things far too complicated; we have to give up. In fact, 59245 // from 10.34 onwards, if a pattern contains (*ACCEPT), this function is not 59246 // used. However, leave the code in place, just in case. 59247 59248 __21: 59249 __22: 59250 return -1 59251 59252 // Reached end of a branch; if it's a ket it is the end of a nested 59253 // call. If it's ALT it is an alternation in a nested call. If it is END it's 59254 // the end of the outer call. All can be handled by the same code. If the 59255 // length of any branch is zero, there is no need to scan any subsequent 59256 // branches. 59257 59258 __23: 59259 __24: 59260 __25: 59261 __26: 59262 __27: 59263 __28: 59264 if !(length < 0 || !(had_recurse != 0) && branchlength < length) { 59265 goto __176 59266 } 59267 length = branchlength 59268 __176: 59269 ; 59270 if !(int32(op) != OP_ALT || length == 0) { 59271 goto __177 59272 } 59273 return length 59274 __177: 59275 ; 59276 nextbranch = cc + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59277 cc += uintptr(1 + DLINK_SIZE) 59278 branchlength = 0 59279 had_recurse = DFALSE 59280 goto __8 59281 59282 // Skip over assertive subpatterns 59283 59284 __29: 59285 __30: 59286 __31: 59287 __32: 59288 __33: 59289 __34: 59290 __178: 59291 cc += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59292 goto __179 59293 __179: 59294 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))) == OP_ALT { 59295 goto __178 59296 } 59297 goto __180 59298 __180: 59299 ; 59300 // Fall through 59301 59302 // Skip over things that don't match chars 59303 59304 __35: 59305 __36: 59306 __37: 59307 __38: 59308 __39: 59309 __40: 59310 __41: 59311 __42: 59312 __43: 59313 __44: 59314 __45: 59315 __46: 59316 __47: 59317 __48: 59318 __49: 59319 __50: 59320 __51: 59321 __52: 59322 cc += uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))]) 59323 goto __8 59324 59325 __53: 59326 cc += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 5)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 6))))) 59327 goto __8 59328 59329 // Skip over a subpattern that has a {0} or {0,x} quantifier 59330 59331 __54: 59332 __55: 59333 __56: 59334 __57: 59335 cc += uintptr(X_pcre2_OP_lengths_8[*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))]) 59336 __181: 59337 cc += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59338 goto __182 59339 __182: 59340 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))) == OP_ALT { 59341 goto __181 59342 } 59343 goto __183 59344 __183: 59345 ; 59346 cc += uintptr(1 + DLINK_SIZE) 59347 goto __8 59348 59349 // Handle literal characters and + repetitions 59350 59351 __58: 59352 __59: 59353 __60: 59354 __61: 59355 __62: 59356 __63: 59357 __64: 59358 __65: 59359 __66: 59360 __67: 59361 __68: 59362 __69: 59363 __70: 59364 __71: 59365 __72: 59366 __73: 59367 branchlength++ 59368 cc += uintptr(2) 59369 if !(utf != 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + libc.UintptrFromInt32(-1)))) >= 0xc0) { 59370 goto __184 59371 } 59372 cc += uintptr(X_pcre2_utf8_table4[uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + libc.UintptrFromInt32(-1))))&0x3f]) 59373 __184: 59374 ; 59375 goto __8 59376 59377 __74: 59378 __75: 59379 __76: 59380 branchlength++ 59381 cc += func() uintptr { 59382 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1))) == OP_PROP || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1))) == OP_NOTPROP { 59383 return uintptr(4) 59384 } 59385 return uintptr(2) 59386 }() 59387 goto __8 59388 59389 // Handle exact repetitions. The count is already in characters, but we 59390 // may need to skip over a multibyte character in UTF mode. 59391 59392 __77: 59393 __78: 59394 __79: 59395 __80: 59396 branchlength = int32(uint32(branchlength) + uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59397 cc += uintptr(2 + DIMM2_SIZE) 59398 if !(utf != 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + libc.UintptrFromInt32(-1)))) >= 0xc0) { 59399 goto __185 59400 } 59401 cc += uintptr(X_pcre2_utf8_table4[uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + libc.UintptrFromInt32(-1))))&0x3f]) 59402 __185: 59403 ; 59404 goto __8 59405 59406 __81: 59407 branchlength = int32(uint32(branchlength) + uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59408 cc += uintptr(2 + DIMM2_SIZE + func() int32 { 59409 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 3))) == OP_PROP || 59410 int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 3))) == OP_NOTPROP { 59411 return 2 59412 } 59413 return 0 59414 }()) 59415 goto __8 59416 59417 // Handle single-char non-literal matchers 59418 59419 __82: 59420 __83: 59421 cc += uintptr(2) 59422 // Fall through 59423 59424 __84: 59425 __85: 59426 __86: 59427 __87: 59428 __88: 59429 __89: 59430 __90: 59431 __91: 59432 __92: 59433 __93: 59434 __94: 59435 __95: 59436 __96: 59437 branchlength++ 59438 cc++ 59439 goto __8 59440 59441 // "Any newline" might match two characters, but it also might match just 59442 // one. 59443 59444 __97: 59445 branchlength = branchlength + 1 59446 cc++ 59447 goto __8 59448 59449 // The single-byte matcher means we can't proceed in UTF mode. (In 59450 // non-UTF mode \C will actually be turned into OP_ALLANY, so won't ever 59451 // appear, but leave the code, just in case.) 59452 59453 __98: 59454 if !(utf != 0) { 59455 goto __186 59456 } 59457 return -1 59458 __186: 59459 ; 59460 branchlength++ 59461 cc++ 59462 goto __8 59463 59464 // For repeated character types, we have to test for \p and \P, which have 59465 // an extra two bytes of parameters. 59466 59467 __99: 59468 __100: 59469 __101: 59470 __102: 59471 __103: 59472 __104: 59473 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1))) == OP_PROP || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1))) == OP_NOTPROP) { 59474 goto __187 59475 } 59476 cc += uintptr(2) 59477 __187: 59478 ; 59479 cc += uintptr(X_pcre2_OP_lengths_8[op]) 59480 goto __8 59481 59482 __105: 59483 __106: 59484 __107: 59485 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 3))) == OP_PROP || 59486 int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 3))) == OP_NOTPROP) { 59487 goto __188 59488 } 59489 cc += uintptr(2) 59490 __188: 59491 ; 59492 cc += uintptr(X_pcre2_OP_lengths_8[op]) 59493 goto __8 59494 59495 // Check a class for variable quantification 59496 59497 __108: 59498 __109: 59499 __110: 59500 // The original code caused an unsigned overflow in 64 bit systems, 59501 // so now we use a conditional statement. 59502 if !(int32(op) == OP_XCLASS) { 59503 goto __189 59504 } 59505 cc += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59506 goto __190 59507 __189: 59508 cc += uintptr(X_pcre2_OP_lengths_8[OP_CLASS]) 59509 __190: 59510 ; 59511 59512 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))) { 59513 case OP_CRPLUS: 59514 goto __192 59515 case OP_CRMINPLUS: 59516 goto __193 59517 case OP_CRPOSPLUS: 59518 goto __194 59519 // Fall through 59520 59521 case OP_CRSTAR: 59522 goto __195 59523 case OP_CRMINSTAR: 59524 goto __196 59525 case OP_CRQUERY: 59526 goto __197 59527 case OP_CRMINQUERY: 59528 goto __198 59529 case OP_CRPOSSTAR: 59530 goto __199 59531 case OP_CRPOSQUERY: 59532 goto __200 59533 59534 case OP_CRRANGE: 59535 goto __201 59536 case OP_CRMINRANGE: 59537 goto __202 59538 case OP_CRPOSRANGE: 59539 goto __203 59540 59541 default: 59542 goto __204 59543 } 59544 goto __191 59545 59546 __192: 59547 __193: 59548 __194: 59549 branchlength++ 59550 // Fall through 59551 59552 __195: 59553 __196: 59554 __197: 59555 __198: 59556 __199: 59557 __200: 59558 cc++ 59559 goto __191 59560 59561 __201: 59562 __202: 59563 __203: 59564 branchlength = int32(uint32(branchlength) + uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59565 cc += uintptr(1 + 2*DIMM2_SIZE) 59566 goto __191 59567 59568 __204: 59569 branchlength++ 59570 goto __191 59571 __191: 59572 ; 59573 goto __8 59574 59575 // Backreferences and subroutine calls (OP_RECURSE) are treated in the same 59576 // way: we find the minimum length for the subpattern. A recursion 59577 // (backreference or subroutine) causes an a flag to be set that causes the 59578 // length of this branch to be ignored. The logic is that a recursion can only 59579 // make sense if there is another alternative that stops the recursing. That 59580 // will provide the minimum length (when no recursion happens). 59581 // 59582 // If PCRE2_MATCH_UNSET_BACKREF is set, a backreference to an unset bracket 59583 // matches an empty string (by default it causes a matching failure), so in 59584 // that case we must set the minimum length to zero. 59585 // 59586 // For backreferenes, if duplicate numbers are present in the pattern we check 59587 // for a reference to a duplicate. If it is, we don't know which version will 59588 // be referenced, so we have to set the minimum length to zero. 59589 59590 // Duplicate named pattern back reference. 59591 59592 __111: 59593 __112: 59594 if !(!(dupcapused != 0) && (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_MATCH_UNSET_BACKREF == Tuint32_t(0)) { 59595 goto __205 59596 } 59597 59598 count = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 4))))) 59599 slot = 59600 re + uintptr(uint64(unsafe.Sizeof(Tpcre2_real_code_8{}))) + uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))*uint32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_entry_size)) 59601 59602 d = 0x7fffffff 59603 59604 // Scan all groups with the same name; find the shortest. 59605 59606 __207: 59607 if !(libc.PostDecInt32(&count, 1) > 0) { 59608 goto __208 59609 } 59610 59611 recno = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(slot + 1))))) 59612 59613 if !(recno <= *(*int32)(unsafe.Pointer(backref_cache)) && *(*int32)(unsafe.Pointer(backref_cache + uintptr(recno)*4)) >= 0) { 59614 goto __209 59615 } 59616 dd = *(*int32)(unsafe.Pointer(backref_cache + uintptr(recno)*4)) 59617 goto __210 59618 __209: 59619 59620 ce = libc.AssignUintptr(&cs, X_pcre2_find_bracket_8(tls, startcode, utf, recno)) 59621 if !(cs == uintptr(0)) { 59622 goto __211 59623 } 59624 return -2 59625 __211: 59626 ; 59627 __212: 59628 ce += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ce + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ce + 2))))) 59629 goto __213 59630 __213: 59631 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ce))) == OP_ALT { 59632 goto __212 59633 } 59634 goto __214 59635 __214: 59636 ; 59637 59638 dd = 0 59639 if !(!(dupcapused != 0) || X_pcre2_find_bracket_8(tls, ce, utf, recno) == uintptr(0)) { 59640 goto __215 59641 } 59642 59643 if !(cc > cs && cc < ce) { 59644 goto __216 59645 } /* Simple recursion */ 59646 59647 had_recurse = DTRUE 59648 goto __217 59649 __216: 59650 59651 r = recurses 59652 r = recurses 59653 __218: 59654 if !(r != uintptr(0)) { 59655 goto __220 59656 } 59657 if !((*Trecurse_check)(unsafe.Pointer(r)).Fgroup == cs) { 59658 goto __221 59659 } 59660 goto __220 59661 __221: 59662 ; 59663 goto __219 59664 __219: 59665 r = (*Trecurse_check)(unsafe.Pointer(r)).Fprev 59666 goto __218 59667 goto __220 59668 __220: 59669 ; 59670 if !(r != uintptr(0)) { 59671 goto __222 59672 } /* Mutual recursion */ 59673 59674 had_recurse = DTRUE 59675 goto __223 59676 __222: 59677 59678 (*Trecurse_check)(unsafe.Pointer(bp /* &this_recurse */)).Fprev = recurses // No recursion 59679 (*Trecurse_check)(unsafe.Pointer(bp /* &this_recurse */)).Fgroup = cs 59680 dd = find_minlength(tls, re, cs, startcode, utf, bp, 59681 countptr, backref_cache) 59682 if !(dd < 0) { 59683 goto __224 59684 } 59685 return dd 59686 __224: 59687 ; 59688 __223: 59689 ; 59690 __217: 59691 ; 59692 __215: 59693 ; 59694 59695 *(*int32)(unsafe.Pointer(backref_cache + uintptr(recno)*4)) = dd 59696 i = *(*int32)(unsafe.Pointer(backref_cache)) + 1 59697 __225: 59698 if !(i < recno) { 59699 goto __227 59700 } 59701 *(*int32)(unsafe.Pointer(backref_cache + uintptr(i)*4)) = -1 59702 goto __226 59703 __226: 59704 i++ 59705 goto __225 59706 goto __227 59707 __227: 59708 ; 59709 *(*int32)(unsafe.Pointer(backref_cache)) = recno 59710 __210: 59711 ; 59712 59713 if !(dd < d) { 59714 goto __228 59715 } 59716 d = dd 59717 __228: 59718 ; 59719 if !(d <= 0) { 59720 goto __229 59721 } 59722 goto __208 59723 __229: 59724 ; // No point looking at any more 59725 slot += uintptr((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_entry_size) 59726 goto __207 59727 __208: 59728 ; 59729 goto __206 59730 __205: 59731 d = 0 59732 __206: 59733 ; 59734 cc += uintptr(1 + 2*DIMM2_SIZE) 59735 goto REPEAT_BACK_REFERENCE 59736 59737 // Single back reference by number. References by name are converted to by 59738 // number when there is no duplication. 59739 59740 __113: 59741 __114: 59742 recno = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59743 if !(recno <= *(*int32)(unsafe.Pointer(backref_cache)) && *(*int32)(unsafe.Pointer(backref_cache + uintptr(recno)*4)) >= 0) { 59744 goto __230 59745 } 59746 d = *(*int32)(unsafe.Pointer(backref_cache + uintptr(recno)*4)) 59747 goto __231 59748 __230: 59749 59750 d = 0 59751 59752 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_MATCH_UNSET_BACKREF == Tuint32_t(0)) { 59753 goto __232 59754 } 59755 59756 ce = libc.AssignUintptr(&cs, X_pcre2_find_bracket_8(tls, startcode, utf, recno)) 59757 if !(cs == uintptr(0)) { 59758 goto __233 59759 } 59760 return -2 59761 __233: 59762 ; 59763 __234: 59764 ce += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ce + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ce + 2))))) 59765 goto __235 59766 __235: 59767 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ce))) == OP_ALT { 59768 goto __234 59769 } 59770 goto __236 59771 __236: 59772 ; 59773 59774 if !(!(dupcapused != 0) || X_pcre2_find_bracket_8(tls, ce, utf, recno) == uintptr(0)) { 59775 goto __237 59776 } 59777 59778 if !(cc > cs && cc < ce) { 59779 goto __238 59780 } /* Simple recursion */ 59781 59782 had_recurse = DTRUE 59783 goto __239 59784 __238: 59785 59786 r1 = recurses 59787 r1 = recurses 59788 __240: 59789 if !(r1 != uintptr(0)) { 59790 goto __242 59791 } 59792 if !((*Trecurse_check)(unsafe.Pointer(r1)).Fgroup == cs) { 59793 goto __243 59794 } 59795 goto __242 59796 __243: 59797 ; 59798 goto __241 59799 __241: 59800 r1 = (*Trecurse_check)(unsafe.Pointer(r1)).Fprev 59801 goto __240 59802 goto __242 59803 __242: 59804 ; 59805 if !(r1 != uintptr(0)) { 59806 goto __244 59807 } /* Mutual recursion */ 59808 59809 had_recurse = DTRUE 59810 goto __245 59811 __244: /* No recursion */ 59812 59813 (*Trecurse_check)(unsafe.Pointer(bp /* &this_recurse */)).Fprev = recurses 59814 (*Trecurse_check)(unsafe.Pointer(bp /* &this_recurse */)).Fgroup = cs 59815 d = find_minlength(tls, re, cs, startcode, utf, bp, countptr, 59816 backref_cache) 59817 if !(d < 0) { 59818 goto __246 59819 } 59820 return d 59821 __246: 59822 ; 59823 __245: 59824 ; 59825 __239: 59826 ; 59827 __237: 59828 ; 59829 __232: 59830 ; 59831 59832 *(*int32)(unsafe.Pointer(backref_cache + uintptr(recno)*4)) = d 59833 i1 = *(*int32)(unsafe.Pointer(backref_cache)) + 1 59834 __247: 59835 if !(i1 < recno) { 59836 goto __249 59837 } 59838 *(*int32)(unsafe.Pointer(backref_cache + uintptr(i1)*4)) = -1 59839 goto __248 59840 __248: 59841 i1++ 59842 goto __247 59843 goto __249 59844 __249: 59845 ; 59846 *(*int32)(unsafe.Pointer(backref_cache)) = recno 59847 __231: 59848 ; 59849 59850 cc += uintptr(1 + DIMM2_SIZE) 59851 59852 // Handle repeated back references 59853 59854 REPEAT_BACK_REFERENCE: 59855 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc))) { 59856 case OP_CRSTAR: 59857 goto __251 59858 case OP_CRMINSTAR: 59859 goto __252 59860 case OP_CRQUERY: 59861 goto __253 59862 case OP_CRMINQUERY: 59863 goto __254 59864 case OP_CRPOSSTAR: 59865 goto __255 59866 case OP_CRPOSQUERY: 59867 goto __256 59868 59869 case OP_CRPLUS: 59870 goto __257 59871 case OP_CRMINPLUS: 59872 goto __258 59873 case OP_CRPOSPLUS: 59874 goto __259 59875 59876 case OP_CRRANGE: 59877 goto __260 59878 case OP_CRMINRANGE: 59879 goto __261 59880 case OP_CRPOSRANGE: 59881 goto __262 59882 59883 default: 59884 goto __263 59885 } 59886 goto __250 59887 59888 __251: 59889 __252: 59890 __253: 59891 __254: 59892 __255: 59893 __256: 59894 min = 0 59895 cc++ 59896 goto __250 59897 59898 __257: 59899 __258: 59900 __259: 59901 min = 1 59902 cc++ 59903 goto __250 59904 59905 __260: 59906 __261: 59907 __262: 59908 min = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2))))) 59909 cc += uintptr(1 + 2*DIMM2_SIZE) 59910 goto __250 59911 59912 __263: 59913 min = 1 59914 goto __250 59915 __250: 59916 ; 59917 59918 // Take care not to overflow: (1) min and d are ints, so check that their 59919 // product is not greater than INT_MAX. (2) branchlength is limited to 59920 // UINT16_MAX (checked at the top of the loop). 59921 59922 if !(d > 0 && 0x7fffffff/d < min || 65535-branchlength < min*d) { 59923 goto __264 59924 } 59925 branchlength = 65535 59926 goto __265 59927 __264: 59928 branchlength = branchlength + min*d 59929 __265: 59930 ; 59931 goto __8 59932 59933 // Recursion always refers to the first occurrence of a subpattern with a 59934 // given number. Therefore, we can always make use of caching, even when the 59935 // pattern contains multiple subpatterns with the same number. 59936 59937 __115: 59938 cs = libc.AssignUintptr(&ce, startcode+uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 2)))))) 59939 recno = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cs + 3)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cs + 4))))) 59940 if !(recno == prev_recurse_recno) { 59941 goto __266 59942 } 59943 59944 branchlength = branchlength + prev_recurse_d 59945 goto __267 59946 __266: 59947 59948 __268: 59949 ce += uintptr(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ce + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ce + 2))))) 59950 goto __269 59951 __269: 59952 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(ce))) == OP_ALT { 59953 goto __268 59954 } 59955 goto __270 59956 __270: 59957 ; 59958 if !(cc > cs && cc < ce) { 59959 goto __271 59960 } // Simple recursion 59961 had_recurse = DTRUE 59962 goto __272 59963 __271: 59964 59965 r2 = recurses 59966 r2 = recurses 59967 __273: 59968 if !(r2 != uintptr(0)) { 59969 goto __275 59970 } 59971 if !((*Trecurse_check)(unsafe.Pointer(r2)).Fgroup == cs) { 59972 goto __276 59973 } 59974 goto __275 59975 __276: 59976 ; 59977 goto __274 59978 __274: 59979 r2 = (*Trecurse_check)(unsafe.Pointer(r2)).Fprev 59980 goto __273 59981 goto __275 59982 __275: 59983 ; 59984 if !(r2 != uintptr(0)) { 59985 goto __277 59986 } // Mutual recursion 59987 had_recurse = DTRUE 59988 goto __278 59989 __277: 59990 59991 (*Trecurse_check)(unsafe.Pointer(bp /* &this_recurse */)).Fprev = recurses 59992 (*Trecurse_check)(unsafe.Pointer(bp /* &this_recurse */)).Fgroup = cs 59993 prev_recurse_d = find_minlength(tls, re, cs, startcode, utf, bp, 59994 countptr, backref_cache) 59995 if !(prev_recurse_d < 0) { 59996 goto __279 59997 } 59998 return prev_recurse_d 59999 __279: 60000 ; 60001 prev_recurse_recno = recno 60002 branchlength = branchlength + prev_recurse_d 60003 __278: 60004 ; 60005 __272: 60006 ; 60007 __267: 60008 ; 60009 cc += uintptr(Tuint32_t(1+DLINK_SIZE) + once_fudge) 60010 once_fudge = Tuint32_t(0) 60011 goto __8 60012 60013 // Anything else does not or need not match a character. We can get the 60014 // item's length from the table, but for those that can match zero occurrences 60015 // of a character, we must take special action for UTF-8 characters. As it 60016 // happens, the "NOT" versions of these opcodes are used at present only for 60017 // ASCII characters, so they could be omitted from this list. However, in 60018 // future that may change, so we include them here so as not to leave a 60019 // gotcha for a future maintainer. 60020 60021 __116: 60022 __117: 60023 __118: 60024 __119: 60025 __120: 60026 __121: 60027 __122: 60028 __123: 60029 __124: 60030 __125: 60031 __126: 60032 __127: 60033 60034 __128: 60035 __129: 60036 __130: 60037 __131: 60038 __132: 60039 __133: 60040 __134: 60041 __135: 60042 __136: 60043 __137: 60044 __138: 60045 __139: 60046 60047 __140: 60048 __141: 60049 __142: 60050 __143: 60051 __144: 60052 __145: 60053 __146: 60054 __147: 60055 __148: 60056 __149: 60057 __150: 60058 __151: 60059 60060 cc += uintptr(X_pcre2_OP_lengths_8[op]) 60061 if !(utf != 0 && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + libc.UintptrFromInt32(-1)))) >= 0xc0) { 60062 goto __280 60063 } 60064 cc += uintptr(X_pcre2_utf8_table4[uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + libc.UintptrFromInt32(-1))))&0x3f]) 60065 __280: 60066 ; 60067 goto __8 60068 60069 // Skip these, but we need to add in the name length. 60070 60071 __152: 60072 __153: 60073 __154: 60074 __155: 60075 __156: 60076 cc += uintptr(int32(X_pcre2_OP_lengths_8[op]) + int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(cc + 1)))) 60077 goto __8 60078 60079 // The remaining opcodes are just skipped over. 60080 60081 __157: 60082 __158: 60083 __159: 60084 __160: 60085 __161: 60086 __162: 60087 __163: 60088 cc += uintptr(X_pcre2_OP_lengths_8[op]) 60089 goto __8 60090 60091 // This should not occur: we list all opcodes explicitly so that when 60092 // new ones get added they are properly considered. 60093 60094 __164: 60095 return -3 60096 __8: 60097 ; 60098 goto __5 60099 __5: 60100 goto __4 60101 goto __6 60102 __6: 60103 ; 60104 return int32(0) 60105 // Control never gets here 60106 } 60107 60108 // ************************************************ 60109 // 60110 // Set a bit and maybe its alternate case * 60111 // 60112 60113 // Given a character, set its first code unit's bit in the table, and also the 60114 // corresponding bit for the other version of a letter if we are caseless. 60115 // 60116 // Arguments: 60117 // re points to the regex block 60118 // p points to the first code unit of the character 60119 // caseless TRUE if caseless 60120 // utf TRUE for UTF mode 60121 // ucp TRUE for UCP mode 60122 // 60123 // Returns: pointer after the character 60124 60125 func set_table_bit(tls *libc.TLS, re uintptr, p TPCRE2_SPTR8, caseless TBOOL, utf TBOOL, ucp TBOOL) TPCRE2_SPTR8 { /* pcre2_study.c:781:1: */ 60126 bp := tls.Alloc(6) 60127 defer tls.Free(6) 60128 60129 var c Tuint32_t = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1)))) // First code unit 60130 60131 _ = utf // Stop compiler warnings when UTF not supported 60132 _ = ucp 60133 60134 // In 16-bit and 32-bit modes, code units greater than 0xff set the bit for 60135 // 0xff. 60136 60137 *(*Tuint8_t)(unsafe.Pointer(re + 40 + uintptr(c/Tuint32_t(8)))) |= Tuint8_t(uint32(1) << (c & Tuint32_t(7))) 60138 60139 // In UTF-8 or UTF-16 mode, pick up the remaining code units in order to find 60140 // the end of the character, even when caseless. 60141 60142 if utf != 0 { 60143 if c >= Tuint32_t(0xc0) { 60144 if c&0x20 == Tuint32_t(0) { 60145 c = c&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p, 1))))&0x3f 60146 } else if c&0x10 == Tuint32_t(0) { 60147 c = c&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 1)))&0x3f 60148 p += uintptr(2) 60149 } else if c&0x08 == Tuint32_t(0) { 60150 c = c&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 2)))&0x3f 60151 p += uintptr(3) 60152 } else if c&0x04 == Tuint32_t(0) { 60153 c = c&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 3)))&0x3f 60154 p += uintptr(4) 60155 } else { 60156 c = c&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p + 4)))&0x3f 60157 p += uintptr(5) 60158 } 60159 } 60160 60161 } 60162 60163 // If caseless, handle the other case of the character. 60164 60165 if caseless != 0 { 60166 if utf != 0 || ucp != 0 { 60167 c = Tuint32_t(int32(c) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12)).Fother_case) 60168 if utf != 0 { 60169 // var buff [6]TPCRE2_UCHAR8 at bp, 6 60170 60171 X_pcre2_ord2utf_8(tls, c, bp) 60172 *(*Tuint8_t)(unsafe.Pointer(re + 40 + uintptr(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bp)))/8))) |= Tuint8_t(uint32(1) << (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bp))) & 7)) 60173 } else if c < Tuint32_t(256) { 60174 *(*Tuint8_t)(unsafe.Pointer(re + 40 + uintptr(c/Tuint32_t(8)))) |= Tuint8_t(uint32(1) << (c & Tuint32_t(7))) 60175 } 60176 } else 60177 60178 // Not UTF or UCP 60179 60180 if 1 != 0 { 60181 *(*Tuint8_t)(unsafe.Pointer(re + 40 + uintptr(int32(*(*Tuint8_t)(unsafe.Pointer((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftables + uintptr(Tuint32_t(Dfcc_offset)+c))))/8))) |= Tuint8_t(uint32(1) << (int32(*(*Tuint8_t)(unsafe.Pointer((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftables + uintptr(Tuint32_t(Dfcc_offset)+c)))) & 7)) 60182 } 60183 } 60184 60185 return p 60186 } 60187 60188 // ************************************************ 60189 // 60190 // Set bits for a positive character type * 60191 // 60192 60193 // This function sets starting bits for a character type. In UTF-8 mode, we can 60194 // only do a direct setting for bytes less than 128, as otherwise there can be 60195 // confusion with bytes in the middle of UTF-8 characters. In a "traditional" 60196 // environment, the tables will only recognize ASCII characters anyway, but in at 60197 // least one Windows environment, some higher bytes bits were set in the tables. 60198 // So we deal with that case by considering the UTF-8 encoding. 60199 // 60200 // Arguments: 60201 // re the regex block 60202 // cbit type the type of character wanted 60203 // table_limit 32 for non-UTF-8; 16 for UTF-8 60204 // 60205 // Returns: nothing 60206 60207 func set_type_bits(tls *libc.TLS, re uintptr, cbit_type int32, table_limit uint32) { /* pcre2_study.c:866:1: */ 60208 bp := tls.Alloc(6) 60209 defer tls.Free(6) 60210 60211 var c Tuint32_t 60212 for c = Tuint32_t(0); c < table_limit; c++ { 60213 *(*Tuint8_t)(unsafe.Pointer(re + 40 + uintptr(c))) |= Tuint8_t(int32(*(*Tuint8_t)(unsafe.Pointer((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftables + uintptr(c+Tuint32_t(Dcbits_offset)+Tuint32_t(cbit_type)))))) 60214 } 60215 if table_limit == uint32(32) { 60216 return 60217 } 60218 for c = Tuint32_t(128); c < Tuint32_t(256); c++ { 60219 if uint32(*(*Tuint8_t)(unsafe.Pointer((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftables + uintptr(Tuint32_t(Dcbits_offset)+c/Tuint32_t(8)))))&(uint32(1)<<(c&Tuint32_t(7))) != uint32(0) { 60220 // var buff [6]TPCRE2_UCHAR8 at bp, 6 60221 60222 X_pcre2_ord2utf_8(tls, c, bp) 60223 *(*Tuint8_t)(unsafe.Pointer(re + 40 + uintptr(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bp)))/8))) |= Tuint8_t(uint32(1) << (int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bp))) & 7)) 60224 } 60225 } 60226 } 60227 60228 // ************************************************ 60229 // 60230 // Set bits for a negative character type * 60231 // 60232 60233 // This function sets starting bits for a negative character type such as \D. 60234 // In UTF-8 mode, we can only do a direct setting for bytes less than 128, as 60235 // otherwise there can be confusion with bytes in the middle of UTF-8 characters. 60236 // Unlike in the positive case, where we can set appropriate starting bits for 60237 // specific high-valued UTF-8 characters, in this case we have to set the bits for 60238 // all high-valued characters. The lowest is 0xc2, but we overkill by starting at 60239 // 0xc0 (192) for simplicity. 60240 // 60241 // Arguments: 60242 // re the regex block 60243 // cbit type the type of character wanted 60244 // table_limit 32 for non-UTF-8; 16 for UTF-8 60245 // 60246 // Returns: nothing 60247 60248 func set_nottype_bits(tls *libc.TLS, re uintptr, cbit_type int32, table_limit uint32) { /* pcre2_study.c:907:1: */ 60249 var c Tuint32_t 60250 for c = Tuint32_t(0); c < table_limit; c++ { 60251 *(*Tuint8_t)(unsafe.Pointer(re + 40 + uintptr(c))) |= Tuint8_t(int32(Tuint8_t(^int32(*(*Tuint8_t)(unsafe.Pointer((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftables + uintptr(c+Tuint32_t(Dcbits_offset)+Tuint32_t(cbit_type)))))))) 60252 } 60253 if table_limit != uint32(32) { 60254 for c = Tuint32_t(24); c < Tuint32_t(32); c++ { 60255 *(*Tuint8_t)(unsafe.Pointer(re + 40 + uintptr(c))) = Tuint8_t(0xff) 60256 } 60257 } 60258 } 60259 60260 // ************************************************ 60261 // 60262 // Create bitmap of starting code units * 60263 // 60264 60265 // This function scans a compiled unanchored expression recursively and 60266 // attempts to build a bitmap of the set of possible starting code units whose 60267 // values are less than 256. In 16-bit and 32-bit mode, values above 255 all cause 60268 // the 255 bit to be set. When calling set[_not]_type_bits() in UTF-8 (sic) mode 60269 // we pass a value of 16 rather than 32 as the final argument. (See comments in 60270 // those functions for the reason.) 60271 // 60272 // The SSB_CONTINUE return is useful for parenthesized groups in patterns such as 60273 // (a*)b where the group provides some optional starting code units but scanning 60274 // must continue at the outer level to find at least one mandatory code unit. At 60275 // the outermost level, this function fails unless the result is SSB_DONE. 60276 // 60277 // We restrict recursion (for nested groups) to 1000 to avoid stack overflow 60278 // issues. 60279 // 60280 // Arguments: 60281 // re points to the compiled regex block 60282 // code points to an expression 60283 // utf TRUE if in UTF mode 60284 // ucp TRUE if in UCP mode 60285 // depthptr pointer to recurse depth 60286 // 60287 // Returns: SSB_FAIL => Failed to find any starting code units 60288 // SSB_DONE => Found mandatory starting code units 60289 // SSB_CONTINUE => Found optional starting code units 60290 // SSB_UNKNOWN => Hit an unrecognized opcode 60291 // SSB_TOODEEP => Recursion is too deep 60292 60293 func set_start_bits(tls *libc.TLS, re uintptr, code TPCRE2_SPTR8, utf TBOOL, ucp TBOOL, depthptr uintptr) int32 { /* pcre2_study.c:953:1: */ 60294 bp := tls.Alloc(6) 60295 defer tls.Free(6) 60296 60297 var c Tuint32_t 60298 var yield int32 60299 var table_limit int32 60300 // var buff [6]TPCRE2_UCHAR8 at bp, 6 60301 60302 var p uintptr 60303 var b TPCRE2_UCHAR8 60304 var e TPCRE2_UCHAR8 60305 var p1 TPCRE2_SPTR8 60306 var d int32 60307 var rc int32 60308 var classmap uintptr 60309 var xclassflags TPCRE2_UCHAR8 60310 var try_next TBOOL 60311 var tcode TPCRE2_SPTR8 60312 yield = SSB_DONE 60313 if utf != 0 { 60314 table_limit = 16 60315 } else { 60316 table_limit = 32 60317 } 60318 60319 *(*int32)(unsafe.Pointer(depthptr)) += 1 60320 if !(*(*int32)(unsafe.Pointer(depthptr)) > 1000) { 60321 goto __1 60322 } 60323 return SSB_TOODEEP 60324 __1: 60325 ; 60326 60327 __2: 60328 try_next = DTRUE 60329 tcode = code + uintptr(1) + uintptr(DLINK_SIZE) 60330 60331 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_CBRA || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_SCBRA || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_CBRAPOS || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_SCBRAPOS) { 60332 goto __5 60333 } 60334 tcode += TPCRE2_SPTR8(DIMM2_SIZE) 60335 __5: 60336 ; 60337 60338 __6: 60339 if !(try_next != 0) { 60340 goto __7 60341 } /* Loop for items in this branch */ 60342 classmap = uintptr(0) 60343 60344 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode))) { 60345 // If we reach something we don't understand, it means a new opcode has 60346 // been created that hasn't been added to this function. Hopefully this 60347 // problem will be discovered during testing. 60348 60349 default: 60350 goto __9 60351 60352 // Fail for a valid opcode that implies no starting bits. 60353 60354 case OP_ACCEPT: 60355 goto __10 60356 case OP_ASSERT_ACCEPT: 60357 goto __11 60358 case OP_ALLANY: 60359 goto __12 60360 case OP_ANY: 60361 goto __13 60362 case OP_ANYBYTE: 60363 goto __14 60364 case OP_CIRCM: 60365 goto __15 60366 case OP_CLOSE: 60367 goto __16 60368 case OP_COMMIT: 60369 goto __17 60370 case OP_COMMIT_ARG: 60371 goto __18 60372 case OP_COND: 60373 goto __19 60374 case OP_CREF: 60375 goto __20 60376 case OP_FALSE: 60377 goto __21 60378 case OP_TRUE: 60379 goto __22 60380 case OP_DNCREF: 60381 goto __23 60382 case OP_DNREF: 60383 goto __24 60384 case OP_DNREFI: 60385 goto __25 60386 case OP_DNRREF: 60387 goto __26 60388 case OP_DOLL: 60389 goto __27 60390 case OP_DOLLM: 60391 goto __28 60392 case OP_END: 60393 goto __29 60394 case OP_EOD: 60395 goto __30 60396 case OP_EODN: 60397 goto __31 60398 case OP_EXTUNI: 60399 goto __32 60400 case OP_FAIL: 60401 goto __33 60402 case OP_MARK: 60403 goto __34 60404 case OP_NOT: 60405 goto __35 60406 case OP_NOTEXACT: 60407 goto __36 60408 case OP_NOTEXACTI: 60409 goto __37 60410 case OP_NOTI: 60411 goto __38 60412 case OP_NOTMINPLUS: 60413 goto __39 60414 case OP_NOTMINPLUSI: 60415 goto __40 60416 case OP_NOTMINQUERY: 60417 goto __41 60418 case OP_NOTMINQUERYI: 60419 goto __42 60420 case OP_NOTMINSTAR: 60421 goto __43 60422 case OP_NOTMINSTARI: 60423 goto __44 60424 case OP_NOTMINUPTO: 60425 goto __45 60426 case OP_NOTMINUPTOI: 60427 goto __46 60428 case OP_NOTPLUS: 60429 goto __47 60430 case OP_NOTPLUSI: 60431 goto __48 60432 case OP_NOTPOSPLUS: 60433 goto __49 60434 case OP_NOTPOSPLUSI: 60435 goto __50 60436 case OP_NOTPOSQUERY: 60437 goto __51 60438 case OP_NOTPOSQUERYI: 60439 goto __52 60440 case OP_NOTPOSSTAR: 60441 goto __53 60442 case OP_NOTPOSSTARI: 60443 goto __54 60444 case OP_NOTPOSUPTO: 60445 goto __55 60446 case OP_NOTPOSUPTOI: 60447 goto __56 60448 case OP_NOTPROP: 60449 goto __57 60450 case OP_NOTQUERY: 60451 goto __58 60452 case OP_NOTQUERYI: 60453 goto __59 60454 case OP_NOTSTAR: 60455 goto __60 60456 case OP_NOTSTARI: 60457 goto __61 60458 case OP_NOTUPTO: 60459 goto __62 60460 case OP_NOTUPTOI: 60461 goto __63 60462 case OP_NOT_HSPACE: 60463 goto __64 60464 case OP_NOT_VSPACE: 60465 goto __65 60466 case OP_PRUNE: 60467 goto __66 60468 case OP_PRUNE_ARG: 60469 goto __67 60470 case OP_RECURSE: 60471 goto __68 60472 case OP_REF: 60473 goto __69 60474 case OP_REFI: 60475 goto __70 60476 case OP_REVERSE: 60477 goto __71 60478 case OP_RREF: 60479 goto __72 60480 case OP_SCOND: 60481 goto __73 60482 case OP_SET_SOM: 60483 goto __74 60484 case OP_SKIP: 60485 goto __75 60486 case OP_SKIP_ARG: 60487 goto __76 60488 case OP_SOD: 60489 goto __77 60490 case OP_SOM: 60491 goto __78 60492 case OP_THEN: 60493 goto __79 60494 case OP_THEN_ARG: 60495 goto __80 60496 60497 // OP_CIRC happens only at the start of an anchored branch (multiline ^ 60498 // uses OP_CIRCM). Skip over it. 60499 60500 case OP_CIRC: 60501 goto __81 60502 60503 // A "real" property test implies no starting bits, but the fake property 60504 // PT_CLIST identifies a list of characters. These lists are short, as they 60505 // are used for characters with more than one "other case", so there is no 60506 // point in recognizing them for OP_NOTPROP. 60507 60508 case OP_PROP: 60509 goto __82 60510 60511 // We can ignore word boundary tests. 60512 60513 case OP_WORD_BOUNDARY: 60514 goto __83 60515 case OP_NOT_WORD_BOUNDARY: 60516 goto __84 60517 60518 // If we hit a bracket or a positive lookahead assertion, recurse to set 60519 // bits from within the subpattern. If it can't find anything, we have to 60520 // give up. If it finds some mandatory character(s), we are done for this 60521 // branch. Otherwise, carry on scanning after the subpattern. 60522 60523 case OP_BRA: 60524 goto __85 60525 case OP_SBRA: 60526 goto __86 60527 case OP_CBRA: 60528 goto __87 60529 case OP_SCBRA: 60530 goto __88 60531 case OP_BRAPOS: 60532 goto __89 60533 case OP_SBRAPOS: 60534 goto __90 60535 case OP_CBRAPOS: 60536 goto __91 60537 case OP_SCBRAPOS: 60538 goto __92 60539 case OP_ONCE: 60540 goto __93 60541 case OP_SCRIPT_RUN: 60542 goto __94 60543 case OP_ASSERT: 60544 goto __95 60545 case OP_ASSERT_NA: 60546 goto __96 60547 60548 // If we hit ALT or KET, it means we haven't found anything mandatory in 60549 // this branch, though we might have found something optional. For ALT, we 60550 // continue with the next alternative, but we have to arrange that the final 60551 // result from subpattern is SSB_CONTINUE rather than SSB_DONE. For KET, 60552 // return SSB_CONTINUE: if this is the top level, that indicates failure, 60553 // but after a nested subpattern, it causes scanning to continue. 60554 60555 case OP_ALT: 60556 goto __97 60557 60558 case OP_KET: 60559 goto __98 60560 case OP_KETRMAX: 60561 goto __99 60562 case OP_KETRMIN: 60563 goto __100 60564 case OP_KETRPOS: 60565 goto __101 60566 60567 // Skip over callout 60568 60569 case OP_CALLOUT: 60570 goto __102 60571 60572 case OP_CALLOUT_STR: 60573 goto __103 60574 60575 // Skip over lookbehind and negative lookahead assertions 60576 60577 case OP_ASSERT_NOT: 60578 goto __104 60579 case OP_ASSERTBACK: 60580 goto __105 60581 case OP_ASSERTBACK_NOT: 60582 goto __106 60583 case OP_ASSERTBACK_NA: 60584 goto __107 60585 60586 // BRAZERO does the bracket, but carries on. 60587 60588 case OP_BRAZERO: 60589 goto __108 60590 case OP_BRAMINZERO: 60591 goto __109 60592 case OP_BRAPOSZERO: 60593 goto __110 60594 60595 // SKIPZERO skips the bracket. 60596 60597 case OP_SKIPZERO: 60598 goto __111 60599 60600 // Single-char * or ? sets the bit and tries the next item 60601 60602 case OP_STAR: 60603 goto __112 60604 case OP_MINSTAR: 60605 goto __113 60606 case OP_POSSTAR: 60607 goto __114 60608 case OP_QUERY: 60609 goto __115 60610 case OP_MINQUERY: 60611 goto __116 60612 case OP_POSQUERY: 60613 goto __117 60614 60615 case OP_STARI: 60616 goto __118 60617 case OP_MINSTARI: 60618 goto __119 60619 case OP_POSSTARI: 60620 goto __120 60621 case OP_QUERYI: 60622 goto __121 60623 case OP_MINQUERYI: 60624 goto __122 60625 case OP_POSQUERYI: 60626 goto __123 60627 60628 // Single-char upto sets the bit and tries the next 60629 60630 case OP_UPTO: 60631 goto __124 60632 case OP_MINUPTO: 60633 goto __125 60634 case OP_POSUPTO: 60635 goto __126 60636 60637 case OP_UPTOI: 60638 goto __127 60639 case OP_MINUPTOI: 60640 goto __128 60641 case OP_POSUPTOI: 60642 goto __129 60643 60644 // At least one single char sets the bit and stops 60645 60646 case OP_EXACT: 60647 goto __130 60648 // Fall through 60649 case OP_CHAR: 60650 goto __131 60651 case OP_PLUS: 60652 goto __132 60653 case OP_MINPLUS: 60654 goto __133 60655 case OP_POSPLUS: 60656 goto __134 60657 60658 case OP_EXACTI: 60659 goto __135 60660 // Fall through 60661 case OP_CHARI: 60662 goto __136 60663 case OP_PLUSI: 60664 goto __137 60665 case OP_MINPLUSI: 60666 goto __138 60667 case OP_POSPLUSI: 60668 goto __139 60669 60670 // Special spacing and line-terminating items. These recognize specific 60671 // lists of characters. The difference between VSPACE and ANYNL is that the 60672 // latter can match the two-character CRLF sequence, but that is not 60673 // relevant for finding the first character, so their code here is 60674 // identical. 60675 60676 case OP_HSPACE: 60677 goto __140 60678 60679 case OP_ANYNL: 60680 goto __141 60681 case OP_VSPACE: 60682 goto __142 60683 60684 // Single character types set the bits and stop. Note that if PCRE2_UCP 60685 // is set, we do not see these opcodes because \d etc are converted to 60686 // properties. Therefore, these apply in the case when only characters less 60687 // than 256 are recognized to match the types. 60688 60689 case OP_NOT_DIGIT: 60690 goto __143 60691 60692 case OP_DIGIT: 60693 goto __144 60694 60695 case OP_NOT_WHITESPACE: 60696 goto __145 60697 60698 case OP_WHITESPACE: 60699 goto __146 60700 60701 case OP_NOT_WORDCHAR: 60702 goto __147 60703 60704 case OP_WORDCHAR: 60705 goto __148 60706 60707 // One or more character type fudges the pointer and restarts, knowing 60708 // it will hit a single character type and stop there. 60709 60710 case OP_TYPEPLUS: 60711 goto __149 60712 case OP_TYPEMINPLUS: 60713 goto __150 60714 case OP_TYPEPOSPLUS: 60715 goto __151 60716 60717 case OP_TYPEEXACT: 60718 goto __152 60719 60720 // Zero or more repeats of character types set the bits and then 60721 // try again. 60722 60723 case OP_TYPEUPTO: 60724 goto __153 60725 case OP_TYPEMINUPTO: 60726 goto __154 60727 case OP_TYPEPOSUPTO: 60728 goto __155 // Fall through 60729 60730 case OP_TYPESTAR: 60731 goto __156 60732 case OP_TYPEMINSTAR: 60733 goto __157 60734 case OP_TYPEPOSSTAR: 60735 goto __158 60736 case OP_TYPEQUERY: 60737 goto __159 60738 case OP_TYPEMINQUERY: 60739 goto __160 60740 case OP_TYPEPOSQUERY: 60741 goto __161 60742 60743 // Extended class: if there are any property checks, or if this is a 60744 // negative XCLASS without a map, give up. If there are no property checks, 60745 // there must be wide characters on the XCLASS list, because otherwise an 60746 // XCLASS would not have been created. This means that code points >= 255 60747 // are potential starters. In the UTF-8 case we can scan them and set bits 60748 // for the relevant leading bytes. 60749 60750 case OP_XCLASS: 60751 goto __162 60752 60753 // It seems that the fall through comment must be outside the #ifdef if 60754 // it is to avoid the gcc compiler warning. 60755 60756 // Fall through 60757 60758 // Enter here for a negative non-XCLASS. In the 8-bit library, if we are 60759 // in UTF mode, any byte with a value >= 0xc4 is a potentially valid starter 60760 // because it starts a character with a value > 255. In 8-bit non-UTF mode, 60761 // there is no difference between CLASS and NCLASS. In all other wide 60762 // character modes, set the 0xFF bit to indicate code units >= 255. 60763 60764 case OP_NCLASS: 60765 goto __163 60766 // Fall through 60767 60768 // Enter here for a positive non-XCLASS. If we have fallen through from 60769 // an XCLASS, classmap will already be set; just advance the code pointer. 60770 // Otherwise, set up classmap for a a non-XCLASS and advance past it. 60771 60772 case OP_CLASS: 60773 goto __164 60774 } 60775 goto __8 60776 60777 // If we reach something we don't understand, it means a new opcode has 60778 // been created that hasn't been added to this function. Hopefully this 60779 // problem will be discovered during testing. 60780 60781 __9: 60782 return SSB_UNKNOWN 60783 60784 // Fail for a valid opcode that implies no starting bits. 60785 60786 __10: 60787 __11: 60788 __12: 60789 __13: 60790 __14: 60791 __15: 60792 __16: 60793 __17: 60794 __18: 60795 __19: 60796 __20: 60797 __21: 60798 __22: 60799 __23: 60800 __24: 60801 __25: 60802 __26: 60803 __27: 60804 __28: 60805 __29: 60806 __30: 60807 __31: 60808 __32: 60809 __33: 60810 __34: 60811 __35: 60812 __36: 60813 __37: 60814 __38: 60815 __39: 60816 __40: 60817 __41: 60818 __42: 60819 __43: 60820 __44: 60821 __45: 60822 __46: 60823 __47: 60824 __48: 60825 __49: 60826 __50: 60827 __51: 60828 __52: 60829 __53: 60830 __54: 60831 __55: 60832 __56: 60833 __57: 60834 __58: 60835 __59: 60836 __60: 60837 __61: 60838 __62: 60839 __63: 60840 __64: 60841 __65: 60842 __66: 60843 __67: 60844 __68: 60845 __69: 60846 __70: 60847 __71: 60848 __72: 60849 __73: 60850 __74: 60851 __75: 60852 __76: 60853 __77: 60854 __78: 60855 __79: 60856 __80: 60857 return SSB_FAIL 60858 60859 // OP_CIRC happens only at the start of an anchored branch (multiline ^ 60860 // uses OP_CIRCM). Skip over it. 60861 60862 __81: 60863 tcode += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[OP_CIRC]) 60864 goto __8 60865 60866 // A "real" property test implies no starting bits, but the fake property 60867 // PT_CLIST identifies a list of characters. These lists are short, as they 60868 // are used for characters with more than one "other case", so there is no 60869 // point in recognizing them for OP_NOTPROP. 60870 60871 __82: 60872 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 1))) != DPT_CLIST) { 60873 goto __165 60874 } 60875 return SSB_FAIL 60876 __165: 60877 ; 60878 60879 p = uintptr(unsafe.Pointer(&X_pcre2_ucd_caseless_sets_8)) + uintptr(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 2)))*4 60880 __166: 60881 if !(libc.AssignUint32(&c, *(*Tuint32_t)(unsafe.Pointer(libc.PostIncUintptr(&p, 4)))) < DNOTACHAR) { 60882 goto __167 60883 } 60884 60885 if !(utf != 0) { 60886 goto __168 60887 } 60888 60889 X_pcre2_ord2utf_8(tls, c, bp) 60890 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(bp))) 60891 __168: 60892 ; 60893 if !(c > Tuint32_t(0xff)) { 60894 goto __169 60895 } 60896 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 31)) |= uint8(uint32(1) << (0xff & 7)) 60897 goto __170 60898 __169: 60899 *(*Tuint8_t)(unsafe.Pointer(re + 40 + uintptr(c/Tuint32_t(8)))) |= Tuint8_t(uint32(1) << (c & Tuint32_t(7))) 60900 __170: 60901 ; 60902 goto __166 60903 __167: 60904 ; 60905 60906 try_next = DFALSE 60907 goto __8 60908 60909 // We can ignore word boundary tests. 60910 60911 __83: 60912 __84: 60913 tcode++ 60914 goto __8 60915 60916 // If we hit a bracket or a positive lookahead assertion, recurse to set 60917 // bits from within the subpattern. If it can't find anything, we have to 60918 // give up. If it finds some mandatory character(s), we are done for this 60919 // branch. Otherwise, carry on scanning after the subpattern. 60920 60921 __85: 60922 __86: 60923 __87: 60924 __88: 60925 __89: 60926 __90: 60927 __91: 60928 __92: 60929 __93: 60930 __94: 60931 __95: 60932 __96: 60933 rc = set_start_bits(tls, re, tcode, utf, ucp, depthptr) 60934 if !(rc == SSB_DONE) { 60935 goto __171 60936 } 60937 60938 try_next = DFALSE 60939 goto __172 60940 __171: 60941 if !(rc == SSB_CONTINUE) { 60942 goto __173 60943 } 60944 60945 __175: 60946 tcode += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 2))))) 60947 goto __176 60948 __176: 60949 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode))) == OP_ALT { 60950 goto __175 60951 } 60952 goto __177 60953 __177: 60954 ; 60955 tcode += TPCRE2_SPTR8(1 + DLINK_SIZE) 60956 goto __174 60957 __173: 60958 return rc 60959 __174: 60960 ; 60961 __172: 60962 ; // FAIL, UNKNOWN, or TOODEEP 60963 goto __8 60964 60965 // If we hit ALT or KET, it means we haven't found anything mandatory in 60966 // this branch, though we might have found something optional. For ALT, we 60967 // continue with the next alternative, but we have to arrange that the final 60968 // result from subpattern is SSB_CONTINUE rather than SSB_DONE. For KET, 60969 // return SSB_CONTINUE: if this is the top level, that indicates failure, 60970 // but after a nested subpattern, it causes scanning to continue. 60971 60972 __97: 60973 yield = SSB_CONTINUE 60974 try_next = DFALSE 60975 goto __8 60976 60977 __98: 60978 __99: 60979 __100: 60980 __101: 60981 return SSB_CONTINUE 60982 60983 // Skip over callout 60984 60985 __102: 60986 tcode += TPCRE2_SPTR8(X_pcre2_OP_lengths_8[OP_CALLOUT]) 60987 goto __8 60988 60989 __103: 60990 tcode += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 5)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 6))))) 60991 goto __8 60992 60993 // Skip over lookbehind and negative lookahead assertions 60994 60995 __104: 60996 __105: 60997 __106: 60998 __107: 60999 __178: 61000 tcode += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 2))))) 61001 goto __179 61002 __179: 61003 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode))) == OP_ALT { 61004 goto __178 61005 } 61006 goto __180 61007 __180: 61008 ; 61009 tcode += TPCRE2_SPTR8(1 + DLINK_SIZE) 61010 goto __8 61011 61012 // BRAZERO does the bracket, but carries on. 61013 61014 __108: 61015 __109: 61016 __110: 61017 rc = set_start_bits(tls, re, libc.PreIncUintptr(&tcode, 1), utf, ucp, depthptr) 61018 if !(rc == SSB_FAIL || rc == SSB_UNKNOWN || rc == SSB_TOODEEP) { 61019 goto __181 61020 } 61021 return rc 61022 __181: 61023 ; 61024 __182: 61025 tcode += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 2))))) 61026 goto __183 61027 __183: 61028 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode))) == OP_ALT { 61029 goto __182 61030 } 61031 goto __184 61032 __184: 61033 ; 61034 tcode += TPCRE2_SPTR8(1 + DLINK_SIZE) 61035 goto __8 61036 61037 // SKIPZERO skips the bracket. 61038 61039 __111: 61040 tcode++ 61041 __185: 61042 tcode += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 2))))) 61043 goto __186 61044 __186: 61045 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode))) == OP_ALT { 61046 goto __185 61047 } 61048 goto __187 61049 __187: 61050 ; 61051 tcode += TPCRE2_SPTR8(1 + DLINK_SIZE) 61052 goto __8 61053 61054 // Single-char * or ? sets the bit and tries the next item 61055 61056 __112: 61057 __113: 61058 __114: 61059 __115: 61060 __116: 61061 __117: 61062 tcode = set_table_bit(tls, re, tcode+uintptr(1), DFALSE, utf, ucp) 61063 goto __8 61064 61065 __118: 61066 __119: 61067 __120: 61068 __121: 61069 __122: 61070 __123: 61071 tcode = set_table_bit(tls, re, tcode+uintptr(1), DTRUE, utf, ucp) 61072 goto __8 61073 61074 // Single-char upto sets the bit and tries the next 61075 61076 __124: 61077 __125: 61078 __126: 61079 tcode = set_table_bit(tls, re, tcode+uintptr(1)+uintptr(DIMM2_SIZE), DFALSE, utf, ucp) 61080 goto __8 61081 61082 __127: 61083 __128: 61084 __129: 61085 tcode = set_table_bit(tls, re, tcode+uintptr(1)+uintptr(DIMM2_SIZE), DTRUE, utf, ucp) 61086 goto __8 61087 61088 // At least one single char sets the bit and stops 61089 61090 __130: 61091 tcode += TPCRE2_SPTR8(DIMM2_SIZE) 61092 // Fall through 61093 __131: 61094 __132: 61095 __133: 61096 __134: 61097 set_table_bit(tls, re, tcode+uintptr(1), DFALSE, utf, ucp) 61098 try_next = DFALSE 61099 goto __8 61100 61101 __135: 61102 tcode += TPCRE2_SPTR8(DIMM2_SIZE) 61103 // Fall through 61104 __136: 61105 __137: 61106 __138: 61107 __139: 61108 set_table_bit(tls, re, tcode+uintptr(1), DTRUE, utf, ucp) 61109 try_next = DFALSE 61110 goto __8 61111 61112 // Special spacing and line-terminating items. These recognize specific 61113 // lists of characters. The difference between VSPACE and ANYNL is that the 61114 // latter can match the two-character CRLF sequence, but that is not 61115 // relevant for finding the first character, so their code here is 61116 // identical. 61117 61118 __140: 61119 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 1)) |= uint8(uint32(1) << ('\011' & 7)) 61120 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 4)) |= uint8(uint32(1) << ('\040' & 7)) 61121 61122 // For the 16-bit and 32-bit libraries (which can never be EBCDIC), set 61123 // the bits for 0xA0 and for code units >= 255, independently of UTF. 61124 61125 // For the 8-bit library in UTF-8 mode, set the bits for the first code 61126 // units of horizontal space characters. 61127 61128 if !(utf != 0) { 61129 goto __188 61130 } 61131 61132 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 24)) |= uint8(uint32(1) << (0xC2 & 7)) // For U+00A0 61133 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 28)) |= uint8(uint32(1) << (0xE1 & 7)) // For U+1680, U+180E 61134 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 28)) |= uint8(uint32(1) << (0xE2 & 7)) // For U+2000 - U+200A, U+202F, U+205F 61135 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 28)) |= uint8(uint32(1) << (0xE3 & 7)) // For U+3000 61136 goto __189 61137 __188: 61138 /* For the 8-bit library not in UTF-8 mode, set the bit for 0xA0, unless 61139 the code is EBCDIC. */ 61140 61141 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 20)) |= uint8(uint32(1) << (0xA0 & 7)) 61142 __189: 61143 ; 61144 61145 try_next = DFALSE 61146 goto __8 61147 61148 __141: 61149 __142: 61150 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 1)) |= uint8(uint32(1) << ('\012' & 7)) 61151 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 1)) |= uint8(uint32(1) << ('\013' & 7)) 61152 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 1)) |= uint8(uint32(1) << ('\014' & 7)) 61153 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 1)) |= uint8(uint32(1) << ('\015' & 7)) 61154 61155 // For the 16-bit and 32-bit libraries (which can never be EBCDIC), set 61156 // the bits for NEL and for code units >= 255, independently of UTF. 61157 61158 // For the 8-bit library in UTF-8 mode, set the bits for the first code 61159 // units of vertical space characters. 61160 61161 if !(utf != 0) { 61162 goto __190 61163 } 61164 61165 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 24)) |= uint8(uint32(1) << (0xC2 & 7)) // For U+0085 (NEL) 61166 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 28)) |= uint8(uint32(1) << (0xE2 & 7)) // For U+2028, U+2029 61167 goto __191 61168 __190: 61169 /* For the 8-bit library not in UTF-8 mode, set the bit for NEL. */ 61170 61171 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 16)) |= uint8(uint32(1) << (int32(libc.Uint8FromInt32(133)) & 7)) 61172 __191: 61173 ; 61174 61175 try_next = DFALSE 61176 goto __8 61177 61178 // Single character types set the bits and stop. Note that if PCRE2_UCP 61179 // is set, we do not see these opcodes because \d etc are converted to 61180 // properties. Therefore, these apply in the case when only characters less 61181 // than 256 are recognized to match the types. 61182 61183 __143: 61184 set_nottype_bits(tls, re, Dcbit_digit, uint32(table_limit)) 61185 try_next = DFALSE 61186 goto __8 61187 61188 __144: 61189 set_type_bits(tls, re, Dcbit_digit, uint32(table_limit)) 61190 try_next = DFALSE 61191 goto __8 61192 61193 __145: 61194 set_nottype_bits(tls, re, Dcbit_space, uint32(table_limit)) 61195 try_next = DFALSE 61196 goto __8 61197 61198 __146: 61199 set_type_bits(tls, re, Dcbit_space, uint32(table_limit)) 61200 try_next = DFALSE 61201 goto __8 61202 61203 __147: 61204 set_nottype_bits(tls, re, Dcbit_word, uint32(table_limit)) 61205 try_next = DFALSE 61206 goto __8 61207 61208 __148: 61209 set_type_bits(tls, re, Dcbit_word, uint32(table_limit)) 61210 try_next = DFALSE 61211 goto __8 61212 61213 // One or more character type fudges the pointer and restarts, knowing 61214 // it will hit a single character type and stop there. 61215 61216 __149: 61217 __150: 61218 __151: 61219 tcode++ 61220 goto __8 61221 61222 __152: 61223 tcode += TPCRE2_SPTR8(1 + DIMM2_SIZE) 61224 goto __8 61225 61226 // Zero or more repeats of character types set the bits and then 61227 // try again. 61228 61229 __153: 61230 __154: 61231 __155: 61232 tcode += TPCRE2_SPTR8(DIMM2_SIZE) // Fall through 61233 61234 __156: 61235 __157: 61236 __158: 61237 __159: 61238 __160: 61239 __161: 61240 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 1))) { 61241 default: 61242 goto __193 61243 case OP_ANY: 61244 goto __194 61245 case OP_ALLANY: 61246 goto __195 61247 61248 case OP_HSPACE: 61249 goto __196 61250 61251 case OP_ANYNL: 61252 goto __197 61253 case OP_VSPACE: 61254 goto __198 61255 61256 case OP_NOT_DIGIT: 61257 goto __199 61258 61259 case OP_DIGIT: 61260 goto __200 61261 61262 case OP_NOT_WHITESPACE: 61263 goto __201 61264 61265 case OP_WHITESPACE: 61266 goto __202 61267 61268 case OP_NOT_WORDCHAR: 61269 goto __203 61270 61271 case OP_WORDCHAR: 61272 goto __204 61273 } 61274 goto __192 61275 61276 __193: 61277 __194: 61278 __195: 61279 return SSB_FAIL 61280 61281 __196: 61282 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 1)) |= uint8(uint32(1) << ('\011' & 7)) 61283 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 4)) |= uint8(uint32(1) << ('\040' & 7)) 61284 61285 // For the 16-bit and 32-bit libraries (which can never be EBCDIC), set 61286 // the bits for 0xA0 and for code units >= 255, independently of UTF. 61287 61288 // For the 8-bit library in UTF-8 mode, set the bits for the first code 61289 // units of horizontal space characters. 61290 61291 if !(utf != 0) { 61292 goto __205 61293 } 61294 61295 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 24)) |= uint8(uint32(1) << (0xC2 & 7)) // For U+00A0 61296 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 28)) |= uint8(uint32(1) << (0xE1 & 7)) // For U+1680, U+180E 61297 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 28)) |= uint8(uint32(1) << (0xE2 & 7)) // For U+2000 - U+200A, U+202F, U+205F 61298 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 28)) |= uint8(uint32(1) << (0xE3 & 7)) // For U+3000 61299 goto __206 61300 __205: 61301 /* For the 8-bit library not in UTF-8 mode, set the bit for 0xA0, unless 61302 the code is EBCDIC. */ 61303 61304 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 20)) |= uint8(uint32(1) << (0xA0 & 7)) 61305 __206: 61306 ; 61307 goto __192 61308 61309 __197: 61310 __198: 61311 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 1)) |= uint8(uint32(1) << ('\012' & 7)) 61312 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 1)) |= uint8(uint32(1) << ('\013' & 7)) 61313 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 1)) |= uint8(uint32(1) << ('\014' & 7)) 61314 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 1)) |= uint8(uint32(1) << ('\015' & 7)) 61315 61316 // For the 16-bit and 32-bit libraries (which can never be EBCDIC), set 61317 // the bits for NEL and for code units >= 255, independently of UTF. 61318 61319 // For the 8-bit library in UTF-8 mode, set the bits for the first code 61320 // units of vertical space characters. 61321 61322 if !(utf != 0) { 61323 goto __207 61324 } 61325 61326 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 24)) |= uint8(uint32(1) << (0xC2 & 7)) // For U+0085 (NEL) 61327 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 28)) |= uint8(uint32(1) << (0xE2 & 7)) // For U+2028, U+2029 61328 goto __208 61329 __207: 61330 /* For the 8-bit library not in UTF-8 mode, set the bit for NEL. */ 61331 61332 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 16)) |= uint8(uint32(1) << (int32(libc.Uint8FromInt32(133)) & 7)) 61333 __208: 61334 ; 61335 goto __192 61336 61337 __199: 61338 set_nottype_bits(tls, re, Dcbit_digit, uint32(table_limit)) 61339 goto __192 61340 61341 __200: 61342 set_type_bits(tls, re, Dcbit_digit, uint32(table_limit)) 61343 goto __192 61344 61345 __201: 61346 set_nottype_bits(tls, re, Dcbit_space, uint32(table_limit)) 61347 goto __192 61348 61349 __202: 61350 set_type_bits(tls, re, Dcbit_space, uint32(table_limit)) 61351 goto __192 61352 61353 __203: 61354 set_nottype_bits(tls, re, Dcbit_word, uint32(table_limit)) 61355 goto __192 61356 61357 __204: 61358 set_type_bits(tls, re, Dcbit_word, uint32(table_limit)) 61359 goto __192 61360 __192: 61361 ; 61362 61363 tcode += uintptr(2) 61364 goto __8 61365 61366 // Extended class: if there are any property checks, or if this is a 61367 // negative XCLASS without a map, give up. If there are no property checks, 61368 // there must be wide characters on the XCLASS list, because otherwise an 61369 // XCLASS would not have been created. This means that code points >= 255 61370 // are potential starters. In the UTF-8 case we can scan them and set bits 61371 // for the relevant leading bytes. 61372 61373 __162: 61374 xclassflags = *(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 3)) 61375 if !(int32(xclassflags)&DXCL_HASPROP != 0 || int32(xclassflags)&(DXCL_MAP|DXCL_NOT) == DXCL_NOT) { 61376 goto __209 61377 } 61378 return SSB_FAIL 61379 __209: 61380 ; 61381 61382 // We have a positive XCLASS or a negative one without a map. Set up the 61383 // map pointer if there is one, and fall through. 61384 61385 if int32(xclassflags)&DXCL_MAP == 0 { 61386 classmap = uintptr(0) 61387 } else { 61388 classmap = tcode + uintptr(1) + uintptr(DLINK_SIZE) + uintptr(1) 61389 } 61390 61391 // In UTF-8 mode, scan the character list and set bits for leading bytes, 61392 // then jump to handle the map. 61393 61394 if !(utf != 0 && int32(xclassflags)&DXCL_NOT == 0) { 61395 goto __210 61396 } 61397 61398 p1 = tcode + uintptr(1) + uintptr(DLINK_SIZE) + uintptr(1) + uintptr(func() int32 { 61399 if classmap == uintptr(0) { 61400 return 0 61401 } 61402 return 32 61403 }()) 61404 tcode += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 2))))) 61405 61406 __211: 61407 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p1, 1)))) { 61408 case DXCL_SINGLE: 61409 goto __215 61410 61411 case DXCL_RANGE: 61412 goto __216 61413 61414 case DXCL_END: 61415 goto __217 61416 61417 default: 61418 goto __218 61419 } 61420 goto __214 61421 61422 __215: 61423 b = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p1, 1))) 61424 __219: 61425 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p1)))&0xc0 == 0x80) { 61426 goto __220 61427 } 61428 p1++ 61429 goto __219 61430 __220: 61431 ; 61432 *(*Tuint8_t)(unsafe.Pointer(re + 40 + uintptr(int32(b)/8))) |= Tuint8_t(uint32(1) << (int32(b) & 7)) 61433 goto __214 61434 61435 __216: 61436 b = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p1, 1))) 61437 __221: 61438 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p1)))&0xc0 == 0x80) { 61439 goto __222 61440 } 61441 p1++ 61442 goto __221 61443 __222: 61444 ; 61445 e = *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&p1, 1))) 61446 __223: 61447 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p1)))&0xc0 == 0x80) { 61448 goto __224 61449 } 61450 p1++ 61451 goto __223 61452 __224: 61453 ; 61454 __225: 61455 if !(int32(b) <= int32(e)) { 61456 goto __227 61457 } 61458 *(*Tuint8_t)(unsafe.Pointer(re + 40 + uintptr(int32(b)/8))) |= Tuint8_t(uint32(1) << (int32(b) & 7)) 61459 goto __226 61460 __226: 61461 b++ 61462 goto __225 61463 goto __227 61464 __227: 61465 ; 61466 goto __214 61467 61468 __217: 61469 goto HANDLE_CLASSMAP 61470 61471 __218: 61472 return SSB_UNKNOWN // Internal error, should not occur 61473 __214: 61474 ; 61475 goto __212 61476 __212: 61477 goto __211 61478 goto __213 61479 __213: 61480 ; 61481 __210: 61482 ; 61483 61484 // It seems that the fall through comment must be outside the #ifdef if 61485 // it is to avoid the gcc compiler warning. 61486 61487 // Fall through 61488 61489 // Enter here for a negative non-XCLASS. In the 8-bit library, if we are 61490 // in UTF mode, any byte with a value >= 0xc4 is a potentially valid starter 61491 // because it starts a character with a value > 255. In 8-bit non-UTF mode, 61492 // there is no difference between CLASS and NCLASS. In all other wide 61493 // character modes, set the 0xFF bit to indicate code units >= 255. 61494 61495 __163: 61496 if !(utf != 0) { 61497 goto __228 61498 } 61499 61500 *(*Tuint8_t)(unsafe.Pointer(re + 40 + 24)) |= Tuint8_t(0xf0) // Bits for 0xc4 - 0xc8 61501 libc.Xmemset(tls, re+40+uintptr(25), 0xff, uint64(7)) // Bits for 0xc9 - 0xff 61502 __228: 61503 ; 61504 // Fall through 61505 61506 // Enter here for a positive non-XCLASS. If we have fallen through from 61507 // an XCLASS, classmap will already be set; just advance the code pointer. 61508 // Otherwise, set up classmap for a a non-XCLASS and advance past it. 61509 61510 __164: 61511 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode))) == OP_XCLASS) { 61512 goto __229 61513 } 61514 tcode += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 2))))) 61515 goto __230 61516 __229: 61517 61518 classmap = libc.PreIncUintptr(&tcode, 1) 61519 tcode += TPCRE2_SPTR8(uint64(32) / uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0)))) 61520 __230: 61521 ; 61522 61523 // When wide characters are supported, classmap may be NULL. In UTF-8 61524 // (sic) mode, the bits in a class bit map correspond to character values, 61525 // not to byte values. However, the bit map we are constructing is for byte 61526 // values. So we have to do a conversion for characters whose code point is 61527 // greater than 127. In fact, there are only two possible starting bytes for 61528 // characters in the range 128 - 255. 61529 61530 HANDLE_CLASSMAP: 61531 if !(classmap != uintptr(0)) { 61532 goto __231 61533 } 61534 61535 if !(utf != 0) { 61536 goto __232 61537 } 61538 61539 c = Tuint32_t(0) 61540 __234: 61541 if !(c < Tuint32_t(16)) { 61542 goto __236 61543 } 61544 *(*Tuint8_t)(unsafe.Pointer(re + 40 + uintptr(c))) |= Tuint8_t(int32(*(*Tuint8_t)(unsafe.Pointer(classmap + uintptr(c))))) 61545 goto __235 61546 __235: 61547 c++ 61548 goto __234 61549 goto __236 61550 __236: 61551 ; 61552 c = Tuint32_t(128) 61553 __237: 61554 if !(c < Tuint32_t(256)) { 61555 goto __239 61556 } 61557 61558 if !(uint32(*(*Tuint8_t)(unsafe.Pointer(classmap + uintptr(c/Tuint32_t(8)))))&(uint32(1)<<(c&Tuint32_t(7))) != uint32(0)) { 61559 goto __240 61560 } 61561 61562 d = int32(c>>6 | Tuint32_t(0xc0)) // Set bit for this starter 61563 *(*Tuint8_t)(unsafe.Pointer(re + 40 + uintptr(d/8))) |= Tuint8_t(uint32(1) << (d & 7)) // and then skip on to the 61564 c = c&Tuint32_t(0xc0) + Tuint32_t(0x40) - Tuint32_t(1) // next relevant character. 61565 __240: 61566 ; 61567 goto __238 61568 __238: 61569 c++ 61570 goto __237 61571 goto __239 61572 __239: 61573 ; 61574 goto __233 61575 __232: 61576 /* In all modes except UTF-8, the two bit maps are compatible. */ 61577 61578 c = Tuint32_t(0) 61579 __241: 61580 if !(c < Tuint32_t(32)) { 61581 goto __243 61582 } 61583 *(*Tuint8_t)(unsafe.Pointer(re + 40 + uintptr(c))) |= Tuint8_t(int32(*(*Tuint8_t)(unsafe.Pointer(classmap + uintptr(c))))) 61584 goto __242 61585 __242: 61586 c++ 61587 goto __241 61588 goto __243 61589 __243: 61590 ; 61591 __233: 61592 ; 61593 __231: 61594 ; 61595 61596 // Act on what follows the class. For a zero minimum repeat, continue; 61597 // otherwise stop processing. 61598 61599 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode))) { 61600 case OP_CRSTAR: 61601 goto __245 61602 case OP_CRMINSTAR: 61603 goto __246 61604 case OP_CRQUERY: 61605 goto __247 61606 case OP_CRMINQUERY: 61607 goto __248 61608 case OP_CRPOSSTAR: 61609 goto __249 61610 case OP_CRPOSQUERY: 61611 goto __250 61612 61613 case OP_CRRANGE: 61614 goto __251 61615 case OP_CRMINRANGE: 61616 goto __252 61617 case OP_CRPOSRANGE: 61618 goto __253 61619 61620 default: 61621 goto __254 61622 } 61623 goto __244 61624 61625 __245: 61626 __246: 61627 __247: 61628 __248: 61629 __249: 61630 __250: 61631 tcode++ 61632 goto __244 61633 61634 __251: 61635 __252: 61636 __253: 61637 if !(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 1)))<<8|int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(tcode + 2)))) == uint32(0)) { 61638 goto __255 61639 } 61640 tcode += TPCRE2_SPTR8(1 + 2*DIMM2_SIZE) 61641 goto __256 61642 __255: 61643 try_next = DFALSE 61644 __256: 61645 ; 61646 goto __244 61647 61648 __254: 61649 try_next = DFALSE 61650 goto __244 61651 __244: 61652 ; 61653 goto __8 // End of class handling case 61654 __8: 61655 ; // End of switch for opcodes 61656 goto __6 61657 __7: 61658 ; // End of try_next loop 61659 61660 code += TPCRE2_SPTR8(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 1)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code + 2))))) // Advance to next branch 61661 goto __3 61662 __3: 61663 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(code))) == OP_ALT { 61664 goto __2 61665 } 61666 goto __4 61667 __4: 61668 ; 61669 61670 return yield 61671 } 61672 61673 // ************************************************ 61674 // 61675 // Study a compiled expression * 61676 // 61677 61678 // This function is handed a compiled expression that it must study to produce 61679 // information that will speed up the matching. 61680 // 61681 // Argument: 61682 // re points to the compiled expression 61683 // 61684 // Returns: 0 normally; non-zero should never normally occur 61685 // 1 unknown opcode in set_start_bits 61686 // 2 missing capturing bracket 61687 // 3 unknown opcode in find_minlength 61688 61689 func X_pcre2_study_8(tls *libc.TLS, re uintptr) int32 { /* pcre2_study.c:1672:1: */ 61690 bp := tls.Alloc(524) 61691 defer tls.Free(524) 61692 61693 // var count int32 at bp+520, 4 61694 61695 var code uintptr 61696 var utf TBOOL 61697 var ucp TBOOL 61698 var d int32 61699 var c int32 61700 var y Tuint8_t 61701 var x Tuint8_t 61702 var i int32 61703 var a int32 61704 var b int32 61705 var p uintptr 61706 var flags Tuint32_t 61707 // var depth int32 at bp, 4 61708 61709 var rc int32 61710 var min int32 61711 // var backref_cache [129]int32 at bp+4, 516 61712 *(*int32)(unsafe.Pointer(bp + 520 /* count */)) = 0 61713 utf = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_UTF != Tuint32_t(0)) 61714 ucp = libc.Bool32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Foverall_options&DPCRE2_UCP != Tuint32_t(0)) 61715 61716 // Find start of compiled code 61717 61718 code = re + uintptr(uint64(unsafe.Sizeof(Tpcre2_real_code_8{}))) + uintptr(int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_entry_size)*int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fname_count)) 61719 61720 // For a pattern that has a first code unit, or a multiline pattern that 61721 // matches only at "line start", there is no point in seeking a list of starting 61722 // code units. 61723 61724 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_FIRSTSET|DPCRE2_STARTLINE) == Tuint32_t(0)) { 61725 goto __1 61726 } 61727 *(*int32)(unsafe.Pointer(bp /* depth */)) = 0 61728 rc = set_start_bits(tls, re, code, utf, ucp, bp) 61729 if !(rc == SSB_UNKNOWN) { 61730 goto __2 61731 } 61732 return 1 61733 __2: 61734 ; 61735 61736 // If a list of starting code units was set up, scan the list to see if only 61737 // one or two were listed. Having only one listed is rare because usually a 61738 // single starting code unit will have been recognized and PCRE2_FIRSTSET set. 61739 // If two are listed, see if they are caseless versions of the same character; 61740 // if so we can replace the list with a caseless first code unit. This gives 61741 // better performance and is plausibly worth doing for patterns such as [Ww]ord 61742 // or (word|WORD). 61743 61744 if !(rc == SSB_DONE) { 61745 goto __3 61746 } 61747 a = -1 61748 b = -1 61749 p = re + 40 /* &.start_bitmap */ 61750 flags = Tuint32_t(DPCRE2_FIRSTMAPSET) 61751 61752 i = 0 61753 __4: 61754 if !(i < 256) { 61755 goto __6 61756 } 61757 61758 x = *(*Tuint8_t)(unsafe.Pointer(p)) 61759 if !(int32(x) != 0) { 61760 goto __7 61761 } 61762 61763 y = Tuint8_t(int32(x) & (^int32(x) + 1)) // Least significant bit 61764 if !(int32(y) != int32(x)) { 61765 goto __8 61766 } 61767 goto DONE 61768 __8: 61769 ; // More than one bit set 61770 61771 // In the 16-bit and 32-bit libraries, the bit for 0xff means "0xff and 61772 // all wide characters", so we cannot use it here. 61773 61774 // Compute the character value 61775 61776 c = i 61777 switch int32(x) { 61778 case 1: 61779 goto __10 61780 case 2: 61781 goto __11 61782 case 4: 61783 goto __12 61784 case 8: 61785 goto __13 61786 case 16: 61787 goto __14 61788 case 32: 61789 goto __15 61790 case 64: 61791 goto __16 61792 case 128: 61793 goto __17 61794 } 61795 goto __9 61796 61797 __10: 61798 goto __9 61799 __11: 61800 c = c + 1 61801 goto __9 61802 __12: 61803 c = c + 2 61804 goto __9 61805 __13: 61806 c = c + 3 61807 goto __9 61808 __14: 61809 c = c + 4 61810 goto __9 61811 __15: 61812 c = c + 5 61813 goto __9 61814 __16: 61815 c = c + 6 61816 goto __9 61817 __17: 61818 c = c + 7 61819 goto __9 61820 __9: 61821 ; 61822 61823 // c contains the code unit value, in the range 0-255. In 8-bit UTF 61824 // mode, only values < 128 can be used. In all the other cases, c is a 61825 // character value. 61826 61827 if !(utf != 0 && c > 127) { 61828 goto __18 61829 } 61830 goto DONE 61831 __18: 61832 ; 61833 if !(a < 0) { 61834 goto __19 61835 } 61836 a = c 61837 goto __20 61838 __19: 61839 if !(b < 0) { 61840 goto __21 61841 } /* Second one found */ 61842 61843 d = int32(*(*Tuint8_t)(unsafe.Pointer((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftables + uintptr(Dfcc_offset) + uintptr(uint32(c))))) 61844 61845 if !(utf != 0 || ucp != 0) { 61846 goto __23 61847 } 61848 61849 if !(int32((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[c/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+c%DUCD_BLOCK_SIZE])*12)).Fcaseset) != 0) { 61850 goto __24 61851 } 61852 goto DONE 61853 __24: 61854 ; // Multiple case set 61855 if !(c > 127) { 61856 goto __25 61857 } 61858 d = int32(Tuint32_t(c + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[c/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+c%DUCD_BLOCK_SIZE])*12)).Fother_case)) 61859 __25: 61860 ; 61861 __23: 61862 ; 61863 61864 if !(d != a) { 61865 goto __26 61866 } 61867 goto DONE 61868 __26: 61869 ; // Not the other case of a 61870 b = c // Save second in b 61871 goto __22 61872 __21: 61873 goto DONE 61874 __22: 61875 ; 61876 __20: 61877 ; // More than two characters found 61878 __7: 61879 ; 61880 goto __5 61881 __5: 61882 p++ 61883 i = i + 8 61884 goto __4 61885 goto __6 61886 __6: 61887 ; 61888 61889 // Replace the start code unit bits with a first code unit, but only if it 61890 // is not the same as a required later code unit. This is because a search for 61891 // a required code unit starts after an explicit first code unit, but at a 61892 // code unit found from the bitmap. Patterns such as /a*a/ don't work 61893 // if both the start unit and required unit are the same. 61894 61895 if !(a >= 0 && ((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_LASTSET) == Tuint32_t(0) || (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flast_codeunit != Tuint32_t(a) && (b < 0 || (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Flast_codeunit != Tuint32_t(b)))) { 61896 goto __27 61897 } 61898 61899 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ffirst_codeunit = Tuint32_t(a) 61900 flags = Tuint32_t(DPCRE2_FIRSTSET) 61901 if !(b >= 0) { 61902 goto __28 61903 } 61904 flags = flags | Tuint32_t(DPCRE2_FIRSTCASELESS) 61905 __28: 61906 ; 61907 __27: 61908 ; 61909 61910 DONE: 61911 *(*Tuint32_t)(unsafe.Pointer(re + 96)) |= flags 61912 __3: 61913 ; 61914 __1: 61915 ; 61916 61917 // Find the minimum length of subject string. If the pattern can match an empty 61918 // string, the minimum length is already known. If the pattern contains (*ACCEPT) 61919 // all bets are off, and we don't even try to find a minimum length. If there are 61920 // more back references than the size of the vector we are going to cache them in, 61921 // do nothing. A pattern that complicated will probably take a long time to 61922 // analyze and may in any case turn out to be too complicated. Note that back 61923 // reference minima are held as 16-bit numbers. 61924 61925 if !((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fflags&Tuint32_t(DPCRE2_MATCH_EMPTY|DPCRE2_HASACCEPT) == Tuint32_t(0) && int32((*Tpcre2_real_code_8)(unsafe.Pointer(re)).Ftop_backref) <= DMAX_CACHE_BACKREF) { 61926 goto __29 61927 } 61928 61929 *(*int32)(unsafe.Pointer(bp + 4)) = 0 // Highest one that is set 61930 min = find_minlength(tls, re, code, code, utf, uintptr(0), bp+520, bp+4) 61931 switch min { 61932 case -1: 61933 goto __31 // Leave minlength unchanged (will be zero) 61934 61935 case -2: 61936 goto __32 // missing capturing bracket 61937 61938 case -3: 61939 goto __33 // unrecognized opcode 61940 61941 default: 61942 goto __34 61943 } 61944 goto __30 61945 61946 __31: // \C in UTF mode or over-complex regex 61947 goto __30 // Leave minlength unchanged (will be zero) 61948 61949 __32: 61950 return 2 // missing capturing bracket 61951 61952 __33: 61953 return 3 // unrecognized opcode 61954 61955 __34: 61956 (*Tpcre2_real_code_8)(unsafe.Pointer(re)).Fminlength = func() uint16 { 61957 if min > 65535 { 61958 return uint16(65535) 61959 } 61960 return uint16(min) 61961 }() 61962 goto __30 61963 __30: 61964 ; 61965 __29: 61966 ; 61967 61968 return 0 61969 } 61970 61971 // End of pcre2_study.c 61972 61973 // This function is needed only when memmove() is not available. 61974 61975 // End of pcre2_internal.h 61976 61977 // ************************************************ 61978 // 61979 // Find end of substitute text * 61980 // 61981 61982 // In extended mode, we recognize ${name:+set text:unset text} and similar 61983 // constructions. This requires the identification of unescaped : and } 61984 // characters. This function scans for such. It must deal with nested ${ 61985 // constructions. The pointer to the text is updated, either to the required end 61986 // character, or to where an error was detected. 61987 // 61988 // Arguments: 61989 // code points to the compiled expression (for options) 61990 // ptrptr points to the pointer to the start of the text (updated) 61991 // ptrend end of the whole string 61992 // last TRUE if the last expected string (only } recognized) 61993 // 61994 // Returns: 0 on success 61995 // negative error code on failure 61996 61997 func find_text_end(tls *libc.TLS, code uintptr, ptrptr uintptr, ptrend TPCRE2_SPTR8, last TBOOL) int32 { /* pcre2_substitute.c:79:1: */ 61998 bp := tls.Alloc(16) 61999 defer tls.Free(16) 62000 62001 var rc int32 62002 var nestlevel Tuint32_t 62003 var literal TBOOL 62004 // var ptr TPCRE2_SPTR8 at bp, 8 62005 62006 var erc int32 62007 // var errorcode int32 at bp+12, 4 62008 62009 // var ch Tuint32_t at bp+8, 4 62010 rc = 0 62011 nestlevel = Tuint32_t(0) 62012 literal = DFALSE 62013 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* ptr */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) 62014 62015 __1: 62016 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp)) < ptrend) { 62017 goto __3 62018 } 62019 62020 if !(literal != 0) { 62021 goto __4 62022 } 62023 62024 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp))))) == '\134' && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp)) < ptrend-uintptr(1) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp)) + 1))) == '\105') { 62025 goto __6 62026 } 62027 62028 literal = DFALSE 62029 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* ptr */)) += uintptr(1) 62030 __6: 62031 ; 62032 goto __5 62033 __4: 62034 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp))))) == '\175') { 62035 goto __7 62036 } 62037 62038 if !(nestlevel == Tuint32_t(0)) { 62039 goto __9 62040 } 62041 goto EXIT 62042 __9: 62043 ; 62044 nestlevel-- 62045 goto __8 62046 __7: 62047 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp))))) == '\072' && !(last != 0) && nestlevel == Tuint32_t(0)) { 62048 goto __10 62049 } 62050 goto EXIT 62051 goto __11 62052 __10: 62053 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp))))) == '\044') { 62054 goto __12 62055 } 62056 62057 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp)) < ptrend-uintptr(1) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp)) + 1))) == '\173') { 62058 goto __14 62059 } 62060 62061 nestlevel++ 62062 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* ptr */)) += uintptr(1) 62063 __14: 62064 ; 62065 goto __13 62066 __12: 62067 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp))))) == '\134') { 62068 goto __15 62069 } 62070 62071 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp)) < ptrend-uintptr(1)) { 62072 goto __16 62073 } 62074 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* ptr */)) + 1))) { 62075 case '\114': 62076 goto __18 62077 case '\154': 62078 goto __19 62079 case '\125': 62080 goto __20 62081 case '\165': 62082 goto __21 62083 } 62084 goto __17 62085 62086 __18: 62087 __19: 62088 __20: 62089 __21: 62090 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* ptr */)) += uintptr(1) 62091 goto __2 62092 __17: 62093 ; 62094 __16: 62095 ; 62096 62097 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* ptr */)) += uintptr(1) // Must point after \ 62098 erc = X_pcre2_check_escape_8(tls, bp, ptrend, bp+8, bp+12, 62099 (*Tpcre2_code_8)(unsafe.Pointer(code)).Foverall_options, (*Tpcre2_code_8)(unsafe.Pointer(code)).Fextra_options, DFALSE, uintptr(0)) 62100 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* ptr */)) -= uintptr(1) // Back to last code unit of escape 62101 if !(*(*int32)(unsafe.Pointer(bp + 12)) != 0) { 62102 goto __22 62103 } 62104 62105 rc = *(*int32)(unsafe.Pointer(bp + 12 /* errorcode */)) 62106 goto EXIT 62107 __22: 62108 ; 62109 62110 switch erc { 62111 case 0: 62112 goto __24 // Data character 62113 case ESC_E: 62114 goto __25 62115 62116 case ESC_Q: 62117 goto __26 62118 62119 default: 62120 goto __27 62121 } 62122 goto __23 62123 62124 __24: // Data character 62125 __25: // Isolated \E is ignored 62126 goto __23 62127 62128 __26: 62129 literal = DTRUE 62130 goto __23 62131 62132 __27: 62133 rc = -57 62134 goto EXIT 62135 __23: 62136 ; 62137 __15: 62138 ; 62139 __13: 62140 ; 62141 __11: 62142 ; 62143 __8: 62144 ; 62145 __5: 62146 ; 62147 goto __2 62148 __2: 62149 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* ptr */))++ 62150 goto __1 62151 goto __3 62152 __3: 62153 ; 62154 62155 rc = -58 // Terminator not found 62156 62157 EXIT: 62158 *(*TPCRE2_SPTR8)(unsafe.Pointer(ptrptr)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* ptr */)) 62159 return rc 62160 } 62161 62162 // ************************************************ 62163 // 62164 // Match and substitute * 62165 // 62166 62167 // This function applies a compiled re to a subject string and creates a new 62168 // string with substitutions. The first 7 arguments are the same as for 62169 // pcre2_match(). Either string length may be PCRE2_ZERO_TERMINATED. 62170 // 62171 // Arguments: 62172 // code points to the compiled expression 62173 // subject points to the subject string 62174 // length length of subject string (may contain binary zeros) 62175 // start_offset where to start in the subject string 62176 // options option bits 62177 // match_data points to a match_data block, or is NULL 62178 // context points a PCRE2 context 62179 // replacement points to the replacement string 62180 // rlength length of replacement string 62181 // buffer where to put the substituted string 62182 // blength points to length of buffer; updated to length of string 62183 // 62184 // Returns: >= 0 number of substitutions made 62185 // < 0 an error code 62186 // PCRE2_ERROR_BADREPLACEMENT means invalid use of $ 62187 62188 // This macro checks for space in the buffer before copying into it. On 62189 // overflow, either give an error immediately, or keep on, accumulating the 62190 // length. 62191 62192 // Here's the function 62193 62194 func Xpcre2_substitute_8(tls *libc.TLS, code uintptr, subject TPCRE2_SPTR8, length Tsize_t, start_offset Tsize_t, options Tuint32_t, match_data uintptr, mcontext uintptr, replacement TPCRE2_SPTR8, rlength Tsize_t, buffer uintptr, blength uintptr) int32 { /* pcre2_substitute.c:220:1: */ 62195 bp := tls.Alloc(328) 62196 defer tls.Free(328) 62197 62198 var rc int32 62199 var subs int32 62200 var forcecase int32 62201 var forcecasereset int32 62202 var ovector_count Tuint32_t 62203 var goptions Tuint32_t 62204 var suboptions Tuint32_t 62205 var internal_match_data uintptr 62206 var escaped_literal TBOOL 62207 var overflowed TBOOL 62208 var use_existing_match TBOOL 62209 var replacement_only TBOOL 62210 var utf TBOOL 62211 var ucp TBOOL 62212 // var temp [6]TPCRE2_UCHAR8 at bp+312, 6 62213 62214 // var ptr TPCRE2_SPTR8 at bp+280, 8 62215 62216 var repend TPCRE2_SPTR8 62217 var extra_needed Tsize_t 62218 var buff_offset Tsize_t 62219 var buff_length Tsize_t 62220 var lengthleft Tsize_t 62221 var fraglength Tsize_t 62222 var ovector uintptr 62223 // var ovecsave [3]Tsize_t at bp, 24 62224 62225 // var scb Tpcre2_substitute_callout_block_8 at bp+24, 56 62226 62227 var gcontext uintptr 62228 var gcontext1 uintptr 62229 var pairs int32 62230 var save_start Tsize_t 62231 var ctypes uintptr 62232 var mark_start TPCRE2_SPTR8 62233 var mark TPCRE2_SPTR8 62234 var ng Tuint32_t 62235 // var first TPCRE2_SPTR8 at bp+288, 8 62236 62237 // var last TPCRE2_SPTR8 at bp+296, 8 62238 62239 var entry TPCRE2_SPTR8 62240 var type1 Tuint32_t 62241 var subptr TPCRE2_SPTR8 62242 var subptrend TPCRE2_SPTR8 62243 var group int32 62244 var n int32 62245 var special Tuint32_t 62246 var inparens TBOOL 62247 var star TBOOL 62248 // var sublength Tsize_t at bp+304, 8 62249 62250 var text1_start TPCRE2_SPTR8 62251 var text1_end TPCRE2_SPTR8 62252 var text2_start TPCRE2_SPTR8 62253 var text2_end TPCRE2_SPTR8 62254 var next TPCRE2_UCHAR8 62255 // var name [33]TPCRE2_UCHAR8 at bp+240, 33 62256 62257 // var errorcode int32 at bp+324, 4 62258 62259 var type2 Tuint32_t 62260 // var ch Tuint32_t at bp+320, 4 62261 62262 var chlen uint32 62263 var newlength Tsize_t 62264 var oldlength Tsize_t 62265 // var ptrstack [20]TPCRE2_SPTR8 at bp+80, 160 62266 62267 var ptrstackptr Tuint32_t 62268 forcecase = 0 62269 forcecasereset = 0 62270 goptions = Tuint32_t(0) 62271 internal_match_data = uintptr(0) 62272 escaped_literal = DFALSE 62273 overflowed = DFALSE 62274 utf = libc.Bool32((*Tpcre2_code_8)(unsafe.Pointer(code)).Foverall_options&DPCRE2_UTF != Tuint32_t(0)) 62275 ucp = libc.Bool32((*Tpcre2_code_8)(unsafe.Pointer(code)).Foverall_options&DPCRE2_UCP != Tuint32_t(0)) 62276 extra_needed = uint64(0) 62277 62278 // General initialization 62279 62280 buff_offset = uint64(0) 62281 lengthleft = libc.AssignUint64(&buff_length, *(*Tsize_t)(unsafe.Pointer(blength))) 62282 *(*Tsize_t)(unsafe.Pointer(blength)) = libc.CplUint64(uint64(0)) 62283 *(*Tsize_t)(unsafe.Pointer(bp)) = libc.AssignPtrUint64(bp+1*8, libc.AssignPtrUint64(bp+2*8, libc.CplUint64(uint64(0)))) 62284 62285 // Partial matching is not valid. This must come after setting *blength to 62286 // PCRE2_UNSET, so as not to imply an offset in the replacement. 62287 62288 if !(options&(DPCRE2_PARTIAL_HARD|DPCRE2_PARTIAL_SOFT) != Tuint32_t(0)) { 62289 goto __1 62290 } 62291 return -34 62292 __1: 62293 ; 62294 62295 // Validate length and find the end of the replacement. A NULL replacement of 62296 // zero length is interpreted as an empty string. 62297 62298 if !(replacement == uintptr(0)) { 62299 goto __2 62300 } 62301 62302 if !(rlength != uint64(0)) { 62303 goto __3 62304 } 62305 return -51 62306 __3: 62307 ; 62308 replacement = ts + 797 /* "" */ 62309 __2: 62310 ; 62311 62312 if !(rlength == libc.CplUint64(uint64(0))) { 62313 goto __4 62314 } 62315 rlength = X_pcre2_strlen_8(tls, replacement) 62316 __4: 62317 ; 62318 repend = replacement + uintptr(rlength) 62319 62320 // Check for using a match that has already happened. Note that the subject 62321 // pointer in the match data may be NULL after a no-match. 62322 62323 use_existing_match = libc.Bool32(options&DPCRE2_SUBSTITUTE_MATCHED != Tuint32_t(0)) 62324 replacement_only = libc.Bool32(options&DPCRE2_SUBSTITUTE_REPLACEMENT_ONLY != Tuint32_t(0)) 62325 62326 // If starting from an existing match, there must be an externally provided 62327 // match data block. We create an internal match_data block in two cases: (a) an 62328 // external one is not supplied (and we are not starting from an existing match); 62329 // (b) an existing match is to be used for the first substitution. In the latter 62330 // case, we copy the existing match into the internal block. This ensures that no 62331 // changes are made to the existing match data block. 62332 62333 if !(match_data == uintptr(0)) { 62334 goto __5 62335 } 62336 62337 if !(use_existing_match != 0) { 62338 goto __7 62339 } 62340 return -51 62341 __7: 62342 ; 62343 if mcontext == uintptr(0) { 62344 gcontext = code 62345 } else { 62346 gcontext = mcontext 62347 } 62348 match_data = libc.AssignUintptr(&internal_match_data, Xpcre2_match_data_create_from_pattern_8(tls, code, gcontext)) 62349 if !(internal_match_data == uintptr(0)) { 62350 goto __8 62351 } 62352 return -48 62353 __8: 62354 ; 62355 goto __6 62356 __5: 62357 if !(use_existing_match != 0) { 62358 goto __9 62359 } 62360 62361 if mcontext == uintptr(0) { 62362 gcontext1 = code 62363 } else { 62364 gcontext1 = mcontext 62365 } 62366 if int32((*Tpcre2_code_8)(unsafe.Pointer(code)).Ftop_bracket)+1 < int32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount) { 62367 pairs = int32((*Tpcre2_code_8)(unsafe.Pointer(code)).Ftop_bracket) + 1 62368 } else { 62369 pairs = int32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount) 62370 } 62371 internal_match_data = Xpcre2_match_data_create_8(tls, uint32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount), 62372 gcontext1) 62373 if !(internal_match_data == uintptr(0)) { 62374 goto __10 62375 } 62376 return -48 62377 __10: 62378 ; 62379 libc.Xmemcpy(tls, internal_match_data, match_data, uint64(uintptr(0)+80)+ 62380 uint64(2*pairs)*uint64(unsafe.Sizeof(Tsize_t(0)))) 62381 match_data = internal_match_data 62382 __9: 62383 ; 62384 __6: 62385 ; 62386 62387 // Remember ovector details 62388 62389 ovector = Xpcre2_get_ovector_pointer_8(tls, match_data) 62390 ovector_count = Xpcre2_get_ovector_count_8(tls, match_data) 62391 62392 // Fixed things in the callout block 62393 62394 (*Tpcre2_substitute_callout_block_8)(unsafe.Pointer(bp + 24 /* &scb */)).Fversion = Tuint32_t(0) 62395 (*Tpcre2_substitute_callout_block_8)(unsafe.Pointer(bp + 24 /* &scb */)).Finput = subject 62396 (*Tpcre2_substitute_callout_block_8)(unsafe.Pointer(bp + 24 /* &scb */)).Foutput = buffer 62397 (*Tpcre2_substitute_callout_block_8)(unsafe.Pointer(bp + 24 /* &scb */)).Fovector = ovector 62398 62399 // A NULL subject of zero length is treated as an empty string. 62400 62401 if !(subject == uintptr(0)) { 62402 goto __11 62403 } 62404 62405 if !(length != uint64(0)) { 62406 goto __12 62407 } 62408 return -51 62409 __12: 62410 ; 62411 subject = ts + 797 /* "" */ 62412 __11: 62413 ; 62414 62415 // Find length of zero-terminated subject 62416 62417 if !(length == libc.CplUint64(uint64(0))) { 62418 goto __13 62419 } 62420 if subject != 0 { 62421 length = X_pcre2_strlen_8(tls, subject) 62422 } else { 62423 length = uint64(0) 62424 } 62425 __13: 62426 ; 62427 62428 // Check UTF replacement string if necessary. 62429 62430 if !(utf != 0 && options&DPCRE2_NO_UTF_CHECK == Tuint32_t(0)) { 62431 goto __14 62432 } 62433 62434 rc = X_pcre2_valid_utf_8(tls, replacement, rlength, match_data+64) 62435 if !(rc != 0) { 62436 goto __15 62437 } 62438 62439 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fleftchar = uint64(0) 62440 goto EXIT 62441 __15: 62442 ; 62443 __14: 62444 ; 62445 62446 // Save the substitute options and remove them from the match options. 62447 62448 suboptions = options & (DPCRE2_SUBSTITUTE_EXTENDED | DPCRE2_SUBSTITUTE_GLOBAL | DPCRE2_SUBSTITUTE_LITERAL | DPCRE2_SUBSTITUTE_MATCHED | DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH | DPCRE2_SUBSTITUTE_REPLACEMENT_ONLY | DPCRE2_SUBSTITUTE_UNKNOWN_UNSET | DPCRE2_SUBSTITUTE_UNSET_EMPTY) 62449 options = options & libc.CplUint32(DPCRE2_SUBSTITUTE_EXTENDED|DPCRE2_SUBSTITUTE_GLOBAL|DPCRE2_SUBSTITUTE_LITERAL|DPCRE2_SUBSTITUTE_MATCHED|DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH|DPCRE2_SUBSTITUTE_REPLACEMENT_ONLY|DPCRE2_SUBSTITUTE_UNKNOWN_UNSET|DPCRE2_SUBSTITUTE_UNSET_EMPTY) 62450 62451 // Error if the start match offset is greater than the length of the subject. 62452 62453 if !(start_offset > length) { 62454 goto __16 62455 } 62456 62457 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fleftchar = uint64(0) 62458 rc = -33 62459 goto EXIT 62460 __16: 62461 ; 62462 62463 // Copy up to the start offset, unless only the replacement is required. 62464 62465 if !!(replacement_only != 0) { 62466 goto __17 62467 } 62468 if !(!(overflowed != 0) && lengthleft < start_offset) { 62469 goto __18 62470 } 62471 if !(suboptions&DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH == Tuint32_t(0)) { 62472 goto __20 62473 } 62474 goto NOROOM 62475 __20: 62476 ; 62477 overflowed = DTRUE 62478 extra_needed = start_offset - lengthleft 62479 goto __19 62480 __18: 62481 if !(overflowed != 0) { 62482 goto __21 62483 } 62484 extra_needed = extra_needed + start_offset 62485 goto __22 62486 __21: 62487 libc.Xmemcpy(tls, buffer+uintptr(buff_offset), subject, start_offset*uint64(DPCRE2_CODE_UNIT_WIDTH/8)) 62488 buff_offset = buff_offset + start_offset 62489 lengthleft = lengthleft - start_offset 62490 __22: 62491 ; 62492 __19: 62493 ; 62494 __17: 62495 ; 62496 62497 // Loop for global substituting. If PCRE2_SUBSTITUTE_MATCHED is set, the first 62498 // match is taken from the match_data that was passed in. 62499 62500 subs = 0 62501 __23: 62502 ptrstackptr = Tuint32_t(0) 62503 62504 if !(use_existing_match != 0) { 62505 goto __26 62506 } 62507 62508 rc = (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc 62509 use_existing_match = DFALSE 62510 goto __27 62511 __26: 62512 rc = Xpcre2_match_8(tls, code, subject, length, start_offset, options|goptions, 62513 match_data, mcontext) 62514 __27: 62515 ; 62516 62517 if !(utf != 0) { 62518 goto __28 62519 } 62520 options = options | DPCRE2_NO_UTF_CHECK 62521 __28: 62522 ; // Only need to check once 62523 62524 // Any error other than no match returns the error code. No match when not 62525 // doing the special after-empty-match global rematch, or when at the end of the 62526 // subject, breaks the global loop. Otherwise, advance the starting point by one 62527 // character, copying it to the output, and try again. 62528 62529 if !(rc < 0) { 62530 goto __29 62531 } 62532 62533 if !(rc != -1) { 62534 goto __30 62535 } 62536 goto EXIT 62537 __30: 62538 ; 62539 if !(goptions == Tuint32_t(0) || start_offset >= length) { 62540 goto __31 62541 } 62542 goto __25 62543 __31: 62544 ; 62545 62546 // Advance by one code point. Then, if CRLF is a valid newline sequence and 62547 // we have advanced into the middle of it, advance one more code point. In 62548 // other words, do not start in the middle of CRLF, even if CR and LF on their 62549 // own are valid newlines. 62550 62551 save_start = libc.PostIncUint64(&start_offset, 1) 62552 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subject + uintptr(start_offset-uint64(1))))) == '\015' && int32((*Tpcre2_code_8)(unsafe.Pointer(code)).Fnewline_convention) != DPCRE2_NEWLINE_CR && int32((*Tpcre2_code_8)(unsafe.Pointer(code)).Fnewline_convention) != DPCRE2_NEWLINE_LF && start_offset < length && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subject + uintptr(start_offset)))) == '\012') { 62553 goto __32 62554 } 62555 start_offset++ 62556 goto __33 62557 __32: 62558 if !((*Tpcre2_code_8)(unsafe.Pointer(code)).Foverall_options&DPCRE2_UTF != Tuint32_t(0)) { 62559 goto __34 62560 } 62561 62562 __35: 62563 if !(start_offset < length && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subject + uintptr(start_offset))))&0xc0 == 0x80) { 62564 goto __36 62565 } 62566 start_offset++ 62567 goto __35 62568 __36: 62569 ; 62570 __34: 62571 ; 62572 __33: 62573 ; 62574 62575 // Copy what we have advanced past (unless not required), reset the special 62576 // global options, and continue to the next match. 62577 62578 fraglength = start_offset - save_start 62579 if !!(replacement_only != 0) { 62580 goto __37 62581 } 62582 if !(!(overflowed != 0) && lengthleft < fraglength) { 62583 goto __38 62584 } 62585 if !(suboptions&DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH == Tuint32_t(0)) { 62586 goto __40 62587 } 62588 goto NOROOM 62589 __40: 62590 ; 62591 overflowed = DTRUE 62592 extra_needed = fraglength - lengthleft 62593 goto __39 62594 __38: 62595 if !(overflowed != 0) { 62596 goto __41 62597 } 62598 extra_needed = extra_needed + fraglength 62599 goto __42 62600 __41: 62601 libc.Xmemcpy(tls, buffer+uintptr(buff_offset), subject+uintptr(save_start), fraglength*uint64(DPCRE2_CODE_UNIT_WIDTH/8)) 62602 buff_offset = buff_offset + fraglength 62603 lengthleft = lengthleft - fraglength 62604 __42: 62605 ; 62606 __39: 62607 ; 62608 __37: 62609 ; 62610 62611 goptions = Tuint32_t(0) 62612 goto __24 62613 __29: 62614 ; 62615 62616 // Handle a successful match. Matches that use \K to end before they start 62617 // or start before the current point in the subject are not supported. 62618 62619 if !(*(*Tsize_t)(unsafe.Pointer(ovector + 1*8)) < *(*Tsize_t)(unsafe.Pointer(ovector)) || *(*Tsize_t)(unsafe.Pointer(ovector)) < start_offset) { 62620 goto __43 62621 } 62622 62623 rc = -60 62624 goto EXIT 62625 __43: 62626 ; 62627 62628 // Check for the same match as previous. This is legitimate after matching an 62629 // empty string that starts after the initial match offset. We have tried again 62630 // at the match point in case the pattern is one like /(?<=\G.)/ which can never 62631 // match at its starting point, so running the match achieves the bumpalong. If 62632 // we do get the same (null) match at the original match point, it isn't such a 62633 // pattern, so we now do the empty string magic. In all other cases, a repeat 62634 // match should never occur. 62635 62636 if !(*(*Tsize_t)(unsafe.Pointer(bp)) == *(*Tsize_t)(unsafe.Pointer(ovector)) && *(*Tsize_t)(unsafe.Pointer(bp + 1*8)) == *(*Tsize_t)(unsafe.Pointer(ovector + 1*8))) { 62637 goto __44 62638 } 62639 62640 if !(*(*Tsize_t)(unsafe.Pointer(ovector)) == *(*Tsize_t)(unsafe.Pointer(ovector + 1*8)) && *(*Tsize_t)(unsafe.Pointer(bp + 2*8)) != start_offset) { 62641 goto __45 62642 } 62643 62644 goptions = DPCRE2_NOTEMPTY_ATSTART | DPCRE2_ANCHORED 62645 *(*Tsize_t)(unsafe.Pointer(bp + 2*8)) = start_offset 62646 goto __24 // Back to the top of the loop 62647 __45: 62648 ; 62649 rc = -65 62650 goto EXIT 62651 __44: 62652 ; 62653 62654 // Count substitutions with a paranoid check for integer overflow; surely no 62655 // real call to this function would ever hit this! 62656 62657 if !(subs == 0x7fffffff) { 62658 goto __46 62659 } 62660 62661 rc = -61 62662 goto EXIT 62663 __46: 62664 ; 62665 subs++ 62666 62667 // Copy the text leading up to the match (unless not required), and remember 62668 // where the insert begins and how many ovector pairs are set. 62669 62670 if !(rc == 0) { 62671 goto __47 62672 } 62673 rc = int32(ovector_count) 62674 __47: 62675 ; 62676 fraglength = *(*Tsize_t)(unsafe.Pointer(ovector)) - start_offset 62677 if !!(replacement_only != 0) { 62678 goto __48 62679 } 62680 if !(!(overflowed != 0) && lengthleft < fraglength) { 62681 goto __49 62682 } 62683 if !(suboptions&DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH == Tuint32_t(0)) { 62684 goto __51 62685 } 62686 goto NOROOM 62687 __51: 62688 ; 62689 overflowed = DTRUE 62690 extra_needed = fraglength - lengthleft 62691 goto __50 62692 __49: 62693 if !(overflowed != 0) { 62694 goto __52 62695 } 62696 extra_needed = extra_needed + fraglength 62697 goto __53 62698 __52: 62699 libc.Xmemcpy(tls, buffer+uintptr(buff_offset), subject+uintptr(start_offset), fraglength*uint64(DPCRE2_CODE_UNIT_WIDTH/8)) 62700 buff_offset = buff_offset + fraglength 62701 lengthleft = lengthleft - fraglength 62702 __53: 62703 ; 62704 __50: 62705 ; 62706 __48: 62707 ; 62708 62709 *(*Tsize_t)(unsafe.Pointer(bp + 24 + 24)) = buff_offset 62710 (*Tpcre2_substitute_callout_block_8)(unsafe.Pointer(bp + 24 /* &scb */)).Foveccount = Tuint32_t(rc) 62711 62712 // Process the replacement string. If the entire replacement is literal, just 62713 // copy it with length check. 62714 62715 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)) = replacement 62716 if !(suboptions&DPCRE2_SUBSTITUTE_LITERAL != Tuint32_t(0)) { 62717 goto __54 62718 } 62719 62720 if !(!(overflowed != 0) && lengthleft < rlength) { 62721 goto __56 62722 } 62723 if !(suboptions&DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH == Tuint32_t(0)) { 62724 goto __58 62725 } 62726 goto NOROOM 62727 __58: 62728 ; 62729 overflowed = DTRUE 62730 extra_needed = rlength - lengthleft 62731 goto __57 62732 __56: 62733 if !(overflowed != 0) { 62734 goto __59 62735 } 62736 extra_needed = extra_needed + rlength 62737 goto __60 62738 __59: 62739 libc.Xmemcpy(tls, buffer+uintptr(buff_offset), *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)), rlength*uint64(DPCRE2_CODE_UNIT_WIDTH/8)) 62740 buff_offset = buff_offset + rlength 62741 lengthleft = lengthleft - rlength 62742 __60: 62743 ; 62744 __57: 62745 ; 62746 62747 goto __55 62748 __54: 62749 __61: 62750 62751 // If at the end of a nested substring, pop the stack. 62752 62753 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)) >= repend) { 62754 goto __64 62755 } 62756 62757 if !(ptrstackptr == Tuint32_t(0)) { 62758 goto __65 62759 } 62760 goto __63 62761 __65: 62762 ; // End of replacement string 62763 repend = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 80 + uintptr(libc.PreDecUint32(&ptrstackptr, 1))*8)) 62764 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 80 + uintptr(libc.PreDecUint32(&ptrstackptr, 1))*8)) 62765 goto __62 62766 __64: 62767 ; 62768 62769 // Handle the next character 62770 62771 if !(escaped_literal != 0) { 62772 goto __66 62773 } 62774 62775 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280))))) == '\134' && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)) < repend-uintptr(1) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)) + 1))) == '\105') { 62776 goto __67 62777 } 62778 62779 escaped_literal = DFALSE 62780 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)) += uintptr(2) 62781 goto __62 62782 __67: 62783 ; 62784 goto LOADLITERAL 62785 __66: 62786 ; 62787 62788 // Not in literal mode. 62789 62790 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280))))) == '\044') { 62791 goto __68 62792 } 62793 special = Tuint32_t(0) 62794 text1_start = uintptr(0) 62795 text1_end = uintptr(0) 62796 text2_start = uintptr(0) 62797 text2_end = uintptr(0) 62798 62799 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)), 1) >= repend) { 62800 goto __70 62801 } 62802 goto BAD 62803 __70: 62804 ; 62805 if !(int32(libc.AssignUint8(&next, *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)))))) == '\044') { 62806 goto __71 62807 } 62808 goto LOADLITERAL 62809 __71: 62810 ; 62811 62812 group = -1 62813 n = 0 62814 inparens = DFALSE 62815 star = DFALSE 62816 62817 if !(int32(next) == '\173') { 62818 goto __72 62819 } 62820 62821 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)), 1) >= repend) { 62822 goto __73 62823 } 62824 goto BAD 62825 __73: 62826 ; 62827 next = *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)))) 62828 inparens = DTRUE 62829 __72: 62830 ; 62831 62832 if !(int32(next) == '\052') { 62833 goto __74 62834 } 62835 62836 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)), 1) >= repend) { 62837 goto __75 62838 } 62839 goto BAD 62840 __75: 62841 ; 62842 next = *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)))) 62843 star = DTRUE 62844 __74: 62845 ; 62846 62847 if !(!(star != 0) && int32(next) >= '\060' && int32(next) <= '\071') { 62848 goto __76 62849 } 62850 62851 group = int32(next) - '\060' 62852 __78: 62853 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)), 1) < repend) { 62854 goto __79 62855 } 62856 62857 next = *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)))) 62858 if !(int32(next) < '\060' || int32(next) > '\071') { 62859 goto __80 62860 } 62861 goto __79 62862 __80: 62863 ; 62864 group = group*10 + int32(next) - '\060' 62865 62866 // A check for a number greater than the hightest captured group 62867 // is sufficient here; no need for a separate overflow check. If unknown 62868 // groups are to be treated as unset, just skip over any remaining 62869 // digits and carry on. 62870 62871 if !(group > int32((*Tpcre2_code_8)(unsafe.Pointer(code)).Ftop_bracket)) { 62872 goto __81 62873 } 62874 62875 if !(suboptions&DPCRE2_SUBSTITUTE_UNKNOWN_UNSET != Tuint32_t(0)) { 62876 goto __82 62877 } 62878 62879 __84: 62880 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)), 1) < repend && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280))))) >= '\060' && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280))))) <= '\071') { 62881 goto __85 62882 } 62883 goto __84 62884 __85: 62885 ; 62886 goto __79 62887 goto __83 62888 __82: 62889 62890 rc = -49 62891 goto PTREXIT 62892 __83: 62893 ; 62894 __81: 62895 ; 62896 goto __78 62897 __79: 62898 ; 62899 goto __77 62900 __76: 62901 62902 ctypes = (*Tpcre2_code_8)(unsafe.Pointer(code)).Ftables + uintptr(Dcbits_offset+Dcbit_length) 62903 __86: 62904 if !(1 != 0 && int32(*(*Tuint8_t)(unsafe.Pointer(ctypes + uintptr(next))))&Dctype_word != 0) { 62905 goto __87 62906 } 62907 62908 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 240 + uintptr(libc.PostIncInt32(&n, 1)))) = next 62909 if !(n > 32) { 62910 goto __88 62911 } 62912 goto BAD 62913 __88: 62914 ; 62915 if !(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)), 1) >= repend) { 62916 goto __89 62917 } 62918 goto __87 62919 __89: 62920 ; 62921 next = *(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)))) 62922 goto __86 62923 __87: 62924 ; 62925 if !(n == 0) { 62926 goto __90 62927 } 62928 goto BAD 62929 __90: 62930 ; 62931 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 240 + uintptr(n))) = TPCRE2_UCHAR8(0) 62932 __77: 62933 ; 62934 62935 // In extended mode we recognize ${name:+set text:unset text} and 62936 // ${name:-default text}. 62937 62938 if !(inparens != 0) { 62939 goto __91 62940 } 62941 62942 if !(suboptions&DPCRE2_SUBSTITUTE_EXTENDED != Tuint32_t(0) && !(star != 0) && *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)) < repend-uintptr(2) && int32(next) == '\072') { 62943 goto __92 62944 } 62945 62946 special = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)), 1)))) 62947 if !(special != Tuint32_t('\053') && special != Tuint32_t('\055')) { 62948 goto __94 62949 } 62950 62951 rc = -59 62952 goto PTREXIT 62953 __94: 62954 ; 62955 62956 text1_start = libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)), 1) 62957 rc = find_text_end(tls, code, bp+280, repend, libc.Bool32(special == Tuint32_t('\055'))) 62958 if !(rc != 0) { 62959 goto __95 62960 } 62961 goto PTREXIT 62962 __95: 62963 ; 62964 text1_end = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)) 62965 62966 if !(special == Tuint32_t('\053') && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280))))) == '\072') { 62967 goto __96 62968 } 62969 62970 text2_start = libc.PreIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)), 1) 62971 rc = find_text_end(tls, code, bp+280, repend, DTRUE) 62972 if !(rc != 0) { 62973 goto __97 62974 } 62975 goto PTREXIT 62976 __97: 62977 ; 62978 text2_end = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)) 62979 __96: 62980 ; 62981 goto __93 62982 __92: 62983 62984 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)) >= repend || int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280))))) != '\175') { 62985 goto __98 62986 } 62987 62988 rc = -58 62989 goto PTREXIT 62990 __98: 62991 ; 62992 __93: 62993 ; 62994 62995 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */))++ 62996 __91: 62997 ; 62998 62999 // Have found a syntactically correct group number or name, or *name. 63000 // Only *MARK is currently recognized. 63001 63002 if !(star != 0) { 63003 goto __99 63004 } 63005 63006 if !(X_pcre2_strcmp_c8_8(tls, bp+240, ts+7678) == 0) { 63007 goto __101 63008 } 63009 63010 mark = Xpcre2_get_mark_8(tls, match_data) 63011 if !(mark != uintptr(0)) { 63012 goto __103 63013 } 63014 63015 mark_start = mark 63016 __104: 63017 if !(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(mark))) != 0) { 63018 goto __105 63019 } 63020 mark++ 63021 goto __104 63022 __105: 63023 ; 63024 fraglength = Tsize_t((int64(mark) - int64(mark_start)) / 1) 63025 if !(!(overflowed != 0) && lengthleft < fraglength) { 63026 goto __106 63027 } 63028 if !(suboptions&DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH == Tuint32_t(0)) { 63029 goto __108 63030 } 63031 goto NOROOM 63032 __108: 63033 ; 63034 overflowed = DTRUE 63035 extra_needed = fraglength - lengthleft 63036 goto __107 63037 __106: 63038 if !(overflowed != 0) { 63039 goto __109 63040 } 63041 extra_needed = extra_needed + fraglength 63042 goto __110 63043 __109: 63044 libc.Xmemcpy(tls, buffer+uintptr(buff_offset), mark_start, fraglength*uint64(DPCRE2_CODE_UNIT_WIDTH/8)) 63045 buff_offset = buff_offset + fraglength 63046 lengthleft = lengthleft - fraglength 63047 __110: 63048 ; 63049 __107: 63050 ; 63051 63052 __103: 63053 ; 63054 goto __102 63055 __101: 63056 goto BAD 63057 __102: 63058 ; 63059 goto __100 63060 __99: 63061 63062 // Find a number for a named group. In case there are duplicate names, 63063 // search for the first one that is set. If the name is not found when 63064 // PCRE2_SUBSTITUTE_UNKNOWN_EMPTY is set, set the group number to a 63065 // non-existent group. 63066 63067 if !(group < 0) { 63068 goto __111 63069 } 63070 63071 rc = Xpcre2_substring_nametable_scan_8(tls, code, bp+240, bp+288, bp+296) 63072 if !(rc == -49 && suboptions&DPCRE2_SUBSTITUTE_UNKNOWN_UNSET != Tuint32_t(0)) { 63073 goto __112 63074 } 63075 63076 group = int32((*Tpcre2_code_8)(unsafe.Pointer(code)).Ftop_bracket) + 1 63077 goto __113 63078 __112: 63079 63080 if !(rc < 0) { 63081 goto __114 63082 } 63083 goto PTREXIT 63084 __114: 63085 ; 63086 entry = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 288 /* first */)) 63087 __115: 63088 if !(entry <= *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 296))) { 63089 goto __117 63090 } 63091 63092 ng = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(entry)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(entry + 1)))) 63093 if !(ng < ovector_count) { 63094 goto __118 63095 } 63096 63097 if !(group < 0) { 63098 goto __119 63099 } 63100 group = int32(ng) 63101 __119: 63102 ; // First in ovector 63103 if !(*(*Tsize_t)(unsafe.Pointer(ovector + uintptr(ng*Tuint32_t(2))*8)) != libc.CplUint64(uint64(0))) { 63104 goto __120 63105 } 63106 63107 group = int32(ng) // First that is set 63108 goto __117 63109 __120: 63110 ; 63111 __118: 63112 ; 63113 goto __116 63114 __116: 63115 entry += TPCRE2_SPTR8(rc) 63116 goto __115 63117 goto __117 63118 __117: 63119 ; 63120 63121 // If group is still negative, it means we did not find a group 63122 // that is in the ovector. Just set the first group. 63123 63124 if !(group < 0) { 63125 goto __121 63126 } 63127 group = int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 288)))))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 288)) + 1))))) 63128 __121: 63129 ; 63130 __113: 63131 ; 63132 __111: 63133 ; 63134 63135 // We now have a group that is identified by number. Find the length of 63136 // the captured string. If a group in a non-special substitution is unset 63137 // when PCRE2_SUBSTITUTE_UNSET_EMPTY is set, substitute nothing. 63138 63139 rc = Xpcre2_substring_length_bynumber_8(tls, match_data, uint32(group), bp+304) 63140 if !(rc < 0) { 63141 goto __122 63142 } 63143 63144 if !(rc == -49 && suboptions&DPCRE2_SUBSTITUTE_UNKNOWN_UNSET != Tuint32_t(0)) { 63145 goto __123 63146 } 63147 63148 rc = -55 63149 __123: 63150 ; 63151 if !(rc != -55) { 63152 goto __124 63153 } 63154 goto PTREXIT 63155 __124: 63156 ; // Non-unset errors 63157 if !(special == Tuint32_t(0)) { 63158 goto __125 63159 } /* Plain substitution */ 63160 63161 if !(suboptions&DPCRE2_SUBSTITUTE_UNSET_EMPTY != Tuint32_t(0)) { 63162 goto __126 63163 } 63164 goto __62 63165 __126: 63166 ; 63167 goto PTREXIT // Else error 63168 __125: 63169 ; 63170 __122: 63171 ; 63172 63173 // If special is '+' we have a 'set' and possibly an 'unset' text, 63174 // both of which are reprocessed when used. If special is '-' we have a 63175 // default text for when the group is unset; it must be reprocessed. 63176 63177 if !(special != Tuint32_t(0)) { 63178 goto __127 63179 } 63180 63181 if !(special == Tuint32_t('\055')) { 63182 goto __128 63183 } 63184 63185 if !(rc == 0) { 63186 goto __129 63187 } 63188 goto LITERAL_SUBSTITUTE 63189 __129: 63190 ; 63191 text2_start = text1_start 63192 text2_end = text1_end 63193 __128: 63194 ; 63195 63196 if !(ptrstackptr >= Tuint32_t(DPTR_STACK_SIZE)) { 63197 goto __130 63198 } 63199 goto BAD 63200 __130: 63201 ; 63202 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 80 + uintptr(libc.PostIncUint32(&ptrstackptr, 1))*8)) = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)) 63203 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 80 + uintptr(libc.PostIncUint32(&ptrstackptr, 1))*8)) = repend 63204 63205 if !(rc == 0) { 63206 goto __131 63207 } 63208 63209 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)) = text1_start 63210 repend = text1_end 63211 goto __132 63212 __131: 63213 63214 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)) = text2_start 63215 repend = text2_end 63216 __132: 63217 ; 63218 goto __62 63219 __127: 63220 ; 63221 63222 // Otherwise we have a literal substitution of a group's contents. 63223 63224 LITERAL_SUBSTITUTE: 63225 subptr = subject + uintptr(*(*Tsize_t)(unsafe.Pointer(ovector + uintptr(group*2)*8))) 63226 subptrend = subject + uintptr(*(*Tsize_t)(unsafe.Pointer(ovector + uintptr(group*2+1)*8))) 63227 63228 // Substitute a literal string, possibly forcing alphabetic case. 63229 63230 __133: 63231 if !(subptr < subptrend) { 63232 goto __134 63233 } 63234 63235 *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&subptr, 1)))) 63236 if !(utf != 0 && *(*Tuint32_t)(unsafe.Pointer(bp + 320)) >= 0xc0) { 63237 goto __135 63238 } 63239 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 320))&0x20 == Tuint32_t(0)) { 63240 goto __136 63241 } 63242 *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 320))&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&subptr, 1))))&0x3f 63243 goto __137 63244 __136: 63245 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 320))&0x10 == Tuint32_t(0)) { 63246 goto __138 63247 } 63248 *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 320))&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subptr)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subptr + 1)))&0x3f 63249 subptr += uintptr(2) 63250 goto __139 63251 __138: 63252 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 320))&0x08 == Tuint32_t(0)) { 63253 goto __140 63254 } 63255 *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 320))&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subptr)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subptr + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subptr + 2)))&0x3f 63256 subptr += uintptr(3) 63257 goto __141 63258 __140: 63259 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 320))&0x04 == Tuint32_t(0)) { 63260 goto __142 63261 } 63262 *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 320))&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subptr)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subptr + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subptr + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subptr + 3)))&0x3f 63263 subptr += uintptr(4) 63264 goto __143 63265 __142: 63266 *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 320))&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subptr)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subptr + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subptr + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subptr + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(subptr + 4)))&0x3f 63267 subptr += uintptr(5) 63268 __143: 63269 ; 63270 __141: 63271 ; 63272 __139: 63273 ; 63274 __137: 63275 ; 63276 __135: 63277 ; 63278 63279 if !(forcecase != 0) { 63280 goto __144 63281 } 63282 63283 if !(utf != 0 || ucp != 0) { 63284 goto __145 63285 } 63286 63287 type1 = Tuint32_t((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(*(*Tuint32_t)(unsafe.Pointer(bp + 320)))/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(*(*Tuint32_t)(unsafe.Pointer(bp + 320)))%DUCD_BLOCK_SIZE])*12)).Fchartype) 63288 if !(X_pcre2_ucp_gentype_8[type1] == ucp_L && type1 != func() uint32 { 63289 if forcecase > 0 { 63290 return ucp_Lu 63291 } 63292 return ucp_Ll 63293 }()) { 63294 goto __147 63295 } 63296 *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)) = Tuint32_t(int32(*(*Tuint32_t)(unsafe.Pointer(bp + 320))) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(*(*Tuint32_t)(unsafe.Pointer(bp + 320)))/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(*(*Tuint32_t)(unsafe.Pointer(bp + 320)))%DUCD_BLOCK_SIZE])*12)).Fother_case) 63297 __147: 63298 ; 63299 goto __146 63300 __145: 63301 63302 if !(uint32(*(*Tuint8_t)(unsafe.Pointer((*Tpcre2_code_8)(unsafe.Pointer(code)).Ftables + uintptr(Dcbits_offset) + uintptr(func() int32 { 63303 if forcecase > 0 { 63304 return Dcbit_upper 63305 } 63306 return Dcbit_lower 63307 }()) + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 320))/Tuint32_t(8)))))&(uint32(1)<<(*(*Tuint32_t)(unsafe.Pointer(bp + 320))%Tuint32_t(8))) == uint32(0)) { 63308 goto __148 63309 } 63310 *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)) = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer((*Tpcre2_code_8)(unsafe.Pointer(code)).Ftables + uintptr(Dfcc_offset) + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)))))) 63311 __148: 63312 ; 63313 __146: 63314 ; 63315 forcecase = forcecasereset 63316 __144: 63317 ; 63318 63319 if !(utf != 0) { 63320 goto __149 63321 } 63322 chlen = X_pcre2_ord2utf_8(tls, *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)), bp+312) 63323 goto __150 63324 __149: 63325 63326 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 312)) = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */))) 63327 chlen = uint32(1) 63328 __150: 63329 ; 63330 if !(!(overflowed != 0) && lengthleft < Tsize_t(chlen)) { 63331 goto __151 63332 } 63333 if !(suboptions&DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH == Tuint32_t(0)) { 63334 goto __153 63335 } 63336 goto NOROOM 63337 __153: 63338 ; 63339 overflowed = DTRUE 63340 extra_needed = Tsize_t(chlen) - lengthleft 63341 goto __152 63342 __151: 63343 if !(overflowed != 0) { 63344 goto __154 63345 } 63346 extra_needed = extra_needed + Tsize_t(chlen) 63347 goto __155 63348 __154: 63349 libc.Xmemcpy(tls, buffer+uintptr(buff_offset), bp+312, uint64(chlen*uint32(DPCRE2_CODE_UNIT_WIDTH/8))) 63350 buff_offset = buff_offset + Tsize_t(chlen) 63351 lengthleft = lengthleft - Tsize_t(chlen) 63352 __155: 63353 ; 63354 __152: 63355 ; 63356 63357 goto __133 63358 __134: 63359 ; 63360 __100: 63361 ; 63362 goto __69 63363 __68: 63364 if !(suboptions&DPCRE2_SUBSTITUTE_EXTENDED != Tuint32_t(0) && int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280))))) == '\134') { 63365 goto __156 63366 } 63367 63368 if !(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)) < repend-uintptr(1)) { 63369 goto __158 63370 } 63371 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)) + 1))) { 63372 case '\114': 63373 goto __160 63374 63375 case '\154': 63376 goto __161 63377 63378 case '\125': 63379 goto __162 63380 63381 case '\165': 63382 goto __163 63383 63384 default: 63385 goto __164 63386 } 63387 goto __159 63388 63389 __160: 63390 forcecase = libc.AssignInt32(&forcecasereset, -1) 63391 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)) += uintptr(2) 63392 goto __62 63393 63394 __161: 63395 forcecase = -1 63396 forcecasereset = 0 63397 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)) += uintptr(2) 63398 goto __62 63399 63400 __162: 63401 forcecase = libc.AssignInt32(&forcecasereset, 1) 63402 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)) += uintptr(2) 63403 goto __62 63404 63405 __163: 63406 forcecase = 1 63407 forcecasereset = 0 63408 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)) += uintptr(2) 63409 goto __62 63410 63411 __164: 63412 goto __159 63413 __159: 63414 ; 63415 __158: 63416 ; 63417 63418 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */))++ // Point after \ 63419 rc = X_pcre2_check_escape_8(tls, bp+280, repend, bp+320, bp+324, 63420 (*Tpcre2_code_8)(unsafe.Pointer(code)).Foverall_options, (*Tpcre2_code_8)(unsafe.Pointer(code)).Fextra_options, DFALSE, uintptr(0)) 63421 if !(*(*int32)(unsafe.Pointer(bp + 324)) != 0) { 63422 goto __165 63423 } 63424 goto BADESCAPE 63425 __165: 63426 ; 63427 63428 switch rc { 63429 case ESC_E: 63430 goto __167 63431 63432 case ESC_Q: 63433 goto __168 63434 63435 case 0: 63436 goto __169 63437 63438 default: 63439 goto __170 63440 } 63441 goto __166 63442 63443 __167: 63444 forcecase = libc.AssignInt32(&forcecasereset, 0) 63445 goto __62 63446 63447 __168: 63448 escaped_literal = DTRUE 63449 goto __62 63450 63451 __169: // Data character 63452 goto LITERAL 63453 63454 __170: 63455 goto BADESCAPE 63456 __166: 63457 ; 63458 goto __157 63459 __156: 63460 63461 LOADLITERAL: 63462 *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)) = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)), 1)))) 63463 if !(utf != 0 && *(*Tuint32_t)(unsafe.Pointer(bp + 320)) >= 0xc0) { 63464 goto __171 63465 } 63466 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 320))&0x20 == Tuint32_t(0)) { 63467 goto __172 63468 } 63469 *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 320))&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)), 1))))&0x3f 63470 goto __173 63471 __172: 63472 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 320))&0x10 == Tuint32_t(0)) { 63473 goto __174 63474 } 63475 *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 320))&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)))))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)) + 1)))&0x3f 63476 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)) += uintptr(2) 63477 goto __175 63478 __174: 63479 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 320))&0x08 == Tuint32_t(0)) { 63480 goto __176 63481 } 63482 *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 320))&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)))))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)) + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)) + 2)))&0x3f 63483 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)) += uintptr(3) 63484 goto __177 63485 __176: 63486 if !(*(*Tuint32_t)(unsafe.Pointer(bp + 320))&0x04 == Tuint32_t(0)) { 63487 goto __178 63488 } 63489 *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 320))&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)))))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)) + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)) + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)) + 3)))&0x3f 63490 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)) += uintptr(4) 63491 goto __179 63492 __178: 63493 *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)) = *(*Tuint32_t)(unsafe.Pointer(bp + 320))&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)))))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)) + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)) + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)) + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280)) + 4)))&0x3f 63494 *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280 /* ptr */)) += uintptr(5) 63495 __179: 63496 ; 63497 __177: 63498 ; 63499 __175: 63500 ; 63501 __173: 63502 ; 63503 __171: 63504 ; 63505 63506 // Get character value, increment pointer 63507 63508 LITERAL: 63509 if !(forcecase != 0) { 63510 goto __180 63511 } 63512 63513 if !(utf != 0 || ucp != 0) { 63514 goto __181 63515 } 63516 63517 type2 = Tuint32_t((*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(*(*Tuint32_t)(unsafe.Pointer(bp + 320)))/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(*(*Tuint32_t)(unsafe.Pointer(bp + 320)))%DUCD_BLOCK_SIZE])*12)).Fchartype) 63518 if !(X_pcre2_ucp_gentype_8[type2] == ucp_L && type2 != func() uint32 { 63519 if forcecase > 0 { 63520 return ucp_Lu 63521 } 63522 return ucp_Ll 63523 }()) { 63524 goto __183 63525 } 63526 *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)) = Tuint32_t(int32(*(*Tuint32_t)(unsafe.Pointer(bp + 320))) + (*Tucd_record)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8))+uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(*(*Tuint32_t)(unsafe.Pointer(bp + 320)))/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(*(*Tuint32_t)(unsafe.Pointer(bp + 320)))%DUCD_BLOCK_SIZE])*12)).Fother_case) 63527 __183: 63528 ; 63529 goto __182 63530 __181: 63531 63532 if !(uint32(*(*Tuint8_t)(unsafe.Pointer((*Tpcre2_code_8)(unsafe.Pointer(code)).Ftables + uintptr(Dcbits_offset) + uintptr(func() int32 { 63533 if forcecase > 0 { 63534 return Dcbit_upper 63535 } 63536 return Dcbit_lower 63537 }()) + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 320))/Tuint32_t(8)))))&(uint32(1)<<(*(*Tuint32_t)(unsafe.Pointer(bp + 320))%Tuint32_t(8))) == uint32(0)) { 63538 goto __184 63539 } 63540 *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)) = Tuint32_t(*(*Tuint8_t)(unsafe.Pointer((*Tpcre2_code_8)(unsafe.Pointer(code)).Ftables + uintptr(Dfcc_offset) + uintptr(*(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)))))) 63541 __184: 63542 ; 63543 __182: 63544 ; 63545 forcecase = forcecasereset 63546 __180: 63547 ; 63548 63549 if !(utf != 0) { 63550 goto __185 63551 } 63552 chlen = X_pcre2_ord2utf_8(tls, *(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */)), bp+312) 63553 goto __186 63554 __185: 63555 63556 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 312)) = TPCRE2_UCHAR8(*(*Tuint32_t)(unsafe.Pointer(bp + 320 /* ch */))) 63557 chlen = uint32(1) 63558 __186: 63559 ; 63560 if !(!(overflowed != 0) && lengthleft < Tsize_t(chlen)) { 63561 goto __187 63562 } 63563 if !(suboptions&DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH == Tuint32_t(0)) { 63564 goto __189 63565 } 63566 goto NOROOM 63567 __189: 63568 ; 63569 overflowed = DTRUE 63570 extra_needed = Tsize_t(chlen) - lengthleft 63571 goto __188 63572 __187: 63573 if !(overflowed != 0) { 63574 goto __190 63575 } 63576 extra_needed = extra_needed + Tsize_t(chlen) 63577 goto __191 63578 __190: 63579 libc.Xmemcpy(tls, buffer+uintptr(buff_offset), bp+312, uint64(chlen*uint32(DPCRE2_CODE_UNIT_WIDTH/8))) 63580 buff_offset = buff_offset + Tsize_t(chlen) 63581 lengthleft = lengthleft - Tsize_t(chlen) 63582 __191: 63583 ; 63584 __188: 63585 ; 63586 63587 __157: 63588 ; 63589 __69: 63590 ; // End handling a literal code unit 63591 goto __62 63592 __62: 63593 goto __61 63594 goto __63 63595 __63: 63596 ; 63597 __55: 63598 ; // End of loop for scanning the replacement. 63599 63600 // The replacement has been copied to the output, or its size has been 63601 // remembered. Do the callout if there is one and we have done an actual 63602 // replacement. 63603 63604 if !(!(overflowed != 0) && mcontext != uintptr(0) && (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fsubstitute_callout != uintptr(0)) { 63605 goto __192 63606 } 63607 63608 (*Tpcre2_substitute_callout_block_8)(unsafe.Pointer(bp + 24 /* &scb */)).Fsubscount = Tuint32_t(subs) 63609 *(*Tsize_t)(unsafe.Pointer(bp + 24 + 24 + 1*8)) = buff_offset 63610 rc = (*struct { 63611 f func(*libc.TLS, uintptr, uintptr) int32 63612 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fsubstitute_callout})).f(tls, bp+24 /* &scb */, (*Tpcre2_match_context_8)(unsafe.Pointer(mcontext)).Fsubstitute_callout_data) 63613 63614 // A non-zero return means cancel this substitution. Instead, copy the 63615 // matched string fragment. 63616 63617 if !(rc != 0) { 63618 goto __193 63619 } 63620 63621 newlength = *(*Tsize_t)(unsafe.Pointer(bp + 24 + 24 + 1*8)) - *(*Tsize_t)(unsafe.Pointer(bp + 24 + 24)) 63622 oldlength = *(*Tsize_t)(unsafe.Pointer(ovector + 1*8)) - *(*Tsize_t)(unsafe.Pointer(ovector)) 63623 63624 buff_offset = buff_offset - newlength 63625 lengthleft = lengthleft + newlength 63626 if !!(replacement_only != 0) { 63627 goto __194 63628 } 63629 if !(!(overflowed != 0) && lengthleft < oldlength) { 63630 goto __195 63631 } 63632 if !(suboptions&DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH == Tuint32_t(0)) { 63633 goto __197 63634 } 63635 goto NOROOM 63636 __197: 63637 ; 63638 overflowed = DTRUE 63639 extra_needed = oldlength - lengthleft 63640 goto __196 63641 __195: 63642 if !(overflowed != 0) { 63643 goto __198 63644 } 63645 extra_needed = extra_needed + oldlength 63646 goto __199 63647 __198: 63648 libc.Xmemcpy(tls, buffer+uintptr(buff_offset), subject+uintptr(*(*Tsize_t)(unsafe.Pointer(ovector))), oldlength*uint64(DPCRE2_CODE_UNIT_WIDTH/8)) 63649 buff_offset = buff_offset + oldlength 63650 lengthleft = lengthleft - oldlength 63651 __199: 63652 ; 63653 __196: 63654 ; 63655 __194: 63656 ; 63657 63658 // A negative return means do not do any more. 63659 63660 if !(rc < 0) { 63661 goto __200 63662 } 63663 suboptions = suboptions & libc.CplUint32(DPCRE2_SUBSTITUTE_GLOBAL) 63664 __200: 63665 ; 63666 __193: 63667 ; 63668 __192: 63669 ; 63670 63671 // Save the details of this match. See above for how this data is used. If we 63672 // matched an empty string, do the magic for global matches. Update the start 63673 // offset to point to the rest of the subject string. If we re-used an existing 63674 // match for the first match, switch to the internal match data block. 63675 63676 *(*Tsize_t)(unsafe.Pointer(bp)) = *(*Tsize_t)(unsafe.Pointer(ovector)) 63677 *(*Tsize_t)(unsafe.Pointer(bp + 1*8)) = *(*Tsize_t)(unsafe.Pointer(ovector + 1*8)) 63678 *(*Tsize_t)(unsafe.Pointer(bp + 2*8)) = start_offset 63679 63680 if *(*Tsize_t)(unsafe.Pointer(ovector)) != *(*Tsize_t)(unsafe.Pointer(ovector + 1*8)) || *(*Tsize_t)(unsafe.Pointer(ovector)) > start_offset { 63681 goptions = uint32(0) 63682 } else { 63683 goptions = DPCRE2_ANCHORED | DPCRE2_NOTEMPTY_ATSTART 63684 } 63685 start_offset = *(*Tsize_t)(unsafe.Pointer(ovector + 1*8)) 63686 goto __24 63687 __24: 63688 if suboptions&DPCRE2_SUBSTITUTE_GLOBAL != Tuint32_t(0) { 63689 goto __23 63690 } 63691 goto __25 63692 __25: 63693 ; // Repeat "do" loop 63694 63695 // Copy the rest of the subject unless not required, and terminate the output 63696 // with a binary zero. 63697 63698 if !!(replacement_only != 0) { 63699 goto __201 63700 } 63701 63702 fraglength = length - start_offset 63703 if !(!(overflowed != 0) && lengthleft < fraglength) { 63704 goto __202 63705 } 63706 if !(suboptions&DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH == Tuint32_t(0)) { 63707 goto __204 63708 } 63709 goto NOROOM 63710 __204: 63711 ; 63712 overflowed = DTRUE 63713 extra_needed = fraglength - lengthleft 63714 goto __203 63715 __202: 63716 if !(overflowed != 0) { 63717 goto __205 63718 } 63719 extra_needed = extra_needed + fraglength 63720 goto __206 63721 __205: 63722 libc.Xmemcpy(tls, buffer+uintptr(buff_offset), subject+uintptr(start_offset), fraglength*uint64(DPCRE2_CODE_UNIT_WIDTH/8)) 63723 buff_offset = buff_offset + fraglength 63724 lengthleft = lengthleft - fraglength 63725 __206: 63726 ; 63727 __203: 63728 ; 63729 63730 __201: 63731 ; 63732 63733 *(*TPCRE2_UCHAR8)(unsafe.Pointer(bp + 312)) = TPCRE2_UCHAR8(0) 63734 if !(!(overflowed != 0) && lengthleft < uint64(1)) { 63735 goto __207 63736 } 63737 if !(suboptions&DPCRE2_SUBSTITUTE_OVERFLOW_LENGTH == Tuint32_t(0)) { 63738 goto __209 63739 } 63740 goto NOROOM 63741 __209: 63742 ; 63743 overflowed = DTRUE 63744 extra_needed = uint64(1) - lengthleft 63745 goto __208 63746 __207: 63747 if !(overflowed != 0) { 63748 goto __210 63749 } 63750 extra_needed = extra_needed + uint64(1) 63751 goto __211 63752 __210: 63753 libc.Xmemcpy(tls, buffer+uintptr(buff_offset), bp+312, uint64(1*(DPCRE2_CODE_UNIT_WIDTH/8))) 63754 buff_offset = buff_offset + uint64(1) 63755 lengthleft = lengthleft - uint64(1) 63756 __211: 63757 ; 63758 __208: 63759 ; 63760 63761 // If overflowed is set it means the PCRE2_SUBSTITUTE_OVERFLOW_LENGTH is set, 63762 // and matching has carried on after a full buffer, in order to compute the length 63763 // needed. Otherwise, an overflow generates an immediate error return. 63764 63765 if !(overflowed != 0) { 63766 goto __212 63767 } 63768 63769 rc = -48 63770 *(*Tsize_t)(unsafe.Pointer(blength)) = buff_length + extra_needed 63771 goto __213 63772 __212: 63773 63774 rc = subs 63775 *(*Tsize_t)(unsafe.Pointer(blength)) = buff_offset - uint64(1) 63776 __213: 63777 ; 63778 63779 EXIT: 63780 if !(internal_match_data != uintptr(0)) { 63781 goto __214 63782 } 63783 Xpcre2_match_data_free_8(tls, internal_match_data) 63784 goto __215 63785 __214: 63786 (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc = rc 63787 __215: 63788 ; 63789 return rc 63790 63791 NOROOM: 63792 rc = -48 63793 goto EXIT 63794 63795 BAD: 63796 rc = -35 63797 goto PTREXIT 63798 63799 BADESCAPE: 63800 rc = -57 63801 63802 PTREXIT: 63803 *(*Tsize_t)(unsafe.Pointer(blength)) = Tsize_t((int64(*(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 280))) - int64(replacement)) / 1) 63804 goto EXIT 63805 return int32(0) 63806 } 63807 63808 // End of pcre2_substitute.c 63809 63810 // This function is needed only when memmove() is not available. 63811 63812 // End of pcre2_internal.h 63813 63814 // ************************************************ 63815 // 63816 // Copy named captured string to given buffer * 63817 // 63818 63819 // This function copies a single captured substring into a given buffer, 63820 // identifying it by name. If the regex permits duplicate names, the first 63821 // substring that is set is chosen. 63822 // 63823 // Arguments: 63824 // match_data points to the match data 63825 // stringname the name of the required substring 63826 // buffer where to put the substring 63827 // sizeptr the size of the buffer, updated to the size of the substring 63828 // 63829 // Returns: if successful: zero 63830 // if not successful, a negative error code: 63831 // (1) an error from nametable_scan() 63832 // (2) an error from copy_bynumber() 63833 // (3) PCRE2_ERROR_UNAVAILABLE: no group is in ovector 63834 // (4) PCRE2_ERROR_UNSET: all named groups in ovector are unset 63835 63836 func Xpcre2_substring_copy_byname_8(tls *libc.TLS, match_data uintptr, stringname TPCRE2_SPTR8, buffer uintptr, sizeptr uintptr) int32 { /* pcre2_substring.c:73:1: */ 63837 bp := tls.Alloc(16) 63838 defer tls.Free(16) 63839 63840 // var first TPCRE2_SPTR8 at bp, 8 63841 63842 // var last TPCRE2_SPTR8 at bp+8, 8 63843 63844 var entry TPCRE2_SPTR8 63845 var failrc int32 63846 var entrysize int32 63847 if int32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmatchedby) == PCRE2_MATCHEDBY_DFA_INTERPRETER { 63848 return -41 63849 } 63850 entrysize = Xpcre2_substring_nametable_scan_8(tls, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fcode, stringname, 63851 bp, bp+8) 63852 if entrysize < 0 { 63853 return entrysize 63854 } 63855 failrc = -54 63856 for entry = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* first */)); entry <= *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* last */)); entry += TPCRE2_SPTR8(entrysize) { 63857 var n Tuint32_t = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(entry)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(entry + 1)))) 63858 if n < Tuint32_t((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount) { 63859 if *(*Tsize_t)(unsafe.Pointer(match_data + 80 + uintptr(n*Tuint32_t(2))*8)) != libc.CplUint64(uint64(0)) { 63860 return Xpcre2_substring_copy_bynumber_8(tls, match_data, n, buffer, sizeptr) 63861 } 63862 failrc = -55 63863 } 63864 } 63865 return failrc 63866 } 63867 63868 // ************************************************ 63869 // 63870 // Copy numbered captured string to given buffer * 63871 // 63872 63873 // This function copies a single captured substring into a given buffer, 63874 // identifying it by number. 63875 // 63876 // Arguments: 63877 // match_data points to the match data 63878 // stringnumber the number of the required substring 63879 // buffer where to put the substring 63880 // sizeptr the size of the buffer, updated to the size of the substring 63881 // 63882 // Returns: if successful: 0 63883 // if not successful, a negative error code: 63884 // PCRE2_ERROR_NOMEMORY: buffer too small 63885 // PCRE2_ERROR_NOSUBSTRING: no such substring 63886 // PCRE2_ERROR_UNAVAILABLE: ovector too small 63887 // PCRE2_ERROR_UNSET: substring is not set 63888 63889 func Xpcre2_substring_copy_bynumber_8(tls *libc.TLS, match_data uintptr, stringnumber Tuint32_t, buffer uintptr, sizeptr uintptr) int32 { /* pcre2_substring.c:121:1: */ 63890 bp := tls.Alloc(8) 63891 defer tls.Free(8) 63892 63893 var rc int32 63894 // var size Tsize_t at bp, 8 63895 63896 rc = Xpcre2_substring_length_bynumber_8(tls, match_data, stringnumber, bp) 63897 if rc < 0 { 63898 return rc 63899 } 63900 if *(*Tsize_t)(unsafe.Pointer(bp))+uint64(1) > *(*Tsize_t)(unsafe.Pointer(sizeptr)) { 63901 return -48 63902 } 63903 libc.Xmemcpy(tls, buffer, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject+uintptr(*(*Tsize_t)(unsafe.Pointer(match_data + 80 + uintptr(stringnumber*Tuint32_t(2))*8))), 63904 *(*Tsize_t)(unsafe.Pointer(bp))*uint64(DPCRE2_CODE_UNIT_WIDTH/8)) 63905 *(*TPCRE2_UCHAR8)(unsafe.Pointer(buffer + uintptr(*(*Tsize_t)(unsafe.Pointer(bp /* size */))))) = TPCRE2_UCHAR8(0) 63906 *(*Tsize_t)(unsafe.Pointer(sizeptr)) = *(*Tsize_t)(unsafe.Pointer(bp /* size */)) 63907 return 0 63908 } 63909 63910 // ************************************************ 63911 // 63912 // Extract named captured string * 63913 // 63914 63915 // This function copies a single captured substring, identified by name, into 63916 // new memory. If the regex permits duplicate names, the first substring that is 63917 // set is chosen. 63918 // 63919 // Arguments: 63920 // match_data pointer to match_data 63921 // stringname the name of the required substring 63922 // stringptr where to put the pointer to the new memory 63923 // sizeptr where to put the length of the substring 63924 // 63925 // Returns: if successful: zero 63926 // if not successful, a negative value: 63927 // (1) an error from nametable_scan() 63928 // (2) an error from get_bynumber() 63929 // (3) PCRE2_ERROR_UNAVAILABLE: no group is in ovector 63930 // (4) PCRE2_ERROR_UNSET: all named groups in ovector are unset 63931 63932 func Xpcre2_substring_get_byname_8(tls *libc.TLS, match_data uintptr, stringname TPCRE2_SPTR8, stringptr uintptr, sizeptr uintptr) int32 { /* pcre2_substring.c:161:1: */ 63933 bp := tls.Alloc(16) 63934 defer tls.Free(16) 63935 63936 // var first TPCRE2_SPTR8 at bp, 8 63937 63938 // var last TPCRE2_SPTR8 at bp+8, 8 63939 63940 var entry TPCRE2_SPTR8 63941 var failrc int32 63942 var entrysize int32 63943 if int32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmatchedby) == PCRE2_MATCHEDBY_DFA_INTERPRETER { 63944 return -41 63945 } 63946 entrysize = Xpcre2_substring_nametable_scan_8(tls, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fcode, stringname, 63947 bp, bp+8) 63948 if entrysize < 0 { 63949 return entrysize 63950 } 63951 failrc = -54 63952 for entry = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* first */)); entry <= *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* last */)); entry += TPCRE2_SPTR8(entrysize) { 63953 var n Tuint32_t = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(entry)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(entry + 1)))) 63954 if n < Tuint32_t((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount) { 63955 if *(*Tsize_t)(unsafe.Pointer(match_data + 80 + uintptr(n*Tuint32_t(2))*8)) != libc.CplUint64(uint64(0)) { 63956 return Xpcre2_substring_get_bynumber_8(tls, match_data, n, stringptr, sizeptr) 63957 } 63958 failrc = -55 63959 } 63960 } 63961 return failrc 63962 } 63963 63964 // ************************************************ 63965 // 63966 // Extract captured string to new memory * 63967 // 63968 63969 // This function copies a single captured substring into a piece of new 63970 // memory. 63971 // 63972 // Arguments: 63973 // match_data points to match data 63974 // stringnumber the number of the required substring 63975 // stringptr where to put a pointer to the new memory 63976 // sizeptr where to put the size of the substring 63977 // 63978 // Returns: if successful: 0 63979 // if not successful, a negative error code: 63980 // PCRE2_ERROR_NOMEMORY: failed to get memory 63981 // PCRE2_ERROR_NOSUBSTRING: no such substring 63982 // PCRE2_ERROR_UNAVAILABLE: ovector too small 63983 // PCRE2_ERROR_UNSET: substring is not set 63984 63985 func Xpcre2_substring_get_bynumber_8(tls *libc.TLS, match_data uintptr, stringnumber Tuint32_t, stringptr uintptr, sizeptr uintptr) int32 { /* pcre2_substring.c:209:1: */ 63986 bp := tls.Alloc(8) 63987 defer tls.Free(8) 63988 63989 var rc int32 63990 // var size Tsize_t at bp, 8 63991 63992 var yield uintptr 63993 rc = Xpcre2_substring_length_bynumber_8(tls, match_data, stringnumber, bp) 63994 if rc < 0 { 63995 return rc 63996 } 63997 yield = X_pcre2_memctl_malloc_8(tls, uint64(unsafe.Sizeof(Tpcre2_memctl{}))+(*(*Tsize_t)(unsafe.Pointer(bp))+uint64(1))*uint64(DPCRE2_CODE_UNIT_WIDTH), match_data) 63998 if yield == uintptr(0) { 63999 return -48 64000 } 64001 yield = yield + uintptr(uint64(unsafe.Sizeof(Tpcre2_memctl{}))) 64002 libc.Xmemcpy(tls, yield, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject+uintptr(*(*Tsize_t)(unsafe.Pointer(match_data + 80 + uintptr(stringnumber*Tuint32_t(2))*8))), 64003 *(*Tsize_t)(unsafe.Pointer(bp))*uint64(DPCRE2_CODE_UNIT_WIDTH/8)) 64004 *(*TPCRE2_UCHAR8)(unsafe.Pointer(yield + uintptr(*(*Tsize_t)(unsafe.Pointer(bp /* size */))))) = TPCRE2_UCHAR8(0) 64005 *(*uintptr)(unsafe.Pointer(stringptr)) = yield 64006 *(*Tsize_t)(unsafe.Pointer(sizeptr)) = *(*Tsize_t)(unsafe.Pointer(bp /* size */)) 64007 return 0 64008 } 64009 64010 // ************************************************ 64011 // 64012 // Free memory obtained by get_substring * 64013 // 64014 64015 // 64016 // Argument: the result of a previous pcre2_substring_get_byxxx() 64017 // Returns: nothing 64018 64019 func Xpcre2_substring_free_8(tls *libc.TLS, string uintptr) { /* pcre2_substring.c:241:1: */ 64020 if string != uintptr(0) { 64021 var memctl uintptr = string - uintptr(uint64(unsafe.Sizeof(Tpcre2_memctl{}))) 64022 (*struct { 64023 f func(*libc.TLS, uintptr, uintptr) 64024 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_memctl)(unsafe.Pointer(memctl)).Ffree})).f(tls, memctl, (*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmemory_data) 64025 } 64026 } 64027 64028 // ************************************************ 64029 // 64030 // Get length of a named substring * 64031 // 64032 64033 // This function returns the length of a named captured substring. If the regex 64034 // permits duplicate names, the first substring that is set is chosen. 64035 // 64036 // Arguments: 64037 // match_data pointer to match data 64038 // stringname the name of the required substring 64039 // sizeptr where to put the length 64040 // 64041 // Returns: 0 if successful, else a negative error number 64042 64043 func Xpcre2_substring_length_byname_8(tls *libc.TLS, match_data uintptr, stringname TPCRE2_SPTR8, sizeptr uintptr) int32 { /* pcre2_substring.c:268:1: */ 64044 bp := tls.Alloc(16) 64045 defer tls.Free(16) 64046 64047 // var first TPCRE2_SPTR8 at bp, 8 64048 64049 // var last TPCRE2_SPTR8 at bp+8, 8 64050 64051 var entry TPCRE2_SPTR8 64052 var failrc int32 64053 var entrysize int32 64054 if int32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmatchedby) == PCRE2_MATCHEDBY_DFA_INTERPRETER { 64055 return -41 64056 } 64057 entrysize = Xpcre2_substring_nametable_scan_8(tls, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fcode, stringname, 64058 bp, bp+8) 64059 if entrysize < 0 { 64060 return entrysize 64061 } 64062 failrc = -54 64063 for entry = *(*TPCRE2_SPTR8)(unsafe.Pointer(bp /* first */)); entry <= *(*TPCRE2_SPTR8)(unsafe.Pointer(bp + 8 /* last */)); entry += TPCRE2_SPTR8(entrysize) { 64064 var n Tuint32_t = uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(entry)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(entry + 1)))) 64065 if n < Tuint32_t((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount) { 64066 if *(*Tsize_t)(unsafe.Pointer(match_data + 80 + uintptr(n*Tuint32_t(2))*8)) != libc.CplUint64(uint64(0)) { 64067 return Xpcre2_substring_length_bynumber_8(tls, match_data, n, sizeptr) 64068 } 64069 failrc = -55 64070 } 64071 } 64072 return failrc 64073 } 64074 64075 // ************************************************ 64076 // 64077 // Get length of a numbered substring * 64078 // 64079 64080 // This function returns the length of a captured substring. If the start is 64081 // beyond the end (which can happen when \K is used in an assertion), it sets the 64082 // length to zero. 64083 // 64084 // Arguments: 64085 // match_data pointer to match data 64086 // stringnumber the number of the required substring 64087 // sizeptr where to put the length, if not NULL 64088 // 64089 // Returns: if successful: 0 64090 // if not successful, a negative error code: 64091 // PCRE2_ERROR_NOSUBSTRING: no such substring 64092 // PCRE2_ERROR_UNAVAILABLE: ovector is too small 64093 // PCRE2_ERROR_UNSET: substring is not set 64094 64095 func Xpcre2_substring_length_bynumber_8(tls *libc.TLS, match_data uintptr, stringnumber Tuint32_t, sizeptr uintptr) int32 { /* pcre2_substring.c:315:1: */ 64096 var left Tsize_t 64097 var right Tsize_t 64098 var count int32 = (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc 64099 if count == -2 { 64100 if stringnumber > Tuint32_t(0) { 64101 return -2 64102 } 64103 count = 0 64104 } else if count < 0 { 64105 return count 64106 } // Match failed 64107 64108 if int32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fmatchedby) != PCRE2_MATCHEDBY_DFA_INTERPRETER { 64109 if stringnumber > Tuint32_t((*Tpcre2_real_code_8)(unsafe.Pointer((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fcode)).Ftop_bracket) { 64110 return -49 64111 } 64112 if stringnumber >= Tuint32_t((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount) { 64113 return -54 64114 } 64115 if *(*Tsize_t)(unsafe.Pointer(match_data + 80 + uintptr(stringnumber*Tuint32_t(2))*8)) == libc.CplUint64(uint64(0)) { 64116 return -55 64117 } 64118 } else { 64119 if stringnumber >= Tuint32_t((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount) { 64120 return -54 64121 } 64122 if count != 0 && stringnumber >= Tuint32_t(count) { 64123 return -55 64124 } 64125 } 64126 64127 left = *(*Tsize_t)(unsafe.Pointer(match_data + 80 + uintptr(stringnumber*Tuint32_t(2))*8)) 64128 right = *(*Tsize_t)(unsafe.Pointer(match_data + 80 + uintptr(stringnumber*Tuint32_t(2)+Tuint32_t(1))*8)) 64129 if sizeptr != uintptr(0) { 64130 *(*Tsize_t)(unsafe.Pointer(sizeptr)) = func() uint64 { 64131 if left > right { 64132 return uint64(0) 64133 } 64134 return right - left 64135 }() 64136 } 64137 return 0 64138 } 64139 64140 // ************************************************ 64141 // 64142 // Extract all captured strings to new memory * 64143 // 64144 64145 // This function gets one chunk of memory and builds a list of pointers and all 64146 // the captured substrings in it. A NULL pointer is put on the end of the list. 64147 // The substrings are zero-terminated, but also, if the final argument is 64148 // non-NULL, a list of lengths is also returned. This allows binary data to be 64149 // handled. 64150 // 64151 // Arguments: 64152 // match_data points to the match data 64153 // listptr set to point to the list of pointers 64154 // lengthsptr set to point to the list of lengths (may be NULL) 64155 // 64156 // Returns: if successful: 0 64157 // if not successful, a negative error code: 64158 // PCRE2_ERROR_NOMEMORY: failed to get memory, 64159 // or a match failure code 64160 64161 func Xpcre2_substring_list_get_8(tls *libc.TLS, match_data uintptr, listptr uintptr, lengthsptr uintptr) int32 { /* pcre2_substring.c:372:1: */ 64162 var i int32 64163 var count int32 64164 var count2 int32 64165 var size Tsize_t 64166 var lensp uintptr 64167 var memp uintptr 64168 var listp uintptr 64169 var sp uintptr 64170 var ovector uintptr 64171 64172 if libc.AssignInt32(&count, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Frc) < 0 { 64173 return count 64174 } // Match failed 64175 if count == 0 { 64176 count = int32((*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Foveccount) 64177 } // Ovector too small 64178 64179 count2 = 2 * count 64180 ovector = match_data + 80 /* &.ovector */ 64181 size = uint64(unsafe.Sizeof(Tpcre2_memctl{})) + uint64(unsafe.Sizeof(uintptr(0))) // For final NULL 64182 if lengthsptr != uintptr(0) { 64183 size = size + uint64(unsafe.Sizeof(Tsize_t(0)))*uint64(count) 64184 } // For lengths 64185 64186 for i = 0; i < count2; i = i + 2 { 64187 size = size + (uint64(unsafe.Sizeof(uintptr(0))) + uint64(1*(DPCRE2_CODE_UNIT_WIDTH/8))) 64188 if *(*Tsize_t)(unsafe.Pointer(ovector + uintptr(i+1)*8)) > *(*Tsize_t)(unsafe.Pointer(ovector + uintptr(i)*8)) { 64189 size = size + (*(*Tsize_t)(unsafe.Pointer(ovector + uintptr(i+1)*8))-*(*Tsize_t)(unsafe.Pointer(ovector + uintptr(i)*8)))*uint64(DPCRE2_CODE_UNIT_WIDTH/8) 64190 } 64191 } 64192 64193 memp = X_pcre2_memctl_malloc_8(tls, size, match_data) 64194 if memp == uintptr(0) { 64195 return -48 64196 } 64197 64198 *(*uintptr)(unsafe.Pointer(listptr)) = libc.AssignUintptr(&listp, memp+uintptr(uint64(unsafe.Sizeof(Tpcre2_memctl{})))) 64199 lensp = listp + uintptr(uint64(unsafe.Sizeof(uintptr(0)))*uint64(count+1)) 64200 64201 if lengthsptr == uintptr(0) { 64202 sp = lensp 64203 lensp = uintptr(0) 64204 } else { 64205 *(*uintptr)(unsafe.Pointer(lengthsptr)) = lensp 64206 sp = lensp + uintptr(uint64(unsafe.Sizeof(Tsize_t(0)))*uint64(count)) 64207 } 64208 64209 for i = 0; i < count2; i = i + 2 { 64210 if *(*Tsize_t)(unsafe.Pointer(ovector + uintptr(i+1)*8)) > *(*Tsize_t)(unsafe.Pointer(ovector + uintptr(i)*8)) { 64211 size = *(*Tsize_t)(unsafe.Pointer(ovector + uintptr(i+1)*8)) - *(*Tsize_t)(unsafe.Pointer(ovector + uintptr(i)*8)) 64212 } else { 64213 size = uint64(0) 64214 } 64215 64216 // Size == 0 includes the case when the capture is unset. Avoid adding 64217 // PCRE2_UNSET to match_data->subject because it overflows, even though with 64218 // zero size calling memcpy() is harmless. 64219 64220 if size != uint64(0) { 64221 libc.Xmemcpy(tls, sp, (*Tpcre2_match_data_8)(unsafe.Pointer(match_data)).Fsubject+uintptr(*(*Tsize_t)(unsafe.Pointer(ovector + uintptr(i)*8))), size*uint64(DPCRE2_CODE_UNIT_WIDTH/8)) 64222 } 64223 *(*uintptr)(unsafe.Pointer(libc.PostIncUintptr(&listp, 8))) = sp 64224 if lensp != uintptr(0) { 64225 *(*Tsize_t)(unsafe.Pointer(libc.PostIncUintptr(&lensp, 8))) = size 64226 } 64227 sp += uintptr(size) 64228 *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&sp, 1))) = TPCRE2_UCHAR8(0) 64229 } 64230 64231 *(*uintptr)(unsafe.Pointer(listp)) = uintptr(0) 64232 return 0 64233 } 64234 64235 // ************************************************ 64236 // 64237 // Free memory obtained by substring_list_get * 64238 // 64239 64240 // 64241 // Argument: the result of a previous pcre2_substring_list_get() 64242 // Returns: nothing 64243 64244 func Xpcre2_substring_list_free_8(tls *libc.TLS, list uintptr) { /* pcre2_substring.c:445:1: */ 64245 if list != uintptr(0) { 64246 var memctl uintptr = list - uintptr(uint64(unsafe.Sizeof(Tpcre2_memctl{}))) 64247 (*struct { 64248 f func(*libc.TLS, uintptr, uintptr) 64249 })(unsafe.Pointer(&struct{ uintptr }{(*Tpcre2_memctl)(unsafe.Pointer(memctl)).Ffree})).f(tls, memctl, (*Tpcre2_memctl)(unsafe.Pointer(memctl)).Fmemory_data) 64250 } 64251 } 64252 64253 // ************************************************ 64254 // 64255 // Find (multiple) entries for named string * 64256 // 64257 64258 // This function scans the nametable for a given name, using binary chop. It 64259 // returns either two pointers to the entries in the table, or, if no pointers are 64260 // given, the number of a unique group with the given name. If duplicate names are 64261 // permitted, and the name is not unique, an error is generated. 64262 // 64263 // Arguments: 64264 // code the compiled regex 64265 // stringname the name whose entries required 64266 // firstptr where to put the pointer to the first entry 64267 // lastptr where to put the pointer to the last entry 64268 // 64269 // Returns: PCRE2_ERROR_NOSUBSTRING if the name is not found 64270 // otherwise, if firstptr and lastptr are NULL: 64271 // a group number for a unique substring 64272 // else PCRE2_ERROR_NOUNIQUESUBSTRING 64273 // otherwise: 64274 // the length of each entry, having set firstptr and lastptr 64275 64276 func Xpcre2_substring_nametable_scan_8(tls *libc.TLS, code uintptr, stringname TPCRE2_SPTR8, firstptr uintptr, lastptr uintptr) int32 { /* pcre2_substring.c:480:1: */ 64277 var bot Tuint16_t = Tuint16_t(0) 64278 var top Tuint16_t = (*Tpcre2_code_8)(unsafe.Pointer(code)).Fname_count 64279 var entrysize Tuint16_t = (*Tpcre2_code_8)(unsafe.Pointer(code)).Fname_entry_size 64280 var nametable TPCRE2_SPTR8 = code + uintptr(uint64(unsafe.Sizeof(Tpcre2_real_code_8{}))) 64281 64282 for int32(top) > int32(bot) { 64283 var mid Tuint16_t = Tuint16_t((int32(top) + int32(bot)) / 2) 64284 var entry TPCRE2_SPTR8 = nametable + uintptr(int32(entrysize)*int32(mid)) 64285 var c int32 = X_pcre2_strcmp_8(tls, stringname, entry+uintptr(DIMM2_SIZE)) 64286 if c == 0 { 64287 var first TPCRE2_SPTR8 64288 var last TPCRE2_SPTR8 64289 var lastentry TPCRE2_SPTR8 64290 lastentry = nametable + uintptr(int32(entrysize)*(int32((*Tpcre2_code_8)(unsafe.Pointer(code)).Fname_count)-1)) 64291 first = libc.AssignUintptr(&last, entry) 64292 for first > nametable { 64293 if X_pcre2_strcmp_8(tls, stringname, first-uintptr(entrysize)+uintptr(DIMM2_SIZE)) != 0 { 64294 break 64295 } 64296 first -= TPCRE2_SPTR8(entrysize) 64297 } 64298 for last < lastentry { 64299 if X_pcre2_strcmp_8(tls, stringname, last+uintptr(entrysize)+uintptr(DIMM2_SIZE)) != 0 { 64300 break 64301 } 64302 last += TPCRE2_SPTR8(entrysize) 64303 } 64304 if firstptr == uintptr(0) { 64305 if first == last { 64306 return int32(uint32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(entry)))<<8 | int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(entry + 1))))) 64307 } 64308 return -50 64309 } 64310 *(*TPCRE2_SPTR8)(unsafe.Pointer(firstptr)) = first 64311 *(*TPCRE2_SPTR8)(unsafe.Pointer(lastptr)) = last 64312 return int32(entrysize) 64313 } 64314 if c > 0 { 64315 bot = Tuint16_t(int32(mid) + 1) 64316 } else { 64317 top = mid 64318 } 64319 } 64320 64321 return -49 64322 } 64323 64324 // ************************************************ 64325 // 64326 // Find number for named string * 64327 // 64328 64329 // This function is a convenience wrapper for pcre2_substring_nametable_scan() 64330 // when it is known that names are unique. If there are duplicate names, it is not 64331 // defined which number is returned. 64332 // 64333 // Arguments: 64334 // code the compiled regex 64335 // stringname the name whose number is required 64336 // 64337 // Returns: the number of the named parenthesis, or a negative number 64338 // PCRE2_ERROR_NOSUBSTRING if not found 64339 // PCRE2_ERROR_NOUNIQUESUBSTRING if not unique 64340 64341 func Xpcre2_substring_number_from_name_8(tls *libc.TLS, code uintptr, stringname TPCRE2_SPTR8) int32 { /* pcre2_substring.c:541:1: */ 64342 return Xpcre2_substring_nametable_scan_8(tls, code, stringname, uintptr(0), uintptr(0)) 64343 } 64344 64345 // End of pcre2_substring.c 64346 64347 // This function is needed only when memmove() is not available. 64348 64349 // End of pcre2_internal.h 64350 64351 // Table of sizes for the fixed-length opcodes. It's defined in a macro so that 64352 // the definition is next to the definition of the opcodes in pcre2_internal.h. 64353 // This is mode-dependent, so it is skipped when this file is included by 64354 // pcre2test. 64355 64356 var X_pcre2_OP_lengths_8 = [168]Tuint8_t{Tuint8_t(1) /* End */, Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1) /* \A, \G, \K, \B, \b */, Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1) /* \D, \d, \S, \s, \W, \w */, Tuint8_t(1), Tuint8_t(1), Tuint8_t(1) /* Any, AllAny, Anybyte */, Tuint8_t(3), Tuint8_t(3) /* \P, \p */, Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1) /* \R, \H, \h, \V, \v */, Tuint8_t(1) /* \X */, Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1) /* \Z, \z, $, $M ^, ^M */, Tuint8_t(2) /* Char - the minimum length */, Tuint8_t(2) /* Chari - the minimum length */, Tuint8_t(2) /* not */, Tuint8_t(2) /* noti */ /* Positive single-char repeats ** These are */, Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2) /* *, *?, +, +?, ?, ?? ** minima in */, Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2) /* *I, *?I, +I, +?I, ?I, ??I ** UTF-8 */, Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2) /* NOT *, *?, +, +?, ?, ?? */, Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2) /* NOT *I, *?I, +I, +?I, ?I, ??I */, Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2) /* Type *, *?, +, +?, ?, ?? */, Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2 + DIMM2_SIZE), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1) /* *, *?, +, +?, ?, ?? */, Tuint8_t(1 + 2*DIMM2_SIZE), Tuint8_t(1 + 2*DIMM2_SIZE), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1 + 2*DIMM2_SIZE), uint8(uint64(1) + uint64(32)/uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0)))), uint8(uint64(1) + uint64(32)/uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0)))), Tuint8_t(0) /* XCLASS - variable length */, Tuint8_t(1 + DIMM2_SIZE), Tuint8_t(1 + DIMM2_SIZE), Tuint8_t(1 + 2*DIMM2_SIZE), Tuint8_t(1 + 2*DIMM2_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + 2*DLINK_SIZE + 1), Tuint8_t(0) /* CALLOUT_STR - variable length */, Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE + DIMM2_SIZE), Tuint8_t(1 + DLINK_SIZE + DIMM2_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DLINK_SIZE + DIMM2_SIZE), Tuint8_t(1 + DLINK_SIZE + DIMM2_SIZE), Tuint8_t(1 + DLINK_SIZE), Tuint8_t(1 + DIMM2_SIZE), Tuint8_t(1 + 2*DIMM2_SIZE), Tuint8_t(1 + DIMM2_SIZE), Tuint8_t(1 + 2*DIMM2_SIZE), Tuint8_t(1), Tuint8_t(1) /* FALSE, TRUE */, Tuint8_t(1), Tuint8_t(1), Tuint8_t(1) /* BRAZERO, BRAMINZERO, BRAPOSZERO */, Tuint8_t(3), Tuint8_t(1), Tuint8_t(3) /* MARK, PRUNE, PRUNE_ARG */, Tuint8_t(1), Tuint8_t(3) /* SKIP, SKIP_ARG */, Tuint8_t(1), Tuint8_t(3) /* THEN, THEN_ARG */, Tuint8_t(1), Tuint8_t(3) /* COMMIT, COMMIT_ARG */, Tuint8_t(1), Tuint8_t(1), Tuint8_t(1) /* FAIL, ACCEPT, ASSERT_ACCEPT */, Tuint8_t(1 + DIMM2_SIZE), Tuint8_t(1) /* CLOSE, SKIPZERO */, Tuint8_t(1)} /* pcre2_tables.c:60:15 */ 64357 64358 // Tables of horizontal and vertical whitespace characters, suitable for 64359 // adding to classes. 64360 64361 var X_pcre2_hspace_list_8 = [20]Tuint32_t{Tuint32_t('\011'), Tuint32_t('\040'), libc.Uint32FromUint8(libc.Uint8FromInt32(160)), Tuint32_t(0x1680), Tuint32_t(0x180e), Tuint32_t(0x2000), Tuint32_t(0x2001), Tuint32_t(0x2002), Tuint32_t(0x2003), Tuint32_t(0x2004), Tuint32_t(0x2005), Tuint32_t(0x2006), Tuint32_t(0x2007), Tuint32_t(0x2008), Tuint32_t(0x2009), Tuint32_t(0x200A), Tuint32_t(0x202f), Tuint32_t(0x205f), Tuint32_t(0x3000), DNOTACHAR} /* pcre2_tables.c:66:16 */ 64362 var X_pcre2_vspace_list_8 = [8]Tuint32_t{Tuint32_t('\012'), Tuint32_t('\013'), Tuint32_t('\014'), Tuint32_t('\015'), libc.Uint32FromUint8(libc.Uint8FromInt32(133)), Tuint32_t(0x2028), Tuint32_t(0x2029), DNOTACHAR} /* pcre2_tables.c:67:16 */ 64363 64364 // These tables are the pairs of delimiters that are valid for callout string 64365 // arguments. For each starting delimiter there must be a matching ending 64366 // delimiter, which in fact is different only for bracket-like delimiters. 64367 64368 var X_pcre2_callout_start_delims_8 = [9]Tuint32_t{ 64369 Tuint32_t('\140'), Tuint32_t('\047'), Tuint32_t('\042'), 64370 Tuint32_t('\136'), Tuint32_t('\045'), Tuint32_t('\043'), 64371 Tuint32_t('\044'), Tuint32_t('\173'), Tuint32_t(0)} /* pcre2_tables.c:73:16 */ 64372 64373 var X_pcre2_callout_end_delims_8 = [9]Tuint32_t{ 64374 Tuint32_t('\140'), Tuint32_t('\047'), Tuint32_t('\042'), 64375 Tuint32_t('\136'), Tuint32_t('\045'), Tuint32_t('\043'), 64376 Tuint32_t('\044'), Tuint32_t('\175'), Tuint32_t(0)} /* pcre2_tables.c:78:16 */ 64377 64378 // ************************************************ 64379 // 64380 // Tables for UTF-8 support * 64381 // 64382 64383 // These tables are required by pcre2test in 16- or 32-bit mode, as well 64384 // as for the library in 8-bit mode, because pcre2test uses UTF-8 internally for 64385 // handling wide characters. 64386 64387 // These are the breakpoints for different numbers of bytes in a UTF-8 64388 // character. 64389 64390 var X_pcre2_utf8_table1 = [6]int32{0x7f, 0x7ff, 0xffff, 0x1fffff, 0x3ffffff, 0x7fffffff} /* pcre2_tables.c:100:11 */ 64391 64392 var X_pcre2_utf8_table1_size int32 = int32(uint64(unsafe.Sizeof(X_pcre2_utf8_table1)) / uint64(unsafe.Sizeof(int32(0)))) /* pcre2_tables.c:103:11 */ 64393 64394 // These are the indicator bits and the mask for the data bits to set in the 64395 // first byte of a character, indexed by the number of additional bytes. 64396 64397 var X_pcre2_utf8_table2 = [6]int32{0, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc} /* pcre2_tables.c:108:11 */ 64398 var X_pcre2_utf8_table3 = [6]int32{0xff, 0x1f, 0x0f, 0x07, 0x03, 0x01} /* pcre2_tables.c:109:11 */ 64399 64400 // Table of the number of extra bytes, indexed by the first byte masked with 64401 // 0x3f. The highest number for a valid UTF-8 first byte is in fact 0x3d. 64402 64403 var X_pcre2_utf8_table4 = [64]Tuint8_t{ 64404 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), 64405 Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), Tuint8_t(1), 64406 Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), Tuint8_t(2), 64407 Tuint8_t(3), Tuint8_t(3), Tuint8_t(3), Tuint8_t(3), Tuint8_t(3), Tuint8_t(3), Tuint8_t(3), Tuint8_t(3), Tuint8_t(4), Tuint8_t(4), Tuint8_t(4), Tuint8_t(4), Tuint8_t(5), Tuint8_t(5), Tuint8_t(5), Tuint8_t(5)} /* pcre2_tables.c:114:15 */ 64408 64409 // Tables concerned with Unicode properties are relevant only when Unicode 64410 // support is enabled. See also the pcre2_ucptables.c file, which is generated by 64411 // a Python script from Unicode data files. 64412 64413 // Table to translate from particular type value to the general value. 64414 64415 var X_pcre2_ucp_gentype_8 = [30]Tuint32_t{ 64416 ucp_C, ucp_C, ucp_C, ucp_C, ucp_C, // Cc, Cf, Cn, Co, Cs 64417 ucp_L, ucp_L, ucp_L, ucp_L, ucp_L, // Ll, Lu, Lm, Lo, Lt 64418 ucp_M, ucp_M, ucp_M, // Mc, Me, Mn 64419 ucp_N, ucp_N, ucp_N, // Nd, Nl, No 64420 ucp_P, ucp_P, ucp_P, ucp_P, ucp_P, // Pc, Pd, Pe, Pf, Pi 64421 ucp_P, ucp_P, // Ps, Po 64422 ucp_S, ucp_S, ucp_S, ucp_S, // Sc, Sk, Sm, So 64423 ucp_Z, ucp_Z, ucp_Z, // Zl, Zp, Zs 64424 } /* pcre2_tables.c:130:16 */ 64425 64426 // This table encodes the rules for finding the end of an extended grapheme 64427 // cluster. Every code point has a grapheme break property which is one of the 64428 // ucp_gbXX values defined in pcre2_ucp.h. These changed between Unicode versions 64429 // 10 and 11. The 2-dimensional table is indexed by the properties of two adjacent 64430 // code points. The left property selects a word from the table, and the right 64431 // property selects a bit from that word like this: 64432 // 64433 // PRIV(ucp_gbtable)[left-property] & (1u << right-property) 64434 // 64435 // The value is non-zero if a grapheme break is NOT permitted between the relevant 64436 // two code points. The breaking rules are as follows: 64437 // 64438 // 1. Break at the start and end of text (pretty obviously). 64439 // 64440 // 2. Do not break between a CR and LF; otherwise, break before and after 64441 // controls. 64442 // 64443 // 3. Do not break Hangul syllable sequences, the rules for which are: 64444 // 64445 // L may be followed by L, V, LV or LVT 64446 // LV or V may be followed by V or T 64447 // LVT or T may be followed by T 64448 // 64449 // 4. Do not break before extending characters or zero-width-joiner (ZWJ). 64450 // 64451 // The following rules are only for extended grapheme clusters (but that's what we 64452 // are implementing). 64453 // 64454 // 5. Do not break before SpacingMarks. 64455 // 64456 // 6. Do not break after Prepend characters. 64457 // 64458 // 7. Do not break within emoji modifier sequences or emoji zwj sequences. That 64459 // is, do not break between characters with the Extended_Pictographic property. 64460 // Extend and ZWJ characters are allowed between the characters; this cannot be 64461 // represented in this table, the code has to deal with it. 64462 // 64463 // 8. Do not break within emoji flag sequences. That is, do not break between 64464 // regional indicator (RI) symbols if there are an odd number of RI characters 64465 // before the break point. This table encodes "join RI characters"; the code 64466 // has to deal with checking for previous adjoining RIs. 64467 // 64468 // 9. Otherwise, break everywhere. 64469 64470 var X_pcre2_ucp_gbtable_8 = [15]Tuint32_t{ 64471 uint32(1) << ucp_gbLF, 64472 Tuint32_t(0), // 1 LF 64473 Tuint32_t(0), // 2 Control 64474 Tuint32_t(int32(1)<<ucp_gbExtend | int32(1)<<ucp_gbSpacingMark | int32(1)<<ucp_gbZWJ), 64475 uint32(int32(1)<<ucp_gbExtend|int32(1)<<ucp_gbSpacingMark|int32(1)<<ucp_gbZWJ) | uint32(1)<<ucp_gbPrepend | uint32(1)<<ucp_gbL | uint32(1)<<ucp_gbV | uint32(1)<<ucp_gbT | uint32(1)<<ucp_gbLV | uint32(1)<<ucp_gbLVT | uint32(1)<<ucp_gbOther | uint32(1)<<ucp_gbRegional_Indicator, 64476 Tuint32_t(int32(1)<<ucp_gbExtend | int32(1)<<ucp_gbSpacingMark | int32(1)<<ucp_gbZWJ), 64477 uint32(int32(1)<<ucp_gbExtend|int32(1)<<ucp_gbSpacingMark|int32(1)<<ucp_gbZWJ) | uint32(1)<<ucp_gbL | uint32(1)<<ucp_gbV | uint32(1)<<ucp_gbLV | uint32(1)<<ucp_gbLVT, 64478 uint32(int32(1)<<ucp_gbExtend|int32(1)<<ucp_gbSpacingMark|int32(1)<<ucp_gbZWJ) | uint32(1)<<ucp_gbV | uint32(1)<<ucp_gbT, 64479 uint32(int32(1)<<ucp_gbExtend|int32(1)<<ucp_gbSpacingMark|int32(1)<<ucp_gbZWJ) | uint32(1)<<ucp_gbT, 64480 uint32(int32(1)<<ucp_gbExtend|int32(1)<<ucp_gbSpacingMark|int32(1)<<ucp_gbZWJ) | uint32(1)<<ucp_gbV | uint32(1)<<ucp_gbT, 64481 uint32(int32(1)<<ucp_gbExtend|int32(1)<<ucp_gbSpacingMark|int32(1)<<ucp_gbZWJ) | uint32(1)<<ucp_gbT, 64482 uint32(1) << ucp_gbRegional_Indicator, 64483 Tuint32_t(int32(1)<<ucp_gbExtend | int32(1)<<ucp_gbSpacingMark | int32(1)<<ucp_gbZWJ), 64484 Tuint32_t(int32(1)<<ucp_gbExtend | int32(1)<<ucp_gbSpacingMark | int32(1)<<ucp_gbZWJ), 64485 uint32(int32(1)<<ucp_gbExtend|int32(1)<<ucp_gbSpacingMark|int32(1)<<ucp_gbZWJ) | uint32(1)<<ucp_gbExtended_Pictographic, 64486 } /* pcre2_tables.c:188:16 */ 64487 64488 // Finally, include the tables that are auto-generated from the Unicode data 64489 // files. 64490 64491 // ************************************************ 64492 // 64493 // Perl-Compatible Regular Expressions * 64494 // 64495 64496 // PCRE is a library of functions to support regular expressions whose syntax 64497 // and semantics are as close as possible to those of the Perl 5 language. 64498 // 64499 // Written by Philip Hazel 64500 // Original API code Copyright (c) 1997-2012 University of Cambridge 64501 // New API code Copyright (c) 2016-2022 University of Cambridge 64502 // 64503 // This module is auto-generated from Unicode data files. DO NOT EDIT MANUALLY! 64504 // Instead, modify the maint/GenerateUcpTables.py script and run it to generate 64505 // a new version of this code. 64506 // 64507 // ----------------------------------------------------------------------------- 64508 // Redistribution and use in source and binary forms, with or without 64509 // modification, are permitted provided that the following conditions are met: 64510 // 64511 // * Redistributions of source code must retain the above copyright notice, 64512 // this list of conditions and the following disclaimer. 64513 // 64514 // * Redistributions in binary form must reproduce the above copyright 64515 // notice, this list of conditions and the following disclaimer in the 64516 // documentation and/or other materials provided with the distribution. 64517 // 64518 // * Neither the name of the University of Cambridge nor the names of its 64519 // contributors may be used to endorse or promote products derived from 64520 // this software without specific prior written permission. 64521 // 64522 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 64523 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 64524 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 64525 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 64526 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 64527 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 64528 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 64529 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 64530 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 64531 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 64532 // POSSIBILITY OF SUCH DAMAGE. 64533 // ----------------------------------------------------------------------------- 64534 64535 // The PRIV(utt)[] table below translates Unicode property names into type and 64536 // code values. It is searched by binary chop, so must be in collating sequence of 64537 // name. Originally, the table contained pointers to the name strings in the first 64538 // field of each entry. However, that leads to a large number of relocations when 64539 // a shared library is dynamically loaded. A significant reduction is made by 64540 // putting all the names into a single, large string and using offsets instead. 64541 // All letters are lower cased, and underscores are removed, in accordance with 64542 // the "loose matching" rules that Unicode advises and Perl uses. 64543 64544 var X_pcre2_utt_names_8 = *(*[3569]int8)(unsafe.Pointer(ts + 7683)) /* pcre2_ucptables.c:543:12 */ 64545 64546 var X_pcre2_utt_8 = [486]Tucp_type_table{ 64547 {Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Adlam}, 64548 {Fname_offset: Tuint16_t(6), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Adlam}, 64549 {Fname_offset: Tuint16_t(11), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Caucasian_Albanian}, 64550 {Fname_offset: Tuint16_t(16), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_ASCII_Hex_Digit}, 64551 {Fname_offset: Tuint16_t(21), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Ahom}, 64552 {Fname_offset: Tuint16_t(26), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Alphabetic}, 64553 {Fname_offset: Tuint16_t(32), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Alphabetic}, 64554 {Fname_offset: Tuint16_t(43), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Anatolian_Hieroglyphs}, 64555 {Fname_offset: Tuint16_t(64)}, 64556 {Fname_offset: Tuint16_t(68), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Arabic}, 64557 {Fname_offset: Tuint16_t(73), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Arabic}, 64558 {Fname_offset: Tuint16_t(80), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Armenian}, 64559 {Fname_offset: Tuint16_t(89), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Imperial_Aramaic}, 64560 {Fname_offset: Tuint16_t(94), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Armenian}, 64561 {Fname_offset: Tuint16_t(99), Ftype: Tuint16_t(DPT_BOOL)}, 64562 {Fname_offset: Tuint16_t(105), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_ASCII_Hex_Digit}, 64563 {Fname_offset: Tuint16_t(119), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Avestan}, 64564 {Fname_offset: Tuint16_t(127), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Avestan}, 64565 {Fname_offset: Tuint16_t(132), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Balinese}, 64566 {Fname_offset: Tuint16_t(137), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Balinese}, 64567 {Fname_offset: Tuint16_t(146), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Bamum}, 64568 {Fname_offset: Tuint16_t(151), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Bamum}, 64569 {Fname_offset: Tuint16_t(157), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Bassa_Vah}, 64570 {Fname_offset: Tuint16_t(162), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Bassa_Vah}, 64571 {Fname_offset: Tuint16_t(171), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Batak}, 64572 {Fname_offset: Tuint16_t(177), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Batak}, 64573 {Fname_offset: Tuint16_t(182), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Bengali}, 64574 {Fname_offset: Tuint16_t(187), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Bengali}, 64575 {Fname_offset: Tuint16_t(195), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Bhaiksuki}, 64576 {Fname_offset: Tuint16_t(205), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Bhaiksuki}, 64577 {Fname_offset: Tuint16_t(210), Ftype: Tuint16_t(DPT_BIDICL)}, 64578 {Fname_offset: Tuint16_t(217), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiAN}, 64579 {Fname_offset: Tuint16_t(224), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiB}, 64580 {Fname_offset: Tuint16_t(230), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiBN}, 64581 {Fname_offset: Tuint16_t(237), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Bidi_Control}, 64582 {Fname_offset: Tuint16_t(243), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Bidi_Control}, 64583 {Fname_offset: Tuint16_t(255), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiCS}, 64584 {Fname_offset: Tuint16_t(262), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiEN}, 64585 {Fname_offset: Tuint16_t(269), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiES}, 64586 {Fname_offset: Tuint16_t(276), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiET}, 64587 {Fname_offset: Tuint16_t(283), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiFSI}, 64588 {Fname_offset: Tuint16_t(291), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiL}, 64589 {Fname_offset: Tuint16_t(297), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiLRE}, 64590 {Fname_offset: Tuint16_t(305), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiLRI}, 64591 {Fname_offset: Tuint16_t(313), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiLRO}, 64592 {Fname_offset: Tuint16_t(321), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Bidi_Mirrored}, 64593 {Fname_offset: Tuint16_t(327), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Bidi_Mirrored}, 64594 {Fname_offset: Tuint16_t(340), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiNSM}, 64595 {Fname_offset: Tuint16_t(348), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiON}, 64596 {Fname_offset: Tuint16_t(355), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiPDF}, 64597 {Fname_offset: Tuint16_t(363), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiPDI}, 64598 {Fname_offset: Tuint16_t(371), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiR}, 64599 {Fname_offset: Tuint16_t(377), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiRLE}, 64600 {Fname_offset: Tuint16_t(385), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiRLI}, 64601 {Fname_offset: Tuint16_t(393), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiRLO}, 64602 {Fname_offset: Tuint16_t(401), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiS}, 64603 {Fname_offset: Tuint16_t(407), Ftype: Tuint16_t(DPT_BIDICL), Fvalue: ucp_bidiWS}, 64604 {Fname_offset: Tuint16_t(414), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Bopomofo}, 64605 {Fname_offset: Tuint16_t(419), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Bopomofo}, 64606 {Fname_offset: Tuint16_t(428), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Brahmi}, 64607 {Fname_offset: Tuint16_t(433), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Brahmi}, 64608 {Fname_offset: Tuint16_t(440), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Braille}, 64609 {Fname_offset: Tuint16_t(445), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Braille}, 64610 {Fname_offset: Tuint16_t(453), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Buginese}, 64611 {Fname_offset: Tuint16_t(458), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Buginese}, 64612 {Fname_offset: Tuint16_t(467), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Buhid}, 64613 {Fname_offset: Tuint16_t(472), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Buhid}, 64614 {Fname_offset: Tuint16_t(478), Ftype: Tuint16_t(DPT_GC)}, 64615 {Fname_offset: Tuint16_t(480), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Chakma}, 64616 {Fname_offset: Tuint16_t(485), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Canadian_Aboriginal}, 64617 {Fname_offset: Tuint16_t(504), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Canadian_Aboriginal}, 64618 {Fname_offset: Tuint16_t(509), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Carian}, 64619 {Fname_offset: Tuint16_t(514), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Carian}, 64620 {Fname_offset: Tuint16_t(521), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Cased}, 64621 {Fname_offset: Tuint16_t(527), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Case_Ignorable}, 64622 {Fname_offset: Tuint16_t(541), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Caucasian_Albanian}, 64623 {Fname_offset: Tuint16_t(559), Ftype: Tuint16_t(DPT_PC)}, 64624 {Fname_offset: Tuint16_t(562), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Cf}, 64625 {Fname_offset: Tuint16_t(565), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Chakma}, 64626 {Fname_offset: Tuint16_t(572), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Cham}, 64627 {Fname_offset: Tuint16_t(577), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Changes_When_Casefolded}, 64628 {Fname_offset: Tuint16_t(599), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Changes_When_Casemapped}, 64629 {Fname_offset: Tuint16_t(621), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Changes_When_Lowercased}, 64630 {Fname_offset: Tuint16_t(643), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Changes_When_Titlecased}, 64631 {Fname_offset: Tuint16_t(665), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Changes_When_Uppercased}, 64632 {Fname_offset: Tuint16_t(687), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Cherokee}, 64633 {Fname_offset: Tuint16_t(692), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Cherokee}, 64634 {Fname_offset: Tuint16_t(701), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Chorasmian}, 64635 {Fname_offset: Tuint16_t(712), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Chorasmian}, 64636 {Fname_offset: Tuint16_t(717), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Case_Ignorable}, 64637 {Fname_offset: Tuint16_t(720), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Cn}, 64638 {Fname_offset: Tuint16_t(723), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Co}, 64639 {Fname_offset: Tuint16_t(726), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Common}, 64640 {Fname_offset: Tuint16_t(733), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Coptic}, 64641 {Fname_offset: Tuint16_t(738), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Coptic}, 64642 {Fname_offset: Tuint16_t(745), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Cypro_Minoan}, 64643 {Fname_offset: Tuint16_t(750), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Cypriot}, 64644 {Fname_offset: Tuint16_t(755), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Cs}, 64645 {Fname_offset: Tuint16_t(758), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Cuneiform}, 64646 {Fname_offset: Tuint16_t(768), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Changes_When_Casefolded}, 64647 {Fname_offset: Tuint16_t(773), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Changes_When_Casemapped}, 64648 {Fname_offset: Tuint16_t(778), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Changes_When_Lowercased}, 64649 {Fname_offset: Tuint16_t(782), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Changes_When_Titlecased}, 64650 {Fname_offset: Tuint16_t(786), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Changes_When_Uppercased}, 64651 {Fname_offset: Tuint16_t(790), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Cypriot}, 64652 {Fname_offset: Tuint16_t(798), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Cypro_Minoan}, 64653 {Fname_offset: Tuint16_t(810), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Cyrillic}, 64654 {Fname_offset: Tuint16_t(819), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Cyrillic}, 64655 {Fname_offset: Tuint16_t(824), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Dash}, 64656 {Fname_offset: Tuint16_t(829), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Default_Ignorable_Code_Point}, 64657 {Fname_offset: Tuint16_t(855), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Deprecated}, 64658 {Fname_offset: Tuint16_t(859), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Deprecated}, 64659 {Fname_offset: Tuint16_t(870), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Deseret}, 64660 {Fname_offset: Tuint16_t(878), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Devanagari}, 64661 {Fname_offset: Tuint16_t(883), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Devanagari}, 64662 {Fname_offset: Tuint16_t(894), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Default_Ignorable_Code_Point}, 64663 {Fname_offset: Tuint16_t(897), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Diacritic}, 64664 {Fname_offset: Tuint16_t(901), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Diacritic}, 64665 {Fname_offset: Tuint16_t(911), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Dives_Akuru}, 64666 {Fname_offset: Tuint16_t(916), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Dives_Akuru}, 64667 {Fname_offset: Tuint16_t(927), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Dogra}, 64668 {Fname_offset: Tuint16_t(932), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Dogra}, 64669 {Fname_offset: Tuint16_t(938), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Deseret}, 64670 {Fname_offset: Tuint16_t(943), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Duployan}, 64671 {Fname_offset: Tuint16_t(948), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Duployan}, 64672 {Fname_offset: Tuint16_t(957), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Emoji_Modifier_Base}, 64673 {Fname_offset: Tuint16_t(963), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Emoji_Component}, 64674 {Fname_offset: Tuint16_t(969), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Egyptian_Hieroglyphs}, 64675 {Fname_offset: Tuint16_t(974), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Egyptian_Hieroglyphs}, 64676 {Fname_offset: Tuint16_t(994), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Elbasan}, 64677 {Fname_offset: Tuint16_t(999), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Elbasan}, 64678 {Fname_offset: Tuint16_t(1007), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Elymaic}, 64679 {Fname_offset: Tuint16_t(1012), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Elymaic}, 64680 {Fname_offset: Tuint16_t(1020), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Emoji_Modifier}, 64681 {Fname_offset: Tuint16_t(1025), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Emoji}, 64682 {Fname_offset: Tuint16_t(1031), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Emoji_Component}, 64683 {Fname_offset: Tuint16_t(1046), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Emoji_Modifier}, 64684 {Fname_offset: Tuint16_t(1060), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Emoji_Modifier_Base}, 64685 {Fname_offset: Tuint16_t(1078), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Emoji_Presentation}, 64686 {Fname_offset: Tuint16_t(1096), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Emoji_Presentation}, 64687 {Fname_offset: Tuint16_t(1102), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Ethiopic}, 64688 {Fname_offset: Tuint16_t(1107), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Ethiopic}, 64689 {Fname_offset: Tuint16_t(1116), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Extender}, 64690 {Fname_offset: Tuint16_t(1120), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Extended_Pictographic}, 64691 {Fname_offset: Tuint16_t(1141), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Extender}, 64692 {Fname_offset: Tuint16_t(1150), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Extended_Pictographic}, 64693 {Fname_offset: Tuint16_t(1158), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Georgian}, 64694 {Fname_offset: Tuint16_t(1163), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Georgian}, 64695 {Fname_offset: Tuint16_t(1172), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Glagolitic}, 64696 {Fname_offset: Tuint16_t(1177), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Glagolitic}, 64697 {Fname_offset: Tuint16_t(1188), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Gunjala_Gondi}, 64698 {Fname_offset: Tuint16_t(1193), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Masaram_Gondi}, 64699 {Fname_offset: Tuint16_t(1198), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Gothic}, 64700 {Fname_offset: Tuint16_t(1203), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Gothic}, 64701 {Fname_offset: Tuint16_t(1210), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Grantha}, 64702 {Fname_offset: Tuint16_t(1215), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Grantha}, 64703 {Fname_offset: Tuint16_t(1223), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Grapheme_Base}, 64704 {Fname_offset: Tuint16_t(1236), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Grapheme_Extend}, 64705 {Fname_offset: Tuint16_t(1251), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Grapheme_Link}, 64706 {Fname_offset: Tuint16_t(1264), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Grapheme_Base}, 64707 {Fname_offset: Tuint16_t(1271), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Greek}, 64708 {Fname_offset: Tuint16_t(1277), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Greek}, 64709 {Fname_offset: Tuint16_t(1282), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Grapheme_Extend}, 64710 {Fname_offset: Tuint16_t(1288), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Grapheme_Link}, 64711 {Fname_offset: Tuint16_t(1295), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Gujarati}, 64712 {Fname_offset: Tuint16_t(1304), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Gujarati}, 64713 {Fname_offset: Tuint16_t(1309), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Gunjala_Gondi}, 64714 {Fname_offset: Tuint16_t(1322), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Gurmukhi}, 64715 {Fname_offset: Tuint16_t(1331), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Gurmukhi}, 64716 {Fname_offset: Tuint16_t(1336), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Han}, 64717 {Fname_offset: Tuint16_t(1340), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Hangul}, 64718 {Fname_offset: Tuint16_t(1345), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Hangul}, 64719 {Fname_offset: Tuint16_t(1352), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Han}, 64720 {Fname_offset: Tuint16_t(1357), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Hanifi_Rohingya}, 64721 {Fname_offset: Tuint16_t(1372), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Hanunoo}, 64722 {Fname_offset: Tuint16_t(1377), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Hanunoo}, 64723 {Fname_offset: Tuint16_t(1385), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Hatran}, 64724 {Fname_offset: Tuint16_t(1390), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Hatran}, 64725 {Fname_offset: Tuint16_t(1397), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Hebrew}, 64726 {Fname_offset: Tuint16_t(1402), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Hebrew}, 64727 {Fname_offset: Tuint16_t(1409), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Hex_Digit}, 64728 {Fname_offset: Tuint16_t(1413), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Hex_Digit}, 64729 {Fname_offset: Tuint16_t(1422), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Hiragana}, 64730 {Fname_offset: Tuint16_t(1427), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Hiragana}, 64731 {Fname_offset: Tuint16_t(1436), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Anatolian_Hieroglyphs}, 64732 {Fname_offset: Tuint16_t(1441), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Pahawh_Hmong}, 64733 {Fname_offset: Tuint16_t(1446), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Nyiakeng_Puachue_Hmong}, 64734 {Fname_offset: Tuint16_t(1451), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_Hungarian}, 64735 {Fname_offset: Tuint16_t(1456), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_ID_Continue}, 64736 {Fname_offset: Tuint16_t(1460), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_ID_Continue}, 64737 {Fname_offset: Tuint16_t(1471), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Ideographic}, 64738 {Fname_offset: Tuint16_t(1476), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Ideographic}, 64739 {Fname_offset: Tuint16_t(1488), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_ID_Start}, 64740 {Fname_offset: Tuint16_t(1492), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_IDS_Binary_Operator}, 64741 {Fname_offset: Tuint16_t(1497), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_IDS_Binary_Operator}, 64742 {Fname_offset: Tuint16_t(1515), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_IDS_Trinary_Operator}, 64743 {Fname_offset: Tuint16_t(1520), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_ID_Start}, 64744 {Fname_offset: Tuint16_t(1528), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_IDS_Trinary_Operator}, 64745 {Fname_offset: Tuint16_t(1547), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Imperial_Aramaic}, 64746 {Fname_offset: Tuint16_t(1563), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Inherited}, 64747 {Fname_offset: Tuint16_t(1573), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Inscriptional_Pahlavi}, 64748 {Fname_offset: Tuint16_t(1594), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Inscriptional_Parthian}, 64749 {Fname_offset: Tuint16_t(1616), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_Italic}, 64750 {Fname_offset: Tuint16_t(1621), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Javanese}, 64751 {Fname_offset: Tuint16_t(1626), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Javanese}, 64752 {Fname_offset: Tuint16_t(1635), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Join_Control}, 64753 {Fname_offset: Tuint16_t(1641), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Join_Control}, 64754 {Fname_offset: Tuint16_t(1653), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Kaithi}, 64755 {Fname_offset: Tuint16_t(1660), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Kayah_Li}, 64756 {Fname_offset: Tuint16_t(1665), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Katakana}, 64757 {Fname_offset: Tuint16_t(1670), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Kannada}, 64758 {Fname_offset: Tuint16_t(1678), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Katakana}, 64759 {Fname_offset: Tuint16_t(1687), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Kayah_Li}, 64760 {Fname_offset: Tuint16_t(1695), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Kharoshthi}, 64761 {Fname_offset: Tuint16_t(1700), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Kharoshthi}, 64762 {Fname_offset: Tuint16_t(1711), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Khitan_Small_Script}, 64763 {Fname_offset: Tuint16_t(1729), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Khmer}, 64764 {Fname_offset: Tuint16_t(1735), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Khmer}, 64765 {Fname_offset: Tuint16_t(1740), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Khojki}, 64766 {Fname_offset: Tuint16_t(1745), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Khojki}, 64767 {Fname_offset: Tuint16_t(1752), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Khudawadi}, 64768 {Fname_offset: Tuint16_t(1762), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Khitan_Small_Script}, 64769 {Fname_offset: Tuint16_t(1767), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Kannada}, 64770 {Fname_offset: Tuint16_t(1772), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Kaithi}, 64771 {Fname_offset: Tuint16_t(1777), Ftype: Tuint16_t(DPT_GC), Fvalue: ucp_L}, 64772 {Fname_offset: Tuint16_t(1779), Ftype: Tuint16_t(DPT_LAMP)}, 64773 {Fname_offset: Tuint16_t(1782), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tai_Tham}, 64774 {Fname_offset: Tuint16_t(1787), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Lao}, 64775 {Fname_offset: Tuint16_t(1791), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Lao}, 64776 {Fname_offset: Tuint16_t(1796), Ftype: Tuint16_t(DPT_SCX)}, 64777 {Fname_offset: Tuint16_t(1802), Ftype: Tuint16_t(DPT_SCX)}, 64778 {Fname_offset: Tuint16_t(1807), Ftype: Tuint16_t(DPT_LAMP)}, 64779 {Fname_offset: Tuint16_t(1810), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Lepcha}, 64780 {Fname_offset: Tuint16_t(1815), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Lepcha}, 64781 {Fname_offset: Tuint16_t(1822), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Limbu}, 64782 {Fname_offset: Tuint16_t(1827), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Limbu}, 64783 {Fname_offset: Tuint16_t(1833), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Linear_A}, 64784 {Fname_offset: Tuint16_t(1838), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Linear_B}, 64785 {Fname_offset: Tuint16_t(1843), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Linear_A}, 64786 {Fname_offset: Tuint16_t(1851), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Linear_B}, 64787 {Fname_offset: Tuint16_t(1859), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Lisu}, 64788 {Fname_offset: Tuint16_t(1864), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Ll}, 64789 {Fname_offset: Tuint16_t(1867), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Lm}, 64790 {Fname_offset: Tuint16_t(1870), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Lo}, 64791 {Fname_offset: Tuint16_t(1873), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Logical_Order_Exception}, 64792 {Fname_offset: Tuint16_t(1877), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Logical_Order_Exception}, 64793 {Fname_offset: Tuint16_t(1899), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Lowercase}, 64794 {Fname_offset: Tuint16_t(1905), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Lowercase}, 64795 {Fname_offset: Tuint16_t(1915), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Lt}, 64796 {Fname_offset: Tuint16_t(1918), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Lu}, 64797 {Fname_offset: Tuint16_t(1921), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Lycian}, 64798 {Fname_offset: Tuint16_t(1926), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Lycian}, 64799 {Fname_offset: Tuint16_t(1933), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Lydian}, 64800 {Fname_offset: Tuint16_t(1938), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Lydian}, 64801 {Fname_offset: Tuint16_t(1945), Ftype: Tuint16_t(DPT_GC), Fvalue: ucp_M}, 64802 {Fname_offset: Tuint16_t(1947), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Mahajani}, 64803 {Fname_offset: Tuint16_t(1956), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Mahajani}, 64804 {Fname_offset: Tuint16_t(1961), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Makasar}, 64805 {Fname_offset: Tuint16_t(1966), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Makasar}, 64806 {Fname_offset: Tuint16_t(1974), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Malayalam}, 64807 {Fname_offset: Tuint16_t(1984), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Mandaic}, 64808 {Fname_offset: Tuint16_t(1989), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Mandaic}, 64809 {Fname_offset: Tuint16_t(1997), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Manichaean}, 64810 {Fname_offset: Tuint16_t(2002), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Manichaean}, 64811 {Fname_offset: Tuint16_t(2013), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Marchen}, 64812 {Fname_offset: Tuint16_t(2018), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Marchen}, 64813 {Fname_offset: Tuint16_t(2026), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Masaram_Gondi}, 64814 {Fname_offset: Tuint16_t(2039), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Math}, 64815 {Fname_offset: Tuint16_t(2044), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Mc}, 64816 {Fname_offset: Tuint16_t(2047), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Me}, 64817 {Fname_offset: Tuint16_t(2050), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Medefaidrin}, 64818 {Fname_offset: Tuint16_t(2062), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Medefaidrin}, 64819 {Fname_offset: Tuint16_t(2067), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Meetei_Mayek}, 64820 {Fname_offset: Tuint16_t(2079), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Mende_Kikakui}, 64821 {Fname_offset: Tuint16_t(2084), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Mende_Kikakui}, 64822 {Fname_offset: Tuint16_t(2097), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Meroitic_Cursive}, 64823 {Fname_offset: Tuint16_t(2102), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Meroitic_Hieroglyphs}, 64824 {Fname_offset: Tuint16_t(2107), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Meroitic_Cursive}, 64825 {Fname_offset: Tuint16_t(2123), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Meroitic_Hieroglyphs}, 64826 {Fname_offset: Tuint16_t(2143), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Miao}, 64827 {Fname_offset: Tuint16_t(2148), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Malayalam}, 64828 {Fname_offset: Tuint16_t(2153), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Mn}, 64829 {Fname_offset: Tuint16_t(2156), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Modi}, 64830 {Fname_offset: Tuint16_t(2161), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Mongolian}, 64831 {Fname_offset: Tuint16_t(2166), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Mongolian}, 64832 {Fname_offset: Tuint16_t(2176), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Mro}, 64833 {Fname_offset: Tuint16_t(2180), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Mro}, 64834 {Fname_offset: Tuint16_t(2185), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Meetei_Mayek}, 64835 {Fname_offset: Tuint16_t(2190), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Multani}, 64836 {Fname_offset: Tuint16_t(2195), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Multani}, 64837 {Fname_offset: Tuint16_t(2203), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Myanmar}, 64838 {Fname_offset: Tuint16_t(2211), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Myanmar}, 64839 {Fname_offset: Tuint16_t(2216), Ftype: Tuint16_t(DPT_GC), Fvalue: ucp_N}, 64840 {Fname_offset: Tuint16_t(2218), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Nabataean}, 64841 {Fname_offset: Tuint16_t(2228), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Nandinagari}, 64842 {Fname_offset: Tuint16_t(2233), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Nandinagari}, 64843 {Fname_offset: Tuint16_t(2245), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_North_Arabian}, 64844 {Fname_offset: Tuint16_t(2250), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Nabataean}, 64845 {Fname_offset: Tuint16_t(2255), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Noncharacter_Code_Point}, 64846 {Fname_offset: Tuint16_t(2261), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Nd}, 64847 {Fname_offset: Tuint16_t(2264), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Newa}, 64848 {Fname_offset: Tuint16_t(2269), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_New_Tai_Lue}, 64849 {Fname_offset: Tuint16_t(2279), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Nko}, 64850 {Fname_offset: Tuint16_t(2283), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Nko}, 64851 {Fname_offset: Tuint16_t(2288), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Nl}, 64852 {Fname_offset: Tuint16_t(2291), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_No}, 64853 {Fname_offset: Tuint16_t(2294), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Noncharacter_Code_Point}, 64854 {Fname_offset: Tuint16_t(2316), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Nushu}, 64855 {Fname_offset: Tuint16_t(2321), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Nushu}, 64856 {Fname_offset: Tuint16_t(2327), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Nyiakeng_Puachue_Hmong}, 64857 {Fname_offset: Tuint16_t(2348), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Ogham}, 64858 {Fname_offset: Tuint16_t(2353), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Ogham}, 64859 {Fname_offset: Tuint16_t(2359), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Ol_Chiki}, 64860 {Fname_offset: Tuint16_t(2367), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Ol_Chiki}, 64861 {Fname_offset: Tuint16_t(2372), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_Hungarian}, 64862 {Fname_offset: Tuint16_t(2385), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_Italic}, 64863 {Fname_offset: Tuint16_t(2395), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_North_Arabian}, 64864 {Fname_offset: Tuint16_t(2411), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Old_Permic}, 64865 {Fname_offset: Tuint16_t(2421), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_Persian}, 64866 {Fname_offset: Tuint16_t(2432), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_Sogdian}, 64867 {Fname_offset: Tuint16_t(2443), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_South_Arabian}, 64868 {Fname_offset: Tuint16_t(2459), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_Turkic}, 64869 {Fname_offset: Tuint16_t(2469), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Old_Uyghur}, 64870 {Fname_offset: Tuint16_t(2479), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Oriya}, 64871 {Fname_offset: Tuint16_t(2485), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_Turkic}, 64872 {Fname_offset: Tuint16_t(2490), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Oriya}, 64873 {Fname_offset: Tuint16_t(2495), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Osage}, 64874 {Fname_offset: Tuint16_t(2501), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Osage}, 64875 {Fname_offset: Tuint16_t(2506), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Osmanya}, 64876 {Fname_offset: Tuint16_t(2511), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Osmanya}, 64877 {Fname_offset: Tuint16_t(2519), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Old_Uyghur}, 64878 {Fname_offset: Tuint16_t(2524), Ftype: Tuint16_t(DPT_GC), Fvalue: ucp_P}, 64879 {Fname_offset: Tuint16_t(2526), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Pahawh_Hmong}, 64880 {Fname_offset: Tuint16_t(2538), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Palmyrene}, 64881 {Fname_offset: Tuint16_t(2543), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Palmyrene}, 64882 {Fname_offset: Tuint16_t(2553), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Pattern_Syntax}, 64883 {Fname_offset: Tuint16_t(2560), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Pattern_Syntax}, 64884 {Fname_offset: Tuint16_t(2574), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Pattern_White_Space}, 64885 {Fname_offset: Tuint16_t(2592), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Pattern_White_Space}, 64886 {Fname_offset: Tuint16_t(2598), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Pau_Cin_Hau}, 64887 {Fname_offset: Tuint16_t(2603), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Pau_Cin_Hau}, 64888 {Fname_offset: Tuint16_t(2613), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Pc}, 64889 {Fname_offset: Tuint16_t(2616), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Prepended_Concatenation_Mark}, 64890 {Fname_offset: Tuint16_t(2620), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Pd}, 64891 {Fname_offset: Tuint16_t(2623), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Pe}, 64892 {Fname_offset: Tuint16_t(2626), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Old_Permic}, 64893 {Fname_offset: Tuint16_t(2631), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Pf}, 64894 {Fname_offset: Tuint16_t(2634), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Phags_Pa}, 64895 {Fname_offset: Tuint16_t(2639), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Phags_Pa}, 64896 {Fname_offset: Tuint16_t(2647), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Inscriptional_Pahlavi}, 64897 {Fname_offset: Tuint16_t(2652), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Psalter_Pahlavi}, 64898 {Fname_offset: Tuint16_t(2657), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Phoenician}, 64899 {Fname_offset: Tuint16_t(2662), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Phoenician}, 64900 {Fname_offset: Tuint16_t(2673), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Pi}, 64901 {Fname_offset: Tuint16_t(2676), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Miao}, 64902 {Fname_offset: Tuint16_t(2681), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Po}, 64903 {Fname_offset: Tuint16_t(2684), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Prepended_Concatenation_Mark}, 64904 {Fname_offset: Tuint16_t(2711), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Inscriptional_Parthian}, 64905 {Fname_offset: Tuint16_t(2716), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Ps}, 64906 {Fname_offset: Tuint16_t(2719), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Psalter_Pahlavi}, 64907 {Fname_offset: Tuint16_t(2734), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Coptic}, 64908 {Fname_offset: Tuint16_t(2739), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Inherited}, 64909 {Fname_offset: Tuint16_t(2744), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Quotation_Mark}, 64910 {Fname_offset: Tuint16_t(2750), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Quotation_Mark}, 64911 {Fname_offset: Tuint16_t(2764), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Radical}, 64912 {Fname_offset: Tuint16_t(2772), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Regional_Indicator}, 64913 {Fname_offset: Tuint16_t(2790), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Rejang}, 64914 {Fname_offset: Tuint16_t(2797), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Regional_Indicator}, 64915 {Fname_offset: Tuint16_t(2800), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Rejang}, 64916 {Fname_offset: Tuint16_t(2805), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Hanifi_Rohingya}, 64917 {Fname_offset: Tuint16_t(2810), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Runic}, 64918 {Fname_offset: Tuint16_t(2816), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Runic}, 64919 {Fname_offset: Tuint16_t(2821), Ftype: Tuint16_t(DPT_GC), Fvalue: ucp_S}, 64920 {Fname_offset: Tuint16_t(2823), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Samaritan}, 64921 {Fname_offset: Tuint16_t(2833), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Samaritan}, 64922 {Fname_offset: Tuint16_t(2838), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_South_Arabian}, 64923 {Fname_offset: Tuint16_t(2843), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Saurashtra}, 64924 {Fname_offset: Tuint16_t(2848), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Saurashtra}, 64925 {Fname_offset: Tuint16_t(2859), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Sc}, 64926 {Fname_offset: Tuint16_t(2862), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Soft_Dotted}, 64927 {Fname_offset: Tuint16_t(2865), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Sentence_Terminal}, 64928 {Fname_offset: Tuint16_t(2882), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_SignWriting}, 64929 {Fname_offset: Tuint16_t(2887), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Sharada}, 64930 {Fname_offset: Tuint16_t(2895), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Shavian}, 64931 {Fname_offset: Tuint16_t(2903), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Shavian}, 64932 {Fname_offset: Tuint16_t(2908), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Sharada}, 64933 {Fname_offset: Tuint16_t(2913), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Siddham}, 64934 {Fname_offset: Tuint16_t(2918), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Siddham}, 64935 {Fname_offset: Tuint16_t(2926), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_SignWriting}, 64936 {Fname_offset: Tuint16_t(2938), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Khudawadi}, 64937 {Fname_offset: Tuint16_t(2943), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Sinhala}, 64938 {Fname_offset: Tuint16_t(2948), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Sinhala}, 64939 {Fname_offset: Tuint16_t(2956), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Sk}, 64940 {Fname_offset: Tuint16_t(2959), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Sm}, 64941 {Fname_offset: Tuint16_t(2962), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_So}, 64942 {Fname_offset: Tuint16_t(2965), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Soft_Dotted}, 64943 {Fname_offset: Tuint16_t(2976), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Sogdian}, 64944 {Fname_offset: Tuint16_t(2981), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Sogdian}, 64945 {Fname_offset: Tuint16_t(2989), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_Sogdian}, 64946 {Fname_offset: Tuint16_t(2994), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Sora_Sompeng}, 64947 {Fname_offset: Tuint16_t(2999), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Sora_Sompeng}, 64948 {Fname_offset: Tuint16_t(3011), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Soyombo}, 64949 {Fname_offset: Tuint16_t(3016), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Soyombo}, 64950 {Fname_offset: Tuint16_t(3024), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_White_Space}, 64951 {Fname_offset: Tuint16_t(3030), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Sentence_Terminal}, 64952 {Fname_offset: Tuint16_t(3036), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Sundanese}, 64953 {Fname_offset: Tuint16_t(3041), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Sundanese}, 64954 {Fname_offset: Tuint16_t(3051), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Syloti_Nagri}, 64955 {Fname_offset: Tuint16_t(3056), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Syloti_Nagri}, 64956 {Fname_offset: Tuint16_t(3068), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Syriac}, 64957 {Fname_offset: Tuint16_t(3073), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Syriac}, 64958 {Fname_offset: Tuint16_t(3080), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Tagalog}, 64959 {Fname_offset: Tuint16_t(3088), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Tagbanwa}, 64960 {Fname_offset: Tuint16_t(3093), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Tagbanwa}, 64961 {Fname_offset: Tuint16_t(3102), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Tai_Le}, 64962 {Fname_offset: Tuint16_t(3108), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tai_Tham}, 64963 {Fname_offset: Tuint16_t(3116), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tai_Viet}, 64964 {Fname_offset: Tuint16_t(3124), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Takri}, 64965 {Fname_offset: Tuint16_t(3129), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Takri}, 64966 {Fname_offset: Tuint16_t(3135), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Tai_Le}, 64967 {Fname_offset: Tuint16_t(3140), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_New_Tai_Lue}, 64968 {Fname_offset: Tuint16_t(3145), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Tamil}, 64969 {Fname_offset: Tuint16_t(3151), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Tamil}, 64970 {Fname_offset: Tuint16_t(3156), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tangut}, 64971 {Fname_offset: Tuint16_t(3161), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tangsa}, 64972 {Fname_offset: Tuint16_t(3168), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tangut}, 64973 {Fname_offset: Tuint16_t(3175), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tai_Viet}, 64974 {Fname_offset: Tuint16_t(3180), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Telugu}, 64975 {Fname_offset: Tuint16_t(3185), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Telugu}, 64976 {Fname_offset: Tuint16_t(3192), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Terminal_Punctuation}, 64977 {Fname_offset: Tuint16_t(3197), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Terminal_Punctuation}, 64978 {Fname_offset: Tuint16_t(3217), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tifinagh}, 64979 {Fname_offset: Tuint16_t(3222), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Tagalog}, 64980 {Fname_offset: Tuint16_t(3227), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Thaana}, 64981 {Fname_offset: Tuint16_t(3232), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Thaana}, 64982 {Fname_offset: Tuint16_t(3239), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Thai}, 64983 {Fname_offset: Tuint16_t(3244), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tibetan}, 64984 {Fname_offset: Tuint16_t(3252), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tibetan}, 64985 {Fname_offset: Tuint16_t(3257), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tifinagh}, 64986 {Fname_offset: Tuint16_t(3266), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Tirhuta}, 64987 {Fname_offset: Tuint16_t(3271), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Tirhuta}, 64988 {Fname_offset: Tuint16_t(3279), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Tangsa}, 64989 {Fname_offset: Tuint16_t(3284), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Toto}, 64990 {Fname_offset: Tuint16_t(3289), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Ugaritic}, 64991 {Fname_offset: Tuint16_t(3294), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Ugaritic}, 64992 {Fname_offset: Tuint16_t(3303), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Unified_Ideograph}, 64993 {Fname_offset: Tuint16_t(3309), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Unified_Ideograph}, 64994 {Fname_offset: Tuint16_t(3326), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Unknown}, 64995 {Fname_offset: Tuint16_t(3334), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Uppercase}, 64996 {Fname_offset: Tuint16_t(3340), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Uppercase}, 64997 {Fname_offset: Tuint16_t(3350), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Vai}, 64998 {Fname_offset: Tuint16_t(3354), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Vai}, 64999 {Fname_offset: Tuint16_t(3359), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Variation_Selector}, 65000 {Fname_offset: Tuint16_t(3377), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Vithkuqi}, 65001 {Fname_offset: Tuint16_t(3382), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Vithkuqi}, 65002 {Fname_offset: Tuint16_t(3391), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_Variation_Selector}, 65003 {Fname_offset: Tuint16_t(3394), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Wancho}, 65004 {Fname_offset: Tuint16_t(3401), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Warang_Citi}, 65005 {Fname_offset: Tuint16_t(3406), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Warang_Citi}, 65006 {Fname_offset: Tuint16_t(3417), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Wancho}, 65007 {Fname_offset: Tuint16_t(3422), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_White_Space}, 65008 {Fname_offset: Tuint16_t(3433), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_White_Space}, 65009 {Fname_offset: Tuint16_t(3440), Ftype: Tuint16_t(DPT_ALNUM)}, 65010 {Fname_offset: Tuint16_t(3444), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_XID_Continue}, 65011 {Fname_offset: Tuint16_t(3449), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_XID_Continue}, 65012 {Fname_offset: Tuint16_t(3461), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_XID_Start}, 65013 {Fname_offset: Tuint16_t(3466), Ftype: Tuint16_t(DPT_BOOL), Fvalue: ucp_XID_Start}, 65014 {Fname_offset: Tuint16_t(3475), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Old_Persian}, 65015 {Fname_offset: Tuint16_t(3480), Ftype: Tuint16_t(DPT_PXSPACE)}, 65016 {Fname_offset: Tuint16_t(3484), Ftype: Tuint16_t(DPT_SPACE)}, 65017 {Fname_offset: Tuint16_t(3488), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Cuneiform}, 65018 {Fname_offset: Tuint16_t(3493), Ftype: Tuint16_t(DPT_UCNC)}, 65019 {Fname_offset: Tuint16_t(3497), Ftype: Tuint16_t(DPT_WORD)}, 65020 {Fname_offset: Tuint16_t(3501), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Yezidi}, 65021 {Fname_offset: Tuint16_t(3506), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Yezidi}, 65022 {Fname_offset: Tuint16_t(3513), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Yi}, 65023 {Fname_offset: Tuint16_t(3516), Ftype: Tuint16_t(DPT_SCX), Fvalue: ucp_Yi}, 65024 {Fname_offset: Tuint16_t(3521), Ftype: Tuint16_t(DPT_GC), Fvalue: ucp_Z}, 65025 {Fname_offset: Tuint16_t(3523), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Zanabazar_Square}, 65026 {Fname_offset: Tuint16_t(3539), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Zanabazar_Square}, 65027 {Fname_offset: Tuint16_t(3544), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Inherited}, 65028 {Fname_offset: Tuint16_t(3549), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Zl}, 65029 {Fname_offset: Tuint16_t(3552), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Zp}, 65030 {Fname_offset: Tuint16_t(3555), Ftype: Tuint16_t(DPT_PC), Fvalue: ucp_Zs}, 65031 {Fname_offset: Tuint16_t(3558), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Common}, 65032 {Fname_offset: Tuint16_t(3563), Ftype: Tuint16_t(DPT_SC), Fvalue: ucp_Unknown}, 65033 } /* pcre2_ucptables.c:1031:22 */ 65034 65035 var X_pcre2_utt_size_8 Tsize_t = uint64(unsafe.Sizeof(X_pcre2_utt_8)) / uint64(unsafe.Sizeof(Tucp_type_table{})) /* pcre2_ucptables.c:1520:14 */ 65036 65037 // End of pcre2_ucptables.c 65038 65039 // End of pcre2_tables.c 65040 65041 // This function is needed only when memmove() is not available. 65042 65043 // End of pcre2_internal.h 65044 65045 // The tables herein are needed only when UCP support is built, and in PCRE2 65046 // that happens automatically with UTF support. This module should not be 65047 // referenced otherwise, so it should not matter whether it is compiled or not. 65048 // However a comment was received about space saving - maybe the guy linked all 65049 // the modules rather than using a library - so we include a condition to cut out 65050 // the tables when not needed. But don't leave a totally empty module because some 65051 // compilers barf at that. Instead, just supply some small dummy tables. 65052 65053 // Total size: 111116 bytes, block size: 128. 65054 65055 var X_pcre2_unicode_version_8 uintptr = ts + 11252 /* "14.0.0" */ /* pcre2_ucd.c:79:12 */ 65056 65057 // When recompiling tables with a new Unicode version, please check the types 65058 // in this structure definition with those in pcre2_internal.h (the actual field 65059 // names will be different). 65060 // 65061 // typedef struct { 65062 // uint8_t property_0; 65063 // uint8_t property_1; 65064 // uint8_t property_2; 65065 // uint8_t property_3; 65066 // int32_t property_4; 65067 // uint16_t property_5; 65068 // uint16_t property_6; 65069 // } ucd_record; 65070 65071 // If the 32-bit library is run in non-32-bit mode, character values greater 65072 // than 0x10ffff may be encountered. For these we set up a special record. 65073 65074 // This table contains lists of characters that are caseless sets of 65075 // more than one character. Each list is terminated by NOTACHAR. 65076 65077 var X_pcre2_ucd_caseless_sets_8 = [112]Tuint32_t{ 65078 DNOTACHAR, 65079 Tuint32_t(0x0053), Tuint32_t(0x0073), Tuint32_t(0x017f), DNOTACHAR, 65080 Tuint32_t(0x01c4), Tuint32_t(0x01c5), Tuint32_t(0x01c6), DNOTACHAR, 65081 Tuint32_t(0x01c7), Tuint32_t(0x01c8), Tuint32_t(0x01c9), DNOTACHAR, 65082 Tuint32_t(0x01ca), Tuint32_t(0x01cb), Tuint32_t(0x01cc), DNOTACHAR, 65083 Tuint32_t(0x01f1), Tuint32_t(0x01f2), Tuint32_t(0x01f3), DNOTACHAR, 65084 Tuint32_t(0x0345), Tuint32_t(0x0399), Tuint32_t(0x03b9), Tuint32_t(0x1fbe), DNOTACHAR, 65085 Tuint32_t(0x00b5), Tuint32_t(0x039c), Tuint32_t(0x03bc), DNOTACHAR, 65086 Tuint32_t(0x03a3), Tuint32_t(0x03c2), Tuint32_t(0x03c3), DNOTACHAR, 65087 Tuint32_t(0x0392), Tuint32_t(0x03b2), Tuint32_t(0x03d0), DNOTACHAR, 65088 Tuint32_t(0x0398), Tuint32_t(0x03b8), Tuint32_t(0x03d1), Tuint32_t(0x03f4), DNOTACHAR, 65089 Tuint32_t(0x03a6), Tuint32_t(0x03c6), Tuint32_t(0x03d5), DNOTACHAR, 65090 Tuint32_t(0x03a0), Tuint32_t(0x03c0), Tuint32_t(0x03d6), DNOTACHAR, 65091 Tuint32_t(0x039a), Tuint32_t(0x03ba), Tuint32_t(0x03f0), DNOTACHAR, 65092 Tuint32_t(0x03a1), Tuint32_t(0x03c1), Tuint32_t(0x03f1), DNOTACHAR, 65093 Tuint32_t(0x0395), Tuint32_t(0x03b5), Tuint32_t(0x03f5), DNOTACHAR, 65094 Tuint32_t(0x0412), Tuint32_t(0x0432), Tuint32_t(0x1c80), DNOTACHAR, 65095 Tuint32_t(0x0414), Tuint32_t(0x0434), Tuint32_t(0x1c81), DNOTACHAR, 65096 Tuint32_t(0x041e), Tuint32_t(0x043e), Tuint32_t(0x1c82), DNOTACHAR, 65097 Tuint32_t(0x0421), Tuint32_t(0x0441), Tuint32_t(0x1c83), DNOTACHAR, 65098 Tuint32_t(0x0422), Tuint32_t(0x0442), Tuint32_t(0x1c84), Tuint32_t(0x1c85), DNOTACHAR, 65099 Tuint32_t(0x042a), Tuint32_t(0x044a), Tuint32_t(0x1c86), DNOTACHAR, 65100 Tuint32_t(0x0462), Tuint32_t(0x0463), Tuint32_t(0x1c87), DNOTACHAR, 65101 Tuint32_t(0x1e60), Tuint32_t(0x1e61), Tuint32_t(0x1e9b), DNOTACHAR, 65102 Tuint32_t(0x03a9), Tuint32_t(0x03c9), Tuint32_t(0x2126), DNOTACHAR, 65103 Tuint32_t(0x004b), Tuint32_t(0x006b), Tuint32_t(0x212a), DNOTACHAR, 65104 Tuint32_t(0x00c5), Tuint32_t(0x00e5), Tuint32_t(0x212b), DNOTACHAR, 65105 Tuint32_t(0x1c88), Tuint32_t(0xa64a), Tuint32_t(0xa64b), DNOTACHAR, 65106 } /* pcre2_ucd.c:114:16 */ 65107 65108 // When #included in pcre2test, we don't need the table of digit sets, nor the 65109 // the large main UCD tables. 65110 65111 // This table lists the code points for the '9' characters in each set of 65112 // decimal digits. It is used to ensure that all the digits in a script run come 65113 // from the same set. 65114 65115 var X_pcre2_ucd_digit_sets_8 = [67]Tuint32_t{ 65116 Tuint32_t(66), // Number of subsequent values 65117 Tuint32_t(0x00039), Tuint32_t(0x00669), Tuint32_t(0x006f9), Tuint32_t(0x007c9), Tuint32_t(0x0096f), Tuint32_t(0x009ef), Tuint32_t(0x00a6f), Tuint32_t(0x00aef), 65118 Tuint32_t(0x00b6f), Tuint32_t(0x00bef), Tuint32_t(0x00c6f), Tuint32_t(0x00cef), Tuint32_t(0x00d6f), Tuint32_t(0x00def), Tuint32_t(0x00e59), Tuint32_t(0x00ed9), 65119 Tuint32_t(0x00f29), Tuint32_t(0x01049), Tuint32_t(0x01099), Tuint32_t(0x017e9), Tuint32_t(0x01819), Tuint32_t(0x0194f), Tuint32_t(0x019d9), Tuint32_t(0x01a89), 65120 Tuint32_t(0x01a99), Tuint32_t(0x01b59), Tuint32_t(0x01bb9), Tuint32_t(0x01c49), Tuint32_t(0x01c59), Tuint32_t(0x0a629), Tuint32_t(0x0a8d9), Tuint32_t(0x0a909), 65121 Tuint32_t(0x0a9d9), Tuint32_t(0x0a9f9), Tuint32_t(0x0aa59), Tuint32_t(0x0abf9), Tuint32_t(0x0ff19), Tuint32_t(0x104a9), Tuint32_t(0x10d39), Tuint32_t(0x1106f), 65122 Tuint32_t(0x110f9), Tuint32_t(0x1113f), Tuint32_t(0x111d9), Tuint32_t(0x112f9), Tuint32_t(0x11459), Tuint32_t(0x114d9), Tuint32_t(0x11659), Tuint32_t(0x116c9), 65123 Tuint32_t(0x11739), Tuint32_t(0x118e9), Tuint32_t(0x11959), Tuint32_t(0x11c59), Tuint32_t(0x11d59), Tuint32_t(0x11da9), Tuint32_t(0x16a69), Tuint32_t(0x16ac9), 65124 Tuint32_t(0x16b59), Tuint32_t(0x1d7d7), Tuint32_t(0x1d7e1), Tuint32_t(0x1d7eb), Tuint32_t(0x1d7f5), Tuint32_t(0x1d7ff), Tuint32_t(0x1e149), Tuint32_t(0x1e2f9), 65125 Tuint32_t(0x1e959), Tuint32_t(0x1fbf9), 65126 } /* pcre2_ucd.c:154:16 */ 65127 65128 // This vector is a list of script bitsets for the Script Extension property. 65129 // The number of 32-bit words in each bitset is #defined in pcre2_ucp.h as 65130 // ucd_script_sets_item_size. 65131 65132 var X_pcre2_ucd_script_sets_8 = [189]Tuint32_t{ 65133 0x00000000, 0x00000000, 0x00000000, 65134 0x00000080, 0x00000000, 0x00000000, 65135 0x00000040, 0x00000000, 0x00000000, 65136 0x00000000, 0x00004000, 0x00000000, 65137 0x00000002, 0x00000000, 0x00000000, 65138 0x00800000, 0x00000000, 0x00000000, 65139 0x00000001, 0x00000000, 0x00000000, 65140 0x00000000, 0x00000000, 0x00000001, 65141 0x00000010, 0x00000000, 0x00000000, 65142 0x00000008, 0x00000004, 0x00000000, 65143 0x00000008, 0x40000000, 0x00000000, 65144 0x00000008, 0x00000040, 0x00000000, 65145 0x00000018, 0x00000000, 0x00000000, 65146 0x00000028, 0x00000000, 0x00000000, 65147 0x000000c0, 0x00000000, 0x00000000, 65148 0x00c00000, 0x00000000, 0x00000000, 65149 0x00000000, 0x00000102, 0x00000000, 65150 0x80000000, 0x00000001, 0x00000000, 65151 0x00000004, 0x00000008, 0x00000000, 65152 0x00000005, 0x00000000, 0x00000000, 65153 0x00000004, 0x00200000, 0x00000000, 65154 0x00000014, 0x00000000, 0x00000000, 65155 0x00000040, 0x00008000, 0x00000000, 65156 0x00000040, 0x00000000, 0x00000001, 65157 0x00000040, 0x00001000, 0x00000000, 65158 0x00000840, 0x00000000, 0x00000000, 65159 0x00020001, 0x00000000, 0x00000000, 65160 0x00000800, 0x00008000, 0x00000000, 65161 0x00000200, 0x00010000, 0x00000000, 65162 0x00000100, 0x02000000, 0x00000000, 65163 0x00800001, 0x00000000, 0x00000000, 65164 0x00300000, 0x00000000, 0x00000000, 65165 0x00002000, 0x00000000, 0x00000001, 65166 0x00080001, 0x00000000, 0x00000000, 65167 0x00000000, 0x00080000, 0x00000008, 65168 0x00080000, 0x00000020, 0x00000000, 65169 0x00000038, 0x00000000, 0x00000000, 65170 0x00000028, 0x00000000, 0x00000002, 65171 0x00000080, 0x00000810, 0x00000000, 65172 0x40010000, 0x00000800, 0x00000000, 65173 0x80000000, 0x00000001, 0x00000004, 65174 0x80000000, 0x00020001, 0x00000000, 65175 0x00002040, 0x00008000, 0x00000000, 65176 0x00000041, 0x00008000, 0x00000000, 65177 0x00b00000, 0x00000000, 0x00000000, 65178 0x00010001, 0x00000080, 0x00000000, 65179 0x000020c0, 0x00008000, 0x00000000, 65180 0x1e000000, 0x00000000, 0x00000000, 65181 0x00000040, 0x10040200, 0x00000000, 65182 0x00f40000, 0x00000000, 0x00000000, 65183 0x00000038, 0x40000040, 0x00000002, 65184 0x01f40000, 0x00000000, 0x00000000, 65185 0x00007c40, 0x00000000, 0x00000000, 65186 0x00000038, 0x44000040, 0x00000002, 65187 0x000034c0, 0x01008000, 0x00000001, 65188 0x00000018, 0xc4480400, 0x00000008, 65189 0x00000340, 0x11952200, 0x00000000, 65190 0x00007fc1, 0x01008000, 0x00000000, 65191 0x00007fc1, 0x01009000, 0x00000000, 65192 0x00002340, 0x11952200, 0x00000001, 65193 0x00006340, 0x11952200, 0x00000001, 65194 0x0000ffc0, 0x3984a010, 0x00000001, 65195 0x2000ffc0, 0x3984a010, 0x00000001, 65196 } /* pcre2_ucd.c:171:16 */ 65197 65198 // This vector is a list of bitsets for Boolean properties. The number of 65199 // 32_bit words in each bitset is #defined as ucd_boolprop_sets_item_size in 65200 // pcre2_ucp.h. 65201 65202 var X_pcre2_ucd_boolprop_sets_8 = [354]Tuint32_t{ 65203 0x00000000, 0x00000000, 65204 0x00000001, 0x00000000, 65205 0x00000001, 0x00020040, 65206 0x00800001, 0x00020040, 65207 0x00800001, 0x00002820, 65208 0x00800001, 0x00000120, 65209 0x00830001, 0x00000020, 65210 0x00800001, 0x00000020, 65211 0x00800021, 0x00000120, 65212 0x00800011, 0x00000020, 65213 0x00800001, 0x00000028, 65214 0x00800001, 0x00002020, 65215 0x00801001, 0x00000020, 65216 0x00800021, 0x00002820, 65217 0x24830003, 0x00040000, 65218 0x00800021, 0x00002020, 65219 0x00800011, 0x00000028, 65220 0x648003c7, 0x000c8000, 65221 0x608003c5, 0x000c8000, 65222 0x00808021, 0x00000028, 65223 0x20800001, 0x00040000, 65224 0x00808021, 0x00000020, 65225 0x64800d47, 0x000c0004, 65226 0x60800d45, 0x000c0004, 65227 0x60800d45, 0x000c1004, 65228 0x00000000, 0x00020040, 65229 0x00800000, 0x00020000, 65230 0x00800000, 0x00000020, 65231 0x00808020, 0x00000000, 65232 0x00a10000, 0x00000020, 65233 0x60800044, 0x000c0004, 65234 0x00800010, 0x00000120, 65235 0x00800000, 0x00000028, 65236 0x00002020, 0x00000000, 65237 0x00800000, 0x00000000, 65238 0x60800dc4, 0x000c0004, 65239 0x20c08020, 0x00040000, 65240 0x608003c4, 0x000c8000, 65241 0x60800d44, 0x000c0004, 65242 0x60800d44, 0x000c1004, 65243 0x60804dc4, 0x000c0004, 65244 0x60800004, 0x000c0000, 65245 0x608007c4, 0x000c8000, 65246 0x60800bc4, 0x000c0000, 65247 0x60808064, 0x000c0004, 65248 0x60808064, 0x000c1004, 65249 0x60808024, 0x000c0000, 65250 0x60c08024, 0x000c0000, 65251 0x21008020, 0x00040000, 65252 0x21008de4, 0x00040004, 65253 0x21002020, 0x00040000, 65254 0x21000020, 0x00040000, 65255 0x60808064, 0x00000004, 65256 0x00800000, 0x00002000, 65257 0x20800020, 0x00042000, 65258 0x60800dc4, 0x000c000c, 65259 0x60800044, 0x000c8008, 65260 0x60800044, 0x000c8000, 65261 0x608003c4, 0x000c8008, 65262 0x00800000, 0x00000008, 65263 0x01000020, 0x00000000, 65264 0x00800020, 0x00000000, 65265 0x00800000, 0x00002800, 65266 0x00801000, 0x00000000, 65267 0x21008024, 0x00040000, 65268 0x21000024, 0x00040000, 65269 0x00000020, 0x00000080, 65270 0x00002028, 0x00000000, 65271 0x60c00024, 0x000c0000, 65272 0x20800000, 0x00040000, 65273 0x60804004, 0x000c0000, 65274 0x60800024, 0x000c0000, 65275 0x20800004, 0x00040000, 65276 0x23008020, 0x00040000, 65277 0x21000004, 0x00040000, 65278 0x21408020, 0x00040000, 65279 0x60800004, 0x00040000, 65280 0x23000024, 0x00040000, 65281 0x60800004, 0x000c0002, 65282 0x00800010, 0x00000000, 65283 0x20808000, 0x00040000, 65284 0x21004024, 0x00040000, 65285 0x20808004, 0x00040000, 65286 0x60800944, 0x000c0004, 65287 0x60802004, 0x000c0000, 65288 0x60800344, 0x000c8000, 65289 0x22808000, 0x00040000, 65290 0x22800000, 0x00040000, 65291 0x00c00000, 0x00000000, 65292 0x21002020, 0x00050000, 65293 0x61000024, 0x000c0000, 65294 0x23000020, 0x00040000, 65295 0x01008020, 0x00000000, 65296 0x21408024, 0x00040000, 65297 0x00808000, 0x00000000, 65298 0x60800064, 0x000c0004, 65299 0x60800044, 0x000c1004, 65300 0x60800064, 0x000c1004, 65301 0x01002020, 0x00000001, 65302 0x00022020, 0x00000001, 65303 0x00002028, 0x00000040, 65304 0x00801000, 0x00000020, 65305 0x00800020, 0x00000120, 65306 0x00800000, 0x00000120, 65307 0x00800020, 0x00000020, 65308 0x00a10000, 0x00002820, 65309 0x00800000, 0x00002820, 65310 0x20800000, 0x00040008, 65311 0x00800010, 0x00000020, 65312 0x00002020, 0x00000008, 65313 0x00002000, 0x00000000, 65314 0x00006020, 0x00000000, 65315 0x00801000, 0x00000008, 65316 0x00800010, 0x00000008, 65317 0x21000020, 0x00040008, 65318 0x01020020, 0x00000000, 65319 0x60800044, 0x000c000c, 65320 0x60800000, 0x000c0008, 65321 0x00a10000, 0x00000000, 65322 0x60800000, 0x000c0000, 65323 0x60800004, 0x000c0008, 65324 0x60a10044, 0x000c0004, 65325 0x60800044, 0x000c100c, 65326 0x00a10000, 0x00000028, 65327 0x00800010, 0x00000028, 65328 0x00801000, 0x00000028, 65329 0x00b10000, 0x00000020, 65330 0x00804010, 0x00000020, 65331 0x00a00000, 0x00000020, 65332 0x00000000, 0x00000020, 65333 0x008003c4, 0x00008000, 65334 0x00a103c4, 0x00008000, 65335 0x00800d44, 0x00000004, 65336 0x00b10000, 0x00000028, 65337 0x00a00000, 0x00000028, 65338 0x00a90000, 0x00000020, 65339 0x00b90000, 0x00000020, 65340 0x00808024, 0x00000020, 65341 0x00800000, 0x00002020, 65342 0x00800000, 0x00000200, 65343 0x08800000, 0x00000000, 65344 0x10800000, 0x00000000, 65345 0xe0800004, 0x000c0000, 65346 0x21008000, 0x00040000, 65347 0x00a11000, 0x00000020, 65348 0x60808020, 0x00000000, 65349 0xe0800004, 0x000c4000, 65350 0x60808004, 0x000c0000, 65351 0x60800004, 0x00000000, 65352 0x00000000, 0x00000010, 65353 0x21022020, 0x00050000, 65354 0x00800000, 0x00000100, 65355 0x00800020, 0x00002800, 65356 0x00800020, 0x00002000, 65357 0x00800020, 0x00000100, 65358 0x24800000, 0x00040000, 65359 0x648003c4, 0x000c8000, 65360 0x00808020, 0x00000008, 65361 0x64800d44, 0x000c0004, 65362 0x00800010, 0x00000100, 65363 0x61008024, 0x00040000, 65364 0x00000020, 0x00000000, 65365 0x60c00004, 0x000c0000, 65366 0x21400020, 0x00040000, 65367 0xa1000020, 0x00040000, 65368 0x21000000, 0x00040000, 65369 0x00a00000, 0x00000000, 65370 0x00b10000, 0x00000000, 65371 0x00200000, 0x00000000, 65372 0x00800044, 0x00008000, 65373 0x00a10044, 0x00008000, 65374 0x00930000, 0x00000400, 65375 0x00b90000, 0x00000000, 65376 0x00a90000, 0x00000000, 65377 0x00970020, 0x00000000, 65378 0x00b30000, 0x00000000, 65379 0x01022020, 0x00000000, 65380 } /* pcre2_ucd.c:241:16 */ 65381 65382 // These are the main two-stage UCD tables. The fields in each record are: 65383 // script (8 bits), character type (8 bits), grapheme break property (8 bits), 65384 // offset to multichar other cases or zero (8 bits), offset to other case or zero 65385 // (32 bits, signed), bidi class (5 bits) and script extension (11 bits) packed 65386 // into a 16-bit field, and offset in binary properties table (16 bits). 65387 65388 var X_pcre2_ucd_records_8 = [1409]Tucd_record{ // 16908 bytes, record size 12 65389 {Fscript: Tuint8_t(69), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(6144), Fbprops: Tuint16_t(2)}, // 0 65390 {Fscript: Tuint8_t(69), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(43008), Fbprops: Tuint16_t(4)}, // 1 65391 {Fscript: Tuint8_t(69), Fgbprop: Tuint8_t(1), Fscriptx_bidiclass: Tuint16_t(4096), Fbprops: Tuint16_t(4)}, // 2 65392 {Fscript: Tuint8_t(69), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(45056), Fbprops: Tuint16_t(4)}, // 3 65393 {Fscript: Tuint8_t(69), Fscriptx_bidiclass: Tuint16_t(4096), Fbprops: Tuint16_t(4)}, // 4 65394 {Fscript: Tuint8_t(69), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(4096), Fbprops: Tuint16_t(2)}, // 5 65395 {Fscript: Tuint8_t(69), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(43008), Fbprops: Tuint16_t(2)}, // 6 65396 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(29), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(45056), Fbprops: Tuint16_t(6)}, // 7 65397 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(8)}, // 8 65398 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(10)}, // 9 65399 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(12)}, // 10 65400 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(14)}, // 11 65401 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(14)}, // 12 65402 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(14)}, // 13 65403 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(16)}, // 14 65404 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(18)}, // 15 65405 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(18)}, // 16 65406 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(12)}, // 17 65407 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(12288), Fbprops: Tuint16_t(20)}, // 18 65408 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8192), Fbprops: Tuint16_t(22)}, // 19 65409 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(12288), Fbprops: Tuint16_t(24)}, // 20 65410 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8192), Fbprops: Tuint16_t(26)}, // 21 65411 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8192), Fbprops: Tuint16_t(14)}, // 22 65412 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(10240), Fbprops: Tuint16_t(28)}, // 23 65413 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8192), Fbprops: Tuint16_t(30)}, // 24 65414 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(22)}, // 25 65415 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(32)}, // 26 65416 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(20)}, // 27 65417 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(34)}, // 28 65418 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(36)}, // 29 65419 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(100), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(36)}, // 30 65420 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(1), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(36)}, // 31 65421 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(24), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(38)}, // 32 65422 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(16), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(40)}, // 33 65423 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(24), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(42)}, // 34 65424 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(44)}, // 35 65425 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(46)}, // 36 65426 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(48)}, // 37 65427 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(100), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(46)}, // 38 65428 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(1), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(46)}, // 39 65429 {Fscript: Tuint8_t(69), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(6144)}, // 40 65430 {Fscript: Tuint8_t(69), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(4096), Fbprops: Tuint16_t(50)}, // 41 65431 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(29), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8192), Fbprops: Tuint16_t(52)}, // 42 65432 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(54)}, // 43 65433 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(54)}, // 44 65434 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(54)}, // 45 65435 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(24), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(56)}, // 46 65436 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(58)}, // 47 65437 {Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(60)}, // 48 65438 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(20), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(62)}, // 49 65439 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(64)}, // 50 65440 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(6144), Fbprops: Tuint16_t(66)}, // 51 65441 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(54)}, // 52 65442 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(64)}, // 53 65443 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(10240), Fbprops: Tuint16_t(68)}, // 54 65444 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(26), Fother_case: 775, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 55 65445 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(72)}, // 56 65446 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(19), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(62)}, // 57 65447 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 58 65448 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 59 65449 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(104), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 60 65450 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 7615, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 61 65451 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 62 65452 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(104), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 63 65453 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 121, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 64 65454 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 65 65455 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 66 65456 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(78)}, // 67 65457 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 68 65458 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 69 65459 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(60)}, // 70 65460 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(80)}, // 71 65461 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -121, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 72 65462 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(1), Fother_case: -268, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 73 65463 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 195, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 74 65464 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 210, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 75 65465 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 206, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 76 65466 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 205, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 77 65467 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 79, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 78 65468 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 202, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 79 65469 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 203, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 80 65470 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 207, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 81 65471 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 97, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 82 65472 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 211, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 83 65473 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 209, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 84 65474 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 163, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 85 65475 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 213, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 86 65476 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 130, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 87 65477 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 214, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 88 65478 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 218, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 89 65479 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 217, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 90 65480 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 219, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 91 65481 {Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 92 65482 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 56, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 93 65483 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(5), Fother_case: 2, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(84)}, // 94 65484 {Fchartype: Tuint8_t(8), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(5), Fother_case: 1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(86)}, // 95 65485 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(5), Fother_case: -2, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 96 65486 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(9), Fother_case: 2, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(84)}, // 97 65487 {Fchartype: Tuint8_t(8), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(9), Fother_case: 1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(86)}, // 98 65488 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(9), Fother_case: -2, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 99 65489 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(13), Fother_case: 2, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(84)}, // 100 65490 {Fchartype: Tuint8_t(8), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(13), Fother_case: 1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(86)}, // 101 65491 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(13), Fother_case: -2, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 102 65492 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -79, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 103 65493 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(17), Fother_case: 2, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(84)}, // 104 65494 {Fchartype: Tuint8_t(8), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(17), Fother_case: 1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(86)}, // 105 65495 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(17), Fother_case: -2, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 106 65496 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -97, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 107 65497 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -56, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 108 65498 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -130, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 109 65499 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 10795, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 110 65500 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -163, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 111 65501 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 10792, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 112 65502 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 10815, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 113 65503 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -195, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 114 65504 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 69, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 115 65505 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 71, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 116 65506 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 10783, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 117 65507 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 10780, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 118 65508 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 10782, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 119 65509 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -210, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 120 65510 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -206, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 121 65511 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -205, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 122 65512 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -202, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 123 65513 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -203, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 124 65514 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 42319, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 125 65515 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 42315, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 126 65516 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -207, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 127 65517 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 42280, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 128 65518 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 42308, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 129 65519 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -209, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(78)}, // 130 65520 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -211, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 131 65521 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 10743, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 132 65522 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 42305, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 133 65523 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 10749, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 134 65524 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -213, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 135 65525 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -214, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 136 65526 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 10727, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 137 65527 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -218, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 138 65528 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 42307, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 139 65529 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 42282, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 140 65530 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -69, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 141 65531 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -217, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 142 65532 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -71, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 143 65533 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -219, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 144 65534 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 42261, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(78)}, // 145 65535 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 42258, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 146 65536 {Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(88)}, // 147 65537 {Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(90)}, // 148 65538 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(92)}, // 149 65539 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(92)}, // 150 65540 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(88)}, // 151 65541 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(94)}, // 152 65542 {Fscript: Tuint8_t(22), Fchartype: Tuint8_t(24), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(56)}, // 153 65543 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 154 65544 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26636), Fbprops: Tuint16_t(96)}, // 155 65545 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fcaseset: Tuint8_t(21), Fother_case: 116, Fscriptx_bidiclass: Tuint16_t(26636), Fbprops: Tuint16_t(98)}, // 156 65546 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(100)}, // 157 65547 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 158 65548 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26642), Fbprops: Tuint16_t(102)}, // 159 65549 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 160 65550 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 161 65551 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(24), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(56)}, // 162 65552 {Fscript: Tuint8_t(68), Fchartype: Tuint8_t(2), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432)}, // 163 65553 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(104)}, // 164 65554 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 130, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 165 65555 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(106)}, // 166 65556 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 116, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 167 65557 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 38, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 168 65558 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(108)}, // 169 65559 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 37, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 170 65560 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 64, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 171 65561 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 63, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 172 65562 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 173 65563 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 174 65564 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(34), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 175 65565 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(59), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 176 65566 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(38), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 177 65567 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(21), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 178 65568 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(51), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 179 65569 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(26), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 180 65570 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(47), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 181 65571 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(55), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 182 65572 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(30), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 183 65573 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(43), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 184 65574 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(96), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 185 65575 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -38, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 186 65576 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -37, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 187 65577 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 188 65578 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(34), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 189 65579 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(59), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 190 65580 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(38), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 191 65581 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(21), Fother_case: -116, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 192 65582 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(51), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 193 65583 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(26), Fother_case: -775, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 194 65584 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(47), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 195 65585 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(55), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 196 65586 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(30), Fother_case: 1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 197 65587 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(30), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 198 65588 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(43), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 199 65589 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(96), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 200 65590 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -64, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 201 65591 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -63, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 202 65592 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 8, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 203 65593 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(34), Fother_case: -30, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(110)}, // 204 65594 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(38), Fother_case: -25, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(110)}, // 205 65595 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(112)}, // 206 65596 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(114)}, // 207 65597 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(43), Fother_case: -15, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(110)}, // 208 65598 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(47), Fother_case: -22, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 209 65599 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -8, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 210 65600 {Fscript: Tuint8_t(34), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 211 65601 {Fscript: Tuint8_t(34), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 212 65602 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(51), Fother_case: -54, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(110)}, // 213 65603 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(55), Fother_case: -48, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(110)}, // 214 65604 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 7, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 215 65605 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -116, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(78)}, // 216 65606 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(38), Fother_case: -60, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(116)}, // 217 65607 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(59), Fother_case: -64, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(110)}, // 218 65608 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(118)}, // 219 65609 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -7, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 220 65610 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(60)}, // 221 65611 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -130, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 222 65612 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 80, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 223 65613 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 224 65614 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(63), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 225 65615 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(67), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 226 65616 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(71), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 227 65617 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(75), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 228 65618 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(79), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 229 65619 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(84), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 230 65620 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 231 65621 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(63), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 232 65622 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(67), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 233 65623 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(71), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 234 65624 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(75), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 235 65625 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(79), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 236 65626 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(84), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 237 65627 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -80, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 238 65628 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -80, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(78)}, // 239 65629 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 240 65630 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 241 65631 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(88), Fother_case: 1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 242 65632 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(88), Fother_case: -1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 243 65633 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 244 65634 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26684), Fbprops: Tuint16_t(96)}, // 245 65635 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26678), Fbprops: Tuint16_t(96)}, // 246 65636 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26681), Fbprops: Tuint16_t(96)}, // 247 65637 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(11), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(120)}, // 248 65638 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 15, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 249 65639 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -15, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 250 65640 {Fscript: Tuint8_t(70), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 48, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 251 65641 {Fscript: Tuint8_t(70), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(92)}, // 252 65642 {Fscript: Tuint8_t(70), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 253 65643 {Fscript: Tuint8_t(70), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(122)}, // 254 65644 {Fscript: Tuint8_t(70), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(60)}, // 255 65645 {Fscript: Tuint8_t(70), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -48, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 256 65646 {Fscript: Tuint8_t(70), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 257 65647 {Fscript: Tuint8_t(70), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 258 65648 {Fscript: Tuint8_t(70), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(126)}, // 259 65649 {Fscript: Tuint8_t(70), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 260 65650 {Fscript: Tuint8_t(70), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(68)}, // 261 65651 {Fscript: Tuint8_t(68), Fchartype: Tuint8_t(2), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816)}, // 262 65652 {Fscript: Tuint8_t(71), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 263 65653 {Fscript: Tuint8_t(71), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 264 65654 {Fscript: Tuint8_t(71), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(128)}, // 265 65655 {Fscript: Tuint8_t(71), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(126)}, // 266 65656 {Fscript: Tuint8_t(71), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 267 65657 {Fscript: Tuint8_t(71), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(106)}, // 268 65658 {Fscript: Tuint8_t(71), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 269 65659 {Fscript: Tuint8_t(71), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 270 65660 {Fscript: Tuint8_t(71), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(122)}, // 271 65661 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(4), Fscriptx_bidiclass: Tuint16_t(2048), Fbprops: Tuint16_t(132)}, // 272 65662 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(4), Fscriptx_bidiclass: Tuint16_t(2048), Fbprops: Tuint16_t(132)}, // 273 65663 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(118)}, // 274 65664 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(118)}, // 275 65665 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(68)}, // 276 65666 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(68)}, // 277 65667 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8342), Fbprops: Tuint16_t(106)}, // 278 65668 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(68)}, // 279 65669 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 280 65670 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 281 65671 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(150), Fbprops: Tuint16_t(106)}, // 282 65672 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(108), Fbprops: Tuint16_t(134)}, // 283 65673 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(124)}, // 284 65674 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(159), Fbprops: Tuint16_t(124)}, // 285 65675 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(82)}, // 286 65676 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(165), Fbprops: Tuint16_t(136)}, // 287 65677 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26660), Fbprops: Tuint16_t(128)}, // 288 65678 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26660), Fbprops: Tuint16_t(130)}, // 289 65679 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(128)}, // 290 65680 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 291 65681 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(2159), Fbprops: Tuint16_t(138)}, // 292 65682 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(2048), Fbprops: Tuint16_t(68)}, // 293 65683 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(140)}, // 294 65684 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(30), Fbprops: Tuint16_t(124)}, // 295 65685 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(92)}, // 296 65686 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(10240), Fbprops: Tuint16_t(138)}, // 297 65687 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(68)}, // 298 65688 {Fscript: Tuint8_t(4), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(124)}, // 299 65689 {Fscript: Tuint8_t(4), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(106)}, // 300 65690 {Fscript: Tuint8_t(4), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(68)}, // 301 65691 {Fscript: Tuint8_t(68), Fchartype: Tuint8_t(2), Fgbprop: Tuint8_t(12)}, // 302 65692 {Fscript: Tuint8_t(4), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(4), Fbprops: Tuint16_t(132)}, // 303 65693 {Fscript: Tuint8_t(4), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(82)}, // 304 65694 {Fscript: Tuint8_t(4), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 305 65695 {Fscript: Tuint8_t(4), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(128)}, // 306 65696 {Fscript: Tuint8_t(4), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 307 65697 {Fscript: Tuint8_t(5), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(82)}, // 308 65698 {Fscript: Tuint8_t(5), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(128)}, // 309 65699 {Fscript: Tuint8_t(38), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(138)}, // 310 65700 {Fscript: Tuint8_t(38), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 311 65701 {Fscript: Tuint8_t(38), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 312 65702 {Fscript: Tuint8_t(38), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(92)}, // 313 65703 {Fscript: Tuint8_t(38), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 314 65704 {Fscript: Tuint8_t(38), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 315 65705 {Fscript: Tuint8_t(38), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(106)}, // 316 65706 {Fscript: Tuint8_t(38), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(124)}, // 317 65707 {Fscript: Tuint8_t(38), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(136)}, // 318 65708 {Fscript: Tuint8_t(38), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 319 65709 {Fscript: Tuint8_t(38), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 320 65710 {Fscript: Tuint8_t(110), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 321 65711 {Fscript: Tuint8_t(110), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 322 65712 {Fscript: Tuint8_t(110), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 323 65713 {Fscript: Tuint8_t(110), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(142)}, // 324 65714 {Fscript: Tuint8_t(110), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 325 65715 {Fscript: Tuint8_t(110), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(106)}, // 326 65716 {Fscript: Tuint8_t(110), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(124)}, // 327 65717 {Fscript: Tuint8_t(42), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 328 65718 {Fscript: Tuint8_t(42), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 329 65719 {Fscript: Tuint8_t(42), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(106)}, // 330 65720 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(24), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(122)}, // 331 65721 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 332 65722 {Fscript: Tuint8_t(6), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 333 65723 {Fscript: Tuint8_t(6), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 334 65724 {Fscript: Tuint8_t(6), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 335 65725 {Fscript: Tuint8_t(6), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 336 65726 {Fscript: Tuint8_t(6), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 337 65727 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26798), Fbprops: Tuint16_t(96)}, // 338 65728 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26795), Fbprops: Tuint16_t(96)}, // 339 65729 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18615), Fbprops: Tuint16_t(124)}, // 340 65730 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18618), Fbprops: Tuint16_t(124)}, // 341 65731 {Fscript: Tuint8_t(6), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18576), Fbprops: Tuint16_t(138)}, // 342 65732 {Fscript: Tuint8_t(6), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 343 65733 {Fscript: Tuint8_t(6), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(92)}, // 344 65734 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 345 65735 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 346 65736 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 347 65737 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 348 65738 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(148)}, // 349 65739 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 350 65740 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18546), Fbprops: Tuint16_t(138)}, // 351 65741 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(68)}, // 352 65742 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 353 65743 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 354 65744 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 355 65745 {Fscript: Tuint8_t(7), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 356 65746 {Fscript: Tuint8_t(8), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 357 65747 {Fscript: Tuint8_t(8), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 358 65748 {Fscript: Tuint8_t(8), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 359 65749 {Fscript: Tuint8_t(8), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 360 65750 {Fscript: Tuint8_t(8), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 361 65751 {Fscript: Tuint8_t(8), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18519), Fbprops: Tuint16_t(138)}, // 362 65752 {Fscript: Tuint8_t(8), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 363 65753 {Fscript: Tuint8_t(9), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 364 65754 {Fscript: Tuint8_t(9), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 365 65755 {Fscript: Tuint8_t(9), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 366 65756 {Fscript: Tuint8_t(9), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 367 65757 {Fscript: Tuint8_t(9), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 368 65758 {Fscript: Tuint8_t(9), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18516), Fbprops: Tuint16_t(138)}, // 369 65759 {Fscript: Tuint8_t(9), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 370 65760 {Fscript: Tuint8_t(9), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(68)}, // 371 65761 {Fscript: Tuint8_t(10), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 372 65762 {Fscript: Tuint8_t(10), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 373 65763 {Fscript: Tuint8_t(10), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 374 65764 {Fscript: Tuint8_t(10), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 375 65765 {Fscript: Tuint8_t(10), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(148)}, // 376 65766 {Fscript: Tuint8_t(10), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 377 65767 {Fscript: Tuint8_t(10), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(150)}, // 378 65768 {Fscript: Tuint8_t(10), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 379 65769 {Fscript: Tuint8_t(10), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 380 65770 {Fscript: Tuint8_t(10), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 381 65771 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 382 65772 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 383 65773 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(148)}, // 384 65774 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 385 65775 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 386 65776 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18513), Fbprops: Tuint16_t(138)}, // 387 65777 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18513), Fbprops: Tuint16_t(68)}, // 388 65778 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28753), Fbprops: Tuint16_t(68)}, // 389 65779 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 390 65780 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(68)}, // 391 65781 {Fscript: Tuint8_t(12), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 392 65782 {Fscript: Tuint8_t(12), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 393 65783 {Fscript: Tuint8_t(12), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 394 65784 {Fscript: Tuint8_t(12), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 395 65785 {Fscript: Tuint8_t(12), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 396 65786 {Fscript: Tuint8_t(12), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 397 65787 {Fscript: Tuint8_t(12), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 398 65788 {Fscript: Tuint8_t(12), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 399 65789 {Fscript: Tuint8_t(12), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 400 65790 {Fscript: Tuint8_t(12), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 401 65791 {Fscript: Tuint8_t(13), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 402 65792 {Fscript: Tuint8_t(13), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 403 65793 {Fscript: Tuint8_t(13), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 404 65794 {Fscript: Tuint8_t(13), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 405 65795 {Fscript: Tuint8_t(13), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 406 65796 {Fscript: Tuint8_t(13), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(130)}, // 407 65797 {Fscript: Tuint8_t(13), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(148)}, // 408 65798 {Fscript: Tuint8_t(13), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 409 65799 {Fscript: Tuint8_t(13), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18528), Fbprops: Tuint16_t(138)}, // 410 65800 {Fscript: Tuint8_t(14), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 411 65801 {Fscript: Tuint8_t(14), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 412 65802 {Fscript: Tuint8_t(14), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 413 65803 {Fscript: Tuint8_t(14), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 414 65804 {Fscript: Tuint8_t(14), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(148)}, // 415 65805 {Fscript: Tuint8_t(14), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(4), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 416 65806 {Fscript: Tuint8_t(14), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 417 65807 {Fscript: Tuint8_t(14), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 418 65808 {Fscript: Tuint8_t(14), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 419 65809 {Fscript: Tuint8_t(15), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 420 65810 {Fscript: Tuint8_t(15), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 421 65811 {Fscript: Tuint8_t(15), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 422 65812 {Fscript: Tuint8_t(15), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 423 65813 {Fscript: Tuint8_t(15), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(148)}, // 424 65814 {Fscript: Tuint8_t(15), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 425 65815 {Fscript: Tuint8_t(15), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 426 65816 {Fscript: Tuint8_t(72), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 427 65817 {Fscript: Tuint8_t(72), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 428 65818 {Fscript: Tuint8_t(72), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(152)}, // 429 65819 {Fscript: Tuint8_t(72), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(154)}, // 430 65820 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(68)}, // 431 65821 {Fscript: Tuint8_t(72), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(156)}, // 432 65822 {Fscript: Tuint8_t(72), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 433 65823 {Fscript: Tuint8_t(72), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 434 65824 {Fscript: Tuint8_t(72), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 435 65825 {Fscript: Tuint8_t(72), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 436 65826 {Fscript: Tuint8_t(72), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 437 65827 {Fscript: Tuint8_t(73), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 438 65828 {Fscript: Tuint8_t(73), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 439 65829 {Fscript: Tuint8_t(73), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(152)}, // 440 65830 {Fscript: Tuint8_t(73), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 441 65831 {Fscript: Tuint8_t(73), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(156)}, // 442 65832 {Fscript: Tuint8_t(73), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 443 65833 {Fscript: Tuint8_t(73), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 444 65834 {Fscript: Tuint8_t(73), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 445 65835 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 446 65836 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 447 65837 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 448 65838 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 449 65839 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 450 65840 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 451 65841 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 452 65842 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(158)}, // 453 65843 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(158)}, // 454 65844 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(160)}, // 455 65845 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 456 65846 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(162)}, // 457 65847 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 458 65848 {Fscript: Tuint8_t(74), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 459 65849 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 460 65850 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 461 65851 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 462 65852 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 463 65853 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 464 65854 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 465 65855 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 466 65856 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18549), Fbprops: Tuint16_t(138)}, // 467 65857 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 468 65858 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 469 65859 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(164)}, // 470 65860 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(128)}, // 471 65861 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 472 65862 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 473 65863 {Fscript: Tuint8_t(17), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 7264, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 474 65864 {Fscript: Tuint8_t(17), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 3008, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(166)}, // 475 65865 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18510), Fbprops: Tuint16_t(68)}, // 476 65866 {Fscript: Tuint8_t(17), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(142)}, // 477 65867 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(6), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 478 65868 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(6), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(168)}, // 479 65869 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(7), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(168)}, // 480 65870 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(7), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 481 65871 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(8), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 482 65872 {Fscript: Tuint8_t(75), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 483 65873 {Fscript: Tuint8_t(75), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 484 65874 {Fscript: Tuint8_t(75), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 485 65875 {Fscript: Tuint8_t(75), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 486 65876 {Fscript: Tuint8_t(75), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 487 65877 {Fscript: Tuint8_t(75), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 488 65878 {Fscript: Tuint8_t(75), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 489 65879 {Fscript: Tuint8_t(75), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 490 65880 {Fscript: Tuint8_t(76), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 38864, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(170)}, // 491 65881 {Fscript: Tuint8_t(76), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 8, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(170)}, // 492 65882 {Fscript: Tuint8_t(76), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -8, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 493 65883 {Fscript: Tuint8_t(77), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(126)}, // 494 65884 {Fscript: Tuint8_t(77), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 495 65885 {Fscript: Tuint8_t(77), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 496 65886 {Fscript: Tuint8_t(77), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 497 65887 {Fscript: Tuint8_t(78), Fchartype: Tuint8_t(29), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(45056), Fbprops: Tuint16_t(52)}, // 498 65888 {Fscript: Tuint8_t(78), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 499 65889 {Fscript: Tuint8_t(78), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(158)}, // 500 65890 {Fscript: Tuint8_t(78), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(158)}, // 501 65891 {Fscript: Tuint8_t(79), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 502 65892 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 503 65893 {Fscript: Tuint8_t(79), Fchartype: Tuint8_t(14), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 504 65894 {Fscript: Tuint8_t(25), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 505 65895 {Fscript: Tuint8_t(25), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 506 65896 {Fscript: Tuint8_t(25), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 507 65897 {Fscript: Tuint8_t(25), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(172)}, // 508 65898 {Fscript: Tuint8_t(26), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 509 65899 {Fscript: Tuint8_t(26), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 510 65900 {Fscript: Tuint8_t(26), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(174)}, // 511 65901 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18573), Fbprops: Tuint16_t(124)}, // 512 65902 {Fscript: Tuint8_t(27), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 513 65903 {Fscript: Tuint8_t(27), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 514 65904 {Fscript: Tuint8_t(28), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 515 65905 {Fscript: Tuint8_t(28), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 516 65906 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 517 65907 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(140)}, // 518 65908 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(100)}, // 519 65909 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 520 65910 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 521 65911 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 522 65912 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 523 65913 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 524 65914 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(142)}, // 525 65915 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 526 65916 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(68)}, // 527 65917 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 528 65918 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 529 65919 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 530 65920 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28777), Fbprops: Tuint16_t(106)}, // 531 65921 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28777), Fbprops: Tuint16_t(124)}, // 532 65922 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(106)}, // 533 65923 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(126)}, // 534 65924 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(124)}, // 535 65925 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(176)}, // 536 65926 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(178)}, // 537 65927 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(6144), Fbprops: Tuint16_t(66)}, // 538 65928 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 539 65929 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 540 65930 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 541 65931 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(180)}, // 542 65932 {Fscript: Tuint8_t(19), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 543 65933 {Fscript: Tuint8_t(29), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 544 65934 {Fscript: Tuint8_t(29), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 545 65935 {Fscript: Tuint8_t(29), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 546 65936 {Fscript: Tuint8_t(29), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 547 65937 {Fscript: Tuint8_t(29), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 548 65938 {Fscript: Tuint8_t(29), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(124)}, // 549 65939 {Fscript: Tuint8_t(29), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 550 65940 {Fscript: Tuint8_t(30), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 551 65941 {Fscript: Tuint8_t(89), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 552 65942 {Fscript: Tuint8_t(89), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(156)}, // 553 65943 {Fscript: Tuint8_t(89), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 554 65944 {Fscript: Tuint8_t(89), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 555 65945 {Fscript: Tuint8_t(89), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 556 65946 {Fscript: Tuint8_t(80), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 557 65947 {Fscript: Tuint8_t(33), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 558 65948 {Fscript: Tuint8_t(33), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 559 65949 {Fscript: Tuint8_t(33), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 560 65950 {Fscript: Tuint8_t(33), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 561 65951 {Fscript: Tuint8_t(106), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 562 65952 {Fscript: Tuint8_t(106), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 563 65953 {Fscript: Tuint8_t(106), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 564 65954 {Fscript: Tuint8_t(106), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(182)}, // 565 65955 {Fscript: Tuint8_t(106), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 566 65956 {Fscript: Tuint8_t(106), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 567 65957 {Fscript: Tuint8_t(106), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 568 65958 {Fscript: Tuint8_t(106), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 569 65959 {Fscript: Tuint8_t(106), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 570 65960 {Fscript: Tuint8_t(106), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 571 65961 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(11), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(184)}, // 572 65962 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 573 65963 {Fscript: Tuint8_t(93), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 574 65964 {Fscript: Tuint8_t(93), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 575 65965 {Fscript: Tuint8_t(93), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 576 65966 {Fscript: Tuint8_t(93), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 577 65967 {Fscript: Tuint8_t(93), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(148)}, // 578 65968 {Fscript: Tuint8_t(93), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(172)}, // 579 65969 {Fscript: Tuint8_t(93), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 580 65970 {Fscript: Tuint8_t(93), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 581 65971 {Fscript: Tuint8_t(93), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 582 65972 {Fscript: Tuint8_t(93), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 583 65973 {Fscript: Tuint8_t(93), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 584 65974 {Fscript: Tuint8_t(96), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 585 65975 {Fscript: Tuint8_t(96), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 586 65976 {Fscript: Tuint8_t(96), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 587 65977 {Fscript: Tuint8_t(96), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(172)}, // 588 65978 {Fscript: Tuint8_t(96), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 589 65979 {Fscript: Tuint8_t(96), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 590 65980 {Fscript: Tuint8_t(119), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 591 65981 {Fscript: Tuint8_t(119), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 592 65982 {Fscript: Tuint8_t(119), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 593 65983 {Fscript: Tuint8_t(119), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 594 65984 {Fscript: Tuint8_t(119), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(174)}, // 595 65985 {Fscript: Tuint8_t(119), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 596 65986 {Fscript: Tuint8_t(97), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 597 65987 {Fscript: Tuint8_t(97), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 598 65988 {Fscript: Tuint8_t(97), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 599 65989 {Fscript: Tuint8_t(97), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(186)}, // 600 65990 {Fscript: Tuint8_t(97), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 601 65991 {Fscript: Tuint8_t(97), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 602 65992 {Fscript: Tuint8_t(97), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 603 65993 {Fscript: Tuint8_t(97), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 604 65994 {Fscript: Tuint8_t(98), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 605 65995 {Fscript: Tuint8_t(98), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 606 65996 {Fscript: Tuint8_t(98), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(92)}, // 607 65997 {Fscript: Tuint8_t(98), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(94)}, // 608 65998 {Fscript: Tuint8_t(98), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 609 65999 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(63), Fother_case: -6222, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 610 66000 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(67), Fother_case: -6221, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 611 66001 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(71), Fother_case: -6212, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 612 66002 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(75), Fother_case: -6210, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 613 66003 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(79), Fother_case: -6210, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 614 66004 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(79), Fother_case: -6211, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 615 66005 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(84), Fother_case: -6204, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 616 66006 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(88), Fother_case: -6180, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 617 66007 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(108), Fother_case: 35267, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 618 66008 {Fscript: Tuint8_t(17), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -3008, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 619 66009 {Fscript: Tuint8_t(96), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 620 66010 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26762), Fbprops: Tuint16_t(96)}, // 621 66011 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26630), Fbprops: Tuint16_t(96)}, // 622 66012 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18498), Fbprops: Tuint16_t(188)}, // 623 66013 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26666), Fbprops: Tuint16_t(96)}, // 624 66014 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26696), Fbprops: Tuint16_t(96)}, // 625 66015 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26780), Fbprops: Tuint16_t(96)}, // 626 66016 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18474), Fbprops: Tuint16_t(160)}, // 627 66017 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18501), Fbprops: Tuint16_t(82)}, // 628 66018 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18474), Fbprops: Tuint16_t(82)}, // 629 66019 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18438), Fbprops: Tuint16_t(82)}, // 630 66020 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18594), Fbprops: Tuint16_t(82)}, // 631 66021 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18498), Fbprops: Tuint16_t(82)}, // 632 66022 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26750), Fbprops: Tuint16_t(96)}, // 633 66023 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18435), Fbprops: Tuint16_t(160)}, // 634 66024 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26690), Fbprops: Tuint16_t(96)}, // 635 66025 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18453), Fbprops: Tuint16_t(82)}, // 636 66026 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(60)}, // 637 66027 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(88)}, // 638 66028 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(190)}, // 639 66029 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 35332, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 640 66030 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 3814, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 641 66031 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 35384, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 642 66032 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(192)}, // 643 66033 {Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(190)}, // 644 66034 {Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(194)}, // 645 66035 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(190)}, // 646 66036 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26636), Fbprops: Tuint16_t(102)}, // 647 66037 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26687), Fbprops: Tuint16_t(96)}, // 648 66038 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26648), Fbprops: Tuint16_t(96)}, // 649 66039 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(92), Fother_case: 1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 650 66040 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(92), Fother_case: -1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 651 66041 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 652 66042 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(92), Fother_case: -58, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 653 66043 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -7615, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 654 66044 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 8, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 655 66045 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -8, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 656 66046 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 74, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 657 66047 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 86, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 658 66048 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 100, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 659 66049 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 128, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 660 66050 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 112, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 661 66051 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 126, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 662 66052 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 8, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 663 66053 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(8), Fgbprop: Tuint8_t(12), Fother_case: -8, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(86)}, // 664 66054 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 665 66055 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 9, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 666 66056 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -74, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 667 66057 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(8), Fgbprop: Tuint8_t(12), Fother_case: -9, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(86)}, // 668 66058 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(21), Fother_case: -7173, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 669 66059 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -86, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 670 66060 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -100, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 671 66061 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -112, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 672 66062 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -128, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 673 66063 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -126, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 674 66064 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(29), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(45056), Fbprops: Tuint16_t(52)}, // 675 66065 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(6144), Fbprops: Tuint16_t(196)}, // 676 66066 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(13), Fscriptx_bidiclass: Tuint16_t(6144), Fbprops: Tuint16_t(198)}, // 677 66067 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(200)}, // 678 66068 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(200)}, // 679 66069 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(202)}, // 680 66070 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(64)}, // 681 66071 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(20), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(204)}, // 682 66072 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(19), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(204)}, // 683 66073 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(206)}, // 684 66074 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(20), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(206)}, // 685 66075 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(19), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(206)}, // 686 66076 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(208)}, // 687 66077 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(27), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(45056), Fbprops: Tuint16_t(50)}, // 688 66078 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(28), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(4096), Fbprops: Tuint16_t(50)}, // 689 66079 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(20480), Fbprops: Tuint16_t(134)}, // 690 66080 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(36864), Fbprops: Tuint16_t(134)}, // 691 66081 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(30720), Fbprops: Tuint16_t(134)}, // 692 66082 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(24576), Fbprops: Tuint16_t(134)}, // 693 66083 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(40960), Fbprops: Tuint16_t(134)}, // 694 66084 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(29), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8291), Fbprops: Tuint16_t(52)}, // 695 66085 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(54)}, // 696 66086 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(64)}, // 697 66087 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(210)}, // 698 66088 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(212)}, // 699 66089 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(16), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(138)}, // 700 66090 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(16), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(214)}, // 701 66091 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8192), Fbprops: Tuint16_t(64)}, // 702 66092 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(216)}, // 703 66093 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(216)}, // 704 66094 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(202)}, // 705 66095 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(6144), Fbprops: Tuint16_t(218)}, // 706 66096 {Fscript: Tuint8_t(68), Fchartype: Tuint8_t(2), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(6144), Fbprops: Tuint16_t(220)}, // 707 66097 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(22528), Fbprops: Tuint16_t(134)}, // 708 66098 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(38912), Fbprops: Tuint16_t(134)}, // 709 66099 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(16384), Fbprops: Tuint16_t(134)}, // 710 66100 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(32768), Fbprops: Tuint16_t(134)}, // 711 66101 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(6144), Fbprops: Tuint16_t(222)}, // 712 66102 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(12288), Fbprops: Tuint16_t(118)}, // 713 66103 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(12288), Fbprops: Tuint16_t(224)}, // 714 66104 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(118)}, // 715 66105 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(226)}, // 716 66106 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(226)}, // 717 66107 {Fscript: Tuint8_t(68), Fchartype: Tuint8_t(2), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336)}, // 718 66108 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(228)}, // 719 66109 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(11), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(120)}, // 720 66110 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(11), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(230)}, // 721 66111 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26753), Fbprops: Tuint16_t(102)}, // 722 66112 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 723 66113 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(112)}, // 724 66114 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(232)}, // 725 66115 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(234)}, // 726 66116 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(236)}, // 727 66117 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(96), Fother_case: -7517, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 728 66118 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(118)}, // 729 66119 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(100), Fother_case: -8383, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 730 66120 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(104), Fother_case: -8262, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 731 66121 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(238)}, // 732 66122 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 28, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 733 66123 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(240)}, // 734 66124 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(242)}, // 735 66125 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(244)}, // 736 66126 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -28, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 737 66127 {Fchartype: Tuint8_t(14), Fgbprop: Tuint8_t(12), Fother_case: 16, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 738 66128 {Fchartype: Tuint8_t(14), Fgbprop: Tuint8_t(12), Fother_case: -16, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 739 66129 {Fchartype: Tuint8_t(14), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 740 66130 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(246)}, // 741 66131 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(246)}, // 742 66132 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(64)}, // 743 66133 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(248)}, // 744 66134 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(12288), Fbprops: Tuint16_t(250)}, // 745 66135 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(248)}, // 746 66136 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(248)}, // 747 66137 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(252)}, // 748 66138 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(254)}, // 749 66139 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(254)}, // 750 66140 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(54)}, // 751 66141 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(256)}, // 752 66142 {Fscript: Tuint8_t(68), Fchartype: Tuint8_t(2), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(258)}, // 753 66143 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fother_case: 26, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(260)}, // 754 66144 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fother_case: 26, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(262)}, // 755 66145 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fother_case: -26, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(264)}, // 756 66146 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(266)}, // 757 66147 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(268)}, // 758 66148 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(270)}, // 759 66149 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(268)}, // 760 66150 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(256)}, // 761 66151 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(272)}, // 762 66152 {Fscript: Tuint8_t(88), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(54)}, // 763 66153 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(216)}, // 764 66154 {Fscript: Tuint8_t(35), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 48, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 765 66155 {Fscript: Tuint8_t(35), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -48, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 766 66156 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -10743, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 767 66157 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -3814, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 768 66158 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -10727, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 769 66159 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -10795, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 770 66160 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -10792, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 771 66161 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -10780, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 772 66162 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -10749, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 773 66163 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -10783, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 774 66164 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -10782, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 775 66165 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -10815, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 776 66166 {Fscript: Tuint8_t(34), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(60)}, // 777 66167 {Fscript: Tuint8_t(34), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 778 66168 {Fscript: Tuint8_t(34), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 779 66169 {Fscript: Tuint8_t(34), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 780 66170 {Fscript: Tuint8_t(34), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 781 66171 {Fscript: Tuint8_t(17), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -7264, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 782 66172 {Fscript: Tuint8_t(90), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 783 66173 {Fscript: Tuint8_t(90), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(142)}, // 784 66174 {Fscript: Tuint8_t(90), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 785 66175 {Fscript: Tuint8_t(90), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(182)}, // 786 66176 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 787 66177 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(20), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(216)}, // 788 66178 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(19), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(216)}, // 789 66179 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(274)}, // 790 66180 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(276)}, // 791 66181 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28726), Fbprops: Tuint16_t(54)}, // 792 66182 {Fscript: Tuint8_t(23), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(278)}, // 793 66183 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(280)}, // 794 66184 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(282)}, // 795 66185 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28825), Fbprops: Tuint16_t(276)}, // 796 66186 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28825), Fbprops: Tuint16_t(212)}, // 797 66187 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28819), Fbprops: Tuint16_t(54)}, // 798 66188 {Fscript: Tuint8_t(23), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 799 66189 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18447), Fbprops: Tuint16_t(284)}, // 800 66190 {Fscript: Tuint8_t(23), Fchartype: Tuint8_t(14), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(284)}, // 801 66191 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28825), Fbprops: Tuint16_t(216)}, // 802 66192 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28825), Fbprops: Tuint16_t(216)}, // 803 66193 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28825), Fbprops: Tuint16_t(62)}, // 804 66194 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28825), Fbprops: Tuint16_t(62)}, // 805 66195 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28819), Fbprops: Tuint16_t(54)}, // 806 66196 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28819), Fbprops: Tuint16_t(202)}, // 807 66197 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28819), Fbprops: Tuint16_t(206)}, // 808 66198 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28819), Fbprops: Tuint16_t(206)}, // 809 66199 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26669), Fbprops: Tuint16_t(96)}, // 810 66200 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(286)}, // 811 66201 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28819), Fbprops: Tuint16_t(288)}, // 812 66202 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18525), Fbprops: Tuint16_t(136)}, // 813 66203 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28819), Fbprops: Tuint16_t(68)}, // 814 66204 {Fscript: Tuint8_t(23), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(142)}, // 815 66205 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18564), Fbprops: Tuint16_t(82)}, // 816 66206 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28804), Fbprops: Tuint16_t(236)}, // 817 66207 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28687), Fbprops: Tuint16_t(68)}, // 818 66208 {Fscript: Tuint8_t(20), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 819 66209 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26717), Fbprops: Tuint16_t(96)}, // 820 66210 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(24), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28765), Fbprops: Tuint16_t(290)}, // 821 66211 {Fscript: Tuint8_t(20), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 822 66212 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28765), Fbprops: Tuint16_t(126)}, // 823 66213 {Fscript: Tuint8_t(21), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 824 66214 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28825), Fbprops: Tuint16_t(68)}, // 825 66215 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18525), Fbprops: Tuint16_t(94)}, // 826 66216 {Fscript: Tuint8_t(21), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 827 66217 {Fscript: Tuint8_t(22), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 828 66218 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 829 66219 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(168)}, // 830 66220 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18447), Fbprops: Tuint16_t(68)}, // 831 66221 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18447), Fbprops: Tuint16_t(68)}, // 832 66222 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 833 66223 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 834 66224 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 835 66225 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(18447), Fbprops: Tuint16_t(236)}, // 836 66226 {Fscript: Tuint8_t(21), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 837 66227 {Fscript: Tuint8_t(23), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(292)}, // 838 66228 {Fscript: Tuint8_t(24), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 839 66229 {Fscript: Tuint8_t(24), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 840 66230 {Fscript: Tuint8_t(24), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 841 66231 {Fscript: Tuint8_t(111), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 842 66232 {Fscript: Tuint8_t(111), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(142)}, // 843 66233 {Fscript: Tuint8_t(111), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 844 66234 {Fscript: Tuint8_t(111), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 845 66235 {Fscript: Tuint8_t(99), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 846 66236 {Fscript: Tuint8_t(99), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 847 66237 {Fscript: Tuint8_t(99), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(106)}, // 848 66238 {Fscript: Tuint8_t(99), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(124)}, // 849 66239 {Fscript: Tuint8_t(99), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 850 66240 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(108), Fother_case: 1, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 851 66241 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fcaseset: Tuint8_t(108), Fother_case: -35267, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 852 66242 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 853 66243 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 854 66244 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 855 66245 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(92)}, // 856 66246 {Fscript: Tuint8_t(2), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(88)}, // 857 66247 {Fscript: Tuint8_t(112), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 858 66248 {Fscript: Tuint8_t(112), Fchartype: Tuint8_t(14), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 859 66249 {Fscript: Tuint8_t(112), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 860 66250 {Fscript: Tuint8_t(112), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 861 66251 {Fscript: Tuint8_t(112), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 862 66252 {Fscript: Tuint8_t(112), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 863 66253 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(24), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28762), Fbprops: Tuint16_t(56)}, // 864 66254 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -35332, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 865 66255 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(24), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(56)}, // 866 66256 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -42280, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 867 66257 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: 48, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 868 66258 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -42308, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 869 66259 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -42319, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 870 66260 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -42315, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 871 66261 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -42305, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 872 66262 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -42258, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 873 66263 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -42282, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 874 66264 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -42261, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 875 66265 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 928, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 876 66266 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -48, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 877 66267 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -42307, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 878 66268 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: -35384, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 879 66269 {Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(142)}, // 880 66270 {Fscript: Tuint8_t(36), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 881 66271 {Fscript: Tuint8_t(36), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 882 66272 {Fscript: Tuint8_t(36), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(182)}, // 883 66273 {Fscript: Tuint8_t(36), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 884 66274 {Fscript: Tuint8_t(36), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 885 66275 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18612), Fbprops: Tuint16_t(68)}, // 886 66276 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18609), Fbprops: Tuint16_t(68)}, // 887 66277 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18600), Fbprops: Tuint16_t(68)}, // 888 66278 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14504), Fbprops: Tuint16_t(68)}, // 889 66279 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14504), Fbprops: Tuint16_t(68)}, // 890 66280 {Fscript: Tuint8_t(37), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 891 66281 {Fscript: Tuint8_t(37), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 892 66282 {Fscript: Tuint8_t(37), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(124)}, // 893 66283 {Fscript: Tuint8_t(100), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 894 66284 {Fscript: Tuint8_t(100), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 895 66285 {Fscript: Tuint8_t(100), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 896 66286 {Fscript: Tuint8_t(100), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 897 66287 {Fscript: Tuint8_t(100), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 898 66288 {Fscript: Tuint8_t(100), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 899 66289 {Fscript: Tuint8_t(6), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26666), Fbprops: Tuint16_t(96)}, // 900 66290 {Fscript: Tuint8_t(6), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18507), Fbprops: Tuint16_t(82)}, // 901 66291 {Fscript: Tuint8_t(39), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 902 66292 {Fscript: Tuint8_t(39), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 903 66293 {Fscript: Tuint8_t(39), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 904 66294 {Fscript: Tuint8_t(39), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 905 66295 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18567), Fbprops: Tuint16_t(188)}, // 906 66296 {Fscript: Tuint8_t(39), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 907 66297 {Fscript: Tuint8_t(101), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 908 66298 {Fscript: Tuint8_t(101), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 909 66299 {Fscript: Tuint8_t(101), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 910 66300 {Fscript: Tuint8_t(101), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(172)}, // 911 66301 {Fscript: Tuint8_t(101), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 912 66302 {Fscript: Tuint8_t(40), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 913 66303 {Fscript: Tuint8_t(40), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 914 66304 {Fscript: Tuint8_t(40), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 915 66305 {Fscript: Tuint8_t(40), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 916 66306 {Fscript: Tuint8_t(40), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(172)}, // 917 66307 {Fscript: Tuint8_t(40), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 918 66308 {Fscript: Tuint8_t(40), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 919 66309 {Fscript: Tuint8_t(40), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 920 66310 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18480), Fbprops: Tuint16_t(136)}, // 921 66311 {Fscript: Tuint8_t(40), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 922 66312 {Fscript: Tuint8_t(16), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 923 66313 {Fscript: Tuint8_t(105), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 924 66314 {Fscript: Tuint8_t(105), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 925 66315 {Fscript: Tuint8_t(105), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 926 66316 {Fscript: Tuint8_t(105), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 927 66317 {Fscript: Tuint8_t(105), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 928 66318 {Fscript: Tuint8_t(105), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 929 66319 {Fscript: Tuint8_t(107), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 930 66320 {Fscript: Tuint8_t(107), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 931 66321 {Fscript: Tuint8_t(107), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(156)}, // 932 66322 {Fscript: Tuint8_t(107), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 933 66323 {Fscript: Tuint8_t(107), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(294)}, // 934 66324 {Fscript: Tuint8_t(107), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 935 66325 {Fscript: Tuint8_t(107), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 936 66326 {Fscript: Tuint8_t(107), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 937 66327 {Fscript: Tuint8_t(113), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 938 66328 {Fscript: Tuint8_t(113), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 939 66329 {Fscript: Tuint8_t(113), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 940 66330 {Fscript: Tuint8_t(113), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 941 66331 {Fscript: Tuint8_t(113), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 942 66332 {Fscript: Tuint8_t(113), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 943 66333 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -928, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 944 66334 {Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(92)}, // 945 66335 {Fscript: Tuint8_t(76), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -38864, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(70)}, // 946 66336 {Fscript: Tuint8_t(113), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(160)}, // 947 66337 {Fscript: Tuint8_t(113), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 948 66338 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(9), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 949 66339 {Fscript: Tuint8_t(18), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(10), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 950 66340 {Fscript: Tuint8_t(68), Fchartype: Tuint8_t(4), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432)}, // 951 66341 {Fscript: Tuint8_t(68), Fchartype: Tuint8_t(3), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432)}, // 952 66342 {Fscript: Tuint8_t(23), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(284)}, // 953 66343 {Fscript: Tuint8_t(71), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(12288), Fbprops: Tuint16_t(118)}, // 954 66344 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(296)}, // 955 66345 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28705), Fbprops: Tuint16_t(54)}, // 956 66346 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28705), Fbprops: Tuint16_t(54)}, // 957 66347 {Fscript: Tuint8_t(68), Fchartype: Tuint8_t(2), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(6144), Fbprops: Tuint16_t(298)}, // 958 66348 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(39), Fbprops: Tuint16_t(82)}, // 959 66349 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28711), Fbprops: Tuint16_t(68)}, // 960 66350 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(178)}, // 961 66351 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(300)}, // 962 66352 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 963 66353 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(122)}, // 964 66354 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 965 66355 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 966 66356 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(126)}, // 967 66357 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(302)}, // 968 66358 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(302)}, // 969 66359 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8192), Fbprops: Tuint16_t(106)}, // 970 66360 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8192), Fbprops: Tuint16_t(304)}, // 971 66361 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8192), Fbprops: Tuint16_t(306)}, // 972 66362 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(124)}, // 973 66363 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(158)}, // 974 66364 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(158)}, // 975 66365 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(68)}, // 976 66366 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(118)}, // 977 66367 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(12288), Fbprops: Tuint16_t(224)}, // 978 66368 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(226)}, // 979 66369 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(302)}, // 980 66370 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(308)}, // 981 66371 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(12288), Fbprops: Tuint16_t(126)}, // 982 66372 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(8192), Fbprops: Tuint16_t(68)}, // 983 66373 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(10240), Fbprops: Tuint16_t(310)}, // 984 66374 {Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(312)}, // 985 66375 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(24), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(314)}, // 986 66376 {Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(316)}, // 987 66377 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28825), Fbprops: Tuint16_t(124)}, // 988 66378 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(22), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28825), Fbprops: Tuint16_t(318)}, // 989 66379 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(18), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28825), Fbprops: Tuint16_t(318)}, // 990 66380 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28825), Fbprops: Tuint16_t(106)}, // 991 66381 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18525), Fbprops: Tuint16_t(320)}, // 992 66382 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(322)}, // 993 66383 {Fscript: Tuint8_t(31), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 994 66384 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18552), Fbprops: Tuint16_t(68)}, // 995 66385 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28792), Fbprops: Tuint16_t(68)}, // 996 66386 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18483), Fbprops: Tuint16_t(68)}, // 997 66387 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18555), Fbprops: Tuint16_t(68)}, // 998 66388 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18483), Fbprops: Tuint16_t(68)}, // 999 66389 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(14), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(82)}, // 1000 66390 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 1001 66391 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 1002 66392 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1003 66393 {Fscript: Tuint8_t(102), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1004 66394 {Fscript: Tuint8_t(103), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1005 66395 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26651), Fbprops: Tuint16_t(96)}, // 1006 66396 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(10267), Fbprops: Tuint16_t(68)}, // 1007 66397 {Fscript: Tuint8_t(81), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1008 66398 {Fscript: Tuint8_t(81), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1009 66399 {Fscript: Tuint8_t(82), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1010 66400 {Fscript: Tuint8_t(82), Fchartype: Tuint8_t(14), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1011 66401 {Fscript: Tuint8_t(53), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1012 66402 {Fscript: Tuint8_t(53), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1013 66403 {Fscript: Tuint8_t(85), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1014 66404 {Fscript: Tuint8_t(85), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1015 66405 {Fscript: Tuint8_t(91), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1016 66406 {Fscript: Tuint8_t(91), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1017 66407 {Fscript: Tuint8_t(91), Fchartype: Tuint8_t(14), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1018 66408 {Fscript: Tuint8_t(83), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 40, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 1019 66409 {Fscript: Tuint8_t(83), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -40, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 1020 66410 {Fscript: Tuint8_t(86), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1021 66411 {Fscript: Tuint8_t(87), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1022 66412 {Fscript: Tuint8_t(87), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1023 66413 {Fscript: Tuint8_t(145), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 40, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 1024 66414 {Fscript: Tuint8_t(145), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -40, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 1025 66415 {Fscript: Tuint8_t(127), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1026 66416 {Fscript: Tuint8_t(125), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1027 66417 {Fscript: Tuint8_t(125), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1028 66418 {Fscript: Tuint8_t(161), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 39, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 1029 66419 {Fscript: Tuint8_t(161), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -39, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 1030 66420 {Fscript: Tuint8_t(49), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1031 66421 {Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(94)}, // 1032 66422 {Fscript: Tuint8_t(32), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1033 66423 {Fscript: Tuint8_t(114), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1034 66424 {Fscript: Tuint8_t(114), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(106)}, // 1035 66425 {Fscript: Tuint8_t(114), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1036 66426 {Fscript: Tuint8_t(133), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1037 66427 {Fscript: Tuint8_t(133), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1038 66428 {Fscript: Tuint8_t(133), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1039 66429 {Fscript: Tuint8_t(132), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1040 66430 {Fscript: Tuint8_t(132), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1041 66431 {Fscript: Tuint8_t(139), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1042 66432 {Fscript: Tuint8_t(139), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1043 66433 {Fscript: Tuint8_t(95), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1044 66434 {Fscript: Tuint8_t(95), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1045 66435 {Fscript: Tuint8_t(95), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(106)}, // 1046 66436 {Fscript: Tuint8_t(104), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1047 66437 {Fscript: Tuint8_t(104), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1048 66438 {Fscript: Tuint8_t(122), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1049 66439 {Fscript: Tuint8_t(121), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1050 66440 {Fscript: Tuint8_t(121), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1051 66441 {Fscript: Tuint8_t(92), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1052 66442 {Fscript: Tuint8_t(92), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1053 66443 {Fscript: Tuint8_t(92), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 1054 66444 {Fscript: Tuint8_t(92), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(182)}, // 1055 66445 {Fscript: Tuint8_t(92), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1056 66446 {Fscript: Tuint8_t(92), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1057 66447 {Fscript: Tuint8_t(92), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(124)}, // 1058 66448 {Fscript: Tuint8_t(115), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1059 66449 {Fscript: Tuint8_t(115), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1060 66450 {Fscript: Tuint8_t(115), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1061 66451 {Fscript: Tuint8_t(131), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1062 66452 {Fscript: Tuint8_t(131), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1063 66453 {Fscript: Tuint8_t(51), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1064 66454 {Fscript: Tuint8_t(51), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1065 66455 {Fscript: Tuint8_t(51), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1066 66456 {Fscript: Tuint8_t(51), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1067 66457 {Fscript: Tuint8_t(51), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(106)}, // 1068 66458 {Fscript: Tuint8_t(51), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34918), Fbprops: Tuint16_t(106)}, // 1069 66459 {Fscript: Tuint8_t(51), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1070 66460 {Fscript: Tuint8_t(108), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1071 66461 {Fscript: Tuint8_t(108), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 1072 66462 {Fscript: Tuint8_t(108), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(106)}, // 1073 66463 {Fscript: Tuint8_t(116), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1074 66464 {Fscript: Tuint8_t(116), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1075 66465 {Fscript: Tuint8_t(117), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1076 66466 {Fscript: Tuint8_t(117), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1077 66467 {Fscript: Tuint8_t(54), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1078 66468 {Fscript: Tuint8_t(54), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(106)}, // 1079 66469 {Fscript: Tuint8_t(54), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1080 66470 {Fscript: Tuint8_t(118), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1081 66471 {Fscript: Tuint8_t(140), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 64, Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(74)}, // 1082 66472 {Fscript: Tuint8_t(140), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -64, Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(76)}, // 1083 66473 {Fscript: Tuint8_t(140), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1084 66474 {Fscript: Tuint8_t(62), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(82)}, // 1085 66475 {Fscript: Tuint8_t(62), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(294)}, // 1086 66476 {Fscript: Tuint8_t(62), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(128)}, // 1087 66477 {Fscript: Tuint8_t(62), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(2048), Fbprops: Tuint16_t(138)}, // 1088 66478 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(2048), Fbprops: Tuint16_t(68)}, // 1089 66479 {Fscript: Tuint8_t(65), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1090 66480 {Fscript: Tuint8_t(65), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1091 66481 {Fscript: Tuint8_t(65), Fchartype: Tuint8_t(17), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(126)}, // 1092 66482 {Fscript: Tuint8_t(152), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1093 66483 {Fscript: Tuint8_t(152), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1094 66484 {Fscript: Tuint8_t(63), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(82)}, // 1095 66485 {Fscript: Tuint8_t(63), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1096 66486 {Fscript: Tuint8_t(63), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(68)}, // 1097 66487 {Fscript: Tuint8_t(63), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(124)}, // 1098 66488 {Fscript: Tuint8_t(67), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1099 66489 {Fscript: Tuint8_t(67), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1100 66490 {Fscript: Tuint8_t(67), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(124)}, // 1101 66491 {Fscript: Tuint8_t(156), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1102 66492 {Fscript: Tuint8_t(156), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1103 66493 {Fscript: Tuint8_t(153), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1104 66494 {Fscript: Tuint8_t(120), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1105 66495 {Fscript: Tuint8_t(120), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1106 66496 {Fscript: Tuint8_t(120), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1107 66497 {Fscript: Tuint8_t(120), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1108 66498 {Fscript: Tuint8_t(120), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1109 66499 {Fscript: Tuint8_t(120), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1110 66500 {Fscript: Tuint8_t(120), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 1111 66501 {Fscript: Tuint8_t(120), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1112 66502 {Fscript: Tuint8_t(120), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(182)}, // 1113 66503 {Fscript: Tuint8_t(41), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 1114 66504 {Fscript: Tuint8_t(41), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1115 66505 {Fscript: Tuint8_t(41), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1116 66506 {Fscript: Tuint8_t(41), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1117 66507 {Fscript: Tuint8_t(41), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1118 66508 {Fscript: Tuint8_t(41), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1119 66509 {Fscript: Tuint8_t(41), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1120 66510 {Fscript: Tuint8_t(41), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(4), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(132)}, // 1121 66511 {Fscript: Tuint8_t(41), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1122 66512 {Fscript: Tuint8_t(124), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1123 66513 {Fscript: Tuint8_t(124), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1124 66514 {Fscript: Tuint8_t(43), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1125 66515 {Fscript: Tuint8_t(43), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1126 66516 {Fscript: Tuint8_t(43), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1127 66517 {Fscript: Tuint8_t(43), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1128 66518 {Fscript: Tuint8_t(43), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1129 66519 {Fscript: Tuint8_t(43), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1130 66520 {Fscript: Tuint8_t(43), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1131 66521 {Fscript: Tuint8_t(50), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1132 66522 {Fscript: Tuint8_t(50), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1133 66523 {Fscript: Tuint8_t(50), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1134 66524 {Fscript: Tuint8_t(44), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1135 66525 {Fscript: Tuint8_t(44), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1136 66526 {Fscript: Tuint8_t(44), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1137 66527 {Fscript: Tuint8_t(44), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(172)}, // 1138 66528 {Fscript: Tuint8_t(44), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(4), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1139 66529 {Fscript: Tuint8_t(44), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1140 66530 {Fscript: Tuint8_t(44), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1141 66531 {Fscript: Tuint8_t(44), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 1142 66532 {Fscript: Tuint8_t(44), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1143 66533 {Fscript: Tuint8_t(44), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1144 66534 {Fscript: Tuint8_t(15), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1145 66535 {Fscript: Tuint8_t(48), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1146 66536 {Fscript: Tuint8_t(48), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1147 66537 {Fscript: Tuint8_t(48), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1148 66538 {Fscript: Tuint8_t(48), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(172)}, // 1149 66539 {Fscript: Tuint8_t(48), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1150 66540 {Fscript: Tuint8_t(48), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1151 66541 {Fscript: Tuint8_t(48), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1152 66542 {Fscript: Tuint8_t(48), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1153 66543 {Fscript: Tuint8_t(57), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1154 66544 {Fscript: Tuint8_t(57), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1155 66545 {Fscript: Tuint8_t(55), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1156 66546 {Fscript: Tuint8_t(55), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1157 66547 {Fscript: Tuint8_t(55), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1158 66548 {Fscript: Tuint8_t(55), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1159 66549 {Fscript: Tuint8_t(55), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1160 66550 {Fscript: Tuint8_t(55), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1161 66551 {Fscript: Tuint8_t(47), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1162 66552 {Fscript: Tuint8_t(47), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26705), Fbprops: Tuint16_t(130)}, // 1163 66553 {Fscript: Tuint8_t(47), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1164 66554 {Fscript: Tuint8_t(47), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18513), Fbprops: Tuint16_t(144)}, // 1165 66555 {Fscript: Tuint8_t(47), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1166 66556 {Fscript: Tuint8_t(84), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26705), Fbprops: Tuint16_t(102)}, // 1167 66557 {Fscript: Tuint8_t(47), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26705), Fbprops: Tuint16_t(96)}, // 1168 66558 {Fscript: Tuint8_t(47), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(148)}, // 1169 66559 {Fscript: Tuint8_t(47), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(172)}, // 1170 66560 {Fscript: Tuint8_t(47), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(324)}, // 1171 66561 {Fscript: Tuint8_t(47), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1172 66562 {Fscript: Tuint8_t(144), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1173 66563 {Fscript: Tuint8_t(144), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1174 66564 {Fscript: Tuint8_t(144), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1175 66565 {Fscript: Tuint8_t(144), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1176 66566 {Fscript: Tuint8_t(144), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1177 66567 {Fscript: Tuint8_t(144), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1178 66568 {Fscript: Tuint8_t(144), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1179 66569 {Fscript: Tuint8_t(144), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1180 66570 {Fscript: Tuint8_t(144), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1181 66571 {Fscript: Tuint8_t(144), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 1182 66572 {Fscript: Tuint8_t(56), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1183 66573 {Fscript: Tuint8_t(56), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(148)}, // 1184 66574 {Fscript: Tuint8_t(56), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1185 66575 {Fscript: Tuint8_t(56), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1186 66576 {Fscript: Tuint8_t(56), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1187 66577 {Fscript: Tuint8_t(56), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1188 66578 {Fscript: Tuint8_t(56), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1189 66579 {Fscript: Tuint8_t(56), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1190 66580 {Fscript: Tuint8_t(135), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1191 66581 {Fscript: Tuint8_t(135), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(148)}, // 1192 66582 {Fscript: Tuint8_t(135), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1193 66583 {Fscript: Tuint8_t(135), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1194 66584 {Fscript: Tuint8_t(135), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1195 66585 {Fscript: Tuint8_t(135), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1196 66586 {Fscript: Tuint8_t(135), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1197 66587 {Fscript: Tuint8_t(135), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1198 66588 {Fscript: Tuint8_t(135), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1199 66589 {Fscript: Tuint8_t(135), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(176)}, // 1200 66590 {Fscript: Tuint8_t(52), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1201 66591 {Fscript: Tuint8_t(52), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1202 66592 {Fscript: Tuint8_t(52), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1203 66593 {Fscript: Tuint8_t(52), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1204 66594 {Fscript: Tuint8_t(52), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1205 66595 {Fscript: Tuint8_t(52), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1206 66596 {Fscript: Tuint8_t(52), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1207 66597 {Fscript: Tuint8_t(45), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1208 66598 {Fscript: Tuint8_t(45), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1209 66599 {Fscript: Tuint8_t(45), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1210 66600 {Fscript: Tuint8_t(45), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(172)}, // 1211 66601 {Fscript: Tuint8_t(45), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1212 66602 {Fscript: Tuint8_t(45), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1213 66603 {Fscript: Tuint8_t(45), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1214 66604 {Fscript: Tuint8_t(137), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1215 66605 {Fscript: Tuint8_t(137), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1216 66606 {Fscript: Tuint8_t(137), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1217 66607 {Fscript: Tuint8_t(137), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1218 66608 {Fscript: Tuint8_t(137), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1219 66609 {Fscript: Tuint8_t(137), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1220 66610 {Fscript: Tuint8_t(137), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1221 66611 {Fscript: Tuint8_t(137), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1222 66612 {Fscript: Tuint8_t(137), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1223 66613 {Fscript: Tuint8_t(60), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1224 66614 {Fscript: Tuint8_t(60), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1225 66615 {Fscript: Tuint8_t(60), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1226 66616 {Fscript: Tuint8_t(60), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1227 66617 {Fscript: Tuint8_t(60), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1228 66618 {Fscript: Tuint8_t(60), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1229 66619 {Fscript: Tuint8_t(136), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 1230 66620 {Fscript: Tuint8_t(136), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 1231 66621 {Fscript: Tuint8_t(136), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1232 66622 {Fscript: Tuint8_t(136), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1233 66623 {Fscript: Tuint8_t(136), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1234 66624 {Fscript: Tuint8_t(157), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1235 66625 {Fscript: Tuint8_t(157), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(148)}, // 1236 66626 {Fscript: Tuint8_t(157), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1237 66627 {Fscript: Tuint8_t(157), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1238 66628 {Fscript: Tuint8_t(157), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(172)}, // 1239 66629 {Fscript: Tuint8_t(157), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1240 66630 {Fscript: Tuint8_t(157), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(4), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1241 66631 {Fscript: Tuint8_t(157), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1242 66632 {Fscript: Tuint8_t(157), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1243 66633 {Fscript: Tuint8_t(157), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1244 66634 {Fscript: Tuint8_t(157), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1245 66635 {Fscript: Tuint8_t(64), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1246 66636 {Fscript: Tuint8_t(64), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1247 66637 {Fscript: Tuint8_t(64), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1248 66638 {Fscript: Tuint8_t(64), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1249 66639 {Fscript: Tuint8_t(64), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1250 66640 {Fscript: Tuint8_t(149), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1251 66641 {Fscript: Tuint8_t(149), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1252 66642 {Fscript: Tuint8_t(149), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(130)}, // 1253 66643 {Fscript: Tuint8_t(149), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 1254 66644 {Fscript: Tuint8_t(149), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1255 66645 {Fscript: Tuint8_t(149), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1256 66646 {Fscript: Tuint8_t(149), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(4), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1257 66647 {Fscript: Tuint8_t(149), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1258 66648 {Fscript: Tuint8_t(149), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1259 66649 {Fscript: Tuint8_t(148), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1260 66650 {Fscript: Tuint8_t(148), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1261 66651 {Fscript: Tuint8_t(148), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1262 66652 {Fscript: Tuint8_t(148), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(4), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1263 66653 {Fscript: Tuint8_t(148), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(326)}, // 1264 66654 {Fscript: Tuint8_t(148), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1265 66655 {Fscript: Tuint8_t(148), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1266 66656 {Fscript: Tuint8_t(148), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1267 66657 {Fscript: Tuint8_t(148), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1268 66658 {Fscript: Tuint8_t(134), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1269 66659 {Fscript: Tuint8_t(142), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1270 66660 {Fscript: Tuint8_t(142), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1271 66661 {Fscript: Tuint8_t(142), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1272 66662 {Fscript: Tuint8_t(142), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(146)}, // 1273 66663 {Fscript: Tuint8_t(142), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1274 66664 {Fscript: Tuint8_t(142), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1275 66665 {Fscript: Tuint8_t(142), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1276 66666 {Fscript: Tuint8_t(142), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1277 66667 {Fscript: Tuint8_t(142), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1278 66668 {Fscript: Tuint8_t(143), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1279 66669 {Fscript: Tuint8_t(143), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1280 66670 {Fscript: Tuint8_t(143), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1281 66671 {Fscript: Tuint8_t(143), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1282 66672 {Fscript: Tuint8_t(143), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1283 66673 {Fscript: Tuint8_t(59), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1284 66674 {Fscript: Tuint8_t(59), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1285 66675 {Fscript: Tuint8_t(59), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1286 66676 {Fscript: Tuint8_t(59), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1287 66677 {Fscript: Tuint8_t(59), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(4), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1288 66678 {Fscript: Tuint8_t(59), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1289 66679 {Fscript: Tuint8_t(61), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1290 66680 {Fscript: Tuint8_t(61), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1291 66681 {Fscript: Tuint8_t(61), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1292 66682 {Fscript: Tuint8_t(61), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(146)}, // 1293 66683 {Fscript: Tuint8_t(61), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1294 66684 {Fscript: Tuint8_t(150), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1295 66685 {Fscript: Tuint8_t(150), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1296 66686 {Fscript: Tuint8_t(150), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1297 66687 {Fscript: Tuint8_t(150), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1298 66688 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1299 66689 {Fscript: Tuint8_t(11), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1300 66690 {Fscript: Tuint8_t(94), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1301 66691 {Fscript: Tuint8_t(94), Fchartype: Tuint8_t(14), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1302 66692 {Fscript: Tuint8_t(94), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1303 66693 {Fscript: Tuint8_t(66), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1304 66694 {Fscript: Tuint8_t(66), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1305 66695 {Fscript: Tuint8_t(109), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1306 66696 {Fscript: Tuint8_t(109), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(322)}, // 1307 66697 {Fscript: Tuint8_t(138), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1308 66698 {Fscript: Tuint8_t(130), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1309 66699 {Fscript: Tuint8_t(130), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1310 66700 {Fscript: Tuint8_t(130), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1311 66701 {Fscript: Tuint8_t(159), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1312 66702 {Fscript: Tuint8_t(159), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1313 66703 {Fscript: Tuint8_t(126), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1314 66704 {Fscript: Tuint8_t(126), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1315 66705 {Fscript: Tuint8_t(126), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1316 66706 {Fscript: Tuint8_t(128), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1317 66707 {Fscript: Tuint8_t(128), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1318 66708 {Fscript: Tuint8_t(128), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1319 66709 {Fscript: Tuint8_t(128), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1320 66710 {Fscript: Tuint8_t(128), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1321 66711 {Fscript: Tuint8_t(128), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1322 66712 {Fscript: Tuint8_t(128), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(142)}, // 1323 66713 {Fscript: Tuint8_t(128), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 1324 66714 {Fscript: Tuint8_t(128), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1325 66715 {Fscript: Tuint8_t(128), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1326 66716 {Fscript: Tuint8_t(151), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(74)}, // 1327 66717 {Fscript: Tuint8_t(151), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -32, Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(76)}, // 1328 66718 {Fscript: Tuint8_t(151), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1329 66719 {Fscript: Tuint8_t(151), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1330 66720 {Fscript: Tuint8_t(151), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1331 66721 {Fscript: Tuint8_t(151), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1332 66722 {Fscript: Tuint8_t(123), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1333 66723 {Fscript: Tuint8_t(123), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1334 66724 {Fscript: Tuint8_t(123), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(144)}, // 1335 66725 {Fscript: Tuint8_t(123), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(128)}, // 1336 66726 {Fscript: Tuint8_t(123), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(92)}, // 1337 66727 {Fscript: Tuint8_t(146), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 1338 66728 {Fscript: Tuint8_t(147), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 1339 66729 {Fscript: Tuint8_t(23), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(68)}, // 1340 66730 {Fscript: Tuint8_t(158), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(328)}, // 1341 66731 {Fscript: Tuint8_t(23), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(164)}, // 1342 66732 {Fscript: Tuint8_t(146), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(284)}, // 1343 66733 {Fscript: Tuint8_t(158), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(284)}, // 1344 66734 {Fscript: Tuint8_t(21), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(92)}, // 1345 66735 {Fscript: Tuint8_t(147), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(284)}, // 1346 66736 {Fscript: Tuint8_t(46), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1347 66737 {Fscript: Tuint8_t(46), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1348 66738 {Fscript: Tuint8_t(46), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 1349 66739 {Fscript: Tuint8_t(46), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1350 66740 {Fscript: Tuint8_t(46), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1351 66741 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(2), Fscriptx_bidiclass: Tuint16_t(6153), Fbprops: Tuint16_t(66)}, // 1352 66742 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(330)}, // 1353 66743 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1354 66744 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(5), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(160)}, // 1355 66745 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(10), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(286)}, // 1356 66746 {Fscript: Tuint8_t(1), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 1357 66747 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(25), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(118)}, // 1358 66748 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(10240), Fbprops: Tuint16_t(214)}, // 1359 66749 {Fscript: Tuint8_t(141), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1360 66750 {Fscript: Tuint8_t(141), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(102)}, // 1361 66751 {Fscript: Tuint8_t(141), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(106)}, // 1362 66752 {Fscript: Tuint8_t(141), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(124)}, // 1363 66753 {Fscript: Tuint8_t(141), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1364 66754 {Fscript: Tuint8_t(35), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1365 66755 {Fscript: Tuint8_t(154), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1366 66756 {Fscript: Tuint8_t(154), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1367 66757 {Fscript: Tuint8_t(154), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(142)}, // 1368 66758 {Fscript: Tuint8_t(154), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(136)}, // 1369 66759 {Fscript: Tuint8_t(154), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1370 66760 {Fscript: Tuint8_t(154), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1371 66761 {Fscript: Tuint8_t(160), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1372 66762 {Fscript: Tuint8_t(160), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1373 66763 {Fscript: Tuint8_t(155), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(82)}, // 1374 66764 {Fscript: Tuint8_t(155), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1375 66765 {Fscript: Tuint8_t(155), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(138)}, // 1376 66766 {Fscript: Tuint8_t(155), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(14336), Fbprops: Tuint16_t(68)}, // 1377 66767 {Fscript: Tuint8_t(129), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(82)}, // 1378 66768 {Fscript: Tuint8_t(129), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1379 66769 {Fscript: Tuint8_t(129), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1380 66770 {Fscript: Tuint8_t(58), Fchartype: Tuint8_t(9), Fgbprop: Tuint8_t(12), Fother_case: 34, Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(74)}, // 1381 66771 {Fscript: Tuint8_t(58), Fchartype: Tuint8_t(5), Fgbprop: Tuint8_t(12), Fother_case: -34, Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(76)}, // 1382 66772 {Fscript: Tuint8_t(58), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(150)}, // 1383 66773 {Fscript: Tuint8_t(58), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(130)}, // 1384 66774 {Fscript: Tuint8_t(58), Fchartype: Tuint8_t(12), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(26624), Fbprops: Tuint16_t(96)}, // 1385 66775 {Fscript: Tuint8_t(58), Fchartype: Tuint8_t(6), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(142)}, // 1386 66776 {Fscript: Tuint8_t(58), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(138)}, // 1387 66777 {Fscript: Tuint8_t(58), Fchartype: Tuint8_t(21), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(34816), Fbprops: Tuint16_t(68)}, // 1388 66778 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(15), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(68)}, // 1389 66779 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(68)}, // 1390 66780 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(23), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(68)}, // 1391 66781 {Fscript: Tuint8_t(3), Fchartype: Tuint8_t(7), Fgbprop: Tuint8_t(12), Fbprops: Tuint16_t(240)}, // 1392 66782 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(332)}, // 1393 66783 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(334)}, // 1394 66784 {Fscript: Tuint8_t(68), Fchartype: Tuint8_t(2), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(336)}, // 1395 66785 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(338)}, // 1396 66786 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(340)}, // 1397 66787 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(334)}, // 1398 66788 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(11), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(342)}, // 1399 66789 {Fscript: Tuint8_t(20), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(68)}, // 1400 66790 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(18432), Fbprops: Tuint16_t(236)}, // 1401 66791 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(18447), Fbprops: Tuint16_t(334)}, // 1402 66792 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(344)}, // 1403 66793 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(346)}, // 1404 66794 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(24), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(348)}, // 1405 66795 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(26), Fgbprop: Tuint8_t(14), Fscriptx_bidiclass: Tuint16_t(28672), Fbprops: Tuint16_t(350)}, // 1406 66796 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(13), Fgbprop: Tuint8_t(12), Fscriptx_bidiclass: Tuint16_t(10240), Fbprops: Tuint16_t(138)}, // 1407 66797 {Fscript: Tuint8_t(69), Fchartype: Tuint8_t(1), Fgbprop: Tuint8_t(3), Fscriptx_bidiclass: Tuint16_t(6144), Fbprops: Tuint16_t(352)}, // 1408 66798 } /* pcre2_ucd.c:427:18 */ 66799 66800 var X_pcre2_ucd_stage1_8 = [8704]Tuint16_t{ // 17408 bytes 66801 Tuint16_t(0), Tuint16_t(1), Tuint16_t(2), Tuint16_t(3), Tuint16_t(4), Tuint16_t(5), Tuint16_t(6), Tuint16_t(7), Tuint16_t(8), Tuint16_t(9), Tuint16_t(10), Tuint16_t(11), Tuint16_t(12), Tuint16_t(13), Tuint16_t(14), Tuint16_t(15), // U+0000 66802 Tuint16_t(16), Tuint16_t(17), Tuint16_t(18), Tuint16_t(19), Tuint16_t(20), Tuint16_t(21), Tuint16_t(22), Tuint16_t(23), Tuint16_t(24), Tuint16_t(25), Tuint16_t(26), Tuint16_t(27), Tuint16_t(28), Tuint16_t(29), Tuint16_t(30), Tuint16_t(31), // U+0800 66803 Tuint16_t(32), Tuint16_t(33), Tuint16_t(34), Tuint16_t(35), Tuint16_t(36), Tuint16_t(37), Tuint16_t(38), Tuint16_t(39), Tuint16_t(40), Tuint16_t(41), Tuint16_t(41), Tuint16_t(41), Tuint16_t(42), Tuint16_t(43), Tuint16_t(44), Tuint16_t(45), // U+1000 66804 Tuint16_t(46), Tuint16_t(47), Tuint16_t(48), Tuint16_t(49), Tuint16_t(50), Tuint16_t(51), Tuint16_t(52), Tuint16_t(53), Tuint16_t(54), Tuint16_t(55), Tuint16_t(56), Tuint16_t(57), Tuint16_t(58), Tuint16_t(59), Tuint16_t(60), Tuint16_t(61), // U+1800 66805 Tuint16_t(62), Tuint16_t(63), Tuint16_t(64), Tuint16_t(65), Tuint16_t(66), Tuint16_t(67), Tuint16_t(68), Tuint16_t(69), Tuint16_t(70), Tuint16_t(71), Tuint16_t(72), Tuint16_t(73), Tuint16_t(74), Tuint16_t(75), Tuint16_t(76), Tuint16_t(77), // U+2000 66806 Tuint16_t(78), Tuint16_t(78), Tuint16_t(79), Tuint16_t(80), Tuint16_t(81), Tuint16_t(82), Tuint16_t(83), Tuint16_t(84), Tuint16_t(85), Tuint16_t(86), Tuint16_t(87), Tuint16_t(88), Tuint16_t(89), Tuint16_t(90), Tuint16_t(91), Tuint16_t(92), // U+2800 66807 Tuint16_t(93), Tuint16_t(94), Tuint16_t(95), Tuint16_t(96), Tuint16_t(97), Tuint16_t(98), Tuint16_t(99), Tuint16_t(100), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+3000 66808 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+3800 66809 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+4000 66810 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(102), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+4800 66811 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+5000 66812 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+5800 66813 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+6000 66814 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+6800 66815 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+7000 66816 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+7800 66817 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+8000 66818 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+8800 66819 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+9000 66820 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+9800 66821 Tuint16_t(103), Tuint16_t(104), Tuint16_t(104), Tuint16_t(104), Tuint16_t(104), Tuint16_t(104), Tuint16_t(104), Tuint16_t(104), Tuint16_t(104), Tuint16_t(105), Tuint16_t(106), Tuint16_t(106), Tuint16_t(107), Tuint16_t(108), Tuint16_t(109), Tuint16_t(110), // U+A000 66822 Tuint16_t(111), Tuint16_t(112), Tuint16_t(113), Tuint16_t(114), Tuint16_t(115), Tuint16_t(116), Tuint16_t(117), Tuint16_t(118), Tuint16_t(119), Tuint16_t(120), Tuint16_t(121), Tuint16_t(122), Tuint16_t(123), Tuint16_t(124), Tuint16_t(125), Tuint16_t(119), // U+A800 66823 Tuint16_t(120), Tuint16_t(121), Tuint16_t(122), Tuint16_t(123), Tuint16_t(124), Tuint16_t(125), Tuint16_t(119), Tuint16_t(120), Tuint16_t(121), Tuint16_t(122), Tuint16_t(123), Tuint16_t(124), Tuint16_t(125), Tuint16_t(119), Tuint16_t(120), Tuint16_t(121), // U+B000 66824 Tuint16_t(122), Tuint16_t(123), Tuint16_t(124), Tuint16_t(125), Tuint16_t(119), Tuint16_t(120), Tuint16_t(121), Tuint16_t(122), Tuint16_t(123), Tuint16_t(124), Tuint16_t(125), Tuint16_t(119), Tuint16_t(120), Tuint16_t(121), Tuint16_t(122), Tuint16_t(123), // U+B800 66825 Tuint16_t(124), Tuint16_t(125), Tuint16_t(119), Tuint16_t(120), Tuint16_t(121), Tuint16_t(122), Tuint16_t(123), Tuint16_t(124), Tuint16_t(125), Tuint16_t(119), Tuint16_t(120), Tuint16_t(121), Tuint16_t(122), Tuint16_t(123), Tuint16_t(124), Tuint16_t(125), // U+C000 66826 Tuint16_t(119), Tuint16_t(120), Tuint16_t(121), Tuint16_t(122), Tuint16_t(123), Tuint16_t(124), Tuint16_t(125), Tuint16_t(119), Tuint16_t(120), Tuint16_t(121), Tuint16_t(122), Tuint16_t(123), Tuint16_t(124), Tuint16_t(125), Tuint16_t(119), Tuint16_t(120), // U+C800 66827 Tuint16_t(121), Tuint16_t(122), Tuint16_t(123), Tuint16_t(124), Tuint16_t(125), Tuint16_t(119), Tuint16_t(120), Tuint16_t(121), Tuint16_t(122), Tuint16_t(123), Tuint16_t(124), Tuint16_t(125), Tuint16_t(119), Tuint16_t(120), Tuint16_t(121), Tuint16_t(126), // U+D000 66828 Tuint16_t(127), Tuint16_t(127), Tuint16_t(127), Tuint16_t(127), Tuint16_t(127), Tuint16_t(127), Tuint16_t(127), Tuint16_t(127), Tuint16_t(127), Tuint16_t(127), Tuint16_t(127), Tuint16_t(127), Tuint16_t(127), Tuint16_t(127), Tuint16_t(127), Tuint16_t(127), // U+D800 66829 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+E000 66830 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+E800 66831 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F000 66832 Tuint16_t(128), Tuint16_t(128), Tuint16_t(129), Tuint16_t(129), Tuint16_t(130), Tuint16_t(131), Tuint16_t(132), Tuint16_t(133), Tuint16_t(134), Tuint16_t(135), Tuint16_t(136), Tuint16_t(137), Tuint16_t(138), Tuint16_t(139), Tuint16_t(140), Tuint16_t(141), // U+F800 66833 Tuint16_t(142), Tuint16_t(143), Tuint16_t(144), Tuint16_t(145), Tuint16_t(146), Tuint16_t(147), Tuint16_t(148), Tuint16_t(149), Tuint16_t(150), Tuint16_t(151), Tuint16_t(152), Tuint16_t(153), Tuint16_t(154), Tuint16_t(154), Tuint16_t(155), Tuint16_t(156), // U+10000 66834 Tuint16_t(157), Tuint16_t(158), Tuint16_t(159), Tuint16_t(160), Tuint16_t(161), Tuint16_t(162), Tuint16_t(163), Tuint16_t(164), Tuint16_t(165), Tuint16_t(166), Tuint16_t(167), Tuint16_t(168), Tuint16_t(169), Tuint16_t(170), Tuint16_t(171), Tuint16_t(172), // U+10800 66835 Tuint16_t(173), Tuint16_t(174), Tuint16_t(175), Tuint16_t(176), Tuint16_t(177), Tuint16_t(178), Tuint16_t(179), Tuint16_t(146), Tuint16_t(180), Tuint16_t(181), Tuint16_t(146), Tuint16_t(182), Tuint16_t(183), Tuint16_t(184), Tuint16_t(185), Tuint16_t(146), // U+11000 66836 Tuint16_t(186), Tuint16_t(187), Tuint16_t(188), Tuint16_t(189), Tuint16_t(190), Tuint16_t(191), Tuint16_t(146), Tuint16_t(146), Tuint16_t(192), Tuint16_t(193), Tuint16_t(194), Tuint16_t(195), Tuint16_t(146), Tuint16_t(196), Tuint16_t(146), Tuint16_t(197), // U+11800 66837 Tuint16_t(198), Tuint16_t(198), Tuint16_t(198), Tuint16_t(198), Tuint16_t(198), Tuint16_t(198), Tuint16_t(198), Tuint16_t(199), Tuint16_t(200), Tuint16_t(198), Tuint16_t(201), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+12000 66838 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(202), // U+12800 66839 Tuint16_t(203), Tuint16_t(203), Tuint16_t(203), Tuint16_t(203), Tuint16_t(203), Tuint16_t(203), Tuint16_t(203), Tuint16_t(203), Tuint16_t(204), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+13000 66840 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+13800 66841 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(205), Tuint16_t(205), Tuint16_t(205), Tuint16_t(205), Tuint16_t(206), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+14000 66842 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+14800 66843 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+15000 66844 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+15800 66845 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+16000 66846 Tuint16_t(207), Tuint16_t(207), Tuint16_t(207), Tuint16_t(207), Tuint16_t(208), Tuint16_t(209), Tuint16_t(210), Tuint16_t(211), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(212), Tuint16_t(213), Tuint16_t(214), Tuint16_t(215), // U+16800 66847 Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), // U+17000 66848 Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), // U+17800 66849 Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(217), // U+18000 66850 Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(216), Tuint16_t(218), Tuint16_t(218), Tuint16_t(218), Tuint16_t(219), Tuint16_t(220), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+18800 66851 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+19000 66852 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+19800 66853 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+1A000 66854 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(221), // U+1A800 66855 Tuint16_t(222), Tuint16_t(223), Tuint16_t(224), Tuint16_t(225), Tuint16_t(225), Tuint16_t(226), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+1B000 66856 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(227), Tuint16_t(228), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+1B800 66857 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+1C000 66858 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(229), Tuint16_t(230), // U+1C800 66859 Tuint16_t(231), Tuint16_t(232), Tuint16_t(233), Tuint16_t(234), Tuint16_t(235), Tuint16_t(236), Tuint16_t(237), Tuint16_t(146), Tuint16_t(238), Tuint16_t(239), Tuint16_t(240), Tuint16_t(241), Tuint16_t(242), Tuint16_t(243), Tuint16_t(244), Tuint16_t(245), // U+1D000 66860 Tuint16_t(246), Tuint16_t(246), Tuint16_t(246), Tuint16_t(246), Tuint16_t(247), Tuint16_t(248), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(249), Tuint16_t(146), // U+1D800 66861 Tuint16_t(250), Tuint16_t(146), Tuint16_t(251), Tuint16_t(146), Tuint16_t(146), Tuint16_t(252), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(253), // U+1E000 66862 Tuint16_t(254), Tuint16_t(255), Tuint16_t(256), Tuint16_t(168), Tuint16_t(168), Tuint16_t(168), Tuint16_t(168), Tuint16_t(168), Tuint16_t(257), Tuint16_t(258), Tuint16_t(259), Tuint16_t(168), Tuint16_t(260), Tuint16_t(261), Tuint16_t(168), Tuint16_t(168), // U+1E800 66863 Tuint16_t(262), Tuint16_t(263), Tuint16_t(264), Tuint16_t(265), Tuint16_t(266), Tuint16_t(267), Tuint16_t(268), Tuint16_t(269), Tuint16_t(270), Tuint16_t(271), Tuint16_t(272), Tuint16_t(273), Tuint16_t(274), Tuint16_t(275), Tuint16_t(276), Tuint16_t(277), // U+1F000 66864 Tuint16_t(278), Tuint16_t(279), Tuint16_t(280), Tuint16_t(281), Tuint16_t(282), Tuint16_t(283), Tuint16_t(284), Tuint16_t(285), Tuint16_t(267), Tuint16_t(267), Tuint16_t(267), Tuint16_t(267), Tuint16_t(267), Tuint16_t(267), Tuint16_t(267), Tuint16_t(286), // U+1F800 66865 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+20000 66866 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+20800 66867 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+21000 66868 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+21800 66869 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+22000 66870 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+22800 66871 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+23000 66872 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+23800 66873 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+24000 66874 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+24800 66875 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+25000 66876 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+25800 66877 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+26000 66878 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+26800 66879 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+27000 66880 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+27800 66881 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+28000 66882 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+28800 66883 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+29000 66884 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+29800 66885 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(287), Tuint16_t(101), Tuint16_t(101), // U+2A000 66886 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+2A800 66887 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(288), Tuint16_t(101), // U+2B000 66888 Tuint16_t(289), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+2B800 66889 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+2C000 66890 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(290), Tuint16_t(101), Tuint16_t(101), // U+2C800 66891 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+2D000 66892 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+2D800 66893 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+2E000 66894 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(291), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+2E800 66895 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+2F000 66896 Tuint16_t(129), Tuint16_t(129), Tuint16_t(129), Tuint16_t(129), Tuint16_t(292), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(293), // U+2F800 66897 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+30000 66898 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), // U+30800 66899 Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(101), Tuint16_t(294), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+31000 66900 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+31800 66901 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+32000 66902 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+32800 66903 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+33000 66904 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+33800 66905 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+34000 66906 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+34800 66907 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+35000 66908 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+35800 66909 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+36000 66910 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+36800 66911 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+37000 66912 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+37800 66913 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+38000 66914 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+38800 66915 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+39000 66916 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+39800 66917 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+3A000 66918 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+3A800 66919 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+3B000 66920 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+3B800 66921 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+3C000 66922 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+3C800 66923 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+3D000 66924 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+3D800 66925 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+3E000 66926 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+3E800 66927 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+3F000 66928 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(293), // U+3F800 66929 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+40000 66930 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+40800 66931 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+41000 66932 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+41800 66933 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+42000 66934 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+42800 66935 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+43000 66936 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+43800 66937 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+44000 66938 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+44800 66939 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+45000 66940 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+45800 66941 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+46000 66942 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+46800 66943 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+47000 66944 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+47800 66945 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+48000 66946 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+48800 66947 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+49000 66948 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+49800 66949 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+4A000 66950 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+4A800 66951 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+4B000 66952 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+4B800 66953 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+4C000 66954 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+4C800 66955 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+4D000 66956 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+4D800 66957 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+4E000 66958 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+4E800 66959 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+4F000 66960 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(293), // U+4F800 66961 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+50000 66962 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+50800 66963 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+51000 66964 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+51800 66965 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+52000 66966 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+52800 66967 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+53000 66968 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+53800 66969 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+54000 66970 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+54800 66971 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+55000 66972 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+55800 66973 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+56000 66974 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+56800 66975 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+57000 66976 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+57800 66977 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+58000 66978 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+58800 66979 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+59000 66980 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+59800 66981 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+5A000 66982 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+5A800 66983 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+5B000 66984 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+5B800 66985 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+5C000 66986 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+5C800 66987 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+5D000 66988 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+5D800 66989 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+5E000 66990 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+5E800 66991 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+5F000 66992 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(293), // U+5F800 66993 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+60000 66994 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+60800 66995 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+61000 66996 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+61800 66997 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+62000 66998 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+62800 66999 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+63000 67000 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+63800 67001 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+64000 67002 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+64800 67003 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+65000 67004 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+65800 67005 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+66000 67006 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+66800 67007 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+67000 67008 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+67800 67009 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+68000 67010 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+68800 67011 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+69000 67012 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+69800 67013 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+6A000 67014 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+6A800 67015 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+6B000 67016 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+6B800 67017 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+6C000 67018 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+6C800 67019 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+6D000 67020 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+6D800 67021 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+6E000 67022 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+6E800 67023 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+6F000 67024 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(293), // U+6F800 67025 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+70000 67026 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+70800 67027 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+71000 67028 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+71800 67029 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+72000 67030 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+72800 67031 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+73000 67032 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+73800 67033 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+74000 67034 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+74800 67035 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+75000 67036 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+75800 67037 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+76000 67038 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+76800 67039 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+77000 67040 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+77800 67041 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+78000 67042 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+78800 67043 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+79000 67044 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+79800 67045 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+7A000 67046 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+7A800 67047 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+7B000 67048 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+7B800 67049 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+7C000 67050 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+7C800 67051 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+7D000 67052 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+7D800 67053 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+7E000 67054 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+7E800 67055 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+7F000 67056 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(293), // U+7F800 67057 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+80000 67058 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+80800 67059 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+81000 67060 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+81800 67061 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+82000 67062 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+82800 67063 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+83000 67064 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+83800 67065 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+84000 67066 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+84800 67067 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+85000 67068 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+85800 67069 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+86000 67070 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+86800 67071 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+87000 67072 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+87800 67073 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+88000 67074 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+88800 67075 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+89000 67076 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+89800 67077 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+8A000 67078 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+8A800 67079 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+8B000 67080 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+8B800 67081 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+8C000 67082 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+8C800 67083 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+8D000 67084 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+8D800 67085 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+8E000 67086 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+8E800 67087 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+8F000 67088 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(293), // U+8F800 67089 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+90000 67090 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+90800 67091 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+91000 67092 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+91800 67093 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+92000 67094 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+92800 67095 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+93000 67096 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+93800 67097 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+94000 67098 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+94800 67099 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+95000 67100 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+95800 67101 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+96000 67102 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+96800 67103 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+97000 67104 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+97800 67105 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+98000 67106 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+98800 67107 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+99000 67108 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+99800 67109 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+9A000 67110 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+9A800 67111 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+9B000 67112 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+9B800 67113 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+9C000 67114 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+9C800 67115 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+9D000 67116 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+9D800 67117 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+9E000 67118 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+9E800 67119 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+9F000 67120 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(293), // U+9F800 67121 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A0000 67122 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A0800 67123 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A1000 67124 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A1800 67125 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A2000 67126 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A2800 67127 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A3000 67128 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A3800 67129 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A4000 67130 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A4800 67131 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A5000 67132 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A5800 67133 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A6000 67134 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A6800 67135 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A7000 67136 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A7800 67137 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A8000 67138 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A8800 67139 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A9000 67140 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+A9800 67141 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+AA000 67142 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+AA800 67143 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+AB000 67144 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+AB800 67145 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+AC000 67146 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+AC800 67147 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+AD000 67148 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+AD800 67149 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+AE000 67150 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+AE800 67151 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+AF000 67152 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(293), // U+AF800 67153 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B0000 67154 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B0800 67155 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B1000 67156 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B1800 67157 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B2000 67158 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B2800 67159 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B3000 67160 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B3800 67161 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B4000 67162 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B4800 67163 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B5000 67164 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B5800 67165 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B6000 67166 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B6800 67167 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B7000 67168 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B7800 67169 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B8000 67170 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B8800 67171 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B9000 67172 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+B9800 67173 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+BA000 67174 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+BA800 67175 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+BB000 67176 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+BB800 67177 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+BC000 67178 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+BC800 67179 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+BD000 67180 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+BD800 67181 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+BE000 67182 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+BE800 67183 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+BF000 67184 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(293), // U+BF800 67185 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C0000 67186 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C0800 67187 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C1000 67188 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C1800 67189 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C2000 67190 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C2800 67191 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C3000 67192 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C3800 67193 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C4000 67194 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C4800 67195 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C5000 67196 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C5800 67197 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C6000 67198 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C6800 67199 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C7000 67200 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C7800 67201 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C8000 67202 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C8800 67203 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C9000 67204 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+C9800 67205 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+CA000 67206 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+CA800 67207 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+CB000 67208 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+CB800 67209 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+CC000 67210 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+CC800 67211 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+CD000 67212 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+CD800 67213 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+CE000 67214 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+CE800 67215 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+CF000 67216 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(293), // U+CF800 67217 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D0000 67218 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D0800 67219 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D1000 67220 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D1800 67221 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D2000 67222 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D2800 67223 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D3000 67224 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D3800 67225 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D4000 67226 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D4800 67227 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D5000 67228 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D5800 67229 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D6000 67230 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D6800 67231 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D7000 67232 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D7800 67233 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D8000 67234 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D8800 67235 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D9000 67236 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+D9800 67237 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+DA000 67238 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+DA800 67239 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+DB000 67240 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+DB800 67241 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+DC000 67242 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+DC800 67243 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+DD000 67244 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+DD800 67245 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+DE000 67246 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+DE800 67247 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+DF000 67248 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(293), // U+DF800 67249 Tuint16_t(295), Tuint16_t(296), Tuint16_t(297), Tuint16_t(298), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), // U+E0000 67250 Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), Tuint16_t(296), // U+E0800 67251 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E1000 67252 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E1800 67253 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E2000 67254 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E2800 67255 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E3000 67256 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E3800 67257 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E4000 67258 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E4800 67259 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E5000 67260 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E5800 67261 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E6000 67262 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E6800 67263 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E7000 67264 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E7800 67265 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E8000 67266 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E8800 67267 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E9000 67268 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+E9800 67269 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+EA000 67270 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+EA800 67271 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+EB000 67272 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+EB800 67273 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+EC000 67274 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+EC800 67275 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+ED000 67276 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+ED800 67277 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+EE000 67278 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+EE800 67279 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), // U+EF000 67280 Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(146), Tuint16_t(293), // U+EF800 67281 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F0000 67282 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F0800 67283 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F1000 67284 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F1800 67285 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F2000 67286 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F2800 67287 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F3000 67288 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F3800 67289 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F4000 67290 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F4800 67291 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F5000 67292 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F5800 67293 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F6000 67294 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F6800 67295 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F7000 67296 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F7800 67297 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F8000 67298 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F8800 67299 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F9000 67300 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+F9800 67301 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+FA000 67302 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+FA800 67303 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+FB000 67304 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+FB800 67305 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+FC000 67306 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+FC800 67307 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+FD000 67308 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+FD800 67309 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+FE000 67310 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+FE800 67311 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+FF000 67312 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(299), // U+FF800 67313 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+100000 67314 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+100800 67315 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+101000 67316 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+101800 67317 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+102000 67318 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+102800 67319 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+103000 67320 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+103800 67321 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+104000 67322 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+104800 67323 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+105000 67324 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+105800 67325 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+106000 67326 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+106800 67327 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+107000 67328 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+107800 67329 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+108000 67330 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+108800 67331 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+109000 67332 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+109800 67333 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+10A000 67334 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+10A800 67335 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+10B000 67336 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+10B800 67337 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+10C000 67338 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+10C800 67339 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+10D000 67340 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+10D800 67341 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+10E000 67342 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+10E800 67343 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), // U+10F000 67344 Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(128), Tuint16_t(299), // U+10F800 67345 } /* pcre2_ucd.c:1839:16 */ 67346 67347 var X_pcre2_ucd_stage2_8 = [38400]Tuint16_t{ // 76800 bytes, block = 128 67348 67349 // block 0 67350 Tuint16_t(0), Tuint16_t(0), Tuint16_t(0), Tuint16_t(0), Tuint16_t(0), Tuint16_t(0), Tuint16_t(0), Tuint16_t(0), Tuint16_t(0), Tuint16_t(1), Tuint16_t(2), Tuint16_t(1), Tuint16_t(3), Tuint16_t(4), Tuint16_t(0), Tuint16_t(0), 67351 Tuint16_t(0), Tuint16_t(0), Tuint16_t(0), Tuint16_t(0), Tuint16_t(0), Tuint16_t(0), Tuint16_t(0), Tuint16_t(0), Tuint16_t(0), Tuint16_t(0), Tuint16_t(0), Tuint16_t(0), Tuint16_t(5), Tuint16_t(5), Tuint16_t(5), Tuint16_t(6), 67352 Tuint16_t(7), Tuint16_t(8), Tuint16_t(9), Tuint16_t(10), Tuint16_t(11), Tuint16_t(12), Tuint16_t(13), Tuint16_t(14), Tuint16_t(15), Tuint16_t(16), Tuint16_t(17), Tuint16_t(18), Tuint16_t(19), Tuint16_t(20), Tuint16_t(21), Tuint16_t(22), 67353 Tuint16_t(23), Tuint16_t(23), Tuint16_t(23), Tuint16_t(23), Tuint16_t(23), Tuint16_t(23), Tuint16_t(23), Tuint16_t(23), Tuint16_t(23), Tuint16_t(23), Tuint16_t(24), Tuint16_t(25), Tuint16_t(26), Tuint16_t(27), Tuint16_t(26), Tuint16_t(8), 67354 Tuint16_t(13), Tuint16_t(28), Tuint16_t(28), Tuint16_t(28), Tuint16_t(28), Tuint16_t(28), Tuint16_t(28), Tuint16_t(29), Tuint16_t(29), Tuint16_t(29), Tuint16_t(29), Tuint16_t(30), Tuint16_t(29), Tuint16_t(29), Tuint16_t(29), Tuint16_t(29), 67355 Tuint16_t(29), Tuint16_t(29), Tuint16_t(29), Tuint16_t(31), Tuint16_t(29), Tuint16_t(29), Tuint16_t(29), Tuint16_t(29), Tuint16_t(29), Tuint16_t(29), Tuint16_t(29), Tuint16_t(15), Tuint16_t(13), Tuint16_t(16), Tuint16_t(32), Tuint16_t(33), 67356 Tuint16_t(34), Tuint16_t(35), Tuint16_t(35), Tuint16_t(35), Tuint16_t(35), Tuint16_t(35), Tuint16_t(35), Tuint16_t(36), Tuint16_t(36), Tuint16_t(37), Tuint16_t(37), Tuint16_t(38), Tuint16_t(36), Tuint16_t(36), Tuint16_t(36), Tuint16_t(36), 67357 Tuint16_t(36), Tuint16_t(36), Tuint16_t(36), Tuint16_t(39), Tuint16_t(36), Tuint16_t(36), Tuint16_t(36), Tuint16_t(36), Tuint16_t(36), Tuint16_t(36), Tuint16_t(36), Tuint16_t(15), Tuint16_t(27), Tuint16_t(16), Tuint16_t(27), Tuint16_t(0), 67358 67359 // block 1 67360 Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(41), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), 67361 Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), Tuint16_t(40), 67362 Tuint16_t(42), Tuint16_t(43), Tuint16_t(44), Tuint16_t(44), Tuint16_t(44), Tuint16_t(44), Tuint16_t(45), Tuint16_t(43), Tuint16_t(46), Tuint16_t(47), Tuint16_t(48), Tuint16_t(49), Tuint16_t(50), Tuint16_t(51), Tuint16_t(47), Tuint16_t(46), 67363 Tuint16_t(52), Tuint16_t(53), Tuint16_t(54), Tuint16_t(54), Tuint16_t(46), Tuint16_t(55), Tuint16_t(43), Tuint16_t(56), Tuint16_t(46), Tuint16_t(54), Tuint16_t(48), Tuint16_t(57), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(43), 67364 Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(60), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), 67365 Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(50), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(61), 67366 Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(63), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), 67367 Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(50), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(64), 67368 67369 // block 2 67370 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67371 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67372 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(67), 67373 Tuint16_t(68), Tuint16_t(69), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(70), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), 67374 Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(71), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67375 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67376 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67377 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(72), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(73), 67378 67379 // block 3 67380 Tuint16_t(74), Tuint16_t(75), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(76), Tuint16_t(65), Tuint16_t(66), Tuint16_t(77), Tuint16_t(77), Tuint16_t(65), Tuint16_t(66), Tuint16_t(70), Tuint16_t(78), Tuint16_t(79), 67381 Tuint16_t(80), Tuint16_t(65), Tuint16_t(66), Tuint16_t(77), Tuint16_t(81), Tuint16_t(82), Tuint16_t(83), Tuint16_t(84), Tuint16_t(65), Tuint16_t(66), Tuint16_t(85), Tuint16_t(70), Tuint16_t(83), Tuint16_t(86), Tuint16_t(87), Tuint16_t(88), 67382 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(89), Tuint16_t(65), Tuint16_t(66), Tuint16_t(89), Tuint16_t(70), Tuint16_t(70), Tuint16_t(65), Tuint16_t(66), Tuint16_t(89), Tuint16_t(65), 67383 Tuint16_t(66), Tuint16_t(90), Tuint16_t(90), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(91), Tuint16_t(65), Tuint16_t(66), Tuint16_t(70), Tuint16_t(92), Tuint16_t(65), Tuint16_t(66), Tuint16_t(70), Tuint16_t(93), 67384 Tuint16_t(92), Tuint16_t(92), Tuint16_t(92), Tuint16_t(92), Tuint16_t(94), Tuint16_t(95), Tuint16_t(96), Tuint16_t(97), Tuint16_t(98), Tuint16_t(99), Tuint16_t(100), Tuint16_t(101), Tuint16_t(102), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), 67385 Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(103), Tuint16_t(65), Tuint16_t(66), 67386 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67387 Tuint16_t(69), Tuint16_t(104), Tuint16_t(105), Tuint16_t(106), Tuint16_t(65), Tuint16_t(66), Tuint16_t(107), Tuint16_t(108), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67388 67389 // block 4 67390 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67391 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67392 Tuint16_t(109), Tuint16_t(70), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67393 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(110), Tuint16_t(65), Tuint16_t(66), Tuint16_t(111), Tuint16_t(112), Tuint16_t(113), 67394 Tuint16_t(113), Tuint16_t(65), Tuint16_t(66), Tuint16_t(114), Tuint16_t(115), Tuint16_t(116), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(67), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67395 Tuint16_t(117), Tuint16_t(118), Tuint16_t(119), Tuint16_t(120), Tuint16_t(121), Tuint16_t(70), Tuint16_t(122), Tuint16_t(122), Tuint16_t(70), Tuint16_t(123), Tuint16_t(70), Tuint16_t(124), Tuint16_t(125), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), 67396 Tuint16_t(122), Tuint16_t(126), Tuint16_t(70), Tuint16_t(127), Tuint16_t(70), Tuint16_t(128), Tuint16_t(129), Tuint16_t(70), Tuint16_t(130), Tuint16_t(131), Tuint16_t(129), Tuint16_t(132), Tuint16_t(133), Tuint16_t(70), Tuint16_t(70), Tuint16_t(131), 67397 Tuint16_t(70), Tuint16_t(134), Tuint16_t(135), Tuint16_t(70), Tuint16_t(70), Tuint16_t(136), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(137), Tuint16_t(70), Tuint16_t(70), 67398 67399 // block 5 67400 Tuint16_t(138), Tuint16_t(70), Tuint16_t(139), Tuint16_t(138), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(140), Tuint16_t(138), Tuint16_t(141), Tuint16_t(142), Tuint16_t(142), Tuint16_t(143), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), 67401 Tuint16_t(70), Tuint16_t(70), Tuint16_t(144), Tuint16_t(70), Tuint16_t(92), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(145), Tuint16_t(146), Tuint16_t(70), 67402 Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), 67403 Tuint16_t(147), Tuint16_t(147), Tuint16_t(148), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(149), Tuint16_t(149), Tuint16_t(150), Tuint16_t(150), Tuint16_t(150), Tuint16_t(150), Tuint16_t(150), 67404 Tuint16_t(151), Tuint16_t(151), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(149), Tuint16_t(149), Tuint16_t(149), Tuint16_t(149), Tuint16_t(149), Tuint16_t(149), Tuint16_t(149), Tuint16_t(149), Tuint16_t(149), Tuint16_t(149), 67405 Tuint16_t(152), Tuint16_t(152), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), 67406 Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(153), Tuint16_t(153), Tuint16_t(149), Tuint16_t(46), Tuint16_t(150), Tuint16_t(46), 67407 Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), 67408 67409 // block 6 67410 Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), 67411 Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), 67412 Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), 67413 Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), 67414 Tuint16_t(154), Tuint16_t(154), Tuint16_t(155), Tuint16_t(154), Tuint16_t(154), Tuint16_t(156), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(157), 67415 Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), 67416 Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(159), Tuint16_t(159), Tuint16_t(159), Tuint16_t(159), Tuint16_t(159), Tuint16_t(159), Tuint16_t(159), Tuint16_t(159), Tuint16_t(159), Tuint16_t(159), Tuint16_t(159), Tuint16_t(159), Tuint16_t(159), 67417 Tuint16_t(160), Tuint16_t(161), Tuint16_t(160), Tuint16_t(161), Tuint16_t(149), Tuint16_t(162), Tuint16_t(160), Tuint16_t(161), Tuint16_t(163), Tuint16_t(163), Tuint16_t(164), Tuint16_t(165), Tuint16_t(165), Tuint16_t(165), Tuint16_t(166), Tuint16_t(167), 67418 67419 // block 7 67420 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(162), Tuint16_t(46), Tuint16_t(168), Tuint16_t(169), Tuint16_t(170), Tuint16_t(170), Tuint16_t(170), Tuint16_t(163), Tuint16_t(171), Tuint16_t(163), Tuint16_t(172), Tuint16_t(172), 67421 Tuint16_t(173), Tuint16_t(174), Tuint16_t(175), Tuint16_t(174), Tuint16_t(174), Tuint16_t(176), Tuint16_t(174), Tuint16_t(174), Tuint16_t(177), Tuint16_t(178), Tuint16_t(179), Tuint16_t(174), Tuint16_t(180), Tuint16_t(174), Tuint16_t(174), Tuint16_t(174), 67422 Tuint16_t(181), Tuint16_t(182), Tuint16_t(163), Tuint16_t(183), Tuint16_t(174), Tuint16_t(174), Tuint16_t(184), Tuint16_t(174), Tuint16_t(174), Tuint16_t(185), Tuint16_t(174), Tuint16_t(174), Tuint16_t(186), Tuint16_t(187), Tuint16_t(187), Tuint16_t(187), 67423 Tuint16_t(173), Tuint16_t(188), Tuint16_t(189), Tuint16_t(188), Tuint16_t(188), Tuint16_t(190), Tuint16_t(188), Tuint16_t(188), Tuint16_t(191), Tuint16_t(192), Tuint16_t(193), Tuint16_t(188), Tuint16_t(194), Tuint16_t(188), Tuint16_t(188), Tuint16_t(188), 67424 Tuint16_t(195), Tuint16_t(196), Tuint16_t(197), Tuint16_t(198), Tuint16_t(188), Tuint16_t(188), Tuint16_t(199), Tuint16_t(188), Tuint16_t(188), Tuint16_t(200), Tuint16_t(188), Tuint16_t(188), Tuint16_t(201), Tuint16_t(202), Tuint16_t(202), Tuint16_t(203), 67425 Tuint16_t(204), Tuint16_t(205), Tuint16_t(206), Tuint16_t(207), Tuint16_t(207), Tuint16_t(208), Tuint16_t(209), Tuint16_t(210), Tuint16_t(160), Tuint16_t(161), Tuint16_t(160), Tuint16_t(161), Tuint16_t(160), Tuint16_t(161), Tuint16_t(160), Tuint16_t(161), 67426 Tuint16_t(160), Tuint16_t(161), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), 67427 Tuint16_t(213), Tuint16_t(214), Tuint16_t(215), Tuint16_t(216), Tuint16_t(217), Tuint16_t(218), Tuint16_t(219), Tuint16_t(160), Tuint16_t(161), Tuint16_t(220), Tuint16_t(160), Tuint16_t(161), Tuint16_t(221), Tuint16_t(222), Tuint16_t(222), Tuint16_t(222), 67428 67429 // block 8 67430 Tuint16_t(223), Tuint16_t(223), Tuint16_t(223), Tuint16_t(223), Tuint16_t(223), Tuint16_t(223), Tuint16_t(223), Tuint16_t(223), Tuint16_t(223), Tuint16_t(223), Tuint16_t(223), Tuint16_t(223), Tuint16_t(223), Tuint16_t(223), Tuint16_t(223), Tuint16_t(223), 67431 Tuint16_t(224), Tuint16_t(224), Tuint16_t(225), Tuint16_t(224), Tuint16_t(226), Tuint16_t(224), Tuint16_t(224), Tuint16_t(224), Tuint16_t(224), Tuint16_t(224), Tuint16_t(224), Tuint16_t(224), Tuint16_t(224), Tuint16_t(224), Tuint16_t(227), Tuint16_t(224), 67432 Tuint16_t(224), Tuint16_t(228), Tuint16_t(229), Tuint16_t(224), Tuint16_t(224), Tuint16_t(224), Tuint16_t(224), Tuint16_t(224), Tuint16_t(224), Tuint16_t(224), Tuint16_t(230), Tuint16_t(224), Tuint16_t(224), Tuint16_t(224), Tuint16_t(224), Tuint16_t(224), 67433 Tuint16_t(231), Tuint16_t(231), Tuint16_t(232), Tuint16_t(231), Tuint16_t(233), Tuint16_t(231), Tuint16_t(231), Tuint16_t(231), Tuint16_t(231), Tuint16_t(231), Tuint16_t(231), Tuint16_t(231), Tuint16_t(231), Tuint16_t(231), Tuint16_t(234), Tuint16_t(231), 67434 Tuint16_t(231), Tuint16_t(235), Tuint16_t(236), Tuint16_t(231), Tuint16_t(231), Tuint16_t(231), Tuint16_t(231), Tuint16_t(231), Tuint16_t(231), Tuint16_t(231), Tuint16_t(237), Tuint16_t(231), Tuint16_t(231), Tuint16_t(231), Tuint16_t(231), Tuint16_t(231), 67435 Tuint16_t(238), Tuint16_t(238), Tuint16_t(238), Tuint16_t(238), Tuint16_t(238), Tuint16_t(238), Tuint16_t(239), Tuint16_t(238), Tuint16_t(239), Tuint16_t(238), Tuint16_t(238), Tuint16_t(238), Tuint16_t(238), Tuint16_t(238), Tuint16_t(238), Tuint16_t(238), 67436 Tuint16_t(240), Tuint16_t(241), Tuint16_t(242), Tuint16_t(243), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), 67437 Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), 67438 67439 // block 9 67440 Tuint16_t(240), Tuint16_t(241), Tuint16_t(244), Tuint16_t(245), Tuint16_t(246), Tuint16_t(247), Tuint16_t(247), Tuint16_t(246), Tuint16_t(248), Tuint16_t(248), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), 67441 Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), 67442 Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), 67443 Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), 67444 Tuint16_t(249), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(250), 67445 Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), 67446 Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), 67447 Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), 67448 67449 // block 10 67450 Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), 67451 Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), 67452 Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), 67453 Tuint16_t(163), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), 67454 Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), 67455 Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(251), Tuint16_t(163), Tuint16_t(163), Tuint16_t(252), Tuint16_t(253), Tuint16_t(253), Tuint16_t(253), Tuint16_t(253), Tuint16_t(253), Tuint16_t(254), 67456 Tuint16_t(255), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), 67457 Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), 67458 67459 // block 11 67460 Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(256), Tuint16_t(257), Tuint16_t(255), Tuint16_t(258), Tuint16_t(259), Tuint16_t(163), Tuint16_t(163), Tuint16_t(260), Tuint16_t(260), Tuint16_t(261), 67461 Tuint16_t(262), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), 67462 Tuint16_t(263), Tuint16_t(263), Tuint16_t(264), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), Tuint16_t(263), 67463 Tuint16_t(265), Tuint16_t(265), Tuint16_t(265), Tuint16_t(265), Tuint16_t(265), Tuint16_t(265), Tuint16_t(265), Tuint16_t(265), Tuint16_t(265), Tuint16_t(265), Tuint16_t(265), Tuint16_t(265), Tuint16_t(265), Tuint16_t(265), Tuint16_t(266), Tuint16_t(265), 67464 Tuint16_t(267), Tuint16_t(265), Tuint16_t(265), Tuint16_t(268), Tuint16_t(265), Tuint16_t(269), Tuint16_t(267), Tuint16_t(269), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 67465 Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), 67466 Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(270), 67467 Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(267), Tuint16_t(271), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 67468 67469 // block 12 67470 Tuint16_t(272), Tuint16_t(272), Tuint16_t(272), Tuint16_t(272), Tuint16_t(272), Tuint16_t(273), Tuint16_t(274), Tuint16_t(274), Tuint16_t(275), Tuint16_t(276), Tuint16_t(276), Tuint16_t(277), Tuint16_t(278), Tuint16_t(279), Tuint16_t(280), Tuint16_t(280), 67471 Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(282), Tuint16_t(283), Tuint16_t(284), Tuint16_t(284), Tuint16_t(285), 67472 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67473 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67474 Tuint16_t(287), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(288), Tuint16_t(288), Tuint16_t(288), Tuint16_t(288), Tuint16_t(288), 67475 Tuint16_t(288), Tuint16_t(288), Tuint16_t(288), Tuint16_t(289), Tuint16_t(289), Tuint16_t(289), Tuint16_t(281), Tuint16_t(290), Tuint16_t(291), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), 67476 Tuint16_t(292), Tuint16_t(292), Tuint16_t(292), Tuint16_t(292), Tuint16_t(292), Tuint16_t(292), Tuint16_t(292), Tuint16_t(292), Tuint16_t(292), Tuint16_t(292), Tuint16_t(276), Tuint16_t(293), Tuint16_t(293), Tuint16_t(279), Tuint16_t(286), Tuint16_t(286), 67477 Tuint16_t(289), Tuint16_t(286), Tuint16_t(286), Tuint16_t(294), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67478 67479 // block 13 67480 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67481 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67482 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67483 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67484 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67485 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(295), Tuint16_t(286), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(273), Tuint16_t(280), Tuint16_t(291), 67486 Tuint16_t(291), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(296), Tuint16_t(296), Tuint16_t(281), Tuint16_t(281), Tuint16_t(280), Tuint16_t(291), Tuint16_t(291), Tuint16_t(291), Tuint16_t(281), Tuint16_t(286), Tuint16_t(286), 67487 Tuint16_t(297), Tuint16_t(297), Tuint16_t(297), Tuint16_t(297), Tuint16_t(297), Tuint16_t(297), Tuint16_t(297), Tuint16_t(297), Tuint16_t(297), Tuint16_t(297), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(298), Tuint16_t(298), Tuint16_t(286), 67488 67489 // block 14 67490 Tuint16_t(299), Tuint16_t(299), Tuint16_t(299), Tuint16_t(300), Tuint16_t(300), Tuint16_t(300), Tuint16_t(300), Tuint16_t(300), Tuint16_t(300), Tuint16_t(300), Tuint16_t(300), Tuint16_t(301), Tuint16_t(300), Tuint16_t(301), Tuint16_t(302), Tuint16_t(303), 67491 Tuint16_t(304), Tuint16_t(305), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), 67492 Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), 67493 Tuint16_t(306), Tuint16_t(306), Tuint16_t(306), Tuint16_t(306), Tuint16_t(306), Tuint16_t(306), Tuint16_t(306), Tuint16_t(306), Tuint16_t(306), Tuint16_t(306), Tuint16_t(306), Tuint16_t(306), Tuint16_t(306), Tuint16_t(306), Tuint16_t(306), Tuint16_t(306), 67494 Tuint16_t(307), Tuint16_t(307), Tuint16_t(307), Tuint16_t(307), Tuint16_t(307), Tuint16_t(307), Tuint16_t(307), Tuint16_t(307), Tuint16_t(307), Tuint16_t(307), Tuint16_t(307), Tuint16_t(302), Tuint16_t(302), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), 67495 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67496 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67497 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67498 67499 // block 15 67500 Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), 67501 Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), 67502 Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(308), Tuint16_t(309), Tuint16_t(309), Tuint16_t(309), Tuint16_t(309), Tuint16_t(309), Tuint16_t(309), Tuint16_t(309), Tuint16_t(309), Tuint16_t(309), Tuint16_t(309), 67503 Tuint16_t(309), Tuint16_t(308), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), 67504 Tuint16_t(310), Tuint16_t(310), Tuint16_t(310), Tuint16_t(310), Tuint16_t(310), Tuint16_t(310), Tuint16_t(310), Tuint16_t(310), Tuint16_t(310), Tuint16_t(310), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), 67505 Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), 67506 Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(311), Tuint16_t(312), Tuint16_t(312), Tuint16_t(312), Tuint16_t(312), Tuint16_t(312), 67507 Tuint16_t(312), Tuint16_t(312), Tuint16_t(312), Tuint16_t(312), Tuint16_t(313), Tuint16_t(313), Tuint16_t(314), Tuint16_t(315), Tuint16_t(316), Tuint16_t(317), Tuint16_t(318), Tuint16_t(262), Tuint16_t(262), Tuint16_t(319), Tuint16_t(320), Tuint16_t(320), 67508 67509 // block 16 67510 Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), 67511 Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), Tuint16_t(321), Tuint16_t(322), Tuint16_t(322), Tuint16_t(323), Tuint16_t(323), Tuint16_t(324), Tuint16_t(322), Tuint16_t(322), Tuint16_t(322), Tuint16_t(322), Tuint16_t(322), 67512 Tuint16_t(322), Tuint16_t(322), Tuint16_t(322), Tuint16_t(322), Tuint16_t(324), Tuint16_t(322), Tuint16_t(322), Tuint16_t(322), Tuint16_t(324), Tuint16_t(322), Tuint16_t(322), Tuint16_t(322), Tuint16_t(322), Tuint16_t(325), Tuint16_t(262), Tuint16_t(262), 67513 Tuint16_t(326), Tuint16_t(326), Tuint16_t(326), Tuint16_t(326), Tuint16_t(326), Tuint16_t(326), Tuint16_t(326), Tuint16_t(327), Tuint16_t(326), Tuint16_t(327), Tuint16_t(326), Tuint16_t(326), Tuint16_t(326), Tuint16_t(327), Tuint16_t(327), Tuint16_t(262), 67514 Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), 67515 Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(328), Tuint16_t(329), Tuint16_t(329), Tuint16_t(329), Tuint16_t(262), Tuint16_t(262), Tuint16_t(330), Tuint16_t(262), 67516 Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(304), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), 67517 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67518 67519 // block 17 67520 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(331), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(302), 67521 Tuint16_t(272), Tuint16_t(272), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(291), Tuint16_t(291), Tuint16_t(291), Tuint16_t(291), Tuint16_t(291), Tuint16_t(291), Tuint16_t(291), Tuint16_t(291), 67522 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67523 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 67524 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(296), Tuint16_t(291), Tuint16_t(291), Tuint16_t(291), Tuint16_t(291), Tuint16_t(291), Tuint16_t(291), 67525 Tuint16_t(291), Tuint16_t(291), Tuint16_t(291), Tuint16_t(332), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), Tuint16_t(281), 67526 Tuint16_t(332), Tuint16_t(332), Tuint16_t(273), Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(291), Tuint16_t(291), Tuint16_t(291), Tuint16_t(291), Tuint16_t(291), Tuint16_t(291), 67527 Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(290), Tuint16_t(281), 67528 67529 // block 18 67530 Tuint16_t(333), Tuint16_t(333), Tuint16_t(333), Tuint16_t(334), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), 67531 Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), 67532 Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), 67533 Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(333), Tuint16_t(334), Tuint16_t(336), Tuint16_t(335), Tuint16_t(334), Tuint16_t(334), 67534 Tuint16_t(334), Tuint16_t(333), Tuint16_t(333), Tuint16_t(333), Tuint16_t(333), Tuint16_t(333), Tuint16_t(333), Tuint16_t(333), Tuint16_t(333), Tuint16_t(334), Tuint16_t(334), Tuint16_t(334), Tuint16_t(334), Tuint16_t(337), Tuint16_t(334), Tuint16_t(334), 67535 Tuint16_t(335), Tuint16_t(338), Tuint16_t(339), Tuint16_t(154), Tuint16_t(154), Tuint16_t(333), Tuint16_t(333), Tuint16_t(333), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), 67536 Tuint16_t(335), Tuint16_t(335), Tuint16_t(333), Tuint16_t(333), Tuint16_t(340), Tuint16_t(341), Tuint16_t(342), Tuint16_t(342), Tuint16_t(342), Tuint16_t(342), Tuint16_t(342), Tuint16_t(342), Tuint16_t(342), Tuint16_t(342), Tuint16_t(342), Tuint16_t(342), 67537 Tuint16_t(343), Tuint16_t(344), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), 67538 67539 // block 19 67540 Tuint16_t(345), Tuint16_t(346), Tuint16_t(347), Tuint16_t(347), Tuint16_t(163), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(163), Tuint16_t(163), Tuint16_t(345), 67541 Tuint16_t(345), Tuint16_t(163), Tuint16_t(163), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), 67542 Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(163), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), 67543 Tuint16_t(345), Tuint16_t(163), Tuint16_t(345), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(345), Tuint16_t(163), Tuint16_t(163), Tuint16_t(348), Tuint16_t(345), Tuint16_t(349), Tuint16_t(347), 67544 Tuint16_t(347), Tuint16_t(346), Tuint16_t(346), Tuint16_t(346), Tuint16_t(346), Tuint16_t(163), Tuint16_t(163), Tuint16_t(347), Tuint16_t(347), Tuint16_t(163), Tuint16_t(163), Tuint16_t(347), Tuint16_t(347), Tuint16_t(350), Tuint16_t(345), Tuint16_t(163), 67545 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(349), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(345), Tuint16_t(345), Tuint16_t(163), Tuint16_t(345), 67546 Tuint16_t(345), Tuint16_t(345), Tuint16_t(346), Tuint16_t(346), Tuint16_t(163), Tuint16_t(163), Tuint16_t(351), Tuint16_t(351), Tuint16_t(351), Tuint16_t(351), Tuint16_t(351), Tuint16_t(351), Tuint16_t(351), Tuint16_t(351), Tuint16_t(351), Tuint16_t(351), 67547 Tuint16_t(345), Tuint16_t(345), Tuint16_t(352), Tuint16_t(352), Tuint16_t(353), Tuint16_t(353), Tuint16_t(353), Tuint16_t(353), Tuint16_t(353), Tuint16_t(353), Tuint16_t(354), Tuint16_t(352), Tuint16_t(345), Tuint16_t(355), Tuint16_t(356), Tuint16_t(163), 67548 67549 // block 20 67550 Tuint16_t(163), Tuint16_t(357), Tuint16_t(357), Tuint16_t(358), Tuint16_t(163), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(359), 67551 Tuint16_t(359), Tuint16_t(163), Tuint16_t(163), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), 67552 Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(163), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), 67553 Tuint16_t(359), Tuint16_t(163), Tuint16_t(359), Tuint16_t(359), Tuint16_t(163), Tuint16_t(359), Tuint16_t(359), Tuint16_t(163), Tuint16_t(359), Tuint16_t(359), Tuint16_t(163), Tuint16_t(163), Tuint16_t(360), Tuint16_t(163), Tuint16_t(358), Tuint16_t(358), 67554 Tuint16_t(358), Tuint16_t(357), Tuint16_t(357), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(357), Tuint16_t(357), Tuint16_t(163), Tuint16_t(163), Tuint16_t(357), Tuint16_t(357), Tuint16_t(361), Tuint16_t(163), Tuint16_t(163), 67555 Tuint16_t(163), Tuint16_t(357), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(163), Tuint16_t(359), Tuint16_t(163), 67556 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(362), Tuint16_t(362), Tuint16_t(362), Tuint16_t(362), Tuint16_t(362), Tuint16_t(362), Tuint16_t(362), Tuint16_t(362), Tuint16_t(362), Tuint16_t(362), 67557 Tuint16_t(357), Tuint16_t(357), Tuint16_t(359), Tuint16_t(359), Tuint16_t(359), Tuint16_t(357), Tuint16_t(363), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67558 67559 // block 21 67560 Tuint16_t(163), Tuint16_t(364), Tuint16_t(364), Tuint16_t(365), Tuint16_t(163), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(163), Tuint16_t(366), 67561 Tuint16_t(366), Tuint16_t(366), Tuint16_t(163), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), 67562 Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(163), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), 67563 Tuint16_t(366), Tuint16_t(163), Tuint16_t(366), Tuint16_t(366), Tuint16_t(163), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(366), Tuint16_t(163), Tuint16_t(163), Tuint16_t(367), Tuint16_t(366), Tuint16_t(365), Tuint16_t(365), 67564 Tuint16_t(365), Tuint16_t(364), Tuint16_t(364), Tuint16_t(364), Tuint16_t(364), Tuint16_t(364), Tuint16_t(163), Tuint16_t(364), Tuint16_t(364), Tuint16_t(365), Tuint16_t(163), Tuint16_t(365), Tuint16_t(365), Tuint16_t(368), Tuint16_t(163), Tuint16_t(163), 67565 Tuint16_t(366), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67566 Tuint16_t(366), Tuint16_t(366), Tuint16_t(364), Tuint16_t(364), Tuint16_t(163), Tuint16_t(163), Tuint16_t(369), Tuint16_t(369), Tuint16_t(369), Tuint16_t(369), Tuint16_t(369), Tuint16_t(369), Tuint16_t(369), Tuint16_t(369), Tuint16_t(369), Tuint16_t(369), 67567 Tuint16_t(370), Tuint16_t(371), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(366), Tuint16_t(364), Tuint16_t(364), Tuint16_t(364), Tuint16_t(367), Tuint16_t(367), Tuint16_t(367), 67568 67569 // block 22 67570 Tuint16_t(163), Tuint16_t(372), Tuint16_t(373), Tuint16_t(373), Tuint16_t(163), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(163), Tuint16_t(163), Tuint16_t(374), 67571 Tuint16_t(374), Tuint16_t(163), Tuint16_t(163), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), 67572 Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(163), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), 67573 Tuint16_t(374), Tuint16_t(163), Tuint16_t(374), Tuint16_t(374), Tuint16_t(163), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(374), Tuint16_t(163), Tuint16_t(163), Tuint16_t(375), Tuint16_t(374), Tuint16_t(376), Tuint16_t(372), 67574 Tuint16_t(373), Tuint16_t(372), Tuint16_t(372), Tuint16_t(372), Tuint16_t(372), Tuint16_t(163), Tuint16_t(163), Tuint16_t(373), Tuint16_t(373), Tuint16_t(163), Tuint16_t(163), Tuint16_t(373), Tuint16_t(373), Tuint16_t(377), Tuint16_t(163), Tuint16_t(163), 67575 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(378), Tuint16_t(372), Tuint16_t(376), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(374), Tuint16_t(374), Tuint16_t(163), Tuint16_t(374), 67576 Tuint16_t(374), Tuint16_t(374), Tuint16_t(372), Tuint16_t(372), Tuint16_t(163), Tuint16_t(163), Tuint16_t(379), Tuint16_t(379), Tuint16_t(379), Tuint16_t(379), Tuint16_t(379), Tuint16_t(379), Tuint16_t(379), Tuint16_t(379), Tuint16_t(379), Tuint16_t(379), 67577 Tuint16_t(380), Tuint16_t(374), Tuint16_t(381), Tuint16_t(381), Tuint16_t(381), Tuint16_t(381), Tuint16_t(381), Tuint16_t(381), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67578 67579 // block 23 67580 Tuint16_t(163), Tuint16_t(163), Tuint16_t(382), Tuint16_t(383), Tuint16_t(163), Tuint16_t(383), Tuint16_t(383), Tuint16_t(383), Tuint16_t(383), Tuint16_t(383), Tuint16_t(383), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(383), Tuint16_t(383), 67581 Tuint16_t(383), Tuint16_t(163), Tuint16_t(383), Tuint16_t(383), Tuint16_t(383), Tuint16_t(383), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(383), Tuint16_t(383), Tuint16_t(163), Tuint16_t(383), Tuint16_t(163), Tuint16_t(383), Tuint16_t(383), 67582 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(383), Tuint16_t(383), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(383), Tuint16_t(383), Tuint16_t(383), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(383), Tuint16_t(383), 67583 Tuint16_t(383), Tuint16_t(383), Tuint16_t(383), Tuint16_t(383), Tuint16_t(383), Tuint16_t(383), Tuint16_t(383), Tuint16_t(383), Tuint16_t(383), Tuint16_t(383), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(384), Tuint16_t(385), 67584 Tuint16_t(382), Tuint16_t(385), Tuint16_t(385), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(385), Tuint16_t(385), Tuint16_t(385), Tuint16_t(163), Tuint16_t(385), Tuint16_t(385), Tuint16_t(385), Tuint16_t(386), Tuint16_t(163), Tuint16_t(163), 67585 Tuint16_t(383), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(384), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67586 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(387), Tuint16_t(387), Tuint16_t(387), Tuint16_t(387), Tuint16_t(387), Tuint16_t(387), Tuint16_t(387), Tuint16_t(387), Tuint16_t(387), Tuint16_t(387), 67587 Tuint16_t(388), Tuint16_t(388), Tuint16_t(388), Tuint16_t(389), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(391), Tuint16_t(390), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67588 67589 // block 24 67590 Tuint16_t(392), Tuint16_t(393), Tuint16_t(393), Tuint16_t(393), Tuint16_t(394), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(163), Tuint16_t(395), Tuint16_t(395), 67591 Tuint16_t(395), Tuint16_t(163), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), 67592 Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(163), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), 67593 Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(163), Tuint16_t(163), Tuint16_t(396), Tuint16_t(395), Tuint16_t(392), Tuint16_t(392), 67594 Tuint16_t(392), Tuint16_t(393), Tuint16_t(393), Tuint16_t(393), Tuint16_t(393), Tuint16_t(163), Tuint16_t(392), Tuint16_t(392), Tuint16_t(392), Tuint16_t(163), Tuint16_t(392), Tuint16_t(392), Tuint16_t(392), Tuint16_t(397), Tuint16_t(163), Tuint16_t(163), 67595 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(392), Tuint16_t(392), Tuint16_t(163), Tuint16_t(395), Tuint16_t(395), Tuint16_t(395), Tuint16_t(163), Tuint16_t(163), Tuint16_t(395), Tuint16_t(163), Tuint16_t(163), 67596 Tuint16_t(395), Tuint16_t(395), Tuint16_t(392), Tuint16_t(392), Tuint16_t(163), Tuint16_t(163), Tuint16_t(398), Tuint16_t(398), Tuint16_t(398), Tuint16_t(398), Tuint16_t(398), Tuint16_t(398), Tuint16_t(398), Tuint16_t(398), Tuint16_t(398), Tuint16_t(398), 67597 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(399), Tuint16_t(400), Tuint16_t(400), Tuint16_t(400), Tuint16_t(400), Tuint16_t(400), Tuint16_t(400), Tuint16_t(400), Tuint16_t(401), 67598 67599 // block 25 67600 Tuint16_t(402), Tuint16_t(403), Tuint16_t(404), Tuint16_t(404), Tuint16_t(405), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(163), Tuint16_t(402), Tuint16_t(402), 67601 Tuint16_t(402), Tuint16_t(163), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), 67602 Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(163), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), 67603 Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(163), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(402), Tuint16_t(163), Tuint16_t(163), Tuint16_t(406), Tuint16_t(402), Tuint16_t(404), Tuint16_t(407), 67604 Tuint16_t(404), Tuint16_t(404), Tuint16_t(408), Tuint16_t(404), Tuint16_t(404), Tuint16_t(163), Tuint16_t(407), Tuint16_t(404), Tuint16_t(404), Tuint16_t(163), Tuint16_t(404), Tuint16_t(404), Tuint16_t(403), Tuint16_t(409), Tuint16_t(163), Tuint16_t(163), 67605 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(408), Tuint16_t(408), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(402), Tuint16_t(402), Tuint16_t(163), 67606 Tuint16_t(402), Tuint16_t(402), Tuint16_t(403), Tuint16_t(403), Tuint16_t(163), Tuint16_t(163), Tuint16_t(410), Tuint16_t(410), Tuint16_t(410), Tuint16_t(410), Tuint16_t(410), Tuint16_t(410), Tuint16_t(410), Tuint16_t(410), Tuint16_t(410), Tuint16_t(410), 67607 Tuint16_t(163), Tuint16_t(402), Tuint16_t(402), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67608 67609 // block 26 67610 Tuint16_t(411), Tuint16_t(411), Tuint16_t(412), Tuint16_t(412), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(163), Tuint16_t(413), Tuint16_t(413), 67611 Tuint16_t(413), Tuint16_t(163), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), 67612 Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), 67613 Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(414), Tuint16_t(414), Tuint16_t(413), Tuint16_t(415), Tuint16_t(412), 67614 Tuint16_t(412), Tuint16_t(411), Tuint16_t(411), Tuint16_t(411), Tuint16_t(411), Tuint16_t(163), Tuint16_t(412), Tuint16_t(412), Tuint16_t(412), Tuint16_t(163), Tuint16_t(412), Tuint16_t(412), Tuint16_t(412), Tuint16_t(414), Tuint16_t(416), Tuint16_t(417), 67615 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(415), Tuint16_t(418), Tuint16_t(418), Tuint16_t(418), Tuint16_t(418), Tuint16_t(418), Tuint16_t(418), Tuint16_t(418), Tuint16_t(413), 67616 Tuint16_t(413), Tuint16_t(413), Tuint16_t(411), Tuint16_t(411), Tuint16_t(163), Tuint16_t(163), Tuint16_t(419), Tuint16_t(419), Tuint16_t(419), Tuint16_t(419), Tuint16_t(419), Tuint16_t(419), Tuint16_t(419), Tuint16_t(419), Tuint16_t(419), Tuint16_t(419), 67617 Tuint16_t(418), Tuint16_t(418), Tuint16_t(418), Tuint16_t(418), Tuint16_t(418), Tuint16_t(418), Tuint16_t(418), Tuint16_t(418), Tuint16_t(418), Tuint16_t(417), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), Tuint16_t(413), 67618 67619 // block 27 67620 Tuint16_t(163), Tuint16_t(420), Tuint16_t(421), Tuint16_t(421), Tuint16_t(163), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), 67621 Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), 67622 Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), 67623 Tuint16_t(422), Tuint16_t(422), Tuint16_t(163), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(163), Tuint16_t(422), Tuint16_t(163), Tuint16_t(163), 67624 Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(422), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(423), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(424), 67625 Tuint16_t(421), Tuint16_t(421), Tuint16_t(420), Tuint16_t(420), Tuint16_t(420), Tuint16_t(163), Tuint16_t(420), Tuint16_t(163), Tuint16_t(421), Tuint16_t(421), Tuint16_t(421), Tuint16_t(421), Tuint16_t(421), Tuint16_t(421), Tuint16_t(421), Tuint16_t(424), 67626 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(425), Tuint16_t(425), Tuint16_t(425), Tuint16_t(425), Tuint16_t(425), Tuint16_t(425), Tuint16_t(425), Tuint16_t(425), Tuint16_t(425), Tuint16_t(425), 67627 Tuint16_t(163), Tuint16_t(163), Tuint16_t(421), Tuint16_t(421), Tuint16_t(426), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67628 67629 // block 28 67630 Tuint16_t(163), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), 67631 Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), 67632 Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), Tuint16_t(427), 67633 Tuint16_t(427), Tuint16_t(428), Tuint16_t(427), Tuint16_t(429), Tuint16_t(428), Tuint16_t(428), Tuint16_t(428), Tuint16_t(428), Tuint16_t(428), Tuint16_t(428), Tuint16_t(430), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(431), 67634 Tuint16_t(432), Tuint16_t(432), Tuint16_t(432), Tuint16_t(432), Tuint16_t(432), Tuint16_t(427), Tuint16_t(433), Tuint16_t(434), Tuint16_t(434), Tuint16_t(434), Tuint16_t(434), Tuint16_t(434), Tuint16_t(434), Tuint16_t(428), Tuint16_t(434), Tuint16_t(435), 67635 Tuint16_t(436), Tuint16_t(436), Tuint16_t(436), Tuint16_t(436), Tuint16_t(436), Tuint16_t(436), Tuint16_t(436), Tuint16_t(436), Tuint16_t(436), Tuint16_t(436), Tuint16_t(437), Tuint16_t(437), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67636 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67637 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67638 67639 // block 29 67640 Tuint16_t(163), Tuint16_t(438), Tuint16_t(438), Tuint16_t(163), Tuint16_t(438), Tuint16_t(163), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(163), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), 67641 Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), 67642 Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(163), Tuint16_t(438), Tuint16_t(163), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), 67643 Tuint16_t(438), Tuint16_t(439), Tuint16_t(438), Tuint16_t(440), Tuint16_t(439), Tuint16_t(439), Tuint16_t(439), Tuint16_t(439), Tuint16_t(439), Tuint16_t(439), Tuint16_t(441), Tuint16_t(439), Tuint16_t(439), Tuint16_t(438), Tuint16_t(163), Tuint16_t(163), 67644 Tuint16_t(442), Tuint16_t(442), Tuint16_t(442), Tuint16_t(442), Tuint16_t(442), Tuint16_t(163), Tuint16_t(443), Tuint16_t(163), Tuint16_t(444), Tuint16_t(444), Tuint16_t(444), Tuint16_t(444), Tuint16_t(444), Tuint16_t(439), Tuint16_t(163), Tuint16_t(163), 67645 Tuint16_t(445), Tuint16_t(445), Tuint16_t(445), Tuint16_t(445), Tuint16_t(445), Tuint16_t(445), Tuint16_t(445), Tuint16_t(445), Tuint16_t(445), Tuint16_t(445), Tuint16_t(163), Tuint16_t(163), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), Tuint16_t(438), 67646 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67647 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67648 67649 // block 30 67650 Tuint16_t(446), Tuint16_t(447), Tuint16_t(447), Tuint16_t(447), Tuint16_t(448), Tuint16_t(448), Tuint16_t(448), Tuint16_t(448), Tuint16_t(449), Tuint16_t(448), Tuint16_t(448), Tuint16_t(448), Tuint16_t(448), Tuint16_t(449), Tuint16_t(449), Tuint16_t(449), 67651 Tuint16_t(449), Tuint16_t(449), Tuint16_t(449), Tuint16_t(447), Tuint16_t(448), Tuint16_t(447), Tuint16_t(447), Tuint16_t(447), Tuint16_t(450), Tuint16_t(450), Tuint16_t(447), Tuint16_t(447), Tuint16_t(447), Tuint16_t(447), Tuint16_t(447), Tuint16_t(447), 67652 Tuint16_t(451), Tuint16_t(451), Tuint16_t(451), Tuint16_t(451), Tuint16_t(451), Tuint16_t(451), Tuint16_t(451), Tuint16_t(451), Tuint16_t(451), Tuint16_t(451), Tuint16_t(452), Tuint16_t(452), Tuint16_t(452), Tuint16_t(452), Tuint16_t(452), Tuint16_t(452), 67653 Tuint16_t(452), Tuint16_t(452), Tuint16_t(452), Tuint16_t(452), Tuint16_t(447), Tuint16_t(450), Tuint16_t(447), Tuint16_t(450), Tuint16_t(447), Tuint16_t(450), Tuint16_t(453), Tuint16_t(454), Tuint16_t(453), Tuint16_t(454), Tuint16_t(455), Tuint16_t(455), 67654 Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(163), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), 67655 Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), 67656 Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67657 Tuint16_t(163), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(457), Tuint16_t(456), Tuint16_t(457), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(458), 67658 67659 // block 31 67660 Tuint16_t(456), Tuint16_t(456), Tuint16_t(450), Tuint16_t(450), Tuint16_t(459), Tuint16_t(448), Tuint16_t(450), Tuint16_t(450), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(446), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), 67661 Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(163), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), 67662 Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), 67663 Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(456), Tuint16_t(163), Tuint16_t(447), Tuint16_t(447), 67664 Tuint16_t(447), Tuint16_t(447), Tuint16_t(447), Tuint16_t(447), Tuint16_t(447), Tuint16_t(447), Tuint16_t(450), Tuint16_t(447), Tuint16_t(447), Tuint16_t(447), Tuint16_t(447), Tuint16_t(447), Tuint16_t(447), Tuint16_t(163), Tuint16_t(447), Tuint16_t(447), 67665 Tuint16_t(448), Tuint16_t(448), Tuint16_t(448), Tuint16_t(448), Tuint16_t(448), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(448), Tuint16_t(448), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67666 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67667 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67668 67669 // block 32 67670 Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), 67671 Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), 67672 Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(462), Tuint16_t(462), Tuint16_t(463), Tuint16_t(463), Tuint16_t(463), 67673 Tuint16_t(463), Tuint16_t(464), Tuint16_t(463), Tuint16_t(463), Tuint16_t(463), Tuint16_t(463), Tuint16_t(463), Tuint16_t(465), Tuint16_t(462), Tuint16_t(466), Tuint16_t(466), Tuint16_t(464), Tuint16_t(464), Tuint16_t(463), Tuint16_t(463), Tuint16_t(461), 67674 Tuint16_t(467), Tuint16_t(467), Tuint16_t(467), Tuint16_t(467), Tuint16_t(467), Tuint16_t(467), Tuint16_t(467), Tuint16_t(467), Tuint16_t(467), Tuint16_t(467), Tuint16_t(468), Tuint16_t(468), Tuint16_t(469), Tuint16_t(469), Tuint16_t(469), Tuint16_t(469), 67675 Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(464), Tuint16_t(464), Tuint16_t(463), Tuint16_t(463), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(463), Tuint16_t(463), 67676 Tuint16_t(463), Tuint16_t(461), Tuint16_t(462), Tuint16_t(470), Tuint16_t(470), Tuint16_t(461), Tuint16_t(461), Tuint16_t(462), Tuint16_t(462), Tuint16_t(470), Tuint16_t(470), Tuint16_t(470), Tuint16_t(470), Tuint16_t(470), Tuint16_t(461), Tuint16_t(461), 67677 Tuint16_t(461), Tuint16_t(463), Tuint16_t(463), Tuint16_t(463), Tuint16_t(463), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), 67678 67679 // block 33 67680 Tuint16_t(461), Tuint16_t(461), Tuint16_t(463), Tuint16_t(462), Tuint16_t(464), Tuint16_t(463), Tuint16_t(463), Tuint16_t(470), Tuint16_t(470), Tuint16_t(470), Tuint16_t(470), Tuint16_t(470), Tuint16_t(470), Tuint16_t(471), Tuint16_t(461), Tuint16_t(470), 67681 Tuint16_t(472), Tuint16_t(472), Tuint16_t(472), Tuint16_t(472), Tuint16_t(472), Tuint16_t(472), Tuint16_t(472), Tuint16_t(472), Tuint16_t(472), Tuint16_t(472), Tuint16_t(470), Tuint16_t(470), Tuint16_t(462), Tuint16_t(463), Tuint16_t(473), Tuint16_t(473), 67682 Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), 67683 Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), 67684 Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(474), Tuint16_t(163), Tuint16_t(474), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(474), Tuint16_t(163), Tuint16_t(163), 67685 Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), 67686 Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), 67687 Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), Tuint16_t(476), Tuint16_t(477), Tuint16_t(475), Tuint16_t(475), Tuint16_t(475), 67688 67689 // block 34 67690 Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), 67691 Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), 67692 Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), 67693 Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), 67694 Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), 67695 Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(479), 67696 Tuint16_t(480), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), 67697 Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), 67698 67699 // block 35 67700 Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), 67701 Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), 67702 Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), 67703 Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), 67704 Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), 67705 Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), 67706 Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), 67707 Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), 67708 67709 // block 36 67710 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67711 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67712 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67713 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67714 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(163), 67715 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(483), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(163), 67716 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67717 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67718 67719 // block 37 67720 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(163), 67721 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67722 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67723 Tuint16_t(483), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), 67724 Tuint16_t(483), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67725 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67726 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67727 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67728 67729 // block 38 67730 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67731 Tuint16_t(483), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67732 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67733 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67734 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67735 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(163), Tuint16_t(484), Tuint16_t(484), Tuint16_t(484), 67736 Tuint16_t(485), Tuint16_t(486), Tuint16_t(487), Tuint16_t(486), Tuint16_t(486), Tuint16_t(486), Tuint16_t(486), Tuint16_t(487), Tuint16_t(487), Tuint16_t(488), Tuint16_t(488), Tuint16_t(488), Tuint16_t(488), Tuint16_t(488), Tuint16_t(488), Tuint16_t(488), 67737 Tuint16_t(488), Tuint16_t(488), Tuint16_t(489), Tuint16_t(489), Tuint16_t(489), Tuint16_t(489), Tuint16_t(489), Tuint16_t(489), Tuint16_t(489), Tuint16_t(489), Tuint16_t(489), Tuint16_t(489), Tuint16_t(489), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67738 67739 // block 39 67740 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 67741 Tuint16_t(490), Tuint16_t(490), Tuint16_t(490), Tuint16_t(490), Tuint16_t(490), Tuint16_t(490), Tuint16_t(490), Tuint16_t(490), Tuint16_t(490), Tuint16_t(490), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67742 Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), 67743 Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), 67744 Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), 67745 Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), 67746 Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), Tuint16_t(491), 67747 Tuint16_t(492), Tuint16_t(492), Tuint16_t(492), Tuint16_t(492), Tuint16_t(492), Tuint16_t(492), Tuint16_t(163), Tuint16_t(163), Tuint16_t(493), Tuint16_t(493), Tuint16_t(493), Tuint16_t(493), Tuint16_t(493), Tuint16_t(493), Tuint16_t(163), Tuint16_t(163), 67748 67749 // block 40 67750 Tuint16_t(494), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67751 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67752 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67753 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67754 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67755 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67756 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67757 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67758 67759 // block 41 67760 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67761 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67762 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67763 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67764 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67765 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67766 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67767 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67768 67769 // block 42 67770 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67771 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67772 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67773 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67774 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67775 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67776 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(496), Tuint16_t(497), Tuint16_t(495), 67777 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67778 67779 // block 43 67780 Tuint16_t(498), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), 67781 Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(499), Tuint16_t(500), Tuint16_t(501), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67782 Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), 67783 Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), 67784 Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), 67785 Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), 67786 Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(503), Tuint16_t(503), Tuint16_t(503), Tuint16_t(504), Tuint16_t(504), 67787 Tuint16_t(504), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(502), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67788 67789 // block 44 67790 Tuint16_t(505), Tuint16_t(505), Tuint16_t(505), Tuint16_t(505), Tuint16_t(505), Tuint16_t(505), Tuint16_t(505), Tuint16_t(505), Tuint16_t(505), Tuint16_t(505), Tuint16_t(505), Tuint16_t(505), Tuint16_t(505), Tuint16_t(505), Tuint16_t(505), Tuint16_t(505), 67791 Tuint16_t(505), Tuint16_t(505), Tuint16_t(506), Tuint16_t(506), Tuint16_t(507), Tuint16_t(508), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(505), 67792 Tuint16_t(509), Tuint16_t(509), Tuint16_t(509), Tuint16_t(509), Tuint16_t(509), Tuint16_t(509), Tuint16_t(509), Tuint16_t(509), Tuint16_t(509), Tuint16_t(509), Tuint16_t(509), Tuint16_t(509), Tuint16_t(509), Tuint16_t(509), Tuint16_t(509), Tuint16_t(509), 67793 Tuint16_t(509), Tuint16_t(509), Tuint16_t(510), Tuint16_t(510), Tuint16_t(511), Tuint16_t(512), Tuint16_t(512), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67794 Tuint16_t(513), Tuint16_t(513), Tuint16_t(513), Tuint16_t(513), Tuint16_t(513), Tuint16_t(513), Tuint16_t(513), Tuint16_t(513), Tuint16_t(513), Tuint16_t(513), Tuint16_t(513), Tuint16_t(513), Tuint16_t(513), Tuint16_t(513), Tuint16_t(513), Tuint16_t(513), 67795 Tuint16_t(513), Tuint16_t(513), Tuint16_t(514), Tuint16_t(514), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67796 Tuint16_t(515), Tuint16_t(515), Tuint16_t(515), Tuint16_t(515), Tuint16_t(515), Tuint16_t(515), Tuint16_t(515), Tuint16_t(515), Tuint16_t(515), Tuint16_t(515), Tuint16_t(515), Tuint16_t(515), Tuint16_t(515), Tuint16_t(163), Tuint16_t(515), Tuint16_t(515), 67797 Tuint16_t(515), Tuint16_t(163), Tuint16_t(516), Tuint16_t(516), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67798 67799 // block 45 67800 Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), 67801 Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), 67802 Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(518), Tuint16_t(518), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), 67803 Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(517), Tuint16_t(519), Tuint16_t(519), Tuint16_t(520), Tuint16_t(521), Tuint16_t(521), Tuint16_t(521), Tuint16_t(521), Tuint16_t(521), Tuint16_t(521), Tuint16_t(521), Tuint16_t(520), Tuint16_t(520), 67804 Tuint16_t(520), Tuint16_t(520), Tuint16_t(520), Tuint16_t(520), Tuint16_t(520), Tuint16_t(520), Tuint16_t(521), Tuint16_t(520), Tuint16_t(520), Tuint16_t(522), Tuint16_t(522), Tuint16_t(522), Tuint16_t(522), Tuint16_t(522), Tuint16_t(522), Tuint16_t(522), 67805 Tuint16_t(522), Tuint16_t(522), Tuint16_t(523), Tuint16_t(522), Tuint16_t(524), Tuint16_t(524), Tuint16_t(524), Tuint16_t(525), Tuint16_t(526), Tuint16_t(526), Tuint16_t(524), Tuint16_t(527), Tuint16_t(517), Tuint16_t(522), Tuint16_t(163), Tuint16_t(163), 67806 Tuint16_t(528), Tuint16_t(528), Tuint16_t(528), Tuint16_t(528), Tuint16_t(528), Tuint16_t(528), Tuint16_t(528), Tuint16_t(528), Tuint16_t(528), Tuint16_t(528), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67807 Tuint16_t(529), Tuint16_t(529), Tuint16_t(529), Tuint16_t(529), Tuint16_t(529), Tuint16_t(529), Tuint16_t(529), Tuint16_t(529), Tuint16_t(529), Tuint16_t(529), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67808 67809 // block 46 67810 Tuint16_t(530), Tuint16_t(530), Tuint16_t(531), Tuint16_t(532), Tuint16_t(533), Tuint16_t(531), Tuint16_t(534), Tuint16_t(530), Tuint16_t(533), Tuint16_t(535), Tuint16_t(536), Tuint16_t(537), Tuint16_t(537), Tuint16_t(537), Tuint16_t(538), Tuint16_t(537), 67811 Tuint16_t(539), Tuint16_t(539), Tuint16_t(539), Tuint16_t(539), Tuint16_t(539), Tuint16_t(539), Tuint16_t(539), Tuint16_t(539), Tuint16_t(539), Tuint16_t(539), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67812 Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), 67813 Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), 67814 Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(541), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), 67815 Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), 67816 Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), 67817 Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67818 67819 // block 47 67820 Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(542), Tuint16_t(542), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), 67821 Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), 67822 Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(540), Tuint16_t(543), Tuint16_t(540), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67823 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67824 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67825 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67826 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 67827 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67828 67829 // block 48 67830 Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), 67831 Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(544), Tuint16_t(163), 67832 Tuint16_t(545), Tuint16_t(545), Tuint16_t(545), Tuint16_t(546), Tuint16_t(546), Tuint16_t(546), Tuint16_t(546), Tuint16_t(545), Tuint16_t(545), Tuint16_t(546), Tuint16_t(546), Tuint16_t(546), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67833 Tuint16_t(546), Tuint16_t(546), Tuint16_t(545), Tuint16_t(546), Tuint16_t(546), Tuint16_t(546), Tuint16_t(546), Tuint16_t(546), Tuint16_t(546), Tuint16_t(547), Tuint16_t(547), Tuint16_t(547), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67834 Tuint16_t(548), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(549), Tuint16_t(549), Tuint16_t(550), Tuint16_t(550), Tuint16_t(550), Tuint16_t(550), Tuint16_t(550), Tuint16_t(550), Tuint16_t(550), Tuint16_t(550), Tuint16_t(550), Tuint16_t(550), 67835 Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), 67836 Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(163), Tuint16_t(163), 67837 Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(551), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67838 67839 // block 49 67840 Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), 67841 Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), 67842 Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67843 Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(553), Tuint16_t(553), Tuint16_t(553), Tuint16_t(552), Tuint16_t(552), Tuint16_t(553), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), 67844 Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(552), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67845 Tuint16_t(554), Tuint16_t(554), Tuint16_t(554), Tuint16_t(554), Tuint16_t(554), Tuint16_t(554), Tuint16_t(554), Tuint16_t(554), Tuint16_t(554), Tuint16_t(554), Tuint16_t(555), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(556), Tuint16_t(556), 67846 Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), 67847 Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), Tuint16_t(557), 67848 67849 // block 50 67850 Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), 67851 Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(558), Tuint16_t(559), Tuint16_t(559), Tuint16_t(560), Tuint16_t(560), Tuint16_t(559), Tuint16_t(163), Tuint16_t(163), Tuint16_t(561), Tuint16_t(561), 67852 Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), 67853 Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), 67854 Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), 67855 Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(562), Tuint16_t(563), Tuint16_t(564), Tuint16_t(563), Tuint16_t(564), Tuint16_t(564), Tuint16_t(564), Tuint16_t(564), Tuint16_t(564), Tuint16_t(564), Tuint16_t(564), Tuint16_t(163), 67856 Tuint16_t(565), Tuint16_t(566), Tuint16_t(564), Tuint16_t(566), Tuint16_t(566), Tuint16_t(564), Tuint16_t(564), Tuint16_t(564), Tuint16_t(564), Tuint16_t(564), Tuint16_t(564), Tuint16_t(564), Tuint16_t(564), Tuint16_t(563), Tuint16_t(563), Tuint16_t(563), 67857 Tuint16_t(563), Tuint16_t(563), Tuint16_t(563), Tuint16_t(564), Tuint16_t(564), Tuint16_t(567), Tuint16_t(567), Tuint16_t(567), Tuint16_t(567), Tuint16_t(567), Tuint16_t(567), Tuint16_t(567), Tuint16_t(567), Tuint16_t(163), Tuint16_t(163), Tuint16_t(567), 67858 67859 // block 51 67860 Tuint16_t(568), Tuint16_t(568), Tuint16_t(568), Tuint16_t(568), Tuint16_t(568), Tuint16_t(568), Tuint16_t(568), Tuint16_t(568), Tuint16_t(568), Tuint16_t(568), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67861 Tuint16_t(568), Tuint16_t(568), Tuint16_t(568), Tuint16_t(568), Tuint16_t(568), Tuint16_t(568), Tuint16_t(568), Tuint16_t(568), Tuint16_t(568), Tuint16_t(568), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67862 Tuint16_t(569), Tuint16_t(569), Tuint16_t(569), Tuint16_t(569), Tuint16_t(569), Tuint16_t(569), Tuint16_t(569), Tuint16_t(570), Tuint16_t(571), Tuint16_t(571), Tuint16_t(571), Tuint16_t(571), Tuint16_t(569), Tuint16_t(569), Tuint16_t(163), Tuint16_t(163), 67863 Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(572), Tuint16_t(573), 67864 Tuint16_t(573), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(573), Tuint16_t(573), Tuint16_t(573), Tuint16_t(163), 67865 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67866 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67867 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67868 67869 // block 52 67870 Tuint16_t(574), Tuint16_t(574), Tuint16_t(574), Tuint16_t(574), Tuint16_t(575), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), 67871 Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), 67872 Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), 67873 Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(577), Tuint16_t(578), Tuint16_t(574), Tuint16_t(574), Tuint16_t(574), Tuint16_t(574), Tuint16_t(574), Tuint16_t(575), Tuint16_t(574), Tuint16_t(575), Tuint16_t(575), Tuint16_t(575), 67874 Tuint16_t(575), Tuint16_t(575), Tuint16_t(574), Tuint16_t(575), Tuint16_t(579), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(576), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67875 Tuint16_t(580), Tuint16_t(580), Tuint16_t(580), Tuint16_t(580), Tuint16_t(580), Tuint16_t(580), Tuint16_t(580), Tuint16_t(580), Tuint16_t(580), Tuint16_t(580), Tuint16_t(581), Tuint16_t(581), Tuint16_t(582), Tuint16_t(583), Tuint16_t(581), Tuint16_t(581), 67876 Tuint16_t(582), Tuint16_t(584), Tuint16_t(584), Tuint16_t(584), Tuint16_t(584), Tuint16_t(584), Tuint16_t(584), Tuint16_t(584), Tuint16_t(584), Tuint16_t(584), Tuint16_t(584), Tuint16_t(577), Tuint16_t(577), Tuint16_t(577), Tuint16_t(577), Tuint16_t(577), 67877 Tuint16_t(577), Tuint16_t(577), Tuint16_t(577), Tuint16_t(577), Tuint16_t(584), Tuint16_t(584), Tuint16_t(584), Tuint16_t(584), Tuint16_t(584), Tuint16_t(584), Tuint16_t(584), Tuint16_t(584), Tuint16_t(584), Tuint16_t(581), Tuint16_t(581), Tuint16_t(163), 67878 67879 // block 53 67880 Tuint16_t(585), Tuint16_t(585), Tuint16_t(586), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), 67881 Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), 67882 Tuint16_t(587), Tuint16_t(586), Tuint16_t(585), Tuint16_t(585), Tuint16_t(585), Tuint16_t(585), Tuint16_t(586), Tuint16_t(586), Tuint16_t(585), Tuint16_t(585), Tuint16_t(588), Tuint16_t(589), Tuint16_t(585), Tuint16_t(585), Tuint16_t(587), Tuint16_t(587), 67883 Tuint16_t(590), Tuint16_t(590), Tuint16_t(590), Tuint16_t(590), Tuint16_t(590), Tuint16_t(590), Tuint16_t(590), Tuint16_t(590), Tuint16_t(590), Tuint16_t(590), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), Tuint16_t(587), 67884 Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), 67885 Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), 67886 Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(591), Tuint16_t(592), Tuint16_t(593), Tuint16_t(594), Tuint16_t(594), Tuint16_t(593), Tuint16_t(593), Tuint16_t(593), Tuint16_t(594), Tuint16_t(593), Tuint16_t(594), 67887 Tuint16_t(594), Tuint16_t(594), Tuint16_t(595), Tuint16_t(595), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(596), Tuint16_t(596), Tuint16_t(596), Tuint16_t(596), 67888 67889 // block 54 67890 Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), 67891 Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), 67892 Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), Tuint16_t(598), Tuint16_t(598), Tuint16_t(598), Tuint16_t(598), Tuint16_t(598), Tuint16_t(598), Tuint16_t(598), Tuint16_t(598), Tuint16_t(599), Tuint16_t(599), Tuint16_t(599), Tuint16_t(599), 67893 Tuint16_t(599), Tuint16_t(599), Tuint16_t(599), Tuint16_t(599), Tuint16_t(598), Tuint16_t(598), Tuint16_t(600), Tuint16_t(601), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(602), Tuint16_t(602), Tuint16_t(603), Tuint16_t(603), Tuint16_t(603), 67894 Tuint16_t(604), Tuint16_t(604), Tuint16_t(604), Tuint16_t(604), Tuint16_t(604), Tuint16_t(604), Tuint16_t(604), Tuint16_t(604), Tuint16_t(604), Tuint16_t(604), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(597), Tuint16_t(597), Tuint16_t(597), 67895 Tuint16_t(605), Tuint16_t(605), Tuint16_t(605), Tuint16_t(605), Tuint16_t(605), Tuint16_t(605), Tuint16_t(605), Tuint16_t(605), Tuint16_t(605), Tuint16_t(605), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), 67896 Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), 67897 Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(606), Tuint16_t(607), Tuint16_t(607), Tuint16_t(607), Tuint16_t(608), Tuint16_t(607), Tuint16_t(607), Tuint16_t(609), Tuint16_t(609), 67898 67899 // block 55 67900 Tuint16_t(610), Tuint16_t(611), Tuint16_t(612), Tuint16_t(613), Tuint16_t(614), Tuint16_t(615), Tuint16_t(616), Tuint16_t(617), Tuint16_t(618), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67901 Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), 67902 Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), 67903 Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), Tuint16_t(163), Tuint16_t(163), Tuint16_t(619), Tuint16_t(619), Tuint16_t(619), 67904 Tuint16_t(620), Tuint16_t(620), Tuint16_t(620), Tuint16_t(620), Tuint16_t(620), Tuint16_t(620), Tuint16_t(620), Tuint16_t(620), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67905 Tuint16_t(621), Tuint16_t(622), Tuint16_t(621), Tuint16_t(623), Tuint16_t(622), Tuint16_t(624), Tuint16_t(624), Tuint16_t(625), Tuint16_t(624), Tuint16_t(625), Tuint16_t(626), Tuint16_t(622), Tuint16_t(625), Tuint16_t(625), Tuint16_t(622), Tuint16_t(622), 67906 Tuint16_t(625), Tuint16_t(627), Tuint16_t(622), Tuint16_t(622), Tuint16_t(622), Tuint16_t(622), Tuint16_t(622), Tuint16_t(622), Tuint16_t(622), Tuint16_t(628), Tuint16_t(629), Tuint16_t(630), Tuint16_t(630), Tuint16_t(624), Tuint16_t(630), Tuint16_t(630), 67907 Tuint16_t(630), Tuint16_t(630), Tuint16_t(631), Tuint16_t(632), Tuint16_t(633), Tuint16_t(629), Tuint16_t(629), Tuint16_t(634), Tuint16_t(635), Tuint16_t(635), Tuint16_t(636), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67908 67909 // block 56 67910 Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), 67911 Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), 67912 Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(221), Tuint16_t(221), Tuint16_t(221), Tuint16_t(221), Tuint16_t(221), Tuint16_t(637), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), 67913 Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), 67914 Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), 67915 Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(638), Tuint16_t(638), Tuint16_t(638), 67916 Tuint16_t(638), Tuint16_t(638), Tuint16_t(148), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(638), Tuint16_t(638), Tuint16_t(638), Tuint16_t(638), Tuint16_t(638), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), 67917 Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(639), Tuint16_t(640), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(641), Tuint16_t(70), Tuint16_t(70), 67918 67919 // block 57 67920 Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(642), Tuint16_t(70), 67921 Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(643), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), 67922 Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(645), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(645), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), 67923 Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(646), 67924 Tuint16_t(647), Tuint16_t(647), Tuint16_t(158), Tuint16_t(158), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), 67925 Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), 67926 Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(573), Tuint16_t(573), Tuint16_t(573), Tuint16_t(573), Tuint16_t(573), Tuint16_t(573), Tuint16_t(573), Tuint16_t(573), Tuint16_t(573), 67927 Tuint16_t(573), Tuint16_t(573), Tuint16_t(573), Tuint16_t(573), Tuint16_t(573), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(648), Tuint16_t(154), Tuint16_t(649), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), 67928 67929 // block 58 67930 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67931 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67932 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(67), Tuint16_t(65), Tuint16_t(66), 67933 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67934 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67935 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67936 Tuint16_t(650), Tuint16_t(651), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67937 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67938 67939 // block 59 67940 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67941 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(69), Tuint16_t(69), Tuint16_t(69), Tuint16_t(69), Tuint16_t(652), Tuint16_t(653), Tuint16_t(70), Tuint16_t(70), Tuint16_t(654), Tuint16_t(70), 67942 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67943 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67944 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(67), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67945 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67946 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67947 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 67948 67949 // block 60 67950 Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), 67951 Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(163), Tuint16_t(163), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(163), Tuint16_t(163), 67952 Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), 67953 Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), 67954 Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(163), Tuint16_t(163), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(163), Tuint16_t(163), 67955 Tuint16_t(173), Tuint16_t(655), Tuint16_t(173), Tuint16_t(655), Tuint16_t(173), Tuint16_t(655), Tuint16_t(173), Tuint16_t(655), Tuint16_t(163), Tuint16_t(656), Tuint16_t(163), Tuint16_t(656), Tuint16_t(163), Tuint16_t(656), Tuint16_t(163), Tuint16_t(656), 67956 Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(655), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), Tuint16_t(656), 67957 Tuint16_t(657), Tuint16_t(657), Tuint16_t(658), Tuint16_t(658), Tuint16_t(658), Tuint16_t(658), Tuint16_t(659), Tuint16_t(659), Tuint16_t(660), Tuint16_t(660), Tuint16_t(661), Tuint16_t(661), Tuint16_t(662), Tuint16_t(662), Tuint16_t(163), Tuint16_t(163), 67958 67959 // block 61 67960 Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), 67961 Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), 67962 Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(663), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), Tuint16_t(664), 67963 Tuint16_t(655), Tuint16_t(655), Tuint16_t(665), Tuint16_t(666), Tuint16_t(665), Tuint16_t(163), Tuint16_t(173), Tuint16_t(665), Tuint16_t(656), Tuint16_t(656), Tuint16_t(667), Tuint16_t(667), Tuint16_t(668), Tuint16_t(162), Tuint16_t(669), Tuint16_t(162), 67964 Tuint16_t(162), Tuint16_t(162), Tuint16_t(665), Tuint16_t(666), Tuint16_t(665), Tuint16_t(163), Tuint16_t(173), Tuint16_t(665), Tuint16_t(670), Tuint16_t(670), Tuint16_t(670), Tuint16_t(670), Tuint16_t(668), Tuint16_t(162), Tuint16_t(162), Tuint16_t(162), 67965 Tuint16_t(655), Tuint16_t(655), Tuint16_t(173), Tuint16_t(173), Tuint16_t(163), Tuint16_t(163), Tuint16_t(173), Tuint16_t(173), Tuint16_t(656), Tuint16_t(656), Tuint16_t(671), Tuint16_t(671), Tuint16_t(163), Tuint16_t(162), Tuint16_t(162), Tuint16_t(162), 67966 Tuint16_t(655), Tuint16_t(655), Tuint16_t(173), Tuint16_t(173), Tuint16_t(173), Tuint16_t(215), Tuint16_t(173), Tuint16_t(173), Tuint16_t(656), Tuint16_t(656), Tuint16_t(672), Tuint16_t(672), Tuint16_t(220), Tuint16_t(162), Tuint16_t(162), Tuint16_t(162), 67967 Tuint16_t(163), Tuint16_t(163), Tuint16_t(665), Tuint16_t(666), Tuint16_t(665), Tuint16_t(163), Tuint16_t(173), Tuint16_t(665), Tuint16_t(673), Tuint16_t(673), Tuint16_t(674), Tuint16_t(674), Tuint16_t(668), Tuint16_t(162), Tuint16_t(162), Tuint16_t(163), 67968 67969 // block 62 67970 Tuint16_t(675), Tuint16_t(675), Tuint16_t(675), Tuint16_t(675), Tuint16_t(675), Tuint16_t(675), Tuint16_t(675), Tuint16_t(675), Tuint16_t(675), Tuint16_t(675), Tuint16_t(675), Tuint16_t(51), Tuint16_t(676), Tuint16_t(677), Tuint16_t(678), Tuint16_t(679), 67971 Tuint16_t(680), Tuint16_t(680), Tuint16_t(680), Tuint16_t(680), Tuint16_t(680), Tuint16_t(680), Tuint16_t(681), Tuint16_t(43), Tuint16_t(682), Tuint16_t(683), Tuint16_t(684), Tuint16_t(685), Tuint16_t(685), Tuint16_t(686), Tuint16_t(684), Tuint16_t(685), 67972 Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(687), Tuint16_t(43), Tuint16_t(43), Tuint16_t(687), Tuint16_t(688), Tuint16_t(689), Tuint16_t(690), Tuint16_t(691), Tuint16_t(692), Tuint16_t(693), Tuint16_t(694), Tuint16_t(695), 67973 Tuint16_t(696), Tuint16_t(696), Tuint16_t(697), Tuint16_t(697), Tuint16_t(697), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(49), Tuint16_t(57), Tuint16_t(43), Tuint16_t(698), Tuint16_t(699), Tuint16_t(43), Tuint16_t(700), 67974 Tuint16_t(701), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(702), Tuint16_t(703), Tuint16_t(704), Tuint16_t(699), Tuint16_t(699), Tuint16_t(698), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), 67975 Tuint16_t(43), Tuint16_t(43), Tuint16_t(50), Tuint16_t(705), Tuint16_t(700), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(675), 67976 Tuint16_t(51), Tuint16_t(706), Tuint16_t(706), Tuint16_t(706), Tuint16_t(706), Tuint16_t(707), Tuint16_t(708), Tuint16_t(709), Tuint16_t(710), Tuint16_t(711), Tuint16_t(712), Tuint16_t(712), Tuint16_t(712), Tuint16_t(712), Tuint16_t(712), Tuint16_t(712), 67977 Tuint16_t(54), Tuint16_t(645), Tuint16_t(163), Tuint16_t(163), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(713), Tuint16_t(714), Tuint16_t(715), Tuint16_t(716), Tuint16_t(717), Tuint16_t(644), 67978 67979 // block 63 67980 Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(713), Tuint16_t(714), Tuint16_t(715), Tuint16_t(716), Tuint16_t(717), Tuint16_t(163), 67981 Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(644), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67982 Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), 67983 Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), Tuint16_t(431), 67984 Tuint16_t(431), Tuint16_t(718), Tuint16_t(718), Tuint16_t(718), Tuint16_t(718), Tuint16_t(718), Tuint16_t(718), Tuint16_t(718), Tuint16_t(718), Tuint16_t(718), Tuint16_t(718), Tuint16_t(718), Tuint16_t(718), Tuint16_t(718), Tuint16_t(718), Tuint16_t(718), 67985 Tuint16_t(719), Tuint16_t(719), Tuint16_t(719), Tuint16_t(719), Tuint16_t(719), Tuint16_t(719), Tuint16_t(719), Tuint16_t(719), Tuint16_t(719), Tuint16_t(719), Tuint16_t(719), Tuint16_t(719), Tuint16_t(719), Tuint16_t(720), Tuint16_t(720), Tuint16_t(720), 67986 Tuint16_t(720), Tuint16_t(719), Tuint16_t(720), Tuint16_t(721), Tuint16_t(720), Tuint16_t(719), Tuint16_t(719), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(158), Tuint16_t(719), Tuint16_t(719), Tuint16_t(719), Tuint16_t(719), Tuint16_t(719), 67987 Tuint16_t(722), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 67988 67989 // block 64 67990 Tuint16_t(723), Tuint16_t(723), Tuint16_t(724), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(724), Tuint16_t(723), Tuint16_t(723), Tuint16_t(725), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(725), Tuint16_t(725), 67991 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(725), Tuint16_t(723), Tuint16_t(724), Tuint16_t(723), Tuint16_t(723), Tuint16_t(726), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(723), Tuint16_t(723), 67992 Tuint16_t(723), Tuint16_t(723), Tuint16_t(727), Tuint16_t(723), Tuint16_t(724), Tuint16_t(723), Tuint16_t(728), Tuint16_t(723), Tuint16_t(724), Tuint16_t(729), Tuint16_t(730), Tuint16_t(731), Tuint16_t(724), Tuint16_t(724), Tuint16_t(732), Tuint16_t(725), 67993 Tuint16_t(724), Tuint16_t(724), Tuint16_t(733), Tuint16_t(724), Tuint16_t(725), Tuint16_t(734), Tuint16_t(734), Tuint16_t(734), Tuint16_t(734), Tuint16_t(735), Tuint16_t(723), Tuint16_t(723), Tuint16_t(725), Tuint16_t(725), Tuint16_t(724), Tuint16_t(724), 67994 Tuint16_t(715), Tuint16_t(715), Tuint16_t(715), Tuint16_t(715), Tuint16_t(715), Tuint16_t(724), Tuint16_t(725), Tuint16_t(725), Tuint16_t(736), Tuint16_t(736), Tuint16_t(723), Tuint16_t(715), Tuint16_t(723), Tuint16_t(723), Tuint16_t(737), Tuint16_t(460), 67995 Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), 67996 Tuint16_t(738), Tuint16_t(738), Tuint16_t(738), Tuint16_t(738), Tuint16_t(738), Tuint16_t(738), Tuint16_t(738), Tuint16_t(738), Tuint16_t(738), Tuint16_t(738), Tuint16_t(738), Tuint16_t(738), Tuint16_t(738), Tuint16_t(738), Tuint16_t(738), Tuint16_t(738), 67997 Tuint16_t(739), Tuint16_t(739), Tuint16_t(739), Tuint16_t(739), Tuint16_t(739), Tuint16_t(739), Tuint16_t(739), Tuint16_t(739), Tuint16_t(739), Tuint16_t(739), Tuint16_t(739), Tuint16_t(739), Tuint16_t(739), Tuint16_t(739), Tuint16_t(739), Tuint16_t(739), 67998 67999 // block 65 68000 Tuint16_t(740), Tuint16_t(740), Tuint16_t(740), Tuint16_t(65), Tuint16_t(66), Tuint16_t(740), Tuint16_t(740), Tuint16_t(740), Tuint16_t(740), Tuint16_t(58), Tuint16_t(723), Tuint16_t(723), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68001 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(741), Tuint16_t(742), Tuint16_t(742), Tuint16_t(742), Tuint16_t(742), Tuint16_t(742), Tuint16_t(50), Tuint16_t(50), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), 68002 Tuint16_t(50), Tuint16_t(743), Tuint16_t(743), Tuint16_t(50), Tuint16_t(743), Tuint16_t(743), Tuint16_t(50), Tuint16_t(743), Tuint16_t(45), Tuint16_t(742), Tuint16_t(742), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(50), Tuint16_t(45), 68003 Tuint16_t(743), Tuint16_t(743), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(743), Tuint16_t(743), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), 68004 Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(50), Tuint16_t(50), 68005 Tuint16_t(743), Tuint16_t(743), Tuint16_t(50), Tuint16_t(743), Tuint16_t(50), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(45), Tuint16_t(743), Tuint16_t(45), Tuint16_t(45), 68006 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(743), Tuint16_t(743), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68007 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68008 68009 // block 66 68010 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), 68011 Tuint16_t(50), Tuint16_t(50), Tuint16_t(745), Tuint16_t(53), Tuint16_t(50), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), 68012 Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68013 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), 68014 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(50), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68015 Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68016 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), 68017 Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), 68018 68019 // block 67 68020 Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), 68021 Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68022 Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68023 Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68024 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), 68025 Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), 68026 Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), 68027 Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), 68028 68029 // block 68 68030 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(746), Tuint16_t(747), Tuint16_t(746), Tuint16_t(747), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68031 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(748), Tuint16_t(748), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68032 Tuint16_t(50), Tuint16_t(50), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(47), Tuint16_t(749), Tuint16_t(750), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68033 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), 68034 Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), 68035 Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), 68036 Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), 68037 Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(751), Tuint16_t(45), Tuint16_t(50), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68038 68039 // block 69 68040 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(752), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68041 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(751), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68042 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68043 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(743), Tuint16_t(743), Tuint16_t(45), Tuint16_t(743), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68044 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(47), 68045 Tuint16_t(743), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68046 Tuint16_t(50), Tuint16_t(50), Tuint16_t(743), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(748), Tuint16_t(748), Tuint16_t(748), Tuint16_t(748), Tuint16_t(47), Tuint16_t(47), Tuint16_t(47), 68047 Tuint16_t(748), Tuint16_t(47), Tuint16_t(47), Tuint16_t(748), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(47), Tuint16_t(47), Tuint16_t(47), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68048 68049 // block 70 68050 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68051 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68052 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), 68053 Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), 68054 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), 68055 Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), 68056 Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), 68057 Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), 68058 68059 // block 71 68060 Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), 68061 Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 68062 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 68063 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), 68064 Tuint16_t(754), Tuint16_t(754), Tuint16_t(755), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), Tuint16_t(754), 68065 Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), 68066 Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(756), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), 68067 Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), 68068 68069 // block 72 68070 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68071 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68072 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68073 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68074 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68075 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68076 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68077 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68078 68079 // block 73 68080 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68081 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68082 Tuint16_t(743), Tuint16_t(743), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(47), Tuint16_t(47), Tuint16_t(45), Tuint16_t(45), Tuint16_t(743), Tuint16_t(743), 68083 Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(742), Tuint16_t(50), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), 68084 Tuint16_t(742), Tuint16_t(50), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(743), Tuint16_t(743), Tuint16_t(45), Tuint16_t(45), Tuint16_t(743), Tuint16_t(743), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(743), 68085 Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68086 Tuint16_t(45), Tuint16_t(45), Tuint16_t(743), Tuint16_t(45), Tuint16_t(743), Tuint16_t(45), Tuint16_t(45), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(743), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68087 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(741), Tuint16_t(741), Tuint16_t(757), Tuint16_t(757), Tuint16_t(50), 68088 68089 // block 74 68090 Tuint16_t(47), Tuint16_t(47), Tuint16_t(47), Tuint16_t(47), Tuint16_t(47), Tuint16_t(758), Tuint16_t(743), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(47), Tuint16_t(752), 68091 Tuint16_t(752), Tuint16_t(47), Tuint16_t(752), Tuint16_t(45), Tuint16_t(748), Tuint16_t(748), Tuint16_t(752), Tuint16_t(752), Tuint16_t(47), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(759), Tuint16_t(752), Tuint16_t(752), 68092 Tuint16_t(47), Tuint16_t(752), Tuint16_t(47), Tuint16_t(47), Tuint16_t(752), Tuint16_t(752), Tuint16_t(47), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(47), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(47), Tuint16_t(47), 68093 Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(47), Tuint16_t(47), Tuint16_t(47), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), 68094 Tuint16_t(742), Tuint16_t(752), Tuint16_t(742), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(748), Tuint16_t(748), Tuint16_t(748), Tuint16_t(748), Tuint16_t(748), Tuint16_t(748), Tuint16_t(748), Tuint16_t(748), 68095 Tuint16_t(748), Tuint16_t(748), Tuint16_t(748), Tuint16_t(748), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(47), 68096 Tuint16_t(742), Tuint16_t(758), Tuint16_t(758), Tuint16_t(742), Tuint16_t(752), Tuint16_t(47), Tuint16_t(47), Tuint16_t(752), Tuint16_t(47), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(758), Tuint16_t(758), Tuint16_t(760), 68097 Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(47), Tuint16_t(752), Tuint16_t(752), Tuint16_t(47), Tuint16_t(748), 68098 68099 // block 75 68100 Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68101 Tuint16_t(752), Tuint16_t(752), Tuint16_t(47), Tuint16_t(748), Tuint16_t(47), Tuint16_t(47), Tuint16_t(47), Tuint16_t(47), Tuint16_t(752), Tuint16_t(47), Tuint16_t(752), Tuint16_t(47), Tuint16_t(47), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), 68102 Tuint16_t(47), Tuint16_t(748), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(47), Tuint16_t(752), Tuint16_t(752), Tuint16_t(748), Tuint16_t(748), Tuint16_t(761), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), 68103 Tuint16_t(47), Tuint16_t(47), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(748), Tuint16_t(748), Tuint16_t(752), 68104 Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(748), Tuint16_t(748), Tuint16_t(752), Tuint16_t(752), Tuint16_t(47), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(748), Tuint16_t(47), 68105 Tuint16_t(752), Tuint16_t(47), Tuint16_t(752), Tuint16_t(47), Tuint16_t(748), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), 68106 Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(47), Tuint16_t(748), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), 68107 Tuint16_t(47), Tuint16_t(47), Tuint16_t(748), Tuint16_t(748), Tuint16_t(47), Tuint16_t(748), Tuint16_t(752), Tuint16_t(47), Tuint16_t(47), Tuint16_t(759), Tuint16_t(748), Tuint16_t(752), Tuint16_t(752), Tuint16_t(748), Tuint16_t(752), Tuint16_t(752), 68108 68109 // block 76 68110 Tuint16_t(752), Tuint16_t(752), Tuint16_t(47), Tuint16_t(752), Tuint16_t(752), Tuint16_t(748), Tuint16_t(45), Tuint16_t(45), Tuint16_t(47), Tuint16_t(47), Tuint16_t(762), Tuint16_t(762), Tuint16_t(759), Tuint16_t(759), Tuint16_t(752), Tuint16_t(47), 68111 Tuint16_t(752), Tuint16_t(752), Tuint16_t(47), Tuint16_t(45), Tuint16_t(47), Tuint16_t(45), Tuint16_t(47), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(47), Tuint16_t(45), Tuint16_t(45), 68112 Tuint16_t(45), Tuint16_t(47), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(748), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68113 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(47), Tuint16_t(47), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68114 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(47), Tuint16_t(45), Tuint16_t(45), Tuint16_t(47), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(748), Tuint16_t(45), Tuint16_t(748), Tuint16_t(45), 68115 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(748), Tuint16_t(748), Tuint16_t(748), Tuint16_t(45), Tuint16_t(748), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68116 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(47), Tuint16_t(47), Tuint16_t(752), Tuint16_t(752), Tuint16_t(752), Tuint16_t(703), Tuint16_t(704), Tuint16_t(703), Tuint16_t(704), Tuint16_t(703), Tuint16_t(704), Tuint16_t(703), Tuint16_t(704), 68117 Tuint16_t(703), Tuint16_t(704), Tuint16_t(703), Tuint16_t(704), Tuint16_t(703), Tuint16_t(704), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), 68118 68119 // block 77 68120 Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), 68121 Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(45), Tuint16_t(748), Tuint16_t(748), Tuint16_t(748), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68122 Tuint16_t(45), Tuint16_t(47), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68123 Tuint16_t(748), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(748), 68124 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(746), Tuint16_t(747), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(744), Tuint16_t(50), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), 68125 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), 68126 Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(746), Tuint16_t(747), Tuint16_t(746), Tuint16_t(747), Tuint16_t(746), Tuint16_t(747), Tuint16_t(746), Tuint16_t(747), Tuint16_t(746), Tuint16_t(747), 68127 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68128 68129 // block 78 68130 Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), 68131 Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), 68132 Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), 68133 Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), 68134 Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), 68135 Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), 68136 Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), 68137 Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), Tuint16_t(763), 68138 68139 // block 79 68140 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68141 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68142 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68143 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(741), Tuint16_t(741), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68144 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68145 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68146 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68147 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68148 68149 // block 80 68150 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(746), Tuint16_t(747), Tuint16_t(746), Tuint16_t(747), Tuint16_t(746), Tuint16_t(747), Tuint16_t(746), Tuint16_t(747), Tuint16_t(746), Tuint16_t(747), Tuint16_t(746), Tuint16_t(747), Tuint16_t(746), 68151 Tuint16_t(747), Tuint16_t(746), Tuint16_t(747), Tuint16_t(746), Tuint16_t(747), Tuint16_t(746), Tuint16_t(747), Tuint16_t(746), Tuint16_t(747), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68152 Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), 68153 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68154 Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), 68155 Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(746), Tuint16_t(747), Tuint16_t(746), Tuint16_t(747), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68156 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68157 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(746), Tuint16_t(747), Tuint16_t(50), Tuint16_t(50), 68158 68159 // block 81 68160 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68161 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68162 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), 68163 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), 68164 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68165 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68166 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68167 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), 68168 68169 // block 82 68170 Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), 68171 Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), 68172 Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(744), 68173 Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), 68174 Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), 68175 Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(50), 68176 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), 68177 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(744), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68178 68179 // block 83 68180 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(47), Tuint16_t(47), Tuint16_t(47), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68181 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(748), Tuint16_t(748), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68182 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68183 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), 68184 Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(45), Tuint16_t(45), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(50), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68185 Tuint16_t(748), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(748), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68186 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68187 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(753), Tuint16_t(753), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68188 68189 // block 84 68190 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68191 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(753), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68192 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68193 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68194 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68195 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68196 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), 68197 Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(45), Tuint16_t(764), Tuint16_t(45), 68198 68199 // block 85 68200 Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), 68201 Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), 68202 Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), Tuint16_t(765), 68203 Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), 68204 Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), 68205 Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), Tuint16_t(766), 68206 Tuint16_t(65), Tuint16_t(66), Tuint16_t(767), Tuint16_t(768), Tuint16_t(769), Tuint16_t(770), Tuint16_t(771), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(772), Tuint16_t(773), Tuint16_t(774), 68207 Tuint16_t(775), Tuint16_t(70), Tuint16_t(65), Tuint16_t(66), Tuint16_t(70), Tuint16_t(65), Tuint16_t(66), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(645), Tuint16_t(644), Tuint16_t(776), Tuint16_t(776), 68208 68209 // block 86 68210 Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), 68211 Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), 68212 Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), 68213 Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), 68214 Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), 68215 Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), 68216 Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(777), Tuint16_t(778), Tuint16_t(778), Tuint16_t(778), Tuint16_t(778), Tuint16_t(778), Tuint16_t(778), Tuint16_t(211), Tuint16_t(212), Tuint16_t(211), Tuint16_t(212), Tuint16_t(779), 68217 Tuint16_t(779), Tuint16_t(779), Tuint16_t(211), Tuint16_t(212), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(780), Tuint16_t(780), Tuint16_t(780), Tuint16_t(780), Tuint16_t(781), Tuint16_t(780), Tuint16_t(780), 68218 68219 // block 87 68220 Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), 68221 Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), 68222 Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(782), Tuint16_t(163), Tuint16_t(782), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(782), Tuint16_t(163), Tuint16_t(163), 68223 Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), 68224 Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), 68225 Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), 68226 Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(783), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(784), 68227 Tuint16_t(785), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(786), 68228 68229 // block 88 68230 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), 68231 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68232 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), 68233 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), 68234 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), 68235 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), 68236 Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), 68237 Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), 68238 68239 // block 89 68240 Tuint16_t(43), Tuint16_t(43), Tuint16_t(788), Tuint16_t(789), Tuint16_t(788), Tuint16_t(789), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(788), Tuint16_t(789), Tuint16_t(43), Tuint16_t(788), Tuint16_t(789), Tuint16_t(43), Tuint16_t(43), 68241 Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(680), Tuint16_t(43), Tuint16_t(43), Tuint16_t(680), Tuint16_t(43), Tuint16_t(788), Tuint16_t(789), Tuint16_t(43), Tuint16_t(43), 68242 Tuint16_t(788), Tuint16_t(789), Tuint16_t(703), Tuint16_t(704), Tuint16_t(703), Tuint16_t(704), Tuint16_t(703), Tuint16_t(704), Tuint16_t(703), Tuint16_t(704), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(699), Tuint16_t(790), 68243 Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(680), Tuint16_t(680), Tuint16_t(699), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), 68244 Tuint16_t(680), Tuint16_t(791), Tuint16_t(684), Tuint16_t(792), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(43), Tuint16_t(791), Tuint16_t(43), Tuint16_t(791), Tuint16_t(791), 68245 Tuint16_t(45), Tuint16_t(45), Tuint16_t(43), Tuint16_t(699), Tuint16_t(699), Tuint16_t(703), Tuint16_t(704), Tuint16_t(703), Tuint16_t(704), Tuint16_t(703), Tuint16_t(704), Tuint16_t(703), Tuint16_t(704), Tuint16_t(680), Tuint16_t(753), Tuint16_t(753), 68246 Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), 68247 Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), Tuint16_t(753), 68248 68249 // block 90 68250 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68251 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(163), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68252 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68253 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68254 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68255 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68256 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68257 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68258 68259 // block 91 68260 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68261 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68262 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68263 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68264 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68265 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68266 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68267 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68268 68269 // block 92 68270 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68271 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68272 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68273 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68274 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), 68275 Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(793), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68276 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68277 Tuint16_t(794), Tuint16_t(794), Tuint16_t(795), Tuint16_t(795), Tuint16_t(794), Tuint16_t(794), Tuint16_t(794), Tuint16_t(794), Tuint16_t(794), Tuint16_t(794), Tuint16_t(794), Tuint16_t(794), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68278 68279 // block 93 68280 Tuint16_t(675), Tuint16_t(796), Tuint16_t(797), Tuint16_t(798), Tuint16_t(723), Tuint16_t(799), Tuint16_t(800), Tuint16_t(801), Tuint16_t(802), Tuint16_t(803), Tuint16_t(802), Tuint16_t(803), Tuint16_t(804), Tuint16_t(805), Tuint16_t(804), Tuint16_t(805), 68281 Tuint16_t(802), Tuint16_t(803), Tuint16_t(45), Tuint16_t(806), Tuint16_t(802), Tuint16_t(803), Tuint16_t(802), Tuint16_t(803), Tuint16_t(802), Tuint16_t(803), Tuint16_t(802), Tuint16_t(803), Tuint16_t(807), Tuint16_t(808), Tuint16_t(809), Tuint16_t(809), 68282 Tuint16_t(45), Tuint16_t(801), Tuint16_t(801), Tuint16_t(801), Tuint16_t(801), Tuint16_t(801), Tuint16_t(801), Tuint16_t(801), Tuint16_t(801), Tuint16_t(801), Tuint16_t(810), Tuint16_t(810), Tuint16_t(810), Tuint16_t(810), Tuint16_t(811), Tuint16_t(811), 68283 Tuint16_t(812), Tuint16_t(813), Tuint16_t(813), Tuint16_t(813), Tuint16_t(813), Tuint16_t(813), Tuint16_t(723), Tuint16_t(814), Tuint16_t(801), Tuint16_t(801), Tuint16_t(801), Tuint16_t(815), Tuint16_t(816), Tuint16_t(817), Tuint16_t(818), Tuint16_t(818), 68284 Tuint16_t(163), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 68285 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 68286 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 68287 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 68288 68289 // block 94 68290 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 68291 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(163), Tuint16_t(163), Tuint16_t(820), Tuint16_t(820), Tuint16_t(821), Tuint16_t(821), Tuint16_t(822), Tuint16_t(822), Tuint16_t(819), 68292 Tuint16_t(823), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), 68293 Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), 68294 Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), 68295 Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), 68296 Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), 68297 Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(825), Tuint16_t(826), Tuint16_t(827), Tuint16_t(827), Tuint16_t(824), 68298 68299 // block 95 68300 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), 68301 Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), 68302 Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), 68303 Tuint16_t(163), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), 68304 Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), 68305 Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), 68306 Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(830), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), 68307 Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), 68308 68309 // block 96 68310 Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(163), 68311 Tuint16_t(831), Tuint16_t(831), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), 68312 Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), 68313 Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), Tuint16_t(828), 68314 Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), 68315 Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), 68316 Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(818), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68317 Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), 68318 68319 // block 97 68320 Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), 68321 Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(834), Tuint16_t(834), Tuint16_t(163), 68322 Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), 68323 Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), 68324 Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), 68325 Tuint16_t(723), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), 68326 Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), 68327 Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(833), Tuint16_t(834), Tuint16_t(834), Tuint16_t(834), Tuint16_t(460), 68328 68329 // block 98 68330 Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), 68331 Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(836), Tuint16_t(831), Tuint16_t(836), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), 68332 Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), 68333 Tuint16_t(831), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), Tuint16_t(58), 68334 Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 68335 Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), 68336 Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), 68337 Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(831), 68338 68339 // block 99 68340 Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), 68341 Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), 68342 Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), 68343 Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), 68344 Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), 68345 Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(837), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), 68346 Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), 68347 Tuint16_t(831), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), 68348 68349 // block 100 68350 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 68351 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 68352 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 68353 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 68354 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 68355 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(723), Tuint16_t(723), 68356 Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), 68357 Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(831), Tuint16_t(723), 68358 68359 // block 101 68360 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68361 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68362 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68363 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68364 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68365 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68366 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68367 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68368 68369 // block 102 68370 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68371 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68372 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68373 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 68374 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 68375 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 68376 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 68377 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 68378 68379 // block 103 68380 Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), 68381 Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(840), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), 68382 Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), 68383 Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), 68384 Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), 68385 Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), 68386 Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), 68387 Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), 68388 68389 // block 104 68390 Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), 68391 Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), 68392 Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), 68393 Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), 68394 Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), 68395 Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), 68396 Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), 68397 Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), 68398 68399 // block 105 68400 Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(839), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68401 Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), 68402 Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), 68403 Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), 68404 Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(841), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68405 Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), 68406 Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), 68407 Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(842), Tuint16_t(843), Tuint16_t(843), Tuint16_t(843), Tuint16_t(843), Tuint16_t(843), Tuint16_t(843), Tuint16_t(844), Tuint16_t(845), 68408 68409 // block 106 68410 Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), 68411 Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), 68412 Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), 68413 Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), 68414 Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), 68415 Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), 68416 Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), 68417 Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), 68418 68419 // block 107 68420 Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(847), Tuint16_t(848), Tuint16_t(849), Tuint16_t(849), 68421 Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), Tuint16_t(846), 68422 Tuint16_t(850), Tuint16_t(850), Tuint16_t(850), Tuint16_t(850), Tuint16_t(850), Tuint16_t(850), Tuint16_t(850), Tuint16_t(850), Tuint16_t(850), Tuint16_t(850), Tuint16_t(846), Tuint16_t(846), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68423 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68424 Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(851), Tuint16_t(852), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), 68425 Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), 68426 Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(853), Tuint16_t(246), 68427 Tuint16_t(248), Tuint16_t(248), Tuint16_t(248), Tuint16_t(854), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(787), Tuint16_t(855), Tuint16_t(855), Tuint16_t(854), Tuint16_t(856), 68428 68429 // block 108 68430 Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), 68431 Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(240), Tuint16_t(241), Tuint16_t(857), Tuint16_t(857), Tuint16_t(787), Tuint16_t(787), 68432 Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), 68433 Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), 68434 Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), 68435 Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), 68436 Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(859), Tuint16_t(859), Tuint16_t(859), Tuint16_t(859), Tuint16_t(859), Tuint16_t(859), Tuint16_t(859), Tuint16_t(859), Tuint16_t(859), Tuint16_t(859), 68437 Tuint16_t(860), Tuint16_t(860), Tuint16_t(861), Tuint16_t(862), Tuint16_t(863), Tuint16_t(863), Tuint16_t(863), Tuint16_t(862), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68438 68439 // block 109 68440 Tuint16_t(864), Tuint16_t(864), Tuint16_t(864), Tuint16_t(864), Tuint16_t(864), Tuint16_t(864), Tuint16_t(864), Tuint16_t(864), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), 68441 Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(46), Tuint16_t(149), Tuint16_t(149), Tuint16_t(149), Tuint16_t(149), Tuint16_t(149), Tuint16_t(149), Tuint16_t(149), Tuint16_t(149), Tuint16_t(149), 68442 Tuint16_t(46), Tuint16_t(46), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 68443 Tuint16_t(70), Tuint16_t(70), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 68444 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 68445 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 68446 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 68447 Tuint16_t(644), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(865), Tuint16_t(65), Tuint16_t(66), 68448 68449 // block 110 68450 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(149), Tuint16_t(866), Tuint16_t(866), Tuint16_t(65), Tuint16_t(66), Tuint16_t(867), Tuint16_t(70), Tuint16_t(92), 68451 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(868), Tuint16_t(70), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 68452 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(869), Tuint16_t(870), Tuint16_t(871), Tuint16_t(872), Tuint16_t(869), Tuint16_t(70), 68453 Tuint16_t(873), Tuint16_t(874), Tuint16_t(875), Tuint16_t(876), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), 68454 Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(877), Tuint16_t(878), Tuint16_t(879), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68455 Tuint16_t(65), Tuint16_t(66), Tuint16_t(163), Tuint16_t(70), Tuint16_t(163), Tuint16_t(70), Tuint16_t(65), Tuint16_t(66), Tuint16_t(65), Tuint16_t(66), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68456 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68457 Tuint16_t(163), Tuint16_t(163), Tuint16_t(880), Tuint16_t(880), Tuint16_t(880), Tuint16_t(65), Tuint16_t(66), Tuint16_t(92), Tuint16_t(147), Tuint16_t(147), Tuint16_t(70), Tuint16_t(92), Tuint16_t(92), Tuint16_t(92), Tuint16_t(92), Tuint16_t(92), 68458 68459 // block 111 68460 Tuint16_t(881), Tuint16_t(881), Tuint16_t(882), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(883), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(882), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), 68461 Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), 68462 Tuint16_t(881), Tuint16_t(881), Tuint16_t(881), Tuint16_t(884), Tuint16_t(884), Tuint16_t(882), Tuint16_t(882), Tuint16_t(884), Tuint16_t(885), Tuint16_t(885), Tuint16_t(885), Tuint16_t(885), Tuint16_t(883), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68463 Tuint16_t(886), Tuint16_t(886), Tuint16_t(886), Tuint16_t(887), Tuint16_t(887), Tuint16_t(887), Tuint16_t(888), Tuint16_t(888), Tuint16_t(889), Tuint16_t(890), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68464 Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), 68465 Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), 68466 Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), 68467 Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(891), Tuint16_t(892), Tuint16_t(892), Tuint16_t(893), Tuint16_t(893), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68468 68469 // block 112 68470 Tuint16_t(894), Tuint16_t(894), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), 68471 Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), 68472 Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), 68473 Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(895), Tuint16_t(894), Tuint16_t(894), Tuint16_t(894), Tuint16_t(894), Tuint16_t(894), Tuint16_t(894), Tuint16_t(894), Tuint16_t(894), Tuint16_t(894), Tuint16_t(894), Tuint16_t(894), Tuint16_t(894), 68474 Tuint16_t(894), Tuint16_t(894), Tuint16_t(894), Tuint16_t(894), Tuint16_t(896), Tuint16_t(897), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(898), Tuint16_t(898), 68475 Tuint16_t(899), Tuint16_t(899), Tuint16_t(899), Tuint16_t(899), Tuint16_t(899), Tuint16_t(899), Tuint16_t(899), Tuint16_t(899), Tuint16_t(899), Tuint16_t(899), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68476 Tuint16_t(336), Tuint16_t(336), Tuint16_t(336), Tuint16_t(336), Tuint16_t(336), Tuint16_t(336), Tuint16_t(336), Tuint16_t(336), Tuint16_t(336), Tuint16_t(336), Tuint16_t(336), Tuint16_t(336), Tuint16_t(336), Tuint16_t(336), Tuint16_t(336), Tuint16_t(336), 68477 Tuint16_t(336), Tuint16_t(900), Tuint16_t(335), Tuint16_t(901), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(335), Tuint16_t(343), Tuint16_t(343), Tuint16_t(343), Tuint16_t(335), Tuint16_t(343), Tuint16_t(335), Tuint16_t(335), Tuint16_t(333), 68478 68479 // block 113 68480 Tuint16_t(902), Tuint16_t(902), Tuint16_t(902), Tuint16_t(902), Tuint16_t(902), Tuint16_t(902), Tuint16_t(902), Tuint16_t(902), Tuint16_t(902), Tuint16_t(902), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), 68481 Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), 68482 Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(903), Tuint16_t(904), Tuint16_t(904), Tuint16_t(904), Tuint16_t(904), Tuint16_t(904), Tuint16_t(905), Tuint16_t(905), Tuint16_t(905), Tuint16_t(906), Tuint16_t(907), 68483 Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), 68484 Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(908), Tuint16_t(909), Tuint16_t(909), Tuint16_t(909), Tuint16_t(909), Tuint16_t(909), Tuint16_t(909), Tuint16_t(909), Tuint16_t(909), Tuint16_t(909), 68485 Tuint16_t(909), Tuint16_t(909), Tuint16_t(910), Tuint16_t(911), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(912), 68486 Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), 68487 Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(478), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68488 68489 // block 114 68490 Tuint16_t(913), Tuint16_t(913), Tuint16_t(913), Tuint16_t(914), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), 68491 Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), 68492 Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), 68493 Tuint16_t(915), Tuint16_t(915), Tuint16_t(915), Tuint16_t(916), Tuint16_t(914), Tuint16_t(914), Tuint16_t(913), Tuint16_t(913), Tuint16_t(913), Tuint16_t(913), Tuint16_t(914), Tuint16_t(914), Tuint16_t(913), Tuint16_t(913), Tuint16_t(914), Tuint16_t(914), 68494 Tuint16_t(917), Tuint16_t(918), Tuint16_t(918), Tuint16_t(918), Tuint16_t(918), Tuint16_t(918), Tuint16_t(918), Tuint16_t(919), Tuint16_t(920), Tuint16_t(920), Tuint16_t(918), Tuint16_t(918), Tuint16_t(918), Tuint16_t(918), Tuint16_t(163), Tuint16_t(921), 68495 Tuint16_t(922), Tuint16_t(922), Tuint16_t(922), Tuint16_t(922), Tuint16_t(922), Tuint16_t(922), Tuint16_t(922), Tuint16_t(922), Tuint16_t(922), Tuint16_t(922), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(918), Tuint16_t(918), 68496 Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(471), Tuint16_t(923), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), 68497 Tuint16_t(472), Tuint16_t(472), Tuint16_t(472), Tuint16_t(472), Tuint16_t(472), Tuint16_t(472), Tuint16_t(472), Tuint16_t(472), Tuint16_t(472), Tuint16_t(472), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(163), 68498 68499 // block 115 68500 Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), 68501 Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), 68502 Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(925), Tuint16_t(925), Tuint16_t(925), Tuint16_t(925), Tuint16_t(925), Tuint16_t(925), Tuint16_t(926), 68503 Tuint16_t(926), Tuint16_t(925), Tuint16_t(925), Tuint16_t(926), Tuint16_t(926), Tuint16_t(925), Tuint16_t(925), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68504 Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(925), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(924), Tuint16_t(925), Tuint16_t(926), Tuint16_t(163), Tuint16_t(163), 68505 Tuint16_t(927), Tuint16_t(927), Tuint16_t(927), Tuint16_t(927), Tuint16_t(927), Tuint16_t(927), Tuint16_t(927), Tuint16_t(927), Tuint16_t(927), Tuint16_t(927), Tuint16_t(163), Tuint16_t(163), Tuint16_t(928), Tuint16_t(929), Tuint16_t(929), Tuint16_t(929), 68506 Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), 68507 Tuint16_t(923), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(461), Tuint16_t(473), Tuint16_t(473), Tuint16_t(473), Tuint16_t(461), Tuint16_t(470), Tuint16_t(471), Tuint16_t(470), Tuint16_t(461), Tuint16_t(461), 68508 68509 // block 116 68510 Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), 68511 Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), 68512 Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), Tuint16_t(930), 68513 Tuint16_t(931), Tuint16_t(930), Tuint16_t(931), Tuint16_t(931), Tuint16_t(931), Tuint16_t(932), Tuint16_t(932), Tuint16_t(931), Tuint16_t(931), Tuint16_t(932), Tuint16_t(930), Tuint16_t(932), Tuint16_t(932), Tuint16_t(930), Tuint16_t(931), Tuint16_t(933), 68514 Tuint16_t(934), Tuint16_t(933), Tuint16_t(934), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68515 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(930), Tuint16_t(930), Tuint16_t(935), Tuint16_t(936), Tuint16_t(937), 68516 Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(939), Tuint16_t(940), Tuint16_t(940), Tuint16_t(939), Tuint16_t(939), 68517 Tuint16_t(941), Tuint16_t(941), Tuint16_t(938), Tuint16_t(942), Tuint16_t(942), Tuint16_t(939), Tuint16_t(943), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68518 68519 // block 117 68520 Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), 68521 Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68522 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), 68523 Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), 68524 Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), 68525 Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(944), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(866), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), 68526 Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(221), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(945), Tuint16_t(46), Tuint16_t(46), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68527 Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), 68528 68529 // block 118 68530 Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), 68531 Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), 68532 Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), 68533 Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), Tuint16_t(946), 68534 Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), 68535 Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), 68536 Tuint16_t(938), Tuint16_t(938), Tuint16_t(938), Tuint16_t(939), Tuint16_t(939), Tuint16_t(940), Tuint16_t(939), Tuint16_t(939), Tuint16_t(940), Tuint16_t(939), Tuint16_t(939), Tuint16_t(941), Tuint16_t(947), Tuint16_t(943), Tuint16_t(163), Tuint16_t(163), 68537 Tuint16_t(948), Tuint16_t(948), Tuint16_t(948), Tuint16_t(948), Tuint16_t(948), Tuint16_t(948), Tuint16_t(948), Tuint16_t(948), Tuint16_t(948), Tuint16_t(948), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68538 68539 // block 119 68540 Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68541 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68542 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68543 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68544 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68545 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68546 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68547 Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68548 68549 // block 120 68550 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68551 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68552 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68553 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68554 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68555 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68556 Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68557 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68558 68559 // block 121 68560 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68561 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68562 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68563 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68564 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68565 Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68566 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68567 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68568 68569 // block 122 68570 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68571 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68572 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68573 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68574 Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68575 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68576 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68577 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68578 68579 // block 123 68580 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68581 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68582 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68583 Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68584 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68585 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68586 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68587 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68588 68589 // block 124 68590 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68591 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68592 Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68593 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68594 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68595 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68596 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68597 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68598 68599 // block 125 68600 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68601 Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68602 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68603 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68604 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68605 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68606 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68607 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68608 68609 // block 126 68610 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(949), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68611 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), 68612 Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(950), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68613 Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), 68614 Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(481), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), 68615 Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), 68616 Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), 68617 Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(482), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68618 68619 // block 127 68620 Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), 68621 Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), 68622 Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), 68623 Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), 68624 Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), 68625 Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), 68626 Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), 68627 Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), Tuint16_t(951), 68628 68629 // block 128 68630 Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), 68631 Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), 68632 Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), 68633 Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), 68634 Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), 68635 Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), 68636 Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), 68637 Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), 68638 68639 // block 129 68640 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68641 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68642 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68643 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68644 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68645 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68646 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68647 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68648 68649 // block 130 68650 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(838), Tuint16_t(838), 68651 Tuint16_t(953), Tuint16_t(838), Tuint16_t(953), Tuint16_t(838), Tuint16_t(838), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(838), 68652 Tuint16_t(953), Tuint16_t(838), Tuint16_t(953), Tuint16_t(838), Tuint16_t(838), Tuint16_t(953), Tuint16_t(953), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68653 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68654 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68655 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68656 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(163), Tuint16_t(163), 68657 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68658 68659 // block 131 68660 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68661 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68662 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68663 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68664 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 68665 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68666 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68667 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68668 68669 // block 132 68670 Tuint16_t(652), Tuint16_t(652), Tuint16_t(652), Tuint16_t(652), Tuint16_t(652), Tuint16_t(652), Tuint16_t(652), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68671 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(257), Tuint16_t(257), Tuint16_t(257), Tuint16_t(257), Tuint16_t(257), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(270), Tuint16_t(265), Tuint16_t(270), 68672 Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(954), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), 68673 Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(262), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(262), Tuint16_t(270), Tuint16_t(262), 68674 Tuint16_t(270), Tuint16_t(270), Tuint16_t(262), Tuint16_t(270), Tuint16_t(270), Tuint16_t(262), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), Tuint16_t(270), 68675 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68676 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68677 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68678 68679 // block 133 68680 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68681 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68682 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68683 Tuint16_t(286), Tuint16_t(286), Tuint16_t(331), Tuint16_t(331), Tuint16_t(331), Tuint16_t(331), Tuint16_t(331), Tuint16_t(331), Tuint16_t(331), Tuint16_t(331), Tuint16_t(331), Tuint16_t(331), Tuint16_t(331), Tuint16_t(331), Tuint16_t(331), Tuint16_t(331), 68684 Tuint16_t(331), Tuint16_t(331), Tuint16_t(331), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), 68685 Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68686 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68687 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68688 68689 // block 134 68690 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68691 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68692 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68693 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68694 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68695 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(955), Tuint16_t(955), 68696 Tuint16_t(955), Tuint16_t(955), Tuint16_t(955), Tuint16_t(955), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68697 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68698 68699 // block 135 68700 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68701 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68702 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68703 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68704 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68705 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68706 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68707 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68708 68709 // block 136 68710 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68711 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68712 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68713 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(956), Tuint16_t(957), 68714 Tuint16_t(280), Tuint16_t(280), Tuint16_t(280), Tuint16_t(280), Tuint16_t(280), Tuint16_t(280), Tuint16_t(280), Tuint16_t(280), Tuint16_t(280), Tuint16_t(280), Tuint16_t(280), Tuint16_t(280), Tuint16_t(280), Tuint16_t(280), Tuint16_t(280), Tuint16_t(280), 68715 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68716 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68717 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68718 68719 // block 137 68720 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68721 Tuint16_t(302), Tuint16_t(302), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68722 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68723 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68724 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(280), 68725 Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), 68726 Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), Tuint16_t(958), 68727 Tuint16_t(286), Tuint16_t(286), Tuint16_t(959), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(955), Tuint16_t(955), Tuint16_t(277), Tuint16_t(960), Tuint16_t(280), Tuint16_t(280), 68728 68729 // block 138 68730 Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(962), 68731 Tuint16_t(963), Tuint16_t(963), Tuint16_t(963), Tuint16_t(964), Tuint16_t(963), Tuint16_t(963), Tuint16_t(963), Tuint16_t(965), Tuint16_t(966), Tuint16_t(963), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68732 Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(855), Tuint16_t(855), 68733 Tuint16_t(963), Tuint16_t(967), Tuint16_t(967), Tuint16_t(700), Tuint16_t(700), Tuint16_t(965), Tuint16_t(966), Tuint16_t(965), Tuint16_t(966), Tuint16_t(965), Tuint16_t(966), Tuint16_t(965), Tuint16_t(966), Tuint16_t(965), Tuint16_t(966), Tuint16_t(965), 68734 Tuint16_t(966), Tuint16_t(968), Tuint16_t(969), Tuint16_t(968), Tuint16_t(969), Tuint16_t(798), Tuint16_t(798), Tuint16_t(965), Tuint16_t(966), Tuint16_t(963), Tuint16_t(963), Tuint16_t(963), Tuint16_t(963), Tuint16_t(700), Tuint16_t(700), Tuint16_t(700), 68735 Tuint16_t(970), Tuint16_t(166), Tuint16_t(971), Tuint16_t(163), Tuint16_t(166), Tuint16_t(972), Tuint16_t(973), Tuint16_t(973), Tuint16_t(967), Tuint16_t(974), Tuint16_t(975), Tuint16_t(974), Tuint16_t(975), Tuint16_t(974), Tuint16_t(975), Tuint16_t(976), 68736 Tuint16_t(963), Tuint16_t(977), Tuint16_t(713), Tuint16_t(978), Tuint16_t(979), Tuint16_t(979), Tuint16_t(715), Tuint16_t(163), Tuint16_t(977), Tuint16_t(431), Tuint16_t(976), Tuint16_t(963), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68737 Tuint16_t(955), Tuint16_t(286), Tuint16_t(955), Tuint16_t(286), Tuint16_t(955), Tuint16_t(302), Tuint16_t(955), Tuint16_t(286), Tuint16_t(955), Tuint16_t(286), Tuint16_t(955), Tuint16_t(286), Tuint16_t(955), Tuint16_t(286), Tuint16_t(955), Tuint16_t(286), 68738 68739 // block 139 68740 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68741 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68742 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68743 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68744 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68745 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68746 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), 68747 Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(286), Tuint16_t(302), Tuint16_t(302), Tuint16_t(51), 68748 68749 // block 140 68750 Tuint16_t(163), Tuint16_t(973), Tuint16_t(980), Tuint16_t(976), Tuint16_t(431), Tuint16_t(976), Tuint16_t(963), Tuint16_t(981), Tuint16_t(974), Tuint16_t(975), Tuint16_t(963), Tuint16_t(713), Tuint16_t(970), Tuint16_t(982), Tuint16_t(971), Tuint16_t(983), 68751 Tuint16_t(984), Tuint16_t(984), Tuint16_t(984), Tuint16_t(984), Tuint16_t(984), Tuint16_t(984), Tuint16_t(984), Tuint16_t(984), Tuint16_t(984), Tuint16_t(984), Tuint16_t(972), Tuint16_t(166), Tuint16_t(979), Tuint16_t(715), Tuint16_t(979), Tuint16_t(973), 68752 Tuint16_t(963), Tuint16_t(985), Tuint16_t(985), Tuint16_t(985), Tuint16_t(985), Tuint16_t(985), Tuint16_t(985), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), 68753 Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(59), Tuint16_t(974), Tuint16_t(977), Tuint16_t(975), Tuint16_t(986), Tuint16_t(700), 68754 Tuint16_t(46), Tuint16_t(987), Tuint16_t(987), Tuint16_t(987), Tuint16_t(987), Tuint16_t(987), Tuint16_t(987), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), 68755 Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(62), Tuint16_t(974), Tuint16_t(715), Tuint16_t(975), Tuint16_t(715), Tuint16_t(974), 68756 Tuint16_t(975), Tuint16_t(988), Tuint16_t(989), Tuint16_t(990), Tuint16_t(991), Tuint16_t(825), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), 68757 Tuint16_t(826), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), 68758 68759 // block 141 68760 Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), 68761 Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(992), Tuint16_t(992), 68762 Tuint16_t(830), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), 68763 Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(163), 68764 Tuint16_t(163), Tuint16_t(163), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(163), Tuint16_t(163), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), 68765 Tuint16_t(163), Tuint16_t(163), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(163), Tuint16_t(163), Tuint16_t(829), Tuint16_t(829), Tuint16_t(829), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68766 Tuint16_t(431), Tuint16_t(431), Tuint16_t(715), Tuint16_t(46), Tuint16_t(723), Tuint16_t(431), Tuint16_t(431), Tuint16_t(163), Tuint16_t(723), Tuint16_t(715), Tuint16_t(715), Tuint16_t(715), Tuint16_t(715), Tuint16_t(723), Tuint16_t(723), Tuint16_t(163), 68767 Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(993), Tuint16_t(993), Tuint16_t(993), Tuint16_t(723), Tuint16_t(723), Tuint16_t(958), Tuint16_t(958), 68768 68769 // block 142 68770 Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(163), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), 68771 Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), 68772 Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(163), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), 68773 Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(163), Tuint16_t(994), Tuint16_t(994), Tuint16_t(163), Tuint16_t(994), 68774 Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(163), Tuint16_t(163), 68775 Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(163), Tuint16_t(163), 68776 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68777 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68778 68779 // block 143 68780 Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), 68781 Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), 68782 Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), 68783 Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), 68784 Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), 68785 Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), 68786 Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), 68787 Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(994), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68788 68789 // block 144 68790 Tuint16_t(995), Tuint16_t(996), Tuint16_t(997), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), 68791 Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), 68792 Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), 68793 Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(998), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(999), Tuint16_t(999), Tuint16_t(999), Tuint16_t(999), Tuint16_t(999), Tuint16_t(999), Tuint16_t(999), Tuint16_t(999), Tuint16_t(999), 68794 Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), 68795 Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), 68796 Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), 68797 Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1000), Tuint16_t(1001), Tuint16_t(1001), Tuint16_t(1001), Tuint16_t(1001), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), 68798 68799 // block 145 68800 Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1001), Tuint16_t(1001), Tuint16_t(1002), Tuint16_t(1003), Tuint16_t(1003), Tuint16_t(163), 68801 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68802 Tuint16_t(1002), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68803 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68804 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68805 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 68806 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 68807 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(158), Tuint16_t(163), Tuint16_t(163), 68808 68809 // block 146 68810 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68811 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68812 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68813 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68814 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68815 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68816 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68817 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68818 68819 // block 147 68820 Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), 68821 Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(1004), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68822 Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), 68823 Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), 68824 Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), Tuint16_t(1005), 68825 Tuint16_t(1005), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68826 Tuint16_t(1006), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), 68827 Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(1007), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68828 68829 // block 148 68830 Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), 68831 Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), 68832 Tuint16_t(1009), Tuint16_t(1009), Tuint16_t(1009), Tuint16_t(1009), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1008), Tuint16_t(1008), Tuint16_t(1008), 68833 Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), 68834 Tuint16_t(1010), Tuint16_t(1011), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1010), Tuint16_t(1011), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68835 Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), 68836 Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), 68837 Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1012), Tuint16_t(1013), Tuint16_t(1013), Tuint16_t(1013), Tuint16_t(1013), Tuint16_t(1013), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68838 68839 // block 149 68840 Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), 68841 Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(1014), Tuint16_t(163), Tuint16_t(1015), 68842 Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), 68843 Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), 68844 Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), Tuint16_t(1016), 68845 Tuint16_t(1017), Tuint16_t(1018), Tuint16_t(1018), Tuint16_t(1018), Tuint16_t(1018), Tuint16_t(1018), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68846 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68847 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68848 68849 // block 150 68850 Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), 68851 Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), 68852 Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1019), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), 68853 Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), 68854 Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), Tuint16_t(1020), 68855 Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), 68856 Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), 68857 Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), Tuint16_t(1021), 68858 68859 // block 151 68860 Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), 68861 Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(1022), Tuint16_t(163), Tuint16_t(163), 68862 Tuint16_t(1023), Tuint16_t(1023), Tuint16_t(1023), Tuint16_t(1023), Tuint16_t(1023), Tuint16_t(1023), Tuint16_t(1023), Tuint16_t(1023), Tuint16_t(1023), Tuint16_t(1023), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68863 Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), 68864 Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), 68865 Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(1024), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), 68866 Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), 68867 Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(1025), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68868 68869 // block 152 68870 Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), 68871 Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), 68872 Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(1026), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68873 Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), 68874 Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), 68875 Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), 68876 Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(1027), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1028), 68877 Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(163), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), 68878 68879 // block 153 68880 Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(163), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), 68881 Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(163), Tuint16_t(1029), Tuint16_t(1029), Tuint16_t(163), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), 68882 Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(163), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), 68883 Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(163), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(163), Tuint16_t(1030), Tuint16_t(1030), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68884 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68885 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68886 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68887 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68888 68889 // block 154 68890 Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), 68891 Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), 68892 Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), 68893 Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), 68894 Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), 68895 Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), 68896 Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), 68897 Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), 68898 68899 // block 155 68900 Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), 68901 Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), 68902 Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), 68903 Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68904 Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), 68905 Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68906 Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(1031), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68907 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68908 68909 // block 156 68910 Tuint16_t(147), Tuint16_t(1032), Tuint16_t(1032), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(163), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), 68911 Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), 68912 Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), 68913 Tuint16_t(147), Tuint16_t(163), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(147), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68914 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68915 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68916 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68917 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 68918 68919 // block 157 68920 Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1033), Tuint16_t(262), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), 68921 Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), 68922 Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), 68923 Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(262), Tuint16_t(1033), Tuint16_t(1033), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1033), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1033), 68924 Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), 68925 Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(1034), Tuint16_t(262), Tuint16_t(1035), Tuint16_t(1036), Tuint16_t(1036), Tuint16_t(1036), Tuint16_t(1036), Tuint16_t(1036), Tuint16_t(1036), Tuint16_t(1036), Tuint16_t(1036), 68926 Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), 68927 Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1037), Tuint16_t(1038), Tuint16_t(1038), Tuint16_t(1039), Tuint16_t(1039), Tuint16_t(1039), Tuint16_t(1039), Tuint16_t(1039), Tuint16_t(1039), Tuint16_t(1039), 68928 68929 // block 158 68930 Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), 68931 Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(1040), Tuint16_t(262), 68932 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1041), Tuint16_t(1041), Tuint16_t(1041), Tuint16_t(1041), Tuint16_t(1041), Tuint16_t(1041), Tuint16_t(1041), Tuint16_t(1041), Tuint16_t(1041), 68933 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68934 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68935 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68936 Tuint16_t(1042), Tuint16_t(1042), Tuint16_t(1042), Tuint16_t(1042), Tuint16_t(1042), Tuint16_t(1042), Tuint16_t(1042), Tuint16_t(1042), Tuint16_t(1042), Tuint16_t(1042), Tuint16_t(1042), Tuint16_t(1042), Tuint16_t(1042), Tuint16_t(1042), Tuint16_t(1042), Tuint16_t(1042), 68937 Tuint16_t(1042), Tuint16_t(1042), Tuint16_t(1042), Tuint16_t(262), Tuint16_t(1042), Tuint16_t(1042), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1043), Tuint16_t(1043), Tuint16_t(1043), Tuint16_t(1043), Tuint16_t(1043), 68938 68939 // block 159 68940 Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), 68941 Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1044), Tuint16_t(1045), Tuint16_t(1045), Tuint16_t(1045), Tuint16_t(1045), Tuint16_t(1045), Tuint16_t(1045), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1046), 68942 Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), 68943 Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(1047), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1048), 68944 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68945 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68946 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68947 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68948 68949 // block 160 68950 Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), 68951 Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), Tuint16_t(1049), 68952 Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), 68953 Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(1050), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1050), Tuint16_t(1050), 68954 Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), 68955 Tuint16_t(262), Tuint16_t(262), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), 68956 Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), 68957 Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), Tuint16_t(1051), 68958 68959 // block 161 68960 Tuint16_t(1052), Tuint16_t(1053), Tuint16_t(1053), Tuint16_t(1053), Tuint16_t(262), Tuint16_t(1053), Tuint16_t(1053), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1053), Tuint16_t(1053), Tuint16_t(1053), Tuint16_t(1053), 68961 Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(262), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(262), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), 68962 Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), 68963 Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(1052), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1054), Tuint16_t(1054), Tuint16_t(1054), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1055), 68964 Tuint16_t(1056), Tuint16_t(1056), Tuint16_t(1056), Tuint16_t(1056), Tuint16_t(1056), Tuint16_t(1056), Tuint16_t(1056), Tuint16_t(1056), Tuint16_t(1056), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68965 Tuint16_t(1057), Tuint16_t(1057), Tuint16_t(1057), Tuint16_t(1057), Tuint16_t(1057), Tuint16_t(1057), Tuint16_t(1058), Tuint16_t(1058), Tuint16_t(1057), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68966 Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), 68967 Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1059), Tuint16_t(1060), Tuint16_t(1060), Tuint16_t(1061), 68968 68969 // block 162 68970 Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), 68971 Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1062), Tuint16_t(1063), Tuint16_t(1063), Tuint16_t(1063), 68972 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68973 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68974 Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1065), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), 68975 Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), 68976 Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1064), Tuint16_t(1066), Tuint16_t(1066), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1067), Tuint16_t(1067), Tuint16_t(1067), Tuint16_t(1067), Tuint16_t(1067), 68977 Tuint16_t(1068), Tuint16_t(1068), Tuint16_t(1069), Tuint16_t(1068), Tuint16_t(1068), Tuint16_t(1068), Tuint16_t(1070), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68978 68979 // block 163 68980 Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), 68981 Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), 68982 Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), 68983 Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(1071), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1072), Tuint16_t(1073), Tuint16_t(1073), Tuint16_t(1073), Tuint16_t(1073), Tuint16_t(1073), Tuint16_t(1073), 68984 Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), 68985 Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(1074), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1075), Tuint16_t(1075), Tuint16_t(1075), Tuint16_t(1075), Tuint16_t(1075), Tuint16_t(1075), Tuint16_t(1075), Tuint16_t(1075), 68986 Tuint16_t(1076), Tuint16_t(1076), Tuint16_t(1076), Tuint16_t(1076), Tuint16_t(1076), Tuint16_t(1076), Tuint16_t(1076), Tuint16_t(1076), Tuint16_t(1076), Tuint16_t(1076), Tuint16_t(1076), Tuint16_t(1076), Tuint16_t(1076), Tuint16_t(1076), Tuint16_t(1076), Tuint16_t(1076), 68987 Tuint16_t(1076), Tuint16_t(1076), Tuint16_t(1076), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1077), Tuint16_t(1077), Tuint16_t(1077), Tuint16_t(1077), Tuint16_t(1077), Tuint16_t(1077), Tuint16_t(1077), Tuint16_t(1077), 68988 68989 // block 164 68990 Tuint16_t(1078), Tuint16_t(1078), Tuint16_t(1078), Tuint16_t(1078), Tuint16_t(1078), Tuint16_t(1078), Tuint16_t(1078), Tuint16_t(1078), Tuint16_t(1078), Tuint16_t(1078), Tuint16_t(1078), Tuint16_t(1078), Tuint16_t(1078), Tuint16_t(1078), Tuint16_t(1078), Tuint16_t(1078), 68991 Tuint16_t(1078), Tuint16_t(1078), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1079), Tuint16_t(1079), Tuint16_t(1079), Tuint16_t(1079), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68992 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1080), Tuint16_t(1080), Tuint16_t(1080), Tuint16_t(1080), Tuint16_t(1080), Tuint16_t(1080), Tuint16_t(1080), 68993 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68994 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68995 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68996 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68997 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 68998 68999 // block 165 69000 Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), 69001 Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), 69002 Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), 69003 Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), 69004 Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(1081), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69005 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69006 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69007 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69008 69009 // block 166 69010 Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), 69011 Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), 69012 Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), 69013 Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(1082), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69014 Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), 69015 Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), 69016 Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), 69017 Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(1083), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1084), Tuint16_t(1084), Tuint16_t(1084), Tuint16_t(1084), Tuint16_t(1084), Tuint16_t(1084), 69018 69019 // block 167 69020 Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), 69021 Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1085), 69022 Tuint16_t(1085), Tuint16_t(1085), Tuint16_t(1086), Tuint16_t(1086), Tuint16_t(1087), Tuint16_t(1087), Tuint16_t(1087), Tuint16_t(1087), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), 69023 Tuint16_t(1088), Tuint16_t(1088), Tuint16_t(1088), Tuint16_t(1088), Tuint16_t(1088), Tuint16_t(1088), Tuint16_t(1088), Tuint16_t(1088), Tuint16_t(1088), Tuint16_t(1088), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), 69024 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69025 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69026 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69027 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69028 69029 // block 168 69030 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69031 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69032 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69033 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69034 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69035 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69036 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69037 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69038 69039 // block 169 69040 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69041 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69042 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69043 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69044 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69045 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69046 Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), 69047 Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(1089), Tuint16_t(262), 69048 69049 // block 170 69050 Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), 69051 Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), 69052 Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(262), Tuint16_t(1091), Tuint16_t(1091), Tuint16_t(1092), Tuint16_t(262), Tuint16_t(262), 69053 Tuint16_t(1090), Tuint16_t(1090), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69054 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69055 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69056 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69057 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69058 69059 // block 171 69060 Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), 69061 Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1093), Tuint16_t(1094), Tuint16_t(1094), Tuint16_t(1094), 69062 Tuint16_t(1094), Tuint16_t(1094), Tuint16_t(1094), Tuint16_t(1094), Tuint16_t(1094), Tuint16_t(1094), Tuint16_t(1094), Tuint16_t(1093), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69063 Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), 69064 Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1095), Tuint16_t(1096), Tuint16_t(1096), Tuint16_t(1096), Tuint16_t(1096), Tuint16_t(1096), Tuint16_t(1096), Tuint16_t(1096), Tuint16_t(1096), Tuint16_t(1096), Tuint16_t(1096), 69065 Tuint16_t(1096), Tuint16_t(1097), Tuint16_t(1097), Tuint16_t(1097), Tuint16_t(1097), Tuint16_t(1098), Tuint16_t(1098), Tuint16_t(1098), Tuint16_t(1098), Tuint16_t(1098), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), 69066 Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), 69067 Tuint16_t(1099), Tuint16_t(1099), Tuint16_t(1099), Tuint16_t(1099), Tuint16_t(1099), Tuint16_t(1099), Tuint16_t(1099), Tuint16_t(1099), Tuint16_t(1099), Tuint16_t(1099), Tuint16_t(1099), Tuint16_t(1099), Tuint16_t(1099), Tuint16_t(1099), Tuint16_t(1099), Tuint16_t(1099), 69068 69069 // block 172 69070 Tuint16_t(1099), Tuint16_t(1099), Tuint16_t(1100), Tuint16_t(1100), Tuint16_t(1100), Tuint16_t(1100), Tuint16_t(1101), Tuint16_t(1101), Tuint16_t(1101), Tuint16_t(1101), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69071 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69072 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69073 Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1102), 69074 Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1102), Tuint16_t(1103), Tuint16_t(1103), Tuint16_t(1103), Tuint16_t(1103), Tuint16_t(1103), Tuint16_t(1103), Tuint16_t(1103), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69075 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69076 Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), 69077 Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(1104), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69078 69079 // block 173 69080 Tuint16_t(1105), Tuint16_t(1106), Tuint16_t(1105), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), 69081 Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), 69082 Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), 69083 Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1106), Tuint16_t(1106), Tuint16_t(1106), Tuint16_t(1106), Tuint16_t(1106), Tuint16_t(1106), Tuint16_t(1106), Tuint16_t(1106), 69084 Tuint16_t(1106), Tuint16_t(1106), Tuint16_t(1106), Tuint16_t(1106), Tuint16_t(1106), Tuint16_t(1106), Tuint16_t(1108), Tuint16_t(1109), Tuint16_t(1109), Tuint16_t(1110), Tuint16_t(1110), Tuint16_t(1110), Tuint16_t(1110), Tuint16_t(1110), Tuint16_t(163), Tuint16_t(163), 69085 Tuint16_t(163), Tuint16_t(163), Tuint16_t(1111), Tuint16_t(1111), Tuint16_t(1111), Tuint16_t(1111), Tuint16_t(1111), Tuint16_t(1111), Tuint16_t(1111), Tuint16_t(1111), Tuint16_t(1111), Tuint16_t(1111), Tuint16_t(1111), Tuint16_t(1111), Tuint16_t(1111), Tuint16_t(1111), 69086 Tuint16_t(1111), Tuint16_t(1111), Tuint16_t(1111), Tuint16_t(1111), Tuint16_t(1111), Tuint16_t(1111), Tuint16_t(1112), Tuint16_t(1112), Tuint16_t(1112), Tuint16_t(1112), Tuint16_t(1112), Tuint16_t(1112), Tuint16_t(1112), Tuint16_t(1112), Tuint16_t(1112), Tuint16_t(1112), 69087 Tuint16_t(1108), Tuint16_t(1107), Tuint16_t(1107), Tuint16_t(1106), Tuint16_t(1106), Tuint16_t(1107), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1113), 69088 69089 // block 174 69090 Tuint16_t(1114), Tuint16_t(1114), Tuint16_t(1115), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), 69091 Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), 69092 Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), Tuint16_t(1116), 69093 Tuint16_t(1115), Tuint16_t(1115), Tuint16_t(1115), Tuint16_t(1117), Tuint16_t(1117), Tuint16_t(1117), Tuint16_t(1117), Tuint16_t(1115), Tuint16_t(1115), Tuint16_t(1118), Tuint16_t(1119), Tuint16_t(1120), Tuint16_t(1120), Tuint16_t(1121), Tuint16_t(1122), Tuint16_t(1122), 69094 Tuint16_t(1122), Tuint16_t(1122), Tuint16_t(1117), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1121), Tuint16_t(163), Tuint16_t(163), 69095 Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), 69096 Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(1123), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69097 Tuint16_t(1124), Tuint16_t(1124), Tuint16_t(1124), Tuint16_t(1124), Tuint16_t(1124), Tuint16_t(1124), Tuint16_t(1124), Tuint16_t(1124), Tuint16_t(1124), Tuint16_t(1124), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69098 69099 // block 175 69100 Tuint16_t(1125), Tuint16_t(1125), Tuint16_t(1125), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), 69101 Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), 69102 Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1126), Tuint16_t(1125), Tuint16_t(1125), Tuint16_t(1125), Tuint16_t(1125), Tuint16_t(1125), Tuint16_t(1127), Tuint16_t(1125), Tuint16_t(1125), Tuint16_t(1125), 69103 Tuint16_t(1125), Tuint16_t(1125), Tuint16_t(1125), Tuint16_t(1128), Tuint16_t(1128), Tuint16_t(163), Tuint16_t(1129), Tuint16_t(1129), Tuint16_t(1129), Tuint16_t(1129), Tuint16_t(1129), Tuint16_t(1129), Tuint16_t(1129), Tuint16_t(1129), Tuint16_t(1129), Tuint16_t(1129), 69104 Tuint16_t(1130), Tuint16_t(1131), Tuint16_t(1131), Tuint16_t(1131), Tuint16_t(1126), Tuint16_t(1127), Tuint16_t(1127), Tuint16_t(1126), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69105 Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), 69106 Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), 69107 Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1132), Tuint16_t(1133), Tuint16_t(1134), Tuint16_t(1134), Tuint16_t(1132), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69108 69109 // block 176 69110 Tuint16_t(1135), Tuint16_t(1135), Tuint16_t(1136), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), 69111 Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), 69112 Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), 69113 Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1137), Tuint16_t(1136), Tuint16_t(1136), Tuint16_t(1136), Tuint16_t(1135), Tuint16_t(1135), Tuint16_t(1135), Tuint16_t(1135), Tuint16_t(1135), Tuint16_t(1135), Tuint16_t(1135), Tuint16_t(1135), Tuint16_t(1135), Tuint16_t(1136), 69114 Tuint16_t(1138), Tuint16_t(1137), Tuint16_t(1139), Tuint16_t(1139), Tuint16_t(1137), Tuint16_t(1140), Tuint16_t(1140), Tuint16_t(1141), Tuint16_t(1141), Tuint16_t(1142), Tuint16_t(1143), Tuint16_t(1143), Tuint16_t(1143), Tuint16_t(1140), Tuint16_t(1136), Tuint16_t(1135), 69115 Tuint16_t(1144), Tuint16_t(1144), Tuint16_t(1144), Tuint16_t(1144), Tuint16_t(1144), Tuint16_t(1144), Tuint16_t(1144), Tuint16_t(1144), Tuint16_t(1144), Tuint16_t(1144), Tuint16_t(1137), Tuint16_t(1141), Tuint16_t(1137), Tuint16_t(1141), Tuint16_t(1140), Tuint16_t(1140), 69116 Tuint16_t(163), Tuint16_t(1145), Tuint16_t(1145), Tuint16_t(1145), Tuint16_t(1145), Tuint16_t(1145), Tuint16_t(1145), Tuint16_t(1145), Tuint16_t(1145), Tuint16_t(1145), Tuint16_t(1145), Tuint16_t(1145), Tuint16_t(1145), Tuint16_t(1145), Tuint16_t(1145), Tuint16_t(1145), 69117 Tuint16_t(1145), Tuint16_t(1145), Tuint16_t(1145), Tuint16_t(1145), Tuint16_t(1145), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69118 69119 // block 177 69120 Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), 69121 Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(163), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), 69122 Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1146), Tuint16_t(1147), Tuint16_t(1147), Tuint16_t(1147), Tuint16_t(1148), 69123 Tuint16_t(1148), Tuint16_t(1148), Tuint16_t(1147), Tuint16_t(1147), Tuint16_t(1148), Tuint16_t(1149), Tuint16_t(1150), Tuint16_t(1148), Tuint16_t(1151), Tuint16_t(1151), Tuint16_t(1152), Tuint16_t(1151), Tuint16_t(1151), Tuint16_t(1153), Tuint16_t(1148), Tuint16_t(163), 69124 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69125 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69126 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69127 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69128 69129 // block 178 69130 Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(163), Tuint16_t(1154), Tuint16_t(163), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(163), Tuint16_t(1154), 69131 Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(163), Tuint16_t(1154), 69132 Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1154), Tuint16_t(1155), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69133 Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), 69134 Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), 69135 Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1156), Tuint16_t(1157), 69136 Tuint16_t(1158), Tuint16_t(1158), Tuint16_t(1158), Tuint16_t(1157), Tuint16_t(1157), Tuint16_t(1157), Tuint16_t(1157), Tuint16_t(1157), Tuint16_t(1157), Tuint16_t(1159), Tuint16_t(1160), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69137 Tuint16_t(1161), Tuint16_t(1161), Tuint16_t(1161), Tuint16_t(1161), Tuint16_t(1161), Tuint16_t(1161), Tuint16_t(1161), Tuint16_t(1161), Tuint16_t(1161), Tuint16_t(1161), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69138 69139 // block 179 69140 Tuint16_t(1162), Tuint16_t(1163), Tuint16_t(1164), Tuint16_t(1165), Tuint16_t(163), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1166), 69141 Tuint16_t(1166), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), 69142 Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(163), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), 69143 Tuint16_t(1166), Tuint16_t(163), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(163), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(163), Tuint16_t(1167), Tuint16_t(1168), Tuint16_t(1166), Tuint16_t(1169), Tuint16_t(1164), 69144 Tuint16_t(1162), Tuint16_t(1164), Tuint16_t(1164), Tuint16_t(1164), Tuint16_t(1164), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1164), Tuint16_t(1164), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1164), Tuint16_t(1164), Tuint16_t(1170), Tuint16_t(163), Tuint16_t(163), 69145 Tuint16_t(1166), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1169), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1171), Tuint16_t(1166), Tuint16_t(1166), 69146 Tuint16_t(1166), Tuint16_t(1166), Tuint16_t(1164), Tuint16_t(1164), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1172), Tuint16_t(1172), Tuint16_t(1172), Tuint16_t(1172), Tuint16_t(1172), Tuint16_t(1172), Tuint16_t(1172), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69147 Tuint16_t(1172), Tuint16_t(1172), Tuint16_t(1172), Tuint16_t(1172), Tuint16_t(1172), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69148 69149 // block 180 69150 Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), 69151 Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), 69152 Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), 69153 Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1174), Tuint16_t(1174), Tuint16_t(1174), Tuint16_t(1175), Tuint16_t(1175), Tuint16_t(1175), Tuint16_t(1175), Tuint16_t(1175), Tuint16_t(1175), Tuint16_t(1175), Tuint16_t(1175), 69154 Tuint16_t(1174), Tuint16_t(1174), Tuint16_t(1176), Tuint16_t(1175), Tuint16_t(1175), Tuint16_t(1174), Tuint16_t(1177), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(1178), Tuint16_t(1178), Tuint16_t(1179), Tuint16_t(1180), Tuint16_t(1180), 69155 Tuint16_t(1181), Tuint16_t(1181), Tuint16_t(1181), Tuint16_t(1181), Tuint16_t(1181), Tuint16_t(1181), Tuint16_t(1181), Tuint16_t(1181), Tuint16_t(1181), Tuint16_t(1181), Tuint16_t(1179), Tuint16_t(1179), Tuint16_t(163), Tuint16_t(1180), Tuint16_t(1182), Tuint16_t(1173), 69156 Tuint16_t(1173), Tuint16_t(1173), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69157 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69158 69159 // block 181 69160 Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), 69161 Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), 69162 Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1183), 69163 Tuint16_t(1184), Tuint16_t(1185), Tuint16_t(1185), Tuint16_t(1186), Tuint16_t(1186), Tuint16_t(1186), Tuint16_t(1186), Tuint16_t(1186), Tuint16_t(1186), Tuint16_t(1185), Tuint16_t(1186), Tuint16_t(1185), Tuint16_t(1185), Tuint16_t(1184), Tuint16_t(1185), Tuint16_t(1186), 69164 Tuint16_t(1186), Tuint16_t(1185), Tuint16_t(1187), Tuint16_t(1188), Tuint16_t(1183), Tuint16_t(1183), Tuint16_t(1189), Tuint16_t(1183), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69165 Tuint16_t(1190), Tuint16_t(1190), Tuint16_t(1190), Tuint16_t(1190), Tuint16_t(1190), Tuint16_t(1190), Tuint16_t(1190), Tuint16_t(1190), Tuint16_t(1190), Tuint16_t(1190), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69166 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69167 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69168 69169 // block 182 69170 Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), 69171 Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), 69172 Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1192), 69173 Tuint16_t(1193), Tuint16_t(1193), Tuint16_t(1194), Tuint16_t(1194), Tuint16_t(1194), Tuint16_t(1194), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1193), Tuint16_t(1193), Tuint16_t(1193), Tuint16_t(1193), Tuint16_t(1194), Tuint16_t(1194), Tuint16_t(1193), Tuint16_t(1195), 69174 Tuint16_t(1196), Tuint16_t(1197), Tuint16_t(1198), Tuint16_t(1198), Tuint16_t(1199), Tuint16_t(1199), Tuint16_t(1200), Tuint16_t(1200), Tuint16_t(1200), Tuint16_t(1198), Tuint16_t(1198), Tuint16_t(1198), Tuint16_t(1198), Tuint16_t(1198), Tuint16_t(1198), Tuint16_t(1198), 69175 Tuint16_t(1198), Tuint16_t(1198), Tuint16_t(1198), Tuint16_t(1198), Tuint16_t(1198), Tuint16_t(1198), Tuint16_t(1198), Tuint16_t(1198), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1191), Tuint16_t(1194), Tuint16_t(1194), Tuint16_t(163), Tuint16_t(163), 69176 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69177 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69178 69179 // block 183 69180 Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), 69181 Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), 69182 Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), Tuint16_t(1201), 69183 Tuint16_t(1202), Tuint16_t(1202), Tuint16_t(1202), Tuint16_t(1203), Tuint16_t(1203), Tuint16_t(1203), Tuint16_t(1203), Tuint16_t(1203), Tuint16_t(1203), Tuint16_t(1203), Tuint16_t(1203), Tuint16_t(1202), Tuint16_t(1202), Tuint16_t(1203), Tuint16_t(1202), Tuint16_t(1204), 69184 Tuint16_t(1203), Tuint16_t(1205), Tuint16_t(1205), Tuint16_t(1206), Tuint16_t(1201), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69185 Tuint16_t(1207), Tuint16_t(1207), Tuint16_t(1207), Tuint16_t(1207), Tuint16_t(1207), Tuint16_t(1207), Tuint16_t(1207), Tuint16_t(1207), Tuint16_t(1207), Tuint16_t(1207), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69186 Tuint16_t(530), Tuint16_t(530), Tuint16_t(530), Tuint16_t(530), Tuint16_t(530), Tuint16_t(530), Tuint16_t(530), Tuint16_t(530), Tuint16_t(530), Tuint16_t(530), Tuint16_t(530), Tuint16_t(530), Tuint16_t(530), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69187 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69188 69189 // block 184 69190 Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), 69191 Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), 69192 Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1208), Tuint16_t(1209), Tuint16_t(1210), Tuint16_t(1209), Tuint16_t(1210), Tuint16_t(1210), 69193 Tuint16_t(1209), Tuint16_t(1209), Tuint16_t(1209), Tuint16_t(1209), Tuint16_t(1209), Tuint16_t(1209), Tuint16_t(1211), Tuint16_t(1212), Tuint16_t(1208), Tuint16_t(1213), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69194 Tuint16_t(1214), Tuint16_t(1214), Tuint16_t(1214), Tuint16_t(1214), Tuint16_t(1214), Tuint16_t(1214), Tuint16_t(1214), Tuint16_t(1214), Tuint16_t(1214), Tuint16_t(1214), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69195 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69196 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69197 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69198 69199 // block 185 69200 Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), 69201 Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1216), Tuint16_t(1216), Tuint16_t(1216), 69202 Tuint16_t(1217), Tuint16_t(1217), Tuint16_t(1216), Tuint16_t(1216), Tuint16_t(1216), Tuint16_t(1216), Tuint16_t(1218), Tuint16_t(1216), Tuint16_t(1216), Tuint16_t(1216), Tuint16_t(1216), Tuint16_t(1219), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69203 Tuint16_t(1220), Tuint16_t(1220), Tuint16_t(1220), Tuint16_t(1220), Tuint16_t(1220), Tuint16_t(1220), Tuint16_t(1220), Tuint16_t(1220), Tuint16_t(1220), Tuint16_t(1220), Tuint16_t(1221), Tuint16_t(1221), Tuint16_t(1222), Tuint16_t(1222), Tuint16_t(1222), Tuint16_t(1223), 69204 Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(1215), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69205 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69206 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69207 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69208 69209 // block 186 69210 Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), 69211 Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), 69212 Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1224), Tuint16_t(1225), Tuint16_t(1225), Tuint16_t(1225), Tuint16_t(1226), 69213 Tuint16_t(1226), Tuint16_t(1226), Tuint16_t(1226), Tuint16_t(1226), Tuint16_t(1226), Tuint16_t(1226), Tuint16_t(1226), Tuint16_t(1226), Tuint16_t(1225), Tuint16_t(1227), Tuint16_t(1228), Tuint16_t(1229), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69214 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69215 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69216 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69217 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69218 69219 // block 187 69220 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69221 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69222 Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), 69223 Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), Tuint16_t(1230), 69224 Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), 69225 Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), Tuint16_t(1231), 69226 Tuint16_t(1232), Tuint16_t(1232), Tuint16_t(1232), Tuint16_t(1232), Tuint16_t(1232), Tuint16_t(1232), Tuint16_t(1232), Tuint16_t(1232), Tuint16_t(1232), Tuint16_t(1232), Tuint16_t(1233), Tuint16_t(1233), Tuint16_t(1233), Tuint16_t(1233), Tuint16_t(1233), Tuint16_t(1233), 69227 Tuint16_t(1233), Tuint16_t(1233), Tuint16_t(1233), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1234), 69228 69229 // block 188 69230 Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1235), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), 69231 Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(163), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(163), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), 69232 Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), Tuint16_t(1235), 69233 Tuint16_t(1236), Tuint16_t(1237), Tuint16_t(1237), Tuint16_t(1237), Tuint16_t(1237), Tuint16_t(1237), Tuint16_t(163), Tuint16_t(1237), Tuint16_t(1237), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1238), Tuint16_t(1238), Tuint16_t(1239), Tuint16_t(1240), Tuint16_t(1241), 69234 Tuint16_t(1237), Tuint16_t(1241), Tuint16_t(1237), Tuint16_t(1242), Tuint16_t(1243), Tuint16_t(1244), Tuint16_t(1243), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69235 Tuint16_t(1245), Tuint16_t(1245), Tuint16_t(1245), Tuint16_t(1245), Tuint16_t(1245), Tuint16_t(1245), Tuint16_t(1245), Tuint16_t(1245), Tuint16_t(1245), Tuint16_t(1245), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69236 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69237 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69238 69239 // block 189 69240 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69241 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69242 Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), 69243 Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), 69244 Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), Tuint16_t(1246), 69245 Tuint16_t(1246), Tuint16_t(1247), Tuint16_t(1247), Tuint16_t(1247), Tuint16_t(1248), Tuint16_t(1248), Tuint16_t(1248), Tuint16_t(1248), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1248), Tuint16_t(1248), Tuint16_t(1247), Tuint16_t(1247), Tuint16_t(1247), Tuint16_t(1247), 69246 Tuint16_t(1249), Tuint16_t(1246), Tuint16_t(1250), Tuint16_t(1246), Tuint16_t(1247), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69247 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69248 69249 // block 190 69250 Tuint16_t(1251), Tuint16_t(1252), Tuint16_t(1252), Tuint16_t(1252), Tuint16_t(1252), Tuint16_t(1252), Tuint16_t(1252), Tuint16_t(1253), Tuint16_t(1253), Tuint16_t(1252), Tuint16_t(1252), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), 69251 Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), 69252 Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), 69253 Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1251), Tuint16_t(1254), Tuint16_t(1255), Tuint16_t(1252), Tuint16_t(1252), Tuint16_t(1252), Tuint16_t(1252), Tuint16_t(1256), Tuint16_t(1257), Tuint16_t(1252), Tuint16_t(1252), Tuint16_t(1252), Tuint16_t(1252), Tuint16_t(1258), 69254 Tuint16_t(1258), Tuint16_t(1258), Tuint16_t(1259), Tuint16_t(1259), Tuint16_t(1258), Tuint16_t(1258), Tuint16_t(1258), Tuint16_t(1255), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69255 Tuint16_t(1260), Tuint16_t(1261), Tuint16_t(1261), Tuint16_t(1261), Tuint16_t(1261), Tuint16_t(1261), Tuint16_t(1261), Tuint16_t(1262), Tuint16_t(1262), Tuint16_t(1261), Tuint16_t(1261), Tuint16_t(1261), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), 69256 Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), 69257 Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), 69258 69259 // block 191 69260 Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1260), Tuint16_t(1263), Tuint16_t(1263), Tuint16_t(1263), Tuint16_t(1263), Tuint16_t(1263), Tuint16_t(1263), Tuint16_t(1261), Tuint16_t(1261), Tuint16_t(1261), Tuint16_t(1261), Tuint16_t(1261), Tuint16_t(1261), 69261 Tuint16_t(1261), Tuint16_t(1261), Tuint16_t(1261), Tuint16_t(1261), Tuint16_t(1261), Tuint16_t(1261), Tuint16_t(1261), Tuint16_t(1262), Tuint16_t(1264), Tuint16_t(1265), Tuint16_t(1266), Tuint16_t(1267), Tuint16_t(1267), Tuint16_t(1260), Tuint16_t(1266), Tuint16_t(1266), 69262 Tuint16_t(1266), Tuint16_t(1268), Tuint16_t(1268), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69263 Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), Tuint16_t(495), 69264 Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), 69265 Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), 69266 Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), 69267 Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(1269), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69268 69269 // block 192 69270 Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(163), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), 69271 Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), 69272 Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1270), Tuint16_t(1271), 69273 Tuint16_t(1272), Tuint16_t(1272), Tuint16_t(1272), Tuint16_t(1272), Tuint16_t(1272), Tuint16_t(1272), Tuint16_t(1272), Tuint16_t(163), Tuint16_t(1272), Tuint16_t(1272), Tuint16_t(1272), Tuint16_t(1272), Tuint16_t(1272), Tuint16_t(1272), Tuint16_t(1271), Tuint16_t(1273), 69274 Tuint16_t(1270), Tuint16_t(1274), Tuint16_t(1274), Tuint16_t(1275), Tuint16_t(1276), Tuint16_t(1276), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69275 Tuint16_t(1277), Tuint16_t(1277), Tuint16_t(1277), Tuint16_t(1277), Tuint16_t(1277), Tuint16_t(1277), Tuint16_t(1277), Tuint16_t(1277), Tuint16_t(1277), Tuint16_t(1277), Tuint16_t(1278), Tuint16_t(1278), Tuint16_t(1278), Tuint16_t(1278), Tuint16_t(1278), Tuint16_t(1278), 69276 Tuint16_t(1278), Tuint16_t(1278), Tuint16_t(1278), Tuint16_t(1278), Tuint16_t(1278), Tuint16_t(1278), Tuint16_t(1278), Tuint16_t(1278), Tuint16_t(1278), Tuint16_t(1278), Tuint16_t(1278), Tuint16_t(1278), Tuint16_t(1278), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69277 Tuint16_t(1279), Tuint16_t(1280), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), 69278 69279 // block 193 69280 Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), Tuint16_t(1281), 69281 Tuint16_t(163), Tuint16_t(163), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), 69282 Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(163), Tuint16_t(1283), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1282), 69283 Tuint16_t(1282), Tuint16_t(1283), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(1283), Tuint16_t(1282), Tuint16_t(1282), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69284 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69285 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69286 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69287 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69288 69289 // block 194 69290 Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(163), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(163), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), 69291 Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), 69292 Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), Tuint16_t(1284), 69293 Tuint16_t(1284), Tuint16_t(1285), Tuint16_t(1285), Tuint16_t(1285), Tuint16_t(1285), Tuint16_t(1285), Tuint16_t(1285), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1285), Tuint16_t(163), Tuint16_t(1285), Tuint16_t(1285), Tuint16_t(163), Tuint16_t(1285), 69294 Tuint16_t(1285), Tuint16_t(1285), Tuint16_t(1286), Tuint16_t(1285), Tuint16_t(1287), Tuint16_t(1287), Tuint16_t(1288), Tuint16_t(1285), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69295 Tuint16_t(1289), Tuint16_t(1289), Tuint16_t(1289), Tuint16_t(1289), Tuint16_t(1289), Tuint16_t(1289), Tuint16_t(1289), Tuint16_t(1289), Tuint16_t(1289), Tuint16_t(1289), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69296 Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(163), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(163), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), 69297 Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), 69298 69299 // block 195 69300 Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1290), Tuint16_t(1291), Tuint16_t(1291), Tuint16_t(1291), Tuint16_t(1291), Tuint16_t(1291), Tuint16_t(163), 69301 Tuint16_t(1292), Tuint16_t(1292), Tuint16_t(163), Tuint16_t(1291), Tuint16_t(1291), Tuint16_t(1292), Tuint16_t(1291), Tuint16_t(1293), Tuint16_t(1290), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69302 Tuint16_t(1294), Tuint16_t(1294), Tuint16_t(1294), Tuint16_t(1294), Tuint16_t(1294), Tuint16_t(1294), Tuint16_t(1294), Tuint16_t(1294), Tuint16_t(1294), Tuint16_t(1294), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69303 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69304 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69305 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69306 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69307 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69308 69309 // block 196 69310 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69311 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69312 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69313 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69314 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69315 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69316 Tuint16_t(1295), Tuint16_t(1295), Tuint16_t(1295), Tuint16_t(1295), Tuint16_t(1295), Tuint16_t(1295), Tuint16_t(1295), Tuint16_t(1295), Tuint16_t(1295), Tuint16_t(1295), Tuint16_t(1295), Tuint16_t(1295), Tuint16_t(1295), Tuint16_t(1295), Tuint16_t(1295), Tuint16_t(1295), 69317 Tuint16_t(1295), Tuint16_t(1295), Tuint16_t(1295), Tuint16_t(1296), Tuint16_t(1296), Tuint16_t(1297), Tuint16_t(1297), Tuint16_t(1298), Tuint16_t(1298), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69318 69319 // block 197 69320 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69321 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69322 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69323 Tuint16_t(842), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69324 Tuint16_t(1299), Tuint16_t(1299), Tuint16_t(1299), Tuint16_t(1299), Tuint16_t(1299), Tuint16_t(1299), Tuint16_t(1299), Tuint16_t(1299), Tuint16_t(1299), Tuint16_t(1299), Tuint16_t(1299), Tuint16_t(1299), Tuint16_t(1299), Tuint16_t(1299), Tuint16_t(1299), Tuint16_t(1299), 69325 Tuint16_t(388), Tuint16_t(388), Tuint16_t(1299), Tuint16_t(388), Tuint16_t(1299), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(391), Tuint16_t(391), Tuint16_t(391), 69326 Tuint16_t(391), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), Tuint16_t(390), 69327 Tuint16_t(390), Tuint16_t(390), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1300), 69328 69329 // block 198 69330 Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), 69331 Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), 69332 Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), 69333 Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), 69334 Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), 69335 Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), 69336 Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), 69337 Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), 69338 69339 // block 199 69340 Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), 69341 Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69342 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69343 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69344 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69345 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69346 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69347 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69348 69349 // block 200 69350 Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), 69351 Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), 69352 Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), 69353 Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), 69354 Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), 69355 Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), 69356 Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(1302), Tuint16_t(163), 69357 Tuint16_t(1303), Tuint16_t(1303), Tuint16_t(1303), Tuint16_t(1303), Tuint16_t(1303), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69358 69359 // block 201 69360 Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), 69361 Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), 69362 Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), 69363 Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), 69364 Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(1301), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69365 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69366 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69367 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69368 69369 // block 202 69370 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69371 Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), 69372 Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), 69373 Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), 69374 Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), 69375 Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), 69376 Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), Tuint16_t(1304), 69377 Tuint16_t(1304), Tuint16_t(1305), Tuint16_t(1305), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69378 69379 // block 203 69380 Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), 69381 Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), 69382 Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), 69383 Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), 69384 Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), 69385 Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), 69386 Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), 69387 Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), 69388 69389 // block 204 69390 Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), 69391 Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), 69392 Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(1306), Tuint16_t(163), 69393 Tuint16_t(1307), Tuint16_t(1307), Tuint16_t(1307), Tuint16_t(1307), Tuint16_t(1307), Tuint16_t(1307), Tuint16_t(1307), Tuint16_t(1307), Tuint16_t(1307), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69394 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69395 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69396 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69397 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69398 69399 // block 205 69400 Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), 69401 Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), 69402 Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), 69403 Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), 69404 Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), 69405 Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), 69406 Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), 69407 Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), 69408 69409 // block 206 69410 Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), 69411 Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), 69412 Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), 69413 Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), 69414 Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(1308), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69415 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69416 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69417 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69418 69419 // block 207 69420 Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), 69421 Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), 69422 Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), 69423 Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), 69424 Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), 69425 Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), 69426 Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), 69427 Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), 69428 69429 // block 208 69430 Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), 69431 Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), 69432 Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), 69433 Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(858), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69434 Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), 69435 Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(1309), Tuint16_t(163), 69436 Tuint16_t(1310), Tuint16_t(1310), Tuint16_t(1310), Tuint16_t(1310), Tuint16_t(1310), Tuint16_t(1310), Tuint16_t(1310), Tuint16_t(1310), Tuint16_t(1310), Tuint16_t(1310), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1311), Tuint16_t(1311), 69437 Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), 69438 69439 // block 209 69440 Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), 69441 Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), 69442 Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), 69443 Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(1312), Tuint16_t(163), 69444 Tuint16_t(1313), Tuint16_t(1313), Tuint16_t(1313), Tuint16_t(1313), Tuint16_t(1313), Tuint16_t(1313), Tuint16_t(1313), Tuint16_t(1313), Tuint16_t(1313), Tuint16_t(1313), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69445 Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), 69446 Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(1314), Tuint16_t(163), Tuint16_t(163), 69447 Tuint16_t(1315), Tuint16_t(1315), Tuint16_t(1315), Tuint16_t(1315), Tuint16_t(1315), Tuint16_t(1316), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69448 69449 // block 210 69450 Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), 69451 Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), 69452 Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), 69453 Tuint16_t(1318), Tuint16_t(1318), Tuint16_t(1318), Tuint16_t(1318), Tuint16_t(1318), Tuint16_t(1318), Tuint16_t(1318), Tuint16_t(1319), Tuint16_t(1319), Tuint16_t(1320), Tuint16_t(1321), Tuint16_t(1321), Tuint16_t(1322), Tuint16_t(1322), Tuint16_t(1322), Tuint16_t(1322), 69454 Tuint16_t(1323), Tuint16_t(1323), Tuint16_t(1324), Tuint16_t(1324), Tuint16_t(1319), Tuint16_t(1322), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69455 Tuint16_t(1325), Tuint16_t(1325), Tuint16_t(1325), Tuint16_t(1325), Tuint16_t(1325), Tuint16_t(1325), Tuint16_t(1325), Tuint16_t(1325), Tuint16_t(1325), Tuint16_t(1325), Tuint16_t(163), Tuint16_t(1326), Tuint16_t(1326), Tuint16_t(1326), Tuint16_t(1326), Tuint16_t(1326), 69456 Tuint16_t(1326), Tuint16_t(1326), Tuint16_t(163), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), 69457 Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), 69458 69459 // block 211 69460 Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), Tuint16_t(1317), 69461 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69462 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69463 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69464 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69465 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69466 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69467 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69468 69469 // block 212 69470 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69471 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69472 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69473 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69474 Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), 69475 Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), Tuint16_t(1327), 69476 Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), 69477 Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), Tuint16_t(1328), 69478 69479 // block 213 69480 Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), 69481 Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1329), Tuint16_t(1330), Tuint16_t(1331), Tuint16_t(1332), Tuint16_t(1332), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69482 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69483 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69484 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69485 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69486 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69487 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69488 69489 // block 214 69490 Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), 69491 Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), 69492 Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), 69493 Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), 69494 Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(1333), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1334), 69495 Tuint16_t(1333), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), 69496 Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), 69497 Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), 69498 69499 // block 215 69500 Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(1335), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1336), 69501 Tuint16_t(1336), Tuint16_t(1336), Tuint16_t(1336), Tuint16_t(1337), Tuint16_t(1337), Tuint16_t(1337), Tuint16_t(1337), Tuint16_t(1337), Tuint16_t(1337), Tuint16_t(1337), Tuint16_t(1337), Tuint16_t(1337), Tuint16_t(1337), Tuint16_t(1337), Tuint16_t(1337), Tuint16_t(1337), 69502 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69503 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69504 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69505 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69506 Tuint16_t(1338), Tuint16_t(1339), Tuint16_t(1340), Tuint16_t(799), Tuint16_t(1341), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69507 Tuint16_t(1342), Tuint16_t(1342), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69508 69509 // block 216 69510 Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), 69511 Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), 69512 Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), 69513 Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), 69514 Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), 69515 Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), 69516 Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), 69517 Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), 69518 69519 // block 217 69520 Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), 69521 Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), 69522 Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), 69523 Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), 69524 Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), 69525 Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), 69526 Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), 69527 Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69528 69529 // block 218 69530 Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), 69531 Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), 69532 Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), 69533 Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), 69534 Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), 69535 Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), 69536 Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), 69537 Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), 69538 69539 // block 219 69540 Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), 69541 Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), 69542 Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), 69543 Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), 69544 Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), 69545 Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(1344), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69546 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69547 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69548 69549 // block 220 69550 Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(1343), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69551 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69552 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69553 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69554 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69555 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69556 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69557 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69558 69559 // block 221 69560 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69561 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69562 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69563 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69564 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69565 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69566 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69567 Tuint16_t(1345), Tuint16_t(1345), Tuint16_t(1345), Tuint16_t(1345), Tuint16_t(163), Tuint16_t(1345), Tuint16_t(1345), Tuint16_t(1345), Tuint16_t(1345), Tuint16_t(1345), Tuint16_t(1345), Tuint16_t(1345), Tuint16_t(163), Tuint16_t(1345), Tuint16_t(1345), Tuint16_t(163), 69568 69569 // block 222 69570 Tuint16_t(824), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69571 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69572 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69573 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69574 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69575 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69576 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69577 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69578 69579 // block 223 69580 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69581 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69582 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69583 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69584 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69585 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69586 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69587 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69588 69589 // block 224 69590 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69591 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), 69592 Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69593 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69594 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69595 Tuint16_t(819), Tuint16_t(819), Tuint16_t(819), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69596 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(824), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69597 Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), 69598 69599 // block 225 69600 Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), 69601 Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), 69602 Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), 69603 Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), 69604 Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), 69605 Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), 69606 Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), 69607 Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), 69608 69609 // block 226 69610 Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), 69611 Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), 69612 Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), 69613 Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), 69614 Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), 69615 Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), 69616 Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), 69617 Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(1346), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69618 69619 // block 227 69620 Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), 69621 Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), 69622 Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), 69623 Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), 69624 Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), 69625 Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), 69626 Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69627 Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69628 69629 // block 228 69630 Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69631 Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(1347), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1348), Tuint16_t(1349), Tuint16_t(1350), Tuint16_t(1351), 69632 Tuint16_t(1352), Tuint16_t(1352), Tuint16_t(1352), Tuint16_t(1352), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69633 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69634 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69635 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69636 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69637 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69638 69639 // block 229 69640 Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), 69641 Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), 69642 Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(163), Tuint16_t(163), 69643 Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), 69644 Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69645 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69646 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69647 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69648 69649 // block 230 69650 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69651 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69652 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69653 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69654 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69655 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69656 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69657 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69658 69659 // block 231 69660 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69661 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69662 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69663 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69664 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69665 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69666 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69667 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69668 69669 // block 232 69670 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69671 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69672 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69673 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69674 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69675 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69676 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69677 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69678 69679 // block 233 69680 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69681 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69682 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(163), Tuint16_t(163), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69683 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69684 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69685 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69686 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(1353), Tuint16_t(1354), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(1355), Tuint16_t(1356), Tuint16_t(1356), 69687 Tuint16_t(1356), Tuint16_t(1356), Tuint16_t(1356), Tuint16_t(51), Tuint16_t(51), Tuint16_t(51), Tuint16_t(51), Tuint16_t(51), Tuint16_t(51), Tuint16_t(51), Tuint16_t(51), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), 69688 69689 // block 234 69690 Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(460), Tuint16_t(460), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69691 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69692 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(154), Tuint16_t(460), Tuint16_t(460), 69693 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69694 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69695 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69696 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(723), Tuint16_t(723), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69697 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69698 69699 // block 235 69700 Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), 69701 Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), 69702 Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), 69703 Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1002), 69704 Tuint16_t(1002), Tuint16_t(1002), Tuint16_t(1357), Tuint16_t(1357), Tuint16_t(1357), Tuint16_t(1002), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69705 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69706 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69707 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69708 69709 // block 236 69710 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69711 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69712 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69713 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69714 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69715 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69716 Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), 69717 Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69718 69719 // block 237 69720 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 69721 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 69722 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 69723 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 69724 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 69725 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69726 Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), Tuint16_t(832), 69727 Tuint16_t(832), Tuint16_t(832), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(835), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69728 69729 // block 238 69730 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69731 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69732 Tuint16_t(725), Tuint16_t(725), Tuint16_t(736), Tuint16_t(736), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69733 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69734 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(725), Tuint16_t(725), 69735 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(163), Tuint16_t(736), Tuint16_t(736), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69736 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69737 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69738 69739 // block 239 69740 Tuint16_t(724), Tuint16_t(724), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(736), Tuint16_t(736), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69741 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(724), Tuint16_t(163), Tuint16_t(724), Tuint16_t(724), 69742 Tuint16_t(163), Tuint16_t(163), Tuint16_t(724), Tuint16_t(163), Tuint16_t(163), Tuint16_t(724), Tuint16_t(724), Tuint16_t(163), Tuint16_t(163), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(163), Tuint16_t(724), Tuint16_t(724), 69743 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(163), Tuint16_t(725), Tuint16_t(163), Tuint16_t(725), Tuint16_t(736), Tuint16_t(736), 69744 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(163), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69745 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69746 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69747 Tuint16_t(725), Tuint16_t(725), Tuint16_t(736), Tuint16_t(736), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69748 69749 // block 240 69750 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(724), Tuint16_t(724), Tuint16_t(163), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(163), Tuint16_t(163), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69751 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(163), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(163), Tuint16_t(725), Tuint16_t(725), 69752 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(736), Tuint16_t(736), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69753 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(724), Tuint16_t(724), Tuint16_t(163), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(163), 69754 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(163), Tuint16_t(724), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69755 Tuint16_t(724), Tuint16_t(163), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(736), Tuint16_t(736), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69756 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69757 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69758 69759 // block 241 69760 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(736), Tuint16_t(736), 69761 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69762 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69763 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69764 Tuint16_t(725), Tuint16_t(725), Tuint16_t(736), Tuint16_t(736), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69765 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69766 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(725), Tuint16_t(725), 69767 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(736), Tuint16_t(736), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69768 69769 // block 242 69770 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69771 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69772 Tuint16_t(724), Tuint16_t(724), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(736), Tuint16_t(736), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69773 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69774 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69775 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(736), Tuint16_t(736), 69776 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69777 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69778 69779 // block 243 69780 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69781 Tuint16_t(725), Tuint16_t(725), Tuint16_t(736), Tuint16_t(736), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69782 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(163), Tuint16_t(163), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69783 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69784 Tuint16_t(724), Tuint16_t(1358), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69785 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(715), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69786 Tuint16_t(725), Tuint16_t(725), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69787 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(1358), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69788 69789 // block 244 69790 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69791 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(715), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69792 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69793 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(1358), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69794 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(715), 69795 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69796 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(1358), 69797 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69798 69799 // block 245 69800 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(715), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69801 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), 69802 Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(724), Tuint16_t(1358), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69803 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), 69804 Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(715), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(725), Tuint16_t(724), Tuint16_t(725), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1359), Tuint16_t(1359), 69805 Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), 69806 Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), 69807 Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), Tuint16_t(1359), 69808 69809 // block 246 69810 Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), 69811 Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), 69812 Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), 69813 Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), 69814 Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), 69815 Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), 69816 Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), 69817 Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), 69818 69819 // block 247 69820 Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), 69821 Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), 69822 Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), 69823 Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), 69824 Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), 69825 Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), 69826 Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), 69827 Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1361), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), 69828 69829 // block 248 69830 Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1361), Tuint16_t(1360), Tuint16_t(1360), Tuint16_t(1362), Tuint16_t(1363), Tuint16_t(1362), Tuint16_t(1362), Tuint16_t(1364), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69831 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), 69832 Tuint16_t(163), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), Tuint16_t(1361), 69833 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69834 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69835 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69836 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69837 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69838 69839 // block 249 69840 Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(92), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), 69841 Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(643), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(70), Tuint16_t(163), 69842 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69843 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69844 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69845 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69846 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69847 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69848 69849 // block 250 69850 Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(163), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), 69851 Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), 69852 Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(163), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(163), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(1365), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69853 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69854 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69855 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69856 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69857 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69858 69859 // block 251 69860 Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), 69861 Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), 69862 Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(1366), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69863 Tuint16_t(1367), Tuint16_t(1367), Tuint16_t(1367), Tuint16_t(1367), Tuint16_t(1367), Tuint16_t(1367), Tuint16_t(1367), Tuint16_t(1368), Tuint16_t(1368), Tuint16_t(1368), Tuint16_t(1368), Tuint16_t(1368), Tuint16_t(1369), Tuint16_t(1369), Tuint16_t(163), Tuint16_t(163), 69864 Tuint16_t(1370), Tuint16_t(1370), Tuint16_t(1370), Tuint16_t(1370), Tuint16_t(1370), Tuint16_t(1370), Tuint16_t(1370), Tuint16_t(1370), Tuint16_t(1370), Tuint16_t(1370), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1366), Tuint16_t(1371), 69865 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69866 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69867 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69868 69869 // block 252 69870 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69871 Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), 69872 Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1372), Tuint16_t(1373), Tuint16_t(163), 69873 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69874 Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), 69875 Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), 69876 Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1374), Tuint16_t(1375), Tuint16_t(1375), Tuint16_t(1375), Tuint16_t(1375), 69877 Tuint16_t(1376), Tuint16_t(1376), Tuint16_t(1376), Tuint16_t(1376), Tuint16_t(1376), Tuint16_t(1376), Tuint16_t(1376), Tuint16_t(1376), Tuint16_t(1376), Tuint16_t(1376), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(1377), 69878 69879 // block 253 69880 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69881 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69882 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69883 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69884 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69885 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 69886 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), 69887 Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(483), Tuint16_t(163), 69888 69889 // block 254 69890 Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), 69891 Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), 69892 Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), 69893 Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), 69894 Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), 69895 Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), 69896 Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), 69897 Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), 69898 69899 // block 255 69900 Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), 69901 Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), 69902 Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), 69903 Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), 69904 Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(1378), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1379), Tuint16_t(1379), Tuint16_t(1379), Tuint16_t(1379), Tuint16_t(1379), Tuint16_t(1379), Tuint16_t(1379), Tuint16_t(1379), Tuint16_t(1379), 69905 Tuint16_t(1380), Tuint16_t(1380), Tuint16_t(1380), Tuint16_t(1380), Tuint16_t(1380), Tuint16_t(1380), Tuint16_t(1380), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69906 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69907 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69908 69909 // block 256 69910 Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), 69911 Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1381), 69912 Tuint16_t(1381), Tuint16_t(1381), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), 69913 Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), 69914 Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1382), Tuint16_t(1383), Tuint16_t(1383), Tuint16_t(1383), Tuint16_t(1384), Tuint16_t(1385), Tuint16_t(1385), Tuint16_t(1385), Tuint16_t(1386), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69915 Tuint16_t(1387), Tuint16_t(1387), Tuint16_t(1387), Tuint16_t(1387), Tuint16_t(1387), Tuint16_t(1387), Tuint16_t(1387), Tuint16_t(1387), Tuint16_t(1387), Tuint16_t(1387), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(1388), Tuint16_t(1388), 69916 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69917 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69918 69919 // block 257 69920 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69921 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69922 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69923 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69924 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69925 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69926 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69927 Tuint16_t(302), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), 69928 69929 // block 258 69930 Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), 69931 Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), 69932 Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1390), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), 69933 Tuint16_t(1391), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), 69934 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69935 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69936 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69937 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69938 69939 // block 259 69940 Tuint16_t(302), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), 69941 Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), 69942 Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1390), Tuint16_t(1389), 69943 Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(1389), Tuint16_t(302), Tuint16_t(302), 69944 Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), 69945 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69946 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69947 Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), Tuint16_t(262), 69948 69949 // block 260 69950 Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), 69951 Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), 69952 Tuint16_t(302), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), 69953 Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), 69954 Tuint16_t(302), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), 69955 Tuint16_t(302), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), 69956 Tuint16_t(302), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), 69957 Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(302), 69958 69959 // block 261 69960 Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), 69961 Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), 69962 Tuint16_t(302), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), 69963 Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(1392), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), 69964 Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), 69965 Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), 69966 Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), 69967 Tuint16_t(274), Tuint16_t(274), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), Tuint16_t(302), 69968 69969 // block 262 69970 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1394), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 69971 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 69972 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 69973 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 69974 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 69975 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 69976 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 69977 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 69978 69979 // block 263 69980 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 69981 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 69982 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1395), 69983 Tuint16_t(1395), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 69984 Tuint16_t(1395), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1394), 69985 Tuint16_t(1395), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 69986 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 69987 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 69988 69989 // block 264 69990 Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(54), Tuint16_t(58), Tuint16_t(58), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 69991 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69992 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(1393), 69993 Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), 69994 Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 69995 Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), 69996 Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(723), Tuint16_t(723), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 69997 Tuint16_t(1397), Tuint16_t(1397), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1397), Tuint16_t(1397), 69998 69999 // block 265 70000 Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(1396), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(1398), Tuint16_t(460), 70001 Tuint16_t(460), Tuint16_t(1398), Tuint16_t(1398), Tuint16_t(1398), Tuint16_t(1398), Tuint16_t(1398), Tuint16_t(1398), Tuint16_t(1398), Tuint16_t(1398), Tuint16_t(1398), Tuint16_t(1398), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 70002 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(1393), Tuint16_t(1395), Tuint16_t(1395), 70003 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70004 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70005 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70006 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), 70007 Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), Tuint16_t(1399), 70008 70009 // block 266 70010 Tuint16_t(1400), Tuint16_t(1398), Tuint16_t(1401), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70011 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(1398), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), 70012 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(1398), 70013 Tuint16_t(460), Tuint16_t(460), Tuint16_t(1398), Tuint16_t(1398), Tuint16_t(1398), Tuint16_t(1398), Tuint16_t(1398), Tuint16_t(1401), Tuint16_t(1398), Tuint16_t(1398), Tuint16_t(1398), Tuint16_t(460), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70014 Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(460), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70015 Tuint16_t(1402), Tuint16_t(1402), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70016 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70017 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70018 70019 // block 267 70020 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70021 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70022 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70023 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70024 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70025 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70026 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70027 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70028 70029 // block 268 70030 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70031 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70032 Tuint16_t(1394), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70033 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(727), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70034 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70035 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70036 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70037 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(727), Tuint16_t(1394), Tuint16_t(1394), 70038 70039 // block 269 70040 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70041 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(727), 70042 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70043 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70044 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1404), Tuint16_t(1404), Tuint16_t(727), Tuint16_t(727), Tuint16_t(1394), 70045 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), 70046 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70047 Tuint16_t(1394), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(1394), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1405), Tuint16_t(1405), Tuint16_t(1405), Tuint16_t(1405), Tuint16_t(1405), 70048 70049 // block 270 70050 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70051 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70052 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70053 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(727), 70054 Tuint16_t(1394), Tuint16_t(727), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), 70055 Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70056 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), 70057 Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70058 70059 // block 271 70060 Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), 70061 Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70062 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70063 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70064 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70065 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70066 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70067 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1394), 70068 70069 // block 272 70070 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70071 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70072 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70073 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(723), Tuint16_t(723), 70074 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(727), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1393), 70075 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70076 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), 70077 Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(1404), Tuint16_t(1404), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(1403), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 70078 70079 // block 273 70080 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1393), 70081 Tuint16_t(1404), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 70082 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1394), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 70083 Tuint16_t(1393), Tuint16_t(727), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 70084 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 70085 Tuint16_t(1393), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(1393), 70086 Tuint16_t(1393), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), 70087 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70088 70089 // block 274 70090 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70091 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70092 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70093 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70094 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), 70095 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70096 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70097 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70098 70099 // block 275 70100 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70101 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70102 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70103 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70104 Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(1403), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), 70105 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70106 Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70107 Tuint16_t(727), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(727), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70108 70109 // block 276 70110 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70111 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70112 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70113 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70114 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70115 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70116 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70117 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70118 70119 // block 277 70120 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70121 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70122 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70123 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70124 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70125 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70126 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70127 Tuint16_t(1394), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70128 70129 // block 278 70130 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70131 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70132 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70133 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70134 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70135 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70136 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70137 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70138 70139 // block 279 70140 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70141 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70142 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(1395), Tuint16_t(1395), 70143 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70144 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70145 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70146 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70147 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70148 70149 // block 280 70150 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), 70151 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), 70152 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70153 Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(723), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1394), 70154 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(723), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70155 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70156 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70157 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70158 70159 // block 281 70160 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70161 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70162 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70163 Tuint16_t(1406), Tuint16_t(1406), Tuint16_t(1406), Tuint16_t(1406), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70164 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), 70165 Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1394), Tuint16_t(1394), 70166 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70167 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70168 70169 // block 282 70170 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 70171 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 70172 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 70173 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 70174 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), 70175 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70176 Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1393), Tuint16_t(1395), Tuint16_t(1395), 70177 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70178 70179 // block 283 70180 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70181 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), 70182 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70183 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70184 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70185 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70186 Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1394), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70187 Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1403), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70188 70189 // block 284 70190 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70191 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70192 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70193 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70194 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70195 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70196 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70197 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70198 70199 // block 285 70200 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70201 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(163), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70202 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70203 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), 70204 Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(723), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70205 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70206 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70207 Tuint16_t(1407), Tuint16_t(1407), Tuint16_t(1407), Tuint16_t(1407), Tuint16_t(1407), Tuint16_t(1407), Tuint16_t(1407), Tuint16_t(1407), Tuint16_t(1407), Tuint16_t(1407), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70208 70209 // block 286 70210 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70211 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70212 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70213 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70214 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70215 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70216 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), 70217 Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(1395), Tuint16_t(958), Tuint16_t(958), 70218 70219 // block 287 70220 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70221 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70222 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70223 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70224 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70225 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70226 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70227 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70228 70229 // block 288 70230 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70231 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70232 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70233 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70234 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70235 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70236 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70237 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70238 70239 // block 289 70240 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70241 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(163), Tuint16_t(163), 70242 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70243 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70244 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70245 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70246 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70247 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70248 70249 // block 290 70250 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70251 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70252 Tuint16_t(838), Tuint16_t(838), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70253 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70254 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70255 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70256 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70257 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70258 70259 // block 291 70260 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70261 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70262 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70263 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70264 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70265 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70266 Tuint16_t(838), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70267 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70268 70269 // block 292 70270 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), 70271 Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(953), Tuint16_t(163), Tuint16_t(163), 70272 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70273 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70274 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70275 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70276 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70277 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70278 70279 // block 293 70280 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70281 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70282 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70283 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70284 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70285 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70286 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70287 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(958), Tuint16_t(958), 70288 70289 // block 294 70290 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70291 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70292 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70293 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), 70294 Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(838), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70295 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70296 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70297 Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), Tuint16_t(163), 70298 70299 // block 295 70300 Tuint16_t(707), Tuint16_t(712), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), 70301 Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), 70302 Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), 70303 Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), 70304 Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), 70305 Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), 70306 Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), 70307 Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), Tuint16_t(1408), 70308 70309 // block 296 70310 Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), 70311 Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), 70312 Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), 70313 Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), 70314 Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), 70315 Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), 70316 Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), 70317 Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), 70318 70319 // block 297 70320 Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), 70321 Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), 70322 Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), 70323 Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), 70324 Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), 70325 Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), 70326 Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), 70327 Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), 70328 70329 // block 298 70330 Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), 70331 Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), 70332 Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), 70333 Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), 70334 Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), 70335 Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), 70336 Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), Tuint16_t(961), 70337 Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), Tuint16_t(707), 70338 70339 // block 299 70340 Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), 70341 Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), 70342 Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), 70343 Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), 70344 Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), 70345 Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), 70346 Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), 70347 Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(952), Tuint16_t(958), Tuint16_t(958), 70348 } /* pcre2_ucd.c:2386:16 */ 70349 70350 // End of pcre2_ucd.c 70351 70352 // This function is needed only when memmove() is not available. 70353 70354 // End of pcre2_internal.h 70355 70356 // ************************************************ 70357 // 70358 // Validate a UTF string * 70359 // 70360 70361 // This function is called (optionally) at the start of compile or match, to 70362 // check that a supposed UTF string is actually valid. The early check means 70363 // that subsequent code can assume it is dealing with a valid string. The check 70364 // can be turned off for maximum performance, but the consequences of supplying an 70365 // invalid string are then undefined. 70366 // 70367 // Arguments: 70368 // string points to the string 70369 // length length of string 70370 // errp pointer to an error position offset variable 70371 // 70372 // Returns: == 0 if the string is a valid UTF string 70373 // != 0 otherwise, setting the offset of the bad character 70374 70375 func X_pcre2_valid_utf_8(tls *libc.TLS, string TPCRE2_SPTR8, length Tsize_t, erroroffset uintptr) int32 { /* pcre2_valid_utf.c:94:1: */ 70376 var p TPCRE2_SPTR8 70377 var c Tuint32_t 70378 70379 // ----------------- Check a UTF-8 string ----------------- 70380 70381 // Originally, this function checked according to RFC 2279, allowing for values 70382 // in the range 0 to 0x7fffffff, up to 6 bytes long, but ensuring that they were 70383 // in the canonical format. Once somebody had pointed out RFC 3629 to me (it 70384 // obsoletes 2279), additional restrictions were applied. The values are now 70385 // limited to be between 0 and 0x0010ffff, no more than 4 bytes long, and the 70386 // subrange 0xd000 to 0xdfff is excluded. However, the format of 5-byte and 6-byte 70387 // characters is still checked. Error returns are as follows: 70388 // 70389 // PCRE2_ERROR_UTF8_ERR1 Missing 1 byte at the end of the string 70390 // PCRE2_ERROR_UTF8_ERR2 Missing 2 bytes at the end of the string 70391 // PCRE2_ERROR_UTF8_ERR3 Missing 3 bytes at the end of the string 70392 // PCRE2_ERROR_UTF8_ERR4 Missing 4 bytes at the end of the string 70393 // PCRE2_ERROR_UTF8_ERR5 Missing 5 bytes at the end of the string 70394 // PCRE2_ERROR_UTF8_ERR6 2nd-byte's two top bits are not 0x80 70395 // PCRE2_ERROR_UTF8_ERR7 3rd-byte's two top bits are not 0x80 70396 // PCRE2_ERROR_UTF8_ERR8 4th-byte's two top bits are not 0x80 70397 // PCRE2_ERROR_UTF8_ERR9 5th-byte's two top bits are not 0x80 70398 // PCRE2_ERROR_UTF8_ERR10 6th-byte's two top bits are not 0x80 70399 // PCRE2_ERROR_UTF8_ERR11 5-byte character is not permitted by RFC 3629 70400 // PCRE2_ERROR_UTF8_ERR12 6-byte character is not permitted by RFC 3629 70401 // PCRE2_ERROR_UTF8_ERR13 4-byte character with value > 0x10ffff is not permitted 70402 // PCRE2_ERROR_UTF8_ERR14 3-byte character with value 0xd800-0xdfff is not permitted 70403 // PCRE2_ERROR_UTF8_ERR15 Overlong 2-byte sequence 70404 // PCRE2_ERROR_UTF8_ERR16 Overlong 3-byte sequence 70405 // PCRE2_ERROR_UTF8_ERR17 Overlong 4-byte sequence 70406 // PCRE2_ERROR_UTF8_ERR18 Overlong 5-byte sequence (won't ever occur) 70407 // PCRE2_ERROR_UTF8_ERR19 Overlong 6-byte sequence (won't ever occur) 70408 // PCRE2_ERROR_UTF8_ERR20 Isolated 0x80 byte (not within UTF-8 character) 70409 // PCRE2_ERROR_UTF8_ERR21 Byte with the illegal value 0xfe or 0xff 70410 70411 for p = string; length > uint64(0); p++ { 70412 var ab Tuint32_t 70413 var d Tuint32_t 70414 70415 c = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(p))) 70416 length-- 70417 70418 if c < Tuint32_t(128) { 70419 continue 70420 } // ASCII character 70421 70422 if c < Tuint32_t(0xc0) { 70423 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t((int64(p) - int64(string)) / 1) 70424 return -22 70425 } 70426 70427 if c >= Tuint32_t(0xfe) { 70428 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t((int64(p) - int64(string)) / 1) 70429 return -23 70430 } 70431 70432 ab = Tuint32_t(X_pcre2_utf8_table4[c&Tuint32_t(0x3f)]) // Number of additional bytes (1-5) 70433 if length < Tsize_t(ab) { 70434 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t((int64(p) - int64(string)) / 1) 70435 switch Tsize_t(ab) - length { 70436 case uint64(1): 70437 return -3 70438 fallthrough 70439 case uint64(2): 70440 return -4 70441 fallthrough 70442 case uint64(3): 70443 return -5 70444 fallthrough 70445 case uint64(4): 70446 return -6 70447 fallthrough 70448 case uint64(5): 70449 return -7 70450 } 70451 } 70452 length = length - Tsize_t(ab) // Length remaining 70453 70454 // Check top bits in the second byte 70455 70456 if libc.AssignUint32(&d, Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&p, 1)))))&Tuint32_t(0xc0) != Tuint32_t(0x80) { 70457 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 1) 70458 return -8 70459 } 70460 70461 // For each length, check that the remaining bytes start with the 0x80 bit 70462 // set and not the 0x40 bit. Then check for an overlong sequence, and for the 70463 // excluded range 0xd800 to 0xdfff. 70464 70465 switch ab { 70466 // 2-byte character. No further bytes to check for 0x80. Check first byte 70467 // for for xx00 000x (overlong sequence). 70468 70469 case Tuint32_t(1): 70470 if c&Tuint32_t(0x3e) == Tuint32_t(0) { 70471 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 1) 70472 return -17 70473 } 70474 break 70475 70476 // 3-byte character. Check third byte for 0x80. Then check first 2 bytes 70477 // for 1110 0000, xx0x xxxx (overlong sequence) or 70478 // 1110 1101, 1010 xxxx (0xd800 - 0xdfff) 70479 70480 case Tuint32_t(2): 70481 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&p, 1))))&0xc0 != 0x80 { 70482 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 2) 70483 return -9 70484 } 70485 if c == Tuint32_t(0xe0) && d&Tuint32_t(0x20) == Tuint32_t(0) { 70486 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 2) 70487 return -18 70488 } 70489 if c == Tuint32_t(0xed) && d >= Tuint32_t(0xa0) { 70490 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 2) 70491 return -16 70492 } 70493 break 70494 70495 // 4-byte character. Check 3rd and 4th bytes for 0x80. Then check first 2 70496 // bytes for for 1111 0000, xx00 xxxx (overlong sequence), then check for a 70497 // character greater than 0x0010ffff (f4 8f bf bf) 70498 70499 case Tuint32_t(3): 70500 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&p, 1))))&0xc0 != 0x80 { 70501 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 2) 70502 return -9 70503 } 70504 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&p, 1))))&0xc0 != 0x80 { 70505 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 3) 70506 return -10 70507 } 70508 if c == Tuint32_t(0xf0) && d&Tuint32_t(0x30) == Tuint32_t(0) { 70509 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 3) 70510 return -19 70511 } 70512 if c > Tuint32_t(0xf4) || c == Tuint32_t(0xf4) && d > Tuint32_t(0x8f) { 70513 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 3) 70514 return -15 70515 } 70516 break 70517 70518 // 5-byte and 6-byte characters are not allowed by RFC 3629, and will be 70519 // rejected by the length test below. However, we do the appropriate tests 70520 // here so that overlong sequences get diagnosed, and also in case there is 70521 // ever an option for handling these larger code points. 70522 70523 // 5-byte character. Check 3rd, 4th, and 5th bytes for 0x80. Then check for 70524 // 1111 1000, xx00 0xxx 70525 70526 case Tuint32_t(4): 70527 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&p, 1))))&0xc0 != 0x80 { 70528 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 2) 70529 return -9 70530 } 70531 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&p, 1))))&0xc0 != 0x80 { 70532 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 3) 70533 return -10 70534 } 70535 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&p, 1))))&0xc0 != 0x80 { 70536 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 4) 70537 return -11 70538 } 70539 if c == Tuint32_t(0xf8) && d&Tuint32_t(0x38) == Tuint32_t(0) { 70540 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 4) 70541 return -20 70542 } 70543 break 70544 70545 // 6-byte character. Check 3rd-6th bytes for 0x80. Then check for 70546 // 1111 1100, xx00 00xx. 70547 70548 case Tuint32_t(5): 70549 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&p, 1))))&0xc0 != 0x80 { 70550 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 2) 70551 return -9 70552 } 70553 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&p, 1))))&0xc0 != 0x80 { 70554 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 3) 70555 return -10 70556 } 70557 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&p, 1))))&0xc0 != 0x80 { 70558 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 4) 70559 return -11 70560 } 70561 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PreIncUintptr(&p, 1))))&0xc0 != 0x80 { 70562 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 5) 70563 return -12 70564 } 70565 if c == Tuint32_t(0xfc) && d&Tuint32_t(0x3c) == Tuint32_t(0) { 70566 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(int32((int64(p)-int64(string))/1) - 5) 70567 return -21 70568 } 70569 break 70570 } 70571 70572 // Character is valid under RFC 2279, but 4-byte and 5-byte characters are 70573 // excluded by RFC 3629. The pointer p is currently at the last byte of the 70574 // character. 70575 70576 if ab > Tuint32_t(3) { 70577 *(*Tsize_t)(unsafe.Pointer(erroroffset)) = Tsize_t(Tuint32_t(int32((int64(p)-int64(string))/1)) - ab) 70578 if ab == Tuint32_t(4) { 70579 return -13 70580 } 70581 return -14 70582 } 70583 } 70584 return 0 70585 70586 // ----------------- Check a UTF-16 string ----------------- 70587 70588 } 70589 70590 // End of pcre2_valid_utf.c 70591 70592 // This function is needed only when memmove() is not available. 70593 70594 // End of pcre2_internal.h 70595 70596 // ************************************************ 70597 // 70598 // Match character against an XCLASS * 70599 // 70600 70601 // This function is called to match a character against an extended class that 70602 // might contain codepoints above 255 and/or Unicode properties. 70603 // 70604 // Arguments: 70605 // c the character 70606 // data points to the flag code unit of the XCLASS data 70607 // utf TRUE if in UTF mode 70608 // 70609 // Returns: TRUE if character matches, else FALSE 70610 70611 func X_pcre2_xclass_8(tls *libc.TLS, c Tuint32_t, data TPCRE2_SPTR8, utf TBOOL) TBOOL { /* pcre2_xclass.c:69:1: */ 70612 var t TPCRE2_UCHAR8 70613 var negated TBOOL = libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&DXCL_NOT != 0) 70614 70615 // In 8 bit mode, this must always be TRUE. Help the compiler to know that. 70616 utf = DTRUE 70617 70618 // Code points < 256 are matched against a bitmap, if one is present. If not, 70619 // we still carry on, because there may be ranges that start below 256 in the 70620 // additional data. 70621 70622 if c < Tuint32_t(256) { 70623 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&DXCL_HASPROP == 0 { 70624 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&DXCL_MAP == 0 { 70625 return negated 70626 } 70627 return libc.Bool32(uint32(*(*Tuint8_t)(unsafe.Pointer(data + uintptr(1) + uintptr(c/Tuint32_t(8)))))&(uint32(1)<<(c&Tuint32_t(7))) != uint32(0)) 70628 } 70629 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&DXCL_MAP != 0 && uint32(*(*Tuint8_t)(unsafe.Pointer(data + uintptr(1) + uintptr(c/Tuint32_t(8)))))&(uint32(1)<<(c&Tuint32_t(7))) != uint32(0) { 70630 return libc.BoolInt32(!(negated != 0)) 70631 } // char found 70632 } 70633 70634 // First skip the bit map if present. Then match against the list of Unicode 70635 // properties or large chars or ranges that end with a large char. We won't ever 70636 // encounter XCL_PROP or XCL_NOTPROP when UTF support is not compiled. 70637 70638 if int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&data, 1))))&DXCL_MAP != 0 { 70639 data += TPCRE2_SPTR8(uint64(32) / uint64(unsafe.Sizeof(TPCRE2_UCHAR8(0)))) 70640 } 70641 70642 for int32(libc.AssignUint8(&t, *(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&data, 1))))) != DXCL_END { 70643 var x Tuint32_t 70644 var y Tuint32_t 70645 if int32(t) == DXCL_SINGLE { 70646 if utf != 0 { 70647 x = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&data, 1)))) 70648 if x >= 0xc0 { 70649 if x&0x20 == Tuint32_t(0) { 70650 x = x&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&data, 1))))&0x3f 70651 } else if x&0x10 == Tuint32_t(0) { 70652 x = x&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))&0x3f 70653 data += uintptr(2) 70654 } else if x&0x08 == Tuint32_t(0) { 70655 x = x&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 2)))&0x3f 70656 data += uintptr(3) 70657 } else if x&0x04 == Tuint32_t(0) { 70658 x = x&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 3)))&0x3f 70659 data += uintptr(4) 70660 } else { 70661 x = x&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 4)))&0x3f 70662 data += uintptr(5) 70663 } 70664 } 70665 70666 // macro generates multiple statements 70667 } else { 70668 x = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&data, 1)))) 70669 } 70670 if c == x { 70671 return libc.BoolInt32(!(negated != 0)) 70672 } 70673 } else if int32(t) == DXCL_RANGE { 70674 if utf != 0 { 70675 x = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&data, 1)))) 70676 if x >= 0xc0 { 70677 if x&0x20 == Tuint32_t(0) { 70678 x = x&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&data, 1))))&0x3f 70679 } else if x&0x10 == Tuint32_t(0) { 70680 x = x&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))&0x3f 70681 data += uintptr(2) 70682 } else if x&0x08 == Tuint32_t(0) { 70683 x = x&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 2)))&0x3f 70684 data += uintptr(3) 70685 } else if x&0x04 == Tuint32_t(0) { 70686 x = x&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 3)))&0x3f 70687 data += uintptr(4) 70688 } else { 70689 x = x&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 4)))&0x3f 70690 data += uintptr(5) 70691 } 70692 } 70693 70694 // macro generates multiple statements 70695 y = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&data, 1)))) 70696 if y >= 0xc0 { 70697 if y&0x20 == Tuint32_t(0) { 70698 y = y&0x1f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&data, 1))))&0x3f 70699 } else if y&0x10 == Tuint32_t(0) { 70700 y = y&0x0f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))&0x3f 70701 data += uintptr(2) 70702 } else if y&0x08 == Tuint32_t(0) { 70703 y = y&0x07<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 2)))&0x3f 70704 data += uintptr(3) 70705 } else if y&0x04 == Tuint32_t(0) { 70706 y = y&0x03<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 2)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 3)))&0x3f 70707 data += uintptr(4) 70708 } else { 70709 y = y&0x01<<30 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data)))&0x3f<<24 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))&0x3f<<18 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 2)))&0x3f<<12 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 3)))&0x3f<<6 | uint32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 4)))&0x3f 70710 data += uintptr(5) 70711 } 70712 } 70713 70714 // macro generates multiple statements 70715 } else { 70716 x = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&data, 1)))) 70717 y = Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(libc.PostIncUintptr(&data, 1)))) 70718 } 70719 if c >= x && c <= y { 70720 return libc.BoolInt32(!(negated != 0)) 70721 } 70722 } else { 70723 var prop uintptr = uintptr(unsafe.Pointer(&X_pcre2_ucd_records_8)) + uintptr(X_pcre2_ucd_stage2_8[int32(X_pcre2_ucd_stage1_8[int32(c)/DUCD_BLOCK_SIZE])*DUCD_BLOCK_SIZE+int32(c)%DUCD_BLOCK_SIZE])*12 70724 var isprop TBOOL = libc.Bool32(int32(t) == DXCL_PROP) 70725 var ok TBOOL 70726 70727 switch int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data))) { 70728 case DPT_ANY: 70729 if isprop != 0 { 70730 return libc.BoolInt32(!(negated != 0)) 70731 } 70732 break 70733 fallthrough 70734 70735 case DPT_LAMP: 70736 if libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) == ucp_Lu || int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) == ucp_Ll || int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) == ucp_Lt) == isprop { 70737 return libc.BoolInt32(!(negated != 0)) 70738 } 70739 break 70740 fallthrough 70741 70742 case DPT_GC: 70743 if libc.Bool32(Tuint32_t(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1))) == X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype]) == isprop { 70744 return libc.BoolInt32(!(negated != 0)) 70745 } 70746 break 70747 fallthrough 70748 70749 case DPT_PC: 70750 if libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1))) == int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype)) == isprop { 70751 return libc.BoolInt32(!(negated != 0)) 70752 } 70753 break 70754 fallthrough 70755 70756 case DPT_SC: 70757 if libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1))) == int32((*Tucd_record)(unsafe.Pointer(prop)).Fscript)) == isprop { 70758 return libc.BoolInt32(!(negated != 0)) 70759 } 70760 break 70761 fallthrough 70762 70763 case DPT_SCX: 70764 ok = libc.Bool32(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1))) == int32((*Tucd_record)(unsafe.Pointer(prop)).Fscript) || *(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_script_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop)).Fscriptx_bidiclass)&DUCD_SCRIPTX_MASK)*4 + uintptr(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))/32)*4))&(uint32(1)<<(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))%32)) != Tuint32_t(0)) 70765 if ok == isprop { 70766 return libc.BoolInt32(!(negated != 0)) 70767 } 70768 break 70769 fallthrough 70770 70771 case DPT_ALNUM: 70772 if libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_L || X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_N) == isprop { 70773 return libc.BoolInt32(!(negated != 0)) 70774 } 70775 break 70776 fallthrough 70777 70778 // Perl space used to exclude VT, but from Perl 5.18 it is included, 70779 // which means that Perl space and POSIX space are now identical. PCRE 70780 // was changed at release 8.34. 70781 70782 case DPT_SPACE: 70783 fallthrough // Perl space 70784 case DPT_PXSPACE: // POSIX space 70785 switch c { 70786 case Tuint32_t('\011'): 70787 fallthrough 70788 case Tuint32_t('\040'): 70789 fallthrough 70790 case libc.Uint32FromUint8(libc.Uint8FromInt32(160)): 70791 fallthrough 70792 case Tuint32_t(0x1680): 70793 fallthrough /* OGHAM SPACE MARK */ 70794 case Tuint32_t(0x180e): 70795 fallthrough /* MONGOLIAN VOWEL SEPARATOR */ 70796 case Tuint32_t(0x2000): 70797 fallthrough /* EN QUAD */ 70798 case Tuint32_t(0x2001): 70799 fallthrough /* EM QUAD */ 70800 case Tuint32_t(0x2002): 70801 fallthrough /* EN SPACE */ 70802 case Tuint32_t(0x2003): 70803 fallthrough /* EM SPACE */ 70804 case Tuint32_t(0x2004): 70805 fallthrough /* THREE-PER-EM SPACE */ 70806 case Tuint32_t(0x2005): 70807 fallthrough /* FOUR-PER-EM SPACE */ 70808 case Tuint32_t(0x2006): 70809 fallthrough /* SIX-PER-EM SPACE */ 70810 case Tuint32_t(0x2007): 70811 fallthrough /* FIGURE SPACE */ 70812 case Tuint32_t(0x2008): 70813 fallthrough /* PUNCTUATION SPACE */ 70814 case Tuint32_t(0x2009): 70815 fallthrough /* THIN SPACE */ 70816 case Tuint32_t(0x200A): 70817 fallthrough /* HAIR SPACE */ 70818 case Tuint32_t(0x202f): 70819 fallthrough /* NARROW NO-BREAK SPACE */ 70820 case Tuint32_t(0x205f): 70821 fallthrough /* MEDIUM MATHEMATICAL SPACE */ 70822 case Tuint32_t(0x3000): 70823 fallthrough 70824 case Tuint32_t('\012'): 70825 fallthrough 70826 case Tuint32_t('\013'): 70827 fallthrough 70828 case Tuint32_t('\014'): 70829 fallthrough 70830 case Tuint32_t('\015'): 70831 fallthrough 70832 case libc.Uint32FromUint8(libc.Uint8FromInt32(133)): 70833 fallthrough 70834 case Tuint32_t(0x2028): 70835 fallthrough /* LINE SEPARATOR */ 70836 case Tuint32_t(0x2029): 70837 if isprop != 0 { 70838 return libc.BoolInt32(!(negated != 0)) 70839 } 70840 break 70841 fallthrough 70842 70843 default: 70844 if libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_Z) == isprop { 70845 return libc.BoolInt32(!(negated != 0)) 70846 } 70847 break 70848 } 70849 break 70850 fallthrough 70851 70852 case DPT_WORD: 70853 if libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_L || X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_N || c == Tuint32_t('\137')) == 70854 isprop { 70855 return libc.BoolInt32(!(negated != 0)) 70856 } 70857 break 70858 fallthrough 70859 70860 case DPT_UCNC: 70861 if c < Tuint32_t(0xa0) { 70862 if libc.Bool32(c == Tuint32_t('\044') || c == Tuint32_t('\100') || c == Tuint32_t('\140')) == isprop { 70863 return libc.BoolInt32(!(negated != 0)) 70864 } 70865 } else { 70866 if libc.Bool32(c < Tuint32_t(0xd800) || c > Tuint32_t(0xdfff)) == isprop { 70867 return libc.BoolInt32(!(negated != 0)) 70868 } 70869 } 70870 break 70871 fallthrough 70872 70873 case DPT_BIDICL: 70874 if libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop)).Fscriptx_bidiclass)>>DUCD_BIDICLASS_SHIFT == int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))) == isprop { 70875 return libc.BoolInt32(!(negated != 0)) 70876 } 70877 break 70878 fallthrough 70879 70880 case DPT_BOOL: 70881 ok = libc.Bool32(*(*Tuint32_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_ucd_boolprop_sets_8)) + uintptr(int32((*Tucd_record)(unsafe.Pointer(prop)).Fbprops)&DUCD_BPROPS_MASK)*4 + uintptr(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))/32)*4))&(uint32(1)<<(int32(*(*TPCRE2_UCHAR8)(unsafe.Pointer(data + 1)))%32)) != Tuint32_t(0)) 70882 if ok == isprop { 70883 return libc.BoolInt32(!(negated != 0)) 70884 } 70885 break 70886 fallthrough 70887 70888 // The following three properties can occur only in an XCLASS, as there 70889 // is no \p or \P coding for them. 70890 70891 // Graphic character. Implement this as not Z (space or separator) and 70892 // not C (other), except for Cf (format) with a few exceptions. This seems 70893 // to be what Perl does. The exceptional characters are: 70894 // 70895 // U+061C Arabic Letter Mark 70896 // U+180E Mongolian Vowel Separator 70897 // U+2066 - U+2069 Various "isolate"s 70898 // 70899 70900 case DPT_PXGRAPH: 70901 if libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] != ucp_Z && (X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] != ucp_C || int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) == ucp_Cf && c != Tuint32_t(0x061c) && c != Tuint32_t(0x180e) && (c < Tuint32_t(0x2066) || c > Tuint32_t(0x2069)))) == isprop { 70902 return libc.BoolInt32(!(negated != 0)) 70903 } 70904 break 70905 fallthrough 70906 70907 // Printable character: same as graphic, with the addition of Zs, i.e. 70908 // not Zl and not Zp, and U+180E. 70909 70910 case DPT_PXPRINT: 70911 if libc.Bool32(int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) != ucp_Zl && int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) != ucp_Zp && (X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] != ucp_C || int32((*Tucd_record)(unsafe.Pointer(prop)).Fchartype) == ucp_Cf && c != Tuint32_t(0x061c) && (c < Tuint32_t(0x2066) || c > Tuint32_t(0x2069)))) == isprop { 70912 return libc.BoolInt32(!(negated != 0)) 70913 } 70914 break 70915 fallthrough 70916 70917 // Punctuation: all Unicode punctuation, plus ASCII characters that 70918 // Unicode treats as symbols rather than punctuation, for Perl 70919 // compatibility (these are $+<=>^`|~). 70920 70921 case DPT_PXPUNCT: 70922 if libc.Bool32(X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_P || c < Tuint32_t(128) && X_pcre2_ucp_gentype_8[(*Tucd_record)(unsafe.Pointer(prop)).Fchartype] == ucp_S) == isprop { 70923 return libc.BoolInt32(!(negated != 0)) 70924 } 70925 break 70926 fallthrough 70927 70928 // This should never occur, but compilers may mutter if there is no 70929 // default. 70930 70931 default: 70932 return DFALSE 70933 } 70934 70935 data += uintptr(2) 70936 } 70937 } 70938 70939 return negated // char did not match 70940 } 70941 70942 // End of pcre2_xclass.c 70943 70944 func init() { 70945 *(*func(*libc.TLS, Tsize_t, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_compile_context_8)) + 0)) = default_malloc // pcre2_context.c:134:5: 70946 *(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_compile_context_8)) + 8)) = default_free // pcre2_context.c:134:21: 70947 *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_compile_context_8)) + 40 /* .tables */)) = uintptr(unsafe.Pointer(&X_pcre2_default_tables_8)) // pcre2_context.c:137:3: 70948 *(*func(*libc.TLS, Tsize_t, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_compile_context_8)) + 0)) = default_malloc // pcre2_context.c:134:5: 70949 *(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_compile_context_8)) + 8)) = default_free // pcre2_context.c:134:21: 70950 *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_compile_context_8)) + 40 /* .tables */)) = uintptr(unsafe.Pointer(&X_pcre2_default_tables_8)) // pcre2_context.c:137:3: 70951 *(*func(*libc.TLS, Tsize_t, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_convert_context_8)) + 0)) = default_malloc // pcre2_context.c:198:5: 70952 *(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_convert_context_8)) + 8)) = default_free // pcre2_context.c:198:21: 70953 *(*func(*libc.TLS, Tsize_t, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_convert_context_8)) + 0)) = default_malloc // pcre2_context.c:198:5: 70954 *(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_convert_context_8)) + 8)) = default_free // pcre2_context.c:198:21: 70955 *(*func(*libc.TLS, Tsize_t, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_match_context_8)) + 0)) = default_malloc // pcre2_context.c:164:5: 70956 *(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_match_context_8)) + 8)) = default_free // pcre2_context.c:164:21: 70957 *(*func(*libc.TLS, Tsize_t, uintptr) uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_match_context_8)) + 0)) = default_malloc // pcre2_context.c:164:5: 70958 *(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(uintptr(unsafe.Pointer(&X_pcre2_default_match_context_8)) + 8)) = default_free // pcre2_context.c:164:21: 70959 } 70960 70961 var ts1 = "\x00MARK\x00ACCEPT\x00F\x00FAIL\x00COMMIT\x00PRUNE\x00SKIP\x00THEN\x00pla\x00plb\x00napla\x00naplb\x00nla\x00nlb\x00positive_lookahead\x00positive_lookbehind\x00non_atomic_positive_lookahead\x00non_atomic_positive_lookbehind\x00negative_lookahead\x00negative_lookbehind\x00atomic\x00sr\x00asr\x00script_run\x00atomic_script_run\x00alpha\x00lower\x00upper\x00alnum\x00ascii\x00blank\x00cntrl\x00digit\x00graph\x00print\x00punct\x00space\x00word\x00xdigit\x00UTF8)\x00UTF)\x00UCP)\x00NOTEMPTY)\x00NOTEMPTY_ATSTART)\x00NO_AUTO_POSSESS)\x00NO_DOTSTAR_ANCHOR)\x00NO_JIT)\x00NO_START_OPT)\x00LIMIT_HEAP=\x00LIMIT_MATCH=\x00LIMIT_DEPTH=\x00LIMIT_RECURSION=\x00CR)\x00LF)\x00CRLF)\x00ANY)\x00NUL)\x00ANYCRLF)\x00BSR_ANYCRLF)\x00BSR_UNICODE)\x00bidiclass\x00bc\x00script\x00sc\x00scriptextensions\x00scx\x00[:<:]]\x00[:>:]]\x00Q\\E\x00VERSION\x00DEFINE\x00Z\x0010.40 2022-04-14\x0010.402022-04-14\x00\\?*+|.^${}[]()\x00(){}123456789\x00(*NUL)\x00]\x00:]\x00\\\x00[\x00^\x00alnum:alpha:ascii:blank:cntrl:digit:graph:lower:print:punct:space:upper:word:xdigit:\x00\x00no error\x00\\ at end of pattern\x00\\c at end of pattern\x00unrecognized character follows \\\x00numbers out of order in {} quantifier\x00number too big in {} quantifier\x00missing terminating ] for character class\x00escape sequence is invalid in character class\x00range out of order in character class\x00quantifier does not follow a repeatable item\x00internal error: unexpected repeat\x00unrecognized character after (? or (?-\x00POSIX named classes are supported only within a class\x00POSIX collating elements are not supported\x00missing closing parenthesis\x00reference to non-existent subpattern\x00pattern passed as NULL\x00unrecognised compile-time option bit(s)\x00missing ) after (?# comment\x00parentheses are too deeply nested\x00regular expression is too large\x00failed to allocate heap memory\x00unmatched closing parenthesis\x00internal error: code overflow\x00missing closing parenthesis for condition\x00lookbehind assertion is not fixed length\x00a relative value of zero is not allowed\x00conditional subpattern contains more than two branches\x00assertion expected after (?( or (?(?C)\x00digit expected after (?+ or (?-\x00unknown POSIX class name\x00internal error in pcre2_study(): should not occur\x00this version of PCRE2 does not have Unicode support\x00parentheses are too deeply nested (stack check)\x00character code point value in \\x{} or \\o{} is too large\x00lookbehind is too complicated\x00\\C is not allowed in a lookbehind assertion in UTF-8 mode\x00PCRE2 does not support \\F, \\L, \\l, \\N{name}, \\U, or \\u\x00number after (?C is greater than 255\x00closing parenthesis for (?C expected\x00invalid escape sequence in (*VERB) name\x00unrecognized character after (?P\x00syntax error in subpattern name (missing terminator?)\x00two named subpatterns have the same name (PCRE2_DUPNAMES not set)\x00subpattern name must start with a non-digit\x00this version of PCRE2 does not have support for \\P, \\p, or \\X\x00malformed \\P or \\p sequence\x00unknown property after \\P or \\p\x00subpattern name is too long (maximum 32 code units)\x00too many named subpatterns (maximum 10000)\x00invalid range in character class\x00octal value is greater than \\377 in 8-bit non-UTF-8 mode\x00internal error: overran compiling workspace\x00internal error: previously-checked referenced subpattern not found\x00DEFINE subpattern contains more than one branch\x00missing opening brace after \\o\x00internal error: unknown newline setting\x00\\g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number\x00(?R (recursive pattern call) must be followed by a closing parenthesis\x00obsolete error (should not occur)\x00(*VERB) not recognized or malformed\x00subpattern number is too big\x00subpattern name expected\x00internal error: parsed pattern overflow\x00non-octal character in \\o{} (closing brace missing?)\x00different names for subpatterns of the same number are not allowed\x00(*MARK) must have an argument\x00non-hex character in \\x{} (closing brace missing?)\x00\\c must be followed by a printable ASCII character\x00\\k is not followed by a braced, angle-bracketed, or quoted name\x00internal error: unknown meta code in check_lookbehinds()\x00\\N is not supported in a class\x00callout string is too long\x00disallowed Unicode code point (>= 0xd800 && <= 0xdfff)\x00using UTF is disabled by the application\x00using UCP is disabled by the application\x00name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)\x00character code point value in \\u.... sequence is too large\x00digits missing in \\x{} or \\o{} or \\N{U+}\x00syntax error or number too big in (?(VERSION condition\x00internal error: unknown opcode in auto_possessify()\x00missing terminating delimiter for callout with string argument\x00unrecognized string delimiter follows (?C\x00using \\C is disabled by the application\x00(?| and/or (?J: or (?x: parentheses are too deeply nested\x00using \\C is disabled in this PCRE2 library\x00regular expression is too complicated\x00lookbehind assertion is too long\x00pattern string is longer than the limit set by the application\x00internal error: unknown code in parsed pattern\x00internal error: bad code value in parsed_skip()\x00PCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES is not allowed in UTF-16 mode\x00invalid option bits with PCRE2_LITERAL\x00\\N{U+dddd} is supported only in Unicode (UTF) mode\x00invalid hyphen in option setting\x00(*alpha_assertion) not recognized\x00script runs require Unicode support, which this version of PCRE2 does not have\x00too many capturing groups (maximum 65535)\x00atomic assertion expected after (?( or (?(?C)\x00\\K is not allowed in lookarounds (but see PCRE2_EXTRA_ALLOW_LOOKAROUND_BSK)\x00\x00no error\x00no match\x00partial match\x00UTF-8 error: 1 byte missing at end\x00UTF-8 error: 2 bytes missing at end\x00UTF-8 error: 3 bytes missing at end\x00UTF-8 error: 4 bytes missing at end\x00UTF-8 error: 5 bytes missing at end\x00UTF-8 error: byte 2 top bits not 0x80\x00UTF-8 error: byte 3 top bits not 0x80\x00UTF-8 error: byte 4 top bits not 0x80\x00UTF-8 error: byte 5 top bits not 0x80\x00UTF-8 error: byte 6 top bits not 0x80\x00UTF-8 error: 5-byte character is not allowed (RFC 3629)\x00UTF-8 error: 6-byte character is not allowed (RFC 3629)\x00UTF-8 error: code points greater than 0x10ffff are not defined\x00UTF-8 error: code points 0xd800-0xdfff are not defined\x00UTF-8 error: overlong 2-byte sequence\x00UTF-8 error: overlong 3-byte sequence\x00UTF-8 error: overlong 4-byte sequence\x00UTF-8 error: overlong 5-byte sequence\x00UTF-8 error: overlong 6-byte sequence\x00UTF-8 error: isolated byte with 0x80 bit set\x00UTF-8 error: illegal byte (0xfe or 0xff)\x00UTF-16 error: missing low surrogate at end\x00UTF-16 error: invalid low surrogate\x00UTF-16 error: isolated low surrogate\x00UTF-32 error: code points 0xd800-0xdfff are not defined\x00UTF-32 error: code points greater than 0x10ffff are not defined\x00bad data value\x00patterns do not all use the same character tables\x00magic number missing\x00pattern compiled in wrong mode: 8/16/32-bit error\x00bad offset value\x00bad option value\x00invalid replacement string\x00bad offset into UTF string\x00callout error code\x00invalid data in workspace for DFA restart\x00too much recursion for DFA matching\x00backreference condition or recursion test is not supported for DFA matching\x00function is not supported for DFA matching\x00pattern contains an item that is not supported for DFA matching\x00workspace size exceeded in DFA matching\x00internal error - pattern overwritten?\x00bad JIT option\x00JIT stack limit reached\x00match limit exceeded\x00no more memory\x00unknown substring\x00non-unique substring name\x00NULL argument passed with non-zero length\x00nested recursion at the same subject position\x00matching depth limit exceeded\x00requested value is not available\x00requested value is not set\x00offset limit set without PCRE2_USE_OFFSET_LIMIT\x00bad escape sequence in replacement string\x00expected closing curly bracket in replacement string\x00bad substitution in replacement string\x00match with end before start or start moved backwards is not supported\x00too many replacements (more than INT_MAX)\x00bad serialized data\x00heap limit exceeded\x00invalid syntax\x00internal error - duplicate substitution match\x00PCRE2_MATCH_INVALID_UTF is not supported for DFA matching\x00\x00\x00\x00JIT is not supported\x00MARK\x00adlam\x00adlm\x00aghb\x00ahex\x00ahom\x00alpha\x00alphabetic\x00anatolianhieroglyphs\x00any\x00arab\x00arabic\x00armenian\x00armi\x00armn\x00ascii\x00asciihexdigit\x00avestan\x00avst\x00bali\x00balinese\x00bamu\x00bamum\x00bass\x00bassavah\x00batak\x00batk\x00beng\x00bengali\x00bhaiksuki\x00bhks\x00bidial\x00bidian\x00bidib\x00bidibn\x00bidic\x00bidicontrol\x00bidics\x00bidien\x00bidies\x00bidiet\x00bidifsi\x00bidil\x00bidilre\x00bidilri\x00bidilro\x00bidim\x00bidimirrored\x00bidinsm\x00bidion\x00bidipdf\x00bidipdi\x00bidir\x00bidirle\x00bidirli\x00bidirlo\x00bidis\x00bidiws\x00bopo\x00bopomofo\x00brah\x00brahmi\x00brai\x00braille\x00bugi\x00buginese\x00buhd\x00buhid\x00c\x00cakm\x00canadianaboriginal\x00cans\x00cari\x00carian\x00cased\x00caseignorable\x00caucasianalbanian\x00cc\x00cf\x00chakma\x00cham\x00changeswhencasefolded\x00changeswhencasemapped\x00changeswhenlowercased\x00changeswhentitlecased\x00changeswhenuppercased\x00cher\x00cherokee\x00chorasmian\x00chrs\x00ci\x00cn\x00co\x00common\x00copt\x00coptic\x00cpmn\x00cprt\x00cs\x00cuneiform\x00cwcf\x00cwcm\x00cwl\x00cwt\x00cwu\x00cypriot\x00cyprominoan\x00cyrillic\x00cyrl\x00dash\x00defaultignorablecodepoint\x00dep\x00deprecated\x00deseret\x00deva\x00devanagari\x00di\x00dia\x00diacritic\x00diak\x00divesakuru\x00dogr\x00dogra\x00dsrt\x00dupl\x00duployan\x00ebase\x00ecomp\x00egyp\x00egyptianhieroglyphs\x00elba\x00elbasan\x00elym\x00elymaic\x00emod\x00emoji\x00emojicomponent\x00emojimodifier\x00emojimodifierbase\x00emojipresentation\x00epres\x00ethi\x00ethiopic\x00ext\x00extendedpictographic\x00extender\x00extpict\x00geor\x00georgian\x00glag\x00glagolitic\x00gong\x00gonm\x00goth\x00gothic\x00gran\x00grantha\x00graphemebase\x00graphemeextend\x00graphemelink\x00grbase\x00greek\x00grek\x00grext\x00grlink\x00gujarati\x00gujr\x00gunjalagondi\x00gurmukhi\x00guru\x00han\x00hang\x00hangul\x00hani\x00hanifirohingya\x00hano\x00hanunoo\x00hatr\x00hatran\x00hebr\x00hebrew\x00hex\x00hexdigit\x00hira\x00hiragana\x00hluw\x00hmng\x00hmnp\x00hung\x00idc\x00idcontinue\x00ideo\x00ideographic\x00ids\x00idsb\x00idsbinaryoperator\x00idst\x00idstart\x00idstrinaryoperator\x00imperialaramaic\x00inherited\x00inscriptionalpahlavi\x00inscriptionalparthian\x00ital\x00java\x00javanese\x00joinc\x00joincontrol\x00kaithi\x00kali\x00kana\x00kannada\x00katakana\x00kayahli\x00khar\x00kharoshthi\x00khitansmallscript\x00khmer\x00khmr\x00khoj\x00khojki\x00khudawadi\x00kits\x00knda\x00kthi\x00l\x00l&\x00lana\x00lao\x00laoo\x00latin\x00latn\x00lc\x00lepc\x00lepcha\x00limb\x00limbu\x00lina\x00linb\x00lineara\x00linearb\x00lisu\x00ll\x00lm\x00lo\x00loe\x00logicalorderexception\x00lower\x00lowercase\x00lt\x00lu\x00lyci\x00lycian\x00lydi\x00lydian\x00m\x00mahajani\x00mahj\x00maka\x00makasar\x00malayalam\x00mand\x00mandaic\x00mani\x00manichaean\x00marc\x00marchen\x00masaramgondi\x00math\x00mc\x00me\x00medefaidrin\x00medf\x00meeteimayek\x00mend\x00mendekikakui\x00merc\x00mero\x00meroiticcursive\x00meroitichieroglyphs\x00miao\x00mlym\x00mn\x00modi\x00mong\x00mongolian\x00mro\x00mroo\x00mtei\x00mult\x00multani\x00myanmar\x00mymr\x00n\x00nabataean\x00nand\x00nandinagari\x00narb\x00nbat\x00nchar\x00nd\x00newa\x00newtailue\x00nko\x00nkoo\x00nl\x00no\x00noncharactercodepoint\x00nshu\x00nushu\x00nyiakengpuachuehmong\x00ogam\x00ogham\x00olchiki\x00olck\x00oldhungarian\x00olditalic\x00oldnortharabian\x00oldpermic\x00oldpersian\x00oldsogdian\x00oldsoutharabian\x00oldturkic\x00olduyghur\x00oriya\x00orkh\x00orya\x00osage\x00osge\x00osma\x00osmanya\x00ougr\x00p\x00pahawhhmong\x00palm\x00palmyrene\x00patsyn\x00patternsyntax\x00patternwhitespace\x00patws\x00pauc\x00paucinhau\x00pc\x00pcm\x00pd\x00pe\x00perm\x00pf\x00phag\x00phagspa\x00phli\x00phlp\x00phnx\x00phoenician\x00pi\x00plrd\x00po\x00prependedconcatenationmark\x00prti\x00ps\x00psalterpahlavi\x00qaac\x00qaai\x00qmark\x00quotationmark\x00radical\x00regionalindicator\x00rejang\x00ri\x00rjng\x00rohg\x00runic\x00runr\x00s\x00samaritan\x00samr\x00sarb\x00saur\x00saurashtra\x00sc\x00sd\x00sentenceterminal\x00sgnw\x00sharada\x00shavian\x00shaw\x00shrd\x00sidd\x00siddham\x00signwriting\x00sind\x00sinh\x00sinhala\x00sk\x00sm\x00so\x00softdotted\x00sogd\x00sogdian\x00sogo\x00sora\x00sorasompeng\x00soyo\x00soyombo\x00space\x00sterm\x00sund\x00sundanese\x00sylo\x00sylotinagri\x00syrc\x00syriac\x00tagalog\x00tagb\x00tagbanwa\x00taile\x00taitham\x00taiviet\x00takr\x00takri\x00tale\x00talu\x00tamil\x00taml\x00tang\x00tangsa\x00tangut\x00tavt\x00telu\x00telugu\x00term\x00terminalpunctuation\x00tfng\x00tglg\x00thaa\x00thaana\x00thai\x00tibetan\x00tibt\x00tifinagh\x00tirh\x00tirhuta\x00tnsa\x00toto\x00ugar\x00ugaritic\x00uideo\x00unifiedideograph\x00unknown\x00upper\x00uppercase\x00vai\x00vaii\x00variationselector\x00vith\x00vithkuqi\x00vs\x00wancho\x00wara\x00warangciti\x00wcho\x00whitespace\x00wspace\x00xan\x00xidc\x00xidcontinue\x00xids\x00xidstart\x00xpeo\x00xps\x00xsp\x00xsux\x00xuc\x00xwd\x00yezi\x00yezidi\x00yi\x00yiii\x00z\x00zanabazarsquare\x00zanb\x00zinh\x00zl\x00zp\x00zs\x00zyyy\x00zzzz\x00\x0014.0.0\x00" 70962 var ts = (*reflect.StringHeader)(unsafe.Pointer(&ts1)).Data