@syntrojs/logger
Version:
🔥 Fast, simple, and developer-friendly logger for Node.js and Bun (ALPHA - Proof of Concept)
1,069 lines (1,060 loc) • 317 kB
JavaScript
import * as util from 'util';
import { AsyncLocalStorage } from 'async_hooks';
import { randomUUID } from 'crypto';
import chalk2 from 'chalk';
var __getOwnPropNames = Object.getOwnPropertyNames;
var __commonJS = (cb, mod) => function __require() {
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
};
// node_modules/safe-regex/lib/analyzer.js
var require_analyzer = __commonJS({
"node_modules/safe-regex/lib/analyzer.js"(exports, module) {
var AnalyzerOptions = class {
constructor(heuristic_replimit) {
this.heuristic_replimit = heuristic_replimit;
}
};
var Analyzer = class {
constructor(analyzerOptions) {
this.options = analyzerOptions;
}
// Subclasser must implement
// Return boolean
isVulnerable(regExp) {
return false;
}
// Subclass must implement
// Returns an AttackString or null
genAttackString(regExp) {
return null;
}
};
module.exports = function(re, replimit) {
let myRegExp = null;
let ast = null;
try {
if (re instanceof RegExp) {
myRegExp = re;
} else if (typeof re === "string") {
myRegExp = new RegExp(re);
} else {
myRegExp = new RegExp(String(re));
}
ast = regexpTree.parse(myRegExp);
} catch (err) {
return false;
}
let currentStarHeight = 0;
let maxObservedStarHeight = 0;
let repetitionCount = 0;
regexpTree.traverse(ast, {
Repetition: {
pre({ node }) {
repetitionCount++;
currentStarHeight++;
if (maxObservedStarHeight < currentStarHeight) {
maxObservedStarHeight = currentStarHeight;
}
},
post({ node }) {
currentStarHeight--;
}
}
});
return maxObservedStarHeight <= 1 && repetitionCount <= replimit;
};
module.exports = {
"AnalyzerOptions": AnalyzerOptions,
"Analyzer": Analyzer
};
}
});
// node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-dotall-s-transform.js
var require_compat_dotall_s_transform = __commonJS({
"node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-dotall-s-transform.js"(exports, module) {
module.exports = {
// Whether `u` flag present. In which case we transform to
// \u{10FFFF} instead of \uFFFF.
_hasUFlag: false,
// Only run this plugin if we have `s` flag.
shouldRun: function shouldRun(ast) {
var shouldRun2 = ast.flags.includes("s");
if (!shouldRun2) {
return false;
}
ast.flags = ast.flags.replace("s", "");
this._hasUFlag = ast.flags.includes("u");
return true;
},
Char: function Char(path) {
var node = path.node;
if (node.kind !== "meta" || node.value !== ".") {
return;
}
var toValue = "\\uFFFF";
var toSymbol = "\uFFFF";
if (this._hasUFlag) {
toValue = "\\u{10FFFF}";
toSymbol = "\u{10FFFF}";
}
path.replace({
type: "CharacterClass",
expressions: [{
type: "ClassRange",
from: {
type: "Char",
value: "\\0",
kind: "decimal",
symbol: "\0"
},
to: {
type: "Char",
value: toValue,
kind: "unicode",
symbol: toSymbol
}
}]
});
}
};
}
});
// node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-named-capturing-groups-transform.js
var require_compat_named_capturing_groups_transform = __commonJS({
"node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-named-capturing-groups-transform.js"(exports, module) {
module.exports = {
// To track the names of the groups, and return them
// in the transform result state.
//
// A map from name to number: {foo: 2, bar: 4}
_groupNames: {},
/**
* Initialises the trasnform.
*/
init: function init() {
this._groupNames = {};
},
/**
* Returns extra state, which eventually is returned to
*/
getExtra: function getExtra() {
return this._groupNames;
},
Group: function Group(path) {
var node = path.node;
if (!node.name) {
return;
}
this._groupNames[node.name] = node.number;
delete node.name;
delete node.nameRaw;
},
Backreference: function Backreference(path) {
var node = path.node;
if (node.kind !== "name") {
return;
}
node.kind = "number";
node.reference = node.number;
delete node.referenceRaw;
}
};
}
});
// node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-x-flag-transform.js
var require_compat_x_flag_transform = __commonJS({
"node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-x-flag-transform.js"(exports, module) {
module.exports = {
RegExp: function RegExp2(_ref) {
var node = _ref.node;
if (node.flags.includes("x")) {
node.flags = node.flags.replace("x", "");
}
}
};
}
});
// node_modules/regexp-tree/dist/compat-transpiler/transforms/index.js
var require_transforms = __commonJS({
"node_modules/regexp-tree/dist/compat-transpiler/transforms/index.js"(exports, module) {
module.exports = {
// "dotAll" `s` flag
dotAll: require_compat_dotall_s_transform(),
// Named capturing groups.
namedCapturingGroups: require_compat_named_capturing_groups_transform(),
// `x` flag
xFlag: require_compat_x_flag_transform()
};
}
});
// node_modules/regexp-tree/dist/generator/index.js
var require_generator = __commonJS({
"node_modules/regexp-tree/dist/generator/index.js"(exports, module) {
function gen(node) {
return node ? generator[node.type](node) : "";
}
var generator = {
RegExp: function RegExp2(node) {
return "/" + gen(node.body) + "/" + node.flags;
},
Alternative: function Alternative(node) {
return (node.expressions || []).map(gen).join("");
},
Disjunction: function Disjunction(node) {
return gen(node.left) + "|" + gen(node.right);
},
Group: function Group(node) {
var expression = gen(node.expression);
if (node.capturing) {
if (node.name) {
return "(?<" + (node.nameRaw || node.name) + ">" + expression + ")";
}
return "(" + expression + ")";
}
return "(?:" + expression + ")";
},
Backreference: function Backreference(node) {
switch (node.kind) {
case "number":
return "\\" + node.reference;
case "name":
return "\\k<" + (node.referenceRaw || node.reference) + ">";
default:
throw new TypeError("Unknown Backreference kind: " + node.kind);
}
},
Assertion: function Assertion(node) {
switch (node.kind) {
case "^":
case "$":
case "\\b":
case "\\B":
return node.kind;
case "Lookahead": {
var assertion = gen(node.assertion);
if (node.negative) {
return "(?!" + assertion + ")";
}
return "(?=" + assertion + ")";
}
case "Lookbehind": {
var _assertion = gen(node.assertion);
if (node.negative) {
return "(?<!" + _assertion + ")";
}
return "(?<=" + _assertion + ")";
}
default:
throw new TypeError("Unknown Assertion kind: " + node.kind);
}
},
CharacterClass: function CharacterClass(node) {
var expressions = node.expressions.map(gen).join("");
if (node.negative) {
return "[^" + expressions + "]";
}
return "[" + expressions + "]";
},
ClassRange: function ClassRange(node) {
return gen(node.from) + "-" + gen(node.to);
},
Repetition: function Repetition(node) {
return "" + gen(node.expression) + gen(node.quantifier);
},
Quantifier: function Quantifier(node) {
var quantifier = void 0;
var greedy = node.greedy ? "" : "?";
switch (node.kind) {
case "+":
case "?":
case "*":
quantifier = node.kind;
break;
case "Range":
if (node.from === node.to) {
quantifier = "{" + node.from + "}";
} else if (!node.to) {
quantifier = "{" + node.from + ",}";
} else {
quantifier = "{" + node.from + "," + node.to + "}";
}
break;
default:
throw new TypeError("Unknown Quantifier kind: " + node.kind);
}
return "" + quantifier + greedy;
},
Char: function Char(node) {
var value = node.value;
switch (node.kind) {
case "simple": {
if (node.escaped) {
return "\\" + value;
}
return value;
}
case "hex":
case "unicode":
case "oct":
case "decimal":
case "control":
case "meta":
return value;
default:
throw new TypeError("Unknown Char kind: " + node.kind);
}
},
UnicodeProperty: function UnicodeProperty(node) {
var escapeChar = node.negative ? "P" : "p";
var namePart = void 0;
if (!node.shorthand && !node.binary) {
namePart = node.name + "=";
} else {
namePart = "";
}
return "\\" + escapeChar + "{" + namePart + node.value + "}";
}
};
module.exports = {
/**
* Generates a regexp string from an AST.
*
* @param Object ast - an AST node
*/
generate: gen
};
}
});
// node_modules/regexp-tree/dist/parser/unicode/parser-unicode-properties.js
var require_parser_unicode_properties = __commonJS({
"node_modules/regexp-tree/dist/parser/unicode/parser-unicode-properties.js"(exports, module) {
var NON_BINARY_PROP_NAMES_TO_ALIASES = {
General_Category: "gc",
Script: "sc",
Script_Extensions: "scx"
};
var NON_BINARY_ALIASES_TO_PROP_NAMES = inverseMap(NON_BINARY_PROP_NAMES_TO_ALIASES);
var BINARY_PROP_NAMES_TO_ALIASES = {
ASCII: "ASCII",
ASCII_Hex_Digit: "AHex",
Alphabetic: "Alpha",
Any: "Any",
Assigned: "Assigned",
Bidi_Control: "Bidi_C",
Bidi_Mirrored: "Bidi_M",
Case_Ignorable: "CI",
Cased: "Cased",
Changes_When_Casefolded: "CWCF",
Changes_When_Casemapped: "CWCM",
Changes_When_Lowercased: "CWL",
Changes_When_NFKC_Casefolded: "CWKCF",
Changes_When_Titlecased: "CWT",
Changes_When_Uppercased: "CWU",
Dash: "Dash",
Default_Ignorable_Code_Point: "DI",
Deprecated: "Dep",
Diacritic: "Dia",
Emoji: "Emoji",
Emoji_Component: "Emoji_Component",
Emoji_Modifier: "Emoji_Modifier",
Emoji_Modifier_Base: "Emoji_Modifier_Base",
Emoji_Presentation: "Emoji_Presentation",
Extended_Pictographic: "Extended_Pictographic",
Extender: "Ext",
Grapheme_Base: "Gr_Base",
Grapheme_Extend: "Gr_Ext",
Hex_Digit: "Hex",
IDS_Binary_Operator: "IDSB",
IDS_Trinary_Operator: "IDST",
ID_Continue: "IDC",
ID_Start: "IDS",
Ideographic: "Ideo",
Join_Control: "Join_C",
Logical_Order_Exception: "LOE",
Lowercase: "Lower",
Math: "Math",
Noncharacter_Code_Point: "NChar",
Pattern_Syntax: "Pat_Syn",
Pattern_White_Space: "Pat_WS",
Quotation_Mark: "QMark",
Radical: "Radical",
Regional_Indicator: "RI",
Sentence_Terminal: "STerm",
Soft_Dotted: "SD",
Terminal_Punctuation: "Term",
Unified_Ideograph: "UIdeo",
Uppercase: "Upper",
Variation_Selector: "VS",
White_Space: "space",
XID_Continue: "XIDC",
XID_Start: "XIDS"
};
var BINARY_ALIASES_TO_PROP_NAMES = inverseMap(BINARY_PROP_NAMES_TO_ALIASES);
var GENERAL_CATEGORY_VALUE_TO_ALIASES = {
Cased_Letter: "LC",
Close_Punctuation: "Pe",
Connector_Punctuation: "Pc",
Control: ["Cc", "cntrl"],
Currency_Symbol: "Sc",
Dash_Punctuation: "Pd",
Decimal_Number: ["Nd", "digit"],
Enclosing_Mark: "Me",
Final_Punctuation: "Pf",
Format: "Cf",
Initial_Punctuation: "Pi",
Letter: "L",
Letter_Number: "Nl",
Line_Separator: "Zl",
Lowercase_Letter: "Ll",
Mark: ["M", "Combining_Mark"],
Math_Symbol: "Sm",
Modifier_Letter: "Lm",
Modifier_Symbol: "Sk",
Nonspacing_Mark: "Mn",
Number: "N",
Open_Punctuation: "Ps",
Other: "C",
Other_Letter: "Lo",
Other_Number: "No",
Other_Punctuation: "Po",
Other_Symbol: "So",
Paragraph_Separator: "Zp",
Private_Use: "Co",
Punctuation: ["P", "punct"],
Separator: "Z",
Space_Separator: "Zs",
Spacing_Mark: "Mc",
Surrogate: "Cs",
Symbol: "S",
Titlecase_Letter: "Lt",
Unassigned: "Cn",
Uppercase_Letter: "Lu"
};
var GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES = inverseMap(GENERAL_CATEGORY_VALUE_TO_ALIASES);
var SCRIPT_VALUE_TO_ALIASES = {
Adlam: "Adlm",
Ahom: "Ahom",
Anatolian_Hieroglyphs: "Hluw",
Arabic: "Arab",
Armenian: "Armn",
Avestan: "Avst",
Balinese: "Bali",
Bamum: "Bamu",
Bassa_Vah: "Bass",
Batak: "Batk",
Bengali: "Beng",
Bhaiksuki: "Bhks",
Bopomofo: "Bopo",
Brahmi: "Brah",
Braille: "Brai",
Buginese: "Bugi",
Buhid: "Buhd",
Canadian_Aboriginal: "Cans",
Carian: "Cari",
Caucasian_Albanian: "Aghb",
Chakma: "Cakm",
Cham: "Cham",
Cherokee: "Cher",
Common: "Zyyy",
Coptic: ["Copt", "Qaac"],
Cuneiform: "Xsux",
Cypriot: "Cprt",
Cyrillic: "Cyrl",
Deseret: "Dsrt",
Devanagari: "Deva",
Dogra: "Dogr",
Duployan: "Dupl",
Egyptian_Hieroglyphs: "Egyp",
Elbasan: "Elba",
Ethiopic: "Ethi",
Georgian: "Geor",
Glagolitic: "Glag",
Gothic: "Goth",
Grantha: "Gran",
Greek: "Grek",
Gujarati: "Gujr",
Gunjala_Gondi: "Gong",
Gurmukhi: "Guru",
Han: "Hani",
Hangul: "Hang",
Hanifi_Rohingya: "Rohg",
Hanunoo: "Hano",
Hatran: "Hatr",
Hebrew: "Hebr",
Hiragana: "Hira",
Imperial_Aramaic: "Armi",
Inherited: ["Zinh", "Qaai"],
Inscriptional_Pahlavi: "Phli",
Inscriptional_Parthian: "Prti",
Javanese: "Java",
Kaithi: "Kthi",
Kannada: "Knda",
Katakana: "Kana",
Kayah_Li: "Kali",
Kharoshthi: "Khar",
Khmer: "Khmr",
Khojki: "Khoj",
Khudawadi: "Sind",
Lao: "Laoo",
Latin: "Latn",
Lepcha: "Lepc",
Limbu: "Limb",
Linear_A: "Lina",
Linear_B: "Linb",
Lisu: "Lisu",
Lycian: "Lyci",
Lydian: "Lydi",
Mahajani: "Mahj",
Makasar: "Maka",
Malayalam: "Mlym",
Mandaic: "Mand",
Manichaean: "Mani",
Marchen: "Marc",
Medefaidrin: "Medf",
Masaram_Gondi: "Gonm",
Meetei_Mayek: "Mtei",
Mende_Kikakui: "Mend",
Meroitic_Cursive: "Merc",
Meroitic_Hieroglyphs: "Mero",
Miao: "Plrd",
Modi: "Modi",
Mongolian: "Mong",
Mro: "Mroo",
Multani: "Mult",
Myanmar: "Mymr",
Nabataean: "Nbat",
New_Tai_Lue: "Talu",
Newa: "Newa",
Nko: "Nkoo",
Nushu: "Nshu",
Ogham: "Ogam",
Ol_Chiki: "Olck",
Old_Hungarian: "Hung",
Old_Italic: "Ital",
Old_North_Arabian: "Narb",
Old_Permic: "Perm",
Old_Persian: "Xpeo",
Old_Sogdian: "Sogo",
Old_South_Arabian: "Sarb",
Old_Turkic: "Orkh",
Oriya: "Orya",
Osage: "Osge",
Osmanya: "Osma",
Pahawh_Hmong: "Hmng",
Palmyrene: "Palm",
Pau_Cin_Hau: "Pauc",
Phags_Pa: "Phag",
Phoenician: "Phnx",
Psalter_Pahlavi: "Phlp",
Rejang: "Rjng",
Runic: "Runr",
Samaritan: "Samr",
Saurashtra: "Saur",
Sharada: "Shrd",
Shavian: "Shaw",
Siddham: "Sidd",
SignWriting: "Sgnw",
Sinhala: "Sinh",
Sogdian: "Sogd",
Sora_Sompeng: "Sora",
Soyombo: "Soyo",
Sundanese: "Sund",
Syloti_Nagri: "Sylo",
Syriac: "Syrc",
Tagalog: "Tglg",
Tagbanwa: "Tagb",
Tai_Le: "Tale",
Tai_Tham: "Lana",
Tai_Viet: "Tavt",
Takri: "Takr",
Tamil: "Taml",
Tangut: "Tang",
Telugu: "Telu",
Thaana: "Thaa",
Thai: "Thai",
Tibetan: "Tibt",
Tifinagh: "Tfng",
Tirhuta: "Tirh",
Ugaritic: "Ugar",
Vai: "Vaii",
Warang_Citi: "Wara",
Yi: "Yiii",
Zanabazar_Square: "Zanb"
};
var SCRIPT_VALUE_ALIASES_TO_VALUE = inverseMap(SCRIPT_VALUE_TO_ALIASES);
function inverseMap(data) {
var inverse = {};
for (var name in data) {
if (!data.hasOwnProperty(name)) {
continue;
}
var value = data[name];
if (Array.isArray(value)) {
for (var i = 0; i < value.length; i++) {
inverse[value[i]] = name;
}
} else {
inverse[value] = name;
}
}
return inverse;
}
function isValidName(name) {
return NON_BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);
}
function isValidValue(name, value) {
if (isGeneralCategoryName(name)) {
return isGeneralCategoryValue(value);
}
if (isScriptCategoryName(name)) {
return isScriptCategoryValue(value);
}
return false;
}
function isAlias(name) {
return NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);
}
function isGeneralCategoryName(name) {
return name === "General_Category" || name == "gc";
}
function isScriptCategoryName(name) {
return name === "Script" || name === "Script_Extensions" || name === "sc" || name === "scx";
}
function isGeneralCategoryValue(value) {
return GENERAL_CATEGORY_VALUE_TO_ALIASES.hasOwnProperty(value) || GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value);
}
function isScriptCategoryValue(value) {
return SCRIPT_VALUE_TO_ALIASES.hasOwnProperty(value) || SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value);
}
function isBinaryPropertyName(name) {
return BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);
}
function getCanonicalName(name) {
if (NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {
return NON_BINARY_ALIASES_TO_PROP_NAMES[name];
}
if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {
return BINARY_ALIASES_TO_PROP_NAMES[name];
}
return null;
}
function getCanonicalValue(value) {
if (GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value)) {
return GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES[value];
}
if (SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value)) {
return SCRIPT_VALUE_ALIASES_TO_VALUE[value];
}
if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(value)) {
return BINARY_ALIASES_TO_PROP_NAMES[value];
}
return null;
}
module.exports = {
isAlias,
isValidName,
isValidValue,
isGeneralCategoryValue,
isScriptCategoryValue,
isBinaryPropertyName,
getCanonicalName,
getCanonicalValue,
NON_BINARY_PROP_NAMES_TO_ALIASES,
NON_BINARY_ALIASES_TO_PROP_NAMES,
BINARY_PROP_NAMES_TO_ALIASES,
BINARY_ALIASES_TO_PROP_NAMES,
GENERAL_CATEGORY_VALUE_TO_ALIASES,
GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES,
SCRIPT_VALUE_TO_ALIASES,
SCRIPT_VALUE_ALIASES_TO_VALUE
};
}
});
// node_modules/regexp-tree/dist/parser/generated/regexp-tree.js
var require_regexp_tree = __commonJS({
"node_modules/regexp-tree/dist/parser/generated/regexp-tree.js"(exports, module) {
var _slicedToArray = /* @__PURE__ */ (function() {
function sliceIterator(arr, i) {
var _arr = [];
var _n = true;
var _d = false;
var _e = void 0;
try {
for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
_arr.push(_s.value);
if (i && _arr.length === i) break;
}
} catch (err) {
_d = true;
_e = err;
} finally {
try {
if (!_n && _i["return"]) _i["return"]();
} finally {
if (_d) throw _e;
}
}
return _arr;
}
return function(arr, i) {
if (Array.isArray(arr)) {
return arr;
} else if (Symbol.iterator in Object(arr)) {
return sliceIterator(arr, i);
} else {
throw new TypeError("Invalid attempt to destructure non-iterable instance");
}
};
})();
function _toConsumableArray(arr) {
if (Array.isArray(arr)) {
for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {
arr2[i] = arr[i];
}
return arr2;
} else {
return Array.from(arr);
}
}
var yytext = void 0;
var yy = {};
var __ = void 0;
var __loc = void 0;
function yyloc(start, end) {
if (!yy.options.captureLocations) {
return null;
}
if (!start || !end) {
return start || end;
}
return {
startOffset: start.startOffset,
endOffset: end.endOffset,
startLine: start.startLine,
endLine: end.endLine,
startColumn: start.startColumn,
endColumn: end.endColumn
};
}
var EOF = "$";
var productions = [[-1, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = _1;
}], [0, 4, function(_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {
__loc = yyloc(_1loc, _4loc);
__ = Node({
type: "RegExp",
body: _2,
flags: checkFlags(_4)
}, loc(_1loc, _4loc || _3loc));
}], [1, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = _1;
}], [1, 0, function() {
__loc = null;
__ = "";
}], [2, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = _1;
}], [2, 2, function(_1, _2, _1loc, _2loc) {
__loc = yyloc(_1loc, _2loc);
__ = _1 + _2;
}], [3, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = _1;
}], [4, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = _1;
}], [4, 3, function(_1, _2, _3, _1loc, _2loc, _3loc) {
__loc = yyloc(_1loc, _3loc);
var _loc = null;
if (_2loc) {
_loc = loc(_1loc || _2loc, _3loc || _2loc);
}
__ = Node({
type: "Disjunction",
left: _1,
right: _3
}, _loc);
}], [5, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
if (_1.length === 0) {
__ = null;
return;
}
if (_1.length === 1) {
__ = Node(_1[0], __loc);
} else {
__ = Node({
type: "Alternative",
expressions: _1
}, __loc);
}
}], [6, 0, function() {
__loc = null;
__ = [];
}], [6, 2, function(_1, _2, _1loc, _2loc) {
__loc = yyloc(_1loc, _2loc);
__ = _1.concat(_2);
}], [7, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = Node(Object.assign({ type: "Assertion" }, _1), __loc);
}], [7, 2, function(_1, _2, _1loc, _2loc) {
__loc = yyloc(_1loc, _2loc);
__ = _1;
if (_2) {
__ = Node({
type: "Repetition",
expression: _1,
quantifier: _2
}, __loc);
}
}], [8, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = { kind: "^" };
}], [8, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = { kind: "$" };
}], [8, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = { kind: "\\b" };
}], [8, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = { kind: "\\B" };
}], [8, 3, function(_1, _2, _3, _1loc, _2loc, _3loc) {
__loc = yyloc(_1loc, _3loc);
__ = {
kind: "Lookahead",
assertion: _2
};
}], [8, 3, function(_1, _2, _3, _1loc, _2loc, _3loc) {
__loc = yyloc(_1loc, _3loc);
__ = {
kind: "Lookahead",
negative: true,
assertion: _2
};
}], [8, 3, function(_1, _2, _3, _1loc, _2loc, _3loc) {
__loc = yyloc(_1loc, _3loc);
__ = {
kind: "Lookbehind",
assertion: _2
};
}], [8, 3, function(_1, _2, _3, _1loc, _2loc, _3loc) {
__loc = yyloc(_1loc, _3loc);
__ = {
kind: "Lookbehind",
negative: true,
assertion: _2
};
}], [9, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = _1;
}], [9, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = _1;
}], [9, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = _1;
}], [10, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = Char(_1, "simple", __loc);
}], [10, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = Char(_1.slice(1), "simple", __loc);
__.escaped = true;
}], [10, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = Char(_1, "unicode", __loc);
__.isSurrogatePair = true;
}], [10, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = Char(_1, "unicode", __loc);
}], [10, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = UnicodeProperty(_1, __loc);
}], [10, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = Char(_1, "control", __loc);
}], [10, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = Char(_1, "hex", __loc);
}], [10, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = Char(_1, "oct", __loc);
}], [10, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = GroupRefOrDecChar(_1, __loc);
}], [10, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = Char(_1, "meta", __loc);
}], [10, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = Char(_1, "meta", __loc);
}], [10, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = NamedGroupRefOrChars(_1, _1loc);
}], [11, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = _1;
}], [11, 0], [12, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = _1;
}], [12, 2, function(_1, _2, _1loc, _2loc) {
__loc = yyloc(_1loc, _2loc);
_1.greedy = false;
__ = _1;
}], [13, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = Node({
type: "Quantifier",
kind: _1,
greedy: true
}, __loc);
}], [13, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = Node({
type: "Quantifier",
kind: _1,
greedy: true
}, __loc);
}], [13, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = Node({
type: "Quantifier",
kind: _1,
greedy: true
}, __loc);
}], [13, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
var range = getRange(_1);
__ = Node({
type: "Quantifier",
kind: "Range",
from: range[0],
to: range[0],
greedy: true
}, __loc);
}], [13, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = Node({
type: "Quantifier",
kind: "Range",
from: getRange(_1)[0],
greedy: true
}, __loc);
}], [13, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
var range = getRange(_1);
__ = Node({
type: "Quantifier",
kind: "Range",
from: range[0],
to: range[1],
greedy: true
}, __loc);
}], [14, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = _1;
}], [14, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = _1;
}], [15, 3, function(_1, _2, _3, _1loc, _2loc, _3loc) {
__loc = yyloc(_1loc, _3loc);
var nameRaw = String(_1);
var name = decodeUnicodeGroupName(nameRaw);
if (!yy.options.allowGroupNameDuplicates && namedGroups.hasOwnProperty(name)) {
throw new SyntaxError('Duplicate of the named group "' + name + '".');
}
namedGroups[name] = _1.groupNumber;
__ = Node({
type: "Group",
capturing: true,
name,
nameRaw,
number: _1.groupNumber,
expression: _2
}, __loc);
}], [15, 3, function(_1, _2, _3, _1loc, _2loc, _3loc) {
__loc = yyloc(_1loc, _3loc);
__ = Node({
type: "Group",
capturing: true,
number: _1.groupNumber,
expression: _2
}, __loc);
}], [16, 3, function(_1, _2, _3, _1loc, _2loc, _3loc) {
__loc = yyloc(_1loc, _3loc);
__ = Node({
type: "Group",
capturing: false,
expression: _2
}, __loc);
}], [17, 3, function(_1, _2, _3, _1loc, _2loc, _3loc) {
__loc = yyloc(_1loc, _3loc);
__ = Node({
type: "CharacterClass",
negative: true,
expressions: _2
}, __loc);
}], [17, 3, function(_1, _2, _3, _1loc, _2loc, _3loc) {
__loc = yyloc(_1loc, _3loc);
__ = Node({
type: "CharacterClass",
expressions: _2
}, __loc);
}], [18, 0, function() {
__loc = null;
__ = [];
}], [18, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = _1;
}], [19, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = [_1];
}], [19, 2, function(_1, _2, _1loc, _2loc) {
__loc = yyloc(_1loc, _2loc);
__ = [_1].concat(_2);
}], [19, 4, function(_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {
__loc = yyloc(_1loc, _4loc);
checkClassRange(_1, _3);
__ = [Node({
type: "ClassRange",
from: _1,
to: _3
}, loc(_1loc, _3loc))];
if (_4) {
__ = __.concat(_4);
}
}], [20, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = _1;
}], [20, 2, function(_1, _2, _1loc, _2loc) {
__loc = yyloc(_1loc, _2loc);
__ = [_1].concat(_2);
}], [20, 4, function(_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {
__loc = yyloc(_1loc, _4loc);
checkClassRange(_1, _3);
__ = [Node({
type: "ClassRange",
from: _1,
to: _3
}, loc(_1loc, _3loc))];
if (_4) {
__ = __.concat(_4);
}
}], [21, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = Char(_1, "simple", __loc);
}], [21, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = _1;
}], [22, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = _1;
}], [22, 1, function(_1, _1loc) {
__loc = yyloc(_1loc, _1loc);
__ = Char(_1, "meta", __loc);
}]];
var tokens = { "SLASH": "23", "CHAR": "24", "BAR": "25", "BOS": "26", "EOS": "27", "ESC_b": "28", "ESC_B": "29", "POS_LA_ASSERT": "30", "R_PAREN": "31", "NEG_LA_ASSERT": "32", "POS_LB_ASSERT": "33", "NEG_LB_ASSERT": "34", "ESC_CHAR": "35", "U_CODE_SURROGATE": "36", "U_CODE": "37", "U_PROP_VALUE_EXP": "38", "CTRL_CH": "39", "HEX_CODE": "40", "OCT_CODE": "41", "DEC_CODE": "42", "META_CHAR": "43", "ANY": "44", "NAMED_GROUP_REF": "45", "Q_MARK": "46", "STAR": "47", "PLUS": "48", "RANGE_EXACT": "49", "RANGE_OPEN": "50", "RANGE_CLOSED": "51", "NAMED_CAPTURE_GROUP": "52", "L_PAREN": "53", "NON_CAPTURE_GROUP": "54", "NEG_CLASS": "55", "R_BRACKET": "56", "L_BRACKET": "57", "DASH": "58", "$": "59" };
var table = [{ "0": 1, "23": "s2" }, { "59": "acc" }, { "3": 3, "4": 4, "5": 5, "6": 6, "23": "r10", "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "23": "s7" }, { "23": "r6", "25": "s12" }, { "23": "r7", "25": "r7", "31": "r7" }, { "7": 14, "8": 15, "9": 16, "10": 25, "14": 27, "15": 42, "16": 43, "17": 26, "23": "r9", "24": "s28", "25": "r9", "26": "s17", "27": "s18", "28": "s19", "29": "s20", "30": "s21", "31": "r9", "32": "s22", "33": "s23", "34": "s24", "35": "s29", "36": "s30", "37": "s31", "38": "s32", "39": "s33", "40": "s34", "41": "s35", "42": "s36", "43": "s37", "44": "s38", "45": "s39", "52": "s44", "53": "s45", "54": "s46", "55": "s40", "57": "s41" }, { "1": 8, "2": 9, "24": "s10", "59": "r3" }, { "59": "r1" }, { "24": "s11", "59": "r2" }, { "24": "r4", "59": "r4" }, { "24": "r5", "59": "r5" }, { "5": 13, "6": 6, "23": "r10", "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "31": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "23": "r8", "25": "r8", "31": "r8" }, { "23": "r11", "24": "r11", "25": "r11", "26": "r11", "27": "r11", "28": "r11", "29": "r11", "30": "r11", "31": "r11", "32": "r11", "33": "r11", "34": "r11", "35": "r11", "36": "r11", "37": "r11", "38": "r11", "39": "r11", "40": "r11", "41": "r11", "42": "r11", "43": "r11", "44": "r11", "45": "r11", "52": "r11", "53": "r11", "54": "r11", "55": "r11", "57": "r11" }, { "23": "r12", "24": "r12", "25": "r12", "26": "r12", "27": "r12", "28": "r12", "29": "r12", "30": "r12", "31": "r12", "32": "r12", "33": "r12", "34": "r12", "35": "r12", "36": "r12", "37": "r12", "38": "r12", "39": "r12", "40": "r12", "41": "r12", "42": "r12", "43": "r12", "44": "r12", "45": "r12", "52": "r12", "53": "r12", "54": "r12", "55": "r12", "57": "r12" }, { "11": 47, "12": 48, "13": 49, "23": "r38", "24": "r38", "25": "r38", "26": "r38", "27": "r38", "28": "r38", "29": "r38", "30": "r38", "31": "r38", "32": "r38", "33": "r38", "34": "r38", "35": "r38", "36": "r38", "37": "r38", "38": "r38", "39": "r38", "40": "r38", "41": "r38", "42": "r38", "43": "r38", "44": "r38", "45": "r38", "46": "s52", "47": "s50", "48": "s51", "49": "s53", "50": "s54", "51": "s55", "52": "r38", "53": "r38", "54": "r38", "55": "r38", "57": "r38" }, { "23": "r14", "24": "r14", "25": "r14", "26": "r14", "27": "r14", "28": "r14", "29": "r14", "30": "r14", "31": "r14", "32": "r14", "33": "r14", "34": "r14", "35": "r14", "36": "r14", "37": "r14", "38": "r14", "39": "r14", "40": "r14", "41": "r14", "42": "r14", "43": "r14", "44": "r14", "45": "r14", "52": "r14", "53": "r14", "54": "r14", "55": "r14", "57": "r14" }, { "23": "r15", "24": "r15", "25": "r15", "26": "r15", "27": "r15", "28": "r15", "29": "r15", "30": "r15", "31": "r15", "32": "r15", "33": "r15", "34": "r15", "35": "r15", "36": "r15", "37": "r15", "38": "r15", "39": "r15", "40": "r15", "41": "r15", "42": "r15", "43": "r15", "44": "r15", "45": "r15", "52": "r15", "53": "r15", "54": "r15", "55": "r15", "57": "r15" }, { "23": "r16", "24": "r16", "25": "r16", "26": "r16", "27": "r16", "28": "r16", "29": "r16", "30": "r16", "31": "r16", "32": "r16", "33": "r16", "34": "r16", "35": "r16", "36": "r16", "37": "r16", "38": "r16", "39": "r16", "40": "r16", "41": "r16", "42": "r16", "43": "r16", "44": "r16", "45": "r16", "52": "r16", "53": "r16", "54": "r16", "55": "r16", "57": "r16" }, { "23": "r17", "24": "r17", "25": "r17", "26": "r17", "27": "r17", "28": "r17", "29": "r17", "30": "r17", "31": "r17", "32": "r17", "33": "r17", "34": "r17", "35": "r17", "36": "r17", "37": "r17", "38": "r17", "39": "r17", "40": "r17", "41": "r17", "42": "r17", "43": "r17", "44": "r17", "45": "r17", "52": "r17", "53": "r17", "54": "r17", "55": "r17", "57": "r17" }, { "4": 57, "5": 5, "6": 6, "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "31": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "4": 59, "5": 5, "6": 6, "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "31": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "4": 61, "5": 5, "6": 6, "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "31": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "4": 63, "5": 5, "6": 6, "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "31": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "23": "r22", "24": "r22", "25": "r22", "26": "r22", "27": "r22", "28": "r22", "29": "r22", "30": "r22", "31": "r22", "32": "r22", "33": "r22", "34": "r22", "35": "r22", "36": "r22", "37": "r22", "38": "r22", "39": "r22", "40": "r22", "41": "r22", "42": "r22", "43": "r22", "44": "r22", "45": "r22", "46": "r22", "47": "r22", "48": "r22", "49": "r22", "50": "r22", "51": "r22", "52": "r22", "53": "r22", "54": "r22", "55": "r22", "57": "r22" }, { "23": "r23", "24": "r23", "25": "r23", "26": "r23", "27": "r23", "28": "r23", "29": "r23", "30": "r23", "31": "r23", "32": "r23", "33": "r23", "34": "r23", "35": "r23", "36": "r23", "37": "r23", "38": "r23", "39": "r23", "40": "r23", "41": "r23", "42": "r23", "43": "r23", "44": "r23", "45": "r23", "46": "r23", "47": "r23", "48": "r23", "49": "r23", "50": "r23", "51": "r23", "52": "r23", "53": "r23", "54": "r23", "55": "r23", "57": "r23" }, { "23": "r24", "24": "r24", "25": "r24", "26": "r24", "27": "r24", "28": "r24", "29": "r24", "30": "r24", "31": "r24", "32": "r24", "33": "r24", "34": "r24", "35": "r24", "36": "r24", "37": "r24", "38": "r24", "39": "r24", "40": "r24", "41": "r24", "42": "r24", "43": "r24", "44": "r24", "45": "r24", "46": "r24", "47": "r24", "48": "r24", "49": "r24", "50": "r24", "51": "r24", "52": "r24", "53": "r24", "54": "r24", "55": "r24", "57": "r24" }, { "23": "r25", "24": "r25", "25": "r25", "26": "r25", "27": "r25", "28": "r25", "29": "r25", "30": "r25", "31": "r25", "32": "r25", "33": "r25", "34": "r25", "35": "r25", "36": "r25", "37": "r25", "38": "r25", "39": "r25", "40": "r25", "41": "r25", "42": "r25", "43": "r25", "44": "r25", "45": "r25", "46": "r25", "47": "r25", "48": "r25", "49": "r25", "50": "r25", "51": "r25", "52": "r25", "53": "r25", "54": "r25", "55": "r25", "56": "r25", "57": "r25", "58": "r25" }, { "23": "r26", "24": "r26", "25": "r26", "26": "r26", "27": "r26", "28": "r26", "29": "r26", "30": "r26", "31": "r26", "32": "r26", "33": "r26", "34": "r26", "35": "r26", "36": "r26", "37": "r26", "38": "r26", "39": "r26", "40": "r26", "41": "r26", "42": "r26", "43": "r26", "44": "r26", "45": "r26", "46": "r26", "47": "r26", "48": "r26", "49": "r26", "50": "r26", "51": "r26", "52": "r26", "53": "r26", "54": "r26", "55": "r26", "56": "r26", "57": "r26", "58": "r26" }, { "23": "r27", "24": "r27", "25": "r27", "26": "r27", "27": "r27", "28": "r27", "29": "r27", "30": "r27", "31": "r27", "32": "r27", "33": "r27", "34": "r27", "35": "r27", "36": "r27", "37": "r27", "38": "r27", "39": "r27", "40": "r27", "41": "r27", "42": "r27", "43": "r27", "44": "r27", "45": "r27", "46": "r27", "47": "r27", "48": "r27", "49": "r27", "50": "r27", "51": "r27", "52": "r27", "53": "r27", "54": "r27", "55": "r27", "56": "r27", "57": "r27", "58": "r27" }, { "23": "r28", "24": "r28", "25": "r28", "26": "r28", "27": "r28", "28": "r28", "29": "r28", "30": "r28", "31": "r28", "32": "r28", "33": "r28", "34": "r28", "35": "r28", "36": "r28", "37": "r28", "38": "r28", "39": "r28", "40": "r28", "41": "r28", "42": "r28", "43": "r28", "44": "r28", "45": "r28", "46": "r28", "47": "r28", "48": "r28", "49": "r28", "50": "r28", "51": "r28", "52": "r28", "53": "r28", "54": "r28", "55": "r28", "56": "r28", "57": "r28", "58": "r28" }, { "23": "r29", "24": "r29", "25": "r29", "26": "r29", "27": "r29", "28": "r29", "29": "r29", "30": "r29", "31": "r29", "32": "r29", "33": "r29", "34": "r29", "35": "r29", "36": "r29", "37": "r29", "38": "r29", "39": "r29", "40": "r29", "41": "r29", "42": "r29", "43": "r29", "44": "r29", "45": "r29", "46": "r29", "47": "r29", "48": "r29", "49": "r29", "50": "r29", "51": "r29", "52": "r29", "53": "r29", "54": "r29", "55": "r29", "56": "r29", "57": "r29", "58": "r29" }, { "23": "r30", "24": "r30", "25": "r30", "26": "r30", "27": "r30", "28": "r30", "29": "r30", "30": "r30", "31": "r30", "32": "r30", "33": "r30", "34": "r30", "35": "r30", "36": "r30", "37": "r30", "38": "r30", "39": "r30", "40": "r30", "41": "r30", "42": "r30", "43": "r30", "44": "r30", "45": "r30", "46": "r30", "47": "r30", "48": "r30", "49": "r30", "50": "r30", "51": "r30", "52": "r30", "53": "r30", "54": "r30", "55": "r30", "56": "r30", "57": "r30", "58": "r30" }, { "23": "r31", "24": "r31", "25": "r31", "26": "r31", "27": "r31", "28": "r31", "29": "r31", "30": "r31", "31": "r31", "32": "r31", "33": "r31", "34": "r31", "35": "r31", "36": "r31", "37": "r31", "38": "r31", "39": "r31", "40": "r31", "41": "r31", "42": "r31", "43": "r31", "44": "r31", "45": "r31", "46": "r31", "47": "r31", "48": "r31", "49": "r31", "50": "r31", "51": "r31", "52": "r31", "53": "r31", "54": "r31", "55": "r31", "56": "r31", "57": "r31", "58": "r31" }, { "23": "r32", "24": "r32", "25": "r32", "26": "r32", "27": "r32", "28": "r32", "29": "r32", "30": "r32", "31": "r32", "32": "r32", "33": "r32", "34": "r32", "35": "r32", "36": "r32", "37": "r32", "38": "r32", "39": "r32", "40": "r32", "41": "r32", "42": "r32", "43": "r32", "44": "r32", "45": "r32", "46": "r32", "47": "r32", "48": "r32", "49": "r32", "50": "r32", "51": "r32", "52": "r32", "53": "r32", "54": "r32", "55": "r32", "56": "r32", "57": "r32", "58": "r32" }, { "23": "r33", "24": "r33", "25": "r33", "26": "r33", "27": "r33", "28": "r33", "29": "r33", "30": "r33", "31": "r33", "32": "r33", "33": "r33", "34": "r33", "35": "r33", "36": "r33", "37": "r33", "38": "r33", "39": "r33", "40": "r33", "41": "r33", "42": "r33", "43": "r33", "44": "r33", "45": "r33", "46": "r33", "47": "r33", "48": "r33", "49": "r33", "50": "r33", "51": "r33", "52": "r33", "53": "r33", "54": "r33", "55": "r33", "56": "r33", "57": "r33", "58": "r33" }, { "23": "r34", "24": "r34", "25": "r34", "26": "r34", "27": "r34", "28": "r34", "29": "r34", "30": "r34", "31": "r34", "32": "r34", "33": "r34", "34": "r34", "35": "r34", "36": "r34", "37": "r34", "38": "r34", "39": "r34", "40": "r34", "41": "r34", "42": "r34", "43": "r34", "44": "r34", "45": "r34", "46": "r34", "47": "r34", "48": "r34", "49": "r34", "50": "r34", "51": "r34", "52": "r34", "53": "r34", "54": "r34", "55": "r34", "56": "r34", "57": "r34", "58": "r34" }, { "23": "r35", "24": "r35", "25": "r35", "26": "r35", "27": "r35", "28": "r35", "29": "r35", "30": "r35", "31": "r35", "32": "r35", "33": "r35", "34": "r35", "35": "r35", "36": "r35", "37": "r35", "38": "r35", "39": "r35", "40": "r35", "41": "r35", "42": "r35", "43": "r35", "44": "r35", "45": "r35", "46": "r35", "47": "r35", "48": "r35", "49": "r35", "50": "r35", "51": "r35", "52": "r35", "53": "r35", "54": "r35", "55": "r35", "56": "r35", "57": "r35", "58": "r35" }, { "23": "r36", "24": "r36", "25": "r36", "26": "r36", "27": "r36", "28": "r36", "29": "r36", "30": "r36", "31": "r36", "32": "r36", "33": "r36", "34": "r36", "35": "r36", "36": "r36", "37": "r36", "38": "r36", "39": "r36", "40": "r36", "41": "r36", "42": "r36", "43": "r36", "44": "r36", "45": "r36", "46": "r36", "47": "r36", "48": "r36", "49": "r36", "50": "r36", "51": "r36", "52": "r36", "53": "r36", "54": "r36", "55": "r36", "56": "r36", "57": "r36", "58": "r36" }, { "10": 70, "18": 65, "19": 66, "21": 67, "22": 69, "24": "s28", "28": "s71", "35": "s29", "36": "s30", "37": "s31", "38": "s32", "39": "s33", "40": "s34", "41": "s35", "42": "s36", "43": "s37", "44": "s38", "45": "s39", "56": "r54", "58": "s68" }, { "10": 70, "18": 83, "19": 66, "21": 67, "22": 69, "24": "s28", "28": "s71", "35": "s29", "36": "s30", "37": "s31", "38": "s32", "39": "s33", "40": "s34", "41": "s35", "42": "s36", "43": "s37", "44": "s38", "45": "s39", "56": "r54", "58": "s68" }, { "23": "r47", "24": "r47", "25": "r47", "26": "r47", "27": "r47", "28": "r47", "29": "r47", "30": "r47", "31": "r47", "32": "r47", "33": "r47", "34": "r47", "35": "r47", "36": "r47", "37": "r47", "38": "r47", "39": "r47", "40": "r47", "41": "r47", "42": "r47", "43": "r47", "44": "r47", "45": "r47", "46": "r47", "47": "r47", "48": "r47", "49": "r47", "50": "r47", "51": "r47", "52": "r47", "53": "r47", "54": "r47", "55": "r47", "57": "r47" }, { "23": "r48", "24": "r48", "25": "r48", "26": "r48", "27": "r48", "28": "r48", "29": "r48", "30": "r48", "31": "r48", "32": "r48", "33": "r48", "34": "r48", "35": "r48", "36": "r48", "37": "r48", "38": "r48", "39": "r48", "40": "r48", "41": "r48", "42": "r48", "43": "r48", "44": "r48", "45": "r48", "46": "r48", "47": "r48", "48": "r48", "49": "r48", "50": "r48", "51": "r48", "52": "r48", "53": "r48", "54": "r48", "55": "r48", "57": "r48" }, { "4": 85, "5": 5, "6": 6, "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "31": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "4": 87, "5": 5, "6": 6, "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "31": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "4": 89, "5": 5, "6": 6, "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "31": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "23": "r13", "24": "r13", "25": "r13", "26": "r13", "27": "r13", "28": "r13", "29": "r13", "30": "r13", "31": "r13", "32": "r13", "33": "r13", "34": "r13", "35": "r13", "36": "r13", "37": "r13", "38": "r13", "39": "r13", "40": "r13", "41": "r13", "42": "r13", "43": "r13", "44": "r13", "45": "r13", "52": "r13", "53": "r13", "54": "r13", "55": "r13", "57": "r13" }, { "23": "r37", "24": "r37", "25": "r37", "26": "r37", "27": "r37", "28": "r37", "29": "r37", "30": "r37", "31": "r37", "32": "r37", "33": "r37", "34": "r37", "35": "r37", "36": "r37", "37": "r37", "38": "r37", "39": "r37", "40": "r37", "41": "r37", "42": "r37", "43": "r37", "44": "r37", "45": "r37", "52": "r37", "53": "r37", "54": "r37", "55": "r37", "57": "r37" }, { "23": "r39", "24": "r39", "25": "r39", "26": "r39", "27": "r39", "28": "r39", "29": "r39", "30": "r39", "31": "r39", "32": "r39", "33": "r39", "34": "r39", "35": "r39", "36": "r39", "37": "r39", "38": "r39", "39": "r39", "40": "r39", "41": "r39", "42": "r39", "43": "r39", "44": "r39", "45": "r39", "46": "s56", "52": "r39", "53": "r39", "54": "r39", "55": "r39", "57": "r39" }, { "23": "r41", "24": "r41", "25": "r41", "26": "r41", "27": "r41", "28": "r41", "29": "r41", "30": "r41", "31": "r41", "32": "r41", "33": "r41", "34": "r41", "35": "r41", "36": "r41", "37": "r41", "38": "r41", "39": "r41", "40": "r41", "41": "r41", "42": "r41", "43": "r41", "44": "r41", "45": "r41", "46": "r41", "52": "r41", "53": "r41", "54": "r41", "55": "r41", "57": "r41" }, { "23": "r42", "24": "r42", "25": "r42", "26": "r42", "27": "r42", "28": "r42", "29": "r42", "30": "r42", "31": "r42", "32": "r42", "33": "r42", "34": "r42", "35": "r42", "36": "r42", "37": "r42", "38": "r42", "39": "r42", "40": "r42", "41": "r42", "42": "r42", "43": "r42", "44": "r42", "45": "r42", "46": "r42", "52": "r42", "53": "r42", "54": "r42", "55": "r42", "57": "r42" }, { "23": "r43", "24": "r43", "25": "r43", "26": "r43", "27": "r43", "28": "r43", "29": "r43", "30": "r43", "31":