astexplorer.app
Version:
https://astexplorer.net with ES Modules support and Hot Reloading
1 lines • 91 kB
JavaScript
(window.webpackJsonp=window.webpackJsonp||[]).push([[66],{"./node_modules/@babel/runtime/helpers/construct.js":function(module,exports,__webpack_require__){eval('var setPrototypeOf = __webpack_require__("./node_modules/@babel/runtime/helpers/setPrototypeOf.js");\n\nvar isNativeReflectConstruct = __webpack_require__("./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js");\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct, module.exports.__esModule = true, module.exports["default"] = module.exports;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n }, module.exports.__esModule = true, module.exports["default"] = module.exports;\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct, module.exports.__esModule = true, module.exports["default"] = module.exports;\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/construct.js?')},"./node_modules/@babel/runtime/helpers/isNativeFunction.js":function(module,exports){eval('function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf("[native code]") !== -1;\n}\n\nmodule.exports = _isNativeFunction, module.exports.__esModule = true, module.exports["default"] = module.exports;\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/isNativeFunction.js?')},"./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js":function(module,exports){eval('function _isNativeReflectConstruct() {\n if (typeof Reflect === "undefined" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === "function") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports["default"] = module.exports;\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js?')},"./node_modules/@babel/runtime/helpers/wrapNativeSuper.js":function(module,exports,__webpack_require__){eval('var getPrototypeOf = __webpack_require__("./node_modules/@babel/runtime/helpers/getPrototypeOf.js");\n\nvar setPrototypeOf = __webpack_require__("./node_modules/@babel/runtime/helpers/setPrototypeOf.js");\n\nvar isNativeFunction = __webpack_require__("./node_modules/@babel/runtime/helpers/isNativeFunction.js");\n\nvar construct = __webpack_require__("./node_modules/@babel/runtime/helpers/construct.js");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === "function" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== "function") {\n throw new TypeError("Super expression must either be null or a function");\n }\n\n if (typeof _cache !== "undefined") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n }, module.exports.__esModule = true, module.exports["default"] = module.exports;\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper, module.exports.__esModule = true, module.exports["default"] = module.exports;\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/wrapNativeSuper.js?')},"./node_modules/regexpp/index.mjs":function(module,exports,__webpack_require__){"use strict";eval('\n\nvar _interopRequireDefault = __webpack_require__("./node_modules/@babel/runtime/helpers/interopRequireDefault.js");\n\nObject.defineProperty(exports, "__esModule", {\n value: true\n});\nexports.RegExpValidator = exports.RegExpParser = exports.AST = void 0;\nexports.parseRegExpLiteral = parseRegExpLiteral;\nexports.validateRegExpLiteral = validateRegExpLiteral;\nexports.visitRegExpAST = visitRegExpAST;\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__("./node_modules/@babel/runtime/helpers/inherits.js"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__("./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(__webpack_require__("./node_modules/@babel/runtime/helpers/getPrototypeOf.js"));\n\nvar _wrapNativeSuper2 = _interopRequireDefault(__webpack_require__("./node_modules/@babel/runtime/helpers/wrapNativeSuper.js"));\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__("./node_modules/@babel/runtime/helpers/classCallCheck.js"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__("./node_modules/@babel/runtime/helpers/createClass.js"));\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\n/*! @author Toru Nagashima <https://github.com/mysticatea> */\nvar ast = /*#__PURE__*/Object.freeze({});\nexports.AST = ast;\nvar largeIdStartRanges = undefined;\nvar largeIdContinueRanges = undefined;\n\nfunction isIdStart(cp) {\n if (cp < 0x41) return false;\n if (cp < 0x5b) return true;\n if (cp < 0x61) return false;\n if (cp < 0x7b) return true;\n return isLargeIdStart(cp);\n}\n\nfunction isIdContinue(cp) {\n if (cp < 0x30) return false;\n if (cp < 0x3a) return true;\n if (cp < 0x41) return false;\n if (cp < 0x5b) return true;\n if (cp === 0x5f) return true;\n if (cp < 0x61) return false;\n if (cp < 0x7b) return true;\n return isLargeIdStart(cp) || isLargeIdContinue(cp);\n}\n\nfunction isLargeIdStart(cp) {\n return isInRange(cp, largeIdStartRanges || (largeIdStartRanges = initLargeIdStartRanges()));\n}\n\nfunction isLargeIdContinue(cp) {\n return isInRange(cp, largeIdContinueRanges || (largeIdContinueRanges = initLargeIdContinueRanges()));\n}\n\nfunction initLargeIdStartRanges() {\n return restoreRanges("170 0 11 0 5 0 6 22 2 30 2 457 5 11 15 4 8 0 2 0 130 4 2 1 3 3 2 0 7 0 2 2 2 0 2 19 2 82 2 138 9 165 2 37 3 0 7 40 72 26 5 3 46 42 36 1 2 98 2 0 16 1 8 1 11 2 3 0 17 0 2 29 30 88 12 0 25 32 10 1 5 0 6 21 5 0 10 0 4 0 24 24 8 10 54 20 2 17 61 53 4 0 19 0 8 9 16 15 5 7 3 1 3 21 2 6 2 0 4 3 4 0 17 0 14 1 2 2 15 1 11 0 9 5 5 1 3 21 2 6 2 1 2 1 2 1 32 3 2 0 20 2 17 8 2 2 2 21 2 6 2 1 2 4 4 0 19 0 16 1 24 0 12 7 3 1 3 21 2 6 2 1 2 4 4 0 31 1 2 2 16 0 18 0 2 5 4 2 2 3 4 1 2 0 2 1 4 1 4 2 4 11 23 0 53 7 2 2 2 22 2 15 4 0 27 2 6 1 31 0 5 7 2 2 2 22 2 9 2 4 4 0 33 0 2 1 16 1 18 8 2 2 2 40 3 0 17 0 6 2 9 2 25 5 6 17 4 23 2 8 2 0 3 6 59 47 2 1 13 6 59 1 2 0 2 4 2 23 2 0 2 9 2 1 10 0 3 4 2 0 22 3 33 0 64 7 2 35 28 4 116 42 21 0 17 5 5 3 4 0 4 1 8 2 5 12 13 0 18 37 2 0 6 0 3 42 2 332 2 3 3 6 2 0 2 3 3 40 2 3 3 32 2 3 3 6 2 0 2 3 3 14 2 56 2 3 3 66 38 15 17 85 3 5 4 619 3 16 2 25 6 74 4 10 8 12 2 3 15 17 15 17 15 12 2 2 16 51 36 0 5 0 68 88 8 40 2 0 6 69 11 30 50 29 3 4 12 43 5 25 55 22 10 52 83 0 94 46 18 6 56 29 14 1 11 43 27 35 42 2 11 35 3 8 8 42 3 2 42 3 2 5 2 1 4 0 6 191 65 277 3 5 3 37 3 5 3 7 2 0 2 0 2 0 2 30 3 52 2 6 2 0 4 2 2 6 4 3 3 5 5 12 6 2 2 6 117 0 14 0 17 12 102 0 5 0 3 9 2 0 3 5 7 0 2 0 2 0 2 15 3 3 6 4 5 0 18 40 2680 46 2 46 2 132 7 3 4 1 13 37 2 0 6 0 3 55 8 0 17 22 10 6 2 6 2 6 2 6 2 6 2 6 2 6 2 6 551 2 26 8 8 4 3 4 5 85 5 4 2 89 2 3 6 42 2 93 18 31 49 15 513 6591 65 20988 4 1164 68 45 3 268 4 15 11 1 21 46 17 30 3 79 40 8 3 102 3 52 3 8 43 12 2 2 2 3 2 22 30 51 15 49 63 5 4 0 2 1 12 27 11 22 26 28 8 46 29 0 17 4 2 9 11 4 2 40 24 2 2 7 21 22 4 0 4 49 2 0 4 1 3 4 3 0 2 0 25 2 3 10 8 2 13 5 3 5 3 5 10 6 2 6 2 42 2 13 7 114 30 11171 13 22 5 48 8453 365 3 105 39 6 13 4 6 0 2 9 2 12 2 4 2 0 2 1 2 1 2 107 34 362 19 63 3 53 41 11 117 4 2 134 37 25 7 25 12 88 4 5 3 5 3 5 3 2 36 11 2 25 2 18 2 1 2 14 3 13 35 122 70 52 268 28 4 48 48 31 14 29 6 37 11 29 3 35 5 7 2 4 43 157 19 35 5 35 5 39 9 51 157 310 10 21 11 7 153 5 3 0 2 43 2 1 4 0 3 22 11 22 10 30 66 18 2 1 11 21 11 25 71 55 7 1 65 0 16 3 2 2 2 28 43 28 4 28 36 7 2 27 28 53 11 21 11 18 14 17 111 72 56 50 14 50 14 35 349 41 7 1 79 28 11 0 9 21 107 20 28 22 13 52 76 44 33 24 27 35 30 0 3 0 9 34 4 0 13 47 15 3 22 0 2 0 36 17 2 24 85 6 2 0 2 3 2 14 2 9 8 46 39 7 3 1 3 21 2 6 2 1 2 4 4 0 19 0 13 4 159 52 19 3 21 2 31 47 21 1 2 0 185 46 42 3 37 47 21 0 60 42 14 0 72 26 230 43 117 63 32 7 3 0 3 7 2 1 2 23 16 0 2 0 95 7 3 38 17 0 2 0 29 0 11 39 8 0 22 0 12 45 20 0 35 56 264 8 2 36 18 0 50 29 113 6 2 1 2 37 22 0 26 5 2 1 2 31 15 0 328 18 190 0 80 921 103 110 18 195 2749 1070 4050 582 8634 568 8 30 114 29 19 47 17 3 32 20 6 18 689 63 129 74 6 0 67 12 65 1 2 0 29 6135 9 1237 43 8 8952 286 50 2 18 3 9 395 2309 106 6 12 4 8 8 9 5991 84 2 70 2 1 3 0 3 1 3 3 2 11 2 0 2 6 2 64 2 3 3 7 2 6 2 27 2 3 2 4 2 0 4 6 2 339 3 24 2 24 2 30 2 24 2 30 2 24 2 30 2 24 2 30 2 24 2 7 2357 44 11 6 17 0 370 43 1301 196 60 67 8 0 1205 3 2 26 2 1 2 0 3 0 2 9 2 3 2 0 2 0 7 0 5 0 2 0 2 0 2 2 2 1 2 0 3 0 2 0 2 0 2 0 2 0 2 1 2 0 3 3 2 6 2 3 2 3 2 0 2 9 2 16 6 2 2 4 2 16 4421 42717 35 4148 12 221 3 5761 15 7472 3104 541 1507 4938");\n}\n\nfunction initLargeIdContinueRanges() {\n return restoreRanges("183 0 585 111 24 0 252 4 266 44 2 0 2 1 2 1 2 0 73 10 49 30 7 0 102 6 3 5 3 1 2 3 3 9 24 0 31 26 92 10 16 9 34 8 10 0 25 3 2 8 2 2 2 4 44 2 120 14 2 32 55 2 2 17 2 6 11 1 3 9 18 2 57 0 2 6 3 1 3 2 10 0 11 1 3 9 15 0 3 2 57 0 2 4 5 1 3 2 4 0 21 11 4 0 12 2 57 0 2 7 2 2 2 2 21 1 3 9 11 5 2 2 57 0 2 6 3 1 3 2 8 2 11 1 3 9 19 0 60 4 4 2 2 3 10 0 15 9 17 4 58 6 2 2 2 3 8 1 12 1 3 9 18 2 57 0 2 6 2 2 2 3 8 1 12 1 3 9 17 3 56 1 2 6 2 2 2 3 10 0 11 1 3 9 18 2 71 0 5 5 2 0 2 7 7 9 3 1 62 0 3 6 13 7 2 9 88 0 3 8 12 5 3 9 63 1 7 9 12 0 2 0 2 0 5 1 50 19 2 1 6 10 2 35 10 0 101 19 2 9 13 3 5 2 2 2 3 6 4 3 14 11 2 14 704 2 10 8 929 2 30 2 30 1 31 1 65 31 10 0 3 9 34 2 3 9 144 0 119 11 5 11 11 9 129 10 61 4 58 9 2 28 3 10 7 9 23 13 2 1 64 4 48 16 12 9 18 8 13 2 31 12 3 9 45 13 49 19 9 9 7 9 119 2 2 20 5 0 7 0 3 2 199 57 2 4 576 1 20 0 124 12 5 0 4 11 3071 2 142 0 97 31 555 5 106 1 30086 9 70 0 5 9 33 1 81 1 273 0 4 0 5 0 24 4 5 0 84 1 51 17 11 9 7 17 14 10 29 7 26 12 45 3 48 13 16 9 12 0 11 9 48 13 13 0 9 1 3 9 34 2 51 0 2 2 3 1 6 1 2 0 42 4 6 1 237 7 2 1 3 9 20261 0 738 15 17 15 4 1 25 2 193 9 38 0 702 0 227 0 150 4 294 9 1368 2 2 1 6 3 41 2 5 0 166 1 574 3 9 9 370 1 154 10 176 2 54 14 32 9 16 3 46 10 54 9 7 2 37 13 2 9 6 1 45 0 13 2 49 13 9 3 2 11 83 11 7 0 161 11 6 9 7 3 56 1 2 6 3 1 3 2 10 0 11 1 3 6 4 4 193 17 10 9 5 0 82 19 13 9 214 6 3 8 28 1 83 16 16 9 82 12 9 9 84 14 5 9 243 14 166 9 71 5 2 1 3 3 2 0 2 1 13 9 120 6 3 6 4 0 29 9 41 6 2 3 9 0 10 10 47 15 406 7 2 7 17 9 57 21 2 13 123 5 4 0 2 1 2 6 2 0 9 9 49 4 2 1 2 4 9 9 330 3 19306 9 135 4 60 6 26 9 1014 0 2 54 8 3 82 0 12 1 19628 1 5319 4 4 5 9 7 3 6 31 3 149 2 1418 49 513 54 5 49 9 0 15 0 23 4 2 14 1361 6 2 16 3 6 2 1 2 4 262 6 10 9 419 13 1495 6 110 6 6 9 4759 9 787719 239");\n}\n\nfunction isInRange(cp, ranges) {\n var l = 0,\n r = ranges.length / 2 | 0,\n i = 0,\n min = 0,\n max = 0;\n\n while (l < r) {\n i = (l + r) / 2 | 0;\n min = ranges[2 * i];\n max = ranges[2 * i + 1];\n\n if (cp < min) {\n r = i;\n } else if (cp > max) {\n l = i + 1;\n } else {\n return true;\n }\n }\n\n return false;\n}\n\nfunction restoreRanges(data) {\n var last = 0;\n return data.split(" ").map(function (s) {\n return last += parseInt(s, 10) | 0;\n });\n}\n\nvar DataSet = /*#__PURE__*/function () {\n function DataSet(raw2018, raw2019, raw2020) {\n (0, _classCallCheck2.default)(this, DataSet);\n this._raw2018 = raw2018;\n this._raw2019 = raw2019;\n this._raw2020 = raw2020;\n }\n\n (0, _createClass2.default)(DataSet, [{\n key: "es2018",\n get: function get() {\n return this._set2018 || (this._set2018 = new Set(this._raw2018.split(" ")));\n }\n }, {\n key: "es2019",\n get: function get() {\n return this._set2019 || (this._set2019 = new Set(this._raw2019.split(" ")));\n }\n }, {\n key: "es2020",\n get: function get() {\n return this._set2020 || (this._set2020 = new Set(this._raw2020.split(" ")));\n }\n }]);\n return DataSet;\n}();\n\nvar gcNameSet = new Set(["General_Category", "gc"]);\nvar scNameSet = new Set(["Script", "Script_Extensions", "sc", "scx"]);\nvar gcValueSets = new DataSet("C Cased_Letter Cc Cf Close_Punctuation Cn Co Combining_Mark Connector_Punctuation Control Cs Currency_Symbol Dash_Punctuation Decimal_Number Enclosing_Mark Final_Punctuation Format Initial_Punctuation L LC Letter Letter_Number Line_Separator Ll Lm Lo Lowercase_Letter Lt Lu M Mark Math_Symbol Mc Me Mn Modifier_Letter Modifier_Symbol N Nd Nl No Nonspacing_Mark Number Open_Punctuation Other Other_Letter Other_Number Other_Punctuation Other_Symbol P Paragraph_Separator Pc Pd Pe Pf Pi Po Private_Use Ps Punctuation S Sc Separator Sk Sm So Space_Separator Spacing_Mark Surrogate Symbol Titlecase_Letter Unassigned Uppercase_Letter Z Zl Zp Zs cntrl digit punct", "", "");\nvar scValueSets = new DataSet("Adlam Adlm Aghb Ahom Anatolian_Hieroglyphs Arab Arabic Armenian Armi Armn Avestan Avst Bali Balinese Bamu Bamum Bass Bassa_Vah Batak Batk Beng Bengali Bhaiksuki Bhks Bopo Bopomofo Brah Brahmi Brai Braille Bugi Buginese Buhd Buhid Cakm Canadian_Aboriginal Cans Cari Carian Caucasian_Albanian Chakma Cham Cher Cherokee Common Copt Coptic Cprt Cuneiform Cypriot Cyrillic Cyrl Deseret Deva Devanagari Dsrt Dupl Duployan Egyp Egyptian_Hieroglyphs Elba Elbasan Ethi Ethiopic Geor Georgian Glag Glagolitic Gonm Goth Gothic Gran Grantha Greek Grek Gujarati Gujr Gurmukhi Guru Han Hang Hangul Hani Hano Hanunoo Hatr Hatran Hebr Hebrew Hira Hiragana Hluw Hmng Hung Imperial_Aramaic Inherited Inscriptional_Pahlavi Inscriptional_Parthian Ital Java Javanese Kaithi Kali Kana Kannada Katakana Kayah_Li Khar Kharoshthi Khmer Khmr Khoj Khojki Khudawadi Knda Kthi Lana Lao Laoo Latin Latn Lepc Lepcha Limb Limbu Lina Linb Linear_A Linear_B Lisu Lyci Lycian Lydi Lydian Mahajani Mahj Malayalam Mand Mandaic Mani Manichaean Marc Marchen Masaram_Gondi Meetei_Mayek Mend Mende_Kikakui Merc Mero Meroitic_Cursive Meroitic_Hieroglyphs Miao Mlym Modi Mong Mongolian Mro Mroo Mtei Mult Multani Myanmar Mymr Nabataean Narb Nbat New_Tai_Lue Newa Nko Nkoo Nshu Nushu Ogam Ogham Ol_Chiki Olck Old_Hungarian Old_Italic Old_North_Arabian Old_Permic Old_Persian Old_South_Arabian Old_Turkic Oriya Orkh Orya Osage Osge Osma Osmanya Pahawh_Hmong Palm Palmyrene Pau_Cin_Hau Pauc Perm Phag Phags_Pa Phli Phlp Phnx Phoenician Plrd Prti Psalter_Pahlavi Qaac Qaai Rejang Rjng Runic Runr Samaritan Samr Sarb Saur Saurashtra Sgnw Sharada Shavian Shaw Shrd Sidd Siddham SignWriting Sind Sinh Sinhala Sora Sora_Sompeng Soyo Soyombo Sund Sundanese Sylo Syloti_Nagri Syrc Syriac Tagalog Tagb Tagbanwa Tai_Le Tai_Tham Tai_Viet Takr Takri Tale Talu Tamil Taml Tang Tangut Tavt Telu Telugu Tfng Tglg Thaa Thaana Thai Tibetan Tibt Tifinagh Tirh Tirhuta Ugar Ugaritic Vai Vaii Wara Warang_Citi Xpeo Xsux Yi Yiii Zanabazar_Square Zanb Zinh Zyyy", "Dogr Dogra Gong Gunjala_Gondi Hanifi_Rohingya Maka Makasar Medefaidrin Medf Old_Sogdian Rohg Sogd Sogdian Sogo", "Elym Elymaic Hmnp Nand Nandinagari Nyiakeng_Puachue_Hmong Wancho Wcho");\nvar binPropertySets = new DataSet("AHex ASCII ASCII_Hex_Digit Alpha Alphabetic Any Assigned Bidi_C Bidi_Control Bidi_M Bidi_Mirrored CI CWCF CWCM CWKCF CWL CWT CWU Case_Ignorable Cased Changes_When_Casefolded Changes_When_Casemapped Changes_When_Lowercased Changes_When_NFKC_Casefolded Changes_When_Titlecased Changes_When_Uppercased DI Dash Default_Ignorable_Code_Point Dep Deprecated Dia Diacritic Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Ext Extender Gr_Base Gr_Ext Grapheme_Base Grapheme_Extend Hex Hex_Digit IDC IDS IDSB IDST IDS_Binary_Operator IDS_Trinary_Operator ID_Continue ID_Start Ideo Ideographic Join_C Join_Control LOE Logical_Order_Exception Lower Lowercase Math NChar Noncharacter_Code_Point Pat_Syn Pat_WS Pattern_Syntax Pattern_White_Space QMark Quotation_Mark RI Radical Regional_Indicator SD STerm Sentence_Terminal Soft_Dotted Term Terminal_Punctuation UIdeo Unified_Ideograph Upper Uppercase VS Variation_Selector White_Space XIDC XIDS XID_Continue XID_Start space", "Extended_Pictographic", "");\n\nfunction isValidUnicodeProperty(version, name, value) {\n if (gcNameSet.has(name)) {\n return version >= 2018 && gcValueSets.es2018.has(value);\n }\n\n if (scNameSet.has(name)) {\n return version >= 2018 && scValueSets.es2018.has(value) || version >= 2019 && scValueSets.es2019.has(value) || version >= 2020 && scValueSets.es2020.has(value);\n }\n\n return false;\n}\n\nfunction isValidLoneUnicodeProperty(version, value) {\n return version >= 2018 && binPropertySets.es2018.has(value) || version >= 2019 && binPropertySets.es2019.has(value);\n}\n\nvar Backspace = 0x08;\nvar CharacterTabulation = 0x09;\nvar LineFeed = 0x0a;\nvar LineTabulation = 0x0b;\nvar FormFeed = 0x0c;\nvar CarriageReturn = 0x0d;\nvar ExclamationMark = 0x21;\nvar DollarSign = 0x24;\nvar LeftParenthesis = 0x28;\nvar RightParenthesis = 0x29;\nvar Asterisk = 0x2a;\nvar PlusSign = 0x2b;\nvar Comma = 0x2c;\nvar HyphenMinus = 0x2d;\nvar FullStop = 0x2e;\nvar Solidus = 0x2f;\nvar DigitZero = 0x30;\nvar DigitOne = 0x31;\nvar DigitSeven = 0x37;\nvar DigitNine = 0x39;\nvar Colon = 0x3a;\nvar LessThanSign = 0x3c;\nvar EqualsSign = 0x3d;\nvar GreaterThanSign = 0x3e;\nvar QuestionMark = 0x3f;\nvar LatinCapitalLetterA = 0x41;\nvar LatinCapitalLetterB = 0x42;\nvar LatinCapitalLetterD = 0x44;\nvar LatinCapitalLetterF = 0x46;\nvar LatinCapitalLetterP = 0x50;\nvar LatinCapitalLetterS = 0x53;\nvar LatinCapitalLetterW = 0x57;\nvar LatinCapitalLetterZ = 0x5a;\nvar LowLine = 0x5f;\nvar LatinSmallLetterA = 0x61;\nvar LatinSmallLetterB = 0x62;\nvar LatinSmallLetterC = 0x63;\nvar LatinSmallLetterD = 0x64;\nvar LatinSmallLetterF = 0x66;\nvar LatinSmallLetterG = 0x67;\nvar LatinSmallLetterI = 0x69;\nvar LatinSmallLetterK = 0x6b;\nvar LatinSmallLetterM = 0x6d;\nvar LatinSmallLetterN = 0x6e;\nvar LatinSmallLetterP = 0x70;\nvar LatinSmallLetterR = 0x72;\nvar LatinSmallLetterS = 0x73;\nvar LatinSmallLetterT = 0x74;\nvar LatinSmallLetterU = 0x75;\nvar LatinSmallLetterV = 0x76;\nvar LatinSmallLetterW = 0x77;\nvar LatinSmallLetterX = 0x78;\nvar LatinSmallLetterY = 0x79;\nvar LatinSmallLetterZ = 0x7a;\nvar LeftSquareBracket = 0x5b;\nvar ReverseSolidus = 0x5c;\nvar RightSquareBracket = 0x5d;\nvar CircumflexAccent = 0x5e;\nvar LeftCurlyBracket = 0x7b;\nvar VerticalLine = 0x7c;\nvar RightCurlyBracket = 0x7d;\nvar ZeroWidthNonJoiner = 0x200c;\nvar ZeroWidthJoiner = 0x200d;\nvar LineSeparator = 0x2028;\nvar ParagraphSeparator = 0x2029;\nvar MinCodePoint = 0x00;\nvar MaxCodePoint = 0x10ffff;\n\nfunction isLatinLetter(code) {\n return code >= LatinCapitalLetterA && code <= LatinCapitalLetterZ || code >= LatinSmallLetterA && code <= LatinSmallLetterZ;\n}\n\nfunction isDecimalDigit(code) {\n return code >= DigitZero && code <= DigitNine;\n}\n\nfunction isOctalDigit(code) {\n return code >= DigitZero && code <= DigitSeven;\n}\n\nfunction isHexDigit(code) {\n return code >= DigitZero && code <= DigitNine || code >= LatinCapitalLetterA && code <= LatinCapitalLetterF || code >= LatinSmallLetterA && code <= LatinSmallLetterF;\n}\n\nfunction isLineTerminator(code) {\n return code === LineFeed || code === CarriageReturn || code === LineSeparator || code === ParagraphSeparator;\n}\n\nfunction isValidUnicode(code) {\n return code >= MinCodePoint && code <= MaxCodePoint;\n}\n\nfunction digitToInt(code) {\n if (code >= LatinSmallLetterA && code <= LatinSmallLetterF) {\n return code - LatinSmallLetterA + 10;\n }\n\n if (code >= LatinCapitalLetterA && code <= LatinCapitalLetterF) {\n return code - LatinCapitalLetterA + 10;\n }\n\n return code - DigitZero;\n}\n\nfunction isLeadSurrogate(code) {\n return code >= 0xd800 && code <= 0xdbff;\n}\n\nfunction isTrailSurrogate(code) {\n return code >= 0xdc00 && code <= 0xdfff;\n}\n\nfunction combineSurrogatePair(lead, trail) {\n return (lead - 0xd800) * 0x400 + (trail - 0xdc00) + 0x10000;\n}\n\nvar legacyImpl = {\n at: function at(s, end, i) {\n return i < end ? s.charCodeAt(i) : -1;\n },\n width: function width(c) {\n return 1;\n }\n};\nvar unicodeImpl = {\n at: function at(s, end, i) {\n return i < end ? s.codePointAt(i) : -1;\n },\n width: function width(c) {\n return c > 0xffff ? 2 : 1;\n }\n};\n\nvar Reader = /*#__PURE__*/function () {\n function Reader() {\n (0, _classCallCheck2.default)(this, Reader);\n this._impl = legacyImpl;\n this._s = "";\n this._i = 0;\n this._end = 0;\n this._cp1 = -1;\n this._w1 = 1;\n this._cp2 = -1;\n this._w2 = 1;\n this._cp3 = -1;\n this._w3 = 1;\n this._cp4 = -1;\n }\n\n (0, _createClass2.default)(Reader, [{\n key: "source",\n get: function get() {\n return this._s;\n }\n }, {\n key: "index",\n get: function get() {\n return this._i;\n }\n }, {\n key: "currentCodePoint",\n get: function get() {\n return this._cp1;\n }\n }, {\n key: "nextCodePoint",\n get: function get() {\n return this._cp2;\n }\n }, {\n key: "nextCodePoint2",\n get: function get() {\n return this._cp3;\n }\n }, {\n key: "nextCodePoint3",\n get: function get() {\n return this._cp4;\n }\n }, {\n key: "reset",\n value: function reset(source, start, end, uFlag) {\n this._impl = uFlag ? unicodeImpl : legacyImpl;\n this._s = source;\n this._end = end;\n this.rewind(start);\n }\n }, {\n key: "rewind",\n value: function rewind(index) {\n var impl = this._impl;\n this._i = index;\n this._cp1 = impl.at(this._s, this._end, index);\n this._w1 = impl.width(this._cp1);\n this._cp2 = impl.at(this._s, this._end, index + this._w1);\n this._w2 = impl.width(this._cp2);\n this._cp3 = impl.at(this._s, this._end, index + this._w1 + this._w2);\n this._w3 = impl.width(this._cp3);\n this._cp4 = impl.at(this._s, this._end, index + this._w1 + this._w2 + this._w3);\n }\n }, {\n key: "advance",\n value: function advance() {\n if (this._cp1 !== -1) {\n var impl = this._impl;\n this._i += this._w1;\n this._cp1 = this._cp2;\n this._w1 = this._w2;\n this._cp2 = this._cp3;\n this._w2 = impl.width(this._cp2);\n this._cp3 = this._cp4;\n this._w3 = impl.width(this._cp3);\n this._cp4 = impl.at(this._s, this._end, this._i + this._w1 + this._w2 + this._w3);\n }\n }\n }, {\n key: "eat",\n value: function eat(cp) {\n if (this._cp1 === cp) {\n this.advance();\n return true;\n }\n\n return false;\n }\n }, {\n key: "eat2",\n value: function eat2(cp1, cp2) {\n if (this._cp1 === cp1 && this._cp2 === cp2) {\n this.advance();\n this.advance();\n return true;\n }\n\n return false;\n }\n }, {\n key: "eat3",\n value: function eat3(cp1, cp2, cp3) {\n if (this._cp1 === cp1 && this._cp2 === cp2 && this._cp3 === cp3) {\n this.advance();\n this.advance();\n this.advance();\n return true;\n }\n\n return false;\n }\n }]);\n return Reader;\n}();\n\nvar RegExpSyntaxError = /*#__PURE__*/function (_SyntaxError) {\n (0, _inherits2.default)(RegExpSyntaxError, _SyntaxError);\n\n var _super = _createSuper(RegExpSyntaxError);\n\n function RegExpSyntaxError(source, uFlag, index, message) {\n var _this;\n\n (0, _classCallCheck2.default)(this, RegExpSyntaxError);\n\n if (source) {\n if (!source.startsWith("/")) {\n source = "/".concat(source, "/").concat(uFlag ? "u" : "");\n }\n\n source = ": ".concat(source);\n }\n\n _this = _super.call(this, "Invalid regular expression".concat(source, ": ").concat(message));\n _this.index = index;\n return _this;\n }\n\n return (0, _createClass2.default)(RegExpSyntaxError);\n}( /*#__PURE__*/(0, _wrapNativeSuper2.default)(SyntaxError));\n\nfunction isSyntaxCharacter(cp) {\n return cp === CircumflexAccent || cp === DollarSign || cp === ReverseSolidus || cp === FullStop || cp === Asterisk || cp === PlusSign || cp === QuestionMark || cp === LeftParenthesis || cp === RightParenthesis || cp === LeftSquareBracket || cp === RightSquareBracket || cp === LeftCurlyBracket || cp === RightCurlyBracket || cp === VerticalLine;\n}\n\nfunction isRegExpIdentifierStart(cp) {\n return isIdStart(cp) || cp === DollarSign || cp === LowLine;\n}\n\nfunction isRegExpIdentifierPart(cp) {\n return isIdContinue(cp) || cp === DollarSign || cp === LowLine || cp === ZeroWidthNonJoiner || cp === ZeroWidthJoiner;\n}\n\nfunction isUnicodePropertyNameCharacter(cp) {\n return isLatinLetter(cp) || cp === LowLine;\n}\n\nfunction isUnicodePropertyValueCharacter(cp) {\n return isUnicodePropertyNameCharacter(cp) || isDecimalDigit(cp);\n}\n\nvar RegExpValidator = /*#__PURE__*/function () {\n function RegExpValidator(options) {\n (0, _classCallCheck2.default)(this, RegExpValidator);\n this._reader = new Reader();\n this._uFlag = false;\n this._nFlag = false;\n this._lastIntValue = 0;\n this._lastMinValue = 0;\n this._lastMaxValue = 0;\n this._lastStrValue = "";\n this._lastKeyValue = "";\n this._lastValValue = "";\n this._lastAssertionIsQuantifiable = false;\n this._numCapturingParens = 0;\n this._groupNames = new Set();\n this._backreferenceNames = new Set();\n this._options = options || {};\n }\n\n (0, _createClass2.default)(RegExpValidator, [{\n key: "validateLiteral",\n value: function validateLiteral(source) {\n var start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : source.length;\n this._uFlag = this._nFlag = false;\n this.reset(source, start, end);\n this.onLiteralEnter(start);\n\n if (this.eat(Solidus) && this.eatRegExpBody() && this.eat(Solidus)) {\n var flagStart = this.index;\n var uFlag = source.includes("u", flagStart);\n this.validateFlags(source, flagStart, end);\n this.validatePattern(source, start + 1, flagStart - 1, uFlag);\n } else if (start >= end) {\n this.raise("Empty");\n } else {\n var c = String.fromCodePoint(this.currentCodePoint);\n this.raise("Unexpected character \'".concat(c, "\'"));\n }\n\n this.onLiteralLeave(start, end);\n }\n }, {\n key: "validateFlags",\n value: function validateFlags(source) {\n var start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : source.length;\n var existingFlags = new Set();\n var global = false;\n var ignoreCase = false;\n var multiline = false;\n var sticky = false;\n var unicode = false;\n var dotAll = false;\n\n for (var i = start; i < end; ++i) {\n var flag = source.charCodeAt(i);\n\n if (existingFlags.has(flag)) {\n this.raise("Duplicated flag \'".concat(source[i], "\'"));\n }\n\n existingFlags.add(flag);\n\n if (flag === LatinSmallLetterG) {\n global = true;\n } else if (flag === LatinSmallLetterI) {\n ignoreCase = true;\n } else if (flag === LatinSmallLetterM) {\n multiline = true;\n } else if (flag === LatinSmallLetterU && this.ecmaVersion >= 2015) {\n unicode = true;\n } else if (flag === LatinSmallLetterY && this.ecmaVersion >= 2015) {\n sticky = true;\n } else if (flag === LatinSmallLetterS && this.ecmaVersion >= 2018) {\n dotAll = true;\n } else {\n this.raise("Invalid flag \'".concat(source[i], "\'"));\n }\n }\n\n this.onFlags(start, end, global, ignoreCase, multiline, unicode, sticky, dotAll);\n }\n }, {\n key: "validatePattern",\n value: function validatePattern(source) {\n var start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : source.length;\n var uFlag = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n this._uFlag = uFlag && this.ecmaVersion >= 2015;\n this._nFlag = uFlag && this.ecmaVersion >= 2018;\n this.reset(source, start, end);\n this.consumePattern();\n\n if (!this._nFlag && this.ecmaVersion >= 2018 && this._groupNames.size > 0) {\n this._nFlag = true;\n this.rewind(start);\n this.consumePattern();\n }\n }\n }, {\n key: "strict",\n get: function get() {\n return Boolean(this._options.strict || this._uFlag);\n }\n }, {\n key: "ecmaVersion",\n get: function get() {\n return this._options.ecmaVersion || 2020;\n }\n }, {\n key: "onLiteralEnter",\n value: function onLiteralEnter(start) {\n if (this._options.onLiteralEnter) {\n this._options.onLiteralEnter(start);\n }\n }\n }, {\n key: "onLiteralLeave",\n value: function onLiteralLeave(start, end) {\n if (this._options.onLiteralLeave) {\n this._options.onLiteralLeave(start, end);\n }\n }\n }, {\n key: "onFlags",\n value: function onFlags(start, end, global, ignoreCase, multiline, unicode, sticky, dotAll) {\n if (this._options.onFlags) {\n this._options.onFlags(start, end, global, ignoreCase, multiline, unicode, sticky, dotAll);\n }\n }\n }, {\n key: "onPatternEnter",\n value: function onPatternEnter(start) {\n if (this._options.onPatternEnter) {\n this._options.onPatternEnter(start);\n }\n }\n }, {\n key: "onPatternLeave",\n value: function onPatternLeave(start, end) {\n if (this._options.onPatternLeave) {\n this._options.onPatternLeave(start, end);\n }\n }\n }, {\n key: "onDisjunctionEnter",\n value: function onDisjunctionEnter(start) {\n if (this._options.onDisjunctionEnter) {\n this._options.onDisjunctionEnter(start);\n }\n }\n }, {\n key: "onDisjunctionLeave",\n value: function onDisjunctionLeave(start, end) {\n if (this._options.onDisjunctionLeave) {\n this._options.onDisjunctionLeave(start, end);\n }\n }\n }, {\n key: "onAlternativeEnter",\n value: function onAlternativeEnter(start, index) {\n if (this._options.onAlternativeEnter) {\n this._options.onAlternativeEnter(start, index);\n }\n }\n }, {\n key: "onAlternativeLeave",\n value: function onAlternativeLeave(start, end, index) {\n if (this._options.onAlternativeLeave) {\n this._options.onAlternativeLeave(start, end, index);\n }\n }\n }, {\n key: "onGroupEnter",\n value: function onGroupEnter(start) {\n if (this._options.onGroupEnter) {\n this._options.onGroupEnter(start);\n }\n }\n }, {\n key: "onGroupLeave",\n value: function onGroupLeave(start, end) {\n if (this._options.onGroupLeave) {\n this._options.onGroupLeave(start, end);\n }\n }\n }, {\n key: "onCapturingGroupEnter",\n value: function onCapturingGroupEnter(start, name) {\n if (this._options.onCapturingGroupEnter) {\n this._options.onCapturingGroupEnter(start, name);\n }\n }\n }, {\n key: "onCapturingGroupLeave",\n value: function onCapturingGroupLeave(start, end, name) {\n if (this._options.onCapturingGroupLeave) {\n this._options.onCapturingGroupLeave(start, end, name);\n }\n }\n }, {\n key: "onQuantifier",\n value: function onQuantifier(start, end, min, max, greedy) {\n if (this._options.onQuantifier) {\n this._options.onQuantifier(start, end, min, max, greedy);\n }\n }\n }, {\n key: "onLookaroundAssertionEnter",\n value: function onLookaroundAssertionEnter(start, kind, negate) {\n if (this._options.onLookaroundAssertionEnter) {\n this._options.onLookaroundAssertionEnter(start, kind, negate);\n }\n }\n }, {\n key: "onLookaroundAssertionLeave",\n value: function onLookaroundAssertionLeave(start, end, kind, negate) {\n if (this._options.onLookaroundAssertionLeave) {\n this._options.onLookaroundAssertionLeave(start, end, kind, negate);\n }\n }\n }, {\n key: "onEdgeAssertion",\n value: function onEdgeAssertion(start, end, kind) {\n if (this._options.onEdgeAssertion) {\n this._options.onEdgeAssertion(start, end, kind);\n }\n }\n }, {\n key: "onWordBoundaryAssertion",\n value: function onWordBoundaryAssertion(start, end, kind, negate) {\n if (this._options.onWordBoundaryAssertion) {\n this._options.onWordBoundaryAssertion(start, end, kind, negate);\n }\n }\n }, {\n key: "onAnyCharacterSet",\n value: function onAnyCharacterSet(start, end, kind) {\n if (this._options.onAnyCharacterSet) {\n this._options.onAnyCharacterSet(start, end, kind);\n }\n }\n }, {\n key: "onEscapeCharacterSet",\n value: function onEscapeCharacterSet(start, end, kind, negate) {\n if (this._options.onEscapeCharacterSet) {\n this._options.onEscapeCharacterSet(start, end, kind, negate);\n }\n }\n }, {\n key: "onUnicodePropertyCharacterSet",\n value: function onUnicodePropertyCharacterSet(start, end, kind, key, value, negate) {\n if (this._options.onUnicodePropertyCharacterSet) {\n this._options.onUnicodePropertyCharacterSet(start, end, kind, key, value, negate);\n }\n }\n }, {\n key: "onCharacter",\n value: function onCharacter(start, end, value) {\n if (this._options.onCharacter) {\n this._options.onCharacter(start, end, value);\n }\n }\n }, {\n key: "onBackreference",\n value: function onBackreference(start, end, ref) {\n if (this._options.onBackreference) {\n this._options.onBackreference(start, end, ref);\n }\n }\n }, {\n key: "onCharacterClassEnter",\n value: function onCharacterClassEnter(start, negate) {\n if (this._options.onCharacterClassEnter) {\n this._options.onCharacterClassEnter(start, negate);\n }\n }\n }, {\n key: "onCharacterClassLeave",\n value: function onCharacterClassLeave(start, end, negate) {\n if (this._options.onCharacterClassLeave) {\n this._options.onCharacterClassLeave(start, end, negate);\n }\n }\n }, {\n key: "onCharacterClassRange",\n value: function onCharacterClassRange(start, end, min, max) {\n if (this._options.onCharacterClassRange) {\n this._options.onCharacterClassRange(start, end, min, max);\n }\n }\n }, {\n key: "source",\n get: function get() {\n return this._reader.source;\n }\n }, {\n key: "index",\n get: function get() {\n return this._reader.index;\n }\n }, {\n key: "currentCodePoint",\n get: function get() {\n return this._reader.currentCodePoint;\n }\n }, {\n key: "nextCodePoint",\n get: function get() {\n return this._reader.nextCodePoint;\n }\n }, {\n key: "nextCodePoint2",\n get: function get() {\n return this._reader.nextCodePoint2;\n }\n }, {\n key: "nextCodePoint3",\n get: function get() {\n return this._reader.nextCodePoint3;\n }\n }, {\n key: "reset",\n value: function reset(source, start, end) {\n this._reader.reset(source, start, end, this._uFlag);\n }\n }, {\n key: "rewind",\n value: function rewind(index) {\n this._reader.rewind(index);\n }\n }, {\n key: "advance",\n value: function advance() {\n this._reader.advance();\n }\n }, {\n key: "eat",\n value: function eat(cp) {\n return this._reader.eat(cp);\n }\n }, {\n key: "eat2",\n value: function eat2(cp1, cp2) {\n return this._reader.eat2(cp1, cp2);\n }\n }, {\n key: "eat3",\n value: function eat3(cp1, cp2, cp3) {\n return this._reader.eat3(cp1, cp2, cp3);\n }\n }, {\n key: "raise",\n value: function raise(message) {\n throw new RegExpSyntaxError(this.source, this._uFlag, this.index, message);\n }\n }, {\n key: "eatRegExpBody",\n value: function eatRegExpBody() {\n var start = this.index;\n var inClass = false;\n var escaped = false;\n\n for (;;) {\n var cp = this.currentCodePoint;\n\n if (cp === -1 || isLineTerminator(cp)) {\n var kind = inClass ? "character class" : "regular expression";\n this.raise("Unterminated ".concat(kind));\n }\n\n if (escaped) {\n escaped = false;\n } else if (cp === ReverseSolidus) {\n escaped = true;\n } else if (cp === LeftSquareBracket) {\n inClass = true;\n } else if (cp === RightSquareBracket) {\n inClass = false;\n } else if (cp === Solidus && !inClass || cp === Asterisk && this.index === start) {\n break;\n }\n\n this.advance();\n }\n\n return this.index !== start;\n }\n }, {\n key: "consumePattern",\n value: function consumePattern() {\n var start = this.index;\n this._numCapturingParens = this.countCapturingParens();\n\n this._groupNames.clear();\n\n this._backreferenceNames.clear();\n\n this.onPatternEnter(start);\n this.consumeDisjunction();\n var cp = this.currentCodePoint;\n\n if (this.currentCodePoint !== -1) {\n if (cp === RightParenthesis) {\n this.raise("Unmatched \')\'");\n }\n\n if (cp === ReverseSolidus) {\n this.raise("\\\\ at end of pattern");\n }\n\n if (cp === RightSquareBracket || cp === RightCurlyBracket) {\n this.raise("Lone quantifier brackets");\n }\n\n var c = String.fromCodePoint(cp);\n this.raise("Unexpected character \'".concat(c, "\'"));\n }\n\n var _iterator = _createForOfIteratorHelper(this._backreferenceNames),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var name = _step.value;\n\n if (!this._groupNames.has(name)) {\n this.raise("Invalid named capture referenced");\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n this.onPatternLeave(start, this.index);\n }\n }, {\n key: "countCapturingParens",\n value: function countCapturingParens() {\n var start = this.index;\n var inClass = false;\n var escaped = false;\n var count = 0;\n var cp = 0;\n\n while ((cp = this.currentCodePoint) !== -1) {\n if (escaped) {\n escaped = false;\n } else if (cp === ReverseSolidus) {\n escaped = true;\n } else if (cp === LeftSquareBracket) {\n inClass = true;\n } else if (cp === RightSquareBracket) {\n inClass = false;\n } else if (cp === LeftParenthesis && !inClass && (this.nextCodePoint !== QuestionMark || this.nextCodePoint2 === LessThanSign && this.nextCodePoint3 !== EqualsSign && this.nextCodePoint3 !== ExclamationMark)) {\n count += 1;\n }\n\n this.advance();\n }\n\n this.rewind(start);\n return count;\n }\n }, {\n key: "consumeDisjunction",\n value: function consumeDisjunction() {\n var start = this.index;\n var i = 0;\n this.onDisjunctionEnter(start);\n\n do {\n this.consumeAlternative(i++);\n } while (this.eat(VerticalLine));\n\n if (this.consumeQuantifier(true)) {\n this.raise("Nothing to repeat");\n }\n\n if (this.eat(LeftCurlyBracket)) {\n this.raise("Lone quantifier brackets");\n }\n\n this.onDisjunctionLeave(start, this.index);\n }\n }, {\n key: "consumeAlternative",\n value: function consumeAlternative(i) {\n var start = this.index;\n this.onAlternativeEnter(start, i);\n\n while (this.currentCodePoint !== -1 && this.consumeTerm()) {}\n\n this.onAlternativeLeave(start, this.index, i);\n }\n }, {\n key: "consumeTerm",\n value: function consumeTerm() {\n if (this._uFlag || this.strict) {\n return this.consumeAssertion() || this.consumeAtom() && this.consumeOptionalQuantifier();\n }\n\n return this.consumeAssertion() && (!this._lastAssertionIsQuantifiable || this.consumeOptionalQuantifier()) || this.consumeExtendedAtom() && this.consumeOptionalQuantifier();\n }\n }, {\n key: "consumeOptionalQuantifier",\n value: function consumeOptionalQuantifier() {\n this.consumeQuantifier();\n return true;\n }\n }, {\n key: "consumeAssertion",\n value: function consumeAssertion() {\n var start = this.index;\n this._lastAssertionIsQuantifiable = false;\n\n if (this.eat(CircumflexAccent)) {\n this.onEdgeAssertion(start, this.index, "start");\n return true;\n }\n\n if (this.eat(DollarSign)) {\n this.onEdgeAssertion(start, this.index, "end");\n return true;\n }\n\n if (this.eat2(ReverseSolidus, LatinCapitalLetterB)) {\n this.onWordBoundaryAssertion(start, this.index, "word", true);\n return true;\n }\n\n if (this.eat2(ReverseSolidus, LatinSmallLetterB)) {\n this.onWordBoundaryAssertion(start, this.index, "word", false);\n return true;\n }\n\n if (this.eat2(LeftParenthesis, QuestionMark)) {\n var lookbehind = this.ecmaVersion >= 2018 && this.eat(LessThanSign);\n var negate = false;\n\n if (this.eat(EqualsSign) || (negate = this.eat(ExclamationMark))) {\n var kind = lookbehind ? "lookbehind" : "lookahead";\n this.onLookaroundAssertionEnter(start, kind, negate);\n this.consumeDisjunction();\n\n if (!this.eat(RightParenthesis)) {\n this.raise("Unterminated group");\n }\n\n this._lastAssertionIsQuantifiable = !lookbehind && !this.strict;\n this.onLookaroundAssertionLeave(start, this.index, kind, negate);\n return true;\n }\n\n this.rewind(start);\n }\n\n return false;\n }\n }, {\n key: "consumeQuantifier",\n value: function consumeQuantifier() {\n var noConsume = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var start = this.index;\n var min = 0;\n var max = 0;\n var greedy = false;\n\n if (this.eat(Asterisk)) {\n min = 0;\n max = Number.POSITIVE_INFINITY;\n } else if (this.eat(PlusSign)) {\n min = 1;\n max = Number.POSITIVE_INFINITY;\n } else if (this.eat(QuestionMark)) {\n min = 0;\n max = 1;\n } else if (this.eatBracedQuantifier(noConsume)) {\n min = this._lastMinValue;\n max = this._lastMaxValue;\n } else {\n return false;\n }\n\n greedy = !this.eat(QuestionMark);\n\n if (!noConsume) {\n this.onQuantifier(start, this.index, min, max, greedy);\n }\n\n return true;\n }\n }, {\n key: "eatBracedQuantifier",\n value: function eatBracedQuantifier(noError) {\n var start = this.index;\n\n if (this.eat(LeftCurlyBracket)) {\n this._lastMinValue = 0;\n this._lastMaxValue = Number.POSITIVE_INFINITY;\n\n if (this.eatDecimalDigits()) {\n this._lastMinValue = this._lastMaxValue = this._lastIntValue;\n\n if (this.eat(Comma)) {\n this._lastMaxValue = this.eatDecimalDigits() ? this._lastIntValue : Number.POSITIVE_INFINITY;\n }\n\n if (this.eat(RightCurlyBracket)) {\n if (!noError && this._lastMaxValue < this._lastMinValue) {\n this.raise("numbers out of order in {} quantifier");\n }\n\n return true;\n }\n }\n\n if (!noError && (this._uFlag || this.strict)) {\n this.raise("Incomplete quantifier");\n }\n\n this.rewind(start);\n }\n\n return false;\n }\n }, {\n key: "consumeAtom",\n value: function consumeAtom() {\n return this.consumePatternCharacter() || this.consumeDot() || this.consumeReverseSolidusAtomEscape() || this.consumeCharacterClass() || this.consumeUncapturingGroup() || this.consumeCapturingGroup();\n }\n }, {\n key: "consumeDot",\n value: function consumeDot() {\n if (this.eat(FullStop)) {\n this.onAnyCharacterSet(this.index - 1, this.index, "any");\n return true;\n }\n\n return false;\n }\n }, {\n key: "consumeReverseSolidusAtomEscape",\n value: function consumeReverseSolidusAtomEscape() {\n var start = this.index;\n\n if (this.eat(ReverseSolidus)) {\n if (this.consumeAtomEscape()) {\n return true;\n }\n\n this.rewind(start);\n }\n\n return false;\n }\n }, {\n key: "consumeUncapturingGroup",\n value: function consumeUncapturingGroup() {\n var start = this.index;\n\n if (this.eat3(LeftParenthesis, QuestionMark, Colon)) {\n this.onGroupEnter(start);\n this.consumeDisjunction();\n\n if (!this.eat(RightParenthesis)) {\n this.raise("Unterminated group");\n }\n\n this.onGroupLeave(start, this.index);\n return true;\n }\n\n return false;\n }\n }, {\n key: "consumeCapturingGroup",\n value: function consumeCapturingGroup() {\n var start = this.index;\n\n if (this.eat(LeftParenthesis)) {\n var name = null;\n\n if (this.ecmaVersion >= 2018) {\n if (this.consumeGroupSpecifier()) {\n name = this._lastStrValue;\n }\n } else if (this.currentCodePoint === QuestionMark) {\n this.raise("Invalid group");\n }\n\n this.onCapturingGroupEnter(start, name);\n this.consumeDisjunction();\n\n if (!this.eat(RightParenthesis)) {\n this.raise("Unterminated group");\n }\n\n this.onCapturingGroupLeave(start, this.index, name);\n return true;\n }\n\n return false;\n }\n }, {\n key: "consumeExtendedAtom",\n value: function consumeExtendedAtom() {\n return this.consumeDot() || this.consumeReverseSolidusAtomEscape() || this.consumeReverseSolidusFollowedByC() || this.consumeCharacterClass() || this.consumeUncapturingGroup() || this.consumeCapturingGroup() || this.consumeInvalidBracedQuantifier() || this.consumeExtendedPatternCharacter();\n }\n }, {\n key: "consumeReverseSolidusFollowedByC",\n value: function consumeReverseSolidusFollowedByC() {\n var start = this.index;\n\n if (this.currentCodePoint === ReverseSolidus && this.nextCodePoint === LatinSmallLetterC) {\n this._lastIntValue = this.currentCodePoint;\n this.advance();\n this.onCharacter(start, this.index,